git subrepo commit (merge) mailcow/src/mailcow-dockerized

subrepo: subdir:   "mailcow/src/mailcow-dockerized"
  merged:   "02ae5285"
upstream: origin:   "https://github.com/mailcow/mailcow-dockerized.git"
  branch:   "master"
  commit:   "649a5c01"
git-subrepo: version:  "0.4.3"
  origin:   "???"
  commit:   "???"
Change-Id: I870ad468fba026cc5abf3c5699ed1e12ff28b32b
diff --git a/mailcow/src/mailcow-dockerized/.github/stale.yml b/mailcow/src/mailcow-dockerized/.github/stale.yml
deleted file mode 100644
index 24db8c0..0000000
--- a/mailcow/src/mailcow-dockerized/.github/stale.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-# Number of days of inactivity before an issue becomes stale
-daysUntilStale: 60
-# Number of days of inactivity before a stale issue is closed
-daysUntilClose: 7
-# Issues with these labels will never be considered stale
-exemptLabels:
-  - pinned
-  - security
-  - enhancement
-# Label to use when marking an issue as stale
-staleLabel: dunno
-# Comment to post when marking an issue as stale. Set to `false` to disable
-markComment: >
-  This issue has been automatically marked as stale because it has not had
-  recent activity. It will be closed if no further activity occurs. Thank you
-  for your contributions.
-# Comment to post when closing a stale issue. Set to `false` to disable
-closeComment: false
diff --git a/mailcow/src/mailcow-dockerized/.github/workflows/close_old_issues_and_prs.yml b/mailcow/src/mailcow-dockerized/.github/workflows/close_old_issues_and_prs.yml
new file mode 100644
index 0000000..f963061
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/.github/workflows/close_old_issues_and_prs.yml
@@ -0,0 +1,35 @@
+name: 'Close stale issues and PRs'
+on:
+  schedule:
+    # Once every day at midnight UTC
+    - cron: "0 0 * * *" 
+  workflow_dispatch: # Allow to run workflow manually
+  issue_comment: # Run workflow on comments  
+
+jobs:
+  stale:
+    runs-on: ubuntu-latest
+    permissions:
+      issues: write
+      pull-requests: write
+    steps:
+      - name: Mark/Close Stale Issues and Pull Requests 🗑️
+        uses: actions/stale@v4
+        with:
+          repo-token: ${{ secrets.GITHUB_TOKEN }}
+          days-before-stale: 60
+          days-before-close: 7
+          stale-issue-message: >
+            This issue has been automatically marked as stale because it has not had
+            recent activity. It will be closed if no further activity occurs.
+          stale-pr-message: >
+            This pull request has been automatically marked as stale because it has not had
+            recent activity. It will be closed if no further activity occurs.
+          exempt-issue-labels: "pinned,security,enhancement"
+          exempt-pr-labels: "pinned,security,enhancement"
+          stale-issue-label: "stale"
+          stale-pr-label: "stale"
+          operations-per-run: "250"
+          ascending: "true"
+          #DRY-RUN
+          debug-only: "false"
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/.gitignore b/mailcow/src/mailcow-dockerized/.gitignore
index 90e2e49..06328b8 100644
--- a/mailcow/src/mailcow-dockerized/.gitignore
+++ b/mailcow/src/mailcow-dockerized/.gitignore
@@ -1,54 +1,64 @@
-rebuild-images.sh
-data/conf/sogo/sieve.creds
+!data/conf/nginx/dynmaps.conf
+!data/conf/nginx/meta_exporter.conf
+!data/conf/nginx/site.conf
+!/**/.gitkeep
+*.iml
+.idea
+.vscode/*
+data/assets/ssl-example/*
+data/assets/ssl/*
+data/conf/borgmatic/
 data/conf/clamav/whitelist.ign2
-data/conf/phpfpm/sogo-sso/sogo-sso.pass
+data/conf/dovecot/acl_anyone
 data/conf/dovecot/dovecot-master.passwd
 data/conf/dovecot/dovecot-master.userdb
-mailcow.conf
-mailcow.conf_backup
-data/conf/nginx/*.active
-data/conf/postfix/sni.map
-data/conf/postfix/sni.map.db
-data/conf/postfix/extra.cf
-data/conf/postfix/sql
-data/conf/postfix/custom_transport.pcre
-data/conf/postfix/custom_postscreen_whitelist.cidr
-data/conf/postfix/allow_mailcow_local.regexp
-data/conf/dovecot/sql
-data/conf/dovecot/lua
+data/conf/dovecot/extra.conf
 data/conf/dovecot/global_sieve_*
-data/conf/dovecot/sogo_trusted_ip.conf
-data/conf/nextcloud-*.bak
-data/web/inc/vars.local.inc.php
-data/web/css/build/0081-custom-mailcow.css
-data/assets/ssl/*
-.vscode/*
-.idea
-*.iml
-data/web/.well-known/acme-challenge
-data/web/nextcloud*/
-data/web/rc*/
-data/conf/rspamd/local.d/*
-data/conf/rspamd/override.d/*
-!data/conf/nginx/dynmaps.conf
-!data/conf/nginx/site.conf
-!data/conf/nginx/meta_exporter.conf
-data/conf/nginx/*.conf
-data/conf/nginx/*.custom
-data/conf/nginx/*.bak
-data/conf/dovecot/acl_anyone
-data/conf/dovecot/mail_plugins*
 data/conf/dovecot/last_login
+data/conf/dovecot/lua
+data/conf/dovecot/mail_plugins*
+data/conf/dovecot/shared_namespace.conf
 data/conf/dovecot/sni.conf
 data/conf/dovecot/sogo-sso.conf
-data/conf/dovecot/extra.conf
-data/conf/dovecot/shared_namespace.conf
-data/conf/rspamd/custom/*
+data/conf/dovecot/sogo_trusted_ip.conf
+data/conf/dovecot/sql
+data/conf/nextcloud-*.bak
+data/conf/nginx/*.active
+data/conf/nginx/*.bak
+data/conf/nginx/*.conf
+data/conf/nginx/*.custom
+data/conf/phpfpm/sogo-sso/sogo-sso.pass
 data/conf/portainer/
-data/hooks/
+data/conf/postfix/allow_mailcow_local.regexp
+data/conf/postfix/custom_postscreen_whitelist.cidr
+data/conf/postfix/custom_transport.pcre
+data/conf/postfix/extra.cf
+data/conf/postfix/sni.map
+data/conf/postfix/sni.map.db
+data/conf/postfix/sql
+data/conf/rspamd/custom/*
+data/conf/rspamd/local.d/*
+data/conf/rspamd/override.d/*
+data/conf/sogo/custom-theme.js
+data/conf/sogo/plist_ldap
+data/conf/sogo/sieve.creds
+data/conf/sogo/sogo-full.svg
 data/gitea/
 data/gogs/
-data/conf/sogo/plist_ldap
-update_diffs/
+data/hooks/dovecot/*
+data/hooks/phpfpm/*
+data/hooks/postfix/*
+data/hooks/rspamd/*
+data/hooks/sogo/*
+data/hooks/unbound/*
+data/web/.well-known/acme-challenge
+data/web/css/build/0081-custom-mailcow.css
+data/web/inc/vars.local.inc.php
+data/web/nextcloud*/
+data/web/rc*/
 docker-compose.override.yml
+mailcow.conf
+mailcow.conf_backup
+rebuild-images.sh
 refresh_images.sh
+update_diffs/
diff --git a/mailcow/src/mailcow-dockerized/.gitrepo b/mailcow/src/mailcow-dockerized/.gitrepo
index 00f8a98..a93e697 100644
--- a/mailcow/src/mailcow-dockerized/.gitrepo
+++ b/mailcow/src/mailcow-dockerized/.gitrepo
@@ -6,7 +6,7 @@
 [subrepo]
 	remote = https://github.com/mailcow/mailcow-dockerized.git
 	branch = master
-	commit = 6f14955b698764267f381048cbd23accaf074fd9
+	commit = 649a5c0159a99086c2ce231c2c04a1b906e24d46
 	parent = 6e270560206c2f99e57faf1c6de62268037aeb62
 	method = merge
 	cmdver = 0.4.3
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/acme/Dockerfile b/mailcow/src/mailcow-dockerized/data/Dockerfiles/acme/Dockerfile
index 8369ce3..a19c434 100644
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/acme/Dockerfile
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/acme/Dockerfile
@@ -1,4 +1,4 @@
-FROM alpine:3.11
+FROM alpine:3.13
 
 LABEL maintainer "Andre Peters <andre.peters@servercow.de>"
 
@@ -14,8 +14,9 @@
   tini \
   tzdata \
   python3 \
-  && python3 -m pip install --upgrade pip \
-  && python3 -m pip install acme-tiny
+  py3-pip \
+  && pip3 install --upgrade pip \
+  && pip3 install acme-tiny
 
 COPY acme.sh /srv/acme.sh
 COPY functions.sh /srv/functions.sh
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/acme/acme.sh b/mailcow/src/mailcow-dockerized/data/Dockerfiles/acme/acme.sh
index 5d5da1e..4f5cb80 100755
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/acme/acme.sh
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/acme/acme.sh
@@ -155,6 +155,18 @@
   fi
   if [[ ! -f ${ACME_BASE}/acme/account.pem ]]; then
     log_f "Generating missing Lets Encrypt account key..."
+    if [[ ! -z ${ACME_CONTACT} ]]; then
+      if ! verify_email "${ACME_CONTACT}"; then
+        log_f "Invalid email address, will not start registration!"
+        sleep 365d
+        exec $(readlink -f "$0")
+      else
+        ACME_CONTACT_PARAMETER="--contact mailto:${ACME_CONTACT}"
+        log_f "Valid email address, using ${ACME_CONTACT} for registration"
+      fi
+    else
+      ACME_CONTACT_PARAMETER=""
+    fi
     openssl genrsa 4096 > ${ACME_BASE}/acme/account.pem
   else
     log_f "Using existing Lets Encrypt account key ${ACME_BASE}/acme/account.pem"
@@ -207,22 +219,9 @@
   IPV6=$(get_ipv6)
   log_f "OK: ${IPV4}, ${IPV6:-"0000:0000:0000:0000:0000:0000:0000:0000"}"
 
-  # Hard-fail on CAA errors for MAILCOW_HOSTNAME
-  MH_PARENT_DOMAIN=$(echo ${MAILCOW_HOSTNAME} | cut -d. -f2-)
-  MH_CAAS=( $(dig CAA ${MH_PARENT_DOMAIN} +short | sed -n 's/\d issue "\(.*\)"/\1/p') )
-  if [[ ! -z ${MH_CAAS} ]]; then
-    if [[ ${MH_CAAS[@]} =~ "letsencrypt.org" ]]; then
-      log_f "Validated CAA for parent domain ${MH_PARENT_DOMAIN}"
-    else
-      log_f "Skipping ACME validation: Lets Encrypt disallowed for ${MAILCOW_HOSTNAME} by CAA record, retrying in 1h..."
-      sleep 1h
-      exec $(readlink -f "$0")
-    fi
-  fi
-
   #########################################
   # IP and webroot challenge verification #
-  SQL_DOMAINS=$(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT domain FROM domain WHERE backupmx=0" -Bs)
+  SQL_DOMAINS=$(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "SELECT domain FROM domain WHERE backupmx=0 and active=1" -Bs)
   if [[ ! $? -eq 0 ]]; then
     log_f "Failed to read SQL domains, retrying in 1 minute..."
     sleep 1m
@@ -290,7 +289,7 @@
     VALIDATED_CERTIFICATES+=("${CERT_NAME}")
 
     # obtain server certificate if required
-    DOMAINS=${SERVER_SAN_VALIDATED[@]} /srv/obtain-certificate.sh rsa
+    ACME_CONTACT_PARAMETER=${ACME_CONTACT_PARAMETER} DOMAINS=${SERVER_SAN_VALIDATED[@]} /srv/obtain-certificate.sh rsa
     RETURN="$?"
     if [[ "$RETURN" == "0" ]]; then # 0 = cert created successfully
       CERT_AMOUNT_CHANGED=1
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/acme/functions.sh b/mailcow/src/mailcow-dockerized/data/Dockerfiles/acme/functions.sh
index 454946d..183be01 100644
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/acme/functions.sh
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/acme/functions.sh
@@ -16,6 +16,15 @@
   fi
 }
 
+verify_email(){
+  regex="^(([A-Za-z0-9]+((\.|\-|\_|\+)?[A-Za-z0-9]?)*[A-Za-z0-9]+)|[A-Za-z0-9]+)@(([A-Za-z0-9]+)+((\.|\-|\_)?([A-Za-z0-9]+)+)*)+\.([A-Za-z]{2,})+$"
+  if [[ $1 =~ ${regex} ]]; then
+    return 0
+  else
+    return 1
+  fi
+}
+
 verify_hash_match(){
   CERT_HASH=$(openssl x509 -in "${1}" -noout -pubkey | openssl md5)
   KEY_HASH=$(openssl pkey -in "${2}" -pubout | openssl md5)
@@ -33,7 +42,7 @@
   local IPV4_SRCS=
   local TRY=
   IPV4_SRCS[0]="ip4.mailcow.email"
-  IPV4_SRCS[1]="ip4.korves.net"
+  IPV4_SRCS[1]="ip4.nevondo.com"
   until [[ ! -z ${IPV4} ]] || [[ ${TRY} -ge 10 ]]; do
     IPV4=$(curl --connect-timeout 3 -m 10 -L4s ${IPV4_SRCS[$RANDOM % ${#IPV4_SRCS[@]} ]} | grep -E "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$")
     [[ ! -z ${TRY} ]] && sleep 1
@@ -46,8 +55,8 @@
   local IPV6=
   local IPV6_SRCS=
   local TRY=
-  IPV6_SRCS[0]="ip6.korves.net"
-  IPV6_SRCS[1]="ip6.mailcow.email"
+  IPV6_SRCS[0]="ip6.mailcow.email"
+  IPV6_SRCS[1]="ip6.nevondo.com"
   until [[ ! -z ${IPV6} ]] || [[ ${TRY} -ge 10 ]]; do
     IPV6=$(curl --connect-timeout 3 -m 10 -L6s ${IPV6_SRCS[$RANDOM % ${#IPV6_SRCS[@]} ]} | grep "^\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}$")
     [[ ! -z ${TRY} ]] && sleep 1
@@ -60,6 +69,17 @@
     DOMAIN=$1
     A_DOMAIN=$(dig A ${DOMAIN} +short | tail -n 1)
     AAAA_DOMAIN=$(dig AAAA ${DOMAIN} +short | tail -n 1)
+    # Hard-fail on CAA errors for MAILCOW_HOSTNAME
+    PARENT_DOMAIN=$(echo ${DOMAIN} | cut -d. -f2-)
+    CAAS=( $(dig CAA ${PARENT_DOMAIN} +short | sed -n 's/\d issue "\(.*\)"/\1/p') )
+    if [[ ! -z ${CAAS} ]]; then
+      if [[ ${CAAS[@]} =~ "letsencrypt.org" ]]; then
+        log_f "Validated CAA for parent domain ${PARENT_DOMAIN}"
+      else
+        log_f "Lets Encrypt disallowed for ${PARENT_DOMAIN} by CAA record"
+        return 1
+      fi
+    fi
     # Check if CNAME without v6 enabled target
     if [[ ! -z ${AAAA_DOMAIN} ]] && [[ -z $(echo ${AAAA_DOMAIN} | grep "^\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}$") ]]; then
       AAAA_DOMAIN=
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/acme/obtain-certificate.sh b/mailcow/src/mailcow-dockerized/data/Dockerfiles/acme/obtain-certificate.sh
index 8264a2c..a151dff 100644
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/acme/obtain-certificate.sh
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/acme/obtain-certificate.sh
@@ -93,8 +93,8 @@
   sleep 2
 done
 log_f "Resolver OK"
-
-ACME_RESPONSE=$(acme-tiny ${DIRECTORY_URL} \
+log_f "Using command acme-tiny ${DIRECTORY_URL} ${ACME_CONTACT_PARAMETER} --account-key ${ACME_BASE}/acme/account.pem --disable-check --csr ${CSR} --acme-dir /var/www/acme/"
+ACME_RESPONSE=$(acme-tiny ${DIRECTORY_URL} ${ACME_CONTACT_PARAMETER} \
   --account-key ${ACME_BASE}/acme/account.pem \
   --disable-check \
   --csr ${CSR} \
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/clamd/Dockerfile b/mailcow/src/mailcow-dockerized/data/Dockerfiles/clamd/Dockerfile
index 4c30cf2..b251d96 100644
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/clamd/Dockerfile
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/clamd/Dockerfile
@@ -2,7 +2,7 @@
 
 LABEL maintainer "André Peters <andre.peters@servercow.de>"
 
-ARG CLAMAV=0.103.0
+ARG CLAMAV=0.103.2
 
 RUN apt-get update && apt-get install -y --no-install-recommends \
   ca-certificates \
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dockerapi/Dockerfile b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dockerapi/Dockerfile
index 16c1af5..645503a 100644
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dockerapi/Dockerfile
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dockerapi/Dockerfile
@@ -1,11 +1,17 @@
-FROM alpine:3.11
+FROM alpine:3.13
+
 LABEL maintainer "Andre Peters <andre.peters@servercow.de>"
 
 WORKDIR /app
 
-RUN apk add --update --no-cache python3 openssl tzdata \
- && pip3 install --upgrade pip \
- && pip3 install --upgrade docker flask flask-restful
+RUN apk add --update --no-cache python3 \
+  py3-pip \
+  openssl \
+  tzdata \
+&& pip3 install --upgrade pip \
+  docker \
+  flask \
+  flask-restful
 
 COPY dockerapi.py /app/
 
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/Dockerfile b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/Dockerfile
index 219dd14..1990097 100644
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/Dockerfile
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/Dockerfile
@@ -2,8 +2,9 @@
 LABEL maintainer "Andre Peters <andre.peters@servercow.de>"
 
 ARG DEBIAN_FRONTEND=noninteractive
-ARG DOVECOT=2.3.13
+ARG DOVECOT=2.3.14.1
 ENV LC_ALL C
+ENV GOSU_VERSION 1.12
 
 # Add groups and users before installing Dovecot to not break compatibility
 RUN groupadd -g 5000 vmail \
@@ -20,7 +21,6 @@
   apt-transport-https \
   ca-certificates \
   cpanminus \
-  cron \
   curl \
   dnsutils \
   dirmngr \
@@ -74,6 +74,7 @@
   liburi-perl \
   libwww-perl \
   lua-sql-mysql \
+  lua-socket \
   mariadb-client \
   procps \
   python3-pip \
@@ -82,6 +83,11 @@
   syslog-ng \
   syslog-ng-core \
   syslog-ng-mod-redis \
+  wget \
+  && dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')" \
+  && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch" \
+  && chmod +x /usr/local/bin/gosu \
+  && gosu nobody true \
   && apt-key adv --fetch-keys https://repo.dovecot.org/DOVECOT-REPO-GPG \
   && echo "deb https://repo.dovecot.org/ce-${DOVECOT}/debian/buster buster main" > /etc/apt/sources.list.d/dovecot.list \
   && apt-get update \
@@ -100,15 +106,14 @@
   && apt-get autoremove --purge -y \
   && apt-get autoclean \
   && rm -rf /var/lib/apt/lists/* \
-  && rm -rf /tmp/* /var/tmp/* /etc/cron.daily/* /root/.cache/
+  && rm -rf /tmp/* /var/tmp/* /root/.cache/
 
 COPY trim_logs.sh /usr/local/bin/trim_logs.sh
 COPY clean_q_aged.sh /usr/local/bin/clean_q_aged.sh
 COPY syslog-ng.conf /etc/syslog-ng/syslog-ng.conf
 COPY syslog-ng-redis_slave.conf /etc/syslog-ng/syslog-ng-redis_slave.conf
 COPY imapsync /usr/local/bin/imapsync
-COPY postlogin.sh /usr/local/bin/postlogin.sh
-COPY imapsync_cron.pl /usr/local/bin/imapsync_cron.pl
+COPY imapsync_runner.pl /usr/local/bin/imapsync_runner.pl
 COPY report-spam.sieve /usr/lib/dovecot/sieve/report-spam.sieve
 COPY report-ham.sieve /usr/lib/dovecot/sieve/report-ham.sieve
 COPY rspamd-pipe-ham /usr/lib/dovecot/sieve/rspamd-pipe-ham
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/docker-entrypoint.sh b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/docker-entrypoint.sh
index 9c626fa..5ea1609 100755
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/docker-entrypoint.sh
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/docker-entrypoint.sh
@@ -7,7 +7,7 @@
   sleep 2
 done
 
-until dig +short mailcow.email @unbound > /dev/null; do
+until dig +short mailcow.email > /dev/null; do
   echo "Waiting for DNS..."
   sleep 1
 done
@@ -60,14 +60,6 @@
 }
 EOF
 
-# Write last logins to Redis
-if [[ ! -z ${REDIS_SLAVEOF_IP} ]]; then
-  cp /etc/syslog-ng/syslog-ng-redis_slave.conf /etc/syslog-ng/syslog-ng.conf
-  echo -n "redis:host=${REDIS_SLAVEOF_IP}:port=${REDIS_SLAVEOF_PORT}" > /etc/dovecot/last_login
-else
-  echo -n "redis:host=${IPV4_NETWORK}.249:port=6379" > /etc/dovecot/last_login
-fi
-
 # Create dict used for sieve pre and postfilters
 cat <<EOF > /etc/dovecot/sql/dovecot-dict-sql-sieve_before.conf
 # Autogenerated by mailcow
@@ -118,13 +110,13 @@
 echo -n ${ACL_ANYONE} > /etc/dovecot/acl_anyone
 
 if [[ "${SKIP_SOLR}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
-echo -n 'quota acl zlib listescape mail_crypt mail_crypt_acl mail_log notify replication last_login' > /etc/dovecot/mail_plugins
-echo -n 'quota imap_quota imap_acl acl zlib imap_zlib imap_sieve listescape mail_crypt mail_crypt_acl notify replication mail_log last_login' > /etc/dovecot/mail_plugins_imap
-echo -n 'quota sieve acl zlib listescape mail_crypt mail_crypt_acl notify replication' > /etc/dovecot/mail_plugins_lmtp
+echo -n 'quota acl zlib mail_crypt mail_crypt_acl mail_log notify listescape replication' > /etc/dovecot/mail_plugins
+echo -n 'quota imap_quota imap_acl acl zlib imap_zlib imap_sieve mail_crypt mail_crypt_acl notify listescape replication mail_log' > /etc/dovecot/mail_plugins_imap
+echo -n 'quota sieve acl zlib mail_crypt mail_crypt_acl notify listescape replication' > /etc/dovecot/mail_plugins_lmtp
 else
-echo -n 'quota acl zlib listescape mail_crypt mail_crypt_acl mail_log notify fts fts_solr replication last_login' > /etc/dovecot/mail_plugins
-echo -n 'quota imap_quota imap_acl acl zlib imap_zlib imap_sieve listescape mail_crypt mail_crypt_acl notify mail_log fts fts_solr replication last_login' > /etc/dovecot/mail_plugins_imap
-echo -n 'quota sieve acl zlib listescape mail_crypt mail_crypt_acl fts fts_solr notify replication' > /etc/dovecot/mail_plugins_lmtp
+echo -n 'quota acl zlib mail_crypt mail_crypt_acl mail_log notify fts fts_solr listescape replication' > /etc/dovecot/mail_plugins
+echo -n 'quota imap_quota imap_acl acl zlib imap_zlib imap_sieve mail_crypt mail_crypt_acl notify mail_log fts fts_solr listescape replication' > /etc/dovecot/mail_plugins_imap
+echo -n 'quota sieve acl zlib mail_crypt mail_crypt_acl fts fts_solr notify listescape replication' > /etc/dovecot/mail_plugins_lmtp
 fi
 chmod 644 /etc/dovecot/mail_plugins /etc/dovecot/mail_plugins_imap /etc/dovecot/mail_plugins_lmtp /templates/quarantine.tpl
 
@@ -136,36 +128,82 @@
 iterate_query = SELECT username FROM mailbox WHERE active = '1' OR active = '2';
 EOF
 
-# Create pass dict for Dovecot
-cat <<EOF > /etc/dovecot/sql/dovecot-dict-sql-passdb.conf
-# Autogenerated by mailcow
-driver = mysql
-connect = "host=/var/run/mysqld/mysqld.sock dbname=${DBNAME} user=${DBUSER} password=${DBPASS}"
-default_pass_scheme = ${MAILCOW_PASS_SCHEME}
-password_query = SELECT password FROM mailbox WHERE active = '1' AND username = '%u' AND domain IN (SELECT domain FROM domain WHERE domain='%d' AND active='1') AND JSON_UNQUOTE(JSON_VALUE(attributes, '$.force_pw_update')) != '1' AND (JSON_UNQUOTE(JSON_VALUE(attributes, '$.%s_access')) = '1' OR ('%s' != 'imap' AND '%s' != 'pop3'))
-EOF
-
-cat <<EOF > /etc/dovecot/lua/app-passdb.lua
+cat <<EOF > /etc/dovecot/lua/passwd-verify.lua
 function auth_password_verify(req, pass)
+
   if req.domain == nil then
     return dovecot.auth.PASSDB_RESULT_USER_UNKNOWN, "No such user"
   end
+
   if cur == nil then
     script_init()
   end
-  local cur,errorString = con:execute(string.format([[SELECT mailbox, password FROM app_passwd
-    WHERE mailbox = '%s'
+
+  if req.user == nil then
+    req.user = ''
+  end
+
+  respbody = {}
+
+  -- check against mailbox passwds
+  local cur,errorString = con:execute(string.format([[SELECT password FROM mailbox
+    WHERE username = '%s'
       AND active = '1'
-      AND domain IN (SELECT domain FROM domain WHERE domain='%s' AND active='1')]], con:escape(req.user), con:escape(req.domain)))
+      AND domain IN (SELECT domain FROM domain WHERE domain='%s' AND active='1')
+      AND IFNULL(JSON_UNQUOTE(JSON_VALUE(mailbox.attributes, '$.force_pw_update')), 0) != '1'
+      AND IFNULL(JSON_UNQUOTE(JSON_VALUE(attributes, '$.%s_access')), 1) = '1']], con:escape(req.user), con:escape(req.domain), con:escape(req.service)))
   local row = cur:fetch ({}, "a")
   while row do
     if req.password_verify(req, row.password, pass) == 1 then
       cur:close()
+      con:execute(string.format([[REPLACE INTO sasl_log (service, app_password, username, real_rip)
+        VALUES ("%s", 0, "%s", "%s")]], con:escape(req.service), con:escape(req.user), con:escape(req.real_rip)))
       return dovecot.auth.PASSDB_RESULT_OK, "password=" .. pass
     end
     row = cur:fetch (row, "a")
   end
-  return dovecot.auth.PASSDB_RESULT_USER_UNKNOWN, "No such user"
+
+  -- check against app passwds
+  local cur,errorString = con:execute(string.format([[SELECT app_passwd.id, app_passwd.password FROM app_passwd
+    INNER JOIN mailbox ON mailbox.username = app_passwd.mailbox
+    WHERE mailbox = '%s'
+      AND IFNULL(JSON_UNQUOTE(JSON_VALUE(mailbox.attributes, '$.%s_access')), 1) = '1'
+      AND IFNULL(JSON_UNQUOTE(JSON_VALUE(mailbox.attributes, '$.force_pw_update')), 0) != '1'
+      AND app_passwd.active = '1'
+      AND mailbox.active = '1'
+      AND app_passwd.domain IN (SELECT domain FROM domain WHERE domain='%s' AND active='1')]], con:escape(req.user), con:escape(req.service), con:escape(req.domain)))
+  local row = cur:fetch ({}, "a")
+  while row do
+    if req.password_verify(req, row.password, pass) == 1 then
+      cur:close()
+      con:execute(string.format([[REPLACE INTO sasl_log (service, app_password, username, real_rip)
+        VALUES ("%s", %d, "%s", "%s")]], con:escape(req.service), row.id, con:escape(req.user), con:escape(req.real_rip)))
+      return dovecot.auth.PASSDB_RESULT_OK, "password=" .. pass
+    end
+    row = cur:fetch (row, "a")
+  end
+
+  return dovecot.auth.PASSDB_RESULT_PASSWORD_MISMATCH, "Failed to authenticate"
+
+  -- PoC
+  -- local reqbody = string.format([[{
+  --   "success":0,
+  --   "service":"%s",
+  --   "app_password":false,
+  --   "username":"%s",
+  --   "real_rip":"%s"
+  -- }]], con:escape(req.service), con:escape(req.user), con:escape(req.real_rip))
+  -- http.request {
+  --   method = "POST",
+  --   url = "http://nginx:8081/sasl_log.php",
+  --   source = ltn12.source.string(reqbody),
+  --   headers = {
+  --     ["content-type"] = "application/json",
+  --     ["content-length"] = tostring(#reqbody)
+  --   },
+  --   sink = ltn12.sink.table(respbody)
+  -- }
+
 end
 
 function auth_passdb_lookup(req)
@@ -174,6 +212,9 @@
 
 function script_init()
   mysql = require "luasql.mysql"
+  http = require "socket.http"
+  http.TIMEOUT = 5
+  ltn12 = require "ltn12"
   env  = mysql.mysql()
   con = env:connect("__DBNAME__","__DBUSER__","__DBPASS__","localhost")
   return 0
@@ -185,6 +226,12 @@
 end
 EOF
 
+# Replace patterns in app-passdb.lua
+sed -i "s/__DBUSER__/${DBUSER}/g" /etc/dovecot/lua/passwd-verify.lua
+sed -i "s/__DBPASS__/${DBPASS}/g" /etc/dovecot/lua/passwd-verify.lua
+sed -i "s/__DBNAME__/${DBNAME}/g" /etc/dovecot/lua/passwd-verify.lua
+
+
 # Migrate old sieve_after file
 [[ -f /etc/dovecot/sieve_after ]] && mv /etc/dovecot/sieve_after /etc/dovecot/global_sieve_after
 # Create global sieve scripts
@@ -199,6 +246,8 @@
 
 # Cleanup random user maildirs
 rm -rf /var/vmail/mailcow.local/*
+# Cleanup PIDs
+[[ -f /tmp/quarantine_notify.pid ]] && rm /tmp/quarantine_notify.pid
 
 # create sni configuration
 echo "" > /etc/dovecot/sni.conf
@@ -251,31 +300,20 @@
 }
 EOF
 
-if [[ "${ALLOW_ADMIN_EMAIL_LOGIN}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
-    # Create random master Password for SOGo 'login as user' via proxy auth
-    RAND_PASS=$(cat /dev/urandom | tr -dc 'a-z0-9' | fold -w 32 | head -n 1)
-    echo -n ${RAND_PASS} > /etc/phpfpm/sogo-sso.pass
-    cat <<EOF > /etc/dovecot/sogo-sso.conf
+# Create random master Password for SOGo SSO
+RAND_PASS=$(cat /dev/urandom | tr -dc 'a-z0-9' | fold -w 32 | head -n 1)
+echo -n ${RAND_PASS} > /etc/phpfpm/sogo-sso.pass
+cat <<EOF > /etc/dovecot/sogo-sso.conf
 # Autogenerated by mailcow
 passdb {
   driver = static
   args = allow_real_nets=${IPV4_NETWORK}.248/32 password={plain}${RAND_PASS}
 }
 EOF
-else
-    rm -f /etc/dovecot/sogo-sso.pass
-    rm -f /etc/dovecot/sogo-sso.conf
-fi
 
-# Hard-code env vars to scripts due to cron not passing them to the scripts
-sed -i "s/__DBUSER__/${DBUSER}/g" /usr/local/bin/imapsync_cron.pl /usr/local/bin/quarantine_notify.py /usr/local/bin/clean_q_aged.sh /etc/dovecot/lua/app-passdb.lua
-sed -i "s/__DBPASS__/${DBPASS}/g" /usr/local/bin/imapsync_cron.pl /usr/local/bin/quarantine_notify.py /usr/local/bin/clean_q_aged.sh /etc/dovecot/lua/app-passdb.lua
-sed -i "s/__DBNAME__/${DBNAME}/g" /usr/local/bin/imapsync_cron.pl /usr/local/bin/quarantine_notify.py /usr/local/bin/clean_q_aged.sh /etc/dovecot/lua/app-passdb.lua
-sed -i "s/__MAILCOW_HOSTNAME__/${MAILCOW_HOSTNAME}/g" /usr/local/bin/quarantine_notify.py
-sed -i "s/__LOG_LINES__/${LOG_LINES}/g" /usr/local/bin/trim_logs.sh
 if [[ "${MASTER}" =~ ^([nN][oO]|[nN])+$ ]]; then
-# Toggling MASTER will result in a rebuild of containers, so the quota script will be recreated
-cat <<'EOF' > /usr/local/bin/quota_notify.py
+  # Toggling MASTER will result in a rebuild of containers, so the quota script will be recreated
+  cat <<'EOF' > /usr/local/bin/quota_notify.py
 #!/usr/bin/python3
 import sys
 sys.exit()
@@ -299,8 +337,8 @@
 
 # Fix permissions
 chown root:root /etc/dovecot/sql/*.conf
-chown root:dovecot /etc/dovecot/sql/dovecot-dict-sql-sieve* /etc/dovecot/sql/dovecot-dict-sql-quota* /etc/dovecot/lua/app-passdb.lua
-chmod 640 /etc/dovecot/sql/*.conf /etc/dovecot/lua/app-passdb.lua
+chown root:dovecot /etc/dovecot/sql/dovecot-dict-sql-sieve* /etc/dovecot/sql/dovecot-dict-sql-quota* /etc/dovecot/lua/passwd-verify.lua
+chmod 640 /etc/dovecot/sql/*.conf /etc/dovecot/lua/passwd-verify.lua
 chown -R vmail:vmail /var/vmail/sieve
 chown -R vmail:vmail /var/volatile
 chown -R vmail:vmail /var/vmail_index
@@ -309,8 +347,7 @@
 chown root:tty /dev/console
 chmod +x /usr/lib/dovecot/sieve/rspamd-pipe-ham \
   /usr/lib/dovecot/sieve/rspamd-pipe-spam \
-  /usr/local/bin/imapsync_cron.pl \
-  /usr/local/bin/postlogin.sh \
+  /usr/local/bin/imapsync_runner.pl \
   /usr/local/bin/imapsync \
   /usr/local/bin/trim_logs.sh \
   /usr/local/bin/sa-rules.sh \
@@ -320,27 +357,6 @@
   /usr/local/bin/quota_notify.py \
   /usr/local/bin/repl_health.sh
 
-if [[ "${MASTER}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
-# Setup cronjobs
-echo '* * * * *    nobody  /usr/local/bin/imapsync_cron.pl 2>&1 | /usr/bin/logger' > /etc/cron.d/imapsync
-#echo '30 3 * * *   vmail /usr/local/bin/doveadm quota recalc -A' > /etc/cron.d/dovecot-sync
-echo '* * * * *    vmail /usr/local/bin/trim_logs.sh >> /dev/console 2>&1' > /etc/cron.d/trim_logs
-echo '25 * * * *   vmail /usr/local/bin/maildir_gc.sh >> /dev/console 2>&1' > /etc/cron.d/maildir_gc
-echo '30 1 * * *   root  /usr/local/bin/sa-rules.sh  >> /dev/console 2>&1' > /etc/cron.d/sa-rules
-echo '0 2 * * *    root  /usr/bin/curl http://solr:8983/solr/dovecot-fts/update?optimize=true >> /dev/console 2>&1' > /etc/cron.d/solr-optimize
-echo '*/20 * * * * vmail /usr/local/bin/quarantine_notify.py >> /dev/console 2>&1' > /etc/cron.d/quarantine_notify
-echo '15 4 * * * vmail /usr/local/bin/clean_q_aged.sh >> /dev/console 2>&1' > /etc/cron.d/clean_q_aged
-echo '*/5 * * * *  vmail /usr/local/bin/repl_health.sh >> /dev/console 2>&1' > /etc/cron.d/repl_health
-else
-echo '25 * * * *   vmail /usr/local/bin/maildir_gc.sh >> /dev/console 2>&1' > /etc/cron.d/maildir_gc
-echo '30 1 * * *   root  /usr/local/bin/sa-rules.sh  >> /dev/console 2>&1' > /etc/cron.d/sa-rules
-echo '0 2 * * *    root  /usr/bin/curl http://solr:8983/solr/dovecot-fts/update?optimize=true >> /dev/console 2>&1' > /etc/cron.d/solr-optimize
-echo '*/5 * * * *  vmail /usr/local/bin/repl_health.sh >> /dev/console 2>&1' > /etc/cron.d/repl_health
-fi
-
-# Fix more than 1 hardlink issue
-touch /etc/crontab /etc/cron.*/*
-
 # Prepare environment file for cronjobs
 printenv | sed 's/^\(.*\)$/export \1/g' > /source_env.sh
 
@@ -391,6 +407,6 @@
 
 # For some strange, unknown and stupid reason, Dovecot may run into a race condition, when this file is not touched before it is read by dovecot/auth
 # May be related to something inside Docker, I seriously don't know
-touch /etc/dovecot/lua/app-passdb.lua
+touch /etc/dovecot/lua/passwd-verify.lua
 
 exec "$@"
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/imapsync b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/imapsync
index 4c941f4..07cf58e 100755
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/imapsync
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/imapsync
@@ -1,6 +1,6 @@
 #!/usr/bin/env perl
 
-# $Id: imapsync,v 1.977 2019/12/23 20:18:02 gilles Exp gilles $
+# $Id: imapsync,v 2.148 2021/07/22 14:21:09 gilles Exp gilles $
 # structure
 # pod documentation
 # use pragmas
@@ -25,7 +25,7 @@
 
 =head1 VERSION
 
-This documentation refers to Imapsync $Revision: 1.977 $
+This documentation refers to Imapsync $Revision: 2.148 $
 
 =head1 USAGE
 
@@ -47,54 +47,82 @@
 Imapsync command is a tool allowing incremental and
 recursive imap transfers from one mailbox to another.
 If you don't understand the previous sentence, it's normal,
-it's pedantic computer oriented jargon.
+it's pedantic computer-oriented jargon.
 
 All folders are transferred, recursively, meaning
 the whole folder hierarchy is taken, all messages in them,
-and all messages flags (\Seen \Answered \Flagged etc.)
+and all message flags (\Seen \Answered \Flagged etc.)
 are synced too.
 
 Imapsync reduces the amount of data transferred by not transferring
 a given message if it already resides on the destination side.
 Messages that are on the destination side but not on the
-source side stay as they are (see the --delete2
-option to have a strict sync).
+source side stay as they are. See the --delete2
+option to have strict sync and delete them.
 
-How imapsync knows a message is already on both sides?
+How imapsync know a message is already on both sides?
 Same specific headers and the transfer is done only once.
 By default, the identification headers are
 "Message-Id:" and "Received:" lines
-but this choice can be changed with the --useheader option.
+but this choice can be changed with the --useheader option,
+most often a duplicate problem is solved by using
+--useheader "Message-Id"
+
 
 All flags are preserved, unread messages will stay unread,
 read ones will stay read, deleted will stay deleted.
+In the IMAP protocol, a deleted message is not really deleted,
+it is marked \Deleted and can be undelete. Real destruction
+comes with the EXPUNGE or UIDEXPUNGE IMAP commands.
 
 You can abort the transfer at any time and restart it later,
 imapsync works well with bad connections and interruptions,
 by design. On a terminal hit Ctr-c twice within two seconds
-in order to abort the program. Hit Ctr-c just once makes
+to abort the program. Hit Ctr-c just once makes
 imapsync reconnect to both imap servers.
 
+How do you know the sync is finished and well done?
+When imapsync ends by itself it mentions it with lines like those:
+
+  Exiting with return value 0 (EX_OK: successful termination) 0/50 nb_errors/max_errors PID 301
+  Removing pidfile /tmp/imapsync.pid
+  Log file is LOG_imapsync/2020_11_17_15_59_22_761_test1_test2.txt ( to change it, use --logfile filepath ; or use --nolog to turn off logging )
+
+If you don't have those lines it means that either the sync process is still
+running (or eventually hanging indefinitely) or that it ended without
+a whisper, a strong kill -9 on Linux for example.
+
+If you have those final lines then it means the sync process is properly
+finished. It may have encountered problems though.
+
+A good synchronization is mentioned by some lines above the last ones, especially
+those three lines:
+
+  The sync looks good, all 1745 identified messages in host1 are on host2.
+  There is no unidentified message on host1.
+  Detected 0 errors
+
+
 A classical scenario is synchronizing a mailbox B from another mailbox A
 where you just want to keep a strict copy of A in B. Strict meaning
 all messages in A will be in B but no more.
 
-For this, option --delete2 has to be used, it deletes messages in host2
-folder B that are not in host1 folder A. If you also need to destroy
+For this, option --delete2 can be used, it deletes messages in the host2
+folder B that are not in the host1 folder A. If you also need to destroy
 host2 folders that are not in host1 then use --delete2folders. See also
 --delete2foldersonly and --delete2foldersbutnot to set up exceptions
-on folders to destroy. INBOX will never be destroy, it's a mandatory
-folder in IMAP.
+on folders to destroy. INBOX will never be destroyed, it's a mandatory
+folder in IMAP so imapsync doesn't even try to remove it.
 
 A different scenario is to delete the messages from the source mailbox
 after a successful transfer, it can be a good feature when migrating
 mailboxes since messages will be only on one side. The source account
 will only have messages that are not on the destination yet, ie,
-messages that arrived after a sync or that failed to be copied.
+messages that arrived after a sync or that failed to be transferred.
 
 In that case, use the --delete1 option. Option --delete1 implies also
-option --expunge1 so all messages marked deleted on host1 will be really
-deleted. In IMAP protocol deleting a message does not really delete it,
+the option --expunge1 so all messages marked deleted on host1 will be
+deleted. In IMAP protocol deleting a message does not delete it,
 it marks it with the flag \Deleted, allowing an undelete. Expunging
 a folder removes, definitively, all the messages marked as \Deleted
 in this folder.
@@ -115,17 +143,18 @@
  usage: imapsync [options]
 
 The standard options are the six values forming the credentials.
-Three values on each side are needed in order to log in into the IMAP 
-servers. These six values are a host, a username, and a password, two times.
+Three values on each side are needed in order to login into the IMAP
+servers. These six values are a hostname, a username, and a password, two times.
 
 Conventions used in the following descriptions of the options:
 
  str means string
- int means integer
+ int means integer number
+ flo means float number
  reg means regular expression
  cmd means command
 
- --dry               : Makes imapsync doing nothing for real, just print what
+ --dry               : Makes imapsync doing nothing for real; it just print what
                        would be done without --dry.
 
 =head2 OPTIONS/credentials
@@ -136,18 +165,18 @@
                        Optional since default ports are the
                        well known ports imap/143 or imaps/993.
  --user1        str  : User to login on host1.
- --password1    str  : Password for the user1.
+ --password1    str  : Password of user1.
 
  --host2        str  : "destination" imap server.
  --port2        int  : Port to connect on host2. Optional
  --user2        str  : User to login on host2.
- --password2    str  : Password for the user2.
+ --password2    str  : Password of user2.
 
  --showpasswords     : Shows passwords on output instead of "MASKED".
                        Useful to restart a complete run by just reading
                        the command line used in the log,
                        or to debug passwords.
-                       It's not a secure practice at all.
+                       It's not a secure practice at all!
 
  --passfile1    str  : Password file for the user1. It must contain the
                        password on the first line. This option avoids showing
@@ -155,7 +184,10 @@
  --passfile2    str  : Password file for the user2.
 
 You can also pass the passwords in the environment variables
-IMAPSYNC_PASSWORD1 and IMAPSYNC_PASSWORD2
+IMAPSYNC_PASSWORD1 and IMAPSYNC_PASSWORD2. If you don't pass
+the user1 password via --password1 nor --passfile1 nor $IMAPSYNC_PASSWORD1
+then imapsync will prompt to enter the password on the terminal.
+Same thing for user2 password.
 
 =head2 OPTIONS/encryption
 
@@ -180,11 +212,16 @@
  --sslargs2     str  : Pass any ssl parameter for host2 ssl or tls connection.
                        See --sslargs1
 
- --timeout1     int  : Connection timeout in seconds for host1.
+ --timeout1     flo  : Connection timeout in seconds for host1.
                        Default is 120 and 0 means no timeout at all.
- --timeout2     int  : Connection timeout in seconds for host2.
+ --timeout2     flo  : Connection timeout in seconds for host2.
                        Default is 120 and 0 means no timeout at all.
 
+                       Caveat, under CGI context, you may encounter a timeout
+                       from the webserver, killing imapsync and the imap connexions.
+                       See the document INSTALL.OnlineUI.txt and search
+                       for "Timeout" for how to deal with this issue.
+
 
 =head2 OPTIONS/authentication
 
@@ -205,6 +242,28 @@
  --domain1      str  : Domain on host1 (NTLM authentication).
  --domain2      str  : Domain on host2 (NTLM authentication).
 
+ --oauthaccesstoken1 str : The access token to authenticate with OAUTH2.
+                       It will be combined with the --user1 value to form the 
+                       string to pass with XOAUTH2 authentication.
+                       The password given by --password1 or --passfile1
+                       is ignored.
+                       Instead of the access token itself, the value can be a
+                       file containing the access token on the first line.
+                       If the value is a file, imapsync reads its first line
+                       and take this line as the access token. The advantage
+                       of the file is that if the access token changes then
+                       imapsync can read it again when it needs to reconnect 
+                       during a run.
+
+
+ --oauthaccesstoken2 str : same thing as --oauthaccesstoken1 
+
+ --oauthdirect1 str  : The direct string to pass with XOAUTH2 authentication.
+                       The password given by --password1 or --passfile1 and 
+                       the user given by --user1 are ignored.
+
+ --oauthdirect2 str  : same thing as oauthdirect1
+ 
 
 =head2 OPTIONS/folders
 
@@ -241,6 +300,9 @@
 
  --f1f2    str1=str2 : Force folder str1 to be synced to str2,
                        --f1f2 overrides --automap and --regextrans2.
+                       Use several --f1f2 options to map several folders.
+                       Option --f1f2 is a one to one only folder mapping,
+                       str1 and str2 have to be full path folder names.
 
  --subfolder2   str  : Syncs the whole host1 folders hierarchy under the
                        host2 folder named str.
@@ -285,7 +347,7 @@
  --regextrans2  reg  : and this one. etc.
                        When you play with the --regextrans2 option, first
                        add also the safe options --dry --justfolders
-                       Then, when happy, remove --dry for a run, then 
+                       Then, when happy, remove --dry for a run, then
                        remove --justfolders for the next ones.
                        Have in mind that --regextrans2 is applied after
                        the automatic prefix and separator inversion.
@@ -309,9 +371,11 @@
                        Default is system specific, Unix is /tmp but
                        /tmp is often too small and deleted at reboot.
                        --tmpdir /var/tmp should be better.
+
  --pidfile      str  : The file where imapsync pid is written,
-                       it can be dirname/filename.
-                       Default name is imapsync.pid in tmpdir.
+                       it can be dirname/filename complete path.
+                       The default name is imapsync.pid in tmpdir.
+
  --pidfilelocking    : Abort if pidfile already exists. Useful to avoid
                        concurrent transfers on the same mailbox.
 
@@ -329,7 +393,7 @@
 where:
 
  2019_12_22_23_57_59_532 is nearly the date of the start
- YYYY_MM_DD_HH_MM_SS_mmm 
+ YYYY_MM_DD_HH_MM_SS_mmm
  year_month_day_hour_minute_seconde_millisecond
 
 and user1 user2 are the --user1 --user2 values.
@@ -337,18 +401,18 @@
 =head2 OPTIONS/messages
 
  --skipmess     reg  : Skips messages matching the regex.
-                       Example: 'm/[\x80-ff]/' # to avoid 8bits messages.
+                       Example: 'm/[\x80-\xff]/' # to avoid 8bits messages.
                        --skipmess is applied before --regexmess
  --skipmess     reg  : or this one, etc.
 
  --skipcrossduplicates : Avoid copying messages that are already copied
-                         in another folder,  good from Gmail to X when
-                         X is not also Gmail.
+                         in another folder, good from Gmail to XYZ when
+                         XYZ is not also Gmail.
                          Activated with --gmail1 unless --noskipcrossduplicates
 
  --debugcrossduplicates : Prints which messages (UIDs) are skipped with
-                          --skipcrossduplicates (and in what other folders
-                          they are).
+                          --skipcrossduplicates and in what other folders
+                          they are.
 
  --pipemess     cmd  : Apply this cmd command to each message content
                        before the copy.
@@ -364,20 +428,21 @@
  --disarmreadreceipts : Disarms read receipts (host2 Exchange issue)
 
  --regexmess    reg  : Apply the whole regex to each message before transfer.
-                       Example: 's/\000/ /g' # to replace null by space.
+                       Example: 's/\000/ /g' # to replace null characters
+                       by spaces.
  --regexmess    reg  : and this one, etc.
 
 =head2 OPTIONS/labels
 
-Gmail present labels as folders in imap. Imapsync can accelerate the sync 
+Gmail present labels as folders in imap. Imapsync can accelerate the sync
 by syncing X-GM-LABELS, it will avoid to transfer messages when they are
-already on host2.
+already on host2 in another folder.
 
 
  --synclabels        : Syncs also Gmail labels when a message is copied to host2.
                        Activated by default with --gmail1 --gmail2 unless
                        --nosynclabels is added.
-                       
+
  --resynclabels      : Resyncs Gmail labels when a message is already on host2.
                        Activated by default with --gmail1 --gmail2 unless
                        --noresynclabels is added.
@@ -400,6 +465,9 @@
                        May be useful when a user has already started to play
                        with its host2 account.
 
+ --filterbuggyflags  : Filter flags known to be buggy and generators of errors
+                       "BAD Invalid system flag" or "NO APPEND Invalid flag list".
+
 =head2 OPTIONS/deletions
 
  --delete1           : Deletes messages on host1 server after a successful
@@ -424,16 +492,18 @@
                          Useful with --delete1 since what remains on host1
                          is only what failed to be synced.
 
- --delete2           : Delete messages in host2 that are not in
-                       host1 server. Useful for backup or pre-sync.
+ --delete2           : Delete messages in the host2 account that are not in
+                       the host1 account. Useful for backup or pre-sync.
                        --delete2 implies --uidexpunge2
 
- --delete2duplicates : Delete messages in host2 that are duplicates.
+ --delete2duplicates : Deletes messages in host2 that are duplicates in host2.
                        Works only without --useuid since duplicates are
                        detected with an header part of each message.
+                       NB: --delete2duplicates is far less violent than --delete2
+                       since it removes only duplicates.
 
- --delete2folders    : Delete folders in host2 that are not in host1 server.
-                       For safety, first try it like this (it is safe):
+ --delete2folders    : Delete folders in host2 that are not in host1.
+                       For safety, first try it like this, it is safe:
                        --delete2folders --dry --justfolders --nofoldersizes
                        and see what folders will be deleted.
 
@@ -455,10 +525,10 @@
  If you encounter problems with dates, see also:
  https://imapsync.lamiral.info/FAQ.d/FAQ.Dates.txt
 
- --syncinternaldates : Sets the internal dates on host2 same as host1.
+ --syncinternaldates : Sets the internal dates on host2 as the same as host1.
                        Turned on by default. Internal date is the date
-                       a message arrived on a host (Unix mtime).
- --idatefromheader   : Sets the internal dates on host2 same as the
+                       a message arrived on a host (Unix mtime usually).
+ --idatefromheader   : Sets the internal dates on host2 as same as the
                        ones in "Date:" headers.
 
 
@@ -467,6 +537,7 @@
 
  --maxsize      int  : Skip messages larger  (or equal) than  int  bytes
  --minsize      int  : Skip messages smaller (or equal) than  int  bytes
+
  --maxage       int  : Skip messages older than  int days.
                        final stats (skipped) don't count older messages
                        see also --minage
@@ -487,18 +558,30 @@
  --search2      str  : Same as --search but for selecting host2 messages only.
                        So --search CRIT equals --search1 CRIT --search2 CRIT
 
+ --noabletosearch    : Makes --minage and --maxage options use the internal
+                       dates given by a FETCH imap command instead of the
+                       "Date:" header. Internal date is the arrival date
+                       in the mailbox.
+                       --noabletosearch equals --noabletosearch1 --noabletosearch2
+
+ --noabletosearch1   : Like --noabletosearch but for host1 only.
+ --noabletosearch2   : Like --noabletosearch but for host2 only.
+
  --maxlinelength int : skip messages with a line length longer than  int  bytes.
                        RFC 2822 says it must be no more than 1000 bytes but
                        real life servers and email clients do more.
 
 
  --useheader    str  : Use this header to compare messages on both sides.
-                       Ex: Message-ID or Subject or Date.
+                       Example: "Message-Id" or "Received" or "Date".
  --useheader    str    and this one, etc.
 
- --usecache          : Use cache to speed up next syncs. Not set by default.
+ --syncduplicates    : Sync also duplicates. Off by default.
+
+ --usecache          : Use cache to speed up next syncs. Off by default.
  --nousecache        : Do not use cache. Caveat: --useuid --nousecache creates
                        duplicates on multiple runs.
+
  --useuid            : Use UIDs instead of headers as a criterion to recognize
                        messages. Option --usecache is then implied unless
                        --nousecache is used.
@@ -516,6 +599,7 @@
                        --addheader adds a "Message-Id" header,
                        like "Message-Id: 12345@imapsync", where 12345
                        is the imap UID of the message on the host1 folder.
+                       Useful to sync folders "Sent" or "Draft".
 
 
 =head2 OPTIONS/debugging
@@ -534,7 +618,7 @@
  --tests             : Run local non-regression tests. Exit code 0 means all ok.
  --testslive         : Run a live test with test1.lamiral.info imap server.
                        Useful to check the basics. Needs internet connection.
- --testslive6        : Run a live test with ks2ipv6.lamiral.info imap server.
+ --testslive6        : Run a live test with ks6ipv6.lamiral.info imap server.
                        Useful to check the ipv6 connectivity. Needs internet.
 
 
@@ -543,8 +627,8 @@
   --gmail1           : sets --host1 to Gmail and other options. See FAQ.Gmail.txt
   --gmail2           : sets --host2 to Gmail and other options. See FAQ.Gmail.txt
 
-  --office1          : sets --host1 to Office365 and other options. See FAQ.Exchange.txt
-  --office2          : sets --host2 to Office365 and other options. See FAQ.Exchange.txt
+  --office1          : sets --host1 to Office365 and other options. See FAQ.Office365.txt
+  --office2          : sets --host2 to Office365 and other options. See FAQ.Office365.txt
 
   --exchange1        : sets options for Exchange. See FAQ.Exchange.txt
   --exchange2        : sets options for Exchange. See FAQ.Exchange.txt
@@ -555,13 +639,14 @@
 
 =head2 OPTIONS/behavior
 
- --maxmessagespersecond int : limits the number of messages transferred per second.
+ --maxmessagespersecond flo : limits the average number of messages 
+                              transferred per second.
 
  --maxbytespersecond int : limits the average transfer rate per second.
  --maxbytesafter     int : starts --maxbytespersecond limitation only after
                            --maxbytesafter amount of data transferred.
 
- --maxsleep      int : do not sleep more than int seconds.
+ --maxsleep      flo : do not sleep more than int seconds.
                        On by default, 2 seconds max, like --maxsleep 2
 
  --abort             : terminates a previous call still running.
@@ -570,13 +655,13 @@
  --exitwhenover int  : Stop syncing and exits when int total bytes
                        transferred is reached.
 
- --version           : Print only software version.
+ --version           : Print only the software version.
  --noreleasecheck    : Do not check for any new imapsync release.
  --releasecheck      : Check for new imapsync release.
                        it's an http request to
                        http://imapsync.lamiral.info/prj/imapsync/VERSION
 
- --noid              : Do not send/receive ID command to imap servers.
+ --noid              : Do not send/receive IMAP "ID" command to imap servers.
 
  --justconnect       : Just connect to both servers and print useful
                        information. Need only --host1 and --host2 options.
@@ -609,7 +694,7 @@
 
 =head1 SECURITY
 
-You can use --passfile1  instead of --password1 to give the
+You can use --passfile1  instead of --password1 to mention the
 password since it is safer. With --password1 option, on Linux,
 any user on your host can see the password by using the 'ps auxwwww'
 command. Using a variable (like IMAPSYNC_PASSWORD1) is also
@@ -625,10 +710,10 @@
 on the imap servers. If the imaps port is closed then it open a
 normal (clear) connection on port 143 but it looks for TLS support
 in the CAPABILITY list of the servers. If TLS is supported
-then imapsync goes to encryption.
+then imapsync goes to encryption with STARTTLS.
 
 If the automatic ssl and the tls detections fail then imapsync will
-not protect against sniffing activities on the network, especially 
+not protect against sniffing activities on the network, especially
 for passwords.
 
 If you want to force ssl or tls just use --ssl1 --ssl2 or --tls1 --tls2
@@ -641,12 +726,14 @@
 Imapsync will exit with a 0 status (return code) if everything went good.
 Otherwise, it exits with a non-zero status. That's classical Unix behavior.
 Here is the list of the exit code values (an integer between 0 and 255).
+In Bourne Shells, this exit code value can be retrieved within the variable
+value "$?" if you read it just after the imapsync call.
+
 The names reflect their meaning:
 
 =for comment
 egrep '^Readonly my.*\$EX' imapsync | egrep -o 'EX.*' | sed 's_^_     _'
 
-
      EX_OK          => 0  ; #/* successful termination */
      EX_USAGE       => 64 ; #/* command line usage error */
      EX_NOINPUT     => 66 ; #/* cannot open input */
@@ -654,6 +741,7 @@
      EX_SOFTWARE    => 70 ; #/* internal software error */
      EXIT_CATCH_ALL              =>   1 ; # Any other error
      EXIT_BY_SIGNAL              =>   6 ; # Should be 128+n where n is the sig_num
+     EXIT_BY_FILE                =>   7 ;
      EXIT_PID_FILE_ERROR         =>   8 ;
      EXIT_CONNECTION_FAILURE     =>  10 ;
      EXIT_TLS_FAILURE            =>  12 ;
@@ -661,8 +749,18 @@
      EXIT_SUBFOLDER1_NO_EXISTS   =>  21 ;
      EXIT_WITH_ERRORS            => 111 ;
      EXIT_WITH_ERRORS_MAX        => 112 ;
+     EXIT_OVERQUOTA              => 113 ;
+     EXIT_ERR_APPEND             => 114 ;
+     EXIT_ERR_FETCH              => 115 ;
+     EXIT_ERR_CREATE             => 116 ;
+     EXIT_ERR_SELECT             => 117 ;
+     EXIT_TRANSFER_EXCEEDED      => 118 ;
+     EXIT_ERR_APPEND_VIRUS       => 119 ;
      EXIT_TESTS_FAILED           => 254 ; # Like Test::More API
-
+     EXIT_CONNECTION_FAILURE_HOST1     =>  101 ;
+     EXIT_CONNECTION_FAILURE_HOST2     =>  102 ;
+     EXIT_AUTHENTICATION_FAILURE_USER1 =>  161 ;
+     EXIT_AUTHENTICATION_FAILURE_USER2 =>  162 ;
 
 
 =head1 LICENSE AND COPYRIGHT
@@ -688,11 +786,11 @@
 Bad feedback is very often welcome.
 
 Gilles LAMIRAL earns his living by writing, installing,
-configuring and teaching free, open and often gratis
+configuring and sometimes teaching free, open and often gratis
 software. Imapsync used to be "always gratis" but now it is
 only "often gratis" because imapsync is sold by its author,
-a good way to maintain and support free open public
-software over decades.
+your servitor, a good way to maintain and support free open public
+software tools over decades.
 
 =head1 BUGS AND LIMITATIONS
 
@@ -745,8 +843,8 @@
  and all Server releases 2000, 2003, 2008 and R2, 2012 and R2, 2016)
  as a standalone binary software called imapsync.exe,
  usually launched from a batch file in order to avoid always typing
- the options. There is also a 64bit binary called imapsync_64bit.exe
- 
+ the options. There is also a 32bit binary called imapsync_32bit.exe
+
  Imapsync works under OS X as a standalone binary
  software called imapsync_bin_Darwin
 
@@ -783,8 +881,7 @@
   See also https://imapsync.lamiral.info/S/external.shtml
   for a better up to date list.
 
-Last updated and verified on Sun Dec 8, 2019.
-
+List verified on Friday July 1, 2021.
 
  imapsync: https://github.com/imapsync/imapsync (this is an imapsync copy, sometimes delayed, with --noreleasecheck by default since release 1.592, 2014/05/22)
  imap_tools: https://web.archive.org/web/20161228145952/http://www.athensfbc.com/imap_tools/. The imap_tools code is now at https://github.com/andrewnimmo/rick-sanders-imap-tools
@@ -792,6 +889,7 @@
  Doveadm-Sync: https://wiki2.dovecot.org/Tools/Doveadm/Sync ( Dovecot sync tool )
  davmail: http://davmail.sourceforge.net/
  offlineimap: http://offlineimap.org/
+ fdm: https://github.com/nicm/fdm
  mbsync: http://isync.sourceforge.net/
  mailsync: http://mailsync.sourceforge.net/
  mailutil: https://www.washington.edu/imap/ part of the UW IMAP toolkit. (well, seems abandoned now)
@@ -813,8 +911,8 @@
  imapbackup: https://github.com/rcarmo/imapbackup (A Python script for incremental backups of IMAP mailboxes)
  BitRecover email-backup 99 USD, 299 USD https://www.bitrecover.com/email-backup/.
  ImportExportTools: https://addons.thunderbird.net/en-us/thunderbird/addon/importexporttools/ ImportExportTools for Mozilla Thunderbird by Paolo Kaosmos. ImportExportTools does not do IMAP.
-
-
+ rximapmail: https://sourceforge.net/projects/rximapmail/
+ CodeTwo: https://www.codetwo.com/ but CodeTwo does imap source to Office365 only.
 
 =head1 HISTORY
 
@@ -825,7 +923,7 @@
 often broken low-bandwidth ISDN link.
 
 I had to verify every mailbox was well transferred, all folders, all messages,
-without wasting bandwidth or creating duplicates upon resyncs. The imapsync 
+without wasting bandwidth or creating duplicates upon resyncs. The imapsync
 design was made with the beautiful rsync command in mind.
 
 Imapsync started its life as a patch of the copy_folder.pl
@@ -833,7 +931,7 @@
 module tarball source (more precisely in the examples/ directory of the
 Mail-IMAPClient tarball).
 
-So many happened since then that I wonder
+So many changes happened since then that I wonder
 if it remains any lines of the original
 copy_folder.pl in imapsync source code.
 
@@ -847,9 +945,12 @@
 use strict ;
 use warnings ;
 use Carp ;
+use Cwd ;
 use Data::Dumper ;
 use Digest::HMAC_SHA1 qw( hmac_sha1 hmac_sha1_hex ) ;
 use Digest::MD5  qw( md5 md5_hex md5_base64 ) ;
+use Encode ;
+use Encode::IMAPUTF7 ;
 use English qw( -no_match_vars ) ;
 use Errno qw(EAGAIN EPIPE ECONNRESET) ;
 use Fcntl ;
@@ -866,25 +967,23 @@
 use IO::Socket::SSL ;
 use IO::Tee ;
 use IPC::Open3 'open3' ;
+#use locale ;
 use Mail::IMAPClient 3.30 ;
 use MIME::Base64 ;
 use Pod::Usage qw(pod2usage) ;
-use POSIX qw(uname SIGALRM :sys_wait_h) ;
+use POSIX qw( uname SIGALRM :sys_wait_h ) ;
 use Sys::Hostname ;
 use Term::ReadKey ;
 use Test::More ;
 use Time::HiRes qw( time sleep ) ;
 use Time::Local ;
 use Unicode::String ;
-use Cwd ;
 use Readonly ;
 use Sys::MemInfo ;
 use Regexp::Common ;
 use Text::ParseWords ; # for quotewords()
 use File::Tail ;
 
-use Encode ;
-use Encode::IMAPUTF7 ;
 
 
 local $OUTPUT_AUTOFLUSH = 1 ;
@@ -918,6 +1017,7 @@
 # Mine
 Readonly my $EXIT_CATCH_ALL              =>   1 ; # Any other error
 Readonly my $EXIT_BY_SIGNAL              =>   6 ; # Should be 128+n where n is the sig_num
+Readonly my $EXIT_BY_FILE                =>   7 ;
 Readonly my $EXIT_PID_FILE_ERROR         =>   8 ;
 Readonly my $EXIT_CONNECTION_FAILURE     =>  10 ;
 Readonly my $EXIT_TLS_FAILURE            =>  12 ;
@@ -925,10 +1025,22 @@
 Readonly my $EXIT_SUBFOLDER1_NO_EXISTS   =>  21 ;
 Readonly my $EXIT_WITH_ERRORS            => 111 ;
 Readonly my $EXIT_WITH_ERRORS_MAX        => 112 ;
+Readonly my $EXIT_OVERQUOTA              => 113 ;
+Readonly my $EXIT_ERR_APPEND             => 114 ;
+Readonly my $EXIT_ERR_FETCH              => 115 ;
+Readonly my $EXIT_ERR_CREATE             => 116 ;
+Readonly my $EXIT_ERR_SELECT             => 117 ;
+Readonly my $EXIT_TRANSFER_EXCEEDED      => 118 ;
 
+Readonly my $EXIT_ERR_APPEND_VIRUS       => 119 ;
 
 Readonly my $EXIT_TESTS_FAILED           => 254 ; # Like Test::More API
 
+Readonly my $EXIT_CONNECTION_FAILURE_HOST1     =>  101 ;
+Readonly my $EXIT_CONNECTION_FAILURE_HOST2     =>  102 ;
+Readonly my $EXIT_AUTHENTICATION_FAILURE_USER1 =>  161 ;
+Readonly my $EXIT_AUTHENTICATION_FAILURE_USER2 =>  162 ;
+
 
 Readonly my %EXIT_TXT => (
         $EX_OK                       => 'EX_OK: successful termination',
@@ -939,6 +1051,7 @@
 
         $EXIT_CATCH_ALL              => 'EXIT_CATCH_ALL',
         $EXIT_BY_SIGNAL              => 'EXIT_BY_SIGNAL',
+        $EXIT_BY_FILE                => 'EXIT_BY_FILE',
         $EXIT_PID_FILE_ERROR         => 'EXIT_PID_FILE_ERROR' ,
         $EXIT_CONNECTION_FAILURE     => 'EXIT_CONNECTION_FAILURE',
         $EXIT_TLS_FAILURE            => 'EXIT_TLS_FAILURE',
@@ -946,7 +1059,37 @@
         $EXIT_SUBFOLDER1_NO_EXISTS   => 'EXIT_SUBFOLDER1_NO_EXISTS',
         $EXIT_WITH_ERRORS            => 'EXIT_WITH_ERRORS',
         $EXIT_WITH_ERRORS_MAX        => 'EXIT_WITH_ERRORS_MAX',
+        $EXIT_OVERQUOTA              => 'EXIT_OVERQUOTA',
+        $EXIT_ERR_APPEND             => 'EXIT_ERR_APPEND',
+        $EXIT_ERR_APPEND_VIRUS       => 'EXIT_ERR_APPEND_VIRUS',
+        $EXIT_ERR_FETCH              => 'EXIT_ERR_FETCH',
+        $EXIT_ERR_CREATE             => 'EXIT_ERR_CREATE',
+        $EXIT_ERR_SELECT             => 'EXIT_ERR_SELECT',
         $EXIT_TESTS_FAILED           => 'EXIT_TESTS_FAILED',
+        $EXIT_TRANSFER_EXCEEDED      => 'EXIT_TRANSFER_EXCEEDED',
+        $EXIT_CONNECTION_FAILURE_HOST1 => 'EXIT_CONNECTION_FAILURE_HOST1',
+        $EXIT_CONNECTION_FAILURE_HOST2 => 'EXIT_CONNECTION_FAILURE_HOST2',
+        $EXIT_AUTHENTICATION_FAILURE_USER1 => 'EXIT_AUTHENTICATION_FAILURE_USER1',
+        $EXIT_AUTHENTICATION_FAILURE_USER2 => 'EXIT_AUTHENTICATION_FAILURE_USER2',
+) ;
+
+
+Readonly my %EXIT_VALUE_OF_ERR_TYPE => (
+        ERR_APPEND_SIZE  => $EXIT_ERR_APPEND,
+        ERR_OVERQUOTA    => $EXIT_OVERQUOTA,
+        ERR_APPEND       => $EXIT_ERR_APPEND,
+        ERR_APPEND_VIRUS => $EXIT_ERR_APPEND_VIRUS,
+        ERR_CREATE       => $EXIT_ERR_CREATE,
+        ERR_SELECT       => $EXIT_ERR_SELECT,
+        ERR_Host1_FETCH  => $EXIT_ERR_FETCH,
+        ERR_UNCLASSIFIED => $EXIT_WITH_ERRORS,
+        ERR_NOTHING_REPORTED  => $EXIT_WITH_ERRORS,
+        ERR_TRANSFER_EXCEEDED => $EXIT_TRANSFER_EXCEEDED,
+        ERR_CONNECTION_FAILURE_HOST1 => $EXIT_CONNECTION_FAILURE_HOST1,
+        ERR_CONNECTION_FAILURE_HOST2 => $EXIT_CONNECTION_FAILURE_HOST2,
+        ERR_AUTHENTICATION_FAILURE_USER1 => $EXIT_AUTHENTICATION_FAILURE_USER1,
+        ERR_AUTHENTICATION_FAILURE_USER2 => $EXIT_AUTHENTICATION_FAILURE_USER2,
+        ERR_EXIT_TLS_FAILURE             => $EXIT_TLS_FAILURE,
 ) ;
 
 
@@ -976,7 +1119,7 @@
 Readonly my $TCP_PING_TIMEOUT => 5 ;
 Readonly my $DEFAULT_TIMEOUT => 120 ;
 Readonly my $DEFAULT_NB_RECONNECT_PER_IMAP_COMMAND => 3 ;
-Readonly my $DEFAULT_UIDNEXT => 999_999 ;
+
 Readonly my $DEFAULT_BUFFER_SIZE => 4096 ;
 
 Readonly my $MAX_SLEEP => 2 ; # 2 seconds max for limiting too long sleeps from --maxbytespersecond and --maxmessagespersecond
@@ -1029,15 +1172,13 @@
 
 
 # global variables
-# Currently working to finish with only $sync
+# Currently working to finish with only $sync, $acc1, $acc2
 # Not finished yet...
 
 my(
-        $sync,
-        $timestart_str,
-        $debugimap, $debugimap1, $debugimap2, $debugcontent, $debugflags,
+        $sync, $acc1, $acc2,
+        $debugcontent, $debugflags,
         $debuglist, $debugdev, $debugmaxlinelength, $debugcgi,
-        $domain1, $domain2,
 
         @include, @exclude, @folderrec,
         @folderfirst, @folderlast,
@@ -1052,46 +1193,39 @@
         %h2_folders_from_1_several,
 
         $prefix1, $prefix2,
-        @regexmess, @regexflag, @skipmess, @pipemess, $pipemesscheck,
-        $flagscase, $filterflags, $syncflagsaftercopy,
+        @regexmess, @skipmess, @pipemess, $pipemesscheck,
+        $syncflagsaftercopy,
         $syncinternaldates,
         $idatefromheader,
-        $syncacls,
-        $fastio1, $fastio2,
+
         $minsize, $maxage, $minage,
         $search,
-        $skipheader, @useheader, %useheader,
+        @useheader, %useheader,
         $skipsize, $allowsizemismatch, $buffersize,
 
 
         $authmd5, $authmd51, $authmd52,
         $subscribed, $subscribe, $subscribeall,
         $help,
-        $justbanner,
+
         $fast,
 
         $nb_msg_skipped_dry_mode,
-        $h1_nb_msg_duplicate,
-        $h2_nb_msg_duplicate,
-        $h2_nb_msg_noheader,
 
-        $h2_nb_msg_deleted,
+        $h2_nb_msg_noheader,
 
         $h1_bytes_processed,
 
         $h1_nb_msg_end, $h1_bytes_end,
         $h2_nb_msg_end, $h2_bytes_end,
 
-        $timeout,
         $timestart_int,
 
         $uid1, $uid2,
-        $authuser1, $authuser2,
-        $proxyauth1, $proxyauth2,
-        $authmech1, $authmech2,
+
+
         $split1, $split2,
-        $reconnectretry1, $reconnectretry2,
-        $max_msg_size_in_bytes,
+
         $modulesversion,
         $delete2folders, $delete2foldersonly, $delete2foldersbutnot,
         $usecache, $debugcache, $cacheaftercopy,
@@ -1101,7 +1235,6 @@
         $fixInboxINBOX,
         $maxlinelength, $maxlinelengthcmd,
         $minmaxlinelength,
-        $uidnext_default,
         $fixcolonbug,
         $create_folder_old,
         $skipcrossduplicates, $debugcrossduplicates,
@@ -1114,7 +1247,9 @@
         $warn_release,
 ) ;
 
-single_sync(  ) ;
+single_sync( $sync, $acc1, $acc2 );
+
+
 
 sub single_sync
 {
@@ -1122,21 +1257,36 @@
 # main program
 # global variables initialization
 
-# I'm currently removing all global variables except $sync
-# passing each of them under $sync->{variable_name}
+# I'm currently removing all global variables except $sync $acc1 $acc2
+# passing each of them under
+# $sync->{variable_name}
+# or $acc1->{variable_name}
+# or $acc1->{variable_name}
+
+# 
+$acc1 = {} ;
+$acc2 = {} ;
+$sync->{ acc1 } = $acc1 ;
+$sync->{ acc2 } = $acc2 ;
+
+$acc1->{ Side } = 'Host1' ;
+$acc2->{ Side } = 'Host2' ;
 
 $sync->{timestart} = time ; # Is a float because of use Time::HiRres
 
-$sync->{rcs} = q{$Id: imapsync,v 1.977 2019/12/23 20:18:02 gilles Exp gilles $} ;
+$sync->{rcs} = q{$Id: imapsync,v 2.148 2021/07/22 14:21:09 gilles Exp gilles $} ;
 
 $sync->{ memory_consumption_at_start } = memory_consumption(  ) || 0 ;
 
 
+
 my @loadavg = loadavg(  ) ;
 
-$sync->{cpu_number} = cpu_number(  ) ;
-$sync->{loaddelay} = load_and_delay( $sync->{cpu_number}, @loadavg ) ;
-$sync->{loadavg} = join( q{ }, $loadavg[ 0 ] )
+$sync->{ cpu_number } = cpu_number(  ) ;
+$sync->{ loaddelay } = load_and_delay( $sync->{ cpu_number }, @loadavg ) ;
+$sync->{ loaddelay } = 0 ;
+
+$sync->{ loadavg } = join( q{ }, $loadavg[ 0 ] )
                    . " on $sync->{cpu_number} cores and "
                    . ram_memory_info(  ) ;
 
@@ -1146,10 +1296,13 @@
 $sync->{ total_bytes_skipped } = 0 ;
 $sync->{ nb_msg_transferred } = 0 ;
 $sync->{ nb_msg_skipped } = $nb_msg_skipped_dry_mode = 0 ;
-$sync->{ h1_nb_msg_deleted } = 0 ;
-$h2_nb_msg_deleted  = 0 ;
-$h1_nb_msg_duplicate = 0 ;
-$h2_nb_msg_duplicate = 0 ;
+
+$sync->{ acc1 }->{ nb_msg_deleted } = 0 ;
+$sync->{ acc2 }->{ nb_msg_deleted } = 0 ;
+
+$sync->{ acc1 }->{ nb_msg_duplicate } = 0 ;
+$sync->{ acc2 }->{ nb_msg_duplicate } = 0 ;
+
 $sync->{ h1_nb_msg_noheader } = 0 ;
 $h2_nb_msg_noheader = 0 ;
 
@@ -1165,8 +1318,8 @@
 #$h1_nb_msg_end = $h1_bytes_end = 0 ;
 #$h2_nb_msg_end = $h2_bytes_end = 0 ;
 
-$sync->{nb_errors} = 0;
-$max_msg_size_in_bytes = 0;
+$sync->{ nb_errors } = 0;
+$sync->{ biggest_message_transferred } = 0;
 
 %month_abrev = (
    Jan => '00',
@@ -1192,14 +1345,14 @@
 # In cgi context, printing must start by the header so we delay other prints by using output() storage
 my $options_good = get_options( $sync, @ARGV ) ;
 # Is it the first myprint?
-docker_context( $sync ) ;
 cgibuildheader( $sync ) ;
+docker_context( $sync ) ;
 
-myprint( output( $sync ) ) ;
+print_output_if_needed( $sync ) ;
+
+
 output_reset_with( $sync ) ;
 
-# Old place for cgiload( $sync ) ;
-
 # don't go on if options are not all known.
 if ( ! defined $options_good ) { exit $EX_USAGE ; }
 
@@ -1214,7 +1367,7 @@
 # just the version
 if ( $sync->{ version } ) {
         myprint( imapsync_version( $sync ), "\n" ) ;
-        exit 0 ;
+        return 0 ;
 }
 
 #$sync->{debugenv} = 1 ;
@@ -1224,6 +1377,8 @@
 # after_get_options call usage and exit if --help or options were not well got
 after_get_options( $sync, $options_good ) ;
 
+#local $ENV{TZ} = 'GMT' if ( under_cgi_context( $sync ) and 'MSWin32' ne $OSNAME ) ;
+#output( $sync, localtime(time) . " " . gmtime(time) . "\n" ) ;
 
 # Under CGI environment, fix caveat emptor potential issues
 cgisetcontext( $sync ) ;
@@ -1237,28 +1392,40 @@
 $sync->{ tmpdir } ||= File::Spec->tmpdir(  ) ;
 
 # Unit tests
-testsexit( $sync ) ;
+my $unittestssuite = unittestssuite( $sync ) ;
+
+
+if ( condition_to_leave_after_tests( $sync ) )
+{
+        return $unittestssuite ; 
+}
 
 # init live varaiables
-testslive_init( $sync ) if ( $sync->{testslive} ) ;
-testslive6_init( $sync ) if ( $sync->{testslive6} )  ;
 
-#
+if ( $sync->{ testslive } )
+{
+        testslive_init( $sync ) ;
+}
 
-pidfile( $sync ) ;
+if ( $sync->{ testslive6 } )
+{
+        testslive6_init( $sync ) ;
+}
 
-# old abort place
+define_pidfile( $sync ) ;
+if ( $sync->{ abortbyfile } ) { $sync->{ abort } = 1 ; }
 
 install_signals( $sync ) ;
 
-$sync->{log}        = defined $sync->{log}        ? $sync->{log}        :  1 ;
-$sync->{errorsdump} = defined $sync->{errorsdump} ? $sync->{errorsdump} :  1 ;
-$sync->{errorsmax}  = defined $sync->{errorsmax}  ? $sync->{errorsmax}  : $ERRORS_MAX ;
+$sync->{ log }        = defined $sync->{ log }        ? $sync->{ log }        :  1 ;
+$sync->{ errorsdump } = defined $sync->{ errorsdump } ? $sync->{ errorsdump } :  1 ;
+$sync->{ errorsmax }  = defined $sync->{ errorsmax }  ? $sync->{ errorsmax }  : $ERRORS_MAX ;
 
 # log and output
 binmode STDOUT, ":encoding(UTF-8)" ;
 
-if ( $sync->{log} ) {
+
+if ( $sync->{ log } ) {
         setlogfile( $sync ) ;
         teelaunch( $sync ) ;
         # now $sync->{tee} is a filehandle to STDOUT and the logfile
@@ -1266,7 +1433,7 @@
 
 #binmode STDERR, ":encoding(UTF-8)" ;
 # STDERR goes to the same place: LOG and STDOUT (if logging is on)
-# Useful only for --debugssl 
+# Useful only for --debugssl
 $sync->{tee} and local *STDERR = *${$sync->{tee}}{IO} ;
 
 
@@ -1275,14 +1442,14 @@
 $sync->{timebefore} = $sync->{timestart} ;
 
 
-$timestart_str = localtime( $sync->{timestart} ) ;
+$sync->{ timestart_str } = localtimez( $sync->{timestart} ) ;
 
 # The prints in the log starts here
 
 myprint( localhost_info( $sync ), "\n" ) ;
-myprint( "Transfer started at $timestart_str\n" ) ;
+myprint( "Transfer started at $sync->{ timestart_str }\n" ) ;
 myprint( "PID is $PROCESS_ID my PPID is ", mygetppid(  ), "\n" ) ;
-myprint( "Log file is $sync->{logfile} ( to change it, use --logfile path ; or use --nolog to turn off logging )\n" ) if ( $sync->{log} ) ;
+announcelogfile( $sync ) ;
 myprint( "Load is " . ( join( q{ }, loadavg(  ) ) || 'unknown' ), " on $sync->{cpu_number} cores\n" ) ;
 #myprintf( "Memory consumption so far: %.1f MiB\n", memory_consumption(  ) / $KIBI / $KIBI ) ;
 myprint( 'Current directory is ' . getcwd(  ) . "\n" ) ;
@@ -1296,11 +1463,13 @@
 
 $wholeheaderifneeded  = defined  $wholeheaderifneeded   ? $wholeheaderifneeded  : 1;
 
-# Activate --usecache if --useuid is set and no --nousecache
+# Activate --usecache if --useuid is set and there is no --nousecache
 $usecache = 1 if ( $useuid and ( ! defined  $usecache   ) ) ;
 $cacheaftercopy = 1 if ( $usecache and ( ! defined  $cacheaftercopy  ) ) ;
 
-$sync->{ checkselectable } = defined $sync->{ checkselectable } ? $sync->{ checkselectable } : 1 ;
+
+
+
 $sync->{ checkfoldersexist } = defined $sync->{ checkfoldersexist } ? $sync->{ checkfoldersexist } : 1 ;
 $checkmessageexists = defined  $checkmessageexists  ? $checkmessageexists : 0 ;
 $sync->{ expungeaftereach }   = defined  $sync->{ expungeaftereach }  ? $sync->{ expungeaftereach } : 1 ;
@@ -1312,6 +1481,7 @@
 $checkmessageexists      = 0 if ( not $sync->{abletosearch1} ) ;
 
 
+$sync->{ trylogin } = defined $sync->{ trylogin } ? $sync->{ trylogin } : 1 ;
 $sync->{showpasswords}   = defined  $sync->{showpasswords}  ? $sync->{showpasswords} : 0 ;
 $sync->{ fixslash2 }     = defined  $sync->{ fixslash2 }  ? $sync->{ fixslash2 } : 1 ;
 $fixInboxINBOX      = defined  $fixInboxINBOX  ? $fixInboxINBOX : 1 ;
@@ -1335,19 +1505,18 @@
 
 do_valid_directory( $sync->{ tmpdir } ) || croak "Error creating tmpdir $sync->{ tmpdir } : $OS_ERROR" ;
 
-remove_pidfile_not_running( $sync->{pidfile} ) ;
+remove_pidfile_not_running( $sync->{ pidfile } ) ;
 
 # if another imapsync is running then tail -f its logfile and exit
 # useful in cgi context
 if ( $sync->{ tail } and tail( $sync ) )
 {
-        $sync->{nb_errors}++ ;
         exit_clean( $sync, $EX_OK, "Tail -f finished. Now finishing myself processus $PROCESS_ID\n" ) ;
         exit $EX_OK ;
 }
 
 if ( ! write_pidfile( $sync ) ) {
-        myprint( "Exiting with return value $EXIT_PID_FILE_ERROR ($EXIT_TXT{$EXIT_PID_FILE_ERROR}) $sync->{nb_errors}/$sync->{errorsmax} nb_errors/max_errors\n" ) ;
+        myprint( "Exiting with return value $EXIT_PID_FILE_ERROR ($EXIT_TXT{$EXIT_PID_FILE_ERROR}) $sync->{nb_errors}/$sync->{errorsmax} nb_errors/max_errors PID $PROCESS_ID\n" ) ;
         exit $EXIT_PID_FILE_ERROR ;
 }
 
@@ -1357,18 +1526,22 @@
 if ( $sync->{ abort } )
 {
         abort( $sync ) ;
+        # well, the abort job is done, because even when not succeeded
+        # in aborting another run, this run has to end without doing any
+        # thing else
+
+        exit $EX_OK ;
 }
 
 # simulong is just a loop printing some lines for xx seconds with option "--simulong xx".
-if ( $sync->{ simulong } )
-{
-        simulong( $sync->{ simulong } ) ;
-}
+simulong( $sync ) ;
+
 
 
 # New place for cgiload 2019_03_03
 # because I want to log it
 # Can break here if load is too heavy
+# Have in mind the CGI header has already a 503 Service Unavailable
 cgiload( $sync ) ;
 
 
@@ -1376,20 +1549,28 @@
 
 if ( $usecache and $fixcolonbug ) { tmpdir_fix_colon_bug( $sync ) } ;
 
-$modulesversion and myprint( "Modules version list:\n", modulesversion(), "( use --no-modulesversion to turn off printing this Perl modules list )\n" ) ;
+$modulesversion and myprint( "Modules version list ( use --no-modulesversion to turn off printing this Perl modules list ):\n", modulesversion(), "\n" ) ;
 
 
 check_lib_version( $sync ) or
   croak "imapsync needs perl lib Mail::IMAPClient release 3.30 or superior.\n";
 
 
-exit_clean( $sync, $EX_OK ) if ( $justbanner ) ;
+
+if ( $sync->{ justbanner } ) 
+{
+        myprint( "Exiting because of --justbanner\n" ) ;
+        exit_clean( $sync, $EX_OK ) ;
+}
 
 # turn on RFC standard flags correction like \SEEN -> \Seen
-$flagscase = defined  $flagscase  ? $flagscase : 1 ;
+$sync->{ flagscase } = defined  $sync->{ flagscase }  ? $sync->{ flagscase } : 1 ;
 
 # Use PERMANENTFLAGS if available
-$filterflags = defined  $filterflags  ? $filterflags : 1 ;
+$sync->{ filterflags } = defined  $sync->{ filterflags }  ? $sync->{ filterflags } : 1 ;
+
+filterbuggyflags( $sync ) ;
+
 
 # sync flags just after an APPEND, some servers ignore the flags given in the APPEND
 # like MailEnable IMAP server.
@@ -1412,13 +1593,18 @@
 $split2 ||= $SPLIT ;
 
 #$sync->{host1} || missing_option( $sync, '--host1' ) ;
+$sync->{host1} = sanitize_host( $sync->{host1} ) ;
 $sync->{port1} ||= ( $sync->{ssl1} ) ? $IMAP_SSL_PORT : $IMAP_PORT ;
 
 #$sync->{host2} || missing_option( $sync, '--host2' ) ;
+$sync->{host2} = sanitize_host( $sync->{host2} ) ;
 $sync->{port2} ||= ( $sync->{ssl2} ) ? $IMAP_SSL_PORT : $IMAP_PORT ;
 
-$debugimap1 = $debugimap2 = 1 if ( $debugimap ) ;
-$sync->{ debug } = 1 if ( $debugimap1 or $debugimap2 ) ;
+
+$acc1->{ debugimap } = $acc2->{ debugimap } = 1 if ( $sync->{ debugimap } ) ;
+# Set on debug mode if one of the imap dialogs are in debug.
+# imap dialog without the debug mode is scary and useless.
+$sync->{ debug } = 1 if ( $acc1->{ debugimap } or $acc2->{ debugimap } ) ;
 
 # By default, don't take size to compare
 $skipsize = (defined $skipsize) ? $skipsize : 1;
@@ -1455,6 +1641,7 @@
 if ( $sync->{ssl1} ) {
         myprint( qq{Host1: SSL default mode is like --sslargs1 "SSL_verify_mode=$SSL_VERIFY_POLICY", meaning for host1 $SSL_VERIFY_STR{$SSL_VERIFY_POLICY}\n} ) ;
         myprint( 'Host1: Use --sslargs1 SSL_verify_mode=' . IO::Socket::SSL::SSL_VERIFY_PEER(  ) . " to have $SSL_VERIFY_STR{IO::Socket::SSL::SSL_VERIFY_PEER(  )} of host1\n" ) ;
+        # $sync->{ acc1 }->{sslargs}->{SSL_verify_mode}
 }
 
 if ( $sync->{ssl2} ) {
@@ -1516,8 +1703,11 @@
 }
 
 if ( $sync->{ delete1 } and $sync->{ delete2 } ) {
-        myprint( "Warning: using --delete1 and --delete2 together is almost always a bad idea, exiting imapsync\n" ) ;
-        $sync->{nb_errors}++ ;
+        myprint( "Warning: using --delete1 and --delete2 together is almost always a bad idea. "
+                . "You should probably launch two runs, the first with --delete2 for a strict sync, "
+                . "then the second with --delete1 to remove messages from the source account. "
+                . "Exiting imapsync.\n" ) ;
+        $sync->{ nb_errors }++ ;
         exit_clean( $sync, $EX_USAGE ) ;
 }
 
@@ -1540,44 +1730,48 @@
 }
 
 if ( defined $authmd51 and $authmd51 ) {
-        $authmech1 ||= 'CRAM-MD5';
+        $acc1->{ authmech } ||= 'CRAM-MD5' ;
 }
 else{
-        $authmech1 ||= $authuser1 ? 'PLAIN' : 'LOGIN';
+        $acc1->{ authmech } ||= $acc1->{ authuser } ? 'PLAIN' : 'LOGIN' ;
 }
 
 if ( defined $authmd52 and $authmd52 ) {
-        $authmech2 ||= 'CRAM-MD5';
+        $acc2->{ authmech } ||= 'CRAM-MD5';
 }
 else{
-        $authmech2 ||= $authuser2 ? 'PLAIN' : 'LOGIN';
+        $acc2->{ authmech } ||= $acc2->{ authuser } ? 'PLAIN' : 'LOGIN';
 }
 
-$authmech1 = uc $authmech1;
-$authmech2 = uc $authmech2;
+$acc1->{ authmech } = uc $acc1->{ authmech } ;
+$acc2->{ authmech } = uc $acc2->{ authmech } ;
 
-if (defined $proxyauth1 && !$authuser1) {
+if ( defined $acc1->{ proxyauth } && !$acc1->{ authuser } )
+{
         missing_option( $sync, 'With --proxyauth1, --authuser1' ) ;
 }
 
-if (defined $proxyauth2 && !$authuser2) {
+if ( defined $acc2->{ proxyauth } && !$acc2->{ authuser } )
+{
         missing_option( $sync, 'With --proxyauth2, --authuser2' ) ;
 }
 
-#$authuser1 ||= $sync->{user1};
-#$authuser2 ||= $sync->{user2};
+myprint( "Host1: will try to use $acc1->{ authmech } authentication on host1\n") ;
+myprint( "Host2: will try to use $acc2->{ authmech } authentication on host2\n") ;
 
-myprint( "Host1: will try to use $authmech1 authentication on host1\n") ;
-myprint( "Host2: will try to use $authmech2 authentication on host2\n") ;
+$sync->{ timeout } = defined  $sync->{ timeout }  ?$sync->{ timeout } : $DEFAULT_TIMEOUT ;
 
-$timeout = defined  $timeout  ? $timeout : $DEFAULT_TIMEOUT ;
+$sync->{ acc1 }->{timeout} = defined  $sync->{ acc1 }->{timeout}  ? $sync->{ acc1 }->{timeout} : $sync->{ timeout } ;
+myprint( "Host1: imap connection timeout is $sync->{ acc1 }->{timeout} seconds\n") ;
+$sync->{ acc2 }->{timeout} = defined  $sync->{ acc2 }->{timeout}  ? $sync->{ acc2 }->{timeout} : $sync->{ timeout } ;
+myprint( "Host2: imap connection timeout is $sync->{ acc2 }->{timeout} seconds\n" ) ;
 
-$sync->{h1}->{timeout} = defined  $sync->{h1}->{timeout}  ? $sync->{h1}->{timeout} : $timeout ;
-myprint( "Host1: imap connection timeout is $sync->{h1}->{timeout} seconds\n") ;
-$sync->{h2}->{timeout} = defined  $sync->{h2}->{timeout}  ? $sync->{h2}->{timeout} : $timeout ;
-myprint( "Host2: imap connection timeout is $sync->{h2}->{timeout} seconds\n" ) ;
+if ( under_cgi_context( $sync ) )
+{
+        myprint( "Under CGI context, a timeout can occur from the webserver, see https://imapsync.lamiral.info/INSTALL.d/INSTALL.OnlineUI.txt\n" ) ;
+}
 
-$syncacls = defined  $syncacls  ? $syncacls : 0 ;
+$sync->{ syncacls } = defined  $sync->{ syncacls } ? $sync->{ syncacls } : 0 ;
 
 # No folders sizes if --justfolders, unless really wanted.
 if (
@@ -1592,21 +1786,21 @@
 $sync->{ foldersizes }       = ( defined  $sync->{ foldersizes } )      ? $sync->{ foldersizes }      : 1 ;
 $sync->{ foldersizesatend }  = ( defined  $sync->{ foldersizesatend } ) ? $sync->{ foldersizesatend } : $sync->{ foldersizes } ;
 
+$sync->{ checknoabletosearch } = ( defined  $sync->{ checknoabletosearch } ) ? $sync->{ checknoabletosearch } : 1 ;
 
-$fastio1 = defined  $fastio1  ? $fastio1 : 0 ;
-$fastio2 = defined  $fastio2  ? $fastio2 : 0 ;
 
-$reconnectretry1 = defined  $reconnectretry1  ? $reconnectretry1 : $DEFAULT_NB_RECONNECT_PER_IMAP_COMMAND ;
-$reconnectretry2 = defined  $reconnectretry2  ? $reconnectretry2 : $DEFAULT_NB_RECONNECT_PER_IMAP_COMMAND ;
+$acc1->{ fastio } = defined  $acc1->{ fastio }  ? $acc1->{ fastio } : 0 ;
+$acc2->{ fastio } = defined  $acc2->{ fastio }  ? $acc2->{ fastio } : 0 ;
 
-# Since select_msgs() returns no messages when uidnext does not return something
-# then $uidnext_default is never used. So I have to remove it.
-$uidnext_default = $DEFAULT_UIDNEXT ;
+
+$acc1->{ reconnectretry } = defined  $acc1->{ reconnectretry }  ? $acc1->{ reconnectretry } : $DEFAULT_NB_RECONNECT_PER_IMAP_COMMAND ;
+$acc2->{ reconnectretry } = defined  $acc2->{ reconnectretry }  ? $acc2->{ reconnectretry } : $DEFAULT_NB_RECONNECT_PER_IMAP_COMMAND ;
+
 
 if ( ! @useheader ) { @useheader = qw( Message-Id Received )  ; }
 
 # Make a hash %useheader of each --useheader 'key' in uppercase
-for ( @useheader ) { $useheader{ uc  $_  } = undef } ;
+for ( @useheader ) { $sync->{useheader}->{ uc  $_  } = undef } ;
 
 #myprint( Data::Dumper->Dump( [ \%useheader ] )  ) ;
 #exit ;
@@ -1617,6 +1811,10 @@
 get_password1( $sync ) ;
 get_password2( $sync ) ;
 
+# --dry1 make imapsync not fetching messages from host1, it is on when --dry is on.
+# Use --dry --nodry1 to make imapsync fetching messages from host1,
+# It is useful when debugging transformation options like --pipemess or --regexmess
+$sync->{dry1} = defined $sync->{dry1} ? $sync->{dry1} : $sync->{dry} ;
 
 $sync->{dry_message} = q{} ;
 if( $sync->{dry} ) {
@@ -1626,7 +1824,8 @@
 $sync->{ search1 } ||= $search if ( $search ) ;
 $sync->{ search2 } ||= $search if ( $search ) ;
 
-if ( $disarmreadreceipts ) {
+if ( $disarmreadreceipts )
+{
         push @regexmess, q{s{\A((?:[^\n]+\r\n)+|)(^Disposition-Notification-To:[^\n]*\n)(\r?\n|.*\n\r?\n)}{$1X-$2$3}ims} ;
 }
 
@@ -1688,9 +1887,9 @@
         myprint( "Ok with each --skipmess\n"  ) ;
 }
 
-if ( @regexflag ) {
+if ( $sync->{ regexflag } ) {
         myprint( "Checking each --regexflag command with an space string.\n"  ) ;
-        my $string = flags_regex( q{ } ) ;
+        my $string = regexflags( $sync, q{ } ) ;
         # string undef means one of the eval regex was bad.
         if ( not ( defined  $string  ) ) {
                 $sync->{nb_errors}++ ;
@@ -1701,33 +1900,26 @@
         myprint( "Ok with each --regexflag\n"  ) ;
 }
 
-$sync->{imap1} = login_imap( $sync->{host1}, $sync->{port1}, $sync->{user1}, $domain1, $sync->{password1},
-                   $debugimap1, $sync->{h1}->{timeout}, $fastio1, $sync->{ssl1}, $sync->{tls1},
-                   $authmech1, $authuser1, $reconnectretry1,
-                   $proxyauth1, $uid1, $split1, 'Host1', $sync->{h1}, $sync ) ;
+$sync->{imap1} = login_imap( $sync->{host1}, $sync->{port1}, $sync->{user1}, $sync->{password1},
+                   $sync->{ssl1}, $sync->{tls1},
+                   $uid1, $split1, $sync->{ acc1 }, $sync ) ;
 
-$sync->{imap2} = login_imap( $sync->{host2}, $sync->{port2}, $sync->{user2}, $domain2, $sync->{password2},
-                 $debugimap2, $sync->{h2}->{timeout}, $fastio2, $sync->{ssl2}, $sync->{tls2},
-                 $authmech2, $authuser2, $reconnectretry2,
-                 $proxyauth2, $uid2, $split2, 'Host2', $sync->{h2}, $sync ) ;
+$sync->{imap2} = login_imap( $sync->{host2}, $sync->{port2}, $sync->{user2}, $sync->{password2},
+                 $sync->{ssl2}, $sync->{tls2},
+                 $uid2, $split2, $sync->{ acc2 }, $sync ) ;
 
 
-$sync->{ debug } and myprint( 'Host1 Buffer I/O: ', $sync->{imap1}->Buffer(), "\n" ) ;
-$sync->{ debug } and myprint( 'Host2 Buffer I/O: ', $sync->{imap2}->Buffer(), "\n" ) ;
+$sync->{ debug } and $sync->{imap1} and myprint( 'Host1 Buffer I/O: ', $sync->{imap1}->Buffer(), "\n" ) ;
+$sync->{ debug } and $sync->{imap2} and myprint( 'Host2 Buffer I/O: ', $sync->{imap2}->Buffer(), "\n" ) ;
 
 
-if ( ! $sync->{imap1}->IsAuthenticated( ) )
+if ( ! $sync->{imap1} || ! $sync->{imap2} )
 {
-        $sync->{nb_errors}++ ;
-        exit_clean( $sync, $EXIT_AUTHENTICATION_FAILURE, "Not authenticated on host1\n" )  ;
+        exit_most_errors( $sync ) ;
 }
+
+
 myprint( "Host1: state Authenticated\n" ) ;
-
-if ( ! $sync->{imap2}->IsAuthenticated( ) )
-{
-        $sync->{nb_errors}++ ;
-        exit_clean( $sync, $EXIT_AUTHENTICATION_FAILURE, "Not authenticated on host2\n" )  ;
-}
 myprint( "Host2: state Authenticated\n" ) ;
 
 myprint( 'Host1 capability once authenticated: ', join(q{ }, @{ $sync->{imap1}->capability() || [] }), "\n" ) ;
@@ -1886,29 +2078,17 @@
         myprint( "Host1: Not checking that wanted folders exist. Remove --nocheckfoldersexist to get this check.\n"  ) ;
 }
 
+setcheckselectable( $sync ) ;
 
-if ( $sync->{ checkselectable } ) {
-        my @h1_folders_wanted_selectable ;
-        myprint( "Host1: Checking wanted folders are selectable. Use --nocheckselectable to avoid this check.\n"  ) ;
-        foreach my $folder ( @{ $sync->{h1_folders_wanted} } ) {
-                ( $sync->{ debug } or $sync->{debugfolders} ) and myprint( "Checking $folder is selectable on host1\n"  ) ;
-                # It does an imap command  LIST "" $folder and then search for no \Noselect
-                if ( ! $sync->{imap1}->selectable( $folder ) ) {
-                                myprint( "Host1: warning! ignoring folder $folder because it is not selectable\n" ) ;
-                }else{
-                        push  @h1_folders_wanted_selectable, $folder  ;
-                }
-        }
-        @{ $sync->{h1_folders_wanted} } = @h1_folders_wanted_selectable ;
-        ( $sync->{ debug } or $sync->{debugfolders} ) and myprint( 'Host1: checking folders took ', timenext( $sync ), " s\n"  ) ;
-}else{
-        myprint( "Host1: Not checking that wanted folders are selectable. Remove --nocheckselectable to get this check.\n"  ) ;
-}
+checkselectable( $sync ) ;
 
 
 
-# Old place of private_folders_separators_and_prefixes(  ) call.
-#private_folders_separators_and_prefixes(  ) ;
+# Bugfix OpenFind folders named like "kk \*123" are in fact "kk *123" (no \)
+#foreach my $folder ( @{ $sync->{ h1_folders_wanted } } )
+#{
+#        $folder =~ s{ \\\*}{ *}g ;
+#}
 
 
 # this hack is because LWP post does not pass well a hash in the $form parameter
@@ -2021,6 +2201,25 @@
         myprint( "Host1: will not syncing empty folders on host1. Use --noskipemptyfolders to create them anyway on host2\n") ;
 }
 
+if ( $sync->{ checknoabletosearch } )
+{
+        myprint( "Checking SEARCH ALL works on both accounts. To avoid that check, use --nochecknoabletosearch\n" ) ;
+        my $check1 = checknoabletosearch( $sync, $sync->{ imap1 }, 'INBOX', 'Host1' ) ;
+        my $check2 = checknoabletosearch( $sync, $sync->{ imap2 }, 'INBOX', 'Host2' ) ;
+        if ( $check1 or $check2 )
+        {
+                myprint( "At least one account can not SEARCH ALL. So acting like --noabletosearch\n" ) ;
+                $sync->{abletosearch}  = 0 ;
+                $sync->{abletosearch1} = 0 ;
+                $sync->{abletosearch2} = 0 ;
+        }
+        else
+        {
+                myprint( "Good! SEARCH ALL works on both accounts.\n" ) ;
+        }
+}
+
+
 
 if ( $sync->{ foldersizes } ) {
 
@@ -2035,7 +2234,7 @@
         exit_clean( $sync, $EX_OK, "Exiting because of --justfoldersizes\n" ) ;
 }
 
-$sync->{stats} = 1 ;
+$sync->{can_do_stats} = 1 ;
 
 if ( $sync->{ delete1emptyfolders } ) {
         delete1emptyfolders( $sync ) ;
@@ -2060,6 +2259,7 @@
 {
         $sync->{ h1_current_folder } = $h1_fold ;
         eta_print( $sync ) ;
+        abortifneeded( $sync ) ;
         if ( ! reconnect_12_if_needed( $sync ) ) { last FOLDER ; }
 
         my $h2_fold = imap2_folder_name( $sync, $h1_fold ) ;
@@ -2075,10 +2275,15 @@
 
         debugsleep( $sync ) ;
 
-        my $h1_fold_nb_messages = count_from_select( $sync->{imap1}->History ) ;
-        myprint( "Host1: folder [$h1_fold] has $h1_fold_nb_messages messages in total (mentioned by SELECT)\n" ) ;
+        my $h1_msgs_all_hash_ref ;
+        my @h1_msgs ;
+        my $h1_msgs_nb ;
+        my $h1_msgs_nb_from_select ;
 
-        if ( $sync->{ skipemptyfolders } and 0 == $h1_fold_nb_messages ) {
+        $h1_msgs_nb_from_select = count_from_select( $sync->{imap1}->History ) ;
+        myprint( "Host1: folder [$h1_fold] has $h1_msgs_nb_from_select messages in total (mentioned by SELECT)\n" ) ;
+
+        if ( $sync->{ skipemptyfolders } and 0 == $h1_msgs_nb_from_select ) {
                 myprint( "Host1: skipping empty host1 folder [$h1_fold]\n"  ) ;
                 next FOLDER ;
         }
@@ -2087,22 +2292,32 @@
         # Thanks jh1995
         # Goal: do not create folder if --search or --max/minage return 0 message.
         # even if there are messages by SELECT (no not real empty, empty for the user point of vue).
-        if ( $sync->{ skipemptyfolders } )
+        if ( $sync->{ skipemptyfolders } or $sync->{ dry } )
         {
-                my $h1_msgs_all_hash_ref_tmp = {  } ;
-                my @h1_msgs_tmp = select_msgs( $sync->{imap1}, $h1_msgs_all_hash_ref_tmp, $sync->{ search1 }, $h1_fold ) ;
-                my $h1_fold_nb_messages_tmp = scalar( @h1_msgs_tmp ) ;
-                if ( 0 == $h1_fold_nb_messages_tmp ) {
+                $h1_msgs_all_hash_ref = {  } ;
+                @h1_msgs = select_msgs( $sync->{imap1}, $h1_msgs_all_hash_ref, $sync->{ search1 }, $sync->{abletosearch1}, $h1_fold ) ;
+
+                $h1_msgs_nb = scalar( @h1_msgs ) ;
+                if ( 0 == $h1_msgs_nb and $sync->{ skipemptyfolders } ) {
                         myprint( "Host1: skipping empty host1 folder [$h1_fold] (0 message found by SEARCH)\n"  ) ;
                         next FOLDER ;
                 }
         }
 
         if ( ! exists  $h2_folders_all{ $h2_fold }  ) {
-                create_folder( $sync, $sync->{imap2}, $h2_fold, $h1_fold ) or next FOLDER ;
+                # In --dry mode I could count the messages to be transfered instead of 0
+                # Messages transferred : 0 (could be 0 without dry mode)
+                if ( ! create_folder( $sync, $sync->{imap2}, $h2_fold, $h1_fold ) )
+                {
+                        if ( $sync->{ dry } )
+                        {
+                                $nb_msg_skipped_dry_mode += $h1_msgs_nb ;
+                        }
+                        next FOLDER ;
+                }
         }
 
-        acls_sync( $h1_fold, $h2_fold ) ;
+        acls_sync( $sync, $h1_fold, $h2_fold ) ;
 
         # Sometimes the folder on host2 is listed (it exists) but is
         # not selectable but becomes selectable by a create (Gmail)
@@ -2138,13 +2353,18 @@
 
         if ( ! reconnect_12_if_needed( $sync ) ) { last FOLDER ; }
 
-        my $h1_msgs_all_hash_ref = {  } ;
-        my @h1_msgs = select_msgs( $sync->{imap1}, $h1_msgs_all_hash_ref, $sync->{ search1 }, $sync->{abletosearch1}, $h1_fold );
+
+        if ( ! defined $h1_msgs_nb )
+        {
+                $h1_msgs_all_hash_ref = {  } ;
+                @h1_msgs = select_msgs( $sync->{imap1}, $h1_msgs_all_hash_ref, $sync->{ search1 }, $sync->{abletosearch1}, $h1_fold );
+                $h1_msgs_nb = scalar @h1_msgs  ;
+        }else{
+                # select_msgs already done.
+        }
 
         if ( ! reconnect_12_if_needed( $sync ) ) { last FOLDER ; }
 
-        my $h1_msgs_nb = scalar  @h1_msgs  ;
-
         myprint( "Host1: folder [$h1_fold] considering $h1_msgs_nb messages\n"  ) ;
         ( $sync->{ debug } or $debuglist ) and myprint( "Host1: folder [$h1_fold] considering $h1_msgs_nb messages, LIST gives: @h1_msgs\n" ) ;
         $sync->{ debug } and myprint( "Host1: selecting messages of folder [$h1_fold] took ", timenext( $sync ), " s\n" ) ;
@@ -2188,7 +2408,7 @@
         @h2_msgs{ @h2_msgs } = (  ) ;
 
         my @h1_msgs_in_cache = sort { $a <=> $b } keys %{ $cache_1_2_ref } ;
-        my @h2_msgs_in_cache = keys %{ $cache_2_1_ref } ;
+        my @h2_msgs_in_cache = sort { $a <=> $b } keys %{ $cache_2_1_ref } ;
 
         my ( %h1_msgs_not_in_cache, %h2_msgs_not_in_cache ) ;
         %h1_msgs_not_in_cache = %h1_msgs ;
@@ -2196,9 +2416,9 @@
         delete @h1_msgs_not_in_cache{ @h1_msgs_in_cache } ;
         delete @h2_msgs_not_in_cache{ @h2_msgs_in_cache } ;
 
-        my @h1_msgs_not_in_cache = keys %h1_msgs_not_in_cache ;
+        my @h1_msgs_not_in_cache = sort { $a <=> $b } keys %h1_msgs_not_in_cache ;
         #myprint( "h1_msgs_not_in_cache: [@h1_msgs_not_in_cache]\n"  ) ;
-        my @h2_msgs_not_in_cache = keys %h2_msgs_not_in_cache ;
+        my @h2_msgs_not_in_cache = sort { $a <=> $b } keys %h2_msgs_not_in_cache ;
 
         my @h2_msgs_delete2_not_in_cache = () ;
         %h1_msgs_copy_by_uid = (  ) ;
@@ -2233,8 +2453,7 @@
         }
         else
         {
-                my $uidnext = $sync->{imap1}->uidnext( $h1_fold ) || $uidnext_default ;
-                my $fetch_hash_uids = $fetch_hash_set || "1:$uidnext" ;
+                my $fetch_hash_uids = $fetch_hash_set || "1:*" ;
                 $h1_fir_ref = $sync->{imap1}->fetch_hash( $fetch_hash_uids, @h1_common_fetch_param, $h1_fir_ref )
                 if ( @h1_msgs ) ;
         }
@@ -2260,22 +2479,30 @@
                         $sync->{ nb_msg_skipped } += 1 ;
                         $sync->{ h1_nb_msg_noheader }  +=1 ;
                         $sync->{ h1_nb_msg_processed } +=1 ;
-                } elsif(0 == $rc)
+                } elsif( 0 == $rc )
                 {
                         # duplicate
                         push @h1_msgs_duplicate, $m;
                         # duplicate, same id same size?
                         my $h1_size = $h1_fir_ref->{$m}->{'RFC822.SIZE'} || 0;
-                        $sync->{ nb_msg_skipped } += 1;
-                        $h1_nb_msg_duplicate += 1;
-                        $sync->{ h1_nb_msg_processed } +=1 ;
+
+                        $sync->{ acc1 }->{ nb_msg_duplicate } += 1;
+                        if ( ! $sync->{ syncduplicates } ) {
+                                $sync->{ nb_msg_skipped } += 1 ;
+                                $sync->{ h1_nb_msg_processed } +=1 ;
+                        }
                 }
         }
+
+
         my $h1_msgs_duplicate_nb = scalar  @h1_msgs_duplicate  ;
 
         myprint( "Host1: folder [$h1_fold] selected $h1_msgs_nb messages, duplicates $h1_msgs_duplicate_nb\n" ) ;
 
         $sync->{ debug } and myprint( 'Host1: whole time parsing headers took ', timenext( $sync ), " s\n"  ) ;
+
+
+
         # Getting headers and metada can be so long that host2 might be disconnected here
         if ( ! reconnect_12_if_needed( $sync ) ) { last FOLDER ; }
 
@@ -2296,8 +2523,7 @@
         if ( $sync->{abletosearch2} and scalar( @h2_msgs ) ) {
                 $h2_fir_ref = $sync->{imap2}->fetch_hash( \@h2_msgs, @h2_common_fetch_param, $h2_fir_ref) ;
         }else{
-                my $uidnext = $sync->{imap2}->uidnext( $h2_fold ) || $uidnext_default ;
-                my $fetch_hash_uids = $fetch_hash_set || "1:$uidnext" ;
+                my $fetch_hash_uids = $fetch_hash_set || "1:*" ;
                 $h2_fir_ref = $sync->{imap2}->fetch_hash( $fetch_hash_uids, @h2_common_fetch_param, $h2_fir_ref )
                 if ( @h2_msgs ) ;
         }
@@ -2313,7 +2539,7 @@
                         $h2_nb_msg_noheader += 1 ;
                 } elsif( 0 == $rc ) {
                         # duplicate
-                        $h2_nb_msg_duplicate += 1 ;
+                        $sync->{ acc2 }->{ nb_msg_duplicate } += 1 ;
                         push  @h2_msgs_duplicate, $m  ;
                 }
         }
@@ -2353,9 +2579,9 @@
                 foreach my $h2_msg ( @h2_msgs_duplicate ) {
                         myprint( "Host2: msg $h2_fold/$h2_msg marked \\Deleted [duplicate] on host2 $sync->{dry_message}\n"  ) ;
                         push  @h2_expunge, $h2_msg  if $sync->{ uidexpunge2 } ;
-                        if ( ! $sync->{dry} ) {
-                                $sync->{imap2}->delete_message( $h2_msg ) ;
-                                $h2_nb_msg_deleted += 1 ;
+                        if ( ! $sync->{ dry } ) {
+                                $sync->{ imap2 }->delete_message( $h2_msg ) ;
+                                $sync->{ acc2 }->{ nb_msg_deleted } += 1 ;
                         }
                 }
                 my $cnt = scalar @h2_expunge ;
@@ -2381,9 +2607,9 @@
                                 myprint( "Host2: msg $h2_fold/$h2_msg marked \\Deleted on host2 [$m_id] $sync->{dry_message}\n" )
                                   if ! $isdel;
                                 push @h2_expunge, $h2_msg if $sync->{ uidexpunge2 };
-                                if ( ! ( $sync->{dry} or $isdel ) ) {
-                                        $sync->{imap2}->delete_message($h2_msg);
-                                        $h2_nb_msg_deleted += 1;
+                                if ( ! ( $sync->{ dry } or $isdel ) ) {
+                                        $sync->{ imap2 }->delete_message( $h2_msg );
+                                        $sync->{ acc2 }->{ nb_msg_deleted } += 1;
                                 }
                         }
                 }
@@ -2391,8 +2617,8 @@
                         myprint( "Host2: msg $h2_fold/$h2_msg marked \\Deleted [not in cache] on host2 $sync->{dry_message}\n" ) ;
                         push @h2_expunge, $h2_msg if $sync->{ uidexpunge2 };
                         if ( ! $sync->{dry} ) {
-                                $sync->{imap2}->delete_message($h2_msg);
-                                $h2_nb_msg_deleted += 1;
+                                $sync->{ imap2 }->delete_message( $h2_msg );
+                                $sync->{ acc2 }->{ nb_msg_deleted } += 1;
                         }
                 }
                 my $cnt = scalar @h2_expunge ;
@@ -2445,9 +2671,9 @@
                                 }else{
                                         myprint( "Host2: msg $h2_fold/$h2_msg marked \\Deleted $sync->{dry_message}\n" ) ;
                                         push  @h2_expunge, $h2_msg  if $sync->{ uidexpunge2 } ;
-                                        if ( ! $sync->{dry} ) {
-                                                $sync->{imap2}->delete_message( $h2_msg ) ;
-                                                $h2_nb_msg_deleted += 1 ;
+                                        if ( ! $sync->{ dry}  ) {
+                                                $sync->{ imap2 }->delete_message( $h2_msg ) ;
+                                                $sync->{ acc2 }->{ nb_msg_deleted } += 1 ;
                                         }
                                 }
                         }
@@ -2475,6 +2701,7 @@
 
         my @h1_msgs_to_delete ;
         MESS: foreach my $m_id (@h1_hash_keys_sorted_by_uid) {
+                abortifneeded( $sync ) ;
 		if ( ! reconnect_12_if_needed( $sync ) ) { last FOLDER ; }
 
                 #myprint( "h1_nb_msg_processed: $sync->{ h1_nb_msg_processed }\n"  ) ;
@@ -2510,7 +2737,7 @@
                         }
 
                         if ( total_bytes_max_reached( $sync ) ) {
-                                # a bug when using --delete1 --noexpungeaftereach
+                                # Still a bug when using --delete1 --noexpungeaftereach
                                 # same thing below on all total_bytes_max_reached!
                                 last FOLDER ;
                         }
@@ -2558,7 +2785,7 @@
                         }
                 }
 
-		if ( ! reconnect_12_if_needed( $sync ) ) { last FOLDER ; }
+                if ( ! reconnect_12_if_needed( $sync ) ) { last FOLDER ; }
 
                 if ( $sync->{ delete1 } ) {
                         push @h1_msgs_to_delete, $h1_msg ;
@@ -2566,6 +2793,7 @@
         }
         # END MESS: loop
 
+        # @h1_msgs_in_cache are already synced too.
         delete_message_on_host1( $sync, $h1_fold, $sync->{ expunge1 }, @h1_msgs_to_delete, @h1_msgs_in_cache ) ;
 
 	if ( ! reconnect_12_if_needed( $sync ) ) { last FOLDER ; }
@@ -2595,6 +2823,7 @@
         # MESS_BY_UID:
         foreach my $h1_msg ( sort { $a <=> $b } keys %h1_msgs_copy_by_uid )
         {
+                abortifneeded( $sync ) ;
                 $sync->{ debug } and myprint( "Copy by uid $h1_fold/$h1_msg\n"  ) ;
                 if ( ! reconnect_12_if_needed( $sync ) ) { last FOLDER ; }
 
@@ -2638,18 +2867,30 @@
         foldersizesatend( $sync ) ;
 }
 
+#$sync->{imap1}->State( 0 ); # Unconnected
 if ( ! lost_connection( $sync, $sync->{imap1}, "for host1 [$sync->{host1}]" ) ) { $sync->{imap1}->logout(  )  ; }
 if ( ! lost_connection( $sync, $sync->{imap2}, "for host2 [$sync->{host2}]" ) ) { $sync->{imap2}->logout(  )  ; }
 
-stats( $sync ) ;
-myprint( errorsdump( $sync->{nb_errors}, errors_log( $sync ) ) ) if ( $sync->{errorsdump} ) ;
-tests_live_result( $sync->{nb_errors} ) if ( $sync->{testslive} or $sync->{testslive6} ) ;
+do_and_print_stats( $sync ) ;
+
+
+if ( $sync->{errorsdump} and $sync->{nb_errors} )
+{
+        myprint( errors_listing( $sync ) ) ;
+}
+
+
+if ( $sync->{testslive} or $sync->{testslive6} )
+{
+        tests_live_result( $sync->{nb_errors} ) ;
+}
 
 
 
 if ( $sync->{nb_errors} )
 {
-        exit_clean( $sync, $EXIT_WITH_ERRORS ) ;
+        my $exit_value = $EXIT_VALUE_OF_ERR_TYPE{ $sync->{most_common_error} } || $EXIT_CATCH_ALL ;
+        exit_clean( $sync, $exit_value ) ;
 }
 else
 {
@@ -2768,9 +3009,56 @@
 	return $mysync->{ output } ;
 }
 
-sub pidfile
+
+sub tests_print_output_if_needed
 {
-        my $mysync = shift ;
+        note( 'Entering tests_print_output_if_needed()' ) ;
+
+        is( undef, print_output_if_needed(  ),  'print_output_if_needed: no args => undef' ) ;
+        my $mysync = {  } ;
+        is( q{}, print_output_if_needed( $mysync ),  'print_output_if_needed: undef => undef' ) ;
+
+        output( $mysync, "Hello\n" ) ;
+        is( "Hello\n", print_output_if_needed( $mysync ),  'print_output_if_needed: Hello => Hello' ) ;
+        
+        $mysync->{ dockercontext } = 1 ;
+        is( "Hello\n", print_output_if_needed( $mysync ),  'print_output_if_needed: dockercontext + Hello => Hello' ) ;
+        
+        $mysync->{ version } = 1 ;
+        is( q{}, print_output_if_needed( $mysync ),  'print_output_if_needed: dockercontext + Hello + --version => ""' ) ;
+        
+        $mysync->{ dockercontext } = 0 ;
+        is( "Hello\n", print_output_if_needed( $mysync ),  'print_output_if_needed: Hello + --version => Hello' ) ;
+        
+        note( 'Leaving  tests_print_output_if_needed()' ) ;
+        return ;
+}
+
+
+sub print_output_if_needed
+{
+        
+        my $mysync = shift @ARG ;
+        if ( ! defined $mysync ) { return ; }
+        my $output = output( $mysync ) ;
+        
+        if ( $mysync->{ version } && under_docker_context( $mysync ) )
+        {
+                return q{} ;
+        }
+        else
+        {
+                myprint( $output ) ;
+                return $output ;
+        }
+        
+}
+
+
+
+sub define_pidfile
+{
+        my $mysync = shift @ARG ;
 
         $mysync->{ pidfilelocking } = defined $mysync->{ pidfilelocking }  ? $mysync->{ pidfilelocking } : 0 ;
 
@@ -2795,9 +3083,26 @@
         }
 
         $mysync->{ pidfile } =  defined  $mysync->{ pidfile }  ? $mysync-> { pidfile } : $mysync->{ tmpdir } . "/$pidfile_basename" ;
+        $mysync->{ abortfile } = abortfile( $mysync, $PROCESS_ID ) ;
         return ;
 }
 
+sub abortfile
+{
+        my $mysync = shift @ARG ;
+        my $pid    = shift @ARG ;
+
+        my $abortfile ;
+        if ( $mysync->{ abort } )
+        {
+                $abortfile = $mysync->{ pidfile } . "abort$pid" ;
+        }
+        else
+        {
+                $abortfile = $mysync->{ pidfile } . "abort$PROCESS_ID" ;
+        }
+        return $abortfile ;
+}
 
 sub tests_kill_zero
 {
@@ -2975,7 +3280,7 @@
         my $pidtokill = shift ;
 
         if ( ! $pidtokill ) {
-                myprint( "No process to abort.\n" ) ;
+                myprint( "No process to kill.\n" ) ;
                 return ;
         }
 
@@ -2989,7 +3294,7 @@
         if ( kill( 'ZERO', $pidtokill ) or ( 'MSWin32' eq $OSNAME ) ) {
                 myprint( "Sending signal QUIT to PID $pidtokill \n" ) ;
                 kill 'QUIT', $pidtokill ;
-                sleep 2 ;
+                sleep 3 ;
                 waitpid( $pidtokill, WNOHANG) ;
         }else{
                 myprint( "Can not send signal kill ZERO to PID $pidtokill.\n" ) ;
@@ -3023,7 +3328,7 @@
 sub tests_abort
 {
         note( 'Entering tests_abort()' ) ;
-
+        # Well, the abort behavior is tested by test.sh
         is( undef, abort(  ),  'abort: no args => undef' ) ;
         note( 'Leaving  tests_abort()' ) ;
         return ;
@@ -3036,31 +3341,87 @@
 {
         my $mysync = shift @ARG ;
 
+        myprint( "In abort\n" ) ;
         if ( not $mysync ) { return ; }
 
         if ( ! -r $mysync->{pidfile} ) {
-                myprint( "Can not read pidfile $mysync->{pidfile}. Exiting.\n" ) ;
-                exit $EX_OK ;
+                myprint( "In abort: Can not read pidfile $mysync->{pidfile}\n" ) ;
+                return ;
         }
         my $pidtokill = firstline( $mysync->{pidfile} ) ;
         if ( ! $pidtokill ) {
-                myprint( "No process to abort. Exiting.\n" ) ;
-                exit $EX_OK ;
+                myprint( "In abort: No process to abort in $mysync->{pidfile}\n" ) ;
+                return ;
         }
 
-        killpid( $pidtokill ) ;
+        if ( ! match_a_pid_number( $pidtokill ) )
+        {
+                myprint( "In abort: pid $pidtokill in $mysync->{pidfile} is not a pid number\n" ) ;
+                return ;
+        }
 
-        # well, the abort job is done anyway, because even when not succeeded
-        # in aborting another run, this run has to end without doing any
-        # thing else
 
-        exit $EX_OK ;
+        if ( $mysync->{abortbyfile} )
+        {
+                abortbyfile( $mysync, $pidtokill ) ;
+        }
+        else
+        {
+                killpid( $pidtokill ) ;
+        }
+        return ;
+}
+
+sub abortbyfile
+{
+        my $mysync    = shift @ARG ;
+        my $pidtokill = shift @ARG ;
+
+        my $abortfile = abortfile( $mysync, $pidtokill ) ;
+        myprint( "touching $abortfile\n" ) ;
+        touch( $abortfile ) ;
+        return ;
+}
+
+
+sub tests_under_docker_context
+{
+        note( 'Entering tests_under_docker_context()' ) ;
+
+        is( undef, under_docker_context(  ),  'under_docker_context: no args => undef' ) ;
+
+        my $mysync = {  } ;
+        $mysync->{ dockercontext } = 1 ;
+        is( 1, under_docker_context( $mysync ),  'under_docker_context: --dockercontext => 1' ) ;
+        $mysync->{ dockercontext } = 0 ;
+        is( 0, under_docker_context( $mysync ),  'under_docker_context: --nodockercontext => 0' ) ;
+
+        $mysync = {  } ;
+        # Is not it a stupid test?
+        if ( under_docker_context( $mysync ) )
+        {
+                is( 1, under_docker_context( $mysync ),  'under_docker_context: docker context => 1' ) ;
+        }
+        else
+        {
+                is( 0, under_docker_context( $mysync ),  'under_docker_context: not docker context => 0' ) ;
+        }
+
+        note( 'Leaving  tests_under_docker_context()' ) ;
+        return ;
 }
 
 
 sub under_docker_context
 {
         my $mysync = shift ;
+        
+        if ( ! defined $mysync ) { return ; }
+
+        if ( defined $mysync->{ dockercontext } )
+        {
+                return( $mysync->{ dockercontext } ) ;
+        }
 
         if ( -e '/.dockerenv' )
         {
@@ -3075,27 +3436,35 @@
 }
 
 
-sub docker_context
+sub docker_context 
 {
-	my $mysync = shift ;
-
-        #-e '/.dockerenv'  || return ;
+        my $mysync = shift ;
 
         if ( ! under_docker_context( $mysync ) )
         {
                 return ;
         }
 
-	$mysync->{ debug } and myprint( "Docker context detected with /.dockerenv\n" ) ;
-	# No pidfile
-	$mysync->{pidfile} = q{} ;
-	# No log
-	$mysync->{log} = 0 ;
-	# In case
-	$mysync->{ debug } and myprint( "Changing current directory to /var/tmp/\n" ) ;
-	chdir '/var/tmp/' ;
+        output( $mysync, "Docker context detected with the file /.dockerenv\n" ) ;
+        # No pidfile by default
+        
+        $mysync->{ pidfile } = defined( $mysync->{ pidfile } ) ? $mysync->{ pidfile } : q{} ;
+        # No log by default
+        if ( defined( $mysync->{ log } ) )
+        {
+                output( $mysync, "Logging in Docker context. Be sure you added access to it with a mount or similar. See https://docs.docker.com/storage/volumes/\n" ) ;
+        }
+        else
+        {
+                output( $mysync, "No log by default in Docker context. Use --log to trigger logging to the logfile.\n" ) ;
+                $mysync->{ log } = 0 ;
+        }
 
-	return ;
+        # In case something is written relatively to .
+        output( $mysync, "Changing current directory to /var/tmp/\n" ) ;
+        chdir '/var/tmp/' ;
+
+        return ;
 }
 
 sub cgibegin
@@ -3151,7 +3520,7 @@
         return ;
 }
 
-sub cgibuildheader
+sub cgibuildheader 
 {
 	my $mysync = shift ;
 	if ( ! under_cgi_context( $mysync ) ) { return ; }
@@ -3166,7 +3535,7 @@
 	my $httpheader ;
 	if ( $mysync->{ abort } ) {
 		$httpheader = $mysync->{cgi}->header(
-			-type   => 'text/plain',
+			-type   => 'text/plain; charset=UTF-8',
 			-status => '200 OK to abort syncing IMAP boxes' . ". Here is " . hostname(),
 		) ;
 	}elsif( $mysync->{ loaddelay } ) {
@@ -3174,7 +3543,7 @@
 # 503 Service Unavailable
 # The server is currently unable to handle the request due to a temporary overloading or maintenance of the server.
 		$httpheader = $mysync->{cgi}->header(
-			-type   => 'text/plain',
+			-type   => 'text/plain; charset=UTF-8',
 			-status => '503 Service Unavailable' . ". Be back in $mysync->{ loaddelay } min. Load on " . hostname() . " is $mysync->{ loadavg }",
 		) ;
 	}else{
@@ -3306,40 +3675,56 @@
 	return ;
 }
 
-sub  cgisetcontext
+sub buggyflagsregex
 {
-	my $mysync = shift ;
-	if ( ! under_cgi_context( $mysync ) ) { return ; }
+        # From /X analyse
+        # cut -d: -f1 Error_112_all_syncs.txt   | xargs egrep -oih 'Invalid system flag [^( ]+'  | sort | uniq -c | sort -g
+        my @buggyflagsregex = ( 's/\\\\RECEIPTCHECKED|\\\\Indexed|\\\\X-EON-HAS-ATTACHMENT|\\\\UNSEEN|\\\\ATTACHED|\\\\X-HAS-ATTACH|\\\\FORWARDED|\\\\FORWARD|\\\\X-FORWARDED|\\\\\$FORWARDED|\\\\PRIORITY|\\\\READRCPT//g' ) ;
+        return( @buggyflagsregex ) ;
+}
 
-	output( $mysync, "Under cgi context\n" ) ;
-	set_umask( $mysync ) ;
+sub cgisetcontext
+{
+        my $mysync = shift ;
+        if ( ! under_cgi_context( $mysync ) ) { return ; }
+
+        output( $mysync, "Under cgi context\n" ) ;
+        
+        
+        set_umask( $mysync ) ;
 
         # Remove all content in unsafe evaled options
         @{ $mysync->{ regextrans2 } } = (  ) ;
-        @regexflag   = (  ) ;
+
+        @{ $mysync->{ regexflag } } = buggyflagsregex(  ) ;
+        
         @regexmess   = (  ) ;
         @skipmess    = (  ) ;
         @pipemess    = (  ) ;
         $delete2foldersonly   = undef ;
         $delete2foldersbutnot = undef ;
-	$maxlinelengthcmd     = undef ;
+        $maxlinelengthcmd     = undef ;
 
-	# Set safe default values (I hope...)
+        # Set safe default values (I hope...)
 
 
         #$mysync->{pidfile} =  'imapsync.pid' ;
-	$mysync->{pidfilelocking} = 1 ;
-	$mysync->{errorsmax} = $ERRORS_MAX_CGI ;
-	$modulesversion = 0 ;
-	$mysync->{releasecheck} = defined  $mysync->{releasecheck}  ? $mysync->{releasecheck} : 1 ;
-	$usecache = 0 ;
-	$mysync->{showpasswords} = 0 ;
-	$debugimap1 = $debugimap2 = $debugimap = 0 ;
-	$reconnectretry1 = $reconnectretry2 = $DEFAULT_NB_RECONNECT_PER_IMAP_COMMAND ;
-	$pipemesscheck = 0 ;
+        $mysync->{ pidfilelocking } = 1 ;
+        $mysync->{ errorsmax } = $ERRORS_MAX_CGI ;
+        $modulesversion = 0 ;
+        $mysync->{ releasecheck } = defined  $mysync->{ releasecheck }  ? $mysync->{ releasecheck } : 1 ;
+        $usecache = 0 ;
+        $mysync->{ showpasswords } = 0 ;
+        $mysync->{ acc1 }->{ debugimap } = 0 ;
+        $mysync->{ acc2 }->{ debugimap } = 0 ;
 
-	$mysync->{hashfile} = $CGI_HASHFILE ;
-	my $hashsynclocal = hashsynclocal( $mysync ) || die "Can not get hashsynclocal. Exiting\n" ;
+        $mysync->{ acc1 }->{ reconnectretry } = $DEFAULT_NB_RECONNECT_PER_IMAP_COMMAND ;
+        $mysync->{ acc2 }->{ reconnectretry } = $DEFAULT_NB_RECONNECT_PER_IMAP_COMMAND ;
+
+        $pipemesscheck = 0 ;
+
+        $mysync->{ hashfile } = $CGI_HASHFILE ;
+        my $hashsynclocal = hashsynclocal( $mysync ) || die "Can not get hashsynclocal. Exiting\n" ;
 
         if ( $ENV{ 'NET_SERVER_SOFTWARE' } and ( $ENV{ 'NET_SERVER_SOFTWARE' } =~ /Net::Server::HTTP/ ) )
         {
@@ -3352,7 +3737,8 @@
         }
         -d $cgidir or mkpath $cgidir or die "Can not create $cgidir: $OS_ERROR\n" ;
         $mysync->{ tmpdir } = $cgidir ;
-
+        $mysync->{ logdir } = '' ;
+        
         chdir  $cgidir or die "Can not cd to $cgidir: $OS_ERROR\n" ;
         cgioutputenvcontext( $mysync ) ;
         $mysync->{ debug } and output( $mysync, 'Current directory is ' . getcwd(  ) . "\n" ) ;
@@ -3368,11 +3754,16 @@
         $mysync->{ tail } = defined  $mysync->{ tail }  ? $mysync->{ tail } : 1 ;
 
         # not sure it's for good
-        @useheader = qw( Message-Id ) ;
+        @useheader = qw( Message-Id Received ) ;
 
         # addheader on by default
         $mysync->{ addheader } = defined  $mysync->{ addheader }  ? $mysync->{ addheader } : 1 ;
+        
+        # sync duplicates by default in cgi context
+        $mysync->{ syncduplicates } = defined  $mysync->{ syncduplicates }  ? $mysync->{ syncduplicates } : 1 ;
 
+        # log the logfile name by default in cgi context
+        $mysync->{ loglogfile } = defined  $mysync->{ loglogfile }  ? $mysync->{ loglogfile } : 1 ;
         return ;
 }
 
@@ -3389,6 +3780,100 @@
 	return ;
 }
 
+sub announcelogfile 
+{
+        my $mysync = shift ;
+
+        if ( $mysync->{ log } )
+        {
+                myprint( "Log file is $mysync->{ logfile } ( to change it, use --logfile path ; or use --nolog to turn off logging )\n" ) ;
+                loglogfile( $mysync ) ;
+        }
+        else
+        {
+                myprint( "No log file because of option --nolog\n" ) ;
+        }  
+        return ;
+}
+
+
+sub loglogfile
+{
+        my $mysync = shift ;
+        if ( ! $mysync->{ loglogfile } ) { return ; }
+        if ( ! $mysync->{ log        } ) { return ; }
+        
+        my $cwd = getcwd(  ) ;
+        my $absolutelogfilepath ;
+        # Fixme: add case when the logfile name is already absolute
+        $absolutelogfilepath = "$cwd/$mysync->{ logfile }" ;
+        my $loglogfilename = '../list_all_logs_auto.txt' ;
+        myprint( "Writing log file name $absolutelogfilepath to $loglogfilename\n" ) ;
+        if ( open( my $fh, '>>', $loglogfilename ) )
+        {
+                print $fh "$absolutelogfilepath\n" ;
+                close $fh ;
+        }
+        else
+        {
+                myprint( "Could not open loglogfile $loglogfilename $!\n" ) ;
+        }
+        return ;
+}
+
+
+sub checkselectable 
+{
+        my $mysync = shift ; 
+        
+        if ( $mysync->{ checkselectable } ) {
+                my @h1_folders_wanted_selectable ;
+                myprint( "Host1: Checking wanted folders are selectable. Use --nocheckselectable to avoid this check.\n"  ) ;
+                foreach my $folder ( @{ $mysync->{ h1_folders_wanted } } )
+                {
+                        ( $mysync->{ debug } or $mysync->{ debugfolders } ) and myprint( "Checking $folder is selectable on host1\n"  ) ;
+                        # It does an imap command  LIST "" $folder and then search for no \Noselect
+                        if ( ! $mysync->{ imap1 }->selectable( $folder ) )
+                        {
+                                myprint( "Host1: warning! ignoring folder $folder because it is not selectable\n" ) ;
+                        }else
+                        {
+                                push  @h1_folders_wanted_selectable, $folder  ;
+                        }
+                }
+                @{ $mysync->{ h1_folders_wanted } } = @h1_folders_wanted_selectable ;
+                ( $mysync->{ debug } or $mysync->{ debugfolders } ) 
+                        and myprint( 'Host1: checking folders took ', timenext( $mysync ), " s\n"  ) ;
+        }
+        else
+        {
+                myprint( "Host1: Not checking that wanted folders are selectable. Use --checkselectable to force this check.\n"  ) ;
+        }
+        return ;
+}
+
+sub setcheckselectable 
+{
+        my $mysync = shift ;
+        
+        my $h1_folders_wanted_nb = scalar @{ $mysync->{ h1_folders_wanted } } ;
+        # 152 because 98% of host1 accounts have less than 152 folders on /X service.
+        # command to get this value: 
+        #     datamash_file_op_index G_Host1_Nb_folders.txt  perc:98 4  %16.1f 
+        if ( ! defined $mysync->{ checkselectable } )
+        {
+                if ( 152 >= $h1_folders_wanted_nb )
+                {
+                        $mysync->{ checkselectable } = 1 ;
+                }else{
+                        myprint( "Host1: Not checking that $h1_folders_wanted_nb wanted folders are selectable. Use --checkselectable to force this check.\n"  ) ;
+                        $mysync->{ checkselectable } = 0 ;
+                }
+        }
+        return ;
+}
+
+
 
 sub debugsleep
 {
@@ -3416,7 +3901,6 @@
 
 
 # Globals:
-# $uidnext_default
 # $fetch_hash_set
 #
 sub foldersize
@@ -3450,6 +3934,7 @@
         my $biggest_in_folder = 0 ;
         @{ $hash_ref }{ @msgs } = ( undef ) if @msgs ;
 
+
         my $stot = 0 ;
 
         if ( $imap->IsUnconnected(  ) )
@@ -3467,8 +3952,7 @@
                 }
                 else
                 {
-                        my $uidnext = $imap->uidnext( $folder ) || $uidnext_default ;
-                        my $fetch_hash_uids = $fetch_hash_set || "1:$uidnext" ;
+                        my $fetch_hash_uids = $fetch_hash_set || "1:*" ;
                         if ( ! $imap->fetch_hash( $fetch_hash_uids, 'RFC822.SIZE', $hash_ref ) ) {
                                 my $error = "$side failure with fetch_hash: $EVAL_ERROR\n" ;
                                 errors_incr( $mysync, $error ) ;
@@ -3477,8 +3961,11 @@
                 }
                 for ( keys %{ $hash_ref } ) {
                         my $size =  $hash_ref->{ $_ }->{ 'RFC822.SIZE' } ;
-                        $stot    += $size ;
-                        $biggest_in_folder =  max( $biggest_in_folder, $size ) ;
+                        if ( defined $size )
+                        {
+                                $stot += $size ;
+                                $biggest_in_folder =  max( $biggest_in_folder, $size ) ;
+                        }
                 }
         }
         return( $stot, $nb_msgs, $biggest_in_folder ) ;
@@ -3717,6 +4204,66 @@
         return $x + $y ;
 }
 
+sub tests_checknoabletosearch
+{
+        note( 'Entering checknoabletosearch()' ) ;
+
+        is( undef, checknoabletosearch(  ),  'checknoabletosearch: no args => undef' ) ;
+
+        note( 'Leaving  checknoabletosearch()' ) ;
+        return ;
+}
+
+
+
+
+sub checknoabletosearch
+{
+        # call example: checknoabletosearch( $sync, $sync->{ imap1 }, 'INBOX', 'Host1' ) ;
+        # output:
+        # * undef if something is not ok to decide
+        # * 1 if SEARCH ALL failed
+
+        my( $mysync, $imap, $folder, $HostX ) = @ARG ;
+
+        if ( ! all_defined( $mysync, $imap, $folder, $HostX ) )
+        {
+                return ;
+        }
+
+        myprint( "$HostX: checking if SEARCH ALL works on $folder\n" ) ;
+        if ( ! select_folder( $mysync, $imap, $folder, $HostX ) )
+        {
+                myprint( "$HostX: can not SELECT folder [$folder]\n" ) ;
+                return ;
+        }
+        my $count_from_select = count_from_select( $imap->History ) ;
+        myprint( "$HostX: folder [$folder] has $count_from_select messages mentioned by SELECT\n" ) ;
+
+        my $msgs_all = $imap->messages(  ) ;
+        if ( ! $msgs_all )
+        {
+                myprint( "$HostX: can not SEARCH ALL folder [$folder]\n" ) ;
+                myprint( "$HostX: ", $imap->LastError(), "\n" ) ;
+                return 1 ;
+        }
+
+        my $count_from_search_all = scalar( @{ $msgs_all } ) ;
+        myprint( "$HostX: folder [$folder] has $count_from_search_all messages found by SEARCH ALL\n" ) ;
+
+        if ( $count_from_select == $count_from_search_all )
+        {
+                myprint( "$HostX: folder [$folder] has the same messages count ($count_from_select) by SELECT and SEARCH ALL\n" ) ;
+        }
+        else
+        {
+                myprint( "$HostX: Warning, folder [$folder] has not the same count by SELECT ($count_from_select) and SEARCH ALL ($count_from_search_all)\n" )  ;
+                return 1 ;
+        }
+
+        return ;
+}
+
 
 sub foldersizes_diff_list
 {
@@ -3864,7 +4411,7 @@
                 return ;
         }
 
-        my $h2_bytes_limit = $mysync->{h2}->{quota_limit_bytes} || 0 ;
+        my $h2_bytes_limit = $mysync->{ acc2 }->{quota_limit_bytes} || 0 ;
         if ( $h2_bytes_limit and ( $h2_bytes_limit < $mysync->{ h1_bytes_start } ) )
         {
                 my $quota_percent = mysprintf( '%.0f', $NUMBER_100 * $mysync->{ h1_bytes_start } / $h2_bytes_limit ) ;
@@ -3906,7 +4453,7 @@
                 return ;
         }
 
-        my $h2_bytes_limit = $mysync->{h2}->{quota_limit_bytes} || 0 ;
+        my $h2_bytes_limit = $mysync->{ acc2 }->{quota_limit_bytes} || 0 ;
         if ( $h2_bytes_limit and ( $h2_bytes_limit < $mysync->{ h1_bytes_start } ) )
         {
                 my $quota_percent = mysprintf( '%.0f', $NUMBER_100 * $mysync->{ h1_bytes_start } / $h2_bytes_limit ) ;
@@ -3917,15 +4464,51 @@
 }
 
 
+sub tests_total_bytes_max_reached
+{
+        note( 'Entering tests_total_bytes_max_reached()' ) ;
+
+        is( undef, total_bytes_max_reached(  ),  'total_bytes_max_reached: no args => undef' ) ;
+
+        my $mysync = {} ;
+        is( undef, total_bytes_max_reached( $mysync ),  'total_bytes_max_reached: no exitwhenover => undef' ) ;
+
+        $mysync->{ exitwhenover } = 300 ;
+        is( undef, total_bytes_max_reached( $mysync ),  'total_bytes_max_reached: exitwhenover 300 but no total_bytes_transferred => undef' ) ;
+
+        $mysync->{ total_bytes_transferred } = 200 ;
+        is( undef, total_bytes_max_reached( $mysync ),  'total_bytes_max_reached: exitwhenover 300 but total_bytes_transferred 200 => undef' ) ;
+
+        $mysync->{ total_bytes_transferred } = 400 ;
+        is( 1, total_bytes_max_reached( $mysync ),  'total_bytes_max_reached: exitwhenover 300 but total_bytes_transferred 400 => 1' ) ;
+
+
+
+        note( 'Leaving  tests_total_bytes_max_reached()' ) ;
+        return ;
+}
+
+
 sub total_bytes_max_reached
 {
         my $mysync = shift ;
 
-        if ( ! $mysync->{ exitwhenover } ) {
-                return( 0 ) ;
+        if ( ! defined $mysync ) { return ; }
+
+        if ( ! $mysync->{ exitwhenover } )
+        {
+                return ;
         }
-        if ( $mysync->{ total_bytes_transferred } >= $mysync->{ exitwhenover } ) {
-                myprint( "Maximum bytes transferred reached, $mysync->{total_bytes_transferred} >= $mysync->{ exitwhenover }, ending sync\n"  ) ;
+
+        if ( ! $mysync->{ total_bytes_transferred } )
+        {
+                return ;
+        }
+
+        if ( $mysync->{ total_bytes_transferred } >= $mysync->{ exitwhenover } )
+        {
+                my $error = "Maximum bytes transferred reached, $mysync->{total_bytes_transferred} >= $mysync->{ exitwhenover }, ending sync\n" ;
+                errors_incr( $mysync, $error ) ;
                 return( 1 ) ;
         }
         return ;
@@ -4166,7 +4749,7 @@
         #myprint( Data::Dumper->Dump( [ \$myimap ] )  ) ;
         my $appendlimit = capability_of( $myimap, 'APPENDLIMIT' ) ;
         #myprint( "has_capability APPENDLIMIT $appendlimit\n" ) ;
-        if ( is_an_integer( $appendlimit ) )
+        if ( is_integer( $appendlimit ) )
         {
                 return $appendlimit ;
         }
@@ -4291,8 +4874,6 @@
 
         # Now --truncmess stuff
 
-
-
         note( 'Leaving  tests_maxsize_setting()' ) ;
 
         return ;
@@ -4432,20 +5013,70 @@
 
 sub tests_hashsync
 {
-	note( 'Entering tests_hashsync()' ) ;
+        note( 'Entering tests_hashsync()' ) ;
+
+        is( 'fbdb1d1b18aa6c08324b7d64b71fb76370690e1d', hashsync(  ), 'hashsync: no args' ) ;
+
+        is( 'fbdb1d1b18aa6c08324b7d64b71fb76370690e1d', hashsync( {}, q{} ), 'hashsync: empty args' ) ;
+        my $mysync ;
+        $mysync->{ host1 } = 'zzz' ;
+        is( 'e86a28a3611c1e7bbaf8057cd00ae122781a11fe', hashsync( $mysync, q{} ), 'hashsync: host1 zzz => ' ) ;
+        is( '6a7b451ac99eab1531ad8e6cd544b32420c552ac', hashsync( $mysync, q{A} ), 'hashsync: host1 zzz => ' ) ;
+        $mysync->{ host2 } = 'zzz' ;
+        is( '15959573e4a86763253a7aedb1a2b0c60d133dc2', hashsync( $mysync, q{} ), 'hashsync: + host2 zzz => ' ) ;
+        is( 'b8d4ab541b209c75928528020ca28ee43488bd8f', hashsync( $mysync, 'A' ), 'hashsync: + hashkey A => ' ) ;
+
+        $mysync = undef ;
+        is( 'fbdb1d1b18aa6c08324b7d64b71fb76370690e1d', hashsync( $mysync, q{} ), 'hashsync: undef $mysync' ) ;
+        $mysync->{ password1 } = 'abcd' ;
+        is( 'afa29ab8534495251ac8346a985717c54bc49c26', hashsync( $mysync, q{} ), 'hashsync: password1: abcd' ) ;
+
+        # A user reported a massive failure on /X (Thomas V. 21/04/2020 Ã  21:41 Subject: Error)
+        # "Wide character in subroutine entry at /usr/local/lib/perl5/site_perl/Digest/HMAC.pm"
+        # I can reproduce it now
 
 
-	is( 'fbdb1d1b18aa6c08324b7d64b71fb76370690e1d', hashsync( {}, q{} ), 'hashsync: empty args' ) ;
-	my $mysync ;
-	$mysync->{ host1 } = 'zzz' ;
-	is( 'e86a28a3611c1e7bbaf8057cd00ae122781a11fe', hashsync( $mysync, q{} ), 'hashsync: host1 zzz => ' ) ;
-	is( 'e86a28a3611c1e7bbaf8057cd00ae122781a11fe', hashsync( $mysync, q{} ), 'hashsync: host1 zzz => ' ) ;
-	$mysync->{ host2 } = 'zzz' ;
-	is( '15959573e4a86763253a7aedb1a2b0c60d133dc2', hashsync( $mysync, q{} ), 'hashsync: + host2 zzz => ' ) ;
-	is( 'b8d4ab541b209c75928528020ca28ee43488bd8f', hashsync( $mysync, 'A' ), 'hashsync: + hashkey A => ' ) ;
+        # The eval is there to avoid a complete crash
+        # this one is fatal so it is commented
+        # is( 'f1a3f3dac3f137fd658027c11678b895f773ce55', 1 / 0 , 'hashsync: 1 / 0 fatal' ) ;
 
-	note( 'Leaving  tests_hashsync()' ) ;
-	return ;
+        my $eval ;
+        # this one is not fatal
+        is( undef, $eval = eval { 1 / 0 } , 'hashsync: 1/0 not fatal' ) ;
+        # this one neither
+        $mysync->{ password1 } = 'Ö' ;
+        is( 'f1a3f3dac3f137fd658027c11678b895f773ce55', $eval = eval { hashsync( $mysync, q{} ) } , 'hashsync: password1: Ö with eval' ) ;
+
+        $mysync->{ password1 } = 'Ö' ;
+        is( 'f1a3f3dac3f137fd658027c11678b895f773ce55', hashsync( $mysync, q{} ), 'hashsync: password1: Ö without eval' ) ;
+
+        $mysync->{ password1 } = qq{\x{00D6}} ;
+        is( 'bb5bfb461e79ecd3dbc6ade2aabb52d22fa8be1a', $eval = eval { hashsync( $mysync, q{} ) }, 'hashsync: password1: \x{00D6}' ) ; #
+
+        print qq{1 00D6:Ö\n} ;
+        print encode_utf8( qq{2 00D6:Ö\n} ) ;
+        print qq{3 00D6:\x{00D6}\n} ;
+        print encode_utf8( qq{4 00D6:\x{00D6}\n} ) ;
+
+
+        print              qq{5 6536:收\n} ;
+        print encode_utf8( qq{6 6536:收\n} ) ;
+        # the next one prints "Wide character in print at ./imapsync line xxxx"
+        print              qq{7 6536:\x{6536}\n} ;
+        print encode_utf8( qq{8 6536:\x{6536}\n} ) ;
+
+        $mysync->{ password1 } = qq{收} ;
+        is( '4199f02773d1cd5599b1a8f2d024bdceb8b48e0b', hashsync( $mysync, q{} ), 'hashsync: password1: 收' ) ;
+
+        $mysync->{ password1 } = qq{\x{6536}} ;
+        is( '4199f02773d1cd5599b1a8f2d024bdceb8b48e0b', $eval = eval{ hashsync( $mysync, q{} ) }, 'hashsync: password1: \x{6536} with eval' ) ;
+
+        # No side effect.
+        $mysync->{ password1 } = 'abcd' ;
+        is( 'afa29ab8534495251ac8346a985717c54bc49c26', hashsync( $mysync, q{} ), 'hashsync: password1: abcd again' ) ;
+
+        note( 'Leaving  tests_hashsync()' ) ;
+        return ;
 }
 
 sub hashsync
@@ -4461,12 +5092,119 @@
 		$mysync->{ user2 }     || q{},
 		$mysync->{ password2 } || q{},
 	) ;
-	my $hashsync = hmac_sha1_hex( $mystring, $hashkey ) ;
+        #my $hashsync = hmac_sha1_hex( $mystring, $hashkey ) ;
+	my $hashsync = hmac_sha1_hex_robust( $mystring, $hashkey ) ;
 	#myprint( "$hashsync\n" ) ;
 	return( $hashsync ) ;
 }
 
 
+sub tests_hmac_sha1_hex
+{
+        note( 'Entering tests_hmac_sha1_hex()' ) ;
+
+        is( 'fbdb1d1b18aa6c08324b7d64b71fb76370690e1d', hmac_sha1_hex(  ),               'hmac_sha1_hex: no args              => fbdb1d1b18aa6c08324b7d64b71fb76370690e1d' ) ;
+        is( 'fbdb1d1b18aa6c08324b7d64b71fb76370690e1d', hmac_sha1_hex( '' ),             'hmac_sha1_hex: empty string         => fbdb1d1b18aa6c08324b7d64b71fb76370690e1d' ) ;
+        is( 'fbdb1d1b18aa6c08324b7d64b71fb76370690e1d', hmac_sha1_hex( '', '' ),         'hmac_sha1_hex: empty strings        => fbdb1d1b18aa6c08324b7d64b71fb76370690e1d' ) ;
+        is( 'fbdb1d1b18aa6c08324b7d64b71fb76370690e1d', hmac_sha1_hex( '', '', 'caca' ), 'hmac_sha1_hex: empty strings + caca => fbdb1d1b18aa6c08324b7d64b71fb76370690e1d' ) ;
+
+        # Good
+        is( 'f1a3f3dac3f137fd658027c11678b895f773ce55', hmac_sha1_hex( 'Ö' ),                        'hmac_sha1_hex: Ö                    => f1a3f3dac3f137fd658027c11678b895f773ce55' ) ;
+        is( 'f1a3f3dac3f137fd658027c11678b895f773ce55', hmac_sha1_hex( encode_utf8(qq{\x{00D6}}) ),  'hmac_sha1_hex: encode_utf8 \x{00D6} => f1a3f3dac3f137fd658027c11678b895f773ce55' ) ;
+        # Bad
+        is( 'fe8dc3b9ba3e8850bb4a7b070b2279e911003af2', hmac_sha1_hex( encode_utf8( 'Ö' ) ),         'hmac_sha1_hex: encode_utf8 Ö        => fe8dc3b9ba3e8850bb4a7b070b2279e911003af2' ) ;
+        is( 'bb5bfb461e79ecd3dbc6ade2aabb52d22fa8be1a', hmac_sha1_hex( qq{\x{00D6}} ),               'hmac_sha1_hex: qq{\x{00D6}}         => bb5bfb461e79ecd3dbc6ade2aabb52d22fa8be1a' ) ;
+
+        # Good
+        is( 'a6fda2a6acdd74630b20aac0c68716048ecd0333', hmac_sha1_hex( 'A' ),                       'hmac_sha1_hex: A                     => a6fda2a6acdd74630b20aac0c68716048ecd0333' ) ;
+        is( 'a6fda2a6acdd74630b20aac0c68716048ecd0333', hmac_sha1_hex( encode_utf8(qq{\x{0041}}) ), 'hmac_sha1_hex: encode_utf8 \x{0041}  => a6fda2a6acdd74630b20aac0c68716048ecd0333' ) ;
+        is( 'a6fda2a6acdd74630b20aac0c68716048ecd0333', hmac_sha1_hex( encode_utf8( 'A' ) ),        'hmac_sha1_hex: encode_utf8 A         => a6fda2a6acdd74630b20aac0c68716048ecd0333' ) ;
+        is( 'a6fda2a6acdd74630b20aac0c68716048ecd0333', hmac_sha1_hex( qq{\x{0041}} ),              'hmac_sha1_hex: \x{0041}              => a6fda2a6acdd74630b20aac0c68716048ecd0333' ) ;
+
+        # Good
+        is( '36c54f255b575a2db58921d116b37c8af94c08cd', hmac_sha1_hex( 'A', 'B' ),                       'hmac_sha1_hex: A                    B => 36c54f255b575a2db58921d116b37c8af94c08cd' ) ;
+        is( '36c54f255b575a2db58921d116b37c8af94c08cd', hmac_sha1_hex( encode_utf8(qq{\x{0041}}), 'B' ), 'hmac_sha1_hex: encode_utf8 \x{0041} B => 36c54f255b575a2db58921d116b37c8af94c08cd' ) ;
+        is( '36c54f255b575a2db58921d116b37c8af94c08cd', hmac_sha1_hex( encode_utf8( 'A' ), 'B' ),        'hmac_sha1_hex: encode_utf8 A        B => 36c54f255b575a2db58921d116b37c8af94c08cd' ) ;
+        is( '36c54f255b575a2db58921d116b37c8af94c08cd', hmac_sha1_hex( qq{\x{0041}}, 'B' ),              'hmac_sha1_hex: \x{0041}             B => 36c54f255b575a2db58921d116b37c8af94c08cd' ) ;
+
+        # http://unicode.scarfboy.com/?s=U%2B6536
+        # Good
+        is( '4199f02773d1cd5599b1a8f2d024bdceb8b48e0b', hmac_sha1_hex( '收' ),                      'hmac_sha1_hex: 收                    => 4199f02773d1cd5599b1a8f2d024bdceb8b48e0b' ) ;
+        is( '4199f02773d1cd5599b1a8f2d024bdceb8b48e0b', hmac_sha1_hex( encode_utf8(qq{\x{6536}}) ), 'hmac_sha1_hex: encode_utf8 \x{6536}  => 4199f02773d1cd5599b1a8f2d024bdceb8b48e0b' ) ;
+        # Bad
+        is( 'e82217119628ad03e659cc89671d05ea4cee7238', hmac_sha1_hex( encode_utf8( '收' ) ),        'hmac_sha1_hex: encode_utf8 收       => e82217119628ad03e659cc89671d05ea4cee7238' ) ;
+        # Very very bad, perl dies...
+        #is( '4199f02773d1cd5599b1a8f2d024bdceb8b48e0b', hmac_sha1_hex( qq{\x{6536}} ),              'hmac_sha1_hex: \x{6536}             => 4199f02773d1cd5599b1a8f2d024bdceb8b48e0b' ) ;
+        # Ok but well, bad indeed
+        is( undef, my $eval = eval{ hmac_sha1_hex( qq{\x{6536}} ) },                                            'hmac_sha1_hex: \x{6536}             => undef' ) ;
+
+
+        note( 'Leaving  tests_hmac_sha1_hex()' ) ;
+        return ;
+}
+
+sub tests_hmac_sha1_hex_robust
+{
+        note( 'Entering tests_hmac_sha1_hex_robust()' ) ;
+
+        is( 'fbdb1d1b18aa6c08324b7d64b71fb76370690e1d', hmac_sha1_hex_robust(  ),  'hmac_sha1_hex_robust: no args => fbdb1d1b18aa6c08324b7d64b71fb76370690e1d' ) ;
+        is( 'fbdb1d1b18aa6c08324b7d64b71fb76370690e1d', hmac_sha1_hex_robust( '' ),  'hmac_sha1_hex_robust: empty string  => fbdb1d1b18aa6c08324b7d64b71fb76370690e1d' ) ;
+        is( 'fbdb1d1b18aa6c08324b7d64b71fb76370690e1d', hmac_sha1_hex_robust( '', '' ),  'hmac_sha1_hex_robust: empty strings  => fbdb1d1b18aa6c08324b7d64b71fb76370690e1d' ) ;
+        is( 'fbdb1d1b18aa6c08324b7d64b71fb76370690e1d', hmac_sha1_hex_robust( '', '', 'caca' ),  'hmac_sha1_hex_robust: empty strings + caca => fbdb1d1b18aa6c08324b7d64b71fb76370690e1d' ) ;
+
+        # Good
+        is( 'f1a3f3dac3f137fd658027c11678b895f773ce55', hmac_sha1_hex_robust( 'Ö' ),  'hmac_sha1_hex_robust: Ö  => f1a3f3dac3f137fd658027c11678b895f773ce55' ) ;
+        is( 'f1a3f3dac3f137fd658027c11678b895f773ce55', hmac_sha1_hex_robust( encode_utf8(qq{\x{00D6}}) ),  'hmac_sha1_hex_robust: encode_utf8 \x{00D6}  => f1a3f3dac3f137fd658027c11678b895f773ce55' ) ;
+        # Bad
+        is( 'fe8dc3b9ba3e8850bb4a7b070b2279e911003af2', hmac_sha1_hex_robust( encode_utf8( 'Ö' ) ),  'hmac_sha1_hex_robust: encode_utf8 Ö  => fe8dc3b9ba3e8850bb4a7b070b2279e911003af2' ) ;
+        is( 'bb5bfb461e79ecd3dbc6ade2aabb52d22fa8be1a', hmac_sha1_hex_robust( qq{\x{00D6}} ),  'hmac_sha1_hex_robust: qq{\x{00D6}}  => bb5bfb461e79ecd3dbc6ade2aabb52d22fa8be1a' ) ;
+
+        # Good
+        is( 'a6fda2a6acdd74630b20aac0c68716048ecd0333', hmac_sha1_hex_robust( 'A' ),  'hmac_sha1_hex_robust: A  => a6fda2a6acdd74630b20aac0c68716048ecd0333' ) ;
+        is( 'a6fda2a6acdd74630b20aac0c68716048ecd0333', hmac_sha1_hex_robust( encode_utf8(qq{\x{0041}}) ),  'hmac_sha1_hex_robust: encode_utf8 \x{0041}  => a6fda2a6acdd74630b20aac0c68716048ecd0333' ) ;
+        is( 'a6fda2a6acdd74630b20aac0c68716048ecd0333', hmac_sha1_hex_robust( encode_utf8( 'A' ) ),  'hmac_sha1_hex_robust: encode_utf8 A  => a6fda2a6acdd74630b20aac0c68716048ecd0333' ) ;
+        is( 'a6fda2a6acdd74630b20aac0c68716048ecd0333', hmac_sha1_hex_robust( qq{\x{0041}} ),  'hmac_sha1_hex_robust: \x{0041}  => a6fda2a6acdd74630b20aac0c68716048ecd0333' ) ;
+
+        # Good
+        is( '36c54f255b575a2db58921d116b37c8af94c08cd', hmac_sha1_hex_robust( 'A', 'B' ),                       'hmac_sha1_hex_robust: A                    B => 36c54f255b575a2db58921d116b37c8af94c08cd' ) ;
+        is( '36c54f255b575a2db58921d116b37c8af94c08cd', hmac_sha1_hex_robust( encode_utf8(qq{\x{0041}}), 'B' ), 'hmac_sha1_hex_robust: encode_utf8 \x{0041} B => 36c54f255b575a2db58921d116b37c8af94c08cd' ) ;
+        is( '36c54f255b575a2db58921d116b37c8af94c08cd', hmac_sha1_hex_robust( encode_utf8( 'A' ), 'B' ),        'hmac_sha1_hex_robust: encode_utf8 A        B => 36c54f255b575a2db58921d116b37c8af94c08cd' ) ;
+        is( '36c54f255b575a2db58921d116b37c8af94c08cd', hmac_sha1_hex_robust( qq{\x{0041}}, 'B' ),              'hmac_sha1_hex_robust: \x{0041}             B => 36c54f255b575a2db58921d116b37c8af94c08cd' ) ;
+
+        # http://unicode.scarfboy.com/?s=U%2B6536
+        # Good
+        is( '4199f02773d1cd5599b1a8f2d024bdceb8b48e0b', hmac_sha1_hex_robust( '收' ),                      'hmac_sha1_hex_robust: 收                   => 4199f02773d1cd5599b1a8f2d024bdceb8b48e0b' ) ;
+        is( '4199f02773d1cd5599b1a8f2d024bdceb8b48e0b', hmac_sha1_hex_robust( encode_utf8(qq{\x{6536}}) ), 'hmac_sha1_hex_robust: encode_utf8 \x{6536} => 4199f02773d1cd5599b1a8f2d024bdceb8b48e0b' ) ;
+        # Bad
+        is( 'e82217119628ad03e659cc89671d05ea4cee7238', hmac_sha1_hex_robust( encode_utf8( '收' ) ),       'hmac_sha1_hex_robust: encode_utf8 收       => e82217119628ad03e659cc89671d05ea4cee7238' ) ;
+        # Good
+        is( '4199f02773d1cd5599b1a8f2d024bdceb8b48e0b', hmac_sha1_hex_robust( qq{\x{6536}} ),              'hmac_sha1_hex_robust: \x{6536}             => 4199f02773d1cd5599b1a8f2d024bdceb8b48e0b' ) ;
+        # Good again
+        is( '4199f02773d1cd5599b1a8f2d024bdceb8b48e0b', my $eval = eval{ hmac_sha1_hex_robust( qq{\x{6536}} ) },      'hmac_sha1_hex_robust: \x{6536}             => undef' ) ;
+
+        note( 'Leaving  tests_hmac_sha1_hex_robust()' ) ;
+        return ;
+}
+
+
+sub hmac_sha1_hex_robust
+{
+        my $string = shift ;
+        my $val ;
+        if ( defined( $val = eval{ hmac_sha1_hex( $string, @ARG ) } ) )
+        {
+                return $val ;
+        }
+        elsif( defined( $val = eval{ hmac_sha1_hex( encode_utf8( $string ), @ARG ) } ) )
+        {
+                return $val ;
+        }
+        else
+        {
+                return ;
+        }
+}
+
 sub tests_createhashfileifneeded
 {
 	note( 'Entering tests_createhashfileifneeded()' ) ;
@@ -4588,7 +5326,7 @@
                 vendor        => 'Gilles LAMIRAL',
                 'support-url' => 'https://imapsync.lamiral.info/',
                 # Example of date-time:  19-Sep-2015 08:56:07
-                date          => date_from_rcs( q{$Date: 2019/12/23 20:18:02 $ } ),
+                date          => date_from_rcs( q{$Date: 2021/07/22 14:21:09 $ } ),
         } ;
 
         my $imapsync_id_github  = {
@@ -4597,7 +5335,7 @@
                 os            => $OSNAME,
                 vendor        => 'github',
                 'support-url' => 'https://github.com/imapsync/imapsync',
-                date          => date_from_rcs( q{$Date: 2019/12/23 20:18:02 $ } ),
+                date          => date_from_rcs( q{$Date: 2021/07/22 14:21:09 $ } ),
         } ;
 
         $imapsync_id = $imapsync_id_lamiral ;
@@ -5003,12 +5741,16 @@
         $mysync->{errorsmax} ||= $ERRORS_MAX ;
         if ( $mysync->{nb_errors} >= $mysync->{errorsmax} ) {
                 myprint( "Maximum number of errors $mysync->{errorsmax} reached ( you can change $mysync->{errorsmax} to any value, for example 100 with --errorsmax 100 ). Exiting.\n"  ) ;
+                my $most_common_error = errorsanalyse( errors_log( $mysync ) ) ;
                 if ( $mysync->{errorsdump} ) {
-                        myprint( errorsdump( $mysync->{nb_errors}, errors_log( $mysync ) ) ) ;
+                        myprint( errorsdump( errors_log( $mysync ) ) ) ;
+                        myprint( "The most frequent error is $most_common_error\n" ) ;
                         # again since errorsdump(  ) can be very verbose and masquerade previous warning
                         myprint( "Maximum number of errors $mysync->{errorsmax} reached ( you can change $mysync->{errorsmax} to any value, for example 100 with --errorsmax 100 ). Exiting.\n"  ) ;
                 }
-                exit_clean( $mysync, $EXIT_WITH_ERRORS_MAX ) ;
+                my $exit_value = $EXIT_VALUE_OF_ERR_TYPE{ $most_common_error } || $EXIT_CATCH_ALL ;
+                #exit_clean( $mysync, $EXIT_WITH_ERRORS_MAX ) ;
+                exit_clean( $mysync, $exit_value ) ;
         }
         return ;
 }
@@ -5048,14 +5790,288 @@
 }
 
 
+sub tests_error_type
+{
+        note( 'Entering tests_error_type()' ) ;
+
+        is( 'ERR_NOTHING_REPORTED', error_type(  ),    'error_type: no args => ERR_NOTHING_REPORTED' ) ;
+        is( 'ERR_NOTHING_REPORTED', error_type( '' ),  'error_type: empty string => ERR_NOTHING_REPORTED' ) ;
+
+        is( 'ERR_UNCLASSIFIED', error_type( 'ERR_UNCLASSIFIED' ),  'error_type: ERR_UNCLASSIFIED => ERR_UNCLASSIFIED' ) ;
+        is( 'ERR_UNCLASSIFIED', error_type( 'aie' ),  'error_type: aie => ERR_UNCLASSIFIED' ) ;
+        is( 'ERR_UNCLASSIFIED', error_type( 'ouille' ),  'error_type: ouille => ERR_UNCLASSIFIED' ) ;
+
+        is( 'ERR_Host1_FETCH', error_type( 'Message xxx could not be fetched: blabla' ),
+                'error_type: could not be fetched => ERR_Host1_FETCH'
+        ) ;
+
+        is( 'ERR_APPEND_SIZE',
+                error_type( 'could not append message xxx: BAD maximum message size exceeded' ),
+                'error_type: could not append message xxx: BAD maximum message size exceeded => ERR_APPEND_SIZE'
+        ) ;
+
+        is( 'ERR_OVERQUOTA',
+                error_type( 'Quota limit will be exceeded' ),
+                'error_type: Quota limit will be exceeded => ERR_OVERQUOTA'
+        ) ;
+
+        is( 'ERR_APPEND', error_type( 'could not append' ),  'error_type: could not append => ERR_APPEND' ) ;
+
+        is( 'ERR_CREATE',
+                error_type( 'Could not create folder' ),
+                'error_type: Could not create folder => ERR_CREATE'
+        ) ;
+
+        is( 'ERR_SELECT',
+                error_type( 'Could not select: blabla' ),
+                'error_type: Could not select: blabla => ERR_SELECT'
+        ) ;
+
+
+        #
+        #Maximum bytes transferred reached, 423 >= 100, ending sync
+        is( 'ERR_TRANSFER_EXCEEDED',
+                error_type( 'Maximum bytes transferred reached, blabla' ),
+                'error_type: Maximum bytes transferred reached, blabla => ERR_TRANSFER_EXCEEDED'
+        ) ;
+
+        #
+        is( 'ERR_CONNECTION_FAILURE_HOST1',
+                error_type( 'Host1 failure: can not open imap connection on host1 [badhostkaka] with user [tata]: Unable to connect to badhostkaka:  Invalid argument' ),
+                'error_type: can not open imap connection on host1 => ERR_CONNECTION_FAILURE_HOST1'
+        ) ;
+
+        is( 'ERR_CONNECTION_FAILURE_HOST2',
+                error_type( 'Host2 failure: can not open imap connection on host2 [badhostkiki] with user [titi]: Unable to connect to badhostkiki:  Invalid argument' ),
+                'error_type: can not open imap connection on host2 => ERR_CONNECTION_FAILURE_HOST2'
+        ) ;
+
+        is( 'ERR_APPEND_VIRUS',
+                error_type( 'could not append ( Subject:[For Your Consideration], Date:["29-Nov-2016 03:21:10 -0800"], Size:[5505], Flags:[\Seen] ) to folder INBOX: 275 NO Message refused because it contains a virus' ),
+                'error_type: could not append ... virus => ERR_APPEND_VIRUS'
+        ) ;
+
+        note( 'Leaving  tests_error_type()' ) ;
+        return ;
+}
+
+
+
+# Could be implemented with https://metacpan.org/pod/Tie::RegexpHash
+# with just a hash of error regexes as keys and types as values.
+
+sub error_type
+{
+        my $error = shift ;
+
+        if ( ! defined $error ) { return 'ERR_NOTHING_REPORTED' ; }
+        if ( ! $error ) { return 'ERR_NOTHING_REPORTED' ; }
+
+        #
+        if ( $error =~ m{Host1 failure: Error login on} ) { return 'ERR_AUTHENTICATION_FAILURE_USER1' } ;
+        if ( $error =~ m{Host2 failure: Error login on} ) { return 'ERR_AUTHENTICATION_FAILURE_USER2' } ;
+
+        if ( $error =~ m{Host. failure: Can not go to tls encryption on host.} ) { return 'ERR_EXIT_TLS_FAILURE' } ;
+        #
+
+        if ( $error =~ m{could not be fetched:} ) { return 'ERR_Host1_FETCH' } ;
+
+        # could not append .*BAD maximum message size exceeded
+        # could not append.*Maximum size of appendable message has been exceeded
+        if ( $error =~ m{could not append .*BAD maximum message size exceeded} )
+                { return 'ERR_APPEND_SIZE' ; } ;
+
+        if ( $error =~ m{could not append.*Maximum size of appendable message has been exceeded} )
+                { return 'ERR_APPEND_SIZE' ; } ;
+
+        # Could not create folder *[OVERQUOTA] Not enough disk quota
+        # could not append .*[OVERQUOTA] Not enough disk quota
+        # could not append .*[OVERQUOTA] Mailbox is full / Blocks limit exceeded / Inode limit exceeded
+        if ( $error =~ m{OVERQUOTA} ) { return 'ERR_OVERQUOTA' ; } ;
+        if ( $error =~ m{Quota limit will be exceeded} ) { return 'ERR_OVERQUOTA' ; } ;
+        if ( $error =~ m{full: it is time to find a bigger place} ) { return 'ERR_OVERQUOTA' ; } ;
+
+        # could not append ... to folder INBOX: 276 NO Message refused because it contains a virus
+        if ( $error =~ m{could not append.*virus} )
+                { return 'ERR_APPEND_VIRUS' ; } ;
+
+        # could not append .*Write failed 'Broken pipe'
+        # could not append .*timeout waiting .* for data from server
+        # could not append .*BAD Invalid Arguments: Unable to parse message
+        # could not append .*BAD Command Argument Error. 11
+        # could not append .*NO header limit reached
+        if ( $error =~ m{could not append} ) { return 'ERR_APPEND' ; } ;
+
+        # Could not create folder .*Invalid mailbox name
+        if ( $error =~ m{Could not create folder} ) { return 'ERR_CREATE' ; } ;
+
+
+        # Could not select:.*NO [NOPERM] Permission denied
+        # Could not select:.*NO Mailbox doesn't exist
+        # Could not select:.*NO [SERVERBUG] Internal error occurred.
+        # Could not select:.*[CANNOT] Mailbox isn't a valid mbox file
+        if ( $error =~ m{Could not select:} ) { return 'ERR_SELECT' ; } ;
+
+        #Maximum bytes transferred reached, 423 >= 100, ending sync
+        if ( $error =~ m{Maximum bytes transferred reached} ) { return 'ERR_TRANSFER_EXCEEDED' ; } ;
+
+        if ( $error =~ m{can not open imap connection on host1} ) { return 'ERR_CONNECTION_FAILURE_HOST1' ; } ;
+        if ( $error =~ m{can not open imap connection on host2} ) { return 'ERR_CONNECTION_FAILURE_HOST2' ; } ;
+
+        # Default is ERR_UNCLASSIFIED
+        return 'ERR_UNCLASSIFIED' ;
+
+}
+
+sub tests_errorclassify
+{
+        note( 'Entering tests_errorclassify()' ) ;
+
+        is( undef, errorclassify(  ),  'errorclassify: no args => undef' ) ;
+
+        is_deeply( { 'ERR_UNCLASSIFIED' => 1 }, errorclassify( 'aie' ), 'errorclassify: aie => { ERR_UNCLASSIFIED => 1 }' ) ;
+        is_deeply( { 'ERR_UNCLASSIFIED' => 2 }, errorclassify( 'aie', 'ouille' ), 'errorclassify: aie ouille => { ERR_UNCLASSIFIED => 2 }' ) ;
+        is_deeply( { 'ERR_UNCLASSIFIED' => 2, 'ERR_NOTHING_REPORTED' => 1 }, errorclassify( 'aie', 'ouille', '' ), 'errorclassify: aie ouille "" => { ERR_UNCLASSIFIED => 2 }' ) ;
+        is_deeply( { 'ERR_UNCLASSIFIED' => 3 }, errorclassify( 'aie', 'ouille', 'aie' ), 'errorclassify: aie ouille aie => { ERR_UNCLASSIFIED => 3 }' ) ;
+        is_deeply( { 'ERR_UNCLASSIFIED' => 1, 'ERR_OVERQUOTA' => 2 }, errorclassify( 'aie', 'OVERQUOTA pipi', 'OVERQUOTA caca' ), 'errorclassify: aie OVERQUOTA OVERQUOTA' ) ;
+        is_deeply( { 'ERR_NOTHING_REPORTED' => 1 }, errorclassify( '' ), 'errorclassify: "" => { ERR_NOTHING_REPORTED => 1 }' ) ;
+        is_deeply( { 'ERR_NOTHING_REPORTED' => 2 }, errorclassify( '', '' ), 'errorclassify: "", "" => { ERR_NOTHING_REPORTED => 1 }' ) ;
+
+        note( 'Leaving  tests_errorclassify()' ) ;
+        return ;
+}
+
+
+
+sub errorclassify
+{
+        my @errors = @ARG ;
+
+        if ( ! @errors ) { return ; } ;
+
+        my $error_type_count = { } ;
+        foreach my $error ( @errors )
+        {
+                my $error_type = error_type( $error ) ;
+                $error_type_count->{ $error_type }++ ;
+        }
+
+        return $error_type_count ;
+}
+
+sub tests_most_common_error
+{
+        note( 'Entering tests_most_common_error()' ) ;
+
+        is( 'ERR_NOTHING_REPORTED', most_common_error(  ),  'most_common_error: no args => ERR_NOTHING_REPORTED' ) ;
+        is( 'ERR_NOTHING_REPORTED', most_common_error( {} ),  'most_common_error: empty hash ref => ERR_NOTHING_REPORTED' ) ;
+        is( 'ERR_NOTHING_REPORTED', most_common_error( 'blabla' ),  'most_common_error: not a hash ref => ERR_NOTHING_REPORTED' ) ;
+
+        is( 'ERR_FOO', most_common_error( { ERR_FOO => 1 } ),  'most_common_error: { ERR_FOO => 1 } => ERR_FOO' ) ;
+        is( 'ERR_BAR', most_common_error( { ERR_FOO => 1, ERR_BAR => 2 } ),  'most_common_error: { ERR_FOO => 1, ERR_BAR => 2 } => ERR_BAR' ) ;
+        is( 'ERR_FOO', most_common_error( { ERR_FOO => 2, ERR_BAR => 1 } ),  'most_common_error: { ERR_FOO => 2, ERR_BAR => 1 } => ERR_FOO' ) ;
+        # exaequo => first lexical wins. ERR_BAR <= ERR_FOO
+        is( 'ERR_BAR', most_common_error( { ERR_FOO => 2, ERR_BAR => 2 } ),  'most_common_error: { ERR_FOO => 2, ERR_BAR => 2 } => ERR_BAR' ) ;
+
+        is( 'A', most_common_error( { A => 5, B => 5, C => 5 } ),  'most_common_error: { A => 5, B => 5, C => 5 } => A' ) ;
+        is( 'B', most_common_error( { A => 5, B => 6, C => 6 } ),  'most_common_error: { A => 5, B => 6, C => 6 } => B' ) ;
+        is( 'C', most_common_error( { A => 5, B => 5, C => 7 } ),  'most_common_error: { A => 5, B => 5, C => 7 } => C' ) ;
+        is( 'C', most_common_error( { A => 5, B => 6, C => 7 } ),  'most_common_error: { A => 5, B => 5, C => 7 } => C' ) ;
+
+        note( 'Leaving  tests_most_common_error()' ) ;
+        return ;
+}
+
+
+
+sub most_common_error
+{
+        my $errors_counted_ref = shift ;
+
+        if ( ! defined $errors_counted_ref ) { return 'ERR_NOTHING_REPORTED' ; }
+
+        if ( 'HASH' ne ref $errors_counted_ref ) { return 'ERR_NOTHING_REPORTED' ; }
+
+        # empty hash
+        if ( !%{ $errors_counted_ref } ) { return 'ERR_NOTHING_REPORTED' ; }
+
+        # non empty hash
+        my $most_common_error = ( sort
+        {
+                $errors_counted_ref->{$b} <=> $errors_counted_ref->{$a}
+                || $a cmp $b
+        } keys %{$errors_counted_ref} )[0] ;
+
+        return $most_common_error ;
+
+}
+
+
+
+sub tests_errorsanalyse
+{
+        note( 'Entering tests_errorsanalyse()' ) ;
+
+        is( 'ERR_NOTHING_REPORTED', errorsanalyse(  ),  'errorsanalyse: no args => ERR_NOTHING_REPORTED' ) ;
+        is( 'ERR_NOTHING_REPORTED', errorsanalyse( (  ) ),  'errorsanalyse: empty list => ERR_NOTHING_REPORTED' ) ;
+        is( 'ERR_UNCLASSIFIED', errorsanalyse( 'aie' ),  'errorsanalyse: aie => ERR_UNCLASSIFIED' ) ;
+
+        # in case of equality, empty wins
+        is( 'ERR_NOTHING_REPORTED', errorsanalyse( 'aie', '' ),  'errorsanalyse: aie => ERR_UNCLASSIFIED' ) ;
+        is( 'ERR_NOTHING_REPORTED', errorsanalyse( '', 'aie' ),  'errorsanalyse: aie => ERR_UNCLASSIFIED' ) ;
+
+
+        is( 'ERR_UNCLASSIFIED', errorsanalyse( 'aie', 'ouille' ),  'errorsanalyse: aie, ouille => ERR_UNCLASSIFIED' ) ;
+        is( 'ERR_UNCLASSIFIED', errorsanalyse( 'aie', 'ouille', '' ),  'errorsanalyse: aie, ouille, "" => ERR_UNCLASSIFIED' ) ;
+        is( 'ERR_UNCLASSIFIED', errorsanalyse( '', 'aie', 'ouille' ),  'errorsanalyse: aie, ouille, "" => ERR_UNCLASSIFIED' ) ;
+
+        is( 'ERR_NOTHING_REPORTED', errorsanalyse( '' ),  'errorsanalyse: "" => ERR_NOTHING_REPORTED' ) ;
+        is( 'ERR_NOTHING_REPORTED', errorsanalyse( ( '' ) ),  'errorsanalyse: ( "" ) => ERR_NOTHING_REPORTED' ) ;
+        is( 'ERR_NOTHING_REPORTED', errorsanalyse( ( '', '' ) ),  'errorsanalyse: ( "", "" ) => ERR_NOTHING_REPORTED' ) ;
+
+        note( 'Leaving  tests_errorsanalyse()' ) ;
+        return ;
+}
+
+
+
+sub errorsanalyse
+{
+        my @errors = @ARG ;
+        my $errors_types_counted = errorclassify( @errors ) ;
+
+        my $most_common_error = most_common_error( $errors_types_counted ) ;
+
+        return $most_common_error ;
+}
+
+
+
+sub tests_errorsdump
+{
+        note( 'Entering tests_errorsdump()' ) ;
+
+        is( undef, errorsdump(  ),  'errorsdump: no args => undef' ) ;
+        is( undef, errorsdump( (  ) ),  'errorsdump: empty list => undef' ) ;
+        is( "Err 1/1: ", errorsdump( '' ),  'errorsdump: one empty string => "Err 1/1: "' ) ;
+        is( "Err 1/1: aieaieaie", errorsdump( 'aieaieaie' ),  'errorsdump: aieaieaie => "Err 1/1: aieaieaie"' ) ;
+        is( "Err 1/2: Aie Err 2/2: Ouille", errorsdump( 'Aie ', 'Ouille' ),  'errorsdump: Aie Ouille => "Err 1/2: Aie Err 2/2: Ouille"' ) ;
+        note( 'Leaving  tests_errorsdump()' ) ;
+        return ;
+}
+
+
 sub errorsdump
 {
-        my( $nb_errors, @errors_log ) = @ARG ;
+        if ( ! @ARG ) { return ; }
+
+        my @errors_log = @ARG ;
+        my $nb_errors = @errors_log ;
         my $error_num = 0 ;
         my $errors_list = q{} ;
         if ( @errors_log ) {
-                $errors_list = "++++ Listing $nb_errors errors encountered during the sync ( avoid this listing with --noerrorsdump ).\n" ;
-                foreach my $error ( @errors_log ) {
+                foreach my $error ( @errors_log )
+                {
                         $error_num++ ;
                         $errors_list .= "Err $error_num/$nb_errors: $error" ;
                 }
@@ -5064,9 +6080,26 @@
 }
 
 
+
+sub errors_listing
+{
+        my $mysync = shift ;
+        $mysync->{most_common_error} = errorsanalyse( errors_log( $sync ) ) ;
+
+        my $errors_listing = join( '',
+        "++++ Listing $mysync->{nb_errors} errors encountered during the sync ( avoid this listing with --noerrorsdump ).\n",
+        errorsdump( errors_log( $mysync ) ),
+        "The most frequent error is $mysync->{most_common_error}\n",
+        ) ;
+        return $errors_listing ;
+}
+
+
+
+
 sub tests_live_result
 {
-	note( 'Entering tests_live_result()' ) ;
+        note( 'Entering tests_live_result()' ) ;
 
         my $nb_errors = shift ;
         if ( $nb_errors  ) {
@@ -5074,7 +6107,7 @@
         } else {
                 myprint( "Live tests ended successfully\n"  ) ;
         }
-	note( 'Leaving  tests_live_result()' ) ;
+        note( 'Leaving  tests_live_result()' ) ;
         return ;
 }
 
@@ -5140,7 +6173,7 @@
         ( $mysync->{ debug } or $debugflags ) and
         myprint( "Host1: flags init msg $h1_fold/$h1_msg flags( $h1_flags ) Host2 msg $h2_fold/$h2_msg flags( $h2_flags )\n"  ) ;
 
-        $h1_flags = flags_for_host2( $h1_flags, $permanentflags2 ) ;
+        $h1_flags = flags_for_host2( $mysync, $h1_flags, $permanentflags2 ) ;
 
         $h2_flags = flagscase( $h2_flags ) ;
 
@@ -5195,7 +6228,8 @@
         if ( $imap->IsUnconnected(  ) ) {
                 $mysync->{nb_errors}++ ;
                 my $lcomm = $imap->LastIMAPCommand || q{} ;
-                my $einfo = $imap->LastError || @{$imap->History}[$LAST] || q{} ;
+
+                my $einfo = imap_last_error( $imap ) ;
 
                 # if string is long try reduce to a more reasonable size
                 $lcomm = _filter( $mysync, $lcomm ) ;
@@ -5209,6 +6243,14 @@
         }
 }
 
+sub imap_last_error
+{
+        my $imap = shift ;
+        my $einfo = $imap->LastError || @{$imap->History}[$LAST] || q{} ;
+        chomp( $einfo ) ;
+        return( $einfo ) ;
+}
+
 sub tests_max
 {
 	note( 'Entering tests_max()' ) ;
@@ -5569,10 +6611,10 @@
 
 	my $mysync = shift ;
 
-	$mysync->{password1}
+	$mysync->{ password1 }
 	|| $mysync->{ passfile1 }
-	|| 'PREAUTH' eq $authmech1
-	|| 'EXTERNAL' eq $authmech1
+	|| 'PREAUTH'  eq $mysync->{ acc1 }->{ authmech }
+	|| 'EXTERNAL' eq $mysync->{ acc1 }->{ authmech }
 	|| $ENV{IMAPSYNC_PASSWORD1}
 	|| do
         {
@@ -5583,8 +6625,8 @@
 Then give this file restrictive permissions with the command "chmod 600 file1".
 An other solution is to set the environment variable IMAPSYNC_PASSWORD1
 FIN_PASSFILE
-                my $user = $authuser1 || $mysync->{user1} ;
-                my $host =  $mysync->{host1} ;
+                my $user = $mysync->{ acc1 }->{ authuser } || $mysync->{ user1 } ;
+                my $host = $mysync->{ host1 } ;
                 my $prompt = "What's the password for $user" . ' at ' . "$host? (not visible while you type, then enter RETURN) " ;
                 $mysync->{password1} = ask_for_password( $prompt ) ;
         } ;
@@ -5613,8 +6655,8 @@
 
 	$mysync->{password2}
 	|| $mysync->{ passfile2 }
-	|| 'PREAUTH' eq $authmech2
-	|| 'EXTERNAL' eq $authmech2
+	|| 'PREAUTH'  eq $mysync->{ acc2 }->{ authmech }
+	|| 'EXTERNAL' eq $mysync->{ acc2 }->{ authmech }
 	|| $ENV{IMAPSYNC_PASSWORD2}
 	|| do
         {
@@ -5625,8 +6667,8 @@
 Then give this file restrictive permissions with the command "chmod 600 file2".
 An other solution is to set the environment variable IMAPSYNC_PASSWORD2
 FIN_PASSFILE
-                my $user = $authuser2 || $mysync->{user2} ;
-                my $host =  $mysync->{host2} ;
+                my $user = $mysync->{ acc2 }->{ authuser } || $mysync->{ user2 } ;
+                my $host =  $mysync->{ host2 } ;
                 my $prompt = "What's the password for $user" . ' at ' . "$host? (not visible while you type, then enter RETURN) " ;
                 $mysync->{password2} = ask_for_password( $prompt ) ;
         } ;
@@ -5656,9 +6698,15 @@
 {
         my $mysync = shift or return ;
         $mysync->{pidfile} or return ;
+
         if ( -e $mysync->{pidfile} ) {
+                myprint( "Removing pidfile $mysync->{pidfile}\n" ) ;
                 unlink $mysync->{pidfile} ;
         }
+        if ( -e $mysync->{abortfile} ) {
+                myprint( "Removing pidfile $mysync->{abortfile}\n" ) ;
+                unlink $mysync->{abortfile} ;
+        }
         return ;
 }
 
@@ -5679,14 +6727,28 @@
         if ( $mysync->{log} ) {
                 myprint( "Log file is $mysync->{logfile} ( to change it, use --logfile filepath ; or use --nolog to turn off logging )\n" ) ;
         }
+        else
+        {
+                myprint( "No log file because of option --nolog\n" ) ;
+        }
+
         if ( $mysync->{log} and $mysync->{logfile_handle} ) {
-                #myprint( "Closing $mysync->{ logfile }\n" ) ;
-                close $mysync->{logfile_handle} ;
+                #print( "Closing $mysync->{ logfile }\n" ) ;
+                teefinish( $mysync ) ;
         }
         return ;
 }
 
 
+sub exit_most_errors
+{
+        my $mysync = shift @ARG ;
+
+        myprint( errors_listing( $mysync ) ) ;
+        my $exit_value = $EXIT_VALUE_OF_ERR_TYPE{ $mysync->{most_common_error} } || $EXIT_CATCH_ALL ;
+        exit_clean( $mysync, $exit_value ) ;
+        return ;
+}
 
 sub exit_clean
 {
@@ -5697,7 +6759,7 @@
         {
                 myprint( @messages ) ;
         }
-        myprint( "Exiting with return value $status ($EXIT_TXT{$status}) $mysync->{nb_errors}/$mysync->{errorsmax} nb_errors/max_errors\n" ) ;
+        myprint( "Exiting with return value $status ($EXIT_TXT{$status}) $mysync->{nb_errors}/$mysync->{errorsmax} nb_errors/max_errors PID $PROCESS_ID\n" ) ;
         cleanup_before_exit( $mysync ) ;
 
         exit $status ;
@@ -5721,11 +6783,12 @@
         my $sigcounter = ++$mysync->{ sigcounter }{ $signame } ;
         myprint( "\nGot a signal $signame (my PID is $PROCESS_ID my PPID is ", getppid(  ),
                  "). Received $sigcounter $signame signals so far. Thanks!\n" ) ;
-        stats( $mysync ) ;
+        do_and_print_stats( $mysync ) ;
         return ;
 }
 
 
+
 sub catch_exit
 {
         my $mysync = shift ;
@@ -5733,22 +6796,26 @@
         if ( $signame ) {
                 myprint( "\nGot a signal $signame (my PID is $PROCESS_ID my PPID is ", getppid(  ),
                          "). Asked to terminate\n" ) ;
-                if ( $mysync->{stats} ) {
-                        myprint( "Here are the final stats of this sync not completely finished so far\n" ) ;
-                        stats( $mysync ) ;
+                if ( $mysync->{can_do_stats} ) {
+                        do_and_print_stats( $mysync ) ;
                         myprint( "Ended by a signal $signame (my PID is $PROCESS_ID my PPID is ",
                         getppid(  ), "). I am asked to terminate immediately.\n" ) ;
-                        myprint( "You should resynchronize those accounts by running a sync again,\n",
-                        "since some messages and entire folders might still be missing on host2.\n" ) ;
                 }
+                myprint( "You should resynchronize those accounts by running a sync again,\n",
+                         "since some messages and entire folders might still be missing on host2.\n"
+                ) ;
                 ## no critic (RequireLocalizedPunctuationVars)
+                # Well, restore default action does not work well
                 $SIG{ $signame }  = 'DEFAULT'; # restore default action
+                #$SIG{ 'TERM' }    = 'DEFAULT'; # restore default action
                 # kill myself with $signame
                 # https://www.cons.org/cracauer/sigint.html
                 myprint( "Killing myself with signal $signame\n" ) ;
-                cleanup_before_exit( $mysync ) ;
+                #cleanup_before_exit( $mysync ) ;
                 kill( $signame, $PROCESS_ID ) ;
-                sleep 1 ;
+                #kill( 'TERM', $PROCESS_ID ) ;
+                #sleep 1 ;
+                #while ( 1 ) {  } ;
                 $mysync->{nb_errors}++ ;
                 exit_clean( $mysync, $EXIT_BY_SIGNAL,
                         "Still there after killing myself with signal $signame...\n"
@@ -5861,6 +6928,7 @@
                 # --sigignore can override sigexit, sigreconnect and sigprint (for the same signals only)
                 sig_install( $mysync, 'catch_ignore',    @{ $mysync->{ sigignore }  } ) ;
 
+                # remove/add sleeping mechanism when receiving USR1 signal (except on Win32)
                 sig_install_toggle_sleep( $mysync ) ;
         }
 
@@ -5955,10 +7023,6 @@
 }
 
 
-
-#        $sync->{id} = defined  $sync->{id}  ? $sync->{id} : 1 ;
-#        imap_id_stuff( $sync ) ;
-
 sub justconnect
 {
         my $mysync = shift ;
@@ -5974,10 +7038,11 @@
         {
                 myprint( "Host1: Will just connect to $mysync->{host1} without login\n" ) ;
                 $mysync->{imap1} = connect_imap(
-                        $mysync->{host1}, $mysync->{port1}, $debugimap1,
-                        $mysync->{ssl1}, $mysync->{tls1}, 'Host1',
-                        $mysync->{h1}->{timeout}, $mysync->{h1} ) ;
-                imap_id( $mysync, $mysync->{imap1}, 'Host1' ) ;
+                        $mysync->{host1}, $mysync->{port1},
+                        $mysync->{ssl1}, $mysync->{tls1},
+                        $mysync->{ acc1 } ) ;
+
+                imap_id( $mysync, $mysync->{imap1}, $mysync->{ acc1 }->{ Side } ) ;
                 $mysync->{imap1}->logout(  ) ;
                 return $mysync->{host1} ;
         }
@@ -5992,10 +7057,11 @@
         {
                 myprint( "Host2: Will just connect to $mysync->{host2} without login\n" ) ;
                 $mysync->{imap2} = connect_imap(
-                        $mysync->{host2}, $mysync->{port2}, $debugimap2,
-                        $mysync->{ssl2}, $mysync->{tls2}, 'Host2',
-                        $mysync->{h2}->{timeout}, $mysync->{h2} ) ;
-                imap_id( $mysync, $mysync->{imap2}, 'Host2' ) ;
+                        $mysync->{host2}, $mysync->{port2},
+                        $mysync->{ssl2}, $mysync->{tls2},
+                        $mysync->{ acc2 } ) ;
+
+                imap_id( $mysync, $mysync->{imap2}, $mysync->{ acc2 }->{ Side } ) ;
                 $mysync->{imap2}->logout(  ) ;
                 return $mysync->{host2} ;
         }
@@ -6006,9 +7072,18 @@
 sub skip_macosx
 {
         #return ;
-        return( 'macosx.polarhome.com' eq hostname() ) ;
+        # hostname used to be macosx.polarhome.com
+        return( 'macosx' eq hostname(  ) && ( 'darwin' eq $OSNAME ) ) ;
 }
 
+sub skip_macosx_binary
+{
+        #return ;
+        return( skip_macosx(  ) && ( $PROGRAM_NAME =~ m{imapsync_bin_Darwin} ) ) ;
+}
+
+
+
 sub tests_mailimapclient_connect
 {
         note( 'Entering tests_mailimapclient_connect()' ) ;
@@ -6026,7 +7101,7 @@
         is( 'test.lamiral.info', $imap->Server( 'test.lamiral.info' ), 'mailimapclient_connect ipv4: setting Server(test.lamiral.info)' ) ;
         is( 1, $imap->Debug( 1 ), 'mailimapclient_connect ipv4: setting Debug( 1 )' ) ;
         is( 143, $imap->Port( 143 ), 'mailimapclient_connect ipv4: setting Port( 143 )' ) ;
-        is( 3, $imap->Timeout( 3 ), 'mailimapclient_connect ipv4: setting Timout( 3 )' ) ;
+        is( 10, $imap->Timeout( 10 ), 'mailimapclient_connect ipv4: setting Timeout( 10 )' ) ;
         like( ref( $imap->connect(  ) ), qr/IO::Socket::INET|IO::Socket::IP/, 'mailimapclient_connect ipv4: connect to test.lamiral.info' ) ;
         like( $imap->logout( ), qr/Mail::IMAPClient/, 'mailimapclient_connect ipv4: logout' ) ;
         is( undef, undef $imap, 'mailimapclient_connect ipv4: free variable' ) ;
@@ -6042,11 +7117,10 @@
         is( undef, undef $imap, 'mailimapclient_connect ipv4 + ssl: free variable' ) ;
 
         # ipv6 + ssl
-        # Fails often on ks2ipv6.lamiral.info
-        
+
         ok( $imap = Mail::IMAPClient->new(  ), 'mailimapclient_connect ipv6 + ssl: new' ) ;
         is( 'petiteipv6.lamiral.info', $imap->Server( 'petiteipv6.lamiral.info' ), 'mailimapclient_connect ipv6 + ssl: setting Server petiteipv6.lamiral.info' ) ;
-        is( 3, $imap->Timeout( 3 ), 'mailimapclient_connect ipv4: setting Timout( 3 )' ) ;
+        is( 10, $imap->Timeout( 10 ), 'mailimapclient_connect ipv6: setting Timeout( 10 )' ) ;
         ok( $imap->Ssl( [ SSL_verify_mode => SSL_VERIFY_NONE, SSL_cipher_list => 'DEFAULT:!DH' ] ), 'mailimapclient_connect ipv6 + ssl: setting Ssl( SSL_VERIFY_NONE )' ) ;
         is( 993, $imap->Port( 993 ), 'mailimapclient_connect ipv6 + ssl: setting Port( 993 )' ) ;
         SKIP: {
@@ -6062,9 +7136,9 @@
         {
                 skip( 'Tests avoided on CUILLERE/pcHPDV7-HP/macosx.polarhome.com/docker cannot do ipv6', 4 ) ;
         }
-        
+
         is( 1, $imap->Debug( 1 ), 'mailimapclient_connect ipv4 + ssl: setting Debug( 1 )' ) ;
-        
+
         # It sounds stupid but it avoids failures on the next test about $imap->connect
         is( '2a01:e34:ecde:70d0:223:54ff:fec2:36d7', resolv( 'petiteipv6.lamiral.info' ), 'resolv: petiteipv6.lamiral.info => 2001:41d0:8:bebd::1' ) ;
 
@@ -6089,7 +7163,7 @@
 
         # ipv6
         ok( $imap = Mail::IMAPClient->new(  ), 'mailimapclient_connect_bug ipv6: new' ) ;
-        is( 'ks2ipv6.lamiral.info', $imap->Server( 'ks2ipv6.lamiral.info' ), 'mailimapclient_connect_bug ipv6: setting Server(ks2ipv6.lamiral.info)' ) ;
+        is( 'ks6ipv6.lamiral.info', $imap->Server( 'ks6ipv6.lamiral.info' ), 'mailimapclient_connect_bug ipv6: setting Server(ks6ipv6.lamiral.info)' ) ;
         is( 143, $imap->Port( 143 ), 'mailimapclient_connect_bug ipv6: setting Port( 993 )' ) ;
 
         SKIP: {
@@ -6105,7 +7179,7 @@
                 {
                         skip( 'Tests avoided on CUILLERE/pcHPDV7-HP/macosx.polarhome.com/docker cannot do ipv6', 1 ) ;
                 }
-                like( ref( $imap->connect(  ) ), qr/IO::Socket::INET/, 'mailimapclient_connect_bug ipv6: connect to ks2ipv6.lamiral.info' )
+                like( ref( $imap->connect(  ) ), qr/IO::Socket::INET/, 'mailimapclient_connect_bug ipv6: connect to ks6ipv6.lamiral.info' )
                 or diag( 'mailimapclient_connect_bug ipv6: ', $imap->LastError(  ), $!,  ) ;
         }
         #is( $imap->logout( ), undef, 'mailimapclient_connect_bug ipv6: logout in ssl causes failure' ) ;
@@ -6140,12 +7214,12 @@
                 }
 
                 $socket = IO::Socket::INET6->new(
-                        PeerAddr => 'ks2ipv6.lamiral.info',
+                        PeerAddr => 'ks6ipv6.lamiral.info',
                         PeerPort => 143,
                 ) ;
 
 
-                ok( $imap = connect_socket( $socket ), 'connect_socket: ks2ipv6.lamiral.info port 143 IO::Socket::INET6' ) ;
+                ok( $imap = connect_socket( $socket ), 'connect_socket: ks6ipv6.lamiral.info port 143 IO::Socket::INET6' ) ;
                 #$imap->Debug( 1 ) ;
                 # myprint( $imap->capability(  ) ) ;
                 if ( $imap ) {
@@ -6154,13 +7228,13 @@
 
                 $IO::Socket::SSL::DEBUG = 4 ;
                 $socket = IO::Socket::SSL->new(
-                        PeerHost => 'ks2ipv6.lamiral.info',
+                        PeerHost => 'ks6ipv6.lamiral.info',
                         PeerPort => 993,
                         SSL_verify_mode => SSL_VERIFY_NONE,
                         SSL_cipher_list => 'DEFAULT:!DH',
                 ) ;
                 # myprint( $socket ) ;
-                ok( $imap = connect_socket( $socket ), 'connect_socket: ks2ipv6.lamiral.info port 993 IO::Socket::SSL' ) ;
+                ok( $imap = connect_socket( $socket ), 'connect_socket: ks6ipv6.lamiral.info port 993 IO::Socket::SSL' ) ;
                 #$imap->Debug( 1 ) ;
                 # myprint( $imap->capability(  ) ) ;
                 # $socket->close(  ) ;
@@ -6216,10 +7290,10 @@
                         skip( 'Tests avoided on CUILLERE or pcHPDV7-HP or Mac or docker: cannot do ipv6', 0 ) ;
                 }
                 # fed up with this one
-                #like( probe_imapssl( 'ks2ipv6.lamiral.info' ), qr/^\* OK/, 'probe_imapssl: ks2ipv6.lamiral.info matches "* OK"' ) ;
+                #like( probe_imapssl( 'ks6ipv6.lamiral.info' ), qr/^\* OK/, 'probe_imapssl: ks6ipv6.lamiral.info matches "* OK"' ) ;
         } ;
 
-        
+
         # It sounds stupid but it avoids failures on the next test about $imap->connect
         ok( resolv( 'imap.gmail.com' ), 'resolv: imap.gmail.com => something' ) ;
         like( probe_imapssl( 'imap.gmail.com' ),       qr/^\* OK/, 'probe_imapssl: imap.gmail.com matches "* OK"' ) ;
@@ -6257,193 +7331,604 @@
 
 sub connect_imap
 {
-        my( $host, $port, $mydebugimap, $ssl, $tls, $Side, $mytimeout, $h ) = @_ ;
+        my( $host, $port, $ssl, $tls, $acc ) = @_ ;
         my $imap = Mail::IMAPClient->new(  ) ;
-        
-        if ( $ssl ) { set_ssl( $imap, $h ) }
+
+        if ( $ssl ) { set_ssl( $imap, $acc ) }
         $imap->Server( $host ) ;
         $imap->Port( $port ) ;
-        $imap->Debug( $mydebugimap ) ;
-        $imap->Timeout( $mytimeout ) ;
+        $imap->Debug( $acc->{ debugimap } ) ;
+        $imap->Timeout( $acc->{ timeout } ) ;
 
-        my $side = lc $Side ;
-        myprint( "$Side: connecting on $side [$host] port [$port]\n"  ) ;
+        my $side = lc $acc->{ Side } ;
+
+        myprint( "$acc->{ Side }: connecting on $side [$host] port [$port]\n"  ) ;
 
         if ( ! $imap->connect(  ) )
         {
                 $sync->{nb_errors}++ ;
                 exit_clean( $sync, $EXIT_CONNECTION_FAILURE,
-                        "$Side: Can not open imap connection on [$host]: ",
+                        "$acc->{ Side }: Can not open imap connection on [$host]: ",
                         $imap->LastError,
                         " $OS_ERROR\n"
                 ) ;
         }
-        myprint( "$Side IP address: ", $imap->Socket->peerhost(), "\n"  ) ;
+        myprint( "$acc->{ Side } IP address: ", $imap->Socket->peerhost(), "\n"  ) ;
 
         my $banner = $imap->Results()->[0] ;
 
-        myprint( "$Side banner: $banner"  ) ;
-        myprint( "$Side capability: ", join(q{ }, @{ $imap->capability() || [] }), "\n" ) ;
+        myprint( "$acc->{ Side } banner: $banner"  ) ;
+        myprint( "$acc->{ Side } capability: ", join(q{ }, @{ $imap->capability() || [] }), "\n" ) ;
 
         if ( $tls ) {
-                set_tls( $imap, $h ) ;
+                set_tls( $imap, $acc ) ;
                 if ( ! $imap->starttls(  ) )
                 {
                         $sync->{nb_errors}++ ;
                         exit_clean( $sync, $EXIT_TLS_FAILURE,
-                                "$Side: Can not go to tls encryption on $side [$host]:",
+                                "$acc->{ Side }: Can not go to tls encryption on $side [$host]:",
                                 $imap->LastError, "\n"
                         ) ;
                 }
-                myprint( "$Side: Socket successfuly converted to SSL\n"  ) ;
+                myprint( "$acc->{ Side }: Socket successfully converted to SSL\n"  ) ;
         }
         return( $imap ) ;
 }
 
 
+
+sub tests_login_imap
+{
+        note( 'Entering tests_login_imap()' ) ;
+
+        is( undef, login_imap(  ),  'login_imap: no args => undef' ) ;
+
+        SKIP: {
+        if ( skip_macosx_binary(  ) )
+        {
+                skip( 'Tests avoided only on binary on host polarhome macosx, no clue "ssl3_get_server_certificate:certificate verify failed"', 11 ) ;
+        }
+        else{
+        
+        my $myimap ;
+        my $acc = {} ;
+        $acc->{ Side }     =  'HostK' ;
+        $acc->{ authmech } = 'LOGIN' ;
+        #$IO::Socket::SSL::DEBUG = 4 ;
+        # Each month (trimester?):
+        # echo | openssl s_client -crlf -connect test1.lamiral.info:993
+        # ...
+        # certificate has expired
+        # Fix:
+        # ssh root@test1.lamiral.info 'apt update && apt upgrade && /etc/init.d/dovecot restart'
+        ok(
+                $myimap = login_imap( 'test1.lamiral.info', 993, 'test1', 'secret1',
+                1, undef,
+                1, 100, $acc, {},
+                ),  'login_imap: test1.lamiral.info test1 ssl' ) ;
+        ok( defined( $myimap ) && $myimap->IsAuthenticated( ), 'login_imap: test1.lamiral.info test1 ssl IsAuthenticated' ) ;
+
+        ok(
+                $myimap = login_imap( 'test1.lamiral.info', 143, 'test1', 'secret1',
+                0, undef,
+                1, 100, $acc, {},
+                ),  'login_imap: test1.lamiral.info test1 tls' ) ;
+        ok( $myimap && $myimap->IsAuthenticated( ), 'login_imap: test1.lamiral.info test1 tls IsAuthenticated' ) ;
+
+        #$IO::Socket::SSL::DEBUG = 4 ;
+        $acc->{sslargs} = { SSL_version => 'SSLv2' } ;
+        # SSLv2 not supported
+        is(
+                undef, $myimap = login_imap( 'test1.lamiral.info', 143, 'test1', 'secret1',
+                0, undef,
+                1, 100, $acc, {},
+                ),  'login_imap: test1.lamiral.info test1 tls SSLv2 not supported' ) ;
+#SSL_verify_mode => 1
+#SSL_version => 'TLSv1_1'
+
+
+
+        # I have left ? exit_clean to be replaced by errors_incr( $mysync, 'error message' )
+        # 1 in login_imap()
+
+
+        my $mysync = {} ;
+        $acc = {} ;
+        $acc->{ Side } =  'Host2' ;
+        $acc->{ authmech } = 'LOGIN' ;
+        is(
+                undef, login_imap( 'noresol.lamiral.info', 143, 'test1', 'secret1',
+                0, undef,
+                1, 100, $acc,  $mysync,
+                ),  'login_imap: noresol.lamiral.info undef' ) ;
+
+        is( 'ERR_CONNECTION_FAILURE_HOST2', errorsanalyse( errors_log( $mysync ) ), 'login_imap: Host2 noresol.lamiral.info => ERR_CONNECTION_FAILURE_HOST2' ) ;
+
+        # authentication failure for user2
+        $mysync = {} ;
+        is(
+                undef, login_imap( 'test1.lamiral.info', 143, 'test1', 'Ce crétin',
+                0, undef,
+                1, 100, $acc,  $mysync,
+                ),  'login_imap: user2 bad passord => undef' ) ;
+
+        is( 'ERR_AUTHENTICATION_FAILURE_USER2', errorsanalyse( errors_log( $mysync ) ), 'login_imap: Host2 bad password => ERR_AUTHENTICATION_FAILURE_USER2' ) ;
+
+        # authentication failure for user1
+        $mysync = {} ;
+        $acc = {} ;
+        $acc->{ Side } =  'Host1' ;
+        $acc->{ authmech } = 'LOGIN' ;
+        is(
+                undef, login_imap( 'test1.lamiral.info', 143, 'test1', 'Ce crétin',
+                0, undef,
+                1, 100, $acc,  $mysync,
+                ),  'login_imap: user1 bad passord => undef' ) ;
+
+        is( 'ERR_AUTHENTICATION_FAILURE_USER1', errorsanalyse( errors_log( $mysync ) ), 'login_imap: Host1 bad password => ERR_AUTHENTICATION_FAILURE_USER1' ) ;
+
+        }
+        }
+        
+        note( 'Leaving  tests_login_imap()' ) ;
+        return ;
+}
+
+sub oauthgenerateaccess
+{
+        if ( "petite" eq hostname() )
+        {
+                myprint( "oauthgenerateaccess\n" ) ;
+                my @output = backtick( 'cd oauth2 && pwd && ./generate_gmail_token imapsync.gl0@gmail.com' ) ;
+                myprint( @output ) ;
+        }
+        return ;
+}
+
+sub tests_login_imap_oauth
+{
+        note( 'Entering tests_login_imap_oauth()' ) ;
+        
+        oauthgenerateaccess() ;
+
+        SKIP: {
+        if ( skip_macosx_binary(  ) )
+        {
+                skip( 'Tests avoided only on binary on host polarhome macosx, no clue "ssl3_get_server_certificate:certificate verify failed"', 6 ) ;
+        }
+        else
+        {
+
+        my $mysync ;
+        my $acc ;
+        # oauthdirect authentication failure for user2
+        $mysync = {} ;
+        $acc  = {} ;
+        $acc->{ oauthdirect } = 'caca2' ;
+        $acc->{ debugimap } = 1 ;
+        $mysync->{ showpasswords } = 1 ;
+        $acc->{ Side } =  'Host2' ;
+        $acc->{ authmech } = 'QQQ' ;
+        is(
+                undef, login_imap( 'imap.gmail.com', 993, 'test1', 'Ce crétin',
+                1, undef,
+                1, 100, $acc,  $mysync,
+                ),  'login_imap: user2 bad oauthdirect => undef' ) ;
+
+        is( 'ERR_AUTHENTICATION_FAILURE_USER2', errorsanalyse( errors_log( $mysync ) ), 'login_imap: Host2 bad oauthdirect => ERR_AUTHENTICATION_FAILURE_USER2' ) ;
+
+        # oauthdirect authentication failure for user1
+        $mysync = {} ;
+        $acc  = {} ;
+        $acc->{ Side } =  'Host1' ;
+        $acc->{ oauthdirect } = 'caca1' ;
+        $acc->{ debugimap } = 1 ;
+        $mysync->{ showpasswords } = 1 ;
+        $acc->{ authmech } = 'QQQ' ;
+        is(
+                undef, login_imap( 'imap.gmail.com', 993, 'test1', 'Ce crétin',
+                1, undef,
+                1, 100, $acc,  $mysync,
+                ),  'login_imap: user1 bad oauthdirect => undef' ) ;
+
+        is( 'ERR_AUTHENTICATION_FAILURE_USER1', errorsanalyse( errors_log( $mysync ) ), 'login_imap: Host1 bad oauthdirect => ERR_AUTHENTICATION_FAILURE_USER1' ) ;
+
+        # oauthdirect authentication failure for user1
+        $mysync = {} ;
+        $acc  = {} ;
+        $acc->{ Side } =  'Host1' ;
+        $acc->{ oauthdirect } = '' ;
+        $acc->{ debugimap } = 1 ;
+        $mysync->{ showpasswords } = 1 ;
+        $acc->{ authmech } = 'QQQ' ;
+        is(
+                undef, login_imap( 'imap.gmail.com', 993, 'test1', 'Ce crétin',
+                1, undef,
+                1, 100, $acc,  $mysync,
+                ),  'login_imap: user1 bad oauthdirect => undef' ) ;
+
+        is( 'ERR_AUTHENTICATION_FAILURE_USER1', errorsanalyse( errors_log( $mysync ) ), 'login_imap: Host1 no oauthdirect value => ERR_AUTHENTICATION_FAILURE_USER1' ) ;
+
+        }
+        }
+
+        # oauthdirect authentication success for user1 
+        SKIP: {
+                if ( ! -r 'oauth2/D_oauth2_oauthdirect_imapsync.gl0@gmail.com.txt' ) 
+                {
+                        skip( 'oauthdirect: no oauthdirect file', 2  ) ;
+                }
+                my $myimap ;
+        my $mysync = {} ;
+        my $acc  = {} ;
+        $acc->{ Side } =  'Host1' ;
+        $acc->{ oauthdirect } = 'oauth2/D_oauth2_oauthdirect_imapsync.gl0@gmail.com.txt' ;
+        $acc->{ debugimap } = 1 ;
+        $mysync->{ showpasswords } = 1 ;
+        $acc->{ authmech } = 'QQQ' ;
+        isa_ok(
+                $myimap = login_imap( 'imap.gmail.com', 993, 'user_useless', 'password_useless',
+                1, undef,
+                1, 100, $acc,  $mysync,
+                ), 'Mail::IMAPClient', 'login_imap: user1 good oauthdirect => Mail::IMAPClient' ) ;
+
+        ok( defined( $myimap ) && $myimap->IsAuthenticated( ), 'login_imap: gmail oauth2 IsAuthenticated' ) ;
+        }
+        
+        # oauthaccesstoken authentication success for user1 
+        SKIP: {
+                if ( ! -r 'oauth2/D_oauth2_access_token_imapsync.gl0@gmail.com.txt' ) 
+                {
+                        skip( 'oauthaccesstoken: no access_token file', 2  ) ;
+                }
+                my $myimap ;
+        my $mysync = {} ;
+        my $acc  = {} ;
+        $acc->{ Side } =  'Host1' ;
+        $acc->{ oauthaccesstoken } = 'oauth2/D_oauth2_access_token_imapsync.gl0@gmail.com.txt' ;
+        $acc->{ debugimap } = 1 ;
+        $mysync->{ showpasswords } = 1 ;
+        $acc->{ authmech } = 'QQQ' ;
+        isa_ok(
+                $myimap = login_imap( 'imap.gmail.com', 993, 'imapsync.gl0@gmail.com', 'password_useless',
+                1, undef,
+                1, 100, $acc,  $mysync,
+                ), 'Mail::IMAPClient', 'login_imap: user1 good oauthaccesstoken => Mail::IMAPClient' ) ;
+
+        ok( defined( $myimap ) && $myimap->IsAuthenticated( ), 'login_imap: gmail oauth2 oauthaccesstoken IsAuthenticated' ) ;
+
+        }
+        
+        
+        note( 'Leaving  tests_login_imap_oauth()' ) ;
+        return ;
+}
+
+
+
 sub login_imap
 {
-
         my @allargs = @_ ;
         my(
-                $host, $port, $user, $domain, $password,
-                $mydebugimap, $mytimeout, $fastio,
-                $ssl, $tls, $authmech, $authuser, $reconnectretry,
-                $proxyauth, $uid, $split, $Side, $h, $mysync ) = @allargs ;
+                $host, $port, $user, $password,
+                $ssl, $tls,
+                $uid, $split, $acc, $mysync ) = @allargs ;
 
-        my $side = lc $Side ;
-        myprint( "$Side: connecting and login on $side [$host] port [$port] with user [$user]\n"  ) ;
+        if ( ! all_defined( $host, $port, $user, $acc->{ Side } ) )
+        {
+                return ;
+        }
+
+        my $side = lc $acc->{ Side } ;
+        myprint( "$acc->{ Side }: connecting and login on $side [$host] port [$port] with user [$user]\n"  ) ;
 
         my $imap = init_imap( @allargs ) ;
 
         if ( ! $imap->connect() )
         {
-                $mysync->{nb_errors}++ ;
-                exit_clean( $mysync, $EXIT_CONNECTION_FAILURE,
-                        "$Side failure: can not open imap connection on $side [$host] with user [$user]: ",
-                        $imap->LastError . " $OS_ERROR\n"
-                ) ;
+                my $error = "$acc->{ Side } failure: can not open imap connection on $side [$host] with user [$user]: "
+                            . $imap->LastError . " $OS_ERROR\n" ;
+                errors_incr( $mysync, $error ) ;
+                return ;
         }
-        myprint( "$Side IP address: ", $imap->Socket->peerhost(), "\n"  ) ;
+        myprint( "$acc->{ Side } IP address: ", $imap->Socket->peerhost(), "\n"  ) ;
         my $banner = $imap->Results()->[0] ;
 
-        myprint( "$Side banner: $banner"  ) ;
-	myprint( "$Side capability before authentication: ", join(q{ }, @{ $imap->capability() || [] }), "\n" ) ;
+        myprint( "$acc->{ Side } banner: $banner"  ) ;
+	myprint( "$acc->{ Side } capability before authentication: ", join(q{ }, @{ $imap->capability() || [] }), "\n" ) ;
 
 	if ( (! $ssl) and (! defined $tls ) and $imap->has_capability( 'STARTTLS' ) ) {
-		myprint( "$Side: going to ssl because STARTTLS is in CAPABILITY. Use --notls1 or --notls2 to avoid that behavior\n" ) ;
+		myprint( "$acc->{ Side }: going to ssl because STARTTLS is in CAPABILITY. Use --notls1 or --notls2 to avoid that behavior\n" ) ;
 		$tls = 1 ;
 	}
 
-        if ( $authmech eq 'PREAUTH' ) {
+
+        #myprint( Data::Dumper->Dump( [ @allargs ] )  ) ;
+        if ( $tls ) {
+                set_tls( $imap, $acc ) ;
+
+                if ( ! $imap->starttls(  ) )
+                {
+                        my $error = "$acc->{ Side } failure: Can not go to tls encryption on $side [$host]: "
+                            . $imap->LastError . "\n" ;
+
+                        errors_incr( $mysync, $error ) ;
+                        return ;
+                }
+                myprint( "$acc->{ Side }: Socket successfully converted to SSL\n"  ) ;
+        }
+
+        if ( $acc->{ authmech } eq 'PREAUTH' ) {
                 if ( $imap->IsAuthenticated( ) ) {
                         $imap->Socket ;
-                        myprintf("%s: Assuming PREAUTH for %s\n", $Side, $imap->Server ) ;
+                        myprintf("%s: Assuming PREAUTH for %s\n", $acc->{ Side }, $imap->Server ) ;
                 }else{
                         $mysync->{nb_errors}++ ;
                         exit_clean(
                                 $mysync, $EXIT_AUTHENTICATION_FAILURE,
-                                "$Side failure: error login on $side [$host] with user [$user] auth [PREAUTH]\n"
+                                "$acc->{ Side } failure: error login on $side [$host] with user [$user] auth [PREAUTH]\n"
                         ) ;
                 }
         }
 
-        if ( $tls ) {
-                set_tls( $imap, $h ) ;
-                if ( ! $imap->starttls(  ) )
-                {
-                        $mysync->{nb_errors}++ ;
-                        exit_clean( $mysync, $EXIT_TLS_FAILURE,
-                                "$Side failure: Can not go to tls encryption on $side [$host]:",
-                                $imap->LastError, "\n"
-                        ) ;
-                }
-                myprint( "$Side: Socket successfuly converted to SSL\n"  ) ;
+
+
+        if ( authenticate_imap( $imap, @allargs ) )
+        {
+                myprint( "$acc->{ Side }: success login on [$host] with user [$user] auth [$acc->{ authmech }] or [LOGIN]\n"  ) ;
+                return( $imap ) ;
         }
-
-        authenticate_imap( $imap, @allargs ) ;
-
-        myprint( "$Side: success login on [$host] with user [$user] auth [$authmech]\n"  ) ;
-        return( $imap ) ;
+        else
+        {
+                # The errors are already printed
+                myprint( "$acc->{ Side }: failed login on [$host] with user [$user] auth [$acc->{ authmech }]\n"  ) ;
+                return ;
+        }
 }
 
 
+
+sub init_imap
+{
+        my(
+           $host, $port, $user, $password,
+           $ssl, $tls,
+           $uid, $split, $acc, $mysync ) = @_ ;
+
+        my ( $imap ) ;
+
+        $imap = Mail::IMAPClient->new() ;
+
+        if ( $mysync->{ tee } )
+        {
+                # Well, it does not change anything, does it?
+                # It does when suppressing the hack with *STDERR
+                $imap->Debug_fh( $mysync->{ tee } ) ;
+        }
+
+        if ( $ssl ) { set_ssl( $imap, $acc ) }
+        if ( $tls ) {  } # can not do set_tls() here because connect() will directly do a STARTTLS
+        $imap->Clear( 1 ) ;
+        $imap->Server( $host ) ;
+        $imap->Port( $port ) ;
+        $imap->Fast_io( $acc->{ fastio } ) ;
+        $imap->Buffer( $buffersize || $DEFAULT_BUFFER_SIZE ) ;
+        $imap->Uid( $uid ) ;
+
+
+        $imap->Peek( 1 ) ;
+        $imap->Debug( $acc->{ debugimap } ) ;
+        if ( $mysync->{ showpasswords } ) {
+                $imap->Showcredentials( 1 ) ;
+        }
+
+        defined  $acc->{ timeout } and $imap->Timeout( $acc->{ timeout } ) ;
+
+        if ( defined $acc->{ reconnectretry } )
+        {
+                $imap->Reconnectretry( $acc->{ reconnectretry } ) ;
+        }
+        $imap->{IMAPSYNC_RECONNECT_COUNT} = 0 ;
+        $imap->Ignoresizeerrors( $allowsizemismatch ) ;
+        $split and $imap->Maxcommandlength( $SPLIT_FACTOR * $split ) ;
+
+
+        return( $imap ) ;
+
+}
+
 sub authenticate_imap
 {
         my( $imap,
-           $host, $port, $user, $domain, $password,
-           $mydebugimap, $mytimeout, $fastio,
-           $ssl, $tls, $authmech, $authuser, $reconnectretry,
-           $proxyauth, $uid, $split, $Side, $h, $mysync ) = @_ ;
+           $host, $port, $user, $password,
+           $ssl, $tls,
+           $uid, $split, $acc, $mysync ) = @_ ;
 
-        check_capability( $imap, $authmech, $Side ) ;
+        check_capability( $imap, $acc->{ authmech }, $acc->{ Side } ) ;
         $imap->User( $user ) ;
-        $imap->Domain( $domain ) if ( defined $domain ) ;
-        $imap->Authuser( $authuser ) ;
+
+        if ( defined $acc->{ domain } )
+        {
+                $imap->Domain( $acc->{ domain } ) ;
+                $mysync->{ debug } and myprint( "Domain: $acc->{ domain }\n" ) ;
+        }
+
+        $imap->Authuser( $acc->{ authuser } ) ;
         $imap->Password( $password ) ;
 
-        if ( 'X-MASTERAUTH' eq $authmech )
+        if ( 'X-MASTERAUTH' eq $acc->{ authmech } )
         {
                 xmasterauth( $imap ) ;
-                return ;
+                return 1 ;
         }
 
-        if ( $proxyauth ) {
+
+        if ( defined $acc->{ oauthdirect } )
+        {
+                $acc->{ authmech } = 'XOAUTH2 direct' ;
+                return( oauthdirect( $mysync, $acc, $imap, $host, $user ) ) ;
+        }
+        
+        
+        if ( defined $acc->{ oauthaccesstoken } )
+        {
+                $acc->{ authmech } = 'XOAUTH2 accesstoken' ;
+                return( oauthaccesstoken( $mysync, $acc, $imap, $host, $user ) ) ;
+        }
+        
+        
+
+
+        if ( $acc->{ proxyauth } ) {
                 $imap->Authmechanism(q{}) ;
-                $imap->User( $authuser ) ;
+                $imap->User( $acc->{ authuser } ) ;
         } else {
-                $imap->Authmechanism( $authmech ) unless ( $authmech eq 'LOGIN'  or $authmech eq 'PREAUTH' ) ;
+                $imap->Authmechanism( $acc->{ authmech } ) unless ( $acc->{ authmech } eq 'LOGIN'  or $acc->{ authmech } eq 'PREAUTH' ) ;
         }
 
-        $imap->Authcallback(\&xoauth)  if ( 'XOAUTH'  eq $authmech ) ;
-        $imap->Authcallback(\&xoauth2) if ( 'XOAUTH2' eq $authmech ) ;
-        $imap->Authcallback(\&plainauth) if ( ( 'PLAIN' eq $authmech ) or ( 'EXTERNAL' eq $authmech )  ) ;
+        $imap->Authcallback(\&xoauth2) if ( 'XOAUTH2' eq $acc->{ authmech } ) ;
+        $imap->Authcallback(\&plainauth) if ( ( 'PLAIN' eq $acc->{ authmech } ) or ( 'EXTERNAL' eq $acc->{ authmech } )  ) ;
 
 
-        unless ( $authmech eq 'PREAUTH' or $imap->login( ) ) {
-                my $info  = "$Side failure: Error login on [$host] with user [$user] auth" ;
-                my $einfo = $imap->LastError || @{$imap->History}[$LAST] ;
-                chomp $einfo ;
-                my $error = "$info [$authmech]: $einfo\n" ;
-                if ( ( $authmech eq 'LOGIN' ) or $imap->IsUnconnected(  ) or $authuser ) {
-                        $authuser ||= "" ;
-                        myprint( "$Side info: authmech [$authmech] user [$user] authuser [$authuser] IsUnconnected [", $imap->IsUnconnected(  ), "]\n" ) ;
-                        $mysync->{nb_errors}++ ;
-                        exit_clean( $mysync, $EXIT_AUTHENTICATION_FAILURE, $error ) ;
+        unless ( $acc->{ authmech } eq 'PREAUTH' or $imap->login( ) ) {
+                my $info  = "$acc->{ Side } failure: Error login on [$host] with user [$user] auth" ;
+                my $einfo = imap_last_error( $imap ) ;
+                my $error = "$info [$acc->{ authmech }]: $einfo\n" ;
+
+
+                if ( ( $acc->{ authmech } eq 'LOGIN' ) or $imap->IsUnconnected(  ) or $acc->{ authuser } ) {
+                        $acc->{ authuser } ||= "" ;
+                        myprint( "$acc->{ Side } info: authmech [$acc->{ authmech }] user [$user] authuser [$acc->{ authuser }] IsUnconnected [", $imap->IsUnconnected(  ), "]\n" ) ;
+                        errors_incr( $mysync, $error ) ;
+                        return ;
                 }else{
-                        myprint( $error ) ;
+                        errors_incr( $mysync, $error ) ;
                 }
+
                 # It is not secure to try plain text LOGIN when another authmech failed
-                # but I do it.
-                # I shell remove this code one day.
-                myprint( "$Side info: trying LOGIN Auth mechanism on [$host] with user [$user]\n"  ) ;
-                $imap->Authmechanism(q{}) ;
-                if ( ! $imap->login(  ) )
+                # but I do it anyway. This behavior is optional as option --notrylogin will skip it.
+                if ( $mysync->{ trylogin } )
                 {
-                        $mysync->{nb_errors}++ ;
-                        exit_clean( $mysync, $EXIT_AUTHENTICATION_FAILURE,
-                                "$info [LOGIN]: ",
-                                $imap->LastError, "\n"
-                        ) ;
+                        myprint( "$acc->{ Side } info: trying LOGIN Auth mechanism on [$host] with user [$user]. Use option --notrylogin to avoid this second chance to login via LOGIN auth\n"  ) ;
+                        $imap->Authmechanism(q{}) ;
+                        if ( ! $imap->login(  ) )
+                        {
+                                failure_login( $mysync, $acc, 'LOGIN', $imap, $host, $user ) ;
+                                return ;
+                        }
+                        else
+                        {
+                                myprint( "$acc->{ Side }: success login on [$host] with user [$user] auth [LOGIN] after [$acc->{ authmech }] failure\n"  ) ;
+                        }
+                }
+                else
+                {
+                        myprint( "$acc->{ Side } info: not trying LOGIN Auth mechanism on [$host] with user [$user]. Use option --trylogin to have this second chance to login via LOGIN auth\n"  ) ;
+                        return ;
                 }
         }
 
-        if ( $proxyauth ) {
+        if ( $acc->{ proxyauth } ) {
                 if ( ! $imap->proxyauth( $user ) ) {
-                        my $info  = "$Side failure: Error doing proxyauth as user [$user] on [$host] using proxy-login as [$authuser]" ;
-                        my $einfo = $imap->LastError || @{$imap->History}[$LAST] ;
-                        chomp $einfo ;
-                        $mysync->{nb_errors}++ ;
-                        exit_clean( $mysync,
-                                $EXIT_AUTHENTICATION_FAILURE,
-                                "$info: $einfo\n"
-                        ) ;
+                        failure_proxyauth( $mysync, $acc, $acc->{ authmech }, $imap, $host, $user ) ;
+                        return ;
                 }
         }
 
+        return 1;
+}
+
+
+sub failure_login
+{
+        my( $mysync, $acc, $authmech, $imap, $host, $user ) = @ARG ;
+        my $info  = "$acc->{ Side } failure: Error login on [$host] with user [$user] auth" ;
+        my $einfo = imap_last_error( $imap ) ;
+        my $error = "$info [$authmech]: $einfo\n" ;
+        errors_incr( $mysync, $error ) ;
         return ;
 }
 
+# failure_login and failure_proxyauth function are similar but
+# variable $error so no factoring
+sub failure_proxyauth
+{
+        my( $mysync, $acc, $authmech, $imap, $host, $user ) = @ARG ;
+        my $info  = "$acc->{ Side } failure: Error login on [$host] with user [$user] auth" ;
+        my $einfo = imap_last_error( $imap ) ;
+        my $error = "$info [$authmech] using proxy-login as [$acc->{ authuser }]: $einfo\n" ;
+        errors_incr( $mysync, $error ) ;
+        return ;
+}
+
+
+
+
+sub oauthdirect
+{
+        my( $mysync, $acc, $imap, $host, $user ) = @_ ;
+
+        my $oauthdirect_str ;
+        if ( -f -r $acc->{ oauthdirect } )
+        {
+                $oauthdirect_str = firstline( $acc->{ oauthdirect } ) ;
+        }
+        else
+        {
+                $oauthdirect_str = $acc->{ oauthdirect } || 'Please define oauthdirect value' ;
+        }
+        if ( $imap->authenticate('XOAUTH2', sub { return $oauthdirect_str } ) )
+        {
+                return 1 ;
+        }
+        else
+        {
+                failure_login( $mysync, $acc, $acc->{ authmech }, $imap, $host, $user ) ;
+                return ;
+        }
+        return ;
+}
+
+
+
+
+sub oauthaccesstoken
+{
+        my( $mysync, $acc, $imap, $host, $user ) = @_ ;
+
+        my $oauthaccesstoken_str ;
+        if ( -f -r $acc->{ oauthaccesstoken } )
+        {
+                $oauthaccesstoken_str = firstline( $acc->{ oauthaccesstoken } ) ;
+        }
+        else
+        {
+                $oauthaccesstoken_str = $acc->{ oauthaccesstoken } || 'Please define oauthaccesstoken value' ;
+        }
+        
+        my $oauth_string = "user=" . $user . "\x01auth=Bearer ".  $oauthaccesstoken_str . "\x01\x01" ;
+        #myprint "oauth_string: $oauth_string\n" ;
+
+        my $oauth_string_base64 = encode_base64( $oauth_string , '' ) ;
+        #myprint "oauth_string_base64: $oauth_string_base64\n" ;
+
+        my $oauthdirect_str = $oauth_string_base64 ;
+        
+        if ( $imap->authenticate('XOAUTH2', sub { return $oauthdirect_str } ) )
+        {
+                return 1 ;
+        }
+        else
+        {
+                failure_login( $mysync, $acc, $acc->{ authmech }, $imap, $host, $user ) ;
+                return ;
+        }
+        return ;
+}
+
+
+
+
 sub check_capability
 {
 
@@ -6479,12 +7964,12 @@
 
 sub set_ssl
 {
-        my ( $imap, $h ) = @_ ;
+        my ( $imap, $acc ) = @_ ;
         # SSL_version can be
         #    SSLv3 SSLv2 SSLv23 SSLv23:!SSLv2 (last one is the default in IO-Socket-SSL-1.953)
         #
 
-        my $sslargs_hash = $h->{sslargs} ;
+        my $sslargs_hash = $acc->{sslargs} ;
 
         my $sslargs_default = {
                 SSL_verify_mode => $SSL_VERIFY_POLICY,
@@ -6509,14 +7994,15 @@
 
 sub set_tls
 {
-        my ( $imap, $h ) = @_ ;
+        my ( $imap, $acc ) = @_ ;
 
-        my $sslargs_hash = $h->{sslargs} ;
+        my $sslargs_hash = $acc->{sslargs} ;
 
         my $sslargs_default = {
                 SSL_verify_mode => $SSL_VERIFY_POLICY,
-		SSL_cipher_list => 'DEFAULT:!DH',
+                SSL_cipher_list => 'DEFAULT:!DH',
         } ;
+        #myprint( Data::Dumper->Dump( [ $acc, $sslargs_hash, $sslargs_default ] )  ) ;
 
         # initiate with default values
         my %sslargs_mix = %{ $sslargs_default } ;
@@ -6535,53 +8021,6 @@
 
 
 
-
-sub init_imap 
-{
-        my(
-           $host, $port, $user, $domain, $password,
-           $mydebugimap, $mytimeout, $fastio,
-           $ssl, $tls, $authmech, $authuser, $reconnectretry,
-           $proxyauth, $uid, $split, $Side, $h, $mysync ) = @_ ;
-
-        my ( $imap ) ;
-
-        $imap = Mail::IMAPClient->new() ;
-        
-        if ( $mysync->{ tee } ) 
-        {
-                # Well, it does not change anything, does it?
-                # It does when suppressing the hack with *STDERR 
-                $imap->Debug_fh( $mysync->{ tee } ) ;
-        }
-        
-        if ( $ssl ) { set_ssl( $imap, $h ) }
-        if ( $tls ) {  } # can not do set_tls() here because connect() will directly do a STARTTLS
-        $imap->Clear(1);
-        $imap->Server($host);
-        $imap->Port($port);
-        $imap->Fast_io($fastio);
-        $imap->Buffer($buffersize || $DEFAULT_BUFFER_SIZE);
-        $imap->Uid($uid);
-
-
-        $imap->Peek(1);
-        $imap->Debug($mydebugimap);
-	if ( $mysync->{ showpasswords } ) {
-		$imap->Showcredentials( 1 ) ;
-	}
-        defined  $mytimeout  and $imap->Timeout( $mytimeout ) ;
-
-        $imap->Reconnectretry( $reconnectretry ) if ( $reconnectretry ) ;
-	$imap->{IMAPSYNC_RECONNECT_COUNT} = 0 ;
-        $imap->Ignoresizeerrors( $allowsizemismatch ) ;
-        $split and $imap->Maxcommandlength( $SPLIT_FACTOR * $split ) ;
-
-
-        return( $imap ) ;
-
-}
-
 sub plainauth
 {
         my $code = shift;
@@ -6714,80 +8153,6 @@
 
 
 
-# xoauth() thanks to Eduardo Bortoluzzi Junior
-sub xoauth
-{
-        require URI::Escape  ;
-        require Data::Uniqid ;
-
-        my $code = shift;
-        my $imap = shift;
-
-        # The base information needed to construct the OAUTH authentication
-        my $method = 'GET' ;
-        my $url = mysprintf( 'https://mail.google.com/mail/b/%s/imap/', $imap->User ) ;
-        my $urlparm = mysprintf( 'xoauth_requestor_id=%s', URI::Escape::uri_escape( $imap->User ) ) ;
-
-        # For Google Apps, the consumer key is the primary domain
-        # TODO: create a command line argument to define the consumer key
-        my @user_parts = split /@/x, $imap->User ;
-        $sync->{ debug } and myprint( "XOAUTH: consumer key: $user_parts[1]\n" ) ;
-
-        # All the parameters needed to be signed on the XOAUTH
-        my %hash = ();
-        $hash { 'xoauth_requestor_id' } = URI::Escape::uri_escape($imap->User);
-        $hash { 'oauth_consumer_key' } = $user_parts[1];
-        $hash { 'oauth_nonce' } = md5_hex(Data::Uniqid::uniqid(rand(), 1==1));
-        $hash { 'oauth_signature_method' } = 'HMAC-SHA1';
-        $hash { 'oauth_timestamp' } = time ;
-        $hash { 'oauth_version' } = '1.0';
-
-        # Base will hold the string to be signed
-        my $base = "$method&" . URI::Escape::uri_escape( $url ) . q{&} ;
-
-        # The parameters must be in dictionary order before signing
-        my $baseparms = q{} ;
-        foreach my $key ( sort keys %hash ) {
-                if ( length( $baseparms ) > 0 ) {
-                        $baseparms .= q{&} ;
-                }
-
-                $baseparms .= "$key=$hash{$key}" ;
-        }
-
-        $base .= URI::Escape::uri_escape($baseparms);
-        $sync->{ debug } and myprint( "XOAUTH: base request to sign: $base\n" ) ;
-        # Sign it with the consumer secret, informed on the command line (password)
-        my $digest = hmac_sha1( $base, URI::Escape::uri_escape( $imap->Password ) . q{&} ) ;
-
-        # The parameters signed become a parameter and...
-        $hash { 'oauth_signature' } = URI::Escape::uri_escape( substr encode_base64( $digest ), 0, $MINUS_ONE ) ;
-
-        # ... we don't need the requestor_id anymore.
-        delete $hash{'xoauth_requestor_id'} ;
-
-        # Create the final authentication string
-        my $string = $method . q{ } . $url . q{?} . $urlparm .q{ } ;
-
-        # All the parameters must be sorted
-        $baseparms = q{};
-        foreach my $key (sort keys %hash) {
-                if(length($baseparms)>0) {
-                        $baseparms .= q{,} ;
-                }
-
-                $baseparms .= "$key=\"$hash{$key}\"";
-        }
-
-        $string .= $baseparms;
-
-        $sync->{ debug } and myprint( "XOAUTH: authentication string: $string\n" ) ;
-
-       # It must be base64 encoded
-        return encode_base64("$string", q{});
-}
-
-
 sub xmasterauth
 {
         # This is Kerio auth admin
@@ -6839,29 +8204,6 @@
 }
 
 
-sub tests_do_valid_directory
-{
-	note( 'Entering tests_do_valid_directory()' ) ;
-
-        Readonly my $NB_UNIX_tests_do_valid_directory => 2 ;
-        SKIP: {
-                skip( 'Tests only for Unix', $NB_UNIX_tests_do_valid_directory ) if ( 'MSWin32' eq $OSNAME ) ;
-                ok( 1 == do_valid_directory( '.'), 'do_valid_directory: . good' ) ;
-                ok( 1 == do_valid_directory( './W/tmp/tests/valid/sub'), 'do_valid_directory: ./W/tmp/tests/valid/sub good' ) ;
-        }
-        Readonly my $NB_UNIX_tests_do_valid_directory_non_root => 2 ;
-        SKIP: {
-                skip( 'Tests only for Unix', $NB_UNIX_tests_do_valid_directory_non_root ) if ( 'MSWin32' eq $OSNAME or '0' eq $EFFECTIVE_USER_ID ) ;
-                diag( 'Error / not writable is on purpose' ) ;
-                ok( 0 == do_valid_directory( '/'), 'do_valid_directory: / bad' ) ;
-                diag( 'Error permission denied on /noway is on purpose' ) ;
-                ok( 0 == do_valid_directory( '/noway'), 'do_valid_directory: /noway bad' ) ;
-        }
-
-
-	note( 'Leaving  tests_do_valid_directory()' ) ;
-        return ;
-}
 
 sub banner_imapsync
 {
@@ -6870,8 +8212,8 @@
 
         my $banner_imapsync = join q{},
                 q{$RCSfile: imapsync,v $ },
-                q{$Revision: 1.977 $ },
-                q{$Date: 2019/12/23 20:18:02 $ },
+                q{$Revision: 2.148 $ },
+                q{$Date: 2021/07/22 14:21:09 $ },
                 "\n",
                 "Command line used, run by $EXECUTABLE_NAME:\n",
                 "$PROGRAM_NAME ", command_line_nopassword( $mysync, @argv ), "\n" ;
@@ -6879,6 +8221,29 @@
         return( $banner_imapsync ) ;
 }
 
+sub tests_do_valid_directory
+{
+        note( 'Entering tests_do_valid_directory()' ) ;
+
+        is( 1, do_valid_directory( '.'), 'do_valid_directory: . good' ) ;
+        is( 1, do_valid_directory( './W/tmp/tests/valid/sub'), 'do_valid_directory: ./W/tmp/tests/valid/sub good' ) ;
+
+        Readonly my $NB_UNIX_tests_do_valid_directory_non_root => 2 ;
+        diag( "OSNAME=$OSNAME EFFECTIVE_USER_ID=$EFFECTIVE_USER_ID" ) ;
+
+        SKIP: {
+                skip( 'Tests only for non roor user', $NB_UNIX_tests_do_valid_directory_non_root ) if ( '0' eq $EFFECTIVE_USER_ID ) ;
+                diag( 'The "Error / is not writable" is on purpose' ) ;
+                ok( 0 == do_valid_directory( '/'), 'do_valid_directory: / bad' ) ;
+                diag( 'The "Error permission denied" on /noway is on purpose' ) ;
+                ok( 0 == do_valid_directory( '/noway'), 'do_valid_directory: /noway bad' ) ;
+        }
+
+
+        note( 'Leaving  tests_do_valid_directory()' ) ;
+        return ;
+}
+
 sub do_valid_directory
 {
         my $dir = shift @ARG ;
@@ -6898,7 +8263,7 @@
                 return( 0 ) ;
         }
         # Trying to create it
-        myprint( "Creating directory $dir\n"  ) ;
+        myprint( "Creating directory $dir (current directory is " . getcwd(  ) . ")\n"  ) ;
         if ( ! eval { mkpath( $dir ) } ) {
                 myprint( "$EVAL_ERROR" ) if ( $EVAL_ERROR )  ;
         }
@@ -6924,11 +8289,14 @@
         is( 1, match_a_pid_number( 99999 ), 'match_a_pid_number: 99999 => 1' ) ;
         is( 1, match_a_pid_number( -99999 ), 'match_a_pid_number: -99999 => 1' ) ;
         is( undef, match_a_pid_number( 0 ), 'match_a_pid_number: 0 => undef' ) ;
-        is( undef, match_a_pid_number( 100000 ), 'match_a_pid_number: 100000 => undef' ) ;
-        is( undef, match_a_pid_number( 123456 ), 'match_a_pid_number: 123456 => undef' ) ;
+        is( 1, match_a_pid_number( 100000 ), 'match_a_pid_number: 100000 => 1' ) ;
+        is( 1, match_a_pid_number( 123456 ), 'match_a_pid_number: 123456 => 1' ) ;
         is( undef, match_a_pid_number( '-0' ), 'match_a_pid_number: "-0" => undef' ) ;
-        is( undef, match_a_pid_number( -100000 ), 'match_a_pid_number: -100000 => undef' ) ;
-        is( undef, match_a_pid_number( -123456 ), 'match_a_pid_number: -123456 => undef' ) ;
+        is( 1, match_a_pid_number( -100000 ), 'match_a_pid_number: -100000 => 1' ) ;
+        is( 1, match_a_pid_number( -123456 ), 'match_a_pid_number: -123456 => 1' ) ;
+        is( 1, match_a_pid_number( 2**22 ), 'match_a_pid_number: 2**22 => 1' ) ;
+        is( undef, match_a_pid_number( 2**22 + 1 ),  'match_a_pid_number: 2**22 + 1 => undef' ) ;
+        is( undef, match_a_pid_number( 4194304 + 1 ), 'match_a_pid_number: 2**22 + 1 = 4194305 => undef' ) ;
 
         note( 'Leaving  tests_match_a_pid_number()' ) ;
         return ;
@@ -6944,7 +8312,7 @@
         # can be negative on Windows
         #if ( 0 > $pid ) { return ; }
         #if ( 65535 < $pid ) { return ; }
-        if ( 99999 < abs( $pid ) ) { return ; }
+        if ( 2**22 < abs( $pid ) ) { return ; }
         if ( 0 == abs( $pid ) ) { return ; }
         return 1 ;
 }
@@ -6974,13 +8342,20 @@
 {
         #
         my $pid_filename = shift @ARG ;
-
+        
+        #myprint( "In remove_pidfile_not_running $pid_filename\n" ) ;
         if ( ! $pid_filename )    { myprint( "No variable pid_filename\n" ) ; return } ;
-        if ( ! -e $pid_filename ) { myprint( "File $pid_filename does not exist\n" ) ; return } ;
+        if ( ! -e $pid_filename )
+        { 
+                myprint( "File $pid_filename does not exist\n" ) ;
+                return ;
+        }
+        #myprint( "Still In remove_pidfile_not_running $pid_filename\n" ) ;
+        
         if ( ! -f $pid_filename ) { myprint( "File $pid_filename is not a file\n" ) ; return } ;
 
         my $pid = firstline( $pid_filename ) ;
-        if ( ! match_a_pid_number( $pid ) ) { myprint( "pid $pid in $pid_filename is not a number\n" ) ; return } ;
+        if ( ! match_a_pid_number( $pid ) ) { myprint( "In remove_pidfile_not_running: pid $pid in $pid_filename is not a pid number\n" ) ; return } ;
         # can't kill myself => do nothing
         if ( ! kill 'ZERO', $PROCESS_ID  ) { myprint( "Can not kill ZERO myself $PROCESS_ID\n" ) ; return } ;
 
@@ -7061,6 +8436,8 @@
         if ( ! $lock )    { return ; }
         if ( ! $tail )    { return ; }
 
+        if ( ! -e $pidfile ) { return ; }
+        
         my $pidtotail = firstline( $pidfile ) ;
         if ( ! $pidtotail ) { return ; }
 
@@ -7173,13 +8550,14 @@
 {
         # returns undef if something is considered fatal
         # returns 1 otherwise
-
+        
+        #myprint( "In write_pidfile\n" ) ;
         if ( ! @ARG ) { return 1 ; }
 
         my $mysync = shift @ARG ;
 
-        # Do not write the pid file if this process goal is to abort the process designed by the pid file
-        if ( $mysync->{abort} ) { return 1 ; }
+        # Do not write the pid file if the current process goal is to abort the process designed by the pid file
+        if ( $mysync->{ abort } ) { return 1 ; }
 
         #
         my $pid_filename = $mysync->{ pidfile } ;
@@ -7384,6 +8762,9 @@
 
         is( '[&ZTZO9nux-] = [收件箱]', jux_utf8( '&ZTZO9nux-'), 'jux_utf8: => [&ZTZO9nux-] = [收件箱]' ) ;
         #
+        #
+        is( '[!Old Emails]', jux_utf8( '!Old Emails'), 'jux_utf8: !Old Emails => [!Old Emails]' ) ;
+        is( '[2006 Budget & Fcst]', jux_utf8( '2006 Budget & Fcst'), 'jux_utf8: 2006 Budget & Fcst => [2006 Budget & Fcst]' ) ;
         note( 'Leaving  tests_jux_utf8()' ) ;
         return ;
 }
@@ -7530,6 +8911,7 @@
         if ( $create_folder_old ) {
                 return( create_folder_old( $mysync, $myimap2 , $h2_fold , $h1_fold ) ) ;
         }
+
         myprint( "Creating folder [$h2_fold] on host2\n"  ) ;
         if ( ( 'INBOX' eq uc  $h2_fold  )
          and ( $myimap2->exists( $h2_fold ) ) ) {
@@ -7577,6 +8959,7 @@
                 if ( ! $mysync->{ justfolders } ) {
                         myprint( "Since --dry mode is on and folder [$h2_fold] on host2 does not exist yet, syncing messages will not be simulated.\n"
                         . "To simulate message syncing, use --justfolders without --dry to first create the missing folders then rerun the --dry sync.\n" ) ;
+                        # The messages that could be transferred are counted and the number is given at the end.
                 }
                 return( 0 ) ;
         }
@@ -7639,7 +9022,7 @@
 {
         my @requested_folders_sorted = () ;
 
-        #myprint "folderfirst: @folderfirst\n" ;
+        $sync->{ debug } and myprint "folderfirst: @folderfirst\n" ;
         my @folderfirst_requested = remove_from_requested_folders( @folderfirst ) ;
         #myprint "folderfirst_requested: @folderfirst_requested\n" ;
 
@@ -7648,7 +9031,7 @@
         my @middle = sort keys %requested_folder ;
 
         @requested_folders_sorted = ( @folderfirst_requested, @middle, @folderlast_requested ) ;
-        #myprint "requested_folders_sorted: @requested_folders_sorted\n" ;
+        $sync->{ debug } and myprint "requested_folders_sorted: @requested_folders_sorted\n" ;
         add_to_requested_folders( @requested_folders_sorted ) ;
 
         return( @requested_folders_sorted ) ;
@@ -7707,7 +9090,7 @@
         is_deeply( [ 'F1', 'F2' ], [ remove_from_requested_folders( 'F1', 'F2' ) ], 'remove_from_requested_folders: remove F1 F2 among F1 F2 F3 => F1 F2' ) ;
         is_deeply( { 'F3' => 1 }, { %requested_folder }, 'remove_from_requested_folders: remove F1 F2 among F1 F2 F3 => %requested_folder F3' ) ;
 
-
+        undef %requested_folder ;
 
         note( 'Leaving  tests_remove_from_requested_folders()' ) ;
         return ;
@@ -7784,13 +9167,13 @@
         ok(+1 == compare_lists([1] , [])        , 'compare_lists, [1] > []');
 
 
-        ok( 0 == compare_lists([1],  1 )          , 'compare_lists, [1] =  1 ') ;
-        ok( 0 == compare_lists( 1 , [1])          , 'compare_lists,  1  = [1]') ;
+        ok( 0 == compare_lists( [1],  1 )          , 'compare_lists, [1] =  1 ') ;
+        ok( 0 == compare_lists( 1 , [1] )          , 'compare_lists,  1  = [1]') ;
         ok( 0 == compare_lists( 1 ,  1 )          , 'compare_lists,  1  =  1 ') ;
-        ok($MINUS_ONE == compare_lists( 0 ,  1 )          , 'compare_lists,  0  <  1 ') ;
-        ok($MINUS_ONE == compare_lists($MINUS_ONE ,  0 )          , 'compare_lists, -1  <  0 ') ;
-        ok($MINUS_ONE == compare_lists( 1 ,  2 )          , 'compare_lists,  1  <  2 ') ;
-        ok(+1 == compare_lists( 2 ,  1 )          , 'compare_lists,  2  >  1 ') ;
+        ok( $MINUS_ONE == compare_lists( 0 ,  1 )          , 'compare_lists,  0  <  1 ') ;
+        ok( $MINUS_ONE == compare_lists( $MINUS_ONE ,  0 )          , 'compare_lists, -1  <  0 ') ;
+        ok( $MINUS_ONE == compare_lists( 1 ,  2 )          , 'compare_lists,  1  <  2 ') ;
+        ok( +1 == compare_lists( 2 ,  1 )          , 'compare_lists,  2  >  1 ') ;
 
 
         ok( 0 == compare_lists([1,2], [1,2])   , 'compare_lists,  [1,2] = [1,2]' ) ;
@@ -8015,6 +9398,7 @@
         return( $listing ) ;
 }
 
+# Globals are $sync @h1_folders_all @h2_folders_all $prefix1 $prefix2
 sub private_folders_separators_and_prefixes
 {
 # what are the private folders separators and prefixes for each server ?
@@ -8121,8 +9505,32 @@
         }
 }
 
+sub tests_sanitize_host
+{
+        note( 'Entering tests_sanitize_host()' ) ;
+
+        is( undef, sanitize_host(  ),  'sanitize_host: no args => undef' ) ;
+        is( '', sanitize_host( '' ),  'sanitize_host: empty => empty' ) ;
+        is( 'imap.example.org', sanitize_host( 'imap.example.org' ),         'sanitize_host: imap.example.org => imap.example.org' ) ;
+        is( 'imap.example.org', sanitize_host( ' imap.example.org' ),        'sanitize_host: imap.example.org 1 => imap.example.org' ) ;
+        is( 'imap.example.org', sanitize_host( 'imap.example.org ' ),        'sanitize_host: imap.example.org 2 => imap.example.org' ) ;
+        is( 'imap.example.org', sanitize_host( 'imap.exam  ple.org' ),       'sanitize_host: imap.example.org 3 => imap.example.org' ) ;
+        is( 'imap.example.org', sanitize_host( '  imap.exam  ple.org   ' ),  'sanitize_host: imap.example.org 4 => imap.example.org' ) ;
+        is( 'imap.example.org', sanitize_host( 'imap.exa/mple.org/' ),        'sanitize_host: imap.example.org/  => imap.example.org' ) ;
+
+        note( 'Leaving  tests_sanitize_host()' ) ;
+        return ;
+}
 
 
+sub sanitize_host
+{
+        my $host = shift ;
+        if ( ! defined $host ) { return ; }
+
+        $host =~ tr{ /}{}d ;
+        return $host ;
+}
 
 
 sub tests_add_subfolder1_to_folderrec
@@ -8707,86 +10115,89 @@
 
 
 
-sub tests_flags_regex
+sub tests_regexflags
 {
-	note( 'Entering tests_flags_regex()' ) ;
+        note( 'Entering tests_regexflags()' ) ;
 
-        ok( q{} eq flags_regex(q{} ), 'flags_regex, null string q{}' ) ;
-        ok( q{\Seen NonJunk $Spam} eq flags_regex( q{\Seen NonJunk $Spam} ), q{flags_regex, nothing to do} ) ;
+        my $mysync = {} ; 
+        
+        ok( q{} eq regexflags( $mysync, q{} ), 'regexflags, null string q{}' ) ;
+        ok( q{\Seen NonJunk $Spam} eq regexflags( $mysync, q{\Seen NonJunk $Spam} ), q{regexflags, nothing to do} ) ;
 
-        @regexflag = ('I am BAD' ) ;
-        ok( not ( defined flags_regex( q{} ) ), 'flags_regex, bad regex' ) ;
+        @{ $mysync->{ regexflag } } = ('I am BAD' ) ;
+        ok( not ( defined regexflags( $mysync, q{} ) ), 'regexflags, bad regex' ) ;
 
-        @regexflag = ( 's/NonJunk//g' ) ;
-        ok( q{\Seen  $Spam} eq flags_regex( q{\Seen NonJunk $Spam} ), q{flags_regex, remove NonJunk: 's/NonJunk//g'} ) ;
-        @regexflag = ( q{s/\$Spam//g} ) ;
-        ok( q{\Seen NonJunk } eq flags_regex( q{\Seen NonJunk $Spam} ), q{flags_regex, remove $Spam: 's/\$Spam//g'} ) ;
+        @{ $mysync->{ regexflag } } = ( 's/NonJunk//g' ) ;
+        ok( q{\Seen  $Spam} eq regexflags( $mysync, q{\Seen NonJunk $Spam} ), q{regexflags, remove NonJunk: 's/NonJunk//g'} ) ;
+        @{ $mysync->{ regexflag } } = ( q{s/\$Spam//g} ) ;
+        ok( q{\Seen NonJunk } eq regexflags( $mysync, q{\Seen NonJunk $Spam} ), q{regexflags, remove $Spam: 's/\$Spam//g'} ) ;
 
-        @regexflag = ( 's/\\\\Seen//g' ) ;
+        @{ $mysync->{ regexflag } } = ( 's/\\\\Seen//g' ) ;
 
-        ok( q{ NonJunk $Spam} eq flags_regex( q{\Seen NonJunk $Spam} ), q{flags_regex, remove \Seen: 's/\\\\\\\\Seen//g'} ) ;
+        ok( q{ NonJunk $Spam} eq regexflags( $mysync, q{\Seen NonJunk $Spam} ), q{regexflags, remove \Seen: 's/\\\\\\\\Seen//g'} ) ;
 
-        @regexflag = ( 's/(\s|^)[^\\\\]\w+//g' ) ;
-        ok( q{\Seen \Middle \End}   eq flags_regex( q{\Seen NonJunk \Middle $Spam \End} ), q{flags_regex: only \word among \Seen NonJunk \Middle $Spam \End} ) ;
-        ok( q{ \Seen \Middle \End1} eq flags_regex( q{Begin \Seen NonJunk \Middle $Spam \End1 End} ),
-                     q{flags_regex: only \word among Begin \Seen NonJunk \Middle $Spam \End1 End} ) ;
+        @{ $mysync->{ regexflag } } = ( 's/(\s|^)[^\\\\]\w+//g' ) ;
+        ok( q{\Seen \Middle \End}   eq regexflags( $mysync, q{\Seen NonJunk \Middle $Spam \End} ), q{regexflags: only \word among \Seen NonJunk \Middle $Spam \End} ) ;
+        ok( q{ \Seen \Middle \End1} eq regexflags( $mysync, q{Begin \Seen NonJunk \Middle $Spam \End1 End} ),
+                     q{regexflags: only \word among Begin \Seen NonJunk \Middle $Spam \End1 End} ) ;
 
-        @regexflag = ( q{s/.*?(Keep1|Keep2|Keep3)/$1 /g} ) ;
-        ok( 'Keep1 Keep2  ReB' eq flags_regex('ReA Keep1 REM Keep2 ReB'), 'Keep only regex' ) ;
+        @{ $mysync->{ regexflag } } = ( q{s/.*?(Keep1|Keep2|Keep3)/$1 /g} ) ;
+        ok( 'Keep1 Keep2  ReB' eq regexflags( $mysync, 'ReA Keep1 REM Keep2 ReB' ), 'Keep only regex' ) ;
 
-        ok( 'Keep1 Keep2 ' eq flags_regex( 'REM REM Keep1 Keep2'), 'Keep only regex' ) ;
-        ok( 'Keep1 Keep2 ' eq flags_regex( 'Keep1 REM REM Keep2'), 'Keep only regex' ) ;
-        ok( 'Keep1 Keep2 ' eq flags_regex( 'REM Keep1 REM REM  Keep2'), 'Keep only regex' ) ;
-        ok( 'Keep1 Keep2 ' eq flags_regex( 'Keep1 Keep2'), 'Keep only regex' ) ;
-        ok( 'Keep1 ' eq flags_regex( 'REM Keep1'), 'Keep only regex' ) ;
+        ok( 'Keep1 Keep2 ' eq regexflags( $mysync, 'REM REM Keep1 Keep2' ), 'Keep only regex' ) ;
+        ok( 'Keep1 Keep2 ' eq regexflags( $mysync, 'Keep1 REM REM Keep2' ), 'Keep only regex' ) ;
+        ok( 'Keep1 Keep2 ' eq regexflags( $mysync, 'REM Keep1 REM REM  Keep2' ), 'Keep only regex' ) ;
+        ok( 'Keep1 Keep2 ' eq regexflags( $mysync, 'Keep1 Keep2' ), 'Keep only regex' ) ;
+        ok( 'Keep1 ' eq regexflags( $mysync, 'REM Keep1' ), 'Keep only regex' ) ;
 
-        @regexflag = ( q{s/(Keep1|Keep2|Keep3) (?!(Keep1|Keep2|Keep3)).*/$1 /g} ) ;
-        ok( 'Keep1 Keep2 ' eq flags_regex( 'Keep1 Keep2 ReB'), 'Keep only regex' ) ;
-        ok( 'Keep1 Keep2 ' eq flags_regex( 'Keep1 Keep2 REM REM  REM'), 'Keep only regex' ) ;
-        ok( 'Keep2 ' eq flags_regex('Keep2 REM REM  REM'), 'Keep only regex' ) ;
+        @{ $mysync->{ regexflag } } = ( q{s/(Keep1|Keep2|Keep3) (?!(Keep1|Keep2|Keep3)).*/$1 /g} ) ;
+        ok( 'Keep1 Keep2 ' eq regexflags( $mysync, 'Keep1 Keep2 ReB' ), 'Keep only regex' ) ;
+        ok( 'Keep1 Keep2 ' eq regexflags( $mysync, 'Keep1 Keep2 REM REM  REM' ), 'Keep only regex' ) ;
+        ok( 'Keep2 ' eq regexflags( $mysync, 'Keep2 REM REM  REM' ), 'Keep only regex' ) ;
 
 
-        @regexflag = ( q{s/.*?(Keep1|Keep2|Keep3)/$1 /g},
+        @{ $mysync->{ regexflag } } = ( q{s/.*?(Keep1|Keep2|Keep3)/$1 /g},
            's/(Keep1|Keep2|Keep3) (?!(Keep1|Keep2|Keep3)).*/$1 /g' ) ;
-        ok( 'Keep1 Keep2 ' eq flags_regex('REM Keep1 REM Keep2 REM'), 'Keep only regex' ) ;
-        ok( 'Keep1 Keep2 ' eq flags_regex('Keep1 REM Keep2 REM'), 'Keep only regex' ) ;
-        ok( 'Keep1 Keep2 ' eq flags_regex('REM Keep1 Keep2 REM'), 'Keep only regex' ) ;
-        ok( 'Keep1 Keep2 ' eq flags_regex('REM Keep1 REM Keep2'), 'Keep only regex' ) ;
-        ok( 'Keep1 Keep2 Keep3 ' eq flags_regex('REM Keep1 REM Keep2 REM REM Keep3 REM'), 'Keep only regex' ) ;
-        ok( 'Keep1 ' eq flags_regex('REM  REM Keep1 REM REM REM '), 'Keep only regex' ) ;
-        ok( 'Keep1 Keep3 ' eq flags_regex('RE1 Keep1 RE2 Keep3 RE3 RE4 RE5 '), 'Keep only regex' ) ;
+        ok( 'Keep1 Keep2 ' eq regexflags( $mysync, 'REM Keep1 REM Keep2 REM' ), 'Keep only regex' ) ;
+        ok( 'Keep1 Keep2 ' eq regexflags( $mysync, 'Keep1 REM Keep2 REM' ), 'Keep only regex' ) ;
+        ok( 'Keep1 Keep2 ' eq regexflags( $mysync, 'REM Keep1 Keep2 REM' ), 'Keep only regex' ) ;
+        ok( 'Keep1 Keep2 ' eq regexflags( $mysync, 'REM Keep1 REM Keep2' ), 'Keep only regex' ) ;
+        ok( 'Keep1 Keep2 Keep3 ' eq regexflags( $mysync, 'REM Keep1 REM Keep2 REM REM Keep3 REM' ), 'Keep only regex' ) ;
+        ok( 'Keep1 ' eq regexflags( $mysync, 'REM  REM Keep1 REM REM REM ' ), 'Keep only regex' ) ;
+        ok( 'Keep1 Keep3 ' eq regexflags( $mysync, 'RE1 Keep1 RE2 Keep3 RE3 RE4 RE5 ' ), 'Keep only regex' ) ;
 
-        @regexflag = ( 's/(.*)/$1 jrdH8u/' ) ;
-        ok('REM  REM  REM REM REM jrdH8u' eq flags_regex('REM  REM  REM REM REM'), q{Add jrdH8u 's/(.*)/\$1 jrdH8u/'} ) ;
-        @regexflag = ('s/jrdH8u *//');
-        ok('REM  REM  REM REM REM ' eq flags_regex('REM  REM  REM REM REM jrdH8u'), q{Remove jrdH8u s/jrdH8u *//} ) ;
+        @{ $mysync->{ regexflag } } = ( 's/(.*)/$1 jrdH8u/' ) ;
+        ok('REM  REM  REM REM REM jrdH8u' eq regexflags( $mysync, 'REM  REM  REM REM REM' ), q{Add jrdH8u 's/(.*)/\$1 jrdH8u/'} ) ;
+        @{ $mysync->{ regexflag } } = ('s/jrdH8u *//' );
+        ok('REM  REM  REM REM REM ' eq regexflags( $mysync, 'REM  REM  REM REM REM jrdH8u' ), q{Remove jrdH8u s/jrdH8u *//} ) ;
 
-        @regexflag = (
+        @{ $mysync->{ regexflag } } = (
         's/.*?(?:(\\\\(?:Answered|Flagged|Deleted|Seen|Draft)\s?)|$)/defined($1)?$1:q()/eg'
         );
 
         ok( '\\Deleted \\Answered '
-        eq flags_regex('Blabla \$Junk \\Deleted machin \\Answered truc'),
+        eq regexflags( $mysync, 'Blabla \$Junk \\Deleted machin \\Answered truc' ),
         'Keep only regex: Exchange case (Phil)' ) ;
 
-        ok( q{} eq flags_regex( q{} ), 'Keep only regex: Exchange case, null string (Phil)' ) ;
+        ok( q{} eq regexflags( $mysync, q{} ), 'Keep only regex: Exchange case, null string (Phil)' ) ;
 
         ok( q{}
-        eq flags_regex('Blabla $Junk  machin  truc'),
+        eq regexflags( $mysync, 'Blabla $Junk  machin  truc' ),
         'Keep only regex: Exchange case, no accepted flags (Phil)' ) ;
 
         ok('\\Deleted \\Answered \\Draft \\Flagged '
-        eq flags_regex('\\Deleted    \\Answered  \\Draft \\Flagged '),
+        eq regexflags( $mysync, '\\Deleted    \\Answered  \\Draft \\Flagged ' ),
         'Keep only regex: Exchange case (Phil)' ) ;
 
-        @regexflag = ( 's/\\\\Flagged//g' ) ;
+        @{ $mysync->{ regexflag } } = ( 's/\\\\Flagged//g' ) ;
 
         is('\Deleted \Answered \Draft  ',
-        flags_regex('\\Deleted \\Answered \\Draft \\Flagged '),
-        'flags_regex: remove \Flagged 1' ) ;
+        regexflags( $mysync, '\\Deleted \\Answered \\Draft \\Flagged ' ),
+        'regexflags: remove \Flagged 1' ) ;
+
         is('\\Deleted  \\Answered \\Draft',
-        flags_regex('\\Deleted \\Flagged \\Answered \\Draft'),
-        'flags_regex: remove \Flagged 2' ) ;
+        regexflags( $mysync, '\\Deleted \\Flagged \\Answered \\Draft' ),
+        'regexflags: remove \Flagged 2' ) ;
 
         # I didn't understand why it gives \F
         # https://perldoc.perl.org/perlrebackslash.html
@@ -8795,49 +10206,136 @@
 
         # \F Not available in old Perl so I comment the test
 
-        # @regexflag = ( 's/\\Flagged/X/g' ) ;
+        # @{ $mysync->{ regexflag } } = ( 's/\\Flagged/X/g' ) ;
         #is('\Deleted FX \Answered \FX \Draft \FX',
-        #flags_regex( '\Deleted Flagged \Answered \Flagged \Draft \Flagged' ),
-        # 'flags_regex: remove \Flagged 3 mistery...' ) ;
+        #regexflags( '\Deleted Flagged \Answered \Flagged \Draft \Flagged' ),
+        # 'regexflags: remove \Flagged 3 mistery...' ) ;
 
-	note( 'Leaving  tests_flags_regex()' ) ;
+        $mysync->{ regexflag } = [  ] ;
+        $mysync->{ filterbuggyflags } = 1 ;
+        filterbuggyflags( $mysync ) ;
+        
+        is( '\Deleted \Answered  \Draft  \Flagged',
+        regexflags( $mysync, '\\Deleted \\Answered \\RECEIPTCHECKED \\Draft \\Indexed \\Flagged' ),
+        'regexflags: remove famous /X 1' ) ;
+
+        is( '\\Deleted  \\Flagged \\Answered  \\Draft',
+        regexflags( $mysync, '\\Deleted \\RECEIPTCHECKED \\Flagged \\Answered \\Indexed \\Draft' ),
+        'regexflags: remove famous /X 2' ) ; 
+
+        is( '\ ', '\\ ',  'regexflags: \ is \\ ' ) ;
+        is( '\\ ', '\\ ', 'regexflags: \\ is \\ ' ) ;
+        is( '\\ \ ', '\ \\ ', 'regexflags: \\ \ is \ \\ ' ) ;
+        note( 'Leaving  tests_regexflags()' ) ;
         return ;
 }
 
-sub flags_regex
+sub regexflags
 {
-        my ( $h1_flags ) = @_ ;
-        foreach my $regexflag ( @regexflag ) {
-                my $h1_flags_orig = $h1_flags ;
-                $debugflags and myprint( "eval \$h1_flags =~ $regexflag\n"  ) ;
-                my $ret = eval "\$h1_flags =~ $regexflag ; 1 " ;
-                $debugflags and myprint( "regexflag $regexflag [$h1_flags_orig] -> [$h1_flags]\n"  ) ;
+        my $mysync = shift ;
+        my $flags = shift ;
+        
+        foreach my $regexflag ( @{ $mysync->{ regexflag } } )
+        {
+                my $flags_orig = $flags ;
+                $debugflags and myprint( "eval \$flags =~ $regexflag\n"  ) ;
+                my $ret = eval "\$flags =~ $regexflag ; 1 " ;
+                $debugflags and myprint( "regexflag $regexflag [$flags_orig] -> [$flags]\n"  ) ;
                 if( not ( defined $ret ) or $EVAL_ERROR ) {
                         myprint( "Error: eval regexflag '$regexflag': $EVAL_ERROR\n"  ) ;
                         return( undef ) ;
                 }
         }
-        return( $h1_flags ) ;
+        return( $flags ) ;
 }
 
+
+sub filterbuggyflags
+{
+        my $mysync = shift ;
+        if ( $mysync->{ filterbuggyflags } )
+        {
+                unshift @{ $mysync->{ regexflag } }, buggyflagsregex(  ) ;
+        }
+        return ;
+}
+
+
+sub tests_remove_doublequotes_if_any
+{
+        note( 'Entering tests_remove_doublequotes_if_any()' ) ;
+        # the number of tests is stupid here
+        is( undef, remove_doublequotes_if_any(  ),  'remove_doublequotes_if_any: no args => undef' ) ;
+        is( q{}, remove_doublequotes_if_any( q{} ),  'remove_doublequotes_if_any: empty string => empty string' ) ;
+        is( q{}, remove_doublequotes_if_any( q{""} ),  'remove_doublequotes_if_any: double-quotes => empty string' ) ;
+        is( q{}, remove_doublequotes_if_any( q{"""} ),  'remove_doublequotes_if_any: double-quotes => empty string' ) ;
+        is( q{}, remove_doublequotes_if_any( q{"""} ),  'remove_doublequotes_if_any: double-quotes => empty string' ) ;
+        is( q{toto}, remove_doublequotes_if_any( q{"toto"} ),   'remove_doublequotes_if_any: "toto"   => toto' ) ;
+        is( q{toto}, remove_doublequotes_if_any( q{toto} ),     'remove_doublequotes_if_any: toto     => toto' ) ;
+        is( q{toto}, remove_doublequotes_if_any( q{to"to} ),    'remove_doublequotes_if_any: to"to    => toto' ) ;
+        is( q{toto}, remove_doublequotes_if_any( q{toto"} ),    'remove_doublequotes_if_any: toto"    => toto' ) ;
+        is( q{toto}, remove_doublequotes_if_any( q{"toto} ),    'remove_doublequotes_if_any: "toto    => toto' ) ;
+        is( q{toto}, remove_doublequotes_if_any( q{"to"to} ),   'remove_doublequotes_if_any: "to"to   => toto' ) ;
+        is( q{toto}, remove_doublequotes_if_any( q{to"to"} ),   'remove_doublequotes_if_any: to"to"   => toto' ) ;
+
+        is( q{toto}, remove_doublequotes_if_any( q{to\"to} ),   'remove_doublequotes_if_any: to\"to   => toto' ) ;
+        is( q{toto}, remove_doublequotes_if_any( q{toto\"} ),   'remove_doublequotes_if_any: toto\"   => toto' ) ;
+        is( q{toto}, remove_doublequotes_if_any( q{\"toto} ),   'remove_doublequotes_if_any: \"toto   => toto' ) ;
+        is( q{toto}, remove_doublequotes_if_any( q{\"to\"to} ), 'remove_doublequotes_if_any: \"to\"to => toto' ) ;
+        is( q{toto}, remove_doublequotes_if_any( q{to\"to\"} ), 'remove_doublequotes_if_any: to\"to"  => toto' ) ;
+
+
+        note( 'Leaving  tests_remove_doublequotes_if_any()' ) ;
+        return ;
+}
+
+
+
+sub remove_doublequotes_if_any
+{
+        my $string = shift ;
+
+        if ( ! defined $string ) { return ; }
+        $string =~ s/\\\"//g ;
+        $string =~ tr/"//d ;
+        return $string ;
+}
+
+
+# No globals here
 sub acls_sync
 {
-        my($h1_fold, $h2_fold) = @_ ;
-        if ( $syncacls ) {
-                my $h1_hash = $sync->{imap1}->getacl($h1_fold)
-                  or myprint( "Could not getacl for $h1_fold: $EVAL_ERROR\n" ) ;
-                my $h2_hash = $sync->{imap2}->getacl($h2_fold)
-                  or myprint( "Could not getacl for $h2_fold: $EVAL_ERROR\n" ) ;
+# https://tools.ietf.org/html/rfc4314
+# Standard Rights:
+# https://tools.ietf.org/html/rfc4314#section-2.1
+
+        my( $mysync, $h1_fold, $h2_fold ) = @_ ;
+        if ( $mysync->{ syncacls } ) {
+                my $h1_hash = $mysync->{imap1}->getacl($h1_fold)
+                  or myprint( "Host1: Could not getacl for $h1_fold: $EVAL_ERROR\n" ) ;
+                my $h2_hash = $mysync->{imap2}->getacl($h2_fold)
+                  or myprint( "Host2: Could not getacl for $h2_fold: $EVAL_ERROR\n" ) ;
+
                 my %users = map { ($_, 1) } ( keys  %{ $h1_hash} , keys %{ $h2_hash }  ) ;
                 foreach my $user (sort keys %users ) {
-                        my $acl = $h1_hash->{$user} || 'none' ;
-                        myprint( "acl $user: [$acl]\n" ) ;
-                        next if ($h1_hash->{$user} && $h2_hash->{$user} &&
-                                 $h1_hash->{$user} eq $h2_hash->{$user});
-                        unless ($sync->{dry}) {
-                                myprint( "setting acl $h2_fold $user $acl\n" ) ;
-                                $sync->{imap2}->setacl($h2_fold, $user, $acl)
-                                  or myprint( "Could not set acl: $EVAL_ERROR\n" ) ;
+                        my $h1_acl = remove_doublequotes_if_any( $h1_hash->{$user} ) || '' ;
+                        my $h2_acl = remove_doublequotes_if_any( $h2_hash->{$user} ) || '' ;
+                        myprint( "Host1: user $user has acl [$h1_acl] on host1\n" ) ;
+                        myprint( "Host2: user $user has acl [$h2_acl] on host2\n" ) ;
+                        # removes surrounding double-quotes if any
+                        my $user_no_quotes = remove_doublequotes_if_any( $user ) ;
+
+                        if (       $h1_hash->{$user}
+                                && $h2_hash->{$user}
+                                && $h1_hash->{$user} eq $h2_hash->{$user} )
+                        {
+                                myprint( "Host2: user $user_no_quotes has already the same acl, no need to set it.\n" ) ;
+                                next ;
+                        }
+                        myprint( "Host2: setting acl for folder $h2_fold user $user_no_quotes acl $h1_acl $mysync->{dry_message}\n" ) ;
+                        unless ( $mysync->{dry} ) {
+                                $mysync->{imap2}->setacl( $h2_fold, $user_no_quotes, $h1_acl )
+                                  or myprint( "Could not set acl for user $user_no_quotes on host2: $EVAL_ERROR\n" ) ;
                         }
                 }
         }
@@ -8874,10 +10372,11 @@
                 if ( $line =~ m{\[PERMANENTFLAGS\s\(([^)]+?)\)\]}x ) {
                         ( $debugflags or $sync->{ debug } ) and myprint( "permanentflags: $line"  ) ;
                         my $permanentflags = $1 ;
-                        if ( $permanentflags =~ m{\\\*}x ) {
+                        if ( $permanentflags =~ m{\\\*}x )
+                        {
                                 $permanentflags = q{} ;
                         }
-                        return($permanentflags) ;
+                        return( $permanentflags ) ;
                 } ;
         }
         return( q{} ) ;
@@ -8913,19 +10412,6 @@
         return( $flags_out ) ;
 }
 
-sub flagscase
-{
-        my $flags = shift ;
-
-        my @flags = split /\s+/x, $flags ;
-        my %rfc_flags = map { $_ => 1 } split q{ }, '\Answered \Flagged \Deleted \Seen \Draft' ;
-        my @flags_out = map { exists $rfc_flags{ ucsecond( lc $_ ) } ? ucsecond( lc $_ ) : $_ } @flags ;
-
-        my $flags_out = join q{ }, @flags_out ;
-
-        return( $flags_out ) ;
-}
-
 sub tests_flagscase
 {
 	note( 'Entering tests_flagscase()' ) ;
@@ -8943,6 +10429,93 @@
         return ;
 }
 
+sub flagscase
+{
+        my $flags = shift ;
+
+        my @flags = split /\s+/x, $flags ;
+        my %rfc_flags = map { $_ => 1 } split q{ }, '\Answered \Flagged \Deleted \Seen \Draft' ;
+        my @flags_out = map { exists $rfc_flags{ ucsecond( lc $_ ) } ? ucsecond( lc $_ ) : $_ } @flags ;
+
+        my $flags_out = join q{ }, @flags_out ;
+
+        return( $flags_out ) ;
+}
+
+
+
+sub tests_flags_for_host2
+{
+        note( 'Entering tests_flags_for_host2()' ) ;
+
+        is( undef, flags_for_host2(  ),  'flags_for_host2: no args => undef' ) ;
+        
+        my $mysync ;
+        is( undef, flags_for_host2( $mysync ),  'flags_for_host2: undef => undef' ) ;
+        
+        $mysync = { } ;
+        is( undef, flags_for_host2( $mysync ),  'flags_for_host2: nothing => undef' ) ;
+        
+        is( q{}, flags_for_host2( $mysync, '' ),  'flags_for_host2: no flags => empty string' ) ;
+        
+        is( q{}, flags_for_host2( $mysync, '\Recent' ),  'flags_for_host2: \Recent => empty string' ) ;
+        
+        is( q{\Seen}, flags_for_host2( $mysync, '\Recent \Seen' ),  'flags_for_host2: \Recent \Seen => \Seen' ) ;
+       
+        is( q{\Deleted \Seen}, flags_for_host2( $mysync, '\Deleted \Recent \Seen' ),  'flags_for_host2: \Deleted \Recent \Seen => \Deleted \Seen' ) ;
+       
+        $mysync->{ flagscase } = 0 ;
+        is( q{\DELETED \Seen}, flags_for_host2( $mysync, '\DELETED \Seen' ),  'flags_for_host2: flagscase = 0 \DELETED \Seen => \DELETED \Seen' ) ;
+       
+        $mysync->{ flagscase } = 1 ;
+        is( q{\Deleted \Seen}, flags_for_host2( $mysync, '\DELETED \Seen' ),  'flags_for_host2: flagscase = 1 \DELETED \Seen => \Deleted \Seen' ) ;
+       
+        $mysync->{ filterflags } = 0 ;
+        is( q{\Seen \Blabla}, flags_for_host2( $mysync, '\Seen \Blabla', '\Seen \Junk' ),  'flags_for_host2: filterflags = 0 \Seen \Blabla among \Seen \Junk  => \Seen \Blabla' ) ;
+        
+        $mysync->{ filterflags } = 1 ;
+        is( q{\Seen}, flags_for_host2( $mysync, '\Seen \Blabla', '\Seen \Junk' ),  'flags_for_host2: filterflags = 1 \Seen \Blabla among \Seen \Junk  => \Seen' ) ;
+        
+        $mysync->{ filterflags } = 1 ;
+        is( q{\Seen \Blabla}, flags_for_host2( $mysync, '\Seen \Blabla', '' ),  'flags_for_host2: filterflags = 1 \Seen \Blabla among "" => \Seen \Blabla' ) ;
+        
+        
+        note( 'Leaving  tests_flags_for_host2()' ) ;
+        return ;
+}
+
+
+
+
+sub flags_for_host2
+{
+        my $mysync = shift ;
+        my $h1_flags = shift ;
+        my $permanentflags2 = shift ;
+        
+        if ( ! all_defined( $mysync, $h1_flags ) ) { return ; } ; 
+        
+        # RFC 2060: This flag can not be altered by any client
+        $h1_flags =~ s@\\Recent\s?@@xgi ;
+        
+        my $h1_flags_re ;
+        if ( $mysync->{ regexflag } and defined( $h1_flags_re = regexflags( $mysync, $h1_flags ) ) ) {
+                $h1_flags = $h1_flags_re ;
+        }
+        
+        if ( $mysync->{ flagscase } )
+        {
+                $h1_flags = flagscase( $h1_flags ) ;
+        }
+        
+        if ( $permanentflags2 and $mysync->{ filterflags } )
+        {
+                $h1_flags = flags_filter( $h1_flags, $permanentflags2 ) ;
+        }
+        
+        return( $h1_flags ) ;
+}
+
 
 
 sub ucsecond
@@ -9041,8 +10614,7 @@
 
 
         $debugdev and myprint( "Calling fetch_hash()\n"  ) ;
-        my $uidnext = $imap->uidnext( $folder ) || $uidnext_default ;
-        my $fetch_hash_uids = $fetch_hash_set || "1:$uidnext" ;
+        my $fetch_hash_uids = $fetch_hash_set || "1:*" ;
         %fetch = %{$imap->fetch_hash( $fetch_hash_uids, 'INTERNALDATE' ) } ;
 
         @msgs_all = sort { $a <=> $b } keys  %fetch  ;
@@ -9108,6 +10680,10 @@
         @min = @{ $min_ref } ;
 
         SWITCH: {
+                if ( not ( defined $minage or defined $maxage ) )
+                {
+                        return ;
+                }
                 unless( defined  $minage  ) { @msgs = @max ; last SWITCH } ;
                 unless( defined  $maxage  ) { @msgs = @min ; last SWITCH } ;
                 my ( %union, %inter ) ;
@@ -9125,23 +10701,38 @@
 
 sub tests_msgs_from_maxmin
 {
-	note( 'Entering tests_msgs_from_maxmin()' ) ;
+        note( 'Entering tests_msgs_from_maxmin()' ) ;
+
 
         my @msgs ;
+
+        # no maxage nor minage
+        @msgs = msgs_from_maxmin( [ '1', '2' ], [ '2', '3' ] ) ;
+        is_deeply( [  ], \@msgs , 'msgs_from_maxmin: no maxage nor minage => empty result' ) ;
+
+        # maxage alone
         $maxage = $NUMBER_200 ;
         @msgs = msgs_from_maxmin( [ '1', '2' ], [ '2', '3' ] ) ;
-        ok( 0 == compare_lists( [ '1', '2' ], \@msgs ), 'msgs_from_maxmin: maxage++' ) ;
+        is_deeply( [ '1', '2' ], \@msgs , 'msgs_from_maxmin: maxage++' ) ;
+
+        # maxage > minage -> intersection
         $minage = $NUMBER_100 ;
         @msgs = msgs_from_maxmin( [ '1', '2' ], [ '2', '3' ] ) ;
-        ok( 0 == compare_lists( [ '2' ], \@msgs ), 'msgs_from_maxmin:  -maxage++minage-' ) ;
+        is_deeply( [ '2' ], \@msgs , 'msgs_from_maxmin:  -maxage++minage-' ) ;
+
+        # maxage < minage -> union
         $minage = $NUMBER_300 ;
         @msgs = msgs_from_maxmin( [ '1', '2' ], [ '2', '3' ] ) ;
-        ok( 0 == compare_lists( [ '1', '2', '3' ], \@msgs ), 'msgs_from_maxmin:  ++maxage-minage++' ) ;
+        is_deeply( [ '1', '2', '3' ], \@msgs, 'msgs_from_maxmin:  ++maxage-minage++' ) ;
+
+
+        # minage alone
         $maxage = undef ;
         @msgs = msgs_from_maxmin( [ '1', '2' ], [ '2', '3' ] ) ;
-        ok( 0 == compare_lists( [ '2', '3' ], \@msgs ), 'msgs_from_maxmin:  ++minage-' ) ;
+        is_deeply( [ '2', '3' ], \@msgs, 'msgs_from_maxmin:  ++minage-' ) ;
 
-	note( 'Leaving  tests_msgs_from_maxmin()' ) ;
+
+        note( 'Leaving  tests_msgs_from_maxmin()' ) ;
         return ;
 }
 
@@ -9249,6 +10840,13 @@
         ( $mysync->{ debug } or $mysync->{dry} )
                 and myprint( "msg $h1_fold/$h1_msg copying to $h2_fold $mysync->{dry_message} " . eta( $mysync ) . "\n" ) ;
 
+        if ( $mysync->{dry1} )
+        {
+                $mysync->{ h1_nb_msg_processed } +=1 ;
+                $nb_msg_skipped_dry_mode += 1 ;
+                return ;
+        }
+
         my $h1_size  = $h1_fir_ref->{$h1_msg}->{'RFC822.SIZE'}  || 0 ;
         my $h1_flags = $h1_fir_ref->{$h1_msg}->{'FLAGS'}        || q{} ;
         my $h1_idate = $h1_fir_ref->{$h1_msg}->{'INTERNALDATE'} || q{} ;
@@ -9294,7 +10892,7 @@
         ( $mysync->{ debug } or $debugflags ) and
         myprint( "Host1: flags init msg $h1_fold/$h1_msg date [$h1_date] flags [$h1_flags] size [$h1_size]\n"  ) ;
 
-        $h1_flags = flags_for_host2( $h1_flags, $permanentflags2 ) ;
+        $h1_flags = flags_for_host2( $mysync, $h1_flags, $permanentflags2 ) ;
 
         ( $mysync->{ debug } or $debugflags ) and
         myprint( "Host1: flags filt msg $h1_fold/$h1_msg date [$h1_date] flags [$h1_flags] size [$h1_size]\n"  ) ;
@@ -9447,7 +11045,7 @@
                 ${ $string_ref } = $header . "\r\n" . ${ $string_ref } ;
         }
 
-        if ( ( defined $mysync->{ truncmess } ) and is_an_integer( $mysync->{ truncmess } ) )
+        if ( ( defined $mysync->{ truncmess } ) and is_integer( $mysync->{ truncmess } ) )
         {
                 ${ $string_ref } = truncmess( ${ $string_ref }, $mysync->{ truncmess } ) ;
         }
@@ -10094,20 +11692,6 @@
         return( $h1_date ) ;
 }
 
-sub flags_for_host2
-{
-        my( $h1_flags, $permanentflags2 ) = @_ ;
-        # RFC 2060: This flag can not be altered by any client
-        $h1_flags =~ s@\\Recent\s?@@xgi ;
-        my $h1_flags_re ;
-        if ( @regexflag and defined( $h1_flags_re = flags_regex( $h1_flags ) ) ) {
-                $h1_flags = $h1_flags_re ;
-        }
-        $h1_flags = flagscase( $h1_flags ) if $flagscase ;
-        $h1_flags = flags_filter( $h1_flags, $permanentflags2) if ( $permanentflags2 and $filterflags ) ;
-
-        return( $h1_flags ) ;
-}
 
 sub subject
 {
@@ -10116,7 +11700,7 @@
 
         my $header = extract_header( $string ) ;
 
-        if( $header =~ m/^Subject:\s*([^\n\r]*)\r?$/msx ) {
+        if( $header =~ m/^Subject:[ \t]*([^\n\r]*)\r?$/msx ) {
                 #myprint( "MMM[$1]\n"  ) ;
                 $subject = $1 ;
         }
@@ -10125,12 +11709,14 @@
 
 sub tests_subject
 {
-	note( 'Entering tests_subject()' ) ;
+        note( 'Entering tests_subject()' ) ;
 
         ok( q{} eq subject( q{} ), 'subject: null') ;
-        ok( 'toto le hero' eq subject( 'Subject: toto le hero' ), 'subject: toto le hero') ;
-        ok( 'toto le hero' eq subject( 'Subject:toto le hero' ), 'subject: toto le hero blank') ;
-        ok( 'toto le hero' eq subject( "Subject:toto le hero\r\n" ), 'subject: toto le hero\r\n') ;
+        is( '', subject( 'Subject:' ), 'Subject:') ;
+        is( '', subject( "Subject:\r\n" ), 'Subject:\r\n') ;
+        ok( 'toto le hero' eq subject( 'Subject: toto le hero' ), 'Subject: toto le hero') ;
+        ok( 'toto le hero' eq subject( 'Subject:toto le hero' ), 'Subject:toto le hero') ;
+        ok( 'toto le hero' eq subject( "Subject:toto le hero\r\n" ), 'Subject: toto le hero\r\n') ;
 
         my $MESS ;
         $MESS = <<'EOF';
@@ -10169,13 +11755,24 @@
 EOF
         ok( q{} eq subject( $MESS ), 'subject: null but body could') ;
 
+
+        $MESS = <<'EOF';
+From: lalala
+Subject:
+Date: zzzzzz
+
+Subject: toto le hero
+EOF
+        is( '', subject( $MESS ), 'Subject:') ;
+
+
+
 	note( 'Leaving  tests_subject()' ) ;
         return ;
 }
 
 
 # GlobVar
-# $max_msg_size_in_bytes
 # $h2_uidguess
 # ...
 #
@@ -10187,10 +11784,9 @@
 
         my $new_id ;
         if ( ! $mysync->{dry} ) {
-                $max_msg_size_in_bytes = max( $string_len, $max_msg_size_in_bytes ) ;
                 $new_id = $mysync->{imap2}->append_string( $h2_fold, ${ $string_ref }, $h1_flags, $h1_date ) ;
                 myprint( debugmemory( $mysync, " at A2" ) ) ;
-                if ( ! $new_id){
+                if ( ! defined $new_id ){
                         my $subject = subject( ${ $string_ref } ) ;
                         my $error_imap = $mysync->{imap2}->LastError || q{} ;
                         my $error = "- msg $h1_fold/$h1_msg {$string_len} could not append ( Subject:[$subject], Date:[$h1_date], Size:[$h1_size], Flags:[$h1_flags] ) to folder $h2_fold: $error_imap\n" ;
@@ -10210,6 +11806,7 @@
                         $mysync->{ total_bytes_transferred } += $string_len ;
                         $mysync->{ nb_msg_transferred } += 1 ;
                         $mysync->{ h1_nb_msg_processed } +=1 ;
+                        $mysync->{ biggest_message_transferred } = max( $string_len, $mysync->{ biggest_message_transferred } ) ;
 
                         my $time_spent = timesince( $mysync->{begin_transfer_time} ) ;
                         my $rate = bytes_display_string( $mysync->{total_bytes_transferred} / $time_spent ) ;
@@ -10279,15 +11876,18 @@
 {
         my( $mysync ) = shift ;
 
-	if ( ! $mysync ) {
-		return ;
-	}
-	# No need to go further if there is no limit set
-	if (  not ( $mysync->{maxmessagespersecond}
-		or $mysync->{maxbytespersecond} )
-	) {
-		return ;
-	}
+        if ( ! $mysync ) {
+                return ;
+        }
+        # No need to go further if there is no limit set
+        if (
+                not (
+                        $mysync->{maxmessagespersecond}
+                        or $mysync->{maxbytespersecond}
+                )
+        ) {
+                return ;
+        }
 
 	$mysync->{maxsleep} = defined $mysync->{maxsleep} ? $mysync->{maxsleep} : $MAX_SLEEP ;
         # Must be positive
@@ -10360,7 +11960,7 @@
 
 sub tests_sleep_max_bytes
 {
-	note( 'Entering tests_sleep_max_bytes()' ) ;
+        note( 'Entering tests_sleep_max_bytes()' ) ;
 
         ok( 0 == sleep_max_bytes( 4000, 2, undef ),  'sleep_max_bytes: maxbytespersecond == undef => sleep 0' ) ;
         ok( 0 == sleep_max_bytes( 4000, 2, 0 ),  'sleep_max_bytes: maxbytespersecond = 0 => sleep 0') ;
@@ -10371,7 +11971,7 @@
         ok( 0 == sleep_max_bytes( 2000, 2, 2000 ),  'sleep_max_bytes: maxbytespersecond = 2k max not reached => sleep 0') ;
         ok( 0 == sleep_max_bytes( -2000, 2, 1000 ), 'sleep_max_bytes: maxbytespersecond = 1k max not reached => sleep 0') ;
 
-	note( 'Leaving  tests_sleep_max_bytes()' ) ;
+        note( 'Leaving  tests_sleep_max_bytes()' ) ;
         return ;
 }
 
@@ -10383,7 +11983,8 @@
         if ( ! @h1_msg ) { return ; }
         delete_messages_on_any(
                 $mysync,
-                $mysync->{imap1},
+                $mysync->{ acc1 },
+                $mysync->{ imap1 },
                 "Host1: $h1_fold",
                 $expunge,
                 $split1,
@@ -10419,18 +12020,22 @@
         return ;
 }
 
+
 sub delete_messages_on_any
 {
-        my( $mysync, $imap, $hostX_folder, $expunge, $split, @messages  ) = @_ ;
+        # $acc is not used yet,
+        #
+        my( $mysync, $acc, $imap, $hostX_folder, $expunge, $split, @messages  ) = @_ ;
         my $expunge_message = q{} ;
 
         my $dry_message = $mysync->{ dry_message } ;
         $expunge_message = 'and expunged' if ( $expunge ) ;
         # "Host1: msg "
 
-        $imap->Debug( 1 ) ;
+        # $imap->Debug( 1 ) ;
 
-        while ( my @messages_part = splice @messages, 0, $split )
+        my @messages_to_mark_deleted = @messages ;
+        while ( my @messages_part = splice @messages_to_mark_deleted, 0, $split )
         {
                 foreach my $message ( @messages_part )
                 {
@@ -10442,7 +12047,7 @@
                         if ( defined $nb_deleted )
                         {
                                 # $nb_deleted is not accurate
-                                $mysync->{ h1_nb_msg_deleted } += scalar @messages_part ;
+                                $acc->{ nb_msg_deleted } += scalar @messages_part ;
                         }
                         else
                         {
@@ -10458,7 +12063,7 @@
                 uidexpunge_or_expunge( $mysync, $imap, @messages ) ;
         }
 
-        $imap->Debug( 0 ) ;
+        #$imap->Debug( 0 ) ;
 
         return ;
 }
@@ -10547,13 +12152,13 @@
         $mysync->{ begin_transfer_time } = time ; # Now
         $mysync->{ h1_nb_msg_processed } = 0 ;
 
-        is( "ETA: " . localtime( time ) . "  0 s  0/0 msgs left",
+        is( "ETA: " . localtimez( time ) . "  0 s  0/0 msgs left",
                 eta( $mysync ),
                 'eta: no args => ETA: "Now"  0 s  0/0 msgs left' ) ;
 
         $mysync->{ h1_nb_msg_processed } = 1 ;
         $mysync->{ h1_nb_msg_start }     = 2 ;
-        is( "ETA: " . localtime( time ) . "  0 s  1/2 msgs left",
+        is( "ETA: " . localtimez( time ) . "  0 s  1/2 msgs left",
                 eta( $mysync ),
                 'eta: 1, 1, 2 => ETA: "Now"  0 s  1/2 msgs left' ) ;
 
@@ -10584,7 +12189,7 @@
         my $time_remaining = time_remaining( $time_spent, $h1_nb_processed, $h1_nb_msg_start, $nb_msg_transferred ) ;
         $mysync->{ debug } and myprint( "time_spent: $time_spent time_remaining: $time_remaining\n" ) ;
         my $nb_msg_remaining = $h1_nb_msg_start - $h1_nb_processed ;
-        my $eta_date = localtime( time + $time_remaining ) ;
+        my $eta_date = localtimez( time + $time_remaining ) ;
         return( mysprintf( 'ETA: %s  %1.0f s  %s/%s msgs left',
                 $eta_date, $time_remaining, $nb_msg_remaining, $h1_nb_msg_start ) ) ;
 }
@@ -11171,6 +12776,7 @@
 }
 
 
+
 sub tests_tmpdir_has_colon_bug
 {
 	note( 'Entering tests_tmpdir_has_colon_bug()' ) ;
@@ -11237,7 +12843,7 @@
                         myprint( "Old cache directory $cachedir_old still exists\n"  ) ;
                         $err++ ;
                 }else{
-                        myprint( "Old cache directory $cachedir_old successfuly moved\n"  ) ;
+                        myprint( "Old cache directory $cachedir_old successfully moved\n"  ) ;
                 }
         }
         return( not $err ) ;
@@ -11280,31 +12886,33 @@
 
 sub tests_filter_forbidden_characters
 {
-	note( 'Entering tests_filter_forbidden_characters()' ) ;
+        note( 'Entering tests_filter_forbidden_characters()' ) ;
 
-        ok( 'a_b' eq filter_forbidden_characters( 'a_b' ), 'filter_forbidden_characters: a_b -> a_b' ) ;
-        ok( 'a_b' eq filter_forbidden_characters( 'a*b' ), 'filter_forbidden_characters: a*b -> a_b' ) ;
-        ok( 'a_b' eq filter_forbidden_characters( 'a|b' ), 'filter_forbidden_characters: a|b -> a_b' ) ;
-        ok( 'a_b' eq filter_forbidden_characters( 'a?b' ), 'filter_forbidden_characters: a?b -> a_b' ) ;
-        ok( 'a_______b' eq filter_forbidden_characters( 'a*|?:"<>b' ), 'filter_forbidden_characters: a*|?:"<>b -> a_______b' ) ;
+        is( undef , filter_forbidden_characters(  ), 'filter_forbidden_characters: no args -> undef' ) ;
 
-        SKIP: {
-                skip( 'Not on MSWin32', 1 ) if ( 'MSWin32' eq $OSNAME ) ;
-                ok( ( 'a b ' eq filter_forbidden_characters( 'a b ' ) ), 'filter_forbidden_characters: "a b " -> "a b "' ) ;
-        } ;
+        is( 'a_b' , filter_forbidden_characters( 'a_b' ), 'filter_forbidden_characters: a_b -> a_b' ) ;
+        is( 'a_b' , filter_forbidden_characters( 'a*b' ), 'filter_forbidden_characters: a*b -> a_b' ) ;
+        is( 'a_b' , filter_forbidden_characters( 'a|b' ), 'filter_forbidden_characters: a|b -> a_b' ) ;
+        is( 'a_b' , filter_forbidden_characters( 'a?b' ), 'filter_forbidden_characters: a?b -> a_b' ) ;
+        is( 'a________b', filter_forbidden_characters( q{a*|?:"<>'b} ), q{filter_forbidden_characters: a*|?:"<>'b -> a________b} ) ;
 
-        SKIP: {
-                skip( 'Only on MSWin32', 2 ) if ( 'MSWin32' ne $OSNAME ) ;
-                ok( ( ' a b_' eq filter_forbidden_characters( ' a b ' ) ), 'filter_forbidden_characters: "a b " -> "a b_"' ) ;
-                ok( ( ' a b_/ c d_' eq filter_forbidden_characters( ' a b / c d ' ) ), 'filter_forbidden_characters: " a b / c d " -> "a b_/ c d_"' ) ;
-        } ;
 
-        ok( 'a_b' eq filter_forbidden_characters( "a\tb" ), 'filter_forbidden_characters: a\tb -> a_b' ) ;
-        ok( "a_b" eq filter_forbidden_characters( "a\rb" ), 'filter_forbidden_characters: a\rb -> a_b' ) ;
-        ok( "a_b" eq filter_forbidden_characters( "a\nb" ), 'filter_forbidden_characters: a\nb -> a_b' ) ;
-        ok( "a_b" eq filter_forbidden_characters( "a\\b" ), 'filter_forbidden_characters: a\b -> a_b' ) ;
+        is( 'a_b_' , filter_forbidden_characters( 'a b ' ), 'filter_forbidden_characters: "a b " -> "a_b_"' ) ;
 
-	note( 'Leaving  tests_filter_forbidden_characters()' ) ;
+
+        is( 'a_b' , filter_forbidden_characters( "a\tb" ), 'filter_forbidden_characters: a\tb -> a_b' ) ;
+        is( "a_b" , filter_forbidden_characters( "a\rb" ), 'filter_forbidden_characters: a\rb -> a_b' ) ;
+        is( "a_b" , filter_forbidden_characters( "a\nb" ), 'filter_forbidden_characters: a\nb -> a_b' ) ;
+        is( "a_b" , filter_forbidden_characters( "a\\b" ), 'filter_forbidden_characters: a\b -> a_b' ) ;
+
+        is( 'a-b' , filter_forbidden_characters( 'a-b' ), 'filter_forbidden_characters: a-b -> a-b' ) ;
+        is( 'a__-__-__-__-__b' , filter_forbidden_characters( 'aé-è-à -ç-Öb' ), 'filter_forbidden_characters: aé-è-à -ç-Öb -> a__-__-__-__-__b' ) ;
+
+        is( 'abcdABCDwxyzWXYZ012789' , filter_forbidden_characters( 'abcdABCDwxyzWXYZ012789' ),
+                'filter_forbidden_characters: abcdABCDwxyzWXYZ012789 -> abcdABCDwxyzWXYZ012789' ) ;
+
+
+        note( 'Leaving  tests_filter_forbidden_characters()' ) ;
         return ;
 }
 
@@ -11312,13 +12920,12 @@
 {
         my $string = shift ;
 
-	if ( ! defined $string ) { return ; }
+        if ( ! defined $string ) { return ; }
 
-        if ( 'MSWin32' eq $OSNAME ) {
-                # Move trailing whitespace to _ " a b /c d " -> " a b_/c d_"
-                $string =~ s{\ (/|$)}{_$1}xg ;
-        }
-        $string =~ s{[\Q*|?:"<>\E\t\r\n\\]}{_}xg ;
+        $string =~ s{[\Q*|?:"<>' \E\t\r\n\\]}{_}xg ;
+        # replace all non-ascii and control characters by _
+        $string =~ s/[[:^ascii:][:cntrl:]]/_/xg ;
+
         #myprint( "[$string]\n"  ) ;
         return( $string ) ;
 }
@@ -11351,58 +12958,58 @@
 
 sub tests_regexmess
 {
-	note( 'Entering tests_regexmess()' ) ;
+        note( 'Entering tests_regexmess()' ) ;
 
-        ok( 'blabla' eq regexmess( 'blabla' ), 'regexmess, no regexmess, nothing to do' ) ;
+        ok( 'blabla' eq regexmess( 'blabla' ), 'regexmess: no regexmess, nothing to do' ) ;
 
         @regexmess = ( 'lalala' ) ;
-        ok( not( defined regexmess( 'popopo' ) ), 'regexmess, bad regex lalala' ) ;
+        ok( not( defined regexmess( 'popopo' ) ), 'regexmess: bad regex lalala' ) ;
 
         @regexmess = ( 's/p/Z/g' ) ;
-        ok( 'ZoZoZo' eq regexmess( 'popopo' ), 'regexmess, s/p/Z/g' ) ;
+        ok( 'ZoZoZo' eq regexmess( 'popopo' ), 'regexmess: s/p/Z/g' ) ;
 
         @regexmess = ( 's{c}{C}gxms' ) ;
         ok("H1: abC\nH2: Cde\n\nBody abC"
                    eq regexmess( "H1: abc\nH2: cde\n\nBody abc"),
-           'regexmess, c->C');
+           'regexmess: c->C');
 
         @regexmess = ( 's{\AFrom\ }{From:}gxms' ) ;
         ok(          q{}
         eq regexmess(q{}),
-        'From mbox 1 add colon blank');
+        'regexmess: From mbox 1 add colon blank');
 
         ok(          'From:<tartanpion@machin.truc>'
         eq regexmess('From <tartanpion@machin.truc>'),
-        'From mbox 2 add colo');
+        'regexmess: From mbox 2 add colo');
 
         ok(          "\n" . 'From <tartanpion@machin.truc>'
         eq regexmess("\n" . 'From <tartanpion@machin.truc>'),
-        'From mbox 3 add colo') ;
+        'regexmess: From mbox 3 add colo') ;
 
         ok(          "From: zzz\n" . 'From <tartanpion@machin.truc>'
         eq regexmess("From  zzz\n" . 'From <tartanpion@machin.truc>'),
-        'From mbox 4 add colo') ;
+        'regexmess: From mbox 4 add colo') ;
 
         @regexmess = ( 's{\AFrom\ [^\n]*(\n)?}{}gxms' ) ;
         ok(          q{}
         eq regexmess(q{}),
-        'From mbox 1 remove, blank');
+        'regexmess: From mbox 1 remove, blank');
 
         ok(          q{}
         eq regexmess('From <tartanpion@machin.truc>'),
-        'From mbox 2 remove');
+        'regexmess: From mbox 2 remove');
 
         ok(          "\n" . 'From <tartanpion@machin.truc>'
         eq regexmess("\n" . 'From <tartanpion@machin.truc>'),
-        'From mbox 3 remove');
+        'regexmess: From mbox 3 remove');
 
         #myprint( "[", regexmess("From zzz\n" . 'From <tartanpion@machin.truc>'), "]" ) ;
         ok(          q{}            . 'From <tartanpion@machin.truc>'
         eq regexmess("From  zzz\n" . 'From <tartanpion@machin.truc>'),
-        'From mbox 4 remove');
+        'regexmess: From mbox 4 remove');
 
 
-        ok(
+        is(
 <<'EOM'
 Date: Sat, 10 Jul 2010 05:34:45 -0700
 From:<tartanpion@machin.truc>
@@ -11410,7 +13017,7 @@
 Hello,
 Bye.
 EOM
-        eq regexmess(
+        , regexmess(
 <<'EOM'
 From  zzz
 Date: Sat, 10 Jul 2010 05:34:45 -0700
@@ -11419,7 +13026,7 @@
 Hello,
 Bye.
 EOM
-), 'From mbox 5 remove');
+        ), 'regexmess: From mbox 5 remove');
 
 
 @regexmess = ( 's{\A((?:[^\n]+\n)+|)^Disposition-Notification-To:[^\n]*\n(\r?\n|.*\n\r?\n)}{$1$2}xms' ) ; # SUPER SUPER BEST!
@@ -11460,7 +13067,7 @@
 Hello,
 Bye.
 EOM
-),
+        ),
         'regexmess: 2 Delete header Disposition-Notification-To:');
 
         ok(
@@ -11480,7 +13087,7 @@
 Hello,
 Bye.
 EOM
-),
+        ),
         'regexmess: 3 Delete header Disposition-Notification-To:');
 
         ok(
@@ -11500,7 +13107,7 @@
 Disposition-Notification-To: Gilles LAMIRAL <gilles@lamiral.info>
 Bye.
 EOM
-),
+        ),
         'regexmess: 4 Delete header Disposition-Notification-To:');
 
 
@@ -11520,11 +13127,11 @@
 Disposition-Notification-To: Gilles LAMIRAL <gilles@lamiral.info>
 Bye.
 EOM
-),
+        ),
         'regexmess: 5 Delete header Disposition-Notification-To:');
 
 
-ok(
+        ok(
 <<'EOM'
 Date: Sat, 10 Jul 2010 05:34:45 -0700
 From:<tartanpion@machin.truc>
@@ -11542,10 +13149,10 @@
 Disposition-Notification-To: Gilles LAMIRAL <gilles@lamiral.info>
 Bye.
 EOM
-),
+        ),
         'regexmess: 6 Delete header Disposition-Notification-To:');
 
-ok(
+        ok(
 <<'EOM'
 Date: Sat, 10 Jul 2010 05:34:45 -0700
 From:<tartanpion@machin.truc>
@@ -11565,11 +13172,11 @@
 
 Bye.
 EOM
-),
+        ),
         'regexmess: 7 Delete header Disposition-Notification-To:');
 
 
-ok(
+        ok(
 <<'EOM'
 Date: Sat, 10 Jul 2010 05:34:45 -0700
 From:<tartanpion@machin.truc>
@@ -11589,7 +13196,7 @@
         'regexmess: 8 Delete header Disposition-Notification-To:');
 
 
-ok(
+        ok(
 <<'EOM'
 Date: Sat, 10 Jul 2010 05:34:45 -0700
 From:<tartanpion@machin.truc>
@@ -11607,12 +13214,12 @@
 Disposition-Notification-To: Gilles LAMIRAL <gilles@lamiral.info>
 Bye.
 EOM
-),
+        ),
         'regexmess: 9 Delete header Disposition-Notification-To:');
 
 
 
-ok(
+        ok(
 <<'EOM'
 Date: Sat, 10 Jul 2010 05:34:45 -0700
 From:<tartanpion@machin.truc>
@@ -11634,10 +13241,10 @@
 
 Bye.
 EOM
-),
+        ),
         'regexmess: 10 Delete header Disposition-Notification-To:');
 
-ok(
+        ok(
 <<'EOM'
 Date: Sat, 10 Jul 2010 05:34:45 -0700
 From:<tartanpion@machin.truc>
@@ -11662,7 +13269,7 @@
 ),
         'regexmess: 11 Delete header Disposition-Notification-To:');
 
-ok(
+        ok(
 <<'EOM'
 Date: Sat, 10 Jul 2010 05:34:45 -0700
 From:<tartanpion@machin.truc>
@@ -11688,15 +13295,15 @@
 
 Bye.
 EOM
-),
+        ),
         'regexmess: 12 Delete header Disposition-Notification-To:');
 
 
-@regexmess = ( 's{\A(.*?(?! ^$))^Disposition-Notification-To:(.*?)$}{$1X-Disposition-Notification-To:$2}igxms' ) ; # BAD!
-@regexmess = ( 's{\A((?:[^\n]+\n)+|)(^Disposition-Notification-To:[^\n]*\n)(\r?\n|.*\n\r?\n)}{$1X-$2$3}ims' ) ;
+        @regexmess = ( 's{\A(.*?(?! ^$))^Disposition-Notification-To:(.*?)$}{$1X-Disposition-Notification-To:$2}igxms' ) ; # BAD!
+        @regexmess = ( 's{\A((?:[^\n]+\n)+|)(^Disposition-Notification-To:[^\n]*\n)(\r?\n|.*\n\r?\n)}{$1X-$2$3}ims' ) ;
 
 
-ok(
+        ok(
 <<'EOM'
 Date: Sat, 10 Jul 2010 05:34:45 -0700
 From:<tartanpion@machin.truc>
@@ -11722,10 +13329,10 @@
 
 Bye.
 EOM
-),
+        ),
         'regexmess: 13 Delete header Disposition-Notification-To:');
 
-ok(
+        ok(
 <<'EOM'
 Date: Sat, 10 Jul 2010 05:34:45 -0700
 X-Disposition-Notification-To: Gilles LAMIRAL <gilles@lamiral.info>
@@ -11753,10 +13360,10 @@
 
 Bye.
 EOM
-),
+        ),
         'regexmess: 14 Delete header Disposition-Notification-To:');
 
-ok(
+        ok(
 <<'EOM'
 Date: Sat, 10 Jul 2010 05:34:45 -0700
 X-Disposition-Notification-To: Gilles LAMIRAL <gilles@lamiral.info>
@@ -11776,11 +13383,11 @@
 
 Bye.
 EOM
-),
+        ),
         'regexmess: 15 Delete header Disposition-Notification-To:');
 
 
-ok(
+        ok(
 <<'EOM'
 Date: Sat, 10 Jul 2010 05:34:45 -0700
 From:<tartanpion@machin.truc>
@@ -11800,10 +13407,10 @@
 
 Bye.
 EOM
-),
+        ),
         'regexmess: 16 Delete header Disposition-Notification-To:');
 
-ok(
+        ok(
 <<'EOM'
 X-Disposition-Notification-To: Gilles LAMIRAL <gilles@lamiral.info>
 Date: Sat, 10 Jul 2010 05:34:45 -0700
@@ -11827,15 +13434,15 @@
         'regexmess: 17 Delete header Disposition-Notification-To:');
 
         @regexmess = ( 's/.{11}\K.*//gs' ) ;
-        is( "0123456789\n", regexmess( "0123456789\n" x 100 ), 'regexmess, truncate whole message after 11 characters' ) ;
-        is( "0123456789\n", regexmess( "0123456789\n" x 100_000 ), 'regexmess, truncate whole message after 11 characters ~ 1MB' ) ;
+        is( "0123456789\n", regexmess( "0123456789\n" x 100 ), 'regexmess: truncate whole message after 11 characters' ) ;
+        is( "0123456789\n", regexmess( "0123456789\n" x 100_000 ), 'regexmess: truncate whole message after 11 characters ~ 1MB' ) ;
 
         @regexmess = ( 's/.{10000}\K.*//gs' ) ;
-        is( "123456789\n" x 1000, regexmess( "123456789\n" x 100_000 ), 'regexmess, truncate whole message after 10000 characters ~ 1MB' ) ;
+        is( "123456789\n" x 1000, regexmess( "123456789\n" x 100_000 ), 'regexmess: truncate whole message after 10000 characters ~ 1MB' ) ;
 
-@regexmess = ( 's/^(X-Ham-Report.*?\n)^X-/X-/sm' ) ;
+        @regexmess = ( 's/^(X-Ham-Report.*?\n)^X-/X-/sm' ) ;
 
-is(
+        is(
 <<'EOM'
 X-Spam-Score: -1
 X-Spam-Bar: /
@@ -11848,7 +13455,7 @@
 Bye.
 EOM
 ,
-regexmess(
+        regexmess(
 <<'EOM'
 X-Spam-Score: -1
 X-Spam-Bar: /
@@ -11868,20 +13475,247 @@
 
 Bye.
 EOM
-),
-        'regexmess: 1 Delete header X-Ham-Report:');
+        ),
+        'regexmess: Delete header X-Ham-Report:');
 
 
 # regex to play with Date: from the FAQ
 #@regexmess = 's{\A(.*?(?! ^$))^Date:(.*?)$}{$1Date:$2\nX-Date:$2}gxms'
 
 
+# Change 8bit characters in whole email to X characters
+        @regexmess = ( 's{[\x80-\xff]}{X}gxms' ) ;
+        is( 'X-8bit: kaka 1 XX kiki', regexmess('X-8bit: kaka 1 ¤ kiki'), 'regexmess: 1 Change 8bit characters in whole email to X characters');
+
+# Same change but using tr
+        @regexmess = ( 'tr [\x80-\xff] [X]' ) ;
+        is( 'X-8bit: kaka 1 XXXX kiki', regexmess('X-8bit: kaka 1 ¤£ kiki'), 'regexmess: 2 Change 8bit characters in whole email to X characters, using tr');
 
 
 
-	note( 'Leaving  tests_regexmess()' ) ;
-	return ;
+# Add a final \r\n if missing
+        @regexmess = ( 's{(?<![\n])\z}{\r\n}gxms' ) ;
+        is( "\r\n", regexmess(""),       'regexmess: 1. Add a final \r\n if missing. Missing' ) ;
+        is( "abc\r\n", regexmess("abc"), 'regexmess: 2. Add a final \r\n if missing. Missing' ) ;
+        is( "abc\ndef\r\n", regexmess("abc\ndef"), 'regexmess: 3. Add a final \r\n if missing. Missing' ) ;
+        is( "abc\r\ndef\r\n", regexmess("abc\r\ndef"), 'regexmess: 3. Add a final \r\n if missing. Missing' ) ;
 
+        is( "\r\n", regexmess("\r\n"),   'regexmess: 3. Add a final \r\n if missing. Not missing' ) ;
+        is( "abc\n", regexmess("abc\n"), 'regexmess: 4. Add a final \r\n if missing. Not missing' ) ;
+        is( "abc\r\n", regexmess("abc\r\n"), 'regexmess: 4. Add a final \r\n if missing. Not missing' ) ;
+        is( "abc\ndef\n", regexmess("abc\ndef\n"), 'regexmess: 4. Add a final \r\n if missing. Not missing' ) ;
+        is( "abc\r\ndef\r\n", regexmess("abc\r\ndef\r\n"), 'regexmess: 4. Add a final \r\n if missing. Not missing' ) ;
+
+# Remove the fucking buggy X-Spam-Report: a bad header on several lines that can even begin without a space!
+
+        @regexmess = ( 's{X-Spam-Report:.*?\n(^[^\n]+:|^\r?\n)}{$1}xms' ) ;
+        # Damien regexes:
+        #@regexmess = ( 's{X-Spam-Report:.*?\n(^[a-zA-Z0-9\-]+:)}{$1}xms' ) ;
+        #@regexmess = ( 's{X-Spam-Report:.*?\n(^[a-zA-Z0-9\-]+:|^\r?\n)}{$1}xms' ) ;
+
+        is(
+<<'EOM'
+Date: Sat, 10 Jul 2010 05:34:45 -0700
+From:<tartanpion@machin.truc>
+LaSuite: super
+
+Hello,
+Bye.
+EOM
+        , regexmess(
+<<'EOM'
+Date: Sat, 10 Jul 2010 05:34:45 -0700
+From:<tartanpion@machin.truc>
+X-Spam-Report: caca
+caca
+  caca
+caca
+LaSuite: super
+
+Hello,
+Bye.
+EOM
+        ), 'regexmess: 1 remove buggy X-Spam-Report: across several lines, not the final header');
+
+
+        is(
+<<'EOM'
+Date: Sat, 10 Jul 2010 05:34:45 -0700
+From:<tartanpion@machin.truc>
+LaSuite: super
+LaSuite2: super 2
+
+Hello,
+Bye.
+EOM
+        , regexmess(
+<<'EOM'
+Date: Sat, 10 Jul 2010 05:34:45 -0700
+From:<tartanpion@machin.truc>
+X-Spam-Report: caca
+caca
+  caca
+caca
+LaSuite: super
+LaSuite2: super 2
+
+Hello,
+Bye.
+EOM
+        ), 'regexmess: 2 remove buggy X-Spam-Report: across several lines, not the final header');
+
+
+        is(
+<<'EOM'
+Date: Sat, 10 Jul 2010 05:34:45 -0700
+From:<tartanpion@machin.truc>
+LaSuite: super
+LaSuite2: super 2
+
+Hello,
+Bye.
+EOM
+        , regexmess(
+<<'EOM'
+X-Spam-Report: caca
+caca
+  caca
+caca
+Date: Sat, 10 Jul 2010 05:34:45 -0700
+From:<tartanpion@machin.truc>
+LaSuite: super
+LaSuite2: super 2
+
+Hello,
+Bye.
+EOM
+        ), 'regexmess: 3 remove buggy X-Spam-Report: across several lines, first header');
+
+
+
+
+        is(
+<<'EOM'
+Date: Sat, 10 Jul 2010 05:34:45 -0700
+From:<tartanpion@machin.truc>
+
+Hello,
+Bye.
+EOM
+        , regexmess(
+<<'EOM'
+Date: Sat, 10 Jul 2010 05:34:45 -0700
+From:<tartanpion@machin.truc>
+X-Spam-Report: caca
+caca
+  caca
+caca
+
+Hello,
+Bye.
+EOM
+        ), 'regexmess: 4 remove buggy X-Spam-Report: across several lines, final header');
+
+
+        is(
+<<'EOM'
+Date: Sat, 10 Jul 2010 05:34:45 -0700
+From:<tartanpion@machin.truc>
+
+Hello,
+Bye.
+EOM
+        , regexmess(
+<<'EOM'
+Date: Sat, 10 Jul 2010 05:34:45 -0700
+From:<tartanpion@machin.truc>
+
+Hello,
+Bye.
+EOM
+        ), 'regexmess: 5 remove buggy X-Spam-Report: not there at all');
+
+
+        is(
+<<"EOM"
+Date: Sat, 10 Jul 2010 05:34:45 -0700\r
+From:<tartanpion>\r
+LaSuite: super\r
+LaSuite2: super 2\r
+\r
+Hello,\r
+Bye.\r
+EOM
+        , regexmess(
+<<"EOM"
+X-Spam-Report: caca\r
+caca\r
+  caca\r
+caca\r
+Date: Sat, 10 Jul 2010 05:34:45 -0700\r
+From:<tartanpion>\r
+LaSuite: super\r
+LaSuite2: super 2\r
+\r
+Hello,\r
+Bye.\r
+EOM
+        ), 'regexmess: 6 remove buggy X-Spam-Report: across several lines, first header, with \r');
+
+
+        is(
+<<"EOM"
+Date: Sat, 10 Jul 2010 05:34:45 -0700\r
+From:<tartanpion>\r
+LaSuite: super\r
+LaSuite2: super 2\r
+\r
+Hello,\r
+Bye.\r
+EOM
+        , regexmess(
+<<"EOM"
+Date: Sat, 10 Jul 2010 05:34:45 -0700\r
+From:<tartanpion>\r
+X-Spam-Report: caca\r
+caca\r
+  caca\r
+caca\r
+LaSuite: super\r
+LaSuite2: super 2\r
+\r
+Hello,\r
+Bye.\r
+EOM
+        ), 'regexmess: 7 remove buggy X-Spam-Report: across several lines, middle header, with \r');
+
+
+        is(
+<<"EOM"
+Date: Sat, 10 Jul 2010 05:34:45 -0700\r
+From:<tartanpion>\r
+\r
+Hello,\r
+Bye.\r
+EOM
+        , regexmess(
+<<"EOM"
+Date: Sat, 10 Jul 2010 05:34:45 -0700\r
+From:<tartanpion>\r
+X-Spam-Report: caca\r
+caca\r
+  caca\r
+caca\r
+\r
+Hello,\r
+Bye.\r
+EOM
+        ), 'regexmess: 8 remove buggy X-Spam-Report: across several lines, final header, with \r');
+
+
+        undef @regexmess ;
+        note( 'Leaving  tests_regexmess()' ) ;
+        return ;
 }
 
 sub regexmess
@@ -12119,10 +13953,83 @@
         # Complex regular subexpression recursion limit (32766) exceeded with more lines
         # exit;
 
-	note( 'Leaving  tests_skipmess()' ) ;
+
+        undef @skipmess ;
+        note( 'Leaving  tests_skipmess()' ) ;
         return ;
 }
 
+
+sub tests_skipmess_neg
+{
+        note( 'Entering tests_skipmess_neg()' ) ;
+
+
+        @skipmess = ('m{i}') ;
+        ok( 1 == skipmess( 'Hi!' ), 'skipmess: i string yes' ) ;
+        ok( 0 == skipmess( 'Ho!' ), 'skipmess: i string no' ) ;
+
+        @skipmess = ('m{\A(?!.*i)}') ;
+        ok( 0 == skipmess( 'Hi!' ), 'skipmess: not i string no' ) ;
+        ok( 1 == skipmess( 'Ho!' ), 'skipmess: not i string yes' ) ;
+
+
+        @skipmess = ('m{\A(?!.*^From:[^\n]*tartanpion\@machin\.truc)}xms') ;
+
+        ok( 0 == skipmess(
+<<'EOM'
+Date: Sat, 10 Jul 2010 05:34:45 -0700
+From: <tartanpion@machin.truc>
+
+Bye.
+EOM
+),
+    'skipmess: 1 not From tartanpion@machin.truc' ) ;
+
+ok( 1 == skipmess(
+<<'EOM'
+Date: Sat, 10 Jul 2010 05:34:45 -0700
+From: <kikiki@machin.truc>
+
+Bye.
+EOM
+),
+    'skipmess: 2 not From tartanpion@machin.truc' ) ;
+
+
+
+
+        ok( 0 == skipmess(
+<<'EOM'
+Date: Sat, 10 Jul 2010 05:34:45 -0700
+From: <tartanpion@machin.truc>
+
+  From: <tartanpion@machin.truc>
+Bye.
+EOM
+),
+    'skipmess: 3 not From tartanpion@machin.truc' ) ;
+
+ok( 1 == skipmess(
+<<'EOM'
+Date: Sat, 10 Jul 2010 05:34:45 -0700
+From: <kikiki@machin.truc>
+
+  From: <tartanpion@machin.truc>
+Bye.
+EOM
+),
+    'skipmess: 4 not From tartanpion@machin.truc' ) ;
+
+
+
+
+        undef @skipmess ;
+        note( 'Leaving  tests_skipmess_neg()' ) ;
+        return ;
+}
+
+
 sub skipmess
 {
         my ( $string ) = @_ ;
@@ -12154,25 +14061,25 @@
         is(    'NA', bytes_display_string( undef ), 'bytes_display_string: undef   => NA' ) ;
         is(    'NA', bytes_display_string( 'blabla' ), 'bytes_display_string: blabla   => NA' ) ;
 
-        ok(    '0.000 KiB' eq bytes_display_string(       0 ), 'bytes_display_string:       0' ) ;
-        ok(    '0.001 KiB' eq bytes_display_string(       1 ), 'bytes_display_string:       1' ) ;
-        ok(    '0.010 KiB' eq bytes_display_string(      10 ), 'bytes_display_string:      10' ) ;
-        ok(    '1.000 MiB' eq bytes_display_string( 1_048_575 ), 'bytes_display_string: 1_048_575' ) ;
-        ok(    '1.000 MiB' eq bytes_display_string( 1_048_576 ), 'bytes_display_string: 1_048_576' ) ;
+        is(    '0.000 KiB', bytes_display_string(       0 ), 'bytes_display_string:       0' ) ;
+        is(    '0.001 KiB', bytes_display_string(       1 ), 'bytes_display_string:       1' ) ;
+        is(    '0.010 KiB', bytes_display_string(      10 ), 'bytes_display_string:      10' ) ;
+        is(    '1.000 MiB', bytes_display_string( 1_048_575 ), 'bytes_display_string: 1_048_575' ) ;
+        is(    '1.000 MiB', bytes_display_string( 1_048_576 ), 'bytes_display_string: 1_048_576' ) ;
 
-        ok(    '1.000 GiB' eq bytes_display_string( 1_073_741_823 ), 'bytes_display_string: 1_073_741_823 ' ) ;
-        ok(    '1.000 GiB' eq bytes_display_string( 1_073_741_824 ), 'bytes_display_string: 1_073_741_824 ' ) ;
+        is(    '1.000 GiB', bytes_display_string( 1_073_741_823 ), 'bytes_display_string: 1_073_741_823 ' ) ;
+        is(    '1.000 GiB', bytes_display_string( 1_073_741_824 ), 'bytes_display_string: 1_073_741_824 ' ) ;
 
-        ok(    '1.000 TiB' eq bytes_display_string( 1_099_511_627_775 ), 'bytes_display_string: 1_099_511_627_775' ) ;
-        ok(    '1.000 TiB' eq bytes_display_string( 1_099_511_627_776 ), 'bytes_display_string: 1_099_511_627_776' ) ;
+        is(    '1.000 TiB', bytes_display_string( 1_099_511_627_775 ), 'bytes_display_string: 1_099_511_627_775' ) ;
+        is(    '1.000 TiB', bytes_display_string( 1_099_511_627_776 ), 'bytes_display_string: 1_099_511_627_776' ) ;
 
-        ok(    '1.000 PiB' eq bytes_display_string( 1_125_899_906_842_623 ), 'bytes_display_string: 1_125_899_906_842_623' ) ;
-        ok(    '1.000 PiB' eq bytes_display_string( 1_125_899_906_842_624 ), 'bytes_display_string: 1_125_899_906_842_624' ) ;
+        is(    '1.000 PiB', bytes_display_string( 1_125_899_906_842_623 ), 'bytes_display_string: 1_125_899_906_842_623' ) ;
+        is(    '1.000 PiB', bytes_display_string( 1_125_899_906_842_624 ), 'bytes_display_string: 1_125_899_906_842_624' ) ;
 
-        ok( '1024.000 PiB' eq bytes_display_string( 1_152_921_504_606_846_975 ), 'bytes_display_string: 1_152_921_504_606_846_975' ) ;
-        ok( '1024.000 PiB' eq bytes_display_string( 1_152_921_504_606_846_976 ), 'bytes_display_string: 1_152_921_504_606_846_976' ) ;
+        is( '1024.000 PiB', bytes_display_string( 1_152_921_504_606_846_975 ), 'bytes_display_string: 1_152_921_504_606_846_975' ) ;
+        is( '1024.000 PiB', bytes_display_string( 1_152_921_504_606_846_976 ), 'bytes_display_string: 1_152_921_504_606_846_976' ) ;
 
-        ok( '1048576.000 PiB' eq bytes_display_string( 1_180_591_620_717_411_303_424 ), 'bytes_display_string: 1_180_591_620_717_411_303_424' ) ;
+        is( '1048576.000 PiB', bytes_display_string( 1_180_591_620_717_411_303_424 ), 'bytes_display_string: 1_180_591_620_717_411_303_424' ) ;
 
         #myprint(  bytes_display_string( 1_180_591_620_717_411_303_424 ), "\n" ) ;
 	note( 'Leaving  tests_bytes_display_string()' ) ;
@@ -12257,27 +14164,31 @@
         return ;
 }
 
-sub stats
+sub do_and_print_stats
 {
         my $mysync = shift ;
 
-        if ( ! $mysync->{stats} ) {
+        if ( ! $mysync->{can_do_stats} ) {
                 return ;
         }
 
         my $timeend = time ;
         my $timediff = $timeend - $mysync->{timestart} ;
 
-        my $timeend_str   = localtime $timeend ;
+        my $timeend_str   = localtimez( $timeend ) ;
+
+        my $cpu_time = cpu_time( $mysync ) ;
+        my $cpu_percent = cpu_percent( $mysync, $cpu_time, $timediff ) ;
+        my $cpu_percent_global = cpu_percent_global( $mysync, $cpu_percent ) ;
 
         my $memory_consumption_at_end = memory_consumption(  ) || 0 ;
         my $memory_consumption_at_start = $mysync->{ memory_consumption_at_start } || 0 ;
-        my $memory_ratio = ($max_msg_size_in_bytes) ?
-                mysprintf('%.1f', $memory_consumption_at_end / $max_msg_size_in_bytes) : 'NA' ;
+        my $memory_ratio = ( $mysync->{ biggest_message_transferred } ) ?
+                mysprintf( '%.1f', $memory_consumption_at_end / $mysync->{ biggest_message_transferred } ) : 'NA' ;
 
         # my $useheader_suggestion = useheader_suggestion( $mysync ) ;
         myprint(  "++++ Statistics\n" ) ;
-        myprint(  "Transfer started on                     : $timestart_str\n" ) ;
+        myprint(  "Transfer started on                     : $mysync->{ timestart_str }\n" ) ;
         myprint(  "Transfer ended on                       : $timeend_str\n" ) ;
         myprintf( "Transfer time                           : %.1f sec\n", $timediff ) ;
         myprint(  "Folders synced                          : $h1_folders_wanted_ct/$h1_folders_wanted_nb synced\n" ) ;
@@ -12285,8 +14196,8 @@
         myprint(  "(could be $nb_msg_skipped_dry_mode without dry mode)" ) if ( $mysync->{dry} ) ;
         myprint(  "\n" ) ;
         myprint(  "Messages skipped                        : $mysync->{ nb_msg_skipped }\n" ) ;
-        myprint(  "Messages found duplicate on host1       : $h1_nb_msg_duplicate\n" ) ;
-        myprint(  "Messages found duplicate on host2       : $h2_nb_msg_duplicate\n" ) ;
+        myprint(  "Messages found duplicate on host1       : $mysync->{ acc1 }->{ nb_msg_duplicate }\n" ) ;
+        myprint(  "Messages found duplicate on host2       : $mysync->{ acc2 }->{ nb_msg_duplicate }\n" ) ;
         myprint(  "Messages found crossduplicate on host2  : $mysync->{ h2_nb_msg_crossdup }\n" ) ;
         myprint(  "Messages void (noheader) on host1       : $mysync->{ h1_nb_msg_noheader }  ", useheader_suggestion( $mysync ), "\n" ) ;
         myprint(  "Messages void (noheader) on host2       : $h2_nb_msg_noheader\n" ) ;
@@ -12294,8 +14205,8 @@
         nb_messages_in_2_not_in_1( $mysync ) ;
         myprintf( "Messages found in host1 not in host2    : %s messages\n", $mysync->{ nb_messages_in_1_not_in_2 } ) ;
         myprintf( "Messages found in host2 not in host1    : %s messages\n", $mysync->{ nb_messages_in_2_not_in_1 } ) ;
-        myprint(  "Messages deleted on host1               : $mysync->{ h1_nb_msg_deleted }\n" ) ;
-        myprint(  "Messages deleted on host2               : $h2_nb_msg_deleted\n" ) ;
+        myprint(  "Messages deleted on host1               : $mysync->{ acc1 }->{ nb_msg_deleted }\n" ) ;
+        myprint(  "Messages deleted on host2               : $mysync->{ acc2 }->{ nb_msg_deleted }\n" ) ;
         myprintf( "Total bytes transferred                 : %s (%s)\n",
                 $mysync->{total_bytes_transferred},
                 bytes_display_string( $mysync->{total_bytes_transferred} ) ) ;
@@ -12311,10 +14222,10 @@
                  $memory_consumption_at_end / $KIBI / $KIBI,
                  $memory_consumption_at_start / $KIBI / $KIBI ) ;
         myprint( "Load end is                             : " . ( join( q{ }, loadavg(  ) ) || 'unknown' ), " on $mysync->{cpu_number} cores\n" ) ;
-
-        myprintf("Biggest message                         : %s bytes (%s)\n",
-                $max_msg_size_in_bytes,
-                bytes_display_string( $max_msg_size_in_bytes) ) ;
+        myprint( "CPU time and %cpu                       : $cpu_time sec $cpu_percent %cpu $cpu_percent_global %allcpus\n" ) ;
+        myprintf("Biggest message transferred             : %s bytes (%s)\n",
+                $mysync->{ biggest_message_transferred },
+                bytes_display_string( $mysync->{ biggest_message_transferred } ) ) ;
         myprint(  "Memory/biggest message ratio            : $memory_ratio\n" ) ;
         if ( $mysync->{ foldersizesatend } and $mysync->{ foldersizes } ) {
 
@@ -12440,7 +14351,7 @@
 }
 
 
-
+# Globals: $skipsize $wholeheaderifneeded
 sub parse_header_msg
 {
         my ( $mysync, $imap, $m_uid, $s_heads, $s_fir, $side, $s_hash ) = @_ ;
@@ -12463,9 +14374,7 @@
 
         #myprint( Data::Dumper->Dump( [ $head, \%useheader ] )  ) ;
 
-        my $headstr ;
-
-        $headstr = header_construct( $head, $side, $m_uid ) ;
+        my $headstr = header_construct( $mysync, $head, $side, $m_uid ) ;
 
         if ( ( ! $headstr ) and ( $mysync->{addheader} ) and ( $side eq 'Host1' ) ) {
                 my $header = add_header( $m_uid ) ;
@@ -12481,49 +14390,124 @@
         my $idate = $s_fir->{$m_uid}->{'INTERNALDATE'} ;
         $size = length $headstr  unless ( $size ) ;
         my $m_md5 = md5_base64( $headstr ) ;
-        $mysync->{ debug } and myprint( "$side: uid $m_uid sig $m_md5 size $size idate $idate\n" ) ;
+
         my $key ;
-        if ($skipsize) {
+        if ( $skipsize ) {
                 $key = "$m_md5";
         }
         else {
                 $key = "$m_md5:$size";
         }
-        # 0 return code is used to identify duplicate message hash
-        return 0 if exists $s_hash->{"$key"};
-        $s_hash->{"$key"}{'5'} = $m_md5;
-        $s_hash->{"$key"}{'s'} = $size;
-        $s_hash->{"$key"}{'D'} = $idate;
-        $s_hash->{"$key"}{'F'} = $flags;
-        $s_hash->{"$key"}{'m'} = $m_uid;
 
-        return( 1 ) ;
+        if ( exists $s_hash->{"$key"} )
+        {
+                # 0 return code is used to identify duplicate message hash
+                my $dup_ref = $s_hash->{"$key"}->{'U'} ;
+                my $num = scalar( @{ $dup_ref } ) ;
+                push( @{ $dup_ref }, $m_uid ) ;
+                my $keydup = "$key#$num" ;
+                $mysync->{ debug } and myprint( "$side: uid $m_uid sig $keydup size $size idate $idate dup @{ $dup_ref }\n" ) ;
+                if ( $mysync->{ syncduplicates } )
+                {
+                        $s_hash->{"$keydup"}{'5'} = $m_md5 ;
+                        $s_hash->{"$keydup"}{'s'} = $size ;
+                        $s_hash->{"$keydup"}{'D'} = $idate ;
+                        $s_hash->{"$keydup"}{'F'} = $flags ;
+                        $s_hash->{"$keydup"}{'m'} = $m_uid ;
+                }
+                return 0 ;
+        }
+        else
+        {
+                $s_hash->{"$key"}{'5'} = $m_md5 ;
+                $s_hash->{"$key"}{'s'} = $size ;
+                $s_hash->{"$key"}{'D'} = $idate ;
+                $s_hash->{"$key"}{'F'} = $flags ;
+                $s_hash->{"$key"}{'m'} = $m_uid ;
+                $s_hash->{"$key"}{'U'} = [ $m_uid ] ; # ? or [  ] ?
+                $mysync->{ debug } and myprint( "$side: uid $m_uid sig $key size $size idate $idate\n" ) ;
+                return( 1 ) ;
+        }
+
+        # we should not be here
+        return ;
 }
 
+sub tests_header_construct
+{
+        note( 'Entering tests_header_construct()' ) ;
+
+        is( undef, header_construct(  ),  'header_construct: no args => undef' ) ;
+        my $mysync = {} ;
+        my $head = {
+                'key1' => [ 'val1_key1' ]
+        } ;
+        is( undef, header_construct( $mysync, $head, 'Host1', '1' ),  'header_construct: key1 val1_key1 no useheader => undef' ) ;
+
+        $mysync->{useheader}->{ 'KEY1'  } = 1 ;
+        is( 'KEY1: VAL1_KEY1', header_construct( $mysync, $head, 'Host1', '1' ),  'header_construct: key1 val1_key1 => KEY1: VAL1_KEY1' ) ;
+
+
+
+        $head = {
+                'key1' => [ 'val1_key1', 'val3_key1', 'val2_key1' ]
+        } ;
+        is( 'KEY1: VAL1_KEY1KEY1: VAL2_KEY1KEY1: VAL3_KEY1', header_construct( $mysync, $head, 'Host1', '1' ),
+        'header_construct: key1 val1_key1 val3_key1 val2_key1                => KEY1: VAL1_KEY1KEY1: VAL2_KEY1KEY1: VAL3_KEY1' ) ;
+
+        $head = {
+                'key1' => [ 'val1_key1', 'val3_key1', ' val2_key1' ]
+        } ;
+        is( 'KEY1: VAL1_KEY1KEY1: VAL2_KEY1KEY1: VAL3_KEY1', header_construct( $mysync, $head, 'Host1', '1' ),
+        'header_construct: key1 val1_key1 val3_key1  val2_key1               => KEY1: VAL1_KEY1KEY1: VAL2_KEY1KEY1: VAL3_KEY1' ) ;
+
+        $mysync->{useheader}->{ 'ALL'  } = 1 ;
+
+        is( 'KEY1: VAL1_KEY1KEY1: VAL2_KEY1KEY1: VAL3_KEY1', header_construct( $mysync, $head, 'Host1', '1' ),
+        'header_construct: key1 val1_key1 val3_key1  val2_key1 useheader ALL => KEY1: VAL1_KEY1KEY1: VAL2_KEY1KEY1: VAL3_KEY1' ) ;
+
+        $mysync->{skipheader} = 'key1' ;
+        is( undef, header_construct( $mysync, $head, 'Host1', '1' ),
+        'header_construct: key1 val1_key1 val3_key1  val2_key1 useheader ALL => undef' ) ;
+
+        $head = {
+                'key1' => [ 'val1_key1', 'val3_key1', ' val2_key1' ],
+                'key2' => [ 'val1_key2', 'val3_key2', ' val2_key2' ]
+        } ;
+        is( 'KEY2: VAL1_KEY2KEY2: VAL2_KEY2KEY2: VAL3_KEY2', header_construct( $mysync, $head, 'Host1', '1' ),
+        'header_construct: ... useheader ALL skipheader key1 => KEY2: VAL1_KEY2KEY2: VAL2_KEY2KEY2: VAL3_KEY2' ) ;
+
+
+        note( 'Leaving  tests_header_construct()' ) ;
+        return ;
+}
+
+
+# No global in header_construct
 sub header_construct
 {
+        my( $mysync, $head, $side, $m_uid ) = @_ ;
 
-        my( $head, $side, $m_uid ) = @_ ;
-
-        my $headstr ;
+        my @headstr ;
         foreach my $h ( sort keys  %{ $head }  ) {
-                next if ( not ( exists $useheader{ uc  $h  } )
-                      and ( not exists  $useheader{ 'ALL' } )
+                next if ( not ( exists $mysync->{useheader}->{ uc  $h  } )
+                      and ( not exists $mysync->{useheader}->{ 'ALL' } )
                 ) ;
-                foreach my $val ( sort @{$head->{$h}} ) {
+                foreach my $val ( @{$head->{$h}} ) {
 
                         my $H = header_line_normalize( $h, $val ) ;
 
                         # show stuff in debug mode
-                        $sync->{ debug } and myprint( "$side uid $m_uid header [$H]", "\n" ) ;
+                        $mysync->{ debug } and myprint( "$side uid $m_uid header [$H]", "\n" ) ;
 
-                        if ($skipheader and $H =~ m/$skipheader/xi) {
-                                $sync->{ debug } and myprint( "$side uid $m_uid skipping header [$H]\n" ) ;
+                        if ( $mysync->{skipheader} and $H =~ m/$mysync->{skipheader}/xi) {
+                                $mysync->{ debug } and myprint( "$side uid $m_uid skipping header [$H]\n" ) ;
                                 next ;
                         }
-                        $headstr .= "$H" ;
+                        push @headstr, $H ;
                 }
         }
+        my $headstr = join( '', sort @headstr ) || undef ;
         return( $headstr ) ;
 }
 
@@ -12655,7 +14639,6 @@
         is( q{}, nthline( 'W/tmp/tests/noexist.txt', 2 ), 'nthline: 2nd getting empty string from inexisting W/tmp/tests/noexist.txt' ) ;
 
         ok( (-d 'W/tmp/tests/' or  mkpath( 'W/tmp/tests/' ) ), 'nthline: mkpath W/tmp/tests/' ) ;
-
         is( "L1\nL2\nL3\nL4\n" , string_to_file( "L1\nL2\nL3\nL4\n", 'W/tmp/tests/nthline.txt' ), 'nthline: put L1\nL2\nL3\nL4\n in W/tmp/tests/nthline.txt' ) ;
         is( 'L3' , nthline( 'W/tmp/tests/nthline.txt', 3 ), 'nthline: get L3 from W/tmp/tests/nthline.txt' ) ;
 
@@ -12689,21 +14672,44 @@
         }
 }
 
+sub tests_file_to_array
+{
+        note( 'Entering tests_file_to_array()' ) ;
 
-# Should be unit tested and then be used by file_to_string, refactoring file_to_string
+        is( undef, file_to_array(  ),           'file_to_array: no args => undef' ) ;
+	is( undef, file_to_array( '/noexist' ), 'file_to_array: /noexist => undef' ) ;
+	is( undef, file_to_array( '/' ),        'file_to_array: reading a directory => undef' ) ;
+
+        ok( (-d 'W/tmp/tests/' or  mkpath( 'W/tmp/tests/' ) ), 'file_to_array: mkpath W/tmp/tests/' ) ;
+        is( "L1\nL2\nL3\nL4\n" , string_to_file( "L1\nL2\nL3\nL4\n", 'W/tmp/tests/file_to_array.txt' ), 'file_to_array: put L1\nL2\nL3\nL4\n in W/tmp/tests/file_to_array.txt' ) ;
+        is_deeply( [ "L1\n", "L2\n", "L3\n", "L4\n" ] , [ file_to_array( 'W/tmp/tests/file_to_array.txt' ) ], 'file_to_array: get back L1\n L2\n L3\n L4\n from W/tmp/tests/file_to_array.txt' ) ;
+
+        note( 'Leaving  tests_file_to_array()' ) ;
+        return ;
+}
+
 sub file_to_array
 {
 
         my( $file ) = shift ;
+	if ( ! $file )    { return ; }
+	if ( ! -e $file ) { return ; }
+	if ( ! -f $file ) { return ; }
+	if ( ! -r $file ) { return ; }
+        
         my @string ;
 
-        open my $FILE, '<', $file or do {
+        if ( open my $FILE, '<', $file )
+        {
+                @string = <$FILE> ;
+                close $FILE ;
+                return( @string ) ;
+        }
+        else
+        {
 		myprint( "Error reading file $file : $OS_ERROR\n" ) ;
 		return ;
-	} ;
-        @string = <$FILE> ;
-        close $FILE ;
-        return( @string ) ;
+	}
 }
 
 
@@ -12735,15 +14741,8 @@
 	if ( ! -e $file ) { return ; }
 	if ( ! -f $file ) { return ; }
 	if ( ! -r $file ) { return ; }
-        my @string ;
-        if ( open my $FILE, '<', $file ) {
-		@string = <$FILE> ;
-		close $FILE ;
-		return( join q{}, @string ) ;
-	}else{
-		myprint( "Error reading file $file : $OS_ERROR\n" ) ;
-		return ;
-	}
+        
+        return( join q{}, file_to_array( $file ) ) ;
 }
 
 
@@ -13157,7 +15156,7 @@
 {
 	note( 'Entering tests_version_from_rcs()' ) ;
 
-	is( undef, version_from_rcs(  ), 'version_from_rcs: no args => UNKNOWN' ) ;
+	is( undef, version_from_rcs(  ), 'version_from_rcs: no args => undef' ) ;
 	is( 1.831, version_from_rcs( q{imapsync,v 1.831 2017/08/27} ), 'version_from_rcs: imapsync,v 1.831 2017/08/27 => 1.831' ) ;
 	is( 'UNKNOWN', version_from_rcs( 1.831 ), 'version_from_rcs:  1.831  => UNKNOWN' ) ;
 
@@ -13221,47 +15220,104 @@
 {
 	note( 'Entering tests_cpu_number()' ) ;
 
-        is( 1, is_an_integer( cpu_number(  ) ), "cpu_number: is_an_integer" ) ;
+        is( 1, is_integer( cpu_number(  ) ), "cpu_number: is_integer" ) ;
 	ok( 1 <= cpu_number(  ), "cpu_number: 1 or more" ) ;
         is( 1, cpu_number( 1 ), "cpu_number: 1 => 1" ) ;
         is( 1, cpu_number( $MINUS_ONE ), "cpu_number: -1 => 1" ) ;
         is( 1, cpu_number( 'lalala' ), "cpu_number: lalala => 1" ) ;
         is( $NUMBER_42, cpu_number( $NUMBER_42 ), "cpu_number: $NUMBER_42 => $NUMBER_42" ) ;
+
+        note( "cpu_number = " . cpu_number(  ) . "\n" ) ;
+        note( "hostname   = " . hostname(  ) . "\n" ) ;
+        SKIP: {
+                if ( ! ( 'i005' eq hostname() ) )
+                {
+                        skip( 'cpu_number on host != i005 (FreeBSD)', 1  ) ;
+                }
+                is( 4, cpu_number(  ), "cpu_number: on i005 (FreeBSD) => 4" ) ;
+        } ;
+ 
+        SKIP: {
+                if ( ! ( 'petite' eq hostname() ) )
+                {
+                        skip( 'cpu_number on host != petite (Linux)', 1  ) ;
+                }
+                is( 2, cpu_number(  ), "cpu_number: on petite (Linux) => 2" ) ;
+        } ;
+
+        SKIP: {
+                if ( ! ( skip_macosx(  ) ) )
+                {
+                        skip( 'cpu_number on host != polarhome macosx (Darwin MacOS X 10.7.5 Lion)', 1  ) ;
+                }
+                is( 2, cpu_number(  ), "cpu_number: on polarhome macosx (Darwin MacOS X 10.7.5 Lion) => 2" ) ;
+        } ;
+        
+        SKIP: {
+                if ( ! ( 'pcHPDV7-HP' eq hostname() ) )
+                {
+                        skip( 'cpu_number on host != pcHPDV7-HP (Windows 7, 64bits)', 1  ) ;
+                }
+                is( 2, cpu_number(  ), "cpu_number: on pcHPDV7-HP (Windows 7, 64bits) => 2" ) ;
+        } ;
+        
+        SKIP: {
+                if ( ! ( 'CUILLERE' eq hostname() ) )
+                {
+                        skip( 'cpu_number on host != CUILLERE (Windows XP, 32bits)', 1  ) ;
+                }
+                is( 1, cpu_number(  ), "cpu_number: on CUILLERE (Windows XP, 32bits) => 1" ) ;
+        } ;
+        
+
         note( 'Leaving  tests_cpu_number()' ) ;
 	return ;
 }
 
-sub cpu_number
-{
+
+sub cpu_number {
 
         my $cpu_number_forced = shift ;
 	# Well, here 1 is better than 0 or undef
 	my $cpu_number = 1 ; # Default value, erased if better found
 
         my @cpuinfo ;
-	if ( $ENV{"NUMBER_OF_PROCESSORS"} ) {
+	if ( $ENV{"NUMBER_OF_PROCESSORS"} )
+        {
 		# might be under a Windows system
 		$cpu_number = $ENV{"NUMBER_OF_PROCESSORS"} ;
-		$sync->{ debug } and myprint( "Number of processors found by env var NUMBER_OF_PROCESSORS: $cpu_number\n" ) ;
-	}elsif ( 'darwin' eq $OSNAME or 'freebsd' eq $OSNAME ) {
+		#myprint( "Number of processors found by env var NUMBER_OF_PROCESSORS: $cpu_number\n" ) ;
+	}
+        
+        if ( 'darwin' eq $OSNAME )
+        {
 		$cpu_number = backtick( "sysctl -n hw.ncpu" ) ;
 		chomp( $cpu_number ) ;
-                $sync->{ debug } and myprint( "Number of processors found by cmd 'sysctl -n hw.ncpu': $cpu_number\n" ) ;
-	}elsif ( ! -e '/proc/cpuinfo' ) {
-		$sync->{ debug } and myprint( "Number of processors not found so I might assume there is only 1\n" ) ;
-		$cpu_number = 1 ;
-	}elsif( @cpuinfo = file_to_array( '/proc/cpuinfo' ) ) {
-                $cpu_number = grep { /^processor/mxs } @cpuinfo ;
-                $sync->{ debug } and myprint( "Number of processors found via /proc/cpuinfo: $cpu_number\n" ) ;
+                #myprint( "Number of processors found by cmd 'sysctl -n hw.ncpu': $cpu_number\n" ) ;
 	}
-
-        if ( defined $cpu_number_forced ) {
+        
+        if ( 'freebsd' eq $OSNAME )
+        {
+		$cpu_number = backtick( "sysctl -n kern.smp.cpus" ) ;
+		chomp( $cpu_number ) ;
+                #myprint( "Number of processors found by cmd 'sysctl -n kern.smp.cpus': $cpu_number\n" ) ;
+	}
+        
+        if ( 'linux' eq $OSNAME && -e '/proc/cpuinfo' )
+        {
+		@cpuinfo = file_to_array( '/proc/cpuinfo' ) ;
+                $cpu_number = grep { /^processor/mxs } @cpuinfo ;
+                #myprint( "Number of processors found via /proc/cpuinfo: $cpu_number\n" ) ;
+	}
+	
+        if ( defined $cpu_number_forced )
+        {
                 $cpu_number = $cpu_number_forced ;
         }
+        
 	return( integer_or_1( $cpu_number ) ) ;
 }
 
-
 sub tests_integer_or_1
 {
         note( 'Entering tests_integer_or_1()' ) ;
@@ -13279,33 +15335,33 @@
 sub integer_or_1
 {
         my $number = shift ;
-        if ( is_an_integer( $number  ) ) {
+        if ( is_integer( $number  ) ) {
                 return $number ;
         }
         # else
         return 1 ;
 }
 
-sub tests_is_an_integer
+sub tests_is_integer
 {
-	note( 'Entering tests_is_an_integer()' ) ;
+	note( 'Entering tests_is_integer()' ) ;
 
-        is( undef, is_an_integer(  ), 'is_an_integer: no args => undef ' ) ;
-        ok( is_an_integer( 1 ), 'is_an_integer: 1 => yes ') ;
-        ok( is_an_integer( $NUMBER_42 ), 'is_an_integer: 42 => yes ') ;
-        ok( is_an_integer( "$NUMBER_42" ), 'is_an_integer: "$NUMBER_42" => yes ') ;
-        ok( is_an_integer( '42' ), 'is_an_integer: "42" => yes ') ;
-        ok( is_an_integer( $NUMBER_104_857_600 ), 'is_an_integer: 104_857_600 => yes') ;
-        ok( is_an_integer( "$NUMBER_104_857_600" ), 'is_an_integer: "$NUMBER_104_857_600" => yes') ;
-        ok( is_an_integer( '104857600' ), 'is_an_integer: 104857600 => yes') ;
-        ok( ! is_an_integer( 'blabla' ), 'is_an_integer: blabla => no' ) ;
-        ok( ! is_an_integer( q{} ), 'is_an_integer: empty string => no' ) ;
+        is( undef, is_integer(  ), 'is_integer: no args => undef ' ) ;
+        ok( is_integer( 1 ), 'is_integer: 1 => yes ') ;
+        ok( is_integer( $NUMBER_42 ), 'is_integer: 42 => yes ') ;
+        ok( is_integer( "$NUMBER_42" ), 'is_integer: "$NUMBER_42" => yes ') ;
+        ok( is_integer( '42' ), 'is_integer: "42" => yes ') ;
+        ok( is_integer( $NUMBER_104_857_600 ), 'is_integer: 104_857_600 => yes') ;
+        ok( is_integer( "$NUMBER_104_857_600" ), 'is_integer: "$NUMBER_104_857_600" => yes') ;
+        ok( is_integer( '104857600' ), 'is_integer: 104857600 => yes') ;
+        ok( ! is_integer( 'blabla' ), 'is_integer: blabla => no' ) ;
+        ok( ! is_integer( q{} ), 'is_integer: empty string => no' ) ;
 
-	note( 'Leaving  tests_is_an_integer()' ) ;
+	note( 'Leaving  tests_is_integer()' ) ;
         return ;
 }
 
-sub is_an_integer
+sub is_integer
 {
         my $number = shift ;
         if ( ! defined $number ) { return ; }
@@ -13470,48 +15526,38 @@
 	is( undef, load_and_delay(  ), 'load_and_delay: no args => undef ' ) ;
 	is( undef, load_and_delay( 1 ), 'load_and_delay: not 4 args => undef ' ) ;
 	is( undef, load_and_delay( 0, 1, 1, 1 ), 'load_and_delay: division per 0 => undef ' ) ;
-	is(  0, load_and_delay( 1, 1, 1, 1 ), 'load_and_delay: one core, loads are all 1 => ok ' ) ;
-	is(  0, load_and_delay( 1, 1, 1, 1, 'lalala' ), 'load_and_delay: five arguments is ok' ) ;
-	is(  0, load_and_delay( 2, 2, 2, 2 ), 'load_and_delay: two core, loads are all 2 => ok ' ) ;
-	is(  0, load_and_delay( 2, 2, 4, 5 ), 'load_and_delay: two core, load1m     is 2 => ok ' ) ;
 
-# Old behavior, rather strict
-        # is(  0, load_and_delay( 1, 0, 0, 0 ), 'load_and_delay: one core, load1m=0 load5m=0 load15m=0 => 0 ' ) ;
-	# is(  0, load_and_delay( 1, 0, 0, 2 ), 'load_and_delay: one core, load1m=0 load5m=0 load15m=2 => 0 ' ) ;
-	# is(  0, load_and_delay( 1, 0, 2, 0 ), 'load_and_delay: one core, load1m=0 load5m=2 load15m=0 => 0 ' ) ;
-	# is(  0, load_and_delay( 1, 0, 2, 2 ), 'load_and_delay: one core, load1m=0 load5m=2 load15m=2 => 0 ' ) ;
-	# is(  1, load_and_delay( 1, 2, 0, 0 ), 'load_and_delay: one core, load1m=2 load5m=0 load15m=0 => 1 ' ) ;
-	# is(  1, load_and_delay( 1, 2, 0, 2 ), 'load_and_delay: one core, load1m=2 load5m=0 load15m=2 => 1 ' ) ;
-	# is(  5, load_and_delay( 1, 2, 2, 0 ), 'load_and_delay: one core, load1m=2 load5m=2 load15m=0 => 5 ' ) ;
-	# is( 15, load_and_delay( 1, 2, 2, 2 ), 'load_and_delay: one core, load1m=2 load5m=2 load15m=2 => 15 ' ) ;
+#       ( $cpu_num, $avg_1_min, $avg_5_min, $avg_15_min )
 
-	# is(  0, load_and_delay( 4, 0, 2, 2 ), 'load_and_delay: four core, load1m=0 load5m=2 load15m=2 => 0 ' ) ;
-	# is(  1, load_and_delay( 4, 8, 0, 0 ), 'load_and_delay: four core, load1m=2 load5m=0 load15m=0 => 1 ' ) ;
-	# is(  1, load_and_delay( 4, 8, 0, 2 ), 'load_and_delay: four core, load1m=2 load5m=0 load15m=2 => 1 ' ) ;
-	# is(  5, load_and_delay( 4, 8, 8, 0 ), 'load_and_delay: four core, load1m=2 load5m=2 load15m=0 => 5 ' ) ;
-	# is( 15, load_and_delay( 4, 8, 8, 8 ), 'load_and_delay: four core, load1m=2 load5m=2 load15m=2 => 15 ' ) ;
+        is(  0, load_and_delay( 1, 1, 1, 1 ), 'load_and_delay: one core, loads are all 1 => ok ' ) ;
+        is(  0, load_and_delay( 1, 1, 1, 1, 'lalala' ), 'load_and_delay: five arguments is ok' ) ;
+        is(  0, load_and_delay( 2, 2, 2, 2 ), 'load_and_delay: two core, loads are all 2 => ok ' ) ;
+        is(  0, load_and_delay( 2, 2, 4, 5 ), 'load_and_delay: two core, load1m     is 2 => ok ' ) ;
 
-# New behavior, tolerate more load
 
-        is(  0, load_and_delay( 1, 0, 0, 0 ), 'load_and_delay: one core, load1m=0 load5m=0 load15m=0 => 0 ' ) ;
-        is(  0, load_and_delay( 1, 0, 0, 2 ), 'load_and_delay: one core, load1m=0 load5m=0 load15m=2 => 0 ' ) ;
-        is(  0, load_and_delay( 1, 0, 2, 0 ), 'load_and_delay: one core, load1m=0 load5m=2 load15m=0 => 0 ' ) ;
-        is(  0, load_and_delay( 1, 0, 2, 2 ), 'load_and_delay: one core, load1m=0 load5m=2 load15m=2 => 0 ' ) ;
-        is(  0, load_and_delay( 1, 2, 0, 0 ), 'load_and_delay: one core, load1m=2 load5m=0 load15m=0 => 1 ' ) ;
-        is(  0, load_and_delay( 1, 2, 0, 2 ), 'load_and_delay: one core, load1m=2 load5m=0 load15m=2 => 1 ' ) ;
-        is(  0, load_and_delay( 1, 2, 2, 0 ), 'load_and_delay: one core, load1m=2 load5m=2 load15m=0 => 5 ' ) ;
-        is(  0, load_and_delay( 1, 2, 2, 2 ), 'load_and_delay: one core, load1m=2 load5m=2 load15m=2 => 15 ' ) ;
+        is(  0, load_and_delay( 1, 0, 0, 0 ),       'load_and_delay: one core, load1m=0 load5m=0 load15m=0 => 0 ' ) ;
+        is(  0, load_and_delay( 1, 0, 0, 2 ),       'load_and_delay: one core, load1m=0 load5m=0 load15m=2 => 0 ' ) ;
+        is(  0, load_and_delay( 1, 0, 2, 0 ),       'load_and_delay: one core, load1m=0 load5m=2 load15m=0 => 0 ' ) ;
+        is(  0, load_and_delay( 1, 0, 2, 2 ),       'load_and_delay: one core, load1m=0 load5m=2 load15m=2 => 0 ' ) ;
+        is(  0, load_and_delay( 1, 0, 3, 3 ),       'load_and_delay: one core, load1m=0 load5m=3 load15m=3 => 0 ' ) ;
+        is(  0, load_and_delay( 1, 0, 4, 4 ),       'load_and_delay: one core, load1m=0 load5m=3 load15m=3 => 0 ' ) ;
+        is(  0, load_and_delay( 1, 2, 0, 0 ),       'load_and_delay: one core, load1m=2 load5m=0 load15m=0 => 0 ' ) ;
+        is(  0, load_and_delay( 1, 2, 0, 2 ),       'load_and_delay: one core, load1m=2 load5m=0 load15m=2 => 0 ' ) ;
+        is(  0, load_and_delay( 1, 2, 2, 0 ),       'load_and_delay: one core, load1m=2 load5m=2 load15m=0 => 0 ' ) ;
+        is(  0, load_and_delay( 1, 2, 2, 2 ),       'load_and_delay: one core, load1m=2   load5m=2   load15m=2   => 0 ' ) ;
+        is(  0, load_and_delay( 1, 2.9, 2.9, 2.9 ), 'load_and_delay: one core, load1m=2.9 load5m=2.9 load15m=2.9 => 0 ' ) ;
 
-        is(  1, load_and_delay( 1, 4, 0, 0 ), 'load_and_delay: one core, load1m=4 load5m=0 load15m=0 => 1 ' ) ;
-        is(  1, load_and_delay( 1, 4, 0, 4 ), 'load_and_delay: one core, load1m=4 load5m=0 load15m=4 => 1 ' ) ;
-        is(  5, load_and_delay( 1, 4, 4, 0 ), 'load_and_delay: one core, load1m=4 load5m=4 load15m=0 => 5 ' ) ;
-        is( 15, load_and_delay( 1, 4, 4, 4 ), 'load_and_delay: one core, load1m=4 load5m=4 load15m=4 => 15 ' ) ;
+        is(  0, load_and_delay( 1, 3, 0, 0 ),       'load_and_delay: one core, load1m=3 load5m=0   load15m=0   => 0 ' ) ;
+        is(  0, load_and_delay( 1, 3, 2.9, 2.9 ),   'load_and_delay: one core, load1m=3 load5m=2.9 load15m=2.9 => 0 ' ) ;
+        is(  0, load_and_delay( 1, 3, 3, 2.9 ),     'load_and_delay: one core, load1m=3 load5m=3   load15m=2.9 => 0 ' ) ;
+        is(  0, load_and_delay( 1, 3, 3, 3 ),       'load_and_delay: one core, load1m=3 load5m=3   load15m=3   => 0 ' ) ;
 
-        is(  0, load_and_delay( 4, 0, 9, 9 ), 'load_and_delay: four core, load1m=0 load5m=9 load15m=9 => 0 ' ) ;
-        is(  1, load_and_delay( 4, 9, 0, 0 ), 'load_and_delay: four core, load1m=9 load5m=0 load15m=0 => 1 ' ) ;
-        is(  1, load_and_delay( 4, 9, 0, 9 ), 'load_and_delay: four core, load1m=9 load5m=0 load15m=9 => 1 ' ) ;
-        is(  5, load_and_delay( 4, 9, 9, 0 ), 'load_and_delay: four core, load1m=9 load5m=9 load15m=0 => 5 ' ) ;
-        is( 15, load_and_delay( 4, 9, 9, 9 ), 'load_and_delay: four core, load1m=9 load5m=9 load15m=9 => 15 ' ) ;
+        is(  1, load_and_delay( 1, 6, 0, 0 ),       'load_and_delay: one core, load1m=3 load5m=0   load15m=0   => 1 ' ) ;
+        is(  1, load_and_delay( 1, 6, 5.9, 5.9 ),   'load_and_delay: one core, load1m=3 load5m=2.9 load15m=2.9 => 1 ' ) ;
+        is(  5, load_and_delay( 1, 6, 6, 5.9 ),     'load_and_delay: one core, load1m=3 load5m=3   load15m=2.9 => 5 ' ) ;
+        is(  15, load_and_delay( 1, 6, 6, 6 ),      'load_and_delay: one core, load1m=3 load5m=3   load15m=3 => 15 ' ) ;
+
+
 
         note( 'Leaving  tests_load_and_delay()' ) ;
         return ;
@@ -13531,12 +15577,123 @@
 	# Let divide by number of cores
 	( $avg_1_min, $avg_5_min, $avg_15_min ) = map { $_ / $cpu_num } ( $avg_1_min, $avg_5_min, $avg_15_min ) ;
 	# One of avg ok => ok, for now it is a OR
-	if ( $avg_1_min <= 2 ) { return 0 ; }
-	if ( $avg_5_min <= 2 ) { return 1 ; } # Retry in 1 minute
-	if ( $avg_15_min <= 2 ) { return 5 ; } # Retry in 5 minutes
+	if ( $avg_1_min < 6 ) { return 0 ; }
+	if ( $avg_5_min < 6 ) { return 1 ; } # Retry in 1 minute
+	if ( $avg_15_min < 6 ) { return 5 ; } # Retry in 5 minutes
 	return 15 ; # Retry in 15 minutes
 }
 
+
+sub tests_cpu_time
+{
+        note( 'Entering tests_cpu_time()' ) ;
+
+        ok( is_number( cpu_time(  ) ),  'cpu_time: no args => a number' ) ;
+
+        my $mysync = {  } ;
+        $mysync->{ debug } = 1 ;
+        ok( is_number( cpu_time( $mysync ) ),  'cpu_time: {} => a number' ) ;        
+
+        note( 'Leaving  tests_cpu_time()' ) ;
+        return ;
+}
+
+sub cpu_time
+{
+        my $mysync = shift ;
+        
+        my @cpu_times = times ;
+        if ( ! @cpu_times ) { return ; }
+        
+        my $cpu_time = 0 ;
+        # last element is the sum of all elements
+        $cpu_time = ( map { $cpu_time += $_ } @cpu_times )[ -1 ] ;
+        $mysync->{ debug } and myprint( join(' + ', @cpu_times), " = $cpu_time\n" ) ;
+
+        return $cpu_time ;
+}
+
+
+sub tests_cpu_percent
+{
+        note( 'Entering tests_cpu_percent()' ) ;
+
+        is( '0.0',  cpu_percent(  ),  'cpu_percent: no args => 0.0' ) ;
+        my $mysync = {  } ;
+        $mysync->{ debug } = 1 ;
+        is( '0.0', cpu_percent( $mysync ),   'cpu_percent: {} => 0.0' ) ;
+        is( '0.0', cpu_percent( $mysync, 0 ),     'cpu_percent: {} 0 => 0.0' ) ;
+        is( '300.0', cpu_percent( $mysync, 3 ),     'cpu_percent: {} 3 => 300.0' ) ;
+        is( '30.0', cpu_percent( $mysync, 3, 10 ), 'cpu_percent: {} 3 10 => 30.0' ) ;
+        is( '0.0', cpu_percent( $mysync, 0, 10 ), 'cpu_percent: {} 0 10 => 0.0' ) ;
+
+        note( 'Leaving  tests_cpu_percent()' ) ;
+        return ;
+}
+
+sub cpu_percent
+{
+        my $mysync   = shift ;
+        my $cpu_time = shift || 0 ;
+        my $timediff = shift || 1 ; # no division by 0
+
+        if ( $cpu_time > $timediff )
+        {
+                myprint( "Strange: cpu_time $cpu_time > timediff $timediff\n" ) ;
+        }
+        my $cpu_percent = 0 ;
+        $cpu_percent = mysprintf( '%.1f', 100 * $cpu_time / $timediff ) ;
+        $mysync->{ debug } and myprint( "cpu_percent: $cpu_percent \n" ) ;
+        
+        return $cpu_percent ;
+        
+}
+
+sub tests_cpu_percent_global
+{
+        note( 'Entering tests_cpu_percent_global()' ) ;
+
+        is( '0.0',  cpu_percent_global(  ),  'cpu_percent_global: no args => 0' ) ;
+        my $mysync = {  } ;
+        $mysync->{ debug } = 1 ;
+        is( '0.0',  cpu_percent_global( $mysync      ),     'cpu_percent_global: {} => 0' ) ;
+        is( '0.0',  cpu_percent_global( $mysync,   0 ),  'cpu_percent_global: {} 0 => 0' ) ;
+
+        SKIP: {
+                if ( ! ( 'i005' eq hostname() ) )
+                {
+                        skip( 'cpu_percent_global on host != i005', 1  ) ;
+                }
+                is( '25.0', cpu_percent_global( $mysync, 100 ), 'cpu_percent_global: {} 100 => 25 on host i005' ) ;
+        } ;
+ 
+        SKIP: {
+                if ( ! ( 'petite' eq hostname() ) )
+                {
+                        skip( 'cpu_percent_global on host != petite', 1  ) ;
+                }
+                is( '50.0', cpu_percent_global( $mysync, 100 ), 'cpu_percent_global: {} 100 => 50 on host petite' ) ;
+        } ;
+
+        note( 'Leaving  tests_cpu_percent_global()' ) ;
+        return ;
+}
+
+sub cpu_percent_global
+{
+        my $mysync      = shift ;
+        my $cpu_percent = shift || 0 ;
+        
+        my $cpu_number = cpu_number(  ) ;
+        
+        my $cpu_percent_global ;
+        $cpu_percent_global = mysprintf( '%.1f', $cpu_percent / $cpu_number ) ;
+        $mysync->{ debug } and myprint( "cpu_percent_global: $cpu_percent_global \n" ) ;
+       
+        return( $cpu_percent_global ) ;
+}
+
+
 sub ram_memory_info
 {
         # In GigaBytes so division by 1024 * 1024 * 1024
@@ -13623,7 +15780,7 @@
                 #myprint( "ps: @ps" ) ;
 
                 # Use IPC::Open3 from perlcrit -3
-                # It stalls on Darwin, don't understand why!
+                # But it stalls on Darwin, I don't understand why!
                 #my @ps = backtick( "ps -o vsz -p @pid" ) ;
                 #myprint( "ps: @ps" ) ;
 
@@ -13795,7 +15952,7 @@
         else
         {
                 # Found only embedded dynamic lib
-                myprint( "Found nothing\n" ) ;
+                myprint( "Found only embedded dynamic lib. Good!\n" ) ;
                 return 1 ;
         }
 }
@@ -13819,22 +15976,22 @@
 
 sub search_dyn_lib_locale_darwin
 {
-        my $command = qq{ lsof -p $PID | grep ' REG ' | grep .dylib | grep -v '/par-' } ;
+        my $command = qq{ lsof -p $PROCESS_ID | grep ' REG ' | grep .dylib | grep -v '/par-' } ;
         myprint( "Search non embeded dynamic libs with the command: $command\n" ) ;
         return backtick( $command ) ;
 }
 
 sub search_dyn_lib_locale_linux
 {
-        my $command = qq{ lsof -p $PID | grep ' REG ' | grep -v '/tmp/par-' | grep '\.so' } ;
+        my $command = qq{ lsof -p $PROCESS_ID | grep ' REG ' | grep -v '/tmp/par-' | grep '\.so' } ;
         myprint( "Search non embeded dynamic libs with the command: $command\n" ) ;
         return backtick( $command ) ;
 }
 
 sub search_dyn_lib_locale_MSWin32
 {
-        my $command = qq{ Listdlls.exe $PID|findstr Strawberry } ;
-        # $command = qq{ Listdlls.exe $PID|findstr Strawberry } ;
+        my $command = qq{ Listdlls.exe $PROCESS_ID|findstr Strawberry } ;
+        # $command = qq{ Listdlls.exe $PROCESS_ID|findstr Strawberry } ;
         myprint( "Search non embeded dynamic libs with the command: $command\n" ) ;
         return qx( $command ) ;
 }
@@ -14229,6 +16386,8 @@
         {
                 myprint( "The sync is not finished, there are ",
                 $mysync->{ nb_messages_in_1_not_in_2 },
+                " among ",
+                $nb_identified_h1_messages,
                 " identified messages in host1 that are not on host2.\n" ) ;
         }
 
@@ -14242,7 +16401,7 @@
         }
         else
         {
-                myprint( "There is no unidentified message\n" ) ;
+                myprint( "There is no unidentified message on host1.\n" ) ;
         }
 
         return ;
@@ -14277,9 +16436,11 @@
         {
                 myprint( "The sync is not strict, there are ",
                         $mysync->{ nb_messages_in_2_not_in_1 },
-                        " messages in host2 that are not on host1.",
-                        " Use --delete2 to delete them and have a strict sync.",
-                        " ($nb_identified_h2_messages identified messages in host2)\n" ) ;
+                        " among ",
+                        $nb_identified_h2_messages,
+                        " identified messages in host2 that are not on host1.",
+                        " Use --delete2 and sync again to delete them and have a strict sync.\n" 
+                ) ;
         }
         return ;
 }
@@ -15053,24 +17214,25 @@
         my( $mysync ) = shift ;
 
         # When aborting another process the log file name finishes with "_abort.txt"
-        my $abort_suffix = ( $mysync->{abort} ) ? '_abort' : q{} ;
+        my $abort_suffix = ( $mysync->{ abort } ) ? '_abort' : q{} ;
+        
         # When acting as a proxy the log file name finishes with "_remote.txt"
-        # proxy mode is not done yet
-        my $remote_suffix = ( $mysync->{remote} ) ? '_remote' : q{} ;
+        # proxy mode is not done in imapsync, it is done by proximapsync
+        my $remote_suffix = ( $mysync->{ remote } ) ? '_remote' : q{} ;
 
         my $suffix = (
-                filter_forbidden_characters( slash_to_underscore( $mysync->{user1} ) ) || q{} )
+                filter_forbidden_characters( slash_to_underscore( $mysync->{ user1 } ) ) || q{} )
                 . '_'
-                . ( filter_forbidden_characters( slash_to_underscore( $mysync->{user2} ) ) || q{} )
+                . ( filter_forbidden_characters( slash_to_underscore( $mysync->{ user2 } ) ) || q{} )
                 . $remote_suffix . $abort_suffix ;
 
-        $mysync->{logdir}  = defined $mysync->{logdir}  ? $mysync->{logdir}  : $DEFAULT_LOGDIR ;
+        $mysync->{ logdir }  = defined $mysync->{ logdir }  ? $mysync->{ logdir }  : $DEFAULT_LOGDIR ;
 
-        $mysync->{logfile} = defined $mysync->{logfile}
-                ? "$mysync->{logdir}/$mysync->{logfile}"
-                : logfile( $mysync->{timestart}, $suffix, $mysync->{logdir} ) ;
+        $mysync->{ logfile } = defined $mysync->{ logfile }
+                ? "$mysync->{ logdir }/$mysync->{ logfile }"
+                : logfile( $mysync->{ timestart }, $suffix, $mysync->{ logdir } ) ;
 
-        return( $mysync->{logfile} ) ;
+        return( $mysync->{ logfile } ) ;
 }
 
 sub tests_logfile
@@ -15082,7 +17244,8 @@
                 skip( 'Too hard to have a well known timezone on Windows', 10 ) if ( 'MSWin32' eq $OSNAME ) ;
 
                 local $ENV{TZ} = 'GMT' ;
-                { POSIX::tzset unless ('MSWin32' eq $OSNAME) ;
+                {
+                        POSIX::tzset unless ('MSWin32' eq $OSNAME) ;
                         is( '1970_01_01_00_00_00_000.txt', logfile(  ),           'logfile: no args    => 1970_01_01_00_00_00.txt' ) ;
                         is( '1970_01_01_00_00_00_000.txt', logfile( 0 ),          'logfile: 0          => 1970_01_01_00_00_00.txt' ) ;
                         is( '1970_01_01_00_01_01_000.txt', logfile( 61 ),         'logfile: 0          => 1970_01_01_00_01_01.txt' ) ;
@@ -15129,6 +17292,38 @@
 }
 
 
+sub tests_localtimez
+{
+        note( 'Entering tests_localtimez()' ) ;
+
+        SKIP: {
+                # Too hard to have a well known timezone on Windows
+                skip( 'Too hard to have a well known timezone on Windows', 1 ) if ( 'MSWin32' eq $OSNAME ) ;
+                local $ENV{TZ} = 'GMT' ;
+                like( localtimez( 0 ), qr'1970-01-01 00:00:00 \+0000 (GMT|UTC)', 'localtimez: 0 => match 1970-01-01 00:00:00 +0000 GMT' ) ;
+        }
+
+        is( localtimez( ), localtimez( time ), 'localtimez: undef => equals currrent' ) ;
+        note( 'Leaving  tests_localtimez()' ) ;
+        return ;
+}
+
+
+
+sub localtimez
+{
+        my $time = shift ;
+        
+        $time = defined( $time ) ? $time : time ;
+        
+        my $datetimestr = POSIX::strftime( '%A %e %B %Y-%m-%d %H:%M:%S %z %Z', localtime( $time ) ) ;
+
+        #myprint( "$datetimestr\n" ) ;
+        return $datetimestr ;        
+}
+
+
+
 
 sub tests_slash_to_underscore
 {
@@ -15227,6 +17422,8 @@
         is( undef, teelaunch( $mysync ), 'teelaunch: arg empty {} => undef' ) ;
         $mysync->{logfile} = q{} ;
         is( undef, teelaunch( $mysync ), 'teelaunch: logfile empty string => undef' ) ;
+
+        # First time, learning IO::Tee intrasics
         $mysync->{logfile} = 'W/tmp/tests/tests_teelaunch.txt' ;
         isa_ok( my $tee = teelaunch( $mysync ), 'IO::Tee' , 'teelaunch: logfile W/tmp/tests/tests_teelaunch.txt' ) ;
         is( 1, print( $tee "Hi!\n" ), 'teelaunch: write Hi!') ;
@@ -15234,6 +17431,38 @@
         is( 1, print( $tee "Hoo\n" ), 'teelaunch: write Hoo') ;
         is( "Hi!\nHoo\n", file_to_string( 'W/tmp/tests/tests_teelaunch.txt' ), 'teelaunch: reading W/tmp/tests/tests_teelaunch.txt is Hi!\nHoo\n' ) ;
 
+        # closing so tee won't be happy
+        close $mysync->{logfile_handle} ;
+        is( undef, print( $tee "Argh1\n" ), 'teelaunch: write Argh1') ;
+        is( undef, print( $tee "Argh2\n" ), 'teelaunch: write Argh2') ;
+        # write not done
+        is( "Hi!\nHoo\n", file_to_string( 'W/tmp/tests/tests_teelaunch.txt' ), 'teelaunch: reading W/tmp/tests/tests_teelaunch.txt is still Hi!\nHoo\n' ) ;
+        print join( ' ', $tee->handles ), "\n";
+        is( 2, scalar $tee->handles, 'teelaunch: 2 handles') ;
+        shift @{*{$tee}};
+        print join(' ', $tee->handles), "\n" ;
+        is( 1, scalar $tee->handles, 'teelaunch: 1 handle') ;
+        is( 1, print( $tee "Argh3\n" ), 'teelaunch: write Argh3 yeah') ;
+
+        shift @{*{$tee}};
+        # will not print anything now
+        is( 0, scalar $tee->handles, 'teelaunch: 0 handle') ;
+        is( 1, print( $tee "Argh 4\n" ), 'teelaunch: write Argh4 no') ;
+
+        # Second time, lesson learnt IO::Tee
+        $mysync->{logfile} = 'W/tmp/tests/tests_teelaunch2.txt' ;
+        isa_ok( $tee = teelaunch( $mysync ), 'IO::Tee' , 'teelaunch: logfile W/tmp/tests/tests_teelaunch2.txt' ) ;
+        is( 1, print( $tee "Hi!\n" ), 'teelaunch: write Hi!') ;
+        is( "Hi!\n", file_to_string( 'W/tmp/tests/tests_teelaunch2.txt' ), 'teelaunch: reading W/tmp/tests/tests_teelaunch2.txt is Hi!\n' ) ;
+        is( 1, print( $tee "Hoo\n" ), 'teelaunch: write Hoo') ;
+        is( "Hi!\nHoo\n", file_to_string( 'W/tmp/tests/tests_teelaunch2.txt' ), 'teelaunch: reading W/tmp/tests/tests_teelaunch2.txt is Hi!\nHoo\n' ) ;
+
+        is( 1, teefinish( $mysync ), 'teefinish: return 1') ;
+        is( 1, print( $tee "Argh1\n" ), 'teelaunch: write Argh1') ;
+        is( 1, print( $tee "Argh2\n" ), 'teelaunch: write Argh2') ;
+        is( "Hi!\nHoo\n", file_to_string( 'W/tmp/tests/tests_teelaunch2.txt' ), 'teelaunch: reading W/tmp/tests/tests_teelaunch2.txt is still Hi!\nHoo\n' ) ;
+        is( 1, teefinish( $mysync ), 'teefinish: still return 1') ;
+
         note( 'Leaving  tests_teelaunch()' ) ;
         return ;
 }
@@ -15268,6 +17497,28 @@
         return $tee ;
 }
 
+sub teefinish
+{
+        my $mysync = shift ;
+
+        if ( ! defined( $mysync ) ) { return ; }
+
+        my $tee = $mysync->{tee} ;
+
+        if ( ! defined( $tee ) ) { return ; }
+
+        if ( 2 == scalar $tee->handles )
+        {
+                shift @{*{$tee}};
+        }
+        else
+        {
+                # nothing
+        }
+        return scalar $tee->handles ;
+}
+
+
 sub getpwuid_any_os
 {
         my $uid = shift ;
@@ -15278,15 +17529,44 @@
 
 }
 
+
+
+sub abortifneeded
+{
+        my $mysync = shift ;
+        if ( -e $mysync->{ abortfile } )
+        {
+                myprint( "Asked to terminate by file $mysync->{ abortfile }\n" ) ;
+                do_and_print_stats( $mysync ) ;
+                myprint( "You should resynchronize those accounts by running a sync again,\n",
+                         "since some messages and entire folders might still be missing on host2.\n"
+                ) ;
+                exit_clean( $mysync, $EXIT_BY_FILE ) ;
+                return ;
+        }
+        else
+        {
+                return ;
+        }
+}
+
 sub simulong
 {
-	my $max_seconds = shift ;
+        my $mysync = shift ;
+
+        my $max_seconds = $mysync->{ simulong } ;
+
+        if ( ! $max_seconds ) { return ; }
+
 	my $division = 5 ;
-	my $last_count = $division * $max_seconds ;
+	my $last_count = int( $division * $max_seconds ) ;
+        $mysync->{ debug } and myprint "last_count $last_count = int( division $division * max_seconds $max_seconds)\n" ;
 	foreach my $i ( 1 .. ( $last_count ) ) {
-		 myprint( "Are you still here ETA: " . ($last_count - $i) . "/$last_count msgs left\n" ) ;
+                myprint( "Are you still here ETA: " . ( $last_count - $i ) . "/$last_count msgs left\n" ) ;
+                #this one is for testing huge page behavior
 		#myprint( "Are you still here ETA: " . ($last_count - $i) . "/$last_count  msgs left\n" . ( "Ah" x 40 . "\n") x 4000 ) ;
 		sleep( 1 / $division ) ;
+                abortifneeded( $mysync ) ;
 	}
 
 	return ;
@@ -15302,12 +17582,14 @@
 	return ;
 }
 
-sub testsexit
+
+sub unittestssuite
 {
         my $mysync = shift ;
         if ( ! ( $mysync->{ tests }  or $mysync->{ testsdebug } or $mysync->{ testsunit } ) ) {
                 return ;
         }
+
         my $test_builder = Test::More->builder ;
         tests( $mysync ) ;
         testsdebug( $mysync ) ;
@@ -15323,16 +17605,12 @@
                 #$test_builder->reset(  ) ;
                 myprint( "Summary of tests: failed $nb_tests_failed tests, run $nb_tests_run tests, expected to run $nb_tests_expected tests.\n",
                 "List of failed tests:\n", $tests_failed ) ;
-                exit $EXIT_TESTS_FAILED ;
+                return $EXIT_TESTS_FAILED ;
         }
 
         cleanup_mess_from_tests(  ) ;
-        # Cover is larger with --tests --testslive
-        if ( ! $mysync->{ testslive } )
-        {
-                exit ;
-        }
-        return ;
+
+        return 0 ;
 }
 
 sub cleanup_mess_from_tests
@@ -15476,8 +17754,8 @@
 	$mysync->{ssl1} = ( defined $mysync->{ssl1} ) ? $mysync->{ssl1} : 1 ;
 	$mysync->{host2} ||= 'imap.gmail.com' ;
 	$mysync->{ssl2} = ( defined $mysync->{ssl2} ) ? $mysync->{ssl2} : 1 ;
-	$mysync->{maxbytespersecond} ||= 20_000 ; # should be 10_000 when computed from Gmail documentation
-	$mysync->{maxbytesafter} ||= 1_000_000_000 ;
+	$mysync->{maxbytespersecond} ||= 20_000 ; # should be less than 10_000 when computed from Gmail documentation
+	$mysync->{maxbytesafter} ||= 1_000_000_000 ; # In fact it is documented as half: 500_000_000
 	$mysync->{automap}   = ( defined $mysync->{automap} )  ? $mysync->{automap} : 1 ;
 	$mysync->{maxsleep}  = ( defined $mysync->{maxsleep} ) ? $mysync->{maxsleep} : $MAX_SLEEP ; ;
 	$skipcrossduplicates = ( defined $skipcrossduplicates ) ? $skipcrossduplicates : 0 ;
@@ -15495,8 +17773,8 @@
 	# Gmail at host2
 	$mysync->{host1} ||= 'imap.gmail.com' ;
 	$mysync->{ssl1} = ( defined $mysync->{ssl1} ) ? $mysync->{ssl1} : 1 ;
-	$mysync->{maxbytespersecond} ||= 40_000 ; # should be 20_000 computed from by Gmail documentation
-	$mysync->{maxbytesafter} ||= 2_500_000_000 ;
+	$mysync->{maxbytespersecond} ||= 40_000 ;     # should be 30_000 computed from by Gmail documentation
+	$mysync->{maxbytesafter} ||= 3_000_000_000 ;  #
 	$mysync->{automap}   = ( defined $mysync->{automap} ) ? $mysync->{automap} : 1 ;
 	$mysync->{maxsleep}  = ( defined $mysync->{maxsleep} ) ? $mysync->{maxsleep} : $MAX_SLEEP ; ;
 	$skipcrossduplicates = ( defined $skipcrossduplicates ) ? $skipcrossduplicates : 1 ;
@@ -15507,24 +17785,24 @@
 	return ;
 }
 
-sub gmail2
+sub gmail2 
 {
 	my $mysync = shift ;
 	# Gmail at host2
-	$mysync->{host2} ||= 'imap.gmail.com' ;
-	$mysync->{ssl2} = ( defined $mysync->{ssl2} ) ? $mysync->{ssl2} : 1 ;
-	$mysync->{maxbytespersecond} ||= 20_000 ; # should be 10_000 computed from by Gmail documentation
-	$mysync->{maxbytesafter} ||= 1_000_000_000 ; # In fact it is documented as half: 500_000_000
+	$mysync->{ host2 } ||= 'imap.gmail.com' ;
+	$mysync->{ ssl2 } = ( defined $mysync->{ ssl2 } ) ? $mysync->{ ssl2 } : 1 ;
+	$mysync->{ maxbytespersecond } ||= 20_000 ;     # should be less than 10_000 computed from by Gmail documentation
+	$mysync->{ maxbytesafter } ||= 1_000_000_000 ;  # In fact it is documented as half: 500_000_000
 
-	$mysync->{automap} = ( defined $mysync->{automap} ) ? $mysync->{automap} : 1 ;
+	$mysync->{ automap } = ( defined $mysync->{ automap } ) ? $mysync->{ automap } : 1 ;
 	#$skipcrossduplicates = ( defined $skipcrossduplicates ) ? $skipcrossduplicates : 1 ;
 	$mysync->{ expunge1 }  = ( defined $mysync->{ expunge1 } )  ? $mysync->{ expunge1 }  : 1 ;
-	$mysync->{addheader} = ( defined $mysync->{addheader} ) ? $mysync->{addheader} : 1 ;
-	$mysync->{maxsleep}  = ( defined $mysync->{maxsleep} )  ? $mysync->{maxsleep} : $MAX_SLEEP ; ;
+	$mysync->{ addheader } = ( defined $mysync->{ addheader } ) ? $mysync->{ addheader } : 1 ;
+	$mysync->{ maxsleep }  = ( defined $mysync->{ maxsleep } )  ? $mysync->{ maxsleep } : $MAX_SLEEP ; ;
 
-        $mysync->{maxsize}  = ( defined $mysync->{maxsize} )  ? $mysync->{maxsize} : $GMAIL_MAXSIZE ;
+        #$mysync->{ maxsize }  = ( defined $mysync->{ maxsize } )  ? $mysync->{ maxsize } : $GMAIL_MAXSIZE ;
 
-        if ( ! $mysync->{noexclude} ) {
+        if ( ! $mysync->{ noexclude } ) {
                 push @exclude, '\[Gmail\]$' ;
         }
         push @useheader, 'Message-Id' ;
@@ -15571,7 +17849,7 @@
         $mysync->{ssl2} = ( defined $mysync->{ssl2} ) ? $mysync->{ssl2} : 1 ;
         $mysync->{ maxsize } ||= 45_000_000 ;
         $mysync->{maxmessagespersecond} ||= 4 ;
-        #push @regexflag, 's/\\\\Flagged//g' ; # No problem without! tested 2018_09_10
+        #push @{ $mysync->{ regexflag } }, 's/\\\\Flagged//g' ; # No problem without! tested 2018_09_10
         $disarmreadreceipts = ( defined $disarmreadreceipts ) ? $disarmreadreceipts : 1 ;
         # I dislike double negation but here is one
         if ( ! $mysync->{noregexmess} )
@@ -15607,7 +17885,7 @@
         $disarmreadreceipts = ( defined $disarmreadreceipts ) ? $disarmreadreceipts : 1 ;
         # I dislike double negation but here are two
         if ( ! $mysync->{noregexflag} ) {
-                push @regexflag, 's/\\\\Flagged//g' ;
+                push @{ $mysync->{ regexflag } }, 's/\\\\Flagged//g' ;
         }
         if ( ! $mysync->{noregexmess} ) {
                 push @regexmess, 's,(.{10239}),$1\r\n,g' ;
@@ -15649,14 +17927,17 @@
 	is( undef, resolv( 'hostnotexist' ), 'resolv: hostnotexist => undef' ) ;
 	is( '127.0.0.1', resolv( '127.0.0.1' ), 'resolv: 127.0.0.1 => 127.0.0.1' ) ;
 	is( '127.0.0.1', resolv( 'localhost' ), 'resolv: localhost => 127.0.0.1' ) ;
-	is( '5.135.158.182', resolv( 'imapsync.lamiral.info' ), 'resolv: imapsync.lamiral.info => 5.135.158.182' ) ;
+	is( '2001:41d0:2:84e0::1', resolv( 'imapsync.lamiral.info' ), 'resolv: imapsync.lamiral.info => 2001:41d0:2:84e0::1' ) ;
 
 	# ip6-localhost ( in /etc/hosts )
 	is( '::1', resolv( 'ip6-localhost' ), 'resolv: ip6-localhost => ::1' ) ;
 	is( '::1', resolv( '::1' ), 'resolv: ::1 => ::1' ) ;
-	# ks2
+	# ks2ipv6 now has CNAME ks6ipv6
 	is( '2001:41d0:8:d8b6::1', resolv( '2001:41d0:8:d8b6::1' ),  'resolv:  2001:41d0:8:d8b6::1 => 2001:41d0:8:d8b6::1' ) ;
-	is( '2001:41d0:8:d8b6::1', resolv( 'ks2ipv6.lamiral.info' ), 'resolv: ks2ipv6.lamiral.info => 2001:41d0:8:d8b6::1' ) ;
+	is( '2001:41d0:8:9951::1', resolv( 'ks6ipv6.lamiral.info' ), 'resolv: ks6ipv6.lamiral.info => 2001:41d0:8:9951::1' ) ;
+	# ks6
+	is( '2001:41d0:8:9951::1', resolv( '2001:41d0:8:9951::1' ),  'resolv:  2001:41d0:8:9951::1 => 2001:41d0:8:9951::1' ) ;
+	is( '2001:41d0:8:9951::1', resolv( 'ks6ipv6.lamiral.info' ), 'resolv: ks6ipv6.lamiral.info => 2001:41d0:8:9951::1' ) ;
 	# ks3
 	is( '2001:41d0:8:bebd::1', resolv( '2001:41d0:8:bebd::1' ),  'resolv:  2001:41d0:8:bebd::1 => 2001:41d0:8:bebd::1' ) ;
 	is( '2001:41d0:8:bebd::1', resolv( 'ks3ipv6.lamiral.info' ), 'resolv: ks3ipv6.lamiral.info => 2001:41d0:8:bebd::1' ) ;
@@ -15692,6 +17973,7 @@
 {
 	my $host = shift @ARG ;
 
+        $sync->{ debug } and myprint( "Entering resolv_with_getaddrinfo( $host )\n" ) ;
 	if ( ! $host ) { return ; }
 
 	my ( $err_getaddrinfo, @res ) = Socket::getaddrinfo( $host, "", { socktype => Socket::SOCK_RAW } ) ;
@@ -15706,14 +17988,17 @@
 		if ( $err_getnameinfo ) {
 			myprint( "Cannot getnameinfo of $host: $err_getnameinfo\n" ) ;
 			return ;
-		}
-		$sync->{ debug } and myprint( "$host => $ipaddr\n" ) ;
-		push @addr, $ipaddr ;
-                my $reverse ;
-		( $err_getnameinfo, $reverse ) = Socket::getnameinfo( $ai->{addr}, 0, Socket::NIx_NOSERV() ) ;
-		$sync->{ debug } and myprint( "$host => $ipaddr => $reverse\n" ) ;
-	}
+		}else{
+                        $sync->{ debug } and myprint( "$host => $ipaddr\n" ) ;
+                        push @addr, $ipaddr ;
+                        my $reverse ;
+                        ( $err_getnameinfo, $reverse ) = Socket::getnameinfo( $ai->{addr}, 0, Socket::NIx_NOSERV() ) ;
+                        $sync->{ debug } and myprint( "$host => $ipaddr => $reverse\n" ) ;
+                }
+                $sync->{ debug } and myprint( "$host => $ipaddr\n" ) ;
 
+	}
+        $sync->{ debug } and myprint( "Leaving resolv_with_getaddrinfo( $host => $addr[0])\n" ) ;
         return $addr[0] ;
 }
 
@@ -15733,8 +18018,8 @@
 	is( 'ip6-localhost', resolvrev( 'ip6-localhost' ), 'resolvrev: ip6-localhost => ip6-localhost' ) ;
 	is( 'ip6-localhost', resolvrev( '::1' ), 'resolvrev: ::1 => ip6-localhost' ) ;
 	# ks2
-	is( 'ks2ipv6.lamiral.info', resolvrev( '2001:41d0:8:d8b6::1' ),  'resolvrev:  2001:41d0:8:d8b6::1 => ks2ipv6.lamiral.info' ) ;
-	is( 'ks2ipv6.lamiral.info', resolvrev( 'ks2ipv6.lamiral.info' ), 'resolvrev: ks2ipv6.lamiral.info => ks2ipv6.lamiral.info' ) ;
+	is( 'ks6ipv6.lamiral.info', resolvrev( '2001:41d0:8:d8b6::1' ),  'resolvrev:  2001:41d0:8:d8b6::1 => ks6ipv6.lamiral.info' ) ;
+	is( 'ks6ipv6.lamiral.info', resolvrev( 'ks6ipv6.lamiral.info' ), 'resolvrev: ks6ipv6.lamiral.info => ks6ipv6.lamiral.info' ) ;
 	# ks3
 	is( 'ks3ipv6.lamiral.info', resolvrev( '2001:41d0:8:bebd::1' ),  'resolvrev:  2001:41d0:8:bebd::1 => ks3ipv6.lamiral.info' ) ;
 	is( 'ks3ipv6.lamiral.info', resolvrev( 'ks3ipv6.lamiral.info' ), 'resolvrev: ks3ipv6.lamiral.info => ks3ipv6.lamiral.info' ) ;
@@ -15793,7 +18078,7 @@
 	is( undef, imapsping(  ), 'imapsping: no args => undef' ) ;
 	is( undef, imapsping( 'hostnotexist' ), 'imapsping: hostnotexist => undef' ) ;
 	is( 1, imapsping( 'imapsync.lamiral.info' ), 'imapsping: imapsync.lamiral.info => 1' ) ;
-        is( 1, imapsping( 'ks2ipv6.lamiral.info' ), 'imapsping: ks2ipv6.lamiral.info => 1' ) ;
+        is( 1, imapsping( 'ks6ipv6.lamiral.info' ), 'imapsping: ks6ipv6.lamiral.info => 1' ) ;
 	note( 'Leaving  tests_imapsping()' ) ;
 	return ;
 }
@@ -15873,7 +18158,7 @@
 
 	$mysync = {
 		sslcheck => 1,
-		host1 => 'imapsync.lamiral.info',
+		host1 => 'test1.lamiral.info',
 		tls1 => 1,
 	} ;
 
@@ -15881,32 +18166,32 @@
 
 	$mysync = {
 		sslcheck => 1,
-		host1 => 'imapsync.lamiral.info',
+		host1 => 'test1.lamiral.info',
 	} ;
 
 
-	is( 1, sslcheck( $mysync ), 'sslcheck: imapsync.lamiral.info => 1' ) ;
-	is( 1, $mysync->{ssl1}, 'sslcheck: imapsync.lamiral.info => ssl1 1' ) ;
+	is( 1, sslcheck( $mysync ), 'sslcheck: test1.lamiral.info => 1' ) ;
+	is( 1, $mysync->{ssl1}, 'sslcheck: test1.lamiral.info => ssl1 1' ) ;
 
 	$mysync->{sslcheck} = 0 ;
 	is( undef, sslcheck( $mysync ), 'sslcheck: sslcheck off => undef' ) ;
 
 	$mysync = {
 		sslcheck => 1,
-		host1 => 'imapsync.lamiral.info',
+		host1 => 'test1.lamiral.info',
                 host2 => 'test2.lamiral.info',
 	} ;
 
-        is( 2, sslcheck( $mysync ), 'sslcheck: imapsync.lamiral.info + test2.lamiral.info => 2' ) ;
+        is( 2, sslcheck( $mysync ), 'sslcheck: test1.lamiral.info + test2.lamiral.info => 2' ) ;
 
 	$mysync = {
 		sslcheck => 1,
-		host1 => 'imapsync.lamiral.info',
+		host1 => 'test1.lamiral.info',
                 host2 => 'test2.lamiral.info',
                 tls1  => 1,
 	} ;
 
-        is( 1, sslcheck( $mysync ), 'sslcheck: imapsync.lamiral.info + test2.lamiral.info + tls1 => 1' ) ;
+        is( 1, sslcheck( $mysync ), 'sslcheck: test1.lamiral.info + test2.lamiral.info + tls1 => 1' ) ;
 
 	note( 'Leaving  tests_sslcheck()' ) ;
 	return ;
@@ -15977,10 +18262,10 @@
 sub testslive6_init
 {
         my $mysync = shift ;
-        $mysync->{host1}     ||= 'ks2ipv6.lamiral.info' ;
+        $mysync->{host1}     ||= 'ks6ipv6.lamiral.info' ;
         $mysync->{user1}     ||= 'test1' ;
         $mysync->{password1} ||= 'secret1' ;
-        $mysync->{host2}     ||= 'ks2ipv6.lamiral.info' ;
+        $mysync->{host2}     ||= 'ks6ipv6.lamiral.info' ;
         $mysync->{user2}     ||= 'test2' ;
         $mysync->{password2} ||= 'secret2' ;
         return ;
@@ -16143,7 +18428,6 @@
 }
 
 
-
 sub tests_toggle_sleep
 {
         note( 'Entering tests_toggle_sleep()' ) ;
@@ -16318,6 +18602,147 @@
         return( $usage ) ;
 }
 
+
+
+
+sub setvalfromcgikey
+{
+        my ( $mysync, $mycgi, $key, $val ) = @ARG ;
+
+        my $badthings = 0 ;
+        
+                
+        my ( $name, $type, $struct ) ;
+        if ( $key !~ m/^([\w\d\|]+)([=:][isf])?([\+!\@\%])?$/mxs )
+        {
+                $badthings++ ;
+                next ;    # Unknown item
+        }
+        else
+        {
+                $name   = [ split '|', $1, 1 ]->[0] ; # option name ab|cd|ef => keep only ab
+                $type   = $2 ; # = or : followed by i or s or f
+                $struct = $3 ; # + or ! or @ or %
+        }
+                
+        if ( ( $struct || q{} ) eq '+' )
+        {
+                ${$val} = $mycgi->param( $name ) ;    # "Incremental" integer
+        }
+        elsif ( $type )
+        {
+                my @values = $mycgi->multi_param( $name ) ;
+
+                #myprint( "type[$type]values[@values]\$struct[", $struct || q{}, "]val[$val]ref(val)[", ref($val), "]\n" ) ;
+                if ( ( $struct || q{} ) eq '%' or ref( $val ) eq 'HASH' )
+                {
+                        setvalfromhash( $val, $type, @values ) ;
+                }
+                else 
+                {
+                        setvalfromlist( $mysync, $val, $name, $type, $struct, @values ) ;
+                }
+        }
+        else
+        {
+                setvalfromcheckbox( $mysync, $mycgi, $key, $name, $val ) ;
+        }
+                
+        return $badthings ;
+}
+
+sub setvalfromlist
+{
+        my ( $mysync, $val, $name, $type, $struct, @values ) = @ARG ;
+        if ( $type =~ m/i$/mxs )
+        {
+                @values = map { q{} ne $_ ? int $_ : undef } @values ;
+        }
+        elsif ( $type =~ m/f$/mxs )
+        {
+                @values = map { 0 + $_ } @values ;
+        }
+
+        if ( ( $struct || q{} ) eq '@' )
+        {
+                @{ ${$val} } = @values ;
+                my @option = map { +( "--$name", "$_" ) } @values ;
+                push @{ $mysync->{ cmdcgi } }, @option ;
+        }
+        elsif ( ref( $val ) eq 'ARRAY' )
+        {
+                @{$val} = @values ;
+        }
+        elsif ( my $value = $values[0] )
+        {
+                ${$val} = $value ;
+                push @{ $mysync->{ cmdcgi } }, "--$name", $value ;
+        }
+        else
+        {
+        }
+        
+        return ;
+}
+sub setvalfromhash
+{
+        my ( $val, $type, @values ) = @ARG ;
+
+        my %values = map { split /=/mxs, $_ } @values ;
+
+        if ( $type =~ m/i$/mxs )
+        {
+                foreach my $k ( keys %values )
+                {
+                        $values{$k} = int $values{$k} ;
+                }
+        }
+        elsif ( $type =~ m/f$/mxs )
+        {
+                foreach my $k ( keys %values ) {
+                        $values{$k} = 0 + $values{$k};
+                }
+        }
+
+        if ( 'REF' eq ref $val )
+        {
+                %{ ${$val} } = %values ;
+        }
+        else 
+        {
+                %{$val} = %values ;
+        }
+        
+        return ;
+}
+
+
+sub setvalfromcheckbox
+{
+        my ( $mysync, $mycgi, $key, $name, $val ) = @ARG ;
+        
+        # Checkbox
+        # --noname is set by name=0 or name=
+        my $value = $mycgi->param( $name ) ;
+        if ( defined $value )
+        {
+                ${$val} = $value ;
+                if ( $value )
+                {
+                        push @{ $mysync->{ cmdcgi } }, "--$name" ;
+                }
+                else
+                {
+                        push @{ $mysync->{ cmdcgi } }, "--no$name" ;
+                }
+        }
+        else
+        {
+                ${$val} = undef ;
+        }
+        return ;
+}
+
 sub myGetOptions
 {
 
@@ -16325,6 +18750,7 @@
         # https://metacpan.org/release/Getopt-Long-CGI
         # So this sub function is under the same license as Getopt-Long-CGI Luke Ross wants it,
         # which was Perl 5.6 or later licenses at the date of the copy.
+        # It also applies for the sub functions called from this one.
 
         my $mysync        = shift @ARG ;
         my $arguments_ref = shift @ARG ;
@@ -16345,84 +18771,10 @@
         foreach my $key ( sort keys %options ) {
                 my $val = $options{$key} ;
 
-                if ( $key !~ m/^([\w\d\|]+)([=:][isf])?([\+!\@\%])?$/mxs ) {
-                        $badthings++ ;
-                        next ;    # Unknown item
-                }
+                $badthings += setvalfromcgikey( $mysync, $mycgi, $key, $val ) ;
 
-                my $name = [ split '|', $1, 1 ]->[0] ;
-
-                if ( ( $3 || q{} ) eq '+' ) {
-                        ${$val} = $mycgi->param( $name ) ;    # "Incremental" integer
-                }
-                elsif ( $2 ) {
-                        my @values = $mycgi->multi_param( $name ) ;
-                        my $type   = $2 ;
-
-                        #myprint( "type[$type]values[@values]\$3[", $3 || q{}, "]val[$val]ref(val)[", ref($val), "]\n" ) ;
-                        if ( ( $3 || q{} ) eq '%' or ref( $val ) eq 'HASH' ) {
-                                my %values = map { split /=/mxs, $_ } @values ;
-
-                                if ( $type =~ m/i$/mxs ) {
-                                        foreach my $k ( keys %values ) {
-                                                $values{$k} = int $values{$k} ;
-                                        }
-                                }
-                                elsif ( $type =~ m/f$/mxs ) {
-                                        foreach my $k ( keys %values ) {
-                                                $values{$k} = 0 + $values{$k};
-                                        }
-                                }
-                                if ( 'REF' eq ref $val ) {
-                                        %{ ${$val} } = %values ;
-                                }
-                                else {
-                                        %{$val} = %values ;
-                                }
-                        }
-                        else {
-                                if ( $type =~ m/i$/mxs ) {
-                                        @values = map { q{} ne $_ ? int $_ : undef } @values ;
-                                }
-                                elsif ( $type =~ m/f$/mxs ) {
-                                        @values = map { 0 + $_ } @values ;
-                                }
-                                if ( ( $3 || q{} ) eq '@' ) {
-                                        @{ ${$val} } = @values ;
-                                        my @option = map { +( "--$name", "$_" ) } @values ;
-                                        push @{ $mysync->{ cmdcgi } }, @option ;
-                                }
-                                elsif ( ref( $val ) eq 'ARRAY' ) {
-                                        @{$val} = @values ;
-                                }
-                                elsif ( my $value = $values[0] )
-                                {
-                                        ${$val} = $value ;
-                                        push @{ $mysync->{ cmdcgi } }, "--$name", $value ;
-                                }
-                                else
-                                {
-
-                                }
-                        }
-                }
-                else
-                {
-                        # Checkbox
-                        # Considers only --name
-                        # Should consider also --no-name and --noname
-                        my $value = $mycgi->param( $name ) ;
-                        if ( $value )
-                        {
-                                ${$val} = 1 ;
-                                push @{ $mysync->{ cmdcgi } }, "--$name" ;
-                        }
-                        else
-                        {
-                                ${$val} = undef ;
-                        }
-                }
         }
+        
         if ( $badthings ) {
                 return ;    # undef or ()
         }
@@ -16432,11 +18784,12 @@
 }
 
 
-my @blabla ; # just used to check get_options_cgi() with an array
+
 
 sub tests_get_options_cgi_context
 {
-	note( 'Entering tests_get_options_cgi()' ) ;
+	note( 'Entering tests_get_options_cgi_context()' ) ;
+
 
 # Temporary, have to think harder about testing CGI context in command line --tests
 	# API:
@@ -16454,15 +18807,21 @@
 	my $mysync ;
 	is( undef, get_options( $mysync ), 'get_options cgi context: no CGI module => undef' ) ;
 
-	require CGI ;
-	CGI->import( qw( -no_debug  -utf8 ) ) ;
+        # skip all next tests if the CGI module is not available
+
+        SKIP: {
+                if ( ! eval { require CGI ; }  ) {
+                        skip( "CGI Perl module is not installed", 19 ) ;
+                }
+
+                CGI->import( qw( -no_debug  -utf8 ) ) ;
 
 	is( undef, get_options( $mysync ), 'get_options cgi context: no CGI param => undef' ) ;
 	# Testing boolean
 	$mysync->{cgi} = CGI->new( 'version=on&debugenv=on' ) ;
 	local $ENV{'QUERY_STRING'} = 'version=on&debugenv=on' ;
 	is( 22,   get_options( $mysync ), 'get_options cgi context: QUERY_STRING => 22' ) ;
-	is(  1,   $mysync->{ version },        'get_options cgi context: --version => 1' ) ;
+	is(  'on',   $mysync->{ version },        'get_options cgi context: --version => on' ) ;
 	# debugenv is not allowed in cgi context
 	is(  undef,   $mysync->{debugenv},        'get_options cgi context: $mysync->{debugenv} => undef' ) ;
 
@@ -16474,14 +18833,6 @@
 	is( 'test1',  $mysync->{user1},    'get_options cgi context: $mysync->{user1} => test1' ) ;
         #local $ENV{'QUERY_STRING'} = undef ;
 
-	# Testing @
-	$mysync->{cgi} = CGI->new( 'blabla=fd1' ) ;
-	get_options( $mysync ) ;
-	is_deeply( [ 'fd1' ],  [ @blabla ],    'get_options cgi context: @blabla => fd1' ) ;
-	$mysync->{cgi} = CGI->new( 'blabla=fd1&blabla=fd2' ) ;
-	get_options( $mysync ) ;
-	is_deeply( [ 'fd1', 'fd2' ],  [ @blabla ],    'get_options cgi context: @blabla => fd1, fd2' ) ;
-
 	# Testing s@ as ref
 	$mysync->{cgi} = CGI->new( 'folder=fd1' ) ;
 	get_options( $mysync ) ;
@@ -16522,10 +18873,21 @@
         #myprint( Data::Dumper->Dump( [ $mysync ] )  ) ;
 
         $mysync ={} ;
-	$mysync->{cgi} = CGI->new( 'justfoldersizes=on' ) ;
+        $mysync->{cgi} = CGI->new( 'testslive=on' ) ;
         get_options( $mysync ) ;
-	is( 1,  $mysync->{ justfoldersizes },    'get_options cgi context: --justfoldersizes=1 => justfoldersizes => 1' ) ;
-        myprint( Data::Dumper->Dump( [ $mysync ] )  ) ;
+        is( 'on',  $mysync->{ testslive },    'get_options cgi context: --testslive=on => testslive => on' ) ;
+        #myprint( Data::Dumper->Dump( [ $mysync ] )  ) ;
+
+                $mysync ={} ;
+                $mysync->{cgi} = CGI->new( 'log=0' ) ;
+                get_options( $mysync ) ;
+                is( 0,  $mysync->{ log },    'get_options cgi context: --log=0 => log => 0' ) ;
+                #myprint( Data::Dumper->Dump( [ $mysync ] )  ) ;
+
+
+        # What is this fucked up indentation?
+        }
+
 
 	note( 'Leaving  tests_get_options_cgi_context()' ) ;
 	return ;
@@ -16545,41 +18907,43 @@
         my $opt_ret = myGetOptions(
 	$mysync,
 	\@arguments,
-	'abort'            => \$mysync->{abort},
+        'abort'            => \$mysync->{ abort },
+        'abortbyfile'      => \$mysync->{ abortbyfile },
         'host1=s'          => \$mysync->{ host1 },
         'host2=s'          => \$mysync->{ host2 },
         'user1=s'          => \$mysync->{ user1 },
         'user2=s'          => \$mysync->{ user2 },
-        'password1=s'      => \$mysync->{password1},
-        'password2=s'      => \$mysync->{password2},
-        'dry!'             => \$mysync->{dry},
-        'version'          => \$mysync->{version},
-        'ssl1!'            => \$mysync->{ssl1},
-        'ssl2!'            => \$mysync->{ssl2},
-        'tls1!'            => \$mysync->{tls1},
-        'tls2!'            => \$mysync->{tls2},
-        'justlogin!'       => \$mysync->{justlogin},
-        'justconnect!'     => \$mysync->{justconnect},
-        'addheader!'       => \$mysync->{addheader},
-        'automap!'         => \$mysync->{automap},
-        'justautomap!'     => \$mysync->{justautomap},
-	'gmail1'           => \$mysync->{gmail1},
-	'gmail2'           => \$mysync->{gmail2},
-	'office1'          => \$mysync->{office1},
-	'office2'          => \$mysync->{office2},
-	'exchange1'        => \$mysync->{exchange1},
-	'exchange2'        => \$mysync->{exchange2},
-	'domino1'          => \$mysync->{domino1},
-	'domino2'          => \$mysync->{domino2},
-        'f1f2=s@'          => \$mysync->{f1f2},
-        'f1f2h=s%'         => \$mysync->{f1f2h},
-        'folder=s@'        => \$mysync->{ folder },
-        'blabla=s'         => \@blabla,
-        'testslive!'       => \$mysync->{testslive},
-        'testslive6!'      => \$mysync->{testslive6},
-        'releasecheck!'    => \$mysync->{releasecheck},
-        'simulong=i'       => \$mysync->{simulong},
-        'debugsleep=f'     => \$mysync->{debugsleep},
+        'password1=s'      => \$mysync->{ password1 },
+        'password2=s'      => \$mysync->{ password2 },
+        'dry!'             => \$mysync->{ dry },
+        'dry1!'            => \$mysync->{ dry1 },
+        'version'          => \$mysync->{ version },
+        'ssl1!'            => \$mysync->{ ssl1 },
+        'ssl2!'            => \$mysync->{ ssl2 },
+        'tls1!'            => \$mysync->{ tls1 },
+        'tls2!'            => \$mysync->{ tls2 },
+        'justbanner!'      => \$mysync->{ justbanner },
+        'justlogin!'       => \$mysync->{ justlogin },
+        'justconnect!'     => \$mysync->{ justconnect },
+        'addheader!'       => \$mysync->{ addheader },
+        'automap!'         => \$mysync->{ automap },
+        'justautomap!'     => \$mysync->{ justautomap },
+	'gmail1'           => \$mysync->{ gmail1 },
+	'gmail2'           => \$mysync->{ gmail2 },
+	'office1'          => \$mysync->{ office1 },
+	'office2'          => \$mysync->{ office2 },
+	'exchange1'        => \$mysync->{ exchange1 },
+	'exchange2'        => \$mysync->{ exchange2 },
+	'domino1'          => \$mysync->{ domino1 },
+	'domino2'          => \$mysync->{ domino2 },
+        'f1f2=s@'          => \$mysync->{ f1f2 },
+        'f1f2h=s%'         => \$mysync->{ f1f2h },
+        'folder=s@'        => \$mysync->{ folder  },
+        'testslive!'       => \$mysync->{ testslive },
+        'testslive6!'      => \$mysync->{ testslive6 },
+        'releasecheck!'    => \$mysync->{ releasecheck },
+        'simulong=f'       => \$mysync->{ simulong },
+        'debugsleep=f'     => \$mysync->{ debugsleep },
         'subfolder1=s'     => \$mysync->{ subfolder1 },
         'subfolder2=s'     => \$mysync->{ subfolder2 },
         'justfolders!'     => \$mysync->{ justfolders },
@@ -16587,9 +18951,15 @@
         'delete1!'         => \$mysync->{ delete1 },
         'delete2!'         => \$mysync->{ delete2 },
         'delete2duplicates!'  => \$mysync->{ delete2duplicates },
-        'tail!'               => \$mysync->{tail},
+        'tail!'            => \$mysync->{ tail },
+        'tmphash=s'        => \$mysync->{ tmphash },
+        'exitwhenover=i'   => \$mysync->{ exitwhenover },
+        'syncduplicates!'  => \$mysync->{ syncduplicates },
+        'log!'             => \$mysync->{ log },
+        'loglogfile!'      => \$mysync->{ loglogfile },
+        
 
-#  blabla and f1f2h=s% could be removed but
+# f1f2h=s% could be removed but
 # tests_get_options_cgi() should be split before
 # with a sub tests_myGetOptions()
         ) ;
@@ -16624,9 +18994,9 @@
         'debugcontent!' => \$debugcontent,
         'debugsleep=f'  => \$mysync->{debugsleep},
         'debugflags!'   => \$debugflags,
-        'debugimap!'    => \$debugimap,
-        'debugimap1!'   => \$debugimap1,
-        'debugimap2!'   => \$debugimap2,
+        'debugimap!'    => \$mysync->{ debugimap },
+        'debugimap1!'   => \$mysync->{ acc1 }->{ debugimap },
+        'debugimap2!'   => \$mysync->{ acc2 }->{ debugimap },
         'debugdev!'     => \$debugdev,
         'debugmemory!'  => \$mysync->{debugmemory},
         'debugfolders!' => \$mysync->{debugfolders},
@@ -16635,8 +19005,11 @@
         'debugenv!'     => \$mysync->{debugenv},
         'debugsig!'     => \$mysync->{debugsig},
         'debuglabels!'  => \$mysync->{debuglabels},
-        'simulong=i'    => \$mysync->{simulong},
+
+        'simulong=f'    => \$mysync->{simulong},
         'abort'         => \$mysync->{abort},
+        'abortbyfile'   => \$mysync->{abortbyfile},
+
         'host1=s'       => \$mysync->{ host1 },
         'host2=s'       => \$mysync->{ host2 },
         'port1=i'       => \$mysync->{port1},
@@ -16653,8 +19026,8 @@
         'exchange2'   => \$mysync->{exchange2},
         'domino1'     => \$mysync->{domino1},
         'domino2'     => \$mysync->{domino2},
-        'domain1=s'   => \$domain1,
-        'domain2=s'   => \$domain2,
+        'domain1=s'   => \$mysync->{ acc1 }->{ domain },
+        'domain2=s'   => \$mysync->{ acc2 }->{ domain },
         'password1=s' => \$mysync->{password1},
         'password2=s' => \$mysync->{password2},
         'passfile1=s' => \$mysync->{ passfile1 },
@@ -16662,6 +19035,15 @@
         'authmd5!'    => \$authmd5,
         'authmd51!'   => \$authmd51,
         'authmd52!'   => \$authmd52,
+
+        'trylogin!'   => \$mysync->{ trylogin },
+
+        'oauthdirect1=s' => \$mysync->{ acc1 }->{ oauthdirect },
+        'oauthdirect2=s' => \$mysync->{ acc2 }->{ oauthdirect },
+
+        'oauthaccesstoken1=s' => \$mysync->{ acc1 }->{ oauthaccesstoken },
+        'oauthaccesstoken2=s' => \$mysync->{ acc2 }->{ oauthaccesstoken },
+
         'sep1=s'      => \$mysync->{ sep1 },
         'sep2=s'      => \$mysync->{ sep2 },
         'sanitize!'         => \$mysync->{ sanitize },
@@ -16687,10 +19069,11 @@
         'pipemess=s'        => \@pipemess,
         'pipemesscheck!'    => \$pipemesscheck,
         'disarmreadreceipts!' => \$disarmreadreceipts,
-        'regexflag=s'         => \@regexflag,
-        'noregexflag'         => \$mysync->{noregexflag},
-        'filterflags!'        => \$filterflags,
-        'flagscase!'          => \$flagscase,
+        'regexflag=s@'        => \$mysync->{ regexflag },
+        'noregexflag'         => \$mysync->{ noregexflag },
+        'filterflags!'        => \$mysync->{ filterflags },
+        'filterbuggyflags!'   => \$mysync->{ filterbuggyflags },
+        'flagscase!'          => \$mysync->{ flagscase },
         'syncflagsaftercopy!' => \$syncflagsaftercopy,
         'resyncflags!'        => \$mysync->{ resyncflags },
         'synclabels!'         => \$mysync->{ synclabels },
@@ -16703,7 +19086,7 @@
         'delete2foldersbutnot=s' => \$delete2foldersbutnot,
         'syncinternaldates!' => \$syncinternaldates,
         'idatefromheader!'   => \$idatefromheader,
-        'syncacls!'          => \$syncacls,
+        'syncacls!'          => \$mysync->{ syncacls },
         'maxsize=i'       => \$mysync->{ maxsize },
         'appendlimit=i'   => \$mysync->{ appendlimit },
         'truncmess=i'     => \$mysync->{ truncmess },
@@ -16716,51 +19099,52 @@
         'foldersizes!'      => \$mysync->{ foldersizes },
         'foldersizesatend!' => \$mysync->{ foldersizesatend },
         'dry!'              => \$mysync->{dry},
+        'dry1!'             => \$mysync->{dry1},
         'expunge1|expunge!' => \$mysync->{ expunge1 },
         'expunge2!'         => \$mysync->{ expunge2 },
         'uidexpunge2!'      => \$mysync->{ uidexpunge2 },
         'subscribed'  => \$subscribed,
         'subscribe!'  => \$subscribe,
         'subscribeall|subscribe_all!'  => \$subscribeall,
-        'justbanner!' => \$justbanner,
+        'justbanner!' => \$mysync->{ justbanner },
         'justfolders!'=> \$mysync->{ justfolders },
         'justfoldersizes!' => \$mysync->{ justfoldersizes },
         'fast!'       => \$fast,
         'version'     => \$mysync->{version},
         'help'        => \$help,
-        'timeout=i'   => \$timeout,
-        'timeout1=i'   => \$mysync->{h1}->{timeout},
-        'timeout2=i'   => \$mysync->{h2}->{timeout},
-        'skipheader=s' => \$skipheader,
+        'timeout=f'   =>  \$mysync->{timeout},
+        'timeout1=f'   => \$mysync->{ acc1 }->{timeout},
+        'timeout2=f'   => \$mysync->{ acc2 }->{timeout},
+        'skipheader=s' => \$mysync->{ skipheader },
         'useheader=s' => \@useheader,
         'wholeheaderifneeded!'   => \$wholeheaderifneeded,
         'messageidnodomain!' => \$messageidnodomain,
         'skipsize!'   => \$skipsize,
         'allowsizemismatch!' => \$allowsizemismatch,
-        'fastio1!'     => \$fastio1,
-        'fastio2!'     => \$fastio2,
+        'fastio1!'     => \$mysync->{ acc1 }->{ fastio },
+        'fastio2!'     => \$mysync->{ acc2 }->{ fastio },
         'sslcheck!'    => \$mysync->{sslcheck},
         'ssl1!'        => \$mysync->{ssl1},
         'ssl2!'        => \$mysync->{ssl2},
-        'ssl1_ssl_version=s' => \$mysync->{h1}->{sslargs}->{SSL_version},
-        'ssl2_ssl_version=s' => \$mysync->{h2}->{sslargs}->{SSL_version},
-        'sslargs1=s%'        => \$mysync->{h1}->{sslargs},
-        'sslargs2=s%'        => \$mysync->{h2}->{sslargs},
+        'ssl1_ssl_version=s' => \$mysync->{ acc1 }->{sslargs}->{SSL_version},
+        'ssl2_ssl_version=s' => \$mysync->{ acc2 }->{sslargs}->{SSL_version},
+        'sslargs1=s%'        => \$mysync->{ acc1 }->{sslargs},
+        'sslargs2=s%'        => \$mysync->{ acc2 }->{sslargs},
         'tls1!'        => \$mysync->{tls1},
         'tls2!'        => \$mysync->{tls2},
         'uid1!'        => \$uid1,
         'uid2!'        => \$uid2,
-        'authmech1=s' => \$authmech1,
-        'authmech2=s' => \$authmech2,
-        'authuser1=s' => \$authuser1,
-        'authuser2=s' => \$authuser2,
-        'proxyauth1'  => \$proxyauth1,
-        'proxyauth2'  => \$proxyauth2,
+        'authmech1=s' => \$mysync->{ acc1 }->{ authmech },
+        'authmech2=s' => \$mysync->{ acc2 }->{ authmech },
+        'authuser1=s' => \$mysync->{ acc1 }->{ authuser },
+        'authuser2=s' => \$mysync->{ acc2 }->{ authuser },
+        'proxyauth1'  => \$mysync->{ acc1 }->{ proxyauth },
+        'proxyauth2'  => \$mysync->{ acc2 }->{ proxyauth },
         'split1=i'    => \$split1,
         'split2=i'    => \$split2,
         'buffersize=i' => \$buffersize,
-        'reconnectretry1=i' => \$reconnectretry1,
-        'reconnectretry2=i' => \$reconnectretry2,
+        'reconnectretry1=i' => \$mysync->{ acc1 }->{ reconnectretry },
+        'reconnectretry2=i' => \$mysync->{ acc2 }->{ reconnectretry },
         'tests!'          => \$mysync->{ tests },
         'testsdebug|tests_debug!' => \$mysync->{ testsdebug },
         'testsunit=s@'    => \$mysync->{testsunit},
@@ -16816,15 +19200,23 @@
         'nof1f2'           => \$mysync->{nof1f2},
         'f1f2h=s%'         => \$mysync->{f1f2h},
         'justfolderlists!' => \$mysync->{justfolderlists},
-        'delete1emptyfolders' => \$mysync->{delete1emptyfolders},
+        'delete1emptyfolders'   => \$mysync->{delete1emptyfolders},
+        'checknoabletosearch!' => \$mysync->{checknoabletosearch},
+        'syncduplicates!'  => \$mysync->{ syncduplicates },
+        'dockercontext!'   => \$mysync->{ dockercontext },
+        
+
         ) ;
         #myprint( Data::Dumper->Dump( [ $mysync ] )  ) ;
         $mysync->{ debug } and output( $mysync, "get options: [$opt_ret][$numopt]\n" ) ;
         my $numopt_after = scalar @arguments ;
         #myprint( "get options: [$opt_ret][$numopt][$numopt_after]\n" ) ;
-        if ( $numopt_after ) {
+
+        # The $arguments[0] test is just because parallel adds "" when it is
+        # used with {=7=} in sync_parallel_unix.sh
+        if ( $numopt_after and $arguments[0] ) {
                 myprint(
-                        "Extra arguments found: @arguments\n",
+                        "Found ", scalar( @arguments ), " extra arguments : [@arguments]\n",
                         "It usually means a quoting issue in the command line ",
                         "or some misspelling options.\n",
                 ) ;
@@ -16915,6 +19307,25 @@
 	return $ret ;
 }
 
+
+sub condition_to_leave_after_tests
+{
+        my $mysync = shift ;
+        if ( $mysync->{ testslive } or $mysync->{ testslive6 } )
+        {
+                return 0 ;
+        }
+
+        if ( $mysync->{ tests } 
+          or $mysync->{ testsdebug } 
+          or $mysync->{ testsunit } 
+        )
+        {
+                return 1 ;
+        }
+}
+
+
 sub testunitsession
 {
 	my $mysync = shift ;
@@ -17055,7 +19466,9 @@
                 #tests_killpid_by_brother(  ) ;
                 #tests_kill_zero(  ) ;
                 #tests_connect_socket(  ) ;
-                tests_probe_imapssl(  ) ;
+                #tests_probe_imapssl(  ) ;
+                tests_cpu_number(  ) ;
+                tests_mailimapclient_connect(  ) ;
                 #tests_always_fail(  ) ;
 
                 note( 'Leaving  testsdebug()' ) ;
@@ -17077,7 +19490,7 @@
                 tests_compare_lists(  ) ;
                 tests_regexmess(  ) ;
                 tests_skipmess(  ) ;
-                tests_flags_regex();
+                tests_regexflags(  );
                 tests_ucsecond(  ) ;
                 tests_permanentflags();
                 tests_flags_filter(  ) ;
@@ -17186,7 +19599,7 @@
                 tests_remove_pidfile_not_running(  ) ;
                 tests_match_a_pid_number(  ) ;
                 tests_prefix_seperator_invertion(  ) ;
-                tests_is_an_integer(  ) ;
+                tests_is_integer(  ) ;
                 tests_integer_or_1(  ) ;
                 tests_is_number(  ) ;
                 tests_sig_install(  ) ;
@@ -17232,16 +19645,37 @@
                 tests_abort(  ) ;
                 tests_probe_imapssl(  ) ;
                 tests_mailimapclient_connect(  ) ;
+                tests_checknoabletosearch(  ) ;
+                tests_errorsdump(  ) ;
+                tests_errorsanalyse(  ) ;
+                tests_most_common_error(  ) ;
+                tests_errorclassify(  ) ;
+                tests_error_type(  ) ;
+                tests_sanitize_host(  ) ;
+                tests_hmac_sha1_hex(  ) ;
+                tests_total_bytes_max_reached(  ) ;
+                tests_header_construct(  ) ;
+                tests_remove_doublequotes_if_any(  ) ;
+                tests_login_imap(  ) ;
+                tests_login_imap_oauth(  ) ;
+                tests_skipmess_neg(  ) ;
+                tests_localtimez(  ) ;
+                tests_file_to_array(  ) ;
+                tests_cpu_time(  ) ;
+                tests_cpu_percent(  ) ;
+                tests_cpu_percent_global(  ) ;
+                tests_flags_for_host2(  ) ;
+                tests_under_docker_context(  ) ;
                 #tests_resolv(  ) ;
-                
-                # Those three are for later use, when webserver will be inside imapsync 
+
+                # Those three are for later use, when webserver will be inside imapsync
                 # or will be deleted them if I abandon the project.
                 #tests_killpid_by_parent(  ) ;
                 #tests_killpid_by_brother(  ) ;
                 #tests_kill_zero(  ) ;
-                
+
                 #tests_always_fail(  ) ;
-                done_testing( 1496 ) ;
+                done_testing( 1742 ) ;
                 note( 'Leaving  tests()' ) ;
         }
         return ;
@@ -17251,11 +19685,19 @@
 {
         note( 'Entering tests_template()' ) ;
 
-        is( undef, undef,  'template: no args => undef' ) ;
+        is( undef, template(  ),  'template: no args => undef' ) ;
+        my $mysync = {  } ;
+        is( undef, template( $mysync ),  'template: undef => undef' ) ;
         is_deeply( {}, {}, 'template: a hash is a hash' ) ;
         is_deeply( [], [], 'template: an array is an array' ) ;
+
         note( 'Leaving  tests_template()' ) ;
         return ;
 }
 
-
+sub template
+{
+        my $mysync = shift @ARG ;
+        
+        return ;
+}
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/imapsync_cron.pl b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/imapsync_cron.pl
deleted file mode 100644
index 746b1d4..0000000
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/imapsync_cron.pl
+++ /dev/null
@@ -1,180 +0,0 @@
-#!/usr/bin/perl
-
-use DBI;
-use LockFile::Simple qw(lock trylock unlock);
-use Proc::ProcessTable;
-use Data::Dumper qw(Dumper);
-use IPC::Run 'run';
-use File::Temp;
-use Try::Tiny;
-use sigtrap 'handler' => \&sig_handler, qw(INT TERM KILL QUIT);
-
-sub trim { my $s = shift; $s =~ s/^\s+|\s+$//g; return $s };
-my $t = Proc::ProcessTable->new;
-my $imapsync_running = grep { $_->{cmndline} =~ /imapsync\s/i } @{$t->table};
-if ($imapsync_running ge 1)
-{
-  print "imapsync is active, exiting...";
-  exit;
-}
-
-sub qqw($) {
-  my @params = ();
-  my @values = split(/(?=--)/, $_[0]);
-  foreach my $val (@values) {
-    my @tmpparam = split(/ /, $val, 2);
-    foreach my $tmpval (@tmpparam) {
-        if ($tmpval ne '') {
-          push @params, $tmpval;
-        }
-    }
-  }
-  foreach my $val (@params) {
-    $val=trim($val);
-  }
-  return @params;
-}
-
-$run_dir="/tmp";
-$dsn = 'DBI:mysql:database=__DBNAME__;mysql_socket=/var/run/mysqld/mysqld.sock';
-$lock_file = $run_dir . "/imapsync_busy";
-$lockmgr = LockFile::Simple->make(-autoclean => 1, -max => 1);
-$lockmgr->lock($lock_file) || die "can't lock ${lock_file}";
-$dbh = DBI->connect($dsn, '__DBUSER__', '__DBPASS__', {
-  mysql_auto_reconnect => 1,
-  mysql_enable_utf8mb4 => 1
-});
-$dbh->do("UPDATE imapsync SET is_running = 0");
-
-sub sig_handler {
-  # Send die to force exception in "run"
-  die "sig_handler received signal, preparing to exit...\n";
-};
-
-open my $file, '<', "/etc/sogo/sieve.creds"; 
-my $creds = <$file>; 
-close $file;
-my ($master_user, $master_pass) = split /:/, $creds;
-my $sth = $dbh->prepare("SELECT id,
-  user1,
-  user2,
-  host1,
-  authmech1,
-  password1,
-  exclude,
-  port1,
-  enc1,
-  delete2duplicates,
-  maxage,
-  subfolder2,
-  delete1,
-  delete2,
-  automap,
-  skipcrossduplicates,
-  maxbytespersecond,
-  custom_params,
-  subscribeall,
-  timeout1,
-  timeout2
-    FROM imapsync
-      WHERE active = 1
-        AND is_running = 0
-        AND (
-          UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(last_run) > mins_interval * 60
-          OR
-          last_run IS NULL)
-  ORDER BY last_run");
-
-$sth->execute();
-my $row;
-
-while ($row = $sth->fetchrow_arrayref()) {
-
-  $id                  = @$row[0];
-  $user1               = @$row[1];
-  $user2               = @$row[2];
-  $host1               = @$row[3];
-  $authmech1           = @$row[4];
-  $password1           = @$row[5];
-  $exclude             = @$row[6];
-  $port1               = @$row[7];
-  $enc1                = @$row[8];
-  $delete2duplicates   = @$row[9];
-  $maxage              = @$row[10];
-  $subfolder2          = @$row[11];
-  $delete1             = @$row[12];
-  $delete2             = @$row[13];
-  $automap             = @$row[14];
-  $skipcrossduplicates = @$row[15];
-  $maxbytespersecond   = @$row[16];
-  $custom_params       = @$row[17];
-  $subscribeall        = @$row[18];
-  $timeout1            = @$row[19];
-  $timeout2            = @$row[20];
-
-  if ($enc1 eq "TLS") { $enc1 = "--tls1"; } elsif ($enc1 eq "SSL") { $enc1 = "--ssl1"; } else { undef $enc1; }
-
-  my $template = $run_dir . '/imapsync.XXXXXXX';
-  my $passfile1 = File::Temp->new(TEMPLATE => $template);
-  my $passfile2 = File::Temp->new(TEMPLATE => $template);
-
-  print $passfile1 "$password1\n";
-  print $passfile2 trim($master_pass) . "\n";
-
-  my @custom_params_a = qqw($custom_params);
-  my $custom_params_ref = \@custom_params_a;
-
-  my $generated_cmds = [ "/usr/local/bin/imapsync",
-  "--tmpdir", "/tmp",
-  "--nofoldersizes",
-  ($timeout1 gt "0" ? () : ('--timeout1', $timeout1)),
-  ($timeout2 gt "0" ? () : ('--timeout2', $timeout2)),
-  ($exclude eq "" ? () : ("--exclude", $exclude)),
-  ($subfolder2 eq "" ? () : ('--subfolder2', $subfolder2)),
-  ($maxage eq "0" ? () : ('--maxage', $maxage)),
-  ($maxbytespersecond eq "0" ? () : ('--maxbytespersecond', $maxbytespersecond)),
-  ($delete2duplicates ne "1" ? () : ('--delete2duplicates')),
-  ($subscribeall  ne "1" ? () : ('--subscribeall')),
-  ($delete1 ne "1" ? () : ('--delete')),
-  ($delete2 ne "1" ? () : ('--delete2')),
-  ($automap ne "1" ? () : ('--automap')),
-  ($skipcrossduplicates ne "1" ? () : ('--skipcrossduplicates')),
-  (!defined($enc1) ? () : ($enc1)),
-  "--host1", $host1,
-  "--user1", $user1,
-  "--passfile1", $passfile1->filename,
-  "--port1", $port1,
-  "--host2", "localhost",
-  "--user2", $user2 . '*' . trim($master_user),
-  "--passfile2", $passfile2->filename,
-  '--no-modulesversion',
-  '--noreleasecheck'];
-
-  try {
-    $is_running = $dbh->prepare("UPDATE imapsync SET is_running = 1 WHERE id = ?");
-    $is_running->bind_param( 1, ${id} );
-    $is_running->execute();
-    
-    run [@$generated_cmds, @$custom_params_ref], '&>', \my $stdout;
-    
-    $update = $dbh->prepare("UPDATE imapsync SET returned_text = ? WHERE id = ?");
-    $update->bind_param( 1, ${stdout} );
-    $update->bind_param( 2, ${id} );
-    $update->execute();
-  } catch {
-    $update = $dbh->prepare("UPDATE imapsync SET returned_text = 'Could not start or finish imapsync' WHERE id = ?");
-    $update->bind_param( 1, ${id} );
-    $update->execute();
-  } finally {
-    $update = $dbh->prepare("UPDATE imapsync SET last_run = NOW(), is_running = 0 WHERE id = ?");
-    $update->bind_param( 1, ${id} );
-    $update->execute();
-  };
-
-
-}
-
-$sth->finish();
-$dbh->disconnect();
-
-$lockmgr->unlock($lock_file);
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/imapsync_runner.pl b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/imapsync_runner.pl
new file mode 100644
index 0000000..0f01a97
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/imapsync_runner.pl
@@ -0,0 +1,181 @@
+#!/usr/bin/perl
+
+use DBI;
+use LockFile::Simple qw(lock trylock unlock);
+use Proc::ProcessTable;
+use Data::Dumper qw(Dumper);
+use IPC::Run 'run';
+use File::Temp;
+use Try::Tiny;
+use sigtrap 'handler' => \&sig_handler, qw(INT TERM KILL QUIT);
+
+sub trim { my $s = shift; $s =~ s/^\s+|\s+$//g; return $s };
+my $t = Proc::ProcessTable->new;
+my $imapsync_running = grep { $_->{cmndline} =~ /imapsync\s/i } @{$t->table};
+if ($imapsync_running ge 1)
+{
+  print "imapsync is active, exiting...";
+  exit;
+}
+
+sub qqw($) {
+  my @params = ();
+  my @values = split(/(?=--)/, $_[0]);
+  foreach my $val (@values) {
+    my @tmpparam = split(/ /, $val, 2);
+    foreach my $tmpval (@tmpparam) {
+        if ($tmpval ne '') {
+          push @params, $tmpval;
+        }
+    }
+  }
+  foreach my $val (@params) {
+    $val=trim($val);
+  }
+  return @params;
+}
+
+$run_dir="/tmp";
+$dsn = 'DBI:mysql:database=' . $ENV{'DBNAME'} . ';mysql_socket=/var/run/mysqld/mysqld.sock';
+$lock_file = $run_dir . "/imapsync_busy";
+$lockmgr = LockFile::Simple->make(-autoclean => 1, -max => 1);
+$lockmgr->lock($lock_file) || die "can't lock ${lock_file}";
+$dbh = DBI->connect($dsn, $ENV{'DBUSER'}, $ENV{'DBPASS'}, {
+  mysql_auto_reconnect => 1,
+  mysql_enable_utf8mb4 => 1
+});
+$dbh->do("UPDATE imapsync SET is_running = 0");
+
+sub sig_handler {
+  # Send die to force exception in "run"
+  die "sig_handler received signal, preparing to exit...\n";
+};
+
+open my $file, '<', "/etc/sogo/sieve.creds"; 
+my $creds = <$file>; 
+close $file;
+my ($master_user, $master_pass) = split /:/, $creds;
+my $sth = $dbh->prepare("SELECT id,
+  user1,
+  user2,
+  host1,
+  authmech1,
+  password1,
+  exclude,
+  port1,
+  enc1,
+  delete2duplicates,
+  maxage,
+  subfolder2,
+  delete1,
+  delete2,
+  automap,
+  skipcrossduplicates,
+  maxbytespersecond,
+  custom_params,
+  subscribeall,
+  timeout1,
+  timeout2
+    FROM imapsync
+      WHERE active = 1
+        AND is_running = 0
+        AND (
+          UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(last_run) > mins_interval * 60
+          OR
+          last_run IS NULL)
+  ORDER BY last_run");
+
+$sth->execute();
+my $row;
+
+while ($row = $sth->fetchrow_arrayref()) {
+
+  $id                  = @$row[0];
+  $user1               = @$row[1];
+  $user2               = @$row[2];
+  $host1               = @$row[3];
+  $authmech1           = @$row[4];
+  $password1           = @$row[5];
+  $exclude             = @$row[6];
+  $port1               = @$row[7];
+  $enc1                = @$row[8];
+  $delete2duplicates   = @$row[9];
+  $maxage              = @$row[10];
+  $subfolder2          = @$row[11];
+  $delete1             = @$row[12];
+  $delete2             = @$row[13];
+  $automap             = @$row[14];
+  $skipcrossduplicates = @$row[15];
+  $maxbytespersecond   = @$row[16];
+  $custom_params       = @$row[17];
+  $subscribeall        = @$row[18];
+  $timeout1            = @$row[19];
+  $timeout2            = @$row[20];
+
+  if ($enc1 eq "TLS") { $enc1 = "--tls1"; } elsif ($enc1 eq "SSL") { $enc1 = "--ssl1"; } else { undef $enc1; }
+
+  my $template = $run_dir . '/imapsync.XXXXXXX';
+  my $passfile1 = File::Temp->new(TEMPLATE => $template);
+  my $passfile2 = File::Temp->new(TEMPLATE => $template);
+
+  print $passfile1 "$password1\n";
+  print $passfile2 trim($master_pass) . "\n";
+
+  my @custom_params_a = qqw($custom_params);
+  my $custom_params_ref = \@custom_params_a;
+
+  my $generated_cmds = [ "/usr/local/bin/imapsync",
+  "--tmpdir", "/tmp",
+  "--nofoldersizes",
+  "--addheader",
+  ($timeout1 gt "0" ? () : ('--timeout1', $timeout1)),
+  ($timeout2 gt "0" ? () : ('--timeout2', $timeout2)),
+  ($exclude eq "" ? () : ("--exclude", $exclude)),
+  ($subfolder2 eq "" ? () : ('--subfolder2', $subfolder2)),
+  ($maxage eq "0" ? () : ('--maxage', $maxage)),
+  ($maxbytespersecond eq "0" ? () : ('--maxbytespersecond', $maxbytespersecond)),
+  ($delete2duplicates ne "1" ? () : ('--delete2duplicates')),
+  ($subscribeall  ne "1" ? () : ('--subscribeall')),
+  ($delete1 ne "1" ? () : ('--delete')),
+  ($delete2 ne "1" ? () : ('--delete2')),
+  ($automap ne "1" ? () : ('--automap')),
+  ($skipcrossduplicates ne "1" ? () : ('--skipcrossduplicates')),
+  (!defined($enc1) ? () : ($enc1)),
+  "--host1", $host1,
+  "--user1", $user1,
+  "--passfile1", $passfile1->filename,
+  "--port1", $port1,
+  "--host2", "localhost",
+  "--user2", $user2 . '*' . trim($master_user),
+  "--passfile2", $passfile2->filename,
+  '--no-modulesversion',
+  '--noreleasecheck'];
+
+  try {
+    $is_running = $dbh->prepare("UPDATE imapsync SET is_running = 1 WHERE id = ?");
+    $is_running->bind_param( 1, ${id} );
+    $is_running->execute();
+    
+    run [@$generated_cmds, @$custom_params_ref], '&>', \my $stdout;
+    
+    $update = $dbh->prepare("UPDATE imapsync SET returned_text = ? WHERE id = ?");
+    $update->bind_param( 1, ${stdout} );
+    $update->bind_param( 2, ${id} );
+    $update->execute();
+  } catch {
+    $update = $dbh->prepare("UPDATE imapsync SET returned_text = 'Could not start or finish imapsync' WHERE id = ?");
+    $update->bind_param( 1, ${id} );
+    $update->execute();
+  } finally {
+    $update = $dbh->prepare("UPDATE imapsync SET last_run = NOW(), is_running = 0 WHERE id = ?");
+    $update->bind_param( 1, ${id} );
+    $update->execute();
+  };
+
+
+}
+
+$sth->finish();
+$dbh->disconnect();
+
+$lockmgr->unlock($lock_file);
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/maildir_gc.sh b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/maildir_gc.sh
index 24c1e46..21358cc 100755
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/maildir_gc.sh
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/maildir_gc.sh
@@ -1,2 +1,2 @@
-#/bin/bash
+#!/bin/bash
 [ -d /var/vmail/_garbage/ ] && /usr/bin/find /var/vmail/_garbage/ -mindepth 1 -maxdepth 1 -type d -cmin +${MAILDIR_GC_TIME} -exec rm -r {} \;
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/postlogin.sh b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/postlogin.sh
deleted file mode 100755
index 01a45f3..0000000
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/postlogin.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-export MASTER_USER=$USER
-exec "$@"
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/quarantine_notify.py b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/quarantine_notify.py
index adf3171..acd887a 100755
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/quarantine_notify.py
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/quarantine_notify.py
@@ -2,6 +2,7 @@
 
 import smtplib
 import os
+import sys
 import mysql.connector
 from email.mime.multipart import MIMEMultipart
 from email.mime.text import MIMEText
@@ -15,137 +16,154 @@
 import html2text
 import socket
 
-while True:
-  try:
-    r = redis.StrictRedis(host='redis', decode_responses=True, port=6379, db=0)
-    r.ping()
-  except Exception as ex:
-    print('%s - trying again...'  % (ex))
-    time.sleep(3)
-  else:
-    break
+pid = str(os.getpid())
+pidfile = "/tmp/quarantine_notify.pid"
 
-time_now = int(time.time())
-mailcow_hostname = '__MAILCOW_HOSTNAME__'
+if os.path.isfile(pidfile):
+  print("%s already exists, exiting" % (pidfile))
+  sys.exit()
 
-max_score = float(r.get('Q_MAX_SCORE') or "9999.0")
-if max_score == "":
-  max_score = 9999.0
+pid = str(os.getpid())
+f = open(pidfile, 'w')
+f.write(pid)
+f.close()
 
-def query_mysql(query, headers = True, update = False):
+try:
+
   while True:
     try:
-      cnx = mysql.connector.connect(unix_socket = '/var/run/mysqld/mysqld.sock', user='__DBUSER__', passwd='__DBPASS__', database='__DBNAME__', charset="utf8")
+      r = redis.StrictRedis(host='redis', decode_responses=True, port=6379, db=0)
+      r.ping()
     except Exception as ex:
       print('%s - trying again...'  % (ex))
       time.sleep(3)
     else:
       break
-  cur = cnx.cursor()
-  cur.execute(query)
-  if not update:
-    result = []
-    columns = tuple( [d[0] for d in cur.description] )
-    for row in cur:
-      if headers:
-        result.append(dict(list(zip(columns, row))))
-      else:
-        result.append(row)
-    cur.close()
-    cnx.close()
-    return result
-  else:
-    cnx.commit()
-    cur.close()
-    cnx.close()
 
-def notify_rcpt(rcpt, msg_count, quarantine_acl, category):
-  if category == "add_header": category = "add header"
-  meta_query = query_mysql('SELECT SHA2(CONCAT(id, qid), 256) AS qhash, id, subject, score, sender, created, action FROM quarantine WHERE notified = 0 AND rcpt = "%s" AND score < %f AND (action = "%s" OR "all" = "%s")' % (rcpt, max_score, category, category))
-  print("%s: %d of %d messages qualify for notification" % (rcpt, len(meta_query), msg_count))
-  if len(meta_query) == 0:
-    return
-  msg_count = len(meta_query)
-  if r.get('Q_HTML'):
-    try:
-      template = Template(r.get('Q_HTML'))
-    except:
-      print("Error: Cannot parse quarantine template, falling back to default template.")
+  time_now = int(time.time())
+  mailcow_hostname = os.environ.get('MAILCOW_HOSTNAME')
+
+  max_score = float(r.get('Q_MAX_SCORE') or "9999.0")
+  if max_score == "":
+    max_score = 9999.0
+
+  def query_mysql(query, headers = True, update = False):
+    while True:
+      try:
+        cnx = mysql.connector.connect(unix_socket = '/var/run/mysqld/mysqld.sock', user=os.environ.get('DBUSER'), passwd=os.environ.get('DBPASS'), database=os.environ.get('DBNAME'), charset="utf8")
+      except Exception as ex:
+        print('%s - trying again...'  % (ex))
+        time.sleep(3)
+      else:
+        break
+    cur = cnx.cursor()
+    cur.execute(query)
+    if not update:
+      result = []
+      columns = tuple( [d[0] for d in cur.description] )
+      for row in cur:
+        if headers:
+          result.append(dict(list(zip(columns, row))))
+        else:
+          result.append(row)
+      cur.close()
+      cnx.close()
+      return result
+    else:
+      cnx.commit()
+      cur.close()
+      cnx.close()
+
+  def notify_rcpt(rcpt, msg_count, quarantine_acl, category):
+    if category == "add_header": category = "add header"
+    meta_query = query_mysql('SELECT SHA2(CONCAT(id, qid), 256) AS qhash, id, subject, score, sender, created, action FROM quarantine WHERE notified = 0 AND rcpt = "%s" AND score < %f AND (action = "%s" OR "all" = "%s")' % (rcpt, max_score, category, category))
+    print("%s: %d of %d messages qualify for notification" % (rcpt, len(meta_query), msg_count))
+    if len(meta_query) == 0:
+      return
+    msg_count = len(meta_query)
+    if r.get('Q_HTML'):
+      try:
+        template = Template(r.get('Q_HTML'))
+      except:
+        print("Error: Cannot parse quarantine template, falling back to default template.")
+        with open('/templates/quarantine.tpl') as file_:
+          template = Template(file_.read())
+    else:
       with open('/templates/quarantine.tpl') as file_:
         template = Template(file_.read())
-  else:
-    with open('/templates/quarantine.tpl') as file_:
-      template = Template(file_.read())
-  html = template.render(meta=meta_query, username=rcpt, counter=msg_count, hostname=mailcow_hostname, quarantine_acl=quarantine_acl)
-  text = html2text.html2text(html)
-  count = 0
-  while count < 15:
-    count += 1
+    html = template.render(meta=meta_query, username=rcpt, counter=msg_count, hostname=mailcow_hostname, quarantine_acl=quarantine_acl)
+    text = html2text.html2text(html)
+    count = 0
+    while count < 15:
+      count += 1
+      try:
+        server = smtplib.SMTP('postfix', 590, 'quarantine')
+        server.ehlo()
+        msg = MIMEMultipart('alternative')
+        msg_from = r.get('Q_SENDER') or "quarantine@localhost"
+        # Remove non-ascii chars from field
+        msg['From'] = ''.join([i if ord(i) < 128 else '' for i in msg_from])
+        msg['Subject'] = r.get('Q_SUBJ') or "Spam Quarantine Notification"
+        msg['Date'] = formatdate(localtime = True)
+        text_part = MIMEText(text, 'plain', 'utf-8')
+        html_part = MIMEText(html, 'html', 'utf-8')
+        msg.attach(text_part)
+        msg.attach(html_part)
+        msg['To'] = str(rcpt)
+        bcc = r.get('Q_BCC') or ""
+        redirect = r.get('Q_REDIRECT') or ""
+        text = msg.as_string()
+        if bcc == '':
+          if redirect == '':
+            server.sendmail(msg['From'], str(rcpt), text)
+          else:
+            server.sendmail(msg['From'], str(redirect), text)
+        else:
+          if redirect == '':
+            server.sendmail(msg['From'], [str(rcpt)] + [str(bcc)], text)
+          else:
+            server.sendmail(msg['From'], [str(redirect)] + [str(bcc)], text)
+        server.quit()
+        for res in meta_query:
+         query_mysql('UPDATE quarantine SET notified = 1 WHERE id = "%d"' % (res['id']), update = True)
+        r.hset('Q_LAST_NOTIFIED', record['rcpt'], time_now)
+        break
+      except Exception as ex:
+        server.quit()
+        print('%s'  % (ex))
+        time.sleep(3)
+
+  records = query_mysql('SELECT IFNULL(user_acl.quarantine, 0) AS quarantine_acl, count(id) AS counter, rcpt FROM quarantine LEFT OUTER JOIN user_acl ON user_acl.username = rcpt WHERE notified = 0 AND score < %f AND rcpt in (SELECT username FROM mailbox) GROUP BY rcpt' % (max_score))
+
+  for record in records:
+    attrs = ''
+    attrs_json = ''
+    time_trans = {
+      "hourly": 3600,
+      "daily": 86400,
+      "weekly": 604800
+    }
     try:
-      server = smtplib.SMTP('postfix', 590, 'quarantine')
-      server.ehlo()
-      msg = MIMEMultipart('alternative')
-      msg_from = r.get('Q_SENDER') or "quarantine@localhost"
-      # Remove non-ascii chars from field
-      msg['From'] = ''.join([i if ord(i) < 128 else '' for i in msg_from])
-      msg['Subject'] = r.get('Q_SUBJ') or "Spam Quarantine Notification"
-      msg['Date'] = formatdate(localtime = True)
-      text_part = MIMEText(text, 'plain', 'utf-8')
-      html_part = MIMEText(html, 'html', 'utf-8')
-      msg.attach(text_part)
-      msg.attach(html_part)
-      msg['To'] = str(rcpt)
-      bcc = r.get('Q_BCC') or ""
-      redirect = r.get('Q_REDIRECT') or ""
-      text = msg.as_string()
-      if bcc == '':
-        if redirect == '':
-          server.sendmail(msg['From'], str(rcpt), text)
-        else:
-          server.sendmail(msg['From'], str(redirect), text)
-      else:
-        if redirect == '':
-          server.sendmail(msg['From'], [str(rcpt)] + [str(bcc)], text)
-        else:
-          server.sendmail(msg['From'], [str(redirect)] + [str(bcc)], text)
-      server.quit()
-      for res in meta_query:
-       query_mysql('UPDATE quarantine SET notified = 1 WHERE id = "%d"' % (res['id']), update = True)
-      r.hset('Q_LAST_NOTIFIED', record['rcpt'], time_now)
-      break
+      last_notification = int(r.hget('Q_LAST_NOTIFIED', record['rcpt']))
+      if last_notification > time_now:
+        print('Last notification is > time now, assuming never')
+        last_notification = 0
     except Exception as ex:
-      server.quit()
-      print('%s'  % (ex))
-      time.sleep(3)
-
-records = query_mysql('SELECT IFNULL(user_acl.quarantine, 0) AS quarantine_acl, count(id) AS counter, rcpt FROM quarantine LEFT OUTER JOIN user_acl ON user_acl.username = rcpt WHERE notified = 0 AND score < %f AND rcpt in (SELECT username FROM mailbox) GROUP BY rcpt' % (max_score))
-
-for record in records:
-  attrs = ''
-  attrs_json = ''
-  time_trans = {
-    "hourly": 3600,
-    "daily": 86400,
-    "weekly": 604800
-  }
-  try:
-    last_notification = int(r.hget('Q_LAST_NOTIFIED', record['rcpt']))
-    if last_notification > time_now:
-      print('Last notification is > time now, assuming never')
+      print('Could not determine last notification for %s, assuming never' % (record['rcpt']))
       last_notification = 0
-  except Exception as ex:
-    print('Could not determine last notification for %s, assuming never' % (record['rcpt']))
-    last_notification = 0
-  attrs_json = query_mysql('SELECT attributes FROM mailbox WHERE username = "%s"' % (record['rcpt']))
-  attrs = attrs_json[0]['attributes']
-  if isinstance(attrs, str):
-    # if attr is str then just load it
-    attrs = json.loads(attrs)
-  else:
-    # if it's bytes then decode and load it
-    attrs = json.loads(attrs.decode('utf-8'))
-  if attrs['quarantine_notification'] not in ('hourly', 'daily', 'weekly'):
-    continue
-  if last_notification == 0 or (last_notification + time_trans[attrs['quarantine_notification']]) < time_now:
-    print("Notifying %s: Considering %d new items in quarantine (policy: %s)" % (record['rcpt'], record['counter'], attrs['quarantine_notification']))
-    notify_rcpt(record['rcpt'], record['counter'], record['quarantine_acl'], attrs['quarantine_category'])
+    attrs_json = query_mysql('SELECT attributes FROM mailbox WHERE username = "%s"' % (record['rcpt']))
+    attrs = attrs_json[0]['attributes']
+    if isinstance(attrs, str):
+      # if attr is str then just load it
+      attrs = json.loads(attrs)
+    else:
+      # if it's bytes then decode and load it
+      attrs = json.loads(attrs.decode('utf-8'))
+    if attrs['quarantine_notification'] not in ('hourly', 'daily', 'weekly'):
+      continue
+    if last_notification == 0 or (last_notification + time_trans[attrs['quarantine_notification']]) < time_now:
+      print("Notifying %s: Considering %d new items in quarantine (policy: %s)" % (record['rcpt'], record['counter'], attrs['quarantine_notification']))
+      notify_rcpt(record['rcpt'], record['counter'], record['quarantine_acl'], attrs['quarantine_category'])
+
+finally:
+  os.unlink(pidfile)
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/quota_notify.py b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/quota_notify.py
index fdfda30..2d7361b 100755
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/quota_notify.py
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/quota_notify.py
@@ -9,6 +9,7 @@
 from jinja2 import Template
 import redis
 import time
+import json
 import sys
 import html2text
 from subprocess import Popen, PIPE, STDOUT
@@ -57,6 +58,27 @@
   p = Popen(['/usr/lib/dovecot/dovecot-lda', '-d', username, '-o', '"plugin/quota=maildir:User quota:noenforcing"'], stdout=PIPE, stdin=PIPE, stderr=STDOUT)
   p.communicate(input=bytes(msg.as_string(), 'utf-8'))
 
+  domain = username.split("@")[-1]
+  if domain and r.hget('QW_BCC', domain):
+    bcc_data = json.loads(r.hget('QW_BCC', domain))
+    bcc_rcpts = bcc_data['bcc_rcpts']
+    if bcc_data['active'] == 1:
+      for rcpt in bcc_rcpts:
+        msg = MIMEMultipart('alternative')
+        msg['From'] = username
+        subject = r.get('QW_SUBJ') or "Quota warning"
+        msg['Subject'] = subject + ' (' + username + ')'
+        msg['Date'] = formatdate(localtime = True)
+        text_part = MIMEText(text, 'plain', 'utf-8')
+        html_part = MIMEText(html, 'html', 'utf-8')
+        msg.attach(text_part)
+        msg.attach(html_part)
+        msg['To'] = rcpt
+        server = smtplib.SMTP('postfix', 588, 'quotanotification')
+        server.ehlo()
+        server.sendmail(msg['From'], str(rcpt), msg.as_string())
+        server.quit()
+
 except Exception as ex:
   print('Failed to send quota notification: %s' % (ex))
   sys.exit(1)
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/sa-rules.sh b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/sa-rules.sh
index 1bfc8cc..89911c1 100755
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/sa-rules.sh
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/sa-rules.sh
@@ -2,7 +2,6 @@
 
 # Create temp directories
 [[ ! -d /tmp/sa-rules-heinlein ]] && mkdir -p /tmp/sa-rules-heinlein
-#[[ ! -d /tmp/sa-rules-schaal ]] && mkdir -p /tmp/sa-rules-schaal
 
 # Hash current SA rules
 if [[ ! -f /etc/rspamd/custom/sa-rules ]]; then
@@ -12,19 +11,11 @@
 fi
 
 # Deploy
-## Heinlein
-curl --connect-timeout 15 --retry 10 --max-time 30 http://www.spamassassin.heinlein-support.de/$(dig txt 1.4.3.spamassassin.heinlein-support.de +short | tr -d '"').tar.gz --output /tmp/sa-rules-heinlein.tar.gz
+curl --connect-timeout 15 --retry 10 --max-time 30 http://www.spamassassin.heinlein-support.de/$(dig txt 1.4.3.spamassassin.heinlein-support.de +short | tr -d '"' | tr -dc '0-9').tar.gz --output /tmp/sa-rules-heinlein.tar.gz
 if gzip -t /tmp/sa-rules-heinlein.tar.gz; then
   tar xfvz /tmp/sa-rules-heinlein.tar.gz -C /tmp/sa-rules-heinlein
   cat /tmp/sa-rules-heinlein/*cf > /etc/rspamd/custom/sa-rules
 fi
-## Schaal
-#curl --connect-timeout 15 --max-time 30 http://sa.schaal-it.net/$(dig txt 1.4.3.sa.schaal-it.net +short | tr -d '"').tar.gz --output /tmp/sa-rules-schaal.tar.gz
-#if gzip -t /tmp/sa-rules-schaal.tar.gz; then
-#  tar xfvz /tmp/sa-rules-schaal.tar.gz -C /tmp/sa-rules-schaal
-#  # Append, do not overwrite
-#  cat /tmp/sa-rules-schaal/*cf >> /etc/rspamd/custom/sa-rules
-#fi
 
 sed -i -e 's/\([^\\]\)\$\([^\/]\)/\1\\$\2/g' /etc/rspamd/custom/sa-rules
 
@@ -40,4 +31,3 @@
 
 # Cleanup
 rm -rf /tmp/sa-rules-heinlein /tmp/sa-rules-heinlein.tar.gz
-#rm -rf /tmp/sa-rules-schaal /tmp/sa-rules-schaal.tar.gz
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/supervisord.conf b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/supervisord.conf
index 2d91b55..a769864 100644
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/supervisord.conf
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/supervisord.conf
@@ -15,10 +15,6 @@
 command=/usr/sbin/dovecot -F

 autorestart=true

 

-[program:cron]

-command=/usr/sbin/cron -f

-autorestart=true

-

 [eventlistener:processes]

 command=/usr/local/sbin/stop-supervisor.sh

 events=PROCESS_STATE_STOPPED, PROCESS_STATE_EXITED, PROCESS_STATE_FATAL

diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/syslog-ng-redis_slave.conf b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/syslog-ng-redis_slave.conf
index 335cbfe..f690509 100644
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/syslog-ng-redis_slave.conf
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/syslog-ng-redis_slave.conf
@@ -27,7 +27,7 @@
     host("`REDIS_SLAVEOF_IP`")
     persist-name("redis2")
     port(`REDIS_SLAVEOF_PORT`)
-    command("PUBLISH" "F2B_CHANNEL" "$MESSAGE")
+    command("PUBLISH" "F2B_CHANNEL" "$(sanitize $MESSAGE)")
   );
 };
 filter f_mail { facility(mail); };
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/syslog-ng.conf b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/syslog-ng.conf
index f0489ea..bdaca9c 100644
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/syslog-ng.conf
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/syslog-ng.conf
@@ -27,7 +27,7 @@
     host("redis-mailcow")
     persist-name("redis2")
     port(6379)
-    command("PUBLISH" "F2B_CHANNEL" "$MESSAGE")
+    command("PUBLISH" "F2B_CHANNEL" "$(sanitize $MESSAGE)")
   );
 };
 filter f_mail { facility(mail); };
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/trim_logs.sh b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/trim_logs.sh
index 2993a4c..9b0824e 100755
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/trim_logs.sh
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/dovecot/trim_logs.sh
@@ -14,12 +14,12 @@
 else
   REDIS_CMDLINE="redis-cli -h redis -p 6379"
 fi
-catch_non_zero "${REDIS_CMDLINE} LTRIM ACME_LOG 0 __LOG_LINES__"
-catch_non_zero "${REDIS_CMDLINE} LTRIM POSTFIX_MAILLOG 0 __LOG_LINES__"
-catch_non_zero "${REDIS_CMDLINE} LTRIM DOVECOT_MAILLOG 0 __LOG_LINES__"
-catch_non_zero "${REDIS_CMDLINE} LTRIM SOGO_LOG 0 __LOG_LINES__"
-catch_non_zero "${REDIS_CMDLINE} LTRIM NETFILTER_LOG 0 __LOG_LINES__"
-catch_non_zero "${REDIS_CMDLINE} LTRIM AUTODISCOVER_LOG 0 __LOG_LINES__"
-catch_non_zero "${REDIS_CMDLINE} LTRIM API_LOG 0 __LOG_LINES__"
-catch_non_zero "${REDIS_CMDLINE} LTRIM RL_LOG 0 __LOG_LINES__"
-catch_non_zero "${REDIS_CMDLINE} LTRIM WATCHDOG_LOG 0 __LOG_LINES__"
+catch_non_zero "${REDIS_CMDLINE} LTRIM ACME_LOG 0 ${LOG_LINES}"
+catch_non_zero "${REDIS_CMDLINE} LTRIM POSTFIX_MAILLOG 0 ${LOG_LINES}"
+catch_non_zero "${REDIS_CMDLINE} LTRIM DOVECOT_MAILLOG 0 ${LOG_LINES}"
+catch_non_zero "${REDIS_CMDLINE} LTRIM SOGO_LOG 0 ${LOG_LINES}"
+catch_non_zero "${REDIS_CMDLINE} LTRIM NETFILTER_LOG 0 ${LOG_LINES}"
+catch_non_zero "${REDIS_CMDLINE} LTRIM AUTODISCOVER_LOG 0 ${LOG_LINES}"
+catch_non_zero "${REDIS_CMDLINE} LTRIM API_LOG 0 ${LOG_LINES}"
+catch_non_zero "${REDIS_CMDLINE} LTRIM RL_LOG 0 ${LOG_LINES}"
+catch_non_zero "${REDIS_CMDLINE} LTRIM WATCHDOG_LOG 0 ${LOG_LINES}"
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/ejabberd/Dockerfile b/mailcow/src/mailcow-dockerized/data/Dockerfiles/ejabberd/Dockerfile
new file mode 100644
index 0000000..7758df2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/ejabberd/Dockerfile
@@ -0,0 +1,33 @@
+FROM ejabberd/ecs:21.01
+
+LABEL maintainer "Andre Peters <andre.peters@servercow.de>"
+
+ENV GOSU_VERSION 1.11
+
+# We need to copy cert files, dropping rights at a later point
+USER root
+
+RUN apk add --update --no-cache su-exec \
+  bash \
+  tini \
+  jq \
+  mariadb-client \
+  redis \
+  tzdata \
+  curl \
+  openssl \
+  bind-tools \
+  composer \
+  php7-pdo \
+  php7-pdo_mysql \
+  php7-ctype
+
+RUN mkdir -p /var/www/authentication && \
+  cd /var/www/authentication && \
+  composer require leesherwood/ejabberd-php-auth monolog/monolog
+
+COPY docker-entrypoint.sh /docker-entrypoint.sh
+COPY authenticator /var/www/authentication/authenticator
+COPY mailcowCommandExecutor.php /var/www/authentication/vendor/leesherwood/ejabberd-php-auth/src/CommandExecutors/mailcowCommandExecutor.php
+
+ENTRYPOINT ["/docker-entrypoint.sh"]
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/ejabberd/authenticator b/mailcow/src/mailcow-dockerized/data/Dockerfiles/ejabberd/authenticator
new file mode 100755
index 0000000..96a6b8e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/ejabberd/authenticator
@@ -0,0 +1,19 @@
+#!/usr/bin/env php
+<?php
+require_once __DIR__."/vendor/autoload.php";
+
+use Monolog\Logger;
+use LeeSherwood\Ejabberd\AuthenticationService;
+use LeeSherwood\Ejabberd\CommandExecutors\mailcowCommandExecutor;
+
+$logger = new Logger('ejabberdAuth');
+
+$stdoutHandler = new Monolog\Handler\StreamHandler('/var/www/authentication/auth.log', Logger::INFO);
+
+$logger->pushHandler($stdoutHandler);
+
+$executor = new mailcowCommandExecutor();
+
+$application = new AuthenticationService($logger, $executor);
+
+$application->run();
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/ejabberd/docker-entrypoint.sh b/mailcow/src/mailcow-dockerized/data/Dockerfiles/ejabberd/docker-entrypoint.sh
new file mode 100755
index 0000000..1777315
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/ejabberd/docker-entrypoint.sh
@@ -0,0 +1,100 @@
+#!/bin/bash
+set -e
+
+until dig +short mailcow.email > /dev/null; do
+  echo "Waiting for DNS..."
+  sleep 1
+done
+
+until nc phpfpm 9001 -z; do
+  echo "Waiting for PHP on port 9001..."
+  sleep 3
+done
+
+until nc phpfpm 9002 -z; do
+  echo "Waiting for PHP on port 9002..."
+  sleep 3
+done
+
+# Wait for MySQL to warm-up
+while ! mysqladmin status --socket=/var/run/mysqld/mysqld.sock -u${DBUSER} -p${DBPASS} --silent; do
+  echo "Waiting for database to come up..."
+  sleep 2
+done
+
+# We dont want to give global write access to ejabberd in this directory
+chown -R root:root /var/www/authentication
+
+[ ! -f /sqlite/sqlite.db ] && cp /sqlite/sqlite_template.db /sqlite/sqlite.db
+
+[ ! -d /ejabberd_ssl ] && mkdir /ejabberd_ssl
+cp /ssl/cert.pem /ejabberd_ssl/cert.pem
+cp /ssl/key.pem /ejabberd_ssl/key.pem
+
+# Write access to upload directory and log file for authenticator
+touch /var/www/authentication/auth.log
+chown -R ejabberd:ejabberd /var/www/upload \
+  /var/www/authentication/auth.log \
+  /sqlite \
+  /ejabberd_ssl
+
+# ACL file for vhosts, hosts file for vhosts
+touch /ejabberd/ejabberd_acl.yml \
+  /ejabberd/ejabberd_hosts.yml \
+  /ejabberd/ejabberd_macros.yml
+chmod 644 /ejabberd/ejabberd_acl.yml \
+  /ejabberd/ejabberd_hosts.yml \
+  /ejabberd/ejabberd_macros.yml
+chown 82:82 /ejabberd/ejabberd_acl.yml \
+  /ejabberd/ejabberd_hosts.yml
+chown 82:82 /ejabberd
+
+cat <<EOF > /ejabberd/ejabberd_api.yml
+# Autogenerated by mailcow
+api_permissions:
+  "Reload by mailcow":
+    who:
+      - ip: "${IPV4_NETWORK}.0/24"
+    what:
+      - "reload_config"
+      - "restart"
+      - "list_certificates"
+      - "list_cluster"
+      - "join_cluster"
+      - "leave_cluster"
+      - "backup"
+      - "status"
+      - "stats"
+      - "muc_online_rooms"
+EOF
+
+cat <<EOF > /ejabberd/ejabberd_macros.yml
+# Autogenerated by mailcow
+define_macro:
+  'MAILCOW_HOSTNAME': "${MAILCOW_HOSTNAME}"
+  'EJABBERD_HTTPS': ${XMPP_HTTPS_PORT}
+EOF
+
+# Set open_basedir
+sed -i 's/;open_basedir =/open_basedir = \/var\/www\/authentication/g' /etc/php7/php.ini
+
+sed -i "s/__DBUSER__/${DBUSER}/g" /var/www/authentication/vendor/leesherwood/ejabberd-php-auth/src/CommandExecutors/mailcowCommandExecutor.php
+sed -i "s/__DBPASS__/${DBPASS}/g" /var/www/authentication/vendor/leesherwood/ejabberd-php-auth/src/CommandExecutors/mailcowCommandExecutor.php
+sed -i "s/__DBNAME__/${DBNAME}/g" /var/www/authentication/vendor/leesherwood/ejabberd-php-auth/src/CommandExecutors/mailcowCommandExecutor.php
+
+# Run hooks
+for file in /hooks/*; do
+  if [ -x "${file}" ]; then
+    echo "Running hook ${file}"
+    "${file}"
+  fi
+done
+
+alias ejabberdctl="su-exec ejabberd /home/ejabberd/bin/ejabberdctl --node ejabberd@${MAILCOW_HOSTNAME}"
+
+if [[ -z "$(mysql --socket=/var/run/mysqld/mysqld.sock -u ${DBUSER} -p${DBPASS} ${DBNAME} -B -e 'SELECT domain FROM domain WHERE xmpp = 1')" ]]; then
+  echo "No XMPP host configured, sleeping the sleep of the righteous, waiting for someone to wake me up..."
+  exec su-exec ejabberd tini -g -- sleep 365d
+fi
+
+exec su-exec ejabberd tini -g -- /home/ejabberd/bin/ejabberdctl --node ejabberd@${MAILCOW_HOSTNAME} foreground
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/ejabberd/mailcowCommandExecutor.php b/mailcow/src/mailcow-dockerized/data/Dockerfiles/ejabberd/mailcowCommandExecutor.php
new file mode 100644
index 0000000..390783a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/ejabberd/mailcowCommandExecutor.php
@@ -0,0 +1,229 @@
+<?php namespace LeeSherwood\Ejabberd\CommandExecutors;

+

+/**

+ * Dummy command executor for ejabberd

+ *

+ * This class implements the command executor interface and just returns some sane boolean values.

+ * You may want to use this class to test your ejabberd external authentication module is set up correctly

+ * before you start creating your custom code.

+ *

+ * @package LeeSherwood\Ejabberd

+ * @author Lee Sherwood

+ */

+

+use \PDO;

+

+class mailcowCommandExecutor implements CommandExecutorInterface {

+

+    /**

+     * Authenticate a user (login)

+     *

+     * @param string $username

+     * @param string $servername

+     * @param string $password

+     *

+     * @return bool

+     */

+

+    public static function verify_salted_hash($hash, $password, $algo, $salt_length) {

+      // Decode hash

+      $dhash = base64_decode($hash);

+      // Get first n bytes of binary which equals a SSHA hash

+      $ohash = substr($dhash, 0, $salt_length);

+      // Remove SSHA hash from decoded hash to get original salt string

+      $osalt = str_replace($ohash, '', $dhash);

+      // Check single salted SSHA hash against extracted hash

+      if (hash_equals(hash($algo, $password . $osalt, true), $ohash)) {

+        return true;

+      }

+      return false;

+    }

+

+    public static function verify_hash($hash, $password) {

+      if (preg_match('/^{(.+)}(.+)/i', $hash, $hash_array)) {

+        $scheme = strtoupper($hash_array[1]);

+        $hash = $hash_array[2];

+        switch ($scheme) {

+          case "ARGON2I":

+          case "ARGON2ID":

+          case "BLF-CRYPT":

+          case "CRYPT":

+          case "DES-CRYPT":

+          case "MD5-CRYPT":

+          case "MD5":

+          case "SHA256-CRYPT":

+          case "SHA512-CRYPT":

+            return password_verify($password, $hash);

+

+          case "CLEAR":

+          case "CLEARTEXT":

+          case "PLAIN":

+            return $password == $hash;

+

+          case "LDAP-MD5":

+            $hash = base64_decode($hash);

+            return hash_equals(hash('md5', $password, true), $hash);

+

+          case "PBKDF2":

+            $components = explode('$', $hash);

+            $salt = $components[2];

+            $rounds = $components[3];

+            $hash = $components[4];

+            return hash_equals(hash_pbkdf2('sha1', $password, $salt, $rounds), $hash);

+

+          case "PLAIN-MD4":

+            return hash_equals(hash('md4', $password), $hash);

+

+          case "PLAIN-MD5":

+            return md5($password) == $hash;

+

+          case "PLAIN-TRUNC":

+            $components = explode('-', $hash);

+            if (count($components) > 1) {

+              $trunc_len = $components[0];

+              $trunc_password = $components[1];

+

+              return substr($password, 0, $trunc_len) == $trunc_password;

+            } else {

+              return $password == $hash;

+            }

+

+          case "SHA":

+          case "SHA1":

+          case "SHA256":

+          case "SHA512":

+            // SHA is an alias for SHA1

+            $scheme = $scheme == "SHA" ? "sha1" : strtolower($scheme);

+            $hash = base64_decode($hash);

+            return hash_equals(hash($scheme, $password, true), $hash);

+

+          case "SMD5":

+            return self::verify_salted_hash($hash, $password, 'md5', 16);

+

+          case "SSHA":

+            return self::verify_salted_hash($hash, $password, 'sha1', 20);

+

+          case "SSHA256":

+            return self::verify_salted_hash($hash, $password, 'sha256', 32);

+

+          case "SSHA512":

+            return self::verify_salted_hash($hash, $password, 'sha512', 64);

+

+          default:

+            return false;

+        }

+      }

+      return false;

+    }

+

+    public function authenticate($username, $servername, $password)

+    {

+      $database_type = 'mysql';

+      $database_sock = '/var/run/mysqld/mysqld.sock';

+      $database_user = '__DBUSER__';

+      $database_pass = '__DBPASS__';

+      $database_name = '__DBNAME__';

+

+      $dsn = $database_type . ":unix_socket=" . $database_sock . ";dbname=" . $database_name;

+      $opt = [

+        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,

+        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,

+        PDO::ATTR_EMULATE_PREPARES   => false

+      ];

+      try {

+        $pdo = new PDO($dsn, $database_user, $database_pass, $opt);

+      }

+      catch (PDOException $e) {

+        return false;

+      }

+      if (!filter_var($username, FILTER_VALIDATE_EMAIL) && !ctype_alnum(str_replace(array('_', '.', '-'), '', $username))) {

+        return false;

+      }

+      $username = strtolower(trim($username));

+      $stmt = $pdo->prepare("SELECT `password` FROM `mailbox`

+          INNER JOIN domain on mailbox.domain = domain.domain

+          WHERE `kind` NOT REGEXP 'location|thing|group'

+            AND `mailbox`.`active`= '1'

+            AND `domain`.`active`= '1'

+            AND `domain`.`xmpp` = '1'

+            AND JSON_UNQUOTE(JSON_VALUE(`mailbox`.`attributes`, '$.xmpp_access')) = '1'

+            AND CONCAT(`domain`.`xmpp_prefix`, '.', `domain`.`domain`) = :servername

+            AND `username` = CONCAT(:local_part, '@', `domain`.`domain`)");

+      $stmt->execute(array(':local_part' => $username, ':servername' => $servername));

+      $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

+      foreach ($rows as $row) {

+        if (self::verify_hash($row['password'], $password) !== false) {

+          return true;

+        }

+      }

+      return false;

+    }

+

+    /**

+     * Check if a user exists

+     *

+     * @param string $username

+     * @param string $servername

+     *

+     * @return bool

+     */

+    public function userExists($username, $servername)

+    {

+        return true;

+    }

+

+    /**

+     * Set a password for a user

+     *

+     * @param string $username

+     * @param string $servername

+     * @param string $password

+     *

+     * @return bool

+     */

+    public function setPassword($username, $servername, $password)

+    {

+        return false;

+    }

+

+    /**

+     * Register a user

+     *

+     * @param string $username

+     * @param string $servername

+     * @param string $password

+     *

+     * @return bool

+     */

+    public function register($username, $servername, $password)

+    {

+        return false;

+    }

+

+    /**

+     * Delete a user

+     *

+     * @param string $username

+     * @param string $servername

+     *

+     * @return bool

+     */

+    public function removeUser($username, $servername)

+    {

+        return false;

+    }

+

+    /**

+     * Delete a user with password validation

+     *

+     * @param string $username

+     * @param string $servername

+     * @param string $password

+     *

+     * @return bool

+     */

+    public function removeUserWithPassword($username, $servername, $password)

+    {

+        return false;

+    }

+}
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/netfilter/Dockerfile b/mailcow/src/mailcow-dockerized/data/Dockerfiles/netfilter/Dockerfile
index 42aafd4..007bd64 100644
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/netfilter/Dockerfile
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/netfilter/Dockerfile
@@ -1,15 +1,29 @@
-FROM alpine:3.11
+FROM alpine:3.13
 LABEL maintainer "Andre Peters <andre.peters@servercow.de>"
 
 ENV XTABLES_LIBDIR /usr/lib/xtables
 ENV PYTHON_IPTABLES_XTABLES_VERSION 12
 ENV IPTABLES_LIBDIR /usr/lib
 
-RUN apk add --virtual .build-deps gcc python3-dev libffi-dev openssl-dev \
-  && apk add -U python3 iptables ip6tables tzdata musl-dev \
-  && pip3 install --upgrade pip python-iptables redis ipaddress dnspython \
+RUN apk add --virtual .build-deps \
+  gcc \
+  python3-dev \
+  libffi-dev \
+  openssl-dev \
+&& apk add -U python3 \
+  iptables \
+  ip6tables \
+  tzdata \
+  py3-pip \
+  musl-dev \
+&& pip3 install --upgrade pip \
+  python-iptables \
+  redis \
+  ipaddress \
+  dnspython \
+&& apk del .build-deps
+
 #  && pip3 install --upgrade pip python-iptables==0.13.0 redis ipaddress dnspython \
-  && apk del .build-deps
 
 COPY server.py /
 CMD ["python3", "-u", "/server.py"]
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/netfilter/server.py b/mailcow/src/mailcow-dockerized/data/Dockerfiles/netfilter/server.py
index bf3980a..04f6c47 100644
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/netfilter/server.py
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/netfilter/server.py
@@ -2,6 +2,7 @@
 

 import re

 import os

+import sys

 import time

 import atexit

 import signal

@@ -39,6 +40,7 @@
 bans = {}

 

 quit_now = False

+exit_code = 0

 lock = Lock()

 

 def log(priority, message):

@@ -61,6 +63,7 @@
 def refreshF2boptions():

   global f2boptions

   global quit_now

+  global exit_code

   if not r.get('F2B_OPTIONS'):

     f2boptions = {}

     f2boptions['ban_time'] = int

@@ -81,10 +84,12 @@
     except ValueError:

       print('Error loading F2B options: F2B_OPTIONS is not json')

       quit_now = True

+      exit_code = 2

 

 def refreshF2bregex():

   global f2bregex

   global quit_now

+  global exit_code

   if not r.get('F2B_REGEX'):

     f2bregex = {}

     f2bregex[1] = 'warning: .*\[([0-9a-f\.:]+)\]: SASL .+ authentication failed'

@@ -95,6 +100,7 @@
     f2bregex[6] = '([0-9a-f\.:]+) \"GET \/SOGo\/.* HTTP.+\" 403 .+'

     f2bregex[7] = 'Rspamd UI: Invalid password by ([0-9a-f\.:]+)'

     f2bregex[8] = '-login: Aborted login \(auth failed .+\): user=.+, rip=([0-9a-f\.:]+), lip.+'

+    f2bregex[9] = 'NOQUEUE: reject: RCPT from \[([0-9a-f\.:]+)].+Protocol error.+'

     r.set('F2B_REGEX', json.dumps(f2bregex, ensure_ascii=False))

   else:

     try:

@@ -103,6 +109,7 @@
     except ValueError:

       print('Error loading F2B options: F2B_REGEX is not json')

       quit_now = True

+      exit_code = 2

 

 if r.exists('F2B_LOG'):

   r.rename('F2B_LOG', 'NETFILTER_LOG')

@@ -110,6 +117,7 @@
 def mailcowChainOrder():

   global lock

   global quit_now

+  global exit_code

   while not quit_now:

     time.sleep(10)

     with lock:

@@ -126,9 +134,11 @@
               if position > 2:

                 logCrit('Error in %s chain order: MAILCOW on position %d, restarting container' % (chain.name, position))

                 quit_now = True

+                exit_code = 2

           if not target_found:

             logCrit('Error in %s chain: MAILCOW target not found, restarting container' % (chain.name))

             quit_now = True

+            exit_code = 2

 

 def ban(address):

   global lock

@@ -270,22 +280,30 @@
   logInfo('Watching Redis channel F2B_CHANNEL')

   pubsub.subscribe('F2B_CHANNEL')

 

+  global quit_now

+  global exit_code

+

   while not quit_now:

-    for item in pubsub.listen():

-      refreshF2bregex()

-      for rule_id, rule_regex in f2bregex.items():

-        if item['data'] and item['type'] == 'message':

-          try:

-            result = re.search(rule_regex, item['data'])

-          except re.error:

-            result = False

-          if result:

-            addr = result.group(1)

-            ip = ipaddress.ip_address(addr)

-            if ip.is_private or ip.is_loopback:

-              continue

-            logWarn('%s matched rule id %s (%s)' % (addr, rule_id, item['data']))

-            ban(addr)

+    try:

+      for item in pubsub.listen():

+        refreshF2bregex()

+        for rule_id, rule_regex in f2bregex.items():

+          if item['data'] and item['type'] == 'message':

+            try:

+              result = re.search(rule_regex, item['data'])

+            except re.error:

+              result = False

+            if result:

+              addr = result.group(1)

+              ip = ipaddress.ip_address(addr)

+              if ip.is_private or ip.is_loopback:

+                continue

+              logWarn('%s matched rule id %s (%s)' % (addr, rule_id, item['data']))

+              ban(addr)

+    except Exception as ex:

+      logWarn('Error reading log line from pubsub')

+      quit_now = True

+      exit_code = 2

 

 def snat4(snat_target):

   global lock

@@ -468,3 +486,5 @@
 

   while not quit_now:

     time.sleep(0.5)

+

+  sys.exit(exit_code)

diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/olefy/Dockerfile b/mailcow/src/mailcow-dockerized/data/Dockerfiles/olefy/Dockerfile
index 05ffcc2..3cacabb 100644
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/olefy/Dockerfile
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/olefy/Dockerfile
@@ -1,11 +1,11 @@
-FROM alpine:3.11
+FROM alpine:3.13
 LABEL maintainer "Andre Peters <andre.peters@servercow.de>"
 
 WORKDIR /app
 
 #RUN addgroup -S olefy && adduser -S olefy -G olefy \
-RUN apk add --virtual .build-deps gcc python3-dev musl-dev libffi-dev openssl-dev \
-  && apk add --update --no-cache python3 openssl tzdata libmagic \
+RUN apk add --virtual .build-deps gcc musl-dev python3-dev libffi-dev openssl-dev cargo \
+  && apk add --update --no-cache python3 py3-pip openssl tzdata libmagic \
   && pip3 install --upgrade pip \
   && pip3 install --upgrade asyncio python-magic \
   && pip3 install --upgrade https://github.com/HeinleinSupport/oletools/archive/master.zip \
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/phpfpm/Dockerfile b/mailcow/src/mailcow-dockerized/data/Dockerfiles/phpfpm/Dockerfile
index 5a2d578..ca851e6 100644
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/phpfpm/Dockerfile
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/phpfpm/Dockerfile
@@ -1,12 +1,12 @@
-FROM php:7.4-fpm-alpine3.11
+FROM php:8.0-fpm-alpine3.14
 LABEL maintainer "Andre Peters <andre.peters@servercow.de>"
 
-ENV APCU_PECL 5.1.18
-ENV IMAGICK_PECL 3.4.4
+ENV APCU_PECL 5.1.20
+ENV IMAGICK_PECL 3.5.1
 # Mailparse is pulled from master branch
 #ENV MAILPARSE_PECL 3.0.2
 ENV MEMCACHED_PECL 3.1.5
-ENV REDIS_PECL 5.3.1
+ENV REDIS_PECL 5.3.4
 
 RUN apk add -U --no-cache autoconf \
   aspell-dev \
@@ -61,7 +61,7 @@
   && docker-php-ext-configure exif \
   && docker-php-ext-configure gd --with-freetype=/usr/include/ \  
     --with-jpeg=/usr/include/ \
-  && docker-php-ext-install -j 4 exif gd gettext intl ldap opcache pcntl pdo pdo_mysql pspell soap sockets xmlrpc zip bcmath gmp \
+  && docker-php-ext-install -j 4 exif gd gettext intl ldap opcache pcntl pdo pdo_mysql pspell soap sockets zip bcmath gmp \
   && docker-php-ext-configure imap --with-imap --with-imap-ssl \
   && docker-php-ext-install -j 4 imap \
   && curl --silent --show-error https://getcomposer.org/installer | php \
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/phpfpm/docker-entrypoint.sh b/mailcow/src/mailcow-dockerized/data/Dockerfiles/phpfpm/docker-entrypoint.sh
index 80df768..9a2b582 100755
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/phpfpm/docker-entrypoint.sh
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/phpfpm/docker-entrypoint.sh
@@ -24,6 +24,7 @@
 CONTAINER_ID=
 until [[ ! -z "${CONTAINER_ID}" ]] && [[ "${CONTAINER_ID}" =~ ^[[:alnum:]]*$ ]]; do
   CONTAINER_ID=$(curl --silent --insecure https://dockerapi/containers/json | jq -r ".[] | {name: .Config.Labels[\"com.docker.compose.service\"], project: .Config.Labels[\"com.docker.compose.project\"], id: .Id}" 2> /dev/null | jq -rc "select( .name | tostring | contains(\"mysql-mailcow\")) | select( .project | tostring | contains(\"${COMPOSE_PROJECT_NAME,,}\")) | .id" 2> /dev/null)
+  sleep 2
 done
 echo "MySQL @ ${CONTAINER_ID}"
 SQL_LOOP_C=0
@@ -89,6 +90,15 @@
     ${REDIS_CMDLINE} --raw SET Q_MAX_AGE 365
   fi
 
+  # Set default password policy - if unset
+  if [[ -z $(${REDIS_CMDLINE} --raw HGET PASSWD_POLICY length) ]]; then
+    ${REDIS_CMDLINE} --raw HSET PASSWD_POLICY length 6
+    ${REDIS_CMDLINE} --raw HSET PASSWD_POLICY chars 0
+    ${REDIS_CMDLINE} --raw HSET PASSWD_POLICY special_chars 0
+    ${REDIS_CMDLINE} --raw HSET PASSWD_POLICY lowerupper 0
+    ${REDIS_CMDLINE} --raw HSET PASSWD_POLICY numbers 0
+  fi
+
   # Trigger db init
   echo "Running DB init..."
   php -c /usr/local/etc/php -f /web/inc/init_db.inc.php
@@ -171,6 +181,9 @@
 # Fix permissions for global filters
 chown -R 82:82 /global_sieve/*
 
+[[ ! -f /etc/nginx/conf.d/ZZZ-ejabberd.conf ]] && echo '# Autogenerated by mailcow' > /etc/nginx/conf.d/ZZZ-ejabberd.conf
+chown 82:82 /etc/nginx/conf.d/ZZZ-ejabberd.conf
+
 # Run hooks
 for file in /hooks/*; do
   if [ -x "${file}" ]; then
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/postfix/Dockerfile b/mailcow/src/mailcow-dockerized/data/Dockerfiles/postfix/Dockerfile
index 8b913af..56b274a 100644
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/postfix/Dockerfile
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/postfix/Dockerfile
@@ -45,7 +45,6 @@
 COPY rspamd-pipe-ham /usr/local/bin/rspamd-pipe-ham
 COPY rspamd-pipe-spam /usr/local/bin/rspamd-pipe-spam
 COPY whitelist_forwardinghosts.sh /usr/local/bin/whitelist_forwardinghosts.sh
-COPY smtpd_last_login.sh /usr/local/bin/smtpd_last_login.sh
 COPY stop-supervisor.sh /usr/local/sbin/stop-supervisor.sh
 COPY docker-entrypoint.sh /docker-entrypoint.sh
 
@@ -53,7 +52,6 @@
   /usr/local/bin/rspamd-pipe-ham \
   /usr/local/bin/rspamd-pipe-spam \
   /usr/local/bin/whitelist_forwardinghosts.sh \
-  /usr/local/bin/smtpd_last_login.sh \
   /usr/local/sbin/stop-supervisor.sh
 RUN rm -rf /tmp/* /var/tmp/*
 
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/postfix/postfix.sh b/mailcow/src/mailcow-dockerized/data/Dockerfiles/postfix/postfix.sh
index 3b18de4..35cd790 100755
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/postfix/postfix.sh
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/postfix/postfix.sh
@@ -10,7 +10,7 @@
   sleep 2
 done
 
-until dig +short mailcow.email @unbound > /dev/null; do
+until dig +short mailcow.email > /dev/null; do
   echo "Waiting for DNS..."
   sleep 1
 done
@@ -25,17 +25,21 @@
 newaliases;
 
 # create sni configuration
-echo -n "" > /opt/postfix/conf/sni.map;
-for cert_dir in /etc/ssl/mail/*/ ; do
-  if [[ ! -f ${cert_dir}domains ]] || [[ ! -f ${cert_dir}cert.pem ]] || [[ ! -f ${cert_dir}key.pem ]]; then
-    continue;
-  fi
-  IFS=" " read -r -a domains <<< "$(cat "${cert_dir}domains")"
-  for domain in "${domains[@]}"; do
-    echo -n "${domain} ${cert_dir}key.pem ${cert_dir}cert.pem" >> /opt/postfix/conf/sni.map;
-    echo "" >> /opt/postfix/conf/sni.map;
+if [[ "${SKIP_LETS_ENCRYPT}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
+  echo -n "" > /opt/postfix/conf/sni.map
+else
+  echo -n "" > /opt/postfix/conf/sni.map;
+  for cert_dir in /etc/ssl/mail/*/ ; do
+    if [[ ! -f ${cert_dir}domains ]] || [[ ! -f ${cert_dir}cert.pem ]] || [[ ! -f ${cert_dir}key.pem ]]; then
+      continue;
+    fi
+    IFS=" " read -r -a domains <<< "$(cat "${cert_dir}domains")"
+    for domain in "${domains[@]}"; do
+      echo -n "${domain} ${cert_dir}key.pem ${cert_dir}cert.pem" >> /opt/postfix/conf/sni.map;
+      echo "" >> /opt/postfix/conf/sni.map;
+    done
   done
-done
+fi
 postmap -F hash:/opt/postfix/conf/sni.map;
 
 cat <<EOF > /opt/postfix/conf/sql/mysql_relay_ne.cf
@@ -121,16 +125,31 @@
         AND mailbox.active = '1'
     ), 'smtp_enforced_tls:', 'smtp:') AS 'transport'
     UNION ALL
-    SELECT hostname AS transport FROM relayhosts
+    SELECT COALESCE(
+      (SELECT hostname FROM relayhosts
+      LEFT OUTER JOIN mailbox ON JSON_UNQUOTE(JSON_VALUE(mailbox.attributes, '$.relayhost')) = relayhosts.id
+        WHERE relayhosts.active = '1'
+          AND (
+            mailbox.username IN (SELECT alias.goto from alias
+              JOIN mailbox ON mailbox.username = alias.goto
+                WHERE alias.active = '1'
+                  AND alias.address = '%s'
+                  AND alias.address NOT LIKE '@%%'
+            )
+          )
+      ),
+      (SELECT hostname FROM relayhosts
       LEFT OUTER JOIN domain ON domain.relayhost = relayhosts.id
         WHERE relayhosts.active = '1'
-          AND domain = '%d'
-          OR domain IN (
-            SELECT target_domain FROM alias_domain
-              WHERE alias_domain = '%d'
+          AND (domain.domain = '%d'
+            OR domain.domain IN (
+              SELECT target_domain FROM alias_domain
+                WHERE alias_domain = '%d'
+            )
           )
-  )
-  AS transport_view;
+      )
+    )
+  ) AS transport_view;
 EOF
 
 cat <<EOF > /opt/postfix/conf/sql/mysql_transport_maps.cf
@@ -318,14 +337,17 @@
       AND alias_domain.active='1'
 EOF
 
-# Reject sasl usernames with smtp disabled
-cat <<EOF > /opt/postfix/conf/sql/mysql_sasl_access_maps.cf
+# MX based routing
+cat <<EOF > /opt/postfix/conf/sql/mysql_mbr_access_maps.cf
 # Autogenerated by mailcow
 user = ${DBUSER}
 password = ${DBPASS}
 hosts = unix:/var/run/mysqld/mysqld.sock
 dbname = ${DBNAME}
-query = SELECT 'REJECT' FROM mailbox WHERE username = '%u' AND JSON_UNQUOTE(JSON_VALUE(attributes, '$.smtp_access')) = '0';
+query = SELECT CONCAT('FILTER smtp_via_transport_maps:', nexthop) as transport FROM transports
+  WHERE '%s' REGEXP destination
+    AND active='1'
+    AND is_mx_based='1';
 EOF
 
 cat <<EOF > /opt/postfix/conf/sql/mysql_virtual_spamalias_maps.cf
@@ -354,12 +376,15 @@
 
 if [[ ! -f /opt/postfix/conf/custom_postscreen_whitelist.cidr ]]; then
   echo "Creating dummy custom_postscreen_whitelist.cidr"
-  echo '# Autogenerated by mailcow' > /opt/postfix/conf/custom_postscreen_whitelist.cidr
+  cat <<EOF > /opt/postfix/conf/custom_postscreen_whitelist.cidr
+# Autogenerated by mailcow
+# Rules are evaluated in the order as specified.
+# Blacklist 192.168.* except 192.168.0.1.
+# 192.168.0.1          permit
+# 192.168.0.0/16       reject
+EOF
 fi
 
-# Fix SMTP last login on slaves
-sed -i "s/__REDIS_SLAVEOF_IP__/${REDIS_SLAVEOF_IP}/g" /usr/local/bin/smtpd_last_login.sh
-
 # Fix Postfix permissions
 chown -R root:postfix /opt/postfix/conf/sql/ /opt/postfix/conf/custom_transport.pcre
 chmod 640 /opt/postfix/conf/sql/*.cf /opt/postfix/conf/custom_transport.pcre
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/postfix/smtpd_last_login.sh b/mailcow/src/mailcow-dockerized/data/Dockerfiles/postfix/smtpd_last_login.sh
deleted file mode 100755
index 9d249af..0000000
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/postfix/smtpd_last_login.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-
-REDIS_SLAVEOF_IP=__REDIS_SLAVEOF_IP__
-
-# Do not attempt to write to slave
-if [[ ! -z ${REDIS_SLAVEOF_IP} ]]; then
-  REDIS_CMDLINE="redis-cli -h ${REDIS_SLAVEOF_IP} -p ${REDIS_SLAVEOF_PORT}"
-else
-  REDIS_CMDLINE="redis-cli -h redis -p 6379"
-fi
-
-while read QUERY; do
-  QUERY=($QUERY)
-  # If nothing matched, end here - Postfix last line will be empty
-  if [[ -z "$(echo ${QUERY[0]} | tr -d '\040\011\012\015')" ]]; then
-    echo -ne "action=dunno\n\n"
-  # We found a username, log and return
-  elif [[ "${QUERY[0]}" =~ sasl_username ]]; then
-    MUSER=$(printf "%q" ${QUERY[0]#sasl_username=})
-    ${REDIS_CMDLINE} SET "last-login/smtp/$MUSER" "$(date +%s)"
-    echo -ne "action=dunno\n\n"
-  fi
-done
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/postfix/syslog-ng-redis_slave.conf b/mailcow/src/mailcow-dockerized/data/Dockerfiles/postfix/syslog-ng-redis_slave.conf
index 609ee55..40fb1cd 100644
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/postfix/syslog-ng-redis_slave.conf
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/postfix/syslog-ng-redis_slave.conf
@@ -28,7 +28,7 @@
     host("`REDIS_SLAVEOF_IP`")
     persist-name("redis2")
     port(`REDIS_SLAVEOF_PORT`)
-    command("PUBLISH" "F2B_CHANNEL" "$MESSAGE")
+    command("PUBLISH" "F2B_CHANNEL" "$(sanitize $MESSAGE)")
   );
 };
 filter f_mail { facility(mail); };
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/postfix/syslog-ng.conf b/mailcow/src/mailcow-dockerized/data/Dockerfiles/postfix/syslog-ng.conf
index 9e14fe1..8fdc104 100644
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/postfix/syslog-ng.conf
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/postfix/syslog-ng.conf
@@ -28,7 +28,7 @@
     host("redis-mailcow")
     persist-name("redis2")
     port(6379)
-    command("PUBLISH" "F2B_CHANNEL" "$MESSAGE")
+    command("PUBLISH" "F2B_CHANNEL" "$(sanitize $MESSAGE)")
   );
 };
 filter f_mail { facility(mail); };
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/rspamd/docker-entrypoint.sh b/mailcow/src/mailcow-dockerized/data/Dockerfiles/rspamd/docker-entrypoint.sh
index 203a196..e6d329b 100755
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/rspamd/docker-entrypoint.sh
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/rspamd/docker-entrypoint.sh
@@ -104,7 +104,8 @@
   /etc/rspamd/custom/bad_words.map \
   /etc/rspamd/custom/bad_asn.map \
   /etc/rspamd/custom/bad_words_de.map \
-  /etc/rspamd/custom/bulk_header.map
+  /etc/rspamd/custom/bulk_header.map \
+  /etc/rspamd/custom/bad_header.map
 
 # www-data (82) group needs to write to these files
 chown _rspamd:_rspamd /etc/rspamd/custom/
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/Dockerfile b/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/Dockerfile
index 1e49965..9cf5f62 100644
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/Dockerfile
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/Dockerfile
@@ -4,14 +4,13 @@
 ARG DEBIAN_FRONTEND=noninteractive
 ARG SOGO_DEBIAN_REPOSITORY=http://packages.inverse.ca/SOGo/nightly/5/debian/
 ENV LC_ALL C
-ENV GOSU_VERSION 1.11
+ENV GOSU_VERSION 1.12
 
 # Prerequisites
 RUN echo "Building from repository $SOGO_DEBIAN_REPOSITORY" \
   && apt-get update && apt-get install -y --no-install-recommends \
   apt-transport-https \
   ca-certificates \
-  cron \
   gettext \
   gnupg \
   mariadb-client \
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/bootstrap-sogo.sh b/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/bootstrap-sogo.sh
index fef7958..04472df 100755
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/bootstrap-sogo.sh
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/bootstrap-sogo.sh
@@ -128,11 +128,6 @@
   done
 fi
 
-if [[ "${ALLOW_ADMIN_EMAIL_LOGIN}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
-  TRUST_PROXY="YES"
-else
-  TRUST_PROXY="NO"
-fi
 # cat /dev/urandom seems to hang here occasionally and is not recommended anyway, better use openssl
 RAND_PASS=$(openssl rand -base64 16 | tr -dc _A-Z-a-z-0-9)
 
@@ -148,7 +143,7 @@
     <key>SOGoIMAPServer</key>
     <string>imap://${IPV4_NETWORK}.250:143/?TLS=YES&amp;tlsVerifyMode=none</string>
     <key>SOGoTrustProxyAuthentication</key>
-    <string>${TRUST_PROXY}</string>
+    <string>YES</string>
     <key>SOGoEncryptionKey</key>
     <string>${RAND_PASS}</string>
     <key>OCSCacheFolderURL</key>
@@ -249,14 +244,4 @@
 # Chown backup path
 chown -R sogo:sogo /sogo_backup
 
-# Creating cronjobs
-if [[ "${MASTER}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
-  echo "* * * * *   sogo   /usr/sbin/sogo-ealarms-notify -p /etc/sogo/sieve.creds 2>/dev/null" > /etc/cron.d/sogo
-  echo "* * * * *   sogo   /usr/sbin/sogo-tool expire-sessions ${SOGO_EXPIRE_SESSION}" >> /etc/cron.d/sogo
-  echo "0 0 * * *   sogo   /usr/sbin/sogo-tool update-autoreply -p /etc/sogo/sieve.creds" >> /etc/cron.d/sogo
-  echo "0 2 * * *   sogo   /usr/sbin/sogo-tool backup /sogo_backup ALL" >> /etc/cron.d/sogo
-else
-  rm /etc/cron.d/sogo
-fi
-
 exec gosu sogo /usr/sbin/sogod
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/docker-entrypoint.sh b/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/docker-entrypoint.sh
index ce28c34..2ff602a 100755
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/docker-entrypoint.sh
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/docker-entrypoint.sh
@@ -10,4 +10,12 @@
   cp /etc/syslog-ng/syslog-ng-redis_slave.conf /etc/syslog-ng/syslog-ng.conf
 fi
 
+# Run hooks
+for file in /hooks/*; do
+  if [ -x "${file}" ]; then
+    echo "Running hook ${file}"
+    "${file}"
+  fi
+done
+
 exec "$@"
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/supervisord.conf b/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/supervisord.conf
index 551a8e1..4946d98 100644
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/supervisord.conf
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/supervisord.conf
@@ -11,18 +11,13 @@
 autostart=true
 priority=1
 
-[program:cron]
-command=/usr/sbin/cron -f
-autorestart=true
-priority=2
-
 [program:bootstrap-sogo]
 command=/bootstrap-sogo.sh
 stdout_logfile=/dev/stdout
 stdout_logfile_maxbytes=0
 stderr_logfile=/dev/stderr
 stderr_logfile_maxbytes=0
-priority=3
+priority=2
 startretries=10
 autorestart=true
 stopwaitsecs=120
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/syslog-ng-redis_slave.conf b/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/syslog-ng-redis_slave.conf
index 9b04c78..5a84b72 100644
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/syslog-ng-redis_slave.conf
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/syslog-ng-redis_slave.conf
@@ -30,7 +30,7 @@
     host("`REDIS_SLAVEOF_IP`")
     persist-name("redis2")
     port(`REDIS_SLAVEOF_PORT`)
-    command("PUBLISH" "F2B_CHANNEL" "$MESSAGE")
+    command("PUBLISH" "F2B_CHANNEL" "$(sanitize $MESSAGE)")
   );
 };
 log {
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/syslog-ng.conf b/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/syslog-ng.conf
index 0c257d6..537038e 100644
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/syslog-ng.conf
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/sogo/syslog-ng.conf
@@ -30,7 +30,7 @@
     host("redis-mailcow")
     persist-name("redis2")
     port(6379)
-    command("PUBLISH" "F2B_CHANNEL" "$MESSAGE")
+    command("PUBLISH" "F2B_CHANNEL" "$(sanitize $MESSAGE)")
   );
 };
 log {
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/unbound/Dockerfile b/mailcow/src/mailcow-dockerized/data/Dockerfiles/unbound/Dockerfile
index cb34e45..cce2c00 100644
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/unbound/Dockerfile
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/unbound/Dockerfile
@@ -1,4 +1,4 @@
-FROM alpine:3.11
+FROM alpine:3.13
 
 LABEL maintainer "Andre Peters <andre.peters@servercow.de>"
 
diff --git a/mailcow/src/mailcow-dockerized/data/Dockerfiles/watchdog/watchdog.sh b/mailcow/src/mailcow-dockerized/data/Dockerfiles/watchdog/watchdog.sh
index 4013cb4..66ab12e 100755
--- a/mailcow/src/mailcow-dockerized/data/Dockerfiles/watchdog/watchdog.sh
+++ b/mailcow/src/mailcow-dockerized/data/Dockerfiles/watchdog/watchdog.sh
@@ -44,8 +44,8 @@
   local IPV6=
   local IPV6_SRCS=
   local TRY=
-  IPV6_SRCS[0]="ip6.korves.net"
-  IPV6_SRCS[1]="ip6.mailcow.email"
+  IPV6_SRCS[0]="ip6.mailcow.email"
+  IPV6_SRCS[1]="ip6.nevondo.com"
   until [[ ! -z ${IPV6} ]] || [[ ${TRY} -ge 10 ]]; do
     IPV6=$(curl --connect-timeout 3 -m 10 -L6s ${IPV6_SRCS[$RANDOM % ${#IPV6_SRCS[@]} ]} | grep "^\([0-9a-fA-F]\{0,4\}:\)\{1,7\}[0-9a-fA-F]\{0,4\}$")
     [[ ! -z ${TRY} ]] && sleep 1
@@ -109,7 +109,7 @@
     SUBJECT="${BODY}"
     BODY="Please see netfilter-mailcow for more details and triggered rules."
   else
-    SUBJECT="Watchdog ALERT: ${1}"
+    SUBJECT="${WATCHDOG_SUBJECT}: ${1}"
   fi
   IFS=',' read -r -a MAIL_RCPTS <<< "${WATCHDOG_NOTIFY_EMAIL}"
   for rcpt in "${MAIL_RCPTS[@]}"; do
@@ -210,7 +210,7 @@
       sleep 60
     else
       diff_c=0
-      sleep $(( ( RANDOM % 20 ) + 120 ))
+      sleep $(( ( RANDOM % 20 ) + 1800 ))
     fi
   done
   return 1
@@ -660,39 +660,6 @@
   return 1
 }
 
-ipv6nat_checks() {
-  err_count=0
-  diff_c=0
-  THRESHOLD=${IPV6NAT_THRESHOLD}
-  # Reduce error count by 2 after restarting an unhealthy container
-  trap "[ ${err_count} -gt 1 ] && err_count=$(( ${err_count} - 2 ))" USR1
-  while [ ${err_count} -lt ${THRESHOLD} ]; do
-    err_c_cur=${err_count}
-    CONTAINERS=$(curl --silent --insecure https://dockerapi/containers/json)
-    IPV6NAT_CONTAINER_ID=$(echo ${CONTAINERS} | jq -r ".[] | {name: .Config.Labels[\"com.docker.compose.service\"], project: .Config.Labels[\"com.docker.compose.project\"], id: .Id}" | jq -rc "select( .name | tostring | contains(\"ipv6nat-mailcow\")) | select( .project | tostring | contains(\"${COMPOSE_PROJECT_NAME,,}\")) | .id")
-    if [[ ! -z ${IPV6NAT_CONTAINER_ID} ]]; then
-      LATEST_STARTED="$(echo ${CONTAINERS} | jq -r ".[] | {name: .Config.Labels[\"com.docker.compose.service\"], project: .Config.Labels[\"com.docker.compose.project\"], StartedAt: .State.StartedAt}" | jq -rc "select( .project | tostring | contains(\"${COMPOSE_PROJECT_NAME,,}\")) | select( .name | tostring | contains(\"ipv6nat-mailcow\") | not)" | jq -rc .StartedAt | xargs -n1 date +%s -d | sort | tail -n1)"
-      LATEST_IPV6NAT="$(echo ${CONTAINERS} | jq -r ".[] | {name: .Config.Labels[\"com.docker.compose.service\"], project: .Config.Labels[\"com.docker.compose.project\"], StartedAt: .State.StartedAt}" | jq -rc "select( .project | tostring | contains(\"${COMPOSE_PROJECT_NAME,,}\")) | select( .name | tostring | contains(\"ipv6nat-mailcow\"))" | jq -rc .StartedAt | xargs -n1 date +%s -d | sort | tail -n1)"
-      DIFFERENCE_START_TIME=$(expr ${LATEST_IPV6NAT} - ${LATEST_STARTED} 2>/dev/null)
-      if [[ "${DIFFERENCE_START_TIME}" -lt 30 ]]; then
-        err_count=$(( ${err_count} + 1 ))
-      fi
-    fi
-    [ ${err_c_cur} -eq ${err_count} ] && [ ! $((${err_count} - 1)) -lt 0 ] && err_count=$((${err_count} - 1)) diff_c=1
-    [ ${err_c_cur} -ne ${err_count} ] && diff_c=$(( ${err_c_cur} - ${err_count} ))
-    progress "IPv6 NAT" ${THRESHOLD} $(( ${THRESHOLD} - ${err_count} )) ${diff_c}
-    if [[ $? == 10 ]]; then
-      diff_c=0
-      sleep 30
-    else
-      diff_c=0
-      sleep 300
-    fi
-  done
-  return 1
-}
-
-
 rspamd_checks() {
   err_count=0
   diff_c=0
@@ -1005,18 +972,6 @@
 echo "Spawned acme_checks with PID ${PID}"
 BACKGROUND_TASKS+=(${PID})
 
-(
-while true; do
-  if ! ipv6nat_checks; then
-    log_msg "IPv6 NAT warning: ipv6nat-mailcow container was not started at least 30s after siblings (not an error)"
-    echo ipv6nat-mailcow > /tmp/com_pipe
-  fi
-done
-) &
-PID=$!
-echo "Spawned ipv6nat_checks with PID ${PID}"
-BACKGROUND_TASKS+=(${PID})
-
 # Monitor watchdog agents, stop script when agents fails and wait for respawn by Docker (restart:always:n)
 (
 while true; do
@@ -1112,9 +1067,7 @@
       else
         log_msg "Sending restart command to ${CONTAINER_ID}..."
         curl --silent --insecure -XPOST https://dockerapi/containers/${CONTAINER_ID}/restart
-        if [[ ${com_pipe_answer} != "ipv6nat-mailcow" ]]; then
-          [[ ! -z ${WATCHDOG_NOTIFY_EMAIL} ]] && mail_error "${com_pipe_answer}"
-        fi
+        [[ ! -z ${WATCHDOG_NOTIFY_EMAIL} ]] && mail_error "${com_pipe_answer}"
         log_msg "Wait for restarted container to settle and continue watching..."
         sleep 35
       fi
diff --git a/mailcow/src/mailcow-dockerized/data/conf/dovecot/dovecot.conf b/mailcow/src/mailcow-dockerized/data/conf/dovecot/dovecot.conf
index cef7de8..b7aca75 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/dovecot/dovecot.conf
+++ b/mailcow/src/mailcow-dockerized/data/conf/dovecot/dovecot.conf
@@ -45,36 +45,25 @@
 auth_master_user_separator = *
 mail_shared_explicit_inbox = yes
 mail_prefetch_count = 30
+passdb {
+  driver = lua
+  args = file=/etc/dovecot/lua/passwd-verify.lua blocking=yes
+  result_success = return-ok
+  result_failure = continue
+  result_internalfail = continue
+}
 # try a master passwd
 passdb {
   driver = passwd-file
   args = /etc/dovecot/dovecot-master.passwd
   master = yes
-  pass = yes
-  result_failure = continue
-  result_internalfail = continue
-}
-# try an app passwd
-passdb {
-  driver = lua
-  args = file=/etc/dovecot/lua/app-passdb.lua blocking=yes
-  pass = yes
-  result_failure = continue
-  result_internalfail = continue
+  skip = authenticated
 }
 # check for regular password - if empty (e.g. force-passwd-reset), previous pass=yes passdbs also fail
 # a return of the following passdb is mandatory
 passdb {
-  args = /etc/dovecot/sql/dovecot-dict-sql-passdb.conf
-  driver = sql
-  result_success = return-ok
-  result_failure = continue
-  result_internalfail = continue
-}
-passdb {
-  driver = passwd-file
-  args = /etc/dovecot/dovecot-master.passwd
-  skip = authenticated
+  driver = lua
+  args = file=/etc/dovecot/lua/passwd-verify.lua blocking=yes
 }
 # Set doveadm_password=your-secret-password in data/conf/dovecot/extra.conf (create if missing)
 service doveadm {
@@ -83,224 +72,7 @@
   }
   vsz_limit=2048 MB
 }
-namespace inbox {
-  inbox = yes
-  location =
-  separator = /
-  mailbox "Trash" {
-    auto = subscribe
-    special_use = \Trash
-  }
-  mailbox "Deleted Messages" {
-    special_use = \Trash
-  }
-  mailbox "Deleted Items" {
-    special_use = \Trash
-  }
-  mailbox "Rubbish" {
-    special_use = \Trash
-  }
-  mailbox "Gelöschte Objekte" {
-    special_use = \Trash
-  }
-  mailbox "Gelöschte Elemente" {
-    special_use = \Trash
-  }
-  mailbox "Papierkorb" {
-    special_use = \Trash
-  }
-  mailbox "Itens Excluidos" {
-    special_use = \Trash
-  }
-  mailbox "Itens Excluídos" {
-    special_use = \Trash
-  }
-  mailbox "Lixeira" {
-    special_use = \Trash
-  }
-  mailbox "Prullenbak" {
-    special_use = \Trash
-  }
-  mailbox "Odstránené položky" {
-    special_use = \Trash
-  }
-  mailbox "Koš" {
-    special_use = \Trash
-  }
-  mailbox "Verwijderde items" {
-    special_use = \Trash
-  }
-  mailbox "废件箱" {
-    special_use = \Trash
-  }
-  mailbox "已删除消息" {
-    special_use = \Trash
-  }
-  mailbox "已删除邮件" {
-    special_use = \Trash
-  }
-  mailbox "Archive" {
-    auto = subscribe
-    special_use = \Archive
-  }
-  mailbox "Archiv" {
-    special_use = \Archive
-  }
-  mailbox "Archives" {
-    special_use = \Archive
-  }
-  mailbox "Arquivo" {
-    special_use = \Archive
-  }
-  mailbox "Arquivos" {
-    special_use = \Archive
-  }
-  mailbox "Archief" {
-    special_use = \Archive
-  }
-  mailbox "Archív" {
-    special_use = \Archive
-  }
-  mailbox "Archivovať" {
-    special_use = \Archive
-  }
-  mailbox "归档" {
-    special_use = \Archive
-  }
-  mailbox "Sent" {
-    auto = subscribe
-    special_use = \Sent
-  }
-  mailbox "Sent Messages" {
-    special_use = \Sent
-  }
-  mailbox "Sent Items" {
-    special_use = \Sent
-  }
-  mailbox "已发送" {
-    special_use = \Sent
-  }
-  mailbox "已发送消息" {
-    special_use = \Sent
-  }
-  mailbox "已发送邮件" {
-    special_use = \Sent
-  }
-  mailbox "Gesendet" {
-    special_use = \Sent
-  }
-  mailbox "Gesendete Objekte" {
-    special_use = \Sent
-  }
-  mailbox "Gesendete Elemente" {
-    special_use = \Sent
-  }
-  mailbox "Itens Enviados" {
-    special_use = \Sent
-  }
-  mailbox "Enviados" {
-    special_use = \Sent
-  }
-  mailbox "Verzonden items" {
-    special_use = \Sent
-  }
-  mailbox "Verzonden" {
-    special_use = \Sent
-  }
-  mailbox "Odoslaná pošta" {
-    special_use = \Sent
-  }
-  mailbox "Odoslané" {
-    special_use = \Sent
-  }
-  mailbox "Drafts" {
-    auto = subscribe
-    special_use = \Drafts
-  }
-  mailbox "Entwürfe" {
-    special_use = \Drafts
-  }
-  mailbox "Rascunhos" {
-    special_use = \Drafts
-  }
-  mailbox "Concepten" {
-    special_use = \Drafts
-  }
-  mailbox "Koncepty" {
-    special_use = \Drafts
-  }
-  mailbox "草稿" {
-    special_use = \Drafts
-  }
-  mailbox "草稿箱" {
-    special_use = \Drafts
-  }
-  mailbox "Junk" {
-    auto = subscribe
-    special_use = \Junk
-  }
-  mailbox "Junk-E-Mail" {
-    special_use = \Junk
-  }
-  mailbox "Junk E-Mail" {
-    special_use = \Junk
-  }
-  mailbox "Spam" {
-    special_use = \Junk
-  }
-  mailbox "Lixo Eletrônico" {
-    special_use = \Junk
-  }
-  mailbox "Nevyžiadaná pošta" {
-    special_use = \Junk
-  }
-  mailbox "Infikované položky" {
-    special_use = \Junk
-  }
-  mailbox "Ongewenste e-mail" {
-    special_use = \Junk
-  }
-  mailbox "垃圾" {
-    special_use = \Junk
-  }
-  mailbox "垃圾箱" {
-    special_use = \Junk
-  }
-  mailbox "Koncepty" {
-    special_use = \Drafts
-  }
-  mailbox "Nevyžádaná pošta" {
-    special_use = \Junk
-  }
-  mailbox "Odstraněná pošta" {
-    special_use = \Trash
-  }
-  mailbox "Odeslaná pošta" {
-    special_use = \Sent
-  }
-  mailbox "Skräp" {
-    special_use = \Trash
-  }
-  mailbox "Borttagna Meddelanden" {
-    special_use = \Trash
-  }
-  mailbox "Arkiv" {
-    special_use = \Archive
-  }
-  mailbox "Arkeverat" {
-    special_use = \Archive
-  }
-  mailbox "Skickat" {
-    special_use = \Sent
-  }
-  mailbox "Skickade Meddelanden" {
-    special_use = \Sent
-  }
-  mailbox "Utkast" {
-    special_use = \Drafts
-  }
-  prefix =
-}
+!include /etc/dovecot/dovecot.folders.conf
 protocols = imap sieve lmtp pop3
 service dict {
   unix_listener dict {
@@ -331,6 +103,7 @@
     mode = 0600
     user = vmail
   }
+  vsz_limit = 2G
 }
 service managesieve-login {
   inet_listener sieve {
@@ -373,7 +146,7 @@
   }
 }
 service imap {
-  executable = imap imap-postlogin
+  executable = imap
   user = vmail
   vsz_limit = 1G
 }
@@ -389,8 +162,6 @@
 listen = *,[::]
 ssl_cert = </etc/ssl/mail/cert.pem
 ssl_key = </etc/ssl/mail/key.pem
-!include_try /etc/dovecot/sni.conf
-!include_try /etc/dovecot/sogo_trusted_ip.conf
 userdb {
   driver = passwd-file
   args = /etc/dovecot/dovecot-master.userdb
@@ -417,8 +188,7 @@
   acl_anyone = </etc/dovecot/acl_anyone
   acl_shared_dict = file:/var/vmail/shared-mailboxes.db
   acl = vfile
-  last_login_dict = </etc/dovecot/last_login
-  last_login_key = last-login/%s/%u
+  acl_user = %u
   fts = solr
   fts_autoindex = yes
   fts_solr = url=http://solr:8983/solr/dovecot-fts/
@@ -439,6 +209,7 @@
   imapsieve_mailbox2_causes = COPY
   imapsieve_mailbox2_before = file:/usr/lib/dovecot/sieve/report-ham.sieve
   # END
+  master_user = %u
   quota_warning = storage=95%% quota-warning 95 %u
   quota_warning2 = storage=80%% quota-warning 80 %u
   sieve_pipe_bin_dir = /usr/lib/dovecot/sieve
@@ -459,7 +230,6 @@
   sieve_after2 = /var/vmail/sieve/global_sieve_after.sieve
   sieve_duplicate_default_period = 1m
   sieve_duplicate_max_period = 7d
-  sieve_vacation_dont_check_recipient = yes
 
   # -- Global keys
   mail_crypt_global_private_key = </mail_crypt/ecprivkey.pem
@@ -491,13 +261,6 @@
 }
 submission_host = postfix:588
 mail_max_userip_connections = 500
-service imap-postlogin {
-  executable = script-login /usr/local/bin/postlogin.sh
-  unix_listener imap-postlogin {
-    user = vmail
-    mode = 0660
-  }
-}
 service stats {
   unix_listener stats-writer {
     mode = 0660
@@ -528,8 +291,12 @@
 replication_max_conns = 10
 doveadm_port = 12345
 replication_dsync_parameters = -d -l 30 -U -n INBOX
+# <Includes>
+!include_try /etc/dovecot/sni.conf
+!include_try /etc/dovecot/sogo_trusted_ip.conf
 !include_try /etc/dovecot/extra.conf
 !include_try /etc/dovecot/sogo-sso.conf
 !include_try /etc/dovecot/shared_namespace.conf
+# </Includes>
 default_client_limit = 10400
 default_vsz_limit = 1024 M
diff --git a/mailcow/src/mailcow-dockerized/data/conf/dovecot/dovecot.folders.conf b/mailcow/src/mailcow-dockerized/data/conf/dovecot/dovecot.folders.conf
new file mode 100644
index 0000000..99c9670
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/conf/dovecot/dovecot.folders.conf
@@ -0,0 +1,293 @@
+namespace inbox {

+  inbox = yes

+  location =

+  separator = /

+  mailbox "Trash" {

+    auto = subscribe

+    special_use = \Trash

+  }

+  mailbox "Deleted Messages" {

+    special_use = \Trash

+  }

+  mailbox "Deleted Items" {

+    special_use = \Trash

+  }

+  mailbox "Rubbish" {

+    special_use = \Trash

+  }

+  mailbox "Gelöschte Objekte" {

+    special_use = \Trash

+  }

+  mailbox "Gelöschte Elemente" {

+    special_use = \Trash

+  }

+  mailbox "Papierkorb" {

+    special_use = \Trash

+  }

+  mailbox "Itens Excluidos" {

+    special_use = \Trash

+  }

+  mailbox "Itens Excluídos" {

+    special_use = \Trash

+  }

+  mailbox "Lixeira" {

+    special_use = \Trash

+  }

+  mailbox "Prullenbak" {

+    special_use = \Trash

+  }

+  mailbox "Odstránené položky" {

+    special_use = \Trash

+  }

+  mailbox "Koš" {

+    special_use = \Trash

+  }

+  mailbox "Verwijderde items" {

+    special_use = \Trash

+  }

+  mailbox "Удаленные" {

+    special_use = \Trash

+  }

+  mailbox "Удаленные элементы" {

+    special_use = \Trash

+  }

+  mailbox "Корзина" {

+    special_use = \Trash

+  }

+  mailbox "Видалені" {

+    special_use = \Trash

+  }

+  mailbox "Видалені елементи" {

+    special_use = \Trash

+  }

+  mailbox "Кошик" {

+    special_use = \Trash

+  }

+  mailbox "废件箱" {

+    special_use = \Trash

+  }

+  mailbox "已删除消息" {

+    special_use = \Trash

+  }

+  mailbox "已删除邮件" {

+    special_use = \Trash

+  }

+  mailbox "Archive" {

+    auto = subscribe

+    special_use = \Archive

+  }

+  mailbox "Archiv" {

+    special_use = \Archive

+  }

+  mailbox "Archives" {

+    special_use = \Archive

+  }

+  mailbox "Arquivo" {

+    special_use = \Archive

+  }

+  mailbox "Arquivos" {

+    special_use = \Archive

+  }

+  mailbox "Archief" {

+    special_use = \Archive

+  }

+  mailbox "Archív" {

+    special_use = \Archive

+  }

+  mailbox "Archivovať" {

+    special_use = \Archive

+  }

+  mailbox "归档" {

+    special_use = \Archive

+  }

+  mailbox "Архив" {

+    special_use = \Archive

+  }

+  mailbox "Архів" {

+    special_use = \Archive

+  }

+  mailbox "Sent" {

+    auto = subscribe

+    special_use = \Sent

+  }

+  mailbox "Sent Messages" {

+    special_use = \Sent

+  }

+  mailbox "Sent Items" {

+    special_use = \Sent

+  }

+  mailbox "已发送" {

+    special_use = \Sent

+  }

+  mailbox "已发送消息" {

+    special_use = \Sent

+  }

+  mailbox "已发送邮件" {

+    special_use = \Sent

+  }

+  mailbox "Отправленные" {

+    special_use = \Sent

+  }

+  mailbox "Отправленные элементы" {

+    special_use = \Sent

+  }

+  mailbox "Надіслані" {

+    special_use = \Sent

+  }

+  mailbox "Надіслані елементи" {

+    special_use = \Sent

+  }

+  mailbox "Gesendet" {

+    special_use = \Sent

+  }

+  mailbox "Gesendete Objekte" {

+    special_use = \Sent

+  }

+  mailbox "Gesendete Elemente" {

+    special_use = \Sent

+  }

+  mailbox "Itens Enviados" {

+    special_use = \Sent

+  }

+  mailbox "Enviados" {

+    special_use = \Sent

+  }

+  mailbox "Verzonden items" {

+    special_use = \Sent

+  }

+  mailbox "Verzonden" {

+    special_use = \Sent

+  }

+  mailbox "Odoslaná pošta" {

+    special_use = \Sent

+  }

+  mailbox "Odoslané" {

+    special_use = \Sent

+  }

+  mailbox "Drafts" {

+    auto = subscribe

+    special_use = \Drafts

+  }

+  mailbox "Entwürfe" {

+    special_use = \Drafts

+  }

+  mailbox "Rascunhos" {

+    special_use = \Drafts

+  }

+  mailbox "Concepten" {

+    special_use = \Drafts

+  }

+  mailbox "Koncepty" {

+    special_use = \Drafts

+  }

+  mailbox "草稿" {

+    special_use = \Drafts

+  }

+  mailbox "草稿箱" {

+    special_use = \Drafts

+  }

+  mailbox "Черновики" {

+    special_use = \Drafts

+  }

+  mailbox "Чернетки" {

+    special_use = \Drafts

+  }

+  mailbox "Junk" {

+    auto = subscribe

+    special_use = \Junk

+  }

+  mailbox "Junk-E-Mail" {

+    special_use = \Junk

+  }

+  mailbox "Junk E-Mail" {

+    special_use = \Junk

+  }

+  mailbox "Spam" {

+    special_use = \Junk

+  }

+  mailbox "Lixo Eletrônico" {

+    special_use = \Junk

+  }

+  mailbox "Nevyžiadaná pošta" {

+    special_use = \Junk

+  }

+  mailbox "Infikované položky" {

+    special_use = \Junk

+  }

+  mailbox "Ongewenste e-mail" {

+    special_use = \Junk

+  }

+  mailbox "垃圾" {

+    special_use = \Junk

+  }

+  mailbox "垃圾箱" {

+    special_use = \Junk

+  }

+  mailbox "Нежелательная почта" {

+    special_use = \Junk

+  }

+  mailbox "Спам" {

+    special_use = \Junk

+  }

+  mailbox "Небажана пошта" {

+    special_use = \Junk

+  }

+  mailbox "Koncepty" {

+    special_use = \Drafts

+  }

+  mailbox "Nevyžádaná pošta" {

+    special_use = \Junk

+  }

+  mailbox "Odstraněná pošta" {

+    special_use = \Trash

+  }

+  mailbox "Odeslaná pošta" {

+    special_use = \Sent

+  }

+  mailbox "Skräp" {

+    special_use = \Trash

+  }

+  mailbox "Borttagna Meddelanden" {

+    special_use = \Trash

+  }

+  mailbox "Arkiv" {

+    special_use = \Archive

+  }

+  mailbox "Arkeverat" {

+    special_use = \Archive

+  }

+  mailbox "Skickat" {

+    special_use = \Sent

+  }

+  mailbox "Skickade Meddelanden" {

+    special_use = \Sent

+  }

+  mailbox "Utkast" {

+    special_use = \Drafts

+  }

+  mailbox "Skraldespand" {

+    special_use = \Trash

+  }

+  mailbox "Slettet mails" {

+    special_use = \Trash

+  }

+  mailbox "Arkiv" {

+    special_use = \Archive

+  }

+  mailbox "Arkiveret mails" {

+    special_use = \Archive

+  }

+  mailbox "Sendt" {

+    special_use = \Sent

+  }

+  mailbox "Sendte mails" {

+    special_use = \Sent

+  }

+  mailbox "Udkast" {

+    special_use = \Drafts

+  }

+  mailbox "Kladde" {

+    special_use = \Drafts

+  }

+  prefix =

+}
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/conf/dovecot/global_sieve_before b/mailcow/src/mailcow-dockerized/data/conf/dovecot/global_sieve_before
index e6a523d..3e79ca1 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/dovecot/global_sieve_before
+++ b/mailcow/src/mailcow-dockerized/data/conf/dovecot/global_sieve_before
@@ -1,2 +1,13 @@
 # global_sieve_before script
 # global_sieve_before -> user sieve_before (mailcow UI) -> user sieve_after (mailcow UI) -> global_sieve_after
+
+require ["mailbox", "fileinto"];
+
+if header :contains ["Chat-Version"] [""] {
+  if mailboxexists "DeltaChat" {
+    fileinto "DeltaChat";
+  } else {
+    fileinto :create "DeltaChat";
+  }
+  stop;
+}
diff --git a/mailcow/src/mailcow-dockerized/data/conf/nginx/includes/site-defaults.conf b/mailcow/src/mailcow-dockerized/data/conf/nginx/includes/site-defaults.conf
index c4c06b2..b38f4b2 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/nginx/includes/site-defaults.conf
+++ b/mailcow/src/mailcow-dockerized/data/conf/nginx/includes/site-defaults.conf
@@ -3,6 +3,8 @@
   charset utf-8;
   override_charset on;
 
+  server_tokens off;
+
   ssl_protocols TLSv1.2 TLSv1.3;
   ssl_prefer_server_ciphers on;
   ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;
@@ -86,6 +88,11 @@
     return 301 /SOGo/dav;
   }
 
+  location ^~ /inc/lib/ {
+    deny all;
+    return 403;
+  }
+
   location ~ \.php$ {
     try_files $uri =404;
     fastcgi_split_path_info ^(.+\.php)(/.+)$;
@@ -140,7 +147,6 @@
     try_files /autoconfig.php =404;
   }
 
-  # auth_request endpoint if ALLOW_ADMIN_EMAIL_LOGIN is set
   location /sogo-auth-verify {
     internal;
     proxy_set_header  X-Original-URI $request_uri;
@@ -152,7 +158,7 @@
   }
 
   location ^~ /Microsoft-Server-ActiveSync {
-    include /etc/nginx/conf.d/sogo_proxy_auth.active;
+    include /etc/nginx/conf.d/includes/sogo_proxy_auth.conf;
     include /etc/nginx/conf.d/sogo_eas.active;
     proxy_connect_timeout 75;
     proxy_send_timeout 3600;
@@ -166,7 +172,22 @@
   }
 
   location ^~ /SOGo {
-    include /etc/nginx/conf.d/sogo_proxy_auth.active;
+    location ~* ^/SOGo/so/.*\.(xml|js|html|xhtml)$ {
+      include /etc/nginx/conf.d/includes/sogo_proxy_auth.conf;
+      include /etc/nginx/conf.d/sogo.active;
+      proxy_set_header X-Real-IP $remote_addr;
+      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+      proxy_set_header Host $http_host;
+      proxy_set_header x-webobjects-server-protocol HTTP/1.0;
+      proxy_set_header x-webobjects-remote-host $remote_addr;
+      proxy_set_header x-webobjects-server-name $server_name;
+      proxy_set_header x-webobjects-server-url $client_req_scheme://$http_host;
+      proxy_set_header x-webobjects-server-port $server_port;
+      proxy_hide_header Content-Type;
+      add_header Content-Type text/plain;
+      break;
+    }
+    include /etc/nginx/conf.d/includes/sogo_proxy_auth.conf;
     include /etc/nginx/conf.d/sogo.active;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
diff --git a/mailcow/src/mailcow-dockerized/data/conf/nginx/includes/sogo_proxy_auth.conf b/mailcow/src/mailcow-dockerized/data/conf/nginx/includes/sogo_proxy_auth.conf
new file mode 100644
index 0000000..045b98a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/conf/nginx/includes/sogo_proxy_auth.conf
@@ -0,0 +1,8 @@
+auth_request /sogo-auth-verify;
+auth_request_set $user $upstream_http_x_user;
+auth_request_set $auth $upstream_http_x_auth;
+auth_request_set $auth_type $upstream_http_x_auth_type;
+proxy_set_header x-webobjects-remote-user "$user";
+proxy_set_header Authorization "$auth";
+proxy_set_header x-webobjects-auth-type "$auth_type";
+
diff --git a/mailcow/src/mailcow-dockerized/data/conf/nginx/site.conf b/mailcow/src/mailcow-dockerized/data/conf/nginx/site.conf
index d6e6b13..1b46d2b 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/nginx/site.conf
+++ b/mailcow/src/mailcow-dockerized/data/conf/nginx/site.conf
@@ -1,4 +1,3 @@
-server_tokens off;
 proxy_cache_path /tmp levels=1:2 keys_zone=sogo:10m inactive=24h  max_size=1g;
 server_names_hash_bucket_size 64;
 
diff --git a/mailcow/src/mailcow-dockerized/data/conf/nginx/templates/server_name.template b/mailcow/src/mailcow-dockerized/data/conf/nginx/templates/server_name.template
deleted file mode 100644
index 261a1ec..0000000
--- a/mailcow/src/mailcow-dockerized/data/conf/nginx/templates/server_name.template
+++ /dev/null
@@ -1 +0,0 @@
-server_name ${MAILCOW_HOSTNAME} autodiscover.* autoconfig.*;
diff --git a/mailcow/src/mailcow-dockerized/data/conf/nginx/templates/server_name.template.sh b/mailcow/src/mailcow-dockerized/data/conf/nginx/templates/server_name.template.sh
new file mode 100755
index 0000000..291b378
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/conf/nginx/templates/server_name.template.sh
@@ -0,0 +1 @@
+echo "server_name ${MAILCOW_HOSTNAME} autodiscover.* autoconfig.* $(echo ${ADDITIONAL_SERVER_NAMES} | tr ',' ' ');"
diff --git a/mailcow/src/mailcow-dockerized/data/conf/nginx/templates/sogo.auth_request.template.sh b/mailcow/src/mailcow-dockerized/data/conf/nginx/templates/sogo.auth_request.template.sh
deleted file mode 100644
index f6d2d98..0000000
--- a/mailcow/src/mailcow-dockerized/data/conf/nginx/templates/sogo.auth_request.template.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-if printf "%s\n" "${ALLOW_ADMIN_EMAIL_LOGIN}" | grep -E '^([yY][eE][sS]|[yY])+$' >/dev/null; then
-    echo 'auth_request /sogo-auth-verify;
-auth_request_set $user $upstream_http_x_user;
-auth_request_set $auth $upstream_http_x_auth;
-auth_request_set $auth_type $upstream_http_x_auth_type;
-proxy_set_header x-webobjects-remote-user "$user";
-proxy_set_header Authorization "$auth";
-proxy_set_header x-webobjects-auth-type "$auth_type";
-'
-fi
diff --git a/mailcow/src/mailcow-dockerized/data/conf/phpfpm/php-conf.d/other.ini b/mailcow/src/mailcow-dockerized/data/conf/phpfpm/php-conf.d/other.ini
index 379be75..02f59a9 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/phpfpm/php-conf.d/other.ini
+++ b/mailcow/src/mailcow-dockerized/data/conf/phpfpm/php-conf.d/other.ini
@@ -1,2 +1,3 @@
 max_execution_time = 3600
 max_input_time = 3600
+memory_limit = 512M
diff --git a/mailcow/src/mailcow-dockerized/data/conf/postfix/main.cf b/mailcow/src/mailcow-dockerized/data/conf/postfix/main.cf
index 3e4b2b1..b4f34b4 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/postfix/main.cf
+++ b/mailcow/src/mailcow-dockerized/data/conf/postfix/main.cf
@@ -7,7 +7,6 @@
 smtpd_tls_key_file = /etc/ssl/mail/key.pem
 tls_server_sni_maps = hash:/opt/postfix/conf/sni.map
 smtpd_tls_received_header = yes
-smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
 smtpd_relay_restrictions = permit_mynetworks,
   permit_sasl_authenticated,
@@ -78,7 +77,7 @@
 postscreen_non_smtp_command_enable = no
 postscreen_pipelining_enable = no
 proxy_read_maps = proxy:mysql:/opt/postfix/conf/sql/mysql_sasl_passwd_maps_transport_maps.cf,
-  proxy:mysql:/opt/postfix/conf/sql/mysql_sasl_access_maps.cf,
+  proxy:mysql:/opt/postfix/conf/sql/mysql_mbr_access_maps.cf,
   proxy:mysql:/opt/postfix/conf/sql/mysql_tls_enforce_in_policy.cf,
   $sender_dependent_default_transport_maps,
   $smtp_tls_policy_maps,
@@ -116,7 +115,7 @@
 smtpd_hard_error_limit = ${stress?1}${stress:5}
 smtpd_helo_required = yes
 smtpd_proxy_timeout = 600s
-smtpd_recipient_restrictions = check_sasl_access proxy:mysql:/opt/postfix/conf/sql/mysql_sasl_access_maps.cf,
+smtpd_recipient_restrictions = check_recipient_mx_access proxy:mysql:/opt/postfix/conf/sql/mysql_mbr_access_maps.cf,
   permit_sasl_authenticated,
   permit_mynetworks,
   check_recipient_access proxy:mysql:/opt/postfix/conf/sql/mysql_tls_enforce_in_policy.cf,
@@ -160,8 +159,9 @@
 virtual_gid_maps = static:5000
 virtual_mailbox_base = /var/vmail/
 virtual_mailbox_domains = proxy:mysql:/opt/postfix/conf/sql/mysql_virtual_domains_maps.cf
-recipient_bcc_maps = proxy:mysql:/opt/postfix/conf/sql/mysql_recipient_bcc_maps.cf
-sender_bcc_maps = proxy:mysql:/opt/postfix/conf/sql/mysql_sender_bcc_maps.cf
+# -- moved to rspamd on 2021-06-01
+#recipient_bcc_maps = proxy:mysql:/opt/postfix/conf/sql/mysql_recipient_bcc_maps.cf
+#sender_bcc_maps = proxy:mysql:/opt/postfix/conf/sql/mysql_sender_bcc_maps.cf
 recipient_canonical_maps = proxy:mysql:/opt/postfix/conf/sql/mysql_recipient_canonical_maps.cf
 recipient_canonical_classes = envelope_recipient
 virtual_mailbox_maps = proxy:mysql:/opt/postfix/conf/sql/mysql_virtual_mailbox_maps.cf
@@ -191,11 +191,10 @@
 postscreen_discard_ehlo_keywords = silent-discard, dsn
 compatibility_level = 2
 smtputf8_enable = no
-smtpd_last_auth = check_policy_service inet:127.0.0.1:10028
 # Define protocols for SMTPS and submission service
 submission_smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
 smtps_smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
+parent_domain_matches_subdomains = debug_peer_list,fast_flush_domains,mynetworks,qmqpd_authorized_clients
 
 # DO NOT EDIT ANYTHING BELOW #
 # User overrides #
-
diff --git a/mailcow/src/mailcow-dockerized/data/conf/postfix/master.cf b/mailcow/src/mailcow-dockerized/data/conf/postfix/master.cf
index ffd1ac4..63ce875 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/postfix/master.cf
+++ b/mailcow/src/mailcow-dockerized/data/conf/postfix/master.cf
@@ -17,7 +17,6 @@
   -o tls_preempt_cipherlist=yes
   -o cleanup_service_name=smtp_sender_cleanup
   -o syslog_name=postfix/smtps
-  -o smtpd_end_of_data_restrictions=$smtpd_last_auth
 10465    inet  n       -       n       -       -       smtpd
   -o smtpd_upstream_proxy_protocol=haproxy
   -o smtpd_tls_wrappermode=yes
@@ -26,7 +25,6 @@
   -o tls_preempt_cipherlist=yes
   -o cleanup_service_name=smtp_sender_cleanup
   -o syslog_name=postfix/smtps-haproxy
-  -o smtpd_end_of_data_restrictions=$smtpd_last_auth
 
 # smtpd with starttls on 587/tcp
 # TLS protocol can be modified by setting submission_smtpd_tls_mandatory_protocols in extra.cf
@@ -38,7 +36,6 @@
   -o tls_preempt_cipherlist=yes
   -o cleanup_service_name=smtp_sender_cleanup
   -o syslog_name=postfix/submission
-  -o smtpd_end_of_data_restrictions=$smtpd_last_auth
 10587      inet n       -       n       -       -       smtpd
   -o smtpd_upstream_proxy_protocol=haproxy
   -o smtpd_client_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
@@ -48,7 +45,6 @@
   -o tls_preempt_cipherlist=yes
   -o cleanup_service_name=smtp_sender_cleanup
   -o syslog_name=postfix/submission-haproxy
-  -o smtpd_end_of_data_restrictions=$smtpd_last_auth
 
 # used by SOGo
 # smtpd_sender_restrictions should match main.cf, but with check_sasl_access prepended for login-as-mailbox-user function
@@ -58,7 +54,6 @@
   -o smtpd_sender_restrictions=check_sasl_access,regexp:/opt/postfix/conf/allow_mailcow_local.regexp,reject_authenticated_sender_login_mismatch,permit_mynetworks,permit_sasl_authenticated,reject_unlisted_sender,reject_unknown_sender_domain
   -o cleanup_service_name=smtp_sender_cleanup
   -o syslog_name=postfix/sogo
-  -o smtpd_end_of_data_restrictions=$smtpd_last_auth
 
 # used to reinject quarantine mails
 590 inet n      -       n       -       -       smtpd
@@ -68,7 +63,15 @@
   -o smtpd_milters=
   -o non_smtpd_milters=
   -o syslog_name=postfix/quarantine
-  -o smtpd_end_of_data_restrictions=$smtpd_last_auth
+
+# used to send bcc mails
+591 inet n      -       n       -       -       smtpd
+  -o smtpd_helo_restrictions=
+  -o smtpd_client_restrictions=permit_mynetworks,reject
+  -o smtpd_tls_auth_only=no
+  -o smtpd_milters=
+  -o non_smtpd_milters=
+  -o syslog_name=postfix/bcc
 
 # enforced smtp connector
 smtp_enforced_tls      unix  -       -       n       -       -       smtp
@@ -115,7 +118,6 @@
 
 # start whitelist_fwd
 127.0.0.1:10027 inet n n n - 0 spawn user=nobody argv=/usr/local/bin/whitelist_forwardinghosts.sh
-127.0.0.1:10028 inet n n n - 0 spawn user=nobody argv=/usr/local/bin/smtpd_last_login.sh
 # end whitelist_fwd
 
 # start watchdog-specific
diff --git a/mailcow/src/mailcow-dockerized/data/conf/rspamd/custom/bad_asn.map b/mailcow/src/mailcow-dockerized/data/conf/rspamd/custom/bad_asn.map
index fb42628..1858c55 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/rspamd/custom/bad_asn.map
+++ b/mailcow/src/mailcow-dockerized/data/conf/rspamd/custom/bad_asn.map
@@ -1,30 +1,30 @@
 # High spam networks, disabled by default
 # ASN SCORE DESC
 # Remove comment to enable score
-#201942 5 #Soltia Consulting SL - ipinfo.io
-#16276 2 #OVH
-#12876 2 #ONLINE S.A.S
-#31034 5 #ARUBA-ASN, IT
-#12874 5 #FASTWEB, IT
-#30823 3 #PKV spam
-#42831 5 #UK Dedicated Servers Ltd
-#29119 5 #Aire Networks del Mediterraneo S.L.U.
-#13335 5 #Cloudflare
-#28753 5 #Leaseweb
-#61272 5 #Informacines sistemos ir technologijos
-#53755 5 #Input Output Flood LLC
-#29422 5 #FICIX Helsinki
-#62255 4 #Asmunda New Media Ltd
-#14061 4 #Digitalocean
-#55293 4 #A2 Hosting
-#63018 4 #US Dedicated
-#197518 2 #RACKMARKT
-#44493 2
-#46606 2
-#49505 2
-#21100 2
-#197695 2
-#198068 2
-#43146 2
-#49100 4
-#39364 4
+#12874 5 #Fastweb SpA, Italy
+#12876 2 #ONLINE S.A.S, France
+#13335 5 #Cloudflare Inc., United States
+#14061 4 #DigitalOcean LLC, United States
+#16276 2 #OVH SAS, France
+#21100 2 #ITL LLC, Ukraine
+#28753 5 #Leaseweb Deutschland GmbH, Germany
+#29119 5 #ServiHosting Networks S.L., Spain
+#29422 5 #Telia Inmics-Nebula Oy, Finland
+#30823 3 #combahton GmbH, Germany
+#31034 5 #Aruba S.p.A, Italy
+#39364 4 #Hormoz IT & Network Waves Connection Co. (PJS), Iran
+#42831 5 #UK Dedicated Servers Limited, United Kingdom
+#43146 2 #Domain names registrar REG.RU Ltd, Russia
+#44493 2 #Chelyabinsk-Signal LLC, Russia
+#46606 2 #Unified Layer, United States
+#49100 4 #Pishgaman Toseeh Ertebatat Company (Private Joint Stock), Iran
+#49505 2 #OOO Network of data-centers Selectel, Russia
+#53755 5 #Input Output Flood LLC, United States
+#55293 4 #A2 Hosting Inc., United States
+#61272 5 #Informacines sistemos ir technologijos - UAB, Lithuania
+#62255 4 #Asmunda New Media Ltd., Seychelles
+#63018 4 #Dedicated.com, United States
+#197518 2 #Rackmarkt SL, Spain
+#197695 2 #Domain names registrar REG.RU Ltd, Russia
+#198068 2 #P.A.G.M. OU, Estonia
+#201942 5 #Soltia Consulting SL, Spain
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/conf/rspamd/custom/bad_header.map b/mailcow/src/mailcow-dockerized/data/conf/rspamd/custom/bad_header.map
new file mode 100644
index 0000000..839c3c3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/conf/rspamd/custom/bad_header.map
@@ -0,0 +1,2 @@
+/Thread-Topic:\s[a-zA-Z]{3}\s[a-zA-Z]{2}[\s\r\n]{0,1}[^a-zA-Z0-9][\r\n]/i
+/Thread-Topic:\s[a-zA-Z]{3}\s[a-zA-Z]{2}\s[a-zA-Z]{1}\s[a-zA-Z]{5}[\s\r\n]{0,1}[^a-zA-Z0-9][\r\n]/i
diff --git a/mailcow/src/mailcow-dockerized/data/conf/rspamd/custom/bulk_header.map b/mailcow/src/mailcow-dockerized/data/conf/rspamd/custom/bulk_header.map
index 303954e..e9dc206 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/rspamd/custom/bulk_header.map
+++ b/mailcow/src/mailcow-dockerized/data/conf/rspamd/custom/bulk_header.map
@@ -1,5 +1,5 @@
 /X-EMV-Platform; .*/i
-/.*nur-1-click*/i
+/.*nur-1-click.*/i
 /.*episerver.*/i
 /.*supergewinne.*/i
 /List-Unsubscribe.*nbps\.eu/i
@@ -16,3 +16,4 @@
 /.*dynamic-lht.*/i
 /.*light-house-traffic.*/i
 /.*newsletterplus.*/i
+/.*X-Chpo.*/i
diff --git a/mailcow/src/mailcow-dockerized/data/conf/rspamd/dynmaps/bcc.php b/mailcow/src/mailcow-dockerized/data/conf/rspamd/dynmaps/bcc.php
new file mode 100644
index 0000000..3145fee
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/conf/rspamd/dynmaps/bcc.php
@@ -0,0 +1,88 @@
+<?php

+// File size is limited by Nginx site to 10M

+// To speed things up, we do not include prerequisites

+header('Content-Type: text/plain');

+require_once "vars.inc.php";

+// Do not show errors, we log to using error_log

+ini_set('error_reporting', 0);

+// Init database

+//$dsn = $database_type . ':host=' . $database_host . ';dbname=' . $database_name;

+$dsn = $database_type . ":unix_socket=" . $database_sock . ";dbname=" . $database_name;

+$opt = [

+    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,

+    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,

+    PDO::ATTR_EMULATE_PREPARES   => false,

+];

+try {

+  $pdo = new PDO($dsn, $database_user, $database_pass, $opt);

+}

+catch (PDOException $e) {

+  error_log("BCC MAP SQL ERROR: " . $e . PHP_EOL);

+  http_response_code(501);

+  exit;

+}

+

+function parse_email($email) {

+  if(!filter_var($email, FILTER_VALIDATE_EMAIL)) return false;

+  $a = strrpos($email, '@');

+  return array('local' => substr($email, 0, $a), 'domain' => substr(substr($email, $a), 1));

+}

+if (!function_exists('getallheaders'))  {

+  function getallheaders() {

+    if (!is_array($_SERVER)) {

+      return array();

+    }

+    $headers = array();

+    foreach ($_SERVER as $name => $value) {

+      if (substr($name, 0, 5) == 'HTTP_') {

+        $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;

+      }

+    }

+    return $headers;

+  }

+}

+

+// Read headers

+$headers = getallheaders();

+// Get rcpt

+$rcpt = $headers['Rcpt'];

+// Get from

+$from = $headers['From'];

+// Remove tags

+$rcpt = preg_replace('/^(.*?)\+.*(@.*)$/', '$1$2', $rcpt);

+$from = preg_replace('/^(.*?)\+.*(@.*)$/', '$1$2', $from);

+

+try {

+  if (!empty($rcpt)) {

+    $stmt = $pdo->prepare("SELECT `bcc_dest` FROM `bcc_maps` WHERE `type` = 'rcpt' AND `local_dest` = :local_dest AND `active` = '1'");

+    $stmt->execute(array(

+      ':local_dest' => $rcpt

+    ));

+    $bcc_dest = $stmt->fetch(PDO::FETCH_ASSOC)['bcc_dest'];

+    if (!empty($bcc_dest) && filter_var($bcc_dest, FILTER_VALIDATE_EMAIL)) {

+      error_log("BCC MAP: returning ". $bcc_dest . " for " . $rcpt . PHP_EOL);

+      http_response_code(201);

+      echo trim($bcc_dest);

+      exit;

+    }

+  }

+  if (!empty($from)) {

+    $stmt = $pdo->prepare("SELECT `bcc_dest` FROM `bcc_maps` WHERE `type` = 'sender' AND `local_dest` = :local_dest AND `active` = '1'");

+    $stmt->execute(array(

+      ':local_dest' => $from

+    ));

+    $bcc_dest = $stmt->fetch(PDO::FETCH_ASSOC)['bcc_dest'];

+    if (!empty($bcc_dest) && filter_var($bcc_dest, FILTER_VALIDATE_EMAIL)) {

+      error_log("BCC MAP: returning ". $bcc_dest . " for " . $from . PHP_EOL);

+      http_response_code(201);

+      echo trim($bcc_dest);

+      exit;

+    }

+  }

+}

+catch (PDOException $e) {

+  error_log("BCC MAP SQL ERROR: " . $e->getMessage() . PHP_EOL);

+  http_response_code(502);

+  exit;

+}

+

diff --git a/mailcow/src/mailcow-dockerized/data/conf/rspamd/dynmaps/sasl_logs.php b/mailcow/src/mailcow-dockerized/data/conf/rspamd/dynmaps/sasl_logs.php
new file mode 100644
index 0000000..2d4cbe6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/conf/rspamd/dynmaps/sasl_logs.php
@@ -0,0 +1,2 @@
+<?php
+// PoC
diff --git a/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/composites.conf b/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/composites.conf
index 13c977c..337a2eb 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/composites.conf
+++ b/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/composites.conf
@@ -11,6 +11,11 @@
   expression = "-g+:policies & !DMARC_POLICY_ALLOW & !MAILLIST & ( FREEMAIL_ENVFROM | FREEMAIL_FROM ) & !WHITELISTED_FWD_HOST";
   score = 16.0;
 }
+# Applies to freemail with undisclosed recipients
+FREEMAIL_TO_UNDISC_RCPT {
+  expression = "FREEMAIL_FROM & ( MISSING_TO | R_UNDISC_RCPT | TO_EQ_FROM )";
+  score = 5.0;
+}
 # Bad policy from non-whitelisted senders
 # Remove SOGO_CONTACT symbol for fwd hosts and senders with broken policy
 SOGO_CONTACT_EXCLUDE {
@@ -29,23 +34,37 @@
 }
 # Applies to a content filter map
 BAD_WORD_BAD_TLD {
-  expression = "FISHY_TLD & ( BAD_WORDS | BAD_WORDS_DE )"
+  expression = "FISHY_TLD & ( BAD_WORDS | BAD_WORDS_DE )";
   score = 10.0;
 }
 # Forged with bad policies and not fwd host, keep bad policy symbols
 FORGED_W_BAD_POLICY {
-  expression = "( -g+:policies | -R_SPF_NA) & ( ~FROM_NEQ_ENVFROM | ~FORGED_SENDER ) & !WHITELISTED_FWD_HOST & !DMARC_POLICY_ALLOW"
+  expression = "( -g+:policies | -R_SPF_NA) & ( ~FROM_NEQ_ENVFROM | ~FORGED_SENDER ) & !WHITELISTED_FWD_HOST & !DMARC_POLICY_ALLOW";
   score = 3.0;
 }
 # Keep negative (good) scores for rbl, policies and hfilter, disable neural group
 WL_FWD_HOST {
-  expression = "-WHITELISTED_FWD_HOST & (^g+:rbl | ^g+:policies | ^g+:hfilter | ^g:neural)"
+  expression = "-WHITELISTED_FWD_HOST & (^g+:rbl | ^g+:policies | ^g+:hfilter | ^g:neural)";
 }
 # Exclude X-Spam like flags from scoring from fwd and sieve hosts
 UPSTREAM_CHECKS_EXCLUDE_FWD_HOST {
-  expression = "(-SIEVE_HOST | -WHITELISTED_FWD_HOST) & (^UNITEDINTERNET_SPAM | ^SPAM_FLAG | ^KLMS_SPAM | ^AOL_SPAM | ^MICROSOFT_SPAM)"
+  expression = "(-SIEVE_HOST | -WHITELISTED_FWD_HOST) & (^UNITEDINTERNET_SPAM | ^SPAM_FLAG | ^KLMS_SPAM | ^AOL_SPAM | ^MICROSOFT_SPAM)";
 }
 # Remove fuzzy group from bounces
 BOUNCE_FUZZY {
   expression = "-BOUNCE & ^g+:fuzzy";
 }
+# Remove bayes ham if fuzzy denied
+FUZZY_HAM_MISMATCH {
+  expression = "( -FUZZY_DENIED | -MAILCOW_FUZZY_DENIED | -LOCAL_FUZZY_DENIED ) & ( ^BAYES_HAM | ^NEURAL_HAM_LONG | ^NEURAL_HAM_SHORT )";
+}
+# Remove bayes spam if local fuzzy white
+FUZZY_SPAM_MISMATCH {
+  expression = "( -LOCAL_FUZZY_WHITE ) & ( ^BAYES_SPAM | ^NEURAL_SPAM_LONG | ^NEURAL_SPAM_SHORT )";
+}
+WL_FWD_HOST {
+  expression = "-WHITELISTED_FWD_HOST & (^g+:rbl | ^g+:policies | ^g+:hfilter | ^g:neural)";
+}
+ENCRYPTED_CHAT {
+  expression = "CHAT_VERSION_HEADER & ENCRYPTED_PGP";
+}
diff --git a/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/dkim_signing.conf b/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/dkim_signing.conf
index 13eb094..4fac27f 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/dkim_signing.conf
+++ b/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/dkim_signing.conf
@@ -32,4 +32,4 @@
 # forwards are arc signed, rejects are dkim signed
 sign_networks = "/etc/rspamd/custom/dovecot_trusted.map";
 use_domain_sign_networks = "header";
-sign_headers = "from:sender:reply-to:subject:date:message-id:to:cc:mime-version:content-type:content-transfer-encoding:resent-to:resent-cc:resent-from:resent-sender:resent-message-id:in-reply-to:references:list-id:list-help:list-owner:list-unsubscribe:list-subscribe:list-post:openpgp:autocrypt";
+sign_headers = "from:sender:reply-to:subject:date:message-id:to:cc:mime-version:content-type:content-transfer-encoding:content-language:resent-to:resent-cc:resent-from:resent-sender:resent-message-id:in-reply-to:references:list-id:list-help:list-owner:list-unsubscribe:list-subscribe:list-post:list-unsubscribe-post:disposition-notification-to:disposition-notification-options:original-recipient:openpgp:autocrypt";
diff --git a/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/external_services.conf b/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/external_services.conf
index f05314b..2b091ff 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/external_services.conf
+++ b/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/external_services.conf
@@ -6,4 +6,7 @@
   # mime-part regex matching in content-type or filename
   # block all macros
   extended = true;
+  max_size = 3145728;
+  timeout = 20.0;
+  retransmits = 1;
 }
diff --git a/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/groups.conf b/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/groups.conf
index ef599ef..9ca3409 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/groups.conf
+++ b/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/groups.conf
@@ -9,9 +9,15 @@
   "BAD_REP_POLICIES" {
     score = 2.0;
   }
+  "BAD_HEADER" {
+    score = 10.0;
+  }
   "BULK_HEADER" {
     score = 4.0;
   }
+  "ENCRYPTED_CHAT" {
+    score = -20.0;
+  }
 }
 
 group "MX" {
diff --git a/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/metadata_exporter.conf b/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/metadata_exporter.conf
index f29f480..b6aa150 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/metadata_exporter.conf
+++ b/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/metadata_exporter.conf
@@ -51,6 +51,7 @@
     and not task:has_symbol('GLOBAL_MIME_FROM_BL')
     and not task:has_symbol('LOCAL_BL_ASN')
     and not task:has_symbol('GLOBAL_RCPT_BL')
+    and not task:has_symbol('BAD_SUBJECT_00')
     and not task:has_symbol('MAILCOW_BLACK') then
       local action = task:get_metric_action('default')
       if action == 'reject' or action == 'add header' or action == 'rewrite subject' then
diff --git a/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/multimap.conf b/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/multimap.conf
index 0f05bb5..17ada99 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/multimap.conf
+++ b/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/multimap.conf
@@ -19,6 +19,22 @@
   symbols_set = ["BULK_HEADER"];
 }
 
+CHAT_VERSION_HEADER {
+  type = "header";
+  header = "Chat-Version";
+  map = "${LOCAL_CONFDIR}/custom/chat_versions.map";
+  regexp = true;
+  symbols_set = ["CHAT_VERSION_HEADER"];
+}
+
+BAD_HEADER {
+  type = "content";
+  map = "${LOCAL_CONFDIR}/custom/bad_header.map";
+  filter = "headers"
+  regexp = true;
+  symbols_set = ["BAD_HEADER"];
+}
+
 LOCAL_BL_ASN {
   require_symbols = "!MAILCOW_WHITE";
   type = "asn";
@@ -80,7 +96,6 @@
   type = "ip";
   map = "${LOCAL_CONFDIR}/custom/dovecot_trusted.map";
   symbols_set = ["SIEVE_HOST"];
-  score = -15;
 }
 
 RSPAMD_HOST {
@@ -136,7 +151,7 @@
   score = 5.0;
 }
 
-BAZAR_ABUSE_CH {
+BAZAAR_ABUSE_CH {
   type = "selector";
   selector = "attachments(hex,md5)";
   map = "https://bazaar.abuse.ch/export/txt/md5/recent/";
@@ -155,3 +170,12 @@
   map = "redis://SMTP_LIMITED_ACCESS";
   symbols_set = ["SMTP_LIMITED_ACCESS"];
 }
+
+BAD_SUBJECT_00 {
+  type = "header";
+  header = "subject";
+  regexp = true;
+  map = "http://nullnull.org/bad-subject-regex.txt";
+  score = 6.0;
+  symbols_set = ["BAD_SUBJECT_00"];
+}
diff --git a/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/options.inc b/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/options.inc
index 4fbdfba..fcf499d 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/options.inc
+++ b/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/options.inc
@@ -2,8 +2,7 @@
   enable_dnssec = true;
 }
 map_watch_interval = 30s;
-dns {
-  timeout = 4s;
-  retransmits = 2;
-}
 disable_monitoring = true;
+# In case a task times out (like DNS lookup), soft reject the message
+# instead of silently accepting the message without further processing.
+soft_reject_on_timeout = true;
diff --git a/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/policies_group.conf b/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/policies_group.conf
index 8799db1..954deac 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/policies_group.conf
+++ b/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/policies_group.conf
@@ -1,6 +1,6 @@
 symbols = {
     "ARC_REJECT" {
-        score = 0.01;
+        score = 0.1;
     }
     "R_SPF_FAIL" {
         score = 8.0;
@@ -8,6 +8,9 @@
     "R_SPF_PERMFAIL" {
         score = 8.0;
     }
+    "R_SPF_SOFTFAIL" {
+        score = 0.1;
+    }
     "R_DKIM_REJECT" {
         score = 8.0;
     }
@@ -18,6 +21,6 @@
         weight = 8.0;
     }
     "DMARC_POLICY_SOFTFAIL" {
-        weight = 0.0;
+        weight = 0.1;
     }
 }
diff --git a/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/rbl.conf b/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/rbl.conf
index c44b9ef..f132b4d 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/rbl.conf
+++ b/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/rbl.conf
@@ -1,12 +1,4 @@
 rbls {
-  uceprotect1 {
-    symbol = "RBL_UCEPROTECT_LEVEL1";
-    rbl = "dnsbl-1.uceprotect.net";
-  }
-  uceprotect2 {
-    symbol = "RBL_UCEPROTECT_LEVEL2";
-    rbl = "dnsbl-2.uceprotect.net";
-  }
   sorbs { 
     symbol = "RBL_SORBS"; 
     rbl = "dnsbl.sorbs.net";  
diff --git a/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/reputation.conf b/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/reputation.conf
index 0e3d03e..c9600b7 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/reputation.conf
+++ b/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/reputation.conf
@@ -3,7 +3,6 @@
     selector "ip" {
     }
     backend "redis" {
-      servers = "redis";
     }
     symbol = "IP_REPUTATION";
   }
diff --git a/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/statistics_group.conf b/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/statistics_group.conf
index 7ed35b1..cf40583 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/statistics_group.conf
+++ b/mailcow/src/mailcow-dockerized/data/conf/rspamd/local.d/statistics_group.conf
@@ -1,6 +1,6 @@
 symbols = {
     "BAYES_SPAM" {
-        weight = 2.5;
+        weight = 4.5;
         description = "Message probably spam, probability: ";
     }
     "BAYES_HAM" {
diff --git a/mailcow/src/mailcow-dockerized/data/conf/rspamd/lua/rspamd.local.lua b/mailcow/src/mailcow-dockerized/data/conf/rspamd/lua/rspamd.local.lua
index 3f4c326..b007f09 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/rspamd/lua/rspamd.local.lua
+++ b/mailcow/src/mailcow-dockerized/data/conf/rspamd/lua/rspamd.local.lua
@@ -321,6 +321,116 @@
 })
 
 rspamd_config:register_symbol({
+  name = 'BCC',
+  type = 'postfilter',
+  callback = function(task)
+    local util = require("rspamd_util")
+    local rspamd_http = require "rspamd_http"
+    local rspamd_logger = require "rspamd_logger"
+
+    local from_table = {}
+    local rcpt_table = {}
+
+    if task:has_symbol('ENCRYPTED_CHAT') then
+      return -- stop
+    end
+
+    local send_mail = function(task, bcc_dest)
+      local lua_smtp = require "lua_smtp"
+      local function sendmail_cb(ret, err)
+        if not ret then
+          rspamd_logger.errx(task, 'BCC SMTP ERROR: %s', err)
+        else
+          rspamd_logger.infox(rspamd_config, "BCC SMTP SUCCESS TO %s", bcc_dest)
+        end
+      end
+      if not bcc_dest then
+        return -- stop
+      end
+      lua_smtp.sendmail({
+        task = task,
+        host = os.getenv("IPV4_NETWORK") .. '.253',
+        port = 591,
+        from = task:get_from(stp)[1].addr,
+        recipients = bcc_dest,
+        helo = 'bcc',
+        timeout = 10,
+      }, task:get_content(), sendmail_cb)
+    end
+
+    -- determine from
+    local from = task:get_from('smtp')
+    if from then
+      for _, a in ipairs(from) do
+        table.insert(from_table, a['addr']) -- add this rcpt to table
+        table.insert(from_table, '@' .. a['domain']) -- add this rcpts domain to table
+      end
+    else
+      return -- stop
+    end
+
+    -- determine rcpts
+    local rcpts = task:get_recipients('smtp')
+    if rcpts then
+      for _, a in ipairs(rcpts) do
+        table.insert(rcpt_table, a['addr']) -- add this rcpt to table
+        table.insert(rcpt_table, '@' .. a['domain']) -- add this rcpts domain to table
+      end
+    else
+      return -- stop
+    end
+
+    local action = task:get_metric_action('default')
+    rspamd_logger.infox("metric action now: %s", action)
+
+    local function rcpt_callback(err_message, code, body, headers)
+      if err_message == nil and code == 201 and body ~= nil then
+        if action == 'no action' or action == 'add header' or action == 'rewrite subject' then
+          send_mail(task, body)
+        end
+      end
+    end
+
+    local function from_callback(err_message, code, body, headers)
+      if err_message == nil and code == 201 and body ~= nil then
+        if action == 'no action' or action == 'add header' or action == 'rewrite subject' then
+          send_mail(task, body)
+        end
+      end
+    end
+
+    if rcpt_table then
+      for _,e in ipairs(rcpt_table) do
+        rspamd_logger.infox(rspamd_config, "checking bcc for rcpt address %s", e)
+        rspamd_http.request({
+          task=task,
+          url='http://nginx:8081/bcc.php',
+          body='',
+          callback=rcpt_callback,
+          headers={Rcpt=e}
+        })
+      end
+    end
+
+    if from_table then
+      for _,e in ipairs(from_table) do
+        rspamd_logger.infox(rspamd_config, "checking bcc for from address %s", e)
+        rspamd_http.request({
+          task=task,
+          url='http://nginx:8081/bcc.php',
+          body='',
+          callback=from_callback,
+          headers={From=e}
+        })
+      end
+    end
+
+    return true
+  end,
+  priority = 20
+})
+
+rspamd_config:register_symbol({
   name = 'DYN_RL_CHECK',
   type = 'prefilter',
   callback = function(task)
diff --git a/mailcow/src/mailcow-dockerized/data/conf/rspamd/override.d/worker-normal.inc b/mailcow/src/mailcow-dockerized/data/conf/rspamd/override.d/worker-normal.inc
index c0f1fb1..d206757 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/rspamd/override.d/worker-normal.inc
+++ b/mailcow/src/mailcow-dockerized/data/conf/rspamd/override.d/worker-normal.inc
@@ -1,4 +1,4 @@
 bind_socket = "*:11333";
-task_timeout = 12s;
+task_timeout = 25s;
 count = 1;
 .include(try=true; priority=30) "$CONFDIR/override.d/worker-normal.custom.inc"
diff --git a/mailcow/src/mailcow-dockerized/data/conf/sogo/custom-favicon.ico b/mailcow/src/mailcow-dockerized/data/conf/sogo/custom-favicon.ico
new file mode 100644
index 0000000..4d5cb32
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/conf/sogo/custom-favicon.ico
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/conf/sogo/custom-theme.js b/mailcow/src/mailcow-dockerized/data/conf/sogo/custom-theme.js
new file mode 100644
index 0000000..0df5067
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/conf/sogo/custom-theme.js
@@ -0,0 +1,36 @@
+/* EXAMPLE - EXAMPLE - EXAMPLE - EXAMPLE - EXAMPLE - EXAMPLE - EXAMPLE
+(function() {
+  'use strict';
+  angular.module('SOGo.Common')
+    .config(configure)
+
+  configure.$inject = ['$mdThemingProvider'];
+  function configure($mdThemingProvider) {
+    var greyMap = $mdThemingProvider.extendPalette('grey', {
+      '200': 'F5F5F5',
+      '300': 'E5E5E5',
+      '1000': '4C566A'
+    });
+    var greenCow = $mdThemingProvider.extendPalette('green', {
+      '600': 'E5E5E5'
+    });
+    $mdThemingProvider.definePalette('frost-grey', greyMap);
+    $mdThemingProvider.definePalette('green-cow', greenCow);
+    $mdThemingProvider.theme('default')
+      .primaryPalette('green-cow', {
+        'default': '400',
+        'hue-1': '400',
+        'hue-2': '600',
+        'hue-3': 'A700'
+      })
+      .accentPalette('green', {
+        'default': '600',
+        'hue-1': '300',
+        'hue-2': '300',
+        'hue-3': 'A700'
+      })
+      .backgroundPalette('frost-grey');
+    $mdThemingProvider.generateThemesOnDemand(false);
+  }
+})();
+ */
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/conf/sogo/sogo-full.svg b/mailcow/src/mailcow-dockerized/data/conf/sogo/sogo-full.svg
deleted file mode 100644
index 98ff2fc..0000000
--- a/mailcow/src/mailcow-dockerized/data/conf/sogo/sogo-full.svg
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>

-<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->

-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [

-	<!ENTITY st0 "fill:#50BD37;">

-]>

-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"

-	 width="640px" height="350px" viewBox="78.712 58.488 640 350" style="enable-background:new 78.712 58.488 640 350;"

-	 xml:space="preserve">

-<path style="&st0;" d="M648.541,145.679c-9.947,0-17.009-7.278-17.009-17.048c0-9.777,7.062-17.057,17.009-17.057

-	c10.024,0,17.086,7.279,17.086,17.057C665.627,138.401,658.565,145.679,648.541,145.679z M648.511,94.893

-	c-19.693,0-33.679,14.4-33.679,33.738c0,19.33,13.985,33.729,33.679,33.729c19.822,0,33.808-14.4,33.808-33.729

-	C682.318,109.293,668.333,94.893,648.511,94.893z M648.482,179.843c-29.889,0-51.123-21.868-51.123-51.212

-	c0-29.353,21.234-51.209,51.123-51.209c30.082,0,51.307,21.856,51.307,51.209C699.789,157.975,678.564,179.843,648.482,179.843z

-	 M648.442,58.488c-40.929,0-69.995,29.946-69.995,70.143c0,40.189,29.066,70.125,69.995,70.125c41.194,0,70.27-29.937,70.27-70.125

-	C718.712,88.434,689.637,58.488,648.442,58.488z M158.166,183.902l-21.018-5.008c-19.131-4.396-28.849-9.413-28.849-23.21

-	c0-15.684,15.99-21.965,30.419-21.965c14.667,0,25.382,7.329,31.693,18.737c0.02,0.048,0.051,0.097,0.09,0.157

-	c0.127,0.247,0.276,0.484,0.403,0.731l0.03-0.02c1.985,3.002,5.323,5.008,8.919,5.008c6.122,0,10.558-4.425,10.558-10.547

-	c0-2.341-0.504-4.82-1.601-6.688c-10.764-18.302-28.513-26.192-48.838-26.192c-27.594,0-54.262,13.797-54.262,44.218

-	c0,27.921,27.605,36.079,37.64,38.578l20.069,4.71c15.368,3.763,27.912,8.791,27.912,23.517c0,16.938-17.561,23.943-34.499,23.943

-	c-17.245,0-30.015-9.37-38.814-22.37h-0.01c-1.956-3-4.988-4.328-8.702-4.328c-5.984,0-10.805,5.185-10.587,11.162

-	c0.098,2.438,0.909,4.637,2.153,6.405c13.787,20.633,33.728,28.41,55.96,28.41c28.543,0,57.085-13.143,57.085-45.132

-	C193.918,203.325,178.551,188.613,158.166,183.902z M298.479,250.312c-33.866,0-55.199-25.403-55.199-58.331

-	c0-32.939,21.333-58.343,55.199-58.343c34.192,0,55.516,25.403,55.516,58.343C353.996,224.91,332.672,250.312,298.479,250.312z

-	 M298.479,114.823c-45.471,0-77.777,32.93-77.777,77.158c0,44.217,32.306,77.146,77.777,77.146

-	c45.786,0,78.093-32.929,78.093-77.146C376.572,147.753,344.266,114.823,298.479,114.823z M518.715,234.312

-	c-0.771,0.74-1.549,1.472-2.399,2.175c-1.106,1.014-2.391,2.112-3.854,3.208c-8.829,6.391-19.979,10.094-33.017,10.094

-	c-33.876,0-55.198-25.402-55.198-58.332c0-32.939,21.322-58.342,55.198-58.342c34.183,0,55.506,25.403,55.506,58.342

-	C534.951,208.653,529.135,223.774,518.715,234.312z M468.097,317.938c2.528,0,5.146-0.168,7.863-0.504

-	c5.018-0.631,9.588-0.909,13.729-0.909c19.24,0.109,29.036,5.7,34.943,12.158c5.895,6.499,8.168,15.311,8.158,22.796

-	c0.01,3.586-0.555,6.795-1.177,8.721c-2.944,8.93-8.888,15.002-17.996,19.576c-9.035,4.484-21.095,6.777-33.707,6.757

-	c-4.514,0-9.105-0.288-13.639-0.831c-8.573-0.987-19.911-4.671-28.13-11.093c-4.138-3.199-6.458-6.991-8.858-11.485

-	c-2.379-4.514-2.783-9.748-2.783-16.442v-0.742c0-12.346,4.84-20.544,11.051-26.5c3.07-2.904,5.69-5.064,7.99-6.438

-	c0.366-0.218,0.438-0.416,0.755-0.593C452.39,316.014,459.684,317.968,468.097,317.938z M479.445,114.301

-	c-45.471,0-77.786,32.929-77.786,77.157c0,29.887,14.765,54.598,38.378,67.489c-0.314,0.314-0.621,0.641-0.916,0.966

-	c-6.104,6.687-9.226,15.25-9.236,23.913c-0.008,3.821,0.624,7.741,1.977,11.494c-3.062,1.956-6.717,4.634-10.46,8.147

-	c-9.026,8.408-18.734,22.541-19.021,42.097c-0.01,0.454-0.01,0.829-0.01,1.118c-0.01,10.071,2.379,19.157,6.459,26.774

-	c6.133,11.466,15.683,19.445,25.539,24.77c9.917,5.334,20.257,8.166,29.273,9.274c5.373,0.643,10.826,0.988,16.268,0.988

-	c15.151-0.02,30.261-2.578,43.409-9.019c13.085-6.34,24.333-17.253,29.192-32.562c1.443-4.553,2.212-9.719,2.231-15.428

-	c-0.02-11.595-3.349-25.759-13.767-37.452c-10.421-11.734-27.654-19.566-51.288-19.459c-5.138,0-10.606,0.356-16.426,1.078

-	c-1.877,0.227-3.596,0.334-5.166,0.334c-7.239-0.048-10.872-2.053-13.036-4.098c-2.133-2.084-3.2-4.839-3.229-8.058

-	c-0.01-3.28,1.284-6.727,3.467-9.078c2.231-2.332,5.008-3.91,9.846-3.97c0.436,0,0.9,0.01,1.374,0.05

-	c3.101,0.216,6.112,0.325,9.037,0.325c24.188,0.047,42.38-7.448,54.756-17.759c12.415-10.312,18.971-22.854,22.071-32.76l-0.04-0.01

-	c3.37-8.899,5.197-18.715,5.197-29.166C557.539,147.229,525.234,114.301,479.445,114.301z"/>

-</svg>

diff --git a/mailcow/src/mailcow-dockerized/data/conf/sogo/sogo.conf b/mailcow/src/mailcow-dockerized/data/conf/sogo/sogo.conf
index 78791d5..2513f49 100644
--- a/mailcow/src/mailcow-dockerized/data/conf/sogo/sogo.conf
+++ b/mailcow/src/mailcow-dockerized/data/conf/sogo/sogo.conf
@@ -14,7 +14,12 @@
     SOGoEnableEMailAlarms = YES;
     SOGoFoldersSendEMailNotifications = YES;
     SOGoForwardEnabled = YES;
-    SOGoUIAdditionalJSFiles = (js/custom-sogo.js);
+
+    SOGoUIAdditionalJSFiles = (
+      js/theme.js,
+      js/custom-sogo.js
+    );
+
     SOGoEnablePublicAccess = YES;
 
     // Multi-domain setup
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/phpunit.xml.tmppica b/mailcow/src/mailcow-dockerized/data/hooks/dovecot/.gitkeep
similarity index 100%
copy from mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/phpunit.xml.tmppica
copy to mailcow/src/mailcow-dockerized/data/hooks/dovecot/.gitkeep
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/phpunit.xml.tmppica b/mailcow/src/mailcow-dockerized/data/hooks/phpfpm/.gitkeep
similarity index 100%
copy from mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/phpunit.xml.tmppica
copy to mailcow/src/mailcow-dockerized/data/hooks/phpfpm/.gitkeep
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/phpunit.xml.tmppica b/mailcow/src/mailcow-dockerized/data/hooks/postfix/.gitkeep
similarity index 100%
copy from mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/phpunit.xml.tmppica
copy to mailcow/src/mailcow-dockerized/data/hooks/postfix/.gitkeep
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/phpunit.xml.tmppica b/mailcow/src/mailcow-dockerized/data/hooks/rspamd/.gitkeep
similarity index 100%
copy from mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/phpunit.xml.tmppica
copy to mailcow/src/mailcow-dockerized/data/hooks/rspamd/.gitkeep
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/phpunit.xml.tmppica b/mailcow/src/mailcow-dockerized/data/hooks/sogo/.gitkeep
similarity index 100%
copy from mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/phpunit.xml.tmppica
copy to mailcow/src/mailcow-dockerized/data/hooks/sogo/.gitkeep
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/phpunit.xml.tmppica b/mailcow/src/mailcow-dockerized/data/hooks/unbound/.gitkeep
similarity index 100%
copy from mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/phpunit.xml.tmppica
copy to mailcow/src/mailcow-dockerized/data/hooks/unbound/.gitkeep
diff --git a/mailcow/src/mailcow-dockerized/data/web/_status.502.html b/mailcow/src/mailcow-dockerized/data/web/_status.502.html
index a0f8fb1..ec6617e 100644
--- a/mailcow/src/mailcow-dockerized/data/web/_status.502.html
+++ b/mailcow/src/mailcow-dockerized/data/web/_status.502.html
@@ -3,17 +3,22 @@
   <head>
     <title>Preparing</title>
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css">
   </head>
-  <body style='background-color:#fff;color:#333;text-align:center;font-family: Verdana, "Lucida Sans Unicode", sans-serif'>
-    <p>🐄 - we are on our way.</p>
-    <h1 style="color:#333;font-size:48px">502</h1>
-    <p>Please do not stop the stack, while we are initializing the database or do other preparations.</p>
-    <p style="font-size:small"><b>What is happening?</b> - Nginx cannot connect to an upstream server.<br>
-    This is fine, if mailcow was just
+  <body style='background-color:#fff;color:#333;width: 60%;margin: 0 auto;text-align:left;font-family: Verdana, "Lucida Sans Unicode", sans-serif'>
+    <h1 style="color:#333;font-size:48px">What is happening?</h1>
+    <p style="color:green;font-weight:bold;">Please do not stop the stack while we are initializing the database or do other preparations.</p>
+    <p style="font-size:small"><b>What is happening?</b> - Nginx cannot connect to an upstream server or other services are not ready yet.<br>
+    This is fine if mailcow was just
     installed or updated and can take a few minutes to complete.<br>
-    Please check the logs or contact support, if the error persists.</p>
-    <pre>docker-compose logs --tail=200 php-fpm-mailcow</pre>
-    <br><a style="color:#555;text-decoration:none;" href="https://mailcow.github.io/mailcow-dockerized-docs/#get-support" target="_blank">Need support?</a>
+    Please check the logs or contact support if the error persists.</p>
+    <h2>Quick debugging</h2>
+    <p>Check Nginx and PHP logs:</p>
+    <pre>docker-compose logs --tail=200 php-fpm-mailcow nginx-mailcow</pre>
+    <p>Make sure your SQL credentials in mailcow.conf (a link to .env) do fit your initialized SQL volume. If you see an access denied, you might have the wrong mailcow.conf:</p>
+    <pre>source mailcow.conf ; docker-compose exec mysql-mailcow mysql -u${DBUSER} -p${DBPASS} ${DBNAME}</pre>
+    <p>In case of a previous failed installation, remove all volumes and start over (<b>NEVER</b> do this with a production system, it will remove <b>ALL</b> data):</p>
+    <pre>docker-compose down -v ; docker-compose up -d</pre>
+    <p>Make sure your timezone is correct. Use "America/New_York" for example, do not use spaces. Check <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones">here</a> for a list.</p>
+    <br>Click to learn more about <a style="color:red;text-decoration:none;" href="https://mailcow.github.io/mailcow-dockerized-docs/#get-support" target="_blank">getting support.</a>
   </body>
 </html>
diff --git a/mailcow/src/mailcow-dockerized/data/web/admin.php b/mailcow/src/mailcow-dockerized/data/web/admin.php
index f2d6cfb..1a28776 100644
--- a/mailcow/src/mailcow-dockerized/data/web/admin.php
+++ b/mailcow/src/mailcow-dockerized/data/web/admin.php
@@ -12,10 +12,19 @@
 ?>
 <div class="container">
 
-  <ul class="nav nav-tabs" role="tablist">
-    <li role="presentation" class="active"><a href="#tab-access" aria-controls="tab-access" role="tab" data-toggle="tab"><?=$lang['admin']['access'];?></a></li>
-    <li class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['admin']['configuration'];?>
-      <span class="caret"></span></a>
+  <ul class="nav nav-tabs responsive-tabs" role="tablist">
+    <li class="dropdown active">
+      <a class="dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['admin']['access'];?><span class="caret"></span></a>
+      <ul class="dropdown-menu">
+        <li class="active" data-dont-remember="1" role="presentation"><a href="#tab-config-admins" aria-controls="tab-config-admins" role="tab" data-toggle="tab"><?=$lang['admin']['admins'];?></a></li>
+        <!-- <li role="presentation"><a href="#tab-config-ldap-admins" aria-controls="tab-config-ldap-admins" role="tab" data-toggle="tab"><?=$lang['admin']['admins_ldap'];?></a></li> -->
+        <li role="presentation"><a href="#tab-config-oauth2" aria-controls="tab-config-oauth2" role="tab" data-toggle="tab"><?=$lang['admin']['oauth2_apps'];?></a></li>
+        <li role="presentation"><a href="#tab-config-rspamd" aria-controls="tab-config-rspamd" role="tab" data-toggle="tab">Rspamd UI</a></li>
+      </ul>
+    </li>
+
+    <li class="dropdown">
+      <a class="dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['admin']['configuration'];?><span class="caret"></span></a>
       <ul class="dropdown-menu">
         <li role="presentation"><a href="#tab-config-dkim" aria-controls="tab-config-dkim" role="tab" data-toggle="tab"><?=$lang['admin']['dkim_keys'];?></a></li>
         <li role="presentation"><a href="#tab-config-fwdhosts" aria-controls="tab-config-fwdhosts" role="tab" data-toggle="tab"><?=$lang['admin']['forwarding_hosts'];?></a></li>
@@ -23,6 +32,7 @@
         <li role="presentation"><a href="#tab-config-quarantine" aria-controls="tab-config-quarantine" role="tab" data-toggle="tab"><?=$lang['admin']['quarantine'];?></a></li>
         <li role="presentation"><a href="#tab-config-quota" aria-controls="tab-config-quota" role="tab" data-toggle="tab"><?=$lang['admin']['quota_notifications'];?></a></li>
         <li role="presentation"><a href="#tab-config-rsettings" aria-controls="tab-config-rsettings" role="tab" data-toggle="tab"><?=$lang['admin']['rspamd_settings_map'];?></a></li>
+        <li role="presentation"><a href="#tab-config-password-policy" aria-controls="tab-config-password-policy" role="tab" data-toggle="tab"><?=$lang['admin']['password_policy'];?></a></li>
         <li role="presentation"><a href="#tab-config-customize" aria-controls="tab-config-customize" role="tab" data-toggle="tab"><?=$lang['admin']['customize'];?></a></li>
       </ul>
     </li>
@@ -40,17 +50,18 @@
   <div class="row">
   <div class="col-md-12">
   <div class="tab-content" style="padding-top:20px">
-  <div role="tabpanel" class="tab-pane active" id="tab-access">
+  <div role="tabpanel" class="tab-pane active" id="tab-config-admins">
     <div class="panel panel-danger">
-      <div class="panel-heading"><?=$lang['admin']['admin_details'];?></div>
+      <div class="panel-heading xs-show"><?=$lang['admin']['admin_details'];?></div>
       <div class="panel-body">
         <div class="table-responsive">
           <table class="table table-striped table-condensed" id="adminstable"></table>
         </div>
         <div class="mass-actions-admin">
           <div class="btn-group">
-            <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="admins" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
-            <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
+            <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="toggle_multi_select_all" data-id="admins" href="#"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></a>
+            <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
+            <div class="clearfix visible-xs"></div>
             <ul class="dropdown-menu">
               <li><a data-action="edit_selected" data-id="admins" data-api-url='edit/admin' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
               <li><a data-action="edit_selected" data-id="admins" data-api-url='edit/admin' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>
@@ -59,7 +70,7 @@
               <li role="separator" class="divider"></li>
               <li><a data-action="delete_selected" data-id="admins" data-api-url='delete/admin' href="#"><?=$lang['mailbox']['remove'];?></a></li>
             </ul>
-            <a class="btn btn-sm btn-success" data-id="add_admin" data-toggle="modal" data-target="#addAdminModal" href="#"><span class="glyphicon glyphicon-plus"></span> <?=$lang['admin']['add_admin'];?></a>
+            <a class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-id="add_admin" data-toggle="modal" data-target="#addAdminModal" href="#"><i class="bi bi-person-plus-fill"></i> <?=$lang['admin']['add_admin'];?></a>
           </div>
         </div>
 
@@ -70,17 +81,17 @@
         <div class="row">
           <div class="col-sm-3 col-xs-5 text-right"><?=$lang['tfa']['tfa'];?>:</div>
           <div class="col-sm-9 col-xs-7">
-            <p id="tfa_pretty"><?=$tfa_data['pretty'];?></p>
+            <p id="tfa_pretty"><?=(isset($tfa_data['pretty'])) ? $tfa_data['pretty'] : '';?></p>
               <div id="tfa_keys">
                 <?php
                 if (!empty($tfa_data['additional'])) {
                   foreach ($tfa_data['additional'] as $key_info) {
                 ?>
                 <form style="display:inline;" method="post">
-                  <input type="hidden" name="unset_tfa_key" value="<?=$key_info['id'];?>" />
+                  <input type="hidden" name="unset_tfa_key" value="<?=$key_info['id'];?>">
                   <div style="padding:4px;margin:4px" class="label label-keys label-<?=($_SESSION['tfa_id'] == $key_info['id']) ? 'success' : 'default'; ?>">
                   <?=$key_info['key_id'];?>
-                  <a href="#" style="font-weight:bold;color:white" onClick="$(this).closest('form').submit()">[<?=strtolower($lang['admin']['remove']);?>]</a>
+                  <a href="#" style="font-weight:bold;color:white" onClick="$(this).closest('form').submit()">[<?=$lang['admin']['remove'];?>]</a>
                   </div>
                 </form>
                 <?php
@@ -105,13 +116,11 @@
 
         <? // FIDO2 ?>
         <legend style="margin-top:20px">
-        <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" style="margin-bottom: -5px;">
-          <path d="M17.81 4.47c-.08 0-.16-.02-.23-.06C15.66 3.42 14 3 12.01 3c-1.98 0-3.86.47-5.57 1.41-.24.13-.54.04-.68-.2-.13-.24-.04-.55.2-.68C7.82 2.52 9.86 2 12.01 2c2.13 0 3.99.47 6.03 1.52.25.13.34.43.21.67-.09.18-.26.28-.44.28zM3.5 9.72c-.1 0-.2-.03-.29-.09-.23-.16-.28-.47-.12-.7.99-1.4 2.25-2.5 3.75-3.27C9.98 4.04 14 4.03 17.15 5.65c1.5.77 2.76 1.86 3.75 3.25.16.22.11.54-.12.7-.23.16-.54.11-.7-.12-.9-1.26-2.04-2.25-3.39-2.94-2.87-1.47-6.54-1.47-9.4.01-1.36.7-2.5 1.7-3.4 2.96-.08.14-.23.21-.39.21zm6.25 12.07c-.13 0-.26-.05-.35-.15-.87-.87-1.34-1.43-2.01-2.64-.69-1.23-1.05-2.73-1.05-4.34 0-2.97 2.54-5.39 5.66-5.39s5.66 2.42 5.66 5.39c0 .28-.22.5-.5.5s-.5-.22-.5-.5c0-2.42-2.09-4.39-4.66-4.39-2.57 0-4.66 1.97-4.66 4.39 0 1.44.32 2.77.93 3.85.64 1.15 1.08 1.64 1.85 2.42.19.2.19.51 0 .71-.11.1-.24.15-.37.15zm7.17-1.85c-1.19 0-2.24-.3-3.1-.89-1.49-1.01-2.38-2.65-2.38-4.39 0-.28.22-.5.5-.5s.5.22.5.5c0 1.41.72 2.74 1.94 3.56.71.48 1.54.71 2.54.71.24 0 .64-.03 1.04-.1.27-.05.53.13.58.41.05.27-.13.53-.41.58-.57.11-1.07.12-1.21.12zM14.91 22c-.04 0-.09-.01-.13-.02-1.59-.44-2.63-1.03-3.72-2.1-1.4-1.39-2.17-3.24-2.17-5.22 0-1.62 1.38-2.94 3.08-2.94 1.7 0 3.08 1.32 3.08 2.94 0 1.07.93 1.94 2.08 1.94s2.08-.87 2.08-1.94c0-3.77-3.25-6.83-7.25-6.83-2.84 0-5.44 1.58-6.61 4.03-.39.81-.59 1.76-.59 2.8 0 .78.07 2.01.67 3.61.1.26-.03.55-.29.64-.26.1-.55-.04-.64-.29-.49-1.31-.73-2.61-.73-3.96 0-1.2.23-2.29.68-3.24 1.33-2.79 4.28-4.6 7.51-4.6 4.55 0 8.25 3.51 8.25 7.83 0 1.62-1.38 2.94-3.08 2.94s-3.08-1.32-3.08-2.94c0-1.07-.93-1.94-2.08-1.94s-2.08.87-2.08 1.94c0 1.71.66 3.31 1.87 4.51.95.94 1.86 1.46 3.27 1.85.27.07.42.35.35.61-.05.23-.26.38-.47.38z"/>
-        </svg>
+        <i class="bi bi-shield-fill-check"></i>
         <?=$lang['fido2']['fido2_auth'];?></legend>
         <div class="row">
-          <div class="col-sm-3 col-xs-5 text-right"><?=$lang['fido2']['known_ids'];?>:</div>
-          <div class="col-sm-9 col-xs-7">
+          <div class="col-sm-3 col-xs-12 text-right text-xs-left space20"><?=$lang['fido2']['known_ids'];?>:</div>
+          <div class="col-sm-9 col-xs-12">
               <div class="table-responsive">
               <table class="table table-striped table-hover table-condensed" id="fido2_keys">
                 <tr>
@@ -124,14 +133,14 @@
                 ?>
                 <tr>
                   <td>
-                    <?=($_SESSION['fido2_cid'] == $key_info['cid']) ? '→ ' : NULL; ?><?=(!empty($key_info['fn']))?$key_info['fn']:$key_info['subject'];?>
+                    <?=(isset($_SESSION['fido2_cid']) && $_SESSION['fido2_cid'] == $key_info['cid']) ? '<i class="bi bi-unlock-fill"></i> ' : NULL; ?><?=(!empty($key_info['fn']))?$key_info['fn']:$key_info['subject'];?>
                   </td>
                   <td style="min-width:240px;text-align: right">
                     <form style="display:inline;" method="post">
-                    <input type="hidden" name="unset_fido2_key" value="<?=$key_info['cid'];?>" />
+                    <input type="hidden" name="unset_fido2_key" value="<?=$key_info['cid'];?>">
                     <div class="btn-group">
-                    <a href="#" class="btn btn-xs btn-default" data-cid="<?=$key_info['cid'];?>" data-subject="<?=base64_encode($key_info['subject']);?>" data-toggle="modal" data-target="#fido2ChangeFn"><span class="glyphicon glyphicon-pencil"></span> <?=strtolower($lang['fido2']['rename']);?></a>
-                    <a href="#" onClick='return confirm("<?=$lang['admin']['ays'];?>")?$(this).closest("form").submit():"";' class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> <?=strtolower($lang['admin']['remove']);?></a>
+                    <a href="#" class="btn btn-xs btn-default" data-cid="<?=$key_info['cid'];?>" data-subject="<?=base64_encode($key_info['subject']);?>" data-toggle="modal" data-target="#fido2ChangeFn"><i class="bi bi-pencil-fill"></i> <?=$lang['fido2']['rename'];?></a>
+                    <a href="#" onClick='return confirm("<?=$lang['admin']['ays'];?>")?$(this).closest("form").submit():"";' class="btn btn-xs btn-danger"><i class="bi bi-trash"></i> <?=$lang['admin']['remove'];?></a>
                     </form>
                     </div>
                   </td>
@@ -147,7 +156,7 @@
         </div>
         <div class="row">
           <div class="col-sm-offset-3 col-sm-9">
-            <button class="btn btn-sm btn-primary" id="register-fido2"><?=$lang['fido2']['set_fido2'];?></button>
+            <button class="btn btn-sm btn-primary visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline" id="register-fido2"><?=$lang['fido2']['set_fido2'];?></button>
           </div>
         </div>
         <br>
@@ -159,8 +168,8 @@
           <br>
         </div>
 
-        <legend style="cursor:pointer;margin-top:40px" data-target="#license" class="arrow-toggle" unselectable="on" data-toggle="collapse">
-          <span style="font-size:12px" class="arrow rotate glyphicon glyphicon-menu-down"></span> <?=$lang['admin']['guid_and_license'];?>
+        <legend style="cursor:pointer;margin-top:40px" data-target="#license" unselectable="on" data-toggle="collapse">
+          <i style="font-size:10pt;" class="bi bi-plus-square"></i> <?=$lang['admin']['guid_and_license'];?>
         </legend>
         <div id="license" class="collapse">
         <form class="form-horizontal" autocapitalize="none" autocorrect="off" role="form" method="post">
@@ -169,7 +178,7 @@
             <div class="col-sm-9">
               <div class="input-group">
                 <span class="input-group-addon">
-                  <span class="glyphicon <?=(isset($_SESSION['gal']['valid']) && $_SESSION['gal']['valid'] === "true") ? 'glyphicon-heart text-danger' : 'glyphicon-remove';?>" aria-hidden="true"></span>
+                  <i class="bi bi-suit-heart<?=(isset($_SESSION['gal']['valid']) && $_SESSION['gal']['valid'] === "true") ? '-fill text-danger' : '';?>"></i>
                 </span>
                 <input type="text" id="guid" class="form-control" value="<?=license('guid');?>" readonly>
               </div>
@@ -184,15 +193,15 @@
             <div class="col-sm-offset-3 col-sm-9">
               <p class="help-block"><?=$lang['admin']['license_info'];?></p>
               <div class="btn-group">
-                <button class="btn btn-sm btn-success" name="license_validate_now" type="submit" href="#"><?=$lang['admin']['validate_license_now'];?></button>
+                <button class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" name="license_validate_now" type="submit" href="#"><?=$lang['admin']['validate_license_now'];?></button>
               </div>
             </div>
           </div>
         </form>
         </div>
 
-        <legend style="cursor:pointer;" data-target="#admin_api" class="arrow-toggle" unselectable="on" data-toggle="collapse">
-          <span style="font-size:12px" class="arrow rotate glyphicon glyphicon-menu-down"></span> API
+        <legend style="cursor:pointer;" data-target="#admin_api" unselectable="on" data-toggle="collapse">
+          <i style="font-size:10pt;" class="bi bi-plus-square"></i> API
         </legend>
         <div id="admin_api" class="collapse">
         <div class="row">
@@ -206,20 +215,20 @@
           <div class="col-lg-6">
             <div class="panel panel-default">
               <div class="panel-heading">
-                <h4 class="panel-title">⇇ Read-Only Access</h4>
+                <h4 class="panel-title"><i class="bi bi-file-earmark-arrow-down"></i> <?=$lang['admin']['api_read_only'];?></h4>
               </div>
                 <div class="panel-body">
                   <form class="form-horizontal" autocapitalize="none" autocorrect="off" role="form" method="post">
                     <div class="form-group">
                       <label class="control-label col-sm-3" for="allow_from_ro"><?=$lang['admin']['api_allow_from'];?>:</label>
                       <div class="col-sm-9">
-                        <textarea class="form-control textarea-code" rows="7" name="allow_from" id="allow_from_ro" <?=($api_ro['skip_ip_check'] == 1) ? 'disabled' : null;?> required><?=htmlspecialchars($api_ro['allow_from']);?></textarea>
+                        <textarea class="form-control textarea-code" rows="7" name="allow_from" id="allow_from_ro" <?=(isset($api_ro['skip_ip_check']) && $api_ro['skip_ip_check'] == 1) ? 'disabled' : null;?> required><?=(isset($api_ro['allow_from'])) ? htmlspecialchars($api_ro['allow_from']) : '';?></textarea>
                       </div>
                     </div>
                     <div class="form-group">
                       <div class="col-sm-offset-3 col-sm-9">
                         <label>
-                          <input type="checkbox" name="skip_ip_check" id="skip_ip_check_ro" <?=($api_ro['skip_ip_check'] == 1) ? 'checked' : null;?>> <?=$lang['admin']['api_skip_ip_check'];?>
+                          <input type="checkbox" name="skip_ip_check" id="skip_ip_check_ro" <?=(isset($api_ro['skip_ip_check']) && $api_ro['skip_ip_check'] == 1) ? 'checked' : null;?>> <?=$lang['admin']['api_skip_ip_check'];?>
                         </label>
                       </div>
                     </div>
@@ -232,15 +241,15 @@
                     <div class="form-group">
                       <div class="col-sm-offset-3 col-sm-9">
                         <label>
-                          <input type="checkbox" name="active" <?=($api_ro['active'] == 1) ? 'checked' : null;?>> <?=$lang['admin']['activate_api'];?>
+                          <input type="checkbox" name="active" <?=(isset($api_ro['active']) && $api_ro['active'] == 1) ? 'checked' : null;?>> <?=$lang['admin']['activate_api'];?>
                         </label>
                       </div>
                     </div>
                     <div class="form-group">
                       <div class="col-sm-offset-3 col-sm-9">
                         <div class="btn-group">
-                          <button class="btn btn-sm btn-success" name="admin_api[ro]" type="submit" href="#"><span class="glyphicon glyphicon-check"></span> <?=$lang['admin']['save'];?></button>
-                          <button class="btn btn-sm btn-default admin-ays-dialog" name="admin_api_regen_key[ro]" type="submit" href="#" <?=(!empty($api_ro['api_key'])) ?: 'disabled';?>><?=$lang['admin']['regen_api_key'];?></button>
+                          <button class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" name="admin_api[ro]" type="submit" href="#"><i class="bi bi-check-lg"></i> <?=$lang['admin']['save'];?></button>
+                          <button class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default admin-ays-dialog" name="admin_api_regen_key[ro]" type="submit" href="#" <?=(!empty($api_ro['api_key'])) ?: 'disabled';?>><?=$lang['admin']['regen_api_key'];?></button>
                         </div>
                       </div>
                     </div>
@@ -251,7 +260,7 @@
           <div class="col-lg-6">
             <div class="panel panel-default">
               <div class="panel-heading">
-                <h4 class="panel-title">⇄ Read-Write Access</h4>
+                <h4 class="panel-title"><i class="bi bi-file-earmark-diff"></i> <?=$lang['admin']['api_read_write'];?></h4>
               </div>
                 <div class="panel-body">
                   <form class="form-horizontal" autocapitalize="none" autocorrect="off" role="form" method="post">
@@ -284,8 +293,8 @@
                     <div class="form-group">
                       <div class="col-sm-offset-3 col-sm-9">
                         <div class="btn-group">
-                          <button class="btn btn-sm btn-success" name="admin_api[rw]" type="submit" href="#"><span class="glyphicon glyphicon-check"></span> <?=$lang['admin']['save'];?></button>
-                          <button class="btn btn-sm btn-default admin-ays-dialog" name="admin_api_regen_key[rw]" type="submit" <?=(!empty($api_rw['api_key'])) ?: 'disabled';?> href="#"><?=$lang['admin']['regen_api_key'];?></button>
+                          <button class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" name="admin_api[rw]" type="submit" href="#"><i class="bi bi-check-lg"></i> <?=$lang['admin']['save'];?></button>
+                          <button class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default admin-ays-dialog" name="admin_api_regen_key[rw]" type="submit" <?=(!empty($api_rw['api_key'])) ?: 'disabled';?> href="#"><?=$lang['admin']['regen_api_key'];?></button>
                         </div>
                       </div>
                     </div>
@@ -299,15 +308,15 @@
     </div>
 
     <div class="panel panel-default">
-    <div class="panel-heading"><?=$lang['admin']['domain_admins'];?></div>
+    <div class="panel-heading xs-show"><?=$lang['admin']['domain_admins'];?></div>
         <div class="panel-body">
           <div class="table-responsive">
             <table class="table table-striped table-condensed" id="domainadminstable"></table>
           </div>
           <div class="mass-actions-admin">
             <div class="btn-group">
-              <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="domain_admins" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
-              <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
+              <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="toggle_multi_select_all" data-id="domain_admins" href="#"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></a>
+              <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
               <ul class="dropdown-menu">
                 <li><a data-action="edit_selected" data-id="domain_admins" data-api-url='edit/domain-admin' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
                 <li><a data-action="edit_selected" data-id="domain_admins" data-api-url='edit/domain-admin' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>
@@ -316,14 +325,25 @@
                 <li role="separator" class="divider"></li>
                 <li><a data-action="delete_selected" data-id="domain_admins" data-api-url='delete/domain-admin' href="#"><?=$lang['mailbox']['remove'];?></a></li>
               </ul>
-              <a class="btn btn-sm btn-success" data-id="add_domain_admin" data-toggle="modal" data-target="#addDomainAdminModal" href="#"><span class="glyphicon glyphicon-plus"></span> <?=$lang['admin']['add_domain_admin'];?></a>
+              <div class="clearfix visible-xs"></div>
+              <a class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-id="add_domain_admin" data-toggle="modal" data-target="#addDomainAdminModal" href="#"><i class="bi bi-person-plus-fill"></i> <?=$lang['admin']['add_domain_admin'];?></a>
             </div>
           </div>
         </div>
     </div>
+  </div>
 
+  <div role="tabpanel" class="tab-pane" id="tab-config-ldap-admins">
     <div class="panel panel-default">
-    <div class="panel-heading">OAuth2 Apps</div>
+    <div class="panel-heading"><?=$lang['admin']['admins_ldap'];?></div>
+        <div class="panel-body">
+        </div>
+    </div>
+  </div>
+
+  <div role="tabpanel" class="tab-pane" id="tab-config-oauth2">
+    <div class="panel panel-default">
+    <div class="panel-heading"><?=$lang['admin']['oauth2_apps'];?></div>
         <div class="panel-body">
           <p><?=$lang['admin']['oauth2_info'];?></p>
           <div class="table-responsive">
@@ -331,8 +351,8 @@
           </div>
           <div class="mass-actions-admin">
             <div class="btn-group">
-              <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="oauth2_clients" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
-              <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
+              <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="toggle_multi_select_all" data-id="oauth2_clients" href="#"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></a>
+              <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
               <ul class="dropdown-menu">
                 <li><a data-action="delete_selected" data-id="oauth2_clients" data-api-url='delete/oauth2-client' href="#"><?=$lang['mailbox']['remove'];?></a></li>
                 <li role="separator" class="divider"></li>
@@ -340,48 +360,54 @@
                 <li role="separator" class="divider"></li>
                 <li><a data-action="edit_selected" data-id="oauth2_clients" data-api-url='edit/oauth2-client' data-api-attr='{"renew_secret":"1"}' href="#"><?=$lang['admin']['oauth2_renew_secret'];?></a></li>
               </ul>
-              <a class="btn btn-sm btn-success" data-id="add_oauth2_client" data-toggle="modal" data-target="#addOAuth2ClientModal" href="#"><span class="glyphicon glyphicon-plus"></span> Add OAuth2 client</a>
+              <div class="clearfix visible-xs"></div>
+              <a class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-id="add_oauth2_client" data-toggle="modal" data-target="#addOAuth2ClientModal" href="#"><i class="bi bi-plus-lg"></i> <?=$lang['admin']['oauth2_add_client'];?></a>
             </div>
           </div>
         </div>
     </div>
+  </div>
 
+  <div role="tabpanel" class="tab-pane" id="tab-config-rspamd">
     <div class="panel panel-default">
       <div class="panel-heading">
         <h3 class="panel-title">Rspamd UI</h3>
       </div>
       <div class="panel-body">
         <div class="row">
-          <div class="col-sm-9">
+          <div class="col-xs-12 visible-xs">
+            <img class="img-responsive" src="/img/rspamd_logo.png" alt="Rspamd UI">
+          </div>
+          <div class="col-sm-9 col-xs-12">
           <form class="form-horizontal" autocapitalize="none" data-id="admin" autocorrect="off" role="form" method="post">
             <div class="form-group">
               <div class="col-sm-offset-3 col-sm-9">
                 <label>
-                  <a href="/rspamd/" target="_blank"><span class="glyphicon glyphicon-new-window" aria-hidden="true"></span> Rspamd UI</a>
+                  <a href="/rspamd/" target="_blank"><i class="bi bi-window"></i> Rspamd UI</a>
                 </label>
               </div>
             </div>
             <div class="form-group">
               <label class="control-label col-sm-3" for="rspamd_ui_pass"><?=$lang['admin']['password'];?>:</label>
               <div class="col-sm-9">
-              <input type="password" class="form-control" name="rspamd_ui_pass" autocomplete="new-password" required>
+              <input type="password" class="form-control" id="rspamd_ui_pass" name="rspamd_ui_pass" autocomplete="new-password" required>
               </div>
             </div>
             <div class="form-group">
               <label class="control-label col-sm-3" for="rspamd_ui_pass2"><?=$lang['admin']['password_repeat'];?>:</label>
               <div class="col-sm-9">
-              <input type="password" class="form-control" name="rspamd_ui_pass2" autocomplete="new-password" required>
+              <input type="password" class="form-control" id="rspamd_ui_pass2" name="rspamd_ui_pass2" autocomplete="new-password" required>
               </div>
             </div>
             <div class="form-group">
               <div class="col-sm-offset-3 col-sm-9">
-                <button type="submit" class="btn btn-sm btn-success" id="rspamd_ui" name="rspamd_ui" href="#"><span class="glyphicon glyphicon-check"></span> <?=$lang['admin']['save'];?></button>
+                <button type="submit" class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" id="rspamd_ui" name="rspamd_ui" href="#"><i class="bi bi-check-lg"></i> <?=$lang['admin']['save'];?></button>
               </div>
             </div>
           </form>
           </div>
-          <div class="col-sm-3">
-            <img class="img-responsive" src="/img/rspamd_logo.png" alt="Rspamd UI" />
+          <div class="col-sm-3 hidden-xs">
+            <img class="img-responsive" src="/img/rspamd_logo.png" alt="Rspamd UI">
           </div>
         </div>
       </div>
@@ -398,34 +424,35 @@
         </div>
         <div class="mass-actions-admin">
           <div class="btn-group btn-group-sm">
-            <button type="button" id="toggle_multi_select_all" data-id="rlyhosts" class="btn btn-default"><?=$lang['mailbox']['toggle_all'];?></button>
-            <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
-            <ul class="dropdown-menu">
+            <button type="button" id="toggle_multi_select_all" data-id="rlyhosts" class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default"><?=$lang['mailbox']['toggle_all'];?></button>
+            <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
+            <ul class="dropdown-menu top100">
               <li><a data-action="edit_selected" data-id="rlyhosts" data-api-url='edit/relayhost' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
               <li><a data-action="edit_selected" data-id="rlyhosts" data-api-url='edit/relayhost' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>
               <li role="separator" class="divider"></li>
               <li><a data-action="delete_selected" data-id="rlyhosts" data-api-url='delete/relayhost' href="#"><?=$lang['admin']['remove'];?></a></li>
             </ul>
+            <div class="clearfix visible-xs"></div>
           </div>
         </div>
         <legend><?=$lang['admin']['add_relayhost'];?></legend>
         <p class="help-block"><?=$lang['admin']['add_relayhost_hint'];?></p>
         <div class="row">
-          <div class="col-md-6">
+          <div class="col-md-8">
             <form class="form" data-id="rlyhost" role="form" method="post">
               <div class="form-group">
-                <label for="hostname"><?=$lang['admin']['host'];?></label>
-                <input class="form-control input-sm" name="hostname" placeholder='[0.0.0.0], [0.0.0.0]:25, host:25, host, [host]:25' required>
+                <label for="rlyhost_hostname"><?=$lang['admin']['host'];?></label>
+                <input class="form-control" id="rlyhost_hostname" name="hostname" placeholder='[0.0.0.0], [0.0.0.0]:25, host:25, host, [host]:25' required>
               </div>
               <div class="form-group">
-                <label for="username"><?=$lang['admin']['username'];?></label>
-                <input class="form-control input-sm" name="username">
+                <label for="rlyhost_username"><?=$lang['admin']['username'];?></label>
+                <input class="form-control" id="rlyhost_username" name="username">
               </div>
               <div class="form-group">
-                <label for="password"><?=$lang['admin']['password'];?></label>
-                <input class="form-control input-sm" name="password">
+                <label for="rlyhost_password"><?=$lang['admin']['password'];?></label>
+                <input class="form-control" id="rlyhost_password" name="password">
               </div>
-              <button class="btn btn-default" data-action="add_item" data-id="rlyhost" data-api-url='add/relayhost' data-api-attr='{}' href="#"><span class="glyphicon glyphicon-plus"></span> <?=$lang['admin']['add'];?></button>
+              <button class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="rlyhost" data-api-url='add/relayhost' data-api-attr='{}' href="#"><i class="bi bi-plus-lg"></i> <?=$lang['admin']['add'];?></button>
             </form>
           </div>
         </div>
@@ -441,49 +468,50 @@
         </div>
         <div class="mass-actions-admin">
           <div class="btn-group btn-group-sm">
-            <button type="button" id="toggle_multi_select_all" data-id="transports" class="btn btn-default"><?=$lang['mailbox']['toggle_all'];?></button>
-            <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
-            <ul class="dropdown-menu">
+            <button type="button" id="toggle_multi_select_all" data-id="transports" class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default"><?=$lang['mailbox']['toggle_all'];?></button>
+            <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
+            <ul class="dropdown-menu top100">
               <li><a data-action="edit_selected" data-id="transports" data-api-url='edit/transport' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
               <li><a data-action="edit_selected" data-id="transports" data-api-url='edit/transport' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>
               <li role="separator" class="divider"></li>
               <li><a data-action="delete_selected" data-id="transports" data-api-url='delete/transport' href="#"><?=$lang['admin']['remove'];?></a></li>
             </ul>
+            <div class="clearfix visible-xs"></div>
           </div>
         </div>
         <legend><?=$lang['admin']['add_transport'];?></legend>
         <p class="help-block"><?=$lang['admin']['add_transports_hint'];?></p>
         <div class="row">
-          <div class="col-md-6">
+          <div class="col-md-8">
             <form class="form" data-id="transport" role="form" method="post">
               <div class="form-group">
-                <label for="destination"><?=$lang['admin']['destination'];?></label>
-                <input class="form-control input-sm" name="destination" placeholder='<?=$lang['admin']['transport_dest_format'];?>' required>
+                <label for="transport_destination"><?=$lang['admin']['destination'];?></label>
+                <input class="form-control" id="transport_destination" name="destination" placeholder='<?=$lang['admin']['transport_dest_format'];?>' required>
               </div>
               <div class="form-group">
-                <label for="nexthop"><?=$lang['admin']['nexthop'];?></label>
-                <input class="form-control input-sm" name="nexthop" placeholder='host:25, host, [host]:25, [0.0.0.0]:25' required>
+                <label for="transport_nexthop"><?=$lang['admin']['nexthop'];?></label>
+                <input class="form-control" id="transport_nexthop" name="nexthop" placeholder='host:25, host, [host]:25, [0.0.0.0]:25' required>
               </div>
               <div class="form-group">
-                <label for="username"><?=$lang['admin']['username'];?></label>
-                <input class="form-control input-sm" name="username">
+                <label for="transport_username"><?=$lang['admin']['username'];?></label>
+                <input class="form-control" id="transport_username" name="username">
               </div>
               <div class="form-group">
-                <label for="password"><?=$lang['admin']['password'];?></label>
-                <input class="form-control input-sm" name="password">
+                <label for="transport_password"><?=$lang['admin']['password'];?></label>
+                <input class="form-control" id="transport_password" name="password">
               </div>
-              <!-- <div class="form-group">
+              <div class="form-group">
                 <label>
-                  <input type="checkbox" name="lookup_mx" value="1"> <?=$lang['admin']['lookup_mx'];?>
+                  <input type="checkbox" name="is_mx_based" value="1"> <?=$lang['admin']['lookup_mx'];?>
                 </label>
-              </div> -->
+              </div>
               <div class="form-group">
                 <label>
                   <input type="checkbox" name="active" value="1"> <?=$lang['admin']['active'];?>
                 </label>
               </div>
               <p class="help-block"><?=$lang['admin']['credentials_transport_warning'];?></p>
-              <button class="btn btn-default" data-action="add_item" data-id="transport" data-api-url='add/transport' data-api-attr='{}' href="#"><span class="glyphicon glyphicon-plus"></span> <?=$lang['admin']['add'];?></button>
+              <button class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="transport" data-api-url='add/transport' data-api-attr='{}' href="#"><i class="bi bi-plus-lg"></i> <?=$lang['admin']['add'];?></button>
             </form>
           </div>
         </div>
@@ -496,9 +524,10 @@
       <div class="panel-heading"><?=$lang['admin']['dkim_keys'];?></div>
       <div class="panel-body">
         <div class="btn-group" data-toggle="button" style="margin-bottom: 20px;">
-          <a class="btn btn-sm btn-default active" href="#" data-toggle="collapse" data-target=".dkim_key_valid"><?=$lang['admin']['dkim_key_valid'];?></a>
-          <a class="btn btn-sm btn-default active" href="#" data-toggle="collapse" data-target=".dkim_key_unused"><?=$lang['admin']['dkim_key_unused'];?></a>
-          <a class="btn btn-sm btn-default active" href="#" data-toggle="collapse" data-target=".dkim_key_missing"><?=$lang['admin']['dkim_key_missing'];?></a>
+          <a class="btn btn-sm btn-xs-third visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default active" href="#" data-toggle="collapse" data-target=".dkim_key_valid"><?=$lang['admin']['dkim_key_valid'];?></a>
+          <a class="btn btn-sm btn-xs-third visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default active" href="#" data-toggle="collapse" data-target=".dkim_key_unused"><?=$lang['admin']['dkim_key_unused'];?></a>
+          <a class="btn btn-sm btn-xs-third visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default active" href="#" data-toggle="collapse" data-target=".dkim_key_missing"><?=$lang['admin']['dkim_key_missing'];?></a>
+          <div class="clearfix visible-xs"></div>
         </div>
         <?php
         foreach(mailbox('get', 'domains') as $domain) {
@@ -507,7 +536,7 @@
               ($GLOBALS['SHOW_DKIM_PRIV_KEYS'] === true) ?: $dkim['privkey'] = base64_encode('Please set $SHOW_DKIM_PRIV_KEYS to true to show DKIM private keys.');
           ?>
             <div class="row collapse in dkim_key_valid">
-              <div class="col-md-1"><input type="checkbox" data-id="dkim" name="multi_select" value="<?=$domain;?>" /></div>
+              <div class="col-md-1"><input type="checkbox" data-id="dkim" name="multi_select" value="<?=$domain;?>"></div>
               <div class="col-md-3">
                 <p><?=$lang['admin']['domain'];?>: <strong><?=htmlspecialchars($domain);?></strong>
                   <p class="dkim-label"><span class="label label-success"><?=$lang['admin']['dkim_key_valid'];?></span></p>
@@ -517,7 +546,7 @@
               </div>
               <div class="col-md-8">
                   <pre><?=$dkim['dkim_txt'];?></pre>
-                  <p data-toggle="modal" data-target="#showDKIMprivKey" id="dkim_priv" style="cursor:pointer;margin-top:-8pt" data-priv-key="<?=$dkim['privkey'];?>"><small>↪ <?=$lang['admin']['dkim_private_key'];?></small></p>
+                  <p data-toggle="modal" data-target="#showDKIMprivKey" id="dkim_priv" style="cursor:pointer;margin-top:-8pt" data-priv-key="<?=$dkim['privkey'];?>"><small><i class="bi bi-arrow-return-right"></i> <?=$lang['admin']['dkim_private_key'];?></small></p>
               </div>
               <hr class="visible-xs visible-sm">
             </div>
@@ -526,7 +555,7 @@
           else {
           ?>
           <div class="row collapse in dkim_key_missing">
-            <div class="col-md-1"><input class="dkim_missing" type="checkbox" data-id="dkim" name="multi_select" value="<?=$domain;?>" disabled /></div>
+            <div class="col-md-1"><input class="dkim_missing" type="checkbox" data-id="dkim" name="multi_select" value="<?=$domain;?>" disabled></div>
             <div class="col-md-3">
               <p><?=$lang['admin']['domain'];?>: <strong><?=htmlspecialchars($domain);?></strong><br><span class="label label-danger"><?=$lang['admin']['dkim_key_missing'];?></span></p>
             </div>
@@ -541,7 +570,7 @@
               ($GLOBALS['SHOW_DKIM_PRIV_KEYS'] === true) ?: $dkim['privkey'] = base64_encode('Please set $SHOW_DKIM_PRIV_KEYS to true to show DKIM private keys.');
             ?>
               <div class="row collapse in dkim_key_valid">
-              <div class="col-md-1"><input type="checkbox" data-id="dkim" name="multi_select" value="<?=$alias_domain;?>" /></div>
+              <div class="col-md-1"><input type="checkbox" data-id="dkim" name="multi_select" value="<?=$alias_domain;?>"></div>
                 <div class="col-md-2 col-md-offset-1">
                   <p><small>↳ Alias-Domain: <strong><?=htmlspecialchars($alias_domain);?></strong></small>
                     <p class="dkim-label"><span class="label label-success"><?=$lang['admin']['dkim_key_valid'];?></span></p>
@@ -551,7 +580,7 @@
                 </div>
                 <div class="col-md-8">
                   <pre><?=$dkim['dkim_txt'];?></pre>
-                  <p data-toggle="modal" data-target="#showDKIMprivKey" id="dkim_priv" style="cursor:pointer;margin-top:-8pt" data-priv-key="<?=$dkim['privkey'];?>"><small>↪ Private key</small></p>
+                  <p data-toggle="modal" data-target="#showDKIMprivKey" id="dkim_priv" style="cursor:pointer;margin-top:-8pt" data-priv-key="<?=$dkim['privkey'];?>"><small><i class="bi bi-arrow-return-right"></i> Private key</small></p>
                 </div>
               <hr class="visible-xs visible-sm">
               </div>
@@ -560,7 +589,7 @@
             else {
             ?>
             <div class="row collapse in dkim_key_missing">
-              <div class="col-md-1"><input class="dkim_missing" type="checkbox" data-id="dkim" name="multi_select" value="<?=$alias_domain;?>" disabled /></div>
+              <div class="col-md-1"><input class="dkim_missing" type="checkbox" data-id="dkim" name="multi_select" value="<?=$alias_domain;?>" disabled></div>
               <div class="col-md-2 col-md-offset-1">
                 <p><small>↳ Alias-Domain: <strong><?=htmlspecialchars($alias_domain);?></strong><br></small><span class="label label-danger"><?=$lang['admin']['dkim_key_missing'];?></span></p>
               </div>
@@ -577,7 +606,7 @@
             ($GLOBALS['SHOW_DKIM_PRIV_KEYS'] === true) ?: $dkim['privkey'] = base64_encode('Please set $SHOW_DKIM_PRIV_KEYS to true to show DKIM private keys.');
           ?>
             <div class="row collapse in dkim_key_unused">
-              <div class="col-md-1"><input type="checkbox" data-id="dkim" name="multi_select" value="<?=$blind;?>" /></div>
+              <div class="col-md-1"><input type="checkbox" data-id="dkim" name="multi_select" value="<?=$blind;?>"></div>
               <div class="col-md-3">
                 <p><?=$lang['admin']['domain'];?>: <strong><?=htmlspecialchars($blind);?></strong>
                   <p class="dkim-label"><span class="label label-warning"><?=$lang['admin']['dkim_key_unused'];?></span></p>
@@ -587,7 +616,7 @@
                 </div>
                 <div class="col-md-8">
                   <pre><?=$dkim['dkim_txt'];?></pre>
-                  <p data-toggle="modal" data-target="#showDKIMprivKey" id="dkim_priv" style="cursor:pointer;margin-top:-8pt" data-priv-key="<?=$dkim['privkey'];?>"><small>↪ Private key</small></p>
+                  <p data-toggle="modal" data-target="#showDKIMprivKey" id="dkim_priv" style="cursor:pointer;margin-top:-8pt" data-priv-key="<?=$dkim['privkey'];?>"><small><i class="bi bi-arrow-return-right"></i> Private key</small></p>
                 </div>
                 <hr class="visible-xs visible-sm">
             </div>
@@ -597,43 +626,44 @@
         ?>
         <div class="mass-actions-admin">
           <div class="btn-group btn-group-sm">
-            <button type="button" id="toggle_multi_select_all" data-id="dkim" class="btn btn-default"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></button>
-            <button type="button" data-action="delete_selected" name="delete_selected" data-id="dkim" data-api-url="delete/dkim" class="btn btn-danger"><span class="glyphicon glyphicon-trash"></span> <?=$lang['admin']['remove'];?></button>
+            <button type="button" id="toggle_multi_select_all" data-id="dkim" class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></button>
+            <button type="button" data-action="delete_selected" name="delete_selected" data-id="dkim" data-api-url="delete/dkim" class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-danger"><i class="bi bi-trash"></i> <?=$lang['admin']['remove'];?></button>
+            <div class="clearfix visible-xs"></div>
           </div>
         </div>
 
         <legend style="margin-top:40px"><?=$lang['admin']['dkim_add_key'];?></legend>
         <form class="form" data-id="dkim" role="form" method="post">
           <div class="form-group">
-            <label for="domain"><?=$lang['admin']['domain_s'];?></label>
+            <label for="dkim_add_domains"><?=$lang['admin']['domain_s'];?></label>
             <input class="form-control input-sm" id="dkim_add_domains" name="domains" placeholder="example.org, example.com" required>
-            <small>↪ <a href="#" id="dkim_missing_keys"><?=$lang['admin']['dkim_domains_wo_keys'];?></a></small>
+            <small><i class="bi bi-arrow-return-right"></i> <a href="#" id="dkim_missing_keys"><?=$lang['admin']['dkim_domains_wo_keys'];?></a></small>
           </div>
           <div class="form-group">
-            <label for="domain"><?=$lang['admin']['dkim_domains_selector'];?></label>
-            <input class="form-control input-sm" name="dkim_selector" value="dkim" required>
+            <label for="dkim_selector"><?=$lang['admin']['dkim_domains_selector'];?></label>
+            <input class="form-control input-sm" id="dkim_selector" name="dkim_selector" value="dkim" required>
           </div>
           <div class="form-group">
-            <select data-width="200px" data-style="btn btn-default btn-sm" class="form-control" id="key_size" name="key_size" title="<?=$lang['admin']['dkim_key_length'];?>" required>
+            <select data-style="btn btn-default btn-sm" class="form-control" id="key_size" name="key_size" title="<?=$lang['admin']['dkim_key_length'];?>" required>
               <option data-subtext="bits">1024</option>
               <option data-subtext="bits">2048</option>
             </select>
           </div>
-          <button class="btn btn-sm btn-default" data-action="add_item" data-id="dkim" data-api-url='add/dkim' data-api-attr='{}' href="#"><span class="glyphicon glyphicon-plus"></span> <?=$lang['admin']['add'];?></button>
+          <button class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="dkim" data-api-url='add/dkim' data-api-attr='{}' href="#"><i class="bi bi-plus-lg"></i> <?=$lang['admin']['add'];?></button>
         </form>
 
-        <legend data-target="#import_dkim" style="margin-top:40px;cursor:pointer" class="arrow-toggle" unselectable="on" data-toggle="collapse">
-          <span style="font-size:12px" class="arrow rotate glyphicon glyphicon-menu-down"></span> <?=$lang['admin']['import_private_key'];?>
+        <legend data-target="#import_dkim" style="margin-top:40px;cursor:pointer" unselectable="on" data-toggle="collapse">
+          <i style="font-size:10pt;" class="bi bi-plus-square"></i> <?=$lang['admin']['import_private_key'];?>
         </legend>
         <div id="import_dkim" class="collapse">
         <form class="form" data-id="dkim_import" role="form" method="post">
           <div class="form-group">
-            <label for="domain"><?=$lang['admin']['domain'];?>:</label>
-            <input class="form-control input-sm" name="domain" placeholder="example.org" required>
+            <label for="dkim_import_domain"><?=$lang['admin']['domain'];?>:</label>
+            <input class="form-control input-sm" id="dkim_import_domain" name="domain" placeholder="example.org" required>
           </div>
           <div class="form-group">
-            <label for="domain"><?=$lang['admin']['dkim_domains_selector'];?>:</label>
-            <input class="form-control input-sm" name="dkim_selector" value="dkim" required>
+            <label for="dkim_import_selector"><?=$lang['admin']['dkim_domains_selector'];?>:</label>
+            <input class="form-control input-sm" id="dkim_import_selector" name="dkim_selector" value="dkim" required>
           </div>
           <div class="form-group">
             <label for="private_key_file"><?=$lang['admin']['private_key'];?>: (RSA PKCS#8)</label>
@@ -644,12 +674,12 @@
               <input type="checkbox" name="overwrite_existing" value="1"> <?=$lang['admin']['dkim_overwrite_key'];?>
             </label>
           </div>
-          <button class="btn btn-sm btn-default" data-action="add_item" data-id="dkim_import" data-api-url='add/dkim_import' data-api-attr='{}' href="#"><span class="glyphicon glyphicon-plus"></span> <?=$lang['admin']['import'];?></button>
+          <button class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" data-action="add_item" data-id="dkim_import" data-api-url='add/dkim_import' data-api-attr='{}' href="#"><i class="bi bi-plus-lg"></i> <?=$lang['admin']['import'];?></button>
         </form>
         </div>
 
-        <legend data-target="#duplicate_dkim" style="margin-top:40px;cursor:pointer" class="arrow-toggle" unselectable="on" data-toggle="collapse">
-          <span style="font-size:12px" class="arrow rotate glyphicon glyphicon-menu-down"></span> <?=$lang['admin']['duplicate_dkim'];?>
+        <legend data-target="#duplicate_dkim" style="margin-top:40px;cursor:pointer" unselectable="on" data-toggle="collapse">
+          <i style="font-size:10pt;" class="bi bi-plus-square"></i> <?=$lang['admin']['duplicate_dkim'];?>
         </legend>
         <div id="duplicate_dkim" class="collapse">
           <form class="form-horizontal" data-id="dkim_duplicate" role="form" method="post">
@@ -690,7 +720,7 @@
               </select>
               </div>
             </div>
-            <button class="btn btn-sm btn-default" data-action="add_item" data-id="dkim_duplicate" data-api-url='add/dkim_duplicate' data-api-attr='{}' href="#"><span class="glyphicon glyphicon-duplicate"></span> <?=$lang['admin']['duplicate'];?></button>
+            <button class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" data-action="add_item" data-id="dkim_duplicate" data-api-url='add/dkim_duplicate' data-api-attr='{}' href="#"><i class="bi bi-clipboard-plus"></i> <?=$lang['admin']['duplicate'];?></button>
           </form>
         </div>
       </div>
@@ -707,22 +737,23 @@
         </div>
         <div class="mass-actions-admin">
           <div class="btn-group btn-group-sm">
-            <button type="button" id="toggle_multi_select_all" data-id="fwdhosts" class="btn btn-default"><?=$lang['mailbox']['toggle_all'];?></button>
-            <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
-            <ul class="dropdown-menu">
+            <button type="button" id="toggle_multi_select_all" data-id="fwdhosts" class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default"><?=$lang['mailbox']['toggle_all'];?></button>
+            <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
+            <ul class="dropdown-menu top100">
               <li><a data-action="edit_selected" data-id="fwdhosts" data-api-url='edit/fwdhost' data-api-attr='{"keep_spam":"0"}' href="#">Enable spam filter</a></li>
               <li><a data-action="edit_selected" data-id="fwdhosts" data-api-url='edit/fwdhost' data-api-attr='{"keep_spam":"1"}' href="#">Disable spam filter</a></li>
               <li role="separator" class="divider"></li>
               <li><a data-action="delete_selected" data-id="fwdhosts" data-api-url='delete/fwdhost' href="#"><?=$lang['admin']['remove'];?></a></li>
             </ul>
+            <div class="clearfix visible-xs"></div>
           </div>
         </div>
         <legend><?=$lang['admin']['add_forwarding_host'];?></legend>
         <p class="help-block"><?=$lang['admin']['forwarding_hosts_add_hint'];?></p>
         <form class="form" data-id="fwdhost" role="form" method="post">
           <div class="form-group">
-            <label for="hostname"><?=$lang['admin']['host'];?></label>
-            <input class="form-control" name="hostname" placeholder="example.org" required>
+            <label for="fwdhost_hostname"><?=$lang['admin']['host'];?></label>
+            <input class="form-control" id="fwdhost_hostname" name="hostname" placeholder="example.org" required>
           </div>
           <div class="form-group">
             <select data-width="200px" class="form-control" id="filter_spam" name="filter_spam" title="<?=$lang['user']['spamfilter'];?>" required>
@@ -730,7 +761,7 @@
               <option value="0"><?=$lang['admin']['inactive'];?></option>
             </select>
           </div>
-          <button class="btn btn-default" data-action="add_item" data-id="fwdhost" data-api-url='add/fwdhost' data-api-attr='{}' href="#"><span class="glyphicon glyphicon-plus"></span> <?=$lang['admin']['add'];?></button>
+          <button class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="fwdhost" data-api-url='add/fwdhost' data-api-attr='{}' href="#"><i class="bi bi-plus-lg"></i> <?=$lang['admin']['add'];?></button>
         </form>
       </div>
     </div>
@@ -745,48 +776,51 @@
       ?>
         <form class="form" data-id="f2b" role="form" method="post">
           <div class="form-group">
-            <label for="ban_time"><?=$lang['admin']['f2b_ban_time'];?>:</label>
-            <input type="number" class="form-control" name="ban_time" value="<?=$f2b_data['ban_time'];?>" required>
+            <label for="f2b_ban_time"><?=$lang['admin']['f2b_ban_time'];?>:</label>
+            <input type="number" class="form-control" id="f2b_ban_time" name="ban_time" value="<?=$f2b_data['ban_time'];?>" required>
           </div>
           <div class="form-group">
-            <label for="max_attempts"><?=$lang['admin']['f2b_max_attempts'];?>:</label>
-            <input type="number" class="form-control" name="max_attempts" value="<?=$f2b_data['max_attempts'];?>" required>
+            <label for="f2b_max_attempts"><?=$lang['admin']['f2b_max_attempts'];?>:</label>
+            <input type="number" class="form-control" id="f2b_max_attempts" name="max_attempts" value="<?=$f2b_data['max_attempts'];?>" required>
           </div>
           <div class="form-group">
-            <label for="retry_window"><?=$lang['admin']['f2b_retry_window'];?>:</label>
-            <input type="number" class="form-control" name="retry_window" value="<?=$f2b_data['retry_window'];?>" required>
+            <label for="f2b_retry_window"><?=$lang['admin']['f2b_retry_window'];?>:</label>
+            <input type="number" class="form-control" id="f2b_retry_window" name="retry_window" value="<?=$f2b_data['retry_window'];?>" required>
           </div>
           <div class="form-group">
-            <label for="netban_ipv4"><?=$lang['admin']['f2b_netban_ipv4'];?>:</label>
+            <label for="f2b_netban_ipv4"><?=$lang['admin']['f2b_netban_ipv4'];?>:</label>
             <div class="input-group">
               <span class="input-group-addon">/</span>
-              <input type="number" class="form-control" name="netban_ipv4" value="<?=$f2b_data['netban_ipv4'];?>" required>
+              <input type="number" class="form-control" id="f2b_netban_ipv4" name="netban_ipv4" value="<?=$f2b_data['netban_ipv4'];?>" required>
             </div>
           </div>
           <div class="form-group">
-            <label for="netban_ipv6"><?=$lang['admin']['f2b_netban_ipv6'];?>:</label>
+            <label for="f2b_netban_ipv6"><?=$lang['admin']['f2b_netban_ipv6'];?>:</label>
             <div class="input-group">
               <span class="input-group-addon">/</span>
-              <input type="number" class="form-control" name="netban_ipv6" value="<?=$f2b_data['netban_ipv6'];?>" required>
+              <input type="number" class="form-control" id="f2b_netban_ipv6" name="netban_ipv6" value="<?=$f2b_data['netban_ipv6'];?>" required>
             </div>
           </div>
           <hr>
           <p class="help-block"><?=$lang['admin']['f2b_list_info'];?></p>
           <div class="form-group">
-            <label for="whitelist"><?=$lang['admin']['f2b_whitelist'];?>:</label>
-            <textarea class="form-control" name="whitelist" rows="5"><?=$f2b_data['whitelist'];?></textarea>
+            <label for="f2b_whitelist"><?=$lang['admin']['f2b_whitelist'];?>:</label>
+            <textarea class="form-control" id="f2b_whitelist" name="whitelist" rows="5"><?=$f2b_data['whitelist'];?></textarea>
           </div>
           <div class="form-group">
-            <label for="blacklist"><?=$lang['admin']['f2b_blacklist'];?>:</label>
-            <textarea class="form-control" name="blacklist" rows="5"><?=$f2b_data['blacklist'];?></textarea>
+            <label for="f2b_blacklist"><?=$lang['admin']['f2b_blacklist'];?>:</label>
+            <textarea class="form-control" id="f2b_blacklist" name="blacklist" rows="5"><?=$f2b_data['blacklist'];?></textarea>
           </div>
           <div class="btn-group">
-            <button class="btn btn-sm btn-success" data-action="edit_selected" data-item="self" data-id="f2b" data-api-url='edit/fail2ban' data-api-attr='{}' href="#"><span class="glyphicon glyphicon-check"></span> <?=$lang['admin']['save'];?></button>
-            <a href="#" role="button" class="btn btn-sm btn-default" data-toggle="modal" data-container="netfilter-mailcow" data-target="#RestartContainer"><span class="glyphicon glyphicon-refresh"></span> <?= $lang['header']['restart_netfilter']; ?></a>
+            <button class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-item="self" data-id="f2b" data-api-url='edit/fail2ban' data-api-attr='{}' href="#"><i class="bi bi-check-lg"></i> <?=$lang['admin']['save'];?></button>
+            <a href="#" role="button" class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" data-toggle="modal" data-container="netfilter-mailcow" data-target="#RestartContainer"><i class="bi bi-arrow-repeat"></i> <?= $lang['header']['restart_netfilter']; ?></a>
+            <div class="clearfix visible-xs"></div>
           </div>
         </form>
-        <hr>
-        <h4><?=$lang['admin']['f2b_filter'];?></h4>
+        <legend data-target="#f2b_regex_filters" style="margin-top:40px;cursor:pointer" unselectable="on" data-toggle="collapse">
+          <i style="font-size:10pt;" class="bi bi-plus-square"></i> <?=$lang['admin']['f2b_filter'];?>
+        </legend>
+        <div id="f2b_regex_filters" class="collapse">
         <p class="help-block"><?=$lang['admin']['f2b_regex_info'];?></p>
         <form class="form-inline" data-id="f2b_regex" role="form" method="post">
           <table class="table table-condensed" id="f2b_regex_table">
@@ -800,9 +834,9 @@
               foreach ($f2b_data['regex'] as $regex_id => $regex_val) {
             ?>
             <tr>
-              <td><input disabled class="input-sm form-control" style="text-align:center" data-id="f2b_regex" type="text" name="app" required value="<?=$regex_id;?>"></td>
-              <td><input class="input-sm form-control regex-input" data-id="f2b_regex" type="text" name="regex" required value="<?=htmlspecialchars($regex_val);?>"></td>
-              <td><a href="#" role="button" class="btn btn-xs btn-default" type="button"><?=$lang['admin']['remove_row'];?></a></td>
+              <td><input disabled class="input-sm input-xs-lg form-control" style="text-align:center" data-id="f2b_regex" type="text" name="app" required value="<?=$regex_id;?>"></td>
+              <td><input class="input-sm input-xs-lg form-control regex-input" data-id="f2b_regex" type="text" name="regex" required value="<?=htmlspecialchars($regex_val);?>"></td>
+              <td><a href="#" role="button" class="btn btn-xs btn-xs-lg btn-default" type="button"><?=$lang['admin']['remove_row'];?></a></td>
             </tr>
             <?php
               }
@@ -810,12 +844,13 @@
             ?>
           </table>
           <p><div class="btn-group">
-            <button class="btn btn-sm btn-success" data-action="edit_selected" data-item="admin" data-id="f2b_regex" data-reload="no" data-api-url='edit/fail2ban' data-api-attr='{"action":"edit-regex"}' href="#"><span class="glyphicon glyphicon-check"></span> <?=$lang['admin']['save'];?></button>
-            <button class="btn btn-sm btn-default admin-ays-dialog" data-action="edit_selected" data-item="self" data-id="f2b-quick" data-api-url='edit/fail2ban' data-api-attr='{"action":"reset-regex"}' href="#"><?=$lang['admin']['reset_default'];?></button>
-            <button class="btn btn-sm btn-default" type="button" id="add_f2b_regex_row"><span class="glyphicon glyphicon-plus"></span> <?=$lang['admin']['add_row'];?></button>
+            <button class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-item="admin" data-id="f2b_regex" data-reload="no" data-api-url='edit/fail2ban' data-api-attr='{"action":"edit-regex"}' href="#"><i class="bi bi-check-lg"></i> <?=$lang['admin']['save'];?></button>
+            <button class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default admin-ays-dialog" data-action="edit_selected" data-item="self" data-id="f2b-quick" data-api-url='edit/fail2ban' data-api-attr='{"action":"reset-regex"}' href="#"><?=$lang['admin']['reset_default'];?></button>
+            <button class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" type="button" id="add_f2b_regex_row"><i class="bi bi-plus-lg"></i> <?=$lang['admin']['add_row'];?></button>
           </div></p>
         </form>
-        <hr>
+        </div>
+
         <p class="help-block"><?=$lang['admin']['ban_list_info'];?></p>
         <?php
         if (empty($f2b_data['active_bans']) && empty($f2b_data['perm_bans'])):
@@ -826,7 +861,7 @@
         if (!empty($f2b_data['active_bans'])):
           foreach ($f2b_data['active_bans'] as $active_bans):
           ?>
-          <p><span class="label label-info" style="padding:4px;font-size:85%;"><span class="glyphicon glyphicon-filter"></span> <?=$active_bans['network'];?> (<?=$active_bans['banned_until'];?>) -
+          <p><span class="label label-info" style="padding:4px;font-size:85%;"><i class="bi bi-funnel-fill"></i><a href="https://bgp.he.net/ip/<?=$active_bans['ip'];?>" target="_blank" style="color:white"> <?=$active_bans['network'];?></a>(<?=$active_bans['banned_until'];?>) -
             <?php
             if ($active_bans['queued_for_unban'] == 0):
             ?>
@@ -850,7 +885,7 @@
         if (!empty($f2b_data['perm_bans'])):
           foreach ($f2b_data['perm_bans'] as $perm_bans):
           ?>
-          <span class="label label-danger" style="padding: 0.1em 0.4em 0.1em;"><span class="glyphicon glyphicon-filter"></span> <?=$perm_bans?></span>
+          <span class="label label-danger" style="padding: 0.1em 0.4em 0.1em;"><i class="bi bi-funnel-fill"></i><a href="https://bgp.he.net/ip/<?=$perm_bans['ip'];?>" target="_blank" style="color:white"> <?=$perm_bans['network'];?></a></span>
           <?php
           endforeach;
         endif;
@@ -866,66 +901,66 @@
         <?php $q_data = quarantine('settings');
         if (empty($q_data['retention_size']) || empty($q_data['max_size'])):
         ?>
-        <div class="panel-body"><div class="alert alert-info"><?=$lang['quarantine']['disabled_by_config'];?></div></div>
+        <div class="alert alert-info"><?=$lang['quarantine']['disabled_by_config'];?></div>
         <?php
         endif;
         ?>
         <form class="form-horizontal" data-id="quarantine" role="form" method="post">
           <div class="form-group">
-            <label class="col-sm-4 control-label" for="retention_size"><?=$lang['admin']['quarantine_retention_size'];?></label>
+            <label class="col-sm-4 control-label" for="quarantine_retention_size"><?=$lang['admin']['quarantine_retention_size'];?></label>
             <div class="col-sm-8">
-              <input type="number" class="form-control" name="retention_size" value="<?=$q_data['retention_size'];?>" placeholder="0" required>
+              <input type="number" class="form-control" id="quarantine_retention_size" name="retention_size" value="<?=$q_data['retention_size'];?>" placeholder="0" required>
             </div>
           </div>
           <div class="form-group">
-            <label class="col-sm-4 control-label" for="max_size"><?=$lang['admin']['quarantine_max_size'];?></label>
+            <label class="col-sm-4 control-label" for="quarantine_max_size"><?=$lang['admin']['quarantine_max_size'];?></label>
             <div class="col-sm-8">
-              <input type="number" class="form-control" name="max_size" value="<?=$q_data['max_size'];?>" placeholder="0" required>
+              <input type="number" class="form-control" id="quarantine_max_size" name="max_size" value="<?=$q_data['max_size'];?>" placeholder="0" required>
             </div>
           </div>
           <div class="form-group">
-            <label class="col-sm-4 control-label" for="max_score"><?=$lang['admin']['quarantine_max_score'];?></label>
+            <label class="col-sm-4 control-label" for="quarantine_max_score"><?=$lang['admin']['quarantine_max_score'];?></label>
             <div class="col-sm-8">
-              <input type="number" class="form-control" name="max_score" value="<?=$q_data['max_score'];?>" placeholder="9999.0">
+              <input type="number" class="form-control" id="quarantine_max_score" name="max_score" value="<?=$q_data['max_score'];?>" placeholder="9999.0">
             </div>
           </div>
           <div class="form-group">
-            <label class="col-sm-4 control-label" for="max_age"><?=$lang['admin']['quarantine_max_age'];?></label>
+            <label class="col-sm-4 control-label" for="quarantine_max_age"><?=$lang['admin']['quarantine_max_age'];?></label>
             <div class="col-sm-8">
-              <input type="number" class="form-control" name="max_age" value="<?=$q_data['max_age'];?>" min="1" required>
+              <input type="number" class="form-control" id="quarantine_max_age" name="max_age" value="<?=$q_data['max_age'];?>" min="1" required>
             </div>
           </div>
           <hr>
           <div class="form-group">
-            <label class="col-sm-4 control-label" for="sender"><span class="glyphicon glyphicon-share-alt"></span> <?=$lang['admin']['quarantine_redirect'];?></label>
+            <label class="col-sm-4 control-label" for="quarantine_redirect"><i class="bi bi-box-arrow-right"></i> <?=$lang['admin']['quarantine_redirect'];?></label>
             <div class="col-sm-8">
-              <input type="email" class="form-control" name="redirect" value="<?=htmlspecialchars($q_data['redirect']);?>" placeholder="">
+              <input type="email" class="form-control" id="quarantine_redirect" name="redirect" value="<?=htmlspecialchars($q_data['redirect']);?>" placeholder="">
             </div>
           </div>
           <div class="form-group">
-            <label class="col-sm-4 control-label" for="sender"><span class="glyphicon glyphicon-copy"></span> <?=$lang['admin']['quarantine_bcc'];?></label>
+            <label class="col-sm-4 control-label" for="quarantine_bcc"><i class="bi bi-files"></i> <?=$lang['admin']['quarantine_bcc'];?></label>
             <div class="col-sm-8">
-              <input type="email" class="form-control" name="bcc" value="<?=htmlspecialchars($q_data['bcc']);?>" placeholder="">
+              <input type="email" class="form-control" id="quarantine_bcc" name="bcc" value="<?=htmlspecialchars($q_data['bcc']);?>" placeholder="">
             </div>
           </div>
           <hr>
           <div class="form-group">
-            <label class="col-sm-4 control-label" for="sender"><?=$lang['admin']['quarantine_notification_sender'];?>:</label>
+            <label class="col-sm-4 control-label" for="quarantine_sender"><?=$lang['admin']['quarantine_notification_sender'];?>:</label>
             <div class="col-sm-8">
-              <input type="email" class="form-control" name="sender" value="<?=htmlspecialchars($q_data['sender']);?>" placeholder="quarantine@localhost">
+              <input type="email" class="form-control" id="quarantine_sender" name="sender" value="<?=htmlspecialchars($q_data['sender']);?>" placeholder="quarantine@localhost">
             </div>
           </div>
           <div class="form-group">
-            <label class="col-sm-4 control-label" for="subject"><?=$lang['admin']['quarantine_notification_subject'];?>:</label>
+            <label class="col-sm-4 control-label" for="quarantine_subject"><?=$lang['admin']['quarantine_notification_subject'];?>:</label>
             <div class="col-sm-8">
-              <input type="text" class="form-control" name="subject" value="<?=htmlspecialchars($q_data['subject']);?>" placeholder="Spam Quarantine Notification">
+              <input type="text" class="form-control" id="quarantine_subject" name="subject" value="<?=htmlspecialchars($q_data['subject']);?>" placeholder="Spam Quarantine Notification">
             </div>
           </div>
           <hr>
           <div class="form-group">
-            <label class="col-sm-4 control-label" for="release_format"><?=$lang['admin']['quarantine_release_format'];?>:</label>
+            <label class="col-sm-4 control-label" for="quarantine_release_format"><?=$lang['admin']['quarantine_release_format'];?>:</label>
             <div class="col-sm-8">
-              <select data-width="100%" name="release_format" class="selectpicker" title="<?=$lang['tfa']['select'];?>">
+              <select data-width="100%" id="quarantine_release_format" name="release_format" class="selectpicker" title="<?=$lang['tfa']['select'];?>">
                 <option <?=($q_data['release_format'] == 'raw') ? 'selected' : null;?> value="raw"><?=$lang['admin']['quarantine_release_format_raw'];?></option>
                 <option <?=($q_data['release_format'] == 'attachment') ? 'selected' : null;?> value="attachment"><?=$lang['admin']['quarantine_release_format_att'];?></option>
               </select>
@@ -936,23 +971,25 @@
             <div class="col-sm-8">
               <select data-width="100%" name="exclude_domains" class="selectpicker" title="<?=$lang['tfa']['select'];?>" multiple>
               <?php
-              foreach (array_merge(mailbox('get', 'domains'), mailbox('get', 'alias_domains')) as $domain):
-              ?>
-                <option <?=(in_array($domain, $q_data['exclude_domains'])) ? 'selected' : null;?>><?=htmlspecialchars($domain);?></option>
-              <?php
-              endforeach;
+              if (is_array($q_data['exclude_domains'])) {
+                foreach (array_merge(mailbox('get', 'domains'), mailbox('get', 'alias_domains')) as $domain) {
+                ?>
+                  <option <?=(in_array($domain, $q_data['exclude_domains'])) ? 'selected' : null;?>><?=htmlspecialchars($domain);?></option>
+                <?php
+                }
+              }
               ?>
               </select>
             </div>
           </div>
           <hr>
-          <legend data-target="#quarantine_template" style="cursor:pointer" class="arrow-toggle" unselectable="on" data-toggle="collapse">
-            <span style="font-size:12px" class="arrow rotate glyphicon glyphicon-menu-down"></span> <?=$lang['admin']['quarantine_notification_html'];?>
+          <legend data-target="#quarantine_template" style="cursor:pointer" unselectable="on" data-toggle="collapse">
+            <i style="font-size:10pt;" class="bi bi-plus-square"></i> <?=$lang['admin']['quarantine_notification_html'];?>
           </legend>
           <div id="quarantine_template" class="collapse" >
             <textarea autocorrect="off" spellcheck="false" autocapitalize="none" class="form-control textarea-code" rows="40" name="html_tmpl"><?=$q_data['html_tmpl'];?></textarea>
           </div>
-          <button class="btn btn-sm btn-success" data-action="edit_selected" data-item="self" data-id="quarantine" data-api-url='edit/quarantine' data-api-attr='{"action":"settings"}' href="#"><span class="glyphicon glyphicon-check"></span> <?=$lang['admin']['save'];?></button>
+          <button class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-item="self" data-id="quarantine" data-api-url='edit/quarantine' data-api-attr='{"action":"settings"}' href="#"><i class="bi bi-check-lg"></i> <?=$lang['admin']['save'];?></button>
         </form>
       </div>
     </div>
@@ -968,21 +1005,21 @@
         <div class="row">
           <div class="col-sm-6">
             <div class="form-group">
-              <label for="sender"><?=$lang['admin']['quarantine_notification_sender'];?>:</label>
-              <input type="email" class="form-control" name="sender" value="<?=htmlspecialchars($qw_data['sender']);?>" placeholder="quota-warning@localhost">
+              <label for="quota_notification_sender"><?=$lang['admin']['quota_notification_sender'];?>:</label>
+              <input type="email" class="form-control" id="quota_notification_sender" name="sender" value="<?=htmlspecialchars($qw_data['sender']);?>" placeholder="quota-warning@localhost">
             </div>
           </div>
           <div class="col-sm-6">
             <div class="form-group">
-              <label for="subject"><?=$lang['admin']['quarantine_notification_subject'];?>:</label>
-              <input type="text" class="form-control" name="subject" value="<?=htmlspecialchars($qw_data['subject']);?>" placeholder="Quota warning">
+              <label for="quota_notification_subject"><?=$lang['admin']['quota_notification_subject'];?>:</label>
+              <input type="text" class="form-control" id="quota_notification_subject" name="subject" value="<?=htmlspecialchars($qw_data['subject']);?>" placeholder="Quota warning">
             </div>
           </div>
         </div>
         <div class="row">
           <div class="col-sm-12">
-            <legend data-target="#quota_template" style="cursor:pointer" class="arrow-toggle" unselectable="on" data-toggle="collapse">
-              <span style="font-size:12px" class="arrow rotate glyphicon glyphicon-menu-down"></span> <?=$lang['admin']['quarantine_notification_html'];?>
+            <legend data-target="#quota_template" style="cursor:pointer" unselectable="on" data-toggle="collapse">
+              <i style="font-size:10pt;" class="bi bi-plus-square"></i> <?=$lang['admin']['quarantine_notification_html'];?>
             </legend>
             <div id="quota_template" class="collapse" >
               <!-- <small><?=$lang['admin']['quota_notifications_vars'];?></small><br><br>-->
@@ -994,11 +1031,11 @@
           <div class="col-sm-10">
             <div class="form-group">
               <br>
-              <a type="button" class="btn btn-sm btn-success" data-action="edit_selected"
+              <a type="button" class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected"
                 data-item="quota_notification"
                 data-id="quota_notification"
                 data-api-url='edit/quota_notification'
-                data-api-attr='{}'><span class="glyphicon glyphicon-check"></span> <?=$lang['user']['save_changes'];?></a>
+                data-api-attr='{}'><i class="bi bi-check-lg"></i> <?=$lang['user']['save_changes'];?></a>
             </div>
           </div>
         </div>
@@ -1011,8 +1048,8 @@
     <div class="panel panel-default">
       <div class="panel-heading"><?=$lang['admin']['rspamd_settings_map'];?></div>
       <div class="panel-body">
-      <legend data-target="#active_settings_map" style="cursor:pointer" class="arrow-toggle" unselectable="on" data-toggle="collapse">
-        <span style="font-size:12px" class="arrow rotate glyphicon glyphicon-menu-down"></span> <?=$lang['admin']['active_rspamd_settings_map'];?>
+      <legend data-target="#active_settings_map" style="cursor:pointer" unselectable="on" data-toggle="collapse">
+        <i style="font-size:10pt;" class="bi bi-plus-square"></i> <?=$lang['admin']['active_rspamd_settings_map'];?>
       </legend>
       <div id="active_settings_map" class="collapse" >
         <textarea autocorrect="off" spellcheck="false" autocapitalize="none" class="form-control textarea-code" rows="20" name="settings_map" readonly><?=file_get_contents('http://nginx:8081/settings.php');?></textarea>
@@ -1067,19 +1104,19 @@
                   <form class="form" data-id="rsettings" role="form" method="post">
                     <input type="hidden" name="active" value="0">
                     <div class="form-group">
-                      <label for="desc"><?=$lang['admin']['rsetting_desc'];?>:</label>
-                      <input type="text" class="form-control" name="desc" value="<?=htmlspecialchars($rsetting_details['desc']);?>">
+                      <label for="rsettings_desc"><?=$lang['admin']['rsetting_desc'];?>:</label>
+                      <input type="text" class="form-control" id="rsettings_desc" name="desc" value="<?=htmlspecialchars($rsetting_details['desc']);?>">
                     </div>
                     <div class="form-group">
-                      <label for="content"><?=$lang['admin']['rsetting_content'];?>:</label>
-                      <textarea class="form-control" name="content" rows="10"><?=htmlspecialchars($rsetting_details['content']);?></textarea>
+                      <label for="rsettings_content"><?=$lang['admin']['rsetting_content'];?>:</label>
+                      <textarea class="form-control" id="rsettings_content" name="content" rows="10"><?=htmlspecialchars($rsetting_details['content']);?></textarea>
                     </div>
                     <div class="form-group">
                       <label>
                         <input type="checkbox" name="active" value="1" <?=($rsetting_details['active'] == 1) ? 'checked' : null;?>> <?=$lang['admin']['active'];?>
                       </label>
                     </div>
-                    <button class="btn btn-sm btn-success" data-action="edit_selected" data-item="<?=$rsetting_details['id'];?>" data-id="rsettings" data-api-url='edit/rsetting' data-api-attr='{}' href="#"><span class="glyphicon glyphicon-check"></span> <?=$lang['admin']['save'];?></button>
+                    <button class="btn btn-sm btn-success" data-action="edit_selected" data-item="<?=$rsetting_details['id'];?>" data-id="rsettings" data-api-url='edit/rsetting' data-api-attr='{}' href="#"><i class="bi bi-check-lg"></i> <?=$lang['admin']['save'];?></button>
                     <button class="btn btn-sm btn-danger" data-action="delete_selected" data-item="<?=$rsetting_details['id'];?>" data-id="rsettings" data-api-url="delete/rsetting" data-api-attr='{}' href="#"><?=$lang['admin']['remove'];?></button>
                   </form>
                 </div>
@@ -1099,12 +1136,12 @@
     <div class="panel panel-default">
       <div class="panel-heading"><?=$lang['admin']['customize'];?></div>
       <div class="panel-body">
-        <legend><?=$lang['admin']['change_logo'];?></legend>
+        <legend><i class="bi bi-file-image"></i> <?=$lang['admin']['change_logo'];?></legend>
         <p class="help-block"><?=$lang['admin']['logo_info'];?></p>
         <form class="form-inline" role="form" method="post" enctype="multipart/form-data">
           <p>
-            <input type="file" name="main_logo" class="filestyle" data-buttonName="btn-default" data-buttonText="Select" accept="image/gif, image/jpeg, image/pjpeg, image/x-png, image/png, image/svg+xml">
-            <button name="submit_main_logo" type="submit" class="btn btn-default"><span class="glyphicon glyphicon-cloud-upload"></span> <?=$lang['admin']['upload'];?></button>
+            <input type="file" name="main_logo" accept="image/gif, image/jpeg, image/pjpeg, image/x-png, image/png, image/svg+xml"><br>
+            <button name="submit_main_logo" type="submit" class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default"><i class="bi bi-upload"></i> <?=$lang['admin']['upload'];?></button>
           </p>
         </form>
         <?php
@@ -1123,7 +1160,7 @@
             </div>
             <hr>
             <form class="form-inline" role="form" method="post">
-              <p><button name="reset_main_logo" type="submit" class="btn btn-xs btn-default"><?=$lang['admin']['reset_default'];?></button></p>
+              <p><button name="reset_main_logo" type="submit" class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default"><?=$lang['admin']['reset_default'];?></button></p>
             </form>
           </div>
         </div>
@@ -1139,29 +1176,32 @@
             </tr>
             <?php
             $app_links = customize('get', 'app_links');
-            foreach ($app_links as $row) {
-              foreach ($row as $key => $val) {
-            ?>
+            if ($app_links) {
+              foreach ($app_links as $row) {
+                foreach ($row as $key => $val) {
+              ?>
             <tr>
-              <td><input class="input-sm form-control" data-id="app_links" type="text" name="app" required value="<?=$key;?>"></td>
-              <td><input class="input-sm form-control" data-id="app_links" type="text" name="href" required value="<?=$val;?>"></td>
-              <td><a href="#" role="button" class="btn btn-xs btn-default" type="button"><?=$lang['admin']['remove_row'];?></a></td>
+              <td><input class="input-sm input-xs-lg form-control" data-id="app_links" type="text" name="app" required value="<?=$key;?>"></td>
+              <td><input class="input-sm input-xs-lg form-control" data-id="app_links" type="text" name="href" required value="<?=$val;?>"></td>
+              <td><a href="#" role="button" class="btn btn-sm btn-xs-lg btn-default" type="button"><?=$lang['admin']['remove_row'];?></a></td>
             </tr>
             <?php
+                }
               }
             }
             foreach ($MAILCOW_APPS as $app) {
             ?>
             <tr>
-              <td><input class="input-sm form-control" value="<?=htmlspecialchars($app['name']);?>" disabled></td>
-              <td><input class="input-sm form-control" value="<?=htmlspecialchars($app['link']);?>" disabled></td>
+              <td><input class="input-sm input-xs-lg form-control" value="<?=htmlspecialchars($app['name']);?>" disabled></td>
+              <td><input class="input-sm input-xs-lg form-control" value="<?=htmlspecialchars($app['link']);?>" disabled></td>
               <td>&nbsp;</td>
             </tr>
             <?php } ?>
           </table>
           <p><div class="btn-group">
-            <button class="btn btn-sm btn-success" data-action="edit_selected" data-item="admin" data-id="app_links" data-reload="no" data-api-url='edit/app_links' data-api-attr='{}' href="#"><span class="glyphicon glyphicon-check"></span> <?=$lang['admin']['save'];?></button>
-            <button class="btn btn-sm btn-default" type="button" id="add_app_link_row"><?=$lang['admin']['add_row'];?></button>
+            <button class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-item="admin" data-id="app_links" data-reload="no" data-api-url='edit/app_links' data-api-attr='{}' href="#"><i class="bi bi-check-lg"></i> <?=$lang['admin']['save'];?></button>
+            <button class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" type="button" id="add_app_link_row"><?=$lang['admin']['add_row'];?></button>
+            <div class="clearfix visible-xs"></div>
           </div></p>
         </form>
         <legend data-target="#ui_texts" style="padding-top:20px" unselectable="on"><?=$lang['admin']['ui_texts'];?></legend>
@@ -1169,16 +1209,16 @@
         <?php $ui_texts = customize('get', 'ui_texts'); ?>
           <form class="form" data-id="uitexts" role="form" method="post">
             <div class="form-group">
-              <label for="title_name"><?=$lang['admin']['title_name'];?>:</label>
-              <input type="text" class="form-control" name="title_name" placeholder="mailcow UI" value="<?=$ui_texts['title_name'];?>">
+              <label for="uitests_title_name"><?=$lang['admin']['title_name'];?>:</label>
+              <input type="text" class="form-control" id="uitests_title_name" name="title_name" placeholder="mailcow UI" value="<?=$ui_texts['title_name'];?>">
             </div>
             <div class="form-group">
-              <label for="main_name"><?=$lang['admin']['main_name'];?>:</label>
-              <input type="text" class="form-control" name="main_name" placeholder="mailcow UI" value="<?=$ui_texts['main_name'];?>">
+              <label for="uitests_main_name"><?=$lang['admin']['main_name'];?>:</label>
+              <input type="text" class="form-control" id="uitests_main_name" name="main_name" placeholder="mailcow UI" value="<?=$ui_texts['main_name'];?>">
             </div>
             <div class="form-group">
-              <label for="apps_name"><?=$lang['admin']['apps_name'];?>:</label>
-              <input type="text" class="form-control" name="apps_name" placeholder="mailcow Apps" value="<?=$ui_texts['apps_name'];?>">
+              <label for="uitests_apps_name"><?=$lang['admin']['apps_name'];?>:</label>
+              <input type="text" class="form-control" id="uitests_apps_name" name="apps_name" placeholder="<?=$lang['header']['apps']?>" value="<?=$ui_texts['apps_name'];?>">
             </div>
             <div class="form-group">
               <label for="help_text"><?=$lang['admin']['help_text'];?>:</label>
@@ -1188,7 +1228,7 @@
             <div class="form-group">
               <p class="help-block"><?=$lang['admin']['ui_header_announcement_help'];?></p>
               <label for="ui_announcement_type"><?=$lang['admin']['ui_header_announcement'];?>:</label>
-              <p><select multiple data-width="100%" name="ui_announcement_type" class="selectpicker show-tick" data-max-options="1" title="<?=$lang['admin']['ui_header_announcement_select'];?>">
+              <p><select multiple data-width="100%" id="ui_announcement_type" name="ui_announcement_type" class="selectpicker show-tick" data-max-options="1" title="<?=$lang['admin']['ui_header_announcement_select'];?>">
                 <option <?=($ui_texts['ui_announcement_type'] == 'info') ? 'selected' : null;?> value="info"><?=$lang['admin']['ui_header_announcement_type_info'];?></option>
                 <option <?=($ui_texts['ui_announcement_type'] == 'warning') ? 'selected' : null;?> value="warning"><?=$lang['admin']['ui_header_announcement_type_warning'];?></option>
                 <option <?=($ui_texts['ui_announcement_type'] == 'danger') ? 'selected' : null;?> value="danger"><?=$lang['admin']['ui_header_announcement_type_danger'];?></option>
@@ -1205,28 +1245,71 @@
               <label for="ui_footer"><?=$lang['admin']['ui_footer'];?>:</label>
               <textarea class="form-control" id="ui_footer" name="ui_footer" rows="7"><?=$ui_texts['ui_footer'];?></textarea>
             </div>
-            <button class="btn btn-sm btn-success" data-action="edit_selected" data-item="ui" data-id="uitexts" data-api-url='edit/ui_texts' data-api-attr='{}' href="#"><span class="glyphicon glyphicon-check"></span> <?=$lang['admin']['save'];?></button>
+            <button class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-item="ui" data-id="uitexts" data-api-url='edit/ui_texts' data-api-attr='{}' href="#"><i class="bi bi-check-lg"></i> <?=$lang['admin']['save'];?></button>
           </form>
         </div>
       </div>
     </div>
   </div>
 
+  <div role="tabpanel" class="tab-pane" id="tab-config-password-policy">
+    <div class="panel panel-default">
+      <div class="panel-heading"><?=$lang['admin']['password_policy'];?></div>
+      <div class="panel-body">
+        <?php $password_complexity = password_complexity('get'); ?>
+        <form class="form-horizontal" data-id="passwordpolicy" role="form" method="post">
+          <?php
+          foreach ($password_complexity as $name => $value) {
+          if ($name == 'length') {
+          ?>
+          <div class="form-group">
+            <label class="control-label col-sm-3" for="<?=$name;?>"><?=$lang['admin']['password_length'];?>:</label>
+            <div class="col-sm-2">
+              <input type="number" class="form-control" min="3" max="64" name="<?=$name;?>" id="<?=$name;?>" value="<?=$value;?>" required>
+            </div>
+          </div>
+          <?php
+          } else {
+          ?>
+          <input type="hidden" name="<?=$name;?>" value="0">
+          <div class="form-group">
+            <div class="col-sm-offset-3 col-sm-9">
+              <label>
+                <input type="checkbox" name="<?=$name;?>" id="<?=$name;?>" value="1" <?=($value == 1) ? 'checked' : null;?>> <?=$lang['admin']["password_policy_$name"];?>
+              </label>
+            </div>
+          </div>
+          <?php
+          }
+          }
+          ?>
+          <div class="form-group">
+            <div class="col-sm-offset-3 col-sm-9">
+              <div class="btn-group">
+                <button class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-item="passwordpolicy" data-action="edit_selected" data-id="passwordpolicy" data-api-url='edit/passwordpolicy' data-api-attr='{}' href="#"><i class="bi bi-check-lg"></i> <?=$lang['admin']['save'];?></button>
+              </div>
+            </div>
+          </div>
+        </form>
+      </div>
+    </div>
+  </div>
+
   <div role="tabpanel" class="tab-pane" id="tab-sys-mails">
     <div class="panel panel-default">
       <div class="panel-heading"><?=$lang['admin']['sys_mails'];?></div>
       <div class="panel-body">
         <form class="form-horizontal" autocapitalize="none" data-id="admin" autocorrect="off" role="form" method="post">
           <div class="form-group">
-            <label class="control-label col-sm-2" for="mass_from"><?=$lang['admin']['from'];?>:</label>
+            <label class="control-label col-sm-2" for="admin_mass_from"><?=$lang['admin']['from'];?>:</label>
             <div class="col-sm-10">
-              <input type="email" class="form-control" name="mass_from" value="noreply@<?=getenv('MAILCOW_HOSTNAME');;?>" required>
+              <input type="email" class="form-control" id="admin_mass_from" name="mass_from" value="noreply@<?=getenv('MAILCOW_HOSTNAME');;?>" required>
             </div>
           </div>
           <div class="form-group">
-            <label class="control-label col-sm-2" for="mass_subject"><?=$lang['admin']['subject'];?>:</label>
+            <label class="control-label col-sm-2" for="admin_mass_subject"><?=$lang['admin']['subject'];?>:</label>
             <div class="col-sm-10">
-              <input type="text" class="form-control" name="mass_subject" required>
+              <input type="text" class="form-control" id="admin_mass_subject" name="mass_subject" required>
             </div>
           </div>
           <?php
@@ -1282,7 +1365,7 @@
             <label class="control-label col-sm-2" for="mass_html"><?=$lang['admin']['html'];?> (<?=$lang['admin']['optional'];?>):</label>
             <div class="col-sm-10">
               <textarea class="form-control" rows="10" name="mass_html" id="mass_html"></textarea>
-              <p class="small">↪ <a target="_blank" href="https://templates.mailchimp.com/resources/html-to-text/"><?=$lang['admin']['convert_html_to_text'];?></a></p>
+              <p class="small"><i class="bi bi-arrow-return-right"></i> <a target="_blank" href="https://templates.mailchimp.com/resources/html-to-text/"><?=$lang['admin']['convert_html_to_text'];?></a></p>
             </div>
           </div>
           <div class="form-group">
@@ -1294,7 +1377,7 @@
           </div>
           <div class="form-group">
             <div class="col-sm-offset-2 col-sm-10">
-              <button class="btn btn-default" type="submit" id="mass_send" name="mass_send" disabled><span class="glyphicon glyphicon-envelope"></span> <?=$lang['admin']['send'];?></button>
+              <button class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" type="submit" id="mass_send" name="mass_send" disabled><i class="bi bi-envelope-fill"></i> <?=$lang['admin']['send'];?></button>
             </div>
           </div>
         </form>
@@ -1316,30 +1399,31 @@
       </div>
       <div class="mass-actions-admin">
         <div class="btn-group">
-          <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="mailqitems" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
-          <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
-          <ul class="dropdown-menu">
+          <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="toggle_multi_select_all" data-id="mailqitems" href="#"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></a>
+          <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
+          <ul class="dropdown-menu top33">
             <li><a data-toggle="tooltip" title="postqueue -i" data-action="edit_selected" data-id="mailqitems" data-api-url='edit/mailq' data-api-attr='{"action":"deliver"}' href="#"><?=$lang['admin']['queue_deliver_mail'];?></a></li>
             <li><a data-toggle="tooltip" title="postsuper -H" data-action="edit_selected" data-id="mailqitems" data-api-url='edit/mailq' data-api-attr='{"action":"unhold"}' href="#"><?=$lang['admin']['queue_unhold_mail'];?></a></li>
             <li><a data-toggle="tooltip" title="postsuper -h" data-action="edit_selected" data-id="mailqitems" data-api-url='edit/mailq' data-api-attr='{"action":"hold"}' href="#"><?=$lang['admin']['queue_hold_mail'];?></a></li>
             <li role="separator" class="divider"></li>
             <li><a data-toggle="tooltip" title="postsuper -d" data-action="delete_selected" data-id="mailqitems" data-api-url='delete/mailq' href="#"><?=$lang['mailbox']['remove'];?></a></li>
           </ul>
-          <a class="btn btn-sm btn-primary"
+          <div class="clearfix visible-xs"></div>
+          <a class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-primary"
             data-action="edit_selected"
             data-item="mailqitems-all"
             data-api-url='edit/mailq'
             data-api-attr='{"action":"flush"}'
             data-toggle="tooltip" title="postqueue -f"
-            href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['admin']['flush_queue'];?></a>
-          <a class="btn btn-sm btn-danger"
+            href="#"><i class="bi bi-check-all"></i> <?=$lang['admin']['flush_queue'];?></a>
+          <a class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-danger"
             id="super_delete"
             data-action="edit_selected"
             data-item="mailqitems-all"
             data-api-url='edit/mailq'
             data-api-attr='{"action":"super_delete"}'
             data-toggle="tooltip" title="postsuper -d ALL"
-            href="#"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span> <?=$lang['admin']['delete_queue'];?></a>
+            href="#"><i class="bi bi-trash"></i> <?=$lang['admin']['delete_queue'];?></a>
         </div>
       </div>
       </div>
@@ -1353,7 +1437,7 @@
       </div>
       <div class="panel-body">
         <p><?=$lang['admin']['rspamd_global_filters_info'];?></p>
-        <div id="confirm_show_rspamd_global_filters" class="<?=($_SESSION['show_rspamd_global_filters'] === true) ? 'hidden' : '';?>">
+        <div id="confirm_show_rspamd_global_filters" class="<?=(!isset($_SESSION['show_rspamd_global_filters']) || $_SESSION['show_rspamd_global_filters'] !== true) ? '' : 'hidden';?>">
           <div class="form-group">
             <div class="col-sm-offset-2 col-sm-10">
               <label>
@@ -1362,7 +1446,7 @@
             </div>
           </div>
         </div>
-        <div id="rspamd_global_filters" class="<?=($_SESSION['show_rspamd_global_filters'] !== true) ? 'hidden' : '';?>">
+        <div id="rspamd_global_filters" class="<?=(isset($_SESSION['show_rspamd_global_filters']) && $_SESSION['show_rspamd_global_filters'] === true) ? '' : 'hidden';?>">
         <hr>
         <span class="anchor" id="regexmaps"></span>
         <h4><?=$lang['admin']['regex_maps'];?></h4>
@@ -1381,7 +1465,7 @@
         ?>
         <hr>
         <span class="anchor" id="<?=$rspamd_regex_map;?>"></span>
-        <form class="form-horizontal" data-id="<?=$rspamd_regex_map;?>" role="form" method="post">
+        <form class="form-horizontal" data-cached-form="false" data-id="<?=$rspamd_regex_map;?>" role="form" method="post">
           <div class="form-group">
             <label class="control-label col-sm-3" for="<?=$rspamd_regex_map;?>"><?=$rspamd_regex_desc;?><br><small><?=$rspamd_regex_map;?></small></label>
             <div class="col-sm-9">
@@ -1390,8 +1474,8 @@
           </div>
           <div class="form-group">
             <div class="col-sm-offset-3 col-sm-9">
-              <button class="btn btn-xs btn-default validate_rspamd_regex" data-regex-map="<?=$rspamd_regex_map;?>" href="#"><?=$lang['add']['validate'];?></button>
-              <button class="btn btn-xs btn-success submit_rspamd_regex" data-action="edit_selected" data-id="<?=$rspamd_regex_map;?>" data-item="<?=htmlspecialchars($rspamd_regex_map);?>" data-api-url='edit/rspamd-map' data-api-attr='{}' href="#" disabled><?=$lang['edit']['save'];?></button>
+              <button class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default validate_rspamd_regex" data-regex-map="<?=$rspamd_regex_map;?>" href="#"><?=$lang['add']['validate'];?></button>
+              <button class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success submit_rspamd_regex" data-action="edit_selected" data-id="<?=$rspamd_regex_map;?>" data-item="<?=htmlspecialchars($rspamd_regex_map);?>" data-api-url='edit/rspamd-map' data-api-attr='{}' href="#" disabled><?=$lang['edit']['save'];?></button>
             </div>
           </div>
         </form>
@@ -1426,7 +1510,7 @@
 $js_minifier->add('/web/js/site/pwgen.js');
 require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/footer.inc.php';
 } else {
-	header('Location: /');
-	exit();
+  header('Location: /');
+  exit();
 }
 ?>
diff --git a/mailcow/src/mailcow-dockerized/data/web/api/openapi.yaml b/mailcow/src/mailcow-dockerized/data/web/api/openapi.yaml
index a14c47d..e1ef65b 100644
--- a/mailcow/src/mailcow-dockerized/data/web/api/openapi.yaml
+++ b/mailcow/src/mailcow-dockerized/data/web/api/openapi.yaml
@@ -126,6 +126,9 @@
                 goto_spam:
                   description: learn as spam
                   type: boolean
+                sogo_visible:
+                  description: toggle visibility as selectable sender in SOGo
+                  type: boolean
               type: object
       summary: Create alias
   /api/v1/add/app-passwd:
@@ -420,11 +423,11 @@
                         - domain
                         - active: "1"
                           aliases: "400"
+                          restart_sogo: "1"
                           backupmx: "0"
                           defquota: "3072"
                           description: some decsription
                           domain: domain.tld
-                          lang: cs
                           mailboxes: "10"
                           maxquota: "10240"
                           quota: "10240"
@@ -471,13 +474,13 @@
                 defquota: "3072"
                 description: some decsription
                 domain: domain.tld
-                lang: cs
                 mailboxes: "10"
                 maxquota: "10240"
                 quota: "10240"
                 relay_all_recipients: "0"
                 rl_frame: s
                 rl_value: "10"
+                restart_sogo: "10"
               properties:
                 active:
                   description: is domain active or not
@@ -497,23 +500,6 @@
                 domain:
                   description: Fully qualified domain name
                   type: string
-                lang:
-                  description: language code
-                  enum:
-                    - sk
-                    - cs
-                    - de
-                    - en
-                    - es
-                    - fr
-                    - lv
-                    - nl
-                    - pl
-                    - pt
-                    - ru
-                    - it
-                    - ca
-                  type: string
                 mailboxes:
                   description: limit count of mailboxes associated with this domain
                   type: number
@@ -523,6 +509,9 @@
                 quota:
                   description: maximum quota for this domain (for all mailboxes in sum)
                   type: number
+                restart_sogo:
+                  description: restart SOGo to activate the domain in SOGo
+                  type: number
                 relay_all_recipients:
                   description: >-
                     if not, them you have to create "dummy" mailbox for each
@@ -1018,7 +1007,7 @@
                 password2:
                   description: mailbox password for confirmation
                   type: string
-                pasword:
+                password:
                   description: mailbox password
                   type: string
                 quota:
@@ -2752,6 +2741,9 @@
                       type: string
                     public_comment:
                       type: string
+                    sogo_visible:
+                      description: toggle visibility as selectable sender in SOGo
+                      type: boolean
                   type: object
                 items:
                   description: contains list of aliases you want update
@@ -2805,7 +2797,6 @@
                   defquota: "3072"
                   description: domain description
                   gal: "1"
-                  lang: cs
                   mailboxes: "10"
                   maxquota: "10240"
                   quota: "10240"
@@ -2835,23 +2826,6 @@
                         is domain global address list active or not, it enables
                         shared contacts accross domain in SOGo webmail
                       type: boolean
-                    lang:
-                      description: language code
-                      enum:
-                        - sk
-                        - cs
-                        - de
-                        - en
-                        - es
-                        - fr
-                        - lv
-                        - nl
-                        - pl
-                        - pt
-                        - ru
-                        - it
-                        - ca
-                      type: string
                     mailboxes:
                       description: limit count of mailboxes associated with this domain
                       type: number
@@ -3029,7 +3003,8 @@
                     - domain3.tld
                     - "*"
                   sogo_access: "1"
-                items: info@domain.tld
+                items:
+                  - info@domain.tld
               properties:
                 attr:
                   properties:
@@ -3045,7 +3020,7 @@
                     password2:
                       description: new mailbox password for confirmation
                       type: string
-                    pasword:
+                    password:
                       description: new mailbox password
                       type: string
                     quota:
@@ -3743,7 +3718,6 @@
                       description: Some description
                       domain_name: domain.tld
                       gal: "0"
-                      lang: en
                       max_new_mailbox_quota: 10737418240
                       max_num_aliases_for_domain: 400
                       max_num_mboxes_for_domain: 10
@@ -3766,7 +3740,6 @@
                       description: domain description
                       domain_name: domain2.tld
                       gal: "0"
-                      lang: cs
                       max_new_mailbox_quota: 10737418240
                       max_num_aliases_for_domain: 400
                       max_num_mboxes_for_domain: 10
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/build/001-bootstrap.min.css b/mailcow/src/mailcow-dockerized/data/web/css/build/001-bootstrap.min.css
index 769bf30..232dfb9 100644
--- a/mailcow/src/mailcow-dockerized/data/web/css/build/001-bootstrap.min.css
+++ b/mailcow/src/mailcow-dockerized/data/web/css/build/001-bootstrap.min.css
@@ -8,4 +8,4 @@
  * Bootstrap v3.4.1 (https://getbootstrap.com/)
  * Copyright 2011-2019 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{color:#000 !important;text-shadow:none !important;background:transparent !important;box-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:"Glyphicons Halflings";src:url("/fonts/glyphicons-halflings-regular.eot");src:url("/fonts/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"),url("/fonts/glyphicons-halflings-regular.woff2") format("woff2"),url("/fonts/glyphicons-halflings-regular.woff") format("woff"),url("/fonts/glyphicons-halflings-regular.ttf") format("truetype"),url("/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular") format("svg")}.glyphicon{position:relative;top:1px;display:inline-block;font-family:"Glyphicons Halflings";font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{box-sizing:border-box}*:before,*:after{box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#555555;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#158cba;text-decoration:none}a:hover,a:focus{color:#158cba;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:5px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#ffffff;border:1px solid #eeeeee;border-radius:4px;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eeeeee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:400;line-height:1.1;color:#333333}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#999999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{padding:.2em;background-color:#ff851b}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#999999}.text-primary{color:#158cba}a.text-primary:hover,a.text-primary:focus{color:#106a8c}.text-success{color:#ffffff}a.text-success:hover,a.text-success:focus{color:#e6e6e6}.text-info{color:#ffffff}a.text-info:hover,a.text-info:focus{color:#e6e6e6}.text-warning{color:#ffffff}a.text-warning:hover,a.text-warning:focus{color:#e6e6e6}.text-danger{color:#ffffff}a.text-danger:hover,a.text-danger:focus{color:#e6e6e6}.bg-primary{color:#fff;background-color:#158cba}a.bg-primary:hover,a.bg-primary:focus{background-color:#106a8c}.bg-success{background-color:#28b62c}a.bg-success:hover,a.bg-success:focus{background-color:#1f8c22}.bg-info{background-color:#75caeb}a.bg-info:hover,a.bg-info:focus{background-color:#48b9e5}.bg-warning{background-color:#ff851b}a.bg-warning:hover,a.bg-warning:focus{background-color:#e76b00}.bg-danger{background-color:#ff4136}a.bg-danger:hover,a.bg-danger:focus{background-color:#ff1103}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eeeeee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eeeeee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:"\2014 \00A0"}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eeeeee;border-left:0}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:""}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:"\00A0 \2014"}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:2px;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.row-no-gutters{margin-right:0;margin-left:0}.row-no-gutters [class*="col-"]{padding-right:0;padding-left:0}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}table col[class*="col-"]{position:static;display:table-column;float:none}table td[class*="col-"],table th[class*="col-"]{position:static;display:table-cell;float:none}caption{padding-top:8px;padding-bottom:8px;color:#999999;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #eeeeee}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #eeeeee}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #eeeeee}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #eeeeee}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #eeeeee}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#28b62c}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#23a127}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#75caeb}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#5fc1e8}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#ff851b}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#ff7701}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#ff4136}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ff291c}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #eeeeee}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type="search"]{box-sizing:border-box;-webkit-appearance:none;appearance:none}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:8px;font-size:14px;line-height:1.42857143;color:#555555}.form-control{display:block;width:100%;height:38px;padding:7px 12px;font-size:14px;line-height:1.42857143;color:#555555;background-color:#ffffff;background-image:none;border:1px solid #e7e7e7;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#999999;opacity:1}.form-control:-ms-input-placeholder{color:#999999}.form-control::-webkit-input-placeholder{color:#999999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eeeeee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:38px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:28px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:52px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-top:4px \9;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}.form-control-static{min-height:34px;padding-top:8px;padding-bottom:8px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:28px;padding:4px 10px;font-size:12px;line-height:1.5;border-radius:2px}select.input-sm{height:28px;line-height:28px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:28px;padding:4px 10px;font-size:12px;line-height:1.5;border-radius:2px}.form-group-sm select.form-control{height:28px;line-height:28px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:28px;min-height:32px;padding:5px 10px;font-size:12px;line-height:1.5}.input-lg{height:52px;padding:13px 16px;font-size:18px;line-height:1.3333333;border-radius:5px}select.input-lg{height:52px;line-height:52px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:52px;padding:13px 16px;font-size:18px;line-height:1.3333333;border-radius:5px}.form-group-lg select.form-control{height:52px;line-height:52px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:52px;min-height:38px;padding:14px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:47.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:38px;height:38px;line-height:38px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:52px;height:52px;line-height:52px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:28px;height:28px;line-height:28px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#ffffff}.has-success .form-control{border-color:#ffffff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#e6e6e6;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-success .input-group-addon{color:#ffffff;background-color:#28b62c;border-color:#ffffff}.has-success .form-control-feedback{color:#ffffff}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#ffffff}.has-warning .form-control{border-color:#ffffff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#e6e6e6;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-warning .input-group-addon{color:#ffffff;background-color:#ff851b;border-color:#ffffff}.has-warning .form-control-feedback{color:#ffffff}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#ffffff}.has-error .form-control{border-color:#ffffff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#e6e6e6;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-error .input-group-addon{color:#ffffff;background-color:#ff4136;border-color:#ffffff}.has-error .form-control-feedback{color:#ffffff}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#959595}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:8px;margin-top:0;margin-bottom:0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:28px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:8px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:5px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;padding:7px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#555555;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);opacity:0.65;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#555555;background-color:#eeeeee;border-color:#e2e2e2}.btn-default:focus,.btn-default.focus{color:#555555;background-color:#d5d5d5;border-color:#a2a2a2}.btn-default:hover{color:#555555;background-color:#d5d5d5;border-color:#c3c3c3}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#555555;background-color:#d5d5d5;background-image:none;border-color:#c3c3c3}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#555555;background-color:#c3c3c3;border-color:#a2a2a2}.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus{background-color:#eeeeee;border-color:#e2e2e2}.btn-default .badge{color:#eeeeee;background-color:#555555}.btn-primary{color:#ffffff;background-color:#158cba;border-color:#127ba3}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#106a8c;border-color:#052531}.btn-primary:hover{color:#ffffff;background-color:#106a8c;border-color:#0c516c}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#106a8c;background-image:none;border-color:#0c516c}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#0c516c;border-color:#052531}.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus{background-color:#158cba;border-color:#127ba3}.btn-primary .badge{color:#158cba;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#28b62c;border-color:#23a127}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#1f8c22;border-color:#0c390e}.btn-success:hover{color:#ffffff;background-color:#1f8c22;border-color:#186f1b}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#1f8c22;background-image:none;border-color:#186f1b}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#186f1b;border-color:#0c390e}.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus{background-color:#28b62c;border-color:#23a127}.btn-success .badge{color:#28b62c;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#75caeb;border-color:#5fc1e8}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#48b9e5;border-color:#1984ae}.btn-info:hover{color:#ffffff;background-color:#48b9e5;border-color:#29ade0}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#48b9e5;background-image:none;border-color:#29ade0}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#29ade0;border-color:#1984ae}.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus{background-color:#75caeb;border-color:#5fc1e8}.btn-info .badge{color:#75caeb;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#ff851b;border-color:#ff7701}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#e76b00;border-color:#813c00}.btn-warning:hover{color:#ffffff;background-color:#e76b00;border-color:#c35b00}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#e76b00;background-image:none;border-color:#c35b00}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#c35b00;border-color:#813c00}.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus{background-color:#ff851b;border-color:#ff7701}.btn-warning .badge{color:#ff851b;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#ff4136;border-color:#ff291c}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#ff1103;border-color:#9c0900}.btn-danger:hover{color:#ffffff;background-color:#ff1103;border-color:#de0c00}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#ff1103;background-image:none;border-color:#de0c00}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#de0c00;border-color:#9c0900}.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus{background-color:#ff4136;border-color:#ff291c}.btn-danger .badge{color:#ff4136;background-color:#ffffff}.btn-link{font-weight:400;color:#158cba;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#158cba;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:13px 16px;font-size:18px;line-height:1.3333333;border-radius:5px}.btn-sm,.btn-group-sm>.btn{padding:4px 10px;font-size:12px;line-height:1.5;border-radius:2px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:2px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;transition-property:height, visibility;transition-duration:0.35s;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#ffffff;background-clip:padding-box;border:1px solid #cccccc;border:1px solid #e7e7e7;border-radius:4px;box-shadow:0 6px 12px rgba(0,0,0,0.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#eeeeee}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#999999;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#333333;text-decoration:none;background-color:transparent}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;background-color:#158cba;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#eeeeee}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999999;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:52px;padding:13px 16px;font-size:18px;line-height:1.3333333;border-radius:5px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:52px;line-height:52px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:28px;padding:4px 10px;font-size:12px;line-height:1.5;border-radius:2px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:28px;line-height:28px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:7px 12px;font-size:14px;font-weight:400;line-height:1;color:#555555;text-align:center;background-color:#eeeeee;border:1px solid #e7e7e7;border-radius:4px}.input-group-addon.input-sm{padding:4px 10px;font-size:12px;border-radius:2px}.input-group-addon.input-lg{padding:13px 16px;font-size:18px;border-radius:5px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#ffffff}.nav>li.disabled>a{color:#999999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999999;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#ffffff;border-color:#158cba}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #e7e7e7}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #e7e7e7}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555555;cursor:default;background-color:#ffffff;border:1px solid #e7e7e7;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #e7e7e7}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #e7e7e7;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#158cba}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #e7e7e7}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #e7e7e7;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-right:15px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-right:-15px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:6px;margin-bottom:6px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:6px;margin-bottom:6px}.navbar-btn.btn-sm{margin-top:11px;margin-bottom:11px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#333333}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#333333;background-color:transparent}.navbar-default .navbar-text{color:#555555}.navbar-default .navbar-nav>li>a{color:#999999}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#333333;background-color:transparent}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#eeeeee;background-color:transparent}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#333333;background-color:transparent}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#999999}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#333333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#eeeeee;background-color:transparent}}.navbar-default .navbar-toggle{border-color:#eeeeee}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ffffff}.navbar-default .navbar-toggle .icon-bar{background-color:#999999}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-link{color:#999999}.navbar-default .navbar-link:hover{color:#333333}.navbar-default .btn-link{color:#999999}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#eeeeee}.navbar-inverse{background-color:#ffffff;border-color:#e6e6e6}.navbar-inverse .navbar-brand{color:#999999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-text{color:#999999}.navbar-inverse .navbar-nav>li>a{color:#999999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#eeeeee;background-color:transparent}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#333333;background-color:transparent}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#e6e6e6}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#e6e6e6}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#eeeeee;background-color:transparent}}.navbar-inverse .navbar-toggle{border-color:#eeeeee}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#eeeeee}.navbar-inverse .navbar-toggle .icon-bar{background-color:#999999}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#ededed}.navbar-inverse .navbar-link{color:#999999}.navbar-inverse .navbar-link:hover{color:#333333}.navbar-inverse .btn-link{color:#999999}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#333333}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#eeeeee}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#fafafa;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#999999;content:">\00a0"}.breadcrumb>.active{color:#999999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:7px 12px;margin-left:-1px;line-height:1.42857143;color:#555555;text-decoration:none;background-color:#eeeeee;border:1px solid #e2e2e2}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:2;color:#555555;background-color:#eeeeee;border-color:#e2e2e2}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:3;color:#ffffff;cursor:default;background-color:#158cba;border-color:#127ba3}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999999;cursor:not-allowed;background-color:#eeeeee;border-color:#e2e2e2}.pagination-lg>li>a,.pagination-lg>li>span{padding:13px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:5px;border-bottom-left-radius:5px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:5px;border-bottom-right-radius:5px}.pagination-sm>li>a,.pagination-sm>li>span{padding:4px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:2px;border-bottom-left-radius:2px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:2px;border-bottom-right-radius:2px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#eeeeee;border:1px solid #e2e2e2;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eeeeee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;cursor:not-allowed;background-color:#eeeeee}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#158cba}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#106a8c}.label-success{background-color:#28b62c}.label-success[href]:hover,.label-success[href]:focus{background-color:#1f8c22}.label-info{background-color:#75caeb}.label-info[href]:hover,.label-info[href]:focus{background-color:#48b9e5}.label-warning{background-color:#ff851b}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#e76b00}.label-danger{background-color:#ff4136}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#ff1103}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:normal;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#158cba;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#158cba;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#fafafa}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#e1e1e1}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:5px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#ffffff;border:1px solid #eeeeee;border-radius:4px;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#158cba}.thumbnail .caption{padding:9px;color:#555555}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#ffffff;background-color:#28b62c;border-color:#24a528}.alert-success hr{border-top-color:#209023}.alert-success .alert-link{color:#e6e6e6}.alert-info{color:#ffffff;background-color:#75caeb;border-color:#40b5e3}.alert-info hr{border-top-color:#29ade0}.alert-info .alert-link{color:#e6e6e6}.alert-warning{color:#ffffff;background-color:#ff851b;border-color:#ff7701}.alert-warning hr{border-top-color:#e76b00}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{color:#ffffff;background-color:#ff4136;border-color:#ff1103}.alert-danger hr{border-top-color:#e90d00}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#fafafa;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#ffffff;text-align:center;background-color:#158cba;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#28b62c}.progress-striped .progress-bar-success{background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#75caeb}.progress-striped .progress-bar-info{background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#ff851b}.progress-striped .progress-bar-warning{background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#ff4136}.progress-striped .progress-bar-danger{background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #eeeeee}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{color:#999999;cursor:not-allowed;background-color:#eeeeee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#999999}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#158cba;border-color:#158cba}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#a6dff5}a.list-group-item,button.list-group-item{color:#555555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{color:#555555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item-success{color:#ffffff;background-color:#28b62c}a.list-group-item-success,button.list-group-item-success{color:#ffffff}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#ffffff;background-color:#23a127}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-info{color:#ffffff;background-color:#75caeb}a.list-group-item-info,button.list-group-item-info{color:#ffffff}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#ffffff;background-color:#5fc1e8}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-warning{color:#ffffff;background-color:#ff851b}a.list-group-item-warning,button.list-group-item-warning{color:#ffffff}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#ffffff;background-color:#ff7701}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-danger{color:#ffffff;background-color:#ff4136}a.list-group-item-danger,button.list-group-item-danger{color:#ffffff}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#ffffff;background-color:#ff291c}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid transparent;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-right:15px;padding-left:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #eeeeee}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid transparent}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid transparent}.panel-default{border-color:transparent}.panel-default>.panel-heading{color:#333333;background-color:#f5f5f5;border-color:transparent}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-primary{border-color:transparent}.panel-primary>.panel-heading{color:#ffffff;background-color:#158cba;border-color:transparent}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-primary>.panel-heading .badge{color:#158cba;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-success{border-color:transparent}.panel-success>.panel-heading{color:#ffffff;background-color:#28b62c;border-color:transparent}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-success>.panel-heading .badge{color:#28b62c;background-color:#ffffff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-info{border-color:transparent}.panel-info>.panel-heading{color:#ffffff;background-color:#75caeb;border-color:transparent}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-info>.panel-heading .badge{color:#75caeb;background-color:#ffffff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-warning{border-color:transparent}.panel-warning>.panel-heading{color:#ffffff;background-color:#ff851b;border-color:transparent}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-warning>.panel-heading .badge{color:#ff851b;background-color:#ffffff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-danger{border-color:transparent}.panel-danger>.panel-heading{color:#ffffff;background-color:#ff4136;border-color:transparent}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-danger>.panel-heading .badge{color:#ff4136;background-color:#ffffff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#fafafa;border:1px solid #e8e8e8;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:5px}.well-sm{padding:9px;border-radius:2px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#ffffff;text-shadow:0 1px 0 #ffffff;filter:alpha(opacity=20);opacity:0.2}.close:hover,.close:focus{color:#ffffff;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:0.5}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);transform:translate(0, -25%);transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;background-clip:padding-box;border:1px solid #eeeeee;border:1px solid rgba(0,0,0,0.05);border-radius:5px;box-shadow:0 3px 9px rgba(0,0,0,0.5);outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:0.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.42857143;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;font-size:12px;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:0.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.42857143;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;font-size:14px;background-color:#ffffff;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.2);border-radius:5px;box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover>.arrow{border-width:11px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#ffffff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#ffffff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0,0,0,0.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#ffffff}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:4px 4px 0 0}.popover-content{padding:9px 14px}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:0.5}.carousel-control.left{background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:hover,.carousel-control:focus{color:#ffffff;text-decoration:none;outline:0;filter:alpha(opacity=90);opacity:0.9}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:"\2039"}.carousel-control .icon-next:before{content:"\203a"}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #ffffff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#ffffff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-header:before,.modal-header:after,.modal-footer:before,.modal-footer:after{display:table;content:" "}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-header:after,.modal-footer:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{border-width:0 1px 4px 1px}.btn{padding:9px 12px 7px;border-width:0 1px 4px 1px;font-size:12px;font-weight:bold;text-transform:uppercase}.btn:hover{margin-top:1px;border-bottom-width:3px}.btn:active{margin-top:2px;border-bottom-width:2px;box-shadow:none}.btn-lg,.btn-group-lg>.btn{padding:15px 16px 13px;line-height:15px}.btn-sm,.btn-group-sm>.btn{padding:6px 10px 4px}.btn-xs,.btn-group-xs>.btn{padding:3px 5px 1px}.btn-default:hover,.btn-default:focus,.btn-group.open .dropdown-toggle.btn-default{background-color:#eeeeee;border-color:#e2e2e2}.btn-primary:hover,.btn-primary:focus,.btn-group.open .dropdown-toggle.btn-primary{background-color:#158cba;border-color:#127ba3}.btn-success:hover,.btn-success:focus,.btn-group.open .dropdown-toggle.btn-success{background-color:#28b62c;border-color:#23a127}.btn-info:hover,.btn-info:focus,.btn-group.open .dropdown-toggle.btn-info{background-color:#75caeb;border-color:#5fc1e8}.btn-warning:hover,.btn-warning:focus,.btn-group.open .dropdown-toggle.btn-warning{background-color:#ff851b;border-color:#ff7701}.btn-danger:hover,.btn-danger:focus,.btn-group.open .dropdown-toggle.btn-danger{background-color:#ff4136;border-color:#ff291c}.btn-group.open .dropdown-toggle{box-shadow:none}.navbar-btn:hover{margin-top:8px}.navbar-btn:active{margin-top:9px}.navbar-btn.btn-sm:hover{margin-top:11px}.navbar-btn.btn-sm:active{margin-top:12px}.navbar-btn.btn-xs:hover{margin-top:15px}.navbar-btn.btn-xs:active{margin-top:16px}.btn-group-vertical .btn+.btn:hover{border-top-width:1px}.btn-group-vertical .btn+.btn:active{border-top-width:2px}.text-primary,.text-primary:hover{color:#158cba}.text-success,.text-success:hover{color:#28b62c}.text-danger,.text-danger:hover{color:#ff4136}.text-warning,.text-warning:hover{color:#ff851b}.text-info,.text-info:hover{color:#75caeb}table a:not(.btn),.table a:not(.btn){text-decoration:underline}table .dropdown-menu a,.table .dropdown-menu a{text-decoration:none}table .success,.table .success,table .warning,.table .warning,table .danger,.table .danger,table .info,.table .info{color:#fff}table .success a:not(.btn),.table .success a:not(.btn),table .warning a:not(.btn),.table .warning a:not(.btn),table .danger a:not(.btn),.table .danger a:not(.btn),table .info a:not(.btn),.table .info a:not(.btn){color:#fff}table:not(.table-bordered)>thead>tr>th,.table:not(.table-bordered)>thead>tr>th,table:not(.table-bordered)>tbody>tr>th,.table:not(.table-bordered)>tbody>tr>th,table:not(.table-bordered)>tfoot>tr>th,.table:not(.table-bordered)>tfoot>tr>th,table:not(.table-bordered)>thead>tr>td,.table:not(.table-bordered)>thead>tr>td,table:not(.table-bordered)>tbody>tr>td,.table:not(.table-bordered)>tbody>tr>td,table:not(.table-bordered)>tfoot>tr>td,.table:not(.table-bordered)>tfoot>tr>td{border-color:transparent}.form-control{box-shadow:inset 0 2px 0 rgba(0,0,0,0.075)}label{font-weight:normal}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label,.has-warning .form-control-feedback{color:#ff851b}.has-warning .form-control,.has-warning .form-control:focus{border:1px solid #ff851b;box-shadow:inset 0 2px 0 rgba(0,0,0,0.075)}.has-warning .input-group-addon{border:1px solid #ff851b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label,.has-error .form-control-feedback{color:#ff4136}.has-error .form-control,.has-error .form-control:focus{border:1px solid #ff4136;box-shadow:inset 0 2px 0 rgba(0,0,0,0.075)}.has-error .input-group-addon{border:1px solid #ff4136}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label,.has-success .form-control-feedback{color:#28b62c}.has-success .form-control,.has-success .form-control:focus{border:1px solid #28b62c;box-shadow:inset 0 2px 0 rgba(0,0,0,0.075)}.has-success .input-group-addon{border:1px solid #28b62c}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{border-color:transparent}.nav-tabs>li>a{margin-top:6px;border-color:#e7e7e7;color:#333333;transition:all .2s ease-in-out}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus,.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus,.nav-tabs .open>a,.nav-tabs .open>a:hover,.nav-tabs .open>a:focus{padding-bottom:16px;margin-top:0}.nav-tabs .open>a,.nav-tabs .open>a:hover,.nav-tabs .open>a:focus{border-color:#e7e7e7}.nav-tabs>li.disabled>a:hover,.nav-tabs>li.disabled>a:focus{padding-top:10px;padding-bottom:10px;margin-top:6px}.nav-tabs.nav-justified>li{vertical-align:bottom}.dropdown-menu{margin-top:0;border-width:0 1px 4px 1px;border-top-width:1px;box-shadow:none}.breadcrumb{border-color:#ededed;border-style:solid;border-width:0 1px 4px 1px}.pagination>li>a,.pager>li>a,.pagination>li>span,.pager>li>span{position:relative;top:0;border-width:0 1px 4px 1px;color:#555555;font-size:12px;font-weight:bold;text-transform:uppercase}.pagination>li>a:hover,.pager>li>a:hover,.pagination>li>span:hover,.pager>li>span:hover{top:1px;border-bottom-width:3px}.pagination>li>a:active,.pager>li>a:active,.pagination>li>span:active,.pager>li>span:active{top:2px;border-bottom-width:2px}.pagination>.disabled>a:hover,.pager>.disabled>a:hover,.pagination>.disabled>span:hover,.pager>.disabled>span:hover{top:0;border-width:0 1px 4px 1px}.pagination>.disabled>a:active,.pager>.disabled>a:active,.pagination>.disabled>span:active,.pager>.disabled>span:active{top:0;border-width:0 1px 4px 1px}.pager>li>a,.pager>li>span,.pager>.disabled>a,.pager>.disabled>span,.pager>li>a:hover,.pager>li>span:hover,.pager>.disabled>a:hover,.pager>.disabled>span:hover,.pager>li>a:active,.pager>li>span:active,.pager>.disabled>a:active,.pager>.disabled>span:active{border-left-width:2px;border-right-width:2px}.close{color:#fff;text-decoration:none;opacity:0.4}.close:hover,.close:focus{color:#fff;opacity:1}.alert{border-width:0 1px 4px 1px}.alert .alert-link{font-weight:normal;color:#fff;text-decoration:underline}.label{font-weight:normal}.progress{border:1px solid #e7e7e7;box-shadow:inset 0 2px 0 rgba(0,0,0,0.1)}.progress-bar{box-shadow:inset 0 -4px 0 rgba(0,0,0,0.15)}.well{border:1px solid #e7e7e7;box-shadow:inset 0 2px 0 rgba(0,0,0,0.05)}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{border-color:#eeeeee}a.list-group-item-success.active{background-color:#28b62c}a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{background-color:#23a127}a.list-group-item-warning.active{background-color:#ff851b}a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{background-color:#ff7701}a.list-group-item-danger.active{background-color:#ff4136}a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{background-color:#ff291c}.jumbotron{border:1px solid #e7e7e7;box-shadow:inset 0 2px 0 rgba(0,0,0,0.05)}.panel{border:1px solid #e7e7e7;border-width:0 1px 4px 1px}.panel-default .close{color:#555555}.modal .close{color:#555555}.popover{color:#555555}
\ No newline at end of file
+ *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}*{box-sizing:border-box}:after,:before{box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#158cba;text-decoration:none}a:focus,a:hover{color:#158cba;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:5px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #eee;border-radius:4px;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:400;line-height:1.1;color:#333}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#999}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#ff851b}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#999}.text-primary{color:#158cba}a.text-primary:focus,a.text-primary:hover{color:#106a8c}.text-success{color:#fff}a.text-success:focus,a.text-success:hover{color:#e6e6e6}.text-info{color:#fff}a.text-info:focus,a.text-info:hover{color:#e6e6e6}.text-warning{color:#fff}a.text-warning:focus,a.text-warning:hover{color:#e6e6e6}.text-danger{color:#fff}a.text-danger:focus,a.text-danger:hover{color:#e6e6e6}.bg-primary{color:#fff;background-color:#158cba}a.bg-primary:focus,a.bg-primary:hover{background-color:#106a8c}.bg-success{background-color:#28b62c}a.bg-success:focus,a.bg-success:hover{background-color:#1f8c22}.bg-info{background-color:#75caeb}a.bg-info:focus,a.bg-info:hover{background-color:#48b9e5}.bg-warning{background-color:#ff851b}a.bg-warning:focus,a.bg-warning:hover{background-color:#e76b00}.bg-danger{background-color:#ff4136}a.bg-danger:focus,a.bg-danger:hover{background-color:#ff1103}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#999}blockquote .small:before,blockquote footer:before,blockquote small:before{content:"\2014 \00A0"}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:""}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:"\00A0 \2014"}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:2px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.row-no-gutters{margin-right:0;margin-left:0}.row-no-gutters [class*=col-]{padding-right:0;padding-left:0}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}caption{padding-top:8px;padding-bottom:8px;color:#999;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #eee}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #eee}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #eee}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #eee}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #eee}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#28b62c}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#23a127}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#75caeb}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#5fc1e8}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#ff851b}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#ff7701}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#ff4136}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ff291c}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #eee}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{box-sizing:border-box;-webkit-appearance:none;appearance:none}input[type=checkbox],input[type=radio]{margin:4px 0 0;line-height:normal}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:8px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:38px;padding:7px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #e7e7e7;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:38px}.input-group-sm input[type=date],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm input[type=time],input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm,input[type=time].input-sm{line-height:28px}.input-group-lg input[type=date],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg input[type=time],input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg,input[type=time].input-lg{line-height:52px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.form-control-static{min-height:34px;padding-top:8px;padding-bottom:8px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:28px;padding:4px 10px;font-size:12px;line-height:1.5;border-radius:2px}select.input-sm{height:28px;line-height:28px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:28px;padding:4px 10px;font-size:12px;line-height:1.5;border-radius:2px}.form-group-sm select.form-control{height:28px;line-height:28px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:28px;min-height:32px;padding:5px 10px;font-size:12px;line-height:1.5}.input-lg{height:52px;padding:13px 16px;font-size:18px;line-height:1.3333333;border-radius:5px}select.input-lg{height:52px;line-height:52px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:52px;padding:13px 16px;font-size:18px;line-height:1.3333333;border-radius:5px}.form-group-lg select.form-control{height:52px;line-height:52px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:52px;min-height:38px;padding:14px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:47.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:38px;height:38px;line-height:38px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:52px;height:52px;line-height:52px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:28px;height:28px;line-height:28px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#fff}.has-success .form-control{border-color:#fff;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#e6e6e6;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #fff}.has-success .input-group-addon{color:#fff;background-color:#28b62c;border-color:#fff}.has-success .form-control-feedback{color:#fff}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#fff}.has-warning .form-control{border-color:#fff;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#e6e6e6;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #fff}.has-warning .input-group-addon{color:#fff;background-color:#ff851b;border-color:#fff}.has-warning .form-control-feedback{color:#fff}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#fff}.has-error .form-control{border-color:#fff;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#e6e6e6;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #fff}.has-error .input-group-addon{color:#fff;background-color:#ff4136;border-color:#fff}.has-error .form-control-feedback{color:#fff}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#959595}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:8px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:28px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:8px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:5px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;padding:7px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#555;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#555;background-color:#eee;border-color:#e2e2e2}.btn-default.focus,.btn-default:focus{color:#555;background-color:#d5d5d5;border-color:#a2a2a2}.btn-default:hover{color:#555;background-color:#d5d5d5;border-color:#c3c3c3}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#555;background-color:#d5d5d5;background-image:none;border-color:#c3c3c3}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#555;background-color:#c3c3c3;border-color:#a2a2a2}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#eee;border-color:#e2e2e2}.btn-default .badge{color:#eee;background-color:#555}.btn-primary{color:#fff;background-color:#158cba;border-color:#127ba3}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#106a8c;border-color:#052531}.btn-primary:hover{color:#fff;background-color:#106a8c;border-color:#0c516c}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#106a8c;background-image:none;border-color:#0c516c}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#0c516c;border-color:#052531}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#158cba;border-color:#127ba3}.btn-primary .badge{color:#158cba;background-color:#fff}.btn-success{color:#fff;background-color:#28b62c;border-color:#23a127}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#1f8c22;border-color:#0c390e}.btn-success:hover{color:#fff;background-color:#1f8c22;border-color:#186f1b}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#1f8c22;background-image:none;border-color:#186f1b}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#186f1b;border-color:#0c390e}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#28b62c;border-color:#23a127}.btn-success .badge{color:#28b62c;background-color:#fff}.btn-info{color:#fff;background-color:#75caeb;border-color:#5fc1e8}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#48b9e5;border-color:#1984ae}.btn-info:hover{color:#fff;background-color:#48b9e5;border-color:#29ade0}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#48b9e5;background-image:none;border-color:#29ade0}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#29ade0;border-color:#1984ae}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#75caeb;border-color:#5fc1e8}.btn-info .badge{color:#75caeb;background-color:#fff}.btn-warning{color:#fff;background-color:#ff851b;border-color:#ff7701}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#e76b00;border-color:#813c00}.btn-warning:hover{color:#fff;background-color:#e76b00;border-color:#c35b00}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#e76b00;background-image:none;border-color:#c35b00}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#c35b00;border-color:#813c00}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#ff851b;border-color:#ff7701}.btn-warning .badge{color:#ff851b;background-color:#fff}.btn-danger{color:#fff;background-color:#ff4136;border-color:#ff291c}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#ff1103;border-color:#9c0900}.btn-danger:hover{color:#fff;background-color:#ff1103;border-color:#de0c00}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#ff1103;background-image:none;border-color:#de0c00}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#de0c00;border-color:#9c0900}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#ff4136;border-color:#ff291c}.btn-danger .badge{color:#ff4136;background-color:#fff}.btn-link{font-weight:400;color:#158cba;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#158cba;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:13px 16px;font-size:18px;line-height:1.3333333;border-radius:5px}.btn-group-sm>.btn,.btn-sm{padding:4px 10px;font-size:12px;line-height:1.5;border-radius:2px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:2px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;transition-property:height,visibility;transition-duration:.35s;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid #e7e7e7;border-radius:4px;box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#eee}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#999;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#158cba;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#eee}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:52px;padding:13px 16px;font-size:18px;line-height:1.3333333;border-radius:5px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:52px;line-height:52px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:28px;padding:4px 10px;font-size:12px;line-height:1.5;border-radius:2px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:28px;line-height:28px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:7px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #e7e7e7;border-radius:4px}.input-group-addon.input-sm{padding:4px 10px;font-size:12px;border-radius:2px}.input-group-addon.input-lg{padding:13px 16px;font-size:18px;border-radius:5px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#fff}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#fff;border-color:#158cba}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #e7e7e7}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #e7e7e7}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #e7e7e7;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #e7e7e7}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #e7e7e7;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#158cba}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #e7e7e7}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #e7e7e7;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-right:15px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-right:-15px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:6px;margin-bottom:6px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:6px;margin-bottom:6px}.navbar-btn.btn-sm{margin-top:11px;margin-bottom:11px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#333}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#333;background-color:transparent}.navbar-default .navbar-text{color:#555}.navbar-default .navbar-nav>li>a{color:#999}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#eee;background-color:transparent}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#333;background-color:transparent}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#eee;background-color:transparent}}.navbar-default .navbar-toggle{border-color:#eee}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#fff}.navbar-default .navbar-toggle .icon-bar{background-color:#999}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-link{color:#999}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#999}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#eee}.navbar-inverse{background-color:#fff;border-color:#e6e6e6}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#333;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#333;background-color:transparent}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#eee;background-color:transparent}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#333;background-color:transparent}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#e6e6e6}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#e6e6e6}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#333;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#eee;background-color:transparent}}.navbar-inverse .navbar-toggle{border-color:#eee}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#eee}.navbar-inverse .navbar-toggle .icon-bar{background-color:#999}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#ededed}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#333}.navbar-inverse .btn-link{color:#999}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#333}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#eee}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#fafafa;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#999;content:">\00a0"}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:7px 12px;margin-left:-1px;line-height:1.42857143;color:#555;text-decoration:none;background-color:#eee;border:1px solid #e2e2e2}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#555;background-color:#eee;border-color:#e2e2e2}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#158cba;border-color:#127ba3}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#999;cursor:not-allowed;background-color:#eee;border-color:#e2e2e2}.pagination-lg>li>a,.pagination-lg>li>span{padding:13px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:5px;border-bottom-left-radius:5px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:5px;border-bottom-right-radius:5px}.pagination-sm>li>a,.pagination-sm>li>span{padding:4px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:2px;border-bottom-left-radius:2px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:2px;border-bottom-right-radius:2px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#eee;border:1px solid #e2e2e2;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#999;cursor:not-allowed;background-color:#eee}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:focus,.label-default[href]:hover{background-color:grey}.label-primary{background-color:#158cba}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#106a8c}.label-success{background-color:#28b62c}.label-success[href]:focus,.label-success[href]:hover{background-color:#1f8c22}.label-info{background-color:#75caeb}.label-info[href]:focus,.label-info[href]:hover{background-color:#48b9e5}.label-warning{background-color:#ff851b}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#e76b00}.label-danger{background-color:#ff4136}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#ff1103}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:400;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#158cba;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#158cba;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#fafafa}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#e1e1e1}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:5px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #eee;border-radius:4px;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#158cba}.thumbnail .caption{padding:9px;color:#555}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#fff;background-color:#28b62c;border-color:#24a528}.alert-success hr{border-top-color:#209023}.alert-success .alert-link{color:#e6e6e6}.alert-info{color:#fff;background-color:#75caeb;border-color:#40b5e3}.alert-info hr{border-top-color:#29ade0}.alert-info .alert-link{color:#e6e6e6}.alert-warning{color:#fff;background-color:#ff851b;border-color:#ff7701}.alert-warning hr{border-top-color:#e76b00}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{color:#fff;background-color:#ff4136;border-color:#ff1103}.alert-danger hr{border-top-color:#e90d00}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#fafafa;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#158cba;box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#28b62c}.progress-striped .progress-bar-success{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#75caeb}.progress-striped .progress-bar-info{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#ff851b}.progress-striped .progress-bar-warning{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#ff4136}.progress-striped .progress-bar-danger{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #eee}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#999;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#999}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#158cba;border-color:#158cba}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#a6dff5}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item-success{color:#fff;background-color:#28b62c}a.list-group-item-success,button.list-group-item-success{color:#fff}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#fff;background-color:#23a127}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#fff;border-color:#fff}.list-group-item-info{color:#fff;background-color:#75caeb}a.list-group-item-info,button.list-group-item-info{color:#fff}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#fff;background-color:#5fc1e8}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#fff;border-color:#fff}.list-group-item-warning{color:#fff;background-color:#ff851b}a.list-group-item-warning,button.list-group-item-warning{color:#fff}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#fff;background-color:#ff7701}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#fff;border-color:#fff}.list-group-item-danger{color:#fff;background-color:#ff4136}a.list-group-item-danger,button.list-group-item-danger{color:#fff}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#fff;background-color:#ff291c}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#fff;border-color:#fff}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid transparent;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #eee}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid transparent}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid transparent}.panel-default{border-color:transparent}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:transparent}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-primary{border-color:transparent}.panel-primary>.panel-heading{color:#fff;background-color:#158cba;border-color:transparent}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-primary>.panel-heading .badge{color:#158cba;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-success{border-color:transparent}.panel-success>.panel-heading{color:#fff;background-color:#28b62c;border-color:transparent}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-success>.panel-heading .badge{color:#28b62c;background-color:#fff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-info{border-color:transparent}.panel-info>.panel-heading{color:#fff;background-color:#75caeb;border-color:transparent}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-info>.panel-heading .badge{color:#75caeb;background-color:#fff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-warning{border-color:transparent}.panel-warning>.panel-heading{color:#fff;background-color:#ff851b;border-color:transparent}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-warning>.panel-heading .badge{color:#ff851b;background-color:#fff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-danger{border-color:transparent}.panel-danger>.panel-heading{color:#fff;background-color:#ff4136;border-color:transparent}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-danger>.panel-heading .badge{color:#ff4136;background-color:#fff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#fafafa;border:1px solid #e8e8e8;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:5px}.well-sm{padding:9px;border-radius:2px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#fff;text-shadow:0 1px 0 #fff;opacity:.2}.close:focus,.close:hover{color:#fff;text-decoration:none;cursor:pointer;opacity:.5}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none;appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);transform:translate(0,-25%);transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;background-clip:padding-box;border:1px solid #eee;border:1px solid rgba(0,0,0,.05);border-radius:5px;box-shadow:0 3px 9px rgba(0,0,0,.5);outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.in{opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.42857143;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;font-size:12px;opacity:0}.tooltip.in{opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.42857143;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;font-size:14px;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:5px;box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover>.arrow{border-width:11px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:4px 4px 0 0}.popover-content{padding:9px 14px}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}.navbar{border-width:0 1px 4px 1px}.btn{padding:9px 12px 7px;border-width:0 1px 4px 1px;font-size:12px;font-weight:700;text-transform:uppercase}.btn:hover{margin-top:1px;border-bottom-width:3px}.btn:active{margin-top:2px;border-bottom-width:2px;box-shadow:none}.btn-group-lg>.btn,.btn-lg{padding:15px 16px 13px;line-height:15px}.btn-group-sm>.btn,.btn-sm{padding:6px 10px 4px}.btn-group-xs>.btn,.btn-xs{padding:3px 5px 1px}.btn-default:focus,.btn-default:hover,.btn-group.open .dropdown-toggle.btn-default{background-color:#eee;border-color:#e2e2e2}.btn-group.open .dropdown-toggle.btn-primary,.btn-primary:focus,.btn-primary:hover{background-color:#158cba;border-color:#127ba3}.btn-group.open .dropdown-toggle.btn-success,.btn-success:focus,.btn-success:hover{background-color:#28b62c;border-color:#23a127}.btn-group.open .dropdown-toggle.btn-info,.btn-info:focus,.btn-info:hover{background-color:#75caeb;border-color:#5fc1e8}.btn-group.open .dropdown-toggle.btn-warning,.btn-warning:focus,.btn-warning:hover{background-color:#ff851b;border-color:#ff7701}.btn-danger:focus,.btn-danger:hover,.btn-group.open .dropdown-toggle.btn-danger{background-color:#ff4136;border-color:#ff291c}.btn-group.open .dropdown-toggle{box-shadow:none}.navbar-btn:hover{margin-top:8px}.navbar-btn:active{margin-top:9px}.navbar-btn.btn-sm:hover{margin-top:11px}.navbar-btn.btn-sm:active{margin-top:12px}.navbar-btn.btn-xs:hover{margin-top:15px}.navbar-btn.btn-xs:active{margin-top:16px}.btn-group-vertical .btn+.btn:hover{border-top-width:1px}.btn-group-vertical .btn+.btn:active{border-top-width:2px}.text-primary,.text-primary:hover{color:#158cba}.text-success,.text-success:hover{color:#28b62c}.text-danger,.text-danger:hover{color:#ff4136}.text-warning,.text-warning:hover{color:#ff851b}.text-info,.text-info:hover{color:#75caeb}.table a:not(.btn),table a:not(.btn){text-decoration:underline}.table .dropdown-menu a,table .dropdown-menu a{text-decoration:none}.table .danger,.table .info,.table .success,.table .warning,table .danger,table .info,table .success,table .warning{color:#fff}.table .danger a:not(.btn),.table .info a:not(.btn),.table .success a:not(.btn),.table .warning a:not(.btn),table .danger a:not(.btn),table .info a:not(.btn),table .success a:not(.btn),table .warning a:not(.btn){color:#fff}.table:not(.table-bordered)>tbody>tr>td,.table:not(.table-bordered)>tbody>tr>th,.table:not(.table-bordered)>tfoot>tr>td,.table:not(.table-bordered)>tfoot>tr>th,.table:not(.table-bordered)>thead>tr>td,.table:not(.table-bordered)>thead>tr>th,table:not(.table-bordered)>tbody>tr>td,table:not(.table-bordered)>tbody>tr>th,table:not(.table-bordered)>tfoot>tr>td,table:not(.table-bordered)>tfoot>tr>th,table:not(.table-bordered)>thead>tr>td,table:not(.table-bordered)>thead>tr>th{border-color:transparent}.form-control{box-shadow:inset 0 2px 0 rgba(0,0,0,.075)}label{font-weight:400}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .form-control-feedback,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#ff851b}.has-warning .form-control,.has-warning .form-control:focus{border:1px solid #ff851b;box-shadow:inset 0 2px 0 rgba(0,0,0,.075)}.has-warning .input-group-addon{border:1px solid #ff851b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .form-control-feedback,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#ff4136}.has-error .form-control,.has-error .form-control:focus{border:1px solid #ff4136;box-shadow:inset 0 2px 0 rgba(0,0,0,.075)}.has-error .input-group-addon{border:1px solid #ff4136}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#28b62c}.has-success .form-control,.has-success .form-control:focus{border:1px solid #28b62c;box-shadow:inset 0 2px 0 rgba(0,0,0,.075)}.has-success .input-group-addon{border:1px solid #28b62c}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{border-color:transparent}.nav-tabs>li>a{margin-top:6px;border-color:#e7e7e7;color:#333;transition:all .2s ease-in-out}.nav-tabs .open>a,.nav-tabs .open>a:focus,.nav-tabs .open>a:hover,.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover,.nav-tabs>li>a:focus,.nav-tabs>li>a:hover{padding-bottom:16px;margin-top:0}.nav-tabs .open>a,.nav-tabs .open>a:focus,.nav-tabs .open>a:hover{border-color:#e7e7e7}.nav-tabs>li.disabled>a:focus,.nav-tabs>li.disabled>a:hover{padding-top:10px;padding-bottom:10px;margin-top:6px}.nav-tabs.nav-justified>li{vertical-align:bottom}.dropdown-menu{margin-top:0;border-width:0 1px 4px 1px;border-top-width:1px;box-shadow:none}.breadcrumb{border-color:#ededed;border-style:solid;border-width:0 1px 4px 1px}.pager>li>a,.pager>li>span,.pagination>li>a,.pagination>li>span{position:relative;top:0;border-width:0 1px 4px 1px;color:#555;font-size:12px;font-weight:700;text-transform:uppercase}.pager>li>a:hover,.pager>li>span:hover,.pagination>li>a:hover,.pagination>li>span:hover{top:1px;border-bottom-width:3px}.pager>li>a:active,.pager>li>span:active,.pagination>li>a:active,.pagination>li>span:active{top:2px;border-bottom-width:2px}.pager>.disabled>a:hover,.pager>.disabled>span:hover,.pagination>.disabled>a:hover,.pagination>.disabled>span:hover{top:0;border-width:0 1px 4px 1px}.pager>.disabled>a:active,.pager>.disabled>span:active,.pagination>.disabled>a:active,.pagination>.disabled>span:active{top:0;border-width:0 1px 4px 1px}.pager>.disabled>a,.pager>.disabled>a:active,.pager>.disabled>a:hover,.pager>.disabled>span,.pager>.disabled>span:active,.pager>.disabled>span:hover,.pager>li>a,.pager>li>a:active,.pager>li>a:hover,.pager>li>span,.pager>li>span:active,.pager>li>span:hover{border-left-width:2px;border-right-width:2px}.close{color:#fff;text-decoration:none;opacity:.4}.close:focus,.close:hover{color:#fff;opacity:1}.alert{border-width:0 1px 4px 1px}.alert .alert-link{font-weight:400;color:#fff;text-decoration:underline}.label{font-weight:400}.progress{border:1px solid #e7e7e7;box-shadow:inset 0 2px 0 rgba(0,0,0,.1)}.progress-bar{box-shadow:inset 0 -4px 0 rgba(0,0,0,.15)}.well{border:1px solid #e7e7e7;box-shadow:inset 0 2px 0 rgba(0,0,0,.05)}a.list-group-item.active,a.list-group-item.active:focus,a.list-group-item.active:hover{border-color:#eee}a.list-group-item-success.active{background-color:#28b62c}a.list-group-item-success.active:focus,a.list-group-item-success.active:hover{background-color:#23a127}a.list-group-item-warning.active{background-color:#ff851b}a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover{background-color:#ff7701}a.list-group-item-danger.active{background-color:#ff4136}a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover{background-color:#ff291c}.jumbotron{border:1px solid #e7e7e7;box-shadow:inset 0 2px 0 rgba(0,0,0,.05)}.panel{border:1px solid #e7e7e7;border-width:0 1px 4px 1px}.panel-default .close{color:#555}.modal .close{color:#555}.popover{color:#555}
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/build/004-bootstrap-slider.min.css b/mailcow/src/mailcow-dockerized/data/web/css/build/004-bootstrap-slider.min.css
deleted file mode 100644
index f8e395b..0000000
--- a/mailcow/src/mailcow-dockerized/data/web/css/build/004-bootstrap-slider.min.css
+++ /dev/null
@@ -1,41 +0,0 @@
-/*! =======================================================
-                      VERSION  10.6.1              
-========================================================= */
-/*! =========================================================
- * bootstrap-slider.js
- *
- * Maintainers:
- *		Kyle Kemp
- *			- Twitter: @seiyria
- *			- Github:  seiyria
- *		Rohit Kalkur
- *			- Twitter: @Rovolutionary
- *			- Github:  rovolution
- *
- * =========================================================
-  *
- * bootstrap-slider is released under the MIT License
- * Copyright (c) 2019 Kyle Kemp, Rohit Kalkur, and contributors
- * 
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following
- * conditions:
- * 
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- * ========================================================= */.slider{display:inline-block;vertical-align:middle;position:relative}.slider.slider-horizontal{width:210px;height:20px}.slider.slider-horizontal .slider-track{height:10px;width:100%;margin-top:-5px;top:50%;left:0}.slider.slider-horizontal .slider-selection,.slider.slider-horizontal .slider-track-low,.slider.slider-horizontal .slider-track-high{height:100%;top:0;bottom:0}.slider.slider-horizontal .slider-tick,.slider.slider-horizontal .slider-handle{margin-left:-10px}.slider.slider-horizontal .slider-tick.triangle,.slider.slider-horizontal .slider-handle.triangle{position:relative;top:50%;-ms-transform:translateY(-50%);transform:translateY(-50%);border-width:0 10px 10px 10px;width:0;height:0;border-bottom-color:#2e6da4;margin-top:0}.slider.slider-horizontal .slider-tick-container{white-space:nowrap;position:absolute;top:0;left:0;width:100%}.slider.slider-horizontal .slider-tick-label-container{white-space:nowrap;margin-top:20px}.slider.slider-horizontal .slider-tick-label-container .slider-tick-label{padding-top:4px;display:inline-block;text-align:center}.slider.slider-horizontal .tooltip{-ms-transform:translateX(-50%);transform:translateX(-50%)}.slider.slider-horizontal.slider-rtl .slider-track{left:initial;right:0}.slider.slider-horizontal.slider-rtl .slider-tick,.slider.slider-horizontal.slider-rtl .slider-handle{margin-left:initial;margin-right:-10px}.slider.slider-horizontal.slider-rtl .slider-tick-container{left:initial;right:0}.slider.slider-horizontal.slider-rtl .tooltip{-ms-transform:translateX(50%);transform:translateX(50%)}.slider.slider-vertical{height:210px;width:20px}.slider.slider-vertical .slider-track{width:10px;height:100%;left:25%;top:0}.slider.slider-vertical .slider-selection{width:100%;left:0;top:0;bottom:0}.slider.slider-vertical .slider-track-low,.slider.slider-vertical .slider-track-high{width:100%;left:0;right:0}.slider.slider-vertical .slider-tick,.slider.slider-vertical .slider-handle{margin-top:-10px}.slider.slider-vertical .slider-tick.triangle,.slider.slider-vertical .slider-handle.triangle{border-width:10px 0 10px 10px;width:1px;height:1px;border-left-color:#2e6da4;border-right-color:#2e6da4;margin-left:0;margin-right:0}.slider.slider-vertical .slider-tick-label-container{white-space:nowrap}.slider.slider-vertical .slider-tick-label-container .slider-tick-label{padding-left:4px}.slider.slider-vertical .tooltip{-ms-transform:translateY(-50%);transform:translateY(-50%)}.slider.slider-vertical.slider-rtl .slider-track{left:initial;right:25%}.slider.slider-vertical.slider-rtl .slider-selection{left:initial;right:0}.slider.slider-vertical.slider-rtl .slider-tick.triangle,.slider.slider-vertical.slider-rtl .slider-handle.triangle{border-width:10px 10px 10px 0}.slider.slider-vertical.slider-rtl .slider-tick-label-container .slider-tick-label{padding-left:initial;padding-right:4px}.slider.slider-disabled .slider-handle{background-image:-webkit-linear-gradient(top,#dfdfdf 0,#bebebe 100%);background-image:-o-linear-gradient(top,#dfdfdf 0,#bebebe 100%);background-image:linear-gradient(to bottom,#dfdfdf 0,#bebebe 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdfdfdf',endColorstr='#ffbebebe',GradientType=0)}.slider.slider-disabled .slider-track{background-image:-webkit-linear-gradient(top,#e5e5e5 0,#e9e9e9 100%);background-image:-o-linear-gradient(top,#e5e5e5 0,#e9e9e9 100%);background-image:linear-gradient(to bottom,#e5e5e5 0,#e9e9e9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe5e5e5',endColorstr='#ffe9e9e9',GradientType=0);cursor:not-allowed}.slider input{display:none}.slider .tooltip{pointer-events:none}.slider .tooltip.top{margin-top:-36px}.slider .tooltip-inner{white-space:nowrap;max-width:none}.slider .hide{display:none}.slider-track{position:absolute;cursor:pointer;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#f9f9f9 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#f9f9f9 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#f9f9f9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);border-radius:4px}.slider-selection{position:absolute;background-image:-webkit-linear-gradient(top,#f9f9f9 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#f9f9f9 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#f9f9f9 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9',endColorstr='#fff5f5f5',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-radius:4px}.slider-selection.tick-slider-selection{background-image:-webkit-linear-gradient(top,#8ac1ef 0,#82b3de 100%);background-image:-o-linear-gradient(top,#8ac1ef 0,#82b3de 100%);background-image:linear-gradient(to bottom,#8ac1ef 0,#82b3de 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff8ac1ef',endColorstr='#ff82b3de',GradientType=0)}.slider-track-low,.slider-track-high{position:absolute;background:transparent;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-radius:4px}.slider-handle{position:absolute;top:0;width:20px;height:20px;background-color:#337ab7;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7',endColorstr='#ff2e6da4',GradientType=0);filter:none;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);border:0 solid transparent}.slider-handle:hover{cursor:pointer}.slider-handle.round{border-radius:50%}.slider-handle.triangle{background:transparent none}.slider-handle.custom{background:transparent none}.slider-handle.custom::before{line-height:20px;font-size:20px;content:'\2605';color:#726204}.slider-tick{position:absolute;cursor:pointer;width:20px;height:20px;background-image:-webkit-linear-gradient(top,#f9f9f9 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#f9f9f9 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#f9f9f9 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9',endColorstr='#fff5f5f5',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;filter:none;opacity:.8;border:0 solid transparent}.slider-tick.round{border-radius:50%}.slider-tick.triangle{background:transparent none}.slider-tick.custom{background:transparent none}.slider-tick.custom::before{line-height:20px;font-size:20px;content:'\2605';color:#726204}.slider-tick.in-selection{background-image:-webkit-linear-gradient(top,#8ac1ef 0,#82b3de 100%);background-image:-o-linear-gradient(top,#8ac1ef 0,#82b3de 100%);background-image:linear-gradient(to bottom,#8ac1ef 0,#82b3de 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff8ac1ef',endColorstr='#ff82b3de',GradientType=0);opacity:1}
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/build/004-slider.min.css b/mailcow/src/mailcow-dockerized/data/web/css/build/004-slider.min.css
new file mode 100644
index 0000000..6cc5621
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/build/004-slider.min.css
@@ -0,0 +1 @@
+.noUi-target,.noUi-target *{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-ms-touch-action:none;touch-action:none;-ms-user-select:none;-moz-user-select:none;user-select:none;-moz-box-sizing:border-box;box-sizing:border-box}.noUi-target{position:relative}.noUi-base,.noUi-connects{width:100%;height:100%;position:relative;z-index:1}.noUi-connects{overflow:hidden;z-index:0}.noUi-connect,.noUi-origin{will-change:transform;position:absolute;z-index:1;top:0;right:0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;-webkit-transform-style:preserve-3d;transform-origin:0 0;transform-style:flat}.noUi-connect{height:100%;width:100%}.noUi-origin{height:10%;width:10%}.noUi-txt-dir-rtl.noUi-horizontal .noUi-origin{left:0;right:auto}.noUi-vertical .noUi-origin{width:0}.noUi-horizontal .noUi-origin{height:0}.noUi-handle{-webkit-backface-visibility:hidden;backface-visibility:hidden;position:absolute}.noUi-touch-area{height:100%;width:100%}.noUi-state-tap .noUi-connect,.noUi-state-tap .noUi-origin{-webkit-transition:transform .3s;transition:transform .3s}.noUi-state-drag *{cursor:inherit!important}.noUi-horizontal{height:18px}.noUi-horizontal .noUi-handle{width:34px;height:28px;right:-17px;top:-6px}.noUi-vertical{width:18px}.noUi-vertical .noUi-handle{width:28px;height:34px;right:-6px;top:-17px}.noUi-txt-dir-rtl.noUi-horizontal .noUi-handle{left:-17px;right:auto}.noUi-target{background:#FAFAFA;border-radius:4px;border:1px solid #D3D3D3;box-shadow:inset 0 1px 1px #F0F0F0,0 3px 6px -5px #BBB}.noUi-connects{border-radius:3px}.noUi-connect{background:#3FB8AF}.noUi-draggable{cursor:ew-resize}.noUi-vertical .noUi-draggable{cursor:ns-resize}.noUi-handle{border:1px solid #D9D9D9;border-radius:3px;background:#FFF;cursor:default;box-shadow:inset 0 0 1px #FFF,inset 0 1px 7px #EBEBEB,0 3px 6px -3px #BBB}.noUi-active{box-shadow:inset 0 0 1px #FFF,inset 0 1px 7px #DDD,0 3px 6px -3px #BBB}.noUi-handle:after,.noUi-handle:before{content:"";display:block;position:absolute;height:14px;width:1px;background:#E8E7E6;left:14px;top:6px}.noUi-handle:after{left:17px}.noUi-vertical .noUi-handle:after,.noUi-vertical .noUi-handle:before{width:14px;height:1px;left:6px;top:14px}.noUi-vertical .noUi-handle:after{top:17px}[disabled] .noUi-connect{background:#B8B8B8}[disabled] .noUi-handle,[disabled].noUi-handle,[disabled].noUi-target{cursor:not-allowed}.noUi-pips,.noUi-pips *{-moz-box-sizing:border-box;box-sizing:border-box}.noUi-pips{position:absolute;color:#999}.noUi-value{position:absolute;white-space:nowrap;text-align:center}.noUi-value-sub{color:#ccc;font-size:10px}.noUi-marker{position:absolute;background:#CCC}.noUi-marker-sub{background:#AAA}.noUi-marker-large{background:#AAA}.noUi-pips-horizontal{padding:10px 0;height:80px;top:100%;left:0;width:100%}.noUi-value-horizontal{-webkit-transform:translate(-50%,50%);transform:translate(-50%,50%)}.noUi-rtl .noUi-value-horizontal{-webkit-transform:translate(50%,50%);transform:translate(50%,50%)}.noUi-marker-horizontal.noUi-marker{margin-left:-1px;width:2px;height:5px}.noUi-marker-horizontal.noUi-marker-sub{height:10px}.noUi-marker-horizontal.noUi-marker-large{height:15px}.noUi-pips-vertical{padding:0 10px;height:100%;top:0;left:100%}.noUi-value-vertical{-webkit-transform:translate(0,-50%);transform:translate(0,-50%);padding-left:25px}.noUi-rtl .noUi-value-vertical{-webkit-transform:translate(0,50%);transform:translate(0,50%)}.noUi-marker-vertical.noUi-marker{width:5px;height:2px;margin-top:-1px}.noUi-marker-vertical.noUi-marker-sub{width:10px}.noUi-marker-vertical.noUi-marker-large{width:15px}.noUi-tooltip{display:block;position:absolute;border:1px solid #D9D9D9;border-radius:3px;background:#fff;color:#000;padding:5px;text-align:center;white-space:nowrap}.noUi-horizontal .noUi-tooltip{-webkit-transform:translate(-50%,0);transform:translate(-50%,0);left:50%;bottom:120%}.noUi-vertical .noUi-tooltip{-webkit-transform:translate(0,-50%);transform:translate(0,-50%);top:50%;right:120%}.noUi-horizontal .noUi-origin>.noUi-tooltip{-webkit-transform:translate(50%,0);transform:translate(50%,0);left:auto;bottom:10px}.noUi-vertical .noUi-origin>.noUi-tooltip{-webkit-transform:translate(0,-18px);transform:translate(0,-18px);top:auto;right:28px}
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/build/005-bootstrap-switch.min.css b/mailcow/src/mailcow-dockerized/data/web/css/build/005-bootstrap-switch.min.css
deleted file mode 100644
index cbfa013..0000000
--- a/mailcow/src/mailcow-dockerized/data/web/css/build/005-bootstrap-switch.min.css
+++ /dev/null
@@ -1,10 +0,0 @@
-/**

-  * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches.

-  *

-  * @version v3.3.3

-  * @homepage http://www.bootstrap-switch.org

-  * @author Mattia Larentis <mattia@larentis.eu> (http://larentis.eu)

-  * @license Apache-2.0

-  */

-

-.bootstrap-switch{display:inline-block;direction:ltr;cursor:pointer;border-radius:4px;border:1px solid #ccc;position:relative;text-align:left;overflow:hidden;line-height:8px;z-index:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.bootstrap-switch .bootstrap-switch-container{display:inline-block;top:0;border-radius:4px;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-handle-on,.bootstrap-switch .bootstrap-switch-label{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:inline-block!important;height:100%;padding:6px 12px;font-size:14px;line-height:20px}.bootstrap-switch .bootstrap-switch-handle-off,.bootstrap-switch .bootstrap-switch-handle-on{text-align:center;z-index:1}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary{color:#fff;background:#337ab7}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info{color:#fff;background:#5bc0de}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success{color:#fff;background:#5cb85c}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning{background:#f0ad4e;color:#fff}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger{color:#fff;background:#d9534f}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default{color:#000;background:#eee}.bootstrap-switch .bootstrap-switch-label{text-align:center;margin-top:-1px;margin-bottom:-1px;z-index:100;color:#333;background:#fff}.bootstrap-switch .bootstrap-switch-handle-on{border-bottom-left-radius:3px;border-top-left-radius:3px}.bootstrap-switch .bootstrap-switch-handle-off{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch input[type=radio],.bootstrap-switch input[type=checkbox]{position:absolute!important;top:0;left:0;margin:0;z-index:-1;opacity:0;filter:alpha(opacity=0)}.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-mini .bootstrap-switch-label{padding:1px 5px;font-size:12px;line-height:1.5}.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-small .bootstrap-switch-label{padding:5px 10px;font-size:12px;line-height:1.5}.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-large .bootstrap-switch-label{padding:6px 16px;font-size:18px;line-height:1.3333333}.bootstrap-switch.bootstrap-switch-disabled,.bootstrap-switch.bootstrap-switch-indeterminate,.bootstrap-switch.bootstrap-switch-readonly{cursor:default!important}.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-disabled .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-indeterminate .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-off,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-handle-on,.bootstrap-switch.bootstrap-switch-readonly .bootstrap-switch-label{opacity:.5;filter:alpha(opacity=50);cursor:default!important}.bootstrap-switch.bootstrap-switch-animate .bootstrap-switch-container{-webkit-transition:margin-left .5s;-o-transition:margin-left .5s;transition:margin-left .5s}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-on{border-radius:0 3px 3px 0}.bootstrap-switch.bootstrap-switch-inverse .bootstrap-switch-handle-off{border-radius:3px 0 0 3px}.bootstrap-switch.bootstrap-switch-focused{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-on .bootstrap-switch-label{border-bottom-right-radius:3px;border-top-right-radius:3px}.bootstrap-switch.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label,.bootstrap-switch.bootstrap-switch-off .bootstrap-switch-label{border-bottom-left-radius:3px;border-top-left-radius:3px}
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/build/006-footable.bootstrap.min.css b/mailcow/src/mailcow-dockerized/data/web/css/build/006-footable.bootstrap.min.css
index 87841b2..a04d825 100644
--- a/mailcow/src/mailcow-dockerized/data/web/css/build/006-footable.bootstrap.min.css
+++ b/mailcow/src/mailcow-dockerized/data/web/css/build/006-footable.bootstrap.min.css
@@ -1 +1,323 @@
-table.footable-details,table.footable>thead>tr.footable-filtering>th div.form-group{margin-bottom:0}table.footable,table.footable-details{position:relative;width:100%;border-spacing:0;border-collapse:collapse}table.footable-hide-fouc{display:none}table>tbody>tr>td>span.footable-toggle{margin-right:8px;opacity:.3}table>tbody>tr>td>span.footable-toggle.last-column{margin-left:8px;float:right}table.table-condensed>tbody>tr>td>span.footable-toggle{margin-right:5px}table.footable-details>tbody>tr>th:nth-child(1){min-width:40px;width:120px}table.footable-details>tbody>tr>td:nth-child(2){word-break:break-all}table.footable-details>tbody>tr:first-child>td,table.footable-details>tbody>tr:first-child>th,table.footable-details>tfoot>tr:first-child>td,table.footable-details>tfoot>tr:first-child>th,table.footable-details>thead>tr:first-child>td,table.footable-details>thead>tr:first-child>th{border-top-width:0}table.footable-details.table-bordered>tbody>tr:first-child>td,table.footable-details.table-bordered>tbody>tr:first-child>th,table.footable-details.table-bordered>tfoot>tr:first-child>td,table.footable-details.table-bordered>tfoot>tr:first-child>th,table.footable-details.table-bordered>thead>tr:first-child>td,table.footable-details.table-bordered>thead>tr:first-child>th{border-top-width:1px}div.footable-loader{vertical-align:middle;text-align:center;height:300px;position:relative}div.footable-loader>span.fooicon{display:inline-block;opacity:.3;font-size:30px;line-height:32px;width:32px;height:32px;margin-top:-16px;margin-left:-16px;position:absolute;top:50%;left:50%;-webkit-animation:fooicon-spin-r 2s infinite linear;animation:fooicon-spin-r 2s infinite linear}table.footable>tbody>tr.footable-empty>td{vertical-align:middle;text-align:center;font-size:30px}table.footable>tbody>tr>td,table.footable>tbody>tr>th{display:none}table.footable>tbody>tr.footable-detail-row>td,table.footable>tbody>tr.footable-detail-row>th,table.footable>tbody>tr.footable-empty>td,table.footable>tbody>tr.footable-empty>th{display:table-cell}@-webkit-keyframes fooicon-spin-r{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fooicon-spin-r{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fooicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings'!important;font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fooicon:after,.fooicon:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.fooicon-loader:before{content:"\e030"}.fooicon-plus:before{content:"\2b"}.fooicon-minus:before{content:"\2212"}.fooicon-search:before{content:"\e003"}.fooicon-remove:before{content:"\e014"}.fooicon-sort:before{content:"\e150"}.fooicon-sort-asc:before{content:"\e155"}.fooicon-sort-desc:before{content:"\e156"}.fooicon-pencil:before{content:"\270f"}.fooicon-trash:before{content:"\e020"}.fooicon-eye-close:before{content:"\e106"}.fooicon-flash:before{content:"\e162"}.fooicon-cog:before{content:"\e019"}.fooicon-stats:before{content:"\e185"}table.footable>thead>tr.footable-filtering>th{border-bottom-width:1px;font-weight:400}.footable-filtering-external.footable-filtering-right,table.footable.footable-filtering-right>thead>tr.footable-filtering>th,table.footable>thead>tr.footable-filtering>th{text-align:right}.footable-filtering-external.footable-filtering-left,table.footable.footable-filtering-left>thead>tr.footable-filtering>th{text-align:left}.footable-filtering-external.footable-filtering-center,.footable-paging-external.footable-paging-center,table.footable-paging-center>tfoot>tr.footable-paging>td,table.footable.footable-filtering-center>thead>tr.footable-filtering>th,table.footable>tfoot>tr.footable-paging>td{text-align:center}table.footable>thead>tr.footable-filtering>th div.form-group+div.form-group{margin-top:5px}table.footable>thead>tr.footable-filtering>th div.input-group{width:100%}.footable-filtering-external ul.dropdown-menu>li>a.checkbox,table.footable>thead>tr.footable-filtering>th ul.dropdown-menu>li>a.checkbox{margin:0;display:block;position:relative}.footable-filtering-external ul.dropdown-menu>li>a.checkbox>label,table.footable>thead>tr.footable-filtering>th ul.dropdown-menu>li>a.checkbox>label{display:block;padding-left:20px}.footable-filtering-external ul.dropdown-menu>li>a.checkbox input[type=checkbox],table.footable>thead>tr.footable-filtering>th ul.dropdown-menu>li>a.checkbox input[type=checkbox]{position:absolute;margin-left:-20px}@media (min-width:768px){table.footable>thead>tr.footable-filtering>th div.input-group{width:auto}table.footable>thead>tr.footable-filtering>th div.form-group{margin-left:2px;margin-right:2px}table.footable>thead>tr.footable-filtering>th div.form-group+div.form-group{margin-top:0}}table.footable>tbody>tr>td.footable-sortable,table.footable>tbody>tr>th.footable-sortable,table.footable>tfoot>tr>td.footable-sortable,table.footable>tfoot>tr>th.footable-sortable,table.footable>thead>tr>td.footable-sortable,table.footable>thead>tr>th.footable-sortable{position:relative;padding-right:30px;cursor:pointer}td.footable-sortable>span.fooicon,th.footable-sortable>span.fooicon{position:absolute;right:6px;top:50%;margin-top:-7px;opacity:0;transition:opacity .3s ease-in}td.footable-sortable.footable-asc>span.fooicon,td.footable-sortable.footable-desc>span.fooicon,td.footable-sortable:hover>span.fooicon,th.footable-sortable.footable-asc>span.fooicon,th.footable-sortable.footable-desc>span.fooicon,th.footable-sortable:hover>span.fooicon{opacity:1}table.footable-sorting-disabled td.footable-sortable.footable-asc>span.fooicon,table.footable-sorting-disabled td.footable-sortable.footable-desc>span.fooicon,table.footable-sorting-disabled td.footable-sortable:hover>span.fooicon,table.footable-sorting-disabled th.footable-sortable.footable-asc>span.fooicon,table.footable-sorting-disabled th.footable-sortable.footable-desc>span.fooicon,table.footable-sorting-disabled th.footable-sortable:hover>span.fooicon{opacity:0;visibility:hidden}.footable-paging-external ul.pagination,table.footable>tfoot>tr.footable-paging>td>ul.pagination{margin:10px 0 0}.footable-paging-external span.label,table.footable>tfoot>tr.footable-paging>td>span.label{display:inline-block;margin:0 0 10px;padding:4px 10px}.footable-paging-external.footable-paging-left,table.footable-paging-left>tfoot>tr.footable-paging>td{text-align:left}.footable-paging-external.footable-paging-right,table.footable-editing-right td.footable-editing,table.footable-editing-right tr.footable-editing,table.footable-paging-right>tfoot>tr.footable-paging>td{text-align:right}ul.pagination>li.footable-page{display:none}ul.pagination>li.footable-page.visible{display:inline}td.footable-editing{width:90px;max-width:90px}table.footable-editing-no-delete td.footable-editing,table.footable-editing-no-edit td.footable-editing,table.footable-editing-no-view td.footable-editing{width:70px;max-width:70px}table.footable-editing-no-delete.footable-editing-no-view td.footable-editing,table.footable-editing-no-edit.footable-editing-no-delete td.footable-editing,table.footable-editing-no-edit.footable-editing-no-view td.footable-editing{width:50px;max-width:50px}table.footable-editing-no-edit.footable-editing-no-delete.footable-editing-no-view td.footable-editing,table.footable-editing-no-edit.footable-editing-no-delete.footable-editing-no-view th.footable-editing{width:0;max-width:0;display:none!important}table.footable-editing-left td.footable-editing,table.footable-editing-left tr.footable-editing{text-align:left}table.footable-editing button.footable-add,table.footable-editing button.footable-hide,table.footable-editing-show button.footable-show,table.footable-editing.footable-editing-always-show button.footable-hide,table.footable-editing.footable-editing-always-show button.footable-show,table.footable-editing.footable-editing-always-show.footable-editing-no-add tr.footable-editing{display:none}table.footable-editing.footable-editing-always-show button.footable-add,table.footable-editing.footable-editing-show button.footable-add,table.footable-editing.footable-editing-show button.footable-hide{display:inline-block}
\ No newline at end of file
+table.footable-details,

+table.footable > thead > tr.footable-filtering > th div.form-group {

+  margin-bottom: 0;

+}

+table.footable,

+table.footable-details {

+  position: relative;

+  width: 100%;

+  border-spacing: 0;

+  border-collapse: collapse;

+}

+table.footable-hide-fouc {

+  display: none;

+}

+table > tbody > tr > td > span.footable-toggle {

+  margin-right: 8px;

+  opacity: 0.3;

+}

+table > tbody > tr > td > span.footable-toggle.last-column {

+  margin-left: 8px;

+  float: right;

+}

+table.table-condensed > tbody > tr > td > span.footable-toggle {

+  margin-right: 5px;

+}

+table.footable-details > tbody > tr > th:nth-child(1) {

+  min-width: 40px;

+  width: 120px;

+}

+table.footable-details > tbody > tr > td:nth-child(2) {

+  word-break: break-all;

+}

+table.footable-details > tbody > tr:first-child > td,

+table.footable-details > tbody > tr:first-child > th,

+table.footable-details > tfoot > tr:first-child > td,

+table.footable-details > tfoot > tr:first-child > th,

+table.footable-details > thead > tr:first-child > td,

+table.footable-details > thead > tr:first-child > th {

+  border-top-width: 0;

+}

+table.footable-details.table-bordered > tbody > tr:first-child > td,

+table.footable-details.table-bordered > tbody > tr:first-child > th,

+table.footable-details.table-bordered > tfoot > tr:first-child > td,

+table.footable-details.table-bordered > tfoot > tr:first-child > th,

+table.footable-details.table-bordered > thead > tr:first-child > td,

+table.footable-details.table-bordered > thead > tr:first-child > th {

+  border-top-width: 1px;

+}

+div.footable-loader {

+  vertical-align: middle;

+  text-align: center;

+  height: 300px;

+  position: relative;

+}

+div.footable-loader > span.fooicon {

+  display: inline-block;

+  opacity: 0.3;

+  font-size: 30px;

+  line-height: 32px;

+  width: 32px;

+  height: 32px;

+  margin-top: -16px;

+  margin-left: -16px;

+  position: absolute;

+  top: 50%;

+  left: 50%;

+  -webkit-animation: fooicon-spin-r 2s infinite linear;

+  animation: fooicon-spin-r 2s infinite linear;

+}

+table.footable > tbody > tr.footable-empty > td {

+  vertical-align: middle;

+  text-align: center;

+  font-size: 30px;

+}

+table.footable > tbody > tr > td,

+table.footable > tbody > tr > th {

+  display: none;

+}

+table.footable > tbody > tr.footable-detail-row > td,

+table.footable > tbody > tr.footable-detail-row > th,

+table.footable > tbody > tr.footable-empty > td,

+table.footable > tbody > tr.footable-empty > th {

+  display: table-cell;

+}

+@-webkit-keyframes fooicon-spin-r {

+  0% {

+    -webkit-transform: rotate(0);

+    transform: rotate(0);

+  }

+  100% {

+    -webkit-transform: rotate(359deg);

+    transform: rotate(359deg);

+  }

+}

+@keyframes fooicon-spin-r {

+  0% {

+    -webkit-transform: rotate(0);

+    transform: rotate(0);

+  }

+  100% {

+    -webkit-transform: rotate(359deg);

+    transform: rotate(359deg);

+  }

+}

+.fooicon {

+  position: relative;

+  top: 0px;

+  display: inline-block;

+  font-family: "bootstrap-icons" !important;

+  font-style: normal;

+  font-weight: 400;

+  line-height: 1;

+  -webkit-font-smoothing: antialiased;

+  -moz-osx-font-smoothing: grayscale;

+}

+@-moz-document url-prefix() {

+  .fooicon {

+    top: 2px;

+  }

+}

+.fooicon:after,

+.fooicon:before {

+  -webkit-box-sizing: border-box;

+  -moz-box-sizing: border-box;

+  box-sizing: border-box;

+}

+.fooicon-loader:before {

+  content: "\f130";

+}

+.fooicon-plus:before {

+  content: "\f4fc";

+}

+.fooicon-minus:before {

+  content: "\f2e8";

+}

+.fooicon-search:before {

+  content: "\f52a";

+}

+.fooicon-remove:before {

+  content: "\f62a";

+}

+.fooicon-sort:before {

+  content: "\f3c6";

+}

+.fooicon-sort-asc:before {

+  content: "\f575";

+}

+.fooicon-sort-desc:before {

+  content: "\f57b";

+}

+.fooicon-pencil:before {

+  content: "\f4c9";

+}

+.fooicon-trash:before {

+  content: "\f62a";

+}

+.fooicon-eye-close:before {

+  content: "\f33f";

+}

+.fooicon-flash:before {

+  content: "\f46e";

+}

+.fooicon-cog:before {

+  content: "\f3e2";

+}

+.fooicon-stats:before {

+  content: "\f359";

+}

+table.footable > thead > tr.footable-filtering > th {

+  border-bottom-width: 1px;

+  font-weight: 400;

+}

+.footable-filtering-external.footable-filtering-right,

+table.footable.footable-filtering-right > thead > tr.footable-filtering > th,

+table.footable > thead > tr.footable-filtering > th {

+  text-align: right;

+}

+.footable-filtering-external.footable-filtering-left,

+table.footable.footable-filtering-left > thead > tr.footable-filtering > th {

+  text-align: left;

+}

+.footable-filtering-external.footable-filtering-center,

+.footable-paging-external.footable-paging-center,

+table.footable-paging-center > tfoot > tr.footable-paging > td,

+table.footable.footable-filtering-center > thead > tr.footable-filtering > th,

+table.footable > tfoot > tr.footable-paging > td {

+  text-align: center;

+}

+table.footable > thead > tr.footable-filtering > th div.form-group + div.form-group {

+  margin-top: 5px;

+}

+table.footable > thead > tr.footable-filtering > th div.input-group {

+  width: 100%;

+}

+.footable-filtering-external ul.dropdown-menu > li > a.checkbox,

+table.footable > thead > tr.footable-filtering > th ul.dropdown-menu > li > a.checkbox {

+  margin: 0;

+  display: block;

+  position: relative;

+}

+.footable-filtering-external ul.dropdown-menu > li > a.checkbox > label,

+table.footable > thead > tr.footable-filtering > th ul.dropdown-menu > li > a.checkbox > label {

+  display: block;

+  padding-left: 20px;

+}

+.footable-filtering-external ul.dropdown-menu > li > a.checkbox input[type="checkbox"],

+table.footable > thead > tr.footable-filtering > th ul.dropdown-menu > li > a.checkbox input[type="checkbox"] {

+  position: absolute;

+  margin-left: -20px;

+}

+@media (min-width: 768px) {

+  table.footable > thead > tr.footable-filtering > th div.input-group {

+    width: auto;

+  }

+  table.footable > thead > tr.footable-filtering > th div.form-group {

+    margin-left: 2px;

+    margin-right: 2px;

+  }

+  table.footable > thead > tr.footable-filtering > th div.form-group + div.form-group {

+    margin-top: 0;

+  }

+}

+table.footable > tbody > tr > td.footable-sortable,

+table.footable > tbody > tr > th.footable-sortable,

+table.footable > tfoot > tr > td.footable-sortable,

+table.footable > tfoot > tr > th.footable-sortable,

+table.footable > thead > tr > td.footable-sortable,

+table.footable > thead > tr > th.footable-sortable {

+  position: relative;

+  padding-right: 30px;

+  cursor: pointer;

+}

+td.footable-sortable > span.fooicon,

+th.footable-sortable > span.fooicon {

+  position: absolute;

+  right: 6px;

+  top: 50%;

+  margin-top: -7px;

+  opacity: 0;

+  transition: opacity 0.3s ease-in;

+}

+td.footable-sortable.footable-asc > span.fooicon,

+td.footable-sortable.footable-desc > span.fooicon,

+td.footable-sortable:hover > span.fooicon,

+th.footable-sortable.footable-asc > span.fooicon,

+th.footable-sortable.footable-desc > span.fooicon,

+th.footable-sortable:hover > span.fooicon {

+  opacity: 1;

+}

+table.footable-sorting-disabled td.footable-sortable.footable-asc > span.fooicon,

+table.footable-sorting-disabled td.footable-sortable.footable-desc > span.fooicon,

+table.footable-sorting-disabled td.footable-sortable:hover > span.fooicon,

+table.footable-sorting-disabled th.footable-sortable.footable-asc > span.fooicon,

+table.footable-sorting-disabled th.footable-sortable.footable-desc > span.fooicon,

+table.footable-sorting-disabled th.footable-sortable:hover > span.fooicon {

+  opacity: 0;

+  visibility: hidden;

+}

+.footable-paging-external ul.pagination,

+table.footable > tfoot > tr.footable-paging > td > ul.pagination {

+  margin: 10px 0 0;

+}

+.footable-paging-external span.label,

+table.footable > tfoot > tr.footable-paging > td > span.label {

+  display: inline-block;

+  margin: 0 0 10px;

+  padding: 4px 10px;

+}

+.footable-paging-external.footable-paging-left,

+table.footable-paging-left > tfoot > tr.footable-paging > td {

+  text-align: left;

+}

+.footable-paging-external.footable-paging-right,

+table.footable-editing-right td.footable-editing,

+table.footable-editing-right tr.footable-editing,

+table.footable-paging-right > tfoot > tr.footable-paging > td {

+  text-align: right;

+}

+ul.pagination > li.footable-page {

+  display: none;

+}

+ul.pagination > li.footable-page.visible {

+  display: inline;

+}

+td.footable-editing {

+  width: 90px;

+  max-width: 90px;

+}

+table.footable-editing-no-delete td.footable-editing,

+table.footable-editing-no-edit td.footable-editing,

+table.footable-editing-no-view td.footable-editing {

+  width: 70px;

+  max-width: 70px;

+}

+table.footable-editing-no-delete.footable-editing-no-view td.footable-editing,

+table.footable-editing-no-edit.footable-editing-no-delete td.footable-editing,

+table.footable-editing-no-edit.footable-editing-no-view td.footable-editing {

+  width: 50px;

+  max-width: 50px;

+}

+table.footable-editing-no-edit.footable-editing-no-delete.footable-editing-no-view td.footable-editing,

+table.footable-editing-no-edit.footable-editing-no-delete.footable-editing-no-view th.footable-editing {

+  width: 0;

+  max-width: 0;

+  display: none !important;

+}

+table.footable-editing-left td.footable-editing,

+table.footable-editing-left tr.footable-editing {

+  text-align: left;

+}

+table.footable-editing button.footable-add,

+table.footable-editing button.footable-hide,

+table.footable-editing-show button.footable-show,

+table.footable-editing.footable-editing-always-show button.footable-hide,

+table.footable-editing.footable-editing-always-show button.footable-show,

+table.footable-editing.footable-editing-always-show.footable-editing-no-add tr.footable-editing {

+  display: none;

+}

+table.footable-editing.footable-editing-always-show button.footable-add,

+table.footable-editing.footable-editing-show button.footable-add,

+table.footable-editing.footable-editing-show button.footable-hide {

+  display: inline-block;

+}

diff --git a/mailcow/src/mailcow-dockerized/data/web/css/build/007-languages.min.css b/mailcow/src/mailcow-dockerized/data/web/css/build/007-languages.min.css
index 2c6a926..a081cac 100644
--- a/mailcow/src/mailcow-dockerized/data/web/css/build/007-languages.min.css
+++ b/mailcow/src/mailcow-dockerized/data/web/css/build/007-languages.min.css
@@ -1 +1 @@
-.lang-lg,.lang-sm,.lang-xs{background-repeat:no-repeat;display:inline-block;background-image:url(/img/languages.png)}.lang-sm,.lang-sm:after,.lang-xs,.lang-xs:after{position:relative}.lang-xs{background-position:0 -484px;min-width:14px;height:11px;min-height:11px;max-height:11px}.lang-sm{background-position:0 -1199px;min-width:22px;height:16px;min-height:16px;max-height:16px}.lang-lg{background-position:0 -2134px;min-width:30px;height:22px;min-height:22px;max-height:22px}.lang-xs[lang=ar]{background-position:0 0}.lang-xs[lang=be]{background-position:0 -11px}.lang-xs[lang=bg]{background-position:0 -22px}.lang-xs[lang=cs]{background-position:0 -33px}.lang-xs[lang=da]{background-position:0 -44px}.lang-xs[lang=de]{background-position:0 -55px}.lang-xs[lang=el]{background-position:0 -66px}.lang-xs[lang=en]{background-position:0 -77px}.lang-xs[lang=es]{background-position:0 -88px}.lang-xs[lang=et]{background-position:0 -99px}.lang-xs[lang=fi]{background-position:0 -110px}.lang-xs[lang=fr]{background-position:0 -121px}.lang-xs[lang=ga]{background-position:0 -132px}.lang-xs[lang=hi]{background-position:0 -143px}.lang-xs[lang=hr]{background-position:0 -154px}.lang-xs[lang=hu]{background-position:0 -165px}.lang-xs[lang=in]{background-position:0 -176px}.lang-xs[lang=is]{background-position:0 -187px}.lang-xs[lang=it]{background-position:0 -198px}.lang-xs[lang=iw]{background-position:0 -209px}.lang-xs[lang=ja]{background-position:0 -220px}.lang-xs[lang=ko]{background-position:0 -231px}.lang-xs[lang=lt]{background-position:0 -242px}.lang-xs[lang=lv]{background-position:0 -253px}.lang-xs[lang=mk]{background-position:0 -264px}.lang-xs[lang=ms]{background-position:0 -275px}.lang-xs[lang=mt]{background-position:0 -286px}.lang-xs[lang=nl]{background-position:0 -297px}.lang-xs[lang=no]{background-position:0 -308px}.lang-xs[lang=pl]{background-position:0 -319px}.lang-xs[lang=pt]{background-position:0 -330px}.lang-xs[lang=ro]{background-position:0 -341px}.lang-xs[lang=ru]{background-position:0 -352px}.lang-xs[lang=sk]{background-position:0 -363px}.lang-xs[lang=sl]{background-position:0 -374px}.lang-xs[lang=sq]{background-position:0 -385px}.lang-xs[lang=sr]{background-position:0 -396px}.lang-xs[lang=sv]{background-position:0 -407px}.lang-xs[lang=th]{background-position:0 -418px}.lang-xs[lang=tr]{background-position:0 -429px}.lang-xs[lang=uk]{background-position:0 -440px}.lang-xs[lang=vi]{background-position:0 -451px}.lang-xs[lang=zh]{background-position:0 -462px}.lang-xs[lang=ca]{background-position:0 -473px}.lang-sm[lang=ar]{background-position:0 -495px}.lang-sm[lang=be]{background-position:0 -511px}.lang-sm[lang=bg]{background-position:0 -527px}.lang-sm[lang=cs]{background-position:0 -543px}.lang-sm[lang=da]{background-position:0 -559px}.lang-sm[lang=de]{background-position:0 -575px}.lang-sm[lang=el]{background-position:0 -591px}.lang-sm[lang=en]{background-position:0 -607px}.lang-sm[lang=es]{background-position:0 -623px}.lang-sm[lang=et]{background-position:0 -639px}.lang-sm[lang=fi]{background-position:0 -655px}.lang-sm[lang=fr]{background-position:0 -671px}.lang-sm[lang=ga]{background-position:0 -687px}.lang-sm[lang=hi]{background-position:0 -703px}.lang-sm[lang=hr]{background-position:0 -719px}.lang-sm[lang=hu]{background-position:0 -735px}.lang-sm[lang=in]{background-position:0 -751px}.lang-sm[lang=is]{background-position:0 -767px}.lang-sm[lang=it]{background-position:0 -783px}.lang-sm[lang=iw]{background-position:0 -799px}.lang-sm[lang=ja]{background-position:0 -815px}.lang-sm[lang=ko]{background-position:0 -831px}.lang-sm[lang=lt]{background-position:0 -847px}.lang-sm[lang=lv]{background-position:0 -863px}.lang-sm[lang=mk]{background-position:0 -879px}.lang-sm[lang=ms]{background-position:0 -895px}.lang-sm[lang=mt]{background-position:0 -911px}.lang-sm[lang=nl]{background-position:0 -927px}.lang-sm[lang=no]{background-position:0 -943px}.lang-sm[lang=pl]{background-position:0 -959px}.lang-sm[lang=pt]{background-position:0 -975px}.lang-sm[lang=ro]{background-position:0 -991px}.lang-sm[lang=ru]{background-position:0 -1007px}.lang-sm[lang=sk]{background-position:0 -1023px}.lang-sm[lang=sl]{background-position:0 -1039px}.lang-sm[lang=sq]{background-position:0 -1055px}.lang-sm[lang=sr]{background-position:0 -1071px}.lang-sm[lang=sv]{background-position:0 -1087px}.lang-sm[lang=th]{background-position:0 -1103px}.lang-sm[lang=tr]{background-position:0 -1119px}.lang-sm[lang=uk]{background-position:0 -1135px}.lang-sm[lang=vi]{background-position:0 -1151px}.lang-sm[lang=zh]{background-position:0 -1167px}.lang-sm[lang=ca]{background-position:0 -1183px}.lang-lg[lang=ar]{background-position:0 -1188px}.lang-lg[lang=be]{background-position:0 -1210px}.lang-lg[lang=bg]{background-position:0 -1232px}.lang-lg[lang=cs]{background-position:0 -1254px}.lang-lg[lang=da]{background-position:0 -1276px}.lang-lg[lang=de]{background-position:0 -1298px}.lang-lg[lang=el]{background-position:0 -1320px}.lang-lg[lang=en]{background-position:0 -1342px}.lang-lg[lang=es]{background-position:0 -1364px}.lang-lg[lang=et]{background-position:0 -1386px}.lang-lg[lang=fi]{background-position:0 -1408px}.lang-lg[lang=fr]{background-position:0 -1430px}.lang-lg[lang=ga]{background-position:0 -1452px}.lang-lg[lang=hi]{background-position:0 -1474px}.lang-lg[lang=hr]{background-position:0 -1496px}.lang-lg[lang=hu]{background-position:0 -1518px}.lang-lg[lang=in]{background-position:0 -1540px}.lang-lg[lang=is]{background-position:0 -1562px}.lang-lg[lang=it]{background-position:0 -1584px}.lang-lg[lang=iw]{background-position:0 -1606px}.lang-lg[lang=ja]{background-position:0 -1628px}.lang-lg[lang=ko]{background-position:0 -1650px}.lang-lg[lang=lt]{background-position:0 -1672px}.lang-lg[lang=lv]{background-position:0 -1694px}.lang-lg[lang=mk]{background-position:0 -1716px}.lang-lg[lang=ms]{background-position:0 -1738px}.lang-lg[lang=mt]{background-position:0 -1760px}.lang-lg[lang=nl]{background-position:0 -1782px}.lang-lg[lang=no]{background-position:0 -1804px}.lang-lg[lang=pl]{background-position:0 -1826px}.lang-lg[lang=pt]{background-position:0 -1848px}.lang-lg[lang=ro]{background-position:0 -1870px}.lang-lg[lang=ru]{background-position:0 -1892px}.lang-lg[lang=sk]{background-position:0 -1914px}.lang-lg[lang=sl]{background-position:0 -1936px}.lang-lg[lang=sq]{background-position:0 -1958px}.lang-lg[lang=sr]{background-position:0 -1980px}.lang-lg[lang=sv]{background-position:0 -2002px}.lang-lg[lang=th]{background-position:0 -2024px}.lang-lg[lang=tr]{background-position:0 -2046px}.lang-lg[lang=uk]{background-position:0 -2068px}.lang-lg[lang=vi]{background-position:0 -2090px}.lang-lg[lang=zh]{background-position:0 -2112px}.lang-lbl-en:after,.lang-lbl-full:after,.lang-lbl:after{content:"Unknown language"}.lang-lbl[lang=ar]:after{content:"\000627\000644\000639\000631\000628\00064A\000629"}.lang-lbl[lang=be]:after{content:"\000411\000435\00043B\000430\000440\000443\000441\00043A\000456"}.lang-lbl[lang=bg]:after{content:"\000411\00044A\00043B\000433\000430\000440\000441\00043A\000438"}.lang-lbl[lang=ca]:after{content:"Catal\0000E0"}.lang-lbl[lang=cs]:after{content:"\00010Ce\000161tina"}.lang-lbl[lang=da]:after{content:"Dansk"}.lang-lbl[lang=de]:after{content:"Deutsch"}.lang-lbl[lang=el]:after{content:"\000395\0003BB\0003BB\0003B7\0003BD\0003B9\0003BA\0003AC"}.lang-lbl[lang=en]:after{content:"English"}.lang-lbl[lang=es]:after{content:"Espa\0000F1ol"}.lang-lbl[lang=et]:after{content:"Eesti"}.lang-lbl[lang=fi]:after{content:"Suomi"}.lang-lbl[lang=fr]:after{content:"Fran\0000E7ais"}.lang-lbl[lang=ga]:after{content:"Gaeilge"}.lang-lbl[lang=hi]:after{content:"\000939\00093F\000902\000926\000940"}.lang-lbl[lang=hr]:after{content:"Hrvatski"}.lang-lbl[lang=hu]:after{content:"Magyar"}.lang-lbl[lang=in]:after{content:"Bahasa\000020indonesia"}.lang-lbl[lang=is]:after{content:"\0000CDslenska"}.lang-lbl[lang=it]:after{content:"Italiano"}.lang-lbl[lang=iw]:after{content:"\0005E2\0005D1\0005E8\0005D9\0005EA"}.lang-lbl[lang=ja]:after{content:"\0065E5\00672C\008A9E"}.lang-lbl[lang=ko]:after{content:"\00D55C\00AD6D\00C5B4"}.lang-lbl[lang=lt]:after{content:"Lietuvi\000173"}.lang-lbl[lang=lv]:after{content:"Latvie\000161u"}.lang-lbl[lang=mk]:after{content:"\00041C\000430\00043A\000435\000434\00043E\00043D\000441\00043A\000438"}.lang-lbl[lang=ms]:after{content:"Bahasa\000020melayu"}.lang-lbl[lang=mt]:after{content:"Malti"}.lang-lbl[lang=nl]:after{content:"Nederlands"}.lang-lbl[lang=no]:after{content:"Norsk"}.lang-lbl[lang=pl]:after{content:"Polski"}.lang-lbl[lang=pt]:after{content:"Portugu\0000EAs"}.lang-lbl[lang=ro]:after{content:"Rom\0000E2n\000103"}.lang-lbl[lang=ru]:after{content:"\000420\000443\000441\000441\00043A\000438\000439"}.lang-lbl[lang=sk]:after{content:"Sloven\00010Dina"}.lang-lbl[lang=sl]:after{content:"Sloven\000161\00010Dina"}.lang-lbl[lang=sq]:after{content:"Shqipe"}.lang-lbl[lang=sr]:after{content:"\000421\000440\00043F\000441\00043A\000438"}.lang-lbl[lang=sv]:after{content:"Svenska"}.lang-lbl[lang=th]:after{content:"\000E44\000E17\000E22"}.lang-lbl[lang=tr]:after{content:"T\0000FCrk\0000E7e"}.lang-lbl[lang=uk]:after{content:"\000423\00043A\000440\000430\000457\00043D\000441\00044C\00043A\000430"}.lang-lbl[lang=vi]:after{content:"Ti\001EBFng\000020vi\001EC7t"}.lang-lbl[lang=zh]:after{content:"\004E2D\006587"}.lang-lbl-en[lang=ar]:after{content:"Arabic"}.lang-lbl-en[lang=be]:after{content:"Belarusian"}.lang-lbl-en[lang=bg]:after{content:"Bulgarian"}.lang-lbl-en[lang=ca]:after{content:"Catalan"}.lang-lbl-en[lang=cs]:after{content:"Czech"}.lang-lbl-en[lang=da]:after{content:"Danish"}.lang-lbl-en[lang=de]:after{content:"German"}.lang-lbl-en[lang=el]:after{content:"Greek"}.lang-lbl-en[lang=en]:after{content:"English"}.lang-lbl-en[lang=es]:after{content:"Spanish"}.lang-lbl-en[lang=et]:after{content:"Estonian"}.lang-lbl-en[lang=fi]:after{content:"Finnish"}.lang-lbl-en[lang=fr]:after{content:"French"}.lang-lbl-en[lang=ga]:after{content:"Irish"}.lang-lbl-en[lang=hi]:after{content:"Hindi"}.lang-lbl-en[lang=hr]:after{content:"Croatian"}.lang-lbl-en[lang=hu]:after{content:"Hungarian"}.lang-lbl-en[lang=in]:after{content:"Indonesian"}.lang-lbl-en[lang=is]:after{content:"Icelandic"}.lang-lbl-en[lang=it]:after{content:"Italian"}.lang-lbl-en[lang=iw]:after{content:"Hebrew"}.lang-lbl-en[lang=ja]:after{content:"Japanese"}.lang-lbl-en[lang=ko]:after{content:"Korean"}.lang-lbl-en[lang=lt]:after{content:"Lithuanian"}.lang-lbl-en[lang=lv]:after{content:"Latvian"}.lang-lbl-en[lang=mk]:after{content:"Macedonian"}.lang-lbl-en[lang=ms]:after{content:"Malay"}.lang-lbl-en[lang=mt]:after{content:"Maltese"}.lang-lbl-en[lang=nl]:after{content:"Dutch"}.lang-lbl-en[lang=no]:after{content:"Norwegian"}.lang-lbl-en[lang=pl]:after{content:"Polish"}.lang-lbl-en[lang=pt]:after{content:"Portuguese"}.lang-lbl-en[lang=ro]:after{content:"Romanian"}.lang-lbl-en[lang=ru]:after{content:"Russian"}.lang-lbl-en[lang=sk]:after{content:"Slovak"}.lang-lbl-en[lang=sl]:after{content:"Slovenian"}.lang-lbl-en[lang=sq]:after{content:"Albanian"}.lang-lbl-en[lang=sr]:after{content:"Serbian"}.lang-lbl-en[lang=sv]:after{content:"Swedish"}.lang-lbl-en[lang=th]:after{content:"Thai"}.lang-lbl-en[lang=tr]:after{content:"Turkish"}.lang-lbl-en[lang=uk]:after{content:"Ukrainian"}.lang-lbl-en[lang=vi]:after{content:"Vietnamese"}.lang-lbl-en[lang=zh]:after{content:"Chinese"}.lang-lbl-full[lang=ar]:after{content:"\000627\000644\000639\000631\000628\00064A\000629\0000A0/\0000A0Arabic"}.lang-lbl-full[lang=be]:after{content:"\000411\000435\00043B\000430\000440\000443\000441\00043A\000456\0000A0/\0000A0Belarusian"}.lang-lbl-full[lang=bg]:after{content:"\000411\00044A\00043B\000433\000430\000440\000441\00043A\000438\0000A0/\0000A0Bulgarian"}.lang-lbl-full[lang=ca]:after{content:"Catal\0000E0\0000A0/\0000A0Catalan"}.lang-lbl-full[lang=cs]:after{content:"\00010Ce\000161tina\0000A0/\0000A0Czech"}.lang-lbl-full[lang=da]:after{content:"Dansk\0000A0/\0000A0Danish"}.lang-lbl-full[lang=de]:after{content:"Deutsch\0000A0/\0000A0German"}.lang-lbl-full[lang=el]:after{content:"\000395\0003BB\0003BB\0003B7\0003BD\0003B9\0003BA\0003AC\0000A0/\0000A0Greek"}.lang-lbl-full[lang=en]:after{content:"English\0000A0/\0000A0English"}.lang-lbl-full[lang=es]:after{content:"Espa\0000F1ol\0000A0/\0000A0Spanish"}.lang-lbl-full[lang=et]:after{content:"Eesti\0000A0/\0000A0Estonian"}.lang-lbl-full[lang=fi]:after{content:"Suomi\0000A0/\0000A0Finnish"}.lang-lbl-full[lang=fr]:after{content:"Fran\0000E7ais\0000A0/\0000A0French"}.lang-lbl-full[lang=ga]:after{content:"Gaeilge\0000A0/\0000A0Irish"}.lang-lbl-full[lang=hi]:after{content:"\000939\00093F\000902\000926\000940\0000A0/\0000A0Hindi"}.lang-lbl-full[lang=hr]:after{content:"Hrvatski\0000A0/\0000A0Croatian"}.lang-lbl-full[lang=hu]:after{content:"Magyar\0000A0/\0000A0Hungarian"}.lang-lbl-full[lang=in]:after{content:"Bahasa\000020indonesia\0000A0/\0000A0Indonesian"}.lang-lbl-full[lang=is]:after{content:"\0000CDslenska\0000A0/\0000A0Icelandic"}.lang-lbl-full[lang=it]:after{content:"Italiano\0000A0/\0000A0Italian"}.lang-lbl-full[lang=iw]:after{content:"\0005E2\0005D1\0005E8\0005D9\0005EA\0000A0/\0000A0Hebrew"}.lang-lbl-full[lang=ja]:after{content:"\0065E5\00672C\008A9E\0000A0/\0000A0Japanese"}.lang-lbl-full[lang=ko]:after{content:"\00D55C\00AD6D\00C5B4\0000A0/\0000A0Korean"}.lang-lbl-full[lang=lt]:after{content:"Lietuvi\000173\0000A0/\0000A0Lithuanian"}.lang-lbl-full[lang=lv]:after{content:"Latvie\000161u\0000A0/\0000A0Latvian"}.lang-lbl-full[lang=mk]:after{content:"\00041C\000430\00043A\000435\000434\00043E\00043D\000441\00043A\000438\0000A0/\0000A0Macedonian"}.lang-lbl-full[lang=ms]:after{content:"Bahasa\000020melayu\0000A0/\0000A0Malay"}.lang-lbl-full[lang=mt]:after{content:"Malti\0000A0/\0000A0Maltese"}.lang-lbl-full[lang=nl]:after{content:"Nederlands\0000A0/\0000A0Dutch"}.lang-lbl-full[lang=no]:after{content:"Norsk\0000A0/\0000A0Norwegian"}.lang-lbl-full[lang=pl]:after{content:"Polski\0000A0/\0000A0Polish"}.lang-lbl-full[lang=pt]:after{content:"Portugu\0000EAs\0000A0/\0000A0Portuguese"}.lang-lbl-full[lang=ro]:after{content:"Rom\0000E2n\000103\0000A0/\0000A0Romanian"}.lang-lbl-full[lang=ru]:after{content:"\000420\000443\000441\000441\00043A\000438\000439\0000A0/\0000A0Russian"}.lang-lbl-full[lang=sk]:after{content:"Sloven\00010Dina\0000A0/\0000A0Slovak"}.lang-lbl-full[lang=sl]:after{content:"Sloven\000161\00010Dina\0000A0/\0000A0Slovenian"}.lang-lbl-full[lang=sq]:after{content:"Shqipe\0000A0/\0000A0Albanian"}.lang-lbl-full[lang=sr]:after{content:"\000421\000440\00043F\000441\00043A\000438\0000A0/\0000A0Serbian"}.lang-lbl-full[lang=sv]:after{content:"Svenska\0000A0/\0000A0Swedish"}.lang-lbl-full[lang=th]:after{content:"\000E44\000E17\000E22\0000A0/\0000A0Thai"}.lang-lbl-full[lang=tr]:after{content:"T\0000FCrk\0000E7e\0000A0/\0000A0Turkish"}.lang-lbl-full[lang=uk]:after{content:"\000423\00043A\000440\000430\000457\00043D\000441\00044C\00043A\000430\0000A0/\0000A0Ukrainian"}.lang-lbl-full[lang=vi]:after{content:"Ti\001EBFng\000020vi\001EC7t\0000A0/\0000A0Vietnamese"}.lang-lbl-full[lang=zh]:after{content:"\004E2D\006587\0000A0/\0000A0Chinese"}.lang-lg:before,.lang-sm:before,.lang-xs:before{content:'\0000A0'}.lang-xs.lang-lbl,.lang-xs.lang-lbl-en,.lang-xs.lang-lbl-full{padding-left:16px}.lang-sm.lang-lbl,.lang-sm.lang-lbl-en,.lang-sm.lang-lbl-full{padding-left:24px}.lang-lg.lang-lbl,.lang-lg.lang-lbl-en,.lang-lg.lang-lbl-full{padding-left:32px}.lang-lg.lang-lbl-en:before,.lang-lg.lang-lbl-full:before,.lang-lg.lang-lbl:before,.lang-sm.lang-lbl-en:before,.lang-sm.lang-lbl-full:before,.lang-sm.lang-lbl:before,.lang-xs.lang-lbl-en:before,.lang-xs.lang-lbl-full:before,.lang-xs.lang-lbl:before{content:''}.lang-lg,.lang-lg:after{top:0;position:relative}.lang-sm{top:1px}.lang-sm:after{top:-1px}.lang-xs{top:4px}.lang-xs:after{top:-4px}.lead>.lang-lg{top:2px}.lead>.lang-lg:after{top:-2px}.lead>.lang-sm{top:6px}.lead>.lang-sm:after{top:-6px}.lead>.lang-xs{top:8px}.lead>.lang-xs:after{top:-8px}small>.lang-sm{top:-1px}small>.lang-sm:after{top:1px}small>.lang-xs{top:2px}small>.lang-xs:after{top:-2px}h1>.lang-lg{top:9px}h1>.lang-lg:after{top:-9px}h1>.lang-sm{top:12px}h1>.lang-sm:after{top:-12px}h1>.lang-xs{top:14px}h1>.lang-xs:after{top:-14px}h2>.lang-lg{top:5px}h2>.lang-lg:after{top:-5px}h2>.lang-sm{top:8px}h2>.lang-sm:after{top:-8px}h2>.lang-xs{top:10px}h2>.lang-xs:after{top:-10px}h3>.lang-lg{top:1px}h3>.lang-lg:after{top:-1px}h3>.lang-sm{top:5px}h3>.lang-sm:after{top:-5px}h3>.lang-xs{top:8px}h3>.lang-xs:after{top:-8px}h4>.lang-lg{top:-1px}h4>.lang-lg:after,h4>.lang-sm{top:1px}h4>.lang-sm:after{top:-1px}h4>.lang-xs{top:4px}h4>.lang-xs:after{top:-4px}h5>.lang-sm,h5>.lang-sm:after{top:0}h5>.lang-xs{top:2px}h5>.lang-xs:after{top:-2px}h6>.lang-sm,h6>.lang-sm:after{top:0}h6>.lang-xs{top:1px}h6>.lang-xs:after{top:-1px}.btn>.lang-sm{top:2px}.btn>.lang-sm:after{top:-2px}.btn>.lang-xs{top:4px}.btn>.lang-xs:after{top:-4px}.btn.btn-xs>.lang-sm,.btn.btn-xs>.lang-sm:after{top:0}.btn.btn-xs>.lang-xs{top:3px}.btn.btn-xs>.lang-xs:after{top:-3px}.btn.btn-sm>.lang-sm,.btn.btn-sm>.lang-sm:after{top:0}.btn.btn-sm>.lang-xs{top:3px}.btn.btn-sm>.lang-xs:after{top:-3px}.btn.btn-lg>.lang-lg{top:1px}.btn.btn-lg>.lang-lg:after{top:-1px}.btn.btn-lg>.lang-sm{top:3px}.btn.btn-lg>.lang-sm:after{top:-3px}.btn.btn-lg>.lang-xs{top:6px}.btn.btn-lg>.lang-xs:after{top:-6px}
\ No newline at end of file
+.flag-icon-background{background-size:contain;background-position:50%;background-repeat:no-repeat}.flag-icon{background-size:contain;background-position:50%;background-repeat:no-repeat;position:relative;display:inline-block;width:1.33333333em;line-height:1em}.flag-icon:before{content:'\00a0'}.flag-icon.flag-icon-squared{width:1em}.flag-icon-ad{background-image:url(../flags/4x3/ad.svg)}.flag-icon-ad.flag-icon-squared{background-image:url(../flags/1x1/ad.svg)}.flag-icon-ae{background-image:url(../flags/4x3/ae.svg)}.flag-icon-ae.flag-icon-squared{background-image:url(../flags/1x1/ae.svg)}.flag-icon-af{background-image:url(../flags/4x3/af.svg)}.flag-icon-af.flag-icon-squared{background-image:url(../flags/1x1/af.svg)}.flag-icon-ag{background-image:url(../flags/4x3/ag.svg)}.flag-icon-ag.flag-icon-squared{background-image:url(../flags/1x1/ag.svg)}.flag-icon-ai{background-image:url(../flags/4x3/ai.svg)}.flag-icon-ai.flag-icon-squared{background-image:url(../flags/1x1/ai.svg)}.flag-icon-al{background-image:url(../flags/4x3/al.svg)}.flag-icon-al.flag-icon-squared{background-image:url(../flags/1x1/al.svg)}.flag-icon-am{background-image:url(../flags/4x3/am.svg)}.flag-icon-am.flag-icon-squared{background-image:url(../flags/1x1/am.svg)}.flag-icon-ao{background-image:url(../flags/4x3/ao.svg)}.flag-icon-ao.flag-icon-squared{background-image:url(../flags/1x1/ao.svg)}.flag-icon-aq{background-image:url(../flags/4x3/aq.svg)}.flag-icon-aq.flag-icon-squared{background-image:url(../flags/1x1/aq.svg)}.flag-icon-ar{background-image:url(../flags/4x3/ar.svg)}.flag-icon-ar.flag-icon-squared{background-image:url(../flags/1x1/ar.svg)}.flag-icon-as{background-image:url(../flags/4x3/as.svg)}.flag-icon-as.flag-icon-squared{background-image:url(../flags/1x1/as.svg)}.flag-icon-at{background-image:url(../flags/4x3/at.svg)}.flag-icon-at.flag-icon-squared{background-image:url(../flags/1x1/at.svg)}.flag-icon-au{background-image:url(../flags/4x3/au.svg)}.flag-icon-au.flag-icon-squared{background-image:url(../flags/1x1/au.svg)}.flag-icon-aw{background-image:url(../flags/4x3/aw.svg)}.flag-icon-aw.flag-icon-squared{background-image:url(../flags/1x1/aw.svg)}.flag-icon-ax{background-image:url(../flags/4x3/ax.svg)}.flag-icon-ax.flag-icon-squared{background-image:url(../flags/1x1/ax.svg)}.flag-icon-az{background-image:url(../flags/4x3/az.svg)}.flag-icon-az.flag-icon-squared{background-image:url(../flags/1x1/az.svg)}.flag-icon-ba{background-image:url(../flags/4x3/ba.svg)}.flag-icon-ba.flag-icon-squared{background-image:url(../flags/1x1/ba.svg)}.flag-icon-bb{background-image:url(../flags/4x3/bb.svg)}.flag-icon-bb.flag-icon-squared{background-image:url(../flags/1x1/bb.svg)}.flag-icon-bd{background-image:url(../flags/4x3/bd.svg)}.flag-icon-bd.flag-icon-squared{background-image:url(../flags/1x1/bd.svg)}.flag-icon-be{background-image:url(../flags/4x3/be.svg)}.flag-icon-be.flag-icon-squared{background-image:url(../flags/1x1/be.svg)}.flag-icon-bf{background-image:url(../flags/4x3/bf.svg)}.flag-icon-bf.flag-icon-squared{background-image:url(../flags/1x1/bf.svg)}.flag-icon-bg{background-image:url(../flags/4x3/bg.svg)}.flag-icon-bg.flag-icon-squared{background-image:url(../flags/1x1/bg.svg)}.flag-icon-bh{background-image:url(../flags/4x3/bh.svg)}.flag-icon-bh.flag-icon-squared{background-image:url(../flags/1x1/bh.svg)}.flag-icon-bi{background-image:url(../flags/4x3/bi.svg)}.flag-icon-bi.flag-icon-squared{background-image:url(../flags/1x1/bi.svg)}.flag-icon-bj{background-image:url(../flags/4x3/bj.svg)}.flag-icon-bj.flag-icon-squared{background-image:url(../flags/1x1/bj.svg)}.flag-icon-bl{background-image:url(../flags/4x3/bl.svg)}.flag-icon-bl.flag-icon-squared{background-image:url(../flags/1x1/bl.svg)}.flag-icon-bm{background-image:url(../flags/4x3/bm.svg)}.flag-icon-bm.flag-icon-squared{background-image:url(../flags/1x1/bm.svg)}.flag-icon-bn{background-image:url(../flags/4x3/bn.svg)}.flag-icon-bn.flag-icon-squared{background-image:url(../flags/1x1/bn.svg)}.flag-icon-bo{background-image:url(../flags/4x3/bo.svg)}.flag-icon-bo.flag-icon-squared{background-image:url(../flags/1x1/bo.svg)}.flag-icon-bq{background-image:url(../flags/4x3/bq.svg)}.flag-icon-bq.flag-icon-squared{background-image:url(../flags/1x1/bq.svg)}.flag-icon-br{background-image:url(../flags/4x3/br.svg)}.flag-icon-br.flag-icon-squared{background-image:url(../flags/1x1/br.svg)}.flag-icon-bs{background-image:url(../flags/4x3/bs.svg)}.flag-icon-bs.flag-icon-squared{background-image:url(../flags/1x1/bs.svg)}.flag-icon-bt{background-image:url(../flags/4x3/bt.svg)}.flag-icon-bt.flag-icon-squared{background-image:url(../flags/1x1/bt.svg)}.flag-icon-bv{background-image:url(../flags/4x3/bv.svg)}.flag-icon-bv.flag-icon-squared{background-image:url(../flags/1x1/bv.svg)}.flag-icon-bw{background-image:url(../flags/4x3/bw.svg)}.flag-icon-bw.flag-icon-squared{background-image:url(../flags/1x1/bw.svg)}.flag-icon-by{background-image:url(../flags/4x3/by.svg)}.flag-icon-by.flag-icon-squared{background-image:url(../flags/1x1/by.svg)}.flag-icon-bz{background-image:url(../flags/4x3/bz.svg)}.flag-icon-bz.flag-icon-squared{background-image:url(../flags/1x1/bz.svg)}.flag-icon-ca{background-image:url(../flags/4x3/ca.svg)}.flag-icon-ca.flag-icon-squared{background-image:url(../flags/1x1/ca.svg)}.flag-icon-cc{background-image:url(../flags/4x3/cc.svg)}.flag-icon-cc.flag-icon-squared{background-image:url(../flags/1x1/cc.svg)}.flag-icon-cd{background-image:url(../flags/4x3/cd.svg)}.flag-icon-cd.flag-icon-squared{background-image:url(../flags/1x1/cd.svg)}.flag-icon-cf{background-image:url(../flags/4x3/cf.svg)}.flag-icon-cf.flag-icon-squared{background-image:url(../flags/1x1/cf.svg)}.flag-icon-cg{background-image:url(../flags/4x3/cg.svg)}.flag-icon-cg.flag-icon-squared{background-image:url(../flags/1x1/cg.svg)}.flag-icon-ch{background-image:url(../flags/4x3/ch.svg)}.flag-icon-ch.flag-icon-squared{background-image:url(../flags/1x1/ch.svg)}.flag-icon-ci{background-image:url(../flags/4x3/ci.svg)}.flag-icon-ci.flag-icon-squared{background-image:url(../flags/1x1/ci.svg)}.flag-icon-ck{background-image:url(../flags/4x3/ck.svg)}.flag-icon-ck.flag-icon-squared{background-image:url(../flags/1x1/ck.svg)}.flag-icon-cl{background-image:url(../flags/4x3/cl.svg)}.flag-icon-cl.flag-icon-squared{background-image:url(../flags/1x1/cl.svg)}.flag-icon-cm{background-image:url(../flags/4x3/cm.svg)}.flag-icon-cm.flag-icon-squared{background-image:url(../flags/1x1/cm.svg)}.flag-icon-zh{background-image:url(../flags/4x3/zh.svg)}.flag-iconzh.flag-icon-squared{background-image:url(../flags/1x1/zh.svg)}.flag-icon-cn{background-image:url(../flags/4x3/cn.svg)}.flag-icon-cn.flag-icon-squared{background-image:url(../flags/1x1/cn.svg)}.flag-icon-co{background-image:url(../flags/4x3/co.svg)}.flag-icon-co.flag-icon-squared{background-image:url(../flags/1x1/co.svg)}.flag-icon-cr{background-image:url(../flags/4x3/cr.svg)}.flag-icon-cr.flag-icon-squared{background-image:url(../flags/1x1/cr.svg)}.flag-icon-cu{background-image:url(../flags/4x3/cu.svg)}.flag-icon-cu.flag-icon-squared{background-image:url(../flags/1x1/cu.svg)}.flag-icon-cv{background-image:url(../flags/4x3/cv.svg)}.flag-icon-cv.flag-icon-squared{background-image:url(../flags/1x1/cv.svg)}.flag-icon-cw{background-image:url(../flags/4x3/cw.svg)}.flag-icon-cw.flag-icon-squared{background-image:url(../flags/1x1/cw.svg)}.flag-icon-cx{background-image:url(../flags/4x3/cx.svg)}.flag-icon-cx.flag-icon-squared{background-image:url(../flags/1x1/cx.svg)}.flag-icon-cy{background-image:url(../flags/4x3/cy.svg)}.flag-icon-cy.flag-icon-squared{background-image:url(../flags/1x1/cy.svg)}.flag-icon-cz{background-image:url(../flags/4x3/cz.svg)}.flag-icon-cz.flag-icon-squared{background-image:url(../flags/1x1/cz.svg)}.flag-icon-cs{background-image:url(../flags/4x3/cs.svg)}.flag-icon-cs.flag-icon-squared{background-image:url(../flags/1x1/cs.svg)}.flag-icon-de{background-image:url(../flags/4x3/de.svg)}.flag-icon-de.flag-icon-squared{background-image:url(../flags/1x1/de.svg)}.flag-icon-dj{background-image:url(../flags/4x3/dj.svg)}.flag-icon-dj.flag-icon-squared{background-image:url(../flags/1x1/dj.svg)}.flag-icon-da{background-image:url(../flags/4x3/da.svg)}.flag-icon-da.flag-icon-squared{background-image:url(../flags/1x1/d.svg)}.flag-icon-dk{background-image:url(../flags/4x3/dk.svg)}.flag-icon-dk.flag-icon-squared{background-image:url(../flags/1x1/dk.svg)}.flag-icon-dm{background-image:url(../flags/4x3/dm.svg)}.flag-icon-dm.flag-icon-squared{background-image:url(../flags/1x1/dm.svg)}.flag-icon-do{background-image:url(../flags/4x3/do.svg)}.flag-icon-do.flag-icon-squared{background-image:url(../flags/1x1/do.svg)}.flag-icon-dz{background-image:url(../flags/4x3/dz.svg)}.flag-icon-dz.flag-icon-squared{background-image:url(../flags/1x1/dz.svg)}.flag-icon-ec{background-image:url(../flags/4x3/ec.svg)}.flag-icon-ec.flag-icon-squared{background-image:url(../flags/1x1/ec.svg)}.flag-icon-ee{background-image:url(../flags/4x3/ee.svg)}.flag-icon-ee.flag-icon-squared{background-image:url(../flags/1x1/ee.svg)}.flag-icon-eg{background-image:url(../flags/4x3/eg.svg)}.flag-icon-eg.flag-icon-squared{background-image:url(../flags/1x1/eg.svg)}.flag-icon-eh{background-image:url(../flags/4x3/eh.svg)}.flag-icon-eh.flag-icon-squared{background-image:url(../flags/1x1/eh.svg)}.flag-icon-er{background-image:url(../flags/4x3/er.svg)}.flag-icon-er.flag-icon-squared{background-image:url(../flags/1x1/er.svg)}.flag-icon-es{background-image:url(../flags/4x3/es.svg)}.flag-icon-es.flag-icon-squared{background-image:url(../flags/1x1/es.svg)}.flag-icon-et{background-image:url(../flags/4x3/et.svg)}.flag-icon-et.flag-icon-squared{background-image:url(../flags/1x1/et.svg)}.flag-icon-fi{background-image:url(../flags/4x3/fi.svg)}.flag-icon-fi.flag-icon-squared{background-image:url(../flags/1x1/fi.svg)}.flag-icon-fj{background-image:url(../flags/4x3/fj.svg)}.flag-icon-fj.flag-icon-squared{background-image:url(../flags/1x1/fj.svg)}.flag-icon-fk{background-image:url(../flags/4x3/fk.svg)}.flag-icon-fk.flag-icon-squared{background-image:url(../flags/1x1/fk.svg)}.flag-icon-fm{background-image:url(../flags/4x3/fm.svg)}.flag-icon-fm.flag-icon-squared{background-image:url(../flags/1x1/fm.svg)}.flag-icon-fo{background-image:url(../flags/4x3/fo.svg)}.flag-icon-fo.flag-icon-squared{background-image:url(../flags/1x1/fo.svg)}.flag-icon-fr{background-image:url(../flags/4x3/fr.svg)}.flag-icon-fr.flag-icon-squared{background-image:url(../flags/1x1/fr.svg)}.flag-icon-ga{background-image:url(../flags/4x3/ga.svg)}.flag-icon-ga.flag-icon-squared{background-image:url(../flags/1x1/ga.svg)}.flag-icon-en{background-image:url(../flags/4x3/en.svg)}.flag-icon-en.flag-icon-squared{background-image:url(../flags/1x1/en.svg)}.flag-icon-gd{background-image:url(../flags/4x3/gd.svg)}.flag-icon-gd.flag-icon-squared{background-image:url(../flags/1x1/gd.svg)}.flag-icon-ge{background-image:url(../flags/4x3/ge.svg)}.flag-icon-ge.flag-icon-squared{background-image:url(../flags/1x1/ge.svg)}.flag-icon-gf{background-image:url(../flags/4x3/gf.svg)}.flag-icon-gf.flag-icon-squared{background-image:url(../flags/1x1/gf.svg)}.flag-icon-gg{background-image:url(../flags/4x3/gg.svg)}.flag-icon-gg.flag-icon-squared{background-image:url(../flags/1x1/gg.svg)}.flag-icon-gh{background-image:url(../flags/4x3/gh.svg)}.flag-icon-gh.flag-icon-squared{background-image:url(../flags/1x1/gh.svg)}.flag-icon-gi{background-image:url(../flags/4x3/gi.svg)}.flag-icon-gi.flag-icon-squared{background-image:url(../flags/1x1/gi.svg)}.flag-icon-gl{background-image:url(../flags/4x3/gl.svg)}.flag-icon-gl.flag-icon-squared{background-image:url(../flags/1x1/gl.svg)}.flag-icon-gm{background-image:url(../flags/4x3/gm.svg)}.flag-icon-gm.flag-icon-squared{background-image:url(../flags/1x1/gm.svg)}.flag-icon-gn{background-image:url(../flags/4x3/gn.svg)}.flag-icon-gn.flag-icon-squared{background-image:url(../flags/1x1/gn.svg)}.flag-icon-gp{background-image:url(../flags/4x3/gp.svg)}.flag-icon-gp.flag-icon-squared{background-image:url(../flags/1x1/gp.svg)}.flag-icon-gq{background-image:url(../flags/4x3/gq.svg)}.flag-icon-gq.flag-icon-squared{background-image:url(../flags/1x1/gq.svg)}.flag-icon-gr{background-image:url(../flags/4x3/gr.svg)}.flag-icon-gr.flag-icon-squared{background-image:url(../flags/1x1/gr.svg)}.flag-icon-gs{background-image:url(../flags/4x3/gs.svg)}.flag-icon-gs.flag-icon-squared{background-image:url(../flags/1x1/gs.svg)}.flag-icon-gt{background-image:url(../flags/4x3/gt.svg)}.flag-icon-gt.flag-icon-squared{background-image:url(../flags/1x1/gt.svg)}.flag-icon-gu{background-image:url(../flags/4x3/gu.svg)}.flag-icon-gu.flag-icon-squared{background-image:url(../flags/1x1/gu.svg)}.flag-icon-gw{background-image:url(../flags/4x3/gw.svg)}.flag-icon-gw.flag-icon-squared{background-image:url(../flags/1x1/gw.svg)}.flag-icon-gy{background-image:url(../flags/4x3/gy.svg)}.flag-icon-gy.flag-icon-squared{background-image:url(../flags/1x1/gy.svg)}.flag-icon-hk{background-image:url(../flags/4x3/hk.svg)}.flag-icon-hk.flag-icon-squared{background-image:url(../flags/1x1/hk.svg)}.flag-icon-hm{background-image:url(../flags/4x3/hm.svg)}.flag-icon-hm.flag-icon-squared{background-image:url(../flags/1x1/hm.svg)}.flag-icon-hn{background-image:url(../flags/4x3/hn.svg)}.flag-icon-hn.flag-icon-squared{background-image:url(../flags/1x1/hn.svg)}.flag-icon-hr{background-image:url(../flags/4x3/hr.svg)}.flag-icon-hr.flag-icon-squared{background-image:url(../flags/1x1/hr.svg)}.flag-icon-ht{background-image:url(../flags/4x3/ht.svg)}.flag-icon-ht.flag-icon-squared{background-image:url(../flags/1x1/ht.svg)}.flag-icon-hu{background-image:url(../flags/4x3/hu.svg)}.flag-icon-hu.flag-icon-squared{background-image:url(../flags/1x1/hu.svg)}.flag-icon-id{background-image:url(../flags/4x3/id.svg)}.flag-icon-id.flag-icon-squared{background-image:url(../flags/1x1/id.svg)}.flag-icon-ie{background-image:url(../flags/4x3/ie.svg)}.flag-icon-ie.flag-icon-squared{background-image:url(../flags/1x1/ie.svg)}.flag-icon-il{background-image:url(../flags/4x3/il.svg)}.flag-icon-il.flag-icon-squared{background-image:url(../flags/1x1/il.svg)}.flag-icon-im{background-image:url(../flags/4x3/im.svg)}.flag-icon-im.flag-icon-squared{background-image:url(../flags/1x1/im.svg)}.flag-icon-in{background-image:url(../flags/4x3/in.svg)}.flag-icon-in.flag-icon-squared{background-image:url(../flags/1x1/in.svg)}.flag-icon-io{background-image:url(../flags/4x3/io.svg)}.flag-icon-io.flag-icon-squared{background-image:url(../flags/1x1/io.svg)}.flag-icon-iq{background-image:url(../flags/4x3/iq.svg)}.flag-icon-iq.flag-icon-squared{background-image:url(../flags/1x1/iq.svg)}.flag-icon-ir{background-image:url(../flags/4x3/ir.svg)}.flag-icon-ir.flag-icon-squared{background-image:url(../flags/1x1/ir.svg)}.flag-icon-is{background-image:url(../flags/4x3/is.svg)}.flag-icon-is.flag-icon-squared{background-image:url(../flags/1x1/is.svg)}.flag-icon-it{background-image:url(../flags/4x3/it.svg)}.flag-icon-it.flag-icon-squared{background-image:url(../flags/1x1/it.svg)}.flag-icon-je{background-image:url(../flags/4x3/je.svg)}.flag-icon-je.flag-icon-squared{background-image:url(../flags/1x1/je.svg)}.flag-icon-jm{background-image:url(../flags/4x3/jm.svg)}.flag-icon-jm.flag-icon-squared{background-image:url(../flags/1x1/jm.svg)}.flag-icon-jo{background-image:url(../flags/4x3/jo.svg)}.flag-icon-jo.flag-icon-squared{background-image:url(../flags/1x1/jo.svg)}.flag-icon-jp{background-image:url(../flags/4x3/jp.svg)}.flag-icon-jp.flag-icon-squared{background-image:url(../flags/1x1/jp.svg)}.flag-icon-ke{background-image:url(../flags/4x3/ke.svg)}.flag-icon-ke.flag-icon-squared{background-image:url(../flags/1x1/ke.svg)}.flag-icon-kg{background-image:url(../flags/4x3/kg.svg)}.flag-icon-kg.flag-icon-squared{background-image:url(../flags/1x1/kg.svg)}.flag-icon-kh{background-image:url(../flags/4x3/kh.svg)}.flag-icon-kh.flag-icon-squared{background-image:url(../flags/1x1/kh.svg)}.flag-icon-ki{background-image:url(../flags/4x3/ki.svg)}.flag-icon-ki.flag-icon-squared{background-image:url(../flags/1x1/ki.svg)}.flag-icon-km{background-image:url(../flags/4x3/km.svg)}.flag-icon-km.flag-icon-squared{background-image:url(../flags/1x1/km.svg)}.flag-icon-kn{background-image:url(../flags/4x3/kn.svg)}.flag-icon-kn.flag-icon-squared{background-image:url(../flags/1x1/kn.svg)}.flag-icon-kp{background-image:url(../flags/4x3/kp.svg)}.flag-icon-kp.flag-icon-squared{background-image:url(../flags/1x1/kp.svg)}.flag-icon-ko{background-image:url(../flags/4x3/ko.svg)}.flag-icon-ko.flag-icon-squared{background-image:url(../flags/1x1/ko.svg)}.flag-icon-kr{background-image:url(../flags/4x3/kr.svg)}.flag-icon-kr.flag-icon-squared{background-image:url(../flags/1x1/kr.svg)}.flag-icon-kw{background-image:url(../flags/4x3/kw.svg)}.flag-icon-kw.flag-icon-squared{background-image:url(../flags/1x1/kw.svg)}.flag-icon-ky{background-image:url(../flags/4x3/ky.svg)}.flag-icon-ky.flag-icon-squared{background-image:url(../flags/1x1/ky.svg)}.flag-icon-kz{background-image:url(../flags/4x3/kz.svg)}.flag-icon-kz.flag-icon-squared{background-image:url(../flags/1x1/kz.svg)}.flag-icon-la{background-image:url(../flags/4x3/la.svg)}.flag-icon-la.flag-icon-squared{background-image:url(../flags/1x1/la.svg)}.flag-icon-lb{background-image:url(../flags/4x3/lb.svg)}.flag-icon-lb.flag-icon-squared{background-image:url(../flags/1x1/lb.svg)}.flag-icon-lc{background-image:url(../flags/4x3/lc.svg)}.flag-icon-lc.flag-icon-squared{background-image:url(../flags/1x1/lc.svg)}.flag-icon-li{background-image:url(../flags/4x3/li.svg)}.flag-icon-li.flag-icon-squared{background-image:url(../flags/1x1/li.svg)}.flag-icon-lk{background-image:url(../flags/4x3/lk.svg)}.flag-icon-lk.flag-icon-squared{background-image:url(../flags/1x1/lk.svg)}.flag-icon-lr{background-image:url(../flags/4x3/lr.svg)}.flag-icon-lr.flag-icon-squared{background-image:url(../flags/1x1/lr.svg)}.flag-icon-ls{background-image:url(../flags/4x3/ls.svg)}.flag-icon-ls.flag-icon-squared{background-image:url(../flags/1x1/ls.svg)}.flag-icon-lt{background-image:url(../flags/4x3/lt.svg)}.flag-icon-lt.flag-icon-squared{background-image:url(../flags/1x1/lt.svg)}.flag-icon-lu{background-image:url(../flags/4x3/lu.svg)}.flag-icon-lu.flag-icon-squared{background-image:url(../flags/1x1/lu.svg)}.flag-icon-lv{background-image:url(../flags/4x3/lv.svg)}.flag-icon-lv.flag-icon-squared{background-image:url(../flags/1x1/lv.svg)}.flag-icon-ly{background-image:url(../flags/4x3/ly.svg)}.flag-icon-ly.flag-icon-squared{background-image:url(../flags/1x1/ly.svg)}.flag-icon-ma{background-image:url(../flags/4x3/ma.svg)}.flag-icon-ma.flag-icon-squared{background-image:url(../flags/1x1/ma.svg)}.flag-icon-mc{background-image:url(../flags/4x3/mc.svg)}.flag-icon-mc.flag-icon-squared{background-image:url(../flags/1x1/mc.svg)}.flag-icon-md{background-image:url(../flags/4x3/md.svg)}.flag-icon-md.flag-icon-squared{background-image:url(../flags/1x1/md.svg)}.flag-icon-me{background-image:url(../flags/4x3/me.svg)}.flag-icon-me.flag-icon-squared{background-image:url(../flags/1x1/me.svg)}.flag-icon-mf{background-image:url(../flags/4x3/mf.svg)}.flag-icon-mf.flag-icon-squared{background-image:url(../flags/1x1/mf.svg)}.flag-icon-mg{background-image:url(../flags/4x3/mg.svg)}.flag-icon-mg.flag-icon-squared{background-image:url(../flags/1x1/mg.svg)}.flag-icon-mh{background-image:url(../flags/4x3/mh.svg)}.flag-icon-mh.flag-icon-squared{background-image:url(../flags/1x1/mh.svg)}.flag-icon-mk{background-image:url(../flags/4x3/mk.svg)}.flag-icon-mk.flag-icon-squared{background-image:url(../flags/1x1/mk.svg)}.flag-icon-ml{background-image:url(../flags/4x3/ml.svg)}.flag-icon-ml.flag-icon-squared{background-image:url(../flags/1x1/ml.svg)}.flag-icon-mm{background-image:url(../flags/4x3/mm.svg)}.flag-icon-mm.flag-icon-squared{background-image:url(../flags/1x1/mm.svg)}.flag-icon-mn{background-image:url(../flags/4x3/mn.svg)}.flag-icon-mn.flag-icon-squared{background-image:url(../flags/1x1/mn.svg)}.flag-icon-mo{background-image:url(../flags/4x3/mo.svg)}.flag-icon-mo.flag-icon-squared{background-image:url(../flags/1x1/mo.svg)}.flag-icon-mp{background-image:url(../flags/4x3/mp.svg)}.flag-icon-mp.flag-icon-squared{background-image:url(../flags/1x1/mp.svg)}.flag-icon-mq{background-image:url(../flags/4x3/mq.svg)}.flag-icon-mq.flag-icon-squared{background-image:url(../flags/1x1/mq.svg)}.flag-icon-mr{background-image:url(../flags/4x3/mr.svg)}.flag-icon-mr.flag-icon-squared{background-image:url(../flags/1x1/mr.svg)}.flag-icon-ms{background-image:url(../flags/4x3/ms.svg)}.flag-icon-ms.flag-icon-squared{background-image:url(../flags/1x1/ms.svg)}.flag-icon-mt{background-image:url(../flags/4x3/mt.svg)}.flag-icon-mt.flag-icon-squared{background-image:url(../flags/1x1/mt.svg)}.flag-icon-mu{background-image:url(../flags/4x3/mu.svg)}.flag-icon-mu.flag-icon-squared{background-image:url(../flags/1x1/mu.svg)}.flag-icon-mv{background-image:url(../flags/4x3/mv.svg)}.flag-icon-mv.flag-icon-squared{background-image:url(../flags/1x1/mv.svg)}.flag-icon-mw{background-image:url(../flags/4x3/mw.svg)}.flag-icon-mw.flag-icon-squared{background-image:url(../flags/1x1/mw.svg)}.flag-icon-mx{background-image:url(../flags/4x3/mx.svg)}.flag-icon-mx.flag-icon-squared{background-image:url(../flags/1x1/mx.svg)}.flag-icon-my{background-image:url(../flags/4x3/my.svg)}.flag-icon-my.flag-icon-squared{background-image:url(../flags/1x1/my.svg)}.flag-icon-mz{background-image:url(../flags/4x3/mz.svg)}.flag-icon-mz.flag-icon-squared{background-image:url(../flags/1x1/mz.svg)}.flag-icon-na{background-image:url(../flags/4x3/na.svg)}.flag-icon-na.flag-icon-squared{background-image:url(../flags/1x1/na.svg)}.flag-icon-nc{background-image:url(../flags/4x3/nc.svg)}.flag-icon-nc.flag-icon-squared{background-image:url(../flags/1x1/nc.svg)}.flag-icon-ne{background-image:url(../flags/4x3/ne.svg)}.flag-icon-ne.flag-icon-squared{background-image:url(../flags/1x1/ne.svg)}.flag-icon-nf{background-image:url(../flags/4x3/nf.svg)}.flag-icon-nf.flag-icon-squared{background-image:url(../flags/1x1/nf.svg)}.flag-icon-ng{background-image:url(../flags/4x3/ng.svg)}.flag-icon-ng.flag-icon-squared{background-image:url(../flags/1x1/ng.svg)}.flag-icon-ni{background-image:url(../flags/4x3/ni.svg)}.flag-icon-ni.flag-icon-squared{background-image:url(../flags/1x1/ni.svg)}.flag-icon-nl{background-image:url(../flags/4x3/nl.svg)}.flag-icon-nl.flag-icon-squared{background-image:url(../flags/1x1/nl.svg)}.flag-icon-no{background-image:url(../flags/4x3/no.svg)}.flag-icon-no.flag-icon-squared{background-image:url(../flags/1x1/no.svg)}.flag-icon-np{background-image:url(../flags/4x3/np.svg)}.flag-icon-np.flag-icon-squared{background-image:url(../flags/1x1/np.svg)}.flag-icon-nr{background-image:url(../flags/4x3/nr.svg)}.flag-icon-nr.flag-icon-squared{background-image:url(../flags/1x1/nr.svg)}.flag-icon-nu{background-image:url(../flags/4x3/nu.svg)}.flag-icon-nu.flag-icon-squared{background-image:url(../flags/1x1/nu.svg)}.flag-icon-nz{background-image:url(../flags/4x3/nz.svg)}.flag-icon-nz.flag-icon-squared{background-image:url(../flags/1x1/nz.svg)}.flag-icon-om{background-image:url(../flags/4x3/om.svg)}.flag-icon-om.flag-icon-squared{background-image:url(../flags/1x1/om.svg)}.flag-icon-pa{background-image:url(../flags/4x3/pa.svg)}.flag-icon-pa.flag-icon-squared{background-image:url(../flags/1x1/pa.svg)}.flag-icon-pe{background-image:url(../flags/4x3/pe.svg)}.flag-icon-pe.flag-icon-squared{background-image:url(../flags/1x1/pe.svg)}.flag-icon-pf{background-image:url(../flags/4x3/pf.svg)}.flag-icon-pf.flag-icon-squared{background-image:url(../flags/1x1/pf.svg)}.flag-icon-pg{background-image:url(../flags/4x3/pg.svg)}.flag-icon-pg.flag-icon-squared{background-image:url(../flags/1x1/pg.svg)}.flag-icon-ph{background-image:url(../flags/4x3/ph.svg)}.flag-icon-ph.flag-icon-squared{background-image:url(../flags/1x1/ph.svg)}.flag-icon-pk{background-image:url(../flags/4x3/pk.svg)}.flag-icon-pk.flag-icon-squared{background-image:url(../flags/1x1/pk.svg)}.flag-icon-pl{background-image:url(../flags/4x3/pl.svg)}.flag-icon-pl.flag-icon-squared{background-image:url(../flags/1x1/pl.svg)}.flag-icon-pm{background-image:url(../flags/4x3/pm.svg)}.flag-icon-pm.flag-icon-squared{background-image:url(../flags/1x1/pm.svg)}.flag-icon-pn{background-image:url(../flags/4x3/pn.svg)}.flag-icon-pn.flag-icon-squared{background-image:url(../flags/1x1/pn.svg)}.flag-icon-pr{background-image:url(../flags/4x3/pr.svg)}.flag-icon-pr.flag-icon-squared{background-image:url(../flags/1x1/pr.svg)}.flag-icon-ps{background-image:url(../flags/4x3/ps.svg)}.flag-icon-ps.flag-icon-squared{background-image:url(../flags/1x1/ps.svg)}.flag-icon-pt{background-image:url(../flags/4x3/pt.svg)}.flag-icon-pt.flag-icon-squared{background-image:url(../flags/1x1/pt.svg)}.flag-icon-pw{background-image:url(../flags/4x3/pw.svg)}.flag-icon-pw.flag-icon-squared{background-image:url(../flags/1x1/pw.svg)}.flag-icon-py{background-image:url(../flags/4x3/py.svg)}.flag-icon-py.flag-icon-squared{background-image:url(../flags/1x1/py.svg)}.flag-icon-qa{background-image:url(../flags/4x3/qa.svg)}.flag-icon-qa.flag-icon-squared{background-image:url(../flags/1x1/qa.svg)}.flag-icon-re{background-image:url(../flags/4x3/re.svg)}.flag-icon-re.flag-icon-squared{background-image:url(../flags/1x1/re.svg)}.flag-icon-ro{background-image:url(../flags/4x3/ro.svg)}.flag-icon-ro.flag-icon-squared{background-image:url(../flags/1x1/ro.svg)}.flag-icon-rs{background-image:url(../flags/4x3/rs.svg)}.flag-icon-rs.flag-icon-squared{background-image:url(../flags/1x1/rs.svg)}.flag-icon-ru{background-image:url(../flags/4x3/ru.svg)}.flag-icon-ru.flag-icon-squared{background-image:url(../flags/1x1/ru.svg)}.flag-icon-rw{background-image:url(../flags/4x3/rw.svg)}.flag-icon-rw.flag-icon-squared{background-image:url(../flags/1x1/rw.svg)}.flag-icon-sa{background-image:url(../flags/4x3/sa.svg)}.flag-icon-sa.flag-icon-squared{background-image:url(../flags/1x1/sa.svg)}.flag-icon-sb{background-image:url(../flags/4x3/sb.svg)}.flag-icon-sb.flag-icon-squared{background-image:url(../flags/1x1/sb.svg)}.flag-icon-sc{background-image:url(../flags/4x3/sc.svg)}.flag-icon-sc.flag-icon-squared{background-image:url(../flags/1x1/sc.svg)}.flag-icon-sd{background-image:url(../flags/4x3/sd.svg)}.flag-icon-sd.flag-icon-squared{background-image:url(../flags/1x1/sd.svg)}.flag-icon-se{background-image:url(../flags/4x3/se.svg)}.flag-icon-se.flag-icon-squared{background-image:url(../flags/1x1/se.svg)}.flag-icon-sg{background-image:url(../flags/4x3/sg.svg)}.flag-icon-sg.flag-icon-squared{background-image:url(../flags/1x1/sg.svg)}.flag-icon-sh{background-image:url(../flags/4x3/sh.svg)}.flag-icon-sh.flag-icon-squared{background-image:url(../flags/1x1/sh.svg)}.flag-icon-si{background-image:url(../flags/4x3/si.svg)}.flag-icon-si.flag-icon-squared{background-image:url(../flags/1x1/si.svg)}.flag-icon-sj{background-image:url(../flags/4x3/sj.svg)}.flag-icon-sj.flag-icon-squared{background-image:url(../flags/1x1/sj.svg)}.flag-icon-sk{background-image:url(../flags/4x3/sk.svg)}.flag-icon-sk.flag-icon-squared{background-image:url(../flags/1x1/sk.svg)}.flag-icon-sl{background-image:url(../flags/4x3/sl.svg)}.flag-icon-sl.flag-icon-squared{background-image:url(../flags/1x1/sl.svg)}.flag-icon-sm{background-image:url(../flags/4x3/sm.svg)}.flag-icon-sm.flag-icon-squared{background-image:url(../flags/1x1/sm.svg)}.flag-icon-sn{background-image:url(../flags/4x3/sn.svg)}.flag-icon-sn.flag-icon-squared{background-image:url(../flags/1x1/sn.svg)}.flag-icon-so{background-image:url(../flags/4x3/so.svg)}.flag-icon-so.flag-icon-squared{background-image:url(../flags/1x1/so.svg)}.flag-icon-sr{background-image:url(../flags/4x3/sr.svg)}.flag-icon-sr.flag-icon-squared{background-image:url(../flags/1x1/sr.svg)}.flag-icon-ss{background-image:url(../flags/4x3/ss.svg)}.flag-icon-ss.flag-icon-squared{background-image:url(../flags/1x1/ss.svg)}.flag-icon-st{background-image:url(../flags/4x3/st.svg)}.flag-icon-st.flag-icon-squared{background-image:url(../flags/1x1/st.svg)}.flag-icon-sv{background-image:url(../flags/4x3/sv.svg)}.flag-icon-sv.flag-icon-squared{background-image:url(../flags/1x1/sv.svg)}.flag-icon-sx{background-image:url(../flags/4x3/sx.svg)}.flag-icon-sx.flag-icon-squared{background-image:url(../flags/1x1/sx.svg)}.flag-icon-sy{background-image:url(../flags/4x3/sy.svg)}.flag-icon-sy.flag-icon-squared{background-image:url(../flags/1x1/sy.svg)}.flag-icon-sz{background-image:url(../flags/4x3/sz.svg)}.flag-icon-sz.flag-icon-squared{background-image:url(../flags/1x1/sz.svg)}.flag-icon-tc{background-image:url(../flags/4x3/tc.svg)}.flag-icon-tc.flag-icon-squared{background-image:url(../flags/1x1/tc.svg)}.flag-icon-td{background-image:url(../flags/4x3/td.svg)}.flag-icon-td.flag-icon-squared{background-image:url(../flags/1x1/td.svg)}.flag-icon-tf{background-image:url(../flags/4x3/tf.svg)}.flag-icon-tf.flag-icon-squared{background-image:url(../flags/1x1/tf.svg)}.flag-icon-tg{background-image:url(../flags/4x3/tg.svg)}.flag-icon-tg.flag-icon-squared{background-image:url(../flags/1x1/tg.svg)}.flag-icon-th{background-image:url(../flags/4x3/th.svg)}.flag-icon-th.flag-icon-squared{background-image:url(../flags/1x1/th.svg)}.flag-icon-tj{background-image:url(../flags/4x3/tj.svg)}.flag-icon-tj.flag-icon-squared{background-image:url(../flags/1x1/tj.svg)}.flag-icon-tk{background-image:url(../flags/4x3/tk.svg)}.flag-icon-tk.flag-icon-squared{background-image:url(../flags/1x1/tk.svg)}.flag-icon-tl{background-image:url(../flags/4x3/tl.svg)}.flag-icon-tl.flag-icon-squared{background-image:url(../flags/1x1/tl.svg)}.flag-icon-tm{background-image:url(../flags/4x3/tm.svg)}.flag-icon-tm.flag-icon-squared{background-image:url(../flags/1x1/tm.svg)}.flag-icon-tn{background-image:url(../flags/4x3/tn.svg)}.flag-icon-tn.flag-icon-squared{background-image:url(../flags/1x1/tn.svg)}.flag-icon-to{background-image:url(../flags/4x3/to.svg)}.flag-icon-to.flag-icon-squared{background-image:url(../flags/1x1/to.svg)}.flag-icon-tr{background-image:url(../flags/4x3/tr.svg)}.flag-icon-tr.flag-icon-squared{background-image:url(../flags/1x1/tr.svg)}.flag-icon-tt{background-image:url(../flags/4x3/tt.svg)}.flag-icon-tt.flag-icon-squared{background-image:url(../flags/1x1/tt.svg)}.flag-icon-tv{background-image:url(../flags/4x3/tv.svg)}.flag-icon-tv.flag-icon-squared{background-image:url(../flags/1x1/tv.svg)}.flag-icon-tw{background-image:url(../flags/4x3/tw.svg)}.flag-icon-tw.flag-icon-squared{background-image:url(../flags/1x1/tw.svg)}.flag-icon-tz{background-image:url(../flags/4x3/tz.svg)}.flag-icon-tz.flag-icon-squared{background-image:url(../flags/1x1/tz.svg)}.flag-icon-ua{background-image:url(../flags/4x3/ua.svg)}.flag-icon-ua.flag-icon-squared{background-image:url(../flags/1x1/ua.svg)}.flag-icon-ug{background-image:url(../flags/4x3/ug.svg)}.flag-icon-ug.flag-icon-squared{background-image:url(../flags/1x1/ug.svg)}.flag-icon-um{background-image:url(../flags/4x3/um.svg)}.flag-icon-um.flag-icon-squared{background-image:url(../flags/1x1/um.svg)}.flag-icon-us{background-image:url(../flags/4x3/us.svg)}.flag-icon-us.flag-icon-squared{background-image:url(../flags/1x1/us.svg)}.flag-icon-uy{background-image:url(../flags/4x3/uy.svg)}.flag-icon-uy.flag-icon-squared{background-image:url(../flags/1x1/uy.svg)}.flag-icon-uz{background-image:url(../flags/4x3/uz.svg)}.flag-icon-uz.flag-icon-squared{background-image:url(../flags/1x1/uz.svg)}.flag-icon-va{background-image:url(../flags/4x3/va.svg)}.flag-icon-va.flag-icon-squared{background-image:url(../flags/1x1/va.svg)}.flag-icon-vc{background-image:url(../flags/4x3/vc.svg)}.flag-icon-vc.flag-icon-squared{background-image:url(../flags/1x1/vc.svg)}.flag-icon-ve{background-image:url(../flags/4x3/ve.svg)}.flag-icon-ve.flag-icon-squared{background-image:url(../flags/1x1/ve.svg)}.flag-icon-vg{background-image:url(../flags/4x3/vg.svg)}.flag-icon-vg.flag-icon-squared{background-image:url(../flags/1x1/vg.svg)}.flag-icon-vi{background-image:url(../flags/4x3/vi.svg)}.flag-icon-vi.flag-icon-squared{background-image:url(../flags/1x1/vi.svg)}.flag-icon-vn{background-image:url(../flags/4x3/vn.svg)}.flag-icon-vn.flag-icon-squared{background-image:url(../flags/1x1/vn.svg)}.flag-icon-vu{background-image:url(../flags/4x3/vu.svg)}.flag-icon-vu.flag-icon-squared{background-image:url(../flags/1x1/vu.svg)}.flag-icon-wf{background-image:url(../flags/4x3/wf.svg)}.flag-icon-wf.flag-icon-squared{background-image:url(../flags/1x1/wf.svg)}.flag-icon-ws{background-image:url(../flags/4x3/ws.svg)}.flag-icon-ws.flag-icon-squared{background-image:url(../flags/1x1/ws.svg)}.flag-icon-ye{background-image:url(../flags/4x3/ye.svg)}.flag-icon-ye.flag-icon-squared{background-image:url(../flags/1x1/ye.svg)}.flag-icon-yt{background-image:url(../flags/4x3/yt.svg)}.flag-icon-yt.flag-icon-squared{background-image:url(../flags/1x1/yt.svg)}.flag-icon-za{background-image:url(../flags/4x3/za.svg)}.flag-icon-za.flag-icon-squared{background-image:url(../flags/1x1/za.svg)}.flag-icon-zm{background-image:url(../flags/4x3/zm.svg)}.flag-icon-zm.flag-icon-squared{background-image:url(../flags/1x1/zm.svg)}.flag-icon-zw{background-image:url(../flags/4x3/zw.svg)}.flag-icon-zw.flag-icon-squared{background-image:url(../flags/1x1/zw.svg)}.flag-icon-es-ct{background-image:url(../flags/4x3/es-ct.svg)}.flag-icon-es-ct.flag-icon-squared{background-image:url(../flags/1x1/es-ct.svg)}.flag-icon-es-ga{background-image:url(../flags/4x3/es-ga.svg)}.flag-icon-es-ga.flag-icon-squared{background-image:url(../flags/1x1/es-ga.svg)}.flag-icon-eu{background-image:url(../flags/4x3/eu.svg)}.flag-icon-eu.flag-icon-squared{background-image:url(../flags/1x1/eu.svg)}.flag-icon-gb-eng{background-image:url(../flags/4x3/gb-eng.svg)}.flag-icon-gb-eng.flag-icon-squared{background-image:url(../flags/1x1/gb-eng.svg)}.flag-icon-gb-nir{background-image:url(../flags/4x3/gb-nir.svg)}.flag-icon-gb-nir.flag-icon-squared{background-image:url(../flags/1x1/gb-nir.svg)}.flag-icon-gb-sct{background-image:url(../flags/4x3/gb-sct.svg)}.flag-icon-gb-sct.flag-icon-squared{background-image:url(../flags/1x1/gb-sct.svg)}.flag-icon-gb-wls{background-image:url(../flags/4x3/gb-wls.svg)}.flag-icon-gb-wls.flag-icon-squared{background-image:url(../flags/1x1/gb-wls.svg)}.flag-icon-un{background-image:url(../flags/4x3/un.svg)}.flag-icon-un.flag-icon-squared{background-image:url(../flags/1x1/un.svg)}.flag-icon-xk{background-image:url(../flags/4x3/xk.svg)}.flag-icon-xk.flag-icon-squared{background-image:url(../flags/1x1/xk.svg)}
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/build/008-mailcow.css b/mailcow/src/mailcow-dockerized/data/web/css/build/008-mailcow.css
index 717b4d1..c060065 100644
--- a/mailcow/src/mailcow-dockerized/data/web/css/build/008-mailcow.css
+++ b/mailcow/src/mailcow-dockerized/data/web/css/build/008-mailcow.css
@@ -1,26 +1,37 @@
 @font-face {

-  font-family: 'PT Sans';

+  font-family: 'Noto Sans';

   font-style: normal;

   font-weight: 400;

-  src: local('PT Sans'), local('PTSans-Regular'),

-    url('/fonts/pt-sans-v11-latin-ext_cyrillic_latin-regular.woff2') format('woff2'),

-    url('/fonts/pt-sans-v11-latin-ext_cyrillic_latin-regular.woff') format('woff');

+  src: local(''),

+       url('/fonts/noto-sans-v12-latin_greek_cyrillic-regular.woff2') format('woff2'),

+       url('/fonts/noto-sans-v12-latin_greek_cyrillic-regular.woff') format('woff');

 }

+

 @font-face {

-  font-family: 'PT Sans';

+  font-family: 'Noto Sans';

   font-style: normal;

   font-weight: 700;

-  src: local('PT Sans Bold'), local('PTSans-Bold'),

-    url('/fonts/pt-sans-v11-latin-ext_cyrillic_latin-700.woff2') format('woff2'),

-    url('/fonts/pt-sans-v11-latin-ext_cyrillic_latin-700.woff') format('woff');

+  src: local(''),

+       url('/fonts/noto-sans-v12-latin_greek_cyrillic-700.woff2') format('woff2'),

+       url('/fonts/noto-sans-v12-latin_greek_cyrillic-700.woff') format('woff');

 }

+

 @font-face {

-  font-family: 'PT Sans';

+  font-family: 'Noto Sans';

   font-style: italic;

   font-weight: 400;

-  src: local('PT Sans Italic'), local('PTSans-Italic'),

-    url('/fonts/pt-sans-v11-latin-ext_cyrillic_latin-italic.woff2') format('woff2'),

-    url('/fonts/pt-sans-v11-latin-ext_cyrillic_latin-italic.woff') format('woff');

+  src: local(''),

+       url('/fonts/noto-sans-v12-latin_greek_cyrillic-italic.woff2') format('woff2'),

+       url('/fonts/noto-sans-v12-latin_greek_cyrillic-italic.woff') format('woff');

+}

+

+@font-face {

+  font-family: 'Noto Sans';

+  font-style: italic;

+  font-weight: 700;

+  src: local(''),

+       url('/fonts/noto-sans-v12-latin_greek_cyrillic-700italic.woff2') format('woff2'),

+       url('/fonts/noto-sans-v12-latin_greek_cyrillic-700italic.woff') format('woff');

 }

 #maxmsgsize { min-width: 80px; }

 #slider1 .slider-selection {

@@ -56,10 +67,23 @@
 .navbar-fixed-top .navbar-collapse {

   max-height: 1000px

 }

-.glyphicon-spin {

-  font-size:12px;

+.bi {

+  display: inline-block;

+  font-size: 12pt;

+}

+.btn .bi {

+  display: inline-block;

+  font-size: inherit;

+}

+.icon-spin {

+  animation-name: spin;

+  animation-duration: 2000ms;

+  animation-iteration-count: infinite;

+  animation-timing-function: linear;

   -webkit-animation: spin 2000ms infinite linear;

-  animation: spin 2000ms infinite linear;

+}

+.dropdown-menu {

+  font-size: 0.9rem;

 }

 @-webkit-keyframes spin {

   0% {

@@ -94,7 +118,14 @@
   padding-right: inherit !important;

 }

 body {

-  font-family: "PT Sans","Helvetica Neue",Helvetica,Arial,sans-serif;

+  font-family: "Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;

+  font-size: 10.5pt;

+  line-height: 1.5;

+}

+html {

+  font-family: "Noto Sans","Helvetica Neue",Helvetica,Arial,sans-serif;

+  font-size: 10.5pt;

+  line-height: 1.5;

 }

 #mailcow-alert {

   position: fixed;

@@ -111,7 +142,7 @@
   -ms-user-select: none;

   -o-user-select: none;

   user-select: none;

-  font-size: 12pt;

+  font-size: 1.2rem;

 }

 .navbar .navbar-brand {

   padding-top: 5px;

@@ -128,9 +159,6 @@
 .lang-link-disabled  {

   cursor: not-allowed;

 }

-.dkim-label {

-  margin: 0 0 2px !important;

-}

 .overlay {

   background: #fff;

   position: absolute;

@@ -138,9 +166,6 @@
   top: 0; right: 0; bottom: 0; left: 0;

   opacity: 0.7;

 }

-nav .glyphicon {

-  font-size: 12px !important;

-}

 #top {

   padding-top: 70px;

 }

@@ -167,10 +192,10 @@
 }

 .tooltip {

   font-family: inherit;

-  font-size: 12px;

+  font-size: 0.8rem;

 }

 .progress-bar {

-  font-size: 12px;

+  font-size: 0.8rem;

   line-height: 14px;

 }

 .footer {

@@ -197,3 +222,25 @@
   background-color: #ff4136;

   border-color: #ff291c;

 }

+table.footable>tbody>tr.footable-empty>td {

+  font-style:italic;

+  font-size: 1rem;

+}

+.navbar-nav > li {

+  font-size: 1rem !important;

+}

+.dropdown-menu > li > a {

+  font-size: 1rem !important;

+}

+.label {

+  font-size:inherit;

+}

+[class^="bi-"]::before, [class*=" bi-"]::before {

+  vertical-align: -0.2em !important;

+}

+legend > [class^="bi-"]::before, legend > [class*=" bi-"]::before {

+  vertical-align: 0em !important;

+}

+code {

+  font-size: inherit;

+}
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/build/010-numberedtextarea.min.css b/mailcow/src/mailcow-dockerized/data/web/css/build/010-numberedtextarea.min.css
index 133faf9..4d12000 100644
--- a/mailcow/src/mailcow-dockerized/data/web/css/build/010-numberedtextarea.min.css
+++ b/mailcow/src/mailcow-dockerized/data/web/css/build/010-numberedtextarea.min.css
@@ -1 +1 @@
-div.numberedtextarea-wrapper{position:relative}div.numberedtextarea-wrapper textarea{display:block;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}div.numberedtextarea-line-numbers{position:absolute;top:0;left:0;right:0;bottom:0;width:50px;border-right:none;color:rgba(0,0,0,.4);overflow:hidden}div.numberedtextarea-number{padding-right:6px;text-align:right}
+div.numberedtextarea-wrapper{position:relative}div.numberedtextarea-wrapper textarea{display:block;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}div.numberedtextarea-line-numbers{position:absolute;top:0;left:0;right:0;bottom:0;width:45px!important;border-right:none;color:rgba(0,0,0,.4);overflow:hidden}div.numberedtextarea-number{padding-right:6px;text-align:right}
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/build/013-bootstrap-icons.css b/mailcow/src/mailcow-dockerized/data/web/css/build/013-bootstrap-icons.css
new file mode 100644
index 0000000..4ea58d7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/build/013-bootstrap-icons.css
@@ -0,0 +1,1390 @@
+@font-face {
+  font-family: "bootstrap-icons";
+  src: url("/fonts/bootstrap-icons.woff2?856008caa5eb66df68595e734e59580d") format("woff2"),
+url("/fonts/bootstrap-icons.woff?856008caa5eb66df68595e734e59580d") format("woff");
+}
+
+[class^="bi-"]::before,
+[class*=" bi-"]::before {
+  display: inline-block;
+  font-family: bootstrap-icons !important;
+  font-style: normal;
+  font-weight: normal !important;
+  font-variant: normal;
+  text-transform: none;
+  line-height: 1;
+  vertical-align: -.125em;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.bi-alarm-fill::before { content: "\f101"; }
+.bi-alarm::before { content: "\f102"; }
+.bi-align-bottom::before { content: "\f103"; }
+.bi-align-center::before { content: "\f104"; }
+.bi-align-end::before { content: "\f105"; }
+.bi-align-middle::before { content: "\f106"; }
+.bi-align-start::before { content: "\f107"; }
+.bi-align-top::before { content: "\f108"; }
+.bi-alt::before { content: "\f109"; }
+.bi-app-indicator::before { content: "\f10a"; }
+.bi-app::before { content: "\f10b"; }
+.bi-archive-fill::before { content: "\f10c"; }
+.bi-archive::before { content: "\f10d"; }
+.bi-arrow-90deg-down::before { content: "\f10e"; }
+.bi-arrow-90deg-left::before { content: "\f10f"; }
+.bi-arrow-90deg-right::before { content: "\f110"; }
+.bi-arrow-90deg-up::before { content: "\f111"; }
+.bi-arrow-bar-down::before { content: "\f112"; }
+.bi-arrow-bar-left::before { content: "\f113"; }
+.bi-arrow-bar-right::before { content: "\f114"; }
+.bi-arrow-bar-up::before { content: "\f115"; }
+.bi-arrow-clockwise::before { content: "\f116"; }
+.bi-arrow-counterclockwise::before { content: "\f117"; }
+.bi-arrow-down-circle-fill::before { content: "\f118"; }
+.bi-arrow-down-circle::before { content: "\f119"; }
+.bi-arrow-down-left-circle-fill::before { content: "\f11a"; }
+.bi-arrow-down-left-circle::before { content: "\f11b"; }
+.bi-arrow-down-left-square-fill::before { content: "\f11c"; }
+.bi-arrow-down-left-square::before { content: "\f11d"; }
+.bi-arrow-down-left::before { content: "\f11e"; }
+.bi-arrow-down-right-circle-fill::before { content: "\f11f"; }
+.bi-arrow-down-right-circle::before { content: "\f120"; }
+.bi-arrow-down-right-square-fill::before { content: "\f121"; }
+.bi-arrow-down-right-square::before { content: "\f122"; }
+.bi-arrow-down-right::before { content: "\f123"; }
+.bi-arrow-down-short::before { content: "\f124"; }
+.bi-arrow-down-square-fill::before { content: "\f125"; }
+.bi-arrow-down-square::before { content: "\f126"; }
+.bi-arrow-down-up::before { content: "\f127"; }
+.bi-arrow-down::before { content: "\f128"; }
+.bi-arrow-left-circle-fill::before { content: "\f129"; }
+.bi-arrow-left-circle::before { content: "\f12a"; }
+.bi-arrow-left-right::before { content: "\f12b"; }
+.bi-arrow-left-short::before { content: "\f12c"; }
+.bi-arrow-left-square-fill::before { content: "\f12d"; }
+.bi-arrow-left-square::before { content: "\f12e"; }
+.bi-arrow-left::before { content: "\f12f"; }
+.bi-arrow-repeat::before { content: "\f130"; }
+.bi-arrow-return-left::before { content: "\f131"; }
+.bi-arrow-return-right::before { content: "\f132"; }
+.bi-arrow-right-circle-fill::before { content: "\f133"; }
+.bi-arrow-right-circle::before { content: "\f134"; }
+.bi-arrow-right-short::before { content: "\f135"; }
+.bi-arrow-right-square-fill::before { content: "\f136"; }
+.bi-arrow-right-square::before { content: "\f137"; }
+.bi-arrow-right::before { content: "\f138"; }
+.bi-arrow-up-circle-fill::before { content: "\f139"; }
+.bi-arrow-up-circle::before { content: "\f13a"; }
+.bi-arrow-up-left-circle-fill::before { content: "\f13b"; }
+.bi-arrow-up-left-circle::before { content: "\f13c"; }
+.bi-arrow-up-left-square-fill::before { content: "\f13d"; }
+.bi-arrow-up-left-square::before { content: "\f13e"; }
+.bi-arrow-up-left::before { content: "\f13f"; }
+.bi-arrow-up-right-circle-fill::before { content: "\f140"; }
+.bi-arrow-up-right-circle::before { content: "\f141"; }
+.bi-arrow-up-right-square-fill::before { content: "\f142"; }
+.bi-arrow-up-right-square::before { content: "\f143"; }
+.bi-arrow-up-right::before { content: "\f144"; }
+.bi-arrow-up-short::before { content: "\f145"; }
+.bi-arrow-up-square-fill::before { content: "\f146"; }
+.bi-arrow-up-square::before { content: "\f147"; }
+.bi-arrow-up::before { content: "\f148"; }
+.bi-arrows-angle-contract::before { content: "\f149"; }
+.bi-arrows-angle-expand::before { content: "\f14a"; }
+.bi-arrows-collapse::before { content: "\f14b"; }
+.bi-arrows-expand::before { content: "\f14c"; }
+.bi-arrows-fullscreen::before { content: "\f14d"; }
+.bi-arrows-move::before { content: "\f14e"; }
+.bi-aspect-ratio-fill::before { content: "\f14f"; }
+.bi-aspect-ratio::before { content: "\f150"; }
+.bi-asterisk::before { content: "\f151"; }
+.bi-at::before { content: "\f152"; }
+.bi-award-fill::before { content: "\f153"; }
+.bi-award::before { content: "\f154"; }
+.bi-back::before { content: "\f155"; }
+.bi-backspace-fill::before { content: "\f156"; }
+.bi-backspace-reverse-fill::before { content: "\f157"; }
+.bi-backspace-reverse::before { content: "\f158"; }
+.bi-backspace::before { content: "\f159"; }
+.bi-badge-3d-fill::before { content: "\f15a"; }
+.bi-badge-3d::before { content: "\f15b"; }
+.bi-badge-4k-fill::before { content: "\f15c"; }
+.bi-badge-4k::before { content: "\f15d"; }
+.bi-badge-8k-fill::before { content: "\f15e"; }
+.bi-badge-8k::before { content: "\f15f"; }
+.bi-badge-ad-fill::before { content: "\f160"; }
+.bi-badge-ad::before { content: "\f161"; }
+.bi-badge-ar-fill::before { content: "\f162"; }
+.bi-badge-ar::before { content: "\f163"; }
+.bi-badge-cc-fill::before { content: "\f164"; }
+.bi-badge-cc::before { content: "\f165"; }
+.bi-badge-hd-fill::before { content: "\f166"; }
+.bi-badge-hd::before { content: "\f167"; }
+.bi-badge-tm-fill::before { content: "\f168"; }
+.bi-badge-tm::before { content: "\f169"; }
+.bi-badge-vo-fill::before { content: "\f16a"; }
+.bi-badge-vo::before { content: "\f16b"; }
+.bi-badge-vr-fill::before { content: "\f16c"; }
+.bi-badge-vr::before { content: "\f16d"; }
+.bi-badge-wc-fill::before { content: "\f16e"; }
+.bi-badge-wc::before { content: "\f16f"; }
+.bi-bag-check-fill::before { content: "\f170"; }
+.bi-bag-check::before { content: "\f171"; }
+.bi-bag-dash-fill::before { content: "\f172"; }
+.bi-bag-dash::before { content: "\f173"; }
+.bi-bag-fill::before { content: "\f174"; }
+.bi-bag-plus-fill::before { content: "\f175"; }
+.bi-bag-plus::before { content: "\f176"; }
+.bi-bag-x-fill::before { content: "\f177"; }
+.bi-bag-x::before { content: "\f178"; }
+.bi-bag::before { content: "\f179"; }
+.bi-bar-chart-fill::before { content: "\f17a"; }
+.bi-bar-chart-line-fill::before { content: "\f17b"; }
+.bi-bar-chart-line::before { content: "\f17c"; }
+.bi-bar-chart-steps::before { content: "\f17d"; }
+.bi-bar-chart::before { content: "\f17e"; }
+.bi-basket-fill::before { content: "\f17f"; }
+.bi-basket::before { content: "\f180"; }
+.bi-basket2-fill::before { content: "\f181"; }
+.bi-basket2::before { content: "\f182"; }
+.bi-basket3-fill::before { content: "\f183"; }
+.bi-basket3::before { content: "\f184"; }
+.bi-battery-charging::before { content: "\f185"; }
+.bi-battery-full::before { content: "\f186"; }
+.bi-battery-half::before { content: "\f187"; }
+.bi-battery::before { content: "\f188"; }
+.bi-bell-fill::before { content: "\f189"; }
+.bi-bell::before { content: "\f18a"; }
+.bi-bezier::before { content: "\f18b"; }
+.bi-bezier2::before { content: "\f18c"; }
+.bi-bicycle::before { content: "\f18d"; }
+.bi-binoculars-fill::before { content: "\f18e"; }
+.bi-binoculars::before { content: "\f18f"; }
+.bi-blockquote-left::before { content: "\f190"; }
+.bi-blockquote-right::before { content: "\f191"; }
+.bi-book-fill::before { content: "\f192"; }
+.bi-book-half::before { content: "\f193"; }
+.bi-book::before { content: "\f194"; }
+.bi-bookmark-check-fill::before { content: "\f195"; }
+.bi-bookmark-check::before { content: "\f196"; }
+.bi-bookmark-dash-fill::before { content: "\f197"; }
+.bi-bookmark-dash::before { content: "\f198"; }
+.bi-bookmark-fill::before { content: "\f199"; }
+.bi-bookmark-heart-fill::before { content: "\f19a"; }
+.bi-bookmark-heart::before { content: "\f19b"; }
+.bi-bookmark-plus-fill::before { content: "\f19c"; }
+.bi-bookmark-plus::before { content: "\f19d"; }
+.bi-bookmark-star-fill::before { content: "\f19e"; }
+.bi-bookmark-star::before { content: "\f19f"; }
+.bi-bookmark-x-fill::before { content: "\f1a0"; }
+.bi-bookmark-x::before { content: "\f1a1"; }
+.bi-bookmark::before { content: "\f1a2"; }
+.bi-bookmarks-fill::before { content: "\f1a3"; }
+.bi-bookmarks::before { content: "\f1a4"; }
+.bi-bookshelf::before { content: "\f1a5"; }
+.bi-bootstrap-fill::before { content: "\f1a6"; }
+.bi-bootstrap-reboot::before { content: "\f1a7"; }
+.bi-bootstrap::before { content: "\f1a8"; }
+.bi-border-all::before { content: "\f1a9"; }
+.bi-border-bottom::before { content: "\f1aa"; }
+.bi-border-center::before { content: "\f1ab"; }
+.bi-border-inner::before { content: "\f1ac"; }
+.bi-border-left::before { content: "\f1ad"; }
+.bi-border-middle::before { content: "\f1ae"; }
+.bi-border-outer::before { content: "\f1af"; }
+.bi-border-right::before { content: "\f1b0"; }
+.bi-border-style::before { content: "\f1b1"; }
+.bi-border-top::before { content: "\f1b2"; }
+.bi-border-width::before { content: "\f1b3"; }
+.bi-border::before { content: "\f1b4"; }
+.bi-bounding-box-circles::before { content: "\f1b5"; }
+.bi-bounding-box::before { content: "\f1b6"; }
+.bi-box-arrow-down-left::before { content: "\f1b7"; }
+.bi-box-arrow-down-right::before { content: "\f1b8"; }
+.bi-box-arrow-down::before { content: "\f1b9"; }
+.bi-box-arrow-in-down-left::before { content: "\f1ba"; }
+.bi-box-arrow-in-down-right::before { content: "\f1bb"; }
+.bi-box-arrow-in-down::before { content: "\f1bc"; }
+.bi-box-arrow-in-left::before { content: "\f1bd"; }
+.bi-box-arrow-in-right::before { content: "\f1be"; }
+.bi-box-arrow-in-up-left::before { content: "\f1bf"; }
+.bi-box-arrow-in-up-right::before { content: "\f1c0"; }
+.bi-box-arrow-in-up::before { content: "\f1c1"; }
+.bi-box-arrow-left::before { content: "\f1c2"; }
+.bi-box-arrow-right::before { content: "\f1c3"; }
+.bi-box-arrow-up-left::before { content: "\f1c4"; }
+.bi-box-arrow-up-right::before { content: "\f1c5"; }
+.bi-box-arrow-up::before { content: "\f1c6"; }
+.bi-box-seam::before { content: "\f1c7"; }
+.bi-box::before { content: "\f1c8"; }
+.bi-braces::before { content: "\f1c9"; }
+.bi-bricks::before { content: "\f1ca"; }
+.bi-briefcase-fill::before { content: "\f1cb"; }
+.bi-briefcase::before { content: "\f1cc"; }
+.bi-brightness-alt-high-fill::before { content: "\f1cd"; }
+.bi-brightness-alt-high::before { content: "\f1ce"; }
+.bi-brightness-alt-low-fill::before { content: "\f1cf"; }
+.bi-brightness-alt-low::before { content: "\f1d0"; }
+.bi-brightness-high-fill::before { content: "\f1d1"; }
+.bi-brightness-high::before { content: "\f1d2"; }
+.bi-brightness-low-fill::before { content: "\f1d3"; }
+.bi-brightness-low::before { content: "\f1d4"; }
+.bi-broadcast-pin::before { content: "\f1d5"; }
+.bi-broadcast::before { content: "\f1d6"; }
+.bi-brush-fill::before { content: "\f1d7"; }
+.bi-brush::before { content: "\f1d8"; }
+.bi-bucket-fill::before { content: "\f1d9"; }
+.bi-bucket::before { content: "\f1da"; }
+.bi-bug-fill::before { content: "\f1db"; }
+.bi-bug::before { content: "\f1dc"; }
+.bi-building::before { content: "\f1dd"; }
+.bi-bullseye::before { content: "\f1de"; }
+.bi-calculator-fill::before { content: "\f1df"; }
+.bi-calculator::before { content: "\f1e0"; }
+.bi-calendar-check-fill::before { content: "\f1e1"; }
+.bi-calendar-check::before { content: "\f1e2"; }
+.bi-calendar-date-fill::before { content: "\f1e3"; }
+.bi-calendar-date::before { content: "\f1e4"; }
+.bi-calendar-day-fill::before { content: "\f1e5"; }
+.bi-calendar-day::before { content: "\f1e6"; }
+.bi-calendar-event-fill::before { content: "\f1e7"; }
+.bi-calendar-event::before { content: "\f1e8"; }
+.bi-calendar-fill::before { content: "\f1e9"; }
+.bi-calendar-minus-fill::before { content: "\f1ea"; }
+.bi-calendar-minus::before { content: "\f1eb"; }
+.bi-calendar-month-fill::before { content: "\f1ec"; }
+.bi-calendar-month::before { content: "\f1ed"; }
+.bi-calendar-plus-fill::before { content: "\f1ee"; }
+.bi-calendar-plus::before { content: "\f1ef"; }
+.bi-calendar-range-fill::before { content: "\f1f0"; }
+.bi-calendar-range::before { content: "\f1f1"; }
+.bi-calendar-week-fill::before { content: "\f1f2"; }
+.bi-calendar-week::before { content: "\f1f3"; }
+.bi-calendar-x-fill::before { content: "\f1f4"; }
+.bi-calendar-x::before { content: "\f1f5"; }
+.bi-calendar::before { content: "\f1f6"; }
+.bi-calendar2-check-fill::before { content: "\f1f7"; }
+.bi-calendar2-check::before { content: "\f1f8"; }
+.bi-calendar2-date-fill::before { content: "\f1f9"; }
+.bi-calendar2-date::before { content: "\f1fa"; }
+.bi-calendar2-day-fill::before { content: "\f1fb"; }
+.bi-calendar2-day::before { content: "\f1fc"; }
+.bi-calendar2-event-fill::before { content: "\f1fd"; }
+.bi-calendar2-event::before { content: "\f1fe"; }
+.bi-calendar2-fill::before { content: "\f1ff"; }
+.bi-calendar2-minus-fill::before { content: "\f200"; }
+.bi-calendar2-minus::before { content: "\f201"; }
+.bi-calendar2-month-fill::before { content: "\f202"; }
+.bi-calendar2-month::before { content: "\f203"; }
+.bi-calendar2-plus-fill::before { content: "\f204"; }
+.bi-calendar2-plus::before { content: "\f205"; }
+.bi-calendar2-range-fill::before { content: "\f206"; }
+.bi-calendar2-range::before { content: "\f207"; }
+.bi-calendar2-week-fill::before { content: "\f208"; }
+.bi-calendar2-week::before { content: "\f209"; }
+.bi-calendar2-x-fill::before { content: "\f20a"; }
+.bi-calendar2-x::before { content: "\f20b"; }
+.bi-calendar2::before { content: "\f20c"; }
+.bi-calendar3-event-fill::before { content: "\f20d"; }
+.bi-calendar3-event::before { content: "\f20e"; }
+.bi-calendar3-fill::before { content: "\f20f"; }
+.bi-calendar3-range-fill::before { content: "\f210"; }
+.bi-calendar3-range::before { content: "\f211"; }
+.bi-calendar3-week-fill::before { content: "\f212"; }
+.bi-calendar3-week::before { content: "\f213"; }
+.bi-calendar3::before { content: "\f214"; }
+.bi-calendar4-event::before { content: "\f215"; }
+.bi-calendar4-range::before { content: "\f216"; }
+.bi-calendar4-week::before { content: "\f217"; }
+.bi-calendar4::before { content: "\f218"; }
+.bi-camera-fill::before { content: "\f219"; }
+.bi-camera-reels-fill::before { content: "\f21a"; }
+.bi-camera-reels::before { content: "\f21b"; }
+.bi-camera-video-fill::before { content: "\f21c"; }
+.bi-camera-video-off-fill::before { content: "\f21d"; }
+.bi-camera-video-off::before { content: "\f21e"; }
+.bi-camera-video::before { content: "\f21f"; }
+.bi-camera::before { content: "\f220"; }
+.bi-camera2::before { content: "\f221"; }
+.bi-capslock-fill::before { content: "\f222"; }
+.bi-capslock::before { content: "\f223"; }
+.bi-card-checklist::before { content: "\f224"; }
+.bi-card-heading::before { content: "\f225"; }
+.bi-card-image::before { content: "\f226"; }
+.bi-card-list::before { content: "\f227"; }
+.bi-card-text::before { content: "\f228"; }
+.bi-caret-down-fill::before { content: "\f229"; }
+.bi-caret-down-square-fill::before { content: "\f22a"; }
+.bi-caret-down-square::before { content: "\f22b"; }
+.bi-caret-down::before { content: "\f22c"; }
+.bi-caret-left-fill::before { content: "\f22d"; }
+.bi-caret-left-square-fill::before { content: "\f22e"; }
+.bi-caret-left-square::before { content: "\f22f"; }
+.bi-caret-left::before { content: "\f230"; }
+.bi-caret-right-fill::before { content: "\f231"; }
+.bi-caret-right-square-fill::before { content: "\f232"; }
+.bi-caret-right-square::before { content: "\f233"; }
+.bi-caret-right::before { content: "\f234"; }
+.bi-caret-up-fill::before { content: "\f235"; }
+.bi-caret-up-square-fill::before { content: "\f236"; }
+.bi-caret-up-square::before { content: "\f237"; }
+.bi-caret-up::before { content: "\f238"; }
+.bi-cart-check-fill::before { content: "\f239"; }
+.bi-cart-check::before { content: "\f23a"; }
+.bi-cart-dash-fill::before { content: "\f23b"; }
+.bi-cart-dash::before { content: "\f23c"; }
+.bi-cart-fill::before { content: "\f23d"; }
+.bi-cart-plus-fill::before { content: "\f23e"; }
+.bi-cart-plus::before { content: "\f23f"; }
+.bi-cart-x-fill::before { content: "\f240"; }
+.bi-cart-x::before { content: "\f241"; }
+.bi-cart::before { content: "\f242"; }
+.bi-cart2::before { content: "\f243"; }
+.bi-cart3::before { content: "\f244"; }
+.bi-cart4::before { content: "\f245"; }
+.bi-cash-stack::before { content: "\f246"; }
+.bi-cash::before { content: "\f247"; }
+.bi-cast::before { content: "\f248"; }
+.bi-chat-dots-fill::before { content: "\f249"; }
+.bi-chat-dots::before { content: "\f24a"; }
+.bi-chat-fill::before { content: "\f24b"; }
+.bi-chat-left-dots-fill::before { content: "\f24c"; }
+.bi-chat-left-dots::before { content: "\f24d"; }
+.bi-chat-left-fill::before { content: "\f24e"; }
+.bi-chat-left-quote-fill::before { content: "\f24f"; }
+.bi-chat-left-quote::before { content: "\f250"; }
+.bi-chat-left-text-fill::before { content: "\f251"; }
+.bi-chat-left-text::before { content: "\f252"; }
+.bi-chat-left::before { content: "\f253"; }
+.bi-chat-quote-fill::before { content: "\f254"; }
+.bi-chat-quote::before { content: "\f255"; }
+.bi-chat-right-dots-fill::before { content: "\f256"; }
+.bi-chat-right-dots::before { content: "\f257"; }
+.bi-chat-right-fill::before { content: "\f258"; }
+.bi-chat-right-quote-fill::before { content: "\f259"; }
+.bi-chat-right-quote::before { content: "\f25a"; }
+.bi-chat-right-text-fill::before { content: "\f25b"; }
+.bi-chat-right-text::before { content: "\f25c"; }
+.bi-chat-right::before { content: "\f25d"; }
+.bi-chat-square-dots-fill::before { content: "\f25e"; }
+.bi-chat-square-dots::before { content: "\f25f"; }
+.bi-chat-square-fill::before { content: "\f260"; }
+.bi-chat-square-quote-fill::before { content: "\f261"; }
+.bi-chat-square-quote::before { content: "\f262"; }
+.bi-chat-square-text-fill::before { content: "\f263"; }
+.bi-chat-square-text::before { content: "\f264"; }
+.bi-chat-square::before { content: "\f265"; }
+.bi-chat-text-fill::before { content: "\f266"; }
+.bi-chat-text::before { content: "\f267"; }
+.bi-chat::before { content: "\f268"; }
+.bi-check-all::before { content: "\f269"; }
+.bi-check-circle-fill::before { content: "\f26a"; }
+.bi-check-circle::before { content: "\f26b"; }
+.bi-check-square-fill::before { content: "\f26c"; }
+.bi-check-square::before { content: "\f26d"; }
+.bi-check::before { content: "\f26e"; }
+.bi-check2-all::before { content: "\f26f"; }
+.bi-check2-circle::before { content: "\f270"; }
+.bi-check2-square::before { content: "\f271"; }
+.bi-check2::before { content: "\f272"; }
+.bi-chevron-bar-contract::before { content: "\f273"; }
+.bi-chevron-bar-down::before { content: "\f274"; }
+.bi-chevron-bar-expand::before { content: "\f275"; }
+.bi-chevron-bar-left::before { content: "\f276"; }
+.bi-chevron-bar-right::before { content: "\f277"; }
+.bi-chevron-bar-up::before { content: "\f278"; }
+.bi-chevron-compact-down::before { content: "\f279"; }
+.bi-chevron-compact-left::before { content: "\f27a"; }
+.bi-chevron-compact-right::before { content: "\f27b"; }
+.bi-chevron-compact-up::before { content: "\f27c"; }
+.bi-chevron-contract::before { content: "\f27d"; }
+.bi-chevron-double-down::before { content: "\f27e"; }
+.bi-chevron-double-left::before { content: "\f27f"; }
+.bi-chevron-double-right::before { content: "\f280"; }
+.bi-chevron-double-up::before { content: "\f281"; }
+.bi-chevron-down::before { content: "\f282"; }
+.bi-chevron-expand::before { content: "\f283"; }
+.bi-chevron-left::before { content: "\f284"; }
+.bi-chevron-right::before { content: "\f285"; }
+.bi-chevron-up::before { content: "\f286"; }
+.bi-circle-fill::before { content: "\f287"; }
+.bi-circle-half::before { content: "\f288"; }
+.bi-circle-square::before { content: "\f289"; }
+.bi-circle::before { content: "\f28a"; }
+.bi-clipboard-check::before { content: "\f28b"; }
+.bi-clipboard-data::before { content: "\f28c"; }
+.bi-clipboard-minus::before { content: "\f28d"; }
+.bi-clipboard-plus::before { content: "\f28e"; }
+.bi-clipboard-x::before { content: "\f28f"; }
+.bi-clipboard::before { content: "\f290"; }
+.bi-clock-fill::before { content: "\f291"; }
+.bi-clock-history::before { content: "\f292"; }
+.bi-clock::before { content: "\f293"; }
+.bi-cloud-arrow-down-fill::before { content: "\f294"; }
+.bi-cloud-arrow-down::before { content: "\f295"; }
+.bi-cloud-arrow-up-fill::before { content: "\f296"; }
+.bi-cloud-arrow-up::before { content: "\f297"; }
+.bi-cloud-check-fill::before { content: "\f298"; }
+.bi-cloud-check::before { content: "\f299"; }
+.bi-cloud-download-fill::before { content: "\f29a"; }
+.bi-cloud-download::before { content: "\f29b"; }
+.bi-cloud-drizzle-fill::before { content: "\f29c"; }
+.bi-cloud-drizzle::before { content: "\f29d"; }
+.bi-cloud-fill::before { content: "\f29e"; }
+.bi-cloud-fog-fill::before { content: "\f29f"; }
+.bi-cloud-fog::before { content: "\f2a0"; }
+.bi-cloud-fog2-fill::before { content: "\f2a1"; }
+.bi-cloud-fog2::before { content: "\f2a2"; }
+.bi-cloud-hail-fill::before { content: "\f2a3"; }
+.bi-cloud-hail::before { content: "\f2a4"; }
+.bi-cloud-haze-1::before { content: "\f2a5"; }
+.bi-cloud-haze-fill::before { content: "\f2a6"; }
+.bi-cloud-haze::before { content: "\f2a7"; }
+.bi-cloud-haze2-fill::before { content: "\f2a8"; }
+.bi-cloud-lightning-fill::before { content: "\f2a9"; }
+.bi-cloud-lightning-rain-fill::before { content: "\f2aa"; }
+.bi-cloud-lightning-rain::before { content: "\f2ab"; }
+.bi-cloud-lightning::before { content: "\f2ac"; }
+.bi-cloud-minus-fill::before { content: "\f2ad"; }
+.bi-cloud-minus::before { content: "\f2ae"; }
+.bi-cloud-moon-fill::before { content: "\f2af"; }
+.bi-cloud-moon::before { content: "\f2b0"; }
+.bi-cloud-plus-fill::before { content: "\f2b1"; }
+.bi-cloud-plus::before { content: "\f2b2"; }
+.bi-cloud-rain-fill::before { content: "\f2b3"; }
+.bi-cloud-rain-heavy-fill::before { content: "\f2b4"; }
+.bi-cloud-rain-heavy::before { content: "\f2b5"; }
+.bi-cloud-rain::before { content: "\f2b6"; }
+.bi-cloud-slash-fill::before { content: "\f2b7"; }
+.bi-cloud-slash::before { content: "\f2b8"; }
+.bi-cloud-sleet-fill::before { content: "\f2b9"; }
+.bi-cloud-sleet::before { content: "\f2ba"; }
+.bi-cloud-snow-fill::before { content: "\f2bb"; }
+.bi-cloud-snow::before { content: "\f2bc"; }
+.bi-cloud-sun-fill::before { content: "\f2bd"; }
+.bi-cloud-sun::before { content: "\f2be"; }
+.bi-cloud-upload-fill::before { content: "\f2bf"; }
+.bi-cloud-upload::before { content: "\f2c0"; }
+.bi-cloud::before { content: "\f2c1"; }
+.bi-clouds-fill::before { content: "\f2c2"; }
+.bi-clouds::before { content: "\f2c3"; }
+.bi-cloudy-fill::before { content: "\f2c4"; }
+.bi-cloudy::before { content: "\f2c5"; }
+.bi-code-slash::before { content: "\f2c6"; }
+.bi-code-square::before { content: "\f2c7"; }
+.bi-code::before { content: "\f2c8"; }
+.bi-collection-fill::before { content: "\f2c9"; }
+.bi-collection-play-fill::before { content: "\f2ca"; }
+.bi-collection-play::before { content: "\f2cb"; }
+.bi-collection::before { content: "\f2cc"; }
+.bi-columns-gap::before { content: "\f2cd"; }
+.bi-columns::before { content: "\f2ce"; }
+.bi-command::before { content: "\f2cf"; }
+.bi-compass-fill::before { content: "\f2d0"; }
+.bi-compass::before { content: "\f2d1"; }
+.bi-cone-striped::before { content: "\f2d2"; }
+.bi-cone::before { content: "\f2d3"; }
+.bi-controller::before { content: "\f2d4"; }
+.bi-cpu-fill::before { content: "\f2d5"; }
+.bi-cpu::before { content: "\f2d6"; }
+.bi-credit-card-2-back-fill::before { content: "\f2d7"; }
+.bi-credit-card-2-back::before { content: "\f2d8"; }
+.bi-credit-card-2-front-fill::before { content: "\f2d9"; }
+.bi-credit-card-2-front::before { content: "\f2da"; }
+.bi-credit-card-fill::before { content: "\f2db"; }
+.bi-credit-card::before { content: "\f2dc"; }
+.bi-crop::before { content: "\f2dd"; }
+.bi-cup-fill::before { content: "\f2de"; }
+.bi-cup-straw::before { content: "\f2df"; }
+.bi-cup::before { content: "\f2e0"; }
+.bi-cursor-fill::before { content: "\f2e1"; }
+.bi-cursor-text::before { content: "\f2e2"; }
+.bi-cursor::before { content: "\f2e3"; }
+.bi-dash-circle-dotted::before { content: "\f2e4"; }
+.bi-dash-circle-fill::before { content: "\f2e5"; }
+.bi-dash-circle::before { content: "\f2e6"; }
+.bi-dash-square-dotted::before { content: "\f2e7"; }
+.bi-dash-square-fill::before { content: "\f2e8"; }
+.bi-dash-square::before { content: "\f2e9"; }
+.bi-dash::before { content: "\f2ea"; }
+.bi-diagram-2-fill::before { content: "\f2eb"; }
+.bi-diagram-2::before { content: "\f2ec"; }
+.bi-diagram-3-fill::before { content: "\f2ed"; }
+.bi-diagram-3::before { content: "\f2ee"; }
+.bi-diamond-fill::before { content: "\f2ef"; }
+.bi-diamond-half::before { content: "\f2f0"; }
+.bi-diamond::before { content: "\f2f1"; }
+.bi-dice-1-fill::before { content: "\f2f2"; }
+.bi-dice-1::before { content: "\f2f3"; }
+.bi-dice-2-fill::before { content: "\f2f4"; }
+.bi-dice-2::before { content: "\f2f5"; }
+.bi-dice-3-fill::before { content: "\f2f6"; }
+.bi-dice-3::before { content: "\f2f7"; }
+.bi-dice-4-fill::before { content: "\f2f8"; }
+.bi-dice-4::before { content: "\f2f9"; }
+.bi-dice-5-fill::before { content: "\f2fa"; }
+.bi-dice-5::before { content: "\f2fb"; }
+.bi-dice-6-fill::before { content: "\f2fc"; }
+.bi-dice-6::before { content: "\f2fd"; }
+.bi-disc-fill::before { content: "\f2fe"; }
+.bi-disc::before { content: "\f2ff"; }
+.bi-discord::before { content: "\f300"; }
+.bi-display-fill::before { content: "\f301"; }
+.bi-display::before { content: "\f302"; }
+.bi-distribute-horizontal::before { content: "\f303"; }
+.bi-distribute-vertical::before { content: "\f304"; }
+.bi-door-closed-fill::before { content: "\f305"; }
+.bi-door-closed::before { content: "\f306"; }
+.bi-door-open-fill::before { content: "\f307"; }
+.bi-door-open::before { content: "\f308"; }
+.bi-dot::before { content: "\f309"; }
+.bi-download::before { content: "\f30a"; }
+.bi-droplet-fill::before { content: "\f30b"; }
+.bi-droplet-half::before { content: "\f30c"; }
+.bi-droplet::before { content: "\f30d"; }
+.bi-earbuds::before { content: "\f30e"; }
+.bi-easel-fill::before { content: "\f30f"; }
+.bi-easel::before { content: "\f310"; }
+.bi-egg-fill::before { content: "\f311"; }
+.bi-egg-fried::before { content: "\f312"; }
+.bi-egg::before { content: "\f313"; }
+.bi-eject-fill::before { content: "\f314"; }
+.bi-eject::before { content: "\f315"; }
+.bi-emoji-angry-fill::before { content: "\f316"; }
+.bi-emoji-angry::before { content: "\f317"; }
+.bi-emoji-dizzy-fill::before { content: "\f318"; }
+.bi-emoji-dizzy::before { content: "\f319"; }
+.bi-emoji-expressionless-fill::before { content: "\f31a"; }
+.bi-emoji-expressionless::before { content: "\f31b"; }
+.bi-emoji-frown-fill::before { content: "\f31c"; }
+.bi-emoji-frown::before { content: "\f31d"; }
+.bi-emoji-heart-eyes-fill::before { content: "\f31e"; }
+.bi-emoji-heart-eyes::before { content: "\f31f"; }
+.bi-emoji-laughing-fill::before { content: "\f320"; }
+.bi-emoji-laughing::before { content: "\f321"; }
+.bi-emoji-neutral-fill::before { content: "\f322"; }
+.bi-emoji-neutral::before { content: "\f323"; }
+.bi-emoji-smile-fill::before { content: "\f324"; }
+.bi-emoji-smile-upside-down-fill::before { content: "\f325"; }
+.bi-emoji-smile-upside-down::before { content: "\f326"; }
+.bi-emoji-smile::before { content: "\f327"; }
+.bi-emoji-sunglasses-fill::before { content: "\f328"; }
+.bi-emoji-sunglasses::before { content: "\f329"; }
+.bi-emoji-wink-fill::before { content: "\f32a"; }
+.bi-emoji-wink::before { content: "\f32b"; }
+.bi-envelope-fill::before { content: "\f32c"; }
+.bi-envelope-open-fill::before { content: "\f32d"; }
+.bi-envelope-open::before { content: "\f32e"; }
+.bi-envelope::before { content: "\f32f"; }
+.bi-eraser-fill::before { content: "\f330"; }
+.bi-eraser::before { content: "\f331"; }
+.bi-exclamation-circle-fill::before { content: "\f332"; }
+.bi-exclamation-circle::before { content: "\f333"; }
+.bi-exclamation-diamond-fill::before { content: "\f334"; }
+.bi-exclamation-diamond::before { content: "\f335"; }
+.bi-exclamation-octagon-fill::before { content: "\f336"; }
+.bi-exclamation-octagon::before { content: "\f337"; }
+.bi-exclamation-square-fill::before { content: "\f338"; }
+.bi-exclamation-square::before { content: "\f339"; }
+.bi-exclamation-triangle-fill::before { content: "\f33a"; }
+.bi-exclamation-triangle::before { content: "\f33b"; }
+.bi-exclamation::before { content: "\f33c"; }
+.bi-exclude::before { content: "\f33d"; }
+.bi-eye-fill::before { content: "\f33e"; }
+.bi-eye-slash-fill::before { content: "\f33f"; }
+.bi-eye-slash::before { content: "\f340"; }
+.bi-eye::before { content: "\f341"; }
+.bi-eyedropper::before { content: "\f342"; }
+.bi-eyeglasses::before { content: "\f343"; }
+.bi-facebook::before { content: "\f344"; }
+.bi-file-arrow-down-fill::before { content: "\f345"; }
+.bi-file-arrow-down::before { content: "\f346"; }
+.bi-file-arrow-up-fill::before { content: "\f347"; }
+.bi-file-arrow-up::before { content: "\f348"; }
+.bi-file-bar-graph-fill::before { content: "\f349"; }
+.bi-file-bar-graph::before { content: "\f34a"; }
+.bi-file-binary-fill::before { content: "\f34b"; }
+.bi-file-binary::before { content: "\f34c"; }
+.bi-file-break-fill::before { content: "\f34d"; }
+.bi-file-break::before { content: "\f34e"; }
+.bi-file-check-fill::before { content: "\f34f"; }
+.bi-file-check::before { content: "\f350"; }
+.bi-file-code-fill::before { content: "\f351"; }
+.bi-file-code::before { content: "\f352"; }
+.bi-file-diff-fill::before { content: "\f353"; }
+.bi-file-diff::before { content: "\f354"; }
+.bi-file-earmark-arrow-down-fill::before { content: "\f355"; }
+.bi-file-earmark-arrow-down::before { content: "\f356"; }
+.bi-file-earmark-arrow-up-fill::before { content: "\f357"; }
+.bi-file-earmark-arrow-up::before { content: "\f358"; }
+.bi-file-earmark-bar-graph-fill::before { content: "\f359"; }
+.bi-file-earmark-bar-graph::before { content: "\f35a"; }
+.bi-file-earmark-binary-fill::before { content: "\f35b"; }
+.bi-file-earmark-binary::before { content: "\f35c"; }
+.bi-file-earmark-break-fill::before { content: "\f35d"; }
+.bi-file-earmark-break::before { content: "\f35e"; }
+.bi-file-earmark-check-fill::before { content: "\f35f"; }
+.bi-file-earmark-check::before { content: "\f360"; }
+.bi-file-earmark-code-fill::before { content: "\f361"; }
+.bi-file-earmark-code::before { content: "\f362"; }
+.bi-file-earmark-diff-fill::before { content: "\f363"; }
+.bi-file-earmark-diff::before { content: "\f364"; }
+.bi-file-earmark-easel-fill::before { content: "\f365"; }
+.bi-file-earmark-easel::before { content: "\f366"; }
+.bi-file-earmark-excel-fill::before { content: "\f367"; }
+.bi-file-earmark-excel::before { content: "\f368"; }
+.bi-file-earmark-fill::before { content: "\f369"; }
+.bi-file-earmark-font-fill::before { content: "\f36a"; }
+.bi-file-earmark-font::before { content: "\f36b"; }
+.bi-file-earmark-image-fill::before { content: "\f36c"; }
+.bi-file-earmark-image::before { content: "\f36d"; }
+.bi-file-earmark-lock-fill::before { content: "\f36e"; }
+.bi-file-earmark-lock::before { content: "\f36f"; }
+.bi-file-earmark-lock2-fill::before { content: "\f370"; }
+.bi-file-earmark-lock2::before { content: "\f371"; }
+.bi-file-earmark-medical-fill::before { content: "\f372"; }
+.bi-file-earmark-medical::before { content: "\f373"; }
+.bi-file-earmark-minus-fill::before { content: "\f374"; }
+.bi-file-earmark-minus::before { content: "\f375"; }
+.bi-file-earmark-music-fill::before { content: "\f376"; }
+.bi-file-earmark-music::before { content: "\f377"; }
+.bi-file-earmark-person-fill::before { content: "\f378"; }
+.bi-file-earmark-person::before { content: "\f379"; }
+.bi-file-earmark-play-fill::before { content: "\f37a"; }
+.bi-file-earmark-play::before { content: "\f37b"; }
+.bi-file-earmark-plus-fill::before { content: "\f37c"; }
+.bi-file-earmark-plus::before { content: "\f37d"; }
+.bi-file-earmark-post-fill::before { content: "\f37e"; }
+.bi-file-earmark-post::before { content: "\f37f"; }
+.bi-file-earmark-ppt-fill::before { content: "\f380"; }
+.bi-file-earmark-ppt::before { content: "\f381"; }
+.bi-file-earmark-richtext-fill::before { content: "\f382"; }
+.bi-file-earmark-richtext::before { content: "\f383"; }
+.bi-file-earmark-ruled-fill::before { content: "\f384"; }
+.bi-file-earmark-ruled::before { content: "\f385"; }
+.bi-file-earmark-slides-fill::before { content: "\f386"; }
+.bi-file-earmark-slides::before { content: "\f387"; }
+.bi-file-earmark-spreadsheet-fill::before { content: "\f388"; }
+.bi-file-earmark-spreadsheet::before { content: "\f389"; }
+.bi-file-earmark-text-fill::before { content: "\f38a"; }
+.bi-file-earmark-text::before { content: "\f38b"; }
+.bi-file-earmark-word-fill::before { content: "\f38c"; }
+.bi-file-earmark-word::before { content: "\f38d"; }
+.bi-file-earmark-x-fill::before { content: "\f38e"; }
+.bi-file-earmark-x::before { content: "\f38f"; }
+.bi-file-earmark-zip-fill::before { content: "\f390"; }
+.bi-file-earmark-zip::before { content: "\f391"; }
+.bi-file-earmark::before { content: "\f392"; }
+.bi-file-easel-fill::before { content: "\f393"; }
+.bi-file-easel::before { content: "\f394"; }
+.bi-file-excel-fill::before { content: "\f395"; }
+.bi-file-excel::before { content: "\f396"; }
+.bi-file-fill::before { content: "\f397"; }
+.bi-file-font-fill::before { content: "\f398"; }
+.bi-file-font::before { content: "\f399"; }
+.bi-file-image-fill::before { content: "\f39a"; }
+.bi-file-image::before { content: "\f39b"; }
+.bi-file-lock-fill::before { content: "\f39c"; }
+.bi-file-lock::before { content: "\f39d"; }
+.bi-file-lock2-fill::before { content: "\f39e"; }
+.bi-file-lock2::before { content: "\f39f"; }
+.bi-file-medical-fill::before { content: "\f3a0"; }
+.bi-file-medical::before { content: "\f3a1"; }
+.bi-file-minus-fill::before { content: "\f3a2"; }
+.bi-file-minus::before { content: "\f3a3"; }
+.bi-file-music-fill::before { content: "\f3a4"; }
+.bi-file-music::before { content: "\f3a5"; }
+.bi-file-person-fill::before { content: "\f3a6"; }
+.bi-file-person::before { content: "\f3a7"; }
+.bi-file-play-fill::before { content: "\f3a8"; }
+.bi-file-play::before { content: "\f3a9"; }
+.bi-file-plus-fill::before { content: "\f3aa"; }
+.bi-file-plus::before { content: "\f3ab"; }
+.bi-file-post-fill::before { content: "\f3ac"; }
+.bi-file-post::before { content: "\f3ad"; }
+.bi-file-ppt-fill::before { content: "\f3ae"; }
+.bi-file-ppt::before { content: "\f3af"; }
+.bi-file-richtext-fill::before { content: "\f3b0"; }
+.bi-file-richtext::before { content: "\f3b1"; }
+.bi-file-ruled-fill::before { content: "\f3b2"; }
+.bi-file-ruled::before { content: "\f3b3"; }
+.bi-file-slides-fill::before { content: "\f3b4"; }
+.bi-file-slides::before { content: "\f3b5"; }
+.bi-file-spreadsheet-fill::before { content: "\f3b6"; }
+.bi-file-spreadsheet::before { content: "\f3b7"; }
+.bi-file-text-fill::before { content: "\f3b8"; }
+.bi-file-text::before { content: "\f3b9"; }
+.bi-file-word-fill::before { content: "\f3ba"; }
+.bi-file-word::before { content: "\f3bb"; }
+.bi-file-x-fill::before { content: "\f3bc"; }
+.bi-file-x::before { content: "\f3bd"; }
+.bi-file-zip-fill::before { content: "\f3be"; }
+.bi-file-zip::before { content: "\f3bf"; }
+.bi-file::before { content: "\f3c0"; }
+.bi-files-alt::before { content: "\f3c1"; }
+.bi-files::before { content: "\f3c2"; }
+.bi-film::before { content: "\f3c3"; }
+.bi-filter-circle-fill::before { content: "\f3c4"; }
+.bi-filter-circle::before { content: "\f3c5"; }
+.bi-filter-left::before { content: "\f3c6"; }
+.bi-filter-right::before { content: "\f3c7"; }
+.bi-filter-square-fill::before { content: "\f3c8"; }
+.bi-filter-square::before { content: "\f3c9"; }
+.bi-filter::before { content: "\f3ca"; }
+.bi-flag-fill::before { content: "\f3cb"; }
+.bi-flag::before { content: "\f3cc"; }
+.bi-flower1::before { content: "\f3cd"; }
+.bi-flower2::before { content: "\f3ce"; }
+.bi-flower3::before { content: "\f3cf"; }
+.bi-folder-check::before { content: "\f3d0"; }
+.bi-folder-fill::before { content: "\f3d1"; }
+.bi-folder-minus::before { content: "\f3d2"; }
+.bi-folder-plus::before { content: "\f3d3"; }
+.bi-folder-symlink-fill::before { content: "\f3d4"; }
+.bi-folder-symlink::before { content: "\f3d5"; }
+.bi-folder-x::before { content: "\f3d6"; }
+.bi-folder::before { content: "\f3d7"; }
+.bi-folder2-open::before { content: "\f3d8"; }
+.bi-folder2::before { content: "\f3d9"; }
+.bi-fonts::before { content: "\f3da"; }
+.bi-forward-fill::before { content: "\f3db"; }
+.bi-forward::before { content: "\f3dc"; }
+.bi-front::before { content: "\f3dd"; }
+.bi-fullscreen-exit::before { content: "\f3de"; }
+.bi-fullscreen::before { content: "\f3df"; }
+.bi-funnel-fill::before { content: "\f3e0"; }
+.bi-funnel::before { content: "\f3e1"; }
+.bi-gear-fill::before { content: "\f3e2"; }
+.bi-gear-wide-connected::before { content: "\f3e3"; }
+.bi-gear-wide::before { content: "\f3e4"; }
+.bi-gear::before { content: "\f3e5"; }
+.bi-gem::before { content: "\f3e6"; }
+.bi-geo-alt-fill::before { content: "\f3e7"; }
+.bi-geo-alt::before { content: "\f3e8"; }
+.bi-geo-fill::before { content: "\f3e9"; }
+.bi-geo::before { content: "\f3ea"; }
+.bi-gift-fill::before { content: "\f3eb"; }
+.bi-gift::before { content: "\f3ec"; }
+.bi-github::before { content: "\f3ed"; }
+.bi-globe::before { content: "\f3ee"; }
+.bi-globe2::before { content: "\f3ef"; }
+.bi-google::before { content: "\f3f0"; }
+.bi-graph-down::before { content: "\f3f1"; }
+.bi-graph-up::before { content: "\f3f2"; }
+.bi-grid-1x2-fill::before { content: "\f3f3"; }
+.bi-grid-1x2::before { content: "\f3f4"; }
+.bi-grid-3x2-gap-fill::before { content: "\f3f5"; }
+.bi-grid-3x2-gap::before { content: "\f3f6"; }
+.bi-grid-3x2::before { content: "\f3f7"; }
+.bi-grid-3x3-gap-fill::before { content: "\f3f8"; }
+.bi-grid-3x3-gap::before { content: "\f3f9"; }
+.bi-grid-3x3::before { content: "\f3fa"; }
+.bi-grid-fill::before { content: "\f3fb"; }
+.bi-grid::before { content: "\f3fc"; }
+.bi-grip-horizontal::before { content: "\f3fd"; }
+.bi-grip-vertical::before { content: "\f3fe"; }
+.bi-hammer::before { content: "\f3ff"; }
+.bi-hand-index-fill::before { content: "\f400"; }
+.bi-hand-index-thumb-fill::before { content: "\f401"; }
+.bi-hand-index-thumb::before { content: "\f402"; }
+.bi-hand-index::before { content: "\f403"; }
+.bi-hand-thumbs-down-fill::before { content: "\f404"; }
+.bi-hand-thumbs-down::before { content: "\f405"; }
+.bi-hand-thumbs-up-fill::before { content: "\f406"; }
+.bi-hand-thumbs-up::before { content: "\f407"; }
+.bi-handbag-fill::before { content: "\f408"; }
+.bi-handbag::before { content: "\f409"; }
+.bi-hash::before { content: "\f40a"; }
+.bi-hdd-fill::before { content: "\f40b"; }
+.bi-hdd-network-fill::before { content: "\f40c"; }
+.bi-hdd-network::before { content: "\f40d"; }
+.bi-hdd-rack-fill::before { content: "\f40e"; }
+.bi-hdd-rack::before { content: "\f40f"; }
+.bi-hdd-stack-fill::before { content: "\f410"; }
+.bi-hdd-stack::before { content: "\f411"; }
+.bi-hdd::before { content: "\f412"; }
+.bi-headphones::before { content: "\f413"; }
+.bi-headset::before { content: "\f414"; }
+.bi-heart-fill::before { content: "\f415"; }
+.bi-heart-half::before { content: "\f416"; }
+.bi-heart::before { content: "\f417"; }
+.bi-heptagon-fill::before { content: "\f418"; }
+.bi-heptagon-half::before { content: "\f419"; }
+.bi-heptagon::before { content: "\f41a"; }
+.bi-hexagon-fill::before { content: "\f41b"; }
+.bi-hexagon-half::before { content: "\f41c"; }
+.bi-hexagon::before { content: "\f41d"; }
+.bi-hourglass-bottom::before { content: "\f41e"; }
+.bi-hourglass-split::before { content: "\f41f"; }
+.bi-hourglass-top::before { content: "\f420"; }
+.bi-hourglass::before { content: "\f421"; }
+.bi-house-door-fill::before { content: "\f422"; }
+.bi-house-door::before { content: "\f423"; }
+.bi-house-fill::before { content: "\f424"; }
+.bi-house::before { content: "\f425"; }
+.bi-hr::before { content: "\f426"; }
+.bi-hurricane::before { content: "\f427"; }
+.bi-image-alt::before { content: "\f428"; }
+.bi-image-fill::before { content: "\f429"; }
+.bi-image::before { content: "\f42a"; }
+.bi-images::before { content: "\f42b"; }
+.bi-inbox-fill::before { content: "\f42c"; }
+.bi-inbox::before { content: "\f42d"; }
+.bi-inboxes-fill::before { content: "\f42e"; }
+.bi-inboxes::before { content: "\f42f"; }
+.bi-info-circle-fill::before { content: "\f430"; }
+.bi-info-circle::before { content: "\f431"; }
+.bi-info-square-fill::before { content: "\f432"; }
+.bi-info-square::before { content: "\f433"; }
+.bi-info::before { content: "\f434"; }
+.bi-input-cursor-text::before { content: "\f435"; }
+.bi-input-cursor::before { content: "\f436"; }
+.bi-instagram::before { content: "\f437"; }
+.bi-intersect::before { content: "\f438"; }
+.bi-journal-album::before { content: "\f439"; }
+.bi-journal-arrow-down::before { content: "\f43a"; }
+.bi-journal-arrow-up::before { content: "\f43b"; }
+.bi-journal-bookmark-fill::before { content: "\f43c"; }
+.bi-journal-bookmark::before { content: "\f43d"; }
+.bi-journal-check::before { content: "\f43e"; }
+.bi-journal-code::before { content: "\f43f"; }
+.bi-journal-medical::before { content: "\f440"; }
+.bi-journal-minus::before { content: "\f441"; }
+.bi-journal-plus::before { content: "\f442"; }
+.bi-journal-richtext::before { content: "\f443"; }
+.bi-journal-text::before { content: "\f444"; }
+.bi-journal-x::before { content: "\f445"; }
+.bi-journal::before { content: "\f446"; }
+.bi-journals::before { content: "\f447"; }
+.bi-joystick::before { content: "\f448"; }
+.bi-justify-left::before { content: "\f449"; }
+.bi-justify-right::before { content: "\f44a"; }
+.bi-justify::before { content: "\f44b"; }
+.bi-kanban-fill::before { content: "\f44c"; }
+.bi-kanban::before { content: "\f44d"; }
+.bi-key-fill::before { content: "\f44e"; }
+.bi-key::before { content: "\f44f"; }
+.bi-keyboard-fill::before { content: "\f450"; }
+.bi-keyboard::before { content: "\f451"; }
+.bi-ladder::before { content: "\f452"; }
+.bi-lamp-fill::before { content: "\f453"; }
+.bi-lamp::before { content: "\f454"; }
+.bi-laptop-fill::before { content: "\f455"; }
+.bi-laptop::before { content: "\f456"; }
+.bi-layer-backward::before { content: "\f457"; }
+.bi-layer-forward::before { content: "\f458"; }
+.bi-layers-fill::before { content: "\f459"; }
+.bi-layers-half::before { content: "\f45a"; }
+.bi-layers::before { content: "\f45b"; }
+.bi-layout-sidebar-inset-reverse::before { content: "\f45c"; }
+.bi-layout-sidebar-inset::before { content: "\f45d"; }
+.bi-layout-sidebar-reverse::before { content: "\f45e"; }
+.bi-layout-sidebar::before { content: "\f45f"; }
+.bi-layout-split::before { content: "\f460"; }
+.bi-layout-text-sidebar-reverse::before { content: "\f461"; }
+.bi-layout-text-sidebar::before { content: "\f462"; }
+.bi-layout-text-window-reverse::before { content: "\f463"; }
+.bi-layout-text-window::before { content: "\f464"; }
+.bi-layout-three-columns::before { content: "\f465"; }
+.bi-layout-wtf::before { content: "\f466"; }
+.bi-life-preserver::before { content: "\f467"; }
+.bi-lightbulb-fill::before { content: "\f468"; }
+.bi-lightbulb-off-fill::before { content: "\f469"; }
+.bi-lightbulb-off::before { content: "\f46a"; }
+.bi-lightbulb::before { content: "\f46b"; }
+.bi-lightning-charge-fill::before { content: "\f46c"; }
+.bi-lightning-charge::before { content: "\f46d"; }
+.bi-lightning-fill::before { content: "\f46e"; }
+.bi-lightning::before { content: "\f46f"; }
+.bi-link-45deg::before { content: "\f470"; }
+.bi-link::before { content: "\f471"; }
+.bi-linkedin::before { content: "\f472"; }
+.bi-list-check::before { content: "\f473"; }
+.bi-list-nested::before { content: "\f474"; }
+.bi-list-ol::before { content: "\f475"; }
+.bi-list-stars::before { content: "\f476"; }
+.bi-list-task::before { content: "\f477"; }
+.bi-list-ul::before { content: "\f478"; }
+.bi-list::before { content: "\f479"; }
+.bi-lock-fill::before { content: "\f47a"; }
+.bi-lock::before { content: "\f47b"; }
+.bi-mailbox::before { content: "\f47c"; }
+.bi-mailbox2::before { content: "\f47d"; }
+.bi-map-fill::before { content: "\f47e"; }
+.bi-map::before { content: "\f47f"; }
+.bi-markdown-fill::before { content: "\f480"; }
+.bi-markdown::before { content: "\f481"; }
+.bi-mask::before { content: "\f482"; }
+.bi-megaphone-fill::before { content: "\f483"; }
+.bi-megaphone::before { content: "\f484"; }
+.bi-menu-app-fill::before { content: "\f485"; }
+.bi-menu-app::before { content: "\f486"; }
+.bi-menu-button-fill::before { content: "\f487"; }
+.bi-menu-button-wide-fill::before { content: "\f488"; }
+.bi-menu-button-wide::before { content: "\f489"; }
+.bi-menu-button::before { content: "\f48a"; }
+.bi-menu-down::before { content: "\f48b"; }
+.bi-menu-up::before { content: "\f48c"; }
+.bi-mic-fill::before { content: "\f48d"; }
+.bi-mic-mute-fill::before { content: "\f48e"; }
+.bi-mic-mute::before { content: "\f48f"; }
+.bi-mic::before { content: "\f490"; }
+.bi-minecart-loaded::before { content: "\f491"; }
+.bi-minecart::before { content: "\f492"; }
+.bi-moisture::before { content: "\f493"; }
+.bi-moon-fill::before { content: "\f494"; }
+.bi-moon-stars-fill::before { content: "\f495"; }
+.bi-moon-stars::before { content: "\f496"; }
+.bi-moon::before { content: "\f497"; }
+.bi-mouse-fill::before { content: "\f498"; }
+.bi-mouse::before { content: "\f499"; }
+.bi-mouse2-fill::before { content: "\f49a"; }
+.bi-mouse2::before { content: "\f49b"; }
+.bi-mouse3-fill::before { content: "\f49c"; }
+.bi-mouse3::before { content: "\f49d"; }
+.bi-music-note-beamed::before { content: "\f49e"; }
+.bi-music-note-list::before { content: "\f49f"; }
+.bi-music-note::before { content: "\f4a0"; }
+.bi-music-player-fill::before { content: "\f4a1"; }
+.bi-music-player::before { content: "\f4a2"; }
+.bi-newspaper::before { content: "\f4a3"; }
+.bi-node-minus-fill::before { content: "\f4a4"; }
+.bi-node-minus::before { content: "\f4a5"; }
+.bi-node-plus-fill::before { content: "\f4a6"; }
+.bi-node-plus::before { content: "\f4a7"; }
+.bi-nut-fill::before { content: "\f4a8"; }
+.bi-nut::before { content: "\f4a9"; }
+.bi-octagon-fill::before { content: "\f4aa"; }
+.bi-octagon-half::before { content: "\f4ab"; }
+.bi-octagon::before { content: "\f4ac"; }
+.bi-option::before { content: "\f4ad"; }
+.bi-outlet::before { content: "\f4ae"; }
+.bi-paint-bucket::before { content: "\f4af"; }
+.bi-palette-fill::before { content: "\f4b0"; }
+.bi-palette::before { content: "\f4b1"; }
+.bi-palette2::before { content: "\f4b2"; }
+.bi-paperclip::before { content: "\f4b3"; }
+.bi-paragraph::before { content: "\f4b4"; }
+.bi-patch-check-fill::before { content: "\f4b5"; }
+.bi-patch-check::before { content: "\f4b6"; }
+.bi-patch-exclamation-fill::before { content: "\f4b7"; }
+.bi-patch-exclamation::before { content: "\f4b8"; }
+.bi-patch-minus-fill::before { content: "\f4b9"; }
+.bi-patch-minus::before { content: "\f4ba"; }
+.bi-patch-plus-fill::before { content: "\f4bb"; }
+.bi-patch-plus::before { content: "\f4bc"; }
+.bi-patch-question-fill::before { content: "\f4bd"; }
+.bi-patch-question::before { content: "\f4be"; }
+.bi-pause-btn-fill::before { content: "\f4bf"; }
+.bi-pause-btn::before { content: "\f4c0"; }
+.bi-pause-circle-fill::before { content: "\f4c1"; }
+.bi-pause-circle::before { content: "\f4c2"; }
+.bi-pause-fill::before { content: "\f4c3"; }
+.bi-pause::before { content: "\f4c4"; }
+.bi-peace-fill::before { content: "\f4c5"; }
+.bi-peace::before { content: "\f4c6"; }
+.bi-pen-fill::before { content: "\f4c7"; }
+.bi-pen::before { content: "\f4c8"; }
+.bi-pencil-fill::before { content: "\f4c9"; }
+.bi-pencil-square::before { content: "\f4ca"; }
+.bi-pencil::before { content: "\f4cb"; }
+.bi-pentagon-fill::before { content: "\f4cc"; }
+.bi-pentagon-half::before { content: "\f4cd"; }
+.bi-pentagon::before { content: "\f4ce"; }
+.bi-people-fill::before { content: "\f4cf"; }
+.bi-people::before { content: "\f4d0"; }
+.bi-percent::before { content: "\f4d1"; }
+.bi-person-badge-fill::before { content: "\f4d2"; }
+.bi-person-badge::before { content: "\f4d3"; }
+.bi-person-bounding-box::before { content: "\f4d4"; }
+.bi-person-check-fill::before { content: "\f4d5"; }
+.bi-person-check::before { content: "\f4d6"; }
+.bi-person-circle::before { content: "\f4d7"; }
+.bi-person-dash-fill::before { content: "\f4d8"; }
+.bi-person-dash::before { content: "\f4d9"; }
+.bi-person-fill::before { content: "\f4da"; }
+.bi-person-lines-fill::before { content: "\f4db"; }
+.bi-person-plus-fill::before { content: "\f4dc"; }
+.bi-person-plus::before { content: "\f4dd"; }
+.bi-person-square::before { content: "\f4de"; }
+.bi-person-x-fill::before { content: "\f4df"; }
+.bi-person-x::before { content: "\f4e0"; }
+.bi-person::before { content: "\f4e1"; }
+.bi-phone-fill::before { content: "\f4e2"; }
+.bi-phone-landscape-fill::before { content: "\f4e3"; }
+.bi-phone-landscape::before { content: "\f4e4"; }
+.bi-phone-vibrate-fill::before { content: "\f4e5"; }
+.bi-phone-vibrate::before { content: "\f4e6"; }
+.bi-phone::before { content: "\f4e7"; }
+.bi-pie-chart-fill::before { content: "\f4e8"; }
+.bi-pie-chart::before { content: "\f4e9"; }
+.bi-pin-angle-fill::before { content: "\f4ea"; }
+.bi-pin-angle::before { content: "\f4eb"; }
+.bi-pin-fill::before { content: "\f4ec"; }
+.bi-pin::before { content: "\f4ed"; }
+.bi-pip-fill::before { content: "\f4ee"; }
+.bi-pip::before { content: "\f4ef"; }
+.bi-play-btn-fill::before { content: "\f4f0"; }
+.bi-play-btn::before { content: "\f4f1"; }
+.bi-play-circle-fill::before { content: "\f4f2"; }
+.bi-play-circle::before { content: "\f4f3"; }
+.bi-play-fill::before { content: "\f4f4"; }
+.bi-play::before { content: "\f4f5"; }
+.bi-plug-fill::before { content: "\f4f6"; }
+.bi-plug::before { content: "\f4f7"; }
+.bi-plus-circle-dotted::before { content: "\f4f8"; }
+.bi-plus-circle-fill::before { content: "\f4f9"; }
+.bi-plus-circle::before { content: "\f4fa"; }
+.bi-plus-square-dotted::before { content: "\f4fb"; }
+.bi-plus-square-fill::before { content: "\f4fc"; }
+.bi-plus-square::before { content: "\f4fd"; }
+.bi-plus::before { content: "\f4fe"; }
+.bi-power::before { content: "\f4ff"; }
+.bi-printer-fill::before { content: "\f500"; }
+.bi-printer::before { content: "\f501"; }
+.bi-puzzle-fill::before { content: "\f502"; }
+.bi-puzzle::before { content: "\f503"; }
+.bi-question-circle-fill::before { content: "\f504"; }
+.bi-question-circle::before { content: "\f505"; }
+.bi-question-diamond-fill::before { content: "\f506"; }
+.bi-question-diamond::before { content: "\f507"; }
+.bi-question-octagon-fill::before { content: "\f508"; }
+.bi-question-octagon::before { content: "\f509"; }
+.bi-question-square-fill::before { content: "\f50a"; }
+.bi-question-square::before { content: "\f50b"; }
+.bi-question::before { content: "\f50c"; }
+.bi-rainbow::before { content: "\f50d"; }
+.bi-receipt-cutoff::before { content: "\f50e"; }
+.bi-receipt::before { content: "\f50f"; }
+.bi-reception-0::before { content: "\f510"; }
+.bi-reception-1::before { content: "\f511"; }
+.bi-reception-2::before { content: "\f512"; }
+.bi-reception-3::before { content: "\f513"; }
+.bi-reception-4::before { content: "\f514"; }
+.bi-record-btn-fill::before { content: "\f515"; }
+.bi-record-btn::before { content: "\f516"; }
+.bi-record-circle-fill::before { content: "\f517"; }
+.bi-record-circle::before { content: "\f518"; }
+.bi-record-fill::before { content: "\f519"; }
+.bi-record::before { content: "\f51a"; }
+.bi-record2-fill::before { content: "\f51b"; }
+.bi-record2::before { content: "\f51c"; }
+.bi-reply-all-fill::before { content: "\f51d"; }
+.bi-reply-all::before { content: "\f51e"; }
+.bi-reply-fill::before { content: "\f51f"; }
+.bi-reply::before { content: "\f520"; }
+.bi-rss-fill::before { content: "\f521"; }
+.bi-rss::before { content: "\f522"; }
+.bi-rulers::before { content: "\f523"; }
+.bi-save-fill::before { content: "\f524"; }
+.bi-save::before { content: "\f525"; }
+.bi-save2-fill::before { content: "\f526"; }
+.bi-save2::before { content: "\f527"; }
+.bi-scissors::before { content: "\f528"; }
+.bi-screwdriver::before { content: "\f529"; }
+.bi-search::before { content: "\f52a"; }
+.bi-segmented-nav::before { content: "\f52b"; }
+.bi-server::before { content: "\f52c"; }
+.bi-share-fill::before { content: "\f52d"; }
+.bi-share::before { content: "\f52e"; }
+.bi-shield-check::before { content: "\f52f"; }
+.bi-shield-exclamation::before { content: "\f530"; }
+.bi-shield-fill-check::before { content: "\f531"; }
+.bi-shield-fill-exclamation::before { content: "\f532"; }
+.bi-shield-fill-minus::before { content: "\f533"; }
+.bi-shield-fill-plus::before { content: "\f534"; }
+.bi-shield-fill-x::before { content: "\f535"; }
+.bi-shield-fill::before { content: "\f536"; }
+.bi-shield-lock-fill::before { content: "\f537"; }
+.bi-shield-lock::before { content: "\f538"; }
+.bi-shield-minus::before { content: "\f539"; }
+.bi-shield-plus::before { content: "\f53a"; }
+.bi-shield-shaded::before { content: "\f53b"; }
+.bi-shield-slash-fill::before { content: "\f53c"; }
+.bi-shield-slash::before { content: "\f53d"; }
+.bi-shield-x::before { content: "\f53e"; }
+.bi-shield::before { content: "\f53f"; }
+.bi-shift-fill::before { content: "\f540"; }
+.bi-shift::before { content: "\f541"; }
+.bi-shop-window::before { content: "\f542"; }
+.bi-shop::before { content: "\f543"; }
+.bi-shuffle::before { content: "\f544"; }
+.bi-signpost-2-fill::before { content: "\f545"; }
+.bi-signpost-2::before { content: "\f546"; }
+.bi-signpost-fill::before { content: "\f547"; }
+.bi-signpost-split-fill::before { content: "\f548"; }
+.bi-signpost-split::before { content: "\f549"; }
+.bi-signpost::before { content: "\f54a"; }
+.bi-sim-fill::before { content: "\f54b"; }
+.bi-sim::before { content: "\f54c"; }
+.bi-skip-backward-btn-fill::before { content: "\f54d"; }
+.bi-skip-backward-btn::before { content: "\f54e"; }
+.bi-skip-backward-circle-fill::before { content: "\f54f"; }
+.bi-skip-backward-circle::before { content: "\f550"; }
+.bi-skip-backward-fill::before { content: "\f551"; }
+.bi-skip-backward::before { content: "\f552"; }
+.bi-skip-end-btn-fill::before { content: "\f553"; }
+.bi-skip-end-btn::before { content: "\f554"; }
+.bi-skip-end-circle-fill::before { content: "\f555"; }
+.bi-skip-end-circle::before { content: "\f556"; }
+.bi-skip-end-fill::before { content: "\f557"; }
+.bi-skip-end::before { content: "\f558"; }
+.bi-skip-forward-btn-fill::before { content: "\f559"; }
+.bi-skip-forward-btn::before { content: "\f55a"; }
+.bi-skip-forward-circle-fill::before { content: "\f55b"; }
+.bi-skip-forward-circle::before { content: "\f55c"; }
+.bi-skip-forward-fill::before { content: "\f55d"; }
+.bi-skip-forward::before { content: "\f55e"; }
+.bi-skip-start-btn-fill::before { content: "\f55f"; }
+.bi-skip-start-btn::before { content: "\f560"; }
+.bi-skip-start-circle-fill::before { content: "\f561"; }
+.bi-skip-start-circle::before { content: "\f562"; }
+.bi-skip-start-fill::before { content: "\f563"; }
+.bi-skip-start::before { content: "\f564"; }
+.bi-slack::before { content: "\f565"; }
+.bi-slash-circle-fill::before { content: "\f566"; }
+.bi-slash-circle::before { content: "\f567"; }
+.bi-slash-square-fill::before { content: "\f568"; }
+.bi-slash-square::before { content: "\f569"; }
+.bi-slash::before { content: "\f56a"; }
+.bi-sliders::before { content: "\f56b"; }
+.bi-smartwatch::before { content: "\f56c"; }
+.bi-snow::before { content: "\f56d"; }
+.bi-snow2::before { content: "\f56e"; }
+.bi-snow3::before { content: "\f56f"; }
+.bi-sort-alpha-down-alt::before { content: "\f570"; }
+.bi-sort-alpha-down::before { content: "\f571"; }
+.bi-sort-alpha-up-alt::before { content: "\f572"; }
+.bi-sort-alpha-up::before { content: "\f573"; }
+.bi-sort-down-alt::before { content: "\f574"; }
+.bi-sort-down::before { content: "\f575"; }
+.bi-sort-numeric-down-alt::before { content: "\f576"; }
+.bi-sort-numeric-down::before { content: "\f577"; }
+.bi-sort-numeric-up-alt::before { content: "\f578"; }
+.bi-sort-numeric-up::before { content: "\f579"; }
+.bi-sort-up-alt::before { content: "\f57a"; }
+.bi-sort-up::before { content: "\f57b"; }
+.bi-soundwave::before { content: "\f57c"; }
+.bi-speaker-fill::before { content: "\f57d"; }
+.bi-speaker::before { content: "\f57e"; }
+.bi-speedometer::before { content: "\f57f"; }
+.bi-speedometer2::before { content: "\f580"; }
+.bi-spellcheck::before { content: "\f581"; }
+.bi-square-fill::before { content: "\f582"; }
+.bi-square-half::before { content: "\f583"; }
+.bi-square::before { content: "\f584"; }
+.bi-stack::before { content: "\f585"; }
+.bi-star-fill::before { content: "\f586"; }
+.bi-star-half::before { content: "\f587"; }
+.bi-star::before { content: "\f588"; }
+.bi-stars::before { content: "\f589"; }
+.bi-stickies-fill::before { content: "\f58a"; }
+.bi-stickies::before { content: "\f58b"; }
+.bi-sticky-fill::before { content: "\f58c"; }
+.bi-sticky::before { content: "\f58d"; }
+.bi-stop-btn-fill::before { content: "\f58e"; }
+.bi-stop-btn::before { content: "\f58f"; }
+.bi-stop-circle-fill::before { content: "\f590"; }
+.bi-stop-circle::before { content: "\f591"; }
+.bi-stop-fill::before { content: "\f592"; }
+.bi-stop::before { content: "\f593"; }
+.bi-stoplights-fill::before { content: "\f594"; }
+.bi-stoplights::before { content: "\f595"; }
+.bi-stopwatch-fill::before { content: "\f596"; }
+.bi-stopwatch::before { content: "\f597"; }
+.bi-subtract::before { content: "\f598"; }
+.bi-suit-club-fill::before { content: "\f599"; }
+.bi-suit-club::before { content: "\f59a"; }
+.bi-suit-diamond-fill::before { content: "\f59b"; }
+.bi-suit-diamond::before { content: "\f59c"; }
+.bi-suit-heart-fill::before { content: "\f59d"; }
+.bi-suit-heart::before { content: "\f59e"; }
+.bi-suit-spade-fill::before { content: "\f59f"; }
+.bi-suit-spade::before { content: "\f5a0"; }
+.bi-sun-fill::before { content: "\f5a1"; }
+.bi-sun::before { content: "\f5a2"; }
+.bi-sunglasses::before { content: "\f5a3"; }
+.bi-sunrise-fill::before { content: "\f5a4"; }
+.bi-sunrise::before { content: "\f5a5"; }
+.bi-sunset-fill::before { content: "\f5a6"; }
+.bi-sunset::before { content: "\f5a7"; }
+.bi-symmetry-horizontal::before { content: "\f5a8"; }
+.bi-symmetry-vertical::before { content: "\f5a9"; }
+.bi-table::before { content: "\f5aa"; }
+.bi-tablet-fill::before { content: "\f5ab"; }
+.bi-tablet-landscape-fill::before { content: "\f5ac"; }
+.bi-tablet-landscape::before { content: "\f5ad"; }
+.bi-tablet::before { content: "\f5ae"; }
+.bi-tag-fill::before { content: "\f5af"; }
+.bi-tag::before { content: "\f5b0"; }
+.bi-tags-fill::before { content: "\f5b1"; }
+.bi-tags::before { content: "\f5b2"; }
+.bi-telegram::before { content: "\f5b3"; }
+.bi-telephone-fill::before { content: "\f5b4"; }
+.bi-telephone-forward-fill::before { content: "\f5b5"; }
+.bi-telephone-forward::before { content: "\f5b6"; }
+.bi-telephone-inbound-fill::before { content: "\f5b7"; }
+.bi-telephone-inbound::before { content: "\f5b8"; }
+.bi-telephone-minus-fill::before { content: "\f5b9"; }
+.bi-telephone-minus::before { content: "\f5ba"; }
+.bi-telephone-outbound-fill::before { content: "\f5bb"; }
+.bi-telephone-outbound::before { content: "\f5bc"; }
+.bi-telephone-plus-fill::before { content: "\f5bd"; }
+.bi-telephone-plus::before { content: "\f5be"; }
+.bi-telephone-x-fill::before { content: "\f5bf"; }
+.bi-telephone-x::before { content: "\f5c0"; }
+.bi-telephone::before { content: "\f5c1"; }
+.bi-terminal-fill::before { content: "\f5c2"; }
+.bi-terminal::before { content: "\f5c3"; }
+.bi-text-center::before { content: "\f5c4"; }
+.bi-text-indent-left::before { content: "\f5c5"; }
+.bi-text-indent-right::before { content: "\f5c6"; }
+.bi-text-left::before { content: "\f5c7"; }
+.bi-text-paragraph::before { content: "\f5c8"; }
+.bi-text-right::before { content: "\f5c9"; }
+.bi-textarea-resize::before { content: "\f5ca"; }
+.bi-textarea-t::before { content: "\f5cb"; }
+.bi-textarea::before { content: "\f5cc"; }
+.bi-thermometer-half::before { content: "\f5cd"; }
+.bi-thermometer-high::before { content: "\f5ce"; }
+.bi-thermometer-low::before { content: "\f5cf"; }
+.bi-thermometer-snow::before { content: "\f5d0"; }
+.bi-thermometer-sun::before { content: "\f5d1"; }
+.bi-thermometer::before { content: "\f5d2"; }
+.bi-three-dots-vertical::before { content: "\f5d3"; }
+.bi-three-dots::before { content: "\f5d4"; }
+.bi-toggle-off::before { content: "\f5d5"; }
+.bi-toggle-on::before { content: "\f5d6"; }
+.bi-toggle2-off::before { content: "\f5d7"; }
+.bi-toggle2-on::before { content: "\f5d8"; }
+.bi-toggles::before { content: "\f5d9"; }
+.bi-toggles2::before { content: "\f5da"; }
+.bi-tools::before { content: "\f5db"; }
+.bi-tornado::before { content: "\f5dc"; }
+.bi-trash-fill::before { content: "\f5dd"; }
+.bi-trash::before { content: "\f5de"; }
+.bi-trash2-fill::before { content: "\f5df"; }
+.bi-trash2::before { content: "\f5e0"; }
+.bi-tree-fill::before { content: "\f5e1"; }
+.bi-tree::before { content: "\f5e2"; }
+.bi-triangle-fill::before { content: "\f5e3"; }
+.bi-triangle-half::before { content: "\f5e4"; }
+.bi-triangle::before { content: "\f5e5"; }
+.bi-trophy-fill::before { content: "\f5e6"; }
+.bi-trophy::before { content: "\f5e7"; }
+.bi-tropical-storm::before { content: "\f5e8"; }
+.bi-truck-flatbed::before { content: "\f5e9"; }
+.bi-truck::before { content: "\f5ea"; }
+.bi-tsunami::before { content: "\f5eb"; }
+.bi-tv-fill::before { content: "\f5ec"; }
+.bi-tv::before { content: "\f5ed"; }
+.bi-twitch::before { content: "\f5ee"; }
+.bi-twitter::before { content: "\f5ef"; }
+.bi-type-bold::before { content: "\f5f0"; }
+.bi-type-h1::before { content: "\f5f1"; }
+.bi-type-h2::before { content: "\f5f2"; }
+.bi-type-h3::before { content: "\f5f3"; }
+.bi-type-italic::before { content: "\f5f4"; }
+.bi-type-strikethrough::before { content: "\f5f5"; }
+.bi-type-underline::before { content: "\f5f6"; }
+.bi-type::before { content: "\f5f7"; }
+.bi-ui-checks-grid::before { content: "\f5f8"; }
+.bi-ui-checks::before { content: "\f5f9"; }
+.bi-ui-radios-grid::before { content: "\f5fa"; }
+.bi-ui-radios::before { content: "\f5fb"; }
+.bi-umbrella-fill::before { content: "\f5fc"; }
+.bi-umbrella::before { content: "\f5fd"; }
+.bi-union::before { content: "\f5fe"; }
+.bi-unlock-fill::before { content: "\f5ff"; }
+.bi-unlock::before { content: "\f600"; }
+.bi-upc-scan::before { content: "\f601"; }
+.bi-upc::before { content: "\f602"; }
+.bi-upload::before { content: "\f603"; }
+.bi-vector-pen::before { content: "\f604"; }
+.bi-view-list::before { content: "\f605"; }
+.bi-view-stacked::before { content: "\f606"; }
+.bi-vinyl-fill::before { content: "\f607"; }
+.bi-vinyl::before { content: "\f608"; }
+.bi-voicemail::before { content: "\f609"; }
+.bi-volume-down-fill::before { content: "\f60a"; }
+.bi-volume-down::before { content: "\f60b"; }
+.bi-volume-mute-fill::before { content: "\f60c"; }
+.bi-volume-mute::before { content: "\f60d"; }
+.bi-volume-off-fill::before { content: "\f60e"; }
+.bi-volume-off::before { content: "\f60f"; }
+.bi-volume-up-fill::before { content: "\f610"; }
+.bi-volume-up::before { content: "\f611"; }
+.bi-vr::before { content: "\f612"; }
+.bi-wallet-fill::before { content: "\f613"; }
+.bi-wallet::before { content: "\f614"; }
+.bi-wallet2::before { content: "\f615"; }
+.bi-watch::before { content: "\f616"; }
+.bi-water::before { content: "\f617"; }
+.bi-whatsapp::before { content: "\f618"; }
+.bi-wifi-1::before { content: "\f619"; }
+.bi-wifi-2::before { content: "\f61a"; }
+.bi-wifi-off::before { content: "\f61b"; }
+.bi-wifi::before { content: "\f61c"; }
+.bi-wind::before { content: "\f61d"; }
+.bi-window-dock::before { content: "\f61e"; }
+.bi-window-sidebar::before { content: "\f61f"; }
+.bi-window::before { content: "\f620"; }
+.bi-wrench::before { content: "\f621"; }
+.bi-x-circle-fill::before { content: "\f622"; }
+.bi-x-circle::before { content: "\f623"; }
+.bi-x-diamond-fill::before { content: "\f624"; }
+.bi-x-diamond::before { content: "\f625"; }
+.bi-x-octagon-fill::before { content: "\f626"; }
+.bi-x-octagon::before { content: "\f627"; }
+.bi-x-square-fill::before { content: "\f628"; }
+.bi-x-square::before { content: "\f629"; }
+.bi-x::before { content: "\f62a"; }
+.bi-youtube::before { content: "\f62b"; }
+.bi-zoom-in::before { content: "\f62c"; }
+.bi-zoom-out::before { content: "\f62d"; }
+.bi-bank::before { content: "\f62e"; }
+.bi-bank2::before { content: "\f62f"; }
+.bi-bell-slash-fill::before { content: "\f630"; }
+.bi-bell-slash::before { content: "\f631"; }
+.bi-cash-coin::before { content: "\f632"; }
+.bi-check-lg::before { content: "\f633"; }
+.bi-coin::before { content: "\f634"; }
+.bi-currency-bitcoin::before { content: "\f635"; }
+.bi-currency-dollar::before { content: "\f636"; }
+.bi-currency-euro::before { content: "\f637"; }
+.bi-currency-exchange::before { content: "\f638"; }
+.bi-currency-pound::before { content: "\f639"; }
+.bi-currency-yen::before { content: "\f63a"; }
+.bi-dash-lg::before { content: "\f63b"; }
+.bi-exclamation-lg::before { content: "\f63c"; }
+.bi-file-earmark-pdf-fill::before { content: "\f63d"; }
+.bi-file-earmark-pdf::before { content: "\f63e"; }
+.bi-file-pdf-fill::before { content: "\f63f"; }
+.bi-file-pdf::before { content: "\f640"; }
+.bi-gender-ambiguous::before { content: "\f641"; }
+.bi-gender-female::before { content: "\f642"; }
+.bi-gender-male::before { content: "\f643"; }
+.bi-gender-trans::before { content: "\f644"; }
+.bi-headset-vr::before { content: "\f645"; }
+.bi-info-lg::before { content: "\f646"; }
+.bi-mastodon::before { content: "\f647"; }
+.bi-messenger::before { content: "\f648"; }
+.bi-piggy-bank-fill::before { content: "\f649"; }
+.bi-piggy-bank::before { content: "\f64a"; }
+.bi-pin-map-fill::before { content: "\f64b"; }
+.bi-pin-map::before { content: "\f64c"; }
+.bi-plus-lg::before { content: "\f64d"; }
+.bi-question-lg::before { content: "\f64e"; }
+.bi-recycle::before { content: "\f64f"; }
+.bi-reddit::before { content: "\f650"; }
+.bi-safe-fill::before { content: "\f651"; }
+.bi-safe2-fill::before { content: "\f652"; }
+.bi-safe2::before { content: "\f653"; }
+.bi-sd-card-fill::before { content: "\f654"; }
+.bi-sd-card::before { content: "\f655"; }
+.bi-skype::before { content: "\f656"; }
+.bi-slash-lg::before { content: "\f657"; }
+.bi-translate::before { content: "\f658"; }
+.bi-x-lg::before { content: "\f659"; }
+.bi-safe::before { content: "\f65a"; }
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/build/014-responsive.css b/mailcow/src/mailcow-dockerized/data/web/css/build/014-responsive.css
new file mode 100644
index 0000000..2085568
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/build/014-responsive.css
@@ -0,0 +1,302 @@
+.space20 {
+  margin-bottom: 20px;
+}
+
+.btn-xs-lg>.lang-sm:after {
+  margin-left: 4px;
+}
+
+.bootstrap-select {
+  max-width: 350px;
+}
+
+.panel-login .apps .btn {
+  width: auto;
+  float: left;
+  margin-right: 10px;
+  margin-top: auto;
+}
+.panel-login .apps .btn:hover {
+  margin-top: 1px !important;
+  border-bottom-width: 3px;
+}
+
+@media (max-width: 767px) {
+  .panel-login .apps .btn {
+    width: 100%;
+    float: none;
+    margin-bottom: 10px;
+  }
+
+  .panel-login .apps .btn {
+    border-bottom-width: 4px;
+  }
+
+  .media-clearfix::after {
+    clear: both;
+    box-sizing: border-box;
+  }
+
+  .media-clearfix::before {
+    display: table;
+    content: " ";
+    box-sizing: border-box;
+  }
+
+  .xs-show {
+    display: block !important;
+  }
+
+  .js-tabcollapse-panel-group .panel{
+    border: none;
+    box-shadow: none;
+  }
+
+  .js-tabcollapse-panel-group .panel-body {
+    padding: 10px 0;
+  }
+
+  .js-tabcollapse-panel-group .js-tabcollapse-panel-body .panel-body {
+    padding: 0;
+  }
+
+  .js-tabcollapse-panel-body .panel-heading {
+    display: none;
+  }
+
+  .js-tabcollapse-panel-body .well,
+  .panel-body .form-inline.well {
+    border: none;
+    padding: 0;
+    margin: 0;
+    box-shadow: none;
+    background-color: #fff;
+  }
+
+  .js-tabcollapse-panel-heading {
+    display: block;
+    height: 37px;
+    line-height: 37px;
+    text-indent: 15px;
+  }
+  .js-tabcollapse-panel-heading:hover {
+    text-decoration: none;
+  }
+  .js-tabcollapse-panel-heading {
+    position: relative;
+  }
+  .js-tabcollapse-panel-heading:after {
+    content: '';
+    display: block;
+    position: absolute;
+    top: 17px;
+    right: 17px;
+    width: 0;
+    height: 0;
+    margin-left: 2px;
+    vertical-align: middle;
+    border-bottom: 4px dashed;
+    border-right: 4px solid transparent;
+    border-left: 4px solid transparent;
+  }
+  .js-tabcollapse-panel-heading.collapsed:after {
+    border-bottom: none;
+    border-top: 4px dashed;
+  }
+
+  .recent-login-success {
+  font-size: 14px;
+  margin-top: 10px !important;
+  }
+  .pull-xs-right {
+  float: right !important;
+  }
+  .pull-xs-right .dropdown-menu {
+  right: 0;
+  left: auto;
+  }
+  .text-xs-left {
+    text-align: left;
+  }
+  .text-xs-bold {
+    font-weight: bold;
+  }
+  .text-xs-bold .small {
+    font-weight: normal;
+    text-align: justify;
+  }
+  .help-block {
+    text-align: justify;
+  }
+  .btn.visible-xs-block {
+    width: 100%;
+    float: none;
+    white-space: normal;
+  }
+  .btn-group.footable-actions .btn.btn-xs-half,
+  .btn.visible-xs-block.btn-xs-half {
+    width: 50%;
+    float: left;
+  }
+  .btn-group.footable-actions .btn.btn-xs-third,
+  .btn.visible-xs-block.btn-xs-third {
+    width: 33.33%;
+    float: left;
+  }
+  .btn-group.footable-actions .btn.btn-xs-quart,
+  .btn.visible-xs-block.btn-xs-quart {
+    width: 25%;
+    float: left;
+  }
+  .btn.visible-xs-block.btn-sm,
+  .btn-xs-lg {
+    padding: 15px 16px 13px;
+    line-height: 15px;
+  }
+  .input-xs-lg {
+  height: 47px;
+    padding: 13px 16px;
+  }
+  .btn-group:not(.input-group-btn) {
+    display: flex;
+    flex-wrap: wrap;
+  }
+  .panel-login .btn-group {
+    display: block;
+  }
+  .mass-actions-user .btn-group {
+    float: none;
+  }
+  div[class^='mass-actions'] .dropdown-menu,
+  .panel-xs-lg .dropdown-menu,
+  .dropdown-menu.login {
+    width: 100%;
+  }
+  div[class^='mass-actions'] .btn-group .dropdown-menu {
+  top: 50%;
+  }
+  div[class^='mass-actions'] .btn-group .btn-group .dropdown-menu,
+  div.mass-actions-quarantine .btn-group .dropdown-menu,
+  .panel-xs-lg .dropdown-menu {
+    top: 100%;
+  }
+  div[class^='mass-actions'] .dropdown-menu>li>a,
+  .panel-xs-lg .dropdown-menu>li>a,
+  .dropdown-menu.login>li>a {
+    padding: 8px 20px;
+  }
+  div[class^='mass-actions'] .dropdown-header {
+    font-size: 14px;
+    font-weight: bold;
+  }
+  .space20 {
+    margin-bottom: 10px;
+  }
+  .top100 {
+    top: 100% !important;
+  }
+  .top33 {
+    top: 33% !important;
+  }
+  .footable-filtering .form {
+    width: 65%;
+  }
+  .btn-xs-lg>.lang-sm:after {
+    top: 1px;
+  }
+  table.footable>tfoot>tr.footable-paging>td {
+    text-align: left;
+  }
+  .footable-first-visible {
+    min-width: 55px;
+  }
+  table>tbody>tr>td>span.footable-toggle {
+    font-size: 24px;
+    margin-right: 14px !important;
+  }
+  table>tbody>tr>td>span.footable-toggle + input {
+    position: absolute;
+    left: 38px;
+  }
+  .pagination {
+    margin-bottom: 5px;
+  }
+  tr.footable-filtering>th>form {
+    width: 270px;
+  }
+  .mass-actions-mailbox {
+    padding: 0;
+  }
+  .panel-xs-lg .panel-heading {
+    height: 66px;
+    line-height: 47px;
+  }
+  .panel-xs-lg .btn-group .btn {
+    padding-right: 5px;
+    padding-left: 5px;
+  }
+  .bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn) {
+    width: 100%;
+  }
+  .btn-group:not(.bootstrap-select) {
+    width: auto !important;
+  }
+  .bootstrap-select {
+    max-width: 100%;
+  }
+  .img-responsive {
+    margin: 0 auto;
+  }
+  .btn-group.footable-actions {
+  position: absolute;
+    width: 90vw !important;
+    left: 0;
+    height: 36px;
+    margin-top: -8px;
+  }
+  .btn-group.footable-actions .btn {
+  padding: 10px 16px 7px;
+    line-height: 15px;
+    display: block;
+    width: 100%;
+  }
+  .btn-group.footable-actions:after {
+    content: "";
+    display: block;
+    clear: both;
+  }
+  .bootstrap-select.btn-group.show-tick .dropdown-menu li a span.text {
+    margin-right: 14px;
+    white-space: normal;
+  }
+  .clearfix {
+    flex-basis: 100%;
+    height: 0;
+  }
+  .btn-group > .btn-group {
+    flex-basis: 100%;
+  }
+  .btn-group .btn {
+  display: flex !important;
+  align-items: center;
+  justify-content: center;
+  }
+  .btn-group .btn i {
+    margin-right: 5px;
+  }
+  .btn-group .btn .caret {
+  margin-left: 5px;
+  }
+  .panel-login .btn-group .btn {
+    display: block !important;
+  }
+  .panel-login .clearfix {
+    height: auto;
+  }
+}
+
+@media (max-width: 350px) {
+  .mailcow-logo img {
+    max-width: 250px;
+  }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ad.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ad.svg
new file mode 100644
index 0000000..e7fc56a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ad.svg
@@ -0,0 +1,148 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-ad" viewBox="0 0 512 512">
+  <path fill="#d0103a" d="M0 0h512v512H0z"/>
+  <path fill="#fedf00" d="M0 0h348.2v512H0z"/>
+  <path fill="#0018a8" d="M0 0h163.8v512H0z"/>
+  <path fill="#c7b37f" d="M240.3 173.3c6.2 0 8.7 5.3 14.9 5.3 3.8 0 6-1.2 9.3-3.1 2.4-1.3 3.8-2 6.5-2s4.4.8 5.8 3.1a9 9 0 011 5.4 32 32 0 01-2.1 6.7c-.5 1.2-1 2-1 3.3 0 3.3 4.4 4.4 7.4 4.5.7 0 6.3 0 9.7-3.4-1.9 0-4-1.5-4-3.4 0-2 1.5-3.5 3.5-4.1.4-.1 1 .2 1.4 0 .5-.2.2-.8.7-1.1 1-.8 1.6-1.3 2.9-1.3a3 3 0 012 .6c.3.2.5.6.9.6 1 0 1.4-.6 2.3-.6.7 0 1.2 0 1.8.4.6.3.6 1.2 1.2 1.2.3 0 1.9-.6 2.8-.6 1.7 0 2.7.6 3.8 2 .3.3.5 1 .8 1a5 5 0 013.9 2.4c.2.3.5 1.1.9 1.3.4.1.7.1 1.3.5a4.8 4.8 0 012.3 3.9c0 .5-.3 1.2-.4 1.7-1.5 5.2-5.1 7-8.7 11.4-1.6 2-2.8 3.5-2.8 6 0 .6.8 1.7 1 2.2-.1-1.2.4-2.6 1.6-2.7 1.7 0 3 1.2 3.2 2.8 0 .4 0 1.1-.2 1.5.9-.6 2-1 3.2-1.1a9.9 9.9 0 011.5 0 13 13 0 017.4 3 16.9 16.9 0 015.9 13.4c-.7 4.3-.3 11.9-11 15 2 .8 3.3 2.3 3.3 4.1 0 2-1.5 3.8-3.5 3.8a3.5 3.5 0 01-2.8-1.1c-2.2 2.2-2.7 4.5-2.7 7.7 0 1.9.4 3 1.2 4.7a9 9 0 003 4.2c.8-1.2 1.6-2 3-2 1.5 0 2.7.4 3.3 1.7.1.3 0 .7.2 1 .2.5.7.6 1 1.1.3.8 0 1.4.3 2.2.2.5.7.6 1 1 .3.9.4 1.4.4 2.3 0 2.4-2.2 4-4.6 4-.8 0-1.2-.2-1.9-.1 1.4 1.3 2.4 2 3.5 3.6a14.1 14.1 0 012.3 8.2c0 3.6-.6 5.8-2.2 9a16 16 0 01-5.6 6.8 28 28 0 01-12.8 5c-3.4.7-5.3 1-8.8 1.2l-11.3.6c-5.7.4-9.7 1.2-13.8 5.3 2 1.4 3.3 2.8 3.3 5.2 0 2.4-1.5 4.2-3.9 5-.5.1-1 0-1.4.2-.6.3-.6 1-1.2 1.4a5 5 0 01-3 .8c-2.2 0-3.6-.5-5.2-2-1.7 1.4-2.3 2.7-4.3 3.9-.7.3-1 .8-1.7.8-1.2 0-1.8-.7-2.7-1.4a18.4 18.4 0 01-3.6-3.3c-1.8 1.1-2.9 2-5 2a5.2 5.2 0 01-3.1-.9c-.6-.3-.7-.9-1.3-1.2-.6-.4-1-.2-1.7-.5-2.4-1-4-2.8-4-5.5 0-2.3 1.5-3.8 3.6-4.7-4-4-8-4.7-13.6-5-4.4-.4-7-.4-11.3-.7-3.4-.2-5.4-.6-8.8-1.1-2.6-.4-4.1-.6-6.5-1.7-8.2-3.8-13.4-9-14.5-18v-2c0-4.7 1.8-7.5 5-10.8-.8-.2-1.3 0-2.2-.2-2-.8-3.5-2.2-3.5-4.4 0-.8 0-1.4.4-2 .3-.6.8-.7 1-1.2.1-.8 0-1.3.3-2 .2-.5.6-.5.8-1 .7-1.5 1.6-2.7 3.3-2.7 1.4 0 2.3.8 3 2 1.4-.7 1.8-1.7 2.6-3 1.3-2.2 1.8-3.7 1.8-6.2a11 11 0 00-.7-4.4c-.4-1.2-.5-2-1.4-3a3.5 3.5 0 01-2.8 1.2c-2.3 0-4-2-4-4.3 0-1.7.8-3 2.4-3.7-1.3-1-2.4-1.2-3.7-2-2.1-1.4-2.9-2.7-4.2-4.8-1-1.4-1.2-2.3-1.6-3.8a15 15 0 01-.9-5v-1.3c.6-3.9 1.3-6.4 3.8-9.5a11 11 0 014.6-3.9 11.6 11.6 0 016.5-1.3c1 .2 1.5.2 2.3.7.3.2.9.7.9.3l-.2-1c0-1.7 1.2-3.2 2.8-3.2 1.2 0 1.7 1 2.3 2 .4-.6.6-1 .6-1.7 0-2.8-1.5-4.2-3.2-6.3-3.7-4.7-8.4-6.9-8.4-12.8 0-1.8.9-3 2.4-4 .4-.2 1 0 1.5-.2.3-.3.3-.7.5-1.1a4 4 0 011.3-1.3c.8-.8 1.6-.5 2.5-1.2.5-.3.6-.7 1-1.2 1-1.2 2-1.8 3.6-1.8.8 0 1.3 0 2 .3.3 0 .8.5.9.4.1-.2.6-.7 1.1-1 .7-.3 1-.4 1.8-.4.9 0 1.4.5 2.3.5.4 0 .4-.3.7-.5.8-.5 1.2-.8 2.2-.8 1 0 1.4.3 2.2.8.7.4.8 1 1.6 1.5l1.2.3c2 .6 3.6 2 3.6 4.2 0 1.2-.2 2-1.1 2.8-.7.6-1.4.5-2.3.8a13 13 0 009 2.8c3.5 0 7.6-1.3 7.6-4.7 0-1.6-.9-2.4-1.5-3.8a15 15 0 01-1.7-6.9c0-2.2.2-3.5 1.5-5.3 1.3-1.9 3-2.3 5.2-2.3z"/>
+  <g fill="none" stroke="#703d29">
+    <path stroke-linejoin="round" stroke-width=".5" d="M217.9 191.2c.2.9.9 1.6 2 2a3 3 0 003-1.1c.8-1 .7-2.3.5-3.3a3.8 3.8 0 00-1.4-1.8l-4.1 4.2z"/>
+    <path stroke-linecap="round" stroke-width=".5" d="M320.8 252.9c-1-2.3-3.4-1.3-3.6 0-.3 3 2.3 3.8 4.1 3.3.9-.2 1.6-.8 2-1.5.5-.8.6-2 .3-3a4 4 0 00-.7-1.3 4 4 0 00-1-1c-.7-.4-1.5-.5-2.7-.5-4.4 0-8.3 5.3-9.6 10.8a23.6 23.6 0 00-.2 9.6 18 18 0 004.7 9 20 20 0 007.9 4.7c1.1.3 2.2.3 3.1 0 2.7-.5 3.9-3 2.6-5.5-1.1-2-4.3-3.2-5.8-.6a2.6 2.6 0 00-.4 1.3c0 .7.3 1.5.8 1.8 1.2.8 3 .6 3-1.5"/>
+    <path stroke-width=".7" d="M307 283.2a9 9 0 015.3-3c2.4-.2 4.5.5 6.6 1.6a14.9 14.9 0 018.6 13.6c0 3-.8 6-1.5 7.6-.7 1.3-2.5 7.1-12.3 11.2a67.4 67.4 0 01-20.5 3c-8.4.4-16 .7-20.5 6.2"/>
+    <g stroke-width=".6">
+      <path d="M309.1 292.6c-.2-.9 0-1.7.7-2.7 1-1.3 2.9-1.7 4.7-.7.6.3 1.3.8 2 1.7l1 1.2.8 2c2 5.6-1.2 11.7-5.2 14.1-3.2 2-7 2.8-11.5 3.3l-5.3.3h-7.6a56.3 56.3 0 00-5.8 0l-6 .6-4.4.8-1.5.4-1 .3a31.9 31.9 0 00-7.7 3.3c-.7.4-1.5.9-2 1.4l-1.1 1c-1.5 1.4-3.1 3-3.5 5.3v1.3c0 1.4 1.1 3.4 4.3 4m4.4-136.1c.6 1.2 1 2 .6 3.1-.4 1.4-1.4 2.3-2.8 2.3-3.2 0-5-3.8-3.6-6.2 2.5-4.3 7.4-1.9 12 .2-.3-1-.7-1.4-.6-2.8 0-3.3 2.6-4.8 3.6-8 .6-1.8.8-3.4-.6-4.7-1.1-1.2-2.5-1.1-4-.5-3.1 1.2-6.8 4.6-13.3 4.7-6.5 0-10.3-3.5-13.4-4.7-1.5-.6-2.9-.7-4 .5-1.4 1.3-1.2 3-.6 4.8 1 3 3.5 4.6 3.6 8 0 1.3-.3 1.6-.6 2.7 4.6-2 9.7-4.7 12-.2 1.3 2.5-.4 6.2-3.6 6.2-1.4 0-2.4-1-2.8-2.3-.4-1.1 0-2.2.6-3.1"/>
+      <path stroke-linecap="round" d="M251.7 191.9c1.2 1 2 2.1 1.9 4-.1 2-.7 2.5-2.2 3.6m1.9-3c-.1 1.2-.6 2-1.8 2.5"/>
+    </g>
+    <path fill="#c7b37f" stroke="none" d="M221.4 186.6l.5.4.6.7.4.8.2.6v1.5l-.2.7-.4.5-.4.5-.7.3-.9.2-.7.2-.8-.4-.8-.5-.4-.7-.3-.8v-.3l3.9-3.7z"/>
+    <path stroke-linecap="round" stroke-width=".5" d="M220.2 189.7c-.3-1.3-1.8-1.6-2.4-.8-1 1.2-.3 3.2 1.6 3.8a3 3 0 003-1.1c.8-1 .8-2.3.5-3.2-.2-.7-.7-1.2-1.4-1.7-2.2-1.7-5.7-1.3-6.8 1.5-1.5 3.6 1.7 6.3 4.7 8.3 3.8 2.5 8 3 11.3 3 7.3-.1 12.9-3.6 16.5-5.6.8-.5 1.7-.4 2.1.2.5.6.5 1.5-.2 2.2"/>
+    <path stroke-width=".5" d="M198.4 289l-1.6.5-1.7 1.3-.7 1-.9 1.6-.4 1.2-.3 1.5-.2 1m15.2-8v1.4l-.3 1-.7 1.7-1.1 1.5-1.2 1-1 .4-1.2.3"/>
+    <path stroke-width=".6" d="M255.8 327.3c-.3 1.3-1.5 2.8-4.3 3.4h-.5"/>
+    <path stroke-width=".7" d="M323.4 285a14.6 14.6 0 014.5 10.8c-.1 2.8-.8 6-1.6 7.5-.7 1.3-2.5 7.2-12.3 11.2a67.7 67.7 0 01-20.5 3.1c-8.2.4-15.8.7-20.3 6"/>
+    <path stroke-width=".5" d="M310 290.3c.6-.9 2.8-1.9 4.6-1a5 5 0 012 1.7"/>
+    <path stroke-width=".7" d="M321.3 283l1.1.4a5.6 5.6 0 003.2 0c2.2-.6 3.7-2.7 2.5-5.5a4.5 4.5 0 00-1.4-1.7"/>
+    <path stroke-linecap="round" stroke-width=".5" d="M192.2 223.8c-1.5 1-2.6 1.2-3.8 2.5a22.5 22.5 0 00-2.1 5.5m36.9-41.4c0 1.4-1 2.3-2.4 2.6"/>
+    <path stroke-width=".5" d="M317.7 217.6c3.8 0 14.8 2.9 14.9 15.8 0 12.8-8 14.9-11.1 15.7"/>
+    <path stroke-width=".5" d="M318.7 217.6c6.5-.3 13.2 4.5 13.5 16.5.3 9.4-6.4 13.6-9.6 14.5m-7.6 14.1l.2-1.2.4-2 .6-1.7.7-1.3.8-1m6.3-2.7l-.1 1.2-.4.9-.5.8-.7.5-1 .3h-1.5m-11.4-42.3l.3-1.3.6-1.3.7-1.2 1.4-1.7 1-1.2 1.7-1.7 1.5-1.5 1-1.1 1.2-1.5 1-1.7.7-1.3.4-1.8.1-2.1-.2-.7M310 296.7l1.3-.3 1-.5.5-.5.4-.7.2-1v-.6M187 283.3l.9.1h1.2l1.3-.5m4-29.3l-.2 1.2-.2.4-.4.5-.5.4-.6.3-.8.1h-.5m8-12.5l-.3 1.8-.4.7-.7 1-1 .7-.9.5-1.8.4m12.2-31.8l-.3 1-.5.8-.6.9-.8.7-1 .5-.8.2h-.6m.3-5v.8"/>
+    <g stroke-width=".5">
+      <path stroke-linecap="round" d="M203.4 243.3a5.5 5.5 0 01-1.6 1M322.2 280l.4.2c1 .7 3.3-.2 2.7-2"/>
+      <path d="M318.2 255.7c.8 1 2.4 1.3 3.6 1 .9-.2 1.5-.8 2-1.6.4-.8.6-1.9.3-3a4 4 0 00-.7-1.3 5.4 5.4 0 00-1.1-1.1l-.3-.2m5.2 27.2a3.1 3.1 0 000-.6c0-.9-.4-1.7-1-2.3-.2-.2-.4-.5-.7-.6m.4.3c0-1.5-1.3-2.5-2.8-2.8m-3.3 2.3c-.4-.3-.8-.5-1-.9a12.6 12.6 0 01-3.5-8.5c0-3.3 1.3-6.7 2.8-8M273 323.3l1.5-1.3 1-.8 1.8-1.1 1.8-.9 1.2-.3 2.5-.5 2.9-.5M262 333.4a14.1 14.1 0 01-6.1 5 14.1 14.1 0 01-6.1-5"/>
+      <path stroke-linecap="round" d="M251.5 330.1a8 8 0 01-1.7 3.3"/>
+      <path d="M251.8 328.4l-.4 1.8m-1.8 3.3l-.8.8-1.4.7-1.5.5m-4.5-142.2c.2-.6.4-1.1.3-2.1 0-3.4-2.5-4.9-3.5-8-.6-1.8-.9-3.4.5-4.8 1.2-1.1 2.5-1 4-.5 3.2 1.2 6.9 4.7 13.4 4.8-6.5-.1-10.2-3.6-13.3-4.8-1.6-.6-3-.8-4.2.4-1.4 1.3-1 3-.4 5 1 3 3.3 4.5 3.4 7.9 0 1-.2 1.5-.4 2m14.9-10.7c6.4-.4 11.9-4.7 13.7-5 1.6-.3 2.4-.2 3.6.9-1.2-1.1-2.5-1-4-.5-3 1.2-6.8 4.7-13.3 4.8m63.7 90.3a12.4 12.4 0 01-5-9.9c0-3.3 1.3-6.7 2.9-8m-56 78a14.1 14.1 0 01-6 5 14 14 0 01-6.2-5"/>
+      <path stroke-linecap="round" d="M245.3 195l1.9-1c.8-.6 1.9-.5 2.3 0 .5.7.6 1.7-.1 2.3"/>
+      <path d="M235.8 199.4c4.4-.9 8-2.9 10.6-4.4m25.9 131.4l.6.7.2.7c.2 1.2-.6 2-1.5 2.1a2.7 2.7 0 01-2.8-1.6m-33.3-129.1c4.4-1 8-2.9 10.7-4.4m78 85.5c-.7.3-1.2.3-2.2-.2l-1.5-.8c-2-1.1-4.5-3-6.8-7.2a15 15 0 01-1.3-3.6c-.2-.9-.4-1.8-.4-2.7a20.5 20.5 0 01.5-5 16.2 16.2 0 013.2-7.2c1-1.3 1.7-2 3.5-2m-115-31.5a5.7 5.7 0 012.1 4.6c0 2.5-2 6.5-7.2 8-2 .5-3.8 0-5-.7"/>
+      <path d="M205 228.5c1 .6 1.3 1.4 1.3 2.6 0 .8-.5 2-1.5 3a9.9 9.9 0 01-7 3.2 8.2 8.2 0 01-4.8-1.4 7.3 7.3 0 01-3-4.3"/>
+      <path d="M205 233.8c1 1 1.3 2.2 1.3 3.7 0 2.2-.9 3.9-3 5.7a5 5 0 01-1.5 1m103.6-17.6v2.9m-.3-3.6v4m.3-12.6v5.2m-.3-6.3v7m-1.5 65.7c-1 2-1.8 3-3.3 4.5a15.7 15.7 0 01-4.7 3.3 19.7 19.7 0 01-5.2 1.7c-2.1.5-3.4.6-5.5.7-2 0-3.1 0-5.1-.2-2.1 0-3.3-.4-5.4-.6-1.7-.1-2.7-.3-4.5-.3a22.8 22.8 0 00-8.7 1.5c-2.2.9-4.6 2.4-5.1 3-.5-.6-3-2.1-5.1-3a22.8 22.8 0 00-8.8-1.5c-1.7 0-2.7.2-4.4.3-2.1.2-3.3.5-5.4.6a37.3 37.3 0 01-10.6-.5c-2.1-.5-3.3-.8-5.3-1.8a15.7 15.7 0 01-5-3.7m33.6 42.7l1.5-.2m24.2-1.9l1.4-.1 1.4-.6 1-.5 1.3-1.6.3-.6.2-1.3v-.6M314 218.8c.6-2.1-.2-4.3-2.2-4.3m-105.6 37.3a6.5 6.5 0 01-2.9 3.7m3-37.4a5.2 5.2 0 01-3 3.2c-1.4.7-3.2 0-4-.6"/>
+      <path stroke-linecap="round" d="M195 225.9c1.3.6 2.5-.3 2.3-1.9a2.3 2.3 0 00-2-1.8"/>
+      <path d="M200.1 293.3c.3.3.4.6.7.6.5.1 1 .3 1.5-.4.7-.9.3-2.2-.4-3.1a4 4 0 00-4.7-.7c-.5.3-1.3.7-2 1.6l-.9 1.3-.9 2c-1.6 4.6.3 9.5 3.4 12.5"/>
+      <path stroke-linecap="round" d="M272.2 326.3l.5.6.2.7c.2 1.2-.6 2-1.6 2-1.3.2-2.2-.6-2.7-1.6"/>
+      <path d="M311.6 187.8a6 6 0 015 5.6c0 3.6-1.2 4.9-3.1 7.4-2 2.7-8.5 7.7-8.5 13.4 0 3.4 1 5.6 3.4 6.7 1.6.7 3.5 0 4.3-.8 2-1.9 1.3-5.2-1-5.6-2.5-.4-3 3.7-.5 3.4m14.3 55.3a3 3 0 00-2.9-2.5 3 3 0 00-3 3c0 .8.4 1.5.9 2"/>
+      <path d="M307.1 220.1a5.7 5.7 0 00-2.1 4.6c0 2.5 2 6.5 7.2 8 1.9.5 3.8.4 5-.3m-124.9-8.2a7.5 7.5 0 00-3.8 2.7 13.5 13.5 0 00-1.9 4.9c-.1.7-.3 3 .1 5.3a12.7 12.7 0 001.9 4.5l.8 1 .9.7m51.2 73.6c3.9 1.8 6.7 3 9.2 6.9a8.2 8.2 0 01-1.7 10 6.6 6.6 0 01-5.4 1.6c-1.5-.2-3-1.3-3.2-2m-37.2-90a6.6 6.6 0 013.1 6c0 3-1.5 4.8-3.2 5.9"/>
+      <path stroke-linecap="round" d="M201.2 253.1c3.3 4.1 5 6.5 5.1 11.3.1 4.6-1.4 7.7-4 11"/>
+      <path d="M263.8 199.5a3.3 3.3 0 001.3-1.8c.4-1.2.4-2.2-.3-3.1.8 1 .9 1.9.7 3.1-.2.8-.7 1.2-1.3 1.8m41.2 69v12.8a19.6 19.6 0 01-.3 3.4m0-17.5V283l-.4 2.1m.4-34.3v11.6m.3-10.7v9.4m0-21.5v7.1m-.3-7.9v8.8m.3-15.2v2.8m-.3-3.4v4m-1.4 52.2l-.3.5a15 15 0 01-3.4 4.6 15.7 15.7 0 01-4.6 3.2 19.7 19.7 0 01-5.3 1.8c-2 .5-3.3.6-5.5.7-2 0-3 0-5-.2-2.2-.1-3.3-.4-5.4-.6-1.8-.1-2.8-.3-4.5-.3a22.9 22.9 0 00-8.8 1.5c-2.1.9-4.5 2.4-5 3a17 17 0 00-5.1-3 22.9 22.9 0 00-8.8-1.5c-1.7 0-2.7.2-4.5.3-2 .2-3.2.5-5.4.6a37.3 37.3 0 01-10.5-.5 19.8 19.8 0 01-10-5 17.6 17.6 0 01-1.9-2.3m-1.6-2.5a8 8 0 01-1.8 6.2c-.7.7-2.2 2-4 2-3 .1-4-2-4.1-2.5"/>
+      <path d="M204.5 287a8.2 8.2 0 011.5 2.1c.7 1.4.5 3.8-.1 5a3.7 3.7 0 01-.3.3m-16.1 14.4c1.8 2 4.5 4 8.7 5.7a67.4 67.4 0 0020.5 3.1c8 .3 15.5.7 20 5.7m13.9-3.3a12 12 0 013.2 4.5m-5.9 9.2a7 7 0 01-.5.5 6.6 6.6 0 01-5.3 1.6 5 5 0 01-3.5-2m-4.3-2.4l.3.3a6 6 0 004 2m21.6 0a14.1 14.1 0 01-6.1 4.9 14.1 14.1 0 01-6.1-5l-.2-.3m12.4.3l.6.6a6.6 6.6 0 005.3 1.6 4.4 4.4 0 003.3-2l.4-.6"/>
+      <path d="M271.2 333.3l-.6 1-.9.7-1.3.6H267"/>
+      <path d="M274.4 324.2a6.1 6.1 0 011.9 2.3c.2.6.4 1.3.4 2a4.7 4.7 0 01-1.1 3.2 6 6 0 01-4.4 2 4.4 4.4 0 01-.3 0m.1-.2a5.5 5.5 0 01-4.1-1.7m51-54.3a19 19 0 01-4-5.2 15 15 0 01-1.3-3.6c-.2-.9-.4-1.7-.4-2.6 0-1.6.1-3.2.5-5a16.7 16.7 0 013.3-7.3c.5-.6 1-1.4 1.6-1.8m-1-60.6c2 .2 3.8 2.3 3.8 4.5 0 3.1-1 4.4-3.5 7.4-2.1 2.7-8.5 7.3-8.3 11.7 0 .8.5 1.6 1 2.2M307 220c.4.5 1 .8 1.6 1.1a4 4 0 003.4-.2m-16.9-34.6a4.8 4.8 0 011.8 2.1c1.4 3.6-1.8 6.3-4.8 8.3a17 17 0 01-6.6 2.6"/>
+      <path d="M291.7 193.2c-.7 0-1.6-.2-2.5-1.2a2.7 2.7 0 01-.6-.7m-11.9 3.9a3.7 3.7 0 01-1-.8c-.7-.8-1.2-1.9-.7-3.5.5-1.5 3-5.8 3-8.7.3-4.5-1.5-7.2-4.2-8.2"/>
+      <path stroke-linecap="round" d="M277.9 181.2l-.1 1.7-.5 1.7-.9 2.3-.7 1.6-.7 1.5-.3 1-.2.8.1.8m30.5 101c0 .3.4.6.4.6a6.2 6.2 0 004.4 2.5c3 0 3.7-2.1 3.8-2.6.4-2.3-.4-3-1.6-3.6 0 0-.7-.3-1.5-.2"/>
+      <path d="M189.6 283.5a5.5 5.5 0 01-3 0c-2.3-.7-4-2.9-3.1-5.5m10.7-25.5c.2.2.3.6.3.8.3 3-2.2 3.8-4 3.4a4.5 4.5 0 01-2.5-1.9 3.8 3.8 0 01-.5-1.8m17.7-19c.4.5.8 1 1 1.5m-1-6.8c.5.3.8.6 1 1"/>
+      <path stroke-linecap="round" d="M206.3 232.4a6.8 6.8 0 01-1.3 2 9.9 9.9 0 01-7 3.1 8.2 8.2 0 01-4.8-1.4 7.6 7.6 0 01-3.3-4.4"/>
+      <path d="M204.3 220.2a6.2 6.2 0 012 2.7"/>
+      <path stroke-linecap="round" d="M206.3 226.6a9.4 9.4 0 01-7 6.3 7 7 0 01-5.2-.9"/>
+      <path d="M192 226c.2 2.1 1.7 3.7 4.3 3.8 3.8 0 6-5.4 2.7-9.3"/>
+      <path stroke-linecap="round" d="M183.6 244.4c.5.7 1.2 1.3 1.8 1.9a13.4 13.4 0 004.8 2.6m4.2.4c3.4-.4 5.3-2.9 4.9-5.8-.3-2.3-2.4-4-3.8-4"/>
+      <path d="M199.9 214.5c1.4 0 2.3 1.3 2.2 2.4"/>
+      <path stroke-linecap="round" d="M199.5 194.5a9.2 9.2 0 004 4.6M319 224a3.7 3.7 0 01-3.3 5.7 4.2 4.2 0 01-3.5-2"/>
+      <path d="M305.4 199.3v12.6"/>
+      <path stroke-linecap="round" d="M195 225.9c1.2.8 2.6-.6 2-2.1-.3-1-1.8-2.1-3.8-.8-2.1 1.5-1.5 6.3 2.7 6.3 3.7.1 6-5.4 2.7-9.2-3.2-3.7-9-2.9-13 .2a17.1 17.1 0 00-5.6 9.3 17 17 0 000 7.4 16.7 16.7 0 002.4 6l1 1.3 1.6 1.6a12 12 0 008.3 3c3.8-.1 6-2.8 5.5-5.9-.4-3-3.4-4.5-5.4-3-1.3.9-1.8 3.8.6 4.5 1.3.4 2.5-1.3 1.6-2.3m103.6-57.5c2.2-1.2 3.8-1 5 .7a7.9 7.9 0 011.3 5.8c-.4 2.2-1 3-2.8 4.6"/>
+      <path stroke-linecap="round" d="M304.4 185.6c2.5-1.6 5.2-1 6.6 1.3a7.3 7.3 0 011.3 4.9 9 9 0 01-4.6 7.3"/>
+      <path d="M316 191.3c2 .2 3.7 2 3.7 4.2 0 3-.8 4.4-3.3 7.4-2.1 2.6-8.4 7.2-8.3 11.7 0 1.6 1.5 3.2 2.7 3.3"/>
+      <path stroke-linecap="round" d="M316.3 225.9c-1.2.8-2.6-.5-2-2 .4-1 1.8-2.2 3.7-.9 2.2 1.5 1.6 6.3-2.6 6.3-3.7.1-6.3-5.2-2.7-9.2 3.3-3.7 9.4-3 13.2 0 1.6 1.4 5 5 5.6 9.6.9 5.6.7 12.6-5 16.8a13.8 13.8 0 01-8.5 2.4c-3.8-.1-6-2.8-5.5-5.9.4-3 3.3-4.3 5.4-3 2.2 1.1 1.8 4.3-.6 4.5-1.4.2-2.5-1.3-1.6-2.3"/>
+      <path d="M314.3 224c.6-2.9 3-3.1 5-3.1 5.2 0 8.9 6.3 9 12.4 0 7.6-3.3 12.1-9 12.3-1.3.1-3.8-.6-3.9-2.3"/>
+      <path stroke-linecap="square" d="M317.5 222.7c5.6 1.2 7.6 6.2 7.6 11 0 3.9-.4 9.2-8 11"/>
+      <path d="M326.7 276.3a3.1 3.1 0 10-5 1.8"/>
+      <path stroke-linecap="round" d="M315.6 271.5a13.3 13.3 0 005 4.8m-1 8.4c-2.7-1.7-7.7-4-12.2-1.8a6.3 6.3 0 00-3.4 3.5 8 8 0 001.5 7.7 6 6 0 004 2.1c3 0 3.7-2 3.8-2.5.3-2.2-1-3.1-1.6-3.3-.6-.2-2.2-.2-2.6 1-.1.4-.1 1.1.2 1.6"/>
+      <path stroke-linecap="round" d="M272.4 326.7c.8 1.8-.1 2.6-1.3 2.7-1.7.2-2.6-1.1-2.7-2.3-.2-2 1.5-3.9 3.5-3.8a4.4 4.4 0 014 2.8c.2.6.3 1.2.3 1.9a4.7 4.7 0 01-1.1 3.3 6 6 0 01-4.3 2c-3.4.1-6-3-6-6.3 0-6.1 9.1-9.5 12.8-10.4a67 67 0 0114.3-1.8c2.9-.2 5-.1 8.1-.4 2.8-.3 4.3-.5 7.2-1.1a22 22 0 0010-5.2 13.7 13.7 0 003.7-17.7 11.5 11.5 0 00-8.2-5.3c-3-.5-5.6.8-7.2 3.8a6.2 6.2 0 00.1 5c.5.9 2 2.3 3.8 2.3 3 0 3.8-2 3.9-2.5.3-2.2-1-3.1-1.6-3.3-.6-.2-2.2-.2-2.6 1-.1.4-.1 1.1.2 1.6"/>
+      <path stroke-linecap="round" d="M269.8 317c-4 1.7-6.8 3-9.2 6.7a7.9 7.9 0 00-1 4c0 2.1 1 4.5 2.7 6a6.6 6.6 0 005.4 1.7c1.5-.2 3-1.3 3.2-2"/>
+      <path d="M308 243.3c-1.7.6-3 3.4-3 6 0 3 1.4 5 3.2 6"/>
+      <path stroke-linecap="round" d="M310 253.1c-3.2 4.1-5 6.5-5 11.3-.1 4.6 1.3 7.7 4 11"/>
+      <path d="M292.7 185.6l.3-.4c1.3-2 3.7-2.5 5.5-1.2 2 1.6 2.6 4.3 2 7.2a7 7 0 01-3.2 4.4"/>
+      <path stroke-linecap="round" d="M212 184.7c-2-1-3.7-.8-5 .7a7.5 7.5 0 00-1.2 5.8c.4 2.1 1 3 2.8 4.6"/>
+      <path d="M206.9 185.6c-2.5-1.6-5.2-1-6.6 1.3a7.3 7.3 0 00-1.3 4.9 9 9 0 004.6 7.3"/>
+      <path d="M199.7 187.8a5.5 5.5 0 00-4.8 5.3c0 3.6.9 5 2.9 7.7s8.5 7.7 8.5 13.4c0 3.4-1 5.6-3.4 6.7-1.6.7-3.5 0-4.3-.8-2-1.9-1.2-5.2.9-5.6 2.6-.4 3.1 3.7.6 3.4"/>
+      <path d="M195.2 191.3c-2 .2-4 2-4 4 0 3.1 1.2 4.5 3.7 7.6 2 2.6 8 7.2 7.9 11.6 0 1.6-1.2 3.7-2.3 3.4"/>
+      <path stroke-linecap="round" d="M190.5 252.9c1-2.3 3.4-1.3 3.5 0 .4 3-2.2 3.8-4 3.3-1-.2-1.6-.8-2-1.5a3.9 3.9 0 01.4-4.3 4 4 0 011-1c.7-.4 1.5-.5 2.7-.5 4.4 0 8.3 5.3 9.6 10.8a23.6 23.6 0 01.2 9.6 18 18 0 01-4.7 9 20.1 20.1 0 01-7.9 4.7 5.6 5.6 0 01-3.2 0c-2.2-.6-3.7-2.8-2.5-5.5 1-2.1 4.3-3.2 5.8-.6.1.3.3.7.3 1.3 0 .7-.3 1.5-.8 1.8-1.1.8-3 .6-2.9-1.5"/>
+      <path d="M187 280.3c.8.3 1.3.3 2.3-.2l1.5-.8c2-1.1 4.5-3 6.7-7.2a15.1 15.1 0 001.4-3.6c.2-.9.4-1.8.4-2.7a20.5 20.5 0 00-.5-5 16.2 16.2 0 00-3.2-7.2c-1-1.3-1.7-2-3.5-2m-7.5 24.7a3.1 3.1 0 115 1.8"/>
+      <path d="M185.8 273.2a3 3 0 012.9-2.5 3 3 0 013 3 3 3 0 01-1 2"/>
+      <path d="M191.5 273a12.4 12.4 0 005-9.9c0-3.3-1.3-6.7-2.9-8"/>
+      <path stroke-linecap="round" d="M195.7 271.5a13.2 13.2 0 01-5 4.8"/>
+      <path d="M203.7 283c-.8-1.8-2.2-2.6-4.6-2.9a11 11 0 00-6.6 1.6 14.8 14.8 0 00-8 9 13.7 13.7 0 00-.6 4.6c0 2.9.8 6 1.6 7.5.6 1.4 2.4 7.2 12.2 11.2a67.7 67.7 0 0020.6 3.2c8.3.3 16 .6 20.4 6.1"/>
+      <path stroke-linecap="round" d="M191.7 284.7c2.7-1.7 7.6-4 12.1-1.8a7 7 0 013.5 3.5 8 8 0 01-1.5 7.7c-.7.7-2.1 2-4 2.1-3 0-3.7-2-3.8-2.5-.3-2.2 1-3.1 1.6-3.3.5-.2 2.2-.2 2.6 1 .1.4.1 1.1-.2 1.6"/>
+      <path d="M202.2 292.6a2.7 2.7 0 00-.7-2.7 4.1 4.1 0 00-4.7-.7 5 5 0 00-2 1.7l-1 1.2-.8 2c-2 5.6 1.2 11.6 5.2 14.1a24 24 0 0011.5 3.3l5.3.3h13.4l6 .6 4.4.8 1.5.4 1 .3a31.9 31.9 0 017.7 3.3c.7.4 1.5.8 2 1.4l1.1 1c1.5 1.4 3.1 3 3.5 5.3v1.3c0 1.4-1.1 3.4-4.3 4"/>
+      <path d="M239 326.7c-1 1.8 0 2.6 1.2 2.7 1.7.2 2.6-1.1 2.7-2.3.2-2-1.5-3.9-3.5-3.8a4.4 4.4 0 00-4 2.8 5.5 5.5 0 00-.3 1.9 4.7 4.7 0 001 3.3 6 6 0 004.4 2c3.4.1 6-3 6-6.3 0-6.1-9.1-9.5-12.8-10.4a67 67 0 00-14.3-1.8c-2.9-.2-5-.1-8.1-.4-2.8-.3-4.3-.5-7.2-1.1a22 22 0 01-10-5.2 13.7 13.7 0 01-3.7-17.7 11.5 11.5 0 018.2-5.3c3-.5 5.6.8 7.1 3.8.8 1.4.6 3.8 0 5a4.8 4.8 0 01-3.9 2.3c-3 0-3.7-2-3.8-2.5-.3-2.2 1-3.1 1.6-3.3.5-.2 2.2-.2 2.6 1 .1.4.1 1.1-.2 1.6"/>
+      <path stroke-linecap="round" d="M218.6 185.6a97 97 0 00-.3-.4c-1.3-2-3.7-2.5-5.5-1.2-2 1.6-2.6 4.3-2 7.2a7 7 0 003.2 4.4"/>
+      <path d="M293.4 191.7c-3.2 3.5-6.5 4.6-11.3 4.8-1.5 0-4.4-.5-6-1.7-1-.8-2.3-2-1.5-4.4.5-1.5 3-5.7 3-8.7.2-4.5-1.5-7-4.2-7.9-5-1.8-10.4 3.2-13.6 4.3a11 11 0 01-4.1.6c-1.6 0-2.5 0-4.2-.6-3.2-1.1-8.6-6-13.6-4.3-2.7 1-4.4 3.4-4.2 8 0 2.9 2.5 7.1 3 8.6.8 2.3-.4 3.6-1.5 4.4a11.6 11.6 0 01-6 1.7c-4.9-.2-8-1.3-11.3-4.8"/>
+      <path stroke-linecap="round" d="M237.9 315.5c.6.3.1-.1 4.2 1.7 3.8 1.7 6.6 3.2 9 7a8.5 8.5 0 01.7 5.9"/>
+      <path d="M238.1 332.8a6.4 6.4 0 002.6.7c3.4.1 6-3 6-6.3 0-2.2-1.2-4-2.9-5.6"/>
+      <path stroke-linecap="round" d="M238.9 326.7c-.9 1.9.3 2.8 1.5 3 1.7.2 2.6-1.2 2.8-2.4a3.6 3.6 0 00-1.7-3.3"/>
+      <path d="M312 187.8c2.6 0 4.9 2.9 4.9 5.8 0 3.4-1.8 5.5-3.1 7-1 1.3-2.2 2.4-3.6 3.8"/>
+      <path stroke-linecap="round" d="M309 185.1a5 5 0 012.3 2 7.3 7.3 0 011.2 4.9c-.1 3.4-2.5 5.7-4.7 7.1m-3.8-14l.5.6a7 7 0 011.2 5.7 6.5 6.5 0 01-3 4.4m-4-11.6c2 1.6 2.7 4.4 2 7.2-.5 2-1.8 3.3-3.3 4.2m8.9 32.9c.2.7.6 1 1.2 1.5a10.8 10.8 0 004.9 2.9 6.2 6.2 0 005-.7M187 275.4c1 0 2 .6 2.7 1.8a2.6 2.6 0 01.3 1.2c0 .7-.3 1.4-.8 1.8-1.2.7-3.2.4-3.1-1.7"/>
+      <path d="M193.2 249c4 .8 7.7 5.5 9 10.7a23.6 23.6 0 01.2 9.6 18 18 0 01-4.7 9c-.5.6-1 1-1.7 1.5l-.9.6m-6.3-9.7c1.6 0 3 1.5 3 3.2a3 3 0 01-.8 2"/>
+      <path d="M187.7 272.6c1.7 0 3.3 1.6 3.3 3.3a3.1 3.1 0 01-1.2 2.5"/>
+      <path stroke-linecap="round" d="M203.2 255.6c1.5 2 2.6 3.9 3 6.2m0 6.8a13.8 13.8 0 01-1.2 3.2 14.2 14.2 0 01-2.8 3.7"/>
+      <path d="M203.4 243.5a7.5 7.5 0 012.8 3.8"/>
+      <path stroke-linecap="round" d="M206.3 239.6a8.7 8.7 0 01-2.7 3.7m-7.3-13.8l1.7-.4 1-.8.7-1 .5-1.4.3-1.2"/>
+      <path d="M192.8 223.4l-2 .7a7 7 0 00-2.8 2.4 13.5 13.5 0 00-1.8 4.8c-.2.7-.4 3 0 5.3a12.6 12.6 0 002 4.6l.8 1c1 1 2 1.7 3.5 1.4"/>
+      <path stroke-linecap="round" d="M202.4 215.8c-.2 1-.8 2.3-2.4 2.2"/>
+      <path d="M196.5 222.8c-1.5-1.5-4.8-1.9-8 .2-.5.2-.9.6-1.3 1a7 7 0 00-1.1 1.2l-1.2 2a10 10 0 00-.7 2c-.6 2.3-.6 4.5-.6 5l.3 2.2a15 15 0 001.8 5 8.2 8.2 0 006.2 4.3c1.4.1 3.9-.6 4-2.4"/>
+      <path stroke-linecap="round" d="M291 189.7c.2-1.4 1.8-1.6 2.4-.8 1 1.2.4 3.2-1.5 3.8a3 3 0 01-3-1.1c-.9-1-.8-2.2-.5-3.2.2-.7.7-1.2 1.4-1.7 2.1-1.7 5.7-1.3 6.8 1.5 1.5 3.6-1.7 6.3-4.7 8.3-3.8 2.5-8 3-11.3 3-7.3-.1-12.9-3.6-16.5-5.6-.8-.5-1.7-.4-2.1.2-.5.6-.5 1.5.2 2.1"/>
+      <path stroke-linecap="round" d="M292.5 188.4c.8 0 1 .4 1.2.7 1 1.2.3 3.2-1.6 3.8m14.3 41.2c-2.8 3-.3 8.3 1.8 9.5.7.5 1 .2 1.6.6"/>
+      <path d="M306.5 228.3c-1 .7-1.2 1.4-1.3 2.6a4.2 4.2 0 001.2 3.2 11.2 11.2 0 007.3 3 8.2 8.2 0 004.9-1.4 7.3 7.3 0 003-4.3M305 281v2c-.4 2.2-.7 3.5-1.7 5.5a15 15 0 01-3.4 4.5 15.7 15.7 0 01-4.7 3.3 19.7 19.7 0 01-5.2 1.8 33 33 0 01-5.5.6h-5l-5.5-.7c-1.7-.2-2.7-.3-4.4-.3a22.8 22.8 0 00-8.8 1.5 17 17 0 00-5 3c-.6-.6-3-2.2-5.2-3a17.6 17.6 0 00-4.1-1.2c-1.8-.3-2.8-.3-4.6-.3-1.8 0-2.7.1-4.5.3-2 .2-3.3.5-5.4.6-2 .1-3 .2-5 .1-2.2 0-3.4-.2-5.6-.6a19.7 19.7 0 01-5.2-1.8c-2-1-3-1.7-4.7-3.3a15 15 0 01-3.3-4.5 15.1 15.1 0 01-1.7-5.5v-83.4H305V281z"/>
+    </g>
+    <g fill="#c7b37f" stroke="#c7b37f">
+      <path stroke-width=".3" d="M198.3 292.5a2 2 0 114 0 2 2 0 01-4 0zm-12.2-14.1c0-1 .6-1.8 1.4-1.8.8 0 1.4.8 1.4 1.8s-.6 1.8-1.4 1.8c-.8 0-1.4-.8-1.4-1.8z"/>
+      <path stroke="none" d="M193 242.9c0-.8.7-1.5 1.4-1.5.8 0 1.4.7 1.4 1.5s-.6 1.4-1.4 1.4c-.7 0-1.3-.6-1.3-1.4zm24.6-52.5c-.1-.9.4-1.6 1-1.6.7-.1 1.4.5 1.5 1.3 0 .8-.4 1.5-1.1 1.6-.7 0-1.4-.5-1.4-1.3z"/>
+    </g>
+    <g stroke="#c7b37f" stroke-linecap="round" stroke-width=".5">
+      <path d="M191.4 251.2a1.8 1.8 0 00-.6.4l-.5.7-.2 1m3.8 21.3l.7-.8.6-.8.4-.7.5-1m-1 11l-1.2.6-.9.5a14 14 0 00-1 .7l-1 .8m12-30.3l-.6-.7-.7-.7-.8-.5"/>
+      <path stroke-linecap="butt" d="M203.3 244l-1 .4a4 4 0 01-1.1.2"/>
+      <path d="M190 230.8c0 .4.1.7.3 1.1l.7 1.4a6.8 6.8 0 002.2 2.1l1.2.7m-.9-4.7l1 .5a6 6 0 002.4.5l1.5-.1m5.7-32.5l-1.6-1a9.6 9.6 0 01-2.4-2.3l-.7-1m6-3.6l.5 1.3 1.2 1.7c.7.8 1.3 1 2.2 1.6m1.1-4.7l.5 1.2.7 1 1 1c.6.5 1 .6 1.6 1"/>
+    </g>
+    <path fill="#703d29" stroke-width=".1" d="M266.6 185.3c0-1.4-1.3-1.5-1.9-1.5-1.4 0-1.8 1-3.7 2a9.5 9.5 0 01-5.3 1.4 9 9 0 01-5.4-1.5c-1.9-1-2.2-1.9-3.6-1.9-.8 0-1.9.7-1.8 2v.7s.2 0 .2.2c0-.7.1-1 .4-1.4a1.8 1.8 0 011.3-.7c1.5 0 2 1 3.9 2a9.5 9.5 0 005.3 1.5c2 0 3.1-.3 5.4-1.5 1.9-1 2.4-2 3.9-2 .5 0 .8.3 1 .8v.7h.2c0-.1.2-.2.1-.8z"/>
+  </g>
+  <g fill="#703d29">
+    <path d="M211.5 299.2c.4-.4.8-.3.8-.5l-.2-.2-.7-.2-.7-.3s-.3-.2-.4 0c0 .3.9.3.5 1.1 0 .2-.1.5-.6 1l-2.1 2.3-.2.2V299l.1-1.4c.2-.4.6 0 .7-.3 0-.2 0-.2-.2-.3-.2 0-.4 0-1-.3l-.7-.3c-.1 0-.4-.2-.5 0l.1.2c.3.2.4.3.4.7v6c0 .4.1.6.2.6l.3-.2 4.2-4.6z"/>
+    <path d="M214 300.1c.3-.8.8-.3.9-.6l-.3-.2-1-.3-1-.4h-.3c0 .4 1 .4.7 1.3l-1.4 4.4c-.3.8-.8.4-.9.7v.1l1 .3 1.2.4h.3c.1-.3-1-.2-.6-1.3l1.4-4.3zm3 1c.1-.6.4-.6.7-.5.8.3 1 1.1.8 2-.2.5-.4 1-1.6.7-.3-.1-.6-.2-.5-.4l.6-1.9zm-2.3 3.9c-.4 1.1-1 .6-1 1l.2.1 1.3.4.7.2h.3c0-.4-.9-.2-.6-1.2l.5-1.6c0-.3 0-.4.5-.3.4.2.5.3.6.7l.3 1.7c0 .6.2 1.3.8 1.4.3.2 1 .1 1-.2v-.1h-.3l-.3-.3-.5-3 .6-.2c.3-.2.6-.4.8-1 .1-.4.3-1.7-1.5-2.3l-1.6-.4-1-.3h-.2c-.1.4.9.3.6 1.3l-1.2 4zm6.7 2c-.2 1-1 .4-1.2.7 0 .2.1.3.3.3l1.2.2 1.1.4.5-.1c0-.3-1.1-.3-.8-1.4l1-4.2c0-.5.2-.5.5-.4l.7.2c1 .2.5 1.1.8 1.2.3 0 .2-.3.3-.5v-1.1l-2.6-.6-2.5-.6c-.2 0-.2 0-.2.2l-.5 1.2v.3c.5.1.5-1.2 1.4-1l.7.2c.4.1.5.2.4.6l-1 4.3zm10.2-2.7c.3-.5.7-.4.7-.6l-.3-.2h-.7l-.7-.2c-.1 0-.4-.1-.4 0 0 .4.9.2.7 1 0 .2-.1.6-.5 1.1l-1.7 2.7-.1.2v-.3l-.6-3.2a4.3 4.3 0 01-.1-1.3c0-.4.5-.2.6-.5l-.3-.2-1-.1-.8-.2c-.1 0-.4-.1-.4 0l.1.2c.4.2.5.3.5.7l1.1 5.9c.1.4.2.5.3.5l.2-.2 3.4-5.3zm.5 5.4l.1.4 1.4.6c1.1.2 2-.5 2.3-1.7.2-1.2-.3-1.7-1.2-2.3-1-.8-1.5-1-1.3-1.6 0-.6.5-1 1-.8 1.5.2 1.4 2 1.6 2 .1 0 .2 0 .2-.3l.1-1.3v-.3h-.5c-.3 0-.5-.4-1.2-.5-1-.2-1.8.5-2 1.6-.2 1 .2 1.4 1 1.9 1.2.9 1.7 1 1.6 1.9-.2.7-.8 1.1-1.4 1-1-.2-1.3-1.1-1.5-2l-.1-.3c-.2 0-.2.3-.2.4v1.3zm12.6-3.5c.3-.6.6-.5.7-.7 0-.2-.2-.2-.3-.2h-.8l-.7-.1-.4.1c0 .4 1 0 .8 1 0 .1 0 .5-.3 1l-1.4 2.9-.2.2v-.2l-1-3.2a4.3 4.3 0 01-.2-1.3c0-.4.6-.3.6-.5s0-.2-.3-.2h-1l-.8-.1c-.1 0-.4-.1-.4 0l.1.2c.4.2.5.3.6.6l1.7 5.8c.1.4.2.5.3.5l.2-.3 2.8-5.5z"/>
+    <path d="M246 310.8c0 1-.8.8-.8 1.2h1l1 .1.4-.1c0-.5-1.1.2-1.1-1.7v-3.4s.2 0 .3.2l4 5h.3v-.2l.1-5.3c0-1 .8-.8.8-1.1l-.2-.1h-2v.1c0 .3 1 .2 1 1v3.2l-.1.4-.3-.3-3.4-4.2c-.1-.2 0-.3-.3-.3h-1.4l-.1.2c0 .4 1-.2.9 1.7v3.6zm8.4-4.3c0-1 .6-.6.6-.9l-.3-.1h-2.3c0 .4.9.1.9 1v4.6c0 1-.6.7-.6 1v.1h2.3l.3-.1c0-.3-1 .1-1-1v-4.6zm3.6 4.4c0 1.2-1 .7-1 1 0 .3.2.3.3.3h2.4c.3 0 .5 0 .5-.2 0-.3-1.1 0-1.1-1.2v-4.3c0-.5 0-.5.3-.5h.8c1 0 .7 1 1 1 .3 0 .2-.4.2-.5l-.1-.9s0-.2-.2-.2H256c-.2 0-.2.2-.2.3l-.1 1.2.1.4c.4 0 .1-1.3 1.1-1.3h.7c.4 0 .5 0 .5.5v4.4zm5-1.8h-.3v-.4l.6-1.8h.1l1 1.7v.3l-.2.1-1.2.1zm1.5.4c.2 0 .3 0 .6.8l.2.6c0 .6-.6.6-.6.8 0 .2.2.1.3.1h1l1-.1c.3 0 .4 0 .4-.2 0-.3-.5.1-.8-.6l-2.8-5.6-.2-.3-.2.4-1.9 5.9c-.2.5-.6.5-.6.7 0 .2.2.1.3.1h1.5c.2-.1.5 0 .5-.3 0-.2-1 0-1-.7l.1-.7c.2-.7.3-.7.5-.7l1.7-.2zm6.6-4c0-.6 0-.6 1-.7 1.6-.3 1.1 1 1.5.9.2 0 .1-.4.1-.5l-.1-1h-.2l-2 .2-2.2.3c-.2 0-.2 0-.2.2 0 .3 1 0 1 .8l.6 4.4c.2 1.2-.5.7-.5 1.2h.2l1.1-.1 1-.1c.2 0 .4 0 .4-.2 0-.3-1 0-1.1-1l-.2-1.4c0-.5-.1-.6.3-.7h.6c.9-.2.8.9 1 .8.3 0 .2-.3.1-.5l-.2-1.6c0-.3-.2-.3-.2-.3-.2 0-.1 1-.8 1l-.6.1c-.4 0-.4 0-.4-.4l-.2-1.3zm3.2 2.2c.3 2 1.7 3 3.4 2.7 2.7-.5 2.8-3 2.5-4.2-.3-2-1.8-3-3.5-2.7-2 .4-2.8 2.2-2.4 4.2zm.9-.7c-.3-1.4 0-2.7 1.4-3 1-.3 2.3.6 2.7 2.7.3 1.6 0 3-1.4 3.2-1.5.3-2.4-1.5-2.7-2.9zm6.7-3.3c-.2-.6.1-.7.4-.7.8-.2 1.5.3 1.7 1.3.1.5.2 1-1 1.3-.3.1-.6.2-.7 0l-.4-2zm0 4.5c.3 1.2-.5 1-.4 1.3 0 .2.2.2.3.1l1.3-.3.7-.1c.2 0 .2-.2.2-.2 0-.4-.8.2-1-.8l-.4-1.6c-.1-.3-.2-.4.3-.5.4 0 .6 0 .9.3l1 1.3c.4.5.8 1 1.5.9.3-.1.8-.5.7-.7 0-.1 0-.2-.1-.1h-.6l-2-2.3.5-.5c.1-.3.3-.7.2-1.3-.1-.4-.6-1.7-2.5-1.2l-1.6.4-1 .2-.2.2c.1.4 1-.2 1.2.8l1 4.1zm6.9-1.5c.3 1-.8.9-.7 1.2 0 .2.2.2.3.2l1.2-.4 1.2-.3c.2 0 .4 0 .3-.2 0-.3-1 .2-1.3-.9l-1.1-4.2c-.1-.4 0-.5.3-.6l.7-.2c1-.3 1 .8 1.3.8.2 0 0-.4 0-.5l-.4-.9s0-.2-.2-.2l-2.5.7-2.5.7c-.2 0-.1.1-.1.2l.2 1.3c0 .1 0 .3.2.3.3-.1-.2-1.3.7-1.5l.7-.2c.3 0 .4 0 .6.4l1 4.3zm4.4-5.9c-.3-.9.4-.7.3-1h-.3c-.4 0-.7.2-1 .3l-1 .2s-.3 0-.2.2c0 .3 1-.2 1.2.6l1.2 4.4c.2 1-.4.8-.3 1.2l1-.2 1.3-.3c.2-.1.2-.2.2-.3 0-.3-.9.4-1.2-.7l-1.2-4.4zm1.8 2.1c.6 1.9 2.1 2.7 3.8 2.2 2.6-.9 2.3-3.3 1.9-4.5-.6-2-2.3-2.7-3.8-2.2-2 .7-2.6 2.6-1.9 4.5zm.8-.8c-.4-1.3-.4-2.7 1-3.2 1-.4 2.3.3 3 2.4.5 1.5.5 2.8-1 3.3-1.4.5-2.5-1.2-3-2.5zm6.1-4.3c-.2-.6 0-.7.4-.8.8-.3 1.5.2 1.8 1 .2.6.4 1-.8 1.6-.3 0-.6.2-.7 0l-.7-1.8zm.7 4.5c.4 1-.4 1-.2 1.3 0 .2.2.1.3 0 .4 0 .8-.3 1.2-.4l.7-.3c.2 0 .2-.1.2-.2-.1-.3-.8.3-1.2-.6l-.6-1.5c0-.4-.2-.4.3-.6.4-.1.5-.1.9.2l1.2 1.2c.5.4 1 .8 1.6.6.3-.1.7-.5.6-.8 0 0 0-.1-.1 0h-.6l-2.2-2 .3-.5c.1-.3.2-.7 0-1.3-.2-.4-.8-1.6-2.6-.9l-1.6.7-1 .3v.2c.1.3.8-.4 1.2.6l1.6 4z"/>
+  </g>
+  <g fill="#fedf00" transform="matrix(.512 0 0 .512 0 76.8)">
+    <path fill="#d52b1e" d="M412.7 249.3h82.1v82h-82.1z"/>
+    <path id="a" fill="#fff" d="M451.2 313.8s0 3-.8 5.3c-1 2.7-1 2.7-1.9 4a13.2 13.2 0 01-3.8 4c-2 1.2-4 1.8-6 1.6-5.4-.4-8-6.4-9.2-11.2-1.3-5.1-5-8-7.5-6-1.4 1-1.4 2.8-.3 4.6a9 9 0 004.1 2.8l-2.9 3.7s-6.3-.8-7.5-7.4c-.5-2.5.7-7.1 4.9-8.5 5.3-1.8 8.6 2 10.3 5.2 2.2 4.4 3.2 12.4 9.4 11.2 3.4-.7 5-5.6 5-7.9l2.4-2.6 3.7 1.2h.1z"/>
+    <use width="100%" height="100%" transform="matrix(-1 0 0 1 907.5 0)" xlink:href="#a"/>
+    <path d="M461.1 279l10.8-11.7s1.6-1.3 1.6-3.4l-2.2.4-.5-1.2-.1-1.1 3-.7V260l.3-1.3-3.2.2.3-1.4.5-1 1.9-.4h1.9c1.8-3.4 9.2-6.4 14.4-1 3.8 4 3 11.2-2 13.2a6.3 6.3 0 01-6.8-1.1l2-4c2.7 1.7 5-.3 4.8-2.4-.2-2.7-2-4.3-4.3-4.5-2.3-.2-4 1-5 3-.6 1.3-.3 2.2-.5 3.6-.2 1.5 0 2.3-.5 3.8a8.8 8.8 0 01-2.4 3.6l-11 12-43 46.4-3.2-3 43.2-46.7z"/>
+    <path fill="#fff" d="M429.5 283s2.7 13.4 11.9 33.5c4.7-1.7 7.4-2.8 12.4-2.8 4.9 0 7.6 1 12.3 2.8A171 171 0 00478 283l-24.2-31-24.4 31z"/>
+    <path d="M456.1 262.4l16.8 21.7s-2.2 10.5-9 26.3c-2.7-.6-5-1.1-7.8-1.3v-46.7zm-4.7 0l-16.8 21.7s2.2 10.5 9 26.3c2.7-.6 5-1.1 7.8-1.3v-46.7z"/>
+  </g>
+  <g fill="#d52b1e">
+    <path fill="#fedf00" d="M257.8 204.4H300v42h-42z"/>
+    <path d="M263.7 204.4h6.3v42h-6.3zm12 0h6.3v42h-6.2zm12 0h6.3v42h-6.2z"/>
+  </g>
+  <g fill="#d52b1e" stroke="#d52b1e" stroke-width=".5">
+    <path fill="#fedf00" stroke="none" d="M211.4 282.8c.2.8.4 2 1.1 3.4.8 1.2.5 1.2 2.2 3a13.8 13.8 0 006.7 3.6c3.4 1 5.7 1 8.5.9 2.2-.1 3.9-.4 5.3-.6 2-.2 3.4-.4 5.7-.5a32.4 32.4 0 013.1 0c1.2 0 2.4.3 3.7.5 2.8.6 5.6 1.7 5.6 1.7v-43.9h-42v30l.1 2z"/>
+    <path stroke-width=".3" d="M216.3 290.5l2 1.2 2.7 1v-41.8h-4.7zm23.4 2v-41.6H235v42.2l4.7-.5zm9.3-41.6h-4.6v41.7a31 31 0 014.6.8V251zm-18.6 0v42.7h-4.7v-42.7z"/>
+  </g>
+  <g transform="matrix(.512 0 0 .512 0 76.8)">
+    <path fill="#fedf00" d="M585.5 402.4a20.8 20.8 0 01-2.2 6.6c-1.5 2.3-1 2.3-4.3 6a26.3 26.3 0 01-13 7 51.8 51.8 0 01-16.6 1.6c-4.3-.2-7.5-.7-10.3-1-3.8-.6-6.7-.9-11-1a62.9 62.9 0 00-6.2 0 83.3 83.3 0 00-18.3 4.2V340h82.2v58.5l-.3 3.8z"/>
+    <g id="b">
+      <path fill="#d52b1e" d="M524.6 347l-.6.2-.8.8c-.4.4-.7.5-1.2.8l-.6.5c-.3.3 0 .6-.3 1-.1.4-.3.6-.6 1-.4.4-.7.5-1 1l-1.2 1-.3.1h-.6c-.4.2-.5.6-.8.8l.3.6.8 1.4c.2.3.2.7.5.8.5.2.9.2 1.3.1.8.2 1.3.2 2 .5l1.5.8c.5.3.8.4 1.3.5h1.8v.3l2 1a1.7 1.7 0 00-.1.4c-.1.3-.2.7-.1.8.6 1.9 1.2 3 1.5 3.2.6.2.8.9 1.1 1.5l-.3.3c-.6.6-1.2 1-1.7 1.8-.7 1.2-1.2 1.2-.3 2.8l1.5 2.4c.4.7.6 1.2.8 2 .2.7.3 1.2.3 2l1 .3.7-.6.6-1.2v-1c-.2-.1-.3-.4-.2-.7 0-.4.5-.3.7-.6.3-.5-.4-.8-.7-1.1-.6-.7-1.4-.9-1.6-1.9 0-.2 0-.4.4-.7l2-1.8c.2.1.6.2 1 .1l1.3.4c.6.2.9 0 1.2 0h.4l.1.6c.1 1-.1 3 .2 3.5l.3.6.2.6v2l-.2 1.7c0 .4-.2.7-.5 1-.2.4-.6.4-1 .7v1l1.1.5 1.3.3.7-.3.1-.6.5-.5c.4-.2.8 0 .9-.1.2-.3 0-.4 0-.8 0-.6-.2-1-.3-1.6a11.8 11.8 0 01-.1-2.8c0-.6 0-1 .2-1.5.1-1 .4-1.4.6-2.2.3-1 .3-1.6.4-2.5a24.4 24.4 0 0010.1-.6c.8.7 1.7 1.2 2.7 1.6v1c0 .3 0 .4.2.7l.3.3c.3 0 .5 0 .7-.2.2-.2.2-.4.2-.7v-.7h1.8v1.1c.1.3.3.4.5.4a.7.7 0 00.6 0c.3-.2.2-.6.3-1v-.7l1-.4a5.1 5.1 0 010 .9l-.3.9c-.2.6-.5.8-.8 1.4-.4.6-.5 1-1 1.5l-.6.7-.6.9-.9 1c-.7.6-1.2.2-2 .9l-.3 1 1.4.6 1.3.2.4-.2c0-.3 0-.6.3-.8.2-.3.4-.3.7-.4.4 0 .8 0 1-.2.4-.3.4-1 .7-1.5a12.7 12.7 0 013-3.9l1.7-1.4c.2-.4.5-.5.5-1l-.2-.6-.2-1c1.5.7 1 .7 1.2 1.4.3.6 0 1 .1 1.7.1.8.5 1.1.5 1.9.1.9-.1 1.4-.3 2.3-.1.8-.1 1.3-.5 2a3.8 3.8 0 01-1.1 1.5l-.6.5-.1 1 1.1.4 1.6.4.4-.3c.2-.7 0-1.7.4-1.7.4-.1.7 0 .8-.3v-.7l.7-4.5.4-1.9.4-1.7c.7-2-.2-2.3-1-3.6-.5-.7-.7-1-.7-1.5V362a42.7 42.7 0 010-2.8l.4-.2c1.2-.7 1.7-.9 2.4-2.5a3.4 3.4 0 00.3-1.5v-1l-.4-1a3.2 3.2 0 00-.6-.8c-.7-1-1.7-1.1-2.7-1.5-1.5-.5-2.5-.4-4-.5-1.8-.2-2.7-.2-4.4 0-2 0-3.1.4-5.1.7l-4.9.4c-2.3 0-4.4-.5-5.8-.4-2.4.2-2.5.8-6.2 1.1a67 67 0 01-3.8.2l-2.2-.7c.9-.3 1.1-.5 1.5-1 .3-.4.2-.7.6-1.1l.7-1a2.2 2.2 0 00-.9-.4h-1a3 3 0 00-1.2.3l-.8.6-2.2-1.2a8.8 8.8 0 00-3-.9zm2 11.8z"/>
+      <g fill="none" stroke="#fedf00" stroke-linecap="round">
+        <path d="M568.8 359.5l-.8.3c-.9.4-1.6.4-2.6.5-2.6.2-4.3-1.1-7-.9-1.4.1-2 1.2-3.5 1.6a9.3 9.3 0 01-1.7.2l.5-1s-1.2.3-2 .3a7.5 7.5 0 01-1.6-.2l1-1-1.3-.2a4 4 0 01-1-.7 20.5 20.5 0 001.7-.3c1.5-.4 2-1.2 3.9-1.4 1.1 0 3 0 7.6.8 3 .5 4.4.2 5.5-.3.8-.3 1-1 1.1-1.8.1-.8-.4-1.4-.8-1.8-.1 0-.5-.3-1.1-.4"/>
+        <path fill="#fcd900" stroke-linecap="butt" stroke-width=".5" d="M524.8 350.6c-.5 0-.9 0-1.3.3-.5.3-.6.7-1 1.1.5.1.8.4 1.2.3.4 0 .5-.2.8-.5.3-.4.4-.7.4-1.2h-.1z"/>
+        <path d="M536 363.8a13.6 13.6 0 001 2.3c.2.8 0 1.2.2 2v1.6m6.8-7l-.3 1.3-1 3.5v.7m-11-4c.9.2.6 3.3 1.9 4"/>
+        <path stroke-linecap="butt" d="M560.1 369.8l.4-.3a8.2 8.2 0 002.7-1.8"/>
+        <path d="M552.4 368c3.5-.9 5.9-2.6 7.6-2.9m-4-1.5h.8c1.5-.3 1.7.6 2.7 1.2 1.9 1 2.1 2.3 4.3 3.4l.4.1.8.4"/>
+        <path fill="#fcd900" stroke-linecap="butt" stroke-width=".5" d="M517.7 354.5h.7l.8-.2c.3 0 .5 0 .7.2.2 0 .2.1.3.3 0 .2.2.3.1.5 0 .2-.3.4-.6.4-.2 0-.4 0-.5-.3a.5.5 0 010-.4 1 1 0 01-.9 0 1 1 0 01-.6-.5z"/>
+      </g>
+      <path fill="#0065bd" d="M525.1 364.2l-2-.9c.4-.2.7-.2 1-.5.3-.4.3-.8.5-1.3s.2-1 .7-1.4c.3-.2.8-.2 1.1-.1.4 0 .8.4.9.7 0 .6-.2 1-.3 1.5 0 .6-.3.9-.2 1.4 0 .4.2.6.4 1l-2-.4zm-1 1a.6.6 0 11.7.5.6.6 0 01-.7-.6zm-1.7-16.6h-.2c-.4-.4-.4-.8-.6-1.2a4 4 0 01-.3-1.2v-2c0-.3 0-.6-.2-.9 0-.2-.4-.3-.3-.4 0-.1.3 0 .4 0 .4 0 .6.1 1 .4.3.3.5.6.6 1l.4 1.5.3.8.5.6-.7.8-.9.6zm3.6 10.6l2.2 1a9.2 9.2 0 003.5-3.8c.9-1.8 1-2.7 1.4-4.4l-1.8-.5h-.4c-.5 1.8-.7 2.7-1.6 4.2-.8 1.3-1.7 2.3-2.6 3l-.7.5zm5 18.2l.8-1.3 1.4-1.1h.4a8.7 8.7 0 01-.5 2.8l-.4 1-.5.5c-.5-.8-1.3-1.3-1.3-2zm33 1.8l1.4.6 1.5.9v.5l-1.5.2a8.4 8.4 0 01-1.3 0h-1l-.6-.4c.5-.7.8-1.6 1.4-1.8zm-9.8-2l1.4.5 1.5 1c0 .1.1.3 0 .4a9 9 0 01-2.7.3l-1-.1-.7-.3c.6-.7.9-1.7 1.5-1.8zm-17.4 2.1l1.5.5 1.5 1v.5a9 9 0 01-2.8.2h-1l-.6-.4c.5-.7.8-1.6 1.4-1.8zm-9-29.8c-.6-.3-1-1-.6-1.6.1-.2.4-.2.6-.4.2-.3.1-.5 0-.8l-.1-1-.2-1c0-.6 0-1 .4-1.6.2-.3.7-.6.8-.6.2.1 0 .5 0 .8 0 .5.1.7.3 1.2l.7 1.3c.2.6.4.8.4 1.4 0 .5 0 .7-.2 1.2a2 2 0 01-.6.8 2 2 0 01-.8.4 1.1 1.1 0 01-.6 0z"/>
+    </g>
+    <use width="100%" height="100%" y="36.6" xlink:href="#b"/>
+  </g>
+  <path fill="none" stroke="#703d29" stroke-width=".4" d="M211.3 204.4h42v42h-42zm46.5 0H300v42h-42zm-46.4 78.4c.2.8.4 2 1.1 3.4.8 1.2.5 1.2 2.2 3a13.8 13.8 0 006.7 3.6c3.4 1 5.7 1 8.5.9 2.2-.1 3.9-.4 5.3-.6 2-.2 3.4-.4 5.7-.5a32.4 32.4 0 013.1 0c1.2 0 2.4.3 3.7.5 2.8.6 5.6 1.7 5.6 1.7v-43.9h-42v30l.1 2zm88.4 0c-.1.8-.4 2-1.1 3.4-.8 1.2-.5 1.2-2.2 3a13.8 13.8 0 01-6.7 3.6 26.1 26.1 0 01-8.5.9c-2.2-.1-3.9-.4-5.3-.6a55.6 55.6 0 00-5.6-.5 32.4 32.4 0 00-3.2 0c-1.2 0-2.4.3-3.7.5-2.8.6-5.7 1.7-5.7 1.7v-43.9H300v30l-.1 2z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ae.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ae.svg
new file mode 100644
index 0000000..739c5d4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ae.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ae" viewBox="0 0 512 512">
+  <path fill="#00732f" d="M0 0h512v170.7H0z"/>
+  <path fill="#fff" d="M0 170.7h512v170.6H0z"/>
+  <path d="M0 341.3h512V512H0z"/>
+  <path fill="red" d="M0 0h180v512H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/af.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/af.svg
new file mode 100644
index 0000000..90c34b8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/af.svg
@@ -0,0 +1,81 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-af" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path d="M0 0h512v512H0z"/>
+    <path fill="#090" d="M341.3 0H512v512H341.3z"/>
+    <path fill="#bf0000" d="M170.7 0h170.6v512H170.7z"/>
+  </g>
+  <g fill="#fff" fill-rule="evenodd" stroke="#bd6b00" stroke-width=".5" transform="translate(2.2 86.8) scale(.84611)">
+    <path d="M319.5 225.8h8.3c0 3.2 2 6.6 4.5 8.5h-16c2.5-2.2 3.2-5 3.2-8.5z"/>
+    <path stroke="none" d="M266.7 178.5l4.6 5 57 .2 4.6-5-14.6-.3-7-5h-23l-6.6 5.1h-15z"/>
+    <path d="M290 172.7h19.7c2.6-1.4 3.5-5.9 3.5-8.4 0-7.4-5.3-11-10.5-11.2-.8 0-1.7-.6-1.9-1.3-.5-1.6-.4-2.7-1-2.6-.4 0-.3 1-.7 2.4-.3.8-1.1 1.5-2 1.6-6.4.3-10.6 5-10.5 11.1.1 4 .6 6.4 3.4 8.4z"/>
+    <path stroke="none" d="M257.7 242.8H342l-7.5-6.1h-69.4l-7.5 6.1z"/>
+    <path d="M296.4 219.7l1.5 4.6h3.5l-2.8-4.6h-2.2zm-2 4.6l1 4.6h4l-1.5-4.6h-3.5zm7 0l2.8 4.6h5.9l-4.6-4.6h-4.1zm-34.5 10.4c3.1-2.9 5.1-5.3 5.1-8.8h7.6c0 2 .7 3.1 1.8 3h7.7v-4.5h-5.6v-24.7c-.2-8.8 10.6-13.8 15-13.8h-26.3v-.8h55.3v.8H301c7.9 0 15.5 7.5 15.6 13.8v7h-1l-.1-6.9c0-6.9-8.7-13.3-15.7-13.1-6 .1-15.4 5.9-15.3 13v2.2l14.3.1-.1 2.5 2.2 1.4 4.5 1.4v3.8l3.2.9v3.7l3.8 1.7v3.8l2.5 1.5-.1 3.9 3.3 2.3h-7.8l4.9 5.5h-7.3l-3.6-5.5h-4.7l2.1 5.4h-5l-1.3-5.4h-6.2v5.8H267zm22.2-15v4.6h5.3l-1-4.6H289z"/>
+    <path fill="none" d="M289.4 211.7h3.3v7.6h-3.3z"/>
+    <path fill="none" d="M284.7 219.8h3.2v-5.6c0-2.4 2.2-4.9 3.2-5 1.2 0 2.9 2.3 3 4.8v5.8h3.4v-14.4h-12.8v14.4zm25.6 3.3h4v3.2h-4zm-2.4-5.3h4v3.1h-4zm-3.9-5.4h4v3.1h-4zm-3.3-4.5h4v3.1h-4z"/>
+    <path fill="none" d="M298 219.8l4.2.2 7.3 6.4v-3.8l-2.5-1.8v-3l-3.6-2v-3.3l-3.5-1.2V207l-1.7-1.5-.1 14.4z"/>
+    <path d="M315.4 210.3h1v7.1h-1z"/>
+    <g id="a">
+      <path d="M257.3 186.5c-1.2-2-2.7 2.8-7.8 6.3-2.3 1.6-4 5.9-4 8.7 0 2 .2 3.9 0 5.8-.1 1.1-1.4 3.8-.5 4.5 2.2 1.6 5.1 5.4 6.4 6.7 1.2 1 2.2-5.3 3-8 1-3 .6-6.7 3.2-9.4 1.8-2 6.4-3.8 6-4.6l-6.3-10z"/>
+      <path fill="#bf0000" d="M257 201.9a10 10 0 00-1.6-2.6 6.1 6.1 0 00-2.4-1.8 5.3 5.3 0 01-2.4-1.5 3.6 3.6 0 01-.8-1.5 5.9 5.9 0 010-2l-.3.3c-2.3 1.6-4 5.9-4 8.7a28.5 28.5 0 000 2.3c.2.5.3 1 .6 1.3l1.1.8 2.7.7a7.1 7.1 0 012.6 2 10.5 10.5 0 011.8 2.6l.2-.8c.8-2.7.7-5.9 2.6-8.5z"/>
+      <path fill="none" d="M249.8 192.4c-.5 3.3 1.4 4.5 3.2 5.1 1.8.7 3.3 2.6 4 4.4m-11.7 1.5c.8 3 2.8 2.6 4.6 3.2 1.8.7 3.7 3 4.5 4.8"/>
+      <path d="M255.6 184.5l1-.6 17.7 29.9-1 .6-17.7-30z"/>
+      <path d="M257.5 183.3a2 2 0 11-4 0 2 2 0 114 0zm15.2-24h7.2v1.6h-7.2zm0 3.1h7.2v13.8h-7.2zm-.4-5h8c.2-2.7-2.5-5.6-4-5.6-1.6.1-4.1 3-4 5.6z"/>
+      <path fill="#bd6b00" stroke="none" d="M292.6 155.8c-1.5.6-2.7 2.3-3.4 4.3-.7 2-1 4.3-.6 6.1 0 .7.3 1.1.5 1.5.2.3.4.5.6.5.3 0 .6 0 .7-.3l.2-.8c-.1-2-.1-3.8.3-5.4a7.7 7.7 0 013-4.4c.3-.2.4-.5.5-.7a1 1 0 00-.3-.7c-.4-.3-1-.4-1.5-.1zm.2.4c.4-.2.8 0 1 .1l.1.2c0 .1 0 .2-.3.4a8.2 8.2 0 00-3.1 4.6 16.7 16.7 0 00-.3 5.6 1 1 0 01-.2.6s0 .1-.2 0c0 0-.2 0-.4-.3a3.9 3.9 0 01-.4-1.2c-.3-1.8 0-4 .7-6 .7-1.8 1.8-3.4 3-4z"/>
+      <path fill="#bd6b00" stroke="none" d="M295.2 157.7c-1.5.7-2.5 2.3-3 4.2a13.6 13.6 0 00-.3 5.9c.2 1.3 1 2 1.6 2 .3.1.6 0 .8-.3.2-.3.3-.6.2-1-.4-1.6-.5-3.4-.3-5.1.3-1.7 1-3.2 2.2-4.1.3-.3.5-.5.5-.8a.8.8 0 00-.2-.6c-.4-.3-1-.4-1.5-.2zm.2.5c.4-.2.8-.1 1 0l.1.3-.3.4a6.5 6.5 0 00-2.4 4.4c-.3 1.8-.1 3.7.2 5.2.1.4 0 .6 0 .8l-.5.1c-.3 0-1-.5-1.2-1.7-.3-1.7-.2-3.9.3-5.7.5-1.8 1.5-3.3 2.8-3.8z"/>
+      <path d="M272.3 187.4h8v11h-8zm.5 17.4h7.7v2.4h-7.7zm-.2 4.1h8v8.7h-8zm-.6 10.5h8.7v4.9H272zm1.1-16.6h7l1.4-2.4h-9.6l1.2 2.4zm9.4-8.6l.1-6h4.8a17.4 17.4 0 00-4.9 6z"/>
+      <path fill="none" d="M273.6 196.7c0 1.3 1.5.8 1.5.1v-5.6c0-1 2.4-.8 2.4-.1v6c0 1 1.7.9 1.6 0v-7c0-2.2-5.5-2.1-5.5-.1v6.7zm0 13.3h5.7v7h-5.7z"/>
+      <path d="M277.2 213h2v1h-2zm-3.5 0h2v1h-2zm2-3h1.5v3h-1.5zm0 4h1.5v3.1h-1.5zM244 139c.4 5.5-1.4 8.6-4.3 8.1-.8-3 1-5.1 4.3-8.1zm-6.5 12.3c-2.6-1.3-.7-11.5.3-15.8.7 5.5 2 13.3-.3 15.8z"/>
+      <path d="M238.4 151.8c4.4 1.5 8-3.2 9.1-8.7-3.6 5-9.5 5-9 8.7zm-3.3 5.1c-3.4-.9-1.4-11.7-.7-16 .7 4.5 3.1 14.5.7 16zm1.2-.3c.2-3.7 3.9-2.7 6.5-4.7-.5 2-2 5.2-6.5 4.7zm-4.2 5c-3.4-1-1.4-12.6-1.6-17.4 1 4.2 4.2 16.3 1.6 17.4zm1.6-.5c2.8.9 6.5-1 6.8-4.3-2.5 1.7-6.3.4-6.8 4.3z"/>
+      <path d="M229.5 166.7c-3.2.3-1.8-9.6-1.8-18.8 1.2 8.6 4.5 16.5 1.8 18.8z"/>
+      <path d="M230.7 166.3c2.2 1 6.1-.7 7.2-4.4-4 1.7-6.6 0-7.2 4.4zm25.6-22.2c-.6 4.9-2.6 7.7-5.5 7.2-.8-3 1.6-5 5.5-7.2zm-7.8 12.4c4.9.7 6.6-3 10-7.9-4.7 3.4-10.2 4-10 8z"/>
+      <path d="M247 156c-2.6-3.2 0-7.3 2-10.7-.4 5.1 1.3 8-2 10.7zm-1 5.3c-.4-3.2 5-3.9 7.4-5.6-.9 1.8-2 6.7-7.5 5.6z"/>
+      <path d="M244.8 161.3c-3.7-.4-2.2-6.7.5-10.1-1.1 4.8 2 8.1-.5 10.1z"/>
+      <path d="M242 166.6c-4.2-2-1.5-7.2 0-10.3-.6 4.1 2.8 7.2 0 10.2z"/>
+      <path d="M242.8 166c2.2 3 6.5-.8 7.4-5.2-3.7 3.1-6.5 2.6-7.4 5.3zm-9.6 20.3c-.4-4.3 2.8-12 .5-16.2-.3-.6.7-2.1 1.4-1.2 1 1.5 2 5.7 2.5 4.1.4-1.7.5-4.6 2-5.2 1-.3 2.3-.6 1.9 1-.4 1.4-1.2 3.4-.3 3.5.5 0 2-2 3.3-3 1-.8 2.6.6 1 1.8-4.8 4-9.5 5.9-12.3 15.2zm-8.7 64.5c-.6 0-1.3-.3-.6.6 5.7 7 7.3 9 15.6 8 8.3-1.1 10.3-3.4 16.2-6.7a14.6 14.6 0 0111.2-1c1.6.5 2.6.5 1.4-.7-1.2-1.1-2.5-2.7-4-3.8a17.5 17.5 0 00-12.7-2.7c-6 1-11.1 4.9-17.2 6.4a25 25 0 01-9.9 0zm47.8 12.5c1 .2 1.7 2.2 2.3.9.8-2.3.2-4-.8-3.9-1.2.3-3.1 3-1.5 3z"/>
+      <path stroke="none" d="M220.6 183c-1.2-1.4-.9-1.8 1-1.9 1.4 0 4.2 1 5.3.1 1-.7.5-3.7 1-5 .2-.9.7-2 2-.2 3.6 5.8 8 12.8 10 19.6 1 3.8 0 9.8-3.4 13.8 0-3.4-1.2-5.7-2.7-8.6-2-3.7-9.1-14-13.2-17.9z"/>
+      <path d="M235.5 213.4c4 0 4.7-5.3 4.7-6.8-2 .4-5.4 3.7-4.7 6.8zm34.5 51.9c2.8.6 2.7-6.2-.2-9.1 1.3 4.4-2 8.4.1 9zm-1.2-.1c.2 3.2-8-.4-10-3 4.8 2.1 9.8.4 10 3zm-3.5-4.6c.3 3.1-7 .3-9.3-2.1 4.9 1.6 9-.5 9.3 2zm1.3.4c2.9.7 2.4-6.4-.4-8.8 1.4 4.7-1.8 8.1.4 8.8zm-3-4.3c2.9.7 1.2-5.4-.9-7.8.4 4.4-1 7.5 1 7.8zm-1.5 0c.3 3.2-5.4.8-7.6-2.3 4.8 1.5 7.3-.3 7.6 2.3zm-1.5-2.5c1.8-1.3-.1-4.8-3.7-4.6.4 2.1 1.6 5.9 3.7 4.6zm14 14.7c.1 3.2-8 1.6-10.6-1.8 5.2 1 10.3-.8 10.5 1.8zm-32.4-5.8c.3 3.2-8.6-.4-10.8-3.4 4.7 1.6 10.5.8 10.8 3.4zm5.4 1.3c1.9-1.3-1.9-4.7-5-5.5.4 2.1 3 6.8 5 5.6zm.6 2.3c.2 2.9-9.5 1.3-12-1.4 8.3 1.5 11.7-1.1 12 1.4z"/>
+      <path d="M252.8 268.6c1 2.7-8.3 2-11.6.5 5.3 0 10.8-2.4 11.6-.5z"/>
+      <path d="M257.1 270.6c1 2.4-7.6 2.4-11.8 1 5.6 0 10.8-3.4 11.8-1zm6.3 1.3c1.6 2.9-7.6 3.1-10.5 1.7 5.2-.7 9.2-4 10.5-1.7zm-10.7-4.9c-2.9 1.8-2.7-3.6-5-7.3 3.6 3.3 7 5.6 5 7.3z"/>
+      <path d="M257.9 269c-2.4 2.1-4.4-5.3-6.6-9.5 3.6 4 8.8 7.7 6.6 9.4zm6.8 2c-2 2.4-8-7-10.2-12 3.3 3.9 11.8 10 10.2 12zm-5.8 7.2c-1 3.6-16.2-3.4-18-7.1 8.8 4.6 18.2 3.6 18 7zm-48.7-73.8c-.4-.5-1.4 0-1.2 1.1.3 1.5 2.5 9.2 6.3 11.8 2.7 2 17 5.1 23.4 6.5 3.6.7 6.5 2.5 8.9 5.3a94.4 94.4 0 00-3-9.8c-1.2-3-4.4-6.2-7.8-6.3-6.1-.3-14.1-.8-20-3.3a16 16 0 01-6.7-5.3z"/>
+      <path d="M245.5 234.9c2 1.4 4.1-3.7 1.7-8.6-.1 4.7-3.8 6.3-1.7 8.6z"/>
+      <path d="M247.4 239.6c2.7.8 3.5-4 1.8-7.8.3 4.1-4.3 6.6-1.8 7.8z"/>
+      <path d="M249.5 243.4c2.6 1.3 3.5-3.6 1.7-7.1.2 4.5-3.7 5.9-1.7 7z"/>
+      <path d="M248.4 243.7c-1 3-7-2.7-8-5.8 3.7 3.7 8.7 3.2 8 5.7z"/>
+      <path d="M245.7 239c-1.2 3-8.7-5-10.4-8.7 3.7 3.7 11.2 6.5 10.4 8.6z"/>
+      <path d="M244.2 234.3c-1.2 3.5-9.3-5.8-11.7-9.1 4 3.6 12.6 6.6 11.7 9.1zm-.3-3.4c3-.6-.1-3-3.7-6.9-.1 4.1.5 7 3.7 6.9z"/>
+      <path d="M239 228.5c1.3-1.3-1.1-1.9-4.1-5.3-.5 2.3 2.8 6.5 4.2 5.3zm14 15.2c1.6 1 2.6-2.3.7-5.2-.5 3.2-2.1 4-.7 5.2zm-34.2-20.3c-3.3 2-8.6-6-10-9.3 2.9 3.8 10.6 7.2 10 9.3z"/>
+      <path d="M221.7 228c-1.9 2-7.7-3.5-9.7-6.3 3 2.7 10.5 3 9.7 6.3z"/>
+      <path d="M224.8 232.2c-.6 2.8-9-3.5-11-6.5 3.6 3.5 11.6 3.2 11 6.5z"/>
+      <path d="M223.5 235.3c-1.3 2.5-8.2-3.8-9.9-7 4.3 3.6 11 4.5 10 7zM220 223c2.1-2.3 1.2-3.4-.4-7-.8 3.7-2.1 5.2.4 7zm2.9 4.3c4 .2 0-4.6-1-8.7.4 4.6-1 8.3 1 8.7z"/>
+      <path d="M225.4 231.1c2.7-.6 2-4.5-.2-9.2.5 5.1-2.3 8 .2 9.2zm-1 7.7c-1 3-8.8-4-10-6.8 4 3.4 10.7 4.5 10 6.8z"/>
+      <path d="M229.1 243.6c-1.1 3-9.3-3.2-11.8-6.6 4.9 4 12.4 3.6 11.8 6.6z"/>
+      <path d="M233.9 248.5c-1.3 4.3-9.9-2.6-12.4-6 5.4 4.2 13 3 12.4 6zm-8-11c2.3 1.1 3.2-5.4 1.9-10.1 0 5-4.7 8.8-2 10z"/>
+      <path d="M229.8 242.7c2.8.8 2-6.3-.5-11-.3 4.7-2.3 9 .5 11zm5 4.9c3 .1 1-6.1-1.6-9.6.4 4.5-1 9 1.6 9.6zm-5.5 2.6c-1 1.6-3.2-1.3-7-3.5 3.4 1 7.4 2 7 3.5zm-1.8-52.7c3-2.2.7-6.2 0-10-1 3.6-3.4 8.4 0 10zm0 5.3c-4.5-.5-3.8-6.1-4-9.7 1.4 4.9 5 5.7 4 9.8zm.6-.7c3.7-.2 3.5-4.4 3.7-8.6-1.9 3.9-4 4.5-3.7 8.6z"/>
+      <path d="M228 207.3c-3 .3-4.4-2.6-5-7 2.7 4.1 5.1 2.8 5 7zm1-.3c3.7.5 3-3.8 3-7-1.2 3-4.2 4-3 7z"/>
+      <path d="M223.2 205.2c.3 2.8 2.1 7.6 5 6.5 1.1-3.4-2.6-4.1-5-6.5z"/>
+      <path d="M229 212c-1.2-2.4 3-3.7 3.8-6.9.5 4.6.1 7.6-3.8 7zm-11.9-29.2c2.3-2.4.3-6.4-.4-10.2-1 3.6-2.5 8.4.4 10.2zm0 4.6c-4 .5-5-7.7-5.5-11.3 1.4 4.9 6 7 5.5 11.4zm.8 0c2.8-1.5 2.2-4.7 3-7-1.8 2.9-3.6 3.3-3 7z"/>
+      <path d="M217 192.8c-4.1.3-6.6-8.8-6.8-12.4 1.3 4.9 7.4 7.5 6.9 12.4zm.9-.2c4-.9 3.5-3.5 2.9-7.6-1.3 4.2-3.5 3.3-2.9 7.6z"/>
+      <path d="M217 198c-4.6.8-4.3-6.6-8-11.9 3.2 4 9 9 8 11.9zm1-.3c3.6.2 4-5.1 3.8-7.3-.9 2.2-5 4.2-3.7 7.4z"/>
+      <path d="M209.8 192.3c1.7 5.7 4.2 11.4 7.2 11 1.5-3.3-2.9-3.7-7.2-11z"/>
+      <path d="M218.1 202.4c-1.2-2.5 3-3.7 3.8-6.9.5 4.6.1 7.6-3.8 6.9zm-7.1-3.6c2.5 5.1 3.6 11 7 10.1 1.3-4-3.8-4.8-7-10.1z"/>
+      <path d="M218.7 208c-1.5-2.8 2.7-3.7 3.8-7.4.5 4.8 0 8.3-3.8 7.3zm7.2-34.5c2.4.6 5-2.1 4.1-6.2-2.8.6-4 3.2-4.1 6.2zm-7.9-2.1c.2 1.2 1.7 1.3 1.2-.4a5.3 5.3 0 010-3.4 7.5 7.5 0 000-4.6c-.4-1-1.8-.4-1.2.4.6.9.7 2.8.2 3.7-.6 1.3-.4 3-.2 4.3zm22.9 16c-1 1.3-2.9.4-1.4-1.5 1.2-1.5 3-2.8 3-4.4.2-2 1.3-5 2.4-6.1 1.1-1.1 2.4.4 1.2 1.2-1.3.8-2.2 4.4-2.1 5.8-.1 2-2 3.5-3.1 5zm-3-2.3c-1 1.4-2.4.5-1.6-1.7.7-1.5.8-3.5 1.6-4.6 1.2-1.7 3-3.1 4.1-4.2 1.2-1 2 0 1 1a27 27 0 00-3.3 4c-1.4 2.2-.8 4-1.8 5.5zm-15.7-7.2c-.1 2 1.5 2.4 1.4-.4 0-3-2.2-5.8-1-10.3.8-2.2.8-6.3.4-8.4-.4-2.2-2-.8-1.3.9.6 2-.1 5.6-.6 7.5-1.5 5.4 1.2 8 1 10.7zm4.3-11c-.2 1.9-1.8 2-1.3-.5.4-2 .4-3.6 0-5.3-.6-2.1-.4-5.7 0-7.2.5-1.6 2-.7 1.4.5a9.9 9.9 0 00-.3 5.9c.6 2 .5 4.8.2 6.7zM210.9 204c.8.9 2 .3 1-1-1-1-.7-1.2-1.3-2.4-.6-1.4-.5-2.1-1.2-3-.7-1-1.6 0-1 .7.8 1 .6 1.6 1 2.5 1 1.5.7 2.3 1.5 3.2zm20.4 24.6a8.6 8.6 0 014.4 6.7 16 16 0 002 7.1c-2-.5-3-3.7-3.3-6.8-.3-3.2-2-4.5-3-7zm5.1 5.9c1.7 3.1 4 4.3 4.2 6.6.2 2.7.4 2.8 1.1 5.4-2-.5-2.5-.7-3-4.7-.3-2.8-2.6-4.7-2.3-7.3z"/>
+      <path stroke="none" d="M289 263.3c1 1.8 2 4.5 4 4 0-1.3-2.1-2.3-4-4zm3 .6c3.7 1.6 7 1.2 7.5 3.6-3.6.4-5-1-7.6-3.6zm-16.1-12.7a14 14 0 015 7.7 29 29 0 003.6 7.8 13 13 0 01-5.3-7.4c-.7-3-1.6-5.3-3.3-8zm3.1 0c2.8 2.2 5.4 4.8 6.2 7.9.8 2.9 1.3 5.1 3.2 8-3-1.9-4.1-4.7-5-7.8-.7-3-2.5-5.2-4.4-8zm9.2 7.3a1.1 1.1 0 01.7-1.2 33.4 33.4 0 012.6-.8c1-.3 1.6.4 1.6.9v2c0 .7-.2.8-.7.9-.7.1-1.7.2-2.4.7-.6.4-1.2.1-1.5-.5l-.3-2zm10.6 0c0-.6-.2-1.1-.6-1.2a5.4 5.4 0 00-2.4-.4c-1 0-1.1.2-1.1.6v2.1c0 .8 0 .8.4 1 .7 0 1.8 0 2.5.6.5.3 1 0 1.1-.6l.1-2.1z"/>
+    </g>
+    <use width="100%" height="100%" x="-600" transform="scale(-1 1)" xlink:href="#a"/>
+    <g stroke="none">
+      <path d="M328.5 286.6c0 1.2.2 2.2 1 3.1a19 19 0 00-13.8 1.1c-1.8.8-4-1-1.9-2.7 3-2.3 9.7-1 14.7-1.5zm-57.5 0a7 7 0 01-.4 3c4.4-1.7 9.1-.2 13.6 1.6 3 1.3 3.3-1 2.8-1.7a6.5 6.5 0 00-5-2.9h-11zm3.8-21.7c-1.3-.5-2.7 0-4 1.4-4.3 4.2-9.4 8.3-13.5 11.6-1.5 1.3-3 3.7 3.4 6 .3.2 5 2 8 2 1.3 0 1.3 1.8 1 2.3-.5 1-.1 1.4-1.1 2.3-1.1 1 0 2.1 1 1.3 3.6-3.2 9.6-1.1 15.3.7 1.4.4 3.8.3 3.8-1.6 0-2 1.5-3.4 2.4-3.5 2.4.4 14 .5 17.5.1 2-.3 2.2 2.9 3.3 4 .8.9 3.7 1.1 5.8.2 4-1.8 10-1.8 12.5 0 1 .7 1.9 0 1.3-.7-.8-1-.7-1.6-1.1-2.4-1-2-.2-2.4.8-2.5 11-1.5 14.6-5.2 11.2-8.3-4.4-3.8-9.2-7.7-13.4-12.2-1.2-1.2-2-1.7-4.3-.7a66.5 66.5 0 01-25.3 5.9 76 76 0 01-24.6-5.8z"/>
+      <path fill="#bd6b00" d="M326.6 265.5l-1.6.4c-9 3.2-17.2 5.4-25.7 5.4-8.3 0-17-2.4-24.9-5.6a2.3 2.3 0 00-1.5 0c-.5.1-1 .4-1.3.7a115.5 115.5 0 01-11.8 10.3c-.7.5-.6 1.8.5 2.2 8.3 3 16.4 8.5 39.6 8.3 23.5-.2 31.8-5.6 39.2-8.1.5-.2 1-.5 1.3-1a1 1 0 00.1-.8 2 2 0 00-.6-.8c-4.3-3.5-8.8-6.3-11.8-10.4-.3-.5-.9-.6-1.5-.5zm0 .5c.5 0 1 0 1.1.3 3 4.3 7.7 7 11.9 10.5l.4.7a.5.5 0 010 .4c-.1.3-.6.6-1 .7-7.6 2.6-15.7 8-39 8.2-23.2.2-31.2-5.3-39.5-8.3-.8-.4-.7-1.2-.4-1.4 4.2-3.2 8.2-6.8 11.8-10.4a2.5 2.5 0 011.1-.6h1.2a68 68 0 0025 5.6c8.7 0 17-2.2 26-5.3a6.7 6.7 0 011.5-.4z"/>
+      <path d="M269.7 114.6c0-1.4 2-1.5 1.8.4-.3 2.3 4.5 8.3 4.9 12 .3 2.5-1.5 4.6-3.2 6a6.6 6.6 0 01-6.8.5c-.9-.8-1.7-3.3-1-4.3.2-.3 1.3 3.7 3.7 3.7 3.3 0 6-2.5 6-4.7.2-3.8-5.3-9.8-5.4-13.6zm9.5 9.4c.6-.4 1.4 1.3.8 1.7-.5.3-1.5-1.3-.8-1.8zm1.5-3.5c-.3.2-.8 0-.7-.2a12 12 0 013.6-3.3c.4-.2 1 .4.8.7a11 11 0 01-3.7 2.8zm12.6-10c.3-.6 2.1-1.3 2.6-1.7.4-.5.6.4.4.7-.3.7-1.9 1.7-2.6 1.8-.3 0-.6-.4-.4-.7zm4.3.3a8.3 8.3 0 012.5-3.4c.5-.3 1.3 0 1.1.4a9 9 0 01-2.9 3.3c-.3.3-.8 0-.7-.3zm-3.7 2.7c-.3.2-.1.7.1.8.6.2 1.5.2 2 0 .6-.4.3-2.9-.5-1.6-.6.8-1 .6-1.6.8zm-7.3 5.6c-1.3-1 .4-2.4 1.7-1.4 2.7 2-4 9.8-7.6 13.4-.7.7-1.3-1-.4-1.9a33.7 33.7 0 006.7-7.6c.4-.5.7-1.6-.4-2.5zm15.3-6.6c.1-1-1.6 0-1.6-1.3 0-.7 1.9-1.2 2.7-.4 1.3 1.4.3 3.7-2 3.9-1.8 0-5 2.7-4.5 3.2.5.7 5.4 1.1 8.3.7 1.8-.3 1.4 1.3-.4 1.5-1.8.2-3.2 0-4.8.6-2 .5-2.8 3-3.9 4-.2.2-.8-.8-.6-1.2.8-1.2 2-3 3.4-3.6.8-.3-2.4-.4-3.4-.7-.8-.2-.6-1.3-.3-1.9.4-.8 3.4-3.9 4.7-3.8 1.1 0 2.3-.3 2.4-1zm5 .2c.6-.5 1-1.3 1.5-1.8.3-.3.9 0 .8.8-.1.7-1 1.2-1.5 1.7-.5.3-1-.4-.7-.7zm6.5-2.3c.9 0 1 1.6.2 1.8-.6.2-1-1.7-.2-1.8zm-2.1 5c0 1.5.7 1.4 2 1.3 1.3 0 2.4 0 2.4-1.2 0-1.3-.7-2.5-1-1.6-.1.8-.3 2.2-.8 1.6-.4-.5-.2-.6-1 .2-.5.5-.5-.2-.8-.6-.2-.3-.8.2-.8.4zm-9.2 7.2c-.3 1.9 0 4.5.9 4.5 1.2 0 3.6-4 4.8-6.2.7-1.2 1.8-1.4 1.3-.1-.7 1.9-.6 6 0 7.2.4.6 3-.6 3.4-1.5.8-1.7.1-4.8.4-6.7.1-1.2 1.3-1.5 1.2-.3a75.6 75.6 0 00-.1 7.5c0 1 2.9 2.4 3.3-.6.2-1.8 1.2-3.7 0-5.7-.8-1.3 1.1-1.2 2.1.6.7 1.2-.6 3.2-.5 4.7 0 2.4-1.8 3.8-3.1 3.8-1.2 0-2-1.5-3-1.5s-2.2 1.7-3 1.6c-3.6-.2-1.7-5.3-2.8-5.4-1.2 0-2.5 5-4 4.9-1.4-.2-3-4.2-2.3-5.8.5-1.6 1.5-2 1.4-1zm16.9-8c-1.7-1 0-3.7.9-2.8 1.6 2 3.2 6.5 4.4 6.9.7.2.6-3.4 1.1-5 .4-1.3 1.8-.9 1.6.7-.1.5-2 6.4-1.8 6.6a47.1 47.1 0 013.3 7.8c.3 1.2-1.1.4-1.3.2-.9-1.4-2.4-6.5-2.4-6.2l-1.7 7.7c-.2 1-1.7.8-1.3-1 .3-1.4 2.3-8.3 2.2-8.6a17.2 17.2 0 00-5-6.3z"/>
+      <path d="M322 131.2c-.4 0-1.2 1 1.2 1.5 3.1.6 6.6-.5 7.6-3.6 1.3-3.7 2-7.2 2.7-8.5.8-1.5 1.8-1.4 1-3.6-.5-1.7-1.5-1.2-1.7-.3-.5 2.3-2.6 10-3.3 11.3-1.2 2.6-3.7 3.6-7.5 3.2z"/>
+      <path d="M328.4 119c-.4-.7-1.2 0-1 .7a1.2 1.2 0 001.2 1c.7 0 2.2.1 2.2-1 0-.8-.7-1.5-1.1-.6-.5.8-1 .7-1.3 0zm.7-3c-.2.2 0 1.1.3 1a7 7 0 003.3-.8c.2-.2.1-.7-.2-.7-1 0-2.6 0-3.4.5zm8.8 2.3c.8-1.2 2.8-1.3 2 .4a614.3 614.3 0 01-6.3 12.3c-.8 1.4-1.4.7-.8-.4.7-1.4 4.9-12 5.1-12.3z"/>
+      <path d="M330.2 133c-.2-.8-1.5-2-1.3.2.2 3.8 5.5 2.6 7 1.3s.3 4.3 2.2 4.9c1 .3 3-1.1 4-2.4 2.7-3.5 4.5-8.6 7-12 1-1.4-.5-2.4-1-1.3-2.4 3.8-5.2 11.6-8.3 13.6-2.5 1.6-1.7-2-1.8-3.2-.1-.8-1.1-2-2.4-.9a5.5 5.5 0 01-3.7 1.2c-.7 0-1.4 0-1.7-1.4z"/>
+      <path d="M339.6 126c0-.3-1.1-.4-1 .7 0 .8 1 1 1.1 1 1.5-1.2-.3-.6-.1-1.8zm-2.3 4.4c-.3 0-.6 1 .2 1.1l3.9-.2c.4 0 .6-.9-.4-.8-1.2 0-2.7-.3-3.7 0zm-62-16.6c.5 0 1.6 1.4 1.5 1.9 0 .2-1.2 0-1.5-.3-.3-.3-.2-1.6 0-1.6zm-5.3 10.4c-1 .6.2 1.7 1 1.2 2.8-1.9 7-3.8 8-7.5.3-1.2 1.4-3.1 2.5-3.5 1-.5 2.6 1.9 3.6 0 .6-1 2.7.7 3.2-.4.6-1.3.3-2 .3-3.4 0-.8-.7-1-1.2.3-.2.6 0 1.2-.1 1.6-.2.2-.6.4-1 .2-.2-.2 0-.7-.6-1-.2 0-.6-.1-.8.2-.7 1.3-1 2.5-2.1 1-.9-1-1.4-3.1-2-.3-.2 1-1.7 2.4-2.6 2.4-1.1 0-.8-3-3.2-2.5-1.3.3-1.2 2.7-1 3.5.3 1.3 4 .4 3.7 1.2-.6 2.7-4.4 5.4-7.7 7zm-22.7 13.2c-.1.5.5 1.7 1.1 1.8.6 0 1-1.3.8-1.8-.2-.3-1.8-.3-1.9 0zm3.3 4.9c-.4-.4-1.6.7-.6 1.5.5.5 2.5 1.1 3 .2.8-1.2-.7-5.5 0-6 .5-.5 2.8 2.8 4 3 2.7.4 2-4.6 5-4.2 1.9.2 2.1-2.2 1.8-3.8-.2-1.5-2.6-3.6-3.7-4.6-1.4-1.2-2.1 1-1.2 1.6 1.2 1 3.3 2.9 3.6 4.1.1.6-1.4 1.8-2 1.5-1.4-.8-2.6-4-3.8-4.7-.4-.2-1.4.3-1 1.3.6 1.1 3 2.7 3.1 3.9.1 1-1 3.2-1.8 3.2-.9 0-3-2.7-3.7-4-.4-.5-1.5-.5-1.7.4a22 22 0 00.5 5.5c.2 1.6-.9 1.7-1.5 1.1zm-4-8.6c-.4.4.8 1.2 1 1 .4-.4 2.1-2.3 1.8-3-.3-.6-2.6-2-3-1.3-.7 1.1 2.2 1.7 1.7 2a7 7 0 00-1.5 1.3zm4.1-8.4s.8 2.5 1.4 1.4c.4-.7-1.4-1.4-1.4-1.4zm1.2 4c-.2 0-1 .7-.5 1 .8.4 2.9.8 2.4-.7-.3-.9 3.2 0 2.3-2.4a3.7 3.7 0 00-1.7-1.7c-.4 0-1.5.5-.8.9.5.2 2 1.1 1.5 1.7-.7.6-1.1-.3-1.9-.1-.4 0-.1 1.2-.4 1.5 0 .2-.7-.4-.9-.3zm5.5-9.5a3.5 3.5 0 00-1.2 2c0 .2.3.6.5.5a3.2 3.2 0 001.2-1.9c0-.3-.2-.8-.5-.6zm2.8-.3c-.8-1 1-2.6 1.7-.5.5 1.3 5.5 7.9 6.5 10.1.8 1.5 0 2.1-.9 1-2.5-3.2-4.6-7.2-7.3-10.6zm5.2.1c.9-1 2.7-3 2.2-4-.4-1-1.5-1-1.7-.7-1 1.3.8 1 .5 1.4-.5 1-1 1.6-1.3 2.6-.1.3.1.9.3.7zm77.8 3.2c-.7-.5.6-3 1.5-2 2.3 2.7 3.4 11.6 4.1 18.3 0 0-1 .9-1 .7 0-3.5-1.5-14.4-4.6-17zm-53.1-8.6c-.8-1.8 1.1-2.4 1.4-1.2 1.3 5.8 4.5 10.2 7 14.1.7 1.2 0 2-1.7.8-1.2-.8-2.5-3.9-3-4-1.2-.2-3.8 5-9.1 3.5-1.4-.4-1.3-4.5-1.4-6.3 0-.9 1-1 1 0 0 1.7 0 5.2 2.1 5.4 1.8 0 5.6-2.4 6.4-4.4.8-2-1.9-5.9-2.7-8z"/>
+      <path d="M344.6 138.4c.4-1.2 6.1-10.8 6.9-12.9.4-1 2 1.8.4 3.3-1.4 1.2-5.5 8-6.3 10.4-.4 1-1.4.5-1-.8z"/>
+      <path d="M354.3 129.3c1-4 3.6.6 1.3 2.8-3.4 3.4-4.5 9.9-10 10.9-1.4.3-4-.7-4.8-1.3-.3-.2.2-1.6 1.1-.9 1.3 1 4.1 1.3 5.6.1a25.4 25.4 0 006.8-11.6zm-57 12.7c-.3.3-1 .3-1.1.7-.3 1.4 0 2.2-.3 3.6s-1.3 1.4-1.2.3c0-1.4 1.3-3.5.4-3.6-.6-.1-1-.9-.4-1.3 1.1-.7 1.7-.6 2.4-.4.3.1.4.5.2.7z"/>
+      <path d="M296.5 140c-1.4 1.4-2.8 1.9-4.1 3.5-.6.6-.5 1.5-.9 2.4-.3.9-1.4 1-1.7.9-.5-.4-.4-2-1-1.2-.6.9-.9 2-1.7 2-.7 0-2-1.5-1.3-1.5 2.3-.3 2.2-2 3-2.2 1-.1 1 1.5 1.7 1.2.4-.2.7-2.1 1.2-2.6 1.5-1.6 2.7-2.4 4.3-3.6.7-.6 1.3.5.5 1.2zm5.3 5c-1.2.2-1 1.7-.6 1.8.5.3 1.4.4 1.7-1.3.2-.7.3 3.5 1.8 1.9 1-1 3.1.2 4-1 .7-.9 1-1.5.4-2.7-.2-.3-1-.2-1 .7 0 .8-.5 1.7-1.3 1.6-.4-.1.2-1.9-.2-2.4a.5.5 0 00-.7 0c-.3.4.3 2.2-.6 2.4-1.2.2-.6-1.2-1-1.4-1.7-.8-1.8.2-2.5.3zm9-3c.9-.2.6-.2 2-1.3.5-.4.6.8.5 1.3 0 .7-1 .2-1.3.9-.4.9-.2 3-.4 3.8 0 .4-.8.4-.8 0-.2-1 .1-2 0-3.3 0-.4-.5-1.1 0-1.3zm-5-2.5c-.2.9-.2 1.6-.2 2.3 0 .5 1 .2 1 .1 0-.8.2-2 0-2.3-.2-.1-.7-.3-.8-.1z"/>
+      <path d="M299.5 130.2l-1.4 5.6-2-3.8v3.9l-4.4-5.2 1.5 5.6-4-3.4 2.2 3.8-7-4.5 4.4 5.2-5.6-2.8 4 3.4-9-3.4 8.7 4.3a29 29 0 0112.6-2.6c4.9 0 9.3 1 12.5 2.6l8.8-4.3-9 3.4 4-3.4-5.5 2.8 4.3-5.2-7 4.5 2.2-3.8-4 3.3 1.5-5.5-4.3 5.2V132l-2 3.8-1.5-5.6z"/>
+    </g>
+  </g>
+  <path fill="#fff" d="M249 299.7l-.1 2.2h-.4v-1.5a7.4 7.4 0 00-.4-1.3 5.8 5.8 0 00-.5-1 11.3 11.3 0 00-.8-1.1l.7-1.8a5.3 5.3 0 011.1 2 7.5 7.5 0 01.5 2.5m5.5-3.4c0 .6-.1 1-.3 1.2-.2.3-.6.5-1 .6l.2 1.1a5.3 5.3 0 010 1.7v1h-.4v-1a4.4 4.4 0 00-.2-.8 28.8 28.8 0 00-.3-.8 8.4 8.4 0 00-.6-1.2l-.8-1.3.5-1.6.8.9.7.2c.7 0 1-.3 1-1h.3a8 8 0 000 .5v.5m5.1 3.9l-.4 1.7-.6-.6a3.5 3.5 0 01-.3-1 9.9 9.9 0 010-1.4 3 3 0 01-.9.1c-.4 0-.7 0-1-.3a1 1 0 01-.4-.8c0-.7.2-1.3.6-1.8.3-.6.7-.9 1.2-.9.3 0 .6.1.7.3l.3.8v1.6c0 .7 0 1.2.2 1.4 0 .3.3.5.6.9m-1.5-2.9c0-.4-.3-.6-.7-.6a.8.8 0 00-.4.1c-.2.1-.2.2-.2.3 0 .2.2.3.8.3a2.2 2.2 0 00.5 0m6.9 2.3l-.2 2.1c-.4-.3-.8-.8-1.1-1.5a20 20 0 01-1.1-3.3 41.3 41.3 0 01-.8 3l-.6 1.3a2 2 0 01-.6.6v-2l.8-1.2a6 6 0 00.6-1.4 16 16 0 00.3-2h.4l.7 2a6.7 6.7 0 001.6 2.4"/>
+  <path fill="#bf0000" d="M280.5 319.2c.3.3.5.6.6 1l.2 1.2h-.6a6.2 6.2 0 00-.7-1.1 15.2 15.2 0 00-1-1l-1.3-1.2a27.3 27.3 0 00-1.6-1.3l-.5-.4-.2-.6a9 9 0 01-.1-1.3l2.1 1.7a35.3 35.3 0 012 1.8l1.1 1.2m-7.6-4.6l-.1 1.6-2.5-.1.2-1.6h2.4m6.7 7.1l-6 1.9-1.2-1.6 5.2-1.5a6.3 6.3 0 00-.5-.7l-.7-.5a1.1 1.1 0 01-.4.8 2 2 0 01-.8.5 2.7 2.7 0 01-1.4 0c-.5 0-.8-.3-1-.6a3.1 3.1 0 01-.5-1.7c0-.8.2-1.3.6-1.5.6-.2 1.4 0 2.5.5a6.5 6.5 0 012.4 2l1.8 2.4m-4.7-3.2a3.1 3.1 0 00-.6-.2.9.9 0 00-.5 0 .5.5 0 00-.4.3.4.4 0 000 .4l.4.2h.5a.9.9 0 00.3-.3l.3-.4m-6.4-1.2l-.4 1.6-2.5-.3.4-1.5 2.5.2m6 6l-1.4.4a4.2 4.2 0 01-1.4 0 2.8 2.8 0 01-1.2-.3c-.2.4-.6.7-1.1 1a5.9 5.9 0 01-1.3.4l-1 .3-.8-1.6 1-.2 1-.3.6-.4a4.7 4.7 0 00-.7-.4 1 1 0 00-.6-.1.3.3 0 00-.2 0 .5.5 0 000 .3h-.5c-.4-.7-.5-1.2-.3-1.6.3-.4.8-.7 1.6-.9.8-.2 1.5-.2 2.1 0 .6 0 1 .3 1.2.6.1.2.2.4.1.6 0 .2 0 .5-.3 1a1.6 1.6 0 001 0l1.3-.3.8 1.6m-6.4 1.5l-1.3.2c-.7 0-1.3 0-1.8-.4a4.3 4.3 0 01-1.3-2l-.6-1.7a2 2 0 00-.6-1l-.8-.3.5-1.7 1.1.9.8 1.3.4 1.2a5 5 0 001 1.7c.2.3.4.4.7.3l1.3-.2.6 1.7m-5.5-6l-.9 1.5-2.3-.6.8-1.5 2.4.6m1.4 6.7l-6 .5-.3-1.6 5-.5a1.9 1.9 0 00-.6-.7 6 6 0 00-.8-.5l.5-1.5c.5.3 1 .6 1.2 1 .2.4.5 1 .6 1.7l.4 1.6m-4.8.8a13 13 0 01-1.8-.2 8.3 8.3 0 01-1.3-.4 4.5 4.5 0 01-1 .3h-3c-.5 0-.8 0-1-.2l-.6-.8a3.3 3.3 0 01-1.3.7 4 4 0 01-1.3.2h-1.4l.2-1.8 1.3.1c.7 0 1.3 0 1.7-.3.6-.3 1-.8 1-1.4h.6a22.9 22.9 0 00-.1 1c0 .3 0 .5.3.6l.7.2h2.9c.4-.2.6-.5.7-1l.1-.3a2.6 2.6 0 01.4-.2l.4-.1v.6l-.3.8a6.4 6.4 0 001.7.4c0-.1 0-.3-.2-.5 0-.3-.2-.4-.2-.5a.4.4 0 01.1-.2l.3-.2.8-.7.3.7c0 .2.1.5 0 .8l-.1 2.4m-9-7l-1.5 1-1.1-.6-1.1.8-1.5-.9 1.4-1 1.2.7 1.1-.9 1.5 1m-2.4 6.4l-5.8-1 .7-1.6 4.8.8a1.3 1.3 0 000-.8 4 4 0 00-.5-.6l1.3-1.3c.3.4.5.8.5 1.2 0 .4 0 1-.4 1.7l-.6 1.6m-4.9-.8l-1.2-.3c-.7-.1-1.1-.4-1.2-.9-.1-.5.1-1.2.7-2.2l1-1.7.2-.9-.3-.6 1.8-1.2.2 1.1c0 .4-.2.9-.6 1.4l-.6 1.2a4 4 0 00-.7 1.7c0 .3.1.5.4.5l1.2.3-.9 1.6m-3-6.3l-2 .9-1.4-1.4 2-.8 1.5 1.3m-.9 5.3a4 4 0 01-1.2 1.1c-.4.3-.9.4-1.4.5a7 7 0 01-1.9 0 11.8 11.8 0 01-2.2-.6 6 6 0 01-2.7-1.6c-.5-.6-.5-1.2 0-1.8a5.6 5.6 0 011.5-1.3 18.8 18.8 0 013-1.2l.4.4c-1 .4-1.8.7-2.2 1a3.3 3.3 0 00-1 .7c-.3.4-.3.8.1 1.3a8.4 8.4 0 005 1.8c1 0 1.6-.3 1.9-.6l.4-.7.1-1.4 2-1.2-.1 1.2c-.1.4-.4.8-.8 1.3l-.9 1.1"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ag.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ag.svg
new file mode 100644
index 0000000..d0b2a83
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ag.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ag" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill="#25ff01" d="M109 47.6h464.8v464.9H109z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-120 -52.4) scale(1.1014)">
+    <path fill="#fff" d="M0 47.6h693V512H0z"/>
+    <path d="M1.5 48.2h690.9v196.2H1.5z"/>
+    <path fill="#0061ff" d="M128.3 232.1h458.5v103.4H128.3z"/>
+    <path fill="#e20000" d="M692.5 49.2v463.3H347L692.5 49.2zm-691.3 0v463.3h345.7L1.2 49.2z"/>
+    <path fill="#ffd600" d="M508.8 232.2l-69.3-17.6 59-44.4-72.5 10.3 37.3-63-64.1 37.2 11.3-73.5-43.4 58-17.6-67.3-19.6 69.3-43.4-59 12.4 75.6-64.1-39.3 37.2 63-70.3-11.3 57.9 43.4-72.4 18.6h321.6z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ai.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ai.svg
new file mode 100644
index 0000000..472be20
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ai.svg
@@ -0,0 +1,763 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ai" viewBox="0 0 512 512">
+  <defs id="defs1837">
+    <clipPath id="a">
+      <path id="path1834" fill-opacity=".7" d="M0 0h640v480H0z"/>
+    </clipPath>
+  </defs>
+  <path id="rect4120" fill="#012169" fill-opacity="1" stroke-width="4.1" d="M0 0h512v512H0z"/>
+  <path id="path1855" fill="#49497d" d="M384 212.7l2 2z"/>
+  <path id="path1857" fill="#0e0e6e" d="M386 212.7l2 2z"/>
+  <path id="path1859" fill="#262678" d="M379.9 214.7l2 2z"/>
+  <path id="path1861" fill="#808067" d="M382 214.7l2 2z"/>
+  <path id="path1863" fill="#58587b" d="M388 214.7l2 2z"/>
+  <path id="path1865" fill="#0e0e6e" d="M312.9 216.8l2 2z"/>
+  <path id="path1867" fill="#1b1b74" d="M375.9 216.8l2 2z"/>
+  <path id="path1869" fill="#6e6c70" d="M377.9 216.8l2 2z"/>
+  <path id="path1871" fill="#cc3" d="M316.5 220.4c0 52.5-6 111.6 33 152.7 8 8.4 23.4 27.7 36.5 27 13.7-.8 31.4-21.1 39.2-31 34-44.8 28.7-98.2 29.8-150.2-15.3 6.9-23 9.2-36.4 9-10 1-25.3-5.5-34.5-10-6 4-14.7 8.9-30.4 9.4-18 .8-23.8-2.3-37.2-7z"/>
+  <path id="path1873" fill="#99994e" d="M390 216.8l2 2z"/>
+  <path id="path1875" fill="#49497d" d="M392 216.8l2 2z"/>
+  <path id="path1877" fill="#0e0e6e" d="M455 216.8l2 2z"/>
+  <path id="path1879" fill="#a4a43d" d="M315 218.8l2 2z"/>
+  <path id="path1881" fill="#6e6c70" d="M317 218.8l2 2z"/>
+  <path id="path1883" fill="#3a3a7c" d="M319 218.8l2 2z"/>
+  <path id="path1885" fill="#1b1b74" d="M371.8 218.8l2 2z"/>
+  <path id="path1887" fill="#6e6c70" d="M373.8 218.8l2 2z"/>
+  <path id="path1889" fill="#a4a43d" d="M375.9 218.8l2 2z"/>
+  <path id="path1891" fill="#d0d045" d="M384 218.8l2 2z"/>
+  <path id="path1893" fill="#a4a43d" d="M392 218.8l2 2z"/>
+  <path id="path1895" fill="#8d8d5b" d="M394 218.8l2 2z"/>
+  <path id="path1897" fill="#3a3a7c" d="M396.2 218.8l2 2z"/>
+  <path id="path1899" fill="#262678" d="M448.9 218.8l2 2z"/>
+  <path id="path1901" fill="#53527c" d="M451 218.8l2 2z"/>
+  <path id="path1903" fill="#8d8d5b" d="M453 218.8l2 2z"/>
+  <path id="path1905" fill="#737370" d="M323 220.9l2 2z"/>
+  <path id="path1907" fill="#53527c" d="M325 220.9l2 2z"/>
+  <path id="path1909" fill="#1b1b74" d="M327 220.9l2 2z"/>
+  <path id="path1911" fill="#262678" d="M367.7 220.9l2 2z"/>
+  <path id="path1913" fill="#6e6c70" d="M369.8 220.9l2 2z"/>
+  <path id="path1915" fill="#a4a43d" d="M371.8 220.9l2 2z"/>
+  <path id="path1917" fill="#e5e59d" d="M382 220.9l2 2z"/>
+  <path id="path1919" fill="#fff" d="M320.6 226a509 509 0 004 88.2c4.9 15.4 4.2 23.9 11.3 33l99-.7c6-9.7 10.5-24.4 11-30.3 5.6-29.7 5.7-62.6 5.9-92a62 62 0 01-35.7 7.4 69 69 0 01-30.5-9.2c-9.5 5.6-12.8 8.2-28.4 8.9-12.2.6-22 1.6-36.6-5.2z"/>
+  <path id="path1921" fill="#f2f1d7" d="M386 220.9l2 2z"/>
+  <path id="path1923" fill="#d9d868" d="M388 220.9l2 2z"/>
+  <path id="path1925" fill="#a4a43d" d="M396.2 220.9l2 2z"/>
+  <path id="path1927" fill="#99994e" d="M398.2 220.9l2 2z"/>
+  <path id="path1929" fill="#49497d" d="M400.2 220.9l2 2z"/>
+  <path id="path1931" fill="#0e0e6e" d="M402.2 220.9l2 2z"/>
+  <path id="path1933" fill="#3a3a7c" d="M442.9 220.9l2 2z"/>
+  <path id="path1935" fill="#667" d="M444.9 220.9l2 2z"/>
+  <path id="path1937" fill="#99994e" d="M446.9 220.9l2 2z"/>
+  <path id="path1939" fill="#a4a43d" d="M448.9 220.9l2 2-2-2m-121.8 2l2 2z"/>
+  <path id="path1941" fill="#99994e" d="M329.2 222.9l2 2z"/>
+  <path id="path1943" fill="#6e6c70" d="M331.2 222.9l2 2z"/>
+  <path id="path1945" fill="#49497d" d="M333.2 222.9l2 2z"/>
+  <path id="path1947" fill="#1b1b74" d="M335.2 222.9l2 2-2-2m26.4 0l2 2z"/>
+  <path id="path1949" fill="#53527c" d="M363.6 222.9l2 2-2-2z"/>
+  <path id="path1951" fill="#8d8d5b" d="M365.7 222.9l2 2z"/>
+  <path id="path1953" fill="#a4a43d" d="M367.7 222.9l2 2z"/>
+  <path id="path1955" fill="#e5e59d" d="M377.9 222.9l2 2z"/>
+  <path id="path1957" fill="#fbfaf2" d="M379.9 222.9l2 2z"/>
+  <path id="path1959" fill="#f2f1d2" d="M390 222.9l2 2z"/>
+  <path id="path1961" fill="#d9d868" d="M392 222.9l2 2z"/>
+  <path id="path1963" fill="#a4a43d" d="M402.2 222.9l2 2z"/>
+  <path id="path1965" fill="#6e6c70" d="M404.3 222.9l2 2z"/>
+  <path id="path1967" fill="#3a3a7c" d="M406.3 222.9l2 2z"/>
+  <path id="path1969" fill="#0e0e6e" d="M432.7 222.9l2 2z"/>
+  <path id="path1971" fill="#32327b" d="M434.7 222.9l2 2z"/>
+  <path id="path1973" fill="#58587b" d="M436.8 222.9l2 2z"/>
+  <path id="path1975" fill="#808067" d="M438.8 222.9l2 2z"/>
+  <path id="path1977" fill="#a4a43d" d="M442.2 223.5l1.3.7z"/>
+  <path id="path1979" fill="#dddc7a" d="M319 224.9l2 2z"/>
+  <path id="path1981" fill="#d0d045" d="M321 224.9l2 2z"/>
+  <path id="path1983" fill="#a4a43d" d="M336.6 225.5l1.4.7z"/>
+  <path id="path1985" fill="#808067" d="M339.3 224.9l2 2z"/>
+  <path id="path1987" fill="#667" d="M341.3 224.9l2 2z"/>
+  <path id="path1989" fill="#58587b" d="M343.4 224.9l2 2z"/>
+  <path id="path1991" fill="#49497d" d="M345.4 224.9l2 2z"/>
+  <path id="path1993" fill="#737370" d="M357.6 224.9l2 2z"/>
+  <path id="path1995" fill="#99994e" d="M359.6 224.9l2 2z"/>
+  <path id="path1997" fill="#a4a43d" d="M361.6 224.9l2 2z"/>
+  <path id="path1999" fill="#e5e59d" d="M373.8 224.9l2 2z"/>
+  <path id="path2001" fill="#fbfaf2" d="M375.9 224.9l2 2z"/>
+  <path id="path2003" fill="#f2f1d2" d="M394 224.9l2 2z"/>
+  <path id="path2005" fill="#d9d868" d="M396.2 224.9l2 2z"/>
+  <path id="path2007" fill="#a4a43d" d="M407.6 225.5l1.4.7-1.3-.7z"/>
+  <path id="path2009" fill="#808067" d="M410.4 224.9l2 2z"/>
+  <path id="path2011" fill="#667" d="M412.4 224.9l2 2z"/>
+  <path id="path2013" fill="#58587b" d="M414.4 224.9l2 2z"/>
+  <path id="path2015" fill="#3a3a7c" d="M416.5 224.9l2 2z"/>
+  <path id="path2017" fill="#58587b" d="M425.9 225.5l1.4.7z"/>
+  <path id="path2019" fill="#737370" d="M428.6 224.9l2 2z"/>
+  <path id="path2021" fill="#99994e" d="M430.6 224.9l2 2-2-2z"/>
+  <path id="path2023" fill="#a4a43d" d="M432.7 224.9l2 2z"/>
+  <path id="path2025" fill="#dddc7a" d="M448.9 224.9l2 2z"/>
+  <path id="path2027" fill="#d0d045" d="M451 224.9l2 2z"/>
+  <path id="path2029" fill="#f2f1d7" d="M323 226.9l2 2z"/>
+  <path id="path2031" fill="#e0dea1" d="M325 226.9l2 2z"/>
+  <path id="path2033" fill="#dddc7a" d="M327 226.9l2 2z"/>
+  <path id="path2035" fill="#d9d868" d="M367.7 226.9l2 2z"/>
+  <path id="path2037" fill="#e5e3af" d="M369.8 226.9l2 2z"/>
+  <path id="path2039" fill="#f6f6e4" d="M398.2 226.9l2 2z"/>
+  <path id="path2041" fill="#e1e18c" d="M400.2 226.9l2 2z"/>
+  <path id="path2043" fill="#d4d456" d="M440.8 226.9l2 2z"/>
+  <path id="path2045" fill="#e1e18c" d="M442.9 226.9l2 2z"/>
+  <path id="path2047" fill="#eeedc1" d="M444.9 226.9l2 2z"/>
+  <path id="path2049" fill="#f2f1d2" d="M331.2 228.9l2 2z"/>
+  <path id="path2051" fill="#e0dea1" d="M333.2 228.9l2 2z"/>
+  <path id="path2053" fill="#dddc7a" d="M335.2 228.9l2 2z"/>
+  <path id="path2055" fill="#d0d045" d="M337.3 228.9l2 2z"/>
+  <path id="path2057" fill="#dddc7a" d="M361.6 228.9l2 2z"/>
+  <path id="path2059" fill="#e5e3af" d="M363.6 228.9l2 2-2-2z"/>
+  <path id="path2061" fill="#f6f6e4" d="M365.7 228.9l2 2z"/>
+  <path id="path2063" fill="#eeedc1" d="M404.3 228.9l2 2z"/>
+  <path id="path2065" fill="#e1e18c" d="M406.3 228.9l2 2z"/>
+  <path id="path2067" fill="#d4d456" d="M408.3 228.9l2 2z"/>
+  <path id="path2069" fill="#d9d868" d="M432.7 228.9l2 2z"/>
+  <path id="path2071" fill="#e1e18c" d="M434.7 228.9l2 2z"/>
+  <path id="path2073" fill="#eeedc1" d="M436.8 228.9l2 2z"/>
+  <path id="path2075" fill="#f6f6e4" d="M438.8 228.9l2 2z"/>
+  <path id="path2077" fill="#f2f1d7" d="M341.3 230.9l2 2-2-2z"/>
+  <path id="path2079" fill="#f2f1d2" d="M343.4 230.9l2 2-2-2z"/>
+  <path id="path2081" fill="#eeedc1" d="M345.4 230.9l2 2-2-2z"/>
+  <path id="path2083" fill="#f2f1d2" d="M354.9 231.6l1.3.7z"/>
+  <path id="path2085" fill="#fbfaf2" d="M357.6 230.9l2 2-2-2z"/>
+  <path id="path2087" fill="#fef8f1" d="M367.7 230.9l4 4v-4h-4z"/>
+  <path id="path2089" fill="#f2f1d7" d="M412.4 230.9l2 2-2-2z"/>
+  <path id="path2091" fill="#f2f1d2" d="M414.4 230.9l2 2-2-2z"/>
+  <path id="path2093" fill="#e5e3af" d="M416.5 230.9l2 2-2-2z"/>
+  <path id="path2095" fill="#e5e59d" d="M419.9 231.6l1.3.7-1.4-.7z"/>
+  <path id="path2097" fill="#e0dea1" d="M422.6 230.9l2 2-2-2z"/>
+  <path id="path2099" fill="#f2f1d2" d="M425.9 231.6l1.4.7z"/>
+  <path id="path2101" fill="#fbfaf2" d="M428.6 230.9l2 2-2-2z"/>
+  <path id="path2103" fill="#fef8f1" d="M363.6 233l2 2-2-2z"/>
+  <path id="path2105" fill="#fbbe66" d="M365.7 233l2 2z"/>
+  <path id="path2107" fill="#fbc477" d="M363.6 235l2 2-2-2z"/>
+  <path id="path2109" fill="#fcb144" d="M367.7 235l2 2z"/>
+  <path id="path2111" fill="#fe9f11" d="M363.6 237l2 2-2-2z"/>
+  <path id="path2113" fill="#fea522" d="M367.7 237l2 2z"/>
+  <path id="path2115" fill="#fae3c9" d="M361.6 239l2 2-2-2m8.2 0l2 2z"/>
+  <path id="path2117" fill="#fbead6" d="M379.9 239l2 2z"/>
+  <path id="path2119" fill="#f9d6aa" d="M382 239l2 2z"/>
+  <path id="path2121" fill="#fae3c9" d="M390 239l2 2z"/>
+  <path id="path2123" fill="#fef8f1" d="M392 239l2 2z"/>
+  <path id="path2125" fill="#f9d099" d="M361.6 241l2 2z"/>
+  <path id="path2127" fill="#fdab33" d="M369.8 241l2 2z"/>
+  <path id="path2129" fill="#fcf1e4" d="M373.8 241l2 2z"/>
+  <path id="path2131" fill="#fbc477" d="M375.9 241l2 2z"/>
+  <path id="path2133" fill="#fea522" d="M377.9 241l2 2z"/>
+  <path id="path2135" fill="#fcb755" d="M394 241l2 2z"/>
+  <path id="path2137" fill="#f9d6aa" d="M396.2 241l2 2z"/>
+  <path id="path2139" fill="#faca88" d="M361.6 243.2l2 2z"/>
+  <path id="path2141" fill="#fea522" d="M371.8 243.2l2 2-2-2m26.4 0l2 2z"/>
+  <path id="path2143" fill="#f8dcbb" d="M400.2 243.2l2 2z"/>
+  <path id="path2145" fill="#f6f6e4" d="M319 245.2l2 2z"/>
+  <path id="path2147" fill="#fbc477" d="M361.6 245.2l2 2z"/>
+  <path id="path2149" fill="#fbbe66" d="M402.2 245.2l2 2z"/>
+  <path id="path2151" fill="#f8dcbb" d="M404.3 245.2l2 2z"/>
+  <path id="path2153" fill="#faca88" d="M361.6 247.2l2 2z"/>
+  <path id="path2155" fill="#fcb755" d="M408.3 247.2l2 2z"/>
+  <path id="path2157" fill="#f8dcbb" d="M410.4 247.2l2 2z"/>
+  <path id="path2159" fill="#fef8f1" d="M359.6 249.3l2 2z"/>
+  <path id="path2161" fill="#fe9f11" d="M361.6 249.3l2 2z"/>
+  <path id="path2163" fill="#fdab33" d="M418.5 249.3l2 2z"/>
+  <path id="path2165" fill="#fcb144" d="M420.6 249.3l2 2z"/>
+  <path id="path2167" fill="#fbc477" d="M422.6 249.3l2 2z"/>
+  <path id="path2169" fill="#f9d6aa" d="M424.6 249.3l4 4z"/>
+  <path id="path2171" fill="#fef8f1" d="M426.6 249.3l2 2z"/>
+  <path id="path2173" fill="#fcb144" d="M359.6 251.3l2 2z"/>
+  <path id="path2175" fill="#fdab33" d="M388 251.3l2 2z"/>
+  <path id="path2177" fill="#fbc477" d="M390 251.3l2 2zm8 0l2.2 2-2-2z"/>
+  <path id="path2179" fill="#fea522" d="M400.2 251.3l2 2z"/>
+  <path id="path2181" fill="#fae3c9" d="M357.6 253.3l2 2z"/>
+  <path id="path2183" fill="#fcb144" d="M384 253.3l2 2z"/>
+  <path id="path2185" fill="#fae3c9" d="M386 253.3l2 2z"/>
+  <path id="path2187" fill="#f8dcbb" d="M402.2 253.3l2 2z"/>
+  <path id="path2189" fill="#fdab33" d="M404.3 253.3l2 2z"/>
+  <path id="path2191" fill="#fe9f11" d="M416.5 253.3l2 2z"/>
+  <path id="path2193" fill="#fcb755" d="M418.5 253.3l2 2z"/>
+  <path id="path2195" fill="#f9d099" d="M420.6 253.3l2 2z"/>
+  <path id="path2197" fill="#fbead6" d="M422.6 253.3l2 2z"/>
+  <path id="path2199" fill="#fcb144" d="M357.6 255.3l2 2z"/>
+  <path id="path2201" fill="#fbbe66" d="M382 255.3l2 2z"/>
+  <path id="path2203" fill="#f9d099" d="M406.3 255.3l2 2z"/>
+  <path id="path2205" fill="#fbead6" d="M414.4 255.3l2 2z"/>
+  <path id="path2207" fill="#fcf1e4" d="M355.6 257.4l2 2z"/>
+  <path id="path2209" fill="#fbbe66" d="M379.9 257.4l2 2z"/>
+  <path id="path2211" fill="#f9d099" d="M408.3 257.4l2 2z"/>
+  <path id="path2213" fill="#fae3c9" d="M414.4 257.4l2 2z"/>
+  <path id="path2215" fill="#fbc477" d="M355.6 259.4l2 2z"/>
+  <path id="path2217" fill="#fcb144" d="M377.9 259.4l2 2-2-2m32.5 0l2 2z"/>
+  <path id="path2219" fill="#fbbe66" d="M414.4 259.4l2 2z"/>
+  <path id="path2221" fill="#f6f6e4" d="M319 261.4l2 2z"/>
+  <path id="path2223" fill="#fea522" d="M355.6 261.4l2 2z"/>
+  <path id="path2225" fill="#fbead6" d="M377.9 261.4l2 2z"/>
+  <path id="path2227" fill="#fcf1e4" d="M410.4 261.4l2 2z"/>
+  <path id="path2229" fill="#fef8f1" d="M416.5 261.4l2 2z"/>
+  <path id="path2231" fill="#fcf1e4" d="M353.6 263.5l2 2z"/>
+  <path id="path2233" fill="#fbbe66" d="M375.9 263.5l2 2z"/>
+  <path id="path2235" fill="#faca88" d="M412.4 263.5l2 2z"/>
+  <path id="path2237" fill="#f9d099" d="M416.5 263.5l2 2z"/>
+  <path id="path2239" fill="#f9d6aa" d="M353.6 265.5l2 2z"/>
+  <path id="path2241" fill="#fcf1e4" d="M375.9 265.5l2 2z"/>
+  <path id="path2243" fill="#fae3c9" d="M386 265.5l2 2z"/>
+  <path id="path2245" fill="#fea522" d="M388 265.5l2 2z"/>
+  <path id="path2247" fill="#fcb144" d="M390 265.5l2 2z"/>
+  <path id="path2249" fill="#f9d6aa" d="M392 265.5l2 2z"/>
+  <path id="path2251" fill="#fef8f1" d="M412.4 265.5l2 2z"/>
+  <path id="path2253" fill="#fea522" d="M414.4 265.5l2 2z"/>
+  <path id="path2255" fill="#fdab33" d="M416.5 265.5l2 2z"/>
+  <path id="path2257" fill="#faca88" d="M353.6 267.5l-2.1 6 2-6z"/>
+  <path id="path2259" fill="#fea522" d="M373.8 267.5l2 2z"/>
+  <path id="path2261" fill="#fef8f1" d="M375.9 267.5l2 2z"/>
+  <path id="path2263" fill="#f9d099" d="M386 267.5l2 2z"/>
+  <path id="path2265" fill="#fdab33" d="M394 267.5l2 2z"/>
+  <path id="path2267" fill="#fae3c9" d="M396.2 267.5l2 2z"/>
+  <path id="path2269" fill="#f8dcbb" d="M414.4 267.5l2 2z"/>
+  <path id="path2271" fill="#f90" d="M416.5 267.5l2 2z"/>
+  <path id="path2273" fill="#fbead6" d="M419.2 268.9l.6 1.3z"/>
+  <path id="path2275" fill="#fea522" d="M377.9 269.5l2 2z"/>
+  <path id="path2277" fill="#fbbe66" d="M379.9 269.5l2 2z"/>
+  <path id="path2279" fill="#faca88" d="M382 269.5l2 2z"/>
+  <path id="path2281" fill="#fcb144" d="M384 269.5l2 2z"/>
+  <path id="path2283" fill="#fae3c9" d="M386 269.5l2 2z"/>
+  <path id="path2285" fill="#fe9f11" d="M388 269.5l2 2z"/>
+  <path id="path2287" fill="#fdab33" d="M398.2 269.5l2 2z"/>
+  <path id="path2289" fill="#fbc477" d="M400.2 269.5l2 2z"/>
+  <path id="path2291" fill="#faca88" d="M402.2 269.5l2 2z"/>
+  <path id="path2293" fill="#f9d6aa" d="M404.3 269.5l2 2z"/>
+  <path id="path2295" fill="#fae3c9" d="M407.6 270.2l1.4.7-1.3-.7z"/>
+  <path id="path2297" fill="#fef8f1" d="M410.4 269.5l2 2z"/>
+  <path id="path2299" fill="#fbc477" d="M416.5 269.5l2 2z"/>
+  <path id="path2301" fill="#fef8f1" d="M329.2 271.6l2 2z"/>
+  <path id="path2303" fill="#fcf1e4" d="M331.2 271.6l2 2z"/>
+  <path id="path2305" fill="#fcb755" d="M384 271.6l2 2z"/>
+  <path id="path2307" fill="#fbead6" d="M388 271.6l2 2z"/>
+  <path id="path2309" fill="#fea522" d="M390 271.6l2 2z"/>
+  <path id="path2311" fill="#fe9f11" d="M406.3 271.6l2 2z"/>
+  <path id="path2313" fill="#fcb144" d="M408.3 271.6l-2 4z"/>
+  <path id="path2315" fill="#fe9f11" d="M412.4 271.6l2 2z"/>
+  <path id="path2317" fill="#fbbe66" d="M414.4 271.6l2 2z"/>
+  <path id="path2319" fill="#fcf1e4" d="M416.5 271.6l2 2z"/>
+  <path id="path2321" fill="#fae3c9" d="M329.2 273.6l2 2z"/>
+  <path id="path2323" fill="#fe9f11" d="M331.2 273.6l4 4z"/>
+  <path id="path2325" fill="#fbead6" d="M333.2 273.6l2 2zm18.3 0l2 2z"/>
+  <path id="path2327" fill="#fae3c9" d="M353.6 273.6l2 2z"/>
+  <path id="path2329" fill="#fe9f11" d="M371.8 273.6l2 2z"/>
+  <path id="path2331" fill="#fbc477" d="M373.8 273.6l2 2z"/>
+  <path id="path2333" fill="#fea522" d="M375.9 273.6l2 2z"/>
+  <path id="path2335" fill="#fbc477" d="M382 273.6l2 2z"/>
+  <path id="path2337" fill="#fef8f1" d="M384 273.6l2 2z"/>
+  <path id="path2339" fill="#fbc477" d="M392 273.6l2 2z"/>
+  <path id="path2341" fill="#fff" d="M408.3 273.6l2 2z"/>
+  <path id="path2343" fill="#fdab33" d="M410.4 273.6l2 2z"/>
+  <path id="path2345" fill="#fbc477" d="M418.5 273.6l2 2z"/>
+  <path id="path2347" fill="#fef8f1" d="M329.2 275.6l2 2z"/>
+  <path id="path2349" fill="#fbead6" d="M335.2 275.6l2 2z"/>
+  <path id="path2351" fill="#f9d6aa" d="M345.4 275.6l2 2z"/>
+  <path id="path2353" fill="#fe9f11" d="M355.6 275.6l2 2z"/>
+  <path id="path2355" fill="#f9d6aa" d="M358.9 276.3l1.4.7z"/>
+  <path id="path2357" fill="#f8dcbb" d="M371.8 275.6l2 2z"/>
+  <path id="path2359" fill="#fcf1e4" d="M377.9 275.6l2 2z"/>
+  <path id="path2361" fill="#f9d6aa" d="M394 275.6l2 2z"/>
+  <path id="path2363" fill="#fdab33" d="M408.3 275.6l2 2z"/>
+  <path id="path2365" fill="#fcb755" d="M420.6 275.6l2 2z"/>
+  <path id="path2367" fill="#fef8f1" d="M422.6 275.6l2 2z"/>
+  <path id="path2369" fill="#53527c" d="M312.9 277.7l2 2z"/>
+  <path id="path2371" fill="#fcb755" d="M331.2 277.7l2 2z"/>
+  <path id="path2373" fill="#fea522" d="M335.2 277.7l2 2z"/>
+  <path id="path2375" fill="#fbead6" d="M343.4 277.7l2 2z"/>
+  <path id="path2377" fill="#fe9f11" d="M347.4 277.7l2 2z"/>
+  <path id="path2379" fill="#fcf1e4" d="M349.5 277.7l2 2z"/>
+  <path id="path2381" fill="#fbbe66" d="M355.6 277.7l2 2z"/>
+  <path id="path2383" fill="#fbc477" d="M357.6 277.7l2 2z"/>
+  <path id="path2385" fill="#fbbe66" d="M359.6 277.7l2 2z"/>
+  <path id="path2387" fill="#fea522" d="M369.8 277.7l2 2z"/>
+  <path id="path2389" fill="#f9d6aa" d="M396.2 277.7l2 2z"/>
+  <path id="path2391" fill="#fcb144" d="M422.6 277.7l2 2z"/>
+  <path id="path2393" fill="#8d8d5b" d="M455 277.7l2 2z"/>
+  <path id="path2395" fill="#e5e3af" d="M319 279.7l2 2z"/>
+  <path id="path2397" fill="#f8dcbb" d="M331.2 279.7l2 2z"/>
+  <path id="path2399" fill="#fdab33" d="M337.3 279.7l2 2z"/>
+  <path id="path2401" fill="#fe9f11" d="M343.4 279.7l2 2z"/>
+  <path id="path2403" fill="#faca88" d="M347.4 279.7l2 2z"/>
+  <path id="path2405" fill="#fcf1e4" d="M355.6 279.7l2 2z"/>
+  <path id="path2407" fill="#f9d099" d="M369.8 279.7l2 2-2-2m28.4 0l2 2z"/>
+  <path id="path2409" fill="#fbbe66" d="M424.6 279.7l2 2z"/>
+  <path id="path2411" fill="#fea522" d="M333.2 281.7l2 2z"/>
+  <path id="path2413" fill="#fdab33" d="M339.3 281.7l2 2z"/>
+  <path id="path2415" fill="#fea522" d="M341.3 281.7l2 2z"/>
+  <path id="path2417" fill="#fe9f11" d="M345.4 281.7l2 2z"/>
+  <path id="path2419" fill="#fef8f1" d="M347.4 281.7l2 2z"/>
+  <path id="path2421" fill="#fbbe66" d="M357.6 281.7l2 2z"/>
+  <path id="path2423" fill="#fef8f1" d="M369.8 281.7l2 2z"/>
+  <path id="path2425" fill="#fbbe66" d="M400.2 281.7l2 2z"/>
+  <path id="path2427" fill="#f9d099" d="M426.6 281.7l2 2z"/>
+  <path id="path2429" fill="#f9d6aa" d="M333.2 283.8l2 2z"/>
+  <path id="path2431" fill="#f9d099" d="M345.4 283.8l2 2z"/>
+  <path id="path2433" fill="#fcf1e4" d="M357.6 283.8l2 2z"/>
+  <path id="path2435" fill="#fdab33" d="M367.7 283.8l2 2-2-2m34.5 0l2 2z"/>
+  <path id="path2437" fill="#fbead6" d="M428.6 283.8l2 2z"/>
+  <path id="path2439" fill="#fea522" d="M335.2 285.8l2 2z"/>
+  <path id="path2441" fill="#fe9f11" d="M343.4 285.8l2 2z"/>
+  <path id="path2443" fill="#fcb144" d="M359.6 285.8l2 2z"/>
+  <path id="path2445" fill="#faca88" d="M367.7 285.8l2 2z"/>
+  <path id="path2447" fill="#f8dcbb" d="M402.2 285.8l2 2z"/>
+  <path id="path2449" fill="#fcb144" d="M428.6 285.8l2 2z"/>
+  <path id="path2451" fill="#d3d079" d="M319 287.9l2 2z"/>
+  <path id="path2453" fill="#faca88" d="M335.2 287.9l2 2zm24.4 0l2 2z"/>
+  <path id="path2455" fill="#fae3c9" d="M367.7 287.9l2 2-2-2m34.5 0l2 2z"/>
+  <path id="path2457" fill="#f8dcbb" d="M430.6 287.9l2 2-2-2z"/>
+  <path id="path2459" fill="#f2f1d7" d="M448.9 287.9l2 2z"/>
+  <path id="path2461" fill="#58587b" d="M455.7 289.2l.7 1.3z"/>
+  <path id="path2463" fill="#d9d868" d="M319.6 291.2l.8 1.4-.7-1.4z"/>
+  <path id="path2465" fill="#f8dcbb" d="M335.2 289.9l2 2z"/>
+  <path id="path2467" fill="#f9d6aa" d="M400.2 289.9l2 2z"/>
+  <path id="path2469" fill="#fe9f11" d="M402.2 289.9l2 2z"/>
+  <path id="path2471" fill="#fcb144" d="M430.6 289.9l2 2-2-2z"/>
+  <path id="path2473" fill="#f2f1d2" d="M449.6 291.2l.7 1.4z"/>
+  <path id="path2475" fill="#fcf1e4" d="M335.2 291.9l2 2z"/>
+  <path id="path2477" fill="#fef8f1" d="M398.2 291.9l2 2z"/>
+  <path id="path2479" fill="#fe9f11" d="M400.2 291.9l2 2z"/>
+  <path id="path2481" fill="#fdab33" d="M406.3 291.9l-2 4z"/>
+  <path id="path2483" fill="#fcb755" d="M408.3 291.9l2 2z"/>
+  <path id="path2485" fill="#fea522" d="M432.7 291.9l2 2z"/>
+  <path id="path2487" fill="#f9d099" d="M434.7 291.9l2 2z"/>
+  <path id="path2489" fill="#53527c" d="M455 291.9l2 2z"/>
+  <path id="path2491" fill="#808067" d="M315.6 295.3l.7 1.3z"/>
+  <path id="path2493" fill="#fea522" d="M337.3 293.9l2 2-2-2m6 0l2 2-2-2z"/>
+  <path id="path2495" fill="#fe9f11" d="M365.7 293.9l2 2z"/>
+  <path id="path2497" fill="#fae3c9" d="M398.2 293.9l2 2z"/>
+  <path id="path2499" fill="#fef8f1" d="M406.3 293.9l2 2z"/>
+  <path id="path2501" fill="#fcb144" d="M410.4 293.9l2 2z"/>
+  <path id="path2503" fill="#fcb755" d="M436.8 293.9l2 2z"/>
+  <path id="path2505" fill="#fef8f1" d="M438.8 293.9l4 4z"/>
+  <path id="path2507" fill="#e5e59d" d="M449.6 295.3l.7 1.3z"/>
+  <path id="path2509" fill="#32327b" d="M455.7 295.3l.7 1.3z"/>
+  <path id="path2511" fill="#fcb755" d="M338 297.3l.6 1.4z"/>
+  <path id="path2513" fill="#fef8f1" d="M345.4 295.9l2 2z"/>
+  <path id="path2515" fill="#fbbe66" d="M365.7 295.9l2 2z"/>
+  <path id="path2517" fill="#fbead6" d="M398.2 295.9l2 2z"/>
+  <path id="path2519" fill="#fe9f11" d="M402.2 295.9l2 2z"/>
+  <path id="path2521" fill="#fcf1e4" d="M404.3 295.9l2 2z"/>
+  <path id="path2523" fill="#fbead6" d="M410.4 295.9l2 2z"/>
+  <path id="path2525" fill="#fdab33" d="M438.8 295.9l2 2z"/>
+  <path id="path2527" fill="#667" d="M315 297.9l2 2-2-2z"/>
+  <path id="path2529" fill="#f6f6e4" d="M321 297.9l2 2-2-2z"/>
+  <path id="path2531" fill="#f9d6aa" d="M345.4 297.9l2 2-2-2z"/>
+  <path id="path2533" fill="#fdab33" d="M361.6 297.9l2 2-2-2z"/>
+  <path id="path2535" fill="#fe9f11" d="M363.6 297.9l2 2-2-2z"/>
+  <path id="path2537" fill="#fcf1e4" d="M365.7 297.9l2 2-2-2z"/>
+  <path id="path2539" fill="#fea522" d="M400.2 297.9l2 2-2-2z"/>
+  <path id="path2541" fill="#faca88" d="M402.2 297.9l2 2-2-2m10.2 0l2 2z"/>
+  <path id="path2543" fill="#fcb144" d="M440.8 297.9l2 2-2-2z"/>
+  <path id="path2545" fill="#dddc7a" d="M448.9 297.9l2 2-2-2z"/>
+  <path id="path2547" fill="#58587b" d="M315 300l2 2z"/>
+  <path id="path2549" fill="#f2f1d2" d="M321 300l2 2z"/>
+  <path id="path2551" fill="#fcb144" d="M338 301.4l.6 1.3z"/>
+  <path id="path2553" fill="#fea522" d="M345.4 300l2 2z"/>
+  <path id="path2555" fill="#fef8f1" d="M365.7 300l2 2z"/>
+  <path id="path2557" fill="#fea522" d="M367.7 300l2 2z"/>
+  <path id="path2559" fill="#fcb144" d="M371.8 300l2 2z"/>
+  <path id="path2561" fill="#fbead6" d="M373.8 300l2 2z"/>
+  <path id="path2563" fill="#f8dcbb" d="M400.2 300l2 2z"/>
+  <path id="path2565" fill="#fcf1e4" d="M402.2 300l2 2z"/>
+  <path id="path2567" fill="#fef8f1" d="M412.4 300l2 2z"/>
+  <path id="path2569" fill="#fe9f11" d="M414.4 300l2 2z"/>
+  <path id="path2571" fill="#fbead6" d="M442.9 300l2 2z"/>
+  <path id="path2573" fill="#d9d868" d="M448.9 300l2 2z"/>
+  <path id="path2575" fill="#3a3a7c" d="M315 302l2 2z"/>
+  <path id="path2577" fill="#e5e3af" d="M321 302l2 2z"/>
+  <path id="path2579" fill="#faca88" d="M347.4 302l2 2z"/>
+  <path id="path2581" fill="#fbead6" d="M367.7 302l2 2z"/>
+  <path id="path2583" fill="#fe9f11" d="M373.8 302l2 2z"/>
+  <path id="path2585" fill="#fcf1e4" d="M375.9 302l2 2z"/>
+  <path id="path2587" fill="#fbead6" d="M398.2 302l2 2z"/>
+  <path id="path2589" fill="#fae3c9" d="M400.2 302l2 2z"/>
+  <path id="path2591" fill="#fbead6" d="M402.2 302l2 2z"/>
+  <path id="path2593" fill="#fbbe66" d="M414.4 302l2 2-2-2m16.3 0l2 2z"/>
+  <path id="path2595" fill="#fcf1e4" d="M432.7 302l2 2z"/>
+  <path id="path2597" fill="#fef8f1" d="M434.7 302l2 2z"/>
+  <path id="path2599" fill="#f8dcbb" d="M436.8 302l2 2z"/>
+  <path id="path2601" fill="#fcb755" d="M438.8 302l2 2z"/>
+  <path id="path2603" fill="#fae3c9" d="M442.9 302l2 2z"/>
+  <path id="path2605" fill="#808067" d="M453 302l2 2z"/>
+  <path id="path2607" fill="#32327b" d="M315 304l2 2z"/>
+  <path id="path2609" fill="#a4a43d" d="M317.6 305.4l.7 1.4-.6-1.4z"/>
+  <path id="path2611" fill="#e5e59d" d="M321 304l2 2z"/>
+  <path id="path2613" fill="#fbc477" d="M337.3 304l2 2z"/>
+  <path id="path2615" fill="#f9d6aa" d="M349.5 304l2 2z"/>
+  <path id="path2617" fill="#fbbe66" d="M369.8 304l2 2z"/>
+  <path id="path2619" fill="#f9d099" d="M375.9 304l2 2z"/>
+  <path id="path2621" fill="#fae3c9" d="M394 304l2 2z"/>
+  <path id="path2623" fill="#fcb144" d="M396.2 304l2 2z"/>
+  <path id="path2625" fill="#fae3c9" d="M404.3 304l2 2z"/>
+  <path id="path2627" fill="#f8dcbb" d="M414.4 304l2 2z"/>
+  <path id="path2629" fill="#f9d099" d="M430.6 304l2 2-2-2z"/>
+  <path id="path2631" fill="#fbc477" d="M440.8 304l2 2z"/>
+  <path id="path2633" fill="#fbead6" d="M442.9 304l2 2z"/>
+  <path id="path2635" fill="#737370" d="M453 304l2 2z"/>
+  <path id="path2637" fill="#d9d868" d="M321 306l2 2z"/>
+  <path id="path2639" fill="#f9d099" d="M337.3 306l2 2z"/>
+  <path id="path2641" fill="#f9d6aa" d="M351.5 306l2 2-2-2m18.3 0l2 2z"/>
+  <path id="path2643" fill="#fbc477" d="M375.9 306l2 2z"/>
+  <path id="path2645" fill="#fef8f1" d="M386 306l2 2z"/>
+  <path id="path2647" fill="#f8dcbb" d="M388 306l2 2z"/>
+  <path id="path2649" fill="#fbc477" d="M390 306l2 2z"/>
+  <path id="path2651" fill="#fea522" d="M392 306l2 2z"/>
+  <path id="path2653" fill="#fbead6" d="M404.3 306l2 2z"/>
+  <path id="path2655" fill="#f2f1d2" d="M446.9 306l2 2z"/>
+  <path id="path2657" fill="#58587b" d="M453 306l2 2z"/>
+  <path id="path2659" fill="#99994e" d="M317 308l2 2z"/>
+  <path id="path2661" fill="#d0d045" d="M321 308l2 2z"/>
+  <path id="path2663" fill="#fcb144" d="M353.6 308l2 2z"/>
+  <path id="path2665" fill="#fae3c9" d="M355.6 308l2 2z"/>
+  <path id="path2667" fill="#fef8f1" d="M369.8 308l2 2z"/>
+  <path id="path2669" fill="#fcb755" d="M377.9 308l2 2z"/>
+  <path id="path2671" fill="#fbc477" d="M379.9 308l2 2z"/>
+  <path id="path2673" fill="#fcb144" d="M382 308l2 2z"/>
+  <path id="path2675" fill="#fea522" d="M384 308l2 2z"/>
+  <path id="path2677" fill="#fe9f11" d="M400.2 308l2 2z"/>
+  <path id="path2679" fill="#f9d6aa" d="M402.2 308l2 2z"/>
+  <path id="path2681" fill="#fef8f1" d="M430.6 308l2 2-2-2z"/>
+  <path id="path2683" fill="#e0dea1" d="M446.9 308l2 2z"/>
+  <path id="path2685" fill="#3a3a7c" d="M453 308l2 2z"/>
+  <path id="path2687" fill="#737370" d="M317 310.2l2 2z"/>
+  <path id="path2689" fill="#fbfaf2" d="M323 310.2l2 2z"/>
+  <path id="path2691" fill="#fea522" d="M339.3 310.2l2 2z"/>
+  <path id="path2693" fill="#fe9f11" d="M357.6 310.2l2 2z"/>
+  <path id="path2695" fill="#fcb144" d="M359.6 310.2l2 2z"/>
+  <path id="path2697" fill="#fbc477" d="M361.6 310.2l2 2z"/>
+  <path id="path2699" fill="#faca88" d="M363.6 310.2l2 2-2-2z"/>
+  <path id="path2701" fill="#fbc477" d="M365.7 310.2l2 2z"/>
+  <path id="path2703" fill="#fcb144" d="M367.7 310.2l2 2z"/>
+  <path id="path2705" fill="#fdab33" d="M369.8 310.2l2 2z"/>
+  <path id="path2707" fill="#fbc477" d="M398.2 310.2l2 2z"/>
+  <path id="path2709" fill="#fef8f1" d="M400.2 310.2l2 2z"/>
+  <path id="path2711" fill="#fdab33" d="M428.6 310.2l2 2z"/>
+  <path id="path2713" fill="#e1e18c" d="M446.9 310.2l2 2z"/>
+  <path id="path2715" fill="#a4a43d" d="M451.6 311.5l.7 1.4z"/>
+  <path id="path2717" fill="#262678" d="M453 310.2l2 2z"/>
+  <path id="path2719" fill="#58587b" d="M317 312.2l2 2z"/>
+  <path id="path2721" fill="#f2f1d2" d="M323 312.2l2 2z"/>
+  <path id="path2723" fill="#faca88" d="M339.3 312.2l2 2z"/>
+  <path id="path2725" fill="#fe9f11" d="M394 312.2l2 2z"/>
+  <path id="path2727" fill="#fbead6" d="M396.2 312.2l2 2z"/>
+  <path id="path2729" fill="#fbc477" d="M414.4 312.2l2 2z"/>
+  <path id="path2731" fill="#faca88" d="M428.6 312.2l2 2z"/>
+  <path id="path2733" fill="#d4d456" d="M446.9 312.2l2 2z"/>
+  <path id="path2735" fill="#32327b" d="M317 314.2l2 2z"/>
+  <path id="path2737" fill="#e5e59d" d="M323 314.2l2 2z"/>
+  <path id="path2739" fill="#fef8f1" d="M339.3 314.2l2 2z"/>
+  <path id="path2741" fill="#fe9f11" d="M341.3 314.2l2 2z"/>
+  <path id="path2743" fill="#fbead6" d="M394 314.2l2 2z"/>
+  <path id="path2745" fill="#fea522" d="M414.4 314.2l2 2z"/>
+  <path id="path2747" fill="#fcf1e4" d="M428.6 314.2l2 2z"/>
+  <path id="path2749" fill="#808067" d="M451 314.2l2 2z"/>
+  <path id="path2751" fill="#0e0e6e" d="M317 316.2l2 2z"/>
+  <path id="path2753" fill="#a4a43d" d="M319 316.2l2 2z"/>
+  <path id="path2755" fill="#d9d868" d="M323 316.2l2 2z"/>
+  <path id="path2757" fill="#f8dcbb" d="M341.3 316.2l2 2z"/>
+  <path id="path2759" fill="#f9d6aa" d="M412.4 316.2l2 2z"/>
+  <path id="path2761" fill="#faca88" d="M426.6 316.2l2 2z"/>
+  <path id="path2763" fill="#f2f1d2" d="M444.9 316.2l2 2z"/>
+  <path id="path2765" fill="#58587b" d="M451 316.2l2 2z"/>
+  <path id="path2767" fill="#8d8d5b" d="M319 318.3l2 2z"/>
+  <path id="path2769" fill="#f9d6aa" d="M343.4 318.3l2 2z"/>
+  <path id="path2771" fill="#fdab33" d="M384 318.3l2 2z"/>
+  <path id="path2773" fill="#fff" d="M386 318.3l2 2z"/>
+  <path id="path2775" fill="#fcb144" d="M389.4 318.9l1.4.7z"/>
+  <path id="path2777" fill="#fef8f1" d="M410.4 318.3l-2 4z"/>
+  <path id="path2779" fill="#fe9f11" d="M412.4 318.3l2 2z"/>
+  <path id="path2781" fill="#fdab33" d="M424.6 318.3l-2 4z"/>
+  <path id="path2783" fill="#e5e59d" d="M444.9 318.3l2 2z"/>
+  <path id="path2785" fill="#3a3a7c" d="M451 318.3l2 2z"/>
+  <path id="path2787" fill="#667" d="M319 320.3l2 2z"/>
+  <path id="path2789" fill="#f2f1d2" d="M325 320.3l2 2z"/>
+  <path id="path2791" fill="#f9d6aa" d="M345.4 320.3l2 2z"/>
+  <path id="path2793" fill="#fe9f11" d="M384 320.3l2 2z"/>
+  <path id="path2795" fill="#faca88" d="M386 320.3l2 2z"/>
+  <path id="path2797" fill="#fea522" d="M388 320.3l2 2z"/>
+  <path id="path2799" fill="#fcf1e4" d="M390 320.3l2 2z"/>
+  <path id="path2801" fill="#fdab33" d="M410.4 320.3l2 2z"/>
+  <path id="path2803" fill="#fef8f1" d="M424.6 320.3l2 2z"/>
+  <path id="path2805" fill="#d9d868" d="M444.9 320.3l2 2z"/>
+  <path id="path2807" fill="#a4a43d" d="M448.9 320.3l2 2z"/>
+  <path id="path2809" fill="#0e0e6e" d="M451 320.3l2 2z"/>
+  <path id="path2811" fill="#3a3a7c" d="M319 322.3l2 2z"/>
+  <path id="path2813" fill="#e5e59d" d="M325 322.3l2 2z"/>
+  <path id="path2815" fill="#fae3c9" d="M347.4 322.3l4 4z"/>
+  <path id="path2817" fill="#fe9f11" d="M349.5 322.3l2 2z"/>
+  <path id="path2819" fill="#f8dcbb" d="M388 322.3l2 2z"/>
+  <path id="path2821" fill="#fcf1e4" d="M406.3 322.3l2 2z"/>
+  <path id="path2823" fill="#fdab33" d="M408.3 322.3l2 2z"/>
+  <path id="path2825" fill="#fcb144" d="M420.6 322.3l2 2z"/>
+  <path id="path2827" fill="#fef8f1" d="M422.6 322.3l2 2z"/>
+  <path id="path2829" fill="#fbfaf2" d="M442.9 322.3l2 2z"/>
+  <path id="path2831" fill="#8d8d5b" d="M448.9 322.3l2 2z"/>
+  <path id="path2833" fill="#0e0e6e" d="M319 324.4l2 2z"/>
+  <path id="path2835" fill="#a4a43d" d="M321 324.4l2 2z"/>
+  <path id="path2837" fill="#d4d456" d="M325 324.4l2 2z"/>
+  <path id="path2839" fill="#f9d6aa" d="M386 324.4l2 2z"/>
+  <path id="path2841" fill="#f9d099" d="M404.3 324.4l2 2z"/>
+  <path id="path2843" fill="#fe9f11" d="M406.3 324.4l2 2z"/>
+  <path id="path2845" fill="#faca88" d="M418.5 324.4l2 2z"/>
+  <path id="path2847" fill="#eeedc1" d="M442.9 324.4l2 2z"/>
+  <path id="path2849" fill="#58587b" d="M448.9 324.4l2 2z"/>
+  <path id="path2851" fill="#737370" d="M321 326.4l2 2z"/>
+  <path id="path2853" fill="#f6f6e4" d="M327 326.4l2 2z"/>
+  <path id="path2855" fill="#fbbe66" d="M349.5 326.4l2 2z"/>
+  <path id="path2857" fill="#fcb144" d="M382 326.4l2 2z"/>
+  <path id="path2859" fill="#f8dcbb" d="M384.6 327.8l.7 1.3z"/>
+  <path id="path2861" fill="#fbbe66" d="M400.2 326.4l2 2z"/>
+  <path id="path2863" fill="#fe9f11" d="M402.2 326.4l2 2z"/>
+  <path id="path2865" fill="#fbc477" d="M414.4 326.4l2 2z"/>
+  <path id="path2867" fill="#fcf1e4" d="M416.5 326.4l2 2z"/>
+  <path id="path2869" fill="#d3d079" d="M442.9 326.4l2 2z"/>
+  <path id="path2871" fill="#a4a43d" d="M446.9 326.4l2 2z"/>
+  <path id="path2873" fill="#262678" d="M448.9 326.4l2 2z"/>
+  <path id="path2875" fill="#49497d" d="M321 328.4l2 2z"/>
+  <path id="path2877" fill="#e0dea1" d="M327 328.4l2 2z"/>
+  <path id="path2879" fill="#fae3c9" d="M347.4 328.4l2 2z"/>
+  <path id="path2881" fill="#fdab33" d="M375.9 328.4l2 2z"/>
+  <path id="path2883" fill="#fbc477" d="M377.9 328.4l2 2z"/>
+  <path id="path2885" fill="#fbead6" d="M379.9 328.4l2 2z"/>
+  <path id="path2887" fill="#fcb144" d="M386 328.4l2 2z"/>
+  <path id="path2889" fill="#f9d6aa" d="M412.4 328.4l2 2z"/>
+  <path id="path2891" fill="#99994e" d="M446.9 328.4l2 2z"/>
+  <path id="path2893" fill="#0e0e6e" d="M321 330.5l2 2z"/>
+  <path id="path2895" fill="#a4a43d" d="M323 330.5l2 2z"/>
+  <path id="path2897" fill="#d4d456" d="M327 330.5l2 2z"/>
+  <path id="path2899" fill="#f9d099" d="M345.4 330.5l2 2z"/>
+  <path id="path2901" fill="#fe9f11" d="M347.4 330.5l2 2-2-2m10.2 0l2 2z"/>
+  <path id="path2903" fill="#f9d6aa" d="M359.6 330.5l2 2z"/>
+  <path id="path2905" fill="#f9d099" d="M361.6 330.5l2 2z"/>
+  <path id="path2907" fill="#f9d6aa" d="M369.8 330.5l2 2z"/>
+  <path id="path2909" fill="#fae3c9" d="M371.8 330.5l2 2z"/>
+  <path id="path2911" fill="#fef8f1" d="M373.8 330.5l2 2z"/>
+  <path id="path2913" fill="#fbead6" d="M390 330.5l2 2z"/>
+  <path id="path2915" fill="#fae3c9" d="M392 330.5l2 2z"/>
+  <path id="path2917" fill="#faca88" d="M394 330.5l2 2z"/>
+  <path id="path2919" fill="#fbc477" d="M396.2 330.5l2 2z"/>
+  <path id="path2921" fill="#fdab33" d="M398.2 330.5l2 2z"/>
+  <path id="path2923" fill="#fe9f11" d="M408.3 330.5l2 2z"/>
+  <path id="path2925" fill="#f9d6aa" d="M410.4 330.5l2 2z"/>
+  <path id="path2927" fill="#e5e3af" d="M440.8 330.5l2 2z"/>
+  <path id="path2929" fill="#667" d="M446.9 330.5l2 2z"/>
+  <path id="path2931" fill="#737370" d="M323 332.5l2 2z"/>
+  <path id="path2933" fill="#f2f1d7" d="M329.2 332.5l2 2z"/>
+  <path id="path2935" fill="#fea522" d="M343.4 332.5l2 2z"/>
+  <path id="path2937" fill="#fe9f11" d="M353.6 332.5l2 2z"/>
+  <path id="path2939" fill="#fbbe66" d="M355.6 332.5l2 2z"/>
+  <path id="path2941" fill="#fcf1e4" d="M357.6 332.5l2 2z"/>
+  <path id="path2943" fill="#fea522" d="M406.3 332.5l2 2z"/>
+  <path id="path2945" fill="#fbead6" d="M408.3 332.5l2 2z"/>
+  <path id="path2947" fill="#dddc7a" d="M440.8 332.5l2 2z"/>
+  <path id="path2949" fill="#a4a43d" d="M444.9 332.5l2 2z"/>
+  <path id="path2951" fill="#262678" d="M446.9 332.5l2 2z"/>
+  <path id="path2953" fill="#49497d" d="M323 334.5l2 2z"/>
+  <path id="path2955" fill="#a4a43d" d="M325.8 335.9l.7 1.3z"/>
+  <path id="path2957" fill="#d3d079" d="M329.2 334.5l2 2z"/>
+  <path id="path2959" fill="#f9d099" d="M345.4 334.5l2 2z"/>
+  <path id="path2961" fill="#fcb144" d="M347.4 334.5l2 2z"/>
+  <path id="path2963" fill="#faca88" d="M349.5 334.5l2 2z"/>
+  <path id="path2965" fill="#f8dcbb" d="M351.5 334.5l2 2z"/>
+  <path id="path2967" fill="#fef8f1" d="M353.6 334.5l2 2z"/>
+  <path id="path2969" fill="#f8dcbb" d="M398.2 334.5l2 2z"/>
+  <path id="path2971" fill="#fcf1e4" d="M406.3 334.5l2 2z"/>
+  <path id="path2973" fill="#f6f6e4" d="M438.8 334.5l2 2z"/>
+  <path id="path2975" fill="#8d8d5b" d="M444.9 334.5l2 2z"/>
+  <path id="path2977" fill="#fbfaf2" d="M331.2 336.5l2 2z"/>
+  <path id="path2979" fill="#fbbe66" d="M398.2 336.5l2 2z"/>
+  <path id="path2981" fill="#faca88" d="M404.3 336.5l2 2z"/>
+  <path id="path2983" fill="#e1e18c" d="M438.8 336.5l2 2z"/>
+  <path id="path2985" fill="#49497d" d="M444.9 336.5l2 2z"/>
+  <path id="path2987" fill="#58587b" d="M325 338.6l2 2z"/>
+  <path id="path2989" fill="#e5e59d" d="M331.2 338.6l2 2z"/>
+  <path id="path2991" fill="#fe9f11" d="M398.2 338.6l2 2z"/>
+  <path id="path2993" fill="#fdab33" d="M402.2 338.6l2 2z"/>
+  <path id="path2995" fill="#fbfaf2" d="M436.8 338.6l2 2z"/>
+  <path id="path2997" fill="#a4a43d" d="M442.9 338.6l2 2z"/>
+  <path id="path2999" fill="#0e0e6e" d="M444.9 338.6l2 2z"/>
+  <path id="path3001" fill="#1b1b74" d="M325 340.6l2 2z"/>
+  <path id="path3003" fill="#a4a43d" d="M327 340.6l2 2z"/>
+  <path id="path3005" fill="#d0d045" d="M331.2 340.6l2 2z"/>
+  <path id="path3007" fill="#fbead6" d="M396.2 340.6l2 2z"/>
+  <path id="path3009" fill="#fe9f11" d="M400.2 340.6l2 2z"/>
+  <path id="path3011" fill="#fbead6" d="M402.2 340.6l2 2z"/>
+  <path id="path3013" fill="#e5e59d" d="M436.8 340.6l2 2z"/>
+  <path id="path3015" fill="#667" d="M442.9 340.6l2 2z"/>
+  <path id="path3017" fill="#6e6c70" d="M327 342.6l2 2z"/>
+  <path id="path3019" fill="#e5e3af" d="M333.2 342.6l2 2z"/>
+  <path id="path3021" fill="#faca88" d="M396.8 344l.7 1.4z"/>
+  <path id="path3023" fill="#fae3c9" d="M400.2 342.6l2 2z"/>
+  <path id="path3025" fill="#fbfaf2" d="M434.7 342.6l2 2z"/>
+  <path id="path3027" fill="#a4a43d" d="M440.8 342.6l2 2z"/>
+  <path id="path3029" fill="#1b1b74" d="M442.9 342.6l2 2-2-2m-115.8 2l2 2z"/>
+  <path id="path3031" fill="#a4a43d" d="M329.2 344.7l2 2z"/>
+  <path id="path3033" fill="#d0d045" d="M333.2 344.7l2 2z"/>
+  <path id="path3035" fill="#fbfaf2" d="M335.2 344.7l2 2z"/>
+  <path id="path3037" fill="#f9d6aa" d="M398.2 344.7l2 2z"/>
+  <path id="path3039" fill="#e5e59d" d="M434.7 344.7l2 2z"/>
+  <path id="path3041" fill="#6e6c70" d="M440.8 344.7l2 2-2-2m-111.6 2l2 2z"/>
+  <path id="path3043" fill="#8cbf84" d="M335.2 346.7l2 2z"/>
+  <path id="path3045" fill="#0cf" d="M336 346.7c7 14.8 32 49.8 51 49.2 18.7-.7 39.6-35 47.7-49.2z"/>
+  <path id="path3047" fill="#a4a43d" d="M438.8 346.7l2 2z"/>
+  <path id="path3049" fill="#1b1b74" d="M440.8 346.7l2 2-2-2m-111.6 2l2 2z"/>
+  <path id="path3051" fill="#a4a43d" d="M331.2 348.7l2 2z"/>
+  <path id="path3053" fill="#adb333" d="M335.2 348.7l2 2z"/>
+  <path id="path3055" fill="#1ac5b5" d="M337.3 348.7l2 2z"/>
+  <path id="path3057" fill="#68b070" d="M432.7 348.7l2 2z"/>
+  <path id="path3059" fill="#667" d="M438.8 348.7l2 2z"/>
+  <path id="path3061" fill="#58587b" d="M331.2 350.8l2 2z"/>
+  <path id="path3063" fill="#7fb15c" d="M337.3 350.8l2 2z"/>
+  <path id="path3065" fill="#27c2aa" d="M430.6 350.8l2 2-2-2z"/>
+  <path id="path3067" fill="#a4a43d" d="M436.8 350.8l-2 4z"/>
+  <path id="path3069" fill="#0e0e6e" d="M438.8 350.8l2 2-2-2m-107.6 2l2 2z"/>
+  <path id="path3071" fill="#a4a43d" d="M333.2 352.8l4 4z"/>
+  <path id="path3073" fill="#34be9e" d="M339.3 352.8l2 2z"/>
+  <path id="path3075" fill="#96b247" d="M430.6 352.8l2 2-2-2z"/>
+  <path id="path3077" fill="#53527c" d="M436.8 352.8l2 2z"/>
+  <path id="path3079" fill="#3a3a7c" d="M333.2 354.9l2 2z"/>
+  <path id="path3081" fill="#a2b23d" d="M339.3 354.9l2 2z"/>
+  <path id="path3083" fill="#0dc9c1" d="M341.3 354.9l2 2z"/>
+  <path id="path3085" fill="#5bb47c" d="M428.6 354.9l2 2z"/>
+  <path id="path3087" fill="#8d8d5b" d="M434.7 354.9l2 2z"/>
+  <path id="path3089" fill="#737370" d="M335.2 356.9l2 2z"/>
+  <path id="path3091" fill="#74b166" d="M341.3 356.9l2 2z"/>
+  <path id="path3093" fill="#27c2aa" d="M426.6 356.9l2 2z"/>
+  <path id="path3095" fill="#a4a43d" d="M432.7 356.9l-2 4z"/>
+  <path id="path3097" fill="#262678" d="M434.7 356.9l2 2z"/>
+  <path id="path3099" fill="#0e0e6e" d="M335.2 358.9l2 2z"/>
+  <path id="path3101" fill="#a4a43d" d="M337.3 358.9l4 4z"/>
+  <path id="path3103" fill="#42bb92" d="M343.4 358.9l2 2z"/>
+  <path id="path3105" fill="#0dc9c1" d="M424.6 358.9l2 2z"/>
+  <path id="path3107" fill="#96b247" d="M426.6 358.9l2 2z"/>
+  <path id="path3109" fill="#58587b" d="M432.7 358.9l2 2z"/>
+  <path id="path3111" fill="#3a3a7c" d="M337.3 360.9l2 2z"/>
+  <path id="path3113" fill="#adb333" d="M343.4 360.9l2 2z"/>
+  <path id="path3115" fill="#27c2aa" d="M345.4 360.9l2 2z"/>
+  <path id="path3117" fill="#74b166" d="M424.6 360.9l2 2z"/>
+  <path id="path3119" fill="#8d8d5b" d="M430.6 360.9l2 2-2-2z"/>
+  <path id="path3121" fill="#6e6c70" d="M339.3 362.9l2 2z"/>
+  <path id="path3123" fill="#96b247" d="M345.4 362.9l2 2z"/>
+  <path id="path3125" fill="#0dc9c1" d="M347.4 362.9l2 2z"/>
+  <path id="path3127" fill="#42bb92" d="M422.6 362.9l2 2z"/>
+  <path id="path3129" fill="#a4a43d" d="M428.6 362.9l-4 6 4-6z"/>
+  <path id="path3131" fill="#1b1b74" d="M430.6 362.9l2 2-2-2z"/>
+  <path id="path3133" fill="#0e0e6e" d="M339.3 364.9l2 2-2-2z"/>
+  <path id="path3135" fill="#8d8d5b" d="M341.3 364.9l2 2-2-2z"/>
+  <path id="path3137" fill="#7fb15c" d="M347.4 364.9l2 2-2-2z"/>
+  <path id="path3139" fill="#34be9e" d="M420.6 364.9l2 2-2-2z"/>
+  <path id="path3141" fill="#3a3a7c" d="M428.6 364.9l2 2-2-2z"/>
+  <path id="path3143" fill="#1b1b74" d="M341.3 367l2 2z"/>
+  <path id="path3145" fill="#a4a43d" d="M343.4 367l22.3 22.3z"/>
+  <path id="path3147" fill="#74b166" d="M349.5 367l2 2z"/>
+  <path id="path3149" fill="#27c2aa" d="M418.5 367l2 2z"/>
+  <path id="path3151" fill="#adb333" d="M420.6 367l2 2z"/>
+  <path id="path3153" fill="#667" d="M426.6 367l2 2z"/>
+  <path id="path3155" fill="#32327b" d="M343.4 369l2 2z"/>
+  <path id="path3157" fill="#42bb92" d="M351.5 369l2 2z"/>
+  <path id="path3159" fill="#0dc9c1" d="M416.5 369l-8.2 10.2 8.3-10.3z"/>
+  <path id="path3161" fill="#adb333" d="M418.5 369l2 2z"/>
+  <path id="path3163" fill="#737370" d="M424.6 369l2 2z"/>
+  <path id="path3165" fill="#49497d" d="M345.4 371l2 2z"/>
+  <path id="path3167" fill="#42bb92" d="M353.6 371l2 2z"/>
+  <path id="path3169" fill="#96b247" d="M416.5 371l2 2z"/>
+  <path id="path3171" fill="#8d8d5b" d="M422.6 371l-2 4z"/>
+  <path id="path3173" fill="#0e0e6e" d="M424.6 371l2 2z"/>
+  <path id="path3175" fill="#53527c" d="M347.4 373l2 2z"/>
+  <path id="path3177" fill="#42bb92" d="M355.6 373l2 2z"/>
+  <path id="path3179" fill="#96b247" d="M414.4 373l2 2z"/>
+  <path id="path3181" fill="#0e0e6e" d="M422.6 373l2 2z"/>
+  <path id="path3183" fill="#6e6c70" d="M349.5 375l2 2z"/>
+  <path id="path3185" fill="#42bb92" d="M357.6 375l2 2z"/>
+  <path id="path3187" fill="#96b247" d="M412.4 375l2 2z"/>
+  <path id="path3189" fill="#a4a43d" d="M418.5 375l-4 6.2 4-6z"/>
+  <path id="path3191" fill="#262678" d="M420.6 375l2 2z"/>
+  <path id="path3193" fill="#6e6c70" d="M351.5 377.2l2 2z"/>
+  <path id="path3195" fill="#42bb92" d="M359.6 377.2l2 2z"/>
+  <path id="path3197" fill="#96b247" d="M410.4 377.2l2 2z"/>
+  <path id="path3199" fill="#262678" d="M418.5 377.2l2 2z"/>
+  <path id="path3201" fill="#6e6c70" d="M353.6 379.2l2 2z"/>
+  <path id="path3203" fill="#68b070" d="M361.6 379.2l2 2z"/>
+  <path id="path3205" fill="#27c2aa" d="M406.3 379.2l2 2z"/>
+  <path id="path3207" fill="#adb333" d="M408.3 379.2l2 2z"/>
+  <path id="path3209" fill="#262678" d="M416.5 379.2l2 2z"/>
+  <path id="path3211" fill="#667" d="M355.6 381.2l2 2z"/>
+  <path id="path3213" fill="#74b166" d="M363.6 381.2l2 2-2-2z"/>
+  <path id="path3215" fill="#34be9e" d="M404.3 381.2l2 2z"/>
+  <path id="path3217" fill="#adb333" d="M406.3 381.2l2 2z"/>
+  <path id="path3219" fill="#8d8d5b" d="M412.4 381.2l-2 4z"/>
+  <path id="path3221" fill="#262678" d="M414.4 381.2l2 2z"/>
+  <path id="path3223" fill="#49497d" d="M357.6 383.2l2 2z"/>
+  <path id="path3225" fill="#96b247" d="M365.7 383.2l2 2z"/>
+  <path id="path3227" fill="#0dc9c1" d="M367.7 383.2l2 2z"/>
+  <path id="path3229" fill="#42bb92" d="M402.2 383.2l2 2z"/>
+  <path id="path3231" fill="#0e0e6e" d="M412.4 383.2l2 2z"/>
+  <path id="path3233" fill="#49497d" d="M359.6 385.3l2 2z"/>
+  <path id="path3235" fill="#a2b23d" d="M367.7 385.3l2 2z"/>
+  <path id="path3237" fill="#27c2aa" d="M369.8 385.3l2 2z"/>
+  <path id="path3239" fill="#74b166" d="M400.2 385.3l2 2z"/>
+  <path id="path3241" fill="#a4a43d" d="M406.3 385.3l-6 8z"/>
+  <path id="path3243" fill="#808067" d="M408.3 385.3l2 2z"/>
+  <path id="path3245" fill="#0e0e6e" d="M410.4 385.3l2 2z"/>
+  <path id="path3247" fill="#262678" d="M361.6 387.3l2 2z"/>
+  <path id="path3249" fill="#adb333" d="M369.8 387.3l2 2z"/>
+  <path id="path3251" fill="#42bb92" d="M371.8 387.3l2 2z"/>
+  <path id="path3253" fill="#0dc9c1" d="M396.2 387.3l2 2z"/>
+  <path id="path3255" fill="#96b247" d="M398.2 387.3l2 2z"/>
+  <path id="path3257" fill="#6e6c70" d="M406.3 387.3l2 2z"/>
+  <path id="path3259" fill="#1b1b74" d="M363.6 389.3l2 2-2-2z"/>
+  <path id="path3261" fill="#8d8d5b" d="M365.7 389.3l2 2z"/>
+  <path id="path3263" fill="#74b166" d="M373.8 389.3l2 2z"/>
+  <path id="path3265" fill="#0dc9c1" d="M375.9 389.3l2 2z"/>
+  <path id="path3267" fill="#34be9e" d="M394 389.3l2 2z"/>
+  <path id="path3269" fill="#adb333" d="M396.2 389.3l2 2z"/>
+  <path id="path3271" fill="#49497d" d="M404.3 389.3l2 2z"/>
+  <path id="path3273" fill="#0e0e6e" d="M365.7 391.4l2 2z"/>
+  <path id="path3275" fill="#6e6c70" d="M367.7 391.4l2 2z"/>
+  <path id="path3277" fill="#a4a43d" d="M369.8 391.4l4 4z"/>
+  <path id="path3279" fill="#96b247" d="M375.9 391.4l2 2z"/>
+  <path id="path3281" fill="#27c2aa" d="M377.9 391.4l2 2z"/>
+  <path id="path3283" fill="#68b070" d="M392 391.4l2 2z"/>
+  <path id="path3285" fill="#32327b" d="M402.2 391.4l2 2z"/>
+  <path id="path3287" fill="#49497d" d="M369.8 393.4l2 2z"/>
+  <path id="path3289" fill="#5bb47c" d="M379.9 393.4l2 2z"/>
+  <path id="path3291" fill="#27c2aa" d="M388 393.4l2 2z"/>
+  <path id="path3293" fill="#96b247" d="M390 393.4l2 2z"/>
+  <path id="path3295" fill="#a4a43d" d="M396.2 393.4l-2 4z"/>
+  <path id="path3297" fill="#808067" d="M398.2 393.4l2 2z"/>
+  <path id="path3299" fill="#0e0e6e" d="M400.2 393.4l2 2z"/>
+  <path id="path3301" fill="#262678" d="M371.8 395.4l2 2z"/>
+  <path id="path3303" fill="#8d8d5b" d="M373.8 395.4l2 2z"/>
+  <path id="path3305" fill="#8bb252" d="M382 395.4l2 2z"/>
+  <path id="path3307" fill="#1ac5b5" d="M384 395.4l2 2z"/>
+  <path id="path3309" fill="#5bb47c" d="M386 395.4l2 2z"/>
+  <path id="path3311" fill="#58587b" d="M396.2 395.4l2 2z"/>
+  <path id="path3313" fill="#0e0e6e" d="M373.8 397.5l2 2z"/>
+  <path id="path3315" fill="#667" d="M375.9 397.5l2 2z"/>
+  <path id="path3317" fill="#a4a43d" d="M377.9 397.5l2 2z"/>
+  <path id="path3319" fill="#99994e" d="M392 397.5l2 2z"/>
+  <path id="path3321" fill="#32327b" d="M394 397.5l2 2-2-2m-16.1 2l2 2z"/>
+  <path id="path3323" fill="#99994e" d="M379.9 399.5l2 2z"/>
+  <path id="path3325" fill="#a4a43d" d="M388 399.5l2 2z"/>
+  <path id="path3327" fill="#667" d="M390 399.5l2 2z"/>
+  <path id="path3329" fill="#0e0e6e" d="M392 399.5l2 2-2-2m-12.1 2l2 2z"/>
+  <path id="path3331" fill="#667" d="M382 401.5l2 2z"/>
+  <path id="path3333" fill="#a4a43d" d="M384 401.5l2 2z"/>
+  <path id="path3335" fill="#99994e" d="M386 401.5l2 2z"/>
+  <path id="path3337" fill="#32327b" d="M388 401.5l2 2z"/>
+  <path id="path3339" fill="#262678" d="M384 403.5l2 2z"/>
+  <path id="path3341" fill="#0e0e6e" d="M386 403.5l2 2z"/>
+  <path id="path3343" fill="#f90" d="M388 267.5c3.2 7.4 13.2 15.5 16 19.5-3.5 4-4.2 3.6-3.8 11 6-6.4 6.2-7 10.2-6.1 8.6 8.6 1.5 27-5.6 31-7.1 4.3-5.8-.1-16.5 5.2 4.9 4.2 10.6-.6 15.2.7 2.5 3-1.2 8.4.7 13.6 4-.4 3.6-8.7 4.6-11.7 3-11 21-18.6 21.9-28.7 3.8-1.7 7.5-.5 12 2-2.2-9.4-9.7-9.3-11.8-12.2-4.8-7.4-9.1-15.8-19.4-18-8-1.7-7.3.5-12.3-3-3.2-2.4-12.7-7-11.2-3.3z"/>
+  <path id="path3345" fill="#fff" fill-rule="evenodd" d="M410.6 275.9a1.6 1.6 0 11-3.3 0 1.6 1.6 0 013.3 0z"/>
+  <path id="path3347" fill="#f90" d="M362.9 298.8c5-6.2 7.6-19 9.8-23.2 5.2 1.2 5 2 11.5-1.8-8.5-2.4-9.2-2.2-10.2-6.1 3.6-11.7 23.2-14 30-9.6 7.2 4.3 2.7 5.2 12.4 12 1.4-6.2-5.5-9-6.5-13.6 1.5-3.7 8-3 11.6-7-2.2-3.5-9.3.8-12.4 1.4-11 2.5-26.3-9.8-35.6-6-3.3-2.5-4-6.4-4-11.7-7.1 6.5-3.5 13-5.2 16.3-4.2 7.7-9.7 15.5-6.8 25.6 2.2 7.8 3.8 6.2 3.2 12.3-.7 3.9-.4 14.5 2.2 11.4z"/>
+  <path id="path3349" fill="#fff" fill-rule="evenodd" d="M359.8 274.9c.8-.4 1.8-.1 2.2.7a1.6 1.6 0 11-2.2-.7z"/>
+  <path id="path3351" fill="#f90" d="M404 303c-8-1-20.1 3.4-25 3.8-1.5-5.1-.8-5.5-7.4-9 2.3 8.6 2.8 9 0 12-11.8 2.9-24-12.7-23.8-20.8 0-8.3 3.2-5 4-17-6 2-4.8 9.5-8.3 12.8-4 .6-6.6-5.3-12-6.3-1.8 3.7 5.5 7.5 7.6 9.9 7.9 8.2 5.2 27.5 13.3 33.5-.4 4.2-3.4 6.8-8 9.4 9.3 2.9 13-3.7 16.7-4 8.8-.2 18.3.4 25.5-7.3 5.4-6 3.3-6.5 8.8-9 3.7-1.4 12.6-7.2 8.6-8z"/>
+  <path id="path3353" fill="#fff" fill-rule="evenodd" d="M385.2 318.2a1.6 1.6 0 111.7-2.8 1.6 1.6 0 01-1.7 2.8z"/>
+  <path id="path6674" fill="#012169" stroke-width=".5" d="M0 0h256v256H0z"/>
+  <path id="path6676" fill="#fff" stroke-width=".5" d="M256 0v32l-95 96 95 93.5V256h-33.5L127 162l-93 94H0v-34l93-93.5L0 37V0h31l96 94 93-94z"/>
+  <path id="path6678" fill="#c8102e" stroke-width=".5" d="M92 162l5.5 17L21 256H0v-1.5zm62-6l27 4 75 73.5V256zM256 0l-96 98-2-22 75-76zM0 .5L96.5 95 67 91 0 24.5z"/>
+  <path id="path6680" fill="#fff" stroke-width=".5" d="M88 0v256h80V0zM0 88v80h256V88z"/>
+  <path id="path6682" fill="#c8102e" stroke-width=".5" d="M0 104v48h256v-48zM104 0v256h48V0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/al.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/al.svg
new file mode 100644
index 0000000..75995ec
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/al.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-al" viewBox="0 0 512 512">
+  <path fill="#e41e20" d="M0 0h512v512H0z"/>
+  <path id="a" d="M204.9 99.5c-5 0-13.2 1.6-13 5.4-14-2.3-15.4 3.4-14.6 8.5 1.4-2 3-3.1 4.2-3.3 1.9-.3 3.8.3 5.8 1.5a23 23 0 015 4.4c-4.8 1.1-8.6.4-12.4-.3a17.6 17.6 0 01-6.1-2.5c-1.6-1.1-2.1-2.1-4.6-4.7-2.9-3-6-2.1-5 2.5 2.2 4.3 6 6.3 10.7 7 2.2.4 5.6 1.2 9.4 1.2 3.8 0 8.1-.5 10.5 0-1.4.8-3 2.4-6.2 3-3.2.6-8-2-11-2.6.4 2.5 3.5 4.8 9.7 6 10.2 2.2 18.7 4 24.3 7 5.6 3 9.1 6.8 11.6 9.8 5 6 5.3 10.5 5.6 11.5 1 9.5-2.2 14.8-8.4 16.4-3 .8-8.5-.7-10.5-3-2-2.4-4-6.4-3.4-12.7.5-2.5 3.4-9 1-10.3a291.6 291.6 0 00-34.4-16c-2.7-1.1-5 2.5-5.8 4A53.5 53.5 0 01129 107c-4.6-8.1-12.1 0-10.9 7.7 2.1 8.6 8.6 14.8 16.5 19.2 8 4.5 18.1 8.8 28.3 8.6 5.5 1 5.5 8.2-1.1 9.5-13 0-23.2-.2-32.9-9.6-7.4-6.7-11.5 1.3-9.4 5.8 3.6 14 23.6 18 43.8 13.4 7.8-1.3 3.1 7 .9 7.2-8.4 6-23.5 12-36.8-.1-6.1-4.7-10.2-.7-8 6 6 17.5 28.5 13.8 44 5.2 4-2.2 7.6 3 2.7 6.9-19.2 13.4-28.9 13.6-37.6 8.4-10.8-4.3-11.8 7.8-5.3 11.8 7.2 4.4 25.4 1 38.9-7.4 5.7-4.2 6 2.4 2.3 5-15.9 13.8-22.2 17.5-38.8 15.2-8.2-.6-8 9.5-1.6 13.5 8.8 5.4 26.1-3.6 39.5-14.7 5.6-3 6.6 2 3.8 7.8a57.4 57.4 0 01-23.3 19.2 29.1 29.1 0 01-19.5.7c-6.2-2.2-7 4.2-3.6 10 2 3.5 10.6 4.7 19.7 1.4 9.2-3.2 19-10.8 25.7-19.8 6-5.1 5.2 1.8 2.5 6.7-13.5 21.3-25.9 29.2-42.1 27.9-7.3-1.2-8.9 4.4-4.3 9.6 8 6.7 18.2 6.4 27-.2a751 751 0 0030.8-32.6c5.5-4.4 7.3 0 5.7 9-1.5 5.1-5.2 10.5-15.3 14.5-7 4-1.8 9.4 3.4 9.5 2.9 0 8.7-3.3 13-8.3 5.9-6.5 6.2-11 9.5-21.1 3-5 8.4-2.7 8.4 2.5-2.6 10.2-4.8 12-10 16.2-5.1 4.7 3.4 6.3 6.3 4.4 8.3-5.6 11.3-12.8 14.1-19.4 2-4.8 7.8-2.5 5.1 5.3-6.4 18.5-17 25.8-35.5 29.6-1.9.3-3 1.4-2.4 3.6l7.5 7.5c-11.5 3.3-20.8 5.2-32.2 8.5L142 300.6c-1.5-3.4-2.2-8.7-10.4-5-5.7-2.6-8.2-1.6-11.4 1 4.5.1 6.5 1.3 8.3 3.4 2.3 6 7.6 6.6 13 5 3.5 2.9 5.4 5.2 9 8.2l-17.8-.6c-6.3-6.7-11.3-6.3-15.8-1-3.5.5-5 .5-7.3 4.7 3.7-1.5 6-2 7.7-.3 6.6 3.9 11 3 14.3 0l18.7 1.1c-2.3 2-5.6 3.1-8 5.2-9.7-2.8-14.7 1-16.4 8.8a18.2 18.2 0 00-1.4 10c1-3.2 2.5-5.9 5.3-7.6 8.6 2.2 11.8-1.3 12.3-6.5 4.2-3.4 10.5-4.1 14.6-7.6 4.9 1.6 7.2 2.6 12.1 4.1 1.7 5.3 5.7 7.4 12 6 7.7.3 6.3 3.4 7 5.9 2-3.6 2-7-2.8-10.3-1.7-4.6-5.5-6.7-10.4-4-4.7-1.3-5.9-3.2-10.5-4.6 11.7-3.7 20-4.5 31.8-8.3 3 2.8 5.2 4.8 8.2 7.2 1.6 1 3 1.2 4 0 7.3-10.6 10.6-20 17.4-27 2.6-2.9 6-6.8 9.6-7.8 1.8-.4 4-.2 5.5 1.4 1.4 1.6 2.6 4.4 2 8.7-.6 6.2-2 8.2-3.8 11.8-1.7 3.7-3.9 6-6 8.8-4.4 5.7-10.1 9-13.5 11.2-6.8 4.4-9.7 2.5-15 2.2-6.7.8-8.5 4.1-3 8.7a21 21 0 0013.7 2.3c3.3-.6 7-4.8 9.8-7 3-3.6 8.1.6 4.7 4.7-6.3 7.5-12.6 12.4-20.3 12.3-8.2 1-6.7 5.7-1.3 7.9 9.8 4 18.6-3.5 23-8.5 3.5-3.7 6-3.9 5.3 2-3.4 10.5-8.1 14.6-15.7 15.1-6.2-.5-6.3 4.2-1.7 7.5 10.3 7 17.7-5 21.2-12.4 2.5-6.6 6.3-3.5 6.7 2 0 7.3-3.2 13.2-12 20.7 6.7 10.7 14.5 21.7 21.3 32.5l20.5-228.2-20.5-36c-2.1-2-9.3-10.5-11.2-11.7-.7-.7-1.1-1.2-.1-1.6 1-.4 3.2-.8 4.8-1-4.4-4.4-8-5.8-16.3-8.2 2-.8 4-.3 9.9-.6a32.3 32.3 0 00-14.4-11c4.5-3 5.3-3.3 9.8-7-7.7-.6-14.3-2-20.8-4a41 41 0 00-12.8-3.7zm.7 9c4 0 6.6 1.4 6.6 3 0 1.7-2.5 3.1-6.6 3.1-4 0-6.6-1.5-6.6-3.2 0-1.7 2.6-3 6.6-3z"/>
+  <use width="100%" height="100%" transform="matrix(-1 0 0 1 512 0)" xlink:href="#a"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/am.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/am.svg
new file mode 100644
index 0000000..1198be0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/am.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-am" viewBox="0 0 512 512">
+  <path fill="red" d="M0 0h512v170.7H0z"/>
+  <path fill="#00f" d="M0 170.7h512v170.6H0z"/>
+  <path fill="orange" d="M0 341.3h512V512H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ao.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ao.svg
new file mode 100644
index 0000000..a5a25bf
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ao.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ao" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="red" d="M0 0h512v259.8H0z"/>
+    <path d="M0 252.2h512V512H0z"/>
+  </g>
+  <path fill="#ffec00" fill-rule="evenodd" d="M228.7 148.2c165.2 43.3 59 255.6-71.3 167.2l-8.8 13.6c76.7 54.6 152.6 10.6 174-46.4 22.2-58.8-7.6-141.5-92.6-150l-1.3 15.6z"/>
+  <path fill="#ffec00" fill-rule="evenodd" d="M170 330.8l21.7 10.1-10.2 21.8-21.7-10.2zm149-99.5h24v24h-24zm-11.7-38.9l22.3-8.6 8.7 22.3-22.3 8.7zm-26-29.1l17.1-16.9 16.9 17-17 16.9zm-26.2-39.8l22.4 8.4-8.5 22.4-22.4-8.4zM316 270l22.3 8.9-9 22.2-22.2-8.9zm-69.9 70l22-9.3 9.5 22-22 9.4zm-39.5 2.8h24v24h-24zm41.3-116l-20.3-15-20.3 14.6 8-23-20.3-15h24.5l8.5-22.6 7.8 22.7 24.7-.3-19.6 15.3 7 23.4z"/>
+  <path fill="#fe0" fill-rule="evenodd" d="M336 346.4c-1.2.4-6.2 12.4-9.7 18.2l3.7 1c13.6 4.8 20.4 9.2 26.2 17.5a7.9 7.9 0 0010.2.7s2.8-1 6.4-5c3-4.5 2.2-8-1.4-11.1-11-8-22.9-14-35.4-21.3z"/>
+  <path fill-rule="evenodd" d="M365.3 372.8a4.3 4.3 0 11-8.7 0 4.3 4.3 0 018.6 0zm-21.4-13.6a4.3 4.3 0 11-8.7 0 4.3 4.3 0 018.7 0zm10.9 7a4.3 4.3 0 11-8.7 0 4.3 4.3 0 018.7 0z"/>
+  <path fill="#fe0" fill-rule="evenodd" d="M324.5 363.7c-42.6-24.3-87.3-50.5-130-74.8-18.7-11.7-19.6-33.4-7-49.9 1.2-2.3 2.8-1.8 3.4-.5 1.5 8 6 16.3 11.4 21.5A5288 5288 0 01334 345.6c-3.4 5.8-6 12.3-9.5 18z"/>
+  <path fill="#ffec00" fill-rule="evenodd" d="M297.2 305.5l17.8 16-16 17.8-17.8-16z"/>
+  <path fill="none" stroke="#000" stroke-width="3" d="M331.5 348.8l-125-75.5m109.6 58.1L274 304.1m18.2 42.7L249.3 322"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/aq.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/aq.svg
new file mode 100644
index 0000000..80e682a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/aq.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-aq" viewBox="0 0 512 512">
+  <path fill="#072B5F" d="M0 0h512v512H0z"/>
+  <path fill="#FFF" d="M277.8 0c37.7 3.2 73 14.4 104.3 32l18.5-32h6.6L387 35c37 22 68.2 53 90.2 90l34.8-20v6.6L480 130c17.5 31 28.7 66 32 103.2V279a255.3 255.3 0 01-32 103l32 18.4v6.6l-34.8-20c-22 37-53.1 68-90.2 90l20.1 34.9h-6.6l-18.4-32c-31 17.5-66 28.7-103.2 32h-45.7A255.3 255.3 0 01130 480l-18.4 32H105l20-34.8c-37-22-68-53.1-90-90.2L0 407.2v-6.6L32 382A255.4 255.4 0 010 277.8v-43.5c3.2-37.7 14.4-73 32-104.3L0 111.5V105l35 20.2C57 88 88 56.9 125 34.9L105 0h6.5L130 32A255.4 255.4 0 01234.3 0h43.5zm-109 413l-35.9 62a250 250 0 00120.3 32.3v-71.7h-.1c-30.6-.5-59.3-8.6-84.4-22.6zm178.8 7.3l-6.5 3.9-7-2.1-12.3 2-1.1-.5a179 179 0 01-61.8 12v71.6h1.3a250 250 0 00119-32.1l-31.6-54.8zm89.2-56.6l-10.5.9 2.8 6.3-5.7 5.7-9.2 1.7-2.8 5 6.8 3.4-13 12 3.9 6.4-10.2-2.3-11.4 6.8-15.3 7.3-3.4 5.2-2.3-2 2.3-5-10.2 4-2.3-4-3.8 2.3 31.7 54.8a252.5 252.5 0 0088-88l-35.4-20.5zM102 348.3l-62.1 35.8a252.5 252.5 0 0088 88.1l35.9-62a180.5 180.5 0 01-61.8-61.9zm128 6.9l-1.7 2.9-8 .5h-2l-3.5 5.8-9.6-7-5.3 1.8.7 4.6-2.6-1.5-26.4 45.7a173 173 0 0081.6 21.9v-69.4l-.4-.1-22.7-5.2zm55.8 5.2l-4.2 1.9 2 5.5h-14.4l-10.3-4.5V430c19.1-.3 37.4-3.7 54.6-9.7l-3.4-2-13.6 3.5-12-7.7v3.1l-2.9-3.8 3.5-3.5-.6-10.3h4l2.3-6.7 2.9-1.3-2.3-3.4 3.4-1.2-.5-5.1-3.5-1.6 4.6-.5-2.9-12.5-6.7-6.8zm-152-30.5L107 345.5c14.7 24.4 35.3 45 59.7 59.7l26.3-45.6-4.9-2.7-.5 4.6-12.5-5.7-.5.5-6.3 2.3-1.2-4.5-14.7-7.3-15.8-5.2-2.6-11.7zm326.5-71l1.1 3.6-1.7 8 3.4 4.6 9 1.8-9 12.4 1.8 2 2.2 2.6-4 6 3.9 2.4-20 16.4 4.7 11.5-1.2 6.7-6.8 2.2-1.8 5.8-7.6 3.4-2.1 6.1 42.9 24.8a250 250 0 0032.2-120.3h-47zM4.8 259v1.3a250 250 0 0032.2 119l62-35.8A180 180 0 0176.5 259H4.8zm77.4 0a173 173 0 0021.8 81.6l28.7-16.5-5.4-9.5 2.8-13.8-5.1-1.7-1.7-5.7 8.6-1H128l.4-8.6-12.4 3.9-.6-3.3-1.7 6.3-6.7 2.7-4.7-4.4-1.6-4.6-1.9-9 4-2.8 1.7 2 1.2-2.6-1.8-13H82.2zm44.3 41l-1.7 4-5.5 1 3.4-4.5 3.8-.4zm-27.9-90.7l-4 5.6-1.1-3.8-5.2 1.5-.7.4a174 174 0 00-5.4 40.3h20.9l-.3-1.7 4.6 1 2.5-21.3.6-.8 4.6-2.6-5.8.5-2-5.1 10-11.5-9.1-1.5-6.9 6.7-2.7-7.7zM475.1 133L428 160l11.2 28.2-6.3 5.8-.4 6.6-4.1 5 .7 2.5 4 2.7-2.3 1.9 5 5 7.8 1.3 2.4 3.2 2.1 4.6 5.8 2.3 6.8-4.6 4.6.6-5.7 8 5.7 14.7-6.4 5.4h48.2v-1.3a250 250 0 00-32.1-119zm-438 0A250 250 0 004.7 253.2h71.7v-.1c.3-18.4 3.4-36.2 8.8-52.9l-1.6.4-.4-5.7H87l1.8-4.7-5.2-9-3.2 1.1-2.3-3.8-1.2 3.4-3.4-2.5 3.4-2-5.1-2 1.1-2.7-4-2.2-1.1-9-4-1.4 2.4-1.5-4.5-11.4L37 133zm98 56.6l5 6 2.8-1.4-7.9-4.6zM93.2 195h.8l-.2-1.4-.6 1.4zm73.4-88a174.7 174.7 0 00-59.7 59.7l43.5 25.2 32-7.4 1.4-6.9 2.7 1.4-.6-2.3 2-1.2 7.8-2.8v-7.9l2.6-3-31.7-54.8zm-91 79.4l.1.2h-.2v-.2zm-5.6-7.6l6.3 3.8-.8 3.8-5.5-7.6zM128 40a252.5 252.5 0 00-88.1 88l22.5 13 1.5-10.2h3.4l-.5 4.2v.2l-.3.1.1.7-.3 2.2 6 8.5 22.6 13 .5-.7 1.5 1.9 5 2.9a180.5 180.5 0 0161.9-61.8l-35.9-62.1zM61.7 155.2v.7l-1.6 4.4-1.9-5.1h3.5zM384.2 39.9L349 100.6l2.5-.8.7 4.6 3.6 2.4 2.7-4.7h3.3l2 10.3 7.6 6.1 2.4-1.2 6.3-2.2 17.6 6 3.2-.9 1.4 6.1 4.6.8-1.2-3h3.8l1.2 6.2 4.6-5 10.9 6.8 2.8 12.4-4.6 1.3 1.1 9 46.6-26.9a252.5 252.5 0 00-88-88zm-324 110.3l1.7 4-3.4-2.3 1.7-1.7zm191.6-68h1a173 173 0 00-81.2 21.8l28.8 50 1.4-5.3-1.7-5.2 8-19v-12.3h3.8l4.8-6.9 5.7-1.7.6-6.3 7.6-9.6 3.7 2 15.8-5.8 1.7-1.7zM70.5 133.8v4.4h-.2v.4l-3.4-.4-.3-2.2.1-.8v-.2l3.8-1.1zm-1.3-10.5l-2.3 5.1-1-2.3v-.3l3.3-2.5zm250.6-29l7.5 6.4 8.1.6c-5-2.6-10.2-5-15.6-7zM256 4.8A250 250 0 00133 37l35.8 62a180 180 0 0184.5-22.5V4.8h2.8zm3 0v71.7c15.4.2 30.2 2.4 44.4 6.3l1.4-.8v1.2c13.6 3.8 26.5 9.2 38.6 15.9l35.8-62A250 250 0 00258.9 4.7zm25 79.6l12 2.8.3-.3c-4-1-8.1-1.8-12.3-2.5zm-23.8-2.2l16.6 4 2.4-2.5a175 175 0 00-19-1.5z"/>
+  <path fill="#072B5F" d="M257.6 73l1.7 9 1 .2H259v76.5a97 97 0 0143.4 11.6l38.2-66.3-5-2.7 2.1.2 6.3 1 5.2-1.9-.8 1.4 4 2.4v.5l3.5 2.1.1-.2 8 5.6.5 2.7 2.6.5-.5 4.6-.4.6h1l4.4-2.3a178.5 178.5 0 0138.6 45.3l15.5-9v.6l1.8 2.8.7 1.8-15 8.7c6.4 11.6 11.6 24 15.4 37l-1 1.2 1.7 1.2c4 14.4 6.2 29.5 6.4 45H459l-.4.5 1.7 5.3h-24.7v.1c-.5 30.6-8.6 59.3-22.6 84.4l19.2 11-.4 1.2-1.7 3.8 8 4.2-1.3.1-26.7-15.4a180.5 180.5 0 01-61.8 61.8l4.2 7.3-5 3-4.1-7.4c-7.3 4-14.9 7.6-22.7 10.6l-2.4-1.2-1.1-.4-2.1-1.3h-.2l2 1.1-2.2-.9-1.2-.7a173 173 0 0027-12.2l-38.2-66.2a97 97 0 01-43.4 11.6v10l-1.5-.8-4.2-2v-7.2a97 97 0 01-43.4-11.6L198 362.3l-5-2.7 11.9-20.6a98 98 0 01-31.8-31.8L134 330l-.3-1.3v-3l-1-1.6 37.7-21.7a97 97 0 01-11.6-43.4H104l-.8-5.7h55.6a97 97 0 0111.6-43.4L143 194.2l2.1-1.1 5.4-1.2 22.7 13a98 98 0 0131.8-31.7l-6.6-11.4 2.1-7.8 9.4 16.4a97 97 0 0143.4-11.6V82.2h-1.4l.2-.2 3.3-3.4L254 73h3.5zM339 307.2a98 98 0 01-31.8 31.8l38.3 66.2c24.4-14.7 45-35.3 59.7-59.7L339 307.2zm-80-40.5v81a91.2 91.2 0 0040.4-10.8l-40.5-70.2zm-5.8 0L212.7 337a91.2 91.2 0 0040.5 10.8v-81zm176.7-7.8h-76.5a97 97 0 01-11.6 43.4l66.2 38.2a173 173 0 0021.9-81.6zm-166 5l40.5 70.1a92.2 92.2 0 0029.6-29.6l-70.1-40.5zm-15.7 0l-70.1 40.5a92.2 92.2 0 0029.6 29.6l40.5-70.1zm18.5-5l70.2 40.5a91.2 91.2 0 0010.8-40.5h-81zm-21.4 0h-81a91.2 91.2 0 0011 40.5l70-40.5zm91.6-46.2l-70.2 40.5h81a91.2 91.2 0 00-10.8-40.5zm-161.7 0a91.2 91.2 0 00-10.8 40.5h81l-70.2-40.5zM408 171.6l-66.2 38.2a97 97 0 0111.6 43.4H430a173 173 0 00-21.9-81.6zm-200.3 6.5a92.2 92.2 0 00-29.6 29.6l70.1 40.5-40.5-70.1zm96.7 0l-40.5 70.1 70.1-40.5a92.2 92.2 0 00-29.6-29.6zm-51.2-13.7a91.2 91.2 0 00-40.5 10.8l40.5 70.1v-81zm5.7 0v81l40.5-70.2a91.2 91.2 0 00-40.5-10.8zM87.6 212.9l-2.5 1.3 2.6-10.3-2.3-1.2 1.4-2.8-1.5.3 1.8-5.3h6.1c-2.1 5.9-4 11.8-5.6 18zm257.9-106l-38.3 66.2A98 98 0 01339 205l66.2-38.3a174.7 174.7 0 00-59.7-59.7zM62.4 141l10 5.8 2.3 3.3 6.2 8 12.6 3.5v.4l1.4-2.2 2 1.2 5.2 6.1 3.4 3.8 1.7 2 19.1 9.1 3.5 1.7 1.1 1 4.1 4.9-31-17.9c-3.9 7-7.3 14.4-10.2 22l-.3-1.6H90l-1-1.8c2.9-7.4 6.2-14.6 10-21.5l-37.2-21.5-.2-.6.5-3.8.3-1.9zm242.4-57.7l.3 4 7 .7 5.7 4.4h-.6v.6h1.1l.6.6 1 .8a169 169 0 00-23.5-7.4l.3-.3 6.7-3.8 1.4.4zm-25 .1l1 .4 3.3.7-3.4-.5-1.2-.4.7.4-.9-.2.4-.4zm-26.5-1h-.1zm2.7-.1h-2.7 2.7zm61 339.5l.3.2 1.1.6-1.4-.8z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ar.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ar.svg
new file mode 100644
index 0000000..1730eca
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ar.svg
@@ -0,0 +1,31 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-ar" viewBox="0 0 512 512">
+  <path fill="#74acdf" d="M0 0h512v512H0z"/>
+  <path fill="#fff" d="M0 170.7h512v170.6H0z"/>
+  <g id="c" transform="translate(-153.6) scale(1.024)">
+    <path id="a" fill="#f6b40e" stroke="#85340a" stroke-width="1.1" d="M396.8 251.3l28.5 62s.5 1.2 1.3.9c.8-.4.3-1.5.3-1.5l-23.7-64m-.7 24.1c-.4 9.4 5.4 14.6 4.7 23-.8 8.5 3.8 13.2 5 16.5 1 3.3-1.3 5.2-.3 5.7s3-2.1 2.4-6.8c-.7-4.6-4.2-6-3.4-16.3.8-10.3-4.2-12.7-3-22"/>
+    <use width="100%" height="100%" transform="rotate(22.5 400 250)" xlink:href="#a"/>
+    <use width="100%" height="100%" transform="rotate(45 400 250)" xlink:href="#a"/>
+    <use width="100%" height="100%" transform="rotate(67.5 400 250)" xlink:href="#a"/>
+    <path id="b" fill="#85340a" d="M404.3 274.4c.5 9 5.6 13 4.6 21.3 2.2-6.5-3.1-11.6-2.8-21.2m-7.7-23.8l19.5 42.6-16.3-43.9"/>
+    <use width="100%" height="100%" transform="rotate(22.5 400 250)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(45 400 250)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(67.5 400 250)" xlink:href="#b"/>
+  </g>
+  <use width="100%" height="100%" transform="rotate(90 256 256)" xlink:href="#c"/>
+  <use width="100%" height="100%" transform="rotate(180 256 256)" xlink:href="#c"/>
+  <use width="100%" height="100%" transform="rotate(-90 256 256)" xlink:href="#c"/>
+  <circle cx="256" cy="256" r="28.4" fill="#f6b40e" stroke="#85340a" stroke-width="1.5"/>
+  <path id="h" fill="#843511" d="M265.7 250c-2 0-3.8.8-4.9 2.5 2.2 2 7 2.2 10.3-.2a7.5 7.5 0 00-5.4-2.4zm0 .4c1.9 0 3.6.8 3.9 1.7-2.2 2.4-5.7 2.2-7.9.4a4.6 4.6 0 014-2.1z"/>
+  <use width="100%" height="100%" transform="matrix(-1 0 0 1 512.3 0)" xlink:href="#d"/>
+  <use width="100%" height="100%" transform="matrix(-1 0 0 1 512.3 0)" xlink:href="#e"/>
+  <use width="100%" height="100%" transform="translate(19.3)" xlink:href="#f"/>
+  <use width="100%" height="100%" transform="matrix(-1 0 0 1 512.3 0)" xlink:href="#g"/>
+  <path fill="#85340a" d="M251.7 260a2 2 0 102 3c.7.6 1.7.6 2.3.6h.3a4.2 4.2 0 002.3-.6 2 2 0 102-3c.5.1.9.6.9 1.2a1.3 1.3 0 01-1.3 1.3 1.3 1.3 0 01-1.3-1.3 3.3 3.3 0 01-2.8 1.8 3.3 3.3 0 01-2.7-1.8 1.3 1.3 0 01-1.3 1.3 1.3 1.3 0 01-1.3-1.3c0-.6.3-1 .8-1.3zm2 5.8c-2.1 0-3 2-5 3.3 1.2-.5 2-1.3 3.6-2.2 1.5-.9 2.8.2 3.7.2.9 0 2.2-1.1 3.7-.2 1.5.9 2.4 1.7 3.5 2.2-2-1.4-2.8-3.3-5-3.3a6 6 0 00-2.2.6 5.8 5.8 0 00-2.2-.6z"/>
+  <path fill="#85340a" d="M253 268.4a15 15 0 00-3.6.7c4-1 4.8.4 6.6.4 1.8 0 2.6-1.3 6.6-.5-4.4-1.2-5.3-.4-6.6-.4-.9 0-1.5-.3-3-.3z"/>
+  <path fill="#85340a" d="M249.6 269h-.8c4.6.5 2.3 3.1 7.2 3.1 4.8 0 2.6-2.6 7.2-3-4.8-.5-3.3 2.4-7.2 2.4-3.7 0-2.6-2.5-6.4-2.5zm10.3 7.1a4 4 0 00-3.9-4 4 4 0 00-4 4 4 4 0 014-3 4 4 0 014 3z"/>
+  <path id="e" fill="#85340a" d="M238.3 249.9c5-4.4 11.4-5 14.9-1.8a8.6 8.6 0 011.6 3.7c.5 2.5-.3 5.2-2.3 8 .3 0 .7.1 1 .4 1.6-3.4 2.3-6.8 1.7-10a14.2 14.2 0 00-.7-2.5c-4.8-4-11.4-4.4-16.2 2.2z"/>
+  <path id="d" fill="#85340a" d="M246.2 248.6c2.8 0 3.5.6 4.8 1.7 1.3 1.1 2 .9 2.2 1.1.2.2 0 .9-.5.7-.4-.3-1.2-.7-2.6-1.8-1.3-1-2.6-1-4-1-3.8 0-6 3.2-6.5 3-.4-.2 2.2-3.7 6.6-3.7z"/>
+  <use width="100%" height="100%" transform="translate(-19.6)" xlink:href="#h"/>
+  <circle id="f" cx="246.3" cy="252.1" r="2" fill="#85340a"/>
+  <path id="g" fill="#85340a" d="M241 253.4c3.7 2.8 7.4 2.6 9.6 1.3 2.2-1.3 2.2-1.8 1.7-1.8-.4 0-.9.5-2.6 1.3-1.8 1-4.4 1-8.8-.8z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/as.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/as.svg
new file mode 100644
index 0000000..b8d8162
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/as.svg
@@ -0,0 +1,33 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-as" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill="gray" d="M496 16h496.1v496h-496z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="translate(-512 -16.4) scale(1.032)">
+    <path fill="#006" d="M0 16h992.1v496H0z"/>
+    <path fill="#bd1021" fill-rule="evenodd" d="M0 264l992.1 248V16L0 264z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M992.1 42.5v443L106.3 264 992.1 42.5z"/>
+    <g stroke="#000">
+      <path fill="#9c3900" fill-rule="evenodd" stroke-linejoin="round" stroke-width="1.7" d="M825.5 319.6s-6.2-5 1.1-13.2c-4-3.4-.3-9.9-.3-9.9s-6.7-2.5.3-13c-5-3.3-2.8-11-2.8-11s-16.6-6.1-.8-12c-13 5.6-25.1-7.6-25.1-7.6l-18.9.5c-3.2-15.6-28-2-9.5-47-4.8-.8-10.2-2.2-15.5 1.7s-20.6 12.4-29.6 4 6-20.6 6.2-20.9c.3-.3 20-10.4 22.8-17.2-.3-5-6.5-9-.8-20 6.4-10.4 46.1-20.2 64.2-23.6 8.7-4 12.6-11.5 12.6-11.5l2 7.3s40-11.9 42-17.5.8 5 .8 5c15.8-1.3 35.8-14.8 38.6-8.6 13.2-2.6 38.5-13.8 38.5-13.8s8.8-.3 2.6 9.3c4 6.1-1.2 11.5-1.4 11.5-.3 0 1.7 6.2-3.4 9.6 1.7 5.3-3.1 9.5-3.1 9.5s2.2 6.5-6.8 9.9c.9 5.6-5 6.7-5 6.7s.8 6-3.1 8.5c0 4.5-4.5 6.8-4.5 6.8s2.8 1.6-1.2 4.5a2029 2029 0 01-44.7 27.6c0-.3 29.8 5.3 31.8 6.4s24.5 16 24.5 16l-22.8 28.2s-25.4-2.8-26.5-1.4 5.4 2 6.8 4.2c1.4 2.3 3.6 7.6 8.1 7 4.5-.5-8.4 8.2-16.9 9 0 3.2 10.7 3.5 13.6 1 2.8-2.6-6.8 7.3-8 8.7s12.7-2 12.7-2-2.2 9.3-14.3 12.1c4.8 7.9 2.8 13 2.5 13s-7.9-8-15.2-6.5a35 35 0 009.6 15.7c1.7 1.2-13.2.9-15.2-3.3s-3.7 10.1 1.7 14.6c-6.2.3-11.6-3.4-11.6-3.4s-3.6 8.5-1.1 12.7c2.5 4.2-8.7-8.5-8.7-8.5l-21.4 9-4.8-8.1z"/>
+      <path fill="#ffc221" fill-rule="evenodd" stroke-width="1.8" d="M660.1 302.8c.5 0 31.1-.5 45.1-8.5a83.6 83.6 0 0016.6 18.6l4.5-16s11 .4 12 3c-1.5 3-2 7-2 7s7.5.4 8 1.4-2 9.6-2 9.6l32.1 7.5s2.5-12.6 5-11c2.5 1.5 13.6 17 29.1 18s16.6-13 16.6-13l3.5 2s6.5-14 7.5-14 2.5 2 11 2c2.5 3 3.5 10 3.5 10s-9.5 9.5-6.5 17 3.5 5.5 3.5 5.5l69.2 16.6s3.5 5.5-2.5 8.5c0 .5-69.7-16-69.7-16s-6.5 7.5-11.5 6-1.5 3-1.5 3l75.2 6s5.5 7 1.5 9c-5 .5-81.2-5-81.2-5s-4.5 9.5-9.6 1.5C814 377 810 370 810 370s-6.5 5-7.5-.5c-5.5 4-9-2.5-9-2.5l-32.1-2-2 3s5.5 1.5-3 5 51.1 2 52.6 2.5-4 5-4 5 30.6 2 36.1-4.5-2 8.5-2 8.5 24-1 24-2-.4 7.6-17 6.6c10 6.5 22.6 10.5 22.6 10.5s-12.5 3-27-.5c2.4 6.5 13.5 12.5 13.5 12.5s-8 7-26.1-10c5 9 1 12.5.5 11.5s-9-13.5-29-18c12.4 8 7 11.5 7 11.5s-6.6-11.5-17.1 0c-4-10.5-19.6-16.5-38.6-17.5-6-7-9.6-5-23.6-9-8-9-19.5-19.1-19.5-19.1s.5-13.6 14-12c1.5 4.5 1.5 3 1.5 3s15-5.6 19.6 2c6.5-11.6 15.5-1.8 17 2.3 4.3.6 26 1.2 26 1.2s-2.4-4.5-1-4 13.6-4.5 13.1-6c-.5-1.6-1-6.6 1-6 2 .4-17-2.6-27.6 5.4-3.5-3.5-1-13-1-13l-31-6.5-1.6 8s-9 1.5-8.5-.5l-2 7s-12-3-12-3.5l3.5-17.5c0 .5-10 1-24 11.5-4-12.5-35.7-29-35.7-29.6z"/>
+      <path fill="none" stroke-width="1.8" d="M736.3 307.4l-6.5 29m12.5-18l-2 9.5m34.1-2l-3 9m58.7 52.2c-.5 0-16 2-18 1.5s24.5 8 24.5 11.5m-34.6-9.5s-15.5-10-18-9 15.5-.6 17-2m-31-.6s-16.1.5-17.6-1 15.5 11 18.5 10m-32-16c-.6 0-11.1-4-15.6-5 4 4 7 9.5 17 11.5m2.5-13c-.5-1-20-7-20-10 4.5 1.5 11 3.5 17 2m106.8-15l-2 9"/>
+      <path fill="#ffc221" fill-rule="evenodd" stroke-width="1.8" d="M699.2 261.7s-21 18 0 28.6c1-7 2.5-8 2.5-8s17.6 6.5 28.1-9c-4.5-6.6-12.5-4-12.5-4s-16.6 0-18-7.6z"/>
+      <path fill="none" stroke-width="1.8" d="M716.8 269.7l-14.6 12.6m59.3 74.5s3.4 3.7.4 8.2m70.2-4.5l-5.5.5m-39.6-3.5l10 1.5m17-27.3s.2 10.1-8.2 9.9c-8.5-.3-5.7.2-5.7.2"/>
+      <path fill="none" stroke-width="1.8" d="M820.4 330s3.4 1.1 2.6 3.7c-.9 2.5.8 9.8-9 16.9-10.5 2.2-9.4-8.8-9.4-8.8"/>
+      <path fill="none" stroke-width="1.8" d="M824 333.1s6.3-3.7 7.1 2.3c.9 5.9-5 16.9-9.3 18.5-4.2 1.7-9-.2-8.4-3m18.3-15.3s5.6-4.5 7.3 1.4c1.7 6-4.5 19.2-7 19.5m7.6-19.5s2.8-1.4 4.8.3m-13.8 20c-1.2.3-6 .6-7.6-3m-17.8-6.8l-5.9.2m27.6 22l-.6-9.3-2.2-3-4 3.9s-.5 9.3-2.2 10.1M820 361l-3-6-4.8 6s-.6 8.4-2.3 9.3m2.3-9.6c0-.3-2-5.6-2-5.6s-5.6 3-6.2 5.3c-.6 2.3-.9 8.4-2.3 9m2.3-10.1s.6-5-1.1-5-9.3 7-9.6 13.1"/>
+      <path fill="#fff" fill-rule="evenodd" stroke-linejoin="round" stroke-width="1.8" d="M700 261.9s2.7-2.8 3.6-6.2c.8-3.4-1.2-7 2.2-10.2 3.4-3 47.9-22 51.5-25.6a102 102 0 0011.3-13.2c.9-1.7 3.4 8.4-4.2 13 8.2-2.3 13.5-4.8 16.9-3.7-3.4 4.8-12.4 12.7-16.6 12.7 9.8-3.7 18.8-6.8 21.4-4.8 2.5 2-12.1 11.8-18 12.3 9.8-2.5 23-6.4 24.7-2.2-5.3 1.7-3.6 3-14.6 9.3-1.4 1.1-8.5 1.4-8.5 1.4 8.5-.8 20-4.2 21.2 2-6.8 2.5-9.3 5.9-15 7.3-5.6 1.4-18.6 4-26.4 7-8 3.1-19.5 12.1-19.5 12.1s-25 .9-25 .6-4.8-11.5-5-11.8z"/>
+      <path fill="none" stroke-width="1.8" d="M711.7 259.9s.3-5.6 2.9-7.6c2.5-2 15.2-6.8 18-11 2.8-4.2-4.2 7.3-3.1 10.4m-12.7-.3s6.2 2.3 4.8 7"/>
+      <path fill="none" stroke-width="1.6" d="M724.1 254.7a4.7 4.7 0 11-9.3 0 4.7 4.7 0 019.3 0z"/>
+      <path fill="#fff" fill-rule="evenodd" stroke-width="1.8" d="M914.7 244.7l48.7 9.3s5.4-6.2 2.6-9.6c7.3-1.7 5.3-11.3 5.3-11.3s8.5-3.6 1.4-12c4.8-4.8-1-8.5-1-8.5s1.9-8.4-4.3-9.3c1.7-6.7-10.7-9-10.7-9s-25.6 7-43.7 7.6c6 6-2.2 9.6-2.2 9.6s4.8 3.4 3.4 6.2c-1.4 2.8.8 5.9-5.4 7.8 8.2 3.7-.8 10-.8 10s9 6.1 6.7 9.2z"/>
+      <path fill="none" stroke-width="1.8" d="M910 234.3s43 5 45 5 9.6 2.6 11 5.1m-53.8-12.7l60 1.4m-59.7-2.8s56.9-3.3 60.8-9.3m-59.1-3s57.1-6.3 57.7-5.4m-59.7-1.7s55.5-8.7 56-7.3M754 175.2s17.4 19.1 15.7 32"/>
+      <path fill="none" stroke-width="1.8" d="M768.6 197.1s5.6 8.2 7.9 9 22 2 23 10.4c1.2 5.4-4.1 3.7-3.3 7.6 1.4 5.1 14.6 11.6 29 4m-13.2 4s11.8 17.4 29.3-1.5m-9 7.6s14.3 7.6 26.1-12m-15.2 13.7s7 6 21.7-2m20.3-7.9s21.6 4.5 23 6m-14.9-10.7l15.2.5m-24.5-9s26-1.7 29.3 3.7m-40.5-11.8s36.3 1.4 38 3.3m-29.9 33.8s6.2-1.7 7-.8m-21 16s8.1 7 18.5 4m-14 7.9s9.3 4.2 20.2 1.6m-17.1 5.4s9.3 6.2 15.5 5m-19.7-1.4s6.4 4.8 6.7 7.4m-15.8-1.7s2 10.1 9 13.8m-13.8-9.3s-3 13.2 4.8 21.4m-12.9-11c0 .3-.6 6.2-.3 6.8m-50.4-58l15.2-.9s5.7-2.2 1.7-5.9m2 3.4c.3 0 14.3 1.1 18 5.3 3.7 4.3 8.2 12.7 10.7 14.1 2.5 1.4 3.1-.5 3.1-.5m-6.2-2.3s-7.6 13-1.7 16.9m-2.5-2.5s-6.8 9-1.4 13.5m-1.4-1.2s-5.4 8.8 1 14.7m-3.4-37.8c-.4.3-6.5 4.7-8.7 3.6m2.2 10.2s2.5 2.5 4.7 2.2m-4.4 11l4 2.8m-3.5 7.3l3.5 2.1m-67-140.2s7.3 3.9 13.2 0 34.4-18.3 41.8-20.7c7.4-2.4 11.5-16 13-21.9m-5.6 16l41.4-12.2s6.8-5.6 7.1-16m-3 11.3s41.5-4.1 41.5-19.5m-6.5 10.6s43.5-11.8 47.7-16.3"/>
+      <path fill="none" stroke-width="1.8" d="M785 178.2s26.4-13.6 30.5-15.1c4.2-1.5 13.6-13.3-.6-13.3"/>
+      <path fill="none" stroke-width="1.8" d="M797.8 183.5c.3 0 21.6-13.9 28.7-15.7 3.8-5.3 1.8-11-4.8-9.7"/>
+      <path fill="none" stroke-width="1.8" d="M828.3 164.3c.5-.3 11.5-.6 7.7 8-5.7 4.1-30 16.3-30 16.3m16.6-33.5l46.2-15.4s3.9-8-1.8-9.2m38.5-13.9c0 .3 6 3.6 2.4 9-6.5 3.8-37.3 11.2-37.3 11.2m81.7-25L908.8 124m40.2-2.3l-37.9 11.5m34.7-2l-33.5 10m27.3-.6c-1 0-24.9 7.4-24.9 7.4m19.5 0l-15.4 6.2m11.6 2.1c-.6 0-13.3 5.6-13.3 5.6m9.5 1.2l-11.9 5.6m-8.6 7.1s1.5.6 1.2 2.4m-31.1 14s5 1.7.3 6.4c-2.4 3.3-9.2 2.4-13.3 8.3m45.3-81.1s6.2 1.5 1.5 9.5c-12.5 4.7-37.6 12.4-37.6 12.4s-1.2 2-4.5 3.9c-3.2 1.7-39 11.8-39 11.8m81.7-28.4s6.8 3 0 8c-7.7 4.4-34.7 12.7-34.7 12.7s-.3 2.4-1.5 3.3c-1.1.8-36.7 12.7-36.7 12.7"/>
+      <path fill="none" stroke-width="1.8" d="M912.3 143s7.1 2 1 8c-7.5 4.4-31.2 12.4-31.2 12.4s-2.3 3-6.2 4.2c-3.8 1.1-28.4 11.2-28.4 11.2m66.6-27.8c2 .9 7.7 1.7.9 7-8 3.6-27.5 11.3-27.5 11.3l-1.8 3.3-31.1 13.3m61.3-27s3 3.6-3.6 7.8c-7 3.8-22.5 9.7-22.5 9.7m22.5-9.1s3.3 2-.8 5c-4.8 2.3-23.4 12.1-23.4 12.1l-12.2 8"/>
+      <path fill="none" stroke-width="1.8" d="M869.7 140c0 .3 5 4.4 3.3 9.2 4.4 3.3 3.5 6.8 3.5 6.8s6.2 3.5 5.3 8.6c6.3 1.5 6 5 6 5l-2.1 3.3s6.2-.3.9 7.7c3.2 1.7 1.7 3.8 1.7 3.8m-1.7-3.5c-1 0-21.7 7.7-27 12.4"/>
+      <path fill="none" stroke-width="1.8" d="M836.5 171.7s6.3-.3 5.4 6.5c7-2.4 5.6 4.5 5.6 4.5s8.3-3.3 6.8 7c5.3-1.1 4.5 4.2 4.5 4.2s4.7-.3 4.7 2.4c3.2-3 6.8-1.5 6.8-1.5s2.4-3.3 5.6-2.4M842.2 178c0 .6-27.9 16-27.9 16m33.2-11l-21 13m28.1-6.5c0 .3-18.4 11-18.4 11m22.5-6.8s-13 10.7-16 10m20.5-6.7s-7.4 5.6-13.6 8.2m21.3-10.6s2.3 3-12.5 10.6"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/at.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/at.svg
new file mode 100644
index 0000000..649d6ef
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/at.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-at" viewBox="0 0 512 512">
+  <g fill-rule="evenodd">
+    <path fill="#fff" d="M512 512H0V0h512z"/>
+    <path fill="#ed2939" d="M512 512H0V341.3h512zm0-341.2H0V.1h512z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/au.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/au.svg
new file mode 100644
index 0000000..ca5d607
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/au.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-au" viewBox="0 0 512 512">
+  <path id="path598" fill="#006" stroke-width="1.3" d="M0 0h512v512H0z"/>
+  <path id="path606" fill="#fff" fill-rule="evenodd" stroke-width="1.3" d="M54.9 368.6L95.5 384l13.4-41.4 13.3 41.4 40.7-15.4-24.1 36.3 37.4 22.2-43.3 3.7 6 43.1-30-31.5-30 31.5 6-43-43.4-3.8L79 404.9m325 71.5l-19 1.6 2.7 18.8-13-13.7-13 13.7L364 478l-18.8-1.6 16.3-9.6L351 451l17.7 6.7 5.8-18 5.7 18L398 451l-10.4 15.8m16.2-270.4L385 198l2.6 18.8-13-13.7-13 13.7L364 198l-18.8-1.6 16.3-9.6L351 171l17.7 6.7 5.8-18 5.7 18L398 171l-10.4 15.8m-88.8 123.4l-18.8 1.6 2.6 18.7-13-13.7-13 13.7 2.5-18.7-18.8-1.6 16.3-9.7-10.5-15.7 17.7 6.7 5.8-18 5.7 18 17.7-6.7-10.4 15.7M497 282.2l-18.8 1.6 2.6 18.7-13-13.7-13 13.7 2.5-18.7-18.8-1.6 16.3-9.7-10.5-15.7 17.7 6.7 5.8-18 5.8 18 17.6-6.7-10.4 15.7M416.6 355l-10.3 6.4 2.9-11.8-9.3-7.8 12-.9 4.7-11.2L421 341l12.1 1-9.2 7.7 2.9 11.8"/>
+  <g id="g1582" transform="scale(.5)">
+    <path id="path1560" fill="#006" d="M0 0h512v512H0z"/>
+    <path id="path1562" fill="#fff" d="M512 0v64L322 256l190 187v69h-67L254 324 68 512H0v-68l186-187L0 74V0h62l192 188L440 0z"/>
+    <path id="path1564" fill="#c8102e" d="M184 324l11 34L42 512H0v-3zm124-12l54 8 150 147v45zM512 0L320 196l-4-44L466 0zM0 1l193 189-59-8L0 49z"/>
+    <path id="path1566" fill="#fff" d="M176 0v512h160V0zM0 176v160h512V176z"/>
+    <path id="path1568" fill="#c8102e" d="M0 208v96h512v-96zM208 0v512h96V0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/aw.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/aw.svg
new file mode 100644
index 0000000..248a08d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/aw.svg
@@ -0,0 +1,186 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-aw" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill="gray" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)">
+    <path fill="#39c" d="M0 0v512h768V0H0z"/>
+    <path fill="#ff0" d="M0 341.3v28.5h768v-28.5H0zm0 57v28.4h768v-28.5H0z"/>
+    <path fill="#9cc" d="M122 28l2.4 2.5-2.3-2.4zm-2.3 4.8l2.4 2.4-2.4-2.4m4.7 0l2.4 2.4-2.3-2.4z"/>
+    <path fill="#ccf" d="M119.7 35.2l2.4 2.4-2.4-2.4m4.7 0l2.4 2.4-2.3-2.4z"/>
+    <path fill="#6cc" d="M117.3 40l2.4 2.3-2.4-2.3z"/>
+    <path fill="#c66" d="M122 40l2.4 2.3-2.3-2.3z"/>
+    <path fill="#6cc" d="M126.8 40l2.4 2.3-2.4-2.3z"/>
+    <path fill="#ccf" d="M117.3 42.4l2.4 2.3-2.4-2.3zm9.5 0l2.4 2.3-2.4-2.3z"/>
+    <path fill="#fcc" d="M119.7 44.7l2.4 2.4-2.4-2.4m4.7 0l2.4 2.4-2.3-2.4z"/>
+    <path fill="#6cc" d="M115 47.1l2.3 2.4-2.4-2.4z"/>
+    <path fill="#c00" stroke="#fff" stroke-width="3" d="M121.7 32.9L105 96.2l-63.5 17.2 63.3 16.5 16.9 63.3 16.9-63.3 63.2-16.9-63.3-16.8-16.8-63.3z"/>
+    <path fill="#6cc" d="M129.2 47.1l2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cf" d="M115 49.5l2.3 2.4-2.4-2.4m14.3 0l2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="M117.3 51.9l2.4 2.3-2.4-2.3m9.5 0l2.4 2.3-2.4-2.3z"/>
+    <path fill="#69c" d="M112.5 54.3l2.4 2.3-2.4-2.3z"/>
+    <path fill="#c33" d="M118.1 55.8l.8 1.6-.8-1.6m9.5 0l.8 1.6-.8-1.6z"/>
+    <path fill="#69c" d="M131.6 54.3l2.4 2.3-2.4-2.3z"/>
+    <path fill="#9cf" d="M112.5 56.6L115 59l-2.4-2.4m19 0L134 59l-2.4-2.4z"/>
+    <path fill="#fcc" d="M115 59l2.3 2.4-2.4-2.4m14.3 0l2.4 2.4-2.4-2.4z"/>
+    <path fill="#69c" d="M110.2 61.4l2.3 2.4-2.3-2.4zm23.8 0l2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="M110.2 63.8l2.3 2.4-2.3-2.4m23.8 0l2.4 2.4-2.4-2.4z"/>
+    <path fill="#cff" d="M110.2 66.2l2.3 2.3-2.3-2.3m23.8 0l2.4 2.3-2.4-2.3z"/>
+    <path fill="#69c" d="M107.8 68.5l2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="M112.5 68.5L115 71l-2.4-2.4m19 0L134 71l-2.4-2.4z"/>
+    <path fill="#69c" d="M136.3 68.5l2.4 2.4-2.3-2.4z"/>
+    <path fill="#9cc" d="M107.8 71l2.4 2.3-2.4-2.4z"/>
+    <path fill="#c33" d="M113.3 72.5l.8 1.6-.8-1.6m19 0l.9 1.6-.8-1.6z"/>
+    <path fill="#9cc" d="M136.3 71l2.4 2.3-2.3-2.4z"/>
+    <path fill="#cff" d="M107.8 73.3l2.4 2.4-2.4-2.4m28.6 0l2.3 2.4-2.3-2.4z"/>
+    <path fill="#fcc" d="M110.2 75.7l2.3 2.3-2.3-2.3m23.8 0l2.4 2.3-2.4-2.3z"/>
+    <path fill="#9cc" d="M105.4 78l2.4 2.4-2.4-2.3z"/>
+    <path fill="#c33" d="M111 79.6l.7 1.6-.8-1.6m23.9 0l.8 1.6-.8-1.6z"/>
+    <path fill="#9cc" d="M138.7 78l2.4 2.4-2.4-2.3z"/>
+    <path fill="#ccf" d="M105.4 80.4l2.4 2.4-2.4-2.4m33.3 0l2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="M107.8 82.8l2.4 2.4-2.4-2.4m28.6 0l2.3 2.4-2.3-2.4z"/>
+    <path fill="#9cc" d="M103 85.2l2.4 2.4-2.4-2.4z"/>
+    <path fill="#c33" d="M108.6 86.8l.8 1.6-.8-1.6m28.5 0l.8 1.6-.8-1.6z"/>
+    <path fill="#9cc" d="M141.1 85.2l2.4 2.4-2.4-2.4z"/>
+    <path fill="#ccf" d="M103 87.6l2.4 2.4-2.4-2.4m38.1 0l2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="M105.4 90l2.4 2.3-2.4-2.3m33.3 0l2.4 2.3-2.4-2.3z"/>
+    <path fill="#9cc" d="M100.6 92.3l2.4 2.4-2.4-2.4z"/>
+    <path fill="#c33" d="M105.4 92.3l2.4 2.4-2.4-2.4m33.3 0l2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="M143.5 92.3l2.4 2.4-2.4-2.4m-50 2.4l2.4 2.4-2.4-2.4z"/>
+    <path fill="#ccf" d="M95.9 94.7l2.4 2.4-2.4-2.4m52.3 0l2.4 2.4-2.3-2.4z"/>
+    <path fill="#9cc" d="M150.6 94.7l2.4 2.4-2.4-2.4m-64.2 2.4l2.3 2.4-2.3-2.4z"/>
+    <path fill="#ccf" d="M88.7 97.1l2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="M98.3 97.1l2.3 2.4-2.3-2.4z"/>
+    <path fill="#c33" d="M100.6 97.1l2.4 2.4-2.4-2.4m42.9 0l2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="M145.9 97.1l2.3 2.4L146 97z"/>
+    <path fill="#ccf" d="M155.4 97.1l2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="M157.8 97.1l2.3 2.4-2.3-2.4z"/>
+    <path fill="#69c" d="M76.8 99.5l2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="M79.2 99.5l2.4 2.4-2.4-2.4z"/>
+    <path fill="#cff" d="M81.6 99.5l2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="M91.1 99.5l2.4 2.4-2.4-2.4z"/>
+    <path fill="#c33" d="M95 100.3l1.7.8-1.6-.8m54.7 0l1.6.8-1.6-.8z"/>
+    <path fill="#fcc" d="M153 99.5l2.4 2.4-2.4-2.4z"/>
+    <path fill="#cff" d="M162.5 99.5l2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="M165 99.5l2.3 2.4-2.4-2.4z"/>
+    <path fill="#69c" d="M167.3 99.5l2.4 2.4-2.4-2.4m-97.6 2.4l2.4 2.3-2.4-2.3z"/>
+    <path fill="#9cc" d="M72 101.9l2.5 2.3L72 102z"/>
+    <path fill="#cff" d="M74.5 101.9l2.3 2.3-2.3-2.3z"/>
+    <path fill="#fcc" d="M84 101.9l2.4 2.3L84 102z"/>
+    <path fill="#c33" d="M88 102.7l1.5.8-1.5-.8m69 0l1.6.8-1.6-.8z"/>
+    <path fill="#fcc" d="M160.2 101.9l2.3 2.3-2.3-2.3z"/>
+    <path fill="#cff" d="M169.7 101.9l2.3 2.3-2.3-2.3z"/>
+    <path fill="#9cc" d="M172 101.9l2.4 2.3-2.3-2.3z"/>
+    <path fill="#69c" d="M174.4 101.9l2.4 2.3-2.4-2.3m-111.8 2.3l2.3 2.4-2.3-2.4z"/>
+    <path fill="#9cf" d="M65 104.2l2.3 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="M76.8 104.2l2.4 2.4-2.4-2.4z"/>
+    <path fill="#c33" d="M80.8 105l1.6.8-1.6-.8m83.3 0l1.6.8-1.6-.8z"/>
+    <path fill="#fcc" d="M167.3 104.2l2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cf" d="M179.2 104.2l2.4 2.4-2.4-2.4z"/>
+    <path fill="#69c" d="M181.6 104.2l2.3 2.4-2.3-2.4z"/>
+    <path fill="#6cc" d="M55.4 106.6l2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cf" d="M57.8 106.6l2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="M67.3 106.6l2.4 2.4-2.4-2.4zm109.5 0l2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cf" d="M186.3 106.6l2.4 2.4-2.4-2.4z"/>
+    <path fill="#6cc" d="M188.7 106.6l2.4 2.4-2.4-2.4M48.3 109l2.4 2.4-2.4-2.4z"/>
+    <path fill="#ccf" d="M50.6 109l2.4 2.4-2.3-2.4z"/>
+    <path fill="#fcc" d="M60.2 109l2.3 2.4-2.3-2.4z"/>
+    <path fill="#c33" d="M64.1 109.8l1.6.8-1.6-.8m116.7 0l1.6.8-1.6-.8z"/>
+    <path fill="#fcc" d="M184 109l2.3 2.4-2.3-2.4z"/>
+    <path fill="#ccf" d="M193.5 109l2.4 2.4-2.4-2.4z"/>
+    <path fill="#6cc" d="M195.9 109l2.3 2.4-2.3-2.4z"/>
+    <path fill="#9cc" d="M41.1 111.4l2.4 2.4-2.4-2.4z"/>
+    <path fill="#ccf" d="M43.5 111.4l2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="M53 111.4l2.4 2.4-2.4-2.4zm138.1 0l2.4 2.4-2.4-2.4z"/>
+    <path fill="#ccf" d="M200.6 111.4l2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="M203 111.4l2.4 2.4-2.4-2.4m-166.6 2.4l2.4 2.3-2.4-2.3z"/>
+    <path fill="#c66" d="M48.3 113.8l2.4 2.3-2.4-2.3zm147.6 0l2.3 2.3-2.3-2.3z"/>
+    <path fill="#9cc" d="M207.8 113.8l2.3 2.3-2.3-2.3M41 116l2.4 2.4L41 116z"/>
+    <path fill="#ccf" d="M43.5 116.1l2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="M53 116.1l2.4 2.4-2.4-2.4m138.1 0l2.4 2.4-2.4-2.4z"/>
+    <path fill="#ccf" d="M200.6 116.1l2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="M203 116.1l2.4 2.4-2.4-2.4z"/>
+    <path fill="#6cc" d="M48.3 118.5l2.4 2.4-2.4-2.4z"/>
+    <path fill="#ccf" d="M50.6 118.5L53 121l-2.3-2.4z"/>
+    <path fill="#fcc" d="M60.2 118.5l2.3 2.4-2.3-2.4z"/>
+    <path fill="#c33" d="M64.1 119.3l1.6.8-1.6-.8m116.7 0l1.6.8-1.6-.8z"/>
+    <path fill="#fcc" d="M184 118.5l2.3 2.4-2.3-2.4z"/>
+    <path fill="#ccf" d="M193.5 118.5l2.4 2.4-2.4-2.4z"/>
+    <path fill="#6cc" d="M195.9 118.5l2.3 2.4-2.3-2.4M55.4 121l2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cf" d="M57.8 120.9l2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="M67.3 120.9l2.4 2.4-2.4-2.4zm109.5 0l2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cf" d="M186.3 120.9l2.4 2.4-2.4-2.4z"/>
+    <path fill="#6cc" d="M188.7 120.9l2.4 2.4-2.4-2.4z"/>
+    <path fill="#69c" d="M62.5 123.3l2.4 2.4-2.3-2.4z"/>
+    <path fill="#9cf" d="M65 123.3l2.3 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="M76.8 123.3l2.4 2.4-2.4-2.4z"/>
+    <path fill="#c33" d="M80.8 124l1.6.9-1.6-.8m83.3 0l1.6.8-1.6-.8z"/>
+    <path fill="#fcc" d="M167.3 123.3l2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cf" d="M179.2 123.3l2.4 2.4-2.4-2.4z"/>
+    <path fill="#69c" d="M181.6 123.3l2.3 2.4-2.3-2.4m-111.9 2.4l2.4 2.3-2.4-2.3z"/>
+    <path fill="#9cc" d="M72 125.7l2.5 2.3-2.4-2.3z"/>
+    <path fill="#cff" d="M74.5 125.7l2.3 2.3-2.3-2.3z"/>
+    <path fill="#fcc" d="M84 125.7l2.4 2.3-2.4-2.3z"/>
+    <path fill="#c33" d="M88 126.5l1.5.7-1.5-.8m69 0l1.6.8-1.6-.8z"/>
+    <path fill="#fcc" d="M160.2 125.7l2.3 2.3-2.3-2.3z"/>
+    <path fill="#cff" d="M169.7 125.7l2.3 2.3-2.3-2.3z"/>
+    <path fill="#9cc" d="M172 125.7l2.4 2.3-2.3-2.3z"/>
+    <path fill="#69c" d="M174.4 125.7l2.4 2.3-2.4-2.3M76.8 128l2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="M79.2 128l2.4 2.4-2.4-2.4z"/>
+    <path fill="#cff" d="M81.6 128l2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="M91.1 128l2.4 2.4-2.4-2.4z"/>
+    <path fill="#c33" d="M95 128.8l1.7.8-1.6-.8m54.7 0l1.6.8-1.6-.8z"/>
+    <path fill="#fcc" d="M153 128l2.4 2.4-2.4-2.4z"/>
+    <path fill="#cff" d="M162.5 128l2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="M165 128l2.3 2.4-2.4-2.4z"/>
+    <path fill="#69c" d="M167.3 128l2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="M86.4 130.4l2.3 2.4-2.3-2.4z"/>
+    <path fill="#ccf" d="M88.7 130.4l2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="M98.3 130.4l2.3 2.4-2.3-2.4z"/>
+    <path fill="#c33" d="M100.6 130.4l2.4 2.4-2.4-2.4m42.9 0l2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="M145.9 130.4l2.3 2.4-2.3-2.4z"/>
+    <path fill="#ccf" d="M155.4 130.4l2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="M157.8 130.4l2.3 2.4-2.3-2.4m-64.3 2.4l2.4 2.4-2.4-2.4z"/>
+    <path fill="#ccf" d="M95.9 132.8l2.4 2.4-2.4-2.4m52.3 0l2.4 2.4-2.3-2.4z"/>
+    <path fill="#9cc" d="M150.6 132.8l2.4 2.4-2.4-2.4m-50 2.4l2.4 2.4-2.4-2.4z"/>
+    <path fill="#c33" d="M105.4 135.2l2.4 2.4-2.4-2.4m33.3 0l2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cc" d="M143.5 135.2l2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="M105.4 137.6l2.4 2.3-2.4-2.3m33.3 0l2.4 2.3-2.4-2.3z"/>
+    <path fill="#ccf" d="M103 140l2.4 2.3-2.4-2.4z"/>
+    <path fill="#c33" d="M108.6 141.5l.8 1.6-.8-1.6m28.5 0l.8 1.6-.8-1.6z"/>
+    <path fill="#ccf" d="M141.1 140l2.4 2.3-2.4-2.4z"/>
+    <path fill="#9cc" d="M103 142.3l2.4 2.4-2.4-2.4m38.1 0l2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="M107.8 144.7l2.4 2.4-2.4-2.4m28.6 0l2.3 2.4-2.3-2.4z"/>
+    <path fill="#ccf" d="M105.4 147l2.4 2.5-2.4-2.4z"/>
+    <path fill="#c33" d="M111 148.7l.7 1.6-.8-1.6m23.9 0l.8 1.6-.8-1.6z"/>
+    <path fill="#ccf" d="M138.7 147l2.4 2.5-2.4-2.4z"/>
+    <path fill="#9cc" d="M105.4 149.5l2.4 2.3-2.4-2.3m33.3 0l2.4 2.3-2.4-2.3z"/>
+    <path fill="#fcc" d="M110.2 151.8l2.3 2.4-2.3-2.3m23.8 0l2.4 2.3-2.4-2.3z"/>
+    <path fill="#cff" d="M107.8 154.2l2.4 2.4-2.4-2.4z"/>
+    <path fill="#c33" d="M113.3 155.8l.8 1.6-.8-1.6m19 0l.9 1.6-.8-1.6z"/>
+    <path fill="#cff" d="M136.3 154.2l2.4 2.4-2.3-2.4z"/>
+    <path fill="#9cc" d="M107.8 156.6l2.4 2.4-2.4-2.4m28.6 0l2.3 2.4-2.3-2.4z"/>
+    <path fill="#69c" d="M107.8 159l2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="M112.5 159l2.4 2.4-2.4-2.4m19 0l2.5 2.4-2.4-2.4z"/>
+    <path fill="#69c" d="M136.3 159l2.4 2.4-2.3-2.4z"/>
+    <path fill="#cff" d="M110.2 161.4l2.3 2.3-2.3-2.3zm23.8 0l2.4 2.3-2.4-2.3z"/>
+    <path fill="#9cc" d="M110.2 163.8l2.3 2.3-2.3-2.3m23.8 0l2.4 2.3-2.4-2.3z"/>
+    <path fill="#69c" d="M110.2 166.1l2.3 2.4-2.3-2.4m23.8 0l2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="M115 168.5l2.3 2.4-2.4-2.4m14.3 0l2.4 2.4-2.4-2.4z"/>
+    <path fill="#9cf" d="M112.5 170.9l2.4 2.4-2.4-2.4z"/>
+    <path fill="#c33" d="M118.1 172.5l.8 1.6-.8-1.6m9.5 0l.8 1.6-.8-1.6z"/>
+    <path fill="#9cf" d="M131.6 170.9l2.4 2.4-2.4-2.4z"/>
+    <path fill="#69c" d="M112.5 173.3l2.4 2.3-2.4-2.3m19 0l2.5 2.3-2.4-2.3z"/>
+    <path fill="#fcc" d="M117.3 175.7l2.4 2.3-2.4-2.3m9.5 0l2.4 2.3-2.4-2.3z"/>
+    <path fill="#9cf" d="M115 178l2.3 2.4-2.4-2.4zm14.2 0l2.4 2.4-2.4-2.4z"/>
+    <path fill="#6cc" d="M115 180.4l2.3 2.4-2.4-2.4m14.3 0l2.4 2.4-2.4-2.4z"/>
+    <path fill="#fcc" d="M119.7 182.8l2.4 2.4-2.4-2.4m4.7 0l2.4 2.4-2.3-2.4z"/>
+    <path fill="#ccf" d="M117.3 185.2l2.4 2.3-2.4-2.3m9.5 0l2.4 2.3-2.4-2.3z"/>
+    <path fill="#6cc" d="M117.3 187.6l2.4 2.3-2.4-2.3z"/>
+    <path fill="#c66" d="M122 187.6l2.4 2.3-2.3-2.3z"/>
+    <path fill="#6cc" d="M126.8 187.6l2.4 2.3-2.4-2.3z"/>
+    <path fill="#ccf" d="M119.7 192.3l2.4 2.4-2.4-2.4m4.7 0l2.4 2.4-2.3-2.4z"/>
+    <path fill="#9cc" d="M119.7 194.7l2.4 2.4-2.4-2.4m4.7 0l2.4 2.4-2.3-2.4m-2.4 4.8l2.4 2.3-2.4-2.4z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ax.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ax.svg
new file mode 100644
index 0000000..cdeb07e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ax.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ax" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M166 0h850v850H166z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="translate(-100) scale(.6024)">
+    <path fill="#0053a5" d="M0 0h1300v850H0z"/>
+    <g fill="#ffce00">
+      <path d="M400 0h250v850H400z"/>
+      <path d="M0 300h1300v250H0z"/>
+    </g>
+    <g fill="#d21034">
+      <path d="M475 0h100v850H475z"/>
+      <path d="M0 375h1300v100H0z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/az.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/az.svg
new file mode 100644
index 0000000..0119e1a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/az.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-az" viewBox="0 0 512 512">
+  <path fill="#3f9c35" d="M0 0h512v512H0z"/>
+  <path fill="#ed2939" d="M0 0h512v341.3H0z"/>
+  <path fill="#00b9e4" d="M0 0h512v170.7H0z"/>
+  <circle cx="238.8" cy="256" r="76.8" fill="#fff"/>
+  <circle cx="255.9" cy="256" r="64" fill="#ed2939"/>
+  <path fill="#fff" d="M324.2 213.3l8.1 23 22-10.5-10.4 22 23 8.2-23 8.2 10.4 22-22-10.5-8.1 23-8.2-23-22 10.5 10.5-22-23-8.2 23-8.2-10.5-22 22 10.5 8.2-23z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ba.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ba.svg
new file mode 100644
index 0000000..5b92b0a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ba.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ba" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)">
+    <path fill="#009" d="M0 0h512v512H0z"/>
+    <path fill="#fc0" d="M77 0l437 437V0H77z"/>
+    <path fill="#FFF" d="M461.4 470.4l-26.1-19.1-26.9 19 10.2-31.2-26.4-19.2h32.7l10.2-31 10 31.1 32.8.1-26.2 19.4 9.7 30.9zm76.7 10.4h-32.7l-10-31.2-10.2 31.1h-32.8l26.4 19.2-10.1 31.2 26.8-19 26.2 19-9.8-30.9 26.2-19.4zM391.8 379.6l26.2-19.4h-32.7L375.2 329 365 360h-32.7l26.4 19.3-10.1 31.1 26.8-19 26.1 19.1-9.7-31zm-60.3-60.4l26.2-19.4-32.8-.1-10-31.2-10.2 31.2-32.7-.1 26.4 19.2-10.2 31.2 26.9-19 26.1 19.1-9.7-31zm-59.7-59.7l26.2-19.4h-32.7l-10.1-31.2L245 240h-32.7l26.4 19.2-10.1 31.2 26.8-19 26.1 19-9.7-30.9zm-60.4-60.3l26.2-19.3-32.8-.1-10-31.2-10.2 31.2-32.7-.1 26.4 19.2-10.2 31.2 26.9-19 26.1 19-9.7-30.8zm-59.7-59.9L178 120l-32.7-.1-10-31.2-10.3 31.1H92.2l26.4 19.2-10.1 31.2 26.8-19 26.1 19-9.7-30.9zm-60-60L118 60l-32.7-.1-10-31.2L65 59.8H32.2L58.6 79l-10.1 31.2 26.8-19 26.2 19-9.8-30.9zm-60-60L58 0 25.2-.1l-10-31.2L4.8-.2h-32.7L-1.4 19l-10.1 31.2 26.8-19 26.1 19-9.7-30.9z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bb.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bb.svg
new file mode 100644
index 0000000..9d62784
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bb.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-bb" viewBox="0 0 512 512">
+  <path fill="#00267f" d="M0-.2h512V512H0z"/>
+  <path fill="#ffc726" d="M170.7-.2h170.6V512H170.7z"/>
+  <path id="a" d="M256 173.3c-5.5 15.1-11.2 30.9-23.3 43a51.7 51.7 0 0114.6-2.3v63.6l-18 2.7c-.7 0-.9-1-.9-2.4a243.6 243.6 0 00-11.7-53.6c-.4-2.3-7.2-11.3-2-9.7.7 0 7.7 3 6.6 1.6a68 68 0 00-37.1-19.2c-1.2-.3-2 .3-.9 1.7 18 27.7 33.1 60.4 33 99.2 7 0 24-4.1 31-4.1v44.9h8.8l2-125.4z"/>
+  <use width="100%" height="100%" transform="matrix(-1 0 0 1 512 0)" xlink:href="#a"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bd.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bd.svg
new file mode 100644
index 0000000..4cb38cf
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bd.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bd" viewBox="0 0 512 512">
+  <path fill="#006a4e" d="M0 0h512v512H0z"/>
+  <circle cx="230" cy="256" r="170.7" fill="#f42a41"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/be.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/be.svg
new file mode 100644
index 0000000..01496c3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/be.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-be" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path d="M0 0h170.7v512H0z"/>
+    <path fill="#ffd90c" d="M170.7 0h170.6v512H170.7z"/>
+    <path fill="#f31830" d="M341.3 0H512v512H341.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bf.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bf.svg
new file mode 100644
index 0000000..a3c7c44
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bf.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bf" viewBox="0 0 512 512">
+  <g fill-rule="evenodd">
+    <path fill="#de0000" d="M512 511.6H.5V0H512z"/>
+    <path fill="#35a100" d="M511.8 512H0V256.2h511.7z"/>
+  </g>
+  <path fill="#fff300" fill-rule="evenodd" d="M389 223.8l-82.9 56.5 31.7 91.6-82.7-56.7-82.8 56.7 31.7-91.6-82.8-56.6 102.3.2 31.6-91.7 31.5 91.6"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bg.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bg.svg
new file mode 100644
index 0000000..5abe67f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bg.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bg" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#d62612" d="M0 341.3h512V512H0z"/>
+    <path fill="#fff" d="M0 0h512v170.7H0z"/>
+    <path fill="#00966e" d="M0 170.7h512v170.6H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bh.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bh.svg
new file mode 100644
index 0000000..22fba62
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bh.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bh" viewBox="0 0 512 512">
+  <defs id="defs448">
+    <clipPath id="a">
+      <path id="path445" fill-opacity=".7" d="M0 0h640v480H0z"/>
+    </clipPath>
+  </defs>
+  <path id="path1077" fill="#fff" stroke-width="4.4" d="M0 0h512v512H0" opacity="1" stop-opacity="1"/>
+  <path id="path1079" fill="#ce1126" stroke-width="4.5" d="M512 0H102.4l83.4 51.2-83.4 51.2 83.4 51.2-83.4 51.2 83.4 51.2-83.4 51.2 83.4 51.2-83.4 51.2 83.4 51.2-83.4 51.2H512" opacity="1" stop-opacity="1"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bi.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bi.svg
new file mode 100644
index 0000000..cc11dcf
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bi.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bi" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill="gray" d="M60.8 337h175v175h-175z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-178 -986) scale(2.9257)">
+    <path fill="#00cf00" d="M0 337l146.6 87.5L0 512zm293.1 0l-146.5 87.5L293 512z"/>
+    <path fill="red" d="M0 337l146.6 87.5L293 337zm0 175l146.6-87.5L293 512z"/>
+    <path fill="#fff" d="M293.1 337h-27.3L0 495.7V512h27.3l265.8-158.7z"/>
+    <path fill="#fff" d="M197.2 424.5a50.6 50.6 0 11-101.2 0 50.6 50.6 0 01101.2 0z"/>
+    <path fill="#fff" d="M0 337v16.3L265.8 512h27.3v-16.3L27.3 337z"/>
+    <path fill="red" stroke="#00de00" stroke-width="1pt" d="M156.5 405.4l-6.6.1-3.4 5.6-3.4-5.6-6.5-.1 3.2-5.8-3.2-5.7 6.6-.2 3.4-5.6 3.4 5.7h6.5l-3.1 5.8zm-22 38.2h-6.6l-3.4 5.7-3.4-5.6-6.6-.2 3.2-5.7-3.1-5.8 6.5-.1 3.4-5.6 3.4 5.6 6.6.2-3.2 5.7zm44.6 0h-6.6l-3.4 5.7-3.4-5.6-6.5-.2 3.1-5.7-3.1-5.8 6.6-.1 3.4-5.6 3.4 5.6 6.5.2-3.2 5.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bj.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bj.svg
new file mode 100644
index 0000000..07c4c11
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bj.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bj" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill="gray" d="M67.6-154h666v666h-666z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="translate(-52 118.4) scale(.7688)">
+    <g fill-rule="evenodd" stroke-width="1pt">
+      <path fill="#319400" d="M0-154h333v666H0z"/>
+      <path fill="#ffd600" d="M333-154h666v333H333z"/>
+      <path fill="#de2110" d="M333 179h666v333H333z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bl.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bl.svg
new file mode 100644
index 0000000..0fa74e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bl.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bl" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h512v512H0z"/>
+    <path fill="#00267f" d="M0 0h170.7v512H0z"/>
+    <path fill="#f31830" d="M341.3 0H512v512H341.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bm.svg
new file mode 100644
index 0000000..a7057d2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bm.svg
@@ -0,0 +1,98 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bm" viewBox="0 0 512 512">
+  <path fill="#cf142b" d="M0 0h512v512H0z"/>
+  <path fill="#00247d" d="M0 0h256v128H0z"/>
+  <path fill="#fff" d="M0 0v14.3L227.4 128H256v-14.3L28.6 0H0zm256 0v14.3L28.6 128H0v-14.3L227.4 0H256z"/>
+  <path fill="#fff" d="M106.7 0v128h42.6V0h-42.6zM0 42.7v42.6h256V42.7H0z"/>
+  <path fill="#cf142b" d="M0 51.2v25.6h256V51.2H0zM115.2 0v128h25.6V0h-25.6zM0 128l85.3-42.7h19.1L19.1 128H0zM0 0l85.3 42.7h-19L0 9.5V0zm151.6 42.7L236.9 0H256l-85.3 42.7h-19.1zM256 128l-85.3-42.7h19l66.3 33.2v9.5z"/>
+  <path fill="#fff" d="M443 182.6V291c0 29-57.8 38.4-57.8 38.4s-58-9.4-58-38.4V182.6h115.9z"/>
+  <path fill="#2f8f22" d="M443 291c0 29-57.8 38.4-57.8 38.4s-58-9.4-58-38.4c0 0 0-2.3 1.3-3.6 0 0-.7 4.8 3 8.4 0 0-2.9-5.1 0-10.2 0 0-1 6.5 3 10.3 0 0-2.3-5.3.3-11.3 0 0-1.3 9.7 3.1 11.6 0 0 1.2-5.5-.5-9 0 0 3 1.1 2.8 9.2 0 0 1-1.2 1.3-7 0 0 0 6.7 2.4 8.2 0 0 .7-.7-.3-3.7s.4-4 .7-4c0 0-.5 3.3 2.3 5.8 0 0-1.3-5.2.4-6 0 0-.3 4.5 3.2 5.5 0 0 .2-1.3-.5-2.7 0 0-.7-1.7-.2-3 0 0 1.1 4 2.7 4.7 0 0-1-2.4-.1-4.7 0 0 .2 3.3 3.2 4.7 0 0-2-2.6-1.2-5.5l19.3 1 10 .5 30-2.2 5-4.4s2.1 2.8-1.1 7.3c0 0 3.2-.6 4.2-5.6 0 0 1.3 2.8-.5 5.9 0 0 3.6-3.6 4-7.6 0 0 1.5 3.9-1.9 8 0 0 3-1 4.3-5.4 0 0 1 2.7-1.9 6.5 0 0 5.4-2.9 5.3-8.8 0 0 2.2 3.2-.4 7.7 0 0 2.8-2.4 3-6.1 0 0 1.6 1.6 0 6.2 0 0 3.3-3.1 3.8-6.6 0 0 .8 3.2-2.1 7.2 0 0 2-.5 3.8-4.4 0 0 .5 1.6-1.2 4.4 0 0 1.9-.3 3.1-3.9 0 0 .2 2.2-.3 4 0 0 1.4-.9 1.7-5 0 0 .8 1.4.9 3v.6z"/>
+  <path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M413.3 228.3s-2 .4-4.6-.4c-2.6-.8-3.7-.5-4.5 0 0 0 1-2-1.5-3.7 0 0 .9 2-.3 3 0 0-.5.5-1.1-.2l-1.8-1.6s2.1-.8 1.7-3c-.4-2.2-1.5-2.5-2.2-2.7 0 0 .2 1 0 1.6 0 0-2.4-1.3.9-3.2s2.6-3 2-3.9c-.6-.9-1.8-2-2.4-2.3 0 0 .6 1 .5 1.8 0 .9-1.5 1.4-1.3 0 .3-1.6 0-1.3 0-2.9 0 0 2.9 1 4-1.8 0 0 1-2.9-2.5-4.3 0 0 .8 1.1.4 2 0 0-.8 1.5-1.7.3-.9-1.2-1.4-1.4-1.4-2.8 0 0 3.3.5 2.4-3 0 0-.5 2.3-4.7-.9 0 0 2.7-2.8 1.6-5.1 0 0-.3-1-3.3-.5 0 0 2.6-1.6 1.5-3 0 0-.5-1-3 .3 0 0 1-1.6-1.4-3.4 0 0-1.6.9-2.4 1.6 0 0-1.7-2-2.7-2.8 0 0-1.9.7-2.4 2.8 0 0-.8-1-2.8-1.5 0 0-1 1.8.2 3.3 0 0-.9 0-2.6-.8 0 0-2-.9-1.6.8.3 1.6.4 2 .8 2.8 0 0-4.3-1-4.1 1.3a6 6 0 002 4.2s-2.4 3.2-4.5.8c0 0-.7.8.9 2.8 0 0 1.5 1.7.2 2.8 0 0-1.7 1.4-2.5-1.3 0 0-2.8 2.7.5 4.8 0 0 2 1.3 4.2-.6 0 0-.6 5.3-2.7 4.3 0 0-1.2-1 1-2 0 0-3.2-.4-3.7 2.7 0 0-.4 2.4 2.4 3.3 0 0 2.1.8-.1 2.4 0 0-1.6 1.2-.5 3 0 0 1.2 2-2 2.1 0 0-1.6 0-2.2-.2 0 0-.7 1.3-.2 2.7 0 0-1.6-1.2-5.1.1-3.5 1.3-3.3.4-3.5.8l-1 1.7 1.9 2.2-.4 2.5 1 .5 7.2-3.3 7.4-3.8 5.9.4 3.7.9 5 .3 3.5-1.9h5.1l5.7 2.8 6.4 3.9 3.3.6 2.6-.2v-5.2l-1.2-1.9z"/>
+  <path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M354.8 234.4s2.8 1.5 4-.3c0 0 1.5-2.9-1.8-4 0 0 1.8-2.1-.2-4.1 0 0-1-1.1-2.8-.3 0 0-.7-1.6-2.5-1.5 0 0-1.5 0-2 1.7 0 0-2.1-1-3.3.3 0 0-2 2.2.7 4l2 .1 1.9-.9 2.1.6s-.5 2.2 1.9 4.4z"/>
+  <path fill="#64b4d1" stroke="#000" stroke-width=".3" d="M417.5 229.3a4.5 4.5 0 014.5 2.5c1.8 4.2-2 6.4-2 6.4a9 9 0 01.4 2.2c5.3.6 4.3 6.6 4.3 6.6l-1.7-1.5c-3-1.2-6.2 1.4-8.5 5.8s-1.2 6.4-.8 11.6c.4 5.2 8.8 8.3 8.8 8.3l-6.6 16.8c-2.6 6.6-8 3.9-9.5 2.5-1.6-1.4-2-.6-2.8 0-.7.6 3.6 4-4.3 7.2s-9.2 5.6-10.6 6.4c-1.3.8-6.7.3-7.3-.4-.5-.7-.2-.7-2.2-2-2-1.2-5.5-2.3-9.3-4.1-3.7-1.8-3.6-4.2-3.6-4.7 0-.4 1.3-4.4-3.1-1.3-4.4 3.2-8.2-1.4-8.2-1.4-.8-1.2-4.5-11-4.5-11-1-3.7-3-8-3-8 .2 0-.1.5 3.1-1.4 3.3-1.8 4.7-5 5.9-8 1.1-3 0-8.3-.4-9.4-.4-1-2.9-6-5.9-7-3-1-5 1.6-5 1.6s-.9-6 4.4-6.6c0 0 0-1.3.3-2.2 0 0-3.7-2.2-2-6.4 0 0 1.2-2.8 4.6-2.5l-.8 1.5s-.9 8.5 11.6 2.8 12-6.7 19.1-3.1l5.2-.1s7.4-3.5 9.8-2c2.4 1.5 11 6.3 11 6.3s8.4 3.1 10-2.6l-1-2.8z"/>
+  <path fill="#fff" stroke="#00247d" stroke-miterlimit="10" stroke-width=".4" d="M380 266.1l-.8-4.3s-1-2.6.6-4.5l2-2.2s1.2-1.7 2.7-1.9c0 0 1.5 0 1.6-.3.2-.3 1.8-3 5.7 0 0 0 1.3-2 3.2-2.4 0 0 2-.6 3 1 0 0 2.4-1.8 4.4 1 0 0 2.7-1.5 4.7 1.6 0 0 2.8-1.4 4.4 1.5 1.7 2.8 1.4 4 1.4 4l1.2 4.5 4.4 5.4-10.2 3.9h-4.6l-9.2 2.4-16.3 1.3-4.6-5.4 6.5-5.6z"/>
+  <path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M366.3 293.2s-2.5.2-3.7.8c-1.3.6-2.2 1.3-3.7 2.2 0 0-.6 1-3.4.4 0 0-5-1.2-5 2.6 0 0-5.8.5-3.4 5.6 0 0 1.7 4 5 1.2 0 0-2.1 3 2 4.3 0 0 3 .7 3.8-2.3 0 0 .5-1.2-.6-2.7 0 0 1.4-.3 2.4-1.9 0 0-3 3.9.3 5.3 0 0 4.2 1 4.4-3.3 0 0-.3-2 1.3-2.8 0 0 3.4-.8 5-4.5 0 0-4.9-2.6-4.4-4.9zm-9.9-38.4s-3.8-1.8-5.5 0c0 0-2.5-1.6-5.1 0 0 0-2.5 1.6-4.3 3.4 0 0-1.2 1-.7 4.3 0 0 .6 2.3.2 3.4 0 0-.8-.1-2.5 1.8 0 0-2 2.5-3.9.3 0 0 .6 3 4 2.5 0 0-1.7 1.4-.2 4.8 0 0 1.1 2.4-.6 5.4 0 0 3-1.2 2.9-4.8 0 0-.3-2.4.6-4.1 0 0-.9 1.6 1.2 4.9 0 0 1.6 2.3.3 4.8 0 0 3-1 2.7-4.7-.3-3.6-2.1-2.1-1-5.5 0 0 .4 1.7 1.3 2.6.9.9 2 2.3 1.5 4.7 0 0 1.8-2.2 1.4-4.5-.4-2.3-.9-3-.9-3l5.7-3.2 2.8-5 .1-8.1z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".4" d="M347.8 269.1s-2.3-.2-2.7-2m-4-1.2s.7 0 1.5.8c0 0 .6.8 1.4.7"/>
+  <path d="M351.3 262.2s-1.2 0-1.9-.5c0 0-.7-.5-1.1.3 0 0-.7 1 .5 1.5 0 0 1.5.8-.8 2.3 0 0 2.7-1 1.6-2.4 0 0-1.2-.9-.7-1.2 0 0 0-.2.6 0s1.4.3 1.8 0z"/>
+  <path fill="#784421" stroke="#000" stroke-width=".3" d="M389.3 268.4l-9.3-32.2h-.3l8.2 32.7z"/>
+  <path d="M356.9 304.5s-2.2-1.2-4 .2c0 0 .1-.8 1.5-1.1 0 0 .8-2.1 2.9-2l-2 2s1.2 0 1.6 1z"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".3" d="M349.1 309.6s-3.5-2.2-1.6-5.8c0 0 .5-1.1 1.6-.9 0 0 2.2.7.5 3.7 0 0-.9 2-.5 3zm7 3.5s-4.9-2.3-3.4-6.1c0 0 .5-1.3 1.6-1.2 0 0 2 0 1.5 2.6 0 0-.5 2.5.4 4.7z"/>
+  <path d="M355.1 298.7s-1.5 1.1-2 1.9c0 0-.7-.8-1.5-1.3 0 0 1 0 1.4.3 0 0 .8-.7 2.1-.9z"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".3" d="M359.6 312.1s3.8-1 3.1-5c0 0-.3-1.7-2-1.5 0 0-2 .5-.7 3 0 0 .8 2-.4 3.5z"/>
+  <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width=".4" d="M377.2 227l3.8 1.2s3.7 1.7 8.3 0l3.5-1.3-2.4 3.7v1.8l1.4 2.2s-.9.4-3.6-1.2c0 0-3-2.3-6.5 0 0 0-1.9 1.3-3.5 1.2l2.3-2.5-1-2.3-2.3-2.9z"/>
+  <path fill="#fff" d="M361 307.3s.2-.2 0-.2c0 0-.1-.1-.2.1 0 0-.5.7-.1 1.6 0 0 .3.6.2 1.2v.2s.2 0 .2-.2c0 0 .2-.6-.1-1.2 0 0-.4-1 0-1.5z"/>
+  <path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M415 234.4s-2.7 1.5-4-.3c0 0-1.4-2.9 2-4 0 0-2-2.1 0-4.1 0 0 1-1.1 2.9-.3 0 0 .7-1.6 2.5-1.5 0 0 1.5 0 2 1.7 0 0 2.1-1 3.3.3 0 0 2 2.2-.8 4l-2 .1-1.8-.9-2.2.6s.6 2.2-1.8 4.4z"/>
+  <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width=".4" d="M392.8 232.2s0 .5-.6.6c0 0-.6.2-1-.5v-.3c0-.3-.2-1.3 1-2.2 0 0 1.7-1.4 5 .3l4.6 2.4 5.4 2.8s2 1 5.3 1.2c0 0 4.4.3 6.3-2.8 0 0 1.4-2.3 0-3.8 0 0-.6-.7-1.6-.6a2 2 0 00-1.2.7s-.7 1 0 1.8c0 0 1.1.6 1.5-.7 0 0 0-.1 0 0 0 0 .3 1.1-.3 2 0 0-2.6 4-10-.2l-9.5-5.4s-4.9-2.5-7.8 1.4c0 0-2.3 3.2.7 5.3 0 0 2.2 1.4 3.6-.8 0 0 1.2-2-.6-3 0 0-1.6-.7-2.3.9-.6 1.6 1.3 2 1.4.9 0 0 0-.3.1 0z"/>
+  <path fill="#e4cb5e" stroke="#000" stroke-miterlimit="2.6" stroke-width=".3" d="M354.6 248.8v-6c0-.6 0-1 .8-1.5s1.5-1.5 2.6 1c0 0 2.1-2.2 2.8-2.5 0 0 1.3-1 2.1.5 0 0 1.2-1.8 2-2.2 0 0 2.2-1.4 2.3 2.8l1.7-1.6s1.3-1 2.7.4c0 0 2.5 2.4 2.8 3 0 0 .6.8.6 2 0 0 0 1.3.7 2 0 0 .7.7 1.5.8 0 0 1.7 0 2.3 1.7 0 0 .3-.3 1.2 7.6V271l-9.7 11.5-15.5-4.4-6.2-2.6-1.3-4.5 6-3.9 3.2-8.8-1-6.1-1.6-3.6z"/>
+  <path fill="#784421" stroke="#000" stroke-width=".3" d="M397.4 256.4l.7-1.1 1.8-1.4s2.6 7 2.8 8.6v2.2s4 1 4.7 7.2l-3.3 6-5.2-2.8-1.5-1.1v-17.6z"/>
+  <path fill="#fff" d="M348.1 304.6s.2-.2 0-.3l-.2.1s-1 1.2-.2 3c0 0 0 .3.2.2 0 0 .2 0 0-.3 0 0-.7-1.5.2-2.7z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".4" d="M363.8 303.4s.2-.5-.2-1c0 0-.3-.5-.2-1"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".3" d="M367.2 240.9s0 1.5.5 2.6c.4 1.1 1.9 3 2 4"/>
+  <path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M403.7 293.2s2.4.2 3.7.8c1.2.6 2.2 1.3 3.6 2.2 0 0 .7 1 3.5.4 0 0 4.9-1.2 4.9 2.6 0 0 5.8.5 3.4 5.6 0 0-1.6 4-5 1.2 0 0 2.2 3-2 4.3 0 0-3 .7-3.8-2.3 0 0-.5-1.2.7-2.7 0 0-1.4-.3-2.4-1.9 0 0 3 3.9-.3 5.3 0 0-4.2 1-4.5-3.3 0 0 .4-2-1.3-2.8 0 0-3.3-.8-4.8-4.5 0 0 4.8-2.6 4.3-4.9z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".3" d="M365.3 247.6l4 32.1m-3-32.2l4.4 30m-3.6-30.1l5.1 29.7"/>
+  <path fill="#784421" stroke="#000" stroke-width=".3" d="M376.6 274l-9.3-32.2-.3.1 8.2 32.6z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".3" d="M370 246.2l9.4 23.8m-10.1-23.4l9 24.8"/>
+  <path fill="#fff" d="M354.4 310.8s-1.1-1-1-2.9c0 0 .1-.4-.1-.5 0 0-.2 0-.3.4 0 0-.2 2 1 3.1h.3s.2 0 0 0z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".3" d="M370.4 245.8l9.7 21.8m-12.4-20.4l6 29.2"/>
+  <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width=".4" d="M416.4 268.9c-4.2-2.4-5.2-7.8-5.2-7.8a16.4 16.4 0 011-9.6c2.8-5.8 7.6-6.8 7.6-6.8s-4.7 3.2-6 7.5c0 0-1 3.6-.4 7.2s.4 2.7 1.3 5.5l1.7 4z"/>
+  <path fill="#784421" stroke="#000" stroke-width=".2" d="M398.1 255.3l-17.9 5.6-1 8c-4.2 6.1-12.8 7.2-12.8 7.2l6.7 7.1L386 286l6.7-5.2 6.2-5.6c-.7-3-.3-7.5-.3-7.5l.3-2.6s-1-7.2-.8-9.7z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".3" d="M379.5 266.9s11.8-3.7 18.8-6.7m-24.5 13.4s14.7-2.7 25-8.6l3.9-2.5"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".3" d="M402.7 264.7l-4.1 2.9s-16.4 7.5-29 7.7m29-2.3s-12.6 6.5-19.9 6.6"/>
+  <path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M413.6 254.8s3.8-1.8 5.6 0c0 0 2.5-1.6 5 0 0 0 2.6 1.6 4.3 3.4 0 0 1.2 1 .8 4.3 0 0-.7 2.3-.3 3.4 0 0 .8-.1 2.5 1.8 0 0 2.1 2.5 4 .3 0 0-.6 3-4 2.5 0 0 1.6 1.4.1 4.8 0 0-1 2.4.7 5.4 0 0-3-1.2-3-4.8 0 0 .3-2.4-.6-4.1 0 0 1 1.6-1.1 4.9 0 0-1.7 2.3-.4 4.8 0 0-3-1-2.6-4.7.2-3.6 2-2.1.9-5.5 0 0-.3 1.7-1.2 2.6a4.9 4.9 0 00-1.6 4.7s-1.8-2.2-1.3-4.5a9 9 0 01.8-3l-5.6-3.2-2.8-5-.2-8.1z"/>
+  <path fill="#fff" stroke="#00247d" stroke-miterlimit="10" stroke-width=".4" d="M349.7 275.1s.5-2.5 2.9-1.5c0 0 .8-4.1 5.2-4.2 4.3-.2 4.6 4.2 4.6 4.5 0 0 1.2-1.9 3.4-1.7 0 0 3.7-.2 2.3 5.7l.7.8s2.8-6.6 8.6-5c0 0 5.6 1.8 2 7.3 0 0 2.7 3.6 5 3.3 2.5-.4 4.6-1.1 7-5.3 2.3-4.1 7.7-4.7 9-4.5 1.5.2 2.6 1.2 2.8 2.1 0 0 2.9-9.6 13.3-8l4.1 2 1.6.7-2.3 6.7-5.8 13-4.3 1.3-4.6-2.6-1.6.8v3.9l-6 4.3-4.2 1.7-4.6 3.2-1.1 2.8s-2.5-1.1-5.4 0l-1-2.4-2.6-2.5-10.4-5-2-6-1.8-.8-2.1 2.4-3.2.4-4.6-3.2-5-14.2z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".4" d="M395 227.9s-4-.2-3.8 4"/>
+  <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width=".4" d="M421.1 271.6c-6.9-2-8.8-9.5-8.8-9.5-1.4-5.6.9-10.5.9-10.5 3.2-7.4 8.5-7.4 8.5-7.4 2.7 0 3 2.3 3 2.3.3 1.6-.9 2.2-.9 2.2-1.8 1-3-.4-3-.4-.7-1-.2-1.9-.2-1.9.5-.6 1.4-.3 1.4-.3.7.2.6 1 .6 1v.1c.1 0 0 0 0 0s.2-1.1-.8-1.2c0 0-2.1-.5-4.5 2.6 0 0-3.3 4-3.2 9.4 0 0-.5 10 10 12.5 0 0-1.2 1.6-3.2 7.5 0 0-2.2 7.5-4.4 11.5 0 0-2.8 5.8-9.2 3.4 0 0-3.8-1.6-3.8-4.4 0 0-.2-2.5 2-2.7 0 0 2.3-.1 2.2 1.8 0 0 .1 2-2.3 1.6 0 0-.9-.2-.7-1 0 0 .1-.8 1.1-.5 0 0-.3-.2-.8 0 0 0-.3 0-.4.7 0 0 0 .4.5.7l1.1.2s.6 1.3 2.1 1.7a5 5 0 004.7-.8 7.3 7.3 0 002-2.8c.3-.4 2.1-4.6 3.6-9 0 0 1.2-4 2.2-6l.3-.7z"/>
+  <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width=".4" d="M401.6 290.5s1.3-.1 1.3 1c0 0 0 1.7-2.1 1.3 0 0-2-.4-1.3-2.7 0 0 .5-1.6 2.4-1.3 0 0 1.8 0 2.7 2.6 0 0 .6 2.1-.5 4-1.2 2-4.2 3.3-5.6 4 0 0-5.9 2.2-7.6 3.5 0 0-2.6 2-1.5 3.8 0 0 .5.7 1.2.7 0 0 .7 0 .9-.7 0 0-.1.5-.5.6 0 0-.6.3-1.2-.2 0 0-.6-.6 0-1.5 0 0 .6-1.2 2.2-.5 0 0 1.4.7.8 2.2 0 0-.5 1.4-2.2 1.4 0 0-1.3 0-2-1-1.4-1.3-1.5-3.9-.3-5.2 0 0 1-1.5 3.2-2.4l6-2.4a11 11 0 004.3-2.7s1-1 1.2-2.8c0 0 .2-1.3-.5-1.6h-.9z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".4" d="M401.7 290.5s1.5-.2 2.4 1.5a8 8 0 00.6 1.7m.4-6s-1.4.2-.7 2.2c.7 1.9 2 2.5 2.4 2.8"/>
+  <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width=".4" d="M377.2 232.2s0 .5.6.6c0 0 .6.2 1-.5v-.3c0-.3.2-1.3-1-2.2 0 0-1.7-1.4-5 .3 0 0-2.8 1.3-4.6 2.4l-5.3 2.8s-2.2 1-5.4 1.2c0 0-4.4.3-6.3-2.8 0 0-1.4-2.3 0-3.8 0 0 .6-.7 1.6-.6.4 0 .8.2 1.2.7 0 0 .7 1 0 1.8 0 0-1.1.6-1.5-.7 0 0 0-.1 0 0 0 0-.3 1.1.3 2 0 0 2.6 4 10-.2l9.5-5.4s4.9-2.5 7.8 1.4c0 0 2.3 3.2-.7 5.3 0 0-2.2 1.4-3.6-.8 0 0-1.2-2 .6-3 0 0 1.6-.7 2.3.9.6 1.6-1.3 2-1.4.9 0 0 0-.3-.1 0zm-23.6 36.7c4.2-2.4 5.2-7.8 5.2-7.8 1-5.3-1-9.6-1-9.6-2.8-5.8-7.5-6.8-7.5-6.8s4.6 3.2 5.9 7.5c0 0 1 3.6.4 7.2s-.4 2.7-1.2 5.5l-1.8 4z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".4" d="M375 227.9s4-.2 3.8 4"/>
+  <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width=".4" d="M348.9 271.6c6.9-2 8.8-9.5 8.8-9.5a17 17 0 00-.9-10.5c-3.2-7.4-8.5-7.4-8.5-7.4-2.7 0-3 2.3-3 2.3-.3 1.6.9 2.2.9 2.2 1.8 1 3-.4 3-.4.8-1 .2-1.9.2-1.9-.5-.6-1.4-.3-1.4-.3-.7.2-.6 1-.6 1v.1c-.1 0 0 0 0 0s-.2-1.1.8-1.2c0 0 2.1-.5 4.5 2.6 0 0 3.3 4 3.2 9.4 0 0 .5 10-10 12.5 0 0 1.2 1.6 3.2 7.5 0 0 2.2 7.5 4.4 11.5 0 0 2.8 5.8 9.2 3.4 0 0 3.8-1.6 3.8-4.4 0 0 .2-2.5-2-2.7 0 0-2.3-.1-2.2 1.8 0 0-.1 2 2.3 1.6 0 0 .9-.2.7-1 0 0-.1-.8-1.1-.5 0 0 .3-.2.8 0 0 0 .3 0 .4.7 0 0 0 .4-.5.7l-1.1.2s-.6 1.3-2.1 1.7a5 5 0 01-4.7-.8c-1.1-.9-1.8-2.4-2-2.8a76 76 0 01-3.5-9s-1.3-4-2.3-6l-.3-.7z"/>
+  <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width=".4" d="M368.4 290.5s-1.3-.1-1.3 1c0 0 0 1.7 2.1 1.3 0 0 2-.4 1.3-2.7 0 0-.5-1.6-2.4-1.3 0 0-1.8 0-2.6 2.6 0 0-.7 2.1.4 4 1.2 2 4.2 3.3 5.6 4 0 0 5.9 2.2 7.6 3.5 0 0 2.6 2 1.5 3.8 0 0-.5.7-1.2.7 0 0-.7 0-.9-.7 0 0 .1.5.5.6 0 0 .6.3 1.2-.2 0 0 .6-.6 0-1.5 0 0-.6-1.2-2.2-.5 0 0-1.4.7-.8 2.2 0 0 .5 1.4 2.2 1.4 0 0 1.3 0 2-1 1.4-1.3 1.5-3.9.3-5.2 0 0-1-1.5-3.2-2.4l-6-2.4a11 11 0 01-4.3-2.7s-1-1-1.2-2.8c0 0-.3-1.3.5-1.6h.9z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".4" d="M368.3 290.5s-1.5-.2-2.4 1.5c0 0-.5 1-.6 1.7m-.4-6s1.4.2.7 2.2c-.7 1.9-2 2.5-2.4 2.8m18.3-61s3.5-2.3 7 .1"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".3" d="M361.9 252.8s.5-2-1.7-5.4c0 0-1.5-3-2.2-5m5-2.1l1.6 4.4 1.9 4.5"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".3" d="M363.6 254.9s1.3 1.4 1.1 3.7m-5.5-5.2s1.5.7 1.4 4.5c0 0-.2 2.8 2 4.2m-3.6 1s4.5-.6 4.8 2.2c0 0 0 2.7 1.6 3 0 0 2.3.2 2.8 2.3m-7.7-4.5s.8 1.2 1.5 1.7m4.2-4.6s1.2 1.7 1.4 2.7m3.6-23.5s1 1.4 2 2m2.2 6.5s2.2 1 1.8 6.7c0 0-.2 3.3.7 5"/>
+  <path fill="#784421" stroke="#000" stroke-width=".3" d="M364.9 247l.1.6s4 .1 6.2-2.6l-.2-.5s-3.6-.2-6.1 2.5z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".3" d="M379.3 268.5s13.8-4.1 19.2-6.5"/>
+  <path fill="#784421" stroke="#000" stroke-width=".2" d="M377.6 242.5l6.9-2.6.2.5-6.9 2.6z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".3" d="M378.4 242.8l4.5 22.2m-3.7-22.5l5.2 22.1m-4.3-22.5l5.7 22m-3.5-22.8l7.8 16.5m-6.8-17l8.3 16.5m-7.5-16.7l9 16.3m-10.5 8.3l3.5-1.1m-6.1-1s10.3-3 18-6.2m-18.2 7.2s13-3.4 18.3-6m-14.3 16.7l.7 2 1.9-.6-.7-2m3.4-1l.7 2.1 1.8-.6-.6-2m-10.8-11.8l-.1-2.8 17-5.2 1 2.4m-10.8.6l1 2.5m5-4.3l1.1 2.3m.3-2.8l1 2.3m.4-2.7l1 2.4m0-2.7l2-1 .8 2m-1.8-1.5l1 2.1"/>
+  <path fill="none" stroke="#00247d" stroke-miterlimit="10" stroke-width=".4" d="M355.7 285s-3.4-3.5 0-6.8c0 0-3.7-1.8-3.1-4.6m9 14s-3.4.5-2.4-6.3l-2 4.1a3 3 0 001.4 3.6c.6.3 3.7 1.2 4.7-.9m-5.5-10.8s-1.5 1.3-.4 3.7m1.8-3.4s.2 2.3 1.3 3.6m-.3-4.5s0 2.7 2 4.4m-1-5.3s0 3 2.3 4.9m9-.5s1.1-2.5 3.5-2.4c0 0-1.1.6-1.1 1.8 0 0-.1 1.9 2 2 0 0 1.6.3 2.4-.6"/>
+  <path fill="none" stroke="#00247d" stroke-miterlimit="10" stroke-width=".4" d="M378.2 291.7s-6-2.8-5.3-6.8c0 0 .2-2.5 2.6-3.6m-1.3 2.5s-.5 1.7.7 3m.7-4.2s-.7 2 .5 3.3m1-4.2s-1 1.6 0 3m-5.5 7.4s3.2 2.8 5.8 2.8m-6.8-1.9s3 2.5 5 2.8m-6.2-2.1s3.8 3.3 6.1 3.5m9.2 3s-3.7 2-.8 4.2m-1.5-6.3l6-3m-4.5 4.1s6-3.7 7.8-4.5m-4.7 4.8s5.1-3.5 8-5m-4.6 4.8s3.6-2.8 7-4.8m1.2-3.5s-1.7-2.5-7.5 0c0 0 2.1-1.9 6.3-3.4m5.8-11s.5 2.1 0 3.4"/>
+  <path fill="none" stroke="#00247d" stroke-miterlimit="10" stroke-width=".4" d="M393.9 286.7s1.2-1.8 4.2-2.6c0 0 .8 2 3.2 1.6 0 0 3.6-.7 2.5-4.6 0 0-.7-3-4.8-3.3m12-4.8s4.2.7 4.2 4c0 0 .3 5.1-5 6.1m4.4-8s1.1-2.5 3.7-3.5m-3.1-1.5s1 1.8 1.9 2m-2.5-.6s1 1.4 1.4 1.6m-1.8-.3l1 1.1M393 253.2s.8-1.3 2.8-.7M404 263s1.3-5.3 5.7-3.3m-1.8-.5s.5-2.4-.6-3.6m-2.4 3.5s.6 1 0 1.8"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".3" d="M413.8 313.1s5-2.3 3.4-6.1c0 0-.4-1.3-1.5-1.2 0 0-2 0-1.6 2.6 0 0 .6 2.5-.3 4.7z"/>
+  <path fill="#fff" d="M415.6 310.8s1.1-1 1-2.9v-.5s.3 0 .3.4c0 0 .3 2-1 3.1 0 0 0 .1-.2 0h-.1z"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".3" d="M420.9 309.6s3.5-2.2 1.6-5.8c0 0-.6-1.1-1.6-.9 0 0-2.2.7-.5 3.7 0 0 .9 2 .5 3z"/>
+  <path fill="#fff" d="M421.8 304.6s-.2-.2-.1-.3l.3.1s1 1.2.2 3c0 0 0 .3-.2.2 0 0-.2 0 0-.3 0 0 .7-1.5-.2-2.7z"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".3" d="M410.4 312.1s-3.9-1-3.2-5c0 0 .4-1.7 2-1.5 0 0 2 .5.8 3 0 0-.8 2 .4 3.5z"/>
+  <path fill="#fff" d="M409 307.3s-.2-.2 0-.2c0 0 .1-.1.2.1 0 0 .4.7 0 1.6 0 0-.2.6 0 1.2 0 0 0 .2-.2.2l-.2-.2s-.2-.6.2-1.2c0 0 .4-1 0-1.5z"/>
+  <path d="M413.2 304.5s2.2-1.2 4 .2c0 0-.1-.8-1.5-1.1 0 0-.8-2.1-2.9-2l2 2s-1.2 0-1.6 1zm1.7-5.8s1.5 1.1 2 1.9c0 0 .7-.8 1.5-1.3 0 0-1 0-1.4.3 0 0-.8-.7-2.1-.9z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".4" d="M406.2 303.4s-.2-.5.2-1c0 0 .3-.5.2-1m15.6-32.3s2.4-.2 2.7-2m4.1-1.2s-.8 0-1.5.8c0 0-.6.8-1.4.7"/>
+  <path d="M418.8 262.2s1.2 0 1.8-.5c0 0 .7-.5 1.2.3 0 0 .6 1-.6 1.5 0 0-1.4.8.9 2.3 0 0-2.8-1-1.7-2.4 0 0 1.2-.9.8-1.2 0 0-.1-.2-.6 0-.5.4-1.4.3-1.8 0z"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".3" d="M420.4 233s.6-.8.3-3c-.2-2.3 1.8-2.5 2.5-1.9 0 0 .8.7 0 2.1a5.7 5.7 0 01-2.8 2.8z"/>
+  <path fill="#fff" d="M421.1 231.3s.8-.8.4-2.5l.1-.2s.2 0 .2.2c0 0 .4 1.7-.4 2.7 0 0-.1.2-.3 0v-.2z"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".3" d="M419.8 232.1s0-.9-1.6-2.4-.3-3 .7-3c0 0 1 0 1.3 1.6.2.9.4 2-.4 3.8z"/>
+  <path fill="#fff" d="M419.6 230.2s0-1.1-1.4-2.3c0 0-.1-.1 0-.2 0 0 0-.1.2 0 0 0 1.5 1.2 1.5 2.5 0 0 0 .2-.2.2l-.1-.2z"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".3" d="M417.7 231.5s-.4-.8-2.3-1.5c-2-.6-1.4-2.3-.6-2.7 0 0 .8-.3 1.7.8.5.6 1.1 1.6 1.2 3.4z"/>
+  <path fill="#fff" d="M416.8 230.1s-.4-1-2.2-1.4c0 0-.1-.1 0-.2 0 0 0-.2.1-.1 0 0 2 .4 2.5 1.6l-.1.2h-.3z"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".3" d="M418.9 232.2s-1 .3-3-.8c-2-1-3 .8-2.6 1.7 0 0 .4 1 2 .8 1 0 2.2-.3 3.6-1.7z"/>
+  <path fill="#fff" d="M414.1 232.8s1 .6 2.6 0h.2v.3s-1.9.7-3 0c0 0-.2 0 0-.2 0 0 0-.1.2 0z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".4" d="M415.9 225.7s1 .5.8 1.7"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".4" d="M420.4 225.8s.4 1.3 0 2"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".3" d="M349.4 233s-.5-.8-.3-3c.3-2.3-1.7-2.5-2.4-1.9 0 0-.8.7 0 2.1a5.6 5.6 0 002.8 2.8z"/>
+  <path fill="#fff" d="M348.7 231.3s-.7-.8-.4-2.5v-.2s-.2 0-.2.2c0 0-.4 1.7.4 2.7 0 0 .1.2.2 0 0 0 .1 0 0-.2z"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".3" d="M350 232.1s.1-.9 1.7-2.4c1.5-1.5.3-3-.7-3 0 0-1 0-1.3 1.6-.2.9-.4 2 .4 3.8z"/>
+  <path fill="#fff" d="M350.3 230.2s0-1.1 1.4-2.3c0 0 .1-.1 0-.2 0 0 0-.1-.2 0 0 0-1.5 1.2-1.6 2.5 0 0 0 .2.2.2 0 0 .2 0 .2-.2z"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".3" d="M352.2 231.5s.4-.8 2.3-1.5c2-.6 1.4-2.3.6-2.7 0 0-.8-.3-1.7.8a5.2 5.2 0 00-1.2 3.4z"/>
+  <path fill="#fff" d="M353 230.1s.5-1 2.2-1.4l.2-.2s0-.2-.2-.1c0 0-2 .4-2.5 1.6v.2h.3z"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".3" d="M351 232.2s.9.3 3-.8c2-1 2.9.8 2.5 1.7 0 0-.3 1-2 .8a5.6 5.6 0 01-3.5-1.7z"/>
+  <path fill="#fff" d="M355.8 232.8s-1 .6-2.7 0h-.2l.1.3s1.8.7 3 0c0 0 .2 0 0-.2 0 0 0-.1-.2 0z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".4" d="M354 225.7s-1 .5-.8 1.7"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".4" d="M349.4 225.8s-.3 1.3 0 2"/>
+  <path d="M394.1 214.2s.7 1.8.4 3.5c-.3 1.5 0 1.9.6 2.2.5.3 1.6-.2 1.7-1.4 0 0 1.3 2.5-1.2 4.2 0 0-1.8 1.2-3.4-.3-.5-.6-.7-2-.5-3.3 0 0 .4-1.9-.2-3.7 0 0 1 1 .7 3.3 0 0-.5 3.9 2.4 3.7 0 0 2 0 2-2.5 0 0-.7 1-1.6.6a1.7 1.7 0 01-1.2-1.8c.1-1 .4-3 .3-4.6zm-3.3 6.4s-.2 3.1-3 3.9c0 0 .4-.6-.2-2.1 0 0-.7-1-.6-2.3 0 0-.9.7.1 2.5a3 3 0 010 2.6c-.3 0 4.6-.7 3.7-4.6zm-3.7-3s-.7-.9-.7-2.6c0-1.8-.4-2.3-.6-2.5 0 0 .3 1.6.2 2.5 0 1 0 1.5.2 2 0 0-1.5.2-2.5-2s-1.9-2-2.3-2c0 0 .5 0 1.6 2 1 2 1.4 2.4 4.1 2.5zm-7.2-4.8s.9 2.2 1 3.3c0 0-2.2-.7-2.7-2.5 0 0-2.2.8-1.4 3.3 0 0-2-.6-2.8-2.2 0 0 1 .8 2 1.1 0 0 0-2 2.5-2.8 0 0 .4 1.9 1.7 2.3 0 0 0-1.2-.3-2.5zm3.4-3.6s.7 1 2.2 1c.7.1 1.4 0 2.2-1 0 0-.1 1.8-2.2 1.8 0 0-2.2.1-2.2-1.8zm-9 12.4l1.3 1.3s.7.8 1.4-.2c0 0 .8-1.5 1.9-1.5 0 0-.8.5-1.6 2 0 0-.2.5-.8.6-.3 0-.7 0-1.2-.5 0 0-.5-.6-1-1.7zm11.2-19.7c-2.2 0-.4 1.7-.4 1.7 0 2.7-2 3.5-3.5 2.7-1.5-.8-.3-2.7-.3-2.7s-1.7 1-.6 2.6c1 1.6 3.8.9 4.8-.5 1 1.4 3.8 2.1 4.8.5 1-1.5-.6-2.6-.6-2.6s1.2 2-.3 2.7c-1.5.8-3.6 0-3.6-2.7 0 0 1.9-1.7-.3-1.7zm1.3-2.9s.8 1.3.6 3.3c0 0 .7-2-.6-3.3zm-6.7 3s-.2-1.4-1.5-1.5c0 0 1.1.9 1.5 1.6zm10.8 0s.1-1.4 1.5-1.5c0 0-1.1.9-1.5 1.6zm-13 2.2s1.1.4 1.8-.4l-1.8.4zm-3.6-8.7s1.3-.1 2.6 1.8c0 0-1.3.6-1.6 1 0 0 0-.6.6-1.1 0 0-.2-1-1.5-1.7zm21.5 0s-1.3-.1-2.6 1.8c0 0 1.3.6 1.6 1 0 0 0-.6-.6-1.1 0 0 .2-1 1.6-1.7zm-9.9 1.4s1.1.3 2.6-.5c0 0 1.7-.9 2.9 0 0 0-1-.4-2.9.5 0 0-1.9 1-2.6 0z"/>
+  <path fill="#fff" d="M387.1 198s1-1.6 4-1.3c0 0-.8 2.4-4 1.4z"/>
+  <ellipse cx="389.2" cy="197.6" fill="#784421" rx=".6" ry=".8"/>
+  <ellipse cx="389.2" cy="197.6" rx=".3" ry=".5"/>
+  <path d="M380.7 194.4s1.9.1 3 .9c0 0 1.2.7 2.6-.4 0 0 1.5-.8 2.5-2 0 0-2.3 1.6-3.2 1.8 0 0-.8-.6-1-1.5 0 0 0-.6 1.3-1.8 0 0-1.7.5-2 2 0 0 .3.8 1 1.4 0 0-.4.2-1.2-.3 0 0-1.7-.6-3 0zm4.8 11.4c-1.6 1.4 0 1.2 0 1.2s1.6.2 0-1.2zm-1-8.9s-1.1.3-2.5-.5c0 0-1.8-.9-3 0 0 0 1-.4 3 .5 0 0 1.8 1 2.5 0z"/>
+  <path fill="#fff" d="M383.3 198s-1-1.6-4-1.3c0 0 .9 2.4 4 1.4z"/>
+  <ellipse cx="381.3" cy="197.6" fill="#784421" rx=".6" ry=".8"/>
+  <ellipse cx="381.3" cy="197.6" rx=".3" ry=".5"/>
+  <path fill="none" stroke="#000" d="M443.3 182.6V291c0 29-58 38.4-58 38.4s-57.8-9.4-57.8-38.4V182.6h115.8z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bn.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bn.svg
new file mode 100644
index 0000000..2e93aea
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bn.svg
@@ -0,0 +1,36 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-bn" viewBox="0 0 512 512">
+  <path fill="#f7e017" d="M0 0h512v512H0z"/>
+  <path fill="#fff" d="M0 35.6V263l512 106.7v-121z"/>
+  <path d="M0 156.4v106.7l512 213.3V369.8z"/>
+  <g fill="#cf1126" transform="translate(-256) scale(.71111)">
+    <path d="M695.7 569.7a117.2 117.2 0 01-49.4-17.2c-2.4-1.6-4.6-3-5-3-.4 0-.6 1.9-.6 4.1 0 6.4-2.6 9.6-9 11.3-6.2 1.6-15.6-1.6-23.2-8a68.3 68.3 0 00-24.7-13.5 39.9 39.9 0 00-28 3.6 8.7 8.7 0 01-2.8 1.3c-1.1 0-1-6.9.2-9 1.5-3 5.1-5.8 9.4-7.3 2.2-.8 4-1.8 4-2.3 0-.4-.8-2-1.7-3.6-2.9-5.1-1.7-10 3.4-13.9 5.2-4 14-4.6 21.7-1.7a32 32 0 004 1.4c1 0 .4-1.5-2.4-5.6-3.2-4.7-3.9-7-3.5-12.7a14.7 14.7 0 0113.5-13.5c5.8-.4 9.4 1.6 18 9.7a144 144 0 0086 41.6c8.3 1 24.8.5 34.5-1a156 156 0 0081.8-40.8c6.4-6 9.4-7.6 14.7-7.6 4.5 0 7.7 1.4 11 5 3 3.3 4 6.4 3.6 11.5-.2 3.2-.7 4.7-2.6 7.9-2.8 4.5-2.3 5 3.2 2.8 7.6-3 16.9-1.6 21.9 3.2 4.4 4.2 4.8 8.4 1.4 14-1.3 2.1-2.3 4-2.3 4.4 0 .6 1 .8 5.5 1.6 6 1 9.5 5.4 9.5 12.2 0 2-.3 3.7-.6 3.7s-2.6-.9-5-1.9c-7-2.9-11-3.6-19.2-3.5-6.2 0-8.3.3-12.6 1.7a57.5 57.5 0 00-19.5 11.5c-6.4 5.7-10.4 7.5-16.6 7.4-5.8 0-9.7-1.7-11.8-5-1.1-1.8-1.3-2.8-1-6.8.2-2.6.1-4.7 0-4.7-.3 0-2.5 1.4-5 3.1A80.5 80.5 0 01778 560a181.6 181.6 0 01-82.3 9.7z"/>
+    <path d="M706.3 525.2a136.4 136.4 0 01-97.9-55.7c-24.4-33.2-32-77.1-24.6-117.2 4-18.3 12-36.6 25.5-49.6a114.6 114.6 0 00-8.7 74.3c9 49.8 51 91.9 101.3 99.2 20 5.7 40.5-.4 59.5-6.5 42-14.8 74-54.6 77.8-99.1 3.3-24-.3-49.1-11.2-71 6.2 3.3 14 16.2 18.6 24.8 16 31 16.7 68.1 7.3 101.2-12.8 42.1-45 79-87.5 92.4a165.7 165.7 0 01-60 7.2z"/>
+    <g id="a">
+      <path d="M512 469.9c-2.5-.4-5.3 2.1-4.3 4.7 1.8 2.6 5 4 7.8 5.2a54.2 54.2 0 0023.2 3.6 49.6 49.6 0 0017-3c3-1 6.8-2 8-5.4 1.3-2.1-1-4.3-3.1-3.9-3 .7-6 2-9 2.9a57.7 57.7 0 01-20.3 2 54 54 0 01-14.4-4.2c-1.6-.7-3.1-1.7-4.9-1.9z"/>
+      <path d="M514.8 459.5c-2.5-.4-4.7 2.6-3.7 5 2 2.8 5.3 4.3 8.4 5.6a42.4 42.4 0 0017 2.9h1.5a37.6 37.6 0 0014.4-2.8c2.7-1.1 6.1-2.2 7.3-5.2.9-1.7.2-4.1-2-4.3-1.8 0-3.5 1.2-5.3 1.7a44.3 44.3 0 01-20.6 3.2c-4.4-.5-8.5-2.1-12.5-4-1.5-.7-2.8-1.8-4.5-2z"/>
+      <path d="M518.3 449.6c-2.2-.3-3.7 2.2-3.3 4.1.3 1.8 1.8 3 3.1 4a30 30 0 0018.6 5.3h1.6a28 28 0 0012-2.8c2.5-1 5.4-2.3 6.3-5.2.4-1.3.6-3.2-.9-4-1.6-.8-3.1.5-4.5 1a34 34 0 01-15.5 3.9 27 27 0 01-13.1-4c-1.5-.7-2.7-2-4.3-2.3z"/>
+      <path d="M481.5 302.7c-3.2 3.3-.7 9.3-1 13.5 1.8 13.2 3.9 26.5 8.8 39 6 12 18.8 18.5 26.5 29.2 2.8 5.1 1.8 11.3 2.4 17 .4 15.3.3 30.7 0 46 7 3.6 14.5 7 22.5 5.7 4.7-1.1 13.5-1.8 14.5-6.5l-1-79.5c-2.7-8.1-11-12.3-17.1-17.5a155.5 155.5 0 01-14.2-16.1c-2.6-4.5-12.9-6-9.2 1.6 2.2 6.7 7.7 11.6 9.1 18.6.3 3.9 5 11 1 13.2a24.5 24.5 0 00-10.7-10c-4.4-3.3-11.7-4.7-13.3-10.5a42.9 42.9 0 00-11-22c1.5-7.4 0-16.7-6.4-21.5l-.9-.2z"/>
+      <path d="M491.4 304.2c-3 .5-2.8 4.2-1.5 6.2a27.2 27.2 0 011.1 13.4 44.1 44.1 0 0110.6 21.7c0 3 3.2 4 5.3 5.5 4.9 3.1 10.3 5.4 14.7 9.3.9 1 1.6 2 1 0-.7-2.6-1-5.4-3-7.3-2.8-3-6.2-5.6-10.2-6.4-.3-4.2-2.3-8-4.1-11.6-2-3.5-4.1-7.2-7.5-9.4 0-6.1 0-12.5-2.6-18.2-.8-1.4-2-3.1-3.8-3.2z"/>
+      <path d="M499.7 306.6c-2 .6-1.6 3.2-1 4.7a54 54 0 011 13.2c3.9 3 6.2 7.4 8.4 11.6 1.4 2.8 2.6 5.8 3.1 8.9 3.1 1 5.8 3 8.2 5-1-2.8-3-5-4.5-7.7s-3-5.6-3.7-8.7c-3-3.1-4.6-7.6-4-12 .2-4.7-1.3-9.6-4.5-13.2-.8-.8-1.8-1.7-3-1.8z"/>
+      <path d="M509.2 308c-1.2.2-1.8 1.2-2.4 2.1-.3.9.8 1.8 1 2.8a21.8 21.8 0 011.4 10.4c-.1 2.5.8 5 2 7a3.9 3.9 0 013.5-2.8c.5 0 1.4.2 1-.7-.4-4.8-1.1-9.6-2.8-14a9.6 9.6 0 00-2.8-4.5c-.2-.2-.6-.4-1-.3z"/>
+    </g>
+    <use width="100%" height="100%" transform="matrix(-1 0 0 1 1440 0)" xlink:href="#a"/>
+    <path d="M715.7 476a35.6 35.6 0 01-29.9-24c.3-2.2 3 1.2 4.3 1.5a19 19 0 008 2.6c3.5 1.5 5.7 5 9.1 6.9 1.6 1.2 7.2 3.6 6.1-.3-1.3-2-2.2-4.6-1-7 1.8-4.1 4.7-7.7 7.7-11.2 2.1-.7 3.6 3.6 5.1 5 2.1 3.3 4.7 7.3 3.4 11.3-1.2 1.5-2 6 1.3 4.6 4-1.8 7.3-4.8 10.6-7.6 3-2 6.7-2.1 9.7-4 1.5-.3 4.4-3.1 5-1.6a44.9 44.9 0 01-7.4 12.3 32.1 32.1 0 01-18.8 10.9c-4.4.8-8.8 1-13.2.6z"/>
+    <path d="M731.5 460.2c.3-2.7-.3-5.4-1.7-8-2.1-4.2-5-8-8-11.9-2.8-1.6-4.3 3.7-6.1 5.2-2.9 4.3-6.5 8.7-6.7 14-1.6 2.5-4.6-2-5.9-3.5a19 19 0 01-4-12 50.8 50.8 0 013.6-20.6c2-5.6 5.1-11 4.8-17 .2-4.7-.7-9.7-4.4-12.8-3.6-2.8 2.3-3.4 4.1-2 3.2.3 4.9 5.5 7.8 4.2 1.1-2.7 1.4-6 3.8-8.1 2.3-3.2 4.7 1.3 5.5 3.5 1.7 1.8 0 6.5 2.6 6.6 3.2-2.3 5.5-6 9.6-6.9 1.7-1 4.5 0 2.3 1.8-3 2.9-5.6 6.4-6.2 10.7-.9 5.3.4 10.7 2.7 15.4 4.5 9.4 8 20 5.7 30.5-1 4.6-4.2 8.6-8 11.3-.5.3-1.3.3-1.5-.4z"/>
+    <path d="M726.7 389.6a21.2 21.2 0 00-5.6-7c-2.4 0-3.9 3-5.5 4.6-1.1 2.1-2.5 5.6-5.3 2.9-4.5-2.6-5.2-8.3-5.2-13-.3-7.6 2.8-14.7 5.5-21.6 1.7-4.3 1.3-9.2.2-13.6-1.3-5-5.4-8.6-8.5-12.6.2-1.5 4.2-.7 5.7-.4 3.4.9 5.4 3.8 7.9 6 1.8-.6 1-4.2 1.9-5.9 0-2.4 3.2-5.5 4.5-2.1 2 2.2 0 6.5 2.5 7.8 2.4-.9 3.6-3.5 5.8-4.7a8 8 0 017.8-.5c.9 2.2-2.6 4-3.6 6a20.4 20.4 0 00-3.8 18c1.4 5 3.8 9.5 4.7 14.5a40.1 40.1 0 01-.5 17.2c-.9 3.4-3.8 5.6-6.8 7-.8-.7-1.2-1.7-1.7-2.6z"/>
+    <path d="M711.6 326.9c-3.4-2.5-4.5-4.8-4.5-9.5 0-2.3.5-3.6 2-5.8 2.4-3.2 2-4.2-1.3-3.3-5.3 1.5-7.8.2-8-4.3 0-2.2.4-3.1 3.3-6.7 2.4-2.8 3.3-4.3 2.8-4.8-.5-.4-3.3 2-9 7.8a124 124 0 01-11.4 10.6c-9.8 6.6-19.2 7.6-23.5 2.5-2.2-2.6-2.1-4 .4-5.6a27.4 27.4 0 004.4-3.7 86 86 0 0116.1-11.6c3.6-1.8 4.4-3 2.1-3-3 0-12.5 6.2-19.8 12.8-2.1 2-5.2 4.2-6.8 5a25.4 25.4 0 01-13.9 1c-2.2-.7-6.3-4.5-6.3-5.9 0-.3 1-1.1 2-1.8a30 30 0 004.6-3.2c5.8-5 16.8-10.3 25.5-12.2 2.8-.5 1.7-2-1.4-1.8a56 56 0 00-25 11.7c-8.3 6.9-20.8 6.2-24.8-1.3-.7-1.3-1.2-2.5-1-2.7a92.8 92.8 0 0020.4-7.8 51.5 51.5 0 0118.1-6.5c2.8-.5 3-1.9.3-2.2-3.6-.4-9 1.4-18.5 6-12.3 6.1-15.8 7.2-22.2 6.8-6-.4-9.3-1.9-14-6.4-3.2-3-7.6-10.5-6.8-11.4a63.5 63.5 0 0015.8 1.3c8.3 0 10.6-.2 15-1.5a84.3 84.3 0 0024-12.1 57.5 57.5 0 0136.8-13.6c12.4 0 20.2 2.8 27.2 9.9 2.4 2.4 4.4 3.9 4.7 3.6.3-.3.6-4.5.7-9.3 0 0 3.7-.4 4.5.7 0 7.7 0 8.4 1.2 8.4.7 0 1.5-.8 2-2 1-2.5 5-6 9.2-8.2 9-4.5 24.7-4.7 37.3-.3a62.4 62.4 0 0116.7 9.5 90.2 90.2 0 0024 12c6.8 2 19 2.5 25.1 1a61.9 61.9 0 015.4-1c2.3 0-1.6 7.6-6.2 12.1-8.4 8.2-19.3 8.1-34.6-.1-9.6-5.2-21-8-21-5.2 0 .6.6 1 1.5 1 3.3 0 9.7 2.2 18.7 6.5a53.7 53.7 0 0018.3 6.5c2.3 0 2.4 1.5.2 4.7-2.3 3.4-6.2 5-11.7 5-5.3 0-8.3-1.1-13-5-8-6.6-27.6-14-26.9-10 .2.7 1.1 1.2 3.2 1.5a56 56 0 0123.1 11l5.9 4.3c1.1.6 1.1.8.2 2.5-1.4 2.8-5.2 4.9-9.2 5.3-5.2.6-9.8-1-14.5-5-10-8.3-19.3-14.3-22.3-14.3-2.5 0-1.4 1.4 3 3.7a79.7 79.7 0 0115.8 11c2 1.9 4.3 3.7 5 4.1 1.9 1 1.8 2.4-.2 5s-5.4 3.8-9.7 3.3c-8.6-.9-15.4-5-26-16a70.7 70.7 0 00-8.2-7.8c-1.4 0-.5 1.9 2.2 5 3.4 3.7 4 5.8 2.7 9-1.1 2.6-3 3.3-6.8 2.2-4-1-4.6 0-2 3.1 3.8 4.9 3.3 10.7-1.5 14.8a12 12 0 01-3.4 2.3c-.4 0-1.4-1-2.3-2.4-3-4.6-5.7-4.6-8.7 0a53.6 53.6 0 01-2 3 113.1 113.1 0 01-3-2.2z"/>
+    <path d="M726.7 233l-5.2 4-4.6-3.4v27.8h9.8z"/>
+    <path d="M694.9 204.3a88.3 88.3 0 01-9 32.3l11.1-10.3 7.7 9.2 8.4-9.4 8.5 8 8.2-8.3 8.5 10 7.4-8.2 12.6 9c-4.6-10-10.7-18.6-10-32.8-12.1 9-41 10.6-53.4.4z"/>
+    <path d="M717 197.6c-4.5 0-9.2.1-13.4 1a20.1 20.1 0 00-7.8 3c.3 8.6 41 12.1 51.9.2a20 20 0 00-8.2-3.3c-4-.8-8.6-.8-12.9-1v7.1H717v-7z"/>
+    <path d="M724.9 154h-6.3v49.4h6.4z"/>
+    <path d="M724.9 155.2l-2.4 23.7 24.3 11.9-12.3-16.5 16.8-5.5zm-2.7-6.1c-3.7 0-6.4 1.4-6.4 3s2.7 3 6.4 3 6.4-1.4 6.4-3-2.7-3-6.4-3z"/>
+  </g>
+  <g fill="#f7e017">
+    <path d="M249.6 401c2.9-1 4.5-2.7 5.6-6a18 18 0 001-3.9c-.3-1-1.6-1-2.9.2-1 .7-1 1.1-.8 2.7.7 4-.7 5-8.3 5.8-.7 0-2.9 0-4.8-.3-3.6-.4-4.8 0-3.5 1a7 7 0 002.2 1c2 .5 9.4.2 11.5-.6zm15.7-.7c.4-.4 1.8-1 3.2-1.5 1.8-.6 2.8-1.2 3.5-2.4 2.2-3.3 1.8-6.1-1.4-10-1.8-2-2.6-2-4 .4-1.2 2-1.2 2 .6 2.5 1 .2 1.8 1 2.3 1.8 1.9 3.3 1.3 5.3-1.5 5.3-2.6 0-3.3.4-4 2a8.9 8.9 0 00-.6 2.1c0 .7 1 .6 1.9-.2zm-5.2-3.8c.5-1.3.7-3.6.6-8.4 0-3.7-.1-6.8-.3-7-.4-.3-2.5 1-2.8 1.9-.1.5.1 1.5.5 2.3.7 1.3.8 2.5.6 7.5-.3 6.3.1 7.3 1.4 3.7z"/>
+    <path d="M248.1 393.6c.3-1.2.6-3.6.7-5.4.2-1.7.5-4 .8-5 .8-2.4 0-3-2-1.6l-1.4 1 .3 3.5c.3 3.2-.2 9.1-1 11.4-.1.7.2.5 1-.4a9.4 9.4 0 001.6-3.6zm-10.7 1.7c2.6-2.2 2.3-6 2.9-9 0-2 1.3-4.4.4-6.1-2.4.4-4 2.7-2.7 5 .1 2.7 0 5.6-1.3 8-1.1 1.5-4.7 1-4.5-1.1.9-3.3-3-1.7-4.6-.8-1.2.8-3.7.9-2.8-1.2-.6-2.8-4.1-1-6-1-1.8 0-.2-3.7-2.8-3-4.8-.5-10.2 0-14.4-3-2.4-1.1-2-4-.8-6 1.6-2.6 2-5.9 4.4-7.9 2.4-2.3-2.2-1.3-3.3-.5-2.3 1.2-.2 4.5-2 6.3-1.2 2-2.7 4.5-5.2 4.2-3.8-.7-6-4.2-8.6-6.5-2.3-.5-1 3.7.2 4.6a23.3 23.3 0 007.9 3.8c2.8-.5 2.9 3.2 5.3 3.8 4.4 2 9.3 2.6 14 2.9 2 .1.9 3.5 3.4 2.8 1.4.4 4.5-.5 4.6 1.1-2 2.5 2 2.5 3.6 2 2-.3 4.4-1 5 1.6 1.6 1.8 4.6 1.5 6.5.5l.8-.5z"/>
+    <path d="M195 373.7c.7-1 1.9-3 2.6-4.5a17.3 17.3 0 012.1-3.7c1.3-1.4.6-2.2-1.5-1.7-1 .2-1.5.6-1.6 1.5-.6 3-1.7 6.1-2.7 7.5-1.8 2.6-1.8 2.7-1 2.7.3 0 1.2-.8 2-1.8zM168.2 357c-2 0-2 1.3-.1 2 .9.3 1.7 1 2.3 2.4 2 3.7 3 4.4 8 4.8l3.3.3.1 2c.1 1 .4 2 .6 2 .3 0 1.5-.6 2.8-1.2 2.3-1.2 4.6-4 4.6-5.7 0-1.1-2-2.4-3.6-2.4a7 7 0 00-3.4 1.5c-3.6 2.6-7.4 2-9.5-1.3-1.7-2.8-3.5-4.4-5.1-4.4zm17.4 7c1 0 1.2.7.7 2-.4 1-1.6 1-2 0-.3-1 .3-2 1.3-2zm134.9-4.4c-1.3 0-1.7.3-2.5 1.6-1.4 2-1.5 6.3-.2 7.8.7 1 .8 1 2.5.3 2.3-1 2.7-.9 2.6.3 0 3.2-4.5 9.2-9.2 12.5a8.5 8.5 0 00-2.5 2.1c-.4 1 1.4.7 3.5-.4 3-1.5 6.8-5.4 8.4-8.5 1.2-2.5 1.4-3.3 1.6-7.6 0-4 0-5.1-.7-6.5-.7-1.5-1-1.6-2.9-1.6h-.6zm.2 2.8c1 0 1.1.2 1.2 1.6.1 1.2 0 1.9-.7 2.5-1 .8-1 .8-1.8-.4-1-1.7-.4-3.7 1.3-3.7zm-21.6 30.3a16 16 0 008.2-7.7 20.6 20.6 0 001.3-3.3c0-.6-2-1.5-3.3-1.5s-1.4-.9-1-3.2c.6-2.3 0-5.1-1-5.1-.4 0-1 .5-1.4 1.1-.7 1-.7 1.5-.2 3 .7 2 .1 3.7-1.8 5-1 .7-1.5 1.5-1.5 2.2 0 .6.1 1.1.2 1.1l2.3-1.1 2-1.2 1.3 1c.6.5 1.2 1.4 1.2 1.9 0 2.5-7.2 6.8-12.2 7.2-2.6.2-3 0-4-.8-.7-.8-1-1.4-.8-2.3l.6-2.7c.5-2.2-.5-1.9-2.1.7-1.4 2-1.8 4.4-1 5.6.6 1 4.7 1.9 7.6 1.7 1.8-.1 3.7-.6 5.6-1.6zm27.7-15.5c2.6-2.6 3.8-5.8 3.8-10.7v-3.7l2.1-1c2.8-1.3 5.5-4 5.5-5.4 0-1.6-.7-1.5-1.9.2-.9 1.2-2 1.9-6.4 3.9-1.1.5-1.2.8-1.4 5.4-.3 5.3-1 7.2-4 10.9-1.8 2.1-1.9 2.4-.6 2.4.5 0 1.8-.8 3-2zm-28.5-3c.3-.7-1.2-1.2-1.8-.6-.3.3-.3.7-.1 1 .4.7 1.7.5 2-.3zm39.3-10.1c.3-.8-1.2-1.3-1.8-.7-.3.3-.3.8-.1 1 .4.7 1.7.5 2-.3zm-47.3-27.6c-1 .5-1.5 1.6-2.2 2.5-.5.3-.1.6.2 1 1.8 1.9 2.5 4.5 3.4 7 .8 2.8 1.9 5.9 1 8.9-.4 1.1-1.3 2.3-2.6 2-2.2-.2-4.3-.7-6.4-.7-2 0-3.5 1.8-5.4 1.6-1.3.1-1.2-2.5-2.4-1.8-.6 1.4-.3 2.9-.4 4.4.3.2.9 0 1.2 0h4c.2 1.4.1 3 1.1 4 1.4.5 2.9 0 4.1-.5 1.4-.6 1.6-2.3 2-3.5.4-1.4 2.2-1 3.3-1.6a6.1 6.1 0 004.1-6.1c-.1-4.1-1.7-8-2.9-11.8-.6-1.7-1-3.4-1.7-5.1 0-.1-.2-.3-.4-.2zm-6.4 23.3c1.4 0 2 1.7 1.8 2.9-.6 1.6-2.6.6-3-.6-.7-1-.2-2.4 1.2-2.3z"/>
+    <path d="M230.4 346.5a3.6 3.6 0 00-2.1.7c-3.8 2.7-4.8 5.8-2.2 7 1.9.9 1.4 2-1.6 3.5-4.2 2-8 1.8-15-1.1-1.8-.8-2.3-.5-1.9 1.1.4 1.6 1.9 2.4 5.4 3.3 3.9.8 8.5.6 11.5-.7a14.9 14.9 0 004.6-3.6l2.3-2.5 2.7.3c3.3.4 3.4.5 3.4 2 0 1.3 0 1.4 3.1 1.6l5 .3c1.4 0 2.2.3 2.6 1 .6.7 1 .8 6 .3 4.6-.4 5.6-.4 7.7.4 1.5.5 3.1.7 4.4.5 3.6-.4 8.5-3.3 9.2-5.5.1-.2 1.4-.7 2.9-1 3.6-.7 3.8-1.5.4-1.9a24.3 24.3 0 01-4.9-1.2 13 13 0 00-3.7-.9c-1.8 0-3.6 1.1-3.6 2.3 0 .8.3.9 2.5.7 2-.3 2.6-.2 3.6.7.8.6 1.2 1.2 1 1.4-.4.8-4.6 2.7-6.5 3a5 5 0 01-3.2-.4c-1.7-.8-4.1-1-4.6-.3-.1.4-.7.2-1.4-.5l-1-1-2.6 1c-2.6 1-3.5 1-3.5-.2 0-.6-.7-.6-4.5-.4-4.2.3-4.6.2-5.4-.6-.7-.8-.7-1.1-.2-2 .5-.7.5-1 0-1.5-.4-.4-1-.4-2.6 0-4.1 1.1-5.3.5-5.3-2.7 0-2-1.1-3.1-2.5-3.1zm-1 3c.2 0 .3 0 .6.4.4.3.6 1 .4 1.4-.3 1-2.1.9-2.5-.1-.1-.5 0-1 .6-1.4l.8-.4z"/>
+    <path d="M222 352.4c2.4-1.6 2.4-1.4 2.7-5.9.3-3 .3-3.3-.6-3.3-1.2 0-1.9 1.3-1.9 3.9 0 1.6-.2 2.4-1 3.3-2.2 2-7.4 1.1-8-1.5-.2-.9 0-1.7 1.1-3.2 2.3-3.2 1.8-4-1-1.6-2 1.7-2.3 1.7-1.9.3.3-1.3-.4-1.9-2-1.5-.7.2-1.1.7-1.3 1.7-.2 1-.7 1.5-1.4 1.6-1.3.4-3.4-.8-3.4-1.9 0-.7 3.2-4.6 7.3-9a19 19 0 002.9-3.3c0-.2-.9-.4-1.9-.4-1.5 0-1.8.2-1.8.9 0 .4-2.1 3.2-4.7 6-5.3 6-5.7 7.3-3 8.8a6.4 6.4 0 006.9-.2l1.7-1.2v2.2c0 2.7.5 3.6 2.7 4.8a8.5 8.5 0 008.5-.5zm111.3-36.9c-2 1.2-.5 3.7-.2 5.3-.8 2.2-3.6 2.8-5.7 3.3-3 .4-5.1 3-6.2 5.6-.6 1.7-2.1 4.3-3.7 1.7-1.4-1.4-4-2.5-5.6-.9-1.3 1.2-1.6 3-2.1 4.6-.7-1.2-1-3-2.6-3.4-2.5.3-1.6 3.5-.5 4.8 1.1 1.5 2.1 3.5 1 5.3-.8 2.2-4 3.6-6 1.8-1.7-1-.5-4.3-2.2-4.5-.9.7-1 4.1-2.3 2.2-1-1.6-.5-3.8-1.7-5.2-1.4.2-2.6 2.6-2.1 4a23 23 0 013.4 8.8c.5 1.3 0 3.7 1.1 4.2.8-2 0-4.2.7-6.2 1.8-.2 4 .6 5.9.2 2.8-.4 5-2.7 5.9-5.2.3-2 0-3.8-.1-5.7 2.2.3 4.5.3 6.6 1 1 1.6-.3 3.9-.6 5.6-1.1 3.6-4 6.2-6.7 8.6-1.1.7-1.3 2.5.4 1.6 3.7-1.6 6.4-5 8-8.6 1.2-2.7.2-5.8 1-8.6 1.1-2.2 3.8-1.7 5.8-1.7 2-.1 3.8-2.5 3-4.5-.6-2.3 1.9-3.4 3.5-4.2 2.2-1.1 4-3.4 3.8-6-.1-1.3 0-3.8-1.8-3.9zm-7.9 13.3c2.4.7-.4 5.2-1.7 2.3-.3-1 .6-2.3 1.7-2.3zm-11 3.3c3.1-.2 2 4.3-.6 2.3-1.4-.7-1-2.4.6-2.3zm-111.7 17.4c.1-.5-.1-.8-.5-.8-.9 0-1.4.8-1 1.4.4.7 1.4.3 1.5-.6zm36.2-4c0-.7-.3-1-.8-.8-1.2.2-1.4 1.7-.2 1.7.7 0 1-.3 1-1zm-44.7-21.7c-1.5-.3-2.4.9-2.9 2-1 1.9-2.4 3.7-4.3 4.7-1.4.4-3-.2-4.1-.9-1.5-.7-1.1-2.4-1.8-3.6-1-.8-2.8.3-2.8 1.6-.1 1.7 1.5 2.7 2.8 3.3 1.1.7 2.7 1.1 3.2 2.5 0 1.2.4 2.5 1.9 2 1.6 0 2 2 1.3 3.2a6.8 6.8 0 00-.8 4.3c.8.7 1.6-1 2.2-1.6l1.1-1.5c2.8.2 5.7.5 8.5.4 2 0 3.8-1.3 5-2.7 1.9-2 3.4-4.2 5.5-5.8 1.5-.4.7-3.2-.9-2.4-1.4.6-1.8 2.1-2.8 3.1-1.6 2-3.3 4-5.4 5.6-1.5.6-3.2.4-4.8 0-.6-.5 1.3-1 1.6-1.6.9-1 2-1.8 2.4-3-.5-1-2-1.1-3-1.1-2.7.3-4.7 2.5-7.3 2.7-2 0-1-2.1 0-2.8 1.7-2.1 3.6-4.1 5.5-6.2.5-.6 2.4-1.2 1.2-2-.4-.2-.9-.2-1.3-.2zm1.3 10.6c1.3.7-.9 2-1.8 1.8-1.2.3-1.2-.9-.2-1.1.6-.3 1.3-.7 2-.7zm-4.1 2.8c.7 0 2.3.7.8 1.1-1 .8-2.2-.8-.8-1.1z"/>
+    <path d="M223.4 339c0-1-1.8-.9-2 .2-.1.6 0 .8 1 .7.5-.1 1-.5 1-.9zm79.7-7c.2-1-1.2-1.6-1.9-1-.7.8 0 2.1 1 2 .4-.2.8-.6.9-1zm-124-9.8c1.2-1 1.2-1.1.7-3.5-.8-3.3-.7-3.7.5-4 1.6-.4 5.7 1.8 6.6 3.5.7 1.4.7 1.4-.5 2.5-1.3 1.2-1.3 2.6 0 2.6 1 0 4-2.8 4-3.8 0-1.3-3.3-4.6-5.8-5.8a11.4 11.4 0 00-5-1c-3.3 0-3.7.7-2.9 4.5 1 4.4-.3 5-4 1.7a11.1 11.1 0 01-3.6-9.2c0-4.4 1.7-6.6 5.4-7 2.6-.4 2.5-1 0-1.4-3.9-.6-7 2-8.3 6.4-1.3 5 1.8 11.1 7.2 14.2 2.9 1.7 4 1.7 5.7.3zm148.5-5.5c.3-.3.5-1 .5-1.5s.6-1.7 1.2-2.5a7.2 7.2 0 001.2-2c0-.9-1.5-.8-2.6 0-1.2 1-2 1-2 .1 0-.2.5-.7 1.2-1 1.7-.8 1.8-1.6.4-2.3-1.9-.8-3.7.7-3.9 3.2-.1 1.7 0 2 1.3 2.7 1.2.7 1.4 1.1 1.2 2-.3 1.8.4 2.4 1.5 1.3zm14-1.6c1-.9 1.8-2 1.8-2.3 0-.3.9-1.2 2-2 3-2.2 3.7-4.4 2.3-7.9-.5-1.3-2.2-3.2-5.8-6.5a37 37 0 00-5.7-4.6c-1 0-.9 3.7.1 4 1.9.6 3 1.4 5.8 4 3.4 3 4.9 5.8 4 7.3-.7 1.5-1.8 1-4.8-2-1.5-1.7-3-3-3.3-3-.4 0-.6.5-.6 1.4 0 1 .5 2 2 3.7 2.5 2.8 2.8 4.4 1 5.9-.8.5-1.4 1-1.6 1a35.7 35.7 0 00-9.5-10.6c-.5 0-.7.4-.7 1.5 0 1.3.3 1.8 1.3 2.3 1.2.6 4.4 3.8 7.5 7.6.9 1 1.8 2 2 2 .1 0 1.1-.8 2.1-1.8zm6.2-17.8c-.4-1.3-9-10-9.8-10-.5 0-.6.5-.5 1.9 0 1.7.3 2 1.4 2.2.8.3 3 2 5 4s3.8 3.4 4 3.3l-.1-1.4zm-51 98.7a1.3 1.2 0 11-2.4 0 1.3 1.2 0 112.5 0zm4.6-1.5a1.3 1.2 0 11-2.6 0 1.3 1.2 0 112.6 0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bo.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bo.svg
new file mode 100644
index 0000000..52a534f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bo.svg
@@ -0,0 +1,678 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bo" viewBox="0 0 512 512">
+  <path fill="#007934" d="M0 0h512v512H0z"/>
+  <path fill="#ffe000" d="M0 0h512v341.3H0z"/>
+  <path fill="#d52b1e" d="M0 0h512v170.7H0z"/>
+  <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M307.8 224.8L203.3 329.2a97.8 97.8 0 00-1.4-1c.4-.5 104-103.8 104.5-104.5a7.4 7.4 0 011.4 1z"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M314.3 218.2c-.4.7-1.5 2.6-1 4l-2.1-1.6c.5 1 .4 1.5-.2 1.9-.3.4-1.5.3-2.2.2a6 6 0 002.6 1l2 .1c-.6.3-2.3.9-3.4 1-.6.2-1.7.3-2.2 0-.6.6-2-.4-1.3-1-.3-.4-.3-.9-.4-1.5 0-.8 0-2 .7-3.2 0 .6.3 1.2.5 1.8.2.5.7 1 1.2 1.5-.3-.5-.5-1.3 0-1.9.6-.5 1.4-.5 2.2-.2l-2-1.4c.8 0 3.5-1 4.4-1.6a67 67 0 005.2-4 57.6 57.6 0 00-4 4.9z"/>
+  <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M327.5 237.6l-134 75.7-1-1.3c.5-.4 133.2-75.2 134-75.7a6.3 6.3 0 011 1.3z"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M335.9 232.8c-.6.6-2.3 2.2-2.3 3.6-.7-.7-1-1.2-1.6-2 .3 1 0 1.6-.7 1.8-.4.3-1.5 0-2.2-.3.6.6 1.2 1.2 2.2 1.6l1.9.5c-.7.2-2.5.3-3.7.2-.5 0-1.6-.2-2-.6-.8.5-1.8-.8-1-1.3-.2-.3 0-.8.1-1.4.2-.8.7-2 1.7-3a8.3 8.3 0 000 1.9c0 .6.3 1.1.6 1.7-.1-.5 0-1.3.7-1.7.7-.5 1.5-.3 2.1.2l-1.5-1.8c.8.2 3.7-.2 4.7-.5s4.4-1.8 6.4-2.7a65 65 0 00-5.4 3.8z"/>
+  <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M316 232l-120.4 90.9-1.2-1.2 120.5-90.9a6.3 6.3 0 011.2 1.2z"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M323.6 226.2c-.5.7-2 2.4-1.7 3.9l-1.8-1.8c.4 1 .1 1.5-.5 1.8-.4.4-1.5.2-2.2 0 .7.5 1.4 1 2.4 1.3l2 .3c-.7.3-2.4.6-3.6.7-.6 0-1.7 0-2.1-.4-.7.5-2-.6-1.2-1.2-.2-.3-.2-.8-.1-1.5 0-.7.4-2 1.2-3a8.4 8.4 0 00.2 1.8c.1.6.5 1 1 1.6-.3-.5-.3-1.3.3-1.8.7-.5 1.5-.4 2.1 0l-1.7-1.7c.8.1 3.6-.6 4.6-1 1-.4 4-2.2 5.8-3.4a61.8 61.8 0 00-4.7 4.4z"/>
+  <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M204.2 224.8l104.5 104.4a97.8 97.8 0 011.4-1L205.5 223.6l-1.3 1z"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M197.7 218.2c.3.7 1.5 2.6 1 4l2.1-1.6c-.5 1-.4 1.5.2 1.9.3.4 1.5.3 2.2.2a6 6 0 01-2.6 1l-2 .1c.6.3 2.3.9 3.4 1 .6.2 1.7.3 2.2 0 .6.6 2-.4 1.4-1 .2-.4.3-.9.3-1.5a6.2 6.2 0 00-.7-3.2 8.5 8.5 0 01-.5 1.8c-.2.5-.7 1-1.2 1.5.3-.5.5-1.3 0-1.9-.6-.5-1.4-.5-2.2-.2l2-1.4c-.8 0-3.5-1-4.4-1.6a67 67 0 01-5.2-4c1.3 1.4 3.6 4.1 4 4.9z"/>
+  <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M184.5 237.6l134 75.7 1-1.3c-.5-.4-133.2-75.2-134-75.7l-1 1.3z"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M176.1 232.8c.6.6 2.3 2.2 2.4 3.6l1.4-2c-.2 1 .2 1.6.8 1.8.4.3 1.5 0 2.2-.3a5.4 5.4 0 01-2.2 1.6l-1.9.5c.7.2 2.5.3 3.6.2.6 0 1.7-.2 2.1-.6.8.5 1.8-.8 1-1.3.2-.3 0-.8-.1-1.4a6.8 6.8 0 00-1.7-3v1.9c0 .6-.3 1.1-.6 1.7.1-.5 0-1.3-.7-1.7-.7-.5-1.5-.3-2.1.2l1.4-1.8c-.7.2-3.6-.2-4.6-.5-1-.3-4.4-1.8-6.4-2.7a65 65 0 015.4 3.8z"/>
+  <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M196 232l120.4 90.9 1.2-1.2-120.5-90.9-1.2 1.2z"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M188.4 226.2c.5.7 2 2.4 1.7 3.9l1.8-1.8c-.4 1-.1 1.5.5 1.8.4.4 1.5.2 2.2 0-.6.5-1.4 1-2.4 1.3l-2 .3c.7.3 2.4.6 3.6.7.6 0 1.7 0 2.1-.4.7.5 2-.6 1.2-1.2.2-.3.2-.8.1-1.5 0-.7-.4-2-1.2-3a8.4 8.4 0 01-.2 1.8c-.1.6-.5 1-1 1.6.3-.5.3-1.3-.3-1.8-.7-.5-1.5-.4-2.2 0l1.8-1.7c-.8.1-3.6-.6-4.6-1a70.7 70.7 0 01-5.8-3.4l4.7 4.4z"/>
+  <path fill="#00e519" stroke="#000" stroke-width=".1" d="M234.8 302.4a40.8 40.8 0 0117.8-4c-8.5 6.5-17 6.8-17.8 4z"/>
+  <path fill="#ffe533" stroke="#000" stroke-width=".1" d="M234.8 302.4c.8 2.8 9.3 2.5 17.8-3.9a67 67 0 01-17.7 3.9z"/>
+  <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M234.8 302.4c.8 2.8 9.3 2.5 17.8-3.9a67 67 0 01-17.7 3.9z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M234.8 302.3a44 44 0 0117.8-3.9c-8.4 6.5-17 6.7-17.8 4z"/>
+  <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M285.4 234.8l-27.2 55.8c-1.3 1.1-2.4-.3-2.8-.2-1.7 1.9-3.9 2.3-4.4 2.7-1.9 2.5-.8 4.6-.7 4.8 1.4 2-1.7 3.8-1.5 4.4-.7 1-3 .8-3.4 2l-5 10c-.8.5-4 6.5-4 6.5-2.2 0-10.9-5.6-11-5.5 4.8-7.8 16.5-19.7 16.2-20.5 3.3-5.6 8.5-11.6 10.8-11.5 3.2-1.7 4.8-6 4.1-7 2.5-.1 3.8-1.6 4-1.7l20-40c1.7-.6 1.5.1 2 1 0 0 1-1.2 1-1.4 1-.4 1.9.2 1.9.6z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M286.4 222.7c-.5 1 .3 1 .6 1.2l1.2.3c1.3 0 2 .7 2 1.2l-32 65.2c-1.3 1.1-2.6-.2-3 0l21.9-44.7 10.6-20-2.9-1.3c-.9-.2-1.2-.8-.8-1.7l13.4-23-10.7 22.3-.3.5"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M286.4 222.7c-.5 1 .3 1 .6 1.2l1.2.3c1.3 0 2 .7 2 1.2l-32 65.2c-1.3 1.1-2.6-.2-3 0l21.9-44.7 10.6-20-2.9-1.3c-.9-.2-1.2-.8-.8-1.7l13.4-23-10.7 22.3-.3.5"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M244 290.6c-3-.1-4.8 2.2-2.8 5m1.5-2.5c-1.1.6-1.9-.4-1.9-.4m16.3-14c-1.7 6-4.7 10-5.3 11.2-2.3 2.4-4.2 7.7-3.8 8.7l-8.7 14.2"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M258.1 290.9c-1.4-.5-6.1-4.9-10.7-4.1-3.5 4-5.6 8.2-6.2 8.8a60 60 0 008.1 5.8c.7-.5 1-1.7 1-1.7 1-1-.1-1.8-.1-1.8.1-2.7 2-4.5 4-4.6 2.4-.2 1.7-.4 2-.4 1.1-.6 1.9-2 1.9-2z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M258.1 290.9c-1.4-.5-6.1-4.9-10.7-4.1-3.5 4-5.6 8.2-6.2 8.8a60 60 0 008.1 5.8c.7-.5 1-1.7 1-1.7 1-1-.1-1.8-.1-1.8.1-2.7 2-4.5 4-4.6 2.4-.2 1.7-.4 2-.4 1.1-.6 1.9-2 1.9-2z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M253.4 291c-2.1 0-4.3 1-5 2.8l5-2.8"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M253.4 291c-2.1 0-4.3 1-5 2.8m-3.9.7c.2.4.8.7 1.3.5.5-.2.8-.7.6-1.1-.2-.5-.8-.7-1.3-.5-.5.2-.8.6-.6 1.1zm2.7-3.6c.2.4.8.6 1.3.5.5-.2.8-.7.6-1.2-.2-.4-.8-.6-1.3-.4-.5.1-.8.6-.6 1z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M283 241.2c.8-.3 1.2-1.3.8-2.2l-5-1.8s-.6.1-1 .8c-.6.7.1 1.3.1 1.3l5.1 1.9"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M283 241.2c.8-.3 1.2-1.3.8-2.2l-5-1.8s-.6.1-1 .8c-.6.7.1 1.3.1 1.3l5.1 1.9"/>
+  <path fill="#00e519" stroke="#000" stroke-width=".1" d="M228.8 305.1c4.2-2.9 16-4.6 17.7-4.1-8.3 6.6-16.9 7-17.7 4.1z"/>
+  <path fill="#ffe533" stroke="#000" stroke-width=".1" d="M228.9 305.1c.8 2.8 9.3 2.5 17.6-4a66 66 0 01-17.6 4z"/>
+  <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M228.9 305.1c.8 2.8 9.3 2.5 17.6-4a66 66 0 01-17.6 4z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M228.8 305.1a42.6 42.6 0 0117.8-4.2c-8.4 6.6-17 7-17.8 4.2z"/>
+  <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M278 236.9L252 293c-1.3 1-2.5-.3-2.9-.2-1.5 1.9-3.8 2.3-4.2 2.7-1.9 2.6-.8 4.7-.7 4.9 1.5 1.8-1.6 3.7-1.4 4.3-.6 1.1-2.9 1-3.3 2.2-.1-.1-4.5 9-5 10-.6.5-3.7 6.5-3.7 6.5-2.3 0-11-5.4-11.2-5.3 4.7-7.9 16.1-20 15.9-20.7 3.2-5.6 8.3-11.7 10.5-11.7 3.2-1.8 4.7-6.1 4-7 2.5-.2 3.8-1.7 4-1.8l19.2-40.3c1.7-.6 1.4 0 2 1l1-1.4c.9-.5 1.8.2 1.8.6z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M278 236.9L252 293c-1.3 1-2.5-.3-2.9-.2-1.5 1.9-3.8 2.3-4.2 2.7-1.9 2.6-.8 4.7-.7 4.9 1.5 1.8-1.6 3.7-1.4 4.3-.6 1.1-2.9 1-3.3 2.2-.1-.1-4.5 9-5 10-.6.5-3.7 6.5-3.7 6.5-2.3 0-11-5.4-11.2-5.3 4.7-7.9 16.1-20 15.9-20.7 3.2-5.6 8.3-11.7 10.5-11.7 3.2-1.8 4.7-6.1 4-7 2.5-.2 3.8-1.7 4-1.8l19.2-40.3c1.7-.6 1.4 0 2 1l1-1.4c.9-.5 1.8.2 1.8.6z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M278.8 224.7c-.5 1 .3 1 .6 1.2l1.2.3c1.3 0 2 .7 2 1.1L252 293.1c-1.3 1-2.6-.3-3 0l21-45 10.2-20.2-3-1.2c-.9-.2-1.1-.8-.8-1.7l13-23.3-10.4 22.6-.2.4"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M278.8 224.7c-.5 1 .3 1 .6 1.2l1.2.3c1.3 0 2 .7 2 1.1L252 293.1c-1.3 1-2.6-.3-3 0l21-45 10.2-20.2-3-1.2c-.9-.2-1.1-.8-.8-1.7l13-23.3-10.4 22.6-.2.4"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M237.8 293.2c-3.1 0-4.8 2.3-2.7 5m1.4-2.5c-1.1.7-1.8-.3-1.8-.3m16-14.2c-1.6 6-4.5 10-5.1 11.3-2.3 2.3-4 7.7-3.7 8.6l-8.3 14.4"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M251.9 293.3c-1.5-.5-6.2-4.7-10.8-4-3.4 4.2-5.4 8.4-6 9a55 55 0 008.2 5.6c.7-.4 1-1.6 1-1.6 1-1-.2-1.9-.2-1.9 0-2.6 2-4.5 3.9-4.6 2.4-.3 1.7-.4 2-.5 1.1-.6 1.9-2 1.9-2z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M251.9 293.3c-1.5-.5-6.2-4.7-10.8-4-3.4 4.2-5.4 8.4-6 9a55 55 0 008.2 5.6c.7-.4 1-1.6 1-1.6 1-1-.2-1.9-.2-1.9 0-2.6 2-4.5 3.9-4.6 2.4-.3 1.7-.4 2-.5 1.1-.6 1.9-2 1.9-2z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M247.2 293.5c-2.1 0-4.3 1-5 2.8l5-2.8"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M247.2 293.5c-2.1 0-4.3 1-5 2.8m-3.8.8c.2.5.8.7 1.3.5.5-.2.7-.7.5-1.1-.2-.5-.8-.6-1.3-.5-.5.2-.7.7-.5 1.1zm2.6-3.7c.2.5.8.7 1.3.5.5-.2.7-.7.5-1-.2-.5-.7-.7-1.2-.6s-.8.7-.6 1.1z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M275.8 243.3c.8-.4 1.2-1.3.7-2.2l-5-1.7s-.6 0-1 .8c-.6.7.1 1.2.1 1.2l5.2 1.9"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M275.8 243.3c.8-.4 1.2-1.3.7-2.2l-5-1.7s-.6 0-1 .8c-.6.7.1 1.2.1 1.2l5.2 1.9"/>
+  <path fill="#00e519" stroke="#000" stroke-width=".1" d="M278 302.2a41 41 0 00-18-4c8.6 6.6 17.2 6.8 18 4z"/>
+  <path fill="#ffe533" stroke="#000" stroke-width=".1" d="M278 302.2c-.8 2.8-9.4 2.6-18-3.9a68 68 0 0018 3.9z"/>
+  <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M278 302.2c-.8 2.8-9.4 2.6-18-3.9a68 68 0 0018 3.9z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M278 302.1c-4.5-3-17-4.2-18-3.9 8.6 6.5 17.2 6.8 18 4z"/>
+  <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M226.9 234l27.4 56.4c1.4 1 2.5-.4 3-.2 1.6 1.8 3.8 2.2 4.3 2.6 2 2.6.9 4.7.8 4.9-1.5 2 1.6 3.8 1.5 4.4.6 1 3 .8 3.4 2.1l5.1 10c.7.5 4 6.6 4 6.6 2.3 0 11-5.7 11.2-5.6-5-7.8-16.7-19.9-16.5-20.7-3.3-5.6-8.6-11.7-10.9-11.6-3.2-1.7-4.8-6-4.1-7-2.5-.1-3.9-1.6-4-1.7l-20.3-40.5c-1.7-.6-1.4.1-2 1.1l-1-1.4c-1-.5-1.9.2-1.9.6z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M225.8 221.7c.6 1-.3 1-.5 1.2l-1.2.4c-1.3 0-2 .7-2 1l32.2 66c1.4 1.1 2.7-.2 3.1 0l-22.1-45.1-10.7-20.3 2.9-1.2c.9-.2 1.2-.8.8-1.8l-13.6-23.3 11 22.7.1.4"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M225.8 221.7c.6 1-.3 1-.5 1.2l-1.2.4c-1.3 0-2 .7-2 1l32.2 66c1.4 1.1 2.7-.2 3.1 0l-22.1-45.1-10.7-20.3 2.9-1.2c.9-.2 1.2-.8.8-1.8l-13.6-23.3 11 22.7.1.4"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M268.7 290.3c3.1-.1 4.9 2.2 2.8 5m-1.4-2.5c1 .6 1.8-.4 1.8-.4m-16.4-14c1.7 6 4.7 10 5.3 11.2 2.3 2.4 4.3 7.8 3.9 8.7l8.7 14.4"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M254.5 290.6c1.4-.5 6.1-5 10.8-4.2 3.5 4.2 5.6 8.3 6.2 9a53 53 0 01-8.2 5.8c-.7-.5-1-1.7-1-1.7-1-1 .2-1.9.2-1.9-.1-2.6-2-4.5-4-4.6-2.5-.2-1.8-.4-2.1-.4a6.2 6.2 0 01-2-2z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M254.5 290.6c1.4-.5 6.1-5 10.8-4.2 3.5 4.2 5.6 8.3 6.2 9a53 53 0 01-8.2 5.8c-.7-.5-1-1.7-1-1.7-1-1 .2-1.9.2-1.9-.1-2.6-2-4.5-4-4.6-2.5-.2-1.8-.4-2.1-.4a6.2 6.2 0 01-2-2z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M259.2 290.7c2.1 0 4.4 1 5 2.8l-5-2.8"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M259.2 290.7c2.1 0 4.4 1 5 2.8m4 .7c-.2.5-.8.7-1.3.6-.5-.2-.8-.7-.6-1.2.2-.4.8-.6 1.3-.5.5.2.8.7.6 1.1zm-2.7-3.6c-.2.4-.8.6-1.3.4-.6-.1-.8-.6-.6-1 .2-.5.8-.7 1.3-.6.5.2.8.7.6 1.2z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M229.3 240.4c-.8-.3-1.2-1.3-.8-2.2l5-1.8s.7 0 1.2.8c.5.7-.2 1.2-.2 1.2l-5.2 2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M229.3 240.4c-.8-.3-1.2-1.3-.8-2.2l5-1.8s.7 0 1.2.8c.5.7-.2 1.2-.2 1.2l-5.2 2"/>
+  <path fill="#00e519" stroke="#000" stroke-width=".1" d="M283.3 305.1c-4-2.9-16-4.6-17.7-4.1 8.4 6.6 17 7 17.7 4.1z"/>
+  <path fill="#ffe533" stroke="#000" stroke-width=".1" d="M283.3 305.1c-.8 2.8-9.3 2.5-17.6-4a66 66 0 0017.6 4z"/>
+  <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M283.3 305.1c-.8 2.8-9.3 2.5-17.6-4a66 66 0 0017.6 4z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M283.3 305.1a42.6 42.6 0 00-17.7-4.2c8.4 6.6 17 7 17.7 4.2z"/>
+  <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M234.1 236.9l26 56.2c1.4 1 2.5-.3 3-.2 1.5 1.9 3.7 2.3 4.2 2.7 1.8 2.6.8 4.7.6 4.9-1.4 1.8 1.6 3.7 1.5 4.3.6 1.1 2.9 1 3.3 2.2.1-.1 4.5 9 4.9 10 .7.5 3.8 6.5 3.8 6.5 2.2 0 11-5.4 11.2-5.3-4.7-7.9-16.2-20-16-20.7-3-5.6-8.2-11.7-10.5-11.7-3.1-1.8-4.6-6.1-4-7-2.4-.2-3.7-1.7-3.9-1.8L239 236.7c-1.7-.6-1.4 0-2 1l-1-1.4c-.9-.5-1.8.2-1.9.6z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M234.1 236.9l26 56.2c1.4 1 2.5-.3 3-.2 1.5 1.9 3.7 2.3 4.2 2.7 1.8 2.6.8 4.7.6 4.9-1.4 1.8 1.6 3.7 1.5 4.3.6 1.1 2.9 1 3.3 2.2.1-.1 4.5 9 4.9 10 .7.5 3.8 6.5 3.8 6.5 2.2 0 11-5.4 11.2-5.3-4.7-7.9-16.2-20-16-20.7-3-5.6-8.2-11.7-10.5-11.7-3.1-1.8-4.6-6.1-4-7-2.4-.2-3.7-1.7-3.9-1.8L239 236.7c-1.7-.6-1.4 0-2 1l-1-1.4c-.9-.5-1.8.2-1.9.6z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M233.3 224.7c.5 1-.3 1-.6 1.2l-1.1.3c-1.3 0-2 .7-2 1.1l30.6 65.8c1.3 1 2.6-.3 3 0l-21-45-10.2-20.2 3-1.2c.8-.2 1.1-.8.7-1.7l-12.9-23.3 10.3 22.5.2.5"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M233.3 224.7c.5 1-.3 1-.6 1.2l-1.1.3c-1.3 0-2 .7-2 1.1l30.6 65.8c1.3 1 2.6-.3 3 0l-21-45-10.2-20.2 3-1.2c.8-.2 1.1-.8.7-1.7l-12.9-23.3 10.3 22.5.2.5"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M274.3 293.2c3.2 0 4.9 2.3 2.8 5m-1.4-2.5c1 .7 1.8-.3 1.8-.3m-16-14.2c1.6 6 4.5 10 5 11.3 2.3 2.3 4.1 7.7 3.8 8.6l8.3 14.4"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M260.3 293.3c1.4-.5 6.2-4.7 10.8-4 3.4 4.2 5.4 8.4 6 9a53.2 53.2 0 01-8.3 5.6c-.6-.4-1-1.6-1-1.6-.8-1 .3-1.9.3-1.9 0-2.6-2-4.5-3.9-4.6-2.4-.3-1.7-.4-2-.5-1.1-.6-1.9-2-1.9-2z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M260.3 293.3c1.4-.5 6.2-4.7 10.8-4 3.4 4.2 5.4 8.4 6 9a53.2 53.2 0 01-8.3 5.6c-.6-.4-1-1.6-1-1.6-.8-1 .3-1.9.3-1.9 0-2.6-2-4.5-3.9-4.6-2.4-.3-1.7-.4-2-.5-1.1-.6-1.9-2-1.9-2z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M265 293.5c2 0 4.3 1 5 2.8l-5-2.8"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M265 293.5c2 0 4.3 1 5 2.8m3.8.8c-.2.5-.8.7-1.3.5-.5-.2-.8-.7-.6-1.1.2-.5.8-.6 1.3-.5.6.2.8.7.6 1.1zm-2.6-3.7c-.2.5-.8.7-1.3.5-.5-.2-.8-.7-.6-1 .2-.5.8-.7 1.3-.6.5.2.8.7.6 1.1z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M236.4 243.3a1.6 1.6 0 01-.8-2.2l5-1.7s.7 0 1.1.8c.5.7-.2 1.2-.2 1.2l-5 1.9"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M236.4 243.3a1.6 1.6 0 01-.8-2.2l5-1.7s.7 0 1.1.8c.5.7-.2 1.2-.2 1.2l-5 1.9"/>
+  <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M251 267.4l37.8-40.5a94.1 94.1 0 01-1.4-1l-38 40.5c-.5-.2 2 1.3 1.5 1z"/>
+  <path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M287.8 226.3c-1.3-1-3.7-2.3-5.3-2-.6-2.2 2.7-4.6 4-4.2-.3 2.5 3.4 4 3.3 4l-2 2.3z"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M290.3 224.4c1 .9 1.4 1 3 1.7 1.4.8 3.4-1.2 4.3-1.8 0 0 1 3.6-1.2 6s-4.9 3-7 2.2c0 0 2.8-2.7 1.7-3.9-1.1-1.1-1.5-1.2-2.6-2"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M19.4-370.2h4.4v2.4h-4.4z" transform="matrix(-.67726 .73575 -.82314 -.56784 0 0)"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M243.4 309.7l-1 9.6 1.9-2.4c.3-.6 1.6-2.2 1.9-7.9 0 0-1-3-1.5-3-.8-.5-1.3 3.7-1.3 3.7zm2.3-21.5L243 305c0 .4 1.3 1.7 2.3-1.3l1.5-11.2-1-4.4z"/>
+  <path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M251.6 303.5c-.6-.8-1.4-1.7-1.5-2.1l-.4 3.4s2.1 1.5 1.8 4.6l.5-.6.2-1.3s.5-2 .5-3.2c0 0-.5-.2-1.1-.8z"/>
+  <path fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M242.4 319.3s3.6-3 3.8-10.3l.4-2s0 1.6.8.4c.7-1.6.7-3 .7-3s1.3-1.6 1.7.4l-1.3 10.2a54.8 54.8 0 01-.3 2.2s-.7-1.2-1.4 0c-.8 1.3-2 2.9-4.4 2.1zm4.3-26.7l-1.5 11.2s1.2.6 1.4 3.2c.1 1.2.6.6.8.4.3-.8 0-2.4 0-2.4l.8-7.8s-1.4-3.6-1.5-4.6z"/>
+  <path fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M245.5 318.7l-.2 2.8s1 0 1.8-1.2c.8-1.3 1-3 1-3s-.7-1.3-1.3 0a4 4 0 01-1.3 1.4zm2-11.3a6.3 6.3 0 00.6-3l-.8.6c.3 1.2.1 2.4.1 2.4z"/>
+  <path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M251 306.3c-.6-1-1.4-1.6-1.4-1.6l-1.6 12.7s-.4 3.2-2.4 4c0 0 1.1 11 4.7 8 .5-.5 1.2-3.9 1-5.9l-1-6.4a28.5 28.5 0 011.2-7.8c.2-.2 0-1.8-.6-3z"/>
+  <path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M252.7 304.3l1.1 1c.2 0-2.5 20.7-2.5 20.7s0-2.2-.7-6.4c-.7-3.4.2-8 1-10.2 0 0 .8-.7 1-5z"/>
+  <path fill="#f7e214" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M248 297.4l-.6 7.6s1.8-2.6 2.3-.2l.4-3.5s-1.6-2.5-2-4z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M246.7 307s-.6-6.5-3.8-2c0 0-.3 2.7 0 3.3 0 .8.9 1.8 1.3 2.5.7 1 1.4-.3 1.4-.3s.7-1 1-3.5z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M221.7 252.7c-.2-3.7-1.3-9.8-1.4-14l-12.8-13.1s-1.6 10.5-6.2 16.6l20.3 10.5"/>
+  <path fill="#ffe000" stroke="#000" stroke-width=".1" d="M222.6 253.2c.5-2.6 1.2-5.5 1.6-11l-8.2-8c0 3.4-3.8 8.6-4.1 15"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M229.7 261c1-4.5-1.4-5.1 2-11.5l-7.6-7.3c-1.4 4.3-2.3 7-2.2 10.8l6.5 4.6"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M200 288c-1.5-4.5.6-13.5.4-19.3-.2-3.7 2.5-17.6 2.5-21.9l-15-9.4s-.7 15.3-2.5 32a66.3 66.3 0 00-.4 22.8c1.6 9.3 3.2 13.1 7 17 6.6 7 20.9 3 20.9 3 12-2.6 19-10.2 19-10.2s-4 1-10.3 1.6c-14-1-19.4 2.5-19.8-11.8"/>
+  <path fill="#f7e214" stroke="#000" stroke-width=".1" d="M240.4 297.4l.2-.1c-2.6 1-6.2 2-6.2 2l-8.5.7c-18.4.4-16.1-11-15.4-29.4.2-7 1.6-15.8 1.2-18.9l-12.3-7c-4 11.3-2.8 19.3-3.6 25-.4 6.4-1.8 18.6.3 24 2.9 12.4 12.6 11.9 25.8 10.8 6.5-.6 10-2.3 10-2.3l8.5-4.9"/>
+  <path fill="#007a3d" stroke="#000" stroke-width=".1" d="M240.6 297.1a37.3 37.3 0 01-6.3 2.3l-8.6.9c-13.3 1-21.1-8.3-19.4-29.5A66 66 0 01209 250l7.3 4.3v.7c-.4 2.2-1.4 7.5-1.4 9.9 0 17 10.7 30 25.4 32.3l.2-.1"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M192 246c1.2 2 8.6 13.3 12.7 15.5m-11.5-8.2c1.2 2.1 10.3 14.9 14.4 15.6m-16.5 3.9c2 2.5 4.1 7.4 10.3 10.6M194 287c4.1 4 14.4 12.4 24.3 12.8m-24.3-6.4c2 2.5 6.6 14.2 25.6 8.9m-28.5-6.7c1.2 2.8 10.8 18.4 27.7 12.3"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M211 282.5c-1.6-4.6.5-13.6.3-19.4-.2-3.7 1.5-16.5 1.5-20.8l-14.1-10.5s-.7 15.3-2.4 32c-1.6 8.5-2.7 19-1.6 25.5 2 10.6 7 13.6 8 14.5 7.2 6.4 23.4 5.7 25 5.2 11.6-4.2 16.6-11.6 16.6-11.6s-5.5 0-11.8.6c-14-1-21-.4-21.4-14.7"/>
+  <path fill="#ffe000" stroke="#000" stroke-width=".1" d="M251.3 291.8l.2-.2c-2.6 1-6.2 2.1-6.2 2.1l-8.5.7c-18.4.4-16.1-11-15.4-29.4.2-7 .4-13.3 0-16.4l-11-8c-4 11.3-3 17.8-3.7 23.6-.4 6.3-1.8 18.5.3 23.8 2.8 12.5 12.6 12 25.7 10.9 6.6-.6 10-2.3 10-2.3l8.6-4.9"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M251.6 291.6a37 37 0 01-6.3 2.3l-8.6.8c-13.3 1.2-21.2-8.2-19.5-29.4 0-7.5-.2-8 2.4-18 4 2.6 11.9 9.3 11.9 9.3s-2.1 3-1.6 7.2c0 17 6.8 25.7 21.5 27.9l1.6-14"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M202.8 240.3a60.7 60.7 0 0012.8 15.6m-11.5-8.2c1.2 2.2 10.3 14.9 14.4 15.6m-16.5 3.9c2 2.5 4.1 7.4 10.3 10.6m-7.4 3.5c4.1 4 14.4 12.4 24.3 12.8m-24.3-6.4c2 2.5 6.6 14.2 25.6 8.9m-28.5-6.7c1.2 2.8 10.7 18.4 27.7 12.3"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M188 238.9l-.8 6.4c-.3 4.7-.1 8.2.1 10.5 0 .2.9 5.8.6 6.1-1 1.3-1.1 1.4-2.3.5-.1-.2.5-6 .6-6.8l.4-10.5c0-1.1 1-6.8 1-6.8s.1-1.3.3.6"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M188 238.9l-.8 6.4c-.3 4.7-.1 8.2.1 10.5 0 .2 1.1 8 .7 6.1-1 1.3-1.3 1.7-2.4.8-.2-.2.5-6.3.6-7l.4-10.6c0-1.1 1-6.8 1-6.8s.1-1.3.3.6z"/>
+  <path fill="#f7e214" stroke="#000" stroke-width=".1" d="M187.8 237s-1.2 6.5-1.3 10.2c-.2 4.5-.4 5.8-.3 8.5l-.6 4.8c-.1.7.1.1 0 .2-1 .6-1.6.1-2.1-.3-.2-.2 1.5-4 1.5-4.9.9-11.4 2.5-18.2 2.5-18.2s-.6 4.1.3-.3"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M187.8 237s-1.2 6.5-1.3 10.2c-.2 4.5-.4 5.8-.3 8.5l-.6 4.8c-.1.7.1.1 0 .2-1 .6-1.6.1-2.1-.3-.2-.2 1.5-4 1.5-4.9.9-11.4 2.5-18.2 2.5-18.2s-.6 4.1.3-.3zm-.5 18.5s-1 .4-1.1.2m0-1.4s.8 0 1-.2m-.1-1.2s-.7.4-.8.2m.7-1.8h-.6m.7-1.6h-.7m.6-2.3s-.4.2-.4 0m.5-1.9h-.5m-.5 10.2s-1 .1-1.1-.2m1.1-2s-1 0-1-.2m1-1.4h-.8m1-1.5h-.7m.7-1.8l-.5-.1m.7-1.5s-.5 0-.6-.2m.7-1.7s-.4.3-.4 0m0 9.6s-1 0-1-.3m13.6-21.1l-.7 6.4c-.3 4.7-.1 8.3 0 10.5 0 .2 1 5.8.7 6.1-1.1 1.3-1.2 1.4-2.3.5-.2-.2.5-6 .5-6.8.2-.8.3-7.5.5-10.5 0-1.1 1-6.8 1-6.8s.1-1.3.3.6"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M198.8 233.3l-.7 6.4a70 70 0 000 10.5c0 .2 1.2 8 .8 6.1-1 1.3-1.3 1.7-2.4.8-.2-.2.5-6.3.6-7l.4-10.6c0-1.1 1-6.8 1-6.8s.1-1.3.3.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M198.7 231.4s-1.2 6.5-1.4 10.2c-.1 4.5-.3 5.8-.2 8.5l-.6 4.8c-.1.7 0 .2 0 .2-1 .6-1.6.1-2.2-.3-.1-.2 1.5-4 1.6-4.9.9-11.4 2.5-18.2 2.5-18.2l.3-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M198.7 231.4s-1.2 6.5-1.3 10.2c-.2 4.5-.4 5.8-.3 8.5l-.6 4.8c-.1.7 0 .2 0 .2-1 .6-1.6.1-2.2-.3-.1-.2 1.5-4 1.6-4.9.9-11.4 2.5-18.2 2.5-18.2l.3-.3zm-.5 18.5s-1 .4-1.1.2m0-1.4s.7 0 .9-.2m0-1.2s-.7.4-.8.2m.7-1.8h-.6m.7-1.6h-.7m.6-2.3s-.4.2-.5 0m.6-1.9h-.6m-.5 10.2s-1 .1-1-.2m1.1-2s-1 0-1-.2m1-1.4h-.8m1-1.5h-.8m.8-1.8l-.5-.1m.7-1.5s-.5 0-.6-.2m.7-1.7s-.5.3-.5 0m0 9.6s-1 0-1-.3"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M207.3 225.3s.5 5.5.2 8.6c-.4 3.8-.3 4.9-.7 7v4.3c.9.5 1.6.2 2.2-.1.2-.1-1-3.5-1-4.2.4-9.5-.5-15.3-.5-15.3l-.2-.2"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M207.3 225.3s.5 5.5.2 8.6c-.4 3.8-.3 4.9-.7 7v4.3c.9.5 1.6.2 2.2-.1.2-.1-1-3.5-1-4.2.4-9.5-.5-15.2-.5-15.2l-.2-.4zm-.4 15.7s1 .2 1.1 0m-.8-1.8s.9.1 1-.1m-1-1.3h.9m-.8-1.2h.7m-.5-1.6h.5m-.5-1.3h.5m-.4-1.5s.4.3.4 0m-1 8s1 0 1-.2"/>
+  <path fill="#005000" stroke="#000" stroke-width=".1" d="M241 236.4h1-1z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M252.5 273.5s-.4-.2-.5 0l.2.2.3-.2zm-1 1.2l2.2-.2"/>
+  <path fill="#e8a30e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M226.3 303.1c-.2 3.3-7.8 7-13.5.2-6-4.8-4.7-12.2 0-13.2l58.3-56.8c2.4-1.3 2.6-2.5 3.8-3.7 2.4 2.6 7.5 7.2 10.2 9.5-1.7 1.4-3 2.7-3.4 3.8l-55.4 60.2z"/>
+  <path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width=".1" d="M275 229.4c2.8-3.8 13.6 6 10.7 9.2-2.9 3-13.3-5.4-10.7-9.2z"/>
+  <path fill="#cccccf" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M284.8 237.8c-2 1.6-10-5-8.6-7.6 2.1-2.4 10.8 6.1 8.6 7.6z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M281.6 243a16.8 16.8 0 01-10.5-9.6m-24.5 48a17.3 17.3 0 01-12.2-12.5m9.7 15.3a17.3 17.3 0 01-12.2-12.4m-2.3 27.5a19 19 0 01-13-13m10.5 15.8a19.2 19.2 0 01-13-13"/>
+  <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M212.6 304c-.3 1.5-1 2-2.2 1.5m14.7-2c-2.3 3.6-4.9 2.5-7 2.5"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M209.5 304.2c0 1 .8 1.8 1.8 1.8a1.8 1.8 0 001.9-1.8c0-1-.8-1.8-1.9-1.8-1 0-1.8 1.1-1.8 2"/>
+  <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M212.8 303.9c-.3 1.4-1 1.9-2.2 1.4m14.5-1.9c-2.3 3.7-4.9 2.6-7 2.6"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M268.6 309.7l1 9.6-1.9-2.4c-.3-.6-1.6-2.2-1.9-7.9 0 0 1-3 1.5-3 .8-.5 1.3 3.7 1.3 3.7zm-2.4-21.5l2.9 16.9c0 .4-1.3 1.7-2.3-1.3l-1.5-11.2 1-4.4z"/>
+  <path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M260.4 303.5c.6-.8 1.4-1.7 1.5-2.1l.4 3.4s-2.2 1.5-1.8 4.6l-.5-.6-.2-1.3-.5-3.2s.5-.2 1.1-.8z"/>
+  <path fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M269.6 319.3s-3.6-3-3.8-10.3l-.4-2s0 1.6-.8.4c-.7-1.6-.7-3-.7-3s-1.3-1.6-1.7.4a1925.6 1925.6 0 001.6 12.4s.7-1.2 1.4 0c.8 1.3 2 2.9 4.4 2.1zm-4.3-26.7l1.5 11.2s-1.2.6-1.4 3.2c-.1 1.2-.6.6-.8.4-.3-.8 0-2.4 0-2.4l-.8-7.8s1.4-3.6 1.5-4.6z"/>
+  <path fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M266.5 318.7l.2 2.8s-1 0-1.7-1.2c-.9-1.3-1.2-3-1.2-3s.8-1.3 1.4 0a4 4 0 001.3 1.4zm-2-11.3a6.3 6.3 0 01-.6-3l.7.6c-.2 1.2 0 2.4 0 2.4z"/>
+  <path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M261 306.3c.6-1 1.4-1.6 1.4-1.6l1.6 12.7s.4 3.2 2.4 4c0 0-1.1 11-4.7 8-.5-.5-1.2-3.9-1-5.9l1-6.4a28.5 28.5 0 00-1.2-7.8c-.2-.2 0-1.8.6-3z"/>
+  <path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M259.4 304.3s-1 1-1.2 1c-.2 0 2.5 20.7 2.5 20.7s0-2.2.7-6.4c.7-3.4-.2-8-1-10.2 0 0-.8-.7-1-5z"/>
+  <path fill="#f7e214" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M264 297.4l.6 7.6s-1.8-2.6-2.3-.2l-.4-3.5s1.6-2.5 2-4z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M265.3 307s.6-6.5 3.8-2c0 0 .3 2.7 0 3.3 0 .8-.9 1.8-1.3 2.5-.7 1-1.4-.3-1.4-.3s-.7-1-1-3.5z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M290.4 252.7c0-3.7 1.2-9.8 1.3-14l12.8-13.1s1.6 10.5 6.2 16.6l-20.3 10.5"/>
+  <path fill="#ffe000" stroke="#000" stroke-width=".1" d="M289.4 253.2c-.5-2.6-1.2-5.5-1.6-11l8.2-8c0 3.4 3.9 8.6 4.1 15"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M282.3 261c-1-4.5 1.4-5.1-2-11.5l7.6-7.3c1.4 4.3 2.3 7 2.2 10.8l-6.5 4.6"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M312 288c1.5-4.5-.6-13.5-.4-19.3.2-3.7-2.5-17.6-2.5-21.9l15-9.4s.7 15.3 2.5 32c1.5 8.5 1.5 16.3.4 22.8-1.6 9.3-3.2 13.1-7 17-6.6 7-20.9 3-20.9 3-12-2.6-19-10.2-19-10.2s4 1 10.3 1.6c14-1 19.4 2.5 19.8-11.8"/>
+  <path fill="#f7e214" stroke="#000" stroke-width=".1" d="M271.6 297.4l-.2-.1c2.6 1 6.2 2 6.2 2l8.5.7c18.4.4 16.1-11 15.4-29.4-.2-7-1.6-15.8-1.2-18.9l12.3-7c4 11.3 2.8 19.3 3.6 25 .4 6.4 1.8 18.6-.3 24-2.8 12.4-12.6 11.9-25.7 10.8a31.7 31.7 0 01-10.1-2.3l-8.5-4.9"/>
+  <path fill="#007a3d" stroke="#000" stroke-width=".1" d="M271.4 297.1a37 37 0 006.3 2.3l8.6.9c13.3 1 21.1-8.3 19.4-29.5A66 66 0 00303 250l-7.3 4.3v.7c.4 2.2 1.4 7.5 1.4 9.9 0 17-10.7 30-25.4 32.3l-.2-.1"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M320 246c-1.2 2-8.6 13.3-12.8 15.5m11.6-8.2c-1.2 2.1-10.3 14.9-14.4 15.6m16.5 3.9c-2 2.5-4.1 7.4-10.3 10.6m7.4 3.5c-4.2 4-14.4 12.4-24.4 12.8m24.4-6.4c-2 2.5-6.6 14.2-25.6 8.9m28.5-6.7c-1.2 2.8-10.7 18.4-27.7 12.3"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M301 282.5c1.6-4.6-.5-13.6-.3-19.4.2-3.7-1.5-16.5-1.5-20.8l14.1-10.5s.7 15.3 2.4 32c1.6 8.5 2.7 19 1.6 25.5-2 10.6-7 13.6-8 14.5-7.2 6.4-23.4 5.7-25 5.2-11.6-4.2-16.7-11.6-16.7-11.6s5.5 0 11.9.6c14-1 21-.4 21.4-14.7"/>
+  <path fill="#ffe000" stroke="#000" stroke-width=".1" d="M260.7 291.8l-.2-.2c2.6 1 6.2 2.1 6.2 2.1l8.5.7c18.4.4 16.1-11 15.4-29.4-.2-7-.4-13.3 0-16.4l11-8c4 11.3 3 17.8 3.7 23.6.4 6.3 1.8 18.5-.3 23.8-2.8 12.5-12.5 12-25.7 10.9-6.6-.6-10-2.3-10-2.3l-8.6-4.9"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M260.4 291.6a36.8 36.8 0 006.3 2.3l8.6.8c13.3 1.2 21.2-8.2 19.5-29.4 0-7.5.2-8-2.4-18-4 2.6-11.9 9.3-11.9 9.3s2.1 3 1.6 7.2c0 17-6.8 25.7-21.5 27.9l-1.6-14"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M309.2 240.3a60.7 60.7 0 01-12.8 15.6m11.6-8.2c-1.3 2.2-10.4 14.9-14.5 15.6m16.5 3.9c-2 2.5-4.1 7.4-10.3 10.6m7.4 3.5c-4.1 4-14.4 12.4-24.3 12.8m24.3-6.4c-2 2.5-6.6 14.2-25.6 8.9m28.5-6.7c-1.2 2.8-10.7 18.4-27.7 12.3"/>
+  <path fill="#f7e214" stroke="#000" stroke-width=".1" d="M324 238.9l.8 6.4c.3 4.7.1 8.2-.1 10.5 0 .2-.9 5.8-.6 6.1 1 1.3 1.1 1.4 2.3.5.1-.2-.5-6-.6-6.8l-.4-10.5c0-1.1-1-6.8-1-6.8s-.1-1.3-.3.6"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M324 238.9l.8 6.4c.3 4.7.1 8.2-.1 10.5l-.8 6.1c1.1 1.3 1.4 1.7 2.5.8a64 64 0 00-.6-7l-.4-10.6c0-1.1-1-6.8-1-6.8s-.1-1.3-.3.6z"/>
+  <path fill="#f7e214" stroke="#000" stroke-width=".1" d="M324.2 237s1.2 6.5 1.3 10.2c.2 4.5.4 5.8.3 8.5l.6 4.8c.1.7-.1.1 0 .2 1 .6 1.6.1 2.1-.3.2-.2-1.5-4-1.5-4.9-.9-11.4-2.6-18.2-2.6-18.2s.7 4.1-.2-.3"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M324.2 237s1.2 6.5 1.3 10.2c.2 4.5.4 5.8.3 8.5l.6 4.8c.1.7-.1.1 0 .2 1 .6 1.6.1 2.1-.3.2-.2-1.5-4-1.5-4.9-.9-11.4-2.6-18.2-2.6-18.2s.7 4.1-.2-.3zm.5 18.5s1 .4 1.1.2m0-1.4s-.8 0-1-.2m.1-1.2s.6.4.8.2m-.7-1.8h.5m-.6-1.6h.7m-.6-2.3s.4.2.4 0m-.5-1.9h.5m.5 10.2s1 .1 1.1-.2m-1.1-2s1 0 1-.2m-1-1.4h.7m-1-1.5h.8m-.7-1.8l.5-.1m-.7-1.5s.4 0 .5-.2m-.6-1.7s.4.3.4 0m0 9.6s1 0 1-.3"/>
+  <path fill="#f7e214" stroke="#000" stroke-width=".1" d="M313.2 233.3l.7 6.4c.3 4.7.1 8.3 0 10.5 0 .2-1 5.8-.7 6.1 1.1 1.3 1.2 1.4 2.3.5.2-.2-.5-6-.5-6.8-.2-.8-.3-7.5-.5-10.5 0-1.1-1-6.8-1-6.8s-.1-1.3-.3.6"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M313.2 233.3l.7 6.4a70 70 0 010 10.5c0 .2-1.2 8-.8 6.1 1 1.3 1.3 1.7 2.4.8a64 64 0 00-.6-7l-.4-10.6c0-1.1-1-6.8-1-6.8s-.1-1.3-.3.6z"/>
+  <path fill="#f7e214" stroke="#000" stroke-width=".1" d="M313.3 231.4s1.2 6.5 1.4 10.2c.1 4.5.3 5.8.2 8.5l.6 4.8c.1.7 0 .2 0 .2 1 .6 1.6.1 2.2-.3.1-.2-1.5-4-1.6-4.9-.9-11.4-2.5-18.2-2.5-18.2l-.3-.3"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M313.3 231.4s1.2 6.5 1.3 10.2c.2 4.5.4 5.8.3 8.5l.6 4.8c.1.7 0 .2 0 .2 1 .6 1.6.1 2.1-.3.2-.2-1.5-4-1.5-4.9-.9-11.4-2.5-18.2-2.5-18.2l-.3-.3zm.5 18.5s1 .4 1.1.2m0-1.4s-.8 0-.9-.2m0-1.2s.7.4.8.2m-.7-1.8h.6m-.7-1.6h.7m-.6-2.3s.4.2.4 0m-.5-1.9h.5m.6 10.2s1 .1 1-.2m-1.1-2s1 0 1-.2m-1-1.4h.8m-1-1.5h.8m-.8-1.8l.5-.1m-.7-1.5s.5 0 .6-.2m-.7-1.7s.5.3.4 0m.1 9.6s1 0 1-.3m-11.3-23.4s-.5 5.4-.2 8.5c.4 3.8.3 4.9.7 7v4.3c-.9.5-1.6.2-2.2-.1-.2-.1 1-3.5 1-4.2-.4-9.5.5-15.3.5-15.3l.2-.2"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M304.7 225.3s-.5 5.5-.2 8.6c.4 3.8.3 4.9.7 7v4.3c-.9.5-1.6.2-2.2-.1-.2-.1 1-3.5 1-4.2-.4-9.5.5-15.2.5-15.2l.2-.4zm.4 15.7s-1 .2-1.1 0m.8-1.8s-.9.1-1-.1m1-1.3h-.9m.8-1.2h-.7m.5-1.6h-.5m.5-1.3h-.5m.4-1.5s-.4.3-.4 0m1 8s-1 0-1-.2"/>
+  <path fill="#005000" stroke="#000" stroke-width=".1" d="M271 236.4h-1 1z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M259.5 273.5s.4-.2.5 0l-.2.2-.3-.2zm1 1.2l-2.2-.2"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M225.8 229.8c0-2.2 2-3.5 2.4-3.7 1-.7 1.7-1.3 4-1.6l.1.9c0 .4-.5 1.7-2.2 2.9a12.3 12.3 0 01-4.3 1.5z"/>
+  <path fill="#a05a2c" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M225.8 229l31.6 41 1.5-1.4-32.3-41.8-.8 2.2z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M225.3 221s3.4-.4 3-2.3c-.6-2-2.9-2-3.8-2-1 0-4.2.6-5 1.6-1 1-3 2.6-2.4 5.3a21.3 21.3 0 002.5 6.3c1 1.8.7 3.5.5 4.2-.1.3-.4 1.4.4 1.8 1.3.5 1.6.5 2.7-.7s2.6-3.1 2.6-5.4c0-2.2 2-3.5 2.4-3.7 1-.7 1.7-1.3 4-1.6 0 0-.9-1.3-2-1.2a9 9 0 01-5-2.3z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M225.3 221s3.4-.4 3-2.3c-.6-2-2.9-2-3.8-2-1 0-4.2.6-5 1.6-1 1-3 2.6-2.4 5.3a21.3 21.3 0 002.5 6.3c1 1.8.7 3.5.5 4.2-.1.3-.4 1.4.4 1.8 1.3.5 1.6.5 2.7-.7s2.6-3.1 2.6-5.4c0-2.2 2-3.5 2.4-3.7 1-.7 1.7-1.3 4-1.6 0 0-.9-1.3-2-1.2a9 9 0 01-5-2.3z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M225.3 221c-.5 0-1.9-.6-2.8-.3-1 .4-2.8 1.5-2.5 3.1m11-.2s-1.9.8-3.3 1.8a42 42 0 00-3.7 3.4c-1.1 1.1-1.4 2.6-3.7 4.2m9.5-9.7l-1.5 1.1c-.6.4-.8 1-1.3 1.4"/>
+  <path fill="#e8a30e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M285.7 303.1c.2 3.3 7.8 7 13.5.2 6-4.8 4.7-12.2 0-13.2l-58.3-56.8c-2.4-1.3-2.6-2.5-3.8-3.7-2.4 2.6-7.5 7.2-10.2 9.5 1.6 1.4 3 2.7 3.4 3.8l55.4 60.2z"/>
+  <path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width=".1" d="M237 229.4c-2.8-3.8-13.6 6-10.7 9.2 2.9 3 13.3-5.4 10.7-9.2z"/>
+  <path fill="#cccccf" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M227.2 237.8c2 1.6 10-5 8.6-7.6-2.1-2.4-10.8 6.1-8.6 7.6z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M230.4 243c4.8-1.5 8.3-4.7 10.5-9.6m24.5 48a17.3 17.3 0 0012.2-12.5m-9.7 15.3a17.3 17.3 0 0012.2-12.4m2.3 27.5a19 19 0 0013-13M285 302.2a19.2 19.2 0 0013-13"/>
+  <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M299.4 304c.3 1.5 1 2 2.2 1.5m-14.7-2c2.3 3.6 4.9 2.5 7 2.5"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M302.5 304.2c0 1-.8 1.8-1.8 1.8a1.8 1.8 0 01-1.9-1.8c0-1 .9-1.8 1.9-1.8 1 0 1.8 1.1 1.8 2"/>
+  <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M299.2 303.9c.3 1.4 1 1.9 2.2 1.4m-14.5-1.9c2.3 3.7 4.9 2.6 7 2.6"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M277 187.2c1.9 3 4.7 8.5 5.4 12.7a24 24 0 01-7.5 22.3c-5.5 5-14 6.5-17.7 7.2-3.5.8-6.1 2-6.7 2.7 0-.6-.1-1.1.5-1.7 1.7-.7 4.4-1.2 8.3-2 7.7-1.6 15.8-4.5 20.2-12.9 5.8-11 2.4-19.7-2.6-28.2z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M279 220a.5.6 49.9 01-.6-.7.5.6 49.9 01.7.7z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M284.4 218.6c-1.2.7-2.3.9-3.2 1.2l-2.4.7-1.6.7c-.8.4-1.7 1.5-1.7 1.5s1.3 1.3 2.8 1.1c1.2-.1 1.8-.5 2.4-.8.7-.3.6-.6 1.6-1.3 1-.7 1.6-2.1 2-3.1zm-6 1.3c-.4.6-1.3.5-1.8.4l-.3.3c.7 0 1.7 0 2.1-.6v-.1z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M284.3 218.7a17.7 17.7 0 01-4.9 3c-2 .8-4.2 1-5.3 1l-.3.3a19.6 19.6 0 005.4-1.1 16 16 0 005.1-3.2zm-2.5 4.8c-2 0-3.2.6-5.2 1-1.7.4-3.9-.5-5 1.2 4.7 3 8 1 10.2-2.2z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M277.6 227.8c-1-.8-8.6-3.4-9.9-.5 1.9 2 7.2 2.5 9.9.5z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M275.7 229.8c-.8 0-1.7-.3-2.7-.4-.9 0-1.3-.2-2-.3-1.1-.2-2.4-1.8-6.4-.6 1.5 3.6 6.8 4.4 11.1 1.4zm1.8-2c-4.1.9-9 0-10.8-1l-.3.1a17.4 17.4 0 0011 1zm4.2-4.3c-2.4 1.6-5.5 2.9-12.1 2l-.2.2c9.2.8 10-.9 12.3-2.2z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M275.7 229.9c-3.2 0-5 1.5-11-1.4-.4-.3-1-.4-1.4-.6l-.6.2c.4.2 1 .2 1.5.3 7.4 3.3 7.2 1.8 11.5 1.5z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M263.7 225.7a.5.6 66.2 10.5.8.5.6 66.2 10-.5-.8z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M263.6 226.4c-.7.2-.9 1-1 1.5l-.3.1c.2-.6.5-1.5 1.2-1.8l.1.2z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M283.6 199.3a.5.6 15.8 11-.9-.3.5.6 15.8 011 .3z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M279 216.7c0-2.2-1.2.9-3.3-4.1-.7-1.5-.7-2.4-1.1-4.6 1.2 2 3.2 2.4 4 3.9.8 1.4.6 3.7.5 4.8z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M274.6 208.2s1.1 2.5 2.7 4.3c1.5 1.8 1.8 4 1.8 4"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M275.7 210.3c1.4 1.9 3.2 4 3.3 6.4h.2c-.3-3-2.1-4.4-3.2-5.9l-.3-.5zm11.6 2.9c-1 .8-2 1.1-3 1.5-.5.3-1 .8-1.5 1-.3.2-.9.2-1.4.6-.7.4-2.2 2.1-2.2 2.1s1.4 1.2 2.3 1c2.5-.5 3.2-1.5 4.5-2.4 1-.8 1-2.7 1.3-3.8z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M278 218.5l-.2.3c1.5-.1 3.8-1.5 5.3-2.3 2-1 3.2-1.8 4-3.3a9.5 9.5 0 01-4.1 3.3c-1.6.8-4 2.1-5 2z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M288.1 208.3c-.8 1-1.8 1.4-2.5 2l-1.4 1.2c-.3.2-.9.4-1.3.8-.6.6-1.6 2.3-1.6 2.3s.7.7 1.5.4c2.5-.3 3.3-1.5 4.2-3.7.5-1 1-1.9 1.1-3z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M279 212.8a.6.5 62 10.8-.4.6.5 62 00-.8.3z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M280 215l-.2.4c3-1.4 7-4.2 8.4-7-1.9 3-5 5-8.2 6.6zm8.8-11.4c-.7 1-1.6 1.6-2.3 2.1l-1.2 1.3-1.1.9c-.6.6-1.4 2.4-1.4 2.4s1 .8 1.7.5c.8-.4 1.8-1.3 2.3-1.7.5-.5.6-1.6 1.2-2.4.7-1 .8-2 .8-3z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M286.6 206.8a15.4 15.4 0 01-5 4v.4c2.7-1.6 3.8-3 5-4.4zm1.2-6c-.5 1-1.3 1.5-1.8 2.1l-1 1.3-.9.9c-.4.6-.8 2.3-.8 2.3s.6.6 1.2.2a12.5 12.5 0 002-1.8c.4-.4.6-1.5 1-2.3a4 4 0 00.3-2.8zm-4.7-1.2c-.3.5-.4 1.1-.5 1.7l-.1-.4c.1-.5.2-1 .5-1.4h.1z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M286.3 203.8a13.8 13.8 0 01-4 4.2l-.1.3c2.3-1.7 3.2-3.1 4.1-4.5zm-6 10.5a3.5 3.5 0 00-.6-1.4h-.1c.3.6.4 1 .5 1.7l.2-.3z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M279.4 193.4a.5.3 39.5 01-.6.5.5.3 39.5 01.6-.5z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M280.7 194.7a10 10 0 00-1.3-1c0 .1-.1.1 0 .2l1.4 1-.1-.2zm5.9.4c-1.2 2.5-4.1 4.3-3 8 3 2.7 3.2-4.8 3-8z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M283.8 189.5c-.5 2.6-2.8 4.8-1.3 8.2 4.3 1 2.3-4.7 1.3-8.2z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M281.3 185.6c2.1 4 2.7 6.3.1 8.9 0 0-1.3-1.3-1.6-3.5-.3-2 1.3-4.3 1.5-5.4z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M277.8 183.3c.5 2.5-1.6 3.7 1.5 7 2.2-2.7 1.1-3.4-1.5-7z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M277 187.7c-3.7.4-2.3-2.7-3.3-5.6 2.1 1.6 5 2.2 3.2 5.6zm2.3 4.8c-1-4.7-4.3-2.9-6-5 .9 3 2.2 5.1 6 5zm1.4 4.3c-2.8-.2-5-1.5-6.6-4.6 3 1.2 6.1 1.4 6.6 4.6z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M281.1 200.9c-1-1.3-1-2.1-1.5-3a9.6 9.6 0 00-3.3-3.9c0 3.3.5 7 4.8 6.9z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M281.8 204.3a21.5 21.5 0 00-6-6c1.1 2.3.6 6.6 6 6z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M281.3 209.1c-5.3-.1-4.8-5.1-4.8-7.5 1 1.5 2.1 2.7 3 3.7 1 1.2 1.8 2.4 1.8 3.8z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M280.7 212c-.5-1-.1-1.4-1-2.4-1.1-1-3-2.8-4-5-.2 2-.2 4.8 1.2 5.7 1 .8 2 1 3.8 1.8zm-4.6 7.8c-4.2-3.2-1.7-6-1.4-8.4 1.1 2.8 4 5.1 1.4 8.4zm1.6-31.1a59 59 0 00-3.9-6.5c2 3 3 4.9 4.1 6.9"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M276.1 220.6c.2-3.3-.7-6.1-1.3-9 .6 3 1.3 6.2 1 9.3l.3-.3zm5-7.9c-.5-2-4.5-3.3-5.4-8 .8 4.7 4.8 5.8 5.2 8.5l.1-.4zm.8-2.7v.5c-.7-3.1-4.4-4.7-5.4-8.9 1.5 4.6 4.5 5.2 5.4 8.4zm.8-4.7c-1.9-2.8-4.4-3.8-6.8-7 2.2 3.1 5 4.6 6.8 7.4v-.4zm-.1-3.6c-2-1-4-3.3-6.3-7.7 1.5 3.3 3.3 6.2 6.3 8.1v-.5zm-.9-4.3c-2.4-1.9-5.4-3.1-7.6-5.3 1.8 2 5.3 3.5 7.6 5.6v-.3zm-1.8-4.6c-2.4-1.6-4.7-2.1-6.6-5.2 1.5 3 4 3.8 6.6 5.4v-.2zm6.7 2.3c-.9 3.3-1.6 6.8-3.8 9v-.5c1-.5 2.6-4 3.8-8.5zm-2.7-5.5c-.2 3.4-.1 7-1.9 9l-.1-.5c1.8-1.4 1.6-5.2 2-8.5zm-2.4-3.8c.6 3 .6 5.7-.2 10.2l-.2-.4c.5-2.6 1-5.3.4-9.8zm-3.7-2.4c1.2 2.5 2.2 5.1 1.4 7.8l-.2-.3c.9-2.5-.2-5-1.2-7.5zm-4.6 33.3c1.4 3.4-.4 5.9-2.7 7.3-1.7-5 1.9-4.4 2.7-7.3z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M273.3 216.7c.2 2-2 4.5-2.8 8l-.3.3c1-4.3 3.3-6 3-8.3z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M281.3 193.3a.3.5 1.9 11-.7-.1.3.5 1.9 01.7.1z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M281.1 195.2v-1.7h-.2v1.9l.2-.2z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M280.3 193a.3.4 2 01-.5.2.3.4 2 01.5-.3z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M280.7 194.5a8.2 8.2 0 010 .3v-.3z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M282.4 199.3a.5.3 80.5 01-.7 0 .5.3 80.5 11.7 0z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M282.5 201.2a9.9 9.9 0 00-.4-1.6l.3 1.8.1-.2z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M281.2 199.7a.5.3 57 11-.5.5.5.3 57 01.5-.5z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M282.4 201.2a8.8 8.8 0 010 .3v-.4z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M281 212.4a.3.5 12.7 11-.7-.3.3.5 12.7 01.6.3z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M280.4 214.2l.2-1.6h-.1a9.5 9.5 0 01-.3 1.8l.2-.2z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M281.6 213.2a.3.5 50.5 00.5.5.3.5 50.5 10-.5-.5z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M280.2 214.5l1.4-1v.2a9.4 9.4 0 00-1.4 1v-.2z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M278.1 218.6a.3.5 40.4 01-.5-.6.3.5 40.4 01.5.6z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M276.8 219.9a10 10 0 001-1.3h-.2l-1 1.4.2-.1z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M276.1 218.2a.5.6 10 001 0 .5.6 10 10-1 0z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M276.7 218.7c-.3.7-.1 1 0 1.2l-.1.4c-.2-.4-.3-.8-.1-1.6h.2zm-13 10c-.7.1-1-.3-1.2-.7h-.4c.4.5.8 1 1.6 1v-.2z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M263.8 229.5a.6.5 9.5 01.2-.9.6.5 9.5 11-.2.9z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M269.5 219.8a5.9 5.9 0 01-4.2 6.8c-1-4.2 3-4.4 4.2-6.8z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M269.6 219.8a23 23 0 01-5.1 7.7h-.6a20 20 0 005.7-7.7z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M264.3 227.5a.5.4 9.8 01-.4-.8.5.4 9.8 11.4.8z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M262.3 228a8.6 8.6 0 001.6-.7h-.2l-1.7.7h.3zm2.8-5.3c-.1 1.3-1.2 2.5-2.1 3.5-1 .9-1.1 1.2-2.4 1.6-1.4-3 3-3.5 4.5-5z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M265.1 222.7c-1.5 2.7-3.8 4-5 5.8h-.2c1.8-2.4 3.3-2.9 5.2-5.8zm-30-35.5c-1.9 3-4.7 8.5-5.4 12.7a24 24 0 007.5 22.3c5.5 5 14 6.5 17.7 7.2 3.5.8 6.1 2 6.7 2.7 0-.6.1-1.1-.5-1.7-1.7-.7-4.4-1.2-8.3-2-7.7-1.6-15.8-4.5-20.3-12.9-5.7-11-2.3-19.7 2.7-28.2z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M249.7 227.8c-.2.5-4.3 4-8 3.7-2.6-.2-3-.8-3-.8s-.3-.7 2-1.2c2.5-.5 6.7-2.1 9-1.7z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M238.8 230.7c2.8.3 5.8-.8 8-1.7"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M246.6 222.6a11 11 0 014.9 4c1 1.6.8 2 .8 2s-.3.3-1.4-1c-1.2-1.4-3.6-3.6-4.3-5z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M252.3 228.5c-1-1.8-2.7-3.3-4-4.5"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M235 187.6c-.1-.4.3-3.7 2.1-4.7 1.4-.8 1.9-.6 1.9-.6s.4.3-.5 1.4c-1 1-2.3 3.3-3.6 3.9z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M239 182.3c-1.6.8-2.5 2.4-3.2 3.7"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M234 189.3c-.2-.3-1-3.2-.2-5 .6-1.5 1-1.6 1-1.6s.3 0 .1 1.4c-.2 1.4-.2 4-.9 5.2z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M234.7 182.8c-.7 1.5-.7 3.3-.7 4.7"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M234 189.3a9 9 0 004.1-2.2c1-1.1.9-1.4.9-1.4s-.1-.2-1.2.6c-1 .8-3 2-3.8 3z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M239 185.7c-1 1.2-2.5 2-3.6 2.8"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M232.7 191.6c-.1-.3-1.4-3.4-.9-5.6.3-1.6.7-1.8.7-1.8s.3 0 .3 1.5c0 1.6.3 4.5 0 5.9z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M232.5 184.3c-.5 1.7-.2 3.7 0 5.3"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M231.8 193.7c-.3-.2-2.4-3.1-2.2-5.6.1-1.8.5-2 .5-2s.5-.2.7 1.5c.3 1.6 1.3 4.5 1 6z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M230.1 186.1c-.2 2 .5 4 1 5.6"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M230.6 196.4a10 10 0 01-2.5-5c-.2-1.7 0-2 0-2s.3 0 .8 1.4c.5 1.5 1.7 4.2 1.7 5.6z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M228.2 189.5c0 1.8 1 3.7 1.6 5.1"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M232.8 191.6c.3 0 3.4-.3 4.8-1.8 1-1.2 1-1.6 1-1.6s-.1-.3-1.3.4c-1.3.8-3.7 1.9-4.5 3z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M238.6 188.3c-1.1 1.2-2.8 2-4.2 2.6"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M231.8 193.7c.2 0 3.4 0 5-1.5 1-1 1-1.5 1-1.5s-.1-.3-1.4.4c-1.2.7-3.7 1.6-4.6 2.6z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M237.8 190.8c-1.2 1.2-3 1.8-4.3 2.3"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M230.8 196.4c.3.1 3.6-.1 5.2-1.8 1.2-1.1 1.1-1.6 1.1-1.6s-.1-.4-1.4.4c-1.4.8-4 2-5 3z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M237 193c-1.1 1.4-3 2.2-4.4 2.8"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M231.3 195.2s-.3-.6-.3-1.1l.1-.9h-.2l-.1.8v.3l-.5-.5-.2-.4h-.1l.3.7c.5.4.8 1.2.8 1.2"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M230 192.3a.6.4 83.5 11.1 1.2.6.4 83.5 11-.1-1.2z" overflow="visible" style="marker:none"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M231.3 192.3a.4.6 19.3 11-.4 1.1.4.6 19.3 11.4-1z" overflow="visible" style="marker:none"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M231.2 195.2l1-.7.4-.8h.2l-.5.8-.2.3.7-.1.4-.3.1.2-.7.3c-.6 0-1.4.4-1.4.4"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M234 193.7a.4.6 45.6 10-.8.9.4.6 45.6 10.8-.8z" overflow="visible" style="marker:none"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M233 192.9a.4.6 19.8 10-.4 1.1.4.6 19.8 10.4-1.1z" overflow="visible" style="marker:none"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M229.8 199.3a11 11 0 01-3-5c-.3-1.8 0-2 0-2s.3-.2.8 1.3c.7 1.5 2 4.2 2.2 5.7z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M226.8 192.3c.2 1.9 1.2 3.8 2 5.2"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M230 199.3c.3.1 3.8-.4 5.3-2.2 1.1-1.3 1-1.7 1-1.7s-.1-.4-1.4.5c-1.4 1-4 2.2-5 3.5z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M236.3 195.4c-1.2 1.5-3 2.4-4.5 3.1"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M229.5 202.3c.3 0 3.8-1 5.4-2.9 1.2-1.3 1-1.7 1-1.7s0-.3-1.4.7-4 2.6-5 3.9z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M236 197.8c-1.3 1.4-3.2 2.5-4.6 3.4"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M229.4 202.3c-.3-.1-3.6-2.4-4-4.9-.4-1.8 0-2.1 0-2.1s.4-.3 1.1 1.3c.8 1.5 2.8 4 3 5.7z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M225.4 195.4a12 12 0 002.7 5.1"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M229.5 206c.3-.1 3.6-1.8 5-4 .9-1.5.7-2 .7-2s-.2-.2-1.4 1.1c-1.1 1.3-3.6 3.4-4.3 4.8z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M235.2 200.2c-1 1.7-2.7 3.2-4 4.3"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M229.4 206c-.4 0-3.9-1.7-4.8-4.2-.6-1.8-.4-2.2-.4-2.2s.4-.3 1.4 1.1c1 1.5 3.4 3.8 3.8 5.4z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M224.3 199.7c.6 2 2.2 3.6 3.5 4.8"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M229.4 204.4s-.5-.6-.6-1.1c-.2-.6 0-1 0-1h-.4l.2 1v.3c.3.4-.4-.3-.6-.4l-.3-.5-.2.2.6.6c.6.3 1.2 1 1.2 1"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M227.2 201.7a.6.4 69.4 11.5 1.2.6.4 69.4 11-.5-1.2z" overflow="visible" style="marker:none"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M228.6 201.3a.4.6 5.2 11-.1 1.3.4.6 5.2 11.1-1.3z" overflow="visible" style="marker:none"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M229.4 204.3s.5-.4.8-1c.3-.5.3-.8.3-.8h.2l-.3.8a4.2 4.2 0 01-.1.4l.7-.3.4-.4.1.2-.6.5c-.7.2-1.4.8-1.4.8"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M232 202a.4.6 31.5 10-.6 1.2.4.6 31.5 10.6-1.1zm-1.3-.5a.4.6 5.7 10-.1 1.2.4.6 5.7 10.1-1.2z" overflow="visible" style="marker:none"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M229.8 209.3c-.4 0-4-1.9-5.5-4.3-1-1.8-.9-2.2-.9-2.2s.3-.4 1.6 1c1.3 1.5 4 3.9 4.8 5.5z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M223.5 202.8c1 2 3 3.6 4.4 5"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M230 209.2c.4 0 4.3-2 5.2-4.6.8-2 .4-2.4.4-2.4s-.4-.4-1.5 1.2c-1.1 1.5-3.6 4-4 5.8z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M235.6 202.3c-.7 2.1-2.5 3.9-3.8 5.3"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M231 212.5c.4 0 4-2.3 4.9-5 .6-2 .3-2.5.3-2.5s-.3-.3-1.3 1.4c-1.1 1.6-3.5 4.4-3.9 6.1z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M236.2 205.1c-.6 2.2-2.3 4-3.5 5.6"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M230.8 212.5c-.5 0-5-1.3-6.7-4-1.1-2-.9-2.6-.9-2.6s.4-.5 1.9 1c1.6 1.5 4.8 3.8 5.7 5.6z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M223.3 206c1.1 2.2 3.4 3.8 5.2 5"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M234.8 219.4a12 12 0 003-6c.1-1.9-.2-2.2-.2-2.2s-.4-.1-.9 1.6c-.5 1.8-1.9 5-1.9 6.6z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M237.6 211.3c0 2.1-1 4.3-1.8 6"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M234.6 219.3c-.4.2-5.6 0-8-2.2-1.9-1.7-1.8-2.4-1.8-2.4s.3-.5 2.3.5c2 1.1 6.1 2.5 7.5 4.1z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M224.9 214.8c1.9 1.9 4.7 2.9 7 3.6"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M232.7 216.6c-.4 0-5-1-7.3-3.4-1.6-1.7-1.5-2.2-1.5-2.2s.2-.4 2 .9c1.9 1.2 5.5 3.1 6.8 4.7z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M224 211c1.6 2 4.2 3.3 6.2 4.3"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M233 216.5c.3-.2 3.8-3 4.2-6 .2-2.1-.2-2.6-.2-2.6s-.5-.2-1.2 1.6c-.8 1.9-2.8 5-2.8 7z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M237 208c-.2 2.4-1.6 4.6-2.7 6.4"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M232 214.9s-.8-.3-1.2-.9c-.4-.5-.5-.9-.5-.9h-.3l.5 1 .3.3-.8-.1-.6-.4v.3s.5.4.8.4a4 4 0 011.6.5"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M228.5 213.1a.7.5 45.9 111 1 .7.5 45.9 11-1-1z" overflow="visible" style="marker:none"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M229.8 212.1a.7.5 71.6 11.4 1.4.7.5 71.6 11-.4-1.4z" overflow="visible" style="marker:none"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M232 214.9s.4-.8.5-1.4c0-.7-.2-1-.2-1l.3-.2v1.5l.6-.6.3-.6.2.1s-.2.7-.4.9a4 4 0 00-1 1.4"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M233.7 211.4a.5.7 8 10-.2 1.4.5.7 8 10.2-1.4z" overflow="visible" style="marker:none"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M232.1 211.3a.7.5 72.2 10.5 1.4.7.5 72.2 10-.5-1.4z" overflow="visible" style="marker:none"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M236.6 221.4c-.4.2-4.6 1.2-7.3-.2-2-1-2-1.6-2-1.6s0-.5 2 0c2 .4 5.6.8 7.3 1.8z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M227.3 219.7c2.1 1.1 4.7 1.4 6.7 1.6"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M236.8 221.4c.2-.2 2-2.8 2-5.2 0-1.8-.4-2.1-.4-2.1s-.3-.2-.6 1.4c-.3 1.6-1.2 4.3-1 5.9z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M238.4 214.2c.2 1.9-.5 3.8-1 5.3"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M240.6 224.4c-.4.2-5.5 1.5-8.5.2-2.3-1-2.4-1.5-2.4-1.5s0-.6 2.4-.2c2.3.4 6.6.4 8.5 1.5z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M229.8 223.1c2.4 1.1 5.4 1.2 7.8 1.3"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M240.8 224.3c.2-.3 1.3-4 0-6-1-1.4-1.5-1.4-1.5-1.4s-.5.1-.1 1.7c.4 1.6.6 4.6 1.6 5.7z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M239.3 217c1.1 1.4 1.3 3.6 1.4 5.2"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M238.2 222.6s-.6.4-1.3 0c-.6-.3-.9-.7-.9-.7l-.3.2a10 10 0 001.4 1l-1 .2-.6-.2v.3l1 .1 1.6-.5"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M234.1 222.7a.8.6 24.1 111.5.6.8.6 24.1 11-1.5-.7z" overflow="visible" style="marker:none"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M235 221a.8.6 49.9 111 1.3.8.6 49.9 11-1-1.3z" overflow="visible" style="marker:none"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M238.3 223s.6-.6.2-1.3a2.8 2.8 0 00-.7-1l.2-.3.7 1 .2.5.3-1a17.5 17.5 0 000-.6h.2v1c0 .3-.6 1.6-.6 1.6"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M238.6 218.8a.8.6 69.5 10.6 1.5.8.6 69.5 10-.6-1.5zm-1.6.8a.8.6 43.7 101.1 1.2.8.6 43.7 10-1.1-1.2z" overflow="visible" style="marker:none"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M243.5 226c-.2.3-4.5 3.1-7.8 2.4-2.5-.5-2.8-1.1-2.8-1.1s-.2-.6 2-.8c2.4-.2 6.5-1.2 8.6-.5z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M233 227.3c2.6.7 5.5 0 7.7-.6"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M246.2 226.7s-.5.8-1.4.6c-.9-.2-1.3-.5-1.3-.5l-.3.3 1.4.5h.5s-.6.6-1 .6l-.7.2v.3l1.2-.3c.3 0 1.6-1.2 1.6-1.2"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M241.7 228.3a1 .6 5.4 111.8.2 1 .6 5.4 11-1.8-.2zm.4-2a1 .6 31.2 111.6.9 1 .6 31.2 11-1.6-1z" overflow="visible" style="marker:none"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M244.8 226.4c.2-.4.8-4.2-1-6-1.3-1.3-2-1.2-2-1.2s-.5.2.2 1.7c.8 1.5 1.5 4.5 2.8 5.5z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M242 219.3c1.4 1.3 2 3.4 2.3 5"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M246.8 227.3s.2-.9-.5-1.4c-.7-.6-1.2-.7-1.2-.7v-.3l1.3.6.4.4s0-.8-.2-1.1a20 20 0 00-.4-.7l.3-.2.6 1.1.1 2"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M245 222.9a1 .6 42.7 101.4 1.2 1 .6 42.7 10-1.4-1.2zm-1.3 1.7a1 .6 17 101.8.5 1 .6 17 10-1.8-.5z" overflow="visible" style="marker:none"/>
+  <path fill="#452c25" d="M255 223s-2.5 5.7-1.6 6.3c0 0 2.5-4.5 4.8-6.2 1.1-1.1 1.8 0 2-1 .1-1-3-2.3-3-2.3l-2.1 2.9"/>
+  <path fill="none" stroke="#000" stroke-width=".2" d="M255 223s-2.5 5.7-1.6 6.3c0 0 2.5-4.5 4.8-6.2 1.1-1.1 1.8 0 2-1 .1-1-3-2.3-3-2.3l-2.1 2.9"/>
+  <path fill="#452c25" d="M246 227.3s-3.7 6.4-2.7 6.4c1 .1 4.8-8 4.8-8l-1.3.2-.9 1.4z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M246 227.3s-3.7 6.4-2.7 6.4c1 .1 4.8-8 4.8-8l-1.3.2-.9 1.4z"/>
+  <path fill="#452c25" d="M247 225.6s-3.8 6.2-2.8 6.3c1 0 5-8 5-8l-1.3.3-.9 1.4z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M247 225.6s-3.8 6.2-2.8 6.3c1 0 5-8 5-8l-1.3.3-.9 1.4z"/>
+  <path fill="#452c25" d="M247.8 224.5s-4.3 5.8-3.4 6c1 .2 5.7-7.4 5.7-7.4h-1.3l-1 1.4z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M247.8 224.5s-4.3 5.8-3.4 6c1 .2 5.7-7.4 5.7-7.4h-1.3l-1 1.4z"/>
+  <path fill="#452c25" d="M249 223.5s-5.1 5.2-4.2 5.5a35 35 0 006.7-6.6l-1.4-.1-1.1 1.2z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M249 223.5s-5.1 5.2-4.2 5.5a35 35 0 006.7-6.6l-1.4-.1-1.1 1.2z"/>
+  <path fill="#452c25" d="M249.1 221.6s-4.4 5.8-3.4 6c.9.2 5.8-7.4 5.8-7.4h-1.3l-1 1.4z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M249.1 221.6s-4.4 5.8-3.4 6c.9.2 5.8-7.4 5.8-7.4h-1.3l-1 1.4z"/>
+  <path fill="#452c25" d="M248 226.5s-4.3 5.9-3.4 6c1 .3 5.7-7.4 5.7-7.4l-1.3.1-1 1.3z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M248 226.5s-4.3 5.9-3.4 6c1 .3 5.7-7.4 5.7-7.4l-1.3.1-1 1.3z"/>
+  <path fill="#452c25" d="M250.4 225.4s-2.5 4.7-2.2 5a17 17 0 004.9-5.6c1.5-2.8-2.8.5-2.8.5"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M250.4 225.4s-2.5 4.7-2.2 5a17 17 0 004.9-5.6c1.5-2.8-2.8.5-2.8.5"/>
+  <path fill="#452c25" d="M250.7 225s-2.5 5.7-1.6 6.3c0 0 3.1-3.5 4-6.3.7-2.8 0-.2 0-.2l-.3-3-2 2.9"/>
+  <path fill="none" stroke="#000" stroke-width=".2" d="M250.7 225s-2.5 5.7-1.6 6.3c0 0 3.1-3.5 4-6.3.7-2.8 0-.2 0-.2l-.3-3-2 2.9"/>
+  <path fill="#452c25" d="M249.4 224.4s-5 5.2-4.1 5.5c.9.3 6.6-6.6 6.6-6.6h-1.3l-1.2 1.1z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M249.4 224.4s-5 5.2-4.1 5.5c.9.3 6.6-6.6 6.6-6.6h-1.3l-1.2 1.1z"/>
+  <path fill="#452c25" d="M249.8 225.1s-5 5.2-4.1 5.5c.9.3 6.6-6.5 6.6-6.5l-1.3-.2-1.2 1.2z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M249.8 225.1s-5 5.2-4.1 5.5c.9.3 6.6-6.5 6.6-6.5l-1.3-.2-1.2 1.2z"/>
+  <path fill="#452c25" d="M250.2 226s-5 5.1-4.1 5.4c.9.4 6.6-6.5 6.6-6.5l-1.3-.2-1.2 1.2z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M250.2 226s-5 5.1-4.1 5.4c.9.4 6.6-6.5 6.6-6.5l-1.3-.2-1.2 1.2z"/>
+  <path fill="#452c25" d="M250.6 218.8s-3.8 4.8-3.2 5.6c.5.9 4-2.2 5-4.3 1.1-2.1-1.8-1.5-1.8-1.5"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M250.6 218.8s-3.8 4.8-3.2 5.6c.5.9 4-2.2 5-4.3 1.1-2.1-1.8-1.5-1.8-1.5"/>
+  <path fill="#452c25" d="M250.5 223.9s-3.3 6.2-2.4 5.8c.8-.3 4-5 4.4-6 .4-1 .3-2.1.3-2.1l-2.5 1.5.2 1.2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M250.5 223.9s-3.3 6.2-2.4 5.8c.8-.3 4-5 4.4-6 .4-1 .3-2.1.3-2.1l-2.5 1.5.2 1.2"/>
+  <path fill="#452c25" d="M250.5 221.9s2.7-5 0 .9c-2.7 5.8-3.7 4.9-3.7 4.9-.2-.4 2.3-4.3 2.3-4.3s2-3 2.4-3.3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M250.5 221.9s2.7-5 0 .9c-2.7 5.8-3.7 4.9-3.7 4.9-.2-.4 2.3-4.3 2.3-4.3s2-3 2.4-3.3"/>
+  <path fill="#452c25" d="M253.4 221.2s3-4.9 0 1c-3 5.7-4.2 4.8-4.2 4.8-.2-.4 2.6-4.3 2.6-4.3s2.1-3 2.6-3.3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M253.4 221.2s3-4.9 0 1c-3 5.7-4.2 4.8-4.2 4.8-.2-.4 2.6-4.3 2.6-4.3s2.1-3 2.6-3.3"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M252.3 219.2s-3.8 4.8-3.2 5.6c.5.8 4-2.2 5-4.3 1.1-2.2-1.8-1.5-1.8-1.5"/>
+  <path fill="#e8a30e" d="M291 267.8a35 39.4 0 11-70 0 35 39.4 0 1170 0z"/>
+  <path fill="none" stroke="#390" stroke-width=".9" d="M228 267.8c0-18.3 12.8-32.3 28-32.3s28 14 28 32.3" color="#000" font-family="Sans" font-weight="400" overflow="visible" style="line-height:normal;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;block-progression:tb;marker:none"/>
+  <path fill="#007934" stroke="#eee" stroke-width=".1" d="M221 269.9c1 20.8 16.3 37.3 35 37.3s34-16.5 35-37.3h-70z"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M291 267.8a35 39.4 0 11-70 0 35 39.4 0 1170 0z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M250.1 240.4c-.3 1.5 0 2.7.8 3.9a5 5 0 011 2.9 8.4 8.4 0 00-.8.4l-6-3.9 4 5.9a8.6 8.6 0 00-.2.3 5.2 5.2 0 00-3.2-.4 5.3 5.3 0 01-3.9-.8 4.8 4.8 0 003.3 2.2c1 .2 2 .6 2.7 1.4l-.2.8-7 1.4 7 1.4a9 9 0 00.1.3 5.2 5.2 0 00-2.5 2 5.3 5.3 0 01-3.4 2.2c1.5.4 2.8 0 4-.8.8-.5 1.8-1 2.8-.9l.5.7-4 6 6-4 .2.2a5.2 5.2 0 00-.4 3.2 5.3 5.3 0 01-.8 3.9 4.8 4.8 0 002.2-3.3 5.2 5.2 0 011.4-2.7l.9.2 1.4 7 1.3-7h.4a5.2 5.2 0 002 2.5 5.3 5.3 0 012.2 3.3 4.8 4.8 0 00-.8-4 5.2 5.2 0 01-1-2.8l.8-.5 6 4-4-5.9a8.6 8.6 0 00.2-.3 5 5 0 003.2.4 5.3 5.3 0 013.9.8 4.8 4.8 0 00-3.4-2.2 5.2 5.2 0 01-2.7-1.4l.2-.9 7-1.4-7-1.3a8.3 8.3 0 000-.4 5.2 5.2 0 002.5-2 5.3 5.3 0 013.3-2.1 4.8 4.8 0 00-3.9.7 5.2 5.2 0 01-2.8 1 8.4 8.4 0 00-.5-.8l4-5.9-6 4a8.6 8.6 0 00-.2-.2c.5-1.2.6-2.2.4-3.2a5.3 5.3 0 01.8-4 4.8 4.8 0 00-2.2 3.4 5.2 5.2 0 01-1.4 2.7 8.5 8.5 0 00-.9-.2l-1.4-7-1.3 7h-.4a5.2 5.2 0 00-2-2.5 5.3 5.3 0 01-2.2-3.3z" overflow="visible" style="marker:none"/>
+  <use width="330" height="330" fill="#fcbf49" stroke-width="1.1" transform="rotate(22.5 -488.5 805) scale(.15213)"/>
+  <use width="330" height="330" fill="#fcbf49" stroke-width="1.1" transform="matrix(-.15213 0 0 .15213 270.9 248.2)"/>
+  <path d="M262.2 252.5c-1.7-1.5-4-1.8-5.1-.6-1 1.2-.8 2.5.2 4a.6.6 0 00-.3.2 5.2 5.2 0 01-.4-4.4c1.7-1.3 4-1.5 5.6.8"/>
+  <path d="M259.5 252c-1 0-1.2.3-1.7.6-.4.4-.7.3-.7.4-.1 0 0 .3.1.2.2 0 .5-.2 1-.6s.8-.3 1.3-.3c1.4 0 2.1 1.1 2.3 1 .1 0-.8-1.3-2.3-1.3"/>
+  <path d="M261.3 253.3c-1-1-2.9-1.1-3.6.1h.3c.7-1.2 2.6-.7 2.7-.2v.2"/>
+  <circle cx="259.4" cy="253.3" r=".7"/>
+  <path d="M257.7 253.4c.7.7 2.4.8 3.6 0l-.6-.2c-.7.9-2 .8-2.7.2v-.2"/>
+  <path d="M261.3 253.7c-1.3 1-2.6 1-3.3.5-.8-.5-.8-.6-.6-.6l.9.4c.6.3 1.5.3 3-.3m-3.7 2.3a.5.5 0 11-.6.4c0 .2-.4.6-1 .6h-.1l.1.3c.1 0 .6 0 1-.2a.7.7 0 10.6-1.1m1 3.2c-.8-.5-1-1.2-1.8-1.2a2 2 0 00-.8.3h-.1l.1.2c.3 0 .8-.4 1.3 0l1.2.7m-.2 0c-1.5-.5-1.8-.2-2.3-.2h-.1l.1.3c.6 0 1-.4 2.3-.1"/>
+  <path d="M258.5 259.2c-1.7-.2-1.1.8-2.5.8h-.1l.1.2c1.7 0 1-.9 2.5-1m-8.7-6.7c1.7-1.5 4-1.8 5.1-.6 1 1.2.8 2.6-.2 4 0 0 .2 0 .3.2a5.2 5.2 0 00.4-4.4c-1.7-1.3-4-1.5-5.6.8"/>
+  <path d="M252.5 252c1 0 1.2.3 1.7.6.4.4.7.3.7.4.1 0 0 .3-.1.2-.2 0-.5-.2-1-.6s-.8-.3-1.3-.3c-1.4 0-2.1 1.1-2.3 1-.1 0 .8-1.3 2.3-1.3"/>
+  <path d="M250.8 253.3c1-1 2.8-1.1 3.5.1h-.3c-.7-1.2-2.6-.7-2.7-.2v.2"/>
+  <circle cx="-252.7" cy="253.3" r=".7" transform="scale(-1 1)"/>
+  <path d="M254.3 253.4c-.7.7-2.4.8-3.5 0l.5-.2c.7.9 2 .8 2.7.2v-.2"/>
+  <path d="M250.7 253.7c1.3 1 2.6 1 3.3.5.8-.5.8-.6.6-.6l-.9.4c-.6.3-1.5.3-3-.3m3.7 2.3a.5.5 0 10.6.4c0 .2.4.6 1 .6h.2l-.2.3c-.1 0-.6 0-1-.2a.7.7 0 11-.6-1.1m-1 3.2c.8-.5 1-1.2 1.8-1.2l.8.3h.2l-.2.2c-.3 0-.8-.4-1.3 0l-1.2.7m.2 0c1.5-.5 1.8-.2 2.3-.2h.1l-.1.3c-.6 0-1-.4-2.3-.1"/>
+  <path d="M253.5 259.2c1.7-.2 1.1.8 2.5.8h.1l-.1.2c-1.7 0-1-.9-2.5-1"/>
+  <path fill="#007934" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M259.4 275.6c1.7.3 3.5.2 5-.3a10.5 10.5 0 014.6-.6c0-.2.4-.4.2-.6-.6-.3-1.3-.3-2-.6-1.1-.5-1.8-1.4-3-2 0-.1-.5-.4-.5-.7 2.3 3.4 8 1.7 12.7 1.3.5.1 1.6-.2 2.6-.5 1.2-.4 4 0 4.7-.6l-1.5-1c-.6-.9-2.4-.8-3.2-1.7-1.4-1.5-3.5-2-5.1-3.2-.4-.2-1.2-.1-1.7-.3-.7-.5 0-.5-5.4-4.9-4.8-2-4.5-3.5-7.5-4.6-1-.6-2-1.5-3-1.2-1.5.4-5 2.2-6.6 3l-4 3.1c-.3.3-3.7 3.1-7.5 5.2a121 121 0 01-9.9 5c8.7-.4-7.7 2.5 31.1 5.2z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M238.2 265.7a59 59 0 0013.2-9c-.4 0 .7 1 .6 1.4.8 0 .4-1 1-1s1-.2 1.4-.3c.5-.1.2.2.2.4-.7 1.3-2.2 2-3.4 3 .1.2.3.3.2.4.4.1 1 .1 1.2-.1l.1-.4c.5.2.3.5.1.8-.3.7-1.5.6-2 1.2a6.6 6.6 0 01-1.5 1.7c.5-.4 1.1-1 1.8-1 1-.1 1.4-.8 2.3-1 1-.2 1.6-1 2.4-1.6-.3.5-1 .9-.7 1.4a.6.6 0 00.6.1c-.7.9-2.1 1.6-2.6 2.6-.4-.1-.7.2-1 .2-.5.2-.4.9-.7 1-1.2.8-1.9 2-2.4 3l-1.5.8c-.7.2-4.9 3.5-5 3-.3-2.2-4.6 1.8-14.1-1.6m32.6-.1l-.2-.2c.1-.3-.5-.4-.5-.7 1 0 2 1.3 2.6.5.2-.1-.3-.4.4-.6.2 0-.1-.2 0-.3h-1l-.8-.3c-.3-.1-.5-.5 0-.6 1-.2 2 .5 2.8.2l1.8-.6c.3 0 1.3 0 1 .3-.3.2-.8.1-1 .2-.6.1-1 .4-1.6.6.4 0 .3.4.7.3.7-.2 1.4-.5 2.1-.5l.2-.5h.2c-.3-.5.7-.3 1-.7l.2.1c-.5.2-.3.6-.4.8l-.3.3c.3.2.3-.2.6 0h.6c.4 0 .8-.1.6-.4-.3-.3-.6-.5-.6-.9h-.2c.6 0 1 .1 1.2.4.3.2.4.6.8.7.9.2.8-.2.8-.7.7 0 1.7.4 1.5.7 0 .3-.6.5-1.1.5-.4 0-.2.3-.4.3-.4 0-1 0-1.1.3-.2.2 0 .7.3 1h2c.1-.4.6-.5 1-.8.4-.2-.3-.4-.6-.6-.3-.1-.1-.2 0-.4.3-.3 1 0 1-.2.2-.3-.1-.7.2-.8.2-.2.5.1.4.3l.7-.2c.4 0 .6.3.4.3-.4.3-.8.5-.7 1 0 .2-.5.2-.3.4.5.3.4.6.6 1 .1.4 1 .5 1.7.3-.3-.7 1.4-.3 2.2-.5v-.2c-.4-.2-.5-.3-.4-.6l-.2-.2c1.1.4 3 1 3.9 1.6-1 .2-3-.3-4 0-1.4.2-2.6.6-4 .6-.6 0-1.2-.3-1.8-.4m-12-.7l-.3-.1"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M257.3 276.4c2 0 2.3 1.5 3.7.1 1.2.2 2.4-.2 2.4-.4 2.9.6 11.9-.2 11.3-.8-1-1-2.5-1.5-3.7-2.4l-1.2-.4c-.7-.2-1.6 0-2.1-.3-1-.5-2-1-2.8-1.6-.5-.4-.7-1-1.3-1.5-.6-.4-1.4-.5-2-.8-1-.3-1.5-1.3-2.4-2-.3-.2-.8-.1-1.2-.4-.7-.3-1.3-1.2-2-1-1.2.1-1.9 1.1-3 1.6-1 .5-1.5 1.3-2.3 1.8-.2.1-2.8 1.9-5.7 3a76.7 76.7 0 01-7 2.7s2.5 1.9 8.5 1.6l3.6 1.2 2-.4h5.1z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M245 271.8c1.4-.6 6.5-3 8-4.8-.2 0 .5.5.4.8.5 0 .3-.5.7-.6l.8-.1c.3-.1.1 0 .1.2-.4.7-1.3 1-2 1.6 0 0 .1.1 0 .2h.8l.1-.3c.3.1.2.3 0 .4-.1.4-.9.4-1.1.7l-1 1c.3-.3.7-.6 1.1-.6.7 0 .9-.4 1.4-.5.6-.2 1-.6 1.5-.9-.2.2-.6.4-.5.7l.4.2c-.4.4-1.2.7-1.5 1.3-.3-.1-.5 0-.7.1-.2 0-.2.5-.3.6-.8.3-1.2 1-1.5 1.5 0 0-.7.4-1 .4-.3.2-2.9 2-3 1.7-.2-1.2-2.6.5-8.5-1.3"/>
+  <path fill="#00a6de" stroke="#000" stroke-width=".1" d="M256 228.4c-19.3 0-35 17.7-35 39.4 0 21.8 15.7 39.4 35 39.4s35-17.6 35-39.4-15.7-39.4-35-39.4zm0 8.8c14.1 0 26.3 13.1 26.3 30.6s-12.2 30.6-26.3 30.6c-14.1 0-26.3-13.1-26.3-30.6s12.2-30.6 26.3-30.6z" color="#000" font-family="Sans" font-weight="400" overflow="visible" style="line-height:normal;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;block-progression:tb;marker:none"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M261 284.6c0 .2 0 .2-.4.2-.4.1-.5.1-.5-.1s0-.2.5-.3c.3 0 .4 0 .4.2z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M261.1 284.6l-.5.2h-.6c0-.2.3-.3.6-.3h.5zm-3 9.5c.9-2.2 1-4-.1-6.4 2-1.9 3.5-1.2 4.8.1-1.3 2.4-1 4.1-.2 6.4a4.3 4.3 0 01-4.5 0z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M260.3 286.5v8.3c0-2.8.2-5.5 0-8.3z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M260.7 286.6a47.4 47.4 0 00-.4 8.2h.2c0-3.1 0-5.7.4-8.2a3 3 0 00-.2 0zm.7-2.7c-.4.4-.5.4-.4 1 .4-.2.4-.5.4-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M260.6 284.2c.2.2.6.4.4 1-.5-.3-.4-.4-.4-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M260.5 284.9c.3.2.6.3.4.8-.3-.3-.4-.3-.4-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M260.4 285.2c.3.3.6.4.4 1-.4-.3-.4-.3-.4-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M260.3 285.8c.3.2.7.3.4 1-.4-.4-.2-.5-.4-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M260.3 286.3c.2.2.6.4.4 1-.4-.4-.4-.4-.4-1zm1.3-1.8c-.2.1-.6.1-.6.8.5-.3.5-.2.6-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M261.6 285c-.2.1-.7 0-.7.7.6-.3.6-.2.7-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M261.5 285.4c-.2.1-.6.1-.7.8.6-.3.6-.2.7-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M261.5 286c-.2 0-.7-.1-.7.7.4 0 .4-.3.7-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M261.3 286.5c-.3.1-.5 0-.6.8.5-.4.5-.3.6-.8zm.3.4c-.8 2.2-1 4.2-.9 7.9a6.8 6.8 0 00.2 0c0-3.7.1-5.7.8-7.8a3 3 0 00-.1-.1zm1.2-2.4c-.4.3-.6.2-.5.9.4-.2.4-.4.5-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M262 284.6c.2.2.5.4.1 1-.3-.4-.2-.4-.1-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M261.8 285.2c.2.3.5.4.2 1-.2-.5-.3-.5-.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M261.6 285.5c.2.3.5.5.2 1.1-.4-.4-.3-.5-.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M261.4 286c.2.3.6.5.2 1-.4-.4-.1-.5-.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M261.2 286.5c.2.3.6.5.2 1-.3-.3-.3-.4-.2-1zm1.8-1.4c-.3 0-.7 0-.8.6.5-.2.5-.1.8-.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M262.8 285.5c-.2.1-.7 0-.8.6.6-.2.6-.1.8-.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M262.7 286c-.3 0-.7 0-.9.6.6-.2.6-.2.9-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M262.5 286.5c-.2 0-.7-.2-.9.6.5 0 .5-.3 1-.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M262.2 287c-.4 0-.5 0-.7.6.5-.2.5-.2.7-.7zm.1.4c-1 2-1.2 3.8-.7 7.2a5 5 0 00.2 0c-.5-3.3-.3-5.2.6-7.1a3.5 3.5 0 000-.1zm1.7-2.4c-.5.2-.7.2-.7.8.4-.1.5-.3.7-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M263.1 285c.2.3.4.5 0 1-.3-.4-.2-.4 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M262.8 285.6c.2.3.5.5.1 1-.1-.5-.3-.5 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M262.6 285.9c.2.3.4.6 0 1-.3-.4-.2-.4 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M262.3 286.4c.2.3.5.5 0 1-.2-.5 0-.5 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M262 286.8c.2.3.6.6.2 1-.3-.4-.3-.4-.1-1zm2-1.2c-.2 0-.6 0-.9.5.6 0 .6 0 .9-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M263.8 286c-.2.1-.7 0-.9.5.7 0 .6 0 1-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M263.6 286.4c-.2 0-.7 0-1 .5.7 0 .7 0 1-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M263.4 287c-.3 0-.7-.4-1 .4.5 0 .5-.2 1-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M263 287.4c-.3 0-.5-.1-.8.5.5-.1.5 0 .8-.5zm-3.2-.8h-.1a44 44 0 00.1 0zm-.7-2.7c.4.4.6.4.4 1-.4-.3-.4-.5-.4-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M259.9 284.2c-.2.2-.6.3-.4 1 .5-.3.4-.4.4-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M260 284.9c-.3.2-.6.2-.4.8.3-.3.4-.3.4-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M260 285.2c-.2.3-.5.4-.3 1 .4-.3.4-.3.4-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M260.2 285.8c-.3.2-.7.3-.4 1 .4-.4.2-.6.4-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M260.2 286.3c-.2.2-.6.3-.4 1 .4-.4.4-.4.4-1zm-1.3-1.9c.2.2.6.2.6.9-.5-.4-.5-.3-.6-.9z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M258.9 284.9c.2.1.7.1.7.8-.6-.3-.6-.3-.7-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M259 285.3c.2.2.6.2.7.9-.6-.4-.6-.3-.7-.9z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M259 286c.2 0 .7-.1.7.7-.4-.1-.4-.4-.7-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M259.2 286.4c.3.2.5.2.6.8-.5-.3-.5-.2-.6-.8zm-.2.6a4 4 0 00-.2 0c.7 2.2 1 4.2 1 7.7a20 20 0 00-.8-7.8zm-1.3-2.7c.4.4.6.3.6 1-.5-.2-.5-.4-.6-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M258.5 284.5c-.2.3-.5.5-.1 1 .3-.4.3-.4.1-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M258.7 285.1c-.2.3-.5.4-.2 1 .2-.4.3-.4.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M258.9 285.5c-.2.3-.5.4-.2 1 .4-.4.3-.4.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M259.1 286c-.2.3-.6.4-.2 1 .4-.4.1-.5.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M259.3 286.5c-.2.3-.6.5-.3 1 .3-.4.4-.4.3-1zm-1.8-1.6c.3.2.7 0 .8.7-.6-.2-.5-.1-.8-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M257.7 285.4c.2.1.7 0 .8.6-.6-.2-.6-.1-.8-.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M257.8 285.8c.3.1.7 0 .9.7-.6-.2-.6-.2-.9-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M258 286.4c.2 0 .7-.2.9.6-.5 0-.5-.3-1-.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M258.3 286.8c.3.1.5 0 .7.7-.5-.2-.5-.2-.7-.7zm0 .7h-.2c1 2 1 3.8.8 7h.2c.3-3.2.1-5-.8-7zm-1.8-2.7c.5.3.7.2.7.9-.4-.2-.5-.4-.7-.9z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M257.4 284.9c-.1.3-.4.5 0 1 .3-.4.2-.4 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M257.7 285.5c-.2.3-.5.4-.1.9.1-.4.3-.4 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M257.9 285.8c-.2.3-.4.5 0 1 .3-.4.2-.4 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M258.2 286.3c-.2.3-.5.5-.1 1 .3-.5 0-.5 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M258.4 286.8c-.2.2-.5.5 0 1 .2-.4.2-.5 0-1zm-1.9-1.4c.2.1.6 0 .9.6-.6-.1-.6 0-.9-.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M256.7 285.9c.2 0 .7-.1.9.5-.7-.1-.6 0-1-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M256.9 286.3c.2 0 .7-.1 1 .5-.7 0-.7 0-1-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M257.1 286.8c.2 0 .7-.3 1 .5-.5 0-.5-.2-1-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M257.5 287.2c.3 0 .5 0 .8.6-.6-.1-.5-.1-.8-.6zm2.3-3.4c.4.5.6.5.3 1-.3-.2-.3-.5-.3-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M260.6 284.2c-.2.2-.6.3-.4 1 .4-.3.4-.4.4-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M260.6 284.9c-.3.2-.6.2-.4.8.3-.3.4-.3.4-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M260.7 285.2c-.3.3-.6.3-.4 1 .4-.3.4-.3.4-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M260.8 285.8c-.3.2-.7.3-.5 1 .5-.4.3-.6.5-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M260.8 286.3c-.2.2-.7.3-.5 1 .4-.4.5-.4.5-1zm-1.2-2c.1.2.6.3.5 1-.5-.4-.5-.4-.5-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M259.6 284.8c.2.2.6.2.6.9-.6-.4-.5-.3-.6-.9z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M259.6 285.3c.2.1.7.2.7.8-.6-.3-.6-.3-.7-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M259.6 285.9c.2 0 .7 0 .7.8-.4-.2-.4-.4-.7-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M259.8 286.4c.3.1.5.1.5.8-.4-.3-.4-.3-.5-.8zm-.4.3h-.1c.6 2.6.7 5 .7 8h.1c.1-2.7 0-5.3-.7-8zm-1-2.5c.4.3.6.3.5 1-.5-.3-.5-.5-.6-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M259.2 284.4c-.2.2-.5.4-.2 1 .3-.4.3-.4.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M259.3 285c-.2.3-.5.4-.2 1 .2-.4.3-.4.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M259.5 285.4c-.2.2-.5.4-.2 1 .3-.4.3-.4.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M259.7 285.9c-.2.3-.6.4-.3 1 .4-.4.2-.5.3-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M259.8 286.4c-.2.3-.6.4-.3 1 .3-.4.4-.4.3-1zm-1.6-1.6c.2 0 .6 0 .7.7-.5-.3-.5-.2-.7-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M258.3 285.2c.2.1.7 0 .8.7-.6-.2-.6-.2-.8-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M258.4 285.6c.2.2.7.1.8.8-.6-.3-.6-.2-.8-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M258.5 286.2c.3 0 .7-.1.9.7-.5 0-.5-.3-.9-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M258.8 286.7c.4 0 .5 0 .7.7-.5-.2-.5-.2-.7-.7zm-.8 1a6.7 6.7 0 01.8 4c0 .8-.2 1.7-.4 2.6h.2c.6-2.7.5-4.7-.6-6.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M258.6 287.2c.8 2.3.9 4.4.7 7.5h.2a16 16 0 00-.9-7.5zm-1.5-2.6c.5.3.7.2.7.9-.5-.2-.5-.4-.7-.9z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M258 284.6c-.2.3-.5.5 0 1.1.2-.4.1-.4 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M258.2 285.3c-.2.3-.5.4-.1.9.2-.4.3-.4.1-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M258.4 285.6c-.1.3-.4.5 0 1 .3-.4.2-.4 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M258.7 286c-.2.4-.6.6-.1 1.1.3-.5 0-.5.1-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M258.9 286.6c-.2.3-.5.5-.1 1 .2-.4.2-.5.1-1zm-1.9-1.4c.3 0 .7 0 .9.6-.6-.2-.6-.1-.9-.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M257.2 285.6c.2.1.7 0 .9.6-.7-.1-.6 0-.9-.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M257.4 286c.2.1.7 0 .9.6-.6-.1-.6 0-.9-.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M257.6 286.6c.2 0 .7-.3 1 .5-.5 0-.6-.2-1-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M258 287c.3 0 .5 0 .7.6-.5-.2-.5-.1-.7-.6zm-2-1.7c.5.2.6 0 .8.7-.5 0-.6-.3-.9-.7zm.8-.1c-.1.3-.4.6.1 1 .3-.4.2-.5-.1-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M257.2 285.8c-.2.3-.4.4 0 .9.1-.4.2-.4 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M257.4 286c-.1.4-.3.6.1 1.1.3-.5.2-.5-.1-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M257.8 286.5c-.2.3-.5.6 0 1 .3-.5 0-.5 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M258 287c0 .2-.4.5 0 1 .3-.5.3-.5 0-1zm-2-1.1c.2 0 .6-.2 1 .4-.7 0-.7 0-1-.4z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M256.2 286.3c.3 0 .7-.2 1 .4-.7 0-.6 0-1-.4z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M256.5 286.6c.2 0 .7-.1 1 .5-.7 0-.7 0-1-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M256.8 287.1c.2 0 .6-.3 1 .4-.5.1-.6-.1-1-.4z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M257.2 287.5c.4 0 .5 0 .8.5-.5-.1-.5 0-.8-.5zm4-.8a27.5 27.5 0 00-.7 8h.2c0-3 0-5.4.7-8h-.1zm1.1-2.4c-.4.3-.6.3-.5.9.4-.2.5-.4.5-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M261.5 284.4c.2.3.5.5.2 1-.4-.3-.3-.4-.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M261.3 285c.3.3.6.4.3 1-.3-.4-.4-.4-.3-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M261.2 285.4c.2.3.5.5.2 1-.4-.3-.3-.4-.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M261 286c.2.2.6.4.3 1-.5-.5-.2-.6-.3-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M260.8 286.4c.3.3.6.5.3 1-.3-.3-.3-.4-.3-1zm1.7-1.5c-.2 0-.7 0-.8.7.6-.3.6-.2.8-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M262.4 285.3c-.2.1-.7 0-.8.6.6-.1.6 0 .8-.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M262.3 285.7c-.3.2-.8 0-.9.7.7-.2.6-.1.8-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M262.1 286.3c-.2 0-.7-.2-.8.6.4 0 .5-.3.8-.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M261.8 286.8c-.3 0-.5 0-.6.6.5-.2.4-.1.6-.6zm.2.3c-1 2.3-1.1 4.4-.9 7.6h.2c-.2-3.2 0-5.3.8-7.5zm1.5-2.4c-.4.3-.6.2-.6.9.5-.2.5-.4.7-.9z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M262.7 284.8c.2.3.5.5 0 1-.2-.4-.2-.5 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M262.4 285.4c.3.3.5.4.2.9-.2-.4-.3-.4-.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M262.3 285.7c.1.3.4.5 0 1-.3-.4-.2-.4 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M262 286.2c.2.3.5.5 0 1-.3-.5 0-.5 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M261.8 286.6c.1.3.5.6 0 1.1-.2-.4-.2-.5 0-1zm1.8-1.3c-.2.1-.6 0-.8.6.6-.1.5 0 .8-.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M263.4 285.8c-.2 0-.6-.1-.8.5.6-.1.6 0 .8-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M263.3 286.2c-.3 0-.7-.1-1 .5.7 0 .7 0 1-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M263 286.7c-.2 0-.6-.3-.9.5.5 0 .5-.2 1-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M262.7 287.1c-.4 0-.5 0-.8.6.5-.1.5-.1.8-.6zm0 .6c-1.2 2-1 4.2-.6 6.7h.2c-.2-1.2-.4-2.1-.3-3a6.4 6.4 0 01.8-3.6 11.8 11.8 0 00-.1 0zm2-2.2c-.5.2-.7 0-.8.7.5 0 .6-.3.8-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M263.9 285.3c0 .4.3.6-.2 1.1-.2-.5-.1-.5.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M263.5 285.9c.2.3.4.5 0 1-.2-.5-.3-.5 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M263.3 286.2c0 .3.3.6-.2 1-.2-.5-.1-.5.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M262.9 286.6c.1.3.4.6 0 1-.3-.5 0-.5 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M262.6 287c.1.3.4.6 0 1-.2-.4-.3-.5 0-1zm2-1c-.2.1-.6-.1-.9.5.6 0 .6 0 1-.4z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M264.4 286.5c-.2 0-.6-.2-1 .3.7 0 .7 0 1-.3z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M264.2 286.8c-.3 0-.7-.2-1 .4.6 0 .6 0 1-.4z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M263.9 287.3c-.3 0-.6-.4-1 .3.4.1.5 0 1-.3z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M263.4 287.6c-.3 0-.4 0-.8.5.5 0 .5 0 .8-.5zm-3.7 3h1.2c.8 0 1.3.2 1.3.4s-.5.3-1.3.3h-1.2c-.7 0-1.3-.2-1.3-.4s.6-.3 1.3-.3z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M258.9 290.6l-.4.6a.3.3 0 00.2 0h.2l.4-.6h-.4zm1 0l-.5.7h.5l.4-.7h-.5zm.9 0l-.5.7h.5l.4-.7h-.4zm.9 0l-.4.7h.5l.3-.6a.3.3 0 00-.2 0h-.2z"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M252.3 286.7l.5 2.9.2.2v1l.1.2c.3.5.3 1.2.4 1.7 0 .2 0 0 .4.6h.4l.1.2-.2.3h-.7l-.3-.2v-.2l-.2-.1-.1-.6-.8-1c-.1-.2-.1-.5-.3-.6 0-.2-.2-.2-.3-.3-.5-1.1-1-3.1-1-3.1m-6.9-1.2l2 .4-.6 2.8c-.3.9-.3 1-.2 1.2.2.4.4 1.2 1.2 2.3.2.3.5.3.6.4l.5.4h.6l.1-.2c0-.2-.3-.1-.5-.3-.1-.3-.6-.8-.6-1.2-.3-.8-.2-.8-.2-1.6 0-.4.4-1.3.5-1.8a4.6 4.6 0 00.5-2l-.8-2-.5-.6m-1.8-1.2c-3 1-1.7 3.8-.9 3.8m9.8-8.7l.5-1v-.4l-.8 1"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M255.1 279.9h.5v-.3l-.1-.4c-.5-.4-1-.4-1-.7v-.2c0-.2-.9-.3-1-.5l-.5-.2h-.3c-.7 0-1 .8-1.2 1.3 0 0-.2 2.3-.6 3.3a.8.8 0 01-.1.3l-.2.2-4.5-.3a4 4 0 00-2 .8s-1 .7-1.2 1.7c0 .4 0 .8.2 1.2 1 2.7 2 0 2.3 0h.4c.5 0 1.4 1.6 2.8 2 4.3.9 5.5-1.4 5.4-6.3v-.2l.2-.5v-.5l-.1-.3 1.2-.2.2-.1"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M253 278.5l.6-1.2v-.5l-1 1.1v.1m-9.5 8c.3.9.8 1.7.7 2 0 .4-.3.6-.3.7l-.1.1c-.2.1-.2.4-.3.6l-.1.6c0 .8.5 2.4.6 2.4l.3.3v.5l-.1.7v.2l.4.2h.6l-.4-.4a.4.4 0 010-.3l.3-.4v-.4l-.1-.2a8.8 8.8 0 01-.1-1v-1.2l.2-.1.1-.3 1-.6 1-1.1.1-.5a.6.6 0 000-.2 4 4 0 00-.3-1 3.4 3.4 0 00-.6-.8m6.3 2c-.6.3-2 .6-2 .9 0 0 0 1.7-.2 2.4l-.3.6-.2.7c-.1.3-.3.6-.3 1v.5l.4.2-.4.2-.7-.3v-.6l.1-.7-.1-.5-.1-1.4v-5m5-5.7c.2.3.5.4 1.3.1.2.1.4.3.7-.2m-.4-.6l.3.1c0-.1 0-.2-.1-.1h-.2z"/>
+  <path d="M253.6 278.8l.1.1c.1.2.4.3.6 0-.3-.3-.5-.1-.6 0z"/>
+  <path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M265.7 291.1a2 2 0 000 .8 2 2 0 000 .8 2 2 0 000 .8 2.1 2.1 0 000 .7c.3.2 1 .2 1.3 0v-.7a2 2 0 000-.8 2 2 0 000-.8 2 2 0 000-.8 2.4 2.4 0 000-.8 2.2 2.2 0 000-.8 2.4 2.4 0 000-.8v-.9a2.5 2.5 0 000-.8 2.6 2.6 0 000-.9 2.3 2.3 0 000-.8 2 2 0 000-.8 2.7 2.7 0 000-.9 2.5 2.5 0 000-.8v-.8a3.1 3.1 0 000-.9 3.1 3.1 0 000-.8v-2.5a2.4 2.4 0 00-.1-.8v-.8a2.1 2.1 0 000-.3h-.8v.3c-.1.1-.1.6 0 .8a2.5 2.5 0 000 .8 2.7 2.7 0 00-.1.8 2.9 2.9 0 000 .8v.9a3.1 3.1 0 000 .8 3.1 3.1 0 000 .9 3.5 3.5 0 000 .8 2.5 2.5 0 00-.1.8 2.6 2.6 0 000 .9c0 .2-.1.5 0 .8a2.4 2.4 0 000 .8 2.6 2.6 0 000 .9c-.1.2-.1.5 0 .8a2.8 2.8 0 00-.1.9v.8a2.2 2.2 0 000 .8 2.4 2.4 0 000 .8z"/>
+  <path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width=".1" d="M265.7 291.9h1.3m-1.3-.8h1.3m-1.2-.8h1.2m-1.2-.8h1.2m-1.2-.9h1.2m-1.2-.8h1.2m-1.2-.8h1.2m-1.1-.9h1m-1-.8h1m-1-.8h1m-1-.9h1m-1-.8h1m-1-.9h1m-1-.8h1m-1-.8h1m-.9-.9h1m-1-.8h1m-1-.8h.9m-.8-.9h.8m-.9-.7h.9m-1.2 16.5h1.3m-1.3.7a2.5 2.5 0 001.3 0"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#e7e7e7" stroke-width=".1" d="M268.3 274.2l2.2-.1a14.6 14.6 0 00-.9-.3h2.4a5.2 5.2 0 00-1-.5c.7-.1 1.7 0 2.3.1l-1-.5 2 .1a2.8 2.8 0 00-.9-.5 8.6 8.6 0 012.7-.1 9.2 9.2 0 00-8.6.8 6.5 6.5 0 011-1.2 2.7 2.7 0 00-.7 0l1.3-1a3.1 3.1 0 00-.8 0l1.5-1a3.3 3.3 0 00-.9 0 5 5 0 011.7-1.1 4.2 4.2 0 00-1 0c.5-.4 1.2-1 2.1-1.4-3.5.4-5.5 3-5.7 5.1-.9-2-3.5-4-7-3.8 1 .3 1.9.7 2.5 1.1a4.6 4.6 0 00-1 .1c.7.2 1.5.6 2 1a3.6 3.6 0 00-.9.1l1.8.8-.8.1 1.6.8a3 3 0 00-.8 0l1.4.8c-2.2-.5-5.4.3-7.9 3.1.4-.3 1.9-.8 2.4-1a4 4 0 00-.6.9 8.9 8.9 0 012.2-1.2 5 5 0 00-.4.8l2-1-.5.8 1.8-.7-.5.7 1-.3a6.6 6.6 0 00-3 6.1c0-.4.6-1.6.9-2v1a9 9 0 011-2.1l.1 1 1-2.1v1a14.2 14.2 0 011.2-2v.8l.3-.6.7-1 .3.4c.2.4.5 1.1.5 1.9a3.4 3.4 0 00.3-1c.3.8.7 2 .7 2.6l.2-1c.3.5.7 1.8.7 2.4l.3-1 .6 2.4c.8-3.1-.4-5.2-2-6.7.4.2 1 .6 1.4 1.1a5.2 5.2 0 00-.3-1l1.6 1.6a2.9 2.9 0 00-.2-1c.7.5 1.2 1.3 1.6 1.7l-.2-1c.6.5 1.2 1.4 1.4 2l-.1-1.2c.8.7 1 1.4 1.3 1.9 0-2.9-3.3-5.4-6.3-5.7z"/>
+  <path fill="none" stroke="#e7e7e7" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1" d="M267 274.2c3.4-.4 7.6 2.4 7.6 5.7-.2-.4-.5-1.2-1.4-1.9l.2 1.1a6.5 6.5 0 00-1.4-1.9l.2 1c-.4-.4-1-1.2-1.6-1.6l.2.8a15.3 15.3 0 00-1.6-1.4l.3 1a6 6 0 00-1.3-1.2m-2-1.6c-2-1.3-6.2-1-9.3 2.5.4-.3 1.9-.8 2.4-1a4 4 0 00-.5.9 8.9 8.9 0 012.1-1.2 5.1 5.1 0 00-.4.8l2-1-.5.8 1.8-.7-.5.7 1-.4"/>
+  <path fill="none" stroke="#e7e7e7" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1" d="M266.4 273.7c-.4-2.4-3.3-5-7.4-4.9 1 .3 1.9.7 2.5 1.1a4.6 4.6 0 00-1 .1c.7.2 1.5.6 2 1a3.6 3.6 0 00-.9.1l1.8.8-.8.1c.5.1 1.2.5 1.6.8a3 3 0 00-.8 0l1.4.8m1.6 1c-2.8.9-5.5 3.6-5.1 7.2 0-.4.6-1.6.9-2v1a9 9 0 011-2.1l.1 1 1-2.1v1a14.1 14.1 0 011.2-2v.8c0-.2.9-1.4 1-1.5m-1.7.1a9.3 9.3 0 00-.4 1.6m-.6-.9a10.4 10.4 0 00-.5 2m-.5-1a9.5 9.5 0 00-.6 2"/>
+  <path fill="none" stroke="#e7e7e7" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1" d="M266.5 275.9v-.7" class="fil1 str2"/>
+  <path fill="none" stroke="#e7e7e7" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1" d="M269.4 278.7l.1 1.5m-1.1-3.3l.1 1.7m-1.1-2.8l.2 1.4m5-.5a3.7 3.7 0 01.6 1.3m-2-2.3l.8 1.6m-2.1-2l.7 1.3m-11.3-.9a5 5 0 011.8-1.2m-.2 1c.4-.6.7-1 1.7-1.4m-.2 1.2c.4-.5 1-1 1.8-1.3m-.4 1.3c.5-.5 1-.8 1.7-1m-4-4.4c.8.1 1.7.3 2.3.7m-1.2.4a5 5 0 012 .5m-1.2.4c.7 0 1.5.3 2.2.7m-1.4.2a4.1 4.1 0 011.9.6m.8.2a9.1 9.1 0 019.2-1.2 8.6 8.6 0 00-2.7.1c.5.1.9.4 1 .5-.9-.1-1.2-.2-2.2-.1.5.1.8.3 1.1.5a7.8 7.8 0 00-2.3-.1l1 .4h-2.4l1 .4-2.3.1m5.1-1.7a6.4 6.4 0 00-2.2-.3m1 .7a6.2 6.2 0 00-2.7-.3m1.5.7a7.3 7.3 0 00-2.7-.2m1.3.7a5.3 5.3 0 00-2.1-.1m.9 1.1c.3.3.6.7.8 1.2"/>
+  <path fill="none" stroke="#e7e7e7" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1" d="M266 272.6c.2-2.1 2.2-4.7 5.7-5a9 9 0 00-2 1.3h1c-.7.2-1.4.7-1.8 1.2h1c-.6.2-1.2.6-1.5 1h.8c-.4 0-1 .6-1.3.9a2.7 2.7 0 01.7 0c-.5.3-1 .8-1.1 1.2m2.1-4.3c-.5.2-1.1.4-1.6.8m1 .4a4.8 4.8 0 00-1.6.5m1 .5c-.6 0-1.1.3-1.6.7m1 .2a3.4 3.4 0 00-1.5.8m-.5 2.6a6.4 6.4 0 00-.3 1.2m1.3-2.1c2 1.7 4.4 4 3.3 8a8.8 8.8 0 00-.6-2.3c0 .4-.2.7-.3 1a7.2 7.2 0 00-.7-2.6l-.2 1c0-.6-.4-1.7-.7-2.5a3.4 3.4 0 01-.3 1c0-1-.4-1.8-.8-2.2"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M227.5 249l1.4.8.3-.6c.2-.3.2-.5.1-.7 0-.2-.2-.4-.5-.5-.3-.2-.6-.3-.8-.2-.2 0-.3.2-.4.4l-.3.6c0 .1 0 .2.2.3m1.8 1l1.7.9h.3c.1 0 .3-.2.4-.5l.3-.6a.6.6 0 000-.5.8.8 0 00-.2-.2 2 2 0 00-.4-.3c-.8-.4-1.4-.3-1.7.4l-.4.7m-2.8-.8a31.7 31.7 0 00.7-1.2c.1-.4.3-.7.6-.9l.6-.4h.9l.5.6.1.8c.3-.3.7-.5 1-.6a1.3 1.3 0 011 .1c.4.2.7.6.8 1 0 .6 0 1.2-.5 1.9a28 28 0 01-.8 1.4l-.3.7a12 12 0 00-1.5-1l-1.9-1a12.3 12.3 0 00-1.6-.7l.4-.7m9.5-11.5c-.8.6-.7 1.5.4 2.8.5.6 1 1 1.5 1 .5.2 1 0 1.4-.3.4-.3.6-.7.5-1.1a3.3 3.3 0 00-.8-1.6c-.6-.7-1.1-1.1-1.6-1.2-.5-.2-1 0-1.4.4m4-.2c.5.6.7 1.4.7 2.1a3 3 0 01-1.2 2 3.1 3.1 0 01-2.2.9 2.6 2.6 0 01-2-1 3 3 0 01-.7-2.2 2.9 2.9 0 011.1-2 3.1 3.1 0 012.3-1c.7.1 1.4.5 2 1.2m8.5-2.8l.3 1a15.2 15.2 0 002-.7l.4-.1a5.3 5.3 0 00.3.9l-.6.1-2.5.7-.7.2-.4-1.7-.6-2a15 15 0 00-.5-1.7l.6-.2.7-.2.4 1.7.6 2m9.8-3l.1-1.8h.8l.7.1-.3 1.8-.2 2-.1 1.8a12 12 0 00-.7 0h-.8v-.1l.3-1.7.2-2.2m10.5 5.6a38.2 38.2 0 003.4-2.8l.4.2.4.2-5 3.8-.5-.3a292.6 292.6 0 01.5-4.7 28.2 28.2 0 00.1-1.4 7.9 7.9 0 001.4.7 37.1 37.1 0 00-.6 4.3m9 4.1a13 13 0 001.2-1.2l.5.5.5.5-1.4 1.1-1.5 1.5-1.3 1.2a12.3 12.3 0 00-.5-.5l-.5-.5 1.4-1.1 1.6-1.5m5.3 10.7a46.2 46.2 0 001.4-1.5h-2a22.2 22.2 0 00.6 1.5m-1.2-1.5l-2 .2a2 2 0 00-.2-.4 2.8 2.8 0 00-.2-.4 326.8 326.8 0 006.2 0l.4.6a87.3 87.3 0 00-4.2 4.6l-.3-.7a5.7 5.7 0 00-.3-.6l1.5-1.4a35.3 35.3 0 00-1-1.9" font-family="Linux Biolinum" font-size="100" font-weight="700" letter-spacing="60" text-anchor="middle" word-spacing="0" style="line-height:125%;-inkscape-font-specification:Linux Biolinum Bold;text-align:center"/>
+  <path fill="#e8a30e" stroke="#000" stroke-linecap="square" stroke-linejoin="round" stroke-width=".1" d="M261.3 299.3l-.9 2.4H258l2 1.5-.7 2.4 2-1.4 2.1 1.4-.7-2.4 2-1.5H262zm9.7-4.1l-.8 2.3h-2.5l2 1.6-.7 2.4 2-1.5 2 1.5-.7-2.4 2-1.5h-2.5zm15-26.7l-.8 2.4h-2.5l2 1.6-.7 2.3 2-1.4 2.1 1.4-.7-2.4 2-1.4-2.5-.1zm-7.1 19l.8 2.4h2.5l-2 1.5.8 2.4-2.1-1.4-2 1.4.7-2.4-2-1.4 2.5-.1zm5-8.7l.9 2.4h2.5l-2 1.6.7 2.3-2-1.4-2.1 1.4.7-2.3-2-1.5h2.5zm-33.1 20.5l.8 2.4h2.5l-2 1.5.7 2.4-2-1.4-2.1 1.4.7-2.4-2-1.5h2.5zm-9.8-4.1l.8 2.3h2.5l-2 1.6.8 2.4-2.1-1.5-2 1.5.7-2.4-2-1.5h2.5zm-15-26.7l.8 2.4h2.5l-2 1.5.7 2.4-2-1.4-2 1.4.6-2.4-2-1.5h2.5zm7.1 19l-.8 2.4h-2.5l2 1.5-.7 2.4 2-1.4 2 1.4-.7-2.4 2-1.5H234zm-5-8.7l-.9 2.4h-2.5l2 1.6-.7 2.3 2-1.4 2.1 1.4-.7-2.3 2-1.5h-2.5z"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M257.1 264.6v-.5h.1l-.9-.5h-.7l-.8.5v.5h2.3"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M257.1 264.6v-.5h.1l-.9-.5v-.8h-.6v.8l-1 .5h.1v.5h2.3zm.3.7v.2h-2.8v-.2h2.8"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M257.4 265.3v.2h-2.8v-.2h2.8zm-2.6 0v-.6.6-.7h2.5v.1h-.2v.6-.6h.1v.6"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M254.8 265.3v-.6.6-.7h2.5v.1h-.2v.6-.6h.1v.6"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M255.3 265.2v-.4h-.3v.4h.3"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M255 264.9v.2h.2v-.2h-.1m1.9.3v-.4h-.4v.4h.4"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M256.7 264.9v.2h.2v-.2h-.2m.3-.3v-.4h-.4v.4h.4z"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M256.7 264.3v.2h.2v-.2h-.2m-1.4.2v-.3h-.3v.3h.3z"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M255 264.3v.2h.2v-.2h-.1m.8.2v-.3h-.3v.4h.3"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M255.7 264.3v.2h.1v-.2h-.1m.7.2v-.3h-.3v.4h.3"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M256.1 264.3v.2h.2v-.2h-.2"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M256.5 264.4v1h-1v-1h1"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M256.5 264.4v1h-1v-1h1zm-1 .3h1m-.9.6v-.6m.8.6v-.6m.5-.6l-.6-.4h-.6l-.6.4h1.8m-1.2-.5h.5m-.3-.2v.2h.2v-.2h-.2m-.3 1v.1m.1 0v0m.2 0v0zm.1 0h.1v0zm.2 0v0m.2 0v0"/>
+  <path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width="0" d="M255.8 262.4h.4v.4h-.4v-.4z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M256 262v.4m-.2-.3h.4"/>
+  <path fill="#452c25" d="M253 224.3s-2.6 5.8-1.7 6.4c0 0 3.1-3.5 4-6.3.8-2.8 0-.2 0-.2l-.3-3-2 2.9"/>
+  <path fill="none" stroke="#000" stroke-width=".2" d="M253 224.3s-2.6 5.8-1.7 6.4c0 0 3.1-3.5 4-6.3.8-2.8 0-.2 0-.2l-.3-3-2 2.9"/>
+  <path fill="#452c25" d="M253.5 221.6s-3 6.4-2.3 6.8c0 0 2.5-2.9 3.1-5.1.7-2.3 0-.2 0-.2l.8-4.1"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M253.5 221.6s-3 6.4-2.3 6.8c0 0 2.5-2.9 3.1-5.1.7-2.3 0-.2 0-.2l.8-4.1"/>
+  <path fill="#452c25" d="M256.6 220.1s-3 6.4-2.4 6.9c0 0 2.6-2.9 3.2-5.2.7-2.3 0-.1 0-.1l.8-4.1"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M256.6 220.1s-3 6.4-2.4 6.9c0 0 2.6-2.9 3.2-5.2.7-2.3 0-.1 0-.1l.8-4.1"/>
+  <path fill="#452c25" d="M295.3 208.7l3.6 2s.8.7-1 .3c-2-.5-6-1.9-13.7-6.8-3.5-2.2-4.6-2.2-4.6-2.2l4.8.2 10.9 6.5z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M295.3 208.7l3.6 2s.8.7-1 .3c-2-.5-6-1.9-13.7-6.8-3.5-2.2-4.6-2.2-4.6-2.2l4.8.2 10.9 6.5z"/>
+  <path fill="#452c25" d="M296.5 207.8l3.5 2s.9.7-1 .3c-2-.4-6-1.8-13.7-6.8-3.4-2.2-.7 1.9-.7 1.9l.6-2.7 11.3 5.3z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M296.5 207.8l3.5 2s.9.7-1 .3c-2-.4-6-1.8-13.7-6.8-3.4-2.2-.7 1.9-.7 1.9l.6-2.7 11.3 5.3z"/>
+  <path fill="#452c25" d="M302.4 209.7s-4.3-.8-5.8-2c0 0 .3.6-1.8-.4 0 0 .8 1.9-5-2.1-6-4-3.9-2-3.9-2l1.7-.4 10 4c1 .3 4.8 3 4.8 3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M302.4 209.7s-4.3-.8-5.8-2c0 0 .3.6-1.8-.4 0 0 .8 1.9-5-2.1-6-4-3.9-2-3.9-2l1.7-.4 10 4c1 .3 4.8 3 4.8 3z"/>
+  <path fill="#452c25" d="M280.1 211.3l1.5 2s-.5 2-5.4-1.8l-4.7-3.4 2.7-.3 6 3.4"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M280.1 211.3l1.5 2s-.5 2-5.4-1.8l-4.7-3.4 2.7-.3 6 3.4"/>
+  <path fill="#452c25" d="M273.7 212.3s2.3 3 1.8 3.4c-.5.4-3.2.2-5.2-2.7-1.9-3 0-.2 0-.2l.2-4.7 3.3 4"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M273.7 212.3s2.3 3 1.8 3.4c-.5.4-3.2.2-5.2-2.7-1.9-3 0-.2 0-.2l.2-4.7 3.3 4"/>
+  <path fill="#452c25" d="M276 211s2.3 2.8 2 3.2c-.2.5-3.3.2-5.8-2.6-2.5-2.8-.4-3.7-.4-3.7l4.2 2.9"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M276 210.9s2.3 2.9 2 3.3c-.2.5-3.3.2-5.8-2.6-2.5-2.8-.4-3.7-.4-3.7l4.3 3z"/>
+  <path fill="#452c25" d="M288.7 209.3s6.3 2.7 1.6 2.5c0 0-9.1-2.5-13.9-6.5l1.4-1.8 10.8 5.6"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M288.7 209.3s6.3 2.7 1.6 2.5c0 0-9.1-2.5-13.9-6.5l1.4-1.8 10.8 5.6"/>
+  <path fill="#452c25" d="M292 208.5s3.4 2 3.7 2.8-10.6-2-16.4-6.8l2.6-1.2 10.1 5.2z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M292 208.5s3.4 2 3.7 2.8-10.6-2-16.4-6.8l2.6-1.2 10.1 5.2z"/>
+  <path fill="#452c25" d="M282.1 210.3s2.5 2 2.2 2.3a17 17 0 01-9.2-3.5l.4-1.8 6.6 3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M282.1 210.3s2.5 2 2.2 2.3a17 17 0 01-9.2-3.5l.4-1.8 6.6 3"/>
+  <path fill="#452c25" d="M286.3 210.2s2.4 1.7 2 1.8c-.6.2-2.5 1.7-11.5-3.6l-1.1-.6 1.4-2.2 9.2 4.4"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M286.3 210.1s2.4 1.8 2 2c-.6.1-2.5 1.6-11.5-3.7l-1.1-.6 1.4-2.2 9.2 4.5z"/>
+  <path fill="#452c25" d="M277 205.2s3 2.6 2.6 3c-.4.4-3.9-.4-5.5-1.6-1.5-1.1-2.6-2.6-2.6-2.6l3.3-.7 2.2 2z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M277 205.2s3 2.6 2.6 3c-.4.4-3.9-.4-5.5-1.6-1.5-1.1-2.6-2.6-2.6-2.6l3.3-.7 2.2 2z"/>
+  <path fill="#452c25" d="M273.5 200.8l5.4 3.2s4.4 3.1 3.9 3.4c-.5.2-4-.8-6.4-2.2a29.5 29.5 0 01-5.3-4.2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M273.5 200.8l5.4 3.2s4.4 3.1 3.9 3.4c-.5.2-4-.8-6.4-2.2a29.5 29.5 0 01-5.3-4.2"/>
+  <path fill="#452c25" d="M270.1 216s1 2.5.4 2.7c-.6.2-2-.2-3.3-2.5-1.1-2.4 1-1.4 1-1.4l2 1.1z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M270.1 216s1 2.5.4 2.7c-.6.2-2-.2-3.3-2.5-1.1-2.4.9-1.3.9-1.3l2 1z"/>
+  <path fill="#452c25" d="M271.9 214.3s1.5 2.4 1.2 2.7c-.4.3-2.3 1.2-4.5-2s2.2-2.5 2.2-2.5l1 1.8z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M271.9 214.3s1.5 2.4 1.2 2.7c-.4.3-2.3 1.2-4.5-2s2.2-2.5 2.2-2.5l1 1.8z"/>
+  <path fill="#452c25" d="M267.4 203s5.1 10 4.7 10.5c-.4.5-2.5 0-3.6-2.6a53.3 53.3 0 01-2-6l1-1.8z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M267.4 203s5.1 10 4.7 10.5c-.4.5-2.5 0-3.6-2.6s-2-6-2-6l1-1.8z"/>
+  <path fill="#452c25" d="M273.4 205.6s4.2 3.6 3.4 4c-1 .5-2.6-.1-5.1-2.6-2.5-2.5 1.6-1.6 1.6-1.6"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M273.4 205.5s4.3 3.7 3.4 4.2c-1 .5-2.6-.2-5.1-2.7-2.5-2.5 1.7-1.5 1.7-1.5z"/>
+  <path fill="#452c25" d="M271.3 205.7s3 5.6 2.7 6c-.4.6-2.7-1.3-3.8-2.7s-2-3.5-2-3.5"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M271.3 205.7s3 5.6 2.7 6c-.4.6-2.7-1.3-3.8-2.7s-2-3.5-2-3.5"/>
+  <path fill="#452c25" d="M248.4 217.2v3.5c.1.2 1.9.3 2-2.2 0-2.5-.4-2.6-.4-2.6l-1.6 1.2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M248.4 217.2v3.5c.1.2 1.9.3 2-2.2 0-2.5-.4-2.6-.4-2.6l-1.6 1.2"/>
+  <path fill="#452c25" d="M249.4 213.2s-1.1 3.7 0 4.4c1.1.8 2-3.6 2-4.6.1-1-2 .2-2 .2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M249.4 213.2s-1.1 3.7 0 4.4c1.1.8 2-3.6 2-4.6.1-1-2 .2-2 .2z"/>
+  <path fill="#452c25" d="M250.2 218s.3 3.4.9 3.5c.6.2 1.7-1 1.7-1.9 0-.9-1.1-3-1.1-3l-1.5 1.2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M250.2 218s.3 3.4.9 3.5c.6.2 1.7-1 1.7-1.9 0-.9-1.1-3-1.1-3l-1.5 1.2"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M250.3 213.8s-1.2 3.7 0 4.4c1 .8 2-3.6 2-4.6 0-1-2 .2-2 .2z"/>
+  <path fill="#452c25" d="M250.4 207.8s-1.8 1.8-1.7 2.8c0 1 2.5-1.3 2.8-1.8.2-.4-1.1-1-1.1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M250.4 207.8s-1.8 1.8-1.7 2.8c0 1 2.5-1.3 2.8-1.8.2-.4-1.1-1-1.1-1z"/>
+  <path fill="#452c25" d="M249.2 206.8s-1.4 2.6-1 3.3c.3.8 1.7-.5 2.3-1.4.6-1-1.3-1.8-1.3-1.8"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M249.2 206.8s-1.4 2.6-1 3.3c.3.8 1.7-.5 2.3-1.4.6-1-1.3-1.8-1.3-1.8z"/>
+  <path fill="#452c25" d="M268.3 203.5s2.1 4.1 1.5 4.3c-.6.2-1.5-.8-2.4-2-.9-1.2.9-2.3.9-2.3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M268.3 203.5s2.1 4.1 1.5 4.3c-.6.2-1.5-.8-2.4-2-.9-1.2.9-2.3.9-2.3z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M268.3 211.9s.8 3.4.1 3.7c-1.3.7-2-2.4-2.2-3.6 0-1.2 2.1-.1 2.1-.1zm-2.7 5.4s.2 2.6-.2 2.8c-.3.3-1.2.3-2.3-1.8-1-2.2-.5-1.4-.5-1.4l2.5-1.2.5 1.4"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M268.1 216.7s.3 2.8-.2 2.8c-.6.1-2-.8-2.7-2.4-.7-2 2.6-1.4 2.6-1.4l.3 1z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M265.6 208.4s2.7 6.2 2.3 7.1c-.9 1.8-3.4-3.8-4.2-6-.8-2.4 1.9-1.1 1.9-1.1z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M264.3 209.4s3.8 7 2.1 7c-1.5.2-4.5-5-5-6.1-.5-1.2 2.9-.9 2.9-.9z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M264 210.8s1.9 6.6.7 6c-1.2-.5-2.7-5.5-2.9-6.6-.2-1 2.2.7 2.2.7zm6.6-9.4s3 4.5 2 4.6c-1 .1-4.4-3-4.4-3.5s2.4-1 2.4-1z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M268.8 201.7s3.7 5 2.6 5.2c-1.1.3-1.2-.5-1.2-.5s-3-2.7-3.1-3.3c-.3-.7 1.6-1.5 1.6-1.5m3.8.1s2.5 2.6 1.8 3.5c-.6 1-4.2-3.3-4.6-3.8-.5-.6 3 .2 3 .2m-6.4 3.8s4.1 8 3.3 8.7c-.7.8-5.3-6-5.4-7-.2-.9 2.2-1.9 2.2-1.9"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".2" d="M264 206s1.6 2.6 1.5 4c0 1.3-2.5-2-2.7-2.6-.2-.6 1.2-1.3 1.2-1.3z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M267.3 204.8s1.3 2.6.9 3.3c-.4.8-2.1-1.5-2.7-2.4-.6-1 1.8-1 1.8-1z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".2" d="M261.4 207.3s2 2.2 2 3.4c-.2 1.2-3-1.7-3.3-2.3-.3-.5 1.3-1 1.3-1z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M274.3 201s3 2.6 2.6 3c-.5.5-4.6-2.4-5.2-3-.6-.6 2.6 0 2.6 0z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M271.8 200.7l2.3 2s2.2 1.5 1.8 1.9c-.3.3-3.8-1.2-4.4-2-.6-.6-.5-1.4-.5-1.4l.8-.5zm7.7.7s9 3.6 8.6 4.5c-.3.8-9.3-3-10.8-4s2.1-.6 2.1-.6"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M279.9 202.5s6.7 3.8 5.9 4.1c-.8.4-5.6-.9-8-2.6a38.4 38.4 0 01-3.6-2.6l3-.7 2.7 1.8zm-16.6 4.6s1.3 2.6 1 3.3c-.5.8-1.7-.6-2.3-1.5-.6-1 1.3-1.8 1.3-1.8zm.3 5.8s1.1 3.7 0 4.4c-1.2.7-2-3.7-2-4.7s2 .3 2 .3z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M258.4 206.7s3.8-1.6 4.5-1.5c0 0 .7-.2 1.1-.5l1.4-1.1s-.6-4.5 4.1-4l12.3 1.2a48 48 0 017 2c1 .5 8.1 3.7 9.6 4.2.8.3 2.7 1.5 4.1 2.4 1 .7 0 .2 0 .2s-11.5-6-15.5-6.9c-1-.2 0 1.2 0 1.2l-3.6-1.5a6.3 6.3 0 00-3-.6 6.2 6.2 0 01-2.4-.3c-.6-.2-4-.3-4.7-.4a7.8 7.8 0 01-1-.2l.2.4-1.7-.3-.5.8s-1.6.3-1.7-.2c-.2-.6-1 2.3-1.4 3.2-.4.8-2 .8-2.5 1.3a5.4 5.4 0 01-1 1c-.2.2-1.5.9-1.9.9l-3 .2-.7-1 .3-.5zm5 10.6s0 3.3-.2 3.6c-.2.2-1.8.1-1.8-2.3 0-2.5.4-2.6.4-2.6l1.6 1.2"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M263.8 214.8s-.4-1.4-.6-1.6c-.2-.2.1-.4.1-.4s-.6-1.5-1-1.7c-.3-.3.1-.5.1-.5s-.6-1-1-1.2c-.5-.3 0-.4 0-.4s-.6-1.3-1.7-2c0 0-.7-.7-1.4-1-.8-.1-2.6-.3-4.9-.3a4 4 0 00-3.3 1.7l-.2 1.9.4-.2-.5 2.3c-.1.6.4 1.5.4 2.6a11 11 0 00.9 4.2l.1.3c.1-.2.4.6.6 1 0 0 .1 1.1.2.7.1-.2.5.6.7 1.2 0 .2.5 1.5.5.9 0-.7.4 1.3.4 1.6l.6-.8.2 1 .5-.1-.2.8s1.3-1 1.3-1.4l.1-.7.4-.4.7-1s1.6 1.2 1.8 1.7l.3.8.4-.4.4 1 .2-.5.2.6.2.4c.1 0 .4.1.8-.7.7-1.1.7-2 .7-2.2 0-.2.3.4.3.4s.6-1.1.5-1.8c0-.7.4-.5.4-.5V218c-.1-.5.3-.4.3-.4s-.1-2.2-.3-2.4c0-.3.4-.3.4-.3z"/>
+  <path d="M260.6 209.8c.3 0 .5.4.6.7v-.1c-.1-.3-.3-.7-.6-.8v.2m.3 1.3c.6.5.6 1.2.6 2 0 0 0 .1 0 0 0-.8 0-1.6-.6-2.1v.1m1.2.7a3.2 3.2 0 01.4 1.8c0-.7 0-1.3-.4-2v.2m.4 2.6l-.1 1.1a.5.5 0 000 .2 11.8 11.8 0 00.1-1.3m-.4 2v.7a4.1 4.1 0 000-.8m-.7-2.4a15.3 15.3 0 000 1.2 14.3 14.3 0 010-1.2m1.5 2.4a1.2 1.2 0 01.3.6 1.2 1.2 0 00-.3-.7v.1m-.1-2.8l.4.5a3.3 3.3 0 00-.4-.6v.1m-1.5 2.1a6.4 6.4 0 01-.1 1.1.4.4 0 000 .1 6.9 6.9 0 000-1.2m-.7.8a5.7 5.7 0 010 1.1 6.6 6.6 0 000-1.2v.1"/>
+  <path fill="#452c25" d="M246.1 207.3s-.9 3.4-.2 3.7c1.3.7 2.2-2.3 2.3-3.5.1-1.3-2-.2-2-.2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M246.1 207.3s-.9 3.4-.2 3.7c1.3.7 2.2-2.3 2.3-3.5.1-1.3-2-.2-2-.2z"/>
+  <path fill="#452c25" d="M248 207.3s-1.6 1.7-1.6 2.7c0 1 2.5-1.3 2.8-1.8.2-.4-1.1-1-1.1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M248 207.3s-1.6 1.7-1.6 2.7c0 1 2.5-1.3 2.8-1.8.2-.4-1.1-1-1.1-1z"/>
+  <path fill="#452c25" d="M218.7 207.5s-3.5 1.8-3.8 2.5c-.4.8 10.7-1.1 16.7-5.4l-2.4-1.4-10.5 4.3z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M218.7 207.5s-3.5 1.8-3.8 2.5c-.4.8 10.7-1.1 16.7-5.4l-2.4-1.4-10.5 4.3z"/>
+  <path fill="#452c25" d="M222.9 208.2s-6.5 2.4-1.8 2.5c0 0 9.3-2 14.2-5.7l-1.2-1.9-11.1 5"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M223 208.2s-6.6 2.4-1.9 2.5c0 0 9.3-2 14.2-5.7l-1.2-1.9-11.2 5z"/>
+  <path fill="#452c25" d="M232.4 201.7s-6.8 3.5-6 3.9c.7.4 5.6-.7 8.1-2.3 2.6-1.6 3.6-2.5 3.6-2.5l-3-.8-2.7 1.7z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M232.4 201.7s-6.8 3.5-6 3.9c.7.4 5.6-.7 8.1-2.3 2.6-1.6 3.6-2.5 3.6-2.5l-3-.8-2.7 1.7z"/>
+  <path fill="#452c25" d="M229.8 209.4s-2.4 2-2.1 2.2c.3.3 5.3-.5 9.2-3.6l-.5-1.8-6.6 3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M229.8 209.4s-2.4 2-2.1 2.2c.3.3 5.3-.5 9.2-3.6l-.5-1.8-6.6 3"/>
+  <path fill="#452c25" d="M225.6 209s-2.3 1.9-1.8 2c.5.2 2.5 1.6 11.2-4.2l1-.6-1.5-2.2-9 4.9"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M225.6 209s-2.3 1.8-1.8 2c.5.2 2.5 1.6 11.2-4.2l1-.6-1.5-2.2-8.9 5z"/>
+  <path fill="#452c25" d="M223.8 202.2A72.3 72.3 0 00209 210l19-7.6m12 11.4s-1.6 2.4-1.3 2.7c.3.3 2.3 1.2 4.6-1.9 2.2-3-2.2-2.6-2.2-2.6l-1.1 1.8z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M240 213.8s-1.6 2.4-1.3 2.7c.4.3 2.3 1.2 4.6-1.9 2.2-3.1-2.2-2.6-2.2-2.6l-1.1 1.8z"/>
+  <path fill="#452c25" d="M241.7 215.5s-1 2.5-.5 2.8c.6.2 2.1-.2 3.4-2.5s-.6-1-.6-1l-2.3.7zm-3.5-3.8s-2.4 3-1.9 3.4c.5.4 3.2.3 5.3-2.6 2-2.8 0-.1 0-.1l-.6-2.6-2.8 1.8"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M241.7 215.5s-1 2.5-.5 2.8c.6.2 2.1-.2 3.4-2.5s-.6-1-.6-1l-2.3.7zm-3.5-3.8s-2.4 3-1.9 3.4c.5.4 3.2.3 5.3-2.6 2-2.8 0-.1 0-.1l-.6-2.6-2.8 1.8"/>
+  <path fill="#452c25" d="M236 210.3s-2.4 2.7-2.2 3.2c.3.4 3.4.3 6-2.4 2.6-2.8.5-3.7.5-3.7L236 210"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M236 210.3s-2.4 2.7-2.2 3.2c.3.4 3.4.3 6-2.4 2.6-2.8.5-3.7.5-3.7L236 210"/>
+  <path fill="#452c25" d="M231.8 210.5l-1.5 2s.5 1.9 5.5-1.6l4.8-3.2-2.7-.5-6.1 3.1"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M231.8 210.4l-1.4 2s.4 2 5.4-1.5l4.8-3.2-2.7-.5-6 3.2z"/>
+  <path fill="#452c25" d="M215.7 207.4l-3.3 1.5s-.7.6 1.2.7a41.8 41.8 0 0017.6-7.7l-2.5-1-13 6.5z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M215.7 207.4l-3.3 1.5s-.7.6 1.2.7a41.8 41.8 0 0017.6-7.7l-2.5-1-13 6.5z"/>
+  <path fill="#452c25" d="M210.2 209.5s4.6-.5 6.4-1.7c0 0-.3.5 2-.4 0 0-1.2 2.1 5.7-2 7-4.3 0-.2 0-.2l7.8-4.4-.5-.8-15.7 6.6a58 58 0 00-5.7 2.9"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M224.4 205.3l7.6-4.5-.4-.8-15.7 6.6c-1.1.3-5.7 2.9-5.7 2.9s4.6-.5 6.4-1.7c0 0-.3.5 2-.4 0 0-1.1 2 5.8-2.1z"/>
+  <path fill="#452c25" d="M243.8 215.4s-.5 3.7 0 3.8c.6.1 2.1-1 2.8-3.3.6-2.2-2.5-2-2.5-2l-.5 1.4"/>
+  <path fill="none" stroke="#000" stroke-width=".2" d="M243.8 215.4s-.5 3.7 0 3.8c.6.1 2.1-1 2.8-3.3.6-2.2-2.5-2-2.5-2l-.5 1.4"/>
+  <path fill="#452c25" d="M246.2 217s-.3 2.6 0 2.9c.4.2 1.3.3 2.4-1.8l.6-1.3-2.5-1.4-.5 1.4"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M246.2 217s-.3 2.6 0 2.9c.4.2 1.3.3 2.4-1.8l.6-1.3-2.5-1.4-.5 1.5z"/>
+  <path fill="#452c25" d="M246.8 212.3s-2 4.3-.8 4.3c1.1 0 2.6-3.3 2.9-4 .2-.8-2-.3-2-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M246.8 212.3s-2 4.3-.8 4.3c1.1 0 2.6-3.3 2.9-4 .2-.8-2-.3-2-.3z"/>
+  <path fill="#452c25" d="M246.7 212.3s-.8 4.7.3 4.3c1-.4 1.7-4 1.7-4.8 0-.7-2 .4-2 .4"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M246.7 212.3s-.8 4.7.3 4.3c1-.4 1.7-4 1.7-4.8 0-.7-2 .4-2 .4z"/>
+  <path fill="#452c25" d="M248.3 212.7s-1.2 3.7 0 4.5c1 .7 2-3.7 2-4.7s-2 .2-2 .2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M248.3 212.7s-1.2 3.7 0 4.5c1 .7 2-3.7 2-4.7s-2 .2-2 .2z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M243.7 211.5s-1.2 3.4-.5 3.8c1.3.6 2.4-2.4 2.5-3.5.2-1.3-2-.3-2-.3zm-8.5-7s-3 2.5-2.7 2.9c.4.4 4-.3 5.5-1.4 1.6-1 2.2-1.6 2.2-1.6l-2.7-1.7-2.3 1.8z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M237.9 202s-2 1.5-1.6 1.9c.3.4 3.8-1 4.5-1.7.6-.7.6-1.4.6-1.4l-3.5 1.1z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M239.9 201.7s-2.7 2.2-2 3c.6.7 4.3-2.8 4.8-3.2.5-.5-3.1 0-3.1 0"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M238.7 200.7l-5.3 2.5s-4.5 3-4 3.2c.4.3 3.9-.6 6.4-1.9 2.5-1.2 5.2-3.3 5.2-3.3m-.8 2.4s-5.8 4.9-5 5.4c1 .5 4.8-1.6 7.4-4"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M240.9 205.2s-3.3 5.5-2.9 6c.4.6 2.7-1.3 3.9-2.7 1.2-1.3 2.1-3.4 2.1-3.4"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M242.8 205.7s-3.6 6.5-3.2 7c.4.6 2.5.2 3.7-2.4 1.2-2.6 1.1-4.2 1.1-4.2l-1.6-.4z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M244.8 206s-3.9 8-3.1 8.8c.7.8 5-6 5.3-7 .3-1.8-2.2-2-2.2-2m-8.2-5.2s-3.6 1.7-2.8 2c.7.4 4-1 4.4-1.2.5-.2-1.6-.8-1.6-.8z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M237.1 201.2s-2.2 1.7-1.7 2.2c.4.4 3.7-1.4 4.4-2 .6-.5-2.7-.2-2.7-.2zm4.6.1s-3 4-2.1 4.2c1 .1 4.4-2.6 4.4-3 0-.5-2.3-1.2-2.3-1.2z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M243 202.2s-3.2 4-2.3 4.3c1 .2 1-.4 1-.4s2.5-2.1 2.7-2.6c.2-.6-1.3-1.3-1.3-1.3"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M244 203.2s-2.3 4-1.7 4.2c.6.2 1.5-.7 2.5-2 1-1.1-.8-2.2-.8-2.2z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M244.6 205s-1.4 2.5-1 3.3c.3.8 1.7-.6 2.3-1.5.6-.9-1.3-1.8-1.3-1.8zm.6 7s-1 3.4-.3 3.7c1.4.7 2.2-2.3 2.3-3.5.2-1.3-2-.2-2-.2z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M251.4 207.4s-1-.3-1.6-.3c0 0-2-1.6-3-1.8-1.2-.1-.3-.1-.3-.1s0-2.6-.4-2.8c0 0-.2-2.7-1.8-2.9-1.7-.2-5.5.2-6.2 0-.6-.3-2.7-1.2-6.7-.1-4 1-12 4.6-12.3 4.7-.4.1 9-2 11.8-3.2 0 0 2.6-.2 3.4-.5 0 0-3 1.5-.2.9 2.8-.7 2.2 0 2.2 0s-.3.6 1.3.2c1.6-.3 1.6 0 1.6 0s1.8.7 3.2-.2c0 0 .7 2.6 1.6 3 0 0 1.1 2.2 3.4 2.7l1.3.9 1.3.4 1.3-1"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M232.8 200.6s-9 3.2-8.7 4c.3 1 9.4-2.4 10.9-3.4 1.4-.9-2-.7-2-.7"/>
+  <path d="M257.9 207.6l.6.2a1.6 1.6 0 00-.4-.4l-.7-.3.1.2.4.3m-7 6.8c0 .3 0 .6.2.8v-.1c-.1-.3-.1-.6-.3-.8v.1m1.3-7l.9-.1v-.2c-.3 0-.6 0-1 .2v.1m1.9-.1l.9-.2v-.1a2 2 0 00-1 .2m-3 1.7h-.1a.3.3 0 000 .2v-.2m-.2 4.9v.7a.3.3 0 000-.1 4.3 4.3 0 010-.6c0-.1 0-.1 0 0"/>
+  <path fill="#bd8759" d="M252.4 228.2l-1.2 1.1a4 4 0 00-.1.7s.9 0 .8.4c0 0 .3.2.8-.9.4-1 .9-1.6 1.2-1.5.3 0 .8.3 1 .6.2.2.5.4.9.3 0 0-.4-.6-.2-.8h.7s-.4-.8-1-1c-.7 0-1.2-.2-1-.5l1-2.6-1.1-1.6-.5 1.4.2 1c0 .3-1 2.2-1 2.3l-3 1.2c-.2 0-.8.8-.8.8v.5s.3-.3.5-.1c0 0 .2-.4.5-.3l.2.2.5-.4.1-.1.6-.2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M252.4 228.2l-1.2 1.1a4 4 0 00-.1.7s.9 0 .8.4c0 0 .3.2.8-.9.4-1 .9-1.6 1.2-1.5.3 0 .8.3 1 .6.2.2.5.4.9.3 0 0-.4-.6-.2-.8h.7s-.4-.8-1-1c-.7 0-1.2-.2-1-.5l1-2.6-1.1-1.6-.5 1.4.2 1c0 .3-1 2.2-1 2.3l-3 1.2c-.2 0-.8.8-.8.8v.5s.3-.3.5-.1c0 0 .2-.4.5-.3l.2.2.5-.4.1-.1.6-.2"/>
+  <path fill="#bd8759" d="M259.3 223.1v2.3c0 .4 0 .9-.2 1.2-.2.3-.4.5-.7.5s-1.2 0-1.4.3a5.4 5.4 0 01-.3.5s.6-.4.6 0c.1.3-.2.5-.2.5s.5.1 1-.1c.4-.3.7-.4.9-.4.2 0 .4.3.4.3v1c0 .5 0 1.3.4 1.3 0 0 .1-.4.3-.5.2 0 .6.4.5.6v-1.4l-.3-1s1.4.5 1.5.7l.6.4c.1 0 0-.5.3-.5h.3s-.4-.9-1-1.2l-1.3-.5c-.2-.3-.3-.6-.3-1v-3l-1-.2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M259.4 223v2.4c0 .4 0 .9-.3 1.2-.2.3-.4.5-.7.5s-1.2 0-1.4.3a5.2 5.2 0 01-.3.5s.6-.4.6 0c.1.3-.2.5-.2.5s.5.1 1-.1c.4-.3.7-.4.9-.4.2 0 .4.3.4.3v1c0 .5 0 1.3.4 1.3 0 0 .1-.4.3-.5.2 0 .6.4.5.6v-1.4l-.3-1s1.4.5 1.5.7l.6.4c.1 0 0-.5.3-.5h.3s-.4-.9-1-1.2l-1.3-.5c-.2-.3-.3-.6-.3-1v-3l-1-.1z"/>
+  <path fill="#dcddde" d="M250.7 210.5s-.1-1.4.3-1.6c0 0 .1-1.2 1.8-1 0 0 .6-1 1.5-.5 0 0 .8-.4 1.3-.2a5 5 0 011.2.8s.7-.1 1 .1c.4.3.2 1.2.2 1.2s.9.6 1 1.2c0 .5 0 .7-.2.9 0 0 .4.3.3.7 0 .4-.4 1-.5 1s0 1.1-.3 1.5c-.4.4-.7.4-.9.5-.1 0-.5.6-1 .7-.3 0-.8-.6-.9-.8 0-.2-.5-.4-.5-.4s-1.2 1.3-2 1a2 2 0 01-1.2-1l-.3-1s-1-.5-.8-1c0-.5.4-1 .4-1l-.4-1.1z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M253.7 226a.3.3 0 01-.3 0m.7-1a.8.8 0 01-.4 0m0 .6h.2m-1 1.5a.3.3 0 00.1.1m6.9-1l.5.1m-.2-.6h-.4m.4-.6a1 1 0 01-.4 0m-.1 2l.4.1m-.4.5a.2.2 0 01.2 0m0 1.7a.4.4 0 01.2 0m-5.4-2.2a.4.4 0 00-.3.3m1.1-.2c-.2.1-.3.3-.3.5m-4.9.4l.5.3m10.5-1a.4.4 0 00-.2.3m.8 0a.2.2 0 00-.1.1"/>
+  <path fill="#d9c0b9" d="M249 229.4l.6-.1s-.3.7-.2 1c0 0-.6-.4-.4-.9"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M249 229.4l.6-.1s-.3.7-.2 1c0 0-.6-.4-.4-.9z"/>
+  <path fill="#d9c0b9" d="M251.3 229.8s-.7 1.1.1 1.7c0 0 0-1 .6-1.3l-.8-.3z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M251.3 229.8s-.7 1.1.1 1.7c0 0 0-1 .6-1.3l-.8-.3z"/>
+  <path fill="#d9c0b9" d="M255.6 228.8l-.2-.6.2-.2h.6s.4.9 0 1.3c0 0 0-.5-.2-.5h-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M255.6 228.8l-.2-.6.2-.2h.6s.4.9 0 1.3c0 0 0-.5-.2-.5h-.4z"/>
+  <path fill="#d9c0b9" d="M257 227.6h.4l.1.4v.3l-.4.2s-.5-.2-.4.5c0 0-.2-1.2.3-1.4"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M257 227.6h.4l.1.4v.3l-.4.2s-.5-.2-.4.5c0 0-.2-1.2.3-1.4z"/>
+  <path fill="#d9c0b9" d="M259.7 230.3l.4-.5.4.3-.2 1.2v.1l-.3-.3-.3-.8"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M259.7 230.3l.4-.5.4.3-.2 1.2v.1l-.3-.3-.3-.8z"/>
+  <path fill="#d9c0b9" d="M262.3 229.1s.7.8.6 1c0 0 .7-.6-.2-1.5l-.4.5z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M262.3 229.1s.7.8.6 1c0 0 .7-.6-.2-1.5l-.4.5z"/>
+  <path d="M259.5 209c.1 0 .2 0 .3.2v-.1c0-.2-.2-.3-.3-.3v.1m.1 2.3l.5.7v-.1a1.8 1.8 0 00-.5-.8v.2m-.4-1.7l.5.6v-.1l-.5-.6v.1m.5 3.7l-.1 1a2 2 0 00.1-1.1.4.4 0 000 .1m.5 1.2v-.1m2 4.1a5.1 5.1 0 01.1 1.4l-.1-1.5v.1m-.3 1a7.9 7.9 0 01-.4.9v.1a7.8 7.8 0 00.4-1m-11-3.2l.8 1.3v-.1l-.8-1.3v.1m2 0c-.3.1-.4-.3-.6-.4v.2c.2 0 .3.4.5.4v-.1m-1 1.8l.5 1-.5-1.1v.1m1.2.5c.3.2.5.5.6.8v-.1a2.9 2.9 0 00-.6-.9v.2m0 1.3l.3.7v-.2l-.4-.7v.2m1.2.2a3 3 0 01.1.8 3.5 3.5 0 000-.9s-.1.1 0 .1m-.6 1.1c0 .4.2.7.4 1v-.1l-.4-1a.4.4 0 000 .1m.3-4.6l.9.2a8.6 8.6 0 01-.9-.4v.1m.2 1.3l1 .5v-.2l-1-.5v.2m.3 1.3l.6.6v-.1a4.8 4.8 0 01-.6-.6v.1m.4 1.7l.3.8a.3.3 0 000-.1 1.9 1.9 0 00-.3-.8v.1m1-4.2l.1.5v-.1a10.8 10.8 0 010-.5.3.3 0 000 .1m2.4-1l-.2.5v.2a3.8 3.8 0 00.3-.6m1-.1v.8a.4.4 0 000 .1 4.4 4.4 0 000-1m.2 1.7a3 3 0 010 .7.6.6 0 000 .1 4 4 0 000-.8m.8 1.5a1.4 1.4 0 01-.5.8v.2c.3-.3.5-.6.5-.9a.5.5 0 000-.1m-2.6-1.5l-.2.4v.1l.2-.4v-.1m.3 2a2 2 0 01-.3.4v.2a2 2 0 00.3-.4v-.1m-.9 1c-.3-.4-.5-.8-.3-1.3v-.1c-.2.5-.1 1.1.3 1.5v-.1m-1.2-1.1v.7a2 2 0 000-.9.3.3 0 000 .2m2.8 1.3l-.3.7v.1l.3-.7m1.8.7l-.5.7v.2a9.7 9.7 0 00.5-.8v-.1m.8.9a18 18 0 000 .1.5.5 0 000-.1m1.1-1.7v.5c0 .1 0 0 0 0v-.5c0-.1 0 0 0 0m-11.8-5.2v1.4s.1-.1 0-.1v-1.2"/>
+  <path fill="#fff" d="M254.7 209.4c.8-.7 1.8-1.4 2.9-1.1v-.2c-1-.2-2.1.5-2.9 1.2v.1m3.7.9c-.8-.6-2-.7-2.8-.1v.1c.7-.6 2-.4 2.8.1v-.1m-3 1.1a6 6 0 01.6 3.2.5.5 0 000 .1c.2-1.2-.2-2.3-.5-3.4v.2m-1.2.6c.2 1 0 2 0 3v.1c0-1 .2-2.2 0-3.2m1.6-.7c1 .3 2 1 2.5 1.8v-.1a4.1 4.1 0 00-2.5-1.8v.1m-.9 1.4l-.1 1.9v.1c.2-.6.1-1.3.1-2m1.6-.1c.6.5 1.1 1.3 1.2 2a3.4 3.4 0 00-1.2-2.2v.2m-4.6 1.7c.2-.3.4-.6.8-.8v-.1c-.4.1-.6.5-.8.8m1.5-5.3a2 2 0 00-1-1.2v.1c.4.3.8.7 1 1.2v-.1m-1 0a3.7 3.7 0 00-1.6-.3v.1c.6 0 1.1 0 1.7.3v-.1m1.6-.1c0-.5 0-1-.5-1.4v.1c.4.3.6.7.5 1.2m2 .7c.5-.2 1-.2 1.5-.2v-.1c-.5 0-1 0-1.5.2v.1m.9 1.4c.7 0 1.3.4 1.8 1v-.3a2.8 2.8 0 00-1.8-1v.3m-3.4 2c-.2.8 0 1.7-.9 2v.3c.9-.3.7-1.3 1-2v-.3"/>
+  <path fill="#fff" d="M255.5 212.3c.3.7.7 1.5.5 2.4a1 1 0 000 .2c.2-1-.2-2-.5-2.9v.3m1-.2a2 2 0 011.6 1.6v-.1a1 1 0 000-.2 1.8 1.8 0 00-1.5-1.5v.2m0 1.1c0 .7.3 1.3 0 2v.2c.3-.8.1-1.6 0-2.4a1 1 0 000 .2m-.4-2.7c.8-.2 1.6-.3 2.3.3v-.3c-.7-.6-1.5-.4-2.3-.3v.3m-1.5-1.6c0-.7.7-1.2 1.3-1.4v-.3c-.7.2-1.2.7-1.3 1.4a1 1 0 000 .2m-.8.5c0-.8-.3-1.4-.6-2v.2c.2.6.6 1.2.6 1.8 0 .2 0 0 0 0m-.7.4a2 2 0 00-1.1-1.4v.2c.5.3 1 .8 1.1 1.4a.8.8 0 000-.2m-1-.3a3 3 0 00-1.3-.6v.2c.5.1.9.4 1.3.6v-.2m2.3 3.1c0 .7.2 1.4-.2 2v.3c.5-.7.3-1.6.3-2.5v.2"/>
+  <path fill="#fff" d="M255.3 212.1c.3.7.6 1.4.5 2.1v.2c0-1-.2-1.7-.5-2.5v.2m.6-1c.7.3 1.3.5 1.8 1v-.2a3.8 3.8 0 00-1.8-1v.3m-1.8-1.5a16 16 0 00.1-1.8c0-.2 0-.2 0 0 0 .5 0 1-.2 1.6v.2m-1.2-.4a6 6 0 01-1.3-.9v.3l1.3.9v-.3m-.2 3.5c-.3.2-.5.5-.7.9v.2l.7-.8v-.3m.9.6c0 .4-.3.8-.6 1.2v.2c.4-.4.6-.8.6-1.4 0 0 0-.2 0 0m2.3-3.8c.4-.7 1.3-.7 2-1v-.2c-.7.2-1.6.2-2 .9v.2m-4.5 0a2.2 2.2 0 01-.4-.2v.2l.4.2v-.2m.1 3.3a1 1 0 00-.4.2v.3l.4-.2v-.2a.8.8 0 000-.1m.6.1l-.7.7v.2l.7-.7v-.2m1.1.3c-.2.6-1 1.3-.4 2v-.3c-.4-.5.2-1 .4-1.4v-.3m.8 0l-.2 1.8a1 1 0 000 .3 10.5 10.5 0 00.2-2.1m2-.7c.5.6.9 1.2 1 2v-.3a5.7 5.7 0 00-1-2v.3m.2-.5c.8.5 1.6 1 2.1 1.9v-.3c-.5-.8-1.3-1.3-2-1.9v.3"/>
+  <path fill="#fff" d="M256.6 211h.8l.6.5c.2.1.5.2.6.4.3.3.3.7.3 1a.8.8 0 000-.2l-.1-.8-.5-.5-.8-.5c-.3-.2-.6-.2-1-.1v.2"/>
+  <path fill="#fff" d="M258.4 212.5l.3.8v-.2l-.3-.7v.1m-2.1-3.8l1.6-.4v-.3l-1.6.4v.3m-2.2.3a2.4 2.4 0 01.4-.8l.4-.9v-.3l-.4.8c0 .3-.3.6-.4 1v.2m-1.8 5l.1 1.3v-.3a1.5 1.5 0 010-.8v-.2m1 .8c-.2.2-.2.6 0 1v-1m.8-.5l-.2.8v.2l.2-1s0-.1 0 0m0-1.5v.5-.6.1m-.3.2a.9.9 0 010 .1.8.8 0 000 .3v-.7.3m-.6-.2a3.7 3.7 0 000 .5.8.8 0 000 .2v-.6m-.4 0l-.9.6v.3l1-.7v-.2m-.8 0c-.1.2-.3.3-.5.3v.3c.2 0 .4-.1.5-.3v-.1a3.3 3.3 0 000-.1m-1-.3l-.4.2v.2l.4-.2v-.2m3-.1l.1.5a.8.8 0 000-.2v-.4.1m.4-.2l.1.6a.4.4 0 000-.1v-.2a1 1 0 010-.3v-.2.2m.3 0l.1.3v-.1a.9.9 0 000-.5h-.1v.2m.4-.1a.8.8 0 01.4.2v-.4a.8.8 0 00-.4-.2v.3m.3-.4l.6.3v-.3a1.3 1.3 0 01-.6-.3v.4m.5-1.2h.4v-.2a2.5 2.5 0 00-.4 0v.2m-.3-.6l.4-.4a5.7 5.7 0 000-.2l-.4.4v.2m-.4-.5a1 1 0 01.2-.5v-.2a1.1 1.1 0 00-.2.6s0 .1 0 0m-.4-.2l.5-.8v-.2l-.5.8v.2"/>
+  <path fill="#fff" d="M254.4 208.3l.1 1v-.1a.7.7 0 000-.2v-.8.1m-1.4.2l.2.4a2 2 0 01.1.3c0-.1 0 0 0 0v-.3l-.3-.6v.2m-.2.6a4.8 4.8 0 00-.6-.5 1.6 1.6 0 000 .1v.2l.6.4v-.2m.8.3a3 3 0 00-.1-1.8v.3c.2.4.2.8.1 1.2v.2m1.3-.7v-.3.3"/>
+  <path fill="#fff" d="M253.6 209.4l.1-1v-.3l-.2 1a1.6 1.6 0 000 .3m3.8 2.1c.3.1.6.3.7.6v-.4c-.1-.3-.4-.5-.7-.6v.4m-1 2v.6a1.2 1.2 0 000 .3s0 .1 0 0a2.8 2.8 0 000-1.2.7.7 0 000 .1v.3m-.9-.6v1.3s0 .2 0 0v-1.5.2m-.4.4a22.6 22.6 0 00-.3 1.7l.3-1.3v-.4m.6.3v1.1a1.5 1.5 0 000 .3c0 .1 0 .1 0 0v-1.6.2m-2.8.2a.7.7 0 010 .1v-.5.1a1.4 1.4 0 000 .3m1.2-.8l.1.4v-.8.4m.3-.2a.4.4 0 01.1.2s0 .1 0 0a.7.7 0 000 .2v-.3l-.1-.5a1.4 1.4 0 000 .2v.2m.4-.3l.2.4a1 1 0 000-.2v-.2l-.2-.4a2.8 2.8 0 000 .3m.9-.3l.5.7v-.4a10 10 0 01-.5-.7v.4m.4-.7l.5.6v-.5a4.4 4.4 0 01-.4-.6v.5m-4.6-2.1a1.8 1.8 0 00-.5-.3v.4c.2 0 .3.2.5.3v-.4m1.4-.5a.5.5 0 010 .1v.1l.1-.2a1 1 0 000-.4 1 1 0 000 .1v.3m1-1.1l-.1.8v.3s0 .1 0 0c.2-.3.2-.8.2-1.2a.6.6 0 000-.1v.2m.2 1.5l.5-.6v-.4l-.5.6v.4m.7 0l.2-.3v-.3l-.2.2a1.4 1.4 0 000 .2v.2m1 .2a8.3 8.3 0 01-.7 0v.4a8 8 0 00.8 0v-.4m-.3 1c.4.1.7.4 1 .6 0 0 .2-.4 0-.4l-1-.7v.4"/>
+  <path fill="#fff" d="M256 211.2l.9.6v-.5l-1-.6a2.3 2.3 0 000 .2v.2m-2-1.5v-.6.6m-2.4-1c.2.3.6.5 1 .8l.6.7s.1-.4 0-.4l-.6-.6-1-1c0 .1-.1.4 0 .4m.6 1.2a8.2 8.2 0 01-.5-.6 1.8 1.8 0 000 .2v.2a8 8 0 00.5.6v-.4m-.4 2.7l-.3.6v.4l.3-.6v-.4m.3.4v.7a1.4 1.4 0 000 .3v-1.1a.7.7 0 000 .1m1.1 2c.2-.8.2-1.4.2-2.1 0-.3 0 0 0 0 0 .6 0 1.1-.2 1.6v.4m.6-1.6l.1.7a1.4 1.4 0 000 .3s0 .1 0 0v-1.4a.7.7 0 000 .2v.2m.6-.2c.2.3.3.6.2 1v.2c.1-.5.1-1.2-.2-1.6v.4"/>
+  <path fill="#fff" d="M254.5 212.6l.4 1.8v-.3a14.2 14.2 0 00-.3-1.9v.4m.5-.1l.7 1.1a.7.7 0 000-.1v-.3a4 4 0 00-.7-1.1v.4m1.2-1c0-.2-.3-.3-.5-.2v.4c.2 0 .4 0 .5.2v-.4"/>
+  <path fill="#fff" d="M255.7 211.3h1.2v-.5h-1.2v.5m.7-3.1a3 3 0 00-.5 1.3v.3s0 .1 0 0c0-.4.2-.9.5-1.2v-.4m-1.6.3c0 .4.2.7.3 1a.8.8 0 000-.1v-.3l-.3-1v.1a1.3 1.3 0 000 .3m-.3.6a1.6 1.6 0 01-.4-.5 1 1 0 000 .1v.3a1.7 1.7 0 00.4.5v-.4m-.6.3c-.5-.1-.9-.3-1.3-.6v.4c.4.3.8.5 1.3.6v-.4"/>
+  <path fill="#dba05f" d="M254.4 209.3l-2.3.4-2 .2-1.3-.4c-.4 0-1.7-.2-2.2.3l-1 .8c-.1.2-.7.7-.7 1 0 .2.1.6.4.6.3 0 1 .6 1 .8 0 .2.8.4 1.6.4 1.4 0 2.1-.7 4.2-.4 1.2 0 3.3-.8 3.7-1.4.4-.5.6-1.1.2-1.7-.3-.7-1.5-.6-1.6-.6"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M254.4 209.3l-2.3.4-2 .2-1.3-.4c-.4 0-1.7-.2-2.2.3l-1 .8c-.1.2-.7.7-.7 1 0 .2.1.6.4.6.3 0 1 .6 1 .8 0 .2.8.4 1.6.4 1.4 0 2.1-.7 4.2-.4 1.2 0 3.3-.8 3.7-1.4.4-.5.6-1.1.2-1.7-.3-.7-1.5-.6-1.6-.6z"/>
+  <path d="M246.8 211.3v-.1l.1-.2.2-.2a.9.9 0 01.4-.3h-.1.7l-.7.1h.6-.5c-.3.1-.3.5-.7.7"/>
+  <path fill="none" d="M246.7 211.2l.4-.4.7-.3h.3"/>
+  <path fill="none" d="M247.4 210.6l-.4.3-.3.3m.8-.6h.5m-.6.1h.5"/>
+  <path d="M247.9 211l-.2.1-.1.1-.3.2-.4.1.5-.1-.4.1.4-.1-.4.1h.1s.4 0 .8-.4"/>
+  <path fill="none" d="M247.8 211l-.3.2s-.3.3-.4.2l-.2.1m.4-.1l.3-.2.2-.2m-.4.4l-.4.1m.4-.1l-.3.1"/>
+  <path fill="#c6262c" d="M248.4 209.6s0-.6-.6-.8a3.4 3.4 0 00-1.4-.2l-.6.1a2.7 2.7 0 00-.6.2v.3c-.2.2-.5.4-.4.6.2.3 0 .3.2.4.2 0 0-.1 0-.1s-1 .3-.8.9c.2.6.5.4.6.4l.5-.3.8-.7 1-.4h.6l.7-.4z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M248.4 209.6s0-.6-.6-.8a3.4 3.4 0 00-1.4-.2l-.6.1a2.7 2.7 0 00-.6.2v.3c-.2.2-.5.4-.4.6.2.3 0 .3.2.4.2 0 0-.1 0-.1s-1 .3-.8.9c.2.6.5.4.6.4l.5-.3.8-.7 1-.4h.6l.7-.4z"/>
+  <path d="M247.7 211l-.3.4-.4-.1.4-.5.3.1"/>
+  <path fill="#d9c0b9" d="M243.8 213.6s-.7-1.3 1.4-2l.8.6s-.4.6-1.6.8c0 0-.6.2-.6.6"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M243.8 213.6s-.7-1.3 1.4-2l.8.6s-.4.6-1.6.8c0 0-.6.2-.6.6z"/>
+  <path fill="#d9c0b9" d="M244 213.4s.9.1 1.5-.3c.4-.3.6-.2.7-.1 0 0 0-.5-.2-.8l-1 .7c-.5 0-.8 0-1 .5"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M244 213.4s.9.1 1.5-.3c.4-.3.6-.2.7-.1 0 0 0-.5-.2-.8l-1 .7c-.5 0-.8 0-1 .5z"/>
+  <path fill="#7a2e26" d="M246.4 213h.5v-.2h-.5v.1m-.3-2.2c-.1 0 0 .2-.2.3v.1c.1 0 0-.2.2-.2v-.2m.5.3l.3-.2v-.1c-.2 0-.3 0-.4.2v.1m.6.8a.3.3 0 00.3-.1v-.1a.3.3 0 01-.3 0v.2m.5-.2a.8.8 0 00.4-.3v-.1a.8.8 0 01-.4.3v.1m-.7-.7l-.4.4v.1l.4-.4v-.1m.3 2.2l1-.1v-.2a3.3 3.3 0 01-1 .2m1.6 0c.5-.3 1-.6 1-1.2v-.1c0 .6-.5.9-1 1.2v.1m.3-.8c.4-.2.6-.5.7-.9v-.1c-.1.4-.4.7-.7.9v.1m-.1-2c.2-.1.5.1.7.3v-.2l-.7-.3v.1m6.6 1c.3-.4.2-1-.1-1.4v.1c.2.4.4.8.1 1.2v.2m-5-.7c.2.2 1 .8.8 1.2v.1c.3-.6-.4-1.2-.9-1.5v.2m2.3 2.2a1.6 1.6 0 00.1-.4.5.5 0 000-.1v.5"/>
+  <path fill="#5e3f17" d="M253.7 212.5l.6-.3m-9-.2c-.4.2-1 .2-1 .7 0-.5.6-.5 1-.7"/>
+  <path fill="#842116" d="M245 210.4c.1 0 .3.1.3.3a.5.5 0 000 .1.7.7 0 000-.3c0-.2-.2-.2-.3-.2v.1m.7.3a.7.7 0 000-.6v.6m.6-.6c0-.2-.1-.5-.4-.6v.1c.3.1.3.4.4.6a.3.3 0 000-.1m.5-.1c0-.2 0-.5-.2-.6v.1l.2.4m-.9-.7c.5-.2 1.6-.3 2 .2v-.2c-.4-.5-1.5-.4-2-.1v.1"/>
+  <path fill="#7a2e26" d="M244.8 211.3v-.5s-.1 0 0 0v.5m5 1.5a.7.7 0 00.3-.5v-.1a.7.7 0 01-.3.4v.2m.8-.1a.4.4 0 00.1-.3l-.1.2v.1m4.6-2.5a1 1 0 01.1.7.4.4 0 000 .1v-1s-.1.1 0 .2m-.6.4l.1.7v-.8.1m-.5.4"/>
+  <path fill="#452c25" d="M260.5 224.5l.1.3h.1l-.1-.3z"/>
+  <path fill="#dcddde" d="M250 208c-1.7 0-3.5-1.2-3.5-1.2-2.3-.4-2.4-2.5-2.4-2.5-1-.3-1.7-2.6-1.7-2.6-1.4.8-3.2 0-3.2 0s0-.4-1.6 0c-1.6.3-1.3-.3-1.3-.3s.6-.7-2.2 0c-2.8.6.3-.9.3-.9-.9.3-3.5.5-3.5.5-1 0-2 .5-3 .8-.8.2-2 .4-2.5.7l-7.3 3.1-5.9 2.3c.3 0 3.7-2.3 8-4.2a93.5 93.5 0 0111-4.2c3.1-1 5.6-.5 7 0 .7.2 4.4-.1 6 0 1.8.3 2 3 2 3 .2.2.4 2.8.4 2.8s-1 0 .1.2 3.1 1.7 3.1 1.7h.8s.4-.5.9-.7l1.6-.5h2.1l2.2.3c.9.1 1 .2 1.3.3h.5c1-.5 3.2-1.3 3.6-1.2 0 0 .8-.2 1.2-.5a112 112 0 001.4-1.1s-.6-4.7 4.1-4.3l12.3 1.3a47.8 47.8 0 0112.5 4.5l4.3 1.9c2.4 1 4.1 2.5 4.1 2.5l-3.8-1.9c-1-.4-2-.6-2.8-1l-3.9-1.8c-3.7-1.7-3.6-1.8-5.1-1.9-1 0 .7 1.2.7 1.2l-4.4-1.7a6.3 6.3 0 00-3-.6 6.2 6.2 0 01-2.4-.3c-.6-.2-4-.4-4.7-.4a7.8 7.8 0 01-1-.2l.2.4-1.7-.3-.5.7s-1.6.3-1.7-.2c-.2-.5-1 2.4-1.4 3.2-.4.9-2.4.6-2.9 1.1-.4.6-1.5 1-1.7 1-.2.2-1 .1-1.4.1-.6 0 0 0-1.1.2l-1.2-.1-1.5-.5-3.8-.2a6 6 0 00-1.5.4l-1.3.8"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M250 208c-1.7 0-3.5-1.2-3.5-1.2-2.3-.4-2.4-2.5-2.4-2.5-1-.3-1.7-2.6-1.7-2.6-1.4.8-3.2 0-3.2 0s0-.4-1.6 0c-1.6.3-1.3-.3-1.3-.3s.6-.7-2.2 0c-2.8.6.3-.9.3-.9-.9.3-3.5.5-3.5.5-1 0-2 .5-3 .8-.8.2-2 .4-2.5.7l-7.3 3.1-5.9 2.3c.3 0 3.7-2.3 8-4.2a93.5 93.5 0 0111-4.2c3.1-1 5.6-.5 7 0 .7.2 4.4-.1 6 0 1.8.3 2 3 2 3 .2.2.4 2.8.4 2.8s-1 0 .1.2 3.1 1.7 3.1 1.7h.8s.4-.5.9-.7l1.6-.5h2.1l2.2.3c.9.1 1 .2 1.3.3h.5c1-.5 3.2-1.3 3.6-1.2 0 0 .8-.2 1.2-.5l1.4-1.1s-.6-4.7 4.1-4.3l12.3 1.3a47.8 47.8 0 0112.5 4.5l4.3 1.9c2.4 1 4.1 2.5 4.1 2.5l-3.8-1.9c-1-.4-2-.6-2.8-1l-3.9-1.8c-3.7-1.7-3.6-1.8-5.1-1.9-1 0 .7 1.2.7 1.2l-4.4-1.7a6.3 6.3 0 00-3-.6 6.2 6.2 0 01-2.4-.3c-.6-.2-4-.4-4.7-.4a7.8 7.8 0 01-1-.2l.2.4-1.7-.3-.5.7s-1.6.3-1.7-.2c-.2-.5-1 2.4-1.4 3.2-.4.9-2.4.6-2.9 1.1-.4.6-1.5 1-1.7 1-.2.2-1 .1-1.4.1-.6 0 0 0-1.1.2l-1.2-.1-1.5-.5-3.8-.2a6 6 0 00-1.5.4l-1.3.8"/>
+  <path fill="#452c25" d="M250.3 207.4s-.2.1-.3.5v.2"/>
+  <path fill="#574f4c" d="M259.5 206.9l.7.5s0 .1 0 0a7 7 0 00-.8-.7.6.6 0 00.1.2"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bq.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bq.svg
new file mode 100644
index 0000000..cc872ef
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bq.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bq" viewBox="0 0 512 512">
+  <path fill="#21468b" d="M0 0h512v512H0z"/>
+  <path fill="#fff" d="M0 0h512v341.3H0z"/>
+  <path fill="#ae1c28" d="M0 0h512v170.7H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/br.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/br.svg
new file mode 100644
index 0000000..8353e82
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/br.svg
@@ -0,0 +1,45 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-br" viewBox="0 0 512 512">
+  <g stroke-width="1pt">
+    <path fill="#229e45" fill-rule="evenodd" d="M0 0h512v512H0z"/>
+    <path fill="#f8e509" fill-rule="evenodd" d="M261.4 405.4l229.8-149.2L260 106.6l-230.7 150 232 148.8z"/>
+    <path fill="#2b49a3" fill-rule="evenodd" d="M361.5 256a97.2 97.2 0 11-194.3-.2 97.2 97.2 0 01194.3.2z"/>
+    <path fill="#ffffef" fill-rule="evenodd" d="M232.3 314.2l-3-1.8-3.1 1.6.7-3.5-2.4-2.5 3.4-.4 1.6-3.2 1.5 3.3 3.4.6-2.6 2.4m65.7 20l-3-1.8-3.2 1.6.7-3.5-2.4-2.5 3.5-.4 1.6-3.2 1.4 3.3 3.4.6-2.5 2.4m-27.6-22.9l-2.6-1.5-2.7 1.3.6-3-2-2.2 2.9-.3 1.4-2.7 1.2 2.8 3 .5-2.2 2m66.2-6.4l-2.6-1.5-2.6 1.3.6-2.9-2-2.1 2.9-.4 1.3-2.6 1.3 2.7 2.9.5-2.2 2m-66.6-16.7l-3-1.8-3.1 1.6.7-3.5-2.4-2.5 3.4-.4 1.6-3.1 1.5 3.2 3.4.6-2.6 2.4M188 245l-3-1.8-3 1.6.6-3.5-2.4-2.5 3.5-.4 1.6-3.2 1.4 3.3 3.4.6-2.5 2.4m10.1 43.5l-3-1.7-3.1 1.5.7-3.4-2.4-2.6 3.4-.4 1.6-3 1.5 3.1 3.4.7-2.6 2.3m100.6-51.3l-2.6-1.5-2.8 1.3.6-3-2-2.3 3-.3 1.4-2.8 1.3 2.9 3 .5-2.3 2.1m-5 29.2L290 255l-2.1 1 .4-2.4-1.6-1.7 2.4-.3 1.1-2.2 1 2.3 2.4.4-1.8 1.6m-108.4 38.5l-2-1.2-2.1 1 .4-2.3-1.6-1.7 2.4-.2 1-2 1 2 2.3.5-1.7 1.6m152.6 11.5l-1.7-.8-1.7.7.4-1.7-1.3-1.3 1.9-.2.9-1.5.7 1.6 1.9.3-1.4 1.2"/>
+    <path fill="#ffffef" fill-rule="evenodd" d="M183.5 292.3l-2-1.2-2.1 1 .5-2.3-1.7-1.7 2.3-.2 1.1-2 1 2 2.3.5-1.7 1.6"/>
+    <path fill="#ffffef" fill-rule="evenodd" d="M183.5 292.3l-2-1.2-2.1 1 .5-2.3-1.7-1.7 2.3-.2 1.1-2 1 2 2.3.5-1.7 1.6m32.2 2.3l-2-1.2-2 1 .4-2.3-1.6-1.7 2.3-.2 1-2.1 1 2.1 2.3.5-1.7 1.6m-3.7 13l-2-1.2-2 1 .4-2.3-1.6-1.7 2.3-.3 1-2 1 2 2.3.5-1.7 1.6m66.7-17l-2-1.2-2.1 1 .4-2.3-1.6-1.7 2.3-.2 1.1-2.1 1 2.1 2.2.4-1.7 1.6m-19.1 2.4l-2-1.2-2.1 1 .5-2.3-1.6-1.7 2.3-.2 1-2.1 1 2.1 2.3.4-1.7 1.6m-52.5-4.4l-1.2-.7-1.3.6.2-1.5-1-1 1.5-.2.7-1.3.5 1.4 1.5.2-1 1M333.2 310l-2-1.1-2.1 1 .5-2.3-1.6-1.7 2.3-.3 1-2 1 2 2.3.5-1.7 1.6m-16 4.4l-1.6-1-1.7 1 .4-2-1.4-1.4 2-.2.8-1.7.8 1.7 2 .4-1.5 1.3m8 1.8l-1.6-1-1.6.9.3-1.8-1.2-1.3 1.8-.2.8-1.6.7 1.6 1.8.3-1.3 1.3m22.2-17.4l-1.5-.9-1.6.8.4-1.7-1.2-1.3 1.7-.2.8-1.5.7 1.6 1.7.3-1.3 1.2M317 322.9l-2-1.1-2 1 .5-2.2-1.6-1.5 2.2-.3 1.1-1.9 1 2 2.1.4-1.6 1.4m.4 10.9l-1.8-1-1.8.9.4-2.2-1.4-1.5 2-.3 1-1.9.8 2 2 .4-1.5 1.4M302.3 312l-1.5-.9-1.6.8.4-1.8-1.2-1.2 1.7-.2.8-1.6.7 1.6 1.7.3-1.3 1.2m-13.5 1.8l-1.5-.9-1.6.8.4-1.8-1.2-1.2 1.7-.2.8-1.6.7 1.6 1.7.3-1.2 1.2M265 291.4l-1.5-.9-1.6.8.4-1.7-1.2-1.3 1.7-.2.8-1.5.7 1.6 1.7.3-1.3 1.1m2.9 43.5l-1.3-.7-1.3.7.3-1.5-1-1 1.4-.3.7-1.3.6 1.4 1.5.2-1.1 1m-35.2-66l-3-1.7-3.1 1.5.7-3.4-2.4-2.6 3.4-.4 1.6-3.1 1.5 3.2 3.4.6-2.6 2.4"/>
+    <path fill="#fff" fill-rule="evenodd" d="M355.1 291a95 95 0 004.4-15.1c-51.6-45.4-109.2-68.7-182-63.9a95 95 0 00-6.4 15.9 233 233 0 01184 63z"/>
+    <path fill="#309e3a" d="M331.9 265.4l1.8 1a2.6 2.6 0 00-.2 1.8c.1.4.5.9 1 1.2.6.4 1.1.6 1.6.6.4 0 .8-.3 1-.6.1-.2.2-.4.1-.7l-.3-.8-1.2-1.3a5.9 5.9 0 01-1.4-2.3 2.8 2.8 0 011.6-3.3 2.9 2.9 0 011.7-.2 5.3 5.3 0 012 .9 6 6 0 012 2.4 3 3 0 01-.5 2.6l-1.8-1.1c.2-.5.3-1 .2-1.4-.1-.3-.5-.7-1-1-.5-.4-1-.5-1.4-.5a.8.8 0 00-.6.3.8.8 0 00-.1.7c0 .4.5 1 1.2 1.7l1.5 2a3 3 0 01-.2 3.2 3.1 3.1 0 01-1.4 1.1 3 3 0 01-1.9.2 6 6 0 01-2.1-1 4.6 4.6 0 01-2-2.5c-.3-.9-.2-1.9.4-3zm-8.8-5.7l2 1a2.6 2.6 0 00-.2 1.6c.1.5.5 1 1 1.3.6.4 1.1.5 1.6.4.4 0 .8-.2 1-.6a1 1 0 00.1-.6c0-.3-.1-.5-.4-.8l-1.2-1.3a6 6 0 01-1.5-2.2 2.8 2.8 0 01.3-2.4 2.8 2.8 0 011.2-1 3 3 0 011.7-.2c.6 0 1.2.3 2 .8 1 .7 1.8 1.4 2 2.3a3 3 0 01-.3 2.6l-1.9-1.1c.3-.5.3-1 .2-1.3-.2-.4-.5-.7-1-1a2.4 2.4 0 00-1.5-.5.8.8 0 00-.6.4.8.8 0 000 .7c0 .3.5.9 1.2 1.7.8.7 1.3 1.4 1.6 1.8a3 3 0 01-.1 3.3 3.2 3.2 0 01-3.2 1.4 6.1 6.1 0 01-2.2-.9 4.7 4.7 0 01-2.1-2.4 4.1 4.1 0 01.3-3zm-10.8-3l5.6-9 6.7 4-1 1.6-4.8-3-1.3 2 4.6 2.8-1 1.6-4.5-2.8-1.5 2.5 5 3-.9 1.6-6.9-4.2zm-15.8-12.9l.9-1.6 4 2.2-1.9 3.7a7.2 7.2 0 01-4.8-.6 5.8 5.8 0 01-2.2-2 4.5 4.5 0 01-.8-2.6c0-1 .3-1.9.8-2.8a6.1 6.1 0 012-2.3c.7-.6 1.7-.9 2.7-.9.7 0 1.6.3 2.5.7a5 5 0 012.3 2.2c.4.8.5 1.7.3 2.7l-2.1-.6a2.2 2.2 0 00-.2-1.5 2.5 2.5 0 00-1.2-1.1 2.9 2.9 0 00-2.4-.3c-.7.3-1.4 1-2 2a4.8 4.8 0 00-.5 3c.2.8.7 1.4 1.6 1.8l1.3.4h1.3l.6-1.2-2.2-1.2zm-68.8-17l1.6-10.6 3.2.5.8 7.5 3-7 3.1.5-1.5 10.6-2-.3 1.2-8.3-3.3 8-2-.3-.9-8.7-1.2 8.4-2-.3zm-10.7-1.3l1-10.6 7.8.7-.1 1.8-5.8-.5-.2 2.3 5.3.5-.1 1.8-5.3-.5-.3 3 5.9.5-.2 1.8-8-.8z"/>
+    <g stroke-opacity=".5">
+      <path fill="#309e3a" d="M181.4 218.8c0-1 .2-2 .5-2.7l1-1.4 1.5-1a5.8 5.8 0 012.3-.3 5 5 0 013.7 1.6c1 1 1.3 2.3 1.3 4 0 1.8-.6 3.1-1.5 4a5 5 0 01-3.8 1.4 5 5 0 01-3.7-1.5 5 5 0 01-1.3-4z"/>
+      <path fill="#f7ffff" d="M183.6 218.8c0 1.2.2 2.2.8 2.8.5.7 1.2 1 2 1a3 3 0 002.2-.9c.5-.6.8-1.5.9-2.7 0-1.3-.2-2.2-.8-2.8a2.7 2.7 0 00-2-1c-1 0-1.7.3-2.2.9-.6.6-.9 1.5-1 2.7z"/>
+    </g>
+    <g stroke-opacity=".5">
+      <path fill="#309e3a" d="M194 224.4l.1-10.7h4.5c1.2 0 2 .2 2.5.4s1 .5 1.2 1 .5 1 .5 1.7c0 .8-.3 1.4-.7 2-.5.5-1.2.8-2.2 1 .5.2.9.5 1.2.8l1.2 1.8 1.3 2H201l-1.5-2.3a16 16 0 00-1.2-1.6 1.6 1.6 0 00-.6-.4 3.5 3.5 0 00-1-.2h-.5v4.5H194z"/>
+      <path fill="#fff" d="M196.2 218.2h1.6a8.1 8.1 0 002 0l.5-.5c.2-.2.3-.5.3-.8 0-.4-.1-.7-.3-.9a1.3 1.3 0 00-.8-.4h-3.2v2.6z"/>
+    </g>
+    <g stroke-opacity=".5">
+      <path fill="#309e3a" d="M206.2 214.2l3.9.2a7.6 7.6 0 012 .3 4 4 0 011.5 1 5 5 0 011 1.9c.2.7.2 1.5.2 2.5a5.3 5.3 0 01-1.7 4.1c-.4.3-.9.6-1.5.8h-2l-4-.1.6-10.7z"/>
+      <path fill="#fff" d="M208.2 216.1l-.3 7 1.6.2h1.3l.9-.5c.3-.2.4-.5.6-1l.3-2-.1-1.8c-.2-.5-.3-.8-.6-1a2 2 0 00-1-.6 9.6 9.6 0 00-1.7-.2h-1z"/>
+    </g>
+    <g stroke-opacity=".5">
+      <path fill="#309e3a" d="M258.5 233.3l2.5-10.4 3.3.8c1.3.3 2.1.6 2.5.8.5.3 1 .7 1.2 1.3.3.7.3 1.4.1 2.2a3 3 0 01-1.9 2.3 3 3 0 01-1.1.3 12 12 0 01-2.2-.4l-1.4-.3-1 3.9-2-.5z"/>
+      <path fill="#fff" d="M262.6 225.2l-.7 3 1.2.2c.8.2 1.4.3 1.7.2a1.4 1.4 0 001.2-1l-.1-1.1a1.5 1.5 0 00-.8-.7l-1.5-.4-1-.2z"/>
+    </g>
+    <g stroke-opacity=".5">
+      <path fill="#309e3a" d="M268.4 236.3l3.5-10.1 4.3 1.5a8 8 0 012.2 1c.4.4.7.9.9 1.5s0 1.1-.2 1.7c-.2.8-.7 1.3-1.3 1.6a3 3 0 01-2.3.3l.8 1.2.6 2 .5 2.4-2.4-.8-.7-2.7a14.5 14.5 0 00-.6-1.9 1.6 1.6 0 00-.4-.6 3.4 3.4 0 00-1-.5l-.4-.1-1.5 4.2-2-.7z"/>
+      <path fill="#fff" d="M272.4 231.2l1.5.5 1.9.5c.3 0 .5 0 .7-.2l.5-.7v-1a1.3 1.3 0 00-.6-.6l-1.5-.5-1.6-.6-.9 2.6z"/>
+    </g>
+    <g stroke-opacity=".5">
+      <path fill="#309e3a" d="M280.9 235.9a6.8 6.8 0 011.3-2.5c.3-.5.8-.8 1.3-1.1a4.2 4.2 0 011.6-.5c.7 0 1.5 0 2.3.3a5 5 0 013.2 2.5c.6 1.2.7 2.7.1 4.3a5.6 5.6 0 01-2.5 3.5 5 5 0 01-4 .2 5 5 0 01-3.2-2.5 5.5 5.5 0 01-.1-4.2z"/>
+      <path fill="#fff" d="M283 236.5c-.3 1.1-.3 2 0 2.8.4.8 1 1.3 1.8 1.6.8.2 1.5.1 2.2-.3.7-.4 1.3-1.2 1.7-2.4.3-1.2.3-2.1 0-2.9a2.7 2.7 0 00-1.8-1.5 2.7 2.7 0 00-2.3.3c-.7.4-1.2 1.2-1.6 2.4z"/>
+    </g>
+    <g stroke-opacity=".5">
+      <path fill="#309e3a" d="M301.7 250.8l4.9-9.5 4 2c1 .6 1.7 1 2 1.4.4.5.6 1 .7 1.5s0 1.2-.4 1.7c-.3.7-.8 1.2-1.5 1.5-.7.2-1.4.2-2.3-.1.3.4.5.9.6 1.3l.3 2.1.2 2.5-2.3-1.2-.3-2.8-.3-2a1.6 1.6 0 00-.4-.6 3.5 3.5 0 00-.9-.6l-.4-.2-2 4-1.9-1z"/>
+      <path fill="#fff" d="M306.4 246.3l1.4.7 1.8.8c.3 0 .5 0 .7-.2a1.5 1.5 0 00.8-1.5 1.3 1.3 0 00-.6-.7 21 21 0 00-1.3-.8l-1.5-.7-1.3 2.4z"/>
+    </g>
+    <g stroke-opacity=".5">
+      <path fill="#309e3a" d="M341.2 270.3c.6-1 1.2-1.6 2-2a5 5 0 011.6-.7 4.2 4.2 0 011.6 0c.7.1 1.5.4 2.2 1a5 5 0 012.3 3.3 6 6 0 01-1.1 4.1 5.6 5.6 0 01-3.5 2.6 5 5 0 01-3.9-.9 5 5 0 01-2.3-3.3 5.5 5.5 0 011-4.1z"/>
+      <path fill="#fff" d="M343 271.4c-.6 1-.9 2-.8 2.8a3 3 0 001.3 2 2.7 2.7 0 002.2.4c.8-.2 1.6-.8 2.3-1.9.7-1 1-1.9.8-2.7 0-.8-.5-1.4-1.2-2s-1.5-.6-2.3-.4c-.8.2-1.5.8-2.2 1.8z"/>
+    </g>
+    <path fill="#309e3a" d="M246.4 229l1.7-7.6 5.6 1.3-.3 1.3-4-1-.4 1.7 3.7.9-.3 1.3-3.7-1-.5 2.1 4.2 1-.3 1.3-5.7-1.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bs.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bs.svg
new file mode 100644
index 0000000..decdebb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bs.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bs" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M56.6 26.4H537v480.3H56.6z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="matrix(1.066 0 0 1.067 -60.4 -28.1)">
+    <path fill="#fff" d="M990 506.2H9.4V27.6H990z"/>
+    <path fill="#ffe900" d="M990 370.6H9.4V169.2H990z"/>
+    <path fill="#08ced6" d="M990 506.2H9.4V346.7H990zm0-319H9.4V27.9H990z"/>
+    <path d="M9 25.9c2.1 0 392.3 237 392.3 237L7.8 505.3 9 25.9z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bt.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bt.svg
new file mode 100644
index 0000000..3bbbfaa
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bt.svg
@@ -0,0 +1,89 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bt" viewBox="0 0 512 512">
+  <path fill="#ffd520" d="M0 0h512v512H0z"/>
+  <path fill="#ff4e12" d="M0 512h512V0z"/>
+  <g stroke="#000" stroke-width=".5">
+    <g fill="#fff" stroke-width=".4">
+      <path d="M281.9 162.5c-4-1.4-6.4.6-6.3 5.7.1 5 2.8 7.9 6.7 6l-.4-11.7z"/>
+      <path d="M285.3 153.1c-3.2-2.6-6.3-1.5-7.8 3.3s.1 8.4 4.4 7.9l3.4-11.2z"/>
+      <path d="M290.7 144c-2.8-3-6-2.5-8.2 2-2.2 4.5-1.3 8.3 3 8.5l5.2-10.5zm-3.5 44.2c-4.8 1.8-5.3 8.3-2.3 12.3s8.5 4.8 11.6 0l-9.4-12.3z"/>
+      <path d="M281.6 174.4c-4.5-1.5-8.6 4.6-9.3 10-.8 7-10.6 9.2-5.2 19.7 1.1-6.7 5.5-10.3 9-10.6 3.5-.2 8.8-1 11-5.3l-5.5-13.8zm14.3 26.9c-5.2 1.3-6 8.3-2.2 13.3 3.2 4.3 13.3 3.3 13-1L296 201.3zm15 42.3c.2-4.5-7-6.3-10.5-5.4-3.6.9-10.3-.1-11.9-3.9-1.2 3 .6 6.3 5.7 8 3.8 1.2 3.8 4 2.6 5.2 3 .5 11.5.5 14-3.9z"/>
+      <path d="M306.8 214.7c-5.2-2.2-8.3 1.2-10.2 4.6-3 4.9-11.8-1.4-14.8 5.1 4-1.7 8.2 2 10.1 3.3 5.6 3.6 16.2 2.5 17.7-6l-2.9-7z"/>
+      <path d="M309.8 220.8c-5.2 3.8-7.2 8.5-7 11.6 0 3.2 4.5 10 9.2 10.5 2.8-5.7 4.2-17.6-2.2-22.1zM288.4 245c0-1.9 2.8-2.6 4.7-2 1.8.6 4.7 2.5 3.7 4.5l-8.4-2.5zM260 234.7c-.5-2.3 3.2-6.2 8-4 5 2.1 5.6 6.3 3.6 7.9l-11.6-3.9z"/>
+      <path d="M272 238.8c-.4-1.2 3.1-3.7 9.1-2.2s7.5 5.4 7.3 8.4l-16.4-6.2zm-12.6-4.1c3.1-2.4 2-7-.9-8.3-5.1-2.5-3.2-9-6.5-10.3-3.3-1.2-6.4-3.5-6.5-5.8-1.7 3.2-.7 6 1.6 8s-1.8 10.2 1.1 12.4l11.2 4zm-67.3-1.8c-2.6-4.1-9-3.3-11.5-.5-2.7 3-2.3 7.2.2 9l11.3-8.5zm15-6.1c-1-5.5-7.6-6.2-11.2-4.8-3.7 1.4-6.2 7-3.8 11l15-6.2z"/>
+      <path d="M217.2 226c2.4-4.6-2.2-11.5-7.5-12.5-4.4-.9-9.6-.8-11.3-5.2-1 3.8 1.7 6.2 5 8.3 3.3 2.2-.6 7.7 4.7 10.8l9.1-1.4z"/>
+      <path d="M216.7 226.2c-1-3.3 1.2-7.8 5.7-7.5 4.5.4 7 3.6 5 7.7l-10.7-.2z"/>
+      <path d="M226.8 226.4c-.7-3.4 2.2-7.5 6.6-6.5 4.4.9 6.5 4.5 4 8.3l-10.6-1.8z"/>
+      <path d="M236.7 228c-.4-3.4 2.6-7.4 7-6.2 4.4 1.1 6.3 4.8 3.5 8.5l-10.5-2.3zM161 285.6c-8.4 0-10.5 2-11.7 10.6-1.5 10.8 13.2 12 11.7-10.6z"/>
+      <path d="M164.7 274.3c-12.9-5-20 15.5-32.7 11.9 4.6 7.3 15.7 0 19.8.7 7 1.3 22.2-1.3 13-12.6zm-8.4 28c-6.4-3-13.3 6.8-12 11.1 1.6 5.5 16.2 1 12-11.1zm-29.9 42.1c3.6 1 7.8 3 7 9.8-.7 6.8-13.5 20.6-25 21.4-11.6.7-15.7 14.7-25.7 10.8 9.3-1.8 9.3-12.3 16.6-15.6-5.3-1.9-8 10-14.8 10-6.8 0-10 10.9-18.3 10.1-8.3-.7-9.2 13.1-25.8 13.3-12.6.1-28.3 15-34 8.6 12.3-1.8 17.3-8.6 24.6-16.1 11.8-12 25.1-6.7 29.7-17.3a30.9 30.9 0 01-17.9 5.2c-7.7-.1-16.2 12.3-24.8 6.8 5-.6 8.3-2.8 13.5-8.3 5.4-5.6 13.3-2 19.6-7.8 9.8-9 18.2-1.5 27.6-12.8-2.6-1.2-8.3-.3-13.5 2.4-5.3 2.8-12-1.9-18.1 1.4.7-7.4 14.8-3.2 23.6-8.3 10-5.8 18.1-4 26-3.4-11 0-15.2-10.4-30.3-7.4-6.5 1.3-11.8-9-18.3-3.8.2-3.9 7-7 14-3.2 7 3.7 10-3.3 24 5.5 5.7 3.6 15.6-2.3 21.9 1.6-.8-2.4-4.4-3.9-8.6-3.5 2.6-5.4 19.6-4.7 27 .7z"/>
+      <path d="M137.6 336.3c-5.5-4.3-13.2.9-18.4-1.2 0 3.6 1.7 8.8 7.5 10.8a139 139 0 0011-9.6z"/>
+      <path d="M146.3 324.1c-8.7-4.4-10.2 6.5-17 4.3.3 3.1 2.8 7 8.3 7.9l8.7-12.2z"/>
+      <path d="M151.4 314.2c-12.8-5-14.4 7.3-22 4.9 1.8 4.2 12.6 6.5 18.1 5l4-10zm17.6-53.9c-3.4-4.8-10.5-.9-11.7 4.8-1.1 5.6 1.7 13.5 6.4 11.8l5.3-16.6z"/>
+      <path d="M177.7 245.2c-6-1.3-12.7-.7-12 5-2.2 1-2.9 8.5 3.3 10.1l8.7-15z"/>
+      <path d="M181.6 241.3c-5.8-6.7-12.3-6.6-15.9-3.7-6.6 5.3-13 2.2-13.3 7.5 4-3 7.6.6 10.8-.5 3.3-1.1 5.7 5.2 14.7 2.5l3.7-5.8zm-14 101.4c.9 1.6 6.3 2.4 9-.4 3.4-3.7-.4-13.8-6-14.6-5.5-.7-6 11.5-3 15z"/>
+      <path d="M161.3 343c8 2.8 11.3-3.7 7-7.9a79.6 79.6 0 01-7 7.8z"/>
+      <path d="M131.7 353.7c-1.5 4.6-9.3 5.3-18 19.4-8.9 14-17.3 8.1-19.4 17.8 10.5-8.5 18.8-2.9 25.1-11.3 9.6-12.8 17.4-11 21.1-19.6 5.3-12.3 28.4-12 29.6-31.4-7.7-1.5-32.4 19.4-38.4 25.1zM330 164c10 3.3 10.3 16.3 21.8 20.6 11.6 4.2 12.7 14.5 22.1 12-8.8-2.4-8.2-12.5-17.3-15-10.8-3-14.8-19.4-23.4-21.9m42.8 72.5c1.8 4 1.5 11.1-4.7 13 3.4 2.2 8.4.1 11.1-4.5-4.1 9.2-1.3 17.5 5.2 19-3.1-6.3 3.9-9.3 1.6-13.5 4.2 1.8 7.8 7.4 7.7 11 5.4-6-4-14.1-2.3-19.8l-18.6-5.2zm-65 64.5c-6.2-5.4-8.8 1.4-11.8-1-2.8-2.1-6.6-2.4-8-.2 5.2.1 2.7 4.2 12.9 5.2-10.2.7-8.4 12.1-15.2 11.6 7.3 6.9 11-6.2 17-4-1.8.5 2.7 4.6-.4 10.1 5-.1 7.1-7.1 7.8-10.8l-2.3-10.9zm-135.5 58.6c-2.3-1.8-8.8-2.7-11.3-1.2-2.5 1.5-1.6 1.9 1.4 2.1 3 .3 6.9 5.1.4 5.4-3 .1-2 7.4-8.3 8 2.5 3 9.9 1 12.5-2.5-.5 2.9 3.3 5.4 1.8 8.8 4.6.5 2-9.4 9.3-8.9-3 .4-1.8 7.2 3.5 5.4-3.1 1.5-1.5 5.2 2 4.3-2.2.7-3 3.6.1 5.3 3-4.2-.3-19-11.4-26.7zM449 216.7a17.4 17.4 0 100-34.8 17.4 17.4 0 000 34.8z"/>
+      <path d="M358 237.7c5.3-5 13.3-7.5 18.8-3.7 5.5 3.7 23.9 8.2 33 2 9-6.3 13.2-9.6 17.2-8.8 3 4.5 6.7 6.6 11.2 7 1.4 1.5 6.3 2.8 9 2.4 4 1 9-.3 12.9-4.5 6 .8 11.6-3.7 13.8-10.5 6.4-.7 6.8-7.9 2.7-12.6-3.7-.8-.8-13.5-14.5-11 5.7 3.5 1.3 10.6 6.1 13.8-3.2 0-7.4 1.4-8.4 6.3 1.2-3.4-.2-5.6-1.1-6.4.1-2.9-6.3-10-12.3-7.4 4.3 1 1.9 8 5 10.6a8 8 0 00-6 3.2c-1.7-2.9-7.4-5.9-11-6.1 0-1-.1-3-.6-4a18 18 0 01-2.2-11.2c-3 3.2-5.6 7.8-7 11-4.8-3.2-16.6 1.5-22.2 2.8-5.5 1.3-24-1.8-28.3-6.3a47.9 47.9 0 00-20.4-9.5c-10.7-3.1-10.8-14.8-22.6-22.9-.2 14.6 21.9 60.8 26.9 65.8zm-123 111a16.8 16.8 0 100-33.6 16.8 16.8 0 000 33.6z"/>
+      <path d="M194.7 335.8c3.4 4.4 9.2 4.1 11.6 3.7 2 5.3 8.4 5.2 11.2 8 2.7 3 12.2 2.7 15 1-2.6-.2-5.9-1.7-9-4.3-3.8-3.2-2-9.5-5-11.8 2.2-2.5 2.6-6.7 2.1-8.3 2.4-1.4 4.2-3.6 4.4-4.8a15 15 0 009.3-4c2.1 2 7.5-.6 10.4 2.8.7-8.3-7.3-12.7-12.5-10-2.2-1-7.8-.3-8.8 1.2-1.8-.8-6.7 1.7-9 3.4 2.6-1.4 3-5.5 2-7 2-1 4.5-3.8 4.7-6 3 .5 7.5-1.5 9.6-1-3.3-4.2-8.7-5.7-14.2-5.4-5.8.4-8.2 4.4-9 8.7-3.3 2-4.5 8.8-3.2 11.2-2 0-3.8 1.8-4.5 2.9a26 26 0 00-9.1-2m1.2-6.8c-1.2-3.3.3-6.2 1-8.8 2-6.6.8-8.3-5-7.4a46 46 0 004 16.2z"/>
+      <path d="M187.5 291.4c1.5 1.6 6.9 2.3 7.4-2.5.7-5.5-1.5-7.6-6.3-5.5-.4 1.3-.8 6.4-1 8z"/>
+      <path d="M188.7 283.2c2 .8 6.3 2.5 8.7-2.2 2-3.9-.6-6.9-4.8-6.6-1 1.1-3 5.1-4 8.8z"/>
+      <path d="M192.4 274c.5 1.5 5.6 6.5 9.4 2.9 3.7-3.6 3.7-9-1.9-11-1.5.2-6 5.5-7.5 8.1z"/>
+      <path d="M199.9 265.8c1.1 3.2 4.6 8.6 11.2 6 6.5-2.4 3.7-10.6.7-12.2-1.7 0-8.9 3.3-12 6.2z"/>
+      <path d="M211.8 259.6c-.5 2.7 0 10.3 9 10.1 8.8 0 6.3-10.5 4-12-3.6 0-9.7.1-13 1.9z"/>
+      <path d="M225.3 258c-1 2.2-3.3 16.2 14.1 12.4 2.3-.5 8.2-13.5-14.2-12.3z"/>
+      <path d="M234.8 259.3c-1.8 1.8 2.8 16 14.6 13.6 11.8-2.4 1.9-15.9-14.6-13.6z"/>
+      <path d="M244.8 261.4c-1.8 4 1 15.5 15.5 15.5 13.3 0-.6-15.2-15.4-15.5z"/>
+      <path d="M256.3 264.8c-1 2.2-2.1 14.4 15 15.5 12.5.7 9.5-16.9-15-15.5z"/>
+      <path d="M274.7 270c-2.1 3.8-4.4 13.2 14.5 14 12 .4 4.6-13.8-14.5-14z"/>
+      <path d="M290.4 272.9c-2.7 3.7-.7 11.1 6.3 12.5 8.8 1.8 10-6.5 4-10.5s-10.3-2-10.3-2z"/>
+      <path d="M299 274.6c-2 3.5-.8 12 12.5 12 2.8 0 13.3-10.7-12.5-12zM195.9 438.4a19.5 19.5 0 100-39.1 19.5 19.5 0 000 39z"/>
+      <path d="M339.1 154.3c-1.5 1.5-4.6 6-5.2 7.8-6.6 19.6 10.9 34.3 21 55.3a61 61 0 01-5.5 59.2c-4.3 5.7-3 7.3-8.5 13.1-2.1 2.2-4.5 5-3.8 13 3.6-1.2 8.6 2 9.6 4.8 2.5-1.2 6-.7 7.3.8 4.2-2 7.8-1 11.5 3 3.3-.5 6.8 0 10 3.5 1.8-3.5 5.3-4.8 7.8-4-.2-4.5 4.3-7.8 8.3-6a7.4 7.4 0 019.6-8.8c4.5-3.5 13.5-3.8 18 1.5-8-2.3-7.7 6.3-14.5 5.5 1.8 5-2.8 8-7.3 9.5 2.9-1.3 6-3 7-1.2 2.5-2.2 7.6-1.4 8.8-.3 3.4-1 6.6-.2 8 3.8 4.6 2.8 7.6 9.8 4.3 15-1-5.5-4.7-5.2-6.2-7.5-3.6 1.3-7 1.3-8-1-2 2-8.9 3.8-11.9.8-1.1 4.5-5 8.3-9.5 8.3 1.2 3.5-2.3 9.5-5 12.5 4.2 2.3 3 7.3 2 10.3 6.5 1 1 6.8 12.3 10.6-5.6 1.7-16.4 0-17.9-6.8-5.5-.3-9.3-5.8-9-11.6-4.3-4-5-9.7 1-13.8-5 1.5-7.8-6.5-15-3.2-3.7 1.6-13.2-1.2-13.1-4.5-1.5 2.5-10.7 1.5-12-2.8-3 1.6-10-1.1-9.9-5.3-3.9 1.8-9.1-1.4-8.9-5.4-3.6-.5-4-3.7-3.8-6.5-3.2-1.5-2.3-4.7-1-8.4-2.3-2.5-1.3-6 .4-9.3-2.5-2.5-2-5.5-1.2-9-12.1-1-27.2-4-61.8-14.6-52.2-16-66.3 21.6-54.8 45.2 13.4 27.2-1.5 33.1 3 53.5 4.8 1 7.3 5 7 9.3 2.9 0 5 2.7 4 7.7a8.7 8.7 0 017.4 2.3c1.7-3.3 7.5-4 10.5-.2 6.6-.5 9.8 4.7 9.6 11.3a17.6 17.6 0 01-1.5 18.8c.3-2.6 0-6.4-.2-8.7-.2-4.1-6-5-5.4-8.4-3 .3-5.9-1.4-6.9-3.6a6.6 6.6 0 01-6.4 1.2c3.4 1.5 6 7.6 5 11.6 1.8 3 1.4 8.5-.7 11-1 4.8-4.8 6.6-9.7 4.4a8.4 8.4 0 003.7-7.5 9.8 9.8 0 01-2.8-6.2c-4.9.8-11.7-3.4-13-5a19.5 19.5 0 00-19.4 19.6c-.5-4-5.6-8-5-11.4-3-9.3 1.3-18 13.6-19.7-1.5-3.5 3.7-7.2 1.7-11.2a94.8 94.8 0 00-14.3-19.6c4.3-7.3 3-17 .5-23.1-3.6-8.7-7-6.5-19.8 7.5-21 23-48.8 16.6-73.4 31.7-6.5 4-13 5.5-6-1.5s25.6-14 37.7-20.1c22.6-11.3 41.7-30.2 49.2-66.8 17.7-86.2 82.9-57.8 124-41.7 38.7 15 31.7-19.1 12.1-39.7-23.5-24.7-18.8-44.2-7.8-59.8 19.9-2.7 57.9 4.2 50.2 10.8z"/>
+      <path d="M409 366a21.5 21.5 0 100-43 21.5 21.5 0 000 43z"/>
+    </g>
+    <g fill="none" stroke-width=".4">
+      <path d="M327.1 155.3c-4.8 21.1-.8 30.7 6.3 40 14.5 19.2 26 63 9.5 91.6"/>
+      <g stroke-linecap="round">
+        <path d="M352.2 262.2c2-.8 5.8-3.1 6.7-7.3m-5.2-1.9c.6-3.6 6.3-5.2 6.4-9m-6.3-5.2c-.3-3.7 5.7-7.1 4.8-10.9m-8-2.6c-.5-2.1 5-6.2 3.5-9.6m-7.7-3.6c-1.1-2.4 2.7-5.1 1-7.7m-7-2.9c-.4-1.6 2-5.2.7-7.3m-6.7-5c.5-.7 2.5-2.2 1.7-4.1m-5.9-5c.9-.5 3.3-1.3 3-3.1"/>
+        <path stroke-linejoin="round" d="M204.5 416.8c-5-1.8-11.3.7-12.5 5m3.7 3.9c.7-4.3 7.2-6.2 9.2-4.2-4.1-2.2-6.1 5.8-2.5 6m33.8-101.1c-3 1.5-4 7 0 11.1m4.5-9.9c-2.1 1.8-2 7 1.1 8.3-2.6-1.9 0-5.1 2-5.3 1.8 0 3 2.2.8 4.4m172.5 5c-7-1.8-12.7 6.3-6.3 13.6 0-7 5-11.7 11-10.4m-2.7 4.8a2.6 2.6 0 00-2.7 2.7c0 1.4 1.2 2.7 3.1 2.7 1.3 0 2.3-1.4 2.3-2.6m22-157c1.2 4.4 7 6.1 11.7 5.1m0-2.8c-3.6.2-6.6-3.2-6.4-6.1 0 2.1 5 3.1 6.4 1.7"/>
+        <path d="M206.3 339.5c-1-2.5 3-5 3.1-7.4.2-2.4 4.6-4.2 9 .3m-2-26.8c-1 .4-1.7 1-2.4 1.2m11 12.5c-1 0-3.3 0-4.5-.9m.1 5.7c-.9.4-2.8 1.2-4 1.4m-39 74.4c-.2 2.3 2 5.6 3.3 6.6m6.4-12c-1.2 2-2 5.2-1.2 7.4m20 .2c-2.3-1.5-.8-5.4-1-8-.3-2.5 2.6-6.5 8.2-3m-28.4-3.3c2.3-.4 4.7-.3 6.2.3m22.5-7.5a8.1 8.1 0 00-1.4 3.9m12-4.2c-1.8 0-3.3 1.3-4.1 2.6M199.8 316c2 .7 7.2 3.9 7.4 7.2m13.9-23.6c-6.2 0-8.5-6.4-3.9-6.4m15 14.8c-2.4 1-1.3 5.2 2 7.2m-16.7 32.3c-1.2-1.5.3-6 4.2-4.6m5 50.4c.2-3.8 5-6 7-1.8m-24.9 12.7c-.3-4.2 1.8-5.6 3.7-5.8 1.9-.3 4.6 1.3 5.8 4m-47 5c.3-2.5 2.5-5.2 4.7-4.8M401.2 296c-1.7 1.2-2.7 6.5 3.5 7m-13 1.8c0 .6.7 1.5 1.2 1.8m28.3 8.2c-1.6-1.3-5.8 3.8-2 7.5M381.3 357c-1-3.6 2.4-4.5 5.5-3.8m-13.5-21.6c1.9-1.2 3.8-2.6 6.1-3.2m-7.1 17c0-3 1.5-5.5 2.9-6.2m8.1-28.4a17 17 0 002.4 9m27.5-8.8c-1.8.6-3.4 1.3-4.1 2.8m2.1 7.5c.9-.7 1.9-1.6 2.3-2.2m45.2-107.4c0 3.5-4.4 5.4-7.3 3.2m16.8-3c2 1.4 8.7 0 7.1-3.9M460 232a9.7 9.7 0 01-4.7-3m18.6-7.4a7.3 7.3 0 01-5-.5m-30.7 13.1c1.3 0 4.3-.5 6.3-1.6m-10-20.6a5.4 5.4 0 00-3.8.7m29 5.4a10 10 0 01-3 5.1"/>
+        <path stroke-linejoin="round" d="M430.2 223.7c3.1-1.4 7 9.3 14.5 5.5m.7-11c-1 1.3-1.7 3.4-1.8 5.3"/>
+      </g>
+      <path d="M295.2 201.8c1-.1 2.8-.5 3.1-1.8M166 318.8c3.8 2.1 6.4 5.8 4.8 11.2m167.8-139.6c1.2.7 5.4.7 7.8-.2m3 2.7c0 1.7.4 8.4-3 9.8m1.3-1c3.1 1 9.4.7 11.4-5m-4.4 4.8a6.9 6.9 0 01-2.8 10m4-5.8c3.7 1.2 12.1 1.3 11.2-5.8m-2.8 5.8c2.5 3.5 13.5 7.6 11.8.3m-22 9.8c4.3 1 10.3-1.9 7.8-9.4m12 3.8c.7 2.9 14.7 5.9 12.8-.6m-2.6 3.7c2.6 6 16.6 5.6 12.2-2.5M394 217c2.8 3.4 15 1.4 10.2-6.8m-.1 6.7c7.6 5.7 16.5-2.5 6.9-8.6m4.4 6.7c6.7 5.4 15-4.4 9.1-7.2m-62.8 5c2.2.6 6.7.3 7.7-3.6m-1.7 2.6c-.2 5.8 9.4 8 11.8 1.4m-3.2 3.5c1.8 3.8 10.2 5.3 11.6 0m-1.4 2.4c1.4 3.8 8.7 3.4 10.7-.5m-2.7 2.5c2.3 5 11.6 5 13.7-2.2m-1.6 3.1c3.6 2.3 11.4 1.4 10.8-5.6m-1.5 5c5.4 4.4 13 .1 9.3-7.3m-.4 13c2.9-.4 4.4-6.2 1.4-7.7m-68.3 8.8c6-3.3 7.1-8.8 3-14.2m2.1 8.7c3.8 2.2 11-.2 12.2-5.7m-7 6.3c2 2.7 2.5 6.1-.3 9.3m2-5.8c6.7-4.2 15 3.5 8.8 8.2m-1.1-8.6c1.5-.4 4.1-3.1 4.4-6.3m-1.4 9.2c2.7-2.9 21.6 3 9.7 9m-1-17c3.7 1.5 5.6 6.6 0 8.4m4.8 4.3c4-4.2 16.6-1.5 12.1 3.7m-3-5.4c2.2-7.6 15.7-2.9 11.3.3m-14-8c.3 1.6.4 5.3-2 7.3m13.2-8.7a6 6 0 01-.7 5m9.3-5c.7 1.5 2 4-.8 6.2m-106.7-63.9c.1 7.2 2.6 12 12.3 7.4m-9.3 1.2c-4.8 6.4.6 13.3 10 6.4m-24.7-3.3c6.5 7 18.2 1.9 10.7-8.8m7.9 14.8c-1.3 7 4.4 8.3 9 5.2m-33.4-10c1.2 6.9 8.3 12.4 15.2 8M304 188c0 9.9 13.7 11 16.8.7m-5 6.3c4.5 9 14 5.4 17.2-.1m-27-14.5c1.8 4.5 5.3 9.4 13.5 5.7m-38.6-7.8c1.1 3.7 7.7 8 15.2 3m-10.5 1.7c-4 5.9 4 11.4 13.6 2.6m-8.9 4.7c1.7 8.2 5 14.9 16.7 4.2m-5.9 4.3c4.3 5.3 10.8 8.5 17-.4"/>
+      <path d="M322.7 200.3c-.4 6.3.9 9.4 5.8 9.2 3.8-.2 7.5-3.3 9.6-6.6m-10.5 6.6c-.1 7.1 5.5 12.8 16 5.5m-11.6 2.9c-2 5.4 4 14.2 15.8 9.6m-40.8-24c-.8 7 5.7 11.6 16 2.7m-11 5c.4 5.7 6.8 12.5 16.2 2.7m-11.7 4.5c-.7 9.6 8.2 12.4 15.7 5m-29-12.2c2 .1 3.5-1.6 4.5-2.9m-.3 10c1.7.3 4.7-1.3 5.7-3.3m-1.3 14.7c2 2.1 8.8.6 9.6-2.3m-2 2.1c3.7 8.8 13.7 8.5 17.9-1.5m-2 3.6c2 5.1 6.7 8.4 14.5 6.6m-10.7-1.4c-4.4 7.2 1.4 15.6 11.2 7.3m-8.8 3.4c-.5 4.5 3.7 9.7 9.3 10.3M323 234.3c-1.5 10.2 5.8 15 15 9.7m-25.6-4.8c2.4 1.9 6.6 2.1 10.6.6m5 6c-2.3 8.5 6.5 14.6 14 5.1m-26.2-10.3c0 4.4 4.4 9.2 11.8 7.8m20.7 8.8c-5 3.4-6 9.4 1 13.3m-13.3-15c.2 5 2.6 8 8.3 8.4m-15.7-11.1c-7.6 6.9-.2 15 8.8 8.1m-3.6 2.2c-2.5 7.9 7 12.7 12 4.6m-27.5-21.5c-2.8 7.8.7 13 7.1 12.5m-17-14c.3 4.7 4.3 6.3 8.9 5.3m-6-.4c-3.5 6.6 1.7 10 8.5 7.6m20.6 14.5c-1.1 4.2-.5 7.2 5.6 8.6m-5.2-2.7c-7.5 3.4-8 10.6-2.3 15.2m-3.7-23.1a7.4 7.4 0 001.1 12m-34-35c-4.3 4.3-.3 15.9 9.2 9.5m15.2 5.2c-5.8 4.8-3.1 13.5 6.4 11m-16-14.6c-3 8.5 0 11.5 6.7 11.7"/>
+      <path d="M295.4 246.4a8 8 0 00-1.4 11.9c2.2 2.5 6.5 1.4 7.8-1.9M284.6 243c-5.7 7.4 0 16.2 8.2 13.6m22.7 8.4c-5.9 2-10.4 7.5-6.7 12.1 2 2.8 11.4 3.2 14-7.5m-18-11.5c-3.3 4.9-2.2 9.5 4 11.9m-4.3-2.8c-3.6 2-6 4.4-5.2 8.8m-3-16.4c-1.3 5.9.3 9.5 4 11.3m-4.1-4.3c-5.6-.4-8.5 2-6.6 7.5m.5-6.1c-5.6-2-6.4-6.8-4-11.8m-.8 7.4c-6 .2-8.7 3.2-8.7 7.4"/>
+      <path d="M277.1 240.1c-4.4 1.9-5.8 7.8-4.1 11 1.6 3.3 6.8 3.6 9.9 1.4m-18-17c-4.1 4.5.5 13.3 7.7 11.1m-18-14.7c-3.8 5.3.3 14.1 10 11.6m.5 24.5c-1-6.3 5.5-10.4 13.5-2.3m-3.9-12.7a9.9 9.9 0 00-3.1 8.3M244.2 229c-4.1 7 .9 13.5 9.8 11m13.5 6.5c-6 5.9-4 11.8.5 15.2m-4.3-8.3c-9 .1-9.4 10.4-2.1 13.7m-4.7-24c-3.6 2.5-4.8 9.4 1.5 12.2m-1.7 3.2c-3.8-1.7-8.3.4-8 4.8m2.3-4.6c-3.4-8-13.3-6.7-12.4 1.6m15.2-11.6c-2.2.4-6.4 1.7-8 5m.6-14c-4 4.5-1 10 2.3 11M234.4 227c-.7 5.4 1.4 8 8.2 7.6m-5.8-.7c-2.6 6.6.9 9.4 7.7 9m-6.2-1c-4 4.8-1.2 10 2.7 12.1m-4.6-6c-7.1-.9-8.2 7.4-5.9 11.3"/>
+      <path d="M230.7 226.3c-4.4 1.9-7 7.4-4.6 10.8 2.4 3.4 7.2 2.3 9.8.5m-8.3 1c-3.6 5.5-.3 9.7 3.6 11.3"/>
+      <path d="M213.6 225.7c-3 3-1.1 9.1 5.9 9.3 5.6 0 8.5-5.3 6.8-9m-7.8 9c-2.3 5-.9 10.4 7.6 9.5m3.7 7.9c-5.3-2.4-12.3 0-9.3 6.3m-.8-15.2c-2.1 3-1.3 7.3 1 10m-1.3-2c-3.6.6-7 2.5-4.8 8m-.5-4.5c-4.5-1.3-10.3 2-6.8 6.6m-.8-4.4c-3.8-.6-8.5 3.5-4.7 7.6m-1.5-3.4c-3.5 1-7.7 5-4 8m21.7-27.7c-5 2.3-5.6 8-3.2 12m-2.1-22.4c-7.5 2.9-7.4 13 .9 16m-3.5-2.2c-4.6 2.7-5.4 7.7-2.4 11m-5.5-28.6c-3 1-2.8 10.3 5.2 10m-13.5-6.8c-6 4 1.2 14.2 11 6.9m-5.4 2.5c-.9 4.1.3 8.7 7 9.2m-6.6-3.7a6.5 6.5 0 003 12.3m-18.2-21.2c-6.1 5.7 5 10.6 9.2 2.4m-17.7 7c-3 3.7 7.5 13.2 12.1-2.7m1.2-.3c.2 3.8 2.5 6 7.1 6.3m0 3.6c-7.5 1.2-9.9 10.5-1.6 12.5m-12.2-13.7c-.2 3.5 3.4 6.4 7.6 5.8m3.7 7.6c-6.8 1.5-7.6 10.3-1.6 9.8m-3.1 8.2c-5.7-1.7-5.8-8.4-.8-11"/>
+      <path d="M184.7 277.3c-4.8 2.8-2.9 9.8-.4 10.8s4.5-.3 4.8-2.4m-.4 9.6c.5 3.3-11.6 2-5.4-8.1m0 8.7c-4.1 6.4 2.5 11.6 6.7 6.2m-6.2 1.5c-1.6 5.2 4.6 8.9 8.6 4.9m-22.1-53c-2.3 4.6 9 6.3 9.8-3.2m-13 10c-2.2 9 14.8 7.2 10.4-4.5m.4 6a8 8 0 0011.3-6.1m-5.1 6.4a9.8 9.8 0 004.6 6.1m-12.8-3.7c-.7 4.9 4.2 8.9 9.8 8.5m-9-3.8c-2.7 3.8-3.5 11 5.1 11.6m-18.2-10.3c-1.4 3.9 6.8 7.9 11.6 1.5m-14.1 8.4c-.7 3 6.7 7 10.8-5.6m-3.3 6.4c1.8 3.1 7.7 5.6 11.3-.5m-5.9 3.7c-1.5 4.4 2.7 8.6 7.7 7.3m-17-8.3c-1 6.3 6.2 10 10.7 6.7m-15.6-4c-2.1 8.1 8.2 11.1 12 5.1m-2.5 2.4c.3 4.5 7.4 8.4 12.9 4.6m-25.5-.8c-.5 2 8 4 9.2-3m-4.3 4.7c2 5.2 8.8 6.4 12.7.1m-2.3 2.5c.9 4.8 7 7.5 12.5 4.2m2.2 1.9c-1.4 6.4 5.3 11.5 9.4 8m-20-9.1c-2 7 6.7 11 11.6 7.1m-22.2-10.7c-.5 6.6 4.6 10.5 10.5 7.6m-21.7-7c-1.7 4.3 7.6 7.8 12 4.2m-17.8 7.5c2.4 2.8 10.7 0 11.5-6.1m-2.3 4.5c3 3.5 10.2 5.4 13-2.1m-2.4 3.9c-.2 5.4 9.5 9.3 12.6-.7m11.4 2c-.9 2.6 1.2 6.8 5.5 7.3m-13.5-9c-.6 3 3.8 7.3 8.4 5.6m1 1.2c-1.3 3.3-.3 8 4.1 8m-3.7-1.9c-3.3 2.8-2 7.7 2.8 7.9m-4.5-3.2c-4.7 3.1-3 10 3.1 9.6m-17.2-23c0 6.8 8.4 7.8 10 1.6m-3.2 4c-1.3 4 2 7.9 7.1 6.8m-6.1 41.7c1.1 1.6 5.8-1.2 4.5-4-1.2-2.7-6.2-1.2-5.6 1.7m4.5-2.8c.6-5.5-6-6.4-7.6-1.6m2.4-2.8c1.7-2.7-3.9-6.5-6.1-2.5m2-1.6c1.5-4-4.8-5.8-5.3-2.1m-1.4-5.3c.8-2 7.8-.8 4.8 3.4m5.4 5c2.8-2.5-1.9-7.7-4.8-5.8m23.4 13.5c-2.2.2-4.5 1.6-2.9 6.3 1.2 3.2 6 3.4 6.7 1.4"/>
+      <path d="M199 372.9c-2-1.4-6.7 1-4.6 5.4 1.6 3.4 5.7 2 6.3.3m-13.6.7c1 2 6.4 1.1 7.3-1m-3.7-5.2c1.2-.7 3.2.2 3.7 1.2m-4-32.1c-3.7 2.4-1.4 9.6 4.2 7.8m-5.4-2c-2.9 2.3-.2 9.4 5.2 6.7m-4.3 0c-2 2 0 7.6 5.2 6.6m-6-3.8c-1-.5-4-.1-5.3 1.7m2-27.1c-2.7 2.6-1.4 8 3.8 8.4m-4.7-3c-4 2-4 9.9 4 10.2m-4.3-1.3c-2.2 1.8-1.2 8.6 4.5 7.7m-2.7-.2c-.8.8-1 2.8-.3 3.7m-2.2-6.3c-2 0-4.7 1.5-5.4 3.6m-3.6-7.3c.8-2 7-1.9 7.4 4m.6-7a4 4 0 00-3 2.7m.3-21.1c-2.7 2.4-4 10.1 4.2 11.6m-9.6 4.3c0-2 5.6-3.8 7.5-.7m-11.1-10.5c.8 1.5 4.7 3.7 7 2m-27.2-14.3a6.2 6.2 0 007 6.4c4.2-.5 5-4.2 3.8-6.6m-3.2 6.7c-2.7 3.4.7 8.2 3.8 6.8m-.6-9.2c1.6-.6 7-1.4 8.6 1.1m-26 0c-1.3 1.8 6.5 3.7 9 0m-2.5 2c-.3 2.4 1 6.7 7.4 5"/>
+      <path d="M159.5 334.6c1-2-3.8-5.6-7.4-1.7-3.7 3.9.5 8.3 2.7 6.8m-12-13.5c-2 3.3 5.4 9.3 9.5 3.7"/>
+      <path d="M138 331.9c-2.7 2.7.6 7.6 4.5 6.1 4-1.5 3.6-5.6 2.7-6.7"/>
+      <path d="M132.8 336.9c-2 2 0 6.5 3 6.5s4.7-2.3 4.1-5.2m5-1.7c-.5 3 3.8 5 6.6 2.2m.1-5.2c.4-.7 0-1.7-.6-2.2m-22.7 9.5c-2.5 2 2.8 7.4 6.1 2.4m12.8-3.5c-1.6 1.5.9 5.5 3.4 4.3m-12-1.5c.3 2.7 5.6 4.7 9 .6m-6.2 2c-.8 1.8.9 4.5 2.9 4.1m47.1 11.5c-2 3.8 4.3 8.3 8.8 3.7m-4.3 2c-1 2 .2 5 2 6m-7.9-1.7c.5-1.8 3.2-3.6 5.6-2.7m-8.8-2.2c.3-1.7 2.6-3.4 4.3-3m143.5-75.4c-8.9.2-5.1 14.5 2.5 11.6m-5.4-1c-1.7 2.9 1.7 7.5 5.4 4.8m-1 .5c-2.6 4.4 6.8 11.1 10.6 4.2m-3 2.7c0 4.1 12.2 6.7 10.4-1.5m-1.1 4.5c2.8 4.9 13.6 5.4 12.5-2m-2.4 5.1c2.3 3.3 12.8 5.3 12.5-1.5M320.3 275c1.5 3.9 6.7 5.3 12.3 3m-15.6-.2c3.6 2.2-1.6 12.5-7 8.4m7-2c4 1.8 8.7.5 10-5m-2.3 4.2c.4 2.9 4.5 5.2 10 4m-19.7-1c5 4.3-2.2 13-5.5 9m7.4-5.7c2.4 1.7 8.6.7 9.2-4m-2.8 4c.5 3 3 4.1 6.3 4.3m-14-.2c2.5 3.5 8.7 4.6 11.5-.1m-2.8 2.6c-.2 3.4 3.5 6.2 7.4 5.4m-21 2.2c3.2 1.6 6.7-4.5 4-8.8m-.3 15.3c4 .3 4.4-5.7.8-9m8.1 14.4c3.3-.8 2.3-8-5.6-8.5m15.5 13.8c3.2-.9.7-8.8-8-8.3m20 11c2.1-3.2-5-8.8-10.7-5.9m16.6 10.5c3.9 1 6.5-9.2-5.8-7.6m13 7.6c3.3-1 5.7-7-4.2-5m11.7 5.5c3 1.5 4.4-7.3-4.8-5m-45.8-22.4c3.7 2.1 9.6-.4 9.1-5.2m-1.5 4.2c1.3 2.2.8 6.6-1.6 7.8m2-2.5c2.5 1 5.9 0 7.9-4m-3.5 4c.7 1.7 1 5.2-.6 7m1.2-4c2.8 1.5 6-.5 7.4-3.4m-1.7 2.5c2 1.2 3.7 7.1.4 9.5m1.8-2.7c2.4.1 6 .1 8.2-3m-1.6 1.7c2.1.6 4.6 4.2 3.7 7.3m.2-1.1c2.4-.3 6.5-2 7.6-4.8m-1.1 1.9a6.5 6.5 0 013.1 6.3m0-2c2.4-.2 4.5-1.4 5.2-4m-.7 1.7c1.8.6 4 2.6 4 5m-.2-1.5c1.8-.3 3-1.4 4.2-3.1m4.7-.3c2.3 2.3-.7 9.8-5.4 8.4m-42.8-160.6c-4.6 2.8-17.8 2-11.3-9m12.6 1.6c-9.2 3.7-20.5-3.4-8.7-11m-3.1-2.5c-7.7 0-12.8 12.3-2.5 16.5m-27.3-11.4c-2 4 5.2 8.2 10 4.3 3.9-3 3.6-11.2 1.3-14.3M281 160c-2.5 8.3 16 8.8 13-4.4m-14 16.7c.6 6.3 17.7 4.3 12.2-8.4m2-3.5c1.4 1.9 5.1 5.1 11.5 4.5m-8.5-13.4c.6 2.2 4.4 4 9.3 2.3M125.9 342.6c-4.4 3.1 2.3 8 4.7 2.6m-8.1-.2c-4.3 3 2.3 8 4.8 2.6m-8.4-.3c-4.3 3.1 2.3 8 4.8 2.6m-8.6-.4c-4.1 2.2.7 7.6 5 2.8m-9-.8c-4.2 2.2.7 7.6 4.9 2.9m16-9.3c0 3.2 6.1 4.5 8.3-.3M136 348c-1.9 2.4 1.6 5.4 3.5 4.3m-11.6-4.7c-.2 2.7 5.1 4.2 7.7 1.3m-4.8 1.5c-1.7 2.2 1.6 5.2 3.8 4.3m-10.2-4.7c.2 2.2 3.2 4.6 6.5 3.2m-4.6-.3c-1.2 1.1-.6 3.8 1.2 4.6m-7.7-4.8c-.5 2 2.8 5.4 6.2 3.2m-5.5-1c-2 1.7-1.8 4 .8 4.4m-5.6-4.6c-.3 1.3 1.4 3.5 3.6 3.2m-14.4-3.3c-2 1 3.2 6.5 6.4 1.5m-11.3.8c-2.5 1.2 3.7 7.2 6.5 1m9.8-1.3c-2 .5-3.2 3.3-1.6 4.4m-4.8-3.4c-.2 1.2 2.1 3 4 2.3m-5.6-1.8c-2 1.2-1 4.5 1.3 4m-8-1.8c-1.8 1.3-.6 4 1.8 3.3m1.4-3.5c0 .7 1.6 1.8 2.9 1.4M95.4 359c-2.2 1-2.1 6.5 5.3 3.5m-10.3-1.3c-3 1.5-2 5.7 4.7 1.7m.5.3c-.8.6-1.7 3.4 1.4 2.3m-7-1c-1.3 1.1-.5 3.5 2.3 2.6m-8.8-2.2c-2.3 1.3 2.7 3 6-.4m-4.5 2c-1 1-1 4 1.6 3m-8-1.8c-1.5 1.2 1 2.7 5.8.6m-4 1c-1.7 1.5-1.5 3.3 1 2.8m-6.1-2c-2 1.8.8 3 4.2 1.6m-4.2.4c-3.3 1.5-1.9 4.3.2 3.2m111 6.4c-.8 1.7 1.7 3 4.1 2.7 2.3-.4 4.5-2.3 2.8-5m0 3.3c2.3 1.8 6.4-.2 6.4-2.9"/>
+    </g>
+    <g fill="#fff" stroke-width=".4">
+      <path d="M332 116.7c-10-5-30.9-14.4-36.8-6.8 5.4-2.3 21.2.1 34.3 12.2l2.5-5.4z"/>
+      <path d="M338 116.1c-11.5-13.5-18.4-10.5-26.7-15.1-7.9-4.4-20.4-5.3-22.8 1.7 11.5-5.6 22 3 28.4 4 9 1.4 14 8.3 16.6 11.5l4.6-2zm43.8-1.7c-6-13.8-18.9-10.2-24.6-16-8.3-8.6-29.2-16.5-37.9-10.6 19-1 27.2 13.1 37.4 18 7.3 3.6 15 11.1 25.1 8.6z"/>
+      <path d="M359.2 112.9c-10.3-12.8-26-24.1-33.4-19.8 9.6.5 12.6 7.1 19.4 11.4 6.8 4.3 3.7 10.4 14 8.4zm-49 22.6c-10.7-4-31.8-6-41.6 6.3 16.3 2.7 41 1.2 41.7-6.3z"/>
+      <path d="M308.3 140.3c-10.8-5-19.3 2-29.4 1-19.4-1.9-33.2-.8-35 8.5 11.1-9.9 29.7-1.7 37.2-3.8 7.6-2 35.4-.2 44.2 3.6-4.5-5.6-11.5-7-17-9.3zm33.9-28.8c-2.6-8.3-2.4-17 10-16.4-3.1-4-14.7-6-16.6 8.6-13.7-10-28.6-11.8-31.4-3.1 7-6 18-1.6 31 13.2a23.2 23.2 0 017-2.3z"/>
+      <path d="M323.3 123c-7.8-5-18.3-13.2.1-16.5-7.8-4.3-19.4-2.4-18.1 12.2-21.2-8.6-36.3-5.7-39.5 2.7-3.5 9.3 9.6 14.5 11.8 8.6-2.4 1-10.5-1.8-6.3-7 4.3-5.3 26.2-1.4 47 9.5 5.8 3 25.6 2.5 5-9.5z"/>
+      <path d="M317.8 136.8c-6-12.3-25.5-1.2-29.4-13-5.4 17.4 27.7 7.7 29.4 13zm124 13.3c4 2 7.6-1.2 1.3-3.7 4 2 7.7-1 1.4-3.6 4.1 2 7.7-1 1.4-3.6-1.7 1.7-4 7.9-4.2 10.9zm2-23.6c9.1-9.6-.7-12.8 10.4-22.6 9-8 1.7-13.4 10.3-19.6 2.7-2 8.7-6 9.3-10 3.6 9-11.3 10.2-10.3 24.8.6 9.3-5.7 8.5-8 24-.6 3.4-2.8 10.7-11.6 3.4z"/>
+      <path d="M447.9 130.7c5-10.8 10.8-10.6 13.5-14.8 5.3-8 16.5 1.4 26-5.8-1.7 10.2-14.4 6.6-20 13.1-5.4 6.5-10 9.5-19.5 7.5z"/>
+      <path d="M449.1 134.3c8.8-7 15.3-2.4 21.4-6 15.3-9.4 21.5 1.8 35.1-2.6-3.6 8.8-23.8 1.3-32.6 7.8s-39.7 12.8-23.9.8zm-25.6 50a11 11 0 00-9.1-9.8c-5.3-.6-7.6-6.1-11.6-6.4-4-.2-6.7-8.2-12.2-8.1-5.5.1-7.8 7.3 5.2 13.8 13 6.5 27.2 14 27.7 10.5zm-16.3 3.4c-5.5.3-6.3 8.3-11.6 8.6 7.3 3.9 12.6-1.8 16.4-6.8l-4.8-1.8z"/>
+      <path d="M411.7 188.7c-4.7 4-6.1 12.5.8 14.9-4.2-5.7 7.3-8.3 3.7-13.6l-4.5-1.3z"/>
+      <path d="M416.5 189c-3.8 7.3 5.9 8.2 3.4 13.7 5.5-1.3 6.4-11.7 1.4-14.5l-4.8.8z"/>
+      <path d="M379.6 173.4c9-.5 17.3 4.4 22.8 12.3 3.5 5 15.3 7 19.4 3 4-4 1.7-12.5-8.3-9.8-2.5-4.2-9.8-2.7-13.3-6.2-3.5-3.6-17.1-13.6-20.6.7z"/>
+      <path stroke-linecap="round" d="M413.5 179c-2.4.4-3.2 4.6-1.7 6.7m6.8-4.2c.8 1.2.3 3-.1 3.9m-24.6-11.6c4.6.2 5.5 3.6 10.5 4.9"/>
+      <path d="M390.8 162.4c16 4 28.8 7.5 36.7 12a42.5 42.5 0 0030.8 2.8c10.7-3 31.3-5.8 30.3 7.5 5.6-6.6-1.5-13.8-15.8-15 .3-6.6-6.7-12.5-11.7-8.6 4.6-.6 8.6 8-.5 11.6A8.2 8.2 0 00449 163c4.3 1.3 8.7 8.5-1 11.3-6.1 1.8-15-.5-21.6-4.5-6.6-4-43.8-18.6-35.7-7.5z"/>
+      <path d="M431.3 155.8c-5 2.3-1.8 7.6-9.5 10.6-7.8 3-13.2 10-11.5 15.8 5.3-11.5 14.6-11 17.9-15.6 3.2-4.5 8-11.1 3.1-10.8z"/>
+      <path d="M432.7 156.6c-.3 9.2-7.5 5.8-4.7 18.7a26 26 0 01-.2 17c8-5.8 2.9-18.2 6.5-22.9a33 33 0 005-8.8c-2 5.3-1.8 15 3.3 17.6-4.1-9.8 11.2-17.8.6-29.1-1.5 2.7-6.2 7.6-10.5 7.5zm-25.6-9.2c1.2 2 2.5 6.7 1.4 9.3a22 22 0 007.2-8c5.2.7 7.2 7.1 2.3 10 3 0 8.2 0 11-3.5-3.5-3.9-14.4-9.9-22-7.8z"/>
+      <path d="M329 129.4a9.6 9.6 0 00-4.7-2c-7.6-1.5-3.6-8.3 2.8-8.3 13.8-15 21.6-3.4 38.4-8.2 6-1.7 10-1.2 13.2.2 7.5-5 16.3-3.6 22.7 2.3.7-1.1 1.7-2 3-2.4 6-1.6 10.7 3.4 12.3 10 4.6-1 9.9 1.4 13.4 4.5 4.7-2.5 8-2.6 9.2 0 4.3-2 9.8-3.3 12.6 3.5 2.8 6.8-6.5 4.7-8 19-1 8.9-10.8 12.4-18.6 7-12.5-8.3-24.6-9.7-30.7 3.1-6 12.8-10.7 20.3-25.3 16-5.3-1.4-12 .6-16.3 6.4-4.3 5.7-10.8.3-18.6 1 9.8-1.5 6-4 14.5-4.6 7.8-.5 5.8-7.7 10.8-8.8-19.5 5-18.8-2.2-34.9 2.8 7-9 18.1-4 23.6-9.3-14.5-.2-21-9.7-27.6-5.8-10.3 6.3-5.8 24.2-32.6 22.6-13-.7-21.4 1-29.2 8.8 13.6-28 32-12.6 41-21.6a66 66 0 0012-14.3 6 6 0 014-3.1c-22.4-7-8.9-18 13-18.8z"/>
+      <path stroke-linecap="round" d="M439.3 125.5c.4.7.5 1.6.5 2.7 0 5.6-8.2 5.8-8.7 14-.3 4.2-.8 6.6-3.7 6.1-2.9-.5-5.4-5-2.6-10.3"/>
+      <path d="M333.1 121.2a10.6 10.6 0 00-6-2m51.5-8.1c6.7 2.9 9.9 9.8 19.6 10 9.3.4 15 13.9 30.6 5.1l1.2-.6m-28.6-12.2a12.3 12.3 0 00-1.3 8m-29 20.4c-11.9 0-14.9 6-14.9 11.8 0 5.8 5.6 13.3 15.3 13.3 9.8 0 15.1-6 15.1-12.6s-6-12.5-15.6-12.5z"/>
+      <path d="M373.2 166.6c-.3-3.2-6.2-2.7-6-5.2s3.3-3.6 3.3-7 5.3-3.8 7-1c1.8 2.7 7.1 8 8.2 5.3m-8.1-5.4a9.7 9.7 0 00-.4 12.8m4.1-8.5c-.8 1.9-1 4.8 0 6.5"/>
+      <path fill="none" d="M428.2 148.4c9.3.7 10.8-9.4 4-10m-15.3-17.5c-3.2-4-10.6-5.4-10.7 3.2"/>
+      <path d="M405.3 134c-3.1-7.8-11.2-9-15.4-5-3.6 3.2-3.7 11.6 4 13.4 2.6-3.1 7.8-7.3 11.4-8.4zm-3.4-4.9c-4.6-4-11.2 3.6-5.2 10.6M316 148c3-.7 7.4.8 14.2 4 4.3 2 17 6.3 25.1 2-8.3 3-14.5-9.6-20.8-8-6.3 1.5-17.8 3.8-22.6-.8 11.8.8 18.1-8.6 31.6-.5a23 23 0 0012.8 3.5c-11-13.3-25.6-4.8-27.1-15.6 6.7 7.2 23-1.6 31.2 11.8m-28.8-9.8c-1.6-1.9-.9-3.8-2.5-5.3"/>
+    </g>
+    <path stroke="none" d="M416.9 121c-2.8-3-8.8-.7-7.1 5.3a9.4 9.4 0 017-5.4zm-17.1 16a20.6 20.6 0 015.5-3 12 12 0 00-3.7-5.1c-1.4-1-5.6 4.6-1.8 8.1z"/>
+    <path fill="none" stroke-linecap="round" stroke-width=".4" d="M392.4 126.8c-4.5-3-8.7-2.7-10-.2-3.3-.1-6 2.3-6.2 7m7 2c-5.4-3.7-12.8-2.3-12.3 6m-3.2 4.7c2.6-2.1 6.4-3.6 9.2.1m31-8.3c-1 1.4-1.7 3.6 0 6.8-2-2.6-7.1-2.6-12.5 4.4m24.5-11.5c-6.5.7-6.4 5-1.1 6.9m-45.4-22.9c-5.5-1.1-9.5 2.2-1.9 5M384 118c-7.8-2-11 0-7.4 1.8m-15.1 29.4c-.3 2.8 1.3 6.4 5.8 2.3m-4.3 6c0 .8-.1 1.6-.6 2.3m-17.5-39c-4.7-1.5-5.6-5.9-.1-5.5m-1.5 15.6c-5.3-1.8-5.3-7-.9-6.4m10.7 3.7c-6.2-1.5-6.4-5.7-1.8-5.1m2.5-8c-3.2-.2-8.3 3.5.2 5.6m9 1.8c-7.7-1.2-7.5 2-3 4m8.8-11.3c-6-1.1-8 2.4-4 3.9M350.3 137c-1.4-1.2-2.6-6.9 4.3-5.2m10 3.4c-4.6-1.2-9 3.3-4.8 6m11-11.4c-5-.8-9 .5-6.4 2.3"/>
+    <path fill="#fff" stroke-width=".4" d="M416.6 121a9.3 9.3 0 00-6.8 5.3"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bv.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bv.svg
new file mode 100644
index 0000000..01c9ee1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bv.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bv" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#a)">
+    <path fill="#fff" d="M-68 0h699.7v512H-68z"/>
+    <path fill="#d72828" d="M-93-77.8h218.7v276.2H-93zM249.4-.6h381v199h-381zM-67.6 320h190.4v190.3H-67.5zm319.6 2.1h378.3v188.2H252z"/>
+    <path fill="#003897" d="M156.7-25.4H221v535.7h-64.5z"/>
+    <path fill="#003897" d="M-67.5 224.8h697.8v63.5H-67.5z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bw.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bw.svg
new file mode 100644
index 0000000..0bc5d3d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bw.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bw" viewBox="0 0 512 512">
+  <g fill-rule="evenodd">
+    <path fill="#00cbff" d="M0 0h512v512H0z"/>
+    <path fill="#fff" d="M0 192h512v128H0z"/>
+    <path d="M0 212.7h512V299H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/by.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/by.svg
new file mode 100644
index 0000000..73e14f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/by.svg
@@ -0,0 +1,22 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-by" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h496v496H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(1.032)">
+    <path fill="#b20000" d="M0 0h992.1v329.5H0z"/>
+    <path fill="#429f00" d="M0 329.5h992.1v166.6H0z"/>
+    <path fill="#fff" d="M0 0h109.8v496H0z"/>
+    <g fill="#b20000" stroke-width="1pt">
+      <path d="M5.2 8.4h5.3v8.4H5.2zm15.7 0h15.7v8.4H21zM26.1 0h5.3v8.4H26zm26.2 0h5.2v8.4h-5.2zm21 8.4h15.6v8.4H73.2zM78.4 0h5.2v8.4h-5.2zM15.7 16.8h10.5v8.4H15.7zm15.7 0h10.5v8.4H31.4zm36.6 0h10.5v8.4H68zm15.7 0H94v8.4H83.8zm-73.2 8.4h10.4v8.4H10.5zm26.1 0h10.5v8.4H36.6zm26.2 0h10.4v8.4H62.8zm26.1 0h10.5v8.4H88.9zM99.4 8.4h5.2v8.4h-5.2zM5.2 33.6h10.5V42H5.2zm36.6 0h10.5V42H41.8zm52.4 0h10.4V42H94.2zM10.5 59h10.4v8.4H10.5zm5.2 8.4h10.5v8.4H15.7zm21-8.4H47v8.4H36.6zm-5.3 8.4h10.4v8.4H31.4zm-10.5 8.4h15.7V84H21zm5.2 8.2h5.3v8.5H26zm36.7-25.2h10.4v8.5H62.8zm5.2 8.5h10.5v8.4H68zm21-8.4h10.4v8.4H88.9zm-5.3 8.4H94v8.4H83.8zm-10.5 8.4H89V84H73.2zm5.3 8.3h5.2v8.5h-5.2zm-26.2-8.3h5.2V84h-5.2zM0 75.7h5.2V84H0zm104.6 0h5.2V84h-5.2zm-78.5 42h5.3v8.4H26zm-5.2 8.4h15.7v8.4H21zm-5.2 8.4h26.2v8.4H15.7zm62.8-16.8h5.2v8.4h-5.2z"/>
+      <path d="M73.2 126.1H89v8.4H73.2zm-5.2 8.4h26.1v8.4H68zm5.2 42h26.2v8.5H73.2zM62.8 143h36.6v8.4H62.8zm-52.3 0H47v8.4H10.5zm5.2 42h15.7v8.5H15.7zm-5.2-8.3h26.1v8.4H10.5zm73.2-16.9h26.1v8.5h-26zM78.5 185h15.7v8.4H78.5zm-57.6 8.4h5.3v8.4h-5.3zm62.8 0h5.2v8.4h-5.2zM0 159.7h26.2v8.5H0zm47 16.9h15.8v8.4H47zm5.3 8.4h5.2v8.4h-5.2zm-15.7-25.3h36.6v8.5H36.6zm21-126H68V42H57.5zM47 42h15.7v8.4H47zm-5.3 8.4h10.5v8.4H41.8zm15.7 0H68v8.4H57.5zM0 42h10.5v8.4H0zm5.2 8.4h10.5v8.4H5.2zM99.4 42h10.4v8.4H99.4zM94 50.4h10.5v8.4H94.2zM0 126.1h5.2v8.4H0zm104.6 0h5.2v8.4h-5.2zm-57.5 67.3h15.7v8.4H47zm-5.3 8.4h10.5v8.4H41.8zm15.7 0H68v8.4H57.5zm-20.9 8.4h10.5v8.4H36.6zm26.2 0h10.4v8.4H62.8zm-31.4 8.4h10.5v8.4H31.4zm36.6 0h10.5v8.4H68zM26.1 227h10.5v8.4H26.1zm47.1 0h10.5v8.4H73.2zm-57.5 8.4h15.7v8.4H15.7zm62.8 0h15.7v8.4H78.5zm10.4-8.4h10.5v8.4H88.9zm5.3-8.4h10.4v8.4H94.2zm5.2-8.4h10.4v8.4H99.4zm-89 16.8H21v8.4H10.5zm-5.2-8.4h10.5v8.4H5.2z"/>
+      <path d="M0 210.2h10.5v8.4H0zm21 33.6h5.2v8.4h-5.3zm62.7 0h5.2v8.4h-5.2zm-31.4-25.2h5.2v8.4h-5.2zm-15.7 25.2h5.2v8.4h-5.2zm31.4 0h5.2v8.4H68zm-15.7 0h5.2v8.4h-5.2zm-52.3 0h5.2v8.4H0zm104.6 0h5.2v8.4h-5.2zM52.3 126.1h5.2v8.4h-5.2zm-26.1-84h5.2v8.3h-5.2zm52.3 0h5.2v8.3h-5.2zM47 100.8h15.7v8.4H47zm-10.4 8.5h15.7v8.4H36.6z"/>
+      <path d="M41.8 117.7h5.3v8.4h-5.3zm-10.4-16.8h10.5v8.4H31.4zm5.2-8.4h15.7v8.4H36.6zm5.2-8.4h5.3v8.4h-5.3zm15.7 8.4h15.7v8.4H57.5zm5.3-8.4H68v8.4h-5.2zm5.2 16.8h10.5v8.4H68zm-10.5 8.4h15.7v8.4H57.5zm5.3 8.4H68v8.4h-5.2zm20.9-16.8h10.5v8.4H83.7zm5.2-8.4h15.7v8.4H89zm10.5 8.4h10.4v8.4H99.4z"/>
+      <path d="M89 109.3h15.6v8.4H89zm5.2 8.4h5.2v8.4h-5.2zm0-33.6h5.2v8.4h-5.2zM0 100.9h10.5v8.4H0zm5.2-8.4H21v8.4H5.2zm10.5 8.4h10.5v8.4H15.7z"/>
+      <path d="M5.2 109.3H21v8.4H5.2zm5.3 8.4h5.2v8.4h-5.2zm0-33.6h5.2v8.4h-5.2zm-5.3 67.2h21v8.4h-21zm26.2 0h21v8.4h-21zm26.1 0h21v8.4h-21zm26.2 0h21v8.4h-21zm-41.9 16.8H68v8.5H41.8zm-36.6 0h26.2v8.5H5.2zm73.3 0h26.1v8.5H78.5zm26.1 33.7h5.2v8.4h-5.2zM0 201.8h5.2v8.4H0zm5.2 285.9h5.3v-8.5H5.2zm15.7 0h15.7v-8.5H21zm5.2 8.3h5.3v-8.3H26zm26.2 0h5.2v-8.3h-5.2zm21-8.3h15.6v-8.4H73.2zm5.2 8.3h5.2v-8.3h-5.2zm-62.8-16.8h10.5v-8.4H15.7zm15.7 0h10.5v-8.4H31.4zm36.6 0h10.5v-8.4H68zm15.7 0H94v-8.4H83.8zm-47-8.4H47v-8.4H36.6zm26 0h10.5v-8.4H62.8zm26.2 0h10.5v-8.4H88.9zm10.5 16.9h5.2v-8.5h-5.2zM5.2 462.4h10.5V454H5.2zm36.6 0h10.5V454H41.8zm52.4 0h10.4V454H94.2zm-83.7-25.2h10.4v-8.4H10.5zm5.2-8.4h10.5v-8.4H15.7zm21 8.4H47v-8.4H36.6zm-5.3-8.4h10.4v-8.4H31.4zm-10.5-8.4h15.7V412H21zm5.2-8.4h5.3v-8.4H26zm36.7 25.2h10.4v-8.4H62.8zm5.2-8.4h10.5v-8.4H68zm21 8.4h10.4v-8.4H88.9zm-5.3-8.4H94v-8.4H83.8zm-10.5-8.4H89V412H73.2zm5.3-8.4h5.2v-8.4h-5.2zm-26.2 8.4h5.2V412h-5.2zm-52.3 0h5.2V412H0zm104.6 0h5.2V412h-5.2zm-78.4-42h5.2v-8.5h-5.2z"/>
+      <path d="M21 370h15.6v-8.5H21zm-5.3-8.5h26.2v-8.4H15.7zm62.8 16.8h5.2V370h-5.2zm-5.3-8.3H89v-8.5H73.2zm-5.2-8.5h26.1v-8.4H68zm5.2-42h26.2v-8.4H73.2zm-10.4 33.6h36.6v-8.4H62.8zm-52.3 0H47v-8.4H10.5zm5.2-42h15.7v-8.4H15.7zm-5.2 8.4h26.1v-8.4H10.5zm73.2 16.8h26.1V328h-26zm-5.2-25.2h15.7v-8.4H78.5zM0 336.3h26.2V328H0zm47-16.8h15.8v-8.4H47zm5.3-8.4h5.2v-8.4h-5.2zm-15.7 25.2h36.6V328H36.6zm21 126.1H68V454H57.5zM47 454h15.7v-8.4H47zm-5.3-8.4h10.5v-8.4H41.8zm15.7 0H68v-8.4H57.5zM0 454h10.5v-8.4H0zm5.2-8.4h10.5v-8.4H5.2zm94.2 8.4h10.4v-8.4H99.4zm-5.3-8.4h10.5v-8.4H94.2zM0 370h5.2v-8.4H0zm104.6 0h5.2v-8.4h-5.2zm-62.8-75.6h10.5V286H41.8zm15.7 0H68V286H57.5zM36.6 286h10.5v-8.4H36.6zm26.2 0h10.4v-8.4H62.8zm-31.4-8.5h10.4V269H31.4zm36.6 0h10.5V269H68zM26.1 269h10.5v-8.3H26.1zm47.1 0h10.5v-8.3H73.2zm-57.5-8.3h15.7v-8.5H15.7zm62.8 0h15.7v-8.5H78.5zm10.4 8.4h10.5v-8.5H88.9zm5.3 8.3h10.4v-8.3H94.2zm5.2 8.5h10.4v-8.4H99.4zm-89-16.8H21v-8.5H10.5zm-5.2 8.3h10.5v-8.3H5.2zM0 286h10.5v-8.4H0zm21-33.7h5.2v-8.4h-5.3zm31.3 25.3h5.2V269h-5.2zm0 92.5h5.2v-8.5h-5.2zm-26.1 84h5.2v-8.4h-5.2zm52.3 0h5.2v-8.4h-5.2zM47 395.2h15.7v-8.4H47zm-10.5-8.4h15.7v-8.4H36.6zm5.2-8.5H47V370h-5.3zm-10.4 16.9h10.4v-8.4H31.4zm5.3 8.4h15.7v-8.4H36.6zm5.2 8.4h5.3v-8.4h-5.3zm15.7-8.4h15.7v-8.4H57.5zm5.3 8.4H68v-8.4h-5.2zm5.2-16.8h10.5v-8.4H68zm-10.5-8.4h15.7v-8.4H57.5zm5.3-8.5H68V370h-5.2zm20.9 16.9H94v-8.4H83.8zm5.2 8.4h15.7v-8.4H89zm10.5-8.4h10.4v-8.4H99.4zm-10.5-8.4h15.7v-8.4H89zm5.3-8.5h5.2V370h-5.2zm0 33.7h5.2v-8.4h-5.2zM0 395.2h10.5v-8.4H0z"/>
+      <path d="M5.2 403.6H21v-8.4H5.2zm10.5-8.4h10.5v-8.4H15.7zm-10.5-8.4H21v-8.4H5.2zm5.3-8.5h5.2V370h-5.2zm0 33.7h5.2v-8.4h-5.2zm-5.3-67.3h21v-8.4h-21zm26.2 0h21v-8.4h-21zm26.1 0h21v-8.4h-21zm26.2 0h21v-8.4h-21zM41.8 328H68v-8.4H41.8zm-36.6 0h26.2v-8.4H5.2zm73.3 0h26.1v-8.4H78.5zm26.1-33.6h5.2V286h-5.2zM0 294.3h5.2v-8.4H0zm47-42h5.3v8.3h-5.2zm10.5 0h5.3v8.3h-5.3zm0-16.9h5.3v8.4h-5.3zm-10.4 0h5.2v8.4h-5.2zm-36.6 227h10.4v8.4H10.5zm73.2-159.7h5.2v-8.4h-5.2zm-62.8 0h5.2v-8.4H21zm26.2-8.4h15.7v8.4H47z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bz.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bz.svg
new file mode 100644
index 0000000..0e9a27c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/bz.svg
@@ -0,0 +1,145 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-bz" viewBox="0 0 512 512">
+  <defs>
+    <radialGradient id="a">
+      <stop offset="0" stop-color="#ffef5d"/>
+      <stop offset="1" stop-color="#ea5700"/>
+    </radialGradient>
+    <radialGradient id="b">
+      <stop offset="0" stop-color="#952d1a"/>
+      <stop offset="1" stop-color="#570a00"/>
+    </radialGradient>
+    <radialGradient id="c" cx="247.1" cy="238.3" r="36" fx="247.1" fy="238.3" gradientTransform="scale(1.22624 .8155)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <radialGradient id="d" cx="322" cy="152.9" r="10.6" fx="322" fy="152.9" gradientTransform="scale(.93615 1.06821)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <radialGradient id="e" cx="364.2" cy="237.8" r="36" fx="364.2" fy="237.8" gradientTransform="scale(1.2242 .81686)" gradientUnits="userSpaceOnUse" xlink:href="#b"/>
+    <radialGradient id="f" cx="468.1" cy="156.1" r="10.7" fx="468.1" fy="156.1" gradientTransform="scale(.95596 1.04607)" gradientUnits="userSpaceOnUse" xlink:href="#b"/>
+  </defs>
+  <path fill="#ce1126" d="M0 0h512v512H0z"/>
+  <path fill="#003f87" d="M0 36.6h512v438.8H0z"/>
+  <circle cx="256" cy="256" r="201.1" fill="#fff"/>
+  <circle cx="256" cy="255" r="166.7" fill="none" stroke="#552300" stroke-width="4.2"/>
+  <path fill="#007f00" d="M236.7 78c15.1-16.1 28.8 2.6 28.4 11.3-.4 8.8-15.6 28.1-29.3 12.6 14.2 3.6 18.5-12.3 25.7-12.5-7.2.2-10.2-15.6-24.8-11.3zm-157 127c-7.8-20.7 15-24.5 22.8-20.3 7.8 4.2 18.5 26.3-1.7 31.6 9.7-11-2.8-21.9.2-28.4-3 6.5-18.6 2.1-21.2 17zm338.4-20.4c20.6 8 8 27.4-.3 30.3-8.4 2.8-32-4.3-22.4-22.6 1.7 14.5 18.2 12.6 21 19.3-2.8-6.6 11-15 1.7-27zm-270 218c-22.1-2.2-15.3-24.3-8-29.3 7.2-5 31.9-4.6 27.7 15.7-5.7-13.5-21-7.2-25.5-12.9 4.4 5.7-6.5 17.5 5.8 26.5zm223.3-16c.3 22-22.6 17.8-28.4 11.2-5.8-6.5-8.2-31 12.5-29.1-12.8 7.1-4.8 21.6-10 26.6 5.2-5 18.3 4.4 25.8-8.7zM95.9 163.1c-2-22 21-19.5 27.4-13.4 6.3 6.1 10.6 30.3-10.3 30 12.3-8 3.2-21.9 8-27.3-4.8 5.4-18.6-3-25.1 10.7zm23.6 205.8c-21.9-3.6-13.6-25.2-6-29.7s32.2-2.4 26.7 17.5c-4.8-13.8-20.5-8.6-24.6-14.5 4 5.9-7.6 17 4 26.7zm173-290c20-9.7 26 12.5 22.5 20.6-3.4 8-24.6 20.8-31.9 1.4 12 8.4 21.7-5 28.5-2.6-6.8-2.4-3.9-18.2-19-19.3zM335 414.3c-9.9 19.7-28.3 5.6-30.4-2.9-2.2-8.5 7-31.3 24.6-20.2-14.8.5-14.3 17-21.2 19.1 6.9-2.1 14.2 12.2 27 4zm96.5-190.6c16.8 14.5-1.7 28.6-10.5 28.5-8.9-.2-28.7-14.7-13.4-28.8-3.3 14.2 12.8 18 13.2 25.2-.4-7.2 15.5-10.5 10.7-24.9zM151 107.6c5-21.5 26.2-12 30.3-4.2 4 7.7.5 32-19.2 25.3 14.2-3.9 10-19.8 16.1-23.5-6.2 3.7-16.6-8.5-27.2 2.4zm-65.6 184c-19.5-10.7-4.5-28.3 4.1-30 8.7-1.8 31.2 8.2 19.4 25.2.1-14.6-16.5-14.9-18.4-21.8 1.9 6.9-12.8 13.6-5.1 26.6zm281-170.3c22-3.1 20.8 19.9 15 26.5-5.9 6.6-30 12-30.8-8.6 8.8 11.7 22.2 2 28 6.4-5.8-4.4 2-18.5-12.1-24.3zm-125 314c-20.2 9-25.3-13.5-21.5-21.4 3.8-7.9 25.4-19.7 32 0-11.7-9-22 4-28.7 1.3 6.7 2.7 3.2 18.4 18.3 20.1zm182-122.9c9.1 20-13.5 25.3-21.5 21.5-8-3.7-20-25.1-.2-31.7-9 11.7 4.2 21.8 1.5 28.4 2.7-6.6 18.5-3.2 20.2-18.2zm-347-64.7c-12.7-18 8.6-27.3 17.1-25 8.6 2.1 24.4 21 6.2 31 6.6-13-8.2-20.5-6.8-27.6-1.4 7-17.6 6.6-16.5 21.6zM196.3 422c-20.8 7.6-24.4-15.2-20-22.8 4.3-7.7 26.7-18 31.8 2-11-9.7-22.1 2.6-28.6-.5 6.5 3.1 1.9 18.5 16.8 21.3zm-6-335c12.4-18.3 28.8-2 29.8 6.7s-11 30.2-27 17c14.7 1.3 16.4-15 23.4-16.3-7 1.2-12.5-14-26.2-7.4zm213.5 269c1.4 22-21.7 18.8-27.8 12.5-6.1-6.3-9.6-30.6 11.2-29.7-12.5 7.7-3.9 21.8-8.7 27 4.8-5.2 18.4 3.6 25.3-9.8zm-5.6-207.4c21.7 4.3 12.7 25.6 5 29.9-7.7 4.2-32.2 1.4-26-18.4 4.3 14 20.2 9.3 24 15.3-3.8-6 8.2-16.7-3-26.8zM122.4 133c.2-22 23-17.3 28.6-10.6s7.5 31.2-13.2 28.8c13-6.8 5.4-21.4 10.6-26.3-5.2 4.9-18-4.8-26 8zM95 331.7c-19.8-10-5.5-28.1 3.1-30.2 8.6-2 31.5 7.2 20.2 24.6-.4-14.6-17-14.3-19.1-21.1 2.1 6.8-12.4 14-4.2 26.7zM332.8 97c20.8-7.8 24.6 15 20.3 22.6-4.3 7.7-26.6 18.2-31.9-1.8 11.1 9.6 22.1-2.8 28.6.3-6.5-3-2-18.5-17-21.1zm-44.1 335.8c-16.1 15.1-28.5-4.4-27.5-13.2 1-8.7 17.5-27 30.1-10.5-14-4.6-19.3 11-26.5 10.7 7.2.3 9 16.3 23.9 13zm141.6-168.6c15.1 16.1-4.7 28.3-13.4 27.3-8.8-1-27.1-17.5-10.5-30-4.7 13.9 11 19.2 10.7 26.4.3-7.2 16.4-9 13.2-23.7z"/>
+  <path fill="#005800" d="M235.8 101.9c14.2 3.6 17.8-12.1 25-12.3-4.2 5-15.2 17.9-25 12.3zm1-23.8c15-16.2 28.6 2.5 28.3 11.2-12.3-21.3-16-18-28.4-11.2zm-136 138.2c9.7-11-3-21.2 0-27.7 2.7 6 9.4 21.5 0 27.7zm-21-11.4c-8-20.6 15-24.4 22.7-20.2-24.7 1.4-23.4 6.3-22.7 20.2zm315.6-12.6c1.7 14.5 17.8 12 20.6 18.7-6.3-2-22.3-7.6-20.6-18.7zm22.7-7.7c20.6 8 8 27.4-.3 30.3 15.6-19 11.1-21.4.3-30.3zM167.8 389c-5.7-13.5-20.5-6.8-25-12.4 6.6.3 23.5 1.3 25 12.4zM148 402.6c-22.1-2.2-15.3-24.3-8-29.3-9.8 22.6-4.9 23.6 8 29.3zm207.4-33.9c-12.8 7.1-4.5 21-9.6 26-.4-6.5-1.4-23.3 9.6-26zm15.8 18c.4 22-22.5 17.7-28.3 11.2 23.7 7 24.2 2 28.3-11.3zM113 179.6c12.3-8 3-21.2 7.6-26.6 1 6.4 3.2 23-7.6 26.6zm-17-16.5c-2-22 21.1-19.5 27.4-13.4-24.2-5.3-24.3-.2-27.4 13.4zm44.3 193.6c-4.8-13.8-20-8.2-24-14 6.5.7 23.3 2.8 24 14zM119.6 369c-22-3.6-13.6-25.2-6-29.7-11.3 21.9-6.5 23.2 6 29.7zm163.6-268c12 8.4 21-5 27.8-2.7-5.8 3.3-20.6 11.4-27.8 2.7zm9.4-22c19.9-9.7 26 12.5 22.4 20.6-3.8-24.3-8.5-22.5-22.4-20.5zM329 391.2c-14.7.5-13.7 16.6-20.6 18.8 2.6-6 9.5-21.4 20.6-18.8zm5.8 23.1c-9.9 19.7-28.3 5.6-30.4-2.9 17.8 17 20.6 12.8 30.4 2.9zm72.6-190.9c-3.3 14.2 12.6 17.4 13 24.5-5.2-4-18.4-14.6-13-24.5zm24 .3c16.7 14.5-1.8 28.6-10.6 28.5 21.1-12.8 17.7-16.5 10.6-28.5zm-269.4-95c14.2-3.9 9.4-19.3 15.6-23-1.1 6.4-4.3 23-15.6 23zm-11-21.1c5-21.5 26.1-12 30.2-4.2-21.3-12.5-23-7.8-30.3 4.2zm-42.2 179.2c.1-14.6-16.2-14.3-18-21.2 5.9 2.8 21 10.3 18 21.2zm-23.5 4.8c-19.5-10.7-4.5-28.3 4.1-30-17.9 16.9-13.7 19.8-4.1 30zm265.2-152.4c8.8 11.7 21.6 1.7 27.3 6.1-6.5 1.3-23.1 4.4-27.3-6zm15.9-17.9c22-3.1 20.7 19.9 14.9 26.5 4-24.2-1-24-15-26.5zM251.7 413.8c-11.6-8.9-21.2 4.2-27.9 1.5 5.9-3 21-10.4 28-1.5zm-10.3 21.5c-20.3 9-25.4-13.5-21.6-21.4 2.8 24.4 7.6 22.9 21.6 21.4zm160.2-133c-9 11.6 4.3 21 1.6 27.6-3-5.8-10.6-20.8-1.6-27.6zm21.7 10.1c9.1 20-13.5 25.3-21.5 21.5 24.6-2.9 23-7.6 21.5-21.5zM99.7 253.7c6.6-13-8.2-19.8-6.8-26.8 4 5.1 14.4 18.5 6.8 26.8zm-23.2-6c-12.8-18 8.5-27.3 17-25-23.5 7.3-21.1 11.7-17 25zM208 401.2c-11-9.7-21.4 2.8-28-.3 6.1-2.6 21.8-9 28 .3zM196.2 422c-20.8 7.6-24.4-15.2-20-22.8 1 24.5 6 23.3 20 22.8zM193 110.6c14.7 1.4 15.7-14.7 22.8-16-3.4 5.7-12.2 20-22.8 16zM190.2 87c12.4-18.3 28.8-2 29.8 6.7-15.4-19.2-18.7-15.3-29.8-6.7zm196.9 251.8c-12.5 7.7-3.5 21.1-8.4 26.4-.8-6.5-2.5-23.2 8.4-26.4zm16.6 17.2c1.4 22-21.7 18.8-27.8 12.5 24 6 24.3 1 27.8-12.5zm-26.6-196c4.2 14 19.7 8.8 23.5 14.8-6.5-.9-23.2-3.6-23.5-14.8zm21-11.5c21.7 4.3 12.7 25.6 5 29.9 12-21.5 7.2-23-5-30zm-260.3 2.7c13-6.8 5-20.8 10.2-25.8.3 6.6.9 23.4-10.2 25.8zM122.4 133c.2-22 23-17.3 28.6-10.6-23.5-7.6-24-2.6-28.6 10.6zm-4.2 193c-.4-14.6-16.6-13.7-18.7-20.5 6 2.6 21.4 9.6 18.7 20.5zM95 331.7c-19.8-10-5.4-28.1 3.1-30.2-17.3 17.6-13 20.3-3.1 30.2zm226.3-213.8c11.1 9.6 21.4-2.9 28 .2-6.1 2.6-21.7 9.2-28-.2zm11.6-20.8c20.8-7.8 24.6 15 20.3 22.6-1.4-24.5-6.3-23.2-20.3-22.6zm-41.5 312c-14-4.5-18.6 11-25.8 10.7 4.6-4.8 16.4-16.8 25.8-10.6zm-2.6 23.8c-16.1 15.1-28.5-4.4-27.5-13.2 10.8 22.1 14.8 19.1 27.5 13.2zm117.7-171.3c-4.7 13.8 10.9 18.5 10.5 25.7-4.7-4.5-16.8-16.4-10.5-25.7zm23.9 2.7c15.1 16.1-4.7 28.3-13.4 27.3 22.3-10.6 19.3-14.6 13.4-27.3z"/>
+  <g fill="#730000" stroke="#000" stroke-width=".5">
+    <path d="M287 128.3s.6-1.4 1.8-.6c1 .9 1.3 4.5 1.3 4.5l-1.7.8s1-1.3-1.4-4.7zm-9.5 32.8s.8-1.2-.3-3.7l1.7-.5s.6 2-.2 4.2h-1.2m28.9-5.8l-4 2.4 2 1 4.8-2.9-2.8-.5m-53 15.5c-1.1.9-1.2 2.3-1.8 3.2-.5.8-2.1 2-2.2 3.2a6.8 6.8 0 00.2 3.8c.6 1.6 3.2 9 2.2 14.7-1.2 5.6-.7 8-.3 8.8.4.8 1.6 3.1 2.4 3.1 1.6-.2.9-.7 1.5-1.7 1.6-2.7 0-23.7-.7-29.5-.5-4.5-2.6-8.6-2.8-9l-1-2.7c-1.5-3.8-3.4-7-3.4-14.8 0 0-5.1 1.2-9.5-8.8-2.3-5-5.6-4.4-9.6-6l1.8-1.2s3.4 1.6 5 1.6c1.7 0 1.2-3.3 1.2-3.3l1.6-1.7v7.3c0 3.4 4.6 8 7.3 9.3 1.7.8 3.9-2.6 3.4-6-.6-3.3 0-7.8 0-7.8l2.3 1.4s-.9 1.4-.7 2.3c.3.8 1.5-.9 2.3-1.7 0 0 .2.2 1 .2l-2.4 4.3c-.9 1.4-.9 6.7-.9 8.6 0 2 .8 6.6.8 8 0 1.1 2 5.4 3.5 8l1.8 3.7c1.2 2 1.3 3.4 2 5 .5.9 1.2 3.3 1.7 7.4.2 1 .4 5 .8 7.6.3 2.5 2.4.6 4.9-1.2 2.5-1.9 2.5-6.4 2.5-6.4s2-1.6 1.6-.7c-.2 1 1 2.1 1 2.1-1.5 3.5-.6 3.1 1 3 1.6-.2 7-4.3 7-4.3.7-.2 4-.2 3.4 0-.6.4-1.4 2-1.4 2l3.5-.5c-1.3 1-6 3.6-7 4.3a96.3 96.3 0 01-9.1 4.3c-2.4 1-7.1 3.4-7.3 5.8-.1 2.4.3 8.8 0 11l-1 11.3h-11.2s2.2-8.2-.1-10.3c-2.2-2.3-7.3-9-10.7-11.3-3.3-2.2 2.2-.5 2.2-.5v-2.3l5.1 6.1s8.9-7.8 0-18.4c-2.8-3.3-5.6-8.4-7.8-9-2.3-.6-3.4-1.1-7.3 0-4 1.2-13.4 1.2-17.4-5l3.4-.6 2.8-1.1s-1.2 4 6.7 4 9 0 8.4-7.4l2.3-1.1 1.6 1.7s-1.1 4-.5 5.6c.5 1.6 3.3 2.8 5.5 4.5 1 .7 1.7.8 2.3.8 1-.1 1.2-.1 2.4-1.4 1.9-2 1.5-2 3.4-3.6l1.1-1.7 1.1 3z"/>
+    <path d="M255 165.3c.4-.4 1.3-2 2-3.3 1.2-2 2.7-3.3 4.4-6 1.5-2.3 2.2-5.9 1.5-8.4l1.5.9v4s2-1.7 2.9-2.2l.8.5s-6.2 6.4-12 16.8l-1-2.3zm-54.8-21.6c.9 1.4 1.7 4.2 4.2 6.4l1.6-.5s-3.8-4.5-3.8-6.4l-2 .5m9.8-2.5s.5 5.3-.8 7.3l1.6-.9s1.2-3.6.9-5.6l-1.7-.8zm55-16.8s-.4 7.5 1 12l2-.5s-.3-1.4 1.4-2c1.7-.5 5.6-2.2 7.6-3.9l-.6-1.6s-3 2.4-4.5 3c-1.4.5-2.2 1.1-3.3.8-1.2-.3-2.6-2.2-1.7-6.5l-2-1.3m22 35s-.4 5.3-.1 7.6l1.7.4s-.4-6.3.8-6.9l-2.3-1.1m8 4s-2 3.4-4.4 3.7l3.7-.7s1-.5 2.6-2.2l-2-.8"/>
+  </g>
+  <g fill="#289400" stroke="#030" stroke-width=".5">
+    <path d="M263 147.6l1.4.9 1.5.2 3.3 2.8c1.3 1.1 1.3-.2 1.3-.2l.9 3.3h1.1l-.3 3.3 2-1.6 2.3 2s1.6-1.5 2.5-1.5c.8 0 1.1-.8 1.1-.8h.1c-5.5-2.6-7.9-5.4-6.2-8.2 2.7-4.7 7.2-1.6 8.6-1l20.2 10.8s1.4-.8.4-1.6c-1-.9-1.4-3-1.1-3.8.3-.8 2.6 2.6 3.8 3l3.7.7-.1-1s3.3 2.2 3.3 3.4c0 0 2.4-1.3 1.6-2-.8-.8 3.6 1.7 4 3.1l.9-1a11 11 0 011.4-5c1-1.5 2.2-2 2.2-2s1-1.7 2.1-1.7c0 0-1-.7-1.5-1.6-.5-.8-1.7-1.2-1.7-1.2l2-1.7c.4-.6.8-.7.8-.7s-2.4-2-4-2.3c0 0-.2-2.7-2.3-3h1s-1.6-2.8-3-3c0 0 .9-1 1.7-1 0 0-1.7-2.4-4.1-1.5l1.5-.7s-1.1-1.2-4.7-.6c0 0 .3-1.4-1.2-2.6 0 0-1.4.1-1.4 1.2 0 0-1.2-1.2-2.8-1.2-1.5 0 .5 1.7.5 1.7s-2-1.4-3.3-1c0 0 .5-2.4-.8-3.6 0 0-1.6.8-2 1.9l-.4-1s-2.1 2.4-2.5 1.7c-.3-.4-.6-2.2-.6-2.2l-1.3 1.9.2-2.6s-1.4.8-2.6 3.5c0 0-1.5 1.4-1.5 2.6 0 0-1-1.3-2.1 0-1 1.5 0 1.2 0 1.2s-.5.5-1.5.7l.2.8s-1.3-.7-2.4-.4l.5 1.3s-2.7.2-2.8-2c0 0-2.3-1.2-2.6 0l-1.6 1.1s-.6-1-1.5-1.2c-1-.3-.2 1.3-.2 1.3s-.3-1.2-1.6-1.8c-1.2-.6-.2 1.1-.2 1.1s-1.7-1.3-.8-2.4c0 0-1.6 1.5-.9 2.8l-1 .8s-.5-.6-.4-1c.1-.4-1.8 1.3-1.8 1.3s-1.1-2.7 0-2.7c.1 0-2-.1-2.3 2.3 0 0-1.3 0-2.6.5-1.3.4 1 1.3 1 1.3s-2-.4-3.2.2l.8 1s-.8-.8-2.5-.1c-2 .5.4.8.4.8s-1.9-.4-2.8 0 .3 1.1.3 1.1-3.5-1-4-.7c-.5.3 1.2 2 1.2 2s-2.1.5-2.5 2l1.8.8s-.8.4-1.2 1.3c-.4.8 1.2.4 1.2.4s-2.3 1.6-2.3 2.9c0 0 1.7.5 3-.7s.4-.9.4-.9v.9s2.5-1 2.5-1.7c0-.5-.4.8-.4.8l2.4-1.2 1.5 1z"/>
+    <path d="M261 115.1l-.5-2.3 5.3.7 1-2.2s2.5 1.1 3.3 2c0 0 5-1.3 6.4-.8l-.7 2.3s4.5.3 6 .8c1.3.6-.6 1.7-.6 1.7s5 .6 7.3 2c2.3 1.3 2.3 2.5 1.1 2.8l2.8 4.5s-4.5.5-5.3 1.6c-.8 1.2-1.7-1.1-1.7-1.1l-.8 3.1s-2.8-1.4-4-2.5c0 0-1.3 1.7-.5 2.5l-5-3.3s-2.3-.3-2.3 1.7l-3.1-3.7-2.8.8s-.8-1.1-1.9-1.4c-1.1-.2-.3 1.4-.3 1.4l-1.7-2-1.6-2s-1.5 2-2.6 2c-1 0-1-1.3-.9-2.2.3-.9-3.3-1-3.6 0 0 0-1-4.2 2.8-5.3l4-1zm-20 14.3l-2 1.6-1-.6-2.1 2.3-.5-1.2-1.1 1.9-1.8-.7-.8 1.4-1.6-.3s-1.3 1.2-2.2 1.5c-.8.3 0-1.8 0-1.8s-1.2 2-2.2 2c-.8 0-.5-.9-.5-.9s-.5 1.4-1.5 1.6c-1 0-.6-1-.6-1l-1.6 1.2v-1l-.8-.4s.5-1.8 1.2-2.3c.7-.4-.7-1.6-.7-1.6l.7-.9s-2.1-.5-2.1 0c0 0 1-2.9 2.5-3.4l.1-3.1s1.5-1.3 2.8-1.4c1.5-.2-.4-2.4-.4-2.4l3.3-2 .5-2.4 5 .5 1.1-2.2 4 1 3.5-1.8 2.5 3 3.7.3v3.3s4.4 1.4 5 1.8c0 0-.9 2.7-.9 3.2 0 0 3.1-.8 4-.6l.5 3.6s5.3 1.7 5.6 2.6c0 0-1.1.8-1.7 1.7 0 0 .6 3.2.6 4.3l-.4.6s-1.6-1.5-2.9-1.7l-1 2.3-1.9-1.2h-1.1s-1-1-1.7-1v-1.1l-1.5 1s-2.3-1.2-2.3-2v-1.6l-2.3 1.7s-.5-1.3-.4-1.8c0-.5-1 1.2-1 1.2s-1.2-2.2-1.1-2.6l-.3 1.8s-2.5-.8-2.9-2.5z"/>
+    <path d="M207.5 139.6s4.4 2.2 4.4 3.2c0 0 1.1-2.3.5-3l1.7 1s.5-2-.1-2.7c-.6-.5 3.7-2.3 4.6.6 0 0 2.7-2.7-2.3-5 0 0-.5-1.7 2.5-1.3 0 0-.2-1-.9-1.4h3s-1.8-1.5-4.4-2c-2.5-.3-1-.7-1-1.2-.3-.5 0-2.4 0-2.4s-1.5-.5-2.7.1l.4-.5s-2.7-.7-3.7 0c0 0-1.6-.7-1.4-2.4 0 0-1.5 0-2.3 1.6 0 0-1.4 1.6-3.4 1.6-.4 0-1.9-.8-1.9-.8l-1.2 3-2-.2.6 1.2s-3-.9-4 0c0 0 1.2 1.7.9 3 0 0-2.4.4-3 .8-.6.4 1 .8 1 .8s-2.8.8-3.4 1.6l1 .9-1.2 1.6 1 .2-2.7.9c-1 .3 1.7.5 1.7.5l-1.3 1.1 2 .3s-1.6 4.2-1.7 6.2c0 0 2.4-3 3-3.1l-1.8 3s3.5-1 3.8-1.6l.7-1.1v1.7s1.4-1.8 1.6-2.6c.1-.7 2.2.8 2.2.8v-1l2.5.7c.7 0 .8-.3.8-.3l1.8-.3-.3 1.5s1.2-.8 1.6-1.7c.2-.8.8 0 .8 0l.8-3.3h1.8zm-14.3 14.8l1.7 3.4c-1.4.1-3.3 1.7-3.3 1.7.3 5.7-1.2 5.4-1.2 5.4.4 1-.3 3-.3 3l8.3-5 .1-.5 9.8-4.6.3.5 2.9-1.5 2 5.2-2 1.1c0 1.8 2.1 5 2.1 5l2.6-.7 2.9-1v1c0-.4 3-1.4 3-1.4l1.4 1.3c1 0 3-2.6 3-2.6l2.1.9s.8-1.3.8-2.2c0-.9 2.7-.9 2.7-.9l1.9 1.4 2.4-2s.7 1.5 1.6 1.7c1 0 3.7 2 3.7 1.6 0-.4 1.1-2.7 1.1-2.7l4.4 1.8c-.6-2-2-4.4-2-4.4s2-1.6 1.6-2c-.4-.5-1.7 0-1.7 0l1.3-2.6h-1.7l.5-.6-2.7-1.1 1.5-3c-.7-.7-7.8-2.1-7.8-2.1l1.6-1.6s-.8-1.3-1.7-1.3-5.2.1-5.4-.3c0-.4-1.8-2-1.8-2l-2.8 2-1.3-.4-2.4 1s0 1.3-.3.4-2.5-3-2.5-3c-.4.7-3.3 4-3.3 4s-.4 1.8-1.3.5c-1-1.2-3.2-2.6-3.5-1.5-.4 1.1-2.3 2.2-2.8 1.8-.4-.3-2.7 0-2.9.6 0 .7-2.6 2.6-2.6 2.6-1.5-.8-4-.3-4-.3s-.8 1.1-.9 2l-5 1.4zm47.1 42.2v-2.2l2.5 1.7 1.5-1.7 1.9 1.9 1.1-1.9v3l2.8-2.5 1.7.8v-2.4s2-3.4 1.1-4l1.7-.5s-2.8-2.8-3.7-3.3c-.8-.7-2-.7-2-.7s-2.1-2.2-3.6-2.8c-1.3-.5-2.2.6-2.2.6s-.8-1.6-2.3-2c-1.3-.2-1.3 1.2-1.3 1.2s-1-1-2.4-1.6c-1.4-.6-.4 1.3-.4 1.3l-4.8-1.5.6 1.5-4.5-1.1.5 1.6-3-.5-.3 1.3-4.5.9.9 1.4-2.9-1.1v2l-3 1.1 1 1s-4 2-5 2.7c-.8.5 1.7 1.6 1.7 1.6l-4.4-.6 1.6 1.5-4 3.6 2.9 2-1.7 2.5 4.2.8 1.6 2.8 3.5-.6v3.1l5-4s3.6 3.3 4 2.4l.1-3.7h1.8v-2.8l1.4 1.2 2.3-3.4 3 4.2 2.3-5.3 3.3.5zm20.4-12.6l-.5-4.8-1.4 1.5.6-4.5-2.3-.4.8-4.4-1.6-.8.4-2.1 1.6-1.3 3-2.9 7 .1.9-2.3 5 .9c.8.9 3.4-2 3.4-2h1l1.2 2.3s3.6-.6 5.3.6l-2 2.7 3.7.3 2.5.5 2.6-.8 3.3-.2.8 1.3h3.2l-1 1.3 4 1.9-.8.8s2.3.8 4 .8h.8s.8 2-.4 2.8c0 0 1.2 2.9 3.7 3.4s2.5.5 2.8 1.1c.3.5 0 3.4-2.8 3.4v2.8s-2.2 2-2.5 2.8l-1.7-1.2s-1.4 1.7-1.4 2.9c0 0-3.7-4.8-5-5-1.5-.4-1.2 2.7-1.2 2.7l-4-3.4-.5 2.3-3.3-2.8-2 1.4-3.5-3.7-3.5.4 1.4-1.7h-4.2l-.8-3.7-.6 3-2.5-1.6-3.3 3.5s-.4-.4-.9-2c-.5-1.7-2 1.9-2 1.9l-1.1-2.6-1.4 2.6s-1.1-2-2.3-2.6c-1-.5-2.2 3.1-2.5 4.8zm.7 11l.2-1.7 6-2.3 5-2 2.4-1 1.2 2 1.4-2.9 2.3 3 1.3-1.6 2 1.4h1.6l.3 2.2s4.2.3 4.5-.5c.3-.8.8 2.8.8 2.8l4 .5.8 4.5s2 4.2 1.4 5.9c-.6 1.7-2.2-2.2-2.2-2.2s-.3 3-.6 4c-.3.8-5.4-1-5.4-1l-2.1 4.3s-2.3-3.4-3.4-3.4-1.1 3.4-1.1 3.4l-4.8-5.7c-1.4-1.6-1.7 1.7-1.7 1.7s-2.2-3.7-2.2-4.7c0-1.1-2-2.3-2-2.3s-3.4 4-5.9 5c0 0 .3-2.5-.5-3.3-.8-.9-3.3 1.6-3.3 1.6s-1.8-3.8 0-7.8z"/>
+  </g>
+  <g fill="none" stroke="#004b00" stroke-width=".5">
+    <path d="M288.9 132.8l.5 2.1s1.9-.4 3.1-.3c0 0-.3 1.7-.7 2.4 0 0 2.5-.4 3.6.3l-.5 1.3 3 1.2-2.8 2.2s4.4 1.6 5.2 2.8c0 0-2.8 2-3.2 1.9-.4-.2-.1.8.6 1.8l-2.4-.1s1 2.1.9 3c-.1.8-4 .6-4 .6m15-5.6s.7-4.2-.4-5.2c0 0 2.7 2.3 4.5 2.4 1.8 0-.1-3.5-.1-3.5s2.6 1.4 3.8 1.7c1.3.2-1-2.6-1-2.6s.8-1.4 2.9-.1m-48.4-16.6s0-1-.4-1.4c-2.5-3.5 2.6 2.6 3.7 2.8m4.8 0s1.6 1.2 2.5 1.2-.6-3.3-1-3.7c-.4-.5 3 1.3 4.3 1.5 1.3.3 1.5-2 1.5-2s3.8.6 4.7 1m-26.8-.6l-.4-3.2m-25.9 13.6c-.2-.4 1-2.3.5-3.1 0 0 .8.6 1.5.7.6 0 .4-2.4.4-2.4l.9.3s2.1-1 1.7-1.9c-.4-.8 1.5 1.3 1.5 1.3s1.2-1.3 1.2-1.8 1.5 1.3 1.5 1.3 1.5-.3 1.5-1.3 2 .3 2 .3.9-1.1.8-1.9m-21 10.5s.9-2.2-.2-3.7m-25.2 10.5c.1-1 .6-3.8.1-4.2-.5-.5 1 .4 2.3.7m9.9-.4c-1.3-1.3-2-1.9-4-1.9m-17.2 8.8c.4-.7.9-2.5.6-3.5m26.6 55.2l1.4-2.8 1.7 4 1.1-2.5.4.8 2.5-2.7 2.7 4m43.5-17.5l1.7-3.6 2.4 1.3 1.2-3.5 2.5 1.6 1.4-3.2 2.9.7.2-2.3s2 1.1 2.5 2c.6.8 0-2.8 0-2.8l2.3 1s1.6-1.7-.7-2.6"/>
+    <path d="M281.2 174l2.5 3.6 2-2.4 2 4.1 2.3-1.5 3.4 2 1.6-1.2 3.8 2.7 1.5-3.3 3.4 1.1 2.1-3.8m-90-9.8s1.5-2.5 1-3.6c-.7-1.2 3 2 3 2s.8-2.5.3-3.7c-.6-1.1 4.2 3.4 4.2 3.4s.8-3.9 0-4.7c-.9-.9 4.6 1.1 4.6 1.1s2.2-.6 1.3-1.7c-.8-1.2 3.7 1.6 3.7 1.6s1-2.8 0-3.8c-1.2-1.2 3.3 1.3 3.3 1.3l-1.7-3 3.7.2-.3-3.3m32.3 48.1l2.4-1.1 2 2 2.3-3.6 2.8 2.7.5-2.7 3 1.3.6-1.7 3.3 1.7.3-2.4 1.7.5.3-1.7"/>
+  </g>
+  <path fill="#9dd7ff" d="M216.7 318a74.5 74.5 0 01-6.4-13.9l45.1-39.7 45.1 39.6a69 69 0 01-6.5 14.2l-.4.6-3.4-1.3s-1.4 1.3-2.6 1.4c-1.6.2-2.9-1.3-2.9-1.3s-2 1.6-4 1.3c-2-.2-2.8-1.4-2.8-1.4s-2 1.6-3.5 1.3c-1.4-.3-2.3-1.2-2.3-1.2s-1.3 1.5-3 1.2c-1.7-.3-3.3-1.2-3.3-1.2s-2.6 1.1-4.2 1.3c-1.7.3-3.2-1.4-3.2-1.4s-2.1 1.4-3 1.4c-.8 0-4-1.4-4-1.4s-3.2 1-4.3 1c-1 0-4.3-1.3-4.3-1.3s-3 .8-4.4.8c-1.4 0-3.5-.8-3.5-.8s-2.5 1.1-3.9.8c-1.4-.3-2.6-.8-2.6-.8s-2.7 1.1-4.4.8c-1.7-.3-3.7-1.5-3.7-1.5s-.3.9-3.5 1.5h-.1"/>
+  <path fill="#fff" stroke="#000" stroke-width=".7" d="M255.4 218.8v45.6l-45 40a89.8 89.8 0 01-4.8-29v-56.6h49.8"/>
+  <path fill="#ffd83c" stroke="#000" stroke-width=".7" d="M255.4 218.8v45.6l45 40a89.8 89.8 0 004.7-29v-56.6h-49.7"/>
+  <g stroke="#000" stroke-width=".5">
+    <path fill="#730000" d="M226.3 308.5c3.4 1.8 2.3 1.3 9.3 3.8 5.7 2 12.4 2.9 22 2.9a66 66 0 0016-1.4c2.8-.9 3.5-2 3.5-2l-7 7.1s-28 1.5-33.2-1.8a66 66 0 01-10.6-8.6z"/>
+    <path fill="none" d="M267.5 295.3s9 5 0 14.9m-40.3-1.2l12.9-12.3-1.5 16.5m6.8 1.4v-27.5m22 27.5v-29.1m-11 29.7v-31.4"/>
+    <path fill="#ff0018" d="M245.4 288.6l-5.8 1.9 5.8.6v-2.5m11-4.3l-6.2 2.3 6.1.2v-2.5m11.2 1.7l-6.2 2.3 6.2.3V286zm3.6 13.2c-.3-1.2 3.7-1.1 3.7-1.1s1.1 4.2 0 6.8l-3.4-.7s.4-2.8-.3-5z"/>
+    <g fill="#fff">
+      <path d="M229.1 307.4l11-10.7-.5 6.4s-5.7 3.6-5.7 6.2l-4.8-2m5.9 2.3s1.1-3.4 4.2-5l-.3 6.6-4-1.7zm15.7-18.5s4.5-.6 7.8 0c0 0-.5 4.5 0 5.3 0 0-6.1-1.4-8.6.9 0 0-.9-4.2.8-6.2zm-9.5 1.1s4.5-.6 7.8 0c0 0-.8 5-.3 5.9 0 0-5-2.8-7.5-.5 0 0-1.6-3.5 0-5.4z"/>
+      <path d="M240.9 298s4.5-.4 7.8 0c0 0-.5 4.6 0 5.4 0 0-5.8-1.4-8.3.8 0 0-1.2-4.1.5-6.1zm9-.8s6.4-.8 9.8-.3c0 0-1.4 3.7.3 6.2 0 0-7-1.9-9.6.3 0 0-2.2-4.2-.5-6.1zm-9.5 7l8.6.7s-.8 6.3-.3 7.2c0 0-7-1.7-8.3.6 0 0-2.3-5.9 0-8.5zm9.8 0s7.5-.5 11 0c0 0-2 4.8.1 9 0 0-9.8-2.8-11.1-.5 0 0-2.3-5.9 0-8.5zm11.4-13.1s4.5-.6 7.9 0c0 0-.6 4.5 0 5.3 0 0-6.2-1.4-8.7.9 0 0-.8-4.2.8-6.2zm0 6.2s4.5-.6 7.9 0c0 0-.6 4.4 0 5.3 0 0-6.2-1.4-8.7.8 0 0-.8-4.2.8-6.1zm.6 6.4s4.4-.6 7.9 0c0 0-1.2 7-.6 7.8 0 0-5.1-2.4-7.5-.3 0 0-1.5-5.5.2-7.5z"/>
+      <path d="M271.4 304.2s1.5 5.3 3.4 6l-2.5 3s-3-2.2-3.4-4.7c0 0 2-2.3 2.5-4.3z"/>
+    </g>
+  </g>
+  <g stroke="#000" stroke-width=".6">
+    <path fill="#006ac8" stroke="none" d="M293.8 318.6c-7.2 12-19 23.2-38.4 30.2a71.8 71.8 0 01-38.7-30.7v-.1c3.3-.6 3.6-1.5 3.6-1.5s2 1.2 3.7 1.5c1.7.3 4.5-.9 4.5-.9s1 .6 2.6.9c1.3.3 3.8-.9 3.8-.9s2 .9 3.6.9c1.3 0 4.3-.9 4.3-.9s3.3 1.4 4.3 1.4c1.1 0 4.4-1 4.4-1s3 1.4 4 1.4c.8 0 3-1.4 3-1.4s1.4 1.7 3 1.4c1.7-.2 4.3-1.3 4.3-1.3s1.6.9 3.3 1.2c1.7.3 3-1.2 3-1.2s1 .9 2.3 1.2c1.4.3 3.5-1.3 3.5-1.3s.9 1.2 2.8 1.4c2 .3 4-1.3 4-1.3s1.4 1.5 3 1.3c1 0 2.5-1.4 2.5-1.4l3.6 1.1"/>
+    <path fill="none" stroke-width=".5" d="M292 321.3c-1.6.1-1.8-1-1.8-1s-2 1.9-4 1.5a4.6 4.6 0 01-3-1.6s-2.2 1.7-3.7 1.4c-1.5-.2-2.5-1.2-2.5-1.2s-1.4 1.5-3.1 1.2c-1.8-.2-3.4-1.2-3.4-1.2s-2.8 1.1-4.5 1.4c-1.8.4-3.3-1.6-3.3-1.6s-4 1.3-4.9 1.3c-1 0-3.8-1.3-3.8-1.3s-2 1.2-3.2 1.2c-1.2 0-4.5-1.4-4.5-1.4s-3.2.8-4.6.8c-1.5 0-3.7-.8-3.7-.8s-2.7 1.1-4.1.8a14.3 14.3 0 01-2.6-.8s-3 1.1-4.7.8c-1.8-.3-3.9-1.5-3.9-1.5s-.3.8-3.7 1.5h-.1"/>
+    <path fill="#5ac800" d="M227.3 325.6s-.3.6-3 1.2l-.7.2.6-.1-.7.2c3 4.5 7.6 8.5 12.4 11.7 4.8 3.3 10.3 7.1 19.7 9.9a76 76 0 0019-9.7c6.4-4.7 9.8-7.6 13.4-12.4-2.8 1.6-2.4 1.6-3.9 1.4-1.5-.3-2.5-1.4-2.5-1.4s-1.4 1.6-3.1 1.4c-1.8-.3-3.4-1.4-3.4-1.4s-2.3 1.6-4.6 1.5c-1.7-.1-3.2-1.7-3.2-1.7s-4 1.4-4.9 1.4c-1 0-3.8-1.4-3.8-1.4s-2 1.3-3.2 1.3c-1.2 0-4.5-1.5-4.5-1.5s-3.2.8-4.6.8-3.7-.8-3.7-.8-2.6 1.1-4.1.8c-1.5-.3-2.7-.8-2.7-.8s-2.9 1.1-4.6.8a15.7 15.7 0 01-3.9-1.4z"/>
+    <path fill="#ffd800" d="M255.6 348.7c10.2-4.3 12-5.4 18.2-9.2-1 0-4.2-1-3-1.3 0 0-1.3 1.1-2.6 1.1-1.1 0-4.4-1.4-4.4-1.4s-3.2.8-4.6.8-3.7-.8-3.7-.8-2.7 1.1-4.1.8c-1.5-.3-2.6-.8-2.6-.8s-3 1.1-4.7.8c-1.8-.3-3.9-1.4-3.9-1.4s-2.5 1.3-4.1 1.5a57 57 0 0019.5 9.9z"/>
+  </g>
+  <g stroke="#000" stroke-width=".5">
+    <path fill="#b34b00" d="M248.7 265.6c2-1.7 3.2-3.3 2.5-4.5-.7-1-2 .7-3.3.3 0 0-2-1.3-2.6-2.2-1.1-1.3-2.7-2.5-3.5-3.6-1-1-4.4-5.7-9.7-11-1.6-1-1.2-4.7-2.3-5.9-.1-.8-10.6-11.2-14.4-15-1.5-1.1-2.3-1.8-5 .6-2 1.9-2.8 3.8 0 6.2L224 243c2 2 4.8 2.3 6 3.3l13.9 14.3c1.7 1.5 2.6 2.5 1.6 3.8-1.1 2.2 0 2.5.3 2.5.2.1 1.2.1 1.8-.4l1.1-.8z"/>
+    <path fill="none" d="M214 228.3l14.3 14"/>
+    <path fill="#fff" stroke-width=".6" d="M233.4 234.7l1.2-2.7c.2-.4 4-6.6 6-6.7 0 0 12 8.6 12 8.8 0 .4-5.2 8.2-5.7 7.7 0 0-14-6-13.5-7z"/>
+    <path fill="#ccb8c8" stroke="none" d="M241 236.8c-1.6-1.3-4.3-2.5-6.5-4l-1 2c.8 1 10.7 5.6 12.4 6.5 0 0-2-2.2-4.9-4.5z"/>
+    <path fill="none" stroke-width=".4" d="M234.5 232.5c1.3 1 3.7 2.5 5.2 3.4 3 2 4.8 4.3 7 5.5"/>
+    <path fill="#782121" d="M210.3 269.8l27.2-33.7c.5-.5 3-.5 3.3 2.1l-25.7 35.2s-3-.3-4.9-3.6z"/>
+    <path fill="#730000" d="M301.5 270.2c-1 .7-2.5.9-2.5.9-1.8-2-3.3-4.3-5.8-7l-27.1-33.4 2.8-2.7 24.4 28.6c.8.7 5 5.2 9.1 10.5 0 0 .4 2.1-.9 3z"/>
+    <path fill="#fff" d="M275.3 235l-4.4-5.3s-3.3.4-4 2.2c0 0-2.3 4-8.7 4.4 0 0 1.8 7.4 9.2 11.3 0 0 2.7-7.6 5.3-9 0 0 2.7-1.9 2.6-3.7z"/>
+    <path fill="#730000" d="M264.4 258c-.6-.1-1.3 0-2.2.6-.8.5-1.9.3-1.8-.7.1-1 0-.9 1.2-1.6a6.7 6.7 0 015.2-.5l-2.4 2.3m29.7-29.6c-.2-.8-.4-1.5.3-2.4.7-.9.7-2.3-1-1.6-1.8.7-2.5 2.7-1 5.7l1.7-1.7z"/>
+    <path fill="#fff" d="M263.8 258.7l30.8-30.6 7.6 8s-1.6-.5-2.2-.1c-.5.4.6 2 .6 2s-1.4-.6-2-.1c-.8.4 0 2.1 0 2.1s-1.3-.9-2-.5c-.4.4 0 2.4 0 2.4s-1.6-.5-2 0c-.4.3 0 2.1 0 2.1s-1.7-.8-2.5 0 .4 2 .4 2-2-.9-2.9.4c-.8 1.2.1 2.4.1 2.4s-1.7-.8-2-.4c-.5.4 0 2.4 0 2.4s-1.5-.9-2.5.2.1 2 .1 2-1.3-.8-2-.4c-.8.5.2 2.4.2 2.4s-1.4-.9-2.3 0c-1 1 0 2.1 0 2.1s-1.2-1-2.3 0c-1 1.2 0 2.3 0 2.3s-1.7-.8-2.3 0c-.7.8.2 2 .2 2s-1.3-.7-2-.3c-1 .4 0 2.3 0 2.3s-1.3-1.4-1.9-.6c-.6.7.1 2.4.1 2.4s-1.1-1.3-1.7-.6c-.8.6.4 2.2.4 2.2s-2.1-1-1.6-1z"/>
+    <path fill="#7e4b7e" stroke="none" d="M292.8 230.6l-2.4 2.4.6 8.2s.5-2.4 1.2-.7c0 0 .2-2 .7-1.7-.4-.2 0-8.2 0-8.2m-4.5 4.4l-1.8 1.7.6 8.2s.5-3 1.3-.6l-.2-2.8V235m-18.6 18.5l-1.7 1.8.4 5s.6-3.3 1.3-.8l-.2-2.8.2-3.2"/>
+    <g fill="none" stroke="#7e4b7e" stroke-width=".9">
+      <path d="M267.6 232.9a97.5 97.5 0 014.4 5.3m-3-3c-.1.6-.5 2.4-1.5 3.3m2-3c0 .5 0 1.8-1.5 3.2m2.1-2.5c-.2.7-.3 1.3-.8 1.8m1.1-1.2c0 .5-.3.7-.4 1m-3.4-3a25.3 25.3 0 01-5.1 3m4.2-1.8c-.4.4-2.3 1.9-3.3 2.3m3-1c-.6.4-1.6 1.4-2.5 1.7m2-.5c-.5.5-1.1 1-1.7 1.2"/>
+      <path stroke-linecap="square" d="M246.7 239.6l1.7-3c1-1.4 1.4-1.6 2-2.1"/>
+    </g>
+  </g>
+  <path fill="#289400" stroke="#060" stroke-width=".5" d="M146.2 323.6c1.5.7 0-5 .5-7.3.6-2.3 5 5.6 7.3 6.7 2.3 1.1 16.2-5.5 16.2-5.5l3.3-6.3 1.8 5.1s3.9-4.5 5-6.1c1.2-1.7 0 3.3-1.1 5-1.2 1.6 3.3 2.3 2.8 5.6s4.5-2.3 4.5-2.3l12.9 1.2s2.2-7.9 5.6-12.3l1 5 5.4-5.4a70.3 70.3 0 0044 41.8 71 71 0 0043-39l7.1 7.4s5.7-1.7 6.7-2.3a76.8 76.8 0 0116.6 6c1.1.7.3-3.7.3-3.7s6.1 1.1 5.6 4.4c0 0 1.4-3 2.5-3.6 1.2-.5 3.9 2.8 4.5 4 .5 1 13.7 2.7 15.6 3.8 0 0 1.5 1.7 1.5 2.8 0 0 2.8-.3 5-.3 0 0-1.7.8-1.7 2.6 0 1.7-.8 3-2.5 3.9-1.7.8 0 1.4 2.2 1.6 2.3.3 0 3.2-4.5 4.8 0 0-1 2.5.8 3.4 0 0-3.8.3-4.4-.9 0 0-1.4 2.6-1.4 4 0 0-4.2-1.4-5.3-2 0 0-1.7 1.7-.5 2.5 0 0-7.6-.8-9-3.6 0 0-2.8.8-2.3 1.7 0 0-5.3-3.6-7-3.6l-1.1 1.9s-3.6-2.2-4.8-2.2c-1 0-.2 1.6-.2 1.6l-5.1-3-2 3s-4.2-2-5.3-2.8c-1-.8-1.4 1.7-2.2 2 0 0-1.7-2.3-4-2 0 0-.8 2.8-.5 3.7l-7.6-1.7c-1.1-.3-.5 1.4 0 2.5 0 0-4.8-1.3-5.8-2.2l-.3 2.2s-4-.3-4.8-1.1L282 348h-3.6l-.9 3s-7-2-7.6-.8c-.5 1.1.3 2.8.3 2.8l-6.1-.8-.5 2.5s-7.1-2.2-8.8-1.2c0 0-2.2 2.3-3.6 2.8-1.4.7 0-.8 0-.8l-2.2-3s-2.5 1.3-4 .8c-1.3-.6-5.8 2.2-7.3 1.4 0 0 0-2-1.1-2.5-1-.6-3-.6-3.9.8l-2.3-3.3c-1.3-2.3-3.3.2-3.3.2l-.3-2.7-3.9-.3c-2.3-.4-2.8-2.3-2.8-2.3s-6 .6-6.7.3l1.4-1.4s-8.1 1.7-9.8 1c-1.7-.5 1.9-2.7 1.9-2.7l-9-2.2c-1.3-.3-9.4 1.3-10.6 1.3-1.1 0-1.7-1.9-1.7-1.9s-2 1.7-3.6 2.2c0 0-1.4-3.3-.5-3.6 0 0-5.3 1.4-5.6 2.8 0 0-1.4-2.2-1.2-3.1 0 0-2.5 4-3.6 4.8-1.2.8-.2-2-.2-2s-3.2 4-4.3 4.3v-2.9s-9 4.8-11.5 4.2c0 0 0-2 .9-2.5l-5.7-.3c-1.3-.2-3-.8-4.5-1.1-1.3-.3 2-1.7 4.3-1.1 0 0-6.2-2.3-8.1-1.1 0 0-.8-2.3 2.5-3.2 0 0-4.3-4.1-6.8-3.8 0 0 2.8-1.7 5.1-.9 0 0-2.6-7-4.2-7.9 0 0 5.9-1 7.6-.2z"/>
+  <path fill="#730000" stroke="#000" stroke-width=".5" d="M137.5 201.4l75.8-39.3c.4-2-.8-3.6-2-5.2-21.6 10.6-41.4 23.5-65.5 31.4-1.3.5-13.3 5.5-19.5 12.9-1.9 2-2 4.8-2 4.8s.1 3.3.8 4.2c0 0 .2 1 1.3 1.7 0 0 .7.3 1.2.1.6.1 1.4.1 2.7-2a56 56 0 017.2-8.6z"/>
+  <path fill="#fff" stroke="#000" stroke-width=".5" d="M198.5 162.5l9.8-4.7s3.4 2.5 3 5.3c0 0 .8 6.5 8.8 11 0 0-6.8 8.4-18.6 9.2 0 0 1.3-11.2-1.2-14.4 0 0-.4.4-.2-.2.3-1-.2-4.8-1.8-5.6-.2 0 .2-.4.2-.6z"/>
+  <path fill="none" stroke="#7e4b7e" stroke-width=".8" d="M210 163.9c-2 .8-8.8 4.4-8.8 4.4m5.6-2.3c-.1 1-.8 3.5 0 5.3m-1-5c0 .5-.8 2.4.1 4.9m-1.1-4.4c-.2 1-.4 1.7 0 2.8m-.8-2.2c-.2.6 0 1 0 1.4m6.1-1.7a41 41 0 004.8 7m-4.4-5c.3.8 1.9 3.8 3 5m-3.2-3.2a18 18 0 002.1 4m-2-2c.1.9.5 2 1.2 2.6"/>
+  <g stroke="#000" stroke-width=".5">
+    <path fill="#b34b00" d="M279.8 158.2l27.8 13.6c5.6 2.7 7.6.2 10.8 1.6l55 28c4.7 2 7.3 2.7 6.6 5.1 0 4 1.9 4 2.4 4 .4.1 2.3-.1 3-1.2l.6-.7c.7-.6.5-.7.7-1 2.3-3.3 3.6-6.2 1.2-8-2.8-1.4-3 1.6-6 1.3 0 0-5.2-2-7-3.4-3.5-1.8-8.4-4-9.5-5.3-3.5-.7-29.9-15.5-44.9-23-1.6-1.3-2.4-6.3-5.6-8-1-1.3-21.2-10.6-31.8-15.9-3.9-1.4-6-2.4-8.9 2.4-2.4 4.7-1.8 7.2 5.6 10.5z"/>
+    <path fill="none" d="M282.1 152.3l31.2 15.6"/>
+  </g>
+  <g fill="#ffa54b" stroke="#000" stroke-width=".5" transform="translate(-128) scale(1.024)">
+    <path fill="url(#c)" d="M309.7 165.1c-.2.6-.7.2-.7.4-.4 2.2-.3 3.3-.8 4.5a7.1 7.1 0 01-3.1 2.6c-2 .7-4.5 3.1-8.5.9l-.6-.5s1.1 4.1-3 6.2l-15.7 8.2s-1.5 2.8-.5 6.5c0 .6.3 1.1-.3 1.5-1 .7-2.7 2.8-3.7 6 0 0-3-1.3-3-3.2 0-2 1.2-3 1.5-4.4.3-1.3 1-4.7.7-5.7-.4-1.1-2.3-1.5-3-2-.6-.3-1.4.5-1.3 1.4.1 1 .8.8 1.6 1 0 0-.9 2-.8 3.4l-9.2 4.8 1.6 2.3c.4.7 1.3 10.2 4 14.7s3.7 3.2 4.3 3.8l2 2c.8.5 4 .8 4.5-1a9 9 0 013.2-4.1c2-1.6 6-5.4 6-7.2 0 0 2.3 6.8 2 12.4 0 0 8.5 1.7 16.1 1.9 7.6 0 11.5-1.5 11.5-1.5s1-6.4.6-7.7c0 0 1.2 4.2 2.2 5.6 1 1.8 2.1 5.3 4.3 5.5 2.2.1 4-2.1 4.2-3v-6.8h8.7s3.8 1.5 5 1.3c1.3-.1 2-1.3.8-1.7l-.4-.3c1.2 0 2.6.7 2.6.7h4.3l-.1-.5c-.3-1.2-2.6-2.2-4.2-3-1.6-.5-3.5-1.2-4.7-1.3a20 20 0 00-6.2.4c-.8 0-3.9.4-5.8 1.3-.5.3-1 .4-.8-1 .3-1.3.2-7.8-1.3-10.5-1.2-2-1-3.6-.9-5.2a87 87 0 000-8.8c-.3-1.7-2.5-4-6.6-4.4-3.8-.5-7-3.7-7.3-6.2-.3-2.6.4-7.2.8-9.3"/>
+    <g fill="none">
+      <path fill="url(#d)" d="M292.4 153.6c-.7 3.3-.7 6.1-.6 9.3.1 2.1 1.1 4.6 2 6.7a10 10 0 002.8 3.9c3.6 2.3 7-.2 8.9-1a6.4 6.4 0 002.7-2.5c.5-1.2.3-2.1.8-4.5l.7-.4c1-1.5.7-2 1.2-3 .6-1-.5-2.2-1.8-2 .6-1.9 1-4 .4-5.9-.2-.6.5-2.2-.6-1.8-4.6 1.8-10 1.4-14.8 1.4-.4 0-.8-.8-1.4-.7l-.3.5"/>
+      <path fill="#000" d="M292 155.3c-.5-.4-.6-1.3 0-3.2.7-2 0-2 1.1-3.2s.9-1.6 1.6-1.9c.7-.2 2.8-.2 3.5-.5a11 11 0 019-.3c1.5.8 2.5 2.8 3.4 3.6 1 .7 1.7 3.6 1.5 7.9-.3 4.3-1.2 3.5-1.2 3.5s-1.2-2-2.2-.3c0 0 0-1.7.2-3 .1-1.1-.6-3.4.1-4.9 0 0-5.8 1.8-8.7 1.7-3-.2-7.4-.9-7.6-1.6l-.7 2.2"/>
+      <path fill="#fff" stroke="#fff" d="M295 151.8c-.3-.6-1.8-2.9-.6-3.6 1-.6.4 2.8 2 3.5 0 0-.6 1.5-1.4.1z"/>
+      <path d="M298.3 160.1l-.9 3.2m10.6 1.6c.2.6.4.3 1 .4m.3-4c.5-.5 1.2-.2.8 1.3m-17.7-4.9l2.8 1c1.5.6.6 2.9.2 4.3-.2.7-1 2-.6 2.5.5.8 1.1.3 2 .4 0-.3.6-.5.8-.5.7 0 1.1.5 1.7.3.6-.3.5-1.2.3-1.7m-.1-4.5c0-.4 1-.8 1.5-.9 2.1-.4 3.6-.7 5.4.5m-5.7 11.1c-1.8.4-3.6.7-5.2-.2m0-.8c.8-.4 1.1-.8 2.1-.3a5 5 0 011.1-.4c.8 0 1.4.3 2.2.8m-5.5.3c1-.3 3.3-.3 5.4.1"/>
+      <path fill="#fff" stroke-width=".3" d="M292.3 160.1c.7 0 1.6-.9 3.2.3 1.1.8-1.8 1.5-1.3 1.4-1.4.2-1.8-.5-1.9-1.2 0-.1-.2-.5 0-.5zm8.4.8c.7-1.4 1.8-1 2.8-.8 1 .3.7.1 1.7.7-1.2.1-.9.2-1.7.6-.9.5-1.7.7-2.3.3-.2-.2-.7-.5-.7-1 0 .2 0 .3.2.3z"/>
+      <path fill="#000" stroke-width=".3" d="M293.8 161.4c.4 0 .7-.4.7-.8 0-.6-.3-1-.7-1-.5 0-.9.4-.9 1 0 .4.4.8.9.8zm8.6.2c.4 0 .7-.4.7-1a.8.8 0 00-.8-.8c-.4 0-.7.3-.7.8 0 .6.4 1 .8 1z"/>
+    </g>
+    <g id="g">
+      <g fill="none">
+        <path d="M345.9 213.7a3.9 3.9 0 00-1.9-1.4l-2-1c-.7-.4-1.7-.5-2.4-.9m.5 2.6l-.9-.5c-.3 0-.7 0-1-.2 0 0 0-.2-.2-.2a3.5 3.5 0 01-2.4-1.3m-62.8-9.3c1 .7 3.2 2.2 3.4 5.1a10.5 10.5 0 001 3M264 202c.5 1.7.6 7.4 6 13.4m-5-21.4c-.4 1.1-1 2.2.2 3m14.4 10.7c1.1-2.6 4.6-2.4 4.6-4.8"/>
+        <path d="M284.8 207.3c-.3-2.9-1-4.5-.4-8.7.2-1.2.4-5.9 0-8.1 0 0 1.6 7.8-3.7 9.3m34.4 12.5c0-4 1-6.2 1-6.2 1.2-5.6-1.2-7.7-.3-9.1.9-1.2 2-3.8.5-8.9 0 0 2.8 10.5-4.5 10.5-7.5 0-7.2-2.7-7.2-2.7"/>
+        <path d="M284.4 190.5c0 2 0 8.4 9 8.4 2.8 0 5.8-2 7.4-3.3m2.2-2.7c-.3-2-.3-4.4-.3-7m-13.6-3.4c2.4-.3 4.4-.6 9-.6m.2-6.3c.5 2.2-.3 5.8 4 6.3m4.3-7.1c-.6 1.6-.6 3.3-.8 4.4m.2 2.7c1.7 0 5-1.1 9-.3m1.4 22.8c.9 1.6 1 3.8 3.6 6.2m-31.7-11.4c.2 1.3-1.8 5.7-.3 9.3a12.3 12.3 0 01-1.2 11m6.7-19c-.9 1.7-2.3 3.3-2.6 4.7m6.6-1.6c0 1-2.7 8.7-4.7 10.9 0 0 3.6 1.4 3 6.6m7.4-21c0 1.2-.2 1.6 1 2.4m2.4 0c1.3 1.6 5.5 6.5 4.6 9.2m-7.4-6.5c.3 1 .3 6.3-.6 9m-2.1-.2c-1.1 0-2.8.8-3 2.7m8.7-3c1.1-.3 3.3 1.6 3.3 7m15.7-10.2c-2.1.6-3 1.7-2.4 1.1-1.1 1-2.2 1.6-2.2 1.6"/>
+      </g>
+      <path fill="#000" stroke-width=".3" d="M289.8 198c.6 0 1.1-.4 1.1-1 0-.3-.5-.7-1.1-.7-.5 0-1 .4-1 .8 0 .5.5.9 1 .9zm23 .3c.6 0 1.1-.4 1.1-1 0-.4-.5-.7-1-.7-.6 0-1.1.3-1.1.8s.5.9 1 .9z"/>
+      <path fill="#fff" d="M280.5 239.8c1.3-8 5-14.5 5.1-15.2 0 0 3.9.9 10.6 1.5 6.6.7 8.4.4 11.5.2l6.8-.8s1.2 2.4 1.3 4.8c.3 5.2 2.3 27.7 2.5 33.7 0 0 .8 3.6.8 12.3 0 9.6 2.6 29 2.6 39.4l-2.6.5s-14.5 1.1-14.5-.8c0-2.1-.8-27 1.4-42.1 0 0-.5-3-1.4-5.5-.8-2.5-4.3-10-4.3-11.7 0 0-5.7 16-6 18.8-.3 2.6-1.2 38.4-1.7 41.3 0 0-8.2 6.3-9.3 7-1.1.4-9-3.4-9.3-4.4a211 211 0 014.6-33.2c1.4-7.1.6-8.4.6-10.4s.1-27.5 1.3-35.4z"/>
+      <path fill="none" d="M294.3 275c-.6 2.2-1.7 4.3-3.6 5.7m-2.7-53.6c-.3 1.3-2.3 7.3-7.2 10.9m14.3-9.8c-1.1 3.6-5.5 22.7-6.3 45.4m-.3 7.1l-1.7 20.8m-.8 3a71.3 71.3 0 00-2.7 18.7m32.2-36c-.2 2-1 15.7 3.6 28m-18.5-86c-.3 2.3-.8 16.7-.8 17.8 0 1.2 1.6 2.8 2.4 3 0 0-1.6.6-2 6m-4-12.8c-.3 1.7-2 8.5-3 11.3m13-25.5s5 1 5.3 0c0 0 1.6 29.5 3.8 46m-11.2-42.2l-.6 16.5m2.5 2.1s1.9 2.8 1.4 4m-17.8-28l3 .8m5.2 1.6c-.3.9-.6 4.6-.6 4.6m8.8 38.9c.6.8 1.4 2 .8 4.4"/>
+      <path fill="#9b5f00" d="M285 224.4s0-3.2 1.1-4.8c0 0 3.5.7 8.4 1.2 5 .5 9 .9 12.6.5 3.7-.4 7.4-1.3 7.4-1.3s1 4.8.5 5.5c0 0-4 .8-8.3 1a86 86 0 01-14.5-.8 57 57 0 01-7.3-1.3z"/>
+      <path fill="#fff" d="M288 224.8l.7-4.8h1l-.2 5.1-1.4-.2m22-4.1l.1 5.5 1.3-.2-.1-5.6-1.3.3m-15.6 0l-.4 5.3h.7l.7-5.3h-1"/>
+      <path d="M276.8 320.8c-.3 1.3-.8 3.2-1 5.5 0 .5-.6 3.3 1 3.4 1 0 1.4-2.9 1.4-2.9s-1 3.3.3 3.7c1.8.4 2-3.6 2-3.6-.2 1.1-1.4 4 .3 4.3 1.9.3 2.4-3.9 2.4-3.9s-1.6 4.2.3 4.3c1.7 0 1.7-4 1.7-4s-.9 5 1.5 4.5c1.4-.2 1.7-2 2-3 .4-1.5 1.3-3.4.2-6.6-.8-2.3-.5-3-.5-3s-2.9 2.2-5.1 3.6c-1 .6-6.5-2.3-6.5-2.3zm29.7-4.4c-.5-.3-.4 1.9-.6 2.9-.1 1 .2 3.2 3.6 3 3.4-.3 6.7-1 8.9-.5 2.1.6 5.3.7 7 .7 1.7 0 2.8-.2 3.7-.5.7-.3 2.2.4 3 .4s1.7-1 1.6-1.8c0-1.3-1.3-1.3-3-1.4a22 22 0 01-5-1c-1.1-.3-3.1-1.5-5.7-2l-5.9.2c-1 0-7 .3-7.6 0z"/>
+    </g>
+    <g fill="none">
+      <path fill="#ffb366" d="M255.7 189.8c-.5.3-1.1-2 .4-2.9 0 0 .4-2 2-2.1 0 0 1.4-1.9 3.3-1.7 0 0 2.2-1.5 3-1.3.9.1 3 2.1 3 2.9.2.7 0 1.9-.5 2.4-.6.6-1-.1-1.1-1 0 0 .4 1.6-.8 2.2-1.2.7-1.1.2-1.2-.6 0 0-.4 1.6-1.2 1.9-.8.3-1.3-.5-2-.5 0 0 1.1.9.4 1.5-.7.5-1.5.3-2-.1-.5-.5-1.2-1.9-3.3-.6z"/>
+      <path d="M265.7 186c-.5-1.5-2.2-3-4-2.8m2.2 4.4c-.3-.4-.4-.8-.8-1.2-.9-1.5-2.8-1.4-4.4-1.8m2.4 4.5c-.6-.4-.8-1.2-1.4-1.5-1-.4-2-.9-3.3-.7"/>
+    </g>
+  </g>
+  <g stroke="#000" stroke-width=".5" transform="translate(-128) scale(1.024)">
+    <path fill="url(#e)" d="M439.1 165.1c.7-.3.5.6.6 1 .4 1.3.4 2.7.9 3.9.6 1.1.8 1.5 1.8 2 1.6 1 6.4 3.6 9.8 1.5a3.1 3.1 0 00.7-.5s-1.3 4.1 3 6.2l15.6 8.2s1.5 2.7.6 6.5c-.2.6-.4 1.1.2 1.5 1 .7 2.6 2.8 3.8 6 0 0 3-1.3 3-3.2 0-2-1.3-3-1.6-4.4-.2-1.3-1-4.7-.6-5.7.4-1.1 2.1-1.5 2.8-2 .7-.3 1.6.5 1.3 1.4 0 1-.8.8-1.6 1 0 0 1 2 .8 3.4l9.4 4.8-1.6 2.3c-.5.7-1.5 10.2-4.2 14.6-2.8 4.5-3.7 3.3-4.2 4l-2.1 1.8c-.6.5-3.8.9-4.5-.9a9 9 0 00-3.1-4.1c-2-1.6-6-5.4-6-7.2 0 0-2.3 6.8-2 12.4 0 0-8.4 1.7-16.2 1.9-7.6 0-11.5-1.5-11.5-1.5s-1-6.4-.6-7.7c0 0-1.2 4.2-2 5.6-1.1 1.8-2.2 5.3-4.4 5.5-2.2.1-4-2.1-4.2-3v-6.8h-8.7s-3.8 1.5-5 1.3c-1.3-.1-1.9-1.3-.9-1.7l.4-.3a7 7 0 00-2.5.7H402l.1-.5c.3-1.2 2.6-2.2 4.3-3 1.6-.5 3.3-1.2 4.6-1.3 1.9-.2 3.2-.1 6.2.4.8 0 4 .4 5.8 1.3.5.3 1 .4.8-1-.3-1.3-1.2-5.5.3-8.3 1-1.9.9-3.5.8-5.2-.2-1.7-1.1-5.6-1.1-7.3 0-5.7 4.4-8 8.2-9.2 4.3-1.4 7.1-2.8 7-5.3-.2-2.7.5-7 .1-9"/>
+    <g fill="none">
+      <path fill="url(#f)" d="M456.3 153.6a20 20 0 011.2 5.3c0 1.2-.5 1.4-.1 2.8.7 2.4-.8 5-2.5 8-.8 1.2-1.4 3-2.7 3.8-3.4 2.1-7.5-.4-9.6-1.3a3.7 3.7 0 01-2-2.2c-.4-1.2-.5-2.3-.8-4 0-.3 0-1.2-.6-.9-1.3-1.4-1-2-1.6-3-.5-1 1-2.2 2-2a10 10 0 01-.2-5.9c.2-.6-.6-2.2.5-1.8 4.5 1.8 10 1.4 14.8 1.4.4 0 .7-.8 1.3-.7l.3.5"/>
+      <path fill="#000" d="M456.8 155.3c.4-.4.1-2.3-.4-4.3-.1-1-1-1.5-2-2.6s-1.6-1-2.3-1.4c-.6-.2-2-.2-2.8-.5-.6-.3-2.2-.1-3.7.1-2 .3-3.2.2-4.7 1s-2.8 1.8-3.3 3.3c-.4 1-1 2.5-.8 6.8.2 4.3 1 3.5 1 3.5s1.1-1.7 1.9-.6l-.3-3.6c-.1-1.2 0-2.8.5-4.6 0 0 4.6 1.7 9 1.7 3 0 7-.3 7.1-1l.7 2.2z"/>
+      <path d="M450.4 160.1c.7 1.8.1 1.3.4 2.4m-10.2 2c0 .8-.6.6-1 .6"/>
+      <path d="M456.9 158.8c-1-.7-2.7-.2-3.5.1-1.5.7-.7 2.3-.2 3.7.2.7 1 1.7.5 2.4-.4.8-.7.4-1.6.5 0-.3-.8 0-1.1 0-.6 0-1 .4-1.5.2-.6-.3-.5-1.2-.3-1.7m.1-4.5c0-.4-1.3-.8-2.7-.9-2.3 0-2.5.1-4.2 1.3m11.5 9c-.4-.6-1-1-2.1-.4 0-.2-1.6-.4-1.6-.4-.8 0-1.3.3-2.1.7m5.6.6c-1-.6-3.3-.2-5.6-.2m.2.8c1.7.5 3.5.8 5.2 0"/>
+      <path fill="#fff" stroke-width=".3" d="M456.4 160.1c-.7 0-1-.9-3.1.3-1.1.7 1.8 1.5 1.4 1.4 1.2.2 1.6-.5 1.7-1.2 0-.1.2-.5 0-.5zm-8.3.8c0-.8-1.8-1-2.9-.8-1 .3-.5.1-1.5.7 1 .1.7.2 1.6.6.9.5 1 .9 2.3.3.3-.1.7-.5.8-1 0 .2-.2.3-.3.3z"/>
+      <path fill="#000" stroke-width=".3" d="M455.1 161.4a.8.8 0 01-.8-.8c0-.6.3-1 .8-1 .4 0 .7.4.7 1 0 .4-.3.8-.7.8zm-8.7.2c-.4 0-.7-.4-.7-1 0-.5.4-.8.8-.8s.7.3.7.8c0 .6-.3 1-.8 1z"/>
+    </g>
+    <use width="100%" height="100%" fill="#730000" transform="matrix(-1 0 0 1 748.8 0)" xlink:href="#g"/>
+    <g fill="none">
+      <path fill="#730000" d="M491.6 193.5c.5.2 2-2 .5-3 0 0-.5-2-2-2 0 0-1.4-2-3.4-1.7 0 0-2-1.5-2.9-1.4-1 .2-3 2.2-3 3-.2.5 0 1.8.5 2.4.6.5 1-.1 1-1 0 0-.3 1.5.9 2.2 1.2.7 1.1 0 1.2-.7 0 0 .3 1.6 1.1 2 .9.2 1.4-.5 2-.5 0 0-1 .8-.3 1.3.7.6 1.5.3 2 0 .6-.5.3-1.8 2.4-.6z"/>
+      <path d="M482.5 189.8c.5-1.8 2.2-3.2 4-2.9m-2 4.4c.1-.4.2-.8.5-1.2 1-1.6 3-1.6 4.6-1.9m-2.5 4.5c.6-.4.8-1.1 1.4-1.4a5.3 5.3 0 013.2-.7"/>
+      <path fill="#730000" stroke="none" d="M482.3 186.8c-.9.7-1.8 1.8-1.9 2.2 0 .7 0 1.9.5 2.5.6.5 1 0 1.1-.8 0 .5 0 1.5.8 2 1.3.7 1.2.1 1.3-.7 0 0 .3 1.6 1 2 .9.2 1.4-.5 2-.5 0 0-1 .8-.3 1.3.7.6 1.5.3 2 0 .6-.5.3-1.8 2.5-.6.2.2.8-.4 1-1.1l-7.7-5.5-2.3-.8z"/>
+      <path d="M480.7 188.2c-1.5 2.6.5 4.1 1.1 2.6-.1 2.4 1.7 2.3 2.3 1.5.7 2.5 1.9 1.4 3 1.2-1.3 2.3 1.4 1.6 2 1 1-1.3 1.4-.2 2-.3l1.3-1.3m-8-5.7c-1.7 1-2.5 2.2-2.6 3.7m5-2.2c-1.8 1-2.6 2.2-2.6 3.7m5.4-1.7c-1.7.9-1.8 1.7-2.5 2.8"/>
+    </g>
+  </g>
+  <path fill="#5ac800" d="M169 331.4l-.1-4.8 2 1.7.5-3.6c.8-.2 2.2 1.4 2.2 1.4l-.3-3.6 3 3.3s-.1-2.8.9-4.5c0 0 2.3 2 2.3 4.3 0 2 2-2.8 2-2.8l1.6 5.3 1.4-2 1.1 4.2 2.5-3.7 2 4.3 4.5-.3.5 2.5 2-2.2 2.6 1.7s2.2-.7 3.3-.7 2.5 1.5 2.5 1.5.8-1.5 1.7-2c.8-.5 2 .9 2.3 1.7l1.6-3s2.2 2.2 2.5 3c0 0 .3-2.5.9-3.3.5-.9 1.3.3 2 1.3l1.3-4.5s1.5.3 2.5 2c1.1 1.7 1.1-2.5 1.1-2.5s2.5 3.3 3.2 5.6c0 0-17.3 6-29.4 4.3a318.4 318.4 0 01-26.1-4.6m118.2-.5s.8-2.3 2-3.4c0 0 2.2 2.6 2.2 3.4l1.7-1.1 1.7 1.6 2-1.3 1.9 1.6 3.4-1.4 1.4 1.4 5.3-.6 2 .9 1.8-2.4 1.8 1.8 2.8-2.8s1.4 1.2 1.7 2c0 0 2.3-1.1 2.8-2 0 0 2.2-.8 2.5.5 0 0 1.3-1 1.2-2.1 0-1.2 1.6-.4 2.1 1 0 0 .6-2.2 2.3-2.4 0 0 1.2 1.3.8 3.9 0 0 2.5-2 3.7-2.2 0 0 .5 2.8-.3 5.3 0 0 2.6-4.3 3.1-2.8.2.8.8 3.6.2 5.6l2.3-1.5.8 2.8 2.5-.5s-14.8 2.3-28.7 1c-14-1.4-27-6.3-27-6.3M277 341.3c.7-.5-4.7 11-17.6 11.5-18 .9-33.3-8.1-33.3-8.1s1.8-3.1 3-4c0 0 2.5 2 3.3 4.5 0 0 .3-1.7 1.2-3.1 0 0 3 1.4 3.6 3.4 0 0 1.1-2 2-2.5.8-.6 1.7 2.2 1.7 3.9 0 0 2-2.1 3-2.2 0 0 2.3 1 2.9 4.7 0 0 2-2 2.8-1.7 0 0 2.5 1.7 1.9 4-.3 1.2 2.5-1.5 6-2.3l3 2.3 3.6-5s2.3.8 2.3 2.2c0 0 1-4 1.8-4.4.9-.5 2 1.2 2 2.4 0 0 .3-3 2-3.7 0 0 1.7 1.2 1.7 2.3 0 0 1.7-3.4 3-4.2z"/>
+  <path fill="none" stroke="#060" stroke-width=".5" d="M169 331.4l-.1-4.8 2 1.7.5-3.6c.8-.2 2.2 1.4 2.2 1.4l-.3-3.6 3 3.3s-.1-2.8.9-4.5c0 0 2.3 2 2.3 4.3 0 2 2-2.8 2-2.8l1.6 5.3 1.4-2 1.1 4.2 2.5-3.7 2 4.3 4.5-.3.5 2.5 2-2.2 2.6 1.7s2.2-.7 3.3-.7c1.2 0 2.5 1.5 2.5 1.5s.8-1.5 1.7-2c.8-.5 2 .9 2.3 1.7l1.6-3s2.2 2.2 2.5 3c0 0 .4-2.5.9-3.3.5-.9 1.3.3 2 1.3l1.3-4.5s1.5.3 2.5 2c1.2 1.7 1.2-2.5 1.2-2.5s2.5 3.3 3 5.6m62.8-.8s.8-2.3 2-3.4c0 0 2.2 2.6 2.2 3.4l1.7-1.1 1.7 1.6 2-1.3 1.9 1.6 3.4-1.4 1.4 1.4 5.3-.6 2 .9 1.8-2.4 1.8 1.8 2.8-2.8s1.4 1.2 1.7 2c0 0 2.3-1.1 2.8-2 0 0 2.2-.8 2.5.5 0 0 1.3-1 1.2-2.1 0-1.2 1.6-.4 2.1 1.1 0 0 .6-2.3 2.3-2.5a5 5 0 00.8 3.9s2.5-2 3.7-2.2c0 0 .5 2.8-.3 5.3 0 0 2.6-4.3 3.1-2.8.2.8.8 3.6.2 5.6l2.3-1.5.8 2.8 2.5-.5m-117 8.5s1.8-3.1 3-4c0 0 2.5 2 3.3 4.5 0 0 .3-1.6 1.2-3 0 0 3.1 1.4 3.6 3.3 0 0 1.2-2 2-2.5.8-.6 1.7 2.2 1.7 3.9 0 0 2-2 3.1-2.2 0 0 2.2 1 2.8 4.7 0 0 2.1-2 2.8-1.7 0 0 2.5 1.7 1.9 4-.3 1.2 2.5-1.5 6-2.3l3 2.3 3.6-5s2.3.8 2.3 2.2c0 0 1-4 1.9-4.4.8-.5 2 1.3 2 2.4 0 0 .3-3 2-3.6 0 0 1.6 1.1 1.6 2.3 0 0 1.8-3.5 3.1-4.3"/>
+  <g fill="#fff">
+    <path d="M255.4 386a75 75 0 0045-13.4c17.7-12 21.5-12.4 24.4-12.2 3.3.3 8.2 1.5 8.4 4.4.4 4.4-7 6.4-11.1 6.4-4.3 0-15.4-2.8-15.4-2.8l-3 2c2 1 24.9 8.5 29.2 1.4 4.5-7.3 9-19.1 9-19.1s-5-9-16.1-9c-11.3 0-22.3 7.1-29.5 12.4-7.3 5.3-16.5 12.6-40.9 12.6s-33.6-7.3-41-12.6c-7.2-5.3-18.2-12.4-29.3-12.4-11.2 0-16.3 9-16.3 9s4.5 11.8 9 19c4.4 7.2 27.2-.4 29.2-1.3l-2.8-2s-11.3 2.8-15.4 2.8c-4.3 0-11.6-2-11.3-6.4.2-3 5.1-4 8.4-4.4 3-.2 6.7.2 24.5 12.2a76.8 76.8 0 0045 13.4"/>
+    <path d="M217.7 358.4s0-2-.3-4.9c-.4-3.7-2.6-4.7-4.4-4.2-1.1.5-3.4 3.3-3.4 3.3a33.1 33.1 0 00-3.2-1.9 21 21 0 016.7-3.9c1 0 15.5 5.9 20 9.8 1.2 1 2 7.5 1.4 9.6a49.5 49.5 0 01-16.8-7.7m-6.9 14.5s-3 3.1-3.2 8.9c-.1 6.7 4.8 7 8 7 3.9-.2 7-2.4 6.9-9.5 0 0-6.4-2.7-11.7-6.4m82.2-14.6l.5-4.9c.4-3.7 2.5-4.7 4.2-4.2 1.2.5 3.5 3.3 3.5 3.3a33 33 0 013.2-1.9 20 20 0 00-6.7-3.9c-1.1 0-15.5 5.9-20 9.8-1.1 1-2 7.5-1.4 9.6a48.5 48.5 0 0016.7-7.7m7 14.5s3 3.1 3.1 8.9c.2 6.7-4.8 7-8 7-3.8-.2-6.9-2.4-6.9-9.5 0 0 6.4-2.7 11.7-6.4"/>
+  </g>
+  <path fill="#69f" d="M204 368.4s-11 2.8-15.2 2.8c-4.3 0-11.6-2-11.3-6.4.2-3 5.1-4 8.4-4.4 2.5-.2 5.8.1 18.2 8m102.6 0s11.1 2.8 15.4 2.8c4.2 0 11.5-2 11.1-6.4-.1-3-5-4-8.4-4.4-2.5-.2-5.7.1-18.1 8m-89-9.9l-3.3-2.5-4.8-3.3s2.3-3 3.4-3.2c1.8-.7 4 .3 4.4 4 .3 3 .3 5 .3 5m-7.6 29.4c2 1.2 4.2 1 5.5 1 3.9-.2 7-2.4 6.9-9.5 0 0 4.8 2.4 12.6 4.2 0 0 1.3 1.6 1.5 4.7.3 2.6-1.5 5.4-3.6 5.2l-17.6-3.1c-3.8-.7-5.3-2.5-5.3-2.5m83-29.4l3.4-2.5 4.7-3.3s-2.3-3-3.5-3.2c-1.7-.7-3.8.2-4.2 4a95.5 95.5 0 00-.5 5m7.6 29.4c-2 1.1-4.1 1-5.5 1-3.8-.2-6.9-2.4-6.9-9.5 0 0-4.8 2.4-12.5 4.2 0 0-1.3 1.6-1.5 4.7-.2 2.6 1.5 5.4 3.5 5.2l17.6-3.1c3.9-.7 5.3-2.5 5.3-2.5"/>
+  <g fill="none" stroke="#000" stroke-width=".7">
+    <path d="M255.4 386a75 75 0 0045-13.4c17.7-12 21.5-12.4 24.4-12.2 3.3.3 8.2 1.5 8.4 4.4.4 4.4-7 6.4-11.1 6.4-4.3 0-15.4-2.8-15.4-2.8l-3 2c2 1 24.9 8.6 29.2 1.4 4.5-7.3 9-19.1 9-19.1s-5-9-16.2-9-22.1 7.1-29.4 12.4c-7.3 5.3-16.5 12.6-40.9 12.6s-33.6-7.3-41-12.6c-7.2-5.3-18.2-12.4-29.3-12.4-11.3 0-16.3 9-16.3 9s4.5 11.8 9 19c4.4 7.2 27.2-.4 29.2-1.3l-2.8-2s-11.3 2.8-15.4 2.8c-4.3 0-11.6-2-11.3-6.4.2-3 5.1-4 8.4-4.4 3-.2 6.7.2 24.5 12.2a76.7 76.7 0 0045 13.4z"/>
+    <path d="M204 368.4s-11 2.8-15.2 2.8c-4.3 0-11.6-2-11.3-6.4.2-3 5.1-4.1 8.4-4.4 2.5-.2 5.8.1 18.2 8zm102.7 0s11.1 2.8 15.4 2.8c4.2 0 11.5-2 11.1-6.4-.2-3-5-4.1-8.4-4.4-2.5-.2-5.7.1-18.1 8zm-89-9.9a100 100 0 01-3.3-2.5l-4.8-3.3s2.3-3 3.4-3.2c1.8-.7 4 .3 4.4 4 .3 3 .3 5 .3 5z"/>
+    <path d="M217.7 358.4s0-2-.3-4.9c-.4-3.7-2.6-4.7-4.4-4.2-1.1.5-3.4 3.3-3.4 3.3a34 34 0 00-3.2-1.9 21 21 0 016.7-3.9c1 0 15.5 5.9 20 9.8 1.2 1 2 7.5 1.4 9.6a49.7 49.7 0 01-16.8-7.7m-6.9 14.5s-3 3.1-3.2 8.9c-.1 6.7 4.8 7 8 7 3.9-.2 7-2.4 6.9-9.5 0 0-6.3-2.7-11.7-6.4z"/>
+    <path d="M213.4 374.6s-2.5 2.6-2.9 6.8c-.2 3.4 2 5.2 4.8 5 4-.2 5.5-5.6 3.7-8.6l-5.6-3.2"/>
+    <path d="M210.1 387.9c2 1.1 4.2 1 5.5 1 3.9-.2 7-2.4 6.9-9.5 0 0 4.8 2.4 12.6 4.2 0 0 1.3 1.6 1.5 4.7.3 2.6-1.5 5.4-3.6 5.2l-17.6-3.1c-3.8-.7-5.3-2.5-5.3-2.5zm83-29.4l3.4-2.5 4.7-3.3s-2.3-3-3.5-3.2c-1.7-.7-3.8.2-4.2 4l-.5 5z"/>
+    <path d="M293 358.4l.5-4.9c.4-3.7 2.5-4.7 4.2-4.2 1.2.5 3.5 3.3 3.5 3.3a34 34 0 013.2-1.9 20 20 0 00-6.7-3.9c-1.1 0-15.5 5.9-20 9.8-1.1 1-2 7.5-1.4 9.6a48.7 48.7 0 0016.7-7.7m7 14.5s3.1 3.1 3.2 8.9c.2 6.7-4.8 7-8 7-3.9-.2-6.9-2.4-6.9-9.5 0 0 6.4-2.7 11.7-6.4z"/>
+    <path d="M297.3 374.6s2.5 2.6 3 6.8c.2 3.4-2 5.2-4.9 5-4-.2-5.4-5.6-3.6-8.6l5.5-3.2"/>
+    <path d="M300.6 387.9c-2 1.1-4.1 1-5.5 1-3.8-.2-6.9-2.4-6.9-9.5 0 0-4.8 2.4-12.5 4.2 0 0-1.3 1.6-1.5 4.7-.2 2.6 1.5 5.4 3.5 5.2l17.6-3.1c3.9-.7 5.3-2.5 5.3-2.5z"/>
+  </g>
+  <path fill="none" stroke="#fff" stroke-width=".7" d="M234.3 385.5s3.4 2.5-.8 5.6m-9.5-7.3l10.5 4.6m-8.8-2.2l7.7 3.4m-5-5.3l5.9 2.6m42.3-1.4s-3.6 2.5.6 5.6m9.6-7.3l-10.5 4.6m8.8-2.2l-7.7 3.4m5-5.3l-5.8 2.6"/>
+  <path stroke="#000" stroke-width=".7" d="M193 353.4l.4.8v.9a2.5 2.5 0 01-1.3 1.7c-.7.4-1.4.5-2.3.4a4 4 0 01-1.2-.4 4.6 4.6 0 01-.9-.7l-.4.4h-.5l.5-3h.5l.2 1.1c0 .3.2.6.4 1a2.3 2.3 0 001.6 1l.8.1a1.3 1.3 0 00.6-.2 1.4 1.4 0 00.4-.4l.2-.7a1.8 1.8 0 00-.1-1 2 2 0 00-.8-.9l-.8-.5-.9-.5a3 3 0 01-1-1.1 2 2 0 01-.1-1.5 2.2 2.2 0 01.3-.9 2.4 2.4 0 01.8-.7c.3-.1.6-.3 1-.3h1a3.1 3.1 0 011 .4l.9.6.3-.4.5.1-.5 3-.5-.2-.1-1a3.8 3.8 0 00-.3-.9 2 2 0 00-.6-.7 2 2 0 00-.9-.4 1.5 1.5 0 00-1 .2c-.4.2-.6.5-.7.8l.1 1 .7.8.8.6a15.3 15.3 0 011.5 1l.5.6m12.8 1.7a3.9 3.9 0 00-.5-.1 1.5 1.5 0 00-.6-.1l-.6.3a6 6 0 00-.6 1l-1.9 3.4a2.6 2.6 0 01-2 1.3 3.5 3.5 0 01-1.2 0 4.4 4.4 0 01-1-.4 4.6 4.6 0 01-1.2-.9c-.3-.3-.5-.7-.6-1a2.4 2.4 0 01-.2-1 2.2 2.2 0 01.3-1l2.5-4.6a1 1 0 00.1-.4v-.4a1.6 1.6 0 00-.4-.3l-.3-.3.2-.3 3.3 1.8-.2.4a3.3 3.3 0 00-.4-.2 2 2 0 00-.4-.1h-.4a1 1 0 00-.2.4l-2.4 4.3-.3.7a2 2 0 000 .8c0 .3 0 .5.2.8.2.3.5.5 1 .8l1 .3a2 2 0 001-.1 2.1 2.1 0 00.7-.4l.5-.6 1.7-3.3.5-1v-.7a1.6 1.6 0 00-.4-.5 3.8 3.8 0 00-.5-.4l.2-.3 3.3 1.8-.2.4m4.6 7.9a2 2 0 01-.1 2 2 2 0 01-.8.8 2.3 2.3 0 01-1 .3 3.1 3.1 0 01-1-.1 4.3 4.3 0 01-1-.5l-3.8-2.1.2-.4a5.4 5.4 0 00.9.3.6.6 0 00.3 0 .8.8 0 00.3-.3l3.2-5.6a1 1 0 00.1-.4.6.6 0 00-.1-.3 1.8 1.8 0 00-.3-.4l-.3-.2.2-.4 3.6 2 .8.6.6.7a1.7 1.7 0 010 1.8 2 2 0 01-1.4 1 2.6 2.6 0 01-.8 0 3.5 3.5 0 01-.8-.2l.6.6.6.8zm-.7-2l.6-.3.4-.6c.3-.4.4-.8.3-1.2-.1-.4-.4-.7-1-1l-.4-.3a20.4 20.4 0 00-.4-.2l-1.8 3 .7.4.9.3h.7zm-.7 3c.3-.5.4-1 .2-1.4-.1-.5-.5-.9-1-1.2l-.7-.4-.3-.2-1.6 2.8a.7.7 0 000 .7c.1.2.3.4.7.6.5.3 1 .4 1.5.2.5-.1.9-.5 1.2-1.1zm20.2 4.6a3.7 3.7 0 00-.5-.1 1.5 1.5 0 00-.6 0c-.2 0-.3.1-.5.4a6.3 6.3 0 00-.5 1l-1.5 3.5a2 2 0 01-.8 1 2.7 2.7 0 01-1.1.6 3.4 3.4 0 01-1.2 0 4.4 4.4 0 01-1-.3c-.6-.2-1-.4-1.3-.7-.4-.3-.6-.6-.8-1a2.4 2.4 0 01-.2-1 2.2 2.2 0 01.1-1l2.1-4.8a1 1 0 000-.4v-.4a1.7 1.7 0 00-.4-.3l-.3-.2.1-.4 3.5 1.5-.2.4a3.7 3.7 0 00-.4-.1 2.5 2.5 0 00-.4 0c-.2-.1-.3 0-.4 0a1 1 0 00-.2.3l-2 4.6-.2.7a2 2 0 000 .8c0 .3.2.6.4.8l1 .7 1.2.2a2 2 0 001.5-.7l.4-.7 1.5-3.3.3-1.1v-.7a1.6 1.6 0 00-.5-.4 4 4 0 00-.5-.4l.2-.4 3.4 1.5-.2.4m9.8 11.5l-3.8-1.1v-.4h1.1a.9.9 0 00.4-.1.8.8 0 00.2-.3l1.8-6.3a1.5 1.5 0 00-.1 0l-5.1 6.5-.3-.2-.7-8.2a432.2 432.2 0 00-1.8 6.2c0 .3 0 .5.2.7a3.5 3.5 0 001 .7l-.1.4-3.6-1 .2-.4h1.1a1 1 0 00.4-.5l.5-1.1 1.2-4.4.1-.7a1 1 0 00-.1-.4 1.3 1.3 0 00-.4-.4 2.2 2.2 0 00-.6-.3l.2-.4 3 .9c.1 2.4.4 4.7.6 7.1l3.7-4.7.3-.6a3 3 0 00.2-.4l2.9.8-.1.4a4.1 4.1 0 00-.5 0 2.6 2.6 0 00-.4 0 .5.5 0 00-.4.1 1 1 0 00-.1.4l-1.8 6.2a.8.8 0 000 .3l.1.4a3.8 3.8 0 00.8.4v.4m9.2-2.8a2 2 0 01.7 1.8 2.1 2.1 0 01-.4 1c-.2.3-.5.6-.8.7a3.2 3.2 0 01-1 .3 4.3 4.3 0 01-1.1 0l-4.3-.5v-.4a4.7 4.7 0 001 0 .6.6 0 00.3-.3.8.8 0 000-.3l.9-6.4v-.4a.6.6 0 00-.3-.3 1.8 1.8 0 00-.4-.2l-.4-.1v-.5l4.2.6c.4 0 .7 0 1 .2l.7.4a1.8 1.8 0 01.6.7 2 2 0 01-.2 1.7 1.9 1.9 0 01-.5.6 3.7 3.7 0 01-1.6.5 4.8 4.8 0 011.6.9zm-1.3-1.6l.4-.5.2-.7c0-.5 0-1-.3-1.2-.2-.4-.7-.5-1.2-.6a29 29 0 00-.5 0l-.6-.1-.4 3.4h1.8a1.4 1.4 0 00.6-.3zm.5 3c0-.5 0-1-.4-1.4-.3-.4-.8-.6-1.5-.7h-.6l-.5-.1-.4 3.1a.7.7 0 00.3.7l.9.3c.6 0 1.1 0 1.5-.4.4-.3.6-.8.7-1.5zm12.2 2.8h-2.5a45 45 0 00-1.4-2.2l-1.4-1.9h-1v2.9l.1.4s.1.2.3.2a7 7 0 00.9.2v.4H251v-.4l.4-.1h.4a.6.6 0 00.3-.3v-7.3s-.1-.2-.3-.2a2.4 2.4 0 00-.4-.1l-.4-.1v-.4h5.2l1 .5a1.8 1.8 0 01.8 1.6c0 .3 0 .6-.2.9a1.9 1.9 0 01-.4.7 3 3 0 01-.7.5 5.6 5.6 0 01-1 .3c.5.6 1 1 1.2 1.5l1 1.4a2.7 2.7 0 001 .9l.5.1h.4v.5zm-3.4-6.7c0-.5-.1-1-.4-1.3-.4-.3-.8-.4-1.4-.4h-1v3.8h.8c.6 0 1-.2 1.4-.5.4-.4.6-1 .6-1.6zm13.8 6l-3.7.3v-.4l.7-.2.4-.3v-.1a.5.5 0 00-.1-.2l-1-1.9-3.1.2-.2.8-.2.6v.8c0 .1 0 .3.4.3l.9.1v.5l-3.4.2v-.4a2.1 2.1 0 00.4-.1 1.4 1.4 0 00.4-.2l.3-.4a2 2 0 00.3-.5l1.2-4 1.2-3.7h.5l3.6 7.4.2.4.4.2.4.1h.4v.5zm-3.9-3.3l-1.6-3.4-1.1 3.6 2.7-.2zm16.8-7h-.5c-.2-.3-.4-.6-.8-.8-.4-.3-.7-.5-1-.4h-.4l-.6.2-1.5.4 1 3.5 1-.3.6-.3.4-.4a1.3 1.3 0 00.1-.5v-.6l.4-.1 1 3.4h-.5a3 3 0 00-.3-.5l-.4-.4a1 1 0 00-.5-.2 2.4 2.4 0 00-.7 0l-1 .4.8 3a.8.8 0 00.2.3l.3.1h.9l.2.4-3.8 1-.1-.4a9.6 9.6 0 00.8-.4.5.5 0 00.2-.3.9.9 0 000-.4 5108 5108 0 01-1.7-6.2 1.2 1.2 0 00-.1-.3l-.4-.2a2.6 2.6 0 00-.5 0 2.5 2.5 0 00-.5 0v-.4l6.8-1.9.6 2.2m10-.8l1 2.5-6.3 3.1a75.8 75.8 0 00-.2-.4 9.6 9.6 0 00.7-.5.5.5 0 00.1-.3.8.8 0 000-.4l-2.8-5.8a1 1 0 00-.3-.3.5.5 0 00-.4-.1 1.7 1.7 0 00-.4 0 2 2 0 00-.4.2l-.2-.4 3.4-1.7.2.4-.4.2-.3.3a.4.4 0 00-.1.4.8.8 0 000 .4l2.7 5.4c0 .2.2.4.3.5 0 .2.2.2.3.3l.5-.1a6 6 0 00.7-.3l.5-.2.4-.3a3 3 0 00.3-.3.6.6 0 00.2-.2 6.7 6.7 0 00.2-2.2l.4-.2m4.7-8.8a4.7 4.7 0 012.9 2.3 5.3 5.3 0 01.7 1.8l-.1 1.8a4.2 4.2 0 01-.7 1.5 4 4 0 01-1.3 1.1 4.2 4.2 0 01-3.4.5 4.3 4.3 0 01-1.5-.8 5.4 5.4 0 01-1.2-1.5 5.3 5.3 0 01-.7-1.8 4.6 4.6 0 010-1.8 4.2 4.2 0 01.8-1.5c.3-.5.7-.8 1.2-1.1a4.3 4.3 0 011.7-.6 4.1 4.1 0 011.6 0zm2.4 6a4.2 4.2 0 00-.2-1.5 7.4 7.4 0 00-.7-1.4 7.7 7.7 0 00-1-1.4 4.2 4.2 0 00-1.1-.8 2.5 2.5 0 00-1.2-.3l-1.2.3-1 1-.2 1.2c0 .5 0 1 .2 1.4a7.6 7.6 0 001.7 2.8l1 .8a2.4 2.4 0 002.5 0 2.5 2.5 0 001-1 2.5 2.5 0 00.2-1.2zm11.3-6.2l-2 1.4-2.5-.9-2.2-.7-.8.5 1.7 2.4.3.2s.2.1.4 0a1.9 1.9 0 00.3-.1l.4-.2.3.3-3.1 2.2-.3-.3.4-.3a1.7 1.7 0 00.2-.3.5.5 0 00.1-.4.8.8 0 00-.1-.4l-3.8-5.2a1.1 1.1 0 00-.3-.3h-.3a3.3 3.3 0 00-.8.3l-.3-.4 3.4-2.4a5 5 0 011-.5 2.9 2.9 0 011-.2 1.9 1.9 0 011.6.8 2.3 2.3 0 01.4.8v.9a2.7 2.7 0 01-.3.8 5.2 5.2 0 01-.5.8l1.7.5 1.8.6a2.7 2.7 0 001.2.1 2.8 2.8 0 00.8-.3l.3.3zm-6.6-3.5a1.8 1.8 0 00-1.1-.7c-.5-.1-1 0-1.4.3l-1 .7 2.3 3.1.7-.5a2 2 0 00.9-1.3c0-.5 0-1-.4-1.6zm14-2.1l.8 2.5-7 2.6a29.4 29.4 0 01-.2-.4 4.2 4.2 0 00.8-.4.6.6 0 00.2-.4.8.8 0 000-.3l-2.3-6a1 1 0 00-.2-.4l-.4-.1h-.4a2.4 2.4 0 00-.5 0 15 15 0 01-.2-.3l6.6-2.5.8 2-.5.2a2.9 2.9 0 00-.9-.8c-.4-.2-.7-.3-1-.2a4.6 4.6 0 00-.4.1l-.6.2-1.3.5 1.2 3.3 1-.3a2 2 0 00.6-.4 1 1 0 00.3-.4 1.6 1.6 0 000-.5 3 3 0 000-.6l.4-.2 1.2 3.3-.4.2a3.4 3.4 0 00-.4-.6c-.1-.2-.2-.3-.4-.3a1 1 0 00-.5-.2c-.2 0-.4 0-.6.2l-1 .3 1 2.5.2.6.3.3h.5l.8-.3.5-.2a3.7 3.7 0 001-.5l.3-.3.2-1 .1-1 .4-.2m7.6-6.2c.5.4.9.8 1.1 1.3.3.6.5 1.2.6 2a5.2 5.2 0 010 1.9 4.4 4.4 0 01-.8 1.6 4.1 4.1 0 01-1.3 1 4.2 4.2 0 01-1.6.6 4.1 4.1 0 01-3.2-.9c-.5-.3-.8-.8-1.1-1.3a5.2 5.2 0 01-.6-1.8 5 5 0 01.8-3.6 4.2 4.2 0 012.9-1.7 4.3 4.3 0 011.7.1 4.2 4.2 0 011.5.8zm-.1 6.4a4.2 4.2 0 00.4-1.4l-.1-1.6a7.5 7.5 0 00-.4-1.6 4 4 0 00-.7-1.3 2.6 2.6 0 00-1-.7c-.4-.1-.8-.2-1.2-.1-.5 0-1 .2-1.3.5-.3.3-.6.6-.7 1a4.4 4.4 0 00-.3 1.4 7.4 7.4 0 000 1.6l.4 1.6a4 4 0 00.7 1.2c.3.3.6.6 1 .7.3.2.8.2 1.3.2a2.5 2.5 0 001.1-.5 2.5 2.5 0 00.8-1z"/>
+  <path fill="none" stroke="#000" d="M305.1 218.8v56.6c0 11.2-1.5 56-49.7 73.4-48.2-17.4-49.8-62.2-49.8-73.4v-56.6h99.5"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ca.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ca.svg
new file mode 100644
index 0000000..6882f6d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ca.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ca" viewBox="0 0 512 512">
+  <path fill="#fff" d="M81.3 3h362.3v512H81.3z" transform="translate(-.2 -3)"/>
+  <path fill="#d52b1e" d="M-99.8 3H81.3v512H-99.8zm543.4 0h181.1v512H443.6zM135.5 250.4l-14 4.8 65.4 57.5c5 14.8-1.7 19.1-6 26.9l71-9-1.8 71.5 14.8-.5-3.3-70.9 71.2 8.4c-4.4-9.3-8.3-14.2-4.3-29l65.4-54.5-11.4-4.1c-9.4-7.3 4-34.8 6-52.2 0 0-38.1 13.1-40.6 6.2L338 187l-34.6 38c-3.8 1-5.4-.6-6.3-3.8l16-79.7-25.4 14.3c-2.1.9-4.2 0-5.6-2.4l-24.5-49-25.2 50.9c-1.9 1.8-3.8 2-5.4.8l-24.2-13.6 14.5 79.2c-1.1 3-3.9 4-7.1 2.3l-33.3-37.8c-4.3 7-7.3 18.4-13 21-5.7 2.3-25-4.9-37.9-7.7 4.4 15.9 18.2 42.3 9.5 51z" transform="translate(-.2 -3)"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cc.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cc.svg
new file mode 100644
index 0000000..dd6e200
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cc.svg
@@ -0,0 +1,19 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-cc" viewBox="0 0 512 512">
+  <defs>
+    <path id="a" d="M0-360l69.4 215.8 212-80.3L156-35.6 351 80.1 125 99.8l31.1 224.6L0 160l-156.2 164.3 31.1-224.5L-351 80l195-115.7-125.5-188.9 212 80.3z"/>
+    <path id="b" d="M0-210L54.9-75.5l144.8 10.6-111 93.8 34.7 141L0 93.3-123.4 170l34.6-141-111-93.8 145-10.6z"/>
+  </defs>
+  <path fill="green" d="M0 0h512v512H0z"/>
+  <circle cx="268.2" cy="250.4" r="61.2" fill="#ffe000"/>
+  <circle cx="287.3" cy="250.4" r="50.4" fill="green"/>
+  <circle cx="75.2" cy="189.2" r="64.2" fill="#ffe000"/>
+  <path fill="#802000" stroke="#7b3100" stroke-width="1.4" d="M70.7 237.6h16s.8-1.5-.1-2.2c-.9-.8-4.3-1-3.4-3.5 2-5.4 2.2-3.7 3.4-16.4 1.2-12.7 1.7-32.6 1.7-32.6H86s.5 6.2-.9 14.3c-1.3 8-1.7 8.7-3.2 15-1.4 6.1-1.7 6.6-3 10.3-1.3 3.6-1.5 3.7-3.5 7l-2.5 4.2c-.6 1-1.3.7-1.7 1.4-.4.8-.5 2.5-.5 2.5z"/>
+  <path fill="green" d="M83 142.5c0 2.5-.2 5.7-1.2 8.4-1 3-2.2 6-2.1 9-1.7.7-3.4-3.5-5-1 1.2 3.3 4 6 5.9 9 .3 1 3 3.5 1.5 4-4-1.3-5-6.4-7.5-9.5a17.5 17.5 0 00-14.2-9c-2.3 0-9.6-.6-7.7 3.2 2.8 2 6.3 3.2 9 5.3 2.1.2 5.8 3.6 5.6 5-3.6-1.5-5.3-3.3-9.2-4.8-5.3-2-12.6-.9-15.5 4.4-.6 1.4-1.4 5.3.3 5.7 2-3.1 5-6.6 9.2-5.7 3.3.3-3.8 6.3-1 5 .8-.3 2.8-1.6 4.1-1.7 1.4-.2 2.2.8 3.2 1 2.1.3 2.7 1.1 2.5 1.6-.2.6-1 .1-3 .8-1 .3-1.6 1.3-2.9 1.7-1.2.4-3.8.4-4.7 0-3.4-1.4-8.9-1.1-10 3 0 2-1.6-.1-2.3.7-.6 2-.8 4-3.8 3.9-1.8 1.9-3.6 3.9-6 5.2 1.4 3.1 6.8-3.1 6.5-.5-2.3 3.2 1.2 3.9 2.8 1.4 2.6-2.8 5.9-6.1 9.8-3.3 1.9 1.7 3-1 4.3-.8.9 2.2 2 0 3-.5 1.5-.2 1 2 3 .6 3.7-2.5 8.3-.4 12-2.8 3.8-1.8.5 1.4-.6 2.7-1.7 3.3-.2 7.7-4 9.7-1.4 4 1.8 9.2-1.5 12.1-.5 1.9 4.3 1.7 5.6 2.4 2.4.1 0-5.3 2.2-6 3.1 1.9 3-3.5 2.4-5.2.3-3.7.5-7.8 2.3-11.3 2-4.1 3.9 1.7 1.6 3.4-1.2 3.8-3 8.7-.2 12.2.9.2 1.5 2.2 2.6 2.8 1 .7 2.5-.1 2.8-2 1.4-5.4.7-11.4 2.7-16.7 1.3-1.7 3.3-.3 4.1 1.2 2.8 3.2 4.7 7.2 8 9.9a14 14 0 017.2 6.7c0 2.4 6.8 2.7 4.8 0-2-2.5-.7-5.2 1.3-6.9 1 .3.7-1.6 0-.9-1.4-.3-1.5-2.8.3-1.6 3.2 1-.2-2.3-1.3-2.4-2.7-1.6-5.7-3.5-7-6.4 3.4 0 7 2 10.5.8 2.9-1.5 5.7.1 6.7 2.6 2.2-.4 1.3-2.5 0-3.3 1.6-.6 2.7-2 .8-3.2-1-1.4 1.4-3.6-1.6-3.5.1-2.3-.8-4.3-3.2-5.1-2.5-2.1-9.7 3-9.5-1.7-.7-2.5 3-.3 4-1.6 1-2.7-5-2.4-3-4.5 1.2-.8 7.4-2 2.6-3a7.6 7.6 0 01-6.4-1c-1.7 3-6.7-1.6-5.8 3.6-.7 2-5 7-6.3 3.1 1-3 6.3-4 4.6-8-.2-2.6-2.3.4-3.3.2-.5-1.6 1.5-3.5 3-3.9 2.7 2.2 2.8-2.7 5.5-2.3 2-.4-.7-1.2-1.2-1.6.5-1.4 3.5-2.2.6-3.4-2.6-2-4.5 2-6.6 2.1-2-2.3 1.8-3.4 2.9-4.6 0-1-2.3-.3-1.6-1 .6-1.2 4.8-1.3 2.8-2.9-2.9-1-6.6-.7-9.4.5-1.8.6-2.3 4.6-3.8 4.4-.8-1.7.2-5.2-2.2-5.8zm13.7 38.9c2.3-.4 0 3.3-1 3.3.1-1.3-3.2-1.2-1.1-2.4a6.7 6.7 0 012.1-1z"/>
+  <g fill="#ffe000" transform="translate(-25.8 103.5) scale(.05833)">
+    <use width="100%" height="100%" x="7560" y="4200" xlink:href="#a"/>
+    <use width="100%" height="100%" x="6300" y="2205" xlink:href="#a"/>
+    <use width="100%" height="100%" x="7560" y="840" xlink:href="#a"/>
+    <use width="100%" height="100%" x="8680" y="1869" xlink:href="#a"/>
+    <use width="100%" height="100%" x="8064" y="2730" xlink:href="#b"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cd.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cd.svg
new file mode 100644
index 0000000..5da2a96
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cd.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cd" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill="#fff" d="M0-88h600v600H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="matrix(.853 0 0 .853 0 75.1)">
+    <path fill="#007fff" d="M0-88h800v600H0z"/>
+    <path fill="#f7d618" d="M36 32h84l26-84 26 84h84l-68 52 26 84-68-52-68 52 26-84-68-52zM750-88L0 362v150h50L800 62V-88h-50"/>
+    <path fill="#ce1021" d="M800-88L0 392v120L800 32V-88"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cf.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cf.svg
new file mode 100644
index 0000000..e924621
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cf.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cf" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)">
+    <path fill="#00f" d="M-52-.5h768v127H-52z"/>
+    <path fill="#ff0" d="M-52 383.5h768V512H-52z"/>
+    <path fill="#009a00" d="M-52 255h768v128.5H-52z"/>
+    <path fill="#fff" d="M-52 126.5h768V255H-52z"/>
+    <path fill="red" d="M268 0h128v512H268z"/>
+    <path fill="#ff0" d="M109.5 112.3L75.9 89.1l-33.4 23.4 11.6-39.2-32.5-24.6 40.7-1L75.7 8.8l13.5 38.6 40.8.8L97.6 73"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cg.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cg.svg
new file mode 100644
index 0000000..a52ba7e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cg.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cg" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M115.7 0h496.1v496h-496z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#a)" transform="translate(-119.5) scale(1.032)">
+    <path fill="#ff0" d="M0 0h744v496H0z"/>
+    <path fill="#00ca00" d="M0 0v496L496 0H0z"/>
+    <path fill="red" d="M248 496h496V0L248 496z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ch.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ch.svg
new file mode 100644
index 0000000..773cdc8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ch.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ch" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#d52b1e" d="M0 0h512v512H0z"/>
+    <g fill="#fff">
+      <path d="M96 208h320v96H96z"/>
+      <path d="M208 96h96v320h-96z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ci.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ci.svg
new file mode 100644
index 0000000..bd1e3f4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ci.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ci" viewBox="0 0 512 512">
+  <g fill-rule="evenodd">
+    <path fill="#00cd00" d="M341.5 0H512v512H341.5z"/>
+    <path fill="#ff9a00" d="M0 0h170.3v512H0z"/>
+    <path fill="#fff" d="M170.3 0h171.2v512H170.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ck.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ck.svg
new file mode 100644
index 0000000..f2df0db
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ck.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ck" viewBox="0 0 512 512">
+  <path id="path6059" fill="#006" d="M0 0h512v512H0z"/>
+  <path id="path6069" fill="#fff" fill-rule="evenodd" d="M344.8 250.1l5.7-18.3-15.4-11.7 19.4-.2 6.5-18.1 6.3 18.1 19.4.6-15.6 11.4 5.6 18.4-15.9-11m29.7 14.4l11.4-15.3-10.6-16.3 18.4 6.4 12-14.8V233l18 7.1-18.4 5.5-.9 19.2-11.3-15.8m-108 16.5l-.8-19.2-18.4-5.7 18.2-7v-19.1l12 14.9 18.4-6.2-10.8 16.1 11.4 15.4-18.6-5m-43.6 45l-8-17.4-19.2 2 14-13.5-7.2-17.7 16.7 9 14.6-13-3.7 19.1 16.3 9.7-19 2.8m-19.2 61l-14.6-12.1-16.5 10 7-18.3-14-12.8 18.9.9 7.7-18 4.7 18.8 18.9 1.7-16 10.8m3.5 66.3l-18.2-5.3-11 16-.8-19.7-18-6 17.7-6.9v-19.7l11.7 15.5 18-6.1-10.5 16.3m32.4 55.9l-18.7 2.6-3.8 19.1L244 428l-18.8 1.8 13.5-13.5-7.9-18 16.9 9.3 14-13-3 19.3m49.4 41.7l-16.7 9 3 19.3-14.1-13.6-17 8.3 8-17.4-13.5-14.1 19 2.8 8.7-17 3.7 19m59.1 10l-9 16.8 12.8 14.5-19.1-3.6-9.8 16.4-2.7-19-18.9-4.4 17.4-8.2-1.9-19 13.5 13.9m63-14.4l-.7 19.2 18 7-18.6 5.6-1.3 19.1-11-15.7-18.8 4.9 11.9-15.4-10.3-16.1 18.3 6.2m59.8-223.2l13.1 13.9 17.5-8.1-9 17.4L475 284l-18.7-3-9.8 17-2.5-19.3-18.6-4 17.2-8.7m37.6 23.1l6 18.3 19.1.3-15.5 11.7L495 338l-15.6-11-16 11.1 6-18.5-15.2-11.6 19.3-.5m21.4 36.5l-2.2 19 17.3 8.6-19 4-3 19-9.5-16.7-19.1 3.2 13-14.3-8.8-17 17.7 7.9m3.2 43.7l-8.5 17.1 13.3 14-19.1-2.8-9.3 16.7-3.3-18.9-19-3.7 17-8.8-2.5-19 14 13.5m-10.9 43l-16.1 10 4.1 19-14.8-12.6-16.5 9.4 7-18-14.4-13.2 19.1 1.6 7.7-17.6 4.9 19"/>
+  <g id="g6703" transform="matrix(.5 0 0 .5 0 -.5)">
+    <path id="path6681" fill="#006" d="M0 0h512v512H0z"/>
+    <path id="path6683" fill="#fff" d="M512 0v64L322 256l190 187v69h-67L254 324 68 512H0v-68l186-187L0 74V0h62l192 188L440 0z"/>
+    <path id="path6685" fill="#c8102e" d="M184 324l11 34L42 512H0v-3zm124-12l54 8 150 147v45zM512 0L320 196l-4-44L466 0zM0 1l193 189-59-8L0 49z"/>
+    <path id="path6687" fill="#fff" d="M176 0v512h160V0zM0 176v160h512V176z"/>
+    <path id="path6689" fill="#c8102e" d="M0 208v96h512v-96zM208 0v512h96V0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cl.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cl.svg
new file mode 100644
index 0000000..b808896
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cl.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cl" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h708.7v708.7H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(.722)">
+    <path fill="#fff" d="M354.3 0H1063v354.3H354.3z"/>
+    <path fill="#0039a6" d="M0 0h354.3v354.3H0z"/>
+    <path fill="#fff" d="M232.3 265.3l-55-41.1-54.5 41.5 20.3-67.5-54.5-41.7 67.4-.6 21-67.3 21.3 67.2h67.5L211.4 198l20.8 67.4z"/>
+    <path fill="#d52b1e" d="M0 354.3h1063v354.4H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cm.svg
new file mode 100644
index 0000000..08b710b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cm.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-cm" viewBox="0 0 512 512">
+  <path fill="#007a5e" d="M0 0h170.7v512H0z"/>
+  <path fill="#ce1126" d="M170.7 0h170.6v512H170.7z"/>
+  <path fill="#fcd116" d="M341.3 0H512v512H341.3z"/>
+  <g fill="#fcd116" transform="translate(256 256) scale(5.6889)">
+    <g id="b">
+      <path id="a" d="M0-8L-2.5-.4 1.3.9z"/>
+      <use width="100%" height="100%" transform="scale(-1 1)" xlink:href="#a"/>
+    </g>
+    <use width="100%" height="100%" transform="rotate(72)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(144)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(-144)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(-72)" xlink:href="#b"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cn.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cn.svg
new file mode 100644
index 0000000..7873c1b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cn.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-cn" viewBox="0 0 512 512">
+  <defs>
+    <path id="a" fill="#ffde00" d="M1-.3L-.7.8 0-1 .6.8-1-.3z"/>
+  </defs>
+  <path fill="#de2910" d="M0 0h512v512H0z"/>
+  <use width="30" height="20" transform="matrix(76.8 0 0 76.8 128 128)" xlink:href="#a"/>
+  <use width="30" height="20" transform="rotate(-121 142.6 -47) scale(25.5827)" xlink:href="#a"/>
+  <use width="30" height="20" transform="rotate(-98.1 198 -82) scale(25.6)" xlink:href="#a"/>
+  <use width="30" height="20" transform="rotate(-74 272.4 -114) scale(25.6137)" xlink:href="#a"/>
+  <use width="30" height="20" transform="matrix(16 -19.968 19.968 16 256 230.4)" xlink:href="#a"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/co.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/co.svg
new file mode 100644
index 0000000..18d1c5f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/co.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-co" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#ffe800" d="M0 0h512v512H0z"/>
+    <path fill="#00148e" d="M0 256h512v256H0z"/>
+    <path fill="#da0010" d="M0 384h512v128H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cr.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cr.svg
new file mode 100644
index 0000000..a60a6dd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cr.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cr" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#0000b4" d="M0 0h512v512H0z"/>
+    <path fill="#fff" d="M0 80.5h512v343.7H0z"/>
+    <path fill="#d90000" d="M0 168.2h512v168.2H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cs.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cs.svg
new file mode 100644
index 0000000..9557b6e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cs.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cz" viewBox="0 0 512 512">
+  <path fill="#ffffff" d="M0 0h512v256H0z"/>
+  <path fill="#d7141a" d="M0 256h512v256H0z"/>
+  <path fill="#11457e" d="M300 256 0 56V456z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cu.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cu.svg
new file mode 100644
index 0000000..3968176
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cu.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cu" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)">
+    <path fill="#0050f0" d="M-32 0h768v512H-32z"/>
+    <path fill="#fff" d="M-32 102.4h768v102.4H-32zm0 204.8h768v102.4H-32z"/>
+    <path fill="#ed0000" d="M-32 0l440.7 255.7L-32 511V0z"/>
+    <path fill="#fff" d="M161.8 325.5L114.3 290l-47.2 35.8 17.6-58.1-47.2-36 58.3-.4 18.1-58 18.5 57.8 58.3.1-46.9 36.3 18 58z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cv.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cv.svg
new file mode 100644
index 0000000..a8311b2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cv.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cv" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)">
+    <path fill="#fff" d="M-123.4 233H723v206h-846.5z"/>
+    <path fill="#081873" d="M-122.8 0h846v256.6h-846zm.3 385.9h852.1V512h-852.1z"/>
+    <path fill="#de3929" d="M-122.5 302.6h846v39.6h-846z"/>
+    <path fill="#ffce08" d="M131 399.2l6.6 20.4H159l-17.4 12.7 6.6 20.5L131 440l-17.4 12.7 6.7-20.5-17.4-12.7h21.5M317 250.4l6.7 20.5H345l-17.4 12.6 6.6 20.5-17.4-12.7-17.4 12.7 6.6-20.5-17.4-12.6h21.6m-222 64.4l6.6 20.5h21.5L99 368.6l6.7 20.4-17.4-12.6L70.9 389l6.6-20.4-17.4-12.7h21.5M317 329.5l6.7 20.4H345l-17.4 12.7 6.6 20.4-17.4-12.6-17.4 12.7 6.6-20.5-17.4-12.7h21.6m-40.5-161.7l6.7 20.4H298l-17.4 12.7 6.6 20.5-17.4-12.7-17.4 12.7 6.7-20.5-17.5-12.7h21.6m-64.5-45.2l6.7 20.5h21.5l-17.4 12.6 6.6 20.5-17.4-12.6-17.4 12.6 6.7-20.5-17.4-12.6H192m-64.5 2.9l6.7 20.5h21.5l-17.4 12.6 6.7 20.5-17.5-12.7-17.4 12.7 6.7-20.5-17.4-12.6H121m-34.8 43.2l6.6 20.5h21.6l-17.5 12.6 6.7 20.5-17.4-12.7-17.4 12.7 6.6-20.5L58 271h21.5m119.2 149.4l6.7 20.5h21.5l-17.4 12.6 6.7 20.5-17.5-12.7-17.4 12.7 6.7-20.5-17.4-12.6H192m82.2-41.7l6.6 20.4h21.5L285 432.3l6.7 20.5-17.4-12.7-17.5 12.7 6.7-20.5-17.4-12.7h21.5"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cw.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cw.svg
new file mode 100644
index 0000000..d7ba218
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cw.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-cw" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h9000v9000H0z"/>
+    </clipPath>
+    <path id="b" d="M0-1l.2.7H1L.3 0l.2.7L0 .4l-.6.4.2-.7-.5-.4h.7z"/>
+  </defs>
+  <g clip-path="url(#a)" transform="scale(.057)">
+    <path fill="#002b7f" d="M0 0h13500v9000H0z"/>
+    <path fill="#f9e814" d="M0 5625h13500v1125H0z"/>
+    <use width="13500" height="9000" x="2" y="2" fill="#fff" transform="scale(750)" xlink:href="#b"/>
+    <use width="13500" height="9000" x="3" y="3" fill="#fff" transform="scale(1000)" xlink:href="#b"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cx.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cx.svg
new file mode 100644
index 0000000..ef82c45
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cx.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-cx" viewBox="0 0 512 512">
+  <path fill="#0021ad" d="M0 0h512v512H0z"/>
+  <path fill="#1c8a42" d="M0 0h512v512z"/>
+  <circle cx="256" cy="256" r="61.7" fill="#ffc639"/>
+  <path fill="#1c8a42" d="M218.3 228.3c4.3 5.8 10.6 15.5 15.8 13 4 0 6 .3 6.6 3A39.5 39.5 0 00276 229s.8 0 .5-4.8c0-2.2 3-1.7 3-1 .4 1 .3 1.8.9 1.8 1.2-.4 2.9-3.1 4.3-4.8.3-.8.1-1.6.2-2.6.8-1.8 2.6-1.4 3-.4.3.6.3 1 .7 1.7 1.8 1.2 5.2 0 5.5 0 .3-1.5 1.3-1.3 1.3-1.3 1.2-.3.7-.2 1.6.2-.8 8.2 1.6 8.6 1.4 12.8 0 4.7-1.4 6-1.4 7.8.4 2.2 7.3 2.3 5 4.1-2.2 1.2 0 3.3-3.3 4.1-9.4 4.8-11.2 8.9-11.2 8.9s-2.3 4.4-2.6 4.4c-1.6 3-3.5 1.4-4.7 2.8-.5 1.8-1.1 5.9 0 8 .5 2.8 0 4.4-.8 7.3-.6 6-3 6.9-3.3 9-1 2.2.3 12.8-.8 12.8-7 .1-12.3-1.3-15-1.9 2.6-11.6 1.6-21.8 1.6-22.8-.7-8.3-12.4-6.3-14.2-7.4-1.5-.3-2.4-1.5-3-2-1.6-.2-2.2-.6-3.9-.8-.8.4-.3.9-2.2 1.4-4.6.6-6.7-4-6.7-4 .2-1.6-10.5.3-16.4-1-2.4 1.3-3.4 5.2-5.4 5.7 0 1.2-3.2-1-3.9-2.2 0-3.5 3.1-5 3.1-5 2.5-1.9 4-2.2 5.3-3.4.6-3 .3-5.3 1.6-7.6 1-1.7 2.7-1 3.8-1.7 1.2-.8 1.7-6 .6-7.3l-5-4.5c-1.6-4.5 1.8-7.3 2.7-7z"/>
+  <path fill="#ffc639" d="M452.3 63.7c-2.8-11-27.9-34.8-46.6-50-4.5-3-7.4-1.2-6.9 3.1 2.4 4 4.1 8.2 6.5 12.1.6 2.6 1.9 4.4 2.5 7 0 0 .2 4.5.6 5a25 25 0 016.6 11.8 52.4 52.4 0 0012.3 16.6c6.6 4.2 1.8 17.1 2 24 0 4.3-3.2 3.8-5.9 3.3-21.5-19.8-42.8-19.8-61.6-25.5-7.4-.8-7.5 2.7-5.1 4.6 13.1 14 25.5 23.6 41.7 31.6l8.2 5.1 9.4 7.8c7.2 4.7 7.8 9 7.8 9.4.2 8.8-4.5 15.6-5.8 18.3-2.5 9.3-7.5 11-7.5 11-40.1 27-61.2 34-126.4 25.7-1-.5-7.2.5 0 3.1 16.6 5.5 57.3 14.4 96.7-4.3 9.5-6.6 15.9-4.4 22.7-8.4 11.3-7 27.3-15.6 30.3-16.5 8.7-4.7 33.3-10 39-14.7 6.5-.5 13.2-1.4 13.7-7 2.1-1.3 5.2-.3 7.5-4.9 5.2-.9 4.3-2.7 4.3-2.7-1.3-3.7-6-5.2-9.5-7.8-5.1-1.7-8.6-2.2-12.3-.4l-3.5 1.6s-5.5-.8-5.5-1.2c-12.1-.7-11-41-15.2-57.7z"/>
+  <path fill="#1c8a42" d="M542.5 217.8a3 1.9 16 11-5.8-1.8 3 1.9 16 015.8 1.8z"/>
+  <g fill="#fff" transform="translate(-11.8 182.4) scale(.68267)">
+    <path id="a" d="M188.2 191l-12.8-12-12.9 11.8 1.4-17.4-17.3-2.8 14.5-9.8-8.6-15.2 16.7 5.3 6.5-16.2L182 151l16.7-5-8.8 15 14.4 10-17.3 2.5 1.2 17.4z"/>
+    <path d="M233.4 335.5l-13.8-9.1-13.4 9.6 4.8-15.5-13.6-9.5 16.6-.4 5-15.5 5.6 15.3 16.7-.1L228 320l5.3 15.4z"/>
+    <use width="100%" height="100%" x="2.5" y="269.1" xlink:href="#a"/>
+    <use width="100%" height="100%" x="-112.1" y="123.2" xlink:href="#a"/>
+    <use width="100%" height="100%" x="108.4" y="85" xlink:href="#a"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cy.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cy.svg
new file mode 100644
index 0000000..ba2b0f8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cy.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-cy" viewBox="0 0 512 512">
+  <path fill="#fff" d="M0 0h512v512H0z"/>
+  <path id="a" fill="#435125" d="M243 425.2a.9.9 0 01-.3-.2v-.1l-1.4-1.4a75.9 75.9 0 01-4-4.9L232 412l-.7-.9-6.6-2-4.8-2.3 2.5-2.9 9 3.8 6.6 1.4 12.2 9a122.2 122.2 0 00-6.8 6.4 2.2 2.2 0 00-.2.4l.8-.5.8.7-1.7.1zm-45.5-13.7c-5.8 0-11.5-1.6-17-4.8s.8-1.3 2.5-2.6c1.6-1.2 4.6-2.7 9.5-2.7 5.8 0 12.8 2 20.9 5.8-.3.2-6.7 4.3-15.9 4.3zm-25-5.5c-1.1 0-2-.5-2.8-1.2a5.5 5.5 0 01-1.2-2.5 12.5 12.5 0 01-.3-3.5 3.7 3.7 0 011.4-.4c2.2 0 3.9 2 4.6 3.8.4 1 .5 1.9.3 2.6s-1.1 1.1-2 1.1zm44-5.2c-14.8-2-21-7.4-23.7-11.6a13.4 13.4 0 01-2.3-8.5s1-.2 2.3-.2c4 0 14 2 23.7 20.3zm-30.3-2.9c-6.3 0-11.2-1-14.3-3.2a8.8 8.8 0 01-3.2-3.6 5.8 5.8 0 01-.5-1.7 19.4 19.4 0 017.6-1.4c5 0 12.4 1.6 20.2 9.2a92 92 0 01-9.8.7zm-30.6-1.2c-6.7 0-15.9-2-21.6-7.7a66.9 66.9 0 0114.5-1.8c6.3 0 11 1.2 14.2 3.6 1.2.8 1.8 1.6 1.9 2.4.1.6-.2 1.3-.9 1.8-1.4 1-4 1.7-7.6 1.7h-.5zm-21.7-11a2.7 2.7 0 01-2-1 5 5 0 01-1-2.2c-.4-1.6-.3-3.1-.3-3.1a2 2 0 011-.3c1 0 1.8.5 2.3 1a6 6 0 011.4 2.2c.3 1 .4 1.7.2 2.3-.2.5-.8 1-1.6 1zm50-1.2c-1.1 0-2-.4-2.7-1.1a5.5 5.5 0 01-1.2-2.5 12.5 12.5 0 01-.3-3.6 3.7 3.7 0 011.3-.3c2.2 0 4 1.9 4.6 3.7.4 1 .5 2 .3 2.6-.3.7-1.1 1.2-2 1.2zm-24.4-1c-13.4-.5-20.4-4.3-23.8-7.4a15.7 15.7 0 01-3.7-4.7 10 10 0 01-.7-2s1.2-.5 3.3-.5h.3c4.5 0 13.8 1.9 24.6 14.6zm14.6-1.4a32.6 32.6 0 01-20.1-9.9 20.6 20.6 0 01-4.5-7.4s1.4-.3 3.4-.4a16.2 16.2 0 01.9 0c5.4.1 15.3 2.6 20.3 17.7zm-55.4-5.2c-3.6 0-7-.3-10.2-1.2-5.7-1.4-8.1-3.5-9.2-5.1a5.4 5.4 0 01-.8-2.2 3.6 3.6 0 010-.9s3.7-1 8.9-1.1a37.4 37.4 0 017.9.7 23.2 23.2 0 0113.7 8.6s-4.3 1.2-10.3 1.2zm25-9c-1 0-2-.5-2.7-1.2a5.5 5.5 0 01-1.2-2.5 12.3 12.3 0 01-.3-3.5 3.7 3.7 0 011.3-.3h.1c2.2 0 3.9 1.8 4.6 3.7.4 1 .5 1.8.2 2.6-.3.7-1 1.1-2 1.1zm-18.8-2.7c-.1 0-5.1-1.2-10.2-4.4-4.8-3-10.5-8-11.3-16s.5-.2 1.2-.2h.2c1.4 0 4.3.4 7.8 3 4.5 3.4 8.6 9.4 12.3 17.7zm12.3-.4s-3.6-1.4-8-5.2a51.4 51.4 0 01-14.4-19.9s1-.5 2.5-.6a3.7 3.7 0 01.3 0h.4c2 0 5.1.9 8.6 4.7a55 55 0 0110.6 21zm-32-1c-4 0-5.4-2.2-5.9-3.1a6.7 6.7 0 01-.4-3.2 9 9 0 012-.3h.2c3.2 0 5.8 1.7 6.9 3.3.2.3.9 1.5.3 2.3-.4.7-1.4 1-3 1zm-9-11.4c-2.3 0-5.8-.2-9.5-.8-3.7-.7-5.8-3.8-6.9-6.3a20.4 20.4 0 01-1.5-5.3c11.3.3 16.7 3.6 19.2 6.3a10 10 0 012.7 6h-4zm11.8-11.8a45.6 45.6 0 01-2.6-3.6c-1.4-2.1-2.6-4.3-2.6-6a85 85 0 00-.6-7.4l-.7-5c.3.2 7.1 2.7 7.1 9.1 0 6.4-.6 12.8-.6 12.9zm-8.8-.6h-.3c-2-.4-5.5-2-9.4-4.2a40.5 40.5 0 01-10-7.5c-1.8-2.1-3-5.5-3.2-10a37 37 0 010-6 3.5 3.5 0 011.2-.3c1.5 0 3 .7 5.2 2.2a42.4 42.4 0 015.6 4.7 84.5 84.5 0 016.1 6.8 93.9 93.9 0 015.5 12.3v1.5a.8.8 0 01-.4.4 1 1 0 01-.4 0z"/>
+  <use width="100%" height="100%" transform="matrix(-1 0 0 1 462.7 0)" xlink:href="#a"/>
+  <path fill="#d47600" d="M468.3 81.5l-2 .8-.8.3-2.4-.2-2.3 1.1-4 2.8-.2.1-1.5.4-1.4-.6-.8.4-.3 1.6-.7 1.2-1 .7-3.2.3-2.7 1.4-3.6-1-1.6.7-3.5 3.1-1.8.9h-.6l-2.4-.2-1 .4L429 97l-2.8.2-.9.6-1.4 2.8-1.5 1.6-.8.1-1-.3-.7.1-.3 1.8-.6.8-2 .6-1.4 1.3-1.4.6H412l-1.7 1-3.4.3-1.3 1.3-.4.3-.6.4-1 .6-.3.2-1.3-.3-1.5.6-.6-1-1 .7h-1.4l-1.7-.7-1.3-.6-1 .2-.3 1.6v.2l-1 1.3-1.9 1.1-.2.4-2.1 2.7-4 4.3-3.5 1.7-3.5 1-2.5 2-6.5 3.3-10.2 5.1-2.1.7-3 .4-5.3 2-4.8 1.4-.3.1-.9.3-6.6 2-3.1-.3-1.9.7-4.8-.6-3.3.1-2 .4-4 2-6.7 3.1-2.2 2-3.5 1.9-4 1.2v-1.7l-1.4.4-1 .3-3.3.5h-1.8l-1.1-.3h-.2l-6.7 2.3-7.4.7-3.7 1.2h-2.8l-1.8.4-3.4.5-1.2-.4h-.3l-10 .4-4.6-.5-2.2.5-3.6-1.3-5.4-.6-1.2-.4-2.8-.8-1.3.7-1 .1-2.2-.8h-.9l-1.8.7-1.1-.3-1-.8-2.4-.3-1.4-1.3-8 1.1-2.2-.6-7.3-2.2-1.2.1-1.4 1-2.2.9-1.9.5h-2.6l-3-.7-3-1.5-1.2-.3-2.5.3h-.8l-4.6-2.5-6-3.7-4.1-2-1.6-.2-.2.7.8 2.4.3 2.4-.1 2.1v1.4l.3 1.2 1.5 1.6.6 1.7.5 4.5v4.6l-.8 7.3-.2 1-.9 3.9-.7 3.4-3 9.3-.9 1.1-2 1.4-4.7 3.2-3.4 2-1 .4-2.8.2-1.7-.1-2.2-1.2-2-.5-2.8-2-3.1-.6-3.4-2-.8-1-1.9-.2-2.5-.8-1-.2-.6-.2-3.2-.1-3-1.4-1.6-.4-2.2-.1-2.3 1-1.1.6-1.5-.6h-1l-1.3 1.9-.1.3-.8.4H108l-.8.3-1.2.5-1 .5-.5.2h-.4l-.5.2h-.7l-1.2-.6-.6-.4-1.1-.2-.6.4v2l-.6 1.1L97 196l-1.7 1.5-1.2 1.8-3.1 7.1-2 3-.6.6-2 2.3-1.9 1.4-4.2 3.2-4 1.5-3.4.7h-1.6l-3.2-.4-2.8-.9-3.1-2-3.5-2.7-4.9-4.9-.7-.4H53l-1.5-1h-1.2l-.4.7-.3 1-.2 1-.5 5.5v.3l.3 2.2 3.8 5.3 1.1 2.8.2.3.8 1.3.6 1L57 232l-.9 2.2.5 1.4-1.2.9-.2 1.2 3.4 4.3.7 1.8-.8 2.6-1.3 1.4-.4.4.2 1.1 1.6 1.4 2.6 2.4 1.4 3.5 1 .9 1.3-.3.7.6h1l1 1 .7.3 1.1.5.8 1.1.2 3.3 1.6 4.2v2.6l1 1.6.3 1.3-.5 3.5 1.2 1.1 1.3-.3.9.2 1.4 1.1 1.7 2.6 1.6-.2 1 .5 5 4.5 1.2.6 1 .4 1 1 1.5-1h.2l1.7-.2.8.5 1.4 1h2l4 1.3 1.9.4 3.6 2.3 1.6 1 .9.7 1.2 1 2.4 1 2 .5 1.2.3.9.3 4.5 1.8 2.4.5 2.3.9 1.6.6h1.2l1.7-1.5h1.7l1.4.3 1.3-.2 2.1-1.3.5-.7 1.5-.7 5-.6 1.5.5 3.8-1.7 2.6.7 2.2-.8 5 1.1 1.3 1 1.4 1.6h1.8l-.6 1.2 2.1 2.3 2 3v.3l1.5 4.1 1 1.5.8 2v1.4l-1.1.9-.2.5v.2l.2.5.4-.2.8-.5 1-.1 1.8.2h1.1l1.9-.8 1.2-.6 2 .8h2.1l.9.4 2.6 1.1 1.3.2.5-.4.3-.7-.2-.8-1-1.2-2.1-2.5-1-1.3-.6-1.8-.2-2.4-.2-1.6.3-2.1.6-.8.4-1.7.1-.4 1.2-1.6 3.2-2 3.4-3 2.7-1.9 2.8-1.2v-.3l.4.1 7-2.4h.2l3.1-.6 21.3 1.5.8-.2.7-2 .4-.4.2-.2 2.4-1 1-.2 3 .8 1.3.3 2-1.1h1.4l3-1.6h1.8l.6-.2 3.5-2.6 3.4-1 1-.4.2-.2 3.5-1.8 2.2-1.7 1.9-1 2-.5 5.5-.4 1.1-1.8 2.3-.4 1.5-1.6 1.6-.6 1.1-1.7 1-1.4 1.4-.8 4.3-.2 5.2.6.7-.4 1.1-4.2 1.2-.8 3.3-4.7V252l.6-2.1-.4-3.8.5-3.8 2-4.8 1.8-2 2.9-1.9 1.5-.6 2-.4h.4l.5-.1 7.2-.1h2.6l2.4-.1 6 1 .5.2 2 .6 2.4 1.9 2.5 2.4.5.5 1.6.6.5.3 1.4-.3 1.9-1 1.4-1.2 2-1v-.1l1.1-1.7.5-.7 3.8-1.5 4.5-.2.5-.3.3-.1 1.1-1.4h1.1l2.7 1 1.9-.4 1.5.6 1.1-.2 2.2-.2 2.4 1.6 1.4.2 4.8 2.8h.4l.2.1.6-.1.9-.3.2.1.5.8.8.1.9-1.2-.4-.5-.1-.2-1.7-.4-1.6-2.6 1.5-1.6-2.3-2.8-.4-.5-.1-.2-.8-1.2-4-6.2-5.4-4.2-1.8-1.5-.7-.5-2.8-2.9-2-2.6-.3-.6-.4-1-1.2-2.5-2-1.7-1.8-1.8v-.1l-3.6-4.8-.6-.8-.8-.5h-1.8l-.2-.2v-.1l.8-1 1-.2.4-.9-1.8-5.2v-.2l-.2-1.6 1.5-7.6.2-1 2.5-5 1.6-1.3 1.6-3.3 1.5-2.1 1.4-1.4.2-.1 2.5-1.5 2.1-.3 2-.3 3.5 1h4l1.5-.2 2.5-.8 1.2-.7.6-1 1.2-4.2.5-1.4.7-1.4 4.6-5.3 3.4-3.1 7.7-5.7 3.8-2.2 1.9-1.2 17.2-7.6 4.4-4.5 2.3-2.4 4.2-2.7 4.8-2 4.1-3.3.9-1.1 1.2-3.7.9-.2.9-1.9.2-.5 3.4-2.4.4-.2L456 95l2 .2 1-1.5 3.8-.6.6-.2 1-.4.8-1.4v-.3l.1-3.6.8-1 .5-2.4.4-.6.4-.5 1.1-.8-.2-.5z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cz.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cz.svg
new file mode 100644
index 0000000..9557b6e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/cz.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cz" viewBox="0 0 512 512">
+  <path fill="#ffffff" d="M0 0h512v256H0z"/>
+  <path fill="#d7141a" d="M0 256h512v256H0z"/>
+  <path fill="#11457e" d="M300 256 0 56V456z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/da.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/da.svg
new file mode 100644
index 0000000..51ff69f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/da.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-dk" viewBox="0 0 512 512">
+  <path fill="#c8102e" d="M0 0h512.1v512H0z"/>
+  <path fill="#fff" d="M144 0h73.1v512H144z"/>
+  <path fill="#fff" d="M0 219.4h512.1v73.2H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/de.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/de.svg
new file mode 100644
index 0000000..b9ea8a6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/de.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-de" viewBox="0 0 512 512">
+  <path fill="#ffce00" d="M0 341.3h512V512H0z"/>
+  <path d="M0 0h512v170.7H0z"/>
+  <path fill="#d00" d="M0 170.7h512v170.6H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/dj.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/dj.svg
new file mode 100644
index 0000000..3f6b2e4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/dj.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-dj" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M55.4 0H764v708.7H55.4z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-40) scale(.722)">
+    <path fill="#0c0" d="M0 0h1063v708.7H0z"/>
+    <path fill="#69f" d="M0 0h1063v354.3H0z"/>
+    <path fill="#fffefe" d="M0 0l529.7 353.9L0 707.3V0z"/>
+    <path fill="red" d="M221.2 404.3l-42.7-30.8-42.4 31 15.8-50.3-42.4-31.2 52.4-.4 16.3-50.2 16.6 50 52.4.2-42.1 31.4 16 50.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/dk.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/dk.svg
new file mode 100644
index 0000000..51ff69f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/dk.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-dk" viewBox="0 0 512 512">
+  <path fill="#c8102e" d="M0 0h512.1v512H0z"/>
+  <path fill="#fff" d="M144 0h73.1v512H144z"/>
+  <path fill="#fff" d="M0 219.4h512.1v73.2H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/dm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/dm.svg
new file mode 100644
index 0000000..405a4b6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/dm.svg
@@ -0,0 +1,152 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-dm" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)">
+    <path fill="#108c00" d="M-258.3 0H769.2v512H-258.3z"/>
+    <path fill="#ffd600" d="M-260 178.2H772.6v50.1H-260z"/>
+    <path fill="#ffd600" d="M181 0h48.5v512h-48.4z"/>
+    <path d="M227.8 0h48.4v512h-48.4z"/>
+    <path d="M-260 226.6H772.6v50.2H-260z"/>
+    <path fill="#fff" d="M-260 276.8H772.6v50.1H-260z"/>
+    <path fill="#fff" d="M276.2 0h48.5v512h-48.5z"/>
+    <rect width="273.8" height="275" x="-394.6" y="-393.9" fill="#e72910" ry="137.5" transform="scale(-1)"/>
+    <g stroke-width="1pt">
+      <path d="M250.5 137l5.6-16 5.1 15.7s17.1.5 17.1.2-13.5 10.3-13.5 10.3l6.1 17.6c-.2-.5-14.8-10.9-14.8-10.9s-14.8 10.4-14.5 10.4 5.6-17 5.6-17l-13.3-10.1 16.6-.3z"/>
+      <path fill="#ffe700" d="M251.3 137.7L256 124l4.4 13.6s14.9.4 14.9.2-11.7 9-11.7 9l5.2 15.2c-.2-.5-12.8-9.4-12.8-9.4s-12.8 9-12.6 9 5-14.8 5-14.8l-11.6-8.8 14.4-.2z"/>
+      <path fill="#108c00" d="M253.3 140l2.8-8 2.6 7.9s8.5.2 8.5 0-6.7 5.2-6.7 5.2l3 8.8c-.1-.3-7.4-5.4-7.4-5.4l-7.2 5.2c.2 0 2.8-8.5 2.8-8.5l-6.6-5 8.2-.2z"/>
+    </g>
+    <g stroke-width="1pt">
+      <path d="M356.9 211.8l5.6-16 5 15.7s17.2.6 17.2.3-13.5 10.3-13.5 10.3l6 17.6c-.2-.5-14.7-10.9-14.7-10.9s-14.8 10.4-14.5 10.4 5.6-17 5.6-17L340.3 212l16.6-.3z"/>
+      <path fill="#ffe700" d="M357.6 212.6l4.9-13.9 4.4 13.7s14.8.4 14.8.2-11.7 9-11.7 9l5.3 15.1c-.2-.4-12.8-9.4-12.8-9.4s-12.8 9-12.6 9 4.9-14.8 4.9-14.8l-11.5-8.7 14.3-.2z"/>
+      <path fill="#108c00" d="M359.7 214.9l2.8-8 2.5 7.8 8.6.2-6.8 5.1s3.2 9 3 8.8c0-.3-7.3-5.4-7.3-5.4l-7.3 5.1 2.8-8.5-6.6-5 8.3-.1z"/>
+    </g>
+    <g stroke-width="1pt">
+      <path d="M325.9 330.6l5.6-16 5 15.8s17.2.5 17.2.3-13.5 10.3-13.5 10.3l6 17.5c-.2-.5-14.7-10.8-14.7-10.8S316.7 358 316.9 358s5.7-17 5.7-17l-13.3-10 16.6-.3z"/>
+      <path fill="#ffe700" d="M326.6 331.4l4.9-13.8 4.4 13.6s14.8.5 14.8.2-11.7 9-11.7 9l5.3 15.2c-.2-.5-12.8-9.4-12.8-9.4s-12.8 9-12.6 9 4.9-14.8 4.9-14.8l-11.5-8.7 14.3-.3z"/>
+      <path fill="#108c00" d="M328.7 333.7l2.8-8 2.5 7.9s8.6.3 8.6.1-6.8 5.2-6.8 5.2l3 8.7c0-.2-7.3-5.4-7.3-5.4l-7.3 5.2 2.8-8.5-6.6-5 8.3-.2z"/>
+    </g>
+    <g stroke-width="1pt">
+      <path d="M177.2 330.6l5.6-16 5 15.8s17.1.5 17.1.3-13.5 10.3-13.5 10.3l6.2 17.5c-.3-.5-14.8-10.8-14.8-10.8S168 358 168.2 358s5.7-17 5.7-17l-13.3-10 16.6-.3z"/>
+      <path fill="#ffe700" d="M178 331.4l4.8-13.8 4.4 13.6s14.8.5 14.8.2-11.7 9-11.7 9l5.3 15.2c-.2-.5-12.8-9.4-12.8-9.4s-12.8 9-12.6 9 4.9-14.8 4.9-14.8l-11.5-8.7 14.3-.3z"/>
+      <path fill="#108c00" d="M180 333.7l2.8-8 2.5 7.9s8.6.3 8.6.1-6.8 5.2-6.8 5.2l3 8.7c0-.2-7.3-5.4-7.3-5.4l-7.3 5.2 2.8-8.5-6.6-5 8.3-.2z"/>
+    </g>
+    <g stroke-width="1pt">
+      <path d="M150 208.7l5.6-16 5.1 15.8s17.1.5 17.1.2-13.5 10.4-13.5 10.4l6.1 17.5c-.3-.5-14.8-10.8-14.8-10.8S140.8 236 141.1 236s5.6-17 5.6-17l-13.3-10 16.6-.3z"/>
+      <path fill="#ffe700" d="M150.8 209.5l4.8-13.8 4.5 13.6s14.7.5 14.7.2-11.7 9-11.7 9l5.3 15.2c-.2-.5-12.8-9.4-12.8-9.4s-12.8 9-12.5 9 4.8-14.8 4.8-14.8l-11.5-8.7 14.4-.3z"/>
+      <path fill="#108c00" d="M152.8 211.8l2.8-8 2.6 7.9 8.5.1-6.7 5.2 3 8.7c-.1-.2-7.4-5.4-7.4-5.4l-7.2 5.2c.2 0 2.8-8.5 2.8-8.5l-6.6-5 8.2-.2z"/>
+    </g>
+    <g stroke-width="1pt">
+      <path d="M324.6 174.1l-5.6 16-5-15.7s-17.2-.5-17.2-.3 13.5-10.3 13.5-10.3l-6-17.5c.2.5 14.7 10.8 14.7 10.8s14.8-10.3 14.5-10.3-5.6 17-5.6 17l13.3 10-16.6.3z"/>
+      <path fill="#ffe700" d="M323.9 173.3c0 .3-5 13.9-5 13.9l-4.3-13.6s-14.8-.5-14.8-.3 11.7-8.9 11.7-8.9l-5.3-15.2c.2.5 12.8 9.4 12.8 9.4s12.8-9 12.6-9-4.9 14.8-4.9 14.8l11.5 8.7-14.4.2z"/>
+      <path fill="#108c00" d="M321.8 171l-2.8 8-2.5-7.8s-8.6-.3-8.6-.1 6.8-5.2 6.8-5.2l-3-8.7c0 .2 7.3 5.4 7.3 5.4l7.3-5.2c-.2 0-2.9 8.5-2.9 8.5l6.7 5-8.3.2z"/>
+    </g>
+    <g stroke-width="1pt">
+      <path d="M367.3 290.3l-5.6 16-5-15.8s-17.2-.5-17.2-.2S353 280 353 280l-6-17.6c.2.5 14.7 10.8 14.7 10.8s14.8-10.3 14.5-10.3-5.6 17-5.6 17L384 290l-16.6.3z"/>
+      <path fill="#ffe700" d="M366.6 289.5l-4.9 13.8-4.4-13.6s-14.8-.4-14.8-.2 11.7-9 11.7-9l-5.3-15.2c.2.5 12.8 9.4 12.8 9.4s12.8-9 12.6-9-4.9 14.8-4.9 14.8l11.5 8.8-14.4.2z"/>
+      <path fill="#108c00" d="M364.5 287.2l-2.8 8-2.5-7.9s-8.6-.2-8.6 0 6.8-5.2 6.8-5.2l-3-8.8c0 .3 7.3 5.4 7.3 5.4l7.3-5.2c-.2 0-2.9 8.6-2.9 8.6l6.7 5-8.3.1z"/>
+    </g>
+    <g stroke-width="1pt">
+      <path d="M261.4 375.3l-5.6 16-5-15.8s-17.2-.5-17.2-.3 13.5-10.3 13.5-10.3l-6-17.5c.2.5 14.7 10.8 14.7 10.8s14.8-10.3 14.5-10.3-5.6 17-5.6 17L278 375l-16.6.3z"/>
+      <path fill="#ffe700" d="M260.7 374.4l-4.9 14-4.4-13.7s-14.8-.5-14.8-.2 11.7-9 11.7-9l-5.3-15.2c.2.5 12.8 9.4 12.8 9.4s12.8-9 12.6-9-4.9 14.8-4.9 14.8l11.5 8.7-14.3.3z"/>
+      <path fill="#108c00" d="M258.6 372.2l-2.8 8-2.5-7.9s-8.6-.3-8.6-.1 6.8-5.2 6.8-5.2l-3-8.7c0 .2 7.3 5.4 7.3 5.4l7.3-5.2-2.8 8.5 6.6 5-8.3.2z"/>
+    </g>
+    <g stroke-width="1pt">
+      <path d="M162 290.3l-5.7 16-5-15.8s-17.2-.5-17.2-.2 13.5-10.3 13.5-10.3l-6-17.6c.2.5 14.7 10.8 14.7 10.8L171 263l-5.7 17 13.3 10.1-16.6.3z"/>
+      <path fill="#ffe700" d="M161.2 289.5l-4.9 13.8-4.4-13.6s-14.8-.4-14.8-.2 11.7-9 11.7-9l-5.3-15.2c.2.5 12.8 9.4 12.8 9.4s12.8-9 12.6-9-4.9 14.8-4.9 14.8l11.5 8.8-14.3.2z"/>
+      <path fill="#108c00" d="M159.1 287.2l-2.8 8-2.5-7.9s-8.6-.2-8.6 0 6.8-5.2 6.8-5.2l-3-8.8c0 .3 7.3 5.4 7.3 5.4l7.3-5.2-2.8 8.6 6.6 5-8.3.1z"/>
+    </g>
+    <g stroke-width="1pt">
+      <path d="M198.7 175.8l-5.6 16-5.2-15.7s-17-.5-17-.3 13.5-10.3 13.5-10.3l-6.1-17.5c.2.5 14.7 10.8 14.7 10.8s14.8-10.3 14.6-10.3-5.6 17-5.6 17l13.2 10-16.5.4z"/>
+      <path fill="#ffe700" d="M197.9 175l-4.9 14-4.4-13.7s-14.8-.5-14.8-.2 11.7-9 11.7-9l-5.3-15.2c.2.5 12.8 9.4 12.8 9.4s12.8-9 12.6-9-4.8 14.8-4.8 14.8l11.4 8.7-14.3.3z"/>
+      <path fill="#108c00" d="M195.8 172.8l-2.8 8-2.5-7.9s-8.5-.3-8.5-.1 6.7-5.2 6.7-5.2l-3-8.7c0 .2 7.3 5.4 7.3 5.4l7.3-5.2-2.8 8.5 6.6 5-8.3.2z"/>
+    </g>
+    <g transform="translate(-250.6 359.4) scale(1.036)">
+      <g fill="#009200" stroke="#000" stroke-width="2.5" transform="matrix(.164 -.016 .012 .184 429.8 -215.6)">
+        <ellipse cx="680.2" cy="586.1" rx="30.8" ry="189.8" transform="matrix(1.405 -.006 .008 1 -534.3 263.7)"/>
+        <ellipse cx="680.2" cy="586.1" rx="30.8" ry="189.8" transform="matrix(1.486 -.006 .01 1 -547.2 267)"/>
+        <ellipse cx="680.2" cy="586.1" rx="30.8" ry="189.8" transform="matrix(1.19 -.006 .007 1.105 -365 214.1)"/>
+      </g>
+      <g stroke="#000" transform="translate(72.9 -9.8)">
+        <path fill="#a95600" stroke-width="2.5" d="M238.3 971.8c30-1.7 16.7-16.7 31.7-25s36.6-3.3 43.3 6.7c6.6 10 1.6 20 10 20 8.3 0 234.5-12.7 242.8-4.4 8.4 8.3 10 25 1.7 31.6s-294.5 14.4-304.5 7.7c-10-6.6-25-35-25-36.6z" transform="matrix(.202 .003 -.004 .214 340.9 -247.3)"/>
+        <path fill="#ff0" stroke-width="3.9" d="M529.6 405.5c0 40 45.6 27.8 46.8 61.2-.7 35.4-76.7 3.5-78.6-61.2 1.9-64.8 75-98 76.7-61 1.2 30.6-45 21-45 61z" transform="matrix(.148 .002 -.003 .115 340.4 -81.7)"/>
+        <path fill="#ff0" stroke-width="3.9" d="M529.6 405.5c0 40 45.6 27.8 46.8 61.2-.7 35.4-76.7 3.5-78.6-61.2 1.9-64.8 75-98 76.7-61 1.2 30.6-45 21-45 61z" transform="matrix(.148 .002 -.003 .115 344.4 -81.6)"/>
+        <path fill="#ff0" stroke-width="3.9" d="M529.6 405.5c0 40 45.6 27.8 46.8 61.2-.7 35.4-76.7 3.5-78.6-61.2 1.9-64.8 75-98 76.7-61 1.2 30.6-45 21-45 61z" transform="matrix(.148 .002 -.003 .115 348.7 -81.8)"/>
+        <path fill="#ff0" stroke-width="3.9" d="M529.6 405.5c0 40 45.6 27.8 46.8 61.2-.7 35.4-76.7 3.5-78.6-61.2 1.9-64.8 75-98 76.7-61 1.2 30.6-45 21-45 61z" transform="matrix(.148 .002 -.003 .115 352.7 -81.8)"/>
+        <ellipse cx="478.4" cy="-41.1" fill="#a95600" stroke-width=".4" rx="3.5" ry="3.4" transform="matrix(1.095 .016 -.024 1.154 -75.6 4.7)"/>
+      </g>
+      <g fill="#009200" stroke="#000" stroke-width="2.5" transform="rotate(-5.8 688.4 -625.2)">
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.166 -.008 .002 .315 369.8 -361.6)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.166 -.008 .002 .315 364 -362.7)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.166 -.008 .002 .315 360.6 -370.6)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 -.01 .002 .348 369.3 -399.4)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 -.008 .002 .326 377.4 -379)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 -.008 .002 .326 373.2 -382.2)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 -.008 .002 .326 368 -386.7)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 -.008 .002 .326 363 -389.5)"/>
+      </g>
+      <path fill="#804bff" stroke="#000" stroke-width="2.5" d="M173.2 346.4s-54.2 64.9-21.3 208.8C186 699.8 331 745 331 745s26.5-47.5 1.7-164c-40-170-116.1-234.6-116.1-234.6h-43.3z" transform="matrix(.177 .032 -.03 .182 461.8 -208.6)"/>
+      <g fill="#009200" stroke="#000" stroke-width="2.5" transform="rotate(4.5 181 769.9)">
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.166 -.008 .002 .315 369.8 -361.6)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.166 -.008 .002 .315 364 -362.7)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.166 -.008 .002 .315 360.6 -370.6)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 -.01 .002 .348 369.3 -399.4)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 -.008 .002 .326 377.4 -379)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 -.008 .002 .326 373.2 -382.2)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 -.008 .002 .326 368 -386.7)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 -.008 .002 .326 363 -389.5)"/>
+      </g>
+      <ellipse cx="624.4" cy="606.1" fill="#c90000" stroke="#000" stroke-width="1pt" rx="58.3" ry="186.5" transform="matrix(.157 -.06 .064 .148 369.6 -145)"/>
+      <g fill="#009200" stroke="#000" transform="rotate(1 242.4 -1957.8)">
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.5" rx="10.8" ry="12.9" transform="matrix(.395 0 0 .293 445 -230.5)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.354 0 0 .293 457.2 -236)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.354 0 0 .293 452 -236)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.37 0 0 .275 449.5 -233.5)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.37 0 0 .275 449 -238)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.354 0 0 .293 447 -238.8)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.354 0 0 .287 448 -241.6)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.5" rx="10.8" ry="12.9" transform="matrix(.395 0 0 .293 432.8 -243.5)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.37 0 0 .275 446 -243.5)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.354 0 0 .287 444.2 -247)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.354 0 0 .293 436.1 -243.2)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.354 0 0 .287 437.4 -243.9)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.354 0 0 .287 439 -247)"/>
+      </g>
+      <g fill="#009200" stroke="#000" transform="matrix(.18 -.005 .004 .185 421 -216.8)">
+        <ellipse cx="528.7" cy="564.5" stroke-width="2.5" rx="67.4" ry="205.6" transform="matrix(.976 -.308 .363 .874 -245.8 324.4)"/>
+        <ellipse cx="528.7" cy="646.1" stroke-width="2.5" rx="13.3" ry="40.8" transform="rotate(-23.4 630.5 660.9)"/>
+        <path stroke-width="1.5" d="M139.9 644c0 57.7-18.8 86.2-34.6 110.3 7.5-32.5 13-52.6 13-110.3 0-57.7 29.5-85.3 40.3-102-4.2 16.7-18.7 44.3-18.7 102z" transform="matrix(1.883 -.456 .953 1.182 -352.3 -10)"/>
+        <path stroke-width="1.5" d="M139.9 644c0 57.7-18.8 86.2-34.6 110.3 7.5-32.5 13-52.6 13-110.3 0-57.7 29.5-85.3 40.3-102-4.2 16.7-18.7 44.3-18.7 102z" transform="matrix(1.883 -.456 .953 1.182 -348.4 44)"/>
+        <path stroke-width="1.5" d="M139.9 644c0 57.7-18.8 86.2-34.6 110.3 7.5-32.5 13-52.6 13-110.3 0-57.7 29.5-85.3 40.3-102-4.2 16.7-18.7 44.3-18.7 102z" transform="matrix(1.873 -.495 .978 1.162 -362 105.8)"/>
+        <ellipse cx="528.7" cy="646.1" stroke-width="1.4" rx="13.3" ry="40.8" transform="matrix(1.81 -.4 .7 1.635 -915.6 -221)"/>
+        <ellipse cx="528.7" cy="646.1" stroke-width="1.6" rx="13.3" ry="40.8" transform="matrix(1.626 -.23 .542 1.353 -739.5 -91.8)"/>
+        <ellipse cx="528.7" cy="646.1" stroke-width="1.6" rx="13.3" ry="40.8" transform="matrix(1.63 -.197 .513 1.363 -750.6 -91.8)"/>
+        <ellipse cx="528.7" cy="646.1" stroke-width="2.1" rx="13.3" ry="40.8" transform="matrix(1.314 -.2 .47 1.01 -531 47.6)"/>
+        <ellipse cx="528.7" cy="646.1" stroke-width="2.1" rx="13.3" ry="40.8" transform="matrix(1.326 -.13 .403 1.033 -517.9 12.2)"/>
+        <path stroke-width="2.1" d="M145.7 569.5c0 34-6.7 61.6-15 61.6s-15-27.6-15-61.6" transform="matrix(1.025 -.493 .464 1.177 12.8 -14.5)"/>
+        <ellipse cx="528.7" cy="646.1" stroke-width="2.1" rx="13.3" ry="40.8" transform="matrix(1.326 -.13 .403 1.033 -519.5 -34.4)"/>
+        <ellipse cx="528.7" cy="646.1" stroke-width="2.1" rx="13.3" ry="40.8" transform="matrix(1.33 -.105 .38 1.04 -534 -40.1)"/>
+        <path stroke-width="2.9" d="M145.7 569.5c0 34-6.7 61.6-15 61.6s-15-27.6-15-61.6" transform="matrix(.672 -.472 .46 .8 39.5 143.3)"/>
+        <path stroke-width="2.9" d="M145.7 569.5c0 34-6.7 61.6-15 61.6s-15-27.6-15-61.6" transform="matrix(.672 -.472 .46 .8 51.1 125.8)"/>
+        <path stroke-width="2.1" d="M145.7 569.5c0 34-6.7 61.6-15 61.6s-15-27.6-15-61.6" transform="matrix(.937 -.645 .64 1.092 -40.2 -10.7)"/>
+        <path stroke-width="2.7" d="M145.7 569.5c0 34-6.7 61.6-15 61.6s-15-27.6-15-61.6" transform="matrix(.672 -.52 .46 .88 68.6 71.2)"/>
+      </g>
+      <g fill="#804bff" stroke="#000" stroke-width="2.5">
+        <path d="M276.3 345.4c-12.3 9.2.4 25.2 12 30.7 13 7.7 86.6 58.2 136.3 12-40.8.8-118.7-63.2-148.3-42.7z" transform="matrix(.156 .007 -.004 .225 458 -214.3)"/>
+        <path d="M276.3 345.4c-12.3 9.2.4 25.2 12 30.7 13 7.7 86.6 58.2 136.3 12-40.8.8-118.7-63.2-148.3-42.7z" transform="matrix(.156 .007 -.004 .225 456.6 -220.2)"/>
+        <path d="M276.3 345.4c-12.3 9.2.4 25.2 12 30.7 13 7.7 86.6 58.2 136.3 12-40.8.8-118.7-63.2-148.3-42.7z" transform="matrix(.156 .007 -.004 .225 454.8 -225.8)"/>
+        <path d="M276.3 345.4c-12.3 9.2.4 25.2 12 30.7 13 7.7 86.6 58.2 136.3 12-40.8.8-118.7-63.2-148.3-42.7z" transform="matrix(.156 .007 -.004 .225 450.9 -232.2)"/>
+      </g>
+      <g transform="rotate(1 -589.6 681.6)">
+        <path fill="#804bff" stroke="#000" stroke-width="2.5" d="M211.2 247.3c21.7-12 56.6-9.8 79.7 11.2 19.4 17 45.3 75.2 70.3 92.8a57.7 57.7 0 01-42.2-15.2c-28.8 15.5-38.1 16.7-64 15.7-35.8-1.4-62.4-17.7-68-40.6-6.3-21.8 4.8-52.5 24.2-63.9z" transform="matrix(.21 -.04 .047 .18 407.8 -213.6)"/>
+        <ellipse cx="287.2" cy="323" fill="red" stroke="#000" stroke-width="2.5" rx="14.2" ry="15" transform="matrix(.245 0 0 .134 401.8 -215.2)"/>
+        <ellipse cx="204.6" cy="348.3" fill="#ff0" stroke="#000" stroke-width="2.5" rx="23.3" ry="15.9" transform="matrix(.194 -.076 .068 .173 398.7 -208)"/>
+        <circle cx="283.9" cy="333.9" r="5.8" transform="matrix(.214 0 0 .185 411.3 -233.7)"/>
+        <path fill="#ff0" stroke="#000" stroke-width="6.6" d="M516.8 260.3c4.4 18-6.7 43-33.1 52.6-26.8 13.2-46.1 41.8-55.7 88-47.2-103.2-23-148.3 20.6-160.3 37.4-14.4 60.4-13.4 68.2 19.7z" transform="matrix(.092 0 -.003 .085 417.9 -191.5)"/>
+        <circle cx="199" cy="362.4" r="4.7" transform="matrix(.187 -.013 .014 .19 418.7 -235)"/>
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/do.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/do.svg
new file mode 100644
index 0000000..03d3f35
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/do.svg
@@ -0,0 +1,6745 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-do" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M83.7 80.3h364.9v364.9h-365z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="translate(-117.4 -112.7) scale(1.403)">
+    <path fill="#00319c" fill-rule="evenodd" d="M313.2 314.8h318.1V510H313.2z"/>
+    <path fill="#d62918" fill-rule="evenodd" d="M-99.2 315.4H218V510H-99.2z"/>
+    <path fill="#00319c" fill-rule="evenodd" d="M-98.6-1.8h317.2V216H-98.6z"/>
+    <path fill="#d62918" fill-rule="evenodd" d="M315 0h315.7v218H315z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M-99 215.8h731v101H-99z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M217.3-.7h98.5v511h-98.5z"/>
+    <path fill="#cecece" d="M259.3 218.8l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M259.8 218.8l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M260.3 218.8l.5.5-.5-.5z"/>
+    <path fill="#848c9c" d="M263.8 218.8l.5.5-.5-.5z"/>
+    <path fill="#848ca5" d="M264.7 219l.3.1-.3-.2z"/>
+    <path fill="#848c9c" d="M265.3 218.8l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M268.9 218.8l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M269.4 218.8l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M269.9 218.8l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M255.8 219.3l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M256.3 219.3l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M256.8 219.3l.5.4-.5-.4z"/>
+    <path fill="#42425a" d="M257.3 219.3l.5.4-.5-.4z"/>
+    <path fill="#425a84" d="M257.8 219.3l.5.4-.5-.4z"/>
+    <path fill="#00184a" d="M258.7 219.4l.3.2-.3-.2z"/>
+    <path fill="#002984" d="M259.7 219.4l.3.2-.3-.2z"/>
+    <path fill="#003994" d="M251.7 224c-6 0-13.9.4-19 3.4-3.5 2-3.1 7.6 1.4 7.5v.5h-1v.4l7.6-1.9v-.4h-3v-.5h3.5l-1-2 18-1.8-1-3.4c6.7-.8 12-.2 18.6 1.5v.4l-4-1c.4 2.2 2.7 1.6 4.4 1l-5 1v.5l11.6 1 12 2.8v.5l-6.5-1v.5l8 2.4-1.5-1.5v-.4l2 2.3c3.2.2 5.6.9 7.5 3.4l-7-2.9 4 9h.5V244h.5v1.4l4.5-1c-1.1-4.8-3.2-10.5-8-12.9.4-1.8 0-2.6-1.5-3.8 1.9 3.7-1.2 5.2-4 2.4l-1 1 1-3.4-3 2.9.5-3.3h-.5l-.5 2.8-1.5-1.4-.5 1.4-8-1V225l1 1.4h.5V225l2.5 1.4h.5l10 .5.5 3.8h.5l1.5-3.3a53.3 53.3 0 00-19-3.4c.3-3.2-3.3-3.8-6-4.2-4.9-.7-19.6-2.4-20.1 4.2z"/>
+    <path fill="#002984" d="M269.7 219.4l.3.2-.3-.2z"/>
+    <path fill="#00184a" d="M270.7 219.4l.3.2-.3-.2z"/>
+    <path fill="#314a7b" d="M271.4 219.3l.5.4-.5-.4z"/>
+    <path fill="#42425a" d="M271.9 219.3l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M272.4 219.3l.5.4-.5-.4z"/>
+    <path fill="#ada5a5" d="M272.9 219.3l.5.4-.5-.4z"/>
+    <path fill="#dedede" d="M273.4 219.3l.5.4-.5-.4z"/>
+    <path fill="#ada5a5" d="M254.3 219.7l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M254.8 219.7l.5.5-.5-.5z"/>
+    <path fill="#21315a" d="M255.3 219.7l.5.5-.5-.5z"/>
+    <path fill="#00215a" d="M255.8 219.7l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M256.3 219.7l.5.5-.5-.5m16.6 0l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M273.4 219.7l.5.5-.5-.5z"/>
+    <path fill="#10295a" d="M273.9 219.7l.5.5-.5-.5z"/>
+    <path fill="#636b7b" d="M274.4 219.7l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M274.9 219.7l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M252.8 220.2l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M253.3 220.2l.5.5-.5-.5z"/>
+    <path fill="#10214a" d="M253.8 220.2l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M254.3 220.2l.5.5-.5-.5z"/>
+    <path fill="#184a8c" d="M259.3 220.2l.5.5-.5-.5z"/>
+    <path fill="#5a6b63" d="M259.8 220.2l.5.5-.5-.5z"/>
+    <path fill="#295284" d="M260.3 220.2l.5.5-.5-.5m1 0l.5.5-.5-.5zm3 0l.5.5-.5-.5z"/>
+    <path fill="#4a636b" d="M267.4 220.2l.5.5-.5-.5z"/>
+    <path fill="#7b7b52" d="M268.9 220.2l.5.5-.5-.5z"/>
+    <path fill="#5a6b63" d="M269.4 220.2l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M274.9 220.2l.5.5-.5-.5z"/>
+    <path fill="#10295a" d="M275.4 220.2l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M275.9 220.2l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M276.4 220.2l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M251.8 220.7l-.5 1 .5-1z"/>
+    <path fill="#8c8c8c" d="M252.3 220.7l.5.5-.5-.5z"/>
+    <path fill="#10295a" d="M252.8 220.7l.5.5-.5-.5z"/>
+    <path fill="#5a6b63" d="M255.8 220.7l.5.5-.5-.5z"/>
+    <path fill="#7b7b52" d="M256.3 220.7l.5.5-.5-.5z"/>
+    <path fill="#ad9431" d="M256.8 220.7l.5.5-.5-.5z"/>
+    <path fill="#9c8c42" d="M257.3 220.7l.5.5-.5-.5z"/>
+    <path fill="#395273" d="M257.8 220.7l.5.5-.5-.5z"/>
+    <path fill="#8c8442" d="M259.3 220.7l.5.5-.5-.5z"/>
+    <path fill="#9c8c42" d="M260.3 220.7l.5.5-.5-.5z"/>
+    <path fill="#395273" d="M261.3 220.7l.5.5-.5-.5zm3 0l.5.5-.5-.5z"/>
+    <path fill="#9c8c42" d="M269.4 220.7l.5.5-.5-.5z"/>
+    <path fill="#bd9c29" d="M271.7 220.8l.3.2-.3-.2z"/>
+    <path fill="#295284" d="M272.4 220.7l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M276.4 220.7l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M276.9 220.7l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M277.4 220.7l.5.5-.5-.5z"/>
+    <path fill="#31394a" d="M251.8 221.2l.5.4-.5-.4z"/>
+    <path fill="#deb518" d="M255.8 221.2l.5.4-.5-.4z"/>
+    <path fill="#efbd08" d="M257.8 221.2l.5.4-.5-.4z"/>
+    <path fill="#bd9c29" d="M259.3 221.2l.5.4-.5-.4z"/>
+    <path fill="#efbd08" d="M260.3 221.2l.5.4-.5-.4z"/>
+    <path fill="#7b7b52" d="M265.8 221.2l.5.4-.5-.4z"/>
+    <path fill="#003994" d="M266.3 221.2l.5.4-.5-.4z"/>
+    <path fill="#4a636b" d="M266.9 221.2l.5.4-.5-.4z"/>
+    <path fill="#395273" d="M267.9 221.2l.5.4-.5-.4z"/>
+    <path fill="#184a8c" d="M270.9 221.2l.5.4-.5-.4z"/>
+    <path fill="#4a636b" d="M272.4 221.2l.5.4-.5-.4z"/>
+    <path fill="#10214a" d="M277.4 221.2l1 1-1-1z"/>
+    <path fill="#cecece" d="M277.9 221.2l.5.4-.5-.4z"/>
+    <path fill="#212139" d="M251.3 221.7l.5.4-.5-.4z"/>
+    <path fill="#bd9c29" d="M255.8 221.7l.5.4-.5-.4z"/>
+    <path fill="#cead21" d="M256.3 221.7l.5.4-.5-.4z"/>
+    <path fill="#003994" d="M257 222l.2.3-.2-.3z"/>
+    <path fill="#395273" d="M257.5 222l.2.3-.2-.3z"/>
+    <path fill="#6b735a" d="M258.3 221.7l.5.4-.5-.4z"/>
+    <path fill="#cead21" d="M259.8 221.7l.5.4-.5-.4z"/>
+    <path fill="#5a6b63" d="M260.8 221.7l.5.4-.5-.4z"/>
+    <path fill="#9c8c42" d="M265.8 221.7l.5.4-.5-.4z"/>
+    <path fill="#395273" d="M266.3 221.7l.5.4-.5-.4z"/>
+    <path fill="#9c8c42" d="M266.9 221.7l.5.4-.5-.4z"/>
+    <path fill="#184a8c" d="M267.9 221.7l.5.4-.5-.4z"/>
+    <path fill="#295284" d="M268.4 221.7l.5.4-.5-.4z"/>
+    <path fill="#8c8442" d="M270.9 221.7l.5.4-.5-.4z"/>
+    <path fill="#7b7b52" d="M272.4 221.7l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M278.4 221.7l.5.4-.5-.4z"/>
+    <path fill="#cecece" d="M250.8 222.1l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M251.3 222.1l.5.5-.5-.5z"/>
+    <path fill="#7b7b52" d="M255.8 222.1l.5.5-.5-.5z"/>
+    <path fill="#395273" d="M258.3 222.1l.5.5-.5-.5z"/>
+    <path fill="#295284" d="M258.8 222.1l.5.5-.5-.5z"/>
+    <path fill="#4a636b" d="M259.8 222.1l.5.5-.5-.5z"/>
+    <path fill="#deb518" d="M260.3 222.1l.5.5-.5-.5z"/>
+    <path fill="#ad9431" d="M260.8 222.1l.5.5-.5-.5m6.5 0l.5.5-.5-.5z"/>
+    <path fill="#395273" d="M268.5 222.4l.2.4-.2-.4z"/>
+    <path fill="#efbd08" d="M270.9 222.1l.5.5-.5-.5z"/>
+    <path fill="#ad9431" d="M271.4 222.1l.5.5-.5-.5z"/>
+    <path fill="#cead21" d="M271.9 222.1l.5.5-.5-.5z"/>
+    <path fill="#ad9431" d="M272.4 222.1l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M277.9 222.1l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M278.4 222.1l.5.5-.5-.5m-27.6.5l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M251.5 223l.1.2-.1-.3z"/>
+    <path fill="#6b735a" d="M255.8 222.6l.5.5-.5-.5z"/>
+    <path fill="#bd9c29" d="M256.8 222.6l.5.5-.5-.5z"/>
+    <path fill="#184a8c" d="M258.3 222.6l.5.5-.5-.5z"/>
+    <path fill="#5a6b63" d="M258.8 222.6l.5.5-.5-.5z"/>
+    <path fill="#7b7b52" d="M259.8 222.6l.5.5-.5-.5z"/>
+    <path fill="#cead21" d="M260.3 222.6l.5.5-.5-.5z"/>
+    <path fill="#9c8c42" d="M265.8 222.6l.5.5-.5-.5z"/>
+    <path fill="#4a636b" d="M266.3 222.6l.5.5-.5-.5z"/>
+    <path fill="#deb518" d="M266.9 222.6l.5.5-.5-.5z"/>
+    <path fill="#5a6b63" d="M270.4 222.6l.5.5-.5-.5z"/>
+    <path fill="#4a636b" d="M271.4 222.6l.5.5-.5-.5z"/>
+    <path fill="#bd9c29" d="M272.2 222.8l.3.1-.3-.1z"/>
+    <path fill="#bdbdbd" d="M250.8 223l.5.6-.5-.5z"/>
+    <path fill="#395273" d="M255.8 223l.5.6-.5-.5z"/>
+    <path fill="#cead21" d="M256.8 223l.5.6-.5-.5z"/>
+    <path fill="#8c8442" d="M257.3 223l.5.6-.5-.5z"/>
+    <path fill="#395273" d="M257.8 223l.5.6-.5-.5z"/>
+    <path fill="#8c8442" d="M258.8 223l.5.6-.5-.5z"/>
+    <path fill="#5a6b63" d="M261.3 223l.5.6-.5-.5z"/>
+    <path fill="#7b7b52" d="M266 223.4l.2.3-.2-.3m.8-.3l1 1.4-1-1.4z"/>
+    <path fill="#4a636b" d="M268.4 223l.5.6-.5-.5z"/>
+    <path fill="#bd9c29" d="M270.4 223l.5.6-.5-.5z"/>
+    <path fill="#deb518" d="M271.9 223l.5.6-.5-.5z"/>
+    <path fill="#ada5a5" d="M248.8 223.6l.5.4-.5-.4z"/>
+    <path fill="#42425a" d="M250.8 223.6l.5.4-.5-.4z"/>
+    <path fill="#00216b" d="M251.3 223.6l.5.4-.5-.4z"/>
+    <path fill="#7b7b52" d="M256.8 223.6l.5.4-.5-.4z"/>
+    <path fill="#bd9c29" d="M258.8 223.6l.5.4-.5-.4z"/>
+    <path fill="#cead21" d="M259.3 223.6l.5.4-.5-.4z"/>
+    <path fill="#395273" d="M259.8 223.6l.5.4-.5-.4z"/>
+    <path fill="#295284" d="M260.3 223.6l.5.4-.5-.4z"/>
+    <path fill="#deb518" d="M260.8 223.6l.5.4-.5-.4z"/>
+    <path fill="#bd9c29" d="M261.3 223.6l.5.4-.5-.4z"/>
+    <path fill="#7b7b52" d="M268.4 223.6l.5.4-.5-.4z"/>
+    <path fill="#ad9431" d="M270.9 223.6l.5.4-.5-.4z"/>
+    <path fill="#cead21" d="M271.9 223.6l.5.4-.5-.4z"/>
+    <path fill="#184a8c" d="M272.9 223.6l.5.4-.5-.4z"/>
+    <path fill="#002984" d="M277.9 223.6l.5.4-.5-.4z"/>
+    <path fill="#42425a" d="M278.4 223.6l.5.4-.5-.4z"/>
+    <path fill="#9c9494" d="M280.4 223.6l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M282.4 223.6l.5.4-.5-.4z"/>
+    <path fill="#cecece" d="M242.8 224l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M243.3 224l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M244.1 224.2l.4.2-.4-.2z"/>
+    <path fill="#42425a" d="M244.8 224l.5.5-.5-.5z"/>
+    <path fill="#314a7b" d="M245.3 224l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M246.1 224.2l.4.2-.4-.2z"/>
+    <path fill="#00216b" d="M246.8 224l.5.5-.5-.5z"/>
+    <path fill="#9c8c42" d="M256.8 224l.5.5-.5-.5z"/>
+    <path fill="#ffce08" d="M258.8 224l.5.5-.5-.5z"/>
+    <path fill="#8c8442" d="M259.3 224l.5.5-.5-.5z"/>
+    <path fill="#6b735a" d="M260.8 224l.5.5-.5-.5z"/>
+    <path fill="#8c8442" d="M261.3 224l.5.5-.5-.5z"/>
+    <path fill="#184a8c" d="M262.3 224l.5.5-.5-.5z"/>
+    <path fill="#7b7b52" d="M262.8 224l.5.5-.5-.5z"/>
+    <path fill="#184a8c" d="M263.3 224l.5.5-.5-.5z"/>
+    <path fill="#395273" d="M265.3 224l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#5a6b63" d="M268.4 224l.5.5-.5-.5z"/>
+    <path fill="#bd9c29" d="M268.9 224l.5.5-.5-.5z"/>
+    <path fill="#8c8442" d="M269.9 224l.5.5-.5-.5z"/>
+    <path fill="#184a8c" d="M270.9 224l.5.5-.5-.5z"/>
+    <path fill="#395273" d="M271.9 224l.5.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M282.4 224l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M283.2 224.2l.4.2-.4-.2z"/>
+    <path fill="#314a7b" d="M283.9 224l.5.5-.5-.5z"/>
+    <path fill="#42425a" d="M284.4 224l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M284.9 224l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M285.4 224l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M285.9 224l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M286.4 224l.5.5-.5-.5m-46.6.5l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M240.3 224.5l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M240.8 224.5l.5.5-.5-.5z"/>
+    <path fill="#42425a" d="M241.3 224.5l.5.5-.5-.5z"/>
+    <path fill="#29396b" d="M241.8 224.5l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M242.3 224.5l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M242.8 224.5l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M243.3 224.5l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M250.8 224.5l.5.5-.5-.5z"/>
+    <path fill="#8c8442" d="M256.3 224.5l.5.5-.5-.5z"/>
+    <path fill="#7b7b52" d="M256.8 224.5l.5.5-.5-.5z"/>
+    <path fill="#184a8c" d="M271.9 224.5l.5.5-.5-.5z"/>
+    <path fill="#7b7b52" d="M272.4 224.5l.5.5-.5-.5z"/>
+    <path fill="#295284" d="M272.9 224.5l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M277.4 224.5l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M286.2 224.7l.4.1-.4-.1z"/>
+    <path fill="#00184a" d="M286.9 224.5l.5.5-.5-.5z"/>
+    <path fill="#10295a" d="M287.4 224.5l.5.5-.5-.5z"/>
+    <path fill="#42425a" d="M287.9 224.5l.5.5-.5-.5z"/>
+    <path fill="#636b7b" d="M288.4 224.5l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M288.9 224.5l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M289.4 224.5l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M237.8 225l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M238.3 225l.5.5-.5-.5z"/>
+    <path fill="#525a6b" d="M238.8 225l.5.5-.5-.5z"/>
+    <path fill="#10295a" d="M239.3 225l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M239.8 225l.5.5-.5-.5z"/>
+    <path fill="#395273" d="M245.3 225l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M250.8 225l.5.5-.5-.5z"/>
+    <path fill="#00215a" d="M277.4 225l-.5 1 .5-1z"/>
+    <path fill="#395273" d="M279.9 225l.5.5-.5-.5z"/>
+    <path fill="#184a8c" d="M280.4 225l.5.5-.5-.5z"/>
+    <path fill="#395273" d="M281.4 225l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M289.4 225l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M290 225l.4.5-.5-.5z"/>
+    <path fill="#42425a" d="M290.4 225l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M291 225l.4.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M291.4 225l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M292 225l.4.5-.5-.5z"/>
+    <path fill="#dedede" d="M235.8 225.5l.5.4-.5-.4z"/>
+    <path fill="#7b7373" d="M236.3 225.5l.5.4-.5-.4z"/>
+    <path fill="#314a7b" d="M236.8 225.5l.5.4-.5-.4z"/>
+    <path fill="#00184a" d="M237.3 225.5l.5.4-.5-.4z"/>
+    <path fill="#002984" d="M237.8 225.5l.5.4-.5-.4z"/>
+    <path fill="#184a8c" d="M241.3 225.5l.5.4-.5-.4z"/>
+    <path fill="#6b735a" d="M241.8 225.5l.5.4-.5-.4z"/>
+    <path fill="#395273" d="M242.3 225.5l.5.4-.5-.4z"/>
+    <path fill="#5a6b63" d="M244.3 225.5l.5.4-.5-.4z"/>
+    <path fill="#efbd08" d="M244.8 225.5l.5.4-.5-.4z"/>
+    <path fill="#ffce08" d="M245.6 225.6l.4.2-.4-.2z"/>
+    <path fill="#4a636b" d="M246.3 225.5l.5.4-.5-.4z"/>
+    <path fill="#00215a" d="M250.8 225.5l.5.4-.5-.4z"/>
+    <path fill="#002984" d="M259.2 225.6l.3.2-.3-.2z"/>
+    <path fill="#00215a" d="M259.8 225.5l.5.4-.5-.4z"/>
+    <path fill="#00184a" d="M260.3 225.5l.5.4-.5-.4z"/>
+    <path fill="#29396b" d="M260.8 225.5l.5.4-.5-.4z"/>
+    <path fill="#425a84" d="M261.3 225.5l.5.4-.5-.4z"/>
+    <path fill="#636b7b" d="M264.3 225.5l.5.4-.5-.4z"/>
+    <path fill="#737b94" d="M264.8 225.5l.5.4-.5-.4z"/>
+    <path fill="#29396b" d="M268.4 225.5l.5.4-.5-.4z"/>
+    <path fill="#00184a" d="M269.2 225.6l.3.2-.3-.2z"/>
+    <path fill="#002984" d="M270.2 225.6l.3.2-.3-.2z"/>
+    <path fill="#6b6b4a" d="M277.4 225.5l.5.4-.5-.4z"/>
+    <path fill="#7b7b52" d="M280.4 225.5l1 3.8-1-3.8z"/>
+    <path fill="#cead21" d="M282.9 225.5l.5.4-.5-.4z"/>
+    <path fill="#4a636b" d="M283.4 225.5l.5.4-.5-.4z"/>
+    <path fill="#8c8442" d="M284.4 225.5l.5.4-.5-.4z"/>
+    <path fill="#395273" d="M286.4 225.5l-.5 1.9.5-2z"/>
+    <path fill="#002984" d="M291.4 225.5l.5.4-.5-.4z"/>
+    <path fill="#00215a" d="M292 225.5l.4.4-.5-.4z"/>
+    <path fill="#314a7b" d="M292.4 225.5l.5.4-.5-.4z"/>
+    <path fill="#7b7373" d="M293 225.5l.4.4-.5-.4z"/>
+    <path fill="#cecece" d="M293.4 225.5l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M234.3 226l.5.4-.5-.5z"/>
+    <path fill="#8c8c8c" d="M234.8 226l.5.4-.5-.5z"/>
+    <path fill="#31425a" d="M235.3 226l.5.4-.5-.5z"/>
+    <path fill="#00216b" d="M235.8 226l.5.4-.5-.5z"/>
+    <path fill="#5a6b63" d="M240.8 226l.5.4-.5-.5z"/>
+    <path fill="#cead21" d="M242.8 226l.5.4-.5-.5z"/>
+    <path fill="#deb518" d="M244.6 226.1l.4.2-.4-.2z"/>
+    <path fill="#7b7b52" d="M245.3 226l.5.4-.5-.5z"/>
+    <path fill="#deb518" d="M246.1 226.1l.4.2-.4-.2z"/>
+    <path fill="#00216b" d="M251.3 226l.5.4-.5-.5m6 0l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M257.8 226l.5.4-.5-.5z"/>
+    <path fill="#cecece" d="M269.9 226l.5.4-.5-.5z"/>
+    <path fill="#bdbdbd" d="M270.4 226l.5.4-.5-.5z"/>
+    <path fill="#ada5a5" d="M270.9 226l.5.4-.5-.5z"/>
+    <path fill="#8c8c8c" d="M271.4 226l.5.4-.5-.5z"/>
+    <path fill="#00184a" d="M272 226.3l.2.3-.2-.3z"/>
+    <path fill="#001039" d="M276.9 226l.5.4-.5-.5z"/>
+    <path fill="#deb518" d="M277.4 226l.5.4-.5-.5z"/>
+    <path fill="#bd9c29" d="M281.9 226l.5.4-.5-.5z"/>
+    <path fill="#7b7b52" d="M282.4 226l-.5.9.5-1z"/>
+    <path fill="#deb518" d="M282.9 226l.5.4-.5-.5z"/>
+    <path fill="#bd9c29" d="M284.4 226l1 .9-1-1zm3 0l.5.4-.5-.5z"/>
+    <path fill="#ffce08" d="M287.9 226l.5.4-.5-.5z"/>
+    <path fill="#bd9c29" d="M288.4 226l.5.4-.5-.5z"/>
+    <path fill="#ad9431" d="M288.9 226l.5.4-.5-.5z"/>
+    <path fill="#4a636b" d="M289.4 226l.5.4-.5-.5z"/>
+    <path fill="#00216b" d="M293.4 226l.5.4-.5-.5z"/>
+    <path fill="#21315a" d="M294 226l.4.4-.5-.5z"/>
+    <path fill="#8c8c8c" d="M294.4 226l.5.4-.5-.5z"/>
+    <path fill="#dedede" d="M295 226l.4.4-.5-.5z"/>
+    <path fill="#9c9494" d="M233.3 226.4l.5.5-.5-.5z"/>
+    <path fill="#525a6b" d="M233.8 226.4l.5.5-.5-.5z"/>
+    <path fill="#00215a" d="M234.3 226.4l.5.5-.5-.5z"/>
+    <path fill="#bd9c29" d="M238.8 226.4l.5.5-.5-.5z"/>
+    <path fill="#deb518" d="M241.3 226.4l.5.5-.5-.5z"/>
+    <path fill="#4a636b" d="M241.8 226.4l.5.5-.5-.5z"/>
+    <path fill="#9c8c42" d="M242.3 226.4l.5.5-.5-.5z"/>
+    <path fill="#7b7b52" d="M243.3 226.4l.5.5-.5-.5z"/>
+    <path fill="#ffce08" d="M244.3 226.4l1 1-1-1z"/>
+    <path fill="#8c8442" d="M244.8 226.4l.5.5-.5-.5z"/>
+    <path fill="#003994" d="M245.3 226.4l.5.5-.5-.5z"/>
+    <path fill="#295284" d="M245.8 226.4l.5.5-.5-.5z"/>
+    <path fill="#5a6b63" d="M246.3 226.4l.5.5-.5-.5z"/>
+    <path fill="#001039" d="M251.3 226.4l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M255.8 226.4l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M256.3 226.4l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M256.8 226.4l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M257.8 226.4l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M270.9 226.4l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M271.5 226.7l.2.4-.2-.4z"/>
+    <path fill="#002984" d="M272.5 226.7l.2.4-.2-.4z"/>
+    <path fill="#313931" d="M276.9 226.4l.5.5-.5-.5z"/>
+    <path fill="#295284" d="M280.9 226.4l.5.5-.5-.5z"/>
+    <path fill="#003994" d="M282.4 226.4l.5.5-.5-.5z"/>
+    <path fill="#8c8442" d="M282.9 226.4l.5.5-.5-.5z"/>
+    <path fill="#184a8c" d="M283.9 226.4l.5.5-.5-.5z"/>
+    <path fill="#efbd08" d="M284.4 226.4l.5.5-.5-.5z"/>
+    <path fill="#003994" d="M285.4 226.4l.5.5-.5-.5m1.7.3l.1.4-.1-.4z"/>
+    <path fill="#cead21" d="M287.4 226.4l.5.5-.5-.5z"/>
+    <path fill="#efbd08" d="M287.9 226.4l.5.5-.5-.5z"/>
+    <path fill="#cead21" d="M288.4 226.4l.5.5-.5-.5z"/>
+    <path fill="#295284" d="M290 226.4l.4.5-.5-.5z"/>
+    <path fill="#ffce08" d="M290.4 226.4l.5.5-.5-.5z"/>
+    <path fill="#cead21" d="M291 226.4l.4.5-.5-.5z"/>
+    <path fill="#8c8442" d="M291.4 226.4l.5.5-.5-.5z"/>
+    <path fill="#5a6b63" d="M292 226.4l.4.5-.5-.5z"/>
+    <path fill="#184a8c" d="M292.4 226.4l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M295 226.4l.4.5-.5-.5z"/>
+    <path fill="#31394a" d="M295.4 226.4l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M296 226.4l.4.5-.5-.5z"/>
+    <path fill="#efefef" d="M296.4 226.4l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M232.3 226.9l.4.5-.4-.5z"/>
+    <path fill="#212139" d="M232.8 226.9l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M233.3 226.9l.5.5-.5-.5z"/>
+    <path fill="#5a6b63" d="M235.3 226.9l.5.5-.5-.5z"/>
+    <path fill="#9c8c42" d="M235.8 226.9l.5.5-.5-.5z"/>
+    <path fill="#deb518" d="M236.3 226.9l.5.5-.5-.5z"/>
+    <path fill="#bd9c29" d="M237.3 226.9l.5.5-.5-.5z"/>
+    <path fill="#7b7b52" d="M238.8 226.9l.5.5-.5-.5z"/>
+    <path fill="#184a8c" d="M239.8 226.9l.5.5-.5-.5z"/>
+    <path fill="#395273" d="M240.3 226.9l.5 1.4-.5-1.4z"/>
+    <path fill="#7b7b52" d="M241.3 226.9l.5.5-.5-.5z"/>
+    <path fill="#003994" d="M241.8 226.9v1.9h1v-1.9h-1z"/>
+    <path fill="#efbd08" d="M242.8 226.9l.5.5-.5-.5z"/>
+    <path fill="#deb518" d="M243.3 226.9l.5.5-.5-.5z"/>
+    <path fill="#bd9c29" d="M244.3 226.9l.5.5-.5-.5z"/>
+    <path fill="#efbd08" d="M245.3 226.9l.5.5-.5-.5z"/>
+    <path fill="#bd9c29" d="M245.8 226.9l-.5 1 .5-1z"/>
+    <path fill="#7b7b52" d="M246.3 226.9l.5.5-.5-.5z"/>
+    <path fill="#00215a" d="M251.3 226.9l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M253.3 226.9l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M254.5 227.6v1.1h2.4l-2.4-1.1z"/>
+    <path fill="#00215a" d="M255.3 226.9l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M255.8 226.9l.5.5-.5-.5z"/>
+    <path fill="#31394a" d="M257.8 226.9l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M274.4 226.9l1 1-1-1z"/>
+    <path fill="#002984" d="M274.9 226.9l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M276.5 227.2l.2.3-.2-.3z"/>
+    <path fill="#8c8442" d="M276.9 226.9l.5.5-.5-.5z"/>
+    <path fill="#9c8c42" d="M283.4 226.9l.5.5-.5-.5z"/>
+    <path fill="#003994" d="M284 227.2l.2.3-.1-.3z"/>
+    <path fill="#deb518" d="M284.9 226.9l.5.5-.5-.5z"/>
+    <path fill="#6b735a" d="M285.4 226.9l.5.5-.5-.5z"/>
+    <path fill="#295284" d="M286.4 226.9l.5.5-.5-.5z"/>
+    <path fill="#ad9431" d="M287.9 226.9l.5.5-.5-.5z"/>
+    <path fill="#003994" d="M288.4 226.9l.5.5-.5-.5z"/>
+    <path fill="#295284" d="M288.9 226.9l.5.5-.5-.5z"/>
+    <path fill="#8c8442" d="M290 226.9l.4.5-.5-.5z"/>
+    <path fill="#9c8c42" d="M290.4 226.9l.5.5-.5-.5z"/>
+    <path fill="#deb518" d="M291 226.9l.4.5-.5-.5z"/>
+    <path fill="#ffce08" d="M291.4 227.8l1.5-.4-1.5.4z"/>
+    <path fill="#6b735a" d="M293 226.9l.4.5-.5-.5z"/>
+    <path fill="#295284" d="M294 226.9l-.6 1 .5-1z"/>
+    <path fill="#10214a" d="M296.4 226.9l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M297 226.9l.4.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M231.3 227.4l.4.4-.4-.4z"/>
+    <path fill="#42425a" d="M231.8 227.4l.4.4-.4-.4z"/>
+    <path fill="#002984" d="M232.3 227.4l.4.4-.4-.4z"/>
+    <path fill="#ad9431" d="M235.3 227.4l.5.4-.5-.4z"/>
+    <path fill="#bd9c29" d="M236.6 227.5l.3.2-.3-.2m1.2-.1l.5.4-.5-.4z"/>
+    <path fill="#6b735a" d="M238.8 227.4l.5.4-.5-.4z"/>
+    <path fill="#395273" d="M241.3 227.4l.5.4-.5-.4z"/>
+    <path fill="#184a8c" d="M244.4 227.7l.2.3-.2-.3z"/>
+    <path fill="#9c8c42" d="M244.8 227.4l.5.4-.5-.4z"/>
+    <path fill="#ffce08" d="M246.1 227.5l.4.2-.4-.2z"/>
+    <path fill="#8c8442" d="M246.8 227.4l.5.4-.5-.4z"/>
+    <path fill="#00184a" d="M252 227.7l.1.3-.1-.3z"/>
+    <path fill="#002984" d="M252.3 227.4l.5.4-.5-.4z"/>
+    <path fill="#001039" d="M252.8 227.4l.5.4-.5-.4z"/>
+    <path fill="#00216b" d="M253.3 227.4l.5.4-.5-.4z"/>
+    <path fill="#00215a" d="M257.8 227.4l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M258.3 227.4l.5.4-.5-.4z"/>
+    <path fill="#21315a" d="M271.4 227.4l.5.4-.5-.4z"/>
+    <path fill="#00184a" d="M275.4 227.4l.5.4-.5-.4z"/>
+    <path fill="#9c8c42" d="M281.9 227.4l.5.4-.5-.4z"/>
+    <path fill="#bd9c29" d="M282.4 227.4l.5.4-.5-.4z"/>
+    <path fill="#efbd08" d="M282.9 227.4l.5.4-.5-.4z"/>
+    <path fill="#deb518" d="M283.4 227.4l.5.4-.5-.4z"/>
+    <path fill="#8c8442" d="M286.4 227.4l.5.4-.5-.4z"/>
+    <path fill="#184a8c" d="M286.9 227.4l.5.4-.5-.4z"/>
+    <path fill="#bd9c29" d="M287.9 227.4l.5.4-.5-.4z"/>
+    <path fill="#4a636b" d="M288.4 227.4l.5.4-.5-.4z"/>
+    <path fill="#7b7b52" d="M288.9 227.4l.5.4-.5-.4z"/>
+    <path fill="#4a636b" d="M290 227.4l.4.4-.5-.4z"/>
+    <path fill="#5a6b63" d="M291 227.4l.4.4-.5-.4z"/>
+    <path fill="#6b735a" d="M292 227.4l.4.4-.5-.4z"/>
+    <path fill="#7b7b52" d="M292.4 227.4l.5.4-.5-.4z"/>
+    <path fill="#184a8c" d="M293 227.4l.4.4-.5-.4z"/>
+    <path fill="#efbd08" d="M294.4 227.4l.5.4-.5-.4z"/>
+    <path fill="#002984" d="M297 227.4l.4.4-.5-.4z"/>
+    <path fill="#212139" d="M297.4 227.4l.5.4-.5-.4z"/>
+    <path fill="#ada5a5" d="M298 227.4l.4.4-.5-.4z"/>
+    <path fill="#9c9494" d="M230.8 227.8l-.6 1 .6-1z"/>
+    <path fill="#00215a" d="M231.3 227.8l.4.5-.4-.5z"/>
+    <path fill="#6b735a" d="M235.3 227.8l.5.5-.5-.5z"/>
+    <path fill="#295284" d="M236.3 227.8l.5.5-.5-.5z"/>
+    <path fill="#003994" d="M236.8 227.8v2h.5l-.5-2z"/>
+    <path fill="#9c8c42" d="M237.3 227.8l.5.5-.5-.5z"/>
+    <path fill="#184a8c" d="M238.3 227.8l1 1-1-1z"/>
+    <path fill="#395273" d="M238.8 227.8l.5.5-.5-.5zm6 0l.5.5-.5-.5z"/>
+    <path fill="#003994" d="M245.6 228l.4.2-.4-.2z"/>
+    <path fill="#deb518" d="M246.3 227.8l.5.5-.5-.5z"/>
+    <path fill="#bd9c29" d="M246.8 227.8l.5.5-.5-.5z"/>
+    <path fill="#001039" d="M252.5 228.2l.1.3-.1-.3z"/>
+    <path fill="#002984" d="M257.8 227.8l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M258.3 227.8l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M270.9 227.8l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M271.4 227.8l.5.5-.5-.5z"/>
+    <path fill="#000818" d="M275.9 227.8l.5.5-.5-.5z"/>
+    <path fill="#395273" d="M281.9 227.8l.5.5-.5-.5z"/>
+    <path fill="#003994" d="M282.4 227.8l.5.5-.5-.5z"/>
+    <path fill="#7b7b52" d="M282.9 227.8l-.5 1 .5-1z"/>
+    <path fill="#ffce08" d="M283.4 227.8l.5.5-.5-.5z"/>
+    <path fill="#9c8c42" d="M284.9 227.8l.5.5-.5-.5z"/>
+    <path fill="#7b7b52" d="M285.9 227.8l.5.5-.5-.5z"/>
+    <path fill="#395273" d="M286.7 228l.4.2-.4-.2z"/>
+    <path fill="#9c8c42" d="M291 227.8l.4.5-.5-.5z"/>
+    <path fill="#efbd08" d="M291.4 227.8l.5.5-.5-.5z"/>
+    <path fill="#cead21" d="M293.4 227.8l.5.5-.5-.5z"/>
+    <path fill="#395273" d="M296.4 227.8l.5.5-.5-.5z"/>
+    <path fill="#184a8c" d="M297 227.8l.4.5-.5-.5z"/>
+    <path fill="#00216b" d="M298 227.8l.4.5-.5-.5z"/>
+    <path fill="#63636b" d="M298.4 227.8l1 1-1-1z"/>
+    <path fill="#00216b" d="M230.8 228.3l.4.5-.4-.5z"/>
+    <path fill="#295284" d="M235.3 228.3l.5.5-.5-.5z"/>
+    <path fill="#184a8c" d="M237.3 228.3l.5.5-.5-.5z"/>
+    <path fill="#5a6b63" d="M238.3 228.3l.5.5-.5-.5z"/>
+    <path fill="#7b7b52" d="M239.8 228.3l.5.5-.5-.5z"/>
+    <path fill="#cead21" d="M241.3 228.3l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#7b7b52" d="M244.3 228.3l.5.5-.5-.5z"/>
+    <path fill="#6b735a" d="M245.3 228.3l.5.5-.5-.5z"/>
+    <path fill="#efbd08" d="M246.5 228.7l.1.3-.1-.4z"/>
+    <path fill="#ad9431" d="M246.8 228.3l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M252.8 228.3l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M252.8 229.3l1.5-1-1.5 1z"/>
+    <path fill="#00216b" d="M254.3 228.3l.5.5-.5-.5z"/>
+    <path fill="#525a6b" d="M258.3 228.3l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M270.9 228.3l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M273.9 228.3l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M273.9 229.3l1.5-1-1.5 1z"/>
+    <path fill="#00184a" d="M275.4 228.3l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M275.9 228.3l.5.5-.5-.5z"/>
+    <path fill="#5a6b63" d="M280.9 228.3l.5.5-.5-.5z"/>
+    <path fill="#9c8c42" d="M281.9 228.3l.5.5-.5-.5z"/>
+    <path fill="#efbd08" d="M282.9 228.3l.5.5-.5-.5z"/>
+    <path fill="#deb518" d="M283.4 228.3l.5.5-.5-.5z"/>
+    <path fill="#6b735a" d="M284.9 228.3l.5.5-.5-.5zm2 0l.5.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#5a6b63" d="M288.4 228.3l.5.5-.5-.5z"/>
+    <path fill="#efbd08" d="M288.9 228.3l.5.5-.5-.5z"/>
+    <path fill="#cead21" d="M291 228.3l.4.5-.5-.5z"/>
+    <path fill="#bd9c29" d="M291.4 228.3l.5.5-.5-.5z"/>
+    <path fill="#6b735a" d="M293 228.3l.4.5-.5-.5z"/>
+    <path fill="#9c8c42" d="M297.4 228.3l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M298.4 228.3l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M229.8 228.8l.4.5-.4-.5z"/>
+    <path fill="#00216b" d="M230.3 228.8l.4.5-.4-.5z"/>
+    <path fill="#efbd08" d="M235.8 228.8l.5.5-.5-.5z"/>
+    <path fill="#9c8c42" d="M236.3 228.8l.5.5-.5-.5z"/>
+    <path fill="#7b7b52" d="M238.4 229.1l.2.3-.2-.3z"/>
+    <path fill="#ad9431" d="M239.8 228.8l.5.5-.5-.5z"/>
+    <path fill="#8c8442" d="M240.8 228.8l.5.5-.5-.5z"/>
+    <path fill="#ad9431" d="M242.1 229l.3.1-.3-.1m1.2-.2l.5.5-.5-.5z"/>
+    <path fill="#efbd08" d="M244.8 228.8l.5.5-.5-.5z"/>
+    <path fill="#4a636b" d="M246.8 228.8l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M257.3 228.8l.5.5-.5-.5z"/>
+    <path fill="#636b7b" d="M258.3 228.8l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M270.4 228.8l.5.5-.5-.5z"/>
+    <path fill="#424242" d="M270.9 228.8l.5.5-.5-.5z"/>
+    <path fill="#8c8442" d="M276.9 228.8l.5.5-.5-.5z"/>
+    <path fill="#5a6b63" d="M283.4 228.8l.5.5-.5-.5z"/>
+    <path fill="#8c8442" d="M286.4 228.8l.5.5-.5-.5z"/>
+    <path fill="#7b7b52" d="M286.9 228.8l.5.5-.5-.5z"/>
+    <path fill="#184a8c" d="M287.9 228.8l.5.5-.5-.5z"/>
+    <path fill="#7b7b52" d="M291.4 228.8l.5.5-.5-.5z"/>
+    <path fill="#184a8c" d="M292.4 228.8l.5.5-.5-.5z"/>
+    <path fill="#efbd08" d="M293 228.8l.4.5-.5-.5z"/>
+    <path fill="#bd9c29" d="M293.4 228.8l.5.5-.5-.5z"/>
+    <path fill="#7b7b52" d="M294 228.8l-.6 1 .5-1z"/>
+    <path fill="#5a6b63" d="M296 228.8l.4.5-.5-.5z"/>
+    <path fill="#ffce08" d="M296.4 228.8l.5.5-.5-.5z"/>
+    <path fill="#efbd08" d="M298 228.8l.4.5-.5-.5z"/>
+    <path fill="#002984" d="M299 228.8l.4.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M299.4 228.8l.5.5-.5-.5z"/>
+    <path fill="#525a6b" d="M229.8 229.3l.4.5-.4-.5z"/>
+    <path fill="#bd9c29" d="M235.8 229.3l.5.5-.5-.5z"/>
+    <path fill="#deb518" d="M236.3 229.3l.5.5-.5-.5z"/>
+    <path fill="#184a8c" d="M237.3 229.3l.5.5-.5-.5z"/>
+    <path fill="#cead21" d="M239.3 229.3l.5.5-.5-.5z"/>
+    <path fill="#bd9c29" d="M239.8 229.3l-.5 1 .5-1z"/>
+    <path fill="#ad9431" d="M241.3 229.3l.5.5-.5-.5z"/>
+    <path fill="#bd9c29" d="M242.8 229.3l.5.5-.5-.5z"/>
+    <path fill="#4a636b" d="M245.3 229.3l.5.5-.5-.5z"/>
+    <path fill="#5a6b63" d="M245.8 229.3l.5.5-.5-.5z"/>
+    <path fill="#184a8c" d="M246.3 229.3l.5.5-.5-.5z"/>
+    <path fill="#292921" d="M257.8 229.3l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M258.3 229.3l.5.5-.5-.5m12 0l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M270.9 229.3l1 1-1-1z"/>
+    <path fill="#31394a" d="M271.4 229.3l.5.5-.5-.5z"/>
+    <path fill="#7b7b52" d="M284.4 229.3l.5.5-.5-.5z"/>
+    <path fill="#9c8c42" d="M284.9 229.3l.5.5-.5-.5z"/>
+    <path fill="#6b735a" d="M286.4 229.3l.5.5-.5-.5z"/>
+    <path fill="#ad9431" d="M286.9 229.3l.5.5-.5-.5z"/>
+    <path fill="#deb518" d="M288.9 229.3l.5.5-.5-.5z"/>
+    <path fill="#395273" d="M290.4 229.3l.5.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#bd9c29" d="M292.4 229.3l.5.5-.5-.5z"/>
+    <path fill="#8c8442" d="M294 229.3l.4.5-.5-.5z"/>
+    <path fill="#cead21" d="M294.4 229.3l.5.5-.5-.5z"/>
+    <path fill="#003994" d="M297 229.3l-.6 1.9h.5v-2z"/>
+    <path fill="#7b7b52" d="M297.4 229.3l.5.5-.5-.5z"/>
+    <path fill="#5a6b63" d="M298.4 229.3l.5.5-.5-.5z"/>
+    <path fill="#425a84" d="M299.6 229.6l.2.3-.2-.3z"/>
+    <path fill="#42425a" d="M229.8 229.8l.4.4-.4-.4z"/>
+    <path fill="#7b7b52" d="M235.8 229.8l.5.4-.5-.4m1 0l.5.4-.5-.4z"/>
+    <path fill="#deb518" d="M237.3 229.8l.5.4-.5-.4z"/>
+    <path fill="#5a6b63" d="M238.3 229.8l.5.4-.5-.4z"/>
+    <path fill="#ffce08" d="M239.8 229.8l.5.4-.5-.4z"/>
+    <path fill="#00216b" d="M256.3 229.8l.5.4-.5-.4z"/>
+    <path fill="#21315a" d="M256.8 229.8l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M257.3 229.8l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M257.8 229.8l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M271.9 229.8l.5.4-.5-.4z"/>
+    <path fill="#21315a" d="M272.4 229.8l.5.4-.5-.4z"/>
+    <path fill="#00216b" d="M272.9 229.8l.5.4-.5-.4z"/>
+    <path fill="#395273" d="M287.4 229.8l.5.4-.5-.4z"/>
+    <path fill="#8c8442" d="M288.9 229.8l.5.4-.5-.4z"/>
+    <path fill="#6b735a" d="M289.4 229.8l.5.4-.5-.4z"/>
+    <path fill="#7b7b52" d="M290.4 229.8l.5.4-.5-.4z"/>
+    <path fill="#6b735a" d="M292 229.8l.4.4-.5-.4z"/>
+    <path fill="#bd9c29" d="M294.4 229.8l-.5 1.4.5-1.4z"/>
+    <path fill="#5a6b63" d="M295.4 229.8l.5.4-.5-.4z"/>
+    <path fill="#ffce08" d="M296 229.8l.4.4-.5-.4z"/>
+    <path fill="#5a6b63" d="M296.4 229.8l.5.4-.5-.4z"/>
+    <path fill="#395273" d="M297.4 229.8l.5.4-.5-.4z"/>
+    <path fill="#6b735a" d="M298.4 229.8l.5.4-.5-.4z"/>
+    <path fill="#7b7373" d="M229.8 230.2l.4.5-.4-.5z"/>
+    <path fill="#395273" d="M235.8 230.2l.5.5-.5-.5z"/>
+    <path fill="#9c8c42" d="M237.8 230.2l.5.5-.5-.5z"/>
+    <path fill="#184a8c" d="M239.3 230.2l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M245.3 230.2l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M245.8 230.2l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M246.3 230.2l.5.5-.5-.5z"/>
+    <path fill="#10295a" d="M246.8 230.2l.5.5-.5-.5z"/>
+    <path fill="#525a6b" d="M253.3 230.2l.5.5-.5-.5z"/>
+    <path fill="#848c9c" d="M253.8 230.2l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M256.3 230.2l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M272.9 230.2l.5.5-.5-.5z"/>
+    <path fill="#848c9c" d="M275.4 230.2l.5.5-.5-.5z"/>
+    <path fill="#636b7b" d="M275.9 230.2l.5.5-.5-.5z"/>
+    <path fill="#10295a" d="M282.4 230.2l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M282.9 230.2l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M283.4 230.2l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M283.9 230.2l.5.5-.5-.5z"/>
+    <path fill="#4a636b" d="M290.4 230.2l.5.5-.5-.5z"/>
+    <path fill="#6b735a" d="M291 230.2l.4.5-.5-.5z"/>
+    <path fill="#efbd08" d="M292 230.2l.4.5-.5-.5z"/>
+    <path fill="#cead21" d="M292.4 230.2l.5.5-.5-.5z"/>
+    <path fill="#4a636b" d="M293.4 230.2l.5.5-.5-.5z"/>
+    <path fill="#deb518" d="M294 230.2l.4.5-.5-.5m1.9.2l.3.2-.3-.2z"/>
+    <path fill="#8c8442" d="M297.4 230.2l.5.5-.5-.5z"/>
+    <path fill="#184a8c" d="M298.4 230.2l.5.5-.5-.5z"/>
+    <path fill="#525a6b" d="M299.4 230.2l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M229.8 230.7l.4.5-.4-.5z"/>
+    <path fill="#00216b" d="M230.3 230.7l.4.5-.4-.5z"/>
+    <path fill="#7b7b52" d="M236.3 230.7l.5.5-.5-.5z"/>
+    <path fill="#4a636b" d="M236.8 230.7l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M240.3 231.7l1.5-.5-1.5.5z"/>
+    <path fill="#00215a" d="M241.8 230.7l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M242.3 230.7l.5.5-.5-.5z"/>
+    <path fill="#314a7b" d="M242.8 230.7l.5.5-.5-.5z"/>
+    <path fill="#42425a" d="M243.3 230.7l.5.5-.5-.5z"/>
+    <path fill="#636b7b" d="M243.8 230.7l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M244.3 230.7l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M244.8 230.7l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M245.3 230.7l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M245.8 230.7l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M283.4 230.7l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M283.9 230.7l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M284.4 230.7l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M284.9 230.7l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M285.4 230.7l.5.5-.5-.5z"/>
+    <path fill="#42425a" d="M285.9 230.7l.5.5-.5-.5z"/>
+    <path fill="#314a7b" d="M286.4 230.7l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M286.9 230.7l.5.5-.5-.5z"/>
+    <path fill="#00215a" d="M287.4 230.7l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M288.2 230.9l.4.1-.4-.1z"/>
+    <path fill="#184a8c" d="M292.4 230.7l.5.5-.5-.5z"/>
+    <path fill="#5a6b63" d="M295 230.7l.4.5-.5-.5zm1 0l.4.5-.5-.5z"/>
+    <path fill="#295284" d="M297 230.7l.4.5-.5-.5z"/>
+    <path fill="#bd9c29" d="M298 230.7l.4.5-.5-.5z"/>
+    <path fill="#9c9494" d="M299.4 230.7l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M229.8 231.2l.4.5-.4-.5z"/>
+    <path fill="#001039" d="M230.3 231.2l.4.5-.4-.5z"/>
+    <path fill="#63636b" d="M240.8 231.2l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M241.3 231.2l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M241.8 231.2l-.5 1 .5-1z"/>
+    <path fill="#bdbdbd" d="M287.9 231.2l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M288.4 231.2l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M288.9 231.2l.5.5-.5-.5z"/>
+    <path fill="#395273" d="M294 231.2l.4.5-.5-.5z"/>
+    <path fill="#6b735a" d="M294.4 231.2l.5.5-.5-.5z"/>
+    <path fill="#deb518" d="M295 231.2l.4.5-.5-.5z"/>
+    <path fill="#bd9c29" d="M296 231.2l.4.5-.5-.5z"/>
+    <path fill="#7b7b52" d="M296.4 231.2l.5.5-.5-.5z"/>
+    <path fill="#00215a" d="M299 231.2l.4.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M299.4 231.2l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M228.7 231.7l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M229.3 231.7l.4.4-.4-.4z"/>
+    <path fill="#001039" d="M230 232v.3-.3z"/>
+    <path fill="#00216b" d="M238.8 231.7l-.5 1 .5-1z"/>
+    <path fill="#00184a" d="M239.3 231.7l.5.4-.5-.4z"/>
+    <path fill="#00216b" d="M239.8 231.7l.5.4-.5-.4z"/>
+    <path fill="#10214a" d="M240.8 231.7l.5.4-.5-.4z"/>
+    <path fill="#dedede" d="M287.9 231.7l.5.4-.5-.4z"/>
+    <path fill="#212139" d="M288.4 231.7l.5.4-.5-.4z"/>
+    <path fill="#00184a" d="M288.9 231.7l.5.4-.5-.4z"/>
+    <path fill="#002984" d="M289.6 232l.1.3-.1-.3z"/>
+    <path fill="#184a8c" d="M295 231.7l.4.4-.5-.4z"/>
+    <path fill="#9c8c42" d="M295.4 231.7l.5.4-.5-.4z"/>
+    <path fill="#295284" d="M297.4 231.7l.5.4-.5-.4z"/>
+    <path fill="#00216b" d="M299.4 231.7l.5.4-.5-.4z"/>
+    <path fill="#42425a" d="M300 231.7l.4.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M300.4 231.7l.5.4-.5-.4z"/>
+    <path fill="#cecece" d="M228.2 232.1l-1 1.5 1-1.5z"/>
+    <path fill="#10214a" d="M228.7 232.1l-1 1.5 1-1.5z"/>
+    <path fill="#003994" d="M229.3 232.1c-1.5 1.5-3.5 3.2-2.6 5.3-2.6 1.4-3 4.5-4 7.1l5.6 1 4-9-5.6.4v-.5l5-.4-2.4-3.9z"/>
+    <path fill="#002984" d="M236.3 232.1l.5.5-.5-.5z"/>
+    <path fill="#00215a" d="M236.8 232.1l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M237.6 232.3l.3.2-.3-.2z"/>
+    <path fill="#002984" d="M238.8 232.1l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M241.3 232.1l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M287.9 232.1l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M288.4 232.1l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M291.4 232.1l.5.5-.5-.5z"/>
+    <path fill="#184a8c" d="M296 232.1l.4.5-.5-.5z"/>
+    <path fill="#395273" d="M296.4 232.1l.5.5-.5-.5z"/>
+    <path fill="#00215a" d="M300.4 232.1l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M301 232.1l1.4 1.5-1.5-1.5z"/>
+    <path fill="#00216b" d="M229.8 232.6l.4.5-.4-.5z"/>
+    <path fill="#002984" d="M230.3 232.6l.4.5-.4-.5z"/>
+    <path fill="#00216b" d="M234.8 232.6l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M235.6 232.8l.3.1-.3-.1z"/>
+    <path fill="#00216b" d="M236.3 232.6l.5.5-.5-.5z"/>
+    <path fill="#42425a" d="M241.3 232.6l.5.5-.5-.5z"/>
+    <path fill="#636b7b" d="M287.9 232.6l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M291.4 232.6l.5.5-.5-.5z"/>
+    <path fill="#00215a" d="M292 232.6l.4.5-.5-.5z"/>
+    <path fill="#00184a" d="M292.8 232.8l.3.1-.4-.1z"/>
+    <path fill="#00216b" d="M293.6 233l.1.3-.1-.4m7.3-.3l.5.5-.5-.5z"/>
+    <path fill="#001039" d="M230.3 233.1l.4.5-.4-.5z"/>
+    <path fill="#00216b" d="M233.4 233.4l.2.3-.2-.3z"/>
+    <path fill="#00184a" d="M234 233.3l.4.1-.3-.1z"/>
+    <path fill="#00215a" d="M237.8 233.1l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M240.8 233.1l.5.5-.5-.5z"/>
+    <path fill="#21315a" d="M241.3 233.1l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M287.4 233.1l.5.5-.5-.5z"/>
+    <path fill="#101810" d="M287.9 233.1l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M288.7 233.3l.4.1-.4-.1z"/>
+    <path fill="#00215a" d="M289.4 233.1l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M290 233.1l.4.5-.5-.5z"/>
+    <path fill="#00216b" d="M290.4 233.1l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M294.3 233.3l.3.1-.4-.1z"/>
+    <path fill="#00216b" d="M301.4 233.1l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M226.7 233.6l.5.4-.5-.4z"/>
+    <path fill="#212139" d="M227.2 233.6l.5.4-.5-.4z"/>
+    <path fill="#00216b" d="M230.3 233.6l.4.4-.4-.4z"/>
+    <path fill="#002984" d="M230.8 233.6l.4.4-.4-.4z"/>
+    <path fill="#00184a" d="M232.6 233.7l.3.2-.3-.2z"/>
+    <path fill="#00216b" d="M236.3 233.6l.5.4-.5-.4z"/>
+    <path fill="#00184a" d="M236.8 233.6l.5.4-.5-.4z"/>
+    <path fill="#00216b" d="M237.3 233.6l.5.4-.5-.4z"/>
+    <path fill="#001039" d="M240.8 233.6l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M241.3 233.6l-.5 1 .5-1z"/>
+    <path fill="#7b7373" d="M287.4 233.6l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M287.9 233.6l.5.4-.5-.4z"/>
+    <path fill="#00215a" d="M288.4 233.6l.5.4-.5-.4z"/>
+    <path fill="#002984" d="M290.4 233.6l.5.4-.5-.4z"/>
+    <path fill="#00184a" d="M291.2 233.7l.4.2-.4-.2z"/>
+    <path fill="#002984" d="M292 233.6l.4.4-.5-.4z"/>
+    <path fill="#00216b" d="M295 233.6l.4.4-.5-.4z"/>
+    <path fill="#00184a" d="M295.4 233.6l.5.4-.5-.4z"/>
+    <path fill="#002984" d="M296 233.6l.4.4-.5-.4z"/>
+    <path fill="#00184a" d="M302 233.6l.4.4-.5-.4z"/>
+    <path fill="#cecece" d="M302.4 233.6l.5.4-.5-.4z"/>
+    <path fill="#52525a" d="M226.7 234l.5.5-.5-.4z"/>
+    <path fill="#002984" d="M232.3 234l.4.5-.4-.4z"/>
+    <path fill="#00184a" d="M235.6 234.2l.3.2-.3-.2z"/>
+    <path fill="#002984" d="M236.3 234l.5.5-.5-.4z"/>
+    <path fill="#10214a" d="M240.3 234l.5.5-.5-.4z"/>
+    <path fill="#ada5a5" d="M288.4 234l.5.5-.5-.4z"/>
+    <path fill="#21315a" d="M288.9 234l.5.5-.5-.4z"/>
+    <path fill="#00216b" d="M292 234l.4.5-.5-.4z"/>
+    <path fill="#001039" d="M292.4 234l.5.5-.5-.4z"/>
+    <path fill="#002984" d="M293 234l.4.5-.5-.4z"/>
+    <path fill="#31425a" d="M302.4 234l.5.5-.5-.4z"/>
+    <path fill="#efefef" d="M303 234l.4.5-.5-.4z"/>
+    <path fill="#ada5a5" d="M226.2 234.5l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M226.7 234.5l.5.5-.5-.5m4 0l.6.5-.6-.5z"/>
+    <path fill="#00184a" d="M234.6 234.7l.3.2-.3-.2z"/>
+    <path fill="#00216b" d="M238.8 234.5l.5.5-.5-.5z"/>
+    <path fill="#21315a" d="M239.3 234.5l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M239.8 234.5l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M240.3 234.5l.5.5-.5-.5m48.6 0l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M289.4 234.5l.5.5-.5-.5z"/>
+    <path fill="#314a7b" d="M290 234.5l.4.5-.5-.5z"/>
+    <path fill="#00216b" d="M290.4 234.5l.5.5-.5-.5m2.5 0l-.5 1 .5-1z"/>
+    <path fill="#001039" d="M293.4 234.5l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M294 234.5l.4.5-.5-.5z"/>
+    <path fill="#7b7373" d="M303 234.5l.4.5-.5-.5z"/>
+    <path fill="#efefef" d="M225.7 235l.5.5-.5-.5z"/>
+    <path fill="#10214a" d="M226.2 235l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M231.8 235l.4.5-.4-.5m1 0l.4.5-.4-.5z"/>
+    <path fill="#00184a" d="M233.6 235.2l.3.1-.3-.1z"/>
+    <path fill="#002984" d="M236.3 235l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M236.8 235l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M237.3 235l.5.5-.5-.5z"/>
+    <path fill="#42425a" d="M237.8 235l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M238.3 235l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M238.8 235l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M290.4 235l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M291 235l.4.5-.5-.5z"/>
+    <path fill="#525a6b" d="M291.4 235l.5.5-.5-.5z"/>
+    <path fill="#10295a" d="M292 235l.4.5-.5-.5z"/>
+    <path fill="#002984" d="M293 235l.4.5-.5-.5z"/>
+    <path fill="#003994" d="M293.4 235l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M294 235l.4.5-.5-.5z"/>
+    <path fill="#001039" d="M294.4 235l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M295 235l.4.5-.5-.5m2 0l.5.5-.5-.5m6 0l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M303.4 235l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M225.7 235.5l.5.5-.5-.5z"/>
+    <path fill="#00215a" d="M231.8 235.5l.4.5-.4-.5z"/>
+    <path fill="#00216b" d="M232.8 235.5l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#21315a" d="M234.8 235.5l.5.5-.5-.5z"/>
+    <path fill="#525a6b" d="M235.3 235.5l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M236.3 235.5l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M236.8 235.5l.5.5-.5-.5m55.6 0l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M293 235.5l.4.5-.5-.5z"/>
+    <path fill="#525a6b" d="M294 235.5l.4.5-.5-.5z"/>
+    <path fill="#21315a" d="M294.4 235.5l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M296.4 235.5l.5.5-.5-.5z"/>
+    <path fill="#42425a" d="M303.4 235.5l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M225.2 236l.5.4-.5-.4z"/>
+    <path fill="#10295a" d="M225.7 236l.5.4-.5-.4z"/>
+    <path fill="#00215a" d="M229.8 236l.4.4-.4-.4z"/>
+    <path fill="#21315a" d="M233.3 236l.5.4-.5-.4z"/>
+    <path fill="#52525a" d="M233.8 236l.5.4-.5-.4z"/>
+    <path fill="#7b7373" d="M234.3 236l.5.4-.5-.4z"/>
+    <path fill="#9c9494" d="M236.3 236l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M292 236l.4.4-.5-.4z"/>
+    <path fill="#9c9494" d="M292.4 236l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M294.3 236.1l.3.2-.4-.2z"/>
+    <path fill="#8c8c8c" d="M295 236l.4.4-.5-.4z"/>
+    <path fill="#292921" d="M295.4 236l.5.4-.5-.4z"/>
+    <path fill="#080829" d="M296 236l.4.4-.5-.4z"/>
+    <path fill="#00216b" d="M298.4 236l.5.4-.5-.4z"/>
+    <path fill="#ada5a5" d="M304 236l.4.4-.5-.4z"/>
+    <path fill="#63636b" d="M225.2 236.4l.5.5-.5-.5z"/>
+    <path fill="#00215a" d="M226.7 236.4l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M227.6 236.6l.3.2-.3-.2z"/>
+    <path fill="#00216b" d="M228.2 236.4l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M232.8 236.4l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M233.3 236.4l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M296.4 236.4l.5.5-.5-.5z"/>
+    <path fill="#10295a" d="M297 236.4l.4.5-.5-.5z"/>
+    <path fill="#00216b" d="M300 236.4l.4.5-.5-.5z"/>
+    <path fill="#00184a" d="M300.8 236.6l.3.2-.3-.2z"/>
+    <path fill="#002984" d="M301.6 236.8l.2.3-.2-.3z"/>
+    <path fill="#212139" d="M304 236.4l.4.5-.5-.5z"/>
+    <path fill="#dedede" d="M224.7 237l.5.4-.5-.5z"/>
+    <path fill="#10214a" d="M231.8 237l.4.4-.4-.5z"/>
+    <path fill="#cecece" d="M232.3 237l-.6.9.6-1m64.6 0l1 1-1-1z"/>
+    <path fill="#10214a" d="M297.4 237l.5.4-.5-.5z"/>
+    <path fill="#00184a" d="M302 237l.4.4-.5-.5z"/>
+    <path fill="#00216b" d="M302.4 237l2 1.8-2-1.9z"/>
+    <path fill="#002984" d="M304 237l.4.4-.5-.5z"/>
+    <path fill="#9c9494" d="M304.4 237l.6.4-.6-.5z"/>
+    <path fill="#8c8c8c" d="M224.7 237.4l.5.5-.5-.5z"/>
+    <path fill="#001039" d="M225.2 237.4l.5.5-.5-.5z"/>
+    <path fill="#10295a" d="M231.3 237.4l.4.5-.4-.5z"/>
+    <path fill="#101831" d="M298 237.4l.4.5-.5-.5z"/>
+    <path fill="#42425a" d="M304.4 237.4l.6.5-.6-.5z"/>
+    <path fill="#efefef" d="M224.2 237.9l.5.4-.5-.4z"/>
+    <path fill="#101829" d="M224.7 237.9l.5.4-.5-.4z"/>
+    <path fill="#002984" d="M230.8 237.9l.4.4-.4-.4z"/>
+    <path fill="#9c9494" d="M231.3 237.9l.4.4-.4-.4z"/>
+    <path fill="#cecece" d="M235.8 237.9l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M236.3 237.9v.4h57.6l-17.5-.4h-40.1m61.6 0l.5.4-.5-.4z"/>
+    <path fill="#00215a" d="M298.4 237.9l.5.4-.5-.4z"/>
+    <path fill="#00216b" d="M304.4 237.9l.6.4-.6-.4z"/>
+    <path fill="#dedede" d="M305 237.9l.4.4-.4-.4z"/>
+    <path fill="#424242" d="M224.2 238.3l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M224.7 238.3l.5.5-.5-.5z"/>
+    <path fill="#52525a" d="M230.8 238.3l.4.5-.4-.5z"/>
+    <path fill="#9c9494" d="M235.8 238.3l2.5 2.4-2.5-2.3z"/>
+    <path fill="#00216b" d="M236.3 238.3l1.5 1.5-1.5-1.5z"/>
+    <path fill="#003994" d="M236.8 238.3l4.2 5.3.3 18.6h4.5c0-6 1.3-12-3-16.7l6 3.8-2.5-7.1 14 13.3-10.5-16.2 10 12.9h.5v-13.9h-23.5z"/>
+    <path fill="#00184a" d="M260.3 238.3v14.4h.5l-.5-14.3z"/>
+    <path fill="#631808" d="M268.9 238.3v14.4h.5l-.5-14.3z"/>
+    <path fill="#de2110" d="M269.4 238.3v13.4l10.5-12.4-10.5 16.2 14.5-13.3-3 6.6 6-3.8c-3.2 6-3 10.4-3 17.2h4.5l.3-18.6 4.2-5.3h-23.5z"/>
+    <path fill="#b51010" d="M293 238.3l.4.5-.5-.5z"/>
+    <path fill="#63636b" d="M293.4 238.3l-1 1.5 1-1.5z"/>
+    <path fill="#8c8c8c" d="M298.4 238.3l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M299 238.3l.4.5-.5-.5z"/>
+    <path fill="#63636b" d="M305 238.3l.4.5-.4-.5z"/>
+    <path fill="#ada5a5" d="M223.7 238.8l.5.5-.5-.5z"/>
+    <path fill="#000818" d="M224.2 238.8l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M230.3 238.8l.4.5-.4-.5z"/>
+    <path fill="#efefef" d="M230.8 238.8l.4.5-.4-.5z"/>
+    <path fill="#ad1810" d="M292.4 238.8l.5.5-.5-.5z"/>
+    <path fill="#21315a" d="M299 238.8l.4.5-.5-.5z"/>
+    <path fill="#00184a" d="M304 238.8l.4.5-.5-.5z"/>
+    <path fill="#10214a" d="M305 238.8l.4.5-.4-.5z"/>
+    <path fill="#efefef" d="M305.4 238.8l.6.5-.6-.5z"/>
+    <path fill="#313931" d="M223.7 239.3l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M224.2 239.3l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M230.3 239.3l.4.5-.4-.5z"/>
+    <path fill="#002984" d="M249.8 239.3l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M299 239.3l.4.5-.5-.5z"/>
+    <path fill="#00184a" d="M304.6 239.6l.2.3-.2-.3z"/>
+    <path fill="#9c9494" d="M305.4 239.3l.6.5-.6-.5m-82 .8l.2.3-.2-.3z"/>
+    <path fill="#292921" d="M223.7 239.8l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M229.8 239.8l.4.5-.4-.5z"/>
+    <path fill="#cecece" d="M230.3 239.8l.4.5-.4-.5z"/>
+    <path fill="#00215a" d="M237.8 239.8l.5.5-.5-.5z"/>
+    <path fill="#001039" d="M249.8 239.8l.5.5-.5-.5z"/>
+    <path fill="#212139" d="M250.3 239.8l1 1-1-1z"/>
+    <path fill="#100808" d="M279.4 239.8l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M292 239.8l-3 3.3 3-3.3z"/>
+    <path fill="#efefef" d="M299 239.8l.4.5-.5-.5z"/>
+    <path fill="#10295a" d="M299.4 239.8l.5.5-.5-.5z"/>
+    <path fill="#31425a" d="M305.4 239.8l.6.5-.6-.5z"/>
+    <path fill="#10295a" d="M223.7 240.3l.5.4-.5-.4z"/>
+    <path fill="#42425a" d="M229.8 240.3l.4.4-.4-.4z"/>
+    <path fill="#001039" d="M238.3 240.3l.5.4-.5-.4z"/>
+    <path fill="#002984" d="M249.8 240.3l.5.4-.5-.4z"/>
+    <path fill="#6b5a00" d="M250.3 240.3l.5.4-.5-.4z"/>
+    <path fill="#5a1008" d="M278.4 240.3l.5.4-.5-.4z"/>
+    <path fill="#7b5a00" d="M278.9 240.3l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M299.4 240.3l.5.4-.5-.4z"/>
+    <path fill="#00216b" d="M305.4 240.3l.6.4-.6-.4z"/>
+    <path fill="#bdbdbd" d="M306 240.3l.4.4-.4-.4z"/>
+    <path fill="#8c8c8c" d="M223.2 240.7l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M229.3 240.7l.4.5-.4-.5z"/>
+    <path fill="#9c9494" d="M229.8 240.7l.4.5-.4-.5z"/>
+    <path fill="#cecece" d="M238.3 240.7l2.5 2.4-2.5-2.4z"/>
+    <path fill="#10214a" d="M238.8 240.7l.5.5-.5-.5z"/>
+    <path fill="#392121" d="M250.3 240.7l.5.5-.5-.5z"/>
+    <path fill="#cea508" d="M251 241l.1.4-.1-.4z"/>
+    <path fill="#293129" d="M251.3 240.7l1 1-1-1z"/>
+    <path fill="#631808" d="M277.9 240.7l.5.5-.5-.5z"/>
+    <path fill="#634a00" d="M278.9 240.7l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M279.4 240.7l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M299.4 240.7l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M300 240.7l.4.5-.5-.5z"/>
+    <path fill="#636b7b" d="M306 240.7l.4.5-.4-.5z"/>
+    <path fill="#42425a" d="M223.2 241.2l.5.5-.5-.5z"/>
+    <path fill="#21315a" d="M229.3 241.2l.4.5-.4-.5z"/>
+    <path fill="#10214a" d="M239.3 241.2l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M250.3 241.2l.5.5-.5-.5z"/>
+    <path fill="#efbd08" d="M251.3 241.2l.5.5-.5-.5z"/>
+    <path fill="#5a2908" d="M277.4 241.2l.5.5-.5-.5z"/>
+    <path fill="#efbd08" d="M278.4 241.2l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M278.9 241.2l.5.5-.5-.5z"/>
+    <path fill="#42425a" d="M300 241.2l.4.5-.5-.5z"/>
+    <path fill="#10214a" d="M306 241.2l.4.5-.4-.5z"/>
+    <path fill="#efefef" d="M222.7 241.7l.5.5-.5-.5z"/>
+    <path fill="#00215a" d="M223.2 241.7l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M229.3 241.7l.4.5-.4-.5z"/>
+    <path fill="#10214a" d="M239.8 241.7l.5.5-.5-.5z"/>
+    <path fill="#634a00" d="M250.8 241.7l.5.5-.5-.5z"/>
+    <path fill="#deb508" d="M251.3 241.7l.5.5-.5-.5z"/>
+    <path fill="#292100" d="M251.8 241.7l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M277.4 241.7l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M278.9 241.7l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M300 241.7l.4.5-.5-.5z"/>
+    <path fill="#002984" d="M300.4 241.7l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M306 241.7l.4.5-.4-.5z"/>
+    <path fill="#bdbdbd" d="M306.4 241.7l.6.5-.6-.5z"/>
+    <path fill="#9c9494" d="M222.7 242.2l.5.4-.5-.4z"/>
+    <path fill="#002984" d="M223.2 242.2l.5.4-.5-.4z"/>
+    <path fill="#00216b" d="M228.7 242.2l.5.4-.5-.4z"/>
+    <path fill="#cecece" d="M229.3 242.2l.4.4-.4-.4z"/>
+    <path fill="#10214a" d="M240.3 242.2l.5.4-.5-.4z"/>
+    <path fill="#00184a" d="M246.5 242.5l.1.3-.1-.3z"/>
+    <path fill="#10295a" d="M250.8 242.2l.5.4-.5-.4z"/>
+    <path fill="#000818" d="M251.3 242.2l.5.4-.5-.4z"/>
+    <path fill="#392100" d="M251.8 242.2l1 1-1-1z"/>
+    <path fill="#00184a" d="M252.3 242.2l.5.4-.5-.4z"/>
+    <path fill="#7b1008" d="M276.9 242.2l.5.4-.5-.4z"/>
+    <path fill="#392100" d="M277.4 242.2l.5.4-.5-.4z"/>
+    <path fill="#210800" d="M277.9 242.2l.5.4-.5-.4z"/>
+    <path fill="#5a1008" d="M278.4 242.2l.5.4-.5-.4z"/>
+    <path fill="#631808" d="M282.9 242.2l.5.4-.5-.4z"/>
+    <path fill="#ce2110" d="M283.4 242.2l.5.4-.5-.4z"/>
+    <path fill="#7b1008" d="M288.9 242.2l.5.4-.5-.4z"/>
+    <path fill="#00184a" d="M300.4 242.2l.5.4-.5-.4z"/>
+    <path fill="#7b7373" d="M306.4 242.2l.6.4-.6-.4z"/>
+    <path fill="#636b7b" d="M222.7 242.6l.5.5-.5-.5z"/>
+    <path fill="#21315a" d="M228.7 242.6l.5.5-.5-.5z"/>
+    <path fill="#10295a" d="M240.8 242.6l.5.5-.5-.5z"/>
+    <path fill="#102110" d="M246.8 242.6l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M247.3 242.6l.5.5-.5-.5z"/>
+    <path fill="#101810" d="M251.8 242.6l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M252.8 242.6l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M276.4 242.6l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M277.2 242.8l.3.2-.3-.2z"/>
+    <path fill="#b51010" d="M277.9 242.6l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M281.9 242.6l.5.5-.5-.5z"/>
+    <path fill="#5a2908" d="M282.4 242.6l.5.5-.5-.5z"/>
+    <path fill="#310000" d="M282.9 242.6l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M288.4 242.6l.5.5-.5-.5z"/>
+    <path fill="#42425a" d="M300.4 242.6l.5.5-.5-.5z"/>
+    <path fill="#314a7b" d="M306.4 242.6l.6.5-.6-.5z"/>
+    <path fill="#10214a" d="M222.7 243.1l.5.5-.5-.5z"/>
+    <path fill="#636b7b" d="M228.7 243.1l.5.5-.5-.5z"/>
+    <path fill="#42425a" d="M240.8 243.1v19.6h.5c0-5.6 1.7-14.4-.5-19.6z"/>
+    <path fill="#634a00" d="M246.8 243.1l.5.5-.5-.5z"/>
+    <path fill="#8c7300" d="M247.3 243.1l.5.5-.5-.5z"/>
+    <path fill="#10214a" d="M247.8 243.1l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M251.8 243.1l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M252.3 243.1l.5.5-.5-.5z"/>
+    <path fill="#181000" d="M252.8 243.1l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M275.9 243.1l.5.5-.5-.5z"/>
+    <path fill="#311000" d="M276.4 243.1l.5.5-.5-.5z"/>
+    <path fill="#392100" d="M276.9 243.1l-1 1.5 1-1.5z"/>
+    <path fill="#7b1008" d="M277.4 243.1l.5.5-.5-.5m4 0l.5.5-.5-.5z"/>
+    <path fill="#7b5a00" d="M281.9 243.1l.5.5-.5-.5z"/>
+    <path fill="#6b5a00" d="M282.4 243.1l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M282.9 243.1l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M288.4 243.1v19.1h.5c0-5.5 1.7-14-.5-19z"/>
+    <path fill="#8c8c8c" d="M300.4 243.1l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M306.4 243.1l.6.5-.6-.5z"/>
+    <path fill="#dedede" d="M307 243.1l.4.5-.4-.5z"/>
+    <path fill="#bdbdbd" d="M222.2 243.6l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M222.7 243.6l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M228.2 243.6l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M228.7 243.6l.5.5-.5-.5z"/>
+    <path fill="#00215a" d="M246.8 243.6l.5.5-.5-.5z"/>
+    <path fill="#bd9408" d="M247.3 243.6l.5.5-.5-.5z"/>
+    <path fill="#cea508" d="M247.8 243.6l.5.5-.5-.5z"/>
+    <path fill="#293129" d="M248.3 243.6l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M248.8 243.6l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M252.3 243.6l.5.5-.5-.5z"/>
+    <path fill="#392100" d="M252.8 243.6l1 1-1-1z"/>
+    <path fill="#101829" d="M253.3 243.6l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M275.9 243.6l.5.5-.5-.5z"/>
+    <path fill="#420000" d="M276.9 243.6l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M280.4 243.6l.5.5-.5-.5z"/>
+    <path fill="#5a2908" d="M280.9 243.6l.5.5-.5-.5z"/>
+    <path fill="#bd9408" d="M281.4 243.6l.5.5-.5-.5z"/>
+    <path fill="#efbd08" d="M281.9 243.6l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M282.4 243.6l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M300.4 243.6l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M301 243.6l.4.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M307 243.6l.4.5-.4-.5m-84.8.5l.5.4-.5-.4z"/>
+    <path fill="#00215a" d="M228.2 244l.5.5-.5-.4z"/>
+    <path fill="#dedede" d="M228.7 244l.5.5-.5-.4z"/>
+    <path fill="#313918" d="M247.3 244l.5.5-.5-.4z"/>
+    <path fill="#ffce08" d="M247.8 244l.5.5-.5-.4z"/>
+    <path fill="#ad8c08" d="M248.3 244l.5.5-.5-.4z"/>
+    <path fill="#00215a" d="M248.8 244l.5.5-.5-.4z"/>
+    <path fill="#101829" d="M252.8 244l.5.5-.5-.4z"/>
+    <path fill="#00184a" d="M253.8 244l.5.5-.5-.4z"/>
+    <path fill="#941808" d="M275.4 244l.5.5-.5-.4z"/>
+    <path fill="#ce2110" d="M276.9 244l.5.5-.5-.4z"/>
+    <path fill="#ad1810" d="M280.4 244l.5.5-.5-.4z"/>
+    <path fill="#7b5a00" d="M280.9 244l.5.5-.5-.4z"/>
+    <path fill="#ffce08" d="M281.4 244l.5.5-.5-.4z"/>
+    <path fill="#634a00" d="M281.9 244l-.5 1 .5-1z"/>
+    <path fill="#ce2110" d="M282.4 244l.5.5-.5-.4z"/>
+    <path fill="#10214a" d="M301 244l.4.5-.5-.4z"/>
+    <path fill="#00216b" d="M302 244l.4.5-.5-.4z"/>
+    <path fill="#525a6b" d="M307 244l.4.5-.4-.4z"/>
+    <path fill="#bdbdbd" d="M221.7 244.6l.5.4-.5-.4z"/>
+    <path fill="#dedede" d="M222.2 244.6l.5.4-.5-.4z"/>
+    <path fill="#9c9494" d="M222.7 244.6l.5.4-.5-.4z"/>
+    <path fill="#7b7373" d="M223.2 244.6l.5.4-.5-.4z"/>
+    <path fill="#42425a" d="M223.7 244.6l.5.4-.5-.4z"/>
+    <path fill="#00184a" d="M224.2 244.6l.5.4-.5-.4z"/>
+    <path fill="#002984" d="M224.7 244.6l.5.4-.5-.4z"/>
+    <path fill="#314a7b" d="M228.2 244.6l.5.4-.5-.4z"/>
+    <path fill="#002984" d="M247.3 244.6l.5.4-.5-.4z"/>
+    <path fill="#423100" d="M247.8 244.6l.5.4-.5-.4z"/>
+    <path fill="#211800" d="M248.3 244.6l.5.4-.5-.4z"/>
+    <path fill="#181000" d="M248.8 244.6l.5.4-.5-.4z"/>
+    <path fill="#002984" d="M249.3 244.6l.5.4-.5-.4z"/>
+    <path fill="#181000" d="M253.3 244.6l.5.4-.5-.4z"/>
+    <path fill="#211800" d="M253.8 244.6l.5.4-.5-.4z"/>
+    <path fill="#002984" d="M254.3 244.6l.5.4-.5-.4z"/>
+    <path fill="#bd2110" d="M274.9 244.6l.5.4-.5-.4z"/>
+    <path fill="#ad1810" d="M276.4 244.6l.5.4-.5-.4z"/>
+    <path fill="#ce2110" d="M279.9 244.6l-.5.9.5-1z"/>
+    <path fill="#211800" d="M280.9 244.6l.5.4-.5-.4z"/>
+    <path fill="#631808" d="M281.9 244.6l.5.4-.5-.4z"/>
+    <path fill="#636b7b" d="M301 244.6l.4.4-.5-.4z"/>
+    <path fill="#000818" d="M302 244.6l.4.4-.5-.4z"/>
+    <path fill="#002984" d="M304.4 244.6l.6.4-.6-.4z"/>
+    <path fill="#00184a" d="M305 244.6l.4.4-.4-.4z"/>
+    <path fill="#314a7b" d="M305.4 244.6l.6.4-.6-.4z"/>
+    <path fill="#636b7b" d="M306 244.6l.4.4-.4-.4z"/>
+    <path fill="#63636b" d="M306.4 244.6l.6.4-.6-.4z"/>
+    <path fill="#cecece" d="M307 244.6l.4.4-.4-.4z"/>
+    <path fill="#bdbdbd" d="M222.7 245l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M223.2 245l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M223.7 245l.5.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M225.2 245l.5.5-.5-.5z"/>
+    <path fill="#314a7b" d="M225.7 245l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M226.2 245l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M228.2 245l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M229.3 245l.4.5-.4-.5z"/>
+    <path fill="#efefef" d="M229.8 245l.4.5-.4-.5z"/>
+    <path fill="#001039" d="M248.3 245l1.5 1.5-1.5-1.5z"/>
+    <path fill="#392100" d="M248.8 245l3.5 3.4-3.5-3.4z"/>
+    <path fill="#001010" d="M249.3 245l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M253.3 245l.5.5-.5-.5z"/>
+    <path fill="#392100" d="M253.8 245l1.5 1.5-1.5-1.5z"/>
+    <path fill="#101810" d="M254.3 245l.5.5-.5-.5z"/>
+    <path fill="#310000" d="M274.9 245l1 1-1-1z"/>
+    <path fill="#392100" d="M275.4 245l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M275.9 245l.5.5-.5-.5z"/>
+    <path fill="#420000" d="M280.9 245l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M281.4 245l.5.5-.5-.5m5 0l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M301 245l.4.5-.5-.5z"/>
+    <path fill="#001000" d="M302 245l.4.5-.5-.5z"/>
+    <path fill="#00216b" d="M303 245l.4.5-.5-.5z"/>
+    <path fill="#21315a" d="M303.4 245l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M304 245l.4.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M305.8 245.2l.3.1-.3-.1z"/>
+    <path fill="#cecece" d="M221.2 245.5l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M221.7 245.5l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M223.2 245.5l1 1-1-1z"/>
+    <path fill="#ada5a5" d="M223.7 245.5l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M224.2 245.5l1.5 1.9-1.5-1.9z"/>
+    <path fill="#9c9494" d="M224.7 245.5l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M225.6 245.7l.3.1-.3-.1z"/>
+    <path fill="#dedede" d="M226.2 245.5l-.5 1 .5-1z"/>
+    <path fill="#8c8c8c" d="M226.7 245.5l1.5 2.4-1.5-2.4z"/>
+    <path fill="#314a7b" d="M227.2 245.5l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M227.7 245.5l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M228.2 245.5l.5.5-.5-.5z"/>
+    <path fill="#6b735a" d="M229.3 245.5l.4.5-.4-.5z"/>
+    <path fill="#63636b" d="M229.8 245.5l.4.5-.4-.5z"/>
+    <path fill="#002984" d="M286 245.2l.6.4-.5-.4z"/>
+    <path fill="#000818" d="M243.3 245.5l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M243.8 245.5l.5.5-.5-.5z"/>
+    <path fill="#001010" d="M249.8 245.5l.5.5-.5-.5z"/>
+    <path fill="#001039" d="M253.8 245.5l.5.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M274.4 245.5l.5.5-.5-.5z"/>
+    <path fill="#392100" d="M274.9 245.5l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M279.4 245.5l-1 1.4 1-1.4z"/>
+    <path fill="#392100" d="M279.9 245.5l-1.5 1.9 1.5-1.9z"/>
+    <path fill="#ce2110" d="M280.9 245.5l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M285.4 245.5l.5.5-.5-.5z"/>
+    <path fill="#310000" d="M285.9 245.5l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M286.4 245.5l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M295 245.8l.3.3-.2-.3z"/>
+    <path fill="#dedede" d="M297.4 245.5l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M298 245.5l.4.5-.5-.5z"/>
+    <path fill="#dedede" d="M301 245.5l.4.5-.5-.5z"/>
+    <path fill="#080829" d="M301.4 245.5l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M302 245.5l.4.5-.5-.5z"/>
+    <path fill="#424242" d="M302.4 245.5l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M303 245.5l1 1-1-1z"/>
+    <path fill="#cecece" d="M303.4 245.5l.5.5-.5-.5z"/>
+    <path fill="#424242" d="M305 245.5l.4.5-.4-.5z"/>
+    <path fill="#cecece" d="M305.4 245.5l.6.5-.6-.5z"/>
+    <path fill="#9c9494" d="M221.2 246l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M221.7 246l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M223.2 246l.5.5-.5-.5m3.5 0l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M227.6 246.1l.3.2-.3-.2z"/>
+    <path fill="#cecece" d="M228.7 246l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M229.3 246l.4.5-.4-.5z"/>
+    <path fill="#295200" d="M229.8 246l.4.5-.4-.5z"/>
+    <path fill="#bdbdbd" d="M230.3 246l.4.5-.4-.5z"/>
+    <path fill="#00184a" d="M243.3 246l.5.5-.5-.5z"/>
+    <path fill="#8c7300" d="M243.8 246l.5.5-.5-.5z"/>
+    <path fill="#392121" d="M244.3 246l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M244.8 246l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M248.8 246v3.3h.5l-.5-3.3z"/>
+    <path fill="#001010" d="M250.3 246l.5.5-.5-.5m4 0l.5.5-.5-.5z"/>
+    <path fill="#00215a" d="M255.3 246l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M273.9 246l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M273.9 247l1.5-.5-1.5.4z"/>
+    <path fill="#bd2110" d="M275.4 246l.5.5-.5-.5z"/>
+    <path fill="#001010" d="M279.9 246l-.5 1 .5-1z"/>
+    <path fill="#6b1821" d="M280.4 246l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M284.4 246l.5.5-.5-.5z"/>
+    <path fill="#5a2908" d="M284.9 246l1 1-1-1z"/>
+    <path fill="#8c7300" d="M285.4 246l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M285.9 246l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M295.4 246l-.5 1 .5-1z"/>
+    <path fill="#101810" d="M298 246l.4.5-.5-.5z"/>
+    <path fill="#efefef" d="M298.4 246l.5.5-.5-.5m2.4.1l.3.2-.3-.2z"/>
+    <path d="M301.4 246l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M302 246l.4.5-.5-.5z"/>
+    <path fill="#313931" d="M302.4 246l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M303 246l.4.5-.5-.5z"/>
+    <path fill="#52525a" d="M305 246l.4.5-.4-.5z"/>
+    <path fill="#9c9494" d="M305.4 246l.6.5-.6-.5z"/>
+    <path fill="#7b7373" d="M221.2 246.4l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M222 246.6l.4.2-.3-.2m2 0l.3.2-.3-.2z"/>
+    <path fill="#ada5a5" d="M225.7 246.4l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M226.2 246.4l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M227.2 246.4l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M228.2 246.4l.5.5-.5-.5z"/>
+    <path fill="#314231" d="M228.7 246.4l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M229.3 246.4l.4.5-.4-.5z"/>
+    <path fill="#428c00" d="M229.8 246.4l-1 3.9h-.6l1-3.4h-.4l-.6 3.8 2-1-2.4 3.9 2-1.4-2.6 1.9-.4 2.4h.4l5-5.8-1.4.5v-.5l1.4-.4v-.5h-2l-.4-3.4z"/>
+    <path fill="#5a6b52" d="M230.3 246.4l.4.5-.4-.5z"/>
+    <path fill="#102121" d="M243.8 246.4l.5.5-.5-.5z"/>
+    <path fill="#efbd08" d="M244.3 246.4l.5.5-.5-.5z"/>
+    <path fill="#ad8c08" d="M244.8 246.4l.5.5-.5-.5z"/>
+    <path fill="#102121" d="M245.3 246.4l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M245.8 246.4l.5.5-.5-.5z"/>
+    <path fill="#003994" d="M249.3 246.4c0 3.9 2.3 5.6 5.5 7.7-.2-3.2-3-5.7-5.5-7.7z"/>
+    <path fill="#001010" d="M249.8 246.4l.5.5-.5-.5z"/>
+    <path fill="#001039" d="M250.8 246.4l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M254.3 246.4l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M255.2 246.6l.3.2-.3-.2z"/>
+    <path fill="#002984" d="M255.8 246.4l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M273.4 246.4l.5.5-.5-.5z"/>
+    <path fill="#392100" d="M274.4 246.4l-1 1.5 1-1.5z"/>
+    <path fill="#941808" d="M274.9 246.4l.5.5-.5-.5z"/>
+    <path fill="#003994" d="M279.9 246.4l-5 7.7c2.7-1.7 6.5-4.1 5-7.7z"/>
+    <path fill="#ce2110" d="M283.4 246.4l.5.5-.5-.5z"/>
+    <path fill="#6b2908" d="M283.9 246.4l.5.5-.5-.5z"/>
+    <path fill="#9c7b08" d="M284.4 246.4l.5.5-.5-.5z"/>
+    <path fill="#ffce08" d="M284.9 246.4l-.5 1 .5-1z"/>
+    <path fill="#ce2110" d="M285.9 246.4l.5.5-.5-.5z"/>
+    <path fill="#294221" d="M298 246.4l1 1-1-1z"/>
+    <path fill="#8c8c8c" d="M298.4 246.4l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M300.8 246.6l.3.2-.3-.2z"/>
+    <path fill="#103910" d="M301.4 246.4l.5.5-.5-.5z"/>
+    <path fill="#319400" d="M302 246.4l.4 10h.5l1.5-8.5h-.5l-1 5.7h-.5l-.5-7.2z"/>
+    <path fill="#424242" d="M302.4 246.4l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M303 246.4l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M304.4 246.4l.6.5-.6-.5z"/>
+    <path fill="#7b7373" d="M305.4 246.4l.6.5-.6-.5z"/>
+    <path fill="#ada5a5" d="M306.4 246.4l.6.5-.6-.5z"/>
+    <path fill="#cecece" d="M307 246.4l-.6 1 .6-1z"/>
+    <path fill="#ada5a5" d="M308.5 246.4l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M221.2 247l1.5 1.4-1.5-1.5z"/>
+    <path fill="#cecece" d="M222.2 247l.5 1.4h.5l-1-1.5z"/>
+    <path fill="#9c9494" d="M222.7 247l.5.4-.5-.5z"/>
+    <path fill="#dedede" d="M224.2 247l.5.4-.5-.5z"/>
+    <path fill="#9c9494" d="M224.7 247l-.5.9.5-1z"/>
+    <path fill="#425242" d="M225.7 247l.5.4-.5-.5z"/>
+    <path fill="#213918" d="M226.2 247l.5.4-.5-.5z"/>
+    <path fill="#ada5a5" d="M226.7 247l.5.4-.5-.5z"/>
+    <path fill="#63636b" d="M228.2 247l.5.4-.5-.5z"/>
+    <path fill="#294200" d="M229.4 247.3l.2.3-.2-.4z"/>
+    <path fill="#295200" d="M230.3 247l.4.4-.4-.5z"/>
+    <path fill="#dedede" d="M230.8 247l.4.4-.4-.5z"/>
+    <path fill="#4a4208" d="M244.3 247l.5.4-.5-.5z"/>
+    <path fill="#ffce08" d="M244.8 247l.5.4-.5-.5z"/>
+    <path fill="#bd9408" d="M245.3 247l.5.4-.5-.5z"/>
+    <path fill="#00184a" d="M245.8 247l.5.4-.5-.5z"/>
+    <path fill="#001010" d="M250.3 247l.5.4-.5-.5z"/>
+    <path fill="#001039" d="M251.3 247l.5.4-.5-.5z"/>
+    <path fill="#00215a" d="M254.8 247l.5.4-.5-.5z"/>
+    <path fill="#392100" d="M255.3 247l1 .9-1-1z"/>
+    <path fill="#001010" d="M255.8 247l.5.4-.5-.5z"/>
+    <path fill="#efefef" d="M265.8 247l.5.4-.5-.5z"/>
+    <path fill="#420000" d="M273.4 247l.5.4-.5-.5z"/>
+    <path fill="#5a1008" d="M274.4 247l.5.4-.5-.5z"/>
+    <path fill="#7b1008" d="M277.9 247l.5.4-.5-.5z"/>
+    <path fill="#181000" d="M278.9 247l-1 1.4 1-1.5z"/>
+    <path fill="#002984" d="M279.4 247l.5.4-.5-.5z"/>
+    <path fill="#941808" d="M283.4 247l.5.4-.5-.5z"/>
+    <path fill="#7b5a00" d="M283.9 247l.5.4-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M285.4 247l.5.4-.5-.5z"/>
+    <path fill="#bdbdbd" d="M295 247l.4.4-.5-.5z"/>
+    <path fill="#103910" d="M295.4 247l.5.4-.5-.5z"/>
+    <path fill="#dedede" d="M296 247l.4.4-.5-.5z"/>
+    <path fill="#4a6342" d="M298 247l.4.4-.5-.5z"/>
+    <path fill="#7b7373" d="M301 247l.4.4-.5-.5z"/>
+    <path fill="#185200" d="M301.4 247l.5.4-.5-.5z"/>
+    <path fill="#7b8c73" d="M302.4 247l.5.4-.5-.5z"/>
+    <path fill="#395231" d="M304 247l.4.4-.5-.5z"/>
+    <path fill="#319400" d="M304.4 247l.6.4-.6-.5z"/>
+    <path fill="#9c9494" d="M307 247l.4.4-.4-.5z"/>
+    <path fill="#63636b" d="M308 247l.5.4-.5-.5z"/>
+    <path fill="#9c9494" d="M308.5 247l.5.4-.5-.5z"/>
+    <path fill="#7b7373" d="M221.2 247.4l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M224.7 247.4l.5.5-.5-.5z"/>
+    <path fill="#424242" d="M225.2 247.4l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M225.7 247.4l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M226.2 247.4l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M226.7 247.4l1 1-1-1z"/>
+    <path fill="#397b00" d="M228.2 247.4l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M230.8 247.4l.4.5-.4-.5z"/>
+    <path fill="#002984" d="M244.3 247.4l1 1-1-1z"/>
+    <path fill="#6b5a00" d="M244.8 247.4l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M245.3 247.4l1.5 1-1.5-1z"/>
+    <path fill="#00216b" d="M246.3 247.4l.5.5-.5-.5z"/>
+    <path fill="#001010" d="M250.8 247.4l.5.5-.5-.5z"/>
+    <path fill="#001039" d="M251.8 247.4l.5.5-.5-.5m3.5 0l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M256.3 247.4l.5.5-.5-.5z"/>
+    <path fill="#bd9408" d="M264.3 247.4v.5l1 1.9h.5l-1.5-2.4z"/>
+    <path fill="#7b1008" d="M272.9 247.4l.5.5-.5-.5z"/>
+    <path fill="#311000" d="M273.9 247.4l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M274.4 247.4l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M277.4 247.4l-.5 1 .5-1z"/>
+    <path fill="#211800" d="M277.9 247.4l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M278.9 247.4l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M282.9 247.4l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M283.4 247.4l-1 1.4 1-1.4z"/>
+    <path fill="#181000" d="M283.9 247.4l.5.5-.5-.5z"/>
+    <path fill="#6b5a00" d="M284.4 247.4l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M284.9 247.4l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M295 247.4l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M295.4 247.4l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M296 247.4l.4.5-.5-.5z"/>
+    <path fill="#6b735a" d="M298 247.4l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M298.4 247.4l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M299 247.4l.4.5-.5-.5z"/>
+    <path fill="#313931" d="M301 247.4l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M301.4 247.4l.5.5-.5-.5z"/>
+    <path fill="#4a6342" d="M302.4 247.4v2.4h.5l-.5-2.4z"/>
+    <path fill="#7b7373" d="M303.4 247.4l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M304.3 247.6l.3.1-.3-.1z"/>
+    <path fill="#63636b" d="M305 247.4l.4.5-.4-.5z"/>
+    <path fill="#7b7373" d="M305.4 247.4l.6.5-.6-.5z"/>
+    <path fill="#bdbdbd" d="M306.3 247.6l.3.1-.3-.1z"/>
+    <path fill="#8c8c8c" d="M307 247.4l-.6 1 .6-1z"/>
+    <path fill="#7b7373" d="M307.4 247.4l.6.5-.6-.5z"/>
+    <path fill="#103910" d="M308 247.4l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M308.5 247.4l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M220.7 247.9l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M221.2 247.9l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M223.2 247.9l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M224.7 247.9l.5.5-.5-.5z"/>
+    <path fill="#001000" d="M225.2 247.9l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M225.7 247.9v1.4l1.5-.5v-.4l-1.5-.5z"/>
+    <path fill="#213918" d="M226.7 247.9l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M227.7 247.9l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M229 248l.4.2-.3-.2z"/>
+    <path fill="#8c8c8c" d="M230.8 247.9l.4.5-.4-.5z"/>
+    <path fill="#00216b" d="M245.3 247.9l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M246.8 247.9l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M250.8 247.9l1.5 1.4-1.5-1.4z"/>
+    <path fill="#181000" d="M251.3 247.9l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M252.3 247.9l.5.5-.5-.5z"/>
+    <path fill="#181000" d="M255.8 247.9l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M256.5 248.2l.2.3-.2-.3z"/>
+    <path fill="#00216b" d="M256.8 247.9l.5.5-.5-.5z"/>
+    <path fill="#7b5a00" d="M263.8 247.9v1.9h.5l-.5-2z"/>
+    <path fill="#ffce08" d="M264.3 247.9v2.4h-2v1.4h2v5.7h.5l.5-5.7h2.5v-1.4h-2.5v-2.4h-1z"/>
+    <path fill="#b51010" d="M272.4 247.9l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M273.2 248l.3.2-.3-.2z"/>
+    <path fill="#b51010" d="M273.9 247.9l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M277.4 247.9l-1.5 1.9 1.5-2z"/>
+    <path fill="#002984" d="M278.4 247.9l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M282.4 247.9l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M283.9 247.9l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M284.4 247.9l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M295.4 247.9l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M296 247.9l.4.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M296.4 247.9l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M298 247.9l.4.5-.5-.5z"/>
+    <path fill="#319400" d="M298.4 247.9l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M299 247.9l.4.5-.5-.5z"/>
+    <path fill="#52525a" d="M301 247.9l.4.5-.5-.5z"/>
+    <path fill="#395231" d="M303.4 247.9l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M304.4 247.9l.6.5-.6-.5z"/>
+    <path fill="#424242" d="M305 247.9l.4.5-.4-.5z"/>
+    <path fill="#9c9494" d="M305.4 247.9l.6.5-.6-.5z"/>
+    <path fill="#cecece" d="M306 247.9l.4.5-.4-.5z"/>
+    <path fill="#52525a" d="M307 247.9l.4.5-.4-.5z"/>
+    <path fill="#185200" d="M307.4 247.9l.6.5-.6-.5z"/>
+    <path fill="#63636b" d="M308 247.9l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M221.7 248.4l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M222.2 248.4l.5.4-.5-.4z"/>
+    <path fill="#dedede" d="M223 248.5l.4.2-.3-.2z"/>
+    <path fill="#9c9494" d="M223.7 248.4l.5.4-.5-.4z"/>
+    <path fill="#424242" d="M224.7 248.4l.5.4-.5-.4z"/>
+    <path fill="#428c00" d="M225.2 248.4c-1.3 2.9-1.1 4.7 0 7.6h1l1-7.2h-.5l-.5 5.8h-1v-6.2z"/>
+    <path fill="#313931" d="M227.2 248.4l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M229 248.7v.3-.3z"/>
+    <path fill="#6b735a" d="M230.8 248.4l.4.4-.4-.4z"/>
+    <path fill="#00216b" d="M245.8 248.4l1 1-1-1z"/>
+    <path fill="#100808" d="M246.3 248.4l.5.4-.5-.4z"/>
+    <path fill="#392100" d="M246.8 248.4l2 1.9-2-2z"/>
+    <path fill="#001039" d="M247.3 248.4l.5.4-.5-.4z"/>
+    <path fill="#181000" d="M251.8 248.4l1 1-1-1z"/>
+    <path fill="#211800" d="M252.3 248.4l2 2.3-2-2.3z"/>
+    <path fill="#00216b" d="M252.8 248.4l.5.4-.5-.4z"/>
+    <path fill="#002984" d="M255.8 248.4l.5.4-.5-.4z"/>
+    <path fill="#181000" d="M256.8 248.4l.5.4-.5-.4z"/>
+    <path fill="#311000" d="M272.4 248.4l.5.4-.5-.4z"/>
+    <path fill="#392100" d="M272.9 248.4l-.5 1 .5-1z"/>
+    <path fill="#7b1008" d="M273.4 248.4l.5.4-.5-.4z"/>
+    <path fill="#ad1810" d="M276.4 248.4l.5.4-.5-.4z"/>
+    <path fill="#00216b" d="M277.9 248.4l.5.4-.5-.4z"/>
+    <path fill="#631808" d="M281.9 248.4l.5.4-.5-.4z"/>
+    <path fill="#5a1008" d="M283.4 248.4l.5.4-.5-.4z"/>
+    <path fill="#5a6b52" d="M295.4 248.4l.5.4-.5-.4z"/>
+    <path fill="#319400" d="M296 248.4l.4.4-.5-.4z"/>
+    <path fill="#103910" d="M296.4 248.4l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M297 248.4l.4.4-.5-.4z"/>
+    <path fill="#9c9494" d="M298 248.4l.4.4-.5-.4z"/>
+    <path fill="#297b00" d="M298.4 248.4l.5.4-.5-.4z"/>
+    <path fill="#185200" d="M299 248.4l.4.4-.5-.4z"/>
+    <path fill="#cecece" d="M299.4 248.4l.5.4-.5-.4z"/>
+    <path fill="#315221" d="M301 248.4l.4.4-.5-.4z"/>
+    <path fill="#185200" d="M303.4 248.4l.5.4-.5-.4m1 0l.5.4-.5-.4z"/>
+    <path fill="#ada5a5" d="M305 248.4l.4.4-.4-.4z"/>
+    <path fill="#efefef" d="M305.8 248.5l.3.2-.3-.2z"/>
+    <path fill="#ada5a5" d="M306.4 248.4l.6.4-.6-.4z"/>
+    <path fill="#214210" d="M307 248.4l.4.4-.4-.4z"/>
+    <path fill="#296300" d="M307.4 248.4l.6.4-.6-.4z"/>
+    <path fill="#bdbdbd" d="M308 248.4l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M224.7 248.8l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M227.2 248.8l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M230.8 248.8l.4.5-.4-.5z"/>
+    <path fill="#002984" d="M245.8 248.8v13.4h-4.5v.5l5-.5v2.4h.5c0-4.1 1.6-12.4-1-15.8z"/>
+    <path fill="#001010" d="M246.8 248.8l.5.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M253.3 248.8l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M256.3 248.8l.5.5-.5-.5z"/>
+    <path fill="#392100" d="M256.8 248.8l1 1-1-1z"/>
+    <path fill="#101829" d="M257.3 248.8l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M271.9 248.8l.5.5-.5-.5z"/>
+    <path fill="#420000" d="M272.9 248.8l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M275.9 248.8l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M277.4 248.8l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M280.9 248.8l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M281.4 248.8l.5.5-.5-.5z"/>
+    <path fill="#392100" d="M281.9 248.8l-1.5 2 1.5-2z"/>
+    <path fill="#181000" d="M282.4 248.8l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M282.9 248.8l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M283.4 248.8v13.4h.5l-.5-13.4z"/>
+    <path fill="#8c8c8c" d="M295.4 248.8l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M296.3 249l.3.2-.3-.2z"/>
+    <path fill="#52525a" d="M297 248.8l.4.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M298 248.8l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M298.4 248.8l.5.5-.5-.5z"/>
+    <path fill="#319400" d="M299 248.8l2 12h.4a15 15 0 00-2.5-12z"/>
+    <path fill="#63636b" d="M299.4 248.8l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M300.4 248.8l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M301 248.8l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M303.4 248.8l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M304.4 248.8l.6.5-.6-.5z"/>
+    <path fill="#314231" d="M306.4 248.8l.6.5-.6-.5z"/>
+    <path fill="#319400" d="M307 248.8l.4.5-.4-.5z"/>
+    <path fill="#294221" d="M307.4 248.8l.6.5-.6-.5z"/>
+    <path fill="#efefef" d="M223.7 249.3l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M224.2 249.3l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M225.9 249.6l.2.4-.2-.4z"/>
+    <path fill="#294200" d="M227.2 249.3l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M228.6 249.5l.3.1-.3-.1z"/>
+    <path fill="#294200" d="M230.3 249.3l.4.5-.4-.5z"/>
+    <path fill="#315221" d="M231 249.5l.4.1-.3-.1z"/>
+    <path fill="#294200" d="M231.8 249.3l.4.5-.4-.5z"/>
+    <path fill="#8c8442" d="M232.3 249.3l.4.5-.4-.5z"/>
+    <path fill="#63636b" d="M232.8 249.3l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M233.3 249.3l.5.5-.5-.5z"/>
+    <path fill="#003994" d="M246.8 249.3c0 3.6-1.8 13 .5 15.9 1 1.3 3.5 1.4 5 1.8 0-7.3 1.5-13.1-5.5-17.7z"/>
+    <path fill="#101829" d="M247.3 249.3l.5.5-.5-.5z"/>
+    <path fill="#100808" d="M248.3 249.3l.5.5-.5-.5z"/>
+    <path fill="#001039" d="M248.8 249.3l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M252.3 249.3l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#001010" d="M256.8 249.3l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M257.8 249.3l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M271.4 249.3l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M271.4 250.3l1.5-1-1.5 1z"/>
+    <path fill="#ce2110" d="M272.9 249.3l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M275.4 249.3l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M276.9 249.3l.5.5-.5-.5z"/>
+    <path fill="#5a1831" d="M280.4 249.3l.5.5-.5-.5z"/>
+    <path fill="#311000" d="M280.9 249.3l.5.5-.5-.5z"/>
+    <path fill="#001010" d="M281.9 249.3l.5.5-.5-.5z"/>
+    <path fill="#003994" d="M277.4 267c1.6-.4 4-.6 5.2-1.8 2.6-2.6.8-12.4.8-15.9-7.8 3.5-6 10.8-6 17.7z"/>
+    <path fill="#dedede" d="M295.4 249.3l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M296 249.3l.4.5-.5-.5z"/>
+    <path fill="#319400" d="M296.4 249.3l4 15.3h-.5c-.8-2.7-4-12.9-8-9 5.4.1 7.2 9.2 8 13.3h.5l6.6-19.1h-.6l-5 12.4h-.5c-1.3-4-1.2-9.8-4.5-12.9z"/>
+    <path fill="#296300" d="M297 249.3l.4.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M297.4 249.3l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M298 249.3l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M298.4 249.3l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M299.4 249.3l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M300 249.3l.4.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M300.4 249.3l-.5 1 .5-1z"/>
+    <path fill="#297b00" d="M301 249.3l.4.5-.5-.5z"/>
+    <path fill="#395231" d="M303 249.3l.4.5-.5-.5z"/>
+    <path fill="#4a6342" d="M304.4 249.3l.6.5-.6-.5z"/>
+    <path fill="#8c8c8c" d="M306 249.3l.4.5-.4-.5z"/>
+    <path fill="#297b00" d="M306.8 249.5l.3.1-.3-.1z"/>
+    <path fill="#8c8c8c" d="M307.4 249.3l.6.5-.6-.5z"/>
+    <path fill="#7b7373" d="M223.7 249.8l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M227.2 249.8l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M228.2 249.8l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M229.3 249.8l-2 .5v.4l2-1z"/>
+    <path fill="#103900" d="M229.8 249.8l.4.5-.4-.5z"/>
+    <path fill="#397b00" d="M232.4 250.1l.2.3-.2-.3z"/>
+    <path fill="#428c00" d="M232.8 249.8l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M233.3 249.8l.5.5-.5-.5z"/>
+    <path fill="#313931" d="M233.8 249.8l.5.5-.5-.5z"/>
+    <path fill="#001039" d="M247.8 249.8l.5.5-.5-.5z"/>
+    <path fill="#181000" d="M248.8 249.8l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M249.3 249.8l1 1-1-1m3.5 0l.5.5-.5-.5z"/>
+    <path fill="#181000" d="M253.8 249.8l1.5 1.4-1.5-1.4z"/>
+    <path fill="#002984" d="M254.3 249.8l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M257.6 250l.4.1-.4-.2z"/>
+    <path fill="#002984" d="M258.3 249.8l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M261.3 249.8l.5.5-.5-.5z"/>
+    <path fill="#ada584" d="M261.8 249.8l.5.5-.5-.5z"/>
+    <path fill="#9c7b08" d="M263.8 249.8l.5.5-.5-.5z"/>
+    <path fill="#cea508" d="M265.3 249.8l.5.5-.5-.5z"/>
+    <path fill="#9c9463" d="M265.8 249.8l.5.5-.5-.5z"/>
+    <path fill="#bdb584" d="M266.3 249.8v.5h1.5l-1.5-.5z"/>
+    <path fill="#bdbdbd" d="M267.9 249.8l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M270.9 249.8l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M272.4 249.8l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M274.9 249.8l.5.5-.5-.5z"/>
+    <path fill="#210800" d="M275.4 249.8l.5.5-.5-.5z"/>
+    <path fill="#392100" d="M275.9 249.8l-1 1.4 1-1.4z"/>
+    <path fill="#00184a" d="M276.4 249.8l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M279.9 249.8l.5.5-.5-.5z"/>
+    <path fill="#100808" d="M280.4 249.8l.5.5-.5-.5z"/>
+    <path fill="#101829" d="M281.4 249.8l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M293.4 249.8l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M294 249.8l.4.5-.5-.5z"/>
+    <path fill="#315221" d="M296 249.8l.4.5-.5-.5z"/>
+    <path fill="#103910" d="M297.4 249.8l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M298 249.8l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M298.4 249.8l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M299.4 249.8l.5.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M300.4 249.8l.5.5-.5-.5z"/>
+    <path fill="#294221" d="M302.4 249.8l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M303 249.8l.4.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M304.4 249.8l.6.5-.6-.5z"/>
+    <path fill="#dedede" d="M305.4 249.8l.6.5-.6-.5z"/>
+    <path fill="#184a00" d="M306 249.8l.4.5-.4-.5m1 0l.4.5-.4-.5z"/>
+    <path fill="#efefef" d="M307.4 249.8l.6.5-.6-.5z"/>
+    <path fill="#5a5231" d="M223.7 250.3l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M225.7 250.3v1.4h.5l-.5-1.4m3.6 0l.4.4-.4-.4m2.3.1l.3.2-.3-.2z"/>
+    <path fill="#214210" d="M232.8 250.3l.5.4-.5-.4z"/>
+    <path fill="#9c9494" d="M233.3 250.3l.5.4-.5-.4z"/>
+    <path fill="#00215a" d="M248.3 250.3l.5.4-.5-.4z"/>
+    <path fill="#211800" d="M248.8 250.3v.4l1.5.5-1.5-1z"/>
+    <path fill="#00216b" d="M253.3 250.3l.5.4-.5-.4z"/>
+    <path fill="#002984" d="M254.8 250.3l.5.4-.5-.4z"/>
+    <path fill="#00216b" d="M257.3 250.3l.5.4-.5-.4z"/>
+    <path fill="#392100" d="M257.8 250.3l1.5 1.4-1.5-1.4z"/>
+    <path fill="#101810" d="M258.3 250.3l.5.4-.5-.4z"/>
+    <path fill="#bd9408" d="M261.8 250.3v1.4h.5l-.5-1.4z"/>
+    <path fill="#310000" d="M270.9 250.3l.5.4-.5-.4z"/>
+    <path fill="#392100" d="M271.4 250.3l-.5 1 .5-1z"/>
+    <path fill="#631808" d="M271.9 250.3l.5.4-.5-.4z"/>
+    <path fill="#ce2110" d="M274.4 250.3l-.5 1 .5-1z"/>
+    <path fill="#311000" d="M274.9 250.3l.5.4-.5-.4z"/>
+    <path fill="#001039" d="M275.9 250.3l.5.4-.5-.4z"/>
+    <path fill="#00216b" d="M279.4 250.3l-.5 1 .5-1z"/>
+    <path fill="#181000" d="M279.9 250.3l.5.4-.5-.4z"/>
+    <path fill="#001039" d="M280.9 250.3l.5.4-.5-.4z"/>
+    <path fill="#101810" d="M294 250.3l.4.4-.5-.4z"/>
+    <path fill="#efefef" d="M294.4 250.3l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M296 250.3l.4.4-.5-.4z"/>
+    <path fill="#297b00" d="M297.4 250.3l.5.4-.5-.4z"/>
+    <path fill="#7b7373" d="M298 250.3l.4.4-.5-.4z"/>
+    <path fill="#315221" d="M298.4 250.3l.5.4-.5-.4z"/>
+    <path fill="#214210" d="M300 250.3l.4.4-.5-.4z"/>
+    <path fill="#103900" d="M300.4 250.3l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M302.4 250.3v2.8h.5l-.5-2.8z"/>
+    <path fill="#297b00" d="M303 250.3l.4.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M304.4 250.3l.6.4-.6-.4z"/>
+    <path fill="#63636b" d="M305.4 250.3l.6.4-.6-.4z"/>
+    <path fill="#297b00" d="M306 250.3l.4.4-.4-.4z"/>
+    <path fill="#5a6b52" d="M307 250.3l.4.4-.4-.4z"/>
+    <path fill="#294200" d="M223.7 250.8l.5.4-.5-.4m4 0l.5.4-.5-.4m1 0l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M230.8 250.8l.4.4-.4-.4z"/>
+    <path fill="#397b00" d="M231.3 250.8l.4.4-.4-.4z"/>
+    <path fill="#294200" d="M232.3 250.8l.4.4-.4-.4z"/>
+    <path fill="#cecece" d="M232.8 250.8l.5.4-.5-.4z"/>
+    <path fill="#00216b" d="M248.8 250.8l.5.4-.5-.4z"/>
+    <path fill="#001039" d="M250.3 250.8l1 .9-1-1z"/>
+    <path fill="#00184a" d="M253.8 250.8l.5.4-.5-.4z"/>
+    <path fill="#392100" d="M254.3 250.8l4 3.8-4-3.9z"/>
+    <path fill="#001039" d="M257.8 250.8l.5.4-.5-.4m1 0l.5.4-.5-.4z"/>
+    <path fill="#631808" d="M270.4 250.8l.5.4-.5-.4z"/>
+    <path fill="#311000" d="M271.4 250.8l.5.4-.5-.4m3 0l.5.4-.5-.4z"/>
+    <path fill="#001039" d="M275.4 250.8l.5.4-.5-.4z"/>
+    <path fill="#211800" d="M278.9 251.7l1.5-.5-1.5.5z"/>
+    <path fill="#00215a" d="M280.4 250.8l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M294 250.8l.4.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M294.4 250.8l.5.4-.5-.4z"/>
+    <path fill="#ada5a5" d="M296 250.8l.4.4-.5-.4z"/>
+    <path fill="#297b00" d="M296.4 250.8l.5.4-.5-.4z"/>
+    <path fill="#295210" d="M298 250.8l.4.4-.5-.4z"/>
+    <path fill="#395231" d="M298.4 250.8l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M300 250.8l.4.4-.5-.4z"/>
+    <path fill="#185200" d="M300.4 250.8l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M304 250.8l.4.4-.5-.4z"/>
+    <path fill="#9c9494" d="M304.4 250.8l.6.4-.6-.4z"/>
+    <path fill="#dedede" d="M305 250.8l.4.4-.4-.4z"/>
+    <path fill="#184a00" d="M305.4 250.8l.6.4-.6-.4z"/>
+    <path fill="#296300" d="M306.4 250.8l.6.4-.6-.4z"/>
+    <path fill="#ada5a5" d="M307 250.8l.4.4-.4-.4z"/>
+    <path fill="#cecece" d="M223.2 251.2l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M223.7 251.2l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M227.7 251.2l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M228.2 251.2l-.5 1.5h.5v-1.5m2 0l-.5 1 .5-1z"/>
+    <path fill="#397b00" d="M231.8 251.2l.4.5-.4-.5z"/>
+    <path fill="#8c8c8c" d="M232.3 251.2l.4.5-.4-.5m2 0l.4.5-.4-.5z"/>
+    <path fill="#002984" d="M249.3 251.2l.5.5-.5-.5z"/>
+    <path fill="#392100" d="M250.3 251.2l2 2-2-2z"/>
+    <path fill="#001039" d="M254.3 251.2l.5.5-.5-.5z"/>
+    <path fill="#001010" d="M255.3 251.2l.5.5-.5-.5z"/>
+    <path fill="#101810" d="M258.3 251.2l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M259.3 251.2l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M269.9 251.2l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M269.9 252.2l1.5-.5-1.5.5z"/>
+    <path fill="#bd2110" d="M271.4 251.2l.5.5-.5-.5z"/>
+    <path fill="#310000" d="M273.9 251.2l.5.5-.5-.5z"/>
+    <path fill="#422100" d="M274.4 251.2l.5.5-.5-.5z"/>
+    <path fill="#101829" d="M274.9 251.2l.5.5-.5-.5z"/>
+    <path fill="#001039" d="M278.4 251.2l-.5 1 .5-1z"/>
+    <path fill="#181000" d="M279.4 251.2l-.5 1 .5-1z"/>
+    <path fill="#00216b" d="M279.9 251.2l.5.5-.5-.5z"/>
+    <path fill="#426331" d="M294 251.2l.4.5-.5-.5z"/>
+    <path fill="#214210" d="M294.4 251.2l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M295 251.2l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M296.4 251.2l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M298 251.2l.4.5-.5-.5z"/>
+    <path fill="#001000" d="M298.4 251.2l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M300.4 251.2l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M304 251.2l.4.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M304.4 251.2l.6.5-.6-.5z"/>
+    <path fill="#63636b" d="M305 251.2l.4.5-.4-.5z"/>
+    <path fill="#297b00" d="M305.4 251.2l.6.5-.6-.5z"/>
+    <path fill="#315221" d="M306.4 251.2l.6.5-.6-.5z"/>
+    <path fill="#9c9494" d="M223.4 252l.2.3-.2-.3z"/>
+    <path fill="#295200" d="M225.7 251.7l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M227.4 252l.2.3-.2-.3m.8-.3l.6.5-.6-.5z"/>
+    <path fill="#425242" d="M231.8 251.7l.4.5-.4-.5z"/>
+    <path fill="#001000" d="M234.3 251.7l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M234.8 251.7l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M238.8 251.7l.5.5-.5-.5z"/>
+    <path fill="#52525a" d="M239.3 251.7l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M239.8 251.7l.5.5-.5-.5z"/>
+    <path fill="#001010" d="M250.3 251.7l.5.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#001039" d="M254.8 251.7l.5.5-.5-.5z"/>
+    <path fill="#001010" d="M255.8 251.7l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M258.3 251.7l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M259.2 251.9l.3.1-.3-.1z"/>
+    <path fill="#dedede" d="M261.3 251.7l.5.5-.5-.5z"/>
+    <path fill="#ada584" d="M261.8 251.7l.5.5-.5-.5z"/>
+    <path fill="#9c7b08" d="M263.8 251.7l.5.5-.5-.5z"/>
+    <path fill="#cea508" d="M265.3 251.7l.5.5-.5-.5z"/>
+    <path fill="#9c9463" d="M265.8 251.7l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M267.9 251.7l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M269.4 251.7l.5.5-.5-.5z"/>
+    <path fill="#392100" d="M270.4 251.7l-1 1.4 1-1.4z"/>
+    <path fill="#941808" d="M270.9 251.7l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M273.4 251.7l-1 1.4 1-1.4z"/>
+    <path fill="#392100" d="M273.9 251.7l-1 1.4 1-1.4z"/>
+    <path fill="#001010" d="M274.4 251.7l.5.5-.5-.5z"/>
+    <path fill="#392100" d="M278.4 251.7l-1.5 1.9 1.5-1.9z"/>
+    <path fill="#002984" d="M279.4 251.7l.5.5-.5-.5z"/>
+    <path fill="#4a6342" d="M294 251.7l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M294.4 251.7l.5.5-.5-.5z"/>
+    <path fill="#52525a" d="M295 251.7l.4.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M296.4 251.7l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M298.4 251.7l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M300.4 251.7l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M301 251.7l-.6 1 .5-1z"/>
+    <path fill="#185200" d="M304 251.7l.4.5-.5-.5z"/>
+    <path fill="#dedede" d="M304.4 251.7l.6.5-.6-.5z"/>
+    <path fill="#184a00" d="M305 251.7l.4.5-.4-.5z"/>
+    <path fill="#297b00" d="M306 251.7l.4.5-.4-.5z"/>
+    <path fill="#8c8c8c" d="M306.4 251.7l.6.5-.6-.5z"/>
+    <path fill="#cecece" d="M308 251.7l.5.5-.5-.5z"/>
+    <path fill="#294221" d="M308.5 251.7l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M309 251.7l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M309.5 251.7l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M225.2 252.2v2.4h1v-2.4h-1z"/>
+    <path fill="#103900" d="M229.3 252.2l.4.5-.4-.5z"/>
+    <path fill="#295200" d="M231.3 252.2l.4.5-.4-.5z"/>
+    <path fill="#bdbdbd" d="M231.8 252.2l.4.5-.4-.5z"/>
+    <path fill="#efefef" d="M233.8 252.2l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M234.3 252.2l1 1-1-1z"/>
+    <path fill="#425242" d="M234.8 252.2l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M237.8 252.2l.5.5-.5-.5z"/>
+    <path fill="#5a5231" d="M238.3 252.2l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M238.8 252.2l.5.5-.5-.5z"/>
+    <path fill="#396b10" d="M239.3 252.2l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M239.8 252.2l.5.5-.5-.5z"/>
+    <path fill="#001039" d="M250.8 252.2l.5.5-.5-.5z"/>
+    <path fill="#181000" d="M251.8 252.2l1 1-1-1z"/>
+    <path fill="#002984" d="M252.3 252.2l.5.5-.5-.5z"/>
+    <path fill="#52525a" d="M255.3 252.2l.5.5-.5-.5z"/>
+    <path fill="#001010" d="M256.3 252.2l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M258.8 252.2l.5.5-.5-.5z"/>
+    <path fill="#392100" d="M259.3 252.2l1 1-1-1z"/>
+    <path fill="#001010" d="M259.8 252.2l.5.5-.5-.5z"/>
+    <path fill="#7b5a00" d="M263.8 252.2v5.2h.5l-.5-5.2z"/>
+    <path fill="#420000" d="M269.4 252.2l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M270.4 252.2l.5.5-.5-.5z"/>
+    <path fill="#313931" d="M273.9 252.2l.5.5-.5-.5z"/>
+    <path fill="#314a7b" d="M274.4 252.2l.5.5-.5-.5z"/>
+    <path fill="#001010" d="M277.4 252.2l.5.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M294 252.2l.4.5-.5-.5z"/>
+    <path fill="#319400" d="M294.4 252.2l2.5 4.3h.5l-3-4.3z"/>
+    <path fill="#296300" d="M295 252.2l.4.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M295.4 252.2l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M296.4 252.2l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M297 252.2l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M298.4 252.2l1 1-1-1z"/>
+    <path fill="#297b00" d="M299 252.2l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M301 252.2l.4.5-.5-.5z"/>
+    <path fill="#214210" d="M304 252.2l.4.5-.5-.5z"/>
+    <path fill="#63636b" d="M304.4 252.2l.6.5-.6-.5z"/>
+    <path fill="#297b00" d="M305 252.2l.4.5-.4-.5z"/>
+    <path fill="#185200" d="M306 252.2l.4.5-.4-.5z"/>
+    <path fill="#dedede" d="M306.4 252.2l.6.5-.6-.5z"/>
+    <path fill="#8c8c8c" d="M307.4 252.2l.6.5-.6-.5z"/>
+    <path fill="#184a00" d="M308 252.2l.5.5-.5-.5z"/>
+    <path fill="#319400" d="M305.4 255.5l5-1.4-1-2-4 3.4z"/>
+    <path fill="#214210" d="M309.5 252.2l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M310 252.2l.5.5-.5-.5m-86.8.5l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M223.7 252.7l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M227.4 253l.2.3-.2-.3m1.3-.4l.6.5-.6-.4z"/>
+    <path fill="#397b00" d="M229.3 252.7l.4.4-.4-.4z"/>
+    <path fill="#425242" d="M231.3 252.7l.4.4-.4-.4z"/>
+    <path fill="#bdbdbd" d="M233.8 252.7l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M234.3 252.7l.5.4-.5-.4z"/>
+    <path fill="#cecece" d="M235.3 252.7l.5.4-.5-.4z"/>
+    <path fill="#7b7373" d="M237.3 252.7l.5.4-.5-.4z"/>
+    <path fill="#295200" d="M237.8 252.7l.5.4-.5-.4z"/>
+    <path fill="#428c00" d="M236.3 259.8h-.5v-5.2h-.5l-.5 2.4h-.5v-2.4h-.5l-3 11h.4l1-2h.5l-1 2.4h.5l2.5-3.3-2 4.3h.5l5.1-7.2 1-7.1c-3.3 1.5-3 4-3 7.1z"/>
+    <path fill="#63636b" d="M239.3 252.7l.5.4-.5-.4z"/>
+    <path fill="#001039" d="M251.3 252.7l.5.4-.5-.4z"/>
+    <path fill="#00216b" d="M252.8 252.7l1 1-1-1z"/>
+    <path fill="#efefef" d="M255.3 252.7l1.5 1.4-1.5-1.4z"/>
+    <path fill="#313931" d="M255.8 252.7l.5.4-.5-.4z"/>
+    <path fill="#001039" d="M256.8 252.7l.5.4-.5-.4z"/>
+    <path fill="#101829" d="M259.3 252.7l.5.4-.5-.4z"/>
+    <path d="M260.3 252.7l.5.4-.5-.4z"/>
+    <path fill="#210800" d="M268.9 252.7l.5.4-.5-.4z"/>
+    <path fill="#ce2110" d="M270.4 252.7l.5.4-.5-.4z"/>
+    <path fill="#292921" d="M273.4 252.7l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M273.9 252.7l.5.4-.5-.4z"/>
+    <path fill="#002984" d="M276.4 252.7l.5.4-.5-.4z"/>
+    <path fill="#181000" d="M276.9 252.7l.5.4-.5-.4z"/>
+    <path fill="#001039" d="M277.9 252.7l.5.4-.5-.4z"/>
+    <path fill="#9c9494" d="M294 253l.2.3-.1-.3z"/>
+    <path fill="#297b00" d="M294.4 252.7l.5.4-.5-.4z"/>
+    <path fill="#103910" d="M295.4 252.7l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M296 252.7l.4.4-.5-.4z"/>
+    <path fill="#dedede" d="M296.4 252.7l.5.4-.5-.4z"/>
+    <path fill="#185200" d="M297 252.7l.4.4-.5-.4z"/>
+    <path fill="#297b00" d="M298.4 252.7l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M301 252.7l.4.4-.5-.4z"/>
+    <path fill="#294221" d="M304 252.7l.4.4-.5-.4z"/>
+    <path fill="#184a00" d="M304.4 252.7l.6.4-.6-.4z"/>
+    <path fill="#425242" d="M306 252.7l.4.4-.4-.4z"/>
+    <path fill="#63636b" d="M307 252.7l-1 1.4 1-1.4z"/>
+    <path fill="#297b00" d="M307.4 252.7l.6.4-.6-.4z"/>
+    <path fill="#425242" d="M310 252.7l.5.4-.5-.4z"/>
+    <path fill="#396b10" d="M223.7 253.1l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M228.2 253.1l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M228.7 253.1l.5.5-.5-.5z"/>
+    <path fill="#314231" d="M230.8 253.1l.4.5-.4-.5z"/>
+    <path fill="#efefef" d="M231.3 253.1l-.6 1 .6-1z"/>
+    <path fill="#7b7373" d="M233.8 253.1l.5.5-.5-.5z"/>
+    <path fill="#428c00" d="M234.6 253.3l.3.1-.3-.1z"/>
+    <path fill="#7b7373" d="M235.3 253.1l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M236.8 253.1l-.5 1 .5-1z"/>
+    <path fill="#397b00" d="M237.3 253.1l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M239.3 253.1l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M251.8 253.1l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M252.6 253.3l.4.1-.4-.1z"/>
+    <path fill="#313931" d="M256.3 253.1l.5.5-.5-.5z"/>
+    <path fill="#001039" d="M257.3 253.1l.5.5-.5-.5z"/>
+    <path fill="#181000" d="M259.8 253.1l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M260.5 253.4l.2.4-.2-.4z"/>
+    <path fill="#bdbdbd" d="M260.8 253.1l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M268.4 253.1l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M269.9 253.1l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M271.9 253.1l-1 1.5 1-1.5z"/>
+    <path fill="#211800" d="M272.4 253.1l-2.5 2.9 2.5-2.9z"/>
+    <path fill="#212118" d="M272.9 253.1l-.5 1 .5-1z"/>
+    <path fill="#cecece" d="M273.4 253.1l-1 1.5 1-1.5z"/>
+    <path fill="#00216b" d="M275.9 253.1l-.5 1 .5-1z"/>
+    <path fill="#181000" d="M276.4 253.1l.5.5-.5-.5z"/>
+    <path fill="#001039" d="M277.4 253.1l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M293 253.1l.4.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M293.4 253.1l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M294.4 253.1l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M295.4 253.1l.5.5-.5-.5z"/>
+    <path fill="#52525a" d="M296 253.1l.4.5-.5-.5z"/>
+    <path fill="#395231" d="M297 253.1l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M299 253.1v1.5h.4l-.5-1.5z"/>
+    <path fill="#296300" d="M301.3 253.3l.3.1-.3-.1m1.1-.2l.5.5-.5-.5z"/>
+    <path fill="#001000" d="M304 253.1l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M304.4 253.1l.6.5-.6-.5m1 0l.6.5-.6-.5z"/>
+    <path fill="#9c9494" d="M306 253.1l.4.5-.4-.5z"/>
+    <path fill="#297b00" d="M307 253.1l.4.5-.4-.5z"/>
+    <path fill="#296300" d="M310 253.1l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M310.5 253.1l.5.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M223.7 253.6l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M226.7 253.6v.5h1.5l-1.5-.5z"/>
+    <path fill="#294200" d="M228.2 253.6l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M229.8 253.6l.4.5-.4-.5z"/>
+    <path fill="#52525a" d="M230.3 253.6l.4.5-.4-.5z"/>
+    <path fill="#efefef" d="M233.3 253.6l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M233.8 253.6l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M233.8 254v.6l1.5.4v-1.4l-1.5.5z"/>
+    <path fill="#5a5231" d="M235.3 253.6l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M236.8 253.6l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M238.6 253.8l.3.1-.3-.1z"/>
+    <path fill="#dedede" d="M239.3 253.6l.5.5-.5-.5z"/>
+    <path fill="#424242" d="M252.3 253.6l.5.5-.5-.5z"/>
+    <path fill="#212118" d="M252.8 253.6l.5.5-.5-.5z"/>
+    <path fill="#392100" d="M253.3 253.6l2 2-2-2z"/>
+    <path fill="#001039" d="M253.8 253.6l.5.5-.5-.5z"/>
+    <path fill="#292921" d="M256.8 253.6l.5.5-.5-.5z"/>
+    <path fill="#001039" d="M257.8 253.6l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M259.8 253.6l.5.5-.5-.5z"/>
+    <path fill="#211810" d="M260.8 253.6l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M261.3 253.6l.5.5-.5-.5z"/>
+    <path fill="#313931" d="M268.4 253.6l.5.5-.5-.5z"/>
+    <path fill="#392100" d="M268.9 253.6l-.5 1 .5-1z"/>
+    <path fill="#631808" d="M269.4 253.6l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M276.2 253.8l.3.1-.3-.1z"/>
+    <path fill="#313931" d="M276.9 253.6l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M292.4 253.6l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M293 253.6l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M293.4 253.6l.5.5-.5-.5z"/>
+    <path fill="#295210" d="M294 253.6l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M294.4 253.6l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M296 253.6l.4.5-.5-.5z"/>
+    <path fill="#9c9494" d="M296.4 253.6l1 1-1-1z"/>
+    <path fill="#8c8c8c" d="M297 253.6l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M301.4 253.6l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M303.4 253.6l1 1-1-1z"/>
+    <path fill="#184a00" d="M304 253.6l.4.5-.5-.5z"/>
+    <path fill="#214210" d="M305.4 253.6l.6.5-.6-.5z"/>
+    <path fill="#297b00" d="M306.4 253.6l.6.5-.6-.5m1 0l-3 2v.4l1 .5 2-2.9z"/>
+    <path fill="#214210" d="M308 253.6l.5.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M308.5 253.6l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M309 253.6l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M309.5 253.6l.5.5-.5-.5z"/>
+    <path fill="#294221" d="M310.5 253.6l-.5 1 .5-1z"/>
+    <path fill="#bdbdbd" d="M223.7 254l.5.6-.5-.5z"/>
+    <path fill="#295200" d="M224.2 254l.5.6-.5-.5z"/>
+    <path fill="#103900" d="M226.7 254l.5.6-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M228.7 254l-.5 1 .5-1z"/>
+    <path fill="#5a5231" d="M229.3 254l.4.6-.4-.5z"/>
+    <path fill="#bdbdbd" d="M229.8 254l.4.6-.4-.5z"/>
+    <path fill="#9c9494" d="M233.3 254l.5.6-.5-.5z"/>
+    <path fill="#295200" d="M235.3 254l1 1-1-1z"/>
+    <path fill="#52525a" d="M235.8 254l.5.6-.5-.5z"/>
+    <path fill="#397b00" d="M236.3 254l.5.6-.5-.5z"/>
+    <path fill="#294200" d="M238 254.4l.1.3-.2-.3m.9-.3v3.3h.5l-.5-3.3z"/>
+    <path fill="#8c8c8c" fill-opacity=".5" d="M252.3 254v13h.5l-.5-13z"/>
+    <path fill="#cecece" d="M252.8 254l.5.6-.5-.5z"/>
+    <path fill="#211810" d="M253.3 254l.5.6-.5-.5z"/>
+    <path fill="#001039" d="M254.3 254l.5.6-.5-.5z"/>
+    <path fill="#cecece" d="M256.8 254l1.5 1.5-1.5-1.4z"/>
+    <path fill="#212118" d="M257.3 254l.5.6-.5-.5z"/>
+    <path fill="#00215a" d="M258.3 254l.5.6-.5-.5z"/>
+    <path fill="#001039" d="M260.3 254l.5.6-.5-.5z"/>
+    <path fill="#392100" d="M260.8 254l1 1-1-1z"/>
+    <path fill="#424242" d="M261.3 254l.5.6-.5-.5z"/>
+    <path fill="#7b7373" d="M267.9 254l.5.6-.5-.5z"/>
+    <path fill="#310000" d="M268.9 254l.5.6-.5-.5z"/>
+    <path fill="#001039" d="M274.9 254l.5.6-.5-.5z"/>
+    <path fill="#392100" d="M275.4 254l-1.5 2 1.5-2z"/>
+    <path fill="#212118" d="M275.9 254l.5.6-.5-.5z"/>
+    <path fill="#ada5a5" d="M276.4 254l.5.6-.5-.5z"/>
+    <path fill="#8c8c8c" d="M276.9 254v13h.5l-.5-13m15 0l.5.6-.5-.5z"/>
+    <path fill="#296300" d="M292.4 254l.5.6-.5-.5z"/>
+    <path fill="#185200" d="M294.4 254l.5.6-.5-.5z"/>
+    <path fill="#296300" d="M295 254l.4.6-.5-.5z"/>
+    <path fill="#214210" d="M296.4 254l.5.6-.5-.5z"/>
+    <path fill="#296300" d="M297.4 254l.5.6-.5-.5z"/>
+    <path fill="#184a00" d="M301.4 254l.5.6-.5-.5z"/>
+    <path fill="#297b00" d="M302 254l-.6 1 .5-1z"/>
+    <path fill="#185200" d="M303.4 254l.5.6-.5-.5z"/>
+    <path fill="#314231" d="M307.4 254l-1 1.5 1-1.4z"/>
+    <path fill="#efefef" d="M308 254l-1.5 2 1.5-2z"/>
+    <path fill="#bdbdbd" d="M309.5 254l.5.6-.5-.5z"/>
+    <path fill="#185200" d="M310.5 254l.5.6-.5-.5z"/>
+    <path fill="#ada5a5" d="M311 254l.5.6-.5-.5z"/>
+    <path fill="#63636b" d="M224.2 254.6l.5.4-.5-.4z"/>
+    <path fill="#295200" d="M226.7 254.6l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M227.2 254.6l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M228.7 254.6l-.5 1 .5-1z"/>
+    <path fill="#7b7373" d="M229.3 254.6l.4.4-.4-.4z"/>
+    <path fill="#8c8c8c" d="M229.8 254.6l.4.4-.4-.4z"/>
+    <path fill="#efefef" d="M230.3 254.6l.4.4-.4-.4m2.4 0l.6.4-.6-.4z"/>
+    <path fill="#214210" d="M233.3 254.6l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M253.3 254.6l1 1-1-1z"/>
+    <path fill="#313931" d="M253.8 254.6l.5.4-.5-.4z"/>
+    <path d="M254.8 254.6l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M255.3 254.6l.5.4-.5-.4z"/>
+    <path fill="#212118" d="M257.8 254.6l1 1-1-1z"/>
+    <path fill="#211800" d="M258.3 254.6l2 2.3-2-2.3z"/>
+    <path fill="#00216b" d="M258.8 254.6l.5.4-.5-.4z"/>
+    <path fill="#00184a" d="M260.3 254.6v1.4h.5l-.5-1.4z"/>
+    <path fill="#313931" d="M260.8 254.6l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M261.8 254.6l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M267.4 254.6l.5.4-.5-.4z"/>
+    <path fill="#211800" d="M268 254.9l.2.3-.2-.3z"/>
+    <path fill="#211810" d="M268.4 254.6l.5.4-.5-.4z"/>
+    <path fill="#b51010" d="M270.4 254.6l.5.4-.5-.4z"/>
+    <path fill="#9c9494" d="M271.9 254.6l-1 1.4 1-1.4z"/>
+    <path fill="#efefef" d="M273.9 254.6l-.5 1 .5-1z"/>
+    <path fill="#292921" d="M274.4 254.6l.5.4-.5-.4z"/>
+    <path fill="#211810" d="M275.4 254.6l.5.4-.5-.4z"/>
+    <path fill="#cecece" d="M275.9 254.6l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M291.4 254.6l.5.4-.5-.4z"/>
+    <path fill="#185200" d="M292 254.6l.4.4-.5-.4z"/>
+    <path fill="#103900" d="M295 254.6l1.4 1.4-1.5-1.4z"/>
+    <path fill="#297b00" d="M295.4 254.6l.5.4-.5-.4m1 0l.5.4-.5-.4z"/>
+    <path fill="#314231" d="M297 254.6l.4.4-.5-.4z"/>
+    <path fill="#185200" d="M297.4 254.6l.5.4-.5-.4m1.5 0l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M299.4 254.6l.5.4-.5-.4z"/>
+    <path fill="#296300" d="M302 254.6l.4.4-.5-.4z"/>
+    <path fill="#103900" d="M303.4 254.6l.5.4-.5-.4z"/>
+    <path fill="#185200" d="M305 254.6l.4.4-.4-.4z"/>
+    <path fill="#8c8c8c" d="M310.5 254.6l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M311 254.6l.5.4-.5-.4z"/>
+    <path fill="#dedede" d="M224.2 255l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M224.7 255l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M226.6 255.2l.3.2-.3-.2z"/>
+    <path fill="#295200" d="M227.7 255l.5.5-.5-.5z"/>
+    <path fill="#6b735a" d="M229.3 255l.4.5-.4-.5z"/>
+    <path fill="#295200" d="M229.8 255l.4.5-.4-.5z"/>
+    <path fill="#396b10" d="M230.3 255l.4.5-.4-.5z"/>
+    <path fill="#7b7373" d="M230.8 255l.4.5-.4-.5z"/>
+    <path fill="#efefef" d="M231.3 255l.4.5-.4-.5z"/>
+    <path fill="#8c8c8c" d="M232.8 255l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M234.3 255l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M235.8 255v4.3h.5l-.5-4.3z"/>
+    <path fill="#397b00" d="M237.6 255.2l.3.2-.3-.2z"/>
+    <path fill="#52525a" d="M254.3 255l.5.5-.5-.5z"/>
+    <path fill="#211810" d="M255.3 255l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M255.8 255l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M259.3 255l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M260.8 255l.5.5-.5-.5z"/>
+    <path fill="#392121" d="M261.3 255l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M261.8 255l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M262.3 255l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M266.9 255l.5.5-.5-.5z"/>
+    <path fill="#211810" d="M267.4 255l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M268.4 255l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M269.9 255l.5.5-.5-.5z"/>
+    <path fill="#313931" d="M273.9 255l.5.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M275.4 255l-.5 1 .5-1z"/>
+    <path fill="#294221" d="M291.4 255l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M292.4 255l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M293 255l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M293.4 255l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M296 255l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M297 255l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M297.4 255l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M299.3 255.2l.3.2-.3-.2z"/>
+    <path fill="#184a00" d="M302 255l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M303 255l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M303.4 255l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M305 255l.4.5-.4-.5z"/>
+    <path fill="#9c9494" d="M308.1 255.4l.2.3-.2-.3z"/>
+    <path fill="#63636b" d="M224.7 255.5l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M226.4 255.8l.2.4-.2-.4z"/>
+    <path fill="#8c8c8c" d="M227.7 255.5l.5.5-.5-.5m1.7.3l.2.4-.2-.4z"/>
+    <path fill="#397b00" d="M230 255.7l.4.1-.3-.1z"/>
+    <path fill="#428c00" d="M230.8 255.5l.4 4.3h.6l-1-4.3z"/>
+    <path fill="#315221" d="M231.3 255.5l.4.5-.4-.5z"/>
+    <path fill="#cecece" d="M231.8 255.5l.4.5-.4-.5z"/>
+    <path fill="#dedede" d="M232.3 255.5l.4.5-.4-.5z"/>
+    <path fill="#63636b" d="M254.8 255.5l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M255.3 255.5l1.5 1v-.5l-1.5-.5z"/>
+    <path fill="#212118" d="M255.8 255.5l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M258.3 255.5l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M259.8 255.5l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M261.3 255.5l.5.5-.5-.5z"/>
+    <path fill="#392100" d="M261.8 255.5l1.5 1.5-1.5-1.5z"/>
+    <path fill="#313931" d="M262.3 255.5l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M262.8 255.5l.5.5-.5-.5z"/>
+    <path fill="#424242" d="M266.9 255.5l.5.5-.5-.5z"/>
+    <path fill="#392100" d="M267.4 255.5l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M267.9 255.5l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M269.4 255.5l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M272.9 255.5l.5.5-.5-.5z"/>
+    <path fill="#211810" d="M273.4 255.5l.5.5-.5-.5z"/>
+    <path fill="#52525a" d="M274.4 255.5l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M291 255.5l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M291.4 255.5l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M292 255.5l.4.5-.5-.5z"/>
+    <path fill="#63636b" d="M292.4 255.5l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M293 255.5l.4.5-.5-.5z"/>
+    <path fill="#cecece" d="M293.4 255.5l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M294 255.5l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M295.4 255.5l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M297.4 255.5l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M299 255.5l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M299.4 255.5l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M302 255.5l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M303 255.5l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M305 255.5l.4.5-.4-.5z"/>
+    <path fill="#293129" d="M306 255.5l.4.5-.4-.5z"/>
+    <path fill="#cecece" d="M307 255.5l.4.5-.4-.5z"/>
+    <path fill="#292921" d="M307.4 255.5l.6.5-.6-.5z"/>
+    <path fill="#424242" d="M222.7 256l1 1-1-1z"/>
+    <path fill="#dedede" d="M223.2 256l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M224.7 256l.5.5-.5-.5z"/>
+    <path fill="#292100" d="M225.2 256l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M225.7 256l.5.5-.5-.5z"/>
+    <path fill="#315221" d="M227.2 256l.5.5-.5-.5z"/>
+    <path fill="#428c00" d="M229.8 256c-.2 2.5-.7 4.8 2 6.2l-2-6.2z"/>
+    <path fill="#294200" d="M230.4 256.3l.2.3-.2-.3z"/>
+    <path fill="#214210" d="M231.8 256l.4.5-.4-.5z"/>
+    <path fill="#424242" d="M232.3 256l.4.5-.4-.5z"/>
+    <path fill="#9c9494" d="M255.3 256l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M258.8 256l.5.5-.5-.5z"/>
+    <path fill="#181000" d="M259.8 256l1 1-1-1z"/>
+    <path fill="#001039" d="M260.3 256l.5.5-.5-.5z"/>
+    <path fill="#52525a" d="M261.8 256l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M262.8 256l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M266.3 256l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M266.9 256l.5.5-.5-.5z"/>
+    <path d="M267.4 256l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M267.9 256l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M268.4 256l-.5 1.4.5-1.4z"/>
+    <path fill="#5a1008" d="M268.9 256l.5.5-.5-.5z"/>
+    <path fill="#210800" d="M269.4 256l.5.5-.5-.5z"/>
+    <path fill="#392100" d="M269.9 256l-.5 1 .5-1z"/>
+    <path fill="#63636b" d="M270.4 256l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M272.4 256l.5.5-.5-.5z"/>
+    <path fill="#212118" d="M272.9 256l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M273.4 256l-1 1.4 1-1.4z"/>
+    <path fill="#63636b" d="M273.9 256l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M290.4 256l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M291.2 256.1l.4.2-.4-.2z"/>
+    <path fill="#9c9494" d="M292 256l.4.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M294 256l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M294.4 256l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M296.4 256l.5.5-.5-.5m1 0l1 1-1-1z"/>
+    <path fill="#297b00" d="M298 256l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M299.4 256l.5.5-.5-.5m2.5 0l1 1-1-1z"/>
+    <path fill="#103900" d="M303 256l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M304.4 256l1 1-1-1z"/>
+    <path fill="#214210" d="M305.4 256l.6.5-.6-.5z"/>
+    <path fill="#cecece" d="M306 256l-.6 1 .6-1z"/>
+    <path fill="#9c9494" d="M306.4 256l.6.5-.6-.5z"/>
+    <path fill="#184a00" d="M307 256l.4.5-.4-.5z"/>
+    <path fill="#294221" d="M307.4 256l.6.5-.6-.5z"/>
+    <path fill="#dedede" d="M310 256l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M310.5 256l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M222.7 256.5l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M223.7 256.5l.5.5-.5-.5z"/>
+    <path fill="#5a1010" d="M224.7 256.5l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M225.2 256.5l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M225.7 256.5l.5.5-.5-.5z"/>
+    <path fill="#311000" d="M226.2 256.5l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M226.7 256.5l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M227.2 256.5l.5.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M229.3 256.5l.4.5-.4-.5z"/>
+    <path fill="#295200" d="M232.3 256.5l-.6 1 .6-1m2 0l.4.5-.4-.5z"/>
+    <path fill="#ada5a5" d="M255.8 256.5l.5.5-.5-.5z"/>
+    <path fill="#212118" d="M256.3 256.5l.5.5-.5-.5z"/>
+    <path fill="#392100" d="M256.8 256.5l2 1.9-2-2z"/>
+    <path fill="#63636b" d="M257.3 256.5l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M259 256.8l.2.3-.2-.3z"/>
+    <path fill="#520808" d="M259.3 256.5l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M260.8 256.5l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M261.8 256.5l.5.5-.5-.5z"/>
+    <path fill="#392121" d="M262.3 256.5l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M263.3 256.5l.5.5-.5-.5z"/>
+    <path fill="#9c7b08" d="M265.3 256.5l.5.5-.5-.5z"/>
+    <path fill="#424242" d="M265.8 256.5l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M266.3 256.5l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M266.9 256.5l.5.5-.5-.5z"/>
+    <path d="M268.9 256.5l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M270.5 256.8l.2.3-.2-.3z"/>
+    <path fill="#9c9494" d="M271.9 256.5l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M290.4 256.5l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M291 256.5l.4.5-.5-.5z"/>
+    <path fill="#cecece" d="M291.4 256.5l.5.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M294.4 256.5l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M295 256.5l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M296.4 256.5l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M296.4 257.4l1.5-.4-1.5.4z"/>
+    <path fill="#103900" d="M299.4 256.5l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M302 256.5v1.4h.4l-.5-1.4m1 0l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M304.4 256.5l-.4 1.4.4-1.4z"/>
+    <path fill="#8c8c8c" d="M306 256.5l.4.5-.4-.5z"/>
+    <path fill="#185200" d="M306.4 256.5l-.4 1 .4-1z"/>
+    <path fill="#296300" d="M307 256.5l.4.5-.4-.5z"/>
+    <path fill="#9c9494" d="M307.4 256.5l.6.5-.6-.5z"/>
+    <path fill="#bdbdbd" d="M309 256.5l.5.5-.5-.5z"/>
+    <path fill="#424242" d="M309.5 256.5l.5.5-.5-.5z"/>
+    <path fill="#313931" d="M310 256.5l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M310.5 256.5l-1 1.4 1-1.4z"/>
+    <path fill="#295200" d="M222.7 257l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M223.2 257l.5.4-.5-.4z"/>
+    <path fill="#314231" d="M223.7 257l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M224.2 257l.5.4-.5-.4z"/>
+    <path fill="#ad1810" d="M224.7 257l.5.4-.5-.4z"/>
+    <path fill="#941808" d="M226.2 257l.5.4-.5-.4z"/>
+    <path fill="#313931" d="M226.7 257l.5.4-.5-.4z"/>
+    <path fill="#526b42" d="M229.3 257l.4.4-.4-.4z"/>
+    <path fill="#397b00" d="M230.6 257.1l.3.2-.3-.2m1.7-.2l.4.5-.4-.4z"/>
+    <path fill="#295200" d="M233.8 257l.5.4-.5-.4z"/>
+    <path fill="#524242" d="M256.3 257l.5.4-.5-.4z"/>
+    <path fill="#210800" d="M256.8 257l.5.4-.5-.4z"/>
+    <path fill="#424242" d="M257.8 257l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M258.3 257l.5.4-.5-.4z"/>
+    <path fill="#ad1810" d="M259.5 257.3l.2.3-.2-.3z"/>
+    <path fill="#5a1008" d="M259.8 257l1 .9-1-1z"/>
+    <path fill="#392100" d="M260.3 257l1 .9-1-1z"/>
+    <path fill="#211810" d="M260.8 257l.5.4-.5-.4z"/>
+    <path fill="#dedede" d="M261.3 257l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M262.3 257l-.5.9.5-1z"/>
+    <path fill="#211800" d="M262.8 257l.5.4-.5-.4z"/>
+    <path fill="#212118" d="M263.3 257l.5.4-.5-.4z"/>
+    <path fill="#6b5a10" d="M264.8 257l.5.4-.5-.4z"/>
+    <path fill="#9c9494" d="M265.3 257l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M266.3 257l.5.4-.5-.4z"/>
+    <path fill="#7b7373" d="M266.9 257l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M267.4 257l.5.4-.5-.4z"/>
+    <path fill="#dedede" d="M268.4 257l.5.4-.5-.4z"/>
+    <path fill="#313931" d="M268.9 257l.5.4-.5-.4z"/>
+    <path fill="#de2110" d="M270 257.3l.2.3-.2-.3z"/>
+    <path fill="#63636b" d="M271.4 257l.5.4-.5-.4z"/>
+    <path fill="#392100" d="M271.9 257l-1.5 1.8 1.5-1.9z"/>
+    <path fill="#524242" d="M272.9 257l.5.4-.5-.4z"/>
+    <path fill="#9c9494" d="M290.4 257l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M293 257l.4.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M293.4 257l.5.4-.5-.4z"/>
+    <path fill="#dedede" d="M294.4 257l-.5.9.5-1z"/>
+    <path fill="#214210" d="M295 257l.4.4-.5-.4z"/>
+    <path fill="#103900" d="M297 257l.4.4-.5-.4z"/>
+    <path fill="#319400" d="M297.4 257l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M298 257l-.6 1.4.5-1.4z"/>
+    <path fill="#184a00" d="M299.4 257l.5.4-.5-.4z"/>
+    <path fill="#082108" d="M302.4 257l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M304 257l.4.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M305.1 257.3l.2.3-.2-.3z"/>
+    <path fill="#63636b" d="M305.4 257l.6.4-.6-.4z"/>
+    <path fill="#319400" d="M306.4 257l-3.5 5.2 3.6-5.3z"/>
+    <path fill="#294221" d="M307 257l.4.4-.4-.4z"/>
+    <path fill="#bdbdbd" d="M308 257l.5.4-.5-.4z"/>
+    <path fill="#425242" d="M308.5 257l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M309 257l.5.4-.5-.4z"/>
+    <path fill="#314231" d="M309.5 257l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M222.7 257.4v1l1-1h-1z"/>
+    <path fill="#428c00" d="M223.7 257.4l1 2-1.5-1c.5 2 1 3 3 3.8v.5l-2-.5 1 1.4-1.5-.5 4.5 4.3.5-1.9 1.5 1-3-2.9v-.5l1.5.5a8.8 8.8 0 00-5-6.2z"/>
+    <path fill="#294200" d="M224.2 257.4l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M224.7 257.4l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M225.2 257.4l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M226.2 257.4l1 1-1-1z"/>
+    <path fill="#7b7373" d="M226.7 257.4l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M227.2 257.4l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M229.3 257.4l.4.5-.4-.5z"/>
+    <path fill="#295200" d="M230.8 257.4l.4.5-.4-.5z"/>
+    <path fill="#294200" d="M231.8 257.4v4.3h.4l-.4-4.3m2.1.4l.2.3-.2-.4z"/>
+    <path fill="#295200" d="M237.3 257.4l.5.5-.5-.5z"/>
+    <path fill="#527b31" d="M238.8 257.4l.5.5-.5-.5z"/>
+    <path fill="#734a42" fill-opacity=".6" d="M256.3 257.4V268h.5l-.5-10.5z"/>
+    <path fill="#ce2110" d="M256.8 257.4l1 1-1-1z"/>
+    <path fill="#311000" d="M257.3 257.4l.5.5-.5-.5z"/>
+    <path fill="#313931" d="M258.3 257.4l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M258.8 257.4l.5.5-.5-.5z"/>
+    <path fill="#de2110" d="M259.8 257.4v1h1l-1-1z"/>
+    <path fill="#313931" d="M261.3 257.4l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M262.3 257.4l.5.5-.5-.5z"/>
+    <path fill="#52525a" d="M262.8 257.4l.5.5-.5-.5z"/>
+    <path fill="#392121" d="M263.3 257.4l.5.5-.5-.5z"/>
+    <path fill="#423100" d="M263.8 257.4l.5.5-.5-.5z"/>
+    <path fill="#5a5231" d="M264.3 257.4l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M264.8 257.4l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M265.3 257.4l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M265.8 257.4l-.5 1 .5-1z"/>
+    <path fill="#9c9494" d="M266.3 257.4l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M268.9 257.4l-2 1v.5l2.5-1-.5-.5z"/>
+    <path fill="#ada5a5" d="M270.4 257.4l.5.5-.5-.5z"/>
+    <path fill="#424242" d="M270.9 257.4l.5.5-.5-.5z"/>
+    <path fill="#210800" d="M271.9 257.4l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M272.4 257.4l.5.5-.5-.5z"/>
+    <path fill="#734a42" d="M272.9 257.4l-.5 11h.5a19 19 0 000-11z"/>
+    <path d="M293.4 257.4l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M295 257.4l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M295.4 257.4l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M297 257.4l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M297.4 257.4l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M299.8 257.6l.3.1-.3-.1z"/>
+    <path fill="#103900" d="M302.4 257.4l.5.5-.5-.5z"/>
+    <path fill="#52525a" d="M304.4 257.4l.6.5-.6-.5z"/>
+    <path fill="#296300" d="M305.4 257.4l.6.5-.6-.5m1 0l.6.5-.6-.5z"/>
+    <path fill="#bdbdbd" d="M307 257.4l.4.5-.4-.5z"/>
+    <path fill="#7b7373" d="M307.4 257.4l.6.5-.6-.5z"/>
+    <path fill="#185200" d="M308 257.4l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M308.5 257.4l-1 .5v.5l1-1z"/>
+    <path fill="#52525a" d="M309 257.4l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M223.2 257.9l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M223.7 257.9l.5.5-.5-.5z"/>
+    <path fill="#293100" d="M225.2 257.9l.5.5-.5-.5z"/>
+    <path fill="#311000" d="M225.7 257.9l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M226.2 257.9l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M227.2 257.9l.5.5-.5-.5z"/>
+    <path fill="#5a2121" d="M227.7 257.9l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M228.2 257.9l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M228.7 257.9l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M229.3 257.9l.4.5-.4-.5z"/>
+    <path fill="#397b00" d="M237.1 258l.3.2-.3-.1z"/>
+    <path fill="#526b42" d="M238.8 257.9l.5.5-.5-.5z"/>
+    <path fill="#de2110" d="M256.8 257.9v10l5.5 1c-1.2-3.6-1.9-9-5.5-11z"/>
+    <path fill="#5a1008" d="M257.8 257.9l.5.5-.5-.5z"/>
+    <path fill="#100808" d="M258.8 257.9l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M259.3 257.9l.5.5-.5-.5z"/>
+    <path fill="#310000" d="M260.8 257.9l.5.5-.5-.5z"/>
+    <path fill="#524242" d="M261.3 257.9l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M262 258.2l.2.3-.2-.3z"/>
+    <path fill="#efefef" d="M263.8 257.9l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M264.5 258.2l.2.3-.2-.3z"/>
+    <path fill="#bdbdbd" d="M264.8 257.9l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M266.9 257.9l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M268.9 257.9l.5.5-.5-.5z"/>
+    <path fill="#100808" d="M269.4 257.9l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M269.9 257.9l.5.5-.5-.5z"/>
+    <path fill="#101810" d="M270.4 257.9l.5.5-.5-.5z"/>
+    <path fill="#311000" d="M271.4 257.9l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M271.9 257.9l-.5 1 .5-1z"/>
+    <path fill="#de2110" d="M272.4 257.9l-2 1.4 2 6.2-3.5 1 .5 1.9 3.5-.5-.5-10z"/>
+    <path fill="#214210" d="M293.4 257.9l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M294 257.9l.4.5-.5-.5z"/>
+    <path fill="#395231" d="M295.4 257.9l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M298 257.9l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M298.4 257.9l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M300 257.9v1.4h.4l-.5-1.4z"/>
+    <path fill="#185200" d="M302 257.9l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M302.4 257.9l.5.5-.5-.5z"/>
+    <path fill="#292921" d="M304 257.9l.4.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M304.4 257.9l.6.5-.6-.5z"/>
+    <path fill="#184a00" d="M305 257.9l.4.5-.4-.5z"/>
+    <path fill="#102110" d="M306.4 257.9l.6.5-.6-.5z"/>
+    <path fill="#314231" d="M307 257.9l.4.5-.4-.5z"/>
+    <path fill="#63636b" d="M308 258.4v.5h1.5l-1.5-.5z"/>
+    <path fill="#426331" d="M222.7 258.4l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M223.7 258.4l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M224.2 258.4l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M225.7 258.4l1.5 1.4-1.5-1.4z"/>
+    <path fill="#211800" d="M226.2 258.4l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M228 258.7v.3-.3z"/>
+    <path fill="#7b7373" d="M228.4 258.7l.2.3-.2-.3z"/>
+    <path fill="#bdbdbd" d="M228.7 258.4l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M229.3 258.4l.4.5-.4-.5z"/>
+    <path fill="#295200" d="M233.8 258.4l.5.5-.5-.5z"/>
+    <path fill="#6b735a" d="M238.8 258.4l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M258.3 258.4l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M258.8 258.4l1 1v-1h-1z"/>
+    <path fill="#631808" d="M259.8 258.4l.5.5-.5-.5z"/>
+    <path fill="#5a2121" d="M260.3 258.4l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M261 258.7l.2.3-.2-.3z"/>
+    <path fill="#8c8c8c" d="M262.3 258.4v.5h1.5l-1.5-.5z"/>
+    <path fill="#bdbdbd" d="M263.8 258.4l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M265.8 258.4l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M266.3 258.4l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M267.4 258.4l.5.5-.5-.5z"/>
+    <path fill="#313931" d="M269.4 258.4l.5.5-.5-.5z"/>
+    <path fill="#211800" d="M269.9 258.4l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M270.9 258.4l.5.5-.5-.5z"/>
+    <path fill="#4a6342" d="M293.4 258.4l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M294 258.4l.4.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M294.4 258.4l.5.5-.5-.5m1.2.3l.2.3-.2-.3z"/>
+    <path fill="#185200" d="M296 258.4l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M297.4 258.4l.5.5-.5-.5z"/>
+    <path fill="#082108" d="M298 258.4l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M298.4 258.4l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M302.1 258.7l.2.3-.2-.3z"/>
+    <path fill="#296300" d="M303.4 258.4l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M304 258.4l.4.5-.5-.5z"/>
+    <path fill="#314231" d="M304.4 258.4l.6.5-.6-.5z"/>
+    <path fill="#185200" d="M306 258.4l.4.5-.4-.5z"/>
+    <path fill="#184a00" d="M306.4 258.4l.6.5-.6-.5z"/>
+    <path fill="#319400" d="M307 258.4l-.6 1 .6-1z"/>
+    <path fill="#296300" d="M307.4 258.4l.6.5-.6-.5z"/>
+    <path fill="#efefef" d="M308.5 258.4l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M309.5 258.4l.5.5-.5-.5z"/>
+    <path fill="#6b735a" d="M222.7 258.9l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M224.2 258.9l.5.4-.5-.4z"/>
+    <path fill="#941808" d="M226.7 258.9l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M228.7 258.9l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M233.6 259l.3.2-.3-.2z"/>
+    <path fill="#8c8c8c" d="M238.8 258.9l.5.4-.5-.4z"/>
+    <path fill="#941808" d="M258.8 258.9l.5.4-.5-.4z"/>
+    <path d="M259.8 258.9l2.5 9.5c3-1 7.8-1.5 9.6-4.3l-9 2.9-3-8.1z"/>
+    <path fill="#ada5a5" d="M260.3 258.9l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M261.3 258.9l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M261.8 258.9l.5.4-.5-.4z"/>
+    <path fill="#9c9494" d="M264.3 258.9l.5.4-.5-.4z"/>
+    <path fill="#cecece" d="M264.8 258.9l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M266.3 258.9l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M268 259.2l.2.3-.2-.3z"/>
+    <path fill="#9c9494" d="M268.4 258.9l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M269.2 259l.3.2-.3-.2z"/>
+    <path d="M269.9 258.9l.5.4-.5-.4z"/>
+    <path fill="#631808" d="M270.4 258.9l.5.4-.5-.4z"/>
+    <path fill="#6b735a" d="M293.4 258.9l.5.4-.5-.4z"/>
+    <path fill="#319400" d="M294 258.9l4 15.2h-.6v-1h-.5l.5 4.4h-.5v-1h-.5v3.8h-.5c0-4.8-2-9.2-4.5-13.3l-1 1v.4c3.7 3.5 4.8 11 5 15.7h-1l-2-10h-.5l1.5 13.4h-.5l-2-10h-.5l1.5 15.2h-.5l-1-12.4h-.5l1 12.4h-.5l-.5-6.6h-.5l.5 8h-.5l-.5-6.6h-.5l-1.5 9 5.5-.4v-.5l-3.5-.5v-.5l13 3.4v-.5l-6-1.9v-.5l9 2c-2.8-3.5-6.4-3-10.5-2.5v-.4l11.6.4v-.4l-8-2v-.4l8 .4v-.4c-5.8-1.3-8.7-.6-13 3.3l1-4.8h-.6l-.5 1.5h-.5l2.5-7.2h.5l-.5 5.3 11.6-4.3v-.5l-10.6 2.9c4-3.2 9.9-5.8 15-6.2v-.5a21 21 0 00-14 4.7c3.8-4.6 9.7-5.1 15-7.1v-.5c-6.7.5-10 2-15.5 5.7 3.4-3.2 9.2-8.8 14.6-7.6l-1-2.4a27 27 0 00-12 6.7c2.3-3.1 10.5-11.8 14.5-11.5-4-3.5-11.9 7.3-14.6 9.6l11-12-9.5 8.2 10.6-13.4v-.5c-5 1.8-6.5 7.7-10 11l7.5-12a19.4 19.4 0 00-7 10.6c-2.4.3-1.6 3.9-1.6 5.7h-.5c0-5.8-.7-12.8-4.5-17.6z"/>
+    <path fill="#314231" d="M294.4 258.9l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M295 258.9l.4.4-.5-.4z"/>
+    <path fill="#6b735a" d="M296 258.9l.4.4-.5-.4z"/>
+    <path fill="#184a00" d="M298 258.9l.4.4-.5-.4z"/>
+    <path fill="#103900" d="M298.4 258.9l.5.4-.5-.4m5 0l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M304 258.9l.4.4-.5-.4z"/>
+    <path fill="#297b00" d="M304.4 258.9l.6.4-.6-.4m1 0l1 1-1-1z"/>
+    <path fill="#103900" d="M306 258.9l.4.4-.4-.4z"/>
+    <path fill="#185200" d="M307 258.9l-3 2.3v.5l3-2.8z"/>
+    <path fill="#8c8c8c" d="M307.4 258.9l-.4 1 .4-1z"/>
+    <path fill="#ada5a5" d="M308 258.9l.5.4-.5-.4z"/>
+    <path fill="#102110" d="M308.5 258.9l.5.4-.5-.4z"/>
+    <path fill="#7b7373" d="M309 258.9l.5.4-.5-.4z"/>
+    <path fill="#9c9494" d="M222.7 259.3l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M223.2 259.3l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M224.7 259.3l1.5 1.5-1.5-1.5z"/>
+    <path fill="#5a1008" d="M227.2 259.3l.5.5-.5-.5z"/>
+    <path fill="#733939" d="M227.7 259.3l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M228.2 259.3l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M228.7 259.3l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M230.8 259.3l1 1-1-1z"/>
+    <path fill="#294200" d="M233.3 259.3l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M235.8 259.3l.5.5-.5-.5m2.5 0l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M238.8 259.3l.5.5-.5-.5z"/>
+    <path fill="#100808" d="M259.3 259.3l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M260.3 259.3l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M262.3 259.3l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M262.8 259.3v.5h1.5l-1.5-.5z"/>
+    <path fill="#efefef" d="M264.3 259.3l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M266.3 259.3l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M267.2 259.5l.3.2-.3-.2z"/>
+    <path fill="#dedede" d="M268.4 259.3l.5.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#210800" d="M269.9 259.3l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M292.4 259.3l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M293 259.3l.4.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M293.4 259.3l-.5 1 .5-1z"/>
+    <path fill="#185200" d="M294.4 259.3l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M295 259.3l.4.5-.5-.5z"/>
+    <path fill="#292921" d="M295.4 259.3l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M296 259.3l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M296.4 259.3l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M298 259.3l.4.5-.5-.5z"/>
+    <path fill="#082108" d="M298.4 259.3l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M300 259.3l1 1-1-1z"/>
+    <path fill="#297b00" d="M300.4 259.3l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M301.8 259.5l.3.2-.3-.2z"/>
+    <path fill="#102110" d="M303.4 259.3l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M304 259.3l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M305.4 259.3l.6.5-.6-.5z"/>
+    <path fill="#425242" d="M307.4 259.3l.6.5-.6-.5z"/>
+    <path fill="#185200" d="M308 259.3l.5.5-.5-.5z"/>
+    <path fill="#314231" d="M308.5 259.3l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M222.7 259.8l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M223.2 259.8l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M227.2 259.8l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M227.7 259.8l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M228.7 259.8l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M229.3 259.8l.4.5-.4-.5m1.4 0l.6.5-.6-.5z"/>
+    <path fill="#295200" d="M233.3 259.8l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M235.3 259.8l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M236.6 260l.3.1-.3-.1z"/>
+    <path fill="#315221" d="M238.3 259.8l.5.5-.5-.5z"/>
+    <path fill="#420000" d="M259.3 259.8l.5.5-.5-.5z"/>
+    <path fill="#101810" d="M260.3 259.8l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M261.3 259.8l-.5 1 .5-1z"/>
+    <path fill="#7b7373" d="M261.8 259.8l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M262.3 259.8l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M266.2 260l.3.1-.3-.1z"/>
+    <path fill="#efefef" d="M266.9 259.8l1 2.9h.5l-1.5-2.9m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M269 260.1l.2.3-.2-.3z"/>
+    <path fill="#ada5a5" d="M269.4 259.8l.5.5-.5-.5z"/>
+    <path fill="#313931" d="M269.9 259.8l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M270.4 259.8l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M292.4 259.8l.5.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M294 259.8l.4.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M295 259.8l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M295.4 259.8l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M296 259.8l.4.5-.5-.5z"/>
+    <path fill="#6b735a" d="M296.4 259.8l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M297 259.8l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M298.4 259.8l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M300 259.8l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M301.4 259.8l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M303 259.8l1 1-1-1z"/>
+    <path fill="#103900" d="M303.4 259.8l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M305 259.8l.4.5-.4-.5z"/>
+    <path fill="#313931" d="M306.4 259.8l.6.5-.6-.5z"/>
+    <path fill="#214210" d="M307 259.8l.4.5-.4-.5z"/>
+    <path fill="#297b00" d="M307.4 259.8l.6.5-.6-.5z"/>
+    <path fill="#103910" d="M308 259.8l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M308.5 259.8l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M223.2 260.3l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M227.7 260.3l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M228.7 260.3l-.5 1 .5-1z"/>
+    <path fill="#396b10" d="M229.3 260.3l.4.5-.4-.5z"/>
+    <path fill="#397b00" d="M233.3 260.3l.5.5-.5-.5m1 1l1.5-.5-1.5.4z"/>
+    <path fill="#103900" d="M236.3 260.3l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M238.3 260.3l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M259.3 260.3l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M261.3 260.3l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M262.8 260.3l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M263.3 260.3l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M265.3 260.3l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M267.4 260.3l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M268.2 260.4l.3.2-.3-.2z"/>
+    <path fill="#efefef" d="M269.4 260.3l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M269.9 260.3l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M270.4 260.3l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M292.4 260.3l.5.5-.5-.5z"/>
+    <path fill="#101810" d="M293 260.3l.4.5-.5-.5z"/>
+    <path fill="#cecece" d="M293.4 260.3l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M294 260.3l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M295 260.3l.4.5-.5-.5z"/>
+    <path fill="#082108" d="M295.4 260.3l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M296 260.3l.4.5-.5-.5z"/>
+    <path fill="#9c9494" d="M296.4 260.3l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M297 260.3l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M298.8 260.4l.3.2-.3-.2z"/>
+    <path fill="#103900" d="M300.4 260.3l.5.5-.5-.5m1 0l.5.5-.5-.5m1.5 0l.5.5-.5-.5m2 0l.6.5-.6-.5z"/>
+    <path d="M306 260.3l.4.5-.4-.5z"/>
+    <path fill="#296300" d="M306.4 260.3l.6.5-.6-.5z"/>
+    <path fill="#184a00" d="M307.4 260.3l.6.5-.6-.5z"/>
+    <path fill="#cecece" d="M308 260.3l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M222.7 260.8l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M223.2 260.8l.5.4-.5-.4z"/>
+    <path fill="#295200" d="M223.7 260.8l.5.4-.5-.4z"/>
+    <path fill="#292100" d="M226.2 260.8l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M227.7 260.8l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M229.3 260.8l.4.4-.4-.4z"/>
+    <path fill="#397b00" d="M229.8 260.8l.4.4-.4-.4z"/>
+    <path fill="#294200" d="M234.8 260.8l.5.4-.5-.4z"/>
+    <path fill="#428c00" d="M235.3 260.8l-.5 1 .5-1z"/>
+    <path fill="#295200" d="M235.8 260.8l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M236.3 260.8l.5.4-.5-.4z"/>
+    <path fill="#213918" d="M237.8 260.8l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M238.3 260.8l.5.4-.5-.4z"/>
+    <path fill="#ce2110" d="M259.3 260.8l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M260.8 260.8l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M261.8 260.8l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M262.7 261h.3-.3z"/>
+    <path fill="#cecece" d="M263.3 260.8l1.5 1.4-1.5-1.4z"/>
+    <path fill="#8c8c8c" d="M265.3 260.8l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M265.8 260.8l1 1.4-1-1.4z"/>
+    <path fill="#8c8c8c" d="M266.7 261h.3-.3z"/>
+    <path fill="#dedede" d="M269.4 260.8l1 1-1-1z"/>
+    <path fill="#bdbdbd" d="M269.9 260.8l.5.4-.5-.4z"/>
+    <path fill="#210800" d="M270.4 260.8l.5.4-.5-.4z"/>
+    <path fill="#103910" d="M293 260.8l.4.4-.5-.4z"/>
+    <path fill="#9c9494" d="M293.4 260.8l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M294 260.8l.4.4-.5-.4z"/>
+    <path fill="#297b00" d="M295 260.8l.4.4-.5-.4z"/>
+    <path fill="#001000" d="M295.4 260.8l.5.4-.5-.4z"/>
+    <path fill="#319400" d="M296 260.8l.4.4-.5-.4z"/>
+    <path fill="#103910" d="M296.4 260.8l.5.4-.5-.4z"/>
+    <path fill="#425242" d="M297 260.8l.4.4-.5-.4z"/>
+    <path fill="#103900" d="M299 260.8l.4.4-.5-.4z"/>
+    <path fill="#184a00" d="M300.4 260.8l.5.4-.5-.4z"/>
+    <path fill="#185200" d="M301.4 260.8l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M302.4 260.8l1 1-1-1z"/>
+    <path fill="#184a00" d="M303 260.8l.4.4-.5-.4z"/>
+    <path fill="#103900" d="M304.4 260.8l.6.4-.6-.4z"/>
+    <path fill="#001000" d="M305.4 260.8l-.4 1 .4-1z"/>
+    <path fill="#297b00" d="M306 260.8l.4.4-.4-.4m1 0l-.6 1 .6-1z"/>
+    <path fill="#8c8c8c" d="M307.4 260.8l.6.4-.6-.4z"/>
+    <path fill="#dedede" d="M308 260.8l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M308.5 260.8l.5.4-.5-.4z"/>
+    <path fill="#6b735a" d="M309 260.8l.5.4-.5-.4z"/>
+    <path fill="#8c9c84" d="M309.5 260.8l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M310 260.8l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M310.5 260.8l.5.4-.5-.4z"/>
+    <path fill="#313931" d="M222.7 261.2l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M223.2 261.2l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M223.7 261.2l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M226.2 261.2l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M226.7 261.2l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M228.2 261.2l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M229.8 261.2l.4.5-.4-.5z"/>
+    <path fill="#103900" d="M234.3 261.2l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M235.3 261.2l-.5 1 .5-1z"/>
+    <path fill="#294200" d="M235.8 261.2l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M237.8 261.2l.5.5-.5-.5z"/>
+    <path fill="#420000" d="M259.8 261.2l.5.5-.5-.5z"/>
+    <path fill="#101810" d="M260.8 261.2l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M261.3 261.2l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M261.8 261.2l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M264.3 261.2l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M264.8 261.2l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M265.3 261.2l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M266.3 261.2l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M267.9 261.2v.5h1.5l-1.5-.5z"/>
+    <path fill="#ada5a5" d="M269.4 261.2l.5.5-.5-.5z"/>
+    <path fill="#313931" d="M270.4 261.2l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M270.9 261.2l.5.5-.5-.5z"/>
+    <path fill="#4a6342" d="M293 261.2l.4.5-.5-.5z"/>
+    <path fill="#294221" d="M293.4 261.2l.5.5-.5-.5z"/>
+    <path fill="#4a6342" d="M294 261.2l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M295.4 261.2l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M295.4 262.2l1.5-.5-1.5.5z"/>
+    <path fill="#313931" d="M297 261.2l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M297.4 261.2l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M299 261.2l1 1-1-1z"/>
+    <path fill="#297b00" d="M299.4 261.2l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M302.4 261.2l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M305.4 261.2l.6.5-.6-.5z"/>
+    <path fill="#425242" d="M307 261.2l.4.5-.4-.5z"/>
+    <path fill="#cecece" d="M307.4 261.2l.6.5-.6-.5z"/>
+    <path fill="#214210" d="M308 261.2l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M308.5 261.2l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M310.5 261.2l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M311 261.2l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M311.5 261.2l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M312.1 261.6l.2.3-.2-.3z"/>
+    <path fill="#8c8c8c" d="M222.7 261.7l.5.5-.5-.5z"/>
+    <path fill="#428c00" d="M223.2 261.7l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M223.7 261.7l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M224.2 261.7l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M224.7 261.7l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M226.7 261.7l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M227.4 262l.2.4-.2-.4z"/>
+    <path fill="#315221" d="M228.2 261.7l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M229.8 261.7l.4.5-.4-.5z"/>
+    <path fill="#294200" d="M230.3 261.7l.4.5-.4-.5z"/>
+    <path fill="#295200" d="M231.8 261.7l.4.5-.4-.5z"/>
+    <path fill="#103900" d="M233.8 261.7l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M235.3 261.7l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M236.8 261.7l-.5 1 .5-1z"/>
+    <path fill="#9c9494" d="M237.3 261.7l-.5 1 .5-1z"/>
+    <path fill="#941808" d="M259.8 261.7l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M261.3 261.7l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M262.3 261.7l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M263.2 261.9l.3.1-.3-.1z"/>
+    <path fill="#ada5a5" d="M263.8 261.7l.5.5-.5-.5m1.9.2l.3.1-.3-.1z"/>
+    <path fill="#8c8c8c" d="M266.9 261.7l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M267.4 261.7l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M270.4 261.7l-2 .5v.5l2.5-.5-.5-.5z"/>
+    <path fill="#7b1008" d="M270.9 261.7l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M293 261.7l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M293.4 261.7l.5.5-.5-.5z"/>
+    <path fill="#001000" d="M294 261.7l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M296 261.7l.4.5-.5-.5z"/>
+    <path fill="#319400" d="M296.4 261.7l2 8.1h.5c0-2.9-.4-5.8-2.5-8z"/>
+    <path fill="#184a00" d="M297 261.7l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M297.4 261.7l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M299 261.7l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M301 261.7l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M302.4 261.7l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M304.4 261.7l.6.5-.6-.5z"/>
+    <path fill="#297b00" d="M305 261.7l.4.5-.4-.5z"/>
+    <path fill="#214210" d="M306.4 261.7l.6.5-.6-.5z"/>
+    <path fill="#bdbdbd" d="M307 261.7l.4.5-.4-.5z"/>
+    <path fill="#214210" d="M307.4 261.7l.6.5-.6-.5z"/>
+    <path fill="#297b00" d="M309 261.7l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M309.5 261.7l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M310 261.7l.5.5-.5-.5z"/>
+    <path fill="#295210" d="M310.5 261.7l.5.5-.5-.5z"/>
+    <path fill="#4a6342" d="M311 261.7l.5.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M311.5 261.7l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M222.7 262.2l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M223.2 262.2l1.5 1-1.5-1m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M225.2 262.2l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M225.7 262.2l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M228.2 262.2l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M228.7 262.2l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M230.3 262.2l.4.5-.4-.5z"/>
+    <path fill="#397b00" d="M230.8 262.2v.5h1.4l-1.4-.5z"/>
+    <path fill="#103900" d="M233.3 262.2l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#00215a" d="M245.8 262.2l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M259.8 262.2l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M261.3 262.2l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M261.8 262.2l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M262.3 262.2l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M263 262.5l.2.3-.2-.3z"/>
+    <path fill="#bdbdbd" d="M265 262.5l.2.3-.2-.3z"/>
+    <path fill="#dedede" d="M265.5 262.5l.2.3-.2-.3z"/>
+    <path fill="#7b7373" d="M266 262.5l.2.3-.2-.3z"/>
+    <path fill="#bdbdbd" d="M266.3 262.2l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M266.9 262.2l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M270.4 262.2l.5.5-.5-.5z"/>
+    <path fill="#210800" d="M270.9 262.2l.5.5-.5-.5z"/>
+    <path fill="#520808" d="M283.4 262.2l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M283.9 262.2v.5h4.5l-4.5-.5z"/>
+    <path fill="#520808" d="M288.4 262.2l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M291.4 262.2l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M293 262.2l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M293.4 262.2l.5.5-.5-.5z"/>
+    <path fill="#082108" d="M294 262.2l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M296 262.2l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M297 262.2l.4.5-.5-.5z"/>
+    <path fill="#001000" d="M297.4 262.2l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M298 262.2l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M299.6 262.5l.2.3-.2-.3z"/>
+    <path fill="#103900" d="M302 262.2l.4.5-.5-.5m1.5 0l1 1-1-1z"/>
+    <path fill="#185200" d="M304 262.2l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M304.4 262.2l.6.5-.6-.5z"/>
+    <path fill="#297b00" d="M306 262.2l.4.5-.4-.5z"/>
+    <path fill="#7b7373" d="M306.4 262.2l.6.5-.6-.5z"/>
+    <path fill="#314231" d="M307 262.2l-.6 1 .6-1z"/>
+    <path fill="#297b00" d="M307.4 262.2l.6.5-.6-.5z"/>
+    <path fill="#214210" d="M308.5 262.2l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M309 262.2l-.5 1 .5-1z"/>
+    <path fill="#5a5231" d="M223.2 262.7l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M226.6 262.8l.3.2-.3-.2z"/>
+    <path fill="#8c8c8c" d="M228.7 262.7l.5.5-.5-.5z"/>
+    <path fill="#314231" d="M230.8 262.7l.4.5-.4-.5z"/>
+    <path fill="#294200" d="M231.3 262.7l.4.5-.4-.5z"/>
+    <path fill="#295200" d="M232.8 262.7l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M233.3 262.7l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M234.3 262.7l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M235.8 262.7l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M236.3 262.7l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M240.8 262.7l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" fill-opacity=".3" d="M241.3 262.7v.5h4.5v7.1c2.7-4.3.2-7.6-4.5-7.6z"/>
+    <path fill="#8c8c8c" d="M245.8 262.7l.5.5-.5-.5z"/>
+    <path fill="#420000" d="M260.3 262.7l.5.5-.5-.5z"/>
+    <path fill="#101810" d="M261.3 262.7l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M262.3 263.1v.5l2.5-.5h-2.5m5-.4l.5.4-.5-.4z"/>
+    <path fill="#7b7373" d="M267.9 262.7l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M268.4 262.7l.5.5-.5-.5z"/>
+    <path fill="#292921" d="M270.9 262.7l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M271.4 262.7l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M283.4 262.7l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M283.9 262.7v.5h4.5l-4.5-.5z"/>
+    <path fill="#63636b" d="M288.4 262.7l.5.5-.5-.5z"/>
+    <path fill="#292921" d="M291.4 262.7l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M292 262.7l.4.5-.5-.5m1.2.3l.2.3-.2-.3z"/>
+    <path fill="#296300" d="M293.4 263.6l1.5-.5-1.5.5z"/>
+    <path fill="#185200" d="M296 262.7l1 1-1-1z"/>
+    <path fill="#297b00" d="M296.4 262.7l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M297.4 262.7l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M298 262.7l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M302 262.7l.4.5-.5-.5z"/>
+    <path fill="#319400" d="M302.4 262.7l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M303 262.7l.4.5-.5-.5z"/>
+    <path fill="#214210" d="M306 262.7l.4.5-.4-.5z"/>
+    <path fill="#297b00" d="M307 262.7l.4.5-.4-.5z"/>
+    <path fill="#296300" d="M308 262.7l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M223.2 263.1l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M224.2 263.1l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M224.7 263.1l.5.5-.5-.5m2.9.2l.3.2-.3-.2z"/>
+    <path fill="#5a6b52" d="M228.7 263.1l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M230.8 263.1l.4.5-.4-.5z"/>
+    <path fill="#292100" d="M231.3 263.1l.4.5-.4-.5z"/>
+    <path fill="#294200" d="M232.8 263.1l.5.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M234.3 263.1l.5.5-.5-.5z"/>
+    <path fill="#314231" d="M235.3 263.1l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M235.8 263.1l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M240.8 263.1v3.9h.5l-.5-3.9z"/>
+    <path fill="#941808" d="M260.3 263.1l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M261.8 263.1l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M263.3 263.1l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M265.3 263.1l1 1-1-1z"/>
+    <path fill="#bdbdbd" d="M265.8 263.1l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M266.7 263.3l.3.2-.3-.2z"/>
+    <path fill="#dedede" d="M267.4 263.1l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M268.4 263.1l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M268.9 263.1l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M269.7 263.3l.3.2-.3-.2z"/>
+    <path fill="#9c9494" d="M270.4 263.1l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M270.9 263.1l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M271.4 263.1l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M283.4 263.1v6.2h.5l-.5-6.2m5 0v7.2h.5l-.5-7.2z"/>
+    <path fill="#6b735a" d="M291.4 263.1l.5.5-.5-.5z"/>
+    <path fill="#395231" d="M292 263.1l.4.5-.5-.5z"/>
+    <path fill="#319400" d="M294 263.1l2.4 8.6h.5l-3-8.6z"/>
+    <path fill="#103900" d="M294.4 263.1l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M296 263.1l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M298.1 263.5l.2.3-.2-.3z"/>
+    <path fill="#296300" d="M299.4 263.1l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M300 263.1l-.6 1 .5-1z"/>
+    <path fill="#184a00" d="M301.4 263.1l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M302.8 263.3l.3.2-.3-.2z"/>
+    <path fill="#185200" d="M303.4 263.1l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M305.4 263.1l.6.5-.6-.5z"/>
+    <path d="M306 263.1l.4.5-.4-.5z"/>
+    <path fill="#297b00" d="M306.4 263.1l.6.5-.6-.5z"/>
+    <path fill="#425242" d="M308 263.1l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M223.2 263.6l.5.5-.5-.5z"/>
+    <path fill="#315221" d="M223.7 263.6l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M225.2 263.6l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M225.9 264l.2.3-.2-.4m1.8-.3l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M228.2 263.6l1 1-1-1z"/>
+    <path fill="#213918" d="M228.7 263.6l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M230.8 263.6l.4.5-.4-.5z"/>
+    <path fill="#295200" d="M231.3 263.6l.4.5-.4-.5z"/>
+    <path fill="#103900" d="M232.3 263.6l.4.5-.4-.5z"/>
+    <path fill="#397b00" d="M233.3 263.6l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M233.8 263.6l.5.5-.5-.5z"/>
+    <path fill="#213918" d="M234.8 263.6l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M235.3 263.6l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M260.3 263.6l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M261.8 263.6l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M263.3 263.6l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M263.8 263.6l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M264.3 263.6v.5h1.5l-1.5-.5m2 0l-1.5 1v.5l1.5-1.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M268.4 263.6l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M268.9 263.6l.5.5-.5-.5m2 0l-.5 1 .5-1z"/>
+    <path fill="#210800" d="M271.4 263.6l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M291.4 263.6l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M292 264l.2.3-.1-.4z"/>
+    <path fill="#8c8c8c" d="M292.4 263.6l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M293.4 263.6l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M294.4 263.6l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M295 263.6l-.6 1 .5-1z"/>
+    <path fill="#103900" d="M296.4 263.6l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M298.4 263.6l-.5 1 .5-1z"/>
+    <path fill="#184a00" d="M300.1 264l.2.3-.2-.4z"/>
+    <path fill="#103900" d="M301.4 263.6l.5.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M303.4 263.6l.5.5-.5-.5m2 0l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M306 263.6l.4.5-.4-.5z"/>
+    <path fill="#184a00" d="M307.4 263.6l.6.5-.6-.5z"/>
+    <path fill="#cecece" d="M308 263.6l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M309.9 266l-2 3.3c1.3-1 2.6-1.8 2-3.4z"/>
+    <path fill="#dedede" d="M313 263.6l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M223.7 264.1l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M224.2 264.1l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M226.2 264.1l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M229.3 264.1l.4.5-.4-.5z"/>
+    <path fill="#8c8c8c" d="M230.8 264.1l.4.5-.4-.5z"/>
+    <path fill="#295200" d="M231.8 264.1l.4.5-.4-.5z"/>
+    <path fill="#397b00" d="M232.3 264.1l.4.5-.4-.5z"/>
+    <path fill="#294200" d="M233.3 264.1l.5.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M234.8 264.1l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M236.6 264.3l.3.1-.3-.1z"/>
+    <path fill="#420000" d="M260.8 264.1l.5.5-.5-.5z"/>
+    <path fill="#101810" d="M261.8 264.1l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M262.8 264.1l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M263.3 264.1l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M263.8 264.1l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M267.4 264.1l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M267.9 264.1l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M270.9 264.1l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M271.9 264.1l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M291.4 264.1l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M292.4 264.1l-.5 1 .5-1z"/>
+    <path fill="#dedede" d="M293 264.1l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M293.6 264.4l.1.3-.1-.3z"/>
+    <path fill="#185200" d="M295 264.1l.4.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M297 264.1l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M298.4 264.1l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M301 264.1l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M301.4 264.1l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M302 264.1l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M303 264.1l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M305.4 264.1l.6.5-.6-.5z"/>
+    <path fill="#297b00" d="M307 264.1l.4.5-.4-.5z"/>
+    <path fill="#7b7373" d="M307.4 264.1l.6.5-.6-.5z"/>
+    <path fill="#8c8c8c" d="M312 264.1l.5.5-.5-.5z"/>
+    <path fill="#424242" d="M312.5 264.1l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M224.2 264.6l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M226.7 264.6l1 1-1-1z"/>
+    <path fill="#397b00" d="M227.2 264.6l.5.5-.5-.5z"/>
+    <path fill="#315221" d="M229.3 264.6l.4.5-.4-.5z"/>
+    <path fill="#efefef" d="M230 264.7l.4.2-.3-.2z"/>
+    <path fill="#214210" d="M230.8 264.6l.4.5-.4-.5z"/>
+    <path fill="#103900" d="M231.8 264.6l.4.5-.4-.5z"/>
+    <path fill="#295200" d="M232.8 264.6l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M233.3 264.6l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M234.3 264.6l.5.5-.5-.5z"/>
+    <path fill="#315221" d="M236.3 264.6l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M236.8 264.6l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M246.3 264.6l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M260.8 264.6l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M262.3 264.6l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M264.3 264.6l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M266.3 264.6l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M266.9 264.6l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#52525a" d="M268.9 264.6l.5.5-.5-.5z"/>
+    <path fill="#313931" d="M269.4 264.6l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M271.9 264.6l.5.5-.5-.5z"/>
+    <path fill="#319400" d="M292.4 264.6L296 276h.5c0-4-1.3-8.3-4-11.4z"/>
+    <path fill="#425242" d="M293 264.6l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M295 264.6l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M297 264.6l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M298.6 264.9l.2.3-.2-.3m2.3-.3l.5.5-.5-.5z"/>
+    <path fill="#319400" d="M301.4 264.6l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M302 264.6l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M303 264.6l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M305 264.6l.4.5-.4-.5z"/>
+    <path fill="#103910" d="M307 264.6l.4.5-.4-.5z"/>
+    <path fill="#efefef" d="M307.4 264.6l.6.5-.6-.5z"/>
+    <path fill="#8c8c8c" d="M308.5 264.6l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M309 264.6l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M311 264.6l.5.5-.5-.5z"/>
+    <path fill="#314231" d="M311.5 264.6l-1 1.9 1-2z"/>
+    <path fill="#313931" d="M312 264.6l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M224.2 265l1.5 1.5-1.5-1.4z"/>
+    <path fill="#314231" d="M224.7 265l.5.5-.5-.4z"/>
+    <path fill="#397b00" d="M227.7 265l.5.5-.5-.4z"/>
+    <path fill="#63636b" d="M229.8 265l.4.5-.4-.4z"/>
+    <path fill="#8c8c8c" d="M230.3 265l.4.5-.4-.4z"/>
+    <path fill="#397b00" d="M231.3 265l.4.5-.4-.4z"/>
+    <path fill="#295200" d="M231.8 265l.4.5-.4-.4z"/>
+    <path fill="#294200" d="M232.8 265l.5.5-.5-.4z"/>
+    <path fill="#295200" d="M233.8 265l.5.5-.5-.4z"/>
+    <path fill="#cecece" d="M234.3 265l.5.5-.5-.4z"/>
+    <path fill="#63636b" d="M235.8 265l.5.5-.5-.4z"/>
+    <path fill="#5a5231" d="M236.8 265l.5.5-.5-.4z"/>
+    <path fill="#101829" d="M246.3 265l.5.5-.5-.4z"/>
+    <path fill="#ce2110" d="M260.8 265l.5.5-.5-.4z"/>
+    <path fill="#63636b" d="M262.3 265l.5.5-.5-.4z"/>
+    <path fill="#efefef" d="M263 265.4l.2.3-.2-.3z"/>
+    <path fill="#9c9494" d="M263.3 265l.5.5-.5-.4z"/>
+    <path fill="#7b7373" d="M263.8 265l.5.5-.5-.4z"/>
+    <path fill="#bdbdbd" d="M264.3 265l.5.5-.5-.4z"/>
+    <path fill="#7b7373" d="M266.9 265l.5.5-.5-.4z"/>
+    <path fill="#cecece" d="M267.4 265l.5.5-.5-.4z"/>
+    <path fill="#313931" d="M267.9 265l.5.5-.5-.4z"/>
+    <path fill="#210800" d="M271.4 265l.5.5-.5-.4z"/>
+    <path fill="#7b1008" d="M271.9 265l.5.5-.5-.4z"/>
+    <path fill="#10214a" d="M282.9 265l.5.5-.5-.4z"/>
+    <path fill="#4a6342" d="M292 265.4l.2.3-.1-.3z"/>
+    <path fill="#296300" d="M293 265l.4.5-.5-.4z"/>
+    <path fill="#103900" d="M293.6 265.4l.1.3-.1-.3z"/>
+    <path fill="#296300" d="M295.3 265.2l.3.2-.4-.2z"/>
+    <path fill="#103900" d="M297 265l.4.5-.5-.4z"/>
+    <path fill="#185200" d="M301.3 265.2l.3.2-.3-.2m1.1-.1l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M304.4 265l.6.5-.6-.4z"/>
+    <path fill="#296300" d="M306.4 265l.6.5-.6-.4z"/>
+    <path fill="#9c9494" d="M307 265l.4.5-.4-.4z"/>
+    <path fill="#dedede" d="M307.4 265l.6.5-.6-.4z"/>
+    <path fill="#425242" d="M308 265l.5.5-.5-.4z"/>
+    <path fill="#313931" d="M308.5 265l.5.5-.5-.4z"/>
+    <path fill="#efefef" d="M309 265l.5.5-.5-.4m1 0l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M310.5 265l.5.5-.5-.4z"/>
+    <path fill="#185200" d="M311 265l.5.5-.5-.4z"/>
+    <path fill="#ada5a5" d="M218.7 265.5l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M219.2 265.5l.5.5-.5-.5z"/>
+    <path fill="#314231" d="M225.2 265.5l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M225.7 265.5l1 1-1-1m3 0l.5.5-.5-.5m1 0l.6.5-.6-.5z"/>
+    <path fill="#214210" d="M230.3 265.5l.4.5-.4-.5z"/>
+    <path fill="#295200" d="M230.8 265.5l.4.5-.4-.5z"/>
+    <path fill="#292100" d="M231.3 265.5l.4.5-.4-.5z"/>
+    <path fill="#397b00" d="M232.3 265.5v1h1l-1-1z"/>
+    <path fill="#295200" d="M232.8 265.5l.5.5-.5-.5z"/>
+    <path fill="#5a5231" d="M233.8 265.5l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M235.3 265.5l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M236.8 265.5l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M237.3 265.5l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M246.3 265.5l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M246.8 265.5l.5.5-.5-.5z"/>
+    <path fill="#10214a" d="M247.3 265.5l.5.5-.5-.5z"/>
+    <path fill="#420000" d="M261.3 265.5l.5.5-.5-.5z"/>
+    <path fill="#101810" d="M262.3 265.5l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M263.3 265.5l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M265.3 265.5l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M266.2 265.7l.3.2-.3-.2z"/>
+    <path fill="#313931" d="M266.9 265.5l.5.5-.5-.5z"/>
+    <path fill="#101810" d="M267.4 265.5l.5.5-.5-.5z"/>
+    <path fill="#310000" d="M269.9 265.5l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M270.4 265.5l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M281.9 265.5l.5.5-.5-.5z"/>
+    <path fill="#636b7b" d="M282.4 265.5l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M282.9 265.5l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M294 265.5l-.6 1 .5-1z"/>
+    <path fill="#184a00" d="M295.4 265.5l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M297 265.5l1 1-1-1z"/>
+    <path fill="#297b00" d="M297.4 265.5l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M298.4 265.5l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M299 265.5l-.6 1 .5-1z"/>
+    <path fill="#184a00" d="M300.6 265.9l.2.3-.2-.3z"/>
+    <path fill="#103900" d="M301.4 265.5l.5.5-.5-.5z"/>
+    <path fill="#319400" d="M302 265.5l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M302.4 265.5l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M304.3 265.7l.3.2-.3-.2z"/>
+    <path fill="#425242" d="M306.4 265.5l.6.5-.6-.5z"/>
+    <path fill="#8c8c8c" d="M307 265.5l.4.5-.4-.5z"/>
+    <path fill="#184a00" d="M307.8 265.7l.3.2-.3-.2z"/>
+    <path fill="#cecece" d="M308.5 265.5l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M309.5 265.5l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M310 265.5l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M310.5 265.5l.5.5-.5-.5z"/>
+    <path fill="#8c9c84" d="M218.7 266l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M219.2 266l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M225.7 266l.5.5-.5-.5z"/>
+    <path fill="#001000" d="M228.7 266l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M229.3 266l.4.5-.4-.5z"/>
+    <path fill="#292100" d="M230.3 266l.4.5-.4-.5z"/>
+    <path fill="#ad1810" d="M231 266.2l.4.1-.3-.1z"/>
+    <path fill="#311000" d="M231.8 266l.4.5-.4-.5z"/>
+    <path fill="#8c8c8c" d="M233.8 266l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M234.8 266l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M235.3 266l.5.5-.5-.5z"/>
+    <path fill="#428c00" d="M233.1 270.9h-.5c0-2.7-1.1-4.5-4-5.3.1 1.5 1.1 7.2 3.5 5.3h.5l-1 4.3c1.5-1.6 7.7-7.2 5-9.6-2.3-2.1-3.4 4.2-3.5 5.3z"/>
+    <path fill="#295200" d="M236.3 266l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M237.3 266l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M247.3 266l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M247.8 266l.5.5-.5-.5z"/>
+    <path fill="#31425a" d="M248.3 266l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M248.8 266l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M261.3 266l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M262.8 266l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M263.8 266l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M264.3 266l.5.5-.5-.5z"/>
+    <path fill="#310000" d="M268.9 266l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M269.4 266l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M280.4 266l.5.5-.5-.5z"/>
+    <path fill="#21315a" d="M280.9 266l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M281.4 266l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M281.9 266l.5.5-.5-.5m8.5 0l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M291 266l.4.5-.5-.5z"/>
+    <path fill="#cecece" d="M291.4 266l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M292 266l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M294 266l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M295.4 266l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M296 266l-.6 1 .5-1m1 0l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M301.4 266l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M304 266l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M306 266l.4.5-.4-.5z"/>
+    <path fill="#102110" d="M306.4 266l.6.5-.6-.5z"/>
+    <path fill="#296300" d="M307.3 266.2l.3.1-.3-.1z"/>
+    <path fill="#8c8c8c" d="M308 266l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M308.5 266l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M309 266l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M309.5 266l-1.5 2.4 2.5-2.4h-1z"/>
+    <path fill="#295200" d="M219.2 266.5l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M219.7 266.5l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M225.7 266.5l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M226.2 266.5l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M226.7 266.5l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M228.2 266.5v.5h1.5l-1.5-.5z"/>
+    <path fill="#294200" d="M229.8 266.5l.4.5-.4-.5z"/>
+    <path fill="#103900" d="M230.3 266.5l.4.5-.4-.5z"/>
+    <path fill="#941808" d="M232 266.8v.3-.3z"/>
+    <path fill="#292100" d="M232.3 266.5l.4.5-.4-.5z"/>
+    <path fill="#295200" d="M233.3 266.5l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M233.8 266.5l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M234.3 266.5l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M234.8 266.5l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M236 266.8l.1.3-.2-.3z"/>
+    <path fill="#8c8c8c" d="M237.4 266.8l.2.3-.2-.3z"/>
+    <path fill="#dedede" d="M248.8 266.5l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M249.3 266.5l.5.5-.5-.5z"/>
+    <path fill="#636b7b" d="M249.8 266.5l.5.5-.5-.5z"/>
+    <path fill="#21315a" d="M250.3 266.5l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M250.8 266.5l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M251.3 266.5l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M261.3 266.5l.5.5-.5-.5z"/>
+    <path fill="#424242" d="M262.8 266.5l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M263.3 266.5l.5.5-.5-.5z"/>
+    <path fill="#101810" d="M263.8 266.5l.5.5-.5-.5z"/>
+    <path fill="#100808" d="M267.4 266.5l.5.5-.5-.5z"/>
+    <path fill="#310000" d="M267.9 266.5l.5.5-.5-.5z"/>
+    <path fill="#210800" d="M268.4 266.5l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M277.9 266.5l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M278.4 266.5l.5.5-.5-.5z"/>
+    <path fill="#10295a" d="M278.9 266.5l.5.5-.5-.5z"/>
+    <path fill="#525a6b" d="M279.4 266.5l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M279.9 266.5l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M280.4 266.5l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M290.4 266.5l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M291 266.5l1 1-1-1z"/>
+    <path fill="#103910" d="M291.4 266.5l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M292 266.5l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M294 266.5l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M294.4 266.5l-.5 1 .5-1z"/>
+    <path fill="#185200" d="M296 266.5l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M297.4 266.5l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M301 266.5l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M303.4 266.5l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M305.4 266.5v.5h2v-.5h-2z"/>
+    <path fill="#425242" d="M307.4 266.5l.6.5-.6-.5z"/>
+    <path fill="#ada5a5" d="M308 266.5l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M308.5 266.5l.5.5-.5-.5z"/>
+    <path fill="#52525a" d="M310 266.5l.5.5-.5-.5z"/>
+    <path fill="#428c00" d="M219.2 267l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M219.9 267.3l.2.3-.2-.3z"/>
+    <path fill="#314231" d="M220.2 267l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M220.7 267l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M222.7 267l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M225.2 267l.5.5-.5-.5z"/>
+    <path fill="#101810" d="M225.7 267l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M226.7 267l.5.5-.5-.5z"/>
+    <path fill="#315221" d="M227.2 267l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M228.2 267l.5.5-.5-.5z"/>
+    <path fill="#292100" d="M230.3 267l.4.5-.4-.5z"/>
+    <path fill="#941808" d="M230.8 267l.4.5-.4-.5z"/>
+    <path fill="#103900" d="M232.3 267l.4.5-.4-.5z"/>
+    <path fill="#5a2908" d="M232.8 267l-.5 1 .5-1z"/>
+    <path fill="#7b1008" d="M233.3 267l.5.5-.5-.5z"/>
+    <path fill="#5a3131" d="M233.8 267l.5.5-.5-.5z"/>
+    <path fill="#314231" d="M234.3 267l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M240.3 267l.5.5-.5-.5z"/>
+    <path fill="#52525a" d="M240.8 267l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M241.3 267l.5.5-.5-.5m9.5 0l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M251.3 267l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M251.8 267l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M252.3 267l.5.5-.5-.5z"/>
+    <path fill="#420000" d="M261.8 267l.5.5-.5-.5z"/>
+    <path fill="#100808" d="M266.3 267l.5.5-.5-.5z"/>
+    <path fill="#7b0008" d="M266.9 267l.5.5-.5-.5z"/>
+    <path fill="#de2110" d="M264.8 267.4v.5h1.5c-3.8 6-1 14-.5 20.5h.5a46 46 0 000-20l2 1 .5-2-.5-.4-3.5.4z"/>
+    <path fill="#940008" d="M268.4 267l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M268.9 267l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M276.9 267l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M277.4 267l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M277.9 267l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M278.4 267l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M290 267l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M290.4 267l.5.5-.5-.5z"/>
+    <path fill="#313931" d="M292 267l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M292.4 267l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M294.4 267l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M296 267l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M297.4 267l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M298 267l-.6 1 .5-1z"/>
+    <path fill="#103900" d="M301 267l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M303 267l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M305.4 267l.6.5-.6-.5z"/>
+    <path fill="#319400" d="M306.4 267l-.4 1 .4-1z"/>
+    <path fill="#082108" d="M307.1 267.3l.2.3-.2-.3z"/>
+    <path fill="#52525a" d="M307.4 267l.6.5-.6-.5z"/>
+    <path fill="#296300" d="M308 267l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M309.5 267l-1.5 1.9 1.5-2z"/>
+    <path fill="#295200" d="M219.2 267.4l.5.5-.5-.5z"/>
+    <path fill="#428c00" d="M220.2 267.4l1 2.9h.5l.5-1.9-2-1z"/>
+    <path fill="#295200" d="M220.7 267.4l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M221.2 267.4l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M221.7 267.4l.5.5-.5-.5z"/>
+    <path fill="#101810" d="M222.7 267.4l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M223.2 267.4l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M225.2 267.4l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M225.7 267.4l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M227.7 267.4l.5.5-.5-.5z"/>
+    <path fill="#001000" d="M228.2 267.4l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M230.8 267.4l.4.5-.4-.5z"/>
+    <path fill="#4a1000" d="M231.3 267.4l.4.5-.4-.5z"/>
+    <path fill="#294200" d="M231.8 267.4l.4.5-.4-.5z"/>
+    <path fill="#631808" d="M233.8 267.4l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M235.6 267.6l.3.2-.3-.2z"/>
+    <path fill="#6b735a" d="M237.3 267.4l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M238.3 267.4l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M238.8 267.4l.5.5-.5-.5z"/>
+    <path fill="#526b42" d="M239.3 267.4l.5.5-.5-.5z"/>
+    <path fill="#396b10" d="M239.8 267.4l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M240.3 267.4l.5.5-.5-.5z"/>
+    <path fill="#213918" d="M240.8 267.4l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M241.3 267.4l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M261.8 267.4l.5.5-.5-.5z"/>
+    <path fill="#520808" d="M263.8 267.4l-.5 1 .5-1z"/>
+    <path fill="#ad0008" d="M264.3 267.4l.5.5-.5-.5z"/>
+    <path fill="#520808" d="M268.9 267.4l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M290 267.4l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M290.4 267.4l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M292 267.4l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M292.4 267.4l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M294.4 267.4l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M295 267.4l-.6 1 .5-1z"/>
+    <path fill="#185200" d="M296 267.4l1 1-1-1z"/>
+    <path fill="#297b00" d="M296.4 267.4l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M298 267.4l.4.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M299.4 267.4l.5.5-.5-.5m1 0l1 1-1-1z"/>
+    <path fill="#185200" d="M301 267.4l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M302.4 267.4l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M303 267.4l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M305 267.4l1 1-1-1zm2.4 0l.6.5-.6-.5z"/>
+    <path fill="#dedede" d="M310 267.4l.5.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M310.5 267.4l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M311 267.4l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M311.5 267.4l.5.5-.5-.5z"/>
+    <path fill="#8c9c84" d="M218.7 268l.5.4-.5-.5z"/>
+    <path fill="#428c00" d="M219.2 268l1.5 2.3-1.5-2.4z"/>
+    <path fill="#103900" d="M219.7 268l.5.4-.5-.5z"/>
+    <path fill="#314231" d="M221.7 268l.5.4-.5-.5z"/>
+    <path fill="#bdbdbd" d="M222.2 268l.5.4-.5-.5z"/>
+    <path fill="#295200" d="M222.7 268l.5.4-.5-.5z"/>
+    <path fill="#314231" d="M223.2 268l.5.4-.5-.5z"/>
+    <path fill="#ada5a5" d="M224.7 268l.5.4-.5-.5z"/>
+    <path fill="#397b00" d="M225.6 268l.3.2-.3-.1z"/>
+    <path fill="#dedede" d="M226.2 268l.5.4-.5-.5z"/>
+    <path fill="#7b8c73" d="M228.2 268l.5.4-.5-.5z"/>
+    <path fill="#295200" d="M231.3 268l1 .9v-1h-1z"/>
+    <path fill="#4a1000" d="M232.3 268l.4.4-.4-.5z"/>
+    <path fill="#bd2110" d="M233.3 268l.5.4-.5-.5z"/>
+    <path fill="#526b42" d="M237.3 268l.5.4-.5-.5z"/>
+    <path fill="#9c9494" d="M237.8 268l.5.4-.5-.5z"/>
+    <path fill="#214210" d="M238.3 268l.5.4-.5-.5z"/>
+    <path fill="#428c00" d="M236.8 271.7l1-.4v.4l-3.5 2.9a9.7 9.7 0 006-5.7l-1.5 1 1-2-3 3.8z"/>
+    <path fill="#294200" d="M239.8 268l-.5.9.5-1z"/>
+    <path fill="#397b00" d="M240.3 268l-.5.9.5-1z"/>
+    <path fill="#424242" d="M240.8 268l.5.4-.5-.5z"/>
+    <path fill="#9c9494" d="M256.3 268l.5.4-.5-.5z"/>
+    <path fill="#845a52" d="M256.8 268l.5.4-.5-.5z"/>
+    <path fill="#734a42" d="M257.3 268l.5.4-.5-.5z"/>
+    <path fill="#842118" d="M257.8 268l.5.4-.5-.5z"/>
+    <path fill="#7b1008" d="M258.3 268l.5.4-.5-.5z"/>
+    <path fill="#b51010" d="M258.8 268l.5.4-.5-.5z"/>
+    <path fill="#ce2110" d="M261.8 268l.5.4-.5-.5z"/>
+    <path fill="#310000" d="M262.8 268l.5.4-.5-.5z"/>
+    <path fill="#310010" d="M263.8 268l.5.4-.5-.5z"/>
+    <path fill="#180821" d="M264.3 268l.5.4-.5-.5z"/>
+    <path fill="#310010" d="M264.8 268l.5.4-.5-.5z"/>
+    <path fill="#7b1008" d="M265.3 268l.5.4-.5-.5z"/>
+    <path fill="#b51010" d="M265.8 268l.5.4-.5-.5z"/>
+    <path fill="#7b1008" d="M268.9 268l.5.4-.5-.5z"/>
+    <path fill="#bd2110" d="M270.4 268l.5.4-.5-.5z"/>
+    <path fill="#7b1008" d="M270.9 268l.5.4-.5-.5z"/>
+    <path fill="#631808" d="M271.4 268l.5.4-.5-.5z"/>
+    <path fill="#8c4a4a" d="M271.9 268l.5.4-.5-.5z"/>
+    <path fill="#9c9494" d="M272.9 268l.5.4-.5-.5z"/>
+    <path fill="#214210" d="M290 268l.4.4-.5-.5z"/>
+    <path fill="#297b00" d="M292 268l.4.4-.5-.5z"/>
+    <path fill="#103900" d="M292.4 268l.5.4-.5-.5z"/>
+    <path fill="#185200" d="M295 268l.4.4-.5-.5z"/>
+    <path fill="#297b00" d="M296 268l.4.4-.5-.5z"/>
+    <path fill="#184a00" d="M298 268l.4.4-.5-.5z"/>
+    <path fill="#103900" d="M300.6 268.2l.2.4-.2-.4m1.8-.3l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M306.4 268l.6.4-.6-.5z"/>
+    <path fill="#8c8c8c" d="M309.5 268l.5.4-.5-.5z"/>
+    <path fill="#184a00" d="M310 268l.5.4-.5-.5z"/>
+    <path fill="#296300" d="M311.5 268l.5.4-.5-.5z"/>
+    <path fill="#63636b" d="M312 268l1 .9-1-1z"/>
+    <path fill="#8c8c8c" d="M218.9 268.7l.2.3-.2-.3z"/>
+    <path fill="#295200" d="M219.7 268.4l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M220.2 268.4l.5.5-.5-.5z"/>
+    <path fill="#102110" d="M222.2 268.4l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M222.7 268.4v.5l1.5.5-1.5-1z"/>
+    <path fill="#63636b" d="M223.7 268.4l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M224.7 268.4l.5.5-.5-.5z"/>
+    <path fill="#428c00" d="M225.2 268.4v2.4h-.5l-.5-1.5h-.5l.5 4.8h-.5l-.5-5.2h-.5l-.5 3.8h-.5l-2.5-2 1.5 3h-.5l-2-2.4c1.7 5.6 4.1 4.8 8.1 8 1.5 1.2 2.4 3.7 3.4 5.3l-2-1.4 1 1.4-2.4-1.4 3 2.9.4-1.5h.6c-1.3 2.3-3.5 2.6-6 2.9v-.5l1-1 2.4.5c-1.8-1.8-4-2-6.5-1.4l3 2.4v.5l-3 3.3 6-1-.5 1h.5l3-1.4-6 2.8v.5c5.1-.6 5.7-2.3 8.6-5.7-.4 1.5-.4 2.4 1 3.3l-.8-5.7 6.8-7.6-2.5 1.9 2-2.9c-2.9.6-4 2.6-4 5.3l-3 2.8h-.5c1-3 4-4.7 3-8-2.6 1.8-3.4 4-3.5 7l-2-9.5.5 2h-.5v-1h-.5l.5 6.7h-.5c-1.6-3.7-.2-11-3.6-13.4z"/>
+    <path fill="#9c9494" d="M226.2 268.4l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M228.4 268.7l.2.3-.2-.3z"/>
+    <path fill="#397b00" d="M229.8 268.4l1 1-1-1z"/>
+    <path fill="#5a1008" d="M232.8 268.4l.5.5-.5-.5z"/>
+    <path fill="#311000" d="M233.3 268.4l.5.5-.5-.5z"/>
+    <path fill="#213918" d="M237.3 268.4l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M237.8 268.4l.5.5-.5-.5z"/>
+    <path fill="#315221" d="M240.3 268.4l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M258.3 268.4l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M258.8 268.4l.5.5-.5-.5z"/>
+    <path fill="#736b6b" d="M259.3 268.4l.5.5-.5-.5z"/>
+    <path fill="#6b2908" d="M259.8 268.4l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M260.3 268.4l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M262.3 268.4l.5.5-.5-.5z"/>
+    <path fill="#000818" d="M262.8 268.4l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M263.3 268.4l-.5 1 .5-1z"/>
+    <path fill="#003994" d="M261.8 285h.5c-.8-6-.4-11 2.5-16.6-5.9 2.9-5.5 12-3 16.7z"/>
+    <path fill="#52525a" d="M264.8 268.4l.5.5-.5-.5z"/>
+    <path fill="#9c2118" d="M265.3 268.4l.5.5-.5-.5z"/>
+    <path fill="#ce0008" d="M267.4 268.4l.5.5-.5-.5z"/>
+    <path fill="#bd0008" d="M268.4 268.4l.5.5-.5-.5z"/>
+    <path fill="#520808" d="M268.9 268.4l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M269.4 268.4l.5.5-.5-.5z"/>
+    <path fill="#7b5252" d="M269.9 268.4l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M270.4 268.4l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M270.9 268.4l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M282.9 268.4l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M289.4 268.4l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M290 268.4l.4.5-.5-.5z"/>
+    <path fill="#314231" d="M290.4 268.4l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M291 268.4l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M292.4 268.4l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M293 268.4l-.6 1 .5-1z"/>
+    <path fill="#103900" d="M295 268.4l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M296.6 268.7l.2.3-.2-.3z"/>
+    <path fill="#185200" d="M298 268.4l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M302.1 268.7l.2.3-.2-.3z"/>
+    <path fill="#297b00" d="M302.4 268.4l.5.5-.5-.5m2 0l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M307.4 268.4l.6.5-.6-.5z"/>
+    <path fill="#dedede" d="M308.5 268.4l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M309 268.4l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M309.5 268.4l.5.5-.5-.5m2.5 0l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M220.2 268.9l.5.5-.5-.5m2 0l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M223.4 269.2l.2.3-.2-.3z"/>
+    <path fill="#ada5a5" d="M224.2 268.9l.5.5-.5-.5z"/>
+    <path fill="#526b42" d="M224.7 268.9l.5.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M226.2 268.9l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M229.8 268.9l.4.5-.4-.5m2.4 0l.6.5-.6-.5z"/>
+    <path fill="#397b00" d="M232.8 268.9l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M233.3 268.9l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M237.4 269.2l.2.3-.2-.3z"/>
+    <path fill="#397b00" d="M238.8 268.9l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M239.3 268.9l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M240.3 268.9l.5.5-.5-.5z"/>
+    <path fill="#313931" d="M246.3 268.9l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M260.3 268.9l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M260.8 268.9l.5.5-.5-.5z"/>
+    <path fill="#733939" d="M261.3 268.9l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M261.8 268.9l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M262.3 268.9l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M264.3 268.9l.5.5-.5-.5z"/>
+    <path fill="#6b5252" d="M264.8 268.9l.5.5-.5-.5z"/>
+    <path fill="#310000" d="M267.4 268.9l.5.5-.5-.5z"/>
+    <path fill="#5a1010" d="M268.4 268.9l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M268.9 268.9l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M282.9 268.9l.5.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M289.4 268.9l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M290 268.9l.4.5-.5-.5z"/>
+    <path fill="#dedede" d="M290.4 268.9l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M291 268.9l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M293 268.9l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M295 268.9l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M295.4 268.9l-.5 1 .5-1z"/>
+    <path fill="#184a00" d="M298.1 269.2l.2.3-.2-.3z"/>
+    <path fill="#297b00" d="M300 268.9l1 1-1-1z"/>
+    <path fill="#185200" d="M300.4 268.9l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M301.4 268.9l1 1-1-1z"/>
+    <path fill="#103900" d="M305 268.9l.4.5-.4-.5z"/>
+    <path fill="#185200" d="M307 268.9l-2 2.4 2-2.4z"/>
+    <path fill="#7b7373" d="M307.4 268.9l.6.5-.6-.5z"/>
+    <path fill="#ada5a5" d="M308 268.9l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M308.5 268.9l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M309 268.9l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M310 268.9l.5.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M310.5 268.9l.5.5-.5-.5z"/>
+    <path fill="#395231" d="M311 268.9l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M311.5 268.9l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M312.6 269.2l.2.3-.2-.3z"/>
+    <path fill="#8c8c8c" d="M313 268.9l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M218.9 269.7l.2.3-.2-.3z"/>
+    <path fill="#397b00" d="M219.2 269.4l.5.4-.5-.4m1 0l.5.4-.5-.4z"/>
+    <path fill="#295200" d="M220.7 269.4l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M222 269.5l.4.2-.3-.2z"/>
+    <path fill="#213918" d="M224.2 269.4l.5.4-.5-.4z"/>
+    <path fill="#5a5231" d="M224.7 269.4l.5.4-.5-.4z"/>
+    <path fill="#295200" d="M226.2 269.4l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M226.7 269.4l.5.4-.5-.4z"/>
+    <path fill="#ada5a5" d="M228.2 269.4l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M228.7 269.4l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M230.3 269.4l.4.4-.4-.4z"/>
+    <path fill="#001000" d="M232.8 269.4l.5.4-.5-.4z"/>
+    <path fill="#295200" d="M235.3 269.4l-.5.9.5-1z"/>
+    <path fill="#103900" d="M238.8 269.4l.5.4-.5-.4z"/>
+    <path fill="#214210" d="M239.8 269.4l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M240.3 269.4l.5.4-.5-.4z"/>
+    <path fill="#b51010" d="M246.3 269.4l.5.4-.5-.4z"/>
+    <path fill="#733939" d="M246.8 269.4l.5.4-.5-.4z"/>
+    <path fill="#cecece" d="M247.3 269.4l.5.4-.5-.4m14.5 0l.5.4-.5-.4z"/>
+    <path fill="#001039" d="M262.3 269.4l.5.4-.5-.4z"/>
+    <path fill="#002984" d="M263.8 269.4l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M264.3 269.4l.5.4-.5-.4z"/>
+    <path fill="#842118" d="M264.8 269.4l.5.4-.5-.4z"/>
+    <path d="M267.4 269.4l.5.4-.5-.4z"/>
+    <path fill="#ad0008" d="M267.9 269.4l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M268.4 269.4l.5.4-.5-.4z"/>
+    <path fill="#debdb5" d="M281.9 269.4l.5.4-.5-.4z"/>
+    <path fill="#8c4a4a" d="M282.4 269.4l.5.4-.5-.4z"/>
+    <path fill="#ce1810" d="M282.9 269.4l.5.4-.5-.4z"/>
+    <path fill="#946b63" d="M283.6 269.7l.1.3-.1-.3z"/>
+    <path fill="#001000" d="M289.4 269.4l.5.4-.5-.4z"/>
+    <path fill="#ada5a5" d="M290 269.4l.4.4-.5-.4m1 0l.5.4-.5-.4z"/>
+    <path fill="#296300" d="M291.4 269.4l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M293 269.4l.4.4-.5-.4z"/>
+    <path fill="#297b00" d="M293.4 269.4l-.5.9.5-1z"/>
+    <path fill="#184a00" d="M295.4 269.4l.5.4-.5-.4z"/>
+    <path fill="#296300" d="M296.4 269.4l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M297 269.4l-.6.9.5-1z"/>
+    <path fill="#103900" d="M300.1 269.7l.2.3-.2-.3m1.3-.3l.5.4-.5-.4z"/>
+    <path d="M304.4 269.4l.6.4-.6-.4z"/>
+    <path fill="#297b00" d="M305 269.4l.4.4-.4-.4z"/>
+    <path fill="#8c8c8c" d="M307 269.4l.4.4-.4-.4z"/>
+    <path fill="#63636b" d="M307.4 269.4l.6.4-.6-.4z"/>
+    <path fill="#296300" d="M308 269.4l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M309.5 269.4l.5.4-.5-.4z"/>
+    <path fill="#cecece" d="M310 269.4l.5.4-.5-.4z"/>
+    <path fill="#ada5a5" d="M311.5 269.4l.5.4-.5-.4z"/>
+    <path fill="#294221" d="M312 269.4l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M313 269.4l.5.4-.5-.4z"/>
+    <path fill="#cecece" d="M313.5 269.4l.5.4-.5-.4z"/>
+    <path fill="#ada5a5" d="M216.7 269.8l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M217.6 270l.3.2-.3-.2z"/>
+    <path fill="#9c9494" d="M218.2 269.8l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M219.2 269.8l1 1-1-1z"/>
+    <path fill="#103900" d="M220.7 269.8l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M221.7 269.8l-.5 1.5.5-1.5m1.5 0v1.5h.5l-.5-1.5z"/>
+    <path fill="#292100" d="M224.7 269.8l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M226.7 269.8l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M228.7 269.8l.5.5-.5-.5m2 0l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M232.8 269.8l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M235.3 269.8l.5.5-.5-.5m1.8.2l.3.2-.3-.2z"/>
+    <path fill="#103900" d="M238.3 269.8l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M239.8 269.8l.5.5-.5-.5z"/>
+    <path fill="#de2110" d="M246.8 269.8v7.7h-.5l-.5-6.7h-4.5v13.8l2-1 1 3.4 2.5-1.4.5 5.2 4.5-1.4c2.1 1.4 3.5 1.4 4.5-1h1l3 2.9-.5-9-9-.6v-.4l8.5.4v-1.4c-6.3-.1-7-4-7-9l-5.5-1.5z"/>
+    <path fill="#b51010" d="M247.3 269.8l.5.5-.5-.5z"/>
+    <path fill="#7b5252" d="M247.8 269.8l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M248.3 269.8l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M261.8 269.8l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M262.3 269.8l.5.5-.5-.5z"/>
+    <path fill="#10214a" d="M263.8 269.8l.5.5-.5-.5z"/>
+    <path fill="#c6b5b5" d="M264.3 269.8l.5.5-.5-.5z"/>
+    <path fill="#ce1810" d="M264.8 269.8l.5.5-.5-.5z"/>
+    <path fill="#6b0808" d="M266.9 269.8l.5.5-.5-.5z"/>
+    <path fill="#100808" d="M267.4 269.8l.5.5-.5-.5z"/>
+    <path fill="#5a3131" d="M267.9 269.8l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M280.9 269.8l.5.5-.5-.5z"/>
+    <path fill="#a56363" d="M281.4 269.8l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M281.9 269.8l.5.5-.5-.5z"/>
+    <path fill="#de2110" d="M277.4 271.3c0 4.8-.5 8.7-6.5 9 1.3 3.6 7.8 1.3 10-.6 3-2.6 2.5-6.3 2.5-9.9l-6 1.5z"/>
+    <path fill="#bdbdbd" d="M288.9 269.8l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M289.4 269.8l.5.5-.5-.5z"/>
+    <path fill="#315221" d="M291.4 269.8l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M293.4 269.8l.5.5-.5-.5m2 0l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M297 269.8l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M301 269.8l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M301.4 269.8l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M300.4 274.1l4.6-4.3c-2.5.6-3.6 2.2-4.6 4.3z"/>
+    <path fill="#103900" d="M304 269.8l.4.5-.5-.5z"/>
+    <path fill="#7b7373" d="M306.4 269.8l.6.5-.6-.5z"/>
+    <path fill="#294221" d="M307 269.8l.4.5-.4-.5z"/>
+    <path fill="#297b00" d="M307.4 269.8l.6.5-.6-.5z"/>
+    <path fill="#185200" d="M309 269.8l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M309.5 269.8l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M312 269.8l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M312.5 269.8l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M313 269.8l.5.5-.5-.5z"/>
+    <path fill="#294221" d="M313.5 269.8l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M314 269.8l.5.5-.5-.5m-97.3.5l.5.5-.5-.5z"/>
+    <path fill="#293129" d="M217.2 270.3l.5.5-.5-.5z"/>
+    <path fill="#428c00" d="M218 270.5l.4.1-.3-.1z"/>
+    <path fill="#397b00" d="M218.9 270.6l.2.3-.2-.3z"/>
+    <path fill="#295200" d="M219.2 270.3l.5.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M220.7 270.3l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M224.7 270.3l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M226.7 270.3l.5.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M228.7 270.3l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M230.8 270.3l.4.5-.4-.5z"/>
+    <path fill="#294200" d="M232.8 270.3v1.4h.5l-.5-1.4m2.1.3l.2.3-.2-.3m1.9-.3l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M238.1 270.5l.3.1-.3-.1z"/>
+    <path fill="#295200" d="M239.3 270.3l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M239.8 270.3l.5.5-.5-.5z"/>
+    <path fill="#52525a" d="M240.8 270.3l.5.5-.5-.5z"/>
+    <path fill="#5a3131" d="M245.8 270.3l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M248.3 270.3l.5.5-.5-.5z"/>
+    <path fill="#842118" d="M248.8 270.3l.5.5-.5-.5z"/>
+    <path fill="#8c6363" d="M249.3 270.3l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M249.8 270.3l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M261.3 270.3l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M261.8 270.3l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M263.3 270.3l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M263.8 270.3l.5.5-.5-.5z"/>
+    <path fill="#8c6363" d="M264.3 270.3l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M266.9 270.3l.5.5-.5-.5z"/>
+    <path fill="#4a2129" d="M267.4 270.3l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M267.9 270.3l.5.5-.5-.5z"/>
+    <path fill="#d6a5a5" d="M279.4 270.3l.5.5-.5-.5z"/>
+    <path fill="#946b63" d="M279.9 270.3l.5.5-.5-.5z"/>
+    <path fill="#a52921" d="M280.4 270.3l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M280.9 270.3l.5.5-.5-.5z"/>
+    <path fill="#4a2129" d="M283.4 270.3l.5.5-.5-.5z"/>
+    <path fill="#42425a" d="M283.9 270.3v.5h4.5l-4.5-.5z"/>
+    <path fill="#212139" d="M288.4 270.3l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M290.4 270.3l1.5 1v-.5l-1.5-.5z"/>
+    <path fill="#8c8c8c" d="M291.4 270.3l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M292 270.3l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M293.4 270.3l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M294 270.3l-.6 1 .5-1m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M296 270.3l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M297 270.3l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M298 270.3l.4.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M300 270.3l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M301 270.3l.4.5-.5-.5m2.5 0l.5.5-.5-.5z"/>
+    <path fill="#313931" d="M306 270.3l.4.5-.4-.5z"/>
+    <path fill="#184a00" d="M306.4 270.3l.6.5-.6-.5z"/>
+    <path fill="#296300" d="M308.5 270.3l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M309 270.3l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M313 270.3l.5.5-.5-.5z"/>
+    <path fill="#424242" d="M313.5 270.3l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M314 270.3l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M217.2 270.8l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M217.7 270.8l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M218.2 270.8l.5.5-.5-.5z"/>
+    <path fill="#292100" d="M220.7 270.8l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M221.7 270.8l.5.5-.5-.5m3.7.3l.2.3-.2-.3m1.3-.3l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M227.2 270.8l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M229.3 270.8l.4.5-.4-.5m2 0l.4.5-.4-.5z"/>
+    <path fill="#397b00" d="M236.3 270.8l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M236.8 270.8l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M237.8 270.8l.5.5-.5-.5z"/>
+    <path fill="#6b735a" d="M239.3 270.8l.5.5-.5-.5z"/>
+    <path fill="#ce1810" d="M249.8 270.8l.5.5-.5-.5z"/>
+    <path fill="#a51008" d="M250.3 270.8l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M250.8 270.8l.5.5-.5-.5z"/>
+    <path fill="#943131" d="M251.6 271l.4.1-.4-.2z"/>
+    <path fill="#c6b5b5" d="M252.3 270.8l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M261.3 270.8l.5.5-.5-.5z"/>
+    <path fill="#001039" d="M263.3 270.8l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M263.8 270.8l.5.5-.5-.5z"/>
+    <path fill="#943131" d="M264.3 270.8l.5.5-.5-.5z"/>
+    <path fill="#ce1810" d="M266.3 270.8l1 4.3-1-4.3z"/>
+    <path fill="#6b0808" d="M266.9 270.8l1 1-1-1z"/>
+    <path fill="#733939" d="M267.4 270.8l.5.5-.5-.5z"/>
+    <path fill="#c69c94" d="M276.9 270.8l.5.5-.5-.5z"/>
+    <path fill="#ad3931" d="M277.7 271l.3.1-.3-.2z"/>
+    <path fill="#bd2110" d="M278.4 270.8l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M278.9 270.8l.5.5-.5-.5z"/>
+    <path fill="#ce1810" d="M279.4 270.8l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M283.4 270.8v3.8h.5l-.5-3.8z"/>
+    <path fill="#003994" d="M283.9 270.8c0 8.8-5.2 12-14 11.4l-.6 9c2 0 4.6.2 5-1.8l2 1.4 2-1.9-.4 2 1-1h.5l3-.5-.5 1.4 1.5-1.9 1 1h1.5v-1.5l1 .5.5-4.3c2.5-2 1-10.7 1-13.8h-4.5z"/>
+    <path fill="#424242" d="M290.4 270.8l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M292 270.8l.4.5-.5-.5m2 0l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M296 270.8v1.4h.4l-.5-1.4z"/>
+    <path fill="#185200" d="M297 270.8l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M298.4 270.8v2.4h.5l-.5-2.4z"/>
+    <path fill="#185200" d="M300.4 270.8l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M301 270.8l.4.5-.5-.5z"/>
+    <path fill="#082108" d="M303 270.8l.4.5-.5-.5z"/>
+    <path d="M305.4 270.8l.6.5-.6-.5z"/>
+    <path fill="#296300" d="M306 270.8l.4.5-.4-.5z"/>
+    <path fill="#297b00" d="M308 270.8l-1 1.4 1-1.4z"/>
+    <path fill="#63636b" d="M308.5 270.8l.5.5-.5-.5m-90.8.5l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M218.7 271.3l1 1-1-1z"/>
+    <path fill="#295200" d="M219.2 271.3l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M221.2 271.3l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M221.7 271.3l.5.4-.5-.4m1.5 0v1h1v-1h-1z"/>
+    <path fill="#8c8c8c" d="M227.2 271.3l.5.4-.5-.4z"/>
+    <path fill="#7b7373" d="M229.3 271.3l.4.4-.4-.4z"/>
+    <path fill="#103900" d="M237.3 271.3l.5.4-.5-.4z"/>
+    <path fill="#396b10" d="M238.8 271.3l.5.4-.5-.4z"/>
+    <path fill="#dedede" d="M239.3 271.3l.5.4-.5-.4z"/>
+    <path fill="#8c7373" fill-opacity=".5" d="M252.3 271.3v4.3h.5l-.5-4.3z"/>
+    <path fill="#efefef" d="M260.8 271.3l.5.4-.5-.4z"/>
+    <path fill="#10214a" d="M261.3 271.3l.5.4-.5-.4z"/>
+    <path fill="#636b7b" d="M263.3 271.3l.5.4-.5-.4z"/>
+    <path fill="#ad1810" d="M264.3 271.3l.5.4-.5-.4z"/>
+    <path fill="#420000" d="M266.9 271.3l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M290.4 271.3l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M291 271.3l.4.4-.5-.4z"/>
+    <path fill="#425242" d="M292 271.3l.4.4-.5-.4z"/>
+    <path fill="#103900" d="M294 271.3l.4.4-.5-.4z"/>
+    <path fill="#184a00" d="M297 271.3l.4.4-.5-.4z"/>
+    <path fill="#297b00" d="M300 271.3l1 1-1-1z"/>
+    <path fill="#103900" d="M300.4 271.3l.5.4-.5-.4m2 0l.5.4-.5-.4m2 0L302 274l2.4-2.8z"/>
+    <path fill="#082108" d="M305 271.3l.4.4-.4-.4z"/>
+    <path fill="#297b00" d="M305.4 271.3l.6.4-.6-.4z"/>
+    <path fill="#314231" d="M308 271.3l-.5 1 .5-1z"/>
+    <path fill="#bdbdbd" d="M217.7 271.7l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M218.2 271.7l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M221.9 272l.2.4-.2-.3m3.5 0l.2.3-.2-.3z"/>
+    <path fill="#526b42" d="M227.2 271.7l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M229.3 271.7l.4.5-.4-.5z"/>
+    <path fill="#314231" d="M229.8 271.7l.4.5-.4-.5z"/>
+    <path fill="#397b00" d="M232.8 271.7l.5.5-.5-.5m3 .5v.5h1.5l-1.5-.5m1.5-.5l.5.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M238.8 271.7l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M256.6 271.9l.4.2-.4-.2z"/>
+    <path fill="#8c8c8c" d="M257.3 271.7l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M257.8 271.7l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M258.3 271.7l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M260.8 271.7l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M261.3 271.7l.5.5-.5-.5z"/>
+    <path fill="#00215a" d="M262.8 271.7l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M263.3 271.7l.5.5-.5-.5z"/>
+    <path fill="#a51008" d="M264.3 271.7l.5.5-.5-.5z"/>
+    <path fill="#310000" d="M266.9 271.7l.5.5-.5-.5z"/>
+    <path fill="#940008" d="M267.4 271.7l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M267.9 271.7l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M270.9 271.7l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M271.4 271.7l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M272.2 271.9l.3.2-.3-.2z"/>
+    <path fill="#7b7373" d="M272.9 271.7l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M290.4 271.7l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M291 271.7l.4.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M291.4 271.7l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M292 271.7l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M292.4 271.7l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M294.3 271.9l.3.2-.4-.2z"/>
+    <path fill="#297b00" d="M296.4 271.7l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M297 271.7l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M297.4 271.7l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M300 271.7l.4.5-.5-.5m2 0l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M308 271.7l.5.5-.5-.5z"/>
+    <path fill="#396b10" d="M218.2 272.2l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M219.7 272.2l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M223.9 272.5l.2.3-.2-.3z"/>
+    <path fill="#396b10" d="M227.2 272.2l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M228.7 272.2l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M229.8 272.2l.4.5-.4-.5z"/>
+    <path fill="#214210" d="M230.3 272.2l1.4 1.4-1.4-1.4z"/>
+    <path fill="#294200" d="M232.4 272.5l.2.3-.2-.3z"/>
+    <path fill="#103900" d="M236.3 272.2l.5.5-.5-.5z"/>
+    <path fill="#314231" d="M238.3 272.2l.5.5-.5-.5z"/>
+    <path fill="#003994" d="M256.8 272.2c0 2.4.3 3.6 3 3.8.4-2.6-.4-3.2-3-3.8z"/>
+    <path fill="#002984" d="M257.8 272.2l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M258.3 272.2l.5.5-.5-.5z"/>
+    <path fill="#10214a" d="M258.8 272.2l.5.5-.5-.5z"/>
+    <path fill="#636b7b" d="M259.3 272.2l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M259.8 272.2l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M260.3 272.2l.5.5-.5-.5z"/>
+    <path fill="#31425a" d="M260.8 272.2l.5.5-.5-.5z"/>
+    <path fill="#21315a" d="M262.8 272.2l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M263.8 272.2l.5.5-.5-.5z"/>
+    <path fill="#ce1810" d="M264.3 272.2l.5.5-.5-.5z"/>
+    <path fill="#420000" d="M266.9 272.2l.5.5-.5-.5z"/>
+    <path fill="#ce0008" d="M267.4 272.2l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M267.9 272.2l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M269.4 272.2l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M269.9 272.2l.5.5-.5-.5z"/>
+    <path fill="#21315a" d="M270.4 272.2l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M270.9 272.2l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M271.4 272.2l.5.5-.5-.5z"/>
+    <path fill="#003994" d="M268.4 273.2c1.1 4.1 4.4 2.8 4.5-1l-4.5 1z"/>
+    <path fill="#efefef" d="M290.4 272.2l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M291 272.2l.4.5-.5-.5z"/>
+    <path fill="#425242" d="M291.4 272.2l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M292 272.2l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M292.4 272.2l.5.5-.5-.5m2 0l.5.5-.5-.5zm7 0l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M304 272.2l.4.5-.5-.5z"/>
+    <path fill="#214210" d="M307 272.2l.4.5-.4-.5z"/>
+    <path fill="#cecece" d="M307.4 272.2l-.4 1 .4-1z"/>
+    <path fill="#5a6b52" d="M218.2 272.7l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M219.7 272.7l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M220.2 272.7l.5.5-.5-.5m2 0l.5.5-.5-.5m3 0l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M228.7 272.7l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M230.3 272.7l1.4 1.4-1.4-1.4z"/>
+    <path fill="#397b00" d="M235.3 272.7l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M237.8 272.7l-.5 1 .5-1z"/>
+    <path fill="#cecece" d="M238.3 272.7l-.5 1 .5-1z"/>
+    <path fill="#002984" d="M259.8 272.7l.5.5-.5-.5z"/>
+    <path fill="#001039" d="M260.3 272.7l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M260.8 272.7l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M262.8 272.7l.5.5-.5-.5z"/>
+    <path fill="#b5adad" d="M263.8 272.7l.5.5-.5-.5z"/>
+    <path fill="#6b0808" d="M266.9 272.7l.5.5-.5-.5z"/>
+    <path fill="#de2110" d="M267.4 272.7l.5.5-.5-.5z"/>
+    <path fill="#524242" d="M267.9 272.7l.5.5-.5-.5z"/>
+    <path fill="#525a6b" d="M268.4 272.7l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M268.9 272.7l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M269.4 272.7l.5.5-.5-.5z"/>
+    <path fill="#395231" d="M291 272.7l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M291.4 272.7l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M292 272.7l.4.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M292.4 272.7l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M294.4 272.7l1 1-1-1z"/>
+    <path fill="#297b00" d="M295 272.7l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M296.6 273l.2.3-.2-.3z"/>
+    <path fill="#297b00" d="M297 272.7l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M301 272.7l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M303.4 272.7l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M306.4 272.7l.6.5-.6-.5z"/>
+    <path fill="#9c9494" d="M218.2 273.2l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M220.2 273.2l.5.5-.5-.5m2.2.3l.2.3-.2-.3z"/>
+    <path fill="#295200" d="M223.7 273.2l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M229.3 273.2l.4.5-.4-.5z"/>
+    <path fill="#397b00" d="M231.8 273.2l.4.5-.4-.5z"/>
+    <path fill="#295200" d="M232.3 273.2l.4.5-.4-.5z"/>
+    <path fill="#397b00" d="M234.8 273.2l.5.5-.5-.5z"/>
+    <path fill="#00215a" d="M260.3 273.2l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M260.8 273.2l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M262.3 273.2l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M262.8 273.2l.5.5-.5-.5z"/>
+    <path fill="#ad0008" d="M267.4 273.2l.5.5-.5-.5z"/>
+    <path fill="#390821" d="M267.9 273.2l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M291 273.2l.4.5-.5-.5z"/>
+    <path fill="#319400" d="M291.4 273.2l.5.5-.5-.5z"/>
+    <path fill="#103910" d="M292 273.2l.4.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M292.4 273.2l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M293 273.2l.4.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M297.4 273.2l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M298.4 273.2l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M300.4 273.2l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M303 273.2l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M306 273.2l.4.5-.4-.5z"/>
+    <path fill="#9c9494" d="M306.4 273.2l.6.5-.6-.5z"/>
+    <path fill="#dedede" d="M218.2 273.6l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M218.7 273.6l.5.5-.5-.5m2 0l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M223.7 273.6l.5.5-.5-.5z"/>
+    <path fill="#6b735a" d="M228.2 273.6l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M229.3 273.6l1 1-1-1z"/>
+    <path fill="#cecece" d="M229.8 273.6l1 1-1-1z"/>
+    <path fill="#001000" d="M231.8 273.6l.4.5-.4-.5z"/>
+    <path fill="#103900" d="M233.8 273.6l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M234.3 273.6l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M236.3 273.6l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M236.8 273.6l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M237.3 273.6l.5.5-.5-.5z"/>
+    <path fill="#001039" d="M260.3 273.6l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M262.3 273.6l.5.5-.5-.5z"/>
+    <path fill="#7b0008" d="M266.9 273.6l.5.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M289.7 273.8l.4.2-.4-.2z"/>
+    <path fill="#9c9494" d="M291 273.6l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M291.8 273.8l.3.2-.4-.2z"/>
+    <path fill="#7b7373" d="M292.4 273.6l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M293 273.6l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M295 274l.3.3-.2-.3m1.5 0l.2.3-.2-.3z"/>
+    <path fill="#296300" d="M297.4 273.6l.5.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M300 273.6l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M302.4 273.6l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M305.4 273.6l.6.5-.6-.5z"/>
+    <path fill="#8c8c8c" d="M306 273.6l.4.5-.4-.5z"/>
+    <path fill="#dedede" d="M308 273.6l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M308.5 273.6l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M309 273.6l.5.5-.5-.5z"/>
+    <path fill="#395231" d="M309.5 273.6l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M310 273.6l.5.5-.5-.5z"/>
+    <path fill="#5a5231" d="M218.7 274.1l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M220.7 274.1l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M222.2 274.1l1 1-1-1z"/>
+    <path fill="#397b00" d="M222.7 274.1l.5.5-.5-.5m2.5 0l-.5 1h1l-.5-1z"/>
+    <path fill="#396b10" d="M227.2 274.1l.5.5-.5-.5z"/>
+    <path fill="#526b42" d="M228.4 274.4l.2.4-.2-.4z"/>
+    <path fill="#efefef" d="M231.3 274.1l-.6 1 .6-1z"/>
+    <path fill="#294200" d="M231.8 274.1l.4.5-.4-.5m1.6.3l.2.4-.2-.4z"/>
+    <path fill="#295200" d="M233.8 274.1l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M234.8 274.1l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M235.3 274.1l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M235.8 274.1l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M260.3 274.1l.5.5-.5-.5z"/>
+    <path fill="#31425a" d="M262.3 274.1l.5.5-.5-.5z"/>
+    <path fill="#6b0808" d="M267.5 274.4l.2.4-.2-.4z"/>
+    <path fill="#bd0008" d="M267.9 274.1l.5.5-.5-.5z"/>
+    <path fill="#00215a" d="M268.4 274.1l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M289.4 274.1l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M290 274.1l.4.5-.5-.5z"/>
+    <path fill="#dedede" d="M291 274.1l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M291.4 274.1l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M292.4 274.1l.5.5-.5-.5z"/>
+    <path fill="#314231" d="M293 274.1l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M298.4 274.1v2h.5l-.5-2z"/>
+    <path fill="#185200" d="M299.8 274.3l.3.1-.3-.1m1.6-.2l-1 1.4 1-1.4z"/>
+    <path fill="#296300" d="M302 274.1l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M305 274.1l-1 2.4h.4l.6-2.4z"/>
+    <path fill="#63636b" d="M305.4 274.1l.6.5-.6-.5z"/>
+    <path fill="#9c9494" d="M307 274.1l.4.5-.4-.5z"/>
+    <path fill="#425242" d="M307.4 274.1l.6.5-.6-.5z"/>
+    <path fill="#185200" d="M308 274.1l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M308.5 274.1l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M310 274.1l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M310.5 274.1l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M218.7 274.6l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M221 274.8l.4.1-.3-.1z"/>
+    <path fill="#526b42" d="M227.2 274.6l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M229 274.8l.4.1-.3-.1z"/>
+    <path fill="#314231" d="M230.3 274.6l.4.5-.4-.5z"/>
+    <path fill="#8c8c8c" d="M231.3 274.6l-.6 1 .6-1z"/>
+    <path fill="#397b00" d="M232.8 274.6v1.4l1.5-1.4h-1.5z"/>
+    <path fill="#5a6b52" d="M234.3 274.6l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M234.8 274.6l.5.5-.5-.5z"/>
+    <path fill="#525a6b" d="M256.3 274.6l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M260.2 274.8l.3.1-.3-.1z"/>
+    <path fill="#7b7373" d="M262.3 274.6l.5.5-.5-.5z"/>
+    <path fill="#de2110" d="M268 275l.2.2-.2-.3z"/>
+    <path fill="#390821" d="M268.4 274.6l.5.5-.5-.5z"/>
+    <path fill="#00215a" d="M283.4 274.6l.5.5-.5-.5z"/>
+    <path fill="#292921" d="M290 274.6l.4.5-.5-.5z"/>
+    <path fill="#315221" d="M291.4 274.6l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M292.4 274.6l.5.5-.5-.5z"/>
+    <path fill="#001000" d="M293 274.6l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M293.4 274.6l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M295.3 274.8l.3.1-.4-.1z"/>
+    <path fill="#185200" d="M296.4 274.6l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M299.4 274.6l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M305 274.6l.4.5-.4-.5z"/>
+    <path fill="#efefef" d="M305.4 274.6l.6.5-.6-.5z"/>
+    <path fill="#8c8c8c" d="M306 274.6l.4.5-.4-.5z"/>
+    <path fill="#315221" d="M306.4 274.6l.6.5-.6-.5z"/>
+    <path fill="#297b00" d="M307 274.6l.4.5-.4-.5z"/>
+    <path fill="#314231" d="M310.5 274.6l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M218.7 275l.5.6-.5-.5z"/>
+    <path fill="#295200" d="M219.2 275l.5.6-.5-.5z"/>
+    <path fill="#103900" d="M221.2 275l.5.6-.5-.5z"/>
+    <path fill="#294200" d="M222.7 275l.5.6-.5-.5z"/>
+    <path fill="#295200" d="M224.7 275l.5.6-.5-.5z"/>
+    <path fill="#6b735a" d="M227.2 275l.5.6-.5-.5z"/>
+    <path fill="#7b7373" d="M228.2 275l.5.6-.5-.5z"/>
+    <path fill="#294200" d="M229.4 275.4l.2.3-.2-.3z"/>
+    <path fill="#315221" d="M231.3 275l.4.6-.4-.5z"/>
+    <path fill="#103900" d="M232.8 275l.5.6-.5-.5z"/>
+    <path fill="#63636b" d="M233.8 275l-.5 1 .5-1z"/>
+    <path fill="#292921" d="M234.8 275l.5.6-.5-.5z"/>
+    <path fill="#dedede" d="M235.3 275l.5.6-.5-.5z"/>
+    <path fill="#733939" d="M240.8 275l.5.6-.5-.5z"/>
+    <path fill="#bd2110" d="M245.8 275l.5.6-.5-.5z"/>
+    <path fill="#8c8c8c" d="M256.3 275l.5.6-.5-.5z"/>
+    <path fill="#002984" d="M261.8 275l.5.6-.5-.5z"/>
+    <path fill="#9c9494" d="M262.3 275l.5.6-.5-.5z"/>
+    <path fill="#b51010" d="M266.9 275l.5.6-.5-.5z"/>
+    <path fill="#520808" d="M267.4 275l.5.6-.5-.5z"/>
+    <path fill="#7b0008" d="M268.4 275l.5.6-.5-.5z"/>
+    <path fill="#636b7b" d="M272.9 275l.5.6-.5-.5z"/>
+    <path fill="#002984" d="M283.6 275.4l.1.3-.1-.3z"/>
+    <path fill="#001000" d="M290 275l.4.6-.5-.5z"/>
+    <path fill="#dedede" d="M290.4 275l.5.6-.5-.5z"/>
+    <path fill="#6b735a" d="M291.4 275l.5.6-.5-.5z"/>
+    <path fill="#185200" d="M293.3 275.2l.3.2-.4-.2z"/>
+    <path fill="#103900" d="M295.4 275l.5.6-.5-.5z"/>
+    <path fill="#297b00" d="M297 275l.4.6-.5-.5z"/>
+    <path fill="#293129" d="M304.4 275l.6.6-.6-.5z"/>
+    <path fill="#7b7373" d="M305 275l.4.6-.4-.5z"/>
+    <path fill="#214210" d="M305.4 275l.6.6-.6-.5z"/>
+    <path fill="#297b00" d="M306 275l.4.6-.4-.5z"/>
+    <path fill="#185200" d="M310.5 275l.5.6-.5-.5z"/>
+    <path fill="#cecece" d="M311 275l.5.6-.5-.5z"/>
+    <path fill="#314231" d="M219.2 275.6l.5.4-.5-.4z"/>
+    <path fill="#295200" d="M221.2 275.6l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M222.7 275.6l.5.4-.5-.4z"/>
+    <path fill="#295200" d="M223.2 275.6l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M224.7 275.6l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M227.4 275.9l.2.3-.2-.3m.8-.3l.6.4-.6-.4z"/>
+    <path fill="#294200" d="M230.8 275.6l.4.4-.4-.4z"/>
+    <path fill="#397b00" d="M231.3 275.6l-.6 2.3h.6v-2.3z"/>
+    <path fill="#294200" d="M232.4 275.9l.2.3-.2-.3z"/>
+    <path fill="#bdbdbd" d="M234.3 275.6l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M235 275.9l.1.3-.2-.3z"/>
+    <path fill="#bdbdbd" d="M235.3 275.6l.5.4-.5-.4m4 0l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M239.8 275.6l.5.4-.5-.4z"/>
+    <path fill="#315221" d="M240.3 275.6l.5.4-.5-.4z"/>
+    <path fill="#310000" d="M240.8 275.6l.5.4-.5-.4z"/>
+    <path fill="#a51008" d="M246.3 275.6l.5.4-.5-.4z"/>
+    <path fill="#845a52" d="M252.3 275.6l.5.4-.5-.4z"/>
+    <path fill="#dedede" d="M256.3 275.6l.5.4-.5-.4z"/>
+    <path fill="#10214a" d="M256.8 275.6l.5.4-.5-.4z"/>
+    <path fill="#00216b" d="M261.8 275.6l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M262.3 275.6l.5.4-.5-.4z"/>
+    <path fill="#a51008" d="M266.9 275.6l.5.4-.5-.4z"/>
+    <path fill="#940008" d="M267.4 275.6l1 .9-1-1z"/>
+    <path fill="#bd0008" d="M268.2 275.7l.3.2-.3-.2z"/>
+    <path fill="#00215a" d="M268.9 275.6l.5.4-.5-.4z"/>
+    <path fill="#10214a" d="M272.4 275.6l.5.4-.5-.4z"/>
+    <path fill="#cecece" d="M272.9 275.6l-.5.9.5-1z"/>
+    <path fill="#103900" d="M290 275.6l.4.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M290.4 275.6l.5.4-.5-.4z"/>
+    <path fill="#9c9494" d="M291.4 275.6l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M292 275.6l.4.4-.5-.4z"/>
+    <path fill="#103900" d="M293.4 275.6l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M295.4 275.6l.5.4-.5-.4zm5 0l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M304 275.6l.4.4-.5-.4z"/>
+    <path fill="#184a00" d="M304.4 275.6l.6.4-.6-.4z"/>
+    <path fill="#297b00" d="M305 275.6l.4.4-.4-.4m4.3.1l.3.2-.3-.2m1.2-.1l.5.4-.5-.4z"/>
+    <path fill="#7b7373" d="M311 275.6l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M219.2 276l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M219.7 276l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M221.7 276l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M223.2 276l1 1-1-1z"/>
+    <path fill="#397b00" d="M223.7 276l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M224.7 276l-.5 1.5.5-1.5z"/>
+    <path fill="#bdbdbd" d="M228.2 276l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M228.7 276l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M229.8 276l.4.5-.4-.5z"/>
+    <path fill="#738c63" d="M232.8 276l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M233.8 276l-2 2.4 2-2.4z"/>
+    <path fill="#214210" d="M234.3 276l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M235.4 276.4l.2.3-.2-.3z"/>
+    <path fill="#efefef" d="M237.3 276l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M237.8 276l.5.5-.5-.5z"/>
+    <path fill="#315221" d="M238.3 276l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M238.8 276v1.5h.5l-.5-1.5z"/>
+    <path fill="#397b00" d="M239.6 276.2l.3.2-.3-.2z"/>
+    <path fill="#214210" d="M240.3 276l.5.5-.5-.5z"/>
+    <path fill="#733939" d="M240.8 276l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M246.3 276l.5.5-.5-.5z"/>
+    <path fill="#943131" d="M252.3 276l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M256.8 276l.5.5-.5-.5z"/>
+    <path fill="#636b7b" d="M257.3 276l.5.5-.5-.5z"/>
+    <path fill="#10295a" d="M257.8 276l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M258.7 276.2l.3.2-.3-.2z"/>
+    <path fill="#001039" d="M259.3 276l.5.5-.5-.5z"/>
+    <path fill="#00215a" d="M261.8 276l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M262.3 276l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M266.9 276l.5.5-.5-.5z"/>
+    <path fill="#bd0008" d="M267.4 276l.5.5-.5-.5z"/>
+    <path fill="#de2110" d="M268.4 276l2 5.3-2-5.3z"/>
+    <path fill="#391810" d="M268.9 276l.5.5-.5-.5z"/>
+    <path fill="#636b7b" d="M269.4 276l.5.5-.5-.5z"/>
+    <path fill="#21315a" d="M269.9 276l.5.5-.5-.5z"/>
+    <path fill="#525a6b" d="M271.9 276l.5.5-.5-.5z"/>
+    <path fill="#9c4a42" d="M276.9 276l.5.5-.5-.5z"/>
+    <path fill="#ce1810" d="M282.9 276l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M290 276.4l.2.3-.1-.3z"/>
+    <path fill="#395231" d="M290.4 276l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M291.4 276l-.5 1 .5-1z"/>
+    <path fill="#296300" d="M292 276l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M293.4 276l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M295.4 276l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M300 276l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M303.1 276.4l.2.3-.2-.3z"/>
+    <path fill="#103900" d="M303.4 276l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M308 276l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M308.5 276l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M309 276l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M309.5 276l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M310 276l1 1-1-1z"/>
+    <path fill="#315221" d="M311 276l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M219.7 276.5l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M220.2 276.5l1 1-1-1m1.5 0l1.5 1v-.5l-1.5-.5z"/>
+    <path fill="#294200" d="M222.2 276.5l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M224.2 276.5l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M227.2 276.5l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M228.2 276.5l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M228.7 276.5l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M229.8 276.5v1.4h.4l-.4-1.4z"/>
+    <path fill="#295200" d="M231.8 276.5l.4.5-.4-.5z"/>
+    <path fill="#396b10" d="M232.3 276.5l.4.5-.4-.5z"/>
+    <path fill="#efefef" d="M232.8 276.5l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M233.8 276.5l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M234.8 276.5l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M236.3 276.5l-.5 1 .5-1z"/>
+    <path fill="#63636b" d="M236.8 276.5l.5.5-.5-.5z"/>
+    <path fill="#396b10" d="M237.3 276.5l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M239.8 276.5l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M240.3 276.5l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M246.3 276.5l.5.5-.5-.5z"/>
+    <path fill="#a51008" d="M252.3 276.5l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M259.3 276.5l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M259.8 276.5l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M261.8 276.5l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M263.8 276.5l.5.5-.5-.5z"/>
+    <path fill="#a51008" d="M266.9 276.5l.5.5-.5-.5z"/>
+    <path fill="#6b0808" d="M268 276.8l.2.3-.2-.3z"/>
+    <path fill="#7b0008" d="M268.9 276.5l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M269.4 276.5l.5.5-.5-.5z"/>
+    <path fill="#ad3931" d="M276.9 276.5l.5.5-.5-.5z"/>
+    <path fill="#842118" d="M282.9 276.5l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M290.4 276.5l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M292 276.5l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M293.8 276.7l.3.1-.4-.1z"/>
+    <path fill="#185200" d="M297 276.5l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M302 276.5l1 1-1-1z"/>
+    <path fill="#103900" d="M302.4 276.5l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M307 276.5l.4.5-.4-.5z"/>
+    <path fill="#425242" d="M307.4 276.5l.6.5-.6-.5z"/>
+    <path fill="#bdbdbd" d="M308 276.5l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M310 276.5l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M311 276.5l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M311.5 276.5l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M315 276.5l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M315.6 276.8l.2.3-.2-.3z"/>
+    <path fill="#63636b" d="M220.2 277l.5.5-.5-.5z"/>
+    <path fill="#001000" d="M224.7 277l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M226.7 277l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M227.2 277l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M228.7 277l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M231.8 277l.4.5-.4-.5z"/>
+    <path fill="#bdc6ad" d="M232.3 277l.4.5-.4-.5z"/>
+    <path fill="#214210" d="M233.3 277l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M234.3 277l.5.5-.5-.5z"/>
+    <path fill="#526b42" d="M235.4 277.3l.2.3-.2-.3z"/>
+    <path fill="#314231" d="M236.3 277l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M239.3 277l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M239.8 277l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M246.3 277l.5.5-.5-.5z"/>
+    <path fill="#ce1810" d="M252.3 277l.5.5-.5-.5z"/>
+    <path fill="#a59494" d="M252.8 277l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M259.3 277l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M259.8 277l.5.5-.5-.5z"/>
+    <path fill="#10295a" d="M261.8 277l.5.5-.5-.5z"/>
+    <path fill="#c6b5b5" d="M263.8 277l.5.5-.5-.5z"/>
+    <path fill="#ce1810" d="M264.5 277.3l.2.3-.2-.3z"/>
+    <path fill="#bd0008" d="M268.9 277l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M269.4 277l.5.5-.5-.5z"/>
+    <path fill="#debdb5" d="M276.4 277l.5.5-.5-.5z"/>
+    <path fill="#ce1810" d="M276.9 277l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M282.9 277l.5.5-.5-.5z"/>
+    <path fill="#5a7b42" d="M290 277l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M290.4 277l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M291 277l.4.5-.5-.5z"/>
+    <path fill="#315221" d="M292 277l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M293.4 277l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M294 277v1.4h.4l-.5-1.4z"/>
+    <path fill="#185200" d="M296 277.3l.3.3-.2-.3z"/>
+    <path fill="#296300" d="M297 277l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M299 277l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M301.4 277l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M302 277l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M306 277l.4.5-.4-.5z"/>
+    <path fill="#395231" d="M306.4 277l.6.5-.6-.5z"/>
+    <path fill="#bdbdbd" d="M307 277l.4.5-.4-.5z"/>
+    <path fill="#63636b" d="M310.5 277l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M311 277l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M311.5 277l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M313.5 277l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M314 277l.5.5-.5-.5z"/>
+    <path fill="#314231" d="M314.5 277l.5.5-.5-.5z"/>
+    <path fill="#001000" d="M315 277l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M220.7 277.5l.5.4-.5-.4z"/>
+    <path fill="#214210" d="M221.2 277.5l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M224.7 277.5l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M225.4 277.8l.2.3-.2-.3z"/>
+    <path fill="#8c8c8c" d="M227.2 277.5l.5.4-.5-.4z"/>
+    <path fill="#5a5231" d="M228.7 277.5l.5.4-.5-.4z"/>
+    <path fill="#295200" d="M231.3 277.5l-.6 1 .6-1z"/>
+    <path fill="#425242" d="M231.8 277.5l.4.4-.4-.4z"/>
+    <path fill="#214210" d="M232.8 277.5l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M234.3 277.5l.5.4-.5-.4z"/>
+    <path fill="#425242" d="M235.8 277.5l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M238.3 277.5l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M238.8 277.5l.5.4-.5-.4z"/>
+    <path fill="#6b735a" d="M239.8 277.5l.5.4-.5-.4z"/>
+    <path fill="#a51008" d="M246.8 277.5l.5.4-.5-.4z"/>
+    <path fill="#842118" d="M252.8 277.5l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M259.3 277.5l.5.4-.5-.4z"/>
+    <path fill="#42425a" d="M261.8 277.5v3.8h.5l-.5-3.8z"/>
+    <path fill="#bdbdbd" d="M263.8 277.5l.5.4-.5-.4z"/>
+    <path fill="#a51008" d="M266.9 277.5l.5.4-.5-.4z"/>
+    <path fill="#ad0008" d="M268.4 277.5l.5.4-.5-.4z"/>
+    <path fill="#733939" d="M269.4 277.5l.5.4-.5-.4z"/>
+    <path fill="#9c4239" d="M276.4 277.5l.5.4-.5-.4z"/>
+    <path fill="#ce1810" d="M282.4 277.5l.5.4-.5-.4z"/>
+    <path fill="#7b7373" d="M288.9 277.5l1 1-1-1z"/>
+    <path fill="#4a6342" d="M290 277.8l.2.3-.1-.3z"/>
+    <path fill="#314231" d="M291 277.5l.4.4-.5-.4z"/>
+    <path fill="#4a6342" d="M292 277.5l.4.4-.5-.4z"/>
+    <path fill="#296300" d="M298.4 277.5l.5.4-.5-.4z"/>
+    <path fill="#185200" d="M299 277.5l.4.4-.5-.4z"/>
+    <path fill="#103900" d="M301 277.5l.4.4-.5-.4z"/>
+    <path fill="#296300" d="M301.4 277.5l.5.4-.5-.4m3.6 0l.4.4-.4-.4z"/>
+    <path fill="#294221" d="M305.4 277.5l.6.4-.6-.4z"/>
+    <path fill="#9c9494" d="M306 277.5l.4.4-.4-.4z"/>
+    <path fill="#7b7373" d="M311 277.5l.5.4-.5-.4z"/>
+    <path fill="#52525a" d="M311.5 277.5l.5.4-.5-.4z"/>
+    <path fill="#cecece" d="M312 277.5l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M312.5 277.5l.5.4-.5-.4z"/>
+    <path fill="#314231" d="M313 277.5l.5.4-.5-.4z"/>
+    <path fill="#185200" d="M313.6 277.8l.2.3-.2-.3z"/>
+    <path fill="#296300" d="M314 277.5l.5.4-.5-.4z"/>
+    <path fill="#294221" d="M314.5 277.5l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M315 277.5l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M221.2 278l.5.4-.5-.5z"/>
+    <path fill="#8c8c8c" d="M221.7 278l.5.4-.5-.5z"/>
+    <path fill="#5a5231" d="M222.2 278l.5.4-.5-.5z"/>
+    <path fill="#295200" d="M222.7 278l.5.4-.5-.5z"/>
+    <path fill="#5a6b52" d="M227.2 278l.5.4-.5-.5z"/>
+    <path fill="#526b42" d="M228.7 278l.5.4-.5-.5z"/>
+    <path fill="#213918" d="M231.3 278l.4.4-.4-.5z"/>
+    <path fill="#315221" d="M232.3 278l.4.4-.4-.5z"/>
+    <path fill="#295200" d="M233.8 278l.5.4-.5-.5z"/>
+    <path fill="#397b00" d="M234.3 278l.5.4-.5-.5z"/>
+    <path fill="#292100" d="M235.3 278l.5.4-.5-.5z"/>
+    <path fill="#397b00" d="M235.8 278l.5.4-.5-.5z"/>
+    <path fill="#295200" d="M237.8 278l.5.4-.5-.5z"/>
+    <path fill="#397b00" d="M238.3 278l.5.4-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M239.8 278l.5.4-.5-.5z"/>
+    <path fill="#ad1810" d="M246.8 278l.5.4-.5-.5z"/>
+    <path fill="#ce1810" d="M252.8 278l.5.4-.5-.5z"/>
+    <path fill="#8c8c8c" d="M253.3 278l.5.4-.5-.5z"/>
+    <path fill="#7b7373" d="M259.3 278l.5.4-.5-.5z"/>
+    <path fill="#efefef" d="M263.8 278l.5.4-.5-.5z"/>
+    <path fill="#b51010" d="M264.3 278l.5.4-.5-.5z"/>
+    <path fill="#ad0008" d="M267.4 278l.5.4-.5-.5z"/>
+    <path fill="#bd0008" d="M267.9 278l.5.4-.5-.5z"/>
+    <path fill="#7b0008" d="M268.4 278l.5.4-.5-.5z"/>
+    <path fill="#940008" d="M269.4 278l.5.4-.5-.5z"/>
+    <path fill="#dedede" d="M269.9 278l.5.4-.5-.5z"/>
+    <path fill="#a5847b" d="M275.9 278l-.5.9.5-1z"/>
+    <path fill="#ce1810" d="M276.4 278l.5.4-.5-.5z"/>
+    <path fill="#392121" d="M282.4 278l.5.4-.5-.5z"/>
+    <path fill="#103910" d="M288.9 278l.5.4-.5-.5z"/>
+    <path fill="#185200" d="M291 278l.4.4-.5-.5z"/>
+    <path fill="#efefef" d="M291.4 278l.5.4-.5-.5z"/>
+    <path fill="#6b735a" d="M292 278l.4.4-.5-.5z"/>
+    <path fill="#184a00" d="M296 278.3l.3.3-.2-.3z"/>
+    <path fill="#297b00" d="M298 278l1 .9-1-1z"/>
+    <path fill="#103900" d="M298.4 278l.5.4-.5-.5m2 0l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M304 278l.4.4-.5-.5z"/>
+    <path fill="#214210" d="M304.4 278l.6.4-.6-.5z"/>
+    <path fill="#9c9494" d="M305 278l.4.4-.4-.5z"/>
+    <path fill="#bdbdbd" d="M309.3 278.1l.3.2-.3-.2z"/>
+    <path fill="#8c8c8c" d="M310 278l.5.4-.5-.5z"/>
+    <path fill="#6b735a" d="M310.5 278l.5.4-.5-.5z"/>
+    <path fill="#4a6342" d="M311 278l.5.4-.5-.5z"/>
+    <path fill="#184a00" d="M311.5 278l.5.4-.5-.5z"/>
+    <path fill="#296300" d="M312 278l.5.4-.5-.5z"/>
+    <path fill="#297b00" d="M312.5 278l-.5.9.5-1z"/>
+    <path fill="#319400" d="M313 278l.5.4-.5-.5z"/>
+    <path fill="#7b7373" d="M314 278l.5.4-.5-.5z"/>
+    <path fill="#efefef" d="M314.5 278l.5.4-.5-.5z"/>
+    <path fill="#dedede" d="M222.7 278.4l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M223.2 278.4l.5.5-.5-.5z"/>
+    <path fill="#5a5231" d="M223.7 278.4l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M224.2 278.4l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#315221" d="M227.2 278.4l.5.5-.5-.5z"/>
+    <path fill="#292100" d="M230.8 278.4l.4.5-.4-.5z"/>
+    <path fill="#8c8c8c" d="M231.3 278.4l.4.5-.4-.5z"/>
+    <path fill="#63636b" d="M231.8 278.4l.4.5-.4-.5z"/>
+    <path fill="#294200" d="M233.8 278.4l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M237.3 278.4l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M237.8 278.4l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M247.3 278.4l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M253.3 278.4l1 1-1-1z"/>
+    <path fill="#a59494" d="M253.8 278.4l.5.5-.5-.5z"/>
+    <path fill="#a51008" d="M264.3 278.4l.5.5-.5-.5z"/>
+    <path fill="#de2110" d="M267.9 278.4v6.7h1.5l-1.5-6.7z"/>
+    <path fill="#6b0808" d="M268.5 278.7l.2.4-.2-.4z"/>
+    <path fill="#ce0008" d="M269.4 278.4l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M269.9 278.4l.5.5-.5-.5z"/>
+    <path fill="#ce1810" d="M275.9 278.4l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M281.9 278.4l.5.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M288.9 278.4l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M289.4 278.4l.5.5-.5-.5z"/>
+    <path fill="#103910" d="M290 278.4l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M291 278.4l.4.5-.5-.5z"/>
+    <path fill="#9c9494" d="M291.4 278.4l.5.5-.5-.5z"/>
+    <path fill="#8c9c84" d="M292 278.7l.2.4-.1-.4z"/>
+    <path fill="#296300" d="M294 278.4l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M294.4 278.4l-.5 1 .5-1z"/>
+    <path fill="#185200" d="M298 278.4l.4.5-.5-.5m1.5 0l-1.5 2 1.5-2z"/>
+    <path fill="#184a00" d="M300 278.4l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M303 278.4l.4.5-.5-.5z"/>
+    <path fill="#214210" d="M303.4 278.4l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M304 278.4l.4.5-.5-.5z"/>
+    <path fill="#cecece" d="M304.4 278.4l.6.5-.6-.5z"/>
+    <path fill="#bdbdbd" d="M305 278.4l.4.5-.4-.5z"/>
+    <path fill="#8c8c8c" d="M305.8 278.6l.3.1-.3-.1z"/>
+    <path fill="#6b735a" d="M306.4 278.4l.6.5-.6-.5z"/>
+    <path fill="#4a6342" d="M307 278.4l.4.5-.4-.5z"/>
+    <path fill="#426331" d="M307.4 278.4l.6.5-.6-.5z"/>
+    <path fill="#184a00" d="M308 278.4l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M308.5 278.4l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M309.3 278.6l.3.1-.3-.1z"/>
+    <path fill="#184a00" d="M312.5 278.4l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M313 278.4l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M313.5 278.4l.5.5-.5-.5m-89.3.5l.5.5-.5-.5z"/>
+    <path fill="#52525a" d="M224.7 278.9l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M225.2 278.9l.5.5-.5-.5z"/>
+    <path fill="#422100" d="M225.7 278.9l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M226.2 278.9l1 1-1-1z"/>
+    <path fill="#397b00" d="M227.2 278.9l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M227.7 278.9l.5.5-.5-.5z"/>
+    <path fill="#293129" d="M230.8 278.9l.4.5-.4-.5z"/>
+    <path fill="#dedede" d="M231.3 278.9l.4.5-.4-.5z"/>
+    <path fill="#295200" d="M231.8 278.9l.4.5-.4-.5z"/>
+    <path fill="#103900" d="M233.3 278.9l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M235.3 278.9l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M237.3 278.9l.5.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M239.3 278.9l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M247.3 278.9l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M247.8 278.9l1 1.4-1-1.4z"/>
+    <path fill="#8c7373" d="M254.3 278.9l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M254.8 278.9l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M264.3 278.9l.5.5-.5-.5z"/>
+    <path fill="#a51008" d="M267.5 279.2l.2.3-.2-.3z"/>
+    <path fill="#6b2131" d="M269.9 278.9l.5.5-.5-.5z"/>
+    <path fill="#946b63" d="M274.9 278.9l.5.5-.5-.5z"/>
+    <path fill="#ce1810" d="M275.4 278.9l.5.5-.5-.5m6 0l-.5 1 .5-1z"/>
+    <path fill="#00216b" d="M281.9 278.9l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M288.9 278.9l.5.5-.5-.5z"/>
+    <path fill="#319400" d="M289.4 278.9l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M290 278.9l.4.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M291.4 278.9l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M294.6 279.2l.2.3-.2-.3m1.3-.3l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M302 278.9l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M302.4 278.9l.5.5-.5-.5z"/>
+    <path fill="#001000" d="M303 278.9l.4.5-.5-.5z"/>
+    <path fill="#395231" d="M303.4 278.9l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M304 278.9l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M304.4 278.9l.6.5-.6-.5z"/>
+    <path fill="#296300" d="M305 278.9l.4.5-.4-.5z"/>
+    <path fill="#297b00" d="M311 278.9l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M311.5 278.9l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M312 278.9l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M312.5 278.9l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M224.7 279.4l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M225.2 279.4l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M226.2 279.4l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M227.7 279.4l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M230.3 279.4l.4.5-.4-.5z"/>
+    <path fill="#ada5a5" d="M230.8 279.4l.4.5-.4-.5z"/>
+    <path fill="#8c8c8c" d="M231.3 279.4l.4.5-.4-.5z"/>
+    <path fill="#397b00" d="M233 279.5l.4.2-.3-.2m2 0l.3.2-.3-.2z"/>
+    <path fill="#103900" d="M236.8 279.4l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M238.8 279.4l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M239.3 279.4l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M254.8 279.4l.5.5-.5-.5z"/>
+    <path fill="#8c7373" d="M255.3 279.4l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M255.8 279.4l.5.5-.5-.5z"/>
+    <path fill="#943131" d="M264.5 279.7l.2.3-.2-.3z"/>
+    <path fill="#940008" d="M268.4 279.4l.5.5-.5-.5z"/>
+    <path fill="#ad0008" d="M268.9 279.4l.5.5-.5-.5z"/>
+    <path fill="#940008" d="M269.9 279.4l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M270.4 279.4l.5.5-.5-.5z"/>
+    <path fill="#a5847b" d="M273.9 279.4l.5.5-.5-.5z"/>
+    <path fill="#9c2118" d="M274.4 279.4l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M281.4 279.4l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M289 279.7l.2.3-.1-.3z"/>
+    <path fill="#297b00" d="M289.4 279.4v.5h1.5v-.5h-1.5z"/>
+    <path fill="#185200" d="M290 279.4l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M291.4 279.4l.5.5-.5-.5z"/>
+    <path fill="#395231" d="M292 279.4l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M296 279.4l.4.5-.5-.5m5.5 0l.5.5-.5-.5z"/>
+    <path fill="#082108" d="M302 279.4l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M302.4 279.4l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M310 279.4l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M310.5 279.4l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M311 279.4l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M311.5 279.4l.5.5-.5-.5z"/>
+    <path fill="#52525a" d="M224.7 279.9l.5.4-.5-.4z"/>
+    <path fill="#422100" d="M226.7 279.9l.5.4-.5-.4z"/>
+    <path fill="#295200" d="M227.7 279.9l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M228.2 279.9l.5.4-.5-.4z"/>
+    <path fill="#214210" d="M230.3 279.9l.4.4-.4-.4z"/>
+    <path fill="#314231" d="M231.3 279.9l.4.4-.4-.4z"/>
+    <path fill="#294200" d="M232.8 279.9l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M234.8 279.9l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M236.3 279.9l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M236.8 279.9l.5.4-.5-.4z"/>
+    <path fill="#396b10" d="M238.8 279.9l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M239.3 279.9l.5.4-.5-.4z"/>
+    <path fill="#a51008" d="M248.8 279.9l.5.4-.5-.4m7 0l.5.4-.5-.4z"/>
+    <path fill="#9c2929" d="M256.3 279.9l.5.4-.5-.4z"/>
+    <path fill="#845a52" d="M256.8 279.9l.5.4-.5-.4z"/>
+    <path fill="#a59494" d="M257.3 279.9l.5.4-.5-.4z"/>
+    <path fill="#c6b5b5" d="M257.8 279.9l.5.4-.5-.4z"/>
+    <path fill="#8c7373" d="M258.7 280l.3.2-.3-.2z"/>
+    <path fill="#212139" d="M259.3 279.9l.5.4-.5-.4z"/>
+    <path fill="#b51010" d="M267.4 279.9l.5.4-.5-.4z"/>
+    <path fill="#ce0008" d="M268.4 279.9l.5.4-.5-.4z"/>
+    <path fill="#6b0808" d="M268.9 279.9l.5.4-.5-.4z"/>
+    <path fill="#ce0008" d="M269.9 279.9l.5.4-.5-.4z"/>
+    <path fill="#734a42" d="M270.4 279.9l.5.4-.5-.4z"/>
+    <path fill="#946b63" d="M270.9 279.9l.5.4-.5-.4z"/>
+    <path fill="#bd8c8c" d="M271.4 279.9l.5.4-.5-.4z"/>
+    <path fill="#a5847b" d="M271.9 279.9l.5.4-.5-.4z"/>
+    <path fill="#9c5a52" d="M272.4 279.9l.5.4-.5-.4z"/>
+    <path fill="#ad3931" d="M272.9 279.9l.5.4-.5-.4z"/>
+    <path fill="#b51010" d="M273.4 279.9l.5.4-.5-.4m7 0l.5.4-.5-.4z"/>
+    <path fill="#00216b" d="M280.9 279.9l.5.4-.5-.4z"/>
+    <path fill="#296300" d="M289.4 279.9l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M290.6 280.2l.1.3-.1-.3z"/>
+    <path fill="#297b00" d="M291.4 279.9l.5.4-.5-.4z"/>
+    <path fill="#082108" d="M292 279.9l.4.4-.5-.4z"/>
+    <path fill="#184a00" d="M294.4 279.9v1.4h.5l-.5-1.4z"/>
+    <path fill="#103900" d="M301 279.9l.4.4-.5-.4z"/>
+    <path fill="#297b00" d="M308.5 279.9l.5.4-.5-.4z"/>
+    <path fill="#185200" d="M309 279.9l.5.4-.5-.4z"/>
+    <path fill="#425242" d="M309.5 279.9l.5.4-.5-.4z"/>
+    <path fill="#9c9494" d="M310 279.9l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M310.5 279.9l.5.4-.5-.4z"/>
+    <path fill="#ada5a5" d="M224.7 280.3l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M225.2 280.3l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M226.2 280.3l.5.5-.5-.5z"/>
+    <path fill="#213918" d="M226.7 280.3l.5.5-.5-.5z"/>
+    <path fill="#314231" d="M228.2 280.3l.5.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M230.3 280.3l.4.5-.4-.5z"/>
+    <path fill="#efefef" d="M230.8 280.3l.4.5-.4-.5z"/>
+    <path fill="#295200" d="M231.3 280.3l.4.5-.4-.5m1.4 0l.6.5-.6-.5m1.6 0l-1 2h.4l.6-2z"/>
+    <path fill="#397b00" d="M234.8 280.3l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M236.1 280.5l.3.1-.3-.1z"/>
+    <path fill="#397b00" d="M238.3 280.3l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M238.8 280.3l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M248.8 280.3l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M249.3 280.3l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M259.3 280.3l.5.5-.5-.5z"/>
+    <path fill="#8c6363" d="M264.3 280.3l.5.5-.5-.5z"/>
+    <path fill="#a51008" d="M267.5 280.6l.2.4-.2-.4z"/>
+    <path fill="#520808" d="M268.9 280.3l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M270.4 280.3l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M279.9 280.3l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M280.4 280.3l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M289.4 280.3l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M292 280.3l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M298 280.3l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M300 280.3l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M300.4 280.3l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M307.4 280.3l.6.5-.6-.5z"/>
+    <path fill="#214210" d="M308 280.3l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M308.5 280.3l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M309 280.3l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M225.2 280.8l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M225.7 280.8l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M226.2 280.8l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M226.7 280.8l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M227.2 280.8l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M228.2 280.8l.5.5-.5-.5z"/>
+    <path fill="#292921" d="M228.7 280.8l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M230.3 280.8l.4.5-.4-.5z"/>
+    <path fill="#bdbdbd" d="M230.8 280.8l.4.5-.4-.5z"/>
+    <path fill="#397b00" d="M231.3 280.8l.4.5-.4-.5z"/>
+    <path fill="#294200" d="M234.3 280.8l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M235.3 280.8l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M235.8 280.8l.5.5-.5-.5z"/>
+    <path fill="#314231" d="M238.3 280.8l-1 1.4 1-1.4z"/>
+    <path fill="#ad1810" d="M249.8 280.8l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M250.3 280.8l.5.5-.5-.5z"/>
+    <path fill="#a51008" d="M259.3 280.8l.5.5-.5-.5z"/>
+    <path fill="#8c7373" d="M264.3 280.8l.5.5-.5-.5z"/>
+    <path fill="#6b0808" d="M268.9 280.8l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M270.4 280.8l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M278.9 280.8l.5.5-.5-.5z"/>
+    <path fill="#291029" d="M279.4 280.8l.5.5-.5-.5z"/>
+    <path fill="#29396b" d="M288.4 280.8l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M289.4 280.8l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M290.4 280.8l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M291 280.8l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M292 280.8l.4.5-.5-.5m7.5 0l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M300 280.8l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M304 280.8l1 1-1-1z"/>
+    <path fill="#185200" d="M304.4 280.8l.6.5-.6-.5z"/>
+    <path fill="#184a00" d="M305 280.8v.5h2l-2-.5z"/>
+    <path fill="#185200" d="M307 280.8l.4.5-.4-.5z"/>
+    <path fill="#296300" d="M307.4 280.8l.6.5-.6-.5z"/>
+    <path fill="#184a00" d="M308 280.8v.5h1.5l-1.5-.5z"/>
+    <path fill="#4a6342" d="M309.5 280.8v.5h1.5l-1.5-.5z"/>
+    <path fill="#7b8c73" d="M311 280.8l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M311.5 280.8l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M312 280.8l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M225.2 281.3l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M227.2 281.3l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M228.7 281.3l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M229.8 281.3l.4.5-.4-.5z"/>
+    <path fill="#5a1008" d="M230.3 281.3l.4.5-.4-.5z"/>
+    <path fill="#733939" d="M230.8 281.3l.4.5-.4-.5z"/>
+    <path fill="#397b00" d="M234.3 281.3l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M234.8 281.3l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M238.3 281.3l-.5 1 .5-1z"/>
+    <path fill="#b51010" d="M250.8 281.3l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M251.3 281.3l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M251.8 281.3l1 1-1-1z"/>
+    <path fill="#ce1810" d="M259.3 281.3l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M259.8 281.3l.5.5-.5-.5z"/>
+    <path fill="#425a84" d="M261.8 281.3l.5.5-.5-.5z"/>
+    <path fill="#b5adad" d="M264.3 281.3l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M267.4 281.3l.5.5-.5-.5z"/>
+    <path fill="#940008" d="M269.2 281.4l.3.2-.3-.2z"/>
+    <path fill="#ad0008" d="M269.9 281.3l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M270.4 281.3l1 1-1-1z"/>
+    <path fill="#ce1810" d="M277.4 281.3l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M277.9 281.3l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M278.4 281.3l.5.5-.5-.5z"/>
+    <path fill="#42425a" d="M288.4 281.3l.5.5-.5-.5z"/>
+    <path fill="#396321" d="M289.4 281.3l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M291 281.3v1.4h.4l-.5-1.4z"/>
+    <path fill="#296300" d="M292 281.3l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M292.4 281.3l-.5 1 .5-1z"/>
+    <path fill="#296300" d="M294.4 281.3v2.4h1l-1-2.4z"/>
+    <path fill="#297b00" d="M295 281.3l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M299 281.3l-1 1.4 1-1.4z"/>
+    <path fill="#297b00" d="M299.4 281.3l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M303.1 281.6l.2.3-.2-.3z"/>
+    <path fill="#103900" d="M303.4 281.3l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M304 281.3l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M311 281.3l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M311.5 281.3l.5.5-.5-.5z"/>
+    <path fill="#313931" d="M312 281.3l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M225.2 281.8l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M225.7 281.8l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M226.2 281.8l.5.4-.5-.4z"/>
+    <path fill="#cecece" d="M227.2 281.8l.5.4-.5-.4z"/>
+    <path fill="#295200" d="M227.7 281.8l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M229.4 282l.2.4-.2-.3z"/>
+    <path fill="#7b1008" d="M229.8 281.8l.4.4-.4-.4z"/>
+    <path fill="#de2110" d="M230.4 282l.2.4-.2-.3z"/>
+    <path fill="#631808" d="M231 282v.4-.3z"/>
+    <path fill="#294200" d="M232.8 281.8l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M236.8 281.8l.5.4-.5-.4z"/>
+    <path fill="#946b63" d="M240.8 281.8l.5.4-.5-.4z"/>
+    <path fill="#bd2110" d="M251.8 281.8l.5.4-.5-.4z"/>
+    <path fill="#941808" d="M252.8 281.8l.5.4-.5-.4z"/>
+    <path fill="#ad1810" d="M253.3 281.8l.5.4-.5-.4z"/>
+    <path fill="#a51008" d="M253.8 281.8l.5.4-.5-.4z"/>
+    <path fill="#ce1810" d="M254.3 281.8v.4h4l-4-.4z"/>
+    <path fill="#941808" d="M258.3 281.8l.5.4-.5-.4z"/>
+    <path fill="#a51008" d="M258.8 281.8l.5.4-.5-.4z"/>
+    <path fill="#ad1810" d="M259.3 281.8l.5.4-.5-.4z"/>
+    <path fill="#00184a" d="M259.8 281.8l.5.4-.5-.4m2.2.3l.2.3-.2-.3z"/>
+    <path fill="#bdbdbd" d="M264.3 281.8l.5.4-.5-.4z"/>
+    <path fill="#ce1810" d="M265 282l.2.4-.2-.3z"/>
+    <path fill="#000818" d="M269.4 281.8l.5.4-.5-.4z"/>
+    <path fill="#00184a" d="M269.9 281.8l.5.4-.5-.4z"/>
+    <path fill="#080829" d="M270.4 281.8l.5.4-.5-.4z"/>
+    <path fill="#ce1810" d="M271.4 281.8l.5.4-.5-.4z"/>
+    <path fill="#b51010" d="M275.4 281.8l.5.4-.5-.4z"/>
+    <path fill="#ad1810" d="M275.9 281.8l.5.4-.5-.4z"/>
+    <path fill="#5a1021" d="M276.4 281.8l.5.4-.5-.4z"/>
+    <path fill="#00215a" d="M276.9 281.8l.5.4-.5-.4z"/>
+    <path fill="#292921" d="M288.4 281.8l.5.4-.5-.4z"/>
+    <path fill="#5a7b42" d="M289.4 281.8l.5.4-.5-.4z"/>
+    <path fill="#185200" d="M292.4 281.8l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M299 281.8l.4.4-.5-.4m2.5 0l1 .9-1-1z"/>
+    <path fill="#185200" d="M302 281.8l.4.4-.5-.4z"/>
+    <path fill="#103900" d="M302.4 281.8l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M308.5 281.8l.5.4-.5-.4z"/>
+    <path fill="#296300" d="M309 281.8l.5.4-.5-.4z"/>
+    <path fill="#185200" d="M309.5 281.8l.5.4-.5-.4z"/>
+    <path fill="#395231" d="M310 281.8l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M310.5 281.8l.5.4-.5-.4z"/>
+    <path fill="#9c9494" d="M311 281.8l.5.4-.5-.4z"/>
+    <path fill="#dedede" d="M311.5 281.8l.5.4-.5-.4z"/>
+    <path fill="#9c9494" d="M225.2 282.2l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M225.7 282.2l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M226.2 282.2l.5.5-.5-.5z"/>
+    <path fill="#6b735a" d="M226.7 282.2l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M227.2 282.2l.5.5-.5-.5z"/>
+    <path fill="#5a5231" d="M227.7 282.2l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M229.8 282.2l.4.5-.4-.5z"/>
+    <path fill="#397b00" d="M232.6 282.4l.3.2-.3-.2z"/>
+    <path fill="#396b10" d="M236.3 282.2l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M254.3 282.2l.5.5-.5-.5zm3.5 0l.5.5-.5-.5z"/>
+    <path fill="#391810" d="M259.8 282.2l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M264.3 282.2l.5.5-.5-.5z"/>
+    <path fill="#291029" d="M269.4 282.2l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M271.9 282.2v.5h3.5l-3.5-.5z"/>
+    <path fill="#082108" d="M288.4 282.2l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M288.9 282.2l.5.5-.5-.5z"/>
+    <path fill="#4a6342" d="M289.6 282.6l.1.3-.1-.3z"/>
+    <path fill="#184a00" d="M292.6 282.6l.1.3-.1-.3z"/>
+    <path fill="#297b00" d="M298.4 282.2l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M301 282.2l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M301.4 282.2l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M306 282.2l.4.5-.4-.5z"/>
+    <path fill="#296300" d="M306.4 282.2l.6.5-.6-.5z"/>
+    <path fill="#184a00" d="M307 282.2l.4.5-.4-.5z"/>
+    <path fill="#4a6342" d="M307.4 282.2l.6.5-.6-.5z"/>
+    <path fill="#8c8c8c" d="M308 282.2l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M308.5 282.2l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M309 282.2l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M225.2 282.7l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M225.7 282.7l.5.5-.5-.5z"/>
+    <path fill="#292100" d="M226.2 282.7l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M226.7 282.7l1 1v-1h-1z"/>
+    <path fill="#292100" d="M227.7 282.7l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M228.2 282.7l.5.5-.5-.5z"/>
+    <path fill="#392100" d="M229.8 282.7l.4.5-.4-.5z"/>
+    <path fill="#b51010" d="M230.3 282.7l.4.5-.4-.5z"/>
+    <path fill="#5a2908" d="M230.8 282.7l.4.5-.4-.5z"/>
+    <path fill="#294200" d="M232.3 282.7l.4.5-.4-.5z"/>
+    <path fill="#214210" d="M235.3 282.7l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M235.8 282.7l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M236.3 282.7l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M259.8 282.7l.5.5-.5-.5z"/>
+    <path fill="#00215a" d="M260.3 282.7l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M262.3 282.7l.5.5-.5-.5z"/>
+    <path fill="#a51008" d="M264.8 282.7l.5.5-.5-.5z"/>
+    <path fill="#390821" d="M269.4 282.7l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M288.4 282.7l1 1-1-1z"/>
+    <path fill="#5a6b52" d="M288.9 282.7l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M291 282.7l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M291.4 282.7l-.5 1 .5-1z"/>
+    <path fill="#185200" d="M297 284.1l1.4-1.4-1.5 1.4z"/>
+    <path fill="#297b00" d="M300 282.7l1 1-1-1z"/>
+    <path fill="#103900" d="M300.4 282.7l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M301 282.7l.4.5-.5-.5m4 0l.6.5-.6-.5z"/>
+    <path fill="#315221" d="M305.4 282.7l.6.5-.6-.5z"/>
+    <path fill="#8c8c8c" d="M306 282.7l.4.5-.4-.5z"/>
+    <path fill="#bdbdbd" d="M306.4 282.7l.6.5-.6-.5z"/>
+    <path fill="#dedede" d="M219.7 283.2l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M220.2 283.2l.5.5-.5-.5z"/>
+    <path fill="#315221" d="M225.7 283.2l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M226.7 283.2l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M228.2 283.2l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M228.7 283.2l.5 1.4h.5l-1-1.4z"/>
+    <path fill="#397b00" d="M230.3 283.2l.4.5-.4-.5z"/>
+    <path fill="#103900" d="M230.8 283.2l.4.5-.4-.5z"/>
+    <path fill="#397b00" d="M232 283.3l.4.2-.3-.2m1.7-.1l.5.5-.5-.5z"/>
+    <path fill="#315221" d="M234.3 283.2l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M234.8 283.2l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M235.3 283.2l.5.5-.5-.5z"/>
+    <path fill="#391810" d="M260.3 283.2l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M261.8 283.2l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M262.3 283.2l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M264.8 283.2l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M267.4 283.2l.5.5-.5-.5z"/>
+    <path fill="#6b0808" d="M269.4 283.2l.5.5-.5-.5z"/>
+    <path fill="#395231" d="M289.4 283.2l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M291.4 283.2l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M292.4 283.2l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M293 283.2l-.6 1 .5-1z"/>
+    <path fill="#296300" d="M299.4 283.2l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M300 283.2l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M304 283.2l.4.5-.5-.5z"/>
+    <path fill="#425242" d="M304.4 283.2l.6.5-.6-.5z"/>
+    <path fill="#9c9494" d="M305 283.2l.4.5-.4-.5z"/>
+    <path fill="#8c8c8c" d="M219.7 283.7l.5.4-.5-.4z"/>
+    <path fill="#293129" d="M220.2 283.7l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M220.7 283.7l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M221.2 283.7l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M221.7 283.7l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M225.7 283.7l.5.4-.5-.4z"/>
+    <path fill="#295200" d="M227.2 283.7l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M227.7 283.7l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M228.7 283.7l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M231.8 283.7l.4.4-.4-.4z"/>
+    <path fill="#295200" d="M233.3 283.7l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M233.8 283.7l.5.4-.5-.4z"/>
+    <path fill="#9c9494" d="M234.8 283.7l.5.4-.5-.4z"/>
+    <path fill="#314231" d="M235.3 283.7l.5.4-.5-.4z"/>
+    <path fill="#dedede" d="M239.3 283.7l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M239.8 283.7l.5.4-.5-.4z"/>
+    <path fill="#bd2110" d="M242.8 283.7l.5.4-.5-.4z"/>
+    <path fill="#10214a" d="M260.8 283.7l.5.4-.5-.4z"/>
+    <path fill="#9c9494" d="M262.3 283.7l.5.4-.5-.4z"/>
+    <path fill="#943131" d="M265 284l.2.3-.2-.3z"/>
+    <path fill="#a51008" d="M267.4 283.7l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M288.9 283.7l.5.4-.5-.4z"/>
+    <path fill="#082108" d="M289.4 283.7l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M291.6 284l.1.3-.1-.3z"/>
+    <path fill="#296300" d="M293 283.7l.4.4-.5-.4z"/>
+    <path fill="#297b00" d="M294.8 283.8l.3.2-.4-.2m1.7-.1l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M299 283.7l.4.4-.5-.4z"/>
+    <path fill="#185200" d="M299.4 283.7l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M303 283.7l.4.4-.5-.4z"/>
+    <path fill="#294221" d="M303.4 283.7l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M304 283.7l.4.4-.5-.4z"/>
+    <path fill="#cecece" d="M219.7 284.1l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M220.2 284.1l.5.5-.5-.5zm1.5 0l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M222.6 284.3l.3.2-.3-.2z"/>
+    <path fill="#526b42" d="M223.2 284.1l.5.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M223.7 284.1l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M224.2 284.1l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M224.7 284.1l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M225.2 284.1l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M225.7 284.1l.5.5-.5-.5z"/>
+    <path fill="#315221" d="M226.2 284.1l-.5 1 .5-1z"/>
+    <path fill="#397b00" d="M227.7 284.1l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M228.2 284.1l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M231.8 284.1l.4.5-.4-.5z"/>
+    <path fill="#397b00" d="M232.8 284.1l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M233.3 284.1l.5.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M234.8 284.1l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M235.3 284.1v2h.5l-.5-2z"/>
+    <path fill="#63636b" d="M235.8 284.1l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M239.3 284.1l.5.5-.5-.5z"/>
+    <path fill="#213918" d="M239.8 284.1l1 1-1-1z"/>
+    <path fill="#cecece" d="M240.3 284.1l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M242.3 284.1l-1 1.5 1-1.5z"/>
+    <path fill="#181000" d="M242.8 284.1l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M260.8 284.1l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M261.3 284.1l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M262.3 284.1l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M267.4 284.1l.5.5-.5-.5z"/>
+    <path fill="#319400" d="M288.9 284.1v1.5h.5l-.5-1.5z"/>
+    <path fill="#103900" d="M289.4 284.1l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M293 284.5l.2.3-.1-.3z"/>
+    <path fill="#297b00" d="M297 285.6l2.4-1.5-2.5 1.5z"/>
+    <path fill="#103900" d="M298.4 284.1l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M302.4 284.1l.5.5-.5-.5z"/>
+    <path fill="#52525a" d="M303 284.1l.4.5-.5-.5z"/>
+    <path fill="#efefef" d="M303.4 284.1l.5.5-.5-.5z"/>
+    <path fill="#315221" d="M220.2 284.6l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M224.7 284.6l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M225.2 284.6l.5.5-.5-.5z"/>
+    <path fill="#52525a" d="M226.2 284.6l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M226.7 284.6l1.5 1.4-1.5-1.4z"/>
+    <path fill="#294200" d="M228.7 284.6l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M229.8 284.6l.4.5-.4-.5z"/>
+    <path fill="#52525a" d="M232.8 284.6l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M234.3 284.6l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M234.8 284.6l.5.5-.5-.5z"/>
+    <path fill="#428c00" d="M235.3 284.6l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M236.3 284.6l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M239.3 284.6l.5.5-.5-.5z"/>
+    <path fill="#428c00" d="M239.8 284.6c-1.7 3.3-3.4 7 1 9 0-2.7 1-6.8-1-9z"/>
+    <path fill="#bd2110" d="M241.3 284.6l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M242.3 284.6l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M242.8 284.6l-.5 1h1l-.5-1z"/>
+    <path fill="#b51010" d="M243.3 284.6l.5.5-.5-.5z"/>
+    <path fill="#31394a" d="M261.3 284.6l.5.5-.5-.5z"/>
+    <path fill="#525a6b" d="M262.3 284.6l.5.5-.5-.5z"/>
+    <path fill="#8c7373" d="M265 285l.2.3-.2-.4z"/>
+    <path fill="#a51008" d="M267.4 284.6l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M287.6 285l.1.3-.1-.4z"/>
+    <path fill="#00216b" d="M287.9 284.6l.5.5-.5-.5z"/>
+    <path fill="#001000" d="M288.4 284.6l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M289.4 284.6l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M291.4 284.6l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M295 284.6l-.6 1 .5-1z"/>
+    <path fill="#103900" d="M298 284.6l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M301.4 284.6l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M302 284.6l.4.5-.5-.5z"/>
+    <path fill="#7b7373" d="M302.4 284.6l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M303 284.6l.4.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M303.8 284.8l.3.1-.3-.1z"/>
+    <path fill="#4a6342" d="M304.8 284.8l.3.1-.3-.1z"/>
+    <path fill="#295210" d="M305.4 284.6l.6.5-.6-.5z"/>
+    <path fill="#184a00" d="M306 284.6l.4.5-.4-.5z"/>
+    <path fill="#296300" d="M306.4 284.6v.5h2.6l-2.6-.5z"/>
+    <path fill="#184a00" d="M309 284.6l.5.5-.5-.5z"/>
+    <path fill="#082108" d="M309.5 284.6l.5.5-.5-.5z"/>
+    <path fill="#313931" d="M310 284.6l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M310.5 284.6l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M311 284.6l.5.5-.5-.5m-90.8.5l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M221.7 285l.5.6-.5-.5z"/>
+    <path fill="#294200" d="M222.6 285.3l.3.1-.3-.1z"/>
+    <path fill="#397b00" d="M223.4 285.4l.2.3-.2-.3z"/>
+    <path fill="#292100" d="M226.7 285l.5.6-.5-.5z"/>
+    <path fill="#397b00" d="M229.8 285l-.6 1.5h.6v-1.4m2.4 0l.6.5-.6-.5z"/>
+    <path fill="#8c8c8c" d="M232.8 285l.5.6-.5-.5z"/>
+    <path fill="#425242" d="M234.3 285l.5.6-.5-.5z"/>
+    <path fill="#428c00" d="M234.8 285c-1.2 3.2-1 5 1 7.7h.5v-7.6h-.5v5.7h-1v-5.7z"/>
+    <path fill="#315221" d="M236.3 285l.5.6-.5-.5z"/>
+    <path fill="#efefef" d="M238.8 285l.5.6-.5-.5z"/>
+    <path fill="#396b10" d="M239.3 285l.5.6-.5-.5z"/>
+    <path fill="#293129" d="M240.8 285l.5.6-.5-.5z"/>
+    <path fill="#293100" d="M241.8 285l.5.6-.5-.5z"/>
+    <path fill="#631808" d="M243.3 285l.5.6-.5-.5z"/>
+    <path fill="#cecece" d="M261.3 285l.5.6-.5-.5z"/>
+    <path fill="#001039" d="M261.8 285l.5.6-.5-.5z"/>
+    <path fill="#42425a" d="M262.3 285l.5.6-.5-.5z"/>
+    <path fill="#520808" d="M267.4 285l.5.6-.5-.5z"/>
+    <path fill="#6b5252" d="M267.9 285l.5.6-.5-.5z"/>
+    <path fill="#8c8c8c" d="M268.4 285l.5.6-.5-.5z"/>
+    <path fill="#290018" d="M268.9 285l.5.6-.5-.5z"/>
+    <path fill="#420000" d="M269.4 285l.5.6-.5-.5z"/>
+    <path fill="#001010" d="M287.9 285l.5.6-.5-.5z"/>
+    <path fill="#292921" d="M288.4 285l.5.6-.5-.5z"/>
+    <path fill="#185200" d="M289.4 285l1 1-1-1z"/>
+    <path fill="#297b00" d="M290 285l.4.6-.5-.5z"/>
+    <path fill="#184a00" d="M291.4 285v1.5h.5l-.5-1.4z"/>
+    <path fill="#185200" d="M293 285l.4.6-.5-.5z"/>
+    <path fill="#103900" d="M297.4 285l.5.6-.5-.5z"/>
+    <path fill="#297b00" d="M300 285l.4.6-.5-.5z"/>
+    <path fill="#184a00" d="M300.4 285v.6h1.5l-1.5-.5z"/>
+    <path fill="#296300" d="M302.3 285.3l.3.1-.3-.1z"/>
+    <path fill="#297b00" d="M303 285l.4.6-.5-.5m3.6 0l.4.5-.4-.5z"/>
+    <path fill="#185200" d="M307 285l.4.6-.4-.5z"/>
+    <path fill="#315221" d="M307.4 285l.6.6-.6-.5z"/>
+    <path fill="#6b735a" d="M308 285l.5.6-.5-.5z"/>
+    <path fill="#8c8c8c" d="M308.5 285l.5.6-.5-.5z"/>
+    <path fill="#bdbdbd" d="M309 285l.5.6-.5-.5z"/>
+    <path fill="#425242" d="M220.7 285.6l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M227.2 285.6l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M229.8 285.6l.4.4-.4-.4m2.4 0l1 1-1-1z"/>
+    <path fill="#5a5231" d="M232.8 285.6l.5.4-.5-.4z"/>
+    <path fill="#ada5a5" d="M233.8 285.6l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M234.3 285.6l.5.4-.5-.4m2 0l.5.4-.5-.4z"/>
+    <path fill="#9c9494" d="M236.8 285.6l.5.4-.5-.4z"/>
+    <path fill="#52525a" d="M238.8 285.6l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M240 285.9l.1.3-.2-.3z"/>
+    <path fill="#295200" d="M240.8 285.6l.5.4-.5-.4z"/>
+    <path fill="#100808" d="M241.3 285.6l.5.4-.5-.4z"/>
+    <path fill="#428c00" d="M241.8 285.6l-.5 7.6 1.5-1.4h.5l-.5 1.9c3.9-1.1 4.6-3.7 3.5-7.2l-2.5 5.3h-.5v-6.2h-.5l-1 5.2v-5.2z"/>
+    <path fill="#295200" d="M242.3 285.6l.5.4-.5-.4z"/>
+    <path fill="#293100" d="M243.3 285.6l.5.4-.5-.4z"/>
+    <path fill="#ce2110" d="M245.8 285.6l.5.4-.5-.4z"/>
+    <path fill="#7b1008" d="M246.3 285.6l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M261.8 285.6l.5.4-.5-.4z"/>
+    <path fill="#080829" d="M262.3 285.6l.5.4-.5-.4z"/>
+    <path fill="#c6b5b5" d="M264.8 285.6l.5.4-.5-.4z"/>
+    <path fill="#b51010" d="M266.9 285.6l.5.4-.5-.4z"/>
+    <path fill="#cecece" d="M267.4 285.6l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M287.9 285.6l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M288.4 285.6l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M289.2 285.7l.4.2-.4-.2z"/>
+    <path fill="#184a00" d="M293 285.6l.4.4-.5-.4z"/>
+    <path fill="#185200" d="M294.4 285.6l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M297 285.6l.4.4-.5-.4z"/>
+    <path fill="#185200" d="M299 285.6l.4.4-.5-.4z"/>
+    <path fill="#103900" d="M299.4 285.6l.5.4-.5-.4z"/>
+    <path fill="#185200" d="M300 285.6l.4.4-.5-.4z"/>
+    <path fill="#297b00" d="M304.4 285.6l.6.4-.6-.4z"/>
+    <path fill="#185200" d="M305 285.6l.4.4-.4-.4z"/>
+    <path fill="#315221" d="M305.4 285.6l.6.4-.6-.4z"/>
+    <path fill="#6b735a" d="M306 285.6l.4.4-.4-.4z"/>
+    <path fill="#9c9494" d="M306.4 285.6l.6.4-.6-.4z"/>
+    <path fill="#dedede" d="M307 285.6l.4.4-.4-.4z"/>
+    <path fill="#cecece" d="M220.7 286l1 1-1-1z"/>
+    <path fill="#214210" d="M221.2 286l.5.5-.5-.4z"/>
+    <path fill="#397b00" d="M227.7 286l1 1v-1h-1z"/>
+    <path fill="#103900" d="M228.7 286l.5.5-.5-.4m2 0l-.5.9.5-1z"/>
+    <path fill="#397b00" d="M231.3 286l.4.5-.4-.4z"/>
+    <path fill="#295200" d="M232.3 286l.4.5-.4-.4z"/>
+    <path fill="#213918" d="M233.8 286l.5.5-.5-.4z"/>
+    <path fill="#294200" d="M235.3 286v2.4h.5l-.5-2.3z"/>
+    <path fill="#526b42" d="M236.8 286l.5.5-.5-.4z"/>
+    <path fill="#ada5a5" d="M238.3 286l.5.5-.5-.4z"/>
+    <path fill="#397b00" d="M238.8 286l.5.5-.5-.4z"/>
+    <path fill="#103900" d="M241.3 286l.5.5-.5-.4z"/>
+    <path fill="#294200" d="M242.3 286v2h.5l-.5-2z"/>
+    <path fill="#397b00" d="M243.3 286l.5.5-.5-.4z"/>
+    <path fill="#941808" d="M243.8 286l.5.5-.5-.4m1.5 0l-.5.9.5-1z"/>
+    <path fill="#293100" d="M245.8 286l.5.5-.5-.4z"/>
+    <path fill="#103900" d="M246.3 286l.5.5-.5-.4z"/>
+    <path fill="#efefef" d="M261.8 286l.5.5-.5-.4z"/>
+    <path fill="#292921" d="M262.3 286l.5.5-.5-.4z"/>
+    <path fill="#efefef" d="M262.8 286l.5.5-.5-.4z"/>
+    <path fill="#842118" d="M266.9 286l.5.5-.5-.4z"/>
+    <path fill="#293129" d="M288.4 286l.5.5-.5-.4z"/>
+    <path fill="#296300" d="M288.9 286l.5.5-.5-.4z"/>
+    <path fill="#103900" d="M290 286l.4.5-.5-.4z"/>
+    <path fill="#185200" d="M293 286l.4.5-.5-.4z"/>
+    <path fill="#103900" d="M294.4 286l.5.5-.5-.4z"/>
+    <path fill="#296300" d="M298 286l.4.5-.5-.4z"/>
+    <path fill="#103900" d="M298.4 286l.5.5-.5-.4z"/>
+    <path fill="#296300" d="M299 286l.4.5-.5-.4z"/>
+    <path fill="#297b00" d="M303 286l.4.5-.5-.4z"/>
+    <path fill="#103900" d="M303.4 286l.5.5-.5-.4z"/>
+    <path fill="#001000" d="M304 286l.4.5-.5-.4z"/>
+    <path fill="#101810" d="M304.4 286l.6.5-.6-.4z"/>
+    <path fill="#8c8c8c" d="M305 286l.4.5-.4-.4z"/>
+    <path fill="#bdbdbd" d="M305.8 286.2l.3.2-.3-.2z"/>
+    <path fill="#214210" d="M221.7 286.5l1 1-1-1z"/>
+    <path fill="#397b00" d="M225.9 286.8l.2.4-.2-.4m6.8-.3l.6.5-.6-.5z"/>
+    <path fill="#63636b" d="M233.3 286.5l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M233.8 286.5l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M237 286.8l.1.4-.2-.4z"/>
+    <path fill="#dedede" d="M237.8 286.5l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M238.3 286.5l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M239.8 286.5l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#422100" d="M243.8 286.5l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M245.3 286.5l.5.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M246.8 286.5l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M262.3 286.5l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M263 286.8l.2.4-.2-.4z"/>
+    <path fill="#736b6b" d="M266.9 286.5l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M288.4 286.5l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M288.9 286.5l.5.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M291.4 286.5l.5 2h.5l-1-2z"/>
+    <path fill="#297b00" d="M292 286.5l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M293 286.5l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M294 286.5l.4.5-.5-.5zm3 0l1 1-1-1z"/>
+    <path fill="#184a00" d="M297.4 286.5l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M298 286.5l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M301.4 286.5l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M302 286.5v.5l2 .5v-.5l-2-.5z"/>
+    <path fill="#103900" d="M302.4 286.5l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M303 286.5l.4.5-.5-.5z"/>
+    <path fill="#319400" d="M303.4 286.5v.5h1.5l-1.5-.5z"/>
+    <path fill="#297b00" d="M305.1 286.8l.2.4-.2-.4z"/>
+    <path fill="#296300" d="M305.4 286.5v.5l2 .5v-.5l-2-.5z"/>
+    <path fill="#185200" d="M306.4 286.5l.6.5-.6-.5z"/>
+    <path fill="#103900" d="M307 286.5l.4.5-.4-.5z"/>
+    <path fill="#4a6342" d="M307.4 286.5l.6.5-.6-.5z"/>
+    <path fill="#8c8c8c" d="M308 286.5l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M308.5 286.5l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M221.7 287l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M224.6 287.2l.3.1-.3-.1z"/>
+    <path fill="#295200" d="M225.2 287l.5.5-.5-.5z"/>
+    <path fill="#292100" d="M229.8 287l.4.5-.4-.5z"/>
+    <path fill="#001000" d="M233.3 287l.5.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M237.8 287l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M240 287.3l.1.3-.2-.3z"/>
+    <path fill="#397b00" d="M241.1 287.2l.3.1-.3-.1z"/>
+    <path fill="#294200" d="M243.8 287l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M244.3 287l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M244.8 287l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M246.3 287l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M246.8 287l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M263.3 287l-.5 1 .5-1z"/>
+    <path fill="#ce1810" d="M266.3 287l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M266.9 287l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M288.4 287l.5.5-.5-.5z"/>
+    <path fill="#082108" d="M288.9 287l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M290 287l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M290.4 287l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M293 287l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M297 287l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M300 287l1 1-1-1z"/>
+    <path fill="#185200" d="M300.4 287l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M301 287l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M301.8 287.2l.3.1-.3-.1m2.1-.2l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M304.6 287.3l.2.3-.2-.3z"/>
+    <path fill="#319400" d="M305.4 287l.6.5-.6-.5z"/>
+    <path fill="#297b00" d="M306 287l.4.5-.4-.5z"/>
+    <path fill="#185200" d="M307.4 287l.6.5-.6-.5z"/>
+    <path fill="#184a00" d="M308 287l.5.5-.5-.5z"/>
+    <path fill="#082108" d="M308.5 287l.5.5-.5-.5z"/>
+    <path d="M309 287l.5.5-.5-.5z"/>
+    <path fill="#313931" d="M309.5 287l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M310 287l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M222.4 287.8l.2.3-.2-.3z"/>
+    <path fill="#52525a" d="M222.7 287.5l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M223.2 287.5l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M223.7 287.5l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M229.3 287.5l.4.5-.4-.5z"/>
+    <path fill="#397b00" d="M229.8 287.5l.4.5-.4-.5m2.3.1l.3.2-.3-.2z"/>
+    <path fill="#294200" d="M233.4 287.8l.2.3-.2-.3z"/>
+    <path fill="#397b00" d="M236.8 287.5l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M237.3 287.5l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M237.8 287.5l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M240.8 287.5v1.4h.5l-.5-1.4z"/>
+    <path fill="#397b00" d="M243.8 287.5v1h1l-1-1z"/>
+    <path fill="#211800" d="M244.3 287.5l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M245.8 287.5l.5.5-.5-.5z"/>
+    <path fill="#5a2908" d="M246.8 287.5l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M263.3 287.5l.5.5-.5-.5z"/>
+    <path fill="#9c2118" d="M266.3 287.5l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M287.4 287.5l.5.5-.5-.5z"/>
+    <path fill="#103910" d="M287.9 287.5l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M289 287.8l.2.3-.1-.3z"/>
+    <path fill="#296300" d="M290.2 287.6l.4.2-.4-.2z"/>
+    <path fill="#103900" d="M296 287.5l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M299.1 287.8l.2.3-.2-.3z"/>
+    <path fill="#103900" d="M299.8 287.6l.3.2-.3-.2z"/>
+    <path fill="#319400" d="M294 293.2c4.7-2.5 8.4-4.3 14-4.3-4.7-2.6-12.5-1-14 4.3z"/>
+    <path fill="#297b00" d="M304 287.5l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M305 287.5l.4.5-.4-.5z"/>
+    <path fill="#103900" d="M305.4 287.5l.6.5-.6-.5z"/>
+    <path fill="#293129" d="M306 287.5l.4.5-.4-.5z"/>
+    <path fill="#7b7373" d="M306.4 287.5l.6.5-.6-.5z"/>
+    <path fill="#ada5a5" d="M307 287.5l.4.5-.4-.5z"/>
+    <path fill="#314231" d="M222.7 288l.5.4-.5-.4z"/>
+    <path fill="#295200" d="M227.2 288l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M227.7 288l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M228.7 288l.5.4-.5-.4z"/>
+    <path fill="#295200" d="M229.3 288l.4.4-.4-.4m2.4 0l.6.4-.6-.4z"/>
+    <path fill="#294200" d="M236.8 288l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M237.3 288l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M239.6 288.1l.3.2-.3-.2m2.7-.1v1.4h.5l-.5-1.4z"/>
+    <path fill="#295200" d="M245.3 288l.5.4-.5-.4z"/>
+    <path fill="#293100" d="M246.8 288l.5.4-.5-.4z"/>
+    <path fill="#9c9494" d="M263.3 288l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M263.8 288l.5.4-.5-.4z"/>
+    <path fill="#8c6363" d="M266.3 288l.5.4-.5-.4z"/>
+    <path fill="#00184a" d="M286.9 288l.5.4-.5-.4z"/>
+    <path fill="#21315a" d="M287.4 288l.5.4-.5-.4z"/>
+    <path fill="#5a7b42" d="M287.9 288l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M290.4 288l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M291.4 288l.5.4-.5-.4z"/>
+    <path fill="#185200" d="M298 288l.4.4-.5-.4z"/>
+    <path fill="#103900" d="M298.4 288l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M306.4 288l.6.4-.6-.4z"/>
+    <path fill="#103900" d="M307 288l.4.4-.4-.4z"/>
+    <path fill="#5a6b52" d="M307.4 288l.6.4-.6-.4z"/>
+    <path fill="#9c9494" d="M308 288l.5.4-.5-.4z"/>
+    <path fill="#dedede" d="M308.5 288l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M221.7 288.4l.5.5-.5-.5z"/>
+    <path fill="#314231" d="M222.2 288.4l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M226.2 288.4l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M226.7 288.4l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M227.2 288.4l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M228.7 288.4l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M232 288.8v.3-.4z"/>
+    <path fill="#295200" d="M233.3 288.4l.5.5-.5-.5m2 0l.5.5-.5-.5z"/>
+    <path fill="#526b42" d="M237.1 288.6l.3.1-.3-.1z"/>
+    <path fill="#295200" d="M239.3 288.4l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M244 288.8l.1.3-.2-.4m1.5 0l.2.4-.2-.4z"/>
+    <path fill="#397b00" d="M246.8 288.4l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M256.3 288.4l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M256.8 288.4l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M263.8 288.4l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M266.3 288.4l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M285.9 288.4l.5.5-.5-.5z"/>
+    <path d="M286.9 288.4l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M287.4 288.4l.5.5-.5-.5z"/>
+    <path fill="#396321" d="M287.9 288.4l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M288.9 288.4l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M289.4 288.4l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M290.4 288.4l.5.5-.5-.5m1.5 0l.5.5-.5-.5m2.5 0l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M297 288.4l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M297.4 288.4l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M298 288.4l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M308 288.4l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M308.5 288.4l.5.5-.5-.5z"/>
+    <path fill="#314231" d="M309 288.4l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M309.5 288.4l.5.5-.5-.5z"/>
+    <path fill="#424242" d="M221.7 289l.5.4-.5-.5z"/>
+    <path fill="#397b00" d="M224.7 289l.5.4-.5-.5z"/>
+    <path fill="#294200" d="M225.6 289l.3.2-.3-.1z"/>
+    <path fill="#397b00" d="M226.2 289l.5.4-.5-.5z"/>
+    <path fill="#103900" d="M228.2 289l.5.4-.5-.5z"/>
+    <path fill="#294200" d="M233.4 289.2l.2.4-.2-.4z"/>
+    <path fill="#397b00" d="M234.8 289v1.8h1V289h-1z"/>
+    <path fill="#6b735a" d="M236.8 289l.5.4-.5-.5z"/>
+    <path fill="#396b10" d="M237.3 289l.5.4-.5-.5z"/>
+    <path fill="#294200" d="M239.3 289v2.3h.5l-.5-2.4z"/>
+    <path fill="#295200" d="M241 289.2l.1.4-.2-.4z"/>
+    <path fill="#392100" d="M256.3 289l.5.4-.5-.5z"/>
+    <path fill="#292100" d="M256.8 289l.5.4-.5-.5z"/>
+    <path fill="#9c9494" d="M263.8 289l.5.4-.5-.5z"/>
+    <path fill="#cecece" d="M264.3 289l.5.4-.5-.5z"/>
+    <path fill="#8c8c8c" d="M264.8 289l-.5.9.5-1z"/>
+    <path fill="#bd0008" d="M265.3 289l.5.4-.5-.5z"/>
+    <path fill="#63636b" d="M265.8 289l.5.4-.5-.5z"/>
+    <path fill="#00216b" d="M277.4 289l-.5.9.5-1z"/>
+    <path fill="#002984" d="M278 289.2l.2.4-.2-.4m5.4-.3l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M283.9 289l2 1.3v-.4l-2-1z"/>
+    <path fill="#001010" d="M285.9 289l.5.4-.5-.5z"/>
+    <path fill="#002984" d="M286.4 289l.5.4-.5-.5z"/>
+    <path fill="#103900" d="M286.9 289l.5.4-.5-.5z"/>
+    <path fill="#dedede" d="M287.4 289l.5.4-.5-.5z"/>
+    <path fill="#184a00" d="M288 289.2l.2.4-.1-.4z"/>
+    <path fill="#296300" d="M289.2 289l.4.2-.4-.1z"/>
+    <path fill="#184a00" d="M290.4 289l.5.4-.5-.5z"/>
+    <path fill="#297b00" d="M291.4 289l.5.4-.5-.5z"/>
+    <path fill="#296300" d="M292 289l-.6 1.8.5-1.9z"/>
+    <path fill="#103900" d="M293.4 289l.5.4-.5-.5z"/>
+    <path fill="#319400" d="M294 289.2l.2.4-.1-.4z"/>
+    <path fill="#103900" d="M294.4 289l.5.4-.5-.5z"/>
+    <path fill="#297b00" d="M295.4 289.4v.5h1.5l-1.5-.5z"/>
+    <path fill="#103900" d="M296.4 289l.5.4-.5-.5z"/>
+    <path fill="#185200" d="M297 289l.4.4-.5-.5z"/>
+    <path fill="#297b00" d="M302.4 289l.5.4-.5-.5z"/>
+    <path fill="#296300" d="M303 289l.4.4-.5-.5z"/>
+    <path fill="#184a00" d="M303.4 289l-1 .4v.5l1-1z"/>
+    <path fill="#315221" d="M304 289l.4.4-.5-.5z"/>
+    <path fill="#4a6342" d="M304.4 289v.4h3.6l-3.6-.5z"/>
+    <path fill="#295210" d="M308 289l.5.4-.5-.5z"/>
+    <path fill="#184a00" d="M308.5 289l.5.4-.5-.5z"/>
+    <path fill="#296300" d="M309 289l.5.4-.5-.5z"/>
+    <path fill="#185200" d="M309.5 289l.5.4-.5-.5z"/>
+    <path fill="#294221" d="M310 289l.5.4-.5-.5z"/>
+    <path fill="#9c9494" d="M310.5 289l.5.4-.5-.5m-89.3.5l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M221.7 289.4l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M223.7 289.4l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M224.2 289.4l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M224.7 289.4l.5.5-.5-.5z"/>
+    <path fill="#292100" d="M227.7 289.4l.5.5-.5-.5m4 0l.6.5-.6-.5z"/>
+    <path fill="#397b00" d="M236.3 289.4l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M236.8 289.4l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M237.3 289.4l.5.5-.5-.5m5 0l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M243.6 289.6l.4.1-.4-.1z"/>
+    <path fill="#295200" d="M245.3 289.4l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M251.8 289.4l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M255.8 289.4l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M256.3 289.4l1 1-1-1z"/>
+    <path fill="#428c00" d="M256.8 289.4l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M257.3 289.4l.5.5-.5-.5z"/>
+    <path fill="#8c7373" d="M264.8 289.4l.5.5-.5-.5z"/>
+    <path fill="#6b0808" d="M265.3 289.4l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M265.8 289.4l.5.5-.5-.5z"/>
+    <path fill="#000818" d="M274.4 289.4l.5.5-.5-.5z"/>
+    <path fill="#082108" d="M277.4 289.4l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M281.4 289.4l1 1v-1h-1z"/>
+    <path fill="#001039" d="M283.4 289.4l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M285.9 289.4l.5.5-.5-.5z"/>
+    <path d="M286.4 289.4l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M286.9 289.4l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M287.4 289.4l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M290.6 289.7l.1.3-.1-.3z"/>
+    <path fill="#297b00" d="M293 289.4v.5l2.4 1v-.6l-2.5-1z"/>
+    <path fill="#185200" d="M293.4 289.4l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M294.4 289.4l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M296 289.4l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M301 289.4l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M301.8 289.6l.3.1-.3-.1z"/>
+    <path fill="#214210" d="M303.4 289.4l.5.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M304 289.4l.4.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M304.4 289.4l.6.5-.6-.5z"/>
+    <path fill="#cecece" d="M305 289.4l.4.5-.4-.5m4 0l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M309.5 289.4l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M310 289.4l.5.5-.5-.5z"/>
+    <path fill="#292921" d="M310.8 289.6l.3.1-.3-.1z"/>
+    <path fill="#315221" d="M221.2 289.9l.5.4-.5-.4z"/>
+    <path fill="#295200" d="M222.7 289.9l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M223.2 289.9l.5.4-.5-.4m4 0l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M227.7 289.9l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M229.3 289.9l-.6 1 .6-1z"/>
+    <path fill="#397b00" d="M229.8 289.9l.4.4-.4-.4z"/>
+    <path fill="#295200" d="M231.3 289.9l.4.4-.4-.4z"/>
+    <path fill="#63636b" d="M231.8 289.9l.4.4-.4-.4z"/>
+    <path fill="#397b00" d="M232.3 289.9l.4.4-.4-.4m1.3.1l.3.2-.3-.2z"/>
+    <path fill="#295200" d="M236.3 289.9l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M236.8 289.9l.5.4-.5-.4z"/>
+    <path fill="#426331" d="M237.3 289.9l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M241 290.2l.1.3-.2-.3z"/>
+    <path fill="#295200" d="M242.3 289.9l.5.4-.5-.4m1 0l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M245.1 290l.4.2-.4-.2m1.7-.1l.5.4-.5-.4z"/>
+    <path fill="#b51010" d="M251.3 289.9l.5.4-.5-.4z"/>
+    <path fill="#211800" d="M251.8 289.9l.5.4-.5-.4z"/>
+    <path fill="#ce2110" d="M252.3 289.9l1 1-1-1z"/>
+    <path fill="#b51010" d="M255.3 289.9l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M255.8 289.9l.5.4-.5-.4z"/>
+    <path fill="#428c00" d="M256.3 289.9l-1 2.8-1.5-1 1.5 3.9h.5v-2h.5v3.4c2.4-1.5 2.1-4.2 1.5-6.7h-.5v4.8h-.5l-.5-5.2z"/>
+    <path fill="#294200" d="M257.3 289.9l.5.4-.5-.4z"/>
+    <path fill="#ce2110" d="M257.8 289.9l.5.4-.5-.4z"/>
+    <path fill="#7b7373" d="M264.3 289.9l.5.4-.5-.4z"/>
+    <path fill="#6b4242" d="M264.8 289.9l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M265.3 289.9l.5.4-.5-.4z"/>
+    <path fill="#103910" d="M274.4 289.9l.5.4-.5-.4z"/>
+    <path fill="#10214a" d="M274.9 289.9l.5.4-.5-.4z"/>
+    <path fill="#002984" d="M276.4 289.9l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M276.9 289.9l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M277.4 289.9l.5.4-.5-.4z"/>
+    <path fill="#002984" d="M278.9 289.9l.5.4-.5-.4z"/>
+    <path fill="#001010" d="M281.4 289.9l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M283.4 289.9l.5.4-.5-.4z"/>
+    <path fill="#296300" d="M285.9 289.9l.5.4-.5-.4z"/>
+    <path fill="#424242" d="M286.4 289.9l.5.4-.5-.4z"/>
+    <path fill="#319400" d="M286.9 289.9l-3 8.6a7.2 7.2 0 003-8.6z"/>
+    <path fill="#293129" d="M287.4 289.9l.5.4-.5-.4z"/>
+    <path fill="#296300" d="M287.9 289.9l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M293 289.9l.4.4-.5-.4z"/>
+    <path fill="#185200" d="M294.8 290l.3.2-.4-.2z"/>
+    <path fill="#184a00" d="M295.4 289.9l.5.4-.5-.4z"/>
+    <path fill="#185200" d="M299.4 289.9l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M299.4 290.3v.5h2.5l-2.5-.5z"/>
+    <path fill="#297b00" d="M301 289.9l.4.4-.5-.4z"/>
+    <path fill="#319400" d="M301.4 289.9v.4h3.6l-3.6-.4z"/>
+    <path fill="#296300" d="M305 289.9l.4.4-.4-.4z"/>
+    <path fill="#315221" d="M305.4 289.9l-.4 1 .4-1z"/>
+    <path fill="#7b7373" d="M306 289.9l.4.4-.4-.4z"/>
+    <path fill="#cecece" d="M306.4 289.9l.6.4-.6-.4z"/>
+    <path fill="#dedede" d="M311 289.9l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M220.7 290.3l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M221.2 290.3l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M222.2 290.3l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M222.7 290.3l.5.5-.5-.5m3.5 0v1.5h.5l-.5-1.5z"/>
+    <path fill="#103900" d="M226.7 290.3l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M229.3 290.3l.4.5-.4-.5z"/>
+    <path fill="#425242" d="M231.3 290.3l.4.5-.4-.5z"/>
+    <path fill="#315221" d="M232.3 290.3l.4.5-.4-.5z"/>
+    <path fill="#103900" d="M233.8 290.3l.5.5-.5-.5z"/>
+    <path fill="#5a5231" d="M236.3 290.3l.5.5-.5-.5z"/>
+    <path fill="#526b42" d="M237.3 290.3l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M242.1 290.5l.3.2-.3-.2z"/>
+    <path fill="#294200" d="M243.4 290.7l.2.3-.2-.3m1.4-.4l.5.5-.5-.5m2 0l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M251.3 290.3l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M251.8 290.3l1 2.4h1.5l-2.5-2.4z"/>
+    <path fill="#311000" d="M252.3 290.3l.5.5-.5-.5z"/>
+    <path fill="#422100" d="M255.3 290.3l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M256.8 290.3v2h.5l-.5-2z"/>
+    <path fill="#5a1008" d="M257.8 290.3l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M264.3 290.3l.5.5-.5-.5z"/>
+    <path fill="#101810" d="M264.8 290.3l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M265.3 290.3l.5.5-.5-.5z"/>
+    <path fill="#083121" d="M274.4 290.3l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M274.9 290.3l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M275.4 290.3l.5.5-.5-.5z"/>
+    <path fill="#102110" d="M276.4 290.3l.5.5-.5-.5z"/>
+    <path fill="#319400" d="M276.9 290.3l-.5 4.3h.5v-4.3z"/>
+    <path fill="#083121" d="M277.4 290.3l.5.5-.5-.5z"/>
+    <path fill="#000818" d="M278.9 290.3l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M280.9 290.3l.5.5-.5-.5z"/>
+    <path fill="#082108" d="M281.4 290.3l-.5 1 .5-1z"/>
+    <path fill="#00215a" d="M282.9 290.3l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M283.4 290.3l.5.5-.5-.5z"/>
+    <path fill="#00215a" d="M283.9 290.3l.5.5-.5-.5z"/>
+    <path fill="#103910" d="M284.4 290.3l.5.5-.5-.5z"/>
+    <path fill="#424242" d="M284.9 290.3l.5.5-.5-.5z"/>
+    <path fill="#103910" d="M285.4 290.3l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M285.9 290.3l-.5 1 .5-1z"/>
+    <path fill="#294221" d="M286.4 290.3l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M287.4 290.3l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M287.9 290.3l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M290.6 290.7l.1.3-.1-.3z"/>
+    <path fill="#103900" d="M293 290.3l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M294 290.3l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M298.4 290.3l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M299 290.3l.4.5-.5-.5m3 0l.5.5-.5-.5z"/>
+    <path fill="#082108" d="M302.4 290.3v.5h1.5l-1.5-.5z"/>
+    <path fill="#4a6342" d="M304.3 290.5l.3.2-.3-.2z"/>
+    <path fill="#184a00" d="M305.4 290.3l.6.5-.6-.5z"/>
+    <path fill="#296300" d="M306 290.3l.4.5-.4-.5z"/>
+    <path fill="#103900" d="M306.4 290.3l.6.5-.6-.5z"/>
+    <path fill="#425242" d="M307 290.3l.4.5-.4-.5z"/>
+    <path fill="#dedede" d="M307.4 290.3l1 1-1-1z"/>
+    <path fill="#7b7373" d="M220.7 290.8l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M224.2 290.8l.5 2h.5l-1-2z"/>
+    <path fill="#294200" d="M225.6 291l.3.1-.3-.1z"/>
+    <path fill="#295200" d="M227.7 290.8l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M228.2 290.8l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M228.7 290.8l.5.5-.5-.5z"/>
+    <path fill="#213918" d="M230.8 290.8l.4.5-.4-.5z"/>
+    <path fill="#efefef" d="M231.3 290.8l.4.5-.4-.5z"/>
+    <path fill="#8c8c8c" d="M232.3 290.8l.4.5-.4-.5z"/>
+    <path fill="#294200" d="M232.8 290.8l.5.5-.5-.5z"/>
+    <path fill="#5a2908" d="M233.3 290.8l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M233.8 290.8l.5.5-.5-.5z"/>
+    <path fill="#292100" d="M234.3 290.8l.5.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M236.3 290.8l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M237.3 290.8l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M240.8 290.8l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M244.8 290.8l.5.5-.5-.5z"/>
+    <path fill="#181000" d="M246.8 290.8l.5.5-.5-.5z"/>
+    <path fill="#310000" d="M247.3 290.8l.5.5-.5-.5z"/>
+    <path fill="#313918" d="M251.3 290.8l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M251.8 290.8l.5.5-.5-.5z"/>
+    <path fill="#293100" d="M252.8 290.8l.5.5-.5-.5z"/>
+    <path fill="#5a1010" d="M253.3 290.8l.5.5-.5-.5z"/>
+    <path fill="#734a42" d="M254.2 291l.3.1-.3-.1z"/>
+    <path fill="#5a2121" d="M254.8 290.8l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M255.3 290.8l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M257.8 290.8l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M258.3 290.8l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M264.3 290.8l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M264.8 290.8l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M271.9 290.8l.5.5-.5-.5z"/>
+    <path fill="#00216b" d="M272.4 290.8l.5.5-.5-.5z"/>
+    <path fill="#103921" d="M274.4 290.8l.5.5-.5-.5z"/>
+    <path fill="#319400" d="M274.9 290.8l-.5 6.2c1.8-1.7 1.8-4 .5-6.2z"/>
+    <path fill="#102121" d="M275.4 290.8l.5.5-.5-.5z"/>
+    <path fill="#212139" d="M275.9 290.8l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M276.4 290.8l.5.5-.5-.5z"/>
+    <path fill="#293129" d="M277.4 290.8l.5.5-.5-.5z"/>
+    <path fill="#42425a" d="M277.9 290.8l.5.5-.5-.5z"/>
+    <path fill="#31425a" d="M278.4 290.8l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M278.9 290.8l.5.5-.5-.5z"/>
+    <path fill="#31425a" d="M279.4 290.8l.5.5-.5-.5z"/>
+    <path fill="#42425a" d="M280.2 291l.3.1-.3-.1z"/>
+    <path fill="#184a00" d="M281.6 291.1l.1.4-.1-.4z"/>
+    <path fill="#42425a" d="M281.9 290.8l.5.5-.5-.5z"/>
+    <path fill="#636b7b" d="M282.4 290.8l.5.5-.5-.5z"/>
+    <path fill="#082108" d="M282.9 290.8l.5.5-.5-.5z"/>
+    <path fill="#292921" d="M283.9 290.8l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M284.4 290.8l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M284.9 290.8l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M285.9 290.8l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M286.4 290.8l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M291.4 290.8l.5.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M293 290.8l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M294 290.8l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M297.4 290.8l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M298 290.8l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M298.4 290.8l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M303 290.8l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M303.4 290.8l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M304 290.8l.4.5-.5-.5z"/>
+    <path fill="#7b7373" d="M304.4 290.8l.6.5-.6-.5z"/>
+    <path fill="#dedede" d="M305 290.8l.4.5-.4-.5z"/>
+    <path fill="#cecece" d="M306 290.8l.4.5-.4-.5z"/>
+    <path fill="#bdbdbd" d="M306.4 290.8l-.4 1 .4-1z"/>
+    <path fill="#8c8c8c" d="M307 290.8l.4.5-.4-.5z"/>
+    <path fill="#7b7373" d="M307.4 290.8l.6.5-.6-.5z"/>
+    <path fill="#314231" d="M220.7 291.3l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M221.2 291.3l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M221.7 291.3l.5.5-.5-.5z"/>
+    <path fill="#396b10" d="M222.2 291.3l.5.5-.5-.5z"/>
+    <path fill="#213918" d="M222.7 291.3l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M223.6 291.4l.3.2-.3-.2z"/>
+    <path fill="#428c00" d="M225.6 291.4l.3.2-.3-.2z"/>
+    <path fill="#294200" d="M227 291.4l.4.2-.3-.2z"/>
+    <path fill="#397b00" d="M227.7 291.3l.5.5-.5-.5z"/>
+    <path fill="#315221" d="M230.3 291.3l.4.5-.4-.5z"/>
+    <path fill="#cecece" d="M230.8 291.3l.4.5-.4-.5z"/>
+    <path fill="#420000" d="M232.8 291.3l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M234.4 291.6l.2.3-.2-.3z"/>
+    <path fill="#295200" d="M234.8 291.3l.5 1.9h.5l-1-1.9z"/>
+    <path fill="#8c8c8c" d="M236.4 291.6l.2.3-.2-.3z"/>
+    <path fill="#efefef" d="M237.3 291.3l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M237.8 291.3l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M240.8 291.3l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M243.3 291.3l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M244.3 291.3l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M246.3 291.3l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M246.8 291.3l.5.5-.5-.5z"/>
+    <path fill="#313931" d="M247.3 291.3l.5.5-.5-.5z"/>
+    <path fill="#213918" d="M247.8 291.3l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M248.3 291.3l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M248.8 291.3l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M249.3 291.3l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M249.8 291.3l.5.5-.5-.5z"/>
+    <path fill="#526b42" d="M251.3 291.3l.5.5-.5-.5z"/>
+    <path fill="#428c00" d="M251.8 291.3l1 1-1-1z"/>
+    <path fill="#103900" d="M252.3 291.3l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M253.8 291.3l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M254.3 291.3l.5.5-.5-.5z"/>
+    <path fill="#5a5231" d="M254.8 291.3l.5.5-.5-.5z"/>
+    <path fill="#313931" d="M258.3 291.3l.5.5-.5-.5z"/>
+    <path fill="#7b5252" d="M258.8 291.3l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M259.3 291.3l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M259.8 291.3l.5.5-.5-.5z"/>
+    <path fill="#002984" d="M269.4 291.3l.5.5-.5-.5z"/>
+    <path fill="#00184a" d="M269.9 291.3l.5.5-.5-.5z"/>
+    <path fill="#42425a" d="M270.4 291.3l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M270.9 291.3l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M271.4 291.3l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M271.9 291.3l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M272.4 291.3l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M275.4 291.3l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M275.9 291.3l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M278.4 291.3l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M280.4 291.3l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M280.9 291.3l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M282.4 291.3l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M283.9 291.3l1 1-1-1z"/>
+    <path fill="#296300" d="M284.4 291.3l.5.5-.5-.5z"/>
+    <path fill="#313931" d="M284.9 291.3l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M285.4 291.3l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M285.9 291.3l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M286.4 291.3l.5.5-.5-.5m4 0l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M291.6 291.6l.1.3-.1-.3m.8-.3l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M293.4 291.3l1 1-1-1z"/>
+    <path fill="#184a00" d="M294 291.3l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M296.4 291.3l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M297 291.3l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M297.4 291.3l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M304.4 291.3l.6.5-.6-.5z"/>
+    <path fill="#185200" d="M305 291.3l.4.5-.4-.5z"/>
+    <path fill="#5a6b52" d="M305.4 291.3l.6.5-.6-.5z"/>
+    <path fill="#bdbdbd" d="M221 292h.4-.3z"/>
+    <path fill="#efefef" d="M222.2 291.8l.5.4-.5-.4z"/>
+    <path fill="#214210" d="M222.7 291.8l.5.4-.5-.4z"/>
+    <path fill="#428c00" d="M223.7 293.7l1-1.4c-1.3-.3-2 .4-1 1.4z"/>
+    <path fill="#294200" d="M225.6 292h.3-.3z"/>
+    <path fill="#295200" d="M226.2 291.8l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M229.3 291.8l.4.4-.4-.4z"/>
+    <path fill="#63636b" d="M229.8 291.8l.4.4-.4-.4z"/>
+    <path fill="#efefef" d="M230.3 291.8l.4.4-.4-.4z"/>
+    <path fill="#5a2121" d="M232.8 291.8l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M237.8 291.8l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M238.3 291.8l.5.4-.5-.4z"/>
+    <path fill="#295200" d="M241 292l.1.4-.2-.3m1.9-.3l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M246.3 291.8l.5.4-.5-.4z"/>
+    <path fill="#dedede" d="M247.3 291.8l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M247.8 291.8l.5.4-.5-.4z"/>
+    <path fill="#428c00" d="M248.3 291.8l.5 3.3 2.5 2 3.5.4.5-.5c-.3-1.3-4.4-6.9-5-3.8l-1-1.4h-1z"/>
+    <path fill="#397b00" d="M249.3 291.8v1l1-1h-1z"/>
+    <path fill="#295200" d="M250.3 291.8l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M251.1 292h.4-.4z"/>
+    <path fill="#397b00" d="M252 292l.1.4-.1-.3z"/>
+    <path fill="#294200" d="M252.8 291.8l.5.4-.5-.4z"/>
+    <path fill="#214210" d="M254.3 291.8l.5.4-.5-.4z"/>
+    <path fill="#295200" d="M254.8 291.8l.5.4-.5-.4z"/>
+    <path fill="#526b42" d="M258.3 291.8l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M259.8 291.8l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M260.3 291.8l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M260.8 291.8l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M261.3 291.8l.5.4-.5-.4m6.5 0l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M268.4 291.8l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M268.9 291.8l.5.4-.5-.4z"/>
+    <path fill="#ada5a5" d="M269.4 291.8l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M269.9 291.8l.5.4-.5-.4z"/>
+    <path fill="#296300" d="M275.4 291.8l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M275.9 291.8l.5.4-.5-.4z"/>
+    <path fill="#dedede" d="M277.9 291.8l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M278.4 291.8l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M279.9 291.8l.5.4-.5-.4z"/>
+    <path fill="#294221" d="M280.4 291.8l.5.4-.5-.4z"/>
+    <path fill="#319400" d="M280.9 291.8l-3.5 5.7c3.9 0 5.6-2 6-5.7h-.5l-3.5 5.2 1.5-5.2z"/>
+    <path fill="#4a6342" d="M281.4 291.8l.5.4-.5-.4z"/>
+    <path fill="#425242" d="M282.4 291.8l.5.4-.5-.4z"/>
+    <path fill="#185200" d="M283.4 291.8l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M283.9 291.8l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M284.9 291.8l.5.4-.5-.4z"/>
+    <path fill="#319400" d="M285.4 291.8l-3.5 6.2c2.3-1.1 4-3.7 3.5-6.2z"/>
+    <path fill="#082108" d="M285.9 291.8l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M286.4 291.8l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M290.4 291.8l.5.4-.5-.4z"/>
+    <path fill="#185200" d="M293.4 291.8l.5.4-.5-.4m2.5 0l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M296.4 291.8l.5.4-.5-.4z"/>
+    <path fill="#185200" d="M298.3 292h.3-.3z"/>
+    <path fill="#296300" d="M299 291.8l.4.4-.5-.4z"/>
+    <path fill="#184a00" d="M299.4 291.8v.4h1.5l-1.5-.4z"/>
+    <path fill="#185200" d="M301 291.8l.4.4-.5-.4z"/>
+    <path fill="#184a00" d="M301.8 292h.3-.3z"/>
+    <path fill="#185200" d="M302.4 291.8l.5.4-.5-.4z"/>
+    <path fill="#296300" d="M303.1 292l.2.4-.2-.3z"/>
+    <path fill="#297b00" d="M303.4 291.8l.5.4-.5-.4z"/>
+    <path fill="#185200" d="M306 291.8l.4.4-.4-.4z"/>
+    <path fill="#63636b" d="M306.4 291.8l.6.4-.6-.4z"/>
+    <path fill="#efefef" d="M307 291.8l.4.4-.4-.4z"/>
+    <path fill="#8c8c8c" d="M222.2 292.3l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M223.7 292.3l-.5.9h1l-.5-1z"/>
+    <path fill="#103900" d="M224.2 292.3l.5.4-.5-.4z"/>
+    <path fill="#295200" d="M228.2 292.3l.5.4-.5-.4z"/>
+    <path fill="#5a5231" d="M228.7 292.3l.5.4-.5-.4z"/>
+    <path fill="#ada5a5" d="M229.3 292.3l.4.4-.4-.4z"/>
+    <path fill="#bdbdbd" d="M231.3 292.3l.4.4-.4-.4z"/>
+    <path fill="#8c8c8c" d="M231.8 292.3l.4.4-.4-.4z"/>
+    <path fill="#8c9c84" d="M232.3 292.3l.4.4-.4-.4z"/>
+    <path fill="#5a5231" d="M232.8 292.3l.5.4-.5-.4z"/>
+    <path fill="#422100" d="M233.3 292.3l.5.4-.5-.4z"/>
+    <path fill="#5a2908" d="M233.8 292.3l.5.4-.5-.4z"/>
+    <path fill="#311000" d="M234.3 292.3l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M235.3 292.3l.5.4-.5-.4z"/>
+    <path fill="#5a6b52" d="M236.3 292.3l.5.4-.5-.4z"/>
+    <path fill="#52525a" d="M238.3 292.3l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M242.8 292.3l.5.4-.5-.4z"/>
+    <path fill="#314231" d="M245.8 292.3l-.5.9.5-1z"/>
+    <path fill="#dedede" d="M246.3 292.3l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M247.8 292.3l.5.4-.5-.4z"/>
+    <path fill="#295200" d="M248.8 292.3l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M252.3 292.3l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M253.3 292.3l-.5.9.5-1z"/>
+    <path fill="#103900" d="M254.8 292.3l.5.4-.5-.4z"/>
+    <path fill="#295200" d="M257 292.6l.2.3-.2-.3z"/>
+    <path fill="#294200" d="M258.5 292.6l.2.3-.2-.3z"/>
+    <path fill="#dedede" d="M260.8 292.3l.5.4-.5-.4z"/>
+    <path fill="#7b7373" d="M261.3 292.3l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M261.8 292.3l.5.4-.5-.4z"/>
+    <path fill="#9c9494" d="M267.4 292.3l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M267.9 292.3l.5.4-.5-.4z"/>
+    <path fill="#dedede" d="M268.4 292.3l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M275.9 292.3l.5.4-.5-.4z"/>
+    <path fill="#63636b" d="M277.9 292.3l-.5.9.5-1z"/>
+    <path fill="#297b00" d="M278.4 292.3l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M279.9 292.3l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M280.4 292.3l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M281.7 292.4l.4.2-.4-.2z"/>
+    <path fill="#296300" d="M282.4 292.3l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M283.4 292.3l.5.4-.5-.4z"/>
+    <path fill="#319400" d="M283.9 292.3l.5.4-.5-.4z"/>
+    <path fill="#082108" d="M284.4 292.3l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M284.9 292.3l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M285.9 292.3l.5.4-.5-.4z"/>
+    <path fill="#296300" d="M290.4 292.3l.5.4-.5-.4m1 0l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M293.4 292.3l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M294.4 292.7v.5h1.5l-1.5-.5z"/>
+    <path fill="#103900" d="M295.4 292.3l.5.4-.5-.4z"/>
+    <path fill="#296300" d="M296 292.3l.4.4-.5-.4z"/>
+    <path fill="#082108" d="M303.4 292.3l.5.4-.5-.4z"/>
+    <path fill="#001000" d="M304 292.3l.4.4-.5-.4z"/>
+    <path fill="#395231" d="M304.4 292.3l.6.4-.6-.4z"/>
+    <path fill="#184a00" d="M305 292.3l.4.4-.4-.4z"/>
+    <path fill="#296300" d="M305.4 292.3l.6.4-.6-.4z"/>
+    <path fill="#297b00" d="M306.3 292.4l.3.2-.3-.2z"/>
+    <path fill="#214210" d="M307 292.3l.4.4-.4-.4z"/>
+    <path fill="#9c9494" d="M307.4 292.3l.6.4-.6-.4z"/>
+    <path fill="#5a5231" d="M222.2 292.7l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M225.7 292.7l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M226.2 292.7l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M226.7 292.7l.5.5-.5-.5z"/>
+    <path fill="#5a5231" d="M227.2 292.7l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M227.7 292.7l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M228.2 292.7l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M229 292.9l.4.2-.3-.2z"/>
+    <path fill="#9c9494" d="M229.8 292.7l.4.5-.4-.5z"/>
+    <path fill="#5a6b52" d="M230.3 292.7l.4.5-.4-.5z"/>
+    <path fill="#396b10" d="M230.8 292.7l.4.5-.4-.5z"/>
+    <path fill="#397b00" d="M231.3 292.7l.4.5-.4-.5z"/>
+    <path fill="#428c00" d="M230.3 293.2v.5h4.5v.5h-4.6v.4h1v.5c-2.7.2-4 1.1-5.5 3.4l8.6-.5v.5c-2.3.7-5.7.4-6.6 2.8 3.2-1.2 7.9-1.7 9.6-4.8l-3 1.5 1.5-2-4.5-.4v-.5l8 .5v.5h-1.5v.4l6.5-.4v-.5h-1.5v-.5h3v-.5l-4 1-11.5-2.4z"/>
+    <path fill="#294200" d="M235.8 292.7l.5.5-.5-.5z"/>
+    <path fill="#315221" d="M236.3 292.7l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M238.3 292.7l.5.5-.5-.5z"/>
+    <path fill="#314231" d="M238.8 292.7l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M240.8 292.7l1 1-1-1z"/>
+    <path fill="#397b00" d="M242.6 292.9l.3.2-.3-.2m2.2-.2l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M245.8 292.7l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M247.8 292.7l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M248.3 292.7l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M249.6 292.9l.4.2-.4-.2z"/>
+    <path fill="#295200" d="M253.3 292.7l1.5 1v-.5l-1.5-.5z"/>
+    <path fill="#103900" d="M254 293l.1.4-.1-.4z"/>
+    <path fill="#294200" d="M255.3 292.7l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M261.8 292.7l.5.5-.5-.5z"/>
+    <path fill="#52525a" d="M262.3 292.7l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M262.8 292.7l.5.5-.5-.5m3.5 0l-1 1.5 1-1.5z"/>
+    <path fill="#63636b" d="M266.9 292.7l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M267.4 292.7l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M275.9 292.7l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M277.9 292.7l.5.5-.5-.5z"/>
+    <path fill="#319400" d="M278.4 292.7l-3 4.8c1.9-1 3.6-2.6 3-4.8z"/>
+    <path fill="#184a00" d="M278.9 292.7l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M279.4 292.7l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M279.9 292.7l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M280.9 292.7l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M281.4 292.7l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M281.9 292.7l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M283.4 292.7l1 1-1-1z"/>
+    <path fill="#297b00" d="M283.9 292.7l1 1-1-1z"/>
+    <path fill="#103900" d="M284.4 292.7l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M285.4 292.7l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M285.9 292.7l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M289.4 292.7l.5.5-.5-.5zm4 0l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M295 292.7l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M304 292.7l.4.5-.5-.5z"/>
+    <path fill="#425242" d="M304.4 292.7l.6.5-.6-.5z"/>
+    <path fill="#efefef" d="M305 292.7l.4.5-.4-.5z"/>
+    <path fill="#bdbdbd" d="M305.4 292.7l.6.5-.6-.5z"/>
+    <path fill="#8c8c8c" d="M306 292.7l.4.5-.4-.5z"/>
+    <path fill="#5a6b52" d="M306.4 292.7l.6.5-.6-.5z"/>
+    <path fill="#185200" d="M307 292.7l.4.5-.4-.5z"/>
+    <path fill="#184a00" d="M307.4 292.7l.6.5-.6-.5z"/>
+    <path fill="#7b7373" d="M308 292.7l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M222.4 293.5l.2.3-.2-.3m1.3-.3l.5.5-.5-.5z"/>
+    <path fill="#526b42" d="M224.2 293.2l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M225 293.4l.4.1-.3-.1z"/>
+    <path fill="#bdbdbd" d="M225.7 293.2l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M226.2 293.2l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M228.2 293.2l.5.5-.5-.5z"/>
+    <path d="M228.7 293.2l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M229.3 293.2l.4.5-.4-.5z"/>
+    <path fill="#397b00" d="M229.8 293.2l.4.5-.4-.5z"/>
+    <path fill="#292100" d="M236.3 293.2l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M236.8 293.2l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M238.3 293.2l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M238.8 293.2l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M239.3 293.2l.5.5-.5-.5z"/>
+    <path fill="#001000" d="M240.8 293.2l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M241.8 293.2l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M242.3 293.2l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M243.8 293.2l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M244.3 293.2l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M244.8 293.2l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M247.8 293.2l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M248.3 293.2l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M250.3 293.2l1 1-1-1z"/>
+    <path fill="#295200" d="M255.3 293.2l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M256.8 293.2v1.9h.5l-.5-1.9z"/>
+    <path fill="#295200" d="M258.3 293.2l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M262.8 293.2l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M263.3 293.2l1.5 1.9-1.5-1.9z"/>
+    <path fill="#7b7373" d="M266.3 293.2l-1 1.4 1-1.4z"/>
+    <path fill="#efefef" d="M266.9 293.2l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M276 293.5l.2.3-.2-.3z"/>
+    <path d="M277.4 293.2l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M277.9 293.2l.5.5-.5-.5z"/>
+    <path fill="#315221" d="M278.9 293.2l.5.5-.5-.5z"/>
+    <path fill="#314231" d="M279.4 293.2l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M280.9 293.2l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M281.4 293.2l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M281.9 293.2l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M283.4 293.2l.5.5-.5-.5m2 0l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M289.4 293.2l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M294 293.2l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M294.4 293.2l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M304.4 293.2l.6.5-.6-.5z"/>
+    <path fill="#103910" d="M305 293.2l.4.5-.4-.5z"/>
+    <path fill="#ada5a5" d="M305.4 293.2l.6.5-.6-.5z"/>
+    <path fill="#efefef" d="M307 293.2l.4.5-.4-.5z"/>
+    <path fill="#9c9494" d="M307.4 293.2l.6.5-.6-.5z"/>
+    <path fill="#52525a" d="M308 293.2l.5.5-.5-.5z"/>
+    <path fill="#424242" d="M308.5 293.2l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M221.7 293.7l.5.5-.5-.5z"/>
+    <path fill="#213918" d="M222.7 293.7l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M223.2 293.7l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M223.7 293.7l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M228.7 293.7l1 1-1-1z"/>
+    <path fill="#214210" d="M229.3 293.7l.4.5-.4-.5z"/>
+    <path fill="#294200" d="M229.8 293.7v.5h2.4l-2.4-.5z"/>
+    <path fill="#295200" d="M232.3 293.7l.4.5-.4-.5z"/>
+    <path fill="#397b00" d="M232.8 293.7l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M233.3 293.7l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M233.8 293.7l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M234.3 293.7l.5.5-.5-.5z"/>
+    <path fill="#213918" d="M236.8 293.7l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M237.3 293.7l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M237.8 293.7l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M238.3 293.7l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M239.3 293.7l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M239.8 293.7l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M240.3 293.7l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M240.8 293.7l.5.5-.5-.5z"/>
+    <path fill="#de2110" d="M241.3 293.7l-.5 1 .5-1z"/>
+    <path fill="#b51010" d="M241.8 293.7l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M242.3 293.7l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M242.8 293.7l.5.5-.5-.5z"/>
+    <path fill="#102110" d="M243.3 293.7l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M243.8 293.7l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M244.3 293.7l.5.5-.5-.5z"/>
+    <path fill="#315221" d="M248.3 293.7l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M251.3 293.7l1.5 1.4-1.5-1.4m3 0l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M256 294l.1.3-.1-.3m2.3-.3l.5.5-.5-.5z"/>
+    <path fill="#6b735a" d="M274.4 293.7l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M276.9 293.7l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M277.4 293.7l.5.5-.5-.5z"/>
+    <path fill="#101810" d="M278.9 293.7l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M279.4 293.7l.5.5-.5-.5z"/>
+    <path fill="#001000" d="M280.9 293.7l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M281.4 293.7l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M283.7 293.8l.4.2-.4-.2z"/>
+    <path fill="#184a00" d="M285.4 293.7l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M286.9 293.7l1 1-1-1z"/>
+    <path fill="#184a00" d="M294 293.7l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M295.4 293.7l1 1-1-1z"/>
+    <path fill="#185200" d="M296 293.7l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M296.4 293.7v.5h1.5l-1.5-.5z"/>
+    <path fill="#296300" d="M298 293.7l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M298.4 293.7v.5h2.5l-2.5-.5z"/>
+    <path fill="#296300" d="M301 293.7l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M301.4 293.7l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M302 293.7l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M302.4 293.7l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M305.4 293.7l1 1-1-1z"/>
+    <path fill="#9c9494" d="M306 293.7l.4.5-.4-.5z"/>
+    <path fill="#bdbdbd" d="M221.7 294.2l.5.4-.5-.4z"/>
+    <path fill="#313931" d="M222.2 294.2l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M222.7 294.2l-1 .4v.5l1-1z"/>
+    <path fill="#103900" d="M229.8 294.2l.4.4-.4-.4z"/>
+    <path fill="#295200" d="M234.8 294.2l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M235.3 294.2l.5.4-.5-.4m2 0l.5.4-.5-.4z"/>
+    <path fill="#391810" d="M237.8 294.2l.5.4-.5-.4z"/>
+    <path fill="#423100" d="M240.1 294.3l.3.2-.3-.2z"/>
+    <path fill="#ce2110" d="M241.3 294.2l.5.4-.5-.4z"/>
+    <path fill="#631808" d="M241.8 294.2l.5.4-.5-.4z"/>
+    <path fill="#293100" d="M242.3 294.2l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M242.8 294.2v.4h2l-2-.4z"/>
+    <path fill="#294200" d="M244.8 294.2l.5.4-.5-.4z"/>
+    <path fill="#315221" d="M245.3 294.2l.5.4-.5-.4z"/>
+    <path fill="#5a6b52" d="M245.8 294.2l.5.4-.5-.4z"/>
+    <path fill="#ada5a5" d="M246.3 294.2l.5.4-.5-.4z"/>
+    <path fill="#6b735a" d="M248.3 294.2l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M251.3 294.2l.5.4-.5-.4m3 0l.5 1.4h.5l-1-1.4z"/>
+    <path fill="#315221" d="M258.3 294.2l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M264.8 294.2l.5.4-.5-.4z"/>
+    <path fill="#4a6342" d="M274.4 294.2l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M276.9 294.2l.5.4-.5-.4z"/>
+    <path fill="#185200" d="M278.4 294.2l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M278.9 294.2l-.5 1 .5-1z"/>
+    <path fill="#297b00" d="M280.4 294.2l1 1-1-1z"/>
+    <path fill="#103900" d="M280.9 294.2l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M282.9 294.2l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M283.4 294.2l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M284.9 294.2l1 1-1-1z"/>
+    <path fill="#185200" d="M285.4 294.2l.5.4-.5-.4m1.5 0l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M294.4 294.2l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M295 294.2l.4.4-.5-.4z"/>
+    <path fill="#185200" d="M295.4 294.2l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M301.4 294.2l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M302 294.2l.4.4-.5-.4z"/>
+    <path fill="#101810" d="M302.4 294.2l.5.4-.5-.4z"/>
+    <path fill="#425242" d="M303 294.2l.4.4-.5-.4z"/>
+    <path fill="#315221" d="M303.4 294.2l.5.4-.5-.4z"/>
+    <path fill="#185200" d="M304 294.2l.4.4-.5-.4z"/>
+    <path fill="#296300" d="M304.4 294.2l.6.4-.6-.4z"/>
+    <path fill="#8c8c8c" d="M306.4 294.2l.6.4-.6-.4z"/>
+    <path fill="#ada5a5" d="M228.2 294.6l.5.5-.5-.5z"/>
+    <path fill="#5a5231" d="M228.7 294.6l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M229.3 294.6l.4.5-.4-.5z"/>
+    <path fill="#397b00" d="M229.8 294.6l.4.5-.4-.5z"/>
+    <path fill="#294200" d="M230.6 294.8l.3.2-.3-.2z"/>
+    <path fill="#397b00" d="M237.8 294.6l.5.5-.5-.5z"/>
+    <path fill="#293100" d="M238.3 294.6l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M238.8 294.6l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M239.3 294.6l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M239.8 294.6l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M240.3 294.6l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M240.8 294.6l.5.5-.5-.5z"/>
+    <path fill="#392100" d="M241.3 294.6l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M245.8 294.6l-1.5 1.5 1.5-1.5z"/>
+    <path fill="#294200" d="M246.3 294.6v1h1l-1-1z"/>
+    <path fill="#213918" d="M246.8 294.6l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M247.3 294.6l1 1-1-1z"/>
+    <path fill="#8c8c8c" d="M248.3 294.6l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M251.8 294.6l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M254.3 294.6l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M255.8 294.6l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M258.3 294.6l.5.5-.5-.5m6.5 0l.5.5-.5-.5z"/>
+    <path fill="#294221" d="M274.4 294.6l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M276.9 294.6l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M278.9 294.6l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M280.4 294.6l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M282.4 294.6l.5.5-.5-.5z"/>
+    <path d="M282.9 294.6l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M283.4 294.6l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M284.9 294.6l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M286.9 294.6l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M288.9 294.6l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M289.7 294.8l.4.2-.4-.2z"/>
+    <path fill="#185200" d="M290.4 294.6l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M291 294.6l-.6 1 .5-1m2 0l.5.5-.5-.5m9.5 0l.5.5-.5-.5z"/>
+    <path fill="#103910" d="M303 294.6l.4.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M303.4 294.6l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M304 294.6l.4.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M304.4 294.6l.6.5-.6-.5z"/>
+    <path fill="#8c8c8c" d="M305 294.6l.4.5-.4-.5z"/>
+    <path fill="#294221" d="M305.4 294.6l.6.5-.6-.5z"/>
+    <path fill="#296300" d="M306 294.6l.4.5-.4-.5z"/>
+    <path fill="#297b00" d="M306.4 294.6l.6.5-.6-.5z"/>
+    <path fill="#63636b" d="M307 294.6l1 1-1-1z"/>
+    <path fill="#efefef" d="M227.2 295.1l-1 1.4 1-1.4z"/>
+    <path fill="#425242" d="M227.7 295.1l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M228.2 295.1l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M231.6 295.3l.3.1-.3-.1z"/>
+    <path fill="#397b00" d="M232.4 295.4l.2.4-.2-.4z"/>
+    <path fill="#294200" d="M239.6 295.3l.3.1-.3-.1z"/>
+    <path d="M240.8 295.1l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M241.3 295.1l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M242.8 295.1v.5h1.5l-1.5-.5z"/>
+    <path fill="#103900" d="M247.3 295.1l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M248.3 295.1l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M248.8 295.1l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M249.3 295.1l.5.5-.5-.5z"/>
+    <path fill="#422100" d="M249.8 295.1l.5.5-.5-.5z"/>
+    <path fill="#4a4208" d="M250.3 295.1l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M252.3 295.1l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M252.8 295.1v1h1l-1-1zm5 0l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M258.3 295.1l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M273.9 295.1l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M274.4 295.1l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M275.9 295.1l1 1-1-1z"/>
+    <path fill="#185200" d="M277.9 295.1l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M278.4 295.1l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M279.9 295.1l1 1-1-1z"/>
+    <path fill="#103900" d="M280.4 295.1l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M282.7 295.3l.4.1-.4-.1m2.2-.2l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M286.4 295.1l1 1-1-1z"/>
+    <path fill="#185200" d="M286.9 295.1l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M291 295.1l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M291.4 295.1l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M292 295.1l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M292.4 295.1l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M296 295.1l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M296.4 295.1l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M297 295.1v1h1l-1-1z"/>
+    <path fill="#297b00" d="M297.4 295.1l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M303.4 295.1l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M304 295.1l.4.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M306 295.1l.4.5-.4-.5z"/>
+    <path fill="#6b735a" d="M306.4 295.1l.6.5-.6-.5z"/>
+    <path fill="#082108" d="M307 295.1l.4.5-.4-.5z"/>
+    <path fill="#efefef" d="M308 295.1l.5.5-.5-.5z"/>
+    <path fill="#314231" d="M227.2 295.6l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M232.8 295.6l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M233.3 295.6v.5h2l-2-.5z"/>
+    <path fill="#295200" d="M235.3 295.6l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M235.8 295.6v1.4l2-1.4h-2z"/>
+    <path fill="#294200" d="M238.1 295.8l.3.1-.3-.1z"/>
+    <path fill="#397b00" d="M238.8 295.6l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M241.8 295.6l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M242.3 295.6l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M244.8 295.6l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M245.3 295.6l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M245.8 295.6l-.5 1 .5-1z"/>
+    <path fill="#bdbdbd" d="M246.3 295.6v1h1l-1-1z"/>
+    <path fill="#cecece" d="M247.6 295.8l.4.1-.4-.1z"/>
+    <path d="M248.8 295.6l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M249.3 295.6l.5.5-.5-.5zm1 0l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M250.8 295.6l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M255.2 295.8l.3.1-.3-.1z"/>
+    <path fill="#5a6b52" d="M257.8 295.6l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M273.9 295.6l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M275.9 295.6l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M277.4 295.6l1 1-1-1z"/>
+    <path fill="#103900" d="M277.9 295.6l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M280 296l.2.2-.1-.3z"/>
+    <path fill="#297b00" d="M281.9 295.6l1 1-1-1z"/>
+    <path fill="#082108" d="M282.4 295.6l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M284.7 295.8l.4.1-.4-.1z"/>
+    <path fill="#185200" d="M286.4 295.6l.5.5-.5-.5m6.2.3l.1.3-.1-.3z"/>
+    <path fill="#103900" d="M293 296l.2.2-.1-.3z"/>
+    <path fill="#297b00" d="M293.4 295.6l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M295 295.6l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M295.4 295.6l-1 1.4 1-1.4z"/>
+    <path fill="#184a00" d="M298 295.6v.5h1.4l-1.5-.5z"/>
+    <path fill="#185200" d="M299.4 295.6l1 1v-1h-1z"/>
+    <path fill="#297b00" d="M300.4 295.6l.5.5-.5-.5m3.6 0l1.4 1.4-1.4-1.4z"/>
+    <path fill="#63636b" d="M304.4 295.6l1.6 1.4-1.6-1.4z"/>
+    <path fill="#efefef" d="M307 295.6l.4.5-.4-.5z"/>
+    <path fill="#8c8c8c" d="M307.8 295.8l.3.1-.3-.1z"/>
+    <path fill="#314231" d="M226.7 296l.5.5-.5-.4z"/>
+    <path fill="#292100" d="M235.8 296l.5.5-.5-.4z"/>
+    <path fill="#397b00" d="M242.8 296l2 1v-.5l-2-.4z"/>
+    <path fill="#103900" d="M243.3 296l.5.5-.5-.4z"/>
+    <path fill="#292921" d="M243.8 296l.5.5-.5-.4z"/>
+    <path fill="#7b7373" d="M244.3 296l.5.5-.5-.4z"/>
+    <path fill="#bdbdbd" d="M244.8 296l.5.5-.5-.4z"/>
+    <path fill="#9c9494" d="M245.8 296l.5.5-.5-.4z"/>
+    <path fill="#dedede" d="M247.3 296l.5.5-.5-.4z"/>
+    <path fill="#734a42" d="M248.8 296l.5.5-.5-.4z"/>
+    <path fill="#423100" d="M250.8 296l.5.5-.5-.4z"/>
+    <path fill="#295200" d="M255.5 296.4l.1.3-.1-.3z"/>
+    <path fill="#397b00" d="M257.3 296l.5.5-.5-.4z"/>
+    <path fill="#9c9494" d="M257.8 296l.5.5-.5-.4z"/>
+    <path fill="#315221" d="M273.9 296l.5.5-.5-.4z"/>
+    <path fill="#185200" d="M275.5 296.4l.2.3-.2-.3z"/>
+    <path fill="#296300" d="M275.9 296l.5.5-.5-.4z"/>
+    <path fill="#103900" d="M277.4 296l.5.5-.5-.4z"/>
+    <path fill="#297b00" d="M279.4 296l.5.5-.5-.4z"/>
+    <path fill="#184a00" d="M282 296.4l.2.3-.1-.3m2.3-.3l.5.4-.5-.4z"/>
+    <path fill="#103900" d="M286.4 296l.5.5-.5-.4z"/>
+    <path fill="#297b00" d="M287.9 296l.5.5-.5-.4z"/>
+    <path fill="#185200" d="M288.4 296l.5.5-.5-.4z"/>
+    <path fill="#184a00" d="M287.4 296.5v.5l4.5-.5h-4.5z"/>
+    <path fill="#296300" d="M292 296l-.6 1 .5-1z"/>
+    <path d="M293.4 296l.5.5-.5-.4z"/>
+    <path fill="#103900" d="M294 296l.4.5-.5-.4z"/>
+    <path fill="#185200" d="M295.4 296l.5.5-.5-.4z"/>
+    <path fill="#103900" d="M296 296l.4.5-.5-.4z"/>
+    <path fill="#296300" d="M296.4 296l.5.5-.5-.4z"/>
+    <path d="M300.4 296l.5.5-.5-.4z"/>
+    <path fill="#52525a" d="M301 296l.4.5-.5-.4z"/>
+    <path fill="#315221" d="M301.4 296l.5.5-.5-.4z"/>
+    <path fill="#185200" d="M302 296l.4.5-.5-.4z"/>
+    <path fill="#297b00" d="M302.4 296l.5.5-.5-.4z"/>
+    <path fill="#314231" d="M226.2 296.5l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M232.8 296.5l-.5 1 .5-1z"/>
+    <path fill="#294200" d="M233.3 296.5l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M235.3 296.5l-.5 1.5.5-1.5z"/>
+    <path fill="#103900" d="M237.3 296.5l.5.5-.5-.5z"/>
+    <path fill="#6b735a" d="M237.8 296.5l.5.5-.5-.5z"/>
+    <path fill="#315221" d="M238.3 296.5l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M238.8 296.5l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M239.3 296.5v.5h2l-2-.5z"/>
+    <path fill="#294200" d="M241.3 296.5l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M241.8 296.5l.5.5-.5-.5z"/>
+    <path fill="#292100" d="M242.3 296.5l.5.5-.5-.5z"/>
+    <path fill="#428c00" d="M240.3 299l10.5-1.5c-3.3-1.3-8-1.2-10.5 1.4z"/>
+    <path fill="#397b00" d="M246.3 296.5v.5h1.5l-1.5-.5z"/>
+    <path fill="#294200" d="M247.8 296.5v.5h1.5l-1.5-.5z"/>
+    <path fill="#422100" d="M249.3 296.5l.5.5-.5-.5z"/>
+    <path fill="#5a2908" d="M249.8 296.5l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M250.3 296.5l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M250.8 296.5l1 1-1-1z"/>
+    <path fill="#214210" d="M257.3 296.5l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M273.4 296.5l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M276.4 297.5l1.5-1-1.5 1z"/>
+    <path fill="#103900" d="M279.4 296.5l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M281.4 296.5l-1 1.5h1.5l-.5-1.5z"/>
+    <path fill="#296300" d="M284.2 296.7l.4.2-.4-.2z"/>
+    <path fill="#185200" d="M285.9 296.5l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M286.7 296.7l.4.2-.4-.2z"/>
+    <path fill="#185200" d="M290.4 296.5l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M292 296.5l-.6 1 .5-1z"/>
+    <path fill="#319400" d="M292.4 296.5v.5l7 2v-.5l-7-2z"/>
+    <path fill="#296300" d="M294 296.5l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M296.4 296.5l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M297 296.5l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M297.4 296.5l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M300.4 296.5l1 1-1-1z"/>
+    <path fill="#314231" d="M301 296.5l.4.5-.5-.5z"/>
+    <path fill="#cecece" d="M301.4 296.5l1 1-1-1z"/>
+    <path fill="#dedede" d="M302 296.5l.4.5-.5-.5z"/>
+    <path fill="#9c9494" d="M302.4 296.5l.5.5-.5-.5z"/>
+    <path fill="#6b735a" d="M303 296.5l.4.5-.5-.5z"/>
+    <path fill="#214210" d="M303.4 296.5l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M304 296.5l.4.5-.5-.5z"/>
+    <path fill="#63636b" d="M225.7 297l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M226.2 297l.5.5-.5-.5m2 0v1h1.5v-1h-1.5z"/>
+    <path fill="#295200" d="M229.8 297l.4.5-.4-.5z"/>
+    <path fill="#294200" d="M230.3 297l.4.5-.4-.5z"/>
+    <path fill="#295200" d="M230.8 297l.4.5-.4-.5z"/>
+    <path fill="#294200" d="M231.6 297.2l.3.1-.3-.1z"/>
+    <path fill="#8c8c8c" d="M237.3 297l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M238.8 297l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M239.3 297v.5h2l-2-.5z"/>
+    <path fill="#52525a" d="M241.3 297l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M241.8 297l.5.5-.5-.5m9 0l.5.5-.5-.5z"/>
+    <path fill="#292100" d="M251.8 297v.5h1.5l-1.5-.5z"/>
+    <path fill="#295200" d="M253.3 297l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M254.8 297l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M255.3 297l.5.5-.5-.5z"/>
+    <path fill="#313931" d="M257.3 297l.5.5-.5-.5z"/>
+    <path fill="#bd8c8c" d="M258.2 297.2l.3.1-.3-.1z"/>
+    <path fill="#845a52" d="M258.8 297l.5.5-.5-.5z"/>
+    <path fill="#9c4a42" d="M264.3 297l.5.5-.5-.5z"/>
+    <path fill="#ad524a" d="M264.8 297l.5.5-.5-.5z"/>
+    <path fill="#845a52" d="M270.4 297l.5.5-.5-.5z"/>
+    <path fill="#bd8c8c" d="M271.2 297.2l.3.1-.3-.1z"/>
+    <path fill="#293129" d="M273.4 297l.5.5-.5-.5z"/>
+    <path fill="#082108" d="M274.9 297l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M281.4 297l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M283.4 297l-.5 1 .5-1z"/>
+    <path fill="#103900" d="M283.9 297l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M285.4 297l1 1-1-1z"/>
+    <path fill="#184a00" d="M285.9 297l.5.5-.5-.5z"/>
+    <path fill="#319400" d="M285.9 298.4l12.5 2v1.9c1.4-4.2-10.1-7-12.5-3.9z"/>
+    <path fill="#103900" d="M292 297l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M292.4 297l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M293 297l1 1-1-1z"/>
+    <path fill="#297b00" d="M293.4 297l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M297.4 297l.5.5-.5-.5z"/>
+    <path fill="#082108" d="M298 297l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M298.4 297l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M299 297l.4.5-.5-.5z"/>
+    <path fill="#214210" d="M301.4 297l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M304 297l.4.5-.5-.5z"/>
+    <path fill="#425242" d="M304.4 297l.6.5-.6-.5z"/>
+    <path fill="#185200" d="M305.3 297.2l.3.1-.3-.1z"/>
+    <path fill="#9c9494" d="M306 297l.4.5-.4-.5m-80.8.5l-1 1.4 1-1.4z"/>
+    <path fill="#397b00" d="M225.7 297.5l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M226.7 297.5l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M227.6 297.7l.3.1-.3-.1m6.6-.2l.6.5-.6-.5z"/>
+    <path fill="#315221" d="M236.8 297.5l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M240.3 297.5l-.5 1 .5-1z"/>
+    <path fill="#293129" d="M240.8 297.5l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M249.6 297.7l.4.1-.4-.1z"/>
+    <path fill="#294200" d="M250.3 297.5l.5.5-.5-.5z"/>
+    <path fill="#423100" d="M250.8 297.5l.5.5-.5-.5z"/>
+    <path fill="#422100" d="M251.6 297.7l.4.1-.4-.1z"/>
+    <path fill="#5a2908" d="M252.3 297.5l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M252.8 297.5v.5h1.5l-1.5-.5z"/>
+    <path fill="#ad1810" d="M254.3 297.5v.5h1.5l-1.5-.5z"/>
+    <path fill="#bd2110" d="M255.8 297.5l.5.5-.5-.5z"/>
+    <path fill="#de2110" d="M244.3 306v-.4l-3 .5v-.5a92 92 0 0147.1 0v.5l-2.5-.5c2.5 3.6 9.2 1.4 7-2.8-2-3.6-8.9-4-12.5-4.5a112.6 112.6 0 00-31.6.1c-3.6.6-8 .9-11 3.3-2 1.7-1.2 5.2 1.5 6 1.7.4 3.6-.9 5-1.6z"/>
+    <path fill="#ce2110" d="M273.4 297.5l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M275.4 297.5l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M276.2 297.7l.3.1-.3-.1z"/>
+    <path fill="#6b2908" d="M276.9 297.5l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M278.9 297.5l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M279.4 297.5l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M279.9 297.5l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M280.9 297.5l.5.5-.5-.5m2.5 0l-.5 1 .5-1m2 0l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M293 297.5l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M294.3 297.7l.3.1-.4-.1z"/>
+    <path fill="#297b00" d="M295 297.5l-.6 1 .5-1m3 0l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M298.4 297.5l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M299 297.5l1 1-1-1z"/>
+    <path fill="#7b7373" d="M299.4 297.5l.5.5-.5-.5z"/>
+    <path fill="#315221" d="M300 297.5l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M300.4 297.5l.5.5-.5-.5z"/>
+    <path fill="#103910" d="M302 297.5l.4.5-.5-.5z"/>
+    <path fill="#efefef" d="M302.4 297.5l1 1-1-1z"/>
+    <path fill="#cecece" d="M305 297.5l.4.5-.4-.5z"/>
+    <path fill="#63636b" d="M305.4 297.5l.6.5-.6-.5z"/>
+    <path fill="#102110" d="M306 297.5l.4.5-.4-.5z"/>
+    <path fill="#cecece" d="M306.4 297.5l.6.5-.6-.5z"/>
+    <path fill="#294200" d="M225.2 298l3 1.4-3-1.4z"/>
+    <path fill="#397b00" d="M233.4 298.3l.2.3-.2-.3z"/>
+    <path fill="#294200" d="M233.8 298l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M236.3 298l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M236.8 298l.5.5-.5-.5z"/>
+    <path fill="#314231" d="M240.3 298l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M246.3 298l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M246.8 298l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M247.3 298l.5.5-.5-.5z"/>
+    <path fill="#422100" d="M247.8 298l.5.5-.5-.5z"/>
+    <path fill="#520808" d="M248.3 298l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M248.8 298l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M249.3 298l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M249.8 298l.5.5-.5-.5m29.6 0l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M279.9 298l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M280.4 298l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M280.9 298l.5.5-.5-.5z"/>
+    <path fill="#422100" d="M281.4 298l.5.5-.5-.5z"/>
+    <path fill="#4a4208" d="M281.9 298l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M282.4 298l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M283.4 298l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M284.9 298l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M285.4 298l.5.5-.5-.5m1 0l2.5.5-2.5-.5z"/>
+    <path fill="#297b00" d="M288.4 298l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M295 298l.4.5-.5-.5z"/>
+    <path fill="#082108" d="M295.4 298l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M296 298l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M296.4 298l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M299 298l.4.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M300.4 298l.5.5-.5-.5z"/>
+    <path fill="#6b735a" d="M301 298l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M301.4 298l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M302 298l.4.5-.5-.5z"/>
+    <path fill="#314231" d="M302.4 298l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M306 298l.4.5-.4-.5z"/>
+    <path fill="#dedede" d="M306.4 298l.6.5-.6-.5z"/>
+    <path fill="#292100" d="M224.7 298.4l.5.5-.5-.4z"/>
+    <path fill="#397b00" d="M228.2 298.4v1h1v-1h-1m3.7.4l.2.3-.2-.3z"/>
+    <path fill="#294200" d="M232.6 298.6l.3.2-.3-.2z"/>
+    <path fill="#397b00" d="M235.3 298.4l.5.5-.5-.4z"/>
+    <path fill="#314231" d="M235.8 298.4l.5.5-.5-.4z"/>
+    <path fill="#dedede" d="M236.3 298.4l.5.5-.5-.4z"/>
+    <path fill="#425242" d="M239.8 298.4l.5.5-.5-.4z"/>
+    <path fill="#397b00" d="M242.1 298.6l.3.2-.3-.2z"/>
+    <path fill="#294200" d="M243.1 298.6l.4.2-.4-.2z"/>
+    <path fill="#292100" d="M243.8 298.4l.5.5-.5-.4z"/>
+    <path fill="#181000" d="M244.3 298.4l.5.5-.5-.4z"/>
+    <path fill="#310000" d="M244.8 298.4l.5.5-.5-.4z"/>
+    <path fill="#631808" d="M245.3 298.4l.5.5-.5-.4z"/>
+    <path fill="#941808" d="M245.8 298.4l.5.5-.5-.4z"/>
+    <path fill="#ad1810" d="M246.3 298.4l.5.5-.5-.4z"/>
+    <path fill="#ce2110" d="M246.8 298.4l.5.5-.5-.4z"/>
+    <path fill="#de3110" d="M257.8 298.4l.5.5-.5-.4z"/>
+    <path fill="#e75a10" d="M258.3 298.4l.5.5-.5-.4z"/>
+    <path fill="#de3110" d="M258.8 298.4l.5.5-.5-.4z"/>
+    <path fill="#e75a10" d="M260.8 298.4l.5.5-.5-.4z"/>
+    <path fill="#de3110" d="M261.3 298.4l.5.5-.5-.4z"/>
+    <path fill="#e75a10" d="M265.2 298.6l.3.2-.3-.2z"/>
+    <path fill="#de3110" d="M265.8 298.4l.5.5-.5-.4z"/>
+    <path fill="#e75a10" d="M268.7 298.6l.3.2-.3-.2z"/>
+    <path fill="#de3110" d="M269.4 298.4l.5.5-.5-.4z"/>
+    <path fill="#ad1810" d="M282.9 298.4l.5.5-.5-.4z"/>
+    <path fill="#941808" d="M283.4 298.4l.5.5-.5-.4z"/>
+    <path fill="#631808" d="M283.9 298.4l.5.5-.5-.4z"/>
+    <path fill="#5a2908" d="M284.4 298.4l.5.5-.5-.4z"/>
+    <path fill="#293100" d="M284.9 298.4l.5.5-.5-.4z"/>
+    <path fill="#185200" d="M285.4 298.4l.5.5-.5-.4z"/>
+    <path fill="#297b00" d="M285.9 298.4l.5.5-.5-.4z"/>
+    <path fill="#184a00" d="M288.9 298.4v.5h1.5l-1.5-.4z"/>
+    <path fill="#185200" d="M290.4 298.4l1 1-1-1z"/>
+    <path fill="#297b00" d="M291 298.4l.4.5-.5-.4z"/>
+    <path fill="#185200" d="M296 298.4l.4.5-.5-.4z"/>
+    <path fill="#001000" d="M296.4 298.4l.5.5-.5-.4z"/>
+    <path fill="#293129" d="M297 298.4l.4.5-.5-.4z"/>
+    <path fill="#214210" d="M297.4 298.4l.5.5-.5-.4z"/>
+    <path fill="#296300" d="M298 298.4l.4.5-.5-.4m1.5 0l1 .9-1-1z"/>
+    <path fill="#63636b" d="M300 298.4l.4.5-.5-.4z"/>
+    <path fill="#dedede" d="M301.4 298.4l.5.5-.5-.4z"/>
+    <path fill="#63636b" d="M302 298.4l.4.5-.5-.4z"/>
+    <path fill="#214210" d="M302.4 298.4l.5.5-.5-.4z"/>
+    <path fill="#63636b" d="M303 298.4l.4.5-.5-.4z"/>
+    <path fill="#cecece" d="M224.2 299l.5.4-.5-.5z"/>
+    <path fill="#295200" d="M229.3 299l.4.4-.4-.5z"/>
+    <path fill="#294200" d="M229.8 299l.4.4-.4-.5z"/>
+    <path fill="#295200" d="M230.3 299l.4.4-.4-.5z"/>
+    <path fill="#294200" d="M231 299l.4.2-.3-.1z"/>
+    <path fill="#397b00" d="M234.3 299l.5.4-.5-.5z"/>
+    <path fill="#214210" d="M234.8 299l.5.4-.5-.5z"/>
+    <path fill="#8c8c8c" d="M235.3 299l.5.4-.5-.5z"/>
+    <path fill="#7b7373" d="M239.3 299l.5.4-.5-.5z"/>
+    <path fill="#397b00" d="M240.1 299l.3.2-.3-.1z"/>
+    <path fill="#294200" d="M239.3 299.9v.5l3-1-3 .5z"/>
+    <path fill="#293100" d="M242.3 299l.5.4-.5-.5z"/>
+    <path fill="#5a2908" d="M242.8 299l.5.4-.5-.5z"/>
+    <path fill="#7b1008" d="M243.3 299l.5.4-.5-.5z"/>
+    <path fill="#b51010" d="M243.8 299l.5.4-.5-.5z"/>
+    <path fill="#de3110" d="M250.3 299l.5.4-.5-.5zm2 0l1 .9-1-1z"/>
+    <path fill="#e75a10" d="M257.3 299l.5.4-.5-.5zm2 0l.5.4-.5-.5z"/>
+    <path fill="#f7b508" d="M261.3 299l.5.4-.5-.5z"/>
+    <path fill="#de3110" d="M266.9 299l1 .9-1-1z"/>
+    <path fill="#ef9408" d="M267.9 299l1 .9-1-1z"/>
+    <path fill="#e75a10" d="M269.9 299l1 .9-1-1z"/>
+    <path fill="#de3110" d="M270.4 299l.5.4-.5-.5z"/>
+    <path fill="#e75a10" d="M272.4 299l.5.4-.5-.5z"/>
+    <path fill="#ef9408" d="M273.4 299l-.5 3.3.5-3.4z"/>
+    <path fill="#e75a10" d="M273.9 299l.5.4-.5-.5z"/>
+    <path fill="#de3110" d="M274.9 299l.5.4-.5-.5z"/>
+    <path fill="#ef9408" d="M275.4 299l.5.4-.5-.5z"/>
+    <path fill="#ef7b08" d="M275.9 299l.5.4-.5-.5z"/>
+    <path fill="#e75a10" d="M276.9 299l.5.4-.5-.5z"/>
+    <path fill="#de3110" d="M278.9 299l.5.4-.5-.5z"/>
+    <path fill="#bd2110" d="M285.4 299l.5.4-.5-.5z"/>
+    <path fill="#941808" d="M285.9 299l.5.4-.5-.5z"/>
+    <path fill="#4a1000" d="M286.4 299l.5.4-.5-.5z"/>
+    <path fill="#293100" d="M286.9 299l.5.4-.5-.5z"/>
+    <path fill="#297b00" d="M287.9 299l.5.4-.5-.5z"/>
+    <path fill="#319400" d="M288.4 299v.4l5 1-5-1.5z"/>
+    <path fill="#297b00" d="M290.4 299l.5.4-.5-.5z"/>
+    <path fill="#184a00" d="M291.4 299l.5.4-.5-.5z"/>
+    <path fill="#103900" d="M292 299l.4.4-.5-.5z"/>
+    <path fill="#296300" d="M292.6 299.3l.1.3-.1-.4m4.3-.3l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M297.4 299l.5.4-.5-.5z"/>
+    <path fill="#8c8c8c" d="M298 299l.4.4-.5-.5z"/>
+    <path fill="#63636b" d="M298.4 299l.5.4-.5-.5z"/>
+    <path fill="#184a00" d="M299 299l.4.4-.5-.5z"/>
+    <path fill="#297b00" d="M299.4 299l.5.4-.5-.5z"/>
+    <path fill="#8c8c8c" d="M300.4 299l.5.4-.5-.5z"/>
+    <path fill="#efefef" d="M302.4 299l.5.4-.5-.5z"/>
+    <path fill="#8c8c8c" d="M303 299l.4.4-.5-.5z"/>
+    <path fill="#cecece" d="M303.4 299l.5.4-.5-.5z"/>
+    <path fill="#bdbdbd" d="M227.2 299.4l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M227.7 299.4l.5.5-.5-.5m4.6 0l.4.5-.4-.5z"/>
+    <path fill="#295200" d="M232.8 299.4l.5.5-.5-.5z"/>
+    <path fill="#396b10" d="M233.3 299.4l.5.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M233.8 299.4l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M234.3 299.4l.5.5-.5-.5m4.5 0l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M239.3 299.4l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M241.3 299.4l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M241.8 299.4l.5.5-.5-.5z"/>
+    <path fill="#ef9408" d="M247.8 299.4l.5.5-.5-.5z"/>
+    <path fill="#f7b508" d="M252.3 299.4l.5.5-.5-.5m1.5 0l.5.5-.5-.5m3.9.2l.3.1-.3-.1z"/>
+    <path fill="#e75a10" d="M258.3 299.4l.5.5-.5-.5z"/>
+    <path fill="#f7b508" d="M259.2 299.6l.3.1-.3-.1z"/>
+    <path fill="#ef9408" d="M266.9 299.4l.5.5-.5-.5z"/>
+    <path fill="#f7b508" d="M269.7 299.6l.3.1-.3-.1z"/>
+    <path fill="#de3110" d="M271.9 299.4l.5.5-.5-.5z"/>
+    <path fill="#de2110" d="M275 299.7l.2.3-.2-.3z"/>
+    <path fill="#ef9408" d="M279.9 299.4l1 1-1-1z"/>
+    <path fill="#ef7b08" d="M281.4 299.4l.5.5-.5-.5z"/>
+    <path fill="#de3110" d="M283.4 299.4l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M287.4 299.4l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M287.9 299.4l.5.5-.5-.5z"/>
+    <path fill="#293100" d="M288.4 299.4l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M288.9 299.4l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M293 299.4l.4.5-.5-.5z"/>
+    <path fill="#001000" d="M293.4 299.4l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M294 299.4l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M294.4 299.4l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M295 299.4l.4.5-.5-.5m2.5 0l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M298 299.4l.4.5-.5-.5z"/>
+    <path fill="#7b7373" d="M298.4 299.4l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M299 299.4l.4.5-.5-.5z"/>
+    <path fill="#63636b" d="M299.4 299.4l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M300.3 299.6l.3.1-.3-.1z"/>
+    <path fill="#bdbdbd" d="M301 299.4l.4.5-.5-.5z"/>
+    <path fill="#9c9494" d="M227.2 299.9l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M230.3 299.9l.4.5-.4-.5z"/>
+    <path fill="#396b10" d="M230.8 299.9l.4.5-.4-.5z"/>
+    <path fill="#526b42" d="M231.3 299.9l.4.5-.4-.5z"/>
+    <path fill="#8c8c8c" d="M231.8 299.9l.4.5-.4-.5z"/>
+    <path fill="#ada5a5" d="M232.3 299.9l.4.5-.4-.5z"/>
+    <path fill="#dedede" d="M232.8 299.9l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M238.3 299.9l.5.5-.5-.5z"/>
+    <path fill="#213918" d="M238.8 299.9l.5.5-.5-.5z"/>
+    <path fill="#4a1000" d="M239.8 299.9l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M240.3 299.9l.5.5-.5-.5z"/>
+    <path fill="#de3110" d="M243.6 300l.4.2-.4-.2z"/>
+    <path fill="#ef7b08" d="M247.3 299.9l.5.5-.5-.5zm2.7.3l.1.3-.1-.3z"/>
+    <path fill="#de2110" d="M251.3 299.9l.5.5-.5-.5z"/>
+    <path fill="#de3110" d="M251.8 299.9l.5.5-.5-.5z"/>
+    <path fill="#e75a10" d="M252.8 299.9l.5.5-.5-.5z"/>
+    <path fill="#de3110" d="M258.8 299.9l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M259.3 299.9l.5.5-.5-.5m1 0l.5.5-.5-.5zm1.5 0l.5.5-.5-.5z"/>
+    <path fill="#de2110" d="M265.8 299.9v1.4h.5l-.5-1.4z"/>
+    <path fill="#ef9408" d="M266.3 299.9l.5.5-.5-.5z"/>
+    <path fill="#de3110" d="M268.4 299.9l.5.5-.5-.5z"/>
+    <path fill="#de2110" d="M268.9 299.9l.5 1.4-.5-1.4z"/>
+    <path fill="#e75a10" d="M271.9 299.9l.5.5-.5-.5z"/>
+    <path fill="#ef9408" d="M272.4 299.9l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M279.4 299.9l.5.5-.5-.5z"/>
+    <path fill="#ffce08" d="M279.9 299.9l.5.5-.5-.5z"/>
+    <path fill="#f7b508" d="M280.9 299.9l.5.5-.5-.5z"/>
+    <path fill="#de3110" d="M281.9 299.9l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M282.9 299.9l.5.5-.5-.5z"/>
+    <path fill="#ffce08" d="M283.4 299.9l-.5 1.4.5-1.4z"/>
+    <path fill="#ef7b08" d="M284 300.2l.2.3-.1-.3z"/>
+    <path fill="#e75a10" d="M285.4 299.9l.5.5-.5-.5z"/>
+    <path fill="#de3110" d="M285.9 299.9l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M288.9 299.9l.5.5-.5-.5z"/>
+    <path fill="#5a2908" d="M289.4 299.9l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M290 299.9l.4.5-.5-.5z"/>
+    <path fill="#297b00" d="M290.4 299.9l.5.5-.5-.5m3.2.3l.2.3-.2-.3z"/>
+    <path fill="#184a00" d="M294 299.9l.4.5-.5-.5z"/>
+    <path fill="#424242" d="M294.4 299.9l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M295 299.9l.4.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M295.4 299.9l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M296 299.9l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M296.4 299.9l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M298.4 299.9l1 1-1-1z"/>
+    <path fill="#314231" d="M299 299.9l.4.5-.5-.5z"/>
+    <path fill="#dedede" d="M300 299.9l.4.5-.5-.5z"/>
+    <path fill="#63636b" d="M300.4 299.9l.5.5-.5-.5z"/>
+    <path fill="#101810" d="M301 299.9l.4.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M227.2 300.4l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M229.3 300.4l.4.4-.4-.4z"/>
+    <path fill="#6b735a" d="M229.8 300.4l.4.4-.4-.4z"/>
+    <path fill="#bdbdbd" d="M230.3 300.4l.4.4-.4-.4z"/>
+    <path fill="#52525a" d="M238.3 300.4l.5.4-.5-.4z"/>
+    <path fill="#311000" d="M238.8 300.4l.5.4-.5-.4z"/>
+    <path fill="#b51010" d="M239.3 300.4l.5.4-.5-.4z"/>
+    <path fill="#ef7b08" d="M241.8 300.4l.5.4-.5-.4z"/>
+    <path fill="#ef9408" d="M242.3 300.4l.5.4-.5-.4z"/>
+    <path fill="#f7b508" d="M242.8 300.4l.5.4-.5-.4z"/>
+    <path fill="#ffce08" d="M243.3 300.4l.5.4-.5-.4z"/>
+    <path fill="#ef9408" d="M243.8 300.4l.5.4-.5-.4z"/>
+    <path fill="#de3110" d="M248.3 300.4l.5.4-.5-.4zm4.5 0l.5.4-.5-.4z"/>
+    <path fill="#ef9408" d="M261.2 300.5l.3.2-.3-.2z"/>
+    <path fill="#ef7b08" d="M266.3 300.4l.5.4-.5-.4m5.5 0l.5.4-.5-.4z"/>
+    <path fill="#de3110" d="M274.9 300.4l.5.4-.5-.4z"/>
+    <path fill="#ef9408" d="M275.9 300.4l.5.4-.5-.4z"/>
+    <path fill="#de2110" d="M280.4 300.4v1.9l2-.5-2-1.4z"/>
+    <path fill="#e75a10" d="M281.9 300.4l.5.4-.5-.4z"/>
+    <path fill="#f7b508" d="M282.9 300.4l.5.4-.5-.4m2.8.1l.4.2-.4-.2z"/>
+    <path fill="#de3110" d="M286.9 300.4l.5.4-.5-.4z"/>
+    <path fill="#e75a10" d="M287.4 300.4l.5.4-.5-.4z"/>
+    <path fill="#bd2110" d="M290 300.4l.4.4-.5-.4z"/>
+    <path fill="#5a1008" d="M290.4 300.4l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M291.2 300.5l.4.2-.4-.2z"/>
+    <path fill="#185200" d="M292 300.4l.4.4-.5-.4z"/>
+    <path fill="#296300" d="M292.8 300.5l.3.2-.4-.2z"/>
+    <path fill="#319400" d="M294 300.4l.4.4-.5-.4z"/>
+    <path fill="#297b00" d="M294.4 300.4l.5.4-.5-.4z"/>
+    <path fill="#185200" d="M295 300.4l.4.4-.5-.4z"/>
+    <path fill="#7b7373" d="M295.4 300.4l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M296 300.4l.4.4-.5-.4z"/>
+    <path fill="#ada5a5" d="M296.4 300.4l1 1.4-1-1.4z"/>
+    <path fill="#63636b" d="M297 300.4l.4.4-.5-.4z"/>
+    <path fill="#214210" d="M297.4 300.4l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M298 300.4l.4.4-.5-.4z"/>
+    <path fill="#ada5a5" d="M299.4 300.4l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M228.2 300.8l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M228.7 300.8l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M229.3 300.8l.4.5-.4-.5m8 0l.5.5-.5-.5z"/>
+    <path fill="#524242" d="M237.8 300.8l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M238.3 300.8l.5.5-.5-.5z"/>
+    <path fill="#de3110" d="M240.1 301l.3.2-.3-.2z"/>
+    <path fill="#f7b508" d="M241.8 300.8l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M242.8 300.8l.5.5-.5-.5z"/>
+    <path fill="#de2110" d="M245.8 300.8l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M246.3 300.8l.5.5-.5-.5z"/>
+    <path fill="#e75a10" d="M248.5 301.1l.1.4-.1-.4z"/>
+    <path fill="#ef7b08" d="M259.3 300.8l.5.5-.5-.5z"/>
+    <path fill="#de3110" d="M259.8 300.8l.5.5-.5-.5z"/>
+    <path fill="#ffce08" d="M260.5 301.1l.2.4-.2-.4m1.5 0l.2.4-.2-.4z"/>
+    <path fill="#ef9408" d="M266.7 301l.3.2-.3-.2z"/>
+    <path fill="#de3110" d="M268.4 300.8l.5.5-.5-.5z"/>
+    <path fill="#ef9408" d="M271.4 300.8l.5.5-.5-.5zm6 0l-.5 2 .5-2z"/>
+    <path fill="#de3110" d="M278.9 300.8l.5.5-.5-.5z"/>
+    <path fill="#ffce08" d="M279.6 301.1l.1.4-.1-.4z"/>
+    <path fill="#ef7b08" d="M280 301.1l.2.4-.1-.4z"/>
+    <path fill="#e75a10" d="M282.4 300.8l.5.5-.5-.5z"/>
+    <path fill="#f7b508" d="M283.4 300.8l.5.5-.5-.5z"/>
+    <path fill="#ef9408" d="M284 301.1l.2.4-.1-.4z"/>
+    <path fill="#de3110" d="M284.9 300.8l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M286.9 300.8l.5.5-.5-.5z"/>
+    <path fill="#ffce08" d="M287.4 300.8l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M291 300.8l.4.5-.5-.5z"/>
+    <path fill="#210800" d="M291.4 300.8l.5.5-.5-.5z"/>
+    <path fill="#292921" d="M292 300.8l.4.5-.5-.5z"/>
+    <path fill="#313931" d="M292.4 300.8l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M293 300.8l.4.5-.5-.5z"/>
+    <path fill="#9c9494" d="M293.4 300.8l1 1-1-1z"/>
+    <path fill="#8c8c8c" d="M294 300.8l.4.5-.5-.5z"/>
+    <path fill="#5a6b52" d="M294.4 300.8l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M295 300.8l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M295.4 300.8l.5.5-.5-.5z"/>
+    <path fill="#293129" d="M296 300.8l.4.5-.5-.5z"/>
+    <path fill="#efefef" d="M297.4 300.8l.5.5-.5-.5z"/>
+    <path fill="#294221" d="M298 300.8l.4.5-.5-.5z"/>
+    <path fill="#296300" d="M299 300.8l.4.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M299.4 300.8l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M227.7 301.3l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M228.2 301.3l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M236.8 301.3l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M237.3 301.3l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M237.8 301.3l.5.5-.5-.5z"/>
+    <path fill="#e75a10" d="M238.8 301.3l.5.5-.5-.5z"/>
+    <path fill="#ef9408" d="M239.3 301.3l.5.5-.5-.5zm1.5 0l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M241.8 301.3l.5.5-.5-.5z"/>
+    <path fill="#de3110" d="M242.8 301.3l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M244.8 301.3l.5.5-.5-.5z"/>
+    <path fill="#de3110" d="M247.3 301.3l.5.5-.5-.5z"/>
+    <path fill="#e75a10" d="M251.3 301.3l.5.5-.5-.5z"/>
+    <path fill="#de2110" d="M251.8 301.3l.5.5-.5-.5z"/>
+    <path fill="#f7b508" d="M257.6 301.5l.4.1-.4-.1m1.5 0l.4.1-.4-.1z"/>
+    <path fill="#e75a10" d="M259.8 301.3l-.5 1 .5-1z"/>
+    <path fill="#ef9408" d="M261.2 301.5l.3.1-.3-.1z"/>
+    <path fill="#e75a10" d="M262.3 301.3l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M265.8 301.3l.5.5-.5-.5z"/>
+    <path fill="#e75a10" d="M266.9 301.3l.5.5-.5-.5z"/>
+    <path fill="#de3110" d="M267.4 301.3l.5.5-.5-.5z"/>
+    <path fill="#f7b508" d="M269.7 301.5l.3.1-.3-.1z"/>
+    <path fill="#ef7b08" d="M271.4 301.3l.5.5-.5-.5z"/>
+    <path fill="#f7b508" d="M272.4 301.3l.5.5-.5-.5z"/>
+    <path fill="#ef9408" d="M276.4 301.3l.5.5-.5-.5zm6.5 0l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M283.4 301.3l.5.5-.5-.5z"/>
+    <path fill="#e75a10" d="M284.9 301.3l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#f7b508" d="M286.9 301.3l.5.5-.5-.5z"/>
+    <path fill="#ef9408" d="M287.4 301.3l.5.5-.5-.5z"/>
+    <path fill="#e75a10" d="M288.9 301.3l.5.5-.5-.5z"/>
+    <path fill="#ffce08" d="M289.6 301.6l.1.3-.1-.3z"/>
+    <path fill="#7b1008" d="M292 301.3l.4.5-.5-.5z"/>
+    <path fill="#185200" d="M292.4 301.3l1 1v-1h-1z"/>
+    <path fill="#314231" d="M293.4 301.3l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M295.4 301.3l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M296 301.3l.4.5-.5-.5z"/>
+    <path fill="#63636b" d="M296.4 301.3l.5.5-.5-.5z"/>
+    <path fill="#6b735a" d="M298 301.3l.4.5-.5-.5z"/>
+    <path fill="#184a00" d="M299 301.3l.4.5-.5-.5z"/>
+    <path fill="#52525a" d="M227.7 301.8l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M236.3 301.8l.5.5-.5-.5z"/>
+    <path fill="#631818" d="M236.8 301.8l.5.5-.5-.5z"/>
+    <path fill="#de3110" d="M238.3 301.8l.5.5-.5-.5z"/>
+    <path fill="#ffce08" d="M238.8 301.8l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M239.8 301.8l.5.5-.5-.5z"/>
+    <path fill="#ef9408" d="M240.3 301.8l.5.5-.5-.5z"/>
+    <path fill="#e75a10" d="M241.8 301.8l.5.5-.5-.5m3 0l.5.5-.5-.5z"/>
+    <path fill="#f7b508" d="M245.8 301.8l.5.5-.5-.5z"/>
+    <path fill="#e75a10" d="M246.3 301.8l.5.5-.5-.5z"/>
+    <path fill="#f7b508" d="M247.8 301.8l.5.5-.5-.5z"/>
+    <path fill="#ef9408" d="M248.3 301.8l-.5 1 .5-1zm7 0l.5.5-.5-.5z"/>
+    <path fill="#e75a10" d="M257.3 301.8l.5.5-.5-.5z"/>
+    <path fill="#ef9408" d="M259.8 301.8l.5.5-.5-.5z"/>
+    <path fill="#f7b508" d="M260.3 301.8l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#ef9408" d="M262.3 301.8l.5.5-.5-.5z"/>
+    <path fill="#f7b508" d="M266.3 301.8l.5.5-.5-.5z"/>
+    <path fill="#ef9408" d="M267.9 301.8l.5.5-.5-.5z"/>
+    <path fill="#e75a10" d="M271.4 301.8l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M272.4 301.8l.5.5-.5-.5z"/>
+    <path fill="#f7b508" d="M279.4 301.8l.5.5-.5-.5z"/>
+    <path fill="#ef9408" d="M279.9 301.8l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M280.9 301.8l1 1-1-1z"/>
+    <path fill="#e75a10" d="M281.9 301.8l.5.5-.5-.5z"/>
+    <path fill="#ffce08" d="M282.4 301.8l.5.5-.5-.5z"/>
+    <path fill="#f7b508" d="M285.4 301.8l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M286.4 301.8l-.5 1 .5-1zm1 0l.5.5-.5-.5z"/>
+    <path fill="#de3110" d="M288.4 301.8l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M292.4 301.8l.5.5-.5-.5z"/>
+    <path fill="#319400" d="M293.4 301.8l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M294 302.1l.2.3-.1-.3z"/>
+    <path fill="#314231" d="M294.4 301.8l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M295 301.8l.4.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M298 301.8l.4.5-.5-.5z"/>
+    <path fill="#4a6342" d="M299 301.8l.4.5-.5-.5z"/>
+    <path fill="#dedede" d="M235.8 302.3l.5.4-.5-.4z"/>
+    <path fill="#631818" d="M236.3 302.3l.5.4-.5-.4z"/>
+    <path fill="#de2110" d="M239.8 302.3l.5.4-.5-.4z"/>
+    <path fill="#e75a10" d="M240.3 302.3l.5.4-.5-.4z"/>
+    <path fill="#de3110" d="M241.3 302.3l.5.4-.5-.4z"/>
+    <path fill="#de2110" d="M242 302.6l.1.3-.2-.3z"/>
+    <path fill="#ef9408" d="M243 302.6l.1.3-.2-.3z"/>
+    <path fill="#e75a10" d="M243.3 302.3l1 1-1-1z"/>
+    <path fill="#de3110" d="M244.8 302.3l.5.4-.5-.4z"/>
+    <path fill="#e75a10" d="M245.8 302.3l.5.4-.5-.4zm4 0l.5.4-.5-.4z"/>
+    <path fill="#de3110" d="M253.3 302.3l.5.4-.5-.4zm4.5 0l.5.4-.5-.4z"/>
+    <path fill="#e75a10" d="M258.3 302.3l.5.4-.5-.4z"/>
+    <path fill="#de3110" d="M258.8 302.3l.5.4-.5-.4m1.4.1l.3.2-.3-.2m2 0l.3.2-.3-.2zm6.1-.1l.5.4-.5-.4z"/>
+    <path fill="#e75a10" d="M268.9 302.3l.5.4-.5-.4z"/>
+    <path fill="#de3110" d="M269.4 302.3l.5.4-.5-.4z"/>
+    <path fill="#e75a10" d="M270.9 302.3l.5.4-.5-.4m1 0l.5.4-.5-.4z"/>
+    <path fill="#de3110" d="M272.4 302.3v.4h1.5l-1.5-.4m2.5 0l.5.4-.5-.4z"/>
+    <path fill="#ef9408" d="M275.4 302.3l.5.4-.5-.4z"/>
+    <path fill="#ef7b08" d="M279.4 302.3l.5.4-.5-.4z"/>
+    <path fill="#ef9408" d="M282.9 302.3l.5.4-.5-.4z"/>
+    <path fill="#ffce08" d="M284 302.6l.2.3-.1-.3z"/>
+    <path fill="#f7b508" d="M284.9 302.3l.5.4-.5-.4m1.5 0l.5.4-.5-.4z"/>
+    <path fill="#e75a10" d="M287.4 302.3l.5.4-.5-.4z"/>
+    <path fill="#5a1008" d="M293 302.3l.4.4-.5-.4z"/>
+    <path fill="#103900" d="M293.4 302.3l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M294.4 302.3l.5.4-.5-.4z"/>
+    <path fill="#185200" d="M295 302.3l.4.4-.5-.4z"/>
+    <path fill="#7b7373" d="M295.4 302.3l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M298.1 302.6l.2.3-.2-.3z"/>
+    <path fill="#296300" d="M298.4 302.3l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M299 302.3l.4.4-.5-.4m-63.1.4l.5.5-.5-.4z"/>
+    <path fill="#ce2110" d="M236.3 302.7l.5.5-.5-.5z"/>
+    <path fill="#e75a10" d="M238.8 302.7l.5.5-.5-.5z"/>
+    <path fill="#ffce08" d="M239.3 302.7l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M241.3 302.7l.5.5-.5-.5z"/>
+    <path fill="#f7b508" d="M242.3 302.7l.5.5-.5-.5z"/>
+    <path fill="#de2110" d="M243.3 302.7l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M244.3 302.7l.5.5-.5-.5z"/>
+    <path fill="#f7b508" d="M245.3 302.7l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M245.8 302.7l.5.5-.5-.5z"/>
+    <path fill="#e75a10" d="M248.3 302.7l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M248.8 302.7l.5.5-.5-.5z"/>
+    <path fill="#e75a10" d="M249.3 302.7l.5.5-.5-.5m30.6 0l.5.5-.5-.5z"/>
+    <path fill="#ef9408" d="M280.4 302.7l.5.5-.5-.5z"/>
+    <path fill="#e75a10" d="M280.9 302.7l.5.5-.5-.5z"/>
+    <path fill="#de3110" d="M281.4 302.7l.5.5-.5-.5z"/>
+    <path fill="#e75a10" d="M282.4 302.7l.5.5-.5-.5m1 0l.5.5-.5-.5z"/>
+    <path fill="#de3110" d="M284.4 302.7l.5.5-.5-.5z"/>
+    <path fill="#ffce08" d="M285 303l.2.4-.1-.3z"/>
+    <path fill="#e75a10" d="M285.7 302.9l.4.2-.4-.2z"/>
+    <path fill="#de2110" d="M287.4 302.7l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M287.9 302.7l.5.5-.5-.5z"/>
+    <path fill="#e75a10" d="M288.9 302.7l.5.5-.5-.5zm1.2.4l.1.3-.1-.3z"/>
+    <path fill="#736b6b" d="M293.4 302.7l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M294 302.7l.4.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M294.4 302.7l.5.5-.5-.5z"/>
+    <path fill="#294221" d="M295 302.7l.4.5-.5-.5z"/>
+    <path fill="#082108" d="M295.4 302.7l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M296 302.7l.4.5-.5-.5z"/>
+    <path fill="#103900" d="M298.4 302.7l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M299 302.7l.4.5-.5-.5z"/>
+    <path fill="#6b4242" d="M235.8 303.2l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M240.3 303.2l.5.5-.5-.5z"/>
+    <path fill="#ef9408" d="M240.8 303.2l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M242.3 303.2l.5.5-.5-.5z"/>
+    <path fill="#f7b508" d="M244.3 303.2l.5.5-.5-.5z"/>
+    <path fill="#e75a10" d="M245.3 303.2l.5.5-.5-.5z"/>
+    <path fill="#de3110" d="M245.8 303.2l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M256.8 303.2v.5h3l-3-.5z"/>
+    <path fill="#7b1008" d="M259.8 303.2l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M260.3 303.2v.5h9.6l-9.6-.5z"/>
+    <path fill="#ad1810" d="M269.9 303.2v.5h3l-3-.5z"/>
+    <path fill="#ce2110" d="M272.9 303.2l.5.5-.5-.5z"/>
+    <path fill="#de3110" d="M283.4 303.2l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M283.9 303.2l.5.5-.5-.5z"/>
+    <path fill="#e75a10" d="M284.4 303.2l.5.5-.5-.5z"/>
+    <path fill="#de3110" d="M285.7 303.4l.4.1-.4-.1z"/>
+    <path fill="#f7b508" d="M286.9 303.2l1 1-1-1z"/>
+    <path fill="#e75a10" d="M287.4 303.2l.5.5-.5-.5z"/>
+    <path fill="#ef9408" d="M288.9 303.2l.5.5-.5-.5z"/>
+    <path fill="#631818" d="M293.4 303.2l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M295.6 303.5l.2.4-.2-.4z"/>
+    <path fill="#7b7373" d="M296 303.2l.4.5-.5-.5z"/>
+    <path fill="#dedede" d="M296.4 303.2l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#52525a" d="M298.4 303.2l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M229.8 303.7l.4.5-.4-.5z"/>
+    <path fill="#8c8c8c" d="M230.3 303.7l.4.5-.4-.5z"/>
+    <path fill="#6b4242" d="M230.8 303.7l.4.5-.4-.5z"/>
+    <path fill="#8c8c8c" d="M232.8 303.7l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M233.3 303.7l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M233.8 303.7l.5.5-.5-.5z"/>
+    <path fill="#6b2908" d="M235.8 303.7l.5.5-.5-.5z"/>
+    <path fill="#ef9408" d="M239.3 303.7l.5.5-.5-.5z"/>
+    <path fill="#ffce08" d="M240 304l.1.3-.2-.3z"/>
+    <path fill="#f7b508" d="M241.3 303.7l.5.5-.5-.5z"/>
+    <path fill="#e75a10" d="M243.3 303.7l.5.5-.5-.5z"/>
+    <path fill="#de3110" d="M243.8 303.7l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M250.6 303.9l.4.1-.4-.1z"/>
+    <path fill="#941808" d="M251.3 303.7l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M251.8 303.7l.5.5-.5-.5z"/>
+    <path fill="#733129" d="M252.3 303.7l.5.5-.5-.5z"/>
+    <path fill="#734a42" d="M253.1 303.9l.4.1-.4-.1z"/>
+    <path fill="#845a52" d="M253.8 303.7l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M254.3 303.7v.5h2l-2-.5z"/>
+    <path fill="#ada5a5" d="M256.3 303.7l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M256.8 303.7v.5h1.5l-1.5-.5z"/>
+    <path fill="#cecece" d="M258.3 303.7l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M258.8 303.7l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M259.3 303.7l1.5 1.4-1.5-1.4z"/>
+    <path fill="#428c00" d="M259.8 303.7c1.3 1.6 2.4 2.3 4.5 1.9l-4.5-1.9z"/>
+    <path fill="#397b00" d="M262.8 303.7l1 2.4h1l-2-2.4z"/>
+    <path fill="#63636b" d="M263.3 303.7l1.5 1.4-1.5-1.4z"/>
+    <path fill="#cecece" d="M265.3 303.7l-.5 1 .5-1z"/>
+    <path fill="#214210" d="M265.8 303.7l.5.5-.5-.5z"/>
+    <path fill="#319400" d="M266.3 306l4-1.8c-2-.8-4.4-.6-4 1.9z"/>
+    <path fill="#185200" d="M270.4 303.7l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M270.9 303.7l.5.5-.5-.5z"/>
+    <path fill="#946b63" d="M275.4 303.7l.5.5-.5-.5z"/>
+    <path fill="#734a42" d="M276.2 303.9l.3.1-.3-.1z"/>
+    <path fill="#8c3939" d="M276.9 303.7l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M277.4 303.7l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M277.9 303.7l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M278.7 303.9l.3.1-.3-.1z"/>
+    <path fill="#ce2110" d="M279.4 303.7l.5.5-.5-.5z"/>
+    <path fill="#ef9408" d="M286.7 303.9l.4.1-.4-.1m1.2-.2l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M288.4 303.7l.5.5-.5-.5z"/>
+    <path fill="#f7b508" d="M288.9 303.7l.5.5-.5-.5z"/>
+    <path fill="#de3110" d="M290 303.7l.4.5-.5-.5z"/>
+    <path fill="#631808" d="M293.4 303.7l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M296 303.7l.4.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M296.4 303.7l.5.5-.5-.5zm2.5 0l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M299.4 303.7l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M229.3 304.2l.4.5-.4-.5z"/>
+    <path fill="#631818" d="M229.8 304.2l.4.5-.4-.5z"/>
+    <path fill="#bd2110" d="M230.3 304.2l.4.5-.4-.5z"/>
+    <path fill="#de2110" d="M229.8 308.5c5.2-3 12 5.2 16-1.5l-.5-.4c-1.7.5-3.7 2-5.5 1.7-1.3-.2-14-8.4-10 .2z"/>
+    <path fill="#bd2110" d="M233.3 304.2l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M233.8 304.2l.5.5-.5-.5z"/>
+    <path fill="#631818" d="M234.3 304.2l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M234.8 304.2l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M235.3 304.2l.5.5-.5-.5z"/>
+    <path fill="#734a42" d="M235.8 304.2l.5.5-.5-.5z"/>
+    <path fill="#de3110" d="M239.3 304.2l.5.5-.5-.5z"/>
+    <path fill="#ef7b08" d="M240.3 304.2l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M246.3 304.2l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M246.8 304.2l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M247.3 304.2l.5.5-.5-.5z"/>
+    <path fill="#733129" d="M247.8 304.2l.5.5-.5-.5z"/>
+    <path fill="#734a42" d="M248.3 304.2l.5.5-.5-.5z"/>
+    <path fill="#8c6363" d="M248.8 304.2l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M249.6 304.3l.4.2-.4-.2z"/>
+    <path fill="#bdbdbd" d="M250.6 304.3l.4.2-.4-.2z"/>
+    <path fill="#efefef" d="M251.3 304.2l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M259.3 304.2l1.5 1.4-1.5-1.4z"/>
+    <path fill="#103910" d="M265.3 304.2l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M269.9 304.2l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M270.4 304.2l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M278.7 304.3l.3.2-.3-.2z"/>
+    <path fill="#8c8c8c" d="M279.7 304.3l.3.2-.3-.2z"/>
+    <path fill="#8c7373" d="M280.4 304.2l.5.5-.5-.5z"/>
+    <path fill="#734a42" d="M280.9 304.2l.5.5-.5-.5z"/>
+    <path fill="#733939" d="M281.4 304.2l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M281.9 304.2l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M282.4 304.2l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M282.9 304.2l.5.5-.5-.5z"/>
+    <path fill="#e75a10" d="M287.4 304.2l.5.5-.5-.5m1.7.3l.1.3-.1-.3z"/>
+    <path fill="#6b2908" d="M293.4 304.2l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M294 304.2l.4.5-.5-.5z"/>
+    <path fill="#7b7373" d="M294.4 304.2l.5.5-.5-.5z"/>
+    <path fill="#733129" d="M295 304.2l.4.5-.5-.5z"/>
+    <path fill="#941808" d="M295.4 304.2l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M296 304.2l.4.5-.5-.5z"/>
+    <path fill="#de2110" d="M284.9 306.6c-.7 6.6 11.8 0 15 1.9 1.8-3.7-2.3-5.3-5.4-3.4-1.5.9-2.2 2.8-4.1 3.1-1.9.3-3.9-1-5.5-1.6z"/>
+    <path fill="#ce2110" d="M299 304.2l.4.5-.5-.5z"/>
+    <path fill="#7b1008" d="M299.4 304.2l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M300 304.2l.4.5-.5-.5m-71.2.5l.5.4-.5-.4z"/>
+    <path fill="#631808" d="M229.3 304.6l.4.5-.4-.5z"/>
+    <path fill="#941808" d="M235.3 304.6l.5.5-.5-.5z"/>
+    <path fill="#310000" d="M235.8 304.6l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M236.3 304.6l.5.5-.5-.5z"/>
+    <path fill="#ef9408" d="M239.8 304.6l.5.5-.5-.5z"/>
+    <path fill="#e75a10" d="M240.3 304.6l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M243.3 304.6l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M243.8 304.6l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M244.3 304.6l.5.5-.5-.5z"/>
+    <path fill="#6b2908" d="M244.8 304.6l.5.5-.5-.5z"/>
+    <path fill="#734a42" d="M245.3 304.6l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M245.8 304.6l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M246.3 304.6l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M246.8 304.6l.5.5-.5-.5z"/>
+    <path fill="#293129" d="M264.8 304.6l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M265.3 304.6l1 1.5-1-1.5m3.5 0l-.5 1 .5-1z"/>
+    <path fill="#103910" d="M269.4 304.6l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M269.9 304.6l-.5 1 .5-1z"/>
+    <path fill="#bdbdbd" d="M282.4 304.6l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M282.9 304.6l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M283.4 304.6l.5.5-.5-.5z"/>
+    <path fill="#734a42" d="M283.9 304.6l.5.5-.5-.5z"/>
+    <path fill="#733129" d="M284.4 304.6l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M284.9 304.6l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M285.4 304.6l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M285.9 304.6l.5.5-.5-.5z"/>
+    <path fill="#f7b508" d="M289.4 304.6l.5.5-.5-.5z"/>
+    <path fill="#420000" d="M293.4 304.6l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M294 304.6l.4.5-.5-.5m6 0l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M300.4 304.6l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M228.2 305.1l.5.5-.5-.5z"/>
+    <path fill="#842118" d="M228.7 305.1l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M235.8 305.1l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M236.3 305.1l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M241.8 305.1l.5.5-.5-.5z"/>
+    <path fill="#520808" d="M243.8 305.1l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M244.3 305.1l.5.5-.5-.5z"/>
+    <path fill="#214210" d="M260.8 305.1l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M264.8 305.1l.5.5-.5-.5z"/>
+    <path fill="#293129" d="M268.9 305.1l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M284.9 305.1l.5.5-.5-.5z"/>
+    <path fill="#391810" d="M285.4 305.1l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M285.9 305.1l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M286.4 305.1l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M286.9 305.1l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M287.4 305.1l1 1-1-1m5.5 0l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M293.4 305.1l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M300.4 305.1l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M301 305.1l.4.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M228.2 305.6l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M228.7 305.6l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M236.3 305.6l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M236.8 305.6l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M241.6 305.8l.3.1-.3-.1z"/>
+    <path fill="#631818" d="M244.3 305.6l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M244.8 305.6l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M258.8 305.6l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M259.3 305.6l.5.5-.5-.5z"/>
+    <path fill="#734a42" d="M259.8 305.6v.5h1.5l-1.5-.5z"/>
+    <path fill="#293100" d="M261.3 305.6l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M261.8 305.6l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M264.8 305.6l.5.5-.5-.5z"/>
+    <path fill="#082108" d="M265.3 305.6l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M267.4 305.6l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M267.9 305.6l.5.5-.5-.5z"/>
+    <path fill="#392100" d="M268.4 305.6l.5.5-.5-.5z"/>
+    <path fill="#733939" d="M268.9 305.6l.5.5-.5-.5z"/>
+    <path fill="#734a42" d="M269.4 305.6l.5.5-.5-.5z"/>
+    <path fill="#736b6b" d="M269.9 305.6l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M270.4 305.6l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M284.4 305.6l-.5 1 .5-1z"/>
+    <path fill="#5a1010" d="M284.9 305.6l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M285.4 305.6l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M287.4 305.6l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M292.4 305.6l1 1-1-1z"/>
+    <path fill="#5a1008" d="M293 305.6l.4.5-.5-.5z"/>
+    <path fill="#736b6b" d="M301 305.6l.4.5-.5-.5z"/>
+    <path fill="#8c6363" d="M228.2 306l.5.6-.5-.5z"/>
+    <path fill="#520808" d="M236.8 306l.5.6-.5-.5z"/>
+    <path fill="#ce2110" d="M237.3 306l.5.6-.5-.5z"/>
+    <path fill="#bd2110" d="M243.8 306l.5.6-.5-.5z"/>
+    <path fill="#7b1008" d="M244.3 306l-.5 1 .5-1z"/>
+    <path fill="#100808" d="M244.8 306l.5.6-.5-.5z"/>
+    <path fill="#9c9494" d="M245.3 306l.5.6-.5-.5z"/>
+    <path fill="#bdbdbd" d="M256.8 306l.5.6-.5-.5z"/>
+    <path fill="#ada5a5" d="M257.3 306l.5.6-.5-.5z"/>
+    <path fill="#8c8c8c" d="M257.8 306l.5.6-.5-.5z"/>
+    <path fill="#52525a" d="M258.3 306l.5.6-.5-.5z"/>
+    <path fill="#7b1008" d="M258.8 306l.5.6-.5-.5z"/>
+    <path fill="#ce2110" d="M259.3 306l.5.6-.5-.5z"/>
+    <path fill="#de2110" d="M258.8 308.5l4 .5c-.2-3-3.4-3.7-4-.5z"/>
+    <path fill="#b51010" d="M261.8 306l.5.6-.5-.5z"/>
+    <path fill="#7b1008" d="M262.3 306l.5.6-.5-.5z"/>
+    <path fill="#292100" d="M262.8 306l.5.6-.5-.5z"/>
+    <path fill="#422100" d="M263.3 306l.5.6-.5-.5z"/>
+    <path fill="#941808" d="M263.8 306l.5.6-.5-.5z"/>
+    <path fill="#ad1810" d="M264.3 306v.6h1.5l-1.5-.5z"/>
+    <path fill="#311000" d="M265.8 306l.5.6-.5-.5z"/>
+    <path fill="#293100" d="M266.3 306l.5.6-.5-.5z"/>
+    <path fill="#631808" d="M266.9 306l.5.6-.5-.5z"/>
+    <path fill="#941808" d="M267.4 306l.5.6-.5-.5z"/>
+    <path fill="#de2110" d="M266.9 306.6l.5 2.3 3.5-.4c-.4-2.4-1.8-2.4-4-2z"/>
+    <path fill="#b51010" d="M270.4 306l.5.6-.5-.5z"/>
+    <path fill="#423131" d="M270.9 306l.5.6-.5-.5z"/>
+    <path fill="#8c8c8c" d="M271.4 306l.5.6-.5-.5z"/>
+    <path fill="#9c9494" d="M271.9 306l.5.6-.5-.5z"/>
+    <path fill="#bdbdbd" d="M272.4 306l.5.6-.5-.5z"/>
+    <path fill="#efefef" d="M272.9 306l.5.6-.5-.5z"/>
+    <path fill="#101810" d="M284.4 306l.5.6-.5-.5z"/>
+    <path fill="#631808" d="M284.9 306l.5.6-.5-.5z"/>
+    <path fill="#b51010" d="M285.4 306l.5.6-.5-.5z"/>
+    <path fill="#520808" d="M292.4 306l.5.6-.5-.5z"/>
+    <path fill="#734a42" d="M301.1 306.4l.2.3-.2-.3z"/>
+    <path fill="#8c8c8c" d="M228.2 306.6l.5.4-.5-.4z"/>
+    <path fill="#bd2110" d="M236.8 306.6l.5.4-.5-.4z"/>
+    <path fill="#631808" d="M237.3 306.6l.5.4-.5-.4z"/>
+    <path fill="#ad1810" d="M242.8 306.6l.5.4-.5-.4z"/>
+    <path fill="#5a1008" d="M243.3 306.6l.5.4-.5-.4z"/>
+    <path fill="#ce2110" d="M244.3 306.6l.5.4-.5-.4z"/>
+    <path fill="#5a1008" d="M245.3 306.6l.5.4-.5-.4z"/>
+    <path fill="#cecece" d="M245.8 306.6l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M254.8 306.6l.5.4-.5-.4z"/>
+    <path fill="#ada5a5" d="M255.3 306.6l.5.4-.5-.4z"/>
+    <path fill="#736b6b" d="M255.8 306.6l.5.4-.5-.4z"/>
+    <path fill="#631818" d="M256.3 306.6l.5.4-.5-.4z"/>
+    <path fill="#941808" d="M256.8 306.6l.5.4-.5-.4z"/>
+    <path fill="#b51010" d="M257.3 306.6l.5.4-.5-.4z"/>
+    <path fill="#de2110" d="M257.8 306.6l-2 .4v2.9c1.7-.7 2.7-1.5 2-3.3z"/>
+    <path fill="#5a1008" d="M258.3 306.6l.5.4-.5-.4z"/>
+    <path fill="#520808" d="M262.8 306.6l.5.4-.5-.4z"/>
+    <path fill="#de2110" d="M263.3 306.6v2.8h3v-2.8h-3z"/>
+    <path fill="#520808" d="M266.3 306.6l.5.4-.5-.4z"/>
+    <path fill="#941808" d="M270.9 306.6l.5.4-.5-.4z"/>
+    <path fill="#b51010" d="M271.4 306.6l.5.4-.5-.4z"/>
+    <path fill="#bd2110" d="M271.9 306.6l.5.4-.5-.4z"/>
+    <path fill="#ad1810" d="M272.4 306.6l.5.4-.5-.4z"/>
+    <path fill="#7b1008" d="M272.9 306.6l.5.4-.5-.4z"/>
+    <path fill="#6b4242" d="M273.4 306.6l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M273.9 306.6l.5.4-.5-.4z"/>
+    <path fill="#dedede" d="M274.4 306.6l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M283.4 306.6l.5.4-.5-.4z"/>
+    <path fill="#5a1010" d="M283.9 306.6l.5.4-.5-.4z"/>
+    <path fill="#ce2110" d="M284.4 306.6l.5.4-.5-.4z"/>
+    <path fill="#941808" d="M285.4 306.6l.5.4-.5-.4z"/>
+    <path fill="#5a1008" d="M285.9 306.6l.5.4-.5-.4z"/>
+    <path fill="#941808" d="M286.4 306.6l.5.4-.5-.4z"/>
+    <path fill="#7b1008" d="M292 306.6l.4.4-.5-.4z"/>
+    <path fill="#ad1810" d="M292.4 306.6l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M228.4 307.4l.2.3-.2-.3z"/>
+    <path fill="#ad1810" d="M228.7 307l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M231.3 307l.4.5-.4-.5z"/>
+    <path fill="#bd2110" d="M231.8 307l.4.5-.4-.5z"/>
+    <path fill="#7b1008" d="M237.3 307l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M237.8 307l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M241.8 307l.5.5-.5-.5z"/>
+    <path fill="#520808" d="M242.3 307l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M242.8 307l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M245.8 307l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M255 307.4l.1.3-.1-.3z"/>
+    <path fill="#941808" d="M255.3 307l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M258.3 307v2h.5l-.5-2m4.5 0v2h.5l-.5-2z"/>
+    <path fill="#941808" d="M266.3 307l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M266.9 307l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M270.9 307l-1.5 2.4h1.5v-1l1 .6v-2h-1z"/>
+    <path fill="#de2110" d="M271.9 307v2.4l2 .5.5-2.4-2.5-.5z"/>
+    <path fill="#bd2110" d="M273.9 307l.5.5-.5-.5z"/>
+    <path fill="#6b4242" d="M274.4 307l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M283.4 307l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M283.9 307l.5.5-.5-.5m2.5 0l.5.5-.5-.5z"/>
+    <path fill="#520808" d="M286.9 307l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M287.4 307l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M291.4 307l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M292 307l.4.5-.5-.5z"/>
+    <path fill="#bd2110" d="M297.8 307.2l.3.2-.3-.2m2.6-.2l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M301 307l.4.5-.5-.5z"/>
+    <path fill="#cecece" d="M224.7 307.5l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M225.2 307.5l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M227.7 307.5l.5.5-.5-.5z"/>
+    <path fill="#5a1010" d="M228.7 307.5l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M230.3 307.5l.4.5-.4-.5z"/>
+    <path fill="#5a1008" d="M230.8 307.5l.4.5-.4-.5z"/>
+    <path fill="#631808" d="M231.3 307.5l.4.5-.4-.5z"/>
+    <path fill="#941808" d="M231.8 307.5l.4.5-.4-.5z"/>
+    <path fill="#631808" d="M232.3 307.5l.4.5-.4-.5z"/>
+    <path fill="#7b1008" d="M232.8 307.5l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M233.3 307.5l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M233.8 307.5l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M237.8 307.5l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M238.4 307.8l.2.3-.2-.3z"/>
+    <path fill="#b51010" d="M240.8 307.5l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M241.3 307.5l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M241.8 307.5l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M242.3 307.5l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M245.3 307.5l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M245.8 307.5l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M255.3 307.5l.5.5-.5-.5m11 0v1h1v-1h-1z"/>
+    <path fill="#8c8c8c" d="M274.5 307.8l.2.3-.2-.3z"/>
+    <path fill="#dedede" d="M283.4 307.5l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M283.9 307.5l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M287.4 307.5l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M287.9 307.5l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M288.4 307.5l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M291 307.5l.4.5-.5-.5z"/>
+    <path fill="#520808" d="M291.4 307.5l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M292 307.5l.4.5-.5-.5m3.5 0l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M296 307.5l.4.5-.5-.5z"/>
+    <path fill="#631808" d="M296.8 307.7l.3.1-.3-.1z"/>
+    <path fill="#941808" d="M297.4 307.5l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M298 307.5l.4.5-.5-.5z"/>
+    <path fill="#5a1008" d="M298.4 307.5l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M299 307.5l.4.5-.5-.5z"/>
+    <path fill="#520808" d="M300.4 307.5l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M301.3 307.7l.3.1-.3-.1z"/>
+    <path fill="#bdbdbd" d="M304.3 307.7l.3.1-.3-.1z"/>
+    <path fill="#ada5a5" d="M223.2 308l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M223.7 308l.5.5-.5-.5z"/>
+    <path fill="#733129" d="M224.2 308l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M224.7 308l.5.5-.5-.5z"/>
+    <path fill="#de2110" d="M222.2 309.4c2 4.1 12.6 5.3 15 1-5.8.7-9.5-3.7-15-1z"/>
+    <path fill="#ce2110" d="M227.7 308l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M228.2 308l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M228.7 308l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M230.8 308l.4.5-.4-.5z"/>
+    <path fill="#de2110" d="M236.8 309.9c-4.7-3.6-7.8 1 0 0z"/>
+    <path fill="#ce2110" d="M233.3 308l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M233.8 308l.5.5-.5-.5z"/>
+    <path fill="#520808" d="M234.3 308l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M234.8 308l.5.5-.5-.5zm6 0l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M241.3 308l.5.5-.5-.5z"/>
+    <path fill="#5a2121" d="M245.3 308l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M255.3 308l.5.5-.5-.5z"/>
+    <path fill="#736b6b" d="M283.9 308l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M284.4 308l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M288.4 308l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M288.9 308l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M294.4 308l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M295.3 308.1l.3.2-.4-.2z"/>
+    <path fill="#bd2110" d="M296 308l.4.5-.5-.5z"/>
+    <path fill="#de2110" d="M293 309.4v.5c2.5.3 5.4 1.2 6-2l-6 1.5z"/>
+    <path fill="#520808" d="M299 308l.4.5-.5-.5z"/>
+    <path fill="#b51010" d="M300 308l.4.5-.5-.5z"/>
+    <path fill="#5a1008" d="M300.4 308l-.5 1 .5-1z"/>
+    <path fill="#ad1810" d="M301 308l.4.5-.5-.5z"/>
+    <path fill="#ce2110" d="M301.4 308l.5.5-.5-.5z"/>
+    <path fill="#de2110" d="M292.4 310.4c2.5 4.3 13 3 15-1-5.4-2.7-9.2 1.7-15 1z"/>
+    <path fill="#941808" d="M304.4 308l.6.5-.6-.5z"/>
+    <path fill="#6b2908" d="M305 308l.4.5-.4-.5z"/>
+    <path fill="#736b6b" d="M305.4 308l.6.5-.6-.5z"/>
+    <path fill="#9c9494" d="M306 308l.4.5-.4-.5z"/>
+    <path fill="#efefef" d="M306.4 308l.6.5-.6-.5z"/>
+    <path fill="#cecece" d="M222.2 308.5l-1 1.4 1-1.4z"/>
+    <path fill="#5a3131" d="M222.7 308.5l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M223.2 308.5l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M229.3 308.5l.4.5-.4-.5z"/>
+    <path fill="#ad1810" d="M234.8 308.5l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M235.6 308.6l.3.2-.3-.2z"/>
+    <path fill="#bd2110" d="M236.3 308.5l.5.5-.5-.5z"/>
+    <path fill="#631818" d="M244.8 308.5l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M245.3 308.5l-.5 1 .5-1z"/>
+    <path fill="#631808" d="M255.3 308.5l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M258.8 308.5v.5l2 .4-2-1z"/>
+    <path fill="#941808" d="M266.3 308.5l1 1-1-1z"/>
+    <path fill="#ce2110" d="M266.9 308.5l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M268.9 308.5l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M270.9 308.5l1 1-1-1z"/>
+    <path fill="#ad1810" d="M273.9 308.5l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M274.4 308.5l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M283.9 308.5l.5.5-.5-.5z"/>
+    <path fill="#5a2121" d="M284.4 308.5l1 1-1-1z"/>
+    <path fill="#ce2110" d="M293 308.5l.4.5-.5-.5z"/>
+    <path fill="#7b1008" d="M293.4 308.5l-.5 1 .5-1z"/>
+    <path fill="#5a1008" d="M294 308.5l.4.5-.5-.5z"/>
+    <path fill="#941808" d="M294.4 308.5l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M299 308.5l.4.5-.5-.5z"/>
+    <path fill="#631808" d="M299.4 308.5l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M306 308.5l.4.5-.4-.5z"/>
+    <path fill="#5a2121" d="M306.4 308.5l.6.5-.6-.5z"/>
+    <path fill="#bdbdbd" d="M307 308.5l.4.5-.4-.5z"/>
+    <path fill="#631818" d="M222.2 309l.5.4-.5-.4z"/>
+    <path fill="#ce2110" d="M229.3 309l.4.4-.4-.4z"/>
+    <path fill="#210800" d="M229.8 309l.4.4-.4-.4z"/>
+    <path fill="#ad1810" d="M230.3 309l-.6.9.6-1z"/>
+    <path fill="#ce2110" d="M235.8 309l.5.4-.5-.4z"/>
+    <path fill="#7b1008" d="M236.3 309l.5.4-.5-.4z"/>
+    <path fill="#420000" d="M236.8 309l.5.4-.5-.4z"/>
+    <path fill="#ad1810" d="M237.3 309l.5.4-.5-.4z"/>
+    <path fill="#bd2110" d="M243.8 309l.5.4-.5-.4z"/>
+    <path fill="#5a1010" d="M244.3 309l.5.4-.5-.4z"/>
+    <path fill="#734a42" d="M255.3 309l.5.4-.5-.4z"/>
+    <path fill="#ce2110" d="M257.8 309l.5.4-.5-.4z"/>
+    <path fill="#310000" d="M258.3 309l.5.4-.5-.4z"/>
+    <path fill="#941808" d="M259 309.3l.2.3-.2-.3z"/>
+    <path fill="#b51010" d="M259.7 309.1l.3.2-.3-.2z"/>
+    <path fill="#7b1008" d="M260.8 309l.5.4-.5-.4z"/>
+    <path fill="#5a1008" d="M261.3 309l.5.4-.5-.4z"/>
+    <path fill="#631808" d="M261.8 309l.5.4-.5-.4z"/>
+    <path fill="#7b1008" d="M262.3 309l.5.4-.5-.4z"/>
+    <path fill="#520808" d="M262.8 309l.5.4-.5-.4z"/>
+    <path fill="#420000" d="M266.3 309l.5.4-.5-.4z"/>
+    <path fill="#631808" d="M267.4 309v.4h1.5l-1.5-.4z"/>
+    <path fill="#941808" d="M268.9 309l.5.4-.5-.4z"/>
+    <path fill="#bd2110" d="M269.9 309l.5.4-.5-.4z"/>
+    <path fill="#310000" d="M270.9 309l.5.4-.5-.4z"/>
+    <path fill="#941808" d="M273.9 309l.5.4-.5-.4z"/>
+    <path fill="#cecece" d="M274.4 309l.5.4-.5-.4m10 0l.5.4-.5-.4z"/>
+    <path fill="#b51010" d="M285.4 309l.5.4-.5-.4m6.5 0l.5.4-.5-.4z"/>
+    <path fill="#520808" d="M292.4 309l.5.4-.5-.4z"/>
+    <path fill="#bd2110" d="M293.4 309l.5.4-.5-.4m5.5 0l.5.4-.5-.4z"/>
+    <path fill="#210800" d="M299.4 309l.5.4-.5-.4z"/>
+    <path fill="#bd2110" d="M300 309l.4.4-.5-.4z"/>
+    <path fill="#7b1008" d="M307 309l.4.4-.4-.4z"/>
+    <path fill="#9c9494" d="M307.4 309l.6.4-.6-.4z"/>
+    <path fill="#631818" d="M221.7 309.4l2.5 2.9-2.5-2.9z"/>
+    <path fill="#420000" d="M230.3 309.4l.4.5-.4-.5z"/>
+    <path fill="#842118" d="M236.8 309.4l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M237.3 309.4l.5.5-.5-.5z"/>
+    <path fill="#524242" d="M237.8 309.4l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M238.3 309.4l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M238.8 309.4l.5.5-.5-.5m4 0l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M243.3 309.4l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M243.8 309.4l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M244.3 309.4l.5.5-.5-.5z"/>
+    <path fill="#845a52" d="M255.3 309.4l.5.5-.5-.5z"/>
+    <path fill="#bd2110" d="M256.3 309.4l.5.5-.5-.5z"/>
+    <path fill="#631818" d="M256.8 309.4l.5.5-.5-.5z"/>
+    <path fill="#7b5252" d="M257.3 309.4l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M257.8 309.4l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M258.3 309.4l.5.5-.5-.5z"/>
+    <path fill="#de2110" d="M259.3 309.4v.5h2l-2-.5z"/>
+    <path fill="#b51010" d="M261.3 309.4l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M261.8 309.4l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M262.3 309.4l.5.5-.5-.5z"/>
+    <path fill="#392100" d="M262.8 309.4l.5.5-.5-.5z"/>
+    <path fill="#292100" d="M263.3 309.4l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M263.8 309.4l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M264.7 309.6l.3.1-.3-.1z"/>
+    <path fill="#941808" d="M265.3 309.4l.5.5-.5-.5z"/>
+    <path fill="#311000" d="M265.8 309.4l.5.5-.5-.5z"/>
+    <path fill="#292100" d="M266.3 309.4l.5.5-.5-.5z"/>
+    <path fill="#4a1000" d="M266.9 309.4l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M267.4 309.4l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M267.9 309.4l.5.5-.5-.5z"/>
+    <path fill="#de2110" d="M268.4 309.4v.5h2l-2-.5z"/>
+    <path fill="#b51010" d="M270.4 309.4l.5.5-.5-.5z"/>
+    <path fill="#5a1010" d="M270.9 309.4l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M271.4 309.4l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M271.9 309.4l.5.5-.5-.5z"/>
+    <path fill="#6b2131" d="M272.4 309.4l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M272.9 309.4l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M273.9 309.4l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M285.4 309.4l.5.5-.5-.5z"/>
+    <path fill="#631818" d="M285.9 309.4l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M286.4 309.4l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M290.4 309.4l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M291 309.4l.4.5-.5-.5z"/>
+    <path fill="#733939" d="M291.4 309.4l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M292 309.4l.4.5-.5-.5z"/>
+    <path fill="#631818" d="M292.4 309.4l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M307.4 309.4l.6.5-.6-.5z"/>
+    <path fill="#ada5a5" d="M308 309.4l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M221.2 309.9l2 1.9-2-1.9z"/>
+    <path fill="#941808" d="M230.3 309.9l.4.5-.4-.5z"/>
+    <path fill="#5a1008" d="M230.8 309.9l1 1-1-1z"/>
+    <path fill="#ce2110" d="M234.8 309.9l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M235.4 310.2l.2.3-.2-.3z"/>
+    <path fill="#631808" d="M236.1 310l.3.2-.3-.1z"/>
+    <path fill="#7b1008" d="M236.8 309.9l.5.5-.5-.5z"/>
+    <path fill="#392121" d="M237.3 309.9l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M238.3 309.9l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M238.8 309.9l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M239.3 309.9l.5.5-.5-.5z"/>
+    <path fill="#6b2131" d="M239.8 309.9l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M240.3 309.9l.5.5-.5-.5z"/>
+    <path fill="#9c4239" d="M240.8 309.9l.5.5-.5-.5z"/>
+    <path fill="#ad524a" d="M241.3 309.9l.5.5-.5-.5z"/>
+    <path fill="#734a42" d="M241.8 309.9l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M242.3 309.9l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M242.8 309.9l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M243.3 309.9l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M255.3 309.9l.5.5-.5-.5z"/>
+    <path fill="#6b2131" d="M255.8 309.9l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M256.3 309.9l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M256.8 309.9l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#313931" d="M258.8 309.9l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M259.3 309.9v.5h2l-2-.5z"/>
+    <path fill="#296300" d="M261.3 309.9l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M261.8 309.9l-.5 1.9.5-1.9z"/>
+    <path fill="#319400" d="M262.7 310l.3.2-.3-.1z"/>
+    <path fill="#214210" d="M263.3 309.9l-.5 1 .5-1z"/>
+    <path fill="#9c9494" d="M263.8 309.9l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M264.7 310l.3.2-.3-.1z"/>
+    <path fill="#efefef" d="M265.3 309.9l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M265.8 309.9l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M266.3 309.9l.5.5-.5-.5z"/>
+    <path fill="#428c00" d="M266.9 309.9c1.8 2.1 5 4.8 7.5 2.4l-7.5-2.4z"/>
+    <path fill="#397b00" d="M267.9 309.9l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M268.4 309.9v.5h2l-2-.5z"/>
+    <path fill="#103900" d="M270.4 309.9l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M270.9 309.9l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M272.9 309.9l.5.5-.5-.5z"/>
+    <path fill="#524242" d="M273.4 309.9l.5.5-.5-.5z"/>
+    <path fill="#5a1010" d="M273.9 309.9l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M286.4 309.9l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M286.9 309.9l.5.5-.5-.5z"/>
+    <path fill="#734a42" d="M287.4 309.9l.5.5-.5-.5z"/>
+    <path fill="#ad524a" d="M288.2 310l.4.2-.4-.1z"/>
+    <path fill="#631808" d="M288.9 309.9l.5.5-.5-.5z"/>
+    <path fill="#733129" d="M289.4 309.9l.5.5-.5-.5z"/>
+    <path fill="#736b6b" d="M290 309.9l.4.5-.5-.5z"/>
+    <path fill="#9c9494" d="M290.4 309.9l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M291 309.9l.4.5-.5-.5z"/>
+    <path fill="#52525a" d="M292 309.9l.4.5-.5-.5z"/>
+    <path fill="#5a1008" d="M292.4 309.9l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M293.3 310l.3.2-.4-.1z"/>
+    <path fill="#ad1810" d="M294 310.2l.2.3-.1-.3z"/>
+    <path fill="#ce2110" d="M294.4 309.9l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M298.4 309.9l.5.5-.5-.5z"/>
+    <path fill="#631818" d="M307.4 309.9l.6.5-.6-.5z"/>
+    <path fill="#63636b" d="M308 309.9l-.5 1 .5-1z"/>
+    <path fill="#efefef" d="M308.5 309.9l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M220.7 310.4l2 1.9-2-2z"/>
+    <path fill="#cecece" d="M221.2 310.4l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M230.8 310.4l.4.5-.4-.5z"/>
+    <path fill="#631808" d="M232 310.5l.4.2-.3-.2z"/>
+    <path fill="#941808" d="M232.8 310.4l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M233.3 310.4l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M233.8 310.4l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M234.6 310.5l.3.2-.3-.2z"/>
+    <path fill="#5a1008" d="M237.3 310.4l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M237.8 310.4l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M255.3 310.4l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M257.8 310.4l.5.5-.5-.5z"/>
+    <path fill="#294221" d="M258.3 310.4l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M258.8 310.4l.5.5-.5-.5z"/>
+    <path fill="#319400" d="M255.8 312.3c2.4 2.2 4.9.1 6.5-2l-6.5 2z"/>
+    <path fill="#cecece" d="M263.3 310.4l-.5 1 .5-1z"/>
+    <path fill="#8c8c8c" d="M266.3 310.4l.5.5-.5-.5z"/>
+    <path fill="#294200" d="M266.9 310.4l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M270.9 310.4l.5.5-.5-.5z"/>
+    <path fill="#52525a" d="M271.4 310.4l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M271.9 310.4l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M273.9 310.4l.5.5-.5-.5z"/>
+    <path fill="#420000" d="M292 310.4l.4.5-.5-.5z"/>
+    <path fill="#7b1008" d="M294.4 310.4l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M295 310.4l.4.5-.5-.5z"/>
+    <path fill="#7b1008" d="M295.4 310.4l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M296 310.4l.4.5-.5-.5z"/>
+    <path fill="#941808" d="M296.4 310.4l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M297 310.4v.5h1.4l-1.5-.5z"/>
+    <path fill="#ad1810" d="M298.4 310.4l.5.5-.5-.5z"/>
+    <path fill="#520808" d="M307 310.4l.4.5-.4-.5z"/>
+    <path fill="#cecece" d="M308 310.4l-1 1.4 1-1.4z"/>
+    <path fill="#8c8c8c" d="M308.5 310.4l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M220.2 310.9l.5.4-.5-.4z"/>
+    <path fill="#cecece" d="M221.7 310.9l.5.4-.5-.4z"/>
+    <path fill="#7b1008" d="M237.3 310.9l.5.4-.5-.4z"/>
+    <path fill="#dedede" d="M237.8 310.9l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M257.3 310.9l.5.4-.5-.4z"/>
+    <path fill="#184a00" d="M257.8 310.9l.5.4-.5-.4z"/>
+    <path fill="#314231" d="M262.3 310.9l-.5.9.5-1z"/>
+    <path fill="#bdbdbd" d="M266.9 310.9l.5.4-.5-.4z"/>
+    <path fill="#213918" d="M267.4 310.9l.5.4-.5-.4m4.5 0l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M272.4 310.9l.5.4-.5-.4z"/>
+    <path fill="#5a1008" d="M292 310.9l.4.4-.5-.4z"/>
+    <path fill="#631808" d="M306.4 310.9l.6.4-.6-.4z"/>
+    <path fill="#424242" d="M307 310.9l.4.4-.4-.4z"/>
+    <path fill="#7b7373" d="M308 310.9l-1 1.4 1-1.4z"/>
+    <path fill="#9c9494" d="M308.5 310.9l-.5.9.5-1z"/>
+    <path fill="#cecece" d="M220.7 311.3l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M236.8 311.3l-.5 1 .5-1z"/>
+    <path fill="#63636b" d="M237.3 311.3l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M256.3 311.3l.5.5-.5-.5z"/>
+    <path fill="#294221" d="M256.8 311.3l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M257.3 311.3l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M262.3 311.3l.5.5-.5-.5m5 0l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M267.9 311.3l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M268.4 311.3l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M272.4 311.3l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M272.9 311.3l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M273.4 311.3l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M292 311.3l.4.5-.5-.5z"/>
+    <path fill="#ad1810" d="M292.4 311.3l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M306 311.3l-1 1.5 1-1.5z"/>
+    <path fill="#424242" d="M306.4 311.3l-1 1.5 1-1.5z"/>
+    <path fill="#7b7373" d="M309 311.3l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M220.2 311.8l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M221.2 311.8l1 1-1-1z"/>
+    <path fill="#7b7373" d="M221.7 311.8l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M222.7 311.8l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M223.2 311.8l1 1-1-1z"/>
+    <path fill="#5a3131" d="M236.8 311.8l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M255.3 311.8l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M255.8 311.8l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M256.3 311.8l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M260.8 311.8l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M261.3 311.8l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M268.4 311.8l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M268.9 311.8l.5.5-.5-.5m4.5 0l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M273.9 311.8l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M274.4 311.8l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M292.4 311.8l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M293 311.8l.4.5-.5-.5z"/>
+    <path fill="#dedede" d="M306.4 311.8l.6.5-.6-.5z"/>
+    <path fill="#a59494" d="M307.4 311.8l.6.5-.6-.5z"/>
+    <path fill="#63636b" d="M308.5 311.8l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M309 311.8l-.5 1.4.5-1.4z"/>
+    <path fill="#bdbdbd" d="M220.7 312.3l.5.5-.5-.5z"/>
+    <path fill="#7b7373" d="M222.2 312.3l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M222.7 312.3l3.5 2.8-3.5-2.8z"/>
+    <path fill="#9c9494" d="M223.2 312.3l.5.5-.5-.5z"/>
+    <path fill="#7b1008" d="M224.2 312.3l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M228.7 312.3l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M229.3 312.3l.4.5-.4-.5z"/>
+    <path fill="#8c3939" d="M229.8 312.3l.4.5-.4-.5z"/>
+    <path fill="#843129" d="M233.3 312.3l.5.5-.5-.5z"/>
+    <path fill="#6b5252" d="M235.8 312.3l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M236.3 312.3l.5.5-.5-.5m18.5 0l.5.5-.5-.5z"/>
+    <path fill="#184a00" d="M255.3 312.3l.5.5-.5-.5z"/>
+    <path fill="#297b00" d="M259.8 312.3l.5.5-.5-.5z"/>
+    <path fill="#294221" d="M260.3 312.3l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M260.8 312.3l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M268.9 312.3l.5.5-.5-.5z"/>
+    <path fill="#213918" d="M269.4 312.3l.5.5-.5-.5z"/>
+    <path fill="#103900" d="M274.4 312.3l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M274.9 312.3l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M293 312.3l.4.5-.5-.5z"/>
+    <path fill="#736b6b" d="M293.4 312.3l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M294 312.3l.4.5-.5-.5z"/>
+    <path fill="#842118" d="M296 312.3l.4.5-.5-.5z"/>
+    <path fill="#8c4a4a" d="M296.4 312.3l.5.5-.5-.5zm3 0l.5.5-.5-.5z"/>
+    <path fill="#631808" d="M300 312.3l.4.5-.5-.5z"/>
+    <path fill="#941808" d="M300.4 312.3l.5.5-.5-.5z"/>
+    <path fill="#ce2110" d="M301 312.3l.4.5-.5-.5z"/>
+    <path fill="#cecece" d="M306 312.3l-1.6 1.9 1.6-2z"/>
+    <path fill="#8c8c8c" d="M306.4 312.3l-2.4 3.3 2.4-3.3z"/>
+    <path fill="#ada5a5" d="M307.3 312.4l.3.2-.3-.2z"/>
+    <path fill="#dedede" d="M220.7 312.8l.5.4-.5-.4z"/>
+    <path fill="#cecece" d="M221.2 312.8l1 1.4-1-1.4z"/>
+    <path fill="#efefef" d="M222.2 312.8l.5.4-.5-.4z"/>
+    <path fill="#9c9494" d="M223.7 312.8l.5.4-.5-.4z"/>
+    <path fill="#52525a" d="M224.2 312.8l.5.4-.5-.4z"/>
+    <path fill="#941808" d="M224.7 312.8l.5.4-.5-.4z"/>
+    <path fill="#bd2110" d="M227.2 312.8l.5.4-.5-.4z"/>
+    <path fill="#5a1008" d="M227.7 312.8l.5.4-.5-.4z"/>
+    <path fill="#736b6b" d="M228.2 312.8l.5.4-.5-.4z"/>
+    <path fill="#bdbdbd" d="M228.7 312.8l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M254.8 312.8l.5.4-.5-.4z"/>
+    <path fill="#314231" d="M255.3 312.8l.5.4-.5-.4z"/>
+    <path fill="#297b00" d="M255.8 312.8l1 1-1-1z"/>
+    <path fill="#185200" d="M259.3 312.8l.5.4-.5-.4z"/>
+    <path fill="#7b7373" d="M259.8 312.8l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M260.3 312.8l.5.4-.5-.4m9 0l.5.4-.5-.4z"/>
+    <path fill="#7b7373" d="M269.9 312.8l.5.4-.5-.4z"/>
+    <path fill="#294200" d="M270.4 312.8l.5.4-.5-.4z"/>
+    <path fill="#397b00" d="M273.9 312.8l-.5 1 .5-1z"/>
+    <path fill="#52525a" d="M274.4 312.8l.5.4-.5-.4z"/>
+    <path fill="#efefef" d="M274.9 312.8l.5.4-.5-.4z"/>
+    <path fill="#cecece" d="M300.4 312.8l.5.4-.5-.4z"/>
+    <path fill="#7b7373" d="M301 312.8l.4.4-.5-.4z"/>
+    <path fill="#631818" d="M301.4 312.8l.5.4-.5-.4z"/>
+    <path fill="#b51010" d="M302 312.8l.4.4-.5-.4m2.5 0l-.5 1 .5-1z"/>
+    <path fill="#292921" d="M305 312.8l.4.4-.4-.4z"/>
+    <path fill="#cecece" d="M307 312.8l.4.4-.4-.4m1 0l-1.6 1.9 1.6-2z"/>
+    <path fill="#bdbdbd" d="M221.7 313.2l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M222.7 313.2l.5.5-.5-.5z"/>
+    <path fill="#424242" d="M224.7 313.2l.5.5-.5-.5z"/>
+    <path fill="#ad1810" d="M225.2 313.2l.5.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M227.2 313.2l.5.5-.5-.5z"/>
+    <path fill="#efefef" d="M227.7 313.2l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M255.8 313.2l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M258.3 313.2l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M258.8 313.2l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M259.3 313.2l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M270.4 313.2l.5.5-.5-.5z"/>
+    <path fill="#425242" d="M270.9 313.2l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M271.4 313.2l.5.5-.5-.5z"/>
+    <path fill="#63636b" d="M273.9 313.2l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M302 313.2l.4.5-.5-.5z"/>
+    <path fill="#941808" d="M302.4 313.2l.5.5-.5-.5z"/>
+    <path fill="#292921" d="M304.4 313.2l.6.5-.6-.5z"/>
+    <path fill="#cecece" d="M306.4 313.2l.6.5-.6-.5z"/>
+    <path fill="#ada5a5" d="M308 313.2l-1 1.5 1-1.5z"/>
+    <path fill="#cecece" d="M223.2 313.7l2 2-2-2z"/>
+    <path fill="#7b7373" d="M223.7 313.7l.5.5-.5-.5z"/>
+    <path fill="#292921" d="M225.2 313.7l.5.5-.5-.5z"/>
+    <path fill="#b51010" d="M225.7 313.7l.5.5-.5-.5z"/>
+    <path fill="#941808" d="M226.2 313.7l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M226.7 313.7l.5.5-.5-.5m29.6 0l.5.5-.5-.5z"/>
+    <path fill="#185200" d="M256.8 313.7l.5.5-.5-.5z"/>
+    <path fill="#296300" d="M257.3 313.7l.5.5-.5-.5z"/>
+    <path fill="#395231" d="M257.8 313.7l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M258.3 313.7l.5.5-.5-.5m13 0l.6.5-.5-.5z"/>
+    <path fill="#5a5231" d="M271.9 313.7l.5.5-.5-.5z"/>
+    <path fill="#397b00" d="M272.4 313.7l.5.5-.5-.5z"/>
+    <path fill="#295200" d="M272.9 313.7l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M273.4 313.7l.5.5-.5-.5m29 0l.5.5-.5-.5z"/>
+    <path fill="#5a1008" d="M303 313.7l.4.5-.5-.5z"/>
+    <path fill="#ce2110" d="M303.4 313.7l.5.5-.5-.5z"/>
+    <path fill="#391810" d="M304 313.7l.4.5-.5-.5z"/>
+    <path fill="#cecece" d="M306 313.7l.4.5-.4-.5z"/>
+    <path fill="#7b7373" d="M224.2 314.2l.5.5-.5-.5z"/>
+    <path fill="#313931" d="M225.7 314.2l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M226.2 314.2l.5.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M256.8 314.2l.5.5-.5-.5z"/>
+    <path fill="#9c9494" d="M257.3 314.2l.5.5-.5-.5m15 0l.6.5-.5-.5z"/>
+    <path fill="#ada5a5" d="M272.9 314.2l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M303 314.2l1 1-1-1z"/>
+    <path fill="#292921" d="M303.4 314.2l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M304 314.2l.4.5-.5-.5m1.5 0l.5.5-.5-.5z"/>
+    <path fill="#8c8c8c" d="M222.7 314.7l.5.5-.5-.5z"/>
+    <path fill="#cecece" d="M223.2 314.7l2 1.9-2-2z"/>
+    <path fill="#7b7373" d="M224.7 314.7l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M305 314.7l.4.5-.4-.5z"/>
+    <path fill="#dedede" d="M306 314.7l-.6 1 .6-1z"/>
+    <path fill="#7b7373" d="M306.4 314.7l-.4 1 .4-1m-83.2.5l.5.4-.5-.4z"/>
+    <path fill="#8c8c8c" d="M225.2 315.1l.5.5-.5-.5z"/>
+    <path fill="#bdbdbd" d="M304.4 315.1l.6.5-.6-.5z"/>
+    <path fill="#8c8c8c" d="M223.7 315.6l1 1-1-1z"/>
+    <path fill="#efefef" d="M225.2 315.6l.5.5-.5-.5z"/>
+    <path fill="#dedede" d="M305 315.6l.4.5-.4-.5m-81.3.5l1 1-1-1z"/>
+    <path fill="#efefef" d="M304.4 316.1l.6.5-.6-.5z"/>
+    <path fill="#dedede" d="M305.4 316.1l-.4 1 .4-1z"/>
+    <path fill="#ecca5e" d="M248.2 228.2l.8-.2.3.3h.5a.8.8 0 00.4 0 .2.2 0 00.1-.3.2.2 0 000-.1.7.7 0 00-.4-.1 4.7 4.7 0 01-1.3-.2.8.8 0 01-.4-.7.8.8 0 01.2-.6c.2-.2.5-.4 1-.4h1l.4.6-.7.2a.5.5 0 00-.2-.2.7.7 0 00-.4 0 1 1 0 00-.5 0 .2.2 0 000 .2v.2l.8.1 1 .2c.2.2.3.3.3.6a.9.9 0 01-.3.7c-.2.3-.5.4-1 .4a2 2 0 01-1 0 1.2 1.2 0 01-.6-.7zm-3.6-.2l.1-.8.5-.6c.2-.2.5-.3.8-.3.5 0 .9 0 1.2.3.3.2.5.6.6 1 0 .5 0 .9-.3 1.2a2 2 0 01-1.1.6 1.9 1.9 0 01-.8-.1 1.3 1.3 0 01-.7-.5c-.2-.2-.3-.5-.3-.8zm.8-.1c0 .3.2.5.3.7.2 0 .4.2.6.1a.7.7 0 00.5-.3c.1-.2.2-.4.1-.7a1 1 0 00-.3-.6.7.7 0 00-.5-.2.7.7 0 00-.5.3c-.2.2-.2.4-.2.7zm-2.5-1.6l-.1-.7.8-.1.1.7-.8.1zm.4 3.3l-.4-2.9.9-.1.3 3h-.8zm-4.8-3.5l1.6-.2h.8c.2 0 .5.1.7.3l.5.6.2 1v.8c0 .3-.2.6-.4.8l-.5.4-.8.2-1.6.2-.5-4.1zm1 .6l.3 2.7.6-.1.5-.1a.8.8 0 00.4-.2.8.8 0 00.1-.4v-.8l-.1-.7a1 1 0 00-.3-.4.9.9 0 00-.5-.1h-1.1z"/>
+    <path fill="#ecca5e" fill-rule="evenodd" d="M250 239.5l12.2 15.3-.6.7-12.2-15.3zm31.4-1.1l-13.6 18-1-.4 13.5-18zm-34.5 4.1l14.4 13.4-.5.8-14.4-13.4zm-3.4 3.1l15.9 11.9-.4.8-15.9-11.9zm40-2.3l-14.3 13.5-.8-.4 14.2-13.5zm3 2.5l-16 11.7-.6-.6 16-11.6z"/>
+    <path fill="#7b5a00" fill-opacity=".6" d="M277 244l3.3-4.2-.4-.3-2.9 4.5z"/>
+    <path fill="#7b5a00" fill-opacity=".5" d="M269.5 253.9l3.3-4.2-.4-.3-2.9 4.5z"/>
+    <path fill="#7b5a00" fill-opacity=".7" d="M273.3 249.1l3.2-4.2-.3-.3-3 4.5z"/>
+    <path fill="#7b5a00" fill-opacity=".5" d="M281 249.6l4.6-2.8-.3-.4-4.3 3.2z"/>
+    <path fill="#7b5a00" fill-opacity=".4" d="M275 251.3l4-3.5-.3-.3-3.8 3.8z"/>
+    <path fill="#428c00" d="M236 286h-.6c0-2.7-1.1-4.5-4-5.2 0 1.4 1.1 7.1 3.5 5.2h.5l-1 4.3c1.5-1.6 7.7-7.1 5-9.6-2.3-2-3.4 4.3-3.5 5.3zm-4-34h-.5c-.1-2.7-1.2-4.5-4-5.3 0 1.5 1.1 7.2 3.5 5.3h.5l-1 4.3c1.5-1.6 7.7-7.2 5-9.6-2.3-2.1-3.5 4.2-3.5 5.3z"/>
+    <path fill="#ecca5e" d="M297.1 230.6h-.7v-.5a1.3 1.3 0 01-.5.3 1.2 1.2 0 01-1.4-.5c-.2-.2-.3-.6-.2-1.1 0-.5.2-.9.5-1.1.3-.3.6-.4 1-.3.3 0 .6.2.8.5l.2-1.5.8.1-.5 4zm-2-1.8v.7a.6.6 0 00.6.4.6.6 0 00.5-.2c.2-.1.2-.4.3-.7l-.1-.7a.6.6 0 00-.5-.3.6.6 0 00-.5.2 1 1 0 00-.3.6zm-3.3-.9l-.7-.2c.1-.3.3-.4.5-.6s.5-.1 1 0l.7.1.4.4v.7l-.1 1a3 3 0 000 .5v.4h-.7a2.4 2.4 0 01-.1-.3v-.1a1.4 1.4 0 01-1 .3 1 1 0 01-.7-.4.8.8 0 01-.3-.6.8.8 0 01.6-.7l.7-.1.8-.1v-.4l-.5-.2a.6.6 0 00-.3 0 .6.6 0 00-.3.3zm1 .8h-.5a2 2 0 00-.4.1l-.2.3v.3l.4.1a.7.7 0 00.4 0 .5.5 0 00.3-.3v-.5zm-2-1.8l-.1.6h-.6l-.1 1.2v.4l.1.1a1 1 0 00.4 0v.6h-.7a1 1 0 01-.4 0 .6.6 0 01-.2-.3.7.7 0 01-.1-.3 3.5 3.5 0 010-.5l.2-1.3h-.4l.1-.7h.4v-.5l1-.4-.2 1 .6.1zm-3.4 2.6h-.8l.4-3h.7v.5l.4-.4a.7.7 0 01.3 0c.2 0 .4 0 .6.2l-.4.6a.7.7 0 00-.3-.1.5.5 0 00-.3 0l-.3.3-.2 1v1zm-2.2-1.2l.8.2a1 1 0 01-.5.6c-.3.2-.6.2-1 .2-.5 0-.8-.3-1-.7a1.6 1.6 0 01-.2-1c0-.5.2-.9.5-1.1.3-.3.7-.4 1-.3.5 0 .9.2 1.1.5.3.4.3.8.2 1.4l-2-.2.1.5c.1.2.3.3.5.3a.5.5 0 00.3 0 .6.6 0 00.2-.4zm.2-.8l-.1-.5a.6.6 0 00-.4-.2.6.6 0 00-.5.1.7.7 0 00-.3.5l1.3.1zm-5.8 1.2l.5-4.1h.9l-.2 1.5c.3-.2.6-.3 1-.3.3 0 .6.2.8.5.2.3.3.7.2 1.2 0 .5-.2.9-.5 1.1a1.2 1.2 0 01-1.5.1 1.3 1.3 0 01-.4-.4v.4h-.8zm1-1.5l.1.7a.7.7 0 00.5.4.6.6 0 00.5-.2c.2-.1.3-.4.3-.7l-.1-.7a.6.6 0 00-.5-.3.6.6 0 00-.5.2l-.3.6zm-2.2-2l.1-.8.8.1v.7h-.9zm-.4 3.3l.4-3 .8.1-.4 3-.8-.1zm-3.6-.4l.5-4h.8l-.4 3.4 2.2.2-.1.7-3-.3z"/>
+    <path fill="#428c00" d="M227 261.4h-.5c-.1-2.7-1.2-4.5-4-5.3 0 1.5 1 7.2 3.5 5.3h.5l-1 4.3c1.5-1.6 7.7-7.2 5-9.6-2.3-2.1-3.5 4.2-3.5 5.3z"/>
+    <path fill="#fac349" fill-rule="evenodd" d="M244.7 246.2c0 .4-.4.7-1 .7s-.9-.3-.9-.7c0-.3.5-.6 1-.6s.9.3.9.6zm3.1-3.3c0 .4-.4.7-.9.7s-1-.3-1-.7c0-.4.5-.6 1-.6s1 .3 1 .6zm3-3c0 .3-.5.6-1 .6s-1-.3-1-.7c0-.3.5-.6 1-.6s1 .3 1 .6zm30.8-1.3c0 .4-.4.7-1 .7s-.8-.3-.8-.7c0-.4.4-.7.9-.7s1 .3 1 .7zm2.2 4.3c0 .4-.4.7-.9.7s-1-.3-1-.7c0-.4.5-.6 1-.6s1 .3 1 .6zm3.3 2.8c0 .3-.4.6-1 .6s-.9-.3-.9-.6c0-.4.4-.7 1-.7s.9.3.9.7z"/>
+    <path fill="#ecca5e" d="M270.8 222.4l-.7-.2c0-.2.2-.5.4-.6l1-.2.8.1.3.4.1.7v.9a1.8 1.8 0 00.2 1h-.8a3.2 3.2 0 01-.1-.3l-.5.2-.5.1a1.1 1.1 0 01-.8-.3.8.8 0 01-.2-.6.8.8 0 01.5-.7l.6-.2.8-.2v-.4l-.5-.1a.6.6 0 00-.4 0 .6.6 0 00-.2.4zm1.1.6a5.7 5.7 0 01-.5.1l-.4.2-.2.2.1.3.4.2.4-.2a.5.5 0 00.2-.2v-.6zm-3.4-2v-.7h.9v.8h-.8zm0 3.4v-3h.9v3h-.9zm-1.5 0h-.9v-3h.8v.5l.4-.4a.7.7 0 01.4-.1l.5.1-.3.7a.8.8 0 00-.4-.1.5.5 0 00-.3 0l-.1.4a4.5 4.5 0 00-.1 1v.9zm-1.4-3v.6h-.5v1.7a.3.3 0 00.2.1h.3v.5l-.6.2a1 1 0 01-.4-.1.6.6 0 01-.3-.2.7.7 0 010-.3 3.4 3.4 0 010-.6V222h-.4v-.6h.3v-.6l.9-.4v1h.5zm-4.1.9l-.8-.1c.1-.3.2-.5.5-.7l.9-.2c.3 0 .6 0 .8.2.2 0 .3.2.4.3v1.6a1.8 1.8 0 00.2 1h-.8a3.2 3.2 0 010-.3 1.3 1.3 0 01-1 .3 1.1 1.1 0 01-.8-.2.8.8 0 01-.3-.7.8.8 0 01.1-.4.8.8 0 01.4-.3l.7-.2.8-.2-.1-.4h-.5a.6.6 0 00-.3 0 .6.6 0 00-.2.3zm1 .6a5.8 5.8 0 01-.4.2h-.5l-.2.4s0 .2.2.2l.3.2c.1 0 .3 0 .4-.2a.5.5 0 00.2-.2v-.6zm-5.7 1.4v-4h2.5c.2 0 .4.2.6.4.2.2.3.5.2.8l-.1.6a1.1 1.1 0 01-.4.4 1.3 1.3 0 01-.4.2 5 5 0 01-1 0h-.5v1.6h-.9zm1-3.4v1.2h1.1a.6.6 0 00.3-.6.5.5 0 000-.4.6.6 0 00-.4-.1 4.4 4.4 0 00-.7 0h-.4zm1.6 78.9h-.5a.8.8 0 01.2-.6l.7-.2h.6c.1 0 .3 0 .3.2l.2.5v.7l.2.4.1.3h-.6a2.7 2.7 0 010-.2 1 1 0 01-.8.4.8.8 0 01-.6 0 .6.6 0 01-.2-.5.6.6 0 01.2-.6l.5-.2.6-.3-.2-.2h-.3a.5.5 0 00-.2 0 .4.4 0 00-.2.3zm1 .3a3.9 3.9 0 01-.4.2 1 1 0 00-.3.1l-.1.2a.3.3 0 00.1.2h.3a.6.6 0 00.3 0 .4.4 0 000-.3v-.3zm-1.9-.2l-.6.2a.4.4 0 00-.1-.3.4.4 0 00-.3 0 .5.5 0 00-.4.2v.5c0 .3 0 .4.2.5 0 .2.2.2.4.2a.4.4 0 00.3-.2v-.3h.7a1 1 0 01-.3.6c-.1.2-.4.3-.7.3a1 1 0 01-.8-.2 1.2 1.2 0 01-.5-.8c0-.3 0-.6.2-.9l.8-.4.7.1.4.5zm-3.4-.5v-.5l.5-.1.1.5-.6.1zm.4 2.5l-.3-2.2h.6l.3 2.1-.6.1zm-1.2.2l-.5-3 .6-.1.5 3h-.6zm-2.8.4l-.5-3 .6-.2.2 1.2a.9.9 0 01.6-.4 1 1 0 01.8.1l.4.8-.1 1a.9.9 0 01-.7.3.9.9 0 01-.4 0 1 1 0 01-.4-.2v.3h-.5zm.4-1.3c0 .3.1.4.2.5.2.2.3.2.5.2a.4.4 0 00.3-.2v-.5c0-.3 0-.5-.2-.6a.5.5 0 00-.4 0 .5.5 0 00-.3.1v.5zm-1.6 1.5v-.4a.8.8 0 01-.3.4 1 1 0 01-.4.1.9.9 0 01-.4 0 .6.6 0 01-.4-.3 1.2 1.2 0 01-.1-.4l-.2-1.4.6-.1.1 1 .2.6a.3.3 0 00.1.1.5.5 0 00.5 0 .4.4 0 00.1-.3v-.6l-.1-1h.6l.3 2.2h-.6zm-4.6-1.6l.6-.1v.3a.9.9 0 01.7-.5c.3 0 .5 0 .7.2.3.2.4.5.5.8 0 .4 0 .7-.2 1a.9.9 0 01-.6.3.8.8 0 01-.4 0 1.3 1.3 0 01-.4-.2l.2 1.1-.6.1-.5-3zm.8 1l.2.5a.5.5 0 00.4 0 .5.5 0 00.4-.1v-.6c0-.2 0-.4-.2-.5a.5.5 0 00-.4 0 .5.5 0 00-.3.1l-.1.5zm-1.7.6h.7a1 1 0 01-.3.6 1 1 0 01-.6.2c-.4.1-.8 0-1-.2a1 1 0 01-.3-.7c-.1-.4 0-.7.1-1a1 1 0 01.7-.3c.4-.1.7 0 .9.2.2.1.4.5.4.9l-1.5.2.2.4a.5.5 0 00.4.1.4.4 0 00.2-.1.5.5 0 00.1-.3zm0-.6l-.2-.3a.4.4 0 00-.4-.1.4.4 0 00-.3.2.5.5 0 000 .4l.9-.2zm-4.4 2l-.5-3 1.4-.3h.7c.2 0 .3.1.4.3.2 0 .2.2.3.4a.8.8 0 01-.2.6 1 1 0 01-.5.4l.3.2.5.4.5.6h-.8l-.6-.5a4.4 4.4 0 00-.4-.4.5.5 0 00-.2-.1 1.2 1.2 0 00-.3 0h-.2l.2 1.3h-.6zm.4-1.9h.4l.6-.1.2-.2v-.2a.4.4 0 00-.1-.3.4.4 0 00-.3 0h-1l.2.8zm47.7.4l-.5-.2a.8.8 0 01.4-.4l.7-.1.6.2.2.2v1.3l-.1.4v.3h-.5a3 3 0 010-.3l-.5.1a1 1 0 01-.3 0 .8.8 0 01-.6-.2.6.6 0 01-.1-.5.6.6 0 01.4-.5h.5a3.7 3.7 0 00.6-.1v-.3l-.3-.2a.5.5 0 00-.3 0 .4.4 0 00-.2.3zm.8.5h-.4a1 1 0 00-.3.1l-.2.2v.3h.6a.4.4 0 00.2-.2v-.4zm-2 .8h-.7l.2-1.2v-.4a.3.3 0 000-.2.3.3 0 00-.3-.1.5.5 0 00-.3 0 .5.5 0 00-.2.3l-.1.4-.2 1h-.6l.4-2.2h.5v.4a1 1 0 01.8-.3 1 1 0 01.4.1l.2.2a.6.6 0 010 .3v.4l-.2 1.3zm-4-2l-.5-.2c0-.2.2-.4.4-.4l.7-.1.6.2.2.3v1.2a1.3 1.3 0 000 .7h-.6v-.3l-.5.1a1 1 0 01-.4 0 .8.8 0 01-.5-.2.6.6 0 01-.1-.5.6.6 0 01.4-.5h.5l.6-.1v-.4h-.3a.5.5 0 00-.3 0 .4.4 0 00-.2.2zm.8.6h-.4a1 1 0 00-.4 0l-.1.2v.3h.3a.6.6 0 00.3 0c.1 0 .2 0 .2-.2v-.3zm-1.7-.8h-.6a.4.4 0 00-.1-.2.4.4 0 00-.3-.2.5.5 0 00-.4.1l-.2.5v.6l.4.2a.4.4 0 00.3 0l.2-.3.6.1a1 1 0 01-.4.6c-.2 0-.5.1-.8 0-.3 0-.6-.1-.7-.3a1.1 1.1 0 01-.2-1c0-.3.2-.5.4-.7.2-.2.5-.3.9-.2.3 0 .5.1.6.3.2 0 .3.3.3.5zm-3.1-1.4v-.5h.7l-.1.6h-.6zm-.4 2.5l.3-2.2.7.1-.4 2.2h-.6zm-.6 0l-.6-.1.2-1.1v-.5a.3.3 0 00-.1-.2.4.4 0 00-.2 0 .5.5 0 00-.3 0 .4.4 0 00-.2.2l-.2.5-.1 1-.6-.1.3-2.2h.6v.4a1 1 0 01.8-.3 1 1 0 01.3.1l.2.2a.6.6 0 01.1.3v.4l-.2 1.4zm-3-3v-.5h.7v.6h-.7zm-.4 2.5l.4-2.2h.6l-.3 2.3h-.7zm-3.6-2.7h.5v.3c.2-.2.5-.2.8-.2a.8.8 0 01.3.1l.3.3.3-.2a.9.9 0 01.4 0l.4.1a.6.6 0 01.2.3v.5l-.2 1.4h-.6l.2-1.3v-.4l-.2-.2a.4.4 0 00-.5.2l-.1.5-.2 1h-.6l.2-1.2v-.5a.3.3 0 000-.1.3.3 0 00-.2 0 .5.5 0 00-.3 0 .4.4 0 00-.2.1l-.1.5-.2 1h-.6l.4-2.2zm-3 .7c0-.2 0-.4.2-.6a1 1 0 01.5-.3l.6-.1c.4 0 .7.2.8.4l.3.9a1.1 1.1 0 01-.5.8 1.2 1.2 0 01-1 .2l-.5-.2a1 1 0 01-.4-.5 1.3 1.3 0 010-.6zm.6 0v.6l.5.2a.6.6 0 00.4 0l.2-.6v-.5a.5.5 0 00-.4-.2.6.6 0 00-.5 0l-.2.6zm-3.4-2.4l1.2.2.6.1.4.4.2.5a2.2 2.2 0 01-.2 1.4c0 .2-.2.4-.4.5a1 1 0 01-.5.2 2.1 2.1 0 01-.6 0l-1.2-.2.5-3zm.5.6l-.3 2 .5.1h.4a.6.6 0 00.3 0 .6.6 0 00.2-.3l.1-.6v-.5a.7.7 0 000-.3.6.6 0 00-.3-.2 3.4 3.4 0 00-.6-.1h-.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/dz.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/dz.svg
new file mode 100644
index 0000000..37df0c8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/dz.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-dz" viewBox="0 0 512 512">
+  <path fill="#fff" d="M256 0h256v512H256z"/>
+  <path fill="#006233" d="M0 0h256v512H0z"/>
+  <path fill="#d21034" d="M367 192a128 128 0 100 128 102.4 102.4 0 110-128m4.2 64L256 218.4l71.7 98.2V195.4L256 293.6z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ec.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ec.svg
new file mode 100644
index 0000000..65fd0ba
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ec.svg
@@ -0,0 +1,138 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ec" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#ffe800" d="M0 0h512v512H0z"/>
+    <path fill="#00148e" d="M0 256h512v256H0z"/>
+    <path fill="#da0010" d="M0 384h512v128H0z"/>
+  </g>
+  <g fill-rule="evenodd">
+    <path d="M213.5 244.2l-54.7 57.7-1-1.2 54.7-57.8 1 1.3zm38 9.4L180 329l-1.2-1.2 71.5-75.4 1.3 1.2z"/>
+    <path fill="gray" stroke="#000" stroke-width="4.1" d="M478.4 60.2v88.6l17.7 88.6 17.7-88.6V60.2h-35.4z" transform="matrix(-.052 -.05 -.067 .068 210 348.9)"/>
+    <path fill="gray" stroke="#000" stroke-width="4.1" d="M478.4 60.2v88.6l17.7 88.6 17.7-88.6V60.2h-35.4z" transform="matrix(-.052 -.05 -.067 .068 191.6 319.4)"/>
+  </g>
+  <path fill="#ffdf00" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M301.2 272.8s-17.7 336.6 53.1 336.6S460.6 574 460.6 574l-.8-185-158.6-116.2z" transform="matrix(.34 0 0 .486 64.7 -20.5)"/>
+  <path fill="#0000c4" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M344.5 304.2c0 17.7-7.9 269.8 27.5 269.8s88.6-17.7 88.6-17.7l-.8-167.3-115.3-84.8z" transform="matrix(.34 0 0 .486 64.7 -20.5)"/>
+  <path fill="#e10000" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M367.5 321.2c0 17.7 4.5 217.4 40 217.4h53.1l-.8-149.6-92.3-67.8z" transform="matrix(.34 0 0 .486 64.7 -20.5)"/>
+  <path fill-rule="evenodd" d="M165.7 112.2l54.6 57.7 1-1.2-54.7-57.7-1 1.2z"/>
+  <path fill="#ffdf00" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M301.2 272.8S265.8 609.4 372 609.4c88.5 0 88.5-53.1 106.2-53.1l-17.7-124-159.4-159.5z" transform="matrix(.44 0 0 .465 17.3 17)"/>
+  <g stroke="#000">
+    <path fill="none" stroke-width="2.3" d="M269.6 155.2c1.1 0 28.3-94 119-147.2" transform="matrix(.29 -.02 -.038 .265 112 135.9)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.105 -.166 .22 .105 142.8 218.9)"/>
+    <path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.137 -.076 .067 .132 144 218.4)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.133 .09 -.096 .25 146.6 97.4)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.132 -.023 -.023 .245 145.4 144.9)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.048 .19 -.13 .146 182.1 59)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.156 -.14 .14 .178 123.4 206.6)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.164 -.17 .19 .153 112.3 237.6)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.194 .072 -.145 .24 108.7 136.1)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.114 .158 -.242 .167 144.8 102.7)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.06 .066 -.102 .123 199.2 102.1)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.08 .004 -.06 .13 189.7 127.6)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(-.007 .11 -.103 .062 227 85.9)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.05 .087 -.19 .115 176.6 111.9)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.098 .168 -.252 .15 166.3 77.6)"/>
+    <path fill="none" stroke-width="2.4" d="M269.6 155.2c1.1 0 28.3-94 119-147.2" transform="matrix(.266 -.148 .107 .21 94.4 196.6)"/>
+    <path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.137 -.076 .067 .132 161.2 194.2)"/>
+    <path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.137 -.076 .067 .132 169.4 189.4)"/>
+    <path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.14 -.08 .05 .1 136 200.3)"/>
+    <path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.14 -.08 .05 .1 138.3 199.3)"/>
+    <path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.14 -.08 .05 .1 137 201.4)"/>
+    <path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.152 -.084 .074 .147 145 210.7)"/>
+    <path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.152 -.084 .074 .147 146.7 209)"/>
+    <path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.152 -.084 .074 .147 147.1 209.8)"/>
+  </g>
+  <path fill="#0000c4" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M336.6 308.3c0 17.7-35.4 212.6 53.2 265.7 35.4 17.7 88.5-17.7 88.5 0l-17.7-141.7-124-124z" transform="matrix(.44 0 0 .465 17.3 17)"/>
+  <path fill="#e10000" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M372 343.7c0 17.7-17.7 159.4 35.5 194.9 35.4 35.4 124 25.8 124 25.8l-70.9-132.1-88.6-88.6z" transform="matrix(.44 0 0 .465 17.3 17)"/>
+  <path fill-rule="evenodd" d="M148.8 144l71.5 75.4 1.3-1.2-71.6-75.4-1.2 1.2z"/>
+  <path fill="#cececc" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M460.6 184.3l17.7 35.4v17.7c-.8-1.3 0 17.7-17.7 17.7S443 219.7 443 219.7s-17.7 35.4-17.7 70.9 17.7 53.1 17.7 53.1-2.6-36.7 17.7-35.4c20.4 1.2 17.7 17.7 17.7 17.7v35.4h17.8V219.7l17.7-35.4-27.2-53.2-26 53.1z" transform="matrix(.102 -.107 .08 .082 75.2 169.7)"/>
+  <path fill="#cececc" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M557.8 95.7l-26.3 70.8 17.7 53.2-35.4-17.7 35.4 53.1v35.5H567V255l35.5-53.1-35.5 17.7 17.8-53.2-26.9-70.8z" transform="matrix(.08 -.12 .105 .07 96 163.4)"/>
+  <path fill="#e10000" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c0 35.8 20.9 187.8 22.6 191.5.1 4.5-4.8 6.4-7.1.9-6.6-17.4-20.8-160-21.3-193.3-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(.303 0 0 .234 43 77.3)"/>
+  <path fill="#0000c4" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c31.5 61.4 48.7 166.7 50.4 170.5.1 4.4-4.8 6.4-7.1.8-2.5-3.3-12.7-100.2-49.1-172.2-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(.285 .07 -.114 .22 67.4 53.5)"/>
+  <path fill="#e10000" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c0 35.8 20.9 187.8 22.6 191.5.1 4.5-4.8 6.4-7.1.9-6.6-17.4-20.8-160-21.3-193.3-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(.387 0 0 .38 -8.6 87.3)"/>
+  <path fill="#0000c4" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c31.5 61.4 48.7 166.7 50.4 170.5.1 4.4-4.8 6.4-7.1.8-2.5-3.3-12.7-100.2-49.1-172.2-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(.365 .112 -.145 .36 22.6 48.5)"/>
+  <g fill-rule="evenodd">
+    <path d="M289.6 244.2l54.7 57.7 1-1.2-54.7-57.8-1 1.3zm-38 9.4L323 329l1.2-1.2-71.5-75.4-1.3 1.2z"/>
+    <path fill="gray" stroke="#000" stroke-width="4.1" d="M478.4 60.2v88.6l17.7 88.6 17.7-88.6V60.2h-35.4z" transform="matrix(.052 -.05 .067 .068 293 348.9)"/>
+    <path fill="gray" stroke="#000" stroke-width="4.1" d="M478.4 60.2v88.6l17.7 88.6 17.7-88.6V60.2h-35.4z" transform="matrix(.052 -.05 .067 .068 311.5 319.4)"/>
+  </g>
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#ffdf00" stroke="#000" d="M301.2 272.8s-17.7 336.6 53.1 336.6S460.6 574 460.6 574l-.8-185-158.6-116.2z" transform="matrix(-.34 0 0 .486 438.5 -20.5)"/>
+    <path fill="#0000c4" stroke="#000" d="M344.5 304.2c0 17.7-7.9 269.8 27.5 269.8s88.6-17.7 88.6-17.7l-.8-167.3-115.3-84.8z" transform="matrix(-.34 0 0 .486 438.5 -20.5)"/>
+    <path fill="#e10000" stroke="#000" d="M367.5 321.2c0 17.7 4.5 217.4 40 217.4h53.1l-.8-149.6-92.3-67.8z" transform="matrix(-.34 0 0 .486 438.5 -20.5)"/>
+    <path d="M337.4 112.2L282.8 170l-1-1.2 54.7-57.7 1 1.2z"/>
+    <g fill="#005b00" stroke="#000">
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.124 -.056 .06 .266 243.6 183.9)"/>
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.148 -.04 .052 .294 230 162.4)"/>
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.175 .107 -.022 .3 233.8 77)"/>
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.186 .023 .012 .333 217.1 111.4)"/>
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.136 .126 -.028 .268 259 75.2)"/>
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.17 0 .026 .304 221.8 131.7)"/>
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.15 -.054 .05 .29 229 173.2)"/>
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.15 -.025 .038 .298 231 150.5)"/>
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.168 .115 -.038 .285 240.3 74.1)"/>
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.184 .04 -.004 .333 220.5 98.4)"/>
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.128 .128 -.043 .25 265.9 77.5)"/>
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.18 .01 .006 .31 218.7 121.3)"/>
+    </g>
+    <path fill="#ffdf00" stroke="#000" d="M301.2 272.8S265.8 609.4 372 609.4c88.5 0 88.5-53.1 106.2-53.1l-17.7-124-159.4-159.5z" transform="matrix(-.44 0 0 .465 485.8 17)"/>
+    <path fill="#0000c4" stroke="#000" d="M336.6 308.3c0 17.7-35.4 212.6 53.2 265.7 35.4 17.7 88.5-17.7 88.5 0l-17.7-141.7-124-124z" transform="matrix(-.44 0 0 .465 485.8 17)"/>
+    <path fill="#e10000" stroke="#000" d="M372 343.7c0 17.7-17.7 159.4 35.5 194.9 35.4 35.4 124 25.8 124 25.8l-70.9-132.1-88.6-88.6z" transform="matrix(-.44 0 0 .465 485.8 17)"/>
+    <path d="M354.3 144l-71.5 75.4-1.3-1.2 71.6-75.4 1.2 1.2z"/>
+    <path fill="#cececc" stroke="#000" d="M460.6 184.3l17.7 35.4v17.7c-.8-1.3 0 17.7-17.7 17.7S443 219.7 443 219.7s-17.7 35.4-17.7 70.9 17.7 53.1 17.7 53.1-2.6-36.7 17.7-35.4c20.4 1.2 17.7 17.7 17.7 17.7v35.4h17.8V219.7l17.7-35.4-27.2-53.2-26 53.1z" transform="matrix(-.102 -.107 -.08 .082 428 169.7)"/>
+    <path fill="#cececc" stroke="#000" d="M557.8 95.7l-26.3 70.8 17.7 53.2-35.4-17.7 35.4 53.1v35.5H567V255l35.5-53.1-35.5 17.7 17.8-53.2-26.9-70.8z" transform="matrix(-.08 -.12 -.105 .07 407 163.4)"/>
+    <path fill="#e10000" stroke="#000" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c0 35.8 20.9 187.8 22.6 191.5.1 4.5-4.8 6.4-7.1.9-6.6-17.4-20.8-160-21.3-193.3-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(-.303 0 0 .234 460 77.3)"/>
+    <path fill="#0000c4" stroke="#000" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c31.5 61.4 48.7 166.7 50.4 170.5.1 4.4-4.8 6.4-7.1.8-2.5-3.3-12.7-100.2-49.1-172.2-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(-.285 .07 .114 .22 435.7 53.5)"/>
+    <path fill="#e10000" stroke="#000" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c0 35.8 20.9 187.8 22.6 191.5.1 4.5-4.8 6.4-7.1.9-6.6-17.4-20.8-160-21.3-193.3-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(-.387 0 0 .38 511.6 87.3)"/>
+    <path fill="#0000c4" stroke="#000" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c31.5 61.4 48.7 166.7 50.4 170.5.1 4.4-4.8 6.4-7.1.8-2.5-3.3-12.7-100.2-49.1-172.2-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(-.365 .112 .145 .36 480.5 48.5)"/>
+  </g>
+  <g fill-rule="evenodd" stroke="#000" stroke-width="1pt">
+    <path fill="#e10000" d="M478.4 698a53.3 53.3 0 0053.1 0V556.3h-35.4c17.7 53.1 17.7 106.3-17.8 141.7z" transform="matrix(.44 0 0 .465 17.3 17)"/>
+    <path fill="#0000c4" d="M513.8 609.5c0 88.5-42.5 108.2-42.5 126 17.7 0 29.5-8.3 42.5-19.7 17.7-17.8 19.4-107.7 17.7-106.3h-17.7z" transform="matrix(.265 0 0 .524 103.2 -43.2)"/>
+    <path fill="#0000c4" d="M478.4 609.5c-.9 51.7-44.8 99.6-36.5 110.2 9.4 9.5 36.5-21.7 71.9-4 17.7-17.7 19.4-107.6 17.7-106.3h-53.1z" transform="matrix(.265 0 0 .524 103.2 -43.2)"/>
+    <path fill="#ffdf00" d="M513.8 609.5c0 88.5-40.7 94.4-40.7 118 17.7 0 40.6-12.9 40.7-11.7 17.7-17.8 19.4-107.7 17.7-106.3h-17.7z" transform="matrix(.265 0 0 .35 95 63.1)"/>
+    <path fill="#ffdf00" d="M478.4 609.5c-.9 51.7-43.8 95.7-35.5 106.3 9.5 9.4 35.5-17.8 70.9 0 17.7-17.8 19.4-107.7 17.7-106.3h-53.1z" transform="matrix(.265 0 0 .35 95 63.1)"/>
+    <path fill="#e10000" d="M478.4 698a53.3 53.3 0 0053.1 0V556.3h-35.4c17.7 53.1 17.7 106.3-17.8 141.7z" transform="matrix(-.44 0 0 .465 485.8 17)"/>
+    <path fill="#0000c4" d="M513.8 609.5c0 88.5-42.5 108.2-42.5 126 17.7 0 29.5-8.3 42.5-19.7 17.7-17.8 19.4-107.7 17.7-106.3h-17.7z" transform="matrix(-.265 0 0 .524 399.9 -43.2)"/>
+    <path fill="#0000c4" d="M478.4 609.5c-.9 51.7-44.8 99.6-36.5 110.2 9.4 9.5 36.5-21.7 71.9-4 17.7-17.7 19.4-107.6 17.7-106.3h-53.1z" transform="matrix(-.265 0 0 .524 399.9 -43.2)"/>
+    <path fill="#ffdf00" d="M513.8 609.5c0 88.5-40.7 94.4-40.7 118 17.7 0 40.6-12.9 40.7-11.7 17.7-17.8 19.4-107.7 17.7-106.3h-17.7z" transform="matrix(-.265 0 0 .35 408.2 63.1)"/>
+    <path fill="#ffdf00" d="M478.4 609.5c-.9 51.7-43.8 95.7-35.5 106.3 9.5 9.4 35.5-17.8 70.9 0 17.7-17.8 19.4-107.7 17.7-106.3h-53.1z" transform="matrix(-.265 0 0 .35 408.2 63.1)"/>
+  </g>
+  <g fill-rule="evenodd" stroke="#000">
+    <path fill="#908f8a" stroke-width="4.5" d="M198.6 78l-89.7 35.4 89.7 35.4 44.8-17.7 22.4 17.7 22.4 35.4 22.5-35.4 22.4-17.7H1535V95.7H333l-22.4-17.8c0-17.7 4.7-35.4 22.5-35.4h89.6c0-17.7-44.8-53.1-134.5-53.1-89.6 0-134.5 35.4-134.5 53.1h89.7c17.7 0 22.4 17.7 22.4 35.5l-22.4 17.7-44.9-17.8z" transform="matrix(.09 0 0 .17 174.4 269.5)"/>
+    <path fill="#b74d00" stroke-width="1.8" d="M204.3 95.7H541v17.7H204.4zm0-17.8H541v17.8H204.4zm0-17.7H541V78H204.4zm0-17.7H541v17.7H204.4zm0-17.7H541v17.7H204.4zm0-17.8H541v17.8H204.4zm0-17.6H541V7H204.4z" transform="matrix(.21 0 0 .207 173.1 277.2)"/>
+    <path fill="#908f8a" stroke-width="3.3" d="M423.2 60.2l137.8 124h19.7L443 60.3h-19.7z" transform="matrix(.19 0 0 .207 139.8 262.5)"/>
+    <path fill="#908f8a" stroke-width="3.3" d="M423.2 60.2l137.8 124h19.7L443 60.3h-19.7z" transform="matrix(.19 0 0 -.207 139.8 313.1)"/>
+    <path fill="#908f8a" stroke-width="3.1" d="M425.2 60.2v124h17.7v-124h-17.7z" transform="matrix(.21 0 0 .207 130.5 262.5)"/>
+    <path fill="#908f8a" stroke-width="3.3" d="M423.2 60.2l137.8 124h19.7L443 60.3h-19.7z" transform="matrix(.19 0 0 .207 173.2 262.5)"/>
+    <path fill="#908f8a" stroke-width="3.3" d="M423.2 60.2l137.8 124h19.7L443 60.3h-19.7z" transform="matrix(.19 0 0 -.207 173.2 313.1)"/>
+    <path fill="#908f8a" stroke-width="3.1" d="M425.2 60.2v124h17.7v-124h-17.7z" transform="matrix(.21 0 0 .207 190 262.5)"/>
+    <path fill="#908f8a" stroke-width="3.1" d="M425.2 60.2v124h17.7v-124h-17.7z" transform="matrix(.21 0 0 .207 164 262.5)"/>
+    <path fill="#908f8a" stroke-width="3.1" d="M425.2 60.2v124h17.7v-124h-17.7z" transform="matrix(.21 0 0 .207 156.5 262.5)"/>
+  </g>
+  <g fill="#ffdf00" fill-rule="evenodd" stroke="#000" stroke-width="1pt">
+    <path d="M655.5 396.9c0 88-55.6 159.4-124 159.4s-124-71.4-124-159.4 55.5-159.5 124-159.5 124 71.4 124 159.4zm-17.7 0c0 78.2-47.6 141.7-106.3 141.7-58.7 0-106.3-63.5-106.3-141.7 0-78.3 47.6-141.8 106.3-141.8 58.7 0 106.3 63.5 106.3 141.8z" transform="matrix(.44 0 0 .465 17.3 17)"/>
+    <path d="M579.8 250c-14.9-8.1-31.2-12.6-48.3-12.6s-33.4 4.5-48.3 12.5l7 16.4a82.8 82.8 0 0182.7 0l6.9-16.4z" transform="matrix(.44 0 0 .465 17.3 17)"/>
+    <path d="M579.8 250c-14.9-8.1-31.2-12.6-48.3-12.6s-33.4 4.5-48.3 12.5l7 16.4a82.8 82.8 0 0182.7 0l6.9-16.4z" transform="matrix(.44 0 0 -.465 17.4 386.4)"/>
+  </g>
+  <path fill="#a7cfff" fill-rule="evenodd" d="M298 201.5c0 36.4-21 65.9-46.8 65.9-25.9 0-46.8-29.5-46.8-65.9 0-36.4 21-65.9 46.8-65.9 25.8 0 46.7 29.5 46.7 65.9z"/>
+  <path fill="#afff7b" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M637.8 396.9c1.1 26.6-4.6 39.6-11.9 67.3-1.9 3-11-6.5-16.4-11.2s-7.8 4.2-14.6-3c-6.7-7.4-11 2-16-4.2s-51.3-7-51.3-7.6c4.6-2.2 28.2.2 24.4-11.1-4.3-11.8-31-.4-34.6-15.4-2.5-15-53.6-15.6-57.3-19.2 1.5 5.6 39.8 8 38.9 22.5-.9 6-37.7 7.7-41.3 12.7-3 6.3 29-1.7 30.1 6 0 3.2-4.7 0-21.3 5-8.4 2.5 15.4 10.3 6.4 14.6-9 4.3-28.3 6.2-27.5 8 3 9 44.7 19.6 40.6 21.1-14.8 6.6-22.6 10.9-29.7 14.7a167.9 167.9 0 01-31.1-100.2c31.7-11.4 25-13.8 83.6-13.8s78 2.3 129 13.8z" transform="matrix(.44 0 0 .465 17.3 17)"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M637.8 396.9c-8 0-16.4 3.4-25 3.4-8.7 0-17.5-3.5-26.5-3.5s-19.3 4.6-28.5 4.6c-9.3 0-17.4-4.5-26.7-4.5s-18.6 3.4-27.8 3.4-18.3-3.5-27.2-3.5-17.7 3.5-26.2 3.5-16.8-3.5-24.7-3.5c0-19.5 3-38.1 8.4-55.1 27 2 11-15.7 27-15.7a33 33 0 0125.3 9.8c2.4 0 14.4-11.4 27.9-9.8 13.4 1.6 8.5 27.3 26.4 28.6 9 6.8 14.3 11.1 26.7 13.9 17.7 1.6 68.4-2.5 68.7-.2a188.2 188.2 0 012.2 28.6z" transform="matrix(.44 0 0 .465 17.3 17)"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M549.9 474c0-5.7 13.5-9.5 13.5-18.6s-12-9.3-12.4-17.8c-.2-3.5 10.3-7 14.9-7.4s8.5 7.4 8.5 9.1-4.7-4.2-8.6-4.3-12.3.6-12.3 2.3c0 3.4 14.8 7.6 13.7 19-1.1 11.2-12.7 14.6-12.7 18s5 12.8 5 12.8-9.7-7.5-9.7-13.2z" transform="matrix(.155 0 0 .363 174 69.6)"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M549.9 474c0-5.7 13.5-9.5 13.5-18.6s-12-9.3-12.4-17.8c-1-4 11.8-6.6 16.4-6.9s10 8 10 9.6-5.4-5.2-9.3-5.3-14.6.6-14.6 2.3c0 3.4 14.8 7.6 13.7 19-1.1 11.2-12.7 14.6-12.7 18s5 12.8 5 12.8-9.7-7.5-9.7-13.2z" transform="matrix(-.155 0 0 .363 346.5 69.3)"/>
+  <path fill-rule="evenodd" d="M261.3 224.5c0 1-.5 1.9-1 1.9-.7 0-1.2-.8-1.2-1.9s.5-1.8 1.1-1.8c.6 0 1.1.8 1.1 1.8zm14.1 5.5h.4v14.7h-.4zm3.2-1.2h.4v14.8h-.4z"/>
+  <path fill-rule="evenodd" d="M276.1 237v-.5l3 .6v.3z"/>
+  <path fill="#b74d00" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M497.3 478s26 11.4 31.7 18.2c5.6 6.8 3.4 6.8 3.4 6.8l57.7 2.3c0-3.4 10.2-3.4 12.5-11.4 2.3-7.9 2.3-10.2 2.3-10.2l-18.1 5.7 1-10.2H572l-2.3 10.2-34-1.1L538 461l-6.8 1.1-1 26c-1.2 0-31.8-7.9-33-10.1z" transform="matrix(.44 0 0 .465 15.3 17.5)"/>
+  <path fill="#fede00" fill-rule="evenodd" stroke="#fede00" stroke-width="1pt" d="M440.5 316.3s37.7-11.2 92.1-10.4 92.1 12.8 91.3 12.8-10.4-18.4-10.4-18.4-38.4-10.5-81.7-11.3c-43.2-.8-80.9 8-80 8.8l-11.3 18.5z" transform="matrix(.44 0 0 .465 17.3 17)"/>
+  <path fill="#38a9f9" fill-rule="evenodd" d="M241 152.8l10.3-.2v6l-10.2.2zm-23.6 3.3l-3.6 5.9 12.2-1.5-1-6-7.6 1.6zm10.4-2.3l10.2-.9.5 6-10.2.9zm36.9-.6l-10.2-.7-.4 6 10.2.7zm22 3.8l3.7 7.3-11-2.8 1.2-5.8 6.1 1.3zm-8.9-2.2l-10.1-1.3-.7 5.9 10.1 1.3z"/>
+  <path fill="#ffdf00" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M532.6 323.5l-2.5-13.5-7.6 11.5 2.8-13.5-11.3 7.7 7.6-11.3-13.4 2.8 11.5-7.6-13.5-2.5 13.5-2.6-11.5-7.6 13.4 2.8-7.7-11.3 11.4 7.7-2.8-13.5 7.6 11.5 2.5-13.5 2.6 13.5 7.5-11.5-2.7 13.5 11.3-7.7-7.7 11.3 13.5-2.8-11.5 7.6 13.5 2.6-13.5 2.5 11.5 7.6-13.5-2.8 7.7 11.3L540 308l2.8 13.5-7.6-11.5z" transform="matrix(.44 0 0 .465 17.3 17)"/>
+  <path fill="#ffdf00" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M547 293.9c0 9.3-6.6 16.8-14.8 16.8s-14.8-7.5-14.8-16.8S524 277 532.2 277s14.8 7.6 14.8 17z" transform="matrix(.43 0 0 .388 23.8 41)"/>
+  <path fill-rule="evenodd" d="M252 153.4c0 .4-.9.7-2 .7s-2.2-.3-2.2-.7 1-.8 2.1-.8 2.2.4 2.2.8zm4.7 0c0 .4-.8.7-1.6.7s-1.6-.3-1.6-.7c0-.4.7-.8 1.6-.8s1.5.4 1.5.8z"/>
+  <path fill="none" stroke="#000" stroke-width="1pt" d="M529.4 297.9l.8.8c-1.9-2-1-1.2 1.6 3.2 2.4-.5 3.1-1.4 4.8-2.4" transform="matrix(.423 -.132 .125 .446 -10.1 93)"/>
+  <path fill="none" stroke="#000" stroke-width="1pt" d="M527.8 304.3l.8.8c-1.9-2-1-1 3.2 1.6 4 .5 8.1-1.2 10.5-4" transform="matrix(.44 0 0 .465 16.6 17)"/>
+  <path fill="#b7e1ff" fill-rule="evenodd" d="M223.5 170.7s.7 6-4 13.5c-4.5 7.4-3.8 4.8-3.8 4.8s2.1 4 1.8 4-3.6-3.6-3.6-3.6l-3.8 4s3.5-6.3 3.1-6.3-1-2.2-1-2.2l2.8-1.1s4.2-7.8 4.2-7.5-12.7 8.6-12.7 8.6l17-14.2zm2.8 2.3c-.4 0 1.7 6 3.5 9a15 15 0 011.8 6.6l6 3-7.8-11.5 5 1.8-8.5-9zm0 15.6s4.2 4.5 4.6 6 .3 4.8.3 4.8l-1.7-3.7-2.5 3.4s1.8-5.3 1.4-5.6-2.8 1.8-2.8 1.8l1-3.3c0-.3 0-2.3-.3-3.4zM205 199.1c1.4-1.2 4.3-2 4.3-2s-1.8 3-2.2 3-1.4 0-2-1zm48.7-16.4s9.1 5.6 9.1 6-6-2.7-6-2.7l-3.1-3.3zM237.2 171c.7.4 13.4 10.8 13 10.8s-5.6-3-5.6-2.6v2.6l-2.8-6-.7 2.3-3.9-7zm3.2 16.8l3.5 7 3.5-.7s-6.7-6.3-7-6.3zm11-4.5l.3 6.7s2 1.9 2 1.5-2-7.8-2.4-8.2z"/>
+  <path fill="#984000" fill-rule="evenodd" d="M147.8 92.2s15.9-8.7 34-15.3a229 229 0 0140.8-10.8c5.4 0 14.5 13.4 16 13.4 1.6 0 7.7-3.7 15.3-3.7s12.2 6 13.8 6h13.7c1.5 0-4.6-15 0-14.2 2.3.4 21.8 3.4 39.9 9.2 18.1 6 43.8 16.3 43.8 16.3s-42 5.6-53.2 4c-1.5.7 0 9.8-2.2 5.8-3.5-.8-16.4-2.8-18.7-2.8s-6.5 2.6-12.6 4a373.6 373.6 0 00-13.8 3.8l10 15.6-12.3 6s-7.6-17.9-10.7-17.9-4.5 12.7-8.4 12c-3.8-.8-5.3-12-8.3-15-3.1-3-19.2-4-25.3-5.5-6.1-1.5-16-2.7-21.3-4.2-5.3-1.5-10.7 3.8-13 3.8-2.3 0 3-4.5.8-5.3s-3.8 2.3-5.4 2.3c-1.5 0-17.5-3-19-3.8-1.6-.7 3.8-3.7 2.3-3.7h-6.1z"/>
+  <path fill="gray" fill-rule="evenodd" stroke="#772600" stroke-width="3.7" d="M463-65c0 21.2-20.6 38.4-45.9 38.4S371.3-43.8 371.3-65s20.5-38.3 45.8-38.3S463-86.1 463-65z" transform="matrix(.165 0 0 .2 184.8 97.5)"/>
+  <path fill="#984000" fill-rule="evenodd" stroke="#772600" stroke-width="5.3" d="M284.7-60c6.7-6.6 15-16.6 36.7-16.6 5-1.7 5-11.7 16.6-11.7 11.7 0 8.3 10 16.7 13.4 8.3 3.3 76.6-3.4 76.6-3.4s6.6 5 6.6 11.7-5 11.6-6.6 11.6-68.3-5-73.3-3.3c-5 1.7-8.3 3.3-20 3.3-11.6 0-15-11.6-23.3-11.6s-16.6-1.7-30 6.7z" transform="matrix(.206 0 0 .24 165 100.6)"/>
+  <path fill="none" stroke="#772600" stroke-width="3.5" d="M487.9-76.6h26.6c9.6.1 12.9 3 21.7 3.3h23.3c8.5-.3 13-2.3 21.6-3.3 14.5-.2 9.6-1.3 6.7-10-2.6-6.5-3-9.6-6.7-13.3-1.4-8-4.6-10.8-5-20-1.5-7-4.3-11.7-1.6-20 3.8 5.7 5.3 8 15 8.4 10 0 13.9-.3 20 3.3 4.6 4.9 10.8 3.3 20 3.3 7.6 1.4 8.9 5.3 14.9 8.3 7.1 4 11.7 5 21.6 5 8 1.5 15 2.6 20 5 4.3 5.1 11 6.4 20 6.7 5 0 9-.5 13.3-1.7 7.7.4 15.5 0 25 0 6.2 7.2 7.6 9.9 18.3 10 7.4 5.2 13.6 6 20 8.3h25c9 .7 11.8 4.4 20 6.7a200.9 200.9 0 0021.6 8.3 108 108 0 0021.7 1.7c6.1 3.2 13.6 3.4 18.3 6.6 6.9 1.5 16.3 3.3 21.6 5 8.8 1.2 12.2 4 20 5 6.7 2-2.2 3.6-6.7 5-9.8-.3-10.5-4-20-5-5-2.9-12.6-2.5-20-5h-1.6c6.6 4 13 6.5 10 13.4-8.5 0-15.4-1.1-23.3-1.7-8.4-1.6-12.2-3.3-21.6-3.3 9.4-2.3 11.8.2 18.3 3.3 2.4 8-2.8 5-11.7 5-7.6-2.7-12.2-6-21.6-6.7h-20c9.9.4 12 4.1 18.3 8.4.5 2.6-.1 2.4-5 3.3-5.2-4.5-11.9-6-20-8.3-7.9-.3-16.2-1-23.3-3.4-4.9-.3-4.1-6.1 6.7 3.4 6.5 3.8 8.8 7 8.3 10-8.6-2.2-12.8-5.6-18.3-8.4a61.3 61.3 0 00-23.3-3.3c-8.6-2.3.9-3.6 6.6 5 12.4 8.8-1.6 5-6.6 3.3-7.5-2.1-15.3-5.2-21.7-6.6-5-1.5-9.4-2.9-15-3.4 8.7.8 11.6 3.9 15 10 8.8 6-.4 3.1-8.3 1.7-5-4.4-11.5-6.7-15-11.7-8.3-4.1-8.6-9-3.3 1.7 1.3 3.4 1 10.8 1.6 11.7-6.1-6.7-4.8-8.4-11.6-8.4-4.7-3.2-11.5-5.7-15-10-6.4-.6-6.8-2.9-13.3-5 5.3 6.3 12.4 12.5 16.6 18.4 7.6 4.2 9.7 8 15 11.6 2.1 3.7 8 6.7 1.7 1.7-7.2-7-12.5-8.7-23.3-13.3-6.2-5-8.4-7-15-11.7-9-2.9-5.5-4.5 0 5 6.3 5.8 11.1 12.2 16.6 16.7a67.8 67.8 0 0015 13.3c1.5 2.2 6 2.6 0 3.3-5-4.6-12.4-7.5-18.3-11.7-8.3-2.3-12.2-6.6-18.3-11.6-4-5.9-10.4-10.4-15-15-9.6-3.8 1.9 3.6 5 8.3 2.1 6.1 4.8 11 6.6 16.7 2.8 5.5-8.4-1.3-11.6-3.3a57 57 0 00-21.7-8.4 298 298 0 00-20-3.3c-7.5-2 4.1 4.8 8.4 11.7 8.4 7.9-8.3 1.4-13.3 0a125 125 0 00-25-1.7c-10.7.6-3 2 0 6.6 3.3 2.6 5.6 8 5 10-7-1-13-3-21.7-3.3-7 2.3-15.3 1.7-23.3 1.7-.3 4.2 1.5.6 5 5 5.8 2.3 9.6 5.1 8.4 8.3h-48.3c-5.3 1.4 1.1.7 5 6.7-2.2 5.4-5 3.3-11.7 3.3-4.5-1.8-13.6-2.6-18.3-5-4.7 0-4.3-1.2-8.3-1.7 14 10 7 7.5 15 15 1.3.5 4.5 1.7 1.6 1.7M371.3 73.3c-1 0-3.2-5.4-6.6-10-2.4-6-5.4-2.6-8.4-11.7.4-9.4.7-11 0-20-6.8-4.8-9.7-6.2-15-15-8.4-7 1.3-19 2.9-27.8-7.4-1.6-11 11.5-22.3 16.2-8.2 5.5-1-11.4-5-21.2-2.7-13.9-10.8 7-13.8 12.9-5.5 3.7-7.2 8.5-15 1.6 0-5.1 4.9-19.5 2.8-22.3-7.8 3.9-18 15.5-26.1 17.3-8.2-1.7 1.7-14.8 1.7-24.5-3-1-14.7 25.8-19.5 26s-2.7-26-5-25.4c-3.5 5-10.6 15.4-15.5 19-9.5-1.3 1.4-17.5 2.8-23.5 1.6-7.2-8.9 13.8-14.5 15.1-4.1 3.6-12.2 6-15 6.7 3.2-6.2 19-18.7 18-22.3-9.3.3-23.4 12.5-31.3 14-5.2 0-12.4 1.7-13.3 1.6.4-8 19.4-14.6 22.4-19.5-9.3 1.5-27.2 9.7-32.4 16.2-6.2 1.3-14 3-20 0 .9-7.5 14.9-22 18-26.8-8.5 3.7-12.7 6.6-21.7 8.3-1.7 1.7-6.5 5.3-5 1.7 2.7-7 6.7-10 10-15-7.5 1.4-10.3 5.7-18.3 10-5.1.2-19.7 14.9-24.6 15.1a69.1 69.1 0 01-28.3 13.3c-7.6 1.4-11.3 3-15 6.7 3.8-6.7 9.6-13 15-16.6a29.8 29.8 0 0115-13.4c1.9-2.3 7.1-2.9 1.6-3.3-4.7 4.2-12.7 9-16.6 11.7-5.1 3.2-11 6.4-13.4 5 2.7-7.2 7.5-9 11.7-15 8.8-5.6 0-2-6.7 0-4.3 3.8-12 6.7-18.3 10-7 1.8-11.7 6-20 8.3 0 2.4 2.4-4.3 3.4-6.7 6.8-7.4 8.6-9.5 16.6-11.6 2-2.9 4.4-1.7-1.6-1.7-4.6 4-10.8 6.2-16.7 10-5.9 1.3-13.6 1.7-21.6 1.7-10.4 1.2-9.5 2 0-3.4 5.3-5 9.7-3.7 10-10-6.3 4.6-14 8-21.7 11.7-6.4.2-8.1 1.7-15 1.7 3.3-3.4 5.3-7.7 10-10 7-7.7-4.4-1.5-6.7 0h-25c-4.4 5.6-.2 0 3.4-3.4 4.3-2.2 8.8-5.1 8.3-6.6-5 4.3-10.7 6.3-15 10-4.6 1.4-10 2-10 3.3 3.7-5.3 9.6-8.6 13.4-13.3 5.6-1.2 10.4-3 11.6-5h-23.3 16.6c8.5 0 15.7-.8 23.4-1.7 13.2-2.2-1.2-3.3-8.4-3.3-1.3-2.6 4.2-4 10-5C-6.7-69-.4-71.1 5-73.3a45.2 45.2 0 0013.3-6.6c-5 .2-5 1.4-10 1.6 7.5-.5 12.8-1.6 21.7-1.6a239 239 0 0021.6-8.3c3-3.6 4.2-3.4-3.3-3.4 6.7-2.1 16.2-3.2 21.6-5a94 94 0 0020-6.6c4.9-3.3 7.7-7.2 13.3-10 6.5 4.4 6.6 5 18.3 5 9.4-.1 15.2-2.4 20-6.7 7.2-2 8.5-5.4 16.7-6.6a134 134 0 0023.3 1.6c8-2.1 15.7-6 21.6-10 5.1-2.5 11.2-6.1 16.7-8.3 6 3.1 10.8 5.6 18.3 6.7 7.7-1.2 11.8-5 18.3-6.7a28 28 0 0115-8.3c9.7-4.8 9 1.5 13.3 6.6 5 5.2 11.4 2.7 18.3 5 3.9 6 6.7 10 11.7 13.3 3.9 4.8 8.5 6 16.7 6.7 3 4 .6 6.8 6.6 8.3 2.4 2.6 6.5 3.6 10 5" transform="matrix(.206 0 0 .24 165 103.8)"/>
+  <path fill="none" stroke="#782600" stroke-width="3.1" d="M468.7 30.8v.8c0-2.3 0-1 1.7 3.4.6 3.6-.8 3.2-2.5 5.8-.3 3.7-.8 6.4-.8 10.8-.6 3.6-2.6 7-4.2 10-1.6 3.1-8.5 4.9-8.3 9.2-4 1.1-4.1-1.5-4.2-5.9-2.4-2.7-3.2-6.4-5-10-1-3.4-3.4-6-5-10-2.4-3.7-4.5-4.8-6.6-9.1-.9-2-.7-4.6-2.5-5.8-2.7-3.5-4.5-4-9.2-4.2-3.6.8-5 2.4-8.3 3.3-2.6.9-7.6.6-10.8 1.7-.8 1.3 1.6 2 2.5 5-2.2 1.8-3 4.9-4.2 7.5-2 2.5-3.3 3.7-4.2 7.5 1.4 2.3.2 5.4-1.6 7.5-.6 3.8-2.5 5.9-3.4 9.1-2.6 1.9-3.6 3.6-5.8 6.7-1.9 2.7-3.6 2.5-8.3 2.5-3.7-1-4.2-3-7.5-4.2-.3-1-.6-1.3-1.7-1.6" transform="matrix(.206 0 0 .24 165 103.8)"/>
+  <path fill="#812e00" fill-rule="evenodd" d="M242.2 119.4s-.3 3.7-2.7 6.2-7.4 5.4-7.4 5.4 6.7-3.1 7.4-2.5c.7.7-4.3 6.3-4.3 6.3s6.5-5.9 7.4-5.9 2.7 5.7 3.4 5.6c.7-.1-1.5-7.2-1.2-8.3.3-1.1 0-7 0-7l-2.6.2zm15.5-.5s-.3 4-2.8 6.6-7.4 5.8-7.4 5.8 6.8-3.4 7.4-2.6c.7.7-4.3 6.6-4.3 6.6s6.6-6.2 7.4-6.2 2.8 6 3.5 6c.7-.2-1.6-7.8-1.2-9 .3-1.1 0-7.5 0-7.5l-2.6.3zM236 82.6c0 .8-.7 1.4-1.6 1.4s-1.6-.6-1.6-1.4.7-1.3 1.6-1.3 1.6.6 1.6 1.3z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ee.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ee.svg
new file mode 100644
index 0000000..fbc9e33
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ee.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ee" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt" transform="scale(.482 .72)">
+    <rect width="1063" height="708.7" rx="0" ry="0"/>
+    <rect width="1063" height="236.2" y="475.6" fill="#fff" rx="0" ry="0"/>
+    <path fill="#1291ff" d="M0 0h1063v236.2H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/eg.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/eg.svg
new file mode 100644
index 0000000..2965b6a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/eg.svg
@@ -0,0 +1,38 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-eg" viewBox="0 0 512 512">
+  <path d="M0 341.3h512V512H0z"/>
+  <path fill="#fff" d="M0 170.7h512v170.6H0z"/>
+  <path fill="#ce1126" d="M0 0h512v170.7H0z"/>
+  <g fill="#fff" stroke="#c09300" transform="translate(-128) scale(.85333)">
+    <path stroke-linejoin="round" stroke-width="1.3" d="M450.8 302.4l68.5 63.6-4.9-115.5c-.7-17.5-15.9-13.5-27-7.2-11.1 7.2-24 7.2-37.4 2.5-13.5 4.7-26.3 4.7-37.4-2.5-11-6.3-26.3-10.3-27 7.2L380.7 366l70.1-63.6z"/>
+    <path id="a" fill="#c09300" stroke="none" d="M393.5 246.5l-4.8 112.3-8 7.2 4.9-115.5a24 24 0 017.9-4zm9.6 8l-4 94-8 8.2 4.8-108.5c1.6 1.6 6.3 5.5 7.2 6.3zm8.7 7.2l-3.1 78.4-6.5 6.3 4-89.4c1.6 1.5 4.8 3.8 5.6 4.7zm9.5 4l-3.1 66.8-6.3 5.1 3.1-74.3c1.6.7 4.7 2.4 6.3 2.4zm8.8 0l-2.3 55.7-6.5 6.3 2.5-61.3c1.5 0 5.6 0 6.3-.7z"/>
+    <use width="100%" height="100%" transform="matrix(-1 0 0 1 900 0)" xlink:href="#a"/>
+    <path fill="#c09300" stroke-width="1.1" d="M453.2 315l9.6 43.8-3.2 3.2-3.3-2.5-5.4-39 2.3 39-3.2 4-3.1-4 2.3-39-5.5 39-3.3 2.5-3.2-3.2 9.6-43.7h6.4z"/>
+    <g id="b" fill="none" stroke-linejoin="round" stroke-width="1.3">
+      <path fill="#fff" stroke-width="1.2" d="M428.5 295.8l-19.1 67.7 26.3 4 11.1-50.9-18.3-20.8z"/>
+      <path d="M422.2 319l2.3 5.5 12.4-11.8"/>
+      <path d="M430.8 305l2.6 24.3 7.9-10.4m-3.2 4l4.3 15m1.7-5.5l-8.7 13.2m2.7 13.2l-2.8-13.2-2.4-13.4-5.9 7.9-2.5-9.1-8.2 8.4 4.1 15.2 5.8-9.4 3.1 9.6 6-9.2"/>
+      <path d="M415 362l5.3-7.5 3.4 11.5 4.8-8 3.1 9.6"/>
+    </g>
+    <use width="100%" height="100%" transform="matrix(-1 0 0 1 900 0)" xlink:href="#b"/>
+    <g stroke-linecap="round" stroke-linejoin="round" stroke-width="1.3">
+      <path stroke-width="2.4" d="M450 393.8c20 0 39-1.6 50.2-4.7 4.7-.9 4.7-3.3 4.7-6.5 4.8-1.6 2.4-7.2 5.7-7.2-3.4 1-4-5.5-8-4.7 0-5.6-5.7-6.3-10.4-4.7-9.5 3.1-26.3 3.9-42.2 3.9-16-.8-32.6-.8-42.2-4-4.7-1.5-10.3-.8-10.3 4.8-4-.8-4.7 5.6-8 4.7 3.3 0 .8 5.7 5.6 7.2 0 3.2 0 5.6 4.8 6.5 11 3.1 30.2 4.7 50.1 4.7z"/>
+      <path d="M422.9 363.5c6.4.9 13.6 1.6 19.2.9 3.2 0 5.5 5.5-.9 6.3-5.5.7-14.3 0-19-.8a231 231 0 01-18.4-4c-5.6-2.4-1.6-7 1.6-6.4a105.3 105.3 0 0017.5 4zm54.2 0c-6.4.9-13.6 1.6-19 .9-3.4 0-5.7 5.5.7 6.3 5.6.7 14.3 0 19-.8 4-.8 12.8-2.3 18.4-4 5.6-2.4 1.6-7-1.6-6.4a105.2 105.2 0 01-17.5 4z"/>
+      <path d="M403 360.4c-4.8-.9-7 4.7-5.5 7.9.7-1.6 4-1.6 4.7-3.2.9-2.4-.7-2.4.9-4.7zm19.2 14.7c0-3.2 3.1-2.8 3.1-6 0-1.5-.8-4-2.4-4a3.4 3.4 0 00-3.2 3.2c-.7 3.1 2.5 3.6 2.5 6.8zm22.7-9.1c4.7 0 4.2 6.3 2 9.5 0-2.3-4-3.2-4-4.8 0-2.4 3.6-2.4 2-4.7zm52-5.6c4.9-.9 7.2 4.7 5.6 7.9-.7-1.6-4-1.6-4.7-3.2-.9-2.4.7-2.4-.9-4.7zM478 375c0-3.2-3.2-2.8-3.2-6 0-1.5.8-4 2.4-4a3.4 3.4 0 013.2 3.2c.7 3.1-2.5 3.6-2.5 6.8zm-23-9c-4.7 0-4.2 6.3-2 9.5 0-2.3 4-3.2 4-4.8 0-2.4-3.6-2.4-2-4.7z"/>
+      <path stroke-width=".9" d="M404.7 362c1.6 0 4 .7 4.7 1.6l-4.7-1.6zm7.9 2.4c.8 0 4 .7 5.5 1.6l-5.5-1.6zm28.6 3.2c-1.5 0-4.7 0-5.5.7l5.5-.8zm-8.7 0c-.9-.9-4-.9-5.6 0h5.6zm62.8-5.6a8 8 0 00-4.7 1.6l4.7-1.6zm-7.8 2.4c-1 0-4 .7-5.6 1.6l5.6-1.6zm-28.7 3.2c1.5 0 4.7 0 5.6.7l-5.6-.8zm8.7 0c.9-.9 4-.9 5.6 0h-5.6z"/>
+      <g fill="#c09300" stroke="none">
+        <path d="M403.3 374.6c-.5-.1-.8-.6-.6-1 .1-.7.6-1 1-.8.4 0 .9.6.9.8l-.4.7-.2.1c0 .2-.4.2-.7.2zm55 3.9c-.2 0-.6-.5-.6-.7 0-.4.6-1 1-1l.8.4c.3.3.3.9-.1 1.2-.2.2-.8.2-1.1 0zm.3 2.5c-.4-.2-.5-.4-.6-.8 0-.5 0-.6.5-.9l.4-.2.4.2c.4.2.7.4.7.8 0 .3-.3.6-.7.8-.3.2-.4.2-.7 0z"/>
+        <path d="M407.8 370c-.4 0-.9.4-1.2.6-.6.1-1.4.5-2 0-.6-.1-1.4 0-1.5.8.1.7 1 1 1.6.6.4-.5 1.5-.9 1.7 0-.5.8-.4 1.7-.8 2.4 0 .5-.3.9-.5 1.3-.5 0-1 0-1.4.3a2 2 0 00-1.6.8c-.4.6-.8 1.2-.9 2 .1.6 1 .8 1.6.9l2 .6 3.2.9c1.6.5 3.2.7 4.8 1.1l.5.1c.7.2 1-.5 1-1l1-3.6c.2-.5.5-1.5-.4-1.3-.5.3-1 .8-1.6.8-.9 0-.4 1 0 1.3 0 .6-.2 1.3-.5 1.8-.6.3-1.2 0-1.8-.2-.5 0-1.7-.3-1.2-1l.5-1.8c.3-.6.3-1.3.5-2-.4-.7-1 .3-1.5.4-.4.2-1.6.3-1 1 .6.4.2 1.1 0 1.7 0 .7-.8 1-1.4.7-.6 0-1.5-.5-1-1.1l.5-1.8.7-2c0-.7.3-1.2.6-1.8 0-.7.5-1.3.5-2 0-.3-.2-.4-.4-.4zm-3.7 7.3a.3.3 0 01.3 0c.2.2.2.4 0 .6l-.3.2c-.5 0-.6-.1-.6-.3 0-.1 0-.2.3-.3a1.4 1.4 0 01.4-.2zm-1 5c-.5-.4-.4-.7.3-1.3.4-.2.5-.2.9.1.6.5.6.8 0 1.3-.2.2-.3.2-.5.2-.3 0-.4 0-.7-.2zm3 1a.9.9 0 01-.6-1.1c.2-.4.3-.5.9-.5.7 0 .8.1.9.7 0 .4 0 .5-.3.7a1 1 0 01-.8.2zm89.2 0c-.2-.1-.3-.2-.3-.5 0-.4.2-.7.8-.9.6-.3 1-.3 1.2.2.3.6.3.8-.1 1.2-.2.3-.3.3-.8.3s-.6 0-.8-.2zm-85 1.2c-.4 0-.6-.4-.6-.8 0-.3 0-.4.2-.6l.6-.2.6.1c.5.4.6.8.3 1.2-.3.4-.6.4-1.2.3zm21.8 1l-.2-.3c0-.6 0-1.1.2-1.7.1-.5 0-1 .2-1.5l.4-2.8c0-.5 0-1 .2-1.4.1-.8 0-1.5.2-2.2 0-.3.3-1 .6-.6.4.6.9 1 1.4 1.5.4.3 0 .7-.3.8-.4.1-.5.6-.5 1l-.2 1.2c0 .7 0 1.3-.2 2l-.1 1.8-.2 1.2c0 .4 0 .9-.4 1.1-.3.2-.8.2-1-.1zm29.7-9.8l-1.3 1.2c-.6.5.5.7.6 1.1.2.6.2 1.2.2 1.8.2.6.3 1.1.2 1.7 0 .7-.8.5-1.2.9-.5.2-.7.7-1 1a4.2 4.2 0 00-.4 1.6c0 .5-.3 1 0 1.4l.1.2h.5l1.5-.1c1.2-.2 2.5-.2 3.7-.3l2.2-.2c.6.1.9-.5.9-1-.4-.7-.1-1.4-.4-2-.2-.8-.1-1.5-.2-2.2 0-.6-.7-.8-1-.4-.4.4-1 .5-1.2.9-.3.6.6.6.8 1l.1 1.5c.1.6-.5.6-1 .7-.5.2-1.2.3-1.5-.3-.2-.5-.2-1-.2-1.5 0-1-.3-1.8-.3-2.7 0-1-.3-2.1-.3-3.2 0-.5-.1-1.2-.8-1.1zm-.6 8.2h.3v.8l-.3.1a3.3 3.3 0 01-.4.1 2.5 2.5 0 01-.2 0c-.2-.2-.2-.5.1-.8l.5-.2zm-30-9.2c-.3 0-.8.7-1.2.6-.9.1-.8 1-.1 1.3v.8c.1.8-.4 1.5-.3 2.3 0 .8-.3 1.7-.3 2.6-.3.9-.3 1.8-.4 2.7-.1.8-.7.5-1.2.3v-1c.1-.9-.5-1.1-1.2-1.2-.7 0-1-.5-.8-1.1.3-.4 1-.3 1.5-.3 1 .2.9-1.1.4-1.6-.4-.6-1.2-1-1.4-1.6 0-.8-.5-1.7-1.2-2.1-1.1-.1-2 .8-2.3 1.8-.5 0-1 .2-1.4.4-.7.2-1.7 1.4-.7 1.9.5.1 2.2.5 1.4 1.2-.4.8-1.2.8-1.9.6-.7 0-1.5-.4-1.5-1.2-.1-.8-.1-1.6-.4-2.3-.2-.8-1.1-.6-1.2.2-.7.5-.6 1.4-.1 2 .3.7 0 1.6-.3 2.2-.2 1-1.2 1-1.9 1.2-.3.2-1.6 0-1.1.7a4 4 0 002.4.3c.8 0 1.5-.7 2-1.4.5-.5 1.4-.2 2.2-.2.7 0 1.5.5 2.3.1.2-.5 1.2-1.5 1.5-.5 0 .9.7 1.3 1.5 1.2.9 0 .5.6.5 1.2 0 .9.7 1.4 1.5 1.8h.8c.7-.3 1.5-.6 1.8-1.4.3-.7.3-1.5.5-2.2.2-1.1.4-2.3.4-3.4.3-1 .2-2.1.4-3.2l.3-2.3c0-.5-.2-.5-.5-.4zm-6.7 4.1c.1 0 .2.2.2.5 0 .4.2.7.5.8v.3l-.8.2c-.5 0-.9-.2-1.2-.5l-.2-.2.3-.2.5-.5c.3-.3.5-.4.7-.4zm66-7.9a8.4 8.4 0 00-1.7.3c-1 0-1.5 1-.5 1.6.6 1.5 1.5-.4 2.5-.2 1.4.2 1.5 1.8 1.8 3 0 1.1.4 2.2.7 3.3 1 1.1-.7 1.8-1.4 1-.6-.7-2-1.5-2.7-.6-.9.4-1 1.6-1.7 2-1.2.3-1.3-1.2-2-1.8-.6-.9-1.7-1-2.6-1.2-.4-.9-.2-2.4-1-3-.8.3-2.2 1.7-1 2.4 1 1-.5 1.4-1 2-.8.9-1 2-1 3-1.3.7-1.5-.8-1.7-1.7 0-1.1-1-.8-1.7-.4-1 .4-1.4 1.3-2 2v2c.2.9 1.2.5 1.8.4 1-.4 1.4.7.6 1.3-.6.6-2.2.3-2 1.4h1.6c1-.3 2.2-1.1 2.3-2.3.2-1 1.7-.9 2.5-1.1 1-.3 2.3-.4 2.6 1 .7.7 2.2 1.5 3 .5a2.4 2.4 0 001.1-2.3c-.1-.8 1.3-.8 1.7-.3.5.8 2.1.6 2.9 0 .8-.5 1-1.6 2.2-1.6l5.4-1.5c1.4-.3-.2-1.2-.6-1.8-1-.5-2 1.7-3.2.6-1-.7-.9-2-1.2-3.1-.3-1.4-.2-3-1.2-4-.6-.7-1.6-.9-2.5-.9zm-6.8 9.5c.1 0 .3 0 .5.2.4.2.7.6.7 1 0 .2 0 .2-.3.3l-.5.2c-.2 0-.7-.3-.7-.5v-.4c-.2-.4-.2-.4 0-.6l.3-.2zm6.5.4c.4 0 .6 0 .8.3.1.4 0 .6-.4.8l-.5.2-.4-.3c-.2-.1-.3-.2-.3-.4 0-.3.4-.6.8-.7zm-9 0c.2 0 .3 0 .4.2.2.2.3.3.3.6v.6c0 .3 0 .2-.6.2s-.7 0-.7-.6c0-.4 0-.5.3-.7.1-.2.3-.2.4-.2zm-5.4 1.5a.6.6 0 01.4.4c0 .3 0 .5-.2.6-.3.1-.8.2-1 0a.6.6 0 010-.1c-.2-.1-.2-.2 0-.3v-.1l.2-.3a.5.5 0 01.6-.2zm9.2 1.2l.5.1v.6h-1.2l-.1-.2c0-.2 0-.3.2-.4l.6-.1zm-17.1 4.8c-.1 0-.3-.1-.1-.2.1-.3.5-.4.8-.6a3.4 3.4 0 001.4-1c0-.4.4-.6.4-1l-.1-1.4a1.8 1.8 0 00-.8-1c-.3-.1-.7-.2-.8-.6 0-.3.3-.6.4-.9l.6-1.2c.3-.3.7 0 .8.2l.5 1c.3.3.5.6.6 1 .2.4.4.7.4 1l.2 1.3c0 .5 0 1.1-.2 1.6l-.6.8c-.3.3-.6.6-1 .7-.3.1-.5.4-.9.4H468l-.1-.1zm-6.9.4c-.2-.2-.3-.3-.3-.6s0-.3.3-.6c.4-.4.6-.4 1.4 0 .7.4 1 .4 1 .1.1-.2.5-.5 1-.5a.8.8 0 01.5.2c.2.2.3.3.3.7 0 .5 0 .5-.3.8-.3.2-.3.2-.7.2a.9.9 0 01-.8-.6c0-.2 0-.3-.2-.1l-.2.1c-.2 0-.6.3-.8.5l-.5.1c-.4 0-.4 0-.7-.3zm-19.8-8.9c-.7 0-1.4.6-1.5 1.3.2.7.8 1.5.4 2.2.3 1-.8 1.4-1.5.9-.4-1-.6-2-1.3-3-.8-.2-1.1 1.1-1.7 1.6.3.7 1.1 1.4 1.2 2.3.2 1-.4 2-1.1 2.4-.7.7-1.7.5-2.5.6-1 .6.7.8 1.2.8 1 .1 2.1 0 3-.8.7-.3.6-1.7 1.5-1.8l4.8.3c.8.2 2.1-.1 2.7.5 0 1 1 1.8 1.9 2.2.5.2 1-.5 1.5-.6 1-.3.7-1.5 1.3-2h5c.2 0 .3-.5.6-.7l-.2-1.9c-.3-.8 0-1.8-.5-2.5-.9-.2-1.6.5-2.4.6-1 .4-1.7 1.3-1.8 2.3-.5.9-1.4-.2-1-1l-.1-1c-.5-.5-1.4-.3-2.1-.4l-3-.2c-1 0-1.9.1-2.7-.1-1 0-1-1-1-1.8a1 1 0 00-.7-.2zm2 3.7l1 .1h1.3c1 .2 2 .2 3 .2.2 0 .4.2.6.4v2c0 .3 0 .7-.2.8a.7.7 0 01-.2.2 1 1 0 01-.7-.5v-1.4a1.3 1.3 0 00-.7-.3l-2.6-.1-2-.1c-.3-.1-.7 0-.9-.4-.2-.2.1-.6.4-.7a2.3 2.3 0 011-.2zm11.3.3c.1 0 .2 0 .2.3l.2.5c0 .1 0 .2-.2.2-.5.2-1 .2-1.2 0 0-.1 0-.5.2-.6l.8-.4z"/>
+      </g>
+    </g>
+    <path stroke-width="1.1" d="M450 327.2c32.6-25 29.8-61.8 29.8-61.8l-2.5.2c-6.9 0-23.2-4-27-8.9-4 4.5-20.8 9-27.6 9l-2.5-.3s-2.9 36.7 29.8 61.8z"/>
+    <path stroke-width=".9" d="M477.2 268h-.8c-6.2 0-20.6-3.1-26.2-7.9-5.8 4.4-20.5 8-26.6 8a4.7 4.7 0 01-.8-.1 73.1 73.1 0 002.6 18.7 71 71 0 0024.6 37.1 71.2 71.2 0 0024.6-37.2 73.1 73.1 0 002.6-18.6z"/>
+    <path fill="#c09300" stroke="none" d="M439.4 265a62.2 62.2 0 01-16.6 3l.1 4.1a72.8 72.8 0 002.5 14.5 71 71 0 0014 26.8V265zm20.6 0v49.2a71.1 71.1 0 0014.6-27.6 73 73 0 002.5-14.5l.1-4h-.8c-3.8 0-10.4-1.2-16.4-3.2z"/>
+    <g stroke-width="1.3">
+      <path stroke-width="1.2" d="M462.3 253c.7.1-.9-3.5-.9-3.5 1.8 1.8 8.4 2.3 8.4 2.3-4-1.8-8-15.1-7.5-25.8.4-10.6-1.5-14.8-3-16.4-2-2-8.5-3.8-12.7-4-2.5-.1-2 1.8-2 1.8-4.5-1.1-9-1.6-11-.2-1.8 1.2-2.2 7.5-.8 6.4 3.3-2.7 6.2-.2 8.2 2.7 1.8 2.5 1.7 9.7-.9 18.2a60 60 0 01-10 17.7c4 0 9.6-3.5 9.6-3.5l-1.3 5.5c4.2-2 7.5-5.1 7.5-5.1l4 4.2c1.3-1.8 4-4.2 4-4.2s3.3 3.5 8.4 4z"/>
+      <path fill="none" d="M446.1 227.6s-2.2 16.4-6.4 21m10-21.5s-1 16.7-3.8 22m6.9-21.3s0 18.2 1 21.3m3-20.4s.8 15.3 4.6 20.8"/>
+      <path fill="#c09300" stroke-width=".3" d="M442 219.6a8 8 0 00-1-3.3c-2-3-4.9-5.4-8.2-2.7 0 0 1.1-3.5 3.6-3.6 1.8-.1 6.1 1.4 9.9 7.8 0 0-2.8-.6-3.5 0-1.2 1-.7 1.8-.7 1.8z"/>
+      <path fill="#c09300" stroke-width=".3" d="M432.4 209.3c.3-1 .7-1.8 1.3-2.1 2-1.4 6.4-1 10.9.2 0 0-.4-1.9 2-1.8 4.2.2 10.6 2 12.6 4a7.9 7.9 0 011.5 2.4c-1-1.4-3.8-1.3-4.5-1.2-1 .1-1.7 0-3.1.4-.7.2-1.7.4-2.3.8-.4.4-.8 1.6-1.4 1.6-1 0-1-.2-1.3-.5-.3-.5-.5-1.1-.9-1-1 .1-2.8-.7-5-2.5-2.3-1.8-3.2-2.2-6-2-3 .2-3.8 1.9-3.8 1.9v-.2z"/>
+      <circle cx="448.8" cy="210.7" r="1.2" stroke="none"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/eh.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/eh.svg
new file mode 100644
index 0000000..4c3feba
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/eh.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-eh" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)">
+    <path d="M-180 0H844v256H-180z"/>
+    <path fill="#107b00" d="M-180 256H844v256H-180z"/>
+    <path fill="#fff" d="M-180 169.3H844v176.1H-180z"/>
+    <path fill="#f0f" d="M310 195.6c-45.2-19.5-84.1 20.6-84 58 0 39.2 38 81 86 62.5-34-10-48-35.3-48-60.7-.3-25.2 15.8-54.6 46-59.9z"/>
+    <path fill="#ff1800" d="M363.1 294.2l-25.8-18.9-26 19 10-30.5-26-18.8h32l9.9-30.5 9.8 30.4h32.1l-25.9 18.8"/>
+    <path fill="red" d="M314.3 315.6a65.2 65.2 0 01-89.2-59.4 65 65 0 0189.5-60.9 60.6 60.6 0 00-51.2 59.2 61.3 61.3 0 0051 61.1zM-180 0l348.6 256.6L-180 512V0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/en.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/en.svg
new file mode 100644
index 0000000..ef048dc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/en.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gb" viewBox="0 0 512 512">
+  <path fill="#012169" d="M0 0h512v512H0z"/>
+  <path fill="#FFF" d="M512 0v64L322 256l190 187v69h-67L254 324 68 512H0v-68l186-187L0 74V0h62l192 188L440 0z"/>
+  <path fill="#C8102E" d="M184 324l11 34L42 512H0v-3l184-185zm124-12l54 8 150 147v45L308 312zM512 0L320 196l-4-44L466 0h46zM0 1l193 189-59-8L0 49V1z"/>
+  <path fill="#FFF" d="M176 0v512h160V0H176zM0 176v160h512V176H0z"/>
+  <path fill="#C8102E" d="M0 208v96h512v-96H0zM208 0v512h96V0h-96z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/er.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/er.svg
new file mode 100644
index 0000000..8634334
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/er.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-er" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)">
+    <path fill="#be0027" d="M-48 0h591.5v512H-48z"/>
+    <path fill="#b4d7f4" d="M-48 512l591.5-.3V256L-48 512z"/>
+    <path fill="#239e46" d="M-48 0l591.5.3V256L-48 0z"/>
+    <path fill="#f3e295" d="M148.8 351.4c-8.7 2.4-13.7 9.2-13.6 15.6l42.8-.2c.4-6.9-5.2-13.2-13.8-15.7 42-.8 78.4-16.6 85-26.6-6.5-2.9-14.1 1.7-19.5.6 12.8-5.9 51.2-30.8 45-57.4a62.3 62.3 0 01-25.8 30.3c14.3-21.8 34-44.5 17-62 .8 10.2-6.6 21.4-9.8 22.2 8.3-23 16.3-52-1.8-71 2.4 6.9 1.5 26.3-1.8 27.2-1-15.7-3.7-48.6-20.2-48.1 5.3 4.6 7.5 17.4 7.7 30.2-3.8-8.8-8-15.4-17.2-22a96.1 96.1 0 00-33.7-34.3 36.1 36.1 0 0017.1 29.2c-7.5-.5-15-14.7-23-15.1-6.4-.3-11.4 5.8-21.9 2.3 1.2 3.4 6 5 7 7.5-2.1 1.5-7.5-.2-11.9-2.5 6.1 8.2 15.5 13 23.5 11.4 9.5-1.8 19.7-.8 29.4 4.7a51.6 51.6 0 01-18.4.5c5.7 5.7 9.4 9.5 19.2 9.4 8.8 0 13.4-4.6 15.6-1.8 5.5 6.5 9.2 13 13.8 20.6-10.2 1.2-7.1-11.4-18.4-17.9-6.3 13.2 7.3 28.7 16.6 35.2 0 9.9 1.5 18 5.7 25.6 2.8 5.3 6.5 10.7 5.1 22.7-5.5-4-11-17.7-9-28.5-7 1.9-9.6 14-6.4 20.2 2.5 4.7 4.1 13.7 1.3 17.7-2.8 3.7-3 3.3-3 11.3 0 4.8-2.6 10.5-7 14.4 1-3.3 2-9.2 1-12.8-3.5 5.9-12.1 11.9-14.8 18.2-2.7 6.3-3.4 17.2-16.3 19.7-16.7 3.3-22.5 6.2-33.2 10.6-1.2-8.1 2.4-25.1 9.2-24.1 6.7 1.2 26.8-7 19.6-24-1.4 5.4-6.2 10.6-11.3 10.9 5.5-7.2 15.4-14.7 10.6-26.7a34.5 34.5 0 01-13.3 14.7c6.9-13.1.8-17-7.3-6.3-3 4.2-5 12.6-6.9 23.2-3.2-8.6-3-20-6.8-29.2-4-10 5.3-12.7 9.6-11.9 10.6 2.9 28.4 2.9 27-14.7-4.5 6-12.6 7.8-21.3 5.7 9.8-7.2 17.5-20.5 6.6-27.5a25.2 25.2 0 01-13.7 19.5 41 41 0 01-.3-20.1c-4.3 4.5-7.4 13.8-9.9 24.5a81.8 81.8 0 013.3-23.8c2.2-8.3 7.8-2.9 16.3-2.3 8.2.5 19.5-4 17.4-15.2-2.8 4.4-8.6 6.1-14.5 5.7 7.1-4.3 19.4-12 12.7-23.6-2.9 4.4-3.8 8.2-12 9.6 2.1-5 2.5-12 8.9-14.7-11.4-2.3-17.9 5.2-21.2 16.8-1.4-8-3-11-3.3-17 6.2-6.8 6.8-20.2-6.5-23.1-.8 6.8-.5 8.5 1 14-6.3-3.6-15-5.7-21-.4 4 4.3 10.2 8 19.7 3.4-2.3 7.3-8.1 6-16.1 3.2 4.9 9.2 11 10.9 17.9 9.8 3.5 9.4 3.7 16.5-6.7 30.2.4-8.5-.2-14.8-7-21.7-5.7-5.7-10.4.3-1.4 12.9A38.7 38.7 0 01127 200c-1.8 10.1-.2 22 5.4 28.8-2.7 2.8-5.7-.3-10.1-7.2 1.6 22.2 11.1 26.4 23.9 21.5.3 12.2.3 23.5 1 38.2a61.3 61.3 0 00-22-20.6c-1.7 6 4.5 13.7 8 18-5.3-1-16.7-9.7-16.7-9.7-1.2 9.9 11.6 19 19.9 23.1-9.7-.4-14-4-20.3-10 .1 27.4 29.7 22.6 35.3 18.4l2.5 42.6c-8.4-1.4-7.7-4-14.9-4.6-19.9-.8-35.7-23.9-40.9-40.9-1.5 2.8-.3 5.7-1.7 9.2-3.2-8.4-7.3-19.1-12.9-24.1 1.4 4.8 1.6 9.8 1.1 18.8-1.9-5.9-3.7-7.7-3.8-14.6.1-5.3 5.1-9.2 4.9-16.7-.2-5.4-5.2-17.2-6-26.4-2.4 9.5-3.9 19.4-7.6 25.2 1.9-10 1.3-17 4.4-23.7 3.6-7.2 6.6-13.5 4.2-20.7-2.3 2.8-1.5 5.3-7.2 12-1.3-7.3 7.4-19 15.8-23.8 6-3 13.4-14.3 8.6-22-5.6 4-8.1 9.5-16 18.7 5.6-22 20.2-27.7 37.7-27.8 4 0 11.7-1.4 14-6.5-5 1.9-10.9 2.1-16 1 3.7-5.4 11.7-4.7 19.1-4.8 5.8 0 14.9-.8 18.6-9a42 42 0 01-25.2 1.5c11.1-5.8 28.5-6.4 37.4-14-10.2-7.5-35.6 1.9-51.6 12.9 4.5-4.1 11.6-11.4 15.5-17.3-8.8-4.2-31 20.4-38.6 35-7.2 4-10.1 10.5-13 15 4-13.1 4.3-22.6 7.5-33.3-24.8 8.5-14.5 54.5-19.9 65.5.6-12.2.1-27.8-4.9-35.8-7.6 5.8-8.3 40.2-1 68.9-2.7-7.7-7.6-14.9-9.1-24.2-11.4 20.7 6.6 45 21.6 64.3a95.7 95.7 0 01-29.8-29.2c2 37 40.7 44.7 46.7 53.8-8.2-3.8-23.7-11.3-30.4-3.4a80.2 80.2 0 0126.3 9.9c10 12.5 29 18 62 19.4z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/es-ca.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/es-ca.svg
new file mode 100644
index 0000000..2a50685
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/es-ca.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-es-ca" viewBox="0 0 512 512">
+  <path fill="#fcdd09" d="M0 0h512v512H0z"/>
+  <path stroke="#da121a" stroke-width="60" d="M0 90h810m0 120H0m0 120h810m0 120H0" transform="scale(.6321 .94815)"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/es-ga.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/es-ga.svg
new file mode 100644
index 0000000..5c55ff8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/es-ga.svg
@@ -0,0 +1,189 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-es-ga" version="1.0" viewBox="0 0 512 512">
+  <g id="g5162" font-size="12" transform="matrix(.85333 0 0 1.2801 0 -123)">
+    <path id="rect733" fill="#fff" fill-opacity="1" fill-rule="evenodd" stroke-width="1pt" d="M0 96h600v400H0z"/>
+    <path id="path556" fill="#09c" d="M600 437.8L86 96H0v57l516 343h84v-58.2"/>
+  </g>
+  <g id="g4979" font-size="12" transform="matrix(1.13778 0 0 1.13875 -85.4 -81.1)">
+    <path id="path558" fill="#005bbf" fill-opacity="1" d="M296.6 401.2c-60 0-58.1-56.5-58.1-56.5v-86.9h116.3v86.9s2 56.5-58.2 56.5"/>
+    <path id="path559" fill="none" stroke="#000" stroke-width="1" d="M296.6 401.2c-60 0-58.1-56.5-58.1-56.5v-86.9h116.3v86.9s2 56.5-58.2 56.5z"/>
+    <path id="path560" fill="#d81126" fill-opacity="1" d="M296.1 203.2s-12.4-6-24.1 2.8c0 0-21.1-3-22.7 17.2 0 .8-.2 2.3.2 2.8.4.4.8 1.2.8 1.8 0 .6.3.9.5 1.1 0 .3.4.7.5 1.7 0 1.1-.2 1.6.9 2.7 1 1 1 4.1 1 5 0 .9.6 3.3 1 3.8.5.5 1.3 1.8 1.3 2.9 0 1 .4 4 .2 4.7-.2.8 1.2 1.7 2.4 2.1 1.2.4 16 5.2 37.6 4.8 21.6-.3 29.4-1.5 38.4-4.7 1.3-.5 1.6-1.7 1.5-2.3-.2-.6 0-2.6.3-3.1.4-.5 3-4.6 2.4-5.3-.5-.8-.5-2.4 0-3 .5-.7 2.1-3.7 2.4-5 .3-1.2.4-2.7 1-3.1.5-.4.7-1.9.8-2.2a4 4 0 011.2-1.6s1-5.1.4-7.6c-.7-2.5-4.5-13.3-19.8-11 0 0-11.4-8.7-28.2-4.5"/>
+    <path id="path561" fill="none" stroke="#000" stroke-width="1.5" d="M296.1 203.2s-12.4-6-24.1 2.8c0 0-21.1-3-22.7 17.2 0 .8-.2 2.3.2 2.8.4.4.8 1.2.8 1.8 0 .6.3.9.5 1.1 0 .3.4.7.5 1.7 0 1.1-.2 1.6.9 2.7 1 1 1 4.1 1 5 0 .9.6 3.3 1 3.8.5.5 1.3 1.8 1.3 2.9 0 1 .4 4 .2 4.7-.2.8 1.2 1.7 2.4 2.1 1.2.4 16 5.2 37.6 4.8 21.6-.3 29.4-1.5 38.4-4.7 1.3-.5 1.6-1.7 1.5-2.3-.2-.6 0-2.6.3-3.1.4-.5 3-4.6 2.4-5.3-.5-.8-.5-2.4 0-3 .5-.7 2.1-3.7 2.4-5 .3-1.2.4-2.7 1-3.1.5-.4.7-1.9.8-2.2a4 4 0 011.2-1.6s1-5.1.4-7.6c-.7-2.5-4.5-13.3-19.8-11 0 0-11.4-8.7-28.2-4.5h0z"/>
+    <path id="path562" fill="#bcac0b" fill-opacity="1" d="M337.6 240.8c-47-14.9-83.4-.7-83.4-.7s.4 1.6.8 2.1 1 1.7 1 2.6v2.8c0 .7-.4 3.7 2.2 3.6 0 0 32.8-12.8 75.4.7 0 0 1.2-1 1.2-2.5a8 8 0 011-4c.5-.8 1.8-3.4 1.8-4.6"/>
+    <path id="path563" fill="#c8b100" fill-opacity=".9" d="M294 319.3h-20.5s-2 18.3 13.8 23.9v1.6h3.3v2.2s-5.8 5.2-.7 11.2v1.8h.8v3h1v4.7s-.8 17-17.6 25.2v1h44.7v-1c-16.7-8.1-17.5-25.2-17.5-25.2V363h1V360h.8v-1.8c5-6-.8-11.2-.8-11.2v-2.2h3.4v-1.6c15.7-5.6 13.7-23.9 13.7-23.9H294"/>
+    <path id="path564" fill="none" stroke="#000" stroke-width="1" d="M294 319.3h-20.5s-2 18.3 13.8 23.9v1.6h3.3v2.2s-5.8 5.2-.7 11.2v1.8h.8v3h1v4.7s-.8 17-17.6 25.2v1h44.7v-1c-16.7-8.1-17.5-25.2-17.5-25.2V363h1V360h.8v-1.8c5-6-.8-11.2-.8-11.2v-2.2h3.4v-1.6c15.7-5.6 13.7-23.9 13.7-23.9H294h0z"/>
+    <path id="path565" fill="none" stroke="#000" stroke-width=".3" d="M286.6 342.9h19.7m-19 1.5h18.4m-15 2.5h11.5m-12.3 11.5H303m-12.4 1.4h11.6m-11.6 2.8h11.5m-18.5 23.2h25.5m-32.7 5.9h40m-41.5.9h43"/>
+    <path id="path566" fill="#ccc" fill-opacity="1" d="M296.6 318.3a13 13 0 100-26.1 13 13 0 000 26"/>
+    <path id="path567" fill="none" stroke="#000" stroke-width="1" d="M296.6 318.3a13 13 0 100-26.1 13 13 0 000 26z"/>
+    <path id="path568" fill="#ccc" fill-opacity="1" d="M266.3 280h-8.1v-8.2H251v8.2h-8.2v7.2h8.2v8h7.2v-8h8V280"/>
+    <path id="path569" fill="none" stroke="#000" stroke-width="1" d="M266.3 280h-8.1v-8.2H251v8.2h-8.2v7.2h8.2v8h7.2v-8h8V280"/>
+    <path id="path570" fill="#ccc" fill-opacity="1" d="M350.8 280h-8.1v-8.2h-7.2v8.2h-8.2v7.2h8.2v8h7.2v-8h8.1V280"/>
+    <path id="path571" fill="none" stroke="#000" stroke-width="1" d="M350.8 280h-8.1v-8.2h-7.2v8.2h-8.2v7.2h8.2v8h7.2v-8h8.1V280"/>
+    <path id="path572" fill="#ccc" fill-opacity="1" d="M308 269.7h-8.2v-8h-7.2v8h-8v7.2h8v8.2h7.2v-8.2h8.2v-7.2"/>
+    <path id="path573" fill="none" stroke="#000" stroke-width="1" d="M308 269.7h-8.2v-8h-7.2v8h-8v7.2h8v8.2h7.2v-8.2h8.2v-7.2"/>
+    <path id="path574" fill="#ccc" fill-opacity="1" d="M266.3 315.2h-8.1V307H251v8.2h-8.2v7.2h8.2v8h7.2v-8h8v-7.2"/>
+    <path id="path575" fill="none" stroke="#000" stroke-width="1" d="M266.3 315.2h-8.1V307H251v8.2h-8.2v7.2h8.2v8h7.2v-8h8v-7.2"/>
+    <path id="path576" fill="#ccc" fill-opacity="1" d="M350.8 315.2h-8.1V307h-7.2v8.2h-8.2v7.2h8.2v8h7.2v-8h8.1v-7.2"/>
+    <path id="path577" fill="none" stroke="#000" stroke-width="1" d="M350.8 315.2h-8.1V307h-7.2v8.2h-8.2v7.2h8.2v8h7.2v-8h8.1v-7.2"/>
+    <path id="path578" fill="#ccc" fill-opacity="1" d="M266.3 350.7h-8.1v-8.1H251v8.1h-8.2v7.2h8.2v8.1h7.2v-8h8v-7.3"/>
+    <path id="path579" fill="none" stroke="#000" stroke-width="1" d="M266.3 350.7h-8.1v-8.1H251v8.1h-8.2v7.2h8.2v8.1h7.2v-8h8v-7.3"/>
+    <path id="path580" fill="#ccc" fill-opacity="1" d="M350.8 350.7h-8.1v-8.1h-7.2v8.1h-8.2v7.2h8.2v8.1h7.2v-8h8.1v-7.3"/>
+    <path id="path581" fill="none" stroke="#000" stroke-width="1" d="M350.8 350.7h-8.1v-8.1h-7.2v8.1h-8.2v7.2h8.2v8.1h7.2v-8h8.1v-7.3"/>
+    <path id="path582" fill="#005bbf" fill-opacity="1" d="M296.5 185.8a7.8 7.8 0 100-15.7 7.8 7.8 0 000 15.7"/>
+    <path id="path583" fill="none" stroke="#000" stroke-width="1" d="M296.5 185.8a7.8 7.8 0 100-15.7 7.8 7.8 0 000 15.7z"/>
+    <path id="path584" fill="#fc0" fill-opacity="1" d="M303.8 176.6h-6.4v-10.4h2.5v-2h-2.5v-2.5h-2v2.4h-2.5v2.1h2.4v10.4h-6v1.4h14.5v-1.4"/>
+    <path id="path585" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".5" d="M303.8 176.6h-6.4v-10.4h2.5v-2h-2.5v-2.5h-2v2.4h-2.5v2.1h2.4v10.4h-6v1.4h14.5v-1.4"/>
+    <path id="path586" fill="#fc0" fill-opacity="1" d="M265.2 195.1s5.8-.6 9.1.7c0 0-3.8 4.4-3 10.1.4 3 1 4.5 1.9 6 .8 1.3 1.7 4.3 1.2 6.6h1.1s1.1-4.8-.7-7.4a10 10 0 01-1-10.3c1.9-3.8 4.6-5.3 4.6-5.3 3 1.2 9.6 0 11.4-1.3 1.9-1.3 2.8-3.2-.6-3.3-3.5-.2-9.3-.1-13.3 2.9 0 0-2.1-2.4-12.6-1.3-10.5 1.2-18 5.7-20.4 15.1-1.2 4.8 3.3 14.9 7.4 17.3 0 0-.1-1.6.3-2.8 0 0-7-7.9-5-15.2 2.2-7.2 10.6-12 19.6-11.8"/>
+    <path id="path587" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M265.2 195.1s5.8-.6 9.1.7c0 0-3.8 4.4-3 10.1.4 3 1 4.5 1.9 6 .8 1.3 1.7 4.3 1.2 6.6h1.1s1.1-4.8-.7-7.4a10 10 0 01-1-10.3c1.9-3.8 4.6-5.3 4.6-5.3 3 1.2 9.6 0 11.4-1.3 1.9-1.3 2.8-3.2-.6-3.3-3.5-.2-9.3-.1-13.3 2.9 0 0-2.1-2.4-12.6-1.3-10.5 1.2-18 5.7-20.4 15.1-1.2 4.8 3.3 14.9 7.4 17.3 0 0-.1-1.6.3-2.8 0 0-7-7.9-5-15.2 2.2-7.2 10.6-12 19.6-11.8z"/>
+    <path id="path588" fill="#fff" d="M284.9 193.7c1.8-.2 3.3-.5 3.2-.7 0-.3-1.5-.3-3.3-.2-1.8.1-3.2.5-3.2.7 0 .3 1.5.3 3.3.2"/>
+    <path id="path589" fill="none" stroke="#000" stroke-width=".7" d="M278.3 195.4s-2 2 0 0 6.4-3.2 8.9-2.7c2.4.6-.5.9-1.3 1-.8 0-2.4.3-4.8 0"/>
+    <path id="path590" fill="#fc0" fill-opacity="1" d="M327.7 195.8s-5.7-.7-9.1.6a14.6 14.6 0 011.2 16c-.9 1.5-1.8 4.4-1.3 6.7h-1s-1.2-4.7.7-7.4a10 10 0 00.9-10.2 12.6 12.6 0 00-4.5-5.4c-3.1 1.3-9.7 0-11.5-1.3-1.8-1.3-2.8-3.1.7-3.3 3.4-.2 9.3-.1 13.3 3 0 0 2-2.5 12.6-1.3 10.4 1.1 18 5.6 20.3 15 1.2 4.8-3.2 14.9-7.3 17.3 0 0 0-1.6-.3-2.8 0 0 7-7.8 4.9-15.1-2.1-7.3-10.5-12-19.6-11.8"/>
+    <path id="path591" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M327.7 195.8s-5.7-.7-9.1.6a14.6 14.6 0 011.2 16c-.9 1.5-1.8 4.4-1.3 6.7h-1s-1.2-4.7.7-7.4a10 10 0 00.9-10.2 12.6 12.6 0 00-4.5-5.4c-3.1 1.3-9.7 0-11.5-1.3-1.8-1.3-2.8-3.1.7-3.3 3.4-.2 9.3-.1 13.3 3 0 0 2-2.5 12.6-1.3 10.4 1.1 18 5.6 20.3 15 1.2 4.8-3.2 14.9-7.3 17.3 0 0 0-1.6-.3-2.8 0 0 7-7.8 4.9-15.1-2.1-7.3-10.5-12-19.6-11.8z"/>
+    <path id="path592" fill="#fff" d="M308 194.3c-1.8-.1-3.2-.4-3.2-.7 0-.2 1.5-.3 3.3-.2 1.8.2 3.3.5 3.3.7 0 .3-1.5.4-3.4.2"/>
+    <path id="path593" fill="none" stroke="#000" stroke-width=".7" d="M314.6 196s2.1 2 0 0c-2-1.9-6.4-3.2-8.8-2.6-2.5.5.4.8 1.2.9.9 0 2.5.4 4.9 0"/>
+    <path id="path594" fill="#fc0" fill-opacity="1" d="M291.1 189.3v22.3c-.2 2.2 2.7 5.3 4.8 6.2 0 0 5-1.6 5.3-6.2v-23.5h-1.7v20.4c0 2-1.4 5.8-3.3 6.4 0 0-3.6-.6-3.8-6.4v-19.8l-1.3.6"/>
+    <path id="path595" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M291.1 189.3v22.3c-.2 2.2 2.7 5.3 4.8 6.2 0 0 5-1.6 5.3-6.2v-23.5h-1.7v20.4c0 2-1.4 5.8-3.3 6.4 0 0-3.6-.6-3.8-6.4v-19.8l-1.3.6"/>
+    <path id="path596" fill="#fff" d="M241.8 219.8a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path597" fill="none" stroke="#000" stroke-width="1" d="M241.8 219.8a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path598" fill="#fff" d="M240.1 213.7a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path599" fill="none" stroke="#000" stroke-width="1" d="M240.1 213.7a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path600" fill="#fff" d="M241 206.3a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path601" fill="none" stroke="#000" stroke-width="1" d="M241 206.3a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path602" fill="#fff" d="M245.1 200.1a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path603" fill="none" stroke="#000" stroke-width="1" d="M245.1 200.1a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path604" fill="#fff" d="M250 195.6a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path605" fill="none" stroke="#000" stroke-width="1" d="M250 195.6a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path606" fill="#fff" d="M256.4 193.1a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path607" fill="none" stroke="#000" stroke-width="1" d="M256.4 193.1a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path608" fill="#fff" d="M263 192a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.3"/>
+    <path id="path609" fill="none" stroke="#000" stroke-width="1" d="M263 192a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.3z"/>
+    <path id="path610" fill="#fff" d="M269.3 191.6a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4"/>
+    <path id="path611" fill="none" stroke="#000" stroke-width="1" d="M269.3 191.6a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4z"/>
+    <path id="path612" fill="#fff" d="M275 192a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.4"/>
+    <path id="path613" fill="none" stroke="#000" stroke-width="1" d="M275 192a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.4z"/>
+    <path id="path614" fill="#fff" d="M291 190a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path615" fill="none" stroke="#000" stroke-width="1" d="M291 190a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path616" fill="#fff" d="M296.2 191.4a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path617" fill="none" stroke="#000" stroke-width="1" d="M296.2 191.4a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path618" fill="#fff" d="M296.2 211.2a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4"/>
+    <path id="path619" fill="none" stroke="#000" stroke-width="1" d="M296.2 211.2a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4z"/>
+    <path id="path620" fill="#fff" d="M351.3 221.5a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path621" fill="none" stroke="#000" stroke-width="1" d="M351.3 221.5a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path622" fill="#fff" d="M352.7 215a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.3"/>
+    <path id="path623" fill="none" stroke="#000" stroke-width="1" d="M352.7 215a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.3z"/>
+    <path id="path624" fill="#fff" d="M351.6 208a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path625" fill="none" stroke="#000" stroke-width="1" d="M351.6 208a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path626" fill="#fff" d="M348.7 201.5a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4"/>
+    <path id="path627" fill="none" stroke="#000" stroke-width="1" d="M348.7 201.5a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4z"/>
+    <path id="path628" fill="#fff" d="M343.8 197a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.3"/>
+    <path id="path629" fill="none" stroke="#000" stroke-width="1" d="M343.8 197a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.3z"/>
+    <path id="path630" fill="#fff" d="M337.9 194a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path631" fill="none" stroke="#000" stroke-width="1" d="M337.9 194a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path632" fill="#fff" d="M331.1 192.5a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path633" fill="none" stroke="#000" stroke-width="1" d="M331.1 192.5a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path634" fill="#fff" d="M325 192a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path635" fill="none" stroke="#000" stroke-width="1" d="M325 192a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path636" fill="#fff" d="M319.4 191.3a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4"/>
+    <path id="path637" fill="none" stroke="#000" stroke-width="1" d="M319.4 191.3a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4z"/>
+    <path id="path638" fill="#fff" d="M323 213a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.4"/>
+    <path id="path639" fill="none" stroke="#000" stroke-width="1" d="M323 213a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.4z"/>
+    <path id="path640" fill="#fff" d="M324.4 208a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.3"/>
+    <path id="path641" fill="none" stroke="#000" stroke-width="1" d="M324.4 208a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.3z"/>
+    <path id="path642" fill="#fff" d="M302 190.9a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4"/>
+    <path id="path643" fill="none" stroke="#000" stroke-width="1" d="M302 190.9a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4z"/>
+    <path id="path644" fill="#fff" d="M289 190.1a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path645" fill="none" stroke="#000" stroke-width="1" d="M289 190.1a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path646" fill="#fff" d="M285.8 190a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path647" fill="none" stroke="#000" stroke-width="1" d="M285.8 190a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path648" fill="#fff" d="M268.8 213.1a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path649" fill="none" stroke="#000" stroke-width="1" d="M268.8 213.1a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path650" fill="#fff" d="M268 206.8a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4"/>
+    <path id="path651" fill="none" stroke="#000" stroke-width="1" d="M268 206.8a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4z"/>
+    <path id="path652" fill="#fff" d="M270 200.6a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path653" fill="none" stroke="#000" stroke-width="1" d="M270 200.6a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path654" fill="#fff" d="M281.7 190.6a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path655" fill="none" stroke="#000" stroke-width="1" d="M281.7 190.6a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path656" fill="#fff" d="M277.2 192.4a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path657" fill="none" stroke="#000" stroke-width="1" d="M277.2 192.4a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path658" fill="#fff" d="M273 196a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path659" fill="none" stroke="#000" stroke-width="1" d="M273 196a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path660" fill="#fff" d="M296.2 194.4a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path661" fill="none" stroke="#000" stroke-width="1" d="M296.2 194.4a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path662" fill="#fff" d="M296.2 199.5a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4"/>
+    <path id="path663" fill="none" stroke="#000" stroke-width="1" d="M296.2 199.5a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4z"/>
+    <path id="path664" fill="#fff" d="M296.2 204.9a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4"/>
+    <path id="path665" fill="none" stroke="#000" stroke-width="1" d="M296.2 204.9a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4z"/>
+    <path id="path666" fill="#fff" d="M305.4 190.2a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4"/>
+    <path id="path667" fill="none" stroke="#000" stroke-width="1" d="M305.4 190.2a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4z"/>
+    <path id="path668" fill="#fff" d="M309 189.4a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path669" fill="none" stroke="#000" stroke-width="1" d="M309 189.4a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path670" fill="#fff" d="M313.2 190a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.4"/>
+    <path id="path671" fill="none" stroke="#000" stroke-width="1" d="M313.2 190a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.4z"/>
+    <path id="path672" fill="#fff" d="M323.5 201.4a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path673" fill="none" stroke="#000" stroke-width="1" d="M323.5 201.4a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path674" fill="#fff" d="M317.3 192.5a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4"/>
+    <path id="path675" fill="none" stroke="#000" stroke-width="1" d="M317.3 192.5a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4z"/>
+    <path id="path676" fill="#fff" d="M321.1 196.1a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path677" fill="none" stroke="#000" stroke-width="1" d="M321.1 196.1a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path678" fill="#fff" d="M296 236l-7 3.6 6.3 4 7.5-3.8-6.8-3.8"/>
+    <path id="path679" fill="none" stroke="#000" stroke-width=".5" d="M296 236l-7 3.6 6.3 4 7.5-3.8-6.8-3.8"/>
+    <path id="path680" fill="#fff" d="M280.6 236.8l-10.5 1.6s-.2 5.7.3 7l10.9-1.4s.5-5.3-.7-7.2"/>
+    <path id="path681" fill="none" stroke="#000" stroke-width=".5" d="M280.6 236.8l-10.5 1.6s-.2 5.7.3 7l10.9-1.4s.5-5.3-.7-7.2z"/>
+    <path id="path682" fill="#058e6e" fill-opacity=".9" d="M279.5 238.8s-6.4.6-8 1.2v3.8s4.3-.7 8.1-1l-.1-4"/>
+    <path id="path683" fill="none" stroke="#000" stroke-width=".5" d="M279.5 238.8s-6.4.6-8 1.2v3.8s4.3-.7 8.1-1l-.1-4"/>
+    <path id="path684" fill="#fff" d="M310.7 237l10.6 1.7s.1 5.7-.4 7l-10.8-1.4s-.5-5.3.6-7.2"/>
+    <path id="path685" fill="none" stroke="#000" stroke-width=".5" d="M310.7 237l10.6 1.7s.1 5.7-.4 7l-10.8-1.4s-.5-5.3.6-7.2z"/>
+    <path id="path686" fill="#058e6e" fill-opacity=".9" d="M312 239.1s6.3.6 7.9 1.2l-.1 3.8s-4.2-.7-8-1l.1-4"/>
+    <path id="path687" fill="none" stroke="#000" stroke-width=".5" d="M312 239.1s6.3.6 7.9 1.2l-.1 3.8s-4.2-.7-8-1l.1-4"/>
+    <path id="path688" fill="none" stroke="#000" stroke-width=".5" d="M254.2 241.8s37-13.7 84.2 1.2m-82.7 6.7s35.9-13.4 80 .6m-79.8-9l7.2 2.1-5 5.4"/>
+    <path id="path689" fill="red" d="M256 247.8l4.2-3.5-4.7-.9s.6.7.5 1.4v3"/>
+    <path id="path690" fill="none" stroke="#000" stroke-width=".5" d="M256 247.8l4.2-3.5-4.7-.9s.6.7.5 1.4v3z"/>
+    <path id="path691" fill="none" stroke="#000" stroke-width=".5" d="M337.6 242.7l-7.7 1.4 5.2 6"/>
+    <path id="path692" fill="red" d="M335.3 248l-2.9-3 4.2-.4s-1.2.7-1.2 1.4c0 .6.2 1.5 0 2"/>
+    <path id="path693" fill="none" stroke="#000" stroke-width=".5" d="M335.3 248l-2.9-3 4.2-.4s-1.2.7-1.2 1.4c0 .6.2 1.5 0 2z"/>
+    <path id="path694" fill="none" stroke="#000" stroke-width=".5" d="M265.3 241.8c.6 0 1.2-.4 1.2-1 0-.4-.6-.9-1.2-.9-.7 0-1.2.5-1.2 1s.5 1 1.2 1zm20.6-2.3c.7 0 1.2-.4 1.2-1 0-.5-.5-.9-1.2-.9s-1.2.4-1.2 1c0 .5.5.9 1.2.9zm0 3.3c.7 0 1.2-.4 1.2-.9s-.5-1-1.2-1-1.2.5-1.2 1 .5 1 1.2 1zm20.3-3.1c.6 0 1.2-.5 1.2-1s-.6-1-1.2-1c-.7 0-1.2.5-1.2 1s.5 1 1.2 1zm20.1 3.7c.7 0 1.2-.5 1.2-1s-.5-1-1.2-1-1.2.5-1.2 1 .5 1 1.2 1zm-.3 2.6c.6 0 1.2-.4 1.2-1 0-.4-.6-.9-1.2-.9-.7 0-1.2.5-1.2 1s.5 1 1.2 1zm-19.8-3c.6 0 1.2-.4 1.2-1 0-.5-.6-.9-1.2-.9-.7 0-1.2.4-1.2 1 0 .5.5 1 1.2 1zm-40 3c.7 0 1.3-.4 1.3-1 0-.4-.6-.9-1.2-.9-.7 0-1.2.5-1.2 1s.5 1 1.2 1z"/>
+    <path id="path695" fill="#fc0" fill-opacity="1" d="M253.6 231s.1 7.2 4.8 6.2 4.2-6.9 4.5-7.2c.4-.3.9-.3.9-.3s.6 5.7 5 5c4.4-.7 4.2-7.7 3.7-8.9l1-.3s1.7 8.2 6.7 7c5-1.2 4.5-6.4 4.5-6.4h.4s1.1 5.6 5.2 5.2c4-.3 4.8-1.6 4.3-7.2l2.7-.5s-1 8 3.9 8c4.8-.3 5-4.1 5.3-4.8h.8s.2 5.7 4.3 5.7c4 0 4.8-4.8 4.8-6.7l4 .2s-4.2 7.5 1.9 8.5c6 1 6.2-4.8 6.2-4.8h1.2s-.2 7.5 3.1 7.7c3.4.1 5.4-1 5.7-6.6l1.9.7s-1.6 9-7.9 7.4c-3.3-.9-4.4-4.7-4.2-5.7 0 0-2.3 4.2-6.9 2.8-4.5-1.3-4-4.5-4-5.5 0 0-2.7 5-6.5 3.9-3.4-1-4.7-2.2-4.7-4.6 0 0-1.7 3.9-5 3.7-3.4-.1-5-2.2-5.2-4 0 0-.7 3.6-5.2 3.9-3 .1-4.7-1.4-5.4-3.4 0 0-.9 3.6-5.2 4.2-2.7.3-5.4-1.2-6-3.7 0 0-.7 4.9-5 5.5-4.4.7-5.4-2.3-5.4-2.3s-.9 3.8-4.4 4.7c-3.5.8-5.8-.7-6.7-4.2-.8-3.5-.5-5-.5-5l1.4 1.8"/>
+    <path id="path696" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M253.6 231s.1 7.2 4.8 6.2 4.2-6.9 4.5-7.2c.4-.3.9-.3.9-.3s.6 5.7 5 5c4.4-.7 4.2-7.7 3.7-8.9l1-.3s1.7 8.2 6.7 7c5-1.2 4.5-6.4 4.5-6.4h.4s1.1 5.6 5.2 5.2c4-.3 4.8-1.6 4.3-7.2l2.7-.5s-1 8 3.9 8c4.8-.3 5-4.1 5.3-4.8h.8s.2 5.7 4.3 5.7c4 0 4.8-4.8 4.8-6.7l4 .2s-4.2 7.5 1.9 8.5c6 1 6.2-4.8 6.2-4.8h1.2s-.2 7.5 3.1 7.7c3.4.1 5.4-1 5.7-6.6l1.9.7s-1.6 9-7.9 7.4c-3.3-.9-4.4-4.7-4.2-5.7 0 0-2.3 4.2-6.9 2.8-4.5-1.3-4-4.5-4-5.5 0 0-2.7 5-6.5 3.9-3.4-1-4.7-2.2-4.7-4.6 0 0-1.7 3.9-5 3.7-3.4-.1-5-2.2-5.2-4 0 0-.7 3.6-5.2 3.9-3 .1-4.7-1.4-5.4-3.4 0 0-.9 3.6-5.2 4.2-2.7.3-5.4-1.2-6-3.7 0 0-.7 4.9-5 5.5-4.4.7-5.4-2.3-5.4-2.3s-.9 3.8-4.4 4.7c-3.5.8-5.8-.7-6.7-4.2-.8-3.5-.5-5-.5-5l1.4 1.8h0z"/>
+    <path id="path697" fill="#fc0" fill-opacity="1" d="M263.3 231.3a1.7 1.7 0 100-3.3 1.7 1.7 0 000 3.3"/>
+    <path id="path698" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M263.3 231.3a1.7 1.7 0 100-3.3 1.7 1.7 0 000 3.3z"/>
+    <path id="path699" fill="#fc0" fill-opacity="1" d="M285.1 227.8a1.7 1.7 0 100-3.3 1.7 1.7 0 000 3.3"/>
+    <path id="path700" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M285.1 227.8a1.7 1.7 0 100-3.3 1.7 1.7 0 000 3.3z"/>
+    <path id="path701" fill="#fc0" fill-opacity="1" d="M307.3 228.5a1.7 1.7 0 100-3.3 1.7 1.7 0 000 3.3"/>
+    <path id="path702" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M307.3 228.5a1.7 1.7 0 100-3.3 1.7 1.7 0 000 3.3z"/>
+    <path id="path703" fill="#fc0" fill-opacity="1" d="M329.2 232a1.7 1.7 0 100-3.3 1.7 1.7 0 000 3.3"/>
+    <path id="path704" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M329.2 232a1.7 1.7 0 100-3.3 1.7 1.7 0 000 3.3z"/>
+    <path id="path705" fill="#fc0" fill-opacity="1" d="M295.2 226h-1.5c-.4 1.5-3.6 2.4-3.6 2.4-.4-1.2.5-2.9.5-2.9-3.7-1-3.7-2.2-3.7-2.2.5-1.3 4-1.5 4-1.5-1-1.1-.8-3-.8-3 2.3.2 4.2 2.5 4.2 2.5s-2.3-1.2-2-5.2c0 0 1.2 0 2 .8 0 0 0-4.4 1.8-4.9h.2c1.8.5 1.8 4.9 1.8 4.9.8-.9 2-.8 2-.8.3 4-2 5.2-2 5.2s1.9-2.3 4.2-2.4c0 0 .1 1.8-.7 3 0 0 3.4.1 4 1.4 0 0 0 1.3-3.8 2.2 0 0 .8 1.7.5 3 0 0-3.3-1-3.6-2.5h-3.5"/>
+    <path id="path706" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M295.2 226h-1.5c-.4 1.5-3.6 2.4-3.6 2.4-.4-1.2.5-2.9.5-2.9-3.7-1-3.7-2.2-3.7-2.2.5-1.3 4-1.5 4-1.5-1-1.1-.8-3-.8-3 2.3.2 4.2 2.5 4.2 2.5s-2.3-1.2-2-5.2c0 0 1.2 0 2 .8 0 0 0-4.4 1.8-4.9h.2c1.8.5 1.8 4.9 1.8 4.9.8-.9 2-.8 2-.8.3 4-2 5.2-2 5.2s1.9-2.3 4.2-2.4c0 0 .1 1.8-.7 3 0 0 3.4.1 4 1.4 0 0 0 1.3-3.8 2.2 0 0 .8 1.7.5 3 0 0-3.3-1-3.6-2.5h-3.5 0z"/>
+    <path id="path707" fill="#fff" d="M296 226.8a3 3 0 100-6 3 3 0 000 6"/>
+    <path id="path708" fill="none" stroke="#000" stroke-width=".4" d="M296 226.8a3 3 0 100-6 3 3 0 000 6z"/>
+    <path id="path709" fill="#fff" d="M296 225.5a1.7 1.7 0 100-3.4 1.7 1.7 0 000 3.4"/>
+    <path id="path710" fill="none" stroke="#000" stroke-width=".3" d="M296 225.5a1.7 1.7 0 100-3.4 1.7 1.7 0 000 3.4z"/>
+    <path id="path711" fill="#fc0" fill-opacity="1" d="M319.1 228l1.5.3c0 1.5 3 3.1 3 3.1.6-1 .1-2.9.1-2.9 3.9-.1 4.1-1.4 4.1-1.4-.2-1.4-3.5-2.3-3.5-2.3 1-.9 1.3-2.7 1.3-2.7-2.3-.4-4.6 1.4-4.6 1.4s2.5-.6 3-4.6c0 0-1.1-.3-2 .3 0 0 .9-4.2-.8-5l-.2-.1c-1.9 0-2.8 4.3-2.8 4.3-.6-1-1.8-1.1-1.8-1.1-1.1 3.8.9 5.4.9 5.4s-1.4-2.6-3.6-3.2c0 0-.5 1.8 0 3 0 0-3.3-.5-4.1.6 0 0-.3 1.3 3.1 3 0 0-1.1 1.5-1 2.8 0 0 3.3-.3 4-1.7l1.5.3 2 .4"/>
+    <path id="path712" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M319.1 228l1.5.3c0 1.5 3 3.1 3 3.1.6-1 .1-2.9.1-2.9 3.9-.1 4.1-1.4 4.1-1.4-.2-1.4-3.5-2.3-3.5-2.3 1-.9 1.3-2.7 1.3-2.7-2.3-.4-4.6 1.4-4.6 1.4s2.5-.6 3-4.6c0 0-1.1-.3-2 .3 0 0 .9-4.2-.8-5l-.2-.1c-1.9 0-2.8 4.3-2.8 4.3-.6-1-1.8-1.1-1.8-1.1-1.1 3.8.9 5.4.9 5.4s-1.4-2.6-3.6-3.2c0 0-.5 1.8 0 3 0 0-3.3-.5-4.1.6 0 0-.3 1.3 3.1 3 0 0-1.1 1.5-1 2.8 0 0 3.3-.3 4-1.7l1.5.3 2 .4"/>
+    <path id="path713" fill="#fff" d="M318 228.6a3 3 0 111.4-6 3 3 0 01-1.3 6"/>
+    <path id="path714" fill="none" stroke="#000" stroke-width=".4" d="M318 228.6a3 3 0 111.4-6 3 3 0 01-1.3 6z"/>
+    <path id="path715" fill="#fff" d="M318.4 227.3a1.7 1.7 0 11.7-3.3 1.7 1.7 0 01-.7 3.3"/>
+    <path id="path716" fill="none" stroke="#000" stroke-width=".3" d="M318.4 227.3a1.7 1.7 0 11.7-3.3 1.7 1.7 0 01-.7 3.3z"/>
+    <path id="path717" fill="#fc0" fill-opacity="1" d="M272.3 227.6l-1.5.2c-.2 1.6-3.3 3-3.3 3-.5-1.2 0-3 0-3-3.7-.4-3.9-1.7-3.9-1.7.4-1.3 3.8-2 3.8-2-1-1-1.1-2.8-1.1-2.8 2.2-.2 4.4 1.8 4.4 1.8s-2.4-.8-2.7-4.8c0 0 1.3-.3 2.1.4 0 0-.5-4.3 1.2-5h.2c1.9.2 2.4 4.5 2.4 4.5.7-.9 2-1 2-1 .7 4-1.4 5.4-1.4 5.4s1.6-2.5 3.8-3c0 0 .4 1.9-.3 3.1 0 0 3.4-.3 4.1 1 0 0 .2 1.2-3.4 2.6 0 0 1 1.6.9 2.8 0 0-3.3-.5-4-2l-1.4.3-2 .2"/>
+    <path id="path718" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M272.3 227.6l-1.5.2c-.2 1.6-3.3 3-3.3 3-.5-1.2 0-3 0-3-3.7-.4-3.9-1.7-3.9-1.7.4-1.3 3.8-2 3.8-2-1-1-1.1-2.8-1.1-2.8 2.2-.2 4.4 1.8 4.4 1.8s-2.4-.8-2.7-4.8c0 0 1.3-.3 2.1.4 0 0-.5-4.3 1.2-5h.2c1.9.2 2.4 4.5 2.4 4.5.7-.9 2-1 2-1 .7 4-1.4 5.4-1.4 5.4s1.6-2.5 3.8-3c0 0 .4 1.9-.3 3.1 0 0 3.4-.3 4.1 1 0 0 .2 1.2-3.4 2.6 0 0 1 1.6.9 2.8 0 0-3.3-.5-4-2l-1.4.3-2 .2"/>
+    <path id="path719" fill="#fff" d="M273.2 228.4a3 3 0 10-.8-6 3 3 0 00.8 6"/>
+    <path id="path720" fill="none" stroke="#000" stroke-width=".4" d="M273.2 228.4a3 3 0 10-.8-6 3 3 0 00.8 6z"/>
+    <path id="path721" fill="#fff" d="M273 227a1.7 1.7 0 10-.4-3.3 1.7 1.7 0 00.4 3.3"/>
+    <path id="path722" fill="none" stroke="#000" stroke-width=".3" d="M273 227a1.7 1.7 0 10-.4-3.3 1.7 1.7 0 00.4 3.3z"/>
+    <path id="path723" fill="#fc0" fill-opacity="1" d="M340.2 234.1s-.8-2-2.5-1.3-1.5 1-3 1c0 0-.6-1.9.2-2.7 0 0-2.4-.9-3-3 0 0 1.3-1.5 4.4-.9 0 0-.1-1.5.3-2.2 0 0 3.3 1 3.3 2.9 0 0-1-3.6.8-6.2 0 0 1.5.6 1.4 2.3 0 0 .7-3.4 5.2-2.5 0 0-2.4 2.2-2.5 3.2-.2 1-2.2 2.7-2.3 3.3 0 .5-.2 1.5-.8 2.1-.6.6-.7 1.6-.7 2 0 .2 0 1.6-.8 2"/>
+    <path id="path724" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M340.2 234.1s-.8-2-2.5-1.3-1.5 1-3 1c0 0-.6-1.9.2-2.7 0 0-2.4-.9-3-3 0 0 1.3-1.5 4.4-.9 0 0-.1-1.5.3-2.2 0 0 3.3 1 3.3 2.9 0 0-1-3.6.8-6.2 0 0 1.5.6 1.4 2.3 0 0 .7-3.4 5.2-2.5 0 0-2.4 2.2-2.5 3.2-.2 1-2.2 2.7-2.3 3.3 0 .5-.2 1.5-.8 2.1-.6.6-.7 1.6-.7 2 0 .2 0 1.6-.8 2z"/>
+    <path id="path725" fill="#fff" d="M337.7 230.1a3 3 0 014.8-1.8c0 .5-.3 1.3-.8 1.8-.6.6-.7 1.6-.7 2a3 3 0 01-.4 1.6h-.5a3 3 0 01-2.4-3.6"/>
+    <path id="path726" fill="none" stroke="#000" stroke-width=".4" d="M337.7 230.1a3 3 0 014.8-1.8c0 .5-.3 1.3-.8 1.8-.6.6-.7 1.6-.7 2a3 3 0 01-.4 1.6h-.5a3 3 0 01-2.4-3.6z"/>
+    <path id="path727" fill="#fff" d="M339 230.4a1.7 1.7 0 013-.7l-.3.4c-.6.6-.7 1.6-.7 2v.2h-.6c-1-.1-1.5-1-1.3-2"/>
+    <path id="path728" fill="none" stroke="#000" stroke-width=".3" d="M339 230.4a1.7 1.7 0 013-.7l-.3.4c-.6.6-.7 1.6-.7 2v.2h-.6c-1-.1-1.5-1-1.3-2z"/>
+    <path id="path729" fill="#fc0" fill-opacity="1" d="M252.2 233.3s.8-2 2.5-1.2c1.6.9 1.4 1.1 3 1.1 0 0 .6-1.8 0-2.6 0 0 2.4-.7 3-2.8 0 0-1.2-1.6-4.3-1.2 0 0 .2-1.5-.2-2.2 0 0-3.3.8-3.4 2.6 0 0 1.2-3.5-.4-6.2 0 0-1.6.6-1.6 2.2 0 0-.5-3.4-5-2.7 0 0 2.3 2.3 2.3 3.3s2 2.8 2 3.4c0 .5.2 1.6.8 2.2.6.6.6 1.6.5 2 0 .2 0 1.6.8 2"/>
+    <path id="path730" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M252.2 233.3s.8-2 2.5-1.2c1.6.9 1.4 1.1 3 1.1 0 0 .6-1.8 0-2.6 0 0 2.4-.7 3-2.8 0 0-1.2-1.6-4.3-1.2 0 0 .2-1.5-.2-2.2 0 0-3.3.8-3.4 2.6 0 0 1.2-3.5-.4-6.2 0 0-1.6.6-1.6 2.2 0 0-.5-3.4-5-2.7 0 0 2.3 2.3 2.3 3.3s2 2.8 2 3.4c0 .5.2 1.6.8 2.2.6.6.6 1.6.5 2 0 .2 0 1.6.8 2z"/>
+    <path id="path731" fill="#fff" d="M254.8 229.4a3 3 0 00-4.6-2c0 .5.2 1.3.7 1.8.6.6.6 1.6.5 2 0 .2 0 1 .4 1.7h.4a3 3 0 002.6-3.5"/>
+    <path id="path732" fill="none" stroke="#000" stroke-width=".4" d="M254.8 229.4a3 3 0 00-4.6-2c0 .5.2 1.3.7 1.8.6.6.6 1.6.5 2 0 .2 0 1 .4 1.7h.4a3 3 0 002.6-3.5z"/>
+    <path id="path733" fill="#fff" d="M253.5 229.6a1.7 1.7 0 00-3-.9l.4.5c.6.6.6 1.6.5 2v.2h.7c.9 0 1.5-.9 1.4-1.8"/>
+    <path id="path734" fill="none" stroke="#000" stroke-width=".3" d="M253.5 229.6a1.7 1.7 0 00-3-.9l.4.5c.6.6.6 1.6.5 2v.2h.7c.9 0 1.5-.9 1.4-1.8z"/>
+    <path id="path735" fill="none" stroke="#000" stroke-width="1.5" d="M257.2 251.6s33.8-13.2 76.4.3"/>
+    <path id="path736" fill="none" stroke="#000" stroke-width=".5" d="M338.4 241.1c-47.1-15-84.7-.8-84.7-.8"/>
+    <path id="path737" fill="red" d="M296 237.8l-3.8 1.9 3.4 2.1 4-2-3.6-2"/>
+    <path id="path738" fill="none" stroke="#000" stroke-width=".5" d="M296 237.8l-3.8 1.9 3.4 2.1 4-2-3.6-2"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/es.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/es.svg
new file mode 100644
index 0000000..d7030eb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/es.svg
@@ -0,0 +1,547 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-es" viewBox="0 0 512 512">
+  <path fill="#AA151B" d="M0 0h512v512H0z"/>
+  <path fill="#F1BF00" d="M0 128h512v256H0z"/>
+  <path fill="#ad1519" d="M171.7 227.6s-.5 0-.8-.2a12.1 12.1 0 01-1.1-1l-.7-.5-.7-.9s-.7-1.2-.4-2c.4-1 1-1.3 1.5-1.6.5-.3 1.6-.6 1.6-.6l1.2-.5 1.3-.3.6-.3.9-.1 1.1-.3 1.7.1h5.1a41 41 0 003.6 1.2c.6.1 1.9.3 2.4.6.6.3 1 .8 1.3 1.1.3.4.3.8.4 1.1v1.1l-.5.9-.6 1-.8.7s-.6.5-1.1.5c-.5 0-5.1-.9-8.2-.9-3 0-7.8.9-7.8.9"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".3" d="M171.7 227.6s-.5 0-.8-.2a12.1 12.1 0 01-1.1-1l-.7-.5-.7-.9s-.7-1.2-.4-2c.4-1 1-1.3 1.5-1.6.5-.3 1.6-.6 1.6-.6l1.2-.5 1.3-.3.6-.3.9-.1 1.1-.3 1.7.1h5.1a41 41 0 003.6 1.2c.6.1 1.9.3 2.4.6.6.3 1 .8 1.3 1.1.3.4.3.8.4 1.1v1.1l-.5.9-.6 1-.8.7s-.6.5-1.1.5c-.5 0-5.1-.9-8.2-.9-3 0-7.8.9-7.8.9z"/>
+  <path fill="#c8b100" d="M178.2 220.9c0-1.5.6-2.6 1.4-2.6.8 0 1.4 1.1 1.4 2.6 0 1.4-.6 2.5-1.4 2.5-.8 0-1.4-1.1-1.4-2.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M178.2 220.9c0-1.5.6-2.6 1.4-2.6.8 0 1.4 1.1 1.4 2.6 0 1.4-.6 2.5-1.4 2.5-.8 0-1.4-1.1-1.4-2.5z"/>
+  <path fill="#c8b100" d="M179 220.9c0-1.3.3-2.4.6-2.4.4 0 .7 1 .7 2.4 0 1.3-.3 2.3-.7 2.3-.3 0-.6-1-.6-2.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M179 220.9c0-1.3.3-2.4.6-2.4.4 0 .7 1 .7 2.4 0 1.3-.3 2.3-.7 2.3-.3 0-.6-1-.6-2.3z"/>
+  <path fill="#c8b100" d="M178.7 218.2c0-.5.4-1 .9-1s1 .5 1 1-.5.9-1 .9a1 1 0 01-1-1"/>
+  <path fill="#c8b100" d="M180.3 217.8v.6h-1.5v-.6h.5v-1.3h-.7v-.6h.7v-.6h.6v.6h.6v.6h-.6v1.3h.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M180.3 217.8v.6h-1.5v-.6h.5v-1.3h-.7v-.6h.7v-.6h.6v.6h.6v.6h-.6v1.3h.4"/>
+  <path fill="#c8b100" d="M181 217.8v.6h-2.7v-.6h1v-1.3h-.7v-.6h.7v-.6h.6v.6h.6v.6h-.6v1.3h1"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M181 217.8v.6h-2.7v-.6h1v-1.3h-.7v-.6h.7v-.6h.6v.6h.6v.6h-.6v1.3h1"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M179.9 217.3a.9.9 0 01.6.9c0 .5-.4.9-.9.9s-1-.4-1-1c0-.3.4-.7.8-.8"/>
+  <path fill="#c8b100" d="M179.6 227.4h-5v-1.2l-.3-1.2-.2-1.6c-1.4-1.8-2.6-3-3-2.7 0-.4.2-.6.4-.8 1.2-.7 3.7 1 5.6 3.9l.5.7h4l.5-.7c1.9-2.9 4.4-4.6 5.6-3.9.2.2.4.4.5.8-.5-.3-1.7.9-3 2.7l-.3 1.6-.2 1.2-.1 1.2h-5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M179.6 227.4h-5v-1.2l-.3-1.2-.2-1.6c-1.4-1.8-2.6-3-3-2.7 0-.4.2-.6.4-.8 1.2-.7 3.7 1 5.6 3.9l.5.7h4l.5-.7c1.9-2.9 4.4-4.6 5.6-3.9.2.2.4.4.5.8-.5-.3-1.7.9-3 2.7l-.3 1.6-.2 1.2-.1 1.2h-5z"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M171.3 220.6c1-.5 3 1.2 4.8 3.8m11.9-3.8c-1-.5-3.1 1.2-4.9 3.8"/>
+  <path fill="#c8b100" d="M172.3 229.6a4.8 4.8 0 00-.6-1c2-.7 4.8-1 7.9-1 3 0 5.9.3 7.9 1l-.6.9-.3.8c-1.8-.6-4.2-.8-7-.8-2.9 0-5.6.3-7 .8l-.3-.7"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M172.3 229.6a4.8 4.8 0 00-.6-1c2-.7 4.8-1 7.9-1 3 0 5.9.3 7.9 1l-.6.9-.3.8c-1.8-.6-4.2-.8-7-.8-2.9 0-5.6.3-7 .8l-.3-.7"/>
+  <path fill="#c8b100" d="M179.6 232.2a27 27 0 006.2-.7c.7-.2 1.1-.5 1-.8 0-.2-.1-.3-.3-.4a25.8 25.8 0 00-7-.9c-2.6 0-5.3.4-6.8.9-.2 0-.3.2-.4.4 0 .3.4.6 1 .8 1 .3 3.8.7 6.3.7"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M179.6 232.2a27 27 0 006.2-.7c.7-.2 1.1-.5 1-.8 0-.2-.1-.3-.3-.4a25.8 25.8 0 00-7-.9c-2.6 0-5.3.4-6.8.9-.2 0-.3.2-.4.4 0 .3.4.6 1 .8 1 .3 3.8.7 6.3.7z"/>
+  <path fill="#c8b100" d="M187.6 227.4l-.6-.5s-.6.3-1.3.2c-.7-.1-1-1-1-1s-.8.7-1.5.6c-.6 0-1-.6-1-.6s-.8.5-1.4.5c-.7 0-1.3-.9-1.3-.9s-.6.9-1.2 1c-.7 0-1.2-.6-1.2-.6s-.3.6-1 .7c-.9.1-1.6-.6-1.6-.6s-.5.7-1 1c-.6.1-1.3-.4-1.3-.4l-.2.5-.3.2.2.4a32.5 32.5 0 0115.5.1l.2-.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M187.6 227.4l-.6-.5s-.6.3-1.3.2c-.7-.1-1-1-1-1s-.8.7-1.5.6c-.6 0-1-.6-1-.6s-.8.5-1.4.5c-.7 0-1.3-.9-1.3-.9s-.6.9-1.2 1c-.7 0-1.2-.6-1.2-.6s-.3.6-1 .7c-.9.1-1.6-.6-1.6-.6s-.5.7-1 1c-.6.1-1.3-.4-1.3-.4l-.2.5-.3.2.2.4a32.5 32.5 0 0115.5.1l.2-.6z"/>
+  <path fill="#c8b100" d="M179.6 224.8h.3a1.1 1.1 0 001 1.5c.6 0 1-.3 1.2-.8l.1-.4v.5c.1.5.6.9 1.2.9a1.1 1.1 0 001.1-1.1v-.1l.4-.4.2.4a1 1 0 00-.1.5c0 .6.5 1 1 1 .4 0 .8-.1 1-.4l.2-.3v.4c0 .3.2.6.5.7 0 0 .4 0 1-.4l.8-.8v.5s-.5.8-1 1.1l-1 .3c-.3-.1-.5-.4-.7-.7a1.6 1.6 0 01-.8.3c-.6 0-1.2-.4-1.4-1a1.6 1.6 0 01-1.2.6 2 2 0 01-1.3-.6 1.6 1.6 0 01-1.1.4c-.6 0-1.1-.3-1.4-.7-.3.4-.8.7-1.4.7a1.6 1.6 0 01-1-.4c-.4.3-.9.6-1.4.6a1.6 1.6 0 01-1.2-.5c-.2.5-.8.8-1.4.8-.3 0-.6 0-.8-.2-.1.3-.4.6-.7.7a2 2 0 01-1-.3 4.4 4.4 0 01-1-1.1v-.5l.9.8c.5.4.9.4.9.4.4 0 .5-.4.5-.7v-.4l.2.3c.2.3.6.5 1 .5.5 0 1-.5 1-1a1 1 0 000-.6l.1-.4.4.4c0 .7.5 1.2 1 1.2.7 0 1.2-.4 1.2-1v-.3l.2.3c.2.5.6.8 1.1.8.7 0 1.2-.5 1.2-1.1a1 1 0 00-.1-.4h.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M179.6 224.8h.3a1.1 1.1 0 001 1.5c.6 0 1-.3 1.2-.8l.1-.4v.5c.1.5.6.9 1.2.9a1.1 1.1 0 001.1-1.1v-.1l.4-.4.2.4a1 1 0 00-.1.5c0 .6.5 1 1 1 .4 0 .8-.1 1-.4l.2-.3v.4c0 .3.2.6.5.7 0 0 .4 0 1-.4l.8-.8v.5s-.5.8-1 1.1l-1 .3c-.3-.1-.5-.4-.7-.7a1.6 1.6 0 01-.8.3c-.6 0-1.2-.4-1.4-1a1.6 1.6 0 01-1.2.6 2 2 0 01-1.3-.6 1.6 1.6 0 01-1.1.4c-.6 0-1.1-.3-1.4-.7-.3.4-.8.7-1.4.7a1.6 1.6 0 01-1-.4c-.4.3-.9.6-1.4.6a1.6 1.6 0 01-1.2-.5c-.2.5-.8.8-1.4.8-.3 0-.6 0-.8-.2-.1.3-.4.6-.7.7a2 2 0 01-1-.3 4.4 4.4 0 01-1-1.1v-.5l.9.8c.5.4.9.4.9.4.4 0 .5-.4.5-.7v-.4l.2.3c.2.3.6.5 1 .5.5 0 1-.5 1-1a1 1 0 000-.6l.1-.4.4.4c0 .7.5 1.2 1 1.2.7 0 1.2-.4 1.2-1v-.3l.2.3c.2.5.6.8 1.1.8.7 0 1.2-.5 1.2-1.1a1 1 0 00-.1-.4h.3z"/>
+  <path fill="#c8b100" d="M179.6 227.6c-3.1 0-5.9.3-7.9 1l-.3-.2c0-.2 0-.3.2-.4 2-.6 4.8-1 8-1s6 .4 8 1l.2.3c0 .2-.2.3-.3.2-2-.6-4.8-1-8-1"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".3" d="M179.6 227.6c-3.1 0-5.9.3-7.9 1l-.3-.2c0-.2 0-.3.2-.4 2-.6 4.8-1 8-1s6 .4 8 1l.2.3c0 .2-.2.3-.3.2-2-.6-4.8-1-8-1z"/>
+  <path fill="#fff" d="M176.6 228.7c0-.3.2-.5.5-.5.2 0 .4.2.4.5 0 .2-.2.4-.5.4s-.4-.2-.4-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M176.6 228.7c0-.3.2-.5.5-.5.2 0 .4.2.4.5 0 .2-.2.4-.5.4s-.4-.2-.4-.4z"/>
+  <path fill="#ad1519" d="M179.6 228.8h-1a.3.3 0 01-.3-.3c0-.1.1-.3.3-.3h2a.3.3 0 01.4.3.3.3 0 01-.4.3h-1"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M179.6 228.8h-1a.3.3 0 01-.3-.3c0-.1.1-.3.3-.3h2a.3.3 0 01.4.3.3.3 0 01-.4.3h-1"/>
+  <path fill="#058e6e" d="M174.7 229.2h-.7c-.2.1-.4 0-.4-.2a.3.3 0 01.2-.3l.7-.1.8-.2c.2 0 .3.1.4.3 0 .2-.1.3-.3.4h-.8"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M174.7 229.2h-.7c-.2.1-.4 0-.4-.2a.3.3 0 01.2-.3l.7-.1.8-.2c.2 0 .3.1.4.3 0 .2-.1.3-.3.4h-.8"/>
+  <path fill="#ad1519" d="M171.8 229.7l.3-.5.7.1-.4.6-.6-.2"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M171.8 229.7l.3-.5.7.1-.4.6-.6-.2"/>
+  <path fill="#fff" d="M181.7 228.7c0-.3.2-.5.4-.5.3 0 .5.2.5.5 0 .2-.2.4-.5.4s-.4-.2-.4-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M181.7 228.7c0-.3.2-.5.4-.5.3 0 .5.2.5.5 0 .2-.2.4-.5.4s-.4-.2-.4-.4z"/>
+  <path fill="#058e6e" d="M184.5 229.2h.8c.1.1.3 0 .3-.2a.3.3 0 00-.2-.3l-.8-.1-.7-.2c-.2 0-.3.1-.4.3 0 .2.1.3.3.4h.7"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M184.5 229.2h.8c.1.1.3 0 .3-.2a.3.3 0 00-.2-.3l-.8-.1-.7-.2c-.2 0-.3.1-.4.3 0 .2.1.3.3.4h.7"/>
+  <path fill="#ad1519" d="M187.3 229.7l-.2-.5h-.7l.3.6h.7"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M187.3 229.7l-.2-.5h-.7l.3.6h.7"/>
+  <path fill="#ad1519" d="M179.6 231.6c-2.5 0-4.8-.2-6.5-.7a27.2 27.2 0 016.5-.7c2.5 0 4.7.3 6.5.7-1.8.5-4 .7-6.5.7"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".3" d="M179.6 231.6c-2.5 0-4.8-.2-6.5-.7a27.2 27.2 0 016.5-.7c2.5 0 4.7.3 6.5.7-1.8.5-4 .7-6.5.7z"/>
+  <path fill="#c8b100" d="M187.4 226.2c.1-.2 0-.4 0-.4-.2 0-.4 0-.5.2 0 .2 0 .4.2.5.1 0 .3-.1.3-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M187.4 226.2c.1-.2 0-.4 0-.4-.2 0-.4 0-.5.2 0 .2 0 .4.2.5.1 0 .3-.1.3-.3z"/>
+  <path fill="#c8b100" d="M182.5 225.2c0-.2 0-.3-.2-.4-.2 0-.3.2-.3.4s0 .3.2.4c.1 0 .3-.2.3-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M182.5 225.2c0-.2 0-.3-.2-.4-.2 0-.3.2-.3.4s0 .3.2.4c.1 0 .3-.2.3-.4z"/>
+  <path fill="#c8b100" d="M176.7 225.2c0-.2 0-.3.2-.4.2 0 .3.2.3.4s0 .3-.2.4l-.3-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M176.7 225.2c0-.2 0-.3.2-.4.2 0 .3.2.3.4s0 .3-.2.4l-.3-.4z"/>
+  <path fill="#c8b100" d="M171.8 226.2c-.1-.2 0-.4.1-.4s.3 0 .4.2c0 .2 0 .4-.2.5-.1 0-.3-.1-.3-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M171.8 226.2c-.1-.2 0-.4.1-.4s.3 0 .4.2c0 .2 0 .4-.2.5-.1 0-.3-.1-.3-.3z"/>
+  <path fill="#c8b100" d="M179.6 222.4l-.9.5.7 1.4.2.2.2-.2.7-1.4-1-.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M179.6 222.4l-.9.5.7 1.4.2.2.2-.2.7-1.4-1-.5"/>
+  <path fill="#c8b100" d="M177.7 224.5l.4.6 1.3-.4.2-.2-.2-.2-1.3-.4-.4.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M177.7 224.5l.4.6 1.3-.4.2-.2-.2-.2-1.3-.4-.4.6"/>
+  <path fill="#c8b100" d="M181.5 224.5l-.4.6-1.3-.4-.2-.2.1-.2 1.4-.4.4.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M181.5 224.5l-.4.6-1.3-.4-.2-.2.1-.2 1.4-.4.4.6"/>
+  <path fill="#c8b100" d="M173.9 223l-.7.6.9 1.2.2.1.2-.2.3-1.4-1-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M173.9 223l-.7.6.9 1.2.2.1.2-.2.3-1.4-1-.3"/>
+  <path fill="#c8b100" d="M172.4 225.3l.5.5 1.3-.7v-.4h-1.5l-.3.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M172.4 225.3l.5.5 1.3-.7v-.4h-1.5l-.3.6"/>
+  <path fill="#c8b100" d="M176.2 224.6l-.3.6-1.4-.1-.2-.2.1-.2 1.3-.7.5.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M176.2 224.6l-.3.6-1.4-.1-.2-.2.1-.2 1.3-.7.5.6"/>
+  <path fill="#c8b100" d="M171 225.5v.7l-1.5.1h-.2v-.3l1.1-1 .6.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M171 225.5v.7l-1.5.1h-.2v-.3l1.1-1 .6.5"/>
+  <path fill="#c8b100" d="M173.8 225c0-.4.2-.6.5-.6s.5.2.5.5a.5.5 0 01-.5.5.5.5 0 01-.5-.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M173.8 225c0-.4.2-.6.5-.6s.5.2.5.5a.5.5 0 01-.5.5.5.5 0 01-.5-.5z"/>
+  <path fill="#c8b100" d="M185.3 223l.7.6-.9 1.2-.2.1-.2-.2-.3-1.4 1-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M185.3 223l.7.6-.9 1.2-.2.1-.2-.2-.3-1.4 1-.3"/>
+  <path fill="#c8b100" d="M186.8 225.3l-.6.5-1.2-.7-.1-.2.2-.2h1.4l.3.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M186.8 225.3l-.6.5-1.2-.7-.1-.2.2-.2h1.4l.3.6"/>
+  <path fill="#c8b100" d="M183 224.6l.3.6 1.4-.1.2-.2-.1-.2-1.3-.7-.5.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M183 224.6l.3.6 1.4-.1.2-.2-.1-.2-1.3-.7-.5.6"/>
+  <path fill="#c8b100" d="M188 225.5v.7l1.5.1h.2v-.3l-1.1-1-.6.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M188 225.5v.7l1.5.1h.2v-.3l-1.1-1-.6.5"/>
+  <path fill="#c8b100" d="M179 224.5a.5.5 0 01.6-.5c.3 0 .5.2.5.5a.5.5 0 01-.5.4.5.5 0 01-.5-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M179 224.5a.5.5 0 01.6-.5c.3 0 .5.2.5.5a.5.5 0 01-.5.4.5.5 0 01-.5-.4z"/>
+  <path fill="#c8b100" d="M184.4 225a.5.5 0 01.5-.6.5.5 0 01.5.5.5.5 0 01-.5.5.5.5 0 01-.5-.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M184.4 225a.5.5 0 01.5-.6.5.5 0 01.5.5.5.5 0 01-.5.5.5.5 0 01-.5-.5z"/>
+  <path fill="#c8b100" d="M169.1 226.3l-.7-.8-.7-.3s.3-.3.6-.3l.5.2v-.2s.3 0 .4.4v1"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M169.1 226.3l-.7-.8-.7-.3s.3-.3.6-.3l.5.2v-.2s.3 0 .4.4v1z"/>
+  <path fill="#c8b100" d="M169.1 226l.6.1c.2.2.2.4 0 .5s-.3.1-.4 0c-.2-.2-.3-.4-.2-.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M169.1 226l.6.1c.2.2.2.4 0 .5s-.3.1-.4 0c-.2-.2-.3-.4-.2-.5z"/>
+  <path fill="#c8b100" d="M189.9 226.3l.7-.8.7-.3s-.3-.3-.6-.3a.6.6 0 00-.5.2v-.2s-.3 0-.4.4v.7l.1.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M189.9 226.3l.7-.8.7-.3s-.3-.3-.6-.3a.6.6 0 00-.5.2v-.2s-.3 0-.4.4v.7l.1.3z"/>
+  <path fill="#c8b100" d="M189.9 226l-.5.1c-.2.2-.3.4-.2.5h.6c.2-.2.2-.4.1-.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M189.9 226l-.5.1c-.2.2-.3.4-.2.5h.6c.2-.2.2-.4.1-.5z"/>
+  <path fill="#c8b100" d="M168.2 238h22.9v-6h-22.9v6z"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M168.2 238h22.9v-6h-22.9v6z"/>
+  <path fill="#c8b100" d="M170.6 242l.5-.1h17.5c-.6-.2-1-.7-1-1.3 0-.6.5-1.2 1-1.4a1.8 1.8 0 01-.5.1h-17a1.5 1.5 0 01-.5 0c.7.2 1 .7 1 1.3 0 .6-.4 1.1-1 1.3"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M170.6 242l.5-.1h17.5c-.6-.2-1-.7-1-1.3 0-.6.5-1.2 1-1.4a1.8 1.8 0 01-.5.1h-17a1.5 1.5 0 01-.5 0c.7.2 1 .7 1 1.3 0 .6-.4 1.1-1 1.3z"/>
+  <path fill="#c8b100" d="M171 241.9h17.2c.5 0 1 .3 1 .8 0 .4-.5.8-1 .8H171c-.6 0-1.1-.4-1.1-.8 0-.5.5-.8 1-.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M171 241.9h17.2c.5 0 1 .3 1 .8 0 .4-.5.8-1 .8H171c-.6 0-1.1-.4-1.1-.8 0-.5.5-.8 1-.8z"/>
+  <path fill="#c8b100" d="M171 238h17.2c.5 0 1 .2 1 .6 0 .4-.5.7-1 .7H171c-.6 0-1-.3-1-.7 0-.4.4-.7 1-.7"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M171 238h17.2c.5 0 1 .2 1 .6 0 .4-.5.7-1 .7H171c-.6 0-1-.3-1-.7 0-.4.4-.7 1-.7z"/>
+  <path fill="#005bbf" d="M195.6 338.6a8.7 8.7 0 01-4-.9 8.9 8.9 0 00-4-.8c-1.6 0-3 .3-4 .8a8.8 8.8 0 01-4 1 8.7 8.7 0 01-4-1 9 9 0 00-4-.8 9 9 0 00-3.9.8c-1 .6-2.4 1-4 1v2.4a8.9 8.9 0 004-1 8.8 8.8 0 014-.8 9 9 0 013.9.9 9 9 0 004 .9 9 9 0 004-.9 9 9 0 014-.9c1.5 0 3 .4 4 .9a8.6 8.6 0 004 .9v-2.5"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M195.6 338.6a8.7 8.7 0 01-4-.9 8.9 8.9 0 00-4-.8c-1.6 0-3 .3-4 .8a8.8 8.8 0 01-4 1 8.7 8.7 0 01-4-1 9 9 0 00-4-.8 9 9 0 00-3.9.8c-1 .6-2.4 1-4 1v2.4a8.9 8.9 0 004-1 8.8 8.8 0 014-.8 9 9 0 013.9.9 9 9 0 004 .9 9 9 0 004-.9 9 9 0 014-.9c1.5 0 3 .4 4 .9a8.6 8.6 0 004 .9v-2.5z"/>
+  <path fill="#ccc" d="M195.6 341a8.7 8.7 0 01-4-.8 8.9 8.9 0 00-4-.8c-1.6 0-3 .3-4 .8a9 9 0 01-4 .9 8.7 8.7 0 01-4-1 9 9 0 00-4-.8c-1.5 0-2.9.3-3.9.9a9 9 0 01-4 .9v2.4a8.9 8.9 0 004-.9 8.6 8.6 0 014-.8 9 9 0 013.9.8 8.7 8.7 0 004 1 8.9 8.9 0 004-1 9 9 0 014-.8 8.9 8.9 0 014 .9 9 9 0 004 .9V341"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M195.6 341a8.7 8.7 0 01-4-.8 8.9 8.9 0 00-4-.8c-1.6 0-3 .3-4 .8a9 9 0 01-4 .9 8.7 8.7 0 01-4-1 9 9 0 00-4-.8c-1.5 0-2.9.3-3.9.9a9 9 0 01-4 .9v2.4a8.9 8.9 0 004-.9 8.6 8.6 0 014-.8 9 9 0 013.9.8 8.7 8.7 0 004 1 8.9 8.9 0 004-1 9 9 0 014-.8 8.9 8.9 0 014 .9 9 9 0 004 .9V341"/>
+  <path fill="#005bbf" d="M195.6 343.6a8.7 8.7 0 01-4-1 8.9 8.9 0 00-4-.8 9 9 0 00-4 .9 8.9 8.9 0 01-4 .9 8.7 8.7 0 01-4-1 9 9 0 00-4-.8 9 9 0 00-3.9.8 8.9 8.9 0 01-4 1v2.4c1.5 0 3-.3 4-.9a8.7 8.7 0 014-.8 9 9 0 013.9.8 9 9 0 008 0 9 9 0 014-.8c1.5 0 3 .3 4 .8 1 .6 2.4 1 4 1v-2.6"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M195.6 343.6a8.7 8.7 0 01-4-1 8.9 8.9 0 00-4-.8 9 9 0 00-4 .9 8.9 8.9 0 01-4 .9 8.7 8.7 0 01-4-1 9 9 0 00-4-.8 9 9 0 00-3.9.8 8.9 8.9 0 01-4 1v2.4c1.5 0 3-.3 4-.9a8.7 8.7 0 014-.8 9 9 0 013.9.8 9 9 0 008 0 9 9 0 014-.8c1.5 0 3 .3 4 .8 1 .6 2.4 1 4 1v-2.6"/>
+  <path fill="#ccc" d="M195.6 348.5a8.6 8.6 0 01-4-1 9 9 0 00-4-.7 9 9 0 00-4 .8 8.9 8.9 0 01-4 .9 8.7 8.7 0 01-4-1 9 9 0 00-4-.7 9 9 0 00-3.9.8 9 9 0 01-4 .9V346a9 9 0 004-.9 8.8 8.8 0 014-.8 9 9 0 013.9.8c1 .6 2.4 1 4 1a9 9 0 004-1 9 9 0 014-.8 9 9 0 014 .8c1 .6 2.4 1 4 1v2.4"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M195.6 348.5a8.6 8.6 0 01-4-1 9 9 0 00-4-.7 9 9 0 00-4 .8 8.9 8.9 0 01-4 .9 8.7 8.7 0 01-4-1 9 9 0 00-4-.7 9 9 0 00-3.9.8 9 9 0 01-4 .9V346a9 9 0 004-.9 8.8 8.8 0 014-.8 9 9 0 013.9.8c1 .6 2.4 1 4 1a9 9 0 004-1 9 9 0 014-.8 9 9 0 014 .8c1 .6 2.4 1 4 1v2.4"/>
+  <path fill="#005bbf" d="M195.6 351a8.7 8.7 0 01-4-1 8.8 8.8 0 00-4-.8 9 9 0 00-4 .9 9 9 0 01-4 .8 8.7 8.7 0 01-4-.9 9 9 0 00-4-.8 9 9 0 00-3.9.8c-1 .6-2.4 1-4 1v-2.5c1.5 0 3-.4 4-1a8.8 8.8 0 014-.7 9 9 0 013.9.8 9 9 0 004 .9 8.9 8.9 0 004-.9 9 9 0 014-.8 9 9 0 014 .8 9 9 0 004 .9v2.5"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M195.6 351a8.7 8.7 0 01-4-1 8.8 8.8 0 00-4-.8 9 9 0 00-4 .9 9 9 0 01-4 .8 8.7 8.7 0 01-4-.9 9 9 0 00-4-.8 9 9 0 00-3.9.8c-1 .6-2.4 1-4 1v-2.5c1.5 0 3-.4 4-1a8.8 8.8 0 014-.7 9 9 0 013.9.8 9 9 0 004 .9 8.9 8.9 0 004-.9 9 9 0 014-.8 9 9 0 014 .8 9 9 0 004 .9v2.5z"/>
+  <path fill="#c8b100" d="M170.6 328.5l.2.6c0 1.5-1.3 2.7-3 2.7h23.6c-1.6 0-2.9-1.2-2.9-2.7l.1-.6a1.4 1.4 0 01-.5 0h-17.5"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M170.6 328.5l.2.6c0 1.5-1.3 2.7-3 2.7h23.6c-1.6 0-2.9-1.2-2.9-2.7l.1-.6a1.4 1.4 0 01-.5 0h-17.5z"/>
+  <path fill="#c8b100" d="M171 327h17.2c.5 0 1 .3 1 .7 0 .5-.5.8-1 .8H171c-.6 0-1.1-.3-1.1-.8 0-.4.5-.8 1-.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M171 327h17.2c.5 0 1 .3 1 .7 0 .5-.5.8-1 .8H171c-.6 0-1.1-.3-1.1-.8 0-.4.5-.8 1-.8z"/>
+  <path fill="#c8b100" d="M168 337.8h23.3v-6H168v6z"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M168 337.8h23.3v-6H168v6z"/>
+  <path fill="#ad1519" d="M166 305.8c-2.2 1.3-3.8 2.7-3.5 3.4 0 .6.8 1 1.9 1.8 1.6 1.1 2.6 3.2 1.8 4.1a5.9 5.9 0 00-.1-9.3"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M166 305.8c-2.2 1.3-3.8 2.7-3.5 3.4 0 .6.8 1 1.9 1.8 1.6 1.1 2.6 3.2 1.8 4.1a5.9 5.9 0 00-.1-9.3z"/>
+  <path fill="#ccc" d="M171.3 326h16.6v-81.6h-16.6V326z"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M183.1 244.5V326m2-81.4V326m-13.8 0h16.6v-81.5h-16.6V326z"/>
+  <path fill="#ad1519" d="M205 275a52.8 52.8 0 00-17-3 51.6 51.6 0 00-8 .8c-9.9 1.7-17.5 5.6-16.9 8.9v.2l-3.7-8.7c-.7-3.6 7.7-8 18.8-9.8a57 57 0 019.8-.8c7 0 13.2.9 16.9 2.3v10"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M205 275a52.8 52.8 0 00-17-3 51.6 51.6 0 00-8 .8c-9.9 1.7-17.5 5.6-16.9 8.9v.2l-3.7-8.7c-.7-3.6 7.7-8 18.8-9.8a57 57 0 019.8-.8c7 0 13.2.9 16.9 2.3v10"/>
+  <path fill="#ad1519" d="M171.3 285.1c-4.7-.3-7.8-1.5-8.2-3.5-.3-1.5 1.3-3.2 4-4.7 1.3.1 2.7.3 4.2.3v8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M171.3 285.1c-4.7-.3-7.8-1.5-8.2-3.5-.3-1.5 1.3-3.2 4-4.7 1.3.1 2.7.3 4.2.3v8"/>
+  <path fill="#ad1519" d="M188 279c2.8.4 5 1 6 2l.2.1c.5 1-2 3.3-6.3 5.8v-8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M188 279c2.8.4 5 1 6 2l.2.1c.5 1-2 3.3-6.3 5.8v-8"/>
+  <path fill="#ad1519" d="M160.9 300.9c-.4-1.3 4-4 10.4-6.3 3-1 5.3-2.1 8.3-3.4 8.9-4 15.4-8.4 14.6-10l-.1-.2c.5.4 1.2 8.4 1.2 8.4.8 1.5-5.2 6-13.3 9.8-2.6 1.3-8.1 3.3-10.7 4.2-4.7 1.6-9.3 4.7-8.9 5.8l-1.5-8.3"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M160.9 300.9c-.4-1.3 4-4 10.4-6.3 3-1 5.3-2.1 8.3-3.4 8.9-4 15.4-8.4 14.6-10l-.1-.2c.5.4 1.2 8.4 1.2 8.4.8 1.5-5.2 6-13.3 9.8-2.6 1.3-8.1 3.3-10.7 4.2-4.7 1.6-9.3 4.7-8.9 5.8l-1.5-8.3z"/>
+  <path fill="#c8b100" d="M170.1 271c2-.7 3.4-1.6 2.7-3.2-.4-1-1.4-1.2-3-.7l-2.8 1 2.5 6.2.9-.3.8-.3-1-2.7zm-1.2-3l.7-.2c.6-.3 1.3 0 1.5.8.3.5.2 1.1-.5 1.6a4.7 4.7 0 01-.7.3l-1-2.5m7.7-2.6l-.8.3h-1l1.5 6.5 4.5-.9-.2-.4v-.4l-2.7.7-1.3-5.8m9 5.6l2.9-6.8a5.4 5.4 0 01-1.1 0 58.5 58.5 0 01-2 5c-.8-1.6-1.7-3.1-2.4-4.7l-1 .1h-1.1l3.7 6.5.5-.1h.5m9.4-5l.5-.9a3.7 3.7 0 00-1.9-.6c-1.8-.2-2.8.6-3 1.7-.2 2.3 3.4 2.1 3.3 3.7-.1.6-.8.9-1.6.8-.8 0-1.4-.5-1.5-1.2h-.2a8 8 0 01-.5 1.2c.5.3 1.2.5 1.9.6 1.8.2 3.3-.6 3.4-1.8.2-2.2-3.4-2.3-3.3-3.6 0-.6.5-1 1.4-.8.7 0 1.1.4 1.3 1h.2"/>
+  <path fill="#ad1519" d="M332.4 225.7s-.8.8-1.3 1c-.6 0-1.3-.6-1.3-.6s-.5.5-1.1.7c-.6.1-1.4-.7-1.4-.7s-.6.8-1.2 1c-.5.2-1.1-.2-1.1-.2s-.2.4-.7.6h-.5l-.6-.5-.7-.7-.6-.2-.3-1.1-.1-.6c-.1-.7.9-1.4 2.4-1.8.8-.2 1.5-.1 2 0a6 6 0 013.3-.8 6 6 0 013.2.7 5.9 5.9 0 013-.7c1.5 0 2.7.3 3.3.8a4.2 4.2 0 012.1 0c1.5.4 2.5 1.1 2.4 1.8v.6l-.4 1-.6.3-.7.8-.6.3s-.3.2-.5.1c-.5-.2-.7-.6-.7-.6s-.6.4-1.2.2c-.5-.2-1-1-1-1s-.9.8-1.5.7c-.6-.2-1.1-.7-1.1-.7s-.7.6-1.2.5c-.6 0-1.4-.9-1.4-.9"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M332.4 225.7s-.8.8-1.3 1c-.6 0-1.3-.6-1.3-.6s-.5.5-1.1.7c-.6.1-1.4-.7-1.4-.7s-.6.8-1.2 1c-.5.2-1.1-.2-1.1-.2s-.2.4-.7.6h-.5l-.6-.5-.7-.7-.6-.2-.3-1.1-.1-.6c-.1-.7.9-1.4 2.4-1.8.8-.2 1.5-.1 2 0a6 6 0 013.3-.8 6 6 0 013.2.7 5.9 5.9 0 013-.7c1.5 0 2.7.3 3.3.8a4.2 4.2 0 012.1 0c1.5.4 2.5 1.1 2.4 1.8v.6l-.4 1-.6.3-.7.8-.6.3s-.3.2-.5.1c-.5-.2-.7-.6-.7-.6s-.6.4-1.2.2c-.5-.2-1-1-1-1s-.9.8-1.5.7c-.6-.2-1.1-.7-1.1-.7s-.7.6-1.2.5c-.6 0-1.4-.9-1.4-.9z"/>
+  <path fill="#c8b100" d="M331 221.4c0-1.1.6-2 1.3-2 .8 0 1.4.9 1.4 2s-.6 2-1.4 2c-.8 0-1.4-.9-1.4-2"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M331 221.4c0-1.1.6-2 1.3-2 .8 0 1.4.9 1.4 2s-.6 2-1.4 2c-.8 0-1.4-.9-1.4-2z"/>
+  <path fill="#c8b100" d="M331.7 221.4c0-1 .3-1.9.7-1.9.3 0 .6.9.6 1.9 0 1-.3 1.8-.7 1.8-.3 0-.6-.8-.6-1.8"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M331.7 221.4c0-1 .3-1.9.7-1.9.3 0 .6.9.6 1.9 0 1-.3 1.8-.7 1.8-.3 0-.6-.8-.6-1.8z"/>
+  <path fill="#c8b100" d="M325 229.6a4.8 4.8 0 00-.5-1c2-.7 4.7-1 7.8-1 3.1 0 6 .3 8 1l-.6.9-.4.8c-1.8-.6-4.1-.8-7-.8-2.8 0-5.6.3-7 .8l-.2-.7"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M325 229.6a4.8 4.8 0 00-.5-1c2-.7 4.7-1 7.8-1 3.1 0 6 .3 8 1l-.6.9-.4.8c-1.8-.6-4.1-.8-7-.8-2.8 0-5.6.3-7 .8l-.2-.7"/>
+  <path fill="#c8b100" d="M332.3 232.2c2.5 0 5.3-.4 6.3-.7.7-.2 1-.5 1-.8 0-.2-.2-.3-.4-.4a25.7 25.7 0 00-6.9-.9 26 26 0 00-6.8.9c-.2 0-.4.2-.4.4 0 .3.3.6 1 .8 1 .3 3.7.7 6.2.7"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M332.3 232.2c2.5 0 5.3-.4 6.3-.7.7-.2 1-.5 1-.8 0-.2-.2-.3-.4-.4a25.7 25.7 0 00-6.9-.9 26 26 0 00-6.8.9c-.2 0-.4.2-.4.4 0 .3.3.6 1 .8 1 .3 3.7.7 6.2.7z"/>
+  <path fill="#fff" d="M338.4 222.3a.5.5 0 01.4-.5c.3 0 .5.2.5.5 0 .2-.2.4-.5.4a.5.5 0 01-.4-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".2" d="M338.4 222.3a.5.5 0 01.4-.5c.3 0 .5.2.5.5 0 .2-.2.4-.5.4a.5.5 0 01-.4-.4zm-.3-1.6a.5.5 0 01.5-.4c.2 0 .4.2.4.4s-.2.5-.4.5a.5.5 0 01-.5-.4zm-1.1-1a.5.5 0 01.4-.3c.3 0 .5.1.5.4s-.2.4-.5.4a.5.5 0 01-.4-.4zm-1.5-.4c0-.2.2-.4.5-.4a.5.5 0 01.4.4.5.5 0 01-.4.5c-.3 0-.5-.2-.5-.5zm-1.5 0a.5.5 0 01.5-.4c.3 0 .5.2.5.5s-.2.4-.5.4a.5.5 0 01-.5-.4z"/>
+  <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".3" d="M343 225.3a3 3 0 00.2-1.1 3 3 0 00-3-3 2.8 2.8 0 00-1.3.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M337.8 223.2l.3-.9c0-1.2-1.3-2.1-2.7-2.1-.7 0-1.3.1-1.7.4"/>
+  <path fill="none" stroke="#000" stroke-width=".2" d="M343.4 224c0-.3.2-.5.4-.5s.5.2.5.4-.2.5-.5.5c-.2 0-.4-.2-.4-.5zm-.2-1.7c0-.2.2-.4.5-.4.2 0 .4.2.4.4s-.2.4-.5.4c-.2 0-.4-.1-.4-.4zm-1-1.2a.5.5 0 01.4-.5c.3 0 .5.2.5.5s-.2.4-.5.4a.5.5 0 01-.5-.4zm-1.5-.7c0-.2.3-.4.5-.4.3 0 .5.2.5.4a.5.5 0 01-.5.5.5.5 0 01-.4-.5zm-1.4 0c0-.2.2-.4.4-.4s.5.2.5.5-.2.4-.5.4-.4-.2-.4-.4z"/>
+  <path fill="#c8b100" d="M340.3 227.4l-.6-.5s-.6.3-1.3.2c-.7-.1-1-1-1-1s-.7.7-1.4.6c-.7 0-1.1-.6-1.1-.6s-.7.5-1.4.5c-.6 0-1.2-.9-1.2-.9s-.7.9-1.3 1c-.6 0-1.1-.6-1.1-.6s-.3.6-1.1.7c-.8.1-1.5-.6-1.5-.6s-.5.7-1 1c-.6.1-1.3-.4-1.3-.4l-.2.5-.4.2.2.4a32.5 32.5 0 0115.5.1l.2-.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M340.3 227.4l-.6-.5s-.6.3-1.3.2c-.7-.1-1-1-1-1s-.7.7-1.4.6c-.7 0-1.1-.6-1.1-.6s-.7.5-1.4.5c-.6 0-1.2-.9-1.2-.9s-.7.9-1.3 1c-.6 0-1.1-.6-1.1-.6s-.3.6-1.1.7c-.8.1-1.5-.6-1.5-.6s-.5.7-1 1c-.6.1-1.3-.4-1.3-.4l-.2.5-.4.2.2.4a32.5 32.5 0 0115.5.1l.2-.6z"/>
+  <path fill="#fff" d="M325.3 222.3a.5.5 0 01.5-.5.5.5 0 01.4.5.5.5 0 01-.4.4c-.3 0-.5-.2-.5-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".2" d="M325.3 222.3a.5.5 0 01.5-.5.5.5 0 01.4.5.5.5 0 01-.4.4c-.3 0-.5-.2-.5-.4zm.3-1.6a.5.5 0 01.4-.4.5.5 0 01.5.4.5.5 0 01-.5.5.4.4 0 01-.4-.4zm1.1-1c0-.1.2-.3.5-.3s.5.1.5.4-.2.4-.5.4a.5.5 0 01-.5-.4zm1.5-.4c0-.2.2-.4.4-.4s.5.2.5.4c0 .3-.2.5-.5.5-.2 0-.4-.2-.4-.5zm1.5 0a.5.5 0 01.4-.4.5.5 0 01.5.5c0 .2-.2.4-.5.4a.5.5 0 01-.4-.4z"/>
+  <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".3" d="M321.7 225.3a3 3 0 01-.3-1.1 3 3 0 013-3c.4 0 1 .2 1.3.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M326.9 223.2l-.3-.9c0-1.2 1.2-2.1 2.7-2.1.6 0 1.2.1 1.6.4"/>
+  <path fill="none" stroke="#000" stroke-width=".2" d="M320.3 224c0-.3.2-.5.5-.5s.5.2.5.4a.5.5 0 01-.5.5c-.3 0-.5-.2-.5-.5zm.2-1.7c0-.2.2-.4.5-.4s.4.2.4.4-.2.4-.4.4a.5.5 0 01-.5-.4zm1-1.2c0-.3.3-.5.5-.5a.5.5 0 01.5.5.5.5 0 01-.5.4.5.5 0 01-.4-.4zm1.5-.7a.5.5 0 01.4-.4c.3 0 .5.2.5.4a.5.5 0 01-.5.5.5.5 0 01-.5-.5zm1.4 0c0-.2.2-.4.5-.4a.5.5 0 01.4.5c0 .2-.2.4-.4.4s-.5-.2-.5-.4z"/>
+  <path fill="#c8b100" d="M332.4 224.8h.2v.4c0 .6.5 1 1.1 1 .5 0 1-.2 1.1-.7l.2-.4v.5c0 .5.6.9 1.1.9a1.1 1.1 0 001.2-1.1.7.7 0 000-.1l.3-.4.2.4a1 1 0 000 .5c0 .6.4 1 1 1a1.1 1.1 0 001-.4l.1-.3v.4c0 .3.2.6.5.7 0 0 .4 0 1-.4l.8-.8v.5s-.5.8-1 1.1c-.2.1-.6.3-1 .3-.3-.1-.5-.4-.6-.7a1.6 1.6 0 01-.8.3c-.7 0-1.3-.4-1.5-1a1.6 1.6 0 01-1.2.6 1.7 1.7 0 01-1.3-.6c-.3.3-.7.4-1 .4a1.7 1.7 0 01-1.5-.7 1.7 1.7 0 01-2.4.3 1.7 1.7 0 01-1.3.6c-.5 0-1-.2-1.2-.5-.2.5-.8.8-1.5.8-.3 0-.5 0-.8-.2-.1.3-.3.6-.7.7a2 2 0 01-1-.3l-1-1.1v-.5l1 .8c.4.4.8.4.8.4.4 0 .5-.4.5-.7v-.4l.3.3c.2.3.5.5.9.5.6 0 1-.5 1-1a1 1 0 000-.6l.2-.4.3.4c0 .7.5 1.2 1.1 1.2.6 0 1.1-.4 1.2-1v-.3l.2.3c.1.5.6.8 1 .8a1.1 1.1 0 001.2-1.5h.2"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M332.4 224.8h.2v.4c0 .6.5 1 1.1 1 .5 0 1-.2 1.1-.7l.2-.4v.5c0 .5.6.9 1.1.9a1.1 1.1 0 001.2-1.1.7.7 0 000-.1l.3-.4.2.4a1 1 0 000 .5c0 .6.4 1 1 1a1.1 1.1 0 001-.4l.1-.3v.4c0 .3.2.6.5.7 0 0 .4 0 1-.4l.8-.8v.5s-.5.8-1 1.1c-.2.1-.6.3-1 .3-.3-.1-.5-.4-.6-.7a1.6 1.6 0 01-.8.3c-.7 0-1.3-.4-1.5-1a1.6 1.6 0 01-1.2.6 1.7 1.7 0 01-1.3-.6c-.3.3-.7.4-1 .4a1.7 1.7 0 01-1.5-.7 1.7 1.7 0 01-2.4.3 1.7 1.7 0 01-1.3.6c-.5 0-1-.2-1.2-.5-.2.5-.8.8-1.5.8-.3 0-.5 0-.8-.2-.1.3-.3.6-.7.7a2 2 0 01-1-.3l-1-1.1v-.5l1 .8c.4.4.8.4.8.4.4 0 .5-.4.5-.7v-.4l.3.3c.2.3.5.5.9.5.6 0 1-.5 1-1a1 1 0 000-.6l.2-.4.3.4c0 .7.5 1.2 1.1 1.2.6 0 1.1-.4 1.2-1v-.3l.2.3c.1.5.6.8 1 .8a1.1 1.1 0 001.2-1.5h.2z"/>
+  <path fill="#c8b100" d="M332.3 227.6c-3 0-5.8.3-7.8 1l-.4-.2.2-.4c2-.6 4.9-1 8-1s6 .4 8 1c.2 0 .3.2.2.3 0 .2-.2.3-.3.2-2-.6-4.8-1-7.9-1"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M332.3 227.6c-3 0-5.8.3-7.8 1l-.4-.2.2-.4c2-.6 4.9-1 8-1s6 .4 8 1c.2 0 .3.2.2.3 0 .2-.2.3-.3.2-2-.6-4.8-1-7.9-1z"/>
+  <path fill="#fff" d="M329.4 228.7c0-.3.2-.5.4-.5s.5.2.5.5c0 .2-.3.4-.5.4s-.5-.2-.5-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M329.4 228.7c0-.3.2-.5.4-.5s.5.2.5.5c0 .2-.3.4-.5.4s-.5-.2-.5-.4z"/>
+  <path fill="#ad1519" d="M332.4 228.8h-1c-.2 0-.4-.1-.4-.3 0-.1.2-.3.4-.3h2a.3.3 0 01.3.3c0 .2-.1.3-.3.3h-1"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M332.4 228.8h-1c-.2 0-.4-.1-.4-.3 0-.1.2-.3.4-.3h2a.3.3 0 01.3.3c0 .2-.1.3-.3.3h-1"/>
+  <path fill="#058e6e" d="M327.4 229.2h-.7a.3.3 0 01-.4-.2.3.3 0 01.3-.3l.7-.1.7-.2c.2 0 .4.1.4.3 0 .2 0 .3-.3.4h-.7"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M327.4 229.2h-.7a.3.3 0 01-.4-.2.3.3 0 01.3-.3l.7-.1.7-.2c.2 0 .4.1.4.3 0 .2 0 .3-.3.4h-.7"/>
+  <path fill="#ad1519" d="M324.5 229.7l.4-.5.6.1-.4.6-.6-.2"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M324.5 229.7l.4-.5.6.1-.4.6-.6-.2"/>
+  <path fill="#fff" d="M334.4 228.7c0-.3.2-.5.5-.5.2 0 .4.2.4.5 0 .2-.2.4-.4.4s-.5-.2-.5-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M334.4 228.7c0-.3.2-.5.5-.5.2 0 .4.2.4.5 0 .2-.2.4-.4.4s-.5-.2-.5-.4z"/>
+  <path fill="#058e6e" d="M337.3 229.2h.7c.2.1.3 0 .4-.2a.3.3 0 00-.3-.3l-.7-.1-.7-.2c-.2 0-.4.1-.4.3 0 .2 0 .3.3.4h.7"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M337.3 229.2h.7c.2.1.3 0 .4-.2a.3.3 0 00-.3-.3l-.7-.1-.7-.2c-.2 0-.4.1-.4.3 0 .2 0 .3.3.4h.7"/>
+  <path fill="#ad1519" d="M340.1 229.7l-.3-.5h-.7l.4.6h.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M340.1 229.7l-.3-.5h-.7l.4.6h.6"/>
+  <path fill="#ad1519" d="M332.3 231.6a27.1 27.1 0 01-6.4-.7 27.9 27.9 0 0113 0 27.1 27.1 0 01-6.6.7"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".3" d="M332.3 231.6a27.1 27.1 0 01-6.4-.7 27.9 27.9 0 0113 0 27.1 27.1 0 01-6.6.7z"/>
+  <path fill="#c8b100" d="M340.2 226.2l-.1-.4c-.2 0-.3 0-.4.2l.1.5c.2 0 .3-.1.4-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M340.2 226.2l-.1-.4c-.2 0-.3 0-.4.2l.1.5c.2 0 .3-.1.4-.3z"/>
+  <path fill="#c8b100" d="M335.2 225.2c0-.2 0-.3-.2-.4-.1 0-.3.2-.3.4s0 .3.2.4c.2 0 .3-.2.3-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M335.2 225.2c0-.2 0-.3-.2-.4-.1 0-.3.2-.3.4s0 .3.2.4c.2 0 .3-.2.3-.4z"/>
+  <path fill="#c8b100" d="M329.5 225.2c0-.2 0-.3.2-.4.1 0 .3.2.3.4s0 .3-.2.4c-.2 0-.3-.2-.3-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M329.5 225.2c0-.2 0-.3.2-.4.1 0 .3.2.3.4s0 .3-.2.4c-.2 0-.3-.2-.3-.4z"/>
+  <path fill="#c8b100" d="M324.5 226.2l.1-.4c.2 0 .3 0 .4.2l-.1.5c-.2 0-.3-.1-.4-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M324.5 226.2l.1-.4c.2 0 .3 0 .4.2l-.1.5c-.2 0-.3-.1-.4-.3z"/>
+  <path fill="#c8b100" d="M332.3 222.4l-.8.5.6 1.4.2.2.3-.2.6-1.4-.9-.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M332.3 222.4l-.8.5.6 1.4.2.2.3-.2.6-1.4-.9-.5"/>
+  <path fill="#c8b100" d="M330.4 224.5l.4.6 1.4-.4.1-.2-.1-.2-1.4-.4-.4.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M330.4 224.5l.4.6 1.4-.4.1-.2-.1-.2-1.4-.4-.4.6"/>
+  <path fill="#c8b100" d="M334.3 224.5l-.4.6-1.4-.4-.1-.2.1-.2 1.4-.4.4.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M334.3 224.5l-.4.6-1.4-.4-.1-.2.1-.2 1.4-.4.4.6"/>
+  <path fill="#c8b100" d="M326.6 223l-.7.6 1 1.2.2.1.1-.2.3-1.4-.9-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M326.6 223l-.7.6 1 1.2.2.1.1-.2.3-1.4-.9-.3"/>
+  <path fill="#c8b100" d="M325.2 225.3l.5.5 1.2-.7.1-.2-.1-.2h-1.5l-.2.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M325.2 225.3l.5.5 1.2-.7.1-.2-.1-.2h-1.5l-.2.6"/>
+  <path fill="#c8b100" d="M329 224.6l-.3.6-1.4-.1-.2-.2v-.2l1.3-.7.6.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M329 224.6l-.3.6-1.4-.1-.2-.2v-.2l1.3-.7.6.6"/>
+  <path fill="#c8b100" d="M323.8 225.5l-.1.7-1.5.1h-.2v-.3l1.2-1 .6.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M323.8 225.5l-.1.7-1.5.1h-.2v-.3l1.2-1 .6.5"/>
+  <path fill="#c8b100" d="M326.6 225a.5.5 0 01.5-.6.5.5 0 01.5.5.5.5 0 01-.5.5.5.5 0 01-.5-.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M326.6 225a.5.5 0 01.5-.6.5.5 0 01.5.5.5.5 0 01-.5.5.5.5 0 01-.5-.5z"/>
+  <path fill="#c8b100" d="M338 223l.8.6-1 1.2-.2.1-.1-.2-.3-1.4.9-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M338 223l.8.6-1 1.2-.2.1-.1-.2-.3-1.4.9-.3"/>
+  <path fill="#c8b100" d="M339.5 225.3l-.5.5-1.3-.7v-.2l.1-.2h1.5l.2.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M339.5 225.3l-.5.5-1.3-.7v-.2l.1-.2h1.5l.2.6"/>
+  <path fill="#c8b100" d="M335.7 224.6l.3.6 1.4-.1.2-.2v-.2l-1.3-.7-.6.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M335.7 224.6l.3.6 1.4-.1.2-.2v-.2l-1.3-.7-.6.6"/>
+  <path fill="#c8b100" d="M340.7 225.5l.1.7 1.4.1h.3v-.3l-1.2-1-.6.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M340.7 225.5l.1.7 1.4.1h.3v-.3l-1.2-1-.6.5"/>
+  <path fill="#c8b100" d="M331.8 224.5c0-.3.3-.5.5-.5s.5.2.5.5c0 .2-.2.4-.5.4a.5.5 0 01-.5-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M331.8 224.5c0-.3.3-.5.5-.5s.5.2.5.5c0 .2-.2.4-.5.4a.5.5 0 01-.5-.4z"/>
+  <path fill="#c8b100" d="M337.1 225a.5.5 0 01.5-.6c.3 0 .5.2.5.5s-.2.5-.5.5a.5.5 0 01-.5-.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M337.1 225a.5.5 0 01.5-.6c.3 0 .5.2.5.5s-.2.5-.5.5a.5.5 0 01-.5-.5z"/>
+  <path fill="#c8b100" d="M331.4 219c0-.4.4-.8 1-.8s.9.4.9.9-.4.9-1 .9a1 1 0 01-.9-1"/>
+  <path fill="#c8b100" d="M333 218.8v.6h-1.5v-.6h.5v-1.4h-.6v-.6h.6v-.5h.7v.5h.6v.6h-.6v1.4h.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M333 218.8v.6h-1.5v-.6h.5v-1.4h-.6v-.6h.6v-.5h.7v.5h.6v.6h-.6v1.4h.3z"/>
+  <path fill="#c8b100" d="M333.7 218.8v.6H331v-.6h1v-1.4h-.7v-.6h.6v-.5h.7v.5h.6v.6h-.6v1.4h1"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M332.6 218.2a.9.9 0 01.7.9c0 .5-.4.9-1 .9a1 1 0 01-.9-1c0-.3.3-.7.7-.8"/>
+  <path fill="#c8b100" d="M321.9 226.3l-.7-.8-.7-.3s.3-.3.6-.3l.5.2v-.2s.2 0 .3.4c.2.3 0 .7 0 .7v.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M321.9 226.3l-.7-.8-.7-.3s.3-.3.6-.3l.5.2v-.2s.2 0 .3.4c.2.3 0 .7 0 .7v.3z"/>
+  <path fill="#c8b100" d="M321.9 226l.5.1c.2.2.3.4.1.5h-.5c-.2-.2-.2-.4-.1-.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M321.9 226l.5.1c.2.2.3.4.1.5h-.5c-.2-.2-.2-.4-.1-.5z"/>
+  <path fill="#c8b100" d="M342.6 226.3l.7-.8.7-.3s-.3-.3-.6-.3a.6.6 0 00-.5.2v-.2s-.3 0-.4.4v.7l.1.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M342.6 226.3l.7-.8.7-.3s-.3-.3-.6-.3a.6.6 0 00-.5.2v-.2s-.3 0-.4.4v.7l.1.3z"/>
+  <path fill="#c8b100" d="M342.6 226l-.5.1c-.2.2-.2.4-.1.5.1.2.3.1.5 0 .2-.2.3-.4.1-.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M342.6 226l-.5.1c-.2.2-.2.4-.1.5.1.2.3.1.5 0 .2-.2.3-.4.1-.5z"/>
+  <path fill="#c8b100" d="M321 238h22.8v-6h-22.9v6z"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M321 238h22.8v-6h-22.9v6z"/>
+  <path fill="#c8b100" d="M341.4 242a1 1 0 00-.4-.1h-17.6c.6-.2 1-.7 1-1.3 0-.6-.5-1.2-1-1.4l.4.1h17.6c-.7.2-1 .7-1 1.3 0 .6.4 1.1 1 1.3"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M341.4 242a1 1 0 00-.4-.1h-17.6c.6-.2 1-.7 1-1.3 0-.6-.5-1.2-1-1.4l.4.1h17.6c-.7.2-1 .7-1 1.3 0 .6.4 1.1 1 1.3z"/>
+  <path fill="#c8b100" d="M323.9 241.9h17c.6 0 1.1.3 1.1.8 0 .4-.5.8-1 .8h-17.1c-.6 0-1-.4-1-.8 0-.5.4-.8 1-.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M323.9 241.9h17c.6 0 1.1.3 1.1.8 0 .4-.5.8-1 .8h-17.1c-.6 0-1-.4-1-.8 0-.5.4-.8 1-.8z"/>
+  <path fill="#c8b100" d="M323.9 238h17c.6 0 1.1.2 1.1.6 0 .4-.5.7-1 .7h-17.1c-.6 0-1.1-.3-1.1-.7 0-.4.5-.7 1-.7"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M323.9 238h17c.6 0 1.1.2 1.1.6 0 .4-.5.7-1 .7h-17.1c-.6 0-1.1-.3-1.1-.7 0-.4.5-.7 1-.7z"/>
+  <path fill="#005bbf" d="M316.4 338.6c1.6 0 3-.3 4-.9a8.9 8.9 0 014-.8c1.5 0 3 .3 4 .8 1 .6 2.5 1 4 1a8.7 8.7 0 004-1 9 9 0 014-.8c1.5 0 2.8.3 3.9.8 1 .6 2.5 1 4 1v2.4a8.9 8.9 0 01-4-1 8.8 8.8 0 00-4-.8c-1.5 0-2.8.4-3.9.9a8.8 8.8 0 01-4 .9 9 9 0 01-4-.9 9 9 0 00-4-.9c-1.5 0-3 .4-4 .9a8.6 8.6 0 01-4 .9v-2.5"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M316.4 338.6c1.6 0 3-.3 4-.9a8.9 8.9 0 014-.8c1.5 0 3 .3 4 .8 1 .6 2.5 1 4 1a8.7 8.7 0 004-1 9 9 0 014-.8c1.5 0 2.8.3 3.9.8 1 .6 2.5 1 4 1v2.4a8.9 8.9 0 01-4-1 8.8 8.8 0 00-4-.8c-1.5 0-2.8.4-3.9.9a8.8 8.8 0 01-4 .9 9 9 0 01-4-.9 9 9 0 00-4-.9c-1.5 0-3 .4-4 .9a8.6 8.6 0 01-4 .9v-2.5z"/>
+  <path fill="#ccc" d="M316.4 341a8.7 8.7 0 004-.8 8.9 8.9 0 014-.8c1.5 0 3 .3 4 .8a9 9 0 004 .9c1.6 0 3-.4 4-1a8.9 8.9 0 014-.8 8 8 0 013.9.9 8.9 8.9 0 004 .9v2.4a8.9 8.9 0 01-4-.9 8.6 8.6 0 00-4-.8c-1.5 0-2.8.3-3.9.8a8.7 8.7 0 01-4 1 8.9 8.9 0 01-4-1 9 9 0 00-4-.8 8.9 8.9 0 00-4 .9 8.6 8.6 0 01-4 .9V341"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M316.4 341a8.7 8.7 0 004-.8 8.9 8.9 0 014-.8c1.5 0 3 .3 4 .8a9 9 0 004 .9c1.6 0 3-.4 4-1a8.9 8.9 0 014-.8 8 8 0 013.9.9 8.9 8.9 0 004 .9v2.4a8.9 8.9 0 01-4-.9 8.6 8.6 0 00-4-.8c-1.5 0-2.8.3-3.9.8a8.7 8.7 0 01-4 1 8.9 8.9 0 01-4-1 9 9 0 00-4-.8 8.9 8.9 0 00-4 .9 8.6 8.6 0 01-4 .9V341"/>
+  <path fill="#005bbf" d="M316.4 343.6c1.6 0 3-.4 4-1a8.9 8.9 0 014-.8 9 9 0 014 .9c1 .5 2.5.9 4 .9 1.6 0 3-.4 4-1a9 9 0 014-.8c1.5 0 2.8.3 3.9.8 1 .6 2.5 1 4 1v2.4a8.9 8.9 0 01-4-.9 8.7 8.7 0 00-4-.8 9 9 0 00-3.9.8 8.7 8.7 0 01-4 1 9 9 0 01-4-1 9 9 0 00-4-.8c-1.5 0-3 .3-4 .8a8.6 8.6 0 01-4 1v-2.6"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M316.4 343.6c1.6 0 3-.4 4-1a8.9 8.9 0 014-.8 9 9 0 014 .9c1 .5 2.5.9 4 .9 1.6 0 3-.4 4-1a9 9 0 014-.8c1.5 0 2.8.3 3.9.8 1 .6 2.5 1 4 1v2.4a8.9 8.9 0 01-4-.9 8.7 8.7 0 00-4-.8 9 9 0 00-3.9.8 8.7 8.7 0 01-4 1 9 9 0 01-4-1 9 9 0 00-4-.8c-1.5 0-3 .3-4 .8a8.6 8.6 0 01-4 1v-2.6"/>
+  <path fill="#ccc" d="M316.4 348.5a8.6 8.6 0 004-1 9 9 0 014-.7 9 9 0 014 .8c1 .5 2.5.9 4 .9 1.6 0 3-.4 4-1a9 9 0 014-.7c1.5 0 2.8.3 3.9.8 1 .5 2.5.9 4 .9V346a8.8 8.8 0 01-4-.9 8.8 8.8 0 00-4-.8 9 9 0 00-3.9.8 8.7 8.7 0 01-4 1 9 9 0 01-4-1 9 9 0 00-4-.8 9 9 0 00-4 .8 8.7 8.7 0 01-4 1v2.4"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M316.4 348.5a8.6 8.6 0 004-1 9 9 0 014-.7 9 9 0 014 .8c1 .5 2.5.9 4 .9 1.6 0 3-.4 4-1a9 9 0 014-.7c1.5 0 2.8.3 3.9.8 1 .5 2.5.9 4 .9V346a8.8 8.8 0 01-4-.9 8.8 8.8 0 00-4-.8 9 9 0 00-3.9.8 8.7 8.7 0 01-4 1 9 9 0 01-4-1 9 9 0 00-4-.8 9 9 0 00-4 .8 8.7 8.7 0 01-4 1v2.4"/>
+  <path fill="#005bbf" d="M316.4 351c1.6 0 3-.4 4-1a8.8 8.8 0 014-.8 9 9 0 014 .9c1 .5 2.5.8 4 .8 1.6 0 3-.3 4-.9a9 9 0 014-.8c1.5 0 2.8.3 3.9.8 1 .6 2.5 1 4 1v-2.5a8.8 8.8 0 01-4-1 8.8 8.8 0 00-4-.7c-1.5 0-2.8.3-3.9.8a8.8 8.8 0 01-4 .9 8.9 8.9 0 01-4-.9 9 9 0 00-4-.8 8.9 8.9 0 00-4 .8 8.7 8.7 0 01-4 .9v2.5"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M316.4 351c1.6 0 3-.4 4-1a8.8 8.8 0 014-.8 9 9 0 014 .9c1 .5 2.5.8 4 .8 1.6 0 3-.3 4-.9a9 9 0 014-.8c1.5 0 2.8.3 3.9.8 1 .6 2.5 1 4 1v-2.5a8.8 8.8 0 01-4-1 8.8 8.8 0 00-4-.7c-1.5 0-2.8.3-3.9.8a8.8 8.8 0 01-4 .9 8.9 8.9 0 01-4-.9 9 9 0 00-4-.8 8.9 8.9 0 00-4 .8 8.7 8.7 0 01-4 .9v2.5z"/>
+  <path fill="#c8b100" d="M341.4 328.5l-.2.6c0 1.5 1.3 2.7 3 2.7h-23.6c1.6 0 2.9-1.2 2.9-2.7a2.8 2.8 0 000-.6h17.9"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M341.4 328.5l-.2.6c0 1.5 1.3 2.7 3 2.7h-23.6c1.6 0 2.9-1.2 2.9-2.7a2.8 2.8 0 000-.6h17.9z"/>
+  <path fill="#c8b100" d="M323.9 327h17c.6 0 1.1.3 1.1.7 0 .5-.5.8-1 .8h-17.1c-.6 0-1-.3-1-.8 0-.4.4-.8 1-.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M323.9 327h17c.6 0 1.1.3 1.1.7 0 .5-.5.8-1 .8h-17.1c-.6 0-1-.3-1-.8 0-.4.4-.8 1-.8z"/>
+  <path fill="#c8b100" d="M320.7 337.8H344v-6h-23.4v6z"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M320.7 337.8H344v-6h-23.4v6z"/>
+  <path fill="#ad1519" d="M346 305.8c2.2 1.3 3.8 2.7 3.6 3.4-.2.6-1 1-2 1.8-1.6 1.1-2.6 3.2-1.8 4.1a5.9 5.9 0 01.1-9.3"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M346 305.8c2.2 1.3 3.8 2.7 3.6 3.4-.2.6-1 1-2 1.8-1.6 1.1-2.6 3.2-1.8 4.1a5.9 5.9 0 01.1-9.3z"/>
+  <path fill="#ccc" d="M324 326h16.7v-81.6h-16.6V326z"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M336.2 244.4v81.4m1.8-81.4v81.4m-14 .2h16.7v-81.6h-16.6V326z"/>
+  <path fill="#ad1519" d="M307 275a53 53 0 0125-2.2c9.9 1.7 17.5 5.6 16.9 8.9v.2s3.7-8.4 3.7-8.7c.7-3.6-7.7-8-18.8-9.8a57 57 0 00-9.8-.8c-7 0-13.2.9-16.9 2.3v10"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M307 275a53 53 0 0125-2.2c9.9 1.7 17.5 5.6 16.9 8.9v.2s3.7-8.4 3.7-8.7c.7-3.6-7.7-8-18.8-9.8a57 57 0 00-9.8-.8c-7 0-13.2.9-16.9 2.3v10"/>
+  <path fill="#ad1519" d="M340.8 285.1c4.6-.3 7.7-1.5 8-3.5.4-1.5-1.2-3.2-4-4.7-1.2.1-2.6.3-4 .3v8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M340.8 285.1c4.6-.3 7.7-1.5 8-3.5.4-1.5-1.2-3.2-4-4.7-1.2.1-2.6.3-4 .3v8"/>
+  <path fill="#ad1519" d="M324 279c-2.8.4-5 1-6 2l-.2.1c-.5 1 2 3.3 6.3 5.8v-8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M324 279c-2.8.4-5 1-6 2l-.2.1c-.5 1 2 3.3 6.3 5.8v-8"/>
+  <path fill="#ad1519" d="M351.1 300.9c.4-1.3-4-4-10.4-6.3-3-1-5.3-2.1-8.3-3.4-8.8-4-15.4-8.4-14.6-10l.1-.2c-.4.4-1.2 8.4-1.2 8.4-.8 1.5 5.2 6 13.3 9.8 2.6 1.3 8.1 3.3 10.7 4.2 4.7 1.6 9.3 4.7 8.9 5.8l1.5-8.3"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M351.1 300.9c.4-1.3-4-4-10.4-6.3-3-1-5.3-2.1-8.3-3.4-8.8-4-15.4-8.4-14.6-10l.1-.2c-.4.4-1.2 8.4-1.2 8.4-.8 1.5 5.2 6 13.3 9.8 2.6 1.3 8.1 3.3 10.7 4.2 4.7 1.6 9.3 4.7 8.9 5.8l1.5-8.3z"/>
+  <path fill="#c8b100" d="M317.5 271.3c.6-2.4 1.4-4.7 2.2-7a5.7 5.7 0 01-.5.1 5.4 5.4 0 01-.6 0c-.4 1.8-.9 3.4-1.5 5.1l-2.9-4.4-1 .2-1 .1a140 140 0 014.2 6h1.1m6.3-7H322l-.2 6.5h4.6v-.8a32 32 0 01-2.7.1v-5.9m7.3 1.1l2.1.3v-.4l.1-.4-6.2-.5v.8h2.2l-.6 6h1l.8.1.6-5.9m2.5 6.5c.3 0 .6 0 1 .2l.8.2.7-3h.1l.5 1.2 1 2.3c.3 0 .7 0 1 .2l1.1.2-.3-.6-1.5-3.1c1.2 0 2-.4 2.3-1.3.1-.7-.1-1.2-.7-1.6a6 6 0 00-1.9-.6l-2.5-.5-1.6 6.4m3.2-5.6c.8.2 1.7.3 1.7 1.1a2 2 0 010 .5c-.3 1-1 1.3-2.3 1l.6-2.6m8.7 7.6l-.3 2.1.9.5.9.5.6-7.4a3.6 3.6 0 01-.8-.4l-6.6 4.1.6.3.4.3 1.8-1.4 2.5 1.4zm-1.9-1.7l2.2-1.4-.3 2.4-1.9-1"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M230.3 205.3c0-1.2 1-2.1 2.2-2.1 1.3 0 2.3.9 2.3 2 0 1.2-1 2.2-2.3 2.2a2.2 2.2 0 01-2.2-2.1z"/>
+  <path fill="#ad1519" stroke="#000" stroke-width=".3" d="M255.3 187.1c6.8 0 13 1 16.8 2.6a32 32 0 008.6 2.2c2.6.3 5 .4 7 .2 2.9 0 6.9.8 11 2.6a29.2 29.2 0 018 5l-1.7 1.5-.4 4-4.4 5-2.2 2-5.3 4-2.6.3-.8 2.3-33.7-4-33.8 4-.9-2.3-2.6-.2-5.2-4.2-2.2-1.9-4.4-5-.5-4-1.6-1.5a29.5 29.5 0 018-5c4-1.8 8-2.6 10.9-2.6 2 .2 4.4.1 7-.2a32 32 0 008.6-2.2c4-1.6 9.6-2.6 16.4-2.6z"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M255.9 231.6c-12.6 0-23.8-1.5-31.9-4-.6 0-.9-.6-.8-1.2a1.2 1.2 0 01.8-1.2 120 120 0 0131.9-4c12.5.1 23.8 1.6 31.8 4 .6.2.9.7.9 1.2 0 .6-.3 1.1-1 1.3a119 119 0 01-31.7 4"/>
+  <path fill="#ad1519" d="M255.8 230a121 121 0 01-29.3-3.4c7.8-2 18-3.2 29.3-3.2a123 123 0 0129.5 3.2c-7.8 2-18.1 3.4-29.5 3.4"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M256.7 230v-6.7m-1.9 6.7v-6.7"/>
+  <path fill="none" stroke="#000" stroke-width=".2" d="M253.1 230v-6.7m-1.7 6.7v-6.7"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M249.9 230v-6.7m-2.9 6.4v-6.2m1.4 6.2v-6.4"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M244.3 229.4v-5.7m1.4 5.9v-6m-5 5.4v-4.9m1.2 5V224m1.2 5.4V224"/>
+  <path fill="none" stroke="#000" stroke-width=".5" d="M239.4 229v-4.8m-1.1 4.6v-4.5"/>
+  <path fill="none" stroke="#000" stroke-width=".6" d="M237 228.7v-4.2m-2.6 3.8V225m1.4 3.5v-3.7"/>
+  <path fill="none" stroke="#000" stroke-width=".7" d="M233.1 228v-2.9m-1.2 2.7v-2.4"/>
+  <path fill="none" stroke="#000" stroke-width=".8" d="M230.6 227.5v-2m-1.4 1.8v-1.4"/>
+  <path fill="none" stroke="#000" stroke-width=".9" d="M227.8 227v-.7"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M264 229.7v-6.2m-3.2 6.4v-6.6m-2.2 6.6v-6.6"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M255.8 221.3a115 115 0 00-32.2 4c.7-.3.6-1-.2-3.2-1-2.6-2.6-2.5-2.6-2.5a130 130 0 0135-4.3c13.8 0 26.2 1.7 35.1 4.3 0 0-1.5-.1-2.5 2.5-.9 2.1-1 3-.3 3.3-8-2.5-19.6-4.1-32.3-4.1"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M255.8 215.3a131 131 0 00-35 4.3c-.5.2-1.2 0-1.4-.6a1.1 1.1 0 01.8-1.4c8.9-2.7 21.6-4.4 35.6-4.4 14.1 0 26.9 1.7 35.8 4.4.6.2.9.9.7 1.4-.2.6-.8.8-1.4.6-8.9-2.6-21.3-4.2-35-4.3"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M255.8 230a121 121 0 01-29.3-3.4c7.8-2 18-3.2 29.3-3.2a123 123 0 0129.5 3.2c-7.8 2-18.1 3.4-29.5 3.4z"/>
+  <path fill="#fff" stroke="#000" stroke-width=".4" d="M246 218.5c0-.6.5-1.1 1.1-1.1.7 0 1.2.5 1.2 1 0 .6-.5 1.1-1.2 1.1a1.1 1.1 0 01-1-1"/>
+  <path fill="#ad1519" stroke="#000" stroke-width=".4" d="M255.9 219.3h-3.4c-.6 0-1.1-.5-1.1-1 0-.6.5-1.1 1-1.1h6.9a1 1 0 011.1 1c0 .6-.5 1.1-1.1 1.1h-3.4"/>
+  <path fill="#058e6e" stroke="#000" stroke-width=".4" d="M239 220.2l-2.5.3c-.6 0-1.2-.3-1.2-1a1 1 0 011-1.1l2.4-.3 2.5-.3a1.1 1.1 0 011.2 1c0 .5-.4 1-1 1.1l-2.5.3"/>
+  <path fill="#fff" stroke="#000" stroke-width=".4" d="M229.1 220.4c0-.5.5-1 1.1-1a1 1 0 011.2 1c0 .6-.5 1.1-1.2 1.1a1.1 1.1 0 01-1-1"/>
+  <path fill="#ad1519" stroke="#000" stroke-width=".4" d="M221.6 222.4l1.3-1.7 3.4.5-2.7 2-2-.8"/>
+  <path fill="#058e6e" stroke="#000" stroke-width=".4" d="M272.8 220.2l2.4.3c.6 0 1.2-.3 1.3-1a1 1 0 00-1-1.1l-2.5-.3-2.4-.3c-.7 0-1.2.4-1.3 1 0 .5.4 1 1 1.1l2.5.3"/>
+  <path fill="#fff" stroke="#000" stroke-width=".4" d="M263.4 218.5c0-.6.6-1.1 1.2-1.1s1.1.5 1.1 1c0 .6-.5 1.1-1.1 1.1a1.1 1.1 0 01-1.2-1m17 2c0-.6.5-1.1 1-1.1a1 1 0 011.2 1c0 .6-.5 1.1-1.1 1.1a1.1 1.1 0 01-1.1-1"/>
+  <path fill="#ad1519" stroke="#000" stroke-width=".4" d="M290 222.4l-1.2-1.7-3.4.5 2.8 2 1.9-.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M225.1 227c8-2.3 18.7-3.6 30.7-3.7 12 0 22.9 1.4 30.8 3.7"/>
+  <path fill="#c8b100" d="M230.4 196l1.5 1.1 2.1-3.4a7.9 7.9 0 01-3.8-7.6c.2-4.5 5.6-8.1 12.5-8.1 3.5 0 6.7 1 9 2.5l.2-1.9a18.6 18.6 0 00-9.2-2.3c-8 0-14.1 4.4-14.4 9.8a9.5 9.5 0 003.3 8l-1.2 2"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M230.4 196l1.5 1.1 2.1-3.4a7.9 7.9 0 01-3.8-7.6c.2-4.5 5.6-8.1 12.5-8.1 3.5 0 6.7 1 9 2.5l.2-1.9a18.6 18.6 0 00-9.2-2.3c-8 0-14.1 4.4-14.4 9.8a9.5 9.5 0 003.3 8l-1.2 2"/>
+  <path fill="#c8b100" d="M230.5 196a9.8 9.8 0 01-4.3-7.7c0-3.5 2.2-6.6 5.7-8.6a9.1 9.1 0 00-3.6 6.4 9.5 9.5 0 003.3 8l-1 2"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M230.5 196a9.8 9.8 0 01-4.3-7.7c0-3.5 2.2-6.6 5.7-8.6a9.1 9.1 0 00-3.6 6.4 9.5 9.5 0 003.3 8l-1 2"/>
+  <path fill="#c8b100" d="M206.8 199.6a9.4 9.4 0 01-2.5-6.3c0-1.4.4-2.8 1-4 2.1-4.5 9-7.8 17.1-7.8 2.2 0 4.4.2 6.3.7-.4.5-.8 1-1 1.5a27.2 27.2 0 00-5.3-.5c-7.4 0-13.6 3-15.4 6.8a7.5 7.5 0 00-.8 3.3 7.8 7.8 0 002.9 6l-2.7 4.4-1.5-1.2 1.9-3"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M206.8 199.6a9.4 9.4 0 01-2.5-6.3c0-1.4.4-2.8 1-4 2.1-4.5 9-7.8 17.1-7.8 2.2 0 4.4.2 6.3.7-.4.5-.8 1-1 1.5a27.2 27.2 0 00-5.3-.5c-7.4 0-13.6 3-15.4 6.8a7.5 7.5 0 00-.8 3.3 7.8 7.8 0 002.9 6l-2.7 4.4-1.5-1.2 1.9-3z"/>
+  <path fill="#c8b100" d="M209.5 184.8a11.3 11.3 0 00-4.2 4.4 9.2 9.2 0 00-1 4.1c0 2.4 1 4.6 2.5 6.3l-1.7 2.6a11.1 11.1 0 01-2.4-6.8c0-4.3 2.7-8.1 6.8-10.6"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M209.5 184.8a11.3 11.3 0 00-4.2 4.4 9.2 9.2 0 00-1 4.1c0 2.4 1 4.6 2.5 6.3l-1.7 2.6a11.1 11.1 0 01-2.4-6.8c0-4.3 2.7-8.1 6.8-10.6z"/>
+  <path fill="#c8b100" d="M255.8 175.4c1.7 0 3.3 1.2 3.7 2.8.2 1.4.4 3 .4 4.7v1.2c0 3.6.6 6.7 1.3 8.7l-5.5 5.2-5.5-5.2c.7-2 1.2-5.1 1.3-8.7v-1.2c0-1.7.2-3.3.5-4.7.3-1.6 2-2.8 3.7-2.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M255.8 175.4c1.7 0 3.3 1.2 3.7 2.8.2 1.4.4 3 .4 4.7v1.2c0 3.6.6 6.7 1.3 8.7l-5.5 5.2-5.5-5.2c.7-2 1.2-5.1 1.3-8.7v-1.2c0-1.7.2-3.3.5-4.7.3-1.6 2-2.8 3.7-2.8z"/>
+  <path fill="#c8b100" d="M255.8 177a2 2 0 011.9 1.5 30.6 30.6 0 01.4 4.5v1.1c0 3.4.5 6.4 1.2 8.2l-3.6 3.5-3.6-3.5c.7-1.8 1.2-4.8 1.2-8.2V183c0-1.6.2-3.1.5-4.5.2-.8 1-1.4 2-1.4"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M255.8 177a2 2 0 011.9 1.5 30.6 30.6 0 01.4 4.5v1.1c0 3.4.5 6.4 1.2 8.2l-3.6 3.5-3.6-3.5c.7-1.8 1.2-4.8 1.2-8.2V183c0-1.6.2-3.1.5-4.5.2-.8 1-1.4 2-1.4z"/>
+  <path fill="#c8b100" d="M281 196l-1.4 1.1-2.2-3.4a7.9 7.9 0 003.9-7.6c-.2-4.5-5.7-8.1-12.5-8.1a16 16 0 00-9 2.5 24.5 24.5 0 00-.3-1.9 18.6 18.6 0 019.3-2.3c7.9 0 14 4.4 14.4 9.8a9.5 9.5 0 01-3.3 8l1.1 1.9"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M281 196l-1.4 1.1-2.2-3.4a7.9 7.9 0 003.9-7.6c-.2-4.5-5.7-8.1-12.5-8.1a16 16 0 00-9 2.5 24.5 24.5 0 00-.3-1.9 18.6 18.6 0 019.3-2.3c7.9 0 14 4.4 14.4 9.8a9.5 9.5 0 01-3.3 8l1.1 1.9"/>
+  <path fill="#c8b100" d="M280.9 196c2.7-2 4.4-4.7 4.4-7.7 0-3.5-2.3-6.6-5.7-8.6a9 9 0 013.6 7.3c0 2.8-1.3 5.4-3.3 7.2l1 1.9"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M280.9 196c2.7-2 4.4-4.7 4.4-7.7 0-3.5-2.3-6.6-5.7-8.6a9 9 0 013.6 7.3c0 2.8-1.3 5.4-3.3 7.2l1 1.9"/>
+  <path fill="#c8b100" d="M304.7 199.6a9.3 9.3 0 001.5-10.3c-2.2-4.5-9-7.8-17.2-7.8a28.4 28.4 0 00-6.3.7c.5.5.8 1 1.1 1.5a27.1 27.1 0 015.2-.5c7.5 0 13.7 3 15.5 6.8.5 1 .8 2.1.8 3.3a7.8 7.8 0 01-3 6l2.8 4.4 1.4-1.2-1.8-3"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M304.7 199.6a9.3 9.3 0 001.5-10.3c-2.2-4.5-9-7.8-17.2-7.8a28.4 28.4 0 00-6.3.7c.5.5.8 1 1.1 1.5a27.1 27.1 0 015.2-.5c7.5 0 13.7 3 15.5 6.8.5 1 .8 2.1.8 3.3a7.8 7.8 0 01-3 6l2.8 4.4 1.4-1.2-1.8-3z"/>
+  <path fill="#c8b100" d="M302 184.8a11.3 11.3 0 014.2 4.4 9.3 9.3 0 011 4.1c0 2.4-1 4.6-2.5 6.3l1.6 2.6a11.1 11.1 0 002.5-6.8c0-4.3-2.7-8.1-6.9-10.6"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M302 184.8a11.3 11.3 0 014.2 4.4 9.3 9.3 0 011 4.1c0 2.4-1 4.6-2.5 6.3l1.6 2.6a11.1 11.1 0 002.5-6.8c0-4.3-2.7-8.1-6.9-10.6z"/>
+  <path fill="#fff" d="M253.8 193.5c0-1 .9-1.9 2-1.9 1 0 1.9.9 1.9 1.9a1.9 1.9 0 01-2 1.8 1.9 1.9 0 01-2-1.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M253.8 193.5c0-1 .9-1.9 2-1.9 1 0 1.9.9 1.9 1.9a1.9 1.9 0 01-2 1.8 1.9 1.9 0 01-2-1.8z"/>
+  <path fill="#fff" stroke="#000" stroke-width=".4" d="M253.8 189.8a1.9 1.9 0 012-1.8 1.9 1.9 0 011.9 1.9 1.9 1.9 0 01-2 1.8 1.9 1.9 0 01-2-1.8m.5-4c0-.8.7-1.4 1.5-1.4.9 0 1.6.6 1.6 1.5 0 .8-.7 1.4-1.6 1.4-.8 0-1.5-.6-1.5-1.4m.4-3.6c0-.5.5-1 1.1-1a1 1 0 011.2 1c0 .6-.5 1.1-1.2 1.1a1.1 1.1 0 01-1-1m.1-3.1c0-.5.4-.9 1-.9s.8.4.8.9-.4.8-.9.8-.9-.3-.9-.8"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M255.9 204.6l1.3.2a5 5 0 004.8 6.4 5 5 0 004.8-3.3s.4-1.7.6-1.7c.2 0 .2 1.9.3 1.9.3 2.4 2.5 4 5 4a4.9 4.9 0 005-5.4l1.5-1.5.9 2a4.3 4.3 0 00-.5 2 4.7 4.7 0 004.8 4.6 5 5 0 004-2l1-1.3v1.6c0 1.5.7 3 2.2 3.2 0 0 1.8.1 4.1-1.7a28 28 0 003.7-3.4l.2 1.9s-2 3-4 4.2c-1.2.7-3 1.4-4.4 1.1-1.5-.2-2.6-1.4-3.1-2.7a7.2 7.2 0 01-3.6 1 7 7 0 01-6.5-4 7.5 7.5 0 01-11-.3 7.4 7.4 0 01-5 1.9 7.4 7.4 0 01-6.1-3.1 7.3 7.3 0 01-6.1 3 7.4 7.4 0 01-5-1.8 7.5 7.5 0 01-11 .3 7 7 0 01-6.5 4 7.1 7.1 0 01-3.6-1c-.6 1.3-1.6 2.5-3.1 2.8-1.4.2-3.2-.5-4.3-1.2-2.2-1.2-4.1-4.3-4.1-4.3l.2-1.8s1.3 1.5 3.6 3.4c2.4 1.8 4.2 1.7 4.2 1.7 1.5-.2 2.2-1.7 2.2-3.2v-1.6l1 1.3a4.9 4.9 0 004 2c2.6 0 4.8-2 4.8-4.6 0-.7-.2-1.4-.5-2l.8-2 1.6 1.5v.6a4.9 4.9 0 005 4.8c2.5 0 4.7-1.7 5-4 0 0 0-1.9.2-1.9s.7 1.8.7 1.7a5 5 0 004.8 3.3 4.9 4.9 0 004.8-6.4l1.3-.2"/>
+  <path fill="#fff" stroke="#000" stroke-width=".4" d="M290.5 210.8c.3-.8 0-1.7-.6-1.8-.6-.2-1.4.3-1.6 1.2-.3.8 0 1.7.5 1.8.6.2 1.4-.3 1.7-1.2m-22-4.2c.2-.9-.2-1.6-.9-1.7-.6-.1-1.2.5-1.3 1.4-.1 1 .3 1.7 1 1.8.6 0 1.2-.6 1.3-1.5m-25.4 0c-.1-.9.3-1.6 1-1.7.6-.1 1.2.5 1.3 1.4.1 1-.3 1.7-1 1.8-.6 0-1.2-.6-1.3-1.5m-22 4.3c-.2-.9 0-1.7.7-2 .6-.1 1.3.4 1.6 1.3.3.8 0 1.7-.6 1.9-.6.1-1.3-.4-1.6-1.2"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M230.8 196.3a5.5 5.5 0 012.4 3s0-.2.7-.6c.6-.3 1.1-.3 1.1-.3l-.2 1.4c-.1.3-.1 1.4-.4 2.3a7.8 7.8 0 01-.6 1.8 2 2 0 00-1.6-.5 2 2 0 00-1.4 1s-.7-.6-1.2-1.4l-1.2-2.2-.7-1.2h1.1c.7.1 1 .3 1 .3a5.2 5.2 0 011-3.7"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M231.3 206.7a1.9 1.9 0 01-.7-1.1 1.7 1.7 0 01.2-1.3l-1.9-.7c-.7-.2-2-.2-2.4-.2h-1.2l.3.6.5.7a5.4 5.4 0 00-3 2.2 5.6 5.6 0 003.6 1l-.2.8v.7l1-.4c.4-.2 1.6-.6 2.2-1 .9-.6 1.6-1.3 1.6-1.3m2.9-.5a1.8 1.8 0 00.2-1.2 1.8 1.8 0 00-.7-1.1s.7-.8 1.5-1.3l2.3-1 1-.4v.6l-.2.9a5.6 5.6 0 013.7 1 5.4 5.4 0 01-3.1 2.1 7.1 7.1 0 00.8 1.4h-1.2c-.4 0-1.7 0-2.4-.3-1-.2-2-.7-2-.7"/>
+  <path fill="#ad1519" stroke="#000" stroke-width=".4" d="M230.3 205.3c0-1.2 1-2.1 2.2-2.1 1.3 0 2.3.9 2.3 2 0 1.2-1 2.2-2.3 2.2a2.2 2.2 0 01-2.2-2.1"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M255.8 192.9a6 6 0 012 3.9s.2-.3 1-.6 1.2-.1 1.2-.1l-.5 1.4c-.2.4-.4 1.6-.9 2.6a8.8 8.8 0 01-1 1.8 2.3 2.3 0 00-1.8-.7c-.6 0-1.3.3-1.7.7 0 0-.6-.7-1-1.8-.5-1-.7-2.2-.9-2.6l-.6-1.4s.6-.1 1.3.2c.8.2 1 .5 1 .5a6 6 0 012-4"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M254.2 204.6a2 2 0 01-.6-1.3c0-.6.2-1 .6-1.4 0 0-1-.7-2-1.1-.8-.4-2.2-.6-2.6-.7l-1.3-.3.1.7.4 1c-1.5 0-2.9.8-3.9 1.8a6.3 6.3 0 004 1.8l-.5 1-.2.6 1.4-.2 2.6-.7 2-1.2m3.3 0c.3-.3.5-.8.5-1.3a2 2 0 00-.5-1.4s1-.7 2-1.1c.8-.4 2.2-.6 2.6-.7l1.3-.3-.2.7a7.6 7.6 0 01-.4 1 6 6 0 014 1.8 6.3 6.3 0 01-4 1.8l.4 1 .2.6-1.3-.2-2.6-.7a13 13 0 01-2-1.2m23.5-8.4a5.5 5.5 0 00-2.4 3.1l-.7-.6c-.6-.3-1.1-.3-1.1-.3l.2 1.4.3 2.3.7 1.8a2 2 0 011.6-.5 2 2 0 011.4 1l1.2-1.4 1.2-2.2.7-1.2h-1.2c-.7.1-.9.3-.9.3a5.2 5.2 0 00-1-3.7"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M280.5 206.7c.3-.3.6-.7.7-1.1a1.8 1.8 0 00-.2-1.3l1.8-.7c.8-.2 2-.2 2.5-.2h1.1l-.2.6-.6.7a5.4 5.4 0 013.1 2.2 5.6 5.6 0 01-3.6 1l.2.8v.7l-1-.4-2.3-1a11.5 11.5 0 01-1.5-1.3m-2.9-.5a1.8 1.8 0 01-.3-1.2c.1-.5.4-.9.7-1.1 0 0-.7-.8-1.5-1.3-.6-.4-1.8-.9-2.2-1l-1-.4v.6c0 .5.2.9.2.9a5.6 5.6 0 00-3.7 1c.7 1 1.8 1.8 3 2.1l-.4.8a4 4 0 00-.3.6h1.2c.4 0 1.7 0 2.4-.3 1-.2 1.9-.7 1.9-.7"/>
+  <path fill="#ad1519" stroke="#000" stroke-width=".4" d="M277 205.3c0-1.2 1-2.1 2.2-2.1 1.3 0 2.3.9 2.3 2 0 1.2-1 2.2-2.3 2.2a2.2 2.2 0 01-2.2-2.1m24.8 4.6c-.5-.5-1.6-.4-2.4.3-.8.7-1 1.7-.5 2.2s1.6.5 2.4-.2c.8-.7 1-1.7.5-2.3"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M298.7 211.3c0-.4.4-.8.7-1.1.8-.7 2-.8 2.4-.3l.2.3s1.2-2.1 2.5-2.9 3.6-.5 3.6-.5a3 3 0 00-3.1-3c-1 0-2 .5-2.5 1.2l-.3-1.1s-1.4.3-2 1.8c-.6 1.7 0 4 0 4s-.3-1-.8-1.7a8.5 8.5 0 00-2.6-1.7l-1.4-.8v1.5a8.4 8.4 0 00-4 .5 5 5 0 002.7 2.3l-.8.8-.5.5 1.4.2c.4 0 1.8.3 2.7.2a15.7 15.7 0 001.8-.2m-85.6 0a2.3 2.3 0 00-.8-1.1c-.8-.7-1.9-.8-2.4-.3a1.1 1.1 0 00-.2.3s-1-2.1-2.4-2.9-3.6-.5-3.6-.5a3 3 0 013-3c1 0 2 .5 2.6 1.2l.2-1.1s1.4.3 2 1.9c.7 1.6 0 3.9 0 3.9s.4-1 .9-1.7 1.8-1.4 2.5-1.7l1.4-.8a7.4 7.4 0 000 1.5 8.4 8.4 0 014 .5 5 5 0 01-2.7 2.3l.9.8.4.5-1.3.2c-.4 0-1.9.3-2.7.2a15.7 15.7 0 01-1.8-.2"/>
+  <path fill="#ad1519" stroke="#000" stroke-width=".4" d="M210 210c.5-.6 1.5-.5 2.3.2.9.7 1 1.7.6 2.2-.6.6-1.6.5-2.4-.2-.9-.7-1.1-1.7-.6-2.3m43.7-6.6c0-1.2 1-2.1 2.3-2.1s2.2.9 2.2 2-1 2.2-2.3 2.2a2.2 2.2 0 01-2.2-2.1"/>
+  <path fill="#005bbf" stroke="#000" stroke-width=".3" d="M251.2 171.3c0-2.4 2-4.3 4.6-4.3 2.5 0 4.5 2 4.5 4.3a4.4 4.4 0 01-4.5 4.3 4.4 4.4 0 01-4.6-4.3"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".3" d="M254.6 159.3v2.3H252v2.3h2.5v6.8h-3.2l-.2.6c0 .6.2 1.2.4 1.7h8.3a4.1 4.1 0 00.4-1.7l-.2-.6h-3V164h2.4v-2.3H257v-2.3h-2.5z"/>
+  <path fill="#ccc" d="M256.2 352.6a87.4 87.4 0 01-37.8-8.8 24.2 24.2 0 01-13.7-21.6V288h102.8v34c0 9.5-5.4 17.7-13.7 21.8a86.4 86.4 0 01-37.6 8.7"/>
+  <path fill="none" stroke="#000" stroke-width=".5" d="M256.2 352.6a87.4 87.4 0 01-37.8-8.8 24.2 24.2 0 01-13.7-21.6V288h102.8v34c0 9.5-5.4 17.7-13.7 21.8a86.4 86.4 0 01-37.6 8.7z"/>
+  <path fill="#ccc" d="M256 288h51.5v-57H256v57z"/>
+  <path fill="none" stroke="#000" stroke-width=".5" d="M256 288h51.5v-57H256v57z"/>
+  <path fill="#ad1519" d="M256 322.1a25 25 0 01-25.6 24.4c-14.2 0-25.8-11-25.8-24.4V288H256v34"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".5" d="M215.8 342.3c1.7.8 3.9 2.2 6.2 2.8l-.1-58.3h-6v55.4z"/>
+  <path fill="#c8b100" stroke="#000" stroke-linejoin="round" stroke-width=".5" d="M204.5 321.7a26 26 0 006 16v-50.6h-5.9v34.6z"/>
+  <path fill="#c7b500" stroke="#000" stroke-width=".5" d="M227.3 346.4c2.4.2 4.1.2 6 0v-59.6h-6v59.6z"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".5" d="M238.6 345a20.3 20.3 0 006.2-2.6v-55.6h-6l-.2 58.3z"/>
+  <path fill="#ad1519" d="M204.6 288H256v-57h-51.4v57z"/>
+  <path fill="none" stroke="#000" stroke-width=".5" d="M204.6 288H256v-57h-51.4v57z"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".5" d="M250.4 337.1c2.5-2.2 4.9-7.3 5.7-13l.2-37.3h-6V337z"/>
+  <path fill="none" stroke="#000" stroke-width=".5" d="M256 322.1a25 25 0 01-25.6 24.4c-14.2 0-25.8-11-25.8-24.4V288H256v34"/>
+  <path fill="#ad1519" d="M307.6 288v34a25.1 25.1 0 01-25.8 24.4c-14.2 0-25.8-11-25.8-24.4v-34h51.6"/>
+  <path fill="none" stroke="#000" stroke-width=".5" d="M307.6 288v34a25.1 25.1 0 01-25.8 24.4c-14.2 0-25.8-11-25.8-24.4v-34h51.6"/>
+  <path fill="#c8b100" d="M265.4 313.7l.1.6c0 .6-.5 1.1-1.2 1.1-.6 0-1.2-.5-1.2-1.1 0-.2 0-.4.2-.5h-1.7a2.7 2.7 0 001.9 3v4.1h1.7v-4.1a2.7 2.7 0 001.8-1.7h4.7v-1.4h-6.3m23.1 0v1.4h-4.2a2.7 2.7 0 01-.3.6l5 5.6-1.4 1-4.9-5.6-.2.1v9.3h-1.8v-9.3l-.2-.1-5 5.6-1.4-1 5.1-5.7a2.3 2.3 0 01-.2-.5h-4.4v-1.4h14zm2.8 0v1.4h4.8c.2.8.9 1.4 1.7 1.7v4.1h1.8v-4.1a2.7 2.7 0 002-2.5l-.2-.6h-1.6a1.2 1.2 0 01-1 1.7c-.8 0-1.3-.5-1.3-1.1l.1-.5h-6.3m-7 23.5a16.6 16.6 0 003.8-1l.9 1.4a18.8 18.8 0 01-4.6 1.3 2.8 2.8 0 01-2.8 2 2.8 2.8 0 01-2.7-2 18.7 18.7 0 01-4.8-1.3l.8-1.5c1.3.6 2.7 1 4.2 1.2a2.7 2.7 0 011.6-1.5v-7.1h1.8v7.1a3 3 0 011.7 1.4zm-11.8-2.4l-.9 1.5a17.8 17.8 0 01-3.9-3.3 3 3 0 01-2.6-.5 2.5 2.5 0 01-.4-3.7l.2-.2a16.3 16.3 0 01-1.4-5.1h1.8a14 14 0 001.1 4.4 3.1 3.1 0 011.5.1l4.4-4.8 1.3 1-4.4 4.9a2.5 2.5 0 010 3 16.2 16.2 0 003.2 2.7zm-6.5-5a1.2 1.2 0 011.7-.2 1 1 0 010 1.6 1.3 1.3 0 01-1.6.2 1.1 1.1 0 01-.1-1.6zm-2.2-4.8l-1.8-.4-.3-4.6 1.8-.6v2.6c0 1 0 2 .2 3zm1.4-5.7l1.8.4v2.3c0-.8.3 2.3.3 2.3l-1.8.6-.3-2.9v-2.7zm6 14.6a16.7 16.7 0 005.1 2.7l.4-1.7a14.6 14.6 0 01-4.3-2.1l-1.2 1m-1 1.6a18.6 18.6 0 005.2 2.7l-1.3 1.3a20 20 0 01-4.2-2.2l.4-1.8m2.3-10l1.7.7 3.2-3.5-1-1.5-3.9 4.2m-1.3-1l-1-1.5 3.1-3.5 1.7.7-3.8 4.3m19.3 10.5l.9 1.5a17.8 17.8 0 003.8-3.3c1 .3 2 .1 2.7-.5a2.5 2.5 0 00.3-3.7l-.1-.2c.7-1.6 1.2-3.3 1.3-5.1h-1.7a14.2 14.2 0 01-1.2 4.4 3.1 3.1 0 00-1.5.1l-4.3-4.8-1.3 1 4.3 4.9a2.5 2.5 0 00.1 3 16 16 0 01-3.3 2.7zm6.5-5a1.2 1.2 0 00-1.7-.2 1.1 1.1 0 00-.1 1.6c.4.5 1.2.6 1.7.1a1 1 0 000-1.6zm2.2-4.8l1.8-.5.2-4.5-1.7-.6v2.6l-.3 3zm-1.5-5.7l-1.8.4v2.3c0-.8-.3 2.3-.3 2.3l1.9.6.2-2.9v-2.7m-6 14.6a16.8 16.8 0 01-5 2.7l-.5-1.7a14.6 14.6 0 004.3-2.1l1.3 1m.9 1.6a18.6 18.6 0 01-5.2 2.7l1.3 1.3a20 20 0 004.3-2.2l-.4-1.8m-2.4-10l-1.7.7-3.1-3.5 1-1.5 3.8 4.2m1.4-1l1-1.5-3.2-3.5-1.7.7 3.8 4.3m-21.4-9.3l.5 1.7h4.8l.6-1.7h-5.9m22.5 0l-.5 1.7h-4.8l-.5-1.7h5.9m-12.4 23.3c0-.6.5-1.1 1.2-1.1.6 0 1.1.5 1.1 1.1 0 .7-.5 1.2-1.2 1.2s-1.2-.6-1.2-1.2zm2-8.2l1.8-.5V325l-1.8-.5v5.6m-1.8 0l-1.8-.5V325l1.8-.5v5.6"/>
+  <path fill="#c8b100" d="M261.6 313.8c.2-1 1-1.7 1.9-2V306h1.7v5.7c.9.3 1.6.9 1.8 1.7h4.7v.3h-6.3a1.2 1.2 0 00-1-.6 1.2 1.2 0 00-1.1.6h-1.7m13 0v-.3h4.4l.2-.4-5.4-6 1.3-1 5.3 5.8h.3v-8h1.7v7.9h.3l5.2-5.8 1.3 1-5.2 5.9.3.6h4.2v.3h-13.9zm23 0a1.2 1.2 0 011.1-.6c.5 0 .9.2 1 .6h1.7a2.7 2.7 0 00-1.8-2V306h-1.8v5.7a2.7 2.7 0 00-1.8 1.7h-4.6v.3h6.3m-32.2-16l6.5 7.3 1.3-1-6.5-7.3.3-.6h4.7v-1.6h-4.7a2.8 2.8 0 00-2.7-1.9 2.7 2.7 0 00-2.8 2.7c0 1.1.8 2.1 1.9 2.5v5.6h1.7v-5.6h.3zm34 .1v5.6h-1.7v-5.6a2.6 2.6 0 01-.4-.2L291 305l-1.3-1 6.5-7.5a2.4 2.4 0 01-.1-.3h-4.8v-1.6h4.8a2.8 2.8 0 012.6-1.9c1.6 0 2.8 1.2 2.8 2.7 0 1.2-.8 2.2-2 2.5zm-17 0v3.4h-1.8V298a2.7 2.7 0 01-1.8-1.7h-4.3v-1.6h4.3a2.8 2.8 0 012.6-1.9c1.3 0 2.3.8 2.7 1.9h4.3v1.6h-4.3a2.7 2.7 0 01-1.7 1.7zm-19 4.1l-1.8.5v4.6l1.8.5V302m1.8 0l1.8.5v4.6l-1.8.5V302m32.5 0l-1.8.5v4.6l1.8.5V302m1.8 0l1.8.5v4.6l-1.8.5V302m-27.3 1l1.7-.8 3.2 3.5-1 1.5-3.9-4.2m-1.3 1l-1 1.5 3 3.5 1.8-.7-3.8-4.3m19.7-1.2l-1.8-.7-3 3.5 1 1.5 3.8-4.3m1.3 1l1 1.6-3 3.5-1.8-.7 3.8-4.3m-21.7 9.6l.5-1.7h4.8l.6 1.7h-5.9m-7-18.1c0-.6.5-1.2 1.1-1.2.7 0 1.2.5 1.2 1.2s-.5 1.1-1.2 1.1c-.6 0-1.2-.5-1.2-1.1zm12.8.8l-.5 1.7h-4.8l-.5-1.7h5.8m0-1.7l-.5-1.7h-4.8l-.5 1.7h5.8m16.7 19l-.5-1.7h-4.8l-.5 1.7h5.9m4.6-18.1c0-.6.6-1.2 1.2-1.2.7 0 1.2.5 1.2 1.2s-.5 1.1-1.2 1.1c-.6 0-1.2-.5-1.2-1.1zm-17.2 0c0-.6.6-1.2 1.2-1.2s1.2.5 1.2 1.2-.5 1.1-1.2 1.1c-.6 0-1.2-.5-1.2-1.1zm6.7.8l.6 1.7h4.8l.5-1.7H287m0-1.6l.5-1.8h4.9l.5 1.7H287m-6.3 5.4l-1.8.5v4.6l1.8.5v-5.6m1.7 0l1.8.5v4.6l-1.8.5v-5.6"/>
+  <path fill="none" stroke="#c8b100" stroke-width=".3" d="M284.2 337.3a16.6 16.6 0 004-1l.8 1.4a18.8 18.8 0 01-4.6 1.3 2.8 2.8 0 01-2.8 2 2.8 2.8 0 01-2.7-2 18.7 18.7 0 01-4.8-1.3l.8-1.5c1.3.6 2.7 1 4.2 1.1a2.7 2.7 0 011.6-1.4v-7.2h1.8v7.2a2.8 2.8 0 011.7 1.4zm-5-21.7a2.4 2.4 0 01-.2-.5h-4.4v-1.6h4.4c0-.2 0-.3.2-.4l-5.4-6 1.3-1 5.3 5.8a2.2 2.2 0 01.3-.1V304h1.7v7.7l.3.1 5.2-5.9 1.3 1-5.2 6 .3.6h4.2v1.6h-4.2l-.3.6 5 5.6-1.4 1-4.9-5.6-.2.1v9.3h-1.8v-9.3l-.2-.1-5 5.6-1.4-1 5.1-5.7m-13.7-17.7l6.5 7.2 1.3-1-6.5-7.3.3-.6h4.7v-1.7h-4.7a2.8 2.8 0 00-2.7-1.8 2.7 2.7 0 00-2.8 2.7c0 1.1.8 2.1 1.9 2.5v5.5h1.7V298h.3zm7 37l-.9 1.5a17.8 17.8 0 01-3.9-3.3c-.9.3-1.9.1-2.6-.5a2.5 2.5 0 01-.3-3.7v-.2a16.3 16.3 0 01-1.3-5.1h1.8a14 14 0 001.1 4.4 3.1 3.1 0 011.5.1l4.4-4.8 1.3 1-4.3 4.9a2.5 2.5 0 01-.1 3 16.2 16.2 0 003.3 2.7zm-9-14v-4a2.7 2.7 0 01-2-2.6c0-1.2.9-2.2 2-2.6v-5.6h1.7v5.7c.9.2 1.5.9 1.8 1.7h4.7v1.6H267a2.7 2.7 0 01-1.8 1.7v4.1h-1.7m2.5 9a1.2 1.2 0 011.7-.2c.5.4.5 1.1 0 1.6a1.3 1.3 0 01-1.6.1 1.1 1.1 0 01-.1-1.6zm-2.2-4.9l-1.8-.4-.3-4.5 1.8-.6v2.6c0 1 0 2 .3 3zm1.5-5.6l1.7.4a64.3 64.3 0 00.3 4.6l-1.8.6-.3-2.9v-2.7zm5.9 14.6a16.7 16.7 0 005.1 2.7l.4-1.7a14.6 14.6 0 01-4.3-2.2l-1.2 1.2m-1 1.5a18.6 18.6 0 005.3 2.7l-1.4 1.2a20 20 0 01-4.2-2.1l.4-1.8"/>
+  <path fill="none" stroke="#c8b100" stroke-width=".3" d="M272.6 325.4l1.7.8 3.2-3.5-1-1.5-3.9 4.2m-1.3-1l-1-1.5 3.1-3.5 1.7.7-3.8 4.3m-8.2-10.1c0-.7.6-1.2 1.2-1.2.7 0 1.2.5 1.2 1.2 0 .6-.5 1.1-1.2 1.1-.6 0-1.2-.5-1.2-1.1zm27.5 20.6l.8 1.5a17.8 17.8 0 004-3.3c.8.3 1.8.1 2.6-.5a2.5 2.5 0 00.3-3.7l-.2-.2c.8-1.6 1.2-3.3 1.4-5.1h-1.7a14.2 14.2 0 01-1.2 4.4 3.1 3.1 0 00-1.5.1l-4.3-4.8-1.4 1 4.4 4.9a2.5 2.5 0 00.1 3 16 16 0 01-3.3 2.7zm9-14v-4.1a2.7 2.7 0 002-2.5 2.7 2.7 0 00-2-2.6v-5.6h-1.8v5.7c-.8.2-1.5.9-1.8 1.7h-4.7v1.6h4.8a2.7 2.7 0 001.7 1.7v4.1h1.8zm-2.5 9a1.2 1.2 0 00-1.7-.2 1.1 1.1 0 00-.1 1.6c.4.5 1.1.6 1.7.1a1 1 0 000-1.6zm2.2-4.8l1.8-.4.2-4.6-1.7-.6v2.6l-.3 3zm-1.5-5.7l-1.8.4v2.3c0-.8-.3 2.3-.3 2.3l1.9.6.2-2.9v-2.7m1.8-21.5v5.5h-1.8V298a2.4 2.4 0 01-.4-.2L291 305l-1.3-1.1 6.5-7.4a2.5 2.5 0 01-.1-.3h-4.8v-1.7h4.8a2.8 2.8 0 012.6-1.8c1.6 0 2.8 1.2 2.8 2.7 0 1.2-.8 2.2-2 2.5zm-17.2 0v3.4h-1.7v-3.4a2.7 2.7 0 01-1.8-1.7h-4.3v-1.7h4.3a2.8 2.8 0 012.6-1.8c1.3 0 2.3.8 2.7 1.8h4.3v1.7h-4.3a2.7 2.7 0 01-1.7 1.7zm9.5 36a16.8 16.8 0 01-5.2 2.8l-.4-1.7a14.6 14.6 0 004.3-2.1l1.3 1m.9 1.6a18.6 18.6 0 01-5.2 2.7l1.3 1.3a20 20 0 004.3-2.2l-.4-1.8M263.5 302l-1.8.5v4.6l1.8.5V302m1.8 0l1.8.5v4.6l-1.8.5V302m32.5 0l-1.8.5v4.6l1.8.5V302"/>
+  <path fill="none" stroke="#c8b100" stroke-width=".3" d="M299.6 302l1.8.5v4.6l-1.8.5V302m-9.2 23.4l-1.7.8-3.1-3.5 1-1.5 3.8 4.2m1.3-1l1-1.5-3-3.5-1.8.7 3.8 4.3m-19.4-21.5l1.7-.7 3.1 3.5-1 1.5-3.8-4.3M271 304l-1 1.5 3 3.5 1.8-.8-3.8-4.2m19.7-1.2l-1.8-.7-3 3.5 1 1.5 3.8-4.3m1.3 1l1 1.5-3 3.5-1.8-.7 3.8-4.2m-21.7 9.6l.5-1.7h4.8l.6 1.7h-5.9m0 1.6l.5 1.7h4.8l.6-1.7h-5.9m-7-19.7c0-.7.5-1.2 1.1-1.2.7 0 1.2.5 1.2 1.2s-.5 1.1-1.2 1.1c-.6 0-1.2-.5-1.2-1.1zm12.8.8l-.5 1.7h-4.8l-.5-1.7h5.8m0-1.7l-.5-1.7h-4.8l-.5 1.7h5.8m21.4 19.8c0-.6.5-1.2 1.2-1.2s1.2.5 1.2 1.2c0 .6-.5 1.1-1.2 1.1s-1.2-.5-1.2-1.1zm-4.7-.8l-.5-1.7h-4.8l-.5 1.7h5.9m0 1.6l-.6 1.7h-4.8l-.5-1.7h5.9m-12.4 23.3c0-.6.5-1.1 1.2-1.1.6 0 1.1.5 1.1 1.1 0 .7-.5 1.2-1.2 1.2s-1.2-.5-1.2-1.2zm2-8.2l1.8-.5V325l-1.8-.5v5.6m-1.8 0l-1.8-.5V325l1.8-.5v5.6m16.8-34.8c0-.7.6-1.2 1.2-1.2.7 0 1.2.5 1.2 1.2s-.5 1.1-1.2 1.1c-.6 0-1.2-.5-1.2-1.1zm-17.2 0c0-.7.6-1.2 1.2-1.2.7 0 1.2.5 1.2 1.2s-.5 1.1-1.2 1.1c-.6 0-1.2-.5-1.2-1.1zm6.7.8l.6 1.7h4.8l.5-1.7H287m0-1.7l.6-1.7h4.8l.5 1.7H287m-6.3 5.4l-1.8.5v4.5l1.8.5V300m1.7 0l1.8.5v4.5l-1.8.5V300"/>
+  <path fill="#058e6e" d="M278.8 314.3a2.7 2.7 0 012.8-2.6c1.6 0 2.8 1.1 2.8 2.6a2.7 2.7 0 01-2.8 2.7 2.7 2.7 0 01-2.8-2.7"/>
+  <path fill="#db4446" d="M282.3 245v-.6l.1-.4s-1.6.2-2.5 0a6.3 6.3 0 01-2.5-1.4c-.8-.7-1.1-1-1.7-1.2-1.4-.2-2.4.4-2.4.4s1 .4 1.8 1.4a5 5 0 002 1.5c.6.2 2.7 0 3.3.1l1.9.2"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M282.3 245v-.6l.1-.4s-1.6.2-2.5 0a6.3 6.3 0 01-2.5-1.4c-.8-.7-1.1-1-1.7-1.2-1.4-.2-2.4.4-2.4.4s1 .4 1.8 1.4a5 5 0 002 1.5c.6.2 2.7 0 3.3.1l1.9.2z"/>
+  <path fill="#ed72aa" stroke="#000" stroke-width=".4" d="M290 242.7v1.4c.1.7-.2 1.3 0 1.7l.2 1c.2.2.3.9.3.9l-.8-.6-.6-.4v1c.1.3.3 1 .6 1.3.3.3.9 1 1 1.4.3.4.2 1.4.2 1.4s-.4-.7-.9-.9l-1.3-.6s.9.8.9 1.6c0 .7-.4 1.6-.4 1.6s-.3-.7-.8-1.1l-1.2-1s.5 1.2.5 2v2.6s-.5-.7-1-1l-1-.8c0-.2.5.7.6 1.2 0 .5.3 2.4 2 4.8 1 1.4 2.4 3.8 5.6 3 3.2-.8 2-5 1.3-7-.6-2-1-4.3-1-5 .1-.8.7-3 .6-3.5a8.5 8.5 0 01.1-3.4c.4-1.3.8-1.9 1-2.4l.5-1.4v-1.4l.8 1.5.1 1.5s.1-1.1 1-1.7c1-.6 2-1.2 2.2-1.5l.4-.5s-.1 2-.7 2.7l-1.8 2.2s.8-.3 1.3-.3h.9s-.7.5-1.5 1.6c-.8 1.2-.5 1.3-1 2.3-.7 1-1.1 1-1.9 1.6-1 1-.5 4.5-.3 5 .1.5 2 4.9 2 6 .1 1 .3 3.3-1.6 4.9-1.2 1-3.1 1-3.6 1.2-.4.3-1.3 1.2-1.3 3s.7 2.1 1.2 2.6c.5.4 1.2.2 1.3.5l.5.8c.2.2.4.5.3.8 0 .4-1 1.3-1.2 2-.3.6-1 2.2-1 2.5 0 .2 0 1 .3 1.4 0 0 .9 1 .2 1.3-.4.1-.8-.3-1-.2l-1 .4c-.3 0-.3-.2-.4-.8l-.1-.7c-.3 0-.4.2-.4.5 0 .2 0 .9-.3.9s-.6-.5-.9-.6c-.2 0-.8-.2-.9-.5 0-.3.4-.9.8-1 .4 0 .8-.3.5-.5-.2-.2-.5-.2-.7 0s-.8 0-.8-.3.1-.7 0-.8c0-.2-.4-.6.2-.9.6-.3.8.3 1.4.2.6-.1 1-.3 1.1-.7.2-.3.2-1-.2-1.5s-.8-.5-1-.8l-.3-1v2.4l-.8-.9c-.3-.3-.6-1.4-.6-1.4v1.4c0 .4.4.7.2.9-.1.1-.8-.8-1-.9-.2-.1-.8-.6-1-1l-.6-1.5c0-.2-.2-1.4 0-1.6l.4-1.2h-1.4c-.8 0-1.3-.2-1.6.3-.3.5-.2 1.6.2 3 .4 1.3.6 2 .5 2.2a4 4 0 01-.8 1l-1-.1c-.2-.1-.5-.3-1.2-.3h-1.4c-.3 0-1-.4-1.2-.3-.3 0-.8.3-.7.7.2.6-.2.8-.5.7l-1-.2c-.3-.1-.9 0-.8-.4 0-.5.2-.5.4-.8.2-.3.3-.5 0-.5h-.7c-.2.2-.5.6-.7.5-.3-.2-.5-.5-.5-1.1 0-.7-.7-1.3 0-1.3.6 0 1.4.5 1.5.2.2-.4 0-.5-.3-.8-.3-.3-.7-.5-.3-.8l.8-.6c.2-.1.4-.8.7-.6.7.3 0 .7.7 1.4.6.7 1 1 2.1.9 1-.1 1.4-.3 1.4-.6l-.2-1 .2-1s-.5.3-.6.6l-.5.8v-2.1l-.2-.9-.3 1-.1 1s-.7-.5-.5-1.5v-2.1c.3-.4.9-1.7 2.2-1.8h2.8l2.1-.3s-3-1.5-3.7-2c-.7-.5-1.8-1.7-2.1-2.2-.4-.6-.7-1.6-.7-1.6s-.5 0-1 .3a5.3 5.3 0 00-1.3 1l-.7 1v-2s-.4 1.3-1 1.8l-1.5 1.2v-1l.2-1s-.5.8-1.2 1-1.9 0-2 .5c0 .5.2 1.1 0 1.4-.1.4-.5.6-.5.6s-.4-.4-.8-.4-.7.2-.7.2-.4-.4-.2-.7c0-.3.7-.7.5-.9-.1-.1-.6.1-.9.2-.3.2-.9.3-.8-.2 0-.4.2-.7 0-1-.1-.3 0-.6.2-.6.2-.1 1.2 0 1.3-.2 0-.3-.3-.5-.9-.7-.6-.1-.9-.5-.6-.8l.6-.6c.1-.3.2-.8.7-.6.6.3.5.9 1 1 .6.3 2 0 2.3-.1l1.5-1 1.7-1.2-1.1-.8-1-1.1a8.8 8.8 0 00-2-.7c-.5 0-1.8-.5-1.8-.5l.8-.3c.2-.2.7-.6.9-.6h.3-1.5c-.3-.2-1-.6-1.3-.6h-.9s.8-.4 1.4-.5l1.2-.1s-1-.3-1.3-.6l-.6-1c-.2-.2-.3-.6-.6-.6s-.9.4-1.2.3c-.3 0-.5-.2-.6-.7v-.5c-.2-.3-.7-.8-.2-1h1.4c.1-.2-.5-.7-.8-1-.4-.1-1-.4-.7-.7l.8-.6c.2-.3.4-1 .8-.7.3.2.9 1.3 1.1 1.2.3-.1.4-.9.3-1.2 0-.3 0-1 .3-.9.3 0 .5.5 1 .5.4 0 1.1-.1 1 .2 0 .4-.3.8-.6 1.1a1.6 1.6 0 00-.2 1.6 4 4 0 001.2 1.5c.4.3 1.3.5 1.8.8.6.4 1.9 1.4 2.3 1.5l.9.3s.5-.2 1.1-.2c.7 0 2.2.1 2.8-.1.6-.3 1.3-.7 1.1-1.2-.2-.5-1.5-1-1.4-1.4.1-.4.6-.4 1.4-.5.8 0 1.8.2 2-1 .2-1 .3-1.6-.8-1.9-1.1-.2-2-.3-2.1-1-.2-.8-.4-1-.2-1.3.2-.2.6-.3 1.5-.3.8-.1 1.7-.1 2-.3.2-.2.3-.7.6-1l1.5-.3s1.5.7 3 1.7c1.2 1 2.3 2.3 2.3 2.3"/>
+  <path d="M279.3 242l-.2-.7-.1-.3s.9 0 .9.2c0 .3-.3.3-.4.4 0 .2-.2.3-.2.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M279.3 242l-.2-.7-.1-.3s.9 0 .9.2c0 .3-.3.3-.4.4 0 .2-.2.3-.2.3z"/>
+  <path d="M283.4 240.5v-.5s.7 0 1.1.3c.6.4 1 1 1 1-.2.2-.6-.2-1-.3h-.4c-.2 0-.3 0-.4-.2v-.3h-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M283.4 240.5v-.5s.7 0 1.1.3c.6.4 1 1 1 1-.2.2-.6-.2-1-.3h-.4c-.2 0-.3 0-.4-.2v-.3h-.3z"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M289 246.7l-.4-.7a8 8 0 01-.2-.5"/>
+  <path fill="#db4446" d="M267.9 241.8s.5.3.8.3l.9.1s.2-.5.1-1c-.2-1.2-1.3-1.4-1.3-1.4s.3.7.1 1c-.2.6-.6 1-.6 1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M267.9 241.8s.5.3.8.3l.9.1s.2-.5.1-1c-.2-1.2-1.3-1.4-1.3-1.4s.3.7.1 1c-.2.6-.6 1-.6 1z"/>
+  <path fill="#db4446" d="M265.5 242.8s-.4-.8-1.3-.7c-1 .1-1.6.9-1.6.9h1.3c.4.3.5 1 .5 1l.7-.6.4-.6"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M265.5 242.8s-.4-.8-1.3-.7c-1 .1-1.6.9-1.6.9h1.3c.4.3.5 1 .5 1l.7-.6.4-.6z"/>
+  <path fill="#db4446" d="M264.4 246s-.8.1-1.2.6c-.5.5-.4 1.5-.4 1.5s.5-.6 1-.6l1.2.2-.3-.9c0-.3-.3-.8-.3-.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M264.4 246s-.8.1-1.2.6c-.5.5-.4 1.5-.4 1.5s.5-.6 1-.6l1.2.2-.3-.9c0-.3-.3-.8-.3-.8z"/>
+  <path d="M279.3 245.9l.4-.5.3.5h-.7"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M279.3 245.9l.4-.5.3.5h-.7"/>
+  <path d="M280.2 245.9l.4-.6.4.5h-.8"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M280.2 245.9l.4-.6.4.5h-.8"/>
+  <path d="M279.8 242.5l.8.3-.7.4-.1-.7"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M279.8 242.5l.8.3-.7.4-.1-.7"/>
+  <path d="M280.8 242.8l.8.2-.6.4-.2-.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M280.8 242.8l.8.2-.6.4-.2-.6"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M275.2 249.2s-.9.3-1.2.7c-.3.6-.3 1.1-.3 1.1s.7-.6 1.6-.3l1.3.3c.4 0 1.3-.4 1.3-.4s-.7.9-.6 1.5c0 .6.2.9.1 1.2 0 .7-.5 1.6-.5 1.6l1-.3a4.9 4.9 0 001.8-.9l1-1s-.2 1 0 1.5l.2 1.7s.4-.5.8-.7c.2 0 .8-.4 1-.7l.3-1s0 .8.4 1.3c.3.4.7 1.8.7 1.8s.3-.9.6-1.3c.3-.3.7-.8.7-1v-1l.4 1m-11.7.6s.5-.9 1-1.2l1.2-.8 1-.4m1 5.3l1.4-.8a4.2 4.2 0 001.2-1.2"/>
+  <path fill="#db4446" d="M267 256.4s-.4-.5-1.2-.3c-.7 0-1.2 1-1.2 1l1-.2c.4.2.6.5.6.5l.5-.4.3-.6"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M267 256.4s-.4-.5-1.2-.3c-.7 0-1.2 1-1.2 1l1-.2c.4.2.6.5.6.5l.5-.4.3-.6z"/>
+  <path fill="#db4446" d="M266.2 259.4s-.7 0-1.2.4c-.6.4-.6 1.2-.6 1.2s.5-.4 1-.3l.8.2.1-.6c.1-.4-.1-.9-.1-.9"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M266.2 259.4s-.7 0-1.2.4c-.6.4-.6 1.2-.6 1.2s.5-.4 1-.3l.8.2.1-.6c.1-.4-.1-.9-.1-.9z"/>
+  <path fill="#db4446" d="M267.6 262.2s0 .8.4 1.3c.4.6 1.2.6 1.2.6l-.3-.8c-.1-.4.3-.7.3-.7s-.4-.4-.7-.4h-.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M267.6 262.2s0 .8.4 1.3c.4.6 1.2.6 1.2.6l-.3-.8c-.1-.4.3-.7.3-.7s-.4-.4-.7-.4h-.8zm17.1 1.4s2.1 1.3 2 2.4c0 1-1.1 2.4-1.1 2.4"/>
+  <path fill="#db4446" d="M275.2 269.4s-.5-.6-1.3-.6c-.7 0-1.5.7-1.5.7s1 0 1.2.2l.4.7.6-.3.6-.7"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M275.2 269.4s-.5-.6-1.3-.6c-.7 0-1.5.7-1.5.7s1 0 1.2.2l.4.7.6-.3.6-.7z"/>
+  <path fill="#db4446" d="M273 272.3s-1-.1-1.5.4-.4 1.4-.4 1.4.6-.7 1-.6c.6 0 1.2.3 1.2.3l-.2-.8a14 14 0 00-.2-.7"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M273 272.3s-1-.1-1.5.4-.4 1.4-.4 1.4.6-.7 1-.6c.6 0 1.2.3 1.2.3l-.2-.8a14 14 0 00-.2-.7z"/>
+  <path fill="#db4446" d="M275 275.4s-.5.6-.1 1.1c.3.6 1 .8 1 .8s-.2-.4-.1-.8.7-.8.7-.8l-1.5-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M275 275.4s-.5.6-.1 1.1c.3.6 1 .8 1 .8s-.2-.4-.1-.8.7-.8.7-.8l-1.5-.3z"/>
+  <path fill="#db4446" d="M287.7 276.6s-.8-.2-1.3 0c-.5.3-.8 1.5-.8 1.5s.7-.6 1.3-.6l1 .3v-.8a2.8 2.8 0 00-.2-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M287.7 276.6s-.8-.2-1.3 0c-.5.3-.8 1.5-.8 1.5s.7-.6 1.3-.6l1 .3v-.8a2.8 2.8 0 00-.2-.4z"/>
+  <path fill="#db4446" d="M288.1 279.7s-.6.6-.4 1.2a7.3 7.3 0 00.6 1s0-.7.3-1c.3-.3 1-.3 1-.3l-.7-.6-.8-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M288.1 279.7s-.6.6-.4 1.2a7.3 7.3 0 00.6 1s0-.7.3-1c.3-.3 1-.3 1-.3l-.7-.6-.8-.3z"/>
+  <path fill="#db4446" d="M291.3 280.6s-.3.8.3 1.3c.6.6 1.1.6 1.1.6s-.5-.8-.3-1.3c.1-.4.5-.7.5-.7l-.8-.2-.8.3"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M291.3 280.6s-.3.8.3 1.3c.6.6 1.1.6 1.1.6s-.5-.8-.3-1.3c.1-.4.5-.7.5-.7l-.8-.2-.8.3z"/>
+  <path fill="#ffd691" stroke="#000" stroke-width=".5" d="M258.7 337.5c2.1.6 3.2 2.2 3.2 4 0 2.5-2.3 4.3-5.4 4.3-3 0-5.6-1.8-5.6-4.2 0-1.9 1-4 3.2-4 0 0 0-.3-.3-.6l-.6-.7h1.3l.7.5.6-.7c.3-.4.7-.6.7-.6l.6.7.3.6s.4-.4.8-.5l.9-.3-.3.7-.1.8"/>
+  <path fill="#058e6e" stroke="#000" stroke-width=".5" d="M256 348.5s-4-2.8-5.8-3.1c-2.3-.5-4.8-.1-5.9-.2l1.9 1.5a11 11 0 003.5 2c3.3.8 6.3-.2 6.3-.2m1.2.2s2.6-2.7 5.3-3c3.3-.5 5.4.2 6.6.5 0 0-1 .5-1.6 1-.5.3-2 1.5-4.2 1.6-2.2 0-4.7-.3-5.1-.2l-1 .1"/>
+  <path fill="#ad1519" stroke="#000" stroke-width=".5" d="M256.4 345.4a5.2 5.2 0 010-7.6 5.2 5.2 0 011.7 3.8 5.2 5.2 0 01-1.7 3.8"/>
+  <path fill="#058e6e" stroke="#000" stroke-width=".5" d="M255.4 351s.6-1.6.7-3l-.2-2.2h.8s.4 1.2.4 2.2l-.2 2.5-.7.1-.8.3"/>
+  <path fill="#fff" d="M307 203.4c0-.6.4-1 1-1 .7 0 1.2.4 1.2 1s-.5 1.1-1.2 1.1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M307 203.4c0-.6.4-1 1-1 .7 0 1.2.4 1.2 1s-.5 1.1-1.2 1.1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M308.4 200.7c0-.6.6-1 1.2-1a1 1 0 011 1c0 .6-.4 1-1 1a1.1 1.1 0 01-1.2-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M308.4 200.7c0-.6.6-1 1.2-1a1 1 0 011 1c0 .6-.4 1-1 1a1.1 1.1 0 01-1.2-1z"/>
+  <path fill="#fff" d="M309.5 197.6c0-.6.5-1 1-1a1 1 0 011.2 1c0 .6-.5 1-1.1 1a1.1 1.1 0 01-1.1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M309.5 197.6c0-.6.5-1 1-1a1 1 0 011.2 1c0 .6-.5 1-1.1 1a1.1 1.1 0 01-1.1-1z"/>
+  <path fill="#fff" d="M309.6 194.2c0-.6.5-1 1.1-1a1 1 0 011.1 1c0 .6-.5 1-1 1-.7 0-1.2-.4-1.2-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M309.6 194.2c0-.6.5-1 1.1-1a1 1 0 011.1 1c0 .6-.5 1-1 1-.7 0-1.2-.4-1.2-1z"/>
+  <path fill="#fff" d="M308.8 190.9c0-.6.5-1 1-1a1 1 0 011.2 1c0 .6-.5 1-1.1 1a1.1 1.1 0 01-1.1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M308.8 190.9c0-.6.5-1 1-1a1 1 0 011.2 1c0 .6-.5 1-1.1 1a1.1 1.1 0 01-1.1-1z"/>
+  <path fill="#fff" d="M307 187.8c0-.5.5-1 1.2-1a1 1 0 011 1c0 .6-.4 1.1-1 1.1a1.1 1.1 0 01-1.2-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M307 187.8c0-.5.5-1 1.2-1a1 1 0 011 1c0 .6-.4 1.1-1 1.1a1.1 1.1 0 01-1.2-1z"/>
+  <path fill="#fff" d="M304.7 185.4c0-.6.5-1 1.2-1a1 1 0 011 1c0 .5-.4 1-1 1a1.1 1.1 0 01-1.2-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M304.7 185.4c0-.6.5-1 1.2-1a1 1 0 011 1c0 .5-.4 1-1 1a1.1 1.1 0 01-1.2-1z"/>
+  <path fill="#fff" d="M302 183.3c0-.6.6-1 1.2-1s1.1.4 1.1 1-.5 1-1.1 1a1 1 0 01-1.1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M302 183.3c0-.6.6-1 1.2-1s1.1.4 1.1 1-.5 1-1.1 1a1 1 0 01-1.1-1z"/>
+  <path fill="#fff" d="M298.9 181.6c0-.6.5-1 1-1 .7 0 1.2.4 1.2 1s-.5 1-1.1 1a1.1 1.1 0 01-1.1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M298.9 181.6c0-.6.5-1 1-1 .7 0 1.2.4 1.2 1s-.5 1-1.1 1a1.1 1.1 0 01-1.1-1z"/>
+  <path fill="#fff" d="M295.5 180.4c0-.6.5-1 1.2-1a1 1 0 011 1c0 .6-.4 1-1 1a1.1 1.1 0 01-1.2-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M295.5 180.4c0-.6.5-1 1.2-1a1 1 0 011 1c0 .6-.4 1-1 1a1.1 1.1 0 01-1.2-1z"/>
+  <path fill="#fff" d="M291.8 179.8c0-.6.5-1.1 1.1-1.1.7 0 1.2.5 1.2 1 0 .7-.5 1.1-1.2 1.1a1.1 1.1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M291.8 179.8c0-.6.5-1.1 1.1-1.1.7 0 1.2.5 1.2 1 0 .7-.5 1.1-1.2 1.1a1.1 1.1 0 01-1-1z"/>
+  <path fill="#fff" d="M288.3 179.6c0-.6.5-1 1.1-1a1 1 0 011.2 1c0 .6-.5 1-1.2 1a1.1 1.1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M288.3 179.6c0-.6.5-1 1.1-1a1 1 0 011.2 1c0 .6-.5 1-1.2 1a1.1 1.1 0 01-1-1z"/>
+  <path fill="#fff" d="M284.9 179.7c0-.6.5-1 1-1 .7 0 1.2.4 1.2 1s-.5 1-1.1 1a1.1 1.1 0 01-1.1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M284.9 179.7c0-.6.5-1 1-1 .7 0 1.2.4 1.2 1s-.5 1-1.1 1a1.1 1.1 0 01-1.1-1z"/>
+  <path fill="#fff" d="M281.4 179.7c0-.6.5-1 1.1-1 .6 0 1.1.4 1.1 1s-.5 1-1 1a1.1 1.1 0 01-1.2-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M281.4 179.7c0-.6.5-1 1.1-1 .6 0 1.1.4 1.1 1s-.5 1-1 1a1.1 1.1 0 01-1.2-1z"/>
+  <path fill="#fff" stroke="#000" stroke-width=".4" d="M283.1 182.7c0-.6.5-1.1 1.1-1.1.7 0 1.2.5 1.2 1 0 .6-.5 1.1-1.1 1.1a1.1 1.1 0 01-1.2-1m.7 3.2c0-.6.5-1 1.2-1 .6 0 1 .4 1 1s-.4 1-1 1a1.1 1.1 0 01-1.2-1m.2 3.3c0-.6.5-1 1-1a1 1 0 011.2 1c0 .6-.5 1-1.1 1a1.1 1.1 0 01-1.1-1m-1 3c0-.6.4-1.1 1-1.1a1 1 0 011.2 1c0 .7-.5 1.1-1.1 1.1a1.1 1.1 0 01-1.2-1m-1.9 2.7c0-.6.5-1 1.2-1 .6 0 1 .4 1 1s-.4 1-1 1a1.1 1.1 0 01-1.2-1"/>
+  <path fill="#fff" d="M278.8 177.6c0-.5.5-1 1.1-1 .6 0 1.1.4 1.1 1s-.5 1.1-1 1.1a1.1 1.1 0 01-1.2-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M278.8 177.6c0-.5.5-1 1.1-1 .6 0 1.1.4 1.1 1s-.5 1.1-1 1.1a1.1 1.1 0 01-1.2-1z"/>
+  <path fill="#fff" d="M275.7 176c0-.7.5-1.1 1.1-1.1.7 0 1.2.4 1.2 1s-.5 1.1-1.1 1.1a1.1 1.1 0 01-1.2-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M275.7 176c0-.7.5-1.1 1.1-1.1.7 0 1.2.4 1.2 1s-.5 1.1-1.1 1.1a1.1 1.1 0 01-1.2-1z"/>
+  <path fill="#fff" d="M272.3 175c0-.7.5-1.1 1.2-1.1.6 0 1 .4 1 1s-.4 1-1 1a1.1 1.1 0 01-1.2-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M272.3 175c0-.7.5-1.1 1.2-1.1.6 0 1 .4 1 1s-.4 1-1 1a1.1 1.1 0 01-1.2-1z"/>
+  <path fill="#fff" d="M268.8 174.3c0-.6.5-1 1.1-1 .7 0 1.2.4 1.2 1s-.5 1-1.2 1a1.1 1.1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M268.8 174.3c0-.6.5-1 1.1-1 .7 0 1.2.4 1.2 1s-.5 1-1.2 1a1.1 1.1 0 01-1-1z"/>
+  <path fill="#fff" d="M265.4 174.4c0-.6.5-1 1.1-1 .6 0 1.1.4 1.1 1s-.5 1-1.1 1a1.1 1.1 0 01-1.1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M265.4 174.4c0-.6.5-1 1.1-1 .6 0 1.1.4 1.1 1s-.5 1-1.1 1a1.1 1.1 0 01-1.1-1z"/>
+  <path fill="#fff" d="M261.8 175c0-.6.5-1 1.1-1a1 1 0 011.1 1c0 .6-.5 1-1 1a1.1 1.1 0 01-1.2-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M261.8 175c0-.6.5-1 1.1-1a1 1 0 011.1 1c0 .6-.5 1-1 1a1.1 1.1 0 01-1.2-1z"/>
+  <path fill="#fff" d="M258.5 176.1c0-.6.5-1 1.1-1 .6 0 1.1.4 1.1 1s-.5 1-1.1 1a1.1 1.1 0 01-1.1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M258.5 176.1c0-.6.5-1 1.1-1 .6 0 1.1.4 1.1 1s-.5 1-1.1 1a1.1 1.1 0 01-1.1-1z"/>
+  <path fill="#fff" d="M202.3 203.4c0-.6.5-1 1.1-1a1 1 0 011.1 1c0 .6-.5 1.1-1 1.1a1 1 0 01-1.2-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M202.3 203.4c0-.6.5-1 1.1-1a1 1 0 011.1 1c0 .6-.5 1.1-1 1.1a1 1 0 01-1.2-1z"/>
+  <path fill="#fff" d="M200.8 200.7c0-.6.5-1 1-1 .7 0 1.2.4 1.2 1s-.5 1-1.1 1a1 1 0 01-1.1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M200.8 200.7c0-.6.5-1 1-1 .7 0 1.2.4 1.2 1s-.5 1-1.1 1a1 1 0 01-1.1-1z"/>
+  <path fill="#fff" d="M199.7 197.6c0-.6.5-1 1.2-1a1 1 0 011 1c0 .6-.4 1-1 1a1.1 1.1 0 01-1.2-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M199.7 197.6c0-.6.5-1 1.2-1a1 1 0 011 1c0 .6-.4 1-1 1a1.1 1.1 0 01-1.2-1z"/>
+  <path fill="#fff" d="M199.6 194.2c0-.6.5-1 1.1-1 .7 0 1.2.4 1.2 1s-.5 1-1.2 1c-.6 0-1-.4-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M199.6 194.2c0-.6.5-1 1.1-1 .7 0 1.2.4 1.2 1s-.5 1-1.2 1c-.6 0-1-.4-1-1z"/>
+  <path fill="#fff" d="M200.4 190.9c0-.6.5-1 1.2-1 .6 0 1 .4 1 1s-.4 1-1 1a1.1 1.1 0 01-1.2-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M200.4 190.9c0-.6.5-1 1.2-1 .6 0 1 .4 1 1s-.4 1-1 1a1.1 1.1 0 01-1.2-1z"/>
+  <path fill="#fff" d="M202.2 187.8c0-.5.5-1 1-1a1 1 0 011.2 1c0 .6-.5 1.1-1.1 1.1a1.1 1.1 0 01-1.1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M202.2 187.8c0-.5.5-1 1-1a1 1 0 011.2 1c0 .6-.5 1.1-1.1 1.1a1.1 1.1 0 01-1.1-1z"/>
+  <path fill="#fff" d="M204.5 185.4c0-.6.5-1 1.1-1 .6 0 1.1.4 1.1 1 0 .5-.5 1-1.1 1-.6 0-1.1-.4-1.1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M204.5 185.4c0-.6.5-1 1.1-1 .6 0 1.1.4 1.1 1 0 .5-.5 1-1.1 1-.6 0-1.1-.4-1.1-1z"/>
+  <path fill="#fff" d="M207.2 183.3c0-.6.5-1 1-1 .7 0 1.2.4 1.2 1s-.5 1-1.1 1a1 1 0 01-1.2-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M207.2 183.3c0-.6.5-1 1-1 .7 0 1.2.4 1.2 1s-.5 1-1.1 1a1 1 0 01-1.2-1z"/>
+  <path fill="#fff" d="M210.3 181.6c0-.6.5-1 1.2-1a1 1 0 011 1c0 .6-.4 1-1 1a1.1 1.1 0 01-1.2-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M210.3 181.6c0-.6.5-1 1.2-1a1 1 0 011 1c0 .6-.4 1-1 1a1.1 1.1 0 01-1.2-1z"/>
+  <path fill="#fff" d="M213.7 180.4c0-.6.5-1 1-1 .7 0 1.2.4 1.2 1s-.5 1-1.1 1a1.1 1.1 0 01-1.1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M213.7 180.4c0-.6.5-1 1-1 .7 0 1.2.4 1.2 1s-.5 1-1.1 1a1.1 1.1 0 01-1.1-1z"/>
+  <path fill="#fff" d="M217.4 179.8c0-.6.5-1.1 1.1-1.1a1 1 0 011.1 1c0 .7-.5 1.1-1.1 1.1a1.1 1.1 0 01-1.1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M217.4 179.8c0-.6.5-1.1 1.1-1.1a1 1 0 011.1 1c0 .7-.5 1.1-1.1 1.1a1.1 1.1 0 01-1.1-1z"/>
+  <path fill="#fff" d="M220.9 179.6c0-.6.5-1 1.1-1 .6 0 1.1.4 1.1 1s-.5 1-1 1a1.1 1.1 0 01-1.2-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M220.9 179.6c0-.6.5-1 1.1-1 .6 0 1.1.4 1.1 1s-.5 1-1 1a1.1 1.1 0 01-1.2-1z"/>
+  <path fill="#fff" d="M224.3 179.7c0-.6.5-1 1.2-1a1 1 0 011 1c0 .6-.4 1-1 1a1.1 1.1 0 01-1.2-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M224.3 179.7c0-.6.5-1 1.2-1a1 1 0 011 1c0 .6-.4 1-1 1a1.1 1.1 0 01-1.2-1z"/>
+  <path fill="#fff" d="M227.8 179.7c0-.6.5-1 1.1-1 .6 0 1.2.4 1.2 1s-.5 1-1.2 1a1.1 1.1 0 01-1.1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M227.8 179.7c0-.6.5-1 1.1-1 .6 0 1.2.4 1.2 1s-.5 1-1.2 1a1.1 1.1 0 01-1.1-1z"/>
+  <path fill="#fff" stroke="#000" stroke-width=".4" d="M226 182.7c0-.6.6-1.1 1.2-1.1s1.1.5 1.1 1c0 .6-.5 1.1-1.1 1.1a1.1 1.1 0 01-1.1-1m-.7 3.2c0-.6.5-1 1-1 .7 0 1.2.4 1.2 1s-.5 1-1.1 1c-.6 0-1.1-.4-1.1-1m-.2 3.3c0-.6.5-1 1.2-1 .6 0 1 .4 1 1s-.4 1-1 1a1.1 1.1 0 01-1.2-1m1 3c0-.6.6-1.1 1.2-1.1a1 1 0 011.1 1c0 .7-.5 1.1-1.1 1.1a1.1 1.1 0 01-1.1-1m1.9 2.7c0-.6.5-1 1-1 .7 0 1.2.4 1.2 1s-.5 1-1.1 1a1.1 1.1 0 01-1.1-1"/>
+  <path fill="#fff" d="M230.4 177.6c0-.5.5-1 1.1-1 .7 0 1.2.4 1.2 1s-.5 1.1-1.2 1.1a1.1 1.1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M230.4 177.6c0-.5.5-1 1.1-1 .7 0 1.2.4 1.2 1s-.5 1.1-1.2 1.1a1.1 1.1 0 01-1-1z"/>
+  <path fill="#fff" d="M233.5 176c0-.7.5-1.1 1.1-1.1.6 0 1.1.4 1.1 1s-.5 1.1-1 1.1a1.1 1.1 0 01-1.2-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M233.5 176c0-.7.5-1.1 1.1-1.1.6 0 1.1.4 1.1 1s-.5 1.1-1 1.1a1.1 1.1 0 01-1.2-1z"/>
+  <path fill="#fff" d="M236.9 175c0-.7.5-1.1 1-1.1s1.2.4 1.2 1-.5 1-1.1 1a1.1 1.1 0 01-1.1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M236.9 175c0-.7.5-1.1 1-1.1s1.2.4 1.2 1-.5 1-1.1 1a1.1 1.1 0 01-1.1-1z"/>
+  <path fill="#fff" d="M240.4 174.3c0-.6.5-1 1.1-1a1 1 0 011.1 1c0 .6-.5 1-1 1a1.1 1.1 0 01-1.2-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M240.4 174.3c0-.6.5-1 1.1-1a1 1 0 011.1 1c0 .6-.5 1-1 1a1.1 1.1 0 01-1.2-1z"/>
+  <path fill="#fff" d="M243.8 174.4c0-.6.5-1 1.2-1a1 1 0 011 1c0 .6-.4 1-1 1a1 1 0 01-1.2-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M243.8 174.4c0-.6.5-1 1.2-1a1 1 0 011 1c0 .6-.4 1-1 1a1 1 0 01-1.2-1z"/>
+  <path fill="#fff" d="M247.4 175c0-.6.5-1 1.1-1a1 1 0 011.2 1c0 .6-.5 1-1.2 1a1.1 1.1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M247.4 175c0-.6.5-1 1.1-1a1 1 0 011.2 1c0 .6-.5 1-1.2 1a1.1 1.1 0 01-1-1z"/>
+  <path fill="#fff" d="M250.7 176.1c0-.6.5-1 1.2-1 .6 0 1 .4 1 1s-.4 1-1 1a1.1 1.1 0 01-1.2-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M250.7 176.1c0-.6.5-1 1.2-1 .6 0 1 .4 1 1s-.4 1-1 1a1.1 1.1 0 01-1.2-1z"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".5" d="M222.3 244.1h-1v-1h-1.6v3.9h1.6v2.6h-3.5v7.5h1.9v15.2h-3.8v7.8h29v-7.8h-3.7v-15.2h1.9v-7.5h-3.6V247h1.7v-3.8h-1.7v1h-1v-1H237v1h-1.2v-1h-1.6v3.8h1.6v2.6h-3.5v-8.3h1.9v-3.8h-1.9v1h-1v-1h-1.6v1h-1v-1h-1.9v3.8h2v8.3H225V247h1.7v-3.8H225v1h-1v-1h-1.8v1zm-6.4 36h29m-29-1.9h29m-29-1.9h29m-29-1.9h29m-29-2.1h29m-25.2-1.7h21.5m-21.5-1.9h21.5m-21.5-2h21.5m-21.5-2h21.5m-21.5-1.9h21.5m-21.5-1.9h21.5m-21.5-1.9h21.5m-23.4-1.9H243m-25.3-1.8H243m-25.3-2H243m-25.3-1.8H243m-21.8-2h18.2m-10.9-1.8h3.6m-3.5-2h3.5m-3.5-1.8h3.5m-3.5-1.9h3.5m-5.4-2.4h7.3m-12.8 8h3.8m-5.4-2.3h7m-7 34.8v-1.9m0-1.9v-1.9m-2 2v1.8m3.6 0v-1.9m2 3.8v-1.9m0-1.9v-1.9m0-2.1v-1.7m0-1.9v-2m-2 7.7v-2.1m-3.5 2.1v-2.1m7.3 0v2.1m1.7-2.1v-1.7m-5.5-1.9v2m3.8-2v2m3.5-2v2m-1.8-2v-2m1.8-2v2m0-5.8v2m-1.8-3.9v2m1.8-3.8v1.8m-3.5-1.9v2m-3.8-2v2m-1.6-3.8v1.9m3.5-2v2m3.6-2v2m1.9-3.8v1.9m-3.6-2v2m-3.8-2v2m-1.6-3.8v1.9m7-2v2m-3.5-5.7v1.9m16.3-2h-3.7m5.4-2.3H234m7 34.8v-1.9m0-1.9v-1.9m2 2v1.8m-3.6 0v-1.9m-1.9 3.8v-1.9m0-1.9v-1.9m0-2.1v-1.7m0-1.9v-2m2 7.7v-2.1m3.5 2.1v-2.1m-7.3 0v2.1m-1.7-2.1v-1.7m5.4-1.9v2m-3.7-2v2m-3.6-2v2m1.9-2v-2m-1.9-2v2m0-5.8v2m1.9-3.9v2m-1.9-3.8v1.8m3.6-1.9v2m3.8-2v2m1.6-3.8v1.9m-3.5-2v2m-3.6-2v2m-1.9-3.8v1.9m3.6-2v2m3.7-2v2m1.7-3.8v1.9m-7.1-2v2m3.6-5.7v1.9m-7.4 19.1v-2m0-5.8V259m0 5.7v-1.9m0-5.7v-1.8m0-2v-1.8m0-3.8v-2m0-1.8V242m-9 5h3.8m3.6-5.7h3.5m3.6 5.7h3.7"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".5" d="M235.3 280.1v-5c0-1-.5-3.8-5-3.8-4.3 0-4.7 2.9-4.7 3.8v5h9.7z"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".5" d="M227.2 275.4l-2.3-.3c0-1 .2-2.3 1-2.8l2 1.7c-.2.2-.7.9-.7 1.4zm6.4 0l2.4-.3c0-1-.3-2.3-1-2.8l-2 1.7c.1.2.6.9.6 1.4zm-2.4-2.4l1.2-2.1a5.6 5.6 0 00-2-.5c-.6 0-1.5.2-2 .5l1.2 2.1h1.6zm-4.4-6v-5c0-1.4-1-2.6-2.6-2.6-1.7 0-2.6 1.2-2.6 2.6v5.2h5.2zm7.3 0v-5c0-1.4 1-2.6 2.6-2.6s2.6 1.2 2.6 2.6v5.2h-5.2zm-1.9-12.7l.5-4.7h-4.5l.2 4.7h3.8zm3.5 0l-.4-4.7h4.7l-.5 4.7h-3.8zm-10.6 0l.2-4.7h-4.5l.5 4.7h3.8z"/>
+  <path fill="#0039f0" d="M233.6 280.1v-4.3c0-.7-.4-2.8-3.3-2.8a2.9 2.9 0 00-3 2.8v4.3h6.3zm-7.3-13.5v-4.5c0-1.2-.7-2.4-2.1-2.4s-2.2 1.2-2.2 2.4v4.5h4.3zm8.3 0v-4.5c0-1.2.7-2.4 2.1-2.4s2.1 1.2 2.1 2.4v4.5h-4.2z"/>
+  <path fill="#ad1519" d="M239.5 287.8c0-10.4 7.5-18.8 16.6-18.8s16.7 8.4 16.7 18.7c0 10.4-7.5 18.8-16.7 18.8s-16.6-8.4-16.6-18.7"/>
+  <path fill="none" stroke="#000" stroke-width=".6" d="M239.5 287.8c0-10.4 7.5-18.8 16.6-18.8s16.7 8.4 16.7 18.7c0 10.4-7.5 18.8-16.7 18.8s-16.6-8.4-16.6-18.7z"/>
+  <path fill="#005bbf" d="M244.4 287.7c0-7.6 5.3-13.7 11.7-13.7 6.5 0 11.8 6.1 11.8 13.7s-5.3 13.7-11.7 13.7c-6.5 0-11.8-6.1-11.8-13.7"/>
+  <path fill="none" stroke="#000" stroke-width=".6" d="M244.4 287.7c0-7.6 5.3-13.7 11.7-13.7 6.5 0 11.8 6.1 11.8 13.7s-5.3 13.7-11.7 13.7c-6.5 0-11.8-6.1-11.8-13.7z"/>
+  <path fill="#c8b100" d="M250.6 278.3s-1.4 1.5-1.4 2.9.6 2.6.6 2.6a1.5 1.5 0 00-1.4-1 1.5 1.5 0 00-1.6 1.5l.3.8.5 1c.2-.4.5-.6 1-.6.6 0 1 .5 1 1v.3h-1.2v1h1.1l-.8 1.7 1-.4 1 1 .8-1 1 .4-.7-1.6h1v-1.1h-1.2a1 1 0 010-.3c0-.5.5-1 1-1s1 .2 1 .6l.6-1 .2-.8c0-.8-.6-1.5-1.5-1.5-.7 0-1.2.4-1.4 1 0 0 .5-1.2.5-2.6 0-1.4-1.4-3-1.4-3"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".3" d="M250.6 278.3s-1.4 1.5-1.4 2.9.6 2.6.6 2.6a1.5 1.5 0 00-1.4-1 1.5 1.5 0 00-1.6 1.5l.3.8.5 1c.2-.4.5-.6 1-.6.6 0 1 .5 1 1v.3h-1.2v1h1.1l-.8 1.7 1-.4 1 1 .8-1 1 .4-.7-1.6h1v-1.1h-1.2a1 1 0 010-.3c0-.5.5-1 1-1s1 .2 1 .6l.6-1 .2-.8c0-.8-.6-1.5-1.5-1.5-.7 0-1.2.4-1.4 1 0 0 .5-1.2.5-2.6 0-1.4-1.4-3-1.4-3z"/>
+  <path fill="#c8b100" d="M248.4 287.9h4.5v-1.1h-4.5v1z"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M248.4 287.9h4.5v-1.1h-4.5v1z"/>
+  <path fill="#c8b100" d="M261.5 278.3s-1.4 1.5-1.4 2.9.6 2.6.6 2.6c-.2-.6-.8-1-1.4-1-.9 0-1.6.7-1.6 1.5l.3.8.5 1c.1-.4.5-.6 1-.6a1 1 0 011 1 1 1 0 010 .3h-1.2v1h1.1l-.8 1.7 1-.4.9 1 .9-1 1 .4-.8-1.6h1.1v-1.1h-1.2a.9.9 0 010-.3c0-.5.5-1 1-1s.9.2 1 .6l.6-1 .2-.8c0-.8-.7-1.5-1.5-1.5-.7 0-1.3.4-1.5 1 0 0 .6-1.2.6-2.6 0-1.4-1.4-3-1.4-3"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".3" d="M261.5 278.3s-1.4 1.5-1.4 2.9.6 2.6.6 2.6c-.2-.6-.8-1-1.4-1-.9 0-1.6.7-1.6 1.5l.3.8.5 1c.1-.4.5-.6 1-.6a1 1 0 011 1 1 1 0 010 .3h-1.2v1h1.1l-.8 1.7 1-.4.9 1 .9-1 1 .4-.8-1.6h1.1v-1.1h-1.2a.9.9 0 010-.3c0-.5.5-1 1-1s.9.2 1 .6l.6-1 .2-.8c0-.8-.7-1.5-1.5-1.5-.7 0-1.3.4-1.5 1 0 0 .6-1.2.6-2.6 0-1.4-1.4-3-1.4-3z"/>
+  <path fill="#c8b100" d="M259.3 287.9h4.5v-1.1h-4.5v1z"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M259.3 287.9h4.5v-1.1h-4.5v1z"/>
+  <path fill="#c8b100" d="M256 287.6s-1.3 1.5-1.3 3c0 1.4.6 2.6.6 2.6a1.5 1.5 0 00-1.5-1 1.5 1.5 0 00-1.5 1.4l.2.8.5 1c.2-.3.6-.5 1-.5.6 0 1.1.4 1.1 1a1 1 0 010 .3h-1.2v1h1l-.8 1.7 1.1-.5.9 1 .8-1 1.1.5-.8-1.7h1.1v-1h-1.2a1 1 0 010-.3c0-.6.4-1 1-1 .5 0 .9.2 1 .5l.5-1c.1-.2.3-.5.3-.8 0-.8-.7-1.4-1.6-1.4a1.5 1.5 0 00-1.4 1s.6-1.2.6-2.7c0-1.4-1.4-2.9-1.4-2.9"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".3" d="M256 287.6s-1.3 1.5-1.3 3c0 1.4.6 2.6.6 2.6a1.5 1.5 0 00-1.5-1 1.5 1.5 0 00-1.5 1.4l.2.8.5 1c.2-.3.6-.5 1-.5.6 0 1.1.4 1.1 1a1 1 0 010 .3h-1.2v1h1l-.8 1.7 1.1-.5.9 1 .8-1 1.1.5-.8-1.7h1.1v-1h-1.2a1 1 0 010-.3c0-.6.4-1 1-1 .5 0 .9.2 1 .5l.5-1c.1-.2.3-.5.3-.8 0-.8-.7-1.4-1.6-1.4a1.5 1.5 0 00-1.4 1s.6-1.2.6-2.7c0-1.4-1.4-2.9-1.4-2.9z"/>
+  <path fill="#c8b100" d="M253.8 297.2h4.5v-1h-4.5v1z"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M253.8 297.2h4.5v-1h-4.5v1z"/>
+  <path fill="#c8b100" d="M289.4 238.3h-.3a1.6 1.6 0 01-.3.4c-.3.2-.7.3-.9 0a.5.5 0 01-.1-.4.5.5 0 01-.5 0c-.3-.1-.4-.5-.2-.8l.1-.2v-.3h-.3l-.1.3c-.3.2-.6.3-.8.1a.6.6 0 01-.1-.2h-.2c-.5.2-.7-1-.8-1.3l-.1.3v1.3a7 7 0 01-.3 1.2c.8.2 2 .8 3 1.7a9.6 9.6 0 012.5 2.5l1.2-.6c.6-.2 1.4-.2 1.4-.2l.2-.2c-.3 0-1.6.1-1.6-.4l.1-.2a.7.7 0 01-.3 0c-.2-.2-.2-.5 0-.8h.2v-.4h-.3l-.2.1c-.3.3-.7.3-.9 0a.5.5 0 010-.4.6.6 0 01-.6 0 .6.6 0 010-.9 1.6 1.6 0 01.2-.3v-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M289.4 238.3h-.3a1.6 1.6 0 01-.3.4c-.3.2-.7.3-.9 0a.5.5 0 01-.1-.4.5.5 0 01-.5 0c-.3-.1-.4-.5-.2-.8l.1-.2v-.3h-.3l-.1.3c-.3.2-.6.3-.8.1a.6.6 0 01-.1-.2h-.2c-.5.2-.7-1-.8-1.3l-.1.3v1.3a7 7 0 01-.3 1.2c.8.2 2 .8 3 1.7a9.6 9.6 0 012.5 2.5l1.2-.6c.6-.2 1.4-.2 1.4-.2l.2-.2c-.3 0-1.6.1-1.6-.4l.1-.2a.7.7 0 01-.3 0c-.2-.2-.2-.5 0-.8h.2v-.4h-.3l-.2.1c-.3.3-.7.3-.9 0a.5.5 0 010-.4.6.6 0 01-.6 0 .6.6 0 010-.9 1.6 1.6 0 01.2-.3v-.3z"/>
+  <path d="M287 239h.3s.1.2 0 .2h-.2v-.2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M287 239h.3s.1.2 0 .2h-.2v-.2z"/>
+  <path d="M288 239.8l-.3-.2v-.2h.2l.3.3.3.2s.1.1 0 .2h-.1l-.4-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M288 239.8l-.3-.2v-.2h.2l.3.3.3.2s.1.1 0 .2h-.1l-.4-.3"/>
+  <path d="M286.3 238.6l-.3-.2s-.1 0 0-.1h.1l.3.1.2.2.1.1h-.2l-.2-.1"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M286.3 238.6l-.3-.2s-.1 0 0-.1h.1l.3.1.2.2.1.1h-.2l-.2-.1"/>
+  <path d="M285.2 237.9h.2l.1.2h-.2l-.1-.2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M285.2 237.9h.2l.1.2h-.2l-.1-.2z"/>
+  <path d="M289.1 240.6v-.3h-.3v.3h.3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M289.1 240.6v-.3h-.3v.3h.3z"/>
+  <path d="M289.7 241.2l.2.2c0 .1.2.1.2 0l-.2-.3-.2-.2h-.2v.1l.2.2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M289.7 241.2l.2.2c0 .1.2.1.2 0l-.2-.3-.2-.2h-.2v.1l.2.2"/>
+  <path d="M290.7 242v-.2h-.3v.3h.3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M290.7 242v-.2h-.3v.3h.3z"/>
+  <path fill="#c8b100" d="M287.9 235.9h-.6l-.2.9.1.1h.2l.7-.5-.2-.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M287.9 235.9h-.6l-.2.9.1.1h.2l.7-.5-.2-.5"/>
+  <path fill="#c8b100" d="M286.2 236.4v.5l1 .2v-.3l-.5-.7-.5.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M286.2 236.4v.5l1 .2v-.3l-.5-.7-.5.3"/>
+  <path fill="#c8b100" d="M288.2 237.5l-.5.3-.6-.8v-.1h1.1v.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M288.2 237.5l-.5.3-.6-.8v-.1h1.1v.6"/>
+  <path fill="#c8b100" d="M287 236.8a.3.3 0 01.3-.1.3.3 0 01.1.4.3.3 0 01-.3 0 .3.3 0 01-.2-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M287 236.8a.3.3 0 01.3-.1.3.3 0 01.1.4.3.3 0 01-.3 0 .3.3 0 01-.2-.3z"/>
+  <path fill="#c8b100" d="M284.8 235.9l-.3-.8a2 2 0 00-.4-.4s.4-.2.9.1c.4.3 0 .9 0 .9l-.2.2"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M284.8 235.9l-.3-.8a2 2 0 00-.4-.4s.4-.2.9.1c.4.3 0 .9 0 .9l-.2.2z"/>
+  <path fill="#c8b100" d="M285.8 236.2l-.4.4-.7-.6v-.3h1l.1.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M285.8 236.2l-.4.4-.7-.6v-.3h1l.1.5"/>
+  <path fill="#c8b100" d="M284.6 235.8l.3-.2c.1 0 .2.2.1.3 0 .2-.2.3-.3.3 0 0-.1-.2 0-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M284.6 235.8l.3-.2c.1 0 .2.2.1.3 0 .2-.2.3-.3.3 0 0-.1-.2 0-.4z"/>
+  <path fill="#c8b100" d="M290.2 237.3h-.6l-.3.8v.2h.2l.9-.4-.2-.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M290.2 237.3h-.6l-.3.8v.2h.2l.9-.4-.2-.6"/>
+  <path fill="#c8b100" d="M288.5 237.6l-.1.6.9.2h.1v-.2l-.4-.8-.5.2"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M288.5 237.6l-.1.6.9.2h.1v-.2l-.4-.8-.5.2"/>
+  <path fill="#c8b100" d="M290.3 239l-.6.2-.4-.8v-.2h.1l1 .2-.1.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M290.3 239l-.6.2-.4-.8v-.2h.1l1 .2-.1.6"/>
+  <path fill="#c8b100" d="M289.1 238.1c.1-.1.3-.1.4 0a.3.3 0 01.1.4.3.3 0 01-.4 0 .3.3 0 010-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M289.1 238.1c.1-.1.3-.1.4 0a.3.3 0 01.1.4.3.3 0 01-.4 0 .3.3 0 010-.4z"/>
+  <path fill="#c8b100" d="M292.2 239.2l.1.6-.9.3h-.1v-.2l.3-.8.6.1"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M292.2 239.2l.1.6-.9.3h-.1v-.2l.3-.8.6.1"/>
+  <path fill="#c8b100" d="M292 240.8l-.5.2-.3-.9v-.1h.2l.8.3-.1.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M292 240.8l-.5.2-.3-.9v-.1h.2l.8.3-.1.5"/>
+  <path fill="#c8b100" d="M290.5 239.3l-.2.5.9.3h.1v-.1l-.2-.9-.6.2"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M290.5 239.3l-.2.5.9.3h.1v-.1l-.2-.9-.6.2"/>
+  <path fill="#c8b100" d="M291.5 240.3a.3.3 0 000-.4.3.3 0 00-.5 0 .3.3 0 000 .3.3.3 0 00.4 0"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M291.5 240.3a.3.3 0 000-.4.3.3 0 00-.5 0 .3.3 0 000 .3.3.3 0 00.4 0z"/>
+  <path fill="#c8b100" d="M292.9 242.1l.8.1a2 2 0 01.5.3s.1-.5-.3-.8c-.4-.3-.9.2-.9.2l-.1.2"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M292.9 242.1l.8.1a2 2 0 01.5.3s.1-.5-.3-.8c-.4-.3-.9.2-.9.2l-.1.2z"/>
+  <path fill="#c8b100" d="M292.3 241.2l-.3.5.8.5v-.1h.2l-.1-1h-.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M292.3 241.2l-.3.5.8.5v-.1h.2l-.1-1h-.6"/>
+  <path fill="#c8b100" d="M293 242.2s.2-.2.1-.3h-.4c-.1 0-.2.2-.1.3h.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M293 242.2s.2-.2.1-.3h-.4c-.1 0-.2.2-.1.3h.3zm40.7-23.4v.6H331v-.6h1v-1.4h-.7v-.6h.6v-.5h.7v.5h.6v.6h-.6v1.4h1"/>
+  <path fill="none" stroke="#000" stroke-width="0" d="M179.3 231.6v-1.3m-.3 1.3v-1.3m-.3 1.3v-1.3m-.4 1.3v-1.3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M178 231.6v-1.3m-.5 1.2v-1.2m.2 1.2v-1.2m-.7 1.2v-1.1m.2 1v-1m-.9 1v-1m.2 1v-1m.2 1v-1m-.7 1v-1m-.2.9v-.8m-.2.8v-.8m-.6.8v-.7m.3.7v-.7m-.5.6v-.6m-.2.5v-.4m-.3.3v-.3m-.3.3v-.2"/>
+  <path fill="none" stroke="#000" stroke-width=".2" d="M173.8 231v-.1"/>
+  <path fill="none" stroke="#000" stroke-width="0" d="M180.8 231.5v-1.2m-.7 1.2v-1.2m-.4 1.3v-1.3m152.6 1.3v-1.3m-.3 1.3v-1.3m-.4 1.3v-1.3m-.4 1.3v-1.3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M331 231.6v-1.3m-.6 1.2v-1.1m.3 1.1v-1.2m-.8 1.2v-1.1m.2 1.1v-1.2m-.9 1.1v-1m.2 1v-1m.3 1v-1m-.7 1v-1m-.3 1v-.9m-.2.8v-.8m-.5.8v-.7m.2.7v-.7m-.5.6v-.5m-.2.5v-.5m-.3.4v-.4m-.2.3v-.2"/>
+  <path fill="none" stroke="#000" stroke-width=".2" d="M326.7 231v-.1"/>
+  <path fill="none" stroke="#000" stroke-width="0" d="M333.7 231.5v-1.2m-.6 1.3v-1.3m-.5 1.3v-1.3"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/et.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/et.svg
new file mode 100644
index 0000000..8b02f6b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/et.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-et" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M229.3 6.3h489.3v489.3H229.3z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#a)" transform="translate(-240 -6.6) scale(1.046)">
+    <path fill="#ffc621" d="M2 9.7h991.8v475.9H1.9z"/>
+    <path fill="#ef2118" d="M0 333.6h993.2v162H0z"/>
+    <path fill="#298c08" d="M2 6.3h991.8v172H2z"/>
+    <circle cx="534.2" cy="353" r="199.7" fill="#006bc6" transform="matrix(.515 0 0 .515 204.7 77)"/>
+    <path fill="#ffc621" d="M434 186.2l-6 4.3 22.4 31.6 6-3.9-22.3-32zm28.2 74.5l-9.2-6.5 3.8-12-46 .6-13.3-10.2 62.7-.7 11.7-35.3L478 211l-16 49.8zm73.1-67.6l-6-4.5-23.3 31 5.5 4.5 23.8-31zm-62.5 49.3l3.3-10.7h12.7L474.3 188l5.7-15.8 19.6 59.7 37.2.4-11.7 10.3-52.3-.2zm86.6 49l2.5-7.2-36.6-12.6-2.6 6.5 36.7 13.2zm-66-44.4l11.2-.2 4 12.1 37-27.2 16.7.6-50.7 37 11 35.5-13.4-8-15.9-49.8zm-19 97.5l7.6.1.3-38.7-7-.4-.8 39zm21-76.8l3.7 10.6L489 286l37.6 26.5 4.8 16-51.2-36.2-30.1 21.7 3.3-15.2 42.1-31zm-98.7 12.4l2.3 7.2 36.9-11.7-1.8-6.8-37.4 11.3zm79.6-3.8l-9 6.8-10.4-7.4-13.5 44-13.8 9.5 18.7-60-30-21.8 15.5-1.6 42.5 30.5z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/eu.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/eu.svg
new file mode 100644
index 0000000..b031d2d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/eu.svg
@@ -0,0 +1,28 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-eu" viewBox="0 0 512 512">
+  <defs>
+    <g id="d">
+      <g id="b">
+        <path id="a" d="M0-1l-.3 1 .5.1z"/>
+        <use transform="scale(-1 1)" xlink:href="#a"/>
+      </g>
+      <g id="c">
+        <use transform="rotate(72)" xlink:href="#b"/>
+        <use transform="rotate(144)" xlink:href="#b"/>
+      </g>
+      <use transform="scale(-1 1)" xlink:href="#c"/>
+    </g>
+  </defs>
+  <path fill="#039" d="M0 0h512v512H0z"/>
+  <g fill="#fc0" transform="translate(256 258.4) scale(25.28395)">
+    <use width="100%" height="100%" y="-6" xlink:href="#d"/>
+    <use width="100%" height="100%" y="6" xlink:href="#d"/>
+    <g id="e">
+      <use width="100%" height="100%" x="-6" xlink:href="#d"/>
+      <use width="100%" height="100%" transform="rotate(-144 -2.3 -2.1)" xlink:href="#d"/>
+      <use width="100%" height="100%" transform="rotate(144 -2.1 -2.3)" xlink:href="#d"/>
+      <use width="100%" height="100%" transform="rotate(72 -4.7 -2)" xlink:href="#d"/>
+      <use width="100%" height="100%" transform="rotate(72 -5 .5)" xlink:href="#d"/>
+    </g>
+    <use width="100%" height="100%" transform="scale(-1 1)" xlink:href="#e"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/fi.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/fi.svg
new file mode 100644
index 0000000..aff1304
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/fi.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-fi" viewBox="0 0 512 512">
+  <path fill="#fff" d="M0 0h512v512H0z"/>
+  <path fill="#003580" d="M0 186.2h512v139.6H0z"/>
+  <path fill="#003580" d="M123.2 0h139.6v512H123.1z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/fj.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/fj.svg
new file mode 100644
index 0000000..9d9c302
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/fj.svg
@@ -0,0 +1,125 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-fj" viewBox="0 0 512 512">
+  <path id="path1992" fill="#68bfe5" d="M0 0v512h512V.2H322V0H0z"/>
+  <g id="g2202" stroke-miterlimit="4.8">
+    <path id="path1994" fill="#fff" d="M310.2 254v136.4c0 44.6 80.6 71.1 80.6 71.1s80.6-26.5 80.6-71V254z"/>
+    <path id="path1996" fill="#d21034" d="M379.6 302v61.4h-69.4v22.3h69.5v71.5l11.1 4.3 11.2-4.3v-71.5h69.4v-22.3H402V302z"/>
+    <path id="path1998" fill="#d21034" d="M310.2 254h161.2v52.7H310.2z"/>
+    <g id="g2072" stroke-miterlimit="3">
+      <g id="g2008" fill="#fff" stroke="#000" stroke-width=".8" transform="translate(-207.6 158.4) scale(.66486)">
+        <ellipse id="ellipse2000" cx="798.2" cy="192.2" rx="13.6" ry="11"/>
+        <ellipse id="ellipse2002" cx="798.2" cy="186.5" rx="12.1" ry="6.1"/>
+        <ellipse id="ellipse2004" cx="798.2" cy="198.8" rx="12.1" ry="6.1"/>
+        <ellipse id="ellipse2006" cx="798.2" cy="192.2" rx="12.1" ry="6.1"/>
+      </g>
+      <path id="path2010" fill="#ffd100" stroke="#000" stroke-width=".8" d="M467.4 296.3l-1.3-3.7s-3.6-1.4-3.9-3.4c-.6-5-2.5-7-5.2-7.7a6 6 0 00-4.6.4c-.8 1.2-4.9 1.2-7.2 1.3-2.3.1-2.3-1-2.3-1a2.9 2.9 0 01-2.5-1.3c-1.2-2.3-2-3.2-2.6-3.4 3 0 5.2-1.4 8.5-4.9 3.7-3.8 6.3-2.3 6.3-2.3-1.8 3.5.6 3.2.6 3.2 4.8-2.4.6-8.7-.9-8.4-1.4.3-1.8-.7-1.8-.7 0 1.1-1.7 1.6-1.7 1.6 1.3-7.1-3-9-3-9-.6.6-1 2-1 2-1.1 4.2-5 3.6-9.4 1.5s-16.1 2.2-19.8 3.6c-3.6 1.5-10.3 3.8-16.3.4s-7.5-2.8-9.9-2.1c-2.4.6-6.6 1.6-8.1.8a8.5 8.5 0 00-3.4-.9c.5-.2-.2-1.2-.2-1.2-1.8-2.5.2-4 .2-4s-3.3 1-2 6.8l.6.9s.5 1.8 1.5 2.3v.4s.8-.4 1 .8c.4 1.2 1.6.1 2.2-.9 0 0-1 5.3 5.6 6.6 0 0-.7-.8-.4-1.4.3-.5-.8-1-.7-1.8 0-.8-1.7-1.2-.3-1.8 1.4-.7 2-2 5-.2 2.8 1.7 5.1 1.3 5.1 1.3s-1.8-3.6-.8-3.6 5.4 5.5 7.6 5.2c2.2-.3 6.4-2.7 8.5-1.8 0 0 .2-1.1 8.2-2.5 8-1.4 18-5.4 21.7-1.9 0 0 .4 2.8 2 3.5 0 0-.3 5.8-10.3 2.6l-3.6-1s-.5-1.7-19.5 3.2c0 0-1 .4-1.8 1-.7.5-1.7-.4-5.5 1s-17.7 6-26.3 4.3c-1.9-.5-3.7-.3-3.7-.5-.1-.4 1 0 1 0-.7-.7-1-.8-1-.8-7.2-.7-5.9-4-5.9-4l.4 1c1.2-1.5-.5-5.2-.5-5.2a3.8 3.8 0 00-.1-.3l.6-.4c3.5-3 7.5-3.5 7.5-3.5-2.4-3-7.4-1.4-7.4-1.4 0-3.5-1.4-7.6-1.4-7.6-5 .5-7.8 4.6-7.8 4.6-.1-3.6-4.8-5.7-4.8-5.7 1.7 2 .6 7 .6 7l.2.2h-.4l-.1 1h-.2s-1.7.6-3.8 5.2c0 0-.2 1-1 2v-.3s-2.2 3-7.4 0c0 0-7-4.2-9.5-4-2.5.1-4.1 1.3-4 2 0 0-5.6-.5-7.5 2.7 0 0-4.3 1.6-.6 5 0 0 .4 1.6 1.5 2.4 0 0-.2-3.2.6-2.2 0 0 .2.3.6.5 0 .4.4 1.7 1.2 2.3l.5-.2a9 9 0 01.5-2.2h.2l-.1.1 1 1.5 1.1-.6c.6 0 1.3.5 1.3.5l1.3-1v-.1c1.3.2 1.6-2.3 1.6-2.3a4 4 0 003.2-.6c.6 2 5.2 4.3 5.2 4.3h.2l-.6.4c2 1.5 6 1.1 6 1.1-1.6.7-1.4 3.7-1.4 3.7-1 .4-1 1.3-1 1.3 3.1 1.3 5.3.3 5.3.3.2 1 0 1.1 0 1.1-1.3 2.7-1.9 5.4-1.9 5.4v.2s-5.6 2-8 4.7c0 0-.3-.8-1-.8s-2.9-1.8-3.9-2c-1-.4-2.5.2-2.9-.2-.3-.5-.1-3.6-.8-4.1l-.7-2c-.5 1-2.4.8-2.4.8a21.9 21.9 0 00-.8.6l-.8-.1c-.2 0-.4.6-.6 1.1a12 12 0 00-.2.2v-.6c-.4.3-1.2-.1-1.5-.1l-.5.9-1.8.2c-.3.1 0 2.5 0 2.5-2.3 1.3-1.2 3.1-1.2 3.1 1.2 6 11.5 3.4 12.3 4.1.7.8 2.5 1 3.5 1 .9 0 2 2.2 3.4 2.4 1.3.3 0-1.7 6-3.2 6.2-1.5 8.2-4 8.2-4 2-.3 2.5-2.7 2.6-3.6l.1 1.5c.3 2-1.1 2.8-1.1 2.8l5.2-1.6c2.1-.5 1.9-2.3 1.9-2.3 2 5.7 5.6 6 5.6 6 .8-2.1.7-2.8.7-2.8h1.6c0-1.3-1-2.2-1.6-2.6l2.5 1.6 1-.2c0 .9 1.4 1.7 1.4 1.7l.2-1.2c1.2 1.6 3.4 1 3.4 1a7.3 7.3 0 00-.2-.8c4.7 2.9 12.1-.8 12.1-.8 2 .4 2.3-.8 2.3-.8 2.3.3 2.8-1.2 2.8-1.2 5.4-.5 9.2-4.3 9.2-4.3 2.6-.2 2.7-2 2.7-2s2.7.4 5.2-2.8c6-8.5 14.8-4 14.8-4l-5 .3c-13.5-.1-8 9-8 9h.9c1.3.2 5.6 3.7 4 6.3v.1c-2.8 3.7-7.9.2-9.3-3-1.5-3.2-4.4-2.5-4.4-2.5s-7.6 1.3-4.5 7.3h.1c.1 1.5 1 3.2 3.7 4.9 1.5 2.1 6.5 2.3 10.2 1.5 1.7-.3 10.7-4.2 10.7-4.2.7-2 3-1.5 5-4.3 2-2.9-3-3.9-4-5.4-1.1-1.6.3-1.3.3-1.3 4.3 2.4 4.7-5.2 4.7-5.2a6.6 6.6 0 004.3 5.6c2.4-2.4.6-7.3.6-7.3 5.7 10.2 9.2 8.6 9.2 8.6-3.1-2-1.6-4.5-1.6-4.5 2.8 10.8 14 1.4 14 1.4-.5 1.6 0 2.5 1 3.5s2.2 1.4 1.7 3.3c-.6 1.8-5.8 1.4-5.8 1.4s-5.1-.2-4.6 4c.2 1 3.6 1.4 4.9 1.2 0 0-.5 0 1.3.3l2.2.1c2.2 0 4.5-.4 4.5-.4 3-.7 2.5-1.7 2.5-1.7 4.5-.8 5-3.8 5-3.8z"/>
+      <path id="path2012" d="M319 277.6s.2-.6.7-.7c.3 0 .8.2 1.2.8l.2-.2s-1.2-1.8-.7-3c.2-.5.8-1 1.6-1v-.4c-1 .2-1.6.6-1.9 1.3a2 2 0 00-.1.8c0 .6.2 1.2.4 1.6a1.1 1.1 0 00-.8-.2c-.4.1-.7.4-.8.6zm141 23.9c-3 .5-7.6.7-8-.2 0-.1 0-.8 2.5-2.4l-.3-.5c-2 1.4-3 2.4-2.6 3.1.6 1.7 7.2.7 8.5.5zm-58.4 1.8c-.7-1.1-.4-2.6 1-4.4l-.5-.3c-1.5 2-1.8 3.7-1 5z"/>
+      <path id="path2014" d="M397.5 298.7c0 1.8 1.3 3.5 3.8 5l.3-.4c-2.3-1.4-3.5-3-3.6-4.7 0-2.5 2.6-4.4 2.6-4.5l-.3-.4c-.1 0-3 2.1-2.8 5zm52 .6c-.8 1.3-.5 2.8-.5 2.8h.5s-.2-1.4.5-2.5a3 3 0 012-1.2v-.5c-1.1.2-2 .7-2.5 1.4zM330.3 276h-.2v.1s-.3 1.6-1 2a.8.8 0 01-.7.1l-1.2-.7c-.3-.3-.5-.4-.8-.3a1.8 1.8 0 01-.4-1.3c.1-.8.6-1.5 1.5-2.1l-.1-.3c-1 .7-1.6 1.5-1.7 2.3-.1 1 .4 1.6.5 1.7h.1c.3-.1.4 0 .7.2l1.3.8h1c.7-.5 1-1.9 1-2.2 3.3.7 6-3.3 6-3.4l-.2-.2s-2.7 4-5.8 3.3z"/>
+      <path id="path2016" d="M322.5 275.4c-.2.6 0 1.3.3 1.9.4.6.7.9 1.1 1 .5 0 .8-.3 1.1-.6.2-.3.5-.5.6-.4l.3.2.3-.2-.5-.3c-.3 0-.6.2-.9.4-.3.3-.6.6-.9.5-.2 0-.5-.3-.8-.8a2.2 2.2 0 01-.3-1.7c.3-1.4 2-2.5 2-2.5v-.2c-.1 0-2 1-2.3 2.7zM318 296c.2-.6.6-1 1.3-1.4-.1 0 .7.7 1.4.6l.4-.2c.2.1 1.4 1.2 1.4 2.6 0 .3 0 .6-.2.9l.3.1c1-2-1.3-4-1.3-4h-.2l-.5.3c-.5 0-1.2-.6-1.3-.6-.9.4-1.4 1-1.6 1.6zm10.4-5.3c-.7 0-2.6.4-3.2 1.3-.2.4-.2.8 0 1.2l.2.7c.6 1.5 1.2 3.1 1.8 3.5l.2-.3c-.6-.3-1.2-2-1.7-3.4l-.3-.6a1 1 0 010-.9c.6-.8 2.2-1.2 3-1.2.4 0 .5 1.5.6 2.5h.3c0-1.5-.2-2.9-1-2.8z"/>
+      <path id="path2018" d="M323.3 292.2a1 1 0 00-.3.9c0 .1.1 4 2 4.8l.1-.3c-1.7-.7-1.8-4.5-1.8-4.5s-.1-.4.2-.7c.2-.2.8-.2 1.6 0v-.3c-.8-.3-1.5-.2-1.8.1z"/>
+      <path id="path2020" d="M321.8 292.5c-.8.6-.8 2.2-.8 2.3h.3s0-1.6.7-2c.2-.2.6-.2 1 0v-.3c-.4-.2-.9-.2-1.2 0z"/>
+      <g id="g2060" transform="translate(-207.6 158.4) scale(.66486)">
+        <path id="path2022" d="M862.3 169.5s1.3 3 1.3 5.3c0 .4-.2.7-.3 1l-.5-1.3-.3 1s-.6 1.4.3 2.9c1.2 2 4.2 3.2 9 3.7v.1a.8.8 0 00-.4.1l-.2.2v.4c.2.5.7.5 1.8.5l.7.1.6.2-.1-.1c1 0 2.3.3 3.6.8l-1 .2 1.1.5c.1 0 8.7 3.5 12.2 6.3-1 .9-5.3 4-12.7 2.2l-1.2-.3.8 1s4.9 5.6 5.9 9c-1.7 0-8.2 0-10.5-2l-.5.5s3 4.6 3.8 8.1c-1 .2-3 .3-4.3-1.4l-.6-.7-.3 2c-.6-.5-1.4-1.1-1.4-1.9v-.4l-1.8.3-3.8-2.3a8 8 0 00-.6-.4l-.4.7.6.3c.8.6 2.2 1.7 2.3 3.3H863v.5c0 .3 0 1.4-.9 3.7-1.1-.2-5.3-1.7-7.8-8.8l-.8.2v.2c0 .7-.2 2.3-2.4 2.9l-6.5 2a4.5 4.5 0 00.8-2.8v-.8a20.3 20.3 0 01-.2-2.6c0-1.5.3-2.4 1.4-3l-.4-.8c-.1 0-9.6 3.9-14.3 2.3.2-1 1-4.2 2.6-7.6l-.2.2c.3-.2.6-.6.3-2.2v-.5l-.5.2s-3 1.4-7.4-.2c0-.4.3-1 1.2-1.4l.3-.1v-.8c0-1.2.1-4 1.8-4.6l-.2-.8s-5.1.4-8.2-1.3a11 11 0 014.5-1.9h.3v-.4a6 6 0 00-.5-2.3c1.2.4 2.6.7 3.1.3l.2-.1-.2-3.1h-.8l.1 2.6-3-.7-1.2-.4.8 1a4 4 0 01.7 2.4 12.7 12.7 0 00-5 2.3l-.5.4.5.3c2.4 1.6 6.1 1.8 8 1.7a8.4 8.4 0 00-1.3 4.5v.4a3.1 3.1 0 00-1.5 2.2v.3l.2.1a11 11 0 007.9.5v.9c-2 4.2-3 8.3-3 8.3v.4h.3c3.9 1.6 10.7-.5 13.8-1.6-.4.7-.7 1.5-.7 2.5a22.1 22.1 0 00.3 3.4c0 2.3-1.5 3.2-1.6 3.2l.3.8 8-2.4c1.8-.5 2.5-1.6 2.8-2.5 3.1 7.4 8 8 8.3 8.1h.3l.1-.3a14 14 0 001-4 439.6 439.6 0 002.4-.1v-.5c0-.7-.1-1.3-.4-1.8l1.4.8 1.3-.2c.3 1.3 1.9 2.4 2.1 2.5l.5.3.3-1.7c2 1.7 4.7 1.2 4.9 1.2l.3-.1v-.4c-.4-2.7-2.2-5.9-3.3-7.6 3.5 1.6 9.9 1.5 10.2 1.5h.4v-.5a30 30 0 00-5.6-9c8.2 1.5 12.6-2.8 12.8-3l.3-.3-.4-.2a53.8 53.8 0 00-11.6-6.3l.9-.2-1-.5a12.8 12.8 0 00-5.8-1.4c-1-1.2-1.5-1.3-1.6-1.4-5.6-.6-7.6-2.1-8.4-3.3v-.3l.2-.3c.5-.7.7-1.6.7-2.6 0-2.6-1.3-5.5-1.3-5.6l-.8.3z"/>
+        <path id="path2024" d="M836.8 167.9s-.6 3-3.2 4.5c-2 1-4.5 1-7.6-.3l-.4-.1v.4a5 5 0 002 3.2c1.3 1 3.3 1.4 5.9 1.2-.9 1-3.6 4.4-3.6 7.8v.5c.4.2 4.6 1.4 6.6-1.1 0 1 .4 4.5 1.7 5.8.8.8 1 1.8 1 2.7 0 .8-.2 1.4-.2 1.4l-.2.6.5-.4c.2-.1 4.1-3 5.3-6.7 0 0 .7-1 1.9-1.3v.5c0 1.5.6 4.1 4.8 5.7l.3.1v-.3a7.1 7.1 0 010-.7c0-1.1 0-3 1.1-4a2.8 2.8 0 00.6-3.3c.9.2 2.9.9 3.7 2.4 1.2 2.2 5.3.4 5.5.4l-.1-.5s-1.8.4-2.9-.3a2.1 2.1 0 01-.8-1.5l-.2-2.4c0-1-.2-1.7-.7-2.2.5 0 1.6 0 2 1 .8 1.6 3.3 1.7 3.4 1.7l.9.1-.7-.5s-2.2-1.4-1.8-3.3l.3-1.4c.6-2.5 1.6-6.6.7-9.2l-.4.2c.2.6.3 1.4.3 2.2 0 2.2-.7 5-1 6.7l-.4 1.4a2.6 2.6 0 000 .5c0 1.3.7 2.2 1.3 2.7-.7-.1-1.7-.5-2-1.3-.7-1.4-2.3-1.4-3-1.3l-.6.1.4.4c.7.4.8 1 .8 2.3l.2 2.3c.1.8.5 1.4 1 1.8.6.4 1.2.4 1.7.5-1.2.3-2.9.5-3.5-.6-1.1-2.2-4.3-2.7-4.4-2.8h-.5l.2.4s.4.6.4 1.4c0 .5-.2 1.2-.7 1.7-1.1 1.1-1.3 3.2-1.3 4.3v.4c-3.6-1.5-4.2-3.7-4.2-5v-1l.2-.3h-.4a3.5 3.5 0 00-2.5 1.8 15 15 0 01-4.7 6.2 6.9 6.9 0 00.1-1c0-.9-.2-2-1-2.9-1.5-1.4-1.7-6-1.7-6v-.8l-.4.7c-1.6 2.8-6.2 1.4-6.3 1.4-.2-3.5 4-8.1 4-8.2l.4-.4h-.6c-2.7.4-4.8 0-6.2-1a4.6 4.6 0 01-1.6-2.5c3 1.1 5.6 1.2 7.6.1a7.4 7.4 0 003.4-4.8c3-6.6 5.5-7.7 5.5-7.7l-.1-.4c-.2 0-2.8 1-5.8 8z"/>
+        <path id="path2026" d="M843.5 158h-.2l-2.4 3.3h.7a31 31 0 0119.7 9.2l.3.3 2.3-2.5-.2-.3c-6.5-10.2-20.1-10-20.3-10zm.2.9c1.6 0 13.2.3 19.2 9.3l-1.3 1.4a33 33 0 00-19.3-8.9 631.2 631.2 0 011.4-1.8z"/>
+        <path id="path2028" d="M841.6 164.8a11 11 0 00-2.1 4.8l.1.4a7.3 7.3 0 00-2 5.5c0 1.3.2 2.6.6 3.8l.3.7c1.2 3.4 2.3 6.4 7.8 4.6 5.2-1.6 5.4-2 6.7-4.2l.4-.5c.7-1.2 1.5-1.4 2.3-1.7 1-.3 2-.6 3-2.4l.8-1.3c1-1.3 2.2-3 2.3-5h-.4a9.8 9.8 0 01-2.2 4.7l-1 1.4a3.6 3.6 0 01-2.6 2.2 3.9 3.9 0 00-2.6 1.8l-.4.6c-1.2 2.1-1.4 2.4-6.5 4-5 1.6-6-.9-7.2-4.4l-.3-.7c-1.4-3.8-.3-7.6 1.6-9l.6-.5-.9.1v-.1c0-.7.7-2.6 2-4.5 1.2-1.6 4-3.1 4-3.2l-.2-.4c-.2.1-2.9 1.7-4.1 3.3z"/>
+        <path id="path2030" d="M839.2 178.7c.9.6 2.1.5 3.7 0 0 .5 0 1.7 1 2.5 1.2 1 3 1.2 5.5.6v-.5c-2.4.6-4.2.4-5.2-.5a3 3 0 01-.9-2.4v-.4l-.3.2c-1.5.6-2.7.7-3.6 0-1.5-1-1.4-3.7-1.4-3.7h-.4s-.2 3 1.6 4.2z"/>
+        <path id="path2032" d="M842 175c-.6.2-.8.7-.8 1.1v.3c.2 1.2 1.5 2 2.6 2.3 1.2.3 2.6.4 3.1-.3.2-.3.4-.8 0-1.7a3.7 3.7 0 00-4.8-1.7zm2 3.3c-1-.3-2.2-1-2.3-2 0 0-.1-.7.5-.9a3.3 3.3 0 014.2 1.6c.3.4.3.8.1 1-.3.5-1.4.6-2.5.3zm-2-3.3zm1.6 6c-.3 2.5 0 2.6.1 2.6h.2l.2-.1 1.4-2-1.8-.8v.3zm.5.4l.7.3-.8 1.1v-1.4zm-4.2-2.4l-.1 2.3 2-2.4-2-.2v.3zm.4.2h.6l-.6.8v-.8z"/>
+        <path id="path2034" d="M838.5 178.2s1.5 2.9 1.8 4c.1.6 1 1.4 2 1.7 1 .4 2 .4 2.7-.1l1.3-1.1c.4-.5.6-.6 1-.5v-.5c-.6 0-.9.2-1.3.6l-1.3 1c-.8.6-1.7.4-2.2.2-1-.3-1.7-1-1.8-1.5-.3-1-1.7-3.9-1.8-4l-.4.2zm2-8.6a5 5 0 00-2.4 2.8l.4.1s.7-1.8 2.1-2.5a2.9 2.9 0 012.4 0l.1-.4c-1-.4-1.8-.4-2.7 0zm10.8 5.2c.2 0 3.2 2.4 1.5 5.2l.3.3c2-3.3-1.5-5.9-1.5-6l-.3.5zm-9.2.4s-.5 1.7 2 2.3c0 0-2.3 0-2.5-.6-.1-.6 0-1.9.5-1.7zm7.5 2c0 .2-.2.3-.3.3a.3.3 0 01-.3-.2c0-.2.1-.3.3-.3.1 0 .3.1.3.3zm.2 1.2c0 .1 0 .2-.2.2a.3.3 0 01-.3-.2.3.3 0 01.3-.3c.1 0 .2.1.2.3z"/>
+        <circle id="circle2036" cx="848" cy="177.8" r=".3"/>
+        <path id="path2038" d="M848.8 179.4a.3.3 0 11-.6 0c0-.1.1-.2.3-.2l.3.2zm-7.1-7.3a.3.3 0 01-.6 0 .3.3 0 01.5 0z"/>
+        <circle id="circle2040" cx="841.6" cy="173.2" r=".3"/>
+        <circle id="circle2042" cx="840.1" cy="172.7" r=".3"/>
+        <path id="path2044" d="M840.8 174.3a.3.3 0 01-.2.3.3.3 0 010-.6.3.3 0 01.2.3zm4.8-9.6s3.5 2.2.1 6.3c0 0 1.7-1.3 1.8-3.4.2-2.1-1.2-3.8-2-2.9zm13.5 5.9c-1.2.6-2.8-.5-3.6-1.5-.8-1-2.5-1.3-3.6.6-1 1.8-2.5 2.5-2.5 2.5s1.5-.8 3-2.5c1.5-1.6 2.4-.3 3.9.5 1.4.8 1.7 1 2.7.5v-.1z"/>
+        <path id="path2046" d="M858.8 170.9a1.7 1.7 0 01-2.2-.1c-1-.8-1.7-1.8-2.8-1.2-1.2.6-3.3 2.2-3.3 2.2s3.5-2.4 4.2-1.8c.6.5 2.2 1.8 3.1 1.4l1-.5z"/>
+        <path id="path2048" d="M856.1 172.3c-1.1-.8-2.2 1-3.1.8-1-.2-1.7-1.8-1.7-1.8s.8 1.6 2 1.3c1.3-.4 2.1-1.2 2.9-.6.7.6-.1.3-.1.3z"/>
+        <path id="path2050" d="M854.4 172.6a2 2 0 01-2.4-1.9s.7 1.8 2.6 1.5l-.2.4z"/>
+        <path id="path2052" d="M854.3 171.2c.1.5.1.8-.5.8s-1-.2-1-.8c0-.5 1.4-.4 1.5 0zm-7.8-3a.7.7 0 01-.7.6c-.4 0-.5-.2-.5-.6s0-.7.5-.7.7.3.7.7z"/>
+        <path id="path2054" d="M844 165.7s3.8 0 2 4.7c0 0 1.4-2.3.5-4-1-1.6-2.3-1.2-2.3-1.2s-.4.3-.2.5z"/>
+        <path id="path2056" d="M844 167.6c0 1 .6 1.9 1.8 2.9l.3-.4c-1.1-.9-1.7-1.7-1.7-2.5s.6-1.3.6-1.3l-.3-.3s-.7.6-.8 1.6z"/>
+        <path id="path2058" d="M844.8 168.4c.1.5.6 1 1.2 1.2l.2-.4c-.5-.2-.9-.6-1-1-.2-.8.4-1.7.4-1.7l-.4-.3s-.7 1.2-.4 2.2zm5.1 2.6s.7 1.5-.3 3.1l-1 1.6s1.2-2.3.7-3.2c-.4-1 .6-1.5.6-1.5zm14.6 15.8c3.8.7 12.5 7.5 12.5 7.5l.5-.6c-.3-.3-8.9-7-12.9-7.7l-.2.8zm3.4 9.5c.2 3.5 4 5.6 4 5.7l.5-.7s-3.5-2-3.7-5h-.8zm-9.3.8c0 3.8 3.6 8.4 3.8 8.6l.6-.5s-3.6-4.6-3.6-8.1h-.8zm-12.1.4c.6 1.3.6 1.9.4 2.2-.2.4-.6.4-.6.4l.1.8c.3 0 .9-.2 1.2-.8.4-.7.3-1.7-.4-3l-.7.4z"/>
+      </g>
+      <g id="g2070" fill="#fff" stroke="#000" stroke-width=".2">
+        <path id="path2062" d="M319 277.1s0 1.7 1.4 2.7c0 0-.2-1.8.2-2.6 0 0-.7-.8-1.7 0zm2.6 1.1s.3 1.5 1.2 2.2l.5-.1s.3-2 .6-2.2c.3-.2-1.3.7-2.3.1z"/>
+        <path id="path2064" d="M323.9 278.1l1 1.6 1.2-.6-.3-1.9s-.7-.2-2 1z"/>
+        <path id="path2066" d="M328.6 278.4l-1.3 1.1s-.7-.5-1.3-.4l.3-1.7s1-.7 2.3 1zm-9.4 16s-.2-2.3.1-2.5c0 0 1 .3 1.3 0 0 0 .6 1.9.4 2.6-.1.8-1 .5-1.8 0zm6-2.4s0-2 .3-2.3c0 0 2 .3 2.4-.7l.7 1.9s-2.2-.2-3.4 1z"/>
+        <path id="path2068" d="M323.1 292.4s.4-2.1.8-2.2c0 0 1 .3 1.3 0v2.5s0-1.1-2-.3zm-2.2.3s.4-1.9.7-1.9c.3 0 1.1.5 1.5.2v1.4s-1.7-.4-2 2l-.2-1.7z"/>
+      </g>
+    </g>
+    <g id="g2112" fill="#00a651" stroke="#000" stroke-width=".8">
+      <path id="path2074" stroke-width=".5" d="M351 331.2s5.3 5 4 9.2c0 0 3.3-7.3-.3-9.4-3.7-2.2-3.8-.5-3.7.2z"/>
+      <path id="path2076" fill="#964b36" stroke-width=".5" d="M344.4 336s-1.4 1.9.1 3.2c0 0-1.6 2.4-.4 4.4 0 0-1 2.1-.7 4.4 0 0-.9 3.5 1 5.1 0 0 2 1 2.9.2 0 0 1.7-2.7.6-5.4 0 0 1.3-2.3-.1-5.1 0 0 .4-1.7-.8-3.6 0 0 .8-1.2.1-2.2 0 0-2.5-2.6-2.7-1z"/>
+      <path id="path2078" stroke-width=".5" d="M345.9 329.8s-6.3-12-10.7-12.5c-4.3-.5-4.6-4.8-4.6-4.8s.5 2 4 2 10.3 5 11 8.7c.8 3.8 1.5 3.3 1.5 3.3l-1.2 3.3z"/>
+      <path id="path2080" stroke-width=".5" d="M345.9 329s2.3-15.2 12.2-15.5 6.6.8 9-.8c0 0-6.7 3.5-10.8 4-4.1.5-7.5 8.5-7.4 10 .1 1.5-2.2 4.4-3.4 3.4-1.1-1 .4-1.1.4-1.1z"/>
+      <path id="path2082" stroke-width=".5" d="M348.1 334.6s2.3-6 6.2-4c0 0-3-5.8-8.4-.8 0 0 2.4 3.3 2.3 4.8zm-7.5-6S344 342 339 346c0 0 .1-6.9-2.9-11s3-8.6 4.6-6.5z"/>
+      <path id="path2084" stroke-width=".5" d="M341 331s6 5.6 6.3 7.5c.4 1.9 1.7-5.6-1-7.8a13.8 13.8 0 00-5.8-2.5l.5 2.8z"/>
+      <path id="path2086" fill="#964b36" stroke-width=".5" d="M330.1 345.8s.6 2.3 2 2.8c0 0 .1 1.7 1.4 2.3 0 0-.7 1.4.5 2.3 0 0-.3 3 .8 3.6 0 0 2.6-.2 3.5-1 0 0 .6-1.9-.9-3.8 0 0 .2-1.8-1.2-2.8 0 0 .4-2.5-1.4-3.4 0 0-.3-2-1.4-3 0 0-2.3 3.2-3.3 3z"/>
+      <path id="path2088" stroke-width=".5" d="M333 342.9s-7.7-2.9-12 1.2c0 0 6.6.9 7.5 2.2.8 1.3 4.9-2.1 4.6-3.4z"/>
+      <path id="path2090" stroke-width=".5" d="M330.7 347.7l-1.4-1.1c-.8-.5-7.3-2.3-8.2 4 0 0-2.3-6.2 1.1-7 3.4-1 6.2 1 8.5 4m-5.1-12.7s2.4 5 3.3 5.4c.8.2 1.5-.7 1.5-.7s-3.2-4.6-4.8-4.7zm-1.8-8s-2-6.6-4.3-4.8c-2.4 1.7-1.8 6.5-1.8 6.5s-4.8-4.9-2-8.8c2.8-3.9 8.2.4 8.2 7.2z"/>
+      <path id="path2092" fill="#964b36" stroke-width=".5" d="M329.2 340.6s0 1.3 1 1.6c.8.4 2.4 1 2.4.3s-1.2-3.6-1.7-3.3c-.5.4-1.4.4-1.7 1.4z"/>
+      <path id="path2094" stroke-width=".5" d="M327.7 332.9s-.2-5.8 3.5-8c0 0 .8.2 1.2-1 0 0-3 7.3-2.2 11v.5"/>
+      <path id="path2096" stroke-width=".5" d="M328.5 325.8s6.8-14 15-9.1c0 0-8.6 1.7-11.7 7.9l-3.2 4.6-.1-3.4z"/>
+      <path id="path2098" stroke-width=".5" d="M324.9 331s-2-9.4-3.3-10.7c-1.3-1.2-3.4-2.6-5.9-.5 0 0 4.4-3.9 9-.6 4.7 3.3 3.7 8.4 3.7 8.4l-.5 6.5-3.2-2.9"/>
+      <path id="path2100" stroke-width=".5" d="M332.1 342.1s-8.3-15.6-13.6-4.5c0 0-1 2.9 0 4 0 0-3-2.2-1.6-7.8 1.4-5.4 10.6-3 13.2 1.6 2.6 4.5 3.4 6.7 3 7-.4.2-1-.3-1-.3zm23.3 4.5s6-12.4 9.6-6.7c0 0 1 2.7-.6 3.9 0 0-2.3-3-4.5.6-2 3.5-1.2 3.2-1.2 3.2s-2.3.7-3.3-1z"/>
+      <path id="path2102" stroke-width=".5" d="M364.4 343.8s3.3 1.7 2.2 5.2c0 0 4.4-8.4-1.7-9.1 0 0 1.2 2.6-.4 3.9zm.4-8.6s8 2.3 8.2 5.7c0 0 1.3-6.5-3.2-8.5 0 0-5.4.8-5 2.8z"/>
+      <path id="path2104" stroke-width=".5" d="M368.3 324.8c3.4-6.6 7.7 2.2 7.7 2.2s1.5-7-2.8-8.2-7 14.7-7 14.7l-5 1.1s1.4-13.9 8.9-15.2l.9.2"/>
+      <path id="path2106" stroke-width=".5" d="M362.3 328.8s-4.8-9.7-8-10.7c-3.3-1 1.8-2.5 3.8-.7 2 2 5.7 4.3 5.3 9.3l-1 2.1zm-4.9 13.4s1.4-6.6 5.2-8.6c3.7-2 7.2-1.3 7.2-1.3s-4.5 1-5.2 3.3c-.8 2.3-2 2.4-2 2.4l-5.2 4.2z"/>
+      <path id="path2108" fill="#964b36" stroke-width=".5" d="M355.4 346.6s-2.1 4-1.6 4.7c0 0-2.3 3.2-1.4 4.9 0 0 2.3 1.7 3.3 1 0 0 2.6-3.7 1.9-5.7 0 0 1.7-2.4 1-3.9 0 0-2.5.2-3.2-1z"/>
+      <path id="path2110" fill="#000" stroke="none" d="M344.4 339.5c.1 0 1.4.7 2.3.4l.6-.5-.5-.3c-.3.6-1.7.1-2.2-.1l-.2.5zm-.2 3.9l-.1.5c.1 0 2.6.5 3.9-.6l-.4-.4c-1 1-3.4.5-3.4.5zm-.7 4.4l-.3.4s3 2.2 5-.1l-.5-.4c-1.6 2-4 .2-4.1 0zm-11.4.6v.3c.2 0 2.7-1 2.9-2.9h-.3c-.2 1.7-2.6 2.6-2.6 2.6zm1.4 2.3v.3c.1 0 2.4-.2 2.8-1.8h-.3c-.3 1.4-2.5 1.5-2.5 1.5zm.5 2.4v.3s2.7.1 3.5-1.3l-.2-.2c-.8 1.3-3.3 1.2-3.3 1.2zm19.6-1.6s1.2 1.1 2.5 1a2.3 2.3 0 001.7-.8l-.4-.3a2 2 0 01-1.3.6 3 3 0 01-2.1-1l-.4.5z"/>
+    </g>
+    <g id="g2118" fill="#964b36" stroke="#000" stroke-width=".3">
+      <path id="path2114" d="M431.4 360.6a1.1 1.1 0 00-.4.3l.4-.3zm9.2-2.3c0-.2-.1-.1-.2-.2l-.4-.8h-.3l-.7-1.4a.4.4 0 000-.2 7.6 7.6 0 000-.4c-.1-.1-.2 0-.3-.2v-.7l-.1-.4v-.6a2 2 0 000-.4c-.2-.4-.4-.7-.4-1.2l.1-1-.2-1 .2-.9v-5.3c-.2-.4-.1-.7-.2-1v-2l-.1 2.5c0-2.2-.2-4.3-.2-4.3l-3.3-1.5s-.3 6.1-.2 7c0 .8.3 6.7.2 7.4-.2.7-.5 4.2-.5 4.2s-1.6 1.2-2.3 2.5c-.6 1.2-.5 1.7-.7 1.7l1.6-.3-1.2.8a.7.7 0 01.7.1l.3.2.2-.2.7.4.4-.3.2-.4h1.1c.3 0 .5-.4.8-.7.3-.2.5-.3.8-.3.3 0 .6.3.9.4.2 0 .4 0 .6-.3l.3-.6h1.9l.3.2.1-.4v-.4z"/>
+      <path id="path2116" d="M433.9 360.5l.5.1.1.2a.2.2 0 00.2 0l.3.1h.3l.4.1c.2.1.4 0 .6-.1.2-.2.3 0 .5.2s.2.1.3 0a1.7 1.7 0 010-.1l.3-.1.4-.1.3-.2.4.2a.8.8 0 01.2.1c.2-.3.6-.4.8-.6h1.3c.1-.1.1-.2.3-.2l.7.4c.1 0 .7.2.6-.3 0-.4-.4-.1-.5-.4v-.6a.7.7 0 00-.4-.4h-.3l-.2-.5c-.1 0-.2.1-.4 0l-.2-.2c-.3-.3-.5.2-.7.1-.2 0-.4-.5-.6-.7 0-.1-.3-.5-.4-.4-.2.1 0 .5-.1.7-.1.1-.4 0-.4 0-.2 0-.2 0-.3.3-.3.3-.4.6-.7.6l-.5-.2c-.1.1-.2.3-.4.3a1 1 0 01-.4 0c-.2 0-.3-.3-.4-.4a.1.1 0 00-.2 0l-.2-.1c-.2-.1-.2 0-.3.2v.5l-.4.4-.4.1c-.1 0-.3.3-.4 0-.1-.4.3-1.1-.2-1 0 0-.2 0-.3.3v.6c0 .3-.6.8-.5 1 0 .3.3 0 .4 0 .1.1 0 .3.2.4.1.3.7-.4.7 0m-2.1-2.7v-.1l-.5-.2-.4.4c-.3.5-.2 1-.7 1h-.4c-.2.1 0 .5 0 .7v.3c-.1 0-.2 0-.3.2 0 .4.3.3.4.3h1l.6-.2.5-.1a2.2 2.2 0 00.2-.5v-.4c0-.2.2-.1.3-.4 0-.7-.7-.2-.6-.9"/>
+    </g>
+    <g id="g2128" stroke="#000" stroke-width=".5">
+      <path id="path2120" d="M440.2 338.7c0 1-.6 1.7-1.4 1.7-.8 0-1.4-.8-1.4-1.7 0-.9.6-1.6 1.4-1.6.8 0 1.4.7 1.4 1.6zm-4.5-2c0 1-.7 1.6-1.4 1.6-.8 0-1.4-.7-1.4-1.6 0-.9.6-1.6 1.4-1.6.7 0 1.4.7 1.4 1.6z"/>
+      <path id="path2122" d="M438 337.3c0 1-.6 1.7-1.3 1.7-.8 0-1.4-.8-1.4-1.7 0-.9.6-1.6 1.4-1.6.7 0 1.3.7 1.3 1.6z"/>
+      <path id="path2124" d="M435.7 338.8c0 1-.6 1.7-1.3 1.7-.8 0-1.4-.8-1.4-1.7 0-.9.6-1.6 1.4-1.6.7 0 1.3.7 1.3 1.6z"/>
+      <path id="path2126" d="M437.9 340c0 1-.6 1.7-1.4 1.7-.8 0-1.4-.7-1.4-1.6 0-1 .6-1.7 1.4-1.7.8 0 1.4.8 1.4 1.7z"/>
+    </g>
+    <path id="path2130" fill="#00a651" stroke="#000" stroke-width=".5" d="M438.5 322.3s14-19.4 28.9.8c0 0 0 2-1.3 4l-.4-1.5-.8.2-.3-1-1.6-.1.5-2.1-1.8 1.3.3-1.5-2 2 .2-4.2-2.1 3.6.2-2.5-.7 1.1-.5-1.4-.6 1.4-1-.7v1l-1.8-1.5-.6 2-1-2.1-.2 1.4-.8-1.7-.2 1.9-2.8-1.3.6 1.8-1.4-1 .3 1-2-.4.2 1.1-2-.3.4 1-2.8-.4 1 1.1-.3.5s15.1-5 16.1 13.8l-2.7 1.4.7-1.5-.7-.5-2.3-1.8.6-2.4-.7.3-.2-1.4-.3.3-1-1.4-.2.5-.6-1.7-.6 1.2-.4-2.8-1 1.8-.1-1-.4.6-1.2-1.5-.4 1-.5-.8-.4 1-1.4-1.3v1l-.8-.8-.4.5-2.2-1.1v1l-1.2-1-.4 1s13.7 7.8 9.4 20.4l-.7 1.7-.3-4.3-1.2 2.3.8-5-.8 1-.2-2-1.1 2-.4-2.2-.5.6-.7-3.2-.7 1.4-1-3.7-.7 1.5-.5-3.1-.5 1.9-1.5-2.8-.3 1.1-.8-2.2-.5.7s-2.5 0-3.3-.7c-.8-.6-2.9 3.8-2.9 3.8l.3-2.7-1 1.8v-1.8l-1.5 5.3-.4-3.8-.9 3.3-.4-1-.2 1.4-.5-.5-.5 1.4-.8-.6v2l-.7-1-.7 3-.3-1.2v1.4l-.7-.8-.6 3-.9-1.2v2.1l.3 1.6-1-.5.4 2.7s-4-7.3.7-14.3c4.7-7 11-9 11-9l-.7-.5-.1-.7-3.8 2 .1-1.2-1 .8-.2-1.2-.6 1.1-.2-.5-.8 1.4-.5-2-.7 2.4-.6-1.7-1.3 3.6v-2.7l-1 2.8-.3-3-.8 3.5v-3.2l-1.1 3.2-.8-3-.5 2.9-.7-2.3-.8 3.4-1.1-3-.6 4.5-.8-1.8-.1 3.3-.9-2 .9 4.2-1.1-1.6.3 2.6-1.6-2.8.1 3.4-.8-1.2-.4 1.3s-.4-13 8.5-15.6c8.9-2.5 14.7.8 14.7.8l-3.4-2.8.4-.8H429l.5-1H427l.7-1-2 .3v-.6l-1.2 1 .5-1.1-1.8 1.1v-1.7l-1 1.5-.5-1.5-4 4 1.1-4.2-.7 1-.1-1-1.2 1.8-.2-1.3-.5 1.5-.4-1.7-.9 1.7-.8-1.6-.4 2.1-.7-1-.7 1.5-1-1-.1 1-2-.8.5 1.5-1.5-1.3-.4 2-.9-1-.6 2.5-.6-2.4-.7 2s7.9-20.2 27.7-7c0 0 2.2 2 2.7 3.5s0 .3 0 .3l-.3-14 .8 6 .5-2-.2 3 2-4.3s-2.3 7.3-1.5 10c0 0 1-8.5 4-9.5l-2.8 6 .8-.1-.6 1.2h.8l-1 2-.4 1 .5 1 .7-.7z"/>
+    <path id="path2132" d="M436.5 330.5l.4.3s1.3-1.3 3.3.4l.4-.4c-2.5-2.1-4.1-.3-4.1-.3zm-.6-6.8l-.1.4 1-.4-.7 1.2 1.4-.5-1.8 2.3.5.4 2.8-3.8-1.8.6.8-1.3-1.5.7.3-2h-.5l-.4 2.4z"/>
+    <path id="path2134" d="M433.2 323.8l.6 1.4-1-.4 3 5 .3-.4-.6 1.5.5.2 1.3-3.2-.5-.3-1 1.3-1.7-3 .8.3-.8-1.8 1 .7v-2h-.5v1L433 323l.3.8zm-1.8 6.4l.2.5c.8-.3 1.4-.4 2-.1.5.2.7.8.7.8l.5-.1s-.2-.8-1-1.2c-.7-.3-1.5-.3-2.4.1zm2.2 5.4l-.4-2.8h.5l.5 2.8zm3.9-.4l-.7-2.2.5-.1.7 2.1zm1.4 1.6l-.5-2.2.5-.1.5 2.1z"/>
+    <path id="path2136" fill="#00a651" stroke="#000" stroke-width=".5" d="M332 401s-2.4-1-3.5-.2c-1 .8-1 1.9-1.9 1.8 0 0 3.6.8 4.4-.1l1-1.2m.4.8s-1.6 2-1 3.2c.5 1.2 1.6 1.3 1.4 2.2 0 0 1.5-3.3.8-4.2l-1-1.2m-2.8-5.8s-2.5.8-2.8 2c-.3 1.4.6 2.1-.1 2.7 0 0 3.1-1.8 3.1-3a8.8 8.8 0 00-.1-1.5m1.3.7s1.2-2.3.4-3.4c-.7-1.1-1.9-1-1.7-2 0 0-1 3.6 0 4.4l1 1m-2.1-.9s0-2.5-1.1-3.2c-1.1-.7-2.1-.1-2.4-1 0 0 .6 3.6 1.8 4l1.5.3m4.4 4.2s2.7-.9 3 2c.1 3-.2 2-.2 2s-1.4-3.2-3-3.7l.2-.3z"/>
+    <path id="path2138" d="M332.3 402.1l.3 2.3h.4l-.3-2.3 1-4.9h-.5l-.9 4.9z"/>
+    <path id="path2140" d="M329.9 401.4l-.2.3c1.3.5 3.1-1 3.2-1l-.2-.3s-1.8 1.4-2.8 1zm3.3-2.9l-6-3 .2-.5 6 3z"/>
+    <path id="path2142" d="M328.9 397.8l-.4-.3 1.2-1.3.4.4zm2-.6l-1.2-2.7.5-.3 1.3 2.8zm1.9 3.4v.6c1.6-.1 2 1 2 1l.6-.2c0-.3-.7-1.5-2.6-1.4z"/>
+    <path id="path2144" fill="#fff" stroke="#000" stroke-width=".7" d="M360.5 401.9c2-1.1 2.4-5.1 2.4-5.1-.4 1.4-4.1 2.9-4.1 2.9 2.7-1.7 6-9.4 6-9.4-.9 2.8-8 5-12.7 7.6-4.6 2.6-2.2 10-2.2 10a16 16 0 01-4.2-8.3c-.5-3.5-1.9-4.8-5-5.2-3.2-.4-5 3.1-5 3.1L331 400l4.7.2s3.4 1.1 3.4 3.8c0 2.7-3 13.3 2 19.3 3.4 4.1 16 6.5 16 6.5"/>
+    <path id="path2146" fill="#fff" stroke="#000" stroke-width=".7" d="M351.3 410.1s1-4.8 4-4.6c3.2.2 4.1-3.5 6-4.1 1.8-.6 11.4-3.1 12.5-7.8 0 0-1 7.6-9.7 11.4 0 0 7-2.3 7.9-3.9 0 0-3.2 6.8-10.8 7.9 0 0 7.2-.6 8.2-2.5 0 0-3.2 4.3-8.5 4.8 0 0 4.9 2 6.2.3 0 0-2.7 3.2-6 3.4l.9.3s-3.2 3.7-6.6 1.2c-3.5-2.5-3.6.6-3.6.6"/>
+    <path id="path2148" fill="#fff" stroke="#000" stroke-width=".7" d="M358.4 417.3s4 6.8 4.5 10.4c0 0 7.7 8.6 10.6 9 0 0-1.3.6-3.8-1.5 0 0 2 2.2 2.5 2.3.4 0-1.7-.2-2-.8 0 0 .8 1.3 1.4 1.5l-.6-.2s-1-.1-1.5-.5-.2 1-.2 1-1.2-.3-1.6-.7c-.4-.4.2.9.2.9l-1-.3-.8.5s0 .5-.6.1c-.4-.4-1.3 0-1.3 0s-.7.6-1 .2c-.3-.4-1.5 1.5-1.5 1.5l-5.1-12.3"/>
+    <path id="path2150" d="M363.2 439.6l-6.4-12.3.7-.3 6.4 12.2zm5.6-.9l-11-12.3.6-.5 11 12.3zm2.6-1L358.8 426l.5-.6L372 437z"/>
+    <g id="g2162" transform="translate(-207.6 158.4) scale(.66486)">
+      <path id="path2152" d="M823.4 360.8s-1.2-2.2-2.3-1.3c-1 .8-1.6 1-1.8.9 0 0 1 0 1.7-.5.6-.6 1.6-.3 2.4 1zm-6.6-1l.7 1.4-.8 2.3.6.2.7-2.5-.7-1.6-.5.2z"/>
+      <path id="path2154" d="M823.2 360.5s-1 1-2.2.8l-1.3-.3h1.8c.7 0 1.6-.3 1.7-.5z"/>
+      <path id="path2156" d="M822.9 360.7s-1.2-1.2-2-.8c0 0 1.4-.5 2.2.7l-.2.1z"/>
+      <path id="path2158" d="M822.7 360.5s-1.3.9-2.7 0l-.1-.2h.2s1.7.7 2.6.2z"/>
+      <circle id="circle2160" cx="821.6" cy="360.3" r=".4"/>
+    </g>
+    <path id="path2164" d="M339.4 420.4s-.7 1.3-.3 2c.3.7 1.9 1.1 2 2.1.3 1 .8 1 1.5.8l1-.1s-3.1-1.7-4-4.3l-.2-.5z"/>
+    <g id="g2174" fill="#964b36" stroke="#000" stroke-width=".5">
+      <path id="path2166" stroke-width=".3" d="M438.8 395.6s5.5-7.4 10.5-5.4 8.2 2.9 8.2 2.9.1 5-2.5 5c-2.7 0-5.2-5-7.6-3.6-2.4 1.5-4.4 3.5-4.5 4.2-.2.7-6.4.9-4.1-3z"/>
+      <path id="path2168" d="M417.5 431.2s-1.5 1.6-.8 2c.7.4 2 0 2-.6s-.9-1.6-1.2-1.4z"/>
+      <path id="path2170" d="M416.3 432.8s-2.9-1.7-5.1 2.2c-2.3 3.9-4.2 10.2-5.5 11-1.3.8 12.8-6.2 13-9.1 0 0 1-3.8-.6-3.8-1.4.1-1.5.3-1.8-.4z"/>
+      <path id="path2172" stroke-width=".3" d="M416.7 433.2s-3 .7-3.6 4.9c-.6 4.2-4.7 6.3-5 6.5m49.4-51.6s-4.5 1.6-3.7 4.7"/>
+    </g>
+    <path id="path2176" fill="#fff200" stroke="#000" stroke-width=".3" d="M423.1 402.1s.1-10.6 8.8-10.1c1.7.1.9 2 .9 2s1.9-1.3 2.7.8c0 0 2.8-1.2 3 1.5 0 0 3-.4 2.7 2 0 0 2-.4 2 1.3 0 0 2.3-1 2 1.4 0 0 2.6-1.7 2.2 1.4 0 0 2.7-1.8 3.6 1.3 1 3-2.7 9.7-6.2 11.4"/>
+    <path id="path2178" d="M447.2 402.8s1.2 8.3-3.5 11.3l.2.2c4.8-3 3.6-11.5 3.6-11.6h-.3zm-5.6 9l.2.2c3-2.9 3.6-10.6 3.6-11h-.3c0 .1-.6 8-3.5 10.8zm-2.8-1.9h.3c.4-4.7 4.2-10.2 4.2-10.2l-.3-.2s-3.8 5.6-4.2 10.4zm-2.1-1.4h.3c.5-5.7 4.3-10 4.3-10l-.2-.3s-3.9 4.5-4.4 10.3zm-3-1.9h.2c.3-6.8 4.8-10.1 4.9-10.2l-.2-.2s-4.7 3.4-5 10.4zm-2.9-1.7h.4c-.3-6.2 4.5-10 4.5-10l-.1-.2s-5 3.9-4.8 10.2zm-5-2.2h.3a10.2 10.2 0 016.9-8.5l-.1-.3a10.5 10.5 0 00-7 8.8z"/>
+    <path id="path2180" fill="#00a651" stroke="#000" stroke-width=".3" d="M418 415s-1.5-9.8 4.4-13c0 0 1-.2 1.7 1.2 0 0 3.1-1.3 3.2 1.3 0 0 1.5-1.2 2 .5 0 0 3.3-.7 2.6 1.8 0 0 2.8-.8 2.6 1.6 0 0 2.8-1 2.3 1 0 0 3-.6 2.3 1.8 0 0 3.6-.4 2.5 2.2 0 0 2.7-.7 2.1 1.4 0 0 3.6.6 2 2.8a24 24 0 01-9.8 7.2"/>
+    <path id="path2182" fill="#00a651" stroke="#000" stroke-width=".3" d="M414.8 425s-2.4-8.3 2.2-10.4c0 0 .8-.2 1 .6 0 0 1-1.3 1.8-.1 0 0 2.3-1.1 2.8.6 0 0 1.6-1.3 2.4.6 0 0 1.4-.6 1.4 1 0 0 2-1 2 1 0 0 2-.8 1.6 1.3 0 0 3 .4 2 1.8 0 0 2.7.7 1.7 1.8 0 0 2.9-.3 1.3 1.6 0 0 2.2-.7 1 1.7-1.3 2.4-5.1 5-7.9 5.4"/>
+    <path id="path2184" fill="#00a651" stroke="#000" stroke-width=".3" d="M417.7 431.4s-5.1-5-2.7-6.4c0 0 1 .3 1.4 1.4 0 0 1.3-1.8 2 0 0 0 1.8-.6 1.8.7l1.5 1s1.7 0 1.4 1c0 0 1.9-.2 1.8.8 0 0 1.6 0 1.5 1.1 0 0 2.7.5 1.5 1.9 0 0-4.9 1-8.3-.4 0 0-1.8-.6-2-1z"/>
+    <path id="path2186" d="M435.2 423.2l.1.3c3-1.2 8.3-8.3 8.5-8.7l-.2-.1s-5.4 7.4-8.4 8.5zm-1.7-1.3l.1.3a47 47 0 008.1-8.7l-.2-.2s-5.4 7.2-8 8.6zm-1.5-.6l.2.2c2.8-2.3 6.8-10 7-10.2l-.3-.2c0 .1-4.2 8-7 10.2zm-1.4-1.8h.3c.6-3.8 6-9.8 6-10l-.2-.1c-.2.2-5.5 6.2-6 10.1zm-10.8-4.6h.3c-.5-5.5 4-11.5 4.1-11.6l-.2-.2s-4.7 6.2-4.2 11.8zm2.8.4h.3c-.7-4.4 4.4-10.6 4.5-10.7l-.2-.2c-.3.3-5.3 6.4-4.6 11zm4.4 1.6h.3c0-5 4.7-10 4.7-10l-.2-.2s-4.9 5.1-4.8 10.2zm-10.5 9h.3c-1.7-4.6 1.3-10.5 1.3-10.6l-.3-.1s-3 6-1.3 10.8zm2 .4l.3-.1c-1.5-4.7 1-11 1.1-11l-.3-.2s-2.6 6.5-1 11.3zm8.3 4.7l.1.3c5-1.8 8.2-6.3 8.3-6.4l-.3-.1s-3.2 4.4-8 6.2zm-1-1.1l.1.3c4-1.8 7.7-6.8 7.7-6.8l-.2-.2s-3.7 5-7.6 6.7zm-1-.4l.2.3c3.1-2.3 7-8 7.1-8l-.2-.2s-4 5.7-7 8zm-4.9-2.9h.3a21 21 0 012.6-10.8l-.3-.2s-3.3 6-2.6 11zm2.2 1.4l.2.2c3.2-2.9 4.2-10.6 4.3-11h-.3c0 .1-1.1 8-4.2 10.8z"/>
+    <path id="path2188" d="M424.3 428.9l.1.3c4.5-3.3 5.7-9.6 5.8-9.6h-.3s-1.2 6.1-5.6 9.3zm.5-13.4v.8l-3.4 11 .3.1 3.4-11c-.5-5.4 4.2-11.3 4.2-11.3l-.2-.2s-4.3 5.4-4.3 10.6z"/>
+    <path id="path2190" d="M428.3 418.1c0 .2-1 7.8-5.1 10.6l.1.2c4.2-2.9 5.3-10.3 5.3-10.6 1.8-2.2 6-9.8 6-9.8l-.2-.2c0 .1-4.2 7.6-6 9.8zm-12 8.3c0 .2.7 4 1.5 5.3l.2-.2c-.7-1.3-1.4-5-1.4-5.1h-.3zm2 0c0 2 0 5-.2 5.3h.3c.2-.3.1-4.4.1-5.2h-.3z"/>
+    <path id="path2192" d="M418.4 431.8l.3.2c1.3-2.9 1.7-4.9 1.7-4.9h-.3s-.4 2-1.7 4.7z"/>
+    <path id="path2194" d="M418.7 432l.1.2a6.6 6.6 0 003-4h-.3s-.5 2.4-2.8 3.7zm.4.1v.3c2.4-.2 4-3.1 4.1-3.2l-.2-.2s-1.7 3-3.9 3.1z"/>
+    <path id="path2196" d="M419.4 432.3v.3a7.6 7.6 0 005.6-2.6l-.2-.2s-1.8 2.3-5.4 2.5z"/>
+    <path id="path2198" d="M419.6 432.4v.3c.2 0 5 1 6.7-1.5l-.2-.2c-1.6 2.4-6.4 1.4-6.5 1.4z"/>
+    <path id="path2200" fill="none" stroke="#000" stroke-width="2.8" d="M310.2 254v136.4c0 44.6 80.6 71.1 80.6 71.1s80.6-26.5 80.6-71V254z"/>
+  </g>
+  <g id="g2864" transform="scale(.5)">
+    <path id="path2842" fill="#012169" d="M0 0h512v512H0z"/>
+    <path id="path2844" fill="#FFF" d="M512 0v64L322 256l190 187v69h-67L254 324 68 512H0v-68l186-187L0 74V0h62l192 188L440 0z"/>
+    <path id="path2846" fill="#C8102E" d="M184 324l11 34L42 512H0v-3zm124-12l54 8 150 147v45zM512 0L320 196l-4-44L466 0zM0 1l193 189-59-8L0 49z"/>
+    <path id="path2848" fill="#FFF" d="M176 0v512h160V0zM0 176v160h512V176z"/>
+    <path id="path2850" fill="#C8102E" d="M0 208v96h512v-96zM208 0v512h96V0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/fk.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/fk.svg
new file mode 100644
index 0000000..12a34c4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/fk.svg
@@ -0,0 +1,93 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-fk" viewBox="0 0 512 512">
+  <defs id="defs784">
+    <linearGradient id="b" x1="444.4" x2="470.9" y1="592.2" y2="577.1" gradientTransform="scale(1.003 .997)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="f" x1="851.8" x2="646.2" y1="369.9" y2="369.9" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="c" x1="458.2" x2="520.5" y1="562.5" y2="552.8" gradientTransform="scale(.936 1.068)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="d" x1="472.4" x2="445.3" y1="578.7" y2="580.2" gradientTransform="scale(1.003 .997)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="e" x1="518" x2="456.4" y1="553.7" y2="558.1" gradientTransform="scale(.936 1.068)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="a">
+      <stop id="stop770" offset="0" stop-color="#a43907"/>
+      <stop id="stop772" offset="1" stop-color="#fff"/>
+    </linearGradient>
+    <linearGradient id="g" x1="388.5" x2="677.4" y1="507.2" y2="508.8" gradientTransform="scale(.823 1.215)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="h" x1="579.8" x2="556.8" y1="504.9" y2="505.9" gradientTransform="scale(.835 1.198)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="i" x1="581.4" x2="558.9" y1="512" y2="514.3" gradientTransform="scale(.823 1.215)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="j" x1="552" x2="589.8" y1="517.9" y2="503.9" gradientTransform="scale(.835 1.198)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="linearGradient1802" x1="444.4" x2="470.9" y1="592.2" y2="577.1" gradientTransform="scale(1.003 .997)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+  </defs>
+  <path id="path786" fill="#012169" d="M0 0h512v512H0z"/>
+  <g id="g988" transform="matrix(.815 0 0 .815 91.4 2.4)">
+    <path id="path798" fill="url(#linearGradient1802)" fill-rule="evenodd" stroke="#fff" stroke-width="10" d="M671 321.6a13.2 13.2 0 00-2 .1c-3.4.6-8.8 11.7-11.7 18.2-4.7 5.6-7.1 10-9 13.2-.8 1.3-2 2.7-1.6 4.4-7 1.7-7.4 7.7-7.4 10 0 2.6.8 3.8.8 3.8l4.2 7.8v.1c4.5 9.3 11 21.7 14.8 22.7 5.2 1.5 18.8-3.5 29-12.2a164 164 0 0062 12.6c23.8 0 45.2-5.7 61.9-12.6 10.2 8.7 23.7 13.7 29 12.2 3.7-1 10.3-13.5 14.8-22.7l4.1-7.9s.8-1.2.8-3.7c0-2.3-.4-8.4-7.4-10 .4-1.7-.7-3.2-1.5-4.5-2-3.3-4.4-7.7-9-13.4-3-6.5-8.4-17.4-11.7-18-4.8-.8-15 1.6-15 2.5v.5L795.4 344c0 .5 1 14.5 5 27a147 147 0 01-50.5 8.5c-19.8 0-36.7-3.5-50.4-8.6a136 136 0 005-27L684 324.7v-.5c0-.7-7.9-2.6-13-2.6zm5.2 24c2.6 0 5.3 2.2 7.6 4.5l-.2 1.4a78.7 78.7 0 01-3.2 10.6 85.8 85.8 0 01-14.3-10.3c2.2-2.4 5.8-5.6 9.6-6.1h.5zm147.6 0h.5c3.8.6 7.4 3.8 9.7 6.2a85.6 85.6 0 01-14.4 10.3 78.3 78.3 0 01-3.2-10.6 17 17 0 01-.2-1.4c2.2-2.4 5-4.5 7.6-4.5zm-166 27.4c2.7 2.1 6.3 4.5 10.6 7a12.3 12.3 0 01-3.8 1.7c-1.8.4-3.6.3-5.5-.1a17.5 17.5 0 01-1.2-5.7 70.3 70.3 0 01-.1-2.9zm184.5 0l-.2 2.9a17.6 17.6 0 01-1.2 5.7 12 12 0 01-9.3-1.6c4.4-2.5 8-4.9 10.7-7z" transform="translate(-509.2 18) scale(1.168)"/>
+    <path id="path800" fill="url(#b)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M445.6 595.5s5.7-8.8 10.3-8.1c4.7.6 9.1 6.2 9.4 6.5a41 41 0 006.9-7.5c-.3-.3-7.2-16.5-11-17.2a24.7 24.7 0 00-11.8 1.8z" transform="matrix(-1.477 0 0 1.545 953.6 -485.4)"/>
+    <path id="path802" fill="url(#c)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M433.1 586.1c0 .6 2 23.8 10 31.9 8 8.1 21.3 13.1 26 11.9 4.6-1.3 15.3-24.7 15.3-24.7s-11.3 11.2-19.7 9.3c-8.4-1.8-13.4-15.9-15-22.8-1.6-6.8-.3-20.3-.3-20.3L433 586.1z" transform="matrix(-1.477 0 0 1.545 953.6 -485.4)"/>
+    <path id="path804" fill="url(#d)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M445.6 595.5s5.7-8.8 10.3-8.1c4.7.6 9.1 6.2 9.4 6.5a41 41 0 006.9-7.5c-.3-.3-7.2-16.5-11-17.2a24.7 24.7 0 00-11.8 1.8z" transform="matrix(1.477 0 0 1.545 -219.8 -485.4)"/>
+    <path id="path806" fill="url(#e)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M433.1 586.1c0 .6 2 23.8 10 31.9 8 8.1 21.3 13.1 26 11.9 4.6-1.3 15.3-24.7 15.3-24.7s-11.3 11.2-19.7 9.3c-8.4-1.8-13.4-15.9-15-22.8-1.6-6.8-.3-20.3-.3-20.3L433 586.1z" transform="matrix(1.477 0 0 1.545 -219.8 -485.4)"/>
+    <path id="path808" fill="url(#f)" fill-rule="evenodd" stroke="#000" stroke-width="1.5" d="M656.4 338.6c-4.7 5.7-7.2 10.2-9.2 13.5-2 3.3-.8 8 3.7 14.5 5 7 45.4 34.7 98.1 34.7 52.7 0 93.1-27.6 98-34.7 4.6-6.6 5.8-11.2 3.8-14.5-2-3.3-4.5-7.8-9.2-13.5 0 8.6-33.5 40-92.6 40-59.1 0-92.6-31.4-92.6-40z" transform="translate(-508 19.2) scale(1.168)"/>
+    <path id="path810" fill="url(#g)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M467.8 625.5l7.2-11.9-3.6-2.5c-1 3-5.1 4-5.8 7.8-.7 3.8 2.8 7.5 2.2 6.6z" transform="matrix(1.477 0 0 1.545 -218.8 -484)"/>
+    <path id="path812" fill="url(#h)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M475 623s1.3-5.3-2.8-6c-4-.6-6.2 3-5.6 1.6.6-1.6 3-3.1 3.4-8.4.3-5.3-.3-8.2-.3-8.2s1.6-6.8 8.1-5.9c6.6 1 6.9 6 6.9 7.8 0 1.8-.6 2.8-.6 2.8z" transform="matrix(1.477 0 0 1.545 -219.8 -485.4)"/>
+    <path id="path814" d="M448.3 446.3l2 3.5 1.3-.8-.9-2.3.2-.5 2.3-1.4 6 10.6v.5l-1.3.9.6 1 5.7-3.7-.5-1-1.3.8-.5-.1-6-10.6 2.2-1.5h.5l1.5 2 1.3-.9-2-3.4-11.1 7zm-14.3 8.2l.5 1 1.2-.5.5.1 5.2 10.8-.1.5-1.2.7.5 1 5.7-3-.5-1-1.2.5-.5-.1-2.5-5.1 5.8-3 2.5 5-.1.5-1.2.8.5 1 5.7-3-.5-1-1.2.5-.5-.2-5.2-10.7.1-.5 1.2-.7-.5-1-5.7 3 .5 1 1.2-.6.5.2 2.2 4.4-5.8 3-2.2-4.4.2-.5 1.1-.7-.5-1zm-3.3 9.2l.3 1 1.6-.4.5.2 1.3 4.5-1.2.4c-3.3 1-6-.6-7.1-4.5-1.1-3.8.2-6.7 3.4-7.7a4.8 4.8 0 011.9-.2l.4.3 1.1 2.1 1.6-.5-1-3.6c-1.8 0-3.4.2-4.8.6-4.8 1.6-7 5.5-5.8 10 1.3 4.5 5.3 6.6 9.8 5.2a15.4 15.4 0 004.6-2.4l-1.5-5 .3-.4 1.2-.5-.3-1.1zm-13.3 12.5l6.4-2-.3-1.1-1.5.3-.4-.2-3.5-11.6.2-.4 1.4-.6-.3-1-6.4 2 .3 1 1.5-.3.4.2 3.5 11.6-.3.4-1.3.6.3 1zm-34.8 5.7l11.3-1-.4-4.1-1.4.1-.2 2.4-.2.4-4.9.5-.5-6 2.8-.2.3.3.3 1.6h1.3l-.5-5.3h-1.2v1.7l-.3.4-2.8.2-.4-5.4 4.2-.3.3.2.4 2 1.5-.1-.3-3.6-10.6 1v1h1.4l.3.4 1 12-.2.4-1.3.2v1.2zm-16.9-15v1.1l1.3.1.3.4.2 12-.3.4-1.2.2v1h6V481l-1.3-.1-.4-.4v-5.7l6-.1.2 5.7-.3.4-1.3.1v1.1h6v-1.2h-1.3l-.3-.4-.2-12.1.3-.4 1.2-.1v-1.1h-6v1.2l1.3.1.4.3v5l-6 .1-.2-5 .4-.3 1.2-.1v-1.1zm-12.8-.4v4h1.4l.4-2.4.3-.3h2.5v12.4l-.4.4h-1.4v1.2h6.3v-1l-1.4-.2-.3-.4.1-12.3h2.5l.4.3.3 2.5h1.4v-4zm-19.5 12.9l11 .5.2-4-1.4-.1-.4 2.4-.3.3-4.8-.2.3-6 2.7.2.2.3.2 1.7h1.2l.2-5.2h-1.2l-.3 1.5-.3.3H338l.3-5.5 4 .2.3.3.3 2 1.4.1.1-3.6-10.3-.5v1.1l1.2.2.3.4-.5 12-.4.4h-1.3v1.1zm-25.3-6.6l5.8 2 .3-1-1.2-.6-.2-.5 3.5-11.5.4-.2 1.4.3.3-1-5.9-2-.3 1 1.2.6.3.4-3.6 11.5-.4.3-1.3-.4zm-10.5-4a11.4 11.4 0 003.6 2c3.2 1 5.8-.2 6.6-2.7a4.2 4.2 0 00-.8-3.9c-1-1.2-1.9-1.9-2.3-2.5-.9-1-1.2-1.9-1-2.9.4-1.1 1.6-1.7 3-1.2.7.2 1 .4 1.4.8l.1.4-.3 2.3 1.4.5 1-3.5a11 11 0 00-3.4-2c-2.8-1-5.2.3-6 2.7a4.3 4.3 0 00.5 3.4c.7 1.1 1.5 1.8 2.1 2.5 1.2 1.2 1.6 2.3 1.3 3.4-.4 1.2-1.6 1.8-3.2 1.2a5.5 5.5 0 01-1.6-.9l-.2-.4.5-2.7-1.5-.5zm-13.3-5.6l10 5 1.7-3.7-1.2-.6-1.3 2-.4.2-4.4-2.2 2.5-5.3 2.4 1.2.1.4-.5 1.6 1.1.6 2.2-4.8-1.1-.5-.9 1.3-.4.2-2.4-1.2 2.2-4.9 3.7 1.9.2.4-.6 1.9 1.3.6 1.5-3.2-9.4-4.7-.4 1 1 .7.2.5-5 10.9-.4.1-1.2-.4-.4 1zm-1.6-18.2l-5-3.5-.6 1 1 .8v.5l-6.3 10-.5.1-1-.6-.7 1 5 3.4c1.8 1.2 3.3 1.8 4.9 1.6 2.1-.2 4-1.4 5.4-3.7 2.5-4 1.8-7.9-2.2-10.6zm-2.1 0l1 .8c2.7 1.8 3 4.5.7 8s-4.7 4.4-7.4 2.5l-1-.6 6.7-10.6zm40 15.8l-.2 1 1.2.4.2.4-2.4 11.8-.4.3-1.2-.1-.2 1 5.7 1.3.2-1-1.2-.5-.3-.4 1-5 .4.1c2 .5 2.4 1.5 2.6 3.8 0 1.1 0 2.1.9 3.3.4.5 1 1 2 1.1a13.8 13.8 0 002 .3l.2-1-.2-.1c-1.4-.3-2-.8-2.1-2.1-.1-1.2 0-2.4-.5-3.6a3.5 3.5 0 00-1.8-1.8c2.4 0 3.8-1 4.2-3 .5-2.5-.8-4.2-4-4.9l-6-1.3zm4 2.1l.8.2c2 .5 2.8 1.7 2.4 3.5-.4 2.1-1.6 2.8-3.8 2.3-.2 0-.4 0-.7-.2l1.2-5.8zm74 1.3l.2 1.1h1.3l.4.2 1.9 12-.3.3-1.3.4.2 1 6.2-1-.1-1.1-1.4.1-.4-.3-.8-5h.4c2.2-.5 3 .4 4 2.4.5 1 .8 2 2.1 2.7.6.3 1.5.5 2.5.3a16.5 16.5 0 002.2-.6l-.2-1h-.3c-1.5.3-2.2 0-2.9-1.1-.6-1-1-2.2-1.8-3.1-.6-.6-1.4-1-2.5-1 2.4-.9 3.5-2.4 3.2-4.5-.4-2.5-2.4-3.5-5.8-3zm4.8.5l1-.1c2.1-.4 3.4.4 3.7 2.3.3 2-.6 3.2-3 3.6h-.8l-1-5.8z"/>
+    <path id="path816" fill="url(#i)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M467.8 625.5l7.2-11.9-3.6-2.5c-1 3-5.1 4-5.8 7.8-.7 3.8 2.8 7.5 2.2 6.6z" transform="matrix(-1.477 0 0 1.545 952.7 -484)"/>
+    <path id="path818" fill="url(#j)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M475 623s1.3-5.3-2.8-6c-4-.6-6.2 3-5.6 1.6.6-1.6 3-3.1 3.4-8.4.3-5.3-.3-8.2-.3-8.2s1.6-6.8 8.1-5.9c6.6 1 6.9 6 6.9 7.8 0 1.8-.6 2.8-.6 2.8z" transform="matrix(-1.477 0 0 1.545 953.6 -485.4)"/>
+    <path id="path820" fill="#0072c4" fill-rule="evenodd" stroke="#fff" stroke-width="3.9" d="M396.9 606s-75.5-21.4-75-102.2l.5-107h148.9l.5 106.4c.5 80.8-75 102.7-75 102.7z" transform="matrix(1.477 0 0 1.545 -219.3 -481.5)"/>
+    <g id="g834" fill-rule="evenodd">
+      <path id="path822" fill="#bcbcbc" d="M272.3 169c.2 0 1.5-1.3 2.8-2.4 1.7-1 3.3-2.1 5-3 1.4-.7 4-1.3 5.1-1.9a12.5 12.5 0 004.2-3.3c.2-2.2.5-3.8.5-6.3l5-2.5c2.3-.6 2.8-1.5 5.1-1.9 1.5-.5 3.9-.5 6-.5 2.3 0 3.7 1.7 5.8 2 2.5 1 3.6 1.7 5.6 3.4 1 1.4 1.7 2.6 3.6 3.6 1.5.8 2.9 2 4.6 2.4 2 1.1 3.6 1.8 5.1 3.4 1.4 1 2 2.4 3.2 3.4a36.1 36.1 0 004.7 3.4c2 1.3 4 2.3 7.1 2 1.7 0 3.5-.3 5.5 0 2.3 0 4.5 0 6.5.6 2.4 0 4.3.3 6.5.5 2 .4 4.1.4 6.4.4 2 .6 4.2.5 6.5.5h13c2.3 0 4.7.1 6.4.5a51 51 0 006.4-.5c2.6 0 4.5-.4 7-.5h7.8c2 .6 4.6 1 6 2 1.9.5 2.8 1.4 4.6 2a13 13 0 014.7 3.3 24.7 24.7 0 013.7 5.3c1.2 1.9 1.7 4 2.7 6.3.5 2.2 1 4.3 1 6.7.4 2.1.4 4.4.4 6.8-.5 2.2-.6 4.6-1.4 6.7 0 2.4-.5 4.5-.9 6.3-.4 2-.9 3.3-1 5.8v6.8c0 2.2-.6 3.8-.8 6.2a71 71 0 00-3.3 7.3 14.7 14.7 0 00-3.7 3.8c-1 .7-1.5 1.6-1.4 2 1.9.6 1.4 1.9 1.4 4.3.3 1.9.4 4.2 1 6.3.1 2.3.6 3.7 1.3 5.3.8 1 1 .5-.9.5-1.3 1-2.7.5-3.2-1.5a12 12 0 01-1.9-5.3c-.2-2.2-.6-4.4-1.3-5.8-.3-2.7-1-2.7-3.7-2.9-1.3-1.1-3-1.4-5.6-1.4-2.5 0-2.7-.3-2.8 2.4v6.8c-.4 2-1.3 3.5-1.8 5.3-1.4 1-2 2.7-3.7 3.8-.8 2.2-1.9 2.6-4.1 3l-2.8-3.4c1.3-2.2 2.4-2.5 3.2-4.9 1-1.9 1.6-3.1 2.3-4.8-1-1.5-1.8-2.2-2.7-4.3a26.3 26.3 0 01-2.4-5.3c-1.5-.6-3.9-.7-5-1.5-2.3-.5-2.9 2-5.6 2h-6.4c-2.9 0-3.6 1.5-6 1.4-.8.2-2.5-.1-5.1 0-2 .7-4.3.5-6.5.5-2.3 0-4.2-.6-6-1-2.1-.6-4.2-1.2-6.4-1.4-2.8 0-3.8.2-5.6 1.4-1.4.9-3.5 2.8-5 3.9-.7 1.6-1 4.3-2 6.2-.4 2-1.2 3.1-1.8 4.9a18.4 18.4 0 00-1.3 5.8c-.2 3.2-.9 2.8-2.8 1.9-.8-1.4-2-2.8-2.8-4.4.4-2.4 1-3.6 1-6.2-.5-2-1.5-1.8-2.8-.5 0 2.5 0 4.5-1 5.8a6 6 0 01-2.7 3.8c-.7 1.8-2.2 2.7-3.7 3.4-.2 0 0-.6 0-2-1.1-2.1 0-4 0-6.7 0-2.4-.2-4 .5-6.2 0-2.4-1-4.6-1.4-6.3-.9-1.8-1.4-2.7-3.7-3.4-1.7-.7-4-1.5-5.1-3a9.6 9.6 0 00-4.2-3.3c-2-.7-3.1-1.5-4.6-2.4-1.4-1.6-2.6-2.2-3.2-4.3-1-1.5-1.1-4.3-1.8-6.3a21.7 21.7 0 00-1.4-5.8 24.3 24.3 0 00-1.4-5.8c-.3-2-.8-4-1.4-6.3 0-2.3 0-4.6-.5-6.7v-6.8c-.3-2-.4-4.8-.9-6.3 0-2.6-.3-4-1-5.8-1-1.7-1-2.4-2.7-2.9-1.2 1.5-3.1 2.2-5.5 2.5-1.7-.4-4.1-.7-6-1.5-1.9-.4-3.1-1.2-4.6-2a43.2 43.2 0 00-2.8-3.8c-.3-2.5-.8-3.8-1-6.3 0-1.8.1-.8 2-3.3z"/>
+      <path id="path824" fill="#fefefe" d="M299.6 186.4l.4-.4c-.8.8-.5.4 1.3-.3 1-.6 2.9-1.7 3.6-2.4.8-.4 2.2-1 3-1.7.8-1 1.7-1.8 2.9-2.7 1.2-1.1 2.4-1.5 3.9-2.4 1.8-.2 2.5-1 4.2-.4 1.6.4 2.3.4 3.6-1 1.3-.8 2.8-1.7 3.3-3V170c0 2.2-.5 3-2 3.7-1 1.3-2.4 2.6-3 3.8-1 1.5-1.2 2.3-2.2 3-.9 1.1-2.3 1.7-2.6 3.5.4.8 0 1.2 1 1.3.9.8 1.9.5 3.2 0a14.2 14.2 0 002.6-4c1.1-1.6 1.7-2.3 2.3-3.5 1.2-.8 1.9-1.4 2.3-2.7 1.3-.8 2.4-1.6 3.3-2.4 1-.6 1.5-1.1 2.9-1.4a6 6 0 01-1 3.8c-.3 1.9-.2 2.8.4 4 .9.7.7 1.2 1.3 2.5.5-1.2.8-3.4 1-4.8v-.3c0 1.4 0 3.4-.4 4.4 0 2 .5 2.9 1 4.4.5.8 1 1.3 1.6 1.7 0-2 .6-3.2.7-5 .4 1.3.3 3.2.6 4.7.1 1.6.7 2.8 1.3 4.1.8.4 1 1.8 1.3.7.8-2.4.8-5 1.3-7.5.1-1.3.2-3.2.7-4.1l-.7 4c.1-1.2.2-3 .7-4v-.4a39 39 0 01.7 5.5c0 1.5-.1 3 .3 4.4 1-.5 1.7-1.7 2.3-3a18.2 18.2 0 012.6-3.8l-2.6 3.7a18.2 18.2 0 012.6-3.7v-.3a40.3 40.3 0 00-.3 4.7c0 1.6 0 3.4.3 4.5.4 1.8.9 2.1 1 4 0 1-.2 2 .3 2.5 1.4.3 1.4-.5 1.6-2.4 0-2.2.6-3.7.7-5.8 0-2.6.3.3.6 1.3a13 13 0 011 4.5c0 1-.1 1.9.3 2.4 1.3-.6 1.8-2 2.6-2.8.7-1.6 1.4-2.3 2-3.4 1.7-.3 1.6-1 1.6-3 0-1.7-.1-3.4.4-4.8a41 41 0 001.3-4.5c.6-.3 1.2.6 1.6 1.4.7 1.1.6 2.7.6 4.4.4 1.5 1 2.7 1.7 4.1a15 15 0 002.3 3.4c.3 1.1.3 3 .3 4.5 1.3-1.5 1.5-3.6 1.6-5.8-.2-1.5-.2-3.4-.6-4.8 0-1.5-.4-3-.7-4.1-1-.5-1.3-1-.3-2.4 1-.9 2.2-.5 3.9-.3.9.9 1.2 1.4 1.3 3.4 0 1.8 0 3.2.7 4.4.6 1 1.2 1.7 1.6 3.4.5.5.9 1.2 1.6.4.4-1 .7-3 1-4.1.3-1.3.9-2 1.6-2.4 0 1.9 0 3 .7 4.4.6 1.5 1 2.1 1.6 3.8.7.5.8 1.5 1.7 2 .2-1.6.3-3.4.3-5.4V185c.1-1.6.5-2.5 1-3.8 1 1.4 1 1.9 1 3.8 1-.4 1.2-1.2 1.6-2.4.7-.7 1-1 1.3.7.2 1.8.6 3.4 1 5.1.6.8 1.4 2.7 2.2 3.4a16.4 16.4 0 002 2.8c.5 1 .6 1.7 2 2 0-2.3 0-4.6-.4-6.8 0-2-.4-2.7-.6-4.5-.6-1.1-.9-2.9-.7-3.4a11 11 0 013 4.1c.7 1.7 1.4 2.8 2 4.5a20 20 0 012.5 3.4c1.2 1 1.8 2.1 3 3 .6.6 2 1 2.3.7-.1-2-.4-3.7-1-5.4a9 9 0 00-1-4.1c-1.3-1.1-2.3-1.9-3-3.4-.4-.5-.5-.8-.6-1.7a26.3 26.3 0 014.6 4.7 7 7 0 002.6 2.4c.6.8 2.5 1.7 3.9 2a5.6 5.6 0 003.3 2.1l-3.3-2a5.6 5.6 0 003.3 2v.4a13 13 0 00-2-5.5 8.8 8.8 0 00-3-3.8 9.3 9.3 0 00-3.2-3c-.9-1-2.2-2.8-3-3.4 1.5-1 3.1.6 4.6 1.3 1.3 1.4 2.5 3.2 3.3 4.1a18 18 0 003 4.5c1.4.8 2.3 1.6 3.5 2.7 2 .5 1.2-.2.7-1.7-.7-2 0-2 1.3-.7.9.7 2 1.7 3.3 2.4.5.7 1.4 1.2 2.2.7.4-.5.4-.5.4-1-.7-2.2-1.4-3.8-3-4.5-.7-1-2-2-3-3-.6-1-1.3-1.6-1.9-2.8l2 2.7c-.7-1-1.4-1.5-2-2.7h-.3c2 0 2.7.6 4.2 1.4a6.8 6.8 0 013 2.4c.6.8 1.7 1.7 2.3 2.7l3.2 2.4c1.1 1.4 1.3 2.3 1.3 4.4.7 1 .8 3 1 4.1-.2 1.9-.9.4-1-.7-.2-1.5-.8-1.4-2-1 0 2 .3 2.6 1 4.1a8 8 0 01-1.2 3.4c-.8.5-1-1-1.7-1.7 0-2-.6-2.3-2-3.4v1.4c.8 1.4 1.6 2.7 1.7 4.7a12 12 0 01.7 4.5c0 1.7 0 3.3-.4 4.8 0 1.8-.3 2.6-.3 4.4v9.6a23.3 23.3 0 00-.3 4.4l.3-4.4c-.2 1.2-.3 2.7-.3 4.4v.3c-.6-1.7-1.3-3.2-1.7-5a10.3 10.3 0 01-2.2-3.5c-.3-1.5-.4-3.2-.7-4.4-.5-1.2-1-2.5-2-1.7-.4 2.5.2 4 1 6.4.5 1.6.5 3 1 4.5.8 1.8 1.4 2 0 4-.7 1.2-1 1.5-1.3 2.8-1.2.6-1.5 1-1.6 2.4-.4-1.3-1.4-2.9-2-4.4-.6-1.7-1.3-3.4-1.6-4.8-.8-1.2-1.7-3-2.6-3.8-.9-1-2-3-2.6-4-1.3-1.5-1.6-2.4-2.7-3.1-.2-.7-.6-1.6-1.3-1 0 1.6 0 3.3.4 4.7.3 2 .9 3.1 1 5.1v3.8c-.8-2-1.7-3.6-2.3-5.5-.8-1-1.4-3-2.3-3.7-.6-1.4-1-2.5-1.7-3.4-.1-1-.6-1-1-1.7 0 1.9.7 2.6 1 4a8 8 0 01.7 4.2c-.8-2.4-1.6-5-2.6-7.2-1-1.4-2-3.2-2.6-4.5-1-1.1-2-1.2-3-2a5.9 5.9 0 01-2.2-1.7c.2 1.8.9 3 1.3 4.4.2 1.7 1 3.1 1.3 4.5-.4 2.3-1-.7-1.3-1.7-.4-2-1-3-1.7-4.1-.9-.7-1.6-1.8-2.6-2.4-1-.4-.6 0-.6 1.3 0 2.1 0 3.5.6 4.8.7 1 .7 2.3.7 4.1-.1 1.7-.4 3-.4 4.8v2.7c-.7-1.4-1.4-2.3-2-4.1-1-1.6-1.4-2.7-2.2-4.4-.7-.3-2-.6-2.6 0 .1 1.7.9 2.4 1 4.4-1.3 1.3-1.1 1.7-2-.3-.7-1.6-1.6-1.5-2.6-2.4-1.6-.2-1.1-1.3-1.6-2.8 0-1.3 0-2.6-.4-3.7-1.8 0-2.8 0-3.9 1-.5 1-.3 3 0 4.5v4.7c-.4 1.2-1 1.3-1.3 2.8-.6 1.4-.8 3-1.3 4-1.2 1.1-.7 1.2-1.3-.6v-11c0-1.8.3-2.7.3-4.4-.6-1.4-.8-1.7-3-1.7-.4.9-.2 2.5 0 3.4 0 1.7.2 3.3.4 4.5 0 1.8.2 2.9.3 4.4 0 1.8-.4 3.2-1.3 4-1.1.4-.1 1.2-1.3 1.5a15 15 0 01-3.6-2.4c-1.2-.4-2.4-.7-4.2-.7-2.2 0-2.2-.3-3-2a31.4 31.4 0 01-1.2-5.5c-.8-1.6-1-2.7-1.3-4.5a6.2 6.2 0 00-2-2.4c-.5 1.8-1 3.2-1 5.2-.4.8-.5 2.8-.6 3.7-.7-1-1-3-1.4-4.4-.6-2-1.1-3.4-3.2-2.7-2.2 0-2.3 0-2.3 2.4l2.6 4v4.8c0 2 .1 2.6-1.3 3-.5-2-1.7-4-3-5.7-.1-1.4-.5-1-1.9-1-.9 0-1.8-.2-2.3.3v3c-.8.2-1 0-1.6-.6-.6 1-.1 2.4 0 3.7-.4 1.6-1 3-1.6 3.8-.2-.5-.5-.3 0-.3-2.3-.9-4-1.4-6-2-1 0-1.9 1.1-2.5 2-1.7.5-2.4 1-4.3 1-1.7 0-2.6.3-4.2.3-1.2.3-2.7.4-4.3.4-.8-.3-2.4-.3-2.9-.7.7-1 1.4-1.5 2-3a20 20 0 002.6-2.5c.8-.6 1.8-1.9 2.6-2.7.5-1.7 1.2-2 2.3-2.7 2 0 2.3.7 4.2 1 1.9.7 3 1 4-.4 1.5-.6 2.8-1.7 4.5-2l3.3-2c1.4-.9 2-1.8 3.2-2.8.4-1.4 1.4-2.5 1-4-1.8-.5-2.9-.4-4 .6-1.3 1.2-1.6 1.7-3.2 2.7-1.3.4-2 1-3.6 1.4-1.3.5-3 .3-4.5.3s-3.4-.1-4.3.4c1.5-1 3.2-2 4.6-2.4 1.3-.9 1.8-1.3 3.6-1.4.8-1 1.7-1 2-2.7.5-2-1.3-1.4-2.7-.7-1.3.3-2.8 1.2-3.9 1.7a14.3 14.3 0 01-4.2.7c-.4-.6.3-1.1.6-2 1.5-.6 1.8-.8 2-2.4-1.7.2-2.4.8-4 1-1.6.4-3.3.6-5.2.7h-4.5c-1.6 0-2.5-.4-4.3-.4-1.3-.7-1.3-1-1.3-3 1-1.2 2-1 4-1l3.5-1.8c1.2-.2 2-.7 1.7-1.3h-4.6c-1.8-.8 0-1.1 1-1.7 1.6 0 3.2 0 4.2.6 2 0 2.7-.7 4.3-2 1.2-1 1.8-1.7 3.2-2.4 1-1.1 2-1.7 2.6-2.7 1.4-1.3 2.3-2 3-3.1.8-.5 1.4-1 1-1.7-2.1.2-3 1-4.3 2a10 10 0 01-2.6 2 8.2 8.2 0 01-4.2 1.5c-1.7 0-3-.3-4.6-.4-1.8-.2-.2-.6.3-1.4.7-.4 1.2-1.5.7-2.3-1.4-.5-3-.4-4.6-.4h-4.6c-1.7 0-2.4-.4-3.6-1-.3-1 0-.7 1.3-.7a18 18 0 004.3-.7c1.5-.4 1.7-1 2-2.7-1.6 0-3.3 0-4.3-.3zm-28.2-7.8c-.3-2.5-.9-3.8-1-6.3 0-1.8.1-.8 1.9-3.3.2 0 1.5-1.3 2.8-2.4 1.7-1 3.3-2.1 5-3 1.3-.7 4-1.3 5.1-1.9a12.5 12.5 0 004.2-3.3c.1-2.2.4-3.8.4-6.3l5.1-2.5c2.3-.6 2.8-1.5 5.1-1.9 1.5-.5 3.9-.5 6-.5 2.3 0 3.7 1.7 5.8 2 2.5 1 3.6 1.7 5.5 3.4 1.1 1.4 1.8 2.6 3.7 3.6 1.5.8 2.9 2 4.6 2.4 0 1.8.4 1.5-.8 1.5-.2 1.8-.6 1.7-2.3 1.7a8 8 0 01-3-2.7c.7-1.8.3 1.4 0 2-.8.7-1.3 1.4-2.2.7-.6-1.7-1-2.8-1-4.8-.3-2.1-.9-.6-1.3.3-.5 1.8-.3 2.4.3 3.8-1.7 0-3-.2-4.2-.3-1.2-.3-2.6 0-4 .6-1.7 1.1-1.1 1.1-.3 2.4 1.5.5 2.6 1.3 4 2 1.4-.2 3-.6 4.5-1 1.6-.5 3-.1 4.6 0 .8.5 1.8.6 2.3 1 0 1.1 0 2.2-.4 2.8-.6.5-1.3 1.7-2.3 2a16.1 16.1 0 01-4.5 1.8c-2 0-2.8.5-4.3 1.3-.2 1.8-.7 2.2-2.3 2.8a10.3 10.3 0 01-4.5 1c-1 0-1.9.1-2.3-.4a12.8 12.8 0 002.6-4c.3-.7.9-1.2.3-1.8-1.9.1-2.4.1-2.6 2-.2 1.9-.9 2.2-2.3 2.8.4-1.6.5-3 1-4.4a25 25 0 01-4.2.3c-1 .7-1.4.9-1 2-1.3.5-3 .2-4.6 0-1.4 0-.6-.6-1.6-1.3-.7-1.3-1.4-1.6-3-1.7-.7 1-2 1.3-2.9 2-1.4.5-2.3.1-3.6-.6-1.6 0-1.4.5-1 1.7.7.4 0 .9 1 1 1 .8 1.8 1 3.6 1 1.4-.3 3-.3 4.6-.3 1.6 0 1.3.4 1.3 2-1 .8-2.6.7-4.3.7a16.6 16.6 0 01-3.9-1c-1.5-.1-2.7-.4-3.9 0-.5.6-2 .8-.3 1 .7.7 4.5.3 4.7 1.5 1 1 .7 2.3-.8 2.3a2.2 2.2 0 00-2.3 0c-1 .2-2.4 0-4.3.2 2.5.2-1.8-2.7-2.7-3.9z"/>
+      <path id="path826" fill="#bcbcbc" d="M281.7 167.3l-2 1.3c-1.4.8-3 2-3.9 2.7-.7.6-.7 1-1.6 1 1.5-.2 2.2-.6 3.6-1.3 1.7-.2 3.3-.6 4.2-1.4.9-.3 0-1.6-.3-2.4zm15-16.1c.2 0 .6 1 1.3 1.7.5 1.3 1 2.2 1 3.8.4-1.7 1-3 1.3-4.8-.5-1-.5-1.3-2-1.4 0 1 .2.3-1.6.7z"/>
+      <path id="path828" fill="#c4c4c2" stroke="#000" stroke-width=".9" d="M349.4 417.7c-.5 0 .8-.5 1.3-.6.4-.8.6-1.3 1.3-1.8 1.1 0 1.7.4 2.2 1.1 1 .3 1.3.7 2.4.9.5.4 1 .4 0 .7-.6.3-1.5.4-2.6.4a7.2 7.2 0 00-2.6.7c-1.5 0-1.3 0-2-1.4z" transform="matrix(1.477 0 0 1.545 -229.5 -480)"/>
+      <path id="path830" fill="#bcbcbc" d="M302.6 151.5v.4c0-1 0-.5.3 1.3.5 1.2.7 2.4.7 4.2a6.7 6.7 0 002-3.1c0-2.7-.5-2.6-3-2.8zm12 39.3h.4c-1 0-.4 0 1.3-1 1.1-.8 2-2 3.6-2.4a13 13 0 014.2-2.4c.8-.4 1.5-1 2.3-.4-.2 1.7-.5 2.4-2 3.1-.7 1-1.8 1.6-2.9 2-1 .5-2.2.6-2.6 1.8-1.8.8-2 .6-4.2-.7zm6.3 9.9c.5-.5 2.6-2.6 3.6-3.4a15 15 0 013.2-3.4c1-1.5 2.2-2.5 3-3.8l2.6-3.4c0 1.5-.2 3.5.3 4.4a7 7 0 01-1 4.1c-.7 1.2-1.3 2-3 2.8-1.4.8-2.3 1-3.5 2a26 26 0 01-3 1.7c-.9.4-.5.3-2.2-1zm-10.2 7.8h.4c-1 0-.5.1 1.3-1 1.4-1.4 2.5-2 4.2-2.7a10.3 10.3 0 004-1c.7-.2 1.3-.7 1.9 0 1 1.4 1.3 1.8-.3 2.7a9.4 9.4 0 01-3.3 1.7c-.8.7-2.4.7-4 1-1.2 0-2 .2-2.5-.7l2.6.7c-1.3 0-2 .2-4.3-.7zm14 0v-.3c0 1 0 .5.7-1.4 1.3-1.9 1.7-3 3.3-3.4.7-1 2-1.2 3.6-1.7.6 1 .1 2.2 0 3.4-.4 1.3-1.6 2.2-2.3 3.1-1 .7-1.4 1.4-3 1.7-1.2 0-.5 0-2.2-1.4z"/>
+      <path id="path832" d="M292.8 164.2c0 .9-.7 1.7-1.6 1.7-1 0-1.7-.8-1.7-1.7 0-1 .8-1.7 1.7-1.7.9 0 1.6.7 1.6 1.7z"/>
+    </g>
+    <g id="g840" fill="#005120" fill-rule="evenodd" stroke="#002b0d" stroke-width="1pt">
+      <path id="path836" d="M351.8 479.6h.9c-2.8 0-1.1-.2 3.5 3.5 2-1.6 2-1.8 3.5 1 1 1.5 1.2-.2 2.7-1.8.7 3.2 1.1 6.5 3.5 3.5 2.8 0 5.6-.2 7.1.9 1.8 3.3 1.2-.6 2.6.9 4 .4 3.9-3.4 8.1-4.4 2.6 3.3 3.8.8 7-.8 2.5.6 4.8 4.3 5.3.7 2-3.2 2.1-3 3.5 0 2 1.8 2.8-.8 4.4-1.7 3 1.7 6.3 2 10.6.9.8 2.9 2.6 1.6 4.5.8 3.9 1.7 5.2 2.2 9.7 0 2.2-2.6 1 .1 2.6 1.8 3.3-1 2.4-1.2 6.2-.9 3.9 0 4.2 0 5.3-2.6 2 1.9 2.6 3.3 5.3.9 4.2 0 2.9.5 5.3-1 1.9 4 2.3 1.2 4.5 2.7a14.5 14.5 0 01-6.2 7c-1.7 3-2.8 6-6.2 7.2-2.5 2.5-5.2 4-8 6.2-3.8 1-8 .8-12.3.8H388c-2.6 1.4-7 2-10.6 2.7-4 0-8.7 0-11.5-.9-1.9-1.9-5.2-4-7-6.2-2-1.5-2-4.4-3.6-6.2-1.4-2.5-2-6.5-3.5-8.8z" transform="matrix(1.477 0 0 1.545 -223 -481.4)"/>
+      <path id="path838" d="M437.5 487.6v.8c0-2.4.1-1.1-1.8 3.6-.3 1.1-1.2 1.4-2.6 1.8m-3.5-2.7h.9c-3.3 3-5.5 4.5-6.2 8l6.2-8c-3.3 3-5.5 4.5-6.2 8m-7.1-12.4s-.1 3.1-.9 4.4m-2.6 1.8v.8zm-7.1-5.3h.9-1c.4 0 .7 0 0 0zm-49.5 0c.4 0 2.2 2.8 4.4 4.4-.5 2.6-1.4 5.6 0 8m2.7-7.1c.4 0 2.1 2.8 4.4 4.4l-4.4-4.4c.4 0 2.1 2.8 4.4 4.4v.9c0-2.8-.2-5.6.9-7.1 1 1.7 2.2 4.3 2.6 1.8 5-.2 7.4-1.6 10.6-2.7 0 1.3-.2.7 1 1.8m60-3.6h.9c-1.7 1.4-3 4.3-4.4 6.2m-32.7-8.8h7" transform="matrix(1.477 0 0 1.545 -223 -481.4)"/>
+    </g>
+    <path id="path842" fill="#fff" fill-rule="evenodd" d="M293.6 279.3c-15.7 0-20.9 16.4-36.6 16.4h-.9v1c0 11.4.8 22 2.5 31.9 14.5-1 19.8-16.4 35-16.4 15.7 0 21 16.4 36.7 16.4 15.7 0 20.9-16.4 36.6-16.4 15.7 0 21 16.4 36.7 16.4 15.7 0 20.9-16.4 36.6-16.4 15.1 0 20.5 15.2 35 16.3a189.8 189.8 0 002.5-32.7h-.9c-15.7 0-20.9-16.4-36.6-16.4-15.7 0-21 16.4-36.6 16.4-15.6 0-21-16.4-36.7-16.4-15.7 0-21 16.4-36.6 16.4-15.6 0-21-16.4-36.7-16.4zm0 64.1c-12.2 0-18 10-27.5 14.3a151.4 151.4 0 0011.7 24.8c4.5-3.3 9.2-6.2 15.8-6.2 15.7 0 21 16.4 36.6 16.4 15.8 0 21-16.4 36.7-16.4 15.7 0 21 16.4 36.6 16.4 15.6 0 21-16.4 36.7-16.4a25 25 0 0115.5 6 152.8 152.8 0 0011.7-24.7c-9.2-4.5-15.1-14.2-27.2-14.2-15.7 0-21 16.4-36.7 16.4-15.7 0-20.9-16.4-36.6-16.4-15.7 0-21 16.4-36.7 16.4-15.7 0-20.9-16.4-36.6-16.4zm73.3 64c-15.7 0-21 16.5-36.6 16.5-14.9 0-20.4-14.7-34.2-16.3 18.5 20.6 39.4 33 53.7 40 4.9-3.8 9.9 4.5 17 4.5 7.3 0 12.2-8.4 17-4.7a176.2 176.2 0 0053.3-39.7c-13.4 2-19 16.2-33.6 16.2-15.7 0-20.9-16.4-36.6-16.4z"/>
+    <g id="g919" transform="translate(-527 21.8) scale(1.177)">
+      <path id="path844" fill="none" stroke="#512007" stroke-width=".5" d="M332.5 541.4a110 110 0 0110.5-3l16.3 15.7-13.4 2.7z" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <path id="path846" fill="none" stroke="#512007" stroke-width=".6" d="M413.6 471c.3-4.6 8.8-31 8.8-31m-5.9 31.3l6.7-31.1m-4.4 31.2l5.6-31.2m-10.5 27c1.5-.8 5.8-2 5.8-2m-3.7-2.6c1.4 0 4.3-1.2 4.3-1.2m-3.5-2.3a24 24 0 014.4-1.2m-3.8-3.2l4.7-.8m-2.6-3c0 .3 3.2.3 3.2.3m-2.4-3.7l3.2.5" transform="matrix(1.063 0 0 1.03 276.8 -178)"/>
+      <path id="path848" fill="none" stroke="#512007" stroke-width=".4" d="M413.6 471c.3-4.6 8.8-31 8.8-31m-5.9 30.1l6.7-30m-3.7 27.7c.2-1.7 4.9-27.6 4.9-27.6m-10.5 27c1.5-.8 5.8-2 5.8-2m-3.7-2.6c1.4 0 4.3-1.2 4.3-1.2m-3.5-2.3a24 24 0 014.4-1.2m-3.8-3.2l4.7-.8m-2.6-3c0 .3 3.2.3 3.2.3m-2.4-3.7l3.2.5" transform="matrix(-1.255 0 0 1.762 1290.4 -502)"/>
+      <path id="path850" fill="none" stroke="#512007" stroke-width=".5" d="M413.6 471c.3-4.6 8.8-31 8.8-31m-5.9 30.1l6.7-30m-3.7 27.7c.2-1.7 4.9-27.6 4.9-27.6m-10.5 27c1.5-.8 5.8-2 5.8-2m-3.7-2.6c1.4 0 4.3-1.2 4.3-1.2m-3.5-2.3a24 24 0 014.4-1.2m-3.8-3.2l4.7-.8m-2.6-3c0 .3 3.2.3 3.2.3m-2.4-3.7l3.2.5" transform="matrix(-1.255 0 0 1.312 1321.3 -302)"/>
+      <path id="path852" fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M395.3 572.2l.9-73s2.6-.3 2.6 0-.3 72.7-.6 73c-.3.3-3.2.5-2.9 0zm28.5-69.8l-.6 61.3-2 2.4.6-63.7z" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <path id="path854" fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M363 560.2s3 30 36.4 29.1c33.4-.9 42.7-30.2 42.7-30.2l-14.5-.6c-.3 0-11.6 14-26.2 13.7-14.6-.3-19.2-3.8-22.4-6.7-3.2-3-6-7.3-6-7.3l-17-6.7 1 6.4zm90.3-3l-1-4v-3.4l1.6-3.6s-25.3 3.7-25.3 4l-.1 6.8 24.8.1z" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <path id="path856" fill="none" stroke="#512007" stroke-width=".5" d="M448.5 549.8l-.6 6h4.1l-.3-6zm-4.3.3l-.3 6.4 2.6-.3.3-6.1zm-4.4 6.4v-5l2.6-.9.3 5zm-5-.3l.6-4.4 3 .3.2 4.7zm-5.5 0l.3-3.8 3-.3v4.4zm-67.4 3.7c.9 0 7.6 1.5 7.6 1.5l7 9.3" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <path id="path858" fill="none" stroke="#512007" stroke-width=".5" d="M366.8 561.1c.3.3 6.1 19.8 34 19.8s34.6-22.1 34.6-22.1" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <path id="path860" fill="none" stroke="#512007" stroke-width=".5" d="M439.8 559.4s-13.4 29-39 27c-25.5-2-29.6-11.6-31.6-16.6-2-5-3.2-9-3.2-9" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <path id="path862" fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M373.2 558.2c.3-1.7.3-54.4.3-54.4l-1.7-.2-.3 53.7 1.7 1zm-41.5-17.1l22 10.7-.5 1.5S332 543.3 332 543c0-.3.2-1.5-.3-2z" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <path id="path864" fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M341.8 537.9c0 .8 3.2 18.6 3.2 18.6s2 .3 2 0l-3.4-18.3zm20.4.5c1.1 0 21-3.2 21-3.2l-.4 3.2-19.5 2z" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <path id="path866" fill="#fecf3e" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M365 514.3c.7 0 7 3.2 9.7 2.4 2.7-.8.9-3 1.4-3 .6 0 2.6 1.5 3.8.3 1.2-1.1 2-4.6 1.5-4.3-.6.3-16 5.8-16.3 4.6z" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <path id="path868" fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M362.5 521.6c1.1.3 23.8-6.1 23.8-6.1s0 2-.3 2l-23.5 6.1z" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <path id="path870" fill="#fecf3e" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M415 512.6s1.5 3.5 3 2.9c1.5-.6 2.9-1.8 2.9-1.8s1.2 3 3.2 2.4c2-.6 3.2-3.8 3.2-3.8s2 .6 2.9.3c.9-.3 2-5 2-5l-17.1 5zm-1.7 28.2c-.3.6 1.5 2 3 2s2-2 2.3-1.4c.3.5.3 3.2 4 2.3 3.7-.9 3.8-3.5 3.8-3.5s-1.1.9 1.5 1.2c2.6.3 5.2-3.8 5-3.8-.4 0-19 3.5-19.6 3.2z" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <path id="path872" fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M363.4 513.1a5 5 0 00.2 2.7l19-6.4s.8-1.5 0-1.5-19.5 5.8-19.3 5.3zm25-4c.5 0 19.4-6.1 19.4-6.1s.3 2.6 0 2.6l-17.7 5.2-1.8-1.7z" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <path id="path874" fill="#fecf3e" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M413.3 521.9s-2.9 3.2-2 7.5c.9 4.4 2 8.2 2.3 8.2.3 0 3.5-5.8 7-6.1 3.5-.3 9.9 3.2 9.9 3.2s-.9-7-.6-10.2c.3-3.2 5.2-8.7 5.2-8.7l-21.8 6z" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <path id="path876" fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M386.9 516.6s-.6 2.7-.3 2.7l24.7-6.4V511l-24.4 5.5z" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <path id="path878" fill="#b6b6b4" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M355.5 551.8s-5.8-.8-5.5.6c.3 1.5 2.9 2.9 3.2 3.8.3.9-.9 4 .9 3.8 1.7-.3 3.4-1.5 3.4-2.4l-.3-5z" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <path id="path880" fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M387.8 537.3v2l20.9-2.9-.6-1.5z" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <path id="path882" fill="#fecf3e" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M363 540.8c.4 0 0 2.6 2.4 2 2.3-.6 2.9-2 2.9-2s.6 3.2 3.8 2.9c3.2-.3 5-3.8 5-3.8s.2 2.6 2.2 1.7c2-.9 2.6-2.9 2.6-2.9l-18.3 2.6-.5-.5zm0-17.2s-2.6.9-1.7 6.1c.9 5.2 3 8.2 3.2 8.2.3 0 2.6-5 6.1-5.8 3.5-1 9.6 2.6 9.6 2.6s-.6-4.7.3-9a18 18 0 013.8-7.6s-20.4 5.5-21.2 5.5z" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <path id="path884" fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M411.9 538.7l.3 1.8s21-2.6 21-3c0-.2 0-2-.4-2-.3 0-20.6 3.5-21 3.2zm-.3-18.6l.3 2 24.7-6.6s.6-1.8.3-1.8-24.7 7.3-25.3 6.4z" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <path id="path886" fill="none" stroke="#512007" stroke-width=".5" d="M414.2 510.8s-.3 1.8 0 1.8 18.3-4.4 18.3-4.7c0-.3 1.8-2 .3-1.7-1.4.3-18 5.5-18.6 4.6zm38.7 33.7l-18-28.4m-2.4 19.7c.3-.8 1.2-18.3 1.2-18.3" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <path id="path888" fill="#fecf3e" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M389 510c1 .2 3.1 3.2 4.3 2.6 1.2-.6 2.9-2.4 2.9-2.4s-.3 3.5 2 3c2.4-.6 2.7-3 2.7-3s1.7 1 3.2 0c1.4-.8 2.8-5.2 2.3-5.2s-16.9 5.2-17.5 5zm-.6 8.4c0 .6-3 5.2-2 9.6 1 4.4 2.5 8.4 2.8 8.4.3 0 4.7-4.6 8.5-5.5 3.7-.9 9.3 2.9 9 2.9-.3 0-1.5-4.4-1.5-7.6 0-3.2 4.4-13 4.4-13zm0 21c0 .2.8 2.2 2.9 2.2 2 0 2.3-2 2.3-2s-.3 3.5 2.9 3.2c3.2-.3 4.3-3.5 4.3-3.5s.3 1.8 3 .9c2.6-.9 6-3.8 5.8-3.8-.3 0-21 3.8-21.3 3z" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <use id="use890" width="992.1" height="496.1" x="0" y="0" transform="translate(-6.6 7.3)" xlink:href="#k"/>
+      <use id="use892" width="992.1" height="496.1" x="0" y="0" transform="translate(6.6 3.8)" xlink:href="#k"/>
+      <use id="use894" width="992.1" height="496.1" x="0" y="0" transform="translate(0 11)" xlink:href="#k"/>
+      <path id="k" fill="#be0f17" fill-rule="evenodd" stroke="#512007" stroke-width=".6" d="M409 477a1.9 1.9 0 11-3.8 0 1.9 1.9 0 013.8 0z" transform="matrix(.04 -1.072 1.024 .043 251.6 668)"/>
+      <path id="path897" fill="none" stroke="#512007" stroke-width=".5" d="M398.2 500c0-.2 9 3.8 9 4.1 0 .3 32 42.8 32.3 42.8m-16-42.8l8.2 3.5 2.6 6.4m-61.4-10.4c-.3 0 9 7 9 7l1.2 5.7M341.3 546c4-1.7 32.2-26.4 32.2-26.4m-39.8 21.7l31.7-26.7m21.2 4l30 49.8m-3.6-29.2s3.5 11.7 7 13.5a86 86 0 017.6 4.6" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <path id="path899" fill="none" stroke="#512007" stroke-width=".5" d="M412.6 539.5s2.5 13.8 6 16.4c3.5 2.6 7 5.5 7 5.5" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <path id="path901" fill="none" stroke="#512007" stroke-width=".5" d="M391 439s3.4 19.2 10.4 23.6a950 950 0 0112.8 8.1" transform="matrix(1.255 0 0 1.312 256.3 -299.5)"/>
+      <path id="path903" fill="none" stroke="#512007" stroke-width=".5" d="M390.7 438.7s7.5 15.2 14 19.8c6.3 4.7 15 9 15 9M366.3 440c2 3.5 1.7 10.2 4 12.5a66 66 0 015.8 7.6m-9.3-19.9c1.2 1.7 4.4 10.4 6.4 13 1.5 2.4 16.3 17.2 16.3 17.2" transform="matrix(1.255 0 0 1.312 256.3 -299.5)"/>
+      <path id="path905" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M384.6 471.1a2.2 2.2 0 11-4.4 0 2.2 2.2 0 014.4 0zm10.7 4.7a1.9 1.9 0 11-3.8 0 1.9 1.9 0 013.8 0zM409 477a1.9 1.9 0 11-3.8 0 1.9 1.9 0 013.8 0zm11.9-4.5c0 1-.7 1.7-1.6 1.7-.9 0-1.6-.8-1.6-1.7 0-.9.7-1.8 1.6-1.8.9 0 1.6.8 1.6 1.8zm9.6-5.7c0 .9-.9 1.6-1.9 1.6-1 0-1.9-.7-1.9-1.6 0-.9.9-1.6 1.9-1.6 1 0 1.9.7 1.9 1.6z" transform="matrix(1.255 0 0 1.312 256.3 -299.5)"/>
+      <path id="path907" fill="red" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M374.1 404.4c-.9.6-15.4 4.1-13.4 3.8 2-.3 13.7 3 13.4 2-.3-1 0-5.2 0-5.8zm24.7-4.3c-.6 0-9 3.2-8.7 3.2.3 0 9.6 2.6 9.3 2-.3-.6-.3-4.4-.6-5.2zm25.3 2.9c-.6.3-10.5 2.6-8.7 2.9 1.8.3 8.4 2.6 8.4 2 0-.5 0-4.6.3-5z" transform="matrix(1.255 0 0 1.312 256.3 -299.5)"/>
+      <path id="path909" fill="none" stroke="#512007" stroke-width=".5" d="M413.6 471c.3-4.6 8.8-31 8.8-31m-5.9 30.1l6.7-30m-3.7 27.7c.2-1.7 4.9-27.6 4.9-27.6m-10.5 27c1.5-.8 5.8-2 5.8-2m-3.7-2.6c1.4 0 4.3-1.2 4.3-1.2m-3.5-2.3a24 24 0 014.4-1.2m-3.8-3.2l4.7-.8m-2.6-3c0 .3 3.2.3 3.2.3m-2.4-3.7l3.2.5" transform="matrix(1.255 0 0 1.312 256.3 -299.5)"/>
+      <path id="path911" fill="none" stroke="#512007" stroke-width=".5" d="M413.6 471c.3-4.6 8.8-31 8.8-31m-5.9 31.3l6.7-31.1m-4.4 31.2l5.6-31.2m-10.5 27c1.5-.8 5.8-2 5.8-2m-3.7-2.6c1.4 0 4.3-1.2 4.3-1.2m-3.5-2.3a24 24 0 014.4-1.2m-3.8-3.2l4.7-.8m-2.6-3c0 .3 3.2.3 3.2.3m-2.4-3.7l3.2.5" transform="matrix(1.255 0 0 1.363 225.3 -323.4)"/>
+      <path id="path913" fill="none" stroke="#512007" stroke-width=".5" d="M413.6 471c.3-4.6 8.8-31 8.8-31m-5.9 30.1l6.7-30m-3.7 27.7c.2-1.7 4.9-27.6 4.9-27.6m-10.5 27c1.5-.8 5.8-2 5.8-2m-3.7-2.6c1.4 0 4.3-1.2 4.3-1.2m-3.5-2.3a24 24 0 014.4-1.2m-3.8-3.2l4.7-.8m-2.6-3c0 .3 3.2.3 3.2.3m-2.4-3.7l3.2.5" transform="matrix(-1.255 0 0 1.32 1259.2 -307.3)"/>
+      <path id="path915" fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M426.4 558.5l27.6.6.3-2-28.5-.3zm1.2-7.3c3.2 0 27.3-4.6 27.3-4.6s.9-3 0-3-27.3 5.6-27.3 5.6z" transform="matrix(1.255 0 0 1.312 259.4 -430)"/>
+      <use id="use917" width="992.1" height="496.1" x="0" y="0" transform="translate(0 5.5)" xlink:href="#k"/>
+    </g>
+  </g>
+  <g id="g1800" transform="scale(.5)">
+    <path id="path1778" fill="#012169" d="M0 0h512v512H0z"/>
+    <path id="path1780" fill="#FFF" d="M512 0v64L322 256l190 187v69h-67L254 324 68 512H0v-68l186-187L0 74V0h62l192 188L440 0z"/>
+    <path id="path1782" fill="#C8102E" d="M184 324l11 34L42 512H0v-3zm124-12l54 8 150 147v45zM512 0L320 196l-4-44L466 0zM0 1l193 189-59-8L0 49z"/>
+    <path id="path1784" fill="#FFF" d="M176 0v512h160V0zM0 176v160h512V176z"/>
+    <path id="path1786" fill="#C8102E" d="M0 208v96h512v-96zM208 0v512h96V0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/fm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/fm.svg
new file mode 100644
index 0000000..791fde9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/fm.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-fm" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M244.2 0h496v496h-496z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#a)" transform="translate(-252) scale(1.032)">
+    <path fill="#6797d6" d="M0 0h992.1v496H0z"/>
+    <path fill="#fff" d="M507.9 84.5h38.8l-31.5 21.4 12 34.8-31.3-21.5-31.5 21.5 12-34.8L445 84.4h39l12-34.7m12 363h38.8l-31.5-21.5 12-34.8-31.3 21.5-31.5-21.5 12 34.8-31.4 21.5H484l12 34.7M346 230.1l37.2-11.4-23.9 29.8 21.7 29.7-36.3-11.4-23.8 29.8 1.4-36.8-36.4-11.4 37.2-11.3 1.3-36.8m321 29.8l-37.1-11.4 23.8 29.7-21.7 29.8 36.4-11.4 23.7 29.8-1.3-36.8 36.4-11.4-37.2-11.3-1.3-36.8"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/fo.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/fo.svg
new file mode 100644
index 0000000..b28915c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/fo.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-fo" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="0" clip-path="url(#a)">
+    <path fill="#fff" d="M-78 0h708.2v512H-78z"/>
+    <path fill="#003897" d="M-75.9 199.1h198.3V0h113.3v199.1h396.6V313H235.7v199H122.4V312.9H-76V199z"/>
+    <path fill="#d72828" d="M-75.9 227.6h226.6V0h56.7v227.6h424.9v56.9h-425V512h-56.6V284.4H-75.9v-56.8z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/fr.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/fr.svg
new file mode 100644
index 0000000..f8e3ca0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/fr.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-fr" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h512v512H0z"/>
+    <path fill="#00267f" d="M0 0h170.7v512H0z"/>
+    <path fill="#f31830" d="M341.3 0H512v512H341.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ga.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ga.svg
new file mode 100644
index 0000000..16c81b3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ga.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ga" viewBox="0 0 512 512">
+  <g fill-rule="evenodd">
+    <path fill="#ffe700" d="M512 512H0V0h512z"/>
+    <path fill="#36a100" d="M512 170.7H0V0h512z"/>
+    <path fill="#006dbc" d="M512 512H0V341.3h512z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gb-eng.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gb-eng.svg
new file mode 100644
index 0000000..18026d2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gb-eng.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gb-eng" viewBox="0 0 512 512">
+  <path fill="#fff" d="M0 0h512v512H0z"/>
+  <path fill="#ce1124" d="M215 0h82v512h-82z"/>
+  <path fill="#ce1124" d="M0 215h512v82H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gb-nir.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gb-nir.svg
new file mode 100644
index 0000000..6d8a3a3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gb-nir.svg
@@ -0,0 +1,131 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-gb-nir" viewBox="0 0 512 512">
+  <path id="rect5053" fill="#fff" stroke-width="4.7" d="M0 0h512v512H0z"/>
+  <rect id="rect1126" fill="#fff" fill-rule="evenodd" rx="0" ry="0"/>
+  <rect id="a" width="512" height="102.4" y="204.8" fill="#c00" fill-rule="evenodd" rx="0" ry="0"/>
+  <use id="use1129" width="600" height="300" transform="matrix(0 1 -.9375 0 496 0)" xlink:href="#a"/>
+  <path id="path1131" fill="#ebeae3" fill-rule="evenodd" stroke="#000" stroke-width=".5" d="M291.2 156.4c3-5.2 1.2-8.5-3.4-9.5 0 0-14.9 5-31 5.6-16 .6-35-4.3-35-4.3-3.5 2.3-2.7 7.8-1 11.2 0 0 16.8 5.9 36 5.3a108 108 0 0030.1-5.8c3.7-1.3 4.3-2.5 4.3-2.5z"/>
+  <path id="path1133" fill="#fff" stroke="#161111" stroke-width="1.6" d="M320 389.6l-30.9-64.2-70.9 5.4 40-58.8-40-58.8 71 5.4 30.8-64.1 30.9 64 70.9-5.3-40 58.8 40 58.8-71-5.4z" transform="matrix(1 0 0 1.06667 -64 -34.1)"/>
+  <path id="path1135" fill="#b02320" fill-rule="evenodd" stroke="#000" stroke-width="1.4" d="M255.5 130.4c38.8 6.8 37.4 8.7 37.4 8.7L303 107s1.1-6.4-1.7-10.3-10.5-1.7-10.5-1.7-1-5.2-4.5-6.4c-3.4-1.3-16 4.9-20 6.2-4 1.4-6 2.7-11.5 2.6a52.1 52.1 0 01-17.3-6.3 15 15 0 00-6.9-2c-2.4.1-5 .8-6.3 2.6-1.2 1.9-1.2 4.1-1.2 4.1s-2-1.3-5.3-1.3c-3.2 0-5 .4-6.5 2.2-1.4 1.9-3.4 7-3.4 7l3.7 8.7.2 12 7.5 12.8 36.2-6.7z"/>
+  <path id="path1137" fill="#ebeae3" fill-rule="evenodd" stroke="#000" stroke-width=".5" d="M291.7 148.6s2 2.5 1.9 3.4c-.1.8-1 1.6-1 1.6s.7.7.5 1.7c-.1 1-1.4 1-1.4 1s.3.9-.5 1.3-3.8 1-3.8 1-15-4.5-31-4.5-35 5.6-35 5.6-2-.8-2-2.1c-.2-1.4.1-2.4.1-2.4s-1 .2-1.3-.8c-.4-1.4.1-2.5.1-2.5s-.7.2.1-1.6a4 4 0 011.5-1.9s16.8-6.4 36-6.4a101 101 0 0135.8 6.6z"/>
+  <path id="path1139" fill="none" stroke="#000" stroke-width="1.2" d="M212.2 108.3s-.6-2.4.8-4.4a4.1 4.1 0 014.7-1.5c.8.4.7 1.3 1.7 1.6 1 .3 1.8-.5 1.8-.5"/>
+  <path id="path1141" fill="#fc0" fill-opacity=".9" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M305.8 113.7l-5.8 12.8-2.3.5s-1.4-1-5.4-.6c-2.8.2-3.7 1-3.7 1l5.2-12.8s.4 2.7 1 4.3c.8 2 3.7 4 3.7 4s.4-2.4-.4-5.4c-.8-3.3-2.8-7.8-2.8-7.8l10.5 4z"/>
+  <path id="path1143" fill="#121116" stroke="#121116" stroke-linejoin="round" stroke-width="1.2" d="M252.5 73.8h6.5v29.5h-6.5z"/>
+  <path id="path1145" fill="#f6ca1f" fill-rule="evenodd" stroke="#000" d="M212.6 128.3l4.1 9.5s17.9-7.4 38.9-7.3c31.5.2 40.5 7 40.5 7l4.6-11.8-3.5 2.1-3.6 2.4-4 1.7-5-.4-4.4-3.5-2.2-5-3.7 3.7-6.6 1.6-6.4-1.8-5.6-7.6s-4.2 8.4-9.6 9c-7.7.7-12.1-4-12.1-4s-2.9 6.8-7.6 8c-7.5 2-13.7-3.6-13.8-3.6z"/>
+  <g id="g1265" stroke-width="2.2">
+    <path id="path1147" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.52155 0 0 .55632 59.9 -67.6)"/>
+    <path id="path1149" fill="#a3afb8" fill-rule="evenodd" d="M279.5 71.9s2.7 0 3-1.2c.3-1.2-.2-2.7-.2-2.7s1.3 1.5 1 2.7c-.4 1.1-.8 1.4-1.7 1.7-.6.1-1.6-.1-2-.5z"/>
+    <path id="path1151" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.52155 0 0 .55632 51.7 -63.5)"/>
+    <path id="path1153" fill="#a3afb8" fill-rule="evenodd" d="M271.3 76s2.8 0 3-1.3c.3-1.1-.2-2.7-.2-2.7s1.3 1.6 1 2.7c-.4 1.2-.8 1.5-1.7 1.8-.6.1-1.6-.1-2-.5z"/>
+    <path id="path1155" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.52155 0 0 .55632 69.3 -70)"/>
+    <path id="path1157" fill="#a3afb8" fill-rule="evenodd" d="M289 69.5s2.7 0 3-1.2c.3-1.2-.2-2.7-.2-2.7s1.3 1.5 1 2.7c-.4 1.1-.8 1.5-1.7 1.7a3 3 0 01-2.1-.5z"/>
+    <path id="path1159" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.52155 0 0 .55632 80 -67.7)"/>
+    <path id="path1161" fill="#a3afb8" fill-rule="evenodd" d="M299.7 71.8s2.7 0 3-1.2c.3-1.2-.2-2.7-.2-2.7s1.3 1.5 1 2.7c-.4 1.1-.8 1.5-1.7 1.7-.7.2-1.6-.1-2.1-.5z"/>
+    <path id="path1163" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.52155 0 0 .55632 88.2 -60.5)"/>
+    <path id="path1165" fill="#a3afb8" fill-rule="evenodd" d="M307.9 79s2.7 0 3-1.3c.2-1.2-.2-2.7-.2-2.7s1.3 1.5.9 2.7c-.4 1.2-.7 1.5-1.7 1.7-.6.2-1.5 0-2-.5z"/>
+    <path id="path1167" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.52155 0 0 .55632 91.7 -48.8)"/>
+    <path id="path1169" fill="#a3afb8" fill-rule="evenodd" d="M311.4 90.7s2.7 0 3-1.2c.2-1.2-.2-2.7-.2-2.7s1.3 1.5.9 2.7c-.4 1.2-.7 1.5-1.7 1.7-.6.2-1.5-.1-2-.5z"/>
+    <path id="path1171" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.52155 0 0 .55632 90.4 -36.9)"/>
+    <path id="path1173" fill="#a3afb8" fill-rule="evenodd" d="M310 102.6s2.8 0 3-1.2c.3-1.2-.1-2.7-.1-2.7s1.3 1.5.9 2.7c-.4 1.1-.7 1.5-1.7 1.7-.6.1-1.5-.1-2-.5z"/>
+    <path id="path1175" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.52155 0 0 .55632 85.5 -26.5)"/>
+    <path id="path1177" fill="#a3afb8" fill-rule="evenodd" d="M305.1 113s2.7 0 3-1.2c.3-1.2-.2-2.7-.2-2.7s1.3 1.5 1 2.7c-.4 1.2-.8 1.5-1.7 1.7-.6.2-1.6 0-2-.5z"/>
+    <path id="path1179" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.52155 0 0 .55632 43.7 -60.4)"/>
+    <path id="path1181" fill="#a3afb8" fill-rule="evenodd" d="M263.4 79.1s2.7 0 3-1.2c.3-1.2-.2-2.7-.2-2.7s1.3 1.5 1 2.7c-.4 1.1-.8 1.4-1.7 1.7a3 3 0 01-2.1-.5z"/>
+    <g id="g1187" stroke-width="2.7">
+      <path id="path1183" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.43616 0 0 .46523 70.3 -38.8)"/>
+      <path id="path1185" fill="#a3afb8" fill-rule="evenodd" d="M254 77.9s2.3 0 2.5-1c.3-1-.1-2.3-.1-2.3s1 1.2.8 2.2c-.4 1-.7 1.3-1.4 1.5a2.3 2.3 0 01-1.8-.4z"/>
+    </g>
+    <g id="g1193" stroke-width="2.7">
+      <path id="path1189" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.43616 0 0 .46523 70.4 -35)"/>
+      <path id="path1191" fill="#a3afb8" fill-rule="evenodd" d="M254 81.6s2.3 0 2.6-1c.2-1-.2-2.2-.2-2.2s1 1.2.8 2.2c-.3 1-.6 1.3-1.4 1.5a2.3 2.3 0 01-1.7-.4z"/>
+    </g>
+    <g id="g1199" stroke-width="2.7">
+      <path id="path1195" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.43616 0 0 .46523 70.6 -29.5)"/>
+      <path id="path1197" fill="#a3afb8" fill-rule="evenodd" d="M254.3 87.2s2.2 0 2.5-1c.2-1-.2-2.3-.2-2.3s1 1.3.8 2.3c-.3 1-.6 1.2-1.4 1.4a2.3 2.3 0 01-1.7-.4z"/>
+    </g>
+    <g id="g1205" stroke-width="2.5">
+      <path id="path1201" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.47168 0 0 .50313 55.5 -33)"/>
+      <path id="path1203" fill="#a3afb8" fill-rule="evenodd" d="M254.2 93.3s2.5-.1 2.7-1.2c.3-1-.1-2.4-.1-2.4s1.1 1.4.8 2.4c-.4 1.1-.7 1.4-1.5 1.6a2.5 2.5 0 01-1.9-.5z"/>
+    </g>
+    <path id="path1207" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.52155 0 0 .55632 34.4 -38.2)"/>
+    <path id="path1209" fill="#a3afb8" fill-rule="evenodd" d="M254 101.3s2.8 0 3-1.2c.3-1.2-.1-2.7-.1-2.7s1.3 1.5.9 2.7c-.4 1.2-.7 1.5-1.7 1.7-.6.2-1.5 0-2-.5z"/>
+    <g id="g1215" stroke-width="2.4">
+      <path id="path1211" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.48982 0 0 .52248 47.7 -13.5)"/>
+      <path id="path1213" fill="#a3afb8" fill-rule="evenodd" d="M254 117.5s2.6 0 2.8-1.1c.3-1.2-.1-2.6-.1-2.6s1.2 1.4.8 2.5c-.3 1.2-.7 1.4-1.5 1.7a2.6 2.6 0 01-2-.5z"/>
+    </g>
+    <path id="path1217" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.52155 0 0 .55632 25 -60.5)"/>
+    <path id="path1219" fill="#a3afb8" fill-rule="evenodd" d="M244.6 79s2.7 0 3-1.2c.3-1.2-.2-2.7-.2-2.7s1.3 1.5 1 2.7c-.4 1.1-.8 1.5-1.7 1.7-.6.1-1.6-.1-2-.5z"/>
+    <path id="path1221" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.52155 0 0 .55632 16.6 -64)"/>
+    <path id="path1223" fill="#a3afb8" fill-rule="evenodd" d="M236.3 75.5s2.7 0 3-1.2c.2-1.2-.2-2.7-.2-2.7s1.3 1.5 1 2.7c-.5 1.1-.8 1.4-1.8 1.7-.6.1-1.5-.1-2-.5z"/>
+    <path id="path1225" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.52155 0 0 .55632 8.6 -68)"/>
+    <path id="path1227" fill="#a3afb8" fill-rule="evenodd" d="M228.3 71.5s2.7 0 3-1.2c.3-1.2-.2-2.7-.2-2.7s1.3 1.5 1 2.7c-.4 1.1-.8 1.4-1.7 1.7a3 3 0 01-2.1-.5z"/>
+    <path id="path1229" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.52155 0 0 .55632 -.5 -70.2)"/>
+    <path id="path1231" fill="#a3afb8" fill-rule="evenodd" d="M219.1 69.3s2.7 0 3-1.2c.3-1.2-.2-2.7-.2-2.7s1.3 1.5 1 2.7c-.4 1.2-.8 1.5-1.7 1.7-.6.2-1.6 0-2-.5z"/>
+    <path id="path1233" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.52155 0 0 .55632 -11.4 -67.4)"/>
+    <path id="path1235" fill="#a3afb8" fill-rule="evenodd" d="M208.3 72.1s2.7 0 3-1.2c.3-1.2-.2-2.7-.2-2.7s1.3 1.5 1 2.7c-.4 1.2-.8 1.5-1.7 1.7-.7.2-1.6-.1-2-.5z"/>
+    <path id="path1237" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.52155 0 0 .55632 -19 -59.3)"/>
+    <path id="path1239" fill="#a3afb8" fill-rule="evenodd" d="M200.7 80.3s2.7-.1 3-1.3c.2-1.2-.2-2.7-.2-2.7s1.3 1.5.9 2.7c-.4 1.2-.7 1.5-1.7 1.7-.6.2-1.5 0-2-.5z"/>
+    <path id="path1241" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.52155 0 0 .55632 -22.2 -47.9)"/>
+    <path id="path1243" fill="#a3afb8" fill-rule="evenodd" d="M197.5 91.7s2.7 0 3-1.3c.3-1.2-.2-2.7-.2-2.7s1.3 1.5 1 2.7c-.4 1.2-.8 1.5-1.7 1.7-.7.2-1.6 0-2.1-.4z"/>
+    <path id="path1245" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.52155 0 0 .55632 -20.8 -36)"/>
+    <path id="path1247" fill="#a3afb8" fill-rule="evenodd" d="M198.9 103.6s2.7 0 3-1.3c.3-1.1-.2-2.7-.2-2.7s1.3 1.6 1 2.7c-.4 1.2-.8 1.5-1.7 1.8a3 3 0 01-2.1-.5z"/>
+    <path id="path1249" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.52155 0 0 .55632 -15.6 -25.2)"/>
+    <path id="path1251" fill="#a3afb8" fill-rule="evenodd" d="M204 114.3s2.8 0 3-1.2c.3-1.2-.1-2.7-.1-2.7s1.3 1.5 1 2.7c-.5 1.2-.8 1.5-1.8 1.7-.6.2-1.5 0-2-.5z"/>
+    <g id="g1257" stroke-width="2.8">
+      <path id="path1253" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.31597 -.0903 .13499 .53737 45.4 32)"/>
+      <path id="path1255" fill="#a3afb8" fill-rule="evenodd" d="M212.3 128.7s1.6-.5 1.5-1.7c0-1.2-.7-2.6-.7-2.6s1.1 1.3 1.2 2.5c0 1.2-.1 1.5-.6 2-.3.2-1 .1-1.4-.2z"/>
+    </g>
+    <g id="g1263" stroke-width="2.8">
+      <path id="path1259" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.31758 .08362 -.125 .54011 196 -42.9)"/>
+      <path id="path1261" fill="#a3afb8" fill-rule="evenodd" d="M298.3 127.8s1.7.4 2.1-.7c.5-1.1.5-2.7.5-2.7s.5 1.7 0 2.8-.8 1.3-1.4 1.4c-.4 0-1-.4-1.2-.8z"/>
+    </g>
+  </g>
+  <path id="path1267" fill="#b3a192" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M252.7 57.4l.3 6s-6.8.7-7 1.4c-1.4 3.1 1.5 7.3 1.5 7.3s2.3-1.8 8-1.8c5.5 0 8.3 1.5 8.3 1.5s1.4-2.5 1.4-4.3c0-1.8-.6-3.6-.6-3.6l-3.6-.4h-2.5l-.2-6.2-5.6.1z"/>
+  <path id="path1269" fill="#f0ddcb" stroke="#121116" stroke-linejoin="round" stroke-width=".6" d="M262.4 66.8c0 .7-.6 1.3-1.2 1.3a1.2 1.2 0 01-1.3-1.3 1.2 1.2 0 011.2-1.2 1.2 1.2 0 011.3 1.2m2.7.7c0 .7-.5 1.3-1.2 1.3s-1.3-.6-1.3-1.3a1.3 1.3 0 011.3-1.3c.7 0 1.2.6 1.2 1.3m-5.5-.7c0 .7-.6 1.2-1.2 1.2-.7 0-1.2-.5-1.2-1.2a1.2 1.2 0 011.1-1.3 1.2 1.2 0 011.3 1.3m-5.6 0c0 .8-.6 1.3-1.3 1.3-.7 0-1.2-.5-1.2-1.2 0-.8.5-1.3 1.2-1.3s1.3.5 1.3 1.2m-3.1.3c0 .7-.6 1.3-1.3 1.3s-1.2-.6-1.2-1.3c0-.7.5-1.3 1.2-1.3s1.3.6 1.3 1.3m5.7-3.7c0 .6-.5 1-1 1a1 1 0 01-1.1-1 1 1 0 011-1.1 1 1 0 011 1m0-5c0 .6-.4 1-1 1a1 1 0 01-1-1 1 1 0 011-1 1 1 0 011 1m0 2.7c0 .6-.4 1.1-1 1.1a1 1 0 01-1-1 1 1 0 011-1.2 1 1 0 011 1.1m-8.8 7c0 .7-.5 1.2-1.2 1.2-.6 0-1.2-.5-1.2-1.2a1.2 1.2 0 011.2-1.3 1.2 1.2 0 011.2 1.3"/>
+  <path id="path1271" fill="#916c68" stroke="#4d3126" stroke-linejoin="round" stroke-width=".6" d="M256.9 66.5c0 .8-.6 1.4-1.4 1.4a1.4 1.4 0 01-1.3-1.4 1.4 1.4 0 011.3-1.3 1.4 1.4 0 011.4 1.3"/>
+  <g id="g1277" stroke-width="2.5">
+    <path id="path1273" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="3" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.386 0 0 .41173 91.8 -53.4)"/>
+    <path id="path1275" fill="#a3afb8" fill-rule="evenodd" d="M254.4 49.9s2 0 2.2-1c.2-.8-.1-2-.1-2s1 1.2.7 2c-.3 1-.6 1.2-1.2 1.3a2 2 0 01-1.6-.3z"/>
+  </g>
+  <path id="path1279" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width=".5" d="M216 138.8s2.2 2.2 2.8 4.2c.6 2 1.5 7.3 1.5 7.3s23.2-7 34.6-6.4c11.4.6 37.7 6.8 37.7 6.8l1-6.2c.5-3.2 2.7-6.6 2.7-6.6s-25.2-8.4-41-7.6c-15.9.8-23.8 2.6-27.3 3.8a248.5 248.5 0 00-12 4.7z"/>
+  <path id="path1281" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M250.7 38.5h10s-2.5 1.8-3 3.5c-.4 1.5-.3 4-.3 4s2.7 0 4-1.1l3.7-3v13.5s-2.5-2.5-4-3.4c-1.7-1-3.5-1.3-3.5-1.3s0 2.2.8 3.5l4.3 6.2-14.3.6s3.4-3.8 4.7-6.6c1-1.8.6-3.7.6-3.7s-2.4 0-3.6.9c-1.3.9-3.4 3.6-3.4 3.6v-13s1 2.5 3 3.4c2 1 3.8.5 3.8.5s.4-2.6-.4-4.2c-.9-1.7-2.6-3.5-2.4-3.4z"/>
+  <path id="path1283" fill="#fc0" fill-rule="evenodd" stroke="#121116" stroke-width="1.2" d="M249.9 81.5s-7.1 0-13.2-3.9c-6.1-3.8-12.3-7.8-21.3-5.6-1.8.5-8.7 3.7-11.7 14-2 7.3.4 16 2.5 20 2.2 3.9 5.6 7.9 5.6 7.9l3.7-2.7s-9.4-8.4-8.2-19.4c1-11 6.2-13.5 6.2-13.5s6.4-5.3 14.9-.3a76.8 76.8 0 0025.3 9.2c.6 0-4-5.7-3.8-5.7z"/>
+  <path id="path1285" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M210.5 122.7l-3.8-8 11.4-4.7s-2.8 4-3.4 6.7c-.8 3.4-.5 6.3-.5 6.3s1-.9 2.3-3c1-1.8 2.6-7.9 2.6-7.9l5.1 17.4s-2.6-2.8-4.5-3.1c-2-.4-4.6.3-4.6.3l-3 1-1.6-5z"/>
+  <path id="path1287" fill="#fc0" fill-rule="evenodd" stroke="#121116" stroke-width="1.2" d="M262.7 81.4s7.1 0 13.2-4c6.1-3.8 12.2-7.8 21.3-5.5 1.8.5 8.6 3.6 11.6 14 2.1 7.2-.3 16-2.5 20l-3.6 6.2-4.4-1.7s8.1-7.8 7-18.8c-1.1-11-6.2-13.5-6.2-13.5s-6.4-5.3-14.9-.3-16.8 7.3-16.8 7.3-7.8 2-8.5 2c-.7-.1 4-5.8 3.8-5.7z"/>
+  <path id="path1289" fill="#fc0" stroke="#121116" stroke-linejoin="round" stroke-width="1.2" d="M259 73.9h3v29.5h-3zm-10-.1h3.5v29.5H249z"/>
+  <path id="path1291" fill="#fc0" stroke="#121116" stroke-linejoin="round" stroke-width="1.2" d="M265.2 66.9a9.6 9.6 0 01-9.7 9.5 9.6 9.6 0 01-9.7-9.5 9.6 9.6 0 019.6-9.5 9.6 9.6 0 019.8 9.4"/>
+  <path id="path1293" fill="#fc0" fill-rule="evenodd" stroke="#000" d="M246.9 103.2l16.7-.1s-2 1.2-3.6 4.4c-1.7 3.2-1.5 5.2-1.5 5.2s2.6 0 4.3-1.5c1.8-1.3 3.8-4 3.8-4v16.5s-1.3-2.1-3.3-3.4c-2-1.2-4.8-1.2-4.8-1.2h-5.7s-2.6.2-3.7 1a29.9 29.9 0 00-3.7 3.4L245 108s.8 2.7 3.5 3.8 4.2 1 4.2 1 0-3.5-1.4-5.3-4.5-4.2-4.5-4.3z"/>
+  <path id="path1295" fill="#f6ca1f" fill-rule="evenodd" stroke="#000" d="M256.2 116s2.4 6.1 5.3 8.8c1.6 1.6 6.6 2.8 8.8 2.2 5-1.4 8.6-5.7 8.6-5.7s-.2 4.7 3 7.3c3.1 2.6 5.6 3.3 8.2 2.5 2.7-.8 10-6.6 10-6.6l1.6 1.4s-4.3 4.4-8.7 6.7c-2.3 1.2-9.3.6-11.5-1.4-2.3-1.9-3.6-6.5-3.6-6.5s-1.4 3-4.4 4c-3 1-7 1-10.9-.2-2.5-.8-5.9-4.5-6.5-5.8-.6-1.2-.4-2-.4-2s-2 5.8-5.8 7.4a17.6 17.6 0 01-11.5.4c-3.6-1.1-3.9-3.3-3.9-3.3s-.2 6-8 7.8c-8 1.8-14.2-4.4-14.2-4.4l1.1-1.7s4.4 5.3 11.2 4.8c6.8-.5 9-9.8 9-9.8s3 4.9 11 5c7.9 0 10.2-11 10.2-11l1.4.2z"/>
+  <g id="g1305" fill="#fc0" stroke="#000" stroke-width="2.2">
+    <path id="path1297" fill-rule="evenodd" d="M338.6 336.3s0-5.3 1.2-6.9a4.6 4.6 0 015-2c1.3.4 2.8 1.6 2.5 5.3-.2 3.7-1.2 5.5-.1 6.9 1 1.4 1.2 2.3 3.4 2 2-.3 3-1 2.5-3-.4-2-1 .2-1.5-1.5-.4-1.6 2.1-8.7 1.7-13.1-.4-4.3-2-7.8-5.3-8.6-3.1-.8-5.8-.8-8.7 1.3a35 35 0 00-6.3 8.7v14.3l5.7-.4-.1-3z" transform="matrix(.52155 0 0 .55632 60 -67.5)"/>
+    <path id="path1299" fill-rule="evenodd" d="M327.8 340.1s-2.3-4.8-4-5.8a4.7 4.7 0 00-5.3.1c-1 1-1.9 2.6-.2 6 1.7 3.2 3.3 4.5 2.9 6.2-.5 1.7-.2 2.6-2.3 3.2s-3.2.3-3.6-1.7c-.3-2 1.1-.3.8-2-.3-1.6-5.4-7.2-6.7-11.4-1.4-4-1.3-8 1.4-10 2.5-2 5-3 8.4-2.2 3.4.7 9.3 5.4 9.3 5.4l5.8 13-5.5 2-1-2.8z" transform="matrix(.52155 0 0 .55632 60 -67.5)"/>
+    <path id="path1301" fill-rule="evenodd" d="M326.7 297.9s-5.7 9.5-4.4 16.8c1.2 7.3 8.8 23 8.8 23v2l4-.4-.8-2.2s2-18.7.7-24.6c-.9-4.4-8.3-14.5-8.3-14.6zm9 43.4s2.8 3.4 6.2 5c3.6 1.8 5.2 1.8 6.6.7 1-.8.7-4.2-.5-5.2-1.3-.9-2.7-.4-3 .5-.3 1.6-.8 1.5-2 .9l-5.5-3.3-1.8 1.4zm-4.4.8s-1.2 4.2-3.6 7c-2.6 3.2-4 3.9-5.8 3.5-1.3-.3-2.3-3.6-1.6-5 .8-1.4 2.3-1.5 2.8-.7 1 1.2 1.5 1 2.3 0a149.1 149.1 0 003.7-5.4l2.2.6z" transform="matrix(.52155 0 0 .55632 60 -67.5)"/>
+    <path id="path1303" stroke-linejoin="round" d="M342.1 342c0 1.2-4 2.2-8.8 2.2s-8.9-1-9-2.3c0-1.2 4-2.2 8.9-2.2s8.9 1 8.9 2.2" transform="matrix(.51436 -.09206 .0863 .54866 33 -35.2)"/>
+  </g>
+  <g id="g1315" fill="#fc0" stroke="#000" stroke-width="2.2">
+    <path id="path1307" fill-rule="evenodd" d="M338.6 336.3s0-5.3 1.2-6.9a4.6 4.6 0 015-2c1.3.4 2.8 1.6 2.5 5.3-.2 3.7-1.2 5.5-.1 6.9 1 1.4 1.2 2.3 3.4 2 2-.3 3-1 2.5-3-.4-2-1 .2-1.5-1.5-.4-1.6 2.1-8.7 1.7-13.1-.4-4.3-2-7.8-5.3-8.6-3.1-.8-5.8-.8-8.7 1.3a35 35 0 00-6.3 8.7v14.3l5.7-.4-.1-3z" transform="matrix(.48843 .1951 -.1829 .521 177.8 -120.5)"/>
+    <path id="path1309" fill-rule="evenodd" d="M327.8 340.1s-2.3-4.8-4-5.8a4.7 4.7 0 00-5.3.1c-1 1-1.9 2.6-.2 6 1.7 3.2 3.3 4.5 2.9 6.2-.5 1.7-.2 2.6-2.3 3.2s-3.2.3-3.6-1.7c-.3-2 1.1-.3.8-2-.3-1.6-5.4-7.2-6.7-11.4-1.4-4-1.3-8 1.4-10 2.5-2 5-3 8.4-2.2 3.4.7 9.3 5.4 9.3 5.4l5.8 13-5.5 2-1-2.8z" transform="matrix(.48843 .1951 -.1829 .521 177.8 -120.5)"/>
+    <path id="path1311" fill-rule="evenodd" d="M326.7 297.9s-5.7 9.5-4.4 16.8c1.2 7.3 8.8 23 8.8 23v2l4-.4-.8-2.2s2-18.7.7-24.6c-.9-4.4-8.3-14.5-8.3-14.6zm9 43.4s2.8 3.4 6.2 5c3.6 1.8 5.2 1.8 6.6.7 1-.8.7-4.2-.5-5.2-1.3-.9-2.7-.4-3 .5-.3 1.6-.8 1.5-2 .9l-5.5-3.3-1.8 1.4zm-4.4.8s-1.2 4.2-3.6 7c-2.6 3.2-4 3.9-5.8 3.5-1.3-.3-2.3-3.6-1.6-5 .8-1.4 2.3-1.5 2.8-.7 1 1.2 1.5 1 2.3 0a149.1 149.1 0 003.7-5.4l2.2.6z" transform="matrix(.48843 .1951 -.1829 .521 177.8 -120.5)"/>
+    <path id="path1313" stroke-linejoin="round" d="M342.1 342c0 1.2-4 2.2-8.8 2.2s-8.9-1-9-2.3c0-1.2 4-2.2 8.9-2.2s8.9 1 8.9 2.2" transform="matrix(.51196 .1062 -.09955 .5461 141.8 -100.3)"/>
+  </g>
+  <path id="path1317" fill="#cca715" fill-rule="evenodd" stroke="#000" stroke-width=".5" d="M215 138.5s.6 2.2 1.8 1c1.1-1 17.2-7.8 39.8-7.8s37.6 6.6 38.5 7c.9.4 1.3 1 2 0 .8-.9-.7-2.4-.7-2.4s-15.8-7.1-40.4-7c-24.7 0-40.6 7.6-40.6 7.6s-1 .8-.3 1.6z"/>
+  <path id="path1319" fill-rule="evenodd" d="M243.8 148.6s.8-2.2 2-2.6c1-.3 2.6.8 2.6.8s-1.9-.2-2.5.1c-.5.4-.7 1.3-.7 1.3s.4-.7 1.9-.7l1.6.1s-2.5.2-3 1c-.6.7 2.3 1 2.3 1s-4.5.1-5-.2c-.7-.3-1-1.2-2-1-1 .4-2 1.3-2 1.3s1-2 1.8-2c.7 0 1.1 0 1.8.2s1.2.7 1.2.7zm-16.7 3.9s.3-2.3 1.5-3c1-.5 2.7.3 2.7.3s-2 .1-2.5.6c-.4.5-.4 1.4-.4 1.4s.2-.8 1.7-1l1.6-.3s-2.4.7-2.8 1.6c-.5.9 2.5.6 2.5.6s-4.4 1-5 .8c-.7-.2-1.2-1-2.2-.6-.9.5-1.7 1.6-1.7 1.6s.8-2.2 1.5-2.4c.7-.1 1-.2 1.8 0 .7.1 1.3.4 1.3.4zm30.9-4.7s.8-2.1 2-2.4c1.1-.3 2.6.8 2.6.8s-1.9-.2-2.5 0c-.5.4-.8 1.3-.8 1.3s.5-.7 2-.5l1.6.1s-2.5 0-3.1.8c-.6.7 2.3 1.3 2.3 1.3s-4.5-.3-5-.6c-.6-.3-1-1.3-2-1.1-1 .2-2 1.1-2 1.1s1.2-2 1.9-2c.7.1 1.1.1 1.8.5l1.2.7zm14.1 1.7s1-2 2.4-2.1c1-.2 2.4 1.1 2.4 1.1s-1.8-.5-2.5-.3c-.6.3-.9 1.2-.9 1.2s.5-.7 2-.3l1.6.3s-2.5-.2-3.2.4c-.7.7 2.1 1.6 2.1 1.6s-4.4-.8-5-1.2c-.4-.4-.7-1.5-1.7-1.4-1 .1-2.2 1-2.2 1s1.5-1.9 2.2-1.8c.7.1 1.1.2 1.7.6l1.1.9zm14 2.7s1-1.5 2.1-1.6c.9 0 1.9 1.2 1.9 1.2s-1.5-.6-2-.4c-.5 0-.8.8-.8.8s.5-.5 1.6-.1l1.3.4s-2-.4-2.6 0c-.6.5 1.6 1.5 1.6 1.5s-3.5-1-4-1.4c-.3-.3-.4-1.2-1.2-1.2-.9 0-1.9.6-1.9.6s1.3-1.4 1.9-1.2c.5.1.9.2 1.3.6l.9.8z"/>
+  <path id="path1321" fill="#0f6545" stroke="#000" stroke-linejoin="round" stroke-width=".7" d="M241 138.4c.4 1.8-1.6 3.7-4.4 4.3-2.7.6-5.3-.4-5.6-2.2-.3-1.8 1.6-3.7 4.4-4.3 2.8-.6 5.3.4 5.6 2.2z"/>
+  <path id="path1323" fill="#cecfc1" d="M234.8 138c0 .5-.4 1-1 1.1-.6.1-1.2-.1-1.3-.5 0-.5.4-1 1-1 .6-.2 1.2 0 1.3.5z"/>
+  <path id="path1325" fill="#0f6545" stroke="#000" stroke-linejoin="round" stroke-width=".7" d="M280.1 140.5c-.5 1.8-3 2.5-5.8 1.6-2.7-1-4.4-3-4-4.8.6-1.8 3.2-2.5 5.9-1.6 2.7 1 4.5 3 4 4.8z"/>
+  <path id="path1327" fill="#cecfc1" d="M274.8 137c-.2.5-.7.7-1.3.5-.6-.2-1-.7-.9-1.2.1-.4.7-.6 1.3-.4.6.2 1 .7.9 1.2z"/>
+  <path id="path1329" fill="#1f2d86" stroke="#000" stroke-linejoin="round" d="M250.6 134.3h10.1v5.5h-10.1z"/>
+  <path id="path1331" fill="#707c8b" d="M254.9 135.5c0 .3-.5.5-1 .5s-1-.3-1-.5.5-.4 1-.4 1 .2 1 .4z"/>
+  <path id="path1333" fill="#9f1209" fill-rule="evenodd" stroke="#000" stroke-width=".5" d="M222 139.8l1.6 5.3-3 1.8s-1.5 1-3 .2c-1.3-.8-2.2-3.2-1.4-4.2 1.5-2 5.7-3.2 5.7-3.1z"/>
+  <path id="path1335" fill="#8f322f" d="M219.3 143.6c0 .8-.6 1.6-1.4 1.6s-1.4-.8-1.4-1.6c0-1 .6-1.7 1.4-1.7s1.4.8 1.4 1.6z"/>
+  <path id="path1337" fill="#e2a494" d="M218 143a1 1 0 01-.2.6c-.1.2-.3.2-.5.1-.2 0-.3-.3-.4-.6a1 1 0 01.2-.7.4.4 0 01.5-.1c.2 0 .4.3.4.6z"/>
+  <path id="path1339" fill="#9f1209" fill-rule="evenodd" stroke="#000" stroke-width=".5" d="M289.9 140.5l-1.7 4.7 4 2.2s1.7.8 2.8-.2c1-.9 1.2-3 .4-4-.7-1-5.6-2.7-5.5-2.7z"/>
+  <path id="path1341" fill="#aa675d" d="M294.6 144.3c0 .5-.6 1-1.3 1s-1.2-.5-1.2-1c0-.6.6-1.1 1.2-1.1.7 0 1.3.5 1.3 1z"/>
+  <path id="path1343" fill="#e2a494" d="M293.4 144c0 .4-.1.6-.3.8a.5.5 0 01-.6 0 .8.8 0 01-.3-.7c0-.3.1-.5.3-.7a.5.5 0 01.6 0c.2.2.3.4.3.7z"/>
+  <path id="path1345" fill="#f5d8bc" d="M264.6 134.8a.7.7 0 01-.8.7.7.7 0 01-.7-.7.7.7 0 01.7-.7.7.7 0 01.8.7zm4.3.3a.7.7 0 01-.7.7.7.7 0 01-.8-.7.7.7 0 01.8-.7.7.7 0 01.7.7zm-2.2 1.8a.9.9 0 01-1 .9.9.9 0 01-.8-1c0-.4.4-.8.9-.8s.9.4.9.9zm2 3a.7.7 0 01-.6.7.7.7 0 01-.8-.7.7.7 0 01.7-.8.7.7 0 01.8.8zm-4.1-.6a.7.7 0 01-.7.7.7.7 0 01-.7-.7.7.7 0 01.7-.7.7.7 0 01.7.7zm-20.9-3.7a.7.7 0 01-.5.9.7.7 0 01-.9-.6.7.7 0 01.6-.8.7.7 0 01.8.5zm4.3-.8a.7.7 0 01-.6.9.7.7 0 01-.8-.5.7.7 0 01.5-1 .7.7 0 01.9.6zm-1.8 2.3a1 1 0 01-.6 1 .9.9 0 01-1.1-.6 1 1 0 01.7-1 .9.9 0 011 .6zm2.7 2.4a.7.7 0 01-.5.9.7.7 0 01-.9-.5.7.7 0 01.5-1 .7.7 0 01.9.6zm-4.2.5a.7.7 0 01-.5.8.7.7 0 01-.9-.5.7.7 0 01.6-.9.7.7 0 01.8.6zm-19.2-.2a.8.8 0 01-.4 1 .7.7 0 01-.9-.5.8.8 0 01.4-1 .7.7 0 011 .5zm4.1-1.4a.8.8 0 01-.4 1 .7.7 0 01-.9-.5.8.8 0 01.4-1 .7.7 0 011 .5zm-1.4 2.5a1 1 0 01-.5 1.2.9.9 0 01-1.2-.5 1 1 0 01.6-1.2.9.9 0 011.1.5zm3 2a.8.8 0 01-.4 1 .7.7 0 01-1-.5.8.8 0 01.5-1 .7.7 0 01.9.5zm-4.1 1a.8.8 0 01-.4 1 .7.7 0 01-1-.4.8.8 0 01.5-1 .7.7 0 01.9.4zm56.2-6.2a.8.8 0 01-1 .5.8.8 0 01-.5-1 .8.8 0 011-.5.8.8 0 01.5 1zm4.4 1.4a.8.8 0 01-.9.6.8.8 0 01-.6-1 .8.8 0 011-.5.8.8 0 01.5 1zm-2.7 1.3a1 1 0 01-1.1.7 1 1 0 01-.8-1.2 1 1 0 011.2-.7c.5.1.8.7.7 1.2zm1.5 3.7a.8.8 0 01-1 .6.8.8 0 01-.5-1 .8.8 0 01.9-.5.8.8 0 01.6 1zm-4.3-1.7a.8.8 0 01-.9.5.8.8 0 01-.5-1 .8.8 0 01.9-.5.8.8 0 01.5 1z"/>
+  <path id="path1347" fill="none" stroke="#000" stroke-width="1.2" d="M292 94.9s-2 2-4.5 2a7 7 0 01-4.6-1.6c-.8-.6.2-2.2.2-2.2"/>
+  <path id="path1349" fill="none" stroke="#000" stroke-width="1.1" d="M248.9 99s-3.7-.7-5.3-1.3c-1.5-.5-1.1-1.6-3-1.5-1.7.2-3.5 1.5-3.1 3.4.4 2 1.7 2.2 3 1.8 1.2-.4.8-2.7-.8-2.6-1.7.2-.3 1.7-.3 1.7M223.3 96s1 1.6 3.7 1.3c2.7-.2 3.7-1.8 3.8-2.4.1-.7 0-2-.5-2.5s-2.3-.8-2.3-.8"/>
+  <g id="g1355" stroke="#161111">
+    <path id="path1351" fill="#c00" d="M312 169c1.6-1.5 4-3.2 5.4-6.9 1.3-3.5 2-9.8 3.2-13 1.5-5.5 4.6-10.8 1-10.5-3.6.4-4.8 3.8-6.1 6.3-.6 1-2 3-2.3 4 0-1.8-1-7.4-1.2-13-.2-5.2 0-10.6-.2-12.6-.2-2.7-.2-5.2-.8-7.2-.3-1-1.6-1.8-2.3-1.8-1.5 0-2.3 1.3-2.5 2.5l-.2 1.7-.1 5.2v5.6l-.5 7.2c0-1.3-.6-7.3-.8-13a419.5 419.5 0 01-.2-6.3l-.1-4.6c-.3-2.2-1-3.1-2.5-3.1-1 0-2.6.7-3 3.1a21.5 21.5 0 00-.3 4.6l.1 5c-.1 6.5-.2 13.5-.5 15.5 0-.7-.7-4.1-.8-8.7a804.7 804.7 0 00-.3-6l-.2-6c0-1-.4-3.9-2.3-3.7-1-.1-2.1.6-2.5 3.3-.3 1.5-.3 4.1-.3 6.1 0 3.9-.2 7.2 0 10.6v4.8c0 .3-.5-1.8-.8-4.6l-.5-5.4c0-1.4 0-3.5-.2-5.3 0-1.3 0-2.8-1.5-2.7-1.5.1-2.4.6-2.7 3.2-.2 1.6-.3 5.2-.3 6.5a88 88 0 01-1.1 13.2c-.1 1.6-.8 3.6-1 5.8a44 44 0 00.6 12.9c1.2 4.4 4.4 6.4 4.2 9.4v10.6c0 2.4 2 2.5 6.3 1.6 7-1.5 10.8 1.5 16.5-.7-.7-6.6.7-10.5.7-12.9zm-4-15.4c1.4-4 3.2-5.6 5-6.4" transform="matrix(1.6 0 0 1.70667 -224 0)"/>
+    <path id="path1353" fill="none" d="M292.1 149.5c2.2-.9 4.4-1.5 6.6-2.3 2.8-.7 5.4-1.8 8.1-2.2 1.4-.3 2.7-.6 4-.7m-22.5 26.3c.3-.2.6.2.9.2.4.1.8.3 1.2.2a66.9 66.9 0 012.6 0c1 0 1.8 0 2.6-.6m6.3.3c.3.3.6.5 1 .6.5.2 1 .3 4.6 0 2.1.1 4-1.7 4.6-2.3" transform="matrix(1.6 0 0 1.70667 -224 0)"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gb-sct.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gb-sct.svg
new file mode 100644
index 0000000..6987b08
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gb-sct.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gb-sct" viewBox="0 0 512 512">
+  <path fill="#0065bd" d="M0 0h512v512H0z"/>
+  <path stroke="#fff" stroke-width=".6" d="M0 0l5 3M0 3l5-3" transform="scale(102.4 170.66667)"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gb-wls.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gb-wls.svg
new file mode 100644
index 0000000..3931a17
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gb-wls.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gb-wls" viewBox="0 0 512 512">
+  <path fill="#00ab39" d="M0 256h512v256H0z"/>
+  <path fill="#fff" d="M0 0h512v256H0z"/>
+  <g stroke="#000" stroke-width="1.2">
+    <path fill="#d21034" d="M339.5 113.2zm0 0a585.4 585.4 0 00-94.4 63.3c-14.3 12.6-10.3 22.6-10.8 33.8.4 7.6-1.7 14.6-6.3 18.8l-32 6.5-3-8.8c1-4.5 4.7-6.8 12.6-4 .6-5.7-4-8-9.5-10.1-2-1.5-4.2-2.6-4-7.6-.9-11.4 17.4.8 17.5.8.2 0-.6-11.5-9-13.8-4.5-1.6-6.4-6.4-4.7-10 3.6-7.3 10.5.6 15.8.9-.2-4.8-1.6-8.2-5.7-12-2.2-1.4-7.6-2.4-7.7-4.7-.1-3 5-4.4 12.2-3.5-1.5-4.4-6.3-7.2-12.9-9.2l-3.9-6.8c-1.8-3.4-2.7-3.5 1.6-10l12.8-8.5-4.2-.5c.5-4.6.6-6.2 1.7-13.9-4.2 5.6-9.3 4.6-14 7 0 0-13.2 2.3-17.4 8l-33.3-1.8c-7 1-13 3-14.3 9.9-16 1.6-33 .2-45.3 15.6 8.4-.4 15.7-2.4 25.1-1.2 0 0 8 .2 9.7 8.7.2.3 2.7.3 2.7.3l3 2.4 1.3-3.3 2.7 2 .8-3.6 2.7 1.8.2-4.2 3.6 2.5v-5.6s13.1 0 17.1 8.4c.2.1-36.8 6.8-72.6 3.7l10.3-5.1c-13-2.7-25.3-5-36.8-14.1 4.4 16.4 26.8 35.6 31.4 35.5l-4.4-8 38.9 1.7c1.4 4.3.8 9.1 4.2 12.9 0 0-2.1 7.1 2.6 10 .2.4 5.7-14.4 5.7-14.4s1.7 4 3.4 6.6c2.5-12.7 16.3-14.8 16.3-14.8l3 6.8c-4.4.7-9.8 9.5-6.9 14.3-2.9 0-8 8.6-6.4 13.2-2.5 2.4-8.5 5.7-7 15.8-4.8 1-7.6 9.8-6.1 19-7.4 6.9-5.6 19.5 1 24.6-2.7 2.5-4.4 4.3-4.4 7.3-2.6-1-5-.1-6.1 1.6-3.2-3.3-7.8-6.2-11-3.1-.9-3.9-6-8.1-11.4-7.6.3-4.1-1.8-9.1-7.7-10.9 0 0-1.1-19.1-7-25.3-.5-3.5.4-5.8 5.2-8.6 4.7-2.6 5.8-4.6 5.4-11.8 1.9-4.8 3.3-9.7-2.5-13 .1 5.7-1.6 8.5-4 11-2.7-.4-3.7 2.8-5.5 4.3-2.7-3.6 5.5-9-.6-16.9-.3-.3-4.2-10.2-13.7-10a13 13 0 016.4 11.7 35 35 0 00-1.5 24.8c-4-6-6.2-17.2-9.5-19.2-2.9-.5-4.3-7.3-15.4-5.4 4.8 1.3 6.3 5 7.6 8.3-3 1.6-1.5 5.6.7 8.3-.4 6.6 3.5 10.4 9.3 12.8l-2.9 26.6c-2.3-.3-5.9 8.8-7.3 9-2.2 1.4-6.2 5.2-1.7 6.3-1.3 4.9-2.6 7.8-9.8 8.8 0 0 7.7 4.6 14-3.2 6.8-.2 4.6-8.3 7.9-11.9 0-.1 1.8-1.3 4.6-8.5 1.2 6.4 7.7 26 22.5 35.7 13 13.8 23.6 26.9 23.5 45.3 5-4.7 8-12.1 10.3-19.2 7-2.4 17-3.3 26-3-1.5 3.3-3.2 6.4-1 8.5-6.3 2.1-7.6 6.6-5.1 11.2-6.6 4.4-7 7.3-7.1 14.7-12.2 15.6-19.7 15.1-31.8 11-4-2.3-10-5.6-12.9-3.8-5.2-3.5-12.7-4-14 3.9 4-3.3 6.3-2.6 9.4.5-.6 1.6-1.1 3.1 1.2 4l-3 3.4c-5.6-.8-13.2-.8-15.1 7.3 2.8-2.3 9.2-3 14.4-.6l2.9 1 .3 3.9s-7.6-1.2-9.7 11.2c7.2-7.6 12.3-5.6 12.3-5.6 2.7 4 12.9 3.4 20.2-3.2 10.2-5.8 13.2 2.5 19.8-3 5.5-4 12-1.3 16.5 3.5 5.1 1.9 10.5 3.5 14.8 0 0 0 5.1-3.3 10.3 2 0-6-4.2-9.2-10-9.3l-1.7-1.7c-5.4-1.2-11.5-.7-16.3-3.4a49 49 0 0111.9-22.8c7.8-8.4 13.6-12.2 23.6-25.2-.4 7.3 5.2 15.4 8.1 22.9 0 0 6-9.5 6.8-17.2.2 0 7.4-3.8 10.5-7 6.6 4 17.2-3.2 24.1-9.3a17 17 0 0012.4 0c-4 8 2.3 15.5 12.3 18.7.9 7.1 8 8.6 19 8.6.4 4.2 7 4.8 7 4.8-4.2 2-6.3 3.8-6.2 8.2-4.2 0-7.4 1-8.5 5.9a34 34 0 00-16.6 3.4 29 29 0 01-16-7.3c-2.1-1.8-2.7-4.4-6.4-5.4-2.4-2.9-5.2-2.2-6.1.5-2.5-2-11.7-2.9-13.3 5.9 4.3-3.2 8.2-4.4 11-.5-1.6 2.7 3.5 4.2 7.9 5.3 3 .2 8.6 3 10.3 7.8a17 17 0 01-14-2.3 9.2 9.2 0 00-11-.6c-3.8-2.4-12.5 2-12.8 9.1 3.6-3.4 7-5 10.3-2.8-1.6.4-1 .5-.8 1.5l8.5 4.9c-4.2 1.1-8.1 2.8-6.3 10.5 0 0 3.4-6.7 11-4.2.2-.2 1 2.4 3.2.7 3.3-3.8 11-5.5 17.5-6.1 5.4-.7 10.7-2.2 15.3.8 4.1-2.1 8.7-3.6 13.4-.2 5.6 1.8 9.6 8.2 16.7 5.3 3.5-2.4 7.8-2.6 12.2 2.4 0-6.2-4.6-8.3-11.2-9.7l-4.6-2.7c-4.2-.7-8.5.1-12.8-1.9a78 78 0 0048.8-35.8l10.5 3.7c2.5.2 2.7 1 7.8 2.6.2-7.6-3-15.4-16.6-16.1l-17.9-6.8c-3.7-4-5.5-12.5-.6-17.5 4.7-4.2 5.5-3.7 8.6-8.8 3.8-.4 7.4 3.5 10.9 3.5 1.7 5 11.2 9.3 17.3 7.8 3.8 3.4 11 5.3 19 2.6 4.5 4 10.4 5.6 17.3 2.5 1.9 1.8 5.7 3.3 10.2 2.4.4 0 2.3 4.9 7.2 6.6-2.2 2-.9 11 1.3 14.3-1.5 3.4-2 7-.7 10.7-4.9 3.1-5.9 5.5-3.7 10.8-6.4 10.4-14.1 11.5-21.4 8.3l-7.8-4.9-8.3-8.1c-1.4-1.4-4.3-1.8-5 1.2 0 0-10.6-2.4-11.5 6.6 4.4-4.3 10.7-.5 10.7-.4 0 .2-1.5 1.2-.3 3 .2-.3 7.8 2.8 14.5 5.6a28.5 28.5 0 00-9.3-2.4c-3.8-.4-7.8-.9-9.6 2-4.1 1.7-10.5 3.1-10.2 10.7 2.7-4.5 6.5-4.3 11.3-4 0 .4-.2.8-.3 1.1 5.2 2.4 4.3-.7 9.1-1.1 4.1-.4 10 1.1 13 2.1-3.9 1.1-9.1.7-11.6 3.4-.4 1-2 .5-1.3 2.7 0 0-7.5-.2-9.5 10.2 7.6-4.9 13.4-4.7 13.5-4.7l2.4.5s9.2-6.2 9.4-6.2c.1 0 8.8-3.8 12.9.6 3.4 1.7 7.2 1.8 10.8-.4 7.2-3 13.8-3.3 20.4 1l6 3.6 2.5-1.7s6.7-1.9 11.6 4c-2-10.3-9.4-10.6-9.4-10.6l-1.7-1.5-10.5-4.1c-1.6-3.8-5.4-6.8-1.6-11.4 4-19.5 8.6-34 1-53.8 7.1 3 12.4 12.5 21.3 9.2 0-8-29.2-23-51.5-35 36.5-2 80.4-28.9 63.5-63.1l8-24.8a34 34 0 0018.2 15.8c-5.6-10.8-8.9-43.6-5.6-66.2a529.6 529.6 0 01-48.2 50.6c8.4 2 15.9.6 24-.4l-6.8 14.3c-22.5-13.2-48.8-3.3-49 14.2.8 20.5 26 23.4 40.6 16.3-2.9 18.6-45.7 11.7-45.7 11.7-15.2-5.2-29.7-4.3-45.6-4.2 3.3-10.2 21.7-19.3 35.8-15.3-19.7-22 2.8-49.4 29.8-57.9-29.5-9.7-4-32.2 18-48.3 0 0-63.5 26.7-69.3 26.6-18-1.3-13.1-22.7-6.3-34.2zM140 139c1.5 0 3.2.2 4.6.5 2.9.7 6.4 1.1 6.3 2-1.3 2.2-4.6 4.9-7.8 4.7-3.2-.1-5-2-6.1-6.9.3-.2 1.5-.3 3-.3zm267.5 75.4c4.1 0 9.1 1.7 14 6.9-2.4 6.7-22.7 10.2-24 .2-.4-3 3.9-7 10-7z"/>
+    <path fill="none" stroke-linejoin="round" d="M161 197.9l3 4.5m0 .1s0 6 1.2 6.2m-2.8 3.2l3.2 5.3m-8.8 1.4l4 4.4m3.2-3.4c0 .2 3.6 6.9 3.9 6.9m-8.6-2.3s1.3 8.2 2.4 7.9m-7.7 7l3.6 5.5m3.1-11.2s2 7.7 3.5 7m1.6-11.7c.1.2 3.6 5.2 4.6 4.5m-.8 2l3.3 6.7m-9-1.5c.2.2 2.8 8 2.8 8m-9.2-4s2.5 8.6 4.8 7.2m-5.8 4.2s.2 4.5 2.4 4.7m1.5-7c0 .2 2.3 3.3 2.3 3.3m4.1-8.6l1.9 3m4-8.4l2.9 3.5m-15.8-43.7c.1 3.8 6.1-1.4 8.5-4.6m-11 17.7s6.5-4.6 11.6-11.6M155 226.8c4.6-1.3 13.1-11.6 14.8-17M154.1 237c1.3.6 17.2-10.9 17.6-19.3m-18 28.1c0-.1 14.5-3.7 20.6-19.7M152.9 258s23.2-13.9 24.5-24.1M334 281.3s-1.5 12-13.5 13.8m17.3 7.6c.2-.1 11.5-12.6 8.6-16.4m17.8 4.4s-.2 8.7-7.3 14.7m21.4-12.2s.3 10.5-4.2 14.7m17.2-8.4s-5 9.8-6.8 10.8m6.6 6.6s6.6 1.7 8.7-2.7m-7 17s6.2 1.1 9-4.8m-9.6 15.8s5 4.2 8.3-1.3m-79.3-79.6s-.6 21.3 29.4 25.6c33.5 9.3 49.3 4.4 51.3 41.9-1.3 14.3-3 30.4-13.4 24.3m-99.1-72.2s4.7 8.5 10.5 8c7.5-2.3 10.3 2.4 10.3 2.4m-41.3-1.9s12.6 6.2 23.4-3.8m-22-5c1.1 14.7-17 23.1-24.1 21.7m25 34.7c.1 0 9.8-5.8 7.8-9.9m-27 1.3c.2-.3 16.2-1.8 19.1-7.6m-26.6-16c0-.1 22.7.1 24.2 4.3m6-17.7s-22.2 37.8 18.7 37.8m-42.2-38.4s-4.7 14.2-11.5 19m-12-23.9s8.2 16 0 23.8m-21.4-19.3c.1.3 2.6 22.6-3 28.9m-7.7-28.2s.9 14.2-3.3 19.2 1 15.5 1 15.5m-51.1 6.8s3 5.3 7.2 3.5m-2.1-15s6.7 3 9 1.8m-1.7-25.6s-10 2.8-6.2 14.5c5.7 4.7 11.4 4 11.4 4M135 347.3c-.2 0 1 9.2 7.5 2.2 4.5-9.4 18.7-35.8 21.9-45m6.6-4.3s-6.9-5.3-6.6 2.1c-.2 4.6 2 5.8 2 5.8.4 3.3 3.3 8 5.7 3.7 1-4.1-.7-6-.7-6m4-7.5c-6.3-.5-9.6 13.1 2.3 4.6m4-9.3s-1.5 2.1-3.9-.1c-1.2-2.2-5.7 10 2.1 10.5 1.4-3.6 5.8-4.6 5.8-4.6m3.6-11.6s-3.5 1.6-4.7 1.4c-4.2 1-3.4 10.7 2 10.2 1.7-2.1 3.7-5 3.7-5m-34-19.5c-.2 0-14 21.7 7.7 27.4m167-60s-8.4 7.2-.6 18.7c-26-.4-40 11.6-41.2 19.7-33.2-2.3-27.2 7.5-38 10.7-14.4-12-35.6-5.3-34.2 6.7-9.6-13.6-24.5-7-26.3-3.6-1.8 3.3-1.1-16.7-1.1-16.7s-9.7 4.3-16.4 12.3v-16.8c-8 1.6-15.9 1.7-24.2 1.6m-21.9-6.2s12 6.7 27-2.4m-28-21.9s9.4 8.5 27 5.8M132 225s2.1 6.9 22.3 7.3m-15.5-23.2s7.6 9.3 17.9 8m-11.4-21.3s3 5.1 14.2 6m-7.6-20.7s5.9 6.5 12.6 5.4m22.4-57.7s2.6-2.6 7-1.3m-8.9 15s-8-.3-7.5-3.5c.6-3.6 8.5-6.2 8.5-6.2s10.6-6.8 12.2-9.1m-47.8 37l10.3 19.7 5-7.4 2.5 5.1 4.2-7.4 7.3 4.7-2.8-9 6.1-.4s-1.6-4.4-7.1-5.3a153 153 0 016.5-4.4s-2.9-3.4-7.4-3.5c1.5-1.6 3.5-5.5 3.4-5.5l-4.5-1s10.3 3.3 18.2-1.3m-19.7-16c.2.2-.5 4.1-2.7 6.4m-37 4.5s6.4-1.7 11.2-.8c4.7 1 11 2.7 11 2.7s7.6-1 10-2.8m-47.9 5.1s-.9 3-1.2 5c0 1.5-4.6 3.4-4.6 3.4M120 138s4 5 4.2 8c.1 2.9-3 5-3 5m-43 21.6l-4.2-6.8 3.7-1.3m76.3 102c-3.4-4.4 2.5-71 15-88.5-4.4 31.4 10 63.5 13.7 63.4m-66.6-82s5.6 2.2 17.4-7.1m16 22.5l8.4.1m253.4-52.4s-140.7 65.8-142.7 69.2c23.7-7.1 124.4-24 126.9-22.5-6 1.5-128.2 29.5-133.9 36.3 30.5-1 94.4 9.8 104.4 20.2-21.7-4.9-86.6-14.5-106.4-10.2 14.5 3.5 70.2 39.5 70.2 45.3-8.4-8-75.4-35.7-78-33 15.3 9.2 37 43.4 37 51.8-4.5-7.2-43.2-48.8-45.4-46 4 5.6 12.2 54.7 8 57 0-6-15-48.9-16.2-50.1-3 .8-22.2 52.4-18.4 57.2-2.5-17.2.4-53.1 5-51.7-8.3 1.2-35.1 36.5-32.2 42 .8-8.7 2-14.6 17.1-43.8-16.8 1-51.6 22.9-57.5 30.7 4.7-14 34.2-37.5 47-39.1m60.8-51.3c14.9-8.2 60.8-25 91.5-37.4M228 228.9s10-.1 20.2-27.6c10-37.7 89.2-79.6 90.8-87.5m-245 153s-2.4 5-5.3 6.4m16.6 1.2s-3.2 6-3.9 9m14.7-6s2.7 8.3.5 12.2M86 255.7c-8 4.5 4.5 32.9 42.3 35.6m-6-15.3s-1.1 5 6 15.2c-2 11.3 8.6 20.1 12.8 21.6m-22-138.6l1.2-3 1.3 3.3h2l1.4-3.4 1.2 3.4h2l1.3-3.8 2 3.6h1.6l1.3-4.3 2.6 3.1 1-.4.8-4.3 2.6 3 .8-.4 1.2-4.2 2.2 3.1 1-.3 1-3.6 2.1 3.3m-32.9 5.3l15.8-.3c5 0 13.3-7 22.6-4.8m-71.7 38.9s2.6 5.6 6.3 2.4m-12.3 1.3s-5.1 13.7 1 16.8m-8.3-31.8s0 3.2 6.7-1.8m-27.4 73.3s5.4 1.6 4.5 5.7M51.5 206s3.4 1.7 6.6-3.3m28.8 160c5.2-.3 6.3 2 11 2 5.5.2 10.8-2 17.8-3.9m44.7 12.6c-.1 0-2.5 5-.4 7.4m-73.9-7s8.3-6.7 12.6-2.5c4.2 1.4 6.5 1.1 6.5 1.1m-14.7-18s2 5.3-4.8 4.6m-2 7.5s4.3 2.7-.6 6.3m3.2 5s6 .8 2.5 5.6M278 341.7s16.1 1.7 16.9 2.9c1.8-2 16.2-13.6-1.5-15.3a16.1 16.1 0 01-15.4 12.4zm-5.7 8c6 4.9 3.5 7.8 22.4-5m-31 11s8.9 9.6 15.3-2m-32.3 5.5l-12 6.3m-21.7 8.9s7.3-6.3 10.7-3c3.5 3.4 18-2.8 18-2.8M218.5 347s2.5 5-2.4 5.6m-7.2 10s2.6 4.7-2.4 6m8 6.8s7.7.4 5 6.1m66.1-7.1s-4.2 3.5-1 7.5m61.5-32.8s4.8 2.3-1 6.3m-4.7 8.3s3.6 3.8 1.2 7m8.9 7.6s5 1.4 4.4 5.5m65.6-9.2s-4.2 3-2 7M346.4 253c10-1.2 24.3 21 31.6 25.4m43.8-56.9s5 4.4.6 15.1m8.8-32.1c1.4 1.1 6.9 4 10.5 10.7m3.4-44l-7 19m14.9-20s-1.4 17-3.4 20.4m-28 30.7c-2.3 6.8-22.7 10.2-24 .2-.7-5 12-13 24-.2z"/>
+    <path stroke-linejoin="round" d="M139.8 139l7.9 1.4s-5.5 7.4-7.9-1.4z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gb.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gb.svg
new file mode 100644
index 0000000..ef048dc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gb.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gb" viewBox="0 0 512 512">
+  <path fill="#012169" d="M0 0h512v512H0z"/>
+  <path fill="#FFF" d="M512 0v64L322 256l190 187v69h-67L254 324 68 512H0v-68l186-187L0 74V0h62l192 188L440 0z"/>
+  <path fill="#C8102E" d="M184 324l11 34L42 512H0v-3l184-185zm124-12l54 8 150 147v45L308 312zM512 0L320 196l-4-44L466 0h46zM0 1l193 189-59-8L0 49V1z"/>
+  <path fill="#FFF" d="M176 0v512h160V0H176zM0 176v160h512V176H0z"/>
+  <path fill="#C8102E" d="M0 208v96h512v-96H0zM208 0v512h96V0h-96z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gd.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gd.svg
new file mode 100644
index 0000000..cca37ba
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gd.svg
@@ -0,0 +1,27 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-gd" viewBox="0 0 512 512">
+  <defs>
+    <g id="c">
+      <g id="b">
+        <path id="a" fill="#fcd116" d="M0-1v1h.5" transform="rotate(18 0 -1)"/>
+        <use width="100%" height="100%" transform="scale(-1 1)" xlink:href="#a"/>
+      </g>
+      <use width="100%" height="100%" transform="rotate(72)" xlink:href="#b"/>
+      <use width="100%" height="100%" transform="rotate(144)" xlink:href="#b"/>
+      <use width="100%" height="100%" transform="rotate(-144)" xlink:href="#b"/>
+      <use width="100%" height="100%" transform="rotate(-72)" xlink:href="#b"/>
+    </g>
+  </defs>
+  <path fill="#ce1126" d="M0 0h512v512H0z"/>
+  <path fill="#007a5e" d="M71.7 71.7h368.6v368.6H71.7z"/>
+  <path fill="#fcd116" d="M71.7 71.7h368.6L71.7 440.4h368.6z"/>
+  <circle cx="255.9" cy="256.1" r="61.4" fill="#ce1126"/>
+  <use width="100%" height="100%" transform="translate(256 256) scale(56.32)" xlink:href="#c"/>
+  <use width="100%" height="100%" x="-100" transform="translate(-16.4 -.1)" xlink:href="#d"/>
+  <use id="d" width="100%" height="100%" transform="translate(256 35.9) scale(33.28)" xlink:href="#c"/>
+  <use width="100%" height="100%" x="100" transform="translate(16.4)" xlink:href="#d"/>
+  <path fill="#ce1126" d="M99.8 256.8c7.7 14.3 22.6 29.8 35.7 35.3.2-14.5-5-33.2-12-48l-23.7 12.7z"/>
+  <path fill="#fcd116" d="M86.8 207.6c11.1 23.3-29 78.7 37.8 91.7a67.5 67.5 0 01-11.5-44.7 75.5 75.5 0 0134.6 32.8c17.5-63.4-44.8-59.5-61-79.8z"/>
+  <use width="100%" height="100%" x="-100" transform="translate(-16.4 442)" xlink:href="#d"/>
+  <use width="100%" height="100%" transform="translate(256 478) scale(33.28)" xlink:href="#c"/>
+  <use width="100%" height="100%" x="100" transform="translate(16.4 442.2)" xlink:href="#d"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ge.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ge.svg
new file mode 100644
index 0000000..ac1d87b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ge.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ge" viewBox="0 0 512 512">
+  <path fill="#fff" d="M0 0h512v512H0z"/>
+  <path fill="red" d="M205 0h102v512H205z"/>
+  <path fill="red" d="M0 205h512v102H0z"/>
+  <path fill="red" fill-rule="evenodd" d="M114.1 397.9c1.1-18 4.3-33.4 4.3-33.4s-10.6 1-15.9 1c-5.3 0-15.9-1-15.9-1s3.2 15.3 4.3 33.4c-18-1.1-33.4-4.3-33.4-4.3s1 8 1 15.9-1 15.9-1 15.9 15.3-3.2 33.4-4.3c-1.1 18-4.3 33.4-4.3 33.4s8-1 15.9-1c8 0 15.9 1 15.9 1s-3.2-15.3-4.3-33.4c18 1.1 33.4 4.3 33.4 4.3s-1-10.6-1-15.9c0-5.3 1-15.9 1-15.9s-15.3 3.2-33.4 4.3zm307-307c1.1-18 4.3-33.4 4.3-33.4s-10.6 1-15.9 1c-5.3 0-15.9-1-15.9-1s3.2 15.4 4.3 33.4c-18-1.1-33.4-4.3-33.4-4.3s1 8 1 15.9c0 8-1 15.9-1 15.9s15.3-3.2 33.4-4.3c-1.1 18-4.3 33.4-4.3 33.4s8-1 15.9-1 15.9 1 15.9 1-3.2-15.3-4.3-33.4c18 1.1 33.4 4.3 33.4 4.3s-1-10.6-1-15.9c0-5.2 1-15.9 1-15.9s-15.4 3.2-33.4 4.3zm-307 0c1.1-18 4.3-33.4 4.3-33.4s-10.6 1-15.9 1c-5.3 0-15.9-1-15.9-1s3.2 15.4 4.3 33.4c-18-1.1-33.4-4.3-33.4-4.3s1 8 1 15.9c0 8-1 15.9-1 15.9s15.3-3.2 33.4-4.3c-1.1 18-4.3 33.4-4.3 33.4s8-1 15.9-1c8 0 15.9 1 15.9 1s-3.2-15.3-4.3-33.4c18 1.1 33.4 4.3 33.4 4.3s-1-10.6-1-15.9c0-5.2 1-15.9 1-15.9s-15.3 3.2-33.4 4.3zm307 307c1.1-18 4.3-33.4 4.3-33.4s-10.6 1-15.9 1c-5.3 0-15.9-1-15.9-1s3.2 15.3 4.3 33.4c-18-1.1-33.4-4.3-33.4-4.3s1 8 1 15.9-1 15.9-1 15.9 15.3-3.2 33.4-4.3c-1.1 18-4.3 33.4-4.3 33.4s8-1 15.9-1 15.9 1 15.9 1-3.2-15.3-4.3-33.4c18 1.1 33.4 4.3 33.4 4.3s-1-10.6-1-15.9c0-5.3 1-15.9 1-15.9s-15.4 3.2-33.4 4.3z" style="mix-blend-mode:multiply"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gf.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gf.svg
new file mode 100644
index 0000000..c00a576
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gf.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gf" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h512v512H0z"/>
+    <path fill="#00267f" d="M0 0h170.7v512H0z"/>
+    <path fill="#f31830" d="M341.3 0H512v512H341.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gg.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gg.svg
new file mode 100644
index 0000000..2d06a9f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gg.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-gg" viewBox="0 0 512 512">
+  <path fill="#fff" d="M0 0h512v512H0z"/>
+  <path fill="#e8112d" d="M192 0h128v512H192z"/>
+  <path fill="#e8112d" d="M0 187.7h512v136.6H0z"/>
+  <path id="a" fill="#f9dd16" d="M46 305.8l23.3-25h210v-49.7h-210L46 206.2z"/>
+  <use width="36" height="24" transform="matrix(0 1.06667 -.9375 0 496 -17)" xlink:href="#a"/>
+  <use width="36" height="24" transform="matrix(0 -1.06667 .9375 0 16 529)" xlink:href="#a"/>
+  <use width="36" height="24" transform="rotate(180 256 256)" xlink:href="#a"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gh.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gh.svg
new file mode 100644
index 0000000..4b6446d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gh.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gh" viewBox="0 0 512 512">
+  <path fill="#006b3f" d="M0 0h512v512H0z"/>
+  <path fill="#fcd116" d="M0 0h512v341.3H0z"/>
+  <path fill="#ce1126" d="M0 0h512v170.7H0z"/>
+  <path d="M256 170.7l55.5 170.6L166.3 236h179.4L200.6 341.3z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gi.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gi.svg
new file mode 100644
index 0000000..39f5b27
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gi.svg
@@ -0,0 +1,32 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-gi" viewBox="0 0 512 512">
+  <path fill="#da000c" d="M0 0h512v512H0z"/>
+  <path fill="#fff" d="M0 0h512v343H0z"/>
+  <g stroke="#000" transform="matrix(2 0 0 2 -256 0)">
+    <g id="a" fill="#da000c" stroke-linecap="square">
+      <path fill="#000" stroke="none" d="M196.6 116.3h64v44h-64z"/>
+      <path d="M229.8 153.9h-39l-8.7 5.7v6h47.7m-16.3-37c5.6 0 10.2 4.7 10.2 10.5v14.7h7.3v-56h-40.3v56h12.6v-14.7c0-5.6 4.5-10.5 10.2-10.5z"/>
+      <path fill="#000" stroke="none" d="M204.5 60h18.6v34h-18.6z"/>
+      <path d="M223 88.7h-16.2v-5.8h-11.9v5.8h-8v-5.8H182v10.4h41m-36.2 0h35v4.5h-35zm14-45.7V83h6v-9.7c0-3.6 2.5-6.6 6.1-6.8h.4a6.8 6.8 0 016.8 6.8V83h5.7V47.6zm-2.3-4.8v4.8h29.3v-4.8zm-3.7-9.1v9.1h35v-9.1h-5.3v4.7h-6.6v-4.7h-10v4.7h-6.5v-4.7zM182 159.6h48m31-2.8h-32.4l-9.8 4.7v7H261"/>
+      <path stroke-linecap="butt" d="M218.8 161.5H262"/>
+    </g>
+    <use width="100%" height="100%" transform="matrix(-1 0 0 1 512 0)" xlink:href="#a"/>
+    <g fill="#f8d80e">
+      <g stroke-linecap="round">
+        <path stroke-width=".8" d="M273.3 150c-2.7 1-5 2.4-7.5 3.8a72.4 72.4 0 00-8.9 6c-1 .7-2 1.4-2.7 2.4-1 .8-2 2-1.8 3.5 0 .6.8-.8 1.4-.9a4.4 4.4 0 013.1-.4c1.3-1.4 3-2.3 4.4-3.4a77.4 77.4 0 0113-7.6l-1-3.4z"/>
+        <path d="M260.4 157.4v3.9m2.4-5.6v3.9m2.4-5.4v3.8m2.5-5.3v4"/>
+        <path stroke-width=".8" d="M238.9 150.2l-1.2 3.3a86.6 86.6 0 0115.8 8c1.7 1.2 3.5 2.3 4.8 3.9.3.8-.5 1.5-1.3 1.2-.7-.2-1.5-.5-2.2 0-1.1.5-2.1 2.2-.5 2.7 2.4 1.6 6.1.9 7.2-1.8.6-1.4.7-3.2-.5-4.4-2-2.3-4.8-4-7.4-5.7a89.2 89.2 0 00-14.7-7.2z"/>
+        <path d="M254 158l-.3 3.4m3.1-1.7l-.8 3.3m3.8-1l-1.8 2.6m2.7 3.6l-2.6-1.4m3.4-1.4l-3 .3m-.8 4l-.2-2.6m-1-.3l-2.4 1.8m-9.4-15.7v3.1m6.3.3v3.5m-3.2-5.2v3.3"/>
+      </g>
+      <path d="M235.8 227.6v8h5v-4h6.9v4h5.4v-8zm0 11v8H253v-8h-5.4v4h-6.9v-4z"/>
+      <path d="M253 193.7h5v58h-5z"/>
+      <path d="M253 198.7h5v50h-5zm2.6-19.3l10.6 6.2-10.6 6.2-10.7-6.2zm-14.3 4h-2.7v4.4h2.7l14.3 8.3 14.2-8.3h2.8v-4.4h-2.8l-14.2-8.3z"/>
+      <path d="M255.3 164.3a5 5 0 00-4 5.1v11.2a5 5 0 004.6 4.6 4.9 4.9 0 004.8-2.8l-1.7-1a2.9 2.9 0 01-3 1.8c-1.6 0-2.9-1.6-2.7-3.1v-11.2a2.9 2.9 0 013-2.6c.6-.2 1.5.7 1.9 0 .6-.9-.4-1.5-1-2h-1.9zm5.8 3.9a5 5 0 01-1.9 1.6v7.5l2 1.1v-10.2z"/>
+    </g>
+    <g fill="#da000c">
+      <path fill="#000" stroke="none" d="M240.8 38.4h29.3v53.2h-29.3z"/>
+      <path d="M238.8 38.4v44.5h9.3V69.7c0-3 2-7.3 7.9-7.3s8 4.3 8 7.3V83h9.2V38.4zm15.8 5h2.8v15.2h-2.8zm-8.3 3h3v11.1h-3zm16.5 0h2.9v11.1h-3zM235.6 32v6.3h40.8V32zm-3.8-7.4V32h48.5v-7.4h-6.1v4h-7v-4h-7.8v4h-6.8v-4h-7.9v4H238v-4zm-9 73.2v4.6h66.5v-4.6z"/>
+      <path d="M220 82.9v15h72v-15h-6.8v5.8H276v-5.8h-12.2v5.8H248v-5.8h-12.2v5.8h-9v-5.8z"/>
+      <path stroke-linejoin="round" d="M228.7 102.4v54.4h12.8v-20.4c0-9.5 6.4-14 14.5-14 7.8 0 14.5 4.5 14.5 14v20.4h12.8v-54.4z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gl.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gl.svg
new file mode 100644
index 0000000..7a026d9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gl.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gl" viewBox="0 0 512 512">
+  <path fill="#fff" d="M0 0h512v512H0z"/>
+  <path fill="#d00c33" d="M0 256h512v256H0zm53.3 0a170.7 170.7 0 10341.4 0 170.7 170.7 0 00-341.4 0"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gm.svg
new file mode 100644
index 0000000..b06ab6c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gm.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gm" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="red" d="M0 0h512v170.7H0z"/>
+    <path fill="#fff" d="M0 170.7h512V199H0z"/>
+    <path fill="#009" d="M0 199.1h512V313H0z"/>
+    <path fill="#fff" d="M0 312.9h512v28.4H0z"/>
+    <path fill="#090" d="M0 341.3h512V512H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gn.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gn.svg
new file mode 100644
index 0000000..8f8855d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gn.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gn" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="red" d="M0 0h170.7v512H0z"/>
+    <path fill="#ff0" d="M170.7 0h170.6v512H170.7z"/>
+    <path fill="#090" d="M341.3 0H512v512H341.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gp.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gp.svg
new file mode 100644
index 0000000..0a5bdb0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gp.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gp" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h512v512H0z"/>
+    <path fill="#00267f" d="M0 0h170.7v512H0z"/>
+    <path fill="#f31830" d="M341.3 0H512v512H341.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gq.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gq.svg
new file mode 100644
index 0000000..8149406
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gq.svg
@@ -0,0 +1,23 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gq" viewBox="0 0 512 512">
+  <path fill="#e32118" d="M0 0h512v512H0z"/>
+  <path fill="#fff" d="M0 0h512v341.3H0z"/>
+  <path fill="#3e9a00" d="M0 0h512v170.7H0z"/>
+  <path fill="#0073ce" d="M0 0v512l160-256z"/>
+  <g stroke="#000">
+    <path fill="#fff" d="M215 204.5h81.7v85.6c0 28.8-37.5 6.6-40.7 22-5.6-15.8-40.8 7-40.8-23.7l-.2-83.9z"/>
+    <path fill="#73452b" stroke-width=".2" d="M261.7 298.4s-1 1.1-3 .3c-1.9-.9-2.1-54.9-2.1-54.9 4.3-4.7 7.7-6.1 7.7-6.1l2.5 2c-9.6 5-8.7 12-7.9 24.2.3 4.5.3 10.2 1.3 15.8 1.5 7 4.5 13 4.7 17.5.2 2.8-3.2 1.3-3.2 1.3z"/>
+    <path fill="#73452b" stroke-width=".2" d="M255.1 236.4h3.9c-3.3 31-.5 49.3-.5 58.2 0 3 1.7 4 1.5 4-3.8 4.3-5.8-.2-5.8-.2z"/>
+    <path fill="#a36629" stroke-width=".2" d="M249.1 298.4c-3.6 1.8-4-1.6-3.8-2 7.9-16 11.3-51.3 4-55.1l.5-3.4c2.7.8 5.3 4.4 5.3 4.4 1 39.5 0 55.7-.6 56.4-3.9 4-5.4-.7-5.6-1.1"/>
+    <path fill="none" stroke-width=".2" d="M249 297.8c-.7-3.4 5.5-12.2 5-21.3m5.4 7.5c1.9 5.3 2.8 10 2.3 14.5"/>
+    <path fill="#009a3b" stroke-width=".2" d="M267.7 221.9c1.3-1.5 1.3-1.5 3.6-1.5.4-3.2 5.8-3.2 6.2.8 4.3-.8 5.1 1.7 3.4 4.3 4-1 7.7 0 6.6 4.7 7.3 2 4.5 7 1.3 8-.4 3.3-3.4 4.4-7.5 3-5 3.7-8 2.4-10.4-1.2-5.8.8-6.2-.4-8.7-3.6-4.5 1.9-5.4 1.9-9.2-.5-.2 3-1.3 2.2-3.2 2 .2 3.8-1.3 5.5-4.7 4.2 2.5 5.4-4 7.7-7.3 3.2-3 .2-3.2-.6-4.7-1.7-1.2 4.3-6 3.7-6.8 1.3-6-.9-5.3-4-.4-4.3.4-3.4 3.4-2.7 5.3-2.3.2-2.1 1.5-1.7 2.6-1.3-.7-1.5-.2-2.3 1.7-2.8-2.8-3.6-1-4.9 1.7-6.2-1.5-3.4 1-3.2 3-3.4-.2-3.6.8-4.2 4.7-4.7-.5-1.2.2-2.3 2.3-2.3-1.3-3.6.4-4.5 4.3-3.8.6-5.3 12-2.8 11 4.4 3.3.5 4.3 1.1 5.2 3.7z"/>
+    <path fill="none" stroke-width=".2" d="M244.9 220c.8.4 1.9 0 2.1 2.3 1.7-3 3.8-1.3 3.8 2.1m11.8-6.2c-.9 1.3-4 1.3-3.7 4.7-1-1.5-3.1-1.9-4-.4m12.8-.6c0 .8-.2 3.4-1 4.7m14.2-1.1c.2.2-3 0-4.5 1m12.4 11.8c-.8-.4-2.6-1.5-3.8.2 0-.9 0-3.2-2.4-3.2m-1.2 6c0-2.2-.5-2.8-1-3.4m-6 .4c-1.8-1.3-3.5.6-3.5 1.7m-9-3.6c0-.9-.6-2.6.9-3.2m-25.2 12.1c.4-2.1 2-2.1 1.7-3.2-.2-1.7-2.1-3.2-4.5-.8m4.5.8c1.3-.4 2.6-.2 3 .5m-6.6-8.4c.9-.8 3-.6 4.3 0m0-5c1 0 3-.5 3.6 1.4 2.3-3.6 4-3.2 4.5-2.3m4.2-.5c1.7-.6 4.7 1.1 6.4 4 .9-2.2 2.2-1.8 3.5-2m8 2c2.8-1.2 4.5 1.4 5.4 2.4 1.3-1.7 2.3-1.7 3.6-1.7m-34.8 4.5c.7-1 2.2-1.3 3.2-.6-.2-2 1.1-2.8 2-2.4"/>
+    <path fill="gold" stroke-width=".8" d="M253.2 192.6l-4.7.2-2.3 4.2-2.6-4-4.7.2 2.1-4.3-2.5-4 4.9-.2 2.1-4.2 2.6 4 4.7-.2-2.2 4.2zm-20 1.5l-4.8 1.2-1.2 4.5-3.4-3.4-4.5 1.1 1.2-4.5-3.1-3.5 4.4-1.1 1.3-4.6 3.4 3.4 4.7-1-1.5 4.5zm-19.5 4l-4.2 2.1-.3 4.8-4-2.6-4.3 2 .4-4.7-4-2.6 4.3-2.2.4-4.7 3.8 2.6 4.3-2-.2 4.7zm45.7-5.5l4.7.2 2.1 4.2 2.6-4 4.7.2-2.2-4.3 2.6-4-4.7-.2-2.4-4.2-2.5 4-4.7-.2 2.1 4.2zm20 1.5l4.5 1.2 1.3 4.5 3.4-3.4 4.5 1.1-1.3-4.5 3.4-3.5-4.7-1.1-1.3-4.6-3.4 3.4-4.4-1 1.2 4.5zm19.2 4l4.3 2.1.2 4.8 4-2.6 4.3 2-.2-4.7 3.8-2.6-4.2-2.2-.2-4.7-4 2.6-4.4-2 .5 4.7z"/>
+    <g fill="#fff" stroke-width=".8">
+      <path d="M304.4 288.4l5.3 7.7 5-7.3-3.5-6.1zm-34 22.4l.5 7.7s2.1 0 4-.6c1.8-.7 3.3-2 3.3-2l-.3-4zm-28.5 0l-.5 7.5s-1.9 0-3.8-.4a11 11 0 01-3.2-1.5l-2.1-5.2zm-34.4-22.4l-5.5 7.7-6-9.8 4.5-4.7z"/>
+      <path d="M234.2 326.2c0 7.2 44 7.2 44 0V316c0 5.3-44 4.2-44 0z"/>
+      <path d="M195 302.5c3.8 19.6 39.2 20 39.2 20V316c-.8-2.6.6-3.5 6.4-4.3 2.4-.2 1.3-3.6 1.3-3.6s-15.4 2.7-26.3-1.5c-14.7-6-16.8-17.5-16.8-17.5s-1 9-3.9 13.4zm122.2 0c-3.6 19.6-39 20-39 20V316c.6-2.6-1-3.5-6.7-4.3-2.3-.2-1-3.6-1-3.6s15.3 2.7 26.2-1.5c14.5-6 16.2-17.5 16.2-17.5s1.5 9 4.3 13.4z"/>
+      <path d="M197.7 295c-9.8-5.3-2.1-10.8-1.3-26.6 1.5 9.6 12.4 13.6 11.1 19.8-4.5.2-6.6-6.6-8.7.9l-1 6zm116.7 0c9.8-5.5 1.7-10.8.9-26.6-1.5 9.6-12.2 13.6-11 19.8 4.4.2 6.5-6.6 8.6.9l1.5 5.7z"/>
+    </g>
+    <path stroke="none" d="M203.7 302.3l1 .8-2.3 2.6c-1 1-1.2 1.7-.5 2.3.8.8 1.4.5 2.2-.4l2.6-2.7.8.8-2.5 3c-1.4 1.6-2.7 1.2-3.8.2-1-.8-1.5-2.1 0-3.7l2.5-2.9zm4.3 3.6l1 .7-.2 5 2.4-3.6 1 .7-3.4 5.5-1.3-.6.2-5.1-2.3 3.6-1-.6zm1.9 9l3-6 1 .6-2.7 5.8zm4.7-5.1l-2.4 6.1 2.4.9c2.2.8 3.2-.2 3.9-2 .7-2 .4-3.3-1.8-4.2l-2.1-.8zm.8 1.5c2.2.7 2.4 1.6 1.8 3-.6 1.5-1.2 2-3.3 1l1.5-4zm6.2.8l-3.8 5.8 1.5.4.8-1.5 2.6.6.2 1.5 1.5.2-1.5-6.8-1.3-.2zm.4 1.5l.5 2.6-1.7-.2 1.2-2.4zm3.3-1l-.3 6.7h2.5c2.4 0 3-1.2 3.1-3.2 0-2-.7-3.2-3-3.3l-2.3-.1zm1.2 1.2c2.4 0 2.8.8 2.7 2.4 0 1.6-.4 2.3-2.8 2l.1-4.4zm21.1 8.1v6.8h1.5v-2.5s1.3 0 2.4-.2c.8-.2 1.4-.8 1.4-2.1s-.7-2-2-2h-3.3zm1.5 1l1.5.1c1.3 0 1 1.9 0 1.9h-1.5v-2zm6.2-1l-2.8 6.8h1.5l.7-1.7h2.8l.6 1.7h1.5l-2.8-6.8h-1.5zm.7 1.5l1 2.6h-1.9l.9-2.6zm3.6 4l3.6-4.4H260v-1h5.1v1l-3.8 4.5h3.8v1.3h-5.5zm21.5-13.2l1.3-.2.6 3.9c.3 1.3-.4 2.3-1.3 2.6-1.1.4-2.5 0-2.7-1.8l1-.2c.3 1.1.8 1.2 1.3 1 .4-.1.6-.8.5-1.4zm2.2-.3l1.2-.3.6 3.2c.3 1.4.7 2 1.6 1.8 1-.2 1.2-.8 1-2l-.8-3.4 1.3-.2.8 3.5c.5 2-.5 3-2 3.2-1.3.2-2.6-.1-3-2.1zm6.6 2.9l1-.4c.6 1 1.4.9 2 .6.9-.4 1-1.2.6-1.4-.7-.4-2.1.1-3-.2-.9-.3-1.3-.9-1.3-1.7.1-1 1-1.5 2-1.8 1-.3 2-.2 2.7 1l-1.2.5c-.5-.7-1-.7-1.5-.5-.4.2-1 .6-.7 1.2.3.4 1.9.1 2.7.1.9 0 1.6.7 1.7 1.5.1 1.1-.3 1.7-1.6 2.3-1.7.6-3.1-.1-3.4-1.2zm5.7-5.3l-1.7.8-.4-1 4.7-2 .4.9-1.7.8 2 4.7-1.1.7zm2.8-2.4l1-.6 3 5.5-1 .7zm7.3.4l1.2-.4a2.6 2.6 0 01-2.5 3.5c-3.2 0-3.6-3.6-3-4.8.8-2 3.2-1.9 4.3-.8l-1.1.8c-.7-.8-2.2-.3-2.3.5a3 3 0 001.6 3.1c1 .5 2.5-.7 1.8-1.9zm-.7-4.4l1-.9 4 5.1-1.1.9zm4-3.2l-1 .8 2.4 6.4 1-1-.6-1.3 1.9-1.7 1.3.6 1-.8-6-3zm.5 1.5l2.1 1-1.2 1.3-.9-2.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gr.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gr.svg
new file mode 100644
index 0000000..4bc68fc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gr.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gr" viewBox="0 0 512 512">
+  <path fill="#005bae" fill-rule="evenodd" stroke-width=".8" d="M0 0h512v57H0z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke-width=".8" d="M0 57h512v57H0z"/>
+  <path fill="#005bae" fill-rule="evenodd" stroke-width=".8" d="M0 114h512v57H0z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke-width=".8" d="M0 171h512v57H0z"/>
+  <path fill="#005bae" fill-rule="evenodd" stroke-width=".8" d="M0 228h512v56.9H0z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke-width=".8" d="M0 284.9h512v57H0z"/>
+  <path fill="#005bae" fill-rule="evenodd" stroke-width=".8" d="M0 341.9h512v57H0z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke-width=".8" d="M0 398.9h512v57H0z"/>
+  <path fill="#005bae" stroke-width="3" d="M0 0h284.9v284.9H0z"/>
+  <g fill="#fff" fill-rule="evenodd" stroke-width="1.3">
+    <path d="M148 0h74v370h-74z" transform="scale(.77)"/>
+    <path d="M0 148h370v74H0z" transform="scale(.77)"/>
+  </g>
+  <path fill="#005bae" fill-rule="evenodd" stroke-width=".8" d="M0 455h512v57H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gs.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gs.svg
new file mode 100644
index 0000000..48f68b8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gs.svg
@@ -0,0 +1,206 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-gs" viewBox="0 0 512 512">
+  <defs>
+    <linearGradient id="b">
+      <stop offset="0" stop-color="#d5dfff"/>
+      <stop offset="1" stop-color="#fff"/>
+    </linearGradient>
+    <linearGradient id="a">
+      <stop offset="0" stop-color="#474747"/>
+      <stop offset="1" stop-color="#f50"/>
+    </linearGradient>
+    <linearGradient id="d" x1="109.3" x2="110.9" y1="218.5" y2="173.4" gradientTransform="matrix(1.51 0 0 .652 40.5 0)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="e" x1="125.9" x2="126" y1="316.4" y2="337.2" gradientTransform="matrix(1.232 0 0 .8 40.5 0)" gradientUnits="userSpaceOnUse">
+      <stop offset="0" stop-color="#b50000"/>
+      <stop offset="1" stop-color="#ffc500"/>
+    </linearGradient>
+    <linearGradient id="f" x1="407.9" x2="456.4" y1="149.4" y2="147.3" gradientTransform="matrix(.56 0 0 1.76 40.5 0)" gradientUnits="userSpaceOnUse" xlink:href="#b"/>
+    <linearGradient id="g" x1="215.8" x2="229" y1="103" y2="103" gradientTransform="matrix(.74 0 0 1.33 40.5 0)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="h" x1="117.6" x2="78.2" y1="1040.4" y2="1003.7" gradientTransform="matrix(2.563 0 0 .384 40.5 0)" gradientUnits="userSpaceOnUse" xlink:href="#b"/>
+    <linearGradient id="i" x1="264.7" x2="255" y1="246" y2="226.4" gradientTransform="matrix(.886 0 0 1.11 40.5 0)" gradientUnits="userSpaceOnUse" xlink:href="#b"/>
+    <clipPath id="c">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#c)">
+    <g stroke-width="1pt">
+      <path fill="#006" d="M0 0h1024v512H0z"/>
+      <path fill="#fff" d="M0 0v28.6L454.8 256H512v-28.6L57.2 0H0zm512 0v28.6L57.2 256H0v-28.6L454.8 0H512z"/>
+      <path fill="#fff" d="M213.3 0v256h85.4V0h-85.4zM0 85.3v85.4h512V85.3H0z"/>
+      <path fill="#c00" d="M0 102.4v51.2h512v-51.2H0zM230.4 0v256h51.2V0h-51.2zM0 256l170.7-85.3h38.1L38.2 256H0zM0 0l170.7 85.3h-38.2L0 19.1V0zm303.2 85.3L473.8 0H512L341.3 85.3h-38.1zM512 256l-170.7-85.3h38.2L512 236.9V256z"/>
+    </g>
+    <path fill="#6a4c2d" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M333.8 380s-3 7.5-4.6 7.5c-1.6 0-7.6-3.2-7.6-3.2s-4.3 7-6.6 7.4c-2.2.4-8.2-1-8.2-1s-5.8 0-6-.9c-.2-.8.3-2.4.3-2.4s-8.3 6.5-10.1 6.1c-1.9-.4-8-8.2-8-8.2l-1 4.1-11.8-.4-10.3-6.6s-5.7 9.5-6 9.3c-.1-.2-10 2.2-10 2.2l-.6-1.8-6.6-4s5.1-7.1 5.1-7.3c0-.2-2.4-1-2.4-1l-3.7 3-7.6 5-7.7-3.5 3.3-6.2.4-4.5 6-9 73-71 36 66.4-5.3 20z"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M385.6 384.3l19-.7-8-4 72.3-2.8-10.2-3.9-9-12.2-37.6-2.9s-2.8-2.1-7.4-1c-.2-3-3.7-6.8-3.7-6.8l-23-1.7-14.5 9.8 9.7 25 12.4 1.1z"/>
+    <path fill="url(#d)" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M121.3 150.8l2.2-7.6s4-6.6 4-9.4c0-3 2.8-6.4 2.8-6.4s9-2.6 10.8 2.9c9.6-14.5 20.8-.7 20.8-.7l3.1-3.6 6.4-7.8s9 8.4 9 9.9 1.6.4 1.6.4l9.8-.8s4.7 3.7 3.7 10.6c3.4 2 6.6 14 6.6 14l-80.8-1.5z" transform="matrix(.86 0 0 .86 207.3 41.7)"/>
+    <path fill="#656263" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M385.5 248.7c1.4-.9 6-2.3 5.5-9-.6-6.7-6.4-7.5-9.6-7.3-3.3.3-6.2 3-6.2 3l-10.7-6.8s5.4-33.8 11-35.9c5.5-3.9 6.4-5.5 6.4-6.4s-2-3.2-2-3.2L345 179l-33 3.9s-2.6 3.9-2.2 5.5.4 3.2 6.3 7.8c6.6 5 11 33.9 11 33.9s-9.2 4.6-9.8 4c-.5-.6-3.3-1.1-4.7-.9-1.5.2-6.3 2.7-6.3 9 0 6.4 4.8 10 4.8 10s31.6-3.6 36.3 5.1c4.5-10.5 34.5-6.8 38.1-8.6z"/>
+    <path fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="1.1" d="M419.5 213.6s.4-3.7 3-5.4c2.6-1.8 20-2.6 24.3 0s5.7 15.5 5.7 15.5 2.6 4.6 2.8 7.9l.5 5.6s14 18.1 14.2 34.6c1.6 11.1 1.2 41-3.2 52.4-.1 14.1-6 23.4-6 23.4s1.3 2.4 1.2 5c-.2 2.7-1.6 5.1-1.6 5.1l20.4 10.1-7.5-2.8 7.5 6.3-8.5-4 5 5-12.4-5.5s5.8 5.4 5.4 5.2l-9.2-4.3 5.4 5.6c-.2-.3-8-3.5-8-3.5l.3 3s-6.3-.4-6.3-5.1a23 23 0 01-5.2-4.2l-14.5-2.5-16.4-49 3.8-83 1-4.2-1.7-11.2z"/>
+    <path fill="#fb0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M408.5 478.8s-8.4-17.8-12.6-18c-3.8-7.2 13.2-66.2 46-69.5 18 1.4 1.4 20.7-10.4 14.8 1.5 5.2 7.4 12.6 7.4 12.6s-23.5 10.1-30.4 60zm-112.7 2.5s7-20.1 11.2-20.4c4.2-.2-11.2-67-44.8-67.6-18.1 1.5-1.5 21 10.4 15-1.4 5.2-7.4 12.6-7.4 12.6s23.6 10.2 30.6 60.4z"/>
+    <path fill="#00713d" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M326.6 355.5c-.1-.1-8.4 2.6-3 11.6.4-3.5 4-5.6 4-5.6s-5.6 6.7.4 12.4c.7-5.3 4.1-7 4.1-7s-4.2 12.3.1 14.8c.5-4.9 3.7-7 3.7-7s-3.8 11-.4 13.5c.4-4.2 3.2-6 3.2-6s-1.7 11.4 2.7 12.2c.1-4 3.4-8 3.4-8s-1.5 9.4 5.5 9.8c0-3.5 1.3-7.6 1.3-7.6s3.2 10 7.8 8.3v-8.4s2.9 9.5 8.4 7.7c-.8-2.7.3-5.8.3-5.8s3 5.9 8.2 4c.9-1.8-.2-5.3-.2-5.3s7.6 8 10 3.2c2.3-4.8-6.2-6.4-6.2-6.4h5.8s-1.9-4.9-9.6-6c2.6-1.1 5.4-.3 5.4-.3s-1.6-6-9.6-6.7c3.1-1 6.5-.3 6.5-.3s-1-5.7-9.8-7.4c1.4-1.5 5.1-1 5.1-1s-3.5-5.4-7.4-5.1-39.8-3.6-39.7-3.6z"/>
+    <path fill="none" stroke="#3ec26d" stroke-linecap="round" stroke-width="1.1" d="M361.9 384.7s3.1 1.6 3 3m-1.1-5.5s4 2.9 4 5m-.5-6.4s3.2 2 3.4 5.2m2-4s1.6 3.6 1 4.2m2.3-2.3c.2 2.8-.3 3-.3 3m-39.6-20.4s3.8 2.5 3.5 5.9m-3.7-3s1.7 1.8 1.3 2.9m3.3-5.7s2.6 3.5 1.7 6m2.6-3.7s1.2 2.2.1 3.4m2-2.4s1.3 2.2.1 3m-1.7 4.2s3.6.8 4 3.5m-1.9-5.9s3.7.3 4.1 4.2m.9-5.6s2.5 4.3 2 5.7m2.7-5.3s1 4.2.3 5.5m2.8-3.8v4.7m-4.7-11.2s2.4.9 2.2 3.1m0-5.2s3 1.7 2.7 5m.8-6.4s2.6 3 1.6 6.5m2.9-5.8s-1 3.8-.6 5.4m3.3-2.8s-1.6 1.3-.7 3m-14 11.8s.6 3 0 3.4m-3.7-5s1.9 3.2 1.2 4.8m-5.2-5s2.1 2.4 2 4.3m-5.2-3.8s2 1.8 1.8 2.9m-3.5-.1s1.9 2 1.8 2.3"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M300.9 252.2l26.7-.5s17.7 0 19.6 5.8c3.4-7.7 18.6-7.2 18.6-7.2l27.7-1 .5 67a71.5 71.5 0 01-44.9 52 68.6 68.6 0 01-45.3-52.6l-3-63.5z"/>
+    <path fill="#006b00" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M310.4 252l39 103.8 35.2-106.1c-11 .7-34.4-1.7-37.3 8.3-4.5-9-29.1-5.4-36.9-6z"/>
+    <path fill="#ffc900" fill-rule="evenodd" stroke="#006b00" stroke-linecap="round" stroke-width=".6" d="M337 308.2c1.4.8 1.4-28.2 3.4-29.1l1.5-6c-1.7-3-9.3-2.8-12-.3a74.5 74.5 0 001.8 5.4c3.8 6.2 3 30.6 5.2 30z"/>
+    <path fill="#cdad56" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="1.1" d="M326.5 84.3s2.8-3.1 2.9-3.9c.1-.7 12.5-1.2 19.9-15 4.1-7.2 0-3 0-3L349 59s5.1-4.9 3.3-7.5c-1.9-2.6-1.3 3.4-4.3 3.3-3-.2-1.4-6.5-1.4-6.5s-.2-.8-1-1.2c-1.3.2-1 2.4-2 2.7-1.2.2-2.2-5.3-2.2-5.3s-1.9-2.5-3.5 5.4c.9 8.4 6.2 6.7 6.2 12.2 0 5.5-4.7 9.8-6 10-1.5 0-1-4.7-1-4.7s-.7-2.3-1.2-2.3 2.7-.5 2.2-6.7c-1-7.5-2 1.7-4 1.4s-.5-7 .3-7.7-.9-3.8-5.3 4.2c-.4 3.8-.9-1-1.7-.8-1.5 3.1-1.3 5.4.9 8.3 3 2.8 5 5.7 5 7.2-.2 1.5-1.8 4.9-4 4.9s0-4.1 0-5.5c-.2-1.4-4-6.4-4-6.4s-2.6-4.2-2.3-4.4c.3 0-.3-.7-1.5 3.7s-2.8-3-2.8-3-1.7 5.5 2 8.7c-2.8-.4-3 .8-3 .8 0 1.5 3.8 2.1 4.3 4.7s-4 4.1-4 4.1 1.9 2.7 7.1-2.5c.1 3.3-2 5.5-2 5.5 1.8.8 3.1.8 3.4 2.8z"/>
+    <path fill="#cdad56" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width=".9" d="M309.3 84.3s-2.3-3.5-2.4-4.1c-.1-.7-11.5.8-17-13-3.4-6.7 0-2.8 0-2.8l.3-3.2s-3.7-4.6-2.1-7c1.6-2.4 1 3.1 3 3.1 2.5 0 1.1-5.9 1.1-5.9s.2-.7 1-1c1 .1 1.5 3.5 2.4 3.7 1 .3 3-4 3.6-4.9.9 0 .8-3.5 2.2 3.7-.7 7.6-7 6.1-7 11.1s4 9 5.2 9c1.1.1.7-4.2.7-4.2s.6-2 1-2c.5 0-3.6.8-3.2-5 1-5.2 3 .4 4.8 0 1.7-.3-.2-5.5.3-6.4 0-.8 2.6-4.2 3.5 3.4.4 3.6 2.3-3 3-2.8 1.3 2.9-.5 6.7-2.3 9.3-2.7 2.6-4 5.5-3.8 6.8.1 1.4.7 3 2.6 3 2 0 .7-2.3.8-3.5.1-1.3 3.3-5.3 3.3-5.3.6-1 .1-3 .8-3.8 1 0 1.4-1.4 2.5 2.6 1 4 2.3-2.6 2.3-2.6s1.5 4.9-1.7 7.8c2.5-.3 2.7.7 2.7.7 0 1.4-1.2 2-1.6 4.3a4 4 0 001.3 3.8s-1.6 2.4-6.1-2.3a7.8 7.8 0 001.7 5c-1.5.7-2.7.7-2.9 2.5z"/>
+    <path fill="#ffc900" fill-rule="evenodd" d="M378 267.4c-2.3-2-2.5-.2-3.7-.7-.5-.2-1-.8-1.5-1.2-.4-.5-.9-.7-1.5-.9l-.6 1.9c-.2.6.6 1.7.6 2.6-.2 1.4-.8 2.5-2.5 3 .5-1 .8-1 .6-2.2 0-.6-1.7-1.7-1.5-2.3.3-.9.8-2 .4-2.9-.7.5-1.6.3-2.4.6-.6.2-.6 1.4-1.4 1.8-1 .4-2.8.2-4.4-.7 1-.7 1.8-.2 2.7-1 .5-.3.5-1.9 1-2.3s1.6-.7 2.1-1c-.4-.6-.4-1.4-.8-1.9s-2.4-.4-2.8-.9c-.9-1-.7-2.3-1.6-3.3 2.2.9 2 2 2.5 1.9a4 4 0 012.7-.4c.5.2 1.6 1.6 2.2 1.9l.7-2c.2-.7-1-1.8-.7-2.4.4-1.3 1.4-2.4 1.9-3.6l.5 3.4c0 .6 1.2 1 1.3 1.5 0 .6-.6 2-.5 2.6l2.2-.1c.7-.2 1-1.7 1.7-1.8a8.4 8.4 0 013.6 0c-1 1-1.7 1-2.3 1.7-.5.4.1 1.6-1.3 2.5-.5.3-1.9 0-2.4.3l1.3 1.5s2.4.7 2.9 1.2c.9 1 1.3 2.2 1 3.3zm-59.8 1c2.3-2 2.6-.2 3.7-.7.6-.2 1-.7 1.5-1.2.4-.4 1-.6 1.5-.9l.6 2s-.6 1.6-.5 2.5c.1 1.4.7 2.6 2.4 3-.4-1-.7-1-.6-2.2 0-.6 1.8-1.7 1.6-2.2-.3-1-.9-2-.5-3 .8.6 1.7.3 2.4.6.6.3.6 1.4 1.5 1.8.9.4 2.8.2 4.3-.7-1-.7-1.7-.2-2.7-1-.5-.3-.5-1.9-1-2.2-.4-.4-1.6-.8-2-1.2.4-.5.3-1.2.8-1.7s2.3-.4 2.8-1c.9-1 .7-2.2 1.6-3.2-2.3.8-2 1.9-2.5 1.8-1.1-.5-2.2-.6-2.7-.4s-1.7 1.7-2.2 1.9l-.8-2c-.2-.7 1-1.8.8-2.4-.4-1.2-1.5-2.4-2-3.6 0 1.2-.3 2.2-.4 3.4-.1.6-1.3 1-1.4 1.5 0 .6.7 2 .6 2.7-.7-.2-1.6 0-2.3-.2-.6-.1-1-1.6-1.7-1.8a8.3 8.3 0 00-3.5.1c1 .9 1.7.8 2.3 1.7.5.3-.2 1.5 1.2 2.4.5.3 2 0 2.4.3l-1.3 1.5c-.4.5-2.4.7-2.8 1.2-1 1-1.4 2.2-1.1 3.3z"/>
+    <path fill="#ffc900" fill-rule="evenodd" stroke="#006b00" stroke-linecap="round" stroke-linejoin="round" stroke-width=".6" d="M376 274.1c-2.1 1.7-15.8 5.1-15.9 17-.1 11.8 2.4 14.5-.1 14.8-5 0-5.7-13.2-5.5-19 .1-5.9.3-5 .3-5s3.3 1 3 3.8c-.2 2.8 3.4-7 2.2-9.8 2.2 2.3 5.2 1.4 5.2 1.2 0-.1-1.7-2-2.4-3.3-.7-1.3 2.5.8 2.5.8s.1-2.3-2.7-2.1c-3.6 0 .6-1.2.6-1.2s2.1 2 3.5-.2a12 12 0 00-3.8-2.5s-2-3.8-4.6-4.5c-3.1-.8-2.7 1.3-6.2 1-.7 1.4-.7 1.5.7 2-2.4 1.6-1.1 5-1.1 5s3.8-1.7 3.6 1c-.1 2.7-2.2 2.2-3.6.6-1.3-.8-1.7.7-1.7.7l2 2.1s-3.9-.1-4.8 2.4c2-.1 3.2.5 3.2.5s-4.3 2-4.8 3c-.4 1-.5-1.2-.7-1.2l-4.2-1.5-1.4 6.5s2.8 2.8 4.4 1.9c1.5-1 4.3-3.6 6-2.9-5 3.8-9.8 9.2-12.5 10-.7-.7-3.1-3-4-1.9-1 1.2-.4 2.7.9 2.6 1.3-.2-4 1.2-3 3.4 1.2 2.3 1 2.1 2 1.5 1-.6-.8-.7 2.8-1.8 3.7-1 3.5-2 3.5-2s-.7 1.6-2.6 2c-2 .5-3.5.5-3.1 1 .4.7 1.2 1.7 1 2.3-.3.6 4-3.1 5.2-.1 3-.2 4.9-3.8 3.5-5.9.1 2.3 1.5 3 .7 4s6.6-3.4 3-6c1 2.2 1 4 1 4s1.8-.2 2.2-.8c.4-.6-.9 1.7-.3 2.1.6.5 3.2 3 2 4.8-.6-1-.7-2.7-1.6-2.5-.8.1-4.3 2.7-6.5 2.8s2.6 7.8 2.6 7.8-3.3-.4-3.7-.1c-.4.3-2.5-2.7-3-1-.6 2.3.8 1.4.8 1.4s-1.9-.9-2.8.2c-1 1-2 2-1.3 2.5s3.8.5 4.2.3-3.5.3-3.8.8c-.3.4-.8 2 0 2.7s3-.3 3.1-.8c.2-.4.3 1.7.3 1.7s3.6.3 3.6-3.5.3 2.7.3 2.7 3.7.6 3.8-3.1.4 2.5.4 2.5 2.4-.7 2.4-1.3c0-.6-.1 7.5-1.8 9.7-2.7-1.8-4.4 1.2-4.4 1.2s.2 4.4-.1 5.4c-.3 1 1.8-.6 2-1 .1-.5 2.6-1.7 2.8-2l.8-1.8s-.5 2.1-1.5 2.4-2 1.4-1.6 2.3c.5.8 2 1.4 2.6 2.3.5 1 2.5-5.2 2.5-5.2l.1 1.3s2.6-.6 2.9-1.8c.2-1.2-2.7-2.2-.3-4.2 2.4-1.9 0 1.8 0 1.8s.8 2.9 1.4 2.9 2-5.4.5-6.7c-1.4-1.4 2.1 1.6 2.1 1.6s2-5.5-.1-6.3l-3.1-1s1.1-1.5.6-1.7 3 3.3 3.5 2.4 1.4-3.6-2.7-5c-4-1.6-.1-5.8-.1-5.8s2.5 3 4.3 1.4c1.9-1.7-.1-1.7-.1-1.7s5.2-3.3 5.3-5l-2.6.2s3-2 2.2-5a3.5 3.5 0 01-2.7 1.6s2.6-2.6 2.1-5c-1.5 1.2-1.4 2.1-2.3 1.8s-2.7-9.7 1.2-10.3c4-.6 1.8 4.6 2 4.6.1 0 5.9-2.4 0-6.3 1.4-.4 4.4 2.3 4.4 2.3s-1.3-6.6-7.6-2.6c1.5-1.6 2.5-2.7 3.7-2.4 1.3.3 5.8-.1 5.8-1.5-1.1-.9-3.5.5-4.8 0-1.2-.4 9-1.2 8.2-6.3z"/>
+    <path fill="none" stroke="#006b00" stroke-linecap="round" stroke-width="1.3" d="M481.3 118.5s12.3-6.4 18.4 1.6m4.9 12.2c-.3 0-4.3 4-5.2 4m13.4 8.9s11.4.9 18.7-10.4" transform="matrix(.46 0 0 .49 110.3 220.1)"/>
+    <path fill="none" stroke="#006b00" stroke-linecap="round" stroke-width="1.3" d="M525 141.8s1 6.1 2.8 6.1-3 1.6-4.9.3c2.2 2.8 3.4 7.7 0 9.5" transform="matrix(.46 0 0 .49 110.3 220.1)"/>
+    <path fill="#e80000" fill-rule="evenodd" stroke="#006b00" stroke-linecap="round" stroke-width="1.3" d="M519.3 219s-4 4.3-9 4.6" transform="matrix(.46 0 0 .49 110.3 220.1)"/>
+    <path fill="none" stroke="#006b00" stroke-linecap="round" stroke-width="1.3" d="M523.9 199.4s-2.5-12.3-1-15.3c1-4 5-5.5 8-10.7m-8.3 17s-3 7.4-16.5 5m20.2-23.3s1 9.8-11.3 6.1m-3.7-50.2s-4.9 4.3-3 10.1" transform="matrix(.46 0 0 .49 110.3 220.1)"/>
+    <path fill="#006b00" fill-rule="evenodd" d="M353.7 277.6s3-1.2 3.6-1.8a9 9 0 001.8-2.7c.3-.9-2-2.3-.9-4.2.7-.9 1.7-1 3.4 0s-1.5-3.3-3.2-3.4-2.8 1.2-3.3.9c-.4-.3.2 1.2-.5 1.2s1.4 1.1 1.2 1.9c-.1.8 2.3 3.3 2.1 3.9 0 .6-3.5 4-4.2 4.2z"/>
+    <path fill="#ffc900" fill-rule="evenodd" stroke="#ffc900" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.3" d="M534.3 97.1c2.8-.6 3.2 0 2.7 2.5a7 7 0 01-2.7-2.5z" transform="matrix(.46 0 0 .49 110.3 220.1)"/>
+    <path fill="#e80000" fill-rule="evenodd" stroke="#006b00" stroke-linejoin="round" stroke-width="1.3" d="M514.7 233.5s-1 6.4 1.5 7c-.1-2.5.5-4.2 1.2-4.9-.6-.2-2.6-2-2.7-2zm-5.7-7.9c-2.3-.3-6.2 1.6-5 4 1.8-1.7 3.6 0 4.9-1.6.4-.4.3-1.8.1-2.4zm0-4.5s-3.6-.6-4.1 1.9c2.5-.3 3.2-.6 4 0 .3-.6 0-1.8.1-2z" transform="matrix(.46 0 0 .49 110.3 220.1)"/>
+    <path fill="#e80000" fill-rule="evenodd" stroke="#006b00" stroke-linejoin="round" stroke-width="1pt" d="M493.5 185s2.2.8 2.9 3c1.7-1 2.5-5.8-2.9-3zm-5.4 5.4c.1 0 4.6-2.8 5-.2-.9 1-1.3 1.6-2 1.8-.6 0-1.8-1.8-3-1.6zm-.4 8.8s2.9-2.5 4-.8c1 1.6-1 1.5-1 1.5s-1-.4-3-.7zm-4-49.2s-3.6-1.4-5 1c2.3.4 3.1 1.2 4.2 2-.3-1-.8-2.6.8-3zm-6.9 18.5s.2-4.2 2.1-5.9c1.2.7 1.5 1.7 2.2 2.9-1.5.3-3.4.4-4.3 3zm9.5-3s-4 1.9-2.6 3.8c1.2-1.3 2.7-1 2.7-1l-.1-2.8z" transform="matrix(.46 0 0 .49 110.3 220.1)"/>
+    <path fill="#ffc900" fill-rule="evenodd" stroke="#006b00" stroke-linejoin="round" stroke-width="1pt" d="M480.6 125.6c-1.4 1.6 1.8 5 5 4.5 1-3.7-4.1-5.7-5-4.5z" transform="matrix(.46 0 0 .49 110.3 220.1)"/>
+    <path fill="none" d="M331.2 278.1c-.3.9 1 2 1.7 1.7.3-.8-1.4-2.3-1.7-1.7z"/>
+    <path fill="#e80000" fill-rule="evenodd" stroke="#006b00" stroke-linejoin="round" stroke-width="1pt" d="M484.3 122.8s.6 2.9 3.4 2.1c-.4-2.3-2.4-4-2.4-4-.1.7.4 1.7-1 1.9zm1.9 8.5s1.5 1.7 4.6-1.8c-1.4.4-3.8-.8-3.8-.8s0 2.4-.8 2.6z" transform="matrix(.46 0 0 .49 110.3 220.1)"/>
+    <path fill="#ffc900" fill-rule="evenodd" stroke="#006b00" stroke-linejoin="round" stroke-width="1pt" d="M480.5 118.9c-1.4 1.5.5 3.7 3.8 3.2.9-3.7-3-4.4-3.8-3.2z" transform="matrix(.46 0 0 .49 110.3 220.1)"/>
+    <path fill="url(#e)" fill-rule="evenodd" d="M144.6 266.6s7-2 10.8 1 3.7.3 3.7.3 5.5 2 7 1.6-1 .1 1-1.2c2.2-1.2-4.2.3-4.8-2.4-1-1.7.1-3.9-2.2-3.2-1.5-2 1-3.4.5-5.6-1.6 1.2-2.5-.4-3.8 2.5-3-.6-.4-4.8-3.7-5.2 0 3-2.4 3.2-2.6 4.9-1.4 1-7.7 4.7-5.9 7.3z" transform="matrix(.86 0 0 .86 207.3 41.7)"/>
+    <path fill="#c01500" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M262 467.9c4-1 25.2 4.7 33.4 13.5-1.7-15.7-6-27.7-6-27.7s-12.8-3.6-14.5-1.9a96.3 96.3 0 00-13 16.1zm-6.5-72.3c-1.5.2-3 1.2-4.5 3.7-1.7 4.2-3 14.9-5.4 17.4-2.5 2.5-4.8 2.7-4.8 5 0 2.2.3 7.4 7 9.4 6.7.3 17.4-10.7 17.4-10.7s5.5-6 7.7-12.4c-13 4.5-22.1-7.5-17.4-12.4zm187 69.8c-4-1-25.4 4.7-33.6 13.4a133 133 0 016-27.5c1.6-.4 12.5-3.6 14.2-1.9 2.6 2.7 10.7 10.7 13.4 16zm6-72c1.5.3 2 2.3 3.2 4.7 1.7 4.2 3.5 10.4 6 12.8 2.5 2.5 4.7 6.2 4.7 8.4s-.5 5.2-7.2 7.2c-6.7.3-16.3-8.3-16.3-8.3s-5.4-6-7.7-12.4c12.9 4.5 21.2-7 17.3-12.3z"/>
+    <path fill="#fb0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M248 454.2s13.5 9.2 13.7 13.5c36-53.5 128-70.1 180.5-3.8 7-9.2 14.2-12.1 14.2-12.1-55.2-72.2-165.1-63.2-208.4 2.4z"/>
+    <g fill="#1e5aa6" fill-rule="evenodd" stroke="#000" stroke-width="1.1">
+      <path d="M385 249.9l5.2-.2-9.4 12 11.3 13-22.2 28 21 25.2a70 70 0 01-8.6 15.4l-12-13.3 21.8-27.2-18-20.3L385 250zm-75.2 2.3l-5.6.2 10.5 11.4-11.1 13.9 23.1 25.1-19.1 25.7a75.8 75.8 0 009 16.5l11.5-14.4-23.4-26 17.1-21.8-12-30.6z"/>
+      <path d="M335.9 319.8l-8.3 11L357 365a74 74 0 0013.8-9.2L355.5 338l6.3-18.4 9 10.4-28.2 36a62 62 0 01-14.7-9.1l15-18.9-7-18.2zm-9.2-17.1l5.4 6.8-3.5-9.2-1.9 2.4zm38.6 6l4.3-5.8-1.6-2.2-2.7 8z"/>
+    </g>
+    <text x="-328.3" y="362.4" font-family="Timmons" font-size="14" font-weight="bold" transform="rotate(-49.4 149.8 -205) scale(.86)">
+      <tspan x="-328.3" y="362.4">L</tspan>
+    </text>
+    <text x="-292.3" y="384.3" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.6 -.6 .6 .6 207.3 41.7)">
+      <tspan x="-292.3" y="384.3">E</tspan>
+    </text>
+    <text x="-239.8" y="451.7" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.66 -.47 .5 .65 207.3 41.7)">
+      <tspan x="-239.8" y="451.7">O</tspan>
+    </text>
+    <text x="-188.5" y="430" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.7 -.48 .48 .7 207.3 41.7)">
+      <tspan x="-188.5" y="430">T</tspan>
+    </text>
+    <text x="-115.4" y="451.5" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.78 -.37 .37 .78 207.3 41.7)">
+      <tspan x="-115.4" y="451.5">E</tspan>
+    </text>
+    <text x="-94.1" y="453.1" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.8 -.35 .35 .8 207.3 41.7)">
+      <tspan x="-94.1" y="453.1">R</tspan>
+    </text>
+    <text x="-68.4" y="455" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.8 -.32 .32 .8 207.3 41.7)">
+      <tspan x="-68.4" y="455">R</tspan>
+    </text>
+    <text x="112" y="445.7" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.86 -.07 .07 .86 207.3 41.7)">
+      <tspan x="112" y="445.7">R</tspan>
+    </text>
+    <text x="180.2" y="430.8" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.86 0 0 .86 207.3 41.7)">
+      <tspan x="180.2" y="430.8">R</tspan>
+    </text>
+    <text x="414.8" y="275.2" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.75 .43 -.43 .75 207.3 41.7)">
+      <tspan x="414.8" y="275.2">R</tspan>
+    </text>
+    <text x="483.9" y="193.1" font-family="Timmons" font-size="14" font-weight="bold" transform="rotate(39.9 46.5 307.2) scale(.86)">
+      <tspan x="483.9" y="193.1">E</tspan>
+    </text>
+    <text x="309.1" y="414" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.83 .16 -.13 .82 207.3 41.7)">
+      <tspan x="309.1" y="414">O</tspan>
+    </text>
+    <text x="105.1" y="459.3" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.78 -.1 .12 .84 207.3 41.7)">
+      <tspan x="105.1" y="459.3">O</tspan>
+    </text>
+    <text x="-45.7" y="455.8" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.8 -.3 .3 .8 207.3 41.7)">
+      <tspan x="-45.7" y="455.8">A</tspan>
+    </text>
+    <text x="518.4" y="144.7" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.6 .6 -.6 .6 207.3 41.7)">
+      <tspan x="518.4" y="144.7">A</tspan>
+    </text>
+    <text x="271.2" y="388.3" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.84 .17 -.17 .84 207.3 41.7)">
+      <tspan x="271.2" y="388.3">A</tspan>
+    </text>
+    <text x="40.3" y="455.2" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.85 -.16 .16 .85 207.3 41.7)">
+      <tspan x="40.3" y="455.2">M</tspan>
+    </text>
+    <text x="94.4" y="448.1" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.86 -.1 .1 .86 207.3 41.7)">
+      <tspan x="94.4" y="448.1">P</tspan>
+    </text>
+    <text x="155.1" y="437.6" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.86 0 0 .86 207.3 41.7)">
+      <tspan x="155.1" y="437.6">P</tspan>
+    </text>
+    <text x="405.1" y="276.7" font-family="Timmons" font-size="14" font-weight="bold" transform="rotate(29.3 24.1 418.1) scale(.86)">
+      <tspan x="405.1" y="276.7">P</tspan>
+    </text>
+    <text x="232.1" y="409.8" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.85 .1 -.1 .85 207.3 41.7)">
+      <tspan x="232.1" y="409.8">I</tspan>
+    </text>
+    <text x="530.4" y="132.1" font-family="Timmons" font-size="14" font-weight="bold" transform="rotate(46.4 55 262.7) scale(.87)">
+      <tspan x="530.4" y="132.1">T</tspan>
+    </text>
+    <text x="464.2" y="218.5" font-family="Timmons" font-size="14" font-weight="bold" transform="rotate(36.4 39.4 333.9) scale(.87)">
+      <tspan x="464.2" y="218.5">T</tspan>
+    </text>
+    <text x="313.7" y="362" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.83 .24 -.24 .83 207.3 41.7)">
+      <tspan x="313.7" y="362">M</tspan>
+    </text>
+    <text x="513.7" y="123.3" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.58 .64 -.64 .58 207.3 41.7)">
+      <tspan x="513.7" y="123.3">G</tspan>
+    </text>
+    <path fill="none" stroke="#fff700" stroke-linecap="round" stroke-width="1.1" d="M427.4 214.5s5.2-4.4 8.9-4.6m-8.2 4c.1-.1 31-4.5 32-5.4m-31.9 5.6l34.6-3m-34.7 3.2s36.7-1.8 39 0m-39.1-.2s36 .3 36.6 1.1m-36.5-1l34.6 2.8m-35-2.6c.2 0 35.3 3 38.7 7.5m1.9 6.3c-.2-.1-12-14.2-40.7-14m.2.3s19.8 1.4 26.1 8.3m-25.8-8.5s12.9-2.5 26.3 13.7"/>
+    <path fill="url(#f)" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M247.4 217.7s20.7.9 20.7 2.9-15.4 5.9-15.6 14.4c-.2 8.5 11.8 9.2 12.6 20 .8 10.7-9.4 12.3-11.4 15.2-2 1.4-6.9 16.6-6.3 25.5.6 9 3.3 39.2 8 45.3 3.6 2.9 9 12 15 9.2 5.9-2.9 1.8-13.2 1.2-16s2.4-7.6 2.4-11.8c0-4.3-2.2-7.8-2-8.8.2-1 16.4 3.9 15.4 20-1 16-7.5 11-7.5 11s2 19.8-3 22.4c-9.2 5-15.9-1-15.9-1l.9 4-7-3.6s-9-12.8-11-18.5-4.4-31-3.6-36.5c.8-5.5 1.4-37.6 1-39.2s-2-28.5-1-32.5 7.3-22 7.1-22z" transform="matrix(.86 0 0 .86 207.3 41.7)"/>
+    <path fill="#ff7000" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M400.8 224.4s12.4-12 19.6-10.6c3.7 0 .2 2.6.2 2.6s6.2.5 7.1 3.3c.2 1.2-3 1.6-3 1.6s2.7.5 2.9 2.8-26.6.5-26.8.3z"/>
+    <path fill="none" stroke="#000" stroke-width="1.1" d="M401.5 223.9s13.3-1.8 18.9-7.4m-5.4 3.7s9.7-.3 9.7 1"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="1.1" d="M449.7 363.1s8.4-1.9 10.7-4.9c1.4-1 8.7 11-10.7 5z"/>
+    <path fill="none" stroke="#fff" stroke-linecap="round" stroke-width="1.1" d="M447.5 293.8s1 6.4-2 10.8c-1.5 1.7-6.3 4.7-6.3 6.8 0 2.1 1.8 4.9 1.4 7.3s-3 5-2.8 7c0 2.1 3 13.3 2.7 13.5m-8.4-66.4s-6.7 2.3-8 9"/>
+    <path fill="#c75b00" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M429.3 220.2s2.3 6.3 9.6.4c-4.7-6.5-9.6-.2-9.6-.4z"/>
+    <path fill-rule="evenodd" d="M434.9 220c0 .4-.4.7-.8.7s-.8-.3-.8-.6.3-.6.8-.6.8.2.8.6z"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M369.3 205.6s14 15 23 15c1.6 4.4-4.2 8.5-6.5 10.4-4.5-1.4-8.7.3-19.3-12.8.6-8.3 3-12.2 2.8-12.6zm18.8-35c1.8-5.6 5.4-10 8.5-10.5-.8-4.2 6.6-23 28-30.3 1.3 9.7-9.1 19.2-9.1 19.2s31.6-5.4 38-13.4c-.7 3.6-7.1 26-40.8 25.8 12.7 12.1-4.1 21.8-11.3 18.9 13.2-10.2-3.8-16.2-13.3-9.7z"/>
+    <path fill="#cccccd" fill-rule="evenodd" stroke="#ccc" stroke-width="1.1" d="M399 162.8c6.3-4.1 8.6-4.1 13.8-3.3l-3.7.6s-.3.5 2 2.7c-2.7-.7-5-2.2-12.2 0z"/>
+    <path fill="none" stroke="#000" stroke-width="1.1" d="M396.5 160.1s12.6-6.7 19.6-11.3"/>
+    <path fill="#00f" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M385.7 231s17.3 4.8 19.3-20.1c-3.8-10.8-9-34-1-40.8-7.4-5-15.4.2-15.4.2-.5 1.1-7 10.5 1.8 26.8-21-5.5-12.4 14.3-12.4 14.3.8-3.1 12-6 14.7 9.8 1.2 4-7.5 10-7 9.8z"/>
+    <path fill="#00f" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M405.1 211s18.4-9.8 17.9-32.9c-15.6.4-21.1 20.5-21.1 20.5L405 211z"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M323 209.9s-13.6 11.8-21.3 8c-5.7 3.4-12.4-2.6-12.4-2.6s7.8 29 36 8c-.5-6.4-2-13-2.3-13.4z"/>
+    <path fill="#00f" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M301.5 217.4c1.2-6 6-9 9.7-3.3 5 1 10.2-19.8-7.9-16.3 5.1-27.2-10.1-37.3-10.1-37.3s-5.4 30-3 35.6c2.5 5.6-3.5-10.3-23-14.7-.3 22.8 21.7 33.4 21.7 33.4s6.3 5.7 12.6 2.6z"/>
+    <path fill="none" stroke="#000" stroke-width="1.1" d="M303.3 197.6s-8.5 7.2-6.5 17m-6.4-18s-2 7 2.3 17m-3.6 2.4s4-6.4 12.4 1.8"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M290.7 171.8c0-.2-12.9 0-5.2 13-5.7 1.8-18.5-6.5-9.7-17.6-29-.7-40.7-14.6-40.7-27.4 8.5 8.9 28.8 5.3 36 10.7-8.8-8.2-7-19.5-7-19.5s24.7 7.4 29.1 29.3c-1.5 4.2-2.1 11.8-2.5 11.4z"/>
+    <path fill="none" stroke="#000" stroke-width="1.1" d="M270.9 149.9c4.7 4.9 17 6.3 23.2 11.7"/>
+    <path fill="#cccccd" fill-rule="evenodd" stroke="#ccc" stroke-width=".8" d="M276.5 164.2s10.2-1.3 13 2.3c-3.9 0-5.2-1-11 1.2 1.7-.9 1.2-2.3 2.1-2.3s-3.7-1.2-4.1-1.2z"/>
+    <path fill="#923f00" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M327 84.8s5.6-4.9 11.7-.4c-2.7 8.1-12.6 5-12.6 5s.3 4.1-.7 6c2 1.6 3.6 6.5 3.6 6.5s10.2-2.5 12.3 2c3.9-.6 6.7 0 6.7 0s7.9-2 10.7-2c2.7 0 11.6 2.3 12.4 3.9.8 1.6 3.8 12.6 5.7 12.4 2-.1-4.7 2.7-6.5-.1-1.8-2.8-1.3 3.6-1.3 3.6s5.5 5.9 6.2 7.2c.6 1.3-3.4 12-.3 19.3-2.8.2-3 3-3 3-.1 3.3-4.2 4.2-4.2 4.2l-1-4.4-2.8 1.6 1.1-3.4s3.8-9.2 4.1-12.1c.4-3-3.4-8.2-6.3-8.2s-5.1 9.3-5.1 9.3-1.5 7-1 7.7l-2-2.3s-1.3 4.3-2.3 5.6c-1 1.3-3 1.8-3 1.8s-1.5-4.3-1-6c.4-1.6 8-8 7.3-12.5-.6-4.6 0-3.5-.2-3.6-.1-.2-3.9-3.5-4-5.3-.2-1.8-5 2.3-11.2 1-1.9 3.3-2 11.6-2 11.6s-.8 10 .6 11.2c1.3 1.1-3.3 3.6-3.3 3.6l-3.3 4.4-1.1-2.6-2.3 1.6 1.3-3.3c0-2.5 3.2-9.2 3.2-15s.4-11.8.4-11.8-6-.3-6 5.9c.3 6.2-1.4 6.5-1 8.3.3 1.8 2 6.9 1.4 8.4-.5 1.4-2.4 2-2.4 2l-.5.8s-6 2.7-6 3.9c.2 1.1 0-3.3 0-3.3l-.4-4.7s3.6-2.3 3.6-8c0-5.8-.8-6.6-.7-8 .2-1.2 1-6 .9-6.5-.2-.5-3.5 1.3-4.5 1.3s1.8-3.4 2.2-5.9c.3-2.4-3.3 2.3-6.3-.4 1.4-3 3.5-4 3.8-6.3s-2.3 2-4.6.4c.2-2.2 2.5-4.1 2.5-4.1s-1.9-.2-2.6 0c-1.5-.5 1.6-2.8 1.8-6 .1-3.4-1.8-4.7-1.8-4.8 0-.2-3.3-3-3.8-4.1-.5-1.2-.5-2.5-.5-2.5s-5.4 4-11.8-4.4c5.9-5 12.1-1.3 12.1-1.3s1.7-4.6 9.2-4.3c7.5.4 9 4.6 8.7 4.1z"/>
+    <path fill="#00f" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M368.3 169.5s13.8.4 14 7.8c.1 7.3-4.2 5.4-4.4 5.4l-10-1.2.4-12z"/>
+    <path fill="#fffeff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M354.9 167.5s17.2-.2 16.2 7.3-5.3 6-5.3 6l-8.3-.7-2.6-12.6z"/>
+    <path fill="#00f" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M345.2 166.6l10 .9s6 .8 5.7 6.5c-.3 5.7-6.1 5.9-6.1 5.9l-9.7-.6.1-12.7z"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M321.9 169.5c-.1 0-13.9.4-14 7.8-.2 7.3 4.2 5.4 4.3 5.4l10.1-1.2-.4-12z"/>
+    <path fill="#00f" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M335.3 167.5s-17.2-.2-16.3 7.3c1 7.5 5.4 6 5.4 6l8.3-.7 2.6-12.6z"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M345 166.6l-10 .9s-6 .8-5.7 6.5c.2 5.7 6.1 5.9 6.1 5.9l9.7-.6-.2-12.7z"/>
+    <path fill="#5e0043" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M371.6 249.4s7.1-10.6 10.2-9.4c2.6.9.6 9-.7 9.8l-9.5-.4zm-49 1.9c-2.3-3.2-5.6-11.8-8.6-9.4-2.6.8-.6 9 .6 9.8l8-.4z"/>
+    <path fill="none" stroke="#000" stroke-width="1.1" d="M327.3 230.4s14 8.6 18.5 8.8c4.6.3 19-11.1 19-11.1"/>
+    <path fill="#5e0043" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M328.6 196.8l2.7-3.4 13.4 6.8 13.6-6 2.7 2.8-15.2 10.7-17.2-11z"/>
+    <path fill="#474747" fill-rule="evenodd" stroke="#474747" stroke-linejoin="round" stroke-width="1.1" d="M318 196.6c1 1.3 9.7 11.9 11.3 20.6 1.6 8.7-.9-12-.9-12s10.7 5.3 11 8.6c.4 3.4 5.2-.2 5.4-.8l-31-20.1 4.2 3.7zm52.9-.6s-11.3 14.8-10 31c-2.3-7.8-.4-20.6-.4-20.6l-2.4 1.6s-2.6 11-5.8 12.6c-.6-1.3-.5-1.8-.5-1.8s-3.4 4.5-4.1 5c-.7.4.2 15 .2 15s1.2 10.6 2.5 10.5a45 45 0 00-3.4 1.9l-1.4-28.3 3.2-3.2s4.3-5.1 4.6-10.1c-1.9 1.5-4 2-4 2s-.5 7.1-2.1 8.1c-1.7 1-1.8 2.9-1.8 2.9l-.4-9.3L371 196z"/>
+    <path fill="none" stroke="#000" stroke-linecap="round" stroke-width="1.1" d="M345.1 213.1l2.2 44.6"/>
+    <path fill="none" stroke="#000" stroke-width="1.1" d="M317.7 234.4s5.1 3 7 12.2c16.7-1.2 22 4.7 22 4.7s13.7-6.6 20-5.4c2.3-4.7 8.7-10.7 8.7-10.7"/>
+    <path fill="#b4b6b9" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M310.7 190.7l34.4 22.6 31-21s6.5-3.5 6-6-2.8-1.6-4-1.2c-1 .5-32.4 22.7-32.4 22.7l-33.4-21s-2.4-.9-2.9.7 1 2.4 1.3 3.2z"/>
+    <path fill="#474747" fill-rule="evenodd" stroke="#474747" stroke-linejoin="round" stroke-width="1.1" d="M372.3 184.9s-8.8-3.8-8.8-.5c0 3.2.2 3.5 1.6 5.6 1.4 2.1-1 3.4-1 3.4l-.9-2.3c-.5-1.4-5.2-2.4-5.6-4-.4-1.7 1-4.4-1.9-4.7a5.2 5.2 0 00-6.1 4.4 67.5 67.5 0 01-4.2 10.8l.5-17.2c6.2.4 17.7 1.8 26.6 2.8-2.7-.4 1 .2.9 1-.3.8-1.2 1-1.1.7zm-31.2-4.4c-1.6 0-9.5 1-11.5 2.1-2 1.2 3.3 3 2.6 4.6-.7 1.6-.7 4.7-3.2 4-2.5-.6-11-4.7-11.2-6.2-.2-1.4-2-1.5-2-1.5s24.1-3.2 25.3-3z"/>
+    <path fill="none" stroke="#000" stroke-width="1.1" d="M344.9 178.6v21.1m-16.3-46l-9.8 16.1"/>
+    <path fill="url(#g)" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M161.8 129.7s4.9 6.7 4.3 8.6a25 25 0 014.3 7.8" transform="matrix(.86 0 0 .86 207.3 41.7)"/>
+    <path fill="none" stroke="#000" stroke-width="1.1" d="M362.7 152.3s-9.1 12.8-8.8 13.8"/>
+    <path fill-rule="evenodd" d="M316.2 91.4c-.2.7-1.4 1-2.6.7s-2-1.3-1.8-2c.2-.7 1.3-1 2.6-.6s2 1.2 1.8 2zm3.7-.2c.2.7 1.4 1 2.6.6s2-1.3 1.8-2c-.2-.7-1.4-1-2.6-.6s-2 1.3-1.8 2z"/>
+    <path fill="#ff7000" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="1.1" d="M426.1 356.6s-3.3.6-3.2 1-9.8.5-10 .2c-.2-.3-1.5 1.7-1.5 1.7l1.6-1s2.4 2.6 3.1 2.4c.8-.2-.3 1 0 1.1.1.2.9-.4.9-.4l16.3-.3-7.2-4.7zm6.1 5.1l-13.3.4s-3.4 3-3.6 3.7 2.2 1 2.2 1l.7 2.5 1.7-.6s11.4 1.7 21.8-.6c5.3-1.9 6.2-4.1 2.5-5.5-3.7-1.3-11.9-.9-12-1z"/>
+    <path fill="url(#h)" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M208.4 404l28-1.3-5.3-4.4 75.7-3-2.6-6-84.7 3.3 10.2 4.8-23 .6.8 2.4-6-.2s6.6 2.6 6.9 3.7z" transform="matrix(.86 0 0 .86 207.3 41.7)"/>
+    <path fill="url(#i)" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M239.7 249.4c-2.2-1-12-2.4-22.8 4.7l.4 25s16-8.6 23.8-6.6c-.5-7.8-.5-17.8-1.4-23z" transform="matrix(.86 0 0 .86 207.3 41.7)"/>
+    <path fill="none" stroke="#000" stroke-width="1.1" d="M280.4 321.8L223.7 378m82-56l-46 60.7m44-76.5l-61.5 74.5m-1.8-1l6-7m69-29l-23.9 32.8m-1 4.3l.6 12.6m35.2-38.2L301 386.9m20.8-2.5l10.2-16.8m-6.3-3.3l-12.4 14M322 351l-8.5 10.3m-2.4-25.3s-25.7 37.6-25.3 40.7m22.6-45.6c-.6.4-22.2 29-22.2 29m-1.2 9l-4 4.8m-4.9 7.2l-6 7.8"/>
+    <path fill="#8a9396" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.1" d="M277.6 235.2s-1.7 5.5 0 8.2 12.7 24.9 12.7 24.9 7.5-9.2 10.2-9.5c2.7-.2 1.5 23.9 1.5 23.9s-4.5 4.2-7.2 4c-2.7-.3 6.7 9.4 6.5 17.6s-12.5 49-17 49.7c-4.4.8 2-7.4 1.8-9.7-.3-2.2-1.5-.7-2.5-3.2s1.5-6.2 1-8.7-2.8-2-3-3.7 1.5-2.3 1.2-4.2c-.2-2-3-1.5-2.7-3.3s.5-1 .3-4.2c-.3-3.2-.8 2.2-3.5 2.5-2.8.2-5 6.4-5 6.4s-5.5 7.7-11 4.3c3.3 7 .8 10-.4 10.2s1 5.4-2 5.7 2.2 11.7-1.3 12.7c3.8 1.7.8 4 .8 4s-8.6.7-6.7 11.9c-25.4-9-37.8-24.4-37.6-40 .3-15.7 5.3-29.9 17.4-35 3.5-13 9.5-27 9.5-27s-1-5.7-.3-9.4c.8-3.7 4.3-7.4 4.3-7.4s-.5-9-.3-13.5c.3-4.4 2-6.4 2.2-9 .3-2.4-.7-15 1.8-17.3 2.5-2.3 7.2-2 9.7-3.5 2.5-1.5 5.7-4.2 9-4s6 2.5 6 2.5 12 0 12.8 4.7c.8 4.7-2.5 6.5-2.5 6.5s1.8 6.7-5.7 13z"/>
+    <path fill="#cecfcf" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.1" d="M266.9 218.1c.4.7-.5 2-2 2.8s-3 .8-3.4.1c-.4-.7.5-2 2-2.8s3-.8 3.4-.1z"/>
+    <path fill-rule="evenodd" d="M264.8 219.3c0 .5-.4.9-1 .9-.4 0-.9-.4-.9-.8 0-.5.5-.9 1-.9s.9.4.9.9z"/>
+    <path fill="none" stroke="#2b2b2b" stroke-width=".5" d="M283 227.5s3 13.4-.7 22.8m1.5-28.7s6 7.8 5.2 17.4m-4.6-19.1c.2 0 5 4.1 4.8 7m-3.6-8.8s3.2 2.3 4 4.6"/>
+    <path fill="none" stroke="#000" stroke-width="1.1" d="M284 216.8s-11.5 18.8-10 30.6"/>
+    <path fill="none" stroke="#2b2b2b" stroke-width=".5" d="M284.8 216.2s-15.4 9.2-18.2 39"/>
+    <path fill="none" stroke="#000" stroke-width="1.1" d="M283.1 221.8l-6 4.5"/>
+    <path fill="none" stroke="#2b2b2b" stroke-width=".5" d="M260.9 256.9s8.5-35.5 23.7-40.7"/>
+    <path fill="#2b2b2b" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.1" d="M290.5 268.9s8.2-10.3 10-9.9c2 .4 1.4 23.8 1.4 23.8s-6 4.5-7.4 4.3c-1.3-.2 6.8 11 6.6 15.2l-.3 4.2s0-2.5-2-6.5c-1.8-4-.7-8.5-13-18.6-3-6.2 6 3.8 8 2.3 1.8-1.5-3.5-14.6-3.3-14.8z"/>
+    <path fill="none" stroke="#2b2b2b" stroke-width="1.1" d="M276 211s-3.5 1-4 2.4c-.4 1.4-2.4 2.8-3.5 2.4a18.9 18.9 0 01-3.1-2.2"/>
+    <path fill="#2b2b2b" fill-rule="evenodd" stroke="#2b2b2b" stroke-linejoin="round" stroke-width="1.1" d="M256.5 223.1s-5.2 5.2-2.7 5.8c2.5.6 5.2-4 5.2-4s0 7.9 2.1 6.6l8.6-5.7s2.2-.2 2.7 0c.5.1 6 4.8 9.5 3-2 5.4-4.4 6-4.4 6s-3.7 4.9-8.6 3.8c-4.8-1.1-6-3.2-6-3.2s-4.1.3-5.3-1.5c-1.3-1.9-1.8-3-1.8-3s-2.3 2.4-3 1.3c-.6-1.1 0-7.5 3.7-9z"/>
+    <path fill="none" stroke="#2b2b2b" stroke-width="1.1" d="M285.7 216s-9.6-2.9-12.8 1.8c-3.3 4.7-2.5 7.3-.8 7.8"/>
+    <path fill-rule="evenodd" d="M287.1 215.7c0 1-.8 2-1.8 2s-1.8-1-1.8-2 .8-2 1.8-2 1.8.8 1.8 2z"/>
+    <path fill="#2b2b2b" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.1" d="M259.4 240s3.9 6 8.5 7.6-3.2 3-7.8 0c-3.4-4.6-2.5-8-2.5-8s1-.8 1.8.4zm33.3 35.2s-11-15.1-14.1-16c-3.1-.8 2.4-1.5 5.7 1.8 3.4 3.2-.9-5.3-.9-5.3l9.3 19.5z"/>
+    <path fill="#2b2b2b" fill-rule="evenodd" stroke="#2b2b2b" stroke-linejoin="round" stroke-width="1.1" d="M258.4 362.8c4.2-1 22.4 10.5 26.5 13.4 4 3 12.7 1 12.7 1s-4 2.5-6.5 3 7.4.7 7.4.7-23.3 6.4-47-6.1c-2.2-9.7 5-11.9 6.9-12z"/>
+    <path fill="#2b2b2b" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.1" d="M285 279s-3-.6-4.6-2.4c-1.6-1.8-3.8-6.2-6.1-8.1s-14-8.2-18.1-7.8c-4.2.5-5.5-.4-6-1-.5-.5-2.2.3-2 2.5.4 2.1-3.1 6.9-1.9 9.1a63.5 63.5 0 008.5 11.7c1.2.3.4 5.3.4 5.3s5.3 5.4 6.7 5.7c1.3.3 2.7 1.2 2.5 2.5-.1 1.3-5.8 8.2-5.8 8.2s-6.1 3.2-6.2 5c0 1.8 1.5 5.6 6.3 6.8a45 45 0 0018.6-1c.7-1 1.8-7.8 1.3-8.4-.4-.7-3.7-2.7-5.3-2.4-1.6.3-3.1 1.6-3 1.9.2.3-2.3 1.6-2.3.4s4.9-6.6 5.3-6.2c.5.5 7.3 1.2 8.6 4.6s1.3 5.9 4.9 5.5c3.5-.3 8.5-3.6 9-10.5.4-6.9-4-11.5-5.2-12.2-1-.6-4.8-2.9-5.1-4-.3-1-1-4.4-.5-5.2z"/>
+    <path fill="#2b2b2b" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.1" d="M220.4 309.3s11.6-3 14.6-3c3 .1 14.2 5.4 17.5 8.6 3.3 3.2 10 10.8 14.4 10.2 4.5-.7 5.7-1.6 5.7-1.6l-1.7 3.3s-3.6 1-5.4.5a19 19 0 01-8.8-5c-3.5-3.4-14.3-12.7-23.5-12-9.2.6-14.5 9.7-14.5 9.7s0-4.4.4-5.4-1.9 2-1.9 2l3.2-7.3z"/>
+    <path fill="#2b2b2b" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.1" d="M263 318.3c.1 0 3 .8 7.8.8s7.3-2.1 7.3-2.1l-.3-1.9.7-2.6s3.7 3.7 3.6 4.5c0 .7-1.5 1-1.5 1l-.5-1.8-1.3 1.6s-7 5.5-10.7 4.7c-3.8-.8-7.4-3.3-6.4-3.9s1.5-.4 1.4-.4zm-16.8 9.7s-4.2 0-6 .9c-2 .9-2.6 2-3.9 1.8-1.2-.1-2.2-1.8-1.8-2.4.5-1 3-2.4 7.7-2s4 1.7 4 1.7zm14.6 11.4c0-.2-.3-6.1-2.6-8.5a7 7 0 00-6.4-2.1c-1.3.3 4.7 2.9 5.3 4.6.6 1.7 2.5 6.5 2 7.7-.5 1.2-1.5-3.3-5.2-4.6s-8.7-.6-7.6 1 5.1.2 7.2 3.7 3.7 7.2 3.7 7.2l.6-2.5 2-.5.1-4.9 1-1.1z"/>
+    <path fill="#2b2b2b" fill-rule="evenodd" stroke="#2b2b2b" stroke-linejoin="round" stroke-width="1.1" d="M257.8 358.5l-3.8-7.6s-1.2-4.9-4.4-6.2c-3.2-1.4-7.5-1.1-7.5.5-.1 1.7 6.8 3.7 7.3 4.6.4 1 .2 2.4-.4 2.5-.6 0-3.6-1.1-5.2-.7-1.6.3-2.5 2.4-4.8 1.8-2.3-.6-4.2-8-3.4-8.8 1-.7-1.7 1.4-2.2-.6-.5-2 .8-8-.1-8.7s-5.3-3.4-5.3-4c-.1-.4.2-29.6 24.6-5.4-10.5-12.4-14.6-11-16.5-11.2-1.4 0-10.9.9-13.3 13-2.4 12-5.2 4.5-5.2 4.5s-.5 5.2 2 6.7-1.2 5.9-1.2 5.9-4.6-11.2-3.9-16c-.9 3.9-.8 13.5 5 24a78 78 0 0029.9 21.1c8.9-13.6 8.4-15.2 8.4-15.4z"/>
+    <path fill="#8a9396" fill-rule="evenodd" stroke="#2b2b2b" stroke-linejoin="round" stroke-width="1.1" d="M241.8 358.6s5 .6 6.3 3.1a24 24 0 012 6.4c.8-1.6 1.2-3 2.8-4.2s2.8-1.4 2.8-2.2c-.1-1-5.3-6.4-7.9-6.7-2.6-.3-7.1 2.8-7.1 2.8s-.9 1.2 1.2.8z"/>
+    <path fill="none" stroke="#8a9396" stroke-linecap="round" stroke-width="1.1" d="M253.1 371.4s12.8 5.9 33.8 6.2"/>
+    <path fill="none" stroke="#2b2b2b" stroke-linecap="round" stroke-width="1.1" d="M295.8 312.1s-1.1 10.7-9.4 32"/>
+    <path fill="none" stroke="#2b2b2b" stroke-width="1.1" d="M294.1 318.7s-2.5 7.7-9.3 13.5"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gt.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gt.svg
new file mode 100644
index 0000000..761801c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gt.svg
@@ -0,0 +1,204 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-gt" viewBox="0 0 512 512">
+  <defs>
+    <radialGradient id="a">
+      <stop offset=".2" stop-color="#f9f0aa"/>
+      <stop offset="1" stop-color="#b07e09"/>
+    </radialGradient>
+    <radialGradient id="d" cx="447.4" cy="308.3" r="16.5" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <radialGradient id="e" cx="451.6" cy="313" r="10.9" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <radialGradient id="f" cx="454.1" cy="308.6" r="9.8" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <radialGradient id="g" cx="458.4" cy="307.1" r="17.4" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <radialGradient id="j" cx="446" cy="252.4" r="13" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <radialGradient id="m" cx="477.9" cy="215.3" r=".3" gradientUnits="userSpaceOnUse">
+      <stop offset=".3" stop-color="#a50a0a"/>
+      <stop offset="1" stop-color="#4c0505"/>
+    </radialGradient>
+    <radialGradient id="n" cx="489.1" cy="210.3" r=".3" fx="489.1" fy="210.3" gradientTransform="scale(.97707 1.02346)" gradientUnits="userSpaceOnUse">
+      <stop offset="0" stop-color="#fff"/>
+      <stop offset="1" stop-color="#fff" stop-opacity="0"/>
+    </radialGradient>
+    <linearGradient id="h" x1="473.9" x2="472.4" y1="259.2" y2="232" gradientUnits="userSpaceOnUse">
+      <stop offset=".2" stop-color="#b07e09" stop-opacity="0"/>
+      <stop offset="1" stop-color="#b07e09"/>
+    </linearGradient>
+    <linearGradient id="i" x1="483.1" x2="485.5" y1="296.7" y2="326.6" gradientUnits="userSpaceOnUse">
+      <stop offset=".2" stop-color="#b07e09" stop-opacity="0"/>
+      <stop offset="1" stop-color="#b07e09"/>
+    </linearGradient>
+    <linearGradient id="k" x1="451.5" x2="455.4" y1="249.5" y2="240.6" gradientUnits="userSpaceOnUse">
+      <stop offset=".2" stop-color="#f9f0aa"/>
+      <stop offset="1" stop-color="#b07e09"/>
+    </linearGradient>
+    <linearGradient id="l" x1="473.3" x2="475.9" y1="237.3" y2="270.4" gradientUnits="userSpaceOnUse">
+      <stop offset=".2" stop-color="#f9f0aa"/>
+      <stop offset="1" stop-color="#b07e09"/>
+    </linearGradient>
+  </defs>
+  <path fill="#4997d0" d="M0 0h512v512H0z"/>
+  <path fill="#fff" d="M170.7 0h170.6v512H170.7z"/>
+  <g transform="translate(0 96) scale(.53333)">
+    <g stroke="#24420e">
+      <path fill="none" stroke-width=".4" d="M452.1 377.5c2.7-.4 4.2-1.2 6-1.8m2.3-4a13 13 0 013 4.6m-8.1-5.1a15.4 15.4 0 013 4.2m-49.5-136.6c-1 1.6-3.1 2.7-4.8 3.4m-.3-.2c0-1.4-.3-3 0-4.4m-2 5l.7 2m2 1l-2 .3m-4-.9c0 2.6.4 5.6.6 7.9m-1.8-1a6 6 0 001.6 1.9m-4.6 6.4c.5 1 1 2.2 1.3 4m3.7-4.6l-2 1.5m1.7 4.4c-1 .9-2.2 1.5-3.5 2.1m-3.8 40.4a16 16 0 004 4.7m.6 1.7a8 8 0 01-3-1m4.4 8.5l1.7 1m-.4 3.4c1.2.8 2.5 2.3 3.7 3.9m-1.4 2.8c1.4.3 2.5.7 3.2 1m-1 2.5h2m1.3-5.3l-.5 4.2m1 1.6l.4-1.6m4.7 6l-.1 3.2m39.2 28l-1.2 1.5m-2.4-4l-.7-1.7"/>
+      <g stroke-width=".2">
+        <path fill="#406325" d="M486.1 385c-.8-1.3-2-2.1-3.3-2.7-7.7-4-15.4-5.9-24-7.3-2.1-.3-4.1-2.2-6.2-3.2-5-2.3-10.5-3.2-15.3-5.7a7.8 7.8 0 01-2-1.5c-2-2.2-5.5-2.9-7.6-5-8.4-7.8-17.2-15-21.8-25.5-5.6-12.7-12.5-25.8-11.6-40.3.6-9-.7-18.3 1.5-27 3.4-12.9 7.6-25.6 15.4-36.3l-1.3.8a103.6 103.6 0 00-15.4 36.3c-2.3 8.7-1 18-1.5 27-1 14.5 6 27.6 11.5 40.3 4.6 10.4 13.5 17.7 21.8 25.6 2.2 2 5.6 2.7 7.6 5a10 10 0 002 1.5c4.9 2.4 10.4 3.3 15.4 5.7 2 1 4 2.8 6 3.1a76.4 76.4 0 0124.2 7.3 8 8 0 013.3 2.6l1.3-.8"/>
+        <g fill="#67923d">
+          <path d="M406.3 331.6a46.9 46.9 0 01-.2-23.5c6.7 13 4.5 23.7.2 23.5zm45.9 45.4c-7.1.4-20.6 9.3-21.9 11.4 15.1.1 24-7.3 21.9-11.4zm7.5-4.3a60 60 0 01-14-26.5c15 10.8 18.9 24.3 14 26.5z"/>
+          <path d="M454.6 372.8a55.1 55.1 0 01-16-22.8c15.3 8.2 20.3 20.2 16 22.8zM439 366c1-7.8-5.6-24.2-7.5-26-3 16.5 3 27.6 7.6 26zm-27.3-24.3a42 42 0 01.5-21c5.5 11.7 3.3 21.2-.5 21zM398 265a51 51 0 0121-16c-6.7 14.6-18 19.9-21 16z"/>
+          <path d="M398.7 259.3a51.7 51.7 0 0117.4-20c-3.7 15.7-13.7 23.2-17.4 20zm27.9 99.2c-5-6.2-8-23.9-7.3-26.4 11.2 12.5 12 25.2 7.2 26.4zM397.9 322c-7 1.1-21.4-4.6-23-6.3 14.6-3.2 24.4 2 23 6.3zm-2.2-9.7c.8-5.5 8.6-15.8 10.3-16.6-1 12-7.4 18.6-10.3 16.6zM447 371a57.1 57.1 0 00-26.1 13.6c18 .1 28.7-8.7 26.1-13.6z"/>
+        </g>
+        <g fill="#406325">
+          <path d="M406.4 331.5c4.2.2 6.4-10.4-.3-23.4a79 79 0 01.3 23.4zm11.2 20a48.8 48.8 0 00-21.7-11.2c8.9 12.1 19.9 15.1 21.7 11.2zm-24.4-53a57 57 0 00-14.8-24c1.5 17.2 10.6 26.7 14.8 24zm8.4 34.3c-5-3.7-19-5.4-21-4.7 10.2 8.2 20.2 8.4 21 4.7zm-9.4-24.9a42 42 0 00-16.9-13.7c5.5 12.4 14.6 17 16.9 13.7zm2.7-47.5c1-7.6-5.5-23.4-7.3-25.2-2.9 16 2.9 26.7 7.3 25.2zm4.5-15a48 48 0 00-.5-24.3c-6.4 13.5-3.8 24.6.5 24.4z"/>
+          <path d="M404.4 237.8a40.2 40.2 0 003.5-19.4c-7.2 9.7-7 18.9-3.5 19.4zm6-6.1a38.9 38.9 0 009-17.4c-9.7 7-12.2 15.8-9 17.4zm-16 43.2c0 .9-1-8.2-10.1-18.3.4 14.8 6.2 20.4 10 18.3zm32.5 85.8a53.1 53.1 0 00-25.8-6c12.6 10.4 24.9 10.6 25.8 6zm12 5.2c-4.5 1.6-10.4-9.4-7.5-25.9a99 99 0 007.5 26zm13.4 11.2c2 4-6.8 11.4-21.8 11.3 12-5 21.2-9.9 21.7-11.3zm7.3-4.5c5-2.3 1.1-15.5-14-26.4 8.6 13.2 14.5 24.6 14 26.4z"/>
+          <path d="M454.6 372.7c4.2-2.7-.7-14.5-16-22.7 9.5 11.2 16.2 21 16 22.7zm-42.8-31c3.7.2 6-9.3.5-21 .7 11 .4 20-.5 21zM398 264.9c3 4 14-1.3 20.9-15.9a90.6 90.6 0 01-20.9 16z"/>
+          <path d="M398.9 259.3c3.6 3.2 13.5-4.3 17.2-20-8 11.3-15.6 19.8-17.2 20zm27.7 99.1c4.7-1.1 4-13.8-7.3-26.3 5 13.5 8 24.8 7.3 26.3zM397.7 322c1.4-4.3-8.3-9.4-22.8-6.3 12.3 2.2 22 5 22.8 6.3zm-2-9.7c3 2 9.3-4.6 10.4-16.6a68.8 68.8 0 01-10.3 16.6zM447 371c2.6 5-8 13.7-26 13.5 14.2-5.8 25.3-11.7 26-13.5z"/>
+          <path d="M399.4 326.3a45.1 45.1 0 00-17-15.8c5 13.6 14.2 19.1 17 15.8z"/>
+        </g>
+        <g fill="#67923d">
+          <path d="M392.4 274c4-4.7 17.5-9.2 19.6-9-8 10.5-18 12.6-19.6 9zm25 77.5c-1.7 4-12.6 1-21.6-11.1a84.8 84.8 0 0021.7 11.1zm-24.3-53c-4.2 2.7-13.1-6.8-14.7-24 6.6 13.3 13 23.5 14.7 24zm8.4 34.3c-.7 3.7-10.7 3.6-20.8-4.7a74.6 74.6 0 0020.8 4.7zm-9.4-25c-2.4 3.3-11.3-1.2-16.8-13.6 8.2 8 15.5 13.7 16.8 13.6zm2.7-47.5c-4.4 1.6-10.1-9-7.3-25 2.7 13.5 6 24.2 7.3 25zm4.5-14.9c-4.3.3-6.9-10.8-.5-24.3-.8 12.8-.5 23.2.5 24.3zm5-7.6c-3.4-.6-3.7-9.7 3.6-19.4a66.2 66.2 0 00-3.6 19.4zm6-6.1c-3.1-1.7-.7-10.4 9-17.4a66.2 66.2 0 00-9 17.4z"/>
+          <path d="M394.3 274.9c-3.9 2.1-9.6-3.5-10-18.3 5 11.7 8.6 17.8 10 18.3zm32.5 85.8c-.9 4.6-13.1 4.4-25.7-5.9 13.2 4.3 24.3 6.7 25.7 5.9zm-8.2-9.5A41 41 0 01412 332c9 8.7 10.2 18.1 6.8 19.2zm-16.8-25a44.3 44.3 0 01-3-23c8.3 11.9 7.3 22.7 3 23zm-2.7.1c-2.7 3.3-11.9-2.1-16.8-15.8a77.8 77.8 0 0016.8 15.8z"/>
+        </g>
+        <g fill="#406325">
+          <path d="M392.4 274c1.6 3.6 11.4 1.5 19.5-8.9-12 6.8-16.7 9.8-19.5 8.9zm9.3 52c4.3-.3 5.3-11-3-22.8a72.8 72.8 0 013 22.9zm17 25.2c3.4-1 2.2-10.5-6.7-19.2 4.4 9.7 7.2 18 6.7 19.2z"/>
+          <path d="M394.2 291.8a41 41 0 00-4.3-25.6c-4.7 15.4-.2 26.6 4.3 25.6z"/>
+        </g>
+        <path fill="#67923d" d="M394 293.8c-6 1.3-8.7-12-4.1-27.1 1 13.5 2.8 26.1 4 27z"/>
+        <path fill="#67923d" d="M392.7 293.7a53 53 0 019-24.7c2 15.8-4.5 26.3-9 24.7z"/>
+        <path fill="#406325" d="M392.8 293.6c4.4 1.6 10.9-8.8 8.9-24.6-3.5 13.3-7.5 23.8-8.9 24.6z"/>
+        <path fill="#67923d" d="M394.1 303.3a50 50 0 0110.6-23.7c.8 16.2-6.3 25.9-10.6 23.7z"/>
+        <path fill="#406325" d="M394.2 303.4c4.2 2.2 11.3-7.3 10.5-23.5-4.4 12.8-9 22.9-10.5 23.5z"/>
+      </g>
+      <g fill="#ba1f3e" stroke="#511124" stroke-width=".2">
+        <circle cx="396.8" cy="251.3" r="1.1"/>
+        <circle cx="405.2" cy="245.1" r="1.1"/>
+        <circle cx="401.6" cy="241.7" r="1.1"/>
+        <circle cx="392.5" cy="313.1" r="1.3"/>
+        <circle cx="395" cy="297.1" r="1.3"/>
+        <circle cx="408.2" cy="334.5" r="1.3"/>
+        <circle cx="402.4" cy="336.4" r="1.3"/>
+        <circle cx="446.7" cy="367.6" r="1.3"/>
+        <circle cx="449.6" cy="374.7" r="1.3"/>
+      </g>
+    </g>
+    <g stroke="#24420e">
+      <path fill="none" stroke-width=".4" d="M561.1 259c.7.6 1.2.8 2.3 1.9m-6.6-19c0-1.3-.6-3.6-.9-5m3.5 3c0 2-.3 3.8-1.1 5.5m-4.2-.5c1.8 1.6 3.5 3 5.3 3.9m3.8 1.2c.1 2-.1 4-.7 6m.4 1.5l1.3-2.3m-1.9 12.2c1.4.3 2.8 2 3.5 3.5m.5-1.3l1.6-2.2m1.7 30.8a23.9 23.9 0 01-2.4 3.4m-4 0c.8 1.4 1.6 3 2.6 4m2.5 5.9a13.2 13.2 0 01-4.5 4m.2 4.5c-1.1.8-2.5 3-3.7 4.7m8.4-20.2l-2.1.9m-1.4-7.5l1.3 1.1m-9.3 37.4H555m-2-1.8l.7 1.6m-7.8 5.1c-.2 1.9 0 3.7.2 5.6m4.3-9l1 2.2m3.9-.2l-2.5.5m-30.9 25.2l-1 1.8m12-4c-1.5.2-2.8 0-4.1-.2m-5.5 6a27.3 27.3 0 00-3-1m-14.6 2.7c-1 .7-2 2.4-3.1 4m-.6-4.5c-2.4 1.3-3.1 3.7-4.4 5.8m2.8 2.9a52.4 52.4 0 01-5.3-2m16.7-.8c-2.3-1.2-4.7-1-7.1-1.4m10.8-.4c-3.7-.7-7-.6-10.3-.1m7.8-2.6l-1.4-.6m-5.6 5.5l-2.3-1.3m58-49.2c-1.3.8-2.6 2.3-3.8 3.9m1.8-79.6l-2.1-.8"/>
+      <g stroke-width=".2">
+        <path fill="#406325" d="M474.4 384.9a8 8 0 013.3-2.7c7.7-4 15.4-5.8 24-7.2 2.1-.4 4.1-2.3 6.2-3.2 5-2.4 10.5-3.3 15.3-5.7a7.8 7.8 0 002-1.6c2-2.2 5.5-2.9 7.6-5 8.4-7.8 17.2-15 21.8-25.5 5.6-12.7 12.5-25.8 11.6-40.2-.6-9.2.7-18.4-1.5-27a104.8 104.8 0 00-15.4-36.4l1.3.8a103.8 103.8 0 0115.4 36.3c2.3 8.7 1 18 1.5 27.1 1 14.4-6 27.5-11.5 40.3-4.6 10.4-13.5 17.6-21.8 25.5-2.2 2-5.6 2.7-7.6 5a10 10 0 01-2 1.5c-4.9 2.5-10.4 3.4-15.4 5.7-2 1-4 2.8-6 3.2A76.4 76.4 0 00479 383a8 8 0 00-3.3 2.7l-1.3-.9"/>
+        <g fill="#406325">
+          <path d="M553.6 334.6c2.8-7.4 0-24.8-1.4-27-6.7 15.4-3.4 27.6 1.4 27z"/>
+          <path d="M546.5 341.6c2.3-5.6.6-19.3-.4-21-5.6 11.7-3.3 21.3.4 21zm16.8-74.1a47 47 0 00-19.2-14.6c6.2 13.3 16.5 18.2 19.2 14.6z"/>
+          <path d="M561.8 259.5a43.3 43.3 0 00-14.5-16.7c3 13 11.4 19.3 14.5 16.7zm4.7 15c-3.5-4.1-15.2-8-17-7.8 7 9 15.6 10.9 17 7.7zm-2.8 46.3a40 40 0 0020.3-5.7c-12.9-2.8-21.5 1.9-20.3 5.7zm-.1-5.7c0-5.6-6.4-16.8-8-18-.6 12 4.8 19.5 8 18z"/>
+          <path d="M564 301.4a50 50 0 00-10.6-23.6c-.8 16.2 6.3 25.8 10.6 23.6zm-53 75.3a47.7 47.7 0 0022.2 11c-8.8-12.3-20.1-15.1-22.1-11z"/>
+        </g>
+        <g fill="#67923d">
+          <path d="M553.6 334.4c-4.9.6-8.1-11.4-1.4-26.8-.5 14.2.2 25.7 1.4 26.8zm-53.4 43.7a48 48 0 0121.8 11.4c-15 .1-24-7.3-21.8-11.4zm0-8c2-8 15-21.2 17.5-22.1-3.6 17.1-13.7 25.5-17.5 22.2zm21.3-4.2c-1-7.8 5.6-24.2 7.5-26 3 16.5-3 27.6-7.5 26zm21.4-14.5a48.8 48.8 0 0121.7-11.2c-8.9 12.1-19.9 15.1-21.7 11.2zm25.8-53.3c1-6.3 9.7-17.9 11.6-18.9-1.2 13.6-8.3 21-11.6 19z"/>
+          <path d="M557 336.2a50.4 50.4 0 0124.4-5.5c-11.8 9.7-23.5 9.8-24.4 5.5zm10.3-24.5a44 44 0 0117.7-14.4c-5.8 13-15.3 17.8-17.7 14.4zm-1.5-45.6c0-7.6 8-22.7 10-24.2 1.1 16.1-5.7 26.2-10 24.2zm-7-26a40.6 40.6 0 010-20c5.5 11 3.7 20.2 0 20zm-4.1-2.1a49.8 49.8 0 01-10.5-22.1c11.8 9.3 14.4 20.4 10.4 22.1z"/>
+          <path d="M566.3 272.5c-.3.9 3-7.7 14.2-15.3-4 14.3-11 18.3-14.2 15.3zm-34.1 90c7-5.2 26.5-7.7 29.2-6.8-14.2 11.8-28.2 12-29.2 6.7zm14.3-20.9c-3.7.2-6-9.3-.5-21-.7 11-.4 20 .5 21zm16.9-74c-2.7 3.5-13-1.3-19.2-14.7a78.8 78.8 0 0019.2 14.6zm-1.7-8.1c-3.1 2.6-11.3-3.6-14.4-16.7 6.7 9.4 13 16.5 14.4 16.7zm4.8 15c-1.4 3.2-9.9 1.3-16.9-7.7 10.4 5.9 14.5 8.5 17 7.7zm-2.6 46.2c-1.3-3.7 7.3-8.3 20.2-5.5a69 69 0 00-20.2 5.5zm-.4-5.6c-3.2 1.5-8.5-5.9-8-17.9a68.5 68.5 0 008 18z"/>
+          <path d="M563.9 301.6c-4.2 2.2-11.3-7.4-10.5-23.5 4.4 12.8 9 22.9 10.5 23.5zm-52.7 75c2-4 13.1-1.3 22 11a80.3 80.3 0 00-22-11z"/>
+        </g>
+        <g fill="#406325">
+          <path d="M521.5 365.8c4.6 1.6 10.5-9.4 7.6-25.9-2.8 14-6.2 25.1-7.6 26z"/>
+          <path d="M531.8 360.6a55 55 0 004.6-27c-10 13.6-9.4 26.3-4.6 27zM500.1 378c-2 4.1 6.7 11.5 21.8 11.3a80.2 80.2 0 01-21.8-11.3zm.2-8c3.8 3.3 13.8-5 17.4-22.1-8.1 12.4-15.7 21.8-17.4 22zm42.7-18.7c1.8 4 12.7 1 21.7-11.1a84.5 84.5 0 01-21.7 11.1zm25.8-53.3c3.3 2.1 10.3-5.3 11.5-18.8a74.6 74.6 0 01-11.5 18.8zM557 336.2c.9 4.4 12.4 4.2 24.3-5.5-12.5 4-23 6.2-24.3 5.5zm10.3-24.6c2.5 3.4 11.9-1.4 17.7-14.4a75.1 75.1 0 01-17.7 14.4zM566 266c4.3 2 11-8 10-24-4.2 13-8.5 23.3-10 24zm-7-25.9c3.6.1 5.5-9 0-20 .9 10.5.8 19.1 0 20zm-4.2-2.2c4-1.7 1.4-12.7-10.4-22a81.8 81.8 0 0110.4 22zm11.6 34.7c3.2 3 10.2-1 14.2-15.4-7.8 10.1-12.7 15.2-14.2 15.4zm-34 89.9c1 5.2 14.9 5 29-6.7-14.9 4.8-27.4 7.6-29 6.7z"/>
+          <path d="M539.1 354.8a41 41 0 003.6-20.1c-7.5 10-7.2 19.5-3.6 20zm19.6-28.7a44.3 44.3 0 003-23c-8.3 11.9-7.3 22.7-3 23z"/>
+        </g>
+        <path fill="#67923d" d="M531.8 360.5c-4.8-.6-5.3-13.3 4.5-26.8-3.6 13.8-5.4 25.4-4.5 26.8zm35.2-68.3c-1-7.7 4-20.1 6.6-22.5 2.5 14.4-2.7 24-6.7 22.5zm-28 62.5c-3.6-.5-3.9-10 3.5-20a67.5 67.5 0 00-3.5 20zm23.4-104.2c-2.2-6 0-20 1.2-21.8 5.3 12.2 2.6 22.1-1.2 21.8zm-58.1 120.1c2.5-8 16.2-21 18.8-21.9-4.3 17.4-15 25.5-18.8 22zm54.5-41.6a45.1 45.1 0 0117-15.8c-5 13.6-14.3 19.1-17 15.8zm-.1-3c-4.3-.4-5.3-11 3-22.9a72.8 72.8 0 00-3 22.9z"/>
+        <path fill="#406325" d="M567 294c5.2 1.9 9-9.8 6.6-23.9a98.2 98.2 0 01-6.6 24z"/>
+        <path fill="#406325" d="M567.8 293.6c.5-7.5-7-23-9-24.7-2 15.8 4.5 26.3 9 24.7zm-5.2-43.2c3.8.4 6.4-9.4 1.1-21.7a73 73 0 01-1.2 21.7zm-58.1 120.1c3.8 3.6 14.4-4.4 18.7-21.8-8.8 12.3-17 21.6-18.7 21.8zm54.6-41.5c2.8 3.3 12-2.1 17-15.8a77.8 77.8 0 01-17 15.8z"/>
+        <path fill="#67923d" d="M567.7 293.5c-4.5 1.7-10.9-8.7-8.9-24.5 3.5 13.2 7.5 23.7 8.9 24.5z"/>
+      </g>
+      <g fill="#ba1f3e" stroke="#511124" stroke-width=".2">
+        <circle cx="564.6" cy="254.9" r="1.1"/>
+        <circle cx="568.4" cy="266.8" r="1.1"/>
+        <circle cx="569.8" cy="304.3" r="1.3"/>
+        <circle cx="564.6" cy="297.3" r="1.3"/>
+        <circle cx="549.9" cy="337.2" r="1.3"/>
+        <circle cx="556.2" cy="339.9" r="1.3"/>
+        <circle cx="513.8" cy="372.3" r="1.3"/>
+        <circle cx="506.8" cy="377.3" r="1.3"/>
+        <circle cx="557" cy="249.3" r="1.1"/>
+      </g>
+    </g>
+    <g id="b" fill="#8c959d" stroke="#485654" stroke-width=".1">
+      <path d="M434.3 336.3c-.2 1 .8 2.3 2 2 .5 0 .7-.5.2-.5-.4.1-.9 0-1.2-.3a1.7 1.7 0 01-.4-2l-.6.8z"/>
+      <path stroke="none" d="M437.2 338.3c-1 1.2-2.5 1.7-3.4.9-.6-.6-.8-1.2-.5-2l-1 1.3a4.4 4.4 0 001.6 1.8c1.2.5 3-.3 4-1.6.8-1 1.6-2.4 1-3.6a4 4 0 00-2-1.7l-1 1c.5-.2 1.2 0 1.7.4 1.3 1 .5 2.5-.4 3.5z"/>
+      <path fill="#485654" stroke="none" d="M437.2 338.3a4 4 0 01-1.1 1c-.5.2-1 .4-1.5.3a1.5 1.5 0 01-.7-.3 2.4 2.4 0 01-.5-.6 1.6 1.6 0 01-.3-.7c0-.3 0-.5.2-.8l.1.1-1.1 1.2c.3.4.6.9 1 1.2l.7.5a2 2 0 00.8.1 3 3 0 001.6-.5 5.1 5.1 0 001.3-1l1-1.4c.2-.5.3-1 .3-1.6a1.8 1.8 0 00-.2-.8 3 3 0 00-.5-.6 4.2 4.2 0 00-1.4-1h.1l-1 1.1h-.1c.2-.2.5-.2.8-.2a2 2 0 011.6 1.4c.1.5 0 1-.2 1.4a5.1 5.1 0 01-.9 1.2zm0 0c.4-.3.6-.7.8-1.2.2-.4.3-1 .2-1.4a2 2 0 00-.9-1c-.4-.3-1-.4-1.3-.2h-.1l1-1.2a4.2 4.2 0 012 1.6c.2.3.3.6.3 1 0 .5-.1 1-.4 1.6a6.4 6.4 0 01-1 1.4c-.3.5-.8.8-1.3 1.1-.5.3-1 .5-1.7.5a2.2 2.2 0 01-.8-.1 2.7 2.7 0 01-.8-.5 5 5 0 01-1-1.4l1-1.3h.2l-.1.8c0 .2 0 .5.2.7l.5.5.6.3c.5.1 1 0 1.5-.3a4 4 0 001.1-.9z"/>
+      <path fill="#6c301e" stroke="#351710" stroke-linejoin="round" stroke-width=".2" d="M515.2 249.3l-40.1 39.5L434 328l-4.6 5.4c-2 2.3-4.4 5.3-7.2 8-.4.6-1.1.4-1.7.8a23.4 23.4 0 00-5 4.3L403.2 360c-.7.9-1 1.4-.4 2l6.6 8.8c1.2 1.2 2.6 1.8 3.2.8 3.1-5.5 11-13.8 14-20.3 1.7-4 3.9-11.1 5.5-12.8 2-2.2 7.1-7.8 11.8-12.7l1-1 .9-1c23.5-24 50.7-53.1 70.5-73.6l-1-1z"/>
+      <path d="M431.9 328.1c-1.2 0-2-.7-2.9-1.4 1.2.4 2.4.8 3.5.4l-.6 1z"/>
+      <path fill="#b2b6ba" stroke-width=".2" d="M557 220.1l-31.8 26.2c-.3.4-.6.3-.9 0l-2.9-2.4v-.6l1.4-1.4c.2-.2 0-.3-.1-.6l-.6-.6c-.3-.1-.5 0-.7.2l-1.4 1.5c-.7 0-1.3.6-1.4 1.4-19.2 18.7-35.8 35.4-54.9 53.8l-22.6 21.6c-.8 1-4.3 2.9-6.6 4.4a5.6 5.6 0 00-1.8 1.5l-1.8 5.5-2.5 4.2c2.3 2.4 2.2 2.2 3.8 3.7l11.2-11.9.8-1a13.2 13.2 0 00-1.4-1.6 34.1 34.1 0 00-1.2-1l-.6-.6c-.2-.2.2-.5.4-.7 26.5-25.5 55-53.7 78.3-76.6a1.4 1.4 0 001 0l2.8 3.2c.6.6 1.2.6 1.7.4l31.9-28.6z"/>
+      <path fill="#485654" stroke="none" d="M431 330.4h.5a1.5 1.5 0 00.6-.1 124.9 124.9 0 011.5-4.8 1.5 1.5 0 00-.7-.4c.3 0 .5.2.7.4l-.7 2.4-.7 2.4a1.4 1.4 0 01-.6.2 2.9 2.9 0 01-.7-.1z"/>
+      <circle cx="438.2" cy="328.1" r=".6" fill="none" stroke-width=".2"/>
+      <circle cx="434.4" cy="331.9" r=".6" fill="none" stroke-width=".2"/>
+      <path fill="#485654" stroke="none" d="M441 322.4l-1-.8a11.6 11.6 0 01-.8-.8 11.4 11.4 0 011.8 1.6z"/>
+      <path d="M502.2 259l3.5 3.5.6-.6-3.5-3.4-.6.6z"/>
+    </g>
+    <use width="100%" height="100%" transform="rotate(-177.2 487 -.2)" xlink:href="#b"/>
+    <g stroke="#24420e" stroke-width=".2">
+      <path fill="#67923d" d="M434 365.4a55.9 55.9 0 00-29.3.9c16.3 8 29.5 4.6 29.2-1zm89 3.3a55 55 0 0129.2 1c-16.3 7.9-29.6 4.5-29.3-1z"/>
+      <path fill="#406325" d="M433.8 365.5c.3 5.5-12.8 8.9-29.1.9 15.3 1 27.8.4 29-1zm89.3 3.3c-.3 5.5 12.8 8.9 29 .9-15.2 1-27.7.4-29-1z"/>
+    </g>
+    <g id="c">
+      <path fill="#b2b6ba" stroke="#485654" stroke-width=".2" d="M508.5 360a237.5 237.5 0 00-76.1-68c3.6-.2 11.5 3.9 14.7 6 23.9 15.4 44.3 35.7 65.6 59.8a35.1 35.1 0 01-3.4 3l-.8-.8z"/>
+      <path fill="#8c959d" d="M510.6 359.8L509 361c-23-29.6-55.1-57.9-76.7-69.1 30.1 13.9 55.4 41.8 78 67.7h.2z"/>
+      <path fill="#485654" d="M510.6 359.8L509 361a302.3 302.3 0 00-16.9-19.7 336 336 0 00-18.3-18.3 284.2 284.2 0 00-19.8-16.8 195.9 195.9 0 00-10.6-7.6c-3.6-2.3-7.3-4.6-11.1-6.6v-.2a136 136 0 0122.5 13.3 210.9 210.9 0 0120 16.6 360 360 0 0118.3 18.5c6 6.4 11.6 13 17.4 19.4zm0 0a899.3 899.3 0 00-17.5-19.4 360.2 360.2 0 00-18.3-18.5 212 212 0 00-20-16.6 134.7 134.7 0 00-22.4-13.2v-.2a200.9 200.9 0 0121.7 14.3A285 285 0 01474 323a336 336 0 0118.3 18.3 302.3 302.3 0 0116.8 19.8l1.5-1.4z"/>
+      <g fill="#fab81c" stroke="#6c301e" stroke-width=".1">
+        <path stroke-width=".2" d="M517.5 355a18.3 18.3 0 00-5.3 2.3c-.2 1.4-2 3-3.6 3.3l-.5-.8a.1.1 0 00-.2 0 7.2 7.2 0 00-.6.3c-.6 0-1.3.2-1.6 1-.4 1 .4 2.3 1.2 3.1 1 .7 1.4 1 2.4 1 1.1-.3 1.7-1.3 2-1.6 3.7 4.5 6.5 7 11.2 10.6 2.1 0 3.2-1.3 2.5-2.8-.2-.5-.8-.8-1.3-.6v-.5c2.4-2.2 3.5-5 .9-9.9-2.2-4-4.7-5.3-7-5.3zm6.3 4.6l1 2c1.5 3 .2 6.6-2.4 7.8h-.2c.4-.7-.8-2.2-1.4-1.7.3-.7-.7-2-1.5-1.7.4-.7-.5-1.9-1.4-1.5.4-.7-.3-1.8-1.3-1.6.3-.9-.4-1.8-1.3-1.6 0-.8-.2-1.2-.5-1.5 1-.8 2.3-2.1 3.4-2.7 2.7-1.2 4.4 1 5.5 2.5z"/>
+        <path d="M524.9 362.8c-.5-.3-.8-.8-.6-1.1.2-.4.7-.5 1.2-.2.5.2.8.7.6 1-.1.4-.7.5-1.2.3z"/>
+        <path d="M524.6 361.8c-.5-.3-.8-.8-.6-1.2.2-.3.7-.4 1.2-.1.5.2.8.7.6 1-.1.4-.7.5-1.2.3z"/>
+        <path d="M524 360.6c-.5-.2-.8-.7-.6-1 .2-.4.7-.5 1.2-.3.5.3.8.8.6 1.1-.1.4-.7.5-1.2.2z"/>
+        <path d="M523.2 359.6c-.5-.3-.8-.8-.6-1.1.2-.3.7-.4 1.2-.2.5.3.8.8.7 1.1-.2.3-.8.5-1.3.2z"/>
+        <path d="M522.2 358.6c-.6-.2-.8-.8-.6-1v-.2c.2.1.7.2.6-.1 0-.2-.1-.3 0-.2l.6.2c.5.3.8.8.6 1.1-.2.4-.7.5-1.2.2z"/>
+      </g>
+      <path fill="#fab81c" d="M511.3 363.6c.6-1.8 2-3.4 3.5-3.8m-3.3 4c1.3.3 3.3-1.2 3.8-2.5m-2.6 4c1.6.4 3.3-1.2 4-2.4m-2.5 4c2 0 3.1-1.3 3.7-2.4m-2.2 4c1.6 0 3.2-1.4 3.6-2.5m-2.2 3.8a4 4 0 003.7-2m-2 3.4c1.6.1 3-.9 3.4-1.8m-1.6 3.3c1.6 0 2.7-1 3.1-2"/>
+      <path fill="#6c301e" d="M511.3 363.6a7.1 7.1 0 011.3-2.3l1-1 1.2-.5a4 4 0 00-1.2.6l-1 1a9.3 9.3 0 00-1.3 2.2zm.2.3c.4 0 .8 0 1.2-.2a4.9 4.9 0 001-.6l1-.8.6-1a2 2 0 01-.6 1 5 5 0 01-1 .9 4.6 4.6 0 01-1 .5 2.1 2.1 0 01-1.2.2zm1.2 1.4h1.2l1-.6a6.2 6.2 0 001.7-1.8 4.7 4.7 0 01-.7 1 5.2 5.2 0 01-.9.9 3.7 3.7 0 01-1 .5h-1.3zm1.5 1.6a4.2 4.2 0 001.1-.2 3.8 3.8 0 001-.5 4.7 4.7 0 001-.8l.6-1a4.5 4.5 0 01-1.5 1.9 3.4 3.4 0 01-2.2.6zm1.5 1.5a4.1 4.1 0 002.1-.8 5.1 5.1 0 001.5-1.6c-.1.3-.3.7-.6 1l-.8.7a4.2 4.2 0 01-1 .5c-.4.2-.8.2-1.2.2zm1.5 1.4a7 7 0 001-.2 4.6 4.6 0 001-.4 3.6 3.6 0 001.6-1.5l-.6 1c-.3.2-.6.5-1 .6a4.5 4.5 0 01-2 .5zm1.6 1.4h1a4 4 0 001-.5l.8-.5c.3-.3.5-.5.6-.8a2.5 2.5 0 01-.5.8 3.6 3.6 0 01-.9.6 3.7 3.7 0 01-2 .4zm1.8 1.5a4 4 0 001-.1 3.3 3.3 0 001.6-1 4 4 0 00.5-.8 3 3 0 01-1.2 1.5 3 3 0 01-1 .3 3 3 0 01-1 0z"/>
+    </g>
+    <use width="100%" height="100%" transform="rotate(-176.6 490 -.4)" xlink:href="#c"/>
+    <g stroke="#24420e" stroke-width=".2">
+      <path fill="#406325" d="M409.2 240a52.4 52.4 0 0019.5-17.9c-15.6 4.2-22.7 14.4-19.5 18zm145.8 4.7a50 50 0 00-15.6-19.9c2.8 15.2 12 22.8 15.6 20z"/>
+      <path fill="#67923d" d="M409.2 240c-3.3-3.5 3.8-13.6 19.4-17.8-11 8.4-19.2 16.2-19.4 17.8zm145.8 4.7c-3.7 3-12.7-4.6-15.5-19.7 7.2 11 14 19.5 15.5 19.7z"/>
+    </g>
+    <g stroke="#999270" stroke-width=".2">
+      <path fill="url(#d)" d="M452.2 318.1s-6.2.7-7.9-7.8c-1.8-9.1 5.3-10 5.3-10s8.1-.9 13.2-1l2.2 18-12.8.8z"/>
+      <path fill="url(#e)" d="M453 315.4s-4 .7-4.8-5.6c-.6-4.5 2.2-5.1 2.2-5.1l9.2 1.6v8.2l-6.6.9z"/>
+      <path fill="url(#f)" d="M450.4 304.7s5.9-.4 9-.8l1.3 5.7-7.1.4s-.5-5.1-3.2-5.3z"/>
+      <path fill="url(#g)" d="M449.2 300.4s7.5-1.9 8.5 6.5c.2 2.1-1 7.1-4.7 8.5l13.9-1.5-1.3-15-4.6.4s-10 .3-11.8 1z"/>
+      <path fill="#f9f0aa" d="M452.2 318.1s51.9-3.5 57.2-3.3c15.8-8.6 0-42.5-13.3-61.5 1.5-4.3-29.9-13.9-44-13-1.9 0-3.6.2-5.2.3-7.7.8-7.8 10.7-4.7 17 3 6 30.3 55 11.2 60.3l-1.2.2z"/>
+      <path fill="url(#h)" d="M507.8 273.3a148.3 148.3 0 00-11.7-20c1.5-4.3-29.9-13.9-44-13-1.9 0-3.6.2-5.2.3-7.7.8-7.8 10.7-4.7 17 1 1.8 4.3 8 7.9 15.7"/>
+      <path fill="url(#i)" d="M455 285c5.6 14.6 8.7 30-1.6 32.8l-1.2.3s52-3.5 57.2-3.3c8.6-4.7 7.8-16.8 3.2-30"/>
+      <path fill="url(#j)" d="M447.4 243.5c-3.7 0-4.7 3.6-4.6 5.8.1 6 4.6 6.2 4.6 6.2l6-.3 2.8-12.2-8.8.5z"/>
+      <path fill="url(#k)" d="M447.4 243.5l8.8-.5 1 9.1-7.8.4s2.5-7.3-2-9z"/>
+      <path fill="url(#l)" d="M496.1 253.3c6.7-1 6.6-10 2-13.7-15.5-.5-35.9-.1-50.6 1 1.7 0 6.3.4 6.9 6.5a8.2 8.2 0 01-3 7c-2 1.4-4 1.4-4 1.4h3.6l3-.4c21-2.7 42-1.8 42-1.8h.1z"/>
+      <path fill="#b07e09" stroke="none" d="M458.5 267.4c-.2-.3-.3-.7-.8-.8-.2 0-.6 0-.5-.4h.8l1.6-.2c.4.1.3.6 0 .5-.5 0-.2.5-.1.8l1.3 3c.1.4.4.7.7.7l1.1-.1c.3-.2.2-.6.2-1-.1-.3.5-.2.5 0l.4 1.4c0 .2-.2.1-.4.1l-3 .2c-.3 0-.8.3-1 0 0-.4.6-.2.6-.5l-.3-1-1.1-2.7zm4.8-.3c-.1-.3-.3-.7-.7-.8-.2 0-.6 0-.6-.4h.7l1.7-.2c.3 0 .4.5 0 .4-.3 0-.3.4-.2.7l1.5 3.4c0 .2.2.5.5.6.3 0 .7 0 .7.3 0 .2-.4.1-.6.1a6.6 6.6 0 00-1.6.2c-.2 0-.5 0-.5-.3s.5 0 .6-.4c0-.3-.2-.6-.4-1l-1.1-2.6zm4.5.7c0 .2.4 0 .5 0 .3 0 .6-.1.6-.4a1.7 1.7 0 00-.7-1.2c-.3-.3-.8-.2-1.1-.2l.1.5.6 1.3zm.6 1.6c.2.3.3.7.6 1 .2.2.6.1.8 0 .3 0 .5-.3.4-.5-.1-.7-.5-1.3-1.2-1.5a2.4 2.4 0 00-1 0l.2.5.2.5zm-2-2.4c-.2-.3-.3-.7-.7-1-.2 0-.6.1-.7-.2 0-.3.6-.1.8-.2.9 0 1.7-.3 2.6 0 .7.2 1.4.8 1.5 1.6 0 .4-.3.7-.6.8l.5.1c.6.2 1.1.6 1.4 1.1.2.4.3 1 0 1.4-.4.4-1 .4-1.4.4-.8 0-1.5 0-2.3.2-.2 0-.4-.5 0-.5.3 0 .3-.4.2-.6l-1.3-3zm7.4-1.9c.3 0 .4.3.5.5l.3.9c-.3.2-.5-.2-.6-.4-.1-.2-.4-.5-.7-.4a8.3 8.3 0 00-1.2 0c-.2.2 0 .4.1.6l.6 1.3c.2 0 .6 0 .8-.2 0-.2-.3-.7.2-.6.3.2.2.6.4.9l.5 1.1c-.3.3-.5-.1-.6-.4-.2-.3-.7-.3-1-.3-.2 0 0 .2 0 .3l.6 1.5c.2.3.7.3 1 .3.4 0 .8 0 1-.4.2-.2-.3-.7 0-.8.4 0 .4.4.5.6 0 .3.2.6.3.8 0 .2-.3.2-.4.2l-3 .2c-.4 0-.9.2-1-.2 0-.3.6-.1.6-.6l-.4-1-1.1-2.6c-.2-.3-.4-.6-.8-.7-.2 0-.6 0-.4-.4h1l2.8-.2zm2.3 1.3c-.1-.3-.3-.7-.7-.9-.2 0-.7 0-.7-.4.3-.2.7 0 1 0 .8 0 1.6-.3 2.4 0 .8.2 1.5.9 1.6 1.8 0 .4-.3.7-.7.8-.3 0 .2.1.3.2.7.3 1 .9 1.4 1.5.1.2.5.7.6.2 0-.5.7 0 .5.3 0 .4-.3.6-.7.6-.4 0-.9-.2-1.1-.6-.4-.6-.7-1.3-1.3-1.7-.2-.2-.5-.3-.8-.1v.4l.6 1.2c.2.3.6.3 1 .3.3.1.2.6-.2.5h-1.7c-.3.2-.9 0-.7-.3.3 0 .7-.2.5-.5l-1-2.6-.3-.7zm1.4 1c.2.3.6 0 .9 0 .3 0 .3-.5.2-.7-.1-.5-.4-1-.9-1.2-.2 0-.8-.2-.9.1l.7 1.6v.1zm7.2 1.6c.2.3.3.6.6.7.2 0 .6 0 .7.3 0 .3-.4.1-.6.2a7 7 0 00-1.6 0c-.3.1-.6 0-.6-.3.2-.2.7 0 .7-.4l-.5-1.1-1.1-2.9c-.1-.3-.5-.3-.7-.3-.3 0-.7 0-.7.4 0 .3.2.7 0 .8-.3 0-.4-.3-.5-.5l-.3-1c0-.2.3-.1.4-.1l4.2-.2c.3 0 .5.2.5.5s.3.6.4 1c-.1.3-.5 0-.5-.3-.2-.3-.6-.6-1-.7-.2 0-.6 0-.8.2l.2.7 1.2 3zm3.8-.9c-.2 0-.1.3-.1.4v.8c.1.3.5.3.8.4.2 0 .1.5-.2.4h-1.2c-.3.1-.7-.1-.5-.4.2 0 .4-.1.5-.3v-5c.2-.3.6 0 .6.1l3.6 4.6c.2.2.5.4.8.4.3 0 .4.5 0 .4h-1.5c-.2 0-.5.2-.7 0-.2-.1 0-.4.2-.4.3 0 0-.4-.1-.6l-.6-.8h-1.6zm1.1-.5c.2 0 0-.1 0-.2l-1.3-1.7v2h1.3zm3.1-1.8c-.1-.4-.3-1-.8-1-.3 0-.7-.2-.5-.5h1.7c.7 0 1.4 0 2 .2a4.3 4.3 0 013 3.4c0 .6-.1 1.3-.6 1.6-.8.5-1.7.4-2.5.3l-1.4.1c-.3 0-.4-.5 0-.4.4 0 .4-.5.2-.7l-1.1-3zm2 2.5c.1.3.2.7.5 1h1c.5 0 .7-.5.7-.9a4.3 4.3 0 00-.6-2.1 2.7 2.7 0 00-1.8-1.4h-1c-.1 0 0 .2 0 .4l1.2 3zm-21.1 12.4c0 .3.4.6.8.6.2 0 .7 0 .7.4-.2.2-.5 0-.8 0a8.6 8.6 0 00-1.5.2h-.9c-.2 0-.2-.4.1-.4.3 0 .6-.1.7-.4 0-.3-.2-.6-.3-.8l-1.2-2.8c0-.3-.4-.3-.7-.3-.2 0-.6.1-.7-.2 0-.3.5-.2.7-.4l1-.3c.2 0 .3.1.4.3l1.7 4zm.7-4.5h2c.4 0 .2-.5.4-.5.4 0 .4.5.4.7a.5.5 0 01-.6.6H475l.5 1.2.6-.2a2.8 2.8 0 012.6 1.6c.2.4.3 1 0 1.5-.4.5-1 .6-1.6.6-.5 0-1-.1-1.4-.6-.1-.2-.1-.7.2-.6.4 0 .7.2.7.6.1.2.5.1.7.1.3 0 .6-.2.6-.6 0-.4-.2-1-.5-1.3-.2-.4-.7-.7-1.2-.7l-.9.1c-.3 0-.3-.3-.4-.5a23.9 23.9 0 01-.7-1.9s.1-.2.2-.1zm6.9 1c-.2-.4-.4-.9-.9-1-.2 0-.7-.2-.4-.4h1.6a3 3 0 012.1.1 4.3 4.3 0 013 3.4c0 .6-.1 1.2-.7 1.5-.7.5-1.6.4-2.4.4l-1.3.2c-.3 0-.4-.5 0-.5s.3-.4.2-.7l-1.2-3zm2 2.4c.2.4.3.8.6 1 .3.2.6.1 1 0 .4 0 .6-.5.6-.9a4 4 0 00-.7-2.1 2.6 2.6 0 00-1.8-1.3 3 3 0 00-1 0v.3l1.3 3zm6.4-4.2c.3 0 .4.3.5.5 0 .3.2.5.3.8-.2.3-.5 0-.6-.3-.1-.2-.3-.5-.6-.5a9.7 9.7 0 00-1.3 0c-.2.2 0 .5 0 .6l.6 1.4c.3 0 .6 0 .8-.2.2-.2-.2-.7.2-.6.4 0 .3.5.4.8l.5 1.1c-.1.4-.5 0-.6-.3-.1-.3-.5-.3-.8-.3-.2 0-.4 0-.2.2l.6 1.5c.2.4.7.3 1 .3.4 0 .8 0 1-.3.2-.2-.2-.6 0-.8.4 0 .5.3.5.5l.3 1c0 .1-.3 0-.4 0l-3.1.2c-.3 0-.7.2-.9 0-.2-.5.5-.3.6-.6l-.3-.9-1.1-2.9c-.2-.3-.4-.6-.8-.7-.2 0-.6 0-.4-.4h1l2.8-.1zm-27.2 14.3c.1.5.6.7 1 .8.8.2 1.7.5 2.2 1.1.3.4.5.9.5 1.4 0 .5-.5.9-1 1a2.5 2.5 0 01-1.7-.1c-.2-.1-.1.4-.4.2-.3-.1-.2-.5-.4-.8a9 9 0 00-.3-1c0-.3.4 0 .5.2.3.6.9 1 1.6 1.1.4 0 .8-.2.8-.6 0-.5-.4-1-.8-1.2-.7-.3-1.4-.4-2-.8a2 2 0 01-1-1.6c0-.4.4-.8.8-.9a2.6 2.6 0 011.6 0c.2 0 .3-.3.6-.1 0 .2 0 .4.2.6l.3.9c-.2.2-.5 0-.5-.2-.3-.4-.6-.8-1-.8s-.8 0-1 .3v.5zm6.6-1.7c.4 0 .4.3.5.5 0 .3.2.6.3.8-.2.3-.5 0-.6-.2-.1-.2-.3-.5-.7-.5h-1.2c-.2.2 0 .4 0 .6l.5 1.4c.3 0 .6 0 .8-.2.2-.2-.2-.6.1-.7.4 0 .4.4.5.7 0 .4.3.8.5 1.3-.2.3-.6 0-.6-.3-.1-.3-.5-.4-.8-.3-.2 0-.4 0-.3.2l.6 1.5c.1.3.4.3.7.3.4 0 .9 0 1.2-.3.2-.2 0-.6 0-.8.3-.2.6 0 .6.3l.2 1c0 .2-.3.2-.4.2l-3 .2c-.4 0-.8.3-1 0 0-.4.5-.3.6-.6 0-.3 0-.5-.2-.8l-1-3c0-.3-.3-.6-.7-.6-.2 0-.6-.2-.4-.4h1l2.8-.3zm4.2 4.2c.1.3.3.6.6.7.3 0 .7-.1.8.2 0 .4-.5.2-.7.2a6.3 6.3 0 00-1.6.1c-.2 0-.5.2-.6-.1 0-.4.5-.2.6-.4l-.1-.8-1-3c-.2-.3-.3-.7-.7-.7-.2 0-.6 0-.5-.4.1-.2.5 0 .7 0 .7 0 1.4-.3 2.2-.2a2 2 0 011.7 1.2c.2.4.2 1 0 1.3-.5.4-1.1.5-1.7.6-.2 0 0 .2 0 .3l.3 1zm-.5-1.8h.6c.3-.1.5-.4.4-.7a2.2 2.2 0 00-.5-1.2c-.3-.3-.8-.3-1.1-.2-.2.1 0 .3 0 .5l.5 1.6zm6.1 1.5c0 .2.2.6.5.6.2 0 .7 0 .7.3s-.5.2-.7.2a7 7 0 00-1.6.1c-.2 0-.5 0-.5-.3.2-.2.7 0 .7-.4l-.3-1.2-1-2.9c0-.3-.4-.3-.7-.2-.2 0-.6 0-.7.3v.8c-.2.2-.4 0-.4-.3a6.6 6.6 0 00-.4-1c0-.3.3-.3.5-.3l4.1-.2c.3 0 .5.2.5.5l.4 1c-.1.2-.5 0-.5-.2-.2-.3-.5-.7-1-.8-.2 0-.5 0-.8.2l.2.6 1 3.2zm2.1-3.3c-.1-.3-.2-.7-.6-.8-.2 0-.6 0-.6-.4.1-.2.4 0 .6 0l1.8-.2c.3-.1.5.4.2.4s-.6.2-.5.5l.5 1.6.7 2.2c0 .2.3.4.5.4.3 0 .7 0 .6.4h-.7l-1.6.2c-.2 0-.5-.2-.4-.4.2-.1.6 0 .6-.4l-.3-1.2-.8-2.3zm5.8-1.6c.3 0 .3.3.4.5l.2.8c-.1.3-.5 0-.5-.2-.1-.3-.3-.6-.7-.6a9.7 9.7 0 00-1.2 0c-.2.2 0 .5 0 .6l.5 1.4c.2 0 .5 0 .8-.2.2-.2-.2-.6.1-.7.4 0 .4.5.4.7l.5 1.3c-.1.3-.5 0-.5-.2-.1-.3-.5-.4-.8-.4-.1 0-.5 0-.3.2l.5 1.5c.1.3.4.4.7.3.4 0 .9 0 1.2-.2.2-.2 0-.6.1-.9.3-.2.5.1.5.4a9.3 9.3 0 00.3 1c0 .2-.3.2-.5.2l-3 .1c-.3 0-.7.2-1 0-.1-.4.5-.3.6-.5a1 1 0 00-.1-.8l-1-3c0-.3-.3-.7-.7-.7-.2 0-.6-.2-.4-.4h1l2.9-.2zm2 1c-.1-.4-.4-.7-.8-.7-.3.1-.5-.6 0-.4h1.5l.7.9 2.1 2.9v-.3l.4-3.6c.2-.2.7 0 1-.2.3 0 1 0 .8.4-.4 0-.8.2-.6.6l1.2 3.6c0 .4.4.6.8.5.3 0 .3.6 0 .5H494c-.3.1-.8.1-.6-.3.3 0 .8-.2.5-.6l-1-3.2c.1.1 0 .3 0 .4l-.2 3-.1.8c-.3.1-.4-.1-.5-.3l-2.9-3.7.2.3c.3 1 .5 2 .9 2.9 0 .4.5.5.8.5.4.2.1.5-.2.4h-1.5c-.3 0-.3-.4 0-.4.5 0 .4-.5.2-.8l-1-3.3zm8.7.8c0 .2.4 0 .5 0 .3 0 .7 0 .7-.4 0-.5-.2-1-.5-1.2-.4-.3-.8-.2-1.2-.2l.1.5.4 1.3zm.5 1.6l.4 1c.3.2.6.1.9.1.2 0 .5-.2.4-.5 0-.6-.3-1.3-.9-1.5a2.4 2.4 0 00-1 0v.3l.2.6zM496 288c-.1-.4-.2-.8-.6-1-.2 0-.6 0-.6-.3s.5 0 .7-.1c1 0 1.8-.3 2.7 0 .7.2 1.3.9 1.3 1.6 0 .4-.3.7-.7.9 0-.2.4 0 .5 0 .5.2 1 .6 1.2 1.1.2.5.3 1 0 1.4-.4.4-1 .4-1.5.4l-2.3.1c-.3 0-.4-.5 0-.4.3 0 .4-.4.2-.7l-.9-3zm5-.2c0-.3-.2-.8-.6-1-.2 0-.6 0-.6-.3.2-.3.6 0 1-.1h2c.8 0 1.5.6 1.7 1.4.2.4 0 1-.3 1.2l-.5.2c.6.2 1.1.7 1.4 1.2l.5.8c.3.2.3-.1.3-.3.4-.2.6.3.4.6-.1.4-.7.5-1 .4-.4 0-.6-.3-.8-.6l-1-1.7a.9.9 0 00-.9-.2v.5l.5 1.1c.1.4.5.4.8.5.4 0 .4.5 0 .4h-1.8c-.2 0-.6.2-.7 0-.2-.5.4-.3.6-.6l-.2-.8-.8-2.7zm1.3 1c.1.2.6 0 .8 0 .3 0 .5-.3.4-.5 0-.5-.2-1-.5-1.3-.3-.2-.7-.2-1-.1-.2 0-.1.3 0 .5l.3 1.3zm7-2.6c.2 0 .3.3.3.5 0 .3.2.5.3.8-.2.3-.5 0-.5-.2-.2-.2-.3-.6-.7-.6a9.5 9.5 0 00-1.3 0c-.2.1 0 .4 0 .6l.4 1.3h.8c.3-.2-.1-.7.2-.8.4 0 .4.4.4.7 0 .4.3.9.4 1.3-.1.3-.5 0-.5-.2 0-.3-.4-.5-.7-.4-.1 0-.5-.2-.4 0l.5 1.7c0 .3.4.3.7.3.4 0 .9 0 1.2-.2.3-.2 0-.6.1-.8.3-.2.6 0 .5.3l.2 1c0 .2-.3.2-.4.2h-3.1c-.3 0-.6.2-.8 0-.3-.4.3-.3.4-.5.2-.2 0-.5 0-.7l-.9-3.1c0-.3-.3-.7-.6-.7s-.6-.1-.5-.4h1l3-.1zm-32.9 13.1c-.1-.4-.2-.8-.6-1-.3 0-.7 0-.5-.3.3-.2.6 0 1-.1.8 0 1.6-.2 2.4 0a3.5 3.5 0 012.6 2.3c.2.8.3 1.6-.2 2.3-.5.6-1.4.8-2.2.8-.7 0-1.3 0-1.9.2-.2.1-.6-.1-.4-.4.3 0 .7-.2.6-.5l-.4-1.5-.4-1.8zm1.6 2.5c.1.3.2.7.4.9.3.2.7.1 1 0 .4 0 .8-.4.9-.9a4 4 0 00-.4-2.2 2 2 0 00-1.5-1.2 3 3 0 00-1.1 0c-.1 0 0 .2 0 .4l.7 3zm7.1-4.5c.3 0 .3.3.4.5l.2.9c-.1.2-.5 0-.5-.2-.1-.3-.3-.6-.6-.6a9.3 9.3 0 00-1.3 0c-.2.1 0 .4 0 .6 0 .5.2 1 .3 1.4.3 0 .6 0 .8-.2.2-.2-.1-.6.2-.7.4 0 .3.5.4.7 0 .4.3.8.3 1.3 0 .3-.5 0-.5-.2 0-.4-.4-.5-.7-.4-.1 0-.5-.1-.3.1 0 .5.2 1 .4 1.6 0 .3.4.3.7.3.4 0 .9 0 1.2-.3.2-.2 0-.6.2-.8.3-.2.4.1.4.4 0 .3 0 .6.2 1l-.5.1-3 .2c-.3 0-.6.2-.9 0-.2-.2.1-.4.4-.4.3-.1.2-.5.2-.7l-.8-3.2c-.1-.3-.3-.7-.6-.7s-.6-.1-.5-.4l1-.1 2.9-.2zm6.5 4.1c0 .3.3.6.6.6.2.1.6 0 .7.3.1.3-.4.2-.6.2l-1.7.1c-.3 0-.6.1-.8 0-.3 0-.2-.4.1-.4.3 0 .6-.1.7-.4l-.1-.8-.7-2.8c0-.3-.4-.3-.6-.3-.2 0-.6.2-.7-.1 0-.4.5-.3.7-.4l1.1-.4c.2 0 .3.1.3.3l1 4.1zm3.7-3.3c0-.4-.3-.8-.7-.8-.3 0-.7 0-.8.3a1 1 0 00.4 1l.9.5.2-.6a1.4 1.4 0 000-.4zm.8 3c0-.6-.5-.9-1-1-.2 0-.4-.3-.5-.2a1 1 0 00-.4 1c.2.6.5 1 1 1 .4.1.8 0 1-.4a1 1 0 000-.5zm1-.3a1.2 1.2 0 01-.6 1.3 2.4 2.4 0 01-2 .2 1.7 1.7 0 01-1.2-1.3c0-.4.1-1 .6-1.3 0 0 .4-.1.1-.2-.5-.2-1-.6-1-1.2-.2-.5 0-1 .5-1.3a2 2 0 012.6.7c.2.4.2.9 0 1.2l-.6.5c.5 0 1 .4 1.2.8.2.1.3.4.3.6zm3.2.5c.2 0 .5 0 .5-.4.1-.1 0-.6.3-.5.3 0 .2.3.3.6 0 .4 0 .8-.4 1.1-.2.2-.5.1-.8.1h-1.7c-.2 0-.5.2-.7 0-.2-.2 0-.5 0-.7.2-.7.6-1.2 1-1.6.4-.3.8-.6.9-1.1a2 2 0 00-.3-1.2 1 1 0 00-1.4-.3c-.3.1-.4.5-.3.7.2.2.6 0 .7.4.2.2 0 .6-.3.6-.4 0-.8-.3-1-.7a1.2 1.2 0 01.6-1.4c.5-.3 1.1-.3 1.7-.2.5.2 1 .6 1.2 1.2.1.4.1.9-.1 1.3-.4.7-1.1 1-1.7 1.7-.1.1-.2.3-.1.6 0-.3.4-.2.5-.2h1zm4-.4c0 .3.2.6.5.7.2 0 .6 0 .7.2.1.3-.3.3-.5.3h-2.7c-.2-.1 0-.5.2-.4.3 0 .6-.1.7-.4v-.8l-.7-2.8c0-.3-.3-.3-.5-.3-.3 0-.6.2-.7 0-.2-.5.3-.4.5-.5l1.2-.4c.2 0 .3.1.4.3l.8 4.1z"/>
+    </g>
+    <g fill="#448127" stroke="#34541f" stroke-width=".2">
+      <path fill="url(#m)" stroke="#4c0505" d="M475.8 219.4L472 224c-1.2 5.2 1.8 9.2 7.7 12.6 4.7 3 13.5 3.7 16.3 1.3l-13.7-13-6.5-5.4z"/>
+      <path d="M503.6 354.3a322.5 322.5 0 00-2-2.5 100.5 100.5 0 01-32.7 28.6c15.1-4.3 25-15.2 34.7-26.1zM488 390a460 460 0 0118.2-32.3 274.3 274.3 0 00-2.1-2.7c-7.3 12.2-16 26.7-16 35zm42-114.5a62 62 0 00-4.3-13 126.5 126.5 0 00-43.8-44v-.3h.3l-.2-.1h.5l-.2-.3h.4l-.3-.4h.4l-.3-.3h.5l-.3-.4h.4l-.4-.3.6-.1-.5-.3.5-.1-.4-.3.6-.2-.5-.3.6-.3-.6-.4.7-.2-.7-.3.6-.4h-.8l.5-.7h-.7l.3-.5h-.6l.3-.5-.7.1.3-.6-.6.4.2-.7-.7.4.1-.7-.5.5v-.7l-.5.5v-.7l-.5.6v-.7l-.4.6-.2-.7-.3.6-.2-.7-.3.8-.2-.8-.3.8-.2-.7-.2.6-.1-.5-.3.7-.2-.7-.2.8-.3-.7-.2.8-.3-.7v.8l-.4-.6v.8l-.5-.6v.7l-.4-.3.2.7-.5-.3.2.7-.4-.3.1.6h-.4l.2.4h-.3l.2.4a9 9 0 00-.4 3.5c0 .2.6.4.7.6.3.4.2.6.2.6-1.6 2.6-3 4.6-3.1 7.6 1.2-1.6 2.6-3.6 4.4-3.6-.9 1.5-1.3 6.1-.3 6.9l.8-1.4c0 1 .1 1.8.4 2.3l1-1.7c0 1.5.2 2.7.6 3.3a6 6 0 011.6-1.6c-.2.9-.5 1.7-.4 2.7l2-2.5c-.4 1.6 0 2.8.4 4.5.4-2 .6-2.3 1.5-3.1.1 1.9-.2 3.6.2 4.7.8-1.7 1.4-1.5 2-2.6-.2 1.6-.5 3.3 0 4.7a4.5 4.5 0 011.9-2.6c0 2.2.5 1.8-.8 3.7.6.2 2.5-.4 3.6-.9-.5 1.2-.4 2.1-.9 3 1-.6 2-1.5 2.9-2.4-.4 1.4-1.5 2.8-1 4.1.3-1.3 1.3-2.3 2.3-2.5-.2.7-.3 2.2-1.3 2.9 2.4.2 3.4-1.4 4.6-2.7-.1 1.4 0 2.4 1.6 4.3-.3-2.4.2-1.9 1.3-3.3.6 2.1 1.2 4.4 3.4 6-1-2.3-1-3.5-.6-4.9.3 1.5 1.7 3.3 2 4.7.3-1.6.5-3.1 1-4.1a20.2 20.2 0 011.4 5.6c.5-1 .9-2 1.1-3.1 19.8 20.6 24.2 46.8 2.6 74.5 7.7-5.2 9.7-13.5 14-20.6-4.2 9.3-6 19.7-13.5 27.4 7.2-6.2 8.7-11.9 13-17.9-4.5 12.5-11 26.2-19.8 38.8a690.6 690.6 0 014.8 5.2l4-6.9c9.4-15.4 24.7-37.5 17-71.1z"/>
+    </g>
+    <path fill="#eac102" stroke="#a08307" stroke-width=".2" d="M473.2 215.3c-1 .2-1.4.6-2.1 1.4.9.2 1.6.3 2.5.3.2 0 .3-.3.3-.6l-.2-1c0-.2-.6-.1-.8 0l.3-.1z"/>
+    <path fill="#a08307" d="M471 216.7a9.9 9.9 0 011-.3 9.8 9.8 0 011.2-.2 9.8 9.8 0 01-1 .3 10 10 0 01-1.2.2z"/>
+    <circle cx="477.7" cy="215.4" r=".8" stroke="#000" stroke-width=".1"/>
+    <circle cx="477.9" cy="215.3" r=".3" fill="url(#n)"/>
+    <g fill="#34541f">
+      <path d="M488.2 389.7a83.4 83.4 0 011.5-4.4 96.2 96.2 0 011.8-4.4c1.2-2.9 2.7-5.7 4.1-8.4a199.6 199.6 0 014.7-8.2 354.4 354.4 0 012.4-4l2.5-4-2.4 4a400 400 0 00-2.4 4.1l-4.6 8.2a133.7 133.7 0 00-4.2 8.4 98.1 98.1 0 00-1.8 4.3 82.7 82.7 0 00-1.6 4.4zm-18.9-9.5a75.8 75.8 0 005-2.3 72.3 72.3 0 004.6-2.7 72 72 0 008.8-6.5 84.7 84.7 0 007.7-7.5 113.6 113.6 0 003.6-4.1l3.4-4.3a153.8 153.8 0 01-3.3 4.3 111.9 111.9 0 01-3.6 4.2 81.9 81.9 0 01-7.7 7.6 70 70 0 01-8.8 6.4 71.3 71.3 0 01-4.7 2.6 77 77 0 01-5 2.3zm37.3-29.3a138.7 138.7 0 004.3-6.7l4-6.8a341.8 341.8 0 003.7-7l3.7-7-1.7 3.5-1.8 3.6a256 256 0 01-3.7 7 160.5 160.5 0 01-4 6.8 93.5 93.5 0 01-4.5 6.6zm6-25.1a58.4 58.4 0 004.6-6.4 60.2 60.2 0 003.8-7 72.6 72.6 0 005-15l.4-2a61 61 0 00.7-6 52 52 0 000-7.9 50.6 50.6 0 00-1.3-7.8 53.4 53.4 0 00-2.4-7.6 53.5 53.5 0 012.5 7.5 50.5 50.5 0 011.3 7.9c.2 2.6.2 5.3 0 8a61.3 61.3 0 01-.6 6 90.3 90.3 0 01-.4 1.9 72.7 72.7 0 01-5 15 59.9 59.9 0 01-4 7 58.2 58.2 0 01-4.7 6.4z"/>
+      <path d="M510.9 320a36 36 0 004.9-5.8 52 52 0 003.8-6.6 96 96 0 003-7c.4-1.2 1-2.4 1.3-3.6l.4-.9.3-.9.6-1.8c.5-2.5.7-5.1.8-7.7a45.8 45.8 0 00-.6-7.7c-.4-2.5-1-5-1.7-7.5a80.2 80.2 0 00-2.6-7.3 80.3 80.3 0 012.7 7.3 57.4 57.4 0 011.7 7.5 46 46 0 01.6 7.7 41.4 41.4 0 01-.7 7.7l-.6 1.9-.3.9-.4.9-1.3 3.6a96 96 0 01-3.1 7 51.6 51.6 0 01-3.8 6.6 36 36 0 01-5 5.8z"/>
+      <path d="M505 349.2c1.3-1.6 2.4-3.3 3.6-5l1.8-2.5 1.7-2.5a68.8 68.8 0 003-5.4l2.6-5.5c1.8-3.7 3.5-7.4 5-11.3a75.3 75.3 0 003.5-11.7c.8-4 1.4-8 1.9-12.1.4-4.1.4-8.2 0-12.3a52.4 52.4 0 00-2.7-12 72.8 72.8 0 00-5.1-11.1 72.8 72.8 0 015.2 11.1 52.4 52.4 0 012.7 12c.5 4 .4 8.2 0 12.3-.4 4-1 8.1-1.8 12.1a75.5 75.5 0 01-3.5 11.8 145.1 145.1 0 01-5 11.2l-2.7 5.5a67.3 67.3 0 01-3 5.4c-.5 1-1.1 1.7-1.7 2.6l-1.8 2.5-3.6 5z"/>
+      <path d="M507.8 352.3l7-11.6a200.5 200.5 0 006.4-11.9 82 82 0 005-12.5c.7-2.2 1.2-4.3 1.7-6.5a59.3 59.3 0 00.6-3.4 127.7 127.7 0 001.4-16.8c0-4.5-.4-9-1.2-13.4a57.5 57.5 0 00-4-12.9 54 54 0 00-7-11.5 54 54 0 017 11.5 57.6 57.6 0 014.1 12.9 73.4 73.4 0 011.2 13.4c0 4.5-.3 9-.9 13.5a134 134 0 01-.4 3.4 58.8 58.8 0 01-.6 3.3 74.3 74.3 0 01-1.7 6.5 82 82 0 01-5 12.6c-2 4-4.3 8-6.5 11.8a442.5 442.5 0 01-7 11.5zM480 220.8h1.4a18.7 18.7 0 014.1 1.3c1.7.8 3.4 1.8 4.9 3a35.8 35.8 0 014.3 3.7 45.3 45.3 0 011.8 2.1l1.8 2.3a60.9 60.9 0 00-1.8-2.2 42 42 0 00-2-2 37.8 37.8 0 00-4.2-3.8 26.8 26.8 0 00-4.9-3 18 18 0 00-5.4-1.4z"/>
+    </g>
+    <g fill="#448127">
+      <path d="M496.4 231.6s3 1.8 4.7 4.4c0 0-4.7-.9-8-4.6"/>
+      <path fill="#34541f" d="M496.4 231.6a14.1 14.1 0 012.6 1.9 13 13 0 012.2 2.4l.1.3h-.2a14.5 14.5 0 01-2.3-.8 15.7 15.7 0 01-2.1-1c-1.4-.8-2.6-1.8-3.7-3a15.2 15.2 0 003.8 2.8 18.3 18.3 0 002 1 14.4 14.4 0 002.3.7v.2a11.2 11.2 0 00-1-1.3l-1.2-1.2a17.7 17.7 0 00-1.2-1 18.6 18.6 0 00-1.3-1z"/>
+      <path d="M489.6 230.7s7.2 4.6 8.2 5c0 0-1.6-3.5-5-5"/>
+      <path fill="#34541f" d="M489.6 230.7l4.1 2.5a139.9 139.9 0 003.1 1.8l1 .6v.1a10.7 10.7 0 00-1-1.5l-1.1-1.4a10.7 10.7 0 00-1.4-1.2l-1.5-.9a8.4 8.4 0 011.6.9 11.1 11.1 0 013.5 4l.2.3-.3-.1-2.1-1.2-2-1.3a151.6 151.6 0 01-4.1-2.6z"/>
+      <path d="M492.5 228.4s3.7 1.6 4.6 4.3c0 0-6.8-2.8-8-4.3"/>
+      <path fill="#34541f" d="M492.5 228.4a10.7 10.7 0 012.8 1.6 7.2 7.2 0 011.1 1.2l.8 1.5v.2h-.2a79.6 79.6 0 01-2-1 49.8 49.8 0 01-2.1-1 34 34 0 01-2-1.1l-1-.6-.8-.8.9.7 1 .6 2 1a84.2 84.2 0 004.1 2h-.1a4.8 4.8 0 00-.8-1.3 7.8 7.8 0 00-1-1.2 12.5 12.5 0 00-2.8-1.8z"/>
+      <path d="M486.8 231.3s6.6 4.7 8.6 4.7c0 0-2-3.3-5.4-4.7"/>
+      <path fill="#34541f" d="M486.8 231.3a127 127 0 004.1 2.6 35 35 0 003.3 1.7l1.2.3-.1.2a15.5 15.5 0 00-2.3-2.8l-1.4-1.1a11 11 0 00-1.6-1c1.1.5 2.2 1.2 3 2a12.8 12.8 0 012.5 2.8v.1h-.1a3.7 3.7 0 01-1.3-.3 13.7 13.7 0 01-1.1-.5 33.3 33.3 0 01-2.1-1.2 63.9 63.9 0 01-2.1-1.4 56.3 56.3 0 01-2-1.4z"/>
+      <path d="M486.8 232.7s3.4 3 5.4 3c0 0-2-3.3-5.4-4.8"/>
+      <path fill="#34541f" d="M486.8 232.7a31.2 31.2 0 002.5 1.8l1.4.7a5.3 5.3 0 001.5.4l-.1.1a12.4 12.4 0 00-1-1.4 13.3 13.3 0 00-2.7-2.5 11 11 0 00-1.6-.9c1.1.5 2.2 1.1 3 2a12.9 12.9 0 012.5 2.7v.2h-.1c-.6 0-1-.2-1.6-.4a11.4 11.4 0 01-1.4-.8l-1.2-.9a17.6 17.6 0 01-1.2-1z"/>
+      <path d="M485 226.2s7.2 5.1 8 7.9c0 0-6.4-3-7.6-4.5"/>
+      <path fill="#34541f" d="M485 226.2a51.6 51.6 0 012.3 1.7 51 51 0 012.2 1.8 25.7 25.7 0 012 2l1 1 .7 1.4v.2l-.2-.1a77 77 0 01-2-1 50.3 50.3 0 01-2-1 34.8 34.8 0 01-1.9-1.2 15.4 15.4 0 01-1-.7 4 4 0 01-.7-.7l.8.7a36.7 36.7 0 003 1.7 87.3 87.3 0 004 2l-.2.1a4.6 4.6 0 00-.7-1.2 12.2 12.2 0 00-.9-1.1l-2-2a51.1 51.1 0 00-2.1-1.9 71.2 71.2 0 00-2.3-1.7z"/>
+    </g>
+    <g stroke="#24420e" stroke-width=".2">
+      <path fill="#406325" d="M445 370.3a42.2 42.2 0 01-20.4 4.8c10-8.2 19.7-8.4 20.4-4.8zm69.8 4.5c5.2 4.7 21 8 23.5 7.4-10.6-10.7-22.1-11.8-23.5-7.4z"/>
+      <path fill="#67923d" d="M445 370.3c-.7-3.7-10.5-3.5-20.4 4.8a69.4 69.4 0 0120.4-4.8zm69.9 4.4c1.4-4.4 12.8-3.3 23.4 7.5a84 84 0 00-23.4-7.5z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gu.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gu.svg
new file mode 100644
index 0000000..d6f5d53
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gu.svg
@@ -0,0 +1,39 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gu" viewBox="0 0 512 512">
+  <path fill="#be0027" fill-rule="evenodd" d="M0 0h512v512H0z"/>
+  <path fill="#3b5aa3" fill-rule="evenodd" d="M20.5 20.5h470v471h-470z"/>
+  <path fill="#cbe0e5" fill-rule="evenodd" d="M251.9 396.1c1.8 1 4.7 1 6.3.1 103.3-55 103.4-205.8.1-260a7.5 7.5 0 00-6.6.1c-100.7 55.1-101 204.2.2 259.8z"/>
+  <path fill="#add2d9" fill-rule="evenodd" d="M251.9 398.9c1.6 1.3 4.8 1.1 6.3 0 76.1-57 76.6-92.5 73.2-92.5H180.7c-2.3 0 1.3 36.1 71.2 92.4z"/>
+  <path fill="#fdf9a1" fill-rule="evenodd" d="M192.6 334.6a29.3 29.3 0 0120.9 1.3c5.7 3 9 3 15.1 3 6.5.1 11.5 4.9 18.5 5 12.8.4 18.3 6.7 8.3 6.8-4.7 0-14.8-3.2-19.7-2.5-10.2 1-16.7 3.3-26.3 14l11.1 7.6c9.6-4 11.2-8.3 16.5-8.5 6-.2 8-4 15-4 7.9 1.5 18.5-1 24.8-2.3 11.1-2.6 5.8-10.3-.9-13.2-5.4-2.3-15.6 0-22-2.3-4.7-1.9-.8-4.9 1.8-5.5 2.6-.5 5.4.4 8.6.9 5.8.5 13 0 18-.9 10.5-1.6 10-4.7 15.1-4.7a16 16 0 009-3.1c3-2 6-6 9.6-5.9l9.6.4L312 351l-38 38.8-19.8 7.5L211 369l-22-33.5 3.5-.9z"/>
+  <path fill="#179a3b" fill-rule="evenodd" d="M242.4 305.1l87-.4 1.6-7.7-5.6-.6c-3.2-.2-8.5 3.3-12.1 3.3-2.6 0-5.5-4.6-8-4.5-4.4 0-4.8 4-9 4-3.4 0-4.8-2.6-9.2-2.4-4.6.3-4.2 2.8-10 2.7-7.7-.2-10.7-6.9-16.8-7-10.3 0-10.6 9.8-17.9 12.6z"/>
+  <path fill="#fdf9a1" fill-rule="evenodd" d="M242.4 307l89.6-.5v-2.4l-91.6.5 2 2.4z"/>
+  <path fill="#a79270" fill-rule="evenodd" d="M279.2 334c1.4 5.2 2.9 7 8.4 8.4 5.5 1.3 13.9-4 8.7-9.2-5-4.8-10.2-6-14.6-10.4-9.4-9.2-23.5-31.9-23.5-47.8 0-13.8-1.3-41.9-1.3-68.5 0-1.8-5.2 4.8-5.2 6.5.2 23.6.2 41.3 1.1 65 1.5 17.4 9.8 29 17 39.6 3.3 5 8 10.5 9.4 16.3z"/>
+  <text x="465.1" y="269.5" fill="#bd0728" stroke="#fff" stroke-width="1.6" font-family="helvetica" font-size="25.6" transform="translate(-256.3 5)">
+    <tspan>G</tspan>
+  </text>
+  <text x="488.1" y="269.6" fill="#bd0728" stroke="#fff" stroke-width="1.6" font-family="helvetica" font-size="25.6" transform="translate(-256.3 5)">
+    <tspan>U</tspan>
+  </text>
+  <text x="516" y="269.6" fill="#bd0728" stroke="#fff" stroke-width="1.6" font-family="helvetica" font-size="25.6" transform="translate(-256.3 5)">
+    <tspan>A</tspan>
+  </text>
+  <text x="539.5" y="269.5" fill="#bd0728" stroke="#fff" stroke-width="1.6" font-family="helvetica" font-size="25.6" transform="translate(-256.3 5)">
+    <tspan>M</tspan>
+  </text>
+  <path fill="#239e46" fill-rule="evenodd" d="M211.9 207.3c-1.2 2.2 2.7-.6 3.6-1 5-1.7 7-8 15.6-4.3 6.8 3 16 1.3 11.2 4.2-6 3.6-17.7 7.5-18 25 1 1.7 1.2 1.4 2-.4 1.7-4 10.3-15.2 14.5-14.2 1.7.4 6.6-5 6.8-3.5.4 4.4-6.8 13.2-6.7 25 0 2.8 3.4 3.7 5 1.8 1.6-1.7 2.5-3.5 5.4-5.7 5-4.1 3.6-21.5 4.2-20.7 3.5 4.6 4 17.5 9.4 22.8 4.3 4.4 7.9 2.3 7-3.8-2-12.3-7.8-8.8-10.5-21.5-.6-2.5-.7-4.7 2.5-3.7 4 1.2 6.4 3 9.4 7.6 3 4.3 8.5 8.4 11.8 11 5.6 4.3 7.6.5 4.9-5a30 30 0 00-15.8-13.8c-4.6-1.6-6.3-1.7-10.4-2.5-1-.2-2.3-2.6-.3-3.8a32 32 0 0114.8-5.8c5-.1 9 3.9 12.5 5 7.1 1.8 7-2.7 4-6-2.6-2.8-8-7.5-13-7-10.2 1.3-9.6 1-15.8 5.2-2.3 1.3-4.8 2.8-3.9 1.2 2.3-4.1.1-3.4 3.7-7.6 2.7-3 4.7-5.3 7.5-6 2.6-.7 6-3.4 7-4.8 2.6-3.5.4-5.5-3.5-4.3-3.4 1-5.3 3.2-7.6 3.8-5.5 1.7-10 14.3-10.6 16-.9 2.2-1.8 1.1-1.7-.7.8-8.8 1.6-23.7-1.5-29.8-4.7-9-4.3-4.8-6.1-.5a30.2 30.2 0 000 19.8c.7 3.3 3.4 7 4 9.7.3 2-1.3-.7-2.1-1.9-3-4.5-5.2-7.6-10-10a26.8 26.8 0 00-15.2-1.5c-1.3.4 1.5 2.4 2.7 3.3 3.2 2.6 9.3 3.4 13.4 6 3.6 2 6.3 3.5 7.4 6.5.5 2.2 1.2 5.5-.2 5.4-3.9-.2-9.9-3.5-22.2-2.2-6.3.9-11.7 6.3-15.2 12.7z"/>
+  <path fill-rule="evenodd" d="M238.7 319.8h3.6v6h-3.6z"/>
+  <path fill="#fdf9ff" fill-rule="evenodd" d="M221 280.2c14.1 19.6 36.8 31 37.3 40L214 320c10.1-12.2 16.3-20.5 6.9-39.9z"/>
+  <path fill="#a68861" fill-rule="evenodd" d="M208.1 320.6c19.3 4.3 42.2 6.6 56.9-.6 0 4.3-4.8 10.4-8.8 10.4h-36.9c4.3-.6 6.7-1.9 13.7-2.3l-19.6.3c-2.1 0-6-5.7-5.3-7.8z"/>
+  <path fill="#be0027" fill-rule="evenodd" d="M251.7 406a8 8 0 006.8 0c111.1-59.1 111.2-221.3.2-279.6a8 8 0 00-7.1 0c-108.3 59.3-108.6 219.7.1 279.5zm.6-13.4a7 7 0 005.9 0c93-54.7 94.1-199.3.1-251.1-1.8-1.3-4.4-.9-6.2 0-89 52.7-94 191.4.2 251z"/>
+  <text x="465.1" y="269.5" fill="#bd0728" font-family="helvetica" font-size="25.6" transform="translate(-256.3 5)">
+    <tspan>G</tspan>
+  </text>
+  <text x="488.1" y="269.6" fill="#bd0728" font-family="helvetica" font-size="25.6" transform="translate(-256.3 5)">
+    <tspan>U</tspan>
+  </text>
+  <text x="516" y="269.6" fill="#bd0728" font-family="helvetica" font-size="25.6" transform="translate(-256.3 5)">
+    <tspan>A</tspan>
+  </text>
+  <text x="539.5" y="269.5" fill="#bd0728" font-family="helvetica" font-size="25.6" transform="translate(-256.3 5)">
+    <tspan>M</tspan>
+  </text>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gw.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gw.svg
new file mode 100644
index 0000000..064a593
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gw.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-gw" viewBox="0 0 512 512">
+  <path fill="#ce1126" d="M0 0h160v512H0z"/>
+  <path fill="#fcd116" d="M160 0h352v256H160z"/>
+  <path fill="#009e49" d="M160 256h352v256H160z"/>
+  <g transform="translate(-46.2 72.8) scale(.7886)">
+    <g id="b" transform="matrix(80 0 0 80 160 240)">
+      <path id="a" d="M0-1v1h.5" transform="rotate(18 0 -1)"/>
+      <use width="100%" height="100%" transform="scale(-1 1)" xlink:href="#a"/>
+    </g>
+    <use width="100%" height="100%" transform="rotate(72 160 240)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(144 160 240)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(-144 160 240)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(-72 160 240)" xlink:href="#b"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gy.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gy.svg
new file mode 100644
index 0000000..57eb520
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/gy.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gy" viewBox="0 0 512 512">
+  <g fill-rule="evenodd">
+    <path fill="#399408" d="M2 0h510v512H2z"/>
+    <path fill="#fff" d="M.1 0c-.6 0 495.7 257.6 495.7 257.6L0 511.7.1 0z"/>
+    <path fill="#ffde08" d="M.2 21.5C3 21.5 447.5 254 445 256.2L1.5 494.2.2 21.4z"/>
+    <path d="M1.5.8c1.5 0 232.8 257 232.8 257L1.5 508.8V.8z"/>
+    <path fill="#de2110" d="M.2 36.2C1.6 20.2 209 258.5 209 258.5L.2 481.8V36.2z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/hk.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/hk.svg
new file mode 100644
index 0000000..024c070
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/hk.svg
@@ -0,0 +1,30 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-hk" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M164.8 0H909v744H165z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="matrix(.7 0 0 .7 -113.4 0)">
+    <path fill="#ba0000" fill-rule="evenodd" d="M1063 744.1H0V0h1063z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M516.4 360.1s-75-32.3-64.3-116c10.4-40.3 28.8-67.7 62.2-82.6a223 223 0 0148-8.4c-4.4 4-8 8.1-9.8 13.2-3.6 9.2-1 18 3.8 26.8a78 78 0 0110.8 34.4 53.2 53.2 0 01-21.2 49c-9.6 7.3-21 9.9-30.2 18.3a41.1 41.1 0 00-13.2 26.4c-.3 23.4 6.1 26.7 13.9 39z"/>
+    <path fill="#ba0000" fill-rule="evenodd" stroke="#000" stroke-width="3.1" d="M502.1 239v-.3"/>
+    <path fill="none" stroke="#ba0000" stroke-width="3.1" d="M506.9 351.4c-29.2-25.8-26.7-90.7-4.4-112.4"/>
+    <path fill="#ba0000" fill-rule="evenodd" d="M501.9 223l9.6-2.1 1.1-9.4 4.8 8 9.6-2.1-6.6 7.1 4.8 8-9-3.6-6.6 7.1 1.2-9.3"/>
+    <path fill="#fff" fill-rule="evenodd" d="M522.8 354.6s8.9-81.2 92-95.4c41.6-1.9 73.2 7.7 97.3 35.2a223.4 223.4 0 0122 43.4c-5.1-3-10-5.2-15.5-5.5-9.8-.7-17.4 4.4-24.4 11.5-8 8.8-17 15.3-29.8 20.4a53.3 53.3 0 01-53-5.9c-9.9-7-15.6-17.1-26.4-23.5a41 41 0 00-29.1-4.9c-22.5 6.7-23.7 13.7-33.2 24.7z"/>
+    <path fill="#ba0000" fill-rule="evenodd" stroke="#000" stroke-width="3.1" d="M634.4 305.5l.3-.1"/>
+    <path fill="none" stroke="#ba0000" stroke-width="3.1" d="M528.3 343c16.1-35.5 79-52 106.2-37.2"/>
+    <path fill="#ba0000" fill-rule="evenodd" d="M649.6 300.6l4.8 8.6 9.3-1.7-6.2 7 4.9 8.5-8.8-4.3-6.3 7 .9-9.6-8.8-4.3 9.3-1.6"/>
+    <path fill="#fff" fill-rule="evenodd" d="M528.4 360.5s79.8-17.4 119.7 57c15 38.8 16 71.8-2.5 103.4-10 13-21.7 24-34.2 34.6 1.2-5.8 1.7-11.2.3-16.4-2.4-9.5-9.7-15.1-18.7-19.5a77.2 77.2 0 01-28.7-21.7 53.3 53.3 0 01-11.3-52.2c3.5-11.6 11.3-20.3 13.9-32.5a41 41 0 00-4.6-29.2c-13.4-19.1-20.5-18-34-23.5z"/>
+    <path fill="#ba0000" fill-rule="evenodd" stroke="#000" stroke-width="3.1" d="M610.4 450.7l.2.3"/>
+    <path fill="none" stroke="#ba0000" stroke-width="3.1" d="M541.1 362c38.8 4 74.5 58.4 69 88.9"/>
+    <path fill="#ba0000" fill-rule="evenodd" d="M619.8 463.6l-6.5 7.3 4.5 8.3-8.6-3.8-6.5 7.4 1.3-9.7-8.6-3.7 9.3-2.2 1.3-9.7 4.5 8.3"/>
+    <path fill="#fff" fill-rule="evenodd" d="M526.6 368.7s39 71.7-21.1 131c-33.1 25.2-64.5 35.4-100 26.5-15.3-5.8-29.1-14-42.8-23 5.8-.5 11.2-1.5 15.8-4.4 8.4-5 11.8-13.5 13.5-23.4a77.2 77.2 0 0112.7-33.7 53.2 53.2 0 0147-25.4c12 .1 22.6 5.1 35 4.2a41 41 0 0026.8-12.6c14.6-18.3 11.6-24.8 13-39.2z"/>
+    <path fill="#ba0000" fill-rule="evenodd" stroke="#000" stroke-width="3.1" d="M463 472.7l-.2.3"/>
+    <path fill="none" stroke="#ba0000" stroke-width="3.1" d="M528.7 381.4c7 38.3-35.1 87.8-66 91.1"/>
+    <path fill="#ba0000" fill-rule="evenodd" d="M453.3 485.4l-8.9-4.2-6.7 6.7 1.2-9.3-8.9-4.2 9.7-1.5 1.1-9.3 4.8 8.4 9.6-1.5-6.7 6.6"/>
+    <path fill="#fff" fill-rule="evenodd" d="M517.7 367.1s-54.7 60.7-130.5 23.6c-34.8-22.8-54.9-49-58.3-85.4.4-16.3 3.6-32.1 7.5-48 2.5 5.3 5.1 10 9.4 13.4 7.5 6.3 16.7 6.7 26.5 5a77.2 77.2 0 0136 .8 53.3 53.3 0 0139.6 35.8c4 11.5 2.7 23 7.7 34.5a41 41 0 0020.8 21c22 7.7 27.2 2.8 41.3-.7z"/>
+    <path fill="#ba0000" fill-rule="evenodd" stroke="#000" stroke-width="3.1" d="M398.4 341.7h-.3"/>
+    <path fill="none" stroke="#ba0000" stroke-width="3.1" d="M506.4 373.4c-33.8 19.3-94.5-4-107.8-32"/>
+    <path fill="#ba0000" fill-rule="evenodd" d="M383.2 336.8l1-9.8-8.4-4 9.1-2 1-9.8 4.7 8.6 9-2-6.2 7.3 4.6 8.6-8.5-4.1"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/hm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/hm.svg
new file mode 100644
index 0000000..7e1f7e7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/hm.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-hm" viewBox="0 0 512 512">
+  <g stroke-width="1pt">
+    <path fill="#006" d="M0 0h512v512H0z"/>
+    <path fill="#fff" d="M0 0v19.2l234 152.6h29.5v-19.2L29.5 0H0zm263.5 0v19.2l-234 152.6H0v-19.2L234 0h29.5z"/>
+    <path fill="#fff" d="M109.8 0v171.8h43.9V0h-44zM0 57.3v57.3h263.5V57.3H0z"/>
+    <path fill="#c00" d="M0 68.7v34.4h263.5V68.7H0zM118.6 0v171.8h26.3V0h-26.3zM0 171.8l87.8-57.2h19.7l-87.9 57.3H0zM0 0l87.8 57.3H68.2L0 12.8V0zm156 57.3L243.8 0h19.7l-87.8 57.3H156zm107.5 114.5l-87.9-57.2h19.7l68.2 44.4v12.8z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M69.1 443.6l-16.3 17.2 3.2-23.5-23.6-2L52.8 423l-13.1-19.8 22.1 8.4 7.3-22.5 7.3 22.5 22.1-8.4-13 19.8 20.3 12.1-23.6 2 3.2 23.6m295.1 6L369 479l2.3-16.5-16.6-1.5 14.3-8.5-9.2-13.9 15.6 6 5.1-16 5.1 16 15.7-6-9.3 14 14.4 8.4-16.7 1.5L392 479m-11.5-259.5l-11.5 12 2.3-16.5-16.6-1.4L369 205l-9.2-14 15.6 6 5.1-16 5.1 16 15.7-6-9.3 14 14.4 8.5-16.7 1.4 2.3 16.6m-104.3 88.4L276.2 332l2.3-16.5L262 314l14.3-8.5-9.2-14 15.6 6 5.1-15.9 5.1 15.9 15.7-6-9.3 14 14.4 8.5-16.7 1.5 2.3 16.5M463 295.2l-11.5 12 2.3-16.5-16.6-1.4 14.3-8.5-9.2-14 15.6 6 5-16 5.2 16 15.6-6-9.2 14 14.3 8.5-16.6 1.4 2.3 16.5M411 349l-8.2-6.9 10.7-.8 4-9.9 4 10 10.8.7-8.2 6.9 2.5 10.4-9-5.7-9.2 5.7"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/hn.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/hn.svg
new file mode 100644
index 0000000..c7c4c4a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/hn.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-hn" viewBox="0 0 512 512">
+  <path fill="#0073cf" d="M0 0h512v512H0z"/>
+  <path fill="#fff" d="M0 170.7h512v170.6H0z"/>
+  <g id="c" fill="#0073cf" transform="translate(256 256) scale(28.44446)">
+    <g id="b">
+      <path id="a" d="M0-1l-.3 1 .5.1z"/>
+      <use width="100%" height="100%" transform="scale(-1 1)" xlink:href="#a"/>
+    </g>
+    <use width="100%" height="100%" transform="rotate(72)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(-72)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(144)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(-144)" xlink:href="#b"/>
+  </g>
+  <use width="100%" height="100%" transform="translate(142.2 -45.5)" xlink:href="#c"/>
+  <use width="100%" height="100%" transform="translate(142.2 39.8)" xlink:href="#c"/>
+  <use width="100%" height="100%" transform="translate(-142.2 -45.5)" xlink:href="#c"/>
+  <use width="100%" height="100%" transform="translate(-142.2 39.8)" xlink:href="#c"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/hr.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/hr.svg
new file mode 100644
index 0000000..7ea0041
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/hr.svg
@@ -0,0 +1,56 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-hr" viewBox="0 0 512 512">
+  <path fill="#171796" d="M0 0h512v512H0z"/>
+  <path fill="#fff" d="M0 0h512v341.3H0z"/>
+  <path fill="red" d="M0 0h512v170.7H0z"/>
+  <path fill="red" d="M256 388.4a99.8 99.8 0 0099.6-99.5V170.6H156.5V289a99.8 99.8 0 0099.5 99.5z"/>
+  <path fill="#fff" d="M256 386.8a98 98 0 0097.7-97.6V172.5H158.4v116.7a98 98 0 0097.6 97.6z"/>
+  <path fill="red" d="M199.6 176.2H162v41.3h37.6zm0 82.6h37.6v-41.3h-37.6zM162 289c0 3.7.3 7.4.7 11h36.9v-41.2H162V289zm112.8-30.2h-37.6V300h37.6zm0 82.5h37.5V300h-37.6zm37.5 22.6a95.1 95.1 0 0021.5-22.6h-21.5V364zm-112.7-22.6h37.6V300h-37.6zm-21.5 0a95.1 95.1 0 0021.5 22.6v-22.6h-21.5zm84.4 41.3a93.4 93.4 0 0012.2-1.7v-39.6h-37.5V381a92.9 92.9 0 0012.2 1.7c4.4.3 8.7.3 13.1 0zm86.7-82.6c.4-3.6.7-7.3.7-11v-30.2h-37.6V300h36.9zm-74.4-41.2h37.5v-41.3h-37.6zm0-82.6h-37.6v41.3h37.6zm75 41.3v-41.3h-37.5v41.3z"/>
+  <path fill="#fff" d="M352 169.4l23.3-52.8L357.5 88l-29.4 11-20.6-23.7-27.2 15.6L256 71l-24.3 19.8-27.2-15.6L184 98.8 154.5 88l-17.8 28.7 23.3 52.8a232.3 232.3 0 0196-20.6c34.2 0 66.7 7.4 96 20.6z"/>
+  <path fill="#0093dd" d="M184.5 101.2l-29.2-10.8-16.3 26.4 6.3 14.2 15.8 36a234.3 234.3 0 0136.9-12.8l-13.5-53z"/>
+  <path fill="#fff" stroke="#000" stroke-width=".3" d="M182.9 127.2a14.1 14.1 0 011.6 6.6c0 7.9-6.4 14.3-14.3 14.3a14.3 14.3 0 01-14-11.5 14.3 14.3 0 0012.5 7.3 14.3 14.3 0 0014.2-16.7z"/>
+  <path d="M169.8 107.5v.2l-1 5.2 3.9 3.4.2.1-.3.1-4.9 1.7-1 5.1v.3l-.2-.2-4-3.4-4.9 1.7h-.2v-.2l1-5.1-3.9-3.4-.2-.2h.2l5-1.8 1-5v-.3l.2.1 4 3.5 4.9-1.7z"/>
+  <path fill="#f7db17" d="M163.9 114.8l3.7 3.2 4.6-1.6zm0-.2l8.3 1.6-3.7-3.2zm-8.9-1.7l8.3 1.6-3.7-3.2zm8.3 1.7L155 113l3.6 3.2zm.4-.3l5.6-6.3-4.6 1.5zm-6 6.9l5.6-6.4-4.6 1.6zm5.8-6.3l-5.6 6.4 4.6-1.6zm5.9-6.8l-5.5 6.3 4.6-1.5zm-6 6.3l-2.7-8-1 4.7zm3 8.5l-2.8-8-1 4.8zm-2.6-8l2.7 8 1-4.8zm-3-8.6l2.8 8 .9-4.8z"/>
+  <path fill="#171796" d="M232 93.2l-27-15.4-20.5 23.4 13.5 53a234.4 234.4 0 0138.5-6.5L232 93.2z"/>
+  <path fill="red" d="M194.7 141a247.7 247.7 0 0140.7-6.8l-1.1-13.8a262 262 0 00-43 7.2l3.3 13.4zm-6.8-26.6a275.1 275.1 0 0145.2-7.6L232 93.3a288.8 288.8 0 00-47.5 8l3.4 13z"/>
+  <g transform="translate(-256) scale(.00253)">
+    <path fill="#0093dd" d="M212105 36890l-23 13-9517-7794-9497 7778 1788 21560c2543-210 5113-322 7709-322 2608 0 5190 113 7744 325l1795-21560z"/>
+    <g id="a">
+      <path d="M202545 46585c-18-2-44 10-69 45-186 250-359 469-545 720-195 61-242 180-167 348-261-26-291 193-302 432-250-379-522-482-814-307-11-230-187-338-439-392-180-10-319-65-436-145-60-42-110-64-170-106-126-88-226-5-172 74 267 434 535 868 802 1302-14 80 6 151 88 204 47 133 93 265 140 397-11 38-21 75-32 113-221-105-443-118-664-133-170-8-287-50-361-137-54-63-91-26-92 82-3 534 162 1014 599 1492-231 4-462 11-694 21-79 6-95 39-73 104 126 304 339 579 822 766-208 112-327 285-357 520-9 224-75 382-212 455-60 32-81 65-24 106 253 185 565 193 895 112-157 270-226 553-198 850 208 56 412 15 614-52-29 61-44 175-52 309-7 115-41 229-104 343-32 33-65 84 4 102 336 91 648 52 915-47 0 243 2 487 76 727 18 58 70 102 125 26 155-214 322-396 527-517 31 90 75 168 156 215 96 55 147 170 153 343 0 30-2 60 35 90 149 7 514-380 589-597 206 121 284 246 439 461 55 76 99 29 128-25 62-243 67-481 66-724 267 99 579 138 915 47 69-19 36-70 4-102-62-114-105-250-113-365-9-133-14-226-43-287 202 68 405 108 614 52 29-297-53-579-211-850 330 80 655 73 908-112 57-41 35-74-24-106-136-73-203-231-212-455-30-235-149-409-357-520 483-187 696-463 822-766 22-66 6-99-73-104-231-10-480-24-711-27 437-478 606-961 604-1495-1-108-38-146-92-82-74 87-179 137-348 146-222 15-435 24-656 128-11-38-21-75-32-113 46-132 106-260 153-393 82-53 102-123 88-204 267-434 513-868 781-1302 54-79-46-162-171-74-60 42-110 64-170 106-117 80-257 134-437 145-251 54-417 167-428 397-293-175-564-73-814 307-11-239-41-457-302-432 75-168 17-291-178-352-186-250-458-470-644-720-31-35-51-47-69-45z"/>
+      <g fill="#f7db17">
+        <path d="M205075 47978c-51-26-124 17-162 95s-33 170 19 196c40 20 84-6 119-56l22-36c2-3 4-6 5-9 38-78 49-163-2-188zm-5008 0c52-26 124 17 162 95s39 165-13 191-103-24-141-102-60-158-9-184zm4539 905c-32 0-59 27-59 59s26 59 59 59 59-26 59-59c0-32-26-59-59-59zm-4032 0a59.1 59.1 0 10.2 118.2 59.1 59.1 0 00-.2-118.2zm4294-304c-754-91-1506-133-2260-133s-1509 41-2269 115c-26 8-21 90 14 86 756-73 1507-113 2256-113 743 0 1485 40 2228 129 39 4 54-80 32-84z"/>
+        <path d="M200319 48495c768-75 1530-117 2289-116 754 0 1507 42 2261 133l111-184c-32 10-62 9-90-5-76-38-92-161-36-274 56-114 164-175 240-138 39 19 62 62 68 114l446-739c-204 130-328 214-581 252-281 41-409 139-368 307 38 156-57 133-201 54-314-171-541 71-652 353-73 186-159 181-168-13-4-70 0-131-7-200-21-223-89-286-216-224-161 78-175 25-137-58 28-60 86-128 66-221-9-67-66-92-151-98-182-244-467-483-649-727-182 244-374 483-556 727-86 5-142 30-152 98-20 93 52 157 80 217 38 82 23 135-137 57-127-61-186-3-207 220-7 69-10 139-13 209-9 194-95 199-168 13-111-282-352-524-667-353-145 79-203 102-182-54 23-172-107-266-388-307-253-37-377-122-581-252l419 682c12-25 29-45 53-57 76-38 184 24 240 138 56 113 40 237-36 274-10 5-21 8-32 10l100 163zm4389 911c-7 3-7 4-24 11-46 19-80 66-134 124-57 60-128 125-211 188-12 10-25 19-44-6s-7-35 6-44c80-62 149-124 204-182 30-32 56-63 77-92-95-11-190-21-284-30-79 24-157 55-222 95-59 35-107 77-137 125-8 14-16 27-44 11-27-16-19-30-11-44 35-58 91-107 158-147 33-20 69-38 106-54-107-9-214-18-321-25-22 13-42 29-61 47-20 19-39 42-56 67-9 13-18 26-44 8s-18-31-8-44c19-29 41-54 64-77l9-9c-80-5-161-10-241-14-2 2-5 5-8 7a340.4 340.4 0 00-93 126c-6 15-12 29-41 18-29-12-23-26-17-41 12-29 27-55 45-81 8-11 18-22 27-33-115-5-230-9-344-12-4 5-9 8-14 11-25 15-47 32-66 51s-35 40-48 63c-8 14-16 28-43 12-28-16-20-29-12-43 16-28 35-54 59-77 7-7 14-13 21-19-122-2-244-4-365-4-120 0-240 1-360 3 8 7 15 13 22 20 23 23 42 49 59 77 8 14 16 27-12 43s-35 2-44-12c-13-23-29-44-48-63s-41-36-66-51c-6-3-12-7-15-12-115 2-230 6-345 11 11 11 20 23 29 35 19 25 33 52 45 81 6 15 12 29-17 41s-35-3-41-18c-9-24-22-46-38-67-15-21-34-41-55-59-4-3-7-6-10-10-81 4-162 8-243 13 4 4 9 8 13 12 24 23 45 48 64 77 9 13 18 26-8 44s-35 5-44-8c-18-26-36-48-56-67s-41-35-64-49c-1-1-3-2-5-3-110 7-220 14-330 23 43 18 85 38 122 61 67 40 124 89 158 147 8 14 16 27-11 44-27 16-35 3-44-11-29-48-78-90-137-125-72-44-159-77-246-102h-2c-90 7-179 15-268 24 22 33 51 68 86 106 55 58 124 120 204 182 13 9 25 19 6 44s-32 15-44 6c-83-64-155-128-211-188-37-38-99-111-135-140-196-90-354-127-575-147-153-14-318-9-458-79 36 85 75 164 126 229 53 68 120 121 209 147 8 2 21 16 22 25 28 157 84 286 169 386 52 60 114 110 188 149-75-81-132-166-172-251-67-142-90-286-77-420 1-16 3-32 34-29 32 3 30 19 29 35-11 123 9 256 72 387 56 118 159 237 291 346 24 19 0 63-29 55-154-44-290-123-383-231-89-104-149-237-180-397-94-32-165-90-222-164-47-60-85-131-118-205 28 428 182 801 456 1137 61 75 165 182 255 216 92 35 95 100-20 101-34 1-69 1-105 1 84 31 164 66 233 105 127 73 217 162 224 273 1 16 2 32-29 34-32 2-33-14-34-29-6-86-82-160-192-223-113-65-259-117-402-160-154 0-312-1-459 3 39 28 80 57 131 84 82 44 188 86 343 122 89 21 166 52 233 91 71 42 130 93 177 150 10 12 20 25-5 45s-34 8-45-5c-42-52-95-98-159-135-61-36-133-64-216-84-161-38-272-81-358-128-75-40-131-82-184-123 180 393 450 573 835 689 23 7 43 13 61 19 3 1 6 1 9 2 86 21 175 40 266 55 92 15 166 28 261 37 16 1 32 3 29 34-3 32-19 30-34 29-99-9-174-22-266-38-58-10-115-21-171-33-26 6-64 9-107 12-232 14-420 225-435 494 0 5 0 11-1 16 88-80 179-157 273-212 117-68 239-103 364-69 15 4 31 8 22 39-8 31-23 27-39 22-106-28-212 3-316 63-108 63-213 158-315 253-24 147-82 285-205 377 61 34 104 65 163 45 86-39 172-78 261-108 91-31 184-52 282-57 16-1 32-1 33 31s-14 32-31 33c-91 4-179 24-264 53-75 26-149 58-222 91 221 47 460-1 667-79 60-22 105-42 133-41 51-30 112-53 172-79 66-28 132-51 182-57 16-2 32-4 35 28 4 32-12 33-28 35-112 13-127 21-222 79 0 21-66 57-126 96-36 24-70 52-87 67-95 86-144 181-188 287-29 70-52 145-68 224 55-108 121-211 201-303 94-108 208-201 345-265 14-7 29-13 42 15 13 29-1 35-15 42-129 60-236 147-324 250-90 103-161 222-219 345-31 64-8 1-42 86 110-122 212-224 323-307 132-100 283-157 418-133 15 3 31 6 26 37s-21 28-37 26c-116-21-250 32-369 121-121 92-244 223-366 361 184 26 366-26 542-85 91-30 183-135 239-152 19-24 38-46 57-67 33-37 67-71 102-100 12-10 24-20 45 4s8 34-4 45c-33 28-65 60-96 94-32 35-62 73-92 113-6 8-13 17-24 16-60 70-151 162-172 240-57 210-25 370-122 576 71-38 128-81 175-134 53-60 94-135 128-230 37-104 95-195 167-270 75-77 165-136 261-172 15-5 30-11 41 19s-4 35-19 41c-87 32-169 86-238 157-66 68-119 151-153 247-37 102-81 183-141 250-44 50-95 91-156 127 52-3 78-10 121-7 79-6 211-66 279-119 66-51 116-120 154-206 6-15 13-29 42-16s23 27 16 42c-42 96-99 174-173 231-56 43-121 75-196 93 161-5 311-42 467-100 65-24 87-168 127-208 32-58 66-112 105-158 47-56 101-101 164-127 15-6 29-12 41 18 12 29-3 35-17 41-52 21-98 60-139 108-36 42-68 93-98 147 10 73-51 228-53 305-7 205-2 409 53 612 53-71 107-134 162-192 0-5 0-10 1-15 18-106 33-219 40-332 7-112 7-223-6-329-2-16-4-32 27-35 32-4 34 12 35 28 14 111 14 226 7 340-6 90-16 180-30 269 54-51 53-51 77-103 37-80 59-159 67-237 9-80 5-157-13-230-4-15-7-31 24-38s35 8 38 24c19 80 25 165 14 252-8 65-24 132-49 199 56-42 114-82 178-122-4-75-5-153-3-227 2-68 7-134 18-190 4-20 7-40 47-33s37 27 33 48c-9 50-14 111-16 177-2 78 0 162 4 243 5 82 49 185 125 230 103 62 158 163 186 274 16-145 17-280 3-400-17-143-55-267-114-368-8-14-16-27 12-44 27-16 35-2 43 12 63 110 104 241 122 393 17 146 13 310-13 488 102-82 381-258 352-594-7-27-16-52-28-75-7-14-14-28 14-42s35 0 42 14c17 33 30 69 39 110 5 24 8 49 11 76 13-7 45-43 51-39 24 16 58 38 80 54-21-60-35-120-42-178-10-87-5-172 14-252 4-15 7-31 38-24s27 23 24 38c-18 73-22 151-13 230 9 77 31 157 67 237 4 8 8 16 5 25 24 21 47 42 70 65-13-84-22-170-28-255-8-115-7-230 7-341 2-16 4-32 35-28s29 20 27 35c-13 106-13 217-6 329 7 113 22 225 40 332 1 2 1 5 1 7 54 59 95 120 152 196 55-203 73-407 66-612-2-76-69-227-65-302-30-55-63-107-100-151-41-49-87-87-139-108-15-6-29-12-18-41 12-29 27-24 41-18 62 26 117 71 164 127 38 45 72 98 103 154 57 7 78 179 143 212 154 57 298 94 453 100-75-19-140-50-195-93-74-57-131-135-173-231-6-15-13-29 16-42s35 2 42 16c38 86 88 156 154 206 85 66 289 124 400 127-61-37-113-78-157-128-59-67-104-148-141-250-34-95-87-179-153-247a642 642 0 00-238-157c-15-6-29-11-19-41 11-29 26-24 41-19 96 36 186 94 261 172 72 74 130 166 167 270 34 95 75 169 128 230 47 54 105 98 177 135-98-207-66-367-122-577-35-129-232-277-193-320 45-51 133 88 248 127 175 59 357 111 540 85-122-138-244-269-366-361-119-90-237-140-352-120-16 3-31 6-37-26-5-31 10-34 26-37 135-24 269 32 401 132 111 84 201 175 311 298-18-47 0-14-30-77-59-123-130-241-220-345-89-102-196-189-324-250-14-7-28-13-15-42 13-28 28-22 42-15 137 65 251 157 345 265 81 93 147 198 203 307-15-81-39-157-68-227-44-106-93-201-188-287-62-56-209-140-208-179-29-15-33-11-63-24-61-26-121-46-164-52-16-2-32-4-28-35 4-32 19-30 35-28 50 6 115 28 182 56 33 14 66 43 98 60 53 4 139 47 208 74 206 78 446 126 666 79-73-33-147-65-223-91-85-29-172-49-264-53-16-1-32-1-31-33s17-31 33-31c98 4 191 26 282 57 89 30 175 69 261 108 59 27 101-7 163-45-123-92-181-230-205-376l-2-2c-102-95-207-190-315-253-104-60-210-91-316-63-15 4-31 8-39-22-8-31 7-35 22-39 125-33 247 1 364 69 94 55 186 132 274 213 0-6-1-11-1-17-15-270-203-480-435-494-78-5-189 21-186-32 4-59 97-44 234-86 385-116 655-296 836-690-54 41-110 83-186 124-86 47-198 91-358 128-82 19-154 48-216 84-64 38-117 84-159 135-10 12-20 25-45 5s-14-32-5-45c47-57 106-108 177-150 67-39 145-70 233-91 155-36 261-78 343-122 51-27 92-55 131-84-148-4-305-3-459-3-143 44-289 96-402 160-110 63-186 136-192 223-1 16-2 32-34 29-32-2-31-18-29-34 8-111 97-200 224-273 69-39 149-74 233-105-35 0-70 0-104-1-116-2-112-66-20-101 90-34 190-141 251-216 271-334 412-714 456-1130-33 72-69 140-115 198-57 73-128 131-222 164-31 160-91 293-180 397-92 108-216 185-369 230-29 8-52-35-29-55 132-109 221-226 278-344 62-131 83-264 72-387-1-16-3-32 29-35 31-3 33 13 34 29 12 134-10 278-78 420-40 85-97 170-172 251 73-39 136-89 187-149 85-100 141-229 170-386 1-8 14-22 22-25 89-27 155-79 209-147 51-65 90-143 126-228-140 69-304 64-457 78-213 19-369 68-554 152z"/>
+        <path d="M204649 49231c-680-88-1359-113-2041-114-684 0-1369 40-2058 112-20 6-15 33-14 46 2 28 37 35 121 27 643-60 1285-93 1932-93 674 0 1351 21 2038 102 33 9 77-85 22-81z"/>
+        <path fill-rule="evenodd" d="M200570 49160c683-71 1362-110 2038-110 675 0 1349 40 2025 127l31-127c-17 9-37 15-58 15a123 123 0 11113-171l60-170c-724-84-1446-122-2171-122-729 0-1459 38-2193 107l58 164c22-32 59-54 101-54a123 123 0 110 246c-12 0-25-2-36-6l33 94-2 7zm3067-416a123 123 0 100 246 123 123 0 100-246zm0 64a59.1 59.1 0 000 118c32 0 59-27 59-59s-26-59-59-59zm-1082-91a123 123 0 10123 123c0-68-55-123-123-123zm0 64a59.1 59.1 0 10.2 118.2 59.1 59.1 0 00-.2-118.2zm-1064-40a123 123 0 10-.2 245.8 123 123 0 00.2-245.8zm0 64c-33 0-59 26-59 59s26 59 59 59a59.1 59.1 0 000-118z"/>
+      </g>
+      <path d="M202601 47974c-14-68-49-129-100-175-51-47-116-78-187-88-33-4-39-58-7-68 60-20 114-67 157-133 45-69 79-157 95-256 5-34 64-35 69-1 15 84 51 153 97 208 55 66 125 112 193 138 31 12 25 63-8 68-59 9-105 42-141 87-50 62-81 145-100 221-8 33-62 31-69-2zm33-118c20-52 47-103 81-146 28-34 60-64 99-84-51-30-100-70-143-120-28-34-53-73-73-116-19 59-45 112-75 158-31 47-67 86-108 116 50 19 95 47 134 82 34 31 63 68 85 110zm799 5115l-515 206c-17 7-35 14-48-21-14-34 4-41 21-48l515-206c17-7 35-14 48 21 14 34-4 41-21 48zm59-326l-604 328c-16 9-33 18-51-15s-1-42 15-51l604-328c16-9 33-18 51 15s1 42-15 51zm-1826-65l604 328c16 9 33 18 15 51s-34 24-51 15l-604-328c-16-9-33-18-15-51s34-24 51-15zm51 322l515 206c18 7 35 14 21 48-14 35-31 28-49 21l-515-206c-17-7-34-14-21-48 14-35 31-28 48-21zm224 434c137 33 261 48 358 31 88-16 155-60 191-146v-493c-107-1-212-15-303-41-109-31-170-98-201-178-41-107-27-235-4-329 5-18 9-36 45-27s32 27 27 45c-20 82-33 194 1 284 23 60 69 110 152 133 91 25 198 38 307 38 107 0 214-13 304-40 82-24 148-69 192-123s65-117 57-176c-5-36-24-62-49-80-34-24-82-35-128-37-47-2-94 7-142 16-25 5-50 9-77 13-19 2-37 5-42-32s14-40 32-42c23-3 48-8 73-12 52-10 105-20 159-18 60 2 121 18 168 51 42 29 72 72 80 131 11 80-16 163-73 233-53 65-131 119-229 147-83 24-178 38-274 42v483c3 5 3 11 2 16 37 82 102 125 188 141 97 18 221 2 358-31 18-5 36-9 45 27 8 37-9 41-28 45-146 35-279 51-388 32-92-17-165-58-215-132-49 74-124 115-215 132-109 20-242 4-388-32-18-4-37-8-28-45 8-36 27-32 45-27zm356 210l402-9c19 0 38-1 38 37 1 38-18 38-37 38l-402 9c-19 0-37 1-38-37s18-38 37-38zm593-3082c151-125 293-227 423-297 133-72 254-111 359-106 19 1 37 1 36 39-1 37-20 37-39 36-92-4-200 32-322 97-125 67-263 166-410 289-14 12-29 24-53-5s-9-41 5-53zm-605 56c-141-130-298-240-445-314-139-71-268-108-363-100-19 2-37 4-40-34-4-37 15-39 34-40 110-10 252 31 404 107 152 77 315 191 461 325 14 13 28 25 2 53-25 27-39 15-53 2zm-213 1004c37-83 83-155 136-219 53-63 112-119 174-170 14-12 29-24 52 5 24 29 9 41-5 53-59 48-114 101-164 160-49 59-91 125-125 201-8 17-15 34-49 19s-27-32-19-49zm371-1734c49 66 88 139 114 223 26 82 40 175 39 279 5 80 6 165-7 249-13 86-42 170-97 246-43 60-101 97-165 113-53 13-109 10-164-7 29 100 51 208 6 308-8 18-33 27-51 18-43-22-86-43-128-62s-84-36-127-51l-1-1c-95-37-173-73-236-112-65-39-115-80-150-124l1 2c-44-49-72-106-88-170-14-55-20-114-22-174-72-39-138-78-194-116-64-43-118-87-161-131-13-14-26-27 1-53s40-12 53 1c39 40 89 80 150 121 60 40 128 81 204 121 124 13 247 51 370 109 106 50 211 115 317 192 13 7 19 16 27 20 8 6 16 13 25 19 51 22 104 28 152 16 47-11 90-39 122-84 48-66 72-139 84-214 12-77 11-157 6-234v-2c1-97-12-183-35-258-24-76-58-142-102-201-11-15-22-30 7-52s41-7 52 7zm-375 1047c-104-77-207-141-311-190-105-49-210-83-314-98 2 48 8 93 18 135 13 52 35 99 71 138l1 1c30 37 73 72 130 107 60 36 134 71 225 106l-1-1c45 16 89 34 133 54 31 14 61 28 93 44 19-83-10-179-37-267-2-8-5-15-9-29zm776-1003c-44 59-79 125-102 201-24 76-36 161-35 258v2c-5 77-6 158 6 234 12 75 37 148 84 214 32 45 75 72 122 84 48 12 101 6 152-16l25-19c6-4 13-12 27-20 105-77 211-143 317-192 123-58 246-95 370-109 75-40 144-80 204-121s111-81 149-121c13-13 26-27 53-1s14 39 0 53c-43 44-97 88-161 131-57 38-122 77-194 116-2 61-8 119-22 174-16 63-44 121-88 170l1-2c-35 44-85 85-150 124-63 38-141 75-237 112l-1 1c-43 15-85 32-127 51-43 19-85 40-128 62-18 9-43 0-51-18-45-100-23-208 6-308-55 18-111 20-164 7-64-15-122-53-165-113-55-76-84-160-97-246-13-85-12-169-7-249-1-104 13-196 39-279 26-84 65-158 114-223 11-15 22-30 52-7 30 22 19 37 7 52zm940 715c-105 15-209 49-314 98-104 49-207 113-311 190-4 13-6 21-8 29-27 88-56 184-37 267 31-15 62-30 93-44 44-20 87-38 133-54l-1 1c91-35 165-70 225-106 58-34 100-70 131-107l1-1c35-39 57-86 71-138 11-42 16-87 19-135z"/>
+      <path fill-rule="evenodd" d="M203459 50602a216.4 216.4 0 000 433 216.6 216.6 0 000-433zm0 69c-81 0-147 66-147 147s66 147 147 147 147-66 147-147-66-147-147-147zm0 60a87 87 0 10.1 174.1 87 87 0 00-.1-174.1zm-1697-124c119 0 217 97 217 216s-97 217-217 217a216.6 216.6 0 010-433zm0 69c81 0 147 66 147 147s-66 147-147 147-147-66-147-147 66-147 147-147zm0 60a87 87 0 11-.1 174.1 87 87 0 01.1-174.1z"/>
+    </g>
+    <use width="100%" height="100%" transform="rotate(-2.2 -55532.8 156275.8)" xlink:href="#a"/>
+    <use width="100%" height="100%" transform="rotate(2.2 459865.8 156275.8)" xlink:href="#a"/>
+  </g>
+  <path fill="#171796" d="M328.1 101.3L307.6 78l-27 15.4-4.5 54.6a234.6 234.6 0 0138.5 6.4l13.5-53z"/>
+  <path d="M286 104.7c.9-.3 1.8-.3 2.7.2.4.2.7.4.9.7l1.2-1a7 7 0 012-1 8 8 0 012.9-.9 13.4 13.4 0 013-.1c.9 0 1.7.3 2.5.7l2.1 1.1 2.3 1.1a9.8 9.8 0 004.8.4c.5 0 .7.2.2.5-3.5 2.2-6.3.2-8.6-.6a17.2 17.2 0 012.2 1.8c1 .9 2 1.7 3.7 2.5a8.9 8.9 0 003.8 1 9.4 9.4 0 001.7-.2c.3 0 .4 0 .4.2 0 0 0 .3-.2.4a5 5 0 01-2.7.8c-1.9.1-3.8-.5-5.6-1.4-1.4-.8-2.4-1.7-3.5-2.6a8 8 0 00-3.2-1.5 6.3 6.3 0 00-3.1.1c.3 0 .5.2.6.4.5.3 1.2.4 2 .5.5 0 .4.4-.3.8-.5.5-1 .8-1.8.8-1 .7-1.4.2-1.8-.2a3.1 3.1 0 01-.2.8.6.6 0 010 .5l.2.8a.7.7 0 00.2.4l.4.7c0 .2 0 .3.2.5l.7.6c.6.2.9.7 1 1.3.5.1.7.5.8.9.2.1.5.2.6.5h2.8c.9.2 1.5.7 2.1 1.4h1.3c.4-.2.9-.4 1.4-.4a7.8 7.8 0 012.5 0l1.3.8c.5.6 1.2.5 1.9.3a2.9 2.9 0 012.5 0c.4-.2.8-.2 1.2-.2.3-.4.6-.4 1-.5.6 0 1 .1 1 .9-.1.2-.2.4-.4.4-.3.6-.8.8-1.4.7l-.5 1c.3.9 0 1.2-.7 1.2-.2.3-.4.5-.7.4a1.5 1.5 0 01-1 .6l.3.6c.5.7-.2 1-.8 1 .1.5.2 1 .1 1.4.7.4.7.8.1 1.2.5.8.3 1.4-.5 1.8 0 .4 0 .8-.4 1-.2.3-.4.3-.3.6.4.6.3 1.3-.2 1.3l-.2.1c0 .1 0 .2-.2.2l-1.6 1.1h-.3c-.3.9-1 1.7-1.8 2.5a1.6 1.6 0 01-1 1.3c0 .2-.2.3-.4.3.3.4.5.7.2 1a3 3 0 01-1.4 1c-1.1.3-1.8.2-2.2-.2-.4-.3-.2-.6 0-.7-.7 0-.8-.3-.8-.8 0-.2.1-.2.4-.2l1-.3a2 2 0 01.5-.6c.1-.7.6-1.1 1.2-1.4.6-.2 1-.7 1.5-1.3l1-1.5a1.3 1.3 0 01-.3-.9 1.6 1.6 0 01-.6-.5c-.5 0-.7-.2-.8-.5a1.1 1.1 0 01-.3 0l-.7.2a7.4 7.4 0 01-1.2 1c-.2.3-.4.5-.8.5-1 .2-1.5 1.3-2 1.8l-.5.8c0 .6-.1 1.1-.5 1.1h-.3a1.3 1.3 0 00-.4 0c.2.3.3.6 0 1-.2.2-.5.3-.9.4a3.8 3.8 0 01-1.7-.3c-.5-.2-.6-.5-.5-.7-.4-.2-.5-.4-.4-.5 0-.2.2-.4.5-.3l.6-.2a5.6 5.6 0 012-1.5 3.2 3.2 0 01.7-.7c0-.6.4-1 1-1.5a2.2 2.2 0 01.2-.6v-.3c-.2-.4-.3-.8-.2-1.2a1.4 1.4 0 010-.6c-1.2.7-1.5.5-1.7 0-.4.3-.8.4-1 0-.5 0-.9.2-1.3 0a3 3 0 01-.8.3 3.3 3.3 0 01-.6.7 3 3 0 01-.5 1.5 9.8 9.8 0 01-.7 1.7l-.1.5c0 .7-.2 1-.5 1.1a2.6 2.6 0 01-.5.8v.2c.2.4.2.8-.2 1.2a9 9 0 01-1 .5c-.3.2-.7.1-1 0-.6-.2-.5-.4-.5-.6a.7.7 0 01-.5 0l-.4-.3c-.1-.2-.1-.4.2-.5l.9-.6c0-.2.2-.4.4-.5.2-.4.4-.7.7-.7l.7-1.6c.1-.2.2-.3.1-.5l.1-.3c.1 0 .2-.1 0-.2a1.4 1.4 0 01.3-1.2c.3-.5.6-1.6.3-2.1a3 3 0 01-.1-1h-.3c-.3-.2-.5 0-.6.3l-.4.6c-.2.9-.6 1.5-1 1.7a3 3 0 00-.2 1.2c0 .5 0 .8-.2.8s-.4.2-.5.6l-.1.3c.3.3.2.7 0 1-.8.7-1.6.6-2.5.3-.6-.2-.8-.5-.7-.7-.9-.1-.7-.8 0-1a3.7 3.7 0 002-1.5c0-.9.3-1.5.7-1.5 0-.6.3-1 .5-1.5.2-.4.4-.9.3-1.4-.5-.3-.5-.7 0-1l-.1-.3c-.3 0-.3-.3-.3-.6 0-.1 0-.2-.2-.2-.7 0-.5-.4-.2-.7.1-.1.2-.3 0-.4l-.1-.5c-.5-.3-.3-.6 0-1-.3-.1-.4-.4-.4-.7-.8 0-1-.5-.7-1l.7-.7c.2-.3.4-.6.3-.9-.2-.5.5-1 1-1.4a1 1 0 010-.4c-.4-.3-.3-.7 0-1a1.1 1.1 0 010-.4c-1 .2-1-.3-.5-1.1-.5-.3-.4-.8.5-1.6l.1-.4a2 2 0 00-1 .4c-.4.2-.7.1-1 0a1.6 1.6 0 00-.5-.4.7.7 0 01-.2-.7c-1 0-1.2-.7-.6-1.1l.6-.9c.3-.6.9-1.1 1.4-1.6a2 2 0 01.1-.6l-.8-.3c0-.2-.2-.5-.6-.6-.2-.2-.2-.3-.1-.5-.5-.5-.4-.8-.3-1z"/>
+  <g fill="#f7db17">
+    <path d="M304 130.2h-.3a9 9 0 01-.8.8c-.2-.3-.6 0-.2.1l-.2.2c-.1.3-.3.4-.6.5a1.8 1.8 0 00-.2 0 3.1 3.1 0 010-.4l.1-.4v-.1a4.6 4.6 0 00-.2 1c-.8.2-1.3 1.1-2 1.7l-.4.9c0 .2 0 1-.3 1h-.2c-.1-.2-.2-.2-.4 0a6 6 0 00-1 0c-.3.2.3.1.6.3.2.1.2.3.2.5-.3.7-2 .5-2.5.2-.3-.1-.3-.3-.3-.5h.4c.2 0 .4 0 .6-.2v-.2c0-.2-.1 0-.2 0l-.5.1h-.5c-.1 0-.2 0-.1-.1h.2l.7-.3a5.7 5.7 0 012-1.5l.8-.7c.1-.7.5-1 1-1.5 0-.3.1-.5.3-.8v-.4c-.2-.4-.3-.7-.2-1v-.9a.4.4 0 000-.1 6.6 6.6 0 01.9-.6v.8a1 1 0 00-.2.3.6.6 0 000 .3.5.5 0 010-.2 1.3 1.3 0 01.3-.3c.3 0 .5-.1.8-.4l.7-.7v1.2a2.5 2.5 0 00-.6.7v.1h.1l.5-.7h.1l.1-.2.9-.4v1a1.6 1.6 0 00.5.9z"/>
+    <path d="M287.4 120.6l.2-.2.4-.6a4.3 4.3 0 01.5-.7h.1c.1 0 0 .1 0 .1a4.2 4.2 0 00-.5.6 6.2 6.2 0 00-.4.6v.2c0 .4.1.6.3.8l.3-.5.5-.4a2 2 0 00.3-.3 1.5 1.5 0 00.2-.3h.1a1.7 1.7 0 01-.2.4 2.1 2.1 0 01-.4.3l-.4.4a1.3 1.3 0 00-.3.3c.1.1.2.3 0 .4-.1.3-.4.5 0 .8a.7.7 0 00.2.5c.1.1.1.5-.1.7-.3.3 0 .2.1.2h.1a2.7 2.7 0 01.3-.4l.3-.4.4-.5.2-.6h.1c0 .2 0 .4-.2.6a2.3 2.3 0 01-.4.6l-.3.4a2.8 2.8 0 00-.3.4c.3.2.2.5.2.8h.2a23.9 23.9 0 00.2-.3l.2-.4h.1l-.2.5-.2.2c.2.2.2.5 0 .7-.5.3-.3.4 0 .6v1.7-.4l-.1.1c-.3.7-.6 1.2-.7 1.9-.7.1-.6.8-.6 1.4a4.2 4.2 0 01-2 1.6c-.2 0-.6.1-.6.3 0 .1.3.3.4.2.5-.5.7-.2.2.2v.3c.6.4 1.8.6 2.4.2.4-.2.6-.5.2-.9 0-.6.3-1 .8-1.3.1 0 .1-.3 0-.4 0-.5 0-1 .2-1.4l.2-.2c.2 0 .6-.6.7-1.3l.1-.4c0-.2.1-.2.3-.1l.1-.4c.2-.3.6-.6 1-.4a3.2 3.2 0 01-.2-.9l.1-1 .1-.2.3-.8.4-.8c.1 0 0 0 0 .1l-.3.8-.3.8v.1a3 3 0 00.2 2v.1c.2.1.2.1.2.4v.6c.4.6 0 1.8-.3 2.3-.2.3-.2.6-.2 1 .2.1.1.3 0 .5-.1 0 0 .1 0 .1a.9.9 0 01-.3.6l-.7 1.7c-.5.1-.5.4-.7.8-.3 0-.3.1-.4.3a2.9 2.9 0 01-1 .7c-.2.1 0 .2.3.4.2.1.4-.2.6-.4.2-.3.3-.2.2 0a2.1 2.1 0 00-.2.7c0 .2.6.3.7.3.5 0 1-.4 1.3-.6.3-.2.3-.5.1-.8a2.1 2.1 0 01-.5 0 3.7 3.7 0 01-.6-.3c0-.1 0-.1 0 0l.7.1h.5v-.2l.5-.9c.4-.2.4-.4.4-1a1 1 0 00.1-.5c.3-.5.6-1 .8-1.7.3-.5.5-1 .5-1.5 0-.3 0-.4.3-.4 0-.2.2-.3.3-.5a1.8 1.8 0 01.2-.4.8.8 0 01.1-.2 1 1 0 000-.5 1.2 1.2 0 000-.5.5.5 0 01-.2-.2v-.2h.1v.2l.1.1.2.6v.5a.8.8 0 00-.2.2l-.1.4c.2 0 .4 0 .7-.2l.4-.5.2-.6h.1a2.2 2.2 0 01-.2.7l-.3.4c.4 0 .7 0 1.1-.2v-1.2l.4-.8c.1 0 0 0 0 0l-.2.8v1.2c.1.3.2.5.5.3l.4-.3v-.1a13.8 13.8 0 012-1.6 9.1 9.1 0 00-1.7 1.5v.3c0 .4 0 .6.6.4l.6-.3c.2 0 .3-.2.3-.2a9.9 9.9 0 011-.7l.2-.6.8-1.3a2.6 2.6 0 00.7-.6l.5-.7c.1 0 0 0 0 0a2.6 2.6 0 01-.4.8l-.7.6a4.3 4.3 0 00-.9 1.8v1l.7-.4.8-.7c0-.3.2-.5.3-.6a1 1 0 01.4-.4v.2a1 1 0 00-.4.3 2 2 0 00-.2.5v1.2a3.6 3.6 0 011-.6h.1v1.1c0 .3.2.6.4.8a3 3 0 01.5-.6 4.3 4.3 0 01.4-.3l.2-.2.2-.3h.1v.1l-.2.2-.3.3a3.3 3.3 0 00-.3.2v.5h.7c0 .5 0 .6.5.6a3.5 3.5 0 010-.5 2.1 2.1 0 01.1-.5h.1v.5a3.3 3.3 0 000 .5c.1.4.3.5.6.7a1.8 1.8 0 00.2-.5l.1-.5h.1a1.5 1.5 0 010 .5 2 2 0 01-.3.6v.5l.2-.3a1.8 1.8 0 01.3-.4h.1c.1 0 0 0 0 0a1.9 1.9 0 00-.3.4 4.7 4.7 0 00-.2.4l.2.2c-.7 1.1-1.4 2.7-2.6 3.2-.7.2-1 .6-1.1 1.3a2.3 2.3 0 00-.6.6c-.4.2-.8.4-1.3.4 0 .3.1.4.4.4l.8-.3s-.1.5-.6.8v.2c.4.6 1.4.4 2 .2.4 0 1.1-.6 1.3-1 .1-.2 0-.4-.2-.6-.8.1-.7-.6 0-.3.2 0 .3 0 .3-.4.7-.2 1-.5 1-1.1a11.6 11.6 0 001.8-2.2c0-.1.2-.4.1-.6l.2-.4.1-.5h.1a1.9 1.9 0 010 .5 4.1 4.1 0 01-.2.4c0 .1 0 .2.2.2.5-.5 1-.8 1.6-1.1 0-.3.2-.4.5-.4l.1-.1c.2-.4 0-.6-.2-.9-.1-.4.2-.5.4-.7.3-.2.3-.8.3-1.1v-.2a2.8 2.8 0 00-.1-.3c0-.1 0 0 0 0l.2.3v.1c.3-.1.6-.3.7-.6l-.3-.9a10.2 10.2 0 01-.6.3v-.1a11 11 0 00.7-.4l.3-.2c.2-.3-.3-.6-.5-.7l-.8-.7v-.1c0-.1 0 0 .1 0l.7.7v-1.3l-.2-.4a1.2 1.2 0 01-.5-.4 1.1 1.1 0 01-.2-.5h.1a1 1 0 00.2.5l.4.3c.3.2.7.1 1 0 .4-.2-.1-.7-.2-1l-.2-.5h.1a1 1 0 00-.1-.2.6.6 0 00-.2 0v-.1a.8.8 0 01.2 0l.2.3a1.6 1.6 0 00.1 0c.4-.1.6-.3.8-.6a3.8 3.8 0 00-.4-.4l-.4-.4.5.3a4.5 4.5 0 01.5.5c.3 0 .4 0 .5-.3a1.6 1.6 0 00-.2-.5 2.7 2.7 0 00-.3-.4c.2 0 .3.2.4.4l.2.4h.5c.3-.2 0-.8 0-1a3 3 0 00-.2-.2h-.2v-.2h.1l.2.1.2.1.4-.6c0-.4.1-.2.5-.3.5 0 .7-.1 1-.7.2 0 .2 0 .3-.3 0-.3 0-.5-.4-.5-.5 0-.8 0-1.1.4v.2c.1 0 .1 0 0 .1l-.1-.2a2.6 2.6 0 00-1.3.2 2.1 2.1 0 00-.1 0l.2.3.1.4v.1h-.1a1.1 1.1 0 00-.1-.5 2 2 0 00-.3-.4 2.8 2.8 0 00-1-.2l.1.1.2.2v.1c0 .1 0 0 0 0a8.7 8.7 0 01-.3-.2 14.6 14.6 0 01-.2-.2 3 3 0 00-.9.2 3 3 0 01-.6.2l.4.5.2.6v.1h-.1a2.3 2.3 0 00-.2-.6 2 2 0 00-.4-.5 1.9 1.9 0 01-.6 0l.2.3-.3-.4a1.5 1.5 0 01-.5-.2 8.7 8.7 0 01.2 1.6h-.1a8.4 8.4 0 000-1 5 5 0 00-.2-.7 1.8 1.8 0 01-.3-.2 2.2 2.2 0 00-.6-.5 1 1 0 01-.2.8c-.1 0 0 0 0 0a.9.9 0 00.1-.8 3.3 3.3 0 00-1.1-.3 7 7 0 01.6 1 .9.9 0 01.3.4v.5a2.2 2.2 0 00-.1-.5.8.8 0 00-.3-.4 6.3 6.3 0 00-.3-.5 5 5 0 00-.4-.5 5.3 5.3 0 00-.4 0h.1l.1.3h-.1a.5.5 0 000-.2.7.7 0 00-.2-.1h-.8a5.5 5.5 0 011 2.4v.1a5.2 5.2 0 00-.5-1.3 5.5 5.5 0 00-.7-1.2 3.7 3.7 0 00-.7.2 2.1 2.1 0 01.5.4 1.7 1.7 0 00-.3-.2 2.6 2.6 0 00-.3-.2 5.1 5.1 0 00-.3.1h-.2a4.9 4.9 0 011.1 1.2c0 .1 0 0 0 0a4 4 0 00-.6-.6 5 5 0 00-.6-.5 2.7 2.7 0 01-.7 0 5.1 5.1 0 01.5 1.9 3.8 3.8 0 00-.3-1 7 7 0 00-.4-.8 3 3 0 01-.4 0 10 10 0 01.4 1.7h-.1l-.2-1a9.9 9.9 0 00-.2-.8 4 4 0 00-1.4-1.1 1.8 1.8 0 01.4 1.2h-.1a1.7 1.7 0 00-.1-.7 1.8 1.8 0 00-.4-.6 2 2 0 00-.4 0 16.7 16.7 0 00-1-.1c.2.2.4.4.4.7h-.1c0-.2-.2-.5-.5-.7h-.7l.3.3.3.5c0 .2 0 .5.2.6 0 .2.2.4.4.5 0 .1 0 0 0 0a1.2 1.2 0 01-.5-.4 1.6 1.6 0 01-.3-.7 1.3 1.3 0 00-.2-.4 2.8 2.8 0 00-.3-.5h-.7l.2 1v1a7.6 7.6 0 00-.1-1 5 5 0 00-.3-1 1 1 0 00-.5-.4.6.6 0 01-.2.3.5.5 0 000-.4c-.2-.5-.3-.7-.7-.9v.5c0 .1 0 .3-.2.5-.1 0-.1 0 0 0a1.3 1.3 0 000-.6 2.5 2.5 0 00.1-.4c-.2-.7-.3-1-1-1.3a1.9 1.9 0 010 .2v.5h-.1v-.5a2 2 0 000-.4l-.5-.5a2.5 2.5 0 01-.1.8l-.4.9h-.1a3.3 3.3 0 00.4-1v-.8a1.1 1.1 0 01-.1-.3l-.1.3h-.1v-.3l.1-.1v-.1a.8.8 0 00-.3-.5 1.6 1.6 0 01-.3.5 1.5 1.5 0 00.2-.6 1 1 0 01-.1-.3.8.8 0 01-.1.2 1.2 1.2 0 01-.3.2l.2-.3a.7.7 0 000-.1c.1-.1.1 0 0-.2.1-.3 0-.5-.1-.8a1 1 0 00-.4 0l-.5.4v-.1c.2-.2.3-.3.5-.3a1 1 0 01.4-.1.4.4 0 000-.3 4 4 0 01-1.2.3 1.8 1.8 0 01-.8 0v-.2l.8.1c.3 0 .7 0 1.2-.3l.2-.6a1.8 1.8 0 01-.5 0h-.1l.6-.1v-.2c0-.2.3-.3.5 0 .2 0 .3.2.5.3.3.2.6 0 .9-.2h-.3v-.1h.4c.6 0 1 0 1.5-.5a7.4 7.4 0 01-1 0l-.7-.2v-.1l.7.2a7.5 7.5 0 001 0l.2-.1.4-.3a5.7 5.7 0 01-2-.6l-.8-.4a2.4 2.4 0 00-1.4.3l-.3-.3-.5-.1h-.7v-.1h.7l.6.1a4.8 4.8 0 011.9-.4 6 6 0 011.8-.2v-.2c.3-.3.4-.6.3-1-.1-.2-.4-.5-.8-.7h-1.4l-.9.1c.3.1.5.3.6.5.3.2.4.6.5 1v.1h-.2c0-.5-.2-.8-.4-1-.2-.3-.7-.4-.8-.5a9 9 0 00-1.4.3c-.3 0-.6.1-.8.3l1 .1c.2.1.4.4.6.8v.1c0 .1-.2 0-.2 0-.1-.4-.3-.6-.5-.7-.5-.2-1.4 0-1.8.2a4.5 4.5 0 00-.6.7h-.2c-.1-.1 0-.2 0-.2l.7-.7a2 2 0 01.7-.3 2.1 2.1 0 011-.6l1.5-.2-.6-.6h-.7a6 6 0 00-1.7.8h.6v.2c0 .1-.3 0-.4 0h-.5s0 .1 0 0l-1.6 1.3c-.6 0-.9 0-1 .2-.2.1-.2.3-.2.6l-.2.8c-.5.5-1.1 1-1.4 1.6l-.3.6h.3a.4.4 0 010 .1 2.5 2.5 0 010-.3l.3-.4-.1.4a2.6 2.6 0 000 .6h-.2a.3.3 0 00-.1-.3.6.6 0 00-.3 0 3.4 3.4 0 01-.4.3l-.2.3c0 .3.3.3.6.3.6 0 .1.4.5.7l.4.5h.6c0-.5 0-.7.2-.7a.8.8 0 01.2-.4c.1 0 0 0 0 0a.9.9 0 000 .3.8.8 0 00-.1.2v.4l1-.3c.8-.8 1-.6.5 0l-.1.2a1.5 1.5 0 00-.2.7c-.2.1-1 .8-.8 1.1.3 0 .4 0 .3.2 0 .2-.4.7-.3 1h.3a6.4 6.4 0 00.8-.7l.6-.8v-.1a9.7 9.7 0 01.3-.8l.3-.8h.1l.3.3a.4.4 0 00.2.1h.3l.3-.3s0-.1 0 0c.1 0 0 0 0 0a1.2 1.2 0 01-.2.3.5.5 0 01-.4.1.5.5 0 01-.3 0 1.2 1.2 0 01-.2-.3l-.3.7a10 10 0 00-.2.7v.2a4.4 4.4 0 01-.7.9l-.6.5.2.6 1-1a6.4 6.4 0 00.9-1.1 6 6 0 01-.3.6l-.1.4v.8a4.5 4.5 0 01-.1-.8v-.2a10.1 10.1 0 01-1.3 1.4c-.4.3-.6.4-.3.7l.4-.3.4-.3h.1v.1l-.4.3-.4.3a.7.7 0 00.1.4l1-.6-.8.6a.8.8 0 01-.1.2c-.3.2-1.3.8-1.2 1.2.3 0 .5-.2.7-.3.2 0 .5-.3.7-.5.1 0 0 0 0 .1a2.7 2.7 0 01-.6.5v.3h-.2v-.2l-.5.2c0 .4-.2.7-.4 1 0 .2-1 1-.7 1.2h.4z"/>
+    <path d="M287.9 106.9c-.2-.1-.5-.3-.8-.3a1.5 1.5 0 00-.5-.6c-.2-.1-.2-.1-.1-.3l.3-.1h.3l.2.2c.1 0 0 0 0 0a.6.6 0 00-.2-.3 1.1 1.1 0 00-.4 0 .8.8 0 00-.4 0l-.2-.6.4.1a.6.6 0 01.2.2.8.8 0 00-.2-.3 1.9 1.9 0 00-.2 0 3 3 0 012.3.3c.4.1.6.3.8.6l-.2.2c-.5 0-.9 0-1.1.2-.2.1-.2.4-.3.7z"/>
+  </g>
+  <path d="M304.4 130l-.4.2.4-.6v.4zm2.1 4.5l-.4.4a4.3 4.3 0 01-.5.4l.5-.5.3-.4h.1zm1.4-1.7l-.2.3c-.1 0-.1 0 0 0l.1-.3h.1zm-.7 0a1.1 1.1 0 01-.7.7l.4-.4.2-.4zm1.3-1.7a1 1 0 00-.1.2l-.1.2h-.1a1.2 1.2 0 01.2-.5h.1c.1 0 0 0 0 0zm1.1 0l-.1.5-.2.5h-.1c-.1 0 0 0 0 0l.2-.5.1-.5h.1zm-.5-6.4c.4.5.4 1 .5 1.5l.1-.5a1.5 1.5 0 00.3-1.3h.1v.7a1.8 1.8 0 01-.3.6 14.1 14.1 0 00-.2 1v.1h-.2v-.1c0-.7 0-1.3-.4-2h.1zm-.8 1v.3h-.1v-.2s0-.1 0 0zm-.2 1.5a6.3 6.3 0 01.2 1.5 1.3 1.3 0 01.4-.4h.1v.1a1.1 1.1 0 00-.3.3.8.8 0 00-.2.3l-.2-.9a6.3 6.3 0 00-.2-.8c.1-.1.1 0 .2 0zm1.1.6a3.8 3.8 0 010 1.2v-.6a3.9 3.9 0 000-.6s-.1 0 0 0zm1-.2v1.2a1.3 1.3 0 000 .6l.1.6c0 .1 0 0 0 0a2.7 2.7 0 01-.3-.6 1.4 1.4 0 010-.7 1.4 1.4 0 00.2-.5 2.3 2.3 0 000-.6zm.5-1.7v.3l-.1.3s0 .1-.1 0v-.3l.1-.3h.1zm-.5-2.8l.1.3c0 .1 0 0-.1 0v-.2s-.1 0 0-.1zm.3-2v.8a.8.8 0 00-.3.4 1.5 1.5 0 000 .6h-.1a1.5 1.5 0 010-.7 1 1 0 01.3-.4v-.8zm-2.1-.8l.8.7c.2.3.3.6.3 1h-.1l-.6-.2c.2.8.1 1.4 0 2a1.7 1.7 0 01-1 1l-.1-.1a4 4 0 00.1-1.8h.1v1a4.1 4.1 0 010 .7c.3-.2.6-.5.8-1 .1-.4.2-1 0-1.9l.7.2a1.5 1.5 0 00-.3-.8 2.7 2.7 0 00-.8-.7v-.1zm5.5-1l-.1.1h-.1v-.2h.1zm-1.3-.1a.8.8 0 01.2.2l.2.2c0 .1 0 0 0 0a.8.8 0 00-.2-.2.6.6 0 00-.3-.1v-.1zm-2 .5l.3.6v.6s0 .1 0 0a1.9 1.9 0 000-.6 1.1 1.1 0 00-.3-.5zm-6.4.7v.2a7 7 0 000 .2h-.1v-.5h.1zm1.2-.7v.3l.1.1v.1l-.1-.1a14.5 14.5 0 00-.1-.3v-.1zm2.5 1.7v.1a1 1 0 010 .2h-.1a.9.9 0 000-.2v-.2zm.8-1.9a.4.4 0 01.1.2.3.3 0 010 .2h-.1v-.1a.1.1 0 000-.1.3.3 0 000-.1c-.1 0-.1 0 0-.1zm-5.9.3l.1.4.2.3.2.5v.4a2.2 2.2 0 000-.4 1 1 0 00-.3-.4 1.1 1.1 0 01-.2-.4 1.2 1.2 0 010-.4zm2.4 1.6a2 2 0 01.2.7v.8c0 .3 0 .6.2.8.1.3.4.5.7.7a3 3 0 01-.2-1 1.8 1.8 0 01.4-1 1.5 1.5 0 00.3-.4v-.5h.1v.5a1.6 1.6 0 01-.3.5 1.7 1.7 0 00-.3 1l.1 1v.1a2.8 2.8 0 01-1-.8 1.3 1.3 0 01-.1-1v-.7a2 2 0 00-.2-.7h.1zm-1 1.5l-.1.8a4 4 0 01-.5.6 3.2 3.2 0 00.3-.1 2.4 2.4 0 00.7-.6l.4-.3a3.8 3.8 0 01-.3.4 2.6 2.6 0 01-.3.3 26.1 26.1 0 01.1.3v.1h-.1v-.4a2.5 2.5 0 01-.5.3l-.4.1s-.1 0 0 0a3.9 3.9 0 00.5-.8l.1-.7h.1zm-1.1-.1v.2h-.1v-.2z"/>
+  <path d="M302.4 121.3c.1.4.2.8.1 1 0 .4-.2.7-.4 1a2 2 0 00-.6.7 2.8 2.8 0 00-.1.5l.2-.2c0-.1.2-.3.5-.3a5 5 0 001.2-1h.1l-.6.6a5.1 5.1 0 01-.7.5 1.1 1.1 0 00-.5.3l-.3.4h-.1l.2-.9.6-.7.4-.8-.1-1c0-.1 0 0 0 0zm2.3 3.8l.2.4.1.2c.2.2.3.5.3.8l-.1 1h-.1a2 2 0 00-.4-1 3.7 3.7 0 00-.9-.7l1 .7.3.7v-.7a1.4 1.4 0 00-.2-.8 3.6 3.6 0 000-.1c-.3-.2-.3-.3-.3-.5h.1zm1 0l.2.1v.1c.1 0 .1 0 0 .1l-.1-.1-.1-.2zm1.3.4l-.3.7-.2.7s0 .1 0 0h-.1l.2-.7.3-.8zm.7 4.1a.3.3 0 000 .2h-.1a.4.4 0 010-.2zm-.8-1.2v.4l-.2.4v-.5l.1-.3h.1zm-1 0c0 .1.1.1 0 .2l-.1-.1v-.1zm-1.3-.6a5.7 5.7 0 01-.1.4h-.1a5.7 5.7 0 01.1-.4s0-.1.1 0zm-1.8 1.9a.7.7 0 00-.1.2 1.3 1.3 0 000 .3h-.1v-.3a.8.8 0 01.2-.3zm-5 5a.7.7 0 01-.1.1 1.3 1.3 0 01-.2.2h-.1v-.1a.9.9 0 00.3-.3zm.8-.5a.4.4 0 01-.1.2.7.7 0 01-.2 0s0 .1 0 0c-.1 0 0 0 0 0a.5.5 0 000-.1.3.3 0 00.2-.1zm1-.6a.6.6 0 01-.2.2v-.1a.4.4 0 00.1-.2h.1zm1.6-4.1v.4c-.1.1 0 .3 0 .4l-.1.1a1.5 1.5 0 01-.1-.5l.1-.5h.1zm1-11a1 1 0 010 .3l-.3.4v-.1l.2-.3a.8.8 0 000-.4h.1zm-1-1l.2.5v.5h-.1a1.9 1.9 0 000-.5 1.6 1.6 0 00-.2-.5zm-1.5 1.8a1.6 1.6 0 01-.4-.5.7.7 0 01-.1-.4c.1 0 .1 0 0 0a.6.6 0 00.2.4l.4.4c0 .1 0 .1 0 0zm1.6 2.7v.3-.3zm-2-2c.3.2.5.6.6 1v.8h.1c.1 0 .3-.1.3-.4a2.9 2.9 0 00.2-.9l.2-.6.1-.6h.1l.5.9.3 1h-.1a3.1 3.1 0 00-.3-1 4.1 4.1 0 00-.4-.7 3.1 3.1 0 010 .5 2 2 0 01-.3.5c0 .4 0 .8-.2 1 0 .2-.2.4-.3.4h-.1v.5h-.1l-.1-1.3a2.1 2.1 0 00-.6-1v-.2zm1.2 5.1v.5l-.2.4v-.9h.1zm-2.4 1l.1.4h-.1v-.4zm2-2.6l-.1.6a2.4 2.4 0 01-.4.6 1 1 0 00-.3.7v.7a2 2 0 01-.1-.8c0-.2.1-.5.3-.7a2.2 2.2 0 00.6-1.2zm-.5-.8v.6a3 3 0 01-.5.6 2 2 0 00-.4.5 4.4 4.4 0 00-.3.6l.2-.6.5-.6a2.2 2.2 0 00.4-.5 1 1 0 000-.6h.1zm-2.5 1.2c0 .4 0 .8-.2 1-.1.4-.4.7-.7 1-.1-.1-.1-.1 0-.2.2-.2.5-.5.6-.8.2-.3.2-.6.2-1zm-3.3 1.8v.2l.2.2c-.1.1-.1 0-.1 0l-.1-.1-.1-.2v-.1zm-1.3 0v.8c0 .3.2.4.4.7a2.3 2.3 0 01.2.9l.4-.6.1-.6h.1a1.7 1.7 0 01-.1.7l-.5.6h-.1a3.5 3.5 0 000-.5 2 2 0 00-.2-.5 2 2 0 01-.3-.7 2.9 2.9 0 01-.1-.8zm.2 4.5a2.8 2.8 0 01.1-.8h.1a2.7 2.7 0 00-.1.8h-.1zm-.2 1.2v-.5h.1v.5h-.1zm-.9 2.1l.3-.3a4.6 4.6 0 00.2-.3h.1a4.1 4.1 0 01-.2.4 2.1 2.1 0 01-.3.3v-.1zm-1.2-7v.2-.2zm-2 4.8v-.3.3zm5.2-8.5a4 4 0 00-.2 1c0 .4 0 .7.3.8.3.2.4.4.5.7l.1-.4a1.7 1.7 0 000-.4c0-.1.1 0 .1 0a2.7 2.7 0 01-.1 1h-.1a6.3 6.3 0 01-.1-.2c-.1-.2-.2-.5-.5-.6-.2-.2-.3-.5-.3-.8 0-.4 0-.8.2-1.1zm-.4-1.4v.8a4.3 4.3 0 01-.3.8 2.6 2.6 0 00-.2 1c0 .4.2.8.3 1.1v.1a2.7 2.7 0 01-.2-2.2l.3-.8v-.8h.1zm-2.4 3.5a.8.8 0 000 .5l.1.5a1.6 1.6 0 01-.3-.5 1 1 0 010-.6h.1c.1 0 0 0 0 0zm-1-.4a1.2 1.2 0 01-.2.6.4.4 0 000 .3l.1.3a1 1 0 01-.2-.3.5.5 0 010-.4.8.8 0 00.1-.2 1.2 1.2 0 000-.3h.1zm6.1-9.2a2.5 2.5 0 00.3 1.6l-.4-.8a2.5 2.5 0 010-.8h.1zm-.8.7a4.1 4.1 0 01.6 1.9h-.1a4 4 0 00-.6-1.8h.1zm-3.8.2c-.4.5-.6 1-.6 1.3 0 .4 0 .7.2 1a2.5 2.5 0 010 1.7h-.1l.2-.9a2.4 2.4 0 00-.2-.8l-.2-1c0-.4.2-.8.6-1.4.1 0 .1 0 0 0zm3.6-1.6a.8.8 0 010 .5l-.4.5a.9.9 0 00-.4.5v.7c-.1-.3-.1-.5 0-.8a1 1 0 01.3-.5l.3-.4a.7.7 0 000-.4l.1-.1zm-3.8.4v.7a1.7 1.7 0 01-.4.6c-.2.2-.4.4-.4.7a3 3 0 00-.2.8v-.9a1.4 1.4 0 01.5-.6l.4-.7a1 1 0 000-.6zm2.1 0a.8.8 0 000 .3.6.6 0 00.1.3.7.7 0 01-.2-.2.9.9 0 010-.3h.1zm0-.5a1 1 0 00-.5.4 2 2 0 00-.2.8l.2.6.1.7h-.1a2.6 2.6 0 000-.7 1.3 1.3 0 00-.3-.5c-.4.4-.6.8-.6 1.3a2.8 2.8 0 00.5 1.6 3 3 0 01-.6-1.6c0-.5.2-1 .7-1.4 0-.3 0-.6.2-.8a1 1 0 01.5-.5v.1zm-.7-.8v.1c0 .3 0 .6-.2.8a.9.9 0 00-.3.3v.4h-.1a1.8 1.8 0 010-.4 1 1 0 01.3-.4l.2-.7v-.1h.1zm6 6.5a2.1 2.1 0 01.3.8h-.1a1.5 1.5 0 000-.4 2 2 0 00-.2-.4zm0 2v.6a2.4 2.4 0 01-.2.7l-.2.6h-.1l.2-.6c.2-.2.2-.5.3-.7a1.7 1.7 0 000-.6v-.1zm-1.2-2a2.7 2.7 0 01.7 2.8h-.1a2.6 2.6 0 00-.7-2.6v-.1h.1zm0 2.3a5.7 5.7 0 01-1 1.4 2.7 2.7 0 00-.6 1 1.5 1.5 0 00-.2-.5 2 2 0 00-.2-.5c-.2-.3-.3-.6-.2-.9 0-.3 0-.6.3-.9a2.8 2.8 0 00.3-.6v-.6h.1a2.8 2.8 0 01-.3 1.3l-.3.8c0 .3 0 .6.2.9a2.2 2.2 0 01.3.7 2.8 2.8 0 01.5-.7 5.4 5.4 0 001-1.4zm-3.4-1a3 3 0 000 .7l.4.7c-.1.1-.1 0-.1 0a2.4 2.4 0 01-.3-.6 3.2 3.2 0 01-.1-.8v-.1h.1zm-1.9 1v.3-.3zm.7-1.7a1.5 1.5 0 01-.4 1c-.1 0-.1 0 0 0a1.4 1.4 0 00.2-.5 1.5 1.5 0 000-.5l.1-.1zM291 124a3.5 3.5 0 01-.3-1.9 2.1 2.1 0 01.6-1.1l.5-.7v-1h.1v1l-.6.8a2 2 0 00-.5 1c-.1.5 0 1.1.3 1.9h-.1zm-1-1.3a.8.8 0 000 .4v.4s.1 0 0 0a1 1 0 01-.2-.4.9.9 0 010-.4h.1c.1 0 0 0 0 0zm4.8-3.4l.3.9c0 .3 0 .6-.2 1-.1 0-.1 0 0-.1l.1-.9a1.6 1.6 0 00-.3-.8c0-.1 0 0 0 0zm1.5-1.1a2.6 2.6 0 010 1.7 1.9 1.9 0 00-.2-.7 1.6 1.6 0 00-.5-.6c0-.1 0-.1.1 0a1.7 1.7 0 01.6 1v-.6a2.4 2.4 0 00-.1-.8c0-.1 0 0 0 0zm.9-1.3l.4.8.1 1.1v.5l.1.5a1.1 1.1 0 01-.2-.4 2.4 2.4 0 010-.6 3.8 3.8 0 00-.1-1c0-.4-.2-.6-.4-.8 0-.1 0 0 0 0zm-2.4-.2l-.2.6v.6c-.1.1-.1 0-.1 0a2.2 2.2 0 010-.7c0-.2 0-.4.2-.6h.1v.1zm-4.6 3.1a2.1 2.1 0 01-.4 1.2l-.8.7h-.1c-.1 0 0 0 0 0l.8-.8a2 2 0 00.4-1v-.1zm-.1-1.6v.5a2.3 2.3 0 01-.3.5l.1-.5a1.3 1.3 0 000-.4l.1-.1zm3.1-.2v1.1h-.1V118h.1zm.8-1.4c-.3.3-.4.5-.4.8l.2.8c.3.4.4.8.3 1.2 0 .4-.1.9-.3 1.3h-.1l.3-1.3a2 2 0 00-.3-1.2l-.2-.8c0-.3.1-.6.4-.9.1 0 0 0 0 .1zm-5-8.7l1.2-.5c.4 0 .8 0 1.2.3h.8-.8v.1a3 3 0 01-1.2.7 1.1 1.1 0 01-.9-.2v-.1l.9.2 1-.6a2 2 0 00-1-.2c-.3 0-.7.2-1 .4h-.1z"/>
+  <path d="M290.2 107.8a.3.3 0 010 .6.3.3 0 01-.3-.3c0-.2.1-.3.3-.3zm1.9 1.7l.5-.3a2.3 2.3 0 00.3-.4c.1 0 .1 0 0 0l-.2.5a2.4 2.4 0 01-.5.3h-.1v-.1zm4-1.6a.6.6 0 01.2 0l.4.1v.1h-.1a.7.7 0 00-.3-.1.5.5 0 00-.2 0c-.1-.1 0-.1 0-.1zm-2.3 0a1 1 0 01.4-.4l.7-.1v.1a1 1 0 00-.7.1.8.8 0 00-.3.4h-.1zm.2.4a.5.5 0 01.2-.2.6.6 0 01.3-.2v.1a.5.5 0 00-.3.1.4.4 0 000 .2h-.1zm-3.7 1.3l-.2.3a.9.9 0 000 .3h-.1a1 1 0 01.2-.7c.1 0 .1 0 0 0zm1 .5v.1-.2zm-.6-1.2h.7a1.5 1.5 0 01-.4.1 1 1 0 01-.4 0v-.1zm.7-2a.3.3 0 00-.3 0 .4.4 0 00-.1.2h-.1a.5.5 0 01.2-.3.5.5 0 01.3 0zm-1.2 0a.8.8 0 00-.2.2l-.1.1a.4.4 0 010-.2 1 1 0 01.3-.2v.1zm-.7 0a.9.9 0 00-.1.2.7.7 0 00-.1.2h-.1a.8.8 0 010-.2 1 1 0 01.3-.2zm-.8.8a1.8 1.8 0 00-.4.4h-.1a2.2 2.2 0 01.4-.5c.1 0 0 0 0 0zm0 1l-.1.1-.2.2.1-.2.2-.2zm-.9.2v.4-.4zm1.2 1.5v.6s0 .1-.1 0v-.6c.1 0 .1 0 0 0zm-.7-.5a22.1 22.1 0 010 .4h-.1v-.4h.1zm-.6-4.8a.8.8 0 01.5.5v.1h-.1a.7.7 0 00-.2-.3.7.7 0 00-.2-.2s-.1 0 0 0zm5.5 7.2a1.8 1.8 0 010 1.5v-.8a1.7 1.7 0 00-.1-.6v-.1h.1zm-1.8 2l.3-.6.5-.6a1.9 1.9 0 00.3-1.5v-.1h.1v.9a2 2 0 01-.3.7l-.5.6a2.8 2.8 0 00-.3.7c-.1 0-.1 0 0 0zm-2.3-.5l.2-.3a1 1 0 01.3-.2v.1a.8.8 0 00-.3.2.6.6 0 00-.1.2h-.1zm-.5-.2l.3-.3.4-.2-.3.3-.3.3zm2.5-2.3a.7.7 0 00.2 0 .9.9 0 00.3 0 .8.8 0 01-.6 0zm-1.3-.2l.1-.1h.1a3 3 0 010 .2h-.1v-.1zm25.8 7.4l.2.2v.2c0 .1 0 0 0 0a.8.8 0 00-.1-.1.8.8 0 00-.2-.2c0-.1.1 0 .1 0zM287 132l.4.2.5.1v.1c0 .1 0 0 0 0a1.1 1.1 0 01-.5 0 1.9 1.9 0 01-.5-.4h.1z"/>
+  <g fill="red">
+    <path d="M308.6 106.3a8.8 8.8 0 001.8 0c-.6.3-1.3.6-2 .7a.8.8 0 00.2-.3.5.5 0 000-.4zm-1.5-.1l1.3.1v.3l-.3.3v.2a6 6 0 01-1.3 0 1 1 0 00.3-.5.7.7 0 000-.4zm-11.2-3.3h2.2c.2 0 .4.2.5.4.1.2.2.5.1.8l.1.1h.1l-.1-1a1.1 1.1 0 00-.3-.3h.2c.9 0 1.5.3 2.3.6l.2.6-.4.6c.1.2.2.1.2 0 .2-.1.3-.4.4-.6a.7.7 0 000-.4l1.8 1v.5l-.5.3s-.1 0 0 .1c0 .1 0 .1 0 0 .3 0 .5-.2.7-.3a.7.7 0 000-.5l1.3.6c0 .2.1.3 0 .4 0 .2-.2.3-.4.4v.1c0 .1 0 .1.1 0 .3 0 .4-.2.5-.4a.6.6 0 000-.3l.5.1a8.8 8.8 0 001.4.4.5.5 0 01.1.4.8.8 0 01-.2.4v.2c-1.5-.2-3-1-4.4-1.5l-.5-.2-1.7-.7h-.2v-.1a9 9 0 00-1.5-.4 6.5 6.5 0 00-1.8 0c0-.3 0-.6-.2-.8a1.3 1.3 0 00-.5-.5z"/>
+    <path d="M293.3 103.6a9.3 9.3 0 012.2-.6c.4.1.6.3.7.5.1.2.2.4.1.7a4.5 4.5 0 00-2 .2c-.1-.3-.3-.5-.6-.7a1.3 1.3 0 00-.4 0zm8 4a10 10 0 00-.6-.3 7.4 7.4 0 00-3.3-.9c.4-.4.5-.8.4-1.2a1.8 1.8 0 00-.7-.8l1.1.1a8.7 8.7 0 012 .5c.1.4.2.7.1 1s-.3.5-.6.7c0 0-.1 0 0 0 0 .2 0 .2.1.1.4-.2.6-.5.7-.8v-.9l1 .7 1.2.8c0 .5-.2.7-.4.9h-1v.2z"/>
+    <path d="M303.4 109.3l-2-1.5c.4 0 .8 0 1-.2.3-.1.4-.4.5-.8a16.6 16.6 0 011.7 1.5v.5a.5.5 0 010 .2.6.6 0 01-.3.2 1.9 1.9 0 01-.8 0v.1z"/>
+    <path d="M305.7 110.8a12.3 12.3 0 01-.7-.4l-1.4-1h.7a.8.8 0 00.4-.2.7.7 0 00.2-.4 1 1 0 000-.3 11.4 11.4 0 002.2 1.6c0 .2 0 .4-.3.4l-1 .2h-.1z"/>
+    <path d="M308.1 111.8a12.7 12.7 0 01-2.2-.9c.4 0 .8 0 1-.2.3 0 .5-.2.5-.5l1.3.6v.4c0 .2-.3.3-.5.4 0 0-.1 0 0 .1z"/>
+    <path d="M313.2 111.2h.2c-1.4 1-3.3 1-5.1.6.3-.1.5-.3.6-.5 0-.1.1-.3 0-.4a9.4 9.4 0 001.8.4.4.4 0 01-.1.2l-.5.4s-.1 0 0 0v.2l.7-.4a.6.6 0 00.1-.4 9.6 9.6 0 002.3 0zM302.9 137l-.3.4c-.4.1-.8.3-1.3.3 0 .3.1.4.4.4l.8-.3s-.1.5-.6.8v.2c.4.6 1.4.4 2 .2.4 0 1.1-.5 1.3-1 .1-.1 0-.4-.2-.6-.5 0-.6-.1-.6-.3-.4-.1-1-.2-1.5-.1zm-16.2-5.1l-1.1.6c-.2 0-.6.1-.6.3 0 .1.3.3.4.2.5-.5.8-.2.2.2v.3c.6.5 1.8.6 2.4.3.4-.3.6-.6.2-1v-.2l-.6-.1-.4-.3-.5-.3zm10.7 3.7h-.2c-.2.2.4.1.7.3.2.1.3.3.2.5-.3.7-2 .5-2.5.2-.3-.1-.3-.3-.3-.5a2 2 0 001-.2v-.2h-.2a1.4 1.4 0 01-.5.1h-.5c-.1 0-.2 0-.1-.1h.2l.8-.2v-.2c.6 0 1 .2 1.4.3zm-7.7-.5l-.2.3a2.9 2.9 0 01-1 .7c-.2.1 0 .2.3.4.2.1.4-.2.6-.4.2-.3.3-.2.2 0a2 2 0 00-.2.7c0 .2.6.3.8.3.4 0 .9-.4 1.2-.6.3-.2.3-.5.1-.8a2.1 2.1 0 01-.5 0 3.7 3.7 0 01-.6-.3v-.1l-.7-.2zm3-28.1h.3l.7.1a4.8 4.8 0 011.8-.4 6 6 0 011.8-.2v-.2c.3-.3.4-.6.3-1 0-.2-.4-.5-.8-.7h-1.4c-.3 0-.6 0-.9.2.3 0 .5.2.7.4.2.2.3.6.4 1v.1h-.2a2 2 0 00-.4-1c-.2-.3-.7-.4-.8-.4-.5 0-1 0-1.4.2-.3 0-.5.2-.8.3h1c.2.2.5.5.6.9v.1c0 .1-.2 0-.2 0-.1-.4-.3-.6-.5-.7-.5-.2-1.4 0-1.7.2a4.5 4.5 0 00-.7.7h-.1c.8 0 1.6.1 2.3.4zm-2.4-.5v-.1l.7-.7.7-.3a2 2 0 011-.6l1.5-.2a1.1 1.1 0 00-.6-.6h-.7l-1.7.8h.6v.2c0 .1-.3 0-.4 0a1.4 1.4 0 00-.5 0s0 .1 0 0l-1.4 1.1.7.4z"/>
+  </g>
+  <path fill="#0093dd" d="M351.4 167l22.2-50.1-16.4-26.4-29 10.8-13.6 53a234.2 234.2 0 0136.8 12.8z"/>
+  <path fill="#fff" d="M323.2 120.6a268.7 268.7 0 0142.3 14.7l-8.6 19.3a247.6 247.6 0 00-38.9-13.4z"/>
+  <path fill="red" d="M358.3 151.5l5.7-12.9a265.3 265.3 0 00-41.7-14.4l-3.4 13.2a251.8 251.8 0 0139.6 13.7l-.2.4z"/>
+  <path d="M326.4 134.2c.4-.2.8-.1 1.2 0 .3-.2.7-.2 1.1-.2a2 2 0 01.7-.2v-.3a.7.7 0 01-.2-.4 3 3 0 01-1.1-1.6c-.4 0-.6-.2-.6-.3a35.6 35.6 0 01-.6 0c-.8 0-1-.3-1.3-.5a1 1 0 01-.7-.5l-.2-.3c-.3-.3-.2-.7.2-.7h.7c.2-.2.6-.2 1-.2.3 0 .5-.2.9-.5v-.5c0-.1 0-.2.2-.1.4 0 .7.2.9.5.5.1 1 .3 1.3.8.7 0 1.2.3 1.2.5s-.2.5-.5.7v.1l.4.5 1.1.7c1-.1 2.8.6 5.1 2.1 1.5.3 3 .7 4.4 1.3h1c2.5-.3 5 0 7.2 1.7.8.1 1.6.4 2.4.7a5.8 5.8 0 001.7.4c.9 0 1.8.3 2.7.7 1 .2 2 .6 2.6 1.3.5.5.4 1-.2 1.2-.3.7-1 .7-2 .4-.6 0-1.4-.4-2-1a10 10 0 01-2.7-1.4 3.5 3.5 0 00-1.3-.6h-.9v.2c.3.2.4.5.5.8v1c0 .5.3.8.7 1l1 .5c.3 0 .4.1.4.3l.4 1.8.4.4c.6.4.3 1-.3 1-.5.5-.9.8-1.4.9-.4.1-.6 0-.7-.2a.5.5 0 01-.5-.3c-.5-.4 0-1 1.1-.7 0-.2.2-.2.3-.2a1.6 1.6 0 010-1l-.4-.2a3 3 0 01-1.1-.6c-.6-.6-1.6-1-2.5-1.6-.8 0-1.3-.3-2-.6h-.7c-.3-.1-.5 0-.6.1-.2.3-.5.3-.8.2h-1.2l-.5.1c-.5 0-.9 0-1.1.2-.3.3-.5.2-.7.2a1 1 0 01-.4-.3l-.6-.2c-.5-.2-.6-.3-.6-.4-.6-.2-.3-.7.1-.7l1.5.1c.4.1.9 0 1.2-.2l.6-.6a4.1 4.1 0 01-2-.5c-1.2-.7-2.2-1-3-.3-.2.2-.4.2-.6.1a1.1 1.1 0 00-.6 0l-1.3-.1a4.4 4.4 0 01-2 0c-.6.3-1 .4-1.2.1a9.1 9.1 0 01-.7-.4c-.4 0-.5-.1-.5-.2-.5-.1-.5-.3-.5-.4-.2-.3-.1-.4 0-.6.4-.1.7-.2 1.1 0l.5.4h.7c.2-.2.6-.2 1-.2l.8-.2v-.2c-.5-.1-.7-.4-.9-.8a3.1 3.1 0 01-1.7-.6c-.4 0-.7 0-1-.2h-.8a2.7 2.7 0 01-1.5 0l-.9-.1c-.3.3-.6.4-1 .2a1.6 1.6 0 00-.9-.5c-.3-.1-.4-.2-.4-.4-.4-.2-.3-.4 0-.6.3 0 .6-.1 1.1.1l.5.1z"/>
+  <path fill="#fff" d="M343.1 139.3s-.1-.2-.3 0c-.9 0-1.7 0-2.4-.5-.7-.4-1.4-.8-2.2-.7a2 2 0 01.9-.5 4 4 0 011.5 0c.8 0 1.5.3 2 .5.6.2 1 .4 1.1.7a.4.4 0 00.1 0 3.7 3.7 0 01.9.8h-.8a3 3 0 01-.8-.3z"/>
+  <path d="M345 101.1v.2l1 5.2-4 3.5-.2.1.3.1 5 1.7 1 5.2v.2l.2-.2 4-3.4 5 1.7h.1v-.1l-1-5.2 4-3.5.2-.1-.3-.1-5-1.7-1-5.2v-.2l-.2.1-4 3.5-5-1.7z"/>
+  <path fill="#f7db17" d="M342.5 109.9l3.7-3.2 4.7 1.6zm9-1.7l3.7-3.3 4.6 1.6zm8.4-1.5l-3.7 3.2-4.7-1.6zm-9 1.7l-3.7 3.3-4.7-1.6zm-5.4-6.8l4.6 1.6 1 4.8zm6 6.9l4.6 1.6 1 4.8zm5.4 6.5l-4.6-1.6-1-4.8zm-6-6.9l-4.6-1.6-1-4.8zm3.2-8.1l1 4.8-3.7 3.2zm-3 8.6l1 4.9-3.7 3.2zm-2.9 8l-1-4.8 3.8-3.2zm3-8.6l-1-4.9 3.8-3.2z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ht.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ht.svg
new file mode 100644
index 0000000..920833a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ht.svg
@@ -0,0 +1,116 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-ht" viewBox="0 0 512 512">
+  <path fill="#d21034" d="M0 0h512v512H0z"/>
+  <path fill="#00209f" d="M0 0h512v256H0z"/>
+  <g fill="#f1b517" stroke="#000" stroke-width=".2">
+    <path fill="#fff" stroke="none" d="M175.2 191.6h161.6v128.6H175.2z"/>
+    <path fill="#016a16" stroke="#016a16" stroke-width=".3" d="M288.5 284.6l-33 1-32.8.3s-16.8 6.3-23.7 7.7c-6.9 1.4-6 3.6-11.3 4.8-4.3 1-4.8 1.3-7.3 1.4-1.5.1-3.3 1.3-5.2 2.6v17.8h161.6v-17a31.8 31.8 0 00-5.2-2.1c-2.3-.8-4-1.7-8.2-2.7-5.3-1.2-4.4-3.4-11.3-4.8s-23.6-9-23.6-9z"/>
+    <g transform="translate(-170.7) scale(1.70667)">
+      <g id="a">
+        <path d="M244.5 143.5h1.4l2.6 10.7-.6 3.4-3.4-14z"/>
+        <path fill="#fff" d="M243 136.3l1 8.3h1l-2-8.2z"/>
+        <path d="M245.7 154.6l-4.3-11.5 1.6-.1 5 14-2.3-2.4z"/>
+        <path fill="#fff" d="M239.4 136.5l1.8 8h1.4l-3.2-8z"/>
+        <path d="M241.9 150.6l-2.5-5.5 1-.2 4.7 9-3.2-3.3z"/>
+        <path fill="#fff" d="M236 138.8l2.9 7.6h1.4l-4.2-7.6z"/>
+        <path fill="#0a328c" d="M242.3 151.4l-11.5-12.5c-3.6 2.8-2.9 8-2.9 8l13 10.2 1.3-5.7z"/>
+        <path fill="#d20014" d="M248.9 158.2l-8.5-8.6c-3.6.2-.8 5.5-.6 6.2l9 7.7v-5.3z"/>
+        <path d="M248.1 156.8L230.6 138l-.7.5 18.6 20.6-.4-2.3zm-18.5-20l-.4-.5v-.9l-3.6-2.3 1.6 3.7 1.3.2.3.4.8-.6z"/>
+        <path d="M227.7 138.1a8.4 8.4 0 012.7-2.2l1 1.5-2.2 1.8-1.5-1z"/>
+        <path fill="#0a328c" stroke="#0a328c" d="M225.8 141.3l.6 1c.4-.1 4-3.5 4-3.5h2.7l.7-.9c-2-2-3.7.3-3.7.3l-4.3 3z"/>
+        <path fill="#d20014" stroke="#d20014" d="M228 143c0-1 1.8-3.2 2-3.3 1.3.4 2.5 1.2 3.9-1.8-1.2 1.4-3.5 0-3.5 0l-1 .8v.4l-3 2.8 1.5 1.1z"/>
+        <path fill="#0a328c" d="M237.3 154.7l-14.4-11.4c-2.5 2.5-.4 10.2-.4 10.2l14 7.6.7-6.4z"/>
+        <path fill="#d20014" d="M249.2 164l-11.9-9.6c-4 .6-.8 6.5-.6 7.2l12.5 6.8v-4.5z"/>
+        <path d="M248.7 162l-25.6-19.2-.5.6 26.8 21-.7-2.4zm-26.8-20.2l-.4-.4-.2-.8-4-1.7 2.3 3.3h1.3l.4.4.6-.8z"/>
+        <path d="M220.3 143.4a8.2 8.2 0 012.3-2.6l1.2 1.3-1.8 2.1-1.7-.8z"/>
+        <path fill="#0a328c" stroke="#0a328c" d="M219 146.6v1.1c.4-.2 3.7-3.7 3.7-3.7l2.5-.5.6-.8c-1.8-2.1-3.7.7-3.7.7l-3.2 3.2z"/>
+        <path fill="#d20014" stroke="#d20014" d="M221 148.5c-.2-1 1.2-3.8 1.4-4 1.6.5 3 1.2 3.5-2-1 1.6-3.5.4-3.5.4l-.8 1v.5l-2.5 3.3 1.9.8z"/>
+        <path fill="#0a328c" d="M236.2 161.7a2783.3 2783.3 0 01-18.5-10.5c-1.3 2.3-.1 5.5.5 6 0 1.5-.6 2.3.7 5.5.4 2 1.3 3.9 2.7 5 1.6 6.4 8.2 6.9 10.7 1.6l4-7.6z"/>
+        <path fill="#d20014" d="M248.3 168.5l-12.5-7.3c-4 .5 0 8 .3 8.7l12.2 4.3v-5.7z"/>
+        <path d="M246.2 165.8l-28.3-15-.5.6 30 16.7-1.2-2.3zM216.5 150l-.5-.3-.3-.8-4.1-1 2.7 2.9 1.2-.2.6.3.4-.9z"/>
+        <path d="M215.2 151.8c.4-1 .8-1.9 1.8-3l1.4 1.1-1.4 2.4-1.8-.5z"/>
+        <path fill="#0a328c" stroke="#0a328c" d="M214.1 155.2l.6 1.2 3-4.6 2.5-.9.5-1c-2-1.8-3.5 1.4-3.5 1.4l-3.1 3.9z"/>
+        <path fill="#d20014" stroke="#d20014" d="M216.8 156.8c-.2-1 .5-4.2.7-4.3 1.5.5 2.8.6 3.2-2.6-1 1.5-3.3 1-3.3 1l-.7 1 .1.4-2 4 2 .5z"/>
+      </g>
+      <use width="100%" height="100%" transform="matrix(-1 0 0 1 499.9 0)" xlink:href="#a"/>
+    </g>
+    <g transform="translate(-170.7) scale(1.70667)">
+      <path fill="#016a16" stroke="#016a16" d="M248.8 125.6l-.5 9h2.9l-.4-9 3-.3-.3-3.6-7.5.3v3.2l2.8.4z"/>
+      <g id="b" fill="#016a16">
+        <path d="M249.8 121.9c-7.8-7.8-13.9-4-15.3-2.9 1 .2 1.8-.4 2.3-.5l-1 1.2s2.5-1 2.8-1c-.4.3-.8 1-.8 1 .2 0 1.6-1.1 1.8-1.1-.4.4-.5 1.5-.5 1.5l1.2-.5c.3.2-.1.6.1.6 2-.2 4.7 1.7 5 2.3"/>
+        <path d="M247.9 123.3c-.8-1.8-15.6-5-18.6.3 1.2.3 2.3-1 2.3-1v1.2l1.9-1.6-.7 1.6 1.5-1.3v1.3l2-2-.3 1.1 1.7-.7-.2 1"/>
+        <path d="M247.2 123.6c-3.8-2.5-9.6-.8-9.6-.8-3.8 2-5.8 1.7-6.2 5.6.3-.1 1.3-1.4 1.3-1.4l.8 1.5.2-2.1.6 1.7 1-2.8.2 1.9 1.4-1.9.6.6.6-1.5.6 1s1-.6 1.5-.3l1-1.2.3.9 1-1 .3.7.9-.8v.6h3"/>
+        <path d="M246.4 124c-2.7 0-10.3 2.9-12.2 5.8a13.3 13.3 0 011.3-.6l.3 1.2.5-1.2.1 1c.3-.8.6-.8 1.2-.1l.2-1.1.3 1 .5-1.1s.3 1.2.5 1.2c0 0 .8-2.2 1.2-2.3l.1 1.4.5-1.4.5 1v-1.4l.6 1s.2-1 .6-1.2l.8.7 3.4-2.5"/>
+        <path d="M246.9 124.7c-3.5 1.3-6.7 6.2-6.4 8.2 1.5-2 1.2-1.7 1.9.6 0 0 .2-2 .5-2.2l.5 1.4.1-1.9h.5l-.1-1.1.7.5c-.2-.7-.3-.9.4-1.5 0 0-1 .1-.2-1.5l.7.6s-.2-.7 0-1l2.6-.8"/>
+        <path d="M247.2 125l-1.3 2.6.7.2-1.6 1.1 1.3-.1s-2 .7-2.2 2.7l2-1s-1.7 1.8-2 2.9l1.3-1s-1.2 1.2-1 3l.9-1c-.2 2.3-.2 2.5.8 4.2 0 0-.2-2.6 0-3l2.3 2.4-1.2-3.3s1.4 2 2.2 1.9l-1.8-2.7 1.8 1.4-2-3 1.8.6s-1.3-1.7-1.2-2.8l1.3 1.4s-.5-1.5-.4-2l.7.1-1.3-1.4.9-.2-.1-1 .6-.1v-1.1m-1.1 0c-2.2 3-1.1 7.5-2.4 9.9"/>
+      </g>
+      <use width="100%" height="100%" transform="matrix(-1 0 0 1 499.9 0)" xlink:href="#b"/>
+      <path d="M251 166.5s1.1-10 1.1-14.2c0-3.4-.8-10.8-.8-10.8H248s-.5 7.4-.4 10.8c0 4.2 1.1 14.2 1.1 14.2h2.3z"/>
+      <path d="M247.7 142h4l-.5-2.7h-2.9l-.6 2.6z"/>
+      <path d="M248 139.8h3.5l-.7-2.7h-2.2l-.7 2.7z"/>
+      <path d="M248.2 137.7h3l-.6-2.7h-1.9l-.5 2.7z"/>
+      <path d="M250.7 134.7h-2l-.3 1h2.5l-.2-1zm.4 29.7h-2.6m2.8-2h-3m3.4-2h-3.8m4-2.1h-4m4-2.2h-4.1m4.2-2h-4.4m4.4-1.7h-4.6m4.6-2.2h-4.6m4.5-2.1h-4.5m4.3-2.2h-4.1m3.9-2h-3.7"/>
+      <path fill="#0a328c" stroke="#0a328c" d="M250 119c-.8-.3-2.3-1.3-1.9-1.9l.7-1.2c1-2.2 0-1.4 0-2-.2-.8 3.8-.2 3.8 1.3 0 .5-.3.2-.2 2.6l-.8 1.5a3.5 3.5 0 01-1.7-.2z"/>
+      <path d="M250.4 125l-1-.9.3-7.1 1 .3-.3 7.6z"/>
+      <path fill="#d20014" stroke="#d20014" d="M251.7 119.3c.6-.4 1-1.5.6-2.1-1-1.3-1.7-.8-3.4-1.4-.3.4-1 1-.9 1.6 2.3 1 1.4.2 2.2.3.4 0 .6.5 1.5 1.5z"/>
+    </g>
+    <g transform="translate(-170.7) scale(1.70667)">
+      <use width="100%" height="100%" transform="matrix(1 0 0 -1 0 320.4)" xlink:href="#c"/>
+      <path fill="#016a16" stroke="#fff" stroke-linecap="round" d="M238.4 161.8c0 1.2-.9 2.3-1.9 2.3s-1.8-1-1.8-2.4v-1.2h3.7v1.2z"/>
+      <ellipse cx="236.5" cy="160.1" fill="#fff" stroke="none" rx="1.8" ry=".9"/>
+      <path fill="#016a16" stroke="#f1b517" d="M236.1 161l-.3-3.2h1.4l-.2 3.3h-.9z"/>
+      <path id="c" fill="#016a16" stroke="#fff" stroke-linecap="round" d="M238.5 160.1c-.2.5-1 .9-2 .9s-1.7-.4-2-.9a.8.8 0 000 .4c0 .7.9 1.2 2 1.2 1.2 0 2.1-.5 2.1-1.2a.8.8 0 000-.4z"/>
+      <g id="d">
+        <path d="M246 172.8l-7-2.2-3.1-5.3-10.9-.5.4 4 9.3 1.7.8 1.6 10.7 3-.2-2.3z"/>
+        <path fill="#503200" d="M238.7 174.3l-11.2-16.5-.5.5 11 16.4.7-.4z"/>
+        <path fill="#fff" d="M228.6 158.5l-1.2-2c-.3-.4-.6-.5-1.1-.2-.5.2-.4.7-.2 1.1l1 1.9 1.5-.8z"/>
+        <path d="M240 164.1l-22.5-2.3-.6 3.3 22.4 2.3.7-3.3z"/>
+        <path d="M217 161l-.5 4.5h1l.6-4.1-1-.4zm3.8.7l-.2 4.1h.6l.5-3.5-.8-.6zm15.3 1.8l-.6 3.8h1.1l.5-3.8h-1zm3.3.1l-.7 4.4 1.2.2.4-2.3c0 .5.5.8 1 .8.6 0 1-.5 1-1 0-.6-.4-1-1-1a1 1 0 00-1 .6l.3-1.6-1.2-.1zm-8 .7l-3.2 3.5.4.4 4-2.7-1.3-1.2zM224 173l3.1-3.5-.3-.4-4 2.7 1.2 1.2zm8.1-.9l-3.7-2.9-.4.3 3 3.8 1.1-1.2zm-9.3-6.7l3.9 2.8.4-.3-3-3.8-1.3 1.3zm4.2-2.3l.4 4.6h.5l1.2-4.5-2.1-.1zm1.2 11l-.3-4.5h-.6l-.7 4.6h1.6zm5.1-6l-4.8.4v.5l4.8.6V168zm-11.4 1.5l4.7-.7v-.4l-4.8-.5v1.6z"/>
+        <ellipse cx="227.7" cy="168.6" rx="1.3" ry="1.2"/>
+        <path fill-rule="evenodd" stroke-linecap="round" d="M234.4 168.6c0 3.5-3 6.5-6.7 6.5a6.6 6.6 0 01-6.7-6.5c0-3.6 3-6.5 6.7-6.5a6.6 6.6 0 016.7 6.5zm-1.3 0a5.3 5.3 0 01-5.4 5.2 5.3 5.3 0 01-5.4-5.3 5.3 5.3 0 015.4-5.1 5.3 5.3 0 015.4 5.2z"/>
+        <path d="M223.5 165.3l-1-.8m8.5 0l1-1m1 9.2l-1.1-.9m-8.4 1.9l1-1m21.7-10.6l1.1 6-.9.4-1-6.3h.8z"/>
+        <path fill="#fff" d="M245.6 161.4c-.5-.3-1.2.1-2.4-1.3-1.9 1.7 0 2 .2 3.7.5.2.9-1.4 2.3-1.5l2.3-.2-.5-.7h-2z"/>
+        <path fill="#fff" d="M246.4 162.5l-.2-1.7c-.3-.7-1-.1-1 .2l.2 1.7 1-.2z"/>
+        <path fill-rule="evenodd" d="M240.8 167.4v1.6c-.6.2-.5.6-.5 1.2v4.7c-.1.4-.7.4-1 .6-.3.3-.2.8 1 1l1 .1c1.5-.3 1.8-.8 1-1-.3-.2-.9-.4-1-.6v-1.2h1c.2 0 .7-.6.7-1.1v-2.5c0-1.4-1-1.6-1.4-1.5v-1.3h-.8zm1.6 2.7c0-.4-.6-.8-.8-.8-.2 0-.7.5-.7.9v1c0 .4.3 1.6.9 1.7.2 0 .6-.4.6-.8v-2z"/>
+        <path fill="#fff" d="M234.3 172.3c-.7-.2-.7 1.2-.7 1.2h1c.5.2.8.8.6 1.2-.3.2-2.2-.5-2.3 0 .3 1.9 2.9 2.6 3.8 1.8.9-.9 1.1-3-1.8-3.7l-.6-.5zm.6.6l-.3.6"/>
+        <path d="M215 173l-1-4m2.1 3.8l-1.5-3.1m4 2.3l-3.3-1.8m4.8 1.4l-6.2-2.7"/>
+        <path fill="#d20014" stroke="#d20014" d="M210.2 166l-2.6.1c-.2.1.5.9.4 1.1-.6 1.1-4.4 1-4.7.8-.5-.5 3.5-.8 3.6-1 0-.4-.6-1.2-.5-1.7 0-.7 1.7-1 1.7-1l2.1 1.7z"/>
+        <path fill="#503200" d="M213.2 168l-5-4.2s-.3-.2-.5 0 0 .4 0 .4l5.4 4.4.1-.5z"/>
+        <path d="M218.2 172.2l-4.2-3.6-.3-1-.8.6c-.3.2-.6.8-.6.8h1.1l3.6 3.4 1.1-.2z"/>
+        <circle cx="232.5" cy="177.1" r=".7"/>
+        <circle cx="230.6" cy="175.7" r=".7"/>
+        <circle cx="228.1" cy="176.6" r=".7"/>
+        <circle cx="224.2" cy="177.4" r=".7"/>
+        <circle cx="222.5" cy="177.6" r=".7"/>
+        <circle cx="220.8" cy="177.6" r=".7"/>
+        <circle cx="219.2" cy="177.6" r=".7"/>
+        <circle cx="220" cy="176.3" r=".7"/>
+        <circle cx="221.6" cy="176.4" r=".7"/>
+        <circle cx="223.1" cy="176.2" r=".7"/>
+        <circle cx="222.4" cy="175" r=".7"/>
+        <circle cx="220.8" cy="174.9" r=".7"/>
+        <path fill-rule="evenodd" d="M236.5 178c0-.3-.8-.2-.8-.6 0-.4 1.2 0 1.3.3.7-.6 1-.2 1.4 0 .6-.8 1.3-.8 2-.2.4-.4 1.4-.3 1.7.2.7-.6 1.3-.5 1.7 0 .2-.3.5-.3.7 0 .3-.7 1.2-.5 1.6 0 .3-.4.7-.1 1.1.1.3-.2.8-.2.8 0 0 .4-.6.3-.6.6 0 .2.4 0 .4.4 0 .3-.6.4-.7 0-.3.4-1.1.2-1.2-.2a.8.8 0 01-1.2 0c-.3.2-.7.2-.8 0-.5.5-1.4.4-1.7-.2h-.3a1 1 0 01-1.5 0c-.9.6-1.4.4-1.9 0-.5.7-1.4.7-1.5 0-.4.3-1.2.4-1.2 0 0-.2.7-.1.7-.4zm1.6.1c0 .2-.2.3-.4.3s-.4-.1-.4-.3.1-.2.4-.2.4.1.4.2zm1.9-.2c0 .2-.3.3-.6.3s-.5-.1-.5-.3c0-.1.2-.3.5-.3s.5.2.5.3zm3.5.2c0 .2-.2.3-.5.3s-.4-.1-.4-.3c0-.1.2-.3.4-.3s.5.1.5.3zm-1.9 0c0 .2-.2.3-.5.3s-.4-.1-.4-.4c0-.2.2-.4.4-.4s.5.2.5.4zm4 0c0 .1-.1.3-.3.3-.3 0-.5-.2-.5-.4s.2-.3.5-.3c.2 0 .4.1.4.3zm-1.2 0c0 .2 0 .3-.2.3s-.3-.1-.3-.3.1-.2.3-.2l.2.2zm2.4.1c0 .2 0 .4-.3.4-.1 0-.3-.2-.3-.4s.2-.3.3-.3c.2 0 .3.1.3.3z"/>
+      </g>
+      <use width="100%" height="100%" transform="matrix(-1 0 0 1 499.9 0)" xlink:href="#d"/>
+      <path fill="#0a328c" stroke="#0a328c" d="M249.8 165.7c-2.5 0-4.5 1-4.5 2.1 0 .2 0 .4.2.6.5.6 2.3 1 4.4 1 2 0 3.6-.3 4.2-.9.2-.2.3-.4.3-.7 0-1.1-2-2-4.6-2z"/>
+      <path d="M254.4 168v7c0 .9-2 1.5-4.5 1.5s-4.6-.6-4.6-1.5v-7c0 .8 2 1.5 4.5 1.5 2.6 0 4.6-.7 4.6-1.5z"/>
+      <path fill="#d20014" stroke="#d20014" d="M245.3 168v1l2.2 7 1.8-5.4 2 5.5 1.3-5.2 1.8 3.5v-1.9l-1.6-3.4a8.3 8.3 0 01-.6.2l-1 3.8-1.5-3.6a14.5 14.5 0 01-.7 0l-1.5 3.6-1.6-4.4c-.4-.2-.6-.5-.6-.7z"/>
+      <path fill="#0a328c" stroke="#0a328c" d="M254.4 173.7v1.3c0 .9-2 1.5-4.5 1.5s-4.6-.6-4.6-1.5v-1.3c0 .9 2 1.5 4.5 1.5 2.6 0 4.6-.6 4.6-1.5z"/>
+      <path d="M251.7 175l-1.1.2v1.3l1.2-.1v-1.3zm-4.8-.1v1.3l1.1.2v-1.3a8.9 8.9 0 01-1.1-.2zm-1.6-1.2v1.3c0 .3.2.5.5.7v-1.3c-.3-.2-.5-.4-.5-.7zm9.1.2c0 .2-.4.5-.8.7v1.3c.5-.2.8-.5.8-.9v-1z"/>
+      <path fill="none" d="M254.4 168v7c0 .9-2 1.5-4.5 1.5s-4.6-.6-4.6-1.5v-7"/>
+      <path fill="#fff" stroke="#fff" d="M253.4 167.5c0 .5-1.6 1-3.5 1-2 0-3.6-.5-3.6-1s1.6-.9 3.5-.9c2 0 3.6.4 3.6 1z"/>
+      <path d="M248.7 168.2l.2 1.2h1l.1-1.2h-1.3zm4.1-.3l-1 .2.1 1.2 1-.2V168zm-5.4-2l-.7.3.1 1 .6-.2v-1zm2.4-.3h-.3l.2 1.2h.6l.2-1.2a9.7 9.7 0 00-.7 0zm2.7.4l-.1 1 .7.3v-1a5.3 5.3 0 00-.6-.3zm-6.5 2.8l.2-1.3-1-.5v1.5l.8.3zm8.4-.3v-1.3l-.8.3.8 1zm9.3-8.5c.8 0 2 1 2.1 2.5 0 1-1.7 1-1.7 1 0 .5-1 .9-1.8 1-.8 0 .2-1.5.2-1.5-.5-1.3.2-2.7.2-2.7l1-.3z"/>
+      <path d="M262.5 163h.8s0 .3.2.3.3-.4.3-.4h1.2"/>
+      <path fill="#d20014" stroke="#f1b517" d="M264.1 160.9c.7-.5.1-1.5-.4-1.5h-1c-.6 0-1.4.6-1.3 1 0 .5.4.7.8.6.2 0 .6-.6.8-.6.3 0 1 .6 1.1.5z"/>
+      <path fill-rule="evenodd" d="M214.2 174.8c-.6.1-.7.8-.5 1.5-2.6.7-5 1.7-7.4 2.4-.1-.5 1.2-1.8 1.2-1.8.3.1.6.9.6.9 0-1.6 1.6-2.6 1.6-2.6-1-.2-3.7 1-4 1.4 0 0 1-.2 1.2 0 0 0-2.2 2.3-2.3 3 .4.7 4 1.3 4 1.3 0 .2-1 1-1 1 1.5.2 3.7-.8 4.3-1.4 0 0-1.7-.2-3-1.3 0 0 .2.7 0 1 0 0-2-.6-2.3-1 0 0 5-1.2 7.4-2 .1.5.6 1.3 1.2 1.1.3-.1.2-.8 0-1.4a.8.8 0 00.6.2c.4 0 .7-.3.7-.7 0-.4-.3-.7-.7-.7a.8.8 0 00-.7.5c-.1-.5-.4-1.4-.8-1.3zm2 1.6c0 .2-.2.3-.4.3a.3.3 0 01-.4-.3c0-.2.2-.4.4-.4s.3.2.3.4z"/>
+      <path d="M293 177.9c.2-.4 0-2.2 0-2.2-.5 0-1 .7-1 .7.5-1.6-.8-4-.8-4 .9.1 3.9 3 4 3.6 0 0-1.3-.5-1.5-.4.3 1.5 1.3 2.2 1.7 3 0 0-1.7.3-1.6 1.8h-1.1c-.4-.5.1-1.3.1-1.3l-7.7-3.2c-.5-.2-1.6-.8-1.4-1.4.1-.5 2 .3 2.4.5l7 2.9z"/>
+      <path d="M285.6 176.5l1-1.6c.3-.5-.4-1-.9-.4l-1 1.5c-.4.9.5 1.1 1 .5z"/>
+    </g>
+    <g fill="#fff" stroke-width=".3">
+      <path d="M224.2 307.8l-.1-3-3.8.1-.2 3.4 4.1-.5z"/>
+      <path d="M196.7 312.2l-5-2.8c20.7 1.9 25-5.4 30-5.8 3-.2 3.5 3.4-2.4 1.7l1.5 3.8s-14.8 8.3-29.2 5l5-2zm90.5-4.4v-3h4.7l.2 3.4-5-.4z"/>
+      <path d="M315.6 311.4l4.8-2.6c-23.8.8-18.4-3.9-30.3-5.2-3-.3-5.4 3.7 2.4 1.7l-1.5 3.8h3.7a35 35 0 0026.3 4.1l-5.4-1.8z"/>
+      <path d="M219.2 305.3v5.4s13.2 5 36.7 5c23.6 0 36.7-5 36.7-5v-5.4s-10 4.6-36.7 4.6c-26.6 0-36.7-4.6-36.7-4.6z"/>
+    </g>
+    <path fill="#000" stroke="none" d="M221.1 310.8l1.2-4 .5.2-1 3.4 2 .6-.1.5-2.6-.8zm3.9-1.8v-.8l.2-.6.6.1-.2.7-.3.7h-.3zm5.6-.3l.6.2-.5 2.3c0 .4-.2.7-.4 1l-.6.4a2 2 0 01-1 0 2 2 0 01-1-.4 1.1 1.1 0 01-.3-.6v-1l.5-2.4.6.1-.5 2.3c-.1.4-.1.7 0 .8 0 .2 0 .4.2.5l.5.2h1c.2-.2.3-.5.4-1l.5-2.4zm.6 4.3l.7-4h.6l1.7 3.6.5-3.2.5.1-.7 4h-.5l-1.7-3.6-.5 3.2h-.6zm4.4.7l.6-4h.5l-.6 4h-.5zm1.6-1.8a2.2 2.2 0 01.7-1.5 2 2 0 011.6-.4c.4 0 .7.1 1 .3.3.3.5.5.6.9.1.3.2.7.1 1.1a2.4 2.4 0 01-.4 1c-.2.4-.5.6-.8.7a2.2 2.2 0 01-1 .2 2 2 0 01-1-.4c-.4-.2-.6-.5-.7-.9a2.2 2.2 0 01-.1-1zm.6 0c-.1.6 0 1 .2 1.3.3.3.6.5 1 .5s.8 0 1.1-.3c.3-.3.5-.6.5-1.2a2 2 0 000-.9 1.3 1.3 0 00-.5-.6 1.4 1.4 0 00-.7-.3c-.4 0-.7 0-1 .3-.4.2-.6.7-.6 1.3zm3.9 2.5l.3-4.1h.6l2 3.4.2-3.2h.6l-.4 4.2h-.5l-2-3.5-.3 3.2h-.5zm6 .4l.1-4.1 3 .1-.1.5h-2.3v1.2h2l-.1.5h-2v1.8h-.6zm3 .1l1.8-4h.6l1.7 4.1h-.7l-.5-1.3H252l-.5 1.3h-.6zm1.3-1.6h1.5l-.4-1.1a10.9 10.9 0 01-.3-.9c0 .3-.2.5-.3.8l-.5 1.2zm3.3 1.7v-4.1h.6v4.1h-.6zm2.6 0v-3.6h-1.4v-.5h3.3v.4h-1.4l.1 3.7h-.6zm4.2-.1l-.2-4.1h.6l.1 3.6 2.1-.1v.5h-2.6zm2.9-.1l1.3-4.2h.6l2 3.9h-.6l-.6-1.2-1.8.2-.3 1.2h-.6zm1-1.8h1.5l-.5-1.2a11 11 0 01-.4-.8 5.3 5.3 0 01-.2.8l-.3 1.2zm5 1.3l-.4-4 2.8-.4v.5l-2.2.3.1 1.2 2-.2v.5l-1.9.2.2 1.8-.5.1zm3.2-2.3c-.1-.7 0-1.3.3-1.7a2 2 0 011.4-.8 2 2 0 011 .2c.4 0 .7.3.9.6a2.5 2.5 0 01.3 2.2 1.7 1.7 0 01-.6.8c-.3.2-.7.4-1 .4a2 2 0 01-1.1-.1 1.9 1.9 0 01-.8-.7 2.3 2.3 0 01-.4-1zm.5-.1c.1.5.3.9.6 1 .3.3.7.4 1.1.4.4 0 .8-.3 1-.6.2-.3.3-.7.2-1.3a2 2 0 00-.3-.8 1.3 1.3 0 00-.6-.5 1.4 1.4 0 00-.8-.1 1.4 1.4 0 00-1 .5c-.2.3-.2.8-.1 1.4zm4.5 1.4l-.8-4 1.9-.4h.9c.2 0 .4.1.5.3.2.1.3.3.3.6a1 1 0 01-.2.7c-.1.2-.4.4-.8.5l.4.2.6.4.9 1-.7.1-.7-.7a8 8 0 00-.5-.5 1.3 1.3 0 00-.3-.2.9.9 0 00-.3 0h-1l.4 1.9h-.6zm.1-2.4l1.2-.2c.3 0 .5 0 .6-.2a.6.6 0 00.3-.6.6.6 0 00-.3-.5h-.7l-1.3.2.2 1.3zm6.7-.4h.6c0 .4-.1.8-.4 1.1-.2.3-.6.5-1 .6a2 2 0 01-1.1 0 1.7 1.7 0 01-.9-.7 2.7 2.7 0 01-.4-1v-1.1c0-.4.2-.7.5-.9a2 2 0 011-.4 1.8 1.8 0 011 0c.4.2.7.4.9.8l-.5.2a1.3 1.3 0 00-.6-.5 1.2 1.2 0 00-.7 0c-.4 0-.6.1-.8.3a1 1 0 00-.3.7 2.5 2.5 0 00.4 1.6c.2.3.4.4.6.5.3 0 .5.1.8 0 .3 0 .5-.1.7-.4.2-.2.3-.5.2-.8zm1.6 1l-1.1-3.9 3-.8v.5l-2.4.7.4 1.2 2.2-.6.2.4-2.3.6.4 1.4 2.5-.7.2.5-3 .8z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/hu.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/hu.svg
new file mode 100644
index 0000000..94bc29f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/hu.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-hu" viewBox="0 0 512 512">
+  <g fill-rule="evenodd">
+    <path fill="#fff" d="M512 512H0V0h512z"/>
+    <path fill="#388d00" d="M512 512H0V341.3h512z"/>
+    <path fill="#d43516" d="M512 170.8H0V.1h512z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/id.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/id.svg
new file mode 100644
index 0000000..6d2cf09
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/id.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-id" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#e70011" d="M0 0h512v265.5H0z"/>
+    <path fill="#fff" d="M0 256h512v256H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ie.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ie.svg
new file mode 100644
index 0000000..60448a9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ie.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ie" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h512v512H0z"/>
+    <path fill="#009A49" d="M0 0h170.7v512H0z"/>
+    <path fill="#FF7900" d="M341.3 0H512v512H341.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/il.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/il.svg
new file mode 100644
index 0000000..6cb4b1c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/il.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-il" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)">
+    <path fill="#fff" d="M619.4 512H-112V0h731.4z"/>
+    <path fill="#00c" d="M619.4 115.2H-112V48h731.4zm0 350.5H-112v-67.2h731.4zm-483-275l110.1 191.6L359 191.6l-222.6-.8z"/>
+    <path fill="#fff" d="M225.8 317.8l20.9 35.5 21.4-35.3-42.4-.2z"/>
+    <path fill="#00c" d="M136 320.6L246.2 129l112.4 190.8-222.6.8z"/>
+    <path fill="#fff" d="M225.8 191.6l20.9-35.5 21.4 35.4-42.4.1zM182 271.1l-21.7 36 41-.1-19.3-36zm-21.3-66.5l41.2.3-19.8 36.3-21.4-36.6zm151.2 67l20.9 35.5-41.7-.5 20.8-35zm20.5-67l-41.2.3 19.8 36.3 21.4-36.6zm-114.3 0L189.7 256l28.8 50.3 52.8 1.2 32-51.5-29.6-52-55.6.5z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/im.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/im.svg
new file mode 100644
index 0000000..0f487f6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/im.svg
@@ -0,0 +1,36 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-im" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M148.2 0h744.1v744h-744z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="matrix(.7 0 0 .7 -102 0)">
+    <path fill="#ba0000" fill-rule="evenodd" d="M1063 744H0V0h1063z"/>
+    <path fill="#ffef00" fill-rule="evenodd" stroke="#000" stroke-width="3.2" d="M556.6 546.5c.3-1 1-10 .6-10s-13.7-15.8-13.4-15.8 17.2 3.8 17.2 3.2c0-.5 6.8-16.6 6.8-17l8.2 19.7 16.6 7.3-11.7 9.6 2.7 19c0 .3-11.7-11-11.7-11l-13 1.4s-1.7-5.8-2.3-6.4z"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="3.8" d="M466 300.7c-11 5.7-53.7 54.5-59.6 62-4.9 11.1-14.5 25-24.4 34-10.5 8-16.4 19-14.9 29.2-.1 12.9 7 21.6 12.8 30.7 3.4 4 8 6.7 12.8 7 10 1.4 10.9 4.4 15.8 6.3 19.7 26.8 49 46.5 70 62a98.8 98.8 0 0126 18.1 47 47 0 014.2 29l-15.6 59c-2.7 16.1 11.3 12.5 12 9.3 6.4-8.2 15.8-2.4 29.2-49.8l18.5-25s7.2-2.8 7.2-3.5c10.8-13 2.5-20.4-3.6-22.8l-13.5-5s-15.7-15.6-16.4-15.6c-7.4-21.7-44-67.9-52.4-74.3a62.1 62.1 0 00-14.3-12.1c-8.5-4.1-11.3-5.5-16.5-7.6-4.4-1.7-1.3-6.5 1.5-8.7 28.9-15.7 51.8-33.2 79.6-51l4.3-2.9-10-57-46.3-16.3c-2.4 1.7-4.2 3.3-6.4 5z"/>
+    <path fill="#ffec00" fill-rule="evenodd" d="M504.7 600.5c.2-.6 29-5.9 29-5.9l-3.5 10.7-28.7 8.6 3.2-13.4z"/>
+    <path fill="none" stroke="#000" stroke-width="3.2" d="M429.6 492a55.1 55.1 0 0131.4-29.7"/>
+    <path fill="none" stroke="#000" stroke-width="3.5" d="M503.7 600.7c1.9-.5 10.1-3 12.5-3.3l7.6-2c2.9-.7 4.6-1.2 7.6-1.7 2.3-1 4.6-1.5 7-2.1m-40 26.9c.3-.3 2.3-2 3.7-2.9 1.7-.5 7.3-3 9.5-3.3l6.8-2c2.5-.6 4-1.2 6.7-1.7a44.3 44.3 0 016.4-2.1"/>
+    <path fill="none" stroke="#000" stroke-width="3.2" d="M510.2 496.2h-.4c1.3 0 .5-.1-1.3 2-.6 1.7-5.9 5.4-9.9 5.4-2 .2-4.9.4-6.8.4-.6 0-1.3-.4-1.9-.4m19.9 77.8h2c2.2 0 4.3.3 6.2.4 2.1 0 4.2.6 6.3.6 2 .3 4.6.2 6.7.5 2.4 0 4.4.5 6.9.5 2 0 3.1.4 5.4.4l-5.4-.4c2 0 3.1.4 5.4.4m-47.6 48c.2-.3 2-2 3.3-2.9 1.5-.5 6.7-2.9 8.7-3.3l6.2-2c2.3-.6 3.8-1.2 6.2-1.7 1.9-.9 3.8-1.5 5.8-2m8.6-60c-1.2 3.4.3 4.3 1 5.7 1 1.4 3.8 3.6 8.2 5l5 1.6c1.3.2 1.9.5 2.9.9M370.8 435.3h.4c-1.3 0-.5.1 1.7-1.6 1.3-1.5 2.4-2.2 3.7-3.7m21 34.8c.2 0 24-12 26.6-14.6 1.8-1.3 3.1-2.6 5.3-4.1 1.4-.7 2.4-1.7 3.7-2.5 1.1-1.6 2.5-2.5 3.3-4 1.5-1.2.9-2.6 2-4.1.6-1.6 1.7-4.2 2-5.7m30.3 17.8c.1.9-.4 3.5-.3 5.5-.1 2.3-3.1 9.5-6.7 11.7"/>
+    <path fill="none" stroke="#000" stroke-width="3.2" d="M428 447.4l9.9 3a145 145 0 0124 13.5c1.5 1.2 4.2 2.3 5.3 3.7 1.6 1.4 2.8 3 4 4.6a30 30 0 013.8 5c4.6 3.7 17 29.5 17.4 31a62.8 62.8 0 012 4.5c1 1 1.6 2.5 2.5 4.1.9 2 1.9 3 3 4.6 1.3 1 3.1 2.7 4.9 3.7 1.8 1.6 3.6 2.2 5 3.3 1.9.8 23.7 14.6 24.7 15.3 2 1.6 8 8 3.8 12.5-1.8 1.5-3.4 3.6-5 4.5a16 16 0 01-5.6 3c-9.8 3-14.8 2-16.7 2h-2m-129-167c2.7 1 1.6.2 4.1 1.4 1.7.7 2.8.7 4.5 1.3 1.7.6 6.6 1.5 9 3.9 1.7 1.5 3 2.8 5 4a34 34 0 006.6 3.4c2.4.9 5 1.9 7.4 2H428h-6 5.8"/>
+    <path fill="#ffe606" fill-rule="evenodd" stroke="#000" stroke-width="3.2" d="M379.3 426.2c6.2-.4 16.5 1.5 16.7 1.5l13.7-.2c7.1-.7 8.7-3.5 9.9-5.4 2.7-4.1 4.5-5.6 6.6-8.7 3.3-2.5 7.9 3.3 8 3.3 11.7 11 2.4 24.4 1.7 24.9-5.8 5.2-7 5.6-10.5 2.2-3.5-4.1-4.6-6-7.5-7.4-5.5-2.7-17.1-.6-17.3-.6l-6 2.2c-2.9 1-4.7 3.5-9.5 4.4-5 .3-6.7-.2-9.1-4.2-3.4-5.1-1.7-11.3 3.3-12z"/>
+    <path fill="#ffef00" fill-rule="evenodd" stroke="#000" stroke-width="3.2" d="M703.1 175.4c-.9.1-9 4-9 4.3s-7 19.8-7.1 19.5-5.2-17-5.7-16.6c-.5.3-17.8 2.3-18 2.4-.3.2 13-16.7 13-16.7l-1.8-18.1 14.2 5.4L704 144c.2-.1-4 15.7-4 15.7l7.6 10.5s-4.3 4.4-4.5 5.2z"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="3.8" d="M533.3 374.8c10.4 6.9 73.8 20.2 83.3 21.6 12-1.2 29 .3 41.6 4.5 12.1 5.3 24.5 5 32.8-1.2 11.2-6.2 15.3-16.8 20.4-26.2 1.9-5 2-10.3-.1-14.7-3.8-9.3-1.5-11.6-2.3-16.8 13.7-30.2 16.5-65.4 19.8-91.5a99.3 99.3 0 013-31.5 46.6 46.6 0 0123.1-17.8l59.2-15.3c15.3-5.6 5.3-16 2.1-15-10.2-1.6-9.8-12.6-57.7-1l-30.8-4s-6-4.8-6.6-4.5c-16.6-3-19 7.8-18 14.3l2.2 14.2s-6 21.3-5.6 22c-15.2 17-37.9 72-39.4 82.5-.6 9.9-4.4 8.1-3.4 17.7 0 7.6-.8 2.9 1.7 18.4.6 4.6-5.1 4.3-8.4 3-27.9-17.6-54.4-29-83.5-44.4l-4.6-2.4-44.7 36.6 8.4 48.4c2.6 1.3 5 2 7.5 3.1z"/>
+    <path fill="#ffec00" fill-rule="evenodd" d="M775.6 194.2c-.6.1-19.3-22.4-19.3-22.4l11-2.2 21.6 20.8-13.3 3.8z"/>
+    <path fill="none" stroke="#000" stroke-width="3.2" d="M717.9 312.8a55 55 0 01-41.3-12.8"/>
+    <path fill="none" stroke="#000" stroke-width="3.5" d="M776.3 195c-1.3-1.4-7.5-7.4-9-9.4a95.8 95.8 0 00-5.5-5.5l-5.2-5.8a53.9 53.9 0 01-5.2-5.2m43 21.7a21 21 0 01-4.3-1.8c-1.2-1.2-6.1-5-7.5-6.6a79.4 79.4 0 00-5.1-5l-4.8-5a44 44 0 01-4.9-4.5"/>
+    <path fill="none" stroke="#000" stroke-width="3.2" d="M682 240.5l.2.4c-.6-1.1-.3-.4 2.4 0 1.8-.2 7.6 2.6 9.6 6a76 76 0 013.7 5.8c.3.5.3 1.4.6 1.8m58-55.4l-.2-.3-.8-1.5c-1-1.8-1.8-4-2.7-5.6-1-1.8-1.5-3.9-2.5-5.7-.8-2-2.1-4-2.9-6.1-1.1-2.2-1.6-4.1-2.9-6.3-1-1.8-1.2-3-2.3-4.9l2.3 4.9c-1-1.8-1.2-3-2.3-4.9m65.2 18c-.4 0-2.8-.8-4.1-1.5-1.2-1-5.9-4.4-7.2-6a68.3 68.3 0 00-4.8-4.3c-1.7-1.8-2.9-2.8-4.5-4.6a38.3 38.3 0 01-4.7-4M725.7 188c3.6-.6 3.6-2.4 4.5-3.6.7-1.7 1.2-5.2.3-9.7a48 48 0 01-1-5.1c-.5-1.2-.6-2-.7-3m-31.5 225.1l-.2-.3c.7 1 .4.4-2.2-.7-2-.4-3.1-1-5-1.4m20-35.3c-.1-.3-22.2-15.1-25.7-16.1-2-1-4-1.4-6.3-2.6-1.3-.9-2.6-1.3-4-2-1.9-.2-3.4-1-5-1-1.9-.6-2.8.6-4.7.3l-5.8 1m.6-35c.7-.6 3.3-1.4 5-2.5 2-1 9.8-2 13.4.2"/>
+    <path fill="none" stroke="#000" stroke-width="3.2" d="M679.7 336l-2.1-10a145 145 0 010-27.5c.3-2-.1-4.8.6-6.5.5-2.1 1.3-4 2-5.8.8-2.2 1.6-4.1 2.5-5.7 1-5.8 17.4-29.3 18.5-30.3a62.7 62.7 0 013-4c.4-1.4 1.4-2.7 2.4-4.3 1.3-1.7 1.7-3 2.5-4.7.2-1.7.8-4.2.8-6.2.5-2.4.2-4.2.5-6-.3-2 1-27.8 1.2-29 .4-2.5 2.9-10.9 9-9.4 2.2.8 4.8 1.2 6.3 2.1 2.2.6 3.9 2.2 5.5 3.4 7.3 7.1 8.9 12 9.8 13.7l1 1.8M660.8 401l-.2-.4c.5 1 .2.5-.5-1.6l-1-6c-.4-1.9-1.3-4-1-5.2-.7-1.8-.3-3.4 0-5.2.4-2.3.7-3.9.7-6.1.3-2.7 0-4.7.2-7.3-.7-2-.8-3.9-2-6-1-2-1.7-3.9-2.8-6l-2.9-5 2.9 5-2.9-5"/>
+    <path fill="#ffe606" fill-rule="evenodd" stroke="#000" stroke-width="3.2" d="M685.3 388.9c-3.4-5.2-6.9-15.1-7-15.3l-6.9-11.8c-4-6-7.3-6-9.5-6-5-.4-7.1-1.3-10.8-1.6-3.8-1.6-1-8.4-1.1-8.6 3.9-15.5 20.1-14 20.8-13.6 7.5 2.4 8.4 3.4 7.2 8-2 5.2-3 7-2.9 10.2.4 6.2 7.9 15.3 8 15.5l5 4c2.2 2 5.2 2.4 8.4 6.2 2.7 4.2 3.1 5.9.8 10-2.9 5.4-9 7-12 3z"/>
+    <path fill="#ffef00" fill-rule="evenodd" stroke="#000" stroke-width="3.2" d="M301.2 245.2c.7.6 8.4 5.3 8.6 5s20.3-4.9 20.2-4.6-11.3 13.6-10.8 13.8c.5.3 11.7 13.7 12 13.8l-21.2-1.8-14.2 11.5-3.2-14.9-18-6.4c-.3-.1 15.2-5.3 15.2-5.3l4.6-12s6 1.1 6.8.9z"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="3.8" d="M561 278c.1-12.5-23.5-72.9-27.5-81.6a112.3 112.3 0 01-19-37.2c-2.2-13-9.2-23.3-19-26.7-11.3-6-22.4-3.7-33-2.8-5.3 1.1-9.8 4-12.3 8.1-5.7 8.2-8.9 7.6-12.8 11.2-32.8 5-63.8 22-87.4 33.5a98.7 98.7 0 01-28 14.7c-13.3.1-23-6.2-27.6-9.6l-45.2-41c-13-9.8-16.3 4.2-13.8 6.4 4.4 9.4-5 15 30.8 48.8l13.6 28s-.8 7.6-.1 8c6.5 15.5 17 11.6 21.8 7.2l10.7-9.7s21-6.6 21.4-7.3c22.6 3.4 81-7.7 90.6-12.3 8.7-4.8 9.2-.7 16.7-6.8 6.3-4.2 2.9-.9 14.5-11.5 3.5-3 6.4 2 7 5.4.7 33 5.6 61.3 8.6 94.2l.6 5 55.1 17.5 35.9-33.6c-.4-2.9-1-5.3-1.5-8z"/>
+    <path fill="#ffec00" fill-rule="evenodd" d="M277.2 174.2c.5.4-8.1 28.4-8.1 28.4l-7.9-8 5.6-29.5 10.4 9z"/>
+    <path fill="none" stroke="#000" stroke-width="3.2" d="M408 157.5a55 55 0 0112 41.5"/>
+    <path fill="none" stroke="#000" stroke-width="3.5" d="M277.5 173.2c-.4 1.9-2 10.3-2.9 12.6a95.6 95.6 0 00-1.6 7.7l-2 7.5c-.3 2.4-.8 4.8-1.5 7.2m-5.4-47.9c.2.4.8 3 .9 4.6-.3 1.7-.8 7.8-1.5 10a78.7 78.7 0 00-1.2 6.9l-1.7 6.8a44.1 44.1 0 01-1 6.5"/>
+    <path fill="none" stroke="#000" stroke-width="3.2" d="M367.3 227l.1-.3c-.5 1.2 0 .5-1.2-2-1.2-1.4-2-7.8-.2-11.3a71 71 0 012.8-6.3c.2-.5 1-1 1.2-1.4m-78.2-18.2l-.1.3-.8 1.5c-1 2-2.3 3.6-3.2 5.3-1 1.9-2.5 3.4-3.4 5.3-1.2 1.7-2.3 4-3.6 5.7-1.2 2.1-2.5 3.7-3.6 5.9-1 1.8-1.9 2.6-2.9 4.6l2.9-4.6c-1 1.8-1.9 2.6-2.9 4.6m-20.7-64.4c.2.4 1 2.8 1 4.3-.2 1.6-.4 7.3-1 9.2-.4 2.2-.8 4.3-1 6.5L251 178a38.4 38.4 0 01-.8 6m49.2 35.3c-2.5-2.6-4-1.7-5.5-1.8-1.8.3-5 1.8-8.3 5a46.4 46.4 0 01-3.7 3.7c-.7 1-1.3 1.5-2 2.2m205.5-97l-.2.4c.6-1.2.1-.5.7 2.2.7 1.9.8 3.2 1.6 5m-40.6 2.6c-.1.2-.5 26.9.6 30.3.4 2.2 1 4 1.3 6.7 0 1.5.3 2.9.4 4.4 1 1.7 1.1 3.4 2 4.8.5 1.9 2 2 2.8 3.7 1.2 1.2 3 3.4 4.1 4.3m-29.7 18.7c-.8-.3-3-2-4.7-2.8-2-1.2-7-7.1-7.3-11.3"/>
+    <path fill="none" stroke="#000" stroke-width="3.2" d="M448.4 176.7l-7.2 7.3a145.5 145.5 0 01-23 15c-1.8.8-4 2.8-5.8 3-2 .9-4 1.2-6 1.6-2.2.5-4.2 1-6 1-5.5 2.4-34 1.5-35.6 1.2a63.6 63.6 0 01-5-.3c-1.3.3-3 .2-4.8.3-2.2-.2-3.5.2-5.4.5-1.4.7-3.9 1.6-5.5 2.7-2.3.9-3.7 2.1-5.3 2.8a660.6 660.6 0 01-25 15c-2.3 1-10.7 3.5-12.8-2.4-.5-2.3-1.6-4.7-1.7-6.5-.6-2.1-.3-4.4-.1-6.4 2-10 5.1-14 6-15.7l1-1.8m207-37l-.2.3c.5-1 .3-.4-1.1 1.3-1.5 1.2-3.2 3-4.5 4.2-1.3 1.3-2.6 3.1-3.8 3.6-1.2 1.6-2.7 2-4.3 3a29 29 0 00-5.6 2.6c-2.4 1.3-4 2.5-6.2 3.8-1.3 1.8-2.7 2.9-4 5-1 1.9-2.2 3.5-3.3 5.6l-2.7 5.2 2.7-5.2-2.7 5.2m17 106.2l.5-.7c-.7 1.4-.5 1 .2-1.3 0-2.7.6-6 .7-8.5.4-2.5.8-5.3.8-8-.1-3-.1-5.7-.6-8.6 0-2.7-.3-5.5-.4-8.2a35.5 35.5 0 00-.8-7.4 43 43 0 00-.7-6.8c.3-1.9-.2-3.6-.6-5l-1.8-7.5-1.5-6c-.3-2.2-1.5-5-2-7a19.7 19.7 0 01-1.6-5c-.7-1.6-1.6-3.4-2-5.2l-2.2-5.4-2-5.2c-.7-2-1.7-3.7-2.1-5.8-.7-.7-.9-1.4-1.3-2"/>
+    <path fill="#ffe606" fill-rule="evenodd" stroke="#000" stroke-width="3.2" d="M489.6 143.1c-2.5 5.7-8.9 14-9 14.2l-6 12.2c-2.8 6.7-1 9.4.1 11.3 2.4 4.3 2.9 6.6 4.7 9.9.7 4-6.6 5.5-6.7 5.6-15 5.2-22.7-9.2-22.8-10-2-7.5-1.7-8.8 2.9-10.3 5.3-1.3 7.4-1.3 10-3.2 5-3.7 8.5-15 8.6-15.2l.7-6.3c.4-3-1-5.8.5-10.5 2-4.5 3.2-5.8 8-6.2 6-.5 10.8 3.8 9 8.5z"/>
+    <path fill="#ffef00" fill-rule="evenodd" stroke="#000" stroke-width="3.2" d="M469.8 290.1c-2.2-2 42.8 16.4 49 16.6 8.5-3.1 43.5-32.7 43.5-32.7.3 3 1.6 10.4 5 12-13.6 11-25.8 21.5-39.3 32.5 1 17.4-2.2 35.8 6.6 55.2 0 0-10.6.2-10.6 0-9.3-9.3-12.6-54.2-12.6-54.2L467 300c2.2-1.4 3.9-5.7 3-9.8z"/>
+    <path fill="none" stroke="#000" stroke-width="3.2" d="M512.7 336.1c.8-.5-8 4.2-10.4 5.3-41 21.9-62 53.7-63.3 54.9-.7 1.3-2 3.1-3.2 4.9-1 1.5-2.4 3-3.3 4.5a87.9 87.9 0 01-5.3 6.7c-.2 1 .7-.3.4.3m113.1-102.5c-.8-.4 7.4 5.3 9.5 6.8 38.2 26.4 76 30.7 77.7 31.3 1.6 0 3.8.3 5.9.6 1.7.1 3.7.7 5.5.8 2 .3 6.4 1 8.4 1.7 1-.3-.6-.5 0-.5"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/in.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/in.svg
new file mode 100644
index 0000000..e6557cd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/in.svg
@@ -0,0 +1,25 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-in" viewBox="0 0 512 512">
+  <path fill="#f93" d="M0 0h512v170.7H0z"/>
+  <path fill="#fff" d="M0 170.7h512v170.6H0z"/>
+  <path fill="#128807" d="M0 341.3h512V512H0z"/>
+  <g transform="translate(256 256) scale(3.41333)">
+    <circle r="20" fill="#008"/>
+    <circle r="17.5" fill="#fff"/>
+    <circle r="3.5" fill="#008"/>
+    <g id="d">
+      <g id="c">
+        <g id="b">
+          <g id="a" fill="#008">
+            <circle r=".9" transform="rotate(7.5 -8.8 133.5)"/>
+            <path d="M0 17.5L.6 7 0 2l-.6 5L0 17.5z"/>
+          </g>
+          <use width="100%" height="100%" transform="rotate(15)" xlink:href="#a"/>
+        </g>
+        <use width="100%" height="100%" transform="rotate(30)" xlink:href="#b"/>
+      </g>
+      <use width="100%" height="100%" transform="rotate(60)" xlink:href="#c"/>
+    </g>
+    <use width="100%" height="100%" transform="rotate(120)" xlink:href="#d"/>
+    <use width="100%" height="100%" transform="rotate(-120)" xlink:href="#d"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/io.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/io.svg
new file mode 100644
index 0000000..4d809e0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/io.svg
@@ -0,0 +1,140 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-io" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)">
+    <g fill-rule="evenodd">
+      <path fill="#fff" d="M0 0h1024v512H0z"/>
+      <path fill="#000063" d="M1024 445.2c-11.5 7-21.3 23-51.8 23-61 0-76.2-33.9-122-33.9-30.4 0-45.6 34-76.1 34-61 0-76.2-34-122-34-30.4 0-45.6 34-76.1 34-61 0-76.2-34-122-34-30.4 0-45.6 34-76.1 34-61 0-76.2-34-121.9-34-30.5 0-45.7 34-76.2 34-61 0-76.2-34-121.9-34-30.5 0-39.6 24.2-57.9 24.2v43.7c18.3 0 27.4-24.2 57.9-24.2 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.4 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.4 0 40.3-9.6 51.8-16.5v-50.3zm0-84.9c-11.5 7-21.3 23-51.8 23-61 0-76.2-34-122-34-30.4 0-45.6 34-76.1 34-61 0-76.2-34-122-34-30.4 0-45.6 34-76.1 34-61 0-76.2-34-122-34-30.4 0-45.6 34-76.1 34-61 0-76.2-34-121.9-34-30.5 0-45.7 34-76.2 34-61 0-76.2-34-121.9-34-30.5 0-39.6 24.3-57.9 24.3v43.7c18.3 0 27.4-24.2 57.9-24.2 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.4 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.4 0 40.3-9.6 51.8-16.5v-50.3zm0-84.9c-11.5 7-21.3 23-51.8 23-61 0-76.2-34-122-34-30.4 0-45.6 34-76.1 34-61 0-76.2-34-122-34-30.4 0-45.6 34-76.1 34-61 0-76.2-34-122-34-30.4 0-45.6 34-76.1 34-61 0-76.2-34-121.9-34-30.5 0-45.7 34-76.2 34-61 0-76.2-34-121.9-34-30.5 0-39.6 24.3-57.9 24.3v43.7c18.3 0 27.4-24.2 57.9-24.2 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.4 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.4 0 40.3-9.7 51.8-16.6v-50.2zm0-85c-11.5 7-21.3 23.1-51.8 23.1-61 0-76.2-34-122-34-30.4 0-45.6 34-76.1 34-61 0-76.2-34-122-34-30.4 0-45.6 34-76.1 34-61 0-76.2-34-122-34-30.4 0-45.6 34-76.1 34-61 0-76.2-34-121.9-34-30.5 0-45.7 34-76.2 34-61 0-76.2-34-121.9-34-30.5 0-39.6 24.3-57.9 24.3v43.7c18.3 0 27.4-24.2 57.9-24.2 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.4 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.4 0 40.3-9.7 51.8-16.6v-50.2zm0-84.8c-11.5 6.9-21.3 23-51.8 23-61 0-76.2-34-122-34-30.4 0-45.6 34-76.1 34-61 0-76.2-34-122-34-30.4 0-45.6 34-76.1 34-61 0-76.2-34-122-34-30.4 0-45.6 34-76.1 34-61 0-76.2-34-121.9-34-30.5 0-45.7 34-76.2 34-61 0-76.2-34-121.9-34-30.5 0-39.6 24.2-57.9 24.2v43.8c18.3 0 27.4-24.2 57.9-24.2 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.4 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.4 0 40.3-9.7 51.8-16.6v-50.2zm0-85c-11.5 7-21.3 23.1-51.8 23.1-61 0-76.2-34-122-34-30.4 0-45.6 34-76.1 34-61 0-76.2-34-122-34-30.4 0-45.6 34-76.1 34-61 0-76.2-34-122-34-30.4 0-45.6 34-76.1 34-61 0-76.2-34-121.9-34-30.5 0-45.7 34-76.2 34-61 0-76.2-34-121.9-34C27.4 9.7 18.3 34 0 34v43.8c18.3 0 27.4-24.2 57.9-24.2 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.4 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.4 0 40.3-9.7 51.8-16.6V20.7z"/>
+    </g>
+    <g stroke-width="1pt">
+      <path fill="#000063" fill-rule="evenodd" d="M0 0h261.3v158H0z"/>
+      <path fill="#fff" d="M0 0v17.7L232.1 158h29.2v-17.7L29.3.1H0zm261.3 0v17.7L29.3 158H0v-17.7L232.1.1h29.2z"/>
+      <path fill="#fff" d="M108.9 0v158h43.5V0H109zM0 52.8v52.6h261.3V52.7H0z"/>
+      <path fill="#c00" d="M0 63.2v31.6h261.3V63.2H0zM117.6 0v158h26.1V0h-26.1zM0 158l87.1-52.7h19.5L19.5 158H0zM0 0l87.1 52.7H67.6L0 11.8V.1zm154.7 52.7L241.8.1h19.5l-87.1 52.6h-19.5zM261.3 158l-87-52.7h19.4l67.6 40.9V158z"/>
+    </g>
+    <path fill="#a24300" fill-rule="evenodd" stroke="#fff" stroke-width="6.9" d="M815-301.2l-17.8 708.7c0 37.3 80.1 37.3 88.6 0l-17.7-708.7H815z" transform="matrix(.2064 0 0 .4902 211.6 267.4)"/>
+    <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="8.3" d="M496 549.2l17.8 70.9 35.4-53.2-17.7 88.6 35.4-35.4-35.4 88.6 35.4-35.5-35.4 88.6 35.4-35.4-35.4 106.3 35.4-35.5-35.4 106.3 35.4-35.4-35.4 106.3-17.7 53.2-17.7 17.7-17.8-17.7-17.7-53.2-35.4-106.3 35.4 35.4-35.4-106.3 35.4 35.5-35.4-106.3 35.4 35.4-35.4-88.6 35.4 35.5-35.4-88.6 35.4 35.4L443 567l35.4 53.2 17.8-70.9z" transform="matrix(-.2354 .06743 -.1035 -.19501 591.3 322.6)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M496 549.2v496m-70.8-177l70.9 106.2 70.8-106.3" transform="matrix(-.2354 .06743 -.1035 -.19501 591.3 322.6)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 797.2l70.9 106.3 70.8-106.3" transform="matrix(-.2354 .06743 -.1035 -.19501 591.3 322.6)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 726.4l70.9 106.3 70.8-106.3" transform="matrix(-.2354 .06743 -.1035 -.19501 591.3 322.6)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 673.2l70.9 88.6 70.8-88.6" transform="matrix(-.2354 .06743 -.1035 -.19501 591.3 322.6)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 620l70.9 88.7 70.8-88.6" transform="matrix(-.2354 .06743 -.1035 -.19501 591.3 322.6)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M443 567l53 106.2L549.3 567" transform="matrix(-.2354 .06743 -.1035 -.19501 591.3 322.6)"/>
+    <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="8.3" d="M496 549.2l17.8 70.9 35.4-53.2-17.7 88.6 35.4-35.4-35.4 88.6 35.4-35.5-35.4 88.6 35.4-35.4-35.4 106.3 35.4-35.5-35.4 106.3 35.4-35.4-35.4 106.3-17.7 53.2-17.7 17.7-17.8-17.7-17.7-53.2-35.4-106.3 35.4 35.4-35.4-106.3 35.4 35.5-35.4-106.3 35.4 35.4-35.4-88.6 35.4 35.5-35.4-88.6 35.4 35.4L443 567l35.4 53.2 17.8-70.9z" transform="matrix(.17703 -.18126 .22077 .14638 73.8 93.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M496 549.2v496m-70.8-177l70.9 106.2 70.8-106.3" transform="matrix(.17703 -.18126 .22077 .14638 73.8 93.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 797.2l70.9 106.3 70.8-106.3" transform="matrix(.17703 -.18126 .22077 .14638 73.8 93.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 726.4l70.9 106.3 70.8-106.3" transform="matrix(.17703 -.18126 .22077 .14638 73.8 93.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 673.2l70.9 88.6 70.8-88.6" transform="matrix(.17703 -.18126 .22077 .14638 73.8 93.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 620l70.9 88.7 70.8-88.6" transform="matrix(.17703 -.18126 .22077 .14638 73.8 93.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M443 567l53 106.2L549.3 567" transform="matrix(.17703 -.18126 .22077 .14638 73.8 93.5)"/>
+    <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="8.3" d="M496 549.2l17.8 70.9 35.4-53.2-17.7 88.6 35.4-35.4-35.4 88.6 35.4-35.5-35.4 88.6 35.4-35.4-35.4 106.3 35.4-35.5-35.4 106.3 35.4-35.4-35.4 106.3-17.7 53.2-17.7 17.7-17.8-17.7-17.7-53.2-35.4-106.3 35.4 35.4-35.4-106.3 35.4 35.5-35.4-106.3 35.4 35.4-35.4-88.6 35.4 35.5-35.4-88.6 35.4 35.4L443 567l35.4 53.2 17.8-70.9z" transform="matrix(.1135 .2156 -.24917 .1076 581.8 -57.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M496 549.2v496m-70.8-177l70.9 106.2 70.8-106.3" transform="matrix(.1135 .2156 -.24917 .1076 581.8 -57.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 797.2l70.9 106.3 70.8-106.3" transform="matrix(.1135 .2156 -.24917 .1076 581.8 -57.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 726.4l70.9 106.3 70.8-106.3" transform="matrix(.1135 .2156 -.24917 .1076 581.8 -57.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 673.2l70.9 88.6 70.8-88.6" transform="matrix(.1135 .2156 -.24917 .1076 581.8 -57.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 620l70.9 88.7 70.8-88.6" transform="matrix(.1135 .2156 -.24917 .1076 581.8 -57.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M443 567l53 106.2L549.3 567" transform="matrix(.1135 .2156 -.24917 .1076 581.8 -57.8)"/>
+    <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="8.3" d="M496 549.2l17.8 70.9 35.4-53.2-17.7 88.6 35.4-35.4-35.4 88.6 35.4-35.5-35.4 88.6 35.4-35.4-35.4 106.3 35.4-35.5-35.4 106.3 35.4-35.4-35.4 106.3-17.7 53.2-17.7 17.7-17.8-17.7-17.7-53.2-35.4-106.3 35.4 35.4-35.4-106.3 35.4 35.5-35.4-106.3 35.4 35.4-35.4-88.6 35.4 35.5-35.4-88.6 35.4 35.4L443 567l35.4 53.2 17.8-70.9z" transform="matrix(-.15682 .19451 -.23555 -.12827 705.9 197.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M496 549.2v496m-70.8-177l70.9 106.2 70.8-106.3" transform="matrix(-.15682 .19451 -.23555 -.12827 705.9 197.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 797.2l70.9 106.3 70.8-106.3" transform="matrix(-.15682 .19451 -.23555 -.12827 705.9 197.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 726.4l70.9 106.3 70.8-106.3" transform="matrix(-.15682 .19451 -.23555 -.12827 705.9 197.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 673.2l70.9 88.6 70.8-88.6" transform="matrix(-.15682 .19451 -.23555 -.12827 705.9 197.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 620l70.9 88.7 70.8-88.6" transform="matrix(-.15682 .19451 -.23555 -.12827 705.9 197.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M443 567l53 106.2L549.3 567" transform="matrix(-.15682 .19451 -.23555 -.12827 705.9 197.8)"/>
+    <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="8.3" d="M496 549.2l17.8 70.9 35.4-53.2-17.7 88.6 35.4-35.4-35.4 88.6 35.4-35.5-35.4 88.6 35.4-35.4-35.4 106.3 35.4-35.5-35.4 106.3 35.4-35.4-35.4 106.3-17.7 53.2-17.7 17.7-17.8-17.7-17.7-53.2-35.4-106.3 35.4 35.4-35.4-106.3 35.4 35.5-35.4-106.3 35.4 35.4-35.4-88.6 35.4 35.5-35.4-88.6 35.4 35.4L443 567l35.4 53.2 17.8-70.9z" transform="matrix(-.15547 -.16616 .17678 -.15123 275.8 396)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M496 549.2v496m-70.8-177l70.9 106.2 70.8-106.3" transform="matrix(-.15547 -.16616 .17678 -.15123 275.8 396)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 797.2l70.9 106.3 70.8-106.3" transform="matrix(-.15547 -.16616 .17678 -.15123 275.8 396)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 726.4l70.9 106.3 70.8-106.3" transform="matrix(-.15547 -.16616 .17678 -.15123 275.8 396)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 673.2l70.9 88.6 70.8-88.6" transform="matrix(-.15547 -.16616 .17678 -.15123 275.8 396)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 620l70.9 88.7 70.8-88.6" transform="matrix(-.15547 -.16616 .17678 -.15123 275.8 396)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M443 567l53 106.2L549.3 567" transform="matrix(-.15547 -.16616 .17678 -.15123 275.8 396)"/>
+    <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="8.3" d="M460.6 549.2l28.7 70.9 42.2-53.2-10.2 88.6 28-35.4-17.8 88.6 25.2-35.5-25.2 88.6 35.4-35.4-35.4 106.3 35.4-35.5-35.4 106.3 35.4-35.4-35.4 106.3-17.7 53.2-17.7 17.7-17.8-17.7-17.7-53.2-35.4-106.3 35.4 35.4-35.4-106.3 35.4 35.5-35.4-106.3 35.4 35.4-45.6-88.6 45.6 35.5-53.1-88.6 43 35.4-25.3-88.6 35.4 53.2v-70.9z" transform="matrix(-.27108 -.06397 -.15704 .20433 684.1 -32.2)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M467.2 584.6l28.9 124v336.7" transform="matrix(-.27108 -.06397 -.15704 .20433 684.1 -32.2)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M436.2 885.8l59.9 88.6 60.6-88.6" transform="matrix(-.27108 -.06397 -.15704 .20433 684.1 -32.2)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M434.5 815l61.6 88.5 60.6-88.5" transform="matrix(-.27108 -.06397 -.15704 .20433 684.1 -32.2)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M435.4 744.1l60.7 88.6 59.8-88.6" transform="matrix(-.27108 -.06397 -.15704 .20433 684.1 -32.2)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M432.8 691l63.3 70.8 53.1-70.9" transform="matrix(-.27108 -.06397 -.15704 .20433 684.1 -32.2)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 637.8l70.9 70.9 45.4-70.9" transform="matrix(-.27108 -.06397 -.15704 .20433 684.1 -32.2)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M436.1 593.2l53.2 87 35.3-95.6" transform="matrix(-.27108 -.06397 -.15704 .20433 684.1 -32.2)"/>
+    <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="8.3" d="M460.6 549.2l28.7 70.9 42.2-53.2-10.2 88.6 28-35.4-17.8 88.6 25.2-35.5-25.2 88.6 35.4-35.4-35.4 106.3 35.4-35.5-35.4 106.3 35.4-35.4-35.4 106.3-17.7 53.2-17.7 17.7-17.8-17.7-17.7-53.2-35.4-106.3 35.4 35.4-35.4-106.3 35.4 35.5-35.4-106.3 35.4 35.4-45.6-88.6 45.6 35.5-53.1-88.6 43 35.4-25.3-88.6 35.4 53.2v-70.9z" transform="matrix(.27011 .06695 .00989 .24471 240.8 -138.4)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M467.2 584.6l28.9 124v336.7" transform="matrix(.27011 .06695 .00989 .24471 240.8 -138.4)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M436.2 885.8l59.9 88.6 60.6-88.6" transform="matrix(.27011 .06695 .00989 .24471 240.8 -138.4)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M434.5 815l61.6 88.5 60.6-88.5" transform="matrix(.27011 .06695 .00989 .24471 240.8 -138.4)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M435.4 744.1l60.7 88.6 59.8-88.6" transform="matrix(.27011 .06695 .00989 .24471 240.8 -138.4)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M432.8 691l63.3 70.8 53.1-70.9" transform="matrix(.27011 .06695 .00989 .24471 240.8 -138.4)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 637.8l70.9 70.9 45.4-70.9" transform="matrix(.27011 .06695 .00989 .24471 240.8 -138.4)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M436.1 593.2l53.2 87 35.3-95.6" transform="matrix(.27011 .06695 .00989 .24471 240.8 -138.4)"/>
+    <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="8.3" d="M354.3 531.5l88.6 88.6 17.7-53.2v88.6l35.5-35.4-17.8 88.6 35.5-35.5-17.7 88.6 35.4-35.4-17.7 106.3 35.4-35.4-35.4 106.3 35.4-35.5-17.7 106.3-17.7 53.2-17.7 17.7-17.8-17.7-17.7-53.2-53.1-82.3 35.4 11.5-35.4-106.3 35.4 35.4-53.1-106.3 35.4 35.4-53.2-88.6 53.2 35.5-70.9-88.6 53.2 35.4-70.9-70.8 70.9 35.4-53.2-88.6z" transform="matrix(.03453 -.23456 .24402 .04167 115.5 229.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M379 560l64 95.5 17.6 53.2 8.9 45.2 8.8 78.8 9.4 70.9 8.4 141.7" transform="matrix(.03453 -.23456 .24402 .04167 115.5 229.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 903.5l63.7 71 50.7-88.7" transform="matrix(.03453 -.23456 .24402 .04167 115.5 229.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M417 815l70.7 88.5 50.7-88.5" transform="matrix(.03453 -.23456 .24402 .04167 115.5 229.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M407.5 752.4l70.9 80.3 45.9-88.6M372.1 637.8l88.5 70.9 25.9-70.9" transform="matrix(.03453 -.23456 .24402 .04167 115.5 229.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M360.6 602.4l82.3 53.1 10.5-53.1m-63.6 88.5l81 71 34-71" transform="matrix(.03453 -.23456 .24402 .04167 115.5 229.5)"/>
+    <g fill-rule="evenodd">
+      <path fill="#c00" stroke="#000" stroke-width="1pt" d="M541.5 1173.3l-1.7-229.1-61.1-107c-15.3-52.6-7.8-78 17-79.8 24.7-1.6 49.2 13.6 84.8 15.3 35.6 1.7 28.9-59.4 81.5-57.7 52.6 1.7 144.3 32.3 222.3 37.4 78.1 5 118.8-27.2 208.8-30.6 90-3.4 113.7 42.4 118.8 42.4s30.6-18.6 56-22c25.5-3.4 34 10.2 34 10.2s-1.7 57.7-13.6 91.6c-11.9 34-54.3 90-56 90-1.7 0-15.3 249.5-15.3 251.2 0 1.7-675.5-6.8-675.5-11.9z" transform="matrix(.13659 0 0 .12573 266.4 208.2)"/>
+      <g stroke="#000" stroke-width="1pt">
+        <path fill="#fff100" d="M531.5 584.6s-68-52-69.8-177.1c-1-72 34.4-124 123-124 124 0 301.1 53.1 301.1 53.1v17.7s-141.7-53.1-301.2-53.1c-70.8 0-106.3 52-106.3 105.2 0 88.6 71 178.3 71 178.3v141.7h-17.8V584.6z" transform="matrix(-.13659 0 0 .12573 508.4 252.7)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 506.2 252.5)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 508.6 247.4)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 509.9 242.2)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 510.8 236.7)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 510.6 230.7)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 502.7 257)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 508.5 225)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 504 220.5)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 498 217.5)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 492 217.1)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 485.5 217.3)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 479 218.2)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 472.6 219)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 465.6 220)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 459.6 221.6)"/>
+      </g>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 268.6 252.5)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 266.1 247.4)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 264.9 242.2)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 264 236.7)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 264.2 230.7)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 266.2 225)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 270.6 220.5)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 276.7 217.5)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 282.7 217.1)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 289.2 217.3)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 295.7 218.2)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 302.2 219)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 309.1 220)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 315.1 221.6)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 272 257)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M531.5 584.6s-68-52-69.8-177.1c-1-72 34.4-124 123-124 124 0 301.1 53.1 301.1 53.1v17.7s-141.7-53.1-301.2-53.1c-70.8 0-106.3 52-106.3 105.2 0 88.6 71 178.3 71 178.3v141.7h-17.8V584.6z" transform="matrix(.13659 0 0 .12573 266.4 252.7)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="3" d="M1240.2 531.5s15.3-35.4 70.9-35.4c37.8 0 70.8 35.4 70.8 70.8v70.9h35.5v-70.9c0-35.4 35.4-70.8 70.8-70.8 53.2 0 70.9 35.4 70.9 35.4s0-106.3-70.9-106.3c-53.1 0-70.8 35.4-70.8 35.4s17.7-53.1 17.7-106.3-35.4-88.6-35.4-88.6c0 6.8-35.5 35.5-35.5 88.6s17.7 106.3 17.7 106.3-17.7-35.4-70.8-35.4c-70.9 0-70.9 106.3-70.9 106.3z" transform="matrix(.04553 0 0 .0479 299.4 309)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="3" d="M1240.2 531.5s15.3-35.4 70.9-35.4c37.8 0 70.8 35.4 70.8 70.8v70.9h35.5v-70.9c0-35.4 35.4-70.8 70.8-70.8 53.2 0 70.9 35.4 70.9 35.4s0-106.3-70.9-106.3c-53.1 0-70.8 35.4-70.8 35.4s17.7-53.1 17.7-106.3-35.4-88.6-35.4-88.6c0 6.8-35.5 35.5-35.5 88.6s17.7 106.3 17.7 106.3-17.7-35.4-70.8-35.4c-70.9 0-70.9 106.3-70.9 106.3z" transform="matrix(.04553 0 0 .0479 347.8 309)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M531.5 832.7V673.2s35.4 53.2 88.6 53.2c43.5 0 88.6-70.9 88.6-70.9s41.5 53.2 88.6 53.2c42 0 88.5-68.6 88.5-68.6s43.2 68.6 88.6 68.6c45.5 0 88.6-53.2 88.6-53.2s46.3 70.9 106.3 70.9c53.1 0 70.9-53.2 70.9-53.2v159.5H531.5z" transform="matrix(.13659 0 0 .12573 266.4 252.7)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M708.7 832.7v-124S815 744 815 832.7H708.7z" transform="matrix(.13659 0 0 .12573 242.2 252.7)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M708.7 832.7v-124S815 744 815 832.7H708.7z" transform="matrix(-.13659 0 0 .12573 532.5 252.7)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M602.4 832.7C602.4 744 708.7 688 708.7 688S815 744 815 832.7H602.4z" transform="matrix(.13659 0 0 .12573 266.4 252.7)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M602.4 832.7C602.4 744 708.7 688 708.7 688S815 744 815 832.7H602.4z" transform="matrix(.13659 0 0 .12573 314.8 252.7)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M584.6 847.5c0-88.6 124.1-159.4 124.1-159.4s124 70.8 124 159.4h-248z" transform="matrix(.13659 0 0 .12573 290.6 250.9)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M1275.6 655.5c-35.4-17.7-166-35.4-376.3-35.4s-350 17.7-385.5 35.4c-35.4 17.7-35.4 53.2 0 70.9 35.4 17.7 175.3 35.4 385.5 35.4s340.9-17.7 376.3-35.4c35.4-17.7 35.4-53.2 0-70.9z" transform="matrix(.13505 0 0 .12573 265.9 275)"/>
+      <path fill="gray" d="M435.8 366.3c0 4.5-40.3 4.5-48.4 4.5-8.8 0-48.4 1.2-48.4-4.5 0-4.4 39.9-4.4 48.4-4.4 8.4 0 48.4.9 48.4 4.4z"/>
+      <path fill="#c00" d="M343.8 350.3c0 1.5-1 2.7-2.4 2.7s-2.4-1.2-2.4-2.7 1-2.6 2.4-2.6c1.3 0 2.4 1.2 2.4 2.6zm92 0c0 1.5-1.1 2.7-2.5 2.7-1.3 0-2.4-1.2-2.4-2.7s1.1-2.6 2.4-2.6c1.4 0 2.4 1.2 2.4 2.6z"/>
+      <path d="M392.2 349c0 1.4-2.2 2.6-4.8 2.6s-4.9-1.2-4.9-2.7 2.2-2.6 4.9-2.6 4.8 1.2 4.8 2.6z"/>
+      <path fill="#006300" d="M415.4 349c0 1.4-1.6 2.6-3.6 2.6s-3.6-1.2-3.6-2.7 1.6-2.6 3.6-2.6 3.6 1.2 3.6 2.6zm-49.8 0c0 1.4-1.6 2.6-3.6 2.6s-3.7-1.2-3.7-2.7 1.6-2.6 3.7-2.6c2 0 3.6 1.2 3.6 2.6z"/>
+      <path fill="#fff100" stroke="#000" stroke-width="2.2" d="M1257.9 496s35.4-53 70.9-53h35.4v35.3c0 53.2-53.1 71-53.1 71h141.7s-53.2-17.8-53.2-71V443h35.5c35.4 0 70.8 53.2 70.8 53.2V354.3s-35.4 53.2-70.8 53.2h-35.5V372c0-53.1 53.2-70.8 53.2-70.8H1311s53.1 17.7 53.1 70.8v35.5h-35.4c-35.5 0-70.9-53.2-70.9-53.2v141.8z" transform="matrix(.07805 0 0 .07185 279.5 298)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="3.3" d="M1381.9 549.2h70.9s-53.2-17.7-53.2-70.9V443h35.4c35.5 0 71 53.2 71 53.2V354.3s-35.5 53.2-71 53.2h-35.4V372c0-53.1 53.2-70.8 53.2-70.8h-70.9v248z" transform="matrix(.03903 0 0 .06287 285 307.3)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="3.3" d="M1381.9 549.2h70.9s-53.2-17.7-53.2-70.9V443h35.4c35.5 0 71 53.2 71 53.2V354.3s-35.5 53.2-71 53.2h-35.4V372c0-53.1 53.2-70.8 53.2-70.8h-70.9v248z" transform="matrix(-.03903 0 0 .06287 489.7 307.3)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M903.5 602.4a17.7 17.7 0 11-35.4 0 17.7 17.7 0 0135.4 0z" transform="matrix(.13659 0 0 .12573 266.4 252.7)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="2.2" d="M1257.9 496s35.4-53 70.9-53h35.4v35.3c0 53.2-53.1 71-53.1 71h141.7s-53.2-17.8-53.2-71V443h35.5c35.4 0 70.8 53.2 70.8 53.2V354.3s-35.4 53.2-70.8 53.2h-35.5V372c0-53.1 53.2-70.8 53.2-70.8H1311s53.1 17.7 53.1 70.8v35.5h-35.4c-35.5 0-70.9-53.2-70.9-53.2v141.8z" transform="matrix(.07805 0 0 .07185 279.5 251.2)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M903.5 602.4a17.7 17.7 0 11-35.4 0 17.7 17.7 0 0135.4 0z" transform="matrix(.13659 0 0 .12573 266.6 206.3)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M850.4 655.5h70.9v53.2h-71z" transform="matrix(.13659 0 0 .12573 266.4 208.2)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M850.4 683.3h70.9v202.5h-71z" transform="matrix(.13659 0 0 .12573 266.4 208.2)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 324.4 246)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 324.4 240.3)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 324.4 235)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 324.4 229.4)"/>
+      <path d="M392.5 357.5c0 1-2.2 1.8-5 1.8s-4.8-.8-4.8-1.8 2.2-1.8 4.9-1.8 4.9.8 4.9 1.8zm44.6 4.4c-.3.7-2.7.8-5.4.1-2.7-.6-4.6-1.6-4.4-2.3.3-.7 2.7-.8 5.4-.1 2.7.6 4.6 1.6 4.4 2.3zm-18.7-3c0 .9-2.4 1.4-5.2 1.3-2.7-.2-4.9-1.1-4.8-2 .1-.9 2.5-1.4 5.2-1.2 2.8.2 5 1 4.8 1.9zm-81.8 3c.2.7 2.6.8 5.3.1 2.7-.6 4.7-1.6 4.4-2.3-.3-.7-2.7-.8-5.4-.1-2.6.6-4.6 1.6-4.3 2.3zm19.5-3.4c.1.9 2.5 1.4 5.2 1.2 2.8-.2 5-1 4.8-2 0-.8-2.4-1.4-5.2-1.2-2.7.2-4.9 1-4.8 2z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/iq.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/iq.svg
new file mode 100644
index 0000000..6b96774
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/iq.svg
@@ -0,0 +1,10 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-iq" viewBox="0 0 512 512">
+  <path fill="#fff" d="M0 170.7h512v170.6H0z"/>
+  <path fill="#ce1126" d="M0 0h512v170.7H0z"/>
+  <path d="M0 341.3h512V512H0z"/>
+  <g fill="#007a3d" transform="translate(-276.6 -99) scale(1.8686)">
+    <path d="M325.5 173.2a5 5 0 01-1.4-1c-.3-.5-.1-.5 1.2-.2 2.3.7 3.8.4 5.3-.8l1.3-1.1 1.5.7c.9.5 1.8.8 2 .7.7-.2 2.1-2 2-2.6 0-.7.6-.5 1 .3.6 1.6-.3 3.5-2 3.9-.7.2-1.4.1-2.6-.3-1.4-.5-1.7-.5-2.4 0a5.4 5.4 0 01-5.9.4zm5.8-5.3a8 8 0 01-1-4c.1-.6.3-.8.8-.6 1 .3 1.2 1 1 3 0 1.8-.3 2.3-.8 1.6zm-67.6-1.9c-.1 1.3 2.4 4.6 3.5 5.2-.8.3-1.7.2-2.4.5-4 4-18.4 18-21 21.4 7.8.2 16.4-.1 23.7-.4 0-5.3 5-5.6 8.4-7.5 1.7 2.7 6 2.5 6.6 6.6v17.6H216a9.7 9.7 0 01-12.3 7.5c2-2 5.4-2.8 6.6-5.7 1-6.4-2-10.3-4-14a24 24 0 007-3.6c-2.3 7 6.2 6.3 12.4 6.1.2-2.4.1-5.2-1.7-5.6 2.3-.9 2.7-1.2 6.6-4.4v9.6l46.1-.1c0-3 .8-7.9-1.6-7.9-2.2 0 0 6.2-1.8 6.2h-35.7v-6c1.5-1.6 1.3-1.5 11.6-11.8 1-1 8.3-7.6 14.6-13.7zm89.1-.3c2.5 1.4 4.5 3.2 7.5 4-.3 1.3-1.5 1.8-1.8 3.1v27c3.4.7 4.2-1.3 5.8-2.3.4 4.3 3.2 8.5 3 12h-14.5v-43.7zm-19.4 14.5s5.3-4.5 5.3-4.7V199h3.8l-.1-26.3c1.5-1.6 4.6-3.8 5.3-5.4v42h-33.4c-.5-8.7-.6-17.7 9.6-15.8V190c-.3-.6-.9.1-1-.7 1.6-1.6 2.1-2 6.5-5.8l.1 15.5h3.9v-18.8zm-12.6 18.6c.7 1 3.2 1 3-.8-.3-1.5-3.5-1-3 .8z"/>
+    <circle cx="224" cy="214.4" r="2"/>
+    <path d="M287 165.8c2.5 1.3 4.5 3.2 7.6 4-.4 1.2-1.5 1.7-1.8 3v27c3.4.7 4.1-1.2 5.7-2.3.5 4.3 3.2 8.6 3.1 12H287v-43.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ir.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ir.svg
new file mode 100644
index 0000000..79f6632
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ir.svg
@@ -0,0 +1,219 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ir" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M186 0h496v496H186z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-192) scale(1.0321)">
+    <path fill="#fff" d="M0 0h868.1v496H0z"/>
+    <path fill="#da0000" d="M0 333.1h868.1v163H0z"/>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M165 340h47.6v3.3H165zm7.1 16.4h3.3v3.2H172zm40.6-.1v3.3h-9.5v-3.3zm5.1-16.3h3.3v19.6h-3.3z"/>
+      <path d="M236.7 356.3v3.3h-18v-3.3zm-33.5-7.6h3.3v10.9h-3.3z"/>
+      <path d="M234 340h3.3v19.6h-3.2zm-8.1 0h3.2v19.6H226zm-43.4 7.8v3.3H165v-3.3zm38 0v3.3h-17.3v-3.3z"/>
+      <path d="M203.2 348.6h3.3v11h-3.3z"/>
+      <path d="M203.2 348.6h3.3v11h-3.3z"/>
+      <path d="M203.2 348.6h3.3v11h-3.3zm-38 0h3.2v11H165zm27.8 0h3.3v11H193zm-13.8 0h3.3v11h-3.3z"/>
+      <path d="M195.3 356.3v3.3h-14.7v-3.3zm1-8.5v3.3H187v-3.3z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M87 340h47.5v3.3H86.9zm7 16.4h3.3v3.2H94zm40.6-.1v3.3h-9.5v-3.3zm5.1-16.3h3.3v19.6h-3.3z"/>
+      <path d="M158.6 356.3v3.3h-18v-3.3zm-33.5-7.6h3.3v10.9H125z"/>
+      <path d="M156 340h3.2v19.6H156zm-8.2 0h3.3v19.6h-3.3zm-43.4 7.8v3.3H87v-3.3zm38 0v3.3h-17.3v-3.3z"/>
+      <path d="M125.1 348.6h3.3v11H125z"/>
+      <path d="M125.1 348.6h3.3v11H125z"/>
+      <path d="M125.1 348.6h3.3v11H125zm-38 0h3.2v11H87zm27.8 0h3.3v11H115zm-13.8 0h3.3v11H101z"/>
+      <path d="M117.2 356.3v3.3h-14.6v-3.3zm1-8.5v3.3H109v-3.3z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M242.5 340H290v3.3h-47.5zm7 16.4h3.3v3.2h-3.2zm40.6-.1v3.3h-9.5v-3.3zm5.1-16.3h3.3v19.6h-3.3z"/>
+      <path d="M314.2 356.3v3.3h-18v-3.3zm-33.6-7.6h3.3v10.9h-3.3z"/>
+      <path d="M311.5 340h3.3v19.6h-3.3zm-8.2 0h3.3v19.6h-3.3zm-43.4 7.8v3.3h-17.3v-3.3zm38 0v3.3h-17.3v-3.3z"/>
+      <path d="M280.6 348.6h3.3v11h-3.3z"/>
+      <path d="M280.6 348.6h3.3v11h-3.3z"/>
+      <path d="M280.6 348.6h3.3v11h-3.3zm-38 0h3.2v11h-3.2zm27.9 0h3.2v11h-3.2zm-13.9 0h3.3v11h-3.3z"/>
+      <path d="M272.8 356.3v3.3H258v-3.3zm1-8.5v3.3h-9.4v-3.3z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M789.3 340h47.5v3.3h-47.5zm7 16.4h3.3v3.2h-3.2zm40.6-.1v3.3h-9.5v-3.3zm5.2-16.3h3.2v19.6h-3.2z"/>
+      <path d="M861 356.3v3.3h-18v-3.3zm-33.6-7.6h3.3v10.9h-3.3z"/>
+      <path d="M858.3 340h3.3v19.6h-3.3zm-8.2 0h3.3v19.6H850zm-43.4 7.8v3.3h-17.3v-3.3zm38 0v3.3h-17.3v-3.3z"/>
+      <path d="M827.4 348.6h3.3v11h-3.3z"/>
+      <path d="M827.4 348.6h3.3v11h-3.3z"/>
+      <path d="M827.4 348.6h3.3v11h-3.3zm-38 0h3.2v11h-3.2zm27.9 0h3.3v11h-3.3zm-13.8 0h3.2v11h-3.3z"/>
+      <path d="M819.6 356.3v3.3h-14.7v-3.3zm1-8.5v3.3h-9.4v-3.3z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M320.4 340h47.5v3.3h-47.5zm7.1 16.4h3.3v3.2h-3.3zm40.6-.1v3.3h-9.5v-3.3zm5-16.3h3.3v19.6h-3.2z"/>
+      <path d="M392.1 356.3v3.3h-18v-3.3zm-33.5-7.6h3.2v10.9h-3.2z"/>
+      <path d="M389.4 340h3.3v19.6h-3.3zm-8.1 0h3.2v19.6h-3.3zm-43.5 7.8v3.3h-17.3v-3.3zm38.1 0v3.3h-17.3v-3.3z"/>
+      <path d="M358.6 348.6h3.2v11h-3.2z"/>
+      <path d="M358.6 348.6h3.2v11h-3.2z"/>
+      <path d="M358.6 348.6h3.2v11h-3.2zm-38.1 0h3.3v11h-3.3zm27.9 0h3.3v11h-3.3zm-13.8 0h3.3v11h-3.3z"/>
+      <path d="M350.7 356.3v3.3H336v-3.3zm1-8.5v3.3h-9.3v-3.3z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M398.6 340h47.6v3.3h-47.6zm7.1 16.4h3.3v3.2h-3.3zm40.6-.1v3.3h-9.5v-3.3zm5.1-16.3h3.3v19.6h-3.3z"/>
+      <path d="M470.3 356.3v3.3h-18v-3.3zm-33.5-7.6h3.3v10.9h-3.3z"/>
+      <path d="M467.6 340h3.3v19.6h-3.3zm-8.1 0h3.2v19.6h-3.2zm-43.4 7.8v3.3h-17.4v-3.3zm38 0v3.3h-17.3v-3.3z"/>
+      <path d="M436.8 348.6h3.3v11h-3.3z"/>
+      <path d="M436.8 348.6h3.3v11h-3.3z"/>
+      <path d="M436.8 348.6h3.3v11h-3.3zm-38 0h3.2v11h-3.3zm27.8 0h3.3v11h-3.3zm-13.8 0h3.3v11h-3.3z"/>
+      <path d="M429 356.3v3.3h-14.7v-3.3zm.9-8.5v3.3h-9.3v-3.3z"/>
+    </g>
+    <path fill="#239f40" d="M0 0h868.1v163H0z"/>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M477.3 340h47.5v3.3h-47.5zm7.1 16.4h3.3v3.2h-3.3zm40.6-.1v3.3h-9.5v-3.3zm5-16.3h3.4v19.6H530z"/>
+      <path d="M549 356.3v3.3h-18v-3.3zm-33.5-7.6h3.2v10.9h-3.2z"/>
+      <path d="M546.3 340h3.3v19.6h-3.3zm-8.1 0h3.2v19.6h-3.2zm-43.4 7.8v3.3h-17.4v-3.3zm38 0v3.3h-17.3v-3.3z"/>
+      <path d="M515.5 348.6h3.2v11h-3.2z"/>
+      <path d="M515.5 348.6h3.2v11h-3.2z"/>
+      <path d="M515.5 348.6h3.2v11h-3.2zm-38.1 0h3.3v11h-3.3zm27.9 0h3.3v11h-3.3zm-13.8 0h3.3v11h-3.3z"/>
+      <path d="M507.6 356.3v3.3h-14.7v-3.3zm1-8.5v3.3h-9.3v-3.3z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M555.5 340h47.6v3.3h-47.6zm7.1 16.4h3.3v3.2h-3.3zm40.6-.1v3.3h-9.5v-3.3zm5.1-16.3h3.3v19.6h-3.3z"/>
+      <path d="M627.2 356.3v3.3h-18v-3.3zm-33.5-7.6h3.3v10.9h-3.3z"/>
+      <path d="M624.6 340h3.2v19.6h-3.2zm-8.2 0h3.3v19.6h-3.3zm-43.4 7.8v3.3h-17.4v-3.3zm38 0v3.3h-17.3v-3.3z"/>
+      <path d="M593.7 348.6h3.3v11h-3.3z"/>
+      <path d="M593.7 348.6h3.3v11h-3.3z"/>
+      <path d="M593.7 348.6h3.3v11h-3.3zm-38 0h3.2v11h-3.3zm27.8 0h3.3v11h-3.3zm-13.8 0h3.3v11h-3.3z"/>
+      <path d="M585.8 356.3v3.3h-14.6v-3.3zm1-8.5v3.3h-9.3v-3.3z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M633.8 340h47.5v3.3h-47.5zm7 16.4h3.3v3.2h-3.3zm40.6-.1v3.3H672v-3.3zm5.1-16.3h3.3v19.6h-3.3z"/>
+      <path d="M705.5 356.3v3.3h-18v-3.3zm-33.6-7.6h3.3v10.9h-3.3z"/>
+      <path d="M702.8 340h3.3v19.6h-3.3zm-8.2 0h3.3v19.6h-3.3zm-43.4 7.8v3.3h-17.4v-3.3zm38 0v3.3H672v-3.3z"/>
+      <path d="M672 348.6h3.2v11h-3.3z"/>
+      <path d="M672 348.6h3.2v11h-3.3z"/>
+      <path d="M672 348.6h3.2v11h-3.3zm-38.2 0h3.3v11h-3.3zm28 0h3.2v11h-3.3zm-13.9 0h3.3v11h-3.3z"/>
+      <path d="M664 356.3v3.3h-14.6v-3.3zm1-8.5v3.3h-9.3v-3.3z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M712.4 340H760v3.3h-47.6zm7.1 16.4h3.3v3.2h-3.3zm40.6-.1v3.3h-9.5v-3.3zm5.1-16.3h3.3v19.6h-3.3z"/>
+      <path d="M784.1 356.3v3.3h-18v-3.3zm-33.5-7.6h3.3v10.9h-3.3z"/>
+      <path d="M781.5 340h3.2v19.6h-3.2zm-8.2 0h3.3v19.6h-3.3zm-43.4 7.8v3.3h-17.4v-3.3zm38 0v3.3h-17.3v-3.3z"/>
+      <path d="M750.6 348.6h3.3v11h-3.3z"/>
+      <path d="M750.6 348.6h3.3v11h-3.3z"/>
+      <path d="M750.6 348.6h3.3v11h-3.3zm-38 0h3.2v11h-3.3zm27.8 0h3.3v11h-3.3zm-13.8 0h3.3v11h-3.3z"/>
+      <path d="M742.7 356.3v3.3h-14.6v-3.3zm1-8.5v3.3h-9.3v-3.3z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M8 340h47.5v3.3H7.9zm7 16.4h3.3v3.2H15zm40.6-.1v3.3H46v-3.3zm5.1-16.3H64v19.6h-3.3z"/>
+      <path d="M79.6 356.3v3.3h-18v-3.3zm-33.5-7.6h3.3v10.9H46z"/>
+      <path d="M77 340h3.2v19.6H77zm-8.2 0H72v19.6h-3.2zm-43.4 7.8v3.3H8v-3.3zm38 0v3.3H46.1v-3.3z"/>
+      <path d="M46 348.6h3.4v11H46z"/>
+      <path d="M46 348.6h3.4v11H46z"/>
+      <path d="M46 348.6h3.4v11H46zm-38 0h3.3v11H8zm28 0h3.2v11h-3.3zm-14 0h3.4v11H22z"/>
+      <path d="M38.2 356.3v3.3H23.5v-3.3zm1-8.5v3.3h-9.3v-3.3z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M165 139h47.6v3.2H165zm7.1 16.3h3.3v3.2H172zm40.6 0v3.2h-9.5v-3.3zm5.1-16.3h3.3v19.5h-3.3z"/>
+      <path d="M236.7 155.2v3.3h-18v-3.3zm-33.5-7.6h3.3v11h-3.3z"/>
+      <path d="M234 139h3.3v19.5h-3.2zm-8.1 0h3.2v19.5H226zm-43.4 7.7v3.3H165v-3.2zm38 0v3.3h-17.3v-3.2z"/>
+      <path d="M203.2 147.6h3.3v11h-3.3z"/>
+      <path d="M203.2 147.6h3.3v11h-3.3z"/>
+      <path d="M203.2 147.6h3.3v11h-3.3zm-38 0h3.2v11H165zm27.8 0h3.3v11H193zm-13.8 0h3.3v11h-3.3z"/>
+      <path d="M195.3 155.2v3.3h-14.7v-3.3zm1-8.4v3.2H187v-3.2z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M87 139h47.5v3.2H86.9zm7 16.3h3.3v3.2H94zm40.6 0v3.2h-9.5v-3.3zm5.1-16.3h3.3v19.5h-3.3z"/>
+      <path d="M158.6 155.2v3.3h-18v-3.3zm-33.5-7.6h3.3v11H125z"/>
+      <path d="M156 139h3.2v19.5H156zm-8.2 0h3.3v19.5h-3.3zm-43.4 7.7v3.3H87v-3.2zm38 0v3.3h-17.3v-3.2z"/>
+      <path d="M125.1 147.6h3.3v11H125z"/>
+      <path d="M125.1 147.6h3.3v11H125z"/>
+      <path d="M125.1 147.6h3.3v11H125zm-38 0h3.2v11H87zm27.8 0h3.3v11H115zm-13.8 0h3.3v11H101z"/>
+      <path d="M117.2 155.2v3.3h-14.6v-3.3zm1-8.4v3.2H109v-3.2z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M242.5 139H290v3.2h-47.5zm7 16.3h3.3v3.2h-3.2zm40.6 0v3.2h-9.5v-3.3zm5.1-16.3h3.3v19.5h-3.3z"/>
+      <path d="M314.2 155.2v3.3h-18v-3.3zm-33.6-7.6h3.3v11h-3.3z"/>
+      <path d="M311.5 139h3.3v19.5h-3.3zm-8.2 0h3.3v19.5h-3.3zm-43.4 7.7v3.3h-17.3v-3.2zm38 0v3.3h-17.3v-3.2z"/>
+      <path d="M280.6 147.6h3.3v11h-3.3z"/>
+      <path d="M280.6 147.6h3.3v11h-3.3z"/>
+      <path d="M280.6 147.6h3.3v11h-3.3zm-38 0h3.2v11h-3.2zm27.9 0h3.2v11h-3.2zm-13.9 0h3.3v11h-3.3z"/>
+      <path d="M272.8 155.2v3.3H258v-3.3zm1-8.4v3.2h-9.4v-3.2z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M789.3 139h47.5v3.2h-47.5zm7 16.3h3.3v3.2h-3.2zm40.6 0v3.2h-9.5v-3.3zm5.2-16.3h3.2v19.5h-3.2z"/>
+      <path d="M861 155.2v3.3h-18v-3.3zm-33.6-7.6h3.3v11h-3.3z"/>
+      <path d="M858.3 139h3.3v19.5h-3.3zm-8.2 0h3.3v19.5H850zm-43.4 7.7v3.3h-17.3v-3.2zm38 0v3.3h-17.3v-3.2z"/>
+      <path d="M827.4 147.6h3.3v11h-3.3z"/>
+      <path d="M827.4 147.6h3.3v11h-3.3z"/>
+      <path d="M827.4 147.6h3.3v11h-3.3zm-38 0h3.2v11h-3.2zm27.9 0h3.3v11h-3.3zm-13.8 0h3.2v11h-3.3z"/>
+      <path d="M819.6 155.2v3.3h-14.7v-3.3zm1-8.4v3.2h-9.4v-3.2z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M320.4 139h47.5v3.2h-47.5zm7.1 16.3h3.3v3.2h-3.3zm40.6 0v3.2h-9.5v-3.3zm5-16.3h3.3v19.5h-3.2z"/>
+      <path d="M392.1 155.2v3.3h-18v-3.3zm-33.5-7.6h3.2v11h-3.2z"/>
+      <path d="M389.4 139h3.3v19.5h-3.3zm-8.1 0h3.2v19.5h-3.3zm-43.5 7.7v3.3h-17.3v-3.2zm38.1 0v3.3h-17.3v-3.2z"/>
+      <path d="M358.6 147.6h3.2v11h-3.2z"/>
+      <path d="M358.6 147.6h3.2v11h-3.2z"/>
+      <path d="M358.6 147.6h3.2v11h-3.2zm-38.1 0h3.3v11h-3.3zm27.9 0h3.3v11h-3.3zm-13.8 0h3.3v11h-3.3z"/>
+      <path d="M350.7 155.2v3.3H336v-3.3zm1-8.4v3.2h-9.3v-3.2z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M398.6 139h47.6v3.2h-47.6zm7.1 16.3h3.3v3.2h-3.3zm40.6 0v3.2h-9.5v-3.3zm5.1-16.3h3.3v19.5h-3.3z"/>
+      <path d="M470.3 155.2v3.3h-18v-3.3zm-33.5-7.6h3.3v11h-3.3z"/>
+      <path d="M467.6 139h3.3v19.5h-3.3zm-8.1 0h3.2v19.5h-3.2zm-43.4 7.7v3.3h-17.4v-3.2zm38 0v3.3h-17.3v-3.2z"/>
+      <path d="M436.8 147.6h3.3v11h-3.3z"/>
+      <path d="M436.8 147.6h3.3v11h-3.3z"/>
+      <path d="M436.8 147.6h3.3v11h-3.3zm-38 0h3.2v11h-3.3zm27.8 0h3.3v11h-3.3zm-13.8 0h3.3v11h-3.3z"/>
+      <path d="M429 155.2v3.3h-14.7v-3.3zm.9-8.4v3.2h-9.3v-3.2z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M477.3 139h47.5v3.2h-47.5zm7.1 16.3h3.3v3.2h-3.3zm40.6 0v3.2h-9.5v-3.3zm5-16.3h3.4v19.5H530z"/>
+      <path d="M549 155.2v3.3h-18v-3.3zm-33.5-7.6h3.2v11h-3.2z"/>
+      <path d="M546.3 139h3.3v19.5h-3.3zm-8.1 0h3.2v19.5h-3.2zm-43.4 7.7v3.3h-17.4v-3.2zm38 0v3.3h-17.3v-3.2z"/>
+      <path d="M515.5 147.6h3.2v11h-3.2z"/>
+      <path d="M515.5 147.6h3.2v11h-3.2z"/>
+      <path d="M515.5 147.6h3.2v11h-3.2zm-38.1 0h3.3v11h-3.3zm27.9 0h3.3v11h-3.3zm-13.8 0h3.3v11h-3.3z"/>
+      <path d="M507.6 155.2v3.3h-14.7v-3.3zm1-8.4v3.2h-9.3v-3.2z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M555.5 139h47.6v3.2h-47.6zm7.1 16.3h3.3v3.2h-3.3zm40.6 0v3.2h-9.5v-3.3zm5.1-16.3h3.3v19.5h-3.3z"/>
+      <path d="M627.2 155.2v3.3h-18v-3.3zm-33.5-7.6h3.3v11h-3.3z"/>
+      <path d="M624.6 139h3.2v19.5h-3.2zm-8.2 0h3.3v19.5h-3.3zm-43.4 7.7v3.3h-17.4v-3.2zm38 0v3.3h-17.3v-3.2z"/>
+      <path d="M593.7 147.6h3.3v11h-3.3z"/>
+      <path d="M593.7 147.6h3.3v11h-3.3z"/>
+      <path d="M593.7 147.6h3.3v11h-3.3zm-38 0h3.2v11h-3.3zm27.8 0h3.3v11h-3.3zm-13.8 0h3.3v11h-3.3z"/>
+      <path d="M585.8 155.2v3.3h-14.6v-3.3zm1-8.4v3.2h-9.3v-3.2z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M633.8 139h47.5v3.2h-47.5zm7 16.3h3.3v3.2h-3.3zm40.6 0v3.2H672v-3.3zm5.1-16.3h3.3v19.5h-3.3z"/>
+      <path d="M705.5 155.2v3.3h-18v-3.3zm-33.6-7.6h3.3v11h-3.3z"/>
+      <path d="M702.8 139h3.3v19.5h-3.3zm-8.2 0h3.3v19.5h-3.3zm-43.4 7.7v3.3h-17.4v-3.2zm38 0v3.3H672v-3.2z"/>
+      <path d="M672 147.6h3.2v11h-3.3z"/>
+      <path d="M672 147.6h3.2v11h-3.3z"/>
+      <path d="M672 147.6h3.2v11h-3.3zm-38.2 0h3.3v11h-3.3zm28 0h3.2v11h-3.3zm-13.9 0h3.3v11h-3.3z"/>
+      <path d="M664 155.2v3.3h-14.6v-3.3zm1-8.4v3.2h-9.3v-3.2z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M712.4 139H760v3.2h-47.6zm7.1 16.3h3.3v3.2h-3.3zm40.6 0v3.2h-9.5v-3.3zm5.1-16.3h3.3v19.5h-3.3z"/>
+      <path d="M784.1 155.2v3.3h-18v-3.3zm-33.5-7.6h3.3v11h-3.3z"/>
+      <path d="M781.5 139h3.2v19.5h-3.2zm-8.2 0h3.3v19.5h-3.3zm-43.4 7.7v3.3h-17.4v-3.2zm38 0v3.3h-17.3v-3.2z"/>
+      <path d="M750.6 147.6h3.3v11h-3.3z"/>
+      <path d="M750.6 147.6h3.3v11h-3.3z"/>
+      <path d="M750.6 147.6h3.3v11h-3.3zm-38 0h3.2v11h-3.3zm27.8 0h3.3v11h-3.3zm-13.8 0h3.3v11h-3.3z"/>
+      <path d="M742.7 155.2v3.3h-14.6v-3.3zm1-8.4v3.2h-9.3v-3.2z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M8 139h47.5v3.2H7.9zm7 16.3h3.3v3.2H15zm40.6 0v3.2H46v-3.3zm5.1-16.3H64v19.5h-3.3z"/>
+      <path d="M79.6 155.2v3.3h-18v-3.3zm-33.5-7.6h3.3v11H46z"/>
+      <path d="M77 139h3.2v19.5H77zm-8.2 0H72v19.5h-3.2zm-43.4 7.7v3.3H8v-3.2zm38 0v3.3H46.1v-3.2z"/>
+      <path d="M46 147.6h3.4v11H46z"/>
+      <path d="M46 147.6h3.4v11H46z"/>
+      <path d="M46 147.6h3.4v11H46zm-38 0h3.3v11H8zm28 0h3.2v11h-3.3zm-14 0h3.4v11H22z"/>
+      <path d="M38.2 155.2v3.3H23.5v-3.3zm1-8.4v3.2h-9.3v-3.2z"/>
+    </g>
+    <path fill="#d90000" stroke-width="1pt" d="M119.3 329h5.9v10h-5.9zm155.5 0h5.9v10h-5.9zM0 329h5.8v10H0zm78.9 0h5.9v10h-5.9zm78.4 0h5.8v10h-5.8zm38.8 0h5.8v10h-5.8zm39.5 0h6v10h-6zm78 0h5.9v10h-5.9zm196.8 0h5.8v10h-5.8zm-157.2 0h5.9v10h-5.9zm38.8 0h5.9v10H392zm39.2 0h5.8v10h-5.8zm39.2 0h5.8v10h-5.8zm313 0h6v10h-6zm-235 0h5.8v10h-5.9zm39.5 0h5.9v10h-5.9zm40 0h5.9v10h-5.9zm37.6 0h5.9v10h-5.9zm40 0h5.9v10h-6zm39.2 0h5.8v10h-5.8zm116 0h5.8v10h-5.9zm-37.6 0h5.8v10h-5.8zm-783.8 0h5.9v10h-5.9z"/>
+    <path fill="#239e3f" stroke-width="1pt" d="M119.3 157.6h5.9v10.1h-5.9zm155.5 0h5.9v10.1h-5.9zM0 157.6h5.8v10.1H0zm78.9 0h5.9v10.1h-5.9zm78.4 0h5.8v10.1h-5.8zm38.8 0h5.8v10.1h-5.8zm39.5 0h6v10.1h-6zm78 0h5.9v10.1h-5.9zm196.8 0h5.8v10.1h-5.8zm-157.2 0h5.9v10.1h-5.9zm38.8 0h5.9v10.1H392zm39.2 0h5.8v10.1h-5.8zm39.2 0h5.8v10.1h-5.8zm313 0h6v10.1h-6zm-235 0h5.8v10.1h-5.9zm39.5 0h5.9v10.1h-5.9zm40 0h5.9v10.1h-5.9zm37.6 0h5.9v10.1h-5.9zm40 0h5.9v10.1h-6zm39.2 0h5.8v10.1h-5.8zm116 0h5.8v10.1h-5.9zm-37.6 0h5.8v10.1h-5.8zm-783.8 0h5.9v10.1h-5.9z"/>
+    <g fill="#da0000">
+      <path d="M457 191.4c8.3 10 33.5 65.5-15.2 101.9-22.9 17.2-8.7 18-8 21 36.8-19.6 48.8-46 48.5-69.8-.3-23.7-12.8-44.6-25.2-53.1z"/>
+      <path d="M462 188.8a71 71 0 0115 108.8c26.4-5.8 60-83.7-15.2-108.8zm-55.9 0a71 71 0 00-15 108.8c-26.5-5.8-60.1-83.7 15-108.8z"/>
+      <path d="M411 191.4c-8.2 10-33.5 65.5 15.2 101.9 22.9 17.2 8.7 18 8 21-36.7-19.6-48.8-46-48.5-69.8.3-23.7 12.9-44.6 25.3-53.1z"/>
+      <path d="M480.7 309.2a102 102 0 01-46-9c2.2 4.3 4 7 6.3 11.4 12.8 1.1 30.5 2.6 39.7-2.4zm-92 0c14.4.2 32.6-2 46-9-2.2 4.3-4 7-6.3 11.4-12.8 1.1-30.5 2.6-39.7-2.4zm26.4-134.4c3 7.7 10.6 8.9 18.8 4.3 6 3.6 15.2 3.8 18.4-4 2.4 19.2-17.8 14.7-18.5 11-7.5 7.2-21.5 3-18.7-11.3z"/>
+      <path d="M434.4 321.3l7.6-8.7 1-116.4-9-8-9 7.6 1.8 117.2 7.6 8.3z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/is.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/is.svg
new file mode 100644
index 0000000..08d1e68
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/is.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-is" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M85.4 0h486v486h-486z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="0" clip-path="url(#a)" transform="translate(-90) scale(1.0535)">
+    <path fill="#003897" d="M0 0h675v486H0z"/>
+    <path fill="#fff" d="M0 189h189V0h108v189h378v108H297v189H189V297H0V189z"/>
+    <path fill="#d72828" d="M0 216h216V0h54v216h405v54H270v216h-54V270H0v-54z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/it.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/it.svg
new file mode 100644
index 0000000..615c58f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/it.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-it" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h512v512H0z"/>
+    <path fill="#009246" d="M0 0h170.7v512H0z"/>
+    <path fill="#ce2b37" d="M341.3 0H512v512H341.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/je.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/je.svg
new file mode 100644
index 0000000..c63ccb2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/je.svg
@@ -0,0 +1,29 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-je" viewBox="0 0 30 30">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M6.2 0h18v18h-18z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="translate(-10.33354 0) scale(1.6667)">
+    <path fill="#fff" d="M0 0h30v18H0z"/>
+    <path fill="#df112d" fill-rule="evenodd" d="M0 0v1.2L13 9 0 16.8V18h2l13-7.8L28 18h2v-1.2L17 9l13-7.8V0h-2L15 7.8 2 0H0z"/>
+    <g transform="translate(.4) scale(.12217)">
+      <path fill="#e8112d" stroke="#000" stroke-width=".1" d="M132.7 22.2c3.1 12.8 1.4 28.6-12.9 37.4-14.2-8.8-16-24.6-12.8-37.4 3.4-3 18.6-4.9 25.7 0z"/>
+      <path fill="#f9dd16" stroke="#000" stroke-width=".1" d="M119.8 19.7a26 26 0 0113 3.1 28 28 0 014.9-12.1c-2.5 0-3.6 1.3-3.6 2.6-.6-1.7-3-1.6-3.8-.7 2.7 1.8.6 5-1.8 4.4-1.1-.3-1.7-1.1-2-2.3a1.3 1.3 0 10-.5 0 2.9 2.9 0 01-3.1 1.3c-1.3-.3-1.9-1.5-1.9-2.5 0-2.7 2.6-3.1 3.4-2.6 0-1.8-2.9-3.3-3.8-1.8a4.8 4.8 0 00-.8-5.8A4.8 4.8 0 00119 9c-.9-1.5-3.7 0-3.7 1.8.7-.5 3.3-.1 3.3 2.6 0 1-.6 2.2-1.8 2.5a3 3 0 01-3.2-1.3 1.3 1.3 0 00.6-.4 1.3 1.3 0 10-1.1.4c-.2 1.2-.9 2-2 2.3a2.4 2.4 0 01-1.8-4.4c-.8-1-3.2-1-3.8.7 0-1.3-1.1-2.6-3.6-2.6a28 28 0 015 12.1 26 26 0 0113-3.1z"/>
+      <g id="b" stroke="#000">
+        <g fill="#f9dd16" stroke-width=".1">
+          <path d="M130.7 32.2c-.4 0-.4.5-.5.5.8 0 1.2-.3 1.4-.7v.6c.6-.2.8-.7.6-1l.7.2c-.4-.3-.1-1-.8-1.4.2 0 .6.2.8.5-.1-.7-.2-1.1-.8-1.5h.5a.9.9 0 01-.4-.8c0-.4-.2-.4-.6-.3l-1.8.1c-1 0-2 0-2.8-.6 1.3.6 3-.6 3-1.5 0-1-1.4-2-4-1.4-2.6.6-5.8.4-5.8-.5s2.3-1 3.5-.8c1.2.2 2 .3 4.2-.5-.5.2-2.3.3-3.7-.1s-4.8-.4-4.8 1.4c0 1.9 3.6 1.7 6.8 1.2 1.8-.2 2.8 0 2.8.5 0 .6-1.7.8-3 .7a10 10 0 00-4.1.3c-1.3.4-2.2 0-3.6.3-.7 0-2.4 0-3.2-1.4-.5.4-2 1.1-2.3 1.9-.3.6 0 1.3.4 2 .6.8-.3.7-1 .7-.8 0-2 0-2.6-.8-.6-.6-1.3-1.1-1.9-.7-.3.3 0 .6.2.5l.8.2a1 1 0 00-1 .1c-.3.2 0 .6.3.5.2-.1.7-.2 1 0-.3 0-.7 0-.8.2s0 .4.3.4c.6 0 .7.4 1.3.3a.9.9 0 00-.7.4c.6-.3 1.1.4 1.8.2-.2.1-.7.4-.7.6.4-.5 3.2.4 3.2-.7l-.1.8c.3-.2 1.4-.3 1.8-1 0 .2 0 .5-.2.6.3 0 .8-.2 1.3-.9.2-.3.2-.5.2-.7.5 0 .8-.1 1.2-.4.4-.3.8.3 1.5-.2.6-.4 1.2 0 1.6-.2.3-.2.8 0 1.2-.2s1 .1 1.6-.4c1 .4 2.3 1 5.2.5 1.6-.3 2.2.3 2.2 1 0 .6-.4.6-.6.6-1 .1-1.3-.3-1.7-.2-.2.1-.4.5 0 .7-.3.1-.3.4-.1.5s.5 0 .8-.1c-.4.1-.7.4-.5.7.1.2.4.3.7 0 .3-.4.8-.7 1.2-.7zm-18.6-8c-.8-.3-1-.3-.9.4 0 .3.3.7.5.9 0-.3.1-1 .4-1.2z"/>
+          <path d="M114.8 24.3c.8-.4 1.1-.4.9.3 0 .3-.3.7-.5.9 0-.3 0-1-.4-1.2z"/>
+          <path d="M113.5 23.8c1.6 0 1.8.8 1.7 1.7 0 1-.5.6-.8 2-.1.4-.5.5-1 .5-.3 0-.7 0-.9-.6-.3-1.3-.8-1-.8-2 0-.8.2-1.6 1.8-1.6z"/>
+          <path d="M109.4 27.5c-.4-.2-.7 0-.9 0 .6.1.6.8 1.8 1-.3 0-.4.2-.7 0 .5.4 1 .9 2.2.9.7 0 .2.3-.2.1.4.5 1.3.1 1.9 1 0-.7-1-1.7-.5-2.4-1.7-.1-1.8-1-2.7-1.7-.8-.6-.9-1.2-1.2-2.3-.1-.5-.7-.8-1-.7-.3 0-.5.3-.2.5.2.2.6.2.6.7-.3-.4-.8-.5-1-.3-.1.2 0 .5.2.5.5 0 .2.6.7 1-.5-.5-.9-.6-1.2-.3-.1.2 0 .5.4.5.5 0 1 1.2 1.8 1.5zm13 4.6c-.2 0-.1.5-.5.5.8 0 1.3-.2 1.6-.5l-.2.5c.4-.3 1.5-.4 2-.3s.6-.1.8-.4c.2-.4 0-.6-.3-.8-.3-.3-.4-.7-.3-1.3-1.4-2-4-1-4-.2.9 1.1 1 1 1.8 1.1.7.2 1.2.2.7.6-.2.2-1 0-1.5.1-1.3 0-2-.9-2.3-.4-.3.4 0 .6.6.6-.4 0-1 0-.9.4.2.7.8-.1 1.1.1-.2 0-.6.1-.6.3 0 .2.5.5 1 0a1.6 1.6 0 011-.3z"/>
+        </g>
+        <path fill="none" stroke-width=".1" d="M123.5 29.2c-.4-.2-.9-.3-1.4-.2m-5.6 0c-.4.8-.2 1.2-.1 1.6m-4-5.6c.2.2.4-.2.8.2-.1-.1-.3.3-.6 0m2-.1c-.3 0-.5-.3-.9.1.1-.1.3.3.6 0m-.6 0v.3c.1.7.3 1-.3 1-.5 0-.3-.3-.2-1v-.3"/>
+        <path fill="#ff0016" stroke-width=".1" d="M113.5 27.7c.4 0 .6 0 .6-.6 0-.2.3-.3.1-.7.2.4-.7.4-.7.2 0 .2-1 .2-.8-.2-.1.4.2.5.1.7 0 .6.2.6.7.6z"/>
+        <path stroke-width=".1" d="M113 26.5l-1-.3m1 .3h-1m1 .1l-.9.3m1.7-.4l1-.3m-1 .3h1.2m-1.2.1l1 .3"/>
+        <path fill="#0051ba" stroke-width="0" d="M108.1 23.4c-.3-.4-1 0-1 .4.2-.3.6.1.9 0 .1 0 .3-.2.1-.4zm-.3.9c-.3-.4-1.1 0-1.1.4.2-.3.6.1.9 0 .1 0 .3-.3.2-.4zm-.2 1.2c-.4-.4-1.1 0-1 .5.2-.3.6 0 .8 0 .2-.1.3-.4.1-.5zm.3 3.7c-.4-.4-1 .1-1 .6.2-.4.7 0 1-.2 0 0 .2-.3 0-.5zm0 .7c-.5-.1-1 .6-.7 1 0-.5.6-.3.8-.5l-.1-.5zm.6.7c-.5-.2-1 .4-.7.8 0-.3.6-.2.7-.4v-.5zm11.7 1.1c-.5-.1-1 .5-.7 1 0-.5.6-.3.8-.5l-.1-.5zm.6.6c-.5-.1-.9.6-.6 1 0-.5.6-.4.7-.6.1-.1.1-.4 0-.4zm-.4-1.4c-.4-.2-1 .4-.9.8.2-.4.7-.1.9-.3V31zm8.3 1c-.4-.1-.8.6-.6 1 0-.4.6-.3.8-.5 0-.2 0-.5-.2-.5zm0-.7c-.4-.3-1 .3-.8.7.2-.3.7-.1.9-.3v-.5zm.4 1.3c-.5 0-.9.7-.6 1 0-.4.6-.3.7-.5.1-.2 0-.4-.1-.5zm-15.6-5.2c.3 0 .4.1.4.7 0 1 0 1.6-.4 1.6-.3 0-.3-.5-.3-1.3 0-.4 0-.7-.1-.6 0-.3.1-.4.4-.4z"/>
+      </g>
+      <use width="30" height="18" transform="matrix(.9 0 0 .9 11.6 13.7)" xlink:href="#b"/>
+      <use width="30" height="18" transform="matrix(.67 0 0 .75 39.2 27.5)" xlink:href="#b"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/jm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/jm.svg
new file mode 100644
index 0000000..c261da0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/jm.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-jm" viewBox="0 0 512 512">
+  <g fill-rule="evenodd">
+    <path d="M0 0l256 256L0 512zm512 0L256 256l256 256z"/>
+    <path fill="#090" d="M0 0l256 256L512 0zm0 512l256-256 256 256z"/>
+    <path fill="#fc0" d="M512 0h-47.7L0 464.3V512h47.7L512 47.7z"/>
+    <path fill="#fc0" d="M0 0v47.7L464.3 512H512v-47.7L47.7 0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/jo.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/jo.svg
new file mode 100644
index 0000000..ab1c62a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/jo.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-jo" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M113.6 0H607v493.5H113.6z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="translate(-117.8) scale(1.0375)">
+    <g fill-rule="evenodd" stroke-width="1pt">
+      <path d="M0 0h987v164.5H0z"/>
+      <path fill="#fff" d="M0 164.5h987V329H0z"/>
+      <path fill="#090" d="M0 329h987v164.5H0z"/>
+      <path fill="red" d="M0 493.5l493.5-246.8L0 0v493.5z"/>
+      <path fill="#fff" d="M164.8 244l22 10.6h-24.5l5.5 24-15.3-19.3-15.3 19.2 5.5-23.9H118l22.1-10.7-15.3-19.1 22.1 10.6 5.5-23.9 5.5 24 22-10.7z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/jp.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/jp.svg
new file mode 100644
index 0000000..dc7a64a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/jp.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-jp" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M177.2 0h708.6v708.7H177.2z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#a)" transform="translate(-128) scale(.72249)">
+    <path fill="#fff" d="M0 0h1063v708.7H0z"/>
+    <circle cx="523.1" cy="344.1" r="194.9" fill="#d30000" transform="translate(-59.7 -34.5) scale(1.1302)"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ke.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ke.svg
new file mode 100644
index 0000000..0b82f3a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ke.svg
@@ -0,0 +1,23 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-ke" viewBox="0 0 512 512">
+  <defs>
+    <path id="a" stroke-miterlimit="10" d="M-28.6 47.5l1.8 1 46.7-81c2.7-.6 4.2-3.2 5.7-5.8 1-1.8 5-8.7 6.7-17.7a58 58 0 00-11.9 14.7c-1.5 2.6-3 5.2-2.3 7.9z"/>
+  </defs>
+  <path fill="#fff" d="M0 0h512v512H0z"/>
+  <path d="M0 0h512v153.6H0z"/>
+  <path fill="#060" d="M0 358.4h512V512H0z"/>
+  <g id="b" transform="matrix(3.2 0 0 3.2 255.8 256)">
+    <use width="100%" height="100%" stroke="#000" xlink:href="#a"/>
+    <use width="100%" height="100%" fill="#fff" xlink:href="#a"/>
+  </g>
+  <use width="100%" height="100%" transform="matrix(-1 0 0 1 511.7 0)" xlink:href="#b"/>
+  <path fill="#b00" d="M255.8 102.4c-19.2 0-51.2 51.2-60.8 76.8H0v153.6h195c9.7 25.6 41.7 76.8 60.9 76.8 19.2 0 51.2-51.2 60.8-76.8H512V179.2H316.6c-9.6-25.6-41.6-76.8-60.8-76.8z"/>
+  <path id="c" d="M316.6 332.8a220 220 0 0016-76.8 220 220 0 00-16-76.8 220 220 0 00-16 76.8 220 220 0 0016 76.8"/>
+  <use width="100%" height="100%" transform="matrix(-1 0 0 1 511.7 0)" xlink:href="#c"/>
+  <g fill="#fff" transform="matrix(3.2 0 0 3.2 255.8 256)">
+    <ellipse rx="4" ry="6"/>
+    <path id="d" d="M1 5.8s4 8 4 21-4 21-4 21z"/>
+    <use width="100%" height="100%" transform="scale(-1)" xlink:href="#d"/>
+    <use width="100%" height="100%" transform="scale(-1 1)" xlink:href="#d"/>
+    <use width="100%" height="100%" transform="scale(1 -1)" xlink:href="#d"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/kg.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/kg.svg
new file mode 100644
index 0000000..71ee7b8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/kg.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-kg" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M104 0h416.3v416.3H104.1z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-128) scale(1.23)">
+    <path fill="#be0027" d="M0 0h625v416.3H0z"/>
+    <path fill="#ff0" d="M189.8 212.3c11.1-13.5 34.1-.3 52.9-10-22.3 1.2-34.4-10.7-52-9 18.2-11.2 33.7 3.6 54.1-2.4-27-2.2-25.8-14.3-50.3-16 21.8-9.3 32.5 9.6 53.9 5.3-25.2-5.8-28.5-20.6-47.2-23.8 27.3-4.1 25.5 12 52.3 14-27.2-11.6-20-21.8-42.8-30.6 25.5-.6 23.8 17 49.5 21.6-22-14-19.3-26.8-37.5-36.8 21.6.4 23.7 22.5 45.7 29.3-19.6-15.5-14.5-28.7-31.4-42.6 21.4 5 18.3 24.1 40.6 36.2-16.5-18.3-10.2-31.5-24.6-46.6 20.6 6.7 12.8 24.8 34.2 42-12.3-20.2-4.7-33.1-16.8-50.2 19.2 10 9.9 28.4 27.7 46.8-8.4-20.7 0-33.6-8.6-52 16.4 12.3 6.7 32 19.9 50.9-4.8-26 6.4-30.3 2.9-53 12.4 15.3-1.5 30.6 8 53-1-25.5 12.5-31.5 10.1-52 12.4 18.4-6.9 34.4 1.2 54.1 2-24.3 18-30.5 18.3-49.4 9.7 17.3-11.5 29.8-8 52.8 6.9-25.4 23.9-28.5 26-45.6 5.8 20-17.4 29.4-16 51.6 6.9-22.5 28.1-25.2 32.5-41.8 2.6 21.2-18.3 25-24.1 48.4 11-19 30.2-20.7 38.8-35.8-.7 21-24.3 23.7-31.5 43.4 13.6-16.7 30.6-13.8 44.2-28.6-1.4 19-25.4 17.9-38.2 37.5 14.8-13.6 37-9.5 48.3-21.2-.6 16.7-30 15.5-44 30.4 17.2-9.3 38.9-3.8 51.5-12.6C427 184.3 396 181 381 192.4c20.5-5.7 36.3 3 53-3.3-8.1 14.3-36.3 5.3-51.3 14.6 17.8-3 36.7 7.7 52.9 4.3-5.3 12.3-36.2-.8-53 7 20-.3 33 12.5 51.4 11.6-10 11.2-37.2-4.2-53-1.6 19.3 4 34 20 48.7 20.8-12 9.2-34.5-11.8-52.8-9.1 18.8 5 34.6 26.4 45.4 26.9-11.6 8-34.6-18.3-50.3-17.4 19 8.7 27.8 30.5 40.4 33.6-15.5 5-30.8-23.7-47.5-24.7 19.3 12.2 20.4 30.8 35.3 39-15.6 4-26.8-28.5-43.3-31.2 15.9 11.6 18.2 36.5 28.8 44.4-16 .8-21.7-33.1-38-38 14 11.7 10.6 37 21.4 47.9-16.5-3.4-14.4-33-31.7-43 12.4 15.8 6 38.1 14.2 50.7-16.2-6.5-9.1-33-24.6-48 8.4 16.8-.6 36.3 6 52.5-14.7-7.2-4.8-38.5-16.1-51 5.2 19.4-4.4 35.4-.5 52.7-15.1-17.5 2.3-35-10.8-53 3.4 20.6-10.9 34.8-8.6 52-12-14 6.4-36.5-2.9-54.1 2 20.1-16.5 37.7-15.2 50.4-9.7-16.2 10.8-35.4 5.3-53.9-1.2 19.2-19.8 29.6-23.3 47-6.3-19.2 15.9-33.1 14-52-6.4 18-24.4 25.2-30.8 42.6-5.2-19.2 21.1-29.4 21.8-49.6-8.1 19-29.7 23.1-36.8 37.6-2.7-19 27.5-27.6 28.6-45.7-9.7 17.4-33.3 18-41.5 31.9-1.2-19 30.6-21.4 35.6-41.3-9.7 14.8-35.6 13-46.3 25 1.7-17.7 36-18.8 41.5-34.6-12.8 12.3-36.5 7.2-50 17 7.5-17.4 39.8-13.7 47-26.3-14.2 7.5-39.5.3-52 7.7 11.4-16.4 36.5-6.6 50.7-18-23.1 3.4-37-5.8-53-1.5z"/>
+    <path fill="#ff0" d="M393.4 208.2a80.7 80.7 0 11-161.3 0 80.7 80.7 0 01161.3 0z"/>
+    <path fill="#be0027" d="M383 208.4a70.1 70.1 0 11-140.2 0 70.1 70.1 0 01140.3 0z"/>
+    <path fill="#ff0" d="M373.3 208.5a60.2 60.2 0 11-120.5 0 60.2 60.2 0 01120.5 0z"/>
+    <path fill="#be0027" d="M261.8 169c16.7-.3 37.4 1.2 51.1 12.2a79 79 0 0149.2-11.7l9 16.4c-13-1.3-25.7.5-40.7 6.6a69.3 69.3 0 0128.1 58.6c-2.2 2.8-5.6 5.8-7.8 8.5 3.2-23.1-9-49-26.8-62.6 14.4 20.9 23 39.6 20.6 65.5l-8.2 5.1c3.8-22.8-1.5-49.5-18.4-65a87.5 87.5 0 0113.4 65.8c-2.6.8-6.6 3-9.3 3.8a78 78 0 00-8.8-64 77.6 77.6 0 00-8.5 63.4l-8.6-2.5c-4.6-24.5 1.8-52 12.9-66.4-11.3 6.6-22 34.7-19 63.4l-7.6-3.5c-3.7-21.4 6-49.3 20-65.4-15.8 10-28.7 34.4-26.4 60.7-2.4-2.1-4.7-3.2-7.1-5.3-2.8-23 10.5-46.1 26-60a87.6 87.6 0 00-40.6-6.7c2.5-5.3 5-11.5 7.5-16.8z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/kh.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/kh.svg
new file mode 100644
index 0000000..8c888f1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/kh.svg
@@ -0,0 +1,61 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-kh" viewBox="0 0 512 512">
+  <path fill="#032ea1" d="M0 0h512v512H0z"/>
+  <path fill="#e00025" d="M0 128h512v256H0z"/>
+  <g fill="#fff" stroke="#000" transform="matrix(1.28 0 0 1.28 6 -556.7)">
+    <g stroke-linejoin="bevel">
+      <path d="M139 623.5h113.8v43.8H139z"/>
+      <path d="M247 647.6h3.5v16.5H247zm-108-8.1h113.8v5H139zm0-7h113.8v4.6H139z"/>
+      <path stroke-width=".9" d="M139 625.7h113.8v4.3H139z"/>
+      <path d="M169 647.6h3.6v16.5H169zm49 0h3.6v16.5H218zm-78 0h3.5v16.5H140zm7 0h3.5v16.5H147zm7.5 0h3.5v16.5h-3.5zm7.5 0h3.5v16.5H162zm62.8 0h3.6v16.5h-3.6zm7.5 0h3.6v16.5h-3.6zm7.5 0h3.6v16.5h-3.6z"/>
+      <path stroke-linejoin="miter" d="M94.5 669.5a9.3 9.3 0 004.4-5.3H292a9.3 9.3 0 004.4 5.3z"/>
+    </g>
+    <path d="M193 556.8s-.1-4.1 2.3-4.2c2.3 0 2.2 4.2 2.2 4.2zm-12.5 54.5v-5.5c0-2.8-2.8-3-2.8-5 0 0-.4-3 .4-4.4 1.1 4 3 3.3 3 1.6 0-1.4-1-2.8-3.3-6.3-.8-1.1-.3-4.6.7-5.9.4 3 .9 4.5 2.2 4.5.8 0 1.4-.5 1.4-2 0-2-1.3-3-2-4.8a5 5 0 011.1-5.3c.5 3 .4 4.2 1.7 4.2 2.7-.9 0-4.8-.6-5.8-.6-1.1 1-3.4 1-3.4.8 2.7 1 2.9 2 2.6 1.2-.3 1-2-.4-3.4-.9-1-.8-2.3.2-3.3 1 1.9 2.2 1.8 2.3.6l-.8-4.4H204l-.9 4.3c-.2 1.2 1.4 1.5 2.4-.5 1 1 1.1 2.4.2 3.3-1.4 1.4-1.6 3.1-.4 3.4 1 .3 1.2 0 2-2.6 0 0 1.5 1.5 1 3.4-.6 1-3.3 5-.6 5.8 1.3 0 1.2-1.2 1.7-4.2a5 5 0 011 5.3c-.6 1.8-2 2.8-2 4.8 0 1.5.7 2 1.5 2 1.3 0 1.8-1.4 2.2-4.5 1 1.3 1.5 4.8.7 6-2.3 3.4-3.4 4.8-3.4 6.2 0 1.7 2 2.4 3-1.6.9 1.4.5 4.4.5 4.4 0 2-2.7 2.2-2.8 5v5.5zm7.2-46l-.4-3.1h15.9l-.4 3.1zm1-3.2l-.2-2.5H202l-.3 2.5zm2.3-2.6l-.3-2.6h9l-.1 2.6zm33 110c-2-.7-5-2.9-5-5v-24.3l2.6-3.4H169l2.5 3.4v24.3c0 2.1-2 4.3-4 5z"/>
+    <path stroke-linejoin="bevel" d="M178.2 647.6h3.6v16.5h-3.6zm30.4 0h3.6v16.5h-3.6z"/>
+    <path d="M168 609.2v27.6h54v-27.6a4.2 4.2 0 00-2.6 2.8v11.8h-48.7V612s-.6-2-2.8-2.8z"/>
+    <path d="M214.6 669.5c-1.8-.7-5.6-2.9-5.6-5v-27.2c.4-1.5 2.4-2.4 3.7-3.4H177c1.7 1 3.6 1.7 4.3 3.4v27.2c0 2.1-3 4.3-4.8 5z"/>
+    <path d="M219.4 634.2v-19.6h-4.9v-1.9h-38.8v2h-5v19.5zM207 669.5c-1.8-.7-4.3-2.9-4.3-5v-23.2l1.4-2.1h-17.7l1.5 2v23.3c0 2.1-2.6 4.3-4.3 5z"/>
+    <path d="M190.7 639.2h9v30.3h-9z"/>
+    <path stroke-linejoin="bevel" d="M204.4 632.5c0-2 5.8-2.1 8.8-3.8h-36c3 1.7 8.7 1.8 8.7 3.8l1.2 3.9 15 .6z"/>
+    <path d="M211.4 611.3c0-4.9.2-6.7 1.7-6.7V620c-3.7 1.4-6.3 6-6.3 6h-23.2s-2.6-4.6-6.3-6v-15.5c1.8 0 1.8 2 1.8 6.7zm1.7-2c0-5.6 4.9-6.2 4.9-6.2v5c-1.9-.1-2.8 1.6-2.8 4 0 2.5 1.5 2.5 1.5 2.5v14.2h-3.6z"/>
+    <path d="M177.3 609.3c0-5.6-4.9-6.2-4.9-6.2v5c1.9-.1 2.8 1.6 2.8 4 0 2.5-1.5 2.5-1.5 2.5v14.2h3.6z"/>
+    <g fill="none" stroke-width=".8">
+      <path d="M186.8 570.6H204m-19.2 5.4h21m-23 6.5h24.9m-27 7.9h29.5m-30.2 9h30.4"/>
+      <path stroke-width="1" d="M170.8 629h48.6m-33.2 0h18v6.6h-18z"/>
+    </g>
+    <path d="M184 614.2c3 3.6 2.6 9.7 2.6 13.3H204c0-3.6-.4-9.7 2.6-13.3zm9.7-41l-2.4-1.3v-3.5c1 .3 2 .4 2.2 2 .3-2.3 1-2.1 1.9-3 1 .9 1.5.7 1.9 3 0-1.6 1.2-1.7 2.1-2v3.5l-2.3 1.2z"/>
+    <path d="M193.5 578.9l-4-2.8V573c1.5.3 3 .5 3.2 2.2.4-2.5 1.3-3.7 2.7-4.7 1.3 1 2.2 2.2 2.7 4.7.1-1.7 1.7-1.9 3-2.2v3.2l-3.9 2.7z"/>
+    <path d="M193.2 587.8l-4.5-4v-4.7c1.6.4 3.4.6 3.6 3.1.5-3.5 1.5-5.4 3-6.8 1.6 1.4 2.6 3.3 3.2 6.8.2-2.5 2-2.7 3.6-3.1v4.7l-4.6 4zm8.4 5.3l-4 5.7h-4.7l-4.1-5.7zm-15.2 9.5c2 1.1 2.8 3.4 3 7.6H201c.2-4.2 1-6.5 3-7.6z"/>
+    <path stroke-linejoin="bevel" d="M204.2 593v-5.6a5.2 5.2 0 00-3.8 3.3c0-2-2.5-6.3-5.2-8.5-2.7 2.4-5.3 6.4-5.2 8.4-.5-1.5-1.8-2.7-3.8-3.2v5.7z"/>
+    <path stroke-linejoin="bevel" d="M205 602.6V597c-2.1.6-3.5 1.7-4.1 3.3 0-2-2.7-6.3-5.7-8.5-3 2.5-5.8 6.4-5.7 8.5-.5-1.5-2-2.7-4.1-3.3v5.7z"/>
+    <path stroke-linejoin="bevel" d="M207.4 614.3v-6.6a9.6 9.6 0 00-5.1 3.8c0-3.5-4-9-7.1-10.7-3.2 1.8-7.1 7.4-7.1 10.7a9.7 9.7 0 00-5.2-3.8v6.6z"/>
+    <path stroke-linejoin="bevel" d="M206 629v-6.8c-2.4.9-3 3.1-3.8 4.7.3-6.9-3.8-14.2-7-16.1-3.2 1.9-7.4 9.4-7 16-.8-1.4-1.5-3.7-3.8-4.6v6.7z"/>
+    <path d="M204.4 639.2v-6.8c-2.5.6-2.6 1.5-3.4 3 .3-4.1-2.6-8.8-5.8-10.6-3.2 1.8-6 6.5-5.8 10.6-.8-1.5-.9-2.4-3.4-3v6.8z"/>
+    <g id="a">
+      <path d="M99 664.2v-20.4c-.7-2.6-3-5-4.6-5.4v-18l3.7 2 4.3 18.9v23z"/>
+      <path d="M99 664.3v-20.5c-.7-2.6-3-5-4.6-5.4v-19.2c2.5 0 3.7 3.2 3.7 3.2l4.3 18.9v22.9z"/>
+      <path d="M96.3 669.5c1.7-.7 4.2-2.9 4.2-5v-25.6l-1.2-2H143l-1.7 2v25.6a6 6 0 003.4 5z"/>
+      <path d="M135.8 669.5c-1.7-.7-4.2-2.9-4.2-5v-24.3l3.6-3.4h-29.6l3.6 3.4v24.3c0 2.1-2.5 4.3-4.2 5z"/>
+      <path d="M131.7 669.5c-1.7-.7-4.3-2.9-4.3-5v-22l2.4-3.3H111l2.4 3.3v22c0 2.1-2.5 4.3-4.3 5z"/>
+      <path d="M116 639.2h8.9v30.4h-9z"/>
+      <path stroke-linejoin="bevel" d="M103.7 647.6h3.6v16.5h-3.6zm30.8 0h3.5v16.5h-3.6zm-33.9-27.8h4.4v17h-4.4zm0-3.2h4.3v3.2h-4.3zm35.6 6.9h6.1v13h-6.1z"/>
+      <path d="M104.9 636.6v-29c1.2 0 1.4 4.3 4.2 4.3 1.5 0 1.4-1.8.5-3.2-.7-1.3-1.6-3-.4-6.3.9 2.5 3.1 3.3 2.7 1.8-.7-2.7-2.8-3.2-1.2-7.3.5 3.4 2.7 3.3 2.2 1.3-.6-2.3-1.9-3.3-.3-6.5.9 3.7 2 3.5 2 1.2 0-3.4 0-7 4.2-8.3 0 0 .3-3 1.9-3 1.5 0 1.8 3 1.8 3 4.3 1.3 4.2 5 4.2 8.3 0 2.3 1.1 2.5 2-1.2 1.6 3.2.3 4.2-.3 6.5-.5 2 1.7 2.1 2.2-1.3 1.6 4.1-.5 4.6-1.2 7.3-.4 1.5 1.8.7 2.7-1.8 1.2 3.3.3 5-.4 6.3-.8 1.4-1 3.2.5 3.2 2.8 0 3-4.2 4.2-4.2v28.9zM98 614.7v22.1h2.5v-22.1c-.9-.5-1.7-.5-2.5 0z"/>
+      <path d="M98.2 629c3.1 1.6 6.2 3.5 7 7.8h-7zm43.2-6.6v14.4h2v-14.4c-.6-.3-1.5-.4-2 0z"/>
+      <path d="M143.4 629c-3.1 1.5-6.2 3.3-7 7.7h7zm-20.6-33.7l1.8-1.5v-2c-.6 0-1 .3-1.5 1a5 5 0 00-2.5-3 5 5 0 00-2.6 2.9c-.5-.7-.8-.8-1.5-1v2l1.8 1.6z"/>
+      <path d="M123.8 600.2l.8-1.9v-2.5c-.6 0-1 .3-1.5 1a5 5 0 00-2.5-3 5 5 0 00-2.6 2.9c-.5-.7-.8-.8-1.5-.9v2.5l.8 1.9z"/>
+      <path d="M124 606.8l2.6-3.3v-3.2c-1 0-1.5.5-2.2 1.6-.7-2.3-2-2.7-3.8-3.8-1.9 1-3.2 1.5-3.8 3.7-.8-1.1-1.3-1.4-2.3-1.5v3.2l2.7 3.3z"/>
+      <path d="M124.7 613.3s3.2-2.7 3.3-4.2v-3.5c-1.2.1-2.3.4-3.2 1.9-.8-2.9-2-3.7-4.2-5-2.3 1.3-3.5 2.1-4.2 5-1-1.5-2-1.8-3.3-2v3.6a15 15 0 003.3 4.2z"/>
+      <path d="M126 625.3s4.4-4.7 4.5-6.6v-5.4c-1.6.2-3.2 1.3-4.4 3.6-1-4.5-2.6-7.6-5.5-9.8-3 2.2-4.6 5.3-5.6 9.8-1.2-2.3-2.7-3.4-4.3-3.6v5.4c.3 1.9 4.4 6.6 4.4 6.6z"/>
+      <path d="M126 632.4s3.7-3.7 4.5-5.3v-5.4c-1.6.2-3.2 1.3-4.4 3.5a14 14 0 00-5.5-9.2c-3 2.2-4.6 4.7-5.6 9.2-1.2-2.2-2.7-3.3-4.3-3.5v5.4c1 1.6 4.4 5.3 4.4 5.3z"/>
+      <path d="M127.5 636.6c-1-4.7-2-8.2-7.1-11.7-5.2 3.5-6.1 7-7.2 11.7z"/>
+      <path d="M130.2 639.2v-6.8c-2.4 1-4.5 2.3-5.3 3.8-.8-3.8-2.5-5.4-4.6-7.7-2.1 2.3-3.5 4-4.4 7.7-.8-1.5-2.9-2.9-5.2-3.8v6.8z"/>
+    </g>
+    <use width="100%" height="100%" transform="matrix(-1 0 0 1 390.7 0)" xlink:href="#a"/>
+    <path d="M72.7 694.3H318v12.5H72.7zm-6.5 12.5h258.3v12.5H66.2zm19.4-31.3H305v8.1H85.6z"/>
+    <path d="M79.2 683.6h232.4v10.6H79.2zm10.2-14.3h212v6.2h-212z"/>
+    <path d="M112.4 669.3h16v50h-16z"/>
+    <path d="M116 669.3h8.9v50h-9zm71 0h16v50h-16z"/>
+    <path d="M190.7 669.3h9v50h-9zm71.5 0h16v50h-16z"/>
+    <path d="M265.7 669.3h9v50h-9z"/>
+    <path fill="none" d="M99 664.2h193M115.8 713h9.2m-9.2-6.3h9.2m-9.2-6.2h9.2m-9.2-6.3h9.2m-9.2-6.2h9.2m-9.2-6.3h9.2m-9.2-6.2h9.2m65.8 37.5h8.6m-8.6-6.3h8.6m-8.6-6.2h8.6m-8.6-6.3h8.6m-8.6-6.2h8.6m-8.6-6.3h8.6m-8.6-6.2h8.6m66.2 37.5h9.2m-9.2-6.3h9.2m-9.2-6.2h9.2m-9.2-6.3h9.2m-9.2-6.2h9.2m-9.2-6.3h9.2m-9.2-6.2h9.2"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ki.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ki.svg
new file mode 100644
index 0000000..bfc5cca
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ki.svg
@@ -0,0 +1,36 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ki" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M161.8 5.8h491.7v491.6H161.8z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="translate(-168.5 -6) scale(1.0413)">
+    <path fill="#e73e2d" fill-rule="evenodd" d="M4 5.8h802.6V300H4z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.6" d="M358 276.6c-18.7-14.5-53.5-9.6-59.2-49.2 26.6 20.6 21.8-1.2 61.6 18.5l-2.4 30.7z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.6" d="M363 258.6c-13.4-19.6-48-25.5-41.3-65 19 27.8 21.1 5.6 53 36.5l-11.8 28.5z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.6" d="M369 245.8c-4.8-23.1-34.5-41.9-13.2-75.8 7 33 17.3 13.2 35 54L369 245.8z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.6" d="M383 234c2.5-23.6-20-50.5 10.6-76.3-3.5 33.5 12.5 18 16.8 62L382.9 234z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.6" d="M395.4 224.4c12-20.4 2.4-54.2 40.9-65.2-16.9 29.1 4 21.4-10.1 63.5l-30.8 1.7z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.6" d="M413.5 226.9c17.8-15.6 19.5-50.6 59.5-48.8-25.3 22.2-3 21.6-29.7 57l-29.8-8.2z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.6" d="M429.4 236c21.6-9.6 33.5-42.6 71.2-29.1-30.7 13.8-9.2 19.8-45.2 45.7l-26-16.5z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.6" d="M442.6 250.6c23.5-3.2 44.2-31.6 76.6-8-33.4 4.6-14.4 16.4-56.2 31.2l-20.4-23.2z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.6" d="M526.2 255l-107.6 2.4 4.5 29 103.1-31.3z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.6" d="M510.4 215.5l-99.7 38.3 16.7 32 83-70.3z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.6" d="M431.2 275.3l51.6-93.7-79.1 73.6 27.5 20z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.3" d="M381.9 573.2l-13.5-82.6-15.4 82.6h28.9z" transform="matrix(1.2145 .40191 -.39943 1.207 195.4 -577.8)"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.6" d="M424 259l-17.4-105.9-19.2 106.4 36.6-.5z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.3" d="M378.5 569.7l-10.2-79-17.9 83.5 28.1-4.5z" transform="matrix(1.1791 -.4886 .48383 1.1816 -307 -238.2)"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.6" d="M407.2 249.3l-77.9-65.8 55.4 94.1 22.5-28.3z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.6" d="M302 216l83.5 69 12.9-36.1-96.5-33z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.6" d="M384.7 256.3l-98.3-1.4 97.9 32.6.3-31.2z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.6" d="M464.4 274a59 59 0 11-117.9 0 59 59 0 01118 0z"/>
+    <path fill="#005989" fill-rule="evenodd" d="M3.2 297.1h806.6v200.3H3.2z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M2.8 441.7c15 7 36.4 24.3 59.4 24.3 38.5-.2 39.5-26.3 78.5-25 39 1 32 28.4 84.7 28.2 43.5 0 57.6-33.3 95.2-29.3 27.8-1.4 39.2 31.4 82 31.8 44.3 1 60.5-35.8 88.3-32.7 29.7 0 39.4 29.6 81 29.8 53 .3 62.2-30.8 95.3-28.8 23.6-.5 42.2 22.8 76.8 23.3 27.5.5 50.6-20.3 66.2-27.8l.8-35.4c-16.4 6.1-40.7 26-65.1 26.3-35 1.3-56.7-23-81.1-22.8-29.2.3-40.8 30-90.3 30-45.3 0-55.7-30-84.9-30-28.5.2-37.2 32.7-86.6 32-40.3-.4-56-31-84.6-30.7-30.2 0-61.5 29.7-95 28.2-46.2-2-56.2-28.2-86.5-28.2-22.6 0-47 24.6-74.2 25-27 .5-57.5-24.5-60.3-25l.4 36.8zm0-70c15 7 36.4 24.3 59.4 24.3 38.5-.3 39.5-26.4 78.5-25.1 39 1 32 28.4 84.7 28.3 43.5-.1 57.6-33.3 95.2-29.3 27.8-1.5 39.2 31.4 82 31.8 44.3 1 60.5-35.8 88.3-32.8 29.7 0 39.4 29.6 81 29.9 53 .2 62.2-30.8 95.3-28.9 23.6-.5 42.2 22.8 76.8 23.4 27.5.5 50.6-20.4 66.2-27.8l.8-35.4c-16.4 6-40.7 26-65.1 26.2-35 1.3-56.7-23-81.1-22.8-29.2.3-40.8 30-90.3 30-45.3 0-55.7-30-84.9-30-28.5.3-37.2 32.7-86.6 32.1-40.3-.5-56-31-84.6-30.7-30.2 0-61.5 29.6-95 28.2-46.2-2-56.2-28.2-86.5-28.2-22.6 0-47 24.6-74.2 25-27 .4-57.5-24.5-60.3-25l.4 36.8z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M2.8 302.4c15 7 36.4 24.3 59.4 24.3 38.4-.3 39.4-26.3 78.3-25.1 39 1 32 28.4 84.7 28.3 43.5 0 57.6-33.3 95-29.3 27.9-1.4 39.2 31.4 82 31.8 44.2 1 60.5-35.8 88.3-32.7 29.6 0 39.3 29.6 80.8 29.8 53 .2 62.2-30.8 95.3-28.8 23.6-.5 42.1 22.7 76.7 23.3 27.5.5 50.6-20.4 66.1-27.8l.8-35.4c-16.3 6.1-40.7 26-65 26.2-35 1.3-56.7-23-81-22.7-29.2.2-40.8 30-90.3 30-45.2 0-55.6-30-84.7-30-28.5.2-37.3 32.6-86.6 32-40.3-.4-56-31-84.5-30.7-30.2 0-61.4 29.6-94.9 28.2-46.2-2-56.2-28.2-86.4-28.2-22.6 0-47 24.6-74.2 25-27 .4-57.4-24.5-60.2-25l.3 36.8z"/>
+    <path fill="#ffc84b" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M293.2 78.7c58.6-4 47.9-9 71.5-12.8 29.7 4 33.1 22 49.7 33.1 0 0-6.2 21-26.6 18.1-2.7-8.4 9.9-11-26.4-33.2-21.1-1.2-58.8 3.7-68.2-5.2zm181.7 32.6l-42.2 1.7v10.5c28.5.9 33.6-3 42.2-12.2z"/>
+    <path fill="#ffc84b" fill-rule="evenodd" stroke="#d8aa3f" stroke-linejoin="round" stroke-width="1.6" d="M329.7 109.5c7.4-3.8 11-2.2 17.4-2.5 4.4 8 8.5 8.7 18.1 9.7a47.5 47.5 0 0038.3 20.9c28.7-.8 37.8-20.9 57.1-23.1H481c-3.4-5.8-6-9.1-13.4-9.4a195 195 0 00-52 3.4l-24 6c-7-3.4-24.3-21.5-35.3-21.1-6.5 1.7-6.5 4-9.7 6.4-6.2 2.7-12.4 1.4-17 9.7z"/>
+    <path fill="#ffc84b" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.6" d="M358.7 100.7a3 3 0 11-6 0 3 3 0 016 0z"/>
+    <path fill="#ffc84b" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M378.4 109.3c43.1-52 80.8-45.7 130-49.2 1.6 6 1 15-22.4 23-32 4.8-89.5 38.6-89.7 38.6-10.7-.5-18.2-11.7-18-12.4z"/>
+    <path fill="none" stroke="#d9a43e" stroke-linecap="round" stroke-width="1.7" d="M467 75.4l31.8 1.4m-35.2 3.8l23.2 1.9"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/km.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/km.svg
new file mode 100644
index 0000000..8f842ea
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/km.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-km" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h416.3v416.3H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(1.23)">
+    <path fill="#ff0" d="M0 0h625v104H0z"/>
+    <path fill="#fff" d="M0 104h625v104.1H0z"/>
+    <path fill="#be0027" d="M0 208.1h625v104H0z"/>
+    <path fill="#3b5aa3" d="M0 312.2h625v104H0z"/>
+    <path fill="#239e46" d="M0 0v416.2l310.4-207.5L0 0z"/>
+    <path fill="#fff" d="M127.8 115c-69.2-3.5-100.7 51.6-100.6 94.2-.2 50.4 47.6 92 91.7 89.4A100 100 0 0165.8 209a98.3 98.3 0 0162-94z"/>
+    <path fill="#fff" d="M126.8 160.2l-9.8-7.6-11.8 3.7 4.2-11.6-7.1-10.1 12.3.4 7.4-10 3.4 12 11.8 3.9-10.3 7zm-.2 42.3l-9.8-7.6-11.8 3.7 4.2-11.6-7.2-10.1 12.4.4 7.4-10 3.4 12 11.8 4-10.3 6.9zm.2 42.8l-9.8-7.6-11.8 3.7 4.2-11.7-7.1-10 12.3.4 7.4-10 3.4 12 11.8 3.9-10.3 6.9zm-.2 43.1l-9.8-7.6-11.8 3.7 4.2-11.6-7.2-10.1 12.4.4 7.4-10 3.4 12 11.8 4-10.3 6.9z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/kn.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/kn.svg
new file mode 100644
index 0000000..4b2a248
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/kn.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-kn" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M151.7-.3h745.1v745H151.7z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-104.2 .2) scale(.68714)">
+    <path fill="#ffe900" d="M-5.3 0h1073.5v744H-5.3z"/>
+    <path fill="#35a100" d="M-5.8 0l1.2 536.4L830.7-.4-5.8 0z"/>
+    <path fill="#c70000" d="M1069.5 744l-1.9-557.7L225 744.5l844.5-.4z"/>
+    <path d="M-5.3 576.9l.7 167.9 182.3-.3L1068 147.6l-1-146L886.9 0-5.4 576.9z"/>
+    <path fill="#fff" d="M818 269l-64.2-2.2-25.3 60.2-14.3-61.5-64.2-2.2 55.4-35.7L691 166l48.5 39.4 55.3-35.9-25.4 60.2zM417.5 529.6l-64.3-2.3-25.2 60.2-14.3-61.5-64.3-2.2 55.4-35.8-14.4-61.4 48.5 39.4 55.3-35.9-25.3 60.1z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ko.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ko.svg
new file mode 100644
index 0000000..2db51b0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ko.svg
@@ -0,0 +1,24 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-kr" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)">
+    <path fill="#fff" d="M610.6 511.6h-730.2V-.4h730.2z"/>
+    <path fill="#fff" d="M251.9 256a112.5 112.5 0 11-225 0 112.5 112.5 0 11225 0z"/>
+    <path fill="#c70000" d="M393 262.6a145.3 146.8 0 11-290.5 0 145.3 146.8 0 11290.5 0z"/>
+    <path d="M-49.4 126.4l83.6-96.7 19.9 17.1-83.7 96.8zm27.4 23.7l83.6-96.7 19.9 17-83.7 96.9z"/>
+    <path d="M-49.4 126.4l83.6-96.7 19.9 17.1-83.7 96.8z"/>
+    <path d="M-49.4 126.4l83.6-96.7 19.9 17.1-83.7 96.8zm55.4 48l83.6-96.9 19.9 17.2-83.7 96.8z"/>
+    <path d="M-49.4 126.4l83.6-96.7 19.9 17.1-83.7 96.8z"/>
+    <path d="M-49.4 126.4l83.6-96.7 19.9 17.1-83.7 96.8zm508.8-96.8l83 97.4-20 17-83-97.4zm-55.7 47.5l83 97.4-20 17-83-97.4z"/>
+    <path fill="#fff" d="M417.6 133.2L496 65.4l14.7 17-84 75.4-9.3-24.6z"/>
+    <path d="M514.2 372l-80.4 95.8-19.7-16.4 80.4-95.8zM431.8 53.1l83 97.4-19.9 17L412 70zm109.7 341.6L461 490.5l-19.8-16.4 80.5-95.8zm-55.1-45.8L406 444.7l-19.7-16.4 80.4-95.8z"/>
+    <path fill="#3d5897" d="M104.6 236.7c4.6 37 11.3 78.2 68.2 82.4 21.3 1.3 62.8-5 77-63.2 18.8-55.8 75-71.8 113.3-41.6C385 228.5 391 251 392.4 268c-1.7 54-32.9 101-72.8 122-46 27.3-109.6 27.9-165.3-13.5-25.1-23.5-60.2-67-49.7-139.8z"/>
+    <path fill="#fff" d="M436 370.6l78.6 67.6-14.6 17-87.1-71.8 23-12.8z"/>
+    <path d="M-1.9 357.2l83 97.3-20 17-83-97.3z"/>
+    <path fill="#fff" d="M-16.2 437.3l78.6-67.9 14.7 17-84 75.5-9.3-24.7z"/>
+    <path d="M25.7 333.7l83 97.3-20 17-83-97.3zM-30 381.2l83 97.3-20 17-83-97.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/kp.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/kp.svg
new file mode 100644
index 0000000..8eda6be
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/kp.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-kp" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M92.2 7.8h593.6v485.5H92.2z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="matrix(.86254 0 0 1.0546 -79.5 -8.3)">
+    <path fill="#fff" stroke="#000" stroke-width="1.1" d="M991.8 492.9H4.2V8.4h987.6z"/>
+    <path fill="#3e5698" d="M991.8 405.2H4.2V493h987.6z"/>
+    <path fill="#c60000" d="M991.8 384.9H4.2V116.4h987.6z"/>
+    <path fill="#3e5698" d="M991.8 8.4H4.2V96h987.6z"/>
+    <path fill="#fff" d="M473 250.7c0 60.1-61.5 108.9-137.4 108.9-76 0-137.6-48.8-137.6-109 0-60.1 61.6-108.9 137.6-108.9S473 190.5 473 250.7z"/>
+    <path fill="#c40000" d="M402.9 326.8l-66.1-38.6-67.1 39 26.3-62.8-66.1-38.5 82.4-.3 26.2-63 24.5 62.8 82.4-.4-67.2 39z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/kr.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/kr.svg
new file mode 100644
index 0000000..2db51b0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/kr.svg
@@ -0,0 +1,24 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-kr" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)">
+    <path fill="#fff" d="M610.6 511.6h-730.2V-.4h730.2z"/>
+    <path fill="#fff" d="M251.9 256a112.5 112.5 0 11-225 0 112.5 112.5 0 11225 0z"/>
+    <path fill="#c70000" d="M393 262.6a145.3 146.8 0 11-290.5 0 145.3 146.8 0 11290.5 0z"/>
+    <path d="M-49.4 126.4l83.6-96.7 19.9 17.1-83.7 96.8zm27.4 23.7l83.6-96.7 19.9 17-83.7 96.9z"/>
+    <path d="M-49.4 126.4l83.6-96.7 19.9 17.1-83.7 96.8z"/>
+    <path d="M-49.4 126.4l83.6-96.7 19.9 17.1-83.7 96.8zm55.4 48l83.6-96.9 19.9 17.2-83.7 96.8z"/>
+    <path d="M-49.4 126.4l83.6-96.7 19.9 17.1-83.7 96.8z"/>
+    <path d="M-49.4 126.4l83.6-96.7 19.9 17.1-83.7 96.8zm508.8-96.8l83 97.4-20 17-83-97.4zm-55.7 47.5l83 97.4-20 17-83-97.4z"/>
+    <path fill="#fff" d="M417.6 133.2L496 65.4l14.7 17-84 75.4-9.3-24.6z"/>
+    <path d="M514.2 372l-80.4 95.8-19.7-16.4 80.4-95.8zM431.8 53.1l83 97.4-19.9 17L412 70zm109.7 341.6L461 490.5l-19.8-16.4 80.5-95.8zm-55.1-45.8L406 444.7l-19.7-16.4 80.4-95.8z"/>
+    <path fill="#3d5897" d="M104.6 236.7c4.6 37 11.3 78.2 68.2 82.4 21.3 1.3 62.8-5 77-63.2 18.8-55.8 75-71.8 113.3-41.6C385 228.5 391 251 392.4 268c-1.7 54-32.9 101-72.8 122-46 27.3-109.6 27.9-165.3-13.5-25.1-23.5-60.2-67-49.7-139.8z"/>
+    <path fill="#fff" d="M436 370.6l78.6 67.6-14.6 17-87.1-71.8 23-12.8z"/>
+    <path d="M-1.9 357.2l83 97.3-20 17-83-97.3z"/>
+    <path fill="#fff" d="M-16.2 437.3l78.6-67.9 14.7 17-84 75.5-9.3-24.7z"/>
+    <path d="M25.7 333.7l83 97.3-20 17-83-97.3zM-30 381.2l83 97.3-20 17-83-97.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/kw.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/kw.svg
new file mode 100644
index 0000000..3d4047f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/kw.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-kw" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h496v496H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#a)" transform="scale(1.0321)">
+    <path fill="#fff" d="M0 165.3h992.1v165.4H0z"/>
+    <path fill="#f31830" d="M0 330.7h992.1v165.4H0z"/>
+    <path fill="#00d941" d="M0 0h992.1v165.4H0z"/>
+    <path d="M0 0v496l247.5-165.3.5-165.5L0 0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ky.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ky.svg
new file mode 100644
index 0000000..b4ae00a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ky.svg
@@ -0,0 +1,70 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ky" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)">
+    <path fill="#006" d="M0 0h1024v512H0z"/>
+    <path fill="#006" fill-rule="evenodd" d="M0 0h512v256H0z"/>
+    <g stroke-width="1pt">
+      <path fill="#fff" d="M0 0v28.6L454.8 256H512v-28.6L57.2 0H0zm512 0v28.6L57.2 256H0v-28.6L454.8 0H512z"/>
+      <path fill="#fff" d="M213.3 0v256h85.4V0h-85.4zM0 85.3v85.4h512V85.3H0z"/>
+      <path fill="#c00" d="M0 102.4v51.2h512v-51.2H0zM230.4 0v256h51.2V0h-51.2zM0 256l170.7-85.3h38.1L38.2 256H0zM0 0l170.7 85.3h-38.2L0 19.1V0zm303.2 85.3L473.8 0H512L341.3 85.3h-38.1zM512 256l-170.7-85.3h38.2L512 236.9V256z"/>
+    </g>
+    <path fill="#fff" fill-rule="evenodd" d="M308 185.9c-1.2.7-3.5 2.8-5.8 2-2.2-.6-7.3-9.5-13-8.2-5.6 1.4-9 3.5-11.3 3.5s-8.5 2-8.5 7.5.6 9.6 1.7 9.6 2.8-3.4 2.8-3.4.6 6.8 4.6 6.8 12.4.7 13 2.8c.6 2-4 6.8-2.8 11 1 4 6.2 10.9 6.2 10.9s-7.4 5.5-7.4 8.9 1.2 6.8 1.2 6.8l-33 1.4s-2.2 97.2-1 104.8c1 7.5 4 26 4 26s-7.4-2.4-13.7 3.8c-6.2 6.1-28 16.7-28.6 21.5-.6 4.8-2.5 9-.3 12.4 2.3 3.4 10.3 12.7 8 12.3-7.6-1.3-10.5-12.1-15.6-16.1-5-4-15-3-16.2 1a31 31 0 000 12.3c.6 1.4 6.8 23.3 8.5 28.1s19.6 12 27.5 11.3c15 .4 21.8-6.5 22.4-5.8.6.7 32.3 33.4 97.4 33.6 50.8 0 89-32.9 89-32.2 0 .7 21 6.8 28.3 4.8 7.4-2 18.2-6.9 20.4-11.7 2.3-4.8 8.5-29.4 9-33.5.6-4.1 0-9-5-10.3s-8-1-10.8.3-3.7 5.2-8 12c-2.2 2-8.1 7.6-6.4 6.2s5.4-11.6 6-15c.5-3.5 2.2-9.7-1.8-13-4-3.5-10-5-17-10-6.6-4.5-11.9-12-15.8-12-4 0-8.5-2-8-2 .6 0 5.1-10 4-20.3-1.1-10.3.6-108.5 0-108.5s-28.3 2-28.3.7 2.2-11 0-17.2c-2.3-6.1-12-10.2-9.1-11.6 2.8-1.4 15.3-4.8 14.7-10.3-.5-5.4-8.5-4.8-11.9-6.8-3.4-2-13.6-11.7-14.7-11.7-1.1 0 29.5-18.5 27.2-18.5-2.3 0-14.2-3.4-18.1-1.3 0-3.4 16.4-13.7 13.6-15-2.9-1.5-15.9-2.8-12.5-3.5 3.4-.7 4.5-8.9 4-8.9l-14.8 2s-3.4-4.8-4.5-4.8-6.2 2.8-6.2 2.8l-2.9-7.5-6.2 4-2.8-3.4s-5.1 1.4-5.1 0c.2 0-.6-3.4-1.4-3.4-.8 0-6.4 4.4-6.6 4.1-.2-.2-6.4-9-6.4-8.7 0 .3-4.4 16.5-4.6 16.5-.2 0-4.4.4-4.6.7-.3.2-22.5-12.8-22.3-12.6l5.8 12.6s-4.8 2.7-4.8 2.9l.8 5.6-14.8-5.1s5.6 11.4 5.2 11.4l-10.8.4c.2 0 5 9.5 5 9.5L293 174s16 11.2 14.8 12zm94.5 238.3c1.5 2 9.1 11.7 8 11.7-1.2 0-20.1 12.7-27.8 15a368 368 0 01-31.2 6.6 419 419 0 0031-17.4 130 130 0 0020-15.9zm-118.4-.3c-1.1 1.4-6.5 12-6.5 12s15.6 11 27.2 15c11.6 4.2 31.4 5.5 30.3 5.2-1.1-.4-25-11-31.7-16.5-6.8-5.4-19-15.7-19.3-15.7z"/>
+    <g fill="#fec500" fill-rule="evenodd" stroke="#6d6666">
+      <path stroke-width="1.3" d="M394.6-213l35.4 21.4c6.6 4.1 28 22.2 29.6 21.4 1.6-.8 13.2-9.9 13.2-9.9S448.9-199 434-203s-39.5-8.2-39.5-9.9z" transform="matrix(.34457 0 0 .41648 160.6 259)"/>
+      <path stroke-width="1.3" d="M390.5-231.9c2.5 0 47.7 23 61.7 34.6s19.7 26.3 21.4 26.3c1.6 0 23-3.3 22.2-3.3-.8 0-9.9-29.6-30.4-38.7-20.6-9-74-18.9-74.9-18.9z" transform="matrix(.34457 0 0 .41648 160.6 259)"/>
+      <path stroke-width="1.3" d="M603.5-296c-.8 0-9 24.7-11.5 32-2.5 7.5-6.6 23-6.6 23s-36.2 3.4-34.5-.7c1.6-4.2 55-54.3 52.6-54.3z" transform="matrix(.34457 0 0 .41648 160.6 261)"/>
+      <path stroke-width="1.3" d="M398.8-261.5s42.7 28.8 57.5 45.2c14.8 16.5 29.6 45.3 30.4 45.3.9 0 40.3-8.3 40.3-7.4s-46-46-68.2-60-59.2-21.4-60-23z" transform="matrix(.34457 0 0 .41648 160.6 259)"/>
+      <path stroke-width="1.3" d="M443.2-273.8s21.3 32.9 25.5 44.4a1347 1347 0 0016.4 41h33.7s-16.4-37-34.5-55-40.3-28.8-41.1-30.4z" transform="matrix(.34457 0 0 .41648 160.6 261)"/>
+      <path stroke-width="1.3" d="M454.7-291.9c.8 2.5 31.2 31.2 38.6 50.1a402 402 0 0113.2 42.8l29.6-7.4s-26.3-48.5-42.8-61.7c-16.4-13.1-37-22.2-38.6-23.8z" transform="matrix(.34457 0 0 .41648 160.6 261)"/>
+      <path stroke-width="1.3" d="M700.5-209.7s-61.7 6.6-83.9 12.3-34.5 27.2-34.5 27.2 28.8 10.7 30.4 9 19-18.9 37.8-25.5c19-6.5 51.9-22.2 50.2-23z" transform="matrix(.34457 0 0 .41648 160.6 259)"/>
+      <path stroke-width="1.3" d="M698-250c-1.6.9-51 41.1-66.6 54.3-15.6 13.1-30.4 27.1-32 28-1.7.8-32.1-4.2-30.5-5.8 1.7-1.6 45.3-37 74-52.6 28.8-15.7 52.7-22.2 55.1-23.9z" transform="matrix(.34457 0 0 .41648 160.6 259)"/>
+      <path stroke-width="1.3" d="M685.7-278.8c-5 5.8-53.4 45.3-66.6 59.3S584.6-181 584.6-181s-25.5-11.5-23.9-16.5c1.7-4.9 36.2-33.7 60.9-50.1 24.6-16.5 66.6-29.6 64.1-31.3z" transform="matrix(.34457 0 0 .41648 160.6 259)"/>
+      <path stroke-width="1.3" d="M636.4-282a725 725 0 00-35.4 39.4c-5.7 8.2-23 44.4-23 44.4s-25.5-22.2-25.5-23 32-34.5 51-47.7 33.7-10.7 32.9-13.1z" transform="matrix(.34457 0 0 .41648 160.6 259)"/>
+      <path stroke-width="1pt" d="M565-241.8a10.5 10.5 0 11-20.8 0 10.5 10.5 0 0120.9 0zm21 14c0 5.1-4.7 9.3-10.4 9.3s-10.5-4.2-10.5-9.3 4.7-9.3 10.4-9.3 10.5 4.1 10.5 9.3zm-46.5-10.5c0 5.2-5.7 9.3-12.8 9.3-7 0-12.8-4.1-12.8-9.3s5.8-9.3 12.8-9.3c7 0 12.8 4.2 12.8 9.3z" transform="matrix(.34457 0 0 .41648 160.6 261)"/>
+      <path stroke-width="1pt" d="M573.2-219c0 9.9-6.5 18-14.5 18s-14.5-8.1-14.5-18 6.5-18.1 14.5-18.1 14.5 8 14.5 18zm-39.5.5c0 7.7-6.5 14-14.5 14s-14.6-6.3-14.6-14 6.5-14 14.6-14c8 0 14.5 6.3 14.5 14z" transform="matrix(.34457 0 0 .41648 160.6 261)"/>
+      <path stroke-width="1pt" d="M514-207.5c0 6.8-5 12.2-11.1 12.2s-11-5.4-11-12.2c0-6.7 4.9-12.2 11-12.2 6 0 11 5.5 11 12.2zm81.3-1.1c0 8-7.5 14.5-16.8 14.5-9.4 0-16.9-6.5-16.9-14.5s7.5-14.6 16.9-14.6c9.3 0 16.8 6.5 16.8 14.6zm-40.7-21c0 4.9-6 8.8-13.3 8.8s-13.4-4-13.4-8.8 6-8.7 13.4-8.7 13.3 4 13.3 8.7z" transform="matrix(.34457 0 0 .41648 160.6 261)"/>
+      <path stroke-width="1pt" d="M557-210.4c0 7-8.4 12.8-18.6 12.8s-18.6-5.7-18.6-12.8c0-7 8.3-12.8 18.6-12.8s18.6 5.8 18.6 12.8zm47.6 22.7c0 8.7-7.8 15.7-17.4 15.7s-17.5-7-17.5-15.7 7.8-15.7 17.5-15.7c9.6 0 17.4 7 17.4 15.7zm-95.3-4c0 5.7-4.4 10.4-9.9 10.4s-9.9-4.7-9.9-10.5 4.4-10.4 9.9-10.4 9.9 4.6 9.9 10.4z" transform="matrix(.34457 0 0 .41648 160.6 261)"/>
+      <path stroke-width="1pt" d="M579-193.5c0 7.4-6.7 13.4-15 13.4-8.4 0-15.2-6-15.2-13.4S555.6-207 564-207c8.4 0 15.1 6 15.1 13.4zm-47.6-.6c0 6.4-6 11.6-13.4 11.6s-13.4-5.2-13.4-11.6c0-6.4 6-11.6 13.4-11.6s13.4 5.2 13.4 11.6z" transform="matrix(.34457 0 0 .41648 160.6 261)"/>
+      <path stroke-width="1pt" d="M554.6-190.6c0 7-6.2 12.8-14 12.8-7.6 0-13.9-5.8-13.9-12.8 0-7 6.3-12.8 14-12.8s14 5.7 14 12.8zm-60.4-76.8c3.4 0 27.9 8.2 27.9 8.2s-30.3 11.6-25.6 10.4 33.7-4.6 31.4-4.6c-2.3 0-25.6 22.1-18.6 21 7-1.2 20.9-15.2 22-15.2 1.2 0 15.2 22.1 16.4 21 1.1-1.2 0-22.2 1.1-22.2s29 14 26.7 12.8a123.2 123.2 0 01-17.4-17.4c1.2 0 38.4 3.5 36 2.3l-24.4-11.6s16.3-15.1 12.8-15.1-30.2 15.1-27.9 14c2.3-1.2 29-31.5 29-31.5L557-282.5s4.7-18.6 2.4-17.4c-2.4 1.2-21 24.4-22.1 24.4s-5.8-23.2-5.8-23.2 1.1 25.5-5.9 26.7c-7 1.2-31.3 5.8-31.3 4.7z" transform="matrix(.34457 0 0 .41648 160.6 261)"/>
+    </g>
+    <g fill-rule="evenodd">
+      <path fill="#00389b" d="M304.7 227.9c.2 1 6.7 18.4 16.5 17.9s13.8-3.4 13.4-3.6c-.4-.3-4.6-3.2-7-9.5-2.4-6.3-2.8-9-2.8-9l-20 4.2zm35.1-6.8s7.2 17.2 10.4 19.6c3.2 2.4 10.6 4.4 13.8 4.1s7 0 7 0-3.1-1.7-5.8-11.1-3.4-12.6-3.4-12.6h-22zm44 6.3s-1.3 12.6 0 15.7c1.5 3.2 8.5 9 8.5 9s8.4-1.2 8.6-9a42 42 0 00-2.8-15l-14.2-.7z"/>
+      <path fill="#005120" stroke="#000" stroke-width="1pt" d="M289 21s1.1 4.7 0 8.2-11.1 12.8-11.1 20.3c0 7.6 11.6 30.8 47 31.4 35.6.6 80.3-19.2 79.7-19.8-.6-.5-84.9-57-86-56.4-1.2.6-29.7 17.5-29.7 16.3zm234.2 40.1s7.6 20.4 10.5 22.7c2.9 2.3 4 7 4.7 7s48.8 10.4 48.8 10.4 4.6-13.3-2.3-23.8c-7-10.5-33.2-37.8-33.2-37.8l-28.5 21.5zm33.2-25c1.1 0 12.8 10 22 4.7 9.4-5.2 24.5-19.2 24.5-19.2s-12.8 4-22.1 3.5c-9.3-.6-23.8 11.6-24.4 11z" transform="matrix(.34457 0 0 .41648 198.4 196.6)"/>
+      <path fill="#005120" stroke="#000" stroke-width="1pt" d="M287.2 23.3s-3.5-9.8-12.8-10.4c-9.3-.6-26.2 1.1-32-3.5C236.6 4.7 235-6.3 232-5.7c-3 .5-10.5 0-11 0s-3.6-9.3 4.6-14 15-.6 19.7-4 11.7-5.9 21-6.5c9.3-.5 24.4 11.7 31.4 14.6 7 2.9 22 6.4 27.9 3.5 5.8-3 38.3-15.7 50-16.3 11.6-.6 36-1.2 45.3-.6s46 5.3 57 10.5S547.7 7 555.8 11.7c8.1 4.7 26.2 11.6 26.2 11.6S550 54.7 534.2 60a354.9 354.9 0 01-95.4 11.6c-29.6-1.7-52.9-4.7-75.5-16.3-22.7-11.6-47.1-22.7-48.3-28.5-1.2-5.8-.6-13.3-.6-13.3l-27.3 9.8z" transform="matrix(.34457 0 0 .41648 198.4 196.6)"/>
+      <path fill="#005120" stroke="#000" stroke-width="1pt" d="M251.2-14.4c-1.2.5-7 2.9-5.9 4 1.2 1.2 3.5 4.7 10.5 4 7-.5 14.5-4.6 14.5-4.6s-8.7-4-19.1-3.4z" transform="matrix(.34457 0 0 .41648 198.4 196.6)"/>
+      <path stroke="#000" stroke-width="1pt" d="M250.6-13.3v6.4s8.1 2.3 8.1.6c0-1.7.6-5.8-1.2-5.8s-6.4-.6-7-1.2z" transform="matrix(.34457 0 0 .41648 198.4 196.6)"/>
+      <path fill="#001707" stroke="#000007" stroke-width="1pt" d="M332-8.4c2-3.7 0-8.7 11.9-14.4 11.9-5.8 32.7-4.2 32.7-4.2s-6 4.6-6.2 9.3c-.2 4.7.4 6.8.4 6.8s-11.3-3.7-20-1.5-18.6 4.6-18.9 4zm53.4-20.2c-1.2.6-10.3 10.7-9.3 13.8 1 3 13.2 10.5 17.1 9.8 4-.6 21.8-9.2 22.8-13.5 1-4.3 1.9-10.1.4-11.3-1.4-1.3-30.8 1.6-31 1.2zm39.3-1.6c-2.3 2.2-1.5 13.1-.7 14.3.9 1.3 15 15.5 18.1 16.3 3.1.8 26-1.5 27.8-4s7.4-12.9 5.7-15.3c-1.6-2.5-6.5-5.8-21.8-9s-24.2-3-29.1-2.3zm58.1 13.7c3.7 1.9 25.3 12.4 38 20.8 12.8 8.4 18 18 21.6 18.9 3.7.8 18.7-8.2 19.3-10.7.7-2.5-18.3-15.6-31-21.6-12.7-6-47.9-6.7-47.9-7.4zm-4.5 8.9c-1.9 1.6 23 45 27.7 46.4 4.8 1.5 33.1-8.4 32.7-11.7-.4-3.3-7.8-9.9-25.3-19.5-17.4-9.7-31.6-16-35.1-15.2zM447.5 8.2c-4 2.3-10.1 41.1-6.2 43 3.9 1.8 52-4.8 53.9-9C497 37.7 475.4 3.4 469 3.4c-6.4 0-18 1.6-21.6 4.7zM397.7 0c-5.1 4.7-4 40.9-1.8 43.1 2.2 2.3 30.8 9.7 33.9 7 3-2.6 7.2-43.3 4.3-46.4-2.9-3.1-10.9-10.5-17-11.1-6.2-.6-16.5 6-19.4 7.4zm-64.5-.6c-4.7 3.7-5 13.3.2 15 5.1 1.6 17.9 7.2 29.8 12.3 12 5.1 18.7 11.3 22.2 11.1 3.5-.2 6.8-36.4 3-38.4A62 62 0 00363.7-4a156 156 0 00-30.4 3.3z" transform="matrix(.34457 0 0 .41648 198.4 196.6)"/>
+    </g>
+    <path fill="#d40f0f" fill-rule="evenodd" d="M240.2 388c2.9-2.8 7.4-9.7 13.5-10 6.2-.4 12.6 5.3 12.6 5.3s6.5 26.4 6.2 26.4c-.4 0-10.7 7.5-11 7.5-.3 0-4.5-10.3-8.4-9.4-3.9 1-3.6 15.1-4.2 14.2-.7-1-17.1-20.5-16.5-21.1.7-.6 8-12 7.8-12.9zm170.4-3.5c2-.3 10.7-6.9 16.8-6.6 6.2.4 9.7 3.2 13 6 3.2 2.8 7 10 7 10s-7.7 21.5-8.3 21.5-4 1.8-4.6.3-2.5-6.6-6.4-7.3c-3.9-.6-4.9 7-4.9 7l-12.6-30.9z"/>
+    <path fill="#fddc59" fill-rule="evenodd" d="M414.8 391.1c0 2 12 31.5 31.4 37.1 19.3 5.7 25.5-5.3 27.7-9 2.3-3.8 10.3-3.5 10.3-3.5s-1.9 27.6-5.1 31c-3.2 3.6-5.8 11-24 11.4-18 .3-34.5-17-40-22-5.4-5-12.5-18.2-15.4-24.2-3-6 15.5-20.1 15.1-20.7zM204.3 450c.4 0 8.7 9.1 21 8.2 12.3-1 33.3-8.2 43-20.8 9.6-12.5 14.5-26 14.5-26S268.6 386 268.3 386c-.4 0-1.7 8.2-4.2 13.5-2.6 5.4-9.7 20.5-21.7 25.2-12 4.7-12 6.6-16.8 6a66.4 66.4 0 01-17.4-8.5c0-.4-6.1 14.7-6.1 14.7s-1.3 9.8 2.2 13z"/>
+    <path fill="#fddc59" fill-rule="evenodd" d="M240 387.1c-1 0-23.8 12.5-22.9 17.8 1 5.3 39.3 81 121.5 81.8 82.1.9 132.4-68.5 128.7-80-3.6-11.6-29.2-25-29.2-25s6.4 5.4 5.5 12.5c-1 7.2-29.2 68.5-100.5 66.7-71.2-1.7-105-56-105-62.2 0-6.2 3.7-9.8 1.9-11.6z"/>
+    <path fill="#d40f0f" fill-rule="evenodd" d="M462.6 442c2-1.5 13.9-34.2 20.7-33.3 6.8 1 4.5 10.7 3.9 13.3l-7.5 25.1s.4-5.3-4.2-6.6c-4.5-1.3-12 2.2-12.9 1.6zm-258.3 8.3c0-1.8-5.4-8 1-9.8 6.3-1.8 14.6 1.8 14.6 1.8s-4.6-13.4-10-24c-5.6-10.7-7.4-9-12-7.2-4.5 1.8-4.4 6.5-1.7 13.6 2.8 7.1 8.1 27.3 8.1 25.6z"/>
+    <path fill="#fdc400" fill-rule="evenodd" d="M279.7 389.3l7.9-26.9-22-16.8 27.6-.7 9-26.5 9 26.5 27.7.5-22 17 8 26.8-22.6-16z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M428.4 249.5v103.3c.2 50.5-51.3 94.7-85.5 103.3-34.2-8.6-85.7-52.8-85.5-103.3V249.5h171z"/>
+    <path fill="#d40f0f" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M177.2 326l.4 160.7s2.4-3.3 35-1.3c32.6 2 35.4 35.5 70.9 35.5 35.4 0 35.4-35.5 70.8-35.5s35.5 35.5 70.9 35.5 35.4-35.5 70.9-35.5 35.4 35.5 72.8 37.5c33.5-2 33.5-37.5 69-39.5l35.3 2V326h-496z" transform="matrix(.34457 0 0 .40213 196.4 118.5)"/>
+    <path fill="#0062bb" fill-rule="evenodd" d="M257.4 335v21.4h12.2c11.3.8 12.2 14.3 24.4 14.3s12.3-14.3 24.5-14.3 12.2 14.3 24.4 14.3 12.2-14.3 24.4-14.3 11.5 13.4 24.4 14.3c11.5-.9 12.2-13.5 24.4-14.3h12.2V335h-12.2c-12.2 0-12.2 14.3-24.4 14.3S379.5 335 367.3 335s-12.2 14.3-24.4 14.3-12.2-14.3-24.4-14.3-12.2 14.3-24.5 14.3-12.2-14.3-24.4-14.3h-12.2zm3.7 42.8l8.5 21.3c11.3.8 12.2 14.3 24.4 14.3s12.3-14.2 24.5-14.2 12.2 14.2 24.4 14.2 12.2-14.2 24.4-14.2 11.5 13.4 24.4 14.2c11.5-.8 11.9-13.4 24.2-14.2l8.8-21.8-8.6.4c-12.2 0-12.2 14.2-24.4 14.2s-12.2-14.2-24.4-14.2-12.2 14.2-24.4 14.2-12.2-14.2-24.4-14.2S306.3 392 294 392s-12.2-14.2-24.4-14.2h-8.5zm81.8 78.3c12.2 0 40.2-21.3 39.9-21.3.3 0-3.3-14.3-15.5-14.3s-12.2 14.3-24.4 14.3-12.2-14.3-24.4-14.3-15.4 14.3-15.4 14.3c-.6 0 27.6 21.3 39.8 21.3z"/>
+    <path fill="#fdc400" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M90.8 117.6c.9 0 8.3 1.2 13.6.8 5.4-.4 7.4-2.5 7.4-2.9v-1.2h7s1.2 5.7.4 6.1-2.9 2.1-3.3 2.1 0-2.9-.8-2-1.2 2-1.2 2-.9-1.2-1.3-1.2-1.2 1.2-1.2 1.2 0-1.2-.4-1.2-2.5 2-2.5 2l-2-1.6s-1.3 2-1.7 2-2.9-1.6-2.9-1.6l-4 2.5s0-3.7-.9-3.3c-.8.4-5.3.4-5.3.4S90.4 124 90 124s-2-2-1.6-2 1.2-1.2.8-1.7c-.4-.4-2.5 0-2.5-.4s-.8-2.8-.4-2.8l2 .4V115h2.1l.4 2.5z" transform="matrix(1.684 0 0 1.4651 126.8 126.6)"/>
+    <path fill="#fdc400" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M98.3 94.1c-.5 0-3.3 3.3-3 7 .5 3.7 7.5 9 7.5 9s3.7-1.6 4.9 0 1.2 6.6.8 6.6-5.3 1.3-5.3.5c0-.9 0-1.7-.4-1.7l-5 .4.4-1.6-4-.8 1.6-1.7s-6.6-2.9-6.2-2.9 2.9-1.6 2.9-1.6l-5-3.3h3s-4.2-3.3-3.8-3.3l2.5.4-1.2-3.3h1.2L88 95.4l2-.9 1.3 2.1-.5-5 3 .5v4s1.2-2.4 1.2-2.8c0-.4 3.7 1.7 3.2.8z" transform="matrix(1.684 0 0 1.4651 126.8 126.6)"/>
+    <path fill-rule="evenodd" d="M399.5 301.9c-.8.7-3.4 2.4-3.4 2.4l5.7-.5c-.2 0-2-1.5-2.3-2zm5 2.8c-.3.5-1.3 5.1-.6 4.8.7-.3 3.4-3.7 3.4-3.7l-2.8-1zm8 .6a34 34 0 004.3 3.5c-.5-.8-1-4-1.4-4-.3-.2-2.6.8-2.9.5zm-69.7-5c-.6.2-4.9 3-4.9 3l7-1.1c-.4 0-2.3-1.4-2.1-1.8zm4.5 3.7c-.7.6-3 4.8-2.1 4.6.8-.1 4.7-2.8 4.7-2.8l-2.6-1.8zm-2.8-5.9l-4-1.7 4.8-1-.8 2.7zm-68.6-2l-5.1-3.6 6.5 1.8-1.4 1.9zm-4.5 2.5c-.6 0-7.2 3.6-7 3.6h9c-.2-.2-1.6-3.3-2-3.6zm4.2 5.2c-.7.3-5.9 3.8-5.5 3.8h7.8l-2.3-3.8zm-.7-37.5s-1.9-4.2-1.7-4.2c.2 0 4.8 3.3 4.8 3.3l-3 1zm5.2-5.2l.5-2.8s4.7 3.2 4.5 3.2c-.2 0-4.7 0-5-.4zm7.3 2l.5-4s4.3 5.1 4 5.3c-.4.1-4.2-.8-4.5-1.4z"/>
+    <path fill="#fdc400" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M137.3 110.9c0 .2 4.3 3.7 4.4 4.5 0 .8-7.8 1-7.8 1s-2.3-1.7-3-1.6c-.7 0-1 1.8-1 1.8l1.8 1-3.5.2 1 2 2.7-.2-.6 1.8s1.6 1.3 2 1c.3-.1 1.3-2 2.1-2.3.8-.3 2.6-.3 2.6-.3s-1.4 2.3-.7 2.3c.6 0 3.4-2.4 3.4-2.4l.7 2.2 2-2.5s0 2 .3 2 3.2-2.5 3.2-2.5 2.3 2.8 2.6 2.6c.3-.2.6-3 1-3s2.2-.3 2.2-.5-1.3-1-1.5-2.5c-.2-1.5.2-4.8.1-4.8s-13.8.5-14 .2z" transform="matrix(1.684 0 0 1.4651 125.6 127)"/>
+    <path fill="#fdc400" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M115.4 104.6h40.3c4 0 7.8-1.6 7.8-4.1 0-2.5-6.6-2.9-9-2-2.5.8-13.2 5.7-17.7 5.3s-8.7-3.3-9.1-6.2c-.4-2.9 2-5.3 6.6-5.3s10.3 1.6 11.5 1.2 4.1-3.7 5.3-4.1c1.3-.4 5-.8 5-.8l-1.7 1.2 5.4-1.2s-4.1 4.5-8.3 5.7c-4 1.3-12.7.8-16 .8s-5-.4-4.5 2.1c.4 2.5 2.9 4.1 5 3.7 2-.4 8.1-2.5 8.1-2.5l-1.6-1.2 7.4-.4s-.4-1.2 0-1.2l4.1.4s-2.5-1.3-2-1.3 2 0 5.3.4 10.3 1.7 9.9 5c-.5 3.3-3 6.1-5.8 6.1s-5.3-.8-5.3.5c0 1.2 3.3 2 5.3 2s4.5-1.6 5-1.6 1.2 2.4 1.6 2.4 2.9-.8 2.9-.8l-1.7 4.5 2.9.8s-1.6 1.7-1.2 1.7 2.8 0 2.8.4-3.2 2.9-3.2 3.3 2.4 1.6 2.4 1.6-1.6 2.5-2 2.1l-2-2.5s-.5 1.7-1.3 1.7-2.5-.4-2.5-.4 1.2-2.5.8-2.5-2.4 1.6-2.4 1.2l-1.3-1.2s3.3-1.3 3.3-3.3c0-2-1.3-3.9-7.3-4.2-6-.3-6 1.4-10.5 1.2-4.4-.2-4.4-2-7.7-2s-13.4 4.2-18.2 4c-4.7 0-10.6-.3-10.4-.5.2-.2 3.9-9.7 4-10z" transform="matrix(1.684 0 0 1.4651 125.6 127)"/>
+    <path fill="#fdc400" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M106.9 102.5c-.4.2-4 .7-4.2 4.5-.2 3.8.3 3.8.7 3.6.4-.2 1.2-3.5 1.2-3.5s-1.2 4.5.1 5.5a9.3 9.3 0 002.8 1.5l.5-3.6s-1 3.5 1.5 4.7c2.4 1.2 3.4.3 3.1-.6a70 70 0 00-.9-3.3l2 2.4c.2.2 1 1.8 3.6 1 2.4-.6.7-2.3.7-2.3l-3-2.4s3 3.1 4.4 2-1-3.6-1-3.5 2 3.5 2.8 1.4-1.2-2.8-1.8-4.9c-.6-2-1.1-2.2-.5-3.5.6-1.2.7-3.6.7-3.6s2.6.7 2.4-1.5c-.2-2.2-2.8-2.7-3.3-2.8-.5 0-.4-2.2-.6-2.1-.2 0-1.9 1.3-1.9 1.3s-1.4-3.4-1.7-3.2-2 2-3.2 2c-1.2.2-2 2-2 2s-4.3-2.1-4.2 1.3c.1 3.4 2.6 2.5 2.6 2.6s-.4 4.8-.8 5z" transform="matrix(1.684 0 0 1.4651 126.8 126.6)"/>
+    <path fill-rule="evenodd" d="M310.8 269.1c.8-.3 2-1.3 3.4-1.2s3.7 1.2 2.6 1.8c-1.1.6-2 .9-3.2.6-1.3-.3-2.3-1-2.8-1.2zm14-.2c-.8-.2-2-1.3-3.4-1.1s-3.7 1.2-2.6 1.8c1.2.6 2 .8 3.3.5 1.2-.3 2.2-1 2.8-1.2z"/>
+    <path fill="#000039" fill-rule="evenodd" stroke="#000" stroke-width=".4" d="M111 103.2c0 .5.4 4.8.6 4.5l1.7-4.4-2.3-.1z" transform="matrix(1.684 0 0 1.4651 127 126.7)"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M110 103.2c0-1.3.8-1.2 2.4-1 1.7.2 2.5 1 2.4 1.3-.1.2-1.5.7-2.6.6-1.3-.4-2.3 0-2.2-1z" transform="matrix(1.684 0 0 1.4651 127 126.9)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M112.4 100l-.2 2m7.1-7.2s1.4.7 1.2 1.3c-.2.6-1.2.9-1.2.9m-11.2-2.7c-.3.1-.7.3-1 1.2-.1.8 1 1.3 1 1.3" transform="matrix(1.684 0 0 1.4651 127 126.9)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M111.2 136.1s-1.5 1.5 1 1.5.7-1.3.7-1.3" transform="matrix(1.684 0 0 1.4651 127.2 72)"/>
+    <path fill="#fdc400" fill-rule="evenodd" d="M323.6 438l7.2-23.6-20-14.9 25-.6 8.2-23.3 8.3 23.3 25 .5-19.9 15 7.3 23.5-20.6-14z"/>
+    <path fill="#003017" fill-rule="evenodd" d="M327 431.7l6-18.8-16.6-11.8 20.9-.5 6.8-18.5 6.8 18.5 20.9.4-16.6 11.9 6 18.7-17-11.2z"/>
+    <path fill="#fdc400" fill-rule="evenodd" d="M282.5 390.1l7-22.3-19.7-14 24.8-.6 8-22 8.2 22 24.8.4-19.7 14.1L323 390l-20.3-13.2z"/>
+    <path fill="#003017" fill-rule="evenodd" d="M285.9 384.1l5.9-17.7-16.5-11.2 20.6-.4 6.8-17.5 6.8 17.5 20.6.3-16.4 11.2 6 17.8-17-10.6z"/>
+    <path fill="#fdc400" fill-rule="evenodd" d="M365.4 390.1l7.2-22.3-20-14 25-.6 8.3-22 8.3 22 25 .4-20 14.1 7.4 22.3-20.6-13.2z"/>
+    <path fill="#003017" fill-rule="evenodd" d="M368.8 384.1l6-17.7-16.6-11.2 20.9-.4 6.8-17.5 6.9 17.5 20.9.3-16.7 11.2 6.1 17.8-17.1-10.6z"/>
+    <path fill="none" d="M223.7 403c9 38.8 47 67.5 98.2 74.3 65.8 8.8 128.5-24.6 140-74.4"/>
+    <path d="M223.5 409l12.4-7 1.1 2.5-4.8 2.8 1.6 3.5 4.8-2.7 1.2 2.5-12.4 7-1.1-2.6 5.6-3.1-1.6-3.5-5.6 3.1-1.2-2.5m5.2 10.8l11.5-8.5 4 6.5-2 1.5-2.5-4.2-2.6 2 2.3 3.8-1.8 1.4-2.4-4-3.2 2.4 2.6 4.3-2 1.5-4-6.7m8.1 12.4l10.2-10.5 1.7 2.1-4 4.1 2.4 3 4-4.2 1.8 2.1-10.2 10.5-1.7-2.1 4.6-4.8-2.4-2.9-4.6 4.8-1.8-2.1m13.3 6.2l1.7 1.6 3-5.7-4.7 4m-6.5 2L255 431l2.6 2.6-6.7 13.8-2.1-2 1.8-3.4-2.3-2.2-2.8 2.4-2-1.9m10 9.3l7-10.3-2.5-2 1.4-2 6.8 5.6-1.3 2-2.4-2-6.8 10.4-2.1-1.7m5.6 4.5l7.2-13.1 2.2 1.5-2.8 5.1 3 2 2.8-5.1 2.2 1.5-7.2 13.1-2.2-1.5 3.3-6-3-2-3.3 6-2.2-1.5m13.6 8.6l5.8-14 6.6 3.4-1 2.3-4.2-2.2-1.4 3.3 4 2-1 2.3-4-2-2.5 6.1-2.3-1.2m12.8-2.1a17 17 0 00-1.1 4.6c0 .7.4 1.2 1 1.5.7.3 1.2.2 1.7-.3.4-.5 1-2 1.9-4.3s1.2-4 1.2-4.7a1.6 1.6 0 00-1.1-1.5c-.7-.3-1.2-.2-1.7.3-.4.5-1 2-1.9 4.4m-2.4-1a27 27 0 011.4-3.6c.4-.9.9-1.5 1.3-1.8.6-.5 1.2-.8 1.8-.9a5 5 0 012.2.5 5 5 0 012 1.3c.4.5.7 1.1.8 2v2.3a30 30 0 01-2.6 7.3 5.9 5.9 0 01-1.3 1.8c-.6.5-1.2.8-1.8.8a4.6 4.6 0 01-2.2-.4 5 5 0 01-2-1.3 4.2 4.2 0 01-.8-2 6.3 6.3 0 010-2.3l1.2-3.8m11.9-3.2l2.4.8-2.6 10a5.2 5.2 0 00-.3 2.4c.2.5.6.8 1.2 1 .6.2 1.1.2 1.5-.2.3-.3.7-1 1-2.2l2.6-9.9 2.5.8-2.8 10.2c-.2 1-.5 1.7-.7 2.1a3.2 3.2 0 01-2.5 1.8 5.4 5.4 0 01-2.2-.3 5.2 5.2 0 01-3-2.2c-.4-1-.4-2.3.1-4.1l2.8-10.2m6.6 18.1l3-15 2.6.7 1.4 11.3 2-10.5 2.4.6-3 15-2.6-.6-1.4-11.4-2 10.5-2.4-.6m13.5.8l1.2.2h1.2c.2 0 .5-.1.6-.3.3-.4.6-.9.8-1.5a26.3 26.3 0 00.9-6.6 3.4 3.4 0 00-.4-1.6 1.2 1.2 0 00-.6-.5 4.1 4.1 0 00-1-.3l-1.1-.1-1.5 10.7m-2.9 1.8l2.2-15.2 4 .7c1 .2 1.6.3 2 .6.5.2.9.6 1.2 1 .4.6.6 1.3.7 2.1 0 .9 0 2-.2 3.8-.3 2.1-.6 3.6-.9 4.5-.2.9-.6 1.6-1 2.2-.4.5-.9.9-1.5 1a8 8 0 01-3 0l-3.5-.7m10.8 1.8l1.3-15.4 7 .8-.2 2.5-4.5-.4-.3 3.5 4.2.5-.2 2.4-4.2-.5-.4 4.3 4.7.5-.3 2.5-7.2-.7m11.8-1.3h2.3c.3-.1.5-.3.6-.5.3-.4.4-1 .6-1.6a25 25 0 00.2-6.6c-.1-.7-.3-1.2-.6-1.6a1.2 1.2 0 00-.6-.3 4 4 0 00-1-.2h-1.2l-.3 10.8m-2.6 2.2l.4-15.4 4.2.2c.8 0 1.5.1 2 .3.5.2.9.4 1.2.8.5.6.8 1.2 1 2 .2.9.2 2.1.2 3.8a35.2 35.2 0 01-.4 4.6c-.2 1-.4 1.7-.8 2.3a2.7 2.7 0 01-1.3 1.3c-.6.2-1.6.3-3 .2l-3.5-.1m15.4.2l-.6-15.4 2.6-.1.6 15.4h-2.6m6.9-.3l-1-12.8-3 .2-.1-2.5 8.5-.8.2 2.6-3 .2 1 12.9-2.6.2m9-16.5l2.6-.5 1.6 10.2c.2 1.2.5 2 .8 2.3.3.4.8.5 1.4.4s1.1-.4 1.3-1a5 5 0 000-2.4l-1.6-10.2 2.5-.5 1.7 10.5c.1 1 .2 1.8.1 2.3a3.6 3.6 0 01-.3 1.3 3.7 3.7 0 01-1.2 1.5c-.6.4-1.3.6-2.1.8-1.6.3-2.7.1-3.5-.5-.8-.6-1.3-1.9-1.6-3.7l-1.6-10.5m13.8 3.9l1-.3c.8-.2 1.3-.5 1.5-1 .3-.4.3-1 .1-1.8-.1-.9-.4-1.4-.8-1.6-.3-.3-1-.3-1.7 0l-1.1.2 1 4.5m-.6 9l-3.3-15 4.4-1c1.3-.4 2.3-.4 3 .1s1.3 1.5 1.6 3c.4 1.5.3 2.7-.2 3.6-.4.9-1.3 1.5-2.6 1.8l-1.8.5 1.4 6.4-2.5.7m9.9-10.9c.7 2.4 1.2 3.9 1.7 4.4.4.6 1 .7 1.6.5.7-.3 1-.7 1.2-1.4 0-.7-.3-2.3-1-4.7s-1.2-4-1.7-4.5c-.4-.5-1-.7-1.6-.4-.7.2-1 .7-1.1 1.4-.1.7.2 2.3.9 4.7m-2.5.9a28.9 28.9 0 01-.9-3.8 6.3 6.3 0 010-2.3 4 4 0 011-2 5 5 0 012-1.1c.8-.3 1.6-.4 2.2-.3.6 0 1.2.4 1.8 1 .4.3.8 1 1.2 1.8.4.9.8 2.1 1.2 3.7.5 1.5.8 2.8 1 3.8v2.3c-.3.8-.6 1.4-1 1.9-.5.5-1.2.9-2 1.2-1 .3-1.6.4-2.3.3-.6-.1-1.2-.4-1.7-1-.5-.3-.9-1-1.3-1.8a28.3 28.3 0 01-1.2-3.7m12.6 3.5l-5.1-14.3 2.4-1 7 8.4-3.7-10 2.3-1 5.1 14.3-2.4 1.1-7-8.5 3.7 10-2.3 1m16-7.9l-5.3-11.3-2.6 1.5-1.1-2.2 7.5-4.5 1 2.3-2.5 1.5 5.4 11.4-2.3 1.3m6-3.6l-7.3-13 2.2-1.5 2.9 5 3-2-3-5.1 2.2-1.6 7.4 13-2.2 1.6-3.3-6-3 2.2 3.4 5.9-2.2 1.5m9.2-6.7l-8.3-12.2 5.7-4.8 1.3 2-3.6 3 2 3 3.3-3 1.4 2-3.4 2.9 2.3 3.3 3.7-3 1.4 2-5.8 4.8m7.2-13.2l1.8-2 .6.7c.6.7 1.1 1 1.5 1.2.3 0 .7-.1 1-.5.5-.5.7-.9.7-1.3 0-.5-.2-1-.6-1.3-.3-.4-.6-.6-1-.7a4.7 4.7 0 00-1.6.1l-1.6.3c-1.4.3-2.4.3-3 .2a3.7 3.7 0 01-1.7-1.2 4.2 4.2 0 01-1.1-3 4.6 4.6 0 011.3-3c1-1 1.9-1.5 2.8-1.5s2 .6 2.9 1.6a4 4 0 01.3.4l-1.7 2-.3-.3c-.5-.6-1-1-1.4-1-.4-.1-.8 0-1.2.5-.3.4-.4.7-.4 1 0 .5.1.8.4 1.2.4.4 1.3.5 2.5.3l1.8-.4a6 6 0 012.8-.1c.6.2 1.3.7 2 1.4.8 1 1.2 2 1.2 3.1a5 5 0 01-1.5 3.3c-1 1-2 1.6-3 1.5-1 0-2-.6-3-1.8a14.3 14.3 0 01-.5-.6m10.7-4.4l-10.6-9.9 4.5-6 1.8 1.6-3 3.9 2.5 2.3 2.8-3.6 1.6 1.5-2.7 3.6 3 2.7 3-4 1.7 1.7-4.6 6.2m2.7-13.8l1.2-2-5.4-2.6 4.2 4.6m2.5 6.9l-9.7-11.5 2-3.2 13.2 5.7-1.6 2.6-3.3-1.6-1.6 2.8 2.5 2.8-1.5 2.4m1.7-12.5l1.1-2.6.8.5c.8.4 1.4.6 1.7.5.4 0 .7-.3 1-.8.2-.6.3-1 .1-1.5a1.7 1.7 0 00-.8-1 1.7 1.7 0 00-1.1-.3c-.4 0-1 .3-1.6.7l-1.5.9a7.5 7.5 0 01-2.7 1.1 4 4 0 01-2-.5 3.9 3.9 0 01-2-2.4 4.8 4.8 0 01.5-3.3c.6-1.3 1.4-2.1 2.3-2.4 1-.3 2-.2 3.2.5a4 4 0 01.4.3l-1.1 2.4-.4-.2a3 3 0 00-1.6-.5c-.4.1-.7.4-1 1-.1.4-.2.8 0 1.2 0 .3.3.6.7.8.5.3 1.3.1 2.4-.6l1.5-1a6.3 6.3 0 012.7-1 4 4 0 012.3.6 4.1 4.1 0 012 2.6 5.3 5.3 0 01-.4 3.6c-.7 1.3-1.5 2.2-2.4 2.5-1 .3-2.1 0-3.4-.7l-.7-.4"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/kz.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/kz.svg
new file mode 100644
index 0000000..f17bd6e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/kz.svg
@@ -0,0 +1,23 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-kz" viewBox="0 0 512 512">
+  <g fill-rule="evenodd">
+    <path fill="#6fdcff" d="M0 0h512v512H0z"/>
+    <g fill="#ffe400">
+      <path d="M43 498c3.5 3.3 2.3 9 12 8.3 14.7 0 15.1-9 15.1-15.3 0-6.3-22-15-23-24.3s5.1-11.8 10.2-11.8c5 0 8.6 3 8.6 5.5s-2.5 3.3-6 3.3 1.5-1.8-1.6-3.3-5 2.2-5 4.5c0 2.2 7.6 2.9 12.6 1.3 1 5 1.6 5.3-5.6 13.8 5.1-3.3 5.6-4 11.2-2.2-5.6-4.8-1.4-14.6-1.2-17.1s-1-5.5-3.3-7c-4.1-3.6-13-3.8-18.3-1.4-7.8 3.4-8.2 13.6-6.1 17l21.5 22c1.5 2.6 2 9.8-7.1 10.2-9.7.7-13-12.4-14.7-16.8-2.3 4.8-4.8 18-14.5 17.2-9.1-.3-10.9-7.5-9.4-10.1l22.1-22.5c2-3.4 1.7-13.6-6-17-5.4-2.4-14.3-2.2-18.4 1.5-2.2 1.4-3.5 4.4-3.3 6.9s4.4 12.3-1.2 17c5.6-1.8 6-1 11.1 2.3-7-8.5-6.6-8.9-5.5-13.9 5 1.7 12.7 1 12.7-1.2 0-2.3-2-6-5.1-4.5-3 1.5 2 3.3-1.5 3.3-3.6 0-6.1-.7-6.1-3.3s3.5-5.5 8.6-5.5 11.2 2.6 10.1 11.8c-1 9.2-23.5 19.3-23.5 25.6 0 6.3 1.6 14 16.3 14 9.7.7 10.8-5 14.3-8.4z"/>
+      <path d="M41.8 366c3.5-3.4 6.3-13.5 16-12.7 14.7 0 20.3 8.1 20.3 14.4 0 6.3-30 57.7-31 67-1 9.2 5.1 11.8 10.2 11.8 5 0 8.6-3 8.6-5.6s-2.5-3.3-6-3.3 1.4 1.8-1.6 3.3-5-2.2-5-4.4c0-2.3 7.5-3 12.6-1.3 1-5 1.5-5.4-5.6-13.9 5.1 3.3 5.6 4 11.2 2.2-5.6 4.8-1.4 14.6-1.2 17.1s-1 5.5-3.4 7c-4 3.7-13 3.8-18.2 1.4-7.8-3.4-8.2-13.6-6.1-17l28.9-62.5c1.5-2.6-2.5-11-11.7-11.4-9.6-.8-13 9.3-14.6 13.7l13.1-1s.5 2 0 3.4c-6.8.4-13.1 1.7-13.1 1.7l-.5 6.6h6.5l-.6 3s-5.4-.4-6 0c-.5.4-1 6.7-1 6.7s-1 .3-2 .3c-1.2 0-2.2-.3-2.2-.3s-.5-6.3-1-6.7c-.5-.4-6 0-6 0l-.5-3h6.5l-.5-6.6s-6.4-1.3-13.2-1.7c-.5-1.3 0-3.3 0-3.3l13.2 1c-1.7-4.5-5-14.6-14.7-13.8-9.1.3-13.2 8.8-11.7 11.4l29 62.5c2 3.4 1.6 13.6-6.1 17-5.3 2.4-14.2 2.3-18.3-1.4-2.3-1.5-3.5-4.5-3.3-7s4.3-12.3-1.3-17c5.6 1.8 6.1 1 11.2-2.3-7 8.5-6.6 8.9-5.6 13.9 5.1-1.7 12.7-1 12.7 1.3 0 2.2-2 5.9-5 4.4-3.1-1.5 2-3.3-1.6-3.3-3.5 0-6 .7-6 3.3s3.5 5.6 8.6 5.6 11.1-2.6 10.1-11.9c-1-9.2-31-60.6-31-67 0-6.2 5.6-14.3 20.3-14.3 9.7-.8 13.1 9.3 16.6 12.7z"/>
+      <path d="M41.8 340.5c3.5 3.4 6.3 13.5 16 12.7 14.7 0 20.3-8.1 20.3-14.4 0-6.3-30-57.7-31-67-1-9.2 5.1-11.8 10.2-11.8 5 0 8.6 3 8.6 5.6s-2.5 3.3-6 3.3 1.5-1.8-1.6-3.3-5 2.2-5 4.4c0 2.3 7.5 3 12.6 1.3 1 5 1.5 5.4-5.6 13.9 5.1-3.3 5.6-4 11.2-2.2-5.6-4.8-1.4-14.6-1.2-17.1s-1-5.5-3.4-7c-4-3.7-13-3.8-18.2-1.4-7.8 3.4-8.2 13.6-6.1 17L71.5 337c1.5 2.6-2.5 11-11.7 11.4-9.6.8-13-9.3-14.6-13.7l13.1 1s.5-2 0-3.4c-6.8-.5-13.1-1.7-13.1-1.7l-.5-6.6H51l-.5-3s-5.4.4-6 0c-.4-.4-1-6.7-1-6.7s-1-.3-2-.3c-1.2 0-2.2.3-2.2.3s-.5 6.3-1 6.7c-.5.4-6 0-6 0l-.5 3h6.5l-.5 6.6s-6.4 1.2-13.2 1.7c-.5 1.3 0 3.3 0 3.3l13.2-1c-1.7 4.5-5 14.6-14.7 13.8-9.1-.3-13.2-8.8-11.6-11.4l28.9-62.5c2-3.4 1.6-13.6-6.1-17-5.3-2.4-14.2-2.3-18.3 1.4-2.3 1.5-3.5 4.5-3.3 7s4.3 12.3-1.3 17c5.6-1.8 6.1-1 11.2 2.3-7.1-8.5-6.6-8.9-5.6-13.9 5.1 1.7 12.7 1 12.7-1.3s-2-5.9-5-4.4 2 3.3-1.6 3.3c-3.5 0-6-.7-6-3.3s3.5-5.5 8.6-5.5 11.1 2.5 10.1 11.8c-1 9.2-31 60.6-31 67 0 6.2 5.6 14.3 20.3 14.3 9.7.8 13.1-9.3 16.6-12.7z"/>
+      <path d="M41.8 171.2c3.5-3.4 6.3-13.5 16-12.8 14.7 0 20.3 8.2 20.3 14.5 0 6.2-30 57.6-31 66.9-1 9.2 5.1 11.8 10.2 11.8 5 0 8.6-3 8.6-5.5s-2.5-3.4-6-3.4 1.4 1.9-1.6 3.4-5-2.2-5-4.5c0-2.2 7.5-3 12.6-1.3 1-5 1.5-5.3-5.6-13.8 5.1 3.3 5.6 4 11.2 2.2-5.6 4.8-1.4 14.6-1.2 17s-1 5.5-3.4 7c-4 3.7-13 3.9-18.2 1.5-7.8-3.5-8.2-13.7-6.1-17l28.9-62.5c1.5-2.6-2.5-11.1-11.7-11.5-9.6-.7-13 9.4-14.6 13.8l13.1-1s.5 2 0 3.4c-6.8.4-13.1 1.6-13.1 1.6l-.5 6.7h6.5l-.6 3s-5.4-.4-6 0c-.5.3-1 6.6-1 6.6s-1 .4-2 .4c-1.2 0-2.2-.4-2.2-.4s-.5-6.3-1-6.6c-.5-.4-6 0-6 0l-.5-3h6.5l-.5-6.7s-6.4-1.2-13.2-1.6c-.5-1.3 0-3.4 0-3.4l13.2 1c-1.7-4.4-5-14.5-14.7-13.8-9.1.4-13.2 8.9-11.7 11.5l29 62.5c2 3.3 1.6 13.5-6.1 17-5.3 2.4-14.2 2.2-18.3-1.5-2.3-1.4-3.5-4.4-3.3-7s4.3-12.2-1.3-17c5.6 1.8 6.1 1.1 11.2-2.2-7 8.5-6.6 8.9-5.6 13.8 5.1-1.6 12.7-.9 12.7 1.3s-2 6-5 4.5c-3.1-1.5 2-3.4-1.6-3.4-3.5 0-6 .8-6 3.4s3.5 5.5 8.6 5.5 11.1-2.6 10.1-11.8c-1-9.3-31-60.7-31-67 0-6.2 5.6-14.4 20.3-14.4 9.7-.7 13.1 9.4 16.6 12.8z"/>
+      <path d="M41.8 145.7c3.5 3.4 6.3 13.4 16 12.7 14.7 0 20.3-8.1 20.3-14.4 0-6.3-30-57.7-31-67-1-9.2 5.1-11.8 10.2-11.8 5 0 8.6 3 8.6 5.5s-2.5 3.4-6 3.4 1.5-1.9-1.6-3.4-5 2.3-5 4.5 7.5 3 12.6 1.3c1 5 1.5 5.3-5.6 13.8 5.1-3.3 5.6-4 11.2-2.2-5.6-4.8-1.4-14.6-1.2-17s-1-5.5-3.4-7c-4-3.7-13-3.9-18.2-1.5-7.8 3.5-8.2 13.7-6.1 17l28.9 62.5c1.5 2.6-2.5 11.1-11.7 11.5-9.6.7-13-9.4-14.6-13.8l13.1 1s.5-2 0-3.4a117 117 0 01-13.1-1.6l-.5-6.7H51l-.5-3s-5.4.4-6 0c-.4-.3-1-6.6-1-6.6s-1-.4-2-.4c-1.2 0-2.2.4-2.2.4s-.5 6.3-1 6.7c-.5.3-6 0-6 0l-.5 3h6.5l-.5 6.6s-6.4 1.2-13.2 1.6a7 7 0 000 3.4l13.2-1c-1.7 4.4-5 14.5-14.7 13.8-9.1-.4-13.2-8.9-11.6-11.5l28.9-62.5c2-3.3 1.6-13.5-6.1-17-5.3-2.4-14.2-2.2-18.3 1.5-2.3 1.5-3.5 4.4-3.3 7s4.3 12.2-1.3 17c5.6-1.8 6.1-1 11.2 2.2-7.1-8.5-6.6-8.8-5.6-13.8 5.1 1.6 12.7 1 12.7-1.3s-2-6-5-4.5 2 3.4-1.6 3.4c-3.5 0-6-.8-6-3.4s3.5-5.5 8.6-5.5S36.9 67.8 35.9 77c-1 9.3-31 60.7-31 67 0 6.3 5.6 14.4 20.3 14.4 9.7.7 13.1-9.3 16.6-12.7z"/>
+      <path d="M43 13.7c3.5-3.4 2.3-9 12-8.4 14.7 0 15.1 9 15.1 15.3 0 6.3-22 15.1-23 24.3-1 9.3 5.1 11.9 10.2 11.9 5 0 8.6-3 8.6-5.6S63.4 48 60 48s1.5 1.9-1.6 3.3-5-2.2-5-4.4 7.6-3 12.6-1.3c1-5 1.6-5.4-5.6-13.9 5 3.3 5.6 4 11.1 2.3-5.6 4.8-1.4 14.6-1.2 17s-1 5.5-3.3 7c-4.1 3.7-13 3.9-18.3 1.5-7.8-3.5-8.2-13.7-6.1-17l21.5-22c1.5-2.7 2-9.9-7.1-10.3-9.7-.7-13 12.5-14.7 16.8C40 22.2 37.5 9 27.8 9.7c-9.1.4-10.9 7.6-9.4 10.2l22.1 22.5c2 3.3 1.7 13.5-6 17-5.4 2.4-14.3 2.2-18.4-1.5-2.2-1.5-3.5-4.4-3.3-7s4.4-12.2-1.2-17c5.6 1.8 6 1 11.1-2.3-7 8.5-6.6 9-5.5 13.9 5-1.7 12.7-1 12.7 1.3 0 2.2-2 6-5.1 4.4-3-1.4 2-3.3-1.5-3.3-3.6 0-6.1.8-6.1 3.3s3.5 5.6 8.6 5.6S37 54.2 35.9 44.9c-1-9.2-23.5-19.3-23.5-25.6 0-6.3 1.6-14 16.3-14 9.7-.7 10.8 5 14.3 8.4z"/>
+    </g>
+    <g fill="#ffe400" transform="translate(-220 40)">
+      <rect width="170.2" height="161.3" x="425.9" y="104.5" rx="85.1" ry="80.7"/>
+      <path d="M507 56.4c-.8 0-4.6 26.8-6 32.8-1.4 13.5 18 13 14.8-.5L507 56.3zm6.8 259.8c.7 0 6.5-26.5 8.4-32.4 2.3-13.3-17.1-14-15-.4l6.6 32.8zM378.2 184.6c0 .7 27.9 6.3 34.1 8.1 14 2.3 15-16 .6-14l-34.7 6zm271.7 3.2c0-.7-28.2-5.3-34.5-6.9-14.1-1.7-14.2 16.6 0 14.1l34.5-7.2zM406.8 99.6c-.5.5 17.9 21.3 21.6 26.4 9.6 10 22.3-4 9.6-10.8l-31.2-15.5zm211.1 171c.5-.5-19.7-19.7-23.9-24.4-10.5-9.2-21.8 5.7-8.6 11.5l32.5 13zm-169-200c-.6.3 8 26.1 9.4 32.2 4.8 12.7 22.2 4.4 13.2-6.5L449 70.6zM572 303c.7-.3-6-26.6-6.9-32.7-3.9-13-21.8-6-13.7 5.6l20.7 27zm30.3-214.4c-.6-.5-22.8 16.6-28.2 20-10.7 9 3.8 21.2 11.2 9.3l17-29.3zm-183 193.7c.5.5 24-15 29.6-18.1 11.3-8.2-2.2-21.4-10.5-10l-19 28.1zm-35-144.1c-.3.6 24 14.7 29.3 18.4 12.5 6.5 19.8-10.5 5.5-13.2l-34.8-5.2zM638 236.6c.3-.6-23-16.3-28-20.3-12-7.4-20.5 9.1-6.4 12.7l34.4 7.6zM557.4 63.7c-.7-.2-14.6 23.4-18.3 28.5a7.8 7.8 0 0014 4.7l4.3-33.2zM463.5 308c.7.3 16.3-22.4 20.3-27.3 7.3-11.6-10.4-19-13.7-5.6l-6.6 32.9zM386 238.7c.3.6 28-6 34.5-7 13.6-3.8 6-20.6-6-12.8L386 238.7zM638.1 136c-.2-.6-28.3 4.1-34.8 4.7-14 2.9-7.5 20.2 5 13.2l29.8-17.9z"/>
+      <path d="M534.6 58.1c-.7-.1-10.1 25.4-12.9 31-4.1 13 15 16.2 14.7 2.4L534.7 58zM486.1 314c.7.2 12-24.7 15.2-30.2 5-12.6-13.8-17-14.5-3.3L486 314zm-9.7-253.4c-.7.2 1.9 27.2 1.9 33.4 1.9 13.3 20.6 8.7 14.4-3.7l-16.3-29.7zm68 251.9c.7-.1 0-27.2.5-33.4-.9-13.5-20-10.1-14.6 2.7l14 30.7zM428.2 83c-.6.4 12.7 24.3 15.2 30 7.2 11.7 22.7.7 11.8-8.6l-27-21.4zM593 290.9c.6-.4-11-25.2-13-31-6.3-12.1-22.5-2.1-12.4 7.8l25.4 23.2zM393 116.6c-.4.6 21.1 18.4 25.6 23 11.1 8.4 21.4-7.2 7.8-12.1L393 116.6zm234.2 139.7c.4-.6-19.7-19.8-23.9-24.6-10.4-9.1-21.8 5.8-8.6 11.6l32.5 13zm-249.6-97.8c-.2.7 26.3 10.8 32.1 13.7 13.4 4.5 17.7-13.4 3.1-13.8l-35.2.1zM645 216.3c.3-.6-25.4-12.4-31-15.7-13-5.4-18.7 12.2-4.2 13.6l35.2 2.1zM376.7 210c.1.6 28.7.2 35.2.7 14.2-.7 10.8-18.8-2.8-13.9L376.7 210zm270.2-45c0-.7-28.6-2.2-35-3.1-14.3-.2-12.2 18.1 1.7 14l33.3-11zm-245.7 98.4c.4.6 26-11.6 32-13.9 12.4-6.5 1-21.4-8.9-11.3l-23.1 25.2zm222.3-152.3c-.4-.6-26.7 9.9-33 11.8-12.9 5.7-2.6 21.3 8 11.9l25-23.7zM442.8 298.8c.6.3 18.9-20.5 23.5-24.9 8.7-10.7-8-20-12.9-7l-10.6 31.9zM582.5 75c-.5-.4-20.3 19.1-25.2 23.2-9.4 10.1 6.6 20.5 12.4 7.9L582.4 75z"/>
+      <g transform="matrix(2.1824 0 0 2.0629 -405 -272.6)">
+        <path d="M360.1 247.9c.7 2.5.8 16.5 14.9 30 14 13.4 38 16.4 38 16.4s.1 1.9-1.6 2c-1.7.2-9.9-1.5-14-2.8-4-1.2-7.6-3.4-8-3.3-.5.2-1.3 1.6-2.5 1.4s-7-6.2-9.6-7.8a80.6 80.6 0 01-13.7-15.3c-2.8-4.5-3.5-7.5-4.4-7.5s-4.2 2.2-4.2 2.2-3-4.5-5.6-11.7c-2.7-7.2-2.4-11.4-1.8-11.7.7-.3.7 5.3 2.7 10.4 2 5.2 4.8 6.8 4.8 6.8s-1.8-2.7-3.2-9.4-2-13.2-1-15.2 1.9-2.6 2-2.5c.2.2-1.7 3.1-.4 10.8s4.8 14.2 5.6 13.9c.8-.3-.5-1.9-1-6.4s.5-7.3 1.6-7.7c.5-.4 1.3 5 1.4 7.4zm-9.8 12.8c-2.7-2.5-6.9-11.2-7.8-10.8-1 .5 6.8 13 7 14 .2 1.2 1.9 4.6.6 4.1s-10.6-10.3-9.5-8.4 8.1 10.5 7.7 11-5.8-4.8-6-4.1c-.1.6 5.3 5.8 5.2 6.4s-3.5-3.3-3.5-2.5 3.5 4.7 3.5 5.3-3-2.8-2-1c.9 2 3.5 3.7 3.4 4.3s-2.2-.8-2.2-.5c0 .3 3.9 1.7 4.8 2.8 1 1.1 7.4 8.5 12.2 12.2s18.6 10.2 19.6 10.2c.9 0 2.3-2 2-2.8-.3-.8-13.8-5.4-17.5-8.8-3.8-3.4-13-11.6-13.8-12-.7-.5-2.8-.3-2.8-.8s2.7.3 2.5 0c-.1-.3-3.7-1.9-3.6-2.2.2-.3 2.5.6 2.5.3s-4.2-2.6-4-3.1c.1-.5 3.1 1.4 3.1 1 0-.2-4-3-3.9-3.5.1-.5 3.1 2.2 3 1.6s-2.4-4-2.4-4.4c0-.5 3.6 3.4 4 2.6.2-.7-1.3-7.2-1.2-7.3s2.7 1.4 3.1.5c.5-1-1.8-2.3-4-4.1zm46.1 49.2c-1.9.3-2.8-.4-1.7-2 1.5 0 5.5-1.3 6.9-1.9s2.9-1.4 4.1-2.5c1.2-1.3 2 .7 1.3 1.8-.5.7-2.8 2-4.5 2.7-2.5.8-4.7 2-6.1 1.9zm12.5-5.1c-1.3-1.4-.2-2.4 1.7-3.5 2.8-1.5 2-3.6 5.6-5.3 1.6-1 24-10 31.3-14.8s27.8-20.3 33.3-31c5.4-10.6 2.8-11.4 3.6-11.8.7-.5 1.5 1.5 1.4 3.9-.2 2.3-2 9.3-1.4 10s8.2-5.5 11.4-13 5.6-15.3 7.1-15.3c1.6 0-2.6 12.8-5.3 17.8-2.6 5-5.7 7.5-5 8.6.8 1 8.6-5.5 11.3-10.3 2.6-4.9 5.1-9.2 5.6-8.3a34 34 0 01-6.7 16.1c-4.2 4.8-9.2 8.3-8.4 9 .7.8 6.4 1.6 12.3-2.4 6-4.1 6.6-10 7.3-9.7.8.3-.7 8.4-6.4 13.4s-13.2 5.5-13 6.6c.4 1 16.3-4.6 16-3.3-.3 1.2-20.6 9.2-20.8 10 0 .6 3.5.8 9-.5 5.4-1.2 10.6-5.5 11.3-4.5.2 1.4-3.9 4.8-10.1 6.4-6.3 1.6-9.4 3.7-9.6 4.2-.1.5 11.2-1.4 11.2-.8s-14.8 3.5-14.9 4.3c-.2.7 14-2.9 13.8-2-.4.7-19.3 6.3-19.1 6.6.1.4 15.8-3.4 15.5-2.8-.4.7-26.4 8-26.6 8.5-.2.4 23-5.2 22.8-4.7s-12 3.4-12 3.7c0 .3 9.5-1.5 9.3-1-.1.4-24 6.5-24.5 7.4-.5 1 12.4-2.5 12.2-.7s-27.7 11-27.8 9.3c-.2-1.7 16.7-6 16.6-6.5-.2-.5-9.7 1-9.9.1-.1-1 6.3-3 5.8-3.4-.5-.5-5.3 1.4-4.9.3.5-1.1 9.6-5.3 9.4-5.6-.1-.3-3.3 1-3 0 .4-1.1 19.7-6.7 19.4-7.4-.3-.6-8.9 1.4-9.7 1.6-.3-.6 12-5.2 11.8-6-.4-.7-6.6 2.7-7 1.8-.2-1 10.9-5.3 10.2-6s-5.7 1.8-6.4 1.1 10.5-8.4 8.8-8.6c-1.7-.1-3.8 2.4-4 .8.2-2 8.7-5.3 6.8-6.9-3-.9-13.1.7-17.3 3.2s-18.2 16.4-21.6 18.6c-3.4 2.1-15 7-17.2 8-3.4 1.2-4 3-7.5 4.8-6.3 1.7-6.2 3.6-9.2 4.7-1.1.3-12.4 5.7-12.5 5.3zm-15.8 7c-1.9 1-3.6 3.4-2.5 4.4.6 1.2 2.5-2.7 4-2.5l8 .4c4.3.3 6.4-.9 8.8-.7s7.7-1.3 10.2-1.3 3 .3 3.2-.8c.3-1-7.8-.3-11.4-.4-3.6-.2-8.1.7-10.8.7-2.5-.1-6.8-.9-9.5.2z"/>
+        <rect width="3.4" height="3" x="401.7" y="309.1" rx="1.7" ry="1.5"/>
+        <path d="M445 307.7c1.7-.3 6.3 1.3 9.5 2 5.8 2.3 16.6 1.2 16.6 2.3s-.7 2.4-3.2 2.6-8.8-1-8.6-1 5 2.3 3.6 2.9-5.5-1.3-6.2-.8 3.8 1.4 3 1.7c-.6.3-3.7-.4-4.7-.3-1 .2.8 1.3-.4 1.7-1.2.5-3.2-.6-4-.3-.9.3 1.8 2 .6 2.2-1.2.2-4-.8-5.6-1-1.6 0 1.5 1.6.5 1.8-1 .1-3.8-1.3-4.5-1.3s0 2-1 2-2.2-1.7-2.8-1.7 0 2-1 2-1.4-2.1-2.2-2c-1 .2 0 2.7-1.4 2.5-1.3-.1-1.5-2.6-2.6-2.5-1 .2.2 2.5-.8 2.5s-1.2-2.3-2.2-2.5c-1-.1-.6 2.2-1.2 2.2s-1.2-2.2-1.6-2.2c-.3 0 0 2.2-1.2 2s-1.2-2.4-1.5-2.3c-.4.2-.4 1.8-1.2 1.8s-.9-1.6-1.2-1.4c-.4.1-1.6 2.1-2.4 1.8-.9-.3.2-1.9-.2-1.9s-1.4 1.1-2 1 0-1.4-.2-1.4-1.7.8-2.4.8-2.6 1-3.1.1c-.5-1 1.3-1 1.7-1.9.3-.9-1-3.6.4-4.5 1.3-1 5.6 1.3 12-.3 11.6-3.1 20.6-6.7 21.5-6.6z"/>
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/la.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/la.svg
new file mode 100644
index 0000000..1e7686a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/la.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-la" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M177.2 0h708.6v708.7H177.2z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-128) scale(.72249)">
+    <path fill="#ce1126" d="M0 0h1063v708.7H0z"/>
+    <path fill="#002868" d="M0 176h1063v356.6H0z"/>
+    <path fill="#fff" d="M684.2 354.3a152.7 152.7 0 11-305.4 0 152.7 152.7 0 01305.4 0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/lb.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/lb.svg
new file mode 100644
index 0000000..a047b0b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/lb.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-lb" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M124 0h496v496H124z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="translate(-128) scale(1.0321)">
+    <g fill-rule="evenodd" stroke-width="1pt">
+      <path fill="red" d="M0 372h744v124H0zM0 0h744v124H0z"/>
+      <path fill="#fff" d="M0 124h744v248H0z"/>
+    </g>
+    <path fill="#007900" d="M368.3 125.9c-7.6 15.1-12.7 15.1-25.3 25.2-5 5-12.6 7.5-2.5 12.6-10 5-15.1 7.5-20.2 17.6l2.6 2.5s9.5-4.7 10-2.5c1.7 2-12.6 9.7-14.4 11s-10.8 6.6-10.8 6.6c-12.6 10.1-20.2 7.6-27.7 22.7l25.2-2.5c5 17.6-12.6 20.1-25.2 27.7l-20.2 12.6c5 17.6 20.2 7.5 32.8 2.5l2.5 2.5v5L270 282s-29.8 17-30.3 17.6c-.2 1 0 5 0 5 10.1 2.6 25.2 5.1 35.3 0 12.6-5 15.2-10 30.3-10a97.4 97.4 0 01-50.5 20.2v10c15.2 0 25.3 0 37.9-2.5l32.8-10c7.5 0 15.1 7.5 12.6 15-7.6 27.7-37.8 22.7-48 45.4l40.4-15.1c10.1-5 20.2-10.1 32.8-7.6 15.1 5 15.1 15.1 35.3 20.1l-5-12.5c5 2.5 10 2.5 15.1 5 12.6 5 15.1 10 30.3 7.5-12.6-15-15.2-12.5-25.2-22.6-10.1-15.1-15.2-37.8 0-40.3l17.6 5c17.7 2.6 17.7-2.5 42.9 7.6 15.1 5 20.2 12.6 37.8 7.5-7.5-17.6-35.3-30.2-53-35.2 20.2-12.6 15.2 5 43-2.5v-5c-20.2-15.2-27.8-27.8-55.6-27.8l43-5v-5S447 235.7 446 235.3a6.3 6.3 0 014.1-4.4c8 5.2 32.3 4.6 33.7 4.5-.7-6.2-12.2-11.3-22.3-16.3 0 0-43.2-26.7-43.4-29 .8-6.8 17.7 1 35.8 6.3-5-10-15.1-15.1-25.2-17.6l15.1-2.5c-10-22.7-35.3-20.2-50.4-30.3-10.1-7.5-10.1-12.6-25.2-20.1z"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="3.1" d="M341 293.6c1.9-6 4.3-11.3-6.9-16.4-11.2-5.1 5.6 20.5 7 16.4zm13.3-12c-2.3.3-3.4 8.6 1 10.8 5.1.8 1-10.7-1-10.8zm13.1-.9c-2.3.7-2.4 12.4 5.8 10.3 8.3-2 0-11.2-5.8-10.2zm15.3-29.8c1.8-2.8-.1-14.5-7.2-9.6-7.1 5 5 10.4 7.2 9.6zm-15.5-9.7c2.2-.8 2.4-8-3.8-6-6.2 1.8 2.2 7.5 3.8 6zm-14 2.9s-4.3-6-7.7-4.8c-4.2 4 8 4.9 7.7 4.8zm-48 19.1c1.8.2 15.5-2.2 20.2-7.5 4.8-5.3-24.3 2.2-24.3 2.3s2.7 4.7 4 5.2zm136.7-33.8c.7-1.3-7.3-7-12-4.7-1.2 4.2 12 5.5 12 4.7zM415 215.8c1.5-2.1-3.5-11-13.3-6s10.3 9.5 13.3 6zm-31.1-5.2s2.4-8 8.4-6.4c6.6 5.1-8.1 6.7-8.4 6.4zm-5.8-6c-1-2.2-7.1-.9-14.2 3.8-7.1 4.6 16.3 1.3 14.2-3.8zm18-21.4s6.4-2.9 8.3 0c2.6 4.2-8.3 0-8.2 0zm-5.2-2.8c-1.3-2.5-8.3-2.8-8.1 1-1.2 2.8 9 2.3 8-1zm-16.7 0c-.7-1.5-10.6 0-13.6 6 4.8 2.3 15.8-2.2 13.6-6zm-21.3 6.1s-13 8-13.9 13.9c.4 5 16.3-9.2 16.3-9.2s1.4-5.6-2.4-4.7zm-14.5-7.3c.4-1.6 6.5-5.4 7-5 .5 1.6-5 6-7 5zm4.2 30.6c.3-2.3-15.6-2.1-9.6 5.1 5 6.1 10.7-4 9.6-5zM328 220.3c-.8-1.6-2-5.9-4.2-6.3-1.7 0-11.3 2-12 3.5-.4 1.3 4 9.2 5.4 9.4 1.7.6 10.5-5.8 10.8-6.6zm85.6 53.4c.5-1.7 16.7-7.3 22.3-2 6.6 9-22.7 4.8-22.3 2zm44.6 10.6c3.5-6-11-13.2-17-6.3 2 8.2 14.1 11.2 17 6.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/lc.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/lc.svg
new file mode 100644
index 0000000..b13b885
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/lc.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-lc" viewBox="0 0 512 512">
+  <g fill-rule="evenodd">
+    <path fill="#65cfff" d="M0 0h512v512H0z"/>
+    <path fill="#fff" d="M254.8 44.8l173.5 421.6-344 1L254.7 44.8z"/>
+    <path d="M255 103l150 362.6-297.5.8L255 103z"/>
+    <path fill="#ffce00" d="M254.8 256.1l173.5 210.8-344 .5 170.5-211.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/li.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/li.svg
new file mode 100644
index 0000000..cbed5cc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/li.svg
@@ -0,0 +1,43 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-li" viewBox="0 0 512 512">
+  <path fill="#002b7f" d="M0 0h512.1v256H0z"/>
+  <path fill="#ce1126" d="M0 256h512.1v256H0z"/>
+  <g fill="#ffd83d" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" transform="translate(-54) scale(.85333)">
+    <g id="a">
+      <path stroke="none" d="M216.4 122.3l-1.9 62.5h-63.4c-7.8-15.2-14.2-28-14.2-45.5 0-14.6 11.5-26.2 28-26.2 17.5 0 36.8 5.9 51.5 9.2z"/>
+      <g stroke-width="1.5">
+        <path d="M144.5 125.2v36m5-39.7v48m5.2-50.5v57.2m5-58.4v44.9m5.1-45.1v45.3m5.1-47v47m5.1-47v47m5.1-46.5v47m5.1-46.5v46.9m5.1-44v47m5-46.5v52.9m5.2-52.9v47m5-47v47"/>
+        <path fill="#000" d="M176.4 118c10.8 1.7 34.4 12.8 31.7 27.7-3.8 21.2-16.2 12.7-32.6 9.7l-12.4 4.1c-4.5 4.5-11 8.7-15.4 3.2h-7.4v28.8h81.4V122z"/>
+      </g>
+      <circle cx="212.8" cy="113" r="4.9"/>
+      <circle cx="201.7" cy="110.3" r="4.9"/>
+      <circle cx="190.4" cy="107.5" r="4.9"/>
+      <circle cx="179.1" cy="105.6" r="4.9"/>
+      <circle cx="167.8" cy="104.5" r="4.9"/>
+      <circle cx="156.8" cy="105.1" r="4.9"/>
+      <circle cx="146.2" cy="108.7" r="4.9"/>
+      <circle cx="137.3" cy="115.3" r="4.9"/>
+      <circle cx="131" cy="124.4" r="4.9"/>
+      <circle cx="127.9" cy="135.2" r="4.9"/>
+      <circle cx="128" cy="146.3" r="4.9"/>
+      <circle cx="130.2" cy="157.2" r="4.9"/>
+      <path d="M215 119.5l-.5 6.5c-12.3-2-29.7-8.8-46-8.8-15 0-26.6 6-26.6 21.2 0 14.9 6.3 28.5 14.7 42.3l-8.7 4c-7.8-15-14.3-28-14.3-45.4 0-14.6 11.5-29 31.3-29 17.5 0 35.4 6 50.1 9.2z"/>
+    </g>
+    <use width="100%" height="100%" transform="matrix(-1 0 0 1 444 0)" xlink:href="#a"/>
+    <path d="M222 53.1l-5.2 9.7 5.2 9.6 5.1-9.6L222 53zm0 24.4l-5.2 9.6 5.2 9.7 5-9.8-5.1-9.6zM203.6 75l8.1 5.1 8.1-5.1-8-5.2-8.2 5.2zm20.5 0l8.1 5.1 8.2-5.1-8.2-5.2-8 5.2z"/>
+    <circle cx="222" cy="75.1" r="3.9"/>
+    <circle cx="222" cy="100" r="10.5"/>
+    <path fill="none" stroke-width="1.5" d="M219.3 89.9v6.6a62.5 62.5 0 00-7.4.8m20.2 0a62.1 62.1 0 00-7.5-.8v-6.6m-12.8 12.7a61.4 61.4 0 0110.2-.9c3.4 0 6.8.3 10 .9"/>
+    <path d="M211.8 117.7c-1 17-3 34.5-9.7 47.1l10.8-4.4c3.8-14.3 4.6-32.8 5.7-41.6l-6.8-1.1zm20.4 0l-6.9 1.1c1.2 8.8 2 27.3 5.7 41.6l10.8 4.4c-6.6-12.6-8.6-30-9.6-47.1z"/>
+    <path d="M222 154.7c-13 0-22.5 6-23 21.6-3.2-5.6-16.5-23-29-20.7-7.4 1.4-14 11.7-12.8 23.4-6.2-17.6-24.1-20.5-37.3-10 11.7 9.5 16.9 37.8 26.7 50h150.7c9.8-12.2 15-40.5 26.7-50-13.1-10.5-31.1-7.6-37.2 10 1-11.7-5.5-22-13-23.4-12.4-2.3-25.7 15.1-28.9 20.7-.5-15.5-10-21.6-23-21.6z"/>
+    <g stroke-width="1.5">
+      <path fill="#000" d="M297.1 219c0 5.6-33.6 11.7-75.1 11.7s-75.2-6-75.2-11.7c0-5.5 33.7-8.5 75.2-8.5 41.4 0 75.1 3 75.1 8.5z"/>
+      <circle cx="222" cy="114.4" r="3.5"/>
+      <circle cx="222" cy="122" r="3.7"/>
+      <circle cx="222" cy="130.2" r="4.1"/>
+      <circle cx="222" cy="139.3" r="4.7"/>
+      <circle cx="222" cy="149.4" r="5.1"/>
+      <path fill="#000" stroke="none" d="M220 159.2c-.6 0-1.1.5-1 1.4l.6 4.3c.2 1.5 1 1 1.3 0 .2-1.2.1-2 .2-4.1 0-1.1-.6-1.6-1.2-1.6zm4 0c-.6 0-1.1.5-1.1 1.6 0 2.1 0 2.9.2 4 .2 1.2 1 1.6 1.3 0l.5-4.2c.2-1-.4-1.4-.9-1.4zm-7.7.6a1 1 0 00-1 1c0 1 .3 2.3.4 3.8.2 1.5 1.3 1 1.4 0 0-.8.2-2.2 0-3.9 0-.6-.2-.9-.6-1a.8.8 0 00-.2 0zm11.1 0c-.3 0-.6.3-.7 1a20.1 20.1 0 00.2 3.8c0 1 1.2 1.5 1.3 0 0-1.5.4-2.7.4-3.7 0-.6-.5-1-1-1.1a.8.8 0 00-.2 0zm-15.4 1.7c-.5.1-1 .7-.8 1.3.3 1.3.6 2.7.6 4 0 1.1.9.7 1 0a59.8 59.8 0 00.1-4c0-1-.5-1.4-1-1.3zm19.6 0c-.3.1-.6.5-.6 1.3l.2 4c0 .7 1 1.1 1 0 0-1.3.2-2.7.5-4 .2-.6-.3-1.2-.7-1.3a.6.6 0 00-.3 0zm-59 .2c-.6 0-1 .7-.6 1.5.6 1.4 1.3 2.2 1.9 3.6.5 1.3 1.4.5 1.1-.4l-1.4-3.7c-.3-.7-.7-1-1-1zm98.8 0c-.4 0-.7.3-1 1-.9 1.9-1.2 2.8-1.5 3.7-.2 1 .6 1.7 1.2.4l1.8-3.6c.4-.8 0-1.5-.5-1.5zm-94.8 0c-.5.2-.7.7-.5 1.3.6 1.2 1.3 2.5 1.8 3.8.4 1.1 1.4.8 1-.2l-1-3.7c-.4-1-1-1.3-1.3-1.2zm90.5 0c-.4.1-.8.5-1 1.2-.7 2-.8 2.6-1.1 3.7-.4 1 .6 1.3 1 .2l1.8-3.8c.2-.6 0-1.1-.4-1.3a.6.6 0 00-.3 0zm-85.5 1c-.6.1-1 .9-.6 1.9.4 1.2 1 2.3 1.6 3.7.6 1.4 1.5 1.1 1.3.2-.3-.9-.5-2.3-1.2-4.5-.3-1-.7-1.4-1.1-1.3zm80.8 0c-.4 0-.9.3-1.2 1.3-.6 2.2-1 3.6-1.1 4.5-.3 1 .7 1.2 1.2-.2.6-1.4 1.2-2.5 1.6-3.7.4-1 0-1.8-.5-1.9zm-93.2.7c-.6 0-1 1-.7 1.7.5 1 .9 1.4 1.4 2.6.6 1.2 1.2.3 1-.5-.3-.8-.6-1.7-.8-2.8-.2-.8-.6-1-1-1zm105.6 0c-.4 0-.7.2-1 1l-.7 2.8c-.2.8.4 1.7 1 .5.5-1.2.8-1.5 1.4-2.6.3-.7-.2-1.6-.7-1.7zm-67 2.8c-.7 0-1.3.8-1 1.5.2 1.2.8 2.2 1.1 3.7.4 1.3 1.3.7 1.2-.2a28.7 28.7 0 00-.5-4c-.2-.7-.5-1-.9-1zm28.4 0c-.3 0-.7.3-.8 1a28.7 28.7 0 00-.6 4c0 .9.9 1.5 1.2.2l1.2-3.7c.2-.7-.4-1.5-1-1.5zm-14.2 1.2c-.8 0-.9 1-.9 1.7a12.3 12.3 0 01-2 6.4c-1 1.2-2.3.9-3.5.2a22.3 22.3 0 01-3.3-2.2c-1.4-1-2.4-.4-.8 1.9 4.6 6.6 9.6 12.2 9.6 23 0 1.3.3 1.7.9 1.7s.8-.4.8-1.8c0-10.7 5-16.3 9.6-23 1.6-2.2.6-2.8-.7-1.8a21 21 0 01-3.3 2.2c-1.3.7-2.6 1-3.5-.2a12.3 12.3 0 01-2-6.4c-.1-.7-.2-1.7-1-1.7zm-35.3-1.6a.6.6 0 00-.2 0c-.3.1-.4.4-.3 1l1.1 3.9c.3 1 1.4.7 1.2-.5l-.6-3.1c-.2-.8-.8-1.3-1.2-1.3zm70.6 0c-.5 0-1 .5-1.2 1.3-.4 1.4-.4 1.8-.6 3-.3 1.3.9 1.5 1.1.6l1.2-4c0-.5-.1-.8-.4-.9a.6.6 0 00-.2 0zm-91.6.4c-.6 0-1 .8-.4 1.8.6 1.2 1.7 2.6 2.2 3.5.5.8 1.4.2.8-.8-.6-1-.8-2.3-1.6-3.8a1 1 0 00-1-.7zm112.5 0c-.3 0-.7.2-1 .7-.7 1.5-1 2.7-1.5 3.8-.6 1 .2 1.6.7.8.5-.9 1.6-2.3 2.2-3.5.6-1 .2-1.8-.4-1.8zM134 169.5c-.6 0-.8 1.2-.2 2a19.2 19.2 0 002.6 2.7c.8.8 1-.2.6-1l-1.8-2.7c-.5-.7-.9-1-1.2-1zm175.9 0c-.3 0-.7.3-1.1 1l-1.9 2.7c-.4.8-.2 1.8.7 1a19 19 0 002.6-2.7c.6-.8.4-2-.3-2zm-170.8 1c-.6 0-1 .4-.5 1.3l1.9 3.8c.5 1 2 1.3 1.4-.2l-1.3-3.8c-.3-.7-1-1-1.5-1zm165.8 0c-.6 0-1.3.4-1.6 1.1l-1.2 3.8c-.6 1.5.9 1.2 1.4.2.5-1 1.3-2.5 1.8-3.8.5-.9.1-1.3-.4-1.3zm-175.6.4c-.8 0-.8.7-.1 1.2.9.7 2 1.4 3 2.3 1.3 1 1.7 0 1-.8-.6-.8-1.2-1.6-2.9-2.5-.4-.2-.7-.2-1-.2zm185.3 0c-.2 0-.6 0-1 .2-1.6.9-2.3 1.7-3 2.5-.6.9-.1 1.8 1.1.8 1-.9 2.2-1.6 3-2.3.8-.5.7-1.2 0-1.2zm-109.6.7c-.5 0-.8.5-.7 1.2l1 3.6c.2 1.1 1.5 1.1 1.3 0-.2-1-.3-2.3-.7-3.9-.1-.6-.4-.9-.8-1a.6.6 0 00-.1 0zm33.8 0c-.3 0-.6.3-.8 1-.4 1.5-.5 2.8-.7 3.9-.2 1 1.1 1 1.3-.1l1-3.6c.2-.7-.2-1.2-.6-1.2a.6.6 0 00-.2 0zm-64-2c-.3 0-.5.7-.2 1.7a26 26 0 011.6 9c-.3 1.2-1 1.3-1.9 1a18.8 18.8 0 01-2.8-1.7c-.8-.5-1.7.1-.5 1.1 6 5 10.3 10.7 12 17.6.2 1.4 1.1 1.6.9 0-1.4-8.7-1.7-15.9.4-20.3.8-1.7 0-3.3-1.2-.6-.9 1.8-2.2 2.5-3.3 1a47.9 47.9 0 01-4-7.7c-.2-.7-.5-1-.8-1.1a.3.3 0 00-.1 0zm94.1 0c-.3 0-.6.4-.8 1-.7 2-2.9 6.2-4 7.8s-2.4.8-3.2-1c-1.3-2.7-2-1.1-1.3.6 2.1 4.4 1.8 11.6.5 20.3-.3 1.6.6 1.4 1 0a32.4 32.4 0 0111.8-17.6c1.2-1 .3-1.6-.5-1a18 18 0 01-2.8 1.5c-1 .4-1.6.3-1.9-1-.2-1.2.2-3.9 1.7-9 .2-.8 0-1.5-.3-1.6a.3.3 0 00-.2 0zM144.4 172c-.5 0-1 .4-.7 1.2.4 1.4 1.2 2.8 1.5 3.6.3.9 1.2.5 1-.7l-.5-3.1c0-.6-.7-1-1.3-1zm155.1 0c-.6 0-1.2.4-1.3 1l-.4 3.1c-.2 1.2.7 1.6 1 .7.2-.8 1-2.2 1.4-3.6.3-.8-.1-1.2-.7-1.2zm-136.3-1.7c-.6-.1-.7 1.5-.2 2.2l2.8 3.1c.8 1 1.3.1.8-.7l-2.6-3.8c-.3-.5-.6-.8-.8-.8zm117.5 0c-.2 0-.5.3-.8.8l-2.6 3.8c-.5.8 0 1.7.9.7l2.7-3.1c.5-.7.5-2.3-.2-2.2zm-132 4c-.4 0-.7.2-.5 1 .2 1.2.5 2 .8 3.1.3 1 1 .9 1-.1l-.3-3.2a1.1 1.1 0 00-1-.9zm146.5 0a1 1 0 00-1 .8l-.3 3.2c0 1 .8 1.2 1 .1l.9-3c.2-.9-.2-1.2-.6-1.2zm-133.4 1.4c-.6 0-1.1.7-.4 1.6 1.1 1.5 2.4 2.5 2.9 3 .4.6 1.5.4.8-.7l-2.3-3.5c-.2-.4-.6-.5-1-.4zm120 0c-.2 0-.5.1-.6.4l-2.4 3.5c-.7 1.1.4 1.3.9.8.4-.6 1.7-1.6 2.9-3.1.7-1 .1-1.6-.5-1.6a.9.9 0 00-.2 0zm-140.7 4.1c-.4 0-.6.4 0 1.3a17 17 0 013.3 6.4c.1 1.4-.5 1.4-1.1 1.4-1.9 0-2.8-1.4-4.4-1.8-1.7-.3-2 .5-.8 1.4a53.4 53.4 0 0114.7 13.8c1 1.9 2.3 2.5 1.6.8a23.7 23.7 0 01-2.4-12.6c.5-2.8 1.2-4.6 1.1-6.2 0-1.5-1-1.4-1.3 0l-1 2.8c-.4.5-1.8.8-3-.9a48 48 0 00-5.6-5.8c-.3-.3-.7-.5-1-.6zm161.7 0c-.3 0-.7.2-1.1.6a48.2 48.2 0 00-5.5 5.8c-1.3 1.7-2.7 1.4-3 1a12 12 0 01-1-2.9c-.4-1.4-1.3-1.5-1.4 0 0 1.6.6 3.4 1.1 6.2s0 7.2-2.3 12.6c-.8 1.7.6 1 1.6-.8a53 53 0 0114.6-13.8c1.2-.9 1-1.7-.7-1.4-1.7.4-2.6 1.8-4.4 1.8-.6 0-1.3 0-1.2-1.4.1-1.3 1.8-4.4 3.3-6.4.6-1 .5-1.3 0-1.3z"/>
+      <path d="M150.1 212.7l2 6.1m2-7.3l1.8 6.2m2.6-7l1.2 6.4m2.8-7.1l1.3 6.3m3.8-6.8l1 6.4m4.5-6.4l1.1 6.3m4.3-8.1l.8 6.4m4.2-6.1l.8 6.4m4.1-7l.8 6.4m4-7l.5 6.5m4.8-6.5l.4 6.5m4.4-6.8l.3 6.5m4.9-6.8l.3 6.4m5.7-6.6l.3 6.5m79 .2l-2 6.1m-2-7.3l-1.7 6.2m-2.6-7l-1.2 6.4m-2.8-7.1l-1.3 6.3m-4-6.8l-1 6.4m-4.4-6.4l-1.1 6.4m-4.2-8.2l-.8 6.4m-4.3-6.1l-.8 6.4m-4-7l-.9 6.4m-4-7l-.5 6.5m-4.8-6.5l-.4 6.5m-4.3-6.8l-.3 6.5m-5-6.8l-.2 6.4m-5.8-6.6l-.2 6.5m-7.2-7v7.2"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/lk.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/lk.svg
new file mode 100644
index 0000000..2b11215
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/lk.svg
@@ -0,0 +1,22 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-lk" viewBox="0 0 512 512">
+  <path fill="#ffb700" d="M0 0h512v512H0z"/>
+  <path fill="#ff5b00" d="M21.3 256L91.4 21.3h70.1v469.4h-70z"/>
+  <path fill="#005641" d="M21.3 21.3h70.1v469.4h-70z"/>
+  <path fill="#8d2029" d="M182.7 21.3h308v469.4h-308z"/>
+  <path id="a" fill="#ffb700" stroke="#000" stroke-width=".9" d="M463.4 454.9s2.9 5.9 6.1 8.3c4.8 3.5 14.5 3.3 18.6 7.4 5 5-.4 11.4-.3 12l.3 3.4s-3.4 0-4.8.3c-2.1.3-3 2-6.9 1.8-9.9-.7-9.5-9.6-10-17.2-.5-3-1.7-6.7-2.3-9.6-.6-2.5-.7-6.4-.7-6.4z"/>
+  <use width="100%" height="100%" transform="matrix(-1 0 0 1 676.3 0)" xlink:href="#a"/>
+  <use width="100%" height="100%" transform="matrix(1 0 0 -1 0 512)" xlink:href="#a"/>
+  <use width="100%" height="100%" transform="rotate(180 338.1 256)" xlink:href="#a"/>
+  <g transform="matrix(.8 0 0 .8 0 3.2)">
+    <use width="100%" height="100%" stroke="#000" stroke-width="5.6" xlink:href="#b"/>
+    <g id="b" fill="#ffb700">
+      <path d="M363.5 415.8l2.3-1.4 1 1.4c1.3 1.8 5 1.7 7.4 0l1.9-1.5 1.6 1.4c2 1.9 5.8 1.9 8.3 0 1.7-1.2 2-1.3 3-.3.7.6 2.7 1.2 4.4 1.5 3.2.4 3.2.4 5-2.4 1.6-2.3 1.8-3.2 1.5-5.5a59.4 59.4 0 01-.6-5.3c-.2-2.6-.1-2.6 3.6-4a50.5 50.5 0 005.4-2c1.5-.9 5.7-5.8 5.7-6.8 0-.2-1.6-.6-3.6-.8-8-1-9.3-5.2-4.1-13 8.3-13 13.4-25.5 13.4-33.4 0-3.6.3-4.8.7-4 1.9 3.1-1.5 16.4-6.5 26l-2 3.8 1.9-.4c1-.3 7.4-3 14-6 18.2-8.2 24.4-9.8 36.2-9.3 9.9.4 14 2.3 21 9.6 3.7 4 7.3 6.7 13.8 10.8 13.8 8.6 14.4 9.4 15.1 19.6.7 10.3.3 10.9-7.5 12.6-6.7 1.5-10.9 4.6-12 9-.6 2.2.7 2.3 4 .1l2.5-1.6 1.1 1.6c1.5 2.1 4.5 2.1 7 0l2-1.5 2 1.5c3 2.5 7 1.9 8.2-1.2.2-.5.8-.4 2 .7 2.3 2 8 2.8 8.6 1.2.2-.6-.2-2-1-3.2-3.3-5-4.4-7.3-4.4-10 0-3.8 1-5.7 5.4-8.7 5.2-3.8 6.8-8.6 2.8-8.6-2.4 0-4.9-2.2-6.5-5.7-3.2-7.2-2.5-15.2 2.3-28.6a57.6 57.6 0 005.4-25.2c0-7.4-.2-8.6-1.8-12.7a45.4 45.4 0 00-4.6-8.1l-2.8-3.7 3.5-3c10.8-8.9 8.6-23.5-4.4-29.1-4-1.8-5-1.9-12-1.9-4 0-10.5.6-14 1.3a98.2 98.2 0 01-14.2 1.2c-6.8 0-8-.2-10.6-1.6-2.7-1.4-3.2-2.1-3.7-5.5a2 2 0 00-1.1-1.5c-1-.3-5.2 3.4-5.8 5-.4.9-.6.8-1.5-.3a13.4 13.4 0 01-2-3.6c-1-3.3.3-5.7 4.2-7.6l3-1.4-1.8-1.1c-3.6-2.3-9.8-.7-12 3-.7 1-1.4 2-1.6 2-.2 0-1.4-1-2.6-2.3-4.7-4.6-3.1-11.4 3.2-13.4 3.3-1.1 6.3-.3 6.9 2 1 3.3 3.8-1.1 3.3-5.2-.3-2.7-.3-2.8 1.6-2.8 2.6 0 8 3.4 9.8 6 2 3.1 1.8 8-.4 11.6l-1.7 2.8 2.3-.4c3.2-.7 6.4-2.7 8-5.2a12 12 0 00.4-10.4c-1.5-2.7-1.3-3.1.9-2.2 3.6 1.5 5.6 3.2 7 6.1 1.4 2.6 1.5 3.2.8 6a17 17 0 01-2.2 4.8c-1.2 1.6-1.3 1.9-.3 1.9 1.8 0 5.4-1.7 6.7-3 .7-.8 1.7-2.5 2.2-4l1-2.5 1 2c1.5 2.7 4.5 5.2 8.1 6.8 3.9 1.6 5.5 1.7 3.5.2-1.4-1-4-8.5-3.1-9.2a51 51 0 0111.7 9c5.7 5.1 9.3 6.8 14.5 6.8 6.7 0 10.6-5.8 7.6-11.3-1.7-3.2-5.6-3.7-8-1-1 1.3-1.3 2.3-1 3.7.4 1.6.3 1.8-1.2 1.8-2 0-5.8-2.5-12.6-8.2a102 102 0 00-32.1-18.7 70.4 70.4 0 00-24.3-1.3c-6.4 1.2-14 4.9-18.2 8.8-7.3 7-7.4 16.3-.3 24.8l2 2.4-1.3 2.2a9.3 9.3 0 00.4 10.4c1 1.4 2 2.5 2.3 2.5.2 0 .4-.9.5-2 .2-2.7 1.4-4.5 3.4-5.2 1.8-.7 3-.3 11.2 3 8.7 3.4 23 3.6 38.2.6a42.6 42.6 0 0120 .2c7.2 3 8.8 10.7 3.6 16.5-2.3 2.6-4.4 3.6-11.7 5.6a54.3 54.3 0 01-19.5 1.5c-10.8-.1-14.7.1-19 1-4.9 1-7.8 1.1-21.8.8l-16.3-.4 1.8 1.4a22 22 0 003.1 2.3c1.3.7 1.2.8-.6 1.5-1 .4-3.4.7-5.3.7h-3.3l-.4 2.8a10 10 0 000 4c.4 1 .2 1.2-.8.8-.7-.3-2.6-.8-4.3-1.1a26.7 26.7 0 01-5-1.6c-1.9-1-2.1-1-2.8.3-.6 1-6.2 5.2-7 5.2a26.7 26.7 0 00-2.2-7.5c-1-2.1-1.9-4.5-2.2-5.2-.3-1.1-.5-1.2-1-.3-.3.5-.7 2-1 3.2a15.5 15.5 0 01-1.8 4.6l-1.5 2.2-1-1.9c-1-2-2.6-4.2-3.2-4.2-.2 0-.5.6-.7 1.5-.5 1.6-4.4 6.3-5.4 6.3-.3 0-.6-1.3-.6-3 0-1.5-.3-2.9-.7-2.9-.4 0-.7.5-.7 1 0 1.2-3.3 5-4.5 5-.4 0-1.2.4-1.7 1-1.2 1.3-2.2 1.1-1.7-.4a9 9 0 00-.4-3.8l-1-3.2c-.2-.5-1.4-.3-4 .5-4 1.3-5.4 1-3.3-.6.8-.6 2-2.7 2.6-4.6.7-2 1.7-3.7 2.2-3.9.7-.2.7 0-.2 1.2a5.7 5.7 0 00-1.1 2.6c0 .5-.5 1.8-1 2.9-.6 1-1 2-.9 2.1s1.7-.5 3.5-1.3l3.2-1.6v1.4c0 .8.4 2.8.9 4.5l.9 3 2.2-1c2.2-1 4.3-4.6 4.3-7.5 0-1.4.8-1.2 1.2.3 0 .4.6 2.1 1 3.7l1 2.8 1.5-1.8c.9-1 1.9-3 2.3-4.3.8-2.4 2-3.5 2-1.7 0 1.2 3.4 5.8 4 5.4.4-.2 1-1.9 1.5-3.8 1-4 2.5-6.6 3.5-6 .4.2.5.6.3 1-.2.2.6 2.8 1.8 5.6a2557.7 2557.7 0 012.6 6.3c.4 1 .8 1 3.3-1.3 1.5-1.4 3-2.9 3.1-3.4.3-.8.6-.7 2 .2a25 25 0 009.5 2.8c.2-.2.4-2 .4-4l.1-3.7 2 .4c1 .3 3.3.3 5 0l3-.4-2.7-2c-1.5-1-3-2.3-3.4-2.9-.3-.6-1.7-1.2-3.2-1.3-4.1-.4-11.4-4.4-11.4-6.4 0-.4 1 .3 2.2 1.4 2.8 2.5 6.6 4 10 4h2.4l-1.5-2a11.9 11.9 0 01-2-5.2c-.2-3-.5-3.4-3.6-5.5a35.2 35.2 0 01-5-4.3l-1.7-1.9-.9 2.3c-.5 1.3-1 2.3-1.3 2.3-.2 0-1.2-.8-2-1.7a7 7 0 00-2-1.6c-.3 0-1 1.2-1.8 2.7l-1.4 2.7-1-1.5a23.8 23.8 0 00-3-3.4c-1.2-1-1.7-1.8-1.3-1.8.4 0 1.7 1 3 2.3l2.2 2.3 1-1.7a6 6 0 00.5-3.8c-.4-1.8-.3-1.9.3-.7a16 16 0 003 3l2.2 1.8 1.5-2.7c1.5-2.8 1.5-2.8 2.1-1.1 1 2.1 7.5 7.5 13 10.6 1 .5.6-1.1-1-5a12.7 12.7 0 01-.8-4c0-1.8-.5-2.6-2.8-4.4a10.9 10.9 0 01-5-8.4c-.3-1.7-.9-3.5-1.4-4.1-.6-1-.8-.4-.6 2.6.2 2.1-.1 4.7-.6 5.8l-.8 2-.6-1.7c-.4-.9-2-2.5-3.5-3.5s-2.6-2-2.4-2.2c.2-.2 1.8.7 3.5 2 2.7 2.1 3.2 2.3 3.6 1.4.4-1 0-5.6-.8-8.8-.4-1.6-.4-1.6 1.6.4 1.4 1.4 2.2 3.2 2.9 6.2.8 3.8 1.2 4.5 4.7 7.6 2.1 1.9 4 3.3 4.1 3.2.2-.2.4-5 .6-10.8.4-11.1 0-13.8-2.7-17.2l-1.4-1.8 2.2-2.3a16 16 0 004.7-8.8l.4-2.7-2.4 2.3c-2 1.9-3 2.3-5.3 2.3s-3.2-.4-4.7-2a20 20 0 00-8.3-4.8c-1.2-.4-1.6-.2-1.6.6 0 .6-.6 2.2-1.4 3.7l-1.4 2.6-3-3c-1.9-1.7-4-3.2-5.7-3.6-4.1-1-4.3-1-4.3 2.1 0 4.7-2 5.6-5.6 2.5-2.8-2.4-5-3-10.3-2.3l-4 .4.7 1.8c.6 1.5.5 2.2-.8 3.9-2.1 2.8-4.8 4-9 4-2 0-4.4.4-5.4.9s-3.6 1-5.7 1.2c-2 .2-4.3.6-5 .8-1 .4-1 0-.7-2.2.5-3.4-2-6-5.7-6-4.9 0-7.1 4.4-5.2 10.2a44.6 44.6 0 011 3.8 23 23 0 005.2 6.6c2.6 2.6 5 5.3 5.4 6a9 9 0 003 2.5l2.2 1.2-.3-2.4c-.3-2.6.2-3 1.6-1.1.5.6 1.8 1.7 2.8 2.3 1.7 1 2 1 2 .2 0-.6.3-1.9.7-2.9l.7-1.8 1.3 2.5c.7 1.4 3 4.5 5.1 7 4.1 4.7 6.7 10 5.4 11.2-.6.5-2 .5-5-.1-2.2-.4-5-.7-6.2-.5-2.3.3-2.5 0-1-1.8 1.5-2 1.2-2.3-1.8-2.3-3.5 0-12.2-1.7-15.6-3-3.2-1.3-4-1-5 2.1l-1.7 5.6-1 3 3.6-.3a37 37 0 005.5-1 6 6 0 012.2-.3c.2.1-.3 1.3-1 2.7l-1.4 2.4 2.2-.4c1.2-.3 3-.9 4-1.4 1.8-.8 2-.8 3.4 1.5 1.7 2.7 3 2.6 3.3-.3.3-3 1.3-2.6 3.2 1.4 1.8 3.8 3.6 5.2 4 3 .1-.8 1-2 2.1-2.8 2.2-1.5 3.8-1 4.7 1.3 1 2.5-1.2 5-7.4 8.8a43 43 0 00-21.7 31c-1.9 11.8 4 24 15.6 32.9 5.6 4.2 14.5 8.6 13.9 7-2.4-7.3-2.3-21 .1-23.3.4-.4.3 1-.3 3.1-2 7.9-1 14.1 4 28.7 4.4 13.2 3.8 18.9-2.6 22.6-2 1.2-3.3 1.4-8.8 1.3-6 0-6.7 0-8.6 1.6a15.7 15.7 0 00-4.3 8.6c0 1.3 1.4 1.1 4-.4z"/>
+      <path d="M460.5 415.5l2.5-1.6 1.7 1.6c2.2 2.1 4.9 2 7-.1 1-1 1.8-1.6 1.9-1.5l.9 1.6c.5.9 1.6 1.3 3.6 1.5 2.3.1 3 0 4-1.4l1-1.7 2.5 1.6c6.8 4.4 10.4-.2 7.3-9.3-1.5-4.6-.6-7.2 4.3-13 2.1-2.5 3.8-5.2 3.8-6 0-1.1-.4-1.3-3.2-1.2-2.6 0-3.4-.3-4.8-1.8-2.3-2.5-2.1-5.4.4-8.6l2-2.5-3.6-2.4a59.7 59.7 0 01-8-7.1 25.7 25.7 0 00-17.5-9l-4.7-.5v3.6c0 4.5 2.2 8.9 8 16.3 6.6 8.4 7 9.7 7.3 20.7l.3 9.3-2 1.8c-1.7 1.6-2.4 1.9-8 2.2-5.3.3-6.5.6-8 2a8.7 8.7 0 00-3.4 5.3c-.3 1.5-.2 1.8.9 1.8.7 0 2.4-.7 3.8-1.6zm-142.2-24a5.8 5.8 0 001-3c0-1 .6-1.4 3.2-1.8l3.1-.4-2-1.7c-2.5-2-2.8-3.5-.6-3.5s5.8-2.2 6.4-3.9c.3-.8 0-1.8-.4-2.3-1.2-1.4-3.5-1.2-3.9.4-.5 1.6-1.2 1.6-3 0-2.5-2.5-2.6-7.6 0-10.6 1.1-1.4 1.1-1.4-.4-2.9-1.6-1.6-2.8-4.6-2-5.4.2-.2 1.5 0 2.8.5 2 .6 2.7.6 3.5 0 2.3-1.9-.2-4.3-4-3.7-1.6.2-2.2 0-2.4-.8-.2-.6-1.5-1.4-3-1.8-2.7-.7-2.7-.7-2.7 1.2 0 2-1.2 2.4-3.4 1.1-1.8-1-3.5-.2-3.5 1.7 0 1.8 1.7 2.6 5 2.4 2.4-.1 2.5 1.7.2 4.3l-1.7 2 1.3 1.9c2 2.8 1.8 7.5-.3 9.9l-1.7 1.8-1.1-1.5c-1.6-2-3.7-1.9-4.3.3-.3 1.4 0 2 1.8 3.6 1.2 1 3 1.8 3.9 1.8 2.3 0 2.2 1.9-.2 3.7l-2 1.5 3 .4c1.6.3 3 .7 3 1 0 1.3 2 5.2 2.6 5.2.4 0 1.2-.7 1.8-1.5z"/>
+      <path d="M356.5 374.9c2.7-1 8.5-6 8.5-7.1 0-.4-1.6-2.2-3.6-4-4-3.6-8.5-9.9-9.7-13.5-.6-2-3.5-5.2-11.7-13.2l-10.9-10.5-3.1.8c-1.8.4-3.9.8-4.7.8-1.5 0-1.5 0 .5 1.6l2 1.6 3-1.6c2.7-1.6 2.8-1.6 3.1-.3.2.7-.2 2-1 2.9-.7.9-1.1 2-1 2.3.3.3-.4 1-1.5 1.6-2 1-3.5 4.3-1.9 4.3 1.5 0 4.7-4 4.3-5.3-.2-.7 0-1.4.2-1.6 1.3-.7 1.2 2.4 0 4-.8.8-1.2 1.8-1 2.2.2.3-.5 1-1.6 1.6-2 1-3.5 4.3-1.9 4.3s4.7-3.8 4.4-5.2c-.2-.7-.2-1.5.1-1.7.9-.4 1.3 2 .6 3.2a2.3 2.3 0 000 2.2c.7 1.3 0 3.7-1.3 4.5-.5.3-.2 1 1.2 2 2 1.4 2 1.6 2 8 0 5.4.2 6.8 1.2 7.7 1 1 1.2 1 1.2 0s2-2.4 3.5-2.4c.5 0 3.4 2.5 6.5 5.5s6.4 5.7 7.3 5.8l2.2.4c.3 0 1.7-.3 3.1-1zm-33.3-26.1c0-1.7-3.6-3.6-7.9-4-3.5-.5-3.5-.4-3.5 1.3 0 1.4.5 2 3 3 3.8 1.7 8.4 1.5 8.4-.3z"/>
+      <path d="M327.1 348.6c1.8-1.6 2.6-3.4 1.5-3.4-1.2 0-4.4 2.8-4.4 4 0 1.6.6 1.5 3-.6zm-3.7-5.1c.1-1-.5-1.6-2.3-2.5-4-1.7-8.6-2.6-9.7-1.7-2.1 1.7-.7 3.9 2.6 4.3 1.4.1 3.2.5 4.1.9 2.6 1 5 .5 5.3-1zm0-5.3c.2-1.3-.7-1.8-8-4.4-5.5-2-7.9-1-6.1 2.3.6 1.1 1.6 1.6 3.9 2 1.7.2 4 .7 5.1 1.1 3 1 4.8.6 5-1zm3.6-4.9c1.1-1.1 2-2.4 2-3 0-1.5-4.3 1.3-4.9 3.3-.6 2.3.5 2.2 3-.3zm-3.6-.3c.2-1.6-2.4-3-7.6-4.1-3.9-.9-5.6-.4-5.3 1.4.2 1 1.5 1.7 5 2.8 5.9 1.8 7.6 1.8 7.9-.1zm5-7.4c6.8-3 7.3-10.5 1-12.5-2.6-.8-4.2-.3-5.2 1.4-.8 1.4-.3 3.8.7 3.8.4 0 .7.5.7 1 0 2.7-10.2 3.8-14.4 1.7-1.5-.7-2-2.7-.9-2.7 1 0 1.6-2 1.1-3.3-.6-2-2.6-2.6-5.3-1.8-6.3 1.6-6.1 9 .3 12a33.6 33.6 0 0022 .4z"/>
+      <path d="M324.3 319.8c.4-.4.2-1-.4-1.4-1.4-1.1-1.3-2.8.2-4.7 1.2-1.4 1.3-3.6 1.7-25.1.7-37.1 3.5-65 7.1-71.8 1.5-2.6 1.3-2.6-2.5 0a36 36 0 00-11.7 13.6c-6.2 11.5-8.3 27-8.3 60.2 0 18.8.1 21.3 1.2 23 1 1.8 1 2.4.4 4.2-.5 1.1-.7 2.3-.5 2.5 1.4 1.3 11.4 1 12.8-.5zm56.1-35.4c.3-.3-.2-2-1-3.6-1.2-2.6-1.7-3-3.4-3a65 65 0 01-23-6.4c-5.1-2.3-7-2.8-7.5-2.2-1.6 1.5 1 5 5 6.9a64 64 0 0018.3 3.7c2.7 0 2.8 0 1.2 2.3l-1 1.6h3l5 .6c3 .7 3 .7 3.4.1z"/>
+      <path fill="#000" d="M412 301.1c0-1-2.9-3.5-5.7-5.2-2.3-1.3-2.7-1.4-2.7-.3 0 1.6-1.4 5.7-2 5.7-.3 0-.8-.8-1-1.7-.3-1-1.4-3-2.5-4.3l-2-2.5-1.4 2.3c-1.4 2.2-3.9 4.3-5 4.3-.2 0-.3-1.2 0-2.5.1-1.6 0-2.8-.5-3-.4-.3-.8-.2-.8.2 0 .8-3.4 4.6-4 4.6-.4 0-.8-1-1-2.4l-.8-4.8c-.2-1.2.3-.4 1 2l1.6 4.1 1.6-2.5a11 11 0 001.6-3.4c0-.5.3-.7.7-.5.4.2.9 1.9 1.1 3.7l.5 3.4 1.8-2a28.8 28.8 0 002.6-3.2c.7-1.2.8-1.2 2.3 0 .8.8 2.1 2.5 2.9 3.9s1.5 2.4 1.6 2.3l.6-3.2.4-3c.1-.5 5.4 3 7.4 4.7 1.2 1.1 2.4 1.9 2.6 1.7.2-.2.4-1.8.4-3.7 0-2.8-.3-3.6-2-5.1-2-1.8-2-1.8-2.8-.5-1 1.7-2.1 1.7-2.1 0 0-1.2-3.8-5.9-4.7-5.9-.3 0-1.1 1-1.8 2.3s-1.5 2.3-1.7 2.3c-1 0-6.3-6-6.3-7 0-.8.4-.6 1.3.8a21 21 0 003.1 3.6c2 1.8 2.8 1.4 3.6-2.1.3-1 .7-1.8 1-1.8.8 0 5.4 4.9 6 6.5l.7 1.6.5-1.8c.6-2.2 1.3-2.2 2.3-.2.4.8 2.4 2.6 4.4 3.8l3.7 2.4.7-2.4c.4-1.3 1-2 1.2-1.6.4.5-.6 4.5-1.3 5.3 0 .1-1.3-.6-2.6-1.5l-2.5-1.8v3.2c0 1.7-.2 3.8-.4 4.6-.5 1.6-1.7 2-1.7.6zm-18.5-25.4c-4.4-3.6-5-4.4-5-6.2l.1-1.8.3 1.7c.2 1 1.4 2.6 2.8 3.8l2.6 2 1.5-1.8c.9-1 1.6-2.2 1.6-2.6 0-1.2.2-1.1 3.2 1.5 2.6 2.3 2.7 2.3 3 .8.3-.8.2-2.4 0-3.5-1-3-.8-3.4.5-1.6l2.4 2.8c1 1.1 1.1 1.1 1.5-.3.3-.9.5-2.4.5-3.4v-1.9l2.3 2.7c2.3 2.6 2.5 2.7 3.1 1.4.5-.7.8-2.4.8-3.7 0-1.8.2-2.2.6-1.6.8 1.2.3 4.2-1.1 6.8l-1 2-1.3-2.1c-1.7-2.6-2.3-2.6-3.3.2-1 2.7-1.7 2.9-2.7.8-.6-1.3-.8-1.1-1.2 1.7l-.5 3-3-2.3-3-2.3-1.5 1.5c-.7.9-1.3 2-1.3 2.4 0 1-.8 1-1.9 0zm39-13.6c-1.5-1.4-2.6-2.8-2.4-3 .3-.3.5-.4.6-.2a67 67 0 003 3c3.4 3.6 2.7 3.7-1.1.2zm-52-5.4c-1.4-2-1.3-3.2.5-5.4 1.2-1.5 1.8-1.7 4-1.4 1.5.1 4.6 1.4 6.9 2.8a21.2 21.2 0 0011 3l-1.7-2.8c-2.2-3.3-2.2-3.7.4-1.7 2.6 2.1 5.7 2.7 12.7 2.5l3.4-.1-2-2c-2.7-2.7-1.9-3 1.2-.3 2.8 2.5 2.7 2.7-3.4 3.3a23 23 0 01-7.6-.5c-3.4-1-3.6-.9-2.9.2.4.7 1 1.2 1.3 1.2.4 0 .7.4.7.8 0 1.3-7.4.1-11-1.6-8-4.1-9-4.5-11-3.9a4.3 4.3 0 00-2.4 2.3c-1.3 3.3 3.4 5.9 5.3 3 .6-.9.5-1.4-.5-2.5-1.4-1.4-1.2-1.6.6-1 1.3.5 1.4 3.6.2 4.8-1.3 1.3-4.5 1-5.7-.7z"/>
+      <path fill="#000" d="M412.4 248.6c-1-1-.2-1.2 4.3-1.3 5.6-.1 9-1 13-3.6 3.2-2 4.1-1.6 1 .5-2.7 2-7 3.4-11.3 3.8l-5.1.7c-.8.2-1.7.1-2-.1z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/lr.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/lr.svg
new file mode 100644
index 0000000..0ae34e7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/lr.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-lr" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)">
+    <path fill="#fff" d="M0 0h767.9v512H0z"/>
+    <path fill="#006" d="M0 0h232.7v232.8H0z"/>
+    <path fill="#c00" d="M0 464.9h767.9V512H0z"/>
+    <path fill="#c00" d="M0 465.4h767.9V512H0zm0-92.9h767.9v46.2H0zm0-93.2h766V326H0zM232.7 0h535.1v46.5H232.7zm0 186h535.1v46.8H232.7zm0-92.7h535.1v46.5H232.7z"/>
+    <path fill="#fff" d="M166.3 177.5l-50.7-31-50.4 31.3 18.7-50.9-50.3-31.4 62.3-.4 19.3-50.7L135 95h62.3l-50.1 31.7 19.1 50.8z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ls.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ls.svg
new file mode 100644
index 0000000..e71bb5b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ls.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ls" viewBox="0 0 512 512">
+  <path fill="#fff" d="M0 0h512v512H0z"/>
+  <path fill="#009543" d="M0 358.4h512V512H0z"/>
+  <path fill="#00209f" d="M0 0h512v153.6H0z"/>
+  <path stroke="#000" stroke-width="1.7" d="M257.6 163.1c-3 0-5.8 3.3-5.8 3.3l.3 34.5-11 11.5h9l-.2 19.7-52.2 70.4-7.7-2.7-13.5 28.8s33.4 20.9 81.8 20.3c53.2-.7 82-21.3 82-21.3l-13.9-28.4-6.8 3-53-70v-20.4h8.8l-12-11.3.1-34.4s-3-3-5.9-3z"/>
+  <path fill="none" stroke="#000" stroke-width="8.5" d="M275.8 245.8h-36.1s-13.1-27.6-11-47c2.2-19.6 13.4-28.9 28.4-29 17.6-.3 26.8 8.6 29.6 28.3 2.8 19.5-10.9 47.7-10.9 47.7z"/>
+  <path fill="#fff" d="M194.5 311.6c-.6.8-5 9.4-5 9.4l7.5-1.6-2.5-7.8zm4.3 11.2l-7.9 2.6 9.5 3.7-1.6-6.3zm3.6-11l3.9 11.6 9.6-2.8-2.5-5.5-11-3.3zm6 15.7l1.4 4.7 12.8 3.2-5-10.8-9.1 3zm14.2-9.8l4.5 10.8 9.7-3.7-3.2-4.8-11-2.3zm6.3 14.7l1.6 4.2 15 2.1-6.4-9.8-10.2 3.5zm14.4-11.6l5.5 9.7 14-5.1-1.6-3.8-18-.8zm8 13.2l3 5.1 17.3-.6-6.5-9.6-13.8 5.1zm18.3-12.8l4.8 8 11-5.2-3-4.3-12.8 1.5zm18.1 6.1l-11 5.5 3 4.8 14.7-2.4-6.7-7.9zm3.6-8.4l5.7 7 9.2-7.2-3.1-3.4-11.8 3.6zm16.9 3.7l-8.9 6.7 2.4 4.1 12.2-3.1-5.7-7.7zm12.2-14l2.2 3.2-6.1 9-6.3-8 10.2-4.2zm4.1 7.9l3.8 7.5-7.5 2.5-.6-3.5 4.3-6.5z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/lt.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/lt.svg
new file mode 100644
index 0000000..aa96cf3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/lt.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-lt" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt" transform="scale(.51314 1.0322)">
+    <rect width="1063" height="708.7" fill="#006a44" rx="0" ry="0" transform="scale(.93865 .69686)"/>
+    <rect width="1063" height="236.2" y="475.6" fill="#c1272d" rx="0" ry="0" transform="scale(.93865 .69686)"/>
+    <path fill="#fdb913" d="M0 0h997.8v164.6H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/lu.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/lu.svg
new file mode 100644
index 0000000..6293671
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/lu.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-lu" viewBox="0 0 512 512">
+  <path fill="#00a1de" d="M0 256h512v256H0z"/>
+  <path fill="#ed2939" d="M0 0h512v256H0z"/>
+  <path fill="#fff" d="M0 170.7h512v170.6H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/lv.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/lv.svg
new file mode 100644
index 0000000..5556de1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/lv.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-lv" viewBox="0 0 512 512">
+  <g fill-rule="evenodd">
+    <path fill="#fff" d="M0 0h512v512H0z"/>
+    <path fill="#981e32" d="M0 0h512v204.8H0zm0 307.2h512V512H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ly.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ly.svg
new file mode 100644
index 0000000..fe0ed81
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ly.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ly" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path d="M250 12h500v500H250z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="translate(-256 -12.3) scale(1.024)">
+    <path fill="#239e46" d="M0 12h1000v500H0z"/>
+    <path d="M0 12h1000v375H0z"/>
+    <path fill="#e70013" d="M0 12h1000v125H0z"/>
+    <path fill="#fff" d="M544.2 217.8a54.3 54.3 0 100 88.4 62.5 62.5 0 110-88.4M530.4 262l84.1-27.3-52 71.5v-88.4l52 71.5z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ma.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ma.svg
new file mode 100644
index 0000000..85c99b3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ma.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ma" viewBox="0 0 512 512">
+  <path fill="#c1272d" d="M512 0H0v512h512z"/>
+  <path fill="none" stroke="#006233" stroke-width="12.5" d="M256 191.4l-38 116.8 99.4-72.2H194.6l99.3 72.2z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mc.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mc.svg
new file mode 100644
index 0000000..d38822d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mc.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mc" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#f31830" d="M0 0h512v256H0z"/>
+    <path fill="#fff" d="M0 256h512v256H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/md.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/md.svg
new file mode 100644
index 0000000..86b2a96
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/md.svg
@@ -0,0 +1,71 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-md" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#00319c" d="M0 0h170.7v512H0z"/>
+    <path fill="#ffde00" d="M170.7 0h170.6v512H170.7z"/>
+    <path fill="#de2110" d="M341.3 0H512v512H341.3z"/>
+  </g>
+  <path fill="#ff1900" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M173.6 691v63.7c0 3.6 0 7.1-3.5 7.1-3.6 0-7.1 7-7.1 10.6 0 7.1 3.5 10.7 7 10.7h32c3.5 0 7-3.6 7-10.7-.2-3.7-3.5-10.6-7-10.6-3.6 0-3.6-3.5-3.6-7v-63.9" transform="matrix(.46695 -.29552 .30926 .4462 -5.1 64.5)"/>
+  <path fill="#a77b3b" fill-rule="evenodd" stroke="#000" stroke-width="3.1" d="M177.2 696.3c0 24.4-9.6 44.3-21.3 44.3-11.7 0-21.3-19.9-21.3-44.3S144.3 652 156 652s21.3 19.8 21.3 44.3z" transform="matrix(.42858 -.34452 .36055 .40954 -29.7 77.3)"/>
+  <path fill="#ff1900" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M173.6 691v63.7c0 3.6 0 7.1-3.5 7.1-3.6 0-7.1 7-7.1 10.6 0 7.1 3.5 10.7 7 10.7h32c3.5 0 7-3.6 7-10.7-.2-3.7-3.5-10.6-7-10.6-3.6 0-3.6-3.5-3.6-7v-63.9" transform="matrix(.48902 .26089 -.27302 .46728 313.4 -58.3)"/>
+  <path fill="#a77b3b" fill-rule="evenodd" stroke="#000" stroke-width="3.1" d="M421.6 701.6h-28.3c-1 1-9 54-17.7 74.4-10.6 24.8-42.5 46.7-42.5 46.7s19 6 24.8 10c1.4-.4 31.8-7.1 35.4-46 3.5 38.9-21.3 56.6-21.3 56.6s35.5 10.6 35.5 35.5c0-24.8 35.4-35.5 35.4-35.5s-17.8-17.7-21.3-56.7c7 39 34 45.7 35.5 46 5.7-3.9 24.7-10 24.7-10S450 800.9 439.4 776c-8.7-20.3-16.8-73.5-17.7-74.4z" transform="matrix(.56007 0 0 .53518 29.7 -86.3)"/>
+  <path fill="#a77b3b" fill-rule="evenodd" stroke="#000" stroke-width="3.1" d="M336.6 467.7l53.2 17.7a38 38 0 0035.4-35.4c.6-39.4-14.2-53.2-17.7-53.2l7-7L404 379s3.6-18.4 39-17.7c35.4.7 35.4 17.7 35.4 35.4 0 17.8-17.7 17.8-17.7 53.2a38.1 38.1 0 0035.5 35.4l53.1-17.7V645H336.6V467.7z" transform="matrix(.56007 0 0 .53518 9.8 -56)"/>
+  <g fill="none" stroke="#000">
+    <path stroke-width=".6" d="M302.2 292.2l14.6 15 14.7-15 14.6 15 29.3-15 14.3 15.8 15-15.8 21.6 15.8 22.3-15.8 14.6 15 14.7-15" transform="matrix(.1355 0 0 .38018 203 87)"/>
+    <path stroke-width=".3" d="M432.3 435.8l-7.1 39m10.6-39v39m7.1-39v39m7.1-39l3.5 39m3.6-39l3.5 39" transform="matrix(.56007 0 0 .53518 9.8 -56)"/>
+  </g>
+  <g stroke="#000" stroke-width="3.1">
+    <path fill="#a77b3b" fill-rule="evenodd" d="M318.9 361.4c35.4 17.7 35.4 53.2 35.4 70.9-1.2 16.1 0 354.3 0 354.3s-2.3-20-17.7-35.4L319 733.5l-17.7-17.7c-13-11.8-17.7-35.5-17.7-53.2v-248s0-17.8 35.4-53.2z" transform="matrix(-.56007 0 0 .53518 357.1 -56)"/>
+    <path fill="none" d="M283.5 574c.4 0 17.7-17.7 17.7-17.7l17.7 17.7 17.7-17.7 17.7 17.7" transform="matrix(-.56007 0 0 .53518 357.1 -131.8)"/>
+    <path fill="none" d="M283.5 574c.4 0 17.7-17.7 17.7-17.7l17.7 17.7 17.7-17.7 17.7 17.7" transform="matrix(-.56007 0 0 -.53518 357.1 492)"/>
+    <path fill="none" d="M283.5 574c.4 0 17.7-17.7 17.7-17.7l17.7 17.7 17.7-17.7 17.7 17.7" transform="matrix(-.56007 0 0 .53518 357.1 -94)"/>
+    <path fill="none" d="M301.4 557l-.2 158.8" transform="matrix(-.56007 0 0 1.01529 357.1 -399.6)"/>
+    <path fill="none" d="M301.4 539.3l-.2 176.5" transform="matrix(-.56007 0 0 .91125 347.3 -316)"/>
+    <path fill="none" d="M301.4 539.3l-.2 176.5" transform="matrix(-.56007 0 0 1.0208 337.4 -384.6)"/>
+  </g>
+  <g stroke="#000" stroke-width="3.1">
+    <path fill="#a77b3b" fill-rule="evenodd" d="M318.9 361.4c35.4 17.7 35.4 53.2 35.4 70.9-1.2 16.1 0 354.3 0 354.3s-2.3-20-17.7-35.4L319 733.5l-17.7-17.7c-13-11.8-17.7-35.5-17.7-53.2v-248s0-17.8 35.4-53.2z" transform="matrix(.56007 0 0 .53518 158.7 -56)"/>
+    <path fill="none" d="M283.5 574c.4 0 17.7-17.7 17.7-17.7l17.7 17.7 17.7-17.7 17.7 17.7" transform="matrix(.56007 0 0 .53518 158.7 -131.8)"/>
+    <path fill="none" d="M283.5 574c.4 0 17.7-17.7 17.7-17.7l17.7 17.7 17.7-17.7 17.7 17.7" transform="matrix(.56007 0 0 -.53518 158.7 492)"/>
+    <path fill="none" d="M283.5 574c.4 0 17.7-17.7 17.7-17.7l17.7 17.7 17.7-17.7 17.7 17.7" transform="matrix(.56007 0 0 .53518 158.7 -94)"/>
+    <path fill="none" d="M301.4 557l-.2 158.8" transform="matrix(.56007 0 0 1.01529 158.7 -399.6)"/>
+    <path fill="none" d="M301.4 539.3l-.2 176.5" transform="matrix(.56007 0 0 .91125 168.5 -316)"/>
+    <path fill="none" d="M301.4 539.3l-.2 176.5" transform="matrix(.56007 0 0 1.0208 178.4 -384.6)"/>
+  </g>
+  <path fill="#a77b3b" fill-rule="evenodd" stroke="#000" stroke-width="3.1" d="M177.2 696.3c0 24.4-9.6 44.3-21.3 44.3-11.7 0-21.3-19.9-21.3-44.3S144.3 652 156 652s21.3 19.8 21.3 44.3z" transform="matrix(.51699 .20584 -.21541 .49401 290.2 -73.2)"/>
+  <path fill="red" fill-rule="evenodd" d="M198.4 203.8h119v56.9h-119z"/>
+  <path fill="#564dff" fill-rule="evenodd" d="M198.4 260.7h119V289c0 19-29.7 19-59.5 38-29.8-19-59.5-19-59.5-38v-28.4z"/>
+  <path fill="none" stroke="#ff0" stroke-width="2.5" d="M336.6 485.4h212.6V645c0 35.4-53.1 35.4-106.3 70.9-53.1-35.5-106.3-35.5-106.3-71V485.5z" transform="matrix(.56007 0 0 .53518 9.8 -56)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="3" d="M385.6 129.9S335 185.4 335 238.5c0 53.1 53.1 70.9 53.1 70.9s-17.7 0-17.7 70.8c0 35.5 53.1 17.8 53.1 35.5s-.7 60.5 0 88.6c0 17.7-35.4 0-35.4 17.7 0 8.8 26.6 53.1 53.2 53.1s53.1-44.3 53.1-53.1c0-17.7-35.4 0-35.4-17.7v-88.6c0-17.7 53.1 0 53.1-35.5 0-70.8-17.7-70.8-17.7-70.8s53.2-17.7 53.2-70.9-50.7-108.6-50.7-108.6 28.5 73.2 28.5 108.6c0 17.7-13.3 53.2-48.7 53.2 0 0-9-17.8-17.7 0 0 0-10.2-17.8-17.7 0-2.6 6-7.2-17.8-17.8 0-4.4 4.7-8-17.8-17.7 0-17.7 0-53.1-17.8-53.1-53.2s32.9-108.6 32.9-108.6z" transform="matrix(.39205 0 0 .2513 84.9 175)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="3" d="M382.7 248c-3.6 3.6 4.6 61.3 7 63.8 3.6 3.5 24.9 3.5 28.4 0 2.5-2.5 0-56.7-3.5-60.2-3.6-3.6-29.4-6-32-3.6z" transform="matrix(.39205 0 0 .2513 86.4 225)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="3" d="M382.7 248c-3.6 3.6 4.6 61.3 7 63.8 3.6 3.5 24.9 3.5 28.4 0 2.5-2.5 0-56.7-3.5-60.2-3.6-3.6-29.4-6-32-3.6z" transform="matrix(-.39205 0 0 .2513 429.4 225)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="3" d="M414.6 228.5a16 16 0 11-32 0 16 16 0 0132 0z" transform="matrix(.45063 0 0 .31327 63.9 210.4)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="3" d="M414.6 228.5a16 16 0 11-32 0 16 16 0 0132 0z" transform="matrix(.45063 0 0 .31328 92.6 210.4)"/>
+  <path fill-rule="evenodd" d="M270.4 311c0 1.2-1.6 2.2-3.5 2.2s-3.4-1-3.4-2.2 1.5-2.2 3.4-2.2 3.5 1 3.5 2.2zm-18 0c0 1.2-1.6 2.2-3.5 2.2s-3.5-1-3.5-2.2 1.6-2.2 3.5-2.2 3.4 1 3.4 2.2z"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M439.4 550l-7.8-10.3-12.8 1.7 1.8-12.8-10.3-7.7 10.3-7.8-1.8-12.8 12.8 1.8 7.8-10.3 7.8 10.3 12.7-1.8-1.7 12.8 10.2 7.8-10.2 7.8 1.7 12.7-12.8-1.7z" transform="matrix(.54641 0 0 .52213 17.8 -47.3)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M496 591.7l21.3 10.7 21.3-10.7-21.3-10.6-21.2 10.6z" transform="matrix(.56007 0 0 .53518 9.8 -56)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M496 591.7l21.3 10.7 21.3-10.7-21.3-10.6-21.2 10.6z" transform="matrix(.56007 0 0 .53518 -75.5 -56)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M535 659c-3.5-7-14.1-10.6-21.2-10.6s-14.2 0-21.3 10.7c0-14.2 10.5-21.3 21.3-21.3a22.7 22.7 0 0121.2 21.3z" transform="matrix(.48568 -.26652 .27892 .4641 -137.5 131.4)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M386.2 652a7 7 0 11-14.1 0 7 7 0 0114.1 0z" transform="matrix(.56007 0 0 .53518 7.9 -65.5)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M386.2 652a7 7 0 11-14.1 0 7 7 0 0114.1 0z" transform="matrix(.56007 0 0 .53518 3.9 -52.2)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M386.2 652a7 7 0 11-14.1 0 7 7 0 0114.1 0z" transform="matrix(.56007 0 0 .53518 1.9 -59.8)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M386.2 652a7 7 0 11-14.1 0 7 7 0 0114.1 0z" transform="matrix(.56007 0 0 .53518 11.8 -52.2)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M386.2 652a7 7 0 11-14.1 0 7 7 0 0114.1 0z" transform="matrix(.56007 0 0 .53518 13.8 -59.8)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M386.2 652a7 7 0 11-14.1 0 7 7 0 0114.1 0z" transform="matrix(.56007 0 0 .53518 7.9 -57.9)"/>
+  <g fill-rule="evenodd">
+    <path fill="#da4500" d="M238.7 159c-10 0-11.3 1.5-15.8 3 0-4.3 11.1-9.4 21.1-9.4 0 3.2-2.6 6.3-5.3 6.3z"/>
+    <path fill="#cac9c7" d="M254 148.8c0 2.1-1.8 3.8-4 3.8s-4-1.7-4-3.8 1.8-3.8 4-3.8 4 1.7 4 3.8z"/>
+    <path fill="#ff0" stroke="#000" stroke-width="1pt" d="M361.4 357.9v10.6h17.7v53.1h10.7v-53.1h17.7v-10.6h-17.7v-14.2H379v14.2h-17.7z" transform="matrix(.56007 0 0 .53518 9.8 -56)"/>
+    <path fill="#da4500" d="M244 152.6a64 64 0 00-23.8 3.2c0-5.9 6.8-12.7 18.5-12.7 2.7 0 5.3 6.3 5.3 9.5z"/>
+  </g>
+  <g fill-rule="evenodd">
+    <path fill="#008500" stroke="#000" stroke-width=".9" d="M67.3 613c-14.2-14.2-16.6-21.4 3.6-10.1l283.7 247.5-3.4 7L67.4 613z" transform="matrix(.31554 .24102 -.11439 .19257 189.7 119)"/>
+    <path fill="#008f00" d="M182.3 329.6c.7-8.6-15-17.9-15.7-17.3-.6.6 1 5.6 4 8.2-5.8-2.9-11.8-4.7-12-3.4-.4 1.7 9 5.8 9.8 7.4 0 1.1-7 1-6.8 2.1.1 1.2 19.7 11 20.7 3zm-15.7-25c.6-8.6-15.1-18-15.8-17.3-.6.6 1 5.6 4 8.2-5.7-3-11.7-4.8-11.9-3.5-.4 1.7 9 5.8 9.7 7.4.1 1.2-6.9 1-6.7 2.2.1 1.1 19.7 11 20.7 3zm-12-22.8c.6-8.6-15.2-17.9-15.8-17.3-.6.6 1 5.6 4 8.2-5.8-3-11.8-4.7-11.9-3.4-.5 1.7 9 5.8 9.7 7.4.1 1.1-6.9 1-6.8 2.1.2 1.1 19.7 11 20.7 3zm-12-24.6c.7-8.6-15-18-15.7-17.3-.6.6 1 5.6 4 8.2-5.8-3-11.8-4.8-11.9-3.5-.5 1.7 8.9 5.8 9.7 7.4.1 1.2-6.9 1-6.8 2.2.1 1 19.7 11 20.7 3z"/>
+    <path fill="#008f00" d="M146.7 256c7.7-4.6 6.2-22.2 5.3-22.3-.9-.2-4.2 4-4.6 7.9-1-6.2-3-11.9-4-11.2-1.8.7.3 10.3-.6 11.9-.9.7-5-4.7-5.8-4-.9.8 2.4 21.7 9.7 17.7zm11 21.7c8.9-2 13.6-19 12.9-19.4-.8-.4-5.4 2.5-7.1 6 1.3-6.1 1.3-12.1 0-11.9-1.8.1-3.3 9.8-4.6 11-1.1.5-3-6-4.1-5.5-1.1.4-5.3 21.2 3 19.8zm13.3 22.1c8-4 8.2-21.6 7.3-21.8-.9-.2-4.5 3.7-5.3 7.5-.4-6.2-1.8-12-3-11.5-1.8.5-.7 10.3-1.7 11.8-1 .6-4.4-5.2-5.4-4.5-1 .7.4 21.9 8 18.5zm14.2 29c8.4-3.2 10.5-20.8 9.6-21-.8-.4-4.9 3.1-6 6.8.3-6.2-.6-12.1-1.8-11.7-1.9.4-1.7 10.2-2.9 11.6-1 .6-3.9-5.5-4.9-5-1 .7-2 21.8 6 19.2z"/>
+  </g>
+  <path fill="#ff1900" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M209 776c0 7.8-10.2 14.2-23 14.2s-23-6.4-23-14.2 10.3-14.2 23-14.2 23 6.4 23 14.2z" transform="matrix(.48902 .26089 -.27302 .46728 313.4 -58.3)"/>
+  <g fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width=".6">
+    <path d="M156 414.6v-7.1h7v-7.1h7v7h7.2v7.2H170v17.7h-7v-17.7h-7zm7 60.2h7v205.5h-7z" transform="matrix(.40549 .1277 -.14842 .38308 363.6 58)"/>
+    <path d="M159.4 676.8h14.2v56.7h-14.2zM156 439.4h21.3c14.1 0-3.6 39-3.6 39h-14.1s-17.8-39-3.6-39zm17.6-5.4c0 3-3.1 5.4-7 5.4s-7.1-2.4-7.1-5.3 3.1-5.4 7-5.4 7.1 2.4 7.1 5.4z" transform="matrix(.40549 .1277 -.14842 .38308 363.6 58)"/>
+  </g>
+  <path fill="#ff1900" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M209 776c0 7.8-10.2 14.2-23 14.2s-23-6.4-23-14.2 10.3-14.2 23-14.2 23 6.4 23 14.2z" transform="matrix(.46695 -.29552 .30926 .4462 -5.1 64.5)"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/me.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/me.svg
new file mode 100644
index 0000000..56a19ed
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/me.svg
@@ -0,0 +1,118 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-me" viewBox="0 0 512 512">
+  <path fill="#d3ae3b" d="M0 0h512v512H0z"/>
+  <path fill="#c40308" d="M25.6 25.6h460.8v460.8H25.6z"/>
+  <path fill="#b96b29" d="M367.4 251.8c3-.8 13.5-3.9 20.8-9.8 7.3-6 8.8-10.7 9.4-13.3.6-2.6.8-4.6-1-3.2-2 1.5-7.7 6-11.6 8.2a43 43 0 01-9.6 3.7c-2 .6-3.8 1-1.7.2 2-.8 8.6-3.1 13.7-8.2 5.1-5.2 9.2-12.8 9.3-17.6 0-4.7-.3-4.3-1.8-3.1-1.5 1.1-6.9 7.8-10 10.3a96 96 0 01-10.3 7.3c-2.4 1.4-5.8 3-1-.2 4.8-3.3 13.8-11 17.5-21 3.7-10 3-16 3-17-.1-1-1-3-1.8-1.1-.8 1.8-6.9 14-11.8 19.2-4.8 5.2-3.7 4.2-4.8 5-1 .8-3 2.3-.5-.6 2.3-3 7.2-9.7 9.7-16.5a54.9 54.9 0 003.3-17.3c0-3.9-1.6-9.2-2.4-10.8-.7-1.6-1.5-2.8-1.7-1s-4.2 13.8-6.3 19.6a74.9 74.9 0 01-7.1 13.7c-.8 1.2-3 3.8-.7-.6a82.6 82.6 0 007.5-29.4 47 47 0 00-2.8-22.3c-1.6-3.3-3.1-4.5-3.1-4.5s.3 8.3-2.2 20.3-6.1 18.2-6.1 18.2-1.5 1.8-.5-1.1c.7-2 2.2-6.2 2.8-13.4.7-7.5.8-16.1-1.4-23.4-2.4-8-6.5-12-6.5-12-1.2 11.4-1 26-5.2 38-.7-.7-1.8-2-2.2.7a67.3 67.3 0 01-7.4 20.6c-5.2 9.4-7.3 10.6-7.3 10.6l-1.6-3.5c-.7-1.3-1-2-2-.2-.8 1.7-3.7 8.3-10 15.6-6.3 7.2-9.8 10.8-9.6 16.2.2 5.5 3 8.3 6.9 10.7 3.8 2.5 4.5 3.9 3.9 6.8-.6 3-4 4-7 4.1-3 .1-6.7-.1-8 .6-1.3.8-1.4 2.7-2.8 4-1.3 1.4-1.9 2.1-3.1 2.3l-1 .2c-.4-14.4 5.2-20.8 5.2-20.8L291 217.7l-2.4 1.1a4.4 4.4 0 00-.4-.7 12 12 0 01-2.8-8.3c.8.1 2.3.7 3.8.4 1.4-.3.3-1.7-.1-3a27.6 27.6 0 01-.2-10.3s2.3 2.4 3.7 2.4c1.4 0 1.3-1.4 1.5-3a12 12 0 013.2-6.9s2.5 1.7 5.3 1.7c2.9 0 6.7-.7 9.7-3.6 3-3 3-3.6 3-3.6s5.6 2 10 2.2c4.2.2 8.8-.5 11-5 2.2-4.6-.6-8.8-1.1-9.5-.5-.7-2-1.3-2 0s.1 4.7-2.5 6.4c-2.6 1.7-4.6 1.6-7.1.8a21.8 21.8 0 00-14-.3c.2-.2 3.4-3.5 6.6-4.5 3.2-1 5.1.4 6.2 1.6 1 1.3 2 3.4 2.8.4.9-3 .4-6.4-1-8.6a8 8 0 00-7.7-3.2c-3.1.3-4.3.8-4.3.8s-1.6-4.6-5.7-5.4c-5-1-10.5.8-14.8 3.2 0 0-3.4.8-6.8-.2a22.4 22.4 0 01-5.9-2.9 301.9 301.9 0 011.2-3.7l2-.7c1-.4.8-.8 1-1.6.1-.9-2-2.4-2-2.4s-.3-2.6 3.1-4.3l3-1.5s2 .3 2.9-.2c.8-.6.8-1 .8-1s1.5-.5 2-1.4c.6-1 .7-2.2.3-3.3-.4-1-1-1.3-.4-1.8a4.5 4.5 0 001.2-2.5v-1s1.2-.5 1.1-2.3c0-1.7-1-2.4-1.6-2.6l-.9-.1s0-1.1-1-2.5c-.9-1.4-1.5-2-1.5-2s.7-.5.3-1.7a3.1 3.1 0 00-2-2.1c-.7-.3-1.6 0-1.6 0l-4-2.3-1.5-.8s0-1.1-.5-1.7c-.4-.6-1.5-.9-2-.9-.6 0-1.2.3-1.2.3s-4.5-1.1-6.4-1.4c-1.9-.3-2-.5-2-.5s-4-1.9-5.5-2.2l-2-.5s1.6-2 1.7-4.2a6.3 6.3 0 00-3-5.4l-1.7-.8V99l3 .3.2-4.8-3 .4.5-3h-6.2l.5 2.9-3-.2.3 4.8 3-.4-.2 1.8s-1.1.2-2.1.9a5.7 5.7 0 00-2.9 5.1 9.2 9.2 0 001.5 4.3l-2 .4c-1.5.3-5.6 2.2-5.6 2.2s0 .2-2 .5l-6.3 1.4s-.6-.3-1.2-.3c-.5 0-1.6.3-2 .9-.5.6-.5 1.7-.5 1.7l-1.6.8-4 2.3s-.8-.3-1.6 0a3.1 3.1 0 00-2 2.1c-.3 1.2.3 1.7.3 1.7s-.6.6-1.5 2-1 2.5-1 2.5l-.9.1c-.5.2-1.5.9-1.5 2.6-.1 1.8 1 2.2 1 2.2l.1 1c0 1 .6 2.1 1.1 2.6.6.5 0 .7-.3 1.8a4 4 0 00.2 3.3c.6.9 2 1.4 2 1.4s0 .4.9 1c.8.5 2.8.2 2.8.2s-.4-.3 3 1.4c3.4 1.8 3.1 4.4 3.1 4.4s-2 1.5-2 2.4c.2.8 0 1.2 1 1.6l2 .7 1.2 3.7c-1.3.9-3.5 2.3-5.8 3-3.4 1-6.8.1-6.8.1a22.5 22.5 0 00-14.8-3.2c-4.1.8-5.8 5.4-5.8 5.4s-1.1-.5-4.3-.8a8 8 0 00-7.6 3.2 11.1 11.1 0 00-1 8.6c.8 3 1.7 1 2.8-.4 1-1.2 3-2.6 6.2-1.6a19 19 0 016.5 4.5s-.5-.4-4-.9c-4-.5-7.4.4-10 1.2-2.4.8-4.4.9-7-.8-2.7-1.7-2.6-5.1-2.6-6.4 0-1.3-1.4-.7-1.9 0s-3.3 4.9-1.1 9.4c2.2 4.5 6.8 5.3 11 5 4.4-.2 10-2.2 10-2.2s0 .8 3 3.7c3 2.9 6.8 3.6 9.6 3.6s5.3-1.7 5.3-1.7a12 12 0 013.3 7c.2 1.5 0 3 1.5 3s3.6-2.5 3.6-2.5l.4 2.4c.2 1.7-.1 6.5-.5 7.8-.4 1.4-1.5 2.8 0 3 1.3.4 2.9-.2 3.7-.3a12 12 0 01-2.8 8.3 4.8 4.8 0 00-.4.7 57.5 57.5 0 01-2.3-1.1L205.6 236s5.6 6.4 5.3 20.9v-.1a20.7 20.7 0 01-1.2-.2c-1.2-.2-1.8-1-3.1-2.3-1.3-1.3-1.4-3.2-2.8-4-1.3-.8-5-.5-8-.6-3 0-6.4-1.1-7-4-.5-3 .1-4.4 4-6.9 3.8-2.4 6.6-5.2 6.8-10.7.2-5.4-3.3-9-9.6-16.2-6.3-7.3-9.2-13.9-10-15.6-1-1.7-1.3-1-2 .2l-1.6 3.5s-2-1.2-7.2-10.6a67.2 67.2 0 01-7.5-20.7c-.4-2.6-1.4-1.3-2.2-.6-4.2-12-4-26.7-5.1-38 0 0-4.2 4-6.6 12a63.8 63.8 0 00-1.4 23.4c.6 7.2 2.1 11.5 2.8 13.4 1 2.9-.5 1.1-.5 1.1s-3.6-6.3-6-18.2c-2.6-12-2.3-20.3-2.3-20.3s-1.4 1.2-3.1 4.5a47 47 0 00-2.8 22.3c.6 12.2 5.1 25 7.5 29.4 2.4 4.4.2 1.8-.7.5-.8-1.2-5-7.8-7.1-13.6A242 242 0 01128 165c-.3-1.8-1-.6-1.8 1s-2.4 7-2.4 10.8a54.9 54.9 0 003.3 17.3 68.1 68.1 0 009.8 16.5c2.3 3 .5 1.4-.6.6s0 .1-4.8-5a98.3 98.3 0 01-11.8-19.2c-.8-1.9-1.7.1-1.7 1.2-.1 1-.8 6.9 2.9 16.9a48.8 48.8 0 0017.6 21c4.8 3.2 1.3 1.6-1.1.2A96 96 0 01127 219c-3-2.5-8.4-9.2-9.9-10.3-1.5-1.2-1.8-1.6-1.7 3.2 0 4.7 4 12.3 9.2 17.4 5 5.2 11.7 7.5 13.7 8.3 2 .8.4.4-1.7-.2a42.9 42.9 0 01-9.6-3.7c-3.9-2.2-9.6-6.7-11.5-8.2-1.9-1.4-1.6.6-1 3.2.5 2.5 2 7.3 9.3 13.3 7.4 6 17.8 9 20.8 9.8 3 .9.9.9.9.9l-7.3-1.5c-6-1.4-15.3-6.2-17.8-7.8-2.5-1.5-2.8-2.1-2.5 1.2.3 3.3 3.9 10.3 9.5 13.6a53 53 0 0018.3 5.1c2.6.2 2 .5.8.6a55.1 55.1 0 01-20.6-3.5 32 32 0 01-.5-2.1c-.2-1.3-.9-1-1.3-.8-.4.3-.6.5-2 1.2s-1.5-.1-1.5-.6l-.4-3.1c0-1-.5-1-1.2-.7l-5 2c-1 .6 0 1.5.6 2.6a157 157 0 001.5 2.8l-3.8 1c-1 .2-.7.9-.4 1.5l2 4.9c.4 1 1.2.4 1.2.4l3-1.8 1 4c-.1 0-1.4.3-2.9 1.3s-1 2.4.7 2.9c1.8.5 3.8 1.4 6.1 5.6 2.3 4.1 2.9 11.6 4.3 23.4 1.4 11.8 9 17.8 10 18.5 1 .8.4 1.4.4 1.4s-1 1.5-.6 3.7a5.7 5.7 0 003.5 4c1 .4.8 1.5.8 1.5s-.6 2.5 0 7c.5 4.7 4.2 9.9 5.3 10.8 1 .8 1 1.3 1 1.7-.2.3-.9 0-2.1 1-1.3 1-2.7 2.3-3.6 4-.9 1.6-.6 2.5-.3 4.7.3 2.3 3.6 4.3 3.6 4.3s-.6.1-.8 1.8c-.1 1.6 1 3.4 2.6 4.6 1.4 1.2 4.2 1.8 4.2 1.8l.4 2.4c.2 1 2 2 3.2 2.6 1.2.6 3.5.3 4.4-.2 1-.4 1.7.1 2.2 1 .6 1 .4 4.7.4 6.2s-.9 3-.4 3.8c.6.7 2 .2 3.4-.6s1.7-.2 3 .6 3.3 1.6 3.8 1.5c.5 0 .3-1.4.3-2.5 0-1.2.2-3.7.7-4 .2-.2 2.4-.4 4-1 .9-.4 1.8-.7 2-1.5 0-.7-1.1-.7-3.6-2-2.4-1.3-2.8-2-4.4-3-1.5-1-.8-1.4-.8-1.9 0-.4.7-1 1-1.5.3-.6.2-2 .2-2l1.8-1.9c.6-.7 1.4-1.7 2.2-2.4.8-.6 2-3.8 2.9-4.9.8-1 2.6-2.1 3.7-3.5s4-3.7 5.8-4.8c1.7-1.2 6.3-3.3 6.3-3.3s-.1 2.7 1 4c1.3 1.4 2.8-1 8-4.7s9.3-5 9.3-5l2.5 3.5c1.4 1.7 2.7-.1 9.1-9 5-7 11.8-13.4 14.4-15.8l1.4.6-.4 1.2c-.6 1.8-1.5 3-2.8 5.6-1.2 2.5-3.2 3.1-5.4 6.6a16.8 16.8 0 00-2.7 9.3c-.2 3.6 1.8 4.3 1.8 4.3s-3.3 3.2-4.2 5.5c-1 2.4-1.5 7.2-1.5 7.2s-.5.2-1.7 2.6c-1.2 2.5-3.3 2.8-6.4 6-3.1 3-6.6 4.4-8.2 5.3-1.6 1-1.2 2-.7 3.2.4 1.2 2.6 2.5 5.2 3.4 2.6 1 3.5.6 5.2.6 1.8-.1.4 1.3-.3 2-.8.8-1.7 3.3-1.6 6.2.2 2.9 2.3 2.2 5 1.8 2.6-.5 5.7-1.8 5.7-1.8l-.3.8c-.3.8-.4 1.4-.4 3.7 0 2.3.3 3.4 1 4 .7.6 2-.7 3-1 .9-.3 2.5-1.2 4.9-1.7 2.3-.6 3.2-1.6 3.2-1.6s-.6.7-.7 2.4a18.8 18.8 0 00.3 5.4 10 10 0 003 4.6c1.6 1.5 2 .8 3.2-1 1.2-1.9 3.6-4.2 3.6-4.2l1.8 5.8c1.6 5.2 6.9 9.5 6.9 9.5s5.3-4.3 6.9-9.5l1.8-5.9s2.4 2.4 3.6 4.2c1.2 1.9 1.5 2.5 3.1 1a10 10 0 003-4.5c.4-1.4.5-3.8.4-5.4-.2-1.7-.8-2.4-.8-2.4s.9 1 3.3 1.6c2.3.5 4 1.4 4.9 1.7 1 .3 2.3 1.6 3 1 .6-.6 1-1.7 1-4a9 9 0 00-.5-3.7l-.3-.8s3.1 1.3 5.8 1.8c2.6.4 4.8 1 5-1.8a11 11 0 00-1.6-6.2c-.8-.7-2.2-2.1-.4-2 1.8 0 2.7.4 5.2-.6 2.6-1 4.8-2.2 5.3-3.4.4-1.3.9-2.2-.8-3.2-1.6-1-5-2.3-8.1-5.4-3.1-3-5.3-3.4-6.5-5.9-1.1-2.4-1.6-2.6-1.6-2.6s-.6-4.8-1.5-7.2c-1-2.3-4.2-5.5-4.2-5.5s2-.7 1.8-4.3c-.3-3.5-.6-5.9-2.8-9.3-2.2-3.5-4.1-4-5.4-6.6s-2.2-3.8-2.8-5.6a33.8 33.8 0 00-.3-1.2 152.2 152.2 0 011.9-.8c2.5 2.4 9.3 8.8 14.4 15.9 6.4 8.9 7.6 10.7 9 9 1.5-1.8 2.6-3.5 2.6-3.5s4 1.3 9.2 5c5.2 3.7 6.8 6 8 4.8.6-.8.7-2 .8-2.8l6.5 2a111.5 111.5 0 016 2.4c4.6 2 5.1 3 8.7 5.8 3.7 2.9 8.8 2.6 13.7 1.1 4.9-1.5 17.8-5.8 23-8 5.3-2.3 9-4.2 9.5-5.3a16.6 16.6 0 001.2-5c0-1-1.2-2.6-1.6-2.9-.3-.2-.2-1 0-1.7 0-.7-.3-2.6-1.1-3.5-.8-1-.7-1.2-.6-3.8a16 16 0 00-9-14.2s-.2-.7-.6-1c-.4-.4-1.2-.7-1.2-.7v-3.8c0-.6.4-.6.7-.4.4.2 1 1 1.9 1.2.8.2 1.4-.4 1.6-1.4.1-1 .9-3 1.2-4 .3-1 0-1.1-.5-1.2-.4-.2-1.7-.3-2.3-.4-.6-.2-.6-.2-.5-.6l1.2-2c.8-1.3 0-1.3-.7-1.6a62.3 62.3 0 00-5.2-1.5c-1-.1-1.2.7-1.2 1v3c.1.6-.5.4-.9.2l-1.8-1.2c-.7-.5-1.2 0-1.4.7l-1.3 4.6c-.3 1-.2 1.6.2 1.8h3c1 0 .5.5.5.5l-1.5 2.5c-.3.7-1 .8-1.8.8h-2.2s-5.7.2-9.8 3.3a17.4 17.4 0 00-6 7.1c-.6 1.5-1.3 1.2-2 1.7-.6.6-2.4 2.5-2.4 3.6 0 1.2.4 1.8-1.4 3-1.8 1.2-3.3 6.3-.8 9 2.4 2.6 3.4 5.2 4.1 6.5.7 1.3 0 1.8-.6 1.8a273.5 273.5 0 01-12.2-9c-2.4-1.7-.7-1.5-.7-1.5s.6 0 2-.5c1.5-.6 1.7-1.4.3-1.8-1.4-.5-4.2-2-5-2.8-.6-.7-1-1.5.4-2.3 1.4-.7 4.5-2.7 2-3.4l-7.6-1.8c-2.4-.7-2.6-1.4-2.6-1.4l1.5-2.2s1.3-1.8-.2-2c-1.5-.2-5-.7-8.3-2a20 20 0 01-12-13.5v-.1c1.3 2.4 4.1 6.9 8.4 7 5.8.2 6.5-1.6 5.1-3.5-1.3-2-2.8-3.7-3.2-4.2-.4-.6-.5-1.4 1 0 1.6 1.5 4.5 6.4 13.2 5.8 8.8-.6 8.8-2.3 8.8-2.8 0-1.7-1.8-2-2.9-3-.5-.5-.8-1.3 1-.7 1.7.7 6 1.5 12 .2 2.3-.5 8.5-3.2 9-6.3 0 0-3.8-.2-6.6-1.4-2.7-1.2-4.4-2.1-1.5-1.6 3 .6 8.6 1.8 13.6.1 2.9-1 6.7-3.3 6.7-7.6 0 0-5.4-1.2-7.4-1.9S355 288 355 288s7.8 2.4 14.8-1.1c7-3.6 7.3-8.5 7.3-9.6 0-1.1-.2-1.5-.2-1.5s-6.4 1.6-11.1 1.5c-4.8 0-6.3-.4-6.3-.4s13.4-.4 20-4.5c6.8-4.1 7.2-12.2 7.2-12.2s-7.6 2.7-12.4 3.3a55 55 0 01-8.9.4c-1.1 0-1.8-.4.8-.6 2.6 0 12.7-1.8 18.4-5a21.7 21.7 0 009.4-13.7c.4-3.3 0-2.7-2.5-1.2a76.6 76.6 0 01-25 9.3s-2.4-.1.6-1zm-240.1 15.4l-2.7 1.5-1.4-2.8c-.2-.7-.1-1 .3-1l2.3-.4h.4l1.2 2.6h-.1zm81.9 48a22 22 0 01-9.4 7.6c-3.2 1.4-6.8 1.8-8.2 2-1.5.3-.3 2-.3 2l1.6 2.3s-.2.6-2.6 1.3c-2.4.7-5.2 1.2-7.7 1.9-2.4.6.7 2.6 2 3.4 1.5.7 1.1 1.5.4 2.3a18 18 0 01-4.9 2.7c-1.4.5-1.2 1.2.2 1.8 1.4.6 5.3 1.3 5.3 1.3l-2.5 2c-2.3 1.7-6.5 3-9.2 3-2.7.2-7 .4-12.6.1l-6-.3-.6-4.6a23 23 0 00-3.3-8.3l-4-5.3.3-1.6c.2-1 0-1.9-.5-3.5-.7-1.7-3.9-4.1-3.9-4.1l-.1-3.5c0-1.7-1.2-8.2-2.2-11.3-1-3-6-11.1-8.3-15a42 42 0 01-4.6-21l.5-1.3a13.8 13.8 0 003.7 3.3c6.7 4 20 4.5 20 4.5s-1.4.4-6.1.4c-4.8 0-11.2-1.5-11.2-1.5s-.2.3-.2 1.5.3 6 7.3 9.6c7 3.5 14.8 1 14.8 1s-.7.6-2.6 1.3a86.7 86.7 0 01-7.4 1.9c0 4.3 3.7 6.6 6.6 7.6 5 1.7 10.7.5 13.6 0 2.9-.6 1.3.3-1.5 1.5-2.7 1.2-6.7 1.4-6.7 1.4.6 3.1 6.8 5.8 9.2 6.3 5.9 1.3 10.2.5 12-.2 1.8-.6 1.4.2.9.7-1 1-2.9 1.3-2.9 3 0 .5 0 2.2 8.8 2.8s11.7-4.3 13.2-5.7c1.5-1.5 1.4-.7 1-.1-.3.5-1.9 2.3-3.2 4.2-1.3 1.9-.7 3.7 5.2 3.5 4.3-.1 7-4.7 8.3-7l.3.4a55.1 55.1 0 01-2.5 5.6zM280 125l-1.2-2.2s3.3 1.5 5.3 3.8c2 2.2 1.9 3.4 2.2 4.5.3 1 0 3-.3 5-.3 1.8-.3 3 0 3.7l.8 1s-1.5.3-2.9.9c-1.3.5-3.1 1-4.1.2-1-.9-1.3-1.4-.7-2 .6-.5 3-1.2 3.3-5.2.3-4-1.6-8.2-2.4-9.7zm-18 11c.7-2 1-3.8.4-7.7-.4-3.3-1-6.1-1.2-9.7 0 0 2.4.6 6 3.8 3.4 3.2 4.2 6.5 4.2 8 0 1.7-.8 3.7-1 5.2s.5 3 .5 3-1.3.5-2.5 1.3-2 1.3-3.7 1.2c-1.8 0-2.8-.9-3.9-1.4-1-.6-1.7-.7-1.7-.7s2-1.1 2.8-3zm-17.2-13.6a15 15 0 016-3.8c-.2 3.6-.8 6.4-1.3 9.7-.6 4-.3 5.8.5 7.7.7 1.9 2.8 3 2.8 3l-1.7.7c-1 .5-2 1.3-3.9 1.4-1.7.1-2.5-.4-3.7-1.2-1.2-.8-2.5-1.3-2.5-1.3s.6-1.4.5-3c-.1-1.5-1-3.5-1-5.1 0-1.6.8-5 4.3-8.1zM232.2 142c-1 .8-2.8.3-4.2-.2-1.4-.6-2.9-1-2.9-1l.8-1c.3-.6.3-1.8 0-3.6-.3-2-.5-4-.3-5 .3-1.1.3-2.3 2.3-4.5 2-2.3 5.2-3.8 5.2-3.8L232 125c-.8 1.5-2.7 5.6-2.4 9.7.3 4 2.7 4.7 3.3 5.2.6.6.4 1.2-.6 2zm46.8 33.7c-3.5 2-5.5 1.5-5.3 3 .1 1.3 3.2 2.4 3.2 2.4s-3.2 3.4-5.6 5c-2.5 1.5-5.4 2.5-5.4 2.5s-1 .1-.4 1.7a5.8 5.8 0 002.3 3l1.2.6s-4.3 4.6-6.2 6.1a16.3 16.3 0 01-4.5 2.6c-1.6.7-.8 3.2-.4 4.3a5.7 5.7 0 002.4 3c.8.2 1 .7.1 2.3l-4.4 6-4.4-6c-1-1.6-.7-2.1 0-2.4.8-.2 2.1-1.7 2.5-2.9.3-1 1.1-3.6-.4-4.3a16.2 16.2 0 01-4.5-2.6c-2-1.5-6.3-6-6.3-6l1.2-.7a5.8 5.8 0 002.4-3c.5-1.6-.5-1.7-.5-1.7s-2.8-1-5.3-2.5c-2.5-1.6-5.7-5-5.7-5s3.1-1 3.3-2.5c.1-1.4-1.8-1-5.3-2.9s-4.6-4.3-4.6-4.3 4-1.3 6-5.4a7 7 0 00.8-3.8h.2c6.4 2.2 13.9 3 20.6 3 6.7 0 14.2-.8 20.6-3h.2c-.1 1.1 0 2.4.8 3.8 2 4 6 5.4 6 5.4s-1.2 2.4-4.6 4.3z"/>
+  <path fill="#d4af3a" d="M300 253.6c0-10.9 5-17.7 5-17.7l-13.7-15.6c-12.9 5-24.8 5.3-35.3 0-10.6 5.3-22.4 5-35.4 0L207 236s5 6.8 5 17.7-2 19-3.3 24.2c-1.2 5.2-2.2 15 .6 22 2.7 7 5.7 13.2 17.8 18.2 12 5.1 18.4 7.7 22.6 11.2 4.2 3.6 6.3 6.4 6.3 6.4s2.1-2.9 6.3-6.4c4.2-3.4 10.5-6 22.6-11.2 12-5 15-11.2 17.9-18.2 2.8-7 1.7-16.8.5-22s-3.3-13.3-3.3-24.2z"/>
+  <path fill="#b96b29" d="M295.7 258a30.3 30.3 0 014.3-19.4L288.3 225c-9 5-21.4 4.3-32.3-.7-10.8 5-23.3 5.7-32.2.7L212 238.6s6 9.1 4.3 19.5c-1.7 10.3-5.4 26.8-4.5 33.4 1 6.7 5.7 14.5 10.5 18.5a61 61 0 0017.2 9.4 49.3 49.3 0 0112.5 7.2c2.4 1.8 4 3.4 4 3.4s1.5-1.6 3.9-3.4c2.3-1.8 7.3-5.4 12.4-7.2a61.5 61.5 0 0017.3-9.3 33 33 0 0010.4-18.6c1-6.7-2.7-23-4.4-33.4z"/>
+  <path fill="#1d5e91" d="M294.6 259.3a34.6 34.6 0 013.3-20.2l-10.5-11.7c-8.8 4.6-19.6 3.4-31.4-.7-11.7 4-22.5 5.3-31.4.7l-10.5 11.7s5 9 3.4 20.2c-1.7 11.2-4.3 23.9-3.8 31.3 0 .5 0 1 .2 1.6h9.5s.6-.7 1.6-1.1c1.1-.5 1.4-.8 1.4-.8s.2-2 1.4-2.3c1.1-.4 1.6-.4 2.1-.4s.8-.1 1.4-.7 2-2 2.7-3.9c.7-1.9 1-2.7 1-4s.5-3.2.5-3.2-.2-.6-1.2-.3c-1 .4-1.1-.6-1.2-1.6-.1-1 0-2.9.5-3.8l.8-1.2-.4-1.6s-6.1 1.3-7.2-3.5c-1-4.7-1.2-7-1.4-7.5-.1-.5-.3-.7-1.1-.7s-2.5-.5-3.8-3c-1.2-2.4-1.3-3.4-1-4.4.4-1 1-.6 1.3-.3.2.3 1.8 2.7 2.5 2 .6-.6.3-.6-.6-2.5-1-1.8-.6-2.4-.5-3.3 0-1-.3-2.2-.3-2.7s.5-.9 1-.6a4 4 0 011.4 1c.2.2.3.7.9.4.5-.3.2-2 .2-2.5 0-.6.6-1 1.4-.6a2.4 2.4 0 011.2 2c0 .6 0 1.1.4 1.1.3 0 .7-.9.7-1.5s.4-1.5 1-.7.7 1.8.5 3c-.2 1.2.2.6-.2 2.6s-.6 3-.5 4.5c0 1.5 0 2.4.8 4.2.8 2 1.4 4.1 2.8 4.2h1.8s1.6-3 2.8-3.8c1.2-.7 3-.8 4.2-1 1.2 0 1.7-.4 1.7-.7 0-.3-.4-.4-1.9-.6-1.4-.2-2.7-.6-2.7-1.7s.2-2.1-.7-2.2c-1 0-3.4-.8-4.2-2.4-.9-1.5-.7-1.9-.6-2.7.1-.9 1.2-2.6 2-1s1.1 1.8 1.7 2.2c.6.3 1.4.4 1-.7a5.4 5.4 0 01-.5-2.6c0-.8.6-1.2 1.3-1.3l3.6-1 1.1-.3s.1-.7 1.4-1.1a9.5 9.5 0 013.2-.5c1 0 1.6.2 2.9-.4a6 6 0 013-.7 4 4 0 012.1.8c.6.4.4 1 .4 1.5s.1.8 1 .8c.8 0 1.6 0 2.4.4s2 .7 1.2 1.6c-.7.8-.7 1.8-1.2 1.8-.4 0-.4.4-.6.7-.2.3-.3.6.2.9.5.3.5.6 1.2 1.3s1.8 1.3.7 2.4c-1 1-3 2-3 2s-1 .4.2 1.2c1.3.6 1.8 2.1 2.3 2.4l1.2.8c.3.1.2 1.2.2 1.2l-1.5.8c-1 .3-1.9.7-2.8.7-.8 0-1.3 0-1 .8l1.2 2.2.4 1.3s1.4.3 2.6.3c1.3 0 1.9 0 4.6-.3s3.6-.4 6.3 0c2.7.2 3.1.1 3.8.4l1.4.6s3.8 0 6-.5c2-.5 2.5-1.8 2.2-2.5-.3-.7-.3-1.8-3.9-2.3-3.6-.5-5.1-.3-8-.9-2.9-.5-7.4-2-8.2-5.6-.8-3.6 2.1-5.2 3.6-5.9 1.5-.7 4.6-1.8 6.1-2.4a14.1 14.1 0 017-.8c2.8.4 4.5 1.2 5.6.5 1-.7 2-.2 1.8.9-.2 1-1.3 3-4.5 4s-7 1.1-9.1.5c-2.1-.5-3.7-1.3-5-.9-1.2.5-2.6 2-1.3 4 1.4 1.8 8.4 2.4 10.3 2.6 1.9.2 8.8-.3 10.8 3.1 2 3.5.4 7.3-2 8.2a30 30 0 01-6 1.7l-1.8.2s.8 1.9.8 2.6c0 .8-.1 2.2.8 2.8s2 1 3.5.8c1.5-.2 3.3.8 3.4 2.2 0 1.3.5 3.1.6 5.8.2 2.6 0 4.8 0 4.8s0 1-.4 2l-2.2 4.7h10.2a22.5 22.5 0 00.1-1.6c.5-7.5-2.1-20.2-3.8-31.4z"/>
+  <path fill="#6d8c3e" d="M215 297.1c2 5.8 6.2 11.5 12.5 15.3 8.7 5.3 12.4 4.6 20.7 10 8.2 5.3 7.7 6.2 7.8 6.2.1 0-.4-1 7.8-6.3 8.3-5.3 12-4.6 20.7-9.9a29.2 29.2 0 0012.4-15.3h-81.8z"/>
+  <path fill="#d4af3a" d="M222.2 253c1 1 1.6 1.3 3 1.1 1.5-.1 1.8 1 2 2 .3 1.2.3 3.9 1.4 6.3 1 2.5 4.4 2.6 4.4 2.6.1-1.2.6-2.8 1-4 .2-.3.6-1.4-.6-1.4s-1.2-.5-2-1.7a23.1 23.1 0 01-2.4-6.3c-.4-2 .3-5 .6-6.1.3-1.1.4-1.9 0-2-.4-.3-1.2 0-1.2 0s.3.9 0 1c-.4.2-.7-.5-1-1.2-.2-.7-.5-.6-1-.5-.5 0-.5.5-.1 1 .3.5.1 1.4.1 1.4l-1.5-1c-.4-.2-1.5.2-1.6.8 0 .6.4 2 1.4 2.9 1 .8 1 2.4.6 3.1-.3.8-1.7.7-2 .3a.8.8 0 00-1.2 0c-.4.5-.8.7.1 1.7zm-.5-2.6l-.8-.7-.6-.8v.9c0 .6.6 1.2.6 1.2l.8-.6zm2-6.8c.5-.2.8-.3.5-.8-.4-.5-.7-1-1-1.2h-.6l.4 1.4c.1.6.3.8.7.6zm2.6-2.1c0 .4 0 .6.4.4s.6-.7.4-1.1c-.2-.4-.7-.7-.7-.7l-.3-.2.2 1.6zm3.7.6l-.2-1s0 .5-.2.9c-.3.3-.2.2 0 .5.3.3.3 0 .4-.4zm5.8 25c.7 1.7 2.5-1 4.2-3 1.7-2.2 1.6-.6 1.4 1.2a8.2 8.2 0 001.1 4.7c.7 1.2 1.3.5 1.5-.3.3-.8.5-2.6 1-3.4.7-.9 1.2-.1 1.3.6a8 8 0 001.7 3.3c.9 1 1.3-.3 1.5-1.5l.9-3.7c.2-.7 1-.1 1-.1l1.7 1.6c1 1 1.2-.6 1.3-1.4.1-.9-.2-2.7.2-3 .3-.3 1.2.4 2.7 1.1 1.5.7 1.4-.7 1.2-1.4a8 8 0 00-2.1-3.6c-1.2-1-1.4-2.2-1-2.7.4-.5 1.8 0 2.7-.2.9 0 1.3-.2 2-.3.7-.1.7-.8.7-.8s-.5-.8-1.5-1.7-1.5-1.5-2.7-1.8c-1.1-.2-2.7 0-2.7 0l-.2-.3c-.2-.3-.5-.3-.7 0l-1.3 1.2c-.4.4-.7.6-1 .4-.3-.1.3-.5.3-.5s.6-.5 1.1-1.6c.6-1.1.7-2.2.3-2.7-.4-.5-1.7 0-2.3 0-.7 0-1.1.1-1.2-.2 0-.4.7-.2 1.5-.3.9-.1 1.4-1.1 1.7-2 .2-.8.5-.7 1-.2s1 .4 1 0l1.1-2c.6-.8 1-2 .3-2.7-.6-.8-2.1-.7-2.7-.2-.6.5-1 1-1.2 2.2-.1 1.3-.5.6-.5.2s-.5-1-.3-1.5c.3-.5 0-1 0-1s0-1.1-1.2-1.4a9.2 9.2 0 00-3.7.4c-1.2.3-1 1.3-1 1.3l-1.8.1c-1 .1-2 .5-3 .8-.9.2-1.2.3-1.2.7l.2 1.2s.7 0 1 .2c.5.3.3.7-.2.8-.4.2-.6.2-.6.8s.2.7.7.7c.4 0 1.4 0 2.5.5 1 .5 1.4 1.5 1.3 2-.2.6-1.7 1.3-2.5 1.3s-1 .2-1 .7 1 .5 1 .5l2.7.2c1.9.3 2.2.6 3 1.4.8.7.2.9-.2 1-.4.3-1 .8-1.6 1-.6.3-1 .7-1.6.8-.5.1-2 0-4.5 1s-3.4 4.5-3.4 4.5l1.5-.8 4-2.1c1.3-.8 1.3.4.6 1.6s.6 1 1 .6.9-.7 2.2-1.4c1.3-.6.8.4.8.4s-.4.8-.5 2.7c-.1 1.8 1.9 0 2.7-1.1 1-1.2 1.3 0 .7 1.3-.7 1.4-2 2.4-2.7 2.4-.7 0-1.3-.7-1.4-1.2 0-.4.3-1.8-.2-2.1-.4-.4-1.7 0-2.7.6-1 .6-1.1.1-1.4-.4-.2-.5.4-.7.2-1-.3-.3-.8 0-1.2.2l-3 1.5c-1.7 1-1.6 1.4-1.6 2.7s.3 1.6 1 3.3z"/>
+  <path fill="#d4af3a" d="M252.5 239.1l1-.5 1.6-.3c.8 0 .6-.5.5-.9-.2-.3-.5-.5-1.5-.5s-1.6.5-2.1.7c-.6.3-1.3.4-1.3.4l.5.7c.4.6 1 .7 1.3.4zm4 4l.9-.2 1.3-.6c.7-.3 1-.4 1.4-1.1.4-.8-.5-.8-1.6-1.1-1.2-.3-1.7 0-1.9.5 0 .4 0 1-.5 1.8s0 .7.4.7zm-.3 1c-1.1 0-2.4 1.7-2.9 2-.4.3-.2.6-.2.6a6.7 6.7 0 00.7 3.1h.8c.6 0 1-.3 1.7-.7a4.3 4.3 0 012-.8 6 6 0 002.3-.9c1-.5-.5-1.4-1.6-2.3a4 4 0 00-2.8-1zm-15 3.9c1-.1 1.4-.6 1.4-1 0-.6-.5-1-1.6-1-2.8.3-5.5-.7-6-3.5 0 0-1 1.7.8 3.7 1.7 1.9 4.6 1.9 5.5 1.8zm-9.4 43.7l.5.5h4.3c.7-.2.7-.9.7-1.3 0-.6.5-2.1 1-5 .7-2.8 1.7-4.8 2.1-6 .4-1.1-.4-1.5-.7-2.2-.3-.7-.8-2-.9-2.6-.1-.7-1.1-.6-1.7-.5-.5 0-.6 1-.7 1.7 0 .9-.5 3.4-.9 5.5-.4 2.2-2.8 5-3.5 5.7-.7.6-1.2.9-1.7.9s-1.5 0-2 .3-1 1-1 1.7c0 .6 1 1 1 1l1-.9c.3-.4 1-.4 1.7-.6.7-.1.7.2.5.5-.3.3-.2.4.3 1.3zm-6.5-.2c-.3 0-.6.4-.7.7h2.8a1.5 1.5 0 00-.3-.7c-.3-.4-1.2-.2-1.8 0z"/>
+  <path fill="#d4af3a" d="M229 291.4a3 3 0 00-.9.8h3c.1-.3.2-.7-.2-1-.7-.5-1.4 0-1.8.2zm26-1.2c-.3 0-.6.3-1 .6-.5.3-.7.8-.7 1.2a.3.3 0 000 .2h1.3a.2.2 0 000-.2c0-.4.2-.7.7-1.2.6-.4 0-.6-.2-.6zm2.5 1.3c0-.4-.1-.7-.4-.7-.3 0-.8.6-1.2.8l-.5.6h2l.1-.7z"/>
+  <path fill="#d4af3a" d="M269 277.7c1-.6.8-.8.9-1.5 0-.7 0-.9-.3-1.1-.4-.3-1.8-.9-3-.9s-3.6.3-4.6 1c-.9.5-1.3 2.8-1.3 4 0 1 .2 1.2.5 1.2s.9-.8.9-.8l1.9 2.7c.7 1 .4 1.5 0 2.3-.3.8-1.4 3-2.4 3.5s-1.6 0-2.8-.1c-1-.2-1.7.1-2.3.8-.7.6 0 1.1.3 1.1.4 0 1 0 1.4.5.3.4 0 1.3 0 1.8h5.5c.9-.4 1.6-1.7 1.8-2.4.3-.8 1.5-1.9 2-2.4.7-.6.7-1 .7-2.1a5.2 5.2 0 00-.7-2.7 5 5 0 01-.7-2.8c.1-.7 1.3-1.5 2.2-2.1z"/>
+  <path fill="#d4af3a" d="M260 264c.5.8.3 1-.5 1.2-.8.1-1.7.3-3 .2s-1.1 0-1.2.7a5.4 5.4 0 01-.8 2.9c-.8 1-1.7.5-2.2.2-.6-.4-.9-.3-1 .4l-1.2 2.2c-.6 1-1 1-1.4 1-.4-.2-.8-.8-1.2-.8-.4 0-1.1-.9-1.7-1.9-.6-1-1 .1-1.4 1-.4.9-.8 1.5-1.6 1.4-.8-.1-1.7-1.6-2.1-2.5-.5-1-.8-1.8-1.4-1.7-.7 0-1.9 1.4-2.6 1.8-.8.4-1 .3-1.3-.2-.4-.5-.8.2-1.3 1.3-.4 1.1 0 2.1.7 2.4.6.3 1.8-.6 2.7-1.1.8-.6 1.2-.4 2-.4.9 0 .8 1.4 1.2 3.4.4 2.1 1.6 2.4 1.6 2.4s.4.3 1.3-1.2c1-1.6 1-3.2 2-3.2.9 0 1 .2 1.8 1.5 1 1.2 1.7 2.1 2.2 1.2.5-1 1-2.3 1.6-2.8.5-.5 1-.6.5.3-.6.9-1 1.8.4 1.5 1.2-.4 6-2.4 8-2.8l5-.5 4.4-.3c1 0 1 0 1.1-.8 0-.7-.5-.5-2.4-.5-2 0-3.3.2-4.6.4-1.4.2-2 .2-1.8-.2.3-.3.7-.6 2.2-.8a63 63 0 016.4-.4c1.7 0 1.1.4 1 1.6-.1 1 .1 2.7.2 3.7s.2 1.4 1 2.8c1 1.5 4 2.4 5 2.8.9.5.7 0 .7-.8 0-.9.7-.9 1.5-.4.8.4 2 .8 3 1 1 .3 1 .5 1 1l.3 2.5c.1 1 0 1.3-.4 2l-2.1 2.4s-.8 0-2.5.4-2.2 1.2-2.4 1.9c-.2.7.3.9.4 1.1v.9h.4a8.8 8.8 0 01.6-1c.6-.7 2-.9 3-.4.7.3.7 1 .6 1.4h3.9l2-4.2c.5-.9.7-1.5.7-2.8 0-1.2.2-6.2 0-6.4-.3-.3 0-1.1 0-2.5-.1-1.4 0-2.4-2.6-2.7-2.5-.2-3.3-1.3-4.2-2.2-.9-.8-.6-2.8-1.3-5.2-.7-2.5-2.4-2.8-5.4-3.4a25 25 0 00-7.5-.5c-2.2.2-5 .6-6.6.4-1.5-.2-1.2.3-.7 1.2z"/>
+  <path fill="#d4af3a" d="M274.5 291.6a1.9 1.9 0 00-.6.6h2.6a1 1 0 00-.2-.8c-.4-.5-1.2-.2-1.8.2zm4.7-.1a2.4 2.4 0 00-1 .7h2.7v-.3c0-.4-.9-.9-1.7-.4zM214 293l.6 2.5h82.8a24.5 24.5 0 00.6-2.5h-84zm55.8-39.6c2.7 1.8 11 1.9 14.9 2.6 3.9.8 3.6 3.8 2.4 5.4-1.2 1.5-6.7 1.7-7.7 1.8.6.4 1.4 1.6 1.4 1.6l2.2-.2a12 12 0 006.5-2.2c2-1.7 1.9-4.3.1-6.1-1.7-1.8-4.6-2-7.6-2.3l-8.5-1.1c-3.3-.6-4.9-2-4.9-3.8 0-2 1.8-3 3-3.3 1.4-.4 3.4-1 5.3-.3 1.8.7 4 .8 7.6.3 3.6-.4 4.4-3 4.4-3s-.4.3-2.3.3c-1.8 0-3.1-.7-6.5-.8-3.3 0-4.5 1.2-6 1.7-1.6.6-5.8 1-7 3.7-1.3 2.7.1 4 2.8 5.7z"/>
+  <ellipse cx="248.1" cy="241" fill="#b96b29" rx="1.6" ry="1.5"/>
+  <path fill="#b96b29" d="M281.6 243.7c-2-.2-4.8.3-4.8.3s.6.4 1.3.4c.6 0 1.9-.1 3.9.3 2 .3 3.5-.6 3.5-.6l-3.9-.5z"/>
+  <path fill="#1d5e91" d="M262 282.2c-.5-.8-.7-.7-1.2-.2-.6.5-1.2-1.2-1.3-2.3l.4-4.4s-2.8.5-4.3 1-3 .7-4.2 1c-1.2.3-1.9.6-2.5.4a18.5 18.5 0 00-3.1-.2c-1.1 0-1 .2-2.1 1.3-1.1 1-1.4 1.7-2.3 3.7-.8 2-1.1 3.9-1.4 6.4-.2 1.6-.5 2.7-.7 3.3h13l.5-1.4a3.2 3.2 0 011.5-1.4c.6-.3 1-.3 1.2-.8.3-.6 1-1 1.6-1.4.7-.3 1.9-.1 3 .2 1 .3 1.4-.5 1.7-.9l1-1.7c.6-.8.2-1.4.2-1.4s-.5-.4-1-1.2zm20.8.4c-.2-.8-.1-.9-.5-1-.5 0-1.2-.2-1.9-.5-.6-.3-.6 1.5-.6 1.5s-1.5.1-3.2 0c-1.7-.3-3.8-1.8-4.5-2.3-.7-.6-1.5-1.7-1.5-1.7l-1 .8c-.6.3-1 1.4-1 2.5-.1 1 1.2 2.4 1.3 3.5.1 1-1.2 3.3-1.8 4.1-.4.6-1 2-1.3 2.7h6.2l.7-1c.6-.7 1.7-.9 1.7-.9l.3-.8c.2-.6.9-1.3 2.4-1.9 1.6-.6 3.4-.7 3.4-.7s.8-.6 1.3-1.5c.6-.8.2-2 0-2.8z"/>
+  <path fill="#d4af3a" d="M230.6 351.6c1.2.4 3.4-.4 4.5-1.8 1-1.3 1.4-3.3 2.2-4.5l1.4-2s-.2 2-1.2 4.5a16.5 16.5 0 00-1 7.3c.5 2.8 2.4 3.3 3.5 3 .8-.4 2-1.7 3.2-3.6l1-2c.7-1.5 1.4-3.8 1.7-3.7.7.1.3 1.7 0 2.8-.6 2.2-1.6 5.4-1.7 7.3-.1 2 .1 5.5 2 5.7 2 .1 3-1.6 4.1-5.6 1.1-4 1.3-5.2 1.8-5.2s.5 2.7.5 3.9a19.5 19.5 0 001.7 7.9c1 .8 1.7.7 1.7.7s.8.1 1.7-.7c1-.9 1.7-6.7 1.7-7.9 0-1.2 0-3.9.5-3.9s.7 1.3 1.8 5.2c1 4 2 5.7 4 5.6 2-.2 2.2-3.7 2.1-5.6 0-2-1.1-5.2-1.7-7.4-.5-2.1.3-2 1.7.8l1.4 2.7c1 1.6 2 2.6 2.8 3 1.1.3 3-.2 3.5-3 .4-3-1.7-11.2-1.7-11.2l.9 1.4c.8 1.2 1.2 3.2 2.2 4.5 1.1 1.4 3.3 2.2 4.5 1.8s1.3-2.5.4-6.4c-.8-4-4.3-6.1-6.8-9.2-2.3-2.9-4-8-4.3-8.7a28.7 28.7 0 00-8.4 6l-6.3 6.6s-1-1.3-6.2-6.7a28.9 28.9 0 00-8.5-6c-.2.7-2.4 5.6-4.7 8.4-1.1 1.5-2.7 2.6-3.9 4a13.2 13.2 0 00-2.5 5.6c-.9 3.8-.7 6 .5 6.4z"/>
+  <path fill="#d4af3a" d="M230.5 364.8l2.3-2s1-1 .8.8c-.3 1.7-.9 5.3-.5 6.8.4 1.6.6 3 2.5 1.8s2.3-1.9 3.2-2.8c1-1 2-1.4 1.7.1-.2 1.5-1 3.8-.6 6.9.3 3 1.8 3.5 3.8.9a34.4 34.4 0 003.7-6.3c.6-1.3 1.8-2.4 1.8 0 0 5.1 1.2 12.6 6.8 14.5 5.7-2 6.8-9.4 6.8-14.5 0-2.4 1.2-1.3 1.8 0a34.5 34.5 0 003.7 6.3c2 2.6 3.5 2.1 3.8-1 .4-3-.3-5.3-.6-6.8-.2-1.5.8-1 1.7-.1.9 1 1.4 1.6 3.3 2.8 1.9 1.1 2-.2 2.4-1.8.4-1.5-.2-5-.5-6.8-.2-1.8.9-.8.9-.8l2.2 2c1.5 1.3 3.6 1.4 3.6 1.4s1-5.3-1.3-8.5l-3-4.3s-1.3 0-2.2-.4c-1-.4-2-1.1-2-1.1v3l3.4 3.3c.7.8 2 2.1 0 .9a53.9 53.9 0 01-3.3-2.6s-.4 2.7-1.2 3.4c-.8.7-1.9.8-2.3.6l-.5-.2-.1 1s1.7 3.2 2 4.5c.1 1.2-.2 1.1-1-.5-.8-1.7-2.3-3.8-3-5-.7-1-1.7-1.8-1.6-.4.1 1.5-.5 4.1-1 5l-.8 1.4 1.2 4.4c.1.6 0 1.4-.6.5-.6-.8-2.2-4.5-2.2-4.5s-2.3 0-3-.7c-.6-.6-1.6-3.1-1.6-3.1s-.9 3.1-1.6 4.1c-.8 1-2.6 2-2.6 2l-.2 6.5c-.1 1-.2 1.4-.6 1.4-.4 0-.4-.4-.6-1.4l-.2-6.4s-1.8-1-2.5-2c-.8-1-1.7-4.2-1.7-4.2s-1 2.5-1.6 3.1c-.7.6-3 .7-3 .7s-1.6 3.7-2.2 4.5c-.6 1-.7.1-.5-.6 0-.6 1.1-4.3 1.1-4.3l-.8-1.3a13 13 0 01-1-5c.1-1.5-1-.8-1.6.4-.7 1.1-2.2 3.2-3 4.9-.7 1.6-1.1 1.7-.9.5.3-1.3 2-4.5 2-4.5l-.2-1-.4.2c-.5.2-1.6 0-2.4-.6-.7-.7-1.1-3.4-1.1-3.4l-3.4 2.6c-2 1.2-.6 0 0-.9a76.8 76.8 0 013.4-3.3v-3s-1 .7-2 1a8 8 0 01-2.2.5l-3 4.3c-2.2 3.2-1.3 8.5-1.3 8.5s2.1 0 3.6-1.4zm27.5 35.7c-1.5-1.7-2-2.5-2-2.5s-.4.8-1.9 2.5c-1.4 1.7-4.8 4.3-4.8 4.3A16.5 16.5 0 00256 417c2.2-1.4 3.5-3.3 4.9-5.3 1.6-2.4 1.9-6.9 1.9-6.9s-3.4-2.6-4.8-4.3z"/>
+  <path fill="#b96b29" d="M255.3 406c.1 1 0 3.6.7 3.6.6 0 .5-2.6.7-3.6l.1-3.5h-1.7s0 2.4.2 3.5z"/>
+  <path fill="#d4af3a" d="M256 161.4a54 54 0 01-17-2.2l-4.2 1a55.3 55.3 0 0021.2 3.4c9.3-.1 14.7-1 21.1-3.5l-4.2-.9a54 54 0 01-17 2.2zm21.9-5a43 43 0 00-4-2.7c-.7-.4-.1-1.4 0-1.8a18 18 0 015-1.7c1.6-.4 1.4-.8 1.4-.8s-1-1.1-7.2-1.8-17.1-.5-17.1-.5-11-.2-17.1.5c-6.2.7-7.2 1.8-7.2 1.8s-.3.4 1.4.8c1.7.5 4.8 1.3 5 1.7 0 .4.6 1.4 0 1.8a31 31 0 00-4 2.7c-.5.4-.5 1 .2 1 .8 0 .8 0 3-.4a101 101 0 0137.5 0c2 .5 2.1.5 2.9.4.7 0 .7-.6.2-1z"/>
+  <path fill="#d4af3a" d="M270.8 159c-4.2-.5-7-1-14.8-1-7.9 0-10.6.5-14.8 1 2.6 1 7 1.6 14.8 1.6s12.2-.5 14.8-1.6zm-19.4-61l3.5-.4-.2 3 3.2-.2-.3-2.9 3.5.5.2-2.8-3.7.3.6-3h-4l.7 3-3.5-.3zm10.4 7.2h-4.4v-3.7a6.4 6.4 0 00-1.3-.1 6 6 0 00-1.1 0v3.8h-4.5a4.9 4.9 0 00-.2 2.1H262v-.6a5.8 5.8 0 00-.3-1.5z"/>
+  <path fill="#1d5e91" d="M256.1 112c2.6 0 4.8-1.5 5.6-3.6h-11.2c.8 2.1 3 3.6 5.6 3.6zm2.4-10.2v2.6h3a5.6 5.6 0 00-3-2.6zm-4.8 0a5.7 5.7 0 00-2.9 2.6h3v-2.6z"/>
+  <path fill="#b96b29" d="M259.5 149.3l-3.5-1.6-3.5 1.8c-1.3.6-1.1.4-1.5 1.4-.4.8 0 1.2.6 1.4l4.4 2.3 4.9-2.3c.9-.4.7-.9.5-1.6-.3-.6-.8-.9-2-1.4z"/>
+  <path fill="#d4af3a" d="M259.9 150.4l-4-1.8-3.7 1.8 3.9 2zm-4-15s-.3 1.4-.7 2c-.4.5-.7 1-.6 1.8.1.7.9 1.1 1.4 1.1.4 0 1.2-.4 1.4-1.1 0-.7-.2-1.3-.7-1.8-.4-.6-.7-2-.7-2z"/>
+  <circle cx="256" cy="141.7" r=".7" fill="#d4af3a"/>
+  <path fill="#d4af3a" d="M253.4 138s1.3-1.4 1.7-2.3l.9-1.6.8 1.6c.5.9 1.7 2.3 1.7 2.3s1.8-1 2.8-4.3c1-3.4-.3-7-.7-10.8a162 162 0 01-.8-10.4 7.8 7.8 0 01-3.8 1.1 7.8 7.8 0 01-3.8-1.1s-.4 6.6-.9 10.4c-.4 3.9-1.7 7.4-.7 10.8 1 3.4 2.8 4.3 2.8 4.3z"/>
+  <ellipse cx="256" cy="130.4" fill="#b96b29" rx="3" ry="2.9"/>
+  <ellipse cx="256" cy="123.5" fill="#b96b29" rx="2.9" ry="2.8"/>
+  <ellipse cx="256" cy="117" fill="#b96b29" rx="2.8" ry="2.7"/>
+  <circle cx="256" cy="129.9" r="1.6" fill="#d4af3a"/>
+  <ellipse cx="256" cy="123" fill="#d4af3a" rx="1.6" ry="1.5"/>
+  <ellipse cx="256" cy="116.5" fill="#d4af3a" rx="1.4" ry="1.3"/>
+  <path fill="#b96b29" d="M255.9 358.5c.2 0 .2-.5.2-1.4l.4-4.3c.2-1.2-.3-1.2-.7-1-.3 0-.5 1-.5 1.5l.2 4.4c0 .7.2.7.4.8z"/>
+  <path fill="#d4af3a" d="M224.4 383c1.4-.8 2.6-1.7 5.6-3.8a12.6 12.6 0 004.2-4.2h-1c-.7 0-1.2-.8-1.2-1.7 0-.8 0-2.4.2-4.4.2-2-.3-3.5-.3-3.5s-1.3 1.2-3.3 2.3c-2 1-2.8.5-2.8.5l-.5-2-2 4c-1.2 2-4.5 4.4-6.8 6.2a30.8 30.8 0 01-6.9 4.2c-1.9.7-.8 1.6-.8 1.6s2 2 7 2.8c5 1 7.3-1 8.6-2z"/>
+  <path fill="#d4af3a" d="M241.9 381.1c-1.8-.2-2.9-.8-3.2-2.8-.2-1.2 0-6 0-6l-1.2 1.2c-.7.9-2.2 1-2.2 1s-.2.7-.9 1.8a10 10 0 01-3.2 3.5 53.8 53.8 0 00-5 3.4 30 30 0 01-4.5 3.3 7.5 7.5 0 00-3.8 5c-.6 2.5-.2 3.3 1.8 3.2 2-.2 2.2 0 5.4-.8s7.7-4.4 11-6.5c3.4-2 5.8-6.3 5.8-6.3z"/>
+  <path fill="#d4af3a" d="M250.7 384s-1.3-1.7-1.8-3.6l-1.5-5.8-1.5 3.5c-1 2.3-3 2.9-3 2.9s0 1-1.5 2.9a22.5 22.5 0 01-6 5 22.5 22.5 0 00-7 5.6c-1.6 2.3-1.7 4.7-1 5.7.8 1 1.9-.2 3.4-1 1.5-.7 5.9-1.4 12-4.6 6-3.2 7.9-10.6 7.9-10.6z"/>
+  <path fill="#d4af3a" d="M253.3 397.5c1.7-2.5 2-8.5 2-8.5l-1.5-1-2.3-3.1-2 4a16.2 16.2 0 01-4 4.6c-2.2 2.1-5.2 4.1-6.5 6.3-1.3 2.3-.6 6.7.2 8.1.9 1.5 2 1 3.3-.2l3.9-3.4c2.2-1.9 5.3-4.3 7-6.8z"/>
+  <path fill="#b96b29" d="M233.6 347a23 23 0 012.7-5 16 16 0 001.3-2.5s-2.1 2-3 3.4a15 15 0 00-1.7 4.2c-.4 1.5-.2 1.7.7 0zm8.5 1.6a53.6 53.6 0 00.5-2s.4-1.2.2-1.3c-.2 0-1 .8-1.7 2.7-.6 2-1.5 4.8-1.3 5 .1 0 2-3.2 2.3-4.4zm6.7 5.4l.4-1s.7-2.1.7-2.6-.2-1-.8.2c-.6 1.1-.6 2.2-.7 2.7-.2.5-.8 2.2-.6 2.4.2.1.6-.9 1-1.7zM228 374.4l-.9-.5-1.3 1.5c-.7.8-1.6 1.2-2.2 2a8.5 8.5 0 01-2.8 2.4c-1.4.7-2 1-1.7 1.1.3.3 1.2-.3 1.2-.3s.4 0 2.1-1c1.7-1 2-1.6 3.1-2.5 1.1-1 2.5-2.7 2.5-2.7zm7.3 8.7c.7-.7 1.3-1.2 1-1.5-.4-.4-.8-.4-1.4.1l-3 2.8-2.2 1.7c-.7.6-2.4 1.5-3.2 1.9-.8.5 0 .5 0 .5l1.3-.5 2.6-1.1 1.8-1.1a25.9 25.9 0 003.1-2.8zm8.4 5.8c.6-1.1 0-.8-1-.4-.8.3-2.8 2.5-4 3.3-1.2.8-2.2 1.2-3.1 1.7-1 .5-1 .7-1 1 0 .2.5.2.9 0l1.8-1 1-.2c.6 0 1.4-.7 2.6-1.7 1.2-1 2.3-1.7 2.8-2.7zm4 7.7c-1.6.9-4.1 2.9-4.8 4.2-.7 1.4-1.1 2.3-.9 2.6.2.2 1-.3 1.3-.8.3-.6 1-1.4 1-1.4s2.5-2.5 3.4-3a8.9 8.9 0 002.9-3.3c.3-1 0-1.5 0-1.5s-1.5 2.3-3 3.2z"/>
+  <path fill="#c52126" d="M208 181.3a23.7 23.7 0 00-19-1.6c-2.3.6-4.2.7-6 .2-2.8-.7-5-3.2-5.7-6.3 0 0-2.6 3.3 0 6.8a7.7 7.7 0 004.6 3.2c5.5 1 10.8-2.3 15.3-2.6 4.4-.2 7.8 2.5 7.8 2.5s1 .9 2.5 0c1.4-.8 1.8-1.5.5-2.3z"/>
+  <path fill="#d4af3a" d="M192.3 338.7l-1.3-.2a16 16 0 01-2.8-.9c-.5-.2-1.2-.2-1.7.3s-4.4 2.9-4.4 2.9h6.5c2.2 0 3.7-2.2 3.7-2.2z"/>
+  <path fill="#d4af3a" d="M210.5 337.6v-.7l-.8-1.8s-1 .6-2 1.6c-1.3 1.3-2.6 3.2-3.2 4-1.1 1.3-2.6 2.6-1.3.4s1.7-3.2 2.7-4.6c1-1.5 1.8-2.1 1.7-2.2l-3.7-.6c-2.7-.3-4.4-1.4-5.6-2.1l-3.5-2s-4.6 2-6.3 2.4c-1.8.5-2.8.7-1.1 1.5 1.7.9 3.1 1.1 4 1.6.7.6 3.3 1.4 4.8 1.4 1.6 0 4.2 0 3.2 1-1 1.2-2.2 3.3-3.3 6.4a21.6 21.6 0 00-1.2 7.4l.2 2.7s1.9-2.1 7-5.3c5-3.2 7-4.3 7.9-4.7 1-.4 1.4-.4 1.2-1.6l-.7-4.8z"/>
+  <path fill="#d4af3a" d="M230 322.1l-1-.4a1.1 1.1 0 00-.2 0c-.6.4-3.7 2.4-5 4.5s-2.5 2.2-1.1 0a19.1 19.1 0 013.5-4.4l1-1a56.4 56.4 0 01-7.8-4.5c-.3.7-1 2-1.7 2.7-1 1.1-3.5 2.1-3.5 2.1s2-2 2.6-3.5l.8-2.6a33.9 33.9 0 01-5.1-4.9 19 19 0 01-4.4 7.9c-4 4.5-12 6.7-12 6.7s-2.8.3-.5 1c2.2.5 3.8 1.5 8.3.8 4.4-.8 4.7-1 5.3-1.2.6-.1 2.2 0 0 .8s-7.4 1.6-9.3 1.4c-2-.1-4.7-.6-1.9 1s4 2 5.7 2c1.8 0 2.5.6 4.2.6s2.1-.3 3.3-.6c1.2-.2 2 .2 2 .7s-1.6 1.8-1.6 5c0 3.3.3 5.5.6 6.4.3 1 1 2.5 1.5 3.4.5 1 .7 1.8 1.1 0 .5-2 1.6-4.7 2-6.6.4-1.8.7-1.9.8-2.9.2-.9 1.2-1.6.8.1a142.3 142.3 0 00-1.4 5.5c-.4 1.5-1.2 4.4.2 2.1 1.5-2.2 6.8-8.3 7.7-9.3 1-1 1.6-2.1 2.3-3 .6-.9 2.5-2 3.4-3.4.8-1.2 3.2-3.5 4.2-4.3L230 322zm-74.2-137.7c.1 3.3 3.8 9.6 5.8 13 2.1 3.3 2.7 4.6 2.3 4.8-.3.3-1.2-1.5-2.3-3l-5.2-7.6c-1.9-2.6-4.6-9-5-9.5-.3-.6-.5-1-1.4-.2-1 .7-2.7 7.6-.6 12.3 2.2 4.8 5.4 8.2 6.7 9.8 1.4 1.7 3.2 4.2 2.9 4.5-.3.2-.8-.5-2.4-2.2a152.9 152.9 0 01-6.2-6.8 49 49 0 01-4-6.5c-.3-.5-.7-.4-1-.1-.5.6-1.4 2-1 5.7.5 5.2 3.3 8.2 5.7 10.9 2.4 2.6 4.8 4.8 4.5 5.2-.4.3-2.9-1.9-4.6-3.5-1.7-1.7-6-5.7-6.8-6.9-1-1.1-2.3-.6-2.2 4 0 4.4 5 9 7 11.5 2.2 2.5 4.7 4 4.5 4.5-.2.5-2.3-.8-3.6-1.7-1.4-1-6.4-4.2-7.4-5-1-.6-1.5.7-.3 5 1.3 4.3 5 7.7 7.2 9.3 2.3 1.6 5.8 3.5 5.6 4-.2.5-1.7-.1-3.8-1.1-2-1-4.5-2-6.3-2.5-1.8-.5-1.8.8-1.8.8s-.4 3.7 2.3 6.6a14.2 14.2 0 008.5 4.6c2.8.5 3.3.6 3.2 1 0 .5-.4.5-1 .5-.7 0-3.3.3-5.7.3s-3.7.6-3.7 1.7c0 1-.1 2.5 3.5 4.9 3.7 2.4 7.7 2.8 9.5 3.1 1.7.4 1.7.5 1.4 1-.4.5-1.2.5-3.9.8-2.7.2-4.3 1.3-4.7 2-.4.8.2 2.9 2.4 4.4 2.2 1.5 5.1 2 9.4 1.7 4.3-.3 5.3-.3 5.5.4.1.7-1.3.9-3.4 1.3-2.2.3-3.8.3-5 1.3s-.3 3 1.7 4.6c2.1 1.5 7.2 1.5 9.4 1.3 2.1-.1 5.4-.9 5.6-.3.2.6-1.5 1.4-3.8 2.2-2.2.8-2.8 1.3-3.2 2.2-.5 1-.1 1.8 2.5 2.8 2.7 1 6.5 1 8.5 0 2-.8 3.1-1.2 3.5-.8.3.3 0 .7-.5 1.2a9.8 9.8 0 01-4.3 2.4c-2.2.6-2.5.6-3.2 2.4-.8 1.8 1.2 3.2 5.2 3.3 4 .2 9.3-1.4 11-2.4 1.7-1 2.4-1.2 2.7-.9.3.4.2.6-.7 1.2-.8.7-3.5 2.6-4.9 3-1.4.3-1.5 1.3-1.5 2.3 0 .9-.4 2.8 3.2 3.6 3.6.9 7.8.2 11.6-2.5a8.8 8.8 0 002.4-2.2c-.3-3.7-.1-6.2.3-8.5a14 14 0 01-3.6-.9c-2.2-.8-3-2.8-3.5-4-.5-1-1.3-1-2.1-.7-.9.3-1.7.7-3 .6a8.4 8.4 0 01-5.6-3c-1.8-2.2-1.5-4.3-1.6-5.4 0-1-1.7-.3-2.6-.3-.9 0-3.3-.3-5.6-1.9-2.3-1.6-2.3-3.7-2.5-4.6-.2-.8-1.2-1.4-1.9-1.7-.7-.3-1.8-.6-3.4-1.8s-2.1-3.8-2.2-4.7c0-.8-1-1-4.2-2.6s-3-5-2.8-6.4c.1-1.4 1.6-2.5 1.6-3s-1-.6-2.1-1.3c-1-.6-3.8-1.7-3.9-5.7 0-4 2.6-4.4 2.6-4.4l-1.6-.9c-1-.6-4-2.6-4-5s1.1-3.4 1.9-4c.8-.6 3-1.1 3-1.1s-1.4-1-2-2.8c-.6-1.8-.8-4.1.6-5.8 1.3-1.6 3.6-1.6 4.8-1.6s2.3.7 2.7.3c.4-.4.5-.6.1-1.6s-.5-3.2-.2-4c.4-.8.5-2.3 3.5-3.3s6.3 1 7.3 1.6.6-.8.6-1.8-2-3.5-4.4-7a77.8 77.8 0 01-10.8-25.1c-.4-1.8-1-1-1-1s-.8.3-2.4 4.5a26.7 26.7 0 00-1.8 11.2z"/>
+  <path fill="#d4af3a" d="M209.6 257.5a8 8 0 01-6-3.8c-1.9-2.7-4.6-3.3-9.4-3.2-4.8 0-7-2.2-8.2-5.5-1.2-3.4.2-7.1 5-9.5 5-2.4 7.1-5.1 7.3-9.2.2-4.2-4.9-9.3-9.9-15.1-5-5.8-9-14-9-14s-1.5 1.9-1.5 3.8c0 2 .8 4 0 4.5-.7.6-1-.8-4-2s-5.3-1.5-7.1.6 0 5.8 1.7 7.5c1.6 1.8 3 3 2.5 3.7-.4.7-3-1-3.7-1.6-.9-.5-2.8-2.6-5.7-2.4-2.8.3-3.8 1.1-4 3.5-.4 2.4 2.5 4.6 4.3 5.5 1.9.9 2.6 1.7 2.1 2-.4.5-.9 0-1.7-.2-.8-.3-3.1-.5-4.6 0-1.5.6-3.9 2.6-1.7 5 2.2 2.6 6.8 3.5 7.8 3.7.9.2 1.3-.1 1.4.6.1.8-1.9.8-4.4.9-2.5 0-3.2 2.4-2.8 4.3.3 1.8 4.5 3.8 6.8 4.2 2.3.4 3 0 3.3.7.2.6-.3.9-1.6 1.2-1.3.4-3.8.7-4.2 2.7-.5 2-.6 3 1.4 4.7 1.9 1.8 5 1.5 6 1.3.9-.2 2-1.2 2.9-.3.9 1-.8 1.7-2.4 2.8-1.6 1-1.5 3.2 1.2 4.7a8.2 8.2 0 006.4.5c1.1-.3 2.6-2 3.3-1 .8 1.1-2.3 1.5-3.6 3-1.2 1.6-.8 4.2 1.8 5.8 2.6 1.5 6.8.4 7.5-.2.8-.7 1.7-1 2.2-.4.6.6-.2 2-.8 3.3-.5 1.3-1.5 5 2.3 6.6 3.9 1.4 7.4-1.9 8-2.5.7-.7 1.3-.8 1.8-.5.6.3.3.8-.1 1.5a3.9 3.9 0 001.3 5.3 6.8 6.8 0 005 1c.6-2.1 1.3-4.4 2-7.6h-.5c-.4 0-.4.5-.4.7 0 .3 0 .4-.3.4s-.3.2-.8.6c-.5.3-1 .7-1.2.5-.2-.2 1-.8 1.3-1.2.4-.4 1-1 1-1.5.1-.5.3-.7 1-1.3l.5-.5c.4-2.2.9-4.7 1.3-7.7a61 61 0 00.4-5.9h-1.2zM131.1 200c4 8.3 9.9 13 9.9 13s-.8-2.1-1.1-3.5c-.4-1.4-.1-3-.1-3s-1.5-2-4.1-6c-2.7-4.2-4.2-10.3-4.2-10.3s2.5 6.1 4.5 9.3a50.3 50.3 0 004.2 6s.8-3 1.3-3c.6-.2 1 .2 1.5.9.5.6.9.5.9.5l-1.7-3c-.5-.7-1.2-1.5-1.6-2.3-1.6-2.4-4.9-7-6.6-11.6-1.7-4.6-5.4-16.1-6-19.5-.6-3.4-1.3-1.6-2 1a29.4 29.4 0 00-.9 11.3 57.1 57.1 0 006 20.2zm5.3 22.4a145 145 0 003.8 2.7l-.6-1.9-.3-3-3.1-2.7a44.2 44.2 0 01-6-6.4c-3-3.8-.6-1.5 2 1.3s7.4 6.8 7.4 6.8v-1c0-.8.3-1.4.7-2 .5-.6.3-.6-2.5-2.7a79.6 79.6 0 01-18.7-26.1s-1.6 9.5 4.2 20c5.8 10.5 11.5 13.9 13 15zm30.4 60c3.2-1.2 2.3-4.3 2.3-4.4l-3.7 1.3c-1.8.7-6.2 2-8 2-1.7 0-1.7-.2-1.8-.4 0-.3 1.4 0 3.9-.5s6.9-2.8 7.7-3.3c.7-.5.6-.6-.5-.7a4.8 4.8 0 01-2.5-1c-.4-.3-1.6.2-4.5.9a53.3 53.3 0 01-23 .8c-.6-.2-1.4.2.8 3.9 2.2 3.7 10 5.7 15.4 5.6 5.3 0 10.7-3 13.9-4.1zm-14.3-7.6c5.5 0 7.6-1.6 7.6-1.6s0-.3-.7-1.4c-.8-1.1-.6-3-.6-3l-3.7.5c-2.3.4-5 .7-8 .2-2.9-.6-1.6-.9.7-.6 2.4.3 7-.6 8.4-1 1.4-.6.8-1-.2-1.4-1-.3-3.6-2-3.6-2s-6.8.8-13 .1c-6.3-.7-10.2-2.3-11.5-2.5-1.3-.2-1.2.3-1.2.3s-.4.6 1.8 4a18 18 0 0010 6.6 53.7 53.7 0 0014 1.8zm-1.4-13l-.6-1.4c-.3-1.2.6-2 .6-2s-1.3-.4-5.4-1c-4.1-.4-4.4-.8-7-1.3-2.4-.6-4.1-1.3-4.1-1.6 0-.3.8.1 2.4.7 1.4.5 7.8 1.2 10.5 1.6 2.7.4 4.2.6 4.6.4.5-.3 2.2-.7 2.2-.7l-2.6-.6a9 9 0 01-3.4-1.4c-.8-.5-1-.6-4.4-1-3.4-.4-6.1-1.5-12.2-3.7-6-2.2-10.6-4.8-11.8-5.8-1.3-1-1.2-.3-.8 1 .3 1.2.3 2.8 3.3 6.4 3 3.6 4.6 5.1 12.3 8 7.7 2.8 16.4 2.4 16.4 2.4zM128.3 243a43.3 43.3 0 0016.5 6.8c.3-.4-.4-2 0-3 .4-1.2 1.1-1.2 2.7-1.3 1.7 0 .6-.4.2-.4l-3.2-.8c-2.7-.7-5.5-1-9.2-2.5-3.8-1.4-5-2.5-4.8-2.7 0-.3 1.7.9 5.2 2.2 3.5 1.3 7.5 1.8 9.7 2.3s.3-.5-.7-1.1c-1-.6-2.5-2.9-2.5-2.9s-2.5-.4-6.5-1.6c-4-1.2-7.3-2.6-10.6-4.5-1.2-.6-2.3-1.5-3.5-2.3l-5.5-4c-1.3-1-1-.2-.8.4.2.6 1.1 3.5 3.3 6.6 2.1 3 2.8 4 9.7 8.8zm-1.2-13.5c6.8 5.3 12.5 7 13.5 7.4 1 .4 1-.1.7-.7-.2-.6-.3-2.4-.3-2.4l-5-3c-2.8-1.5-5.7-3.6-7.7-5-2-1.3-.8-1.2-.2-.7.6.5 3.4 2 6 3.8l7 4.1s0-.9.6-1.4c.6-.6 2-.4 2-.4l-1.1-1.4c-.5-.7-2.7-1.4-5.2-2.6a62 62 0 01-10.2-7.2c-3.3-2.8-9.7-9.8-10.1-10.3-.5-.6-.7-.5-.8.2 0 .7-.3 1.2.4 4.4s3.7 9.9 10.4 15.2zm23.8-50.3l2.2 3.8a55.5 55.5 0 011.5 2.5V184a11.7 11.7 0 010-3.7c.1-.9.3-1.7.2-2.4 0-.9-.3-1.6-.4-2-.2-1-1.2-4.9-1.7-7.7a62 62 0 01-.9-10.2c0-3.5.5-1.7.5 0s.2 4.3.8 8.3c.5 4 2.2 10 2.2 10s0-.9.6-2.2c.5-1.4 1.3-2.9 2-4.5s.4-2 .4-2-2.4-11.3-3-16.6c-.6-5.3-1.6-19.4-1.6-19.4-3.5 3.5-6 12.6-6.5 21.3-.3 6.5.7 12.5 1 15a38 38 0 002.7 11.3zm-7.6 17.8c0-2.6.7-4.5 2.3-5 0 0-1.4-2.6-2.7-6.3a49 49 0 01-2-8.2c-.9-6-1.6-12.3.2-2 1.8 10.2 4 13.8 4 13.8l2.6 4.3a18.4 18.4 0 01-.3-5.3c0-2 .3-4.8 1-7 0 0-3.2-6.3-5.2-13.9a87 87 0 01-3.4-24.1s-3.3 2.4-4.4 14.8a73.5 73.5 0 003.8 28.8 202.7 202.7 0 004 10zm35.4 94.5l-2-1.3c-1.5-1-1-4-1-4l-1.6 1.1c-1.2.8-2.4 1.7-4 2.3L167 291c-1 .3-.8 0 0-.5.9-.5 1.1-.8 3.2-1.6 2-.8 6.1-4.4 6.1-4.4l-2.6-.1c-1.7-.1-3.9-1-3.9-1s-1.7 1.6-8.5 4.5c-6.8 3-12.6 3.7-12.6 3.7s.7 3.5 4 4.7c2.7 1.1 6.5 1.9 13.8.1a46.5 46.5 0 0012.3-4.8zm9 7c.6-2.9-1-4.9-1-4.9l-1.4 1.1c-1 1-2.6 2.7-5.4 4.1-2.9 1.5-4 1.4-1.2-.1s6.9-5.7 6.9-5.7l-1.1-.4c-1-.4-3 .3-10.6 4.9-7.7 4.6-12.2 4.8-12.2 4.8s3.4 4.1 12.7 3.8c9.4-.3 12.7-4.7 13.3-7.6zm17.6-3.4s-1 1.5-2.4 2.4c-1.4 1-5 1.5-5 1.5l-1 1.3a15 15 0 01-3.9 4.3c-1.6 1.2-4.2 2-4.3 1.7-.2-.3 1.5-1 3-2 1.7-.9 3-2.7 4.2-4 1-1.2-.5-1-.5-1h-3.7c-1.8-.2-1.5 0-2 .8-.5.9-1.2 1.7-2.6 3.2l-4.7 5.4c-1 1.3-.2 1.6-.2 1.6s.4.8 4.6 1.3c2.5.2 5.3 0 8.2-1.8a25 25 0 005.6-4.8c5-5.4 4.7-9.9 4.7-9.9zm2.2 11.3l-1.5 1.9s.7-2.2 1.3-3.3l1-1.4a27.6 27.6 0 01-1.7-5c-.5 1.5-1.9 5.8-3.7 8.6-2.1 3.5-4 4.7-2.8 5.6 1.3 1 3.7 1.2 6.4-.2a6.8 6.8 0 003.7-5.3 26.4 26.4 0 01-1.3-2.3c-.3.2-.8.6-1.3 1.4z"/>
+  <ellipse cx="206.9" cy="169.2" fill="#d4af3a" rx="1.9" ry="1.8"/>
+  <path fill="#d4af3a" d="M203 165.9c1.7 0 2.6-.9 4.5-.7a28 28 0 019.1 3.6 15.5 15.5 0 0010.5.9c1-.3 2-1 3-1.5 4.6-2.5 3.5-7.6 3.5-7.6a17.8 17.8 0 01-11.4 3.5l1 .8c.6.7 1.8 1.5 1.4 1.8-.4.3-2-1.3-3.4-2.3a20.6 20.6 0 00-7-3.4c-3.4-1-7.4-1.1-10 .3-2.7 1.5-2.9 3.3-2.5 4 .2.5.7.6 1.2.6zm49.2 37c-.8-.2-2.2-.5-4-2.2a76.4 76.4 0 01-6.7-7.3c-.5-1-.3-1.8 1-2.3 1.2-.5 2-2 2-2s-2.7-1.1-4.5-2.4-6-5.2-6.6-6.1c-.6-1-.3-1.1.5-1.4 1-.3 1.1-1 1.1-1s-2-1.1-3.8-2.6a75.5 75.5 0 01-4.3-4c-2.7 1.2-7 .7-9.3.3-4.1-.7-7.1-2.4-7.1-2.4l-.7 1.9c-.5 1.3-2.4 2-4.3.7-2-1.2-1.5-4-1.5-4s-1.5-.9-4.7-2c-3.1-1.2-5.7-1.4-8.2-.2-2.6 1.2-3.8 4.7-3.8 7.3 0 2.7 1.4 1.6 1.6 1.2.3-.4 1-2.3 4.1-2.8 3.3-.5 6.2 1 9.8 4 3.7 3 4.5 3.3 6.3 5.2 1.9 1.9.4 3-2.7 4-3.2 1-7.2-1-7.4-1-.6.3 1.4 3.1 4.1 4.2 2.7 1 6.2.3 8.9-.7 1.8-.8 2.2 0 2.7.5 3 3.2 3.7 6 4.2 9.7a4.3 4.3 0 002.8-3.3c.1-.6.3-1.9 1.3-1 1 1 1.9 6.3 1.9 8.7 0 2.5-.8 5.7-.8 5.7l.8-.1c.4 0 1.3-.6 2.5-1.2 1.1-.7 1.2 0 1.2 1.4 0 1.3.4 3.8 2.2 8.3 1.7 4.4 4.3 5.9 4.3 5.9s.5-.9 1-2.7c.5-1.7 1-5.2 1-8.2 0-3-.9-9.4-.9-9.4s3.7 4.4 7.5 5.5c3.8 1.1 7.6.5 9.2-1.4 1.6-1.8.1-2.6-.7-2.8z"/>
+  <path fill="#d4af3a" d="M227.2 214.5s-1.2 2.5-1.8 3.4c-.6 1-.9 1-.9 1s1.2 1 2.8 1.6l3.2.8s-1.9-2.6-2.5-4.4l-.8-2.4zm22.9-1.5l-1-2.3a16 16 0 01-8.7-1.8s1.8 3.6 3.5 4.8c1.8 1.3 2 1.3 2 1.3s-1.7.3-4-2c-2.4-2.3-3.5-5-3.5-5s.6 6.2-.4 10l-1.1 4.2s5 1 10.5-.6 6-2 6-2 .6-.2-.3-1.4a29.9 29.9 0 01-3-5.2z"/>
+  <path fill="#b96b29" d="M240 199.4l-1.9-2.4s-.6.6 0 1.4 2.9 3 4.5 4a11.8 11.8 0 003.3 1.2v-.3s-4.2-2-5.9-3.9zm-6.8 12.9l-.4-9c0-1-.7-.8-.7-.8l-.8.4 1.6 11.3c.2 1.2.8 1.1 1.1 1-.6-.2-.7-2.6-.8-3zm-10.4-33.6c-.6-.6-2-1-.7.5 1.4 1.5 3.2 3.4 3.7 5s.8 3.5 0 3c-1-.3-1.6-.3-2.5-1.1-1-.8-2.8-2.1-3.5-2.3-.7-.3-2 0-1 1.1a26.4 26.4 0 004.2 3.7l4.2 2.9 2.1 1.4s-1-6.4-2.7-9.1a28 28 0 00-3.8-5zm-34.1 105.9c-1.3 1-3 1.4-3 1.4s-.8 0-.8.2 1 0 1.9-.1c1-.2 2.3-1.2 2.8-1.5.5-.4 1.2-.8 1-1.5-.3-.6-.7.5-2 1.5zm11 5.9l-2.4 2-1.4.6c-.7.3-.9.7-.9.7s.2.2 1 0 2.9-1.8 3.6-2.5c.7-.6 1-.8.7-1-.2-.3-.4-.1-.6.2zM155 211.1c.4.5.9 1.1 1 1 .3-.3 0-.5-.5-1.1l-.8-1-1.2-1.6c-.4-.4-1.1-.7-.3.4l1.8 2.3zm-3.4 7.4l1.5 1.4c.5.6.9 1.2 1.2 1 .3-.4-.8-1-1.3-1.7a8 8 0 00-1.5-1.5 10.6 10.6 0 00-1.4-.8l1.5 1.6zm1.3 12c.8 1 2 1.2 2.2.8.2-.3 0-.6-.8-1a24.2 24.2 0 01-4-2.7c-.3-.4-.8-.7-1-.6 0 .1 1.2 1.6 1.6 1.8.4.2 1.1.9 2 1.7zm2.4 9.7c0-.4 0-.6-.6-.6l-1.7-.2s-1.4-.5-1.5-.3c0 .3 1.2.8 1.7 1a3 3 0 011.5.4c.3.2.6 0 .6-.3zm1 10.4c-1.4 0-2.7-.3-2.8-.1-.1.2.7.6 1.4.8.8.3 2.2.4 3.2.4s1.1-.1 1-.6c0-.5-1.2-.5-2.7-.5zm11.8 11.5c-.2-.3-.7 0-1.6 0-.8.3-2.2.5-3 .5a134.6 134.6 0 00-2.5-.1l-1 .2c0 .3 1.3.2 3.2.4 1.8.2 3-.2 4-.3.8-.1 1.2-.5 1-.7zm4.9 8.1c-1 .4-1.6.4-2.3.4l-2.4.3s-.8.2-.7.5c.2.3.4 0 1.1-.1h2.5c1.2 0 2-.4 2.7-.6.8-.1 1.6-.5 1.2-1-.4-.5-1.2.1-2.1.5zm9.5 6.2l-2.6 1.9-1.2.7c-.8.4-.7.6-.6.8.1.2.6-.3 1-.5.5-.2 2-1.2 2.7-1.8.8-.6 1.7-1 1.6-1.5-.2-.5-.4-.2-1 .4zm-15.8-79.8l1.8 2.5c1.6 2 .8 0 .4-.5s-2.8-3.9-3.7-4.8c-.8-1-.9-.5-.5.1l2 2.7zm-3.4 10.5c.2-.2-.3-.5-1.3-1.6a536.8 536.8 0 01-2.8-3.6s-.5-1.1-.7-1c-.1.1.7 1.9 1.4 2.6.8.8 1.8 2.3 2.3 2.9.5.6.8 1 1 .7zm4.5 19.7c0-.6-1.9-.5-2.7-.7l-2.3-.5s-1.8-.3-1.8 0c0 .2.3.4 1.3.6l3.5.8c1.1.1 2 .4 2-.2zm-4.5-10.7l2.6 1.9c.7.3 1.2.8 1.6.4.3-.4-.3-.7-1.4-1.1-1-.5-1.5-1-1.5-1l-1.2-.5c-.5-.3-1.4-.6-.1.3zm10.5-7l-1.4-1s-1-.8-1-.5c-.3.3 1 1.1 1.5 1.7.6.5 1.7 2 2.2 1.7.5-.3-.5-1.2-1.3-1.9zm-6.9 27.5l-1.7.4c-.6.2-.7.5.5.5s1.7-.3 3-.5c1.1-.3 1.5-.4 1.3-.8-.2-.4-.8-.2-1.3-.1l-1.8.5zm1.9 10c-.1.1.8 0 1.4-.3l2.7-1.1c.8-.2.8-.4.8-.8 0-.5-.8-.1-1.8.2s-2.2 1.3-2.2 1.3l-1 .6zm12.8 6c.8-.6 1-1 .7-1.3-.3-.2-.6-.2-1.3.4l-2 1.5-1.3.6c-.6.3-1.2.7-1 1 .2.2 1.3 0 1.9-.6.5-.4 2-1.1 3-1.7zm6 8c.3-.4 1.4-.8 1.9-1.1.5-.4.8-1.4.4-1.6-.4-.1-.6.5-1.5 1.1l-3.7 2.5-.7.3c-.8.3-.5.6.2.5.7-.1 1-.1 1.9-.7.8-.7 1.2-.8 1.5-1zm9 7.5c.7-.3 1.8-1.3 2.3-1.8s1.2-1.1.8-1.4c-.4-.3-.8 0-1.4.7-.7.5-2.3 2.2-2.3 2.2l-1.1.8c-.9.7 0 .6.3.3.4-.3.6-.5 1.3-.8z"/>
+  <path fill="#d4af3a" d="M232.3 150.9l-2.7 2.2 3.3 1.4 3.6-2.5z"/>
+  <ellipse cx="244.4" cy="151.6" fill="#b96b29" rx="3.4" ry="3.3"/>
+  <ellipse cx="244.4" cy="150.8" fill="#d4af3a" rx="2.1" ry="2"/>
+  <path fill="#d4af3a" d="M237.3 140.2c.9.3 2 .2 2 .2s.4-1.6-.5-2.3c-.8-.8-1.6-1.3-2-1.8l-.7-.6v2.1c-.1.8.3 2 1.2 2.4z"/>
+  <circle cx="239.1" cy="141.8" r=".6" fill="#d4af3a"/>
+  <path fill="#d4af3a" d="M234.4 141.2l-.8 1s.7 0 1.2.4c.6.4 1.4.8 2 .7a1 1 0 00.9-1.2c-.2-.5-.5-1-1.6-1.3-1.1-.4-1.4 0-1.7.4z"/>
+  <path fill="#d4af3a" d="M236.8 145.2c-2.1.2-5-2.2-5-2.2-.3 2-1.4 3-3.3 3.3h.2s1.7 1 3.7 1.2c.9.2 1.7 0 2.7-.2a10 10 0 003.2-1c1.3-.8.9-2.9.9-2.9s-.2 1.6-2.4 1.8zm-8.4-2.1c-.9-.4-2.2-1-2.8-1-.5 0-1.3-.2-1.2.8.2 1 1.2 1.5 2.2 1.6 1 0 1.6-.4 2.2-.7.6-.3.5-.4-.4-.7zm-6.7-3.7c-1-.7-1.9-.9-1.9-.9s-.6 1.7-.2 2.7 1 1.3 2 1.3c.9 0 2.3-.5 1.9-1.2a5.4 5.4 0 00-1.8-2z"/>
+  <ellipse cx="222.5" cy="144.1" fill="#d4af3a" rx=".8" ry=".5"/>
+  <path fill="#d4af3a" d="M224.6 135.8c-.6-2.9-.5-6 2.2-9.9 2.7-4 7.4-5.5 7.4-5.5l1.6-1.9c1.5-1.6 4.5-3.6 4.5-3.6l-5.5 1.5v.1a2.4 2.4 0 01-2.4 2.5 2.4 2.4 0 01-1.4-.4 24 24 0 00-5.6 3.1c.2.4.4.8.4 1.3a2.4 2.4 0 01-2.5 2.5c-.4 0-.7-.1-1-.3a10.8 10.8 0 00-.4.5 25 25 0 00-1.7 4 2.6 2.6 0 011 2.1c0 1.4-.9 2.5-2 2.5a4 4 0 000 1.6c0 .8.3 1.3 1.7 1.7 1.4.4 3.3 2.8 3.3 2.8.1 0 1.1-1.8.4-4.6z"/>
+  <path fill="#d4af3a" d="M233.2 117.6c.5-.4.6-1 .2-1.4-.4-.4-1.2-.3-1.7.1s-.6 1-.2 1.4c.4.4 1.2.3 1.7-.1zm-9 6.1c.5-.5.6-1.3.2-1.8-.5-.4-1.3-.4-1.9.2-.6.5-.7 1.3-.2 1.7.4.5 1.3.4 1.9 0z"/>
+  <circle cx="218.8" cy="131.4" r="1.4" fill="#d4af3a"/>
+  <path fill="#d4af3a" d="M248.9 112c-.8.2-2.1.6-4.1 1.7 1.4 0 2.5.9 2.5 2s-1.3 2.4-2.6 2.4a2.4 2.4 0 01-2.4-2.3c0-.3 0-.6.2-.8l-1.9 1.2c-4.4 3-5.5 4.5-7.7 8.5-2.2 4.1-3 8.6-2 11.2 1 2.7 4.4 3.2 4.5 3.2 0 0-.4-.4-.5-.9l.3-1.7v-2.2s.8-.1 1.3.4l1.5 1.8 1.7 1.6s.7-1 .7-2.2c0-1.2-.8-2.5-1-4.6-.1-2 1-5.8 3-8.6a24 24 0 017-5.7 2.2 2.2 0 001.4-2l.3-2c0-1.3-1-1.2-2.2-1z"/>
+  <path fill="#d4af3a" d="M244.5 116.8c.8 0 1.5-.7 1.5-1.4 0-.6-.6-1.1-1.4-1.1-.8 0-1.4.5-1.4 1.1 0 .7.5 1.4 1.3 1.4zm6.6 26c1 .4 2.2.2 2.8-.2.6-.4.8-1.3 0-1.9a2.1 2.1 0 00-2.2-.2l-2 1.4s.3.5 1.4.9z"/>
+  <path fill="#d4af3a" d="M254.5 144c-.4.6-.7 1-1.9 1s-2.5 0-3.2-.8a8.2 8.2 0 01-1.3-1.9h-1.4s-.4 1.9-1 2.4-2.7.6-3.6 0c-.9-.8-1.7-1.6-1.9-1.5-.1.1 0 .8 1 1.6s1.5 1.3 3 1.3h8.5s1.8.1 2.3-1c.5-1 .5-1.6.2-1.9-.2-.2-.3.2-.7.8z"/>
+  <path fill="#d4af3a" d="M241.5 142.6c1.3.7 2 .2 2.5-.3l.5-.9s-1.2-.4-1.8-.8c-.5-.3-1-.6-1.5-.6l-.7.2s-.2 1.6 1 2.4z"/>
+  <circle cx="235.4" cy="130" r="2.8" fill="#b96b29"/>
+  <path fill="#b96b29" d="M240.3 120.2c-1.1-.7-2.8-.4-3.7.7-1 1.2-.8 2.7.4 3.5 1.1.7 2.8.4 3.7-.7 1-1.2.7-2.7-.4-3.5z"/>
+  <circle cx="235.3" cy="129.6" r="1.6" fill="#d4af3a"/>
+  <path fill="#d4af3a" d="M239.1 120.5c-.7-.2-1.6.2-2 .8-.4.7 0 1.4 1 1.6 1.8.3 2.6-2 1-2.4zm-43.4 219.8s-4.3 2-5.7 2.4l-1.8.4s-3 2.7-5.1 4a19.4 19.4 0 01-7.6 2.7c-3.5.3-12.9.2-17.1 0-4.2 0-6.8 1-8.7 3-1.8 2-2.2 5 0 7.2 2.4 2.3 5 1.1 5.8-.2.9-1.4.4-3.2 0-4-.3-.8.8-1 2-1.1a25.5 25.5 0 0111.4 2.5c1.4.7.6.8-.4.6a21.5 21.5 0 01-3.7-1.2 14.8 14.8 0 00-4.3-1c-1 0-.7.6-.4 1l1 1.7-.4 2 .5 1 .9-1.5c.2-.6 0-1.6.2-2 .2-.6 1-.6 1.8.2a7 7 0 011.8 3.8c.4 2-.3 3.5-.3 3.5s.9.7 1 1.2c.2.5-.2 2.4-.2 2.4s.6.4 1.2-.7a25.3 25.3 0 001.3-3.8c.2-.7.6-2 1.5-1a8 8 0 011.6 2.7l.2 1s1.9-1.8 2.5-2.9a17.9 17.9 0 013.8-4.2c1.8-1.5 5-4.5 6.5-5.5l6.8-4c1.2-.7 1.4-.7 1.6-2.8.3-2.1 1.3-4 1.8-5.4l.5-2zm-70.1-78.7c0-.3-.8-1.6-1-2.2-.1-.7-.8-.3-.8-.3s-1.4.8-2.4 1.1c-1 .3-1.2-.1-1.3-.6l-.5-3.4c-.2-1.2-.4-1.1-.9-1l-2.6 1c-.9.5-.6.9-.3 1.4l1.8 3.4c.5.7 0 1-.5 1.3l-2.4.7c-1 .4-1 .6-.9 1l1.2 2.5c.4.6.8.2.8.2s1.1-1 2-1.5c1-.5 1.1-.3 1.4.4l1.5 5.2c.2.7.6.6 1.1.4l1.8-.5c.5-.2.7-1.3.7-1.3l-2.6-4.8c-.6-1 0-1.2.4-1.2l2.7-.5c1-.3.8-1 .8-1.3zm23.8 103c-.2-.9 0-1.8-.7-2.5a8.7 8.7 0 01-2-3.2c-.2-1.1.4-1.7.3-2.3-.1-.7-1-.7-1.9 0-.8.7-2 1.4-2 3.4s.8 4.5 3.6 5.3c2.9.9 2.8.3 2.7-.7zm2.8-1s-.5-.3-.8.2-.2.8.5 2 1.2 1.5 2.1 2c.9.5.3-.5.2-.9-.1-.3 0-.7-.3-1-.2-.2-.3-.6-.3-1.4s-1.4-.8-1.4-.8z"/>
+  <path fill="#d4af3a" d="M155.7 373.3c.6-.8 1-1 2.3-1.6 1.3-.6 3.7-.9 4.5-1 .8 0 2.6-1.6 2.3-3.2-.3-1.6-1.4-2.2-2.5-2.4-1-.3-1.9-.3-2.2.2a3.8 3.8 0 01-2 1.5c-1.2.4-1.3.8-2 1-.7.2-.2.6-.8 1.1-.6.5-1.4 0-2.3-.2-.9-.3-1-.5-2-.5l-3.6-.2h-.7c-.6 0-.7 0-1 .7-.2.6.1 2.2.8 3 .6.8 2.7 1.2 4 1.6a24 24 0 003.3.8c1.3.2 1.4 0 2-.8zm13 1.3c1.1-.7.5-2 .2-2.8-.2-.8-1.8-1-2.6-1s-1.2 0-1.7.4c-.4.3-1 .9-2.1 1.3-1.2.3-2.1.8-3.7 1.4-1.6.6-2.1 1.7-2.8 2.2-.7.4-2 0-2 0s-1-.3-1.3 0c-.3.2 0 .8.6 1.5s1.9.6 3.3 1c1.4.5 1.6.1 2.2-.2.5-.4 1-1.2 1.9-1.8 1-.6 3-.7 4-.8 1.1-.1 3-.4 4-1.2zm0-4.9c.5.5 1 1 1.5.3.4-.7 1-2.1.6-3l-1-1.6-1.2 3.1c-.4.7-.3.8.1 1.2zm-4.3-7.4c0-1.4-1-3-1-3s-.3 1.2-.9 2.3a8 8 0 01-1.2 1.7l2 .4c.5 0 1.1 0 1.1-1.4zm-8 3c1.5-.3 2.3-1 3-1.5.5-.5 1-2 .5-2.7-.4-.8-1.5-1.6-2-1.6h-.7s-.5 1.4-1 2.1c-.6.7-1.3 1.2-1.3 2.1 0 1 0 1.9 1.5 1.6zm3-6.8c0-.7-.2-1.5-.7-2l-.8-.8-.2 1.7-.2.7.8.6c.4.1 1 .5 1-.2zM141 320.4l1-6.3c-.7-6.3-4-12.3-6.6-16.5a79.3 79.3 0 01-6.5-14 39.9 39.9 0 01-2-10.7c0-2.5 1-3.8 1-3.8s.5-.6 0-1c-.3-.5-1 0-1.7.6a8 8 0 00-1.6 2.8l-.3 1.2s-1.4-.3-3.5-.2c-2.2.2-3.2.4-3.3.8 0 .5.3.9 1.9 1.5s2.5 1 3.3 2c.8.8 2.8 5.5 3.4 7.7a109 109 0 012.4 13 52 52 0 004.4 15.3c.7 1.6 4.7 9.1 8.1 7.6zm4 11.1c-1.5.8-1.5 6.8-.8 10 .6 3 3.7 6.9 4.6 8 1 1 1.1 1 1.6.7l.7-.3s1.3-.4 2.3-1.2c1-.7.6-2.6.4-4.3-.1-1.7-1.4-5-3.8-9s-3.6-4.7-5-3.9zm1.5-4.8c0-2-1.7-3.4-3.6-3.4-1 0-1.7.2-2.2.6-2 1.8-.8 6.3 2 6.3 1 0 2.3-.2 3-1 .7-.5.9-1.6.9-2.5zm28.3 56.2a12.6 12.6 0 01-5.7-4.4c-.3-.8-.3-.8-1.4-.5-1 .4-2.7.4-3.8.4-1.2 0 .1 1.4 1 2.6.7 1.3.5 5.4.5 5.4l-.2 1c-.2.6 0 1 .3 1.2.3.1.5-.2 1.3-1.1.8-1 2.3-3.5 2.3-3.5l1.6.3c1.3.3 3.3.2 4.4-.1 1-.4.5-1.1-.2-1.3z"/>
+  <path fill="#d4af3a" d="M169.8 386.1c-.5 0-.8-.1-1 .3-.3.3-.5 1-.7 1.4-.1.4 0 .7.3 1l.7.6s.5.5 1 .7c.4.2.5-.5.5-1l.3-2c0-.6-.5-.9-1-1z"/>
+  <path fill="#1d5e91" d="M378.6 345.8c-1.4-.3-2-.9-2-.9s-.5 0-1 .8c-.4.8-2.1 2-2.1 2s-2.4.6-2.8 2.2c-.3 1.7.9 2.3 2 2 1.2-.1 4-.7 5.2-2.2 1.2-1.4 1.4-2.3 1.7-2.8.2-.6.3-.8-1-1.1zm3.8-13.2c-1-3.7-3.3-8.3-7.9-10.6l-2.2 8c-.5 2-.5 1.9 1 2.2l7 1.7c1 .3 2.6 1 2-1.4zm-22-3.5c1.2.2 1-.2 1.4-1.7l2.3-8.7s-4.8-.2-9 1.8c-4.3 2-6.1 5.8-6.1 5.8s1 .5 4 1.1l7.5 1.7zm-11.2 10l-2.3-.5s1 4.2 2.8 6.5c1.8 2.3 3.8 3.4 7.5 3.5 3.7 0 6.5-2 7-3.6a11.7 11.7 0 011.2-2.8s-6.7-.9-9.5-1.5c-2.7-.7-5-1.3-6.7-1.6z"/>
+  <path fill="#d4af3a" d="M348 336.5l16.5 3.3c1.2.2 2.1.5 2.5.2.3-.4.5-.6 1.7-1 1.2-.5 1.1-1.7 1.1-1.7l.5-2.3c0-1.2.7-1.5 2 0 1.4 1.3 1.7 3.4 2 5.3.2 2 3.3 2.5 4.5 2.7 1.3.2 1.8-.2 2.5-1.3a16 16 0 001.3-5c.2-1.4 0-1.3-1.5-1.7l-9.9-2.3c-1.2-.3-1-1.1-.8-2l3-9.9a21 21 0 00-8.1-2.4s-2 9.2-2.5 10.6c-.4 1.4-1.3 1.4-2.7 1.2a636.2 636.2 0 01-12-2.8l-1 2a16.5 16.5 0 00-1.1 5.6c0 1.2.4 1.2 2 1.5z"/>
+  <path fill="#d4af3a" d="M384.3 344.8c-1.4-.9-2.4-1.2-3.2.6-.7 1.7-.8 4.2-2.6 6-1.8 1.7-4.4 3.6-7 3.4-2.5-.2-4-.8-3.4-3.7.6-3 4.5-3.9 5.5-5.4a3.4 3.4 0 00-.7-4.5c-1.4-1.2-3.3-1.4-3.9-1a8.4 8.4 0 00-2.9 3.9c-.8 2.2-1.3 4-3 5.4a13 13 0 01-9.5 2c-3.4-.8-4.7-1.8-6-5.2-1.2-3.4-2.7-9-3.4-9.6-.7-.6-1.6-1-3 0-1.5 1-1.6 2.6-1.8 3.8-.2 1.2 0 2.6 1.5 4.4 1.4 1.8 3 3.5 3.5 5.4.6 1.8 2.2 4.6-.1 4.7-2.3.1-3.4.2-5.1-1.5-1.8-1.7-8.7-6.4-10.6-8l-2.7-2c-3.2 0-6.4-1.3-9.6-3.5 0 0 1.9 4.7 2.2 6.5.4 1.7.3 2.7.3 2.7l9.7 5a177 177 0 0111 6c2.7 1.8 5 4.3 9.7 3.3 4.8-1 14.5-3.9 17.6-4.8 3.1-1 11.7-3 14.9-5.3 3.2-2.2 3.5-2 4-4.2.6-2.2 0-3.4-1.4-4.3zm-18.4-33l2.4-.3c1.6-.2 1 1.4.7 2-.2.6-.7 1.8-1.4 2.9-.7 1.1.2 1.3.7 1.5l2.4.6c1.3.3 1-.6 1.1-1.1 0-.5.1-3 .3-4 0-1 1-.7 1.3-.5l1.8 1c.6.3 1 0 1-.4l.8-2.2c.3-1-.3-.8-1-.8h-2.6c-1 0-.4-1-.4-1l1.4-2.3c.6-1 .4-1.1-.2-1.3l-3-.7c-.5-.2-.8 0-.8.3v2.9c0 .7-.1 1.1-1 1.1-1 0-1.5-.5-2.3-1.3-.7-.8-1-.5-1.1-.2l-.8 3.3c-.2.7.2.6.7.5zm5.2 23.3s-.1 1.8-.3 2.4c-.2.7-.6 1.6.1 1.9.8.3 1.5.6 2 .4.4 0 .2-1 0-1.7a6.8 6.8 0 00-1.3-2.4l-.5-.6zm11.2 7.3c.2.6.8.8 1.1.9.4.1 1 .1 1-.6s0-1.6-.5-2.4c-.6-.7-.9-1.3-1.2-.2-.4 1.2-.7 1.8-.4 2.3zm-39.1-7.4l1.5.4s0-1.7.3-3c.2-1.2.7-2 .3-2-.5 0-.7.4-1 .9-.4.5-1.3.6-1.6 2.1-.3 1.4.2 1.5.5 1.6z"/>
+  <circle cx="350.8" cy="331.9" r="2.5" fill="#b96b29"/>
+  <circle cx="357.8" cy="333.6" r="2.5" fill="#b96b29"/>
+  <circle cx="378.3" cy="338" r="2.5" fill="#b96b29"/>
+  <circle cx="364.9" cy="335.3" r="2.5" fill="#b96b29"/>
+  <circle cx="366.7" cy="329.2" r="2.5" fill="#b96b29"/>
+  <circle cx="368.5" cy="323.1" r="2.5" fill="#b96b29"/>
+  <circle cx="351" cy="331.7" r="1.2" fill="#d4af3a"/>
+  <circle cx="358" cy="333.4" r="1.3" fill="#d4af3a"/>
+  <circle cx="378.5" cy="337.7" r="1.3" fill="#d4af3a"/>
+  <circle cx="365.1" cy="335.1" r="1.3" fill="#d4af3a"/>
+  <circle cx="366.9" cy="328.9" r="1.3" fill="#d4af3a"/>
+  <circle cx="368.7" cy="322.8" r="1.3" fill="#d4af3a"/>
+  <path fill="#d4af3a" d="M287.5 383c-1.4-.8-2.5-1.7-5.6-3.8-3-2-4.1-4.2-4.1-4.2h1c.6 0 1.1-.8 1.2-1.7 0-.8 0-2.4-.3-4.4-.2-2 .3-3.5.3-3.5s1.3 1.2 3.3 2.3c2 1 2.8.5 2.8.5l.5-2 2 4c1.3 2 4.5 4.4 6.9 6.2 2.3 1.7 4.9 3.6 6.8 4.2 2 .7.8 1.6.8 1.6s-2 2-6.9 2.8c-5 1-7.4-1-8.7-2z"/>
+  <path fill="#d4af3a" d="M270 381.1c1.8-.2 3-.8 3.3-2.8.2-1.2-.1-6-.1-6l1.2 1.2c.7.9 2.2 1 2.2 1s.2.7 1 1.8a10 10 0 003.2 3.5 53.8 53.8 0 015 3.4 30 30 0 004.5 3.3 7.5 7.5 0 013.8 5c.6 2.5.1 3.3-1.9 3.2-2-.2-2.1 0-5.3-.8-3.2-.8-7.8-4.4-11-6.5-3.4-2-5.8-6.3-5.8-6.3z"/>
+  <path fill="#d4af3a" d="M261.2 384s1.4-1.7 1.9-3.6l1.4-5.8 1.5 3.5c1.1 2.3 3 2.9 3 2.9s0 1 1.6 2.9a22.5 22.5 0 006 5c2.3 1.4 5.3 3.3 6.9 5.6s1.8 4.7 1 5.7-1.8-.2-3.4-1c-1.5-.7-5.9-1.4-11.9-4.6-6-3.2-8-10.6-8-10.6z"/>
+  <path fill="#d4af3a" d="M258.6 397.5c-1.6-2.5-1.9-8.5-1.9-8.5l1.4-1c.8-.8 2.4-3.1 2.4-3.1l2 4c1.1 1.9 1.6 2.6 3.9 4.6 2.2 2.1 5.3 4.1 6.6 6.3 1.3 2.3.6 6.7-.3 8.1-.8 1.5-2 1-3.3-.2l-3.8-3.4c-2.3-1.9-5.3-4.3-7-6.8z"/>
+  <path fill="#b96b29" d="M278.4 347c-1-1.8-1.9-4-2.7-5a16 16 0 01-1.4-2.5s2.2 2 3 3.4a15 15 0 011.8 4.2c.3 1.5.2 1.7-.7 0zm-8.5 1.6a53.6 53.6 0 01-.6-2s-.3-1.2-.1-1.3c.2 0 1 .8 1.7 2.7.6 2 1.5 4.8 1.3 5-.2 0-2-3.2-2.3-4.4zM263 354l-.4-1s-.6-2.1-.6-2.6.2-1 .7.2c.6 1.1.7 2.2.8 2.7.1.5.8 2.2.6 2.4-.2.1-.7-.9-1-1.7zm20.9 20.4l.9-.5 1.3 1.5c.8.8 1.6 1.2 2.2 2a8.5 8.5 0 002.9 2.4c1.4.7 1.9 1 1.6 1.1-.2.3-1.2-.3-1.2-.3s-.4 0-2-1-2.1-1.6-3.2-2.5l-2.5-2.7zm-7.3 8.7c-.6-.7-1.3-1.2-1-1.5.4-.4.9-.4 1.5.1l3 2.8c.7.7 1.4 1 2.1 1.7.8.6 2.4 1.5 3.2 1.9.9.5.1.5.1.5l-1.3-.5-2.6-1.1-1.8-1.1a25.9 25.9 0 01-3.2-2.8zm-8.4 5.8c-.5-1.1 0-.8 1-.4.9.3 2.9 2.5 4 3.3 1.2.8 2.2 1.2 3.2 1.7s1 .7 1 1c-.1.2-.5.2-1 0l-1.7-1-1.1-.2c-.6 0-1.3-.7-2.6-1.7-1.2-1-2.2-1.7-2.8-2.7zm-3.9 7.7c1.5.9 4 2.9 4.7 4.2.7 1.4 1.2 2.3 1 2.6-.3.2-1-.3-1.3-.8-.3-.6-1-1.4-1-1.4s-2.6-2.5-3.5-3a8.9 8.9 0 01-2.8-3.3c-.4-1-.1-1.5-.1-1.5s1.6 2.3 3 3.2z"/>
+  <path fill="#c52126" d="M304 181.3a23.7 23.7 0 0119-1.6c2.3.6 4.1.7 6 .2a8 8 0 005.6-6.3s2.6 3.3 0 6.8a7.7 7.7 0 01-4.6 3.2c-5.4 1-10.8-2.3-15.3-2.6-4.3-.2-7.7 2.5-7.7 2.5s-1 .9-2.5 0c-1.5-.8-1.9-1.5-.5-2.3z"/>
+  <path fill="#d4af3a" d="M319.6 338.7l1.3-.2c.8-.1 2.4-.6 2.8-.9.5-.2 1.3-.2 1.7.3.5.5 4.4 2.9 4.4 2.9h-6.4c-2.3 0-3.8-2.2-3.8-2.2z"/>
+  <path fill="#d4af3a" d="M301.4 337.6v-.7l.9-1.8s1 .6 2 1.6c1.2 1.3 2.6 3.2 3.2 4 1 1.3 2.6 2.6 1.3.4s-1.7-3.2-2.8-4.6c-1-1.5-1.8-2.1-1.7-2.2l3.7-.6c2.7-.3 4.4-1.4 5.6-2.1l3.5-2s4.6 2 6.4 2.4c1.7.5 2.7.7 1 1.5-1.6.9-3 1.1-3.9 1.6a11 11 0 01-4.9 1.4c-1.5 0-4.2 0-3.1 1 1 1.2 2.2 3.3 3.3 6.4a21.6 21.6 0 011.2 7.4l-.2 2.7s-2-2.1-7-5.3c-5-3.2-7-4.3-8-4.7-.9-.4-1.4-.4-1.2-1.6l.7-4.8z"/>
+  <path fill="#d4af3a" d="M282 322.1l1-.4h.2c.6.4 3.7 2.4 5 4.5 1.2 2 2.4 2.2 1 0a19.1 19.1 0 00-3.4-4.4 25 25 0 00-1.1-1c2.5-1.2 5.2-2.6 7.8-4.5.4.7 1 2 1.8 2.7 1 1.1 3.4 2.1 3.4 2.1s-1.9-2-2.5-3.5c-.5-1-.7-2-.9-2.6a33.9 33.9 0 005.2-4.9 19 19 0 004.4 7.9c4 4.5 12 6.7 12 6.7s2.8.3.5 1c-2.3.5-3.9 1.5-8.3.8-4.4-.8-4.7-1-5.3-1.2-.6-.1-2.2 0 0 .8s7.3 1.6 9.3 1.4c2-.1 4.7-.6 1.8 1-2.8 1.4-4 2-5.7 2-1.7 0-2.4.6-4.1.6-1.7 0-2.1-.3-3.3-.6-1.2-.2-2 .2-2 .7s1.6 1.8 1.5 5a28 28 0 01-.6 6.4c-.3 1-1 2.5-1.5 3.4-.4 1-.6 1.8-1 0-.6-2-1.6-4.7-2-6.6-.5-1.8-.7-1.9-.9-2.9-.2-.9-1.2-1.6-.7.1l1.4 5.5c.3 1.5 1.2 4.4-.3 2.1-1.4-2.2-6.8-8.3-7.7-9.3-.9-1-1.6-2.1-2.2-3-.7-.9-2.5-2-3.4-3.4a30.3 30.3 0 00-4.2-4.3l4.8-2.1zm74.2-137.7c-.2 3.3-3.8 9.6-5.9 13-2 3.3-2.6 4.6-2.3 4.8.4.3 1.2-1.5 2.4-3s3.3-5 5.2-7.6c1.8-2.6 4.5-9 5-9.5.3-.6.4-1 1.3-.2 1 .7 2.8 7.6.6 12.3-2.1 4.8-5.3 8.2-6.7 9.8-1.4 1.7-3.1 4.2-2.9 4.5.3.2.8-.5 2.5-2.2a152.9 152.9 0 006.1-6.8c1.4-1.7 3.4-5.2 4.1-6.5.3-.5.6-.4.8-.1.7.6 1.6 2 1.2 5.7-.6 5.2-3.3 8.2-5.7 10.9-2.5 2.6-4.9 4.8-4.5 5.2.3.3 2.8-1.9 4.5-3.5 1.8-1.7 6-5.7 6.9-6.9 1-1.1 2.3-.6 2.2 4 0 4.4-5 9-7.1 11.5-2.1 2.5-4.7 4-4.5 4.5.3.5 2.3-.8 3.7-1.7 1.3-1 6.4-4.2 7.4-5 1-.6 1.5.7.2 5s-5 7.7-7.2 9.3c-2.2 1.6-5.8 3.5-5.6 4 .3.5 1.7-.1 3.8-1.1 2-1 4.6-2 6.4-2.5 1.8-.5 1.8.8 1.8.8s.3 3.7-2.3 6.6a14.2 14.2 0 01-8.5 4.6c-2.9.5-3.3.6-3.2 1 0 .5.3.5 1 .5.6 0 3.3.3 5.7.3s3.7.6 3.7 1.7c0 1 0 2.5-3.6 4.9-3.6 2.4-7.7 2.8-9.4 3.1-1.7.4-1.8.5-1.4 1 .3.5 1.1.5 3.8.8 2.7.2 4.4 1.3 4.7 2 .4.8-.2 2.9-2.4 4.4-2.2 1.5-5 2-9.3 1.7-4.3-.3-5.4-.3-5.5.4-.2.7 1.3.9 3.4 1.3 2.1.3 3.8.3 5 1.3 1.2 1 .3 3-1.8 4.6-2 1.5-7.2 1.5-9.3 1.3-2.2-.1-5.5-.9-5.7-.3-.2.6 1.6 1.4 3.8 2.2 2.2.8 2.8 1.3 3.3 2.2.4 1 0 1.8-2.6 2.8-2.6 1-6.5 1-8.5 0-2-.8-3-1.2-3.4-.8-.4.3 0 .7.4 1.2s2.2 1.8 4.4 2.4c2.2.6 2.4.6 3.2 2.4.8 1.8-1.2 3.2-5.2 3.3a25 25 0 01-11-2.4c-1.8-1-2.4-1.2-2.7-.9-.3.4-.2.6.6 1.2.9.7 3.6 2.6 5 3 1.3.3 1.4 1.3 1.4 2.3 0 .9.4 2.8-3.2 3.6-3.6.9-7.8.2-11.6-2.5a8.8 8.8 0 01-2.4-2.2c.3-3.7.2-6.2-.3-8.5.8 0 2.2-.3 3.7-.9 2.1-.8 3-2.8 3.5-4 .5-1 1.2-1 2-.7 1 .3 1.8.7 3 .6a8.4 8.4 0 005.6-3c1.9-2.2 1.5-4.3 1.6-5.4 0-1 1.8-.3 2.6-.3.9 0 3.4-.3 5.7-1.9 2.3-1.6 2.3-3.7 2.5-4.6.2-.8 1.1-1.4 1.8-1.7.7-.3 1.9-.6 3.4-1.8 1.6-1.3 2.2-3.8 2.3-4.7 0-.8 1-1 4.2-2.6s2.9-5 2.8-6.4c-.2-1.4-1.7-2.5-1.7-3s1-.6 2.2-1.3c1-.6 3.7-1.7 3.8-5.7 0-4-2.6-4.4-2.6-4.4l1.6-.9c1.1-.6 4-2.6 4-5s-1-3.4-1.8-4c-.8-.6-3-1.1-3-1.1s1.4-1 2-2.8c.5-1.8.7-4.1-.6-5.8-1.4-1.6-3.6-1.6-4.9-1.6s-2.2.7-2.7.3c-.4-.4-.5-.6 0-1.6s.5-3.2 0-4c-.3-.8-.3-2.3-3.4-3.3-3-1-6.3 1-7.3 1.6s-.6-.8-.6-1.8 2.1-3.5 4.5-7a78.9 78.9 0 0010.7-25.1c.4-1.8 1.1-1 1.1-1s.7.3 2.4 4.5a26.7 26.7 0 011.8 11.2z"/>
+  <path fill="#d4af3a" d="M302.3 257.5a8 8 0 006-3.8c2-2.7 4.7-3.3 9.5-3.2 4.7 0 7-2.2 8.1-5.5 1.2-3.4-.1-7.1-5-9.5-4.9-2.4-7.1-5.1-7.3-9.2-.2-4.2 4.9-9.3 10-15.1 5-5.8 9-14 9-14s1.4 1.9 1.4 3.8c0 2-.7 4 0 4.5.8.6 1-.8 4-2 3-1.4 5.3-1.5 7.2.6s0 5.8-1.7 7.5c-1.7 1.8-3 3-2.6 3.7.5.7 3-1 3.8-1.6.8-.5 2.8-2.6 5.6-2.4 2.9.3 3.9 1.1 4.1 3.5.3 2.4-2.5 4.6-4.4 5.5-1.8.9-2.5 1.7-2 2 .4.5.8 0 1.7-.2.8-.3 3-.5 4.6 0 1.4.6 3.8 2.6 1.6 5-2.2 2.6-6.8 3.5-7.7 3.7-1 .2-1.4-.1-1.5.6 0 .8 2 .8 4.4.9 2.5 0 3.2 2.4 2.9 4.3-.4 1.8-4.5 3.8-6.8 4.2-2.3.4-3.1 0-3.3.7-.2.6.2.9 1.5 1.2s3.8.7 4.3 2.7c.4 2 .5 3-1.4 4.7-2 1.8-5 1.5-6 1.3-1-.2-2-1.2-3-.3-.9 1 .9 1.7 2.5 2.8 1.5 1 1.4 3.2-1.2 4.7a8.2 8.2 0 01-6.5.5c-1-.3-2.6-2-3.3-1-.7 1.1 2.3 1.5 3.6 3 1.3 1.6.8 4.2-1.8 5.8-2.5 1.5-6.8.4-7.5-.2-.7-.7-1.6-1-2.2-.4-.5.6.3 2 .8 3.3.6 1.3 1.6 5-2.3 6.6-3.8 1.4-7.3-1.9-8-2.5-.6-.7-1.3-.8-1.8-.5-.6.3-.3.8.2 1.5a3.9 3.9 0 01-1.3 5.3 6.8 6.8 0 01-5 1c-.6-2.1-1.4-4.4-2.1-7.6h.5c.4 0 .5.5.5.7 0 .3-.1.4.2.4.3 0 .4.2.8.6.5.3 1 .7 1.2.5.3-.2-1-.8-1.3-1.2-.3-.4-1-1-1-1.5s-.3-.7-1-1.3a2.5 2.5 0 01-.4-.5 104.4 104.4 0 01-1.3-7.7 61 61 0 01-.5-5.9h1.2zM381 200c-4.1 8.3-10 13-10 13l1.2-3.5c.3-1.4 0-3 0-3l4.2-6c2.7-4.2 4.1-10.3 4.1-10.3s-2.5 6.1-4.4 9.3c-2 3.3-4.2 6-4.2 6s-.8-3-1.4-3c-.5-.2-1 .2-1.4.9-.5.6-1 .5-1 .5l1.8-3 1.6-2.3c1.5-2.4 4.8-7 6.5-11.6 1.7-4.6 5.4-16.1 6-19.5.7-3.4 1.3-1.6 2 1a31 31 0 011 11.3 57.1 57.1 0 01-6 20.2zm-5.3 22.4l-3.8 2.7.6-1.9.3-3 3-2.7c1.3-1.1 2.9-2.5 6-6.4 3.1-3.8.6-1.5-2 1.3a96.8 96.8 0 01-7.3 6.8v-1a3.3 3.3 0 00-.8-2c-.5-.6-.2-.6 2.5-2.7a72.8 72.8 0 0018.7-26.1s1.6 9.5-4.2 20c-5.8 10.5-11.5 13.9-13 15zm-30.5 60c-3.1-1.2-2.3-4.3-2.3-4.4l3.8 1.3c1.8.7 6.2 2 8 2 1.7 0 1.7-.2 1.7-.4 0-.3-1.3 0-3.8-.5s-7-2.8-7.7-3.3c-.8-.5-.7-.6.4-.7 1.2-.1 2.1-.6 2.5-1 .5-.3 1.6.2 4.5.9a53.4 53.4 0 0023 .8c.6-.2 1.4.2-.8 3.9-2.2 3.7-10 5.7-15.3 5.6-5.4 0-10.8-3-14-4.1zm14.3-7.6c-5.5 0-7.6-1.6-7.6-1.6s0-.3.8-1.4.6-3 .6-3l3.6.5c2.3.4 5 .7 8 .2s1.7-.9-.7-.6c-2.4.3-6.9-.6-8.3-1-1.5-.6-.9-1 .1-1.4 1-.3 3.7-2 3.7-2s6.7.8 13 .1c6.2-.7 10.2-2.3 11.5-2.5 1.2-.2 1.2.3 1.2.3s.3.6-1.8 4a18 18 0 01-10 6.6 53.7 53.7 0 01-14 1.8zm1.5-13l.5-1.4c.4-1.2-.6-2-.6-2s1.3-.4 5.4-1c4.2-.4 4.4-.8 7-1.3 2.5-.6 4.2-1.3 4.1-1.6 0-.3-.8.1-2.3.7-1.5.5-7.9 1.2-10.6 1.6-2.6.4-4.1.6-4.6.4-.5-.3-2.1-.7-2.1-.7l2.5-.6a9 9 0 003.4-1.4c.8-.5 1-.6 4.4-1 3.4-.4 6.1-1.5 12.2-3.7 6-2.2 10.6-4.8 11.9-5.8 1.2-1 1.1-.3.8 1-.4 1.2-.3 2.8-3.4 6.4-3 3.6-4.5 5.1-12.3 8s-16.3 2.4-16.3 2.4zm22.8-18.8a43.3 43.3 0 01-16.5 6.8c-.4-.4.4-2 0-3-.4-1.2-1.1-1.2-2.8-1.3-1.6 0-.6-.4-.2-.4.4 0 .5 0 3.2-.8 2.7-.7 5.5-1 9.3-2.5 3.7-1.4 4.9-2.5 4.8-2.7-.1-.3-1.8.9-5.2 2.2-3.5 1.3-7.6 1.8-9.8 2.3-2.2.5-.3-.5.8-1.1 1-.6 2.5-2.9 2.5-2.9s2.4-.4 6.4-1.6c4-1.2 7.3-2.6 10.7-4.5 1.1-.6 2.3-1.5 3.4-2.3l5.5-4c1.4-1 1-.2.8.4-.1.6-1 3.5-3.2 6.6-2.2 3-2.9 4-9.7 8.8zm1.1-13.5c-6.7 5.3-12.5 7-13.5 7.4-1 .4-.9-.1-.7-.7.2-.6.3-2.4.3-2.4l5.1-3c2.7-1.5 5.7-3.6 7.6-5 2-1.3.8-1.2.2-.7-.6.5-3.3 2-6 3.8l-7 4.1s0-.9-.6-1.4c-.5-.6-2-.4-2-.4l1.2-1.4c.4-.7 2.6-1.4 5.1-2.6a62 62 0 0010.3-7.2c3.3-2.8 9.7-9.8 10-10.3.5-.6.8-.5.8.2s.3 1.2-.4 4.4-3.7 9.9-10.4 15.2zM361 179.3l-2.2 3.8c-1 1.5-1.4 2.5-1.4 2.5s-.2-.5 0-1.5c0-.9.2-2.2 0-3.7l-.3-2.4c0-.9.3-1.6.5-2l1.6-7.7c.5-2.7 1-6.7 1-10.2 0-3.5-.6-1.7-.6 0s-.2 4.3-.7 8.3c-.5 4-2.2 10-2.2 10s-.1-.9-.7-2.2c-.5-1.4-1.3-2.9-2-4.5s-.4-2-.4-2 2.4-11.3 3-16.6c.6-5.3 1.6-19.4 1.6-19.4 3.5 3.5 6 12.6 6.5 21.3.4 6.5-.7 12.5-1 15-.6 4.8-1.4 8.6-2.7 11.3zm7.7 17.8c-.1-2.6-.7-4.5-2.4-5 0 0 1.5-2.6 2.7-6.3a35 35 0 002-8.2c1-6 1.6-12.3-.2-2a44.4 44.4 0 01-4 13.8l-2.6 4.3c.4-2 .5-3.2.4-5.3a33.6 33.6 0 00-1-7s3.2-6.3 5.2-13.9a87.7 87.7 0 003.4-24.1s3.2 2.4 4.3 14.8a74 74 0 01-3.8 28.8c-1.6 4.5-4 10-4 10zm-35.5 94.5l2-1.3c1.6-1 1.1-4 1.1-4a81 81 0 005.5 3.4l3.3 1.3c1 .3.7 0-.1-.5-.8-.5-1-.8-3.1-1.6-2-.8-6.2-4.4-6.2-4.4l2.7-.1c1.7-.1 3.8-1 3.8-1s1.7 1.6 8.5 4.5c6.9 3 12.7 3.7 12.7 3.7s-.8 3.5-4 4.7c-2.8 1.1-6.5 1.9-13.8.1a46.5 46.5 0 01-12.4-4.8zm-9 7c-.5-2.9 1.1-4.9 1.1-4.9l1.4 1.1c1 1 2.5 2.7 5.4 4.1 2.8 1.5 3.9 1.4 1.1-.1s-6.8-5.7-6.8-5.7l1-.4c1.1-.4 3 .3 10.7 4.9a29 29 0 0012.2 4.8s-3.5 4.1-12.8 3.8c-9.3-.3-12.7-4.7-13.3-7.6zm-17.6-3.4s1 1.5 2.4 2.4c1.4 1 5 1.5 5 1.5l1 1.3c.7 1 2.3 3.2 3.9 4.3 1.6 1.2 4.2 2 4.4 1.7.1-.3-1.5-1-3.1-2-1.6-.9-3-2.7-4.1-4-1-1.2.4-1 .4-1h3.8c1.8-.2 1.4 0 2 .8.4.9 1.2 1.7 2.5 3.2l4.7 5.4c1 1.3.3 1.6.3 1.6s-.5.8-4.7 1.3c-2.5.2-5.3 0-8.2-1.8a25 25 0 01-5.6-4.8c-5-5.4-4.7-9.9-4.7-9.9zm-2.2 11.3l1.6 1.9s-.7-2.2-1.4-3.3a20.2 20.2 0 00-.9-1.4 27.6 27.6 0 001.7-5c.4 1.5 1.8 5.8 3.6 8.6 2.2 3.5 4 4.7 2.8 5.6-1.2 1-3.6 1.2-6.3-.2-2.7-1.3-3.4-3.5-3.8-5.3a26.4 26.4 0 001.3-2.3c.3.2.8.6 1.4 1.4z"/>
+  <ellipse cx="-305" cy="169.2" fill="#d4af3a" rx="1.9" ry="1.8" transform="scale(-1 1)"/>
+  <path fill="#d4af3a" d="M309 165.9c-1.7 0-2.7-.9-4.6-.7a28 28 0 00-9 3.6 15.5 15.5 0 01-10.5.9c-1-.3-2-1-3-1.5-4.6-2.5-3.5-7.6-3.5-7.6a17.8 17.8 0 0011.3 3.5l-1 .8c-.6.7-1.8 1.5-1.4 1.8.4.3 2-1.3 3.4-2.3a20.6 20.6 0 017-3.4c3.5-1 7.4-1.1 10 .3 2.7 1.5 3 3.3 2.6 4-.2.5-.7.6-1.3.6zm-49.3 37c.8-.2 2.2-.5 4-2.2a78 78 0 006.8-7.3c.5-1 .3-1.8-1-2.3-1.2-.5-2.1-2-2.1-2s2.7-1.1 4.5-2.4c1.9-1.4 6.1-5.2 6.7-6.1.6-1 .3-1.1-.6-1.4-.9-.3-1-1-1-1s1.9-1.1 3.7-2.6a75.5 75.5 0 004.3-4c2.8 1.2 7 .7 9.4.3 4.1-.7 7.1-2.4 7.1-2.4l.7 1.9c.5 1.3 2.4 2 4.3.7 1.9-1.2 1.4-4 1.4-4s1.6-.9 4.7-2c3.2-1.2 5.7-1.4 8.3-.2 2.5 1.2 3.8 4.7 3.8 7.3 0 2.7-1.4 1.6-1.7 1.2-.3-.4-.9-2.3-4.1-2.8-3.2-.5-6.1 1-9.8 4-3.7 3-4.5 3.3-6.3 5.2-1.8 1.9-.4 3 2.8 4 3.1 1 7.2-1 7.3-1 .6.3-1.4 3.1-4 4.2-2.8 1-6.3.3-9-.7-1.8-.8-2.1 0-2.6.5-3 3.2-3.8 6-4.3 9.7a4.3 4.3 0 01-2.8-3.3c0-.6-.3-1.9-1.3-1s-1.8 6.3-1.8 8.7c0 2.5.7 5.7.7 5.7l-.7-.1c-.5 0-1.3-.6-2.5-1.2-1.2-.7-1.3 0-1.3 1.4 0 1.3-.4 3.8-2.2 8.3-1.7 4.4-4.3 5.9-4.3 5.9s-.5-.9-1-2.7c-.5-1.7-.9-5.2-.9-8.2 0-3 .8-9.4.8-9.4s-3.6 4.4-7.4 5.5c-3.8 1.1-7.6.5-9.2-1.4-1.6-1.8-.2-2.6.6-2.8z"/>
+  <path fill="#d4af3a" d="M284.8 214.5s1.1 2.5 1.7 3.4c.7 1 1 1 1 1s-1.2 1-2.9 1.6l-3.2.8s2-2.6 2.6-4.4l.8-2.4zm-22.9-1.5l.9-2.3a16 16 0 008.7-1.8s-1.8 3.6-3.5 4.8c-1.8 1.3-2 1.3-2 1.3s1.7.3 4.1-2c2.3-2.3 3.4-5 3.4-5s-.5 6.2.4 10l1.2 4.2s-5 1-10.5-.6c-5.6-1.6-6-2-6-2s-.7-.2.2-1.4a29.9 29.9 0 003.1-5.2z"/>
+  <path fill="#b96b29" d="M272 199.4l1.8-2.4s.6.6.1 1.4c-.5.9-3 3-4.6 4a13 13 0 01-3.3 1.2v-.3s4.2-2 6-3.9zm6.7 12.9l.4-9c0-1 .7-.8.7-.8l.9.4-1.7 11.3c-.1 1.2-.7 1.1-1 1 .6-.2.7-2.6.7-3zm10.4-33.6c.7-.6 2.1-1 .7.5-1.3 1.5-3.1 3.4-3.7 5-.5 1.6-.8 3.5 0 3 1-.3 1.6-.3 2.6-1.1s2.7-2.1 3.5-2.3c.7-.3 2 0 1 1.1a26.4 26.4 0 01-4.3 3.7l-4.2 2.9a39.3 39.3 0 01-2 1.4s.9-6.4 2.6-9.1a28 28 0 013.8-5zm34.2 105.9c1.3 1 3 1.4 3 1.4s.7 0 .7.2-.9 0-1.9-.2c-1-.1-2.3-1.1-2.7-1.5-.5-.3-1.2-.8-1-1.4.2-.6.6.5 1.9 1.5zm-11 5.9a28 28 0 002.4 1.9l1.3.7c.7.3 1 .7 1 .7h-1c-.8-.1-3-1.8-3.6-2.5-.8-.6-1-.8-.8-1 .3-.3.4-.1.7.2zM357 211c-.4.5-1 1.1-1.1 1-.3-.3 0-.5.5-1.2l.9-.9s.7-1.2 1.1-1.6c.5-.4 1.1-.7.3.3l-1.8 2.4zm3.3 7.4L359 220c-.5.6-1 1.2-1.2 1-.3-.4.8-1 1.2-1.7a8 8 0 011.5-1.5 10.6 10.6 0 011.4-.9l-1.5 1.7zm-1.2 12c-.9 1-2.1 1.2-2.3.8-.2-.3.1-.6.8-1a24.4 24.4 0 004-2.7c.4-.4.8-.7 1-.6.1.1-1.2 1.5-1.6 1.8-.4.2-1 .9-2 1.7zm-2.5 9.7c0-.4 0-.6.7-.6l1.6-.2s1.4-.5 1.5-.3c.1.3-1.1.8-1.7 1-.5 0-1.2.2-1.5.4-.3.1-.6 0-.6-.3zm-1 10.4c1.5 0 2.8-.4 2.9-.1 0 .2-.7.5-1.5.8-.8.3-2.2.4-3.1.4-1 0-1.2-.2-1.1-.7 0-.4 1.3-.4 2.8-.4zM343.8 262c.2-.2.8 0 1.6.2.9.2 2.2.4 3 .4l2.5-.1 1 .2c0 .2-1.3.2-3.1.4-1.9.2-3.1-.2-4-.3-.9-.1-1.2-.5-1-.8zm-4.9 8.2a8 8 0 002.4.4l2.3.3s.8.1.7.4c-.1.3-.4 0-1 0h-2.6c-1.2-.1-2-.5-2.7-.6-.7-.1-1.6-.5-1.2-1 .4-.5 1.2.1 2.1.5zm-9.4 6.1a27.7 27.7 0 003.7 2.7c.8.4.8.5.7.8-.2.2-.7-.3-1.1-.5a17.4 17.4 0 01-2.7-1.8c-.7-.6-1.7-1.1-1.5-1.6.2-.4.3 0 .9.5zm15.7-79.7l-1.8 2.4c-1.6 2-.7.2-.3-.4l3.6-4.8c.8-1 1-.5.5.1l-2 2.7zm3.5 10.5c-.3-.3.3-.5 1.2-1.7l2.8-3.5s.5-1.1.7-1c.2.1-.6 1.9-1.4 2.6-.8.8-1.7 2.2-2.3 2.9-.5.6-.8 1-1 .7zm-4.6 19.7c0-.6 1.9-.5 2.7-.7l2.4-.5s1.7-.3 1.8 0c0 .1-.4.4-1.4.5-1 .2-2.4.7-3.5.8-1 .2-2 .4-2-.1zm4.6-10.7c-1.3 1-2 1.5-2.7 1.8-.7.4-1.2 1-1.5.5-.4-.4.3-.7 1.3-1.2l1.6-.8 1.1-.6c.5-.3 1.4-.7.2.3zm-10.6-7l1.4-1s1-.8 1.1-.5c.2.3-1 1.1-1.6 1.6-.6.6-1.6 2-2.2 1.8-.5-.3.6-1.2 1.3-1.9zm7 27.5l1.6.4c.7.2.7.5-.5.5s-1.7-.3-2.9-.5c-1.2-.3-1.6-.4-1.4-.8.2-.4.8-.3 1.3-.1l1.8.5zm-2 9.9c.1.2-.8 0-1.4-.2-.6-.3-1.9-1-2.7-1.1-.7-.3-.7-.4-.7-.8 0-.5.8-.1 1.8.2 1 .3 2.2 1.3 2.2 1.3s.8.4.9.6zm-12.7 6c-1-.5-1-1-.8-1.2.3-.3.6-.2 1.3.4l2 1.5 1.3.6c.5.3 1.2.7 1 1-.1.2-1.2 0-1.8-.6l-3-1.7zm-6 8l-2-1c-.4-.4-.7-1.4-.3-1.6.3-.1.6.5 1.4 1 .8.7 3.7 2.6 3.7 2.6l.8.3c.8.3.4.6-.2.5-.7-.1-1.2-.1-2-.7-.7-.7-1.1-.8-1.4-1.1zm-9 7.6c-.7-.3-1.8-1.3-2.4-1.8-.5-.5-1.2-1.1-.8-1.4.4-.3.9 0 1.5.6l2.2 2.3s.3 0 1.1.8c1 .7 0 .6-.3.3s-.5-.5-1.3-.8z"/>
+  <path fill="#d4af3a" d="M279 154.5l-3.6-2.5 4.3-1.1 2.7 2.2z"/>
+  <ellipse cx="-267.5" cy="151.6" fill="#b96b29" rx="3.4" ry="3.3" transform="scale(-1 1)"/>
+  <ellipse cx="-267.5" cy="150.8" fill="#d4af3a" rx="2.1" ry="2" transform="scale(-1 1)"/>
+  <path fill="#d4af3a" d="M274.7 140.2c-1 .3-2 .2-2 .2s-.4-1.6.4-2.3l2.1-1.8.6-.6.1 2.1c0 .8-.3 2-1.2 2.4z"/>
+  <circle cx="-272.8" cy="141.8" r=".6" fill="#d4af3a" transform="scale(-1 1)"/>
+  <path fill="#d4af3a" d="M277.5 141.2l.9 1s-.7 0-1.3.4c-.6.4-1.3.8-2 .7a1 1 0 01-.8-1.2c.1-.5.5-1 1.6-1.3 1-.4 1.4 0 1.6.4z"/>
+  <path fill="#d4af3a" d="M275.1 145.2c2.2.2 5-2.2 5-2.2.3 2 1.5 3 3.3 3.3h-.2s-1.7 1-3.7 1.2c-.9.2-1.7 0-2.6-.2a11.3 11.3 0 01-3.2-1c-1.3-.8-1-2.9-1-2.9s.3 1.6 2.4 1.8zm8.4-2.1c1-.4 2.2-1 2.8-1 .5 0 1.3-.2 1.2.8-.1 1-1.2 1.5-2.2 1.6-1 0-1.6-.4-2.2-.7-.6-.3-.5-.4.4-.7zm6.8-3.7c1-.7 1.8-.9 1.8-.9s.6 1.7.3 2.7-1.1 1.3-2 1.3c-1 0-2.3-.5-2-1.2.5-.7 1-1.2 1.9-2z"/>
+  <ellipse cx="-289.4" cy="144.1" fill="#d4af3a" rx=".8" ry=".5" transform="scale(-1 1)"/>
+  <path fill="#d4af3a" d="M287.3 135.8c.6-2.9.5-6-2.2-9.9-2.7-4-7.3-5.5-7.3-5.5l-1.7-1.9a32.7 32.7 0 00-4.5-3.6l5.5 1.5v.1a2.4 2.4 0 002.4 2.5 2.4 2.4 0 001.4-.4c1.1.2 4.7 2.3 5.7 3.1a2.5 2.5 0 00-.4 1.3 2.4 2.4 0 002.4 2.5 2 2 0 001.1-.3l.3.5a25 25 0 011.8 4 2.6 2.6 0 00-1 2.1c0 1.4.8 2.5 2 2.5v1.6c0 .8-.4 1.3-1.8 1.7-1.4.4-3.3 2.8-3.3 2.8-.1 0-1-1.8-.4-4.6z"/>
+  <path fill="#d4af3a" d="M278.8 117.6c-.5-.4-.6-1-.2-1.4.4-.4 1.1-.3 1.6.1s.6 1 .2 1.4c-.4.4-1.1.3-1.6-.1zm9 6.1c-.6-.5-.7-1.3-.2-1.8.4-.4 1.2-.4 1.8.2.6.5.7 1.3.2 1.7-.4.5-1.2.4-1.8 0z"/>
+  <circle cx="-293.2" cy="131.4" r="1.4" fill="#d4af3a" transform="scale(-1 1)"/>
+  <path fill="#d4af3a" d="M263 112c.8.2 2.1.6 4.1 1.7-1.4 0-2.5.9-2.5 2s1.3 2.4 2.7 2.4c1.4 0 2.3-1.2 2.3-2.3 0-.3 0-.6-.2-.8l2 1.2c4.4 3 5.4 4.5 7.6 8.5 2.2 4.1 3 8.6 2 11.2-.9 2.7-4.4 3.2-4.4 3.2s.4-.4.4-.9l-.2-1.7c-.2-1 0-2.2 0-2.2s-.9-.1-1.3.4l-1.6 1.8-1.6 1.6s-.7-1-.7-2.2c0-1.2.8-2.5 1-4.6.1-2-1-5.8-3-8.6a24 24 0 00-7-5.7 2.2 2.2 0 01-1.5-2l-.2-2c-.1-1.3 1-1.2 2.2-1z"/>
+  <path fill="#d4af3a" d="M267.5 116.8c-.8 0-1.5-.7-1.5-1.4 0-.6.6-1.1 1.4-1.1.8 0 1.4.5 1.4 1.1 0 .7-.5 1.4-1.3 1.4zm-6.6 26a3.3 3.3 0 01-2.8-.2c-.6-.4-.8-1.3-.1-1.9a2.1 2.1 0 012.3-.2l2 1.4s-.3.5-1.4.9z"/>
+  <path fill="#d4af3a" d="M257.5 144c.4.6.6 1 1.8 1 1.2 0 2.5 0 3.3-.8a8.2 8.2 0 001.3-1.9h1.3s.5 1.9 1 2.4c.7.5 2.7.6 3.6 0 1-.8 1.7-1.6 1.9-1.5.1.1 0 .8-1 1.6s-1.5 1.3-3 1.3h-8.5s-1.7.1-2.2-1c-.5-1-.5-1.6-.3-1.9.2-.2.4.2.8.8z"/>
+  <path fill="#d4af3a" d="M270.4 142.6c-1.3.7-2 .2-2.4-.3l-.6-.9s1.2-.4 1.8-.8c.6-.3 1-.6 1.6-.6l.6.2s.3 1.6-1 2.4z"/>
+  <circle cx="-276.6" cy="130" r="2.8" fill="#b96b29" transform="scale(-1 1)"/>
+  <path fill="#b96b29" d="M271.6 120.2a3 3 0 013.8.7c.9 1.2.7 2.7-.4 3.5a3 3 0 01-3.7-.7c-1-1.2-.8-2.7.3-3.5z"/>
+  <circle cx="-276.7" cy="129.6" r="1.6" fill="#d4af3a" transform="scale(-1 1)"/>
+  <path fill="#d4af3a" d="M272.8 120.5c.8-.2 1.7.2 2 .8.4.7 0 1.4-1 1.6-1.8.3-2.6-2-1-2.4z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mf.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mf.svg
new file mode 100644
index 0000000..310afce
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mf.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mf" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h512v512H0z"/>
+    <path fill="#00267f" d="M0 0h170.7v512H0z"/>
+    <path fill="#f31830" d="M341.3 0H512v512H341.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mg.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mg.svg
new file mode 100644
index 0000000..f0375cc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mg.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mg" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#ff3319" d="M170.7 0H512v256H170.7z"/>
+    <path fill="#00cc28" d="M170.7 256H512v256H170.7z"/>
+    <path fill="#fff" d="M0 0h170.7v512H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mh.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mh.svg
new file mode 100644
index 0000000..97f3463
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mh.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mh" viewBox="0 0 512 512">
+  <g fill-rule="evenodd">
+    <path fill="#3b5aa3" d="M0 0h511.9v512H0z"/>
+    <path fill="#fff" d="M139 1.2l-5.3 88-23.2-56.1 9 59.7-35.9-48.2 23.5 55-47-36.5L96.7 109 43.5 85.4l46.6 35.3-58-7.7L87 134.7l-86 7.9 86 5.7-54.5 22.4L90 163l-46.4 34.2 53.8-23.6-36.7 46.2 46.7-35.4-23.4 54 37.4-46.8-10 58.3 23.4-54.5 5.4 86.1 8.2-85.9 20.3 54.9-7.7-59.1 37.2 46.8-24.5-54.7 46.7 37.6-37-47 55.4 23.1-49.1-35.8 59.8 10-57.3-22 89-5.5-89-8.3L251 116l-60.7 7.6 50.2-35-56.6 22.7 39-47.3-47.5 37.1 23-56.8-37 48.3 8-60.3-22 56.9-8.2-88z"/>
+    <path fill="#e2ae57" d="M0 498.2L512 0v92.7L0 512v-13.8z"/>
+    <path fill="#fff" d="M18 512l494-320.8-.1-101.9L-.1 512h18z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mk.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mk.svg
new file mode 100644
index 0000000..da2e9a4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mk.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mk" viewBox="0 0 512 512">
+  <path fill="#d20000" d="M0 0h512v512H0z"/>
+  <path fill="#ffe600" d="M0 0h86.8L256 246.9 425.2 0H512L0 512h86.8L256 265.1 425.2 512H512zm512 204.8v102.4L0 204.8v102.4zM204.8 0L256 219.4 307.2 0zm0 512L256 292.6 307.2 512z"/>
+  <circle cx="256" cy="256" r="82.3" fill="#ffe600" stroke="#d20000" stroke-width="18.3"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ml.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ml.svg
new file mode 100644
index 0000000..1e4d989
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ml.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ml" viewBox="0 0 512 512">
+  <g fill-rule="evenodd">
+    <path fill="red" d="M340.6 0H512v512H340.6z"/>
+    <path fill="#009a00" d="M0 0h170.3v512H0z"/>
+    <path fill="#ff0" d="M170.3 0h171.2v512H170.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mm.svg
new file mode 100644
index 0000000..5076184
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mm.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-mm" viewBox="0 0 512 512">
+  <defs>
+    <path id="a" fill="#fff" d="M.2 0h-.4L0-.5z" transform="scale(8.844)"/>
+    <g id="b">
+      <use width="18" height="12" transform="rotate(-144)" xlink:href="#a"/>
+      <use width="18" height="12" transform="rotate(-72)" xlink:href="#a"/>
+      <use width="18" height="12" xlink:href="#a"/>
+      <use width="18" height="12" transform="rotate(72)" xlink:href="#a"/>
+      <use width="18" height="12" transform="rotate(144)" xlink:href="#a"/>
+    </g>
+  </defs>
+  <path fill="#fecb00" d="M0 0h512v170.7H0z"/>
+  <path fill="#ea2839" d="M0 341.3h512V512H0z"/>
+  <path fill="#34b233" d="M0 170.7h512v170.6H0z"/>
+  <use width="18" height="12" x="9" y="6.4" transform="translate(-127.7) scale(42.66667)" xlink:href="#b"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mn.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mn.svg
new file mode 100644
index 0000000..568fda0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mn.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mn" viewBox="0 0 512 512">
+  <path fill="#c4272f" d="M0 0h512v512H0z"/>
+  <path fill="#015197" d="M170.7 0h170.6v512H170.7z"/>
+  <circle cx="85.6" cy="215.3" r="28" fill="#f9cf02"/>
+  <circle cx="85.6" cy="202.5" r="30.5" fill="#c4272f"/>
+  <path fill="#f9cf02" fill-rule="evenodd" d="M73 169.5a12.7 12.7 0 0025.3 0c0-5.1-3.1-5.8-3.1-7.7 0-1.9 1.9-4.4-2-7.6 2 3.2-1.2 3.8-1.2 7s1.2 3.2 1.2 5.7a2.5 2.5 0 01-5 0c0-2.5 2.5-5 2.5-8.9 0-3.8-.6-5-2.5-8.2-2-3.2-5.1-5.8-2.6-8.3-3.8 1.3-1.9 6.4-1.9 9.5 0 3.2-2.5 5.1-2.5 9 0 3.7 1.9 4.4 1.9 7a2.5 2.5 0 01-5.1 0c0-2.6 1.3-2.6 1.3-5.8 0-3.2-3.2-3.8-1.3-7-3.8 3.2-1.9 5.7-1.9 7.6 0 2-3.2 2.6-3.2 7.7z"/>
+  <circle cx="85.6" cy="207.6" r="20.4" fill="#f9cf02"/>
+  <path fill="#f9cf02" d="M29.6 248.3v122.2h25.5V248.3zm86.6 0v122.2h25.4V248.3zm-56 20.4v10.2H111v-10.2zm0 71.3v10H111v-10zm0-91.7H111l-25.5 15.3zm0 107H111l-25.5 15.2z"/>
+  <circle cx="85.6" cy="309.4" r="27" fill="#f9cf02" stroke="#c4272f" stroke-width="3"/>
+  <path fill="none" stroke="#c4272f" stroke-width="3" d="M85.6 282.4a13.5 13.5 0 010 27 13.5 13.5 0 100 27"/>
+  <circle cx="85.6" cy="295.9" r="5.1" fill="#c4272f"/>
+  <circle cx="85.6" cy="322.9" r="5.1" fill="#c4272f"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mo.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mo.svg
new file mode 100644
index 0000000..83d04ea
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mo.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-mo" viewBox="0 0 512 512">
+  <path fill="#00785e" d="M0 0h512v512H0z"/>
+  <path fill="#fbd116" d="M272.5 147.4L256 96.5l-16.5 51 43.3-31.5h-53.6z"/>
+  <g id="mo">
+    <path fill="#fff" d="M256 353.7H146.7a156 156 0 01-4-4.2H256a2.3 2.3 0 011.5 2c0 1-.6 1.9-1.5 2.2zm0-33.4c.6-1.3 1.9-4.3 1.3-8a13.2 13.2 0 00-1.3-4.1 87.4 87.4 0 01-34.7 20.2 86.4 86.4 0 01-25 3.7h-67.4a154 154 0 006.3 8.6h65a86.2 86.2 0 0055.8-20.4zM139.1 294a34.4 34.4 0 01-10.3 2.2 86.3 86.3 0 0064.8 29.3 86.3 86.3 0 0062.4-26.6 470.3 470.3 0 004.8-62.9 470.3 470.3 0 00-4.8-72.2c-7 6.3-20.2 20-26.4 40.9a86.5 86.5 0 00-3.6 24.6 86.1 86.1 0 0014.6 48.1 86.1 86.1 0 01-18-52.9 86.1 86.1 0 018.2-37 34.7 34.7 0 01-8-13.8 86 86 0 00-11.2 42.6 86.1 86.1 0 0017 51.4 101.4 101.4 0 00-78.3-31.5 34.8 34.8 0 017.2 9.5 101.4 101.4 0 0173.3 31.4 101.3 101.3 0 00-65.2-23.6c-13.8 0-27 2.7-39 7.8a86.6 86.6 0 0088 55.6 87 87 0 01-15.4 1.4 86.2 86.2 0 01-60.1-24.3zM256 388.7h-56.6a153 153 0 0056.6 10.8 11.6 11.6 0 001.3-5.3 11.7 11.7 0 00-1.3-5.5zm0-26.2h-99.9a154 154 0 008.4 6.7H256a4.9 4.9 0 001.4-3.3c0-2-1.2-3.1-1.4-3.4zm0 13.4h-81.8a153.2 153.2 0 0015.4 8.5H256a8 8 0 001.2-4.5 8 8 0 00-1.2-4z"/>
+    <path fill="#fbd116" d="M155.6 211.7l-7-36.4-15.7 33.6 32.4-18-36.8-4.5zm49.3-58.8l-29.6-22.3 10.8 35.4 12.1-35-30.3 21.3z"/>
+  </g>
+  <use width="100%" height="100%" transform="matrix(-1 0 0 1 512 0)" xlink:href="#mo"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mp.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mp.svg
new file mode 100644
index 0000000..54a0ede
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mp.svg
@@ -0,0 +1,86 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mp" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M248 0h496v496H248z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="translate(-256) scale(1.0321)">
+    <path fill="#0071bc" fill-rule="evenodd" d="M0 0h992.1v496H0z"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.9" d="M553.4 392.4s17.5-18.5 34.3-15c5-19.4 24.1-21 24.1-21s-1.9-21.5 22.5-26.2c.7-14.6 15.5-26.8 15.5-26.8s-3-22.6 12.5-27.9c-9.5-18 3.2-31 3-31.4-.2-.4-16-28.5-1.9-36.5-15-12.6-10-27-10-27s-16.4-4.1-10.5-23.7c-13.4-2.3-16.1-24-16.1-24S606 137 603.6 119c-13.7 2.2-15.2-11.3-15.4-11.3-.1 0-27 7.3-32.4-13-10.4 5.3-15-4.3-15-4.3s-15 7.4-23.9-6.9c-17.8 11.1-27.7-.5-27.7-.5s-23.4 15.5-31.1 3.5c-13.8 14-26.1 8-26.1 8s-10.4 18.4-27.3 13.7c-3.8 17.2-23.2 17.5-23.2 17.5s2 15.2-21.2 19.2c-3 17.8-15.1 20.9-15.1 20.9s1.2 17.3-9.8 22.8c4 9.8-6.2 21.7-6.2 21.7S340 224 325.3 239c14.2 3.7 4 28.1 4 28.1s19.4 8.8 7.1 25c14 4.4 9.6 15.6 9.8 22.1 9 4 16.8 2 13 20 27.4 3 14.4 18.2 14.4 18.2s12.8.5 7.8 10.6c23.3-.5 26.7 17.5 26.7 17.5s21.7-5.7 24.6 2.7c2.8 8.4-9.5 65-9.5 65s-18.3 0-32-14.6c-31.9-.8-24.8-21.8-25.3-21.8s-10.6 3.8-15.8-13.7c-21.4 4.4-20.7-13.6-20.9-13.8-.2-.1-9.6-4.3-6-13.2-22 2-20.4-19.5-20.4-19.5-4.8-2-6.6-6.5-5.9-11-2.8-1-22.4-1.3-12.3-27-18.6-11.3-7-24.3-7-24.3s-25.8-13.3-6-28.6C257 239 273 228 273 228s-20.5-20.8.3-35.6c-3.4-31.7 15.5-39.2 15.5-39.2s-10-25.7 17-36.5c1.7-26 20.5-26.8 20.5-26.8s.5-20.7 30-18.6c5.8-18.5 26-14.8 26-14.8s6.2-22.4 33.6-11.6c14-27.3 34.7-13.3 34.7-13.3s13.1-8.6 19.7-6c8.3-14.2 26-.5 37.5 2.3 4.2-1.6 19-12.8 30.4 1.3 15.2-10 28.1 8 28.1 8s20.9-10.7 30.6 13.6c44.3-4 37.9 24.9 37.9 24.9s34.8-8 27.2 26.7c31.7 2.2 28.5 23 28.5 23s20 15.2 11.2 28.8c17.8.8 11.3 18 11.3 18s13.6 5.2 2.3 26.4c26.1 20.9 5 41.5 5 41.4-.3-.2 13.9 16.8 1.1 36.3 3.9 31-11.8 38.9-11.8 38.9s4 20-13.4 25.7c-.4 23.5-22.6 26.4-22.6 26.4s6 10.2-16.1 21c-.9 15.8-23.9 17-23.9 17s-2.2 29-31.5 21.2c-7 23.2-41.3 16.3-42 16-.7-.3-6.6-49.8-6.6-50z"/>
+    <path fill="#217900" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="1.9" d="M340.9 114.8s7.4 6.4 6 16c-1.4 9.6-6.9 22.9-5.8 32.8.7 4 .4 11.1.4 11.1s-6.6-9.4-6.7-19.5 7.2-19.7 7.2-27.2-1.3-13.3-1.1-13.2zm-3.7 2.9s-9.6 9.2-10.8 18.1c-1 4.6-1.3 26-1.4 35.6l-1.7 18.6c-.3 4.2 7-7.2 7.5-16.4a281 281 0 01.7-32.7c.9-4 .7-8.3 2-12.2l3.7-11z"/>
+    <g fill="#ffd200" fill-rule="evenodd" stroke="#ef8a10">
+      <path stroke-width="1.9" d="M548.9 87.7s12.5-5.8 16-16.5-10.8-10.8-12.7-7.4c-1.9 3.4 1.6 11.9.7 14.1-.9 2.3-6 7.7-4 9.8z"/>
+      <path stroke-width="2.6" d="M438.3 91.6s8.1-11.1 6-22.2c-2-11.1-14.7-4.2-14.7-.3 0 3.9 7.2 9.6 7.5 12 .3 2.4-1.5 9.6 1.2 10.5zm-21.9 6.6s8.1-11.1 6-22.2c-2-11.1-14.7-4.2-14.7-.3 0 3.9 7.2 9.6 7.5 12 .3 2.4-1.5 9.6 1.2 10.5zm-24.3 7.5s8.1-11.1 6-22.2c-2-11.1-14.7-4.2-14.7-.3 0 3.9 7.2 9.6 7.5 12 .3 2.4-1.5 9.6 1.2 10.5zm-17 17s8-11 6-22.1c-2.2-11.1-14.8-4.2-14.8-.3 0 3.9 7.2 9.6 7.5 12 .3 2.4-1.5 9.6 1.2 10.5zm-18 16.6s8-11.1 6-22.2c-2.2-11.1-14.8-4.2-14.8-.3 0 3.9 7.2 9.6 7.5 12 .3 2.4-1.5 9.6 1.2 10.5z"/>
+      <path stroke-width="1.9" d="M398.4 43.2s-10.8 8.5-11.7 19.7c-1 11.3 13 8 14 4.3 1-3.8-4.3-11.2-4-13.6.4-2.4 4-8.8 1.7-10.4zm36-11.1s-10.8 8.5-11.8 19.7c-1 11.3 13 8 14.1 4.3 1-3.8-4.3-11.2-4-13.6.4-2.4 4-8.8 1.7-10.4zm-134.1 97.1s2.2 13.6 11.6 19.8 13.3-7.5 10.5-10.3-11.9-1.5-13.8-3c-2-1.4-5.8-7.8-8.3-6.5zm-18 46s.1 13.8 8.4 21.4c8.3 7.7 14.3-5.3 12-8.5s-11.5-3.4-13.2-5.1c-1.7-1.8-4.5-8.6-7.2-7.8zm41.5 51.4s-5-12.8-15.4-17c-10.4-4.3-11.5 10-8.2 12 3.2 2.2 12-.7 14.1.3 2.2 1 7.2 6.5 9.5 4.7zm-8.7-22.2s8.4-11 6.5-22c-1.9-11.2-14.6-4.5-14.7-.6 0 3.9 7 9.7 7.3 12.1.2 2.4-1.7 9.6 1 10.5zM574.5 98.8s12.4-5.8 16-16.5-10.8-10.8-12.7-7.4c-1.9 3.4 1.6 11.9.7 14.1-.9 2.3-6 7.7-4 9.8zm37.7 18.8s7.3-11.6 4.5-22.6c-2.8-10.9-15-3.2-14.7.7.3 4 7.8 9.1 8.3 11.5.5 2.4-.9 9.7 1.9 10.4zm103 106.9s-5-12.8-15.4-17.1c-10.5-4.3-11.5 10-8.3 12.2 3.3 2 12-.9 14.2.2 2.2 1 7.2 6.5 9.5 4.7zm-50.4 8s.3-13.8 8.7-21.3c8.4-7.6 14.2 5.5 11.9 8.6-2.4 3.1-11.6 3.3-13.3 5-1.7 1.8-4.6 8.6-7.3 7.7zm-8.1-145.7s-12.8-4.9-23 0-.2 15.4 3.6 14.3c3.8-1 7.3-9.4 9.6-10.4 2.2-.9 9.6-1 9.8-3.9zm-29.4-24.6s-12.8-4.9-23 0c-10.1 5-.2 15.4 3.6 14.3 3.8-1 7.4-9.4 9.6-10.4 2.2-.9 9.7-1 9.8-3.9zm-43.8-23.5s-10.9 8.4-12 19.7c-1 11.2 13 8.1 14 4.4 1.1-3.8-4.2-11.2-3.8-13.6.4-2.4 4.1-8.8 1.8-10.4zM554.9 32s-5 12.8-.1 23 15.3.2 14.3-3.5-9.5-7.4-10.4-9.7c-.9-2.2-1-9.6-3.8-9.8zm-81 49.3s8.9-10.4 7.6-21.7c-1.3-11.2-14.4-5.2-14.7-1.3-.2 3.9 6.5 10 6.7 12.5 0 2.4-2.2 9.4.4 10.5z"/>
+    </g>
+    <path fill="#8c8a8c" fill-rule="evenodd" stroke="#000" stroke-width="1.9" d="M522.2 103.7s21.3 1.4 22.4 13.6-5.1 19.6-5.1 19.6 2.7 26.4-18.2 34.1c-22.3 2.7-57.3.6-57.3.6s-10.2 2.6-14.4-18.7c-4.2-21.3-5.4-36.4-5.4-36.4s2.1-11.9 17.1-12.6c15-.8 60.8.1 61-.2z"/>
+    <path fill="none" stroke="#000" stroke-linecap="round" stroke-width="1.9" d="M539.4 136.8s-11.5 14.3-10.3 20"/>
+    <path fill="#8c8a8c" fill-rule="evenodd" stroke="#000" stroke-width="1.9" d="M524 170.3c2.8 2.4 5.5 5 6.1 13.8l1.2 17.6 14.9 134 13.1 96.9.9 15s-3.1 11-12 12c-6.3 13.3-41 17.2-44.4 17-3.1-.1-14.2-4.7-20.9-4.1-6.7.6-18.3 5-23.5 4.3-5.2-.7-17-4.8-19-13.3-14.6-4.6-17-15.7-17-15.7l15.8-112.1 15.3-141.8s1.8-18.9 9.4-21.7c7.9-.7 48.7.8 60.1-2z"/>
+    <path fill="none" stroke="#000" stroke-width="1.9" d="M443.6 364.3l-3.1 99.1m99.5-86l8.7 81.7"/>
+    <path fill="none" stroke="#000" d="M285.3 312.7l-.4 1.2m412.2-4.7l.3 1"/>
+    <path fill="none" stroke="#6b18b5" stroke-linejoin="round" stroke-width="1.9" d="M274.2 178.9s6.6 9 7.7 14.2c1.2 5.2 3.4 15.4 6.2 19.6 2.9 4.1 19 27.4 20 37.1 0 6.3-6.8 17.2-17 17.4-6.3-.2-22.7-4.4-23.4-18.4-.7-14 5-14.4 5.7-23 .7-8.5.8-46.7.8-47z"/>
+    <path fill="none" stroke="#6b18b5" stroke-linejoin="round" d="M386.3 56s-6.8.4-12 3.2c-4 2.5-10.8 6-15.6 12.7-12.1 9.4-30.4 13.8-36.1 21.7-3.5 5.3-3.3 18.2 5.4 23.6 5.5 3.2 21.7 8.1 29.5-3.5 8-11.7 3.2-15 7-22.6 6.5-17.5 21.7-35 21.8-35.2zM550 38.8s-5-4.6-10.7-6.3c-4.6-1.2-12.2-.7-20.1-1.5-15.3-2.1-31-13.1-40.6-11.8-6.2 1.3-15.3 10.4-13.2 20.3 1.5 6.2 8.4 18.7 22.3 16.2 13.8-2.4 13.7-5.5 21.9-8 19.9-11.2 40.2-9 40.4-9zm162.4 157.8c1.2-2.6-1-7.4-2.4-13.2-1.5-4.5-3.6-11.5-8.9-17.7-6.3-14-5.2-33.3-11.4-40.7-4.4-4.7-17-7.6-24.3-.5-4.4 4.6-13 19.1-3.6 29.6 9.4 10.4 13.5 6.5 20 12 15.5 10.4 23 28.6 30.6 30.5zM707 319.4c2-3 5.9-8.5 5.4-13.2-.3-3.8 1.7-15 2-20 1.4-15.2 11-27.7 8.3-41-1.5-6.1-10.6-15-20.4-12.4-6.1 1.9-19.6 9.3-16.5 23 3.1 13.8 7.5 13.5 10.5 21.6 8.4 16.6 3 36.3 10.7 42z"/>
+    <path fill="none" stroke="#000" stroke-width="1.9" d="M594.3 416.8s-2.6 5 7.8 9.3m13-21.1s11.5-2.8 19.3 0m15.2-29.2c0 .2-1.6 5.2 7.6 12.4m-1-25.4s6.8 5 18.2 4.8m-86.7 9.8s.4 13.2-6.4 19.4m29.2-39.8s11.1 2.8 20.3-1.8m51.3-17.5s2.4 3.4 14.8 2.8m-63-10.6c.3.2 14.5 4.8 23.5.6m4.8-55s.6-.7 5 14.7m6-58s-.6 8.2-7.2 11.8m49.3-45.3s-9.6 7.8-7.8 11m-40-16.6s5 8.4-3.1 14.2m-21-50.1s8.6-.4 12.4 7m-28.6-31.4h6.6m27.6-30c0 .3 1.8 1.9-1.6 5.3m-59.7-4.4s4.6 7.2 3.8 16m22.7-40.4c2-.2 8.8-3.2 8.8-3.2m-38.3-25.4c-.2 0-2.6 9 1.8 12.2M586 91.7c0 9.6 7.6 7.2 2.4 16.4m-21-24.4a66 66 0 00-12 10.8m-18.7-15.8s5 5 3.8 11.8m-18.4-15.8s-2.6 7.6-6 9.6m-20.6-11.6c-.2.4-4.2 9-7 10.6m-29.3-10.4c.2 0 4 8-1 13.8m-7.4-55.1c.2.2.8 6.2-3 11.4m-33 2.2c0 .2 1.7 6.8-9 9M394.7 106c.2.4 10.2 2 10.2 2m-35.1 21.1a413 413 0 0112.1-3.8m-31.5 18.8c.4 0 8.4 1.4 10.4.4m-16 7s2.6 1.4.4 14.8m-39.4-50l4.9 7.2m-21.2 29.8c0-.2 4.8 7.2 11.2 8.6m26.5 29c.2 0 7.8-1.7 9-2.5M323.8 218c.2 0-.2-5 6-8.4m-14.2 20.8c0 .2 5.8 7.4 9.8 8.4m-13.2 5.3c.6-.2 6.8-5.6 14-5.2m-16 23.8s.2 6.2 18.6 4.6M312 284.6c0-.2 5.4-12.4 16.4-17m-1.6 32.6s1.6-5.2 10.8-8.8m-.6 29.3s6.6-5.4 9-6.2m-.8 22.2s4 4.2 14-3M297 340c1.2-.2 15.7-3.6 20.7 4m-15 8s15.4-2 17.4-.4m37.6 3.6s-2 4.2 17-2.8m6.5 10.4c-3.4 5.7.8 10.3-3.6 13m-54-5c.5-.5 7-2.7 6-11.8m-.3 25.5c.8-.2 11.4-4.8 13.6-2.4M350 398s1.4-9.4 4.4-10.4m11.5 24.6s8.8-.2 12.6-3m4.4-28.8c.2.2 8.2 4.4 25.2.2m-18.8 38s2.4 12.1 2.2 15"/>
+    <g fill="#de2010" fill-rule="evenodd" stroke="#000" stroke-width="1pt">
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(1.84875 -.23108 .23809 1.90478 237.3 58.3)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(1.84875 -.23108 .23809 1.90478 235.6 38)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(1.8213 -.39265 .40456 1.87649 218 57.4)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(1.66103 -.84397 .86954 1.71136 192.5 159.5)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(1.66103 -.84397 .86954 1.71136 184.5 141.3)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(1.5836 -.9816 1.01134 1.63158 174.3 164.6)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(1.48128 -1.1301 1.16435 1.52616 167.2 194.1)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(1.30182 -1.3329 1.37328 1.34126 169 247)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(1.17368 -1.44698 1.49084 1.20925 167.8 274.1)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(.91718 -1.62175 1.6709 .94498 188 334.2)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(.76579 -1.6985 1.74996 .78897 193.6 360)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(.65019 -1.74601 1.79893 .66988 194.9 377.2)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(.51503 -1.79055 1.84481 .53064 200.8 397.8)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(.23314 -1.8485 1.90451 .2402 237.1 442.1)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(.07476 -1.86165 1.91806 .07702 250.5 463.4)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(.07476 -1.86165 1.91806 .07702 230.4 464)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-.41519 -1.81629 1.87134 -.42776 326.6 516.4)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-.56358 -1.77586 1.82969 -.58066 344.7 530.5)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-.77108 -1.69608 1.74749 -.79446 383.3 545.8)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-.91296 -1.62412 1.67333 -.94064 405.7 556.4)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-1.08406 -1.5153 1.56121 -1.1169 440.5 564.5)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-1.20839 -1.41812 1.4611 -1.245 464.3 570)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-1.30696 -1.32783 1.36808 -1.34656 483.3 576.8)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-1.41352 -1.21378 1.25056 -1.45636 509.2 580.8)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-1.5349 -1.05613 1.08813 -1.5814 545 576.8)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-1.69349 -.77677 .8003 -1.74482 606.3 551.5)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-1.75693 -.62003 .63882 -1.81018 632.4 544)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-1.85518 -.13795 .1773 -1.53226 703.5 438.7)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-1.81654 -.41408 .42661 -1.8716 666.6 524.7)"/>
+    </g>
+    <path fill="#ffe300" fill-rule="evenodd" d="M680 196c2.4-2.7 4.7-3.5 7.6-2.5-1-7-3.2-9.3-6-8.5-2.6.8-3.8 4.4-1.7 11zm3.7 21c2.7-2.5 5-3 7.8-2-.5-7-2.5-9.5-5.2-8.8-2.8.6-4.2 4-2.6 10.7zm-9-40.3c1.8-3.2 3.8-4.5 6.9-4.3-2.8-6.4-5.5-8.2-7.9-6.7-2.4 1.5-2.7 5.3 1 11zm-9.3-19c1.7-3.3 3.8-4.6 6.8-4.4-2.7-6.5-5.5-8.2-7.9-6.7-2.3 1.5-2.6 5.3 1.1 11zM643 122.5c1.2-3.4 3-5 6-5.4-3.7-6-6.7-7.2-8.8-5.3s-1.8 5.6 2.8 10.7zm-14.7-15.3c1-3.5 2.8-5.1 5.9-5.5-4-5.8-7-7-9-5-2.1 1.9-1.7 5.6 3.1 10.5zm-30.8-26c0-3.6 1-5.8 3.8-7-5.5-4.4-8.8-4.5-10.1-2-1.4 2.4.3 5.8 6.3 9zm16 12c.6-3.6 2-5.5 5-6.3-4.7-5.2-7.9-5.9-9.6-3.7-1.8 2.2-.8 5.8 4.7 10zm-34.3-22.1c-.4-3.6.5-5.8 3-7.4-6-3.7-9.1-3.6-10.2-1-1.1 2.6.9 5.9 7.2 8.4zM560.5 63c-1-3.5-.4-5.8 2-7.8-6.5-2.8-9.6-2.1-10.3.6-.7 2.7 1.7 5.6 8.3 7.2zm-20.1-6.2c-1.3-3.4-.9-5.8 1.3-8-6.7-2.2-9.8-1.3-10.3 1.5-.4 2.8 2.2 5.5 9 6.5zM520.6 53c-1.5-3.3-1.3-5.7.7-8-6.8-1.8-9.8-.7-10.1 2.1-.3 2.8 2.5 5.3 9.4 5.8zm-21-1.6c-1.8-3.2-1.9-5.6 0-8-7-1.1-10 .3-10 3.1.1 2.8 3.2 5 10 4.9zm-41 3c-2.5-2.6-3.2-4.9-2-7.7-7 .6-9.5 2.7-8.8 5.4.7 2.8 4.2 4.2 10.8 2.3zm20.2-2.6c-2.2-3-2.5-5.3-1-8-7-.3-9.8 1.4-9.4 4.2.3 2.8 3.6 4.7 10.4 3.8zm-40 7c-3-2.3-3.9-4.5-3.2-7.5-6.8 1.7-9 4.1-7.9 6.7 1.1 2.6 4.8 3.5 11 .7zm-38 17.4c-3.2-1.7-4.6-3.7-4.5-6.7-6.4 3-8 5.7-6.5 8 1.6 2.4 5.4 2.6 11-1.3zm18.3-9.4c-3-2-4.1-4.1-3.6-7.1-6.7 2.1-8.7 4.7-7.4 7.2 1.2 2.5 5 3.1 11 0zm-52.3 33c-3.5-.8-5.3-2.5-5.8-5.5-5.6 4.2-6.7 7.3-4.7 9.2 2 2 5.8 1.3 10.5-3.6zM383 86.7c-3.4-1.2-5-3-5.3-6-6 3.7-7.2 6.7-5.4 8.8 1.9 2.1 5.6 1.8 10.7-2.8zM352.3 114c-3.5-.6-5.4-2.1-6.2-5-5.3 4.6-6 7.8-3.8 9.5 2.1 1.8 5.8.9 10-4.5zm-12.9 16.8c-3.6-.3-5.6-1.6-6.7-4.5-4.8 5.2-5.2 8.4-2.9 10 2.3 1.5 5.9.2 9.6-5.5zM328.6 148c-3.6.3-5.8-.7-7.3-3.4-4 5.9-4 9.1-1.4 10.3 2.6 1.2 5.9-.6 8.7-6.9zm-9.5 18.4c-3.6.7-5.9 0-7.7-2.4-3.1 6.2-2.7 9.4 0 10.3 2.7.8 5.7-1.4 7.7-8zm-7.6 18.8c-3.4 1.3-5.8 1-8-1.2-2 6.7-1.1 9.8 1.6 10.2 2.8.4 5.5-2.3 6.4-9zm-5.1 21c-3.3 1.4-5.7 1.3-8-.7-1.7 6.8-.5 9.8 2.3 10 2.8.3 5.3-2.6 5.7-9.4zm-2 17.4c-3.2 1.6-5.6 1.8-8 .6-1 5.5.5 7.7 3.3 7.5 2.8-.2 5-2.7 4.6-8.1zm352.7-83c1.2-3.4 3-5 6-5.3-3.6-6-6.6-7.3-8.7-5.5-2.1 1.9-1.8 5.6 2.7 10.8zm28.9 97.6c2.7-2.4 5-3 7.8-1.8-.5-7-2.5-9.6-5.2-9-2.8.7-4.2 4.2-2.6 10.8z"/>
+    <path fill="#217900" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="1.9" d="M658.5 124c-.1 0-8 7.8-6.6 17.4 1.3 9.6 7.4 21.4 6.3 31.3-1.1 10-3 16.5-3 16.5s9.3-10.5 9.4-20.6c.1-10-6.3-23.4-6.3-30.8s.3-14 .2-13.9zm14.5 32s-6.2 4.6-5.6 15c.6 10.4 11.4 29.6 11.4 29.6s7.9 16.2 7.6 20.4c-.2 4.2 1.5-4 .7-13.3-.8-9.2-12.7-29.6-12.7-29.6s-2.5-4.2-2.3-11.1c.3-7 1-10.9.9-11z"/>
+    <path fill="#6b18b5" fill-rule="evenodd" d="M488 26.8c0-2.2-2.5-4-5.5-4s-5.4 1.8-5.4 4c0 2.1 2.4 3.9 5.4 3.9s5.4-1.8 5.4-4zm2.3 9c0-2-2.6-3.7-5.6-3.7-3.1 0-5.6 1.7-5.6 3.8s2.5 3.7 5.6 3.7c3 0 5.6-1.7 5.6-3.8zm6.9-10.7s-6.4 4.8-3.8 6.7c2.7 1.9 10-4.2 10-4.2l-6.2-2.5zm187.7 109.6a4 4 0 00-1.7-3.3 3 3 0 00-3.4 0 4 4 0 00-1.6 3.3 4 4 0 001.7 3.3 3 3 0 003.3 0 4 4 0 001.7-3.3zm-2.5-9.1c0-2.3-1.5-4.1-3.5-4.1s-3.5 1.8-3.5 4.1 1.6 4.1 3.5 4.1 3.5-1.8 3.5-4.1zm1.7 18.6c0-1.2-.6-2.2-1.4-2.2-.7 0-1.3 1-1.3 2.2s.6 2.1 1.3 2.1c.8 0 1.4-1 1.4-2.1zm5.6-16.6c0-1.4-.6-2.5-1.3-2.5-.8 0-1.4 1.1-1.4 2.5s.6 2.4 1.4 2.4c.7 0 1.3-1 1.3-2.4zm-15.3 1.6c0-1-.6-2-1.4-2-.8 0-1.4 1-1.4 2s.6 2 1.4 2c.8 0 1.4-.9 1.4-2zm2.4 13.2c0-1.8-1.3-3.3-2.9-3.3s-2.9 1.5-2.9 3.3c0 1.7 1.3 3.1 3 3.1s2.8-1.4 2.8-3.2zm-7.6-5.8c0-1.5-1.1-2.8-2.5-2.8-1.3 0-2.4 1.2-2.4 2.8s1.1 2.7 2.4 2.7c1.4 0 2.5-1.2 2.5-2.7zm-1.2-7.8c0-.8-.4-1.6-1-2a2 2 0 00-2.2 0 2.3 2.3 0 00-1 2c0 .8.3 1.6 1 2a2 2 0 002.1 0 2.3 2.3 0 001-2zm34.7 39.5c-3.2-4.2-8.2-6-11.3-4-3 2-3 7 .2 11.2 3.1 4.2 8.2 5.9 11.2 3.9 3.1-2 3-7-.1-11.1zm9 76.6c.5-5.1-2-9.6-5.6-10-3.7-.5-7.2 3.3-7.8 8.4-.6 5 1.9 9.6 5.6 10 3.7.4 7.1-3.3 7.7-8.4zm1.8 44.5c1-5-1-9.6-4.6-10.4-3.7-.8-7.4 2.7-8.5 7.7-1 5 1 9.7 4.7 10.5 3.6.7 7.4-2.7 8.4-7.7zm8.6-41.7c0-2-1.4-3.6-3-3.6s-3 1.6-3 3.6 1.3 3.7 3 3.7 3-1.7 3-3.7zm-7.5 8.4l-6.2 7s-5.9.2-5.6 2.1c.4 2 8.1 7.7 8 10 0 2.2 5.2-.6 5.2-.6l4.2-12.8s-.2-8.8-2.5-8.7c-2.3.2-2.9 2.8-3 3zM304 253.3a3 3 0 10-6 0 3 3 0 006 0zm2.8-9c0-1.8-1.4-3.2-3-3.2s-3 1.4-3 3.1 1.4 3.2 3 3.2 3-1.4 3-3.2zM282.4 201c-1.1-2.5-3.5-3.9-5.2-3-1.8.7-2.3 3.4-1.2 5.9 1.2 2.5 3.5 3.9 5.2 3 1.8-.7 2.3-3.4 1.2-5.9zm7.3 27c-1.5-3.3-4.7-5.1-7-4s-3.2 4.4-1.7 7.6 4.8 5 7.2 4 3-4.4 1.5-7.7zm8 19.7c.4-4-1.2-7.8-3.8-8.3-2.6-.6-5 2.3-5.5 6.3-.6 4 1.1 7.8 3.7 8.3 2.5.5 5-2.3 5.5-6.3zm-12.7 2.8c1.5-3.7 1-7.7-1.4-9s-5.4.9-7 4.6-1 7.8 1.3 9 5.5-.8 7-4.5z"/>
+    <path fill="#6b18b5" fill-rule="evenodd" d="M279.2 242c0-1.9-1.5-3.4-3.3-3.4s-3.3 1.6-3.3 3.5 1.5 3.4 3.3 3.4 3.3-1.5 3.3-3.4zm-2.6-8.5a3 3 0 00-3-3.2c-1.7 0-3 1.4-3 3.2s1.3 3.1 3 3.1 3-1.4 3-3.1zm2.8-16.5c0-3-1.3-5.3-3-5.3-1.5 0-2.8 2.4-2.8 5.3s1.3 5.3 2.9 5.3 2.9-2.4 2.9-5.3zm8.9-1.3c.3-2.9-.6-5.4-2.2-5.6-1.6-.2-3.2 2-3.6 4.8-.4 3 .6 5.4 2.2 5.7 1.6.2 3.2-2 3.6-4.9zm63.3-126.4c1.2-4 0-8.2-2.7-9.2s-5.8 1.6-7 5.7c-1.2 4 0 8.2 2.7 9.2s5.8-1.6 7-5.7zm-12 18.3c3.5-3 5-7.2 3.3-9.3-1.6-2.1-5.8-1.4-9.4 1.6s-5 7.1-3.3 9.3c1.6 2 5.8 1.4 9.4-1.6zm-7-10.2c3.4-2.5 5-6.1 3.3-8s-5.8-1.1-9.3 1.4c-3.5 2.6-5 6.2-3.4 8s5.9 1.2 9.4-1.4zm27-17.8c2.4-1.7 3.4-4.2 2.3-5.5-1.2-1.3-4-.8-6.3 1s-3.4 4.2-2.3 5.5c1.2 1.3 4 .9 6.3-1z"/>
+    <path fill="#6b18b5" fill-rule="evenodd" d="M345.5 96.9c1.6-2.5 1.7-5.2.2-6-1.4-.8-4 .5-5.5 3s-1.8 5.2-.3 6c1.5.8 4-.5 5.6-3zm20.4-10.7c2.5-2.1 3.5-5 2.2-6.3-1.4-1.3-4.5-.7-7 1.4s-3.5 5-2.2 6.4c1.3 1.3 4.4.7 7-1.5zM329 111.1c2.3-.1 4.1-1.3 4-2.6-.2-1.4-2.3-2.4-4.6-2.2-2.4 0-4.2 1.3-4 2.6.2 1.3 2.2 2.3 4.6 2.2zm44.5-38c1.6-2.6 1.7-5.2.2-6-1.4-.9-4 .5-5.5 3s-1.7 5.1-.3 6c1.5.8 4-.6 5.6-3z"/>
+    <path fill="#ffd200" fill-rule="evenodd" stroke="#ef8a10" d="M641.8 148.5s7.3-11.6 4.5-22.6c-2.8-10.9-15-3.2-14.7.7.3 4 7.8 9.1 8.3 11.5.5 2.4-.8 9.7 1.9 10.4z"/>
+    <path fill="#217900" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.4" d="M501.7 51.9s26.4 1 26.6 18.1c-.1 2.7 0 5.8-1 13.5a17.8 17.8 0 008-15.8c.2-17.4-23.5-29.2-33.6-15.8z"/>
+    <path fill="#217900" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.4" d="M484.9 51.1s21.3-4.4 21.5 12.7c.2 17-6.8 19.8-6.8 19.8S516 80.1 516 62.8c.1-17.4-21-25.1-31.1-11.7z"/>
+    <path fill="#f7df73" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.6" d="M557.3 420.3S657 392.2 687 269.8c-17.5 125.6-126.6 165.4-126.6 165.4l-3.2-14.9z"/>
+    <path fill="#8c1800" fill-rule="evenodd" d="M567.5 428c3.1 0 10.7-8.5 15.1-9.4 4.4-1 4.9-5.4-.2-5.6-5-.1-9.4 5.7-9.4 5.7s-4.3 3.8-8.9 4.2c-4.5.5-1.6 6.2 3.4 5z"/>
+    <path fill="#8c1800" fill-rule="evenodd" stroke="#8c1800" stroke-width="2.6" d="M625 385.1s-10.4 6-9 7.5c1.5 1.4 10.7-5.7 10.9-5.9.2-.1 3.9-4.7-2-1.6z"/>
+    <path fill="#8c1800" fill-rule="evenodd" d="M588.8 412.4s-3.1-1.1 4.8-4.2c8-3.1 7.5-6.7 10-8.1 2.7-1.5 8.2-5.4 9.3-3.1s-5.8 6.8-7.4 7.3c-1.6.5-9.6 7.8-11.9 8.4-2.2.7-3.9.3-4.8-.3z"/>
+    <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="3.1" d="M640.4 369.9c-6.8 7.6-6.8 7.4-6.8 7.4"/>
+    <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="2.9" d="M650.6 357.4l-6.5 8"/>
+    <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="2.6" d="M660.8 341.2l-7.3 11.6"/>
+    <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="2.4" d="M669.4 324.6l-6 12m9.9-20.8l-2 4.3"/>
+    <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="1.4" d="M677.7 304.3l-1.6 5"/>
+    <path fill="#f7df73" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="1pt" d="M160.3 216s52-14.7 67.6-78.5c-9.1 65.5-66 86.2-66 86.2l-1.6-7.7z" transform="matrix(-1.9021 0 0 1.9542 731.4 -4.3)"/>
+    <path fill="#8c1800" fill-rule="evenodd" d="M416.4 425.5c-3 0-10.6-8.6-15-9.6-4.3-1-4.7-5.5.2-5.6 5-.2 9.4 5.8 9.4 5.8s4.3 3.8 8.8 4.3c4.5.5 1.6 6.2-3.4 5z"/>
+    <path fill="#8c1800" fill-rule="evenodd" stroke="#8c1800" stroke-width="1pt" d="M195.5 197.6s-5.4 3.2-4.6 4c.7.7 5.5-3 5.6-3.1.1-.1 2-2.5-1-.9z" transform="matrix(-1.9021 0 0 1.9542 731.4 -4.3)"/>
+    <path fill="#8c1800" fill-rule="evenodd" d="M395.4 409.6s3-1.1-4.9-4.3c-7.8-3.1-7.4-6.7-10-8.2-2.5-1.5-8-5.5-9-3.2s5.7 7 7.3 7.5c1.6.5 9.5 7.9 11.7 8.6 2.3.6 3.9.3 4.9-.4z"/>
+    <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="1.6" d="M203.5 189.7l-3.5 3.9" transform="matrix(-1.9021 0 0 1.9542 731.4 -4.3)"/>
+    <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="1.5" d="M208.9 183.2l-3.4 4.1" transform="matrix(-1.9021 0 0 1.9542 731.4 -4.3)"/>
+    <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="1.4" d="M214.2 174.7l-3.8 6.1" transform="matrix(-1.9021 0 0 1.9542 731.4 -4.3)"/>
+    <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="1.3" d="M218.7 166.1l-3.2 6.3m5.2-10.9l-1 2.2" transform="matrix(-1.9021 0 0 1.9542 731.4 -4.3)"/>
+    <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width=".8" d="M223 155.5l-.9 2.7" transform="matrix(-1.9021 0 0 1.9542 731.4 -4.3)"/>
+    <path fill="#217900" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.4" d="M691.9 247.2c.5 7.7 8 15 5 28.5-3.7 15.1-17 51.3-14.6 57.6-4-5.4-3.3-10.4-3.6-18-.4-7.5 10.9-35.4 11.9-44.9 0-8.5.8-20 1.3-23.2z"/>
+    <path fill="#217900" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.4" d="M691.9 247.4s12.2 15.5 11.6 27.8c-.7 12.2-7.5 26.6-5.2 33-4-5.4-5-8.9-5.3-16.4-.3-7.5 6-15.8 4.8-24-1.3-8.2-6-20.4-6-20.4zm-401.4 3.4c-.5 7.7-6.2 14.6-3.3 28 3.8 15.1 17.2 34.4 15 56.5a33 33 0 005.5-19c.3-7.5-14.9-32.8-15.9-42.3 0-8.5-.8-20-1.3-23.2z"/>
+    <path fill="#217900" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.4" d="M290.5 251s-12 15-11.3 27.3c.2 8.1 15.2 42.3 13 48.7 3.9-5.4 5-4.8 4.8-13-4.4-20.9-12.2-34.3-10.9-42.4 1.3-8.2 4.6-20.6 4.4-20.6z"/>
+    <path fill="#fff" stroke="#000" stroke-dashoffset="1" stroke-linecap="square" stroke-linejoin="round" stroke-width="1.5" d="M100 125.8l22 68.2h72l-58 42.2 22.1 68.2-58-42.1-58 42.1 22-68.2L6 194h71.8z" transform="matrix(1.3389 0 0 1.3391 360.4 -54.9)"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mq.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mq.svg
new file mode 100644
index 0000000..7a69fb5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mq.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mq" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h512v512H0z"/>
+    <path fill="#00267f" d="M0 0h170.7v512H0z"/>
+    <path fill="#f31830" d="M341.3 0H512v512H341.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mr.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mr.svg
new file mode 100644
index 0000000..7da23e5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mr.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mr" viewBox="0 0 512 512">
+  <path fill="#cd2a3e" d="M0 0h512v512H0z"/>
+  <path fill="#006233" d="M0 76.8h512v358.4H0z"/>
+  <path fill="#ffc400" d="M416 164.9a160 160 0 01-320 0 165.2 165.2 0 00-5.4 41.8A165.4 165.4 0 10416 165z" class="st1"/>
+  <path fill="#ffc400" d="M256 100l-14.4 44.3h-46.5l37.6 27.3-14.3 44.2 37.6-27.3 37.6 27.3-14.4-44.2 37.7-27.3h-46.5z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ms.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ms.svg
new file mode 100644
index 0000000..d7d910d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ms.svg
@@ -0,0 +1,70 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ms" viewBox="0 0 512 512">
+  <path id="rect950" fill="#012169" stroke-width=".6" d="M.2 0h512v512H.2z" opacity="1" stop-opacity="1"/>
+  <path id="path962" fill="#fff" stroke-width=".8" d="M281.6 127H487l-.3 146.3c1.7 58.7-35 95.2-102.3 111.7-47.9-12-103.1-36.5-103.2-110l.3-148z" opacity="1" stop-opacity="1"/>
+  <path id="path964" fill="#00a2bd" stroke="#000" stroke-width="1.8" d="M286.1 131.4h196.4l-.2 140.2c1.6 56.3-33.4 91.2-97.8 107-45.8-11.4-98.6-35-98.6-105.4l.2-141.8z" opacity="1" stop-opacity="1"/>
+  <path id="path966" fill="#a53d08" stroke-width=".8" d="M481 288.2c-7.2 53.7-48.6 77.2-96.6 89.7-42.4-11.4-88-29.6-97-89.5l193.6-.2z" opacity="1" stop-opacity="1"/>
+  <path id="path968" fill="#000" stroke-width=".8" d="M376.7 157.5l-.3-17.6 14 .1.1 17.5h38.2l.1 13.7-38.3.2-.3 161.4-13.6.1-.2-161.7-38 .2v-14z" opacity="1" stop-opacity="1"/>
+  <path id="path970" fill="#ff9a08" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M345.8 294.8l35 36.3c12-13.3 3.6-63-12.3-72.1-1.9 5.9-5.1 13-8.6 15.2-7.6 5.2-26.1 11.2-20 15 1.5-1.9 5.2-3.7 7 .6 2 6.9-7.8 7.3-7.8 7.3s-6.2-.8-7.3-7c-1-6.4 9.3-12.2 10.1-12.6 1-.3 14.4-4 16.7-15.9 2.8-11.8 5.8-10 6.3-10.2 17.7 1.7 29.2 33.3 29.9 55.5.6 22.2-9 37-10.8 38-1.8.9-42-47.9-42-47.9l3.8-2.2z" opacity="1" stop-opacity="1"/>
+  <path id="path972" fill="#ff9a08" stroke="#000" stroke-width=".8" d="M371.2 261l.3 65.5" opacity="1" stop-opacity="1"/>
+  <path id="path974" fill="#ff9a08" stroke="#000" stroke-width=".8" d="M367.3 262.3l.2 59.4" opacity="1" stop-opacity="1"/>
+  <path id="path976" fill="#ff9a08" stroke="#000" stroke-width=".8" d="M363 270.9l.3 47.2" opacity="1" stop-opacity="1"/>
+  <path id="path978" fill="#ff9a08" stroke="#000" stroke-width=".8" d="M359.6 274.2l.2 39.1" opacity="1" stop-opacity="1"/>
+  <path id="path980" fill="#ff9a08" stroke="#000" stroke-width=".8" d="M355.9 276v33" opacity="1" stop-opacity="1"/>
+  <path id="path982" fill="#ff9a08" stroke="#000" stroke-width=".8" d="M351.9 278.6v26.1" opacity="1" stop-opacity="1"/>
+  <path id="path984" fill="#ff9a08" stroke="#000" stroke-width=".8" d="M348.4 280.7v20" opacity="1" stop-opacity="1"/>
+  <path id="path986" fill="none" stroke="#ffdf00" stroke-linecap="round" stroke-width="1" d="M345.2 299l36 41.2" opacity="1" stop-opacity="1"/>
+  <path id="path988" fill="none" stroke="#ffdf00" stroke-linecap="round" stroke-width="1.4" d="M383 273s16.3 35.7 1.2 65" opacity="1" stop-opacity="1"/>
+  <path id="path990" fill="none" stroke="#ffdf00" stroke-linecap="round" stroke-width="1.4" d="M341 291.4s1.2-3.1 2.7-1.8" opacity="1" stop-opacity="1"/>
+  <path id="path992" fill="none" stroke="#ffdf00" stroke-linecap="round" stroke-width="1.4" d="M338.1 282.3s-6.5 5.8-3 9.5" opacity="1" stop-opacity="1"/>
+  <path id="path998" fill="#008021" stroke="#000" stroke-width=".3" d="M390.6 191.4c2.4-2 3.7-3.3 5.2-3 1.5.2 3.5 0 5-.4a31 31 0 0112-.4c1 .2 2.4.7 4.6 2.5 2.1 1.8 5.2 5 4.2 13.6s-.7 12.3-1.2 17.2c-.8 8.5-2.7 15.5-6 15 4.5 8 5 15 8 20.5s4.8 16.8 3.7 29c-1.2 12.3-4.4 39.7 5.3 58.2-1.6 1.1-5.5 0-9-3.7s-5-3.6-7.9-1.4c-8.7 6.7-17 14.8-29 6.7-2.8-1.8-3.7-4-1.6-9.7 5-14 7.5-33.4 6.7-42.4V191.4z" opacity="1" stop-opacity="1"/>
+  <path id="path1000" fill="#ffe1cf" stroke="#000" stroke-width=".3" d="M399 182.8c.6 2 .9 4.5-.1 6.8s-1.3 5 .4 8.4c2.8-3.9 6.7-3 9-5.4 2.3-2.3 2.8-4.5 4.5-5-1.7-1.5-4.4-3-3.8-7.5.6-4.3 6.7-8 1.2-14.6a8.1 8.1 0 00-11-1.4 8 8 0 00-2.4 2.6c-.3.8.1 2.5-.7 3.5l-2 2c-.6.3-1 .8-.4 1.5.2.2.7.3 1.1.4a9 9 0 01-.8 1.5c-.3.3-.2.6.1 1-.4 1.3.4 1.5-.1 2.5-.5.9-1.2 2 .6 3 .6.3 3 .9 4.3.7z" opacity="1" stop-opacity="1"/>
+  <path id="path1002" fill="#ffe1cf" stroke="#000" stroke-width=".3" d="M376.5 205.7c-3.2.9-8.4-.5-12.4 0-1.7.1-3-.8-2.8-2.5.2-1.7.4-4.4 0-6.8-.5-3.8 1.3-9 3.9-14.8A33 33 0 00369 170c0-1.8.2-3.8 1.8-4.8 1.2-.8 1.4-1.5 1.8-2.1 1-1.5 2-1.8 2-1 .1.5 0 1-.5 1.7 1-.9 2.8-1.9 3.2-2.2.4-.2 2.4-1.7 2.5-.3.8-.4 1.4-.4 1.6 0 .2.5 0 .7-.3 1 .5 0 1.2 1 0 1.8.7-.2 1.3.8.2 1.8-1.1.9-2.4 1.6-2.8 2.3-.4.8-3.1 2.9-4.2 3.3-1.1.5-1.2 1.1-1.2 2.7 0 17.8-2.1 16.4-2.1 20.6 0 1.2-.2 2.2 1 1.9 1-.4 2.8-.9 4.5-.9v10z" opacity="1" stop-opacity="1"/>
+  <path id="path1004" fill="#ffe1cf" stroke="#000" stroke-width=".3" d="M377.2 244c5.2-2.6 11.2-3.5 14.3-4.3 3-.8 8-3.3 10.5-4.5 2.4-1.3 4.4-3 5.7-3.5 1.4-.5 3-1.4 3.8-3.1 4.5-8.8 7-15.8 7-22 0-4-1-8.5-5-5.2-3.7 3-7.7 8.9-8.8 13.1-1.6 6.5-3 7.9-3.3 9.1-.4 1.3-1.7 1.3-3.2 1.6a26.7 26.7 0 00-13.5 6.4 136 136 0 01-14.3 9.2c-3.7 2-4.4 2.3-5.2 4a16 16 0 01-2.3 3.7 3 3 0 00-.7 2.5l-.3 5.4c0 1.1.2 1.4.7 1.5.4 0 1-.2 1.3-1.6-.2 1.4 1.7 1 1.8 0 0 1.4 2 .5 2-.8 0 1 1.6.3 1.7-.2l1.1-3.4c.7-1.3 1.4-3 2.8-4 1.5-1 .8-2.3 3.9-3.9z" opacity="1" stop-opacity="1"/>
+  <path id="path1006" fill="#ffe1cf" stroke="#000" stroke-width=".3" d="M414.5 338.5l1.3 3.6c.2.9-.2 1.1-.4 1.6a32.8 32.8 0 00-2.8 8.8c0 1.2-1 2.5-1.3 3.2-.5.8-.3 1.5.7 2.3.5.3 2-.2 2.3-1 .5.6 1.6.4 2-.5.6.5 1.4.2 2-.7.5.4 1.3-.3 1.6-.8.8.4 1.6 0 1.7-1.7l.4-1.2c.2-.4.3-1.1.3-1.7 0-.7.4-2 .9-2.8.5-1 1.5-2.5 1-4-.3-1.4-.9-1.3-1.4-3.3-1.3-1.3-3-3.2-4.8-3.3-1.8-.1-2.8 1.1-3.5 1.5z" opacity="1" stop-opacity="1"/>
+  <path id="path1008" fill="#ffe1cf" stroke="#000" stroke-width=".3" d="M381.7 348.4c1.6 1.6 5.3 1.7 7.8-1-1-.4-3-1.3-3.8-2-1.3 1.2-2.8 2.6-4 3z" opacity="1" stop-opacity="1"/>
+  <path id="path1012" fill="#870f00" stroke="#000" stroke-width=".3" d="M398 165c.7-4 3.6-4 5.4-3.5.8.1 2.6.3 4.3-.2 3.5-.9 6 .3 5.7 3.6 1 .7 1.9 2.3 1.7 3.7-.2 1.4.1 2 1.4 2.1 1.3.2 4 1.8 2.2 4 1.7 1 3 3.7 2.1 5.4-.9 1.8-3.7 2.1-4.8.5-1.3.6-3.4.7-4.6-.6-.9 1-3 .9-3.5 0-.4-1-1-1.4-1.9-1.7-1-.3-1-2.8.4-3.1-.2-.8-.1-1.6.2-2 .4-.4.1-1.2-.7-1.8-.8-.7-1.5-3-.7-4.4-1.4.5-4.4-.9-5-1.8-.7-1-1.6-1-2.1-.2z" opacity="1" stop-opacity="1"/>
+  <path id="path1014" fill="none" stroke="#000" stroke-width=".3" d="M399 182.8c2.2-.3 3-1.7 4.6-1.6" opacity="1" stop-opacity="1"/>
+  <path id="path1016" fill="none" stroke="#000" stroke-width=".3" d="M394.1 176.5l.6.4c.4.2 1 .3 1.4.3" opacity="1" stop-opacity="1"/>
+  <path id="path1018" fill="none" stroke="#000" stroke-width=".3" d="M394.8 174.1l1 .6" opacity="1" stop-opacity="1"/>
+  <path id="path1020" fill="none" stroke="#000" stroke-width=".3" d="M400 165c-1.3-1.2 2.3-3.8 6-.1.7.6 2.5.7 3 .5" opacity="1" stop-opacity="1"/>
+  <path id="path1022" fill="none" stroke="#000" stroke-width=".3" d="M405.2 167c1.7-.4 4.3-.4 5 1.5.8 2 2.3.7 3.5 3 1.2 2.4 3.2 5 5 3.2" opacity="1" stop-opacity="1"/>
+  <path id="path1024" fill="none" stroke="#000" stroke-width=".3" d="M411.4 180a4 4 0 01-.4-3.3c-.7-.8-.4-2.4 0-3.2" opacity="1" stop-opacity="1"/>
+  <path id="path1026" fill="none" stroke="#000" stroke-width=".3" d="M406.4 175.2c0 .7 1 2 2.4 2.2" opacity="1" stop-opacity="1"/>
+  <path id="path1028" fill="none" stroke="#000" stroke-width=".3" d="M416 180.6c-.8-1-.7-2-.5-3.2" opacity="1" stop-opacity="1"/>
+  <path id="path1030" fill="none" stroke="#000" stroke-width=".3" d="M407.6 169.1c0 1 .5 2.4 1.6 3 .3.5 1.4 2.1 3.7 1.9" opacity="1" stop-opacity="1"/>
+  <path id="path1032" fill="none" stroke="#000" stroke-width=".3" d="M413.4 165a11 11 0 00-5.3-2.6" opacity="1" stop-opacity="1"/>
+  <path id="path1034" fill="none" stroke="#000" stroke-width=".3" d="M399.3 198c-2 2.7-3.2 6.4-2.3 11.6 1 5.1 2.4 12.8-1.4 16.2" opacity="1" stop-opacity="1"/>
+  <path id="path1036" fill="none" stroke="#000" stroke-width=".3" d="M414.3 235.9c-2.6-.6-6.4-.6-8.5.9a8.2 8.2 0 01-7.9.4" opacity="1" stop-opacity="1"/>
+  <path id="path1038" fill="none" stroke="#000" stroke-width=".3" d="M408.7 235.7c-2.3.4-3.4 2-3.4 6.3 0 4.2-.9 10.5-.1 16.6" opacity="1" stop-opacity="1"/>
+  <path id="path1040" fill="none" stroke="#000" stroke-width=".3" d="M404.5 237.5c-1.5.4-3 .4-2.8 4.5" opacity="1" stop-opacity="1"/>
+  <path id="path1042" fill="none" stroke="#000" stroke-width=".3" d="M396.7 242c0-2.4 1-4.7 2.6-4.3" opacity="1" stop-opacity="1"/>
+  <path id="path1044" fill="none" stroke="#000" stroke-width=".3" d="M413.3 242.5c.2-5.4-1-7-2.7-7 2.2.1 3.7.4 4.6 9.4.7 6.6 2.1 9 3.7 14.3 4.2 13.6 2.1 34.6 4.2 42" opacity="1" stop-opacity="1"/>
+  <path id="path1046" fill="none" stroke="#000" stroke-width=".3" d="M410.2 244.2a71.6 71.6 0 01-.5 49.3c4.8 13.4 9.7 23.1 10.6 28.6" opacity="1" stop-opacity="1"/>
+  <path id="path1048" fill="none" stroke="#000" stroke-width=".3" d="M396.3 274.1c.8-2.8-2-3.2.5-13.3 1-4.4 1.3-7 .6-8.5" opacity="1" stop-opacity="1"/>
+  <path id="path1050" fill="none" stroke="#000" stroke-width=".3" d="M397.4 258.3c-1 4.5 3.3 13 1.1 19" opacity="1" stop-opacity="1"/>
+  <path id="path1052" fill="none" stroke="#000" stroke-width=".3" d="M393 278.5c0 4 1 9 .8 13-.2 3.9 1.4 5.7 3.2 9.4 6.7 13.4 11.3 23 10.6 35.5 0 2.3.7 7.2-1.7 8.6" opacity="1" stop-opacity="1"/>
+  <path id="path1054" fill="none" stroke="#000" stroke-width=".3" d="M393.3 348.4c.7 0 1.4-.3 2.3-2.4.8-2 3.6-14.5 2.5-23" opacity="1" stop-opacity="1"/>
+  <path id="path1056" fill="none" stroke="#000" stroke-width=".3" d="M399.4 332.6a27 27 0 01-1.3 12.4" opacity="1" stop-opacity="1"/>
+  <path id="path1058" fill="none" stroke="#000" stroke-width=".3" d="M403.8 324.7c1 5.6 1 10.7.1 14.3" opacity="1" stop-opacity="1"/>
+  <path id="path1060" fill="none" stroke="#000" stroke-width=".3" d="M401.5 339c.1 2.3 1.2 8-.6 8.5" opacity="1" stop-opacity="1"/>
+  <path id="path1062" fill="none" stroke="#000" stroke-width=".3" d="M410.2 312.2c4.2 6.7 7.6 23.2 11.1 26.7" opacity="1" stop-opacity="1"/>
+  <path id="path1064" fill="none" stroke="#000" stroke-width=".3" d="M413.9 336.2c-.2-1.8-.3-4.4-1.3-5.5" opacity="1" stop-opacity="1"/>
+  <path id="path1066" fill="none" stroke="#000" stroke-width=".3" d="M367.8 255.5c0-1.3-.2-2.5 1.2-4.5" opacity="1" stop-opacity="1"/>
+  <path id="path1068" fill="none" stroke="#000" stroke-width=".3" d="M365.7 256.2c.2-4.4.1-4.8 1.4-6" opacity="1" stop-opacity="1"/>
+  <path id="path1070" fill="none" stroke="#000" stroke-width=".3" d="M364 256.3c0-3.1-.4-4.2.8-6.3" opacity="1" stop-opacity="1"/>
+  <path id="path1072" fill="none" stroke="#000" stroke-width=".3" d="M379.8 161.2l-4.6 3.4" opacity="1" stop-opacity="1"/>
+  <path id="path1074" fill="none" stroke="#000" stroke-width=".3" d="M381 162.2c-.5.1-2 1.4-4.9 3.6" opacity="1" stop-opacity="1"/>
+  <path id="path1076" fill="none" stroke="#000" stroke-width=".3" d="M381.2 164c-1 .4-2.6 2-4.2 3.2" opacity="1" stop-opacity="1"/>
+  <path id="path1078" fill="none" stroke="#000" stroke-width=".3" d="M374 163.7l-1.6 1.6" opacity="1" stop-opacity="1"/>
+  <path id="path1080" fill="none" stroke="#000" stroke-width=".3" d="M414.3 357c-.3-.3-.3-1.3.2-2.4" opacity="1" stop-opacity="1"/>
+  <path id="path1082" fill="none" stroke="#000" stroke-width=".3" d="M416.3 356.5c-.3-.3 0-1.7.4-2.6" opacity="1" stop-opacity="1"/>
+  <path id="path1084" fill="none" stroke="#000" stroke-width=".3" d="M418.3 355.8c-.4-.2-.5-1 0-2" opacity="1" stop-opacity="1"/>
+  <path id="path1086" fill="none" stroke="#000" stroke-width=".3" d="M419.9 355c-.3 0-.4-.5 0-1.8" opacity="1" stop-opacity="1"/>
+  <path id="path1090" fill="#000" stroke="none" stroke-width=".3" d="M397.2 168.7c.8 1 1.7 1 1.8 1.7l.4 1h-.6l-1.4-.1c-.4 0-.9-.5-.6-.6.3 0 .3-.1.2-.3l.3-.6c.2-.1 0 0 0-.4-.2-.3-.3-1-.1-.7z" opacity="1" stop-opacity="1"/>
+  <path id="path1092" fill="#000" stroke="none" stroke-width=".3" d="M397.7 167.7a6 6 0 013.4 1.5c.7.8.1.6-.2.6-.4 0-1-.2-1.4-.6-.3-.4-1.4-1-2-1.1-.2-.1-.5-.5.2-.4z" opacity="1" stop-opacity="1"/>
+  <path id="path2758" fill="#012169" stroke-width=".5" d="M.2 0h256v256H.2z" opacity="1" stop-opacity="1"/>
+  <path id="path2760" fill="#FFF" stroke-width=".5" d="M256.2 0v32l-95 96 95 93.5V256h-33.5l-95.5-94-93 94H.2v-34l93-93.5L.2 37V0h31l96 94 93-94z" opacity="1" stop-opacity="1"/>
+  <path id="path2762" fill="#C8102E" stroke-width=".5" d="M92.2 162l5.5 17-76.5 77H.2v-1.5zm62-6l27 4 75 73.5V256zm102-156l-96 98-2-22 75-76zM.2.5L96.7 95l-29.5-4-67-66.5z" opacity="1" stop-opacity="1"/>
+  <path id="path2764" fill="#FFF" stroke-width=".5" d="M88.2 0v256h80V0zM.2 88v80h256V88z" opacity="1" stop-opacity="1"/>
+  <path id="path2766" fill="#C8102E" stroke-width=".5" d="M.2 104v48h256v-48zm104-104v256h48V0z" opacity="1" stop-opacity="1"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mt.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mt.svg
new file mode 100644
index 0000000..96acc15
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mt.svg
@@ -0,0 +1,50 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mt" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#ce0000" d="M256 0h256v512H256z"/>
+    <path fill="#fff" d="M0 0h256v512H0z"/>
+  </g>
+  <g transform="matrix(.35005 0 0 .35003 40.7 -25.5)">
+    <path fill="#f1eeee" fill-rule="evenodd" d="M183.1 381.7c0 2.3-2.6 4.2-5.8 4.2-3.3 0-5.9-2-5.9-4.2 0-2.3 2.6-4.2 5.8-4.2s6 1.9 6 4.2z"/>
+    <path fill="#c00" fill-rule="evenodd" d="M0 361.4v106.3h106.4a38.1 38.1 0 0035.4 35.5v106.3h106.3V503.2a38.1 38.1 0 0035.4-35.5h106.3V361.4H283.5a38.1 38.1 0 00-35.4-35.4V219.7H141.8V326a38.1 38.1 0 00-35.4 35.4H0z"/>
+    <path fill="#ffe600" fill-rule="evenodd" d="M3.6 365v99.2h106.3a38.1 38.1 0 0035.4 35.4V606h99.2V499.6a38.1 38.1 0 0035.5-35.4h106.3V365H280a38.1 38.1 0 00-35.5-35.5V223.2h-99.2v106.3A38.1 38.1 0 00110 365H3.6z"/>
+    <path fill="#707070" fill-rule="evenodd" d="M7 368.5v92.1h106.3a38.1 38.1 0 0035.5 35.5v106.3h92.1V496a38.1 38.1 0 0035.4-35.5h106.3v-92H276.3A38.1 38.1 0 00241 333V226.8h-92.1V333a38.1 38.1 0 00-35.5 35.4H7z"/>
+    <path fill="#a0a0a0" fill-rule="evenodd" d="M10.6 372v85h106.3a38.1 38.1 0 0035.4 35.5v106.3h85V492.5a38.1 38.1 0 0035.5-35.4H379v-85H272.8a38.1 38.1 0 00-35.4-35.5V230.3h-85v106.3a38.1 38.1 0 00-35.5 35.4H10.6z"/>
+    <g fill-rule="evenodd">
+      <path fill="#d0d0d0" d="M153.2 327.8c6.3 6.3 1.2 21.4-11.2 33.9s-27.6 17.5-33.9 11.2c-6.2-6.2-1.1-21.3 11.3-33.8s27.6-17.5 33.8-11.3z"/>
+      <path fill="gray" d="M145.7 335.3c6.3 6.3 4.6 18-3.7 26.3s-20.1 10-26.3 3.8c-6.3-6.2-4.6-18 3.7-26.3s20.1-10 26.3-3.8z"/>
+      <path fill="#d0d0d0" d="M114.4 354.1l2.5-2.5 10 5-5-10 2.5-2.5 10 20-20-10zm15-15l2.5-2.5 15 15-2.4 2.5z"/>
+    </g>
+    <g fill-rule="evenodd">
+      <path fill="#d0d0d0" d="M281.6 373c-6.2 6.2-21.4 1.1-33.8-11.3s-17.5-27.6-11.3-33.9c6.3-6.2 21.4-1.1 33.8 11.3s17.5 27.6 11.3 33.8z"/>
+      <path fill="gray" d="M274.1 365.4c-6.2 6.2-18 4.6-26.3-3.7s-10-20.1-3.8-26.3 18-4.6 26.3 3.7 10 20 3.8 26.3z"/>
+      <path fill="#d0d0d0" d="M255.3 334l2.5 2.6-5 10 10-5 2.5 2.5-20 10 10-20zm15 15.1l2.5 2.5-15 15-2.5-2.4z"/>
+    </g>
+    <g fill-rule="evenodd">
+      <path fill="#d0d0d0" d="M236.5 501.3c-6.2-6.2-1.1-21.4 11.3-33.8s27.6-17.5 33.8-11.3c6.2 6.2 1.2 21.4-11.3 33.8s-27.5 17.5-33.8 11.3z"/>
+      <path fill="gray" d="M244 493.8c-6.2-6.2-4.5-18 3.8-26.3s20-10 26.3-3.8c6.2 6.3 4.5 18-3.8 26.3s-20 10-26.3 3.8z"/>
+      <path fill="#d0d0d0" d="M275.4 475l-2.5 2.5-10-5 5 10-2.6 2.5-10-20 20 10zm-15 15l-2.6 2.5-15-15 2.5-2.5z"/>
+    </g>
+    <g fill-rule="evenodd">
+      <path fill="#d0d0d0" d="M108.2 456.2c6.2-6.2 21.3-1.2 33.8 11.3s17.5 27.6 11.3 33.8c-6.3 6.2-21.4 1.2-33.9-11.3s-17.5-27.6-11.2-33.8z"/>
+      <path fill="gray" d="M115.7 463.7c6.2-6.2 18-4.5 26.3 3.8s10 20 3.7 26.3c-6.2 6.2-18 4.5-26.3-3.8s-10-20-3.7-26.3z"/>
+      <path fill="#d0d0d0" d="M134.4 495l-2.5-2.5 5-10-10 5-2.5-2.5 20-10-10 20zm-15-15l-2.5-2.5 15-15 2.5 2.5z"/>
+    </g>
+    <path fill="none" stroke="#707070" stroke-width="1pt" d="M269.3 414.6c0 41-34.1 74.4-76.2 74.4S117 455.7 117 414.6s34.1-74.4 76.2-74.4 76.2 33.3 76.2 74.4z" transform="matrix(.97674 0 0 1 6.3 0)"/>
+    <path fill="none" stroke="#707070" stroke-width="1pt" d="M269.3 414.6c0 41-34.1 74.4-76.2 74.4S117 455.7 117 414.6s34.1-74.4 76.2-74.4 76.2 33.3 76.2 74.4z" transform="matrix(.74419 0 0 .7619 51.2 98.7)"/>
+    <path fill="#d0d0d0" fill-rule="evenodd" d="M170 474.8a3.5 3.5 0 11-7 0 3.5 3.5 0 017 0zm56.8 0a3.5 3.5 0 11-7.1 0 3.5 3.5 0 017 0zm-34.3 0v3.7h-4.7c-4.7 0-4.7 3.7 0 3.7h4.7v3.7c0 3.8 4.2 4.3 4.5.3l.3-4h4.7c4.7 0 4.7-3.7 0-3.7h-4.7v-3.7c0-3.7-4.8-3.7-4.8 0z"/>
+    <path fill="#d0d0d0" fill-rule="evenodd" stroke="#707070" stroke-width="1pt" d="M180.7 163v7s-3.3 5.5-24.8 7.2-24.8 0-24.8 0c.6 6.1 4.7 17.9 3.5 31.9.9 16.2-4 31-4 31 .5.8-2 1.3-6.6.8 3.6-3.5 3.1-13.8 3.6-28.3.4-14.6-13.6-36.5-10.7-42.5s63.8-7.1 63.8-7.1z" transform="matrix(.33032 0 0 .29556 117.6 374.3)"/>
+    <path fill="#d0d0d0" fill-rule="evenodd" stroke="#707070" stroke-width="1pt" d="M272.8 162.3c20.9-1.1 55.9-.9 55.9-.9s8.3 18.5 7.9 28.7-3.2 19-7 14.6 1.7-3.5 2.4-14.6c.7-11-6.6-22.4-6.6-22.4s-15 7.3-37.5 5.8-12.5-10.8-15-11.2z" transform="matrix(.33032 0 0 .29556 115.2 366.9)"/>
+    <path fill="#d0d0d0" fill-rule="evenodd" stroke="#707070" stroke-width="1pt" d="M312.2 274c20.9-1.2 34.6 2.4 34.6 2.4s8.2 18.5 7.9 28.7-3.2 19-7.1 14.6 1.8-3.5 2.5-14.6c.7-11-6.7-22.5-6.7-22.5s-15 7.3-37.4 5.9c-22.5-1.5-16.1-3-18.6-3.4s-3.2 7-37.2 8-51.4-8-51.4-8-3.4 5.4-24.8 7-24.8 0-24.8 0c.5 6.2 4.7 18 3.5 32 .8 16.2-4 31-4 31 .5.8-2.1 1.3-6.6.8 3.5-3.5 3.1-13.8 3.5-28.3C146 313 132.1 291 135 285s18.3-.4 21.3-3.6c2.9-3.1-13.8-25.3-10.7-46 3.2-20.8 20.8-15 42.6-14.2 21.7.7 69.8 7 81.5 0 11.6-7 6.5-33 17.6-49.6a32.2 32.2 0 0128.4-14.2c7 0 17.7 28.4 17.7 35.4l-3.5 3.6h-3.6v3.5c-8 1-9.2-7.7-14.1-14.1-2.2 10 7 42.5 7 63.7 0 17.8-6.6 25.6-7 24.3z" transform="matrix(.33032 0 0 .29556 104.6 339.3)"/>
+    <path fill="#d0d0d0" fill-rule="evenodd" stroke="#707070" stroke-width="1pt" d="M209 131.1c.4 7-27.3 22.9-29.6 29.2s7 9.7 4.2 13.3c-2.9 3.6-5.2 2.2-5.8 2.9-.6.7-10.4-24.6-10.4-24.6s26-13 25-18.7-19.2-9-22.6-23.3c-3.3-14.2-1.4-41.7-4.1-47.5C163 56.7 131 51.2 131 42.5s33-32.5 36.4-36c3.5-3.6 7 3.5 3.5 7-3.5 3.6-29.2 25.5-29.2 29 0 3.6 21.3 7.1 28.4 7.1 7 0 10.6-3.5 10.6-7 0-3.1-7-3.6-7-10.7s3.5-10.6 10.6-10.6c3.5 0 10.3 4.5 10.6 10.6.3 6-6.3 6.6-7.1 10.6-.8 4 7 7.1 14.2 7.1 7 0 31.3 20.6 34.8 24.2 3.5 3.5 7 3.5 3.5 7-3.5 3.6-1.4 7.8-5 4.2-3-3.4-3.5-7-3.5-7-.3-3.3-26.3-17.8-29.8-14.2-3.6 3.5 0 46 0 49.6 0 7 7.3 7 7 17.7z" transform="matrix(.33032 0 0 .29556 116.1 372.4)"/>
+    <path fill="#a7a7a7" fill-rule="evenodd" d="M170.2 386.9h14v14.7h-14z"/>
+    <rect width="87.5" height="1.1" x="405.6" y="64.6" fill="gray" fill-rule="evenodd" rx="1.3" ry=".6" transform="matrix(.5544 .83225 -.88236 .47057 0 0)"/>
+    <path fill="#d0d0d0" fill-rule="evenodd" stroke="#707070" stroke-width="1pt" d="M180.7 42.5a7 7 0 11-14.2 0 7 7 0 0114.2 0z" transform="matrix(.33032 0 0 .29556 114 362.8)"/>
+    <path fill="gray" fill-rule="evenodd" d="M214.7 394.4c0 1-5.4 2-11.7 2s-11.7-1-11.7-2c0-.8 5.4 1.3 11.7 1.3s11.7-2.1 11.7-1.3z"/>
+    <path fill="#a7a7a7" fill-rule="evenodd" d="M171.4 401.6h11.7v4.1h-11.7z"/>
+    <path fill="gray" fill-rule="evenodd" d="M209.4 391.2c-1 2.2-2.2 3.7-2.4 3.4-.2-.2.6-2.2 1.7-4.3 1.2-2.1 2.3-3.6 2.4-3.4.2.3-.5 2.2-1.7 4.3zm3 5.5c-1.3 1.2-2.3 2-2.4 1.7 0-.2 1-1.3 2.3-2.5 1.3-1.1 2.4-1.9 2.4-1.6 0 .2-1 1.3-2.3 2.4z"/>
+    <path fill="gray" fill-rule="evenodd" d="M211 394c.9 1.8 1.5 3.3 1.3 3.4-.1 0-1-1.3-2-3-1-1.8-1.6-3.2-1.4-3.3.2 0 1 1.3 2 3zm-1 9.1c0 .3-3.6.5-8.2.5s-8.2-.2-8.2-.5 3.7-.5 8.2-.5c4.6 0 8.2.2 8.2.5zm-26.9-1c0 .3-2.6.5-5.8.5-3.3 0-5.9-.2-5.9-.5s2.6-.5 5.8-.5 6 .2 6 .5z"/>
+    <path fill="#d0d0d0" fill-rule="evenodd" stroke="gray" stroke-width="1pt" d="M375.5 172s9 36 47 36.5 51.3-10.8 35.8-30-44-13.1-40.3 3.4-10.8 22-14.2 10.4c-3.4-11.6-17-46 7.5-48.3 24.5-2.3 76.5-14.8 89.5 9.2S486 198.9 507 204c21 5 24-5.8 60-9.1s49.7 11 62 9c12.3-2 10.6-37.2.8-46.1-9.7-9-28.5-10.6-33.3-20.4-4.8-9.8-17.8-1.9-16.6-13s18.5 7.7 18.7 2c0-.2 2.9-3.9 3.5-4.9-2.2-.8-3.5.6-5.1 2 1.8-2.4 1.7-3.5 2.3-5.4-.3-.7-2.5 2.8-2.9 2s2.5-5.6 1.2-3.8c-.4.5-3.8 3.3-3.9 1.4 0-.8 1.8-2.8 1.2-4-.5-.9-3 1.1-3.4 1.3 1.5-3.3 1.4-3.2 0-5.7-1.3-2.4-2.2-2.4-4.3.4.9-4 1.1-4.8-1-6.3-1.6-1.6-1.7-3-3.8 4.1.8-7.6-1.3-8-.4-11.5.5-3.3 3.3-4.7 7.9-4 9 .1 13.7 18 16.6 17.9 3 0 6.2-18.9 18.8-11.3 12.5 7.7 14 9.2 20.4 13.8 6.3 4.5-4.5 11.4-.9 20.4 3.6 9 28.3 38.8 21.3 70-7 31-25 36-26.7 49.5-1.6 13.4 57 8 72 12.5s24.4 23 25 26.2-26.2 2.9-26.2 2.9-13.8-11.8-46.6-13c-32.9-1-45.4-23-57.7-25.8s-38.5 4.7-53.1 3.6c-14.7-1.1-29.5-5-39-7.1-9.5-2.2-56.7 35.4-56.5 44.2-9.9-.7-33-2.7-32.1-1.7 1 1 4.2-17 22.2-20.2 18-3.2 35.7-17.6 35-27-.5-9.5 3.6-42 5-55.8s8.3-20.6 6.7-28c-1.6-7.2-22.2-14.7-42-14.5-19.8.2-41.8 2-45 10-3.2 8-.7 31 3.4 28.3 4-2.6-1-17.7 3.3-20.8a57.3 57.3 0 0125.8-6.2c10.4-.4 28.5 14.7 28.3 19.5-.2 4.9 5.8 21-2.5 27-8.3 6.2-25.3 9-41.6 7.6a71.4 71.4 0 01-38.7-16.7c-6-6-9.6-24.1-9.6-25.4z" transform="matrix(.21598 0 0 .12989 76.3 416.2)"/>
+    <path fill-rule="evenodd" d="M209.5 431.6a1 1 0 11-2 0 1 1 0 012 0z"/>
+    <path fill="#d0d0d0" d="M253.6 418l4.6 1 7.6-5.3-.6 2.8-4 2.6-2.2 1.4 1.5 2.2 2.5 4-.6 2.6-4.7-8.1-4.6-1 .5-2.2zm-7.7-33.5l8.8-4.1-2.4-5.2 1.2-.5 5.7 12.5-1.2.5-2.4-5.2-8.8 4-1-2zm-13.7-16.7l8.1-7.4 1.6 1.8-.2 12.5 6.4-5.8 1.5 1.6-8.2 7.4-1.6-1.7.3-12.6-6.4 5.9-1.5-1.7zm-35.5-14.3l1.4-11 2.2.4-1.1 9.6 8.5 1-.2 1.3-10.8-1.3zm-17.4 1.6l-2-10.8 2.3-.4 1.7 9.5 8.4-1.5.3 1.3-10.7 1.9zM147 371l-.8-1 5.8-4.6 2.5 3.2a16.3 16.3 0 01-2 3.2 16 16 0 01-2.5 2.6 14.8 14.8 0 01-4.1 2.4c-1.4.5-2.6.6-3.7.4s-2-.8-2.7-1.6a4.9 4.9 0 01-1-3 6.3 6.3 0 011-3.6 14.3 14.3 0 013.2-3.4 13.7 13.7 0 013-1.8c.9-.4 1.7-.7 2.5-.7s1.4.2 2.1.6l-1.4 1.6a3.7 3.7 0 00-1.6-.4c-.5 0-1 .1-1.7.4a9.2 9.2 0 00-2.1 1.3c-.8.6-1.5 1.3-2 2l-.9 1.7a4 4 0 00.7 3.7 3.8 3.8 0 002.2 1.4c.8.2 1.7.1 2.7-.3 1-.4 2-1 2.9-1.6a11.8 11.8 0 002-2.1c.6-.8 1-1.5 1.2-2l-1.3-1.6-4 3.2zm-.3 79.1l-9 6.4-6.8-9.6 1-.7 5.5 7.7 2.8-2-4.7-6.7 1-.7 4.8 6.6 4-2.9 1.4 2zm-13.2-14.3a3.6 3.6 0 002.5-2.5c.4-1.3.4-2.7 0-4.4a7.3 7.3 0 00-2.3-3.8 3.8 3.8 0 00-3.6-.7 3.9 3.9 0 00-2 1.3 4.5 4.5 0 00-1 2.5c-.1 1 0 2 .3 3.1a8 8 0 002.2 3.8c1 1 2.3 1.1 3.9.7zm.6 2.3c-1.8.5-3.4.1-4.8-1-1.4-1.3-2.4-3-3.1-5.4-.4-1.6-.6-3-.5-4.4s.5-2.5 1.2-3.4a4.7 4.7 0 012.5-1.8 4.7 4.7 0 013.2.2 6.5 6.5 0 012.8 2.4 12.8 12.8 0 011.8 3.9c.4 1.6.6 3 .4 4.4a6.6 6.6 0 01-1.2 3.4 4.4 4.4 0 01-2.3 1.7zm.9-22.4l-11-.2.2-7.7c0-1.6.1-2.7.3-3.5.3-.8.6-1.5 1.1-2 .5-.4 1.1-.6 1.7-.6.8 0 1.4.4 2 1.2s.8 2 .9 3.7l.6-1.3a9.8 9.8 0 011.5-2l3-2.9v3l-2.4 2.2-1.5 1.6c-.4.4-.6.8-.8 1.2a4.6 4.6 0 00-.3 1v1.3l-.1 2.6 4.8.2v2.3zm-6.1-2.4l.1-5-.1-2.4a2.8 2.8 0 00-.7-1.4 2 2 0 00-1-.5c-.5 0-1 .3-1.2 1a6 6 0 00-.6 2.7l-.1 5.5 3.6.1zm30.6-48.4V352l2.2-1.3 11.7 5.9-2.2 1.3-3.5-1.8-6.2 3.7v3.8l-2 1.3zm2-6.5l5-3-3.1-1.7-2.2-1.3.2 2.3v3.7zm53.1-3.4l11.9-5 2 1.5-.7 13-2.2-1.5.4-3.9-6-4.2-3.4 1.5-2-1.4zm6.7-.7l4.8 3.5.3-3.6c.1-1 .2-1.9.4-2.5l-2 1.1-3.5 1.5zm29.5 41l10.7-2.6 1.8 7.5c.3 1.5.5 2.7.5 3.5a4 4 0 01-.6 2.1c-.4.6-.8 1-1.4 1.1-.8.2-1.5 0-2.2-.7a8.2 8.2 0 01-1.9-3.3c0 .6 0 1-.2 1.4a9.8 9.8 0 01-1 2.2l-2.2 3.7-.7-2.8 1.7-2.8 1.1-2c.3-.5.4-1 .5-1.3a4.6 4.6 0 000-1l-.2-1.3-.7-2.6-4.7 1.1-.5-2.2zm6.5.8l1.1 4.8c.3 1 .5 1.8.8 2.3.3.6.6 1 1 1.2.3.2.7.3 1 .2.5-.1.9-.5 1-1.1a6 6 0 00-.1-3l-1.3-5.3-3.5.9z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mu.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mu.svg
new file mode 100644
index 0000000..773d3d5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mu.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mu" viewBox="0 0 512 512">
+  <g fill-rule="evenodd">
+    <path fill="#009f4d" d="M0 384h512v128H0z"/>
+    <path fill="#151f6d" d="M0 128h512v128H0z"/>
+    <path fill="#ee2737" d="M0 0h512v128H0z"/>
+    <path fill="#ffcd00" d="M0 256h512v128H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mv.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mv.svg
new file mode 100644
index 0000000..aa5ed53
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mv.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mv" viewBox="0 0 512 512">
+  <path fill="#d21034" d="M0 0h512v512H0z"/>
+  <path fill="#007e3a" d="M128 128h256v256H128z"/>
+  <circle cx="288" cy="256" r="85.3" fill="#fff"/>
+  <ellipse cx="308.6" cy="256" fill="#007e3a" rx="73.9" ry="85.3"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mw.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mw.svg
new file mode 100644
index 0000000..a9521a0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mw.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mw" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M179.7 0h708.7v708.7H179.7z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#a)" transform="translate(-129.8) scale(.72249)">
+    <path fill="#f41408" d="M0 0h1063v708.7H0z"/>
+    <path fill="#21873b" d="M0 472.4h1063v236.3H0z"/>
+    <path d="M0 0h1063v236.2H0z"/>
+    <path fill="#f31509" d="M401.4 214a147.3 147.3 0 01192.2-80.3 142 142 0 0180.2 80.3H401.4zm-36 9.8a419.9 419.9 0 01-72.5-12c-5.6-2-5.9-5.4-5.2-8a7 7 0 018.5-4.5c7.9 2 39.9 10.5 69.3 24.5zM538 92.6c-5.8-32-7.3-67.3-6.7-73.2.5-6 3.8-7 6.5-7a7 7 0 016.5 7c0 8.2-.2 41.3-6.3 73.2zm16 .8a427.9 427.9 0 01-.5-73.6c1.1-5.9 4.4-6.7 7.1-6.4 2.7.2 6.3 3.3 5.9 7.6-.7 8-3.7 41-12.5 72.4zm14.4 2c-.4-32.6 4-67.6 5.7-73.4 1.5-5.8 4.9-6.3 7.6-5.8a7 7 0 015.2 8c-1.4 8-7.1 40.6-18.5 71.1zm15.3 3.3c2.5-32.4 10-66.9 12-72.5 2-5.6 5.5-5.8 8.1-5.1a7 7 0 014.5 8.4c-2.1 7.9-10.6 39.9-24.6 69.2zm15 4.8A421.6 421.6 0 01617 32.3c2.6-5.4 6-5.3 8.6-4.4a7 7 0 013.7 8.9c-2.8 7.6-14.2 38.7-30.7 66.7zm14 5.9c8-31.6 21.4-64.2 24.5-69.4 3-5.2 6.4-4.8 8.8-3.6a7 7 0 013 9c-3.5 7.5-17.4 37.5-36.3 64zm13.8 7.2a432 432 0 0130.4-67c3.4-4.9 6.8-4.2 9.2-2.8a7 7 0 012 9.3c-4 7-20.5 35.7-41.6 60.5zm13 8.3a419.9 419.9 0 0136.2-64c3.8-4.6 7.1-3.6 9.3-2a7 7 0 011.3 9.4c-4.7 6.7-23.6 33.8-46.8 56.6zm12.2 9.5c16-28.4 37.4-56.4 41.7-60.7 4.2-4.2 7.4-3 9.5-1.2 2 1.8 3.2 6.3.4 9.6-5.2 6.2-26.4 31.6-51.6 52.3zm11.5 10.5a424 424 0 0146.7-56.8c4.6-3.8 7.7-2.3 9.6-.4a7 7 0 01-.4 9.6 410 410 0 01-56 47.6zm10.4 11.5c20.7-25.1 46.7-49 51.6-52.4 5-3.4 7.8-1.6 9.6.4a7 7 0 01-1.2 9.5 421.5 421.5 0 01-60 42.5zm9 11.8a422 422 0 0155.8-48c5.2-3 8-.9 9.5 1.4 1.6 2.2 1.6 6.8-2 9.3a415.9 415.9 0 01-63.2 37.3zm8.2 12.8a421.7 421.7 0 0159.7-43c5.4-2.5 8-.2 9.4 2.1 1.3 2.3 1 7-2.8 9.2-7 4-35.6 20.8-66.3 31.7zm7.6 14.6a431.5 431.5 0 0163.4-37.3c5.6-2 8 .5 9.1 3a7 7 0 01-3.6 8.8 417.9 417.9 0 01-68.9 25.5zm5.8 14.1a413 413 0 0166.3-31.7c5.8-1.5 8 1.2 8.9 3.7 1 2.5-.3 7-4.4 8.5a412.8 412.8 0 01-70.8 19.5zm4.6 15a421 421 0 0169-25.8c5.8-1 7.7 1.8 8.4 4.5a7 7 0 01-5 8c-8 2.2-39.9 10.7-72.4 13.2zM522.4 93.1A421.2 421.2 0 01508.9 21c0-6 3.1-7.3 5.8-7.6a7 7 0 017.1 6.5c.8 8 3.7 41 .6 73.4zm-15.4 2a418.8 418.8 0 01-19.7-70.8c-.5-6 2.5-7.6 5.1-8.1a7 7 0 017.7 5.8c1.4 8 7.2 40.6 6.9 73.1zm-15.3 3.4a421.5 421.5 0 01-25.9-68.9c-1-5.9 1.9-7.8 4.5-8.5a7 7 0 018 5.1c2.2 7.9 10.8 39.8 13.4 72.3zm-14.4 4.5a420.4 420.4 0 01-31.6-66.4c-1.5-5.8 1.2-8 3.7-8.9a7 7 0 018.5 4.4c2.8 7.7 14.1 38.7 19.4 70.9zm-14 5.7A419.8 419.8 0 01426 45.4c-2-5.7.4-8 2.9-9.1a7 7 0 018.9 3.6c3.4 7.4 17.3 37.4 25.4 69zm-14.2 7.4a420 420 0 01-42.8-59.9c-2.5-5.4-.3-8 2-9.3a7 7 0 019.2 2.8c4.1 7 20.7 35.7 31.6 66.4zm-13 8.2a422 422 0 01-47.8-56c-3-5.2-1-8 1.3-9.5a7.2 7.2 0 019.4 2c4.7 6.7 23.6 33.8 37.1 63.5zm-12.1 9a419.3 419.3 0 01-52.4-51.6c-3.4-4.9-1.6-7.8.5-9.5a7 7 0 019.5 1.2c5.2 6.2 26.4 31.6 42.4 60zM412.2 144a421.6 421.6 0 01-56.8-46.8c-3.8-4.6-2.3-7.7-.4-9.6a7 7 0 019.6.4c5.8 5.8 29.2 29.1 47.6 56zM402 154.9a421 421 0 01-60.5-41.8c-4.2-4.2-2.9-7.4-1.1-9.5a7 7 0 019.5-.4c6.3 5.2 31.5 26.5 52.1 51.7zm-9.7 12.5a421.4 421.4 0 01-64-36.3c-4.6-3.9-3.6-7.2-2-9.4a7 7 0 019.5-1.3 423 423 0 0156.5 47zm-8.7 13.4a420.5 420.5 0 01-67-30.3c-5-3.5-4.3-6.8-2.9-9.2a7 7 0 019.3-2.1c7.1 4 35.8 20.5 60.6 41.6zm-7.3 13.7c-31.5-8-64.2-21.4-69.4-24.4-5.1-3-4.8-6.4-3.6-8.8a7.1 7.1 0 019.1-3c7.4 3.4 37.4 17.4 64 36.2zm-5.8 13.8a415 415 0 01-71.2-18.6c-5.4-2.5-5.3-6-4.4-8.5 1-2.5 4.8-5.2 8.9-3.7 7.6 2.8 38.7 14.2 66.7 30.8z"/>
+    <path fill="#f31509" d="M365.5 223.8c-32.5-2.5-67-9.9-72.6-12-5.6-2-5.9-5.4-5.2-8a7 7 0 018.5-4.5c7.9 2 39.9 10.5 69.3 24.5z"/>
+    <path d="M275.3 214.7H803V234H275.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mx.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mx.svg
new file mode 100644
index 0000000..a440656
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mx.svg
@@ -0,0 +1,378 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-mx" viewBox="0 0 512 512">
+  <defs>
+    <radialGradient id="b" cx="842.3" cy="103.7" r="25.9" gradientTransform="matrix(.11321 .02876 -.02762 .11359 180.2 193.2)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <radialGradient id="c" cx="651.5" cy="550.5" r="25.9" gradientTransform="matrix(-.10753 -.04307 .03971 -.09991 375.3 9.8)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <radialGradient id="d" cx="380.8" cy="740.4" r="25.9" gradientTransform="matrix(.06029 .00225 -.00274 .11843 377.4 -120)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="a">
+      <stop offset="0" stop-color="#fff"/>
+      <stop offset="1" stop-color="#f15770"/>
+    </linearGradient>
+  </defs>
+  <path fill="#ce1126" d="M341.3 0H512v512H341.3z"/>
+  <path fill="#fff" d="M170.7 0h170.6v512H170.7z"/>
+  <path fill="#006847" d="M0 0h170.7v512H0z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M284.6 295.6l.2 3.5 1.4-.9-1-3z"/>
+  <circle cx="284.5" cy="294.6" r="1.1" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M289 301.1l-2.7-2.5-1.2 1 3.6 2z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M288.7 302.6c-.4-.6-.3-1.3.3-1.7.5-.4 1.2-.3 1.6.2.3.5.2 1.2-.3 1.6-.5.4-1.2.3-1.6-.2zm20.3-38.9l2.7 2.6.4-1.3-2.5-1.7z"/>
+  <circle cx="308.7" cy="263" r="1.1" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M316.1 265.3l-4 1.1.3-1.3 3.5-.4z"/>
+  <circle cx="316.8" cy="264.7" r="1.1" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M302.3 285.5l-2.5-4 .4-.1 2.9 3.3z"/>
+  <circle cx="299.6" cy="280.7" r="1.2" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M302.5 285.6l3.2.6.1-.5-2.7-1z"/>
+  <circle cx="306.6" cy="286.2" r="1.1" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M227.7 294.4c0 .6-.4 1-.8 1s-.8-.5-.8-1 .4-1 .8-1 .8.5.8 1zm0 1.8l.7 4-1-.3-.3-3.5z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M228.6 294.9c.4.6-.3 1.5-1.2 1.7-.8.3-1.9-.1-1.9-.9 0-.9 1.3-.4 1.6-.5.5-.2 1-1 1.5-.3z"/>
+  <ellipse cx="221.6" cy="301" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" rx="1.3" ry=".9"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M223.7 300.8l3.9-.2-.7-.8-3.2.4z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M224 300.4c.4 1 .4 2.3-.7 2.1-1.1-.1-.9-1.1-1-1.5-.1-.7-.8-1.3-.1-2 .6-.6 1.5.4 1.8 1.4z"/>
+  <ellipse cx="211.5" cy="279.4" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" rx=".8" ry="1.1"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M211.5 281.9l.1 3.7-1-.9.1-3z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M213 280.8c.2.8-1.1 1.3-2 1.1-.8-.1-1.5-.6-1.3-1.4 0-.7 1.2-.6 1.5-.4.4.3 1.5-.6 1.8.7z"/>
+  <ellipse cx="204.9" cy="285.2" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" rx="1.3" ry=".6"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M207.3 285.2l2.9-.2 1.2 1-4.2-.2z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M206.2 283.6c.8 0 1.3.9 1.2 1.8 0 1-.8 1.7-1.5 1.6-.8-.1-.7-.8-.7-1l.5-.8c0-.3-.2-1-.1-1.2 0-.3.2-.4.6-.4zm-2.4-22.7c-.3.6-1 1-1.2.7-.3-.2-.2-.9.1-1.4.3-.5.8-.8 1.2-.6.3.2.3.8 0 1.3zm-3.2 5.9l1.6-3.9-.2-.2-1.9 2.7z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M202 263c-.9-.6-1-1.3-.8-1.9.3-.5.9-.2.9-.2l.7.7c.2.1.7-.1 1 .4.4.5.2 1 0 1a2 2 0 01-1.9 0zm-6.9-.6c.6.4 1 1 .7 1.3-.2.4-.8.4-1.4 0s-.9-.8-.7-1.2c.2-.4.9-.4 1.4 0zm1.7 1.7l3 1.8v1.5l-3.3-2.8z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M196.8 264.5c-.7.7-1.3.8-1.8.5-.6-.3-.1-.9-.1-.9l.6-.6c.2-.3 0-.8.6-1 .5-.4 1-.1 1 .2.1.3.3 1.2-.3 1.8z"/>
+  <path fill="#aa8c30" d="M285.3 295.8l-.4.4-.2.7v-1.1l.4-.3.2.3z"/>
+  <path fill="#aa8c30" d="M285.4 295s-.2.5-.9.5c-.6 0-1-.3-1-.7l.1-.9-.3.4v.7l.5.6h.4l.4.1.5-.2.3-.2v-.2zm3.4 6h-.6a13.3 13.3 0 01-2.7-1.4l3 2 .3-.6zm1.9.8s0 .6-.6.8c-.6.3-1 .2-1.2 0a1.1 1.1 0 01-.3-1l-.1.5.3.6.6.3h.5l.3-.2.4-.4.2-.4-.1-.2zm19.4-38v.8l-.7-.7.3-.4.4.3zm-.3-1c0 .5-.8 1.3-1.3 1-.6-.2-1-.8-.7-1.4l-.2.3.1.8.6.5h.6l.6-.2.3-.6v-.4zm8 1.4s-.1-.3 0 0c0 .5-.5 1.4-1.1 1.3-.7 0-1-.6-.9-1.1v.8l.3.3.5.3h.5l.6-.4.2-.5v-.3l-.1-.4z"/>
+  <path fill="#aa8c30" d="M315 264.9s0 .2-.3.4a42.8 42.8 0 00-1 .6l2.2-.6-.2-.6-.7.2zm-13.6 17.9l-.2.4v.6l-1.2-2 .4-.2 1 1.2zm-.7-2c-.3.6-1.2 1-1.6.7-.5-.3-.8-1.2-.3-1.6l-.3.2-.1.6.2.5.4.5.4.2.7-.2.5-.3s.3-1 0-.5zm4.4 4.7s0 .2-.4.2h-1.2l2 .4.2-.4-.6-.2z"/>
+  <path fill="#aa8c30" d="M307.7 286c.2.7-.4 1.4-1.2 1.1s-1-1-.8-1.5l-.2.6.2.6.5.4.5.2.5-.2.5-.5.1-.6v-.1zm-79.2 8.9c.2.2-.1 1.2-1 1.5-1 .4-1.4 0-1.6-.3l-.2-.6-.2.2.2.4.4.4.8.2.6-.1.6-.3.3-.3.3-.4v-.5l-.1-.2z"/>
+  <path fill="#aa8c30" d="M227.7 296.9l-.3.3-.2.6v-1l.4-.3.1.4zm-3 3.2s-.1.2.1.4l.8.2h-1.4l-.2-.5.7-.1zm-.5 1a1.1 1.1 0 01-.1.5c-.2.4-.3.8-.8.7a1 1 0 01-.8-.9 1 1 0 00-.2-.5v.5l.3.8.6.3h.4l.4-.2.2-.5v-.8zm-3.8-.2s.2.7 1 .7c.7 0 1-.2 1-.2v.3l-.3.1-.6.1-.6-.1-.3-.2-.2-.4v-.3zm-7.5-20.3v.3c-.1.3-.6.9-1.5.9-.8 0-1.2-.3-1.4-.6-.3-.3-.3-.7-.3-.7v.5l.3.5.9.4h.8l.8-.2.4-.4v-.7zm-1.4 1.8l-.5.2a3 3 0 00-.3.3v-1h.8v.6zm-3.8 2.8l.4.3c.4.2 2.5.4 2.5.4l-3.3-.1.2-.6h.2zm-.3 0l-.2.5c-.2.3-.6 1.2-1.3 1.1-.7-.1-.6-.6-.6-.7v-.2l-.1.5.2.3.2.2h.6l.4-.1.4-.4.2-.4.2-.5v-.3zm-1.8.1s0 .2-.6.2l-1.3-.2.3.3.4.1h1l.2-.4zm-1.7-23s.1.3-.2.5c-.3.2-1 .4-1.4.1-.4-.2-1.2-1-1.2-1l.4.6.5.5.8.2h.8l.3-.4.1-.2v-.4z"/>
+  <path fill="#aa8c30" d="M201.6 263.3v.4l-.1 1 .6-1.6-.2-.2-.3.4zm-4.3 1.2l.1.3c.2.5 2 2.1 2 2.1l-2.8-2.2.3-.5.4.3zm-.9.2l-.7.3c-.2 0-.8 0-.8-.4v-.5l-.2.5.1.3.4.2h.6l.5-.2.1-.1zm-1-1.1h-.6c-.5 0-1-.6-1-.6l.3.6.9.4.3-.4z"/>
+  <path fill="#9ca168" d="M319.9 256.1c-.3 3-3.3 4.7-4.9 5.8a8.6 8.6 0 00-2.3 2.6l-.6 1.8-.2 1.1v.4l.2 1.7-.1 3.4 2.1-1.5 1.6-.6h.4s-1.7 1.6-2.3 3.4c-.7 1.9-2 5.8-4.3 7-2.3 1.3-3.8.8-4.6 1.5l-.8.9-1 1.3-.8 1-.7.6-.5.3c0 .4 0 1-.2 1.4l-.5 1.9 1-.4h1.1l-.6 1c-.1.5.1 3.7-2.9 5.6-3 1.9-10.7 1.6-10.7 1.6l-1.4.6-1.4 1-1.2 1.4-.1.3s-1 1.2-1.7 1.6l-2.2 1.5 1.8.1 2.8 1.2s-1.8 0-3 .4c-1.1.5-6.5 3.5-9 3.4-2.7 0-6.4-3.8-6.4-3.8l-1.6-1.2-2.8-.6-3.5-.2v-.4l.1-.6 3 .1c1.7.2 2.2.8 3.6 1a5.8 5.8 0 002.8-.3l4.7-3.8 4.7-1.6 1.8.2.8.2.7.2-.8 1-1.2.7.6.5 3-.5 1 .3.2.1.4-1c.4-.5 2-1.8 2.8-2.3.7-.5.9-.5 1-.8.3-.2 1.3-2.7 1.3-2.7l.1-1.3 3.3-3.1 2.2-2.4 1-2.7-.1-.5s.7.8.6 2.5c-.1 1.7-.5 2.2-.5 2.2s2.2-1.5 3.4-2c1-.5 1.7-.4 2-.4a5.4 5.4 0 001.6-1.5c.7-1 .8-1.2.8-1.6l.1-2.2-.2-5.7 2-4.2 2.8-2.5.5-.3-.3 1v1s1.4-1.8 2.1-2.2l.5-.2.6-1.6c.2-1 .2-2.5.2-2.5v-2.3l-.4-1.8-1.3-3.5v-4.6l-1-1.3s.9-.1 2 1.5a10.8 10.8 0 011.5 4l2.7-8.1s.7 1 1.2 2.5l.7 2.7 1-2.2.1.8c.2.7 1.8 1.7 1.6 4.7zm-53.8 52s-.6-1.2-3.1-2.5a19 19 0 00-4.5-1.5v1l4 1.7 2 1.6 1.6-.3z"/>
+  <path fill="#717732" d="M284.3 300.5a19.1 19.1 0 013.5-2.8 7.8 7.8 0 012.6-.7c1.5-.3 1.7 0 5.2-2s4.3-4.1 5-4.7c.7-.5 1.9-.7 1.9-.7l-2.7 3.2c-1.3 1.4-2.7 2.3-4.7 3.6-2 1.3-6 1.4-6 1.4a6.1 6.1 0 00-3.3 1.7c-1 .8-1.6 1.7-1.6 1.7s-.2-.4 0-.7zm9.7-10.2c-3.3 3-4.3 5.8-4.3 5.8l4.3-4c1.5-1.4 3.6-2 4.5-3 1-.8 1-1.5 1.6-2l1-.9s-1.4-1-7.1 4.1zm-6.9 6.9s1.4-.6 2-1.9c.3-.9.1-1.1.7-2.2 0 0 3.4-3.2 4.6-4.6 2.1-2.5 1.2-4.6 1.2-4.6s.2 1-.7 2.2c-.9 1-5.2 4-5.8 5.8-.5 1.7-.2 1.7-.4 2.7-.6 2-1.6 2.6-1.6 2.6zm-2.2 8.4s-1.7-1.1-3.6-1c-3.9.3-7.2 2.6-9.7 2.7-2.6 0-3.6-1.2-5.6-2.6-2.1-1.4-7.3-1.2-7.3-1.2v.1l-.1.2s3.6 0 5.1.4c3 .9 4.5 4 7.9 3.7 4.3-.2 7.8-2.9 9.6-2.9 3 0 3.7.6 3.7.6zm-19.3-2s3 .6 5.4-1.1c2.3-1.7 5.1-4 6.6-4.1 1.6-.1 3.2.3 3.2.3s-2-1-3.5-.9a9 9 0 00-4.6 1.1c-1.5.9-2.2 2.5-3.8 3.5-1.5 1-3.3 1.3-3.3 1.3zm-.5 4.1c-.4 0-.9.3-1 .2-.2 0-1-1-2.4-1.6-1.3-.7-3.2-1.1-3.2-1.1s-.2 0 .2.2l3 1.1a7 7 0 012.2 1.8c0 .1.4.6 1.2.6.7 0 1-.5 1-.7-.1-.3-.6-.5-1-.5zm2.1-3s1.2.8 3.2.7c4.2 0 6.8-3 9.6-4s4.2-.2 4.2-.2v-.2a5.6 5.6 0 00-3.1-1c-4.6.1-9 3-10.9 3.8-1.8.8-3 1-3 1zM312 273c-1.5 1.5-3.6 6.2-4.5 7.4-1 1.3-2.1 1.7-2.6 2.2l-2.5 3.3c-.4.6-.5.4-.8.6-.3.3-.4.3 0 .2.5-.1.6-.4 1.3-1.2.7-.8.7-1.2 1.8-2.2 1.1-1 3.1-2.1 4.1-3.3 1-1.3 3-6 4.2-7.2 1.1-1.2 3.1-2 3.1-2s-1.6-.4-4.1 2.2zm-7.2 8.9s0-.9 1-2.1c1-1.2 1.4-1 2.2-2.9.8-1.8 1.2-3.6 1.9-5.5.6-2 1.8-3.8 1.8-3.8s-1.1 0-2.2 1.6a27.6 27.6 0 00-3.8 7c-1 2.6-1 5.7-1 5.7zm-1.4 1.8s.4-.3.5-2.6c0-2.3-.1-5.6.5-7.3.7-1.6 4.3-5.5 4.3-5.5s-1.5.3-3.6 2c-2 1.7-3 3.7-2.8 5.3 0 1.6 1 3.4 1 5l.1 3zm8.5-16.2l1.2-4c.4-.7.4-1.2 2.2-3.2 1-1.1 2-1.9 2.5-3.5.4-1.6.4-6.1.4-6.1s-.5.4-.8 1.2c-.4.8-.1 3.7-.8 5-.7 1.4-2.2 4.6-3 5.3 0 0-.1-2.3.1-4.6.3-2.3 1-3 1.4-4.5.4-1.5.2-5.4.2-5.4s-1.3 1.2-1.9 2.7c-.6 1.5-1 4-1 6s.5 3.6.6 4.7c0 1.1.1 1.7-.3 2.9-.5 1.2-.2.4-.5 1.6a27.9 27.9 0 01-.6 2h.3zm-2.8-17.2s1 1.3.9 2.9c-.2 1.5-.8 3.6-.2 5.2.6 1.6 1.5 1.7 1.8 2.7.2.9.2 2.7.2 2.7s.5-3.4.2-4.4c-.4-1-.5-.5-1-1.5s0-3.7-.4-5.3a3.8 3.8 0 00-1.5-2.3z"/>
+  <path fill="#9ca168" d="M245.4 307.9s.3-1 2.5-2 5.4-2.5 5.7-2.3c.4.2-.1 1.3-.1 1.3l-2.1.7-1.7 1-2 1.3h-2.3z"/>
+  <path fill="#9ca168" d="M251 302.1c-2.9.1-4.4.8-5 1-.1 0-.5.2-.9 0-.6-.2-1.2-1.1-1.2-1.1l-.6-.5-.1 2-4-3.6-.5 2.4-.5 1-4-3.8.1 3h-1l-3-2-.8.4 1 1.7-3.7.3-.8.6-.7.9v.3h1.4c.3-.2.5-.7.6-.5.1.2.2 1 .7 1 .5-.2 2.2-1.4 3.4-.9 1.3.7-1.8 1.6-1.4 2.5.3 1 2.5.6 3 .3.6-.3 2.3-2.4 3-1.6 1 1-2 2-1.5 3 .6 1.1 2.2.9 3 .4.8-.5 2.7-3.3 3.1-2.7.7 1-1.6 2.1-1 3 .6.8 1.9 0 2.7-.7.9-.6 1.2-2 2.4-2.7 1.1-.6 1-.3 1.4-.4.3 0 1.2-.9 1.2-.9l2.7-1.1h1.4l.7.4 1.4.2.1-1.2s-1.6-.7-2.7-.7zm-22 0l.5-1-.3-.5s-1-.5-1.9-1.4a5.4 5.4 0 00-1.6-1.3 35.6 35.6 0 01-1.7-1.1l-.6-2.3-.4-.6-1 .4-1.4-4.9-.3-.9h-.6l-1.1 3-1.3-1.9-.3-4-.8.9-1 1-1.8-3.7s-.2 0-.3.3c0 .3-.2 1.4 0 2.1a19 19 0 01-2.5-1.8c-1.8-1.6-2.3-2.4-2.3-2.4l-.8-2 .8-1.7.4-2-1.8.7-.3-4.6-.3-1.4-2.1 3-.8-1.2v-3l-.6-.1-.9 1.6s-.8-1.7-1.2-2c.1-.7.2-2.3-.2-3.6-.5-1.6-1-2.5-.9-3.8.2-1.4.8-1.5.7-2 0-.7-1 .3-.6-.5.3-.7 3-2.5 2.5-3.4-.6-1-3.3 1.4-2.7-.2.7-1.6 3.2-1.6 3.4-3.9 0-1.3-2.5 1-2.7.2-.2-.7 1.6-2.1 1.6-3 0-1 .3-1-.2-1.5s-2 1.9-2 1.9l-1.7-.6-.6 2.4-.5 2-2.1-1.2.5 2.5.5 2.4-2.1-.6 1.1 2.1 1.5 1.5 1 1.3.6.3 1 1 .2 1.2.5 1.5.1 1.5v2.3l-.1.8c-.4 0-1-.6-1.3-.2-.3.5 1.2 1.6 1 2-.3.2-2.6-.5-2.7.2-.1.7.2 1.7 1.5 2 1.3.3 4.2 1 3.7 1.6-.5.6-3.7-1.8-3.5 0a3 3 0 002 2.7c.9.3 4.1 0 4 .7-.3.7-2.7-.3-3 .8-.2 1.1 1.8 1.3 2.2 1.3.4 0 1.7 0 2.3.4l3.4 3.2c1 .9 3.1 2.3 3.7 2.7-.6 0-1.9-.2-2.1.3-.3.6 4.9 2.4 3.4 3-1.5.6-3-1.6-3.5-.3-.4 1.3 1 2.4 1.8 3 .8.4 5.3 0 4.5 1-1 1-4.2-.7-4.3.6 0 1.2 2.2 3.1 3.4 3 1.1 0 2.4-1.8 2.9-.8s-.9 1.4.2 1.6 1.9-1 3.2-.8c1.2.2 3.2 1 4.4 2a63.2 63.2 0 012.2 2.3z"/>
+  <path fill="#717732" d="M246.7 307.3c.8 0 .9.4 1 .4 0 0 1.4-1.1 2.7-1.8 1.2-.7 3-1 3-1h.2s-2.3.7-3.3 1.4l-2.5 1.7c0 .2-.6.5-1.4.5-.7 0-1-.4-1-.6 0-.3.5-.6 1.3-.6zm6.8-3.4s-.7 0-1-.3a3.5 3.5 0 00-2.1-.6 5 5 0 00-3.2 1.4s-.2.5-1.1 1c.3.1.9-.3 1.5-.8a5.9 5.9 0 013-1.1c.8-.1 1.3.3 1.7.6.4.3 1.2.2 1.2.2v-.4zm-40.4-16.5v-.6s-.6-.2-1.7-1c-1.3-.7-4.1-2.9-4.1-2.9l2.3 2.1a28 28 0 003.2 2.3h.3zm28.5 20.2l1.2-1.8c.8-1.2 1.4-1.6 1.5-1.7.1-.1-.3-.7-.5-1.2-.2-.4-.2-.9-.2-1 0 0 .3.8.8 1.2l1 .7s1-.1 1-.3c0-.2 0-.4-.2-.5-.2 0-.4.2-.9 0-1-.5-1.4-2-2-2-.6-.1-.2 1.6-.5 1.6-1 0-1.6-3.5-4-3.6-1.5-.1-1.8.2-1.9.6 0 .3 2 2.4 1.3 2.7-.7.3-2.8-3.3-4.4-3.3-1.6 0-1.7.5-1.6.9.1.3 1.8.6 1.4 1.7-.4 1.1-2-1.7-3.4-1.5-1.4.1-1.6.3-1.7.7 0 .4.5 1 .3 1.1-.2.2-1 .1-1.8.6-.7.5-1.7 1.9-1.7 1.9s.9-1.4 2.2-1.5h4.4l-.9-.7c-.5-.4-.9-1.3-.9-1.3l1.4 1.3 1.5 1s1.4 0 1.5.2c0 .2 0 .5-.6 1.1a23 23 0 01-1.4 1.3l1.6-1.2 1.2-1s1 .2 1.1.1c.1 0 0-.3-.6-1.3a46.5 46.5 0 01-1.3-2s.8.7 1.6 1.8c.9 1 .7 1.6 1 1.6l1.2.2c.3 0 .3.4-.3 1.3s-1 2-1 2l1.3-1.6c.6-.6 1-1.4 1.2-1.4h1.2l-.7-1.3c-.4-1-.5-2.2-.5-2.2s.4 1.2 1 2l1.1 1.6h1.3c0 .4 0 .6-.5 1.4l-.8 1.7zm-17.2-10l1.3.3s-1.3-.8-1.7-2c-.3-1 0-3.4-.6-3.4-.5 0-.9 1.8-1.4 1.4-.6-.3.2-3.5-.5-4.8-.6-1.4-2-2.3-2.4-1.8-.3.5-.2 3.4-1.1 2.8-1-.7 0-3.2-.2-4.3-.3-1.1-1-2-1.5-1.7-.5.3.2 2.4-.6 2.5-.9 0-.7-1.5-1-1.7-.4-.1-.6.3-.7 0-.2-.3-.1-1.3-.6-1.2-.4 0-.3 1-.2 1.4l.6 1.4c.1.3.8.7.7 1 0 .2-.4.4-.8.4h-1.4l1.4.3c.4 0 1.2-.1 1.4.2l1.1 1.7s.3-.7.4-1.9v-2.1s.3 1.3.3 2.1l-.3 2.4s.9.7.6 1h-2.3c-1 0-2.6-.3-2.6-.3s1.4.6 2.4.8c1 .2 3 .2 3 .2l1.4 1.6s.7-1.1.8-2.3V289l.4 2.2a9.8 9.8 0 01-.5 3 4 4 0 01-1.5.8c-1 .3-2.9.5-2.9.5s1.8.3 3 0c1.3-.3 1.4-.7 1.8-.5l.7.6 1 .8-.8.5-1.2.6 1.8-.6.9-.3.4.2-.1-1-.3-1.4s.5.6.6 1.3l.1 1.2s.1.2 1 .6zM199.5 269s.3-1.4.3-3c0-1.5-1-3.9-1.3-4.1a3.8 3.8 0 01-.2-.5l.7-1-1 .7-1-.4c-.4-.3-.6-.7-.6-.7l1 .5c.4.2.5.1.5.1l-.3-1.5-1.6-.8c-1-.6-2-1.5-2-1.5l2.2 1.2 1.3.3s.9-.2 1.3-.5l1.3-.9s-.8.5-1.4.6l-1.2.2-.3-1.9-.9-.9c-.7-1-1.2-2.2-1.2-2.2s.7.9 1.3 1.3c.6.5 1.1 1.2 1.1 1.2l1.3-.8 2.3-1.6-2.2 1-1.3.6v-1.2c.2-.4.6-1 .6-1.3-.1-.4-.4-.2-.5-.5l.4-2.1v1c.1.3 0 .7.4.7s2.6-2.1 2.8-2.5c.3-.4.7-1.5-.4-1-1.1.4-.9 1.3-1.8 1.3-.3 0-.6-1.2-1-1-.3.3-1 1-1.2 2-.2.8.2 2-.3 2.4-.5.4-1-1.4-1.8-1.2-1 .3-1.2 1.6-1 2 .1.6 2.1 3 1.5 3.2-.6.3-2.2-2-3-.4-1 1.5 2.6 3.1 3 3.5.5.4 0 .5.7 1.3.6.8 1.5 1 1.9 1.5.4.5 1.7 3 1.7 4.6v2.3zm9.4 13.6s-.9-1-.6-2.6c.3-1.7 1.5-4.6 1-5-.3-.4-1.6 1.8-1.9 1.3-.3-.5.7-3.4.2-4.6-.5-1.2-.6-2-1.6-1.9-1 .1-1.5 3.5-2 3-.5-.7.3-2.2 0-3-.4-.8-.5-1.1-1-1-.6.1-.8 1.7-1.2 1.7-.3 0-1-2-1.7-1.6-.7.2 1.8 3.5 1.8 3.5s.5-.4.7-1l.5-1.1s.2 1 0 1.5c-.2.4-.3 1.4-.3 1.4s-.7.2-1.7 0c-1-.1-1.9-.5-1.9-.5s.7.4 1.8.7l2.2.6.7 1 .9 1.1.6-1.6 1-2.8s-.2 2-.5 3l-.5 2.5s-1 0-2.1-.3l-3-.6 3 1 2.3.6 1 1.4.8-1.1c.5-.7.8-1.5.8-1.5s-.2 1.1-.5 1.8l-.6 1.1-1.4.2h-2a16 16 0 003.6.7s0 .4.5 1.1a3.7 3.7 0 001 1z"/>
+  <path fill="#fff" d="M251.6 312.7s-.5-.6-1.2-1c-.7-.3-1-.2-1-.2h-.3l.7-1.6 4.4-4.3.7-4.3h2.7v5.9l.8.3 5 3v1.3l-.8.3-.6.3-1.8.2-3.3-2.4-1.4-1.4-2.4 3.1-1.6.8z"/>
+  <path fill="#016848" d="M255 301.3v1c0 .6 0 4-.2 4.5-.1.5-2.5 1.4-4 2.6-1.3 1.2-1.3 2.1-1.3 2.1l-1.3.4c-.9.3-1.3.8-1.3.8s.5-2.2 2.8-4.1c2.2-2 3.3-2.2 3.5-2.5.2-.3 0-4.1 0-4.4.1-.3.4-.3.6-.3h1.3zm5.7 12.6l.6-.9.7-.6-1-.6c-1.3-.5-2-.4-2.8-1a8.1 8.1 0 01-1.7-1.7l-1.2 1 1.4 1.7c.6.6 2.1.8 2.8 1.2l1.2 1z"/>
+  <path fill="#cd202a" d="M257.2 301.3l1.5.1.2.5c0 .1 0 3.2-.2 4.2a6.4 6.4 0 01-1 2.5c-.4.3-2.4 2-3.3 3-1 .9-1.9 2.2-1.9 2.2l-.6-.8c-.3-.4-.6-.5-.6-.7a8.1 8.1 0 012.7-2.8c1.5-1 2.9-2.2 3.1-3.9.3-1.7.1-4.3.1-4.3z"/>
+  <path fill="#cd202a" d="M266 312s-.3-.3-1.4-.4c-1.2 0-1.2.2-1.2.2s-.7-.8-1.6-1.4c-1-.7-1.8-.6-2.8-1.3-1-.7-1.6-1.7-1.6-1.7l.8-1.6s.9 1.3 1.8 2c1 .7 3 1.3 3.7 2 .7.5 2.3 2.2 2.3 2.2z"/>
+  <path fill="#30c2dc" stroke="#0872a7" stroke-width=".4" d="M276 293s-3-1-2.7-2c.2-1 6.6-2.7 6.6-2.7l.1-1.7s-1 0-2.5.5a22.8 22.8 0 01-7 1.2c-1.6 0-2.5-.2-3-.3a1475 1475 0 00-23.2-1.4 14.2 14.2 0 01-1.2 0c-3-.3-4.9-4.8-4.9-4.8l-1.4.2s.4 2.3-.3 2.5c-1.5.4-11.1-4.8-11.1-4.8l-.6 2.1s6 3.2 5.8 4.3c-.2 1.2-2 1.1-2 1.1l.8 1.4c.3 0 9.7.5 9.9 3.3 0 1.2-2.3 1.9-2.3 1.9l.8 1v.4s5.2 0 6.7.9c1.4.8 2.2 2 4 3a55 55 0 0015.7.2c2.1-.6 3.4-3 6.9-4 3.5-1.1 4.6-1.2 4.6-1.2z"/>
+  <circle cx="227.6" cy="288.6" r="1.7" fill="#fff" stroke="#0872a7" stroke-width=".8"/>
+  <circle cx="237.2" cy="280.8" r="1.7" fill="#fff" stroke="#0872a7" stroke-width=".8"/>
+  <circle cx="277.2" cy="293.2" r="1.7" fill="#fff" stroke="#0872a7" stroke-width=".8"/>
+  <path fill="#f8c83c" d="M220.1 278.3c-.5 1.2 1.6 3.6 3.1 3.9 1.5.2 2.4-.1 2.6-.9.3-.7 0-1.5-.3-2-1-1.3-4.8-2.3-5.4-1z"/>
+  <path fill="#fff" d="M224.8 280.2c0-.8-1.3-1.5-2-1.5s-1.7 0-1.5.4c.1.4 2.2 1 2.2 1.2 0 .2-.6.5-.3.8.4.3.8.1 1.1-.1.4-.3.6-.4.5-.8z"/>
+  <path fill="#f8c83c" d="M238.2 294.6c.3 1.1-.6 1.7-1.7 2.2-1.1.5-3.4.2-4-.7-.4-1 1-2.4 2.3-2.7 1.4-.3 3 .2 3.4 1.2z"/>
+  <path fill="#fff" d="M235.8 295.3c.5-.1.5.6.9.6s.7-.7.6-1.1c-.1-.5-.8-1-1.5-1-.6 0-2.4 1.6-2.2 2 .2.5.6.4 1 .2.3-.1.8-.7 1.2-.7z"/>
+  <path fill="#f8c83c" d="M279.4 288.8c1 1.4 2.8.1 3.3-.4s2-1.4 1.4-2.2c-.6-1-1.7-.9-2.4-.8-.7 0-2 1-2.3 1.5-.3.5-.5 1.3 0 2z"/>
+  <path fill="#fff" d="M279.7 288s.1-1.5 1.5-1.6c.7 0 .8.2 1.4.6.5.3.8-.5.8-.5s0 1-1 1.1c-.9 0-.5-.4-1.5-.6-.8 0-1.2 1-1.2 1z"/>
+  <path fill="#f9aa51" stroke="#953220" stroke-linecap="round" stroke-linejoin="round" stroke-width=".4" d="M257.5 285.1l-.7-.4h-5l2.7 8 3.3 4.6 1.2.4 2.5-.1.5-1.3-1-7.6-3.5-3.6z"/>
+  <path fill="#f9aa51" stroke="#953220" stroke-linecap="round" stroke-linejoin="round" stroke-width=".4" d="M248.5 285.6l.1-.9 1.5-.1a4 4 0 011.7.1c.1 0 2 2.3 2.5 3.8.6 1.4 1.4 3.8 2.2 5.3a59 59 0 002.5 4h-3.2l-1.5-.5-4.6-7.2-1.2-4.5z"/>
+  <path fill="#f9aa51" stroke="#953220" stroke-linecap="round" stroke-linejoin="round" stroke-width=".4" d="M246.6 284.6l2 .1c.2.1 2.3 2 3.1 4.2.9 2.3.4 2.6 1.5 5 1 2.3 2.6 4 2.6 4s-3.2 0-5-.2c-1.7-.3-2.3-.3-2.7-.8a7.3 7.3 0 00-1.4-1h-1.8l.5-2.5-.5-5.5V285l1.7-.4zm18.7 1.5l-3-1.2-5.5-.3.4 2.8c.2 1.4 1.2 4.6 2 6.2 1 1.6 1.9 3.5 2.4 4 .4.4 3.6-.9 3.6-.9l2.1-.3-.3-2.3-.3-.7.5-6.4-.4-1h-1.5z"/>
+  <path fill="#f9aa51" stroke="#953220" stroke-linecap="round" stroke-linejoin="round" stroke-width=".4" d="M245.7 286.1c0 .7.7.8 1 .7.1 0 .8-.3.8-1.2s-.6-1.7-1.8-1.8c-1.1 0-2 1.4-2 2.4s1 1.5 1 1.9c0 0-1 .9-1 2.5s1.4 2.8 1.4 2.8-1.4 1.1-1.4 2.2 1 1.9 2 1.9 2.3-.7 2.3-1.5c0-.9-.8-1.4-1.4-1.4-.6 0-.9.4-.9.7m20.5-8.7c0 .7-.4.7-.8.7s-.9-.2-.9-1.1c0-.9 1.1-1.3 1.9-1.3.7 0 2 1 2 2.2s-1 2-1 2 .6.3.6 1.8-1 2.6-1 2.6 1.3.5 1.3 2.1-1 2.1-1.8 2.1-2.1-.5-2.1-1.5.7-1.5 1.2-1.5 1 .6 1 1.2"/>
+  <path fill="#953220" d="M247.6 295l.3.4c.2.3.3.8.6 1 .7.7 5.8.9 7.4.9 1.6 0 6.2.2 7.1-.3 1-.6 1-1.4 1.5-1.8l.7-.4-.6.6v1l.3.7s0 .3-.6.6c-.6.4-1 .5-1.8.6-.8 0-10.6 0-12.2-.2-1.6-.3-1.5-.3-2-.6a3.5 3.5 0 01-.7-.7l.3-.7-.3-1.2zm16-9.5l.8.4s-.7.2-1.3 1.8c-.6 1.5 0 2-.5 2.2H258l-.7-1.8 6.3-2.6z"/>
+  <path fill="#231f20" d="M277.1 284.9s-.7-.3-1-1c-.4-.5-.7-1.3-.4-1.4.3-.2.8.3.8.8s.6 1.6.6 1.6zm8.4-2.3l.7 1 1 .5s-1.2 0-1.6-.3a6.7 6.7 0 01-.8-1.2h.7z"/>
+  <path fill="#231f20" d="M288 283.3s-.7.4-1.3.2c-.6-.2-1-.6-.9-.8.3-.3.4-.2.7.2.4.3 1.5.4 1.5.4zm4.2-3.6s-.6.6-1 .6-1.2-.2-1.2-.4 1-.3 1.2-.3l1 .1zm-6.3-8.3s-1 .2-1.3.7c-.3.5-.2 1 .2 1s.5-.6.5-.7c0-.2.6-1 .6-1zm-4.2 2.3s-.7.4-.9.8c-.2.4-.3 1.2 0 1.3.5 0 .6-.7.7-1l.2-1.2z"/>
+  <path fill="#8cbebf" stroke="#04534e" stroke-width=".4" d="M274.2 278.7l-2.3 2.4s5.3 3 9.4 2.8c4 0 8.6-3.3 9-4 .2-.6 0-3.4-.5-4.3-.6-.9-3.4-3-4.4-3-1 .1-3 1.6-4.7 3.2-1.7 1.7-1.6 3.2-4 3l-2.5-.1z"/>
+  <path fill="#0c8489" d="M273.6 279.7s5.7.8 7.3-.6c1.6-1.5 3.4-4.3 4.5-5 1.2-.6 1.7-.6 1.7-.6l1.2 1 1.5 1.1.4 2.7v1.5l-1.7 1.4-3.3 1.5-3 1-2.7-.1-5.3-1.6-1.4-.9-.3-.3 1.1-1.1z"/>
+  <path fill="#04534e" d="M282.2 276.4c0-.5.4-.4.8-.4s.9 0 .9.5-.5 1.2-1 1.2c-.3 0-.7-.8-.7-1.3zm2.3 1.4c0-.4.3-.6.8-.6.6 0 1 .6 1 1s-.4.8-.9.8-.9-.7-.9-1.2zm-.8 3.4c0-.5.4-.6.9-.6s.8.2.8.7-.4 1-1 1c-.4 0-.7-.5-.7-1zm-3-1c0-.6.6-.8 1-.8.5 0 .9.5.9 1 0 .6-.4 1.1-.8 1.1-.5 0-1-.7-1-1.3zm-4.7.6a1.1 1.1 0 112.3 0 1.1 1.1 0 01-2.3 0z"/>
+  <path fill="#8cbebf" d="M284.5 277.8c0-.4.5-.6.8-.6.4 0 .6.3.6.7 0 .4-.2.7-.5.7-.4 0-.9-.4-.9-.8zm-.8 3.3c0-.5.5-.7 1-.7.4 0 .8.2.8.7s-.4.8-.9.8-.9-.4-.9-.8zm-3-1c0-.5.9-.7 1.2-.7.3 0 .3.3.3.8s-.3.9-.6.9c-.4 0-.8-.5-.8-1zm1.5-3.7c0-.5.3-.5.6-.5s.5.1.5.6c0 .4-.2.8-.5.8s-.6-.5-.6-1zm-6.2 4c0-.5.5-1 1.1-1 .7 0 1.4.2 1.4.7 0 .6-.8 1.5-1.5 1.5s-1-.7-1-1.2z"/>
+  <path fill="#231f20" d="M278.2 279.5s-.8.1-1.2.5c-.4.4-.5.9-.2 1 .2.1.5-.3.5-.5l.9-1zm3.7-.8s-.7.5-.8 1c0 .6 0 .8.2.8s.3-.6.3-1c-.1-.2.3-.8.3-.8z"/>
+  <path fill="#231f20" d="M282.5 279.5s-.4 0-.8.3c-.3.3-.6.7-.4.7.2 0 .6-.1.6-.3 0-.2.6-.7.6-.7zm.8-4.4l-.5.5c-.2.2-.5.7-.2.9.2 0 .4-.1.6-.5.2-.4.2-.9.2-.9zm2.9 1.8s-.7.1-1 .5c-.2.3-.4.6 0 .6s.3-.1.5-.4c0-.3.5-.7.5-.7zm-.5 3.4s-.1.5-.6.7c-.4.3-.5.5-.7.2-.2-.4 0-.5.3-.6a52.3 52.3 0 011-.3z"/>
+  <path fill="#04534e" d="M290.3 278s.3 1.6-1 2.3c-1.4.8-5.2 3.5-8.8 3.2-3.6-.4-7.7-2.4-7.7-2.4l-.5.3.9.4 2.8 1.1 3.1 1h2l1.7-.1 3.2-1.1 2.7-1.4 1.4-1 .3-.5v-1.6l-.1-.2z"/>
+  <path fill="#231f20" d="M219.9 257.8s.8.7.8 1.3c-.1.6-.3.8-.6.7-.2 0-.2-.7-.2-1v-1zm6.2 5.7s-.3 1-.7 1.1c-.4.1-.7-.3-.7-.5.1-.2.5 0 .7-.2l.6-.4zm-13.4.8s.3.6.8.7c.6.1.8-.3.7-.5h-.6l-1-.2zm2.4 4.7s.5.6 1.1.6a1 1 0 001.1-.6c0-.1-.8-.1-1 .1-.3.2-1.2-.1-1.2-.1zm4.2 3.6s1-.2 1.3-.5c.2-.3.4-.8.2-1-.2-.4-.4.3-.5.6l-1 .9z"/>
+  <path fill="#8cbebf" stroke="#04534e" stroke-width=".4" d="M226.1 269.7s.7-4.9-3.2-8.3c-4-3.4-6.5-2.6-7.9-1.3-1.3 1.2-2.5 5.4 1.7 9 4.2 3.6 9.3 2.5 9.3 2.5l.1-1.9z"/>
+  <path fill="#0c8489" d="M214 264.6s0-2.7 1.3-3.5a5.5 5.5 0 017.5 2.4c2 4 2 6 1.5 8h-2.2l-3.4-1.4-2.8-2.1-1.8-3.4z"/>
+  <path fill="#04534e" d="M225.6 270.4s-.7.8-2.1.7c-1.5 0-8-1.8-9.7-7.7v1.3l.1.4.5 1.2 1.4 2 1.7 1.5 2.2 1.2 1.6.4 2 .4h1.2l1-1.4z"/>
+  <path fill="#04534e" d="M222.1 268.7c0-.5.3-.5.7-.5.4 0 .8-.2.8.3s-.3 1.3-.7 1.3c-.5 0-.8-.6-.8-1zm.3-3.1c0-.4.3-.7.8-.7s.7.3.7.7c0 .3-.3.6-.7.6s-.8-.3-.8-.6zm-3 3.4c0-.3.4-.5.9-.5.4 0 .8.2.8.5s-.8.7-1.3.7-.4-.4-.4-.7zm-.3-3.7c0-.4.3-.3.7-.3.4 0 .9.1.9.6s-.5 1.1-1 1.1c-.3 0-.6-.9-.6-1.4zm-2.7.7c0-.4.2-1 .7-1s1 .6 1 1c0 .3-.4.7-.9.7s-.9-.4-.9-.7zm.5-3.3c0-.4.2-.4.7-.4s1 .2 1 .6c0 .4-.6 1-1.1 1-.6 0-.6-.8-.6-1.2zm3-.3c0-.4.3-.3.8-.3s.8.3.8.7c0 .4-.6.8-1 .8-.5 0-.6-.8-.6-1.2z"/>
+  <path fill="#8cbebf" d="M216.9 262.6c0-.3.2-.5.6-.5s.7 0 .7.5c0 .4-.3.7-.7.7-.3 0-.7-.3-.6-.7zm-.6 3.2c0-.4.2-.8.6-.8.4 0 .7 0 .7.5s-.3.8-.7.8c-.4 0-.6 0-.6-.5zm3.5-3.4c0-.3.3-.3.7-.3.4 0 .7 0 .7.4 0 .3-.4.5-.7.5-.4 0-.6-.3-.6-.6zm-.6 3.1c0 .4.3.8.7.8.4 0 .8-.4.8-.8s-.5-.8-.8-.8c-.5 0-.7.4-.7.8zm3.3-.5c0 .4.4.8.8.8s.8-.4.8-.8c0-.3-.4-.7-.8-.7s-.8.4-.8.7zm-3.2 4c0-.3.3-.7.7-.7.4 0 .7.2.7.6 0 .3-.6.8-1 .8-.3 0-.4-.4-.4-.7zm2.9-.5c0-.4.3-.5.7-.5s.7 0 .7.5-.4.8-.8.8c-.5 0-.7-.4-.7-.8z"/>
+  <path fill="#231f20" d="M223 263.6s.4.5.5 1l-.1.9c-.2 0-.4-.3-.5-.7v-1.3zm-2.6-2.7s.3.4.3.8 0 .8-.3.8c-.2 0-.2-.4-.2-.7l.2-1zm-3 .4s.3.4.3.8 0 .8-.2.8-.2-.4-.2-.7l.1-1z"/>
+  <path fill="#231f20" d="M216.4 261.8l.7.4c.4.3.5.6.4.7-.2.2-.5 0-.5-.2l-.6-.9zm2.3 3.1s.5 0 .9.3c.3.3.5.6.3.8-.1.2-.6-.2-.8-.4a6.7 6.7 0 01-.4-.7zm-2.8 0l.8.2c.3.2.3.6.2.7-.1 0-.3 0-.5-.3l-.5-.7zm6.7 2l.1 1c0 .5.1 1-.1 1s-.3-.6-.3-1l.3-1z"/>
+  <path fill="#231f20" d="M221.8 268l.7.3c.2.2.2.5 0 .5l-.3-.4-.4-.5zm-3 .1l.8.2c.2.2.2.8.2 1 0 0-.4 0-.5-.4a6.2 6.2 0 00-.4-.8z"/>
+  <path fill="#04534e" d="M217.7 259s-2.6.6-3 2.3c-.6 1.7-.6 3.6-.6 3.6l-.4-2.2.6-1.3.7-1.3 1.2-.7 1-.4h.5zm8.2 10s.2-.6-.5-2.6c-.8-2.1-2.4-4.8-2.4-4.8l1.2 1.4 1 1.6.5 1.4.4 1.3v1.3l-.2.5z"/>
+  <path fill="#231f20" d="M228.5 265.7s1 .6 1 1v.5c-.3 0-.7-.3-.8-.5l-.2-1zm-3.8 10.3s.4-.8 1-1c.6-.4 1-.3 1.1-.2.2.2-.3.7-.7.8l-1.4.4zm6.4 2.5s.7-.3 1-.8c.5-.4.5-.7.4-.9-.2-.1-.7.1-1 .5l-.4 1.2zm-.7-.6s.2-.8.5-1.1c.2-.3.5-.4.7-.3.3.2.1.5 0 .7l-1.2.7z"/>
+  <path fill="#8cbebf" stroke="#04534e" stroke-width=".4" d="M241.2 273s-4-5.8-10.3-6.1c-5-.3-6.5 4.2-6.3 5.5.1 1.4 2 4.3 8.7 4.7 6.6.5 7.7-3 8-3.3.2-.1-.1-.8-.1-.8z"/>
+  <path fill="#0c8489" d="M236.5 269s1.6 1.3 2.3 2.3.9 1.7.5 1.8c-.4.2-4-3.2-7-3.9-3-.7-5.5 0-6.1 1.4-.6 1.4-.4 3.5 1 4.4 1.3.9 7.7 2 7.7 2l3-.5 1.8-1 .4-1 .4-1.4.2-.5-1.5-1.7-2.7-1.9z"/>
+  <path fill="#04534e" d="M231.4 269.8c0 .4-.4.6-.8.6s-.7-.2-.7-.6c0-.4.3-.7.7-.7.4 0 .8.3.8.7zm-3.7 1.3c0-.3.4-.3.9-.3s.7.3.7.6c0 .4-.7 1-1 .8-.5-.3-.6-.7-.6-1zm4 2.2c0-.5.3-.9.8-.9s1 .4 1 .9-.7 1-1.2 1-.7-.5-.7-1z"/>
+  <path fill="#8cbebf" d="M228.7 274.2c0-.4.4-.5.8-.5.3 0 .8.4.8.8s-.5.7-.8.7c-.4 0-.8-.6-.8-1z"/>
+  <path fill="#04534e" d="M234 275.6c0-.3.2-.6.5-.6.4 0 .8.2.8.5s-.3.7-.7.7a.6.6 0 01-.6-.6zm2.4-1.8c0-.4.2-.4.6-.4.5 0 .9.3.9.7 0 .4-.5.6-1 .6-.4 0-.5-.5-.5-1z"/>
+  <path fill="#8cbebf" d="M231.1 269.5c0 .3-.1.5-.4.5-.4 0-.8-.2-.8-.5 0-.4.2-.5.5-.5s.7.1.7.5zm-1.9 1.5c0 .4-.5.6-.9.6s-.5-.2-.5-.6c0-.3.2-.4.6-.4.3 0 .8 0 .8.4zm.9 3.1c0 .3-.1.6-.5.6s-.9-.3-.9-.6.2-.5.5-.5c.4 0 .9.2.9.5zm3.1-1c0 .3-.6.7-1 .7s-.5-.6-.5-1c0-.3.3-.6.7-.6.3 0 .8.5.8.9zm4.7 1c0 .3-.6.3-1 .3-.2 0-.5-.4-.5-.8 0-.3 0-.6.9-.5.3 0 .6.6.6 1zm-2.8 1.3c0 .4-.2.7-.6.7a.6.6 0 01-.6-.6c0-.4.3-.5.6-.5.4 0 .6.1.6.5z"/>
+  <path fill="#231f20" d="M235.6 273.5s.6-.2 1-.1c.6 0 .6.2.6.3l-.6.2-1-.4zm-2.7 2.3l.9-.4c.4 0 .7 0 .6.3 0 .3-.1.3-.5.3l-1-.2zm-1.8-4s1.1.5 1.4 1c.2.4.3.5 0 .6-.2.2-.4-.1-.6-.3a43.8 43.8 0 01-.8-1.3z"/>
+  <path fill="#231f20" d="M230.8 273.3l1.3-.3c.4 0 .5 0 .5.2s0 .3-.4.3l-1.4-.3zm-2.7 0s1 .1 1.2.4c.2.2.2.4.1.6-.1.1-.5 0-.7-.1s-.6-.9-.6-.9z"/>
+  <path fill="#231f20" d="M228 274.6s.3-.5.7-.6c.3-.1.7 0 .8 0 0 .3-.3.5-.6.6h-1zm-.7-4l.9.2c.3.3.4.5.3.6h-.7c-.4-.3-.6-.8-.6-.8zm2-2.4s1 .3 1.2.7c.3.4.3.7.2.8l-.8-.4-.6-1.1z"/>
+  <path fill="#04534e" d="M240 275s-1.9 1.6-6.2 1.5c-4.3-.2-8.3-2-9.2-4l.4 1 1 1.2 3 1.6 3.4.7 2.7.2 2.5-.4 2-1 .3-.5.2-.3zm.6-2l-1.7-2a62.5 62.5 0 00-5-3.4l3.2 1.4 2.1 1.8 1.5 1.6v.5z"/>
+  <path fill="#231f20" d="M240.8 269s1.1.5 1.3.8l.4.5s-.3.7-.5.4l-.6-.7a7.7 7.7 0 01-.6-1zm3.3-1.7s1 .5 1.3 1c.4.5.3.9.2 1-.2 0-.9-.6-1-.8 0-.3-.5-1.2-.5-1.2z"/>
+  <path fill="#231f20" d="M245 267.1s1 .7 1.2 1c.2.4.5.8.2 1-.3 0-.8-.5-1-.8l-.3-1.2zm5.6 1.3s.7.3.8 1v1l-.6-.6v-.5l-.2-.9zm1.4.5s.6.6.7 1c0 .4.1.7-.2.7-.3.1-.5-.3-.5-.6v-1zm-9.8 12s.5.2.9 0c.5-.1.8-.5.7-.8 0-.2-.3-.5-.6-.1-.3.3-.2.5-.4.6l-.6.3zm5.4 1.5s.7-.1 1.2-.7c.5-.5.7-.9.4-1-.3-.1-.8 0-.9.4a4.5 4.5 0 01-.7 1.3zm4.4.1l1-.7c.4-.4.7-.6.4-1-.3-.2-.5 0-.7.1l-.1.6a7.1 7.1 0 01-.6 1z"/>
+  <path fill="#231f20" d="M253.4 282.5s.6-.7.7-1.1c.1-.4.2-.9 0-.8-.3 0-.6.4-.7.6a68.3 68.3 0 000 1.3z"/>
+  <path fill="#8cbebf" stroke="#04534e" stroke-width=".4" d="M239.9 275.3c0-2 2.8-6.5 6-6.4 1.3 0 4 .7 6 1.7 1.8.8 2.4 1.6 3.5 2 1.2.2 3 0 3 0l4-.5-3.2 4.6-1 1s-1 2-4 3c-2.7 1.1-7.5.3-9.7-.2-2.1-.5-4.7-2.6-4.6-5.2z"/>
+  <path fill="#04534e" d="M239.9 275.3h.2c0-.4.2-1 .5-1.7a9.8 9.8 0 012.1-3c1-.9 2-1.5 3.1-1.5a24.3 24.3 0 016 1.6 7 7 0 012 1.2 4.6 4.6 0 003.2 1l1.4-.1 3.5-.4-2.8 4.2-1.2 1a7.2 7.2 0 01-3.7 3c-1 .3-2.2.5-3.5.5-2.3 0-4.8-.5-6.1-.8a6.7 6.7 0 01-3-1.7 4.5 4.5 0 01-1.5-3.2v-.1h-.4a5 5 0 001.6 3.6 7.2 7.2 0 003.2 1.8c1.4.3 3.8.8 6.2.8a11 11 0 003.7-.6c2.9-1.1 3.9-3 3.9-3.1l-.2-.1.1.2 1.2-1 3.4-5-4.5.5H257a6.7 6.7 0 01-1.5-.1c-.6-.1-1-.4-1.5-.7-.5-.4-1-.8-2-1.2a23.2 23.2 0 00-3.3-1.2c-1.1-.3-2.1-.5-2.8-.5-1 0-1.7.3-2.5.8a9 9 0 00-2.6 2.8 6.7 6.7 0 00-1.1 3h.2z"/>
+  <path fill="#0c8489" d="M259.2 275.9c-.4.3-.7.3-1.1.3-.5 0-9.3-5.4-12-5.2-2.8.2-5.4 1.4-5.5 4.2 0 2.9.6 2.9 1.2 3.7s6 2 6 2h3.2l2.7-.4 2.3-1.3 1.3-1 .9-1 1-1.3z"/>
+  <path fill="#04534e" d="M245.2 274.5c0 .5-.2 1-.8 1-.5 0-.9-.3-.9-.9 0-.5.3-.7.8-.7s.9 0 .9.6zm1-2.5c0-.4.4-.6.9-.6s.9.1.9.6-.4.8-1 .8-.9-.3-.9-.8zm5.2 1.5c0-.4.4-.8.8-.8s.8.4.8.8-.4.7-.8.7a.7.7 0 01-.8-.7zm1 3.2c0-.5.4-1 1-1 .4 0 .8.3.8.8s-.2 1-.6 1c-.5 0-1.1-.3-1.1-.8zm-2.5 2c0-.4.4-.7.9-.7s.8.3.8.8c0 .4-.3.7-.8.7-.4 0-.9-.3-.9-.7zm-4.9-.8c0-.4.4-.7.8-.7a.8.8 0 110 1.5.8.8 0 01-.8-.8z"/>
+  <path fill="#8cbebf" d="M245.2 274.4c0 .4-.4.8-.9.8a.8.8 0 01-.8-.8c0-.5.4-.6.8-.6.5 0 .9.1.9.5zm2.5-2.5c0 .4-.1.7-.5.7-.5 0-1-.3-1-.8 0-.4.3-.7.7-.7.5 0 .8.3.8.8zm5.2 1.3c0 .4-.4.7-.8.7s-.7-.3-.7-.7c0-.3.3-.6.7-.6s.8.3.8.6z"/>
+  <path fill="#04534e" d="M250.1 275.4c0 .6-.2 1-.7 1s-1-.3-1-.9c0-.5.3-.7.9-.7s.8 0 .8.6z"/>
+  <path fill="#8cbebf" d="M246.4 277.8c0 .4-.3.7-.8.7a.8.8 0 01-.8-.7c0-.5.5-.7 1-.7.4 0 .6.2.6.6zm3.6-2.5a.8.8 0 01-.8.8.8.8 0 01-.8-.8.8.8 0 01.8-.8.8.8 0 01.8.8zm4.2 1c0 .6-.3 1-.8 1a.9.9 0 01-1-1c0-.4.2-.6.7-.6s1 .2 1 .7zm-2.7 2.3c0 .4-.3.7-.8.7s-.9-.3-.9-.7c0-.5.4-.7.9-.7.4 0 .8.3.8.7z"/>
+  <path fill="#231f20" d="M251.8 276s1.3-.2 1.6 0c.2.3.2.6 0 .8l-.7-.1-.9-.7zm-1.3-4.3s1 .3 1.4.7c.4.4.4.8.3.9 0 0-.5.2-.7-.2l-1-1.4zm-3 2s1.2.7 1.4 1c.3.4.4.7.2.9 0 .1-.7 0-.8-.3a78 78 0 00-.8-1.6z"/>
+  <path fill="#231f20" d="M247 274.6s1.3.2 1.6.5c.4.2.6.2.6.4s-.2.4-.4.4l-1-.4c0-.2-.8-.8-.8-.8zm-1.6-3.8s1.4.2 1.7.4c.3.2.3.8 0 1-.3.2-.6-.2-.8-.4 0-.3-.9-1-.9-1zm-2.9 2s1.3.6 1.7 1.2c.2.3.4.5 0 .6-.4.2-.8-.5-.8-.6a7 7 0 00-.9-1.2z"/>
+  <path fill="#231f20" d="M242.3 274.4l1.1-.1c.4 0 1-.2 1 .1 0 .3-.5.4-.8.3l-1.3-.3zm6.8 4.5s1-.6 1.3-.5c.5.1.6 0 .6.3s-.5.2-.6.2a48.8 48.8 0 01-1.2 0zm-4.8-.7s.4-.5.7-.6l.6.1c0 .2-.3.5-.5.5h-.8z"/>
+  <path fill="#04534e" d="M258 277.3s-1.2 1.6-3 2.4c-2 .8-3.3 1-5.9.9a12 12 0 01-5.6-1.5 9 9 0 01-3.3-2.7c-.3-.6.3 1 .3 1l1.5 2 2 .8 2.7.7 2.6.3h2l2.4-.4 1.6-.5 1-.7.8-.6 1-1.7zm-2.4-4.7s-.7.2-2.3-.7c-1.6-1-3.5-2.3-7-2.3-3.6 0-4.8 2.4-5 2.6l1.6-2.1 1.6-1 1.3-.1h1.2l1.6.5 1.4.4 1.7.6 1.5.8 1.7.9.7.4zm4.8 1h-2.7c-.6.1-.6.2-.7.4a3.1 3.1 0 01-.2.4l-.7-1.4 2.9-.4 1.6.6-.2.5z"/>
+  <path fill="#0c8489" stroke="#04534e" stroke-width=".4" d="M256.6 288.3c.1.4.4.8.8.8h1.4l2.8-.2 1-1.1.6-2.6.8-1 2.6-1.5 2.3-.6 1.5-.2 2-.7 1.5-.7.6-1 .7-1.5-.7-2-1.6-2-2.6-1.1H268l-2.5.9-4.3 1s-2.5 1-3.5 3c-1 1.8-1 2.3-1.1 4.8-.2 2.5 0 5.7 0 5.7z"/>
+  <path fill="#8cbebf" d="M257.7 287.4c.9 0 .2-1.4 1.2-3 1-1.7 2-3.7 2.4-3.7.3 0 .3.3.7.2.3-.1 1-.7 1-.8 0-.2 0-1 .7-1.7.7-.6 1.8-1.4 2.2-1.5.5-.1.7-.2.8 0 .1.2-.2.5.1.7.3 0 1 0 1.3-.5.2-.5.1-.7.1-.7s.5-.5 1.5-.3 1 .2 1.1.5c.1.4-.4.4-.3.7.1.3 0 .2 0 .4.1.2.3.8 1 .8.6 0 .8-.4.8-.4l.2-.3s.2-.4 0-.6c-.3-.2-.2-.4 0-.2.3 0 1.2 1.4 1.6.9.3-.6.3-1.4.2-1.6l-1.6-2.2-2.4-.9-3.2.3-3.2 1.8-2.9 1.5s-.1 2.4-.6 2c-.6-.5-1.3-1.6-1.5-1.3l-1 3c-.3.9-1.2 3.5-1 4.5 0 1 .5 2.4.8 2.4z"/>
+  <path fill="#8cbebf" d="M260.6 283.6l-.6.3a.8.8 0 00-.2.8c.1.3.6.6.6.6h.4l.7-.2s.3-.3.3-.7c0-.4-.2-.5-.3-.5l-.9-.3zm5-4.1c-.5-.2-.7.1-.7.2v.5s0 .6.3.7c.2.1.8.3 1 .1.2-.2.4-.3.4-.7 0-.4-.6-.6-.6-.6l-.4-.2zm4 1c0-.2-.4-.3-.7-.3-.3 0-.6.4-.5.9.1.5.6.5 1 .4.4 0 .3-.6.3-.7l-.1-.4zm-11.6.7c0 .3.5.7 1 .7a1 1 0 001-.8c0-.3-.3.3-.7.4-.4 0-.7.2-.9 0l-.3-.3z"/>
+  <path fill="#04534e" d="M261.8 284.4s0 .5-.3.8l-.8.2c-.2 0-.5 0-.6-.2l-.3-.6s.4.7 1 .5c.7-.1 1-.7 1-.7zm10.7-6.6s0 .5-.4.7c-.4.2-.6.3-.8.2-.2 0-.5 0-.6-.3-.5-.7-.2-1.2-.2-1.2s.3 1.3 1 1.2c.7-.1 1-.6 1-.6zM263 280s-.4 1-1 1c-.7 0-.6-.1-.6-.3 0 0 .3.2.6 0 .3 0 1-.6 1-.6zm1.8-.1s0 .7.2 1c.2.2.5.3.8.3s.5 0 .7-.3c.2-.3 0-.6 0-.6l-.1.3a.7.7 0 01-.6.3c-.2 0-.6 0-.7-.3l-.3-.7zm3.4-3.5s.2.5-.2 1c-.4.4-1.2.2-1.2.2s.6.1 1-.2c.3-.4.4-1 .4-1z"/>
+  <path fill="#04534e" d="M257.4 288.9s4.2 0 4.5-.7c.4-.5-.3-2.8 2.2-4.6 2.5-1.8 4.5-1.8 5.9-1.9 1.3 0 4.2-1 4.8-3.6.3-1.6-1.9-1.7-2.7-3.2-.8-1.5-2.9-.9-3-.9 0 0-2.4 0-3.5 1-.6.7-.5 1.5-.9 1.8-.2.4-3 0-3.3.5-.3.4 0 1.4-.2 1.6-.2.2-.8-.6-.8-.6l.2-2.3 3.5-2 4-2.3h2.8l2.8 1.5 1.4 1.6s.3.6.4 1.8a4.3 4.3 0 01-.1 1.6 6 6 0 01-5.4 4c-2.4.1-4.6 1.2-5.6 2-1.1.8-1.7 4.3-1.7 4.7 0 .5-5.2.2-5.2.2l-.1-.2z"/>
+  <path fill="#231f20" d="M259.1 280.7c-.2.2-.5.1-.6-.1-.2-.7.3-1.7.3-1.7v1.2c.1.2.3.2.4.3v.3zm2.7-.6c-.2 0-.2-.7 0-1l1.3-1.1-.5 1.2c-.1.3-.5 1-.8 1zm-1 4.3c-.2 0-.3-.3-.3-.8s.8-1.3.8-1.3l-.2 1v.7c0 .3-.2.4-.3.4z"/>
+  <path fill="#231f20" d="M262.7 283.2l-.8.7c-.4.2-.9.6-1.1.5-.3 0 .1-.6.3-.7l1.6-.5zm3.6-5.1l-.7 1c-.2.5-.3 1 0 1 .2.2.5-.6.5-.8l.2-1.2z"/>
+  <path fill="#231f20" d="M267.6 279.9s-.3-.3-.9-.5c-.6-.1-.9 0-1 .2 0 .2-.4.4-.2.6l.7-.3c.1 0 .4-.2.7-.1h.8zm-.7-3.5c.2.1.5-.2.8-.5l.5-1-.8.5c-.3.2-.6.8-.5 1zm5.5-.2l-1 .7c-.2.3-.5.6-.3.8.3.2.5-.2.7-.4l.6-1zm-1.6 3.7s-.2.5-.7.8c-.4.3-1 .4-1 .3-.2-.2 0-.5.2-.6l.7-.2c.4 0 .8-.3.8-.3z"/>
+  <ellipse cx="272.7" cy="229.2" fill="url(#b)" rx="2.3" ry="3.4" transform="rotate(8.7)"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M236.3 261.5l-1.4 3.5 1.1-.2.7-3z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M237 260c-.6 0-1 .4-1 1-.1.4.2.9.7 1 .5 0 1-.3 1-.9 0-.5-.3-1-.8-1zm58.8 8.6l-3.4 3.2 1.4.3 2.3-3z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M297.3 267.3c-.6-.3-1.3 0-1.7.5a1 1 0 00.4 1.5c.5.3 1.3 0 1.6-.5a1 1 0 00-.4-1.5zm-87.1-16.9l1.8 3.9.8-1-2-3z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M209.5 248.7a1.1 1.1 0 00-.1 1.5c.4.5 1 .6 1.5.2a1.1 1.1 0 00.1-1.5 1 1 0 00-1.5-.2z"/>
+  <path fill="#aa8c30" d="M237.3 260.2s.2.2 0 0c-.4 0-1.2.3-1.2.9 0 .5.4.8.8.8h-.6l-.2-.4-.2-.4.1-.5.3-.4.4-.1h.3l.3.1z"/>
+  <path fill="#aa8c30" d="M236.5 262.5s-.2 0-.4.3l-.6.8.7-1.9.5.2-.2.6zm61 5.1s.3.3 0 0-1.4-.2-1.7.4c-.2.6 0 1.1.5 1.3.5.2-.2 0-.2 0l-.5-.4-.1-.4v-.6l.4-.4.6-.3h.5l.3.2.3.2z"/>
+  <path fill="#aa8c30" d="M295.5 269.8h-.6l-1.2.7 1.9-1.7.4.5-.5.5zm-85.6-21.3s.3-.1 0 0c-.3.3-.6 1.2-.2 1.6a1 1 0 001.3 0c.4-.3 0 .2 0 .2l-.6.3h-.4l-.5-.2-.3-.5v-.6l.1-.5.3-.2.3-.1z"/>
+  <path fill="#aa8c30" d="M211.2 251s-.2.2-.1.6l.2 1.2-1-2.2.5-.2.4.6z"/>
+  <ellipse cx="327.1" cy="-73.3" fill="url(#c)" rx="3.7" ry="2.5" transform="rotate(62.9)"/>
+  <path fill="#e92736" d="M210 257s.8.2 1.2 0c.5-.3.5-.6.6-.7l.2-.7a3 3 0 00-.8-1.2h-.8c-.1-.2 0-.4-.2-.5-.2 0-1.3 1.3-1.1 1.5.2.2.3-.1.4 0v1l.6.6z"/>
+  <path fill="#e92736" d="M211.2 254.5c0 .2.5.8.7.8h.9c.1 0 .7-.5.7-.8l-.1-.6c-.1-.2 0-.8-.3-.9-.2 0-.2 0-.3-.2-.2 0 0-.3-.2-.5-.1-.3-2 .8-1.8 1 .1.2.3 0 .4.2v1z"/>
+  <path fill="#e92736" d="M215.4 254l-.1-1.4c-.2-.1-.5-.1-.6-.3 0-.1.3-.2.3-.4s-2 .1-2 .3c.2.3.5.1.5.3l-.4.5.2.9c.1.1 0 .3.2.4l.5.1h1.1c.1-.1.2 0 .3-.4zm17.5 10.3s.3.6.7.7h.7c.1 0 .5-.1.6-.3l.3-1.1-.5-.6c0-.2.3-.2.2-.4s-1.6 0-1.6.2.2.1.2.3l-.6.5v.7z"/>
+  <path fill="#e92736" d="M235 263.6v1l.5.5h.9a1 1 0 00.3-.5c.1-.2.5-.5.4-.6l-.1-.4c0-.1.3-.2.3-.4s-1.7-.8-1.7-.6c-.1.3.2.2.1.4 0 0-.6.4-.6.6z"/>
+  <path fill="#e92736" d="M237.8 266c.2-.1.8-.7.8-1l-.1-.4.4-.1c0-.1-1.3-1.3-1.3-1-.1.2.2.3 0 .4h-.4l-.5.7c0 .1-.2.1-.1.3l.1.4.7.7h.4zm52.9 4.4s0 .6.3 1l.6.3h.6c.2 0 .7-.7.7-.9v-.7c0-.1.2 0 .2-.2s-1.3-.9-1.4-.6v.3l-.7.2-.3.6z"/>
+  <path fill="#e92736" d="M292.7 270.8l-.5.6v.7l.9.4a1 1 0 00.4-.2c.2 0 .7-.1.7-.3v-.3c.1-.1.3 0 .5-.2.1-.1-1-1.3-1.1-1.2-.2.2 0 .3 0 .3l-.9.2z"/>
+  <path fill="#e92736" d="M293.2 273.8h1l.3-.4.3.1c.2 0 0-1.5-.1-1.4-.2 0-.1.3-.2.3-.2 0-.3-.2-.4-.3l-.7.1c-.2.1-.3 0-.4.2l-.1.3v.9l.3.2z"/>
+  <path fill="#f7e204" d="M211.3 255.3c.2.2 0 .8-.2 1-.1.2-1 0-1-.2v-.7c.1-.1.4-.5.7-.5.2 0 .5.3.5.4zm.3-1.2c-.1.3 0 .5.2.6 0 .2.7.3 1 .2 0 0 .4-1.1.2-1.3 0-.1-.4-.2-.6-.1a3 3 0 00-.8.6zm2.2-1v.6s.5.4.8.4c.2 0 .3-.8.3-1s0-.1-.2-.2l-1 .2zm20.9 11c0 .3-.6.5-.8.5-.2 0-.5-.7-.4-.8 0-.1.2-.3.4-.3h.7v.6zm.8-.5c-.2 0-.2.3-.2.5 0 .1.2.6.4.7.2 0 1-.4 1-.6l-.3-.4-.9-.2zm2 .8c-.2 0-.4.3-.4.4 0 0 0 .5.2.7.2.1.7-.2.8-.3v-.3l-.6-.5zm54.8 6.6c-.2.1-.7 0-.8 0-.2 0-.2-.9 0-.9 0 0 .3-.2.4-.1.2 0 .5.2.5.4v.6zm.8 0l-.5.2v.8c.1.1 1 .2 1 0 .2 0 .1-.4.1-.4l-.6-.6zm.9 1.6h-.5l-.3.6c0 .2.5.3.6.3.1 0 .2 0 .3-.2l-.1-.7z"/>
+  <ellipse cx="398.3" cy="-31.4" fill="url(#d)" rx="1.8" ry="3.6" transform="rotate(47.9)"/>
+  <path fill="#a8ac71" d="M228.6 223.4s-3 .3-5.2 0c-2-.4-1.6-5.9-1.7-6 0-.2-1.3-1.5-1-2.7.2-1.2 4-4.4 4.6-4.6.4-.1 1.2.2 1.2.2s1-1 1.3-1c.3 0 .7.6.6.8-.2.3-1.5 1-1.6 1.7-.1.6 0 1.2-.4 1.8-.4.6-1.1 1.4-1.2 1.9-.1.5-.3 1 0 1.1.4.2 1.7 0 2.8-.5 1.1-.5 1.6-1.1 1.7-1 .2 0-.6 1.3-1.8 1.8-1.3.5-2 1.1-2.7 1 0 0-.6 1.6 1.4 1.7 2.1.1 3.3-.4 3.3-.4l-1.3 4.2zm-12 12.8s1.7.6 1.7 2.4c0 1.8-1.8 3.3-1.7 6.5 0 3.2.5 3.2 4.7 6.6.1 0 1 1 1.2 2 .3 1 1 7 5 7s4.6-2.5 4.6-2.5l-1.7-2.5s-1.4.4-2.2.2a2.8 2.8 0 01-1.8-1.7c-.5-1-.6-3.3-1.3-4.3-1.7-2.5-4.7-3-4.7-5.6 0-2.7 1.9-3 1.3-6.1s-4.3-4.7-4.3-4.7l-1.5-.6-.5 3.1 1.3.2z"/>
+  <path fill="#f1a720" d="M227.8 214.1c1.3-.3.5-3.8.5-3.8l-.9.7s.6.8.6 1.6-.2 1.5-.2 1.5z"/>
+  <path fill="#a8ac71" d="M230.2 249.2l-.7-.6c-.4-.3-2.6-2-2.2-7 .4-5.8 8.7-8.8 9.2-11.1.7-2.6 2.6-3.7-4.1-8.9l-1.6 1.9 2.8 2s.6-.3.6.5c0 .7-.7 1.4-1 2 0 .5-4.2 3.4-4.5 3.7l-2.4 2s-1.1 1-2.1 3.2-.5 5-.5 5 0 6.2 6.5 7.3z"/>
+  <path fill="#78732e" d="M226.2 252.4l.4 2.2-1.3.5h-.6l-.4.1-1 1h-.3l-.2-.7a16.7 16.7 0 00-.1-1.1l1.2.5h.5l.3-.1.5-1.2 1-1.2zm-4 .4l-.5-.8-.8-.7 1-.5h1l-.2 1.2-.4.8zm2.3-3.5s.6.3.8.8l.5 1-1.6-.1-1.1-.4.7-1 .7-.3zm-.6 9.6s-.3-.2-.5-.7l-.3-1.3 1-.2 1.2.5h.3l-.3.6-1.1 1h-.3zm4-3.3s-.8-.3-1-.7c-.1-.5-.2-.4-.2-.4l-.3 1.2-.4 1.2.1.2 1-.3.6-.7.3-.5zm-3.7 3.8l1 .6c.7.4 1 .4 1 .4l.6-.5.4-1 .1-.1-2.5.2-.6.4zm3.5-1l2.1-1.2.1-1.1-.4-.3h-1.2l-.3 1.4-.3 1.3zm-1.5 2s1.5.7 4-.2c1.2-.5 1.4-1 1.4-1l-1-.4-1 .8-3.4.8zm-2-16.2l-.3-1-.1-1 .7.4 1.1.8-.7.6-.7.2zm1.8 3l-.7-.8a9.7 9.7 0 01-.5-1l.8.2.9.5-.4 1.1h-.1z"/>
+  <path fill="#c6c7a6" d="M221.3 213.7c-.2.5-.4 1.4.3 1.6.4 0 2 0 3.7-2 .8-1 .8-2 .8-2l.4-1s-.7-.5-1.8.2a33 33 0 00-3.4 3.2z"/>
+  <circle cx="226" cy="210.9" r=".3" fill="#1c242f"/>
+  <path fill="#a8ac71" d="M223.8 211.2c-.8.6-1.4 1.3-1.4 1.3s1.1-.3 2-1.1a2.8 2.8 0 012.2-.6c.2 0 .1-.3 0-.4-.3-.2-1.1-.3-1.3-.2 0 0-.8.4-1.5 1z"/>
+  <path fill="#78732e" d="M227.3 243.6v-1.8l-.7.6-.7 1 1 .3.4-.1zm-3.6-2v-1.9c0-.9.4-2.5.4-2.5l.4 1.1 1.3 2 .4.3-1 .7-1.2.4-.3-.1zm3.6-.6l.2-.8.4-1-1.1 1-.5.4.6.5h.5m-3-4.7s.2-.6.7-1.3l1.1-1.5.5 2 .3 1.6v.3l-.5.2c-.1 0-1.3 0-1.5-.3l-.6-1zm3.8 2.2l.7-.7.8-.8-2.6.5.4.8.7.2zm-1.5-5.3l.9-.8c.7-.7 1-.6 1-.6l.3 2.8-1.3-.4-1-1z"/>
+  <path fill="#78732e" d="M229.8 237l1.6-1.6-2.6-.8.5 1.8zm1.1-4.2l.2-2.7-1.2.8-1 .8.3.4 1 .6h.7zm2.3-2.6v-2l-.9.9a4.5 4.5 0 00-.6.6l.7.4.8.1zm1 2.8l1.2-1a5.2 5.2 0 001.2-1.3l-3.3-.3.1 1.4.8 1.2zm-7.8-11v1.5h2.7l-.7-1-.8-.5-.8-.8zm5.4 13l1.2-1 1-.8-2.7-.3.1 1.8.4.3zm5-4.8s.3-1 .3-2a5.2 5.2 0 00-.2-1.5l-2 1.3.3 1 .8.9.8.3z"/>
+  <path fill="#78732e" d="M233.4 227.8s.6-.7.7-1.1v-.3h1.6l.9.1.1.1-.7.8-1 .6-1.2.1-.4-.3zm3.2-1.5l-1-1.7-.6-.8-.8 2.2v.3h2.4z"/>
+  <path fill="#fff" d="M217.3 241.8l-.3.6s1-.6 1.9-.5c.8 0 1.7 1 1.7 1l.2-.7s-1.1-1-1.8-1.1c-.7 0-1.7.7-1.7.7zm.5-4.7l.3.3c0 .1 0-.7 1.1-1.2 1-.4 1.7 0 1.7 0s-.2-.7-.7-.8c-.5-.1-1 0-1.5.4-.6.4-.9 1.3-.9 1.3zm3.6 3.5s-.5-1-1.4-1.3c-.8-.2-1.9.5-1.9.5l-.2.5s1.2-.6 2-.3c.9.4 1.3 1.4 1.3 1.4l.2-.8zm-4-4l.3.3s-.2-1 .4-1.7l.9-.8-.5-.2s-.7.5-1 1c-.2.5-.2 1.1-.1 1.3zm-.5-2c.3-.5 1-.7 1-.7l-.3-.2h-.3s-.4.2-.7.8c-.3.7-.3 1.6-.3 1.6l.5.2s-.1-1 .1-1.6zm6.3-15.2c.7-.4 1.2-.3 1.2-.3s-1 1-.5 2.3c-.6 1-.8 1.9-.8 1.9h.6l.3-1.5a5 5 0 001.5 1.7h.8s0-1 .5-2a4 4 0 001.6 1.2v-.3s-.9-.5-1.4-1.2v-.1c.6-1 1.4-1.3 1.4-1.3l.6.4.1-.1-.4-.6h-.5l-1.4 1.4a7.3 7.3 0 01-.6-1.3h-.4s-.8 0-1.6 1.3c-.1-1 1-2 1-2l-.1-.3-2 .4c-.7.3-1.2 1-1.2 1v.6s.7-.8 1.3-1.2zm1.2 1.7c.5-.7 1.5-1.2 1.5-1.2s0 .6.7 1.3c-.4.8-.6 1.9-.6 1.9s-.9-.6-1.6-1.6a1.3 1.3 0 01-.1-.3 2 2 0 010-.1zm-6 16.9v.6s.6-.7 1.5-.7c1 0 1.8.7 1.8.7v-.9c-.2 0-1-.5-1.7-.5-.8 0-1.7.8-1.7.8zm17-9a8.1 8.1 0 01-.3-.8l.4-.2a10 10 0 001.4-1.3l-.3-.4h-1.3l-1.1-.1.4-1.4.4-1.1-.4-.4s.1.4-.7.5a7 7 0 01-2.2-.7v.4l2 .5 1-.2a6.9 6.9 0 00-.5 1l-.2.8.2.1-.1.7 1.1.1 1.4.1s-.7.8-1.4 1.1a1.8 1.8 0 01-.3.1l-.8-1.2v.4l.5 1-1.2-.2-.3.3v2l-1.4-.4-.3.2-.3.2s-.3 1.2-.3 2.6c-1.2-.3-1.9-1-1.9-1l-.3.2s-.2 1.2.1 2.6a4.7 4.7 0 01-2-1.2l-.4.4.4 3.5.1.3a4 4 0 01-.6 0c-1 0-1.8-1.1-1.8-1.1l-.3.8s.4 2.2 1.6 3.2l.3.2c-1 .8-2.3 1-2.3 1l.1.6a35.8 35.8 0 001.7 1.3c-.6.5-1.3.7-1.3.7l.2.4 1.4-1a7 7 0 001.5.4v-.4l-1.2-.2v-.1c.5-.4 1.2-1.5 1.2-1.5v-.8s-.4 0-.9-.4c1.5-1 1.5-1.5 1.5-1.5l.3-.5s-.5-.2-.9-1a9 9 0 002.4-.5l.2-.2s-.6-.9-.9-2l2.4.5.4-.4s-.3-.9-.4-2l2.5.3.3-.3s-.8-1.5-.8-2.3v-.1h3.2l.2-.4s-1-.7-1.4-1.2zm-8.4 12.4s-.3.8-1 1.6l-.3.2a3.7 3.7 0 01-.4-.2c-.8-.5-1-1-1-1l2-1.3.7.7zm.7-2.5l-1.5 1.5a3.3 3.3 0 01-.3-.4c-.7-.9-1.6-1.6-1.5-3 0 0 .5 1 1.7.9l.8-.2c.3.8.8 1.2.8 1.2zm1.6-2l-2 .5a4.2 4.2 0 01-.2-.3c-.4-1.3-.4-3.2-.4-3.2s.9.6 2 .9l.6 2zm-.3-2.4c-.2-1.1 0-2.3 0-2.3s.7.6 1.9.8c0 1.1.2 1.7.2 1.7l-2.1-.2zm4.6-1.8s-.7.3-2.2.1a18.4 18.4 0 010-2.8c.2 0 1 .4 1.8.5v.1a8 8 0 00.4 2.1zm0-2.5h-.2v-2.1s.8.2 1.4.1c.1.4 0 .5.4 1 .3.6.9 1 .9 1s-1.9.2-2.6 0zm-6 15l-.2-.5s-.7.5-1 1.1a1.3 1.3 0 01-.2 0l-1.6-.7.2.3 1.5.6-.3 1.2.2.3s0-.8.4-1.4h1l-.2.7a51.4 51.4 0 00-.3 1.2l.3.2h1.7l-.3-.3h-.6a3.2 3.2 0 00-.9 0l.3-1 .2-.6-.2-.6-.9.1.8-.7zm-9.1-1.1a3.4 3.4 0 011.8.7v-.5s-.8-1-1.7-1c-1 0-2 .9-2 .9v1s.9-1.1 1.9-1.1zm10.6 15.5c-1 .5-2.2.5-2.2.5l.7-1.3c2-.5 2.4-1.9 2.4-1.9l-.1-.5s-.5 1.3-2.2 2l.6-2.6-.5-.2s-.8 1-1.6 1.3a6 6 0 00.6-2.2l-.2-.4s-.6.5-1.4.6h-.5c.5-.6 1.4-2.5 1.4-2.5l-.1-.4s-.7 1.7-1.4 2.5l-.3.3a9.7 9.7 0 01-1.7-.8v.3s.7.5 1.5.8l-1 1v.8l2.4.3a5.8 5.8 0 01-1.6 1.7l.3.5s1.1 0 3-.5c-.5 1-1 1.5-1 1.5s1.8.1 3-.5 1.6-1.2 1.6-1.2l-.4-.4s-.2.9-1.3 1.3zm-5.5-3.3l1-1.1c1.2.3 1.6-.1 1.6-.1s.2.7-.5 1.8a6.6 6.6 0 01-2-.6zm1.1 2.5l1-1.3a3.2 3.2 0 00.3-.3c1.2 0 1.9-1 1.9-1s.1 1-.4 2.2c-1.6.6-2.8.4-2.8.4zm-1.5-7.9c1.2.1 2.6.6 2.6.6l-.1-.6-2.3-.4c.4-.9 1.2-1.3 1.2-1.3l-.4-.2s-.4 0-1 1.2l-.2.2a3.4 3.4 0 00-.3 0c-1 0-1.9.6-1.9.6l.2.3s.9-.4 1.8-.4l-.6 2 .2.5.8-2.5zm-2.4-4.9l-.2-.6s-1.3-.4-2.2 0c-1 .5-1.6 1.5-1.6 1.5l.4.8s.6-1.2 1.5-1.5c.8-.3 2.1-.2 2.1-.2zm2.4 1.9l-.8-.4s-1.3.3-1.8.8-.9 1.7-.7 2c.1.4.5.6.5.6s.2-1.3.9-1.9c.6-.6 1.9-1.1 1.9-1.1zm-3-.4c.4-.5 1.4-.7 1.4-.7l-.5-.5s-1.2.2-1.8.7l-1.4 1.7.7.7 1.5-1.9zm4-35.8c.7-.8 1.3-.8 1.5-.8h.6a7.4 7.4 0 00-.7 2c-.2.8-.5 1-.8 1.5-.3.5-.9 1.5-1 2.3 0 .8.2 1.2.5 1.3.2 0 .5-.4.5-.5 0-.3-.2 0-.4 0s0-.3-.2-.8c0-.5.6-1.8.8-2.2.3-.4.8-1 .9-1.6 0-.7.5-2 .5-2 0-.1-.3-.2-1-.2a2 2 0 00-1.5.9c-.4.5-1.4.9-1.4.9s1.1 0 1.7-.8z"/>
+  <path fill="#78732e" d="M228.2 219.6h-2l.5 1.5zm-2.4 0l-.4-.4a1.2 1.2 0 00-.3-.3l-.7.5-.4 1.5.2.2 1.6-1.6zm-.3 4l-1.4-2.2-.8 1.7.4.2 1 .1.8.1zm6 35.7h-.1a7.2 7.2 0 01-3.8 1.2c-.8 0-1.8-.2-2.7-.7a3.1 3.1 0 01-1.2-1.5c-.5-.9-.6-2-.8-3.1a8.8 8.8 0 00-1-3c-.6-1-1.8-1.7-3-2.6a5.9 5.9 0 01-2.2-4.2 6.5 6.5 0 010-.6 9 9 0 01.9-3.6c.4-1 .9-2 .9-2.8v-.4c-.2-.6-.8-1.1-1.2-1.5l-1-.6-.8-.3v.3l.7.2v-.1.1a6.8 6.8 0 011 .7c.5.4.9.8 1 1.3v.3c0 .7-.4 1.6-.9 2.7a9.4 9.4 0 00-.9 3.7 6.1 6.1 0 002.4 5c1.2 1 2.4 1.6 3 2.6.6 1 .7 2.5 1 4 .2.7.3 1.4.6 2 .3.7.7 1.2 1.4 1.6a5.6 5.6 0 002.8.8c2.3 0 4-1.3 4-1.3l-.1-.2z"/>
+  <path fill="#78732e" d="M229.7 255.4l-1 .2a2 2 0 01-1.4-.6c-.6-.6-.8-1.1-.9-1.8-.1-.7-.3-1.6-.7-2.7-.5-1.1-1.7-2-2.9-2.9-1-.9-2.1-1.8-2.3-2.7a2.6 2.6 0 010-.5c0-.8.3-1.6.6-2.6.4-.9.8-2 .8-3.2v-.6c-.2-1.6-1.5-2.8-2.6-3.6a11.3 11.3 0 00-2.3-1.1v.2h.1c.4.2 1.5.7 2.5 1.5 1 .7 1.8 1.7 2 3v.6c0 1.2-.3 2.2-.7 3.1-.3 1-.7 1.8-.7 2.7a3 3 0 000 .5c.3 1.1 1.4 2 2.5 2.9 1.1.9 2.3 1.8 2.7 2.8.5 1.1.6 2 .7 2.6a3.5 3.5 0 001 2c.6.5 1.1.7 1.6.7a2.2 2.2 0 001.2-.3l-.2-.2z"/>
+  <path fill="#a8ac71" d="M237 249.3s1.5.3 1.4 1.4c0 1.2-.6 2.7-.6 2.7l-2-1.7 1.1-1 .4-.5-.2-1z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M213.1 235.6s-1.4.5-1.7-.1c-.2-.6-.1-1-.1-1.2 0-.1-.9-.2-.8-1 0-.8 1-.7 1.3-.7.2 0 .3-1.2 1-1.2s1 .9 1 .9l-.7 3.3z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M214.6 236s-1.1.6-1.5 0c-.4-.5 0-1.3-.1-1.4-.2-.1-.9-.4-.7-1 0-.8.8-.5 1-.7.3-.1.5-1.1 1.3-1 .7.2.8.8.8.8l-.8 3.3z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M216.6 236.3s-.3.7-1.2.5c-.8-.1-.5-1.3-.7-1.5-.1-.2-.7-.4-.6-1.2.1-.7.9-.6 1.2-.7.2-.1.5-1.3 1-1.1.6.1 1.2.8 1 1.1 0 0-1.1.4-1.3 1.2-.1.8.6 1.7.6 1.7z"/>
+  <path fill="#af7029" d="M235 249l-1.8-2.1-1.8-2.2-1.8-.9-1.2-1.9v-2.2l.4-1.3.7-1s-3.7 1.4-1.8 8.5c.8 3 2.8 3.4 2.8 3.4l3.4-.2 1-.1z"/>
+  <path fill="#816c2a" d="M233.3 225.4c.3 0 .5 0 .6.2l.1.6a1.6 1.6 0 010 .2l.1.1c-1.3 2.7-3.9 4-6.2 5.6a11 11 0 00-3 3.1 9.6 9.6 0 00-1.4 5.5c.1 4 1.6 6.3 3.3 7.4a7.7 7.7 0 004.2 1.3h.3l1.2-.1a28.5 28.5 0 012.4-.2 9 9 0 011.4.1c.4 0 .6.2.7.3a.6.6 0 01.2.4c0 .3-.2.7-.5 1l-.7.5v.3l.9-.6c.3-.4.5-.7.5-1.2a.9.9 0 00-.2-.5c-.2-.2-.5-.3-.9-.4a9.4 9.4 0 00-1.4-.1l-3.6.2v.2-.2a4.6 4.6 0 01-.2 0c-.7 0-2.5 0-4.1-1.2-1.6-1-3.1-3.2-3.2-7.2v-.3c0-2.2.5-3.8 1.2-5 1.2-2 3-3 4.8-4.3 1.8-1.2 3.5-2.4 4.4-4.5s0-.2 0-.4l-.1-.7c-.1-.2-.4-.4-.8-.4v.3z"/>
+  <path fill="#fff" d="M238.3 250.1s-1 1.6-1.2 1.7c-.2 0 .8.2 1 .6l-.2.4s-1-.7-1.5-.7l-.1-.6s.5-.2.9-.6c.3-.3.7-1.1.7-1.3l.3.5z"/>
+  <path fill="#fcca3d" d="M241.7 251.2l-2.2.6-1.1-.7s0-.9-.4-1.3c-.5-.4-.8-.5-1.3-.7-.4-.2-2-.2-2-.2l-4-4.3 1.5.2 2.4-.3 2.1-.2 1.2.2 1.2.3.6.6.7.6.7 1 .4 1.3.2 1.3v1.6z"/>
+  <path fill="#af7029" d="M241.8 251s-.8.3-1.8.3-1.6-.2-1.6-.2l-.2.7-.4 1v2.6l2.1.4 1.1-.4.6-2.8.1-1.5z"/>
+  <path fill="#fcca3d" d="M241.2 250v1h.5v-.8zm-2-24l-.2-1.7-.7-1.2-.9-1.2-.9-1-.5-.5-.2-.3-2.3.1-1.2 1.4s3 2.2 4.3 4.6c1 .3 1.8 1 2.2 1.4l.1-.2.3-1.4z"/>
+  <path fill="#af7029" d="M237 228c0 1.7-.3 2.6-.6 3l1.4-1.6 1-1.8a5.7 5.7 0 00-2.2-1.4c.2.6.4 1.2.4 1.8z"/>
+  <path fill="#816c2a" d="M240.2 254.3l-1.1-1.3-1-.7-.2.2h.1l1 .7a13.1 13.1 0 011 1.3l.2-.2z"/>
+  <path fill="#6f5b24" d="M241.6 252.4s-.2.8-1 1.5-1.8 1.1-1.8 1.1l2.2.9 1.5-1.4-1-2.1z"/>
+  <path fill="#404118" d="M241.9 254.3l-.2.2-.4.4-.3.4.6-2.4.4.7v.4z"/>
+  <path fill="none" stroke="#78732e" stroke-width=".2" d="M228.6 223.4s-3 .3-5.2 0c-2-.4-1.6-5.9-1.7-6 0-.2-1.3-1.5-1-2.7.2-1.2 4-4.4 4.6-4.6.4-.1 1.2.2 1.2.2s1-1 1.3-1c.3 0 .7.6.6.8-.2.3-1.5 1-1.6 1.7-.1.6 0 1.2-.4 1.8-.4.6-1.1 1.4-1.2 1.9-.1.5-.3 1 0 1.1.4.2 1.7 0 2.8-.5 1.1-.5 1.6-1.1 1.7-1 .2 0-.6 1.3-1.8 1.8-1.3.5-2 1.1-2.7 1 0 0-.6 1.6 1.4 1.7 2.1.1 3.3-.4 3.3-.4l-1.3 4.2z"/>
+  <path fill="#ab6d29" stroke="#4d2a15" stroke-width=".3" d="M255 200.5s-5.7-1-5.6 3.6c0 1.5.4 2 1.5 2.3 1.2.3 3.6.5 5.6 2.3 2 1.8 2.2 3.1 2.2 4.2 0 1-.5 2-.5 2l1.3 6.2 1.2 4.6 3.8-2.2 2.3-6.8-2.9-12.2-9-4z"/>
+  <path fill="#4d2a15" d="M260.5 224s2-.8 2.5-2.4c0-.4-2-2.3-2-2.3l1.5 1c.5.5 1 .7 1 .6.3 0 1.2-2.1.8-2.6-.3-.4-.9-1.5-1.7-2-.8-.6-1.9-.5-1.9-.5s1.5-.5 2.3 0c.7.3.8.8.9.6a9 9 0 00-.5-3c-.4-.6-.7-1-1.6-1.1-1-.2-1.9-.1-1.9-.1s1.3-.8 2.3-.5c1 .2 1 .7 1 .6a9.8 9.8 0 00-.7-2.3 5.3 5.3 0 00-1.7-1.5l-1.4-.2h-.5s.7-.5 1.7-.4c1 .1 1 .4 1.1.4.2 0 0-.2-.7-.6a39.6 39.6 0 00-3.4-1.6h-2.5s0-.7.7-.8c.7-.1 1 0 .9-.1 0-.2-2.2-.7-2.2-.7h-1.7l-2.4.3.5-.7c.3-.3.8-.4 1.1-.5.9-.2-.4-.9-.4-.9l.6-1 3.2.2 6.5 3.9 3.1 2.6 2 5-.6 8.6-4.4 3.6-2 .2.5-1.8z"/>
+  <path fill="#d2a567" d="M254.8 202.7s-.2-.6-.2-1.4v-.7s-2-.3-3.5.9c-1.6 1.2-.7 3.3-.7 3.3s.7-.6 1.5-1c.9-.3 2.4-.2 2.4-.2.2-.2-.3-.8-.9-.9l-1.7-.1s.7-.5 1.8-.4c1.1.1 1.3.5 1.3.5z"/>
+  <path fill="#8f4620" d="M261.3 224.7l-1.4.5.9 6 5.7 9.7 3-.5 1-1.8.7.3c.4.4 1.5 2.3 2.4 2.7 1 .3 1.4.2 2.3.9.8.6 3.9 5.2 4 5.3.2.2-.2-1.9-.2-1.9l-.9-2.7-1.1-1.9-.2-.5h1.5l1 .6 1.5 1.3.8.9.4 1 .2.8.4 1.3.8 1.7 1 1.7.3-.6-.5-2-1.5-4.9-1-1.6 1.6 1c.4 0 1.5 1.8 1.5 1.8l.7 1.7.5 1.6.4 1.4.5 1.5.9-.5-.2-1.1-.8-3.4-.3-3.6s.4 0 1 .6c.5.6 1 1.9 1 1.9l.3 3.2.5 3 1 3 1 2 .7 1v-1.5l-1.2-12.8.1-.5s.2-.1.6.5l.9 1.5.3 2 .2 1.4.3 2.6.3 2.8 1.3 3 .7 1.7.4-2-.6-13.6.3-.4 1 1 .6.8.5 3 .3 8.7.3 2.2 2.6-22.6 1.5-.3.2-.5-1.1-.8-2.6-4-1.7-3.9-3-5.6-5.3-6.4-4.1-3.4-1.5-1 .2-.9.9-1.4h-.8l-1.8.3-1.8-.6-3.5-2.4-3.7-1.8-2.2-.8-5.3-1.3-5.3-.7h-2.3l-2.2.3s-1 .5-1.4 1.2c-.4.6-.4 1.1-.3 2.1.1 1 .7 1.5 2.2 2.1 1.5.6 5 3 5 3l1.6 1.6.6.8.1.6 1.2 9-2.3 4.8-1.6.8z"/>
+  <path fill="#ab6d29" d="M267 238.6s1 1.6 2.3.3c1.4-1.2-.6-4.8-.5-5 0-.2.6-.3.6-.3l1 1.9s.6 1 .3 2.5c-.2 1.6-1.7 3-1.7 3l-1.7-.5-.3-2z"/>
+  <path fill="#4d2a15" d="M300.2 259.4l-1.2-3.6-.4-2.8-.3-7.5c-.1-1 0-2.3-.2-2.5l-1.3-1.8-.5-.5.3-.3s.5.5.6.3c.1-.3 0-1.6-.5-3.6s-3-6.7-3-6.7l.2.3.7.7 1.5 1.2 3.3 1.2 1.7.3 1.2 2.3s.8 3.9.7 5.9c0 2-.1 3.6-.9 5.6-.8 2-1 8.2-1 9.2l-.5 2-.4.3z"/>
+  <path fill="#8f4620" d="M300.2 249s.7-.9 1-2c.3-1 .4-9.9-.6-11a8.2 8.2 0 00-3.3-1.8l.8 2.9.7 1 .5 1.5c0 .7.7 2.5.8 4.8l.1 4.5z"/>
+  <path fill="#4d2a15" d="M295.4 254.4s.5-4.1.3-7.1-.5-3.4-.8-4a25.8 25.8 0 01-2-5c-.7-2.6-1.2-4.5-1.6-5-.5-.5-1.4-1.6-1.6-1.3-.2.3-.2.9-.2.9l-1.3-.3-.3-.8.4-1.3v-.6l-.2-.9 1.6 1.3 3.3 2.2 1.7 7 1.5 4.2.2 7.2-.1 6.4-.9-2.9zm2-19.7l1.3 1c.5.4 1.5 1 1.3 1l-1.6-.6-1-.7v-.7z"/>
+  <path fill="#4d2a15" d="M291 252.8s.6-1.4.5-3.3c-.1-1.8-1-6.3-1.3-6.8-.3-.6-1.6-1.4-2.7-4-1.2-2.4-1.1-3-1.9-3.8a73.6 73.6 0 01-1.6-2l.3-2.7 2.8 1.5 1.3.6 1.4 7 1.3 2 .6 2.7.7 6.5.3 5.2-.2.5-1.6-3.4zm-3.4-3s0-2-.4-3.8c-.5-1.9-1-3.2-1.5-3.8a28 28 0 01-3.3-4 45 45 0 00-3.1-4v-2.7l1.7 1.2a44.9 44.9 0 011.8 1l.8 3 1 2.1 1.4 2 1 .8.5 3.2.3 1.8.8 2.6-.3 1.3-.7-.6zm-2.4 0l-.8-.7s.5-.5.3-1.5c-.3-1-.5-2-1-3s-.6-1.6-.9-1.9a97.8 97.8 0 00-3.5-3.2l-3-2.6c-.8-.5-1.4-.6-1.4-.6l-.4-3.2s1 1.4 1.7 1.6l1.6.6 2.3 4 .8 1 2 1.7.9 1.7.6 2 .8 2.7.2 1.7-.2-.2zm-4.4-.8s-1.3-1.5-1.6-2.5c-.2-1 .2-1-.2-2.1a9.5 9.5 0 00-3-3.7c-1.1-1-2.7-2.3-2.6-3 0-.7.3-.8.3-.8l.7.6 3.5 3.8 1.1 2 .9 2.5.5 1.1.5 1.5-.1.6zm12.8-18.6s2.5 3 3.1.2c.3-1.2-.8-3.6-.8-3.6l-3-5-4.7-5.8-2.8-1.3 1 1.6s2 2 4.7 6.7c2.7 4.6 2.1 7 2.1 7l.4.2zM279.4 212s4.9 4.2 8 8.7c3.1 4.5 4.4 7.5 3.7 8-.7.7-2.7-.3-3.5-1.5-.8-1.3-1.5-3.5-4.4-6.9-3-3.4-4.4-3.9-4.4-3.9l-2.2-3.4 2.8-1zm-2.6 10s3 2.4 4.7 4.3a29.8 29.8 0 012.8 3.4l1.1 1.1s-.6-1.2-.2-1.6c.3-.4.8-.2.8-.2l-9.2-9.7v2.7zm-.6.2s1 1.8 2.5 3.3a298 298 0 003.2 3.1l.7 2.4s-4.2-3.2-4.2-2.4a7 7 0 001 2.4l-1.3-.7-1.8-2.5-1-2.3-1.2-3 2.1-.3z"/>
+  <path fill="#4d2a15" d="M263.6 232.2s2.2 2 3.4 0c1.2-1.9.2-4 .2-4s3.1 4.5 4 .2c.1-.8-1.9-3.7-1.9-3.7l.7-.7 1.6 2.6s1.5-.6 1.5-2.4c0-1.8-1.6-4.2-1.6-4.2l1.5 1.6s2.8 0 2.9-1.7c0-1.7-2.4-3.5-2.4-3.5s2 .1 2-1c-.1-1.2-2.7-2-2.8-2.7 0-.7.8-1.9 2-1.2 1.2.6 2.8 1.2 3.5-.1.7-1.3 0-1.6 0-1.6l-1.7-.4-2.8-1.4-2.1-.8-2.2-.3.8 1.7.6 4.5v2.1l.4 4.6-1 3.8-.7.7-.4.5-1 2-1.2 1.5-1.7 2.2-1.6 1.7z"/>
+  <path fill="#ab6d29" d="M279 240.7s-.5-1.3-1.7-2.3c-1.2-.9-3-1-3-1l3.2 3.4h1.5zm4.5.8s-1-2-2.2-3.3c-1.2-1.3-2-3-2.4-3l-.5.1.3 2.6 2.2 2.2s2 1.5 2.6 1.4zm3.7-.2s-.5-2.4-1.7-4.7-2.6-3.3-2.6-3.3l.3 2.5 1 2.4 1.7 2.4 1.3.7zm3-1.3s.9-5 .1-6.3a3.7 3.7 0 00-2.2-1.7l-.5.7.5 3.6 1.1 2.7 1 1zm3-8.3s.7.4 1.6 2c.9 1.7 2.1 6.7 2.1 7 0 .2-.5.1-.6 0l-3-4.7-.6-4.3h.5z"/>
+  <path fill="#d2a567" d="M272.3 237.5s1.6-.4 1.6-1c0-.5-2-1.6-1.8-2.5.1-.4 1.6.1 1.7-.2.2-.3-1.5-3-1-3.6.5-.6 2 2.9 2 2.9s.8 1.6.5 2.5c-1 3-3 1.9-3 1.9zm3.7-3.6c0-.2 2.5.3 2.5.1.1-.5-2.2-2.3-2.2-2.3s-.5-1-.3-1.1c.1-.2 1.6.1 1.7 0 0-.3-1.7-2.6-1.7-3 0-.4.5 0 .5 0s1.3 1.4 2 2.5c.8 1.2 1.5 2.1 1.2 4-.2 2-4 .4-3.7-.2zm11-3.6s-.5-1.7-.2-1.9l.8-.4s-1.3-.8-1.9-.8c-.6 0-.7-.2-.8 0-.2.3 1 2 1 2l1 1z"/>
+  <path fill="#d2a567" d="M279.6 231.5s3.7 1 3.8.7c.2-.3-3-3.2-3-3.2v-.7c0-.2 1.3-.2 1.7.1.3.3 0 1 0 1.2.2.2 1.4 2 1.6 1.7.2-.3-.2-2.5-.1-2.6 0-.2 1.4 1.2 1.7 1.5.4.2 2.5 1.8 2.7 1 .2-.7.3-.8.3-1.3-.1-.4.6 2.1-.3 2.4-1 .4-2.1-.3-2.1-.3l-.9-.7-.5-.5s.6 2 0 2.2c-.7.2-1.5.1-1.5.1l-1.5-.2-2-1.4zm8.5-2.5s4 2.4 4.3 2c.4-.5-1-6-.8-6.6.2-.5 3.2 6.3 1.8 7.2-1.2.7-1.7.2-1.7.2l-2-1-1.6-1.8zm11 10l.9.4.5.2-1.1.2-.3-.8zm-3.8-13.1l.6.3.5.2-.5.2a1.3 1.3 0 01-.3-.1l-.3-.6zm-1.2-2s.4.2 1-.1.5-.7.5-.8c0-.2-.9-.2-1.2-.4-.2-.2-.2-.5-.2-.5H293l1.1 1.9zm3.5 11.6l1.6.7c.3 0 .9.4.8.5 0 .1-1 .2-1.4 0-.5-.3-.6-.2-.6-.2l-.4-1zm-6.5-18.1h1c.2.2 0 1-.3 1.3l-.8.4a38.5 38.5 0 01-1.3-1.8l1.4.1zm-5.7-5l1.2-.1c.4 0 .9.3 1.2.5.4.2.7 2.6.5 3-.2.5-2.8-1.5-2.9-1.7 0-.2-1.2-2-1.2-2l1.2.2zm-2.5-1.2s2 .2 1.8-1a3 3 0 00-1-1.9l-2.4 1.7 1.6 1.2zm-5.2-2.2s.5.2 1.1 0c.6-.2 2.1-2.2 3.2-2.4 1.1-.3 1.4-.3 1.6 0 .2.2 0 1.4-.2 1.7-.2.3-3.5 1.7-3.5 1.7l-1.2-.2-1-.3v-.5zm-.6-3.6c-.5-1.2-1.4-1.6-1.7-1.6-.3.1 1.1 1.3 1.3 2.8l.2 2.8h.7v-.5l.2-.5v-.4l-.1-.8-.2-.6-.1-.5-.3-.7zm-4.6-1.7a12.3 12.3 0 00-4.4-3c-.2 0 3.2 2 4 3.4.7 1.2.7 3 1 3.2.4.3.7 0 .7-.1 0 0 .3-.4.2-.5l-.2-.9-.5-.8-.3-.6-.5-.7zm-4.4-1.8a13.4 13.4 0 00-8-2.5c-2.9 0-4.3.2-3.9 1.8.4 1.5 1.7 2.1 4 2.1 2.4 0 3-.2 4.2.2 1.2.4 2.4 1 2.9 1.6.4.4-1-1.2-2.1-2l-2-1.5s-.2-.5 1.4-.2c1.6.2 3.8 1.2 4.3 2.6.6 1.3.5 2 .5 2.4 0 .2.6-.2.6-.2l.2-.7s.1-.5-.2-1c-.3-.7-.4-.9-1.1-1.7l-.8-.9zm-7.7 22.8c1.2 0 3.8-2.2 4.2-5.4a27 27 0 00-2-10.1c-.5-.7.7-.3 1.4.3.6.7 2 5.2 2 8.5s-.8 4.3-2.5 6c-1.8 1.6-3.2 1.5-3.2 1.5l.1-.8zm4.1 9.3s.6.7 1.2.5c1.2-.5 3.1-1.4 3.1-3 0-1.2-1.4-2.2-1.5-2.6v-.8l1.3.3.3 1.8s.5.5 1 .3c.6-.2 2-1.3 1.9-2.4-.2-1-1.7-2.3-1.8-2.8a1.8 1.8 0 010-1l1.2.2.4 1.5s.3.6 1 .4c.7-.1 2-1.4 1.7-2l-1.3-2.1v-.7l.5.3s.4.2 1.4-.1c.9-.3 1.8-1 1.8-1.6 0-.6-.7-1.2-.8-1.6v-.5l.6.1.8 1 .2 1-.3 1-1.1 1.3-1.2.4h-.3l.7 1.2-.2 1.6-1 1-1.4.7v1.5l-.8 1.6-1.7 1h-.5l-.2 1-1 1.5-2 1.3-1.3.2-.8-1.1.1-.4z"/>
+  <path fill="#d2a567" d="M274.7 217.1s3.1 1 3-1c0-1.2-3-3.7-3.2-4.1-.2-.5-.1-1-.1-1l1.5 1.4s2 .5 2.6-.7c.5-1.1 0-1.8 0-1.9h.4l1 .1-.2 1.8-1 4.4s.3 1.7-1 1.9c-1.4 0-3-.9-3-.9zm3 23.6s0-.9-.7-1.5-2-1.2-2.2-1.4a48 48 0 002.2 2.8l.7.1zm4.5.1l-2-2.5c-.2-.7-1-2.1-1.7-2.2-.6 0 .6 2.4.6 2.4l2.5 2.3h.6zm4.3 0l-1.7-3.3c-.3-.7-1-2.7-1.8-3.3-.8-.5 0 1 0 1l1 2.6 1.4 2.3 1 .7zm3.1-1.8s-.1-2.2-.4-3.7a4.6 4.6 0 00-1.5-2.7l.1 2.7 1.8 3.7zm6.5 1.6l-1.5-3.8a17.6 17.6 0 00-1.7-3.3l.3 2.3 1.4 3.8 1.5 1zm5.6-6.8s-1-1-3.1-1.9a15 15 0 00-4.3-.9l.2.3 1 .8 2.2 1.2 3 .7 1-.2z"/>
+  <path fill="#202020" d="M278.6 235s0 2 1 3.1l3.7 3.7c.4.4.8 2.7 1.5 4.6.6 2 .8 3.5 1.1 4 .3.6.9 1.5.5 1.4-.5 0-1-.6-1.2-1.3-.3-.7-.2-.7-.1-1.7 0-1-1.5-5.9-2.2-6.4-.7-.6-3.9-3.2-5.1-5-1.2-1.9-1-2.3-1-2.3h1.8z"/>
+  <path fill="#202020" d="M283.7 247.5c-.7-1.4-.8-2.7-1-3.5a12 12 0 00-3.5-3.4c-.5-.2-1.5.1-2-.2l-2.9-3.2s-.3.4-.2.5c.1 0 2.7 3 3.7 3.8 1 1 1.5 3 2.2 4.6.6 1.6.4 1.2.4 2 .1.8.6 1.2 1 1.2s.7-.2.5-.3a8.3 8.3 0 01-1.7-2.8c-.6-1.4-1.2-4-2-4.9l-.3-.2 1-.1c.7 0 3.4 2.4 3.6 3.1.2.7 0 1 1 3.4 1.2 2.4 1.7 3 1.7 3h.2l-1.7-3zm-4.1-16l2.4 1.4 1 .2s.3 3.5 1.7 5.5 2.6 2.7 2.6 2.7 0 3.8 1 6.4a14 14 0 011 6.3c-.2.5-1-1.5-1.6-3.3l-1.5-5a10.3 10.3 0 00-2-3.6c-.7-.5-.2-.4.2 0a9.1 9.1 0 012 3.5c.6 2 .9 4 1.2 4 .4 0 .6-.3.6-.7 0-.4-.4-1.4-.7-3.3-.4-2-.7-3.2-1-3.7-.3-.6-.8-.6-2-2.8a16 16 0 01-2-4.2v-1c-.3-.2-.4 0-1.4-.5s-1.5-1.9-1.5-1.9z"/>
+  <path fill="#202020" d="M284.5 230.8s1.2 1 1.9 1.2c.6.3 1.6.3 1.6.3s-.3 3.4 1 5.5c1.3 2.2 2.7 3.4 2.7 3.4s.2.8.6 5.5l.6 6.6c0 1.8.1 8.4-.1 8.2-1-.8-.2-4.3-.7-5.8-.5-1.5-1.3-1.7-2.3-6-1-4-.3-5-1-6.6-.7-1.6-1.6-1.7-1.6-1.7s1.3.2 1.8 1.6c.5 1.3.6 4.8 1 6.5 1 4 2.4 6 2.4 6s-.3-5-.7-7.8c-.4-2.8-.3-5.1-.9-6.2-.5-1-1.6-2-2.3-3.3-.7-1.5-.9-4.3-1.2-5-.3-.7-.5-.5-1-.7-1.5-.6-1.8-1.7-1.8-1.7z"/>
+  <path fill="#202020" d="M288 229s1.1 1.2 2.6 2c1.4.9 2.2.6 2.4.8.2.2-.3 3.1 1.2 5.8 1.5 2.8 2 2.8 2.1 3.2l.5 11c.2 2.8.4 12-.7 12s-.1-6.8-.7-8.4c-.5-1.6-.5-1.1-1-2.4-.6-1.2-.6-6.2-1.4-9.2-.7-2.2-1.3-2.6-1.3-2.6s1 .6 1.6 2.5c.5 1.8.6 8 1.2 8.9.6 1 1.4 2.2 1.6 3 .2 1 0-11.5-.4-12.3-.2-.8-2.7-5.3-3-7.8-.1-2.5-.2-2.8-.4-3-.3-.2-1 0-2.2-1.1-1.2-1.2-2-2.4-2-2.4z"/>
+  <path fill="#202020" d="M293.8 230.4c0-.2.8 1.4 3 2.3 2.3.9 4.5.7 4.8 1a18 18 0 011.7 8.1c0 4.5-.8 4.1-1.5 8-.7 4-.7 11.8-1.1 13-.2.5-.5.7-.7 1.5-.3.7.2 2.2-.5 2.2s-.8-1.1-.8-1.7c0-.6.7-2.8.7-5s-.4-2.4-.8-5c-.3-2.5-.3-10.7-.6-11.5-.3-.8-1.7-2.5-1.7-2.5s1.5 1 1.9 2c.4 1.2.4 10.3.8 12.1.4 1.9.3-.4.4-1.5.2-1 .7-5.5.7-7.9-.1-2.4-1.1-7.6-2-8.4 0 0 .5.5 1 1.6l.6.5.8.4a2.3 2.3 0 01-.8-.2l-.5-.3a19.1 19.1 0 011 6.4c.1 4-.5 13 .1 13.2.7 0 .5-5 1.2-9s1.6-4.6 1.3-8c-.3-3.2-1.2-6.8-1.9-7.3-.6-.4-2.6-.3-4.4-1.4-1.8-1.1-2.8-2.3-2.7-2.6zm-28.6 4.6s.6.3 1.4 0c.7-.4 2.7-2 2.7-2.7V231s0 .3.7.4c.5 0 2.2-1.2 2.3-2V227c-.3-.2.4.3.8 0 .3-.3 1.9-1.3 1.9-2.4 0-1-1-2-1-2h1.3c.5-.1 2-1 2-2s-.6-2.4-1.8-2.5c0 0 .9.2 1.8 0 .9-.4 1.2-1 1.2-2s-1.8-3-2.1-3.2c-.4-.2 1.9.6 2.5-.3.5-1 .6-1.5.4-2-.1-.5-.6-.7-.6-.7s1 .3 2.3-.4c1.3-.6 2.4-1.5 3-1.5.6 0-1.9 1.4-2 2.1 0 .3.7.8 1.8 1.7l.2.1c.5.3 2.5.4 2.6.5.2 0-1.9 0-1.7.2a27.3 27.3 0 014.6 4.3s.3.3.7.4l1 .2H290a52.2 52.2 0 012.6 3.8s.4.5.7.6l1 .2c0 .2-1.2 0-1 .2a65.6 65.6 0 012.6 4.8s-2.5-4.3-5.5-7.6c-3-3.4-3.6-3.8-3.8-3.5-.2.3 2.2 3.3 3.5 5.3 1.3 2.1 2.4 4.7 2.4 4.7s-3-6.2-7.2-10c-4.2-3.9-4.6-4.5-5-4.3-.6.1-1 3-.6 3.5.3.6 3.3 3 6 6 2.6 3 5.9 8.4 5.9 8.4s-2.4-3.8-6.4-8-5.5-5.3-5.8-5.3c-.3 0-.4.8-.8 1.5-.5.6-1.5.5-1.5.8 0 .3 3.4 3.4 4 3.8.7.4 1.1.2 1.6.5l1.1.7-1.2-.4c-.5-.2-1-.2-1 0s2.7 3.5 3.2 3.7c.4.2.7.1 1.3.4.6.2 1.5.8 1.5.8l-1.6-.7c-.7 0-1 0-1 .2s2.1 2.9 2 3c0 0-3.2-3.8-5.8-6.1-2.7-2.4-3.9-2.9-4-2.8-.1.1 0 .8-.7 1-.6.3-1.2.3-1.2.6 0 .2 2.3 2.5 4 4.3a119.5 119.5 0 013.2 3.7l-3.6-3.5c-1.9-1.8-2.8-2.5-3-2.4-.2.1-.2 1 0 1.3.1.2 3.6 4.3 3.5 4.4-.1.1-4.1-4.9-4.4-4.9-.2 0-.4.6-.6 1-.3.2-1.4.2-1.4.6 0 .4 5.6 6 5.4 6 0 0-4.6-4-4.8-3.7-.1.2 2 4 1.9 4.1-.2.1-2.8-4-3-4-.2 0-.2.5-.9 1.1-.7.6-1.5.4-1.5.6 0 .3 3.8 4.6 3.7 4.7 0 0-4-4.1-4-3.9 0 0-.3.3-.2.6.3 1 1.2 2.9 1 3 0 0-1.2-2.5-1.5-2.4-.3 0-.3.6-1 1-.5.3-1 .2-1 .5s.7.7 1 1.3c.3.6.6 2 .6 2s-.4-1.2-1-1.9c-.5-.7-1-1.2-1.4-1.2-.4 0-.7.4-.7.4l-.4-.9z"/>
+  <path fill="#202020" d="M301.6 233.7s1.2-.1 1.4-.4c.1-.3-.5 0-1.6-1.3-1.2-1.2-4-9.7-7.3-14-5.2-6.9-10-10-10-10s5.7 3.3 10.2 9.9c4.6 6.6 5.7 11.9 7 13.2 1.3 1.4 2.5 1.6 2.4 2 0 .4-.2.7-.7.8l-1.7.1.2-.3zm-38.4-1.9l.2.1c.3 0 1.9-1.5 1.8-2 0 0-.7-.2-1.3-.8-.6-.6-.7-1.5-.7-1.5s.5 1 1 1.3c.4.3 1.1.5 1.4.3.2-.3 2.5-2 2.4-2.6 0 0-.7 0-1.4-.5s-.8-1.6-.8-1.6.4.9 1.1 1.2c.7.3 1.4.2 1.6 0 .2-.3 1.7-2.4 1.5-3 0 0-.7 0-1.4-.4-.7-.5-1.1-1.7-1.1-1.7s.5 1 1.4 1.2c.9.2 1.6-.4 1.7-1 .2-.6.7-3 0-3.6 0 0-1.2.4-2 0s-1.1-1.5-1.1-1.5.6 1 1.6 1c.9.2 1.3-.3 1.4-.7.2-.3.2-1.7 0-2.4-.3-.7-.9-.7-1-1.8 0 0-.3.4-1.5.4s-1.8-1.3-1.8-1.3 1 .9 1.9.8c.9 0 1.2-.8 1.3-1.4 0-.6-.5-1.2-.8-1.8-.2-.6-.3-1.3-.4-1.2-.2 0-.4.6-1.6.4-1.2-.2-1.5-1-1.5-1s.9.6 1.5.6c.7 0 1.2-.4 1.2-.9 0-.4-.3-1.3-1.8-2.6a46.5 46.5 0 00-2.8-2.2s2 1.1 3.3 2.2c1.3 1 2 2.1 2 2.1s1.4.5 1.5 0c.2-.5.2-1-.3-2-.4-.7-1.6-2-1.6-2s1.2 1 1.8 2.1c.6 1.1.4 1.9.4 2.1 0 .3 2.7 1.3 3.3 1 .6-.4.3-1.2-.2-2l-1-1.4s.7.7 1.2 1.5c.4.7.8 1.4.6 1.7-.2.4-.5.5-.5.7l1.8 1c.9.5 1.9 1 2 .7.2-.3.2-.9.2-1.8-.1-.8-.6-2.1-.6-2.1s.6 1.2.7 2.1v2c.3.2 1 .3 1 .3s-.6.4-1.7 0c-1.2-.3-6.2-2.8-6.4-2.6-.2.3 2.3 1.8 3.5 3 1.2 1 1.7 2.2 1.7 2.2s-.9-.8-1.8-1.3-3.5-1.8-3.7-1.6c-.1.2 1 .4 1.1.6.1.2-.8 1-.8 1.4 0 .3 3.8 3 3.7 3.2-.2.3-1 1-1.2 1-.1 0-2-1.5-2-1.3 0 .3 1 1.2 1 1.4 0 .2-.6.6-.5 1 .1.5 2.1 2.1 2 2.7 0 .5-1 1-.8 1.4l1.2 1.6-1.5-1.1c-.3-.4-1-1.2-1.1-1.1a6 6 0 00-.8 2c0 .4 1 .9 1.1 1.8.2 1-.1 2-.2 2 0 0-1.3-1.7-1.5-1.7-.3 0-.6 0-.8.5-.2.4-1 1.7-.8 2 0 .1 1.3.4 1.3 1.4 0 1-.8 1.9-.9 1.9l-1.6-2c-.2 0-1.8 1.9-1.8 2 0 .3 1 1.1.9 1.4-.2.4-1 0-1.5.2l-1.3.5c-.2 0-.4-.5-.4-.5z"/>
+  <path fill="#202020" d="M284 208s.1-.5.4-.8c.2-.2 1.2-1.3.8-1.6-.3-.2-1.6.2-2.4.2-.8-.1-1.3 0-3.7-1.9 0 0-7.4-5.1-18.9-5.8-3.6-.2-5.2 1-5.4 1.8 0 .1 1-1.5 4.6-1.5a40 40 0 0119.2 5.7c.3.3 2.3 2.2 4.1 2 1.9-.3 2.3-.5 2.2-.2 0 .2-.6 1-.7 1.2l-.3 1v-.1zm-20 1.5a9.6 9.6 0 00-2.2-2.6 30.3 30.3 0 00-6.4-3.4c-.2 0 4.8 2.3 6.2 3.7l2.4 2.3z"/>
+  <path fill="#d2a567" d="M264 217.8s-.4-.5-1.4-1.2a7.9 7.9 0 00-2-.9l2.4.6c.6.6 1 1.5 1 1.5zm-.7-4.3s-.3-.5-1.7-1c-1.4-.4-1.7-.3-1.7-.3s1.3-.6 2.3 0a2 2 0 011.2 1.3zm-.8-3.6s-.3-.6-1.5-1c-1.3-.5-2.1-.6-2.1-.6s1.3-.3 2.5.2c1.3.5 1.1 1.4 1.1 1.4zm-1.5-2.2s-.3-.5-2.7-1c-2.3-.6-3.2-.6-3.2-.6s3.3-.3 4.2 0c.9.4 1.7 1.6 1.7 1.6zm-4.3-2.5s-1.4-.4-2.8-.5l-3.5.1s4-.6 5-.4c1.1.3 1.3.8 1.3.8z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M243.6 254.7s.7 1.3 2 1.3c1.5 0 2.6 2 2.6 2l-1.5 1.6-3.7.2-1.2-2 1.8-3zm0-1.2c.2-.3-1-2.7-1.9-3-.8-.5.3.7.1 1.2-.2.5-.3 1-.2 1.2 0 0 .7 1 .3 1.5-.3.5 1.8-1 1.8-1z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M243 257.1s.7.3 1.2.2c.5-.2 1-.7 1-.7m-2.9-.4s2.1-1.5 2-2.3c-.2-.8-.7-.8-1-.7a5.6 5.6 0 00-1.6 1.3l.6 1.7z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M240.9 257.2s.3 1 1 1 1.7-.5 1.7-1c0-.3-.7-1-1.1-1.3-.5-.2-1.5.3-1.5.3l-.1 1z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M242.8 255.8c-.2.3-1.5 1-1.9 1-.4 0-1.3-1-1-1.2l1.2-.3c.3-.2.4-.7.6-.7.2 0 .7.2.9.5s.3.4.2.7z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M241.4 256.7s-2 2.8-2.9 2.6c-.8-.1.4-3.9.4-3.9l1 .4c.6.2 1.3.5 1.5 1z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M237.8 254.8s2.6.4 2.7.8c.1.5-1.2 1-2 1-.7 0-.7-1.9-.7-1.9z"/>
+  <path fill="#202220" d="M231.2 258.7s.4 1.3 1.5 1.4c1.2 0 2.2-1.2 2.2-1.2l-2.7-1-1 .8z"/>
+  <path fill="#4b4139" d="M231.2 258.7l.3.7c.3.3.6.7 1.2.7h.1c1.1 0 2.2-1.2 2.2-1.2l-2.8-1.2-1 1 1-.8 2.7 1-.2.1c-.3.4-1.1 1-1.9 1-.6 0-1-.3-1.2-.7a2.3 2.3 0 01-.2-.4 3.3 3.3 0 01-.1-.1z"/>
+  <path fill="#202220" d="M232 258.4s.4 1 2 1c1.4 0 2.6-1.2 2.6-1.2l-2.4-1.9-2.2 2z"/>
+  <path fill="#4b4139" d="M232 258.4s.4 1 2 1a4 4 0 002.6-1.2l-2.4-2-2.3 2.2h.1l2.2-2 2.4 1.8h-.1a4 4 0 01-2.5 1.1 2.4 2.4 0 01-1.6-.5 1.8 1.8 0 01-.3-.3 1 1 0 010-.1h-.1z"/>
+  <path fill="#4b4139" d="M232.2 258.6s.6.5 1.4.6l1.8-.2-1 .3h-1.2l-.5-.2-.4-.3-.1-.2z"/>
+  <path fill="#202220" d="M234 257.3s.6 1.6 2 1.4c1.3-.1 1.4-1 1.4-1l-1.6-2.2-1.9 1.8z"/>
+  <path fill="#4b4139" d="M234 257.3h-.1l.4.8c.3.3.8.7 1.5.7h.2c.7-.1 1-.3 1.2-.6a.9.9 0 00.2-.4l-1.6-2.4-2 1.9h.1l2-1.7 1.4 2.2c0 .1-.1.7-1.3.9a1.4 1.4 0 01-.2 0c-.6 0-1-.4-1.4-.7a3.2 3.2 0 01-.3-.5 3 3 0 010-.2 1.2 1.2 0 01-.1 0z"/>
+  <path fill="#4b4139" d="M234.1 257.6s.9 1 1.6 1c.7 0 1.2-.3 1.2-.3v.1l-.4.2-.6.1h-.7l-.6-.4-.5-.7zm-2.6 1.6s.6.7 1.2.7 1.5-.5 1.5-.5h.1l-.1.1-.6.4-.8.2-.6-.1-.4-.3-.3-.3v-.2z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M237.6 254.6c.6 0 2 1.7 2 2.6 0 .9-.4 2.2-1 2.1-.7 0-2.2-1.3-2.5-2-.3-.6-.7-1.1-.4-1.4.2-.4 2-1.3 2-1.3zm-6.4.2s-1-.8-1.5-.4c-.4.4-.3 1.8 0 2 .3.4 1.5-.6 1.5-.6v-1z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M231 255.8s-1.4 0-1.4.7.7 1.3.8 1.5c.2.1 1.4-.6 1.4-.6l-.8-1.6z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M231.6 256.9s-1.5.4-1.5 1c0 .4.7 1.3 1.1 1.3.5 0 .8-.9 1-1 .2-.2-.6-1.3-.6-1.3zm.7-4.1s-.3-.4-.9-.2c-.6.3-1.3.9-1.1 1.8 0 1 .4 1.6.4 1.6l2.1-.7-.5-2.5z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M232.4 254.4s-1.8.6-1.9 1.3c0 .8.4 1.5 1 1.6.4.1 2-1.4 2-1.4l-1-1.4z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M234 257.4s-1.8 1.2-2 1.2c-.3 0-1-1-.8-1.6.2-.6 1.4-1.1 1.9-1.3.4-.2 1 1.7 1 1.7zm1.6-6.6s-.6-.4-1.7-.4c-1 .1-1.9 1.5-2 2.3-.1.7 0 2 .4 2.2.4.2 2.7-1.6 2.7-1.6l.6-2.5z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M233.4 256.2c-.8 0-1.4-1.1-1.3-1.8.1-.6 1.6-1.8 2.4-1.6.8 0 .6 2 .6 2s-1 1.5-1.7 1.4z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M235.8 256s-.4 1-1.1 1.3c-.8.4-1.3.1-1.7-.5-.5-.7.2-1 .5-1.3.4-.3 1.4-.5 1.4-.5l.9 1z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M234.6 253.8s-.9.6-.4 1.4c.5.8.9 1 1.5 1.2.6.1 1-.1 1.5-.7s1.2-.9 1.1-1.6c0-.7-.3-1.3-.8-1.5-.4-.2-1.7 0-3 1.1z"/>
+  <path fill="#202220" d="M237 250.4s-.9-.4-1.6 0c-.6.4-1.1 1.2-1.1 2l.1 1.7s1-.2 1.5-.7.8-.7.7-1c0 0-.3-.3-.3-.9 0-1 .7-1.1.7-1.1z"/>
+  <path fill="#4b4139" d="M237 250.4s-1-.2-1.5.1c-.5.3-1 .8-1.1 1.5-.2.7 0 .8 0 .8s-.2-.5 0-1.1c.2-.6.7-1.2 1.2-1.4a3 3 0 011.4 0z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M263 269.6l1.3-.6 1.6-1 .3 1.8-1.4 1h-1.2l-.7-.5.2-.7z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M261.1 269.7h.9l1-.1c.2 0 .5 1 .5 1l-.4.5-1.2.7-1-.6-.1-1.4h.3zm9.7-.5l-.7-.9-1.7-1.5v4h1.8l.8-1.3-.2-.3z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M261.1 269.7s-.3-.4-1-.3c-.8.1-1.6.7-1.7 1.3 0 .5 0 2 .4 2.3.4.3 1 .5 1.8.3.8-.3 5-2.9 5-2.9l-1 .3-1.2-.2s-.5.7-1.2.8c-.7.1-.8-.3-1-.6l-.1-1z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M264 271.1l-1 .4a7 7 0 01-1 .5l.3 1.3 1.8.4 1.1-1v-1.2l-1.3-.4zm8.3-.9l-.6-.6c-.3-.4-.8-.5-.9-.4l-1 1.1v.9l1 .5.7.1 1-.6-.2-1z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M266.1 269.6l-1.2.7-1 .8 1 1 .9.2 2-1.4-.2-1.3h-1.5zm7.6 1.6l-.4-.6c-.4-.3-.8-.4-1-.4-.2 0-1 1.2-1 1.2l-.1.3.7.8 1.3.3.9-.8-.4-.8z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-linecap="round" stroke-linejoin="round" stroke-width=".2" d="M270.4 272.6l1 .2s-.1.2.2.4c.2.2.3 0 .3 0s0 1 1 1.7c0 0 1.2.4 1.7 0 .6-.3.5.1.5.1l1.6-2s0-.4-.4-.4c0 0 .3-1.2-.7-1.5s-1.9.1-1.9.1-.8 1.5-1.2 1.3a1.9 1.9 0 01-.6-.4l-.6-.7-.7-.2c-.4-.2-.7-.9-.7-.9s-.6 0-.8-.3a3 3 0 01-.5-.6l-1.5 1s0 .5-.9 1.1c-.8.7-1.4.7-1.4.7s-.2 1.3-1.2 1c-1-.1-1.6-1.2-1.6-1.2s-.7-.1-1.1.5c-.5.6-.7.8-.7 1.4 0 .6.4 1.4.7 1.7.3.3 1.3 1 2.4.4 1.2-.6.8-1.5.8-1.5l.6-.4c.7-.5 1.5-1.2 2-1.4"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".2" d="M268.6 264.7v2.5s.4 2.3-.1 3c-.5.7-2.3.6-2.6 0-.2-.7-.1-2.6-.1-2.6l2.8-3z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-linecap="round" stroke-linejoin="round" stroke-width=".2" d="M266.6 272.4s-.4.7.8.8a.8.8 0 00.7-.3c.3-.3.3-.6.3-.6s-.1.9 1 1c1.1 0 1-1.1 1-1.1"/>
+  <path fill="#202220" d="M257 274.5s-.7-1.1 0-1.5c.8-.4 1.3 0 1.7 0 .5 0 .3-1.2.2-1.4 0-.3-.3-.8-.5-1-.2 0-2.8.2-2.7 1.9 0 1.7 1.3 2 1.3 2zm4 4.1s-.8-1.2-.4-1.9c.5-.7.8-.2 1-.3.2 0 .3-.5 0-1.3s-.9-1.1-1.2-1.2c-.2 0-1.8 1.1-1.5 2.6.4 1.8 2 2.1 2 2.1zm14.5-1.4s2.8 1.2 3-1.7c.1-1.5-1.3-2.5-1.7-2.5-.3 0-.5.2-1 .8-.5.6-.9 1-.7 1.2.2.3 1-.2 1.4.7.6 1.5-1 1.5-1 1.5z"/>
+  <path fill="#4b4139" d="M261 278.6s-2.2-.5-2.2-2.6c0-1.4 1.6-2 1.6-2s-1.4.7-1.5 2c0 2.1 2 2.6 2 2.6zm-4-4.1s-1.3-.3-1.4-2.1c-.2-1.8 2.8-1.7 2.8-1.7s-2.8 0-2.7 1.8c.2 1.8 1.3 2 1.3 2zm18.5 2.7s.6.3 1.2.2c.7 0 1.4-.2 1.7-1.2.3-1.1.1-1.6-.6-2.5-.5-.7-1-.7-1-.7s.6.1 1 .7.9 1.3.5 2.5-1.5 1.2-2 1.2l-.8-.2z"/>
+  <path fill="#904720" d="M242.1 217.9l-.5-.1.4-.9 1.4-.5 1.5-.1h1.5l.7.4.8 1.9-2.9 1.7-.5.2-.1-.8-.5-1.1z"/>
+  <path fill="#202020" d="M269.5 260.4l-.1-4.4-12 3.6 4.8 4.4z"/>
+  <path fill="#d2a567" d="M247.6 252.7l-1-.8-1.1-.6h-1l-.1.2.1.4 1.1 1.3 1.8 1 .7.5.4.2-1-2.2zm-.3 1.9h.7l.6.9.5.8.5 1 .2.7-1.3-.3-3.9-1.2.4-.9.6-.6.6-.2.8-.2z"/>
+  <path fill="#d2a567" d="M249.8 257.8l.6-.1.4-.4-.2-1.4.3-4.6-3.1-3.7-.7 2.1 1 3.8.6 2.2z"/>
+  <path fill="#ab6d29" d="M247.5 249.3s-.2.4.1 1.6c.3 1.2.7 4 1.8 5.8 1 1.8-1-1.5-1-1.5s-1.7-3.7-1.5-6.5c.3-2.9.6.6.6.6z"/>
+  <path fill="#ab6d29" d="M249.8 251.7s-.7.8-.8 1.5v1.7s0-.8.7-1c.7-.2.6 1.9.6 2.1l.4-3.8-.9-.5zm.4 7.7l-3.5-.8c-1.9-.8-2.8-1.5-2.8-2 0-.4 3.2.2 3.7.3.5.1 1.9.8 1.9.8h.8l1.5-.6.2 1.6-1.8.7zm-6-.7s1 .6.5.9c-.4.3-1.5.3-1.8.2l3.4.8.6-.6a279.8 279.8 0 00-2.6-1.3z"/>
+  <path fill="#d2a567" d="M243.4 257.8c0-.2.2.5 1.4.6 1.2.2 1.8-.2 1.8-.2l.5.4.6.1-.5.9-2.3-.7-1.2-.6-.3-.5z"/>
+  <path fill="#ab6d29" d="M251.3 256.2l.6.9.4-2v-2l-1.3-.8z"/>
+  <path fill="#4d2a15" d="M247.8 253l-1-1.8-1.4-2.5.8-1.4 1 1.4s-.3 1 0 2c0 1 .6 2.2.6 2.2z"/>
+  <path fill="#d2a567" d="M240.6 259.2s.5-.7 1.5-.8c1.1-.1 2 .1 2 .1l2 1.2.5.7-4-.6-2-.6z"/>
+  <path fill="#8f4620" d="M251.2 252l.1 3.3c.1.7.6 1.5.5 1.8 0 .3-.2.4-.8.6-.5.2-1.5 0-1.5 0s1-.1 1-.3c.1-.2-.2-1.1-.3-2 0-.8 0-1.7-.2-1.7-.3 0-.6.3-.7.4 0 .1.3-3 .6-3.3.4-.4 1.3 1.3 1.3 1.3z"/>
+  <path fill="#ab6d29" d="M243.8 258.4s-.4-.3-.4-.6.4 1.3 2.7 1.2c2.2-.1 2-.2 2-.2h1.1s-.2 1-.4 1.1c-.2 0-1.7 1.1-1.8 1.2l-.5.3v-.2l-.3-1.7-1.9-.7-.5-.4z"/>
+  <path fill="#8f4620" d="M247.8 253s-2.6-2.8-3.5-4.5c-.8-1.8-.3-4.2-.3-4.2l2.4 3.2s-.3.6-.2 1.6c.1 1 1.6 3.8 1.6 3.8z"/>
+  <path fill="#ab6d29" d="M246.1 262.6c0-.2-.2-.8.3-1.4a15 15 0 015.4-3.3v2.4l-5 2.4-.7-.1z"/>
+  <path fill="#8f4620" d="M246.4 260.8l1.1-1c0-.3-.6-.4-1.7-.6a8 8 0 01-2-.8s1.3 1.1 1.9 1.3c.5.2.5.4.4.6l.3.5zm6.6.6l-1-1.7-.2-1.8-.8.6-1.5.5s1.6 0 1.6.5c0 .6-2.4.8-2.4.9 0 0 1.9-.4 1.8 0-.2.5-1 .5-2 1a14.8 14.8 0 00-2.4 1.2s.4.3 1.2.2c.7 0 2.3-.4 2.3-.4l3-1.2.4.2z"/>
+  <path fill="#ab6d29" d="M253 261.4s-.8-.3-1.4-3.9c-.6-3.6-.5-4.5-.5-4.5l1.5 1 1.3 2.3-.9 5z"/>
+  <path fill="#8f4620" d="M253.5 255.4s-.7 2-.7 3.2c0 1.2 0 2 .2 2.8a6.9 6.9 0 001.5 1.8l.5-.5.3-1.6v-2.7l-1.8-3z"/>
+  <path fill="#202020" d="M255.5 258.2s.4 5-1 5.1c-.5.1-1.4-1.9-1.5-2 0 0 1.1 2 1.6 1.7.8-.3.5-5.2.5-5.2l.4.4zm-2.5 3.2l-.5-.7c-.4-.6 0 .5-2.8 1.5s-3.6.4-3.6.4.9.7 3.6-.1c2.7-.8 2.5-1 2.8-1l.5-.1z"/>
+  <path fill="#ab6d29" d="M248 255s.5.3 1 1.3l.8 1.7.1-.1-.8-1.7-1.7-2.6.6 1.4z"/>
+  <path fill="#8f4620" d="M246.4 261.2s.3-1 0-1.1c-.3-.2-.5 0-2.4-.2a27.3 27.3 0 01-3.4-.7s1.3.8 2.5 1.1a95.3 95.3 0 002.7.7h.5l.1.2z"/>
+  <path fill="#202020" d="M246.4 261.2l-.2-.4c-.2-.2-.5 0-2.8-.5l-2.8-1s.8.6 2.8 1.1l3 .8z"/>
+  <path fill="#ab6d29" d="M247.4 254.6s-1.7 0-2.2.5c-.5.4-1.3 1.6-1.3 1.6l1.1.1s-.1-1 .4-1.5 1.3-.6 2-.7z"/>
+  <path fill="#8f4620" d="M244.2 251.4s.7.9 1.4 1.2c.7.3 1.4.6 1.7 1 .4.3.7 1.4.7 1.4s-2.4-1.1-2.8-1.6c-.5-.6-1-2-1-2z"/>
+  <path fill="#8f4620" d="M246.6 252s-.3-.4-1-.7c-.6-.3-1-.3-1.3-.1-.1.1 0 .2 0 .2l.8 1.3.5-.1s-1.3-.8-1-1c.6-.6 2 .3 2 .3z"/>
+  <path fill="#202020" d="M253 248.9l13.6-7 6.4 9-11.7 3-6.2.6-3-2.2z"/>
+  <path fill="#4d2a15" d="M271.2 252.7l16.8 14.6-1.8 1.3-4-1.1-8.2-8.1-3-3.1z"/>
+  <path fill="#4d2a15" d="M292.8 264.4l-9.7-7.3L271 248l.3 4.3 13.9 12.8 4.6 2.2 2.3-.7 1.2-1.2-.5-1z"/>
+  <path fill="#803f1d" d="M271.1 254.1s4.9 5.5 8.6 8.3c3.7 2.8 7.2 5.8 8 5.4.7-.4.4-.9.4-.9l-17-13.9v1.1z"/>
+  <path fill="#4d2a15" d="M283 268.1l-1.6 1.3-2-.8L269 258l.5-2 1.5.3z"/>
+  <path fill="#202020" d="M292.8 264.4s-1.3 3-4 2.3c-2.7-.7-17.6-14.8-17.6-14.8v1.5s15 13.8 18 14.3c2.9.6 5.3-2 5-2.2a36 36 0 00-1.4-1z"/>
+  <path fill="#803f1d" d="M269.5 256.3s4.8 6.2 7.3 8.4c2.6 2.3 4.8 4.1 5.8 3.9 1-.2-.6-1.4-.6-1.4l-7.3-7.1-3.7-3.8s-1.5-.6-1.5 0z"/>
+  <path fill="#202020" d="M270.7 256.3s12.2 12.4 13.1 12.7c2 .6 5-1.5 5-1.5l-1-.6-.2.4s-.5 1.2-3.2.7a82 82 0 01-13.3-12.1l-.4.4z"/>
+  <path fill="#4d2a15" d="M275.3 268.2l-4.5-5.1-1-1.7-.2-2.2 8.8 9-1.2.8-1.1-.4z"/>
+  <path fill="#202020" d="M283.3 268.4s-1 1.6-2.5 1.3a4.3 4.3 0 01-2.3-1.4L270 260l-.2-1.3s9.3 9.9 11 10.3c1.2.3 2-1.2 2-1.2l.5.6z"/>
+  <path fill="#202020" d="M278.6 268.1s-.4 1.2-1.7 1c-1.2-.1-1.6-.6-1.6-.6l-5.2-6.2-.1-1.6s5.4 7.4 6.6 7.9c1.3.4 1.6-.9 1.6-.9l.4.4z"/>
+  <path fill="#b07229" d="M273 251.9s5 4.3 5.5 4.5c.4.2 2.2.3 2.3.6 0 .2-1.2 0-1.3.2 0 .3 2.6 2.4 3 2.5.4 0 2.5 0 2.5.3s-1.5 0-1.5.3 2.2 2.2 2.7 2.2c.4.1 3 .1 3 .4s-2.1 0-2 .4c0 .4 3.6 2.7 3.5 3-.2.3-4.4-2.8-4.5-2.7a4 4 0 01-.5 1.4c-.3.1 0-1.4-.2-2-.2-.6-2.7-2.5-3-2.3-.2.3 0 1.4-.2 1.4s0-1.4-.2-1.9c-.3-.5-2.6-2.4-2.9-2.4-.3 0-.1 1-.3 1.2-.2.2-.2-1.2-.5-1.6-.3-.4-5.6-5.2-5.4-5.5z"/>
+  <path fill="#4d2a15" d="M264.4 265.9s0 1.9-.8 2.2-2.5-3.5-2.5-3.5l-.4-3.6 2.5 2.4 1.2 2.5zm6.7-1v-1l-.2-1.2-.2-2-.4-1.2-.4-.9h-.6l-1.3 1-.4 1.3.7 2.4.6 2.1 1 .4 1.2-.9z"/>
+  <path fill="#4d2a15" d="M269.4 268.3c.3-.2-.3-2.8-.3-2.8l-1.5-3.8-.5-1.4-1.2-.5-.8 1 .1 1.5 1.9 3.5c.5.8 1.8 2.6 2.3 2.4z"/>
+  <path fill="#202020" d="M268 260c.5.4 1 1.4 1.1 2.1 0 0 1 2.9.9 3.1-.1.3-.8.3-.8.3s1.4 1.5 1.8 1.3c.5-.2.3-1.6.1-1.9-.1-.3-.5 0-.7-.4-.2-.3-.7-2.2-.7-3.3V259c.2-.3 1.2 2.3 1.2 3.7l.5.6-.5-2.6-.5-1.8.2-1.2v-.8l.7.4c.2 0 .5-.4.6-1.6s-.1-4.8-.1-4.8l-5.4 7.1 1.6 2z"/>
+  <path fill="#202020" d="M268 259.4s-.2 2 .5 4c.7 1.9.9 2 1 2.2.2.3.2 2.4 0 2.6 0 0-1.5-3.5-2-5.2-.4-1.8-.5-2.4-.8-2.6l-.6-.1 2-.9z"/>
+  <path fill="#4d2a15" d="M267.5 269.6c.1 0 0-.8 0-.8l-.2-1.8-1.9-4-2-1.8-1.1-1.7-.2 3.2s1.5 3.2 2.5 4.2c1 .9 2.6 2.8 2.9 2.7z"/>
+  <path fill="#202020" d="M259.7 260.9s.4.8.4 1.4v1l1.4 2.8c.7 1.3 1.4 2.5 2 2.3.5-.3.7-1.2.8-1.3 0-.1-.7 1-1 .8-.4-.1-2-5.2-1.9-5.3l-.8-.6-.9-1.1zm5.7 4.3l-1.4-2.5c-.4-.8-1-1.4-1.1-1.4-.2 0-.4-1.5-.4-1.5s.5 1 1.3 1.4c.7.3 1.1.6 1.5.5l.2 1.6-.1 2z"/>
+  <path fill="#5c3a1d" d="M262 262.6s.3 1.1 1 2.2l1.9 2.3s-1.3-1.2-2-2.2c-.7-1-1.1-2.3-1.1-2.3h.1z"/>
+  <path fill="#202020" d="M265.6 261.3s.4-1 .7-1l.9-.2s-.5-.1-1-.6c-.4-.6-.5-.5-1-1l.3 1.5.1 1.3zm-.3.3l2 4.4c.3 1.2.3 2.8.3 2.8l-.6-2.1c-.3-1-1.7-3.7-1.8-4-.2-.3 0-1 0-1z"/>
+  <path fill="#4d2a15" d="M267.4 259.5l.4-4.8-.4-1.8-2.2-4.8s-.1.7-.7.7a5 5 0 01-2.4-1.5 7.3 7.3 0 00-.2 3.9l4.3 7.9 1.2.4z"/>
+  <path fill="#8b441f" d="M259 262.7s.7.8 1 .7c.4-.1.3-1.6-.2-2.5-.5-.8-5.6-7.7-6.4-8.1-.7-.4 5.6 9.9 5.6 9.9z"/>
+  <path fill="#8b441f" stroke="#5c3a1d" stroke-width="0" d="M262.5 259.9c.1.3.5 2.5-.4 2.7-1.2.2-6.9-7.5-7.7-8.6 0 0-3.6-2.2-3.6-2.8 0-.5 3.8.8 3.8.8l7.5 7.2.4.7z"/>
+  <path fill="#202020" d="M259 262.7s-.6-1.1-.7-2c0-.7-.3-1.1-.3-1.4a91.2 91.2 0 00-4.6-6.6l-1.8-1.1a12.4 12.4 0 00.2 1.9s1.3 2.4 3.2 4.6l4 4.6z"/>
+  <path fill="#4d2a15" d="M265.3 261.6c.5-.3.3-2.2 0-2.8-.1-.6-3.5-7.6-3.5-7.6l-1 .4-1.9-1.5-1-1.1.3 2.5v1.3l2.6 4.6 4.5 4.2zm3.8-4.2l.8-1-.5-3.5-2.2-7.6s-.5.2-1-.2a6.3 6.3 0 01-1.2-1l.5 4.5 2.3 6.4.2 1.9 1 .5z"/>
+  <path fill="#202020" d="M262.1 259.2s-2.2-2.4-3-3.6l-1.3-2.4s-.6.3-1.4 0c-.7-.4-1.8-1.5-1.8-1.5s-.6 1.2 2.6 4.5c3.7 3.7 5 3 5 3z"/>
+  <path fill="#8b441f" d="M267.5 260c1-.4 1-4.3 0-7-.9-2.6-2.3-5-2.3-5s1.8 4.4 2.2 6c.4 1.8 0 3-.3 3-.3-.1-.3-1-1-2.7-.8-1.7-1.3-2.1-1.3-2.1s2.6 7 1.9 6.9c-.7-.2-4.3-8-4.5-8.2-.1-.2-.2.3-.2.3s3.2 9.8 5.5 8.8z"/>
+  <path fill="#4d2a15" d="M269.6 241l1.6 3.4.5 3.5.1 3s.1 6-.6 6c-.7.2-1.1-.5-1.1-.7l-1.4-6.6-1.4-6.8.5-.4.2-1 1-.1.6-.3z"/>
+  <path fill="#8b441f" d="M265.3 261.6c.6 0 0-1.6 0-1.6s-.5.7-1 .2c-.4-.5-1-2.5-1-2.5l-.4-1.2s-.5 1.3-1 1.3c-.7 0-3.7-5.1-3.7-5.1l-.4.5s4.3 8.9 7.5 8.4z"/>
+  <path fill="#202020" d="M263.3 257.7s.5-1.2.3-2.4a23 23 0 00-1.8-4l-1-.1-1.9-1a30 30 0 004.4 7.5zm2.5-1.8s-.4-2.7-1.7-5.2a13 13 0 00-2-3.4v2.8s1.2.5 2 2a27.8 27.8 0 011.7 3.8zm3.4-4.6s-.2-3-.7-4.7l-1-4 .3-.2h.5c.7.1 1 1.7 1 1.7l-.2-2.5a11.2 11.2 0 00-.2-.4h-1.1s.2.7-.1 1c-.3.3-.5-.1-.6-.2l-.1.3.2 1.6v1.4s.4 1.7 1 2.8l1 3.2zm2.6-.4s.5-4.2-.4-7a9 9 0 00-1.8-3.4l-.5.6s1.5 2.3 2 4.4c.4 2.3.7 5.4.7 5.4zm-4.3 2.2s-.4-3.4-1-5.5l-.8-3-.9-.7s.5 2.2.5 2.9l-.1 1s.4 1.2 1 2.2c.6 1 1.3 3 1.3 3z"/>
+  <path fill="#904720" d="M269.8 258.3c.8 0 0-4.8-.3-6l-2.3-7s2.4 8.2 2.2 8.6c-.3.6-1.2-2.5-1.4-2.4-.2 0 1.8 5.5 1 5.6-.6 0-1-1.2-1-1.2v1.2s.5 1.2 1.8 1.2z"/>
+  <path fill="#904720" d="M270.8 255.9c.6 0-.2-4.5-.6-6.6l-1.5-6s1.1 2.8 1.8 6c.6 3.2 1 7.3.5 7.4-.7 0-1-.6-1-.6v-.7s.2.5.8.5z"/>
+  <path fill="#312317" d="M263 261.2c0 .3 0 1.9-.8 1.8-.8-.1-2.3-1.5-2.6-2.5 0 0 1.8 2 2.4 2 .6 0 .6-2 .5-2.6 0-.5.5 1.3.5 1.3z"/>
+  <path fill="#d2a567" d="M267.3 239.6s1 .7 2 .2a3.1 3.1 0 001.3-2.4c0-.6 0-1.2-.5-1.9-.6-.7.8.6.8 1.9 0 1.2 0 3.4-2 3.9s-1.1-.1-1.1-.1l-.5-1.6z"/>
+  <path fill="#8f4620" d="M265.7 235.8s1.3 2 1.8 4c.5 1.8.4 2.5 0 2.6-.3 0-.4-.2-.4-.7l-1.4-6z"/>
+  <path fill="#1e2121" d="M243.3 238.3l8.4 12.3 10.7-12-6.7-6.8z"/>
+  <path fill="#4d2a15" d="M254 230.8l-.5 2 1 3.2 1.8 1.8 2 1.4.5-1.5.5-1.8.5-.2 1.3.5.9-1.3 1.4-2.4-.3-1-.4-.7-2.1-3.7-.7 1.4-.7.4-1.2-.7-1.5 2-1.9-.9z"/>
+  <path fill="#5c3818" d="M258.4 239.2s.3-.3.5-1.2c.1-1 .2-4-.1-5.2-.3-1.2-1-3.5-1.2-3.3-.2.1 1.2 2.5 1 5.5-.2 2.9 0 3.7-.7 4-.6.3.5.2.5.2z"/>
+  <path fill="#5c3818" d="M258.8 234.3s1.4 2 2.1 1.2c.7-.7.3-3.2 0-4.2l-1-2.5.4-.4.7 2.7c.3 1.1 1 4.2.1 4.8-.9.5-2.2-1.2-2.2-1.2v-.4z"/>
+  <path fill="#8f4620" d="M254.3 235.6s.5-.7 1.1-.7c.7 0 .8.2.8.2l.6 1.6.9 1.7.8.9-.4.5h-.7l-2-1-.6-.8-.5-2.4z"/>
+  <path fill="#d2a567" d="M257.6 253c-.6.4-2.1-.3-3-1.1l-5.4-5.4-.6-2.5 1.8.4 3-1.3.6-1 3.7-2 2-1 4.5-.2 1-2.1s1.6 2.6 1.8 3.6.2 4.3-.2 4.5c-.4.3-1.8-1-2-1-.3 0 1 4.6 0 4.8-1.1.1-3-1.8-3-1.8s.8 4.2 0 4.2c-1 0-3.2-1-4.1-2 0 0 1 3.4 0 4z"/>
+  <path fill="#8f4620" d="M256.8 247.7l.9 1.4c.2.3 0 2.3-.2 2.6-.3.8-1.3-.9-1.8-2.3l-1.8-3c0-.4 2.9 1.3 2.9 1.3zm8.7-10.3s1.5 6.5.8 6.7c-.8.2-3-2-3.2-2.4l-3.3-5.1-.6-.7.2-.3 1.3.5 4.8 1.3z"/>
+  <path fill="#8f4620" d="M254.3 249.8c-.3.3-1-.8-1.3-1l-2.4-2.7c-1-1-1.8-1.8-1.8-2 0-.3-.7-1-.7-1l.6-.6.7-.1s4.3 3.4 4.6 4c.3.5.5 3.3.3 3.5zm6.5.1c-.2.2-3-1.9-4.3-3.6-1.2-1.7-2.4-3.2-2.7-4a58.6 58.6 0 01-.5-1.5l.8.2s7 8.6 6.7 8.9zm1-3c-.2.2-1.4-.7-2.2-1.7-.7-1-.3-2.3-.3-2.3s2.6 3.8 2.5 4zm1.6-.4c-.4.2-2-1.8-3.4-4-1-1.6-1.3-1.9-1.5-2a3.7 3.7 0 00-1-.3l-.2-.2.7-.2.6-.7.8-1 3.4 6.8s.8 1.5.6 1.6z"/>
+  <path fill="#ab6d29" d="M254.6 251.9c0 .3 0 .5-1 .4-.8 0-5.7-2.7-7.8-6.2a1712 1712 0 01-2.5-4l1-1.1 7.6 8.7 2.7 2.2z"/>
+  <path fill="#8f4620" d="M254.6 251.9c.1.4-.4.5-.8.4-.6-.1-2.5-.8-5.5-4.2-3-3.4-4.3-5.9-4.3-6l-.1-1.4.9-.4 5.2 8 4.6 3.6z"/>
+  <path fill="#4d2a15" d="M259.7 248.5s-1.6-1.2-2.6-2.4-3-4-3-4.6c0-.5 1-.5 1-.5l-.1-1.5.2-.4 1.5.6 1.9 2.3.7 1s1.2 2.8 1 3c-.3.4-2-1.5-2.2-1.3-.2.2 2 3.5 1.6 3.8zm-3-.8s.6.8.3 1.3c-.2.6-.4.9-1.2-.3s-1.7-2.5-1.8-2.4c0 .1.1 1.8-.3 1.8s-1.6-1.4-2.4-2.6l-2-3s.2-.5.1-1.8l-.1-2s0 .4.2.7l.4.6 2.8 3.3.8-.5 1.7 3.3 1.6 1.6zm-10.8-5s2.2 4 4.3 6.1a14 14 0 004.4 3.1L248 244l-2-1.2zm17 2.4c-.1 0-1.5-1.4-2.4-2.7a8.8 8.8 0 01-1.4-4l.2-2.8s2.3 2.4 2.8 3.5c.4 1 1.3 2.6 1.1 2.8-.2.1-1.7-1-1.9-.8-.2.3 1.8 3.8 1.6 4zm2.6-2.5c-.3.1-1.5-1.2-1.8-2-.3-1-.4-2.6-.4-2.6l-1-2.4.1-2.6 1-.2 1.5 2.1s.6 1.3.6 3c0 1.9.3 4.5 0 4.7zm-18 6.5c-2-2.5-3.3-5-3.3-5l-.7-2.2.4.3s.6 2.6 3.7 5.7c3.2 3.1 3.9 3.4 3.9 3.4s.6 1.7.3 2.3c0 0-2.3-2-4.3-4.5z"/>
+  <path fill="#202020" d="M250.9 252.7s-2.7-2.4-4.9-5c-2.1-2.8-3.5-5.4-3.5-5.4l1-.9s1.8 4.2 3 5.9a609.9 609.9 0 004.4 5.4zm3.7-.8L250 247a17.5 17.5 0 01-2.5-3.5l1.3.5s.5 1.4 1.7 2.8l4.2 5.1zm-.6-5.6s-1.7-2-2.5-3.4l-1.7-3s2.3 2.7 3 2.8c.7.2.7 0 .7 0s-.3 1 0 1.8c.1.8.5 1.8.5 1.8zm.7-8.4s.3 1.4.1 2.3c-.2.9-.7.8-.7.8l1.5 1.8c.5.6 1.8 1.5 1.8 1.5l-1.5-2.2c-.4-.7-1-1.6-.7-2.3.2-.7 1.6.5 2 .8l2 2.3s-.5-2-1.4-2.7a43 43 0 00-3-2.3z"/>
+  <path fill="#202020" d="M261.6 242.3l-1.4-3.5-1.3-4v2.2c0 1-.4 2.4-.8 2.6-.4.2-.5.2-1.3 0-.7-.2.6.4.6.4s.8 0 1-.4c.4-.4.5-1.2.9-1.1.3.1.7 1.3 1 1.9l1.3 1.9z"/>
+  <path fill="#202020" d="M259 234.7s1.6 1.9 2.3 1c.7-.8.3-3.1.3-3.1s1 .3 1.3 0c.3-.2.2-1 .2-1s1.8 2.5 2.6 4.2c.9 1.6 1.3 4.6 1.3 4.6s-1.5-2.4-2.2-4.6c-.7-2.1-1.7-3-1.9-2.8-.1.2-.4 1.6-.2 2.4.2.7.8 1.7 1.2 2.7.5 1.1 1 2.8 1 2.8l-1.4-2c-.5-.7-1-1-1.4-1.3-.3-.3-.8-1-1.3-1.1-.5-.2-1.5-.7-1.5-.3l-.2-.8-.2-.7z"/>
+  <path fill="#171717" d="M253.4 242.6l1.6 2.8 1.8 2.3s-1.6-1.4-2.2-2.3c-.6-1-1.2-2.8-1.2-2.8z"/>
+  <path fill="#8f4620" d="M264.1 243c-.2.2-1-.1-1 .2-.1.3.4 1.3 1 1.9.5.6.7.6.9.5l-.2-1.1V243c-.1-.2-.7 0-.7 0z"/>
+  <path fill="#d2a567" d="M244.7 231.5l-1 .6-1 2.3.3 4.3 1.7 2.4c.6 1 2.8 3.4 3.3 3.2.6-.1 1.2-1.8 1.2-2.7l.2-2.6s.5 1 1.4 1.9c.9 1 1.7 1.9 2 1.8.5 0 1.7-2.5 1.8-2.9 0-.3-3.2-8-3.2-8l-1.4-.7-5.3.4z"/>
+  <path fill="#ab6d29" d="M251.8 238l.9 2.9c.3 1 0 1.8.2 1.8.1 0 1.8-2.2 1.8-3.2s0-2-.4-5c-.5-3.1.1-4 .1-4l-1-.8-1.5 3.3v5zm-5.5-1.8l.5 4c.2 1 .8 2.6 1.1 2.5.3 0 1.3-2.6 1.4-3.5 0 0-.7-1.3-.7-4.4 0-3.2-.3-3.5-.3-3.5l-2 4.9z"/>
+  <path fill="#45392d" d="M242 230s-2.5 3.6-2.4 5.6c0 2 .3 1.6 1 3.4.5 1.8.8 4.4.8 4.6 0 .3.4 0 .5-.3l.1-13.3z"/>
+  <path fill="#ab6d29" d="M242 230.5s-2.2 3.3-2 5.2c.1 1.9.4 1.8 1 3.5.7 1.6.7 4.4.7 4.4s.7-.2 1.5-.8a7 7 0 001.5-1.7l-.8-1.7-.6-1.5-.6-1 .2-3.1.6-2.4v-.8l-1.5-.1z"/>
+  <path fill="#dbad6c" d="M253.8 236.3l-1.6-.5c-.4-.3-.6-1-.6-1l.3-.6 1.9 2z"/>
+  <path fill="#d2a567" d="M242.4 230.8s-1.5 3.4-1.4 5.8a16.2 16.2 0 001.7 5.3v-7.7l.7-2.3v-1.2l-1 .1z"/>
+  <path fill="#8f4620" d="M246.3 231.6v1.4c-.1.5-1 1-1.3 1.6l-.8 2.3s.3-1 .9-1.5c.5-.5.7-1 .8-.6.1.3.3 1.6.2 1.9-.1.2-.6.6-.8 1.6a3.3 3.3 0 000 1.9l.4-1.8c.1-.5.5-.7.5-.7l1 1.8V238c.2-.7 1-1.6 1.1-1.6.3 0 .6-.2-.2-.6-.3-.2-.1-3.4 0-3.6.3-.1 1.5-.1 1.4-.6a8.7 8.7 0 00-1.3-1.7l-2 1.7z"/>
+  <path fill="#dbad6c" d="M253.6 238.5l-1.2-.2a.6.6 0 01-.4-.5v-.5l1 .5.6.7z"/>
+  <path fill="#8f4620" d="M243.6 238.9c0 .3-.3.7-.5 1.2l-.3 1.2-.3-2.6-.3-1.9-.5.5s0-1.2.2-1.8c.3-.6.4-1.4.2-1.6-.2 0-.6.3-.8.6l-.6 1 .5-1.5c.3-.4 1.4-1.7 1.7-2.3l.2-1 .8-.1s.9.7.9 1.3c0 .3-.9.6-.9.7 0 0-.7 0-.8 2.6-.2 2.7.5 2.5.5 3.7zm7.4-7s.2 1.5 0 2c-.1.4-.5.8-.8 1.3-.4.6-.3 2-.3 2l.4-1 .5-.9c.1 0 .5.5.7 1.3l.6 2s-.2-1 0-1 .4 0 .8.3l.7.6s0-.4-.5-1-.8-.4-1-1.1c-.1-.7-.2-1.5-.1-1.7 0-.3.4.1.7.5l1.2 1.1-.5-.8v-2.3c0-.8 0-1.6.2-1.8.3-.2.4-1.2.2-1.4 0-.2-2.8 2-2.8 2z"/>
+  <path fill="#1e2121" d="M259.7 228.9s0 1.6.3 2.6l.9 3s-.9-1.5-1.3-2.8c-.4-1.4-.7-2.8-1-3-.4 0-.8.7-.8 1.3a10 10 0 00.8 3.4c.5.7-.7-1-1-1.9l-.6-1.7s-.3.7-.2 1.6c.2.9.9 2.1.9 2.1l-.8-.8-.5-.5s0 1.2.3 1.7l1 1.3-1-.9a2 2 0 01-.4-.5s.1 1.7.5 2.6l1.2 2.3s-1-.7-1.6-2.2a21 21 0 01-.8-6.5l1-1.5c.4-.7 1-3.8 1-3.8s.6 2.9 1.1 3.5c.5.5 1 .7 1 .7zm-6.9-.9l.6 1.1.5.8s-.9 1-1.8 1.7c-1 .7-2.2 1.5-2.5 1.1-.3-.4-.3-.8-.3-.8s1-.6 1.9-1.5a5.3 5.3 0 001.3-1.7l.3-.7zm-8.7 2.9s.1 1.8.9 1.7c.8 0 3-2.3 3.1-2.4.2 0 .3-.6.3-.8v-.6s-2.5 2.4-3.3 2.5a1 1 0 01-1-.4zm0-2.4l-.2 1.6c0 .4.2.7.2.7s-1.7.6-2 0c-.3-.5-.1-1.2-.1-1.2l1.2-.1c.4-.1 1-1 1-1zm16.3-2.5s.7 1.8 1.2 2.6l1.1 2.2-1.5-1.6a120.9 120.9 0 01-1-.8l.2-.9V226z"/>
+  <path fill="#dbad6c" d="M241.7 229.6h1l.7-.1.6-1s-.3 1.1 0 2c.2.8.6.9.8.9a3 3 0 001.8-1l1.7-1.4s-.2 1 .2 2c.3 1.1 1 1.1 1.8.5.8-.7 1.6-1.8 2-2.3l.6-.8.9-.7.8-4.4-.5-.6-1 .6-1.4-.6-.4-.5-.8 1.3-.8.5h-.4l-1 .3-.4-.9-.2-.6-.5-.2-2 2-1-.1-1.1 1.7-.8 1-.8 2 .2.4z"/>
+  <path fill="#8f4620" d="M251.1 225.2s.2 1-.4 2.9-1.3 3-1.3 3 2-1.1 2.9-3.2c1-2.2.7-4.6.7-4.6l-1.9 1.9zm2.4-2s.2.3 0 2l-.6 3.2.5.9c.2.5.9 1.4 1.4 1.3.4-.2 1.2-.7 1.7-1.8l1-2.3c.3-.2.3 0 .4.2 0 0 .2 1 .7 1.4.5.4 1 1 1.4.8.3-.2.5-.7.5-1l-1-3.2-1.3-3.2-.8-1.2-2.3.2-1.6 2.7z"/>
+  <path fill="#ab6d29" d="M257.4 220.3s.6 1.3.7 2.8c0 1.5-.3 3-.3 3v-3c-.1-1.2-.6-1.7-.6-2l.2-.8z"/>
+  <path fill="#4d2a15" d="M260.5 226v2c-.2.5-1-.5-1.6-2.5-.5-2-.4-2.4-.8-3.4-.5-1-.7-1.8-.7-1.8l1.1-.2 2 6zm-5.6 3.8s2.2-1.3 2.5-5c0-1.7-1-4.5-1-4.5s0 3-.8 5l-1.5 3.1.8-.5.6-.9v1.3l-.6 1.5zm-1.9-6.5s0 .8-1 1.5c-.9.8-2.5 1.6-2.5 1.6s1.2-1.1 1.6-2.1c.5-1 .1-1.6.1-1.6s-.1.5-.6 1-1.3.4-1.3.4 0-.5.5-1c.1-.1 0-.4.2-.6.2-.8.9-1.9.9-1.9s.5 1.2 1 1.7l1.1 1z"/>
+  <path fill="#1e2121" d="M259.8 218.9s.5 1.3.7 3.2c.2 1.8 0 4 0 4l-1.4-2.5c-.3-.7-.3-1.7-.5-2.3a2.6 2.6 0 00-.9-.8l-.8-.1s.7-.3.7-.9v-.8a3.5 3.5 0 002.2.2zm-4.9 7.8s1.2-1.6 1.5-3.7c.3-2 0-2.7 0-2.7s-.5-.1-1-.5-1-1.4-1-1.4.2 1 0 2.4c-.2 1.3-1.4 2.5-1.4 2.5s.6.2 1.2-.1c1.2-.7 1-2 1-2s.3.2.3 1.8-.6 3.7-.6 3.7z"/>
+  <path fill="#8f4620" d="M241 229.5c-.3 0 .7-1.6 1.4-2.7l1.7-2.7s.2.2.6.2a2.9 2.9 0 002-1.3 8.2 8.2 0 00.7-2c0-.3 0 1.4.8 2.3.8 1 .7.9 1 .8 0 0 0 1.2-.3 2.2l-.6 2.7s.1-2-.2-2.6c-.3-.6-.5 0-.8.8-.3.7-.9 1.2-.9 1.2l.8-1.8c.3-1 .1-1 0-1 0 0-.2 0-.5.3-.3.4-.7.5-.7.5s.4-.3.6-.8c0-.5.5-1.2.7-1.4l.4-.8c0-.2 0-.6-.2-.6s-.4.3-1.1 1c-.8.7-1 .7-1 1l-.7 2a12.8 12.8 0 01-.9 2.3l-.4.4.6-2c.4-1 1-2.5.8-2.7-.1-.2-.4-.2-.5 0-.1.2-1 1.1-1.7 2.2s-.7 2.5-.9 2.6h-.7z"/>
+  <path fill="#874f20" d="M260.5 217.7c0 .1.1 1-.7 1.2a3 3 0 01-2-.1v-1.2l2.7.1z"/>
+  <path fill="#b27129" d="M244.8 220.3l-.6 1.7c-.5 1-1.2 1.7-1.1 1.8 0 .1.5.6 1.2.5.6 0 .8-3.8.8-3.8v-.2h-.3z"/>
+  <path fill="#dbad6c" d="M254.8 218.2s-.4 5-1.8 5-2-2.5-2-2.5-.2 3.5-2 3.5c-.9 0-1.7-2.7-1.6-3.2 0 0-.3 1.8-1.2 2.5-1.7 1.4-2.8.7-2.8.5-.1-.2 1.4-1.7 1.6-3.7 0 0 .3.1.7-.5.4-.6.7-1.2 1-1.1.5 0 2.6-.9 2.6-.9l1-1.3s.2.4 1-.1a3 3 0 001-1.4l2.2 1.8.2 1.4z"/>
+  <path fill="#b27129" d="M249.1 213.3l2.2 3 .5-.4c.2.4.4.7.3 1-.3.7-1 1.8-.5 3 0 0-.1-.7.2-1.5.3-.8.5-1.1.7-1 .2 0 .5 4.6.8 4.6.3 0 .7-2.1.7-3.6s.3-.3.5 0c.1.3 1.4 2.4 2.5 2 1-.2 1-2.2.9-2.6 0-.4-.8-3-.8-3l-4.9-3-.4 1.2c-.3.8-2.7.3-2.7.3z"/>
+  <path fill="#8f4620" d="M256 212.8s.3.3.8 1.5.5 5.1 0 5.1c-.7 0-2-.7-2.2-1.3-.2-.5.1-2.4-.3-3a6.5 6.5 0 01-1-2.2l.1-1.5 1.1-.4 1.6 1.8z"/>
+  <path fill="#4d2a15" d="M255.7 211.6l2 3.1 2 2.6.8.4a2 2 0 01-2.5.4c-.7-.4-.3-1.6-1.2-3.6a8 8 0 00-2.6-3l.6-.5 1 .6z"/>
+  <path fill="#1e2121" d="M254.6 210s1.8 1.1 2.5 2.5l1.8 3.4c.8 1.3 1.7 1.7 1.6 1.8 0 .1-.5.2-1 0a3.8 3.8 0 01-1-1.3l-2-3.4a6.7 6.7 0 00-1.9-1.5c0 .1.5.4 1.3 1.7a5.6 5.6 0 01.9 2.5l-1-1.6c-.6-1.2-2.1-2.7-2.2-2.5l1.2 2.4 1 2.6-1.4-2.3c-.8-1.3-1-1.1-1.3-1.5l-1.1-1.4s.7.2 1.5-.3c.7-.5 1-1.2 1-1.2z"/>
+  <path fill="#8f4620" d="M249.8 213.3s1.2.3 1.9.2h.9s.4.5.4 1.1c0 .6-.5 1.7-.6 1.8-.2 0-.2-1-.5-1.4a20.7 20.7 0 00-2-1.7z"/>
+  <path fill="#b27129" d="M250.5 216.5s.4 1.3 0 3c-.2 1.9-1.3 3.7-1.5 3.7-.3 0-.2-2-.3-3a31 31 0 000-.4l-.5 1.2c0-.1.4-1.9.3-2v-.7l1.3-1.6.7-.2z"/>
+  <path fill="#8f4620" d="M248.2 217.8c-.4.5-1 .3-1.4.5-.5.1-.7.9-.7.9s.4-.3.6-.2c.2 0 .4 0 0 1-.4.8-1.8 2.3-1.7 2.4 0 0 1.6-1.3 2-2 .6-.8.5-1.2.6-1.5.1-.3.7-.6.9-.6 0 0 .4 0 .5.6l.4 2a9 9 0 00.7-2l.1-2.3-.5-.1-1.2-.7s.2 1.4-.3 2z"/>
+  <path fill="#dbad6c" d="M254.6 208.6s.5 1.3-.5 2.1c-.3.3-.6.4-1.1.5-.6 0-1.4-.5-1.4-.5l-3.1-1.3-1.7-.5-.8-.2.1-.9 2.5.1 2.4 1 1 .3 1 .1h.6l.6-.1.3-.3.1-.3z"/>
+  <path fill="#ab6d29" d="M254.6 208.6c.1.2-.2 1-.4 1-.2.1-.7.3-1.6.1-1-.2-1.9-.8-3-1-1-.4-1.7-.6-2.5-.6s-.5-.4-.5-.4 1.9-.2 3.5.4c1.6.6 2.3 1 3.1 1 1.2 0 1.4-.5 1.4-.5z"/>
+  <path fill="#4d2a15" d="M246.1 207.7h.7c.3 0 .5-.2.5-.2l-.1.5h-1v-.3z"/>
+  <path fill="#dbad6c" d="M252.2 211.5s1.1 1 .8 2l-2-1-3.5-1.4-1.8-.6-.3-.3.6-.6v-.6l2.3.3 2.4.7 1.5 1.5z"/>
+  <path fill="#dbad6c" d="M249.9 213s2 2.5 1.5 3.4l-4.5-3-1.7 2.7-3.7-1.8s3-2.3 3.4-2.8l.3-.6 1.7.4 2.7.8.3 1z"/>
+  <path fill="#ab6d29" d="M248.8 209.3s1.6.4 2.7 1c1 .4 2.4.6 2.4.6s-.6.6-1.7.6c-.3 0-1.1-.6-1.6-1s-2-.8-2-.8l.2-.4z"/>
+  <path fill="#4d2a15" d="M246 208.4l1.9.6c.7.3.7.2 1 .2l.1-.2s.2.7-.4.7-.7-.2-1.4-.5-1.2 0-1.2 0v-.7z"/>
+  <path fill="#ab6d29" d="M252.3 212.9s.9.5.7.6c-.1 0-.6.3-1.3.3-.7 0-1 0-1.5-.2s-.8-1.1-2-1.6a14.5 14.5 0 00-2.3-.8l-1-.2.8-.3 2.6.5 2.2.7 1.3.6.5.4zm-4.3 1.5l.5 2-.3 1.3-.7.4-.6-.2-.2-.4s.3-.5 0-.9-1.6-1-1.6-1 .5-1 1-1.2c.7-.2.4-1 .4-1l1.5 1z"/>
+  <path fill="#4d2a15" d="M245.4 210.2s.4.4 1.3.5l1.7.3c.2.1.8-.2.9-.2l-.5.3 2 .7c.9.4 1.6 1 1.6 1l-1.6-.7a14 14 0 00-2.4-.7c-1.6-.3-3.1-.2-3.5-.3-.3-.1.2-.1.3-.3.2-.2.2-.6.2-.6z"/>
+  <path fill="#ab6d29" d="M251.2 215.8s.5.6 0 .8c-.5.2-2 .1-2.6-.6l-.4-1c-.3-.3-1.3-1-2-1.3-.5-.4.3-.5.3-.5l2.9 1.3c.8.4 1.8 1.3 1.8 1.3z"/>
+  <path fill="#4d2a15" d="M251.3 215.9s-1-1.4-4-2.6l.9-.2h-1.5a22.2 22.2 0 00-.7-.3c-1.6-.4-1.7-.4-1.8-.6 0-.2-.3 0-.4.3a10.5 10.5 0 01-.6.8 4 4 0 012-.1c.9.2.9.5.8.9 0 .3-1.1 1.6-1 1.6.1 0 .7-1.2 1.5-1 .8.2 1 .6 1 .6l-.1-.7c-.2-.2-1-1-.8-1s1.2.3 2.6 1c1.4.7 1.6.9 2 1.3z"/>
+  <path fill="#dbad6c" d="M246.5 213.6s2.2.7 2.1 3c0 2.4-1.8 2-2 1.1-.1-.9.3.4.9.3.7-.1.8-.8.8-1.7 0-.9-.3-1.3-.8-1.8a9.6 9.6 0 00-1-.9z"/>
+  <path fill="#6c3f18" d="M236.8 208s.3 0-.4 1.8a8.5 8.5 0 01-1.9 3.3c-1.8 2-2.6 2-2.4 2.8.2.9.9.7 1 .7.2 0 3.5-4.8 3.5-4.8l.7-2.8-.2-.8-.2-.3z"/>
+  <path fill="#dbad6c" d="M244.9 204.5s1 1.4.6 4c-.3 2.7-3.8 5-3.8 5l-5 3.6-2.2-.2h-.6c-.4-.1-.7-.4-.7-.4-.2 0-.4-1-.4-1l.6-.8 1.9-1.8 1.1-1.7s.6-1 .6-1.9c.1-1-.1-1.4-.1-1.4l.4.7.2 1.4-.2 1.6 1.4-1 1.7-.7s.5-.1.9-1c.3-1 .6-2.5.6-3.2v-1.4h.2c0 .1.5 1 .5 1.4l.3 2.2.9-.8.7-1.2c.2-.4.4-1 .4-1.4z"/>
+  <path fill="#904720" d="M245.5 217.8s.3.2.2 1.2c-.1 1-1 1.5-1.3 1.5v-1.3l-1.1-1-1.2-.3.2-.2c.1-.2 1.4-.7 1.4-.7l1.8.8z"/>
+  <path fill="#ab6d29" d="M244.6 217.8s.3.3.9.2.8-1 .5-1.4c-.3-.4-.2.8-.5 1-.4 0-.8-1-1.3-1-.5-.2-1.3.2-1.5.5-.2.3.8 0 .8 0l.6.2.4.1v.4z"/>
+  <path fill="#904720" d="M237.2 214.1s.7.2 1.4.1 2.5-.8 2.5-.8l1.4-1c.6-.7 2.5-1.8 2.7-4.2.2-2.3-.3-3.7-.3-3.7s2.8 3 .3 6.5c-1.6 2.3-3 3-3 3s2.8-.8 3-.1c.2.6-.1 1.6-.2 1.8 0 0 1.5.3 1.8 1.1.1.5-1.8-.5-3.2-.2a3.7 3.7 0 00-2 1.2s-.3-.4-1.5-.4c-1.3 0-1.9.6-2.6.5-.7 0-3-.5-3.4-1.1l1.5-1.7c.7-1.3 1.6-1 1.6-1z"/>
+  <path fill="#ab6d29" d="M243 207.8s1.1-1 1.5-1.9l.4-1.4s.1.8-.5 1.8a10.3 10.3 0 01-1.4 1.6v-.1z"/>
+  <path fill="#904720" d="M242.7 205.4s1 3.4 0 4.9c-1 1.4-5.1 3.2-5.1 3.2s3.1-1.7 4-3.6c1-2 1-3.6 1-3.6l.1-1z"/>
+  <path fill="#1e2121" d="M238.6 214.2s1.3 0 2-.5c.8-.4 1.9-1.4 1.9-1.4s-1 .9-1.3.9c-.3 0-.5-.5-.4-.8 0 0-.2.7-.8 1.1a4 4 0 01-1.4.7zm3-4.3s1.2-1.2 1.2-3.6c0-2.4-1-2-1-2s.8.6.6 2.4c-.1 1.9-.7 3.2-.7 3.2zm1.4.2s1.3-.3 1.7-1c.5-.8.5-2.2.5-2.2s-.2 1.3-.5 1.8c-.4.5-1.7 1.4-1.7 1.4zm-.7 7.6s.6-1.2 1.4-1c.9.4.9 1 .9 1s-.3-.4-1-.5a2.6 2.6 0 00-1.3.5zm-2.4-2.2l3-.8 2.3-.8s-.9 1-2.2 1.9c-1.4.7-2.5.8-2.5.8s2.5-1.1 2.7-1.6c0 0-2.4.7-3.3.5z"/>
+  <path fill="#fff" d="M237 212.7a2.1 2.1 67.8 01-2.4 3.5"/>
+  <path fill="#f16e16" d="M236.9 212.9a1.9 1.9 67.8 01-2.2 3"/>
+  <path d="M236 214a.8.8 0 11-.7 1"/>
+  <path fill="#d5d3ca" d="M236.2 214.9a.2.2 0 11-.5-.1.2.2 0 01.3-.2s.2.1.2.3z"/>
+  <path fill="#ab6d29" d="M237.5 211.3s1.2-1.2 1.5-2.8c.2-1.6 0-2.5 0-2.5l.7.7.3 1.2-.4 2 1.3-.6a10 10 0 001-5s.3.7-.2 3-.9 2.6-2.6 3.6a7.6 7.6 0 00-3 3.3 13 13 0 01-1.9 2.5s.9-1.2 1.3-2.2c.7-1.4 1.4-2.2 1.4-2.2l.6-1z"/>
+  <path fill="#904720" d="M236.9 212.3s.5-1.6.5-2.5c0-.9-.6-1.9-.6-1.9s.8 0 .9 1.8c0 2-.3 2-.8 2.6z"/>
+  <path fill="#4d2a15" d="M239.3 210.3s.6-1.5.6-2.4c0-1-.8-1.9-.8-1.9s1 .2 1 2c0 1.7-.2 1.7-.8 2.3z"/>
+  <path fill="#ab6d29" d="M233.7 216.8s-.5-.6-.4-1c0-.5 0-.6 1.1-1.8a8.9 8.9 0 002-2.5c.3-.6 1.2-2.3.5-3.6 0 0 .5 2-.6 3.4a12.7 12.7 0 01-2.7 3c-1 .7-1 1-1 1.4 0 .4.1.7.3.8.3.2.8.2.8.2z"/>
+  <path fill="#6c4119" d="M244.4 220.5s.2 0 .4-.3c.1-.2.1-.7-.3-1.2a2.6 2.6 0 00-1.3-1l-1.6-.2s.3.6 1 1c.4.2 1 0 1.4.3.3.4.4 1.4.4 1.4z"/>
+  <path fill="#6c4119" d="M244.4 220.5s1.2-.4 1.3-1.6l-.1-1s.2.4.7.6l.4-.2s-.7 2.3-2.3 2.2z"/>
+  <path fill="#bf802d" d="M235.8 220.3l.7.6.7.7 3-.8 1-.9-.9-1.3h-2.1l-2.4 1.7z"/>
+  <path fill="#f9c83a" stroke="#8f4620" stroke-width=".3" d="M243 219.3l-.5-.8s-.2-.3-.6-.5c-.4-.3-2.2-.2-2.2-.2l-1.3.2s-.4.4-1 .2l-2.2-.7-1.4-.7s-1.1-.4-1.4-.3c-.2 0-1 1-1 1s-.3.6.1.6c.3 0-.5.2-.5.2s-2.3 1.2-2.6 3.4c-.4 2.2 3.7 5.5 5.2 3.8 0 0-2.2-1.6-1.8-3 .4-1.3 1.5-2.2 3.2-2.3 1.7 0 1.8-.3 2.6-.8.7-.6 2.1-.9 3.2.2 1 1.1-4 2.1-4 2.1l.6.8s6.1-2.1 5.6-3.2z"/>
+  <path fill="#fcf3d8" d="M231.5 224.5s-2.5-.6-2.3-2.9a4 4 0 012.7-3.2c.4-.1.3-1.3.7-1.4.4-.1 1.2 0 1.6.3.3.4 1.1.7 1.1.7s-4.4 2-4.5 4.5c0 1.7.7 2 .7 2z"/>
+  <path fill="#fdeaaf" d="M243 219s-.3.2-.4 0c-.4-.8-1.5-1-2.4-1-1.1 0-1.9.4-2.7.4l-1.4-.2c-1 0-2.8-1.4-3.3-1.3-.4.2-.6.7-.5 1 0 .2-.8.3-1 0s.7-1.4 1.5-1.4c2.1 0 3.7 1.4 4.7 1.4s1.3-.5 2.7-.5 2.8.6 2.8 1.6z"/>
+  <path fill="#513625" d="M236.2 220.7l1.7-.6 1.8-.6-1.6 1-1.7.4-.3-.2z"/>
+  <path fill="#f9c83a" d="M232.6 225.8c-.1.1-1 0-2.4-.9s-1.8-2.5-1.8-2.5-.3-1.5 1.2-3c1.4-1.6 1.6-1.1 1.7-1v.1l-1.3 1-.7 1.1-.5 1v1l.7 1.2 2 1.3 1.1.7z"/>
+  <path fill="#8b5122" d="M231.9 217.2l-.1-.2v.2-.2.2-.2l-.2.1h.2v-.1l-.2.1.2-.1h-.2v.1l.2-.1h-.2.2l-.2-.1h.2-.2.2-.2.2-.2a3.6 3.6 0 00-.4.5 1 1 0 00-.2.5c0 .2.2.4.3.5h1.2a.2.2 0 000-.3.2.2 0 00-.2-.1h-.5a.6.6 0 01-.3 0v-.1a.4.4 0 010-.2 2.4 2.4 0 01.3-.4v-.1h.1v-.2a.2.2 0 00-.1-.2.2.2 0 00-.2.3.2.2 0 00.3 0z"/>
+  <path fill="#f9c83a" d="M236.1 219.3l-3 .9c-.3.2.9 0 1.8 0a3.5 3.5 0 011.1 0h.7c1.2-.5 3.6-1.4 3.8-.4.2 1-3.3 1.7-3.3 1.7v.3l2.8-.7 1.4-.7.5-.8-1.4-1h-2l-1 .3-1.4.4z"/>
+  <path fill="#8f4620" d="M231.8 223.6c.2.6.7 1.5 1.2 1.8 0 0 .1 0 0 0 0 .2-.4.4-1.3.2-1-.3-2.4-.7-3.3-3.3v.5l.5 1 1 1 1.4 1 1 .2.9-.2.4-.3-.9-.8-1-1.8v.7z"/>
+  <path fill="#fcca3d" d="M241.7 250.1v1h-.6l.1-1.3zm-3.8-27.5l-1-1.1h-.6l1 1.4z"/>
+  <path fill="#816c2a" d="M241.6 252.4l-1.3-.8-2-.5v.3h.2a5 5 0 011.7.5 11.4 11.4 0 011.3.7l.1-.2zm0-2.5h-2.2c-.8.2-1.2.6-1.2.6l.1.2a3 3 0 012.1-.6 17.7 17.7 0 011.1 0v-.2zm-.3-2.1l-2 1-1.4 1 .2.2.4-.3.9-.6a14.7 14.7 0 012-1l-.1-.3zm-1.4-2.2a2 2 0 01-.2 1 6.9 6.9 0 01-.5.6l-1.3 1.4-.7.7.1.2a165 165 0 001.2-1.2l.9-1 .5-.6c.3-.5.3-1 .3-1h-.3zm-1.7-1a3.4 3.4 0 01-.1 1.8l-.8 1.7-.4.8-.1.3h.2s1-1.7 1.3-2.7a3.6 3.6 0 00.2-1.2v-.7h-.3zm-1.7-.2a7.4 7.4 0 000 1 4.5 4.5 0 01-.1 1.3 97 97 0 01-.5 1.5l-.3.8h.2l.8-2.2c.2-.4.2-1 .2-1.5v-.9h-.3zm-1.3 0v1l-.1 1.5a41.4 41.4 0 00-.4 2h.2l.1-.6.3-1.3c.2-.9.2-2.6.2-2.6h-.3zm-1.3.3a9.8 9.8 0 000 2.2c-.3.8-.4 2-.4 2h.3a16.9 16.9 0 01.3-1.9v-2.4h-.2zm-1.1 0v.2c0 .3 0 1-.3 1.8l-.4 1.5-.2.8.2.1.7-2.3a7 7 0 00.2-1.9v-.1h-.2zm-1.3.1v.5c0 .5 0 1.2-.3 1.7-.2.5-.7.9-1 1.2a7.6 7.6 0 01-.7.5h-.1l.1.2s1.4-.8 2-1.8a4.6 4.6 0 00.3-2.3h-.3zm-.7-.2v.1a5.3 5.3 0 01-.8 1.5l-1 1-.5.2-.2.1.1.3s1.2-.7 1.8-1.4c.5-.7.8-1.8.8-1.8h-.2zm-1.2-.6v.1a7.3 7.3 0 01-.4.5c0 .2-.2.4-.3.5l-.8.5a16.2 16.2 0 01-.5.3l.1.2.5-.3.8-.5.6-.7.2-.5-.2-.1zm-.6-.8l-.2.3a13.8 13.8 0 01-.7.7 5.2 5.2 0 01-.4.4l-.3.2v.2l.6-.3 1.2-1.3-.2-.2zm-.2-.5l-.2.2-.7.4-.7.3v.3c.2 0 .3 0 .5-.2l1.2-.8-.1-.2zm-.3-.5l-.6.3a9.3 9.3 0 01-.4.2 1.5 1.5 0 01-.4.2v.2l.5-.1 1-.6v-.2zm-.2-1.1a2.7 2.7 0 01-.5.4l-.7.3v.2c.4 0 .7-.2 1-.4a2.9 2.9 0 00.4-.3l-.2-.2zm0-1.8l-.4.4-.6.8a.4.4 0 01-.1.1v.3l.2-.1a.6.6 0 00.1-.2c0-.2.3-.4.6-.7l.3-.2.1-.2-.1-.2zm8.6-10.2h1.3v-.2.2-.1.1-.1.1-.1l-.1.1v-.1.1-.1h-.1.1-.1v-.1h.1-1.2v.2zm0-.8h.1l.6-.1.8-.5.3-.3a.6.6 0 01.3 0v-.3l-.5.2-.8.5-.7.3v.2zm0-1.2c.1 0 .3 0 .5-.2l1-.6.7-.3v-.3l-.5.2-1 .6-.8.4v.2zm-.5-1l1.2-1 1.3-.9-.1-.2-1.3 1-1.2.8.1.2zm-.8-1.3l2.6-1.9-.2-.2-2.6 1.9.2.2zm-1.2-1.3l1.5-1 1.2-.8-.1-.2-1.2.8-1.5 1 .1.2zm-.8-.7a93.2 93.2 0 012.1-1.5l.6-.4v-.2a6.2 6.2 0 00-.7.3 90.4 90.4 0 00-2.2 1.6l.2.2z"/>
+  <path fill="#78732e" d="M235.6 220.3l.1.1a13.8 13.8 0 012 2c.8 1 1.4 2.2 1.4 3.3v.4a7.7 7.7 0 01-2 4c-1.5 1.9-3.8 3.5-5.6 5.1a14.4 14.4 0 00-2.4 2.5 5 5 0 00-1 2.8v.1c0 1 .4 2 1 2.7a3.5 3.5 0 002.5 1.6 5.5 5.5 0 00.6 0c1.4 0 3-.5 4.5-.5 1.2 0 2.4.3 3.5 1.5 1 1.1 1.3 2.9 1.3 4.6a19 19 0 01-.3 3.3 20.5 20.5 0 01-.3 1.5h.2s.7-2.3.7-4.8c0-1.7-.4-3.6-1.4-4.8a4.7 4.7 0 00-3.7-1.5c-1.6 0-3.1.4-4.5.4h-.6a3.3 3.3 0 01-2.3-1.4 4.9 4.9 0 01-.9-2.6v-.1c0-1.3.6-2.4 1.6-3.5 1.4-1.6 3.6-3.2 5.5-5 2-1.6 3.6-3.5 3.9-6v-.3c0-1.4-1-2.8-1.9-3.9a13.8 13.8 0 00-1.8-1.7l-.1.2z"/>
+  <path fill="#a8ac71" d="M233.7 222.8l-.3-.3-.3.1.5.4zm.8.7l-.2-.2h-.2l.2.3z"/>
+  <path fill="#78732e" d="M235.6 224.8l-.2-.3-.1.2.2.2zm.8 1.2v-.2h-.3l.3.3zm.5 1.2v-.3h-.1v.3zm0 1.2v-.4.4zm0 .7v-.3.4zm-9.7 11.9l.1-.6c.1-.3-.2.1-.2.1v.4h.1z"/>
+  <path fill="#fff" d="M227.1 241.7h-.1v.4h.1v-.4z"/>
+  <path fill="#78732e" d="M227.2 243.1v-.3h-.2v.5z"/>
+  <path fill="#fff" d="M227.3 243.9v-.3h-.2v.3zm.2 1.1l-.1-.3v.4zm.3 1.2l-.2-.4v.4z"/>
+  <path fill="#a8ac71" d="M228.5 247.8l-.1-.3h-.2l.2.3zm1.2 1.1l-.4-.3c-.2-.2-.1.2-.1.2l.3.2.2-.1zm7.8.6l-.3-.2.2.3v-.1z"/>
+  <path fill="#fff" d="M238.2 250l-.3-.2v.2h.2z"/>
+  <path fill="#a8ac71" d="M238.3 250.3l-.2.2.3.2-.1-.4zm0 1.1v-.4c0-.1 0 0 0 0v.4z"/>
+  <path fill="#fff" d="M238 252.6v-.3l-.2.3zm-12-41.7s.5-.1.1.4l.3-.4-.2-.1-.2.1z"/>
+  <path fill="#f9c83a" d="M235.7 220l.3.3-.4-.1.1-.2z"/>
+  <path fill="#8f4620" d="M236 220.3h-.6l.2-.1h.4z"/>
+  <path fill="#977c2e" d="M240.7 255.3s.4 0 .5-.3c.2-.2 0 .3 0 .3l-.3.1-.2-.1z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/my.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/my.svg
new file mode 100644
index 0000000..7ebe064
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/my.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-my" viewBox="0 0 512 512">
+  <path fill="#cc0001" d="M0 0h512v512H0z"/>
+  <path id="a" fill="#fff" d="M0 475.5h512V512H0z"/>
+  <use width="100%" height="100%" transform="translate(0 -73.1)" xlink:href="#a"/>
+  <use width="100%" height="100%" transform="translate(0 -146.3)" xlink:href="#a"/>
+  <use width="100%" height="100%" transform="translate(0 -219.4)" xlink:href="#a"/>
+  <use width="100%" height="100%" transform="translate(0 -292.6)" xlink:href="#a"/>
+  <use width="100%" height="100%" transform="translate(0 -365.7)" xlink:href="#a"/>
+  <use width="100%" height="100%" transform="translate(0 -438.9)" xlink:href="#a"/>
+  <path fill="#010066" d="M0 0h320v292.6H0z"/>
+  <g fill="#fc0">
+    <path d="M123.8 51.9a93 93 0 00-93.2 92.9 93 93 0 00143.7 78.1 82.7 82.7 0 01-27 4.5 82.5 82.5 0 01-82.7-82.3c0-45.5 37-82.4 82.6-82.4a82.6 82.6 0 0128.7 5A93 93 0 00124 52z"/>
+    <path d="M278.4 193.2L239 172.7l11.6 41.9-26.2-35-8.2 42.6-8-42.7-26.5 35 11.8-41.9-39.3 20.4 29.2-32.8-44.5 1.7 40.9-17.1-40.9-17.3 44.5 1.8-29-32.9 39.2 20.5L182 75l26.2 35 8.2-42.6 8 42.7L251 75l-11.8 42 39.3-20.4-29.2 32.8 44.5-1.7-40.9 17.2 40.9 17.2-44.5-1.8z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mz.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mz.svg
new file mode 100644
index 0000000..113a205
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/mz.svg
@@ -0,0 +1,21 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mz" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h496v496H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="scale(1.0321)">
+    <path fill="#009a00" fill-rule="evenodd" d="M0 0h744v155H0z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M0 155h744v15.5H0z"/>
+    <path fill-rule="evenodd" d="M0 170.5h744v155H0z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M0 325.5h744V341H0z"/>
+    <path fill="#ffca00" fill-rule="evenodd" d="M0 341h744v155H0z"/>
+    <path fill="red" fill-rule="evenodd" d="M0 0v496l325.6-248L0 0z"/>
+    <path fill="#ffca00" fill-rule="evenodd" d="M192.3 322.6l-49.6-36.3-49.5 36.3 19.2-58.4-50-36 61.6.3 18.7-58.5 18.8 58.5 61.5-.3-50 36z"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.1" d="M99.6 281.9h35.8c2.9 3.2 9.3 4.5 15.4 0 11.2-6.2 32.9 0 32.9 0l4.3-4.6-10.4-34.1-3.8-4s-8-4.8-23.2-3.2c-15.2 1.6-20.5-.6-20.5-.6S116.7 237 113 239l-4.3 4.3-9 38.7z"/>
+    <path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.1" d="M106.8 273s34.2-4.2 44 8.9c-5.5 3.8-10.4 4-15.7.2.9-1.4 12.3-13.3 41.4-9.3"/>
+    <path fill="none" stroke="#000" stroke-width="1.1" d="M143.4 238.9l-.3 37.6m30.7-37l6.4 29.8"/>
+    <path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.1" d="M113.3 239l-3.5 15.4"/>
+    <path fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.1" d="M76.4 286l8.4 9.8c1 .6 1.9.6 2.8 0l12.4-15 5.3-6.4a4.1 4.1 0 001-3l10-9c.8.2 1.3.3 2 .3-.9-.3-1.6-.7-.8-1.8l2.2-1.7 1.8 2.2s-2.5 3.3-2.8 3.3H116l-5.3 4.7 2.3 2 3.5 9.5 4.2-3-2.7-9.7 6-6.5-2.3-3.5 1.5-2s20.7 13 28.7 9.5c.2.1.5-9.3.5-9.3s-21.5-2.2-22-6.4c-.5-4.3 4.8-4.8 4.8-4.8l-2.3-3.2.5-1.8 3.8 4.8 8.4-7.3 49.9 56.9c2.7-1.1 3.3-1.8 3.5-4.5L150 234l3.8-4c.7-.8 1-1.2 1-2.5l5.7-5a7.1 7.1 0 013.7 3l15.8-13.3c.4.4 1.7.8 2.5.3l26-25-28.3 20-1-.7c0-.8 1-1 0-2.5-1.1-1.3-2.8 1.3-3 1.3s-4.1-1.4-5-3.1l-.2 4.6-7.3 6.7-5.5-.2-8 7.7-1 3 1.3 2.5s-4.2 3.7-4.2 3.5c0-.3-.9-1.1-1-1.3l3.7-3.2.5-2.3-1.2-1.9c-.4.3-5 5.2-5.3 4.7L129.7 211l.7-2.8-8.5-9.2c-3-1-8-1.2-9 5.5-.7 1.6-7.2.2-7.2.2l-3.4.8-19.7 27.9 11 13.2 22.4-28.4.6-8 4.7 5.2c1.6.2 3.1.2 4.5-.5l13.3 14.8-2.2 2.2 2 2.2 2.2-1.6 1 1.3c-1.2.6-2 1.4-3 2-1.9-1.1-3.6-2.6-3.4-4.9l-7.5 6.2-.3 1.3-22.2 18.4-2 .3-.5 5.7 14.5-12v-1.7l1.5 1.2 11.2-9s.8 1 .5 1-10 9-10 9l-.2 1-1.7 1.5-1-.7-13.5 12h-2l-7.5 7.4c-1.9.2-3.6.4-5.2 1.5l-13.4 12z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/na.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/na.svg
new file mode 100644
index 0000000..b934fc1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/na.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-na" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)">
+    <path fill="#fff" d="M0 0h512v512H0z"/>
+    <path fill="#3662a2" d="M-108.2.2l.8 368.6L466.6 0l-574.8.2z"/>
+    <path fill="#38a100" d="M630.7 511.5l-1.4-383.2-579 383.5 580.4-.3z"/>
+    <path fill="#c70000" d="M-107.9 396.6l.5 115.4 125.3-.2 611.7-410.1L629 1.4 505.2.2l-613 396.4z"/>
+    <path fill="#ffe700" d="M154 183.4l-23.1-14-13.4 23.6-13-23.8L81 183l.6-27.1-27 .2 14-23.2L45 119.5l23.8-13L55 83l27 .6-.1-27.1 23.2 14 13.4-23.6 13 23.7L155.2 57l-.6 27 27-.1-14 23.2 23.6 13.3-23.8 13.1 13.7 23.4-27-.5z"/>
+    <path fill="#3662a2" d="M167.8 120c0 27.2-22.3 49.3-49.8 49.3s-49.7-22.1-49.7-49.4 22.3-49.3 49.8-49.3 49.7 22 49.7 49.3z"/>
+    <path fill="#ffe700" d="M157 120a39 39 0 11-77.9 0 39 39 0 0177.9 0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/nc.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/nc.svg
new file mode 100644
index 0000000..2bdf6ee
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/nc.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-nc" viewBox="0 0 512 512">
+  <path fill="#009543" stroke-width=".8" d="M0 0h512v512H0z"/>
+  <path fill="#ed4135" stroke-width=".8" d="M0 0h512v341.3H0z"/>
+  <path fill="#0035ad" stroke-width=".8" d="M0 0h512v170.7H0z"/>
+  <circle cx="225.6" cy="256" r="167.8" fill="#fae600" stroke="#000" stroke-width="5.7"/>
+  <path stroke="#000" stroke-width="6.8" d="M197.2 281h56.9m-56.9-42h56.9M225.6 88.6v286.8"/>
+  <path stroke-width="1.1" d="M158 410c68.6 28 132.8 1.8 132.8 1.8s-24.3-26.2-36.7-36.5c-12.1-10-47.8-9.6-60 0-10 8-39.2 37.5-36 34.8z"/>
+  <ellipse cx="225.6" cy="333.4" stroke-width="1.1" rx="18.8" ry="27.3"/>
+  <ellipse cx="225.6" cy="260" stroke-width="1.1" rx="22.8" ry="14.4"/>
+  <circle cx="225.6" cy="193.4" r="22.8" stroke-width="1.1"/>
+  <path stroke-width="1.1" d="M253 108.7s2 3.2-2.2 10.7c-19.9 35.7-39.7 36.5-43.5 39.5-4.2 3.4-6 3.2-6 3.2.4-3 .6-15.6.8-16.8 3-16.6 28.3-16.4 48-33.5 3-2.7 2.8-3.2 2.8-3.2z"/>
+  <path d="M265.5 163s4 11.2 4.5 22.5c1 18 18.2 18.5 30 18.5v-10c-8.9 0-16.6-1.3-23-14.5a115 115 0 00-11.5-16.5zm-.5 145s6.3-7.8 13.7-26c3.8-9.5 13-15 21.3-15v-14c-19 0-28.2 7-29.1 17.4-2 21.1-5.9 37.6-5.9 37.6z" transform="translate(-115.7) scale(1.13778)"/>
+  <use width="100%" height="100%" transform="matrix(-1 0 0 1 451.3 0)" xlink:href="#leaf"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ne.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ne.svg
new file mode 100644
index 0000000..e76e44c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ne.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ne" viewBox="0 0 512 512">
+  <path fill="#0db02b" d="M0 0h512v512H0z"/>
+  <path fill="#fff" d="M0 0h512v341.3H0z"/>
+  <path fill="#e05206" d="M0 0h512v170.7H0z"/>
+  <circle cx="256" cy="256" r="72.5" fill="#e05206"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/nf.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/nf.svg
new file mode 100644
index 0000000..2149522
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/nf.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-nf" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M155.8 0h200.4v512H155.8z"/>
+    <path fill="#198200" d="M0 0h155.8v512H0zm356.2 0H512v512H356.2z"/>
+  </g>
+  <g fill-rule="evenodd" stroke="#000" stroke-linejoin="round">
+    <path fill="#198200" stroke-linecap="round" stroke-width=".7" d="M243 332.4v41l16.5.2s-5.3-35.8-2.4-40.6c3-4.7 5.7-4 5.7-4s10.8 3.2 12 2.7c1.2-.5-.2-4.1 5.6-3.6 1.9-.7.9-4 2.6-4.1 1.7-.2 34.7 9.2 41.8.3-1.8-5-8.3-.3-10-.2-1.6 0-8-3-11.8 0-3.5-2.5-19-4.2-19-4.2-2-2 37 1 39.3-.5 4.6-4.6-8.5-4.1-10.6-2.6-3.6-2.2-8.2-2-11-.5-1.4-3.2-14-1.8-21.1-2.7-2.3-1.4-2-2.1-.4-3 14.8.7 29.5 2.6 44.3 2 4-5.3-5-7.3-10.6-2.8-3.3-5.4-10-.2-14.4-.7-4.4-.5-2.4-6 3.3-5.1 5.6.8 15.7-.4 17.6-3 1.9-2.5-1.1-5.1-10.4-2.7-3.2-3-10.1 0-13.4 1-4.3-2.3-14.3-.3-17.7.6-3.4-2.1 17.6-5.5 17.6-5.5 8-.1 12.6-1.5 15.2-2.2 12.2-6.6-.2-7.3-6.6-2.5-4-3.1-7.8.3-11.4 1.5s-10.4 2-10.4 1.5 9.8-6.5 9.8-6.5 12-.9 14.3-1.2c2.4-.3 14.7-6.6-2-2.4-5.8.5-9.3.2-11.5.3-12.9-1.3 1.2-2.5 1.2-2.5s18.2-1.7 18.5-2.6c.3-7-15-3.7-15-3.7 0-5.1-14.3.1-14.3 0-2.7-1.6 1.6-3.3 1.6-3.3 3.7-.9 9.4-1.2 10.8-2.4 0 0 10.6 0 11.9-2.9-2.6-7.2-22.5 1.3-25.1 2.6-3.6 0 2.4-5.8 2.5-6 .2-.2 16.4-.9 24.1-11.3.6-6.3-9 3.6-9 3.6-.7-8.2-10.4.5-16 1.2-5.7.7-5.9-2.6-2-3 4-.6 8.4-.2 10.6-6.2 2.3-6 9 .3 10.1-2 1.2-2.1-2.4-4-2.4-4s5-5.1-3-5c-8 .2-18.5-1-18.5-1s8.4-3.2 16.2-3c7.9.1 3.6-5.7-4-5.7-7.4 0-11.4-2.6-11.4-2.6l12.9-4.8-.9-3.6s7.5-6-3-4.6l-11.9 1.6-21.3 3.2c-.2 0-5.8-1.7-.4-3 5.5-1.4 24.8-5.4 27.7-4.3 3 1-.3-7.2-10.6-8.2-10.2-1-16.6 2.5-16.6 2.5s-6.6-2.4-.5-4.4c6.2-2 16 .7 16 .7s10.9-3.3 1.8-4.7c-9-1.3-12 1.3-16 1.4-1.7-2 14.2-2.5 15.2-4.3-1.7-3-11.6 0-17.3 0-2.5-1-2.6-2.7.2-3.7 5.8-.2 11.3.1 17.2-.1-.2-3.2 0-6.9-.1-10-7.5-1.4-16.2 1-20.4.8 1.1-3.4 17.2-4.3 19-5.2 3.7-4.7-15.7 0-16 0-3.3-.5-3-2.7-1-4 5-.5 16.1.7 15.3-2.6-.7-3.2-7.7-1.5-10.6-.8-3 .7-7.2.2-7.2.2-1.9-2.5 16.7-1.5 16.6-3.4-.3-2.3-11.8-.7-15.7-.6-3.1-2 14.7-3.5 15-3.7.6-5.7-12 0-14.4 0-2.4 0-1.2-3.6-1.2-3.6s5-2.2 4.8-2.6c-.1-.3-3.7-1.5-4-1.5-.4 0 0-4 0-4s4-3 3.7-3.9c-.4-.8-4.8.7-4.8.7v-3.4s3.2-.4 3.6-1.9c.3-1.5-4-1.7-4-1.7l-1.6-18-1.6 16.8-5.6.9s3.9 2.2 4.6 4.4c.7 2.2-4.8 1.5-4.8 1.5s4.4 3.8 4.8 5.2c.3 1.3-6.2 1.7-6.2 1.7s5.5 4 5.8 6.1c.4 2.3 0 3.5 0 3.5s-9-8-14.8-5.7c-3 1.6 6.9 2.3 13.5 8 0 1.3-16-3.9-16.6-.6.4.9 17 3.3 18.3 5.4-6.1.3-18.7-1.3-18.3.7-1.3 2.3 11.9 1 17.4 3 1.6 1.8 1.5 3.3-1.3 3.5-5.4-2.5-17.3-4.4-17.3-1.2 0 .9 12.3.3 16.7 3.3-5.9 1.3-26-2.8-26.1-.8.6 1 3.8 5 9.2 4.9 5.5-.2 18.1 2.2 19 3.9.8 1.7-16.4-3.6-23-.5s18.7 1.2 22.8 5-8.2-.4-8.2-.4-17-2.4-19.6-1.2c-2.6 1.2-5.5 4-5.5 4s1.7 3.4 3.4 2.7c1.7-.7-.5 2-.5 2s24 5.8 29.2 11c5.3 5-30.4-8-30.4-8s-14.4 5.2.8 5.6c-1.7 2.5 1 4 1 4s25.2 5.4 27.8 9.5c2.5 4-17.3-4-21.7-6.2-4.5-2.2-17.1 1.4-17 2.2.2.9 6.2 2.1 6.4 3.6.1 1.6-7.4 2-7.4 3.4s32 8 40.5 15.3-25.1-8.6-25.1-8.6 1.9 2.6 0 3.3c-1.9.6-8.6-9.6-19.5-3.3-2 2.6 9.6 4.7 12.5 5-1 2.5-1.9 3.4 2.2 6 4.1 2.5-8-3.8-8-3.5l.8 4.5c-3.8-3-8.3-4-12.6-.9 0 0-.2 3.1 4.3 5-2.5 5 2.7 3.4 10.9 8-12.2-3.2-13.2 2.8-4.5 4.1 8.8 1.4 32.7 2.2 38.3 9.6 5.7 7.3-8-2.8-9.5-3a16 16 0 00-.7 3.7 37 37 0 00-11.4-5c-.3.8-.2 1.7-.6 2.4-4-2.8-7.4-4.8-13.1-5.1l-.7 2.7s-4.8-6-14.2 0c-5.3 3.8 19.8 1.4 24 5.8 4 4.5.8 5.2.8 5.2l-10.3-3.8s-12.1-2.2-15.5.5c-3.5 2.7 49.9 9.4 51.4 16.8 1 4-12.5-4.2-24.3-7.7l-1.3 4s-4.7-4.8-10-5.6l1 4.6s-13-6.1-19.7-2.9c-6.7 3.3 23.2 5 26 8 2.7 3.2-9.1-2-10.2 0-1 2.1-15.5-3.7-15.3-1 .1 2.8 2 4.3 2 4.3s30.3 3 31.3 6.5c1 3.6-16.8-2-16.8-2s-1.7 2.5-.3 3.7c1.4 1.2-10.3-6.8-9.2-1.5-3.8-1.5-13.5-6.2-12.2-2.6 1.4 3.6 27.6 8.7 27.6 8.7s-11.5.9-11 3.8c-14.7-9-14.3-3.2-14-3 .3.1-19-4.9-4.4 3 14.5 7.9 7.8 6.5 8 6.7.2.1 1.5 4 1.2 4-.4 0-10-5.2-13.2-5.6-3.2-.3-18.6 4.3-2.2 11.5 16.4 7.2 26.5-1.7 35.6-.7 9 1 13.3 2.6 12.4 5.5-.8 2.9-9.2-9.6-18 1.2-10.1-2-17-3.1-11.8 4.2-16.4-6-26.4 2-5.7 5.2 20.3.6 32.8-5 32.8-5s3.4 6.3 8.4 1.9c5-4.5 5.1 1.7 5.3 1.7l4.8-2h1.2z"/>
+    <path fill="#fff" stroke-linecap="round" stroke-width=".8" d="M245 308v-2.8s-6.5-1.1-9.6-.5c-2-1-3.7-2.5-5.9-1.3-.4 1 4 3.4 5.6 3.4 1.8 1.1 9.9 1.4 9.9 1.3zm-.1 4.7s-6.5-2.3-9 .4c.4 2.9 7.6 4.3 9 3.5 1.6-.8 0-3.7 0-3.9zm10.9 1.2v2s7.7 1.5 9-.2c1.4-1.6-6-2.7-9-1.8zm-.4-8l.3 2.3s6.7 1.5 9.2-2.2c2.6-3.6-5.8 0-9.5-.1zm.4-7.8v1.5s5 .8 6.1-1.3c1.2-2.2-6 0-6.1-.2zm-10.5-4.6c-.8-1-3.5-3.8-10.8-4.6-5 0 9.2 7.5 10.8 4.6zm10.3-7.6l-.2 2s17.2-5 21.2-4.7c3.6-1 4.3-3.5 4.2-3.5-3.1-2.2-17.9 1.8-25.2 6.2zm.4-6l-.2 2s12-2.4 15.3-4.7c3.2-2.3-15 2.7-15.1 2.6zm-.5-6v2s8-.2 9.7-1.9c1-1.6-7.1-.2-9.7-.1zm16.8 17s4.2.5 5-.7c-.1-2.2-5 .7-5 .6zm-16.5-24.5l.1 4.4s19.4-6.2 20.6-7.3c1.2-1.1 4-4.6-20.7 2.9zm-.5-6.2v3.2s7.8-.5 11.4-3.5c3.5-3-11.4.4-11.4.3zm-9.4-7.3l.5 3-25.6-8.4s-1.3-4.2 25 5.4zm.4-10.3c0 .3 0 2.8-.1 2.7 0 0-17.8-7.4-18.5-6.8-2.3-5.5 18.6 4.2 18.6 4zm8.7 4.6l.3 2.5s10.9-2.3 11.5-3.4c.6-1-11.8 1-11.8.9zm.2 5.8l.4 2.5s4.3-.3 5-1.3c.6-1-5.4-1.2-5.4-1.2zm-.6-13.3v2.5s12-2.4 13.3-3.5c1.3-1.2-13.6 1-13.3 1zm0-6.6c0 .2-.4 2.5-.1 2.5a69 69 0 0016.7-4.5c2.3-2-16.4 2.3-16.6 2zm-.2-11.6v2.5s9.2-1.9 11-3.8-11 1.5-11 1.3zm-1.6-16.9l.3 3.8s12.3-1.7 14.1-3.8c1.8-2-14.4 0-14.4 0zm-5.7-28.4v2.4s-5.9-.3-4.4-1.3c1.4-1 4.4-.9 4.4-1zm5.5 3.2v3.2s7.7-.7 8.3-2c.5-1.1-8.2-1.2-8.3-1.2zm-.5 4.6l.3 2c.1 0 3-.2 3.6-1s-3.6-.8-3.9-1zm-6.4 9.2c0 .2.2 3 0 3 0 0-16.5-4.8-18-4.7-1.6 0-2-3.8 18 1.7zm1.3 5.4c0 .5.4 3.5-.2 3.4-.6-.1-11.2-3.5-10-4.5 1-1 10.2 1.3 10.2 1zm-.9 22.6v2.7s-18.4-5.6-19-6.5c-.7-1-2.5-5.3 19 3.8zm.7 6.6c0 .1.2 2.6 0 2.6l-25-8.8s-2-6.6 25 6.2z"/>
+    <path fill="#fff" stroke-width=".8" d="M217 314.7v2.8s-5-1.4-6.5-4.1c2.9-.8 6.6 1.4 6.5 1.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ng.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ng.svg
new file mode 100644
index 0000000..57d65d3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ng.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ng" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h512v512H0z"/>
+    <path fill="#008753" d="M341.3 0H512v512H341.3zM0 0h170.7v512H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ni.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ni.svg
new file mode 100644
index 0000000..8f68d42
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ni.svg
@@ -0,0 +1,129 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-ni" viewBox="0 0 512 512">
+  <defs>
+    <linearGradient id="f" x1="498.7" x2="500.6" y1="289.1" y2="283.4" gradientUnits="userSpaceOnUse">
+      <stop offset="0" stop-color="#510000"/>
+      <stop offset=".3" stop-color="#8a0000"/>
+      <stop offset="1" stop-color="#a00"/>
+    </linearGradient>
+    <linearGradient id="g" x1="501.4" x2="502.9" y1="291.4" y2="287.4" gradientUnits="userSpaceOnUse">
+      <stop offset="0" stop-color="#ff2a2a"/>
+      <stop offset="1" stop-color="red"/>
+    </linearGradient>
+    <linearGradient id="b" x1="484.8" x2="484.8" y1="311.7" y2="317.6" gradientUnits="userSpaceOnUse">
+      <stop offset="0" stop-color="#F5F549"/>
+      <stop offset="1" stop-color="#97C924"/>
+    </linearGradient>
+    <linearGradient id="a">
+      <stop offset="0" stop-color="#025"/>
+      <stop offset=".5" stop-color="#04a"/>
+      <stop offset="1" stop-color="#025"/>
+    </linearGradient>
+    <linearGradient id="h" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="v" x1="484.8" x2="484.8" y1="311.7" y2="317.6" gradientUnits="userSpaceOnUse" xlink:href="#b"/>
+    <linearGradient id="o" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="p" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="q" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="r" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="u" x1="484.8" x2="484.8" y1="311.7" y2="317.6" gradientUnits="userSpaceOnUse" xlink:href="#b"/>
+    <linearGradient id="x" x1="98.9" x2="125" y1="1440.2" y2="1440.2" gradientTransform="scale(4.45715 .22436)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="j" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="l" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="m" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="i" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="s" x1="484.8" x2="484.8" y1="311.7" y2="317.6" gradientUnits="userSpaceOnUse" xlink:href="#b"/>
+    <linearGradient id="y" x1="47.9" x2="61.7" y1="3054.2" y2="3054.2" gradientTransform="scale(9.12405 .1096)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <clipPath id="c">
+      <path d="M500 226.4l-63.7 110.3h127.4z"/>
+    </clipPath>
+  </defs>
+  <path fill="#0067c6" d="M0 0h512v512H0z"/>
+  <path fill="#fff" d="M0 170.7h512v170.6H0z"/>
+  <path fill="#c8a400" d="M179.2 255.4l8.5.6.1-1.3-3.4-.2.3-4 3.6-2.6v-1.6l-3.7 2.7c-.1-.9-.6-1.8-1.5-2.1-.8-.3-1.7-.4-2.4.2-.8.6-1 1.8-1.1 2.7l-.4 5.6zm1.3-1.1l.3-4.2c.1-.7.2-1.5.8-2a1 1 0 011.6.6c.5 1 .3 2.2.2 3.3l-.2 2.5-2.7-.2zm-.2-12l8.3 2 2-8.1-1.3-.3-1.6 7-2.5-.7 1.4-6.2-1.1-.3-1.5 6.2-2.2-.5 1.5-6.6-1.2-.3-1.8 7.8zm3-11.1l8 2.8.5-1.2-3.2-1 1.3-3.7c.2-1 .4-2.2-.2-3.1a2.6 2.6 0 00-2.1-1.1c-1 0-1.7.7-2.1 1.5-.6 1.1-1 2.4-1.4 3.6l-.8 2.2zm1.6-.8l1.3-3.6c.2-.7.6-1.4 1.3-1.6.6-.2 1.3.3 1.3 1 .2 1-.3 2.2-.7 3.2l-.6 2-2.6-1zm2.9-9.5l4.5 2.6c.9.5 2 .8 2.9.2 1.2-.6 2-2 2.6-3.1.4-1 .8-2.3.2-3.4-.7-1-1.9-1.5-2.9-2.2l-3-1.7-.5 1c1.4 1 2.9 1.8 4.3 2.6.7.4 1.3 1.2 1.1 2a6 6 0 01-1.2 2.7c-.5.7-1.3 1.2-2.1 1-1-.1-1.6-.7-2.4-1.1l-3-1.7-.5 1zm6.1-10l6.8 5.1 3.1-4.1c.6-.9 1.2-2 .8-3a2.6 2.6 0 00-2.2-1.6c-.4 0-1 .2-1.2.4.2-1-.5-1.8-1.3-2-1-.4-2 .3-2.7 1-.8.8-1.5 1.8-2.2 2.7l-1.1 1.4zm1.7-.3l2.4-3c.4-.5 1-1 1.6-.7.6.3.7 1 .4 1.4-.4 1-1 1.6-1.6 2.4l-1 1.3-1.8-1.4zm2.8 2l2.4-3c.5-.5 1-1.1 1.7-1 .6.2 1 .8.9 1.4-.4 1.1-1.2 2-1.9 3l-1 1.3-2.1-1.6zm3.2-10.8l5.8 6.2 5-4.8-.8-.8-4 3.8h-.2l-5-5.3zm7.5-6.6l5.2 6.8 1-.8-5.2-6.8zm7.6-5.2a7.2 7.2 0 00-2 1.9 3.8 3.8 0 00-.2 4.5 4.4 4.4 0 001.7 1.6c.7.3 1.4.5 2.2.4a7.7 7.7 0 005-3.3 3.7 3.7 0 00.3-2.5l-1.2.5c.3 1.7-.8 2.5-2 3.3-2 1.1-3.8 1-5-.7-1.1-2 .2-3.6 1.8-4.7 1.2-.7 2.3-1.2 3.4-.5l1-.8a3.4 3.4 0 00-2.2-.6c-.9 0-1.8.3-2.8 1zm10.1-5l-.9 9.5 1.4-.5.2-3 4.4-1.7 2.2 2 1.3-.6-7.2-6.3-1.4.6zm1.2 1l2.8 2.4-3.2 1.3.4-3.7zm17.5-6.3l.6 8.5 4.6-.3c1.2-.1 2.5-.4 3.3-1.4a5 5 0 00.8-4.4 3.8 3.8 0 00-3-2.5c-1.2-.3-2.5-.1-3.9 0l-2.4.1zm1.3 1.1l3.7-.2a3.1 3.1 0 012 .6 2.9 2.9 0 011.2 2.7 2.9 2.9 0 01-2 2.6l-2 .3-2.5.1-.4-6zm10.6-1.6l-.5 8.5 8.3.5V187l-7-.4.2-2.6 6.3.4.1-1.2-6.3-.4v-2.3l6.9.4v-1.2l-8-.5zm22.3 3.6l-3 8 1 .3 2.5-6.3v-.3l.2.4 3 8.4 1.4.6 3-8-1-.4-2.5 6.3v.3l-.2-.3-3-8.5zm11.5 4.9l-4 7.6-1-.6 3.8-7.6zm6.4 3.8a7.2 7.2 0 00-2.5-1.1 3.8 3.8 0 00-4.2 1.7 4.4 4.4 0 00-.8 2.1c0 .8.2 1.6.6 2.3a7 7 0 002.2 2c1 .7 1.9 1 2.8 1.1 1 0 1.7-.2 2.5-.7l-1-1c-1.4 1-2.6.4-3.8-.4-1.9-1.2-2.6-3-1.5-4.7 1.3-2 3.4-1.5 5-.4 1.2.7 2.1 1.6 2 2.9l1 .5a3.4 3.4 0 00-.3-2.3 5.8 5.8 0 00-2-2zm8.1 6l-8.9 3.6 1 1 2.8-1.1 3.6 3-.7 3 1 .9 2.3-9.4-1-1zm-.3 1.6l-1 3.6-2.5-2.2 3.5-1.4zm6.8 4.4l-6.6 5.4.8 1 2.6-2.1 2.6 3.1-.8 4.3 1 1.3.8-4.6c.8.6 1.9 1 2.7.4.8-.3 1.5-1 1.5-1.9.1-1.2-.7-2.1-1.4-3l-3.2-3.9zm-.2 1.7c1 1.2 2 2.3 2.8 3.5.4.6 1 1.4.4 2.1-.3.6-1.2.6-1.7.2-1-.7-1.7-1.8-2.6-2.7l-1-1.3 2.1-1.8zm10.1 11.9l-9.6.4.8 1.3 3-.2 2.3 4-1.7 2.6.8 1.2 5.2-8-.7-1.3zm-.8 1.3l-2 3.1-1.7-3 3.7-.1zm6.3 10c-.5-1.5-1.4-3-2.8-3.7a4 4 0 00-4.8 1c-1 1.2-1 2.8-.8 4.2a9 9 0 002.2 4.5l-.6.2.4 1.1 4-1.4-1.6-4.3-.9.3 1.2 3.2-1.4.5a7.5 7.5 0 01-2.2-4c-.3-1.2-.3-2.6.6-3.4 1-1 2.7-1.4 4-.5a6.2 6.2 0 012 3.6c.3.9.3 2-.4 2.7-.2.1 0 .3.1.5l.4.5a3 3 0 001.1-2.4c0-.9-.2-1.8-.5-2.6zm2.5 6.7l-4.8.9c-.9.2-1.5.4-2 .8-.4.4-.7.9-.9 1.6a6.8 6.8 0 00.1 2.6c.2 1 .5 1.8 1 2.4.3.6.8 1 1.3 1.2.6.1 1.3.2 2.2 0l4.7-1-.2-1.2-4.6 1c-2.1.3-2.8-.8-3.2-2.6-.4-2-.1-3.2 2-3.6l4.6-1-.2-1.1zm2.6 14.5l-8.8-3.8v1.4l2.8 1.2.3 4.6-2.5 1.6.1 1.4 8.2-5-.1-1.4zm-1.3.8l-3.2 2-.3-3.5 3.5 1.5zm-145.6 21.3l-1.2.3 1.3 5.2 1.3-.3zm140.4 0l1.2.3-1.3 5.2-1.3-.3zM199 293.5l-9.5 1.1.8 1.2 3-.3 2.5 3.9-1.4 2.6.8 1.2 4.6-8.5-.8-1.2zm-.7 1.4l-1.8 3.3-2-2.9 3.8-.4zm4.4 3.9l-6.1 5.6.8 1 5.1-4.9-2.7 7.4 1 1 7.3-2.2-5 4.7.8.8 6-5.6-1.2-1.4-7.4 2.3 2.8-7.3zm8.8 9l-5.1 6.8 6.6 5 .7-1-5.6-4.2 1.6-2 5 3.7.8-1-5.1-3.8 1.4-1.8 5.4 4.1.7-1-6.4-4.8zm8.4 6.1l-4 7.5 1 .6 1.6-3 3.7 2 .8 4.3 1.4.7-.9-4.5c1 .3 2 .1 2.7-.6.5-.6.9-1.5.6-2.3-.3-1.1-1.4-1.7-2.3-2.2l-4.6-2.5zm.5 1.7l3.9 2c.5.5 1.3 1 1.2 1.8 0 .7-.8 1-1.4 1-1.3-.3-2.3-1-3.4-1.6l-1.6-.8 1.3-2.4zm9.1 3.3l-3.2 8 1.2.4 3.2-7.9zm7.7 2.7a7.2 7.2 0 00-2.7-.4 3.8 3.8 0 00-3.6 2.7 4.4 4.4 0 00-.2 2.3c.2.8.6 1.5 1.2 2a7 7 0 002.6 1.5c1.1.4 2.1.4 3 .3a3.7 3.7 0 002.2-1.4l-1.1-.6c-1.2 1.3-2.5 1-3.9.6-2.1-.8-3.2-2.3-2.6-4.3.7-2.2 2.8-2.2 4.7-1.6 1.3.4 2.4 1 2.6 2.3l1.2.1a3.4 3.4 0 00-1-2 5.8 5.8 0 00-2.4-1.5zm8.6 2l-5.6 7.7 1.4.2 1.7-2.4 4.6.7 1 2.8 1.4.2-3.1-9-1.4-.3zm.5 1.4l1.2 3.5-3.4-.5 2.2-3zm19.5-1.4a7.2 7.2 0 00-2.6 1 3.8 3.8 0 00-1.8 4.1 4.4 4.4 0 001 2c.5.7 1.2 1 2 1.3.8.2 1.8.2 3 0a5.8 5.8 0 002.7-1.3 3.7 3.7 0 001.3-2.2H270c-.3 1.7-1.6 2-3 2.4-2.3.4-4-.4-4.4-2.4-.4-2.3 1.4-3.4 3.3-3.8 1.3-.3 2.6-.3 3.3.7l1.2-.4a3.4 3.4 0 00-1.8-1.3 5.8 5.8 0 00-3-.1zm5.7-1l2.4 8.2 8-2.4-.4-1.2-6.7 2-.8-2.4 6.1-1.9-.3-1.1-6.1 1.8-.7-2.2 6.5-2-.3-1.1-7.7 2.3zm9.2-3l3.6 7.8 1-.5-3-6.4 8.3 3.8h.6l1-.6-3.5-7.7-1 .5 2.9 6.4-8.5-3.9-1.4.7zm9.4-4.3l.7 1 3-2 .1-.1 4 6.1 1-.7-3.9-6v-.2l3.1-2-.6-1zm8.6-6l5.8 6.4.9-.9-2.3-2.4 3-2.8 4.4.5 1.1-1-4.6-.6c.6-.8.8-2 .3-2.8-.4-.7-1.1-1.3-2-1.3-1.2 0-2 .8-3 1.6l-3.6 3.4zm1.7.1l3.3-3c.5-.4 1.4-1 2.1-.5.6.4.6 1.2.2 1.8-.6 1-1.6 1.8-2.5 2.7l-1.2 1-1.9-2zm8.2-10l3.8 8.9 1-1.1-1.3-2.8 3-3.6 2.9.7.9-1.2-9.4-2-.9 1.2zm1.5.4l3.7.7-2.2 2.7-1.5-3.4zm2.2-5.2l7.2 4.7 3.7-5.8-1-.7-3 4.6v.2l-.2-.1-6-4z"/>
+  <g clip-path="url(#c)" transform="translate(-170.7) scale(.85333)">
+    <path fill="#fff" d="M500 226.4l-31.5 54.5-15.4 26.7h93.8l-14.7-25.4-32.2-55.8z"/>
+    <g id="e">
+      <g id="d">
+        <path fill="#17c0eb" stroke="#17c0eb" stroke-width=".1" d="M500 226.4l-2.4 4 2.4 55 2.4-55z" opacity=".6"/>
+        <path fill="#fff" d="M500 277.5h-.1l.1 3 .1-3h-.1z"/>
+      </g>
+      <use width="100%" height="100%" transform="rotate(72 500 285.5)" xlink:href="#d"/>
+      <use width="100%" height="100%" transform="rotate(144 500 285.5)" xlink:href="#d"/>
+      <use width="100%" height="100%" transform="rotate(-144 500 285.5)" xlink:href="#d"/>
+      <use width="100%" height="100%" transform="rotate(-72 500 285.5)" xlink:href="#d"/>
+    </g>
+    <use width="100%" height="100%" transform="rotate(8 500 285.5)" xlink:href="#e"/>
+    <use width="100%" height="100%" transform="rotate(16 500 285.5)" xlink:href="#e"/>
+    <use width="100%" height="100%" transform="rotate(24 500 285.5)" xlink:href="#e"/>
+    <use width="100%" height="100%" transform="rotate(32 500 285.5)" xlink:href="#e"/>
+    <use width="100%" height="100%" transform="rotate(40 500 285.5)" xlink:href="#e"/>
+    <use width="100%" height="100%" transform="rotate(48 500 285.5)" xlink:href="#e"/>
+    <use width="100%" height="100%" transform="rotate(56 500 285.5)" xlink:href="#e"/>
+    <use width="100%" height="100%" transform="rotate(64 500 285.5)" xlink:href="#e"/>
+    <path fill="red" d="M500 265.8a44.2 44.2 0 00-29 10.8L456.4 302a45 45 0 00-.8 8.3h5a39.4 39.4 0 0178.7 0h5a45 45 0 00-.7-8.3L529 276.6a44.3 44.3 0 00-29-10.8z"/>
+    <path fill="#f60" d="M500 266.7a43.5 43.5 0 00-30.3 12.2l-12 20.9a43.6 43.6 0 00-1.3 10.4h4.3a39.4 39.4 0 0178.6 0h4.3a43.9 43.9 0 00-1.3-10.5l-12-20.8a43.5 43.5 0 00-30.3-12.2z"/>
+    <path fill="#ff0" d="M500 267.5a42.7 42.7 0 00-32 14.3l-8.7 15a42.7 42.7 0 00-2 13.5h3.3a39.4 39.4 0 0178.7 0h3.5c0-4.7-.8-9.2-2.1-13.4l-8.8-15.1a42.6 42.6 0 00-31.9-14.3z"/>
+    <path fill="#0f0" d="M500 268.3a42 42 0 00-34.9 18.6l-2.8 4.9a41.8 41.8 0 00-4.3 18.5h2.7a39.4 39.4 0 0178.6 0h2.7a41.8 41.8 0 00-4.3-18.5l-2.8-5a42 42 0 00-34.9-18.6z"/>
+    <path fill="#0cf" d="M500 269a41.2 41.2 0 00-41.2 41.3h1.9a39.4 39.4 0 0178.6 0h1.9A41.2 41.2 0 00500 269z"/>
+    <path fill="#00f" d="M500 269.8a40.4 40.4 0 00-40.4 40.4h1.4a39 39 0 1178 0h1.4A40.4 40.4 0 00500 270z"/>
+    <path fill="purple" d="M500 270.7a39.6 39.6 0 00-39.6 40.3h.8v-.8a38.8 38.8 0 1177.6.8h.8v-.8a39.6 39.6 0 00-39.6-39.6z"/>
+    <path fill="#510000" d="M500.4 288.1c-.7 0-1.2-.5-1.8-.6a2.2 2.2 0 00-.7 2.1c.3.1.3.4.9.9s.5.7.4 2c0 .4.1 1.5.6 1.6.5.1 1-.3 1.1-1.2.1-.7.4-1.2.7-1.6.3-1.9-.2-2.6-1.2-3.2z"/>
+    <path fill="red" d="M497.2 283.5c-.6 0-1.6 1-2 .5-.2-.3-.3-.9 0-1.4a4.8 4.8 0 012.2-2.3c2.3-1.4 3.9-1 5 1 1.1 1.8 2.2 3.8 2.3 5.4 0 .5.3 1.4-.2 1.9-1.3 1.4-4.6-1.5-6.5-1-.6.1-1.4.6-2 .2-.4-.3 0-1 .3-1.3.6-.5 1.5-2.4 1.4-3.2 0-.4 0 .2-.5.2z"/>
+    <path fill="url(#f)" d="M497 282.6c-1.2.4-1 1-1.6 1.5.2.1.8.3 1.4-.3.2-.2.5-.3.7-.3l-.7.7a5.2 5.2 0 00-1.4 1.8c-.3.8-.4 1.7-.3 1.8 0 0 .4.8 1.5 1.2 2 .8 2.4 2.5 4.5 2.5 1.6 0 1.4-1.1 2.7-.9 1 .2 1.7-.7.6-1.2a14 14 0 00-5.4 0c-.4-4 0-2.6-.1-4.4-.1-1.7-.7-1.8 0-3.3-.5 1-1.2.8-2 .8z"/>
+    <path fill="#ff2a2a" d="M501 279.8l-.1.6.3 1 .2 1c0 .3.4.4.7.6.4.3 0 1 .3 1.1.2 0 .5-1 .5-1.2v-.7a15.3 15.3 0 00-.5-.9 3.6 3.6 0 00-.2-.3 4.2 4.2 0 00-.8-.9 4 4 0 00-.3-.2l-.2-.1z"/>
+    <path fill="url(#g)" d="M501.3 287.4l-2-.7c-1.3-.4-2.6-1.2-3.5-.8-.3.1-.3.4-.4.9 0 .5-.5 1.3 0 1 .6-.4 2.4.8 3 1.1.3.2 1 .6 1.1 1 .2.6 0 1.8 0 2.4 0 .5.2 1.8.7 2 .6.1 1.1-.4 1.3-1.3.3-.9.4-1.4.8-1.9s.8-.8 1.3-.9c.6 0 1.4.5 1.4-.2 0-.4-.4-.8-.2-1.4.1-.5-.4-.4-.9-.6l-2.7-.6z"/>
+    <path fill="#910000" d="M498.4 288.9c-.4-.2-2.3-1.5-3-1-.3 0-.4 0-.4-.3l.2-.9c0-.3.2-.8.5-1 .7-.6 2.3.5 3.1.8l-.4 2.4z"/>
+    <path fill="#ff3a3a" d="M501.8 291.4c.9-1.6 1.5-1.4 2.6-1.4.4 0 .5-.3.4-.7-.3.6-1.7 0-2.5.3-1.5.7-1.2 3.7-2 4 .8.7 1.1-1.7 1.5-2.2z"/>
+    <g fill="url(#h)">
+      <path fill="#fff" d="M453.1 307.6l-10 17.3H557l-10-17.2h-93.8z"/>
+      <g id="n" fill="url(#i)">
+        <path id="k" fill="url(#j)" d="M449.7 321.4a36 36 0 00-4.7.3l-.5.9c2.4-.3 4.7-.7 7.2-.7 3.2 0 6.2.8 9.7.8h4.6c3.5 0 6.4-.8 9.7-.8 3.3 0 6.3.8 9.8.8h4.6c3.5 0 6.4-.8 9.7-.8 3.3 0 6.3.8 9.8.8h4.5c3.5 0 6.5-.8 9.8-.8 3.3 0 6.3.8 9.8.8h4.5c3.5 0 6.5-.8 9.8-.8 2.6 0 5 .5 7.5.7l-.5-1a38 38 0 00-4.4-.2h-4.5c-3.5 0-6.5.7-9.8.8-3.3 0-6.3-.8-9.8-.8H522c-3.5 0-6.5.7-9.8.8-3.3 0-6.3-.8-9.8-.8H498c-3.5 0-6.5.7-9.8.8-3.3 0-6.3-.8-9.8-.8h-4.5c-3.5 0-6.5.7-9.8.8-3.3 0-6.2-.8-9.7-.8h-4.6z"/>
+        <use width="100%" height="100%" y="-1.1" fill="url(#l)" xlink:href="#k"/>
+        <use width="100%" height="100%" y="-2.2" fill="url(#m)" xlink:href="#k"/>
+      </g>
+      <use width="100%" height="100%" y="-3.3" fill="url(#o)" xlink:href="#n"/>
+      <use width="100%" height="100%" y="-6.7" fill="url(#p)" xlink:href="#n"/>
+      <path fill="url(#q)" d="M453.2 307.5v.2h93.7l-.1-.2h-93.6zm-.2.3l-.1.3H547l-.1-.3h-94zm-.2.4l-.2.3h94.8l-.2-.3h-94.4zm-.3.5l-.3.5h95.6l-.3-.5h-95zm-.4.7l-.3.5h96.4l-.3-.5h-95.8zm-.4.7l-.2.4h97l-.2-.4h-96.6zm-.4.7l-.2.4H549l-.3-.4h-97.4zm-.4.7l-.3.6h98.8l-.3-.6H451z"/>
+      <path fill="url(#r)" d="M457.4 312.3c3.4.7 3.7 0 3.7 0zm81.5 0s.3.7 3.7 0z"/>
+    </g>
+    <g fill="#ccd11e">
+      <g id="t">
+        <path fill="url(#s)" d="M530.6 297c-1.7 0-2.2.9-2.2.9-2.7 10.6-11.8 21.3-22.6 21.3h-8V330h61.4l-6.2-11c-9.7-1.4-17.6-11.3-20.1-21.1 0 0-.6-.9-2.3-.9z"/>
+        <path fill="#97c924" d="M530.6 297.5c-.8 0-1.2.1-1.5.3l-.3.3a33.6 33.6 0 01-8.4 14.7c-4 4.1-9 6.9-14.6 6.9h-7.7v9.9H559l-5.7-10c-4.7-.7-9-3.2-12.4-6.8a33.6 33.6 0 01-8.4-14.7l-.3-.3a2.8 2.8 0 00-1.6-.3z"/>
+        <path fill="#ede71f" d="M530.6 297.5h.4v10.8a13 13 0 01-2 6.4c-.5 1.6-1 1-2.3 2.9a25.4 25.4 0 01-5.2 1.2c-2.5.4-8 .8-10.9.1a23 23 0 009.8-6 30.6 30.6 0 002.1-2.5 33.7 33.7 0 003-4.4l1-2a33.9 33.9 0 001.3-2.9 29.8 29.8 0 001-3l.3-.3.6-.2 1-.1z"/>
+        <path fill="#c6cb24" d="M530 298.9c-.5 6-2.3 13.2-6.7 17.8-1.6 1.3-3.7 2.6-5.6 2.3 6.7-5.5 10.8-14 12.2-20.1z"/>
+        <path fill="#9ecb34" d="M524.5 309.3c-1 2.7-4.8 6.7-8.8 10h-2.9c2.5-.2 8.3-5 11.7-10z"/>
+      </g>
+      <use width="100%" height="100%" x="-15.3" xlink:href="#t"/>
+      <g fill="#c6cb24">
+        <path fill="url(#u)" d="M502.2 298c2.8 10.5 11.8 21.2 22.6 21.2h8.1V330h-65.8v-10.8h8c10.8 0 19.9-10.7 22.6-21.3 0 0 .6-.8 2.3-.8 1.7 0 2.2.8 2.2.8z"/>
+        <path fill="#97c924" d="M500 297.5c.8 0 1.2.2 1.5.3l.3.3a33.6 33.6 0 008.4 14.7c4 4.1 9 6.9 14.6 6.9h7.7v9.9h-65v-10h7.7c5.5 0 10.6-2.7 14.6-6.8a33.6 33.6 0 008.3-14.7l.3-.3a3 3 0 011.6-.3z"/>
+        <path fill="#ede71f" d="M499.3 297.5a3.4 3.4 0 00-.3 0l-.6.3-.3.3a28.9 28.9 0 01-1 3 34.2 34.2 0 01-1.2 3 34.2 34.2 0 01-1 1.9 33.6 33.6 0 01-3 4.4 30.7 30.7 0 01-2.1 2.4 23 23 0 01-9.8 6.1c2.8.7 4 0 6.5-.4 2-.3 4.2-.6 6-1.2 1.5-2 1-1.3 1.5-2.9 1.2-2.2 3-4.2 3.4-6.7 1.6-3 1.9-8.6 1.9-10.2z"/>
+        <path d="M499.3 298.9c-.4 6-2.3 13.2-6.7 17.8-1.6 1.3-3.6 2.6-5.6 2.3 6.8-5.5 10.9-14 12.3-20.1z"/>
+        <path fill="#9ecb34" d="M493.8 309.3a31 31 0 01-8.8 10h-2.8c2.5-.2 8.2-5 11.6-10z"/>
+        <path fill="#ede71f" d="M501 297.6l.5.2.4.3a32.3 32.3 0 001 3 33.6 33.6 0 001.2 3l1 1.9a33.6 33.6 0 003 4.4 30.7 30.7 0 002.1 2.4 24 24 0 009.8 6.5c-7.3 0-10.4-.6-13-4a19 19 0 01-4.2-7c-.5-2-2-6.5-1.9-10.7z"/>
+        <path d="M501.5 298.9c.4 6 2.2 12 6.6 16.6 1.6 1.4 3.6 2.6 5.6 2.3a31.1 31.1 0 01-12.2-18.9z"/>
+      </g>
+      <g id="w">
+        <path fill="url(#v)" d="M484.8 297c-1.8 0-2.3.9-2.3.9-2.5 9.8-11.8 22.3-21.5 23.8l-4.8 8.3h49v-11.3c-8.8-2.4-15.9-11.7-18.2-20.8 0 0-.5-.8-2.3-.8z"/>
+        <path fill="#97c924" d="M484.8 297.5c-.8 0-1.3.2-1.6.3l-.3.3a43.4 43.4 0 01-8.1 15c-3.4 4.3-9.7 8.6-14 9l-4.3 7.5h48v-10.7a23.2 23.2 0 01-9.5-6 33.6 33.6 0 01-8.4-14.8l-.3-.3a2.9 2.9 0 00-1.5-.3z"/>
+        <path fill="#93bc30" d="M483.4 298.9c-.6 9-5.6 20.5-11.3 22.4-1.9.7-5.1.9-6.2 1a36 36 0 0017.6-23.4z"/>
+        <path fill="#ede71f" d="M484.8 297.5h-.5v10.8c0 2.3.9 4.2 2 6.4l.2.5c.5 1.1.8 1.5 2.3 2.7a22 22 0 0014.8 4c-1.1-.9-2.3-1.7-3.4-2.4l4.5-.5a23 23 0 01-9.7-6.2 30.5 30.5 0 01-1.4-1.5l-.6-.8a35 35 0 01-3.2-4.5 34.2 34.2 0 01-1-2 34 34 0 01-1.6-3.9 31.7 31.7 0 01-.6-2l-.3-.3a2.2 2.2 0 00-.6-.2 3.6 3.6 0 00-1-.1z"/>
+        <path d="M485.4 298.9c.5 6 2.3 13.2 6.7 17.8 1.6 1.3 3.6 2.6 5.6 2.3a38.5 38.5 0 01-12.3-20.1z"/>
+        <path fill="#9ecb34" d="M489.6 307.3a35 35 0 0014.6 14.9h2.5c-4.4-2.4-11.5-5.8-17-15z"/>
+      </g>
+      <use width="100%" height="100%" x="-15.4" fill="#c6cb24" xlink:href="#w"/>
+    </g>
+    <path fill="#fff" d="M556.5 324.7c-.6.2-4.4-.2-6.4 0l-1.3.3h-3.3c-3.6 0-6.7 1-10.1 1-3.4 0-6.5-1-10-1H522c-3.6 0-6.7 1-10.1 1-3.4 0-6.5-1-10-1h-3.4c-3.6 0-6.7 1-10 1-3.5 0-6.5-1-10.1-1H475c-3.6 0-6.6 1-10 1-3.5 0-6.5-1-10.1-1h-3.4c-2.8 0-6.2.6-8.9.8l-6.3 10.9h127.4z"/>
+    <path fill="url(#x)" d="M548 323.1h-.6c-3.2.1-5.6 1.1-11.2 1.1s-6.2-1-12.6-.8c-6 0-8.4 1.2-11.7 1.2-3.2 0-8.4-.7-12.5-.3-4 .4-8.8 1.3-12 1.3-3.9 0-7.8-.7-11.8-.3-4.1.4-6 1.5-11.1 1.5-4.4 0-9-.7-12.8-.7-3.4 0-7.2 1-10 1.4l-.9 1.5c2.3-.3 8.6-1.3 10.8-1.3 2.4 0 10.7.5 15.3.3 4.7-.1 5.2-1.2 10.7-1.2 3.8 0 6.6.4 10.5.4 2.5 0 4.7-1.2 8.4-1.2l2.8-.1c3.1-.5 8.4 0 12 .2 3.3.2 5.5-.6 9-.7l4.4-.1c3.5-.2 6.4.6 9.7.6 3.2-.2 6.4-1 9.8-1l4.5-.2c2.3 0 5.9 0 8.3.5l-.8-1.4c-2.4-.1-5.3-.7-8.2-.7z"/>
+    <g id="A">
+      <path id="z" fill="url(#y)" d="M450.3 334.8c-3.4 0-6.4.8-9.6.9a31.8 31.8 0 01-3.6-.3l-.5.8h6c3.5 0 6.4-.8 9.6-.9 3.3.1 6.2 1 9.7 1h4.5c3.4 0 6.4-.9 9.6-1 3.3.1 6.3 1 9.7 1h4.5c3.5 0 6.4-.9 9.7-1 3.2.1 6.1 1 9.6 1h4.5c3.4 0 6.4-.9 9.7-1 3.2.1 6.2 1 9.6 1h4.5c3.5 0 6.4-.9 9.6-1 3.3.1 6.2 1 9.7 1h4.5l1.8-.1-.5-.8c-1 .1-2.1.3-3.2.3-3.3 0-6.2-1-9.7-1h-4.5c-3.4 0-6.4 1-9.6 1-3.3-.1-6.2-1-9.7-1h-4.5c-3.4 0-6.4 1-9.6 1-3.3-.1-6.2-1-9.7-1h-4.5c-3.5 0-6.4 1-9.6 1-3.3-.1-6.2-1-9.7-1h-4.5c-3.4 0-6.4 1-9.6 1-3.3-.1-6.2-1-9.7-1h-4.5z"/>
+      <use width="100%" height="100%" y="-1.3" xlink:href="#z"/>
+      <use width="100%" height="100%" y="-2.6" xlink:href="#z"/>
+    </g>
+    <use width="100%" height="100%" y="-3.9" xlink:href="#A"/>
+    <use width="100%" height="100%" y="-7.7" xlink:href="#A"/>
+    <path fill="#97c924" d="M443.9 324.7l-2.5 4.2c2.9-.5 7.1-1.7 10.7-1.7 3.6 0 8 .9 12.4 1 5 0 7-1.2 11-1.6 4.1-.4 8 .5 12 .6 3.1 0 7.9-1.1 12-1.5 4-.5 7.7.3 12.5.3 4.9.1 5.7-1.2 11.6-1.3 6.4-.1 7 .9 12.6.9 4.2.2 7.9-.9 11.7-1.1 3.8-.3 5.5 0 8.3 0l-1.9-3.2-101.3 2.3z"/>
+    <path fill="#fff" d="M550 324.6l4 .3a91.4 91.4 0 002.9.3l-.4-.5c-.6.2-4.4-.2-6.4 0z"/>
+  </g>
+  <path fill="#c8a400" d="M256 191.9l-27.4 47.5-28 48.6h110.8L284 240.5l-28-48.6zm0 2.5l27 46.7 26.3 45.6H202.8l26.9-46.6z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/nl.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/nl.svg
new file mode 100644
index 0000000..9db233d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/nl.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-nl" viewBox="0 0 512 512">
+  <path fill="#21468b" d="M0 0h512v512H0z"/>
+  <path fill="#fff" d="M0 0h512v341.3H0z"/>
+  <path fill="#ae1c28" d="M0 0h512v170.7H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/no.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/no.svg
new file mode 100644
index 0000000..08ea572
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/no.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-no" viewBox="0 0 512 512">
+  <path fill="#ed2939" d="M0 0h512v512H0z"/>
+  <path fill="#fff" d="M128 0h128v512H128z"/>
+  <path fill="#fff" d="M0 192h512v128H0z"/>
+  <path fill="#002664" d="M160 0h64v512h-64z"/>
+  <path fill="#002664" d="M0 224h512v64H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/np.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/np.svg
new file mode 100644
index 0000000..f34ee8c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/np.svg
@@ -0,0 +1,19 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-np" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="b">
+      <path fill-opacity=".7" d="M0-16h512v512H0z"/>
+    </clipPath>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)">
+    <path fill="#fff" d="M0 0h512v512H0z" style="width:0"/>
+    <g clip-path="url(#b)" transform="translate(0 16)">
+      <g fill-rule="evenodd">
+        <path fill="#ce0000" stroke="#000063" stroke-width="13" d="M6.5 489.5h378.8L137.4 238.1l257.3.3L6.6-9.5v499z"/>
+        <path fill="#fff" d="M180.7 355.8l-27 9 21.2 19.8-28.5-1.8 11.7 26.2-25.5-12.3.5 28.6-18.8-20.9-10.7 26.6-9.2-26.3-20.3 20.6 1.8-27.7L49 409l12.6-25-29.3.6 21.5-18.3-27.3-10.5 27-9L32.2 327l28.4 1.8L49 302.6l25.6 12.3-.5-28.6 18.8 20.9 10.7-26.6 9.1 26.3 20.4-20.6-1.9 27.7 27-11.4-12.7 25 29.4-.6-21.5 18.3zm-32.4-184.7l-11.3 8.4 5.6 4.6a93.8 93.8 0 0030.7-36c1.8 21.3-17.7 69-68.7 69.5a70.6 70.6 0 01-71.5-70.3c10 18.2 16.2 27 32 36.5l4.7-4.4-10.6-8.9 13.7-3.6-7.4-12.4 14.4 1-1.8-14.4 12.6 7.4 4-13.5 9 10.8 8.5-10.3 4.6 14 11.8-8.2-1.5 14.3 14.2-1.7-6.7 13.2 13.7 4z"/>
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/nr.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/nr.svg
new file mode 100644
index 0000000..282d80f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/nr.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-nr" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M135.6 0h496.1v496h-496z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#a)" transform="translate(-140) scale(1.0321)">
+    <path fill="#002170" d="M0 0h992.1v496H0z"/>
+    <path fill="#ffb20d" d="M0 226.8h992.1v42.4H0z"/>
+    <path fill="#fff" d="M292.4 424.4l-31.9-32-10.2 44-11.7-43.7-30.9 33 11.8-43.6-43.2 13 32-31.8-44-10.3 43.6-11.6-33-31 43.6 11.8-13-43.2 31.8 32 10.3-44 11.7 43.6 30.8-32.9-11.7 43.6 43.2-13-32 31.8 44 10.3L290 362l33 30.9-43.7-11.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/nu.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/nu.svg
new file mode 100644
index 0000000..aced440
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/nu.svg
@@ -0,0 +1,26 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-nu" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h496v496H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="scale(1.0321)">
+    <path fill="#fff" fill-rule="evenodd" d="M0 0h499.6v248.1H0z"/>
+    <path fill="#c00" d="M0 0v18.6L119.2 80l44.9 1.3L0 0z"/>
+    <path fill="#006" d="M51 0l144.6 75.5V0H51z"/>
+    <path fill="#c00" d="M214.9 0v96.4H0v55h215v96.4h66v-96.4h215v-55H281V0h-66z"/>
+    <path fill="#006" d="M300.2 0v71.1L441.6.6 300.2 0z"/>
+    <path fill="#c00" d="M304.7 78.9l39.8-.3L498.9.6l-41 .6L304.8 79z"/>
+    <path fill="#006" d="M0 167.5v52.8L99.2 168 0 167.6z"/>
+    <path fill="#c00" d="M381.9 169.7l-41.4-.3 155.8 77.5-1-17.7-113.5-59.5zM38.7 248.3l146.1-76.8-38.3.3L0 248.1"/>
+    <path fill="#006" d="M497.9 21.8l-118 58.5 116.4.5v87.1h-99.1l98.2 53.3 1.4 27-52.4-.6-143.6-70.5v71.2H196V177L61.3 248l-60.9.2V496H992V.4L499 0M.6 28L0 79.4l104.4 1.3L.5 28z"/>
+    <g fill="#ffd900" fill-rule="evenodd" stroke-width="1pt">
+      <path d="M496 0h496.1v496h-496z"/>
+      <path d="M0 248h523.5v248H0z"/>
+    </g>
+    <g fill-rule="evenodd">
+      <path fill="#000067" d="M290.9 125.3a42.8 42.8 0 11-85.5 0 42.8 42.8 0 0185.5 0z"/>
+      <path fill="#fff40d" d="M226.8 154l8.3-24.5-21.6-15.2h26.7l8.2-24.6 8.2 24.6h26.7l-21.6 15.2L270 154l-21.6-15.3zm155.3-17l4.1-11.5-10.7-7.2h13.2l4.1-11.5 4 11.6h13.3l-10.7 7 4.1 11.5-10.7-7zm-144.7 85.5l4.1-11.5-10.7-7.1h13.3l4-11.5 4.1 11.5h13.2l-10.7 7 4.1 11.6-10.7-7.1zm0-167l4.1-11.6-10.7-7h13.3l4-11.6 4.1 11.5h13.2L254.7 44l4.1 11.5-10.7-7zM92.3 136.8l4.1-11.5-10.7-7h13.2l4.1-11.6 4 11.5h13.3l-10.7 7.1 4 11.5-10.6-7z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/nz.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/nz.svg
new file mode 100644
index 0000000..5283a96
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/nz.svg
@@ -0,0 +1,41 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-nz" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="c">
+      <path d="M0 0h600v300H0z"/>
+    </clipPath>
+    <clipPath id="d">
+      <path d="M0 0l300 150H0zm300 0h300L300 150zm0 150h300v150zm0 0v150H0z"/>
+    </clipPath>
+    <g id="b">
+      <g id="a">
+        <path d="M0 0v.5L1 0z" transform="translate(0 -.3)"/>
+        <path d="M0 0v-.5L1 0z" transform="rotate(-36 .5 -.2)"/>
+      </g>
+      <use transform="scale(-1 1)" xlink:href="#a"/>
+      <use transform="rotate(72 0 0)" xlink:href="#a"/>
+      <use transform="rotate(-72 0 0)" xlink:href="#a"/>
+      <use transform="scale(-1 1) rotate(72)" xlink:href="#a"/>
+    </g>
+  </defs>
+  <path fill="#00247d" fill-rule="evenodd" d="M0 0h512v512H0z"/>
+  <g transform="translate(-148.7 134.5) scale(.60566)">
+    <use width="100%" height="100%" fill="#fff" transform="matrix(45.4 0 0 45.4 900 120)" xlink:href="#b"/>
+    <use width="100%" height="100%" fill="#cc142b" transform="matrix(30 0 0 30 900 120)" xlink:href="#b"/>
+  </g>
+  <g transform="rotate(82 393.4 127.1) scale(.60566)">
+    <use width="100%" height="100%" fill="#fff" transform="rotate(-82 519 -457.7) scale(40.4)" xlink:href="#b"/>
+    <use width="100%" height="100%" fill="#cc142b" transform="rotate(-82 519 -457.7) scale(25)" xlink:href="#b"/>
+  </g>
+  <g transform="rotate(82 393.4 127.1) scale(.60566)">
+    <use width="100%" height="100%" fill="#fff" transform="rotate(-82 668.6 -327.7) scale(45.4)" xlink:href="#b"/>
+    <use width="100%" height="100%" fill="#cc142b" transform="rotate(-82 668.6 -327.7) scale(30)" xlink:href="#b"/>
+  </g>
+  <g transform="translate(-148.7 134.5) scale(.60566)">
+    <use width="100%" height="100%" fill="#fff" transform="matrix(50.4 0 0 50.4 900 480)" xlink:href="#b"/>
+    <use width="100%" height="100%" fill="#cc142b" transform="matrix(35 0 0 35 900 480)" xlink:href="#b"/>
+  </g>
+  <path stroke="#fff" stroke-width="60" d="M0 0l600 300M0 300L600 0" clip-path="url(#c)" transform="scale(.52004 .78924)"/>
+  <path stroke="#cc142b" stroke-width="40" d="M0 0l600 300M0 300L600 0" clip-path="url(#d)" transform="scale(.52004 .78924)"/>
+  <path fill="#fff" d="M125.7 0v88H-.1v60.7h125.8v88h60.6v-88h125.8V88.1H186.4V0h-60.7z" clip-path="url(#c)" color="#000" font-family="sans-serif" font-weight="400" overflow="visible" style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal"/>
+  <path fill="#cc142b" d="M137.8 0v100.2H0v36.4h138v100.2h36.3V136.6h137.9v-36.4h-138V0h-36.4z" color="#000" font-family="sans-serif" font-weight="400" overflow="visible" style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/om.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/om.svg
new file mode 100644
index 0000000..055d1e6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/om.svg
@@ -0,0 +1,115 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-om" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)">
+    <path fill="#ef2d29" fill-rule="evenodd" d="M-23.3-21.6h554.7v553H-23.3z"/>
+    <path fill="#009025" fill-rule="evenodd" d="M164.6 341.3H541V549H164.6z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M164.6-19.4H541v190H164.6z"/>
+    <g stroke="#ef2d28">
+      <g fill="#fff" fill-rule="evenodd" transform="matrix(.19516 0 0 .17447 109.2 -5.3)">
+        <rect width="138.2" height="85" x="17.7" y="467.7" stroke-width="1.4" rx="11.5" ry="12.1"/>
+        <rect width="131.1" height="78" x="21.3" y="471.3" stroke-width="1pt" rx="10.9" ry="11.1"/>
+        <path stroke-width="1pt" d="M65 396l9.7.5.4 5.8 8 5.3 6.2-6.7 7.5 5.3-7 5.8 1.7 8 8.8-.5V430l-7-.4-3.6 6.6 8 7.5-6.2 6.2-6.7-6.6-9.7 2.6.5 9.7-10.6 1-1.4-9.4-8.8-4.8-4.9 6.6-7.5-4.9 4.4-7.5-5.3-4.8H34l-.4-13.7 7.5.9 5.3-8-6.2-6.2 8-7 5.7 5.7 9.7-1.8L65 396z" transform="matrix(.68108 0 0 .5852 38 260.7)"/>
+        <ellipse cx="68.9" cy="426.8" stroke-width="1pt" rx="11.1" ry="9.9" transform="matrix(.65819 0 0 .70224 38.8 209.6)"/>
+        <path stroke-width="1pt" d="M39 474.8l-10.7 10.6m17.8-10.6l-10.7 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6L78 485.4m17.7-10.6L85 485.4m17.8-10.6L92 485.4m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m-17.7-10.6L78 485.4m46-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m0-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.7 10.6M85 474.8l10.6 10.6m-17.8-10.6l10.7 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6M85 474.8l10.6 10.6m-46-10.6l10.5 10.6m-17.7-10.6l10.7 10.6m-17.8-10.6L46 485.4m-17.8-10.6L39 485.4m0 49.6l-10.6 10.7M46 535l-10.7 10.7M53.2 535l-10.7 10.7M60.2 535l-10.6 10.7M67.3 535l-10.6 10.7M74.4 535l-10.6 10.7M81.5 535L71 545.7M88.6 535L78 545.7M95.7 535L85 545.7m17.7-10.7L92 545.7m18-10.7l-10.7 10.7M117 535l-10.6 10.7M88.6 535L78 545.7m46-10.7l-10.6 10.7m17.7-10.7l-10.6 10.7m17.7-10.7l-10.6 10.7m17.7-10.7l-10.6 10.7m0-10.7l10.6 10.7M127.6 535l10.6 10.7M120.5 535l10.6 10.7M113.4 535l10.6 10.7M106.3 535l10.6 10.7M99.2 535l10.7 10.7M92 535l10.7 10.7M85 535l10.6 10.7M78 535l10.6 10.7M70.9 535l10.6 10.7M63.8 535l10.6 10.7M56.7 535l10.6 10.7M85.1 535l10.6 10.7m-46-10.7l10.5 10.7M42.5 535l10.7 10.7M35.4 535l10.7 10.7M28.4 535L39 545.7"/>
+      </g>
+      <g fill="#fff" fill-rule="evenodd" transform="matrix(.19516 0 0 .17447 18.6 -6)">
+        <rect width="138.2" height="85" x="17.7" y="467.7" stroke-width="1.4" rx="11.5" ry="12.1"/>
+        <rect width="131.1" height="78" x="21.3" y="471.3" stroke-width="1pt" rx="10.9" ry="11.1"/>
+        <path stroke-width="1pt" d="M65 396l9.7.5.4 5.8 8 5.3 6.2-6.7 7.5 5.3-7 5.8 1.7 8 8.8-.5V430l-7-.4-3.6 6.6 8 7.5-6.2 6.2-6.7-6.6-9.7 2.6.5 9.7-10.6 1-1.4-9.4-8.8-4.8-4.9 6.6-7.5-4.9 4.4-7.5-5.3-4.8H34l-.4-13.7 7.5.9 5.3-8-6.2-6.2 8-7 5.7 5.7 9.7-1.8L65 396z" transform="matrix(.68108 0 0 .5852 38 260.7)"/>
+        <ellipse cx="68.9" cy="426.8" stroke-width="1pt" rx="11.1" ry="9.9" transform="matrix(.65819 0 0 .70224 38.8 209.6)"/>
+        <path stroke-width="1pt" d="M39 474.8l-10.7 10.6m17.8-10.6l-10.7 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6L78 485.4m17.7-10.6L85 485.4m17.8-10.6L92 485.4m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m-17.7-10.6L78 485.4m46-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m0-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.7 10.6M85 474.8l10.6 10.6m-17.8-10.6l10.7 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6M85 474.8l10.6 10.6m-46-10.6l10.5 10.6m-17.7-10.6l10.7 10.6m-17.8-10.6L46 485.4m-17.8-10.6L39 485.4m0 49.6l-10.6 10.7M46 535l-10.7 10.7M53.2 535l-10.7 10.7M60.2 535l-10.6 10.7M67.3 535l-10.6 10.7M74.4 535l-10.6 10.7M81.5 535L71 545.7M88.6 535L78 545.7M95.7 535L85 545.7m17.7-10.7L92 545.7m18-10.7l-10.7 10.7M117 535l-10.6 10.7M88.6 535L78 545.7m46-10.7l-10.6 10.7m17.7-10.7l-10.6 10.7m17.7-10.7l-10.6 10.7m17.7-10.7l-10.6 10.7m0-10.7l10.6 10.7M127.6 535l10.6 10.7M120.5 535l10.6 10.7M113.4 535l10.6 10.7M106.3 535l10.6 10.7M99.2 535l10.7 10.7M92 535l10.7 10.7M85 535l10.6 10.7M78 535l10.6 10.7M70.9 535l10.6 10.7M63.8 535l10.6 10.7M56.7 535l10.6 10.7M85.1 535l10.6 10.7m-46-10.7l10.5 10.7M42.5 535l10.7 10.7M35.4 535l10.7 10.7M28.4 535L39 545.7"/>
+      </g>
+      <path fill="#fff" fill-rule="evenodd" stroke-width="1pt" d="M538.6 531.5c1.7 166.6 24.8 202 3.5 202s-31.9-92.1-31.9-205.5 14.2-205.5 35.5-205.5-9 31.9-7.1 209z" transform="matrix(-.31598 -.12472 -.1982 .19883 340 68.2)"/>
+      <path fill="#fff" fill-rule="evenodd" stroke-width="1.3" d="M545.7 779.5l-60.3 17.7c56.7 60.3 120.5 85 138.2 74.4 17.7-10.6-31.9-35.4-78-92z" transform="matrix(-.19516 0 0 .17447 142.6 -5.3)"/>
+      <path fill="#fff" fill-rule="evenodd" stroke-width="1.3" d="M547.3 786.9l-51 14.7c56.7 60.3 112.8 77.4 127.3 70 14.6-7.3-30.3-28-76.3-84.7z" transform="matrix(-.1901 0 0 .16776 140.2 -.1)"/>
+      <path fill="none" stroke-width="1.8" d="M353.1 634.2c.2 1.3.8 7.1 1.3 9.4 0 3.2.3 5.6.6 8.1.8 2.2.7 4.2 3.1 5a9.9 9.9 0 005 4.4 27.7 27.7 0 006.3 3.8 11.6 11.6 0 007.5.6c2.2-1.5 3.8-3.1 5.6-4.4.4-2 .8-4.9 1.3-6.9a32.6 32.6 0 00-1.3 8.2c.2 3 1.3 4.4 2.5 6.8" transform="matrix(-.13744 0 0 .12206 120.8 27.9)"/>
+      <path fill="none" stroke-width="1.8" d="M389.4 681.7l.6-.6c-1.5 1.5-.9.8 2.5-1.3 2.4-1.2 5-1.8 8.1-2.4h8.8c3.4 0 5.7.5 8.1 1.2 1.8 1.8 4.4 2.8 6.3 4.4a11 11 0 013.7 5c1.7 1.7 2.8 4.3 4.4 5.6.7 2.9 2.1 2.8 3.1 5-3 .2-5.3.6-6.9 2.5-2.6 1.3 2.2-1.3 3.2-2.5 2-.6 2.5-1.2 5.6-1.2 2.8-1 4.6.7 7.5 1.2 1.7 1 2.2 1.3 4.4 1.3" transform="matrix(-.13744 0 0 .12206 122.6 27.2)"/>
+      <path fill="none" stroke-width="1.8" d="M438.1 724.9c1.3 0 7.1 1.1 9.4 0 2.6-.7 4-2 5.6-4.4.8-1.7 0 3 0 5 .3 3.7 1.4 3.7 3.2 6.2 1.8 1.2 3.7 2.8 5.6 3.8a18 18 0 005.6 3.1c2 1 4.1 1.8 5.6 3.1 2.1 1.5 2 3.3 3.2 5.7-.3 3-.8 4.8-2.5 6.2-.8 2.1-2.4 4.2-3.8 5.6-1.5 3-3.3 4.3.6 5 2.2 1 3.4.2 5.7 0" transform="matrix(-.13744 0 0 .12206 124.7 25.8)"/>
+      <path fill="none" stroke-width="1.8" d="M480.6 771.7c1.6-.4 7-2.2 9.4-3.1h8.8c3.3.3 4 1.3 6.8 2.5 1.9 1.9 3.1 3.2 5.7 4.4 1.3 1.7 4 4.7 5 6.9a25.5 25.5 0 011.2 8c0 3.7-1 4.4-1.2 7.6a19.3 19.3 0 01-3.8 7.5c-.3.8-.5 1-1.2 1.2" transform="matrix(-.13744 0 0 .12206 125 25.4)"/>
+      <path fill="none" stroke-width="2.4" d="M538.1 818c.4 0 1.2 2 2.5 3.7 2.9 3 3.2 3.2 7.5 3.2 4-.2 3.5-1.6 6.3-2.5 1.3-2 2.9-3.6 4.4-6.3 1-1.6 1.9-4.1 3-5.6 1.2-1.9 2.6-3.3 3.8-5 1.2-.5 1.6-1 3.2-1.3-3.6.6-4 1.9-6.3 3.8a58.9 58.9 0 00-3.1 5.6c-.4 2.7-1.2 4.8-1.3 8.1 0 3.5 0 5.9 1.3 8.8 1.5 1.5 2.5 3.1 4.4 4.4a36.7 36.7 0 014.3 5l5.7 3.7c1.8 1.1 3.9 2.2 6.8 2.5 3.7-.3 4.8-1.3 7.5-2.5 2.4-1.7 4.2-2.8 6.3-4.4a21 21 0 004.4-5c3.3-.8 5.5-.5 7.5 1.3a16.5 16.5 0 014.3 4.4c1 .5 2.8 2 3.8 2.5" transform="matrix(-.09758 0 0 .09635 107.4 46)"/>
+      <path fill="none" stroke-width="1.9" d="M503.8 836.1c-.8.3-3.8 2.4-5 3.1-.8 2.7-2.1 4.1-2.5 7-.7 2.6-.7 5.6-.7 8.7.7 3.2 2 5.5 3.2 8 2 1.4 3 2.4 5.6 3.8 2.5.4 5 .7 8.1.7 2 .6 5.6.9 7.5 0 2.8-.4 4.9-1.5 6.9-2.5 2.3-1.3 3.7-2.6 6.2-3.8 1.3-1.8 3.2-3.5 5-5.6 1.6-2.1 2.7-3.3 3.8-5.6-1 2.6-2.3 5-3.1 7.5-1.5 2.6-2.3 3.6-2.5 6.8-1 2.6-.7 5.8-.7 8.8.3 2 .4 5.8 1.3 7.5v1.9" transform="matrix(-.12132 0 0 .12024 109.3 26.8)"/>
+      <path fill="none" stroke-width="1.3" d="M541.3 799.2v.7c0-1.7 0-.9-.7 2.5-1.1 1.4-4 1.8-6.2 1.2-2-1.7-2-3-5.6-3.7-3.6.2-5 1.2-7 2.5a9.5 9.5 0 00-5 4.3c-.7 2.1-1.1 3.6 1.3 4.4a15.2 15.2 0 007 2.5c2.8 0 4.9-.3 6.2 1.3 2 2 1.8 3.2 1.8 6.8.7 1.1.8 4.4 1.3 5.7a10.6 10.6 0 005.6 1.2c.7-2 1.4-5.4 1.9-7.5.5-2.2.6-5.4 1.9-6.9a16.6 16.6 0 014.3-4.4 8 8 0 013.8-2.4c-2.5 1.2-2.8 2.6-3.1 5.6 2.1 1 2.7 1.8 6.2 1.9 3.5-.3 4.3-1.2 5.6-3.2.3 3.2 1.3 4.2 2 7 1.2 1.8 1.7 3.7 3 6.2-.5 3-1.7 3.1-1.8 6.8-.8 2.5-.8 4.8-2.5 6.3-.8 1-1.4 1.1-3.2 1.2 3.6 0 5.8-.4 8.2-1.8 1.8-1.2 3.2-2.6 5-3.8a23.9 23.9 0 017.5-3.8c2.9 0 5-.3 6.2 1.3 1.8 1.3 3 3.5 3.8 6.3.5 3.2.8 5.4-.7 7.5-1 2.4-1.3 3.3 0 6.2 1.5 2 3.6 2.3 7 3.1 2.3-.1 4.6-.6 6.2-1.2" transform="matrix(-.19516 0 0 .17447 142.6 -5.3)"/>
+      <g fill-rule="evenodd" stroke-width="1pt" transform="matrix(-.19516 0 0 .17447 142.6 -5.3)">
+        <path fill="#fff" d="M531.5 359.6c0-165.2 8-299.4 17.7-299.4 9.8 0 17.7 134.2 17.7 299.4h-35.4z" transform="matrix(1.4216 -.73423 .46161 .89375 -716.8 541)"/>
+        <path fill="#fff" d="M531.5 359.6c0-165.2 8-299.4 17.7-299.4 9.8 0 17.7 134.2 17.7 299.4" transform="matrix(1.1373 -.58739 .44532 .86221 -554.8 471.8)"/>
+        <path fill="#fff" d="M563.4 301.2c.2 18.9 0 40.2 0 60.2H535c0-20-.2-41.3 0-60.2h28.4z" transform="matrix(1.4216 -.73423 .45889 .88849 -716.7 541.4)"/>
+        <path fill="#fff" d="M559.8 304.7c.2 19 0 33.1 0 53.2h-21.2c0-20-.2-34.3 0-53.2h21.2z" transform="matrix(1.4216 -.73423 .45889 .88849 -716.7 541.4)"/>
+        <path fill="#fff" d="M542.1 311.8h14.2v39h-14.2zm0 0l14.2 39m-14.2 0l14.2-39m-14.2-198.4h14.2" transform="matrix(1.4216 -.73423 .45889 .88849 -716.7 541.4)"/>
+        <circle cx="545.7" cy="92.1" r="3.5" fill="#ef0000" transform="matrix(1.6046 .45375 -.36215 1.5787 -734.9 -170.8)"/>
+      </g>
+      <path fill="#fff" fill-rule="evenodd" stroke-width="1pt" d="M538.6 531.5c1.7 166.6 24.8 202 3.5 202s-31.9-92.1-31.9-205.5 14.2-205.5 35.5-205.5-9 31.9-7.1 209z" transform="matrix(.31598 -.12472 .1982 .19883 -178.7 67.6)"/>
+      <path fill="#fff" fill-rule="evenodd" stroke-width="1.3" d="M545.7 779.5l-60.3 17.7c56.7 60.3 120.5 85 138.2 74.4 17.7-10.6-31.9-35.4-78-92z" transform="matrix(.19516 0 0 .17447 18.6 -6)"/>
+      <path fill="#fff" fill-rule="evenodd" stroke-width="1.3" d="M547.3 786.9l-51 14.7c56.7 60.3 112.8 77.4 127.3 70 14.6-7.3-30.3-28-76.3-84.7z" transform="matrix(.1901 0 0 .16776 21 -.7)"/>
+      <path fill="none" stroke-width="1.8" d="M353.1 634.2c.2 1.3.8 7.1 1.3 9.4 0 3.2.3 5.6.6 8.1.8 2.2.7 4.2 3.1 5a9.9 9.9 0 005 4.4 27.7 27.7 0 006.3 3.8 11.6 11.6 0 007.5.6c2.2-1.5 3.8-3.1 5.6-4.4.4-2 .8-4.9 1.3-6.9a32.6 32.6 0 00-1.3 8.2c.2 3 1.3 4.4 2.5 6.8" transform="matrix(.13744 0 0 .12206 40.5 27.3)"/>
+      <path fill="none" stroke-width="1.8" d="M389.4 681.7l.6-.6c-1.5 1.5-.9.8 2.5-1.3 2.4-1.2 5-1.8 8.1-2.4h8.8c3.4 0 5.7.5 8.1 1.2 1.8 1.8 4.4 2.8 6.3 4.4a11 11 0 013.7 5c1.7 1.7 2.8 4.3 4.4 5.6.7 2.9 2.1 2.8 3.1 5-3 .2-5.3.6-6.9 2.5-2.6 1.3 2.2-1.3 3.2-2.5 2-.6 2.5-1.2 5.6-1.2 2.8-1 4.6.7 7.5 1.2 1.7 1 2.2 1.3 4.4 1.3" transform="matrix(.13744 0 0 .12206 38.7 26.6)"/>
+      <path fill="none" stroke-width="1.8" d="M438.1 724.9c1.3 0 7.1 1.1 9.4 0 2.6-.7 4-2 5.6-4.4.8-1.7 0 3 0 5 .3 3.7 1.4 3.7 3.2 6.2 1.8 1.2 3.7 2.8 5.6 3.8a18 18 0 005.6 3.1c2 1 4.1 1.8 5.6 3.1 2.1 1.5 2 3.3 3.2 5.7-.3 3-.8 4.8-2.5 6.2-.8 2.1-2.4 4.2-3.8 5.6-1.5 3-3.3 4.3.6 5 2.2 1 3.4.2 5.7 0" transform="matrix(.13744 0 0 .12206 36.6 25.1)"/>
+      <path fill="none" stroke-width="1.8" d="M480.6 771.7c1.6-.4 7-2.2 9.4-3.1h8.8c3.3.3 4 1.3 6.8 2.5 1.9 1.9 3.1 3.2 5.7 4.4 1.3 1.7 4 4.7 5 6.9a25.5 25.5 0 011.2 8c0 3.7-1 4.4-1.2 7.6a19.3 19.3 0 01-3.8 7.5c-.3.8-.5 1-1.2 1.2" transform="matrix(.13744 0 0 .12206 36.2 24.8)"/>
+      <path fill="none" stroke-width="2.4" d="M538.1 818c.4 0 1.2 2 2.5 3.7 2.9 3 3.2 3.2 7.5 3.2 4-.2 3.5-1.6 6.3-2.5 1.3-2 2.9-3.6 4.4-6.3 1-1.6 1.9-4.1 3-5.6 1.2-1.9 2.6-3.3 3.8-5 1.2-.5 1.6-1 3.2-1.3-3.6.6-4 1.9-6.3 3.8a58.9 58.9 0 00-3.1 5.6c-.4 2.7-1.2 4.8-1.3 8.1 0 3.5 0 5.9 1.3 8.8 1.5 1.5 2.5 3.1 4.4 4.4a36.7 36.7 0 014.3 5l5.7 3.7c1.8 1.1 3.9 2.2 6.8 2.5 3.7-.3 4.8-1.3 7.5-2.5 2.4-1.7 4.2-2.8 6.3-4.4a21 21 0 004.4-5c3.3-.8 5.5-.5 7.5 1.3a16.5 16.5 0 014.3 4.4c1 .5 2.8 2 3.8 2.5" transform="matrix(.09758 0 0 .09635 53.8 45.4)"/>
+      <path fill="none" stroke-width="1.9" d="M503.8 836.1c-.8.3-3.8 2.4-5 3.1-.8 2.7-2.1 4.1-2.5 7-.7 2.6-.7 5.6-.7 8.7.7 3.2 2 5.5 3.2 8 2 1.4 3 2.4 5.6 3.8 2.5.4 5 .7 8.1.7 2 .6 5.6.9 7.5 0 2.8-.4 4.9-1.5 6.9-2.5 2.3-1.3 3.7-2.6 6.2-3.8 1.3-1.8 3.2-3.5 5-5.6 1.6-2.1 2.7-3.3 3.8-5.6-1 2.6-2.3 5-3.1 7.5-1.5 2.6-2.3 3.6-2.5 6.8-1 2.6-.7 5.8-.7 8.8.3 2 .4 5.8 1.3 7.5v1.9" transform="matrix(.12132 0 0 .12024 52 26.2)"/>
+      <path fill="none" stroke-width="1.3" d="M541.3 799.2v.7c0-1.7 0-.9-.7 2.5-1.1 1.4-4 1.8-6.2 1.2-2-1.7-2-3-5.6-3.7-3.6.2-5 1.2-7 2.5a9.5 9.5 0 00-5 4.3c-.7 2.1-1.1 3.6 1.3 4.4a15.2 15.2 0 007 2.5c2.8 0 4.9-.3 6.2 1.3 2 2 1.8 3.2 1.8 6.8.7 1.1.8 4.4 1.3 5.7a10.6 10.6 0 005.6 1.2c.7-2 1.4-5.4 1.9-7.5.5-2.2.6-5.4 1.9-6.9a16.6 16.6 0 014.3-4.4 8 8 0 013.8-2.4c-2.5 1.2-2.8 2.6-3.1 5.6 2.1 1 2.7 1.8 6.2 1.9 3.5-.3 4.3-1.2 5.6-3.2.3 3.2 1.3 4.2 2 7 1.2 1.8 1.7 3.7 3 6.2-.5 3-1.7 3.1-1.8 6.8-.8 2.5-.8 4.8-2.5 6.3-.8 1-1.4 1.1-3.2 1.2 3.6 0 5.8-.4 8.2-1.8 1.8-1.2 3.2-2.6 5-3.8a23.9 23.9 0 017.5-3.8c2.9 0 5-.3 6.2 1.3 1.8 1.3 3 3.5 3.8 6.3.5 3.2.8 5.4-.7 7.5-1 2.4-1.3 3.3 0 6.2 1.5 2 3.6 2.3 7 3.1 2.3-.1 4.6-.6 6.2-1.2" transform="matrix(.19516 0 0 .17447 18.6 -6)"/>
+      <g fill-rule="evenodd" stroke-width="1pt" transform="matrix(.19516 0 0 .17447 18.6 -6)">
+        <path fill="#fff" d="M531.5 359.6c0-165.2 8-299.4 17.7-299.4 9.8 0 17.7 134.2 17.7 299.4h-35.4z" transform="matrix(1.4216 -.73423 .46161 .89375 -716.8 541)"/>
+        <path fill="#fff" d="M531.5 359.6c0-165.2 8-299.4 17.7-299.4 9.8 0 17.7 134.2 17.7 299.4" transform="matrix(1.1373 -.58739 .44532 .86221 -554.8 471.8)"/>
+        <path fill="#fff" d="M563.4 301.2c.2 18.9 0 40.2 0 60.2H535c0-20-.2-41.3 0-60.2h28.4z" transform="matrix(1.4216 -.73423 .45889 .88849 -716.7 541.4)"/>
+        <path fill="#fff" d="M559.8 304.7c.2 19 0 33.1 0 53.2h-21.2c0-20-.2-34.3 0-53.2h21.2z" transform="matrix(1.4216 -.73423 .45889 .88849 -716.7 541.4)"/>
+        <path fill="#fff" d="M542.1 311.8h14.2v39h-14.2zm0 0l14.2 39m-14.2 0l14.2-39m-14.2-198.4h14.2" transform="matrix(1.4216 -.73423 .45889 .88849 -716.7 541.4)"/>
+        <circle cx="545.7" cy="92.1" r="3.5" fill="#ef0000" transform="matrix(1.6046 .45375 -.36215 1.5787 -734.9 -170.8)"/>
+      </g>
+      <g fill="#fff" fill-rule="evenodd" transform="matrix(.19516 0 0 .17447 18.6 -6)">
+        <path stroke-width="1pt" d="M305.6 396.9c0 124 .5 170.7-5.6 177.1-5.8 6.9-167.1 0-167.1 35.4s132.8 71 172.7 71c53.2 0 79.7-35.5 79.7-106.4V397h-79.7z" transform="matrix(1.3333 0 0 1 -141.7 0)"/>
+        <path stroke-width="1pt" d="M265.8 396.9v17.7a321.1 321.1 0 00106.2 0v-17.7a321.1 321.1 0 01-106.2 0z" transform="matrix(1 0 0 .99999 0 35.4)"/>
+        <path stroke-width="1pt" d="M265.8 396.9v17.7a321.1 321.1 0 00106.2 0v-17.7a321.1 321.1 0 01-106.2 0z" transform="scale(1 .99999)"/>
+        <path stroke-width="1pt" d="M265.8 396.9v17.7a321.1 321.1 0 00106.2 0v-17.7a321.1 321.1 0 01-106.2 0z" transform="matrix(1 0 0 .99999 0 17.7)"/>
+        <path stroke-width="1pt" d="M265.8 396.9v17.7a321.1 321.1 0 00106.2 0v-17.7a321.1 321.1 0 01-106.2 0z" transform="matrix(1 0 0 .99999 0 53.1)"/>
+        <ellipse cx="256.9" cy="210.8" stroke-width="4.5" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 394.3)"/>
+        <ellipse cx="292.3" cy="246.3" stroke-width="4.5" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 391.1)"/>
+        <ellipse cx="327.8" cy="264" stroke-width="4.5" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 390.5)"/>
+        <ellipse cx="363.2" cy="264" stroke-width="4.5" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 390.5)"/>
+        <ellipse cx="398.6" cy="246.3" stroke-width="4.5" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 391.1)"/>
+        <ellipse cx="434.1" cy="210.8" stroke-width="4.5" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 394.3)"/>
+        <path stroke-width="1pt" d="M265.8 485.4L372 581.1m-95.6-95.7l95.7 85M290.5 489l81.6 70.9m-71-71l71 60.3M311.8 489l60.2 49.6M322.4 489l49.6 39m-39-39l39 28.3M343.8 489l28.4 21.2M354.3 489l17.8 14.2M365 489l7 7m-106.2 0L372 591.8m0-106.3L255 591.7m106.3-106.3l-102.7 92.2m88.6-88.6l-81.5 70.8m70.8-70.8l-70.8 60.2M326 489l-60.2 49.6m49.6-49.6l-49.6 39m39-39l-39 28.3M294 489l-28.3 21.2m17.7-21.2l-17.7 14.2m7-14.2l-7 7m106.3 0L255 602.5m117-95.7L255 613m117-95.7L255 623.6m117-95.7L255 634.4m117-95.7L255 644.9m117-95.7L255 655.5m117-95.7L255 666.1m117-95.6L255 676.8m117-95.7l-109.9 99.2M372 591.7l-99.2 88.6m95.6-74.4l-78 70.9M365 620l-63.8 56.7m56.7-39l-32 28.3m-60.1-159.4l102.7 92.1m-102.7-81.5l102.7 92.2M265.8 528l99.2 88.5m-99.2-78l99.2 88.7m-99.2-78l95.6 85m-99.2-77.9l95.7 85M262.2 567l88.6 78m-92.1-71l88.6 78M255 581l85 74.4m-85-63.8l81.5 70.9M255 602.3l71 63.7"/>
+        <path stroke-width="1pt" d="M265.8 396.9v17.7a321.1 321.1 0 00106.2 0v-17.7a321.1 321.1 0 01-106.2 0z" transform="matrix(1 0 0 .99999 0 70.9)"/>
+        <path stroke-width="1pt" d="M255.1 613l63.8 56.7m-63.8-46l56.7 49.5m-56.7-39l49.6 42.6m-49.6-32l35.5 32M255 655.5l28.4 24.8M255 666.1l17.7 14.2"/>
+        <ellipse cx="256.9" cy="210.8" stroke-width="4.5" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 447.5)"/>
+        <ellipse cx="292.3" cy="246.3" stroke-width="4.5" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 444.3)"/>
+        <ellipse cx="327.8" cy="264" stroke-width="4.5" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 443.6)"/>
+        <ellipse cx="363.2" cy="264" stroke-width="4.5" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 443.6)"/>
+        <ellipse cx="398.6" cy="246.3" stroke-width="4.5" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 444.3)"/>
+        <ellipse cx="434.1" cy="210.8" stroke-width="4.5" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 447.5)"/>
+        <path stroke-width="1pt" d="M113.4 652l127.5-74.4m-134.6 70.8l120.5-70.8m-124 63.7l109.8-63.7M99.2 634.3l95.7-56.7M92 627.2l88.6-49.6m-85 39l60.2-35.5M92 609.4l46-28.3m-46 17.7l32-17.7m0 74.4l120.4-70.9M134.7 659L248 591.7m-102.7 70.9l106.3-63.8m-95.7 67.3l88.6-53.1M170 666.1l78-46m-67.4 49.6l67.3-39m-56.7 42.5l53.2-31.9m-39 32l42.5-24.9m-28.3 28.4L248 659m-14 17.8l17.7-10.6"/>
+        <path stroke-width="1pt" d="M265.8 396.9v17.7a321.1 321.1 0 00106.2 0v-17.7a321.1 321.1 0 01-106.2 0z" transform="matrix(0 1 -.99999 0 655.5 308.3)"/>
+        <path stroke-width="1pt" d="M49.6 623.6l42.5-35.4m-42.5 10.6l42.5 42.5"/>
+        <path stroke-width="1pt" d="M260.1 388l5.6 26.6c35.5 5.9 65.3 5.9 100.8 0l11.1-26.6c-35.4 5.9-82 5.9-117.5 0z" transform="matrix(0 .63333 -.8 0 423.8 416.3)"/>
+        <path stroke-width="1pt" d="M258.7 350.8v-17.9c-10.7.2-17.8-10.5-17.8-21.2l-35.4.1c0 10.6-7 21.3-17.7 21.3v17.7h70.9z" transform="matrix(1.4983 0 0 1 -15.6 53.1)"/>
+        <path stroke-width="1.4" d="M296 343.7h45.6V365H296zm3.9-21.3h37.9v21.3h-38zm0-21.2h37.9v21.2h-38zm3.8-28.4H334v28.4h-30.3zm-1.3-24.8h33v24.8h-33z"/>
+        <ellipse cx="237.4" cy="161.2" stroke-width="1pt" rx="42.5" ry="33.7" transform="matrix(1.0333 0 0 1 75.3 63.8)"/>
+        <path stroke-width="1pt" d="M258.7 159.4c0 9.3 10.6 24.8 10.6 24.8-7.7 6.2-20.2 10.7-31.9 10.7s-26.3-2.6-31.9-10.7c0 0 10.6-15.4 10.6-24.7s-10.6-21.3-10.6-21.3a54.6 54.6 0 0132-10.6c11.6 0 24 4.5 31.8 10.6 0 0-10.6 12-10.6 21.3z" transform="matrix(1.0333 0 0 1 75.3 63.8)"/>
+        <path stroke-width="1pt" d="M251.6 159.4c0 9.3 10.6 28.4 10.6 28.4-7.7 6-13 7-24.8 7s-19.2 1.1-24.8-7c0 0 10.6-19 10.6-28.4s-10.6-24.8-10.6-24.8c7.7-6 13-7 24.8-7 11.7 0 17.1 1 24.8 7 0 0-10.6 15.5-10.6 24.8z" transform="matrix(1.0333 0 0 1 75.3 63.8)"/>
+        <circle cx="194.9" cy="166.5" r="10.6" stroke-width="1pt" transform="matrix(1.0333 0 0 1 75.3 60.2)"/>
+        <circle cx="194.9" cy="166.5" r="10.6" stroke-width="1pt" transform="matrix(1.0333 0 0 1 163.2 60.2)"/>
+        <circle cx="194.9" cy="166.5" r="10.6" stroke-width="1pt" transform="matrix(1.0333 0 0 1 119.3 60.2)"/>
+        <circle cx="194.9" cy="166.5" r="10.6" stroke-width="1pt" transform="matrix(1.0333 0 0 1 119.3 24.8)"/>
+        <circle cx="194.9" cy="166.5" r="10.6" stroke-width="1pt" transform="matrix(1.0702 0 0 1 80 226.8)"/>
+        <circle cx="194.9" cy="166.5" r="10.6" stroke-width="1pt" transform="matrix(1.0702 0 0 1 140.6 226.8)"/>
+        <path stroke-width="1pt" d="M212.6 311.8h49.6l-24.8 31.9-24.8-31.9z" transform="matrix(1.0702 0 0 1 64.8 53.1)"/>
+        <circle cx="194.9" cy="166.5" r="10.6" stroke-width="1pt" transform="matrix(1.427 0 0 1.3333 40.7 167.7)"/>
+      </g>
+      <g fill="#fff" fill-rule="evenodd" transform="matrix(.19516 0 0 .17447 18.3 -10.9)">
+        <rect width="81.5" height="21.3" x="262.2" y="524.4" stroke-width="1.3" rx="4.4" ry="3.8"/>
+        <path stroke-width="1.3" d="M368.5 506.7c-9.8 0-17.7 8.3-17.7 18.5v16.1a18 18 0 0017.7 18.5 18 18 0 0017.7-18.5v-16a18 18 0 00-17.7-18.6zm0 7c-5.9 0-10.6 6.7-10.6 14.9v9.3c0 8.2 4.7 14.8 10.6 14.8 5.9 0 10.6-6.6 10.6-14.8v-9.3c0-8.2-4.7-14.8-10.6-14.8zm-92.1-3.5c-6 0-10.6 6.6-10.6 14.9v16.4c0 8.2 4.7 14.8 10.6 14.8 5.9 0 10.6-6.6 10.6-14.8V525c0-8.3-4.7-14.9-10.6-14.9zm0-7a18 18 0 00-17.7 18.5v23.2a18 18 0 0017.7 18.5c9.8 0 17.7-8.3 17.7-18.5v-23.2a18 18 0 00-17.7-18.6z"/>
+        <path stroke-width="1.3" d="M248 517.3c-5.9 0-10.6 6.6-10.6 14.8v3.9c0 8.2 4.7 14.8 10.6 14.8 6 0 10.7-6.6 10.7-14.8v-3.9c0-8.2-4.8-14.8-10.7-14.8zm0-7a18 18 0 00-17.7 18.5v10.6a18 18 0 0017.7 18.5c9.8 0 17.8-8.3 17.8-18.5v-10.6a18 18 0 00-17.8-18.6z"/>
+        <path stroke-width=".9" d="M478.4 237.4c-6 0-10.7 6.6-10.7 14.8v16.5c0 8.1 4.8 14.8 10.7 14.8 5.8 0 10.6-6.6 10.6-14.9v-16.4c0-8.2-4.8-14.8-10.6-14.8zm0-7a18 18 0 00-17.8 18.4V272a18 18 0 0017.7 18.6c9.9 0 17.8-8.3 17.8-18.6v-23.2a18 18 0 00-17.7-18.5z" transform="matrix(1.8 0 0 1.1176 -655.5 242.2)"/>
+        <path stroke-width=".9" d="M478.4 237.4c-6 0-10.7 6.6-10.7 14.8v16.5c0 8.1 4.8 14.8 10.7 14.8 5.8 0 10.6-6.6 10.6-14.9v-16.4c0-8.2-4.8-14.8-10.6-14.8zm0-7a18 18 0 00-17.8 18.4V272a18 18 0 0017.7 18.6c9.9 0 17.8-8.3 17.8-18.6v-23.2a18 18 0 00-17.7-18.5z" transform="matrix(1.8 0 0 1.1176 -425.2 245.7)"/>
+        <rect width="42.5" height="21.3" x="375.6" y="524.4" stroke-width="1.3" rx="2.3" ry="3.8"/>
+        <rect width="24.8" height="28.4" x="336.6" y="520.9" stroke-width="1.3" rx="1.4" ry="5"/>
+        <rect width="24.8" height="28.4" x="219.7" y="520.9" stroke-width="1.3" rx="1.4" ry="5"/>
+        <rect width="49.6" height="35.4" x="141.7" y="517.3" stroke-width="1.3" rx="2.7" ry="6.3"/>
+        <rect width="46.1" height="35.4" x="450" y="520.9" stroke-width="1.3" rx="2.5" ry="6.3"/>
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pa.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pa.svg
new file mode 100644
index 0000000..57965b9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pa.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-pa" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)">
+    <path fill="#fff" d="M-26-25h592.5v596H-26z"/>
+    <path fill="#db0000" d="M255.3-20.4h312.1v275.2h-312z"/>
+    <path fill="#0000ab" d="M-54.5 254.8h309.9V571H-54.5zM179 181.6l-46.5-29.2-46.2 29.5 17.2-48-46.2-29.6 57.1-.4 17.7-47.8 18.1 47.7h57.1l-45.9 30 17.6 47.8z"/>
+    <path fill="#d80000" d="M435.2 449l-46.4-29.2-46.3 29.5 17.2-48-46.2-29.5 57.2-.4 17.7-47.8 18 47.7h57.2l-46 30 17.6 47.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pe.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pe.svg
new file mode 100644
index 0000000..40b87ba
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pe.svg
@@ -0,0 +1,244 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-pe" viewBox="0 0 512 512">
+  <path fill="#d91023" d="M0 0h512v512H0z"/>
+  <path fill="#fff" d="M170.7 0h170.6v512H170.7z"/>
+  <g fill="#00a854" stroke="#d4af37" stroke-width="2" transform="translate(196.3 187.3) scale(.14222)">
+    <g id="g" stroke-width="4.3" transform="matrix(.44722 -.20656 .2582 .35777 89.4 -67.3)">
+      <path d="M480.2 566.9c31.3 33 62.4 68.1 79 111.2 25.1 69.7 18.3 151.5-22.6 214a328.2 328.2 0 01-142 116.4 224.7 224.7 0 01-164.8 3.5c-20-7.4-38.9-18-57.5-28.3-8.4-1.4-13.9 8.6-7 13.3 62.4 40.6 130.9 42.2 202 28.2a273.1 273.1 0 0099-50.4c44.4-33.2 82.7-77.5 99.8-131 26.2-79 9.3-171.3-45.1-234.6a488.2 488.2 0 00-44.7-47.1l4 4.8z"/>
+      <path d="M170.6 983.3c-8.1-.8-12.2 11.8-5.1 13.6 4.2-1 10.7-12 5-13.6zm304.2-430.9c-4.5-5.6-14-2.9-17.7-7.3-4-4.7 2.9-6.5-.3-10-3-3.5-7.7-1.7-12-6.5-4.2-4.7-.4-8.8-4-12-3.7-3.4-4.2.8-8.4-3.8s-1.7-12.7-6.3-18.6c-4.5-5.7-3-12.5 2.5-11.2 3.6.8 5 4.4 10.4 5.7 5.4 1.4 7.6-2.5 11.2 1 3.5 3.4.3 9 4 14s5.9 1.2 8.6 5.5c2.7 4.4.5 6.6 2.2 11.7s8.4 3.1 10.9 10.8c2.5 7.6-1 20.7-1 20.7z"/>
+      <path d="M478.1 564.8c-5.5-26.2-27-57-52.6-79.5 15.3 12 44.9 40.5 54.4 79.3l-1.8.2z"/>
+      <path d="M460.2 524.4c-4.2-2.9-7.3-2.8-10.5-3.2 3-.2 5.9-.5 9.5 1.1l1 2.1zm-15.2-19c-4.5-1.4-7.4-.3-10.6.4 2.8-1.2 5.5-2.4 9.2-2l1.4 1.7zm4.4 3.5c-2.2-5.6-2.2-9.7-2.5-14-.1 3.9-.3 7.8.9 12.6l1.6 1.4zm13.5 18.1c-2.2-5.5-2.2-9.6-2.5-14-.1 4-.3 7.9 1 12.7l1.5 1.3zm92.3 155c-8.3-3.1-17.2 0-23.9-2.4-7.2-2.6 1.1-8.6-4.4-10.4-5.6-1.8-10.2 5.7-17.8 3.2-7.6-2.4-6.3-10-12.5-11.4-6.3-1.3-6.4 7.2-13.9 4.9-7.4-2.3-7.5-12.3-16-15.7-8.2-3.4-9-11.4-1.3-13.4 5.2-1.3 10.3 2 18 .2s7-8.7 13.1-7.1c6.1 1.5 4.4 10.4 11.4 13.2 7 2.8 11.4-4.9 16.7-2 5.3 3 .3 9.5 4.6 13.7 4.4 4.3 7.8-2.3 14.2 4.2 6.4 6.6 11.8 23 11.8 23z"/>
+      <path d="M563.5 691.6c-22.9-25.6-58.6-41.4-101.8-49.7 25 3.4 76.7 15 105.2 50l-3.4-.3z"/>
+      <path d="M524.3 661.5c-6.7-.6-10.8 1.3-15.2 2.8 3.8-2 7.5-4 13-4.4l2.2 1.6zm-27.9-10.9c-6.5 1.2-10 4-14 6.7 3.3-2.9 6.4-5.8 11.5-7.7l2.5 1zm7.2 1c-5.2-4.5-7-8.9-9.1-13.3 1.5 4.3 2.8 8.5 6.4 12.8l2.7.5zm25.3 11c-5.1-4.5-6.8-8.9-9-13.3a35 35 0 006.4 12.8l2.6.5zm25.8 223c7-5.4 9.2-15 14.7-19.4 5.8-4.7 6.2 5.9 10.6 2 4.4-3.7.9-12 6.9-17.2 6-5.2 11.4.2 15.8-4.4 4.3-4.7-2.4-9.7 3.4-14.8 5.8-5.2 13.9.5 21-5 7.1-5.3 14-1.4 11.5 6.4-1.7 5.3-7 7.9-9.7 15.6-2.6 7.8 3.2 11-1.2 15.5-4.5 4.4-10.7-2.2-16.7 2.3s-2 12.7-7.3 15.7c-5.1 3-7.6-5.1-13.4-3.8-5.7 1.4-2.2 8-10.9 10a67.8 67.8 0 01-24.7-2.9z"/>
+      <path d="M542.7 887.4c32.6-5.3 64.3-27.5 93.8-60.3-16 19.9-52.6 58.3-95.8 63.1l2-2.8z"/>
+      <path d="M587.6 870.5c4-5.6 4.7-10.2 5.8-15-.5 4.5-.8 9-3.3 14l-2.5 1zm23.5-18.1c2.5-6.4 2-11 2-16 .6 4.5 1.4 8.8.1 14.3l-2.1 1.6zm-4.6 5.7c6.4-2 10.8-1 15.5-.4-4.2-1.1-8.3-2.4-13.7-1.7l-1.8 2zm-22.2 15.8c6.3-2 10.7-1 15.4-.4-4.2-1.1-8.3-2.4-13.7-1.6l-1.7 2zm2.2-84c5.9-6.6 6.3-16.4 11-21.8 4.9-5.8 7.1 4.5 10.8 0 3.6-4.6-1.3-12.1 3.6-18.4 5-6.2 11.4-2 14.8-7.4 3.4-5.4-4-9 .7-15.2 4.8-6.2 13.7-2.1 19.9-8.9 6-6.6 13.4-4 12.3 4.2-.7 5.4-5.5 9-6.7 17.1-1.3 8.2 5.1 10.2 1.5 15.5-3.6 5.2-10.9-.1-16 5.5-5 5.6.3 12.9-4.3 16.8-4.6 3.9-8.5-3.6-13.9-1.2-5.4 2.5-.8 8.4-9 12s-24.7 1.8-24.7 1.8z"/>
+      <path d="M575 794c31.1-11.5 58.3-39.3 81.5-77.3-12.2 22.6-41.4 67.4-83 80.5l1.5-3.2z"/>
+      <path d="M616.1 768.7c3-6.2 2.8-10.8 3-15.7.4 4.4.9 8.8-.7 14.3l-2.2 1.4zm19.9-22.3c1.3-6.7 0-11.2-.9-16 1.4 4.2 3 8.4 2.7 14l-1.8 2zm-3.5 6.5c6-3.1 10.4-3 15.1-3.3-4.3-.3-8.5-.7-13.7 1l-1.4 2.3zm-19 19.8c5.8-3 10.3-3 15-3.3-4.3-.3-8.5-.7-13.7 1l-1.4 2.3zm-46.2-31.5c-7.9-5.6-18.3-4.8-24.7-9.3-6.9-4.6 3.6-8.6-1.8-12-5.4-3.4-12.4 3-19.8-1.6-7.4-4.7-3.8-12.4-10-15.5-6.3-3-9 5.7-16.2 1.2s-4.5-15-12.5-20.8c-7.9-5.8-6.4-14.4 2.4-14.3 5.8 0 10.4 4.9 19.1 5.2 8.7.2 5-4.4 11-1 6.2 3.2 5 12 11.6 17 6.7 4.8 15.2-4.7 20-.2s-2.4 10 1 15.6 9-.2 14 8.4 5.9 27.3 5.9 27.3z"/>
+      <path d="M573.4 753.5c-17-33.1-50.6-59.7-94.2-80.4 25.7 10.6 77.4 37 97.8 81.6l-3.6-1.2z"/>
+      <path d="M540.3 711c-7-2.4-11.9-1.6-17-1.2 4.6-1 9.2-2.1 15-1l2 2.2zm-26.6-19c-7.3-.7-11.8 1.4-16.7 3 4.2-2.1 8.3-4.3 14.3-4.8l2.4 1.7zm7.4 3c-4.3-6.2-4.8-11.3-6-16.4.4 4.8.7 9.6 3.3 15.1l2.7 1.2zm23.8 18.5c-4.2-6.2-4.8-11.2-5.9-16.4.4 4.9.6 9.6 3.3 15.2l2.6 1.2zm43.1 36.9c4.5-7.7 3-17.5 6.5-23.8 3.7-6.7 8 3 10.6-2.3 2.6-5.2-3.6-11.5 0-18.7s10.7-4.3 13-10.3c2.3-6-5.7-8-2.2-15 3.5-7.1 13-5 17.7-13 4.5-7.7 12.3-6.8 12.8 1.5.4 5.5-3.6 10-3.2 18.2.4 8.2 7 9 4.5 14.8-2.5 5.9-10.7 2.2-14.5 8.8-4 6.5 2.7 12.5-1 17.3-3.7 4.8-9-1.7-13.9 1.9-4.8 3.5 1 8.3-6.4 13.5s-23.9 7-23.9 7z"/>
+      <path d="M577.5 756.8C605.8 739 627 706 642.3 664c-7.6 24.7-27.4 74.7-65.6 96.3l.8-3.4z"/>
+      <path d="M613 723.3c1.6-6.6.5-11.2-.2-16 1.2 4.3 2.5 8.5 2 14.1l-1.9 2zm15-26c0-6.9-2.1-11-4-15.5 2.3 3.9 4.5 7.6 5.4 13.2l-1.4 2.3zm-2.1 7.1c5.2-4.3 9.6-5.1 14.1-6.5-4.3.7-8.5 1.1-13.2 4l-1 2.5zM611 727.8c5.1-4.3 9.6-5 14-6.4-4.2.6-8.4 1-13.2 3.9l-.8 2.5zM557.4 639c3.6-8.6.8-18.5 3.6-25.6 3-7.5 8.7 2 10.7-3.8 2.1-5.9-5.2-11.5-2.4-19.5s10.6-6 12.2-12.6c1.6-6.6-7-7.5-4.3-15.3 2.7-7.9 13-7.1 16.8-16 3.7-8.6 12-8.8 13.6-.3 1 5.7-2.5 11-1 19.5 1.4 8.4 8.4 8.2 6.6 14.7-1.9 6.5-10.8 3.8-14 11.2-3.2 7.3 4.4 12.6 1.2 18.2-3.2 5.5-9.6-.6-14.1 3.8-4.6 4.4 2 8.5-5 15-7 6.4-24 10.7-24 10.7z"/>
+      <path d="M547.3 647.1c27-22.6 44.8-59.9 55.3-105.8-4.6 26.8-18.8 81.6-55.7 109.5l.4-3.7z"/>
+      <path d="M579.8 607.3c.8-7.2-.9-11.7-2.2-16.7 1.8 4.3 3.7 8.5 4 14.4l-1.8 2.3zM592 578c-.9-7.2-3.7-11.1-6.1-15.6 2.7 3.7 5.6 7.3 7.2 13L592 578zm-1.3 7.7c4.8-5.2 9.3-6.7 13.9-8.7-4.4 1.2-8.7 2.3-13.3 5.9l-.6 2.8zm-12.4 26.4c4.8-5.2 9.3-6.7 13.9-8.7-4.4 1.3-8.7 2.4-13.3 6l-.6 2.7z"/>
+      <path d="M533.4 605.3c4.2-6.6-1-18.7 2.2-24 3.6-5.8 7.3 2.8 9.8-1.7 2.6-4.5-.4-10.3 3-16.4 3.6-6.2 8.6-1.7 10.9-6.9 2.2-5.2-2-5.3 1.3-11.4 3.4-6 12-3.9 16.5-10.6 4.4-6.6 11.5-5.5 11.8 1.9.2 4.8-2.9 7.1-2.7 14.4.1 7.2 4.6 9.5 2.2 14.6-2.5 5-9 1.5-12.6 7.1-3.8 5.6.3 7.8-3.2 11.8-3.5 4-6.4 1.5-10.9 4.4-4.5 3-.7 11.3-7.6 15.6s-20.7 1.2-20.7 1.2z"/>
+      <path d="M522.1 611.2c24.3-10.6 48.6-42.4 63.7-78.7-7.5 21.4-27.5 63.7-63 81l-.7-2.3z"/>
+      <path d="M556.9 582.6c1.7-5.8.8-9.8.3-14 1 3.8 2 7.5 1.5 12.5l-1.8 1.5zm14.4-22.2c.2-6-1.6-9.7-3.2-13.8 1.9 3.5 4 6.9 4.6 11.8l-1.4 2zm-2 6.2c4.8-3.6 8.9-4.1 13-5.1-3.9.4-7.8.6-12.2 2.8l-.9 2.3zm-14.2 20c4.8-3.6 8.9-4.2 13-5.2-3.8.4-7.7.6-12.2 2.9l-.8 2.2zm-173.3 425.7c3.6-9 1-19.7 3.7-27.1 2.9-7.9 8.4 2.5 10.4-3.6s-5-12.5-2.2-20.9c2.8-8.4 10.3-5.8 12-12.8 1.5-7-6.8-8.3-4.1-16.5 2.6-8.3 12.5-7 16.3-16.2 3.7-9 11.7-8.8 13.2.4 1 6-2.4 11.5-1 20.6 1.3 9.1 8.1 9.3 6.3 16-1.8 6.9-10.5 3.6-13.7 11.3-3.1 7.6 4.3 13.7 1.1 19.4-3.2 5.7-9.3-1-13.8 3.4-4.4 4.4 2 9.2-4.9 15.7-6.8 6.5-23.3 10.3-23.3 10.3z"/>
+      <path d="M375.2 1016.4c26.5-22.7 40.7-57.4 51.2-105.9-4.7 28.3-15.5 82-51.6 109.8l.4-3.9z"/>
+      <path d="M403.8 979.7c.8-7.6-.8-12.6-2-18 1.6 4.8 3.5 9.4 3.6 15.7l-1.6 2.3zm12-30.5c-.7-7.7-3.4-12-5.8-17 2.7 4.2 5.5 8.1 7 14.3l-1.1 2.7zm-1.2 8.1c4.7-5.3 9.1-6.6 13.5-8.6-4.2 1.1-8.5 2-13 5.7l-.5 3zM402.4 985c4.7-5.3 9.1-6.7 13.5-8.6-4.2 1.1-8.4 2-12.9 5.6l-.6 3zm158.7-152.7c-7.2-7.5-19.3-10.1-25.2-16-6.3-6.3 7-6.5 2-11.2-5-4.7-15.2-1.3-22-7.7-7-6.5-.4-12.1-6.5-16.8-6-4.7-12 2.2-18.7-4.1-6.8-6.3-.2-14.6-7.4-22.3-7-7.6-2.6-14.7 7.5-11.8 6.6 1.9 10.2 7.6 20 10.6 10 3 13.7-3 19.5 1.8 5.9 4.8-2 11.2 3.9 17.6 6 6.4 16 2.6 20 8.1 4 5.6-6 8-4 14 2 6.2 10.3 2.7 13.1 11.8 2.9 9.2-2.2 26-2.2 26z"/>
+      <path d="M540.3 797c-7.2-4.3-13-5.1-19-6.5 5.6.7 11.1 1.1 17.6 4l1.4 2.5zm-24-25.2c-8.2-2.9-14-2.5-20.2-2.6 5.6-.5 11-1.2 18 .3l2.1 2.3zm7.4 5c-2.8-6.8-1.8-11.4-1.4-16.3-1.1 4.4-2.5 8.6-1.3 14.3l2.7 2zm21 23.9c-2.7-6.8-1.7-11.4-1.3-16.3-1.1 4.4-2.5 8.7-1.3 14.4l2.6 1.9z"/>
+      <path d="M561.7 840c-8.5-34.5-35.7-63.7-78.5-95.8 25.8 17.5 73.7 52.4 82.2 98l-3.7-2.2z"/>
+      <g id="d">
+        <path d="M527.3 890.5c-3.4-8.8-19.8-13-22.7-20.1-3-7.6 9.1-5.3 6.6-11-2.6-5.7-13.4-4-17-11.8-3.4-7.8 5-12.3 1.3-18.2-3.6-5.9-11.8 0-15.4-7.5-3.5-7.6 6-14.8 2.7-24-3.2-9 4-15.4 11.8-10.6 5.3 3.2 6.2 9.6 13.9 14.4 7.7 4.9 13.7-.6 17 5.4 3.2 6-6.7 11-4 18.5 2.8 7.6 13.6 5.6 15 12 1.2 6.3-9 6.9-9.7 13.4-.7 6.5 8.3 4.5 7 14.3s-6.5 25.2-6.5 25.2z"/>
+        <path d="M520 853.1c-4.7-5.7-13-9-18-11.4a58 58 0 0117.8 8.5l.2 3zm-10-24.9c.4-7.3 3.2-11.8 5.7-16.7-2.9 4.2-5.9 8.3-7.2 14.3l1.6 2.4zm12.5 26c.3-7.3-.1-9.7 2.3-14.6-2.9 4.2-2.6 6.3-3.9 12.3l1.6 2.4z"/>
+        <path d="M525.2 906.6c6.8-36.5-12.8-78.4-38.3-118.7 16.1 22.4 52.2 73.9 40.7 121.6l-2.4-2.9z"/>
+        <path d="M505.4 821.9c-6.2-4.4-11.7-5.1-17.2-6.4 5.2.5 10.5.9 16.2 3.6l1 2.7z"/>
+      </g>
+      <path d="M493.6 566.1c-2-7-11.8-8.6-13.4-14.2-1.8-6 5.2-4.7 3.7-9.2-1.5-4.5-6.4-4.9-8.4-11s3-8.2 1-12.8c-2-4.6-4.2-1-6.2-7s3.4-12.3 1.5-19.6c-1.9-7 2.1-12.6 6.6-9.2 3 2.3 3 6.2 7.4 9.7 4.4 3.6 7.9.9 9.8 5.5 1.8 4.7-3.3 8.5-1.8 14.5 1.6 6 4.9 3.7 5.6 8.8.8 5-2.1 6.2-2.5 11.6-.4 5.3 6.4 6.4 5.7 14.4-.7 8-9 18.5-9 18.5z"/>
+      <path d="M491.7 578.8c5.2-26.2-2.3-63.4-17-94.8 9.3 17.3 25.2 56 18.7 95.4l-1.7-.6z"/>
+      <path d="M491.1 534.4c-2.7-4.4-5.5-5.7-8.3-7.5 2.8 1.1 5.5 2 8.2 5.1l.1 2.4zm-6.5-23.8c-3.5-3.2-6.6-3.5-9.8-4.2 3 .1 6 .1 9.3 2l.6 2.2zm2.7 5c.2-6 1.8-9.8 3.2-14-1.6 3.7-3.3 7.1-4.1 12l1 2zm5.3 22.3c.1-6 1.7-9.8 3.1-13.9-1.6 3.6-3.3 7-4 12l.9 1.9zm17 37.3c-.1-6.9-6.8-11.4-7.1-16.9-.3-5.8 14.6-4.3 14.2-8.8-.4-4.4-5.4-4.8-6-10.8s5.4-8 4.4-12.5-4.1-1-4.7-6.9c-.6-5.8 2-12.4 1.8-19.5-.1-7 5.6-12.4 9.4-9 2.6 2.2 1.5 6 5.2 9.5s8.4 1 11.3 4.5c3 3.5 2.3 6.4 2.4 12.3 0 6 4.1 3.6 3.6 8.6-.5 5-3.9 6.1-5.7 11.4-1.8 5.2 5.2 6.2 2.3 14.1-2.8 7.9-31 24-31 24z"/>
+      <path d="M499.2 585.6c24.4-21.6 36.5-63.2 18.3-94a68.8 68.8 0 018.1 50.3 92.1 92.1 0 01-24.8 44.3l-1.6-.6z"/>
+      <path d="M522.3 550.8a31.2 31.2 0 00-8.7-11.5c2.6 1 7.1 6.2 9.2 9.2l-.5 2.3zm4-26.8c-3-3.2-6.1-3.5-9.2-4.2 3 .1 6.2.1 9.2 2v2.2zm1.1.2c1.8-6 4.4-9.6 7-13.7-2.7 3.5-5.4 7-7.4 11.8l.4 1.9zm-4.2 27.5c1.7-5.9 7.8-3.8 12.4-5.2-3.5 0-10.8-1.5-13 3.3l.6 1.9zm-44.3 24.2c-6.5-4.6-4.6-15.7-9.7-19.5-5.5-4-6.7 3.8-10.8.6-4-3.2-2.7-8.6-8.2-13-5.6-4.4-9.5.2-13.5-3.6-4-3.9.5-4.8-4.9-9.2-5.4-4.3-13.9-.8-20.6-5.5-6.7-4.6-13.8-2.3-11.9 3.8 1.3 4 5.2 5.4 7.3 11.4 2 6-2 8.8 2.1 12.5 4.1 3.7 9.9-.5 15.5 3.4s2 6.5 7 9.2 7.1 0 12.7 1.5c5.7 1.5 4.2 9.2 12.7 11.4 8.5 2.1 22.3-3 22.3-3z"/>
+      <path d="M492.6 578.5c-28.8-4-64.1-25.6-91.1-52.7 14.5 16.3 48.3 47.3 91 54.8l.1-2z"/>
+      <path d="M447.2 561.7c-3.5-4.5-3.8-8-4.6-11.6.2 3.3.1 6.7 2.3 10.6l2.3 1zm-22-15.6c-2-5-1.1-8.4-.7-12-1 3.2-2 6.4-1.3 10.7l2 1.4zm4.1 4.7c-6.2-2-10.6-1.6-15.3-1.6 4.2-.5 8.4-1 13.7 0l1.6 1.6zm21 13.8c-6.2-2-10.6-1.7-15.3-1.7 4.2-.4 8.4-1 13.7 0l1.6 1.7zm50.2 41c-8-3.5-6.6-15.4-13-18.4-6.8-3-7.7 5.4-12.7 2.9-5.1-2.6-3.9-8.5-10.8-12-7-3.4-11.3 2.3-16.3-1-5-3.2.3-5-6.5-8.5s-16.5 2-25-1.6c-8.1-3.4-16.4.4-13.7 6.4 1.8 4 6.6 4.5 9.5 10.4 2.9 5.8-1.7 9.6 3.5 12.6s11.7-2.5 18.6.4c7 3 2.9 6.4 9 8.2 6 1.8 8.5-1.5 15.3-1 6.8.4 5.7 8.7 16 9.2 10.2.6 26.1-7.6 26.1-7.6z"/>
+      <path d="M517 605.6c-34.5 1.6-78.1-13.7-112.2-36.4 18.4 14 61 39.5 112.3 38.5l-.1-2.1z"/>
+      <path d="M461.8 597.2c-4.5-3.9-5.1-7.5-6.3-11.1.4 3.5.6 7 3.5 10.6l2.8.5zm-27.3-11.7c-2.8-4.8-2-8.5-1.8-12.4-.9 3.6-2 7.1-.6 11.4l2.4 1zm5.3 4c-7.5-.8-12.8.5-18.4 1.4 5-1.3 10-2.7 16.3-2.8l2 1.4zm26 10c-7.6-.8-12.8.5-18.4 1.5 5-1.4 9.9-2.8 16.3-2.8l2 1.4z"/>
+      <path d="M517.5 629.7c-8.3-3-7.6-15-14.2-17.5-7-2.7-7.3 5.9-12.6 3.7-5.2-2.2-4.3-8.2-11.5-11.2s-11.1 3-16.3 0c-5.2-2.9 0-5-7-8s-16.4 3-25 0c-8.5-3-16.5 1.4-13.4 7.2 2 3.9 7 4.1 10.2 9.7 3.2 5.7-1 9.7 4.3 12.4 5.3 2.7 11.5-3.2 18.6-.8 7.2 2.5 3.3 6.2 9.5 7.6 6.1 1.4 8.4-2 15.2-2 6.8 0 6.3 8.3 16.5 8.2 10.3-.2 25.7-9.3 25.7-9.3z"/>
+      <path d="M534 628.6c-34.4 3.9-79-8.6-114.4-29 19.3 12.7 63.4 35.4 114.6 31.1l-.3-2z"/>
+      <path d="M478.3 623.9c-4.8-3.7-5.6-7.2-7-10.8.6 3.5 1 7 4.1 10.4l3 .4zm-28-10c-3-4.6-2.6-8.4-2.7-12.3-.6 3.7-1.4 7.3.2 11.4l2.5 1zm5.5 3.7c-7.6-.4-12.7 1.3-18.3 2.6 5-1.7 9.8-3.4 16.2-3.9l2 1.3zm26.6 8.3c-7.6-.3-12.7 1.3-18.3 2.6 5-1.6 9.8-3.4 16.2-3.8l2 1.2z"/>
+      <g id="a">
+        <path d="M207.2 997.4c6.6-4.3 15.2-3.2 20.6-6.6 5.7-3.5-3-7 1.5-9.7 4.5-2.5 10.3 3 16.5-.5s3.3-9.9 8.5-12.1c5.2-2.3 7.3 5 13.4 1.5 6-3.3 3.8-12 10.6-16.4 6.6-4.4 5.5-11.4-1.8-11.7-4.9-.1-8.7 3.6-16 3.5-7.2 0-8-6-13.1-3.6-5 2.4-1.5 9.7-7.1 13.4-5.6 3.8-11.2-2-15.2 1.5s1.9 8-1 12.5-7.4-.5-11.6 6.3c-4.3 6.8-5.3 21.9-5.3 21.9z"/>
+        <path d="M202 1007c14.5-26 42.6-46.3 79-61.5-21.5 7.7-64.6 27.1-82 62.4l3-.8z"/>
+        <path d="M230 974c5.7-1.7 9.7-.9 14-.4a31 31 0 00-12.5-1.4l-1.6 1.8zm22.1-14.5c6.1-.2 9.8 1.6 13.9 3.1-3.5-1.8-7-3.8-11.9-4.4l-2 1.3zm-6.1 2.2c3.6-4.9 4.1-8.9 5.1-13-.4 3.8-.6 7.7-2.9 12l-2.2 1zm-20 14.1c3.6-4.8 4.1-8.9 5.1-13-.4 3.9-.6 7.7-2.8 12.1l-2.3 1z"/>
+      </g>
+      <g id="b">
+        <path d="M210.3 1024.5c9 3.6 19.3 0 26.7 2.7 7.8 3-1.9 9.7 4.2 11.8 6.2 2 11.9-6.4 20.2-3.7 8.4 2.8 6.5 11.5 13.4 13 6.9 1.4 7.6-8.2 15.8-5.6 8.2 2.6 7.6 14 17 17.8 9 3.8 9.4 12.9.6 15.1-5.9 1.5-11.5-2.1-20.2 0-8.8 2-8.4 9.7-15.2 8-6.8-1.7-4.2-11.8-12-15-7.6-3.2-13 5.6-18.8 2.3-5.8-3.4.3-10.7-4.3-15.6-4.6-4.8-8.8 2.7-15.7-4.7-6.8-7.4-11.7-26.1-11.7-26.1z"/>
+        <path d="M201.6 1013.7c24 29 63.2 46.9 111.1 56.2-27.9-3.8-85.2-16.8-115-56.5l3.9.3z"/>
+        <path d="M243.7 1047.8c7.5.6 12.2-1.5 17.3-3.3-4.5 2.2-8.8 4.6-15 5.1l-2.3-1.8zm30.6 12.2c7.4-1.3 11.5-4.6 16-7.6-3.7 3.3-7.4 6.7-13.3 8.8l-2.7-1.2zm-8-1c5.5 5.1 7.2 10 9.4 15-1.4-4.8-2.7-9.6-6.5-14.5l-3-.5zm-27.8-12.4c5.5 5 7.2 10 9.4 15-1.4-4.8-2.6-9.6-6.5-14.5l-2.9-.5z"/>
+      </g>
+      <use width="744.1" height="1052.4" transform="translate(44 17.4)" xlink:href="#a"/>
+      <use width="744.1" height="1052.4" transform="translate(59.3 11.2)" xlink:href="#b"/>
+      <g id="e">
+        <path d="M353.5 1034.1c9.8 1 18.8-5.3 26.7-4.7 8.4.6.7 9.8 7.2 10 6.4.3 9.9-9.3 18.7-9 8.8.4 9.2 9.2 16.3 8.7 7-.5 5.3-9.9 14-9.6s11 11.2 21 12.3c9.8 1.1 12.5 9.7 4.5 14.3-5.3 3-11.7 1-19.7 5.4s-5.7 11.7-12.7 12c-7 .1-7.1-10.2-15.5-11.2-8.3-.9-11.3 9-17.8 7.4-6.5-1.6-2.4-10.3-8.1-13.7-5.8-3.3-8 5-16.5-.2s-18-21.7-18-21.7z"/>
+        <path d="M342.3 1026.2c30.8 21 73.5 27.4 122.6 23.2-28.2 4-87.3 7.3-126.4-22.4l3.8-.8z"/>
+        <path d="M392 1047.2c7.4-1.4 11.5-4.8 16-7.9-3.8 3.4-7.4 6.8-13.2 9l-2.8-1zm33 3.3c6.8-3.3 10-7.6 13.6-11.7-2.8 4.2-5.5 8.4-10.7 12l-3-.3zm-8.1 1.2c6.6 3.4 9.5 7.6 13 11.7-2.7-4.1-5.1-8.4-10-12l-3 .3zm-30.3-4.2c6.7 3.3 9.6 7.6 13 11.7-2.6-4.2-5-8.4-10-12l-3 .3z"/>
+      </g>
+      <path d="M292.7 1024.5c5-5 13.2-6.2 17.3-10.2 4.4-4.3-4.5-5.2-1-8.4s10.2 0 15-4.4c4.8-4.3.5-8.8 4.7-12 4.3-3 8 2.4 12.7-1.8 4.8-4.2.5-10.7 5.6-16 5-5.2 2.1-10.7-4.7-9.2-4.5 1-7 5-13.8 6.6-6.7 1.7-9-3-13 .2-4.1 3.2 1 8.4-3.1 12.7-4.2 4.4-10.8 1-13.7 4.8-2.8 3.9 3.8 6.2 2.3 10.6-1.5 4.4-7 1.3-9 7.9-2.2 6.6.7 19.3.7 19.3z"/>
+      <path d="M292 1030.3c6.7-25 25.7-44.8 55.3-65.9-17.7 11.3-50.8 34.2-57.7 67.3l2.5-1.4z"/>
+      <path d="M307.6 1000c5-2.9 8.9-3.1 13-3.8-3.8.2-7.6.2-12 1.9l-1 1.8zm16.8-17.3c5.5-1.6 9.4-1 13.6-.7-3.7-.7-7.4-1.5-12-.8l-1.6 1.5zm-5.1 3.3c2-4.8 1.5-8.3 1.3-12 .7 3.4 1.5 6.6.5 10.7l-1.8 1.3zm-14.8 16.3c2-4.8 1.5-8.2 1.4-11.9.6 3.3 1.4 6.5.5 10.7l-1.9 1.2zm41 15c4-6.2 12-9.1 15.4-14.1 3.5-5.3-5.7-4.4-2.8-8.4 3-4 10.4-2.1 14.3-7.6 4-5.5-1.2-9.3 2.4-13.3 3.7-4.1 8.6.8 12.5-4.5 4-5.4-1.7-11.2 2.4-17.7 4-6.4 0-11.5-6.6-8.6-4.4 2-6.1 6.6-12.6 9.7-6.4 3-9.8-1.4-13.2 2.8-3.5 4.1 2.8 8.4-.6 13.8-3.3 5.4-10.7 3.2-12.8 7.7-2.1 4.6 5 5.7 4.4 10.5-.6 4.8-6.7 2.7-7.6 10-.8 7.2 4.7 19.7 4.7 19.7z"/>
+      <path d="M346 1023.4c1.6-27.1 16.9-51.5 42.6-79.3-15.7 15.3-44.6 45.6-45 81.3l2.3-2z"/>
+      <path d="M355.6 988.8c4.4-3.8 8.3-4.9 12.3-6.4-3.8 1-7.6 1.7-11.7 4.3l-.6 2.1zm13.5-21.1c5.3-2.8 9.3-3 13.6-3.5-4 0-7.8 0-12.4 1.6l-1.2 1.9zm-4.6 4.3c1.2-5.3-.1-8.8-1-12.5 1.3 3.2 2.8 6.4 2.6 10.9l-1.6 1.6zM353 992c1-5.4-.2-8.9-1-12.6 1.3 3.3 2.7 6.4 2.6 10.9L353 992z"/>
+      <g id="f">
+        <path d="M505.9 948.8c7.7-4.2 11.3-13.2 17.4-16.7 6.6-3.7 5.3 6.8 10.2 3.8 5-3 2.8-11.8 9.5-16 6.7-4 11.3 2.3 16.3-1.6s-.9-10 5.7-14c6.5-4.1 13.6 2.8 21.5-1.4 7.8-4 14 1 10.3 8.3-2.5 5-8.2 6.6-12 13.8-3.8 7.2 1.5 11.4-3.6 15-5.1 3.6-10.2-3.9-16.8-.5-6.6 3.5-4 12.2-9.6 14.3-5.6 2-6.8-6.4-12.7-6-5.9.3-3.5 7.6-12.3 8-8.8.3-24-7-24-7z" transform="translate(9.4 -7.9)"/>
+        <path d="M493.7 948.5c33 .2 67.7-16.3 102-43.7-18.9 17-61 48.6-104.4 46.2l2.4-2.5z" transform="translate(9.4 -7.9)"/>
+        <path d="M540.7 939.4c4.8-4.8 6.1-9.3 8-13.8-1.1 4.3-2.1 8.6-5.4 13.2l-2.6.6zm26-14c3.5-5.8 3.7-10.5 4.5-15.3-.1 4.5 0 8.9-2.2 14.1l-2.3 1.2zm-5.4 5c6.6-1 10.7.8 15.3 2.1-4-1.8-7.8-3.7-13.2-3.9l-2.1 1.7zm-24.4 11.8c6.5-.9 10.7.8 15.3 2.2-4-1.8-7.9-3.7-13.3-4l-2 1.8z" transform="translate(9.4 -7.9)"/>
+      </g>
+      <path d="M583 716.2c3.6-8.6.8-18.5 3.6-25.6 3-7.5 8.7 2 10.7-3.9s-5.2-11.5-2.3-19.4 10.5-6 12.1-12.6c1.6-6.6-7-7.5-4.3-15.4 2.8-7.8 13-7 16.8-15.9 3.7-8.6 12-8.8 13.6-.3 1 5.7-2.5 11-1 19.4 1.4 8.5 8.4 8.3 6.6 14.8-1.9 6.5-10.8 3.8-14 11.2-3.2 7.3 4.4 12.6 1.2 18.2-3.2 5.5-9.6-.6-14.1 3.8-4.6 4.4 2 8.5-5 15-7 6.4-24 10.7-24 10.7z"/>
+      <path d="M573 724.4c27-22.6 44.7-59.9 55.2-105.8-4.6 26.8-18.8 81.6-55.7 109.4l.4-3.6z"/>
+      <path d="M605.4 684.6c.9-7.2-.9-11.7-2.2-16.7 1.8 4.3 3.7 8.5 4 14.4l-1.8 2.3zm12.3-29.2c-.9-7.2-3.7-11.2-6.1-15.6 2.7 3.7 5.6 7.3 7.2 13l-1.1 2.6zm-1.3 7.7c4.8-5.2 9.3-6.7 13.9-8.8-4.4 1.3-8.7 2.4-13.3 6l-.6 2.8zM604 689.5c4.8-5.2 9.3-6.7 13.9-8.7-4.4 1.3-8.7 2.4-13.3 6l-.6 2.7z"/>
+      <path d="M572.3 672c4.4-7.6 3-17.3 6.4-23.6 3.7-6.7 8 3 10.6-2.3 2.7-5.3-3.6-11.6 0-18.8 3.7-7.1 10.8-4.3 13-10.3 2.4-6-5.7-8-2.2-15 3.5-7.1 13-5 17.7-13 4.6-7.6 12.4-6.8 12.9 1.5.4 5.5-3.6 10-3.2 18.2.3 8.2 7 9 4.5 14.8-2.6 6-10.7 2.3-14.6 8.8-3.9 6.5 2.7 12.6-1 17.4-3.7 4.8-9-1.8-13.8 1.8-4.8 3.5.9 8.3-6.4 13.5s-24 7-24 7z"/>
+      <path d="M561.8 678.5c28.2-17.8 49.4-50.8 64.8-92.9C619 610.3 599 660.3 561 682l.8-3.4z"/>
+      <path d="M597.2 645c1.6-6.6.5-11.2-.1-16 1.1 4.3 2.5 8.5 2 14.1l-2 2zm15-26c0-6.9-2-11-3.9-15.5 2.2 3.9 4.5 7.6 5.3 13.2l-1.4 2.3zm-2 7.1c5.1-4.3 9.5-5.1 14-6.5-4.2.7-8.4 1.1-13.2 4l-.9 2.5zm-14.9 23.5c5.2-4.4 9.6-5.2 14.1-6.5-4.2.6-8.5 1-13.2 3.9l-.9 2.6zm-28.6 126.3c-7.8-5.6-18.2-4.8-24.7-9.2-6.8-4.7 3.7-8.6-1.7-12-5.4-3.5-12.5 3-19.9-1.7-7.3-4.7-3.8-12.3-10-15.4-6.3-3.1-8.9 5.7-16.1 1.2-7.3-4.5-4.5-15-12.6-21-7.8-5.7-6.4-14.3 2.4-14.2 5.9 0 10.4 4.9 19.1 5.2 8.8.3 5-4.3 11.1-1s4.9 12 11.5 17c6.7 4.9 15.2-4.7 20-.1 5 4.5-2.3 9.9 1 15.6 3.5 5.7 9-.3 14 8.3 5 8.6 6 27.3 6 27.3z"/>
+      <path d="M572.9 788.2c-17-33.1-50.6-59.6-94.2-80.4 25.7 10.6 77.4 37 97.7 81.6l-3.5-1.2z"/>
+      <path d="M539.7 745.8c-7-2.5-11.8-1.6-17-1.3 4.7-1 9.2-2 15.2-1l1.8 2.3zm-26.5-19.1c-7.4-.6-11.8 1.4-16.8 3 4.3-2 8.4-4.3 14.4-4.8l2.4 1.8zm7.3 3c-4.2-6.2-4.8-11.2-5.9-16.4.4 4.8.6 9.6 3.3 15.1l2.6 1.2zm23.9 18.5c-4.2-6.1-4.8-11.1-6-16.3.5 4.8.7 9.6 3.3 15.1l2.7 1.2zm30.3 95.2c5.8-6.6 6.3-16.4 11-21.9 4.8-5.8 7.1 4.6 10.7 0 3.7-4.6-1.2-12 3.7-18.3 5-6.3 11.3-2 14.8-7.4 3.4-5.4-4-9 .7-15.2 4.8-6.2 13.7-2.2 19.8-9 6-6.5 13.5-4 12.4 4.2-.7 5.5-5.5 9-6.7 17.2-1.3 8.1 5 10.2 1.5 15.4-3.6 5.2-10.9 0-16 5.5s.2 12.9-4.3 16.8c-4.6 4-8.5-3.6-13.9-1.1-5.4 2.4-.8 8.3-9 11.9-8.1 3.5-24.7 1.9-24.7 1.9z"/>
+      <path d="M563.2 847.5c31.1-11.6 58.3-39.4 81.5-77.3-12.2 22.6-41.4 67.4-83 80.5l1.5-3.2z"/>
+      <path d="M604.3 822.2c3-6.2 2.8-10.9 3-15.8.4 4.5.9 8.9-.7 14.3l-2.3 1.5zm19.9-22.3c1.3-6.8 0-11.3-.9-16 1.4 4.2 3 8.3 2.7 14l-1.8 2zm-3.5 6.5c6-3.2 10.4-3 15.1-3.4-4.3-.3-8.5-.7-13.7 1l-1.4 2.4zm-19 19.8c5.8-3.1 10.3-3 15-3.4-4.3-.2-8.5-.7-13.7 1l-1.4 2.4z"/>
+      <use width="744.1" height="1052.4" transform="rotate(15 310 758.4)" xlink:href="#c"/>
+      <use id="c" width="744.1" height="1052.4" transform="rotate(5 93.2 577.1)" xlink:href="#d"/>
+      <use width="744.1" height="1052.4" transform="rotate(-10 275 690.3)" xlink:href="#e"/>
+      <use width="744.1" height="1052.4" transform="rotate(10 225.4 653.9)" xlink:href="#f"/>
+    </g>
+    <use width="1" height="1" transform="matrix(-1 0 0 1 840 .1)" xlink:href="#g"/>
+  </g>
+  <g stroke="#d4af37" stroke-width=".4">
+    <path fill="#007ea8" d="M232.8 220.5l-11.2 14a21 21 0 015.8 14.3 42.9 42.9 0 01-2.2 14v.1H256v-42.1c-6.8 4.2-16.1 5.9-23.2-.3z"/>
+    <path fill="#fff" d="M279.2 220.5c-7 6.2-16.4 4.5-23.2.3v42.1h30.8c-1.2-3.9-2.2-8-2.2-14.1a21 21 0 015.8-14.3l-11.2-14z"/>
+    <path fill="#d91023" d="M225.2 263c-1.7 5.2-3.8 9.7-4.5 17.2-1 11.2 8 17.3 11.7 19 5.7 2.7 11.7 1.8 17.8 2.6 2.8.3 4.4 2.1 5.8 3.6 1.4-1.5 3-3.3 5.8-3.6 6.1-.8 12 .1 17.8-2.6 3.7-1.7 12.6-7.8 11.7-19-.7-7.5-2.8-12-4.5-17.3h-61.6z"/>
+  </g>
+  <g stroke="#d4af37" stroke-width="3">
+    <g fill="#00a854" stroke-width="6.2" transform="matrix(.06756 0 0 .07111 186.3 262)">
+      <g id="j" stroke-width="3.1">
+        <path d="M1074.7-201.4s5.9-20.4 18-29.3c12-9 25.2-5.7 33.2-8.9-5.4 6.8-6 20.3-18 29.3s-33.2 8.9-33.2 8.9zm48.7-36.4c-8.3 2.3-13.5-.3-25 4m17.4 1.8c-8.4 2.2-14.1-1.4-25.4 3.4m16.2 3.4c-8 2.8-11.7-1.2-22.5 4m13.3 3c-8 2.7-9.6-1.8-17.5 4.2m9.3 1.8c-5.2 1.7-7.5-.2-12.2 5m46.4-30.5c-4.5 7.3-3.5 13-10.8 22.8m3.2-17.1c-4.5 7.3-2.8 13.9-10.5 23.3m1.3-16.5c-5 6.8-2.2 11.5-10.3 20.4m1-13.5c-4.9 6.8-1 9.7-9 15.6m.9-9.5c-3 4.5-2 7.3-8.3 10.2"/>
+        <path d="M1130.8-243.6l-24.2 18-31.6 24 32-23.5 24.2-18m-23-73.9s16.7 13 20.5 27.5c3.8 14.5-4 25.5-4 34.1-4.4-7.4-16.7-13-20.7-27.5s4.1-34.1 4.1-34.1zm15.6 58.7c1-8.6 5.3-12.4 5.7-24.6m-8.1 15.3c1-8.5 6.4-12.6 6.2-24.7m-9.2 13.7c.3-8.4 5.4-10.4 4.6-22.4m-7.6 11.3c.4-8.4 5.2-8.3 2.5-17.9m-5.1 8c.3-5.4 3-7-.2-13.2m11.2 54.5c-5.1-7-10.8-8.1-17.1-18.5m14.7 9.3c-5.2-7-12-7.8-17.8-18.4m14.8 7.3c-4.5-7.1-9.9-6.3-15.2-17.1m12.2 6c-4.5-7.1-8.6-4.6-11-14.2m8.4 4.3c-3-4.5-6-4.5-6.4-11.5"/>
+        <path d="M1126.6-249.3l-7.8-29.1-10.6-38.3 10 38.5a5074.4 5074.4 0 007.8 29"/>
+        <g id="h">
+          <path d="M1206.4-261.9s16.8 13 20.6 27.6c3.8 14.5-4 25.5-4 34-4.4-7.4-16.7-13-20.6-27.4-4-14.5 4-34.2 4-34.2zm15.7 58.7c1-8.5 5.4-12.4 5.7-24.6m-8.1 15.4c1-8.6 6.4-12.6 6.2-24.8m-9.2 13.7c.3-8.4 5.4-10.4 4.6-22.4m-7.6 11.3c.4-8.4 5.2-8.2 2.5-17.8m-5.1 8c.4-5.5 3-7-.2-13.2m11.2 54.4c-5.1-6.9-10.8-8-17.1-18.5m14.7 9.3c-5.2-6.9-12-7.7-17.8-18.3m14.8 7.2c-4.5-7-9.9-6.3-15.1-17m12.1 6c-4.5-7.2-8.6-4.7-11-14.3m8.4 4.4c-3-4.5-6-4.6-6.4-11.5"/>
+          <path d="M1224.9-194.1l-7.8-29.2-10.6-38.2 10 38.4a5155 5155 0 007.8 29.1m-53.8 57.3s2.9-21 13.5-31.6c10.7-10.6 24.2-9.2 31.6-13.5-4.3 7.4-3 20.9-13.5 31.6-10.6 10.6-31.6 13.5-31.6 13.5zm43-43c-8 3.4-13.4 1.7-24.2 7.5m17.4-.7c-8 3.4-14.2.7-24.6 7m16.5 1.1c-7.4 3.9-11.7.5-21.7 7.2m13.6 1c-7.5 3.8-9.7-.4-16.7 6.7m9.5.4c-5 2.4-7.5 1-11.3 6.8m41.5-37c-3.4 8-1.7 13.4-7.5 24.1m.7-17.3c-3.4 7.9-.7 14.1-7 24.6m-1.1-16.5c-3.9 7.4-.5 11.7-7.2 21.7m-1-13.6c-3.8 7.5.4 9.7-6.7 16.7m-.5-9.5c-2.4 5-.9 7.5-6.7 11.3"/>
+          <path d="M1219.9-186.6l-21.3 21.4-27.9 28.2s18.9-18.4 28.3-27.8a5074.4 5074.4 0 0021.4-21.3"/>
+        </g>
+        <path d="M1057-278.6s20.6-5.1 34.4.9c13.8 6 17.5 19 24.3 24.3-8.5-1.2-20.5 5-34.4-.9-13.8-5.8-24.2-24.3-24.2-24.3zm55.9 24c-6-6-6.5-11.8-15.9-19.6m7.1 15.8c-6-6-5.9-12.9-15.6-20.2m5 15.7c-6.3-5.5-4.7-10.7-14.7-17.4m4.2 12.9c-6.4-5.5-3.3-9.2-12.5-13m3.1 9c-4-3.7-3.6-6.7-10.4-8m49.7 24.8c-8.6-.2-13 3.5-25.2 2m16.4-5.8c-8.6-.2-13.4 4.6-25.4 2.6m14.9-7.1c-8.4-.9-11 3.9-22.8 1.3m12.2-5.8c-8.3-.9-8.9 3.9-18-.1m8.6-4c-5.4-.4-7.2 2-13-2"/>
+        <path d="M1121.7-251.2L1094-263l-36.6-15.4 36.3 16a5135.7 5135.7 0 0027.7 12M1072.3-384s14.7-15.3 29.5-17.5c14.9-2.3 25 6.7 33.5 7.6-7.8 3.5-14.7 15.2-29.5 17.6-14.9 2.4-33.5-7.7-33.5-7.7zm60-9.4c-8.4-2-11.8-6.6-23.9-8.2m14.5 9.7c-8.4-2-11.9-7.8-24-8.9m12.6 10.7c-8.3-1.3-9.7-6.5-21.7-7m10.4 8.7c-8.3-1.2-7.7-6-17.5-4.3m7.4 6c-5.4-1-6.6-3.8-13.1-1.3m55.3-5.4c-7.4 4.4-9.2 9.9-20.2 15.1m10.8-13.6c-7.4 4.4-9 11-20.2 15.7m8.8-14c-7.5 3.8-7.3 9.2-18.6 13.3m7.3-11.5c-7.5 3.7-5.5 8-15.3 9.5m5.2-7.9c-4.8 2.5-5.2 5.5-12.1 5.1"/>
+        <path d="M1141.6-395l-29.8 4.6c-13.1 2-39.2 6.4-39.2 6.4l39.3-5.8 29.8-4.6M1102-455s20 7 28.2 19.6c8.2 12.6 4.2 25.5 6.9 33.7-6.4-5.7-19.9-7.1-28.2-19.6-8.3-12.6-6.9-33.7-6.9-33.7zm33.4 50.8c-1.7-8.5 1.1-13.5-2.4-25.2m-2.8 17.2c-1.7-8.5 2.1-14-2-25.5m-4.3 15.9c-2.3-8 1.8-11.6-2.7-22.7m-3.7 13c-2.3-8 2.3-9.4-3.2-17.6m-2.4 9.2c-1.3-5.3.6-7.6-4.3-12.5m27.8 48.2c-7-5-12.8-4.4-22.1-12.2m16.9 4.2c-7.1-5-13.8-3.6-22.7-11.9m16.4 2.3c-6.5-5.3-11.4-2.9-19.8-11.5m13.4 1.9c-6.5-5.3-9.5-1.7-15-10m9.4 1.5c-4.3-3.4-7.1-2.4-9.6-9"/>
+        <path d="M1141-396.4l-16.6-25.2-22.1-33 21.6 33.3a5079.8 5079.8 0 0016.5 25.2"/>
+        <g id="i">
+          <path d="M1213.7-401.8s16.7 13 20.6 27.5c3.8 14.5-4.1 25.5-4.1 34.1-4.3-7.4-16.6-13-20.6-27.5s4-34.1 4-34.1zm15.7 58.7c1-8.6 5.3-12.4 5.6-24.6m-8 15.4c1-8.6 6.4-12.7 6.2-24.8m-9.2 13.7c.3-8.4 5.4-10.4 4.5-22.4m-7.5 11.3c.3-8.4 5.1-8.3 2.5-17.9m-5.2 8c.4-5.4 3-7-.2-13.1m11.3 54.4c-5.2-6.9-10.8-8.1-17.2-18.5m14.7 9.3c-5.2-7-11.9-7.7-17.8-18.4m14.9 7.3c-4.5-7.1-10-6.3-15.2-17.1m12.2 6c-4.5-7.1-8.6-4.6-11.1-14.2m8.4 4.3c-3-4.5-6-4.5-6.3-11.5"/>
+          <path d="M1232.1-334.1l-7.8-29.1-10.5-38.3s6.5 25.6 10 38.5a5074.4 5074.4 0 007.7 29m-64.4 39s8.2-19.5 21.3-27c13-7.4 25.7-2.6 34-4.8-6.1 6-8.3 19.4-21.3 27-13 7.6-34 4.9-34 4.9zm52.6-30.3c-8.5 1.2-13.4-1.9-25.2 1m17 3.8c-8.6 1.2-14-3-25.6.4m15.6 5.3c-8.2 1.9-11.4-2.5-22.8 1.4m12.9 4.4c-8.2 1.8-9.3-2.9-18 2.2m9.1 2.9c-5.3 1-7.4-1-12.6 3.6m49.6-25c-5.3 6.8-5 12.6-13.4 21.4m5.2-16.6c-5.4 6.8-4.4 13.5-13.2 22m3.2-16.3c-5.7 6.2-3.5 11.2-12.6 19m2.7-13.2c-5.7 6.1-2.2 9.4-10.9 14.3m2-9.2c-3.5 4-2.8 7-9.4 9.1"/>
+          <path d="M1227.7-330.3l-26 15.1-34.3 20.1 34.5-19.5a5074.4 5074.4 0 0026.1-15.1"/>
+        </g>
+        <path d="M1182.2-442s19.7-8 34.2-4c14.5 4 20 16.3 27.4 20.7-8.6 0-19.6 7.8-34.1 4-14.5-4-27.5-20.7-27.5-20.7zm58.7 15.9c-6.9-5.2-8.1-10.9-18.5-17.2m9.2 14.7c-6.8-5.2-7.6-12-18.2-17.9m7.2 14.9c-7.1-4.5-6.3-10-17-15.2m5.9 12.2c-7-4.5-4.6-8.6-14.2-11.1m4.3 8.4c-4.5-3-4.5-6-11.4-6.4m52.7 17.6c-8.6 1-12.5 5.2-24.6 5.5m15.4-8c-8.6 1-12.7 6.4-24.8 6.1m13.7-9.1c-8.4.3-10.4 5.4-22.4 4.5m11.3-7.5c-8.4.3-8.3 5-17.9 2.4m8-5c-5.4.2-7 2.8-13.1-.4"/>
+        <path d="M1250-424l-29-7.9-38.5-10 38.3 10.7a5074.4 5074.4 0 0029 7.8m-34.7-73.7s19.5 8.2 27 21.3c7.4 13 2.6 25.7 4.8 34-6-6.1-19.4-8.3-27-21.3-7.5-13-4.8-34-4.8-34zm30.3 52.7c-1.2-8.6 2-13.4-.9-25.3m-3.9 17c-1.2-8.6 3-13.9-.3-25.6m-5.4 15.6c-1.8-8.2 2.6-11.4-1.3-22.8m-4.4 12.8c-1.8-8.2 2.8-9.3-2.2-17.8m-2.9 9c-1-5.3 1-7.5-3.6-12.7m24.9 49.8c-6.8-5.4-12.6-5.1-21.4-13.5m16.6 5.2c-6.8-5.4-13.5-4.4-21.9-13.2m16.2 3.2c-6.2-5.7-11.2-3.5-19-12.6m13.3 2.7c-6.2-5.7-9.5-2.3-14.4-11m9.3 2c-4-3.5-7-2.7-9.1-9.4"/>
+        <path d="M1250.3-436.4l-15-26.2-20-34.3 19.5 34.6a5040.8 5040.8 0 0015 26.2"/>
+        <use width="744.1" height="1052.4" transform="translate(-32 -18)" xlink:href="#h"/>
+        <path d="M1142.4-297.9s16.8 13 20.6 27.6c3.8 14.5-4 25.5-4 34-4.4-7.4-16.7-13-20.6-27.4-4-14.5 4-34.2 4-34.2zm15.7 58.7c1-8.5 5.4-12.4 5.7-24.6m-8.1 15.4c1-8.6 6.4-12.6 6.2-24.8m-9.2 13.7c.3-8.4 5.4-10.4 4.6-22.4m-7.6 11.3c.4-8.4 5.2-8.2 2.5-17.8m-5.1 8c.4-5.5 3-7-.2-13.2m11.2 54.4c-5.1-6.9-10.8-8-17.1-18.5m14.7 9.3c-5.2-6.9-12-7.7-17.8-18.3m14.8 7.2c-4.5-7-9.9-6.3-15.1-17m12.1 6c-4.5-7.2-8.6-4.7-11-14.3m8.4 4.4c-3-4.5-6-4.6-6.4-11.5"/>
+        <path d="M1160.9-230.1l-7.8-29.2-10.6-38.2 10 38.4a5155 5155 0 007.8 29.1m-53.8 57.3s2.9-21 13.5-31.6c10.7-10.6 24.2-9.2 31.6-13.5-4.3 7.4-3 20.9-13.5 31.6-10.6 10.6-31.6 13.5-31.6 13.5zm43-43c-8 3.4-13.4 1.7-24.2 7.5m17.4-.7c-8 3.4-14.2.7-24.6 7m16.5 1.1c-7.4 3.9-11.7.5-21.7 7.2m13.6 1c-7.5 3.8-9.7-.4-16.7 6.7m9.5.4c-5 2.4-7.5 1-11.3 6.8m41.5-37c-3.4 8-1.7 13.4-7.5 24.1m.7-17.3c-3.4 7.9-.7 14.1-7 24.6m-1.1-16.5c-3.9 7.4-.5 11.7-7.2 21.7m-1-13.6c-3.8 7.5.4 9.7-6.7 16.7m-.5-9.5c-2.4 5-.9 7.5-6.7 11.3"/>
+        <path d="M1155.9-222.6l-21.3 21.4-27.9 28.2s18.9-18.4 28.3-27.8a5074.4 5074.4 0 0021.4-21.3"/>
+        <use width="744.1" height="1052.4" transform="translate(-62 -40)" xlink:href="#i"/>
+        <use width="744.1" height="1052.4" transform="translate(-31 -20)" xlink:href="#i"/>
+      </g>
+      <use width="744.1" height="1052.4" transform="matrix(-1 0 0 1 2501 0)" xlink:href="#j"/>
+      <path fill="#947245" d="M1250.5-437.1c-8.6 41.6-8.6 79.1-8.6 79.1-.5 14-7.4 23.7-13.8 20-54.9-31.7-60.3-37.5-89.1-59.6 24.3 26.4 31.2 38.2 86.7 70.2 10.7 6.2 12 16.4 11.6 29.5l-1.6 61.7c-.3 9 5.7 50.1-22.6 34.2-65.4-36.6-63.8-33.6-95.1-51.6 38 32.3 24.4 23.4 90.6 61.7 12 6.9 24.5 24.5 24.5 32.8 0 124.3 1.9 101.5-12.8 139.1h60.4c-14.7-37.6-12.8-14.8-12.8-139 0-8.4 12.6-26 24.5-33 66.2-38.2 51.5-29.3 89.6-61.6-31.3 18-28.7 15-94.1 51.6-28.3 15.9-22.3-25.2-22.6-34.2l-1.6-61.7c-.5-13.1.9-23.3 11.6-29.5 55.5-32 62.4-43.8 86.7-70.2-28.8 22-34.2 28-89.1 59.6-6.4 3.7-13.3-6-13.8-20 0 0 0-37.5-8.6-79.1z"/>
+    </g>
+    <g stroke-width="2.7">
+      <path fill="#e3e4e5" stroke-linecap="square" d="M264.4 424.6c-.2 1 1.6 12.4.6 15.7-.5 4.5-.6 5.2-1.7 11.1-1 5.9-2.4 17.3-4.4 24.2a37.3 37.3 0 00-.7 12.4l3.6 19.4s1.6 2 1.8 2.7c.3.8-.1 2 0 2.3 1 1.3 1.1 2.7 2.2 3.8.2.2 1 .1 1.1.4.2.2 1.5.3 1.8.4.8.8.6 1.3 1 2.4h-6.3c.2-2.8-2-3.9-2-3.9-.3-.3-2.9-1-3.2-2.7-.4-2.4 0-2.8 0-2.8s-2.2-9-3-11.4c-.6-1.7-.7-2.6-1-4-.7-4.3-1-6.2-3.2-12.5-.6-1-2-1.4-1.9-2.9l.7-1.4v-1.2l1.1-15.5a1.9 1.9 0 00.3-.7c.6-8.8-4.1-17-7.1-25-.6-1.4-.1-3-.7-4.4-3.2-1-5.4-6.4-6.6-9.8a23 23 0 01-.7-11.6 5 5 0 011-2.5m63.2 36.7a8.3 8.3 0 012.5-.4l1 1.5c1.5 2.8 3.4 15.4 4.4 21.2l1.5 7.9s-.4 2 .3 4.3l.6 2.1c.8 3 1.7 3.8 1.7 3.8.2.8 1.4 6.8 1.7 7.5a75.2 75.2 0 012.6 16.7c-.1 4.7-.1 4.2.3 4.6 1 1 1.5.4 3.8 6.1 0 .5.2-.2.5.2.2.6.7.5 1.1.6.8 0 .6.2 1.2.3a6.3 6.3 0 001.6 0h5.5a5.4 5.4 0 00-4.9-3.4c-.8-.5-1.8-1.2-2.1-2.3l-2.3-3.3c.1-.7-.4-1.7-.6-2.5l-2-23.2s.4-2.3.4-4.7c-.2-12.8.6-25.6 1-38.5.2-1 4-4.7 4-4.7" transform="matrix(.15595 0 0 .15696 193.9 177.6)"/>
+      <path fill="#fff" stroke-linecap="square" d="M356.8 323.8a7.3 7.3 0 00-5.5 2.5 22 22 0 00-3 10.6c-.1.8.2 1.4 0 2.2a83.3 83.3 0 00-1.7 5c-.7 4.2-.9 19.7-2 25.6-1 6-6 14.6-8 17.4a9.7 9.7 0 01-4.5 2.2c-.8.2-7.2-.5-7.2-.5-8.4-.6-21-5.2-29.5-6.4-8.4-1.1-18.7-.6-26.6-1.4 0 0-10-3.7-19.1-1-9 2.6-14.1 7.5-22 19.5 0 0-3.4 4.1-3.4 5.5a17 17 0 005.2 12.8c1.1 1 .8.1.7-.1.4.7.7 2.4 1.2 3a43.7 43.7 0 013.2 5.2c.8 1.5.4 3.3 1.1 4.8 3.9 8.3 2 16.8 2 26.5a2 2 0 01-.1.8c-.1 5.7-5.7 13.3-5.7 19v1.2l-.7 1.6c0 1.6-2.1 1.9-1.5 3 3 6.7 3.4 8.7 4.5 13.2.4 1.7.6 2.6 1.3 4.5 1 2.4 4 12 4 12s-.3.6.3 3.2c.4 1.8 3.3 2.3 3.6 2.6a6 6 0 002.7 4.7c0 .4 2.5.3 2.8.3l3-.2c0-1.3-.4-2-1.3-2.8-.3-.1-1.5-.5-1.7-.7l-.6-1c-1.3-1.1-1.5-2.6-2.6-4-.2-.2.1-1.6-.2-2.4-.3-.9-2.2-2.8-2.2-2.8l-5.2-20.9c-.7-4.7 2.8-7.4 3.2-11.3 0-.8 4.6-12.2 4.8-12.8 3.3-8.9 8.8-22.8 8.7-28.7-.1-6.6-.3 1.3.3-3.7.5-3.8-1.7-13.8-1.5-14.8 12.4 20.7 24.5 28.2 44.5 26.2a9 9 0 012.5 0s.5 1.1.5 1.6c.8 2.9-1 15.3-1.7 21.2l-.8 7.8s-1 2-1 4.2v2.1c-.1 3 .6 4 .6 4l-.5 7.4a60.9 60.9 0 01-2.3 15.4c-.2.6-.7 1.5-1.3 1.6-.6.5-1.5 1.4-1.6 2.2 0 .6 0 1.2.2 1.8 0 .5.5 1.2.8 1.6.4 1.8.2 3.6.2 5.4l.3 1.7c.1.5.6.5 1 .6.7.2.5.6 1 .8l1.6.1h5.4c-.1-2-2-3-3.5-4-.7-.6-.6-.8-.6-1.8l-.1-4c0-.7.3-1 .5-1.5.3-.7.1-1.7.1-2.5 1-6.9 2.2-14 4-20.6 1.5-2 2.1-4.3 2.5-6.7 0 0 1.2-3.2.8-5l5-30a3.9 3.9 0 012.4-2.3c6.1-2.7 12.3-4.6 18-8.6 6.4-4.4 10.2-11.6 14.7-18 1-2 2.1-3.6 3.2-5.4a93 93 0 0010-27.2c1.5-8.5 1-16.9 3.4-27 .5-2.1 2.4-3.8 2.8-6v-.5l1.2-.1 3.8-.5h3.2l1.8.1c.5 0 1.4.6 1.9.6s1-.1 1.3-.6c.7-.8.7-.5.9-1.3 0-.2.3 0 .4 0 .5-.2.9-.8 1.4-1 .4 0 .7-.2.8-.5v-1.6c0-.8 0-.8-.5-1h-.2c-.6-.2 0-1.4 0-2a3.8 3.8 0 00-.1-1.6 2.4 2.4 0 00-.9-1.1l-.9-1c-2.8-2.3-4-4.1-6-6 .3-.4.3-.6.2-1.3-1-2.7-2.7-3.2-5.6-5.4a25.6 25.6 0 00-10.1-3.7h-1.6a6.6 6.6 0 00-.4 0z" transform="matrix(.15595 0 0 .15696 193.9 177.6)"/>
+      <path fill="#d18219" stroke="none" d="M249.5 228.4a1.1 1.1 0 00-.8.4 3.7 3.7 0 00-.5 1.6v.4l-.3.8c0 .6-.1 3-.3 4s-.9 2.3-1.2 2.7l-.7.4-1.1-.1c-1.4-.1-3.3-.8-4.6-1-1.4-.2-3-.1-4.2-.2 0 0-1.5-.6-3-.2-1.4.4-2.2 1.2-3.4 3 0 0-.5.7-.5 1 0 .6.2 1.5.8 2h.1c0-1 .2-1.6.2-1.6a4.6 4.6 0 00.3 1.6l.6 1c.3.7.5 3 .6 3.8l-.5 2.8c-.5 1.4-.7 2.6-.1 1.7.2-.4 1.1-2.2 1.6-3.8.4-1.6.9-2.6.8-3l-.2-2.3a1.3 1.3 0 010-.2l-.1-.3.2-1.1c2.3 4.3 6 4.8 8.4 1.8a12.5 12.5 0 00-.3 3.7v.7l-.4 4.1-.2.5v.7h.1v.7l.4-1v-.7l.9-4.7a.4.4 0 010-.1l.6-.6c.1-.2.6-2 .5-3.3-.1-2.7 3.5-3.5 4.7-2.1l1.1-1a6.3 6.3 0 00.8-1.5v-.3a9.7 9.7 0 00.2-.7 12.2 12.2 0 00.2-1v-1l.1-1a11.8 11.8 0 01.3-1.2 1.1 1.1 0 010-.2l.2-.3a2.9 2.9 0 00.1-.2v-.3h.2-.9a1 1 0 01-.4 0l-.7-.8.3-1.3c.3-.7.6-.2 1.3 0a6 6 0 012 1l.6.1h.2v-.3a1.4 1.4 0 000-.1.4.4 0 000-.1.4.4 0 00-.2-.2l-.1-.1-1-1c.1 0 .1 0 0-.2 0-.4-.3-.5-.8-.8a4 4 0 00-1.6-.6h-.2z"/>
+      <path fill="none" stroke-linecap="square" d="M356.8 323.8a7.3 7.3 0 00-5.5 2.5 22 22 0 00-3 10.6c-.1.8.2 1.4 0 2.2a83.3 83.3 0 00-1.7 5c-.7 4.2-.9 19.7-2 25.6-1 6-6 14.6-8 17.4a9.7 9.7 0 01-4.5 2.2c-.8.2-7.2-.5-7.2-.5-8.4-.6-21-5.2-29.5-6.4-8.4-1.1-18.7-.6-26.6-1.4 0 0-10-3.7-19.1-1-9 2.6-14.1 7.5-22 19.5 0 0-3.4 4.1-3.4 5.5a17 17 0 005.2 12.8c1.1 1 .8.1.7-.1.4.7.7 2.4 1.2 3a43.7 43.7 0 013.2 5.2c.8 1.5.4 3.3 1.1 4.8 3.9 8.3 2 16.8 2 26.5a2 2 0 01-.1.8c-.1 5.7-5.7 13.3-5.7 19v1.2l-.7 1.6c0 1.6-2.1 1.9-1.5 3 3 6.7 3.4 8.7 4.5 13.2.4 1.7.6 2.6 1.3 4.5 1 2.4 4 12 4 12s-.3.6.3 3.2c.4 1.8 3.3 2.3 3.6 2.6a6 6 0 002.7 4.7c0 .4 2.5.3 2.8.3l3-.2c0-1.3-.4-2-1.3-2.8-.3-.1-1.5-.5-1.7-.7l-.6-1c-1.3-1.1-1.5-2.6-2.6-4-.2-.2.1-1.6-.2-2.4-.3-.9-2.2-2.8-2.2-2.8l-5.2-20.9c-.7-4.7 2.8-7.4 3.2-11.3 0-.8 4.6-12.2 4.8-12.8 3.3-8.9 8.8-22.8 8.7-28.7-.1-6.6-.3 1.3.3-3.7.5-3.8-1.7-13.8-1.5-14.8 12.4 20.7 24.5 28.2 44.5 26.2a9 9 0 012.5 0s.5 1.1.5 1.6c.8 2.9-1 15.3-1.7 21.2l-.8 7.8s-1 2-1 4.2v2.1c-.1 3 .6 4 .6 4l-.5 7.4a60.9 60.9 0 01-2.3 15.4c-.2.6-.7 1.5-1.3 1.6-.6.5-1.5 1.4-1.6 2.2 0 .6 0 1.2.2 1.8 0 .5.5 1.2.8 1.6.4 1.8.2 3.6.2 5.4l.3 1.7c.1.5.6.5 1 .6.7.2.5.6 1 .8l1.6.1h5.4c-.1-2-2-3-3.5-4-.7-.6-.6-.8-.6-1.8l-.1-4c0-.7.3-1 .5-1.5.3-.7.1-1.7.1-2.5 1-6.9 2.2-14 4-20.6 1.5-2 2.1-4.3 2.5-6.7 0 0 1.2-3.2.8-5l5-30a3.9 3.9 0 012.4-2.3c6.1-2.7 12.3-4.6 18-8.6 6.4-4.4 10.2-11.6 14.7-18 1-2 2.1-3.6 3.2-5.4a93 93 0 0010-27.2c1.5-8.5 1-16.9 3.4-27 .5-2.1 2.4-3.8 2.8-6v-.5l1.2-.1 3.8-.5h3.2l1.8.1c.5 0 1.4.6 1.9.6s1-.1 1.3-.6c.7-.8.7-.5.9-1.3 0-.2.3 0 .4 0 .5-.2.9-.8 1.4-1 .4 0 .7-.2.8-.5v-1.6c0-.8 0-.8-.5-1h-.2c-.6-.2 0-1.4 0-2a3.8 3.8 0 00-.1-1.6 2.4 2.4 0 00-.9-1.1l-.9-1c-2.8-2.3-4-4.1-6-6 .3-.4.3-.6.2-1.3-1-2.7-2.7-3.2-5.6-5.4a25.6 25.6 0 00-10.1-3.7h-1.6a6.6 6.6 0 00-.4 0z" transform="matrix(.15595 0 0 .15696 193.9 177.6)"/>
+      <path fill="#d39044" stroke-linecap="square" d="M382.3 343.8l-.3 1.2v.2l.3-1.2v-.2z" transform="matrix(.15595 0 0 .15696 193.9 177.6)"/>
+      <path fill="#fff" fill-rule="evenodd" d="M335 432.9c-2.1 8.3-7.2 10-3.5 17 0 0-1.6 0-2.6-2.8a17 17 0 01-.7-6.3 46.8 46.8 0 011.2-8.5" transform="matrix(.15595 0 0 .15696 193.9 177.6)"/>
+      <path fill="#fff" fill-rule="evenodd" d="M338.8 429.4c-2.1 8.4-7.2 10-3.5 17.1 0 0-2 0-3-2.7a19 19 0 01-.8-5.4c0-1.7.4-4.7.8-6a31 31 0 011.2-3.2" transform="matrix(.15595 0 0 .15696 193.9 177.6)"/>
+      <path fill="#fff" fill-rule="evenodd" d="M345.8 418.4c-3 5.5-5.3 10.2-6.6 14.3-1.2 4-2 6.3.4 10.6 0 0-1.6-.8-3.7-4.6a13 13 0 01-.8-6.6 30.6 30.6 0 01.8-4.4 30 30 0 01.8-2.6" transform="matrix(.15595 0 0 .15696 193.9 177.6)"/>
+      <path fill="#fff" fill-rule="evenodd" d="M348.5 414.9c-1.8 2.8-2.4 5.5-3.4 7.7a29 29 0 00-3.1 10.5c0 2-.3 3.7 1.9 7.1 0 0-1-.1-1.7-.5a6.2 6.2 0 01-2.3-2.7 15 15 0 01-1.3-6.5c0-1.5.5-3.7.9-5.2s1.8-4.5 1.8-4.5" transform="matrix(.15595 0 0 .15696 193.9 177.6)"/>
+      <path fill="#d18219" fill-rule="evenodd" stroke-width="1.4" d="M353.3 334.5c0-.2-11.6-3.6-13.3-13.8 2.3-2.2 14.3 5.7 14.5 13" transform="matrix(.15595 0 0 .15696 193.9 177.6)"/>
+      <path fill-opacity=".5" fill-rule="evenodd" stroke-width="1.4" d="M340.4 320.8c.1.2 6.3.2 11.2 10.6-1.1-1.2-6 1.7-11.1-10.2" transform="matrix(.15595 0 0 .15696 193.9 177.6)"/>
+      <path fill-rule="evenodd" stroke-width="1.4" d="M368.7 335.6c.2-.2.4-.5.1-.8-5-3.2-4.8.7-8.4.7 1.7 0 1.7.2 2.3 1 2.3 2.4 4 2.2 6-.2" transform="matrix(.15595 0 0 .15696 193.9 177.6)"/>
+      <path fill="none" stroke-linecap="square" d="M381.2 349.8c-.6.6-2.5-.8-4-1" transform="matrix(.15595 0 0 .15696 193.9 177.6)"/>
+      <path fill-rule="evenodd" stroke-linecap="square" d="M382.3 346s-.5-.5-4.3-1c0 0 2.6-2.7 2.8.3" transform="matrix(.15595 0 0 .15696 193.9 177.6)"/>
+      <path fill="#fff" fill-rule="evenodd" d="M302.7 436.9a33.6 33.6 0 00-1 1.8c-1 2.3-1.4 4.5.5 8 0 0-1.6 0-2.6-2.8-.5-1.3-.8-3.3-.7-6.3l.2-2.4" transform="matrix(.15595 0 0 .15696 193.9 177.6)"/>
+      <path fill="none" d="M230.7 419.1s-1.5-6.2 2.1-13" transform="matrix(.15595 0 0 .15696 193.9 177.6)"/>
+    </g>
+    <g fill="#e7ca00" stroke-width="2.3">
+      <path d="M401.4 879.5c-2-1.6-4-6.3-3.2-8.9-2.7-2.2-9.7 2.2-6.3 8.6 3.3 6.4 8 5.8 9.5.3zm19.1 6c.6-3.6-.7-9.7-7-10.8-6.1-1-8 4.6-6.9 10.3 4.5-3.4 11.7-1.6 14 .5z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M407.4 882c1-4.7 5.9-6 10.6-5.6-3-3.3-6-8.8-10.3-5.6-3.3 2.5-5.6 6.2-.3 11.2z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M404.8 879.3c.5-3.6 2-8.4 5.9-10.4-3.4-3-11.7-2.1-12.3 4.1-.6 6.2 3 7.5 6.4 6.3zm-16 40c5.4 1 12.4-1.7 10.4-13.6-1.9-11.3-10.2-14-10.8-11.4 4.8 1.7 4.1 17.7.5 25.1z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M396.8 918.1c5.3 1 13.7-2.1 9.9-13.8-3.7-11.5-12.2-10-12.8-7.2 4.7 1.9 6.5 13 2.8 21z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M376.7 918.2c3.9 3.4 13.9 4.7 17-6.9 3-10.9.3-14.4-3.6-16.1 2 5.6-5 21.6-13.4 23zm25.5-1c3.2-1.8 10.6-5 5.8-16-4-9-10.1-5.2-11.8-3.7 4.3 1.8 8.1 11.5 6 19.7z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M409.2 914.6c3-2 10.7-7 4.6-17.8-6.1-10.5-14.2-3.5-14.2-.7 3.5 1 9.6 10 9.7 18.5z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M416.7 907.3c2-2.8 7.2-9.8-.7-16.8a6.7 6.7 0 00-12 4.3c3.2-.5 10.6 5.2 12.7 12.5z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M421.2 896.3c.5-3.6 2-12.6-7-14.7-9-2-9.6 8.6-8.1 10.4 2.4-2.2 10.5-1 15 4.3zm-50.3 18.6c3.4 4.2 13.4 7 18.7-4.1 5-10.7 2.7-14.7-1-17.2 1 6.1-9 21.3-17.7 21.3z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M360.9 906.7c3.2 6.6 19.2 14 25.5 2 5.9-11.6 1-22.2-4-26.2 2.4 11.8-12 29.7-21.6 24.2z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M352.4 898.4c7.8 17.2 24.1 14.2 29.6 1.7 5.2-11.8 3.8-18.8-2.2-24.4-4 15.2-12.2 23.7-27.5 22.7z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M342 884c5.9 21.5 27 19 36 6.6 6.4-8.7 4.2-15.1 1-19-7 8.3-19 15.6-37.1 12.4z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M338 871c.6 21.8 26 24.3 37.4 11.7 8-8.8 7.3-15.4 5.2-19.3-8.4 8.4-25.3 18.4-42.6 7.5z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M332.7 850.2c-3.9 28.4 29.1 37.6 43.5 20.7 7.7-9 7.3-15.4 5.2-19.3-14.3 10-39.2 11.2-48.7-1.4z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M329.5 823.5c-9.5 30.7 19.2 41.6 38 38.6 14.9-2.4 23.2-20 21.1-23.8-18.6 13.1-55.4 1.8-59.2-14.7z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M329 799.7c-12.6 29.9 15.4 47.4 38.6 45.7 15.3-1.2 27.8-7.1 27.2-19.6-22.7 8-58.2-5.4-65.8-26.1z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M330 775c-12.7 30.5 14.7 55.6 43.4 56.3 14.7.3 21.4-3.6 27.2-13.3-20.7 3.5-64.9-28-70.6-43z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M329.6 765.3c-11.4 35.9 80.3 80.4 85 33.7-22 11.5-81.8-20.7-85-33.7z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M327.5 755.6c-15.4 19.8 93 78.2 95.5 28.4-9.7 5-29.8.7-49.2-8.1-19.4-8.8-33.2-22.9-46.3-20.3z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M311 751.1c19.6.5 61.3 31 89.3 36 17.8 3.3 32.4-4.2 24.1-35.5-28.5 29.1-83-17.8-111.8-6.8-3-1.4.7 8.4-1.6 6.3z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M314.7 755.5c19-11.8 58.4 10.1 86.2 11.3 17 .7 38.4-18.6 24.4-47-21.9 37.6-82.9 7.5-108.6 27.3-2 4.3-.9 10-2 8.4z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M307.1 756.8c20.2-14.8 61.6-6.2 88-8.4 17.6-1.4 43.8-32 19.9-57.5-14.9 53.9-64.5 27.3-107.3 58.3-2.1 5.5.8 8.9-.6 7.5z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M314.4 752c16.7-15.7 57.6-14.7 82-27.1 16.2-8.3 32.8-43.6 4.3-61.4-3 56.7-55.2 39-87.5 81-.7 6 2.8 8.4 1.2 7.5z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M316.1 744.5c12.4-22.1 50.3-27.6 70.8-46 18.4-16.5 23.4-46.4-7.6-56-2.6 59.3-43.8 46.8-60.7 82.3-3.2 7.8-1.6 20.5-2.5 19.7z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <path d="M325.5 722c12.7-20.2 22.2-13.3 42.4-34 17.3-17.7 22.6-60.3-7.8-61.3 4.5 51.5-15.3 52-29.2 79.7.5 6.1-3.6 16-5.4 15.5z" transform="matrix(.01517 -.19478 .17623 .01677 116.1 336.6)"/>
+      <g stroke-width="3">
+        <path fill-rule="evenodd" d="M310.4 602.7l-10.5 5.6L250 762.1l18.1 40 17.2 2.6L306 803l30.7-138.4 8.7-56.5-21-12.4-14 6.9z" transform="matrix(.01033 -.15961 .1223 .0163 152.5 322.4)"/>
+        <path d="M309.3 597.5l1.3 6.1c9.8-6.8 20.4-.2 23.3 15.6 2.9 15.8-3 39-13.7 56.7a167.2 167.2 0 00-17 56.2c-1.8 18.8 1.9 41.7-2.2 62.6-2.6 10-7.9 9.1-18.2 8.5 4.1 6.8 9.3 10.6 16 10.3 14.4-3.2 24.7-16.1 28.5-44.8a106 106 0 019.8-72 85.9 85.9 0 0026.3-50 54 54 0 00-9.6-39.1c-11.5-17.4-20.8-18-29.6-16.4l-15 6.3z" transform="matrix(.01033 -.15961 .1223 .0163 152.5 322.4)"/>
+      </g>
+      <path fill-rule="evenodd" stroke-width=".5" d="M-325.7 629.7c0-3.1 2-5.6 4.5-5.6s4.5 2.5 4.5 5.6h-9z" transform="matrix(.80795 .2725 .34088 -.78636 295.4 874.6)"/>
+      <path d="M295.5 723c-3.8 7.3-11.3 10.6-16.7 7.5-5.4-3.2-6.7-11.7-3-19 3.8-7.3 11.3-10.6 16.8-7.4 5.4 3.1 6.7 11.7 2.9 19zm-19-82c-2.5-3.5-6.3-5.7-10.3-5a12 12 0 00-6.6 3.9l-.2-1c-1.4-7.7 4.8-16.8 11.4-18 3-.5 5.7.6 8 2.7a15.2 15.2 0 00-1.2 8.8 15.2 15.2 0 001 3.6 18.3 18.3 0 00-2 5z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.6)"/>
+      <path d="M300.3 632.4c-2.9-3.6-6.7-5.8-11-5.2-4 .5-8 3.6-10.7 7.7a18.8 18.8 0 01-1.1-4.1c-1.4-9 6-19.1 13.7-20.2a9.8 9.8 0 015.6.8 15.6 15.6 0 000 4 18.3 18.3 0 005 10.2 18.6 18.6 0 00-1.5 6.8zm-42.3 45l-.4.6a14.5 14.5 0 01-8.5-4.7 13.4 13.4 0 009 4zm6.8-13.6a17 17 0 01-8.1-12.3c-1.4-8.7 5.8-18.6 13.3-19.6a9.1 9.1 0 012.2-.1 18.1 18.1 0 00-3.6 13c.4 2.8 1.5 5.4 3 7.6a20.8 20.8 0 00-6.8 11.3z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.6)"/>
+      <path d="M258.3 689.2c-2 .6-4 .4-5.8-.8-4.4-2.9-5.6-10.5-2.6-17 3-6.3 9-9.2 13.3-6.3a9.3 9.3 0 013.6 5.1 7.5 7.5 0 00-5.4.4c-4.7 2.2-7.1 8.6-5.4 14.3a11 11 0 002.3 4.3z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.6)"/>
+      <path d="M262.4 694c-3-1-5.8-3.5-7.4-7.3-3-7-.9-15.6 4.7-19.2a9.6 9.6 0 019-.9 17.5 17.5 0 001.1 9.7 12.7 12.7 0 006.2 6.7 9.6 9.6 0 00-7.7 1.3 14 14 0 00-5.9 9.6zm-5.1 49.4c-7-4.5-11.4-14-9.7-21.1 1.4-6 6.7-8.4 12.5-6.4a25.9 25.9 0 00-1.4 18.2 19 19 0 008 11.4c-2.7.7-6 0-9.4-2.1z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.6)"/>
+      <path d="M251.7 770a12.3 12.3 0 01-1-1c-5.6-6.5-7-16.9-3.2-23 3.7-5.8 10.7-6 16.3-.7-3 6.5-2.3 15.4 1.6 22.2a11.9 11.9 0 00-10.3.2 14.1 14.1 0 00-3.4 2.2z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.6)"/>
+      <path d="M268 783.8c-5.3-.3-10.6-6.3-12.4-14.5-2-9.1 1.3-17.6 7.3-18.9h.3c2.8 4.7 7.1 7.5 11.7 7.7v.2c-6.6 4.6-9.8 15.3-7 25l.2.5zm-2.8-66.2c-6.6 2-14.4-2.7-17.5-10.7-3-8 0-16.3 6.5-18.4 1.7-.5 3.5-.6 5.3-.3 1.5 4.7 4.3 8.4 7.6 10.5a26 26 0 001 17.5 10.8 10.8 0 01-2.9 1.4z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.6)"/>
+      <path d="M270 727.9c-7-4.5-11.4-14-9.7-21.1 1.6-7.1 8.7-9.3 15.7-4.8a21.5 21.5 0 015.4 5 25 25 0 00-3 23.1c-2.6.4-5.5-.3-8.5-2.2z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.6)"/>
+      <path d="M284.7 750.9c-3.7 7.6-11.2 10.5-16.7 6.3-5.5-4-7-13.7-3.3-21.3 3.7-7.7 11.2-10.5 16.7-6.4s7 13.7 3.3 21.4zm-9.3-47.8a12.2 12.2 0 01-11.2.4c-6.2-3.4-7.6-12.5-3.2-20.4a18 18 0 0113.4-9.4 9.7 9.7 0 007.9 2.6l.5.5c-8 3.4-12.2 13.3-9.4 22a16 16 0 002 4.3z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.6)"/>
+      <path d="M284.2 666c1.2 8-4.1 15.3-10.5 16.2-6.3.9-12.4-4.8-13.7-12.8a17.6 17.6 0 015.8-15c2.7 4.3 7 6.9 11.4 6.3 1.6-.3 3.2-.9 4.6-1.9a23.1 23.1 0 012.4 7.2z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.6)"/>
+      <path d="M287.2 705.7c-5.7 3-12.2-1.4-14.5-9.6-2.3-8.3.5-17.5 6.2-20.4a8 8 0 015.4-.8 25.5 25.5 0 00-1.7 3.6c-3.4 9-1.7 20 3.8 24.3.9.7 1.8 1.2 2.8 1.5a10 10 0 01-2 1.4z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.6)"/>
+      <path d="M304.5 668a14 14 0 01-1 7.8c-5.3-3.2-12.2 0-16 7.3a15 15 0 01-8.3-11.6c-1.2-7.7 5-16.4 11.7-17.4v1c1.2 7.4 7.2 12.9 13.6 12.4v.4z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.6)"/>
+      <path d="M303.5 696.7c-4.3 9.2-12.9 13.3-19.2 9.2-6.3-4.2-8-15.1-3.7-24.4 4.2-9.2 12.9-13.4 19.2-9.2 6.3 4.2 8 15.1 3.7 24.4zm-14.1-41.5a14.8 14.8 0 01-6.4 6.9c-6.3 3.1-14-.3-17-7.8-3.1-7.4 1-18.5 7.2-21.7a9.2 9.2 0 018.2 0l-.1.6c-1.7 9.7 2 19.1 8 22zm31.2-41a14 14 0 01-.9 7.4c-2.5-3.1-5.8-5-9.4-4.5-4.4.6-8.6 4.6-10.7 9.4a15.9 15.9 0 01-4.4-8.8c-1.2-7.8 5.2-16.6 11.9-17.6 6.6-.9 12.3 6.2 13.5 14z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.6)"/>
+      <path d="M322.4 630.6c1 6.6-3.1 12.8-8.5 14.7-2.4-3.5-5.9-5.7-9.6-5.1a9.6 9.6 0 00-2.9.8 15.3 15.3 0 01-3-7c-1.1-7.3 5-15.7 11.3-16.6 6.3-.9 11.7 5.9 12.8 13.2z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.6)"/>
+      <path d="M293.2 654.4a8.5 8.5 0 01-9.4.2c-5.1-3.4-6.5-12.3-3-19.8 3.4-7.4 10.4-10.8 15.5-7.4a12 12 0 014.8 9c-5.1 3.8-9 11.1-8 17.7l.1.3zm-36.7 144.3c-5.8 2-12.1-2.4-14.4-10.5-2.4-8.7.6-18.3 6.6-21.4 5.7-2.9 12.2 1 15 8.5-6.2 4.5-9.3 14.2-7.2 23.3z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.6)"/>
+      <path d="M270.6 803.8c-6.3 2.8-13.2-1.1-15.5-8.8-2.3-7.7 1-16.3 7.3-19.2 5.4-2.5 11.4 0 14.4 5.7a21.6 21.6 0 00-6.2 22.3z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.6)"/>
+      <path d="M267.6 818c-5.7 2.5-12-1-14-7.9a15.9 15.9 0 011.9-13.3c4 3.4 9 4.4 13.8 2.1a14.5 14.5 0 003-2 14.3 14.3 0 011.7 3.8c.8 2.4.9 4.9.5 7.2a20.6 20.6 0 00-4.6 8.5c-.7.6-1.5 1.1-2.3 1.5zm8.5 29.3c-6.4 2.9-13.5-1-15.8-8.8-2.3-7.8 1-16.5 7.3-19.4l1.5-.5a26.6 26.6 0 00.9 9.4c2 7.2 6.9 12 12.3 13a13.3 13.3 0 01-6.2 6.3z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.6)"/>
+      <path d="M285.2 848.4c-6.2 2.8-13-1-15.2-8.4a17.7 17.7 0 010-10c4 3.6 9.2 4.7 14 2.4a16 16 0 006.6-6.2 16.6 16.6 0 011.6 3.6c2.3 7.4-.9 15.8-7 18.6z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.6)"/>
+      <path d="M293.1 863.4c-6.1 2.8-13-1-15.2-8.5a17.8 17.8 0 01-.6-6.2c2.3.4 4.8 0 7.2-1a18 18 0 008.9-11.4c3 1.4 5.6 4.4 6.8 8.4 2.2 7.5-1 15.8-7 18.7zM273 786c-2.8-1.8-5-4.8-6.3-8.6-2.4-8.3 1-17.5 7.8-20.6 6.8-3.2 14.3 1 16.8 9.3 1.9 6.2.4 13-3.5 17.4a11 11 0 00-10.5-.8c-1.7.8-3.1 1.9-4.3 3.3zm46.8-134.5c1 6.6-5.5 17-12.1 18.4-6.7 1.4-11-1.9-14-6.2-3-4.4-4.3-10-2.6-15.2 1.7-5.2 6-10.4 10.4-12.3 4.4-2 7.4-1.2 11 1.7 3.5 3 6.3 7 7.3 13.6z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.6)"/>
+      <path d="M285.2 808.6c-6.2 2.8-13-1-15.2-8.5-2.3-7.5.9-15.8 7-18.7 6.1-2.7 13 1 15.2 8.5 2.2 7.5-1 15.9-7 18.7z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.6)"/>
+      <path d="M283.1 834.2c-6 2.7-12.8-1-15-8.4-2.2-7.3 1-15.6 7-18.4 6-2.8 12.8 1 15 8.4 2.2 7.3-.9 15.6-7 18.4z" transform="matrix(.01517 -.19526 .17623 .01113 117 337.6)"/>
+    </g>
+  </g>
+  <path fill="#e7ca00" stroke="#d4af37" stroke-width=".4" d="M232.8 219.9l-.3.3-11.3 14-.2.3.3.3c3.6 3.4 5.7 9.3 5.7 14 0 6-1 10-2.2 13.9-1.7 5.2-3.8 9.8-4.5 17.5a18 18 0 004.2 13.3 23.5 23.5 0 007.7 6.1c5.9 2.8 12 1.8 18 2.6 2.6.3 4.1 2 5.5 3.5l.3.3.3-.3c1.4-1.5 2.9-3.2 5.5-3.5 6-.8 12.1.2 18-2.6a23.5 23.5 0 007.7-6 18 18 0 004.2-13.4c-.7-7.7-2.8-12.3-4.5-17.5a42.5 42.5 0 01-2.2-14 21 21 0 015.7-14l.3-.2-.2-.3-11.3-14-.3-.3-.3.3a15.8 15.8 0 01-11.4 3.9 23.8 23.8 0 01-11.3-3.7l-.2-.1-.2.1a23.8 23.8 0 01-11.3 3.7c-4 .2-8-1-11.4-4l-.3-.2zm0 1.2a16.7 16.7 0 0011.7 3.8 23 23 0 0011-3.4v41h-29.7a43.2 43.2 0 002-13.7 21 21 0 00-5.7-14.3L233 221zm46.3 0l10.8 13.4a21.5 21.5 0 00-5.7 14.3c0 5.8.9 10 2 13.7h-29.8v-41a24.3 24.3 0 0011 3.4c4.1.2 8.2-.9 11.7-3.8zm-53.6 42.3h61c1.7 5 3.7 9.5 4.3 16.9a17.1 17.1 0 01-4 12.7 22.8 22.8 0 01-7.4 5.8c-5.6 2.7-11.5 1.8-17.6 2.5-2.8.4-4.5 2-5.8 3.5a9.7 9.7 0 00-5.7-3.5c-6.2-.7-12.1.2-17.7-2.5a22.8 22.8 0 01-7.4-5.8 17.1 17.1 0 01-4-12.7c.6-7.4 2.6-11.8 4.3-17z"/>
+  <g fill="#008f4c">
+    <path fill="#00a854" d="M298.6 201.1v.1c-.2.3-.4 1.8-.6 3.4a19.6 19.6 0 01-.3 2.8 40 40 0 01-2-.8c-2.4-1-7.6-1.7-7.9-.9-.2.5.4 3.2 1.3 6.3.2.7 0 1-1.5 1.4a9.1 9.1 0 00-2.4 1c-.7.6-.6.7 1.1 2.3l1.9 1.7-.9.8c-.8.6-.8.6 2.2 3.6 3.4 3.2 5.2 4.2 7.5 4.2h2.1c.8-.2 1.4-.4 3.2-.6 2 .1 4 1.1 4.8 1.6l.5 1.1c-1.4-1.6-4.6-2.2-5.3-2.2-.6 0-1 .1-1.7.4-.7.2-1 .5-1.7 1.5-.5 1.2.5 2.5 1.7 2.7 1.5.2 2.5-.6 2.5-2 0-1-.6-1.8 0-1.8 1.7.1 4.4 1.5 5 3.3.5 2.3.4 2.4-.7.9-1-1.3-2.6-2.7-3-2.8-.4 0-1.3 2-1.3 3 0 .5-.1.6-.6.4-.4-.2-1.3-.4-2-.4l-1.3-.2.3 2c.2 1 .7 2.7 1.2 3.6l.8 1.6-2-.6c-4.1-1.3-3.8-1.3-3.5 1 0 1 .3 2.2.5 2.6.2.6 0 .7-1.4.7-1 0-1.7.1-1.7.2 0 1 3.3 5.3 5 6.6 2 1.5 5.7 3.2 7.2 3.2.4 0 1.8.4 3 .9l2.3.8v2.4c0 2.6-.8 8-1.3 8l-1.6-2.5c-1.6-3.1-1.6-3-2-2.3-.3.4-.4.4-.4-.3a14 14 0 00-3-5.8l-1-.9-.5 1-.5 1.1-2.2-2.4a9.7 9.7 0 00-2.5-2.2c-.2 0-.5 1.2-.6 2.4-.4 3.5-.6 3.7-2 2.4l-1-1-.4 1a32 32 0 001 11 39 39 0 011.3 5.2 17.1 17.1 0 004.4 8.6c.8.8.9 1.1.4 1.1-.3 0-.9.4-1.3.8-1.5 1.7 0 4 2.3 3.5 1.2-.2 1.4-.1 1.8.8.7 1.3.7 3.6.1 4.6-.4.8-2.8 1.8-3.2 1.4-.1-.2-.2-1.5-.1-3v-2.8l-2 1c-5 2.7-9.3 9.5-10.3 14.8-.4 1.8-1.4 2-2.7 4-1.2.7-2.4 1.7-3.6 2.9-2 2-2.6 2.2-5.6 3a157 157 0 01-17.8 2.8c-5.2.5-21.7 3.2-22.7 3.6l-2.3 1a5.4 5.4 0 00-2.2 1.6c-.6.9-.6 1.2-.2 2 1.1 2 3.2 2 7.7-.1a24.4 24.4 0 016.3-2l5.1-1c1.2-.4 4.6-1 7.5-1.5 16.4-2.6 22.4-3.9 29.2-6.2 4.4-1.6 4.4-1.6 8.5-1.2 4.6.4 10.5-1 12.9-3.2.5-.5 1.9-2.1 3-3.7a21 21 0 013.3-3.6c1.5-1 .6-1.4-3.3-1.4H306l1.2-2.5a28 28 0 002.4-7 9.3 9.3 0 00-2.6.5l-2.5.4s0-.7.3-1.3c.3-1 .8-1.4 1.5-1.6.6 0 1.4-.3 1.7-.4a6 6 0 012 .3c1.6.4 1.6.5 1.4 1.7-.2 1.6.6 2.7 2 2.7 1.1 0 2.3-1.2 2.3-2.1 0-1.1-1.5-2.4-2.5-2.2a9 9 0 01-3.1-.5l-2.2-.7 2.1-.5c3.2-.7 4.3-.6 4.7.5.3.6.8 1 1.7 1 2.6.2 3.4-3.4 1-4.1-1-.3-2.9.6-2.9 1.4 0 .2-.7.4-1.5.4a14 14 0 00-4.8.9l3.1-1.6c2-.5 4.4-1.4 5.4-2 3.7-1.6 7.2-5.8 8.6-9.8.8-2.5 2.1-10.4 1.7-10.4l-3 1.1c-2.5 1.2-2.6 1.2-2.6.4 0-1.7.8-6.5 1-7.3.2-.4.2-.7-.2-.7-1.2 0-5.2 2.2-7.8 4.3-2.5 2-2.7 2.1-2.7 1.3 0-.5.3-1.5.8-2.3.7-1.2 1-1.2 2.4-1 1.4.2 1.6.1 2.3-.8.8-1.3.3-2.8-1-3.3-.8-.2-.8-.3.7-1 1.8-1 3.8-3 5.3-5.6l1-1.7-1.5.2h-1.5l.6-1.7c.3-1 .6-2.5.6-3.3 0-1.7-1.5-7.9-2-8.5-.2-.3-1 .1-2 .9l-1.6 1.2-1.5-3.3a46.9 46.9 0 00-1.6-3.4c-.1-.2-.7.2-1.2.7-1.3 1.2-1.4.5-.3-1.8 1-2.1 1.5-2.4 2.6-1.6 1.4.8 3 0 3-1.7.2-1 0-1.4-.8-1.9-.5-.3-1.2-.5-1.5-.4-.4.1-.8-.2-1-1a2.3 2.3 0 00-1.6-1.5c-2-.5-3.6 2.2-2 3.7.6.6.6 1 .2 4-.8 4.7-1 5.1-1.6 3-.6-2.4-.4-9 .5-10.9 1.5-3.3.6-8.6-1.8-11.3-2-2.3-7.6-6.3-8.6-6.2zm-2.8 11c.4 0 1.9 1.3 4.4 4.2 2 2.5 4.5 6.7 6 9.8-.5-.6-.9-.6-2.5-2.9-1.3-1.8-3.5-5.9-5.6-8-1.8-1.9-2.6-3-2.3-3z"/>
+    <path d="M306 255.3c-.4 1.5-.7 1.8 0 3 .5.5 1.2.8 1.8.8 1.1 0 1.7.8 2.7 3.6.1.5.2.5.2-.1 0-.4-.3-1.4-.8-2.3-.5-1-.6-1.6-.4-1.8.8-.5.5-2.5-.5-3.2-1.2-.9-1.6-.6-3 0z"/>
+  </g>
+  <path fill="#9eab05" d="M231 321.1c-1 .7-1.2 1.8-.5 2.4.9 1 4 .1 4.4-1.1.5-1.8-2.2-2.6-4-1.3z"/>
+  <path fill="#75b52b" d="M299.6 204.5c.3 2 2.3 6 3.7 7.8.6.7 1.2 1.2 1.3 1.1.1 0-1-2.5-2.5-5.3-2.1-4-2.7-4.8-2.5-3.6zm-13.5 10.8a22 22 0 006.5 1.8c0-.7-2-1.5-4.3-1.8-1.3-.2-2.3-.2-2.2 0zm2.5 4.9a89 89 0 009.5 4.4c1.2.4 2.8.6 3.5.5 1.2-.1 1-.2-1.5-1a42.4 42.4 0 01-4.7-2c-2.4-1.2-7.5-2.6-6.8-2zm23 10.3a95 95 0 00-1.8 12c-.2 2.7-.1 3.6.4 4.2.5.7.6.4 1-3.3.6-5 1.3-14 1.1-14.1 0 0-.4.5-.6 1.2zm-6.7 3.3c.2 3.2 1.6 6.7 2 5.2.2-.5-.2-2.3-1-4.4l-1.2-3.6.2 2.8zm-4.6.1l1.5 1.9 1 1.1v-1c0-.6-.5-1.3-1.1-1.8-1.3-1-2.1-1.1-1.4-.2zm-5.7 10c0 .1 4.4 3.5 5.9 4.4 1.2.8 1.2.8-.3-1-1.6-1.8-4.1-3.6-5-3.6l-.6.1zm2.2 8.6c1 4.5 1.9 7 2.4 7.3.2.1.5.3.6.2.2-.2-2-6.3-2.6-7.4l-.6-1.1.2 1zm4.7 3.5c0 .6.4 1.9.8 2.7.5 1 .8 1.4.7 1a26.9 26.9 0 01-.5-2.5c-.3-2.1-1-3-1-1.2zm-8.2 3a54 54 0 005.5 11.2c2.1 3.4 2.1 3.4 2.2 2 .1-1.1-.3-2.1-1.8-4.7l-4-6.9c-1-2-2.1-3.7-2.3-3.7-.2 0 0 1 .4 2.1zm25.2.6a60.3 60.3 0 00-6.6 9.2c-.4.8-.5 1.6-.3 2.3.2.9.8.2 4.8-6.2 2.5-4 4.4-7.2 4.2-7.2-.2 0-1.1.9-2.1 2zm-6.4 29.9a1.6 1.6 0 001.4 2.4c1.2 0 2-1.4 1.3-2.6-.5-.9-2.2-.8-2.7.2z"/>
+  <path fill="#d91023" d="M300.1 228.1c-1.5 1.1.1 3.8 1.7 2.9 1-.7 1.2-2.2.3-2.9l-1-.5-1 .5zm10.7-8.6c-1 .2-1.3 1.4-.8 2.5.8 1.5 2.9.9 2.9-.9 0-1.2-1-1.9-2.1-1.7zm2.6 3c0 .4-.1 1 0 1.6 0 .7.3.9 1.3.9 1.4 0 2.2-1 1.6-2.1-.6-1-2.5-1.2-2.9-.4zm-15.2 60c-1.5 1.3 0 3.4 1.8 2.7.8-.3 1.2-1.3.7-2.2-.6-1-1.5-1.2-2.5-.4zm8.3-26.8c-.5.4-.4 1.9.2 2.4 1.2 1.2 3 0 2.6-1.7-.2-.8-.6-1-1.4-1-.7 0-1.3.1-1.4.3zm7.5 0c-.3 1 .4 2.1 1.5 2.1 1 0 1.7-1 1.5-2 0-.8-.4-1-1.4-1.1-1.1-.1-1.4 0-1.6 1zm1 29.5c-.2 1.2.5 2.2 1.5 2.2s1.7-1 1.6-2c-.1-.8-.4-1-1.5-1-1-.2-1.3 0-1.5.8zm-2.4 3.8c-1.5 1.2 0 3.3 1.8 2.6.8-.4 1.2-1.3.7-2.2-.6-1-1.5-1.2-2.5-.4z"/>
+  <path fill="#75b52b" d="M295.8 212.5l1.7 2c1.5 1.7 2.7 3.4 5 6.9a18 18 0 003.6 4.6 64 64 0 00-5-8.4 23.6 23.6 0 00-5.4-5.6c-.2 0-.1.2 0 .5z"/>
+  <path fill="#eac102" fill-opacity=".5" d="M306.1 263.2c0 .3-.4 3-.6 6.2a126.6 126.6 0 01-2.4 20.5l.1.7.7-1a9.6 9.6 0 012.5-2.4 117.8 117.8 0 0013.6-15.5 66 66 0 005-6.9c0-.1-1.4 1.1-6.5 7.4a183.1 183.1 0 01-5.3 6.2c-3.6 4-7.6 7.6-8.6 9l.3-1.7c1-3.8 1.3-8 1.4-16.4a134.6 134.6 0 00-.2-6zm-10 26.6l-2.2 3.8a55 55 0 01-8.3 11.6c-.8.9-.6 1-.8 1.1-1 1 3 1.7 5.8 2 4 .4 6.1-.4 16.6-6 2.5-1.2 3.1-1.6 2.6-1.6-1 .2-2.5.6-7 2.7s-6.4 3-8.5 3.5a13.6 13.6 0 01-5.2 0h-1l.6-.2c.4 0 1 0 1.2-.3.2-.1 1-.7 1.9-1.1a68.6 68.6 0 0012.7-11.3c0-.2-1.9 1.4-4.3 3.5-5 4.5-10 7.8-12.1 8.1l-.6.1.6-.6 1.8-2.6a51.3 51.3 0 004.6-8c1.7-3.4 2.4-5.5 2.3-5.6l-.7.9zm.1-51.8a42 42 0 004.6 5.7c2.5 2.9 4 4 6 6.5 2 2.6 2.3 2.8 4.5 4.8 2.8-3.7 4.5-8.7 5.7-12 1.2-3 2.1-5.8 2.2-10-1.6 3.5-1.7 4.8-3 8.6a72 72 0 01-5 11.9c-.2 0-6-7-8.6-10a23.4 23.4 0 00-6.4-5.5z"/>
+  <path fill="#cab313" fill-opacity=".5" d="M298.1 203.8l-.5 3.7-1.4-.8a24.8 24.8 0 00-7.5-1.5c-1 0-1 0-.9 1.3a48.1 48.1 0 001.7 5.7c0 .3-.6.7-1.6 1-1 .2-2 .7-2.5 1-.7.6-.6.7 1 2 1.8 1.7 2 2.2.9 2.9-.6.4-.4.8 2.3 3.4a28 28 0 004.6 3.6c2 1.1 6.1 1.1 8.3 0 1.5-.7 1.6-.7 2.6 0 1 .5 1 .5.5-.1-.4-.4-2.3-1.6-4.3-2.6-5.6-2.9-10.2-8-12.2-13.6-1-2.7-1-4.2 0-4.2 1.7 0 5.3.9 7.3 1.7 3 1.4 8.3 6.5 9.7 9.4 1 2.1 1.2 2.8 1.3 5.9 0 3.5.5 5 .6 1.8.2-4 .3-5 1-6.5 1.1-3 .5-7.6-1.4-10.3-.7-.8-2.8-2.7-4.8-4-2-1.5-3.7-2.7-3.8-3-.2-.2-.6 1.3-.9 3.2zm5.3.6c2.7 2 3.5 2.7 4.3 4.5 1.3 2.7 1.7 6 1 8.4l-.6 1.8-1-2.3a23 23 0 00-4.6-5.7c-2-2-3.7-3.5-4-3.5-.4 0-.2-2.8.4-5.1.2-1 0-1.2 4.5 2zm-13.1 10a6.4 6.4 0 001.4 1.5c.4.3.8 1 .9 1.4.2.7 0 .8-2 .8-1.8 0-2.2-.2-3.6-1.6-.9-1-1.5-1.7-1.4-1.8.3-.3 3-1.4 3.5-1.5.2 0 .8.5 1.2 1.1zm5.4 6.2c2.4 2.1 3 2.6 5.9 3.7 1.5.6 1.6.7 1 1.3-1 .9-5.4 1.2-7.5.5-1.7-.5-8-6.3-7.4-6.7a14 14 0 014.3-.9c1.1 0 1.8.4 3.7 2zm11.8 7.4c-.2.2 0 1 .3 2 .7 2 .7 2.6 0 4a7.3 7.3 0 00-.6 2.8c0 .9-.3 2.1-.5 2.9l-.5 1.3-1.3-.9c-.8-.5-1.5-1.2-1.6-1.7a15 15 0 01.3-6.2c.4-1.8.7-2.2 1.2-2.2.6 0 .7 0 .2-.5-.4-.5-.5-.5-1 .1a6 6 0 00-.8 2c-.2 1.4-.2 1.4-1.4.8-1.7-1-2.4-.8-2.4.5s.7 3.5 1.6 4.8c.9 1.5 1 .9 0-1-1.1-2.2-1.5-4.5-.7-4.5.3 0 1 .3 1.4.6.8.5.9 1 .8 3.3 0 3.3-.3 3.4-4.1 2.1a8.7 8.7 0 00-2.6-.6c-.1.2.5 3.6 1 4.7.1.4-.2.6-1.7.4l-2-.1 1.2 2a16 16 0 0011.3 8c1.6.3 3.5.9 4.2 1.2 1 .5 1.1.5.7.1a5.4 5.4 0 00-2-1.1c-2.3-.9-4.6-2.5-7.5-5.6-3-3-4.5-5.7-4.5-7.7 0-1 .2-1.3.7-1.1l3.1.9c3.4.8 4.3 1.3 6.5 3.7 2.3 2.4 3.1 3.9 3.8 7.2l.8 2.8c.5.6.7-1.3.2-2.8-.7-2.7.4-7.9 2.7-12.4 1-2 4.2-5 4.7-4.5l1.2 3.8c1 4.1 1 5.3-1 9.4a14.8 14.8 0 01-5 6.1c-1.5 1.1-1 1.5 1.1 1a16 16 0 006.9-6.3l.9-1.5-1.7.3-1.5.2.7-2.1c1-2.7 1-3.8 0-7.1l-1-3.8-.3-1.2-1.3 1a7.6 7.6 0 00-1.5 1.2c-.5.7-1 0-2.5-3.1a12 12 0 00-1.6-3c-.2 0-.8.4-1.4 1l-1 1.2.2-1.2c.2-.7 0-1-.2-.9-.2.2-.4.7-.4 1.2 0 2-.7 2-1.3 0-.3-1-.7-1.7-.8-1.5zm5.9 10.1c-1.2 2.4-2 4.8-2.3 6.6l-.5 3-.7-1.7a14 14 0 00-1.7-2.9c-1.1-1.2-1.1-1.3-.7-4.2.7-4.5 1.6-7 3.2-8.8l1.5-1.6 1.5 3 1.5 2.9-1.8 3.7zm-15.5 6.7c5 5.2 6.7 7.2 5.9 6.9a14 14 0 01-8.3-6l-1.4-2.4 1-.2c.8 0 1.7.5 2.8 1.7zm23.2 3.2c-1.6 2.6-2.6 3.5-4.4 4.4l-1.6.9 1.6-1.8c1-1 2.1-2.5 2.6-3.3.8-1.3 1.4-1.7 2.6-1.9.2 0-.1.8-.8 1.7z"/>
+  <path fill="#005000" d="M306.3 231.2c.6 1.2 1.6 2.4 1.7 2 0-.2-.5-1-1-1.6-.7-.7-1-.9-.7-.4z"/>
+  <path fill="#cab313" fill-opacity=".5" d="M295.5 252.2c-.1.9-.4 2.2-.7 3.1l-.3 1.5-1.2-1-1.1-1.1-.4 1.9c-.3 2.6.1 6.5 1.3 10.2l1.2 5c.5 3.8 3.6 8.1 7.5 10.8.8.6 1 1.2 1.3 3l.3 2.4v-2.2l-1.1-6.7c-1.3-5.8-1-8.3 2-14.2l2.1-4.3 2.2 4.3c2.9 5.8 3.2 7.7 1.6 12.4-.6 2-1.3 3.6-1.5 4-.2.2-.3.6-.2.8.1.1 0 .5-.2.9-.3.4-.4.4-.2-.2.2-.5-.4 0-1.3 1a7 7 0 00-1.8 2.6c-.2.7-.2.7.4 0l1.5-2c.4-.6.9-1 1-.8.6.3 1.2-.8 2.6-4.5 1.8-5.2 3-7.3 5.6-9.9 1.7-1.7 3.4-2.8 6.2-4.1l4-1.9c.4 0-.8 7-1.5 9a20.9 20.9 0 01-4.7 7.6 22.7 22.7 0 01-8.4 4.2 10 10 0 00-2.8 1c-.2.4 3-.5 6-1.6 4.4-1.6 8.4-5.8 10.1-10.2.7-2 2.3-10.3 2-10.6l-3 1.2-3 1.4.3-2.7c.1-1.5.4-3.6.7-4.6.5-1.9.5-2-.3-1.7-2 .6-5.7 2.8-8 4.8l-2.3 2.2v-3.7c.2-2.5.1-3.5-.1-3a8 8 0 00-.4 2.7c0 2-1 6-1.3 6-.2 0-1-1.1-1.7-2.6-1.3-2.5-2-3.2-2-2.1 0 .3-.4-.6-1-2a18 18 0 00-2-4l-1.2-1.4-.7 1.2-.6 1.3-1.6-2a11.3 11.3 0 00-2.3-2.5c-.6-.3-.8-.2-1 1.1zm2.8 1.3c1.6 1.9 5 8.2 5.4 10.1l.2 1-.7-1a29.1 29.1 0 00-7-6.3c-1-.6-1.1-.8-.8-2.1l.5-2.6c.2-.6.4-1 .6-1a11 11 0 011.8 1.9zm5.7 3.9c1.2 2.4 1.4 4 .8 5-.6.8-4-6.2-3.6-7.5.3-.9.4-1 1-.5a12 12 0 011.8 3zm-7.2 1.3a19 19 0 016 5.9c.3.7.2 1.3-.5 2.6a19.1 19.1 0 00-1.3 9.4c.2 1.3.2 2.3 0 2.3-.5 0-3.5-3.7-4.8-6a30.6 30.6 0 01-4-15.9l.3-1.5 1 .8 3.3 2.4zm24.6 0a60.5 60.5 0 00-.6 4.1c-.2 2.2-.3 2.3-2.6 3.7a19.1 19.1 0 00-4.2 3.7c-1 1.2-1.8 2.2-2 2-.2 0-.4-1-.6-2-.1-1.1-.5-2.6-.8-3.3-.5-1.2-.5-1.5.3-2.6a31 31 0 0110.6-7.5l-.1 1.9zm-22 19.7c1.6 1.5 2.5 2.7 2.4 3.2-.1.5-.6.3-2.2-1.3a15 15 0 01-4.5-6.8c-.2-1 0-1 .8.6.6 1 2.2 3 3.6 4.3z"/>
+  <path fill="#cab313" fill-opacity=".5" d="M295.5 288.4c-4.4 3-8.1 9-9.3 14 0 1.2-1.4 2.3-1.2 2.1.2.6 1.5 0 2-2 1-3.7 4-10.5 8-13.2 1.1-.8 2.3-1.5 2.5-1.5.2 0 .3 1.5.2 3.5 0 2.7-.4 4-1.1 5.5a21.8 21.8 0 01-6.9 7.4c-2 1.1-2 1.6-.3 1 2-.8 6.8-5.7 8-8.3a14.4 14.4 0 001.2-3c0-.2.5-.7 1.1-1 1.5-.5 8.8-2.3 9-2.1.3.3-2.8 6.8-3.8 8.2a20 20 0 01-7.1 5.3c-.9.3-2.7 1.3-4.1 1.5l-3.7.5-1.4.9 1.4-.3 4.3-.5c4.5-1.6 6.2-2.5 9.2-4.8l1.9-1.6 3.6.2 3 .2-1.4 1.7-3.2 3.9a14 14 0 01-3 2.9c-1.9 1-6.2 2-9.8 2-3.2 0-3.3 0-5-1.4-1.6-1.5-2.3-1.8-2.5-1.2 0 .2-1.5.8-3 1.4-3.2 1.1-4 .8-2.1-.8.7-.7 1.4-.7 2.9-.8 0 0 3 .7 3.1 0 0-.5-3-.5-3-.5-1.5 0-1.9 0-.7-1.4 1.3-.9 1.8-2.5 1.1-2.2-1.8 2.2-3 3-5.6 5.7a14.7 14.7 0 01-6.4 2.8 98.1 98.1 0 01-8.2 1.4c-4.2.5-6 1.6-1.9.8 2-.3 4.8-.6 8.2-1.3a24 24 0 007.7-2.5c2-2 2.3-2.3 1.2-.6-.3 1.2.3 1.2 4.2-.3 3.1-1.2 3.2-1.2 4-.5.7.8.7.8-.9 1.5a100 100 0 01-16.3 4.4c-3.7.8-6.9 1.5-7 1.7a16 16 0 005.5-.7l7.5-1.9a94.3 94.3 0 009.4-2.7c2.6-1 3-1 5.1-.6 2.8.5 7.3 0 10.6-1 2.5-.9 4.3-2.4 6.8-6 1.1-1.4 2.4-3 3-3.4l1-.8-3.5-.2c-2-.1-3.7-.3-3.8-.5l.5-1.4 1.9-4.5 1.2-3.3-1.4.3-2.9.5-1.4.3.6-1.5.4-1.5-.8 1.4c-.7 1.6-1.5 2-1.2.5.1-.6 0-.5-.5.4a4.4 4.4 0 01-1.7 1.7l-1.9.7c-.7.3-.7 0-.5-2.8 0-2 0-3.1-.3-3.1s-1.4.6-2.5 1.4z"/>
+  <path fill="#cab313" fill-opacity=".5" d="M257.4 315.1c-2.3.2-7.1 1-15 2.2l-8 1.3c-.4 0-.5.1-.4.3.1.2-.5.4-1.2.5-1.8.4-3.9 2-3.9 3.2 0 1.2 1.3 2.4 2.3 2.2.7-.2.6-.2 0-.3-1.9 0-2.6-2.2-1.2-3.4a25 25 0 019.6-2.8c3.9-.3 15-1.9 15.5-2.2a26.4 26.4 0 013.3-.7c2.7-.5 2.2-.6-1-.3z"/>
+  <path fill="#cab313" fill-opacity=".5" d="M250.7 319a64.1 64.1 0 00-14.1 3.7c-2.9 1.4-2.4 1.5.6.2a25.4 25.4 0 015.4-1.6 275.8 275.8 0 0014.4-2.8l2.3-.3h-1.9c-1 0-4 .3-6.7.8z"/>
+  <path fill="#fff" d="M282.8 308.3c-1.2.8-2.6 2.3-1.1 2 1 0 5.1-1.3 5.4-2-1.5 0-2.8-.3-4.3 0z"/>
+  <g stroke="#d4af37" stroke-width=".9">
+    <path fill="#fff" d="M367.7 432.4c-1.5.5-2.5 1-9 .5-4.6-.3-10.3-1.1-13.2-1.2-5.6 0-5.6.3-15.5 7.1-7 4.8-16 4.4-22.7 3-4-2-5.8-2.3-5.2-1.3 1.1 1.8 9 4.4 13.4 4.4 7 0 12.2-1.8 20.7-7.1 6.6-4.2 9.5-4.5 18.5-2.5 10.6 2.1 12.2 1.2 20.9-2.7-2.6 0-3.2 0-4 .4 1.4-1.6 1.5-3.2 1.8-4.2.4-.6-.8.2-2.1 1.2l-3.6 2.4z" transform="matrix(.47638 0 0 .46773 113 114.3)"/>
+    <path fill="#d91023" d="M354 429.8c-4.9-.7-8.2-1.4-11.3-1-3.4.3-5.8 2-9.9 4.5-4 2.7-7.7 4.6-8.1 4.6-.6 0-5.8 1.2-9.8 1.2-1.8 0-5.9-1.3-8.6-2.3-5.7-2.1-7.8 1.4-1.8 3.9a33.4 33.4 0 0015.6 1.8c5-.8 9.6-3 13.4-5.8 7.7-5.6 3.2-3 6.2-4.2 3-1.3 5.9-.9 5.9-.9 4 .2 11.9 1.5 15.9 1.6 7.2-.7 6-.7 8.4-2 .8-.6 3.5-2.3 3.6-2.7.2-.4 1.4-2.7 1.2-2.8-7.5 5.1-11.2 5.1-20.7 4.1z" transform="matrix(.47638 0 0 .46773 113 114.3)"/>
+    <path fill="#d91023" d="M341 435.4l-7.1 4c-6.2 3.8-12 5.6-18.8 5.6-3 .5-13-3.6-11.5-3.1 1.6 3 4 3.4 9.6 4.5 4 .8 6.6.1 11.1-.8 5-.6 7-3 9-4.3a33.5 33.5 0 0114-5.4c1 0 4.7 2.1 8.9 3 4.1.9 6.1 1.1 10.4.4s8.7-4.2 12.8-6.9c-.6.2-2 .2-4 .3-6 3.5-16 4.8-21.2 2.4-5.4-1.3-10.5-1-13.2.3z" transform="matrix(.47638 0 0 .46773 113 114.3)"/>
+  </g>
+  <path fill="#00a854" d="M221.1 205a30.3 30.3 0 00-14 10.6c-.7 1-1.4 1.8-1.5 1.7l1-4.6 1-5.4c0-1-.2-1-1.7.8-2 2.2-4.6 7-5.6 10.3-.5 1.8-.7 3.8-.7 7.5v5l-1-3.5c-1-3.8-2-6.4-3.1-7.8-.5-.7-.7-.7-1-.2-.9 1.2-.3 6.2 1 10 .1.4-.4-.2-1.1-1.4-.8-1.3-1.6-2.2-1.8-2-.5.2-.5 4.2 0 5.8.3 1.2.3 1.2-1-.4-2.4-2.6-3-2.8-3-1 0 .7.4 1.9.7 2.7l.6 1.5-1.3.4c-1.8.4-2.4 1-2.4 2.4 0 1.7 1.1 5.4 1.7 5.8.6.4.8 0 1.4-2.3l.5-2.1 1.5 1.9c2.1 2.8 5.4 9.3 7 14.2 1.8 5.1 1.8 6.1.2 3a58 58 0 00-2.5-4.3 95.7 95.7 0 00-10.7-11c-.6 0 0 2.7 1.1 5a31 31 0 003.5 5c1.4 1.6 2.4 3 2.3 3l-2.1-1.5c-2.1-1.5-4.2-2.8-4.5-2.5-.1 0 .7 1.8 1.8 3.8l2 3.7-1.3-.2a4.3 4.3 0 00-2.2.3c-.8.4-1 .8-1 2.8 0 2.6.8 5.3 1.4 5.3.5 0 1.6-2.5 1.6-4 0-1 0-1 2 1 3 2.8 6.9 7.6 10.7 13.2l3.3 4.8-3.8-2.8a55.4 55.4 0 00-12.4-7c-.4 0-.6.3-.6.5a60 60 0 005.3 5.4l5.4 5-2.8-.9a54.5 54.5 0 00-4.3-1.1c-1.4-.3-1.4-.2 1.8 2.6a54.3 54.3 0 007 5.4l3 2c-3.8-1-9.3-1.8-9.3-1.4 0 .6 2.8 2.8 4.8 3.9l6.3 2.4a29 29 0 0110 5.3l1.7 1.4-3-1.2a95 95 0 00-13.1-4.5c-1 0 3 4 7 7a64.6 64.6 0 0015.6 7.8c4.2 1.3 7.7 2 14.4 2.9 3 .4 5.7.8 6.3 1 .5.2 4 .8 8 1.2a80 80 0 0124.6 5.8c1.3.6 2.7.9 5.7 1 4.5.2 4.7.1 3.4-2.3-1-2-3-3.1-7-3.8a969.9 969.9 0 00-30.5-5.5c-11.2-1.8-16.1-3.8-21.4-8.5-7.9-7-12-18.3-10.7-29.5.3-2.4.5-4.4.4-4.5-.4-.3-3 5-3.7 7.5l-.8 2.7.2-4.3a25 25 0 016.6-16.6 6.9 6.9 0 001.5-1.7l-1.8.2a8 8 0 00-3.9 2.6l-2.1 2 1-1.8c1.5-3 4.1-6 6.6-7.7l2.4-1.5-1.4-.1c-2.7-.3-7.6 3.2-10.3 7.4-1.5 2.5-1.5 1.7 0-2 1.6-3.7 4-7.3 6.5-10 1.4-1.5 1.6-2 1.1-2-2.1 0-5.7 2.8-8.7 6.7-.9 1.2-.9 1 0-1.2a32 32 0 015-7.8c1.2-1.5.9-1.7-1.3-.7a22 22 0 00-6.8 7.7c-.9 1.5-1.5 2.4-1.4 2l.7-2.6a37 37 0 0110.2-18.2c1.9-1.8 2.4-2.5 1.9-2.5-1.6 0-5.3 2-7.7 4.3-2.5 2.4-2.5 2.4-1.5.7a45.6 45.6 0 0114.5-14.8 32.6 32.6 0 003.5-2.4c0-.7-6.2 1.2-9 2.6a33.8 33.8 0 00-3.6 2.5c-2 1.6-2.2 1.7-1.4.7 1.4-2 6.1-6.1 8-7.1 1.4-.7 1.5-1 .8-1-1.8-.3-7 2.4-11.2 5.8l-1.8 1.6 1-1.7a38.3 38.3 0 0111.8-12.4 48 48 0 013.5-2c.2-.2.4-.4.3-.5a11 11 0 00-3.3.8zm61.7 116.1a5 5 0 011 1.4c0 .2-.8.4-2 .4-2 0-2 0-2-1.1 0-2.1 1.3-2.4 3-.7z"/>
+  <path fill="#9eab05" d="M280.2 320.4c-1 1-.8 2.5.3 2.8 1.7.4 4 .2 4-.4 0-.6-2.7-3-3.3-3-.2 0-.7.2-1 .6z"/>
+  <path fill="#cab313" fill-opacity=".5" d="M223.3 204.4a25.4 25.4 0 00-12.2 6.8c-.2.3-2.5 2.2-3.8 4.1-.7.8-1.6 2-2 2.9 0-.8.6-3.1 1.2-5.7.7-3.1 1-5.6.9-5.7-.4-.4-3.4 3.5-4.9 6.5a25 25 0 00-2.8 13.3v5l-1-3.8c-1.1-4-3-8.2-3.8-8.5-.3 0-.6.5-.8 1.4-.3 1.3 0 2.6 1.7 9.6.1.5-.3 0-1-1.2-1.6-2.7-2.1-3.4-2.6-3l1.1 1.5a67.3 67.3 0 017 20c0 .2-.3-.2-.5-.7a317.8 317.8 0 01-1.3-3.4 50 50 0 00-2.5-5.3c-2-3.6-3.3-7.5-3.6-10.2l-.2-2c-.6.5-.4 2.8.5 5.4l.6 2.5-2-2.5c-1.5-1.8-2-2.3-2.4-2-.3.7-.1 1.9.7 4.2l.6 1.5h-1.3a4 4 0 00-2.1.6c-.7.5-.8.8-.4 3 .5 2.6 1.2 4.6 1.7 4.6.8 0 .8-.8 1.2-3.1.1-.7.4-1.1.5-1.5l.8 1a62.5 62.5 0 018 15.4 89.6 89.6 0 013 12.9s-.6-1.5-1-3.5a33 33 0 00-11.2-18s-2.5-3-4.5-4.2c0 1.7.4 2 .4 2 .5 2.5 1.8 4.7 5.6 9.2 1.7 2 3 3.7 3 3.9 0 .1-1-.6-2.1-1.7-2.2-2-5.6-4.1-6-3.8l1.9 4c1.4 2.6 1.8 3.6 1.4 3.5-1.6-.7-2.2-.7-3.2 0-1.1.7-1.1.7-.9 3.5.2 1.6.5 3.2.7 3.7.5.8.5.8 1-.2.3-.5.6-1.6.8-2.5l.5-1.5c.2 0 2.3 2.2 3.3 3.2l1.4 1.7c2.4 3 9 11.5 10.8 14.3l.9 1.4-1.4-1.1c-4.7-4-12.3-8.4-15.2-9.3-.8-.2-1 0-.6.4 2 2.7 7.7 7.6 9.2 8.8 1.6 1.3 1.6 1.8 1.5 1.9 0 0-1.1-.5-3-1-4.6-1.7-5.8-1.7-5.2-1 .3.3 1 .5 1.7.6 2.3 0 8.4 2.7 12.6 5.5 2.7 1.8 9.2 8 10 9.6.5 1 .4.8-1.3-.5a34.7 34.7 0 00-8.8-5 11 11 0 01-3.2-.6c-1.6-.4-4-.8-5.4-1l-2.4-.3 1.4 1.3a31 31 0 0010.4 5.1 28.5 28.5 0 0111.8 7c-.1 0-1.6-.5-3.4-1.3a99.3 99.3 0 00-12.7-4.4c-1-.2-.6.2 1.9 2.6a60.6 60.6 0 006.2 5 64.2 64.2 0 0031.4 10c2.4.3 4.1.7 4 .9-.1.2 3.6.8 7.6 1.2a89.3 89.3 0 0123.5 5.2 18.7 18.7 0 007 1.6c2.8.1 3.7.1 3.7-.3 0-.9-1.2-2.7-2.6-4-1.2-1-2-1.6-6.9-2.5a40.4 40.4 0 01-6.1-1.3c-.4-.2-6.5-1-13.5-2.2a89.1 89.1 0 01-24-5.5 32.4 32.4 0 01-17.6-27.9 45 45 0 01.2-7.3c.3-1.5.5-2.9.4-3-.4-.3-3.5 5.9-4 8.3l-.2 1.5-.2-2.8a27.1 27.1 0 015.5-16.5s2.3-2.2 2.6-2.8v-.1s0-.1 0 0v-.1c-1.7-.5-3.5.8-5.8 3-1.5 1.4-1.7 1.8-1.8 1.7.1-1.1 4.4-7.6 5.2-7.6a8 8 0 001.6-1.6c.5-1.2-2.5 1.6-4.7 4.6-4.8 6.4-5.8 12.8-5.6 21.5a29.1 29.1 0 01-.2 4.7c-.2 0-1.4-3-2-5-1.6-5.1.8-15.7 4.9-21l2.7-3.3c.5-1-2.8 2.7-4 4.6-.4.6-.7 1-.8.8l.4-1.7a36.3 36.3 0 017.5-12.6c1.3-1.4 1.3-1.4.3-1-2.4.6-4.6 2.5-7 5.2-.6.9-1.1 1.4-1.8 2.1.3-1 2.4-5.6 4.2-8.1 1.1-1.5 2.2-2.5 2.1-2.9 0-.3-1.2 0-2.8 1.3-2.5 1.8-4 3.8-6.1 7.3-1 2-.9 1.4-1.2 1.8 1.1-5.7 1.9-8.3 3.8-12 1.6-3.3 3.3-5.5 6.5-8.8 2.2-2.3 2.6-3 1.9-2.7a18.5 18.5 0 00-7.4 4.7c-1.4 1.4-2 1.8-2 1.6 0-.2.8-1.3 2.1-3.4 2.9-4.4 7-9 11.3-11.8 2.1-1.4 5.4-3 5-3.2a.4.4 0 00-.1 0c.2-.4-1-.2-4 .7-2.8 1-6 2.7-9.1 5.1-1.3 1.1-1 .2 2-2.8a31.4 31.4 0 015.3-4.3c2-1.2 1.9-1.5.6-1.2-3.1.6-9 4-10.8 6.1l-.2.2c-1 .5-1.9 1.8-1.7 1.3.2-.6.7-1 1.8-2.8a38 38 0 0113.4-12.7c1.4-.8 1.4-1.2.5-1.1zM192.2 226zm27.8-20a.2.2 0 01.1 0 58.2 58.2 0 00-9.5 9.3 48 48 0 00-5.9 10.6c-.7 1.9-1.3 3.1-1.3 2.8a68 68 0 011.8-9.6c.3-.2.6-.5 1.1-1.4a33.6 33.6 0 012.1-2.8c1-1.1 3.8-4.1 3.7-4.2l1-.7c2.6-2 6.2-4 7-4zm-13.5 2.2c.1.3-.4 3.8-1.3 8-2 8.6-3.3 15.4-3.7 20-.3 2.9-.4 3.2-.6 1.9a90 90 0 01-.6-8.8c-.3-8 0-10.3 2-14.7a22 22 0 014.2-6.4zm11 6.7c.2 0-.9 1-2.3 2.5a45.5 45.5 0 00-12.7 21.7l-.8 2.9.3-2.7c.1-1.4.4-3.7.7-5a63.2 63.2 0 012.1-6.8 16 16 0 013.6-6.3l1.4-1.4a58.3 58.3 0 002.2-1.7 23 23 0 015.6-3.2zm5 2c.1 0 .2 0 .2.2l-2.3 1.7c-3.1 2-9 8-11.1 11.2a67 67 0 00-6.3 12.3c-1.1 3.4-1 1.6.2-3.2a55.5 55.5 0 016-13.8l1.1-1.6c.6-.6.7-1 1-.8.2 0 1-.5 2-1.3a29 29 0 019.1-4.7zm-27.6 3l.5.6a74.8 74.8 0 015.2 23.9c0-.5-1-3.8-2.1-7.2a49.7 49.7 0 01-4-16.5l.4-.7zm21.2 8.8l-2 2.1a39.3 39.3 0 00-10.5 22.2c-.4 2.2-.8 4.2-1 4.4-.2.2-.5-.7-.7-2-.5-4.3 1-11.2 3.4-16.2l1-2.3c.3-.2.6-.8 1-1.5 2-2 5-5 7-6l1.8-.7zm-26.7 1l.8 1a67 67 0 012.5 3.5 89.8 89.8 0 016.7 13.3c.2.5-.4-.4-1.2-2a55.2 55.2 0 00-4.3-6.4c-3.3-4.4-4.5-6.6-4.5-8.1v-1.3zm-1 6h.5c1.2 0 3.7 2.2 6 5.2a54 54 0 017 17.1c.7 3.2 2 11.4 2 13.2v1.3l-.8-1.2c-.3-.7-.9-2.8-1.2-4.6a81 81 0 00-4.2-15.3 53 53 0 00-8-13.2c-.3-.5-1-1-1.2-1.2-1-.8-1-1.3 0-1.3zm-2 .6l1 .6c1.4 1 1.9 1.4 1.6 2.6-.2 1.2-.4 2.4-.6 2.8-.3.6-.7.1-1-1.2l-.7-3.2-.3-1.6zm27 5.5c.2 0 .2.1 0 .4-.4.3-1.3 1.6-1.8 2.2a55.2 55.2 0 00-7.2 19c-.4 3-1 1.6-1-2.5 0-5.8 2.5-12.3 6.5-16.3 1.7-1.7 3.2-2.8 3.6-2.8zm-27.4 2.5c.4.1 1.5 1.2 4.3 4 2.5 2.6 5.3 5.7 6 7 1.6 2.6 3.3 6.5 3.7 8.5.2 1.2-.2.7-2.6-2.5a140 140 0 00-4.9-6.3c-4.4-5.1-6-7.7-6.6-10.2l.1-.5zm30.4 1.1l-2.1 2.7a41.8 41.8 0 00-3.7 5.7 73.2 73.2 0 00-5 15.2c-.9 4.8-1 4.7-.8-.6.4-10 4-18.3 9.7-21.8l2-1.2zm-30 7.3l1.3.6 3.7 2.7c1.3 1.1 2.5 1.9 2.7 1.7.2-.1.3-.1.1.1 0 .2 1 2 2.4 3.9a54.7 54.7 0 017.2 13.2l.7 2.5-2.7-4.1a48.7 48.7 0 00-9.5-11.9 15.6 15.6 0 01-4-5.1l-1.9-3.6zm32.5 5.3l-2.3 2.4a25.3 25.3 0 00-5.2 10.1 59.6 59.6 0 001.3 22.8 39 39 0 01-3.2-8.8c-.7-3.5-.6-11.8 0-14.6a23 23 0 014.2-8.7c1.4-1.6 4-3.2 5.2-3.2zm-31.5 1.4c.6 0 1.3.4 2.4 1.1 4.4 2.8 10 10.1 16.4 21.5 5.2 9.3 8.1 16.3 4 9.3a215.1 215.1 0 00-20.2-27.6 16.2 16.2 0 00-3-2.5c-1.6-1-1.7-1.4-.3-1.7a2 2 0 01.6 0zm-1.6 1.9c.3 0 .8.2 1 .6.6.6.3 3.7-.3 4-.5.4-.7 0-1-2.5-.3-1.7-.2-2.1.3-2.1zm28.9 11l-.1 4.8a34.3 34.3 0 0011.3 27.8 34 34 0 0018.3 7.7l5.7 1c.3.2 4.2.6 4 1-.2.1.2.2.8.1 1.6-.3 6.7.8 8 .9a141 141 0 0119 4c1.2.4 3.6 3.2 3.6 4.1 0 .2-1.3.3-3.6.1a17 17 0 01-6.8-1.7c-5.3-2.3-12.7-4-21.7-4.8-4.6-.4-19.7-3-24-4a54.6 54.6 0 01-14.3-4.8 41.4 41.4 0 01-11.5-7.6l-2.7-2.5 2.3.6a70 70 0 0118.7 8.5 30 30 0 0010 4.9c2.6.7 3.4.7 3.4.3 0-.2-1.4-.8-3-1.2a29.7 29.7 0 01-19.7-33.1c.4-1.6 2.1-6.1 2.3-6.1zm-26.7 1.3a3 3 0 00.6.2 55 55 0 0115.4 9.8 24.4 24.4 0 013.5 4.6l1.3 2.5-2.2-1.8a53.4 53.4 0 00-5.2-3.5c-1.6-1-5-4-8-6.8-2-2-4.3-4-5.4-5zm6.7 17.1l.9.1 4.7 1a36.1 36.1 0 0118.2 11.6l1.8 2.3-1.8-1c-1-.5-1.8-1-1.7-1.1.3-.4-3.9-3.9-6-5a74.4 74.4 0 00-7-3 26 26 0 01-9-4.3c-.3-.4-.4-.5-.1-.6z"/>
+  <path fill="#cab313" fill-opacity=".5" d="M217.8 251.4c-1 .3-2.3 1.6-3.2 2.3-1.8 1.3-2 1.8-.4.6 1.3-1 3.4-2.5 5.3-2.7.2 0-.7.9-1.2 1.4-.7.8-.5.7 1-.3l2-1.4c0-.3-2-.5-3.5 0zM190 281.7c0 1 12.6 10.4 13.2 9.8l-3.7-2.5a51.8 51.8 0 01-6.2-4.7c-1.4-1.2-3.1-3.2-3.3-2.6z"/>
+  <g stroke="#d4af37" stroke-width=".9">
+    <path fill="#fff" d="M246.2 432.3a31 31 0 01-16.4.7 21 21 0 00-6.2 0l2.8 1.8c1.3.8.8.6 3.1 1.7-.4.4-.6.6-2.4 1.3 2.4.5 5.4.8 8.3.6a37 37 0 008.7-1.4 47 47 0 019-1.8c1.2 0 5.4 1.3 9.4 3.4 8.6 4.7 14.6 6 20.6 6 4.1 0 8.4-1 13.3-4.2 3.6-2.3.6-2.2-3-.7-5 2-15.2 3-27-3.2a44.4 44.4 0 00-14.6-5.6c-.4 0-3 .6-5.6 1.4z" transform="matrix(.47638 0 0 .46773 113 114.3)"/>
+    <path fill="#d91023" d="M219.9 429.5c1.4 1.2 1.2 1.5 3.8 3.5 3.5.4 10.6 1.1 13.2 1.1 2.4 0 6.8-.4 10-1.2 6.2-1.3 9.2-1 20.5 4 13.1 6.8 20.5 5.6 27.3 2.3 9.4-3.6.2-2-3.2-3-1.1.3-2.5 1.8-5.2 2.7-3.8 1.4-5.8 1.4-10.3-1-2.9-1.4-5.4-2-8-3.5-2.5-1.5-3.1-1.3-7.3-2.7l-6.2-1.2-9.4-.5a44 44 0 01-21.5-1.3c-5.4-1.7-6.4-1.4-3.7.8z" transform="matrix(.47638 0 0 .46773 113 114.3)"/>
+    <path fill="#d91023" d="M244.3 436.8a35 35 0 01-17.2 1l-3.9 1.3c-5 1.7-5 1.8-2.9 2.4 1.3.4 6.3.7 11.3.6 8.5 0 9.3-.1 14-2.4a24 24 0 017-2.5c1 0 4.5 2 7.7 3.7 8.8 4.6 12.1 6 19.4 5.9 7.3 0 16.7-5.3 17.9-7a28 28 0 01-17.3 4.8 41 41 0 01-19.8-7c-5.8-3.1-7.8-3.2-16.1-.8z" transform="matrix(.47638 0 0 .46773 113 114.3)"/>
+    <g stroke-width=".8">
+      <path fill="#fff" d="M293.5 417.7c1.2-1.4.8-2-2.5-2.4a47.2 47.2 0 01-23.1-10.9c-2.2-2.3-3.1-2.5-3.1-.7 0 2 6.7 8.1 11.6 10.6a45.6 45.6 0 0014.5 4.7c.8 0 1.9-.5 2.6-1.3z" transform="matrix(-.16796 -.34478 -.72366 .17969 593.5 332.2)"/>
+      <path fill="#d91023" d="M290.7 421.4c.2-.4-.4-2.4-3.1-3a41.8 41.8 0 01-19-9.8c-3.6-3.5-5.3-3.9-4.1-.7 1.6 4.6 14.3 11 19.3 12.6 5 1.6 6.1 2 6.9.9z" transform="matrix(-.16796 -.34478 -.72366 .17969 593.5 332.2)"/>
+      <path fill="#ed1c24" d="M295.5 415.4l.8-1.4-4-2.6c-4.7-.6-13-3.6-18.6-6.7a21.5 21.5 0 00-6.1-2.6c-1.5 0-1.6 0 .1 1.9a44 44 0 0021.8 10.4c2.3.4 4.7 2 6 1z" transform="matrix(-.16796 -.34478 -.72366 .17969 593.5 332.2)"/>
+      <path fill="#fff" d="M293.5 417.7c1.2-1.4.8-2-2.5-2.4a47.2 47.2 0 01-23.1-10.9c-2.2-2.3-3.1-2.5-3.1-.7 0 2 6.7 8.1 11.6 10.6a45.6 45.6 0 0014.5 4.7c.8 0 1.9-.5 2.6-1.3z" transform="matrix(.18999 -.33346 .71052 .22504 -81.5 310.7)"/>
+      <path fill="#d91023" d="M289 420.6c0-.2 1.2-1.6-1.4-2.2a41.8 41.8 0 01-19-9.8c-4.2-4.6-6.3-5.6-4.1-.7 1.6 4.6 14.3 11 19.3 12.6 5 1.6 4.4 1.3 5.1.1z" transform="matrix(.18999 -.33346 .71052 .22504 -81.5 310.7)"/>
+      <path fill="#ed1c24" d="M295.5 415.4l.8-1.4-4-2.6c-4.7-.6-13-3.6-18.6-6.7a21.5 21.5 0 00-6.1-2.6c-1.5 0-1.6 0 .1 1.9a44 44 0 0021.8 10.4c2.3.4 4.7 2 6 1z" transform="matrix(.18999 -.33346 .71052 .22504 -81.5 310.7)"/>
+    </g>
+    <path fill="#fff" d="M319.7 402.7a30.7 30.7 0 00-16.7 13.1c-2 3-4 4.4-2.6 5 1.5.8 2.9-1.3 5.6-4 7-7 12.5-10 20-10h6l-1.8-2.5c-2.1-3-4.6-3.3-10.5-1.6zm-50.5 2.4c-1.2 1.4-.9 2 2.6 2.5A49.4 49.4 0 01296 419c2.3 2.4 3.3 2.6 3.3.7 0-2-7.1-8.5-12.2-11-4.4-2.4-12.2-5-15.1-5-1 0-2 .5-2.8 1.4z" transform="matrix(.47614 .01506 -.01519 .46749 120 112.2)"/>
+    <path fill="#d91023" d="M318.6 399.5a52 52 0 00-5.4 2.3 48 48 0 00-9.9 9.6l-3 4.2c-1.3 2-1.5 3.2-.8 3.3.6.2 2-.7 3.5-2.7 6-8.4 11.6-12.2 19.8-13.9 4.2-.8 4.8-.8 6.3.7 1.2 1-.3-.2-.6-1-.5-1.8-1.8-2.7-4.5-3.2a13.3 13.3 0 00-5.4.7z" transform="matrix(.47614 .01506 -.01519 .46749 120 112.2)"/>
+    <path fill="#d91023" d="M272 403.3c-.2.4 1.8 1.2 4.5 1.7a42 42 0 0119 9.9c3.5 3.5 5.3 3.8 4 .6-1.5-4.5-14.2-11-19.2-12.5-5-1.6-7.6-.8-8.3.3zm48.5 4A39.3 39.3 0 00307 416c-4 3.9-5.8 6.3-4.2 6.3.3 0 2.7-1.9 4.3-3.3 7-6 19.8-9.4 25.4-7.3 2.8 1 1.5-2-.4-4.8-1.1-1.7-8-.7-11.5.6zm-53-.2l-3.4 3.1 5 .9c5 .6 14.3 4 20.5 7.4 2.7 1.6 5.8 2.9 6.7 2.9 1.7 0 1.8 0-.1-2.1a48.7 48.7 0 00-24-11.6c-2.7-.4-3.4-1.8-4.8-.6z" transform="matrix(.47614 .01506 -.01519 .46749 120 112.2)"/>
+    <path fill="#d91023" d="M304.5 422.4a33.6 33.6 0 00-1 14.1c1.6-.2 2.7-.2 5.3-.7.3-2.2.7-4.7.6-7.4.3-3.7 0-1.8 2.1-4.8-2.3-1.5-3-1.6-7-1.2z" transform="matrix(.47638 0 0 .46773 112.6 115.7)"/>
+    <path fill="#fff" d="M296.2 428.6c0 4.2.3 5.2.3 7.2 2.3.3 7.4 1 7 .2v-8l1-5.5-3.7-.6-3.2.4-1.4 6.3z" transform="matrix(.47638 0 0 .46773 112.6 115.7)"/>
+    <path fill="#d91023" d="M291 428.8c.1 3.4-.5 4.5-.1 6.5 1 .3 5 .2 6.3.5-.2-4.3-.2-.5-.6-6.2l1.2-7.3-3.6.3s-2.2-.7-3.7-.7c1.3 2.3.5 7 .5 7z" transform="matrix(.47638 0 0 .46773 112.6 115.7)"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pf.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pf.svg
new file mode 100644
index 0000000..94ff90c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pf.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-pf" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)">
+    <path fill="#fff" d="M0 0h512v512H0z" style="width:0"/>
+    <path fill="#083d9c" fill-rule="evenodd" stroke="#083d9c" stroke-width="2pt" d="M210.4 363.5s11.6-9.4 22.8-9.4 14.4 7.8 22.2 8.4c7.8.7 14.4-7.8 24-8 9.8-.4 22 6.8 22 6.8L258.9 374l-48.5-10.6zm-24.3-13.8l144.3.7s-12.5-13.5-27.2-13.8c-14.6-.3-10.6 6.3-21.8 7.2-11.3 1-14.1-6.9-24.4-6.6-10.3.3-16.3 6.6-24 6.9-7.9.3-17.9-7.8-23.8-7.5-6 .3-27.2 9.4-27.2 9.4l4 3.7zm-18.5-17.2l178.1.7c2.9-4.1-8.7-13.8-19.3-14.7-8.8.3-15 9-22.2 9.3-7.2.4-15.3-9-23.5-8.7-8 .3-16.5 8.8-24.6 8.8-8.2 0-14.1-9.1-24.4-9.1s-15 10-22.8 9.4c-7.9-.7-14.7-10-22.2-10s-20 11.2-22.5 10.6c-2.5-.6 3.1 4.7 3.4 3.7z"/>
+    <path fill="red" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.5" d="M236 233.5l41 11V186c-18.8 1-34.4-35.6-1.3-38.1-32.4-4.8-36.2 3.7-40 12.7l.4 72.9z"/>
+    <path fill="#083d9c" fill-rule="evenodd" stroke="#083d9c" stroke-linecap="round" stroke-width="5" d="M210.1 276l92.5.3"/>
+    <path fill="none" stroke="#000" stroke-linecap="round" stroke-width="4" d="M214.5 253.8l11 14.7m-11 0l11.9-14.4m-5.6-1.3l-.4 9.1m11.6-8.1l11 14.7m-11 0l11.9-14.4m-5.6-1.3l-.4 9.1m12-8.1l10.8 14.7m-10.9 0l11.9-14.4m-5.6-1.3l-.3 9.1m12.4-8.1l11 14.7m-11 0l12-14.4m-5.7-1.3l-.3 9.1m11.9-8.1l10.9 14.7m-11 0l12-14.4m-5.7-1.3l-.3 9.1"/>
+    <path fill="#ef7d08" fill-rule="evenodd" d="M148 277l39.3.2v-24.7l-45-2.1 5.6 26.5zm-2-34.1l42 4-.4-17.5-41-16.2-.5 29.7zm8.5-35l32.2 15.6 4.6-4.8s-3-2-2.8-4c0-1.8 3-2.1 3-4.2 0-1.9-3.3-2.1-3.3-4-.3-2 2.6-4.3 2.6-4.3L161.7 177l-7.2 31zm211.2 69.3h-41.5l-.3-24 45.6-3.5-3.8 27.5zm-41.2-29.7l49.4-6-10.7-28.3-39 16.5.3 17.8zm36-42.1L324.7 224c-.5-2-1-4-3.4-5.6 0 0 2.2-1.3 2.2-3.5s-2.9-2.5-2.9-3.7 2.6-2.4 2.8-5.2c-.3-2-2.8-4.6-2.3-5.2l27.7-21.2 11.5 25.7zM283.1 247l17.9-.8.3-7.2-18.1 8zm-54.3-.6L210 246v-7.5l18.8 8zm-.1-2.2l-18.7-9.6v-12.5s-2.2.3-1.9-2.2c.1-5.2 13.8 9.5 20.7 14.3l-.1 10zm54.4-1.1V235s16.8-15.2 20.4-18c0 3.1-2 5.5-2 5.5v12l-18.4 8.7zM174 174.7l18.9 21c.5-2 4.8-2.2 9.2-2 4.4.4 7.9-.2 7.9 3 0 3-2.3 2.6-2.3 4.8s3.4 2 3.4 4.8-2.4 2.2-2.5 4.4c0 1.8 2.6 2 2.6 2l17.7 17.1v-18.4l-36.5-57.3-18.4 20.6zm29-21.7l24.8 50.7s.3-46.8 4.4-49.3l-7-12.8L203 153zm107.7 2l-27.6 49.3v-20.8s2.3-3.5-1.3-3.2c-3.6.3-8.1-.3-8.1-.3l11.1-39 26 14zm28.4 21.1c-.3.6-18.7 19.2-18.7 19.2-.8-2.2-6.4-1.1-11.6-1.1-5.3 0-6 1.7-5.8 3 .6 3.7 2.4 1 2.4 4.4 0 3.3-2.6 2-2.8 4.5.2 2.8 4 2.1 1.8 4.3l-21.3 20.4v-19.4l39.6-61.5 16.4 26.2z"/>
+    <path fill="red" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.5" d="M245.1 286.3c-8.9 14.7-32.7 10.4-38.2 0-1.7-.4-.7-63.5-.7-63.5s-2.7-1.2-2.8-3.1c-.1-2 3.6-2.1 3.6-4.6 0-2.5-3.8-1.6-3.9-4 0-2.5 4.1-2.2 4-4.4-.3-2.5-4.6-2.1-4.8-4.5-.2-1.8 3-3.4 4-4.2h-9.9c-4.8 0 .1 1.1 0 4 0 1.8-2.4 3-2.6 4.6 0 1.6 3.4 2.7 3.5 4.7 0 1.7-3.5 1.9-3.4 3.5.3 2.7 3.1 3.3 3.1 5 0 1.6-3.9 2.3-3.9 3.6l.6 64.8c6 31.8 41.4 39.8 51.4-2zm23.3 0c9 14.7 32.7 10.4 38.3 0 1.7-.4.7-63.5.7-63.5s2.7-1.2 2.8-3.1c.1-2-3.4-2.1-3.4-4.6 0-2.5 3.6-1.6 3.7-4 0-2.5-3.8-2.3-3.6-4.6.2-2.5 3.1-2.2 3.3-4.5.1-2-1.9-3.2-2.8-4h9.7c4.9 0 0 1.1 0 4 0 1.8 2.5 3 2.7 4.6 0 1.6-3.5 2.7-3.5 4.7 0 1.7 3.5 1.9 3.3 3.5-.2 2.7-3 3.3-3 5 0 1.6 3.9 2.3 3.9 3.6-.2 2.6-.6 64.8-.6 64.8-6.1 31.8-41.4 39.8-51.5-2z"/>
+    <path fill="#083d9c" fill-rule="evenodd" stroke="#083d9c" stroke-width="2pt" d="M236.5 315.3h39.8c.3-.3-9-13.8-20-12.8-12.2.3-20.5 12.8-19.8 12.8zm126.8-1h-54.4s7-4.1 9-8c3.5 2 2.5 3.9 9.5 4.2 7 .3 13.8-8 20.5-7.7 6.7.3 15.4 11.8 15.4 11.5zm-214.4 0h54.4s-7-4.1-9-8c-3.5 2-2.5 3.9-9.6 4.2-7 .3-13.7-8-20.5-7.7-6.7.3-15.3 11.8-15.3 11.5zm4-17l38.8.2s-2.5-5.3-2.8-11.8c-10-3.5-18.2 7.5-25.3 7.8-7.2.3-14.7-7.8-14.7-7.8l4 11.5zm207 0l-38.8.2s2.5-5.3 2.8-11.8c10-3.5 18.1 7.5 25.3 7.8 7.2.3 14.7-7.8 14.7-7.8l-4 11.5zm-113.5.2l19.7-.6s.3-6-10-6-9.4 7-9.7 6.6zm-12-8.4c3.5-1.9 6.7-3.8 8.8-8.1l-13.4.3s-6.2 3.7-9.4 7.8h14zm43.5 0a18.2 18.2 0 01-8.7-8.1l13.4.3s6.3 3.7 9.4 7.8h-14z"/>
+    <path fill="#de2010" fill-rule="evenodd" d="M-128 384h768v128h-768zm0-384h768v128h-768z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pg.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pg.svg
new file mode 100644
index 0000000..7397754
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pg.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-pg" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M81.4 0h496v496h-496z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="translate(-84) scale(1.0321)">
+    <g fill-rule="evenodd">
+      <path d="M.5 0L0 496h659L.5 0z"/>
+      <path fill="red" d="M658.5 496L659 0H0l658.5 496z"/>
+    </g>
+    <path fill="#fc0" stroke="#fc0" stroke-width="2.3" d="M406.9 123.4l-8.8-.4c-2.7-6.4-10.3-8.8-15-6-4.2.3-26.5-.4-26.5-.4l16.3 7.1c4 10.9 18 13.5 18 13.5-1.2 20-20.3-2.6-36.3 8.8-11.4 6.9-11.6 15-17.8 28.3a119 119 0 01-10 13.1l13.5-1-4.3 5.6 16-2.3s-2.1 1.8-3.4 3.2c2.4.5 18.3-3.7 18.3-3.7l-1.1 5.1c8.1-3.3 18.2-6.6 18.2-6.6s3.6 3 6.9 4.3l2.3-9.1 9.1 2.3 2.3-9.2c13.7 18.3 18.3 36.6 43.4 41.2l-2.3-9.2c7 3 20 9.4 20 9.4l2-4.2c10.9 7.8 20 7.7 26 8.5l-4.5-11.4 4.6 2.3-6.9-18.3 6.9 2.3-9.2-13.7 3.4-2.3-1-6.9c13.6 4.6 32 11.5 34.2 27.5 2.3 25.1-25.2 32-43.4 29.7 13.7 11.4 38.8 6.8 50.3-4.6a47 47 0 009.1-18.3c2.3 6.9 6.9 16 6.9 25.2-2.3 20.5-29.8 27.4-48 29.7 20.5 11.4 57.1-2.3 59.4-32 0-25.2-16-36.6-22.9-48a231 231 0 01-2.3-12.3c1 .2 6.9 3.2 6.9 3.2s-4-7.6-4.6-9.2c0 0-7.1-19.4-9.7-23.7.4-.3 5.2.8 5.2.8l-18.8-23.5 5.3-.6S493 100.5 487 98.3l6.9-2.3c-13.8-6.8-29.8-2.3-43.5 6.9l2.3-6.9-4.2.4v-7.8l4.2-6.3-6.8-2.3 4.5-11.4-6.8 2.3 2.3-11.5s-5.2 2.4-8.3 2c.1.3 3.7-7.7 3.7-7.7-2.2-3.4 0-10.3 0-10.3-16 2.3-18.3 4.6-27.4 18.3-13.8 25.2-9.2 36.6-6.9 61.7z"/>
+    <path fill="red" fill-rule="evenodd" stroke="red" stroke-width="3" d="M493.3 161c1.2 2 14.1 8.2 23.9 13.8-2.6-10.6-21.7-12.9-24-13.8z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M179 412.4l-14.6-9.3-19.5 9.4 4.4-16.7-15-15.7 17.3-1 10.3-19 6.3 16 21.2 3.9-13.3 11zm37.3-81.6l-6.8-3.2-6.4 3.7 1-7.4-5.6-5 7.4-1.4 3-6.8 3.6 6.6 7.4.8-5.2 5.4zm32.9-46.8l-14.8-7.2-14.4 8 2.3-16.2-12.1-11.2 16.2-2.8 6.8-15 7.8 14.6 16.3 1.8-11.3 12zm-67.7-65l-17.4-8.8-17 9.4 2.8-19.2-14.2-13.4 19.2-3.1 8.3-17.7 9 17.3 19.3 2.4-13.7 14zM119 286.5l-17.6-10.4-17.5 10.7 4.5-20-15.6-13.3 20.4-2 7.9-18.9 8 18.8 20.5 1.7-15.3 13.5z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ph.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ph.svg
new file mode 100644
index 0000000..681cf23
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ph.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ph" viewBox="0 0 512 512">
+  <path fill="#0038a8" d="M0 0h512v256H0z"/>
+  <path fill="#ce1126" d="M0 256h512v256H0z"/>
+  <path fill="#fff" d="M443.4 256L0 512V0"/>
+  <g fill="#fcd116">
+    <path stroke-width="1.1" d="M25.2 44.4l15.4 13.3 17.9-9.8-8 18.7 15 14L45 78.9l-8.6 18.4-4.7-19.8-20.2-2.6L29 64.4zM372.1 229l.4 20.3 19.3 6.7-19.3 6.7-.4 20.3-12.3-16.2-19.5 6L352 256l-11.7-16.7 19.5 5.9zM36.5 414.7l8.6 18.4 20.3-1.7-14.8 14 7.9 18.7-17.9-9.8-15.4 13.3 3.9-20-17.5-10.5 20.2-2.6z"/>
+    <path stroke-width="5.7" d="M158.9 148l-6.6 6.6 3.2 50.3-3.3.3-6-45.9-5.5 5.4 8.2 41a51 51 0 00-18.4 7.7l-23.3-34.8h-7.7l28.2 36.8-2.5 2.1-33.3-38h-9.4v9.5l38 33.3-2.2 2.5-36.8-28.2v7.7l34.8 23.3a50.9 50.9 0 00-7.6 18.4l-41-8.2-5.5 5.5 46 6-.4 3.4-50.3-3.3-6.7 6.6 6.7 6.6 50.3-3.2.3 3.3-45.9 6 5.4 5.5 41-8.2a51 51 0 007.7 18.4l-34.8 23.3v7.7l36.8-28.2 2.1 2.5-38 33.3v9.4H92l33.3-38 2.5 2.2-28.2 36.8h7.7l23.3-34.8a50.8 50.8 0 0018.4 7.6l-8.2 41 5.5 5.5 6-46 3.3.4-3.2 50.3 6.6 6.7 6.6-6.7-3.2-50.3 3.3-.3 6 45.9 5.5-5.4-8.2-41a51 51 0 0018.4-7.7l23.3 34.8h7.7L190 296.6l2.5-2.1 33.3 38h9.4V323l-38-33.3 2.2-2.5 36.8 28.2v-7.7l-34.8-23.3A50.9 50.9 0 00209 266l41 8.2 5.5-5.5-46-6 .4-3.3 50.3 3.2 6.7-6.6-6.7-6.6-50.3 3.3c0-1.2-.2-2.3-.3-3.4l45.9-6-5.4-5.5-41 8.2a51 51 0 00-7.7-18.4l34.8-23.3v-7.7l-36.8 28.2-2.1-2.5 38-33.3v-9.4h-9.5l-33.3 38-2.5-2.2 28.2-36.8h-7.7l-23.3 34.8a50.9 50.9 0 00-18.4-7.6l8.2-41-5.5-5.5-6 46-3.3-.4 3.2-50.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pk.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pk.svg
new file mode 100644
index 0000000..06b6022
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pk.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-pk" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#a)">
+    <path fill="#0c590b" d="M-95 0h768v512H-95z"/>
+    <path fill="#fff" d="M-95 0H97.5v512H-95z"/>
+    <g fill="#fff">
+      <path d="M403.7 225.4l-31.2-6.6-16.4 27.3-3.4-31.6-31-7.2 29-13-2.7-31.7 21.4 23.6 29.3-12.4-15.9 27.6 21 24z"/>
+      <path d="M415.4 306a121.2 121.2 0 01-161.3 59.4 122.1 122.1 0 01-59.5-162.1A118.6 118.6 0 01266 139a156.2 156.2 0 00-11.8 10.9A112.3 112.3 0 00415.5 306z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pl.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pl.svg
new file mode 100644
index 0000000..f7c12a1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pl.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-pl" viewBox="0 0 512 512">
+  <g fill-rule="evenodd">
+    <path fill="#fff" d="M512 512H0V0h512z"/>
+    <path fill="#dc143c" d="M512 512H0V256h512z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pm.svg
new file mode 100644
index 0000000..3d4014a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pm.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-pm" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h512v512H0z"/>
+    <path fill="#00267f" d="M0 0h170.7v512H0z"/>
+    <path fill="#f31830" d="M341.3 0H512v512H341.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pn.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pn.svg
new file mode 100644
index 0000000..47b0749
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pn.svg
@@ -0,0 +1,67 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-pn" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="b">
+      <path d="M-15-7.5h30v15h-30z"/>
+    </clipPath>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M-15-15h30v30h-30z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="translate(256 256) scale(17.06667)">
+    <path fill="#00247d" d="M-15-15h60v30h-60z"/>
+    <g clip-path="url(#b)" transform="translate(0 -7.5)">
+      <circle r="20" fill="#00247d"/>
+      <path stroke="#fff" stroke-width="3" d="M-20-10l40 20m-40 0l40-20"/>
+      <path stroke="#cf142b" stroke-width="2" d="M-20-10l40 20m-40 0l40-20"/>
+      <path fill="#fff" d="M0 0l20 10h-3L-3 0m3 0l20-10h3L3 0M0 0l-20 10h-3L-3 0m3 0l-20-10h3L3 0"/>
+      <path stroke="#fff" stroke-width="5" d="M-20 0h40M0-10v20"/>
+      <path stroke="#cf142b" stroke-width="3" d="M-20 0h40M0-10v20"/>
+    </g>
+    <path fill="#f7e017" stroke="#000" stroke-width="0" d="M-.3 3.8a4.2 4.2 0 00-1.4 2C-2 8-2.7 8.4-3.5 8c0 1.1 1 1.2 1.4.6a3 3 0 001.2 2.6c.3.3.4.1.2-.2-.2-.4-.2-1.5-.5-2.2.5.4 1.3.2 1.3-.9-.7.4-1.4.4-1.5-.5 0-1.1.4-2.8 1.1-3.5zm-.8-8c0-.4 0-.8-.3-1-.6-.5-1.1-.4-1.5 0-.7-.3-1 .9-1.7.7.1.4.3.5.7.4-.4.3 0 .7-.5 1.1.8.3 1.2-.2 1.2-.9.3.3.8.2 1 0-.4-.2-.4-.6-.2-.9.2-.5 1.4-.5 1.3.6z"/>
+    <path fill="#337321" stroke="#000" stroke-width="0" d="M.7 1.6C0 2.1-1.8 2-1.9.7-2.1-.4-1-.9-.6-1c.4-.2.8.2.6.7a.8.8 0 00.4-1.1c.7 0 1.3-.5 1.6-1.2-.2.2-.9 0-1.4 0v-.7c-.5.6-1.3.3-2.4 2L-1-4a1.9 1.9 0 000-.3c0-1-1-1-1.3-.6.2.3.1.7 0 1.2L-3-.9c0-.8-.6-.9-.7-1.2l-.2.5c-.1-.2-.8 0-1-.2-.3.5.1 1 .6 1.2-.3 0-.3.3-.6.3.4.4.7.6 1.1.6.5 0 .8.2 1 .7.4.8 2 1.4 3.5.6z"/>
+    <path fill="#f7e017" stroke="#000" stroke-width="0" d="M3 .6A4.5 4.5 0 01.4 3.1c-1 .3-3.2 1.3-3.7 1.9"/>
+    <path fill="#337321" stroke="#000" stroke-width="0" d="M-.3 3.8c-.8.7-1.2 2.4-1 3.5 0 .3 0 .5.2.6 0-.6.5-2.2 1.6-3 1-.6 2.4-2 3-3.6L2.9.8c-.6 1.4-2 2.1-3.2 3z"/>
+    <path fill="#316d3a" stroke="#000" stroke-width="0" d="M2.4 0A4 4 0 011 1.2a.8.8 0 000-.5c-.8.3-2.4.3-3 0A4 4 0 002-.5l.3.5z"/>
+    <path fill="#337321" stroke="#000" stroke-width="0" d="M-3.6 3.5c-1.2 1.1-.4 2.2.1 2.4-.1.8.6.7.6 1.4.3-.1.4-.6.4-1 .4.4 1.4 0 1.6.7.1-.8-.5-1.7-1.4-1.6.4-.4.2-.9-.2-1 0 .6-.8.6-1 .4-.3-.2-.6-.8 0-1.4z"/>
+    <path fill="#f7e017" stroke="#000" stroke-width="0" d="M-.8 11c-.1.1-.1.3 0 .4.1.2-.2.7.4.9.2 0 .3-.1.3-.3.2-.5-.3-.6-.4-.8 0-.3-.2-.3-.3-.2z"/>
+    <path fill="#f7e017" stroke="#000" stroke-width="0" d="M-.3 12c-.2 0-.4.2-.3.8 0 .3 0 .8-.2.9h.5c.1.1.4 0 .5-.2.1.2.3 0 .3-.2.1 0 .3 0 .3-.4l.4-.1c-.2 0-.7-.4-.9-.6C.2 12 0 12-.3 12z"/>
+    <path fill="none" stroke="#000" stroke-width="0" d="M-3.2-4.8a2.2 2.2 0 01.3-.4m2.8 2.6l.7-.1m-.9 16.3V13m.5.5"/>
+    <path fill="#f7e017" stroke="#000" stroke-width="0" d="M8.5 3.5c2 1.7 2.1 3 1.8 3.8-.1-.7-1-1.9-1.9-2.2V3.5z"/>
+    <path fill="#337321" stroke="#000" stroke-width="0" d="M4.8 2.5h3.8V7a8 8 0 01-4.3 7.3A8 8 0 010 7V2.5h2.7c0 .2 0 .6.3 1a4 4 0 001.8-1z"/>
+    <path fill="#006ec7" stroke="#000" stroke-width="0" d="M8.6 2.5V7a9 9 0 01-.5 3L4.3 3.1l-3.8 7A8.6 8.6 0 010 7V2.5h8.6z"/>
+    <g fill="#f7e017" stroke="#000" stroke-width="0">
+      <path d="M6 12.2l.4.2c.2-.5.2-1 .1-1.5-.2.5-.9.5-1.1.8l.3.3-1.1.7V9.2l-.1-.7v-.7c0-.2 0-.4-.2-.4s-.2.2-.2.4v4.9c-.2-.5-1-.3-1.3-.8a1 1 0 01.4 0c-.2-1-1-1-1-1.2 0 .3-.2 1.1 0 1.5a1 1 0 01.2-.2c.3.6 1.6.6 2 1.6.1-.4 1-.8 1.6-1.4z"/>
+      <path d="M4.3 9.2h1.5l.2-.4-.2-.3h-3l-.1.3.1.3 1.5.1zm-.2-1.5"/>
+      <path d="M2.8 9.1l.1-.3-.1-.3m.2.6v-.6m.8.7l.1-.4-.1-.3m.1.7l.2-.4c0-.2 0-.3-.2-.3m.7.7l.2-.4c0-.2-.1-.3-.2-.3m.2.7l.2-.4c0-.2-.1-.3-.2-.3m.9.6l.1-.3-.1-.3M2.4 12l.4-.1m3.2.3l.6-.9"/>
+    </g>
+    <g stroke="#000" stroke-width="0">
+      <path fill="#fff" d="M3.5 5.7l.2-.2.2-.1H5l.1.1V7H3.5V5.8"/>
+      <path fill="#e5e5e5" d="M4.7 7.2l.2-.1c.2-.1.1-.1.1-.2V5.5H3.6l-.1.2v1.5h1.1z"/>
+      <path fill="#fff" d="M4.8 7.2H3.5V5.6h1.3v1.6z"/>
+    </g>
+    <path fill="#96877d" stroke="#000" stroke-width="0" d="M7 1.6a.8.8 0 01.1.9h-.3c.1-.4 0-.8-.5-.8-.9-.1-1.9 1.5-3.3 1.7-.5-.5-.4-1.5.1-2a6 6 0 00-1.3-2"/>
+    <path d="M3.3 2A4 4 0 002-.5c.3.1 1 .1 1.3-.2.6-.4 2-1 2.5-.7 0 0 .1.3 0 .4 0-.3-1.4.2-1.8.4-.4.1-.6.3-.4.9-.3-.2-.2-.4-.4-.5l.2 1c-.1-.3-.3-.8-.6-1 .3.5.6 1.8.4 2.5.3 0 .8-.2 1-.4-.2.3-.7.4-1 .5-.2.2-.3.6-.3.9L3.2 2zm3.6-.4c-.2-.3-.7-.4-1.4-.3l.5-.1L5.8 0H6l.3 1.2h.3a17.2 17.2 0 01-.3-1.5l.2-.1.5 2z"/>
+    <path fill="#96877d" stroke="#000" stroke-width="0" d="M6.8 2.5c.1-.4 0-.8-.5-.8s-1 .4-1.5.8h2zM3.1-1.1a3.3 3.3 0 01-1 0v-.3a4 4 0 00-.6.5c.4 0 1.2.1 1.6-.2z"/>
+    <path fill="none" stroke="#000" stroke-width="0" d="M3.1 1.5l.2.7m-1-4a2 2 0 00-.3.6l1.1.1m-1.3.5h.3c.3.1 1 .1 1.3-.2C4-1 5-2 6.3-2"/>
+    <path fill="none" stroke="#000" stroke-width="0" d="M1.5-1c.4.2 1.2.2 1.6 0A5.6 5.6 0 016-2.3"/>
+    <path fill="#337321" stroke="#000" stroke-width="0" d="M8.5 3.5c1.4 1 2.4 1.9 2.7 3.4.3 1.5.9 1.9 1.6 1.5-.2.8-1 1-1.8.3 0 1-.3 2.2-1.4 2.6 0-.6.4-1 .2-1.6 0-.2 0-.7.3-1-.6.3-1.4-.1-1.5-1 .6.4 1.4.4 1.7-.4.3-.8.2-2.1-1.8-3.8zm1.7-7.8c.5-1.2 1.6-1 2-.6 1-.6 1.2.8 2.2.6 0 .2-.4.5-.7.5.4.3-.1.8.6 1-.6.4-1.6 0-1.8-.8-.2.4-1 .4-1.3 0 .7-.1.6-.8.2-1-.4-.3-1-.2-1.2.3zM7-1.8C7.3-.8 8 .1 8.6.7c.8.8 2 .6 2.7-.1C11.2 2 9.8 2 9 1.6c-.4-.1-.7 0-.4.3a8 8 0 003 1c2.3.6 1.5 2.4.8 2.4.2 0 .4-.2.1-.5-2-1.8-6.1-1-6-5.1C6 .7 4.2.3 5-1c.2.2.7.2.8-.1.1-.3 0-.8-.4-1.1 0 0 .3 0 .2-.2l.4.2.3.2v-.2c0 .2.3.3.4.3z"/>
+    <path fill="#f7e017" stroke="#000" stroke-width="0" d="M9 1.6c1 .7 2 .7 3-.5.3-.4.8-.7 1.2-.7.3 0 .3-.4.6-.4-.2 0-.3-.3-.5-.3.6-.2.4-.7.7-1-.2.2-.6-.2-1 .3v-.6c0 .3-.6.3-.7 1 0 .3-.2.3-.3-.3a8.9 8.9 0 00-.4-2c-.2-.6-.3-1.4 0-1.5M9.3 11.9c.2.1.4.3.2 1 0 .2 0 .9.2 1l-.6-.1c0 .2-.4.1-.5-.1-.1 0-.3-.1-.3-.3-.2 0-.4 0-.3-.5l-.5-.1c.3 0 .9-.4 1-.6.2-.3.5-.4.8-.3z"/>
+    <path fill="none" stroke="#000" stroke-width="0" d="M9.1 13.8c.1-.1.2-.5.1-.7m-.6.5a1.1 1.1 0 00.4-.5m-.7.3c.1 0 .5-.5.5-.7m-.8.2c.1 0 .6-.3.8-.6"/>
+    <path fill="#f7e017" stroke="#000" stroke-width="0" d="M6.5-.3c0 1.7.6 2.5 1.6 3.1-.4-.2-.2-1-.7-1.2H8c0-.1-.4-.6-1-.7h.7C7.5.3 6.7.6 6.4-.3zM6.3-2H6l-.4-.2c0 .2-.1.2-.2.2.5.3.5.8.4 1-.1.4-.6.4-.8.2 0 .7.8.9 1.2 0 0 .2.2.1.2.3.3-.3 0-.9-.2-1.4z"/>
+    <path fill="#337321" stroke="#000" stroke-width="0" d="M4.8-5.3a2 2 0 01-.6-1.4c0-.4.2-.8.7-.6-.1 0 0 .3-.2.4l.4-.2.2.2-.1-.4v-.5l-.1.3c0-.1 0-.4-.3-.5a.4.4 0 000 .5c-.2 0-.5 0-.6.2 0-.2 0-.5.2-.7 0 0 0-.2-.2 0-.1-.3-.6-.5-.7-.3-.2.1-.5-.1-.6.1-.2.3-.7.3-.7.6l-.1.5c-.2.2 0 .3.1.5 0-.6 1-1.8 2-1.3l-.2.8c0 .6 0 1.4.6 1.8h.2z"/>
+    <path fill="#cf142b" stroke="#000" stroke-width="0" d="M5.1-7.3c0-.1.3-.3.6-.3.4 0 .8.3 1 .3.4 0 .3.1.2.2 0 0-.1.1 0 .2 0 .1-.1.2-.2 0-.3-.1-.6.2-1 0C5.3-7 5-7 5-7.3z"/>
+    <path fill="#96877d" stroke="#000" stroke-width="0" d="M3.4-3.4c-.2-.5-.8-1-1.1-1.2V-5l.7-.5c1.3.6 3-.3 3.8-1.2l.3.2-.2.2h-.2a9 9 0 01-1 1 4 4 0 00.7 0C7.1-5.5 7.7-6 8-6l.3.3-.2.1h-.2a8 8 0 00-2 2.8c-.4 0-2 0-2.4-.5z"/>
+    <path fill="none" stroke="#000" stroke-width="0" d="M3.5-3.6c-.1-.6 0-1.3.4-1.5.6.5 1.8.5 2.5 0"/>
+    <path fill="none" stroke="#000" stroke-width="0" d="M3.5-3.9l2 .1c.2 0 .7.2.6.3M3.7-4H4l-.2-.2-.1.2.1.1z"/>
+    <path fill="#337321" stroke="#000" stroke-width="0" d="M4-7c-.1-.3-.6-.4-.8 0 0 0 0 .3-.2.3-.1.1-.1.3 0 .4 0 .3 0 .5.2.7 0-.2.3-.4.6-.5.2 0 .6-.2.6-.5 0-.2.1-.4-.3-.5z"/>
+    <path fill="#96877d" stroke="#000" stroke-width="0" d="M2.9-4.7v.5l.5-.2L3-4l.4.2L3-4"/>
+    <path fill="#96877d" stroke="#000" stroke-width="0" d="M3.5-3.6a.8.8 0 110-1v.4"/>
+    <path fill="#337321" stroke="#000" stroke-width="0" d="M2.6-2.8l-.2-.4a.4.4 0 01.3.2v-.4c.1 0 .3.1.3.3v-.5l.3.4.2-.5.2.2.2-.3a1 1 0 01.2.5l.2-.3a.5.5 0 010 .4l.3-.3s.2.1.2.3v-.4a.5.5 0 01.3.3l.1-.4.1.4.2-.2v.4a.8.8 0 01.3-.3.7.7 0 010 .3l.2-.4.3.3a1 1 0 00.3-.2v.1a.8.8 0 010 .4.4.4 0 01.3 0s0 .3-.2.5c-.8-.2-2.4-.3-4.1-.4z"/>
+    <path fill="#f7e017" d="M5.4-7.2s0-.2.3-.2l.8.2h.1v.2h-.9l-.3-.2z"/>
+    <g stroke="#000" stroke-width="0">
+      <path fill="#f7e017" d="M2.8-2.3c-.2.3-.5.2-.5 0s.1-.2 0-.4c0-.2.2-.3.3-.2 0 .1.3-.1.4.1l.2.5c-.1.1-.3 0-.4 0zM4-2.8s.2-.3.4-.1c0 .1.3-.2.4 0l.2.5c0 .2-.3.2-.4.1 0 .1-.3.2-.4 0L4-2.8zm1.7.2c0-.1.3-.3.4-.1 0 0 .4-.1.4.1v.5c0 .1-.1.2-.3 0-.2 0-.3 0-.4-.2a1.1 1.1 0 000-.3z"/>
+      <path fill="#337321" d="M3-2.8s.2-.2.4-.1c.1.1.4-.1.5.1.2.5.2.5.1.6h-.7L3-2.9zm1.8 0c-.1-.1.3-.2.5 0 0 0 .2 0 .3.2.1.2.2.4 0 .4 0 0-.2.1-.2 0-.1 0-.4 0-.5-.2a4.4 4.4 0 00-.2-.4zm1.6.3c0-.1.2-.2.3 0 0 .1.3 0 .3.3v.3c-.1.1-.5 0-.6-.2"/>
+      <path fill="none" d="M2.8-2.3c0-.1-.2-.3-.3-.1m1.1.1"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pr.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pr.svg
new file mode 100644
index 0000000..79cf4c0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pr.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-pr" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M51.6 0h708.7v708.7H51.6z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-37.3) scale(.72249)">
+    <path fill="#ed0000" d="M0 0h1063v708.7H0z"/>
+    <path fill="#fff" d="M0 141.7h1063v141.8H0zm0 283.5h1063v141.7H0z"/>
+    <path fill="#0050f0" d="M0 0l610 353.9L0 707.3V0z"/>
+    <path fill="#fff" d="M268.2 450.5l-65.7-49-65.3 49.5 24.3-80.5-65.3-49.7 80.7-.7 25-80.2 25.6 80 80.7.1-64.9 50.2 24.9 80.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ps.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ps.svg
new file mode 100644
index 0000000..7c1ea3f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ps.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ps" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M237.1 0h493.5v493.5H237.1z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="translate(-246) scale(1.0375)">
+    <g fill-rule="evenodd" stroke-width="1pt">
+      <path d="M0 0h987v164.5H0z"/>
+      <path fill="#fff" d="M0 164.5h987V329H0z"/>
+      <path fill="#090" d="M0 329h987v164.5H0z"/>
+      <path fill="red" d="M0 493.5l493.5-246.8L0 0v493.5z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pt.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pt.svg
new file mode 100644
index 0000000..4255150
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pt.svg
@@ -0,0 +1,57 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-pt" viewBox="0 0 512 512">
+  <path fill="red" d="M204.8 0H512v512H204.7z"/>
+  <path fill="#060" d="M0 0h204.8v512H-.1z"/>
+  <g fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width=".6">
+    <path stroke-width=".7" d="M293.8 326.6c-34.4-1-192-99.4-193-115.1l8.6-14.5C125 219.7 286.2 315.4 302 312l-8.2 14.6"/>
+    <path stroke-width=".7" d="M107.6 195c-3.1 8.3 41.1 35.6 94.3 68 53.2 32.3 99 52.3 102.5 49.5l1.5-2.9c-.6 1-2.2 1.3-4.6.6-14.4-4.2-51.9-21.4-98.3-49.5s-86.8-54.1-93-65.1a6.7 6.7 0 01-.7-3.3h-.2l-1.3 2.3-.2.4zm187 132c-.6 1.1-1.7 1.1-3.7 1-12.9-1.5-52-20.5-98-48.1-53.8-32.2-98.2-61.5-93.3-69.1l1.3-2.4.2.1c-4.3 13 87.6 65.5 93 68.9 53.1 33 98 52.2 102 47.2l-1.5 2.4z"/>
+    <path stroke-width=".7" d="M205 221c34.3-.3 76.8-4.7 101.2-14.4L301 198c-14.5 8-57.1 13.3-96.3 14-46.4-.4-79.1-4.7-95.5-15.7l-5 9.1c30.2 12.7 61 15.5 100.8 15.6"/>
+    <path stroke-width=".7" d="M307.7 206.8c-.9 1.3-16.8 6.8-40.3 10.8a416 416 0 01-62.6 4.6 444.3 444.3 0 01-60-3.8c-24.5-3.9-37.3-9.3-42-11.2l1.2-2.3a186 186 0 0041.3 11 438.9 438.9 0 0059.5 3.7 417.8 417.8 0 0062.1-4.6c24-3.9 37.2-8.9 39-11.2l1.8 3zM303 198c-2.6 2-15.6 6.7-38.4 10.3a414 414 0 01-59.5 4.2 400 400 0 01-57.4-3.7c-23.3-3-35.6-8.5-40-10.1l1.3-2.3c3.4 1.8 15.4 6.6 39 10a423 423 0 0057.1 3.5 408.6 408.6 0 0059-4.2c23-3.2 35.4-9 37.3-10.5l1.6 2.8zM92 262.4c21.2 11.4 68.1 17.2 112.6 17.6 40.5 0 93.3-6.3 113-16.8l-.6-11.4c-6.1 9.7-62.6 19-112.8 18.6-50.2-.4-96.8-8.2-112.3-18.2v10.2"/>
+    <path stroke-width=".7" d="M318.7 260.8v2.7c-3 3.6-21.6 9-44.9 12.7a463.2 463.2 0 01-69.7 4.8c-27.4 0-49.2-2-66.2-4.6a164.8 164.8 0 01-47.3-12.7v-3.2c10.4 6.9 38.3 11.9 47.7 13.4 16.8 2.6 38.5 4.5 65.8 4.5 28.7 0 51.7-2 69.3-4.7 16.8-2.4 40.6-8.7 45.3-12.9zm0-9.7v2.8c-3 3.5-21.6 8.9-44.9 12.6a463.2 463.2 0 01-69.7 4.8c-27.4 0-49.2-2-66.1-4.5A165 165 0 0190.6 254v-3.2c10.4 6.9 38.3 12 47.7 13.4 16.9 2.6 38.6 4.6 65.8 4.6 28.7 0 51.7-2 69.3-4.8 16.8-2.4 40.6-8.7 45.3-12.9zm-114.2 73.5c-48.6-.3-90.3-13.2-99.1-15.4l6.4 10c15.5 6.6 56.2 16.4 93.2 15.3s69.3-4 92-15l6.6-10.5c-15.5 7.3-68.3 15.6-99 15.6"/>
+    <path d="M299.5 317.1a152.6 152.6 0 01-3 4.4 258.9 258.9 0 01-34.7 8.9 315 315 0 01-57.2 5.2c-43.1-.6-78.4-9-95-16.2l-1.4-2.3.3-.4 2.2.9a305.5 305.5 0 0094.1 15.5c20 .1 40-2.3 56.1-5.1 24.8-5 34.8-8.7 37.9-10.4l.7-.5zm5.7-9.4h.1a302 302 0 01-2.2 3.8c-5.7 2-21.3 6.6-44 9.8-15 2-24.3 4-54 4.6a371 371 0 01-100.5-15l-1.2-2.5a424.4 424.4 0 00101.7 15c27.2-.6 38.8-2.6 53.6-4.7 26.5-4 39.8-8.4 43.8-9.7a3 3 0 00-.1-.2l2.8-1.1z"/>
+    <path stroke-width=".7" d="M305.8 253.4c.2 32-16.2 60.8-29.4 73.5a106 106 0 01-72.3 30c-32.3.6-62.7-20.5-70.9-29.7-16-18.1-29-41-29.4-72 2-35 15.7-59.3 35.6-76a106.3 106.3 0 0168.4-24.2c25.4.7 55.2 13.2 75.7 38 13.4 16.2 19.3 33.8 22.3 60.5zM204.4 143.8c62 0 113 50.5 113 112.3a113 113 0 01-113 112.3c-62 0-112.6-50.4-112.6-112.3s50.6-112.3 112.6-112.3"/>
+    <path stroke-width=".7" d="M204.7 143.4c62 0 112.6 50.7 112.6 112.7s-50.6 112.7-112.6 112.7A113 113 0 0192 256a113 113 0 01112.7-112.7zM94.5 256.1c0 60.6 49.8 110.2 110.2 110.2 60.4 0 110.1-49.6 110.1-110.2S265.1 146 204.7 146A110.6 110.6 0 0094.5 256.1z"/>
+    <path stroke-width=".7" d="M204.8 152.8c56.5 0 103.1 46.5 103.1 103.2 0 56.8-46.6 103.2-103.1 103.2A103.6 103.6 0 01101.5 256c0-56.7 46.6-103.2 103.2-103.2zM104 256c0 55.4 45.5 100.7 100.8 100.7 55.2 0 100.7-45.3 100.7-100.7 0-55.4-45.5-100.7-100.8-100.7S104 200.6 104 256z"/>
+    <path stroke-width=".7" d="M209.3 143h-9.7v226.4h9.7z"/>
+    <path stroke-width=".7" d="M208.3 141.7h2.5v229h-2.5v-229zm-9.6 0h2.5v229h-2.5v-229z"/>
+    <path stroke-width=".7" d="M317.4 260.5V252l-6.8-6.3-38.7-10.3-55.8-5.7-67 3.4-47.9 11.4-9.6 7.2v8.3l24.4-11 58-9h55.8l41 4.5 28.4 6.9z"/>
+    <path stroke-width=".7" d="M204.7 238.7a394 394 0 0172.9 6.5c21.1 4.2 36 9.5 41 15.4v3c-6-7.4-26-12.8-41.5-16-20.3-3.9-46-6.4-72.4-6.4-28 0-54 2.7-74 6.6-16 3.2-37.4 9.5-40.1 15.8v-3c1.5-4.4 17.4-10.9 39.8-15.4a405 405 0 0174.3-6.5zm0-9.7a396 396 0 0173 6.5c21 4.2 36 9.5 41 15.5v2.9c-6.1-7.4-26.2-12.8-41.6-15.9-20.3-4-46-6.5-72.4-6.5a402 402 0 00-73.8 6.6c-15.5 3-37.8 9.6-40.3 15.8v-3c1.5-4.3 17.8-11 39.8-15.3a405 405 0 0174.3-6.6zm-.5-49.3c41.9-.2 78.5 5.9 95.2 14.5l6.1 10.5c-14.5-7.8-54-16-101.3-14.7-38.5.2-79.6 4.2-100.3 15.2l7.3-12.2c17-8.8 57-13.2 93-13.3"/>
+    <path stroke-width=".7" d="M204.7 188.4c24 0 47 1.3 65.4 4.6 17.1 3.2 33.5 8 35.8 10.6l1.8 3.2c-5.7-3.7-19.8-7.9-38-11.3a367.2 367.2 0 00-65-4.5c-27 0-48 1.3-66 4.5-19 3.5-32.2 8.6-35.5 11l1.8-3.3c6.3-3.3 16.4-7.2 33.3-10.2 18.6-3.4 39.7-4.4 66.4-4.6zm0-9.6a371 371 0 0163.1 4.4c13.9 2.7 27.6 6.9 32.7 10.6l2.6 4.2c-4.5-5-21.4-9.7-36.4-12.3-17.4-3-39.1-4.2-62-4.4-24 0-46.2 1.5-63.4 4.6-16.4 3.2-27 6.9-31.5 9.8l2.3-3.6c6.2-3.2 16.2-6.2 28.8-8.7 17.3-3.1 39.7-4.6 63.8-4.6zm56 124.1a293.3 293.3 0 00-56-4.2c-69.9.8-92.4 14.3-95.2 18.4l-5.2-8.5C122 295.7 160 288.5 205 289.2c23.3.4 43.4 2 60.4 5.2l-4.8 8.5"/>
+    <path d="M204.3 297.5c19.4.3 38.5 1 57 4.5l-1.4 2.4a297.6 297.6 0 00-55.5-4.3c-25.8-.2-52 2.2-74.6 8.7-7.2 2-19 6.6-20.3 10.4l-1.3-2.2c.4-2.2 7.6-6.9 21-10.6 26-7.5 50.3-8.7 75-9zm.9-9.8a351 351 0 0161.1 5.3l-1.4 2.5a319 319 0 00-59.6-5.2c-25.9 0-53.3 1.9-78.3 9.1-8 2.4-22 7.4-22.4 11.4l-1.3-2.3c.3-3.6 12.3-8.4 23.2-11.6a285 285 0 0178.7-9.2z"/>
+    <path stroke-width=".7" d="M304.4 309.9l-8.4 13-24.1-21.4-62.6-42-70.5-38.8-36.7-12.5 7.8-14.5 2.7-1.4 22.8 5.7 75 38.7 43.3 27.3 36.3 26 14.8 17.1z"/>
+    <path stroke-width=".7" d="M100.8 208.5c6.5-4.3 53.7 16.7 103 46.5 49.3 29.9 96.4 63.6 92.2 70l-1.4 2.1-.7.5c.2 0 .9-1 0-3.3-2.2-6.9-35.5-33.5-91-67-54-32.2-99-51.6-103.5-46l1.4-2.8zm205.3 101.2c4-8-39.7-41-94-73.1-55.5-31.5-95.6-50-102.9-44.5l-1.6 3c0 .1 0-.2.4-.5 1.3-1.1 3.5-1 4.5-1 12.6.1 48.6 16.6 99 45.6 22.1 12.8 93.4 58.6 93.1 71.4 0 1.1.1 1.3-.3 1.9l1.8-2.8z"/>
+  </g>
+  <g transform="translate(-68.3 28.4) scale(1.13778)">
+    <path fill="#fff" stroke="#000" stroke-width=".7" d="M180.6 211a58.7 58.7 0 0017.5 41.7 59 59 0 0041.8 17.6 59.4 59.4 0 0042-17.4 59 59 0 0017.4-41.8v-79.2l-118.7-.2V211z"/>
+    <path fill="red" stroke="#000" stroke-width=".5" d="M182.8 211.1a56.4 56.4 0 0016.8 40 57 57 0 0040.2 16.8 56.9 56.9 0 0040.2-16.6 56.4 56.4 0 0016.7-40v-77H183v76.8m91-53.7v48.9l-.1 5.1a33.2 33.2 0 01-10 24 34 34 0 01-24 10c-9.4 0-17.7-4-23.9-10.2a34 34 0 01-10-24v-54l68 .2z"/>
+    <g id="e">
+      <g id="d" fill="#ff0" stroke="#000" stroke-width=".5">
+        <path stroke="none" d="M190.2 154.4c.1-5.5 4-6.8 4-6.8.1 0 4.3 1.4 4.3 6.9h-8.3"/>
+        <path d="M186.8 147.7l-.7 6.3h4.2c0-5.2 4-6 4-6 .1 0 4 1.1 4.1 6h4.2l-.8-6.4h-15zm-1 6.4h17c.3 0 .6.3.6.7 0 .5-.3.8-.6.8h-17c-.3 0-.6-.3-.6-.8 0-.4.3-.7.7-.7z"/>
+        <path d="M192 154c0-3.3 2.3-4.2 2.3-4.2s2.3 1 2.3 4.2H192m-5.8-9h16.3c.3 0 .6.4.6.8 0 .3-.3.6-.6.6h-16.3c-.3 0-.6-.3-.6-.7 0-.3.3-.6.6-.6zm.4 1.5H202c.3 0 .6.3.6.7 0 .4-.3.7-.6.7h-15.5c-.4 0-.6-.3-.6-.7 0-.4.2-.7.6-.7zm5-10.6h1.2v.8h.9v-.8h1.3v.9h.9v-1h1.2v2c0 .4-.2.6-.5.6h-4.4c-.3 0-.6-.2-.6-.5v-2zm4.6 2.7l.3 6.4h-4.3l.3-6.5h3.7"/>
+        <path id="a" d="M191 141.6v3.4h-4v-3.4h4z"/>
+        <use width="100%" height="100%" x="10.6" xlink:href="#a"/>
+        <path id="b" d="M186.3 139h1.2v1h.9v-1h1.2v1h.9v-1h1.2v2c0 .4-.2.6-.5.6h-4.3a.6.6 0 01-.6-.6v-2z"/>
+        <use width="100%" height="100%" x="10.6" xlink:href="#b"/>
+        <path fill="#000" stroke="none" d="M193.9 140.6c0-.6.9-.6.9 0v1.6h-.9v-1.6"/>
+        <path id="c" fill="#000" stroke="none" d="M188.6 142.8c0-.6.8-.6.8 0v1.2h-.8v-1.2"/>
+        <use width="100%" height="100%" x="10.6" xlink:href="#c"/>
+      </g>
+      <use width="100%" height="100%" y="46.3" xlink:href="#d"/>
+      <use width="100%" height="100%" transform="rotate(-45.2 312.8 180)" xlink:href="#d"/>
+    </g>
+    <use width="100%" height="100%" x="45.7" xlink:href="#d"/>
+    <use width="100%" height="100%" transform="matrix(-1 0 0 1 479.8 0)" xlink:href="#e"/>
+    <g id="f" fill="#fff">
+      <path fill="#039" d="M232.6 202.4a8.3 8.3 0 002.2 5.7 7.2 7.2 0 005.3 2.4c2.1 0 4-1 5.3-2.4a8.3 8.3 0 002.2-5.7v-10.8h-15v10.8"/>
+      <circle cx="236.1" cy="195.7" r="1.5"/>
+      <circle cx="244.4" cy="195.7" r="1.5"/>
+      <circle cx="240.2" cy="199.7" r="1.5"/>
+      <circle cx="236.1" cy="203.9" r="1.5"/>
+      <circle cx="244.4" cy="203.9" r="1.5"/>
+    </g>
+    <use width="100%" height="100%" y="-26" xlink:href="#f"/>
+    <use width="100%" height="100%" x="-20.8" xlink:href="#f"/>
+    <use width="100%" height="100%" x="20.8" xlink:href="#f"/>
+    <use width="100%" height="100%" y="25.8" xlink:href="#f"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pw.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pw.svg
new file mode 100644
index 0000000..83bc3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/pw.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-pw" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M61.7 4.2h170.8V175H61.7z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#a)" transform="translate(-185 -12.5) scale(2.9973)">
+    <path fill="#4aadd6" d="M0 4.2h301.2V175H0z"/>
+    <path fill="#ffde00" d="M185.9 86.8a52 52 0 01-53 50.8 52 52 0 01-53.2-50.8c0-28 23.8-50.8 53.1-50.8s53 22.7 53 50.8z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/py.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/py.svg
new file mode 100644
index 0000000..88f55e6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/py.svg
@@ -0,0 +1,156 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-py" viewBox="0 0 512 512">
+  <path fill="#0038a8" d="M0 341h512v171H0z"/>
+  <path fill="#fff" d="M0 170.7h512v170.6H0z"/>
+  <path fill="#d52b1e" d="M0 0h512v170.7H0z"/>
+  <g fill="none" stroke="#000" transform="translate(-209) scale(1.55152)">
+    <circle cx="300" cy="165" r="42.2" stroke-width="1.1"/>
+    <circle cx="300" cy="165" r="34.7" stroke-width=".5"/>
+    <circle cx="300" cy="165" r="26.6" stroke-width=".4"/>
+  </g>
+  <path d="M221.6 281.3l-7.6 4.5-2.3-4a6.6 6.6 0 01-.8-1.7 2 2 0 01.2-1.3c.2-.5.5-.8 1-1.1a2.4 2.4 0 012.4-.1l.8.6a2.7 2.7 0 010-.7l.1-.6.3-.7 1.5-2.4 1.6 2.6-1.6 2.7a2 2 0 00-.3.8 1.1 1.1 0 00.1.6l.2.2 3-1.8zm-5.9.3l-.6-1a5 5 0 00-.4-.6.7.7 0 00-.5-.2.8.8 0 00-.5.1c-.3.2-.4.3-.5.6l.4 1 .6 1zm-7.1-5.9l-2.3-7 1.8-.5 1.4 4.3 1.3-.4-1.3-4 1.7-.6 1.3 4 1.7-.5-1.5-4.5 2-.6 2.3 7zm-3-10.3l-.6-4.5c0-1 0-1.8.5-2.3.4-.5 1-.9 1.9-1 .9 0 1.6.1 2.2.6.5.5.9 1.3 1 2.4l.2 1.4 3.2-.3.3 2.7zm3.4-3.1l-.1-.7c0-.5-.2-.9-.4-1a.9.9 0 00-.7-.3 1 1 0 00-.7.3c-.2.2-.2.6-.2 1.1l.1.8zm-3.7-13.5l.3-2.7 5.2.6c.5 0 1 .2 1.4.4.5.2.9.5 1.2.9l.6 1.2a4 4 0 010 1.9c0 .4 0 .9-.2 1.4 0 .5-.2.9-.5 1.2l-.8.8a2.8 2.8 0 01-1.1.5c-.6.1-1 .2-1.5.1l-5.2-.6.3-2.7 5.3.6c.5 0 .9 0 1.2-.3.3-.2.4-.6.5-1a1.5 1.5 0 00-.3-1.2c-.2-.3-.6-.4-1-.5zm1.1-6.4l1.7-4.9c.3-.8.7-1.3 1.3-1.6a2 2 0 011.7-.1 2 2 0 011.3 2c.4-.6.8-1 1.2-1a2 2 0 011.5 0 2.4 2.4 0 011.6 1.8v1l-.4 1.2-1.5 4.5zm4.2-1.5l.4-1.1c.2-.4.2-.7.1-1 0-.1-.2-.3-.5-.4a.8.8 0 00-.7 0l-.5.8-.4 1.2zm3.3 1.2l.5-1.4v-1a.8.8 0 00-.5-.5.8.8 0 00-.7 0c-.2.2-.4.5-.5 1l-.5 1.3zm-3.3-10.3l1.4-2.4 5.7 3.4 2.2-3.6 1.9 1.1-3.6 6zm5.4-8.1l1.7-2.1 6.8 5.6-1.8 2.1zm11.8-4.6l2.3-1c.3.6.5 1.2.5 1.8a3.3 3.3 0 01-.3 1.6 5 5 0 01-1.2 1.5 5.7 5.7 0 01-2 1.2c-.7.2-1.4.2-2.2 0a5 5 0 01-2.3-1.7c-1-1-1.4-2.2-1.3-3.3 0-1.1.6-2.1 1.7-3a4.5 4.5 0 012.4-1.2 4 4 0 012.5.6l-1.5 2a2 2 0 00-.6-.3 1.6 1.6 0 00-.7 0 1.6 1.6 0 00-.7.4c-.5.4-.7.9-.6 1.5 0 .4.3 1 .9 1.5.6.8 1.2 1.2 1.6 1.3.5 0 .9 0 1.3-.4s.6-.7.6-1.1c0-.4-.1-.9-.4-1.4zm9.4-3.4l-2.7 1.5.3 1.5-2.5 1.3-1.2-9.4 2.6-1.4 7.1 6.3-2.5 1.3zm-1.4-1.4l-2.3-2.3.6 3.2zm8.4-9l4-.7a4.8 4.8 0 012 0c.5.1.9.3 1.3.7.4.3.7.7 1 1.2l.4 1.7c.2 1 .2 1.7 0 2.2a3.6 3.6 0 01-.6 1.5 2.9 2.9 0 01-1 .9l-1.6.5-4 .7zm3 1.5l.8 4.7h.7c.5-.2 1-.3 1.1-.5.3-.1.4-.4.5-.7v-1.6c-.2-.9-.5-1.5-.8-1.8-.4-.3-1-.4-1.6-.2zm8.3-3l7.3.2v2l-4.6-.2-.1 1.4 4.2.1v1.8l-4.3-.1v1.7l4.7.2-.1 2-7.5-.3zm10.6.8l2.7.6-1.6 6.5 4.1 1-.5 2.1-6.8-1.6zm14.2 4.7l3.9 2.3c.9.5 1.4 1 1.6 1.7.1.7 0 1.4-.4 2.1a2.7 2.7 0 01-1.8 1.4c-.7.2-1.5 0-2.5-.6l-1.3-.7-1.6 2.8-2.4-1.4zm.5 4.6l.5.4 1.1.3a.9.9 0 00.6-.4 1 1 0 00.2-.8c-.1-.3-.3-.5-.8-.8l-.6-.4zm7.6 10.3l-2.3-2.1-1.3.8-2-2 8.4-4.1 2.2 2-3.6 8.7-2-2zm.9-1.8l1.4-3-2.8 1.7zm1 5.9l7.3-5 2.6 3.7 1 1.8-.1 1.3c-.2.4-.5.8-1 1.1a2 2 0 01-1.2.5 2.5 2.5 0 01-1.2-.2 3.3 3.3 0 01-.8-.6v1.4l-.3.6-1.4 2.5-1.7-2.5 1.4-2.7.3-.8c0-.2 0-.5-.2-.7l-.2-.2-3 2zm6-.7l.6 1 .5.4a.7.7 0 00.5.3c.1 0 .3 0 .5-.2a.8.8 0 00.4-.6l-.4-1-.7-1zm2.7 13.2l-1.2-2.9-1.5.1-1-2.5 9.4-.2 1 2.7-6.9 6.4-1-2.7zm1.5-1.2l2.6-2.1-3.3.2zm2.3 9.6l1.8-.3.7 4.2-3.8.6a8.6 8.6 0 01-1.4-2 7.4 7.4 0 01-.5-4.8c.3-.7.7-1.2 1.4-1.7a5.3 5.3 0 012.3-.9 5 5 0 012.6.2 3.9 3.9 0 011.9 1.5c.3.6.6 1.3.7 2.3a7 7 0 010 2.2 2.8 2.8 0 01-.5 1.3l-1.3 1-.9-2.6c.3-.1.5-.3.7-.6.1-.3.2-.7.1-1a1.8 1.8 0 00-.8-1.4c-.5-.3-1.2-.3-2-.2-1 .1-1.7.4-2 .8a1.9 1.9 0 00-.4 1.6l.3.9.6.8h.8zm5.8 12.8l-.3 2.7-5.2-.4a4.4 4.4 0 01-1.4-.4 3.2 3.2 0 01-1.2-.9 3 3 0 01-.6-1.1 5.5 5.5 0 01-.1-2c0-.4 0-.9.2-1.4l.4-1.2a3.2 3.2 0 01.9-.9 2.8 2.8 0 011-.5 5.3 5.3 0 011.6 0l5.2.4-.2 2.7-5.4-.5c-.5 0-.9 0-1.2.3-.3.3-.4.6-.5 1.1 0 .5 0 .8.3 1.1.3.3.6.5 1.1.5zm-9.8 9.4l1-3-1.2-.9.8-2.6 7.4 5.9-1 2.8-9.4.4 1-2.7zm2 0h3.3l-2.7-1.8zm3.2 7.2l-1.6 2.6H299l1.6 3-1.6 2.6-2.6-5.6-3.2-1.8 1.4-2.4 3.2 1.9z"/>
+  <g fill="#009b3a" stroke="#000" stroke-width=".1">
+    <path d="M265.2 225.4s24.9 10.8 20.5 33c-4.3 22.1-18.2 22-23.6 24.4-5.5 2.5-9.2 6-11.4 5.5-2.1-.5-5-2.2-5-2.2s-.2 3.7 4.2 4.3c4.4.7 10-5.7 12.9-6.4s19.6-2.6 23.8-25.1c4.8-24.1-21.3-32.8-21.4-33.5z"/>
+    <path d="M277.7 230.2a3.4.8 75.1 01-1.6 0 3.4.8 75.1 111.6 0zm-.8.2a3.5.8 63.3 11-1.5.5 3.5.8 63.3 011.5-.5zm-2.5 1.6a3.3.8 17 01-.2 1.7 3.3.8 17 01.2-1.7z"/>
+    <path d="M274.8 231.1a3.5.8 34.2 11-.8 1.4 3.5.8 34.2 11.7-1.4z"/>
+    <path d="M275.8 230.7a3.6.8 46.2 11-1 1 3.6.8 46.2 011-1z"/>
+    <path d="M277.5 233.8l-1.1.6c-.3.1-.6-.3-1.2 0-.6.4-1 1-1.2 1.3-.1.4.2.5 1 .2.7-.4 1-1 1.3-1.2.3-.3 1-.6 1.3-.7l1-1.5c.2-.4 1.2-1 1.6-1.9.3-.6.2-1.2-.3-1a4 4 0 00-1.2 1.4c-.3.5 0 1-.3 1.5l-.9 1.3zm7.8 2.6a1.1 5.1-1.6 11-2.4-.6 1.1 5.1-1.6 112.4.6z"/>
+    <path d="M284 236.3a5.3 1.1 77.5 11-2.3.1 5.3 1.1 77.5 112.3 0z"/>
+    <path d="M280 237.6a5 1.2 35 11-.8 2.3 5 1.2 35 11.8-2.4z"/>
+    <path d="M280.8 236.4a5.3 1.1 50.9 01-1.5 1.7 5.3 1.1 50.9 111.5-1.7z"/>
+    <path d="M282.4 236.3a5.4 1 61.8 11-1.9 1 5.4 1 61.8 111.9-1z"/>
+    <path d="M283.8 241.5l-1.9.4c-.3 0-.6-.7-1.6-.5-1 .2-1.8.9-2 1.3-.4.4 0 .8 1.2.6 1.2-.2 1.6-1 2.2-1.1l2.1-.4 1.8-1.7c.5-.5 2-1 2.8-2 .7-.8.7-1.6 0-1.5a5 5 0 00-2.1 1.4c-.5.6-.4 1.5-1 2l-1.5 1.5zm5.5 5.2a1.1 5.2 8.7 11-2.2-1 1.1 5.2 8.7 112.2 1z"/>
+    <path d="M288 246.4a1.1 5.4-2 11-2.1-.3 1.1 5.4-2 112.2.3z"/>
+    <path d="M284 246.8a5 1.2 46 11-1.2 2.2 5 1.2 46 111.1-2.2z"/>
+    <path d="M285 245.9a5.4 1.1 61.8 11-1.8 1.4 5.4 1.1 61.8 111.7-1.4z"/>
+    <path d="M286.5 246a5.5 1 72.5 11-2 .8 5.5 1 72.5 112-.8z"/>
+    <path d="M287 251.5h-2c-.3 0-.4-.8-1.4-.8-1 0-2 .5-2.3.9-.4.3 0 .8 1.1.8 1.2 0 1.8-.6 2.4-.7h2.1l2-1.3c.6-.4 2.3-.6 3.2-1.4.8-.6 1-1.5.3-1.4a5 5 0 00-2.4 1c-.6.4-.6 1.3-1.3 1.7l-1.8 1.2m2.7 6.7a1.1 5.2 31.3 01-1.6-1.8 1.1 5.2 31.3 011.6 1.8"/>
+    <path d="M288.6 257.4a1 5.4 20.6 01-1.9-1.2 1 5.4 20.6 011.9 1.2m-3.9-1.3a5 1.2 70 01-2 1.6 5 1.2 70 012-1.6"/>
+    <path d="M286 255.7a1 5.5-4.9 01-2.2.6 1 5.5-4.9 112.2-.6"/>
+    <path d="M287.4 256.5a1 5.5 5.5 11-2.2-.2 1 5.5 5.5 112.2.2"/>
+    <path d="M285.6 261.7l-1.7-.8c-.3-.2-.1-.9-1-1.3-1-.4-2-.4-2.4-.2-.5.2-.4.7.7 1.3 1 .5 1.8.1 2.4.4l2 .8 2.2-.4c.7 0 2.3.4 3.4 0 1-.2 1.5-1 .9-1.2a4.8 4.8 0 00-2.6-.1c-.7.2-1.1 1-1.8 1.2-.5 0-2 .4-2.1.3m1 8.2a1.3 5.9 48.5 11-1.2-2.6 1.3 5.9 48.5 111.1 2.6"/>
+    <path d="M285.6 268.7a1.3 6.2 37.5 11-1.6-2 1.3 6.2 37.5 111.6 2"/>
+    <path d="M281.8 265.8a1.3 6-3.5 11-2.6 1 1.3 6-3.5 112.6-1"/>
+    <path d="M283.3 265.8a1.3 6.3 11.6 01-2.5-.2 1.3 6.3 11.6 112.5.2"/>
+    <path d="M284.6 267.1a1.2 6.4 22.1 11-2.3-.9 1.2 6.4 22.1 112.3 1"/>
+    <path d="M281 272.3l-1.7-1.5c-.2-.3.2-1-.7-1.8a3.9 3.9 0 00-2.6-1c-.6 0-.6.6.4 1.6s2 .8 2.5 1.3a10 10 0 011.9 1.6l2.7.4c.7.1 2.3 1.3 3.7 1.3 1.2 0 2-.6 1.3-1.1a5.6 5.6 0 00-2.7-1c-.9 0-1.6.7-2.5.6l-2.4-.4m-2.4 7.8a1.5 6.5 79.8 11.3-3 1.5 6.5 79.8 11-.3 3"/>
+    <path d="M278.4 278.4a1.4 6.8 68.5 01-.5-2.8 1.4 6.8 68.5 01.5 2.8"/>
+    <path d="M276.1 273.5a1.5 6.5 26.2 01-3-.6 1.5 6.5 26.2 113 .6"/>
+    <path d="M277.7 274.4a1.4 6.9 41.8 01-2.4-1.6 1.4 6.9 41.8 012.4 1.6"/>
+    <path d="M278.1 276.4a1.4 7 52.7 11-1.7-2.2 1.4 7 52.7 011.8 2.2"/>
+    <path d="M271.8 279.2l-.7-2.3c-.1-.5.7-1 .3-2.2a4.5 4.5 0 00-2-2.5c-.5-.3-1 .3-.5 1.8.4 1.5 1.5 2 1.8 2.7l.8 2.6c.6.3 1.7 1.4 2.4 2 .7.5 1.6 2.5 3 3.3 1 .7 2 .6 1.8-.3a6.5 6.5 0 00-2.1-2.5c-.8-.6-2-.3-2.7-.9-.5-.4-2.1-1.6-2-1.7"/>
+    <path d="M268 285.9a1.9 6.5 89 010-3.8 1.9 6.5 89 010 3.8"/>
+    <path d="M267.1 280a1.8 6.8 37.6 01-2.8-2.4 1.8 6.8 37.6 112.8 2.4"/>
+    <path d="M268 283a1.9 6.6 66.5 01-1.3-3.5 1.9 6.6 66.5 011.3 3.5m1.8-57a4 .8 41.1 01-1.5.8 4 .8 41.1 111.5-.8m-2 1.7a4.1.8 8.2 01.3 1.7 4.1.8 8.2 11-.3-1.7"/>
+    <path d="M268.6 226.6a4.3.8 26.8 11-.8 1.4 4.3.8 26.8 01.8-1.4m-29.5 52.9s5.5 1.2 10.3 2.9c4.7 1.7 12 7.7 14 8 2.1.1 5.1-.6 6.3-3.8-3.4 1-5.4 2.3-8.6.5-1.1-.4-4.8-3.8-9-5.6a103 103 0 00-12.2-3.9l-.8 1.9m5.9-49.6l6.3-3.4-7 1.8-.8 1.2 1.5.4"/>
+    <path d="M251 231.4c-2.5-.4-6.3-1.3-8.7-1.5 1.7-1.8 4-4.9 5.4-6.8-1 1.8-2.4 4.2-3 6 1.7.9 4.4 1.6 6.3 2.3"/>
+    <path d="M243.8 230.3l5.6-4.4-6.5 3-.6 1.3h1.5"/>
+    <path d="M249.8 231.3c-2.5-.4-6.2-1.3-8.6-1.5 1.6-1.9 3.8-5 5.2-7-1 1.8-2.3 4.3-2.9 6.1 1.7 1 4.4 1.7 6.3 2.4"/>
+    <path d="M242.9 230.6l6.6-2.7-7.1 1.1-1 1.2 1.5.4"/>
+    <path d="M249 231.4c-2.4-.2-6.3-.7-8.7-.6 1.4-2.1 3.2-5.6 4.4-7.7-.7 2-1.8 4.6-2.1 6.5 1.8.8 4.5 1.3 6.5 1.8"/>
+    <path d="M242.2 230.7l4.5-5.5-5.7 4.2-.2 1.5 1.4-.3"/>
+    <path d="M249 231.8c-2.6 0-6.8-.3-9.3 0 1.3-2.5 2.8-6.4 3.8-8.8-.5 2.2-1.4 5.2-1.6 7.3 2 .7 5 1 7.1 1.5"/>
+    <path d="M241.3 232a321.4 321.4 0 015.4-5.3l-6.5 3.7-.5 1.5h1.6"/>
+    <path d="M247.8 232c-2.8 0-7.2-.2-10 .1 1.8-2.7 4.4-7 6-9.7-1 2.4-2.7 5.8-3.3 8 2 .8 5.1 1 7.3 1.5"/>
+    <path d="M239.5 232.3l7-5.9-8 4.2-.7 1.7h1.7"/>
+    <path d="M246.8 232.1c-2.8.4-7.2.9-10 1.6a129 129 0 004.5-10.3c-.6 2.5-1.7 6-2 8.3 2.1.4 5.2.3 7.5.4"/>
+    <path d="M238.6 233.5a498.6 498.6 0 015.3-7.4l-6.7 6-.3 1.9 1.6-.5"/>
+    <path d="M245.2 233c-2.8.3-7.2.5-10 1 1.6-2.7 3.8-7.2 5-10-.7 2.5-2 5.9-2.4 8.2 2 .5 5.2.5 7.4.8"/>
+    <path d="M237.6 234.3l6.8-6-7.7 4.2-.8 1.8h1.7"/>
+    <path d="M244.4 233.3c-2.9.6-7.3 1.3-10 2.2 1.3-2.9 3-7.6 4-10.5-.5 2.6-1.4 6-1.6 8.4 2.1.3 5.3-.1 7.6-.1"/>
+    <path d="M236.5 234.6l4.3-8.1-5.9 7v1.8l1.6-.7"/>
+    <path d="M244.4 233.8c-3 .7-7.8 1.8-10.7 2.9 1.1-3.3 2.4-8.6 3.2-11.9-.3 2.9-1 6.8-.8 9.4 2.3.2 5.8-.3 8.3-.4"/>
+    <path d="M235.6 236.4l5.5-8-7 6.5-.3 2 1.8-.5"/>
+    <path d="M243.2 234.7c-3 1-7.7 2.2-10.5 3.4 1-3.3 2-8.6 2.6-11.9-.2 2.9-.6 6.8-.4 9.3 2.4.1 5.8-.6 8.3-.8"/>
+    <path d="M234.5 237.6l4.2-9-6 7.8v2l1.8-.8"/>
+    <path d="M242 235.9c-3 .7-7.8 1.6-10.8 2.6 1.3-3.2 2.8-8.5 3.7-11.7-.4 2.9-1.2 6.7-1.2 9.3 2.4.3 5.8-.2 8.3-.2"/>
+    <path d="M233.5 238.5l6.8-7-8 5.2-.7 2 2-.2"/>
+    <path d="M240.7 237.1c-3 .4-7.8.8-10.7 1.6 1.4-3.2 3.2-8.3 4.3-11.5-.6 2.8-1.6 6.7-1.8 9.3 2.3.5 5.7.4 8.2.6"/>
+    <path d="M232.2 237.8l4.6-8.8-6.3 7.4v2l1.7-.6"/>
+    <path d="M241 236c-3.3 1.4-8.4 3.3-11.5 5 1-4 2-10.2 2.7-14-.1 3.3-.6 7.9-.3 10.8 2.7 0 6.4-1.2 9.2-1.7"/>
+    <path d="M231.5 240.4l5.6-10-7.3 8.5-.2 2.4 2-.9"/>
+    <path d="M239.8 237.3c-3.3 1.5-8.4 3.7-11.4 5.5.8-4 1.6-10.1 2.1-14 0 3.3-.2 7.9.2 10.7 2.7-.2 6.3-1.5 9-2.2"/>
+    <path d="M230.4 242l4-10.8-6 9.6.1 2.3 1.9-1.1"/>
+    <path d="M238.3 238.2c-3.2 1.6-8.3 3.8-11.3 5.6.8-4 1.6-10.1 2-14 .1 3.3-.1 7.8.3 10.7 2.6-.3 6.3-1.6 9-2.3"/>
+    <path d="M229.5 243.3l6.2-9.6-7.9 7.8-.3 2.4 2-.6"/>
+    <path d="M238 237.7c-2.8 2.3-7.4 5.7-10 8.3 0-4-.6-10.2-.9-14 .8 3.2 1.5 7.6 2.5 10.2 2.5-.9 5.9-3.1 8.5-4.5"/>
+    <path d="M229.8 243.7l.7-11.4-3 11 .8 2.2 1.5-1.8"/>
+    <path d="M237.2 238.8c-2.9 2.3-7.5 5.6-10 8.1 0-4-.6-10-.9-13.9.7 3.2 1.4 7.6 2.4 10.2 2.6-.9 6-3.1 8.5-4.4"/>
+    <path d="M229 245.6a633.9 633.9 0 013-11.1l-5 10.2.3 2.3 1.8-1.4"/>
+    <path d="M236.9 239c-2.7 2.7-7.1 6.7-9.5 9.6-.5-4-1.7-10.3-2.4-14.1 1 3.1 2.3 7.5 3.6 10.1 2.6-1.2 5.8-3.9 8.3-5.6"/>
+    <path d="M229 247l.6-11.8-2.9 11.5.9 2.2 1.5-1.8"/>
+    <path d="M236 241c-2.9 2.4-7.5 6-10.2 8.7 0-4.2-.8-10.5-1.2-14.5.9 3.3 1.7 7.8 2.8 10.5 2.6-1 6-3.3 8.6-4.7"/>
+    <path d="M228.2 248.4l4.1-11.2-6.2 10 .2 2.4 1.9-1.2"/>
+    <path d="M236 241c-2.6 2.8-6.7 6.9-9 9.8-.4-4.1-1.6-10.4-2.3-14.3 1 3.1 2.2 7.6 3.5 10.2 2.4-1.2 5.4-4 7.8-5.7"/>
+    <path d="M228.4 249l-.5-11.8-2 11.7 1.2 2 1.3-2"/>
+    <path d="M234.7 242c-2.5 2.7-6.5 6.8-8.7 9.8-.5-4.2-1.9-10.5-2.7-14.4 1.1 3.2 2.4 7.7 3.8 10.3 2.3-1.3 5.3-4 7.6-5.8"/>
+    <path d="M227.7 250.2l1.3-12-3.5 11.3.7 2.3 1.5-1.6"/>
+    <path d="M234.2 242.4c-2.3 3-6 7.5-8 10.6-.8-4-2.6-10.2-3.7-14 1.3 3 3 7.4 4.5 9.9 2.2-1.5 5-4.6 7.2-6.5"/>
+    <path d="M227.6 251.3l-.7-12-1.5 11.9 1 2 1.2-2"/>
+    <path d="M234 243c-2.2 3.2-5.7 8-7.5 11.2-1-4-3.2-10.1-4.5-13.9 1.5 3 3.4 7.3 5 9.7 2.2-1.6 4.8-4.8 7-7"/>
+    <path d="M228.4 252.4l1.2-12-3.4 11.3.7 2.4 1.5-1.7"/>
+    <path d="M233.5 244.2c-1.9 3.4-4.9 8.6-6.4 12.1-1.4-3.9-4-9.6-5.7-13.2 1.8 2.8 4 6.8 5.9 9 2-2 4.3-5.5 6.2-8"/>
+    <path d="M228 253.4l-3.4-11.4 1.1 12 1.6 1.7.7-2.3"/>
+    <path d="M233.4 245.5c-2 3.4-5 8.6-6.6 12.1-1.5-3.9-4.1-9.6-5.8-13.2 1.8 2.8 4 6.8 6 9 2-2 4.5-5.5 6.4-7.9"/>
+    <path d="M228.1 255.6l-1.2-12-1.1 12 1.2 2 1.1-2"/>
+    <path d="M233.6 246.6c-2 3.4-5.2 8.4-6.8 11.9-1.4-3.9-4-9.7-5.6-13.3 1.8 2.8 4 6.8 5.8 9 2.2-1.8 4.6-5.3 6.6-7.6"/>
+    <path d="M228 256.5l-2.2-11.8-.1 12.1 1.3 1.9 1-2.2"/>
+    <path d="M232.8 248.3c-2.2 3.2-5.6 8-7.4 11.4-1.2-4-3.5-10-5-13.6 1.7 2.9 3.7 7 5.4 9.4 2.2-1.8 4.9-5 7-7.2"/>
+    <path d="M227 257.8l1-12-3.3 11.4.8 2.3 1.5-1.7"/>
+    <path d="M232.9 248.6c-1.8 3.5-4.8 8.8-6.3 12.3-1.5-3.8-4.4-9.4-6.2-12.9 2 2.7 4.3 6.6 6.3 8.6 2-2 4.3-5.6 6.2-8"/>
+    <path d="M226.6 258.8l-3.7-11.2 1.4 12 1.6 1.6.7-2.4"/>
+    <path d="M232.4 249.5c-1.3 3.8-3.4 9.7-4.4 13.5-2-3.4-5.7-8.3-8-11.3 2.3 2.2 5.2 5.5 7.5 7 1.7-2.3 3.4-6.4 4.9-9.2"/>
+    <path d="M229.9 259.8l-4-11.1 1.7 11.9 1.6 1.5.7-2.4"/>
+    <path d="M232.4 250.7c-1.3 3.8-3.4 9.7-4.3 13.5-2-3.4-5.8-8.2-8-11.2 2.2 2.2 5.1 5.4 7.4 7 1.7-2.4 3.4-6.5 4.9-9.3"/>
+    <path d="M229.9 261.6l-5.2-10.3 3 11.5 1.8 1.3.4-2.5"/>
+    <path d="M232 251.6c-.8 4-2.2 10.1-2.7 14-2.5-3-6.7-7.3-9.3-10 2.5 2 5.8 4.7 8.2 6 1.4-2.7 2.6-7 3.8-10"/>
+    <path d="M230.2 263.3l-2.7-11.7.4 12.1 1.5 1.8.8-2.2"/>
+    <path d="M232 252.9c-.4 4-1.3 10.3-1.3 14.3-2.8-2.7-7.4-6.4-10.2-8.7 2.7 1.5 6.2 3.9 8.7 4.8 1.1-2.8 2-7.3 2.8-10.4"/>
+    <path d="M230.4 264.1l-7.4-8.4 5.6 10.2 2 .7-.2-2.5"/>
+    <path d="M232.2 254.3c-.5 4-1.4 10.3-1.4 14.3-2.8-2.7-7.4-6.4-10.2-8.7 2.7 1.5 6.2 3.9 8.7 4.8 1.2-2.8 2-7.2 2.9-10.4"/>
+    <path d="M231.2 266a602.2 602.2 0 01-5.7-10l3.6 11.3 1.9 1.2.2-2.4"/>
+    <path d="M232.5 256c-.3 4-.9 10.4-.8 14.4-2.9-2.6-7.6-6-10.5-8.1 2.7 1.3 6.3 3.5 8.9 4.2 1-2.9 1.6-7.3 2.4-10.5"/>
+    <path d="M232 268c-.2 0-7-9-7-9l5 10.6 2 .8V268"/>
+    <path d="M232.6 257.9c-.3 4-.8 10.4-.7 14.4a128 128 0 00-10.6-8c2.7 1.3 6.4 3.4 9 4.1 1-2.9 1.5-7.3 2.3-10.5"/>
+    <path d="M232.6 269.4l-5-10.6 2.8 11.6 1.7 1.5.5-2.5"/>
+    <path d="M232.8 259c0 4.2.1 10.6.6 14.5-3-2-8.1-4.9-11.2-6.6 2.8 1 6.6 2.7 9.2 3 .7-3 1-7.5 1.3-10.8"/>
+    <path d="M233.4 269l-9-6.1 7.6 8.3 2.1.2-.7-2.4"/>
+    <path d="M233 259.5c.4 4.1.7 10.5 1.4 14.4a128 128 0 00-11.5-6.1c2.8.8 6.7 2.3 9.3 2.6.6-3 .6-7.6.8-10.9"/>
+    <path d="M234.4 271.3l-7.5-8.6 5.7 10.3 2 .8-.2-2.5"/>
+    <path d="M233.7 261c.5 4.2 1.1 10.5 2 14.4-3.3-1.8-8.5-4-11.8-5.5 3 .7 6.8 2 9.5 2.1.4-3 .2-7.6.3-11"/>
+    <path d="M235.8 272.7l-8.8-6.2 7.5 8.5h2l-.7-2.3"/>
+    <path d="M234 262.8c.8 4 1.8 10.3 2.9 14.2-3.4-1.6-8.7-3.3-12-4.4 2.9.4 6.9 1.3 9.5 1.2.2-3.1-.3-7.6-.4-11"/>
+    <path d="M236.8 274l-7.3-8.7 5.5 10.4 2 .8-.2-2.5"/>
+    <path d="M234.4 264c1.2 3.9 2.8 10 4.3 13.7-3.5-1-9-2.1-12.3-2.8 2.9 0 6.9.4 9.5 0 0-3.2-1-7.6-1.5-11"/>
+    <path d="M237.2 274l-10.2-2.2 9.7 4.8 2-.7-1.5-1.9"/>
+    <path d="M235.1 265.2c1.2 3.9 2.8 10 4.2 13.7-3.5-1-9-2.1-12.3-2.8 2.9 0 7 .4 9.5 0 0-3.2-1-7.6-1.4-11"/>
+    <path d="M238.9 275c0 .2-9.8-4.7-9.8-4.7l8.8 7.2 2-.2-1-2.2"/>
+    <path d="M234.6 265.9c2 3.5 4.8 9.2 7 12.5-3.6-.3-9.2-.1-12.6 0 2.8-.7 6.8-1.2 9.2-2.2-.6-3-2.5-7.2-3.6-10.3"/>
+    <path d="M240.4 276.1l-10.2-2.8 9.6 5.4 2-.6-1.4-2"/>
+    <path d="M235.7 267.4c2 3.5 4.8 9.2 7 12.4-3.6-.2-9.2 0-12.6.2 2.9-.7 6.9-1.3 9.3-2.3-.8-3-2.6-7.2-3.8-10.3"/>
+    <path d="M241.7 277l-9.5-5.7 8.3 8h2.2l-1-2.3"/>
+    <path d="M236.4 268.3c2.3 3.3 5.7 8.6 8.2 11.6-3.6.2-9 1.2-12.4 1.8 2.8-1 6.6-2.2 8.9-3.6-1-3-3.3-6.8-4.7-9.8"/>
+    <path d="M242.4 277.8l-10.2-.2 10.1 3 1.8-1.1-1.7-1.7m6-49.6l7.3-1.3-7.3.2-1.3.7 1.3.4"/>
+    <path d="M252.4 229.7c-2.1-.6-5.4-1.7-7.6-2.2a97 97 0 008-3.6c-1.7 1-4 2.4-5.3 3.4 1.2.8 3.4 1.7 5 2.4"/>
+    <path d="M248 228.4l7.2-2-7.4 1-1.1.8 1.3.2"/>
+    <path d="M252.8 230.3c-2.5-.3-6.4-.8-8.8-.8 1.8-1.6 4.4-4.4 6-6-1 1.5-2.8 3.6-3.5 5.1 1.7.7 4.4 1.1 6.3 1.7"/>
+    <path d="M245.4 229l7.4-1-7.2-.1-1.4.6 1.2.4"/>
+    <path d="M250.9 230.5c-2.3-.4-5.7-1.2-8-1.4 2.1-1 5.3-3 7.3-4-1.5 1-3.6 2.5-4.7 3.5 1.4.7 3.7 1.3 5.4 2"/>
+    <path d="M244.8 228.8l6.5-2.8-7.2 2-.8.8h1.5"/>
+    <path d="M250.7 231.4c-2-.8-4.8-2.1-6.7-2.7 1.5-1.3 3.5-3.7 4.8-5.1-1 1.4-2.3 3.3-2.8 4.7 1.2 1 3.2 2.1 4.7 3"/>
+    <path d="M245.1 229.3l5.1-2.2-5.5.8-.7 1 1.1.4M241 277h-10.6l10.7 2.7 1.8-1.2-2-1.5"/>
+    <path d="M242.8 277.6L232 275l10.3 5 2-.6-1.6-2"/>
+    <path d="M244.5 278.3l-10.6-.6 10.6 3.3 1.8-1-1.8-1.7"/>
+    <path d="M237.8 270.8c2.7 3 6.9 7.9 9.8 10.6-3.6.5-9 2-12.2 2.8 2.6-1.2 6.3-2.7 8.4-4.2-1.4-2.8-4.2-6.4-6-9.2"/>
+    <path d="M246 278.8l-10.6-3.5 10 6 2-.5-1.4-2"/>
+    <path d="M238.8 271.5c3 2.7 7.5 7.1 10.6 9.5-3.4 1-8.5 3.1-11.6 4.4 2.4-1.6 6-3.5 7.8-5.3-1.6-2.7-4.8-6-6.8-8.6"/>
+    <path d="M246.8 279.5l-10 2 10.6.7 1.5-1.5-2-1.2"/>
+    <path d="M244.8 278.8l-10.5.8 10.8 1.9 1.7-1.3-2-1.4"/>
+    <path d="M246.7 279.4l-10.9-1.7 10.7 4.3 2-.8-1.8-1.8z"/>
+    <path d="M248.5 280l-10.6.2 10.8 2.4 1.7-1.1-2-1.5z"/>
+    <path d="M241.2 273c3 2.8 7.5 7.4 10.6 9.8-3.6.8-8.8 2.6-12 3.7 2.5-1.4 6.1-3 8.1-4.7-1.6-2.8-4.7-6.2-6.7-8.8z"/>
+    <path d="M250 280.4l-10.8-2.7 10.4 5.2 2-.6-1.6-1.9z"/>
+    <path d="M242.2 273.6c3.3 2.5 8.1 6.6 11.4 8.7a168 168 0 00-11.3 5.2c2.3-1.7 5.7-3.9 7.4-5.8-1.8-2.6-5.2-5.6-7.5-8.1z"/>
+    <path d="M251 281l-10 2.7h10.7l1.3-1.6-2-1z"/>
+  </g>
+  <path fill="#fedf00" stroke="#000" stroke-width=".5" d="M264.6 266.1l-8.1-5.6-8 5.6 3-9-7.1-5.5h9l3.1-9 3 9h9.1l-7 5.6 3 9z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/qa.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/qa.svg
new file mode 100644
index 0000000..0bf30ea
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/qa.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-qa" viewBox="0 0 512 512">
+  <path fill="#8d1b3d" d="M0 0h512v512H0z"/>
+  <path fill="#fff" d="M0 0v512h113l104.2-28.4L113 455l104.2-28.4L113 398.2l104.2-28.4L113 341.3 217.2 313 113 284.4 217.2 256 113 227.6 217.2 199 113 170.7l104.2-28.5L113 113.8l104.2-28.5L113 57l104.2-28.4L113 0H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/re.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/re.svg
new file mode 100644
index 0000000..027c9f3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/re.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-re" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h512v512H0z"/>
+    <path fill="#00267f" d="M0 0h170.7v512H0z"/>
+    <path fill="#f31830" d="M341.3 0H512v512H341.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ro.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ro.svg
new file mode 100644
index 0000000..994992a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ro.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ro" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#00319c" d="M0 0h170.7v512H0z"/>
+    <path fill="#ffde00" d="M170.7 0h170.6v512H170.7z"/>
+    <path fill="#de2110" d="M341.3 0H512v512H341.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/rs.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/rs.svg
new file mode 100644
index 0000000..3270f30
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/rs.svg
@@ -0,0 +1,296 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-rs" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path d="M54.3 32h480v480h-480z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="translate(-57.9 -34.1) scale(1.06667)">
+    <path fill="#fff" d="M-32 32h720v480H-32z"/>
+    <path fill="#0c4076" d="M-32 32h720v320H-32z"/>
+    <path fill="#c6363c" d="M-32 32h720v160H-32z"/>
+    <g transform="matrix(.53333 0 0 .53566 -32 31.8)">
+      <path fill="#21231e" d="M473.4 259.4v-.2h1v.2l-.5.5-.6-.6zm1 0v.5h-.5l.4-.6zm-93 5.2l-1 .2.3-.6 4.2-.2 4-.3 4-.2 3.8-.3 4-.2 3.6-.3 3.7-.2 3.7-.2 3.5-.2h3.4l3.3-.3 3.2-.2 3.2-.2 3-.2h3l3-.2 3-.2 2.7-.2h2.8l2.7-.2 2.5-.2h2.5l2.4-.3h2.2l2.2-.2h2.2l2-.2h2l2-.2h5.3v1h-5.5l-1.8.2h-2l-2 .2h-2.2l-2.2.2-2.4.2h-2.4l-2.5.2-2.5.2H446l-2.8.3h-2.8l-3 .3-2.8.2h-3l-3 .3-3.3.2-3.3.2-3.3.2h-3.5l-3.5.3-3.6.2-3.5.3-3.8.2-3.8.2-4 .3-4 .2-4 .3-4.2.2.5-.6zm-1 .2l-.3-.5h.7l-.4.5zm6.4 31l-6.5-31 1-.2 6.5 31-.5.7-.5-.4zm.5.5h-.4l-.2-.4.5.3zm95-4l-.2 1h.2-5.8l-3 .2h-3l-2.8.2h-3l-3 .2h-6l-3 .2h-3l-3 .2h-3l-3 .2h-3.2l-3 .2h-3l-3 .2h-3l-3 .2h-3l-3 .2h-3l-3 .2h-3l-3 .2h-3l-2.8.2h-5.8l-2.7.2h-2.7v-1h5.8l2.7-.2h5.8l3-.2h3l2.8-.2h3l3-.2h3l3-.2h3l3-.2h3l3-.2h3l3-.2h3.2l3-.2h3l3-.2h3l3-.2h3l3-.2h3l3-.2h3l2.8-.2h3l2.8-.2h.2zm-.2 0h.2zm94.5 3.4l1 .2-.5.3h-2.8l-2.8-.2h-8.8l-2.8-.2h-3l-3-.2H551l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3.2-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2H485l-3-.2.2-1h2.8l3 .2h3l2.8.2h3l3 .2h3l3 .2h3l3 .2h3l3 .2h3l3 .2h3l3 .2h3.2l3 .2h3l3 .2h3l3 .2h3l3 .2h3l3 .2h5.8l2.7.2h3l2.7.2h2.8l-.5.5zm1 .2v.3h-.5l.5-.4zm6.5-31.2l-6.5 31h-1l6.5-31.2.6-.4.4.6zm-.4-.6h.5v.6l-.4-.6zm-93.7-4.8h1l-.6-.5h5.4l2 .2h2l2 .2h2l2.4.2h2.4l2.4.3h5l2.6.3h2.7l3 .3 2.8.2h3l3 .3 3 .3 3.3.2 3.3.2 3.4.2h3.4l3.6.3 3.6.2 3.7.2 3.6.3 4 .2 3.8.3 4 .2 4 .3 4.2.2v1l-4.3-.2-4-.3-4-.2-4-.3-3.7-.2-3.8-.2-3.6-.3-3.6-.2-3.5-.2h-3.4l-3.3-.3-3.3-.2-3.2-.2-3-.2h-3l-3-.2-3-.2h-2.7l-2.6-.3h-2.6l-2.6-.3h-2.5l-2.4-.2-2.3-.2h-2.2l-2.2-.2h-2l-2-.2h-2l-1.8-.2h-3.3l-.5-.6zm.4.5h-.5v-.6l.4.5zm.5-.8v.2h-1v-.2l.3-.5.6.5zm-1 0v-.4h.3l-.4.4zm-8 .3l.2-1h8.8l.3.2v.8h-.5v.2h-.3l-.2-1h.2v.7h.2-8.2zm.2 0zm-8.3.2v-1l-.2 1h-.4l-.2-.2-.3-.3v-.5l.2-.2h9.4v1h-8.8l.2-.2v-.8h-.2.4v1zm0-1v1l-.6-.5.5-.5zm-.6.5v-.5h.5l-.6.5z"/>
+      <path fill="#edb92e" d="M583.5 264.2c3.2-6.6 6.7-13 11.2-18.7-11.7 8.8-18 7.5-18.7-4-.7-.2-1.7-.2-2.6-.2-9 14-17.7 12-26.2-5.8-11.5 18.4-21.4 18-29.2-1-13.3 16.6-24.5 16.7-33.6.2v-2c.5.2 0 .3-1 0l-.3-.3a69.3 69.3 0 01-1 .2c-.2 0-.5 0-.8-.2l-.2.4c-1.2.2-1.6 0-1 0v2c-9.2 16.4-20.4 16.3-33.7-.4-7.8 19-17.7 19.5-29.2 1-8.4 18-17 20-26 6-1 0-2 0-2.7.2-.8 11.4-7 12.7-18.8 4 4.6 5.5 8 12 11.3 18.6 34-1.4 67.6-3.2 101.3-5 34 1.8 67.6 3.6 101.5 5z"/>
+      <path fill="#21231e" d="M595 246l-.6-1 .7 1-.3.4-.4.5-.4.4-.5.6-.4.5-.3.6-.4.6-.4.6-.5.5-.3.6-.4.6-.4.4-.3.6-.3.6-.3.6-.4.6-.3.5-.3.6-.4.5-.3.6-.3.7-.4.6-.3.6-.3.5-.3.6-.2.8-.3.6-.4.6-.2.6-.3.6-.3.6-.3.6-1-.4.3-.6.3-.7.3-.6.2-.5.4-.6.3-.7.2-.6.3-.6.3-.6.4-.6.3-.6.3-.6.3-.6.5-.6.3-.6.4-.6.3-.6.4-.5.2-.5.4-.6.4-.7.3-.6.4-.5.4-.6.5-.6.4-.5.3-.6.4-.6.4-.6.5-.5.4-.6.4-.5.7.7zm-19.2-4l.3-1 .5.5v1l.2 1v1l.3.7.2.8.3.7.3.7.2.6.4.5.3.5.4.4.5.3.4.3.4.3.5.2h.4l.5.2h1.9l.7-.2.7-.2.8-.3.8-.3.8-.3 1-.5.8-.6 1-.5 1-.7 1-.7 1-.7 1-1 .7 1-1 .7-1 .8-1 .7-1 .6-1 .5-1 .5-1 .5-.8.4-1 .3-.7.3-.8.2h-.8l-.8.2h-2l-.7-.3-.5-.2-.6-.3-.5-.5-.6-.4-.5-.4-.5-.5-.3-.5-.4-.7-.3-.7-.2-.7-.3-.8-.2-1v-.8l-.2-1v-1l.2.3zm.3-1l.4.2v.3l-.3-.4zm-2.2.6l-.8-.6.4-.2h2v.2h.4l-.2 1h-1.2v-.2h-1.2l.4-.2zm-.8-.6v-.2h.4l-.4.2zm-25.3-5.2l-1-.6h1l.8 1.7.8 1.4.8 1.5.8 1.2.8 1.2.8 1.2.8 1 .8 1 .8.8.8.8.8.7.7.5 1 .4.7.3.8.3.7.3h2.3l.8-.2.8-.2.8-.3.8-.4.8-.6.8-.6.8-.7.8-.6 1-1 .7-1 .8-1 .8-1 1-1.4.8.6-.8 1.3-1 1-.7 1.2-1 1-.7 1-1 .7-.8.6-.8.6-1 .6-.7.4-1 .4-.8.2-1 .2h-3l-1-.4-.7-.3-1-.5-.7-.5-1-.6-.7-.7-1-.8-.8-1-.8-1-.8-1-.8-1.2-.8-1.3-.8-1.3-.8-1.5-.8-1.6-.8-1.7h1zm-1-.6l.6-.7.4.8h-1zm-28.3-.5l-.8-.6 1 .2.6 1.7.7 1.5.7 1.5.8 1.4.7 1.3.8 1.2.8 1 .8 1 .8.7.8.7.8.6 1 .5.7.4.8.2 1 .2h2.5l1-.3.8-.2 1-.4.8-.6 1-.7 1-.6 1-1 1-1 1-1 1-1.2 1-1.3 1-1.6 1-1.5 1.2-1.8 1 .6-1.2 1.7-1 1.5-1.2 1.5-1 1.3-1 1.3-1 1.2-1.2 1-1 1-1 .8-1 .7-1 .6-1 .4-1 .4-1 .4h-3l-1-.2-1-.3-.8-.6-1-.5-.8-.8-1-.8-.7-.8-1-1-.8-1-.8-1.3-.8-1.4-.8-1.5-.8-1.5-.7-1.7-.8-1.7h1zm-.8-.6l.5-.6.5.8h-1zm-33.8.7h1v-.2l.8 1.5 1 1.4.8 1.2 1 1.2.8 1 1 1 .8 1 1 .8.8.7 1 .6 1 .4 1 .4.8.3 1 .3 1 .2h2l1-.2 1-.3 1-.3 1.2-.4 1-.6 1.2-.6 1-.6 1.3-.8 1-1 1.3-1 1.2-1 1-1.3 1.4-1.3 1.2-1.4 1.2-1.5.8.7-1.3 1.5-1 1.5-1.3 1.3-1.2 1.3-1.2 1-1.2 1-1 1-1.3 1-1.2.7-1 .6-1.3.6-1 .5-1.3.3-1.2.3h-1l-1.2.2h-1l-1.2-.2-1-.2-1-.3-1-.4-1-.5-1-.7-1-.6-1-1-1-.8-1-1-1-1.2-.8-1.2-1-1.3-.8-1.5-1-1.5v-.3zm0 .3v-.3.3zm1-2.3v2h-1v-2l.8-.5.3.5zm-1 0v-.8l.8.2-.8.5zm-1 .3l1-.4-.4-.3h1l-.2.2v.4l.4-1h.2v.2l.2.2v.6h-1.8l-.5-.3zm.5.3h-.3v-.3l.3.3zm.3-1l.2.3-1 .4v-.4l.2-.7.6.2zm-.6-.4l.4-.2.2.4-.6-.3zm-1 1l.2-1h.8l.2 1h-1zm.2 0zm-.6-.4l-1-.4.7-.3h.8v1h-1l.4-.4zm-1-.4l.3-.4h.3l-.6.4zm0 .4v-.4l1 .4-.2.4-.4.3-.5-.7zm.8.4v.3h-.4l.4-.3zm-1-.3h-1l.7.4v.2h.2v-.8h-.2.2l.2-.2h.4l.2 1h-1.9v-.2h-.2v-.5h.2v-.2h.2l.8.4zm-.7-.5l.7-.3v.7l-.7-.5zm-.3 2.5v-2h1v2.3l-1-.3zm1 0v.2-.3zm-33.6 0l-1-.5h1l1 1.4 1.3 1.4 1.3 1.3 1.2 1.2 1.2 1 1.2 1.2 1 1 1.2.7 1 .7 1.2.7 1 .6 1.2.4 1 .3 1 .3h1l1 .2h1l1-.2 1-.2 1-.2 1-.4 1-.5 1-.7.8-.7 1-.8.8-1 1-1 .8-1 1-1.2.8-1.2.8-1.4 1-1.5.8.5-1 1.5-.8 1.4-1 1.2-.8 1.2-1 1.2-1 1-.8 1-1 .8-1 .7-1 .8-1 .5-1 .4-1 .4-1 .3-1.2.2h-2.2l-1-.2-1.3-.3-1-.3-1.2-.5-1-.6-1.2-.6-1.2-.8-1.2-.8-1.2-1-1.2-1-1.2-1-1.2-1.4-1.2-1.3-1.3-1.5-1-1.5h.8zm-1-.5l.3-.8.7.7-1 .2zm-28.3 1.5l-1-.4h1l1 1.6 1 1.4 1.2 1.5 1 1.2 1 1.2 1 1 1 1 1 1 1 .7 1 .8 1 .6.8.4 1 .3.8.4h2.8l.8-.2.8-.3.8-.5 1-.5.7-.6 1-.7.7-.8.8-1 .8-1 .8-1.3.8-1.3.8-1.4.8-1.5.7-1.6.8-1.8 1 .4-.8 1.7-.7 1.7-.8 1.5-.8 1.4-.8 1.3-1 1.2-.7 1-1 1-.7 1-1 .7-.8.7-1 .4-.8.5-1 .2-1 .2h-3l-1-.3-1-.3-1-.4-1-.6-1-.7-1-.8-1-1-1-1-1-1-1-1.4-1-1.3-1.2-1.5-1-1.5-1.2-1.7h1zm-1-.4l.5-.8.5.7h-1zm-25.6 6.5v-1l.3.2 1 1.3.7 1.2.8 1 .8 1 .8.8 1 .8.7.8 1 .6.7.5.7.3.8.3.8.2.8.2h2.3l.8-.4.8-.3.8-.4.7-.5 1-.6.7-.8.8-.8.8-.8.8-1 1-1 .7-1.2.7-1.2.8-1.3.8-1.6.8-1.5.8-1.7 1 .4-1 1.7-.7 1.5-1 1.4-.7 1.3-.8 1.3-.8 1.2-.8 1-1 1-.8 1-.8.8-.8.7-1 .6-.7.5-1 .5-1 .3-.7.3h-2.6l-1-.2-.8-.2-1-.4-.8-.4-1-.6-.8-.6-.8-.7-1-1-.7-.8-1-1-.8-1-1-1.3-.7-1.4.4.2zm0-1h.2v.2l-.3-.2zm-2.2.8h-1l.4-.5h1.2v-.2h1.5v1H389v.2h-.4l.2-.4zm-1 0v-.4h.4l-.4.3zm-18 3.6l-.6.7.6-1 1 1 1.2.6 1 .7 1 .6 1 .4.8.5 1 .4.7.3.8.3.8.3.8.2h.7l.7.2h1.7l.4-.2.5-.2.4-.3.4-.3.4-.3.4-.4.3-.5.2-.5.3-.6.3-.7.3-.7.3-.8v-.8l.3-1v-.8l.2-1h1v1l-.2 1-.2 1-.2 1-.2.7-.2.8-.3.8-.4.7-.2.6-.5.6-.4.5-.6.5-.5.4-.7.2-.6.2-.6.2h-3.3l-.8-.3-.8-.3-1-.3-.8-.4-1-.5-.8-.5-1-.5-1-.6-1-.7-1-.8-1.2-.8.7-.8zm11 18.5v1l-.4-.3-.3-.6-.2-.6-.3-.6-.3-.6-.4-.6-.3-.6-.3-.7-.3-.5-.4-.6-.4-.7-.3-.6-.4-.6-.3-.5-.4-.6-.4-.7-.4-.5-.3-.6-.4-.6-.4-.6-.4-.6-.3-.5-.4-.7-.3-.6-.3-.5-.4-.6-.4-.5-.4-.5-.4-.5-.4-.6-.4-.5-.4-.6-.4-.5.7-.8.4.5.4.6.4.5.4.6.4.5.4.5.4.5.4.6.4.6.4.5.3.6.4.6.4.5.4.6.4.6.3.6.5.6.3.6.3.6.5.6.3.6.3.6.5.6.3.7.3.7.4.6.3.6.4.5.4.6.3.7.3.7.3.6-.5-.3zm0 1h-.3v-.3l.4.3zm101.4-6v1l-3.2.2h-3.2l-3 .3h-3.3l-3 .3-3.3.2H460l-3 .3-3.3.3h-3.2l-3 .3H444l-3 .3h-3.3l-3.3.2-3 .2h-3.3l-3.2.3h-3l-3.3.3-3.3.2h-3l-3.3.3h-3.2l-3 .2-3.3.2h-3.3l-3.2.2h-3l-3.3.3H384l-3 .2-.2-1h3.2l3.2-.3h3l3.3-.2 3.2-.2h3l3.3-.3h3.2l3-.3h3.3l3.2-.3h3l3.3-.2h3.2l3-.3h3.3l3.2-.3 3-.2h3.3l3.2-.3h3l3.3-.3 3.2-.2h3l3.3-.3 3-.3h3.3l3.2-.3 3-.2h3.3l3.2-.3 3-.3h.2zm0 0zm101.2 5v1h-3l-3.3-.2-3-.2h-3.3l-3-.3h-3.3l-3.2-.3h-3l-3.3-.2-3.3-.2h-3l-3.3-.3-3.2-.2h-3l-3.3-.3h-3.3l-3-.3h-3.3l-3.2-.3-3-.3h-3.3l-3.3-.3h-3l-3.3-.3h-3l-3.3-.2-3-.2-3.2-.2h-3.2l-3.2-.3h-3l-3.3-.2.2-1h3l3.3.3 3.2.2 3 .2 3.3.2h3l3.3.3h3.2l3 .2 3.3.2 3.2.2h3l3.3.3h3l3.3.2 3.2.2h3l3.3.3h3.3l3 .3h3.3l3.2.3h3l3.3.3h3.3l3 .3h3.3l3.2.2h3.2l3 .2 3.3.2h3.2zm0 1zm0 0v-1l.5.7-.6.3zm.5-.3l-.2.3h-.4l.5-.3z"/>
+      <path fill="#edb92e" d="M505 276.2l-23 11.4-22.6-11.4 22.7-11.5z"/>
+      <path fill="#edb92e" d="M474 259.2v.2c-17.6.7-48.6 2.5-93.2 5.3l6.5 31c29.6-.8 64.3-2 94.8-3 30.7 1 65.3 2.2 95 3l6.5-31c-44.6-2.8-75.6-4.6-93-5.3v-.2c1.7-.4-1-.4-8.4-.2-7-.2-10-.2-8 .2z"/>
+      <path fill="#edb92e" d="M597.3 236.7l-3.7-.6c-7 17.5-13.4 18-14.6 1.4 1.6-.6 1-3.3 2.8-2.2 1 .5 2-1 1.3-2-2-1.5-3.6-1.3-5.4.4-.8-2.7-3-4-5.4-2.8-1 .5-.7 2.5.4 2.4 1.8-.2 1 1.6 1.6 3-12.5 16.4-19 14.4-17.4-7.3-3-.7-6.5-1.3-9.6-2.4-11.5 23.3-19.7 24.3-26.4 3.4 1.4-1 1-3.8 3-3 1.3.6 2.3-1.5 1.2-2.4-2.4-2-5-1.3-6.8 1.3-1.4-3-4-4-6.6-2.2-1.2.7-.5 3 .8 2.6 2.3-.7 1.3 2.4 3 3.5-5 19.6-30.8 21-26.6-8.2-2.4 0-4.5 0-6.6.2l-6.7-.2c4.2 29-21.5 27.8-26.6 8 1.6-1 .6-4 3-3.4 1.2.3 2-2 .7-2.7-2.6-1.7-5.2-.7-6.6 2.2-1.7-2.7-4.3-3.4-6.7-1.4-1 1 0 3 1 2.5 2.2-.8 1.8 2 3.2 3-6.7 21-15 20-26.4-3.4-3 1-6.5 1.7-9.5 2.3 1.6 21.6-5 23.6-17.4 7 .6-1.2 0-3 1.7-2.8 1 0 1.5-2 .4-2.4-2.4-1-4.5 0-5.3 2.8-1.7-1.7-3.5-2-5.5-.4-.8 1 .4 2.5 1.3 2 1.8-1 1.2 1.6 2.8 2.2-1.2 16.5-7.6 16-14.6-1.3l-3.7.7c0 4 1.3 8.5 3.8 11.7 10.6 13.5 18.5 10.4 18.8-4.7 14 16.4 24.4 14.3 26.2-3 11.7 21.8 30.5 11.4 31-2 5 19.4 33.5 19.2 35.4-3 1.8 22.2 30.3 22.4 35.4 3 .4 13.4 19.2 23.8 31 2 1.7 17.3 12.3 19.4 26 3 .4 15 8.3 18.2 19 4.7 2.4-3.2 3.8-7.6 3.7-11.7z"/>
+      <path fill="#21231e" d="M593.7 235.6l3.7.6-.2 1-3.6-.6-.4-.7.5-.4zm-.5.3v-.4h.5l-.5.3zm-14.3 1l.2 1 .3-.6.2 1.4v1.4l.3 1.3.2 1.2.2 1 .3 1 .3 1 .3.7.3.7.3.6.3.5.3.5.4.2.3.2h1.3l.4-.3.4-.2.5-.4.4-.3.6-.6.5-.6.6-.7.7-1 .6-.8.7-1.2.6-1.2.6-1.3.7-1.3.5-1.5.7-1.6 1 .3-.8 1.6-.6 1.4-.7 1.4-.5 1.3-.7 1.3-.6 1-.6 1-.7 1-.7.8-.6.8-.6.6-.5.5-.6.3-.7.4-.5.2h-1.2l-.6-.2-.5-.2-.5-.4-.5-.4-.4-.6-.3-.6-.3-.8-.4-.8-.3-1-.2-1-.3-1-.2-1.3-.2-1.3-.2-1.5v-1.6l.3-.5zm-.5.4v-.4h.4l-.5.4zm3.5-2.7l-.5 1v-.2h-.4v.2h-.2v.2l-.2.2v.3l-.2.3-.2.3v.2h-.2v.3h-.3v.2h-.3l-.2.2-.3-1v-.2h.2v-.2h.2v-.2l.2-.2v-.5h.2v-.4l.2-.2v-.3l.2-.2.2-.2h.2l.2-.2h1l.2.2zm-.5 1zm1.3-2l.6-1v.2h.2l.2.3v1.6h-.2v.2h-.2v.2h-.2v.2h-.2v.2h-.5v.2h-.8l-.3-.2.5-1v.2h.4v-.2h.2v-.2h.2v-.8zm.6-1v.2-.2zm-6.3 1l1-.3-.8-.2h.2l.2-.3.2-.2.2-.2.3-.2h.2l.2-.2h.2v-.2h.4l.2-.2h2.3l.2.2h.2l.2.2h.2l.2.2h.2l.2.2.2.2-.6.8-.3-.2h-.2l-.2-.2-.2-.2h-.3l-.2-.2h-2.1v.2h-.3v.2h-.2l-.3.2v.2h-.3v.2l-.3.2-1-.3zm1 .3l-.7.5-.2-.8 1 .3zm-5.6-2.7l-.4-1h.5l.3-.2h2.1l.4.2h.4l.2.3h.2v.2l.3.2h.2l.2.2v.2l.2.2v.2l.2.2.2.2v.2l.2.3v.2l.2.2v.2l-1 .3v-.5h-.2v-.3l-.2-.2v-.2h-.3v-.3h-.2v-.4h-.3v-.2h-.3v-.2h-.6v-.2h-2l-.2.2h-.2zm0 1.4l.2 1h-.6v-.2h-.2l-.2-.2-.2-.2-.2-.2V231l.2-.2.2-.2.3-.2.4 1h-.2v1.2h.2zm2.2 3.7l-.8-.6v.5-.2h-.2v-1h-.2v-1l-.2-.2h-.7v-1.2h.6l.3.2.2.2h.2v.2l.2.3v.4h.2v1.5h.2v.8zm0-.5h.2l-.2.4v-.5zm-18-6.6l.3-1 .3.6v2l-.2 1.8v4.9l.3 1.4v1.3l.3 1 .2 1 .3 1 .4.8.3.8.4.5.5.5.4.3.4.3.5.2h1l.6-.2.7-.3.7-.4.8-.5 1-.4.7-.8 1-.8 1-1 1-1 1-1 1-1.4 1-1.4 1.3-1.4.8.6-1.2 1.5-1 1.3-1.2 1.3-1 1-1 1.2-1 1-1 .8-1 .8-.8.6-1 .5-.7.4-.8.3h-.8l-.8.2h-.7l-.7-.2-.6-.3-.6-.5-.5-.5-.4-.7-.5-.7-.4-1-.2-1-.2-1-.2-1.2-.2-1.3V229l.5.6zm.3-1h.3v.6l-.4-.6zm-9.3-1.6l-1-.4.7-.3.3.2h.3l.3.2h.3l.2.2h.3l.4.2h.6l.3.2h.3l.4.2h.6l.3.2h.5l.3.2h.7l.3.2h.6l.3.2h.5l.3.2h.8l.3.2h.3l-.3 1h-.8l-.2-.2h-.6l-.3-.2h-.8l-.3-.2h-.6l-.4-.2h-.7l-.4-.2h-.3l-.3-.2h-.6l-.3-.2h-.2l-.3-.2h-.6l-.4-.2h-.3l-.4-.2h-.4l-.3-.2h-.2l.7-.4zm-1-.4l.3-.4h.4l-.6.4zm-26.2 3.2l.6.8.3-.6.6 2 .5 1.7.7 1.6.6 1.6.7 1.4.7 1.2.6 1 .7 1 .7 1 .7.6.6.6.7.4.7.4.7.2h1.4l1-.2.6-.2.8-.4 1-.6.7-.6 1-.8 1-1 .8-1 1-1.2 1-1.3.8-1.4 1-1.6 1-1.7 1-1.8 1-2 1.2-2 1 .3-1.2 2.2-1 2-1 1.8-1 1.8-1 1.6-1 1.5-1 1.3-1 1.2-1 1-1 1-1 1-.8.7-1 .5-.8.4-1 .2-.8.2h-1.8l-.8-.3-.8-.3-.8-.5-.8-.6-.7-.8-.8-1-.7-1-.7-1-.7-1.4-.7-1.4-.7-1.5-.7-1.7-.6-1.7-.7-1.8.2-.6zm-.2.6v-.4l.2-.2-.2.5zm3.8-3.6l-.3 1h-.3l-.2-.2h-.2v.2h-.2v.2h-.2v.5h-.2v.4l-.2.3-.2.2v.2l-.2.3-.3.3-.2.3h-.2l-.5-.7.2-.2.2-.2v-.5h.2v-.4h.2v-.3l.2-.3v-.2l.2-.2.2-.3.2-.2h.2v-.2h.5v-.2h.7l.2.2zm.7-1.6l.6-.8.2.2.2.2v.2l.2.3v1.3l-.2.3v.2l-.2.2h-.2v.2h-.2v.2h-.2l-.2.2h-1.1l.4-1h.7v-.2h.2v-.6h.2v-.7h-.2v-.2zm-7 1l1-.3h-1l.2-.3v-.3h.3l.2-.3.2-.3.2-.2.3-.3.3-.3h.2l.2-.3h.3l.2-.2h.5l.2-.2h2.2l.3.2h.2l.3.2h.3l.3.3h.2l.3.3.3.2-.6.8-.2-.2h-.2l-.2-.3-.4-.2h-.2l-.2-.2H521v.2h-.5l-.2.3h-.2v.2h-.2l-.2.3-.2.2-.3.3v.2l-.2.3-.2.2h-1zm1 .2l-.6.7-.3-1 1 .2zm-7-2l-.4-1h.3l.2-.2h.3l.4-.2h.2l.3-.2h.4l.3-.2h1.6l.2.2h.2l.3.2h.2l.2.3.3.2.2.2v.2l.3.2.2.2.2.2v.2l.3.2.2.3.3.4v.3l-.8.4-.2-.4-.2-.2v-.2l-.3-.2v-.2l-.3-.2-.3-.3h-.2v-.2h-.3l-.3-.2h-.2l-.3-.2h-.4l-.2-.2h-1.2l-.2.2h-.5l-.2.2h-.2l-.2.2-.2.2zm.5 1.7l.3 1h-.5l-.2-.2h-.2l-.2-.2-.2-.2-.2-.2v-.2l-.2-.2V224l.2-.2.2-.3.3-.2.5 1h-.2v1.2h.2v.2h.4zm3.7 4l-1-.2.2.5h-.2l-.2-.2h-.2v-.3h-.2l-.2-.3v-.4l-.2-.2v-.3l-.2-.2v-.4l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2h-.6l-.4-1h1.1l.3.2h.2v.4h.2v.3l.2.2v.2h.2v.5l.2.3v.5h.2v.4h.2l.2.2.2.2.3.6zm-.3-.5l.3.2v.3l-.3-.5zm-27-7.2v-1l.6.5-.3 2.7-.2 2.4v2.2l.2 2 .3 2 .4 1.7.5 1.5.7 1.4.6 1 .8 1.2 1 1 1 .7 1 .6 1 .5 1 .4 1.3.3h2.4l1.3-.2 1.2-.3 1.2-.5 1.2-.5 1-.7 1.2-1 1-.8 1-1 1-1.3 1-1.3.8-1.3.8-1.5.6-1.7.5-1.7 1 .2-.6 2-.7 1.6-.8 1.6-1 1.5-1 1.4-1 1.3-1 1-1.2 1-1.2 1-1.2.8-1.3.7-1.2.5-1.3.3-1.4.2h-2.5l-1.2-.3-1.3-.4-1.2-.5-1-.7-1-1-1-1-1-1-.8-1.5-.7-1.5-.6-1.6-.4-1.8-.3-2-.2-2.2V227l.2-2.6.3-2.7.5.6zm0-1h.7v.5l-.6-.5zm-6.6 1.2l.2-1h4l.2-.2h2.1v1h-4.1l-.2.2h-2zm.2 0zm-6.2-.8h-1l.5-.4h5.1l.2.2h1.2v1h-4l-.3-.2h-2l.5-.6zm-1 0v-.5h.5l-.5.6zm-26.4 7.8l.5.8.3-.5.6 1.7.5 1.7.7 1.5 1 1.4.8 1.4 1 1.2 1 1 1 1 1.2 1 1.2.6 1.2.5 1.2.5 1.2.3 1.2.2h2.4l1.2-.3 1-.3 1.2-.4 1-.7 1-1 .8-.8 1-1 .6-1.3.6-1.5.6-1.6.4-1.8.3-2v-2l.2-2.3-.2-2.5-.3-2.7h1l.3 2.6.2 2.5v2.2l-.2 2.2-.3 2-.5 1.8-.5 1.6-.7 1.5-.8 1.4-1 1.2-1 1-1 .8-1 .7-1.2.5-1.3.4-1.3.3H463l-1.2-.2-1.3-.3-1.3-.5-1.3-.6-1.3-.7-1.2-1-1.2-1-1-1-1-1.2-1-1.3-1-1.5-.7-1.6-.7-1.7-.6-2 .2-.5zm-.2.5v-.3l.2-.2-.2.5zm3.7-4l-.2 1-.2-.2h-.7v.2l-.2.2v.4l-.2.2v.5l-.2.2v.2l-.2.3v.2l-.2.2v.2h-.2v.3h-.3l-.2.2h-.2l-.4-.7.2-.2.2-.2h.2v-.3l.2-.2v-.5l.2-.2v-.5l.2-.3v-.3l.2-.2.3-.3.2-.2h.2l.2-.2h1.1zm.4-1.8l.6-1v.2h.3v.3h.2v.2l.2.2v1.5l-.2.2v.2l-.2.2-.3.2-.2.2h-.9l.3-1h.4v-.4l.2-.2v-.8h-.2v-.2h-.2zm-6.7 2l.8-.6h-.8v-.2l.2-.3.3-.4v-.2l.3-.2.2-.2.2-.2.2-.2.2-.2.2-.2h.2l.3-.3.3-.2h.2l.3-.2h.5l.2-.2h1.6l.4.2h.2l.3.2h.2l.3.2.2.2h.3l-.6 1-.2-.2h-.2l-.2-.2h-.3l-.2-.2h-.5l-.2-.2h-1.3l-.2.2h-.3v.2h-.3l-.2.3-.2.2-.3.3-.3.3-.2.2v.2l-.2.2-.2.2v.3h-.2l-1 .2zm1 0l-.5.7-.5-.8h1zm-7-1.2l-.8-.8.2-.2.2-.2h.3l.2-.3h.2l.2-.2h.3l.3-.2h2.5l.3.2h.2l.3.2.2.2h.2l.2.3h.2l.2.2.2.2.2.3.2.2h.2v.4l.3.2-.8.6-.2-.2v-.3l-.3-.2-.2-.2-.3-.3-.2-.2h-.2l-.2-.2v-.2h-.2l-.2-.2h-.4l-.2-.2H441l-.2.2h-.2l-.2.2h-.2l-.2.3h-.2l-.2.3zm.5 1.6l.4 1h-1.3l-.2-.2-.3-.2h-.2v-.2l-.2-.3v-.2l-.2-.2v-1.6l.2-.2.2-.2v-.2l.8.8-.2.2v1l.2.2.2.2h.4zm3.8 3.6l-1-.4.2.6h-.2v-.3h-.3v-.2h-.2v-.3h-.2v-.5h-.2v-.6h-.2v-.5l-.2-.2-.2-.2h-.2v-.2h-.5v.2l-.5-1h.4l.2-.2h.6l.2.2.3.2h.2v.2l.2.2.2.3v.2l.2.2v.2l.2.3v.2l.2.2.2.2.2.2.2.2.2.6zm-.2-.6l.3.2v.4l-.2-.6zm-26.6-2.5l-.3-1 .5.4 1 2 1 2 1.2 2 1 1.6 1 1.6 1 1.5 1 1.4.8 1.2 1 1 .8 1 1 .8.7.6 1 .6.6.4.8.2.8.2h1.3l.7-.2.7-.4.7-.4.7-.6.7-.7.8-.7.6-1 .7-1 .8-1.3.6-1.4.7-1.5.7-1.5.7-1.8.6-2 1 .5-.7 2-.6 1.6-.7 1.7-.6 1.5-.7 1.4-.7 1.3-.7 1.2-.7 1-.8.8-.7.8-.7.6-.8.5-1 .4-.7.4H432l-1-.2-.7-.3-1-.5-1-.6-.8-.8-1-1-.8-1-1-1-1-1.2-1-1.3-1-1.5-1-1.6-1-1.8-1-1.8-1-2-1-2.2.5.3zm-.3-1h.3l.2.4-.6-.3zm-9 3h-1l.4-.6h.7l.3-.2h.6l.4-.2h.9l.3-.2h.5l.3-.2h.6l.4-.2h.3l.3-.2h.6l.3-.2h.5l.3-.2h.3l.4-.2h.3l.3-.2h.3l.3-.2h.3l.2 1h-.7l-.3.2h-.3l-.3.2h-.3l-.3.2h-.5l-.3.2h-.3l-.4.2h-.6l-.4.2h-.6l-.3.2h-.6l-.2.2h-.6l-.3.2h-.7l-.3.2h-.8v.2h-.4l.4-.5zm-1 0v-.5h.4l-.4.5zm-17.4 7l1 .3v-.5l1 1.4 1 1.4 1.2 1.3 1 1 1 1 1 1 1 .8.8.8 1 .6.6.4.8.4.7.3h.6l.6.2h.4l.5-.2.3-.2.5-.2.4-.5.3-.5.4-.7.2-.7.3-1 .2-1 .2-1v-2.7l.2-1.5v-5l-.2-1.8h1v2l.2 1.8v4.9l-.2 1.4v1.4l-.3 1.2-.3 1-.3 1-.2 1-.4.7-.4.7-.6.5-.5.5-.7.3-.7.2H402l-.6-.2-.8-.4-1-.5-.7-.5-1-.6-1-.8-1-.8-1-1-1-1-1-1.2-1-1.3-1.2-1.4-1-1.6-.2-.5zm0 .4v-.3.4zm2-3.7v1h-.6v.8l-.2.3v1h-.2v.3l-1-.4v-.4l.2-.2v-.9h.2v-.5l.2-.2v-.2h.4v-.2h1zm.3-1.4l.3-1 .2.2h.2v.2h.2v.7h.2v1.2l-.2.2v.3l-.2.2-.2.2h-.2l-.2.2h-.5v-1h.4v-.2h.2v-.8l-.2-.2zm-5.7 2.7l.7-.8-.8.2v-.2l.2-.3v-.3l.2-.3v-.2l.2-.2.2-.2v-.2l.3-.2v-.2l.3-.2h.2v-.3h.3l.3-.2.2-.2h.4v-.2h2.5l.3.2h.2l.3.2-.4 1-.3-.2h-.5l-.2-.2h-1.3l-.3.2h-.2v.2h-.2l-.2.2v.2h-.2l-.2.2v.2h-.2v.3l-.2.2v.2h-.2v.5l-.2.2-1 .3zm1-.3l-.4.8-.7-.5 1-.3zm-5.8-.2l-.7-.6v-.2l.3-.2h.3l.2-.2h.2l.2-.2.3-.2h.2l.2-.2h2.1l.2.2h.2l.2.2h.2l.2.2.3.2.2.2h.2l.2.3v.2l-.7.8v-.2h-.3v-.2l-.3-.2-.3-.2h-.3v-.2h-.2l-.2-.2h-2v.2h-.3l-.2.2-.2.2h-.2l-.2.2zm-.7-.6v-.2zm1.4 1.7l.6 1h-1.3l-.3-.2-.2-.2v-.2h-.2l-.2-.2v-.3l-.2-.2v-.8l.2-.3h.2l.7.5v.8h.2v.2h.2v.2h.2zm3.6 2.7h-1l.3.5v-.2h-.3v-.2h-.3v-.3h-.2v-.2h-.2v-.2l-.2-.2v-.3h-.2v-.2l-.2-.3v-.2h-.7l-.6-.8h.2l.2-.2h1.1l.3.2.2.2v.2h.2v.4l.2.2v.5h.2v.2l.2.2.2.2h.2l.4.6zm-.4-.5h.4v.4l-.4-.5zm-14.7-.4v-1l.4.3.8 1.5.6 1.5.7 1.3.7 1.3.6 1.2.6 1 .6 1 .6 1 .5.6.6.7.5.7.6.4.5.5.3.2.5.2h1.1l.3-.3.3-.2.4-.4.3-.4.4-.5.3-.6.3-.8.3-.8.2-1 .3-1 .3-1.3.2-1.3v-1.4l.2-1.4h1v1.5l-.2 1.4-.2 1.3-.2 1.2-.2 1-.2 1-.3 1-.4.8-.4.8-.4.6-.4.6-.5.4-.5.4-.5.2-.6.2h-1.1l-.6-.3-.7-.4-.6-.4-.5-.6-.6-.6-.7-.7-.7-.7-.6-1-.6-1-.6-1-.6-1.2-.6-1.2-.7-1.4-.7-1.5-.6-1.7.5.3zm0-1h.3v.3l-.4-.4zm-3.8.6l3.6-.6v1l-3.6.6-.5-.5.4-.5zm-.5.5v-.4h.4l-.5.4zm4.7 11.4l-.8.7-.3-.3v-.3l-.3-.3-.2-.3-.3-.3-.2-.3-.2-.3v-.4l-.3-.3-.2-.4-.2-.4v-.4l-.2-.4v-.4l-.3-.4v-.4l-.2-.3v-.4l-.2-.4v-.9l-.2-.3v-.8l-.2-.5V238l-.2-.5v-.7h1v1.9l.2.4v1.1l.2.5v.7l.2.3v.4l.2.4.2.3v.4l.2.5.2.3v.4l.2.3.2.4.2.2v.3l.3.4.2.2v.3l.3.3.2.4.2.3.2.3.2.3zm18.7-4.7l-.8.7 1-.3-.2 1.4v1.4l-.2 1.3-.2 1.2-.2 1-.3 1-.2 1-.3 1-.4.7-.4.8-.4.7-.6.6-.5.5-.5.4-.7.3-.6.3h-.7l-.8.2h-.7l-.8-.2-.8-.2-.8-.2-1-.4-.7-.5-1-.7-1-.6-.8-.8-1-1-1-1-1-1-.8-1-1-1.3.8-.6 1 1.3 1 1 .8 1 1 1 1 .8.7 1 1 .5.7.6.8.5.8.4.7.2h.7l.7.3h1.4l.6-.2.4-.2.6-.2.4-.3.5-.5.4-.5.4-.6.4-.7.3-.8.3-.8.3-1 .4-1 .2-1 .2-1.2v-1.2l.2-1.3v-1.3l1-.4zm-1 .4V242l1 1-1 .4zm27.3-3.2l-1 .4 1-.2-.2 1.6v1.5l-.4 1.3-.4 1.3-.4 1.2-.4 1.2-.5 1-.7 1-.6 1-.6.7-.6.7-.8.6-.7.5-1 .4h-.8l-1 .3h-2.8l-1-.3-1-.4-1.2-.4-1-.6-1.2-.6-1.2-.8-1-.8-1.3-1-1.2-1-1.3-1.2-1.2-1.3-1.3-1.5-1.3-1.5.7-.7 1.2 1.5 1.3 1.4 1.2 1.2 1.2 1.2 1 1 1.3 1 1 .8 1.2.7 1 .7 1 .6 1 .4 1 .3 1 .2h1l.8.2h.8l1-.2.7-.3.7-.4.7-.5.7-.4.6-.6.6-.7.5-.8.5-1 .4-1 .5-1 .2-1.2.4-1.3.3-1.3v-1.5l.3-1.6h1zm-1 0l.2-1.5.8 1.5h-1zm31.8-1.8l-.8.3h1v1l-.3 1.4-.4 1.2-.4 1.2-.5 1-.6 1.3-.6 1-.7 1-.8 1-1 1-1 .7-1 .7-1 .7-1 .6-1.2.5-1.2.4-1.2.3h-3.8l-1.3-.2-1.3-.4-1.4-.4-1.3-.7-1.3-1-1.3-.8-1.3-1.2-1.3-1.2-1-1.5-1.3-1.6-1.2-1.8-1-2 .8-.5 1 2 1.2 1.6 1.2 1.7 1.2 1.4 1 1.3 1.3 1 1.2 1 1.3.7 1.2.6 1.2.5 1.3.5 1.2.2h3.6l1.2-.3 1-.3 1-.3 1.2-.5 1-.6 1-.7.7-.8 1-1 .6-.7.6-1 .6-1 .6-1 .4-1 .4-1.2.3-1V239h1zm35.6-3l-1 .2h1l-.2 2-.4 2-.6 1.6-.6 1.7-.8 1.6-1 1.3-1 1.3-1 1-1.3 1-1.3 1-1.3.8-1.3.6-1.5.6-1.5.3-1.5.2h-1.5l-1.6.2-1.4-.2-1.6-.2-1.5-.3-1.5-.5-1.4-.6-1.4-.7-1.4-1-1.3-1-1.2-1-1-1.2-1-1.4-1-1.4-1-1.6-.6-1.6-.5-1.8 1-.3.5 1.7.6 1.6.8 1.5 1 1.3 1 1.3 1 1.2 1.2 1 1.2 1 1.3.8 1.3.7 1.4.5 1.4.5 1.4.3 1.5.2h4.4l1.5-.3 1.4-.4 1.3-.5 1.3-.5 1.3-.7 1-1 1.2-.8 1-1 1-1.3 1-1.4.6-1.4.7-1.7.5-1.7.4-1.8.2-2h1zm35.5 3l-1 .2h1l-.4 1.8-.7 1.6-1 1.6-1 1.4-1 1.4-1 1.2-1.3 1-1.2 1-1.4 1-1.3.6-1.5.6-1.4.5-1.6.3-1.5.2-1.5.2h-1.6l-1.5-.2-1.4-.3-1.5-.4-1.4-.6-1.4-.6-1.3-.8-1.4-1-1.2-1-1-1-1.2-1.3-1-1.4-.7-1.7-.7-1.7-.5-1.7-.4-2-.4-2 1-.2.3 2 .3 1.8.5 1.7.6 1.6.8 1.3 1 1.4.8 1.2 1 1 1.2 1 1.2.8 1.3.7 1.3.6 1.4.6 1.4.3 1.4.2h4.5l1.4-.2 1.5-.3 1.4-.5 1.3-.5 1.3-.7 1.3-.8 1-1 1.2-1 1-1 1-1.4 1-1.3.7-1.5.6-1.6.5-1.7h1zm31 2h-1l1 .2-1.2 2-1.2 1.7-1.2 1.6-1.2 1.5-1.3 1.2-1.4 1.2-1.3 1-1.3.7-1.3.6-1.3.5-1.4.5-1.3.2H530l-1.3-.3-1.2-.3-1.2-.4-1-.5-1-.6-1-.7-1-.8-1-1-.7-1-.8-1-.6-1-.6-1-.5-1.2-.3-1.2-.3-1.2-.2-1.3v-1l1-.2v1.2l.2 1.2.3 1 .4 1.2.5 1 .6 1 .7 1 .7 1 .7 1 1 .8.8.7 1 .6 1 .6 1 .5 1 .4 1 .4 1.3.2 1.2.2h2.4l1.2-.3 1.2-.4 1.3-.4 1.2-.6 1.3-.7 1.2-1 1.2-1 1.2-1.2 1.2-1.3 1.2-1.6 1-1.6 1.2-2 1 .2zm-1-.2l.8-1.5.2 1.6h-1zm27.2 3.2h-1l1 .3-1.4 1.5-1.3 1.4-1.2 1.2-1.3 1-1.2 1.2-1.2 1-1.2.8-1 .8-1.2.6-1 .6-1.2.4-1 .4-1 .2-1 .2h-2l-1-.3h-.8l-.8-.5-.8-.5-.7-.6-.8-.7-.6-.8-.6-1-.6-1-.5-1-.5-1-.4-1.4-.3-1.3-.3-1.4-.2-1.6-.3-1.6 1-.2.2 1.6.2 1.5.3 1.3.3 1.3.4 1.2.4 1 .5 1 .5 1 .6.8.6.7.6.6.6.5.7.6.6.3.8.2h.8l.8.2h.8l1-.2 1-.2.8-.3 1-.4 1-.6 1.2-.6 1-.6 1.2-.8 1.2-1 1-1 1.4-1.2 1.2-1.2 1.3-1.4 1.3-1.5 1 .4zm-1-.4l1-1v1.4l-1-.4zm19 4.8l.7.7-1 1.2-1 1-1 1-1 1-1 1-.8.7-1 .6-.8.6-.8.4-1 .4-.7.3-1 .3-.7.2h-1.5l-.7-.2-.6-.3-.6-.3-.6-.4-.6-.5-.5-.6-.4-.7-.4-.8-.4-.8-.3-1-.3-1-.3-1-.3-1-.2-1.3V246l-.2-1.3v-1.3h1v2.6l.2 1.3.2 1 .2 1.2v1l.4 1 .4.7.3.8.5.6.4.5.4.5.4.5.5.3.5.3.6.3h.6l.6.2h.6l.7-.2h.6l.7-.4.8-.5 1-.4.7-.5 1-.6.7-1 1-.7.8-1 1-1 1-1 1-1.2zm4-10.7v-1l.6.4v2.9l-.2.4v.7l-.2.4v.5l-.2.4v.3l-.2.4v.3l-.3.4v.4l-.2.4-.2.4v.3l-.3.3-.2.4-.2.3-.2.4-.2.3-.2.4-.2.4-.2.3-.2.4-.2.4-.3.3-1-.6.3-.2.3-.3.2-.3.2-.4.2-.3.2-.3.2-.3v-.5l.3-.3v-.3l.2-.5.2-.3v-.4l.3-.3v-.4l.2-.3v-.7l.2-.4v-.3l.2-.4v-.5l.2-.4v-1l.2-.4v-1.8l.5.5zm0-1h.6v.4l-.5-.5zm0 0v1-1zm0 1z"/>
+      <path fill="#edb92e" d="M482 263h-22.5l-1.3.2H451l-1.3.2h-4.4l-1.2.2h-2.3l-6.3.4h-.3c-3 0-6 .3-9 .4h-.8l-18.2 1.3h-.2a965 965 0 00-26.4 2.4c-5 .6-6-5.3 0-6a960.5 960.5 0 0126.3-2.2 983.7 983.7 0 0137-2.2h2.4l15.4-.5h16.8a1082.3 1082.3 0 017.2 0h16.6l15.2.5h3.3a984 984 0 0137 2.3 960.5 960.5 0 0126.2 2c5.8.7 5 6.6 0 6a965.6 965.6 0 00-26.4-2.3h-.3a978.4 978.4 0 00-18.3-1.2h-.6l-9.2-.5h-.3c-2.2 0-4.3-.2-6.4-.3h-2.3l-1.2-.2h-4.5l-1.3-.2H506l-1-.2h-23z"/>
+      <path fill="#0c4076" d="M482 105a17.3 17.3 0 01.1 34.7c-9.3 0-17-7.8-17-17.3 0-9.6 7.7-17.3 17-17.3z"/>
+      <path fill="#edb92e" d="M485.3 85c1.6-.2 3-1.5 3-3.2 0-1.7-1.4-3-3-3.2 0-1.7-1.4-3-3.2-3a3 3 0 00-3 3c-1.6 0-3 1.5-3 3.2a3 3 0 003 3v6.5h-5.5a3 3 0 00-3-3c-1.8 0-3 1.3-3.2 3a3 3 0 00-3 3c0 1.8 1.3 3.2 3 3.2a3 3 0 003 3c1.8 0 3.2-1.2 3.2-3h5.5V119h6.3V97.6h5.5a3 3 0 003 3c1.8 0 3-1.4 3.2-3 1.7 0 3-1.5 3-3.2a3 3 0 00-3-3c0-1.8-1.4-3.2-3-3.2-2 0-3.2 1.4-3.2 3h-5.5V85z"/>
+      <path fill="#21231e" d="M487.8 81.8h1v1h-.2v.5h-.2v.3l-.2.3-.2.2v.2h-.2l-.2.2-.2.2h-.2v.2h-.2l-.2.2h-.2v.2h-.8l-.2.2h-.3v-1h.7V84h.2l.3-.2h.2v-.2h.2v-.2l.2-.2V83h.2l.2-.2v-.4l.2-.2v-.4zm-3-3.2h1l-.5-.5h.2l.3.2h.4l.3.2h.3l.2.2.2.2h.2v.2h.2l.2.2.2.3.2.2v.2h.2v.4h.2v.5l.2.2v.7h-1V81h-.2v-.4l-.2-.2V80h-.4v-.2h-.2v-.2h-.2l-.3-.2h-.2V79h-.8l-.4-.6zm.4.5h-.4v-.4l.4.5zm-3-3v-1h.7l.2.2h.2l.3.2h.2l.2.2.2.2h.2v.3l.2.2.2.3.2.2v.2h.2v.4h.2v.8h.2v.3h-1V78h-.2v-.5h-.2v-.2l-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2l-.2-.2h-.4l-.3-.2h-.4zm-3.2 3v-1l-.5.6v-.8l.2-.2V77h.2v-.6h.2v-.2l.2-.2.2-.2.2-.2h.2v-.2h.3v-.2h.3l.3-.2h.4l.2-.2h.4v1h-.5v.2h-.3l-.2.2h-.2v.2h-.2v.2h-.2v.2l-.2.2v.2h-.2v.5h-.2v1l-.6.5zm.5-.4v.5h-.5l.5-.4zm-3 3.2h-1V81l.2-.3v-.5l.2-.2v-.2l.2-.2.2-.3.2-.2h.2l.2-.2h.2v-.2h.3v-.2h.5l.3-.2h.7v1h-.7l-.2.2h-.2l-.2.2-.2.2-.2.2-.2.2v.2h-.2v.4l-.2.2v.8zm3 3h-1l.5.6h-1V85h-.7v-.2h-.3v-.2h-.2l-.2-.2-.2-.2V84h-.2v-.2l-.2-.2-.2-.3v-.5h-.2v-1h1v1h.2v.4h.2v.2h.2v.2l.2.2h.2v.2h.2l.3.2h.7v.2h.2l.5.5zm-.5-.4h.5v.5l-.5-.6zm-.5 7V85h1v6.3l-.5.5-.5-.5zm1 0v.4h-.5l.5-.5zm-6-.6h5.5v1h-5.5l-.5-.5.5-.5zm0 1h-.5v-.5l.5.5zm-3-3v-1h1.2v.2h.3l.3.2.3.2.3.2v.2l.2.2.2.3.2.3.2.3v.4l.2.2v.8h-1v-.7l-.2-.2V90h-.2v-.2h-.2v-.2l-.2-.2-.2-.2h-.2V89h-.4l-.2-.2h-.8zm-3.2 3v-1l-.5.4v-.8l.2-.3V90l.2-.3v-.2h.2v-.2l.2-.2h.2v-.3h.2l.2-.2.2-.2h.2V88h.7v-.2h1.1v1h-1l-.2.2h-.2v.2h-.2v.2h-.2l-.2.2v.2h-.2v.4h-.2v.8l-.2.2v.3l-.5.5zm.5-.5v.5h-.5l.5-.5zm-3 3h-1V93h.2v-.2h.2v-.3l.2-.3.3-.3v-.2h.2v-.2h.2v-.2h.2l.2-.2h.2V91h.7l.2-.2h.8v1h-.7l-.2.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2v.2h-.2v.5h-.2v.7zm3 3.2h-1l.5.5h-1v-.2h-.5l-.2-.2h-.2v-.2h-.2l-.2-.2-.2-.2v-.2h-.3v-.2l-.2-.2V96h-.2v-.4l-.2-.3v-.8h1v.9h.2v.2l.2.3h.2v.2h.2v.2h.2v.2h.2l.2.2h.5v.2h.4l.6.5zm-.5-.5h.5v.5l-.5-.5zm3 3v1h-1l-.2-.2h-.3v-.2h-.3v-.2h-.2l-.2-.2-.2-.3v-.2h-.2v-.3h-.2V99h-.2v-.5l-.2-.2V98h-.2v-.5h1v.7h.2v.4h.2v.2l.2.2v.2h.2v.2h.2v.2h.2l.2.2h.2l.3.2h.6zm3.2-3v1l.5-.4v.8l-.2.2v.3h-.2v.3l-.2.3-.2.2-.2.2-.2.2-.3.2-.2.2h-.2l-.2.2h-.2l-.3.2h-.8v-1h.9v-.2h.2l.2-.2h.2v-.2h.2l.2-.2V99h.2v-.2l.2-.3v-.2l.2-.2v-.4l.5-.5zm-.5.6V97h.5l-.5.6zm6 .5h-5.5v-1h5.5l.5.6-.5.5zm0-1h.5v.6l-.5-.5zm-.5 22V97.6h1V119l-.5.5-.5-.5zm.5.5h-.5v-.5l.5.5zm6.3 0H479v-1h6.3l.5.5-.5.5zm.5-.5v.5h-.5l.5-.5zm0-21.4V119h-1V97.6l.5-.5.5.6zm-1 0V97h.5l-.5.6zm6 .5h-5.5v-1h5.5l.5.6-.5.5zm0-1h.4v.6l-.4-.5zm3 3v1h-1l-.3-.2h-.2l-.3-.2-.2-.2h-.2v-.2h-.2l-.2-.2v-.2h-.2v-.2l-.2-.2V99h-.2v-.2h-.2v-1l-.2-.2h1v.4l.2.2v.2l.2.3v.2h.2v.2h.2l.2.2v.2h.2l.3.2h.2v.2h1.1zm3.2-3v1l.5-.5v.7h-.2v.5l-.2.3v.4h-.2v.3h-.2v.2h-.2v.2h-.3v.2l-.3.2h-.3l-.2.2h-.3l-.2.2h-.8v-1h.9v-.2h.2v-.2h.2l.2-.2.2-.2V99h.2v-.2l.2-.2v-.2l.2-.2v-.6l.6-.6zm-.5.5V97h.5l-.5.5zm3-3h1v.9l-.2.3v.2h-.2v.6h-.2l-.2.2v.2h-.2v.2h-.3v.2h-.2v.2h-.3l-.3.2h-.2l-.3.2h-.7v-1h.8V97h.2v-.2h.2l.2-.2.2-.2h.2V96l.2-.3v-.2h.2v-.7l.2-.3zm-3-3.2h1l-.5-.6h.7l.2.2h.4l.3.2.3.2.3.2.2.2.2.3.2.2v.5h.2v.3h.2v.7l.2.3v.4h-1v-.6h-.2v-.4l-.2-.2-.2-.2v-.2h-.2l-.2-.2-.2-.2h-.2V92h-.5l-.2-.2h-.5l-.5-.5zm.5.5h-.5v-.5l.5.5zm-3-3v-1h1.1l.2.2h.4v.2h.3v.2l.3.2.2.3h.2v.3h.2v.4l.2.2v.4h.2v.7h-1v-.8h-.2V90l-.2-.2-.2-.2-.2-.2-.2-.2h-.2V89h-.5v-.2h-.6zm-3.2 3v-1l-.6.5v-.9l.2-.2V90l.2-.3.2-.3.2-.3h.2v-.2l.2-.2h.2v-.2h.2l.2-.2h.3l.2-.2h.3l.2-.2h1v1h-1l-.3.2h-.2v.2h-.2l-.2.2v.2l-.2.2-.2.2v.2l-.2.2v.7l-.7.6zm.5-.5v.5h-.6l.6-.5zm-6-.5h5.5v1h-5.5l-.5-.5.5-.5zm0 1h-.5v-.5l.5.5zm.5-7v6.5h-1V85l.4-.6.6.5zm-1 0v-.4h.4l-.4.5zm.5 0v-.4.5zm-.5 0v-.4h.4l-.4.5z"/>
+      <path fill="#21231e" d="M499.8 122.4h-1v-1.7l-.2-1v-.7l-.3-.8-.2-.8-.2-.8-.3-.8-.3-.7-.4-.6-.4-.7-.4-.7-.5-.7-.5-.6-.5-.6-.6-.5-.7-.6-.6-.6-.6-.5-.5-.6-.7-.4-.7-.4-.6-.4-.8-.3-.7-.4-1-.3-.7-.2h-.8l-.8-.2h-.8l-1-.2h-1v-1h2l.8.2h1l.8.3.8.4.8.2.8.4.8.3.8.4.7.4.7.6.7.5.7.6.6.6.6.6.6.6.6.6.5.7.5.7.5.7.4 1 .4.6.4.8.3.8.3 1 .3.7.2.8v1l.2.7v2zM482 140.2v-1h1.8l1-.2.7-.2.8-.2.8-.2 1-.3.6-.2.8-.3.7-.4.8-.3.7-.4.6-.5.7-.5.6-.5.6-.6.5-.5.5-.6.5-.6.5-.6.4-.7.4-.6.4-.8.3-.7.3-1 .3-.6.3-.8.2-.8v-1l.2-.7v-1.6h1v2.8l-.2.8-.2.8-.3 1-.3.7-.3.8-.3.8-.3 1-.4.6-.5.7-.5.7-.5.7-.6.6-.6.7-.6.6-.6.5-.7.6-.7.5-.7.6-.7.4-.8.4-.8.4-.8.3-.8.4-.8.2-1 .2-.8.2h-.8l-1 .2h-1zm-17.5-17.8h1v1.8l.2.7v.8l.3.8.2.8.3.7.3 1 .3.6.5.8.4.7.3.8.5.6.5.6.5.7.6.5.5.6.5.5.7.5.6.5.7.4.7.4.7.5.7.3.7.3.8.4.8.2.8.2.8.2h1.8l.7.2v1h-1.8l-.7-.2-1-.2-.8-.2-.8-.2-1-.3-.7-.2-.8-.4-.8-.4-.7-.4-.7-.5-.7-.4-.7-.5-.7-.4-.7-.6-.5-.7-.5-.6-.5-.7-.5-.7-.5-.7-.4-.7-.4-1-.3-.7-.5-.8-.2-.8-.3-1-.2-.7v-1l-.2-.8v-1.8zm17.6-17.8v1h-1.7l-.7.2h-.8l-.8.3-.8.3-.8.3-.7.3-.8.2-.8.4-.7.4-.7.4-.6.5-.7.4-.6.5-.6.5-.6.6-.5.7-.5.6-.5.7-.4.7-.5.7-.4.7-.2.8-.3.8-.3.8-.2.8-.2.8v.8l-.2 1v1.7h-1v-2.8l.2-1 .2-.8.3-1 .2-.8.4-.8.2-.8.4-.7.4-1 .5-.6.5-.7.5-.7.6-.6.6-.6.7-.6.6-.6.6-.5.7-.4.7-.5.7-.3.8-.4.8-.3.8-.4 1-.2.7-.3h1l.8-.2h.8l1-.2h.8z"/>
+      <path fill="#edb92e" d="M499 118.8a17.6 17.6 0 010 6c-5.5-.2-11.2-.3-17-.3-5.5 0-11.2 0-17 .3a17.5 17.5 0 01.3-6l16.8-.3c5.8 0 11.4.2 17 .3z"/>
+      <path fill="#21231e" d="M499.8 122.4h-1V120h-.2v-1l1-.2v1.7l.2.2v1.6zm-.7 3l.2-1-.6.3v-.8l.2-.2v-1.1h1v2.2h-.2l-.5.5zm.6-.5v.3h-.5l.6-.4zm-17.5 0v-1H494l.4.2h4.8v1h-10.6l-.5-.2h-6zm-17.4 0l1-.3-.5-.4h4.7l.4-.2H482v1h-11l-.5.2H465l-.5-.3zm.6.3h-.5v-.4l.5.3zm-.7-3h1v2.4l-1 .3v-2.6zm.8-4v1l.5-.3v.8l-.2.2v2.5h-1v-3h.2v-.4l.5-.5zm-.5.5v-.4h.5l-.5.4zm17.3-.8v1h-9.1l-.5.2H466l-.7.2v-1h2.5l.5-.2h9l.5-.2h4.2zm17.5.8l-1 .2.4.4h-3.6l-.5-.2h-10.3l-.5-.2h-2.1v-1h10l.5.2h6.1l.5.6zm-.5-.5h.4v.5l-.4-.5z"/>
+      <path fill="#edb92e" d="M468.8 133.2c-3.6-2.3-4.3 1.2-4.2 4.7.4 13.2 3 25.8-.6 42-1.4 6.4-3.7 10-1.5 11.3 5.7 3.2 8.3 6 7.4 7.7 1.5 3.2 5.7 2.6 12 1.6 6.6 1 10.7 1.6 12.4-1.6-1-1.6 1.7-4.5 7.4-7.7 2.2-1.2 0-5-1.5-11.3-3.5-16.2-1-28.8-.7-42 0-3.6-.5-7-4-4.8a28.6 28.6 0 01-26.8 0z"/>
+      <path fill="#21231e" d="M465 138h-1v-1.5l.2-.3v-1.6l.2-.3v-.3h.2v-.4l.2-.2v-.3h.2l.2-.3.2-.2.2-.2h.2l.2-.2h1.8l.4.2.4.2h.3l.4.3-.4 1-.4-.3h-.2l-.3-.2h-.3l-.2-.2h-1.2v.2h-.2v.2l-.2.2v.2l-.2.2v.4l-.2.3v.4l-.2.2v2.5zm-.5 42l-1-.2.3-1.5.3-1.4.3-1.6.2-1.4.2-1.5.2-1.4v-2.5l.2-1.4V154l-.2-1.2v-2.5l-.2-1.2V148l-.2-1.2v-1.2l-.2-1.3V142l-.2-1.3V138h1v3.5l.2 1.2v2.6l.2 1.2v1.3l.2 1.2v2.5l.2 1.2v1.3l.2 1.3v13.3l-.2 1.4v1.4l-.3 1.5-.2 1.4-.2 1.6-.2 1.4-.2 1.5-.3 1.6zm-1.8 11l-.4.8-.3-.2-.2-.2-.2-.2-.2-.2v-.2l-.2-.3V188l.2-.3v-.4l.2-.3v-.4l.2-.4v-.5l.3-.4.2-.4v-.5l.3-.3v-.5l.3-.5v-.6l.3-.4.2-.6v-.6l.3-.6 1 .3-.2.7v.6l-.3.5v.6l-.2.5-.2.4v.6l-.3.4v.5l-.3.4v.4l-.2.4v.4l-.2.4v.4l-.2.3v.4l-.2.4v1.9l.2.2.2.2zm7.6 7.8l-1 .4v-.4h.2v-1l-.2-.2v-.2l-.2-.2v-.4l-.3-.2-.2-.2-.2-.3h-.3l-.2-.4-.3-.2-.3-.3h-.3l-.4-.4-.4-.3-.3-.2-.5-.2-.4-.3-.3-.3-.5-.3-.5-.3-.4-.3-.5-.3-.6-.2.5-1 .6.4.5.3.5.3.4.3.5.4.4.3.5.3.5.2.3.3.4.3.4.3.3.4.2.2.3.3.3.2.2.2.2.3.3.2.2.2v.2l.3.3v.2l.3.2v.5l.2.2v1.1l-.2.3v-.5zm-1 .4v-.4.4zm13 1l-.2 1h.2-1.2l-.5.2h-1.2l-.6.2h-1l-.5.2h-4.7l-.4-.2h-.3l-.3-.2-.3-.2-.3-.2-.2-.2-.3-.2-.2-.2-.3-.3h-.2l-.2-.4-.2-.4 1-.4v.2l.2.3.2.2.2.2.2.2h.2l.2.2h.2l.3.2h.3l.3.2h.3l.2.2h4.3l.5-.2h1l.6-.2h1.1l.5-.2h.8zm-.2 0h.2zm12-1l1-.4v.4l-.3.4-.2.3h-.2l-.3.4-.2.2-.3.2-.3.2-.3.2-.4.2h-.3l-.3.2h-.4l-.4.2H486l-.6-.2h-.5l-.6-.2h-1.2l-.5-.2h-.6l.2-1h1.8l.5.2h.6l.6.2h1.1l.5.2h4.2l.3-.2h.3l.2-.2h.3l.2-.2.2-.2.3-.3.2-.2.2-.2v-.3l.3-.2v.5zm1-.4v.4-.4zm6.5-8l.5 1-.5.3-.5.4-.5.3-.4.2-.4.2-.4.3-.4.3-.4.3-.4.3-.3.3-.3.3h-.3l-.2.4-.3.2-.3.3h-.2l-.2.4-.2.2-.2.2v.2l-.3.2v.7h-.2v1.2l-.8.5v-.2l-.2-.2v-1.3l.2-.2v-.3l.3-.3v-.3l.3-.2.2-.3.2-.3.3-.3.2-.2.3-.3.3-.4.4-.2.3-.3.4-.2.4-.3.4-.3.4-.2.4-.3.5-.3.5-.3.5-.2.5-.3.5-.3.5-.3zm-1.7-10.7l1-.2v.6l.3.6.2.6.2.5v.7l.3.5v.5l.2.4v.6l.2.5.2.5v.4l.2.3v.4l.2.4v.5l.2.3v.7l.2.3v1.8l-.2.3v.2l-.3.3h-.2l-.2.3-.3.2-.5-1h.2l.2-.2v-.4h.2v-2.5l-.2-.3v-.3l-.2-.3v-.4l-.2-.4v-.4l-.2-.4v-.4l-.3-.5v-.6l-.2-.4v-.6l-.3-.5v-.6l-.3-.6v-.5l-.2-.6-.2-.6zm-.7-42h1v5.9l-.2 1.4v1.2l-.2 1.2v1.3l-.2 1.3v2.5l-.2 1.2v2.6l-.2 1.2v9.3l.2 1.4v1.4l.2 1.3.2 1.5.2 1.5.2 1.4.2 1.5.3 1.3.3 1.5-1 .3-.3-1.5-.3-1.5-.2-1.4-.2-1.5-.2-1.3-.2-1.5v-1.4l-.2-1.4V167l-.2-1.3v-10.3l.2-1.3v-2.5l.2-1.3V149l.2-1.2v-1.3l.2-1.2V143l.2-1.2V138zm-3.3-4.4l-.5-1h.4l.3-.2.2-.2h.3l.4-.2h1.2l.3.2h.2l.2.3v.2l.2.2h.2v.4l.2.2v.3h.2v.7l.2.3v1.5l.2.3v1.1h-1v-2.4l-.2-.3v-.8l-.2-.3v-.4l-.2-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-1.1l-.2.2h-.3l-.3.2-.3.2zm-27 0l.4-1 .8.5.7.5.7.4.7.2.7.3.8.2.8.3 1 .2.7.2 1 .2h.7l1 .2h.8l1 .2h4.6l.7-.2h1l.8-.3h.8l1-.3.7-.2.8-.3.8-.2.8-.3.7-.4.8-.3.7-.4.7-.3.5 1-.7.3-.7.4-.8.4-.7.3-1 .4-.7.3-.7.3-1 .2-.7.2-1 .2h-.8l-1 .2h-1l-.8.2h-4.6l-1-.2h-.8l-1-.2-.8-.2-1-.2-.7-.2-.8-.3-.8-.3-.8-.3-.8-.2-.8-.4-.7-.4-.7-.4z"/>
+      <g id="b">
+        <path fill="#edb92e" d="M363 212c-2-4-.3-9.8.3-11 .3-.8-.6-2.2-1-2.8-13-18.3-13.2-20-4.3-26.8 8-6 26.2-12 39.2-16.2 2.7-2 4.4-5 6.8-7.2-25 1.8-52 12-65.5 23.8-7.2 6.2 1.5 19 12.2 38 6.7 5 9.8 7 12.3 2.3z"/>
+        <path fill="#21231e" d="M362.8 200.7l1 .4v.2l-.2.2v.3l-.2.3v.5l-.2.2v.6l-.2.4v.7l-.2.3v1.6l-.2.4v2.5l.2.4v.4l.2.4v.4l.2.4v.3l.3.4-1 .3v-.4l-.3-.5v-.4l-.2-.4v-.4l-.2-.5v-.8l-.2-.6v-2.9l.2-.4v-1.2l.2-.3v-.4l.2-.2v-.6l.2-.3v-.6l.2-.2v-.2l.2-.2zm-1-2.2l1-.6v.2h.2v.4h.2v.4h.2v.2l.2.2v.4h.2v1.2l-1-.3v-.6l-.2-.2v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2zm-4-27.5l.5 1-.8.5-.7.6-.7.6-.5.6-.6.5-.6.5-.5.6-.5.5-.3.4-.3.5-.3.5v.5l-.3.5v1.7l.2.6.2.8.2.7.4.8.4.8.4 1 .5 1 .6 1 .7 1 .7 1.3 1 1.2.7 1.3 1 1.4 1 1.5 1 1.5 1.3 1.7-.8.5-1.3-1.7-1-1.5-1-1.5-1-1.4-1-1.3-.8-1.2-.8-1.2-.7-1-.6-1-.7-1-.4-1-.6-1-.3-.7-.2-1-.2-.7v-.7l-.2-.7v-1.4l.2-.6.2-.6.2-.6.3-.6.4-.6.5-.5.5-.5.5-.5.6-.6.7-.5.7-.7.7-.6.7-.7zm39-16.2l.7.8h-.2l-1.2.5-1.2.5-1.2.4-1.4.3-1.3.4-1.4.5-1.4.4-1.3.5-1.5.5-1.4.5-1.3.5-1.3.5-1.4.5-1.4.5-1.3.5-1.4.5-1.4.5-1.3.6-1.3.6-1.3.5-1.2.7-1.2.5-1.2.6-1 .5-1.2.6-1 .4-1 .6-1 .6-1 .5-1 .7-.7.6-.7.6-.6-1 .8-.5 1-.6.8-.7 1-.6 1-.6 1-.4 1-.6 1.2-.6 1.2-.5 1-.7 1.4-.6 1.3-.5 1.3-.6 1.3-.5 1.2-.4 1.4-.5 1.3-.5 1.3-.5 1.4-.5 1.3-.5 1.4-.5 1.4-.5 1.4-.4 1.4-.5 1.3-.4 1.3-.4 1.3-.4 1.3-.5 1.2-.4 1.3-.5 1.3-.4 1.2-.3zm.7.8h-.2.2zm6.6-7v-1l.4.8-.2.2-.3.2-.3.3-.2.3-.2.2-.2.2v.3l-.3.2-.2.2-.2.2-.2.3-.3.3-.2.3-.2.2-.2.3v.3l-.3.2-.2.3-.2.2-.3.2-.2.3-.2.2-.2.2h-.2l-.3.4-.3.2-.2.2-.3.2-.2.2-.3.2-.2.2-.6-.8v-.2l.3-.2.3-.2.2-.2.2-.2.2-.2.3-.2.2-.2.2-.2v-.2l.3-.3.2-.2.2-.2.2-.2v-.2l.3-.2.2-.2.2-.3.2-.3v-.3l.3-.2.2-.2.2-.3.2-.2v-.2l.4-.3.2-.2.2-.2.2-.3.2-.2h.3l.2-.3.4.8zm0-1l1.4-.2-1 1-.4-1zM338.8 172l-.7-.8 1.5-1 1.4-1.2 1.4-1 1.5-1.2 1.5-1 1.7-1 1.7-1 1.7-1 2-1 1.8-1 2-1 2-1 2-.8 2-1 2.2-.7 2-.8 2.3-.8 2.3-1 2.2-.6 2.3-.7 2.3-.6 2.4-.5 2.3-.6 2.4-.7 2.4-.5 2.4-.4 2.4-.4 2.4-.4 2.3-.3 2.3-.3 2.4-.3 2.3-.2v1l-2.3.2-2.3.3-2.3.3-2.3.3-2.4.4-2.3.4-2.4.4-2.3.5-2.3.6-2.3.5-2.3.6-2.3.7-2.2.7-2.2.7-2.2.8-2.2.8-2.2.8-2 1-2 .7-2.2 1-2 1-2 1-1.8.8-1.8 1-1.8 1-1.7 1-1.6 1-1.5 1-1.6 1-1.5 1.2-1.4 1-1.2 1.2zm12.2 37.3l-.5.8-.2-.2-1-1.6-1-1.8-1-1.7-1-1.7-.8-1.7-1-1.6-.8-1.5-.8-1.5-1-1.5-.7-1.5-.8-1.4-.7-1.3-.7-1.4-.5-1.3-.6-1.3-.6-1.2-.4-1.2-.5-1.2-.3-1-.3-1-.4-1.2v-1l-.2-1v-2.8l.3-.8.3-.8.4-.7.5-.8.5-.7.6-.6.8.8-.6.5-.5.6-.4.7-.3.6-.3.7-.2.8v4.5l.4 1v1l.5 1 .4 1 .4 1.3.5 1.2.4 1.2.6 1.3.7 1.3.7 1.4.7 1.4 1 1.4.7 1.5 1 1.5.8 1.5 1 1.6.8 1.7 1 1.7 1 1.7 1 2 1 1.6h-.3zm-.5.8l-.2-.2.2.3zm12.5 1.3v1l.5-.2-.3.4-.2.4-.3.4-.3.3-.3.2-.2.3-.3.2-.3.2h-.3l-.5.2h-2.1l-.4-.2-.5-.2-.4-.2-.3-.2-.5-.2-.4-.3-.5-.3-.5-.3-.4-.4-.6-.3-.5-.3-.5-.4-.6-.4-.5-.4-.6-.4-.5-.5.5-.8.7.4.5.3.6.5.6.3.5.5.4.4.5.2.4.3.4.3.5.3.4.3.4.2.5.2.4.2h.5l.3.2h1.5l.2-.2h.3l.2-.3.2-.2.3-.2.2-.3v-.3l.4-.4.2-.4.4-.4zm-.4.3v-.4h.4l-.4.3zm.4.6v-1l.5.3-.5.6zm.5-.7l.3.6h-.8l.5-.7z"/>
+        <path fill="#edb92e" d="M359 213.6a34 34 0 01-1-4.7c-.7-2.8-.4-5.7.5-8.3-3-4.2-6.4-8.8-8.8-13.3-1.7-3.3-3-7-2-10.6 1-4 4.5-6.6 7.6-9 3.7-2.8 8.6-5.3 13.6-7.5 11-4.6 20-7 26.5-7l-4.2 3.8c-12 4-26.4 9.2-33.3 14.5-9 6.8-8.6 8.4 4.3 26.7.4.6 1.3 2 1 2.7-.6 1.2-1.8 7.2 0 11.4-1 2-2.6 1-4.2 1.2z"/>
+        <path fill="#21231e" d="M357.4 209l1-.2v.7l.2.2v.7h.2v.8l.2.3v.3l.2.3v.7h.2v.6h.2l-1 .4v-.3l-.2-.3v-.2l-.2-.3v-.5l-.2-.3v-.6h-.2v-.5l-.2-.3v-.7l-.2-.3v-.2zm1-.2zm-.4-7.8l1-.6v.5l-.2.4v.2l-.2.2v1l-.2.2v.8l-.2.2v4.7l.2.3-1 .2v-.6l-.2-.2V203h.2v-1l.2-.2v-.5l.2-.2v-.2l.2-.3v.5zm1-.6v.5-.6zm-9.7-12.8l1-.5v.6l.3.4.3.4v.4l.4.5.2.4.3.4v.5l.4.4.3.4.2.4.2.4.3.4.2.4.3.5.3.4.3.3.3.4.2.4.2.5.3.5.3.4.3.4.3.4.3.4.2.4.3.4.2.4.3.4.3.4.3.4.3.4-1 .6-.2-.4-.3-.4-.3-.4-.3-.4-.4-.4-.3-.4-.2-.4-.2-.4-.3-.4-.3-.4-.3-.5-.4-.4-.3-.3-.3-.4-.2-.4-.3-.5-.3-.5-.3-.4-.4-.4-.3-.4-.2-.5-.2-.4-.3-.5-.2-.4-.3-.4-.3-.4-.2-.4-.3-.5-.2-.4-.2-.5-.3-.5-.2-.4zm-2-11l1 .4-.2.3v4.1l.2.4v.3l.2.3v.7l.3.3v.4l.2.4v.6l.3.3v.3l.3.3v.2l.3.3v.3l.2.3-1 .6v-.3l-.2-.3-.2-.3v-.3l-.3-.4v-.3l-.3-.3v-.3l-.3-.3-.2-.3v-.3l-.2-.2v-.4l-.2-.3v-.3l-.2-.3v-.7l-.2-.4V180l-.2-.4V178l.2-.2v-.7l.2-.3zm7.7-9.2l.6.8-.3.2-.3.3-.3.2h-.3l-.3.3-.2.3-.2.2-.3.3-.3.3-.3.2-.3.3-.2.2-.3.3-.4.3-.2.2-.3.3v.3l-.4.3-.2.3-.2.2-.3.3-.3.3-.2.3-.2.4v.3l-.3.3-.2.3v.3l-.3.3v.3l-.2.3v.4l-1-.3v-.4l.2-.4v-.4l.2-.4.2-.4v-.3l.3-.4.2-.2.2-.3.2-.3v-.3l.4-.5.2-.3.2-.2.3-.3.4-.3.2-.3.3-.2.2-.2.3-.3.2-.3.3-.2.3-.3.3-.2.3-.3.2-.2.3-.2.3-.3.3-.2h.4l.3-.4.3-.2zm13.7-7.5l.4.8-.4.2-.4.2-.5.2-.5.2-.4.2-.5.2-.4.3-.6.2-.5.2-.5.2h-.5l-.4.3-.5.3-.3.2-.4.2-.5.3-.4.2-.4.2-.4.3-.5.2-.3.2-.4.3-.4.2-.5.2-.4.2-.2.3-.4.2-.4.2-.4.2-.3.3-.4.3-.4.2-.6-.8.3-.3h.4l.4-.4.4-.3.4-.2.4-.2.4-.2.4-.3.4-.2.4-.2.4-.2.4-.3.5-.2.5-.2.4-.2.4-.2.4-.3h.4l.5-.3.4-.3.6-.2.4-.2.5-.2.5-.3.4-.2.5-.2h.4l.4-.3.5-.2.5-.2.4-.2h.5zm0 0zm27-6.4l-.6-.7.5.7H394l-.6.2h-1.8l-.7.2h-.8l-.7.2h-.7l-.8.3-.8.2h-.7l-.8.2-.8.2-1 .2-.8.2-.8.3-1 .3-.8.3-1 .3-.8.2-1 .3-.8.3-1 .3-1 .5-1 .3-.8.4-1 .4-1 .4-1 .4-1 .4-.5-1 1-.4 1-.4 1-.4 1-.4 1-.3 1-.5 1-.3 1-.4 1-.3.8-.3 1-.3.8-.4 1-.2.8-.3h1l.8-.4.8-.2.8-.2.8-.2h.8l.8-.3.8-.2h.7l.7-.2h.8l.7-.2h1.4l.5-.2h1.9l.4.8zm-.3-1h1.4l-1 1-.4-1zm-4.4 4l4-3.7.8.6-4 3.8-.3.2-.5-1zm.7.8l-.2.2.2-.2zM358.3 172l-.6-1 .7-.5.7-.5 1-.5.7-.5.8-.5 1-.5.8-.4 1-.5 1-.4.8-.5 1.2-.4 1-.5 1-.3 1-.5 1.2-.5 1-.4 1.3-.5 1-.4 1.2-.5 1-.5 1.3-.5 1-.4 1.3-.4 1.2-.5 1.2-.4 1.2-.4 1.2-.5 1-.4 1.3-.3 1.2-.4 1-.3 1.2-.4.3 1-1.2.3-1 .3-1.3.4-1 .4-1.3.5-1.2.4-1.2.3-1.2.4-1 .4-1.2.6-1.2.4-1 .4-1.3.5-1 .3-1.3.5-1 .4-1.2.5-1 .4-1 .6-1.2.5-1 .5-1 .5-1 .5-1 .5-.8.5-1 .4-.8.4-.8.5-.8.4-.7.5-.7.4-.7.5zm4.4 26l-.8.5-1.3-1.7-1-1.5-1-1.5-1-1.4-1-1.3-.8-1.2-.8-1.2-.7-1-.6-1-.7-1-.4-1-.5-1-.4-.7-.2-1-.2-.7v-.7l-.2-.7v-1.4l.2-.6.2-.6.2-.6.3-.6.4-.6.5-.5.5-.5.5-.5.6-.6.7-.5.7-.7.7-.6.7-.7.6 1-.8.5-.7.6-.7.6-.5.6-.6.5-.6.5-.5.6-.5.5-.3.4-.3.5-.3.5v.5l-.2.6v2.2l.3.8.3.7.4.8.4.8.4 1 .6 1 .5 1 .7 1 .7 1.3 1 1.2.7 1.3 1 1.4 1 1.5 1 1.5 1.3 1.7zm1 3l-1-.3v-1h-.2v-.2l-.2-.2v-.2h-.2v-.4l.7-.7.2.2v.4h.2v.2l.2.2v.2l.2.2v.4h.2v1.4zm.2 11.6l-1-.5v.6l-.2-.4-.2-.5v-.4l-.2-.4v-.6l-.2-.4v-.5l-.2-.4v-5.4l.2-.4v-.7l.2-.4v-.5l.2-.3v-.4l.2-.2 1 .3v.2l-.2.2v.6l-.2.2v.6l-.2.3v1.1l-.2.4v5.1l.2.4v.8l.3.4v.4l.2.4.2.4v.4zm0-.4v.4-.4zm-5 1v1-1h.2l.2-.2h1.4v.2h1.5l.2-.2h.2v-.2h.2v-.2l.2-.2.2-.3 1 .6-.2.2-.2.2v.2l-.2.2h-.2v.2l-.3.2h-.4l-.2.2h-.3v.2h-3v-1zm0 1v-1l.6.2-.5.7zm.6-.8l.2.7h-.7l.6-.6z"/>
+        <path fill="#edb92e" d="M468 132.2c.3-2.3 0-2-.3 1.6-.3-.7-.8-1-1.4-1-1 0-1.7 1.6-1.8 5.2l.2 2.8c-33-.7-52.7 4.3-57.7 14-4.2 7.8 3 21 13.6 36 1.3 1.8 1.2 1.6 0 3-1.8 2.3-3.8 6-2.3 9.2a24.3 24.3 0 01-21 1.5c-1-3-3.4-4.4-5.4-5.8-.5-.2-2-1-2-1.4l-10.2-31.6c-9.5-30.7 75.3-33.5 88.3-33.5z"/>
+        <path fill="#21231e" d="M467.3 134l1-.4-1 .2V132h.2v-1.2l.2-.2.6-.3.3.3v1.6h-1V131l.4.2h.6v-.2 1l-.2.2v1.8h-1zm1 0l-.2 1.6-.7-1.5h1zm-2-.7v-1h.7v.2h.4v.2h.2v.2h.2v.2h.2v.2h.2v.2l-1 .5v-.2h-.2v-.2h-.2v-.2h-.4zm0 0zM465 138h-1v-1.8l.2-.3v-.9l.2-.3v-.7h.2v-.3l.2-.3.2-.3.2-.2h.2v-.2h.2v-.2h.5v1h-.2v.2h-.2v.2l-.2.2v.3l-.2.3v.6l-.2.2v2l-.2.3v.4zm-1 0zm.7 3.3v-1l-.5.5v-2.3h-.2v-.4l1-.2v1.8l.2.2v1l-.5.5zm.5-.5v.5h-.5l.5-.5zM407.4 155l-1-.5.7-1 .7-.8.7-1 .8-.7 1-.8 1-.8 1-.8 1-.7 1.3-.7 1.2-.7 1.4-.6 1.6-.6 1.5-.5 1.7-.7 1.7-.5 1.8-.4 2-.5 1.8-.5 2-.3 2.2-.4 2.2-.3 2.2-.2 2.4-.3 2.4-.2 2.5-.2h2.5l2.7-.2h2.7l2.8-.2h9v1H453l-2.8.2h-2.6l-2.6.2-2.5.2-2.4.2-2.3.3-2.2.2-2.2.3-2 .4-2 .3-2 .4-1.8.4-1.8.4-1.7.5-1.6.5-1.5.6-1.5.5-1.3.5-1.3.7-1.2.6-1 .7-1 .7-1 .7-1 .7-.6.8-.7.8-.6.8-.6 1zm13.6 35.5l-.8.6-1-1.3-1-1.4-1-1.4-1-1.5-.8-1.3-.8-1.4-1-1.3-.7-1.3-.8-1.3-.8-1.4-.7-1.2-.7-1.3-.6-1-.6-1.3-.5-1.2-.5-1.2-.5-1.2-.4-1-.5-1-.3-1.2-.3-1-.3-1-.2-1.2v-1l-.2-1V158l.3-.8.3-1 .2-.7.3-.8 1 .5-.4.7-.2.7-.2.8-.2.8v4.5l.2 1 .3 1v1l.5 1 .3 1.2.4 1 .5 1.2.5 1 .5 1.2.6 1.2.6 1.2.6 1.3.7 1 .7 1.4.8 1.3.8 1.3.8 1.3 1 1.3.8 1.4 1 1.3.8 1.4 1 1.4 1 1.5zm0 3.8l-.8-.7.2-.3.2-.2h.2v-.2l.2-.2v-.4l-.2-.2v-.2h-.2v-.3h-.2v-.3h-.2l.8-.7.2.3.2.3v.2h.2v.4h.2v.2l.2.2v1l-.2.2v.2h-.2v.2l-.2.2-.2.2-.2.3zm-2.5 9l-.4-.8-.2.7v-.3l-.2-.5v-.3l-.2-.3v-3.5l.2-.3v-.3l.2-.4.2-.3v-.3l.2-.3.2-.3v-.3l.3-.2v-.3l.3-.2.2-.3v-.2l.3-.3.2-.2v-.3l.3-.2.2-.2.8.7-.2.2-.2.2v.2h-.3v.3l-.3.3-.2.2v.3l-.3.3v.3l-.2.2-.2.3v.7l-.2.2v.2l-.2.3v.6l-.2.4v2.7l.2.3.2.3-.3.6zm.3-.5v.4l-.3.2.3-.6zm-22 1.8l1-.3-.2-.3.6.2.7.3.5.2.6.2h.8l.6.2.6.2h.7l.6.2h5.7l.7-.2h.5l.7-.3h.6l.7-.2.6-.2.7-.2.7-.2.6-.2.6-.3.6-.3.6-.2.7-.4.6-.3.5 1-.6.2-.7.4-.6.4-.7.2-.6.3-.7.2-.6.2-.6.2-.7.2-.6.2h-.6l-.7.3h-.7l-.6.2h-.7l-.7.2h-5l-.7-.2h-.7l-.6-.3h-.7l-.7-.3-.6-.3-.7-.3-.6-.2-.8-.3-.3-.4zm.4.3l-.2-.2v-.2l.2.3zm-5.6-5.8l.6-1 .2.2.2.2h.2l.2.2.2.2h.2l.2.2v.2h.3v.3h.3l.2.3h.2l.2.3.3.3.2.2.2.2.2.2v.2l.3.2v.2l.3.2.2.2v.2l.3.3.2.2.2.2v.2l.3.3v.3l.2.3-1 .3-.2-.2v-.3h-.2v-.3l-.2-.3-.2-.2v-.2l-.2-.2-.2-.2v-.2l-.3-.2-.2-.2-.3-.3-.2-.2-.3-.3h-.2l-.2-.3v-.2l-.3-.2h-.2v-.3h-.3l-.2-.2h-.2l-.2-.2h-.2l-.2-.3h-.2l-.2-.2h-.2zm-2-1.7l.8-.3h.2v.2h.2l.2.2h.2v.2h.4v.2h.2l.2.2h.2l-.6 1-.2-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2zm-10.2-31.7l1-.3.2 1 .3 1 .2.8.3 1 .3 1 .3.8.4 1 .3 1 .3 1 .3 1 .3 1 .3.8.2 1 .4 1 .3 1 .2 1 .3 1 .3 1 .4 1 .3 1 .3 1 .3 1 .5 1 .3 1 .3 1 .5 1 .3 1 .3 1 .4 1.2.4 1 .3 1 .4 1.2-1 .3-.3-1-.2-1.2-.3-1-.4-1-.2-1-.3-1-.3-1.2-.4-1-.3-1-.3-1-.4-1-.3-1-.3-1-.3-1-.4-1-.4-1-.3-1-.4-1-.3-1-.3-.8-.3-1-.4-1-.3-1-.3-1-.3-.8-.3-1-.2-1-.3-1-.3-.8-.3-1-.4-.8-.2-1zm88.2-33.6h1l-.5.5h-5.4l-2.5.2h-2.8l-3 .2-3.3.2-3.5.2-3.7.3-3.8.3-4 .4-4 .5-4 .6-4.2.6-4 .7-4.2 1-4 .8-4 1-3.7 1-3.7 1.3-3.4 1.4-3.3 1.4-3 1.5-2.6 1.6-2.3 1.7-2 2-1.6 1.8-1.2 2.2-.8 2.2-.4 2.3v2.5l.7 2.7-1 .3-.6-2.8v-2.8l.3-2.6 1-2.4 1.2-2.2 1.8-2 2-2 2.5-2 2.7-1.6 3-1.5 3.3-1.6 3.5-1.3 3.6-1 4-1.2 3.8-1 4-1 4-.7 4.2-.6 4.2-.6 4-.6 4-.5 4-.4 4-.4 3.7-.4 3.5-.2 3.3-.2 3-.2h3l2.4-.2h5.4l-.6.4zm1 0v.5h-.5l.7-.5zm-.5 0h-.4.5zm.7 0v.5h-.6l.7-.5z"/>
+        <path fill="#fff" d="M405 190.2c3.5 0 6.4 2.8 6.4 6.4 0 3.5-3 6.4-6.4 6.4s-6.4-3-6.4-6.4c0-3.6 3-6.4 6.4-6.4z"/>
+        <path fill="#21231e" d="M412 196.6h-1a6 6 0 00-3.4-5.3 5.8 5.8 0 00-2.6-.6v-1c2.3 0 4.6 1.2 5.8 3.2a7 7 0 011 3.6zm-7 7v-1c2.2 0 4.3-1.4 5.2-3.4a6 6 0 00.7-2.6h1c0 2.3-1.4 4.6-3.4 6a7 7 0 01-3.6 1zm-7-7h1c0 2.2 1.4 4.3 3.4 5.3a5.8 5.8 0 002.6.5v1a7 7 0 01-5.8-3.3 7 7 0 01-1-3.6zm7-7v1a6 6 0 00-5.2 3.3 6 6 0 00-.7 2.6h-1c0-2.4 1.4-4.7 3.4-6a6.8 6.8 0 013.6-1z"/>
+        <path fill="#fff" d="M350.8 203.6c3.2 0 6 2.7 6 6s-2.8 6-6 6c-3.3 0-6-2.7-6-6s2.7-6 6-6z"/>
+        <path fill="#21231e" d="M357.2 209.6h-1c0-2-1-4-2.8-4.8a5.4 5.4 0 00-2.6-.7v-1a7 7 0 015.4 3 6.5 6.5 0 011 3.6zm-6.4 6.4v-1c2 0 4-1.2 4.8-3a5.5 5.5 0 00.6-2.4h1c0 2-1.2 4.3-3 5.4a6.4 6.4 0 01-3.4 1zm-6.5-6.4h1c0 2 1.2 4 3 4.8.8.4 1.6.6 2.5.6v1a6.6 6.6 0 01-5.5-3 6.5 6.5 0 01-1-3.4zm6.5-6.5v1c-2 0-4 1.3-5 3a5.5 5.5 0 00-.5 2.6h-1c0-2.2 1.2-4.4 3-5.5a6.4 6.4 0 013.5-1z"/>
+        <path fill="#fff" d="M345 192.7c3.4 0 6 2.7 6 6s-2.6 6-6 6c-3.2 0-5.8-2.7-5.8-6s2.6-6 6-6z"/>
+        <path fill="#21231e" d="M351.5 198.7h-1c0-2-1.2-4-3-5a5.3 5.3 0 00-2.4-.5v-1c2.3 0 4.4 1.2 5.5 3a6.5 6.5 0 011 3.5zM345 205v-1c2 0 4-1 4.8-2.7a5.5 5.5 0 00.7-2.6h1c0 2.2-1.2 4.3-3 5.5a6.4 6.4 0 01-3.4 1zm-6.3-6.3h1c0 2 1.2 4 3 4.8a5 5 0 002.4.6v1c-2 .2-4.2-1-5.3-3a6.5 6.5 0 01-1-3.3zm6.4-6.5v1c-1.8 0-3.7 1-4.6 2.8a5.5 5.5 0 00-.7 2.7h-1c0-2.2 1.2-4.4 3-5.5a6.4 6.4 0 013.4-1z"/>
+        <path fill="#fff" d="M339.8 181.7c3.3 0 6 2.7 6 6s-2.7 6-6 6-6-2.7-6-6 2.7-6 6-6z"/>
+        <path fill="#21231e" d="M346.2 187.7h-1c0-2-1.2-4-3-5a5.4 5.4 0 00-2.4-.5v-1c2.2 0 4.3 1.2 5.4 3a6.5 6.5 0 011 3.5zm-6.4 6.4v-1c2 0 3.8-1 4.7-2.7.5-.8.7-1.7.7-2.6h1c0 2-1 4.3-3 5.4a6.4 6.4 0 01-3.4 1zm-6.4-6.3h1c0 2 1 4 3 4.8.7.4 1.5.6 2.4.6v1a6 6 0 01-5.4-3 6.5 6.5 0 01-1-3.3zm6.4-6.5v1c-2 0-4 1.2-4.8 3a5.5 5.5 0 00-.6 2.5h-1c0-2.2 1-4.4 3-5.5a6.4 6.4 0 013.4-1z"/>
+        <path fill="#edb92e" d="M444.3 202.2c3.4-.3 2.5 5.8 2 7.2-1 1.8-1.8 1.8-3 .2-.8-1.3-2.4-7.2 1-7.5z"/>
+        <path fill="#21231e" d="M446.6 209.6l-1-.4h.2v-.7l.2-.3v-.5l.2-.3V204h-.2v-.3l-.2-.2v-.2l-.2-.2h-.2l-.3-.2h-.2l-.2-.2h-.3v-1h.7l.3.2h.3l.3.2v.2l.3.3.2.2.2.3v.2l.2.3v.7l.2.3v3.7l-.2.3v.5l-.2.3v.5h-.2zm-3.7.3l.8-.7.2.3v.2h.2v.2h.2v.2h.7l.2-.2v-.2h.2v-.2h.2v-.3l1 .3v.2l-.2.2v.3h-.2v.2l-.2.2-.2.2h-.4v.2H444v-.2h-.2v-.2h-.2v-.2h-.2v-.3h-.2v-.3h-.3zm1.2-8.4v1h-.4v.2h-.3v.2h-.3v.3l-.2.2v.4h-.2v3.2l.2.2v.6l.2.2v.3l.2.2v.2l.2.2v.2h.2l-1 .7v-.5l-.2-.2v-.2l-.2-.4v-.2l-.2-.3v-.2l-.2-.3v-.7l-.2-.3v-3l.2-.3v-.3l.3-.3.2-.2.2-.3h.2l.2-.3.3-.2h.4l.2-.2z"/>
+        <path fill="#fff" d="M444.5 205.5c8-.6 6 13.8 4.4 17-2 4.2-4 4.3-6.7.5-2-3-5.8-17 2.2-17.5z"/>
+        <path fill="#21231e" d="M449.4 222.7l-1-.4.2-.3.2-.4v-.4l.3-.5.2-.5v-.6l.2-.6.2-.7V217l.2-.7v-5.1l-.3-.7v-.6l-.3-.7-.3-.6-.3-.5-.3-.5-.3-.4-.3-.4-.4-.4-.5-.2-.5-.2-.5-.2h-1.4v-1h1.5l.6.2.7.2.5.4.6.4.4.4.4.5.4.7.3.6v.7l.3.6.2.7v.7l.3.8v6.3l-.3.7v.7l-.2.6v.6l-.3.6v.5l-.3.5v.4l-.3.3zm-7.5.5l.8-.5.2.3.2.3.3.3.2.3h.2v.4h.3l.2.3.2.2h.4l.2.2h1v-.2h.3l.2-.3v-.2l.2-.2.2-.2h.2l.2-.4v-.3l.3-.3.3-.3.2-.4 1 .4-.3.4-.2.5-.2.3-.2.4-.2.3-.2.3-.2.2-.2.2-.2.3-.3.2h-.2v.3h-.4l-.2.2H445l-.4-.2h-.2l-.3-.3v-.2l-.4-.2-.2-.2-.2-.2-.3-.2-.3-.3-.3-.4-.2-.4-.3-.4zm2.5-17.2v-1 1h-.6l-.7.2-.5.2-.5.3-.4.3-.5.4-.3.4-.3.4-.3.6-.2.5v.6l-.2.5v.7l-.2.7v.6l.2.7v1.4l.2.7v.8l.3.7v.6l.3.7.2.6.2.5.2.6.2.7.2.5.2.4.2.4.2.4.2.3-1 .5v-.3l-.3-.5-.2-.4-.2-.4v-.6l-.4-.5-.2-.7-.2-.6-.2-.7-.2-.7v-.7l-.3-.6v-.8l-.2-.7V213l-.2-.7v-.8l.2-.7v-.6l.2-.7v-.7l.4-.6.2-.6.4-.6.4-.5.4-.5.5-.4.6-.3.7-.3.7-.2h.8v1zm0-1v1-1z"/>
+        <path fill="#edb92e" d="M379.7 210.8c3.3-1 4 5 3.6 6.6-.4 2-1.2 2.2-2.7 1-1-1.2-4-6.5-1-7.6z"/>
+        <path fill="#21231e" d="M383.8 217.5l-1-.2v-2.8l-.2-.3v-.7l-.2-.3v-.3l-.2-.2v-.3l-.3-.2-.2-.2-.3-.3-.3-.3h-.3l-.3-.2h-.6l-.4-1h1.5l.2.2.3.2.2.2.3.2.2.3.2.2v.3l.3.3v.4l.2.3v.3l.2.3v.3l.2.4v.6l.2.3v2.5zm-3.5 1l.7-.6h.2v.2h.2l.2.2h.2v.2h.4l.2-.2v-.2h.2v-.6h.2v-.3l1 .2v.4h-.2v.4l-.2.3v.2h-.2l-.2.2-.2.2h-.2l-.2.2h-1v-.2h-.3l-.2-.2h-.2v-.2h-.2l-.2-.2v-.2zm-.7-8.2l.3 1h-.3l-.2.2h-.2v.2l-.2.2v.2l-.2.2v1.8l.2.4v.3l.2.3v.2l.2.3.2.3v.3l.2.3.2.3v.2l.3.2v.2l.2.2.3.3.2.2-.7.6h-.2v-.4l-.3-.2v-.2l-.3-.2v-.3l-.3-.2v-.2l-.2-.3v-.3l-.3-.3v-.4l-.2-.3v-.3l-.3-.3v-.7l-.2-.3V212l.3-.2.2-.3.2-.3.3-.2.2-.2h.2l.4-.3z"/>
+        <path fill="#fff" d="M380.7 214c7.7-2.5 9.2 12 8.4 15.5-1 4.5-2.8 5-6.2 2-2.6-2.4-9.7-15-2-17.5z"/>
+        <path fill="#21231e" d="M389.6 229.6l-1-.2v-.8l.2-.4v-2.9l-.2-.7V223l-.3-.7v-.7l-.3-.8-.2-.7-.2-.6-.2-.7-.3-.7-.2-.6-.3-.6-.3-.4-.4-.5-.3-.4-.4-.3-.4-.4-.4-.4-.5-.2h-.5l-.5-.2h-1.1l-.6.3-.4-1 .7-.2h2.2l.7.2.7.2.5.4.5.5.5.4.4.5.4.5.4.6.3.7.3.6.3.6.3.7.2.8.2.8.2.7v.8l.3.7v1.5l.2.7v4.4zm-7 2.3l.5-1 .5.4.2.2.3.3h.3l.3.3h.2l.3.3h.3l.2.2h1.4l.2-.2.2-.2.2-.3.3-.3v-.6l.2-.2v-.3l.2-.4v-.2l.2-.4 1 .2v.4l-.2.4v.4l-.2.4-.2.3v.3l-.2.3-.2.4v.3l-.3.2h-.2v.3l-.3.2h-.2l-.2.3h-.8l-.3.2h-.5l-.3-.2h-.2l-.3-.2h-.4l-.3-.3-.3-.2h-.3l-.3-.3-.3-.3-.2-.2-.3-.3zm-2-18.5l.3 1-.7.2-.6.3-.4.3-.4.4-.4.4-.3.5-.2.5v.5l-.2.6v2.5l.2.6.2.7.2.6.2.7.3.7v.7l.4.6.3.7.4.6.4.6.3.6.4.6.4.5.3.4.3.4.4.4.2.4.3.3-.5 1-.3-.4-.3-.3-.4-.4-.4-.5-.3-.5-.4-.5-.4-.6-.3-.7-.5-.6-.3-.6-.4-.6-.3-.6-.3-.7-.3-.7-.3-.7-.3-.7-.2-.8-.2-.8v-.7l-.2-.7V218l.2-.7.2-.6.2-.6.3-.5.4-.5.6-.5.6-.4.7-.2.6-.3zm0 .5v-.5.5z"/>
+        <path fill="#edb92e" d="M464.2 137.8c-17.2-1.6-35 .2-52.3 7-14.8 6-13.4 23.2 4.6 47-1.7 3-2.6 6.8-2.7 11h4.8c-1.3-2.8 0-6.4 1.8-9 1-1.5 1.3-1.2 0-3-10.7-15-17.8-28.2-13.6-36 5-9.7 24.6-14.7 57.7-14 0-1 0-1.8-.2-2.7 0 0-.2 0-.3-.2z"/>
+        <path fill="#21231e" d="M412 145.4l-.3-1 1.7-.6 1.6-.6 1.7-.6 1.6-.5 1.6-.4 1.6-.5 1.6-.4 1.7-.4 1.5-.4 1.7-.4 1.6-.4 1.7-.3 1.6-.3 1.8-.3h1.6l1.7-.3 1.7-.2 1.7-.2 1.6-.2h3.3l1.6-.2h11.5l1.6.2h1.6l1.6.3v1l-1.7-.2h-4.9l-1.6-.2h-9.7l-1.6.2H443l-1.5.3-1.7.2-1.6.2-1.6.2H435l-1.7.4-1.6.3-1.7.3-1.6.4-1.6.3-1.7.5-1.5.4-1.6.4-1.8.5-1.6.6-1.6.6-1.7.6-1.6.6-1.6.6zm5 46.7l-1-.4.2.5-1.7-2-1.5-2.3-1.5-2-1.3-2.2-1.3-2-1.2-2-1-2-1-2-1-2-.7-1.7-.6-1.8-.5-1.8-.6-1.7-.4-1.6-.3-1.7-.2-1.6v-4.4l.2-1.3.3-1.3.4-1.2.5-1.2.5-1.2.7-1 .8-1 .8-1 1-.7 1-.8 1.3-.8 1.4-.6 1.3-.5.4 1-1.2.5-1.2.6-1 .7-1 .8-1 1-1 .8-.6 1-.7 1-.5 1-.5 1-.3 1.2-.3 1.2-.2 1.2v3.8l.2 1.5.3 1.7.3 1.6.5 1.6.6 1.6.7 1.8.8 1.8 1 2 .8 1.8 1 2 1.2 2 1.2 2 1.4 2 1.4 2.2 1.5 2 1.7 2.3v.6zm0-.5l.2.3-.2.3v-.5zm-3 11v1l-.6-.6v-2.5l.2-.4v-1l.2-.4v-.7l.2-.5v-.4l.2-.2v-.4l.2-.3v-.3l.2-.3v-.4l.2-.3v-.3l.2-.3v-.3l.3-.3v-.3l.2-.2.2-.3v-.3l.3-.3v-.4l1 .5v.4l-.3.2v.3l-.2.2-.2.3v.3l-.2.3v.4l-.2.3v.3l-.2.4v.3l-.2.3v.3l-.2.4v.7l-.2.3v.8l-.2.4v.8l-.2.4v1.4l-.2.4v.7l-.5-.6zm0 1h-.6v-.6l.5.5zm4.3-.4l1-.4-.5.8h-4.6v-1h4.6l-.5.7zm1-.4l.3.7h-.8l.4-.7zm1-9l.7.6-.2.2v.3l-.2.2-.2.2v.2l-.3.3v.4l-.2.3-.2.2v.3l-.2.3v.2l-.2.3v.7l-.2.2v.5l-.2.3v2.2l.2.3v.4l.2.2-1 .5v-.5l-.2-.3v-.7l-.2-.3v-2.7l.2-.3v-.3l.2-.2v-.3l.2-.3v-.3l.2-.4v-.3l.2-.3.2-.3v-.2l.2-.3.2-.3v-.3l.3-.3v-.3h.3l.2-.3zm0-2.5l.7-.5.2.3.2.3v.2h.2v.4h.2v.4l.2.2v.5l-.2.2v.2h-.2v.2l-.2.2v.2h-.2v.3l-.2.2-.8-.6v-.2l.2-.2.2-.2v-.2h.2v-.4h.2v-.2h-.2v-.2l-.2-.2v-.3h-.2v-.3h-.2zm-13.8-36.5l1 .5-.4.7-.2.7-.2.8-.2.8v4.5l.2 1 .3 1v1l.5 1 .3 1.2.4 1 .5 1.2.5 1 .5 1.2.6 1.2.6 1.2.6 1.3.7 1 .7 1.4.8 1.3.8 1.3.8 1.3 1 1.3.8 1.4 1 1.3.8 1.4 1 1.4 1 1.5-.8.6-1-1.3-1-1.4-1-1.4-1-1.5-.8-1.3-.8-1.4-1-1.3-.7-1.3-.8-1.3-.8-1.4-.7-1.2-.7-1.3-.6-1-.6-1.3-.5-1.2-.5-1.2-.5-1.2-.4-1-.5-1-.3-1.2-.3-1-.3-1-.2-1.2v-1l-.2-1V158l.3-.8.3-1 .2-.7.3-.8zm57.7-13.7h1l-.5.5h-14.5l-2.6.2H445l-2.5.3-2.4.2-2.3.3-2.2.2-2.2.3-2 .4-2 .3-2 .4-1.8.4-1.8.4-1.7.5-1.6.5-1.5.6-1.5.5-1.3.5-1.3.7-1.3.6-1 .7-1 .7-1 .7-.8.7-.8.8-.7.8-.6.8-.6 1-1-.5.7-1 .7-.8.7-1 .8-.7 1-.8 1-.8 1-.8 1-.7 1.2-.7 1.3-.7 1.4-.6 1.6-.6 1.5-.5 1.7-.7 1.7-.5 1.8-.4 2-.5 1.8-.5 2-.3 2.2-.4 2.2-.3 2.2-.2 2.4-.3 2.4-.2 2.5-.2h2.5l2.7-.2h2.7l2.8-.2h9l-.6.6zm1 0v.5h-.5l.5-.5zm-1-2.3l.7-.7v1.9h.2v1h-1v-2.3l-.2-.2v-.4.3zm.7-.7v.3-.2zm-1.2-.4l.8.7v-.6.2h.2v.2l-.7.7v-.4h-.2v-.6zm0 .7l-.3-.2.3-.4v.7zm.8 0l-.8-.6h.4l.4.7zm-.4-.7h1l-.6.8-.4-.7z"/>
+        <path fill="#fff" d="M380.6 142.7c3.4 0 6 2.7 6 6s-2.6 6.3-6 6.3-6.2-2.7-6.2-6.2a6 6 0 016.2-6z"/>
+        <path fill="#21231e" d="M387.2 148.8h-1c0-2-1.2-4-3-5a5.6 5.6 0 00-2.6-.6v-1c2.2 0 4.5 1.2 5.6 3a6.7 6.7 0 011 3.6zm-6.6 6.7v-1c2 0 4-1.2 5-3a7 7 0 00.6-2.7h1a7 7 0 01-3 5.7 6.6 6.6 0 01-3.6 1zm-6.7-6.7h1c0 2 1.2 4.2 3 5a5.6 5.6 0 002.6.7v1a6.6 6.6 0 01-5.6-3 6.7 6.7 0 01-1-3.7zm6.6-6.7v1.2c-2 0-4 1.2-5 3a5.7 5.7 0 00-.6 2.6h-1c0-2.2 1-4.4 3-5.6a6.6 6.6 0 013.6-1z"/>
+        <path fill="#fff" d="M392.6 138.7c3.4 0 6.2 2.8 6.2 6.2 0 3.3-2.8 6-6.2 6a6 6 0 01-6-6c0-3.5 2.6-6.3 6-6.3z"/>
+        <path fill="#21231e" d="M399.3 145h-1c0-2.2-1.3-4.3-3.2-5.2a5.6 5.6 0 00-2.4-.6v-1a7 7 0 015.7 3 6.7 6.7 0 011 3.7zm-6.7 6.6v-1c2 0 4-1.3 5-3a5.7 5.7 0 00.7-2.7h1c0 2.2-1.2 4.4-3.2 5.6a6.6 6.6 0 01-3.4 1zM386 145h1c0 2 1.2 4 3 5a5.6 5.6 0 002.6.6v1a6.7 6.7 0 01-5.6-3.2 6.7 6.7 0 01-1-3.5zm6.6-6.8v1c-2 0-4 1.2-5 3a5.7 5.7 0 00-.6 2.7h-1c0-2.4 1.2-4.7 3.2-5.8a6.6 6.6 0 013.4-1z"/>
+        <path fill="#edb92e" d="M394.2 144a261.2 261.2 0 002 2.4c-9.8 5.4-14 11-13 16.7.2 1 3.2 11.5 9.8 31.7 4.5 3 7.8 6 10 8.4-.2.4.8 1.2.5 1.5.7 3-2.8 2.4-5 1.7-1.2-3-4.6-6-6.6-7.5-.5-.2-2-1-2-1.4l-10.2-31.6c-3-9.8 3.6-16.8 14.4-21.7z"/>
+        <path fill="#21231e" d="M396.3 147l-.5-1v.7h-.2v-.2h-.2v-.2l-.2-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2h-.2l.8-.7.2.2h.2v.4h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2h.2v.2l.2.2v1zm.2-1l.3.6-.5.3.2-1zm-12.7 17l-1 .2v-3.9l.2-.6.2-.5.2-.6.2-.5.3-.5.2-.5.3-.6.4-.5.3-.6.4-.6.5-.5.4-.6.6-.5.5-.5.6-.5.6-.6.5-.5.7-.4.7-.5.6-.5.8-.5.8-.5 1-.5.7-.5.8-.5.5 1-1 .4-.7.5-.8.4-.8.5-.8.4-.7.5-.7.4-.6.5-.7.4-.6.5-.6.4-.5.5-.6.4-.5.6-.5.5-.4.5-.3.5-.3.5-.3.5-.2.5-.2.5-.2.5-.2.5-.2.5v.5l-.2.5v3.1zm0 0zm9.5 31.3l-.6.8-.2-.2-.6-1.8-.7-1.8-.5-1.8-.6-1.7-.5-1.6-.5-1.5-.5-1.5-.5-1.5-.4-1.4-.4-1.2-.4-1.3-.4-1.3-.4-1-.3-1.3-.4-1-.3-1-.3-1-.3-1-.3-.8-.2-.8-.2-.8-.2-.6-.2-.7v-.5l-.3-.5v-.5l-.2-.4v-.8h-.2v-.3h1v.3l.2.3v.4l.2.3v.5l.2.5.2.6.2.7.2.7.2.7.2 1 .3.7.2 1 .2 1 .3 1 .3 1 .4 1 .4 1.2.3 1.2.3 1.3.5 1.3.4 1.4.5 1.5.4 1.5.7 1.6.5 1.6.5 1.7.6 2 .6 1.7.5 1.8-.2-.2zm-.6.8l-.2-.2.2.3zm10.7 8.4l-.7-.6v.6l-.2-.2-.2-.2-.3-.3-.2-.2-.2-.2-.3-.3-.2-.2-.2-.2-.2-.3-.3-.2-.3-.2-.2-.2-.3-.3-.3-.3-.3-.2-.4-.3-.3-.2-.4-.3-.4-.3-.3-.2-.4-.3-.4-.3-.4-.3-.3-.3-.5-.3-.4-.2-.3-.3-.4-.2-.4-.3-.5-.3-.4-.3-.3-.3.6-.7.4.3.4.3h.5l.4.4.3.3.4.3.4.3.5.3.3.2.4.3.3.4.4.3.2.2.4.2.3.3.2.2.3.3.3.3.3.2.4.3.3.2.3.3.3.3.2.2.3.3.3.3.3.3.2.2.3.2.2.3.2.2.2.3v.6zm0-.6l.3.3-.3.4v-.6zm.6 1.6l-1 .2.2-.5v.2h-.2v.2-.2l-.2-.2v-.2h-.2v-1.2l.8.6v-.2h.2v.2l.2.2v.2l.2.2v.7l-.2.2.2-.6zm-1 .2v-.3l.2-.2-.2.6zm-5 1.8l1-.4-.4-.3h.4l.2.2h.7l.4.2h2.3v-.2h.2v-1.4l1-.2v1.6l-.2.3v.2l-.2.2h-.2l-.2.2h-.4l-.2.2h-3l-.3-.2h-.5l-.3-.2h-.5l-.3-.4zm.2.3h-.2v-.3l.2.3zm-6.6-7.5l.6-1 .2.3h.2l.2.3h.2l.3.3.2.3.2.2.2.2.2.2h.2l.2.3.3.2v.3l.4.2.2.3.2.2.3.3.3.2.2.3.3.3.2.2.2.3.2.4.2.3.2.3.2.2.2.3v.3l.3.3v.4l.3.3v.3l-1 .4v-.3l-.2-.4-.2-.3v-.2l-.3-.2v-.3l-.2-.2-.2-.3-.2-.3-.2-.2-.2-.3-.2-.2-.2-.3-.3-.2-.2-.3v-.2l-.3-.3-.3-.2-.2-.2-.2-.2-.3-.2-.2-.2-.2-.2h-.2l-.2-.3h-.2l-.2-.3h-.2l-.2-.3h-.2l-.2-.2zm.6-1l.3.3-.3-.2zm-2.7-.7l1-.3.2.2h.2v.2h.2v.2h.4v.2h.2l.2.2h.2l-.6 1-.2-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2zm-10-31.7l.8-.3.3 1 .3 1 .2.8.3 1 .3 1 .3.8.4 1 .3 1 .3 1 .3 1 .3 1 .3.8.2 1 .4 1 .3 1 .2 1 .3 1 .3 1 .4 1 .3 1 .3 1 .3 1 .5 1 .3 1 .3 1 .5 1 .3 1 .3 1 .4 1.2.4 1 .3 1 .4 1.2-1 .3-.3-1-.2-1.2-.3-1-.4-1-.2-1-.3-1-.3-1.2-.4-1-.3-1-.3-1-.4-1-.3-1-.3-1-.3-1-.4-1-.4-1-.3-1-.4-1-.3-1-.3-.8-.3-1-.4-1-.3-1-.3-1-.3-.8-.3-1-.2-1-.3-1-.3-.8-.3-1-.4-.8-.2-1zm15-22l-.7.5h.6l-1 .6-1 .4-1 .5-.8.4-1 .5-.7.4-1 .5-.7.5-.8.5-.7.6-.7.6-.5.6-.7.6-.5.6-.6.7-.5.6-.4.7-.4.6-.4.7-.3.7-.3.7-.3.7v.8l-.2.7v.7l-.2.8v2.6l.3.8v1l.3.7-1 .3-.2-1v-.8l-.3-1V159l.2-1 .2-.7.2-.6.3-.8.4-.7.5-1 .4-.6.4-.7.6-.7.5-.7.6-.6.8-.6.6-.6.8-.6.7-.6.7-.5.8-.6 1-.5.7-.5 1-.5 1-.5.8-.5 1-.5 1-.5.6.2zm-.5-.3l.4-.2.2.4-.6-.2z"/>
+        <path fill="#edb92e" d="M356 217l-.4 2c-2.8.5-5.3.7-7.3.3 3.4-3.3 6-4 7.6-2.4z"/>
+        <path fill="#21231e" d="M355 218.8l.4-2 1 .2-.3 2-.3.4-.6-.6zm1 0v.5h-.3l.4-.4zm-8 .2l.7.7-.3-1 .2.2h4.1l.3-.2h1l.2-.2h.7l.2-.2h.3l.2 1h-.8l-.4.2h-.5l-.4.2h-1.3v.2h-3.7l-.4-1zm.2 1l-1-.3.8-.7.2 1zm8.2-3l-1-.2.2.5v-.2h-.6v-.2h-.6l-.2-.2H353v.2h-.6l-.2.3-.2.2h-.3l-.2.2-.3.2-.2.2-.3.2-.3.2-.2.2-.3.2-.4.3h-.3l-.3.4-.3.3-.7-.7.3-.3.3-.3.3-.3.2-.2.3-.2.3-.2.3-.3h.4l.3-.3h.3l.2-.3h.3l.3-.3h.6l.3-.2h.5l.4-.2h1.3l.2.2h.3l.2.2h.2l.2.2.3.3v.5zm0-.5v.5-.5zm-.5.4h.4-.5zm.3-.5l.2.2v.3l-.2-.5z"/>
+        <path fill="#edb92e" d="M355.6 212.3c1.8.4 2 .7 2.7 1 1 0 2.4 0 3.3-1 4-2.2 4 2 2.5 5-1 2.4-.5 5 .6 7 1.2 2.2 1 3.2 0 4l-1.6 1c-1 1.2-1.8 1-2-.6-3.8-1.6-5-5.3-6.2-8.6-1.7-4.7-7.8-5.8.8-7.7z"/>
+        <path fill="#21231e" d="M358.4 212.7v1h-.7v-.2h-.4l-.2-.2h-.4l-.2-.2h-.8l-.3-.2.2-1h.4l.2.2h.4l.2.2h.4v.2h.8v.2h.4zm3-.7l.5 1v-.2l-.2.2h-.3v.2h-.2l-.2.2h-.2l-.2.2h-2.1v-1h2.2l.2-.2h.2v-.2h.2l.2-.2zm0 0zm3 5.6l-.8-.4v-.3l.3-.4v-.5l.2-.2v-.6l.2-.3v-2.2h-.2v-.2h-.2v-.2h-1.2l-.3.2-.3.2-.3.2-.6-1 .4-.2.3-.2h.5l.3-.2h1.8l.2.2.2.2v.2l.2.3v.4l.2.3v2.4l-.2.3v.3l-.2.4v.3l-.2.3v.3l-.3.3zm.6 6.3l-1 .4v-.4l-.2-.2v-.4l-.2-.2v-.2l-.2-.2v-.5l-.2-.2v-.8l-.2-.2v-2.3l.2-.2v-.3l.2-.3v-.3l.2-.2 1 .4-.2.2v.4l-.2.2v.8l-.2.2v2l.2.2v.5l.2.2v.4h.2v.2l.2.2v.4h.2zm0 4.6l-.6-1h.2v-.2h.2v-1.6l-.2-.3v-.3l-.2-.2v-.2l-.2-.2v-.2l.8-.5v.2l.2.2v.2l.2.2v.2l.2.2v.2l.2.3v1.7l-.2.2v.2h-.2v.2h-.2v.2l-.2.2zm0 0zm-1.6 1l-.8-.7v-.2h.2l.2-.2h.2v-.2h.4v-.2h.2v-.2h.4v-.2h.2l.6.8h-.2v.2h-.4v.2h-.2l-.2.2h-.2v.2h-.2l-.2.2zm-.8-.7v-.2zm-1.8 0l.4-.8.3.4v.5h.2v.2h.4v-.2h.2v-.2h.2l.8.6-.2.2-.2.2-.3.2h-.2v.2h-1.1l-.2-.2v-.2l-.2-.2v-.4h-.2v-.7l.2.4zm.4-.8h.3v.4l-.3-.4zm-7-8l1-.3.2.2v.3l.2.3v.4l.2.3v.3l.3.3.2.4v.3l.2.3.2.3v.3l.3.3v.2l.2.3v.2l.3.3.2.3.2.2v.3l.3.2.2.3.2.2.2.2.2.2h.2l.3.3.3.2.3.2.3.2h.3l.2.2-.4 1-.3-.2-.4-.2-.2-.2-.4-.2-.3-.2-.2-.3-.3-.3-.2-.2-.3-.3-.3-.2-.2-.3-.2-.3-.2-.3-.3-.4-.2-.3-.2-.3-.2-.3v-.4l-.2-.3v-.3l-.3-.3v-.3l-.3-.2v-.3l-.2-.4v-.2l-.2-.3-.2-.3v-.3l-.2-.4v-.3zm1.4-8.4v1l-.6.2-.7.2h-.6l-.5.3h-.4l-.4.3h-.3v.3l-.2.2v.2h-.2v.2l.2.3.3.2.2.3.2.2.2.3.3.2v.3l.4.3.2.3.3.5.2.3.2.4.3.4.2.4v.5l.3.4-1 .3v-.4l-.3-.5-.2-.4-.2-.3-.3-.3-.2-.3v-.2l-.4-.3-.2-.3-.3-.3v-.4l-.3-.2-.3-.3-.3-.4v-.2l-.2-.3-.2-.4v-.6l.3-.3v-.2l.3-.3h.3l.4-.3.4-.3.5-.2h.4l.7-.3.8-.2.7-.2zm0 0zm0 1v-1 1zm0-1z"/>
+        <path fill="#edb92e" d="M357 212.5c3.5 1.2 4-.7 6-.6-.8 5-1.7 7.7-7 5-3-1.6-6.7.7-7.4 2.3-.3.6-2-.6-2.6-2-2.6-5.8 6.7-6.4 11-4.8z"/>
+        <path fill="#21231e" d="M363.6 212l-1-.2.5.6H362v.2h-.3l-.2.2h-.2l-.3.2h-.3v.2h-.7l-.2.2h-2l-.4-.2h-.3l-.3-.2.3-1h.3l.3.2h.4l.2.2h1.3l.2-.2h.2l.2-.2h.5l.2-.2h.2l.3-.2h.5l.2-.2h.4l.6.6zm-.5-.6h.7v.6l-.6-.6zm-7.2 6l.4-1 .5.4.5.2h.4l.4.3h.3l.4.2h1.7l.2-.2.3-.3.2-.3v-.2l.2-.2.2-.3v-.3l.2-.3v-.3l.2-.2v-.4l.2-.4v-.4l.2-.4v-.9l.2-.5 1 .2v.5l-.2.5v.8l-.2.5v.4l-.2.4v.4l-.3.4v.3l-.2.4-.2.4v.2l-.3.3-.2.3-.2.2-.3.2-.2.2h-.2l-.3.2h-.3l-.3.2h-1.6l-.4-.2-.4-.2h-.4l-.4-.3-.5-.3-.5-.3zm-6.8 2l-1-.3h.2v-.3h.3v-.3l.3-.2v-.2l.3-.2h.3l.2-.3.2-.2h.3l.2-.3h.3l.2-.3h.3l.3-.2h.3l.2-.2h.3l.4-.2h2.3l.3.2h.3l.3.2h.2l-.4 1h-.3l-.2-.2h-.5l-.3-.2h-1.8l-.3.2h-.3l-.3.2h-.3l-.2.3h-.2l-.3.2h-.2l-.2.2h-.2v.2l-.2.2h-.2v.3h-.2v.2h-.2v.2h-.2zm-3.5-2l1-.3v.4h.2v.4h.2v.2l.2.2h.2v.2l.2.2h.2v.2h.4v.2l.8.5v.2l-.3.2h-1v-.2h-.2l-.3-.2h-.2v-.2l-.2-.2-.2-.2h-.2v-.3h-.2v-.2h-.2v-.3h-.2v-.4h-.2v-.3zm11.8-5.4l-.3 1-.4-.2h-.5l-.3-.2h-.5l-.5-.2h-5l-.5.2-.4.2h-.4l-.4.3-.4.3-.3.2v.2l-.4.2-.2.2v.3l-.3.2v1.6l.3.4.2.5-1 .5-.2-.5-.2-.6V215l.2-.6.2-.4.2-.4.3-.3.2-.4.3-.3.4-.3.4-.2.4-.2.5-.2h.5l.5-.3h1.1l.5-.2h3.3l.6.2h.5l.4.2.5.2h.3zm0 .5v-.5.5z"/>
+        <path fill="#fff" d="M458.8 124.5c3.4 0 6.2 2.7 6.2 6 0 3.5-2.8 6.3-6.2 6.3s-6-2.8-6-6.2a6 6 0 016-6z"/>
+        <path fill="#21231e" d="M465.5 130.6h-1c0-2-1.3-4.2-3.3-5a5.5 5.5 0 00-2.4-.6v-1a7 7 0 015.7 3 6.7 6.7 0 011 3.6zm-6.7 6.7v-1c2 0 4-1.2 5-3a5.6 5.6 0 00.6-2.7h1c0 2.3-1 4.5-3 5.7a6.6 6.6 0 01-3.6 1zm-6.6-6.7h1c0 2 1.3 4.2 3.2 5a5.5 5.5 0 002.4.7v1a6.6 6.6 0 01-5.6-3.2 6.7 6.7 0 01-1-3.4zm6.6-6.6v1c-2 0-4 1.2-5 3a5.6 5.6 0 00-.6 2.6h-1c0-2.2 1.2-4.4 3.2-5.6a6.6 6.6 0 013.4-1z"/>
+        <path fill="#fff" d="M446.3 124.5a6 6 0 016 6c0 3.5-2.6 6.3-6 6.3s-6-2.8-6-6.2c0-3.4 2.6-6 6-6z"/>
+        <path fill="#21231e" d="M453 130.6h-1c0-2-1.3-4-3.2-5a5.5 5.5 0 00-2.5-.6v-1c2.3 0 4.5 1.2 5.6 3a6.7 6.7 0 011 3.6zm-6.7 6.7v-1c2 0 4-1.3 5-3a7 7 0 00.6-2.7h1c0 2.3-1.3 4.5-3.2 5.7a6.6 6.6 0 01-3.5 1zm-6.6-6.7h1c0 2 1.2 4.2 3 5a5.5 5.5 0 002.6.7v1a6.5 6.5 0 01-5.6-3.2 6.7 6.7 0 01-1-3.4zm6.6-6.6v1c-2 0-4 1.2-5 3a5.6 5.6 0 00-.6 2.6h-1a7 7 0 013-5.6 6.6 6.6 0 013.6-1z"/>
+        <path fill="#fff" d="M433.8 125.5a6 6 0 016 6c0 3.5-2.6 6.3-6 6.3s-6-2.8-6-6.2 2.6-6 6-6z"/>
+        <path fill="#21231e" d="M440.4 131.6h-1c0-2-1.2-4-3-5a5.5 5.5 0 00-2.6-.6v-1a7 7 0 015.6 3 6.7 6.7 0 011 3.6zm-6.6 6.7v-1c2 0 4-1.3 5-3a5.7 5.7 0 00.6-2.7h1a7 7 0 01-3 5.7 6.6 6.6 0 01-3.6 1zm-6.6-6.7h1c0 2.2 1.3 4.3 3.2 5.2a5.5 5.5 0 002.4.5v1a6.4 6.4 0 01-5.6-3.2 6.7 6.7 0 01-1-3.4zm6.6-6.6v1c-2 0-4 1.2-5 3a5.7 5.7 0 00-.6 2.6h-1c0-2.3 1.3-4.6 3.3-5.7a6.6 6.6 0 013.3-1z"/>
+        <path fill="#fff" d="M422.3 127.7c3.3 0 6 2.8 6 6.2 0 3.3-2.7 6-6 6s-6.2-2.7-6.2-6 3-6.3 6.3-6.3z"/>
+        <path fill="#21231e" d="M429 134h-1a6 6 0 00-3.3-5.2 5.5 5.5 0 00-2.4-.6v-1c2.2 0 4.4 1.2 5.6 3.2a6.7 6.7 0 011 3.5zm-6.7 6.5v-1c2 0 4-1.2 5-3 .4-1 .6-1.8.6-2.6h1c0 2-1.3 4.3-3.3 5.5a6.6 6.6 0 01-3.4 1zm-6.7-6.6h1c0 2 1.2 3.8 3 4.8a5 5 0 002.7.7v1a7 7 0 01-5.7-3 6.7 6.7 0 01-1-3.6zm6.7-6.8v1c-2 0-4.2 1.3-5 3.2a5.7 5.7 0 00-.7 2.5h-1c0-2.5 1.3-4.7 3.3-6a6.6 6.6 0 013.3-.8z"/>
+        <path fill="#fff" d="M346.3 159.4a6 6 0 016 6.2c0 3.4-2.6 6.2-6 6.2s-6-2.8-6-6.2a6 6 0 016-6.2z"/>
+        <path fill="#21231e" d="M353 165.6h-1c0-2-1.3-4-3.2-5a5.6 5.6 0 00-2.5-.7v-1c2.2 0 4.5 1 5.6 3a6.7 6.7 0 011 3.6zm-6.7 6.7v-1c2 0 4-1.2 5-3a7 7 0 00.6-2.7h1c0 2.3-1.3 4.5-3.2 5.7a6.6 6.6 0 01-3.5 1zm-6.7-6.7h1c0 2 1.3 4.2 3.2 5a5.6 5.6 0 002.5.7v1a7 7 0 01-5.6-3 6.7 6.7 0 01-1-3.7zm6.7-6.7v1c-2 0-4 1.2-5 3a5.7 5.7 0 00-.6 2.6h-1a7 7 0 013-5.7 6.6 6.6 0 013.6-1z"/>
+        <path fill="#fff" d="M356.8 152.8c3.4 0 6.2 2.7 6.2 6 0 3.6-2.8 6.3-6.2 6.3-3.4 0-6-2.6-6-6a6 6 0 016-6.2z"/>
+        <path fill="#21231e" d="M363.5 159h-1c0-2.2-1.3-4.2-3-5a5.6 5.6 0 00-2.7-.7v-1a7 7 0 015.7 3 6.7 6.7 0 011 3.6zm-6.7 6.6v-1a5.7 5.7 0 005.7-5.7h1a7 7 0 01-3 5.6 6.6 6.6 0 01-3.7 1zm-6.6-6.7h1c0 2 1.2 4 3 5a5.6 5.6 0 002.6.6v1a7 7 0 01-5.6-3 6.7 6.7 0 01-1-3.7zm6.6-6.8v1c-2 0-4 1.3-5 3.2a5.7 5.7 0 00-.6 2.5h-1c0-2.3 1.2-4.6 3-5.8a6.6 6.6 0 013.6-1z"/>
+        <path fill="#fff" d="M368.8 147c3.4 0 6 3 6 6.3 0 3.4-2.6 6.2-6 6.2s-6-2.8-6-6.2a6 6 0 016-6.2z"/>
+        <path fill="#21231e" d="M375.4 153.3h-1c0-2-1.2-4.2-3-5a5.6 5.6 0 00-2.6-.7v-1a7 7 0 015.6 3 6.7 6.7 0 011 3.7zm-6.6 6.7v-1c2 0 4-1.3 5-3a5.7 5.7 0 00.6-2.7h1a7 7 0 01-3 5.7 6.6 6.6 0 01-3.6 1zm-6.7-6.7h1c0 2 1.4 4 3.2 5a5.6 5.6 0 002.6.7v1a6.9 6.9 0 01-5.7-3.2 6.7 6.7 0 01-1-3.5zm6.8-6.7v1c-2 0-4 1.2-5 3a5.7 5.7 0 00-.6 2.7h-1c0-2.3 1-4.5 3-5.7a6.6 6.6 0 013.6-1z"/>
+        <path fill="#fff" d="M338.2 169.5a6 6 0 016 6.2c0 3.4-2.6 6.2-6 6.2s-6.2-3-6.2-6.3 2.8-6.2 6.2-6.2z"/>
+        <path fill="#21231e" d="M344.8 175.7h-1c0-2-1.3-4.2-3.2-5a5.6 5.6 0 00-2.4-.7v-1a7 7 0 015.6 3 6.7 6.7 0 011 3.7zm-6.6 6.7v-1c2 0 4-1.3 5-3a5.7 5.7 0 00.6-2.7h1c0 2.3-1.2 4.5-3.2 5.7a6.6 6.6 0 01-3.4 1zm-6.7-6.7h1c0 2 1.2 4 3 5a5.6 5.6 0 002.7.7v1a6.9 6.9 0 01-5.7-3.2 6.7 6.7 0 01-1-3.5zm6.7-6.7v1c-2 0-4 1.2-5 3a5.7 5.7 0 00-.7 2.7h-1c0-2.3 1.2-4.5 3.2-5.7a6.6 6.6 0 013.5-1z"/>
+        <path fill="#edb92e" d="M408.8 279l22-12.8 23.4 10-22 13z"/>
+        <path fill="#21231e" d="M431 266.7l-22 12.8-.4-1 22-12.7h.5v1zm-.4-1h.5-.4zm23.5 11l-23.3-10 .4-1 23.4 10v1h-.3zm.4-1l1 .5-1 .5v-1zm-22.4 13l22-13 .5 1-22 12.8h-.5v-.8zm.5.8l-.2.2h-.3l.5-.2zm-23.4-11l23.4 10-.4 1-23.3-10v-1h.4zm-.3 1l-1-.4 1-.4v1z"/>
+        <path fill="#c6363c" d="M431 270.6c5.8-.3 10.5 2.5 10.8 6.3.2 3.7-4.2 7-9.8 7.4-5.7.3-10.4-2.5-10.7-6.3-.2-3.6 4.2-7 9.8-7.4z"/>
+        <path fill="#21231e" d="M442.3 277h-1v-.7l-.2-.3v-.6l-.3-.3v-.2l-.3-.2-.2-.3-.2-.3-.3-.2-.3-.3-.2-.2-.3-.2h-.5l-.3-.3-.3-.2-.5-.2-.4-.2h-.3l-.4-.2h-.4l-.5-.3h-.9l-.5-.2h-.8l-.5-.2h-1l-.5.2v-1h3.6l.4.2.5.2h.5l.4.2.5.2.5.2.4.2.3.2.4.2.4.2.4.2.4.3.3.3.4.3.3.3.3.3.2.4.2.3.2.3.2.4v.3l.3.4.2.4v.8zm-10.3 8v-1l.4-.2h.9l.5-.2h.4l.4-.2h.5l.4-.3h.5l.4-.2.4-.2.4-.2.3-.2.4-.2.4-.3.4-.2.3-.2.3-.3.3-.2.3-.3v-.3l.3-.3.2-.4.2-.2v-.3l.2-.2v-.6l.2-.3v-1.1l1-.2v1.6l-.2.4v.3l-.3.5v.3l-.3.4-.3.3v.3l-.4.4-.3.3-.3.3-.3.2-.3.3-.4.3-.4.2-.4.3-.4.3-.4.2-.4.2-.5.2h-.4l-.4.2-.5.2h-.4l-.5.2h-.4l-.5.2h-1zm-11.2-6.8h1v.5l.2.3v.3l.2.3.2.3v.2l.3.3.2.2v.3l.4.2.2.3.3.2.2.2.3.2.4.2.2.2h.4l.4.3h.4l.4.2.4.2h.4l.5.2h1l.4.2h2.3v1H428l-.5-.2h-.4l-.5-.3h-.6l-.4-.3h-.4l-.5-.3-.3-.2-.3-.3-.4-.2-.4-.2-.3-.3-.3-.2-.3-.3-.3-.3-.3-.3v-.3l-.3-.3-.2-.3-.2-.4-.2-.3v-1l-.2-.4zm10.3-8l.2 1h-1.5l-.5.2h-.5l-.5.2-.4.2h-.5l-.4.3-.5.2-.4.2-.3.2-.4.2-.3.2-.3.3-.4.2-.3.3-.3.2-.2.3-.3.2-.2.3-.2.3-.2.4-.2.3v.3l-.3.3v.8l-.2.3v.6l-1 .2V277l.2-.4v-.3l.2-.4v-.5l.3-.3.2-.4.3-.3.2-.3.3-.3.2-.4.4-.3.4-.3.3-.3.4-.3.5-.2.3-.3.5-.3.4-.2.4-.2.6-.2h.4l.5-.2h.5l.5-.3h.5l.5-.2h1.1l.5-.2z"/>
+        <path fill="#edb92e" d="M382.4 270l23.8 9-19.7 13c-5-1.6-9-19-4-22z"/>
+        <path fill="#21231e" d="M406 279.4l-23.8-9 .4-1 23.7 9v1h-.3zm.3-1l1 .4-1 .5v-1zm-20 13.3l19.6-13.2.4.8-19.6 13.3h-.4v-1zm.5 1h-.4.4zm-4.2-23.3l-.4 1h.5l-.4.2-.4.3-.4.4-.2.5-.2.4-.2.7-.2.8v1.5l-.2.8v2.8l.3.8v1l.2.8.2 1 .2 1 .3.7v1l.5 1 .3.7.3.7.5.8.4.6.3.6.4.6.4.5.5.4.4.2.3.3.4.2-.3 1-.6-.3-.5-.3-.5-.3-.5-.5-.4-.6-.6-.6-.4-.7-.4-.7-.4-.7-.4-1-.3-.8-.3-1-.3-.8-.4-1-.2-.8-.2-1-.2-1v-.8l-.3-1v-5.2l.3-.8.2-.7.3-.6.3-.6.4-.5.4-.5.5-.4h.6zm-.5 0h.6-.5zm.4.4l.2-.4-.2.5zm-.3-.4h.6-.5z"/>
+        <path fill="#0c4076" d="M382.8 274.3c5.7-.6 10.5 2 11 5.8.3 3.8-4 7.4-9.6 8-3.6.3-6-3-6.3-6.3-.5-3.4 1-7 4.8-7.4z"/>
+        <path fill="#21231e" d="M394.2 280h-1v-.5l-.2-.3v-.3l-.2-.4-.2-.3-.2-.2-.2-.2-.2-.3-.2-.2-.3-.3-.2-.2-.3-.2-.3-.2-.4-.2-.3-.2-.4-.2-.3-.2h-.4l-.5-.3h-.4l-.4-.2h-.8l-.5-.2h-3.6l-.2-1h3.8l.4.2h.5l.4.2.4.2h.4l.5.3.4.2h.5l.4.3.2.2.4.3.3.2.2.3.3.3.3.3.2.2.3.3.2.3.2.3v.5l.3.4v.2l.2.4v.4zm-10 8.4v-1h1l.5-.2h.4l.6-.2.5-.2h.5l.4-.3.4-.2h.4l.4-.3.3-.3.4-.2.2-.2.4-.3.3-.2.2-.3.3-.2.2-.3.3-.3.2-.3.2-.2.2-.3v-.4l.3-.3v-.8l.2-.4v-1h1v1.6l-.2.3v.3l-.2.4-.2.3-.2.4-.2.3-.2.4-.3.4-.2.3-.3.3-.3.3-.5.3-.3.3h-.4l-.4.4-.4.2-.4.3h-.4l-.4.3-.5.2h-.5l-.4.3-.5.2h-.6l-.5.2h-.7l-.5.2h-.5zm-6.8-6.7h1v.7l.2.3v.3l.2.4v.3l.2.2v.2l.2.3.2.2v.3l.3.2.2.3v.2l.2.2h.2l.2.3h.2l.2.3.2.2h.3l.2.2h.2l.2.2h.2l.3.2h1.4v1h-2.1l-.3-.2h-.4l-.3-.3-.3-.2-.3-.2-.3-.2-.2-.2-.3-.2-.3-.2-.2-.2-.3-.3-.2-.2v-.2l-.3-.3-.2-.3v-.2l-.3-.4v-.3l-.3-.3-.2-.3v-.3l-.2-.3v-.6l-.2-.3v-.3zm5.4-8v1h-.2l-.4.2h-.8l-.3.3-.3.2-.3.2-.2.2h-.2l-.2.2v.2l-.3.2v.3h-.3v.3l-.2.3-.2.2v.7l-.2.3v.4l-.2.3v2.2h-1V279l.2-.3v-.3l.2-.2v-.3l.2-.3.2-.3v-.4l.3-.3.2-.3.2-.2v-.3l.3-.2.3-.2h.2l.3-.3.4-.2.3-.2h.3l.3-.2h.7l.4-.2h.4z"/>
+        <path fill="#fff" d="M457.5 280.4c1.7 0 3.2 1.5 3.2 3.2 0 1.8-1.5 3.3-3.2 3.3-1.8 0-3.2-1.6-3.2-3.4 0-1.7 1.4-3.2 3.2-3.2z"/>
+        <path fill="#21231e" d="M461.2 283.6h-1v-.6l-.2-.2v-.2l-.2-.3v-.2h-.2v-.2h-.2v-.2h-.2l-.2-.2-.3-.2h-.2l-.2-.2h-.7v-1h1l.3.2.2.2h.2l.3.2v.2h.2v.2h.2v.3h.2v.2l.2.2v.2h.2v.2l.2.3v.5l.2.2v.2zm-3.7 3.8v-1h.4l.3-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2.2-.2v-.2l.2-.2v-1h1.2v.8l-.2.2v.3l-.2.2v.2l-.2.2-.2.3h-.2v.3h-.3l-.2.2-.3.2-.3.2h-.6v.2h-.6v.2h-.3zm-3.7-3.8h1v1h.2v.2l.2.2v.2l.2.2h.2v.2h.2v.2h.2l.2.2h.2v.2h1v1.2h-.7l-.2-.2h-.5v-.2h-.3l-.2-.2-.3-.2-.2-.2h-.2v-.3h-.2l-.2-.3-.2-.3v-.2l-.2-.3v-.3l-.2-.3v-.8zm3.7-3.7v1h-.9l-.2.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2l-.2.3v.5h-.2v.8h-1v-1.2l.2-.2v-.3h.2v-.3l.2-.2.2-.2v-.2h.4v-.2l.2-.2h.2v-.2h.5v-.2h.4v-.2h1z"/>
+        <path fill="#fff" d="M408.7 283c1.8 0 3.2 1.6 3.2 3.4 0 1.7-1.5 3.2-3.3 3.2a3.2 3.2 0 01-3.2-3.2c0-1.8 1.4-3.3 3.2-3.3z"/>
+        <path fill="#21231e" d="M412.4 286.4h-1v-.9l-.2-.2v-.2l-.2-.2v-.2l-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.4l-.2-.2h-.8v-1.2h.7v.2h.7v.2h.3v.2h.3v.2h.3l.2.2.2.3h.2l.2.3.2.3v.3h.2v.6l.2.2v.9zm-3.7 3.7v-1h1v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.3h.2v-.5l.2-.2v-.4h1v.8l-.2.2v.3l-.2.2v.3h-.2v.3h-.2l-.2.3h-.2v.2h-.3l-.2.2h-.2v.2h-.3v.2h-.5l-.2.2h-.8zm-3.7-3.6h1v.8h.2v.5h.2v.2h.2v.2h.2v.2h.2l.2.2h.2v.2h.5v.2h.7v1h-1.2v-.2h-.3v-.2h-.2l-.2-.2-.2-.2h-.2v-.2h-.2v-.3h-.3v-.3h-.2v-.3l-.2-.2v-.2l-.2-.3v-.8zm3.7-3.8v1h-.7v.2h-.5v.2h-.2l-.2.2v.2h-.2l-.2.2v.2l-.2.2v.2h-.2v.7l-.2.3v.4h-1v-1l.2-.2v-.3l.2-.3.2-.3v-.3h.3v-.3h.2l.2-.2.2-.2h.2v-.2h.6l.3-.2h.5l.3-.2h.2z"/>
+        <path fill="#fff" d="M407 268.3c1.8 0 3.2 1.4 3.2 3.2 0 1.8-1.4 3.2-3.2 3.2a3.2 3.2 0 01-3.2-3.2c0-1.8 1.4-3.2 3.2-3.2z"/>
+        <path fill="#21231e" d="M410.7 271.5h-1v-.7l-.2-.2v-.3l-.2-.2h-.2v-.4h-.2v-.2h-.2l-.2-.2h-.2l-.2-.2h-.5v-.2h-.4v-1h.8v.2h.3l.3.2h.2l.3.2h.2v.2l.3.2.2.2.3.3.2.3v.3h.2v.4l.2.2v1zm-3.7 3.7v-1h1v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2.2-.2v-.4h.2v-1h1v1.2l-.2.2-.2.3v.3h-.2l-.2.3h-.2v.3h-.3v.2h-.2v.2h-.2l-.2.2h-.5l-.3.2h-.7zm-3.7-3.7h1v.8l.2.2v.4h.2v.2l.2.2v.2h.2v.2h.2v.2h.2l.2.2h.5l.2.2h.5v1h-.9l-.3-.2h-.2l-.3-.2-.3-.2h-.2l-.2-.2-.2-.3h-.3v-.3l-.2-.3v-.3h-.2v-.4l-.2-.2v-.8zm3.7-3.7v1h-.8v.2h-.5l-.2.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2l-.2.2v.3l-.2.2v.7h-1v-1.2h.2v-.6h.2v-.3h.2v-.3h.3l.2-.2v-.2h.3v-.2h.3l.2-.2h.4v-.2h.5l.2-.2h.7z"/>
+        <path fill="#fff" d="M457.3 266.2c1.8 0 3.2 1.4 3.2 3.2 0 1.8-1.4 3.2-3.2 3.2a3.2 3.2 0 01-3.2-3.2c0-1.8 1.6-3.2 3.3-3.2z"/>
+        <path fill="#21231e" d="M461 269.4h-1v-.8h-.2v-.3l-.2-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2h-.2l-.2-.2h-.2l-.3-.2h-.7v-1h1.1l.2.2h.3l.3.2.3.2.2.3h.2v.2h.2v.2h.2v.3h.2v.3l.2.2v.5l.2.2v.7zm-3.7 3.7v-1h1.2v-.2h.2l.2-.2.2-.2v-.2h.2v-.2h.2v-.2l.2-.2v-.5h.2v-.8h1v1.1l-.2.2v.2l-.2.2-.2.3-.2.3-.2.2-.2.2-.2.2h-.2v.2h-.3v.2h-.4l-.2.2h-1zm-3.7-3.6h1v.5l.2.2v.3l.2.2v.2h.2l.2.2v.2h.2v.2h.2l.3.2h.2l.2.2h.7v1h-1l-.3-.2h-.3l-.3-.2-.3-.2v-.2l-.3-.2-.2-.2v-.2h-.2v-.3h-.2v-.6l-.2-.2v-.7l-.2-.2v-.2zm3.7-3.7v1h-.7v.2h-.4l-.2.2h-.2v.2h-.2v.2l-.2.2-.2.2v.4h-.2v.8h-1.2v-.5l.2-.3v-.4l.2-.2v-.2h.2v-.3h.2v-.3h.2v-.2h.3v-.3l.3-.2.3-.2h.3l.2-.2h1z"/>
+        <path fill="#edb92e" d="M371 237.4c2.3-.8 6 4.6 7 4.5 1.2-3-1.2-10.5-5.5-16.3-3-1-3.2-3-3.8-7.3-.2-1.3-2.7-.4-2.7 2 0 2.3-.3 3.6.3 5.6.2.8 0 1.6-.8 2.3 4.5 1.8 5.6 4 5.4 9z"/>
+        <path fill="#21231e" d="M377.6 241.8l1 .3-.5.4h-.4l-.3-.2-.2-.2-.3-.3-.2-.2-.2-.2-.2-.2-.3-.3-.3-.2-.2-.2-.2-.3-.3-.2-.2-.2-.3-.2-.2-.3h-.3l-.3-.3h-.2l-.3-.3-.3-.2h-.2l-.3-.2h-.4l-.2-.2h-.4l-.4-1h1.3l.3.2h.3l.3.2.2.2h.3l.3.3.2.2h.3l.3.3.3.3v.2l.4.2.2.3.3.2v.2l.4.3.2.2.2.2.2.2.2.2.2.2h.2v.2h.3v.2l-.4.3zm1 .3l-.2.4h-.3l.5-.3zm-6.3-15.8l.4-1 .2.2.3.5.4.5.4.6.4.7.4.5.3.6.5.6.3.6.3.6.4.6.3.6.2.6.2.6.2.5.2.6.2.7.2.5v.6l.3.5v.6l.2.4v.5l.2.4v3.3l-.2.3-1-.2v-.3l.2-.3v-3.6l-.3-.5v-.4l-.2-.5-.2-.5-.2-.5v-.5l-.4-.6-.2-.7-.2-.5-.3-.6-.2-.6-.3-.5-.3-.5-.4-.6-.3-.7-.4-.5-.4-.6-.4-.6-.3-.5-.5-.5-.4-.5.3.2zm.4-1l.2.2-.3-.2zm-4.5-6.7h1v.7l.2.3v1l.2.3v.5l.2.3v.5l.2.2v.4h.2v.3l.2.2v.2h.2v.3h.2l.2.2v.2h.2l.2.2h.2l.2.2h.2l.2.2h.2l.3.2-.4 1h-.2l-.2-.2-.3-.2h-.2l-.2-.2h-.2l-.2-.3-.2-.2h-.2v-.2l-.3-.2-.2-.2-.2-.2v-.2l-.2-.2v-.2l-.2-.3v-.2l-.2-.2v-.3l-.2-.2v-.9l-.2-.3v-.6l-.2-.3V219l-.2-.5zm-1.7 1.8h-1v-1l.2-.2.2-.2v-.4h.2l.2-.3h.2l.2-.2.3-.2h.2l.2-.2h1.2v.2h.2v.3l.2.2v.2h-1.6v.2h-.2v.2h-.2v.2h-.2v.3l-.2.2v.8zm.3 5.6l-1 .2v-.6l-.2-.2V224h-.2v-3.6h1v4.2l.2.2v.7l.2.2zm-1 2l-.5.8v-1l.2-.2v-.2h.2v-.4h.2v-.4l-.2-.2v-.2l1-.3v1.8h-.2v.4h-.2v.2h-.2v.2l-.2.2h-.2v-.7zm-.5.8l-.8-.3.7-.6v.8zm5 8.6h1-1v-.5l.2-.5v-2l-.2-.3v-.7l-.2-.3v-.6l-.2-.3v-.2l-.2-.3-.2-.3v-.2l-.3-.3v-.2l-.3-.2-.2-.2-.3-.2-.2-.2-.3-.2h-.3l-.3-.3-.2-.2-.3-.2-.4-.2h-.3l-.4-.2.4-1 .4.2.5.2.4.2.3.2.3.2.4.2.3.2.3.2.3.2v.2l.4.3.2.3.3.3v.2l.3.3v.4l.3.3v.3l.3.3v.7l.2.3v.7l.2.4v2.9h-1zm1 0h-1l.5-.5.6.4zm-1 0v-.4h.5l-.4.4z"/>
+        <path fill="#edb92e" d="M368.8 218.5c-.4 1-.6 1.8-.7 3.4 0 1 .5 2 1.2 3 .8 1 1.8 2 3 2.6.8.5 1.6 1.7 2.3 3 .7 1.4 1.2 3 1.2 4 0 3.5.8 6.7 2.4 7.3 1.2.3 1.6.2 2.4 0-.2-.6 0-1.5-.7-2.4a8 8 0 01-1.4-3.7c0-1-.5-1.6-.2-3.3.4-1.2 1-1.6 1-2.7-.3-2-2-6-4.3-6s-3.4-.3-4.6-3.4c-.3-1-1-1.6-1.2-2z"/>
+        <path fill="#21231e" d="M368.6 222l-1-.2v-1.2l.2-.2v-1h.2v-.7h.2v-.4l1 .3v.4h-.2v1l-.2.2v1.5l-.2.3zm1 2.8l-.8.6v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.4h-.2v-.5l-.2-.2v-.7l-.2-.2v-.7h1v1.1h.2v.7h.2v.4h.2v.4h.2v.2h.2v.2zm3 2.4l-.6 1v-.2h-.4v-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.3v-.2h-.2l-.2-.2v-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2-.2-.2.8-.6.2.2.2.2v.2h.2l.2.2v.2h.2l.2.2.2.2h.2v.2h.2v.2h.3l.2.2.2.2h.2v.2zm2.4 3.2l-1 .4v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2h-.2l-.2-.2h-.2l.5-1h.2v.2h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2h.2v.2l.2.2v.2l.2.2v.2h.2v.3h.2v.3h.2zm1.2 4.2h-1v-.8l-.2-.2v-.8h-.2v-.5h-.2v-.4h-.2v-.5h-.2v-.2l-.2-.2 1-.4v.4h.2v.4h.2v.5l.2.2v.3h.2v.6h.2v1h.2v.7zm-1 0zm3 6.8l-.3 1h-.3l-.2-.2-.3-.3v-.2l-.3-.2h-.2l-.2-.3v-.2h-.2v-.3l-.2-.2v-.3l-.2-.2v-.3l-.2-.2v-.5l-.2-.3v-.8l-.2-.3V236l-.2-.3v-1.5h1v2.1l.2.3v1.4l.2.2v.8l.2.2v.2l.2.2v.4l.2.2v.2l.2.2.2.2v.2h.2v.2h.2l.2.2zm1.7.8l1-.3-.5.5h-.4v.2h-1.4l-.2-.2h-.4l.3-1h.7v.2h1.2v-.2l-.3.7zm1-.3v.4h-.5l.4-.5zm-1.7-2l.8-.7h.2v.4h.2v.4h.2v.8l.2.2v1l-1 .4V241l-.2-.2v-.8h-.2v-.2zm-1.5-4h1v.8h.2v.8l.2.2v.2l.2.2v.2h.2v.5h.2v.2h.2v.2l-.7.7v-.2l-.2-.2v-.4h-.2v-.5h-.2v-.2l-.2-.3v-.2l-.2-.2v-.2l-.2-.3v-.4l-.2-.2v-.5zm1 0zm-1.2-3.4l1 .2v3l.2.2-1 .2v-.8l-.2-.2v-2.6zm1-2.5h1v.7h-.2v.6l-.2.2v.2l-.2.2v.2h-.2v.6h-.2v.2l-1-.2v-.4h.2v-.4l.2-.2v-.2l.2-.2v-.2l.2-.2v-.9zm-4-5.5v-1h1.1l.3.2h.2l.2.2h.3l.2.2.2.2v.2l.3.2v.2l.3.2.2.3v.2l.3.3.2.2.2.3v.2l.2.3v.2l.2.3v.3l.2.2v.3l.2.2v.5l.2.3v.8h-1v-1l-.2-.2v-.4l-.2-.3-.2-.4v-.2l-.2-.2v-.3l-.3-.3v-.2l-.2-.2v-.3l-.2-.2-.3-.3-.2-.2-.3-.3-.3-.2-.3-.2h-.8zm-5-3.7l1-.4v.3l.2.3v.2l.2.2v.2l.2.2v.2l.2.2.2.2v.2h.2v.2h.2v.2h.4v.2h.7v.2h1.7v1H373l-.3-.2h-.4v-.2h-.3v-.2h-.3v-.3h-.3v-.2l-.2-.2-.2-.3-.2-.2v-.2l-.2-.2-.2-.4-.2-.2v-.3l-.2-.2zm-.4-2l-1-.5h1.2v.4h.2v.2h.2v.2h.2v.4h.2v.2l.2.2v.2l.2.2-1 .4v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2h-.2v-.2h.8zm-1-.5l.5-1 .5 1h-1zm.6.2l.4.2-.4-.2zm-.5-.2l.4-1 .5 1h-1z"/>
+        <path fill="#edb92e" d="M360 227l2-1a6 6 0 014-.2c5.5 1.7 8 11.6 1.8 14-1.2.2-2.3-1-3.4-3.3a20.5 20.5 0 00-4-6.8c-1-1-1-2-.4-2.6z"/>
+        <path fill="#21231e" d="M362 225.5l.3 1h-.4v.2h-.4v.2h-.8v.2h-.2l-.2.2-.7-.7.2-.2v-.2h.4v-.2h.8v-.2h.4v-.2h.4zm4-.2l-.2 1h-.5v-.2h-2.1v.2h-.7l-.2.2-.5-1h.4l.3-.2h.8v-.2h1.6l.2.2h.4zm2 15l-.2-1h-.2l.5-.2h.6l.4-.4.4-.3.3-.4.3-.5.2-.4.2-.3.2-.5v-.5l.2-.5V232l-.3-.4-.2-.5-.2-.5v-.5l-.4-.4-.2-.5-.4-.3-.3-.5-.4-.3-.3-.5-.4-.3-.5-.3-.3-.4-.5-.2h-.4l.2-1h.6l.5.3.7.3.4.4.6.3.5.4.5.6.3.4.4.5.3.5.3.6.3.5.3.7.2.6v.6l.3.5v3.4l-.2.5-.2.6-.3.6-.2.5-.3.5-.4.5-.4.4-.4.3-.6.3-.6.3zm0 0zm-4-3.6l1-.4v.4l.2.2.2.3.2.3v.2h.2v.5h.2v.2l.2.2.2.2h.2v.2h.2l.2.2h.8v1.2h-.8v-.2h-.5l-.2-.2-.2-.2-.2-.2-.2-.2v-.2h-.2l-.2-.2v-.2h-.2v-.3l-.2-.2v-.2h-.2v-.2l-.2-.2v-.2l-.2-.3-.3-.3zm0 0zm-4-6.6l.7-.6.2.2v.2h.2l.2.3v.3h.2l.2.3v.2l.2.2h.2v.3l.3.2v.2l.2.2.2.2v.4l.2.2.2.3v.3l.2.2.2.3v.3l.2.3v.3l.3.3.2.4v.3l.3.3v.3l-1 .4v-.6l-.2-.2v-.3l-.3-.2v-.3l-.2-.2v-.5l-.3-.3v-.2l-.2-.2v-.3l-.3-.2-.2-.3v-.2l-.3-.2v-.2h-.2v-.3h-.3v-.3l-.2-.2-.3-.3v-.2l-.2-.2h-.2v-.2l-.2-.2zm0 0zm0-3.4v1l.3-.2v.2h-.2v.8h.2v.4l.2.2.2.2v.2l-.7.7h-.2v-.2l-.2-.2-.2-.2v-.3h-.2V227h.2v-.2h.2l.4-.2zm-.4 0h.4-.4zm.4 1v-1l.3 1h-.3zm.3 0h-.2.3z"/>
+        <path fill="#edb92e" d="M362.8 227.7c5.4-2 9.4 8.3 4.3 10.2-2.6 1-2.8-2.4-3.4-4.3-.7-2.5-6-4-.8-6z"/>
+        <path fill="#21231e" d="M367.3 238.4l-.4-1h.3l.3-.3.3-.2.2-.3.2-.3.2-.3v-.5l.2-.4v-2.7l-.2-.4-.2-.5-.2-.4-.2-.4-.3-.4-.3-.4-.2-.3-.4-.4-.3-.2-.3-.2-.4-.2-.4-.2h-.4l-.3-.2h-1.3l-.4.2-.4-1h.6l.5-.2h1.6l.5.3.5.2.4.2.4.4.5.4.4.4.3.4.3.5.2.4.3.6.3.5.2.6.2.6v.5l.2.5v1.6l-.2.5v.5l-.3.5-.2.4-.3.5-.4.3-.4.4-.4.2-.5.2zM363 234l1-.4.2.2v.6l.2.2v.8l.2.2v.4l.2.2v.2l.2.3.2.3v.2h.2v.2h.2l.2.2h1.2l.3.8h-.3l-.3.2h-1.2l-.2-.2h-.2v-.2l-.3-.2-.3-.3v-.2l-.2-.2v-.2h-.2v-.3l-.2-.2v-.4h-.2v-.8l-.2-.2v-.8l-.2-.2v-.2zm-.4-6.7l.4 1h-.5l-.3.3h-.4l-.2.3h-.2l-.2.2v.2h-.2v.4h.2v.3l.2.2v.2h.3v.3l.3.2h.2l.2.2.2.2.2.2.2.2.2.3.2.3.2.2v.3l.3.2v.6l-1 .3v-.7l-.2-.2h-.2v-.3l-.3-.2h-.2v-.3l-.3-.2-.2-.2-.2-.2-.2-.2v-.2l-.2-.2h-.2v-.3l-.3-.3v-.2l-.2-.2v-.8l.2-.3v-.3l.3-.2.2-.2.3-.3.3-.2h.4l.4-.3.6-.2z"/>
+        <path fill="#0c4076" d="M363.4 229.3c2.6-1 6.2 5 3 6.5-2.3 1-4-.3-4.8-2-.7-2 0-3.8 1.7-4.5z"/>
+        <path fill="#21231e" d="M366.5 236.3l-.4-1h.3l.2-.2h.2v-.2l.2-.2v-2l-.2-.3v-.3h-.2v-.4l-.3-.3-.2-.2-.3-.4-.2-.2-.2-.2h-.2v-.2l-.3-.2h-1.1l-.3-1h1.5l.4.3.3.2.2.3.2.2.3.2.2.2.2.3v.3l.3.3.2.4.2.3v.4l.2.4v2.6l-.2.3-.2.4-.2.3-.2.2h-.4l-.3.3zm-5.4-2.5l1-.3.2.3.2.3v.2l.2.3.2.2.2.2h.3v.2h.2l.3.2h.4v.2h1.3l.3-.2.5 1h-.7l-.2.2h-1.9l-.2-.2h-.2v-.2h-.3l-.2-.2-.3-.2-.3-.3-.3-.3h-.2v-.3l-.2-.3-.2-.3v-.2l-.2-.2v-.2zm2.2-5l.3 1h-.3l-.2.2-.2.2-.2.2-.2.2-.2.2v.2h-.2v.7l-.2.2v1.1l.2.2v.3l-1 .3v-.7l-.2-.3v-1.5l.2-.2v-.3l.2-.2.2-.3.2-.3v-.2l.3-.2v-.2h.3l.2-.2.3-.2h.2l.2-.2zm.2.5l-.2-.5.2.5z"/>
+        <path fill="#fff" d="M400 179.7c3.6 0 6.4 2.8 6.4 6.4 0 3.6-2.8 6.5-6.3 6.5s-6.3-3-6.3-6.4 3-6.3 6.4-6.3z"/>
+        <path fill="#21231e" d="M407 186h-1c0-2-1.4-4.3-3.3-5.2a5.8 5.8 0 00-2.6-.6v-1c2.4 0 4.7 1.2 6 3.2a7 7 0 011 3.7zm-7 7v-1a6 6 0 005.3-3.3 6 6 0 00.6-2.6h1c0 2.4-1.3 4.7-3.3 6a6.8 6.8 0 01-3.6 1zm-6.8-7h1a6 6 0 003.3 5.4 5.8 5.8 0 002.6.6v1a6.8 6.8 0 01-5.7-3.3 7 7 0 01-1-3.6zm7-7v1.2a5.9 5.9 0 00-5.3 3.2 6 6 0 00-.8 2.7h-1a7 7 0 013.3-5.8 6.8 6.8 0 013.6-1z"/>
+        <path fill="#fff" d="M395.4 169c3.5 0 6.4 3 6.4 6.4 0 3.6-3 6.4-6.4 6.4s-6.3-2.8-6.3-6.4c0-3.5 3-6.4 6.4-6.4z"/>
+        <path fill="#21231e" d="M402.3 175.4h-1c0-2.2-1.3-4.3-3.2-5.3a5.8 5.8 0 00-2.6-.5v-1c2.4 0 4.6 1.3 6 3.2a7 7 0 011 3.7zm-7 7v-1c2.3 0 4.4-1.4 5.4-3.3a6 6 0 00.6-2.6h1c0 2.4-1.2 4.7-3.2 6a6.8 6.8 0 01-3.6 1zm-6.7-7h1a6 6 0 003.2 5.3c.8.4 1.7.6 2.6.6v1a6.8 6.8 0 01-5.8-3.2 7 7 0 01-1-3.6zm6.8-7v1c-2 0-4.2 1.4-5.2 3.3a6 6 0 00-.6 2.7h-1c0-2.3 1.2-4.6 3.2-6a7 7 0 013.6-1z"/>
+        <path fill="#fff" d="M410.7 131.5c3.4 0 6 2.7 6 6s-2.6 6.3-6 6.3-6.2-2.7-6.2-6.2a6 6 0 016.2-6z"/>
+        <path fill="#21231e" d="M417.3 137.7h-1c0-2.2-1.2-4.2-3-5a5.6 5.6 0 00-2.6-.7v-1a7 7 0 015.6 3 6.7 6.7 0 011 3.7zm-6.6 6.6v-1c2 0 4-1.2 5-3 .4-1 .6-1.8.6-2.6h1c0 2.2-1.2 4.5-3 5.6a6.6 6.6 0 01-3.6 1zm-6.7-6.7h1c0 2.2 1.3 4.2 3.2 5a5.6 5.6 0 002.5.7v1a6.6 6.6 0 01-5.6-3 6.7 6.7 0 01-1-3.6zm6.7-6.6v1c-2 0-4 1.2-5 3a5.7 5.7 0 00-.7 2.6h-1a7 7 0 013-5.6 6.6 6.6 0 013.7-1z"/>
+        <path fill="#fff" d="M400.4 136.2c3.5 0 6.3 3 6.3 6.4 0 3.5-2.8 6.4-6.3 6.4s-6.4-3-6.4-6.4c0-3.5 2.8-6.4 6.4-6.4z"/>
+        <path fill="#21231e" d="M407.2 142.6h-1a6 6 0 00-3.3-5.3 5.8 5.8 0 00-2.6-.6v-1c2.3 0 4.6 1.2 5.8 3.2a7 7 0 011 3.6zm-6.8 7v-1c2 0 4.2-1.4 5.2-3.3a6 6 0 00.6-2.7h1c0 2.3-1.2 4.7-3.2 6a6.8 6.8 0 01-3.6 1zm-7-7h1c0 2.2 1.4 4.3 3.3 5.3a5.8 5.8 0 002.7.5v1a7.2 7.2 0 01-6-3.2 7 7 0 01-1-3.7zm7-7v1a6.2 6.2 0 00-5.3 3.3 6 6 0 00-.5 2.6h-1c0-2.4 1.2-4.7 3.2-6a6.8 6.8 0 013.7-1z"/>
+        <path fill="#fff" d="M392.8 145.3c3.5 0 6.3 2.8 6.3 6.4 0 3.5-2.7 6.4-6.2 6.4s-6.4-2.8-6.4-6.3c0-3.6 3-6.4 6.4-6.4z"/>
+        <path fill="#21231e" d="M399.6 151.7h-1a6 6 0 00-3.2-5.3 5.8 5.8 0 00-2.6-.6v-1c2.3 0 4.6 1.2 5.8 3.2a7 7 0 011 3.7zm-6.8 7v-1c2 0 4.2-1.4 5.2-3.4a6 6 0 00.6-2.6h1c0 2.3-1.2 4.6-3.2 6a6.8 6.8 0 01-3.6 1zm-7-7h1c0 2 1.4 4.3 3.3 5.2a5.8 5.8 0 002.8.6v1a7.4 7.4 0 01-6-3.3 7 7 0 01-1-3.6zm7-7v1a6 6 0 00-5.3 3.3 6 6 0 00-.6 2.7h-1c0-2.4 1-4.7 3.2-6a7 7 0 013.6-1z"/>
+        <path fill="#fff" d="M391.5 156.7c3.6 0 6.4 2.8 6.4 6.4s-3 6.5-6.5 6.5-6.3-3-6.3-6.4 2.8-6.3 6.3-6.3z"/>
+        <path fill="#21231e" d="M398.4 163h-1c0-2-1.3-4.2-3.2-5.2a5.8 5.8 0 00-2.7-.6v-1c2.4 0 4.7 1.2 6 3.2a7 7 0 011 3.7zm-7 7v-1a6 6 0 005.4-3.3 6 6 0 00.6-2.6h1c0 2.5-1.3 5-3.4 6a6.8 6.8 0 01-3.5 1zm-6.7-7h1c0 2.3 1.3 4.4 3.2 5.4.7.4 1.6.6 2.5.6v1a7 7 0 01-5.8-3.2 7 7 0 01-1-3.7zm6.8-6.8v1c-2 0-4.2 1.3-5.2 3.2a6 6 0 00-.6 2.7h-1c0-2.3 1.2-4.6 3.2-5.8a7 7 0 013.5-1z"/>
+        <path fill="#edb92e" d="M474.4 198c-2.7-5-5.6-8.2-8.6-9.6 4.2-13.2 5.2-30.2 2.7-51-.2-3.3-1-4.6-2.2-4.6-1 0-1.7 1.6-1.8 5.2.8 11.6 1.7 21.6 1.2 30.2-.5 7.6-2.3 14-4.2 21.2-.3 1 .4 1.7 3.8 3.7 2.6 1.5 4.2 3.3 4.7 5 .7-.2 1.2 0 1.5 0 2.5.8 3.6.6 3 0z"/>
+        <path fill="#21231e" d="M465.3 188.2l1 .3-.3-.6h.3l.3.2.3.2.2.2h.3l.3.3h.3l.4.4.2.2.3.2.2.3.3.3.3.3.3.3.3.2.3.3.3.3.2.3.2.5.3.3.3.4.2.3.3.4.3.3.2.4.3.4.3.5.2.5.3.4.3.4.3.5.3.5-1 .5-.3-.5-.2-.4-.3-.5-.2-.5-.3-.4-.3-.3-.2-.4-.3-.4-.3-.5-.3-.4-.2-.2-.3-.4-.4-.3-.2-.2-.3-.3v-.3l-.4-.3-.3-.4-.2-.3-.2-.2-.3-.2-.2-.2-.3-.2-.3-.2-.2-.2-.3-.2-.3-.2-.3-.2h-.3l-.3-.3-.4-.2-.3-.6zm.3.6h-.4v-.6l.4.6zm2.4-51.5h1l.2 2 .2 1.8.2 2 .2 2v1.8l.2 1.8v1.8l.2 1.8v15l-.3 1.5-.2 1.5v1.5l-.3 1.5-.2 1.5-.2 1.4-.2 1.5-.2 1.3-.3 1.4-.3 1.3-.3 1.4-.3 1.3-.4 1.3-.3 1.3-.4 1.2-1-.3.4-1.2.4-1.3.4-1.3.3-1.3.3-1.2.3-1.3.3-1.4.2-1.3.3-1.4.3-1.5.2-1.4V172l.3-1.6V169l.2-1.7v-1.6l.2-1.6v-13.6l-.2-1.8v-2l-.2-1.7-.2-2-.2-1.8-.2-2-.2-2zm0 0zm-1.7-4v-1h.6v.2h.3v.2h.2l.2.3h.2v.5h.2v.3l.2.2v.3l.2.2v.4l.2.4v.9l.2.3v.4h-1v-.9l-.2-.2v-.6l-.2-.2v-.5h-.2v-.5h-.2v-.2l-.2-.2h-.2v-.2h-.4zM465 138h-1v-1.7l.2-.3v-1l.2-.3v-.7h.2v-.3l.2-.3v-.3h.2l.2-.2.3-.2.2-.2h.5v1h-.2v.2h-.2v.2l-.2.2v.3l-.2.3v.6l-.2.2v1.6l-.2.4v.7zm-1 0zm2.2 30.2h-1V154l-.2-1v-2.8l-.2-1v-2l-.2-1v-1l-.2-1v-2l-.2-1V139l-.2-1 1-.2v1l.2 1.2v2l.2 1v2.2l.2 1v2l.2 1v2l.2 1v2.8l.2 1v12zm-4.3 21.3l-1-.3.2-.6v-.7l.3-.8.2-.6.2-.7v-.7l.2-.7.2-.6.2-.7v-.6l.3-.6v-.6l.2-.6.2-.7v-.5l.2-.6.2-.8v-.6l.2-.7.2-.7v-.7l.2-.6v-.7l.2-.6v-.7l.2-.7v-.7l.2-.6V169l.2-.8h1v1.5l-.2.7v1.5l-.2.6v.7l-.2.8v.7l-.2.6v.8l-.2.7-.2.6v.8l-.2.6-.2.7v.7l-.3.7v.6l-.3.7v.6l-.3.6-.2.6v.6l-.3.7-.2.5-.2.7v.6l-.3.7-.2.7-.2.6v.7zm3.6 3l-.5 1-.2-.2h-.3l-.3-.3-.3-.2h-.4l-.2-.3h-.2l-.3-.3h-.3v-.2l-.3-.2h-.2l-.2-.2-.2-.3h-.2v-.2h-.2l-.2-.2v-.2l-.2-.2v-1l1 .2v.5h.2v.2l.2.2h.2v.2h.2l.2.2.3.3h.2l.2.2.2.2h.2l.2.3h.3l.3.3.3.2h.3zm0 0zm4.2 5.2l.4 1-.7-.4v-.2l-.2-.2v-.3l-.2-.2v-.3l-.2-.3-.3-.3-.2-.3-.3-.2-.3-.3v-.2h-.3v-.2h-.3v-.2l-.3-.2h-.2v-.3h-.3l-.2-.2h-.3l-.2-.2-.2-.2h-.2l.6-1 .2.2h.2l.3.3.2.2.2.2h.2v.3h.4l.2.3.3.3.3.3.2.2.3.3v.3l.3.2h.2v.3l.3.2v.2h.2v.3l.2.2v.2l.2.3v.3l.2.2v.2l-.6-.3zm.4 1h-.5l-.2-.4.7.3zm1.4-1.2l-.3 1h-1l-.4-.8h.2l.2-.2h1.4zm3.3.5h-1l.7-.4.2.2v.8l-.2.2h-.2v.2h-1.8l-.2-.2h-.3l-.2-.2h-.5l.3-1h.7l.2.2h1v.2h.7v.4l.7-.4zm-1 0v-1l.7.6-.8.4zm0 0h1l-1 .3v-.3z"/>
+        <path fill="#edb92e" d="M458.4 214.6c1.6-1 2-.8 2.4-1.4.6-.8.6-2.2.4-3.5-.8-5.3 2.4-4.6 6-2.2 1.7 1 3.5 4 5 5.3s2.8 1.5 3.2 2v9.2c-.4.6-1.7.7-3.2 2-1.5 1.5-3.3 4.2-5 5.4-3.6 2.3-6.8 3-6-2.2.2-1.3.2-2.7-.4-3.5-.5-.7-.8-.4-2.4-1.4a7 7 0 01-2.3-2.2c-.4-.8 0-1.7 0-2.6 0-1-.4-1.8 0-2.6.6-.8 1.4-1.6 2.4-2.2z"/>
+        <path fill="#21231e" d="M460.4 213l.8.5-.2.2-.2.2h-.4v.2h-.4l-.2.2h-.2l-.2.2h-.2v.2h-.5v.2l-.7-1h.6v-.2h.2l.2-.2h.2l.2-.2h.4v-.2h.4v-.2h.2zm.3-3.2l1-.2v2.9l-.2.3v.2h-.2v.2l-1-.5v-.2h.2v-.4h.2v-2.6zm6.7-2.8l-.6 1-.3-.3-.3-.2-.3-.2-.4-.2h-.3l-.3-.2h-.3l-.3-.2h-.3v-.2h-.4l-.2-.2h-1.1v.2h-.2v.2l-.2.2v.6l-.2.3v2l-1 .2v-3l.2-.4v-.3l.3-.2.3-.2.2-.2h.2l.2-.2h.2l.2-.2h1.5v.2h.5l.3.2h.3l.4.3h.3l.3.2.4.2.3.2.3.2.4.2zm5 5.4l-.6.7-.3-.2-.3-.3-.3-.3-.2-.2-.2-.2-.3-.3-.2-.2v-.2h-.2v-.3l-.3-.2-.3-.3-.2-.2v-.2l-.3-.2v-.2h-.3l-.2-.3-.3-.2-.2-.2h-.2l-.2-.2v-.2h-.3v-.2h-.2l.6-1 .2.2.3.2v.2h.3v.3h.3l.2.2.2.2v.2l.3.2h.2v.3l.3.3.2.2v.2l.3.2.3.3h.2v.3l.3.2.2.2.2.2.3.3v.2h.3v.3h.3v.3h.2zm3.5 2.4h-1.2v.3h-.2l-.2-.2h-.2v-.2h-.4l-.2-.2h-.2v-.2h-.3v-.2h-.3v-.2l-.3-.2-.3-.2-.2-.3.7-.6h.2v.2h.2v.2h.2v.2h.2v.2h.3l.2.2.2.2h.2l.2.2h.2l.2.2h.2v.2h.4v.2l.2.2v.2zm-.2-.2v.2-.2zm0 4.8h-1v-4.5l1-.2v4.5zm-1 0zm0 0h1-1zm0 0zm1 5l-1-.7v.3-4.4h1v4.7zm0-.4v.2-.2zm-3.3 2.5l-.7-.8h.2v-.2l.3-.2.3-.2h.3v-.2h.3v-.2h.2l.2-.2h.2v-.2h.4v-.2h.4v-.2l1 .5-.2.2-.2.2h-.2v.2h-.4l-.2.2h-.2v.2h-.4v.2h-.3v.2h-.2l-.2.2-.2.2v.2h-.3zm-5 5.3l-.7-.8h.2v-.2l.3-.2.3-.2.2-.2.3-.3.2-.2.2-.2.2-.2v-.2h.3v-.3l.2-.3.2-.2v-.2l.3-.2.3-.2v-.2l.3-.2.2-.2v-.2h.3v-.3l.3-.2.2-.2h.2v-.3h.3v-.3l.8.8-.2.2-.2.2-.2.2v.2h-.3v.3l-.3.2-.3.2-.2.2-.2.2-.2.2v.2l-.3.2v.2l-.2.2h-.2v.3h-.3l-.2.3v.2h-.2l-.2.3-.2.2-.3.3-.3.3-.3.2zm-6.8-2.7l1 .3v2.6l.2.2v.2h.2v.2h1.7v-.2h.4l.3-.2h.3l.3-.3.3-.3h.3l.2-.3.3-.2.3-.2.6.8-.4.2-.3.3-.3.2h-.4l-.3.3-.3.2h-.3l-.2.3h-.4l-.3.2h-.4l-.3.2h-.9l-.3-.2h-.3l-.2-.3-.2-.2-.2-.2v-.3l-.2-.2v-.7l-.2-.3V229zm-.3-3l.8-.6v.2h.2v.4h.2v.6l.2.2v2.4l-1-.2v-2.5h-.2v-.4h-.2v-.2zm-2.3-1.3l.7-.8h.2l.2.2h.2l.2.2h.2l.2.2h.4v.2h.2v.2h.2l.2.2.2.2-.8.6-.2-.2h-.2v-.2h-.4l-.2-.2h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.3zm.7-.8l.5.2-.5-.3zm-3-1.7l.8-.5.2.2v.2h.2v.4h.2v.2h.2v.2h.2v.2h.2l.2.2.2.2h.2v.2h.2l-.5 1v-.2h-.2l-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2zm-.3-3h1v2.4l-.7.5v-.2h-.2v-.4l-.2-.2v-2.1zm.3-2.8l.8.6v.4l-.2.2v1.8h-1V217h.2v-.4h.2zm2.4-2.4l.7 1h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2-.2.2-.2.2v.2h-.2v.2h-.2v.2l-1-.5h.2v-.2l.2-.2.2-.2v-.2h.2l.2-.2v-.2h.2v-.2h.2l.2-.2h.2v-.2l.2-.2h.2v-.2h.2zm.7 1l.5-.3-.5.3z"/>
+        <path fill="#21231e" d="M475.5 220.2v1c-4 .4-7 2-9.7 4.3 1.8-2.7 5.7-4.7 9.7-5.3zm0-1.6v-.8c-4-.5-7-2-9.7-4.4 1.8 2.7 5.7 4.6 9.7 5.2z"/>
+        <path fill="#edb92e" d="M461.2 207.3c1 .4 2.3 1 3.4 2 1.6 1.5.6 4-1.5 6.6-.6.7-1 2-1 3.5 0 1.3.5 2.7 1 3.5 2.2 2.5 3.2 5 1.6 6.6-1 1-2.3 1.5-3.4 2v-2.4c.2-1.3.2-2.7-.4-3.5-.5-.7-.8-.4-2.4-1.4a7 7 0 01-2.3-2.2c-.4-.8 0-1.7 0-2.6 0-1-.4-1.8 0-2.6.6-.8 1.4-1.6 2.4-2.2 1.6-1 2-.8 2.4-1.4.6-.8.6-2.2.4-3.5v-2.4z"/>
+        <path fill="#21231e" d="M465 209l-.8.6-.2-.2-.2-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.4v-.2h-.5v-.2h-.2l-.2-.2h-.2l-.2-.2h-.2l.4-1h.2l.2.2h.2l.2.2h.3l.2.2h.2v.2h.3l.2.2h.2v.2h.3v.2h.2l.2.2.2.2.2.2zm-1.5 7.2l-.8-.6.2-.3v-.2h.2l.2-.3.2-.3v-.2l.3-.2v-.5l.2-.2v-.2h.2v-.3l.2-.2v-.4h.2v-1.6l-.2-.3-.2-.2-.2-.2.7-.7.3.3v.2l.2.2v.2h.2v.5l.2.2v1l-.2.2v.4l-.2.2v.5l-.2.3v.3l-.3.2v.5l-.3.2v.3l-.3.2-.2.3v.2l-.3.2-.3.3-.2.2zm-1 3.3h-1v-.7l.2-.2v-1.2h.2v-1h.2v-.4l.2-.2v-.2h.2v-.2l1 .6h-.2v.4h-.2v.2l-.2.2v.9h-.2v1.4h-.2v.5zm1 3.2l-.8.6v-.2h-.2v-.2h-.2v-.4h-.2v-1.1l-.2-.3V220h-.2v-.5h1v1.1l.2.2v.4l.2.2v.4l.2.2v.2h.2v.2zm1.5 7.3l-.8-.8h.2v-.2h.2v-.3l.2-.2v-1.9l-.2-.2v-.2l-.2-.2v-.2l-.2-.3v-.2l-.2-.2-.3-.3v-.3l-.3-.2-.2-.2v-.2l-.3-.3-.3-.2.8-.6.2.2h.2v.4l.2.2.2.3h.2v.3l.3.3v.5l.3.3v.3l.2.2v.5l.2.2v.5l.2.2v.7l-.2.4v.4l-.2.2v.2l-.2.2v.2l-.3.2v.2zm-4.3 1.7l1-.2-.7-.4h.7v-.2h.4l.2-.2h.2l.2-.2h.2v-.2h.4v-.2h.2l.2-.2.2-.2h.2v-.2h.2v-.2l.8.8h-.2v.2h-.2v.2h-.2l-.2.2-.2.2h-.2l-.2.2h-.2v.2h-.4v.2h-.4v.2h-.5v.2h-.2l-.2.2h-.2l-.7-.3zm.7.4l-.6.3v-.6l.6.4zm-.7-3l1 .3v2l-1 .3v-2.4zm-.3-3l.8-.6v.2h.2v.4h.2v.6l.2.2v2.4l-1-.2v-2.4h-.2v-.4h-.2v-.2zm-2.3-1.3l.7-.8h.2l.2.2h.2l.2.2h.2l.2.2h.4v.2h.2l.2.2.2.2.2.2-.8.6-.2-.2h-.2v-.2h-.4l-.2-.2h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.3zm0 0l-.3-.2.4.2zm-2.3-2.4l.8-.5.2.2v.2h.2v.4h.2v.2h.2v.2h.2v.2h.2l.2.2h.2v.2h.2v.2h.2l-.5 1v-.2h-.2l-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2zm0 0l.3.5-.3-.5zm-.3-3h1v2.4l-.7.5v-.2h-.2v-.4l-.2-.2v-2.2zm.3-2.8l.8.6v.4l-.2.2v1.8h-1V217h.2v-.4h.2zm2.4-2.4l.7 1h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2-.2.2-.2.2v.2h-.2v.2h-.2v.2l-1-.5h.2v-.2l.2-.2.2-.2v-.2h.2l.2-.2v-.2h.2v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2h.2zm2.4-1l.8.5-.2.2-.2.2h-.4v.2h-.4l-.2.2h-.2l-.2.2h-.2v.2h-.5v.2l-.7-1h.6v-.2h.2l.2-.2h.2l.2-.2h.4v-.2h.4v-.2h.2zm.3-3.2l1-.2v2.9l-.2.2v.2h-.2v.2l-1-.5v-.2h.2v-.4h.2V210zm.5-2v-1l.5.6v2.1l-1 .2V207l.5.6zm0-1h.6v.6l-.6-.6zm0 0v1h-.2l.2-1zM361 226.3l.7-.3c-1.6-2.2-2-4.2-1.3-6.3-1.3 1.6-1 4.2.6 6.6z"/>
+        <path fill="#edb92e" d="M410.7 200c1.4 1.6 1.2 2 2 2.5 1 .6 2 .4 3.3 0 5-2 5 2 3.5 6.4-.7 2-2.8 4.3-3.7 6.2-1 1.7-.7 3-1 3.5a95.4 95.4 0 01-4 .6l-4 .5c-.6-.3-1-1.6-2.6-3s-4.4-3-6-4.6c-3-3.5-4.6-6.8.2-6.7 1.2 0 2.4-.2 3-1 .4-.7 0-1 .4-3 .3-1.2.8-2.3 1.4-3 .6-.8 1.5-.6 2.3-.7 1-.2 1.6-.7 2.5-.2 1 .4 2 1.2 2.7 2.3z"/>
+        <path fill="#21231e" d="M413 202l-.6 1-.2-.2-.2-.2-.2-.2v-.2h-.2v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.3-.3-.3.8-.6.3.2.2.3v.2h.2v.4h.2v.4h.2v.2l.2.2v.2h.2v.2l.2.2zm-.6 1zm3.5-1l.2 1h-.5l-.2.2h-.8v.2h-1.2l-.3-.2h-.2l-.2-.2h-.2l.5-1v.2h.8v.2h1l.2-.2h.4l.2-.2h.3zm4 7l-1-.3v-.4l.2-.4v-.5l.2-.4v-.3l.2-.3v-.7l.2-.4v-1.7l-.2-.2v-.4h-.2l-.2-.3h-.2l-.3-.2H417l-.4.3h-.4l-.3-.8.3-.2h.5l.4-.2h1.8l.3.2h.3l.2.3.2.4v.2l.3.3.2.4v3.3l-.2.4v.4l-.2.4v.4l-.2.4v.4zm-3.7 6.4l-1-.5v-.2l.2-.2.2-.2v-.2l.2-.2v-.4l.2-.2.2-.2v-.2l.2-.2.2-.2.2-.3.2-.2.2-.3.2-.2v-.2l.2-.2h.2v-.3l.2-.2v-.2l.2-.2.2-.3v-.2l.2-.2v-.2l.2-.3 1 .3v.2l-.2.3v.2l-.2.2-.2.3v.2l-.2.2v.3l-.3.2-.2.2v.2l-.2.2-.2.2v.2l-.2.2-.2.2v.2l-.3.2v.2l-.2.2-.2.2v.2l-.2.2v.4h-.3v.3l-.2.2-.2.2v.2zm-1.5 3.8l-.2-1-.3.2v-.4h.2v-1l.2-.2v-.4l.2-.3v-.4l.2-.3v-.2h.2l1 .4-.2.2-.2.3v.3h-.2v.7h-.2v.9l-.2.2v.4l-.2.2v.2l-.4.2zm.3 0h-.2.3zm-4.3.6v-1h1.1v-.2h1.2v-.2h1.1l.3-.2.2 1h-.4l-.3.2h-.9l-.2.2h-1.3v.2h-.7zm0 0zm0 0v-1 .5-.5 1-.5.5zm0-1zm-4 1.5l.4-1h-.2 1.3l.3-.2h1.9l.2-.2.2 1h-.8v.2h-1.4v.2h-2zm.2 0h-.3.2zm-3-3l.5-1 .2.3.3.3h.2l.2.3.2.2.2.3.2.2v.2h.2v.2h.2v.2l.2.2v.2h.2v.2h.2v.2l-.4 1v-.2h-.2l-.2-.2-.2-.2v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.2-.2-.2-.2-.3v-.2h-.2v-.2h-.3v-.3zm-6-4.8l.7-.6.2.2.3.3.3.3h.2v.3l.3.2h.3l.2.3h.2l.2.3.3.3.2.2.2.2h.2v.2l.3.2h.2l.2.3.2.2.3.3h.2l.2.3.3.2.2.2h.2v.2l-.5.8h-.3v-.2l-.3-.2h-.2v-.2l-.3-.2h-.3l-.2-.2-.2-.2h-.2v-.2l-.3-.2h-.2l-.2-.3h-.2v-.2h-.3l-.2-.2-.2-.2h-.2v-.3h-.3l-.2-.3-.2-.2h-.2v-.3h-.3v-.3l-.3-.2h-.2v-.3l-.3-.2zm.4-7.5v1H397l-.2.2h-.4l-.2.2v.2h-.2v1.5l.2.3v.3l.2.2.2.3.2.4.2.3.2.3.2.3.2.3.3.3v.2l.4.3.3.4-.8.5-.4-.3-.3-.3-.2-.4-.2-.4-.2-.3-.3-.4-.2-.3v-.4l-.3-.4v-.3l-.3-.3v-.3l-.3-.3V206l.2-.2.2-.2.2-.2.3-.2h.2l.3-.2h.7l.4-.2h.8zm2.5-.8l.8.5-.2.2-.2.2h-.2v.2h-.2l-.2.2h-.2l-.2.2h-.5l-.2.2h-1.1v-1h1.4l.2-.2h.2l.2-.2h.2v-.2h.2v-.2zm0 0zm.4-2.8l1 .2v.4h-.2v2h-.2v.4l-.2.2-1-.4h.2v-1.4l.2-.3v-.8l.2-.2zm1.4-3.2l.8.6-.2.2v.2h-.2v.4h-.2v.4h-.2v.4l-.2.2v.4l-.2.2v.4l-1-.2v-.7l.2-.2v-.4l.2-.2v-.4h.2v-.4h.2v-.4h.2v-.2h.2v-.4h.2zm.8.6l.5-.7-.4.8zm1.8-1.5l.2 1H404v.2h-.4v.2h-.2l-.8-.5.2-.2.2-.2h.2v-.2h.4l.2-.2h1.4zm.2 1h-.7.6zm2.7-1.2l-.5 1H406l-.2.2h-.4l-.2-1h.8l.2-.2h2.1zm3 3h-1v.2-.2h-.2v-.2l-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2l-.2-.2-.2-.2h-.2l-.2-.2.5-1v.2h.2l.2.2h.2v.2h.2v.2h.2l.2.2.2.2.2.2h.2v.2h.2v.2l.2.2.2.2.2.2v.2l.3.3zm-.2-.4h.2v.3-.4zm-.8.3h1l-1 .2v-.3zm0 .2v-.3.2z"/>
+        <path fill="#21231e" d="M410 219.4h-.7c-1.4-3.8-3.5-7-6.3-9.5 2.8 1.4 5.5 5.3 7 9.4zm1.4-.2c.3 0 .5 0 .8-.2-.5-4 0-7.5 1.5-11-2 2.5-2.8 7-2.3 11.2z"/>
+        <path fill="#edb92e" d="M418.3 202c-.2 1.4-.4 3-1 4.3-1 2-3.8 1.3-6.6-.7-.8-.6-2.2-.8-3.4-.6-1.3.3-2.4.8-3 1.7-1.5 2.6-3.4 4-5.2 2.6-1-1-2-2.3-2.7-3.5.5-.2 1.2-.3 2-.3 1.3 0 2.5-.2 3-1 .5-.7 0-1 .6-3 0-1.2.6-2.3 1.2-3 .6-.8 1.5-.6 2.3-.7 1-.2 1.6-.7 2.5-.2 1 .4 2 1.2 2.7 2.3 1.4 1.6 1.2 2 2 2.5 1 .6 2.2.4 3.3 0 1-.4 1.7-.6 2.3-.5z"/>
+        <path fill="#21231e" d="M417.7 206.5l-1-.4.2-.2v-.5l.2-.2v-.4l.2-.2v-.9l.2-.2v-1.2h.2v-.4h1v1.1l-.2.3v1h-.2v.7h-.2v.7h-.2v.3l-.2.3v.2zm-7.2-.5l.5-.8.3.2h.2l.3.3h.2l.3.3h.2l.3.2.2.2h.2l.3.2h.4v.2h.7l.2.2h1v-.2h.2l.2-.2.2-.3.2-.2 1 .5-.2.2-.2.3-.3.3v.2h-.2l-.2.2h-.2l-.3.2h-2l-.2-.2h-.2l-.3-.2h-.2l-.2-.2h-.2l-.3-.2-.2-.2h-.2l-.3-.3-.2-.2h-.3l-.3-.3-.2-.2zm-3-.4l-.3-1h1.1v-.2h1.3v.2h.6v.2h.4v.2h.2l.2.2-.5.8h-.2v-.2h-.4v-.2h-2.4zm-2.7 1.3l-.8-.6v-.2h.2v-.2h.2v-.2l.2-.2h.2v-.2h.2l.2-.2h.2l.2-.2h.3v-.2h.8l.2-.2h.5l.2 1h-.7v.2h-.4v.2h-.4l-.2.2h-.2v.2h-.2v.2h-.2v.2h-.2zm-6 2.7l.6-.8h.3v.2h.5l.2.2h.5l.3-.2h.3v-.2h.3v-.2h.2v-.3h.3v-.3h.3v-.3l.3-.3.2-.2.2-.2v-.2h.3v-.4l.3-.2.8.5v.2l-.3.2v.3l-.3.2h-.2v.3l-.3.2-.2.2-.2.2-.3.3h-.2l-.2.3h-.2v.3h-.3l-.3.2h-.4l-.3.2h-1.2l-.2-.2h-.2l-.2-.2-.2-.2h-.2zm-2.7-4.4l.5 1 .3-.8v.3h.2v.2l.2.2v.2h.2v.2l.2.2v.2h.2v.2l.2.2.2.2.2.2v.2h.2v.2h.2v.2h.2v.2h.2v.2h.2l-.6 1-.2-.2-.2-.2-.2-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.3h-.2v-.2h-.2v-.2h-.2v-.3h-.2v-.2h-.2v-.4h-.2v-.2h-.2V205zm0 .8l-.4-.4.5-.3v.8zm2.4-1v1H397v.2h-.4l-.5-1h1.2v-.2h1.2zm2.5-.8l.8.5-.2.2-.2.2h-.2v.2h-.2l-.2.2h-.2l-.2.2h-.7l-.2.2h-1.2v-1h1.4l.2-.2h.4v-.2h.2v-.2h.2v-.2zm0 0zm.4-2.8l1 .3v.3l-.2.3v1.7h-.2v.7h-.2l-1-.4h.2v-1.4h.2v-1.3l.2-.2zm1.4-3.2l.8.6-.2.2v.2h-.2v.4h-.2v.4h-.2v.4l-.2.2v.7h-.2v.5l-1-.3v-.7l.2-.2v-.4l.2-.2v-.4h.2v-.4h.2v-.4h.2v-.2h.2v-.4h.2zm0 0l.4-.5-.4.5zm2.6-1l.2 1h-.6v.2h-1v.2h-.2l-.2.2-.8-.6.2-.2.2-.2h.2v-.2h.4l.2-.2h1.4zm0 0h.6-.6zm3 0l-.6.8H406v.2h-.5l-.2-1h.8v-.2h2.1zm-.6.8l.3.2-.2-.2zm3.3 1.6l-.6.6-.2-.2h-.2v-.2l-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.2l-.2-.2.5-1v.2h.2l.2.2h.2v.2h.2v.2h.2l.2.2.2.2.2.2h.2v.2h.2v.2l.2.2.2.2.2.2v.2zm2 2.5l-.6 1-.2-.2-.2-.2-.2-.2v-.2h-.2v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.3-.2-.3.7-.6.3.2.2.3v.2h.2v.2l.2.2v.4h.2v.2l.2.2v.2h.2v.2l.2.2zm-.6 1l-.2-.2h.2zm3.5-1l.2 1h-.5l-.2.2h-.8v.2h-1.3l-.2-.2h-.2l-.2-.2h-.2l.5-1v.2h.6l.2.2h1.1l.2-.2h.4l.2-.2h.2zm2.8 0h-1l.5.5h-1l-.2.2h-.4l-.2.2h-.2l-.3-1 .2-.2h.8v-.2h1.5l.5.4zm-.5-.5h.6l-.2.5-.5-.5z"/>
+        <path fill="#edb92e" d="M391.8 221.2c.7-1 1-.8 1.2-1.3.2-1-.3-2-1-3.2-2.2-4.6.3-4.2 3.6-2.4 1 .4 2 1.2 3 2 1 1 1.8 1.8 2.7 2.4 1.6 1.2 2.7 1.2 3 1.7 1 2 1.5 3.5 1.8 4.2.3.7 1 2.3 1.6 4.2 0 .4-1 .5-1.8 2-.7 1.2-1.2 3.5-2 4.7-1.4 1.6-2.5 2.6-3.4 2.4-1 0-1.6-1.3-1.8-4.2a4 4 0 00-1.5-3c-.5-.6-.6-.4-2-1.2a9.3 9.3 0 01-2.4-2c-.6-.6-.7-1.3-1-2-.3-1-.8-1.6-.7-2.4a3.8 3.8 0 01.8-2z"/>
+        <path fill="#21231e" d="M392.5 219.7l1 .3v.2l-.2.2v.2h-.2v.2h-.2v.2h-.2l-.2.2v.2h-.2l-.8-.5v-.2l.2-.2.2-.2.2-.2h.2v-.2h.2v-.2zm1 .3zm-1.8-3l1-.5v.4l.2.2v.4l.2.3v.2l.2.2v2l-1-.3v-1.2l-.2-.2v-.4h-.2v-.4h-.2v-.4zm4.2-3l-.6.8h-.3l-.2-.3h-.3l-.3-.3h-.3l-.3-.2h-.3l-.2-.2h-.5l-.2-.2h-.6v1.5l.3.4.2.3.2.4.2.5-1 .5v-.4l-.3-.4-.2-.4v-.7l-.2-.2v-1.5l.2-.2h.2l.2-.2h.2l.2-.2h1.2l.2.2h.6l.3.3.3.2h.3l.3.2.2.2.4.2h.3zm2.8 2l-.7 1v-.4h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.2l-.2-.2-.2-.2h-.2l-.2-.2.5-1v.2h.2v.2h.2l.2.2h.2v.2h.2l.2.2h.2v.2h.2v.2h.2l.2.2.2.2.2.2h.2v.2h.2zm2.8 2.4l-.6.8h-.2v-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2l-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.2l.6-1v.2h.2l.2.2v.2h.2l.2.2.2.2h.2v.2h.2v.2h.2v.2h.2l.2.2.2.2h.2v.2h.2l.2.2zm3.3 2l-1 .3v.2-.2h-.2v-.2h-.4l-.2-.2h-.2l-.2-.2h-.3l-.2-.2h-.3v-.2h-.3v-.2h-.3v-.2h-.3v-.2l.6-.8.2.2h.2v.2h.3l.2.2h.2l.2.2h.2v.2h.4l.2.2h.4v.2h.2l.2.2h.2v.3zm-.2-.3v.2zm1.7 4.5l-1 .4v-.7l-.2-.2v-.4l-.2-.2v-.5h-.2v-.4l-.2-.3v-.3h-.2v-.5h-.2v-.5h-.2v-.3l1-.4v.4l.2.3v.2l.2.3v.2l.2.3v.3l.2.3v.4h.2v.4l.2.2v.4h.2v.4zm0 0zm0 0l-1 .4h.3l.3.2-.5-.5.6.5-.5-.5.6.5-.5-.5.2.4-.2-.3v.2l1-.5v.2-.4.4l-.4-.5.6.5-.5-.5.6.5-.5-.5h.4v.3zm0-.2v.2-.2zm1.6 4.7l-1-.2v.3-.5l-.2-.3v-.2l-.2-.3v-.3l-.2-.3v-.2l-.2-.2v-.4l-.2-.2v-.2l-.2-.2v-.4l-.2-.2 1-.5v.4h.2v.5h.2v.5l.2.2v.3l.2.3v.5l.2.2v.3l.2.2v.2l.2.2v.6zm0-.3v.3-.3zm-1.7 2.4l-1-.4.2-.2v-.2h.2v-.2l.2-.2v-.2h.2v-.2h.2l.2-.2h.2v-.2h.2v-.2l1 .2v.4h-.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2-.2.2v.2zm-2.2 5l-.7-.7.2-.3v-.2h.2v-.3l.2-.2v-.4l.2-.2v-.5h.2v-.4h.2v-.5h.2v-.2l.2-.3v-.2l.2-.3v-.2l.2-.2 1 .5-.2.2v.3h-.2v.4h-.2v.5l-.2.2v.3l-.2.2v.3l-.2.2v.3l-.2.2v.3l-.2.2v.3h-.2v.3h-.2v.3l-.2.2v.2zm-3.7 2.7l.2-1h.4v-.2h.2l.2-.2h.2v-.2h.2l.2-.2.2-.2.2-.2.2-.2.2-.3.2-.2v-.2h.2v-.3l1 .7h-.2v.3h-.3v.3h-.2v.3h-.4v.4h-.2v.2h-.2l-.2.2-.2.2-.2.2h-.3v.2h-.4v.2h-1zm-2.2-5h1v.3l.2.2v1.1h.2v.5l.2.2v.3l.2.2v.2h.2v.2h.2v.2h.2v1h-.8v-.2h-.2l-.2-.2-.2-.2v-.3h-.2v-.2l-.2-.2v-.3l-.2-.3v-.4h-.2v-1l-.2-.2v-1zm-1.2-2.6l.7-.6.2.2v.2h.2v.2l.2.2v.2h.2v.3l.2.2v.2h.2v.7h.2v.6l-1 .2v-1h-.2v-.4l-.2-.2v-.2h-.2v-.2h-.2v-.4h-.2v-.2h-.2zm-2-1l.4-.8h.3v.2h.4v.2h.4v.2h.4v.2h.4v.2h.2v.2l-.6.7h-.2l-.2-.2h-.4v-.2h-.4l-.2-.2h-.2l-.2-.2h-.3zm-2.5-2l.7-.6.2.2.2.2.2.2.2.2h.2v.2h.2v.2h.2l.2.2h.2v.2h.2l.2.2-.5 1v-.2h-.2v-.2h-.4v-.2l-.2-.2h-.2l-.2-.2-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2v-.2zm-1.2-2.3l1-.4v.2h.2v.4h.2v.5h.2v.4h.2v.2l.2.2-.7.7h-.2v-.4h-.2v-.4h-.2v-.4l-.2-.2v-.8h-.2v-.2zm-.6-2.5h1v.8h.2v.4l.2.2v.2l.2.2v.2l-1 .5v-1h-.2v-.4h-.2v-.6h-.2v-.8zm1 0v.2zm.4-1.5v-1l.3.8v.4h-.2v.2h-.2v.8h-.2v.2h-1v-.9l.2-.2v-.4l.2-.2v-.2h.2v-.4h.2v-.2h.2l.4.7zm0-1h1l-.7.8-.2-.8zm0 0v1l-.4-.8.4-.3zm0 1h-1l.6-.8.4.7z"/>
+        <path fill="#21231e" d="M406.5 226l.2 1c-1.4.4-2.6 1-3.6 1.8s-1.7 2-2.3 3.2c.2-1.4 1-2.7 2-3.7s2.3-1.8 3.8-2.2zm-.6-1.6l-.5-1c-1.6 0-3.2-.4-4.7-1-1.5-.7-3-1.6-4.4-2.8 1 1.3 2.6 2.4 4.3 3.3 1.6.7 3.5 1.3 5.2 1.5z"/>
+        <path fill="#edb92e" d="M391.4 213.8c1 .4 1.6.8 2.8 1.8.8.7 1.3 1.7 1.5 3 0 1 0 2.5-.3 3.8-.2.8 0 2.2.5 3.6.4 1.4 1 2.8 2 3.5 2.3 2.5 4 5 3.4 6.7a4 4 0 01-1.5 1.8c-.4-.6-1-1.2-1.4-2.2a8 8 0 00-1.5-3.5c-.5-.6-.7-1.3-2-2.2-1-.5-2-.3-2.6-1-1.2-1.6-3-5.5-1.3-7.2 1.7-1.7 2.3-2.7 1-5.6-.5-1-.5-1.8-.6-2.4z"/>
+        <path fill="#21231e" d="M394.5 215.2l-.7.8-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2h-.2l-.2-.2h-.4l.3-1h.4v.2h.4v.2h.4v.2h.4v.2h.2v.2h.2l.2.2.2.2h.2v.2h.2v.2zm1.7 3.2l-1 .2v-.6h-.2v-.7h-.2v-.4l-.2-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2l.7-.8h.2v.2l.2.2v.2h.2v.2l.2.2v.2h.2v.4l.2.2v.4h.2v.8h.2v.2zm-.3 4h-1V221h.2v-2.4l1-.2v3.3l-.2.2v.5zm-1 0v-.3.3zm1.4 3.5l-1 .2v-.5l-.2-.3v-.4l-.2-.3v-.8h-.2v-1.4h1v1.9h.2v.7h.2v.7h.2v.3zm1.8 3.2l-.7.7v-.2l-.2-.2h-.2v-.4h-.2v-.2l-.2-.3v-.2h-.2v-.2l-.2-.3v-.2h-.2v-.5l-.2-.2-.2-.3v-.4h-.2l1-.4v.2l.2.2v.2l.2.3.2.2v.3l.2.2v.2h.2v.2h.2v.4h.2v.2h.2v.2h.2v.2zm3.6 7.2l-1-.4.2-.2v-1.3l-.2-.2v-.4l-.2-.2v-.2l-.2-.2-.2-.2v-.2l-.2-.2-.2-.2v-.2l-.3-.2-.2-.3v-.3l-.3-.2-.2-.2-.2-.3-.2-.2-.2-.2-.2-.2-.3-.3h-.2l.7-.8.3.2.2.2.2.3.3.4.3.2.2.2v.3l.3.3.3.2.2.3v.2l.3.2.2.3v.2l.2.2.2.2v.2l.2.2v.2l.2.3v.7l.2.2v1.2l-.2.2zm-2.4 1.8l1-.4-.8-.2.2-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.2l1 .4v.2l-.2.2v.2l-.2.2v.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2h-.2l-.2.2-.8-.2zm.8.2l-.5.3-.3-.5.8.2zm-2-2.5l1-.3v.4h.2v.4h.2v.2h.2v.2l.2.2v.2h.2v.4l-.8.4v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2h-.2v-.4l-.2-.2v-.2l-.2-.2v-.3zm-1.5-3.3l.8-.7v.2h.2v.2l.2.2v.2l.2.2v.2h.2v.5h.2v.4l.2.2v.4l.2.3v.7l-.8.2v-.4h-.2v-.5l-.2-.2v-.5h-.2v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2zm0 0zm-2-2.2l.4-1 .3.2.2.2h.2l.2.2.2.2.2.2v.2h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2l-.7.7-.2-.2v-.2h-.2v-.2h-.2v-.4h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2zm-2.7-1.3l.8-.6h.2v.2h.2v.2h.9l.2.2h.4l.2.2h.2l.2.2-.4 1v-.2h-.4l-.2-.2h-.9v-.2h-.4l-.2-.2h-.2l-.2-.2-.2-.2-.2-.2zm-1.2-7.8l.7.7v.3h-.2v.3h-.2v2.2l.2.3v.5l.2.2v.2l.2.3v.2l.2.2v.2l.2.2v.2l.3.2v.2h.2v.3l.2.2-.7.7-.2-.3-.2-.3v-.2l-.2-.2v-.2h-.3v-.3l-.2-.3-.2-.4v-.2l-.2-.3v-.2l-.2-.2v-.6l-.2-.3v-2.1l.2-.3v-.2h.2l.2-.3.2-.3zm.7-5l1-.5v.5l.2.2v.3l.2.2v.7h.2v1.7l-.2.2v.2l-.2.2v.2h-.2v.3h-.2v.2l-.2.2-.3.3h-.2l-.2.3-.8-.6.2-.3h.2l.2-.3.2-.3.2-.2v-.3l.2-.2v-.2l.2-.3v-.7l-.2-.2v-.5l-.2-.2-.2-.4v-.2zm0-3v1l.4-.7v1.4h.2v1.1h.2l-1 .6v-.9h-.2v-.7l-.2-.2v-1l.4-.7zm-.6.5l-.3-.7h.7l-.5.6zm.4.3v-1 1zm0-1z"/>
+        <path fill="#edb92e" d="M434 226.2c-1.2 1-1.5 1-2 1.6-.3.8 0 2 .3 3.3 1.5 5-1.4 4.4-5 2.6-1.6-1-3.6-3.2-5.2-4.4-1.5-1-2.6-1-3-1.6a118.7 118.7 0 01-1-4.3c0-.7-.5-2.4-1-4.4.4-.7 1.4-1 2.5-2.5 1-1.7 2.2-4.7 3.6-6 3-3.2 6-4.5 6 1.3 0 1.4.3 3 1 3.6.6.6 1 .3 2.5 1 1 .6 2 1.3 2.6 2 .7 1 .5 2 .7 2.8 0 1 .5 1.7.2 2.6-.5 1-1 1.7-2 2.4z"/>
+        <path fill="#21231e" d="M432.6 228l-1-.5h.2v-.4h.4v-.2h.4v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.8.8-.2.2h-.2v.2h-.2l-.2.2-.2.2h-.2v.2h-.4v.2h-.2v.2zm-1-.5zm1 3.4l-.8.3v-.2l-.2-.2v-.7h-.2v-2.3h.2v-.2l1 .4v.2h-.2v2.1h.2v.7zm-5.4 3l.5-.8h.3l.3.3h.3l.3.3h.2l.3.2h.2l.3.2h.7l.2.2h.7v-.2h.2v-.4l.2-.3v-1.1l-.2-.3v-.3l-.2-.4 1-.4v.4l.2.4v.8l.2.3v1.1l-.2.4v.2l-.3.2-.2.2h-.2l-.2.2-.4.2h-1.2l-.3-.2h-.6l-.3-.3-.2-.2h-.3l-.3-.2-.4-.2-.3-.2h-.3zm-5.4-4.3l.6-1 .2.2.3.2.2.3h.2v.3h.3v.3l.3.2.2.2h.2v.3h.3l.2.3.2.3.2.2.3.3h.2v.2l.2.2h.2l.2.2v.2h.3v.2h.2l.2.2.3.2-.5 1-.2-.2h-.2v-.2l-.3-.2h-.2l-.2-.2-.2-.3h-.2l-.2-.2h-.2v-.3h-.3l-.3-.3h-.2v-.3l-.3-.3h-.2l-.2-.3-.3-.3h-.2v-.2h-.3l-.2-.3-.3-.3-.3-.2-.3-.2h-.2zm.6-1zm-4-1l1-.2v-.2h.2v.2h.4l.2.2h.4v.2h.7l.2.2h.2l.2.2.3.2h.2l.2.2-.6 1v-.2h-.3v-.2h-.2l-.2-.2-.2-.2h-.3l-.2-.2h-.2v-.2h-.4l-.2-.2h-.2l-.2-.2h-.2v-.2h-.2v-.3zm.2.3v-.3.3zm-.6-4.2v-1l.5.4v.4l.2.2v1h.2v1.3h.2v1h.2v.5l-1 .2v-.7l-.2-.3v-.7l-.2-.3v-.7h-.2v-.8l-.2-.2v-.6l.4.4zm0-1h.5v.4l-.5-.4zm-.5.6l1-.2v-.2l-.5-.2v1h-.3l-.2-.5zm1-.2zm-1.8-4.5l1 .4v-.2 1.1h.2v1.1l.2.3v.8l.2.2v.9l-1 .2V222l-.2-.2v-.8l-.2-.3v-.7h-.2v-.8l-.2-.2v-.3zm0 .3v-.3.3zm2.4-2.8l1 .5-.2.2-.2.2-.2.3-.2.2-.2.2h-.2v.2h-.2l-.2.2h-.2v.2h-.2v.2h-.2v.2h-.2l-1-.3h.2v-.4h.2v-.2h.4v-.2h.2l.2-.2.2-.2.2-.2h.2v-.2l.2-.2.2-.2v-.2h.2v-.2zm3.7-6.2l.8.7h-.2v.3h-.2v.3l-.3.3v.2l-.2.2v.2h-.2v.3l-.2.3v.4l-.3.2v.2l-.2.2v.2l-.2.2v.2l-.2.2v.3l-.2.3v.2l-.2.2v.2h-.2v.2l-.2.2-.2.2-1-.4.2-.2.2-.3v-.2h.2v-.3l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.3l.2-.2v-.2h.2l.2-.3v-.2l.2-.2v-.3l.2-.2v-.2l.3-.2v-.2l.2-.2.2-.3v-.2l.2-.2h.2v-.3zm6.8 1.8h-1v-1.4l-.2-.4v-.6l-.2-.2v-.4l-.2-.2h-.3v-.2h-1.2l-.3.2-.3.2h-.2l-.3.3-.2.3-.3.2-.2.2-.3.2-.2.2-.3.2-.2.3-.8-.7.3-.3.3-.3.3-.2.2-.3.3-.3.4-.2.3-.2.2-.2h.2l.3-.3h.2l.3-.2h.3l.2-.2h1.2l.3.2.3.3.2.2.2.2.2.3v.6l.2.5v.4l.2.3v1.5zm1 3.3l-.8.8-.2-.2v-.2h-.2v-.2l-.2-.2v-.6l-.2-.2v-.7l-.2-.2V212h1v2h.2v.3l.2.2v.2h.2v.2l.2.2zm0 0zm2.2 1l-.4 1-.3-.2h-.2l-.3-.2h-.4v-.2h-.9v-.2h-.4v-.2h-.2v-.2l.6-.7v.2h.4v.2h.8l.2.2h.4l.2.2h.2l.2.2zm2.8 2.2l-.8.6h-.2v-.2l-.2-.2h-.2v-.4h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2.3-1 .3.2h.2l.2.2.2.2h.2v.2h.2l.2.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2zm-.8.6l.4.5-.3-.5zm1.5 2.3l-1 .2V220l-.2-.2v-.8h-.2v-.4l.7-.6v.2l.2.2v.2l.2.2v2.2h.2v.2zm0 3l-.8-.4v-2.1l-.2-.2v-.4h1v1l.2.2v1.8zm-1.8 2.6l-.7-.8h.2v-.2l.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.2h.2v-.2l1 .4-.2.2v.2l-.2.2v.2h-.2v.4h-.2v.2h-.2v.2l-.2.2-.2.2v.2h-.2l-.2.2-.2.2zm-.7-.8z"/>
+        <path fill="#21231e" d="M418 222.6l-.2-1a14 14 0 007.8-5.3c-1.2 3-4.3 5.3-7.7 6.3zm.2 1.5c0 .4.2.7.3 1 3.4 0 6.4 1 9.2 3-2-2.3-5.8-3.8-9.5-4z"/>
+        <path fill="#edb92e" d="M432.7 233.3a11 11 0 01-3.4-1.5c-1.6-1.3-1.2-3.8.3-6.4.4-.8.5-2.2.2-3.5a6.3 6.3 0 00-1.4-3.5c-2.4-2.3-3.8-4.8-2.6-6.6.8-1.3 2-2 2.8-2.7.3.6.4 1.5.4 2.5 0 1.4.3 3 1 3.6.6.6 1 .3 2.5 1 1 .7 2 1.3 2.6 2 .7 1 .6 2 .7 2.8 0 1 .5 1.7.2 2.6-.5 1-1 1.7-2 2.4-1.2 1-1.5 1-2 1.6-.3.8 0 2 .3 3.3.3 1 .4 1.7.4 2.3z"/>
+        <path fill="#21231e" d="M429 232.2l.6-.8h.2v.2h.2l.2.2h.2l.2.2h.2l.2.2h.4v.2h.4l.2.2h.4l.2.2h.2l-.3 1h-.4v-.2h-.4l-.2-.2h-.3v-.2h-.4l-.2-.2h-.2l-.2-.2h-.2v-.2h-.2l-.3-.2h-.2v-.2zm0-7l1 .5v.2h-.2l-.2.4v.2l-.2.2v.2l-.2.3v.4l-.2.2v.5l-.2.2v1.5l.2.3v.2h.2v.3l.2.2.2.2-.6.8-.2-.2-.3-.3v-.2h-.2v-.3l-.2-.2v-.4l-.2-.3V228h.2v-.7l.2-.3.2-.3v-.3l.2-.2v-.3l.3-.3v-.5zm.3-3.3l1-.2v.8h.2v1.9l-.2.2v.7h-.2v.2l-1-.4h.2v-.6h.2V222zm-1.3-3.2l.7-.7v.2h.2v.4h.2v.2l.2.2v.2l.2.2v.2l.2.2v.5h.2v.7l.2.2v.8h-1v-1.2l-.2-.2v-.4h-.2v-.4h-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2zm0 0zm-2.7-7.2l1 .6h-.2v.7l-.2.2v.7l.2.2v.4l.2.2v.2l.2.2v.2l.2.2v.2l.3.2v.2l.2.2.2.2v.2l.3.3.2.3v.2l.3.2.2.2h.2l-.7.8-.2-.2-.2-.2-.3-.2-.2-.2v-.3l-.2-.2-.2-.2-.2-.2-.2-.2v-.2l-.3-.2-.2-.3h-.2v-.3l-.2-.2v-.3l-.2-.2v-.2l-.2-.3v-.4l-.2-.2v-1l.2-.3v-.2l.2-.2v-.2zm3.8-2.5l-.8.4.7.3h-.2l-.2.2h-.2l-.2.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2-.2.2v.2h-.2v.2l-.2.2-1-.6h.2v-.2l.2-.2.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2h.2l.2-.2.2-.2h.2v-.2h.2l.2-.2.2-.2h.2v-.2h1.1zm-.6 0l.5-.5v.6h-.6zm1 2.8h-1v-2.1h-.2v-.4l1-.3v1h.2v2zm1 3.3l-.7.8-.2-.2v-.2h-.2v-.2l-.2-.2v-.7l-.2-.2v-.7l-.2-.2V212h1v1.7h.2v.6l.2.2v.2h.2v.2l.2.2zm2.3 1l-.4 1-.3-.2h-.2l-.3-.2h-.4v-.2h-.9v-.2h-.4v-.2h-.2v-.2l.6-.7v.2h.4v.2h.8l.2.2h.4l.2.2h.2l.2.2zm2.8 2.2l-.8.6h-.2v-.2l-.2-.2h-.2v-.4h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2.3-1 .3.2h.2l.2.2.2.2h.2v.2h.2l.2.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2zm-.8.6l.4.5-.3-.5zm1.5 2.3l-1 .2V220h-.2v-.8h-.2v-.4l.7-.6v.2l.2.2v.2l.2.2v2h.2v.2zm0 3l-.8-.4v-2.2l-.2-.2v-.4h1v1l.2.2v1.8zm-1.8 2.6l-.7-.8h.2v-.2l.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.2h.2v-.4h.2v-.2l1 .4-.2.2v.2l-.2.2v.2l-.2.2v.2h-.2v.2h-.2v.2l-.2.2-.2.2v.2h-.2l-.2.2-.2.2zm-.7-.8zm-1 2.2l-1-.5v-.2h.2v-.2h.2v-.2h.4v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.8.8-.2.2h-.2v.2h-.2l-.2.2-.2.2h-.2l-.2.2h-.2v.2h-.2v.2zm-1-.5zm1 3.4l-1 .3v-.7h-.2v-3h.2l1 .4h-.2v2.6h.2v.2zm-1 .3zm.8 2.5l.3-1-.6.5v-1h-.2v-.9l-.2-.2 1-.5v.9h.2v1h.2v.7l-.7.5zm.7-.5v.7l-.7-.2.7-.5zm-.5 0l-.2.5.2-.5zm.5 0v.7l-.7-.2.7-.5z"/>
+        <path fill="#edb92e" d="M410.6 216.4c4 0 8 3.4 8.4 7.7.6 4.4-2.2 7.7-6 7.8-4 0-7.5-3-8.3-7.3-.7-4 1.8-8 6-8z"/>
+        <path fill="#21231e" d="M419.5 224l-1 .2v-.8l-.2-.4v-.3l-.2-.4v-.3l-.2-.4-.2-.3-.2-.3-.2-.4-.2-.3-.2-.3-.3-.2-.2-.3-.3-.3-.2-.2-.3-.3-.3-.2-.3-.2-.4-.2h-.3l-.3-.3h-.4l-.3-.3h-.3l-.4-.2h-.3l-.3-.2h-1.5v-1h1.9l.4.2h.3l.4.3h.4l.4.3.4.2.3.2.5.2.3.3.3.2.4.2.3.3.3.3.3.3.3.4.2.3.2.4.3.4.2.4.2.4.2.4v.4l.2.4v.4l.2.4v.8zm-6.6 8.3v-1h.9l.2-.2h.6l.3-.2h.4l.2-.2.3-.2h.2l.2-.3h.2l.2-.3.3-.3.3-.2v-.2l.3-.3.2-.2v-.3l.3-.3.2-.4v-.3l.2-.3v-.7l.2-.3V224l1-.2v2.5l-.2.4v.8l-.3.4v.3l-.2.3v.4l-.3.3-.2.3-.3.3h-.2l-.2.4-.3.2-.3.3h-.3l-.3.3-.3.2h-.2l-.3.3h-.4l-.2.2h-.4l-.3.2H413zm-8.7-7.7l1-.2v.7l.2.5v.3l.3.4v.3l.3.3.2.4.2.3.2.3.2.3.2.3.3.3.2.3h.3l.2.3.3.3.2.2.3.2.3.2h.4l.3.3.3.2h.3l.3.2h.7l.3.2h1.2v1h-2l-.3-.2h-.4l-.4-.3h-.4l-.4-.3-.3-.2-.4-.2-.3-.2-.4-.2-.4-.2-.3-.3-.2-.2-.2-.2-.3-.3-.2-.3-.3-.3-.2-.4-.2-.3-.2-.3-.2-.4-.2-.3-.2-.4v-.4l-.2-.4-.2-.4v-.8zm6.2-8.7v1h-1l-.3.2h-.4l-.3.2h-.3l-.3.3h-.2l-.2.3-.3.2-.2.2v.2l-.3.2-.2.2-.2.3-.2.3v.2l-.2.3v.4l-.3.3v.6l-.2.3v.7l-.2.3v.7l.2.4v.8l-1 .2v-3.3l.2-.3v-.3l.2-.4v-.3l.3-.4v-.3l.3-.3.2-.3.2-.3.2-.3h.2l.2-.4.3-.2.3-.2.3-.2.3-.2.3-.2.3-.2h.3l.4-.2h.4l.3-.2h.9z"/>
+        <path fill="#edb92e" d="M411 218.6c2.8-.2 5.7 2.4 6 5.5.5 3.3-1.5 5.8-4.4 5.8-2.8 0-5.5-2.3-6-5.3s1.3-5.8 4.3-6z"/>
+        <path fill="#21231e" d="M417.6 224l-1 .2v-.6l-.2-.3v-.2l-.2-.3v-.4l-.2-.2v-.2l-.2-.3-.2-.3v-.2l-.3-.2-.2-.2-.2-.3-.2-.2-.2-.2h-.2l-.2-.3h-.2l-.3-.3h-.2l-.2-.2-.4-.2h-.5v-.2h-1.1v-1h1.1l.4.2h.3l.2.2h.2l.3.2h.3l.2.3h.3l.2.2.3.2h.2l.3.3.2.3.2.2.2.2v.2l.3.3h.2v.4l.3.3v.3l.3.2.2.3v.3l.2.3v.8l.2.3zm-5 6.3v-1h1.1l.2-.2h.4l.2-.2h.2v-.2l.3-.2h.3v-.2l.3-.2v-.2h.2l.2-.3v-.2l.2-.2.2-.3v-.7l.2-.2v-1.6h1v2.2l-.2.3v.2l-.2.3v.2l-.3.3-.2.2v.3l-.3.2-.2.2-.2.2-.3.2-.2.2-.2.2h-.2l-.2.2h-.2l-.3.2h-.2l-.2.2h-1.5zm0-1zm-6.5-4.8h1l.2.4.2.4v.2l.2.3.2.3v.3l.3.2.2.2.2.2v.2l.3.2.2.2.3.3.2.2.2.2h.2v.3h.3l.2.2h.7l.2.2h1.1v1H411l-.4-.2h-.2l-.3-.2h-.2l-.2-.3h-.3l-.2-.3-.4-.3-.2-.3-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.3v-.2l-.3-.2-.2-.2-.2-.3v-.3l-.2-.3v-.3l-.2-.2v-.7zm1 0zm4-6.4v1h-.6l-.2.2h-.5l-.2.2h-.2l-.2.2-.2.2h-.2l-.2.3v.2l-.3.2-.2.3v.2h-.2v.3l-.2.2v.2l-.2.2v.7l-.2.2v1.7h-1V222h.2v-.4l.2-.3v-.2l.2-.2v-.2l.3-.3v-.2h.2l.2-.3.2-.2.2-.2.2-.2h.2l.2-.2h.3l.2-.3h.2l.2-.2h.6l.3-.2h.6z"/>
+        <path fill="#0c4076" d="M411.2 220.7c2 0 3.6 1.5 4 3.5.2 2-1 3.6-3 3.6a4 4 0 01-3.7-3.4c-.3-2 1-3.6 2.7-3.7z"/>
+        <path fill="#21231e" d="M415.6 224l-1 .3v-.4l-.2-.2v-.4h-.2v-.3l-.2-.2-.2-.3-.2-.2-.2-.2h-.2l-.2-.2-.2-.2h-.2l-.2-.2h-.6v-.2h-.6v-1h1l.2.2h.2l.3.2h.3v.2h.3l.2.3v.2h.3l.2.2.2.2.2.3.3.2v.4h.2v.3l.2.3v.4l.2.2zm-3.3 4.3v-1h.7l.2-.2h.4v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.5l.2-.2v-1.1l1-.3v2h-.2v.3l-.2.3-.2.3-.2.2h-.2v.2l-.2.2h-.2v.2h-.3l-.2.2h-.4v.2h-1zm-4.3-3.8l1-.2v.5l.2.3v.4h.2v.2l.2.2.2.2.2.3.2.2.2.2h.3v.2h.4l.3.2h.8v1h-1.3l-.2-.2h-.2l-.3-.2h-.2v-.2h-.2v-.2l-.3-.2-.3-.2v-.2h-.2v-.3h-.3v-.3l-.2-.2v-.2h-.2v-.5l-.2-.2v-.5zm2.7-3.8h1l-.5.5h-.7l-.2.2h-.2v.2h-.2l-.2.2-.2.2-.2.2v.2h-.2v.5h-.2v1.3l-1 .3v-1.8h.2v-.5h.2v-.3h.2v-.3h.3v-.3h.3v-.2h.3v-.2h.3v-.2h1l.2-.2h.4l-.5.5zm1 0v.5h-.5l.5-.5zm0 0h-1l.5-.5.5.5zm-1 0v-.5h.5l-.5.5z"/>
+      </g>
+      <path fill="#fff" d="M482 183c4 0 7 3 7 7s-3 6.7-7 6.7c-3.6 0-6.7-3-6.7-6.8 0-4 3-7 6.8-7z"/>
+      <path fill="#21231e" d="M489.5 189.8h-1c0-2.3-1.4-4.6-3.5-5.6a6.3 6.3 0 00-3-.7v-1c2.6 0 5 1.3 6.4 3.5a7.4 7.4 0 011 3.8zm-7.4 7.4v-1c2.5 0 4.7-1.4 5.8-3.4a6.4 6.4 0 00.7-3h1c0 2.6-1.5 5.2-3.7 6.5a7.3 7.3 0 01-3.7 1zM475 190h1a6.4 6.4 0 006.3 6.2v1a7.1 7.1 0 01-6-3.4 7.4 7.4 0 01-1.2-4zm7.3-7.5v1a6.3 6.3 0 00-5.5 3.5 6.4 6.4 0 00-.7 3h-1c0-2.7 1.4-5 3.5-6.4a7.3 7.3 0 013.8-1z"/>
+      <path fill="#fff" d="M482 171c4 0 7 3 7 7a6.8 6.8 0 11-13.7-.2c0-3.7 3-6.7 6.8-6.7z"/>
+      <path fill="#21231e" d="M489.5 178h-1c0-2.4-1.4-4.7-3.6-5.8a6.3 6.3 0 00-3-.6v-1c2.6 0 5 1.3 6.4 3.4a7.4 7.4 0 011 4zm-7.4 7.3v-1c2.5 0 4.7-1.4 5.8-3.4a6.4 6.4 0 00.7-3h1c0 2.5-1.5 5-3.7 6.4a7.3 7.3 0 01-3.7 1zM475 178h1a6.4 6.4 0 006.3 6.3v1a7.1 7.1 0 01-6-3.4 7.4 7.4 0 01-1.2-4zm7.3-7.4v1a6.3 6.3 0 00-5.5 3.5 6.4 6.4 0 00-.7 3h-1c0-2.6 1.4-5 3.5-6.3a7.3 7.3 0 013.8-1z"/>
+      <path fill="#fff" d="M482 159.6c4 0 7 3 7 7a6.8 6.8 0 11-13.7-.2c0-3.7 3-6.8 6.8-6.8z"/>
+      <path fill="#21231e" d="M489.5 166.5h-1c0-2.4-1.4-4.7-3.6-5.7a6.3 6.3 0 00-3-.7v-1c2.6 0 5 1.5 6.4 3.6a7.4 7.4 0 011 4zM482 174v-1c2.5 0 4.7-1.5 5.8-3.6.4-1 .7-2 .7-3h1c0 2.6-1.4 5-3.5 6.4a7.3 7.3 0 01-4 1zm-7.2-7.5h1c0 2.4 1.4 4.7 3.6 5.7a6.3 6.3 0 002.7.7v1a7.2 7.2 0 01-6-3.6 7.4 7.4 0 01-1.2-4zm7.3-7.4v1a6.4 6.4 0 00-5.5 3.6 6.4 6.4 0 00-.7 3h-1c0-2.6 1.4-5 3.5-6.4a7.3 7.3 0 013.8-1z"/>
+      <path fill="#fff" d="M482 127c4 0 7 3.2 7 7s-3 6.8-7 6.8a7 7 0 01.1-13.8z"/>
+      <path fill="#21231e" d="M489.5 134h-1c0-2.4-1.4-4.7-3.6-5.8a6.3 6.3 0 00-3-.6v-1c2.6 0 5 1.3 6.4 3.4a7.4 7.4 0 011 4zm-7.4 7.3v-1c2.5 0 4.7-1.4 5.8-3.4a6.4 6.4 0 00.7-3h1c0 2.5-1.5 5-3.7 6.3a7.3 7.3 0 01-3.7 1zM475 134h1c0 2.3 1.4 4.6 3.5 5.6a6.3 6.3 0 002.8.7v1a7.3 7.3 0 01-6-3.4 7.4 7.4 0 01-1.2-4zm7.3-7.4v1a6.3 6.3 0 00-5.5 3.5 6.4 6.4 0 00-.7 3h-1c0-2.6 1.4-5 3.5-6.3a7.3 7.3 0 013.8-1z"/>
+      <path fill="#fff" d="M482 137.2c4 0 7 3 7 6.8s-3 7-7 7c-3.6 0-6.7-3.2-6.7-7s3-6.8 6.8-6.8z"/>
+      <path fill="#21231e" d="M489.5 144h-1c0-2.3-1.4-4.6-3.5-5.7a6.3 6.3 0 00-3-.6v-1c2.7 0 5.2 1.4 6.5 3.6a7.4 7.4 0 011 3.7zm-7.4 7.4v-1c2.5 0 4.7-1.4 5.8-3.4a6.4 6.4 0 00.7-3h1c0 2.6-1.5 5-3.7 6.4a7.3 7.3 0 01-3.7 1zM475 144h1c0 2.4 1.4 4.7 3.5 5.7a6.3 6.3 0 002.8.7v1a7 7 0 01-6-3.5 7.4 7.4 0 01-1.2-4zm7.3-7.4v1a6.4 6.4 0 00-5.5 3.6c-.5 1-.7 2-.7 2.8h-1c0-2.5 1.4-5 3.5-6.2a7.3 7.3 0 013.8-1.2z"/>
+      <path fill="#fff" d="M482 148.2c4 0 7 3 7 6.8s-3 7-7 7c-3.6 0-6.7-3.2-6.7-7s3-6.8 6.8-6.8z"/>
+      <path fill="#21231e" d="M489.5 155h-1c0-2.3-1.4-4.6-3.6-5.7a6.3 6.3 0 00-3-.6v-1c2.6 0 5 1.3 6.4 3.4a7.4 7.4 0 011 4zm-7.4 7.4v-1c2.5 0 4.7-1.4 5.8-3.4a6.4 6.4 0 00.7-3h1c0 2.6-1.5 5-3.7 6.4a7.3 7.3 0 01-3.7 1zM475 155h1c0 2.4 1.4 4.7 3.5 5.7a6.3 6.3 0 002.8.7v1a7.3 7.3 0 01-6-3.4 7.4 7.4 0 01-1.2-4zm7.3-7.4v1a6.5 6.5 0 00-5.5 3.5 6.4 6.4 0 00-.7 3h-1c0-2.5 1.4-5 3.5-6.3a7.3 7.3 0 013.8-1z"/>
+      <path fill="#edb92e" d="M487 195.5c1 1.6.7 2 1.4 2.4.8.6 2 .6 3.4.4 5.3-1 4.5 2.3 2.2 6-1 1.7-3.8 3.5-5.2 5-1.4 1.5-1.6 2.8-2 3.2h-9.2c-.5-.4-.7-1.7-2-3.2-1.5-1.5-4.2-3.3-5.3-5-2.4-3.7-3-7 2.2-6 1.3.2 2.6.2 3.4-.5.6-.6.3-1 1.3-2.5a7 7 0 012.2-2.3c1-.5 1.8-.2 2.6-.2 1 0 2-.3 2.8.2a7 7 0 012.2 2.3z"/>
+      <path fill="#21231e" d="M488.7 197.5l-.7.8-.2-.2h-.2v-.4h-.2v-.4h-.2v-.4l-.2-.2v-.2l-.2-.2-.2-.3v-.2l.8-.6v.2h.2v.3l.2.2v.2h.2v.4h.2v.4h.2v.4h.2zm-.7.8l-.3-.3.3.3zm3.8-.4v1h-2.4l-.2-.2h-.2l-.2-.2h-.3l-.2-.2.7-1v.2h.2v.2h.8l.2.2h1.9zm2.6 6.6l-.8-.6.2-.3.2-.3.2-.4.2-.3v-.3l.3-.3v-.2l.2-.2v-.6l.2-.2v-1.3l-.2-.2h-.2v-.2h-.5l-.2-.2h-2l-.2-1h2.8l.3.2h.2l.2.2.2.2.2.2.2.2v.3l.2.3v1.7l-.2.3v.3l-.3.2v.4l-.3.3v.2l-.3.4v.3l-.3.2-.3.4zm-5.3 5.2l-.6-.7.3-.2v-.2h.3l.2-.3v-.2h.3l.2-.2h.2v-.3h.2l.2-.3.2-.2h.2l.2-.3h.2v-.3l.3-.2h.2l.2-.3v-.2l.2-.2.2-.2h.2v-.3h.3v-.4h.3v-.3h.2v-.3l1 .6-.2.2-.2.3v.3l-.2.2h-.2l-.2.3v.2l-.3.2-.3.3v.2h-.3l-.2.3-.2.2h-.2l-.2.3-.2.2-.3.3-.3.3h-.2v.3l-.3.2h-.2v.3l-.3.2h-.2v.3h-.2l-.2.3zm-2.3 3.3v-1l-.3.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2h.2v-.2l.2-.2.2-.3.3-.3.8.6v.2l-.2.2-.2.2-.2.3v.2h-.2v.2l-.2.2v.2l-.2.2v.2h-.2v.4h-.2v.2l-.2.2v.2h-.5zm.3 0h-.2.2zm-5 .2v-1h4.7v1h-4.5zm0-1h.2zm0 0v1-1zm0 0zm-4.7.8l.6-.8h-.4 4.2l.2 1h-4.7l-.3-.2zm.3 0h-.2.2zm-2.4-3.2l.7-.7v.2l.2.2.2.3.2.3.2.2v.2h.2v.4h.2v.4h.2v.4h.2v.4h.2v.2l-.5.8-.2-.2v-.2l-.2-.2v-.2h-.2v-.4h-.2v-.4l-.2-.2v-.2h-.2v-.2l-.2-.3-.2-.2-.2-.3-.2-.2zm-5.4-5.2l1-.6v.2l.2.3h.2v.3l.2.2h.2v.3h.3v.3l.2.2h.2l.2.3.2.2v.2l.3.2h.3l.2.3h.2l.2.2v.2h.2l.2.3h.2l.2.3h.2v.3l.3.2h.2v.3h.3v.3l-.6.8-.2-.2-.3-.3-.3-.2-.3-.2v-.2l-.2-.2h-.2l-.2-.3h-.2l-.2-.2h-.2v-.3l-.3-.2h-.2l-.2-.3v-.2h-.3l-.2-.3v-.2h-.3l-.2-.3v-.2l-.3-.2h-.2v-.3l-.3-.2-.2-.2-.2-.2zm2.7-6.7v1l-.6-.2h-2.1l-.2.2h-.2v.2h-.2v.4l-.2.2v1.1l.2.2v.3l.2.3v.2l.2.3.2.4v.3l.3.3.3.4.2.3.2.3-1 .6v-.4l-.3-.3-.2-.4-.2-.4v-.3l-.3-.4v-.4l-.3-.3v-.4l-.2-.3v-.6l-.2-.3v-1l.2-.2v-.2l.3-.2.2-.2.2-.2.4-.2h.3l.3-.2h2.5zm3-.5l.8.8-.2.2h-.2l-.2.2h-.4l-.2.2h-3v-1h2.5l.2-.2h.4v-.2h.2zm1.4-2.3l.7.6v.3l-.2.2v.2h-.2v.4h-.2v.8h-.2v.2h-.2v.2l-.2.2-.8-.7h.2v-.4h.2v-.4h.2v-.2l.2-.2v-.4h.2v-.3h.2v-.3zm0 0l.2-.4-.3.4zm2.3-2.4l.5.8-.2.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2v.2h-.2v.2l-.2.2-.2.2v.2l-1-.6.2-.2.2-.2v-.2h.2v-.2l.2-.2h.2v-.2l.2-.2.2-.2h.2v-.2l.2-.2h.2v-.2h.2l.2-.2zm2.8-.3v1h-2.4l-.5-.7h.2v-.2h.4l.2-.2h2zm3 .3l-.5.8h-.4v-.2H482v-1h2.5l.2.2h.2l.2.2zm0 0l.3.2-.3-.2zm2 3.2v-1l-.4.8-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2v-.2l.4-.8h.2l.2.2.2.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2h.2v.2l-.4.8zm.4-.8l.5.8h-1l.4-.8zm-.4-.2v1l-.4-.2.4-.8zm-.4.8l-.5-.8h1l-.4.8z"/>
+      <path fill="#21231e" d="M481.4 212.8l-1-.2c-.4-3.7-2-7-4.3-9.6 2.8 1.8 4.8 5.7 5.4 9.8z"/>
+      <path fill="#edb92e" d="M494.2 198.3c-.5 1-1 2.4-2 3.5-1.5 1.6-4 .5-6.5-1.6-.8-.6-2.2-1-3.6-1a6 6 0 00-3.4 1c-2.5 2-5 3.2-6.6 1.6-1-1-1.5-2.4-2-3.5h2.5c1.3.3 2.6.3 3.4-.4.6-.6.3-1 1.3-2.5a7 7 0 012.2-2.3c1-.5 1.7-.2 2.6-.2 1 0 2-.3 2.8.2.8.5 1.5 1.3 2.2 2.3 1 1.6.7 2 1.3 2.4 1 .6 2.2.6 3.5.4 1-.2 1.8-.2 2.4 0z"/>
+      <path fill="#21231e" d="M492.6 202l-.7-.6v-.2l.2-.2.2-.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.3v-.4l1 .5v.4l-.2.2v.2l-.2.2v.4h-.2v.2l-.2.2v.3h-.2v.2h-.2v.2h-.2v.3l-.2.2-.2.2h-.2zm-7.3-1.4l.7-.7h.2l.2.2.3.2.2.2.3.3h.3l.2.2h.2l.2.2h.2l.2.2h.2l.2.2h.4l.2.2h1.6l.2-.2.2-.2h.2v-.2l.8.7-.2.3h-.2v.3h-.3l-.3.2h-.3l-.2.2h-1.9l-.3-.2h-.3l-.2-.2h-.3l-.2-.2h-.3l-.2-.2-.2-.2h-.3l-.2-.3h-.3l-.2-.3-.2-.2-.2-.2-.2-.2-.3-.2zm.7-.7l.5.3-.5-.4zm-4-.2v-1h2v.2h.7v.2h.4l.2.2h.2l.2.2h.2v.2h.2l-.7.8h-.2v-.2h-.2v-.2h-1v-.2h-1v-.2h-1zm-3 .8l-.7-.7v-.2h.2l.2-.2h.2v-.2h.2l.2-.2h.5v-.2h1.2v-.2h1v1h-1.5v.2h-.5l-.2.2h-.4v.2h-.2l-.2.2zm-7.3 1.5l.7-.6.3.2.2.2h.2v.2h1.7v-.2h.5l.2-.2h.2v-.2h.3l.2-.2.2-.2h.3l.2-.3h.2l.2-.3.3-.2v-.2h.3l.7.6-.3.2-.2.2-.3.2-.2.2-.2.2h-.3l-.2.3h-.3l-.2.2h-.2l-.3.2h-.2l-.2.2h-.2l-.2.2h-.3l-.3.2H473l-.4-.2h-.2l-.2-.2-.2-.2-.3-.3zm-1.7-4l.2 1 .3-.7v.2l.2.2v.3l.2.2v.4l.2.2v.2h.2v.4h.2v.4h.2v.2h.2v.2h.2v.2l.2.2-.7.7h-.2v-.2h-.2v-.2h-.2v-.5h-.2v-.2h-.2v-.3l-.2-.2v-.2h-.2v-.4h-.2v-.4l-.2-.2v-.4h-.2l.4-.8zm-.4.7l-.2-.6.6-.2-.4.7zm3-.6l-.2 1-.2-.2H470l-.2-1h2.4zm3-.5l.7.8-.2.2h-.2l-.2.2h-.4l-.2.2h-2.8v-1h2.3l.2-.2h.4v-.2h.2zm.7.8l-.5.4.5-.4zm.6-3l.7.5v.3l-.2.2v.2h-.2v.4h-.2v.8h-.2v.2h-.2v.2l-.2.2-.8-.7h.2v-.4h.2v-.4h.2v-.2l.2-.2v-.4h.2v-.3h.2v-.3zm2.3-2.5l.5.8-.2.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2v.2h-.2v.2l-.2.2-.2.2v.2l-1-.6.2-.2.2-.2v-.2h.2v-.2l.2-.2h.2v-.2l.2-.2.2-.2h.2v-.2l.2-.2h.2v-.2h.2l.2-.2zm2.8-.3v1h-2.3l-.5-.7h.2v-.2h.4l.2-.2h2zm3 .3l-.5.8h-.4v-.2H482v-1h2.5l.2.2h.2l.2.2zm0 0l.3.2-.3-.2zm2.4 2.4l-.8.6-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.2-.2-.2v-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2v-.2l.4-.8h.2l.2.2.2.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2h.2v.2zm1.3 2.3l-.7.8-.2-.2h-.2v-.4h-.2v-.4h-.2v-.4l-.2-.2v-.2l-.2-.2-.2-.3v-.2l.8-.6v.2h.2v.3l.2.2v.2h.2v.4h.2v.4h.2v.4h.2zm-.7.8l-.3-.3.3.3zm3.8-.4v1h-2.4l-.2-.2h-.2l-.2-.2h-.4v-.2h-.2l.7-1v.2h.2v.2h.8l.2.2h1.9zm3 .5l-1-.4.3.8H492l-.2-1h2.4l.5.7zm-.5-.7h.6l-.3.7-.4-.7zm0 .5l.4.2-.5-.2zm0-.5h.6l-.3.7-.4-.7z"/>
+      <path fill="#edb92e" d="M482 211.7c4.4 0 8 3.4 8 7.7s-3.6 7.8-8 7.8-7.6-3.5-7.6-7.8 3.5-7.8 7.7-7.8z"/>
+      <path fill="#21231e" d="M483 212.8l.8-.2c.5-3.7 2-7 4.3-9.6a14.7 14.7 0 00-5 9.8z"/>
+      <use width="1350" height="900" transform="matrix(-1 0 0 1 964.3 0)" xlink:href="#b"/>
+      <path fill="#edb92e" stroke="#21231e" d="M577 293.6c2 .3 3 1.5 3 2.8 0 1.3-1 2.6-3 3a8.7 8.7 0 01-1.6.2c-60.8 5.2-125.7 5.2-186.5 0a8.7 8.7 0 01-1.6-.3c-2-.3-3-1.6-3-3 0-1.2 1-2.4 3-2.7a8.6 8.6 0 011.5-.3c60.7-5.2 125.6-5.2 186.4 0 .6 0 1 .2 1.5.3z"/>
+      <path fill="#21231e" d="M412 298.4h-.2v-.2h-.2v-1h.4v-.2.2-.2h2.3l.7-.2h3l.7-.2h3l.7-.2h3l.8-.2h3.3l.7-.2h3.8l.7-.2h.8v1.2h-2.9l-.7.2H428l-.7.2h-2.7l-.8.2H421l.7.2h3.7l.7.2h2.9l.7.2h3.7l.7.2h1.5v1.2h-3.7l-.7-.2h-3.8l-.7-.2h-2.9l-.7-.2H420l-.6-.2h-2.9l-.7-.2H413l-1-.2v-.2.2zm.2-.7zm46.6-2.6v1.3H453l-.7.2h-6.6l-.7.2h-5l-1 .2h-3.5v-1.2h3.5l.8-.2h5.2l.7-.2h5.9l.7-.2h6.8zm23.3 0v1h-13.7l-.7.2h-8.8v-1h1.4l.8-.2H482zm23.5 0v1.3h-11.1l-.7-.2H482v-1h23.6zm23.3 1v1h-5.2l-.8-.2h-5.2l-.7-.2h-6.5l-.8-.2h-4.3V295h.7l.7.2h7.5l.8.2h5l.8.2h5.1l.6.2h2.3zm23.4 1v.2h.4v1h-.2l-.2.2h-3l-.7.2h-2.2l-.7.2h-3.8l-.8.2h-2.8l-.7.2H534l-.8.2h-3.6l-.8.2v-1.2h2.2l.7-.2h3.7l.8-.2h3.7l.7-.2h1.8-1.4l-.8-.2h-2.7l-.7-.2H533l-.6-.2h-3.6V296h6.5l.7.2h3l.8.2h2.8l.7.2h3l.7.2h3l.7.2h1.5zm0 .7zm-116.7.7h.2l.2.2v.8h-.2v.2h-.2v-1.2zm93.3 1.2h-.2l-.2-.2v-.2h-.2v-.8h.2v-.2h.4v1.2zm-50.3-36.2v-1h3.8v1h-4zm0-1zm-1.2 0h1.2v1h-1.2v-1zm0 1zm-.6-1h.6v1h-.6v-1zm-1 0h1v1h-1v-1zm0 0zm-.8 0h.6v1h-.7v-1zm0 1zm-.5-1h.4v1h-.5v-1zm0 0zm-.8 0h.8v1h-.8v-1zm0 0zm-1.2 0h1.2v1h-1.2v-1zm-1 0h1v1h-1v-1zm0 0zm-.2 0h.2v1h-.2v-1zm-1 0h1v1h-1v-1zm-2.5 1v-1h2.6v1h-2.5zm0-1zm-.3 0h.2v1h-.2v-1zm0 1zm-.2-1h.2v1h-.2v-1zm0 0zm-1 0h1v1h-1v-1zm0 1zm-.5-1h.4v1h-.4v-1zm0 0zm-.4 0h.4v1h-.4v-1zm0 1zm-1.2-1h1.2v1h-1.2v-1zm0 0zm0 0v1-1zm0 1h-.2.2zm-1.2-1h1.2v1l-1.2.2v-1zm-.4 0h.4v1.2h-.4v-1zm-.8.2h.8v1h-.8v-1zm0 0h.3-.2zm-.3 0h.3v1h-.3v-1zm0 1h-.5.5zm-1-1h1v1h-1v-1zm-1 0h1v1h-1v-1zm0 0zm-.2 0v1-1zm0 1zm-1-1h1v1h-1v-1zm-.6 0h.5v1h-.4v-1zm0 0zm0 0v1-1zm0 1zm-4.2.2v-1h3.5v-.2h.4v1h-2.7l-.2.2h-.8zm0-1zm-.6 0h.5v1h-.6v-1zm0 0zm-1.7 0h1.6v1h-1.7v-1zm0 1zm-.2-1h.3v1h-.2v-1zm0 0zm-1.3 0h1.4v1h-1.3v-1zm-1 0h1v1h-1v-1zm-.6 0h.7v1h-.6v-1zm0 0zm0 0v1.2-1zm0 1.2zm-1.6-1h1.5v1h-1.5v-1zm0 1zm0-1v1-1zm0 0zm-1.2 0h1.2v1h-1.2v-1zm0 0zm0 0v1-1zm0 1zm-1.2-1h1l.2 1H444v-1zm-.8 0h.8v1h-.7v-1zm0 0zm-1.6.2h1.6v1h-1.5v-1zm0 1zm0-1v1-1zm0 0zm-6.2 1.3v-1h1.7l.2-.2h3.9v1H436l-.2.2zm0 0zm-.4-1h.3v1h-.2v-1zm0 0zm-9 1.4v-1h1.3l.3-.2h3.2l.3-.2h3.5v1h-5.1l-.3.2H426zm0 0zm-.3-1h.2v1h-.3v-1zm0 0zm-.5 0h.5v1h-.4v-1zm-18.2 2.2v-1h1.8l.5-.2h1.7l.5-.2h2.4l.6-.2h2.6l.6-.2h2.2l.6-.2h2.8l.6-.2h1.2v1h-2.1l-.6.2h-2.7l-.6.2h-2.3l-.6.2h-2.8l-.6.2h-2.2l-.5.2H408l-.6.2h-.6zm0 0zm-.3-1h.3v1h-.2v-1zm0 0zm0 0v1-1zm0 1zm-26.3 2.4v-1h.7l1-.2h.8l.8-.2h1.6l.8-.2h1l.7-.2h1.6l.8-.2h1.8l.8-.2h.8l1-.2h1.7l.7-.2h1.7l.8-.2h1.8l.7-.2h1.6l1-.2h1.5l1-.2v1H405l-.7.2h-1.7l-.8.2H400l-.7.2h-.8l-1 .2H396l-.8.2h-1.7l-.8.2H391l-.8.2h-.8l-.8.2H387l-1 .2h-.7l-.8.2H383l-1 .2h-.8l-.8.2zm0 0zm0-7v1h-.5l-.5.2h-.5l-.3.2-.4.2-.3.2h-.2l-.3.3-.2.2-.3.3v.5l-.2.2v1.1h.2v.3l.2.2.2.2.3.3.3.2h.2l.3.2h.3l.4.2h1v1h-1.6l-.4-.2-.4-.2-.3-.2-.3-.2-.3-.2-.4-.2-.2-.3-.2-.2v-.3l-.3-.3-.2-.3v-1.6l.2-.3.2-.3.2-.4.2-.3.2-.3.4-.3.3-.2.4-.2.3-.2h.4l.5-.2h.6l.5-.2zm0 1zm26.3-3.3v1H405l-.7.2h-1.7l-.8.2H400l-.7.2H396l-.8.2h-1l-.7.2H392l-1 .2h-1.6l-.8.2h-.8l-.8.2h-1.7l-.8.2h-.8l-.8.2H381l-.8.2v-1h1.7l.8-.2h.8l.8-.2h.8l.8-.2h1.7l.8-.2h1.6l1-.2h.8l.8-.2h1.8l.7-.2h1.7l1-.2h.7l.8-.2h1.8l.7-.2h1.6l1-.2h2.5zm0 1zm0 0v-1 1zm0-1zm37-2.2v1.2H439l-1 .2h-2.3l-1.3.2H431l-1.2.2h-2.2l-1.3.2H424l-1.2.2h-2.3l-1 .2H417l-1.2.2h-1.2l-1 .2h-2.3l-1.3.2h-1l-1.2.2h-1.2v-1h2.2l1.2-.2h1l1.2-.2h2.2l1.3-.2h1l1.2-.2h2.3l1-.2h2.3l1.3-.2h2.4l1.2-.2h2.3l1-.2h3.5l1.2-.2h3.5l1-.2h2.5zm1 1l-1 .2v-1h1v1zm0 0zm.2 0h-.3v-1l.2 1zm-.2-1zm.4 1h-.3l-.2-1h.4v1zm1.2 0h-1.2v-1h1.2v1zm0 0zm0 0v-1 1zm0-1zm15.4-.4v1h-5.5l-.5.2h-6.5l-.4.2h-2.6v-1h5l.5-.2h7.7l.5-.2h1.8zm.8 1h-.8v-1h.8v1zm0 0zm0 0v-1 1zm0-1zm1.4 1h-1.4v-1h1.4v1zm0 0zm.2 0h-.2v-1h.2v1zm0 0h-.2.2zm0 0v-1 1zm0-1zm1.2 1h-1.2v-1h1.2v1zm.5 0h-.6v-1h.4v1zm-.2-1zm.8 1h-.7l-.2-1h.8v1zm1 0h-1v-1h1v1zm0 0zm.2 0h-.3v-1h.2v1zm0-1zm.4 1h-.4v-1h.4v1zm3-1l.2 1H468v-1h3.3zm1.2 1h-1v-1l1-.2v1zm0 0v-1.2 1zm0-1.2zm1.3 1h-1.2v-1h1.2v1zm3.5-1v1h-3.5v-1h3.5zm0 0zm0 1v-1 1zm0 0zm1.3 0h-1.2v-1h1.2v1zm3.6-1v1h-3.5v-1h3.7zm3.8 0v1H482v-1h3.8zm1 1h-1v-1h1.2v1zm.2 0zm0 0v-1 1zm0-1zm3.6 0v1H487v-1h4zm1 1h-1v-1h1.2v1zm.2-1zm0 1v-1 1zm1 0h-1v-1h1v1zm3.3-1v1H493v-1h3zm.5 1h-.4v-1h.5v1zm0-1zm.3 1h-.3v-1h.3v1zm0 0zm1 0h-1v-1h1v1zm.6 0h-.7v-1h.8v1zm0-1zm.5 1.2h-.6v-1h.5v1zm1 0h-1v-1h1v1zm0-1zm0 1v-1 1zm0 0h.3-.2zm.3 0h-.2v-1h.3v1zm0 0zm1.3 0h-1.3v-1h1.4v1zm0-1zm0 1v-1 1zm0 0h.2zm1 0h-1v-1h1v1zm15.2-.6v1h-6l-.4-.2H504l-.6-.2h-.9v-1h6l.4.2h6.6l.4.2h1.7zm0 0zm0 1v-1 1zm0 0zm1.3 0h-1v-1h1v1zm.4 0h-.3v-1h.5v1zm0-1zm.2 1h-.2v-1h.2v1zm0 0zm1 .2h-1v-1h1v1zm37 1v1h-2.3l-1.2-.2h-1l-1.2-.2h-2.2l-1.3-.2H546l-1-.2h-1.3l-1-.2h-2.3l-1.3-.2H537l-1-.2h-4l-1-.2h-2.6l-1-.2H524l-1-.2h-2.4v-1h4.7l1.2.2h3.3l1.3.2h2.3l1.3.2h2.3l1 .2h2.4l1 .2h2.3l1.3.2h2.3l1 .2h2.3l1.2.2h1.2l1 .2h1.3l1 .2h1.3zm0 0zm0 1v-1 1zm0 0zm26.4 1.4v1H582l-.8-.2h-.8l-.8-.2H578l-.7-.2h-.8l-.8-.2H574l-.8-.2h-.8l-.8-.2h-1.8l-.7-.2h-1.5l-.8-.2H565l-.8-.2h-1.7l-.8-.2H560l-.8-.2h-1.6v-1h3.5l.8.2h1.6l1 .2h1.7l.7.2h1.7l.8.2h1.8l.7.2h.8l.8.2h1.8l.8.2h.8l.8.2h1.8l.7.2h.7l.8.2h1.8l.7.2zm0 1zm0 6v-1h1.6l.3-.2h.3l.3-.2.2-.2.2-.2h.2v-.3l.2-.2v-.2h.2v-1.4l-.2-.3v-.2h-.3l-.2-.3-.3-.2h-.2l-.3-.3-.4-.2h-.4l-.4-.2h-.4l-.5-.2v-1h.5l.6.2h.5l.5.3.4.3.4.2.3.2.4.3.3.3.2.3v.3l.3.2v.3l.2.3v1.3l-.3.3v.3l-.3.3-.3.4-.3.2-.3.2-.2.2-.3.2-.4.2h-.3l-.4.2H584zm0 0zm-26.5-2.4v-1h1.8l.8.2h1.8l.8.2h1.8l.7.2h1.7l1 .2h.7l.8.2h1.8l.7.2h1.6l.8.2h1l.8.2h1.6l.8.2h1l.7.2h1.5l.8.2h1l.7.2v1h-1l-.8-.2h-1.6l-.8-.2h-.8l-.8-.2h-1.7l-.8-.2h-.8l-1-.2h-1.6l-.8-.2h-.8l-1-.2h-1.4l-.8-.2H566l-.7-.2h-1.6l-1-.2H561l-1-.2h-1.6l-.8-.2zm0 0zm0-1v1-1zm0 0zm-.2 0h.3v1h-.4v-1zm0 1zM539 265v-1h2.9l.5.2h3l.5.2h2.3l.6.2h2.2l.6.2h2.3l.5.2h2.4l.5.2v1h-1.7l-.5-.2h-2.3l-.6-.2H550l-.7-.2H547l-.6-.2h-2.9l-.6-.2H540l-.6-.2h-.6zm-.4-1h.5v1h-.4v-1zm0 0zm-.2 0h.2v1h-.2v-1zm0 1zm-9.2-.5v-1h4l.3.2h3.2l.3.2h1.3v1h-1.6l-.3-.2H533l-.4-.2h-3.3zm0-1zm-.3 0h.2v1h-.3v-1zm0 1zm-6.4-.3v-1h4.5l.2.2h1.7v1h-4.4l-.2-.2h-1.7zm0-1zm0 0v1-1zm0 1zm-1.5-1h1.7v1H521v-1zm0 0zm-.7 0h.8v1h-.7v-1zm-1-.2h1v1H519l.2-1zm-.2 1zm0-1h.2v1-1zm0 0zm-1 0h1v1h-1v-1zm0 0zm-.2 0v1-1zm0 1zm-1.4-1h1.4v1h-1.4v-1zm0 1zm-.2-1h.2v1h-.2v-1zm0 0zm-.6 0h.6v1h-.7v-1zm-1 0h1v1h-1v-1zm-1.4-.2h1.4v1h-1.4v-1zm0 0zm-.2 0h.2v1h-.2v-1zm0 1zm-1.6-1h1.6v1h-1.6v-1zm0 0zm-.6 0h.6v1h-.6v-1zm-4.2 1v-1.2h3.3l.2.2h.8v1h-4.3zm0 0zm0-1.2v1-1zm0 0zm-.5 0h.6v1h-.5v-1zm-1 0h1v1h-1v-1zm0 1zm0-1v1-1zm0 0zm-1.3 0h1.2v1h-1.3v-1zm-1 0h1v1h-1v-1zm0 1h.6-.6zm-.2-1h.3v1h-.3v-1zm0 0h-.3.3zm-.8 0h.8v1h-.8v-1zm-.4 0h.4v1h-.4v-1zm-1.2 0h1.3v1H500v-1zm0 1h.2zm0-1v1-1zm0 0zm-1 0h1v1h-1v-1zm0 1zm-.5-1h.4v1h-.6v-1zm0 0zm-.4 0h.5v1h-.4v-1zm0 1zm-1-1h1v1h-1v-1zm0 0zm-.2 0h.2v1h-.2v-1zm0 1zm-.3-1h.3v1h-.3v-1zm0 0zm-2.6.8v-1h2.3v1H494zm-1-1h1v1h-1v-1zm-.2 0h.2v1h-.2v-1zm0 0zm-1 0h1v1h-1v-1zm-1.2 0h1.2v1h-1.3v-1zm0 0zm-.8 0h.8v1h-.8v-1zm0 0zm-.4 0h.4v1h-.5v-1zm0 1zm-.7-1h.7v1h-.7v-1zm0 0zm-1 0h1v1h-1v-1zm-.7 0h.6v1h-.6v-1zm0 1zm-1.2-1h1.2v1H486v-1zm0 0zm-3.7 1v-1h3.9v1h-4.1zm.4 1.8L460 276.6l-.4-1 22.7-11.3h.4v1zm-.5-1h.4-.5zm22.7 12.4l-23-11.4.4-1 22.7 11.5v1h-.3zm.4-1l1 .6-1 .4v-1zm-23 11.6l22.7-11.5.4 1-22.6 11.4h-.5v-.8zm.4 1h-.3.4zM460 275.7l22.8 11.5-.5 1-22.8-11.6v-1h.4zm-.4 1l-1-.5 1-.5v1z"/>
+      <path fill="#0c4076" d="M482 269c5.8 0 10.4 3.2 10.4 7s-4.6 7-10.3 7-10-3.2-10-7 4.5-7 10-7z"/>
+      <path fill="#21231e" d="M493 276h-1v-.3l-.2-.3v-.5l-.2-.3v-.3l-.3-.3-.2-.4v-.3l-.3-.2-.2-.2-.2-.3-.3-.2-.3-.3-.3-.2-.3-.2-.2-.2-.4-.2-.4-.2-.3-.2-.4-.2h-.5l-.4-.3h-.4l-.5-.2h-.8l-.5-.2h-1.9v-1.2h1.7l.6.2h.5l.5.2h.5l.5.2h.4l.5.3.4.2.5.2h.5l.4.3.3.2.4.2.3.3.4.3.3.2.3.3.3.3.2.4.3.3.2.4.2.4.2.4v.3l.2.5v.4l.2.2v.8zm-11 7.4v-1h1.6l.5-.2h1.1l.5-.2h.5l.4-.3h.4l.5-.3h.4l.3-.3h.4l.4-.3.3-.2.4-.3.3-.2.3-.2.3-.3.2-.3.2-.2.3-.3v-.3l.3-.3h.2v-.4l.2-.3v-.7l.2-.3v-.3h1v.4l-.2.4v.4l-.2.4v.3l-.2.3-.2.3-.2.4-.2.3-.3.3-.2.3-.3.2-.3.3-.3.3-.4.3-.3.3-.4.2-.4.3-.5.2-.4.2-.4.2h-.4l-.5.3h-.4l-.5.3h-.5l-.5.2h-1.1l-.5.2H482zm-10.6-7.4h1v1l.2.3v.3l.2.2.2.3v.4l.3.3.2.3.3.2.2.3.3.3.3.2.3.2.2.3.3.2.4.2h.2l.4.3h.4l.4.3h.5l.3.3h.9l.5.2h1.5l.6.2h.5v1h-1.9l-.5-.2h-.5l-.5-.2-.5-.2h-.4l-.5-.3h-.4l-.4-.3-.4-.2-.4-.2-.4-.3-.4-.2-.3-.2-.4-.2-.4-.3-.3-.3-.3-.3-.2-.4-.3-.3-.2-.3-.2-.4v-.3l-.2-.4-.2-.4v-.8l-.2-.4v-.4zm10.7-7.4v1h-1.3l-.5.2h-.3l-.5.2h-.5l-.4.2h-.4l-.6.3h-.4l-.4.3-.4.2-.3.2-.5.2-.3.2-.3.2-.4.2-.3.3-.3.2-.2.3-.3.3-.2.3-.2.3v.3l-.2.2v.3l-.2.3v.7l-.2.3v.3h-1V275l.2-.5.2-.4v-.2l.3-.4.3-.3.2-.3.3-.3.2-.3.3-.2.3-.3.3-.2.3-.3.3-.3.4-.2.4-.2.4-.2h.4l.4-.3.5-.2.5-.2h.5l.5-.2h1l.5-.2h1.1l.6-.2h.5z"/>
+      <path fill="#edb92e" d="M482 211.7c4.4 0 8 3.4 8 7.7s-3.6 7.8-8 7.8-7.6-3.5-7.6-7.8 3.5-7.8 7.7-7.8z"/>
+      <path fill="#21231e" d="M490.4 219.4h-1v-1l-.2-.3v-.4l-.2-.3v-.4l-.2-.4v-.3l-.3-.3-.2-.3-.2-.3v-.3l-.3-.2-.2-.3-.2-.2-.3-.2-.3-.2-.2-.2-.3-.2-.3-.2-.4-.2h-.3l-.3-.3h-.4l-.3-.2h-.4l-.4-.2H482V211l.6.2h1.2l.4.2h.4l.4.2.3.2.4.2h.4l.4.3.3.3.4.2.4.2.3.3.3.3.2.3.3.2.2.3.3.3.2.3.2.5.2.3v.4l.3.4v.8l.2.4v.8l.2.4v.4zm-8.3 8.3v-1h1.5l.3-.2h.3l.3-.2.4-.2h.3l.3-.2h.3l.2-.3.3-.2.2-.2.3-.2.3-.2.2-.3.2-.2.2-.2v-.3l.3-.3.2-.3.2-.4v-.3l.2-.4v-.7l.2-.4v-.8l.2-.4v-.4h1v1.2l-.2.4v.5l-.2.4v.3l-.3.4v.3l-.3.4-.2.3-.2.4-.3.4-.2.3-.3.3-.2.3-.3.3-.3.2-.3.3-.3.3-.3.2-.3.2-.3.2h-.4l-.3.2-.4.2h-.4l-.4.2H482zm-8-8.3h1v1.8l.2.3.2.3v.3l.2.3.2.3.2.2.2.3.2.3.2.3.2.3.2.3.3.2.2.3.3.3.3.2.4.2h.3l.3.3h.3l.4.3h.3l.3.2h.7l.4.2h.7v1h-1.6l-.4-.2h-.3l-.4-.3h-.4l-.4-.3-.4-.3-.3-.2-.5-.2-.3-.2-.3-.2-.4-.2-.3-.3-.3-.3-.2-.3-.3-.3-.2-.3-.2-.3v-.3l-.3-.4v-.3l-.3-.4v-.4l-.2-.5v-.4l-.2-.3v-1.4zm8-8.3v1.2h-1.3l-.4.2h-.3l-.3.2h-.4l-.3.3h-.3l-.3.2-.3.2-.2.2-.3.2-.2.3-.3.3-.2.2-.2.3-.2.3-.2.4-.2.3-.2.3-.2.3v.3l-.2.3-.2.3v.7l-.2.3v1.1h-1v-1.6l.2-.4v-.4l.2-.4.2-.4v-.4l.3-.3v-.4l.3-.2.2-.3.3-.3.2-.3.3-.4.3-.3.3-.3.2-.2.3-.2.4-.3.2-.2h.4l.3-.2.3-.2h.4l.4-.2h.5l.4-.2h1.1z"/>
+      <path fill="#edb92e" d="M482 213.7c3.3 0 5.8 2.6 5.8 5.7 0 3.2-2.5 5.8-5.7 5.8-3 0-5.5-2.6-5.5-5.8 0-3 2.5-5.7 5.6-5.7z"/>
+      <path fill="#21231e" d="M488.3 219.4h-1V218h-.2v-.7l-.2-.2v-.2l-.2-.3-.2-.2v-.2l-.3-.2-.2-.2-.2-.2-.2-.2h-.2l-.2-.3h-.4l-.2-.3h-.2l-.3-.2h-.6l-.2-.2H482v-1h1.8l.3.2h.3l.2.2h.3l.3.3h.4l.2.3h.2l.3.3.3.2.2.2.2.2.2.3v.2l.3.3v.2l.3.3v.2l.2.3.2.3v.6l.2.2v1.3zm-6.2 6.3v-1h1.1l.2-.2h.3l.2-.2h.2l.2-.2h.4l.2-.2.2-.2h.2l.2-.3.2-.2h.2v-.2l.3-.2v-.2l.3-.3.2-.3v-.2l.2-.3v-.2l.2-.3v-1.3h1v2l-.2.3-.2.3-.2.4-.2.3v.2l-.3.2v.2l-.3.2-.2.3h-.2l-.2.3h-.2l-.2.3-.3.2h-.2l-.2.3-.3.2h-.2l-.3.2h-.3l-.3.2h-1.4zm-6-6.3h1v1.3l.2.3v.2l.2.3v.2l.2.2.2.4.2.2v.2h.3l.2.3.2.3v.2h.3l.2.3h.3l.2.2h.2v.2h.4l.2.2h.2l.3.2h.9v1h-1.5l-.3-.2h-.3l-.3-.2h-.2l-.3-.3-.3-.2-.3-.2-.3-.2h-.2l-.2-.3h-.2l-.2-.4-.2-.2-.2-.2-.2-.3-.2-.3v-.3l-.2-.3h-.2v-.4l-.2-.3v-.6l-.2-.3v-.9zm6-6.2v1H481l-.2.2h-.4l-.3.2-.3.3h-.5l-.2.3h-.2v.3l-.3.2h-.2l-.2.3v.3l-.2.2v.2l-.2.3v.2l-.2.2v.2l-.2.3v.4l-.2.2v.7h-1V218l.2-.4v-.3l.2-.3.2-.3v-.2l.2-.3.2-.2.2-.3.2-.2.2-.3.2-.2.2-.2.2-.2.2-.2h.3l.2-.3h.2l.3-.2h.2l.3-.2h.3l.3-.2h.5l.3-.2h.6z"/>
+      <path fill="#0c4076" d="M482 215.8c2 0 3.7 1.6 3.7 3.6S484 223 482 223c-1.8 0-3.4-1.6-3.4-3.6s1.6-3.6 3.5-3.6z"/>
+      <path fill="#21231e" d="M486.2 219.4h-1v-.8h-.2v-.3l-.2-.2v-.2l-.2-.2-.2-.2-.2-.3h-.2l-.3-.2h-.2l-.2-.2h-.2v-.2H482v-1h1.4v.2h.5v.2h.3v.2h.3v.3h.3v.2l.2.2.2.3.2.3v.2l.2.2.2.3v.4l.2.2v.6zm-4 4.2v-1h.6v-.2h.5l.3-.2h.2l.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.4h.2v-1h1v1l-.2.2v.2l-.2.2v.2l-.2.2-.2.3-.2.2-.2.2-.3.2-.3.3h-.3l-.3.2-.3.2h-1l-.3.2zm-4-4.2h1v1.3l.2.2v.2l.2.2.2.2.2.2.2.2.2.2h.2v.2h.4l.2.2h.8v1.2h-.7l-.2-.2h-.3v-.2h-.5l-.2-.2-.3-.3h-.2v-.2l-.2-.2h-.2v-.2l-.2-.3-.2-.3v-.2l-.2-.2-.2-.3v-1.4zm4-4v1h-1l-.2.2h-.2l-.2.2h-.2v.2h-.2l-.2.3-.2.2-.2.2-.2.3v.4h-.2v1h-1V218l.2-.2.2-.3v-.2l.2-.2.2-.2.3-.3.2-.2.2-.2h.2l.2-.2h.2l.2-.2h.3l.3-.2h.9z"/>
+    </g>
+    <path fill="#c6363c" d="M135.8 192.6v144.7c0 26 10 49.4 26.2 66.5a87 87 0 0063 27.6c24.8 0 47-10.6 63.3-27.6a96.3 96.3 0 0026.2-66.5V192.6H135.8z"/>
+    <path fill="#fff" d="M135 192v145.3l.2 2.5v2.4l.2 2.4.2 2.4.3 2.4.2 2.3.3 2.3.5 2.4.5 2.3.5 2.2.6 2.2.6 2.2.7 2.2.6 2.2.8 2.2.8 2 1 2.2.8 2 1 2.2 1 2 1 2 1.2 2 1 2 1.3 1.8 1.3 2 1.2 1.7 1.4 1.7 1.3 1.8 1.4 1.7 1.6 1.7 1.4 1.6 1.5 1.6 1-1-1.5-1.5-1.5-1.6-1.4-1.6-1.3-1.7-1.3-1.8-1.3-1.8-1.2-2-1.2-1.7-1.2-2-1-1.8-1.2-2-1-2-1-2-1-2-1-2-.8-2-.8-2.2-.8-2-.7-2.3-.6-2-.6-2.4-.6-2.2-.5-2.2-.5-2.3-.4-2.2-.4-2.3-.3-2.3v-2l-.3-2.5-.2-2.4V193.4h177.4v144l-.2 2.4v2.4l-.2 2.5-.2 2.3-.2 2.4-.3 2.3-.5 2.3-.4 2.3-.4 2.4-.5 2.2-.5 2.2-.6 2.3-.8 2.2-.7 2.2-.8 2-.8 2.2-1 2-1 2.2-.8 2-1 2-1 2-1.2 2-1 1.8-1.3 2-1.2 1.7-1.3 2-1.3 1.6-1.4 1.7-1.4 1.7-1.4 1.7-1.5 1.7-1.5 1.6-1.5 1.6-1.6 1.4-1.6 1.5-1.5 1.4-1.6 1.4-1.8 1.3-1.8 1.5-1.7 1.3-1.8 1.2-2 1.2-1.8 1-1.8 1.2-2 1-1.8 1-2 1-2 1-2 .8-2 1-2 .6-2 .7-2.2.7-2 .6-2.3.5-2 .5-2.2.5-2.2.4-2.2.3-2.2.3-2.2.2h-2.3l-2.3.2H225v1.3h4.8l2.3-.3 2.3-.2 2.3-.3 2.2-.3 2.2-.5 2.2-.4 2.2-.4 2.2-.6 2.2-.6 2-.7 2.2-.7 2-.8 2-.8 2-1 2-.8 2-1 2-1 2-1 2-1.2 1.8-1 1.8-1.4 1.8-1.2 1.8-1.3 1.7-1.4 1.7-1.2 1.7-1.5 1.6-1.4 1.6-1.7 1.6-1.5 1.5-1.6 1.5-1.6 1.5-1.7 1.5-1.8 1.4-1.7 1.3-1.8 1.2-1.8 1.3-2 1.2-1.8 1.2-2 1-2 1.2-1.8 1-2 1-2 1-2 1-2.2 1-2 .7-2.2.7-2.2.7-2.2.7-2.2.7-2.2.6-2.3.5-2.3.5-2.4.4-2.3.4-2.3.4-2.3.3-2.4.2-2.4V192z"/>
+    <g fill="#fff" stroke="#21231e" stroke-width=".5">
+      <path d="M226 424c.7-.2 2 0 3-1 1.4-1 .8-5 .7-7.7-.6-13.5-1-36.3-1.8-68.3h-5.6c-.7 32-1.2 54.8-1.8 68.3 0 2.6-.7 6.8.7 7.8 1 1 2.3.8 3 1h1.7z"/>
+      <path d="M234.4 423.5c-.8 0-2 .2-3-.5-1.5-1-1.6-5.2-1.7-7.8-.7-13.5-2-36.2-4-68 1-.3 1.8-.3 2.6-.3l.4-.2c5 31.6 7 54 10.4 67.5.6 1.8 1.6 6.5 0 8-1 1-2.2 1-3 1l-1.6.2z"/>
+      <path d="M244.4 422c-.8 0-2 .5-3.2 0-1.5-1-1.4-5.2-2-7.7-3.5-13.5-5.5-36-10.6-67.5 1-.3 2-.4 2.7-.4 8.2 30.6 10.6 52.2 17 65.6.5 2 2 6.8.6 8.5-1 1-2.3 1-3 1.3l-1.6.3z"/>
+      <path d="M254.4 419.2c-.8 0-2 1-3.3.4-1.4-.6-1.7-5.2-2.8-7.6-6.3-13.4-8.7-35.2-17-66 1.2-.6 2-.7 2.7-.8.7-.3.5-.5 1.6-.7 9.5 30.6 12.6 51.8 21.6 65 1.4 2 2.5 6.4 1.5 7.7-.7 1-2 1.3-2.8 1.6l-1.6.4zm-38.5 4.3c.7 0 2 .2 3-.5 1.4-1 1.5-5.2 1.6-7.8.7-13.5 2-36.2 4-68-1-.3-1.8-.3-2.6-.3l-.4-.2c-5 31.6-7 54-10.4 67.5-.5 1.8-1.6 6.5 0 8 1 1 2.3 1 3 1l1.7.2z"/>
+      <path d="M206 422c.7 0 2 .5 3 0 1.6-1 1.5-5.2 2.2-7.7 3.4-13.5 5.4-36 10.4-67.5-1-.3-2-.4-2.6-.4h-.2c-8 30.6-10.5 52.2-16.7 65.6-.5 2-2 6.8-.6 8.5 1 1 2.2 1 3 1.3l1.5.3z"/>
+      <path d="M196 419.2c.7 0 2 1 3.2.4 1.5-.6 1.8-5.2 3-7.6 6.2-13.4 8.6-35.2 16.8-66-1-.6-2-.7-2.7-.8-.7-.3-.5-.5-1.7-.7-9.5 30.6-12.5 51.8-21.5 65-1.3 2-2.4 6.4-1.4 7.7.7 1 2 1.3 2.7 1.6l1.6.4zm53-23c-.6 0-1.7.5-2.8 0-1.5-.8-2.5-5-3.3-7.5-6.4-12.5-12.2-34.8-21.8-65.8 1-.5 1.7-.6 2.4-.7.6-.2 1.3-.5 2.3-.6 10.2 30.7 14.8 53 24.8 65 1.7 2 3 6.5 2 7.8-.5 1-1.7 1-2.3 1.3l-1.4.4z"/>
+      <path d="M241 397.8c-.7 0-2 .3-3-.3-1.3-.8-1.8-5-2.3-7.6-2.6-13.5-7.3-36-14-67.4a8 8 0 012.4-.4c.8-.2 1.5-.4 2.5-.4 8 31.3 9.8 54.7 17.3 66.7 1.3 2.2 2 6.7 1.2 8-.7.8-2 .8-2.6 1l-1.4.3z"/>
+      <path d="M232.7 398.7c-.7 0-1.8.2-2.8-.5-1.4-1-1.4-5-1.6-7.8-1-13.5-3.2-36.2-6.2-68 1-.3 1.7-.3 2.4-.2.7-.2 1.4-.3 2.5-.3 4.4 31.7 7 54.7 9.6 67.8.5 2.5 1.3 6.7.3 7.8-1 1-2 .8-2.8 1h-1.5z"/>
+      <path d="M201.2 396.2c.7 0 1.8.5 3 0 1.4-.8 2.4-5 3.2-7.5 6.3-12.5 12-34.8 21.6-65.8-1-.5-1.6-.6-2.3-.7-.6-.2-1.3-.5-2.4-.6-10.2 30.7-14.8 53-24.8 65-1.7 2-3 6.5-2 7.8.5 1 1.7 1 2.3 1.3l1.4.4z"/>
+      <path d="M209.3 397.8c.7 0 1.8.3 3-.3 1.3-.8 1.8-5 2.3-7.6 2.6-13.5 7.3-36 14-67.4a8 8 0 00-2.4-.4c-.7-.2-1.4-.4-2.4-.4-8 31.3-9.8 54.7-17.3 66.7-1.4 2.2-2 6.7-1.2 8 .7.8 2 .8 2.6 1l1.3.3z"/>
+      <path d="M217.6 398.7c.7 0 1.8.2 2.8-.5 1.3-1 1.3-5 1.5-7.8 1-13.5 3-36.2 6-68-1-.3-1.6-.3-2.3-.2-.7-.2-1.4-.3-2.5-.3-4.3 31.7-6.8 54.7-9.5 67.8-.5 2.5-1.3 6.7-.3 7.8.8 1 2 .8 2.7 1h1.6z"/>
+      <path d="M226 399c.6 0 1.8 0 2.7-.8 1-1 .7-5.2.6-7.8-.6-13.6-1-36.3-1.7-68.3-1 0-1.8 0-2.5.2-.5-.2-1.3-.2-2.3 0-.6 32-1 54.6-1.7 68.2 0 2.6-.5 6.8.6 7.8 1 .8 2 .7 2.8.8h1.5z"/>
+      <path d="M243.5 377.6c-.6 0-1.4.5-2.2 0-1.2-.8-2-5-2.5-7.5-5-12.4-9.4-34.7-16.6-65.7.7-.4 1.2-.5 1.8-.6.4-.2 1-.5 1.8-.6 7.8 30.8 11.3 53 19 65.2 1.3 2 2.2 6.4 1.6 7.7-.4.8-1.4 1-1.8 1.2l-1 .4z"/>
+      <path d="M237.3 379.2c-.6 0-1.4.3-2.2-.3-1-1-1.4-5-1.8-7.7-2-13.4-5.6-35.8-10.7-67.3.7-.3 1.3-.4 2-.3.4-.3 1-.5 1.7-.5 6 31.3 7.5 54.7 13.2 66.8 1 2 1.6 6.6 1 7.8-.6 1-1.5 1-2 1l-1 .4z"/>
+      <path d="M231 380c-.6 0-1.5.3-2.2-.4-1-1-1-5-1.2-7.8-.8-13.5-2.4-36.2-4.7-68 .6-.3 1.2-.3 1.7-.2a4 4 0 012-.2c3.2 31.7 5 54.7 7.2 67.8.3 2.6 1 6.7 0 7.8-.5 1-1.4.8-2 1h-1z"/>
+      <path d="M206.8 377.6c.5 0 1.4.5 2.2 0 1.2-.8 2-5 2.5-7.5 5-12.4 9.3-34.7 16.6-65.7-.6-.4-1-.5-1.7-.6-.5-.2-1-.5-1.8-.6-7.8 30.8-11.3 53-19 65.2-1.3 2-2.2 6.4-1.6 7.7.3.8 1.2 1 1.7 1.2l1 .4z"/>
+      <path d="M213 379.2c.6 0 1.4.3 2.2-.3 1-1 1.5-5 2-7.7a2735 2735 0 0110.6-67.3c-.8-.3-1.3-.4-2-.3-.4-.3-1-.5-1.7-.5-6 31.3-7.4 54.7-13 66.8-1.2 2-1.8 6.6-1 7.8.5 1 1.4 1 2 1l1 .4z"/>
+      <path d="M219.3 380c.6 0 1.5.3 2.2-.4 1-1 1-5 1.2-7.8.7-13.5 2.4-36.2 4.7-68-.7-.3-1.3-.3-2-.2a3 3 0 00-1.7-.2c-3.3 31.7-5.2 54.7-7.3 67.8-.4 2.6-1 6.7-.2 7.8.6 1 1.5.8 2 1h1z"/>
+      <path d="M225.7 380.4c.5 0 1.4 0 2-.8 1-1 .7-5.2.6-7.8-.4-13.5-.8-36.3-1.3-68.3h-3.7c-.5 32-1 54.8-1.3 68.3 0 2.6-.4 6.8.5 7.8.6.8 1.6.7 2 .8h1.2z"/>
+      <path d="M221.3 330.2v7.4l-5.8 1.2c0 2.6 6.4 29.6 9.6 29.6 3.4 0 9.8-27 9.8-29.6l-5.7-1.2a646 646 0 000-7.4c-1.2 1-2.5 2.7-4 4.3a27.4 27.4 0 00-3.7-4.3z"/>
+    </g>
+    <g transform="translate(-32 32) scale(.53333)">
+      <g id="d">
+        <path fill="#edb92e" stroke="#21231e" d="M412 584.5c-3 .2-7 2-18.5 12-5 10.2-10 20.5-17 29.4-2.4 1.4-4.2 2.5-6 3.2a84 84 0 01-17-.5c-4.4-4-11.3-1.2-9 3.2-1.8 1.6 2.2 7.8 5.3 5.2 3-2.4 13-.2 16.4-1.4-1.3 3-10.4 5-16.8 5.5-5.8.2-5.4 6-3 10.5 2.7 1.8.5-.4 1.4.8 2.6 4 8.2 3.4 8.4-.4.2-4 13.8-9 15.8-12-2.5 6-8.2 11.5-11 17.3-3 3-5 3.7-1 10 4.4-.6 4.6-1.7 7.3.8 6-.6 7-2.4 6-7.2-1-5 3.2-14 4.6-16.6 1.2-2.4 1.5-4.8 2.8-6.3 2.2-2.5 12.6-7.7 15.2-6.3 5 2.7 8.7 1 9.3-3.7-1.6-1.2-.4-8-3.8-8.2-2.8-.3-4.4.6-7 2.7-4 3.2-6 5-7.4 4.6-3-.7 5.8-5 13.8-15.6 11-14.5 11.8-22 11.3-27z"/>
+        <use width="1350" height="900" transform="matrix(-1 0 0 1 801.6 0)" xlink:href="#c"/>
+        <path fill="#edb92e" stroke="#21231e" d="M345.2 634.5c-4-2.3-6.3-2.2-8-.5-.7 1-1.8.5-1.2-1 2.7-6.3 7-7 10.7-4.2l2.8 2.7c-.6 1-3.8 2.3-4.3 3zm57.4-5.6c4.3-3 8.3-3.6 10.5-2 1.3 1 2.5.3 1.4-1.2-4.4-6.2-9.6-6.5-13.5-3-1.2 1-2 2-2.8 3 1.3 1.6 4.3 3.2 4.4 3zM369 664.4c.2-.2-1-5.4-2.6-7-1.4 1-3 2-4.3 3.5-4.2 4.5-4 11 2.5 16.7 1.6 1.5 2.4 0 1.7-1.7-1-2.7.3-6.3 3-11.5zM352.6 651c-4 1.6-5.4 3.7-5.2 6.4 0 1.5-1 2-1.5.3-4.8-11.2.2-13.3 7.5-13 .4 2-.7 6.2-.8 6.2z"/>
+        <path fill="#21231e" d="M384 621.3l1 .6h-.2v1.8h.2v.4h.2v.2h.2l.2.3.3.2v.2h.4l.2.3h.2l-.6 1h-.2l-.3-.2h-.2l-.2-.2-.2-.2-.3-.3-.3-.3v-.2h-.2v-.3l-.2-.2v-.2h-.2v-.2l-.2-.2V622l.2-.3v-.2zm6.5.8l-.8 1-.2-.2-.3-.2-.2-.2-.2-.2h-.3l-.2-.3-.2-.3-.3-.2-.2-.2-.3-.2h-.7l-.2-.2h-.7v.2h-.2l-.2.2v.2h-.2v.3l-.2.2-1-.7v-.3l.2-.2.2-.2.2-.2.3-.3h.3l.2-.2h.4v-.2h.8l.2.2h.4l.2.2h.2l.2.2h.2l.2.3h.2l.2.3h.2l.3.3.2.3.2.2.3.2.2.2h.3z"/>
+        <path fill="#21231e" d="M387.3 617.6l1 .6v.4h-.2v.8l.2.2v.2l.2.2v.2l.2.2.2.3.3.2h.2l.2.2h.2l.2.2.2.2h.2l-.6 1h-.2l-.3-.2-.3-.3h-.2l-.2-.2-.2-.2-.2-.3v-.2h-.2l-.2-.2v-.2h-.2v-.5h-.2V618h.2v-.3zm6.5.8l-.7 1-.2-.3h-.2l-.2-.3-.3-.2-.3-.3h-.2l-.2-.3-.2-.2-.3-.2-.3-.2h-.3v-.2h-.8l-.2.2-.2.2-.2.2v.2l-.3.2-1-.6.2-.3v-.2h.3v-.3h.3l.3-.3h.2l.2-.2h.2v-.2h1.4l.2.2h.2v.2h.3l.3.3h.2l.2.2h.2l.2.3h.2l.3.3v.2l.3.2.3.2.2.2z"/>
+        <path fill="#21231e" d="M391 612.8l1 .6-.2.2v.6h-.2v1l.2.3v.3h.2v.4h.2l.2.3v.2h.2l.2.2.2.2.3.3.3.2h.2l.2.2-.6 1-.3-.2-.2-.2-.2-.2-.3-.2-.2-.2v-.2l-.3-.2v-.2l-.3-.2v-.2l-.3-.2v-.4l-.2-.3v-.2h-.2v-.7h-.2v-1l.2-.3v-.4l.2-.3v-.2zm7 1l-.8 1-.3-.3-.3-.2-.3-.3-.3-.2v-.2l-.3-.2-.3-.2-.2-.2-.2-.2-.2-.2h-.2l-.2-.2-.3-.2h-.2l-.2-.2h-.7l-.2.2-.2.2-.3.3v.2h-.2v.4l-1-.6v-.3l.2-.2.2-.3v-.2l.3-.2.2-.2v-.2h.3l.2-.2h.3l.2-.2h1.2l.2.2h.2l.2.2.3.2h.3l.2.3.2.2h.3l.2.3.3.2.2.2.3.2.2.2.3.2.2.3.3.2z"/>
+        <path fill="#21231e" d="M394.8 607.7l1 .5v.5l-.2.3v1.7l.2.2v.3l.2.2v.2l.2.2.3.3v.2l.3.2.2.2h.2l.2.3.2.2.3.2v.2l-.6.8-.3-.2v-.2l-.4-.2-.2-.3-.3-.3v-.2l-.3-.3-.2-.2v-.2l-.3-.3v-.2l-.3-.2-.2-.2v-.2l-.2-.2v-.3l-.2-.3v-2.1l.2-.2v-.2l.2-.3zm7.6 1.3l-1 .8-.2-.3-.3-.3-.3-.2-.3-.3-.3-.3v-.2l-.4-.2-.2-.2-.2-.2-.2-.2-.2-.2h-.2l-.2-.2h-.2l-.2-.2h-.3v-.2h-.7v.2l-.3.2-.2.3-.2.2v.2l-.3.2v.2l-1.2-.5.2-.3.2-.3v-.2l.3-.3.2-.2.2-.2.3-.2.3-.2h.5l.3-.2h.8l.3.2h.2l.3.2h.2l.2.3.3.3.2.2.3.2.2.2h.3l.2.3.3.3.2.2.3.3.3.4.3.3.4.3z"/>
+        <path fill="#21231e" d="M399 602.6l1.2.6v.2l-.2.2-.2.3v2.1l.2.2v.2l.2.2.2.2v.2l.2.2.2.2.2.2v.2l.3.2.2.2.2.2.3.2.2.2.3.2-.8 1-.3-.3-.2-.3-.3-.2-.3-.3-.2-.2-.3-.2-.2-.3v-.2l-.3-.2-.2-.2v-.2l-.3-.2v-.3h-.2v-.4l-.2-.2v-.2l-.2-.3v-2.6l.2-.2v-.2l.2-.2v-.2zm7.7 1.4l-1 .8-.2-.3-.3-.3-.2-.3-.3-.3-.3-.3-.2-.2-.2-.3-.3-.3-.2-.2h-.2l-.2-.3-.2-.2h-.2v-.2h-1.3l-.3.2v.2h-.2v.3l-.3.2-.2.3v.2l-1.2-.6.3-.3.2-.3.2-.2.2-.3v-.2l.4-.2h.2l.2-.2h.2l.2-.2h1.7l.2.2.2.2h.2l.2.3h.3l.3.3.2.3h.3l.2.3.3.3.2.2.3.3.3.4.4.3.3.3z"/>
+        <path fill="#fff" stroke="#21231e" d="M462.6 580.6l-9.5-5.4c-4 3-6.8 13.5 0 22.2 8.5 11 12 18.7 14 27.5 6.2-8 8.3-16.3 4.4-24.5-5.3-11-8.7-17-8.8-20z"/>
+        <path fill="#fff" stroke="#21231e" d="M470.4 573l-9.5-5.4c-4 3-12.5 13.2-5.6 22 8.5 10.8 17.3 19 19.4 27.7 6.2-8 8.8-16.2 5-24.4-5.4-11-9.4-17.2-9.4-20z"/>
+        <path fill="#fff" stroke="#21231e" d="M449.4 569.2l-9.5-5.4c-4 3-7 13.5-.2 22.2a65 65 0 0114 27.5c6.2-8 8.4-16.3 4.4-24.4-5.3-11-8.7-17-8.8-19.8z"/>
+        <path fill="#fff" d="M405.5 469c.2 8.7-1.4 66.5-1.8 74.7-.5 8.2-4 13.7-8 17-3.5-5-5.6-11.5-6-19.3-.4-4 .4-58.7.7-70 6.4-17 11.2-17.8 15-2.4z"/>
+        <path fill="#21231e" d="M404 543.8h-1l.2-1v-2.6l.2-1.7v-4l.2-2.3v-5l.2-2.7v-2.8l.2-3v-3l.2-3v-6.2l.2-3v-6.2l.2-3v-5.8l.2-2.7v-7.4l.2-2V469h1v11.7l-.2 2.5v8.3l-.2 2.8v6l-.2 3.2v3l-.2 3.2v6l-.2 3v3l-.2 2.8v5.3l-.2 2.5v2.3l-.2 2v3.6l-.2 1.5v2zm-8.7 17l.8-.5h-.6l.3-.4.4-.4.4-.3.4-.3.3-.4.5-.4.3-.3.3-.5.4-.4.4-.4.3-.4.4-.5.3-.4.2-.5.2-.5.3-.5.3-.5.2-.6.2-.5.3-.6.2-.5.2-.5v-.7l.3-.6v-.6l.3-.7v-.7l.2-.7v-.7l.2-.8v-1.5h1v2.3l-.2.7v.8l-.3.6v.8l-.3.7-.2.6-.2.8-.2.6-.2.6-.2.6-.3.6-.4.5-.2.6-.3.5-.2.5-.3.5-.3.5-.3.5-.4.4-.4.5-.3.4-.5.5-.3.4-.4.3-.3.4-.4.3-.2.4-.4.3-.4.3h-.7zm.7.2l-.4.3-.3-.4h.7zm-7-19.5h1v.6l.2.8v1.4l.2.7v.6l.2.7v.6l.3.6v1.5l.3.5v.7l.3.6.2.6.2.6.2.6.2.5.2.7.2.6.2.5.3.6.2.5.3.4.2.6.3.5.3.5.3.5.2.4.3.4.3.5.3.3-.7.6-.3-.6-.4-.4-.3-.5-.3-.5-.3-.5-.3-.6-.2-.6-.3-.5-.4-.7-.2-.5-.3-.6v-.6l-.3-.5-.3-.5-.2-.6-.2-.7-.2-.6v-.7l-.3-.6-.2-.6v-.7l-.3-.5v-.7l-.2-.7-.2-.6v-.6l-.2-.7v-1l-.2-.8v-1.5zm1-70.2l.8.3v8l-.2 2.3V492l-.2 2.7v11.6l-.2 3v19l-.2 2.2v11h-1v-20.9l.2-2.7v-14.6l.2-2.8V489l.2-2.6v-8.9l.2-2v-4.2zm0 0zm16-2.3h-1l-.4-1.3-.3-1.3-.4-1-.5-1.2-.4-1-.2-1-.4-.7-.4-.8-.4-.6-.4-.4-.4-.4-.4-.3-.3-.3h-.3l-.4-.2h-.7l-.4.3-.4.3-.5.5-.5.4-.5.5-.5.7-.5.7-.5.8-.5 1-.6 1-.5 1.2-.6 1.3-.6 1.3-.6 1.5-.6 1.6-1-.3.7-1.6.6-1.5.7-1.3.6-1.4.5-1.2.6-1 .5-1 .5-1 .5-.8.6-.7.5-.7.6-.6.6-.4.5-.4.6-.3.5-.2h1.1l.5.3.5.3.5.5.5.5.4.6.4.6.5.8.4.8.4 1 .5 1 .3 1 .4 1.4.4 1.3.4 1.4zm0 0z"/>
+        <path fill="#fff" d="M368 454.8l-2.6 79.6c-.8 7 8.4 49 13.5 57.4 12.3-5.3 15-33.8 12.6-61.6-2.4-27.8.4-51.8 2.3-56.8 0-6.3-1-12.8-1-19.3-8 .5-17.2.4-25 .8z"/>
+        <path fill="#21231e" d="M365 534.4l2.4-79.6h1l-2.5 79.6h-1zm1 0zm12.7 57l.3.8-.6-.2-.5-1-.6-1-.5-1.2-.7-1.4-.5-1.6-.6-1.6-.6-1.8-.6-2-.5-2-.6-2-.7-2.2-.6-2.2-.6-2.3-.4-2.3-.6-2.3-.5-2.3-.6-2.3-.6-2.3-.4-2.2-.5-2.2-.4-2.2-.3-2-.4-2.2-.3-2-.3-1.8-.3-1.7-.2-1.6v-1.4l-.3-1.3v-2.8h1v4.1l.2 1.5.2 1.6.3 1.7.3 1.8.3 2 .4 2 .4 2.2.5 2.2.4 2.2.4 2.3.5 2.2.4 2.3.6 2.3.5 2.4.6 2.3.7 2.2.5 2.2.6 2 .6 2.2.6 2 .6 2 .5 1.7.7 1.5.6 1.5.5 1.4.5 1.2.5 1 .5 1-.6-.3zm.3.8l-.4.2-.2-.4.6.2zm12-62h1l.3 2.5v2.7l.3 2.6v2.6l.2 2.6v12.5l-.3 2.4-.2 2.5-.2 2.3v2.3l-.4 2.3-.4 2.2-.3 2-.6 2-.4 2-.6 2-.5 1.7-.8 1.7-.6 1.5-.7 1.5-1 1.5-.7 1.3-1 1.2-1 1-1 1-1 1-1 .6-1.3.6-.3-1 1-.4 1-.7 1-.7 1-1 1-1 .7-1 .8-1.3.8-1.4.7-1.5.6-1.5.6-1.6.5-2 .5-1.7.5-2 .4-2 .3-2 .3-2 .3-2.3v-2.3l.4-2.3V558l.3-2.3V538l-.2-2.6-.2-2.6-.2-2.6zm2.4-56.8h1v.2l-.2.5-.2.7-.2.7-.2 1-.2.8-.2 1-.2 1.2v1.2l-.3 1.3-.2 1.3-.2 1.4v1.6l-.3 1.6v1.7l-.3 1.7v2l-.2 1.8v2l-.2 2V520l.2 2.5.2 2.5.2 2.6v2.5l-1 .2v-2.6l-.3-2.5-.2-2.5V520l-.2-2.5v-20.1l.2-2v-2l.3-2v-1.7l.2-1.7.2-1.8.2-1.6v-1.4l.3-1.5.2-1.3v-1.2l.3-1V477l.3-1 .2-.8.2-.7.2-.7.2-.5zm1 0v.2-.2zm-1.5-18.8v-1l.4.4v3.7l.2.6v2.5l.2.6v1.8l.2.6v2.4l.2.6v3.6l.2.6v2.4h-1V468l-.2-.5V465l-.2-.5v-1.9l-.2-.6v-1.7l-.2-.6v-3l-.2-.6V454l.5.6zm0-1h.4v.4l-.5-.4zm-24.6 1.2h-1l.4-.5h3.9l.8-.2h12.8l.8-.2h4.7l.8-.2h1.7v1h-4.1l-.7.2h-8l-.8.2h-7.1l-.8.2h-3.9l.4-.4zm-1 0v-.4h.4l-.4.4zm.5 0h.4-.5zm-.6 0v-.4h.4l-.4.4z"/>
+        <path fill="#fff" d="M353 468l1.8 79.5c-.4 7 11 48.5 16.4 56.5 12.6-9.8 10-49.8 8.2-62-4-24-3.2-52-2-56.5 0-6.3-.2-13.8-.6-20.4-8 1-15.8 2-23.7 2.8z"/>
+        <path fill="#21231e" d="M354.3 547.5l-1.7-79.6 1-.2 1.7 79.6h-1zm1 0zm15.6 56l.5 1-.7-.2-.5-1-.6-1-.6-1.2-.5-1.2-.7-1.6-.6-1.6-.7-1.8-.7-1.8-.7-2-.5-2-.7-2.2-.7-2.2-.6-2.2-.7-2.3-.7-2.2-.7-2.3-.6-2.3-.6-2.3-.5-2.3-.6-2.2-.6-2.2-.5-2-.6-2-.4-2-.4-2-.4-1.6-.3-1.6-.3-1.3-.2-1.3v-1.2l-.2-1v-.8h1v1.8l.2 1 .2 1.3.2 1.5.2 1.5.3 1.7.4 2 .4 1.8.4 2 .5 2 .6 2.2.4 2.2.6 2.3.7 2.3.6 2.3.7 2.2.6 2.3.7 2.3.7 2.3.7 2.2.7 2 .7 2.2.8 2 .7 1.8.6 1.7.8 1.7.6 1.4.6 1.3.6 1.2.5 1 .6.7h-.7zm.5 1l-.4.2-.2-.4h.7zM379 542l1-.2v1.2l.2 1.4.2 1.5.2 1.8.2 1.7v2l.3 2 .2 2v2l.2 2.3v12l-.2 2.4v2.3l-.3 2.4-.4 2.4-.3 2.4-.3 2.2-.4 2.2-.5 2.2-.4 2-.6 2-.7 2-.8 1.6-.8 1.7-1 1.5-1 1.3-1 1.4-1.2 1-.6-.8 1-1 1-1 1-1.4.8-1.4.8-1.6.8-1.7.6-1.8.6-2 .5-2 .6-2 .4-2.2.4-2.3.3-2.3.2-2.4v-2.3l.3-2.4V569l.2-2.2V560l-.2-2.3v-2.2l-.2-2v-2l-.2-2-.2-1.6-.2-1.8-.2-1.5v-1.3l-.3-1.2zm-2-56.7h1v.6l-.2.7-.2.7v1l-.2.8v2.4l-.2 1.3v2.8l-.2 1.6v15.2l.2 2v2.3l.3 2v2.4l.3 2.3v2.2l.3 2.2.4 2.3.2 2.4.3 2.2.2 2.3.3 2.2.4 2.3-1 .2-.5-2.3-.3-2.4-.3-2.3-.4-2.3-.2-2.4-.2-2.3-.2-2.3-.2-2.3-.2-2.2v-2.3l-.3-2.2V512l-.2-2v-16l.2-1.4v-1.3l.2-1.2v-2l.3-1v-.8l.2-.6v-.7.2zm1 0zm-1.2-20v-1l.5.6v3.4l.2.7v3.8l.2.6v6l.2.6v5.3h-1V480l-.2-.7v-5.7l-.2-.6v-4.5l-.2-.7v-2.4l.4.4zm0-1h.4v.6l-.5-.4zm-23.7 4v-1l.8-.2h.8l.7-.2h2.2l.7-.2h.8l.7-.2h.8l.7-.2h1.4l.7-.2h.8l.7-.2h.6l.8-.2h1.7l.6-.2h.7l.8-.2h.8l.7-.2h1.5l.8-.2h.7l.7-.2h.8l.7-.2v1h-.6l-.6.2h-.8l-.7.2h-1.6l-.7.2h-.8l-.8.2h-.8l-.7.2h-1.5l-.7.2h-.8l-.7.2h-.7l-.8.2H362l-.7.2h-.7l-.8.2h-.7l-.6.2H357l-1 .2h-.6l-.7.2h-.8l-.8.2zm.2 0zm0-1v1l-.6-.6.5-.6zm-.6.4v-.6h.5l-.4.5z"/>
+        <path fill="#fff" d="M342.2 486.7l21-.5c-2 8.6-.5 35.6 3.2 56.2 3.3 19.3 8 69.3-12 81.3-12.5-26.4-3-52-9.2-75-5-24.3-6-44.6-3-62z"/>
+        <path fill="#21231e" d="M363 486.7l-20.8.5v-1l21-.5.4.6-.5.4zm0-1h.7v.6l-.6-.6zm3.8 56.6l-1 .2-.3-2-.3-2-.3-2-.4-2-.3-2-.2-2-.2-2.2-.2-2-.2-2.2-.2-2-.2-2-.2-2-.2-2.2v-2l-.3-2v-2l-.2-2V499l-.2-1.7v-4.5l.2-1.4v-1.2l.2-1.2v-1l.3-1v-1l1 .3v.8l-.2 1v1l-.2 1.3v5.4l-.2 1.6v4.9l.2 1.8v4l.2 1.8v2l.3 2v2l.3 2 .2 2v2l.3 2.2.3 2 .2 2.2.3 2 .3 2 .3 2 .3 2.2.2 2 .3 2 .3 2zM354 624l.8-.6-.7-.2 2-1.2 1.5-1.4 1.5-1.6 1.4-1.8 1.3-2 1-2 1-2.3 1-2.6 1-2.5.6-2.8.6-2.7.4-2.8.4-3 .4-3 .3-3 .2-3v-3l.2-3v-6.2l-.2-3-.2-3v-3l-.4-3-.2-2.7-.3-2.7-.2-2.5-.4-2.5-.2-2.4-.3-2.2-.3-2-.3-2h.8l.4 1.8.3 2 .3 2.3.3 2.3.4 2.5.3 2.7.3 2.7.2 2.8.2 3 .2 2.8.2 3v15.5l-.3 3-.3 3.2-.4 3-.4 2.8-.5 3-.8 2.7-.7 2.7-.8 2.6-1 2.4-1 2.4-1.2 2.2-1.3 2-1.4 2-1.6 1.5-1.7 1.5-1.8 1.3h-.7zm.7 0l-.5.4-.3-.5h.7zm-10-75.2l1-.2.5 2.2.4 2.2.4 2.2.3 2.2.3 2.2.2 2.3v2l.2 2.4v25.4l.2 2.4v2.4l.3 2.4.3 2.4.3 2.4.5 2.4.4 2.4.5 2.4.7 2.5.7 2.4.8 2.5 1 2.5 1 2.4-.8.5-1.2-2.6-1-2.5-.8-2.6-.8-2.5-.7-2.5-.5-2.5-.5-2.4-.4-2.5-.2-2.3-.3-2.5-.2-2.4V594l-.2-2.4V564l-.2-2.3-.2-2.3-.2-2.2-.4-2.2-.3-2-.5-2.3-.5-2v-.2zm0 0zm-2.5-62.6v1l.5-.4-.3 1.6-.2 1.7-.2 1.7-.2 1.7-.2 1.7v1.8l-.3 1.8v3.5l-.2 2v7.3l.2 2v1.8l.2 2v2l.2 2 .2 2 .2 2 .2 2 .3 2 .2 2 .3 2.3.3 2 .3 2.2.4 2.2.4 2.2.4 2 .4 2.4.4 2.2-1 .2-.4-2.2-.4-2.3-.4-2.2-.4-2-.3-2.3-.4-2.2-.3-2-.3-2.2-.2-2-.3-2.2-.2-2-.2-2-.2-2v-2l-.2-2v-2l-.2-1.8v-13l.2-1.8v-1.8l.2-1.7.2-1.7.2-1.7.2-1.7.2-1.7.3-1.7.5-.4zm-.5.4v-.4h.5l-.5.4zm.5 0v-.4.5zm-.5 0v-.4h.5l-.5.4z"/>
+        <path fill="#fff" d="M422 454.4c0 8.7-3.2 66.5-4 74.6-.7 8-4.5 13.6-8.4 16.6-3.4-5-5.3-11.5-5.5-19.3 0-4 2.3-58.7 3-70 7-17 11.8-17.4 15-2z"/>
+        <path fill="#21231e" d="M418.5 529h-1v-1l.2-1v-1.5l.2-1.7v-2l.2-2v-2.3l.3-2.4v-2.5l.3-2.7.2-2.8v-3l.3-3 .2-3 .2-3v-3l.3-3.2.2-3 .2-3.2v-3l.3-3V474l.3-3v-2.5l.2-2.4V464l.2-2v-2l.2-1.8v-3.7h1v5.6l-.2 2v2l-.2 2.3v2.6l-.3 2.6-.2 2.7v2.8l-.3 3-.2 3v3l-.3 3-.2 3v3.2l-.3 3-.2 3.2-.2 3v3l-.2 2.7-.2 2.6v2.6l-.3 2.4v2.3l-.3 2v2l-.2 1.5v1.5l-.2 1.2v1zm-9.3 17l.8-.6-.7-.2.4-.2.3-.3.4-.4.3-.3.4-.3.4-.4.4-.3.3-.4.4-.4.4-.4.3-.5.4-.4.3-.6.3-.4.3-.5.3-.5.3-.5v-.5l.4-.6.2-.5.3-.7v-.6l.3-.6.2-.5.2-.7.2-.6V532l.3-.8v-.8l.2-.7v-.7h1v1.6l-.2.7-.2.7v.7l-.2.7-.2.7-.2.8-.2.6-.2.6-.2.6-.3.6-.2.6-.3.6-.3.5-.2.5-.3.5-.3.5-.5.5-.3.5-.3.4-.4.4-.4.4-.3.4-.5.4-.4.4-.2.4-.4.3-.4.4-.3.4-.4.3-.4.3h-.8zm.7 0l-.5.4-.3-.5h.7zm-6.4-19.7h1v2.8l.2.8v.7l.2.7v1.2l.3.6v.8l.2.6.2.7v.7l.3.6v.6l.3.5.2.6.2.6.2.6v.6l.3.5.3.6.2.4.2.5.3.5.3.5.2.5.3.4.4.4.3.5.3.4-.8.5-.3-.6-.4-.4-.3-.5-.3-.6-.3-.6-.3-.5-.3-.6v-.6l-.4-.5-.2-.6-.2-.6-.2-.4-.2-.6-.2-.6-.2-.6-.2-.6-.2-.7-.2-.6v-.7l-.3-.7v-.6l-.2-.7v-.6l-.2-.7v-1.4l-.2-.7v-1.5l-.2-.7v-1.5zm3-70l.8.3v-.2 2.6l-.2 1.6v2l-.2 2v2l-.2 2.4v2.5l-.2 2.6v2.8l-.3 2.8v2.8l-.2 3v2.8l-.2 3v3l-.2 2.8v3l-.3 2.7v2.7l-.2 2.7v7.3l-.2 2v3.8l-.2 1.6v3.3h-1v-6.8l.2-2V513l.2-2.4V508l.2-2.6.2-2.8v-2.8l.2-3V494l.2-3 .2-2.8v-3l.2-2.8v-3l.3-2.7V474l.2-2.5V469l.2-2.4v-4.2l.2-1.8V459l.2-1.5v-1.2zm-.2 0zm16.2-2h-1v.2l-.3-1.4-.3-1.2-.3-1.2-.4-1-.3-1-.4-1-.3-1-.4-.6-.5-.6-.4-.5-.2-.5-.4-.4h-.4l-.3-.2h-1.1l-.4.2-.5.2-.4.4-.5.5-.5.6-.6.7-.5.7-.5 1-.6.8-.5 1-.6 1.2-.7 1.2-.6 1.4-.6 1.4-.6 1.6-1-.4.7-1.6.8-1.4.6-1.4.6-1.2.6-1.2.6-1 .6-1 .6-1 .6-.7.5-.7.6-.6.6-.6.6-.4.5-.3h.6l.5-.3h1.2l.5.3.5.4.5.4.4.5.4.6.4.5.4.8.3 1 .4.8.3 1.2.3 1 .4 1.3.3 1.4.3 1.3zm0 0zm-.5 0h.6-.5zm.6 0z"/>
+        <path fill="#fff" d="M385 407.2c-.6 18.7-1 59-.8 62.6a51 51 0 006.7 22.6c4-3 7.7-8.5 8.4-16.6.6-6.7.8-39.5 1-56-4.3-2.6-8.7-6-12.2-9.7l-3.2-2.8z"/>
+        <path fill="#21231e" d="M384.7 469.8h-1v-23.4l.2-2.4v-19.6l.2-2.4v-9l.2-2v-3.8h1v7.8l-.2 2.4v9.4l-.2 2.5v12.5l-.2 2.4v25.4zm6 22.2l.5.8h-.7l-.3-.6-.3-.5-.4-.6-.4-.4-.3-.6-.4-.6-.3-.7-.3-.6-.2-.6-.3-.7-.3-.7-.3-.7-.3-.7-.3-.8-.2-.7-.3-.7-.3-.8-.2-.8-.2-.7-.2-.8v-.8l-.3-.8v-.8l-.3-.8v-.8l-.2-.8v-.8l-.2-.8v-.7l-.2-.7v-1.5h1v2.5l.2.8v.8l.3.7v.8l.2.8.2.8.2.8v.7l.2.7.3.8.2.7.2.8v.8l.4.7.2.7.3.7v.7l.4.6.3.7.3.7.2.6.3.6.3.5.3.6.4.6.3.6.3.5.3.4h-.7zm.5.8l-.4.3-.3-.3h.7zm7.7-17h1l-.2.8v.8l-.2.7v.8l-.3.7-.2.7v.7l-.2.5-.2.7-.2.6-.3.6v.6l-.4.6-.2.6-.3.5-.2.5-.3.6-.3.5-.3.5-.4.4-.4.5-.3.4-.5.6-.3.4-.4.4-.3.4-.4.4-.3.3-.3.4-.4.2-.4.3-.4.3-.6-.8.4-.3.3-.3.4-.3.4-.2.4-.4.4-.3.3-.3.4-.4.4-.4.3-.5.4-.4.3-.3.3-.5.3-.5.3-.4.3-.5.2-.6.3-.5.2-.5.3-.6.2-.6.2-.5.2-.6.2-.8.2-.6.2-.6v-.7l.3-.7v-.7l.2-.8v-.7l.2-.8zm1-55.5l.6-.8.2.4v18.8l-.2 2.2v14.6l-.2 2v8.9l-.2 1.5v4.3l-.2 1v2.6h-1V471l.2-1.5v-6.3l.2-1.8v-12l.2-2v-20.8l.2-1.7v-5.1l.2.3zm.6-.8h.2v.4l-.2-.5zm-12.4-9.8v1l.4-1 .3.4.2.5.4.3.3.3.3.5.3.3.4.3.3.4.4.4.3.3.4.4.4.3.4.3.3.3.4.3.3.4.4.3.4.3.5.3.3.2.4.2.4.3.4.3.4.3.4.3.4.3h.4l.4.4.4.3.4.2.4.2.4.3-.6.8-.4-.3-.4-.2-.4-.3-.4-.3-.4-.2-.4-.3-.4-.3-.4-.3-.4-.2-.4-.3-.4-.3-.4-.3-.4-.4-.3-.3-.4-.3-.3-.3-.4-.3-.4-.3-.5-.2-.4-.3-.2-.3-.4-.4-.4-.3-.3-.3-.4-.3-.4-.5-.4-.3-.4-.3-.3-.5-.5-.3-.3-.4-.3-.3.2-.8zm-.3.8l-1-.8h1.2l-.3.8zm-2.5-3.3h-1l1-.3.2.2.2.2v.2h.3v.3h.4v.2l.3.2.3.2v.2h.3v.2h.2v.2h.3l.2.2v.2h.2v.2l-.2.8v-1l-.3 1h-.2v-.2h-.2v-.2h-.2v-.2h-.2l-.2-.2v-.2h-.2l-.2-.2-.3-.3h-.3v-.3h-.3v-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2l1-.4zm-1 0v-1.4l1 1-1 .4z"/>
+        <path fill="#fff" d="M400 419.3c-.4 20-.2 51.7 0 54.3a34 34 0 005.4 19.3c4-3.2 8-8.8 8.8-17 .5-5 2-26.4 2-42.8-5.3-1.7-12-10.4-16.3-14z"/>
+        <path fill="#21231e" d="M400.4 473.5h-1v-12.9l-.2-1.7v-33.7l.2-2v-4h1v14.5l-.2 2v37.1l.2.5v.3zm4.7 19l.7.8h-.7l-.3-.6-.3-.5-.3-.5-.2-.5-.3-.5-.3-.5-.2-.6-.3-.5-.2-.5-.3-.5-.2-.6-.2-.6-.2-.6-.2-.6-.2-.6-.2-.6-.2-.6v-.6l-.3-.7v-.6l-.3-.8v-.6l-.2-.7v-.8l-.2-.6v-.7l-.2-.8v-1.5l-.2-.7v-1.4h1v2.8l.2.7v.7l.2.7v.7l.2.7v.7l.2.6v.7l.3.6v.6l.3.5v.6l.3.7.3.6.2.6.2.5.2.5v.6l.4.5.2.7.3.5v.5l.4.5.2.5.3.5.2.5.3.5.3.4h-.7zm.7.8l-.4.3-.3-.4h.7zm8-17.3h1v1.7l-.3.7v.7l-.3.8v.7l-.2.7-.2.7-.2.5-.3.7v.6l-.4.6-.2.6-.3.5-.2.6-.3.6-.4.6-.2.5-.3.5-.4.5-.2.4-.4.6-.3.4-.3.5-.3.4-.4.3-.4.3-.4.4-.3.3-.5.4-.4.3-.3.3-.6-.8.5-.3.3-.3.4-.4.4-.3.3-.4.3-.4.3-.4.4-.4.3-.4.4-.4.3-.5.3-.4.4-.4.3-.5.3-.3.3-.6.3-.4.2-.5.3-.5.2-.5.3-.6.2-.6.2-.6.2-.6.2-.7.2-.7.2-.7v-.7l.3-.8v-.7l.2-.7v-.8zm2.4-42.3l.4-1 .3.5v7.9l-.2 1.6v5.1l-.2 1.6v1.7l-.2 1.7v4.6l-.2 1.6v2.9l-.2 1.3v1.4l-.2 1.3v2.5l-.2 1v2.2l-.2 1v1.6l-.2.7v1.1h-1v-2l.2-.8v-1.8l.2-1v-2.2l.2-1.2v-2.7l.2-1.3v-1.5l.2-1.4V457l.2-1.6v-1.6l.2-1.6V449l.2-1.6V443l.2-1.6V433l.5.5zm.4-1h.3v.5l-.3-.5zm-16-13.4h-1l.8-.4.5.2.4.4.5.4.5.4.5.5.4.4.4.4.5.5.4.6.5.4.4.5.5.4.5.6.5.5.5.5.5.6.6.5.5.6.7.5.5.6.5.5.6.5.5.5.5.4.6.4.4.4.5.3.4.3.5.3.4.3.5.2.4.2-.3 1-.5-.2-.5-.3-.5-.2-.6-.3-.6-.4-.6-.3-.5-.4-.6-.4-.5-.4-.6-.5-.5-.5-.5-.5-.5-.5-.6-.5-.5-.5-.7-.5-.5-.6-.5-.5-.6-.5-.5-.6-.5-.4-.5-.5-.5-.5-.5-.5-.5-.5-.5-.4-.4-.4-.5-.4-.4-.5-.6-.4-.4-.3-.4-.4.8-.3zm-1 0v-1l.8.6-.8.2z"/>
+        <path fill="#fff" d="M387 405.6L373 385c-2.8 10.2-6.3 82.8-2.2 88.8a36 36 0 006.4 19.3c4-3 9.8-8.5 8-16.7-1.6-8.2.4-62.3 2-70.7z"/>
+        <path fill="#21231e" d="M373.3 384.7l14.2 20.6-.8.5-14.3-20.5v-.4l1-.3zm-1 .2l.4-1 .5.7-.8.2zm-1.2 88.7h-1l.2.3-.5-.8-.3-1.2-.3-1.5v-1.8l-.3-2-.2-2.5v-2.6l-.2-2.8v-20.3l.2-3.7V431l.2-4 .2-3.6v-3.8l.3-3.7.2-3.7.2-3.4.3-3.5.2-3.2.3-3 .2-3 .3-2.5.3-2.4.2-2 .3-2 .3-1.3.4-1 1 .2-.3 1-.2 1.5-.3 1.8-.3 2-.2 2.4-.3 2.5-.3 2.8-.2 3-.3 3.3-.3 3.3-.2 3.4-.2 3.6-.2 3.7v3.7l-.3 3.8v3.8l-.2 3.7v3.8l-.2 3.6v19.6l.2 2.6.2 2.3.2 2v1.8l.4 1.5.3 1 .3.7v.2zm0-.2v.2-.2zm5.7 19.2l.6.8-.7-.2-.3-.4-.3-.6-.3-.5-.3-.6-.3-.5-.2-.6-.3-.6-.3-.5-.3-.6-.4-.5-.2-.6-.3-.6v-.6l-.4-.6-.2-.6-.2-.6-.3-.6-.3-.6-.2-.7v-.6l-.3-.5-.2-.7v-.7l-.3-.6v-.6l-.2-.7v-.6l-.2-.7v-1.5l-.2-.7v-.7h1v1.4l.2.7v.6l.2.6v.7l.2.6v.7l.2.6.2.6v.6l.3.6.2.7.2.6.2.7v.6l.3.6.2.5.3.6.2.6.3.6.2.5.3.6.3.5.3.5.3.6.3.4.2.5.3.4.3.4.3.5.4.5h-.7zm.6.8l-.4.3-.4-.5.7.2zm7.4-17l1-.3v.8l.2.7v3l-.2.7-.2.7v.7l-.3.7-.2.6-.2.6-.2.6-.3.6-.3.5-.4.6-.3.4-.4.5-.5.4-.3.5-.4.4-.4.4-.4.4-.5.5-.4.4-.3.5-.4.3-.4.4-.5.3-.4.3-.3.4-.4.3-.6-.8.4-.3.5-.3.4-.2.3-.4.3-.3.4-.3.4-.4.4-.3.4-.4.4-.5.4-.3.4-.4.4-.5.3-.5.5-.5.3-.5.3-.5.4-.5.3-.5.2-.6v-.6l.3-.5.2-.5.2-.7v-.6l.2-.6v-3.1l-.2-.7v-.6zM387 406v-1l.6.7-.2 1-.2 1v1.4l-.3 1.7-.2 2-.2 2v2l-.3 2.4v2.5l-.3 2.6v2.8l-.2 2.7-.2 2.8v3l-.2 2.8v3l-.2 3v8.5l-.2 2.8v13.5l.2 2v1.5l.2 1.4v1l.2 1-1 .2v-1l-.2-1v-1.5l-.2-1.7v-4l-.2-2v-15.5l.2-3V441l.2-3v-2.8l.2-3 .2-2.7v-2.8l.2-2.7.2-2.5V419l.3-2.3v-2.2l.3-2v-2l.3-1.5.3-1.4v-1.2l.3-1 .5.7zm0-1h.7v.7l-.6-.6zm0 0v1l-.3-.2.4-.7zm0 1h-.2v-.2l.3.3z"/>
+        <path fill="#fff" d="M358 451.2c-.8 11.3-1.2 19-1 23 .2 7.6 2 14.2 5.5 19.2 4-3 9-8.5 8.4-16.6-2-31.5 1.4-61 5.4-89.6-3.4-2.5-9-5-12.5-7.6-6.8 38.3-9 62-6 71.6z"/>
+        <path fill="#21231e" d="M357.4 474h-1v-7.4l.2-.7V463l.2-.7V459l.2-1v-1.8l.2-1v-3l.2-1h1v2l-.2 1v2l-.2 1v2.8l-.2.7v3.2l-.2.7v4.2l-.2.6v4.3zm4.8 19l.6.8h-.7l-.3-.6-.3-.5-.3-.5-.2-.5-.2-.5-.3-.5-.3-.6-.2-.4-.3-.6-.2-.5-.3-.6-.2-.7-.2-.6-.2-.6-.2-.5-.2-.6v-.7l-.3-.6v-.7l-.3-.6v-.7l-.2-.6-.2-.6v-.7l-.2-.7v-1.4l-.2-.7v-1.5l-.2-.7v-.7h1v2.2l.2.7v1.2l.2.7v.6l.2.6v.7l.2.5.2.7v.6l.3.6v.6l.3.6.2.6.2.6.2.6.2.6.2.5.2.6.2.6.3.6.2.5.2.5.2.5.3.5.3.5.3.5.3.5.3.4h-.8zm.6.8l-.4.3-.3-.3h.8zm7.6-17h1v3.7l-.3.7v.6l-.2.7v.7l-.4.6-.2.6-.2.6-.3.6-.3.6-.3.5-.2.6-.3.5-.4.5-.2.5-.4.4-.4.5-.4.4-.3.6-.4.4-.5.4-.4.4-.3.4-.4.3-.4.3-.5.4-.4.3-.2.3-.6-.8.3-.3.4-.3.3-.3.3-.2.4-.4.4-.3.4-.3.4-.4.3-.4.4-.5.3-.4.3-.4.4-.4.3-.5.3-.5.3-.5.2-.5.3-.5.3-.5.2-.6.3-.6.2-.5.2-.6.2-.8v-.6l.2-.6v-.7l.2-.6v-3.1zm5.7-89.2l.7-.8.2.5-.5 2.6-.4 2.6-.3 2.7-.3 2.7-.4 2.7-.3 2.7-.3 2.7-.4 2.8-.3 2.8-.3 2.7-.3 2.8-.2 2.8-.2 2.8-.3 2.7-.2 2.8v3l-.3 2.7-.2 2.8-.2 2.8v2.8l-.2 3v8.5l-.2 3v8.6l.2 3v3l.2 2.8.2 3h-1l-.2-3v-3l-.2-2.8v-5.8l-.2-3V451l.2-2.8v-3l.2-2.7v-2.7l.3-3 .2-2.7.2-2.8V428l.3-2.7.3-2.8.3-2.8V417l.4-2.8.3-2.7.3-2.8.4-2.7.3-2.7.4-2.7.4-2.7.4-2.8.3-2.7.5-2.7.4-2.7v.6zm.7-.8l.2.2v.3l-.3-.5zm-12.3-7l-1-.3.8-.3.3.2.4.2.2.3h.3l.4.3.3.3.4.2.4.2.5.3.4.2.3.2.4.3.4.2.5.3.5.2.4.2.4.2.4.2.5.3.4.2.5.2.4.2.3.2.4.3h.4l.5.4.4.2.3.2.3.3.4.3.3.3.4.2-.6.8-.2-.2-.4-.3h-.3l-.3-.3-.3-.3-.4-.2-.4-.2-.4-.3-.4-.2-.4-.2-.4-.3-.4-.2-.4-.3-.5-.2-.4-.2-.4-.2-.5-.2-.5-.3-.4-.2-.4-.2-.4-.2-.4-.2-.4-.3h-.4l-.4-.4-.4-.2-.4-.2-.4-.3-.4-.3-.3-.3-.4-.2-.4-.2.8-.3zm-1-.3l.2-.8.6.5-.8.3zm-6 71.4l.8.6-.8-.2-.3-1v-1l-.3-1-.2-1.3v-1l-.2-1.4V443l-.2-1.6v-5l.2-1.8v-2l.2-2 .2-2 .2-2.3.2-2.3.2-2.5.3-2.4.3-2.5.3-2.6.4-2.8.4-2.8.4-3 .4-2.8.5-3 .6-3.2.5-3.2.6-3.3.6-3.5.6-3.5.6-3.5 1 .2-.6 3.5-.6 3.5-.6 3.4-.5 3.3-.4 3.3-.5 3-.4 3-.4 3-.4 3-.4 2.7-.3 2.7-.3 2.7-.3 2.5-.2 2.4-.3 2.4-.3 2.3v2.2l-.3 2v2l-.2 2v9.8l.2 1.4v1.2l.3 1 .2 1.2v1l.4 1-1-.3zm.8.6l-.5.6-.3-.8.8.2zm0 0l-.7-.7 1 .3-.3.3zm-.7-.7l1-1v1.3l-1-.4z"/>
+        <path fill="#fff" d="M343.6 471.8l4 14.7c.2 7.7 5 14 8.3 19 4-3 7.5-8 6.5-16-5.8-46.5-3.8-77.3 6-115-22 15-32.3 46.6-25 97.3z"/>
+        <path fill="#21231e" d="M347 486.6l-3.8-14.7 1-.3 3.8 14.6-1 .3zm1-.3zm7.6 19l.6.7h-.7l-.3-.6-.3-.5-.4-.5-.4-.5-.3-.5-.5-.6-.3-.6-.4-.5-.3-.7-.4-.5-.2-.6-.4-.5-.3-.6-.2-.5-.4-.6-.3-.7-.2-.6-.3-.6-.3-.5-.3-.7-.3-.6-.3-.7-.2-.7-.2-.6-.2-.7-.2-.7-.2-.7v-.6l-.2-.7v-.8l-.2-.8v-.7h1v1.4l.2.7v.7l.2.7.2.6v.6l.3.7v.5l.4.7.2.6.3.6v.6l.4.7.3.6.3.6.3.4.3.6.4.6.3.6.3.5.4.6.3.5.4.5.3.6.3.4.4.5.3.4.4.5.3.4.3.5.4.3h-.8zm.6.7l-.4.3-.3-.4h.8zm5.8-16.5h1v5.5l-.2.6v.7l-.3.6v.4l-.3.6-.2.6-.3.5-.2.6-.2.5-.3.6-.3.5-.3.6-.3.4-.2.4-.3.4-.4.5-.2.3-.3.4-.4.4-.3.3-.3.4-.4.4-.4.3-.3.3-.7-.8.4-.3.4-.4.3-.3.4-.3.4-.3.3-.4.4-.3.4-.4.3-.4.3-.4.3-.4.3-.4.3-.4v-.5l.4-.3.2-.5.2-.5.2-.5.2-.5.2-.5.2-.6v-.6l.2-.5v-.6l.2-.7v-5.1zm6.8-114.7l-.6-1 .8.7-1 3.5-.8 3.5-.8 3.4-.7 3.4-.7 3.4-.7 3.3-.6 3.5-.6 3.4-.4 3.2-.5 3.3-.3 3.4-.4 3.2-.4 3.4-.4 3.3-.2 3.3-.2 3.4-.2 3.4v3.6l-.2 3.5v14.7l.3 3.7.3 4 .2 3.8.3 4 .4 3.8.3 4 .5 4.2.4 4.3.6 4.4h-1l-.6-4.2-.4-4.3-.5-4.2-.3-4-.4-4-.3-4-.2-3.8-.2-3.8v-3.7l-.2-3.7v-14.3l.2-3.4.2-3.4.2-3.4.2-3.4.3-3.3.3-3.4.4-3.3.4-3.3.6-3.4.5-3.3.7-3.4.6-3.3.7-3.4.7-3.4.8-3.5.8-3.4.8-3.5 1-3.6.8.6zm-.6-1l1-.6-.2 1.3-.8-.6zm-24 98h-1l-.7-4.6-.5-4.6-.5-4.5-.3-4.3-.3-4.2-.2-4.2v-8l.2-3.8.2-3.7.3-3.7.4-3.4.5-3.4.6-3.3.8-3.3.7-3 1-3 1-3 1-2.8 1-2.8 1.2-2.5 1.3-2.5 1.4-2.4 1.5-2.3 1.4-2 1.6-2.2 1.7-2 1.7-2 2-1.6 1.8-1.7 2-1.6 2-1.5.6.8-2 1.4-2 1.6-1.8 1.6-1.8 1.7-1.8 2-1.6 2-1.6 2-1.5 2-1.4 2.3-1.4 2.4-1.4 2.4-1.2 2.6-1 2.7-1 2.7-1 3-1 3-.7 3-.7 3-.6 3.4-.5 3.3-.5 3.5-.3 3.6-.3 3.7-.2 3.8v12l.4 4.4.3 4.3.5 4.5.5 4.6.6 4.7zm-1 0zm.4 0h.5-.4zm-.4 0z"/>
+        <path fill="#fff" d="M344.8 486.2l-20.3-6.7c-2.5 20.2 1.4 45.6 7 79 4.6 29 2 51.6-1.5 66.2 21.6-3 30.7-30.7 20-83-3-13.7-5.8-31.3-5.2-55.5z"/>
+        <path fill="#21231e" d="M324.7 479l20.2 6.7-.4 1-20.2-6.7-.3-.6.7-.4zm-.6.4v-.6l.7.2-.6.4zm8 79l-1 .3-.6-3-.5-3.2-.6-3-.5-3-.5-3-.5-2.8-.4-3-.4-2.7-.4-2.7-.4-2.7-.4-2.7-.3-2.7-.4-2.6-.3-2.6-.3-2.4-.2-2.5-.3-2.3-.2-2.4-.2-2.4v-2.4l-.3-2.3V500l-.2-2v-10.7l.2-2 .2-2v-2l.4-2 1 .3-.2 2-.2 1.8v2l-.2 2v4l-.2 2v4.3l.2 2.3v2.3l.2 2.3.2 2.3.2 2.2.2 2.4.3 2.4.2 2.5.3 2.5.3 2.5.3 2.6.4 2.8.4 2.6.3 2.7.4 3 .6 2.7.4 2.8.4 3 .5 3 .4 2.8.5 3 .4 3 .5 3.2zm-2 65.8v1l-.5-.6.4-1.4.2-1.4.3-1.5.3-1.5.3-1.6.4-1.6.3-1.7.2-1.8.2-1.7.2-1.8.2-2 .2-1.8v-2l.3-2 .2-2v-2l.2-2v-13.4l-.2-2.3-.2-2.4-.2-2.4-.2-2.5-.3-2.5-.3-2.6-.3-2.6-.4-2.6-.4-2.7 1-.2.3 2.7.4 2.7.3 2.5.3 2.6.3 2.6.2 2.5.2 2.6v2.4l.3 2.4v6.8l.2 2.3v4.3l-.2 2v2l-.2 2v2l-.2 2-.2 2-.2 1.8-.3 1.8v1.8l-.4 1.7-.2 1.8-.3 1.6-.2 1.6-.3 1.5-.3 1.5-.4 1.5-.3 1.4-.5-.8zm0 1h-.6v-.6l.7.6zm19.4-83.5l1-.2 1 5 .8 4.6.7 4.6.5 4.5.5 4.3.4 4 .3 4 .2 4v7.2l-.2 3.4-.2 3.2-.4 3-.4 3-.6 3-.6 2.6-.7 2.6-1 2.4-1 2.3-1 2.2-1 2-1.2 1.8-1.3 1.7-1.4 1.5-1.4 1.4-1.5 1.3-1.5 1-1.8 1-1.8.7-2 .7-2 .5-2 .2v-1l2-.3 1.8-.6 1.8-.6 1.7-.8 1.6-1 1.5-1 1.5-1 1.4-1.5 1.3-1.5 1.3-1.6 1-1.8 1.2-2 1-2 1-2.2.7-2.3.6-2.4.7-2.7.5-3 .4-2.8.4-3 .2-3.3v-3.5l.2-3.5v-3.7l-.3-3.8-.3-4-.3-4-.4-4.3-.7-4.4-.8-4.5-.8-4.7-1-5zm-4.8-55l.3-1 .3.5V503l.2 2 .2 1.8v2l.2 1.8v1.8l.2 1.8.2 1.7.2 1.8.2 1.7.2 1.7.2 1.6.2 1.6.2 1.6.2 1.5.3 1.5.3 1.5.3 1.5.2 1.4.3 1.4.3 1.4.3 1.4.3 1.3v1.3l.4 1.2-1 .2-.2-1.3-.3-1.3-.4-1.2-.2-1.4-.3-1.4-.2-1.4-.2-1.4-.3-1.5-.2-1.5v-1.5l-.4-1.6-.2-1.5-.2-1.6-.2-1.7-.2-1.7-.2-1.7-.2-1.8-.2-1.8v-1.7l-.3-2-.2-1.7v-2l-.3-1.8v-4l-.2-2v-13l.3.5zm.3-1l.3.2v.2l-.4-.5z"/>
+        <path fill="#21231e" d="M343.6 584h1v.7h-.8v-.2h-.2v-.4zm-4.3-40l1-.4.4 1.2.2 1.2v1l.4 1.3.2 1.3.2 1.2.2 1.2.2 1.2.2 1.3.2 1.3.2 1.2.2 1.3.2 1.3.2 1.2.2 1.3v1.4l.3 1.3v2.6l.3 1.3v1.3l.2 1.2v2.6l.2 1.3v9.1h-1v-7.6l-.2-1.2v-2.7l-.2-1.3V570l-.2-1.3v-1.3l-.2-1.3v-1l-.3-1.4v-1.3l-.3-1.3-.2-1.3v-1.2l-.3-1.3-.2-1.3-.2-1.3-.2-1.3v-1.2l-.4-1.2-.2-1.2-.2-1.2-.2-1.2-.3-1.2-.2-1.2-.2-1.2zm-5.5-50.4h1.2v6.4l.2 1.5v3.3l.2 1.5v1.6l.2 1.5v1.6l.3 1.5v3.1l.3 1.5.2 1.7v1.5l.3 1.6.2 1.5.2 1.6.2 1.4.2 1.6.3 1.5v1.6l.4 1.6.2 1.6.3 1.6.2 1.5.3 1.6.3 1.5.3 1.5.4 1.6-1 .3-.5-1.7-.4-1.6-.3-1.6-.3-1.5-.3-1.5-.2-1.6-.3-1.6-.2-1.5-.3-1.6-.2-1.6-.2-1.4-.3-1.6-.2-1.5-.2-1.6v-1.7l-.3-1.5-.2-1.6v-1.5l-.2-1.6v-1.4l-.2-1.6-.2-1.6V508l-.2-1.7V503l-.2-1.4v-6.4l-.2-1.6zm1.2 0h-1.2v-.2h.2v-.2h.2v-.2h.8v.2h.2v.4z"/>
+        <path fill="#fff" d="M344 367.3l13.2 2.2-4.6 23.3c-5 24.3-8.2 53-4.5 84.2 1.5 11.7 4 21.2 7.6 28.5-14.6-1.6-24-15.8-22.7-40.6-2.6-29-1.5-52 3.2-69.4 1.4-5 5.8-24.2 7.8-28.3z"/>
+        <path fill="#21231e" d="M357 370l-13-2.3v-1l13.3 2.3.4.6-.6.4zm.3-1h.5v.6l-.5-.6zm-4.2 24l-1-.3.2-.3v-.4l.2-.5v-.6l.2-.7v-.6l.3-.7v-.8l.2-.8v-1l.3-.7.2-1 .2-1v-.8l.2-1 .2-1 .2-1 .2-1 .2-1 .2-.8v-1l.3-.7.2-1v-.7l.3-.7v-.7l.3-.6v-.6l.2-.5v-.4l.2-.3v-.3l1 .2v.6l-.2.5v.5l-.3.6v.5l-.2.7-.2.8-.2.8v1l-.3.7-.2 1v.8l-.2 1-.2 1-.2 1-.2.8-.2 1-.2 1v1l-.3 1-.2.7-.2 1v.7l-.2.7v1l-.2.5-.2.6v.7l-.2.5v.7zm-4.4 84h-1l-.3-2.8-.3-3-.3-3-.2-2.8v-2.8l-.3-3V457l-.2-3v-11l.2-2.7v-2.7l.2-2.7.2-2.8.2-2.6.2-2.6.3-2.6.2-2.6.3-2.6.3-2.5.4-2.5.4-2.5.4-2.5.3-2.4.4-2.4.3-2.4.5-2.4.4-2.3.5-2.3.4-2.3 1 .2-.4 2.2-.4 2.3-.5 2.3-.4 2.4-.4 2.4-.5 2.4-.4 2.4-.2 2.4-.4 2.5-.3 2.5-.2 2.5-.3 2.6-.3 2.5-.2 2.5-.2 2.7-.2 2.6-.2 2.6v2.6l-.2 2.7v2.7l-.2 2.7v11.5l.2 3v2.7l.3 3 .2 2.7.3 3 .3 2.8.3 3zm7 29v-1l-.4.8-.4-.7-.3-.6-.3-.8-.4-.7-.3-1-.3-.6-.3-.8-.4-.8-.3-.8-.2-.8-.2-.8-.3-1-.2-.7-.3-1-.2-.8-.3-1-.2-1-.2-.8v-1l-.3-1-.2-.8-.2-1-.2-1v-1l-.3-1-.2-1v-1l-.3-1-.2-1v-1l-.2-1.2-.2-1 1-.2v1l.3 1v1.2l.2 1v1l.3 1 .2 1 .2 1v1l.2 1 .2 1 .2 1 .2 1 .3.8.3 1 .2.8.2 1 .3.7.2 1 .3.7.2.8.3 1 .3.7.3.8.3.7v.8l.4.8.4.7.3.7.4.7.3.6.3.7-.5.7zm.4-.7l.4.8h-1l.6-.7zM332.4 465l1-.2v8.8l.2 2 .2 2 .3 2 .4 1.8.4 1.7.4 1.8.5 1.7.5 1.5.6 1.5.6 1.5.7 1.3.8 1.3.7 1.3.8 1 1 1 .8 1.2 1 1 1 .8 1 .8 1 .8 1 .7 1.2.6 1.2.4 1.2.5 1.2.3 1.2.3 1.3.3h1.4l-.2 1h-1.3l-1.4-.4-1.3-.4-1.3-.4-1.2-.5-1.2-.5-1.2-.7-1-.6-1.2-.8-1-.8-1-1-1-1-1-1-1-1.2-.7-1.2-.8-1.3-.8-1.2-.7-1.4-.7-1.5-.5-1.6-.6-1.6-.5-1.7-.4-1.6-.4-1.8-.3-2-.2-1.8-.2-2-.2-2v-8.9zm1-.2zm2.3-69.4l1 .3-.5 1.6-.4 1.7-.4 1.7-.3 1.7-.3 1.8-.3 1.8-.3 1.8-.2 2-.2 1.8-.3 2-.2 2v2l-.3 2v2l-.2 2-.2 2.3v4.3l-.2 2.2v9.6l.2 2.5v2.4l.2 2.5v2.5l.2 2.6.2 2.6.2 2.5.2 2.6.2 2.8h-1l-.2-2.6-.2-2.6-.2-2.7-.2-2.7v-2.5l-.2-2.6v-2.5l-.2-2.4v-18.5l.3-2v-2.2l.3-2v-2.2l.3-2 .3-2 .3-2 .2-1.8.3-2 .4-1.8.4-1.8.3-1.8.5-1.7.4-1.7.3-1.7.4-1.6zm8.3-28.6v1l.4-.3-.2.4-.2.4-.2.6-.2.6-.3.7-.2.8-.2 1-.2.8-.3 1-.3 1-.2 1-.3 1-.3 1-.3 1.2-.4 1-.3 1.2-.3 1-.2 1.2-.3 1-.3 1.2-.3 1-.3 1-.3 1-.2 1-.3 1-.3 1-.2.8-.2.8-.2.7v.6l-.2.6v.5l-1-.3v-.5l.2-.7.2-.6.2-.8v-1l.4-.7.2-1 .2-.8.3-1 .2-1 .3-1 .2-1.2.3-1 .3-1.2.3-1 .4-1 .2-1.2.3-1 .2-1.2.3-1 .3-1 .3-1 .4-1 .2-1 .3-1v-.8l.4-.8.2-.7.3-.7v-.6l.3-.5.2-.5.5-.2zm-.5.2l.2-.3h.3l-.5.3zm.5.3v-.5.5zm-.5-.3l.2-.3h.3l-.5.3z"/>
+        <path fill="#fff" d="M336 370.4l6.4 7.4c-1.8 1.4 1.3 7-.4 18-1 6.4-4.8 13.8-5.6 22-2.5 26.5-2.5 59.8 5.4 81-14.5-1.6-19.5-14.8-20-39.6-.4-20.6-.4-44.7 4.7-72.7 1-6.5 4.2-11.7 9.4-16z"/>
+        <path fill="#21231e" d="M342 378.2l-6.5-7.5.8-.6 6.5 7.5v.7h-.7zm.8-.7l.4.4-.5.2v-.7zm-.3 18.5h-1l.2-1.2v-1l.2-1V385l-.2-.6v-1.2l-.2-.6v-1l-.2-.4v-2.8l.2-.3.3-.4v-.2l.7.8v.2h-.2v.5h-.2v2.2l.2.4v1.1l.2.6v1.1l.2.7v8.1l-.2 1v1l-.3 1zm0 0zm-5.6 21.7h-1v-1.8l.2-.7.2-.7v-.7l.3-1v-.6l.3-.8.2-.7.2-.8.2-.7.2-.7.2-.7.2-.6.2-.7.2-.7.3-.7v-.7l.3-.6.2-.7.2-.7.2-.6v-.7l.3-.6.2-.6.2-.5.2-.7v-.6l.2-.6v-.6l.2-.6v-.5h1v1.2l-.3.6v.7l-.2.6v.7l-.3.7-.2.6-.2.6v.7l-.3.7-.2.6-.3.7-.2.6-.2.6-.2.7-.2.7-.2.7-.3.7-.3.7-.2.8-.2.7-.2.7v.7l-.2.6-.2.7v.7l-.3.8v.7l-.2.7v1.5zm4.8 81.6v-1l-.4.7-.8-2-.6-2-.7-2.3-.6-2.2-.5-2.3-.5-2.4-.5-2.4-.4-2.4-.4-2.5-.4-2.5-.3-2.5-.3-2.6-.2-2.7-.2-2.7-.2-2.6v-2.7l-.2-2.7V455l-.2-2.8v-10.9l.2-2.7V436l.2-2.8v-2.7l.3-2.6.3-2.7.2-2.6.2-2.6.2-2.4h1l-.3 2.6-.2 2.6-.2 2.5-.2 2.6v2.6l-.2 2.6v2.7l-.2 2.6v2.7l-.2 2.7V455l.2 2.7v2.7l.2 2.7.2 2.5.2 2.7.2 2.6.3 2.5.3 2.6.4 2.4.4 2.4.4 2.5.4 2.3.5 2.4.7 2.2.6 2.2.6 2.2.6 2 .7 2-.5.7zm.5-.6l.3.7h-.8l.5-.7zm-21-39.5h1v2.2l.2 2.3v2l.2 2.2.2 2v2l.3 1.7.3 1.8.3 1.8.2 1.6.4 1.5.4 1.6.4 1.5.5 1.4.4 1.2.6 1.3.6 1.2.6 1 .7 1 .6 1 .8 1 .8 1 .8.6 1 .7 1 .7 1 .6 1 .5 1 .4 1 .4 1.3.3 1.3.2 1.3.2-.2 1-1.4-.2-1.3-.3-1-.4-1.3-.4-1.2-.5-1-.6-1.2-.5-1-.7-1-.7-.8-.7-1-1-.7-1-.7-1-.6-1-.7-1.2-.6-1-.5-1.4-.5-1.3-.5-1.5-.5-1.5-.4-1.5-.3-1.7-.4-1.5-.4-1.8-.3-1.8-.2-2v-2l-.3-2v-2l-.2-2.3v-2.2l-.2-2.3zm4.7-72.8l1 .2-.5 2.6-.4 2.6-.3 2.5-.4 2.6-.3 2.4-.4 2.5-.3 2.4-.3 2.4-.2 2.4-.2 2.5-.3 2.3v2.4l-.3 2.4-.2 2.3v2.4l-.2 2.2v2.3l-.2 2v4.5l-.2 2.2V459h-1v-26.9l.2-2.2v-2l.2-2.4v-2.3l.2-2.3.2-2.3.2-2.4.2-2.3.2-2.4.2-2.5.3-2.3.3-2.4.3-2.5.4-2.5.3-2.6.4-2.5.4-2.6.6-2.6.4-2.6zm1 .2zm9.3-16.5l-.8.7h.7l-.4.5-.5.4-.5.4-.4.4-.4.5-.4.3-.4.4-.4.5-.4.4-.4.5-.3.5-.4.5-.3.5-.3.4-.3.4-.3.5-.2.4-.3.5-.2.4-.3.5-.2.4-.2.6-.2.5-.2.5-.2.6-.2.5-.2.7v.5l-.3.6v.6l-.2.6v.6l-1-.2v-.6l.2-.6.2-.6v-.6l.3-.6v-.6l.3-.5.2-.6.2-.6.2-.4.3-.6v-.5l.4-.5.2-.6.3-.5.2-.6.3-.5.3-.6.4-.5.3-.6.4-.5.2-.6.4-.4.4-.5.4-.4.4-.4.5-.4.4-.5.5-.4.4-.4.5-.6.6-.4h.7zm-.7 0l.4-.3.3.4h-.7z"/>
+        <path fill="#fff" d="M372.3 390l-13.4-1.6c-2.6 12.7-4.5 21.7-5 26.2-1 9 1.8 17 5 23 5-3 7.2-9.4 9.2-18.6 2-9.2 2.7-19.2 4-29z"/>
+        <path fill="#21231e" d="M359 388l13.3 1.5v1l-13.5-1.6-.4-.7.5-.4zm-.6.3v-.4h.5l-.6.3zm-4 26.4h-1l.2-.6v-.8l.2-.6v-1l.2-.6v-.7l.3-.6v-.7l.2-.7v-.7l.3-.7v-1l.2-.7.2-.8.2-1v-.7l.3-1 .2-.8v-1l.2-1 .2-1 .2-1 .2-1 .2-1 .3-1 .2-1 .2-1.2.2-1.2v-1l.4-1.3 1 .2-.3 1.2v1l-.3 1.3-.3 1-.2 1.2-.2 1-.2 1-.2 1-.2 1-.2 1-.2 1v1l-.3 1-.2.8-.2.8v1l-.3.7v.8l-.3.7v.8l-.2.7-.2.7v.6l-.2.7v1.3l-.2.5v1.1l-.2.5v.9zm4.3 22.6l.5.8h-.7l-.3-.7-.3-.6-.4-.6-.3-.5-.3-.6-.2-.7-.3-.7-.2-.6-.3-.7-.2-.7-.3-.7-.2-.8-.2-.7v-.7l-.3-.7-.2-.7-.2-.7v-.8l-.3-.7v-.7l-.2-.8v-.8l-.2-.7v-.8l-.2-.8v-6.1h1v6.6l.2 1v1.4l.3.7v1.6l.3.8.2.7v.8l.3.7.2.7.3.7.2.6.2.7.2.6.2.6.2.6.3.7.3.5.2.6.3.7.3.6.3.6.3.5-.7-.2zm.5.8l-.5.4-.2-.5h.7zm8.6-19h1l-.3 1-.2.8-.2 1v.7l-.3.8-.2.7-.2.8-.2.7v.8l-.4.7-.2.7-.3.6v.7l-.4.6-.2.7-.3.6-.2.5-.3.5-.3.6-.3.5-.4.7-.3.5-.4.5-.5.4-.3.6-.4.4-.4.4-.4.4-.5.3-.4.5-.4.3-.4.3-.5-.7.4-.3.5-.3.4-.3.3-.4.4-.3.4-.4.4-.4.4-.5.3-.4.4-.4.4-.5.3-.4.4-.5.2-.4.3-.6.2-.5.3-.6.2-.7.3-.7.2-.6.3-.7.2-.6.2-.7v-.8l.3-.7.3-.7.2-.8.2-.8.2-.8.2-.8.2-.8.2-1zm4.5-28.5v-1l.5.5v1l-.3 1v.8l-.2 1v1l-.2.8v1l-.2.8v1l-.2 1v.8l-.2 1v1l-.2.8v1l-.2.8v1l-.2.8v1l-.2 1-.2.8v1l-.2.8-.2 1v.8l-.2 1-.2.8-.2.8v1l-.3.8v1l-.3.7h-1l.3-1v-.8l.3-1 .2-.7v-1l.3-.8v-1l.3-.8.2-1v-1l.3-.8v-1l.2-.8v-1l.2-.8v-1.8l.2-1v-1l.2-.8v-1l.2-.8v-1l.3-1v-1.8l.2-1v-.8l.2-1v-.8l.3-1v-1l.6.7zm0-1h.6l-.2.5-.5-.5zm0 0v1-1zm0 1z"/>
+        <path fill="#fff" d="M407 418.6h-11.8c-.4 11-.7 18.5-.5 22.3.4 7.5 2.3 14 5.5 18.7 3.6-3 7-8.3 7.6-16.2.6-8-.6-16.5-.7-25z"/>
+        <path fill="#21231e" d="M395.2 418.2h12v1h-12l-.5-.5.5-.5zm-.5.5v-.5h.5l-.5.5zm.5 22.2h-1v-11.4l.2-.8v-4.4l.2-.8v-5h1v7.8l-.2.7v5.6l-.2.7v7.7zm4.7 18.4l.6.7h-.8l-.3-.5-.3-.4-.3-.4-.4-.5-.2-.4-.3-.5v-.4l-.4-.6-.2-.5-.3-.5v-.6l-.3-.6-.2-.5-.2-.6-.2-.6v-.5l-.2-.6-.2-.7-.2-.6v-.6l-.2-.6-.2-.6v-.7l-.2-.5v-.7l-.2-.7v-.5l-.2-.7v-2.6l-.2-.7h1v1.1l.2.7v1.4l.2.7v.7l.2.6v.7l.2.6v.6l.3.6v.7l.3.6v.7l.3.5v.6l.2.6.2.5.2.5.2.5.3.6.3.5.2.6.3.5.2.6.3.5.2.6.3.5.3.6.4.4.2.5h-.7zm.6.7l-.5.5-.2-.5h.8zm6.7-16.6h1v1.6l-.2.7v1.4l-.3.8v.6l-.3.7-.2.7-.2.6-.2.6-.2.5-.2.5-.3.6v.5l-.4.7-.2.5-.3.5-.2.5-.3.4-.3.5-.3.5-.4.4-.3.3-.4.4-.4.4-.3.5-.4.3-.4.4-.4.3-.3.3-.4.3-.7-.6.2-.3.4-.2.3-.3.2-.4.3-.2.4-.3.2-.4.3-.3.3-.4.3-.4.4-.5.3-.4.2-.4.2-.4.3-.5.2-.5.3-.5.2-.5.3-.5.2-.6.2-.4v-.6l.3-.6v-.6l.3-.6v-.7l.3-.6v-1.4l.2-.7V444zm0-24.3v-1l.4.6v5.6l.2 1v4.6l.2.8v2.8l.2.8v9.2h-1v-11.8l-.2-.8V429l-.2-1v-3l-.2-1v-5.3l.4.5zm0-1h.4v.6l-.5-.5z"/>
+        <path fill="#fff" d="M420 424.2l-12 .6c0 11 0 18.4.3 22.2a37 37 0 006.2 18.6c3.5-3 6.8-8.6 7-16.5.3-8-1-16.3-1.5-24.8z"/>
+        <path fill="#21231e" d="M408 424.3l12-.6v1l-12 .6-.4-.5.5-.5zm-.4.5v-.5h.5l-.4.5zm1.2 22.2h-1v-4l-.2-.6v-17.8h1V445l.2.4v1.6zm5.4 18.2l.6.8h-.7l-.2-.5-.3-.5-.3-.5-.3-.5-.4-.5-.3-.5-.3-.5-.2-.5-.3-.5-.3-.5-.2-.6-.2-.5-.3-.7-.2-.6-.2-.6v-.4l-.3-.6-.2-.6v-.7l-.3-.6-.2-.5v-.6l-.3-.8v-.6l-.2-.7v-.8l-.2-.6v-.7l-.2-.8v-2h.8v.7l.2.7v1.4l.2.7.2.7v.7l.2.7v.6l.3.6v.7l.2.6v.5l.3.6.2.7.2.5v.6l.3.6.2.5.2.5.2.5.2.5.2.6.2.6.3.5.2.6.2.4.3.5.3.5.3.4.3.5.3.3h-.8zm.6.8l-.4.4-.3-.5h.8zm6.2-17h1v2.3l-.2.7v.7l-.2.7-.2.6v.7l-.3.6v.6l-.2.5-.2.6-.2.7-.2.6-.3.5-.3.6-.3.5-.2.4-.3.5-.4.4-.3.4-.3.5-.3.4-.3.4-.3.5-.2.4-.3.3-.3.4-.4.3-.3.4-.3.3-.4.3-.6-.8.3-.3.3-.4.3-.3.4-.3.3-.4.4-.3.4-.4.2-.5.3-.4.2-.3.3-.4.3-.5.2-.4.3-.5.2-.6.3-.5.2-.6.2-.5.2-.6.2-.6.2-.6.2-.5.2-.6v-.5l.3-.7v-.6l.2-.7v-.6l.2-.8V449zm-1-25.3v1l.5-.5v2.4l.2.8v1.5l.2.7v3.4l.2.7v1.5l.2.8v.8l.2.8v2.5l.2.7v2.3l.2.8v5.3h-1v-7.4l-.2-.7v-1.6l-.2-.8V437l-.2-1v-1.5l-.2-.7v-1.6l-.2-.8v-1.6l-.2-.8v-1.6l-.2-.8v-2.2l.4-.6zm-.5.6v-.6h.5l-.5.6zm.5.4v-1 1z"/>
+        <path fill="#fff" d="M395 412.4l-12-.8c-1.2 11-2 18.2-2.2 22-.2 7.7 1 14.2 4 19.3 3.8-2.8 7.7-8 8.8-15.7 1.2-8 .8-16.4 1.4-25z"/>
+        <path fill="#21231e" d="M383 411l12 1v1l-12-1-.4-.5.5-.4zm-.4.5v-.5h.5l-.4.5zm-1.3 22.2h-1V431l.2-.4V429l.2-.6v-1.2l.2-.6v-2.2l.2-.7v-1.4l.2-.8v-.8l.2-.8v-1l.2-.8v-1l.2-.8v-1l.3-1v-1l.2-1v-1l1 .2v2l-.3 1v1l-.2 1v.8l-.2 1v.7l-.2 1v.8l-.2.8v.8l-.2.8v1.3l-.2.7v1.4l-.2.6v1.1l-.2.6v1.7l-.2.5v2.7zm3.2 18.8l.5.8-.7-.2-.2-.4-.2-.5-.2-.4-.3-.5-.2-.4v-.5l-.3-.5-.3-.5v-.6l-.3-.5v-.7l-.3-.6v-.6l-.3-.4v-.6l-.3-.7V443l-.2-.5v-.7l-.2-.6V440l-.2-.8v-5.5h1v6.8l.2.7v.7l.2.6v.6l.2.5v.6l.2.7.2.6v.6l.3.5v.5l.3.6.2.5.2.7.2.5.2.5.2.5.2.5.3.5.2.5.2.5.2.4h-.7zm.5.8l-.4.3-.3-.5.8.3zm8.2-16h1l-.2.8v.8l-.3.7v.7l-.3.7-.2.6-.2.6-.2.6-.3.6-.2.6-.3.6-.2.6-.3.5-.3.6-.3.5-.4.5-.3.5-.3.4-.3.5-.3.4-.4.6-.3.4-.4.4-.3.3-.4.4-.3.5-.4.3-.5.3-.3.4-.4.3-.4.3-.3.3-.5-.8.3-.3.4-.2.3-.3.4-.3.2-.3.4-.2.3-.4.3-.3.3-.3.3-.4.2-.4.4-.5.3-.4.2-.3.3-.5.3-.5.3-.4.4-.5.2-.5.3-.6v-.5l.4-.6.2-.5.2-.5.2-.6.2-.7.2-.7.2-.6.2-.7v-.7l.2-.7.2-.8zm1.8-24.4v-1l.5.5v1.5l-.2.8v5.6l-.2.7v9l-.2.8v2.2l-.2.8v.7l-.2.8v1l-.2.6v.8l-1-.2v-.7l.2-.8v-1.5l.2-.7V432l.2-.8V428l.2-.8V421l.2-.7v-4.8l.2-.8v-2.3l.6.5zm0-1h.5v.5l-.5-.6z"/>
+        <path fill="#fff" d="M384 399.6l-13.2-5.4c-2.2 8.8-5.2 37.8 0 50 4.5-3 9-8.4 10.3-17 1.6-9 2-18.2 3-27.6z"/>
+        <path fill="#21231e" d="M371 393.7l13 5.4-.3 1-13-5.4-.4-.6.7-.3zm-.7.3l.2-.5.5.2-.7.3zm.3 50l.6.7-.7-.2-.5-1.2-.5-1.3-.3-1.4-.4-1.5-.3-1.5-.3-1.6-.2-1.7-.2-1.7v-1.8l-.2-1.8v-3.6l-.2-2V418l.2-2v-1.8l.2-1.8.2-1.8V409l.3-1.8.2-1.7V404l.3-1.6.2-1.5.3-1.4.2-1.3.2-1.2.2-1v-1l.3-1 1 .3-.2 1v.8l-.3 1.2-.3 1.2-.2 1.3-.2 1.4-.2 1.5-.2 1.6-.2 1.6v1.7l-.3 1.7v1.7l-.2 1.8v1.8l-.2 1.8v3.8l-.2 2v5.4l.2 1.8v1.7l.2 1.8.2 1.7.2 1.6.3 1.6.3 1.5.3 1.3.5 1.4.4 1.2.4 1h-.8zm.6.7l-.5.3-.2-.5.7.2zm9.4-17.7h1v1l-.3.8-.2.8v.7l-.3.8-.2.8-.3.7-.2.7-.3.7-.3.5-.3.7-.2.6-.3.6-.3.6-.3.6-.5.5-.3.7-.4.5-.4.5-.3.5-.3.4-.4.5-.4.5-.5.4-.4.3-.3.4-.4.4-.4.4-.5.4-.5.3-.4.4-.4.3-.6-.8.4-.4.4-.3.4-.3.4-.3.4-.4.4-.3.4-.4.4-.4.4-.4.3-.4.4-.4.3-.5.3-.4.4-.4.3-.5.4-.4.3-.6.3-.5.3-.6.3-.6.2-.6.3-.7.3-.5.2-.6.3-.8.2-.7.2-.7.3-.7v-.7l.3-.7.2-.8v-.8zm3-27l.4-1 .4.6v1l-.2.8v1.7l-.2 1v1l-.2.8v1.8l-.2.8v1.7l-.2 1v1.7l-.2 1v1.6l-.2 1v.7l-.2 1v.8l-.2.8v1l-.2.7v.8l-.2 1v.8l-.2 1v.7l-.3.8v.8h-1v-.8l.2-1v-1.5l.2-.8v-1l.2-.8v-1l.2-.7v-1l.2-.7v-1l.2-.7v-1.6l.2-1v-.7l.2-1V410l.2-.8v-1.8l.2-.8v-1.8l.2-1v-1.5l.2-1v-.8l.2-1 .3.6zm.4-1l.4.3v.3l-.4-.5zm0 .6l-.3.4.2-.4zm0-.5l.4.3v.3l-.4-.5z"/>
+        <path id="c" fill="#edb92e" stroke="#21231e" d="M387.8 701.2c8 6.3 15.2-8.3 8-27.6-5-14.2-30.6-8.7-16.4 10.5.7 1 1.6.6 1.5-.4-1-4 1.6-6.3 5.5-5.5 10.5 2 11 22-.6 17.6-2.2-.2-.4 4 1.7 5.6z"/>
+        <path fill="#edb92e" stroke="#21231e" d="M400 639.2c-1 3.4-5 7.6-8 10.8-4.5 4.8-3.4 12.2-.2 16 3.5 4.4 5 9.2 5.8 13 .5 2.3 1.5 7.4.8 15.5-.4 4-2.7 6-5 7.7-1 1 .5 3 4.3 6 .4.2 1.5 1 2 3 .2.4 2 .4 2.2 0 .4-2 1.6-2.8 2-3 3.7-3 5.4-5 4.2-6-2.2-1.7-4.6-3.8-5-7.7-.6-8 .3-13.2.8-15.5.8-3.8 2.3-8.6 6-13 3-3.8 4.2-11.2-.5-16-3-3.2-7-7.4-8-10.7 0-.8-.3-1-.7-1-.3 0-.7.2-.7 1z"/>
+        <path fill="#edb92e" d="M395 685.5h11.6c2 0 3.6 1.6 3.6 3.5 0 2-1.6 3.5-3.6 3.5H395c-2 0-3.5-1.5-3.5-3.5s1.6-3.5 3.6-3.5z"/>
+        <path fill="#21231e" d="M406.6 686H395v-1h11.6v1zm4 3h-1v-1l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2h-.2v-.2h-.3v-.2h-.2v-.2h-.3l-.2-.2h-.5v-.2h-.6v-1h1l.2.2h.4v.2h.3l.2.2h.2v.2h.2v.2l.3.2.2.2v.2l.3.2.2.3v.3l.2.3v.4l.2.2v.8zm-1 0h1-1zm-3 4v-1h.8l.3-.2h.2l.2-.2.2-.2h.3v-.2l.2-.2v-.2l.2-.2.2-.3v-.3l.2-.2v-.8h1v1.2l-.2.2v.4h-.2v.3l-.2.3h-.2v.3h-.2v.3h-.3l-.3.2v.2h-.3l-.2.2h-.2l-.3.2h-.4l-.2.2h-.8zm-11.5-1h11.6v1H395v-1zm-4-3h1v1l.2.2v.3h.2v.2h.2v.2h.2v.2h.2v.2h.2l.3.2h.2l.2.2.3.2h.6v1h-1.2v-.2h-.3l-.2-.2h-.2l-.2-.2-.2-.2-.3-.2-.3-.3-.2-.3-.2-.3-.2-.2v-.2l-.2-.2v-.4l-.2-.2v-.8zm1 0h-1 1zm3-4v1H394v.2h-.3l-.2.2h-.2v.2h-.2v.2l-.2.2-.2.2-.2.2v.2l-.2.2v.5h-.2v.6h-1v-1.2l.2-.2v-.2h.2v-.3h.2v-.2l.2-.2v-.2h.2l.2-.2v-.2h.3v-.2h.3v-.2h.3l.3-.2h.2l.2-.2h.5l.2-.2h.7z"/>
+        <path fill="#fff" d="M417 579.2l.5-11c-4.4-2.2-15.2 0-19.7 10.2a64.7 64.7 0 01-18 25.2c10 1.8 18.4-.2 23.7-7.4 7.3-9.8 11.2-15.7 13.6-17z"/>
+        <path fill="#21231e" d="M418 568.3l-.4 11h-1l.4-11 .7-.5.3.5zm-.3-.5l.3.2v.3l-.3-.5zm-19.5 10.8l-1-.4.6-1 .5-.8.5-1 .6-.7.5-.8.5-.8.7-.7.6-.6.7-.7.7-.5.7-.6.6-.4.7-.5.8-.4.8-.4.7-.3.8-.3.7-.2.7-.3h.7l.8-.3h1.2l.7-.2h2l.7.2h.5l.6.2.5.2.4.2-.4 1-.4-.3h-.5l-.5-.2h-.5l-.5-.2h-3l-.7.2h-.6l-.7.3-.7.2-.7.2-.7.2-.8.3-.7.3-.7.4-.7.4-.5.5-.7.5-.7.6-.5.6-.6.6-.7.7-.6.6-.5.7-.6.8-.5 1-.3.7-.5 1zM380 603l-.2 1-.2-.8.6-.6.6-.5.7-.5.6-.6.7-.6.6-.6.5-.6.6-.6.6-.7.6-.7.5-.6.7-.7.5-.7.6-.7.5-.7.6-.8.4-.8.5-.7.5-.8.5-1 .5-.8.6-.8.6-1 .5-.8.6-1 .6-1 .5-1 .5-1 .5-1 .6-1 .5-1.2.5-1.2 1 .4-.6 1.2-.5 1-.6 1.2-.5 1-.4 1-.6 1-.5 1-.5 1-.6 1-.5 1-.6.8-.6.8-.5.8-.5.8-.6.8-.5.8-.6.7-.4.7-.6.8-.6.6-.5.7-.7.7-.6.6-.6.7-.4.6-.6.5-.6.6-.7.7-.6.5-.5.6-.6.6-.8.5-.2-1zm-.2 1h-1l.8-.8.2.8zm23.4-8l.8.5-.6.7-.5.6-.7.6-.6.6-.6.6-.5.5-.6.6-.7.5-.7.5-.7.4-.8.3-.7.4-.7.3-.7.3-.7.2-.7.3-.8.2-.8.2h-.8l-.8.2h-.8l-1 .2h-6.1l-1-.2-.8-.2-1-.2.2-1 1 .2.8.2h1l.8.2h6.6l.8-.3h.8l.7-.3.8-.2.7-.2.7-.3.7-.2.7-.2.8-.4.6-.3.7-.3.7-.4.6-.5.6-.5.5-.5.5-.5.6-.5.5-.6.7-.6.5-.7zm13.4-16.8h1l-.2.4-.2.2h-.2l-.3.3-.2.3-.3.2-.2.3-.3.3-.3.4-.3.3-.2.4-.4.5-.3.4-.3.3-.4.5-.3.5-.4.5-.5.6-.3.5-.4.5-.5.7-.5.6-.5.7-.5.7-.5.7-.5.6-.6.8-.6.8-.5.8-.6 1-.7.7-.7 1-.6.8-.8-.6.6-1 .7-1 .6-.7.7-1 .6-.7.6-.8.5-.7.5-.7.5-.7.5-.7.5-.8.5-.6.5-.6.4-.6.4-.6.4-.6.4-.5.4-.5.3-.5.3-.4.4-.5.3-.4.3-.4.3-.3.4-.3.3-.3.2-.2.3-.3.3-.2.4-.2h.2l.3-.2-.4.4zm1 0v.3h-.2l.2-.3z"/>
+        <path fill="#fff" d="M425.2 580.6l-11.8-5c-5 10-8.2 16.6-9.5 20.2-2.8 7-3.5 13.8-2.3 19.5a22 22 0 0014-11.6c3.8-7 6-15.3 9.5-23z"/>
+        <path fill="#21231e" d="M413.6 575.2l11.7 5-.3 1-11.8-5-.3-.8.6-.2zm-.7.2v-.4l.6.2-.7.2zm-8.7 20.6l-1-.4.2-.3.2-.4.2-.5v-.4l.2-.3.2-.5.2-.4.2-.5.2-.5.3-.5.2-.5.3-.6.2-.5.3-.6.3-.5.3-.7.2-.6.3-.6.3-.7.4-.8.3-.7.4-.8.2-.7.4-.8.4-.8.4-.8.4-.8.4-.8.4-1 .4-.8.5-.8.4-1 .8.5-.4.8-.5 1-.5.8-.4.8-.3 1-.4.7-.4 1-.5.7-.4.7-.3.8-.3.7-.4.6-.3.7-.3.7-.3.6-.2.7-.3.6-.3.5-.3.6-.3.6-.3.6-.2.5-.3.5-.3.5-.2.5-.2.4-.2.5v.5l-.2.4-.2.3v.3l-.3.4zm-2.7 18.8l.2 1-.6-.4v-.5l-.2-.7v-.6l-.2-.5v-1.7l-.2-.5v-3.7l.2-.6v-1.2l.2-.7v-.6l.2-.5v-.7l.2-.6.2-.7v-.6l.3-.8v-.6l.3-.7.2-.7.2-.7.2-.7.2-.7.2-.7 1 .4-.3.6v.7l-.4.6-.2.6-.2.6-.2.7v.5l-.3.6v.8l-.3.6v.6l-.2.7v.6l-.2.6v.5l-.2.6v1.9l-.2.5v3.5l.2.5v1.2l.2.5v.7l.2.5-.6-.4zm.2 1h-.5v-.4l.5.4zm13.5-12.4l1 .5-.5.6-.3.6-.4.6-.3.6-.4.6-.4.5-.5.6-.5.6-.4.5-.4.6-.5.4-.4.5-.5.4-.5.3-.4.4-.6.4-.5.4-.5.4-.5.3-.5.4-.5.3-.4.2-.5.2-.4.2-.5.2-.4.3h-.4l-.5.2-.5.2h-.5l-.4.3h-.5l-.2-1h.9l.4-.3h.4l.4-.3h.5l.4-.3.5-.2.4-.2.5-.2.5-.2.5-.3.5-.3.4-.3.4-.4.4-.3.5-.4.4-.4.4-.4.6-.4.4-.5.4-.4.5-.6.3-.4.4-.5.4-.6.5-.6.4-.5.2-.7.4-.6.4-.6.3-.6zM425 581l.3-.8.3.6-.3.7-.3.8-.3.7-.3.7-.3.8-.2.7-.3.7-.2.7-.3.7-.3.8-.3.7-.2.6-.3.8-.4.7-.3 1-.2.6-.2.7-.3.8-.3.8-.2.7-.3.7-.3.8-.3.7-.2.7-.3.7-.3.8-.3.7-.5.7-.3.7-.3.6-.5.6-.3.7-1-.6.5-.6.3-.7.3-.6.3-.6.4-.7.3-.6.3-.7.3-.7.2-.7.3-.7.2-.7.3-1 .3-.6.3-.7.3-.7v-.8l.4-.7.3-.7.3-.8.2-.7.3-.7.3-.8.3-.7.3-.7.3-.7.3-.7.2-1 .3-.6.3-.8.3-.7.4-.8.3-.8.3.7zm.3-.8l.5.2-.2.4-.3-.6z"/>
+        <path fill="#fff" d="M428.6 580.6l-12.7-2c-2.4 10.8-4 18-4.4 22-1 7.5 0 14 2.7 19.4 4.3-2.3 8.8-7 10.7-14.7 2-7.8 2.2-16.3 3.6-24.7z"/>
+        <path fill="#21231e" d="M416 578.2l12.6 2v1l-12.8-2-.4-.6.6-.4zm-.6.4v-.5l.6.2-.6.4zm-3.3 22h-1l.2-.5V599l.2-.6v-.5l.2-.6v-.5l.2-.6v-.6l.2-.5v-.6l.2-.6v-.6l.2-.6.2-.7v-.6l.3-.7v-.7l.2-.8v-.8l.3-.8.2-.8v-.8l.3-1 .2-.7.2-1 .2-.8.2-1 .2-1 .2-1 .2-1 1 .3-.2 1-.2 1-.2 1-.2 1-.2.8-.2 1-.2.7-.2 1-.2.7v.8l-.3.8-.2.8v.8l-.2.7v.6l-.2.7-.2.7v.6l-.2.6-.2.7v.4l-.2.6v.6l-.2.5v1.1l-.2.6v.4l-.2.4v1.2zm2 19l.5.8-.7-.2-.2-.5-.3-.5-.2-.5v-.6l-.3-.4-.2-.5-.2-.5-.2-.6v-.6l-.2-.6v-.6l-.3-.6v-.6l-.2-.6v-.6l-.2-.6v-2.8l-.2-.6v-5.4l.2-.7v-1.5h1v3.1l-.2.7v5.1l.2.6v1.2l.2.6v.6l.2.6v.6l.3.6v.5l.2.6v.7l.3.5v.5l.3.6.2.5.2.5.2.5.3.5.2.5-.7-.2zm.5.8l-.5.3-.2-.5.7.2zm10-15.2l1 .2-.2.7-.2.8v.7l-.3.7-.3.7-.2.5-.3.6-.4.7-.3.6-.3.6-.3.4-.3.6-.4.5-.3.5-.4.5-.4.5-.4.4-.4.5-.4.3-.4.4-.4.4-.4.5-.4.3-.4.4-.4.3-.4.3-.4.3-.4.4-.5.3-.4.3-.4.2-.5.2-.5-.8.4-.2.4-.3h.4l.4-.4.4-.3.4-.3.4-.3.4-.3.4-.3.4-.3.3-.3.4-.4.4-.4.5-.4.3-.4.4-.5.3-.4.4-.6.2-.5.3-.6.3-.5.3-.6.4-.6.3-.5.3-.6.2-.6.3-.5.2-.6.3-.8.2-.7.2-.6.2-.8zm4-25v1l.5-.5v.8l-.2.8v.7l-.2.8v.8l-.2.8v.8l-.2.8v.7l-.2.8v.8l-.2.8v1.7l-.2.7v.8l-.2.8v.8l-.2.8v.7l-.2.8v1l-.2.6v.8l-.2.8-.2.7v.7l-.2.7-.2.8v.7l-.3.7-.2.7-1-.2.2-.8.2-.7v-.7l.2-.8v-.7l.3-.7v-.8l.2-.8v-.7l.2-.8v-1.5l.2-.8v-.7l.2-.8v-1l.2-.7v-.7l.2-.8v-1.6l.2-.8v-.8l.2-.7v-1l.2-.7v-.8l.2-.8v-.8l.2-1v-.7l.3-.8.5-.4zm-.4.3v-.4h.5l-.4.5zm.5.6v-1 1z"/>
+        <path fill="#fff" d="M430.4 563.4h7.6c4.4 2 9 12.2 3.7 22a65.8 65.8 0 00-9.5 29.2c-7.4-6.8-10.8-14.7-8.2-23.3 3.4-11.7 6.8-25.2 6.4-28z"/>
+        <path fill="#21231e" d="M438 564h-7.6v-1h7.8l-.2 1zm0-1h.2-.2zm4 22.5l-.8-.5.5-1 .4-.8.4-.8.3-1 .3-.8.2-1v-.7l.3-1V574l-.2-1v-.6l-.3-.8-.2-.7-.3-.8-.2-.7-.3-.6-.3-.7-.3-.6-.3-.6-.3-.4-.3-.5-.4-.3-.4-.4-.3-.4-.4-.4-.5-.3-.4-.3-.3-.2.5-1 .4.4.5.2.5.4.4.4.4.4.4.4.4.5.4.6.3.6.3.6.3.6.3.7.2.7.3.7.2.6.2.8v.7l.3 1v.8l.2.8v3.5l-.2 1v1l-.4.8-.3 1-.3 1-.4.8-.4 1-.5 1zM432 615l.5-.7-.8.3v-.8l.2-1v-2.3l.3-1v-.7l.2-.8.2-1 .2-.8v-1l.2-.7.3-1 .2-.8.2-1 .2-.7.3-1 .3-.8.3-1 .4-1 .4-.8.4-1 .4-1 .4-1 .4-1 .5-1 .4-1 .5-1 .5-1 .5-1.2.6-1 .6-1.2 1 .5-.7 1-.6 1.2-.7 1-.5 1-.5 1.2-.5 1-.4 1-.5 1-.5.8-.4 1-.3 1-.3 1-.4.8-.3 1-.3.8-.2.8-.3 1-.4.8-.2.8-.2 1-.2.7-.2 1v.7l-.3.8v1l-.3.7v.8l-.2.8v1l-.2.7v1.8l-1 .2zm.7-.3v1l-.8-.7.7-.3zm-9.2-23.6l1 .4-.3.8-.2.8v.8l-.2.7v.8l-.2.8v3l.2.8.2.8v.7l.3.7.3.7.2.8.3.7.4.7.4.6.3.7.5.7.4.7.4.7.5.6.4.7.5.7.4.6.6.7.6.6.6.7.7.6.5.7-.6.7-.8-.6-.7-.7-.6-.7-.7-.6-.6-.7-.6-.7-.4-.7-.6-.7-.4-.7-.5-.8-.3-.7-.5-.7-.3-.8-.5-.7-.3-.7-.3-.8-.4-.7-.2-.7-.2-.8-.2-.7v-.8l-.2-.8v-.8l-.2-.8v-2.5l.2-.8v-.8l.3-.8.3-1 .2-.7zm7-28v1l.4-.7v1.8l-.2.5v1.1l-.2.7-.2.7v.8l-.3.8v.8l-.2 1-.2.8-.2 1-.3 1v1l-.4 1-.2 1-.3 1-.2 1-.2 1-.3 1.2-.3 1-.3 1.2-.3 1-.3 1.2-.3 1.2-.3 1-.3 1.2-.2 1-.4 1.2-1-.3.4-1 .3-1 .5-1.2.3-1 .3-1.2.4-1.2.3-1 .3-1.2.3-1 .3-1.2.3-1 .2-1 .2-1 .3-1.2.2-1 .2-1 .2-1 .2-.8.2-1 .2-.8.2-.8v-.8l.3-.7v-.8l.2-.7v-.6l.2-.6v-2l.4-.6zm-.6.5v-.6h.4l-.5.5zm.4 0v-.6.4zm-.5 0v-.6h.4l-.5.5z"/>
+        <path fill="#fff" d="M433.8 558.2l-12-4.3c-4.3 10-7.2 16.8-8.4 20.5-2.3 7.3-2.6 14-1 19.6a21.3 21.3 0 0014-11.6c3.3-7.3 4.5-16.3 7.4-24.2z"/>
+        <path fill="#21231e" d="M422 553.4l12 4.3-.4 1-12-4.4-.3-.6.6-.3zm-.7.3l.2-.4h.4l-.7.4zm-7.4 21l-1-.3v-.4l.2-.4v-.4l.3-.4v-.4l.3-.5.2-.5v-.5l.3-.5.2-.5.2-.6.3-.6.2-.5.2-.6.3-.6.2-.6.2-.6.3-.7.3-.6.3-.7.4-.7.3-.8.3-.8.3-.7.4-.8.3-1 .4-.8.3-1 .4-.8.5-1 .4-.8.3-1 1 .5-.5 1-.4 1-.4.8-.3 1-.4.8-.4.8-.4.8-.3.8-.4.8-.4.8-.3.7-.3.8-.3.8-.3.7-.3.6v.8l-.4.6-.2.6-.3.6v.6l-.3.6-.2.5-.2.5-.2.5v.5l-.3.5-.2.4v.5l-.3.4v.3l-.2.3v.4zm-1.8 19l.3 1-.6-.4-.3-.6v-.5l-.2-.6v-.5l-.2-.5v-.6l-.2-.7V583l.2-.7V581l.3-.6v-.7l.2-.6v-.6l.3-.6.2-.7v-.6l.3-.7.2-.6.2-.6 1 .3-.3.6-.2.7-.2.7-.2.6v.7l-.2.6v.7l-.2.6-.2.6v.6l-.2.6v1l-.2.7v6.5l.2.6v1.1l.2.4.2.6v.5l.2.5-.6-.3zm.3 1h-.5v-.4l.5.3zM426 582l.8.6-.3.6-.4.7-.2.5-.4.6-.4.7-.4.6-.4.5-.4.5-.4.5-.5.5-.5.5-.5.4-.4.4-.5.4-.4.4-.4.4-.5.3-.5.5-.5.3-.5.3-.5.4-.4.2-.5.3h-.5l-.5.4-.5.2-.5.2-.5.2h-.4l-.6.3-.4.2h-.5l-.3-.8.4-.2h.5l.5-.3.5-.2h.4l.5-.3.4-.2.4-.3.5-.2.5-.2.5-.3.4-.3.5-.3.5-.4.4-.3.6-.3.4-.4.5-.3.4-.4.4-.5.4-.4.4-.4.4-.4.4-.5.4-.5.4-.5.4-.5.4-.6.3-.6.3-.6.3-.6.3-.7zm7.6-23.4l.4-1 .3.7-.3.8-.3.8-.2.8-.3.7-.2.8-.2 1-.2.6-.2.8-.3.8v.8l-.3.7-.2.8-.2.8-.2.8v1l-.3.6-.2.8-.2.8-.2.8v.7l-.3.8-.2.8-.3.7-.2.8-.2.7-.3.8-.3.7-.2.7-.3.8-.3.7-.3.7-.2.6-1-.5.4-.5.3-.7.3-.7.3-.6.3-.7.3-.8.2-.8.2-.7.3-.8.2-.7.2-.8.2-.7v-.8l.4-.8.2-.8.2-.8.2-.8.2-.8.2-.7.2-.7.2-.8.2-.8.2-.8.2-1 .2-.6.2-.8.3-.8.3-.8.2-.7.3-.8.3-.8.3-.7.3.6zm.4-1l.4.3v.3l-.4-.6zm-.2.6l-.2.4.2-.4zm.2-.5l.4.2v.3l-.4-.6z"/>
+        <path fill="#fff" d="M425.6 549.7l-2.6-16.4c-2.8-.7-6.5 5.8-10 9.5-1 1-2 1.7-2.6 2.8a23.3 23.3 0 00-3.4 8 62.3 62.3 0 01-13 27.6c10.2-.2 18-3.8 21.8-12 5-11 7.7-17.7 9.8-19.5z"/>
+        <path fill="#21231e" d="M423.4 533.3l2.7 16.4h-1l-2.5-16.3.6-.6.4.5zm-.3-.4h.4v.2l-.3-.4zm-9.7 10.2l-.8-.7.4-.4.2-.2.3-.4.4-.4.2-.4.3-.4.4-.4.2-.5.3-.4.4-.5.2-.4.3-.3.4-.5.2-.4.3-.4.4-.3.2-.3.3-.4.3-.3.4-.3.3-.4.3-.2.3-.2.4-.2.4-.3h.3l.4-.3h.3l.4-.2h1.1l-.2 1h-1l-.3.2-.2.2-.3.2-.3.2-.3.2-.3.3v.4l-.5.3-.3.3-.3.3-.4.4-.3.4-.3.5-.4.4-.3.3-.3.4-.3.4-.4.5-.3.5-.3.4-.4.4-.3.4-.4.4-.3.4-.4.4-.4.4-.3.4zm-2.5 2.7l-.8-.7v-.2h.2l.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2h.2v-.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l1 .6h-.2l-.2.2v.2h-.2v.2h-.2l-.2.2v.2h-.2l-.2.2v.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2l-.2.2v.2h-.2zm-3.3 7.7l-1-.2v-.6l.2-.4v-.3l.2-.3v-.8l.2-.3v-.3l.2-.3v-.3h.2v-.4l.2-.3v-.2l.2-.2v-.2l.3-.3v-.2l.2-.2v-.2l.3-.2v-.3h.2v-.3l.3-.3v-.2l.3-.2v-.2l.2-.3.2-.2.8.6-.3.3v.2l-.2.2-.2.2v.4l-.2.2-.2.2v.3l-.2.3v.2l-.2.3-.2.2v.2l-.2.3v.2l-.2.3v.2l-.2.3v.2l-.2.3v.5l-.2.3v.2l-.2.3v.5l-.2.3v.7zm-13.4 27v1l-.3-.8.5-.8.5-.7.5-.6.5-.8.5-.7.5-.7.4-.6.6-.7.4-.7.5-.8.4-.7.4-.7.4-.8.4-.7.4-.7.4-.8.4-.8.4-.8.4-1 .4-1 .3-.8.3-1 .3-.8.4-1 .3-1 .4-1 .3-1 .3-1.2.3-1 .3-1.3.2-1.3.3-1.2 1 .2-.3 1.2-.3 1-.4 1.3-.3 1.2-.4 1-.4 1-.3 1.2-.4 1-.4 1-.4 1-.3 1-.5.8-.4 1-.3.8-.4.8-.4 1-.5.8-.4.8-.3.7-.5.8-.4.8-.5.8-.4.7-.6.7-.5.7-.5.7-.5.7-.5.8-.5.7-.5.6-.5.8-.5.7-.4-.8zm0 1h-1l.7-.8.4.7zm21.3-12.8l1 .4-.5.7-.4 1-.4.6-.4.7-.5.7-.4.6-.5.6-.5.6-.5.6-.6.5-.6.4-.6.5-.7.4-.6.4-.8.4-.7.4-.7.4-.7.3-.7.3-.8.3-.8.2-.8.2-1 .2-.7.2-1 .2-.7.2h-1l-.8.2h-1l-.8.2h-2v-1h2.8l1-.2h.8l.8-.2 1-.2h.7l1-.3.7-.2.7-.3.8-.2.7-.3.7-.3.7-.3.6-.3.7-.3.6-.4.7-.5.6-.4.6-.4.5-.4.6-.6.5-.5.5-.4.5-.6.5-.6.4-.7.5-.6.4-.6.3-.7.3-.8zm9.8-19.2h1v.3l-.3.3v.2l-.3.2-.2.2-.2.2-.2.3-.3.4-.2.2-.2.4v.4l-.4.5-.2.5-.3.5-.2.5-.3.6-.2.6-.3.6-.3.6-.4.7-.3.8-.3.8-.4.7-.3.8-.4 1-.4.7-.4 1-.4.8-.4 1-.4 1-.5.8-.3 1-.5 1-1-.4.6-1 .4-1 .5-1 .4-1 .5-1 .4-.8.3-1 .4-.7.4-.8.4-.8.4-1 .3-.6.4-.7.4-.7.3-.6.4-.7.3-.6.2-.4.2-.6.3-.5.2-.5.3-.4.2-.5.3-.3.2-.4.2-.3.2-.4.2-.3.2-.3.2-.2.3-.2.3-.2-.2.4zm1 0v.3-.3z"/>
+      </g>
+      <use width="1350" height="900" transform="matrix(-1 0 0 1 964.3 0)" xlink:href="#d"/>
+      <path fill="#fff" stroke="#21231e" d="M536.4 415a38 38 0 004.8-1.5 66.2 66.2 0 01-21.4-22c-7.8-12 3.3-33 8-44.3a53 53 0 0021.2-31c1-7.3-19-4.7-33 2-17 8-19.3 5.7-25.4 7-2.2 10.5 2.4 11.4 6.7 11-9.4 15-13.3 29.8-15 51.4-2-21.6-6-36.5-15.3-51.5 4.3.6 9-.3 6.7-10.7-6-1.4-8.4.8-25.4-7.2-14-6.5-34-9-33-1.8 3 13.7 11.8 24 21.3 31 4.6 11.2 15.7 32.4 8 44.2a67.3 67.3 0 01-21.5 22c1.7.7 3.3 1.2 5 1.5-1.2 1.5-11 4.5-12.3 3.7-7.6-5.3-15-18-21.4-25.2-18.2-20.8-27.3-36.7-24-49.6 4.5-14 20.8-29.6-.8-27-21.7 2.8-39.6 32.5-45.4 68.3-2 13.2-3.3 24.4-4.7 33.5 11.8-4.3 17-8.5 20.2-13.7-1.4 5-2.5 9.7-3.2 14.2 9.7-1.7 16.7-6.4 19.2-15 1-3.6 2.3-6.5 3.6-9 3 1 7 1 11.6 0 1.7 4 15 19 22.2 30 8 12.2 20.2 21.6 24.2 22 2 .4 2.7-4 2.2-10.2 21 .2 42.3.3 63-.4 20.7.7 41.8.6 63 .4-.6 6 0 10.6 2 10.3 4-.5 16.2-10 24.3-22.2 7-10.8 20.5-25.7 22.2-30a20 20 0 0011.6.2c1.3 2.5 2.5 5.4 3.5 9 2.5 8.6 9.5 13.3 19.2 15-.7-4.5-1.8-9-3.2-14 3.2 5 8.4 9.3 20.2 13.6-1.4-9-2.7-20.3-4.8-33.5-5.8-35.8-23.7-65.5-45.4-68.2-21.6-2.6-5.3 13-.7 27 3.3 12.8-5.8 28.7-24 49.5-6.5 7.3-13.8 20-21.4 25.2-1.2.8-11-2.2-12.2-3.8z"/>
+      <g id="e">
+        <path fill="#edb92e" d="M440.6 356.8c-2 1.8-8.8 1.8-18 2.4-14.8.5-23.4-4-25.3-13.5 5.6 6.6 12.2 10 19.7 8 10.2-2.5 16-4.3 18.3-3.8 1.6.4 4 3.3 5.3 6.8z"/>
+        <path fill="#21231e" d="M422.6 359.7v-1h1.8l.7-.2h2.5l.8-.2h2.8l.8-.2h3l.5-.2h1l.4-.2h.5l.4-.2h.4l.5-.2h.3l.3-.2h.4l.3-.2h.2v-.3h.3l.6.7h-.3l-.3.3-.3.2h-.2l-.3.3h-.4l-.3.2h-.4l-.4.2h-.5l-.5.2h-1l-.5.2h-1.5l-.6.2H432l-.6.2h-2.8l-.8.2h-2.3l-1 .2H423zm0 0zm-25-14.3l-.7.6.8-.4.2 1 .2.7.3.8.3 1 .3.6.5.7.4.7.4.6.5.6.4.6.6.6.6.5.6.4.7.5.6.3.8.5.8.4.8.3 1 .4.8.2 1 .3 1 .2 1 .2h1l1 .3h1.2l1.2.3h6.6v1H416l-1-.2h-1.3l-1-.3h-1.2l-1-.3-1-.3-1-.3-1-.2-1-.4-.8-.3-.8-.4-1-.4-.7-.5-.7-.5-.7-.5-.7-.6-.6-.5-.6-.6-.4-.8-.5-.7-.3-.7-.4-.8-.4-.7-.4-1-.3-.7-.3-1-.2-.8 1-.4zm19.3 8l.2 1h-.8l-.7.2h-1.4l-.7.2h-2.8l-.6-.2-.7-.2h-.7l-.6-.3h-.7l-.6-.3-.8-.3-.6-.3-.6-.2-.6-.3-.6-.4-.6-.3-.6-.4-.6-.4-.6-.6-.6-.4-.6-.5-.5-.6-.6-.6-.4-.6-.6-.5-.5-.6-.6-.7.7-.6.5.6.5.6.6.6.5.5.5.5.6.5.4.5.6.5.6.4.5.5.7.4.6.3.6.3.4.3.6.2.6.3.6.2.7.2h.5l.6.3.7.2h.6l.7.2h4.7l.6-.3h.7zm18.5-4l-.3 1h-2.6l-.4.2h-.9l-.5.2-.5.2h-.5l-.6.2h-.5l-.6.3h-.5l-.7.3-.7.2h-.6l-.7.3-.7.2-.8.2-.8.2h-.8l-.8.3-1 .3-.8.2-1 .2-.8.3-.3-1 1-.2.8-.2 1-.2.7-.2 1-.2.7-.2.8-.2.7-.2.8-.2.7-.2.7-.2.6-.2h.6l.6-.3h.6l.6-.3h.6l.5-.2h.6l.5-.2h.6l.4-.2h.9l.3-.2h2zm0 0zm5.4 7.8l-.7-.8-.2.6v-.7l-.3-.3v-.3l-.3-.3v-.3l-.3-.2v-.3l-.2-.2-.2-.3v-.3l-.3-.2-.2-.3v-.2l-.2-.2-.2-.3v-.2l-.3-.2h-.2v-.3h-.2l-.2-.3v-.2h-.3l-.2-.2v-.2h-.2v-.2h-.4v-.2h-.2l.3-1h.2l.2.2.2.2h.2l.2.2.2.2h.2v.3l.3.2.2.2h.2l.2.3v.2l.2.2.2.2.2.2.2.2.2.3v.2l.3.2.2.3.2.3v.3l.3.4.2.3v.3l.3.3v.3l.3.3v.3l.2.3v.6zm0-.6l.2.3-.3.2v-.6zm-21.5-35.4v1.5h-.4v-.4h-.2v-.7l.2-.2h.2v-.2h.2zm15.3 4l-.5 1.3-.6-.2-.5-.2h-.6l-.5-.2-.4-.2-.5-.2-.4-.2-.5-.2-.4-.2h-.5l-.4-.3-.5-.2h-.4l-.4-.3h-.5l-.4-.3h-.5l-.4-.2h-.4l-.5-.2h-.4l-.3-.2h-1.3l-.4-.2H420v-2h2.9l.5.2h1l.4.2h.5l.3.2.5.2h.5l.4.2.5.2h.5l.4.3h.6l.5.3.6.2h.5l.6.3.5.2.6.2h.5l.6.3.6.2.5.2.6.2h.5zm9 2.5v1.5H442l-.3-.2h-.4l-.3-.2h-.3l-.4-.2h-.3l-.4-.2h-.4l-.3-.2h-.5l-.3-.2-.4-.2h-.3l-.4-.2h-.2l-.3-.2h-.3l-.3-.3h-.7l-.2-.2h-.4l-.2-.2.4-1.5h.2l.2.2h.2l.2.2h.3v.2h.4l.3.2h.3l.3.2h.4l.3.2.3.2h.4l.3.2h.4l.3.2h.4l.4.2h.3l.4.2h.4l.3.2h.6l.3.2h1zm0 1.5v-1.5h.4v.2h.2v.2h.2v.9h-.2v.2h-.2v.2h-.2zm23.4 7.5l.2-1.2h.2v.2h.2v.8h-.6zm-10-2l.4-1.2h.5l.3.2h.4l.3.2h1.1l.2.2h.6l.2.2h.6l.3.2h.7l.4.2h.8l.3.2h.9l.2.2h.9l.5.2h.8l-.2 1.3h-.9l-.4-.2h-.6l-.4-.2h-.7l-.4-.2h-1.4l-.3-.2h-.7l-.3-.2h-.6l-.3-.2h-.5l-.4-.2h-.5l-.3-.2h-.5l-.2-.2h-.5l-.2-.2zm.4-1.2l-.3 1h-.2v-.8h.8z"/>
+        <path fill="#21231e" d="M431.5 332l-.7 1.3-.4-.3-.4-.2-.4-.3-.3-.2-.4-.3-.4-.3-.3-.3-.4-.3-.4-.2-.3-.4-.3-.3-.2-.3-.3-.3-.3-.4-.2-.3-.3-.4-.2-.3-.3-.4-.2-.4-.2-.3-.3-.5-.2-.4-.2-.2v-.4l-.3-.4-.2-.3-.2-.4-.2-.3v-.4l-.2-.3-.2-.3-.2-.4 1.4-.7.2.2.2.4v.3l.3.2.2.4.2.3v.3l.3.3.2.4.2.3.2.4v.3l.3.4.3.3.2.4.2.4.2.4.3.3.2.4.3.4.2.3.3.4.3.3.3.3.3.2.3.3.3.3.2.2.4.3.3.2.2.2.3.2zm7.6-5.3l1.5.8-.2.4-.2.3-.2.4-.2.4-.3.5-.3.4-.2.2-.3.4-.3.3-.3.2-.3.3-.3.3-.3.3-.2.4-.3.2-.3.2-.4.2-.3.2-.3.2h-.3l-.5.2h-.3l-.3.2h-2.2l-.4-.2-.3-.2h-.2l.7-1.5h.5l.2.2h1.7l.3-.2h.2l.3-.2h.2l.3-.3.2-.2.3-.2h.2l.3-.3.2-.3.3-.2.2-.3.3-.4.2-.3.3-.3.2-.4.2-.3.3-.4.2-.5.2-.4v-.3z"/>
+        <path fill="#21231e" d="M429.6 331l-2.2-2.3c-1-1.3-.5-3 2-5.4 1.5.7 3 1.3 4.2 2-1 3-2.2 4.8-4 5.6zm-6.3 82l-.4 1h-.4v-1h.8zm23.8-3.6l1 1-.7.5-.6.4-.7.5-.6.4-.7.5-.7.3-.7.4-.7.4-.7.4-1 .3-.6.3-.8.2-.7.2-1 .2-.7.2h-.8l-.8.2h-5l-1-.2h-.8l-.8-.3h-1l-.8-.4h-1l-.7-.3-1-.3-.8-.3.3-1 .8.2 1 .3 1 .3.7.2 1 .2.7.2h.8l1 .2h.7l.7.2h4.8l.7-.2h1l.6-.3.7-.2h.7l.7-.4.7-.3.7-.3.8-.3.6-.4.7-.4.7-.5.6-.5.6-.5.5-.5.6-.6zm3-2.8l1 .8h-.2v.2h-.2l-.2.2v.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2v.2h-.2l-1-.8h.2v-.2h.2v-.2h.2l.2-.2.2-.2.2-.2v-.2h.2v-.2h.2l.2-.2.2-.2.2-.2v-.2h.2l.2-.2.2-.2v-.2h.2zm1 .8l-1-.8.2-.2h.7v.2h.2v.8z"/>
+        <path fill="#21231e" d="M452.2 401.3l-1.2-.2v-.2h.2l.2-.2h.6v.4h.2v.2zm-5.5 16l.3 1-.7-.8.2-.4.2-.4.2-.5v-.4l.3-.4.2-.5.2-.5v-.5l.3-.4.2-.5.2-.5v-.5l.3-.5v-.5l.3-.5v-.5l.3-.5v-.5l.3-.5v-.5l.2-.5.2-.6v-.5l.2-.6v-.5l.2-.4v-.6l.2-.6v-.5l.2-.7v-.6l.2-.6 1.2.3v.6l-.2.5v.6l-.2.6v.6l-.2.6v.5l-.2.6-.2.4v.6l-.2.5v.6l-.3.6v.5l-.3.6v.6l-.3.5v.5l-.2.5-.2.5v.5l-.3.5-.2.5v.5l-.2.4-.2.5-.2.6-.2.5-.2.6-.2.5-.2.5-.2.5-.7-.8zm-.4.2l1 .5v.2h-.2v.2h-.4l-.2-.2v-.2h-.2v-.4zm15.2-9.5l1 .7-.3.4-.4.6-.3.4-.4.4-.2.4-.4.4-.4.4-.4.4-.4.3-.4.4-.5.3-.4.4-.6.3-.4.3-.5.3-.5.3-.5.3-.5.2-.5.3-.5.3-.6.2-.5.3-.7.2-.5.3-.6.2-.6.2-.6.2-.6.2-.6.2-.6.2-.6.2-.6.2-.3-1.2.6-.2h.6l.5-.3.6-.2.6-.2.6-.2h.6l.5-.3.6-.3.4-.2.5-.2.4-.3.5-.2.4-.3.5-.3.4-.4.5-.3.3-.3.5-.3.4-.3.4-.3.4-.2.4-.4.4-.3.4-.3.4-.3.3-.4.3-.4.3-.4.3-.4.2-.4.3-.4zm1 .7l-1-.7h.2v-.2h.7v.2h.2v.7z"/>
+        <path fill="#21231e" d="M461.3 400.2H460v-.2h.2v-.2h1v.4zm4.4 15.7l.7 1-.8-.3-.3-.4-.3-.4-.2-.5-.3-.5-.2-.4-.3-.4-.2-.5-.3-.5-.2-.4-.2-.5v-.5l-.3-.5-.2-.5-.2-.5-.2-.5v-.5l-.2-.5-.2-.5v-.6l-.3-.5v-.5l-.3-.6v-.4l-.2-.6v-.6l-.2-.5v-.7l-.2-.6v-.6l-.2-.5v-1.2h1v.5l.2.6v.6l.2.5v1.4l.2.5.2.6v.5l.2.5v.6l.3.5v.4l.2.5.2.4v.5l.2.4.2.5.2.4.2.5.2.4.2.4.2.5.2.4.2.5.3.4.3.4.2.4.3.5.2.3.3.4.3.3h-1zm0 .7l1-.7v.8l-.2.2h-.2v.2h-.4v-.2h-.2zm7.6-12.6l1 .4v.6l-.2.5v.5l-.2.5-.2.5-.2.5-.2.5-.2.5-.2.4-.2.4-.2.4-.3.5v.4l-.4.4-.2.5-.3.4v.3l-.4.3-.3.4-.3.4-.2.3-.3.3-.3.4-.3.3-.4.3-.3.3-.3.3-.3.2-.3.3-.3.4-.3.2-.3.3-.7-1 .3-.3.3-.2.3-.3.3-.2.2-.3.3-.3.2-.2.3-.3.3-.4.3-.3.2-.4.3-.4.4-.3.2-.4.3-.4v-.4l.4-.3.2-.5.3-.4v-.3l.3-.4.2-.4.2-.6.2-.4v-.5l.3-.4.2-.4.2-.5v-.4l.3-.5v-.4l.3-.5zm1 .4l-1-.3v-.2h.8v.2h.2v.4z"/>
+        <path fill="#edb92e" d="M406 317.8c-16.7 1.8-16 12.6-.4 28 3 3 4 3 4.6-.2 1.2-5.3 7-8.5 10.2-4.4 2 2.7 1.6 4.3 8.6 3.3 9 7.5 16.2 12.8 4.5 12.3-5-.2-9 2.8-15.7 2.5 2 4 2.3 4.3 3.4 4.6 6.5 1.2 13.3-2.8 19.8-1.6 14.3 2.6-23-38.6-22.4-40.3 1-4-9-11.5-12.7-4.2z"/>
+        <path fill="#21231e" d="M406 345.5l-.7.7-1.4-1.5-1.5-1.4-1.2-1.4-1.2-1.4-1-1.3-1-1.3-.8-1.3-.8-1.2-.8-1.2-.6-1.2-.5-1-.5-1.2-.3-1-.3-1v-1l-.2-1v-1l.2-1 .2-.8.4-.8.4-.8.6-.7.6-.7.8-.6.8-.6 1-.5 1-.5 1-.4 1.4-.4 1.3-.3 1.3-.2 1.6-.2v1l-1.5.2-1.4.2-1.2.3-1.2.3-1 .4-1 .5-1 .4-.6.5-.7.7-.6.6-.4.6-.4.6-.4.7-.2.8-.2 1v1.7l.2.8.2 1 .4 1 .4 1 .5 1 .5 1.3.7 1 .8 1.3 1 1.4.8 1.2 1 1.3 1.2 1.3 1.2 1.3 1.4 1.4 1.4 1.5zm3.8 0l1 .2v.3l-.2.3v.5l-.2.2v.2l-.2.2v.2l-.2.2-.3.3v.2h-.3l-.2.2H408l-.2-.2h-.2l-.2-.2h-.2l-.2-.3-.2-.2h-.2l-.3-.4h-.2l-.2-.3-.3-.3-.2-.2.7-.7.2.2.3.3.2.2.3.2.2.2.2.2h.2l.2.2.2.2h.3v.2h.6l.2-.2v-.2l.2-.2v-.2l.2-.4v-.4l.2-.3zm11-4.6l-.8.5-.3-.4h-.3l-.3-.4-.2-.2-.3-.2h-.3l-.3-.2h-.5l-.3-.2h-1.5l-.3.2-.4.2h-.2l-.4.3-.3.2-.2.2-.4.2-.3.2-.2.3-.3.3-.2.4-.3.3-.2.4-.3.5-.2.4-.2.3v.5l-.2.4v.5l-1-.2v-.5l.2-.5.2-.5.2-.5.3-.5.2-.4.2-.4.3-.4.3-.4.3-.4.4-.3.4-.3.4-.3.4-.2.3-.2.3-.2.5-.2h.4l.4-.2h.4l.4-.2h1l.4.2h.6l.4.3.4.3.3.2.4.3.4.5.4.4zm8.6 3.2l-.7.7h.4-.5l-.6.2h-4.5l-.2-.2h-.3l-.2-.2h-.2l-.2-.2-.2-.2-.2-.2h-.2v-.3l-.3-.3v-.2l-.3-.2v-.2h-.3l-.2-.3-.2-.3v-.2l-.3-.2v-.3l-.3-.2.8-.6h.2v.4l.3.2.2.3.3.3v.2l.2.2.2.2.2.2.2.2.2.2h.2v.2h.3l.2.2h.2l.2.2h5.4zm-.4 0l.2-.2.2.2h-.4zm4.5 13v-1h4.1l.5-.2h.4l.3-.3h.2v-1l-.2-.3-.2-.4-.3-.5-.4-.4-.5-.4-.4-.4-.4-.5-.6-.5-.6-.6-.6-.6-.7-.5-.6-.6-.7-.7-.7-.7-.8-.6-.8-.7-.8-.7-1-.7.8-.8.8.7.8.5.8.7.8.7.7.5.8.6.8.7.7.6.6.6.7.4.6.6.5.5.5.5.4.5.4.4.4.4.3.4.2.4v2.3l-.4.3-.3.2-.4.3-.6.2h-.6l-.7.2h-3.6zm-15.2 2l-1 .4.5-.8h3.4l.6-.2h.5l.5-.2h.5l.5-.2h.5l.4-.2h.5l.5-.2.4-.2h.6l.4-.2.5-.2h.4l.4-.2h.5l.3-.2h.5l.4-.2h.5l.5-.2h2.6v1H431l-.4.2h-.9l-.4.3h-.8l-.4.2h-.5l-.4.3h-.6l-.5.2h-.5l-.5.3h-.5l-.5.2h-.5l-.5.2h-.5l-.6.2h-.6l-.6.2h-3l.5-.7zm-1 .4l-.3-.8h.8l-.4.8zm4 4l-.2.8h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2l-.2-.3-.2-.2-.3-.3-.2-.2v-.2h-.2v-.4l-.3-.2v-.3h-.3v-.4l-.3-.3v-.4l-.3-.4 1-.5v.5l.2.3.2.3v.4l.3.3.2.2v.2l.3.2v.2l.2.2v.2h.2v.3l.2.2v.2l.2.2h.2v.2h.4v.2h.4zm-.2.8zm20-2.5v1l-.7-.2h-4.7l-.6.2h-.7l-.6.2h-.7l-.6.2-.6.2h-.6l-.6.2h-.7l-.7.3-.6.2h-.6l-.6.2h-.6l-.6.2h-4.6l-.6-.2.3-1 .6.2h4.8l.6-.2h.6l.5-.2h.6l.7-.2.7-.2h.6l.6-.2.6-.2h.7l.5-.2h.6l.7-.2h.7l.6-.2h4.9zm-23-40l1 .3.3.3.5.7.6.8.8 1.2 1 1.2 1 1.3 1 1.5 1.3 1.5 1.3 1.7 1.4 1.8 1.4 1.8 1.5 1.8 1.5 2 1.5 1.8 1.4 2 1.4 2 1.3 1.7 1.3 2 1.2 1.7 1 1.7 1 1.6.8 1.5.6 1.4.4 1.3.3 1.2v2l-.6.7-.8.5H441v-1h2l.4-.3.3-.4V360l-.3-1.2-.4-1.2-.6-1.3-.8-1.5-1-1.6-1-1.7-1-1.8-1.3-1.8-1.4-2-1.4-2-1.4-1.8-1.5-2-1.4-1.8-1.5-1.8-1.4-1.8-1.3-1.8-1.3-1.6-1.2-1.6-1-1.5-1.2-1.3-1-1.2-.7-1-.6-1-.5-.7-.3-.4v-.6zm-12-3.7v-1l-.5.2.4-.6.3-.7.5-.6.5-.4.5-.3.6-.3.5-.2.5-.2h2.6l.6.2.6.2.5.3.6.2.6.3.4.4.5.2.4.4.4.4.5.5.4.4.3.4.3.4.3.5.2.5.2.5v.5l.2.5v1l-1-.3v-1l-.2-.4v-.4l-.3-.4-.2-.4-.3-.4-.3-.4-.5-.4-.3-.4-.5-.4-.4-.4-.5-.3-.4-.3-.5-.3h-.7l-.5-.3-.5-.2h-.5l-.6-.2h-2l-.4.3-.5.2-.4.3-.5.5-.4.4-.3.4-.3.6-.4.3zm.4-.3l-.2.2h-.2l.4-.2zm-.5-.2v.5-.5zm.4.2l-.2.2h-.2l.4-.2z"/>
+        <path fill="#21231e" d="M407 317.2l-1.3.4v-.6h.2v-.2h.8v.2h.2v.2zm7.6 10.6l-.8 1-.4-.4-.3-.4-.3-.3-.3-.3-.4-.3-.3-.2-.3-.4-.3-.3-.2-.2-.3-.4-.3-.3-.3-.2-.4-.4-.3-.3-.2-.2-.2-.4-.2-.3-.3-.3-.2-.3v-.4l-.4-.3-.2-.4-.2-.4-.2-.4-.2-.4v-.4l-.3-.3-.2-.4v-.3l-.3-.3v-.4l-.3-.4 1.2-.4v.7l.3.3v.3l.3.4v.3l.3.4v.3l.3.4.2.3.2.3.2.4v.3l.3.3.2.4.3.3.2.3.3.4.2.3.3.3.3.3.4.4.2.3.3.3.2.3.3.3.4.2.2.3.3.3.4.4.2.3.4.3zm-.8 1l.8-1v.2h.2v.7h-.4v.2h-.7zm-9.5-4.6c.8 0 1.3.7 1.2 1.5s-.8 1.3-1.5 1.2c-.8-.2-1.3-.8-1.2-1.6s.8-1.3 1.5-1.2zm-45.9 38.4h.2v-.2h.4v.2h.2v.2l.2.2v.4h-.2l-.8-.8zm-22.7 56l.2-1V416l.4-1.5.3-1.5.4-1.7.6-1.8.5-2 .7-2 .6-2 .6-2 .6-2.2.8-2.2.7-2.2 1-2 .7-2.3 1-2.3.7-2.2 1-2.2.8-2 1-2.2.8-2 1-2 .8-2 1-1.7.8-1.5 1-1.6.7-1.5 1-1.3.7-1.2.8-1 .8-.8.8-.6.7 1-.6.5-.7.8-.7 1-.8 1-1 1.3-.7 1.5-1 1.5-.7 1.7-1 1.7-.8 2-1 1.8-.8 2-1 2-.8 2.3-1 2-.7 2.3-1 2.3-.7 2.3-.8 2.2-.7 2.2-.8 2.2-.6 2-.6 2-.6 2.2-.6 2-.5 1.8-.4 1.8-.4 1.6-.5 1.6-.2 1.4-.2 1.3v1H336zm5.6 80.5l-.7-2-.7-2-.7-2.2-.6-2.2-.6-2.2-.4-2.4-.4-2.3-.5-2.4-.4-2.5-.3-2.4-.3-2.5-.3-2.7-.2-2.6-.3-2.6-.2-2.5-.2-2.6v-3l-.2-2.7v-18.5l.3-2.7v-2.5l.2-2.6v-2.7l.3-2.6.2-2.5.2-2.5h1.2l-.3 2.6-.2 2.5-.2 2.6-.2 2.6v2.6l-.2 2.6v2.6l-.2 2.7v18.8l.2 2.6v2.6l.3 2.6.3 2.6.3 2.6.3 2.5.2 2.5.3 2.5.4 2.4.3 2.5.5 2.3.5 2.3.5 2.3.6 2.2.6 2 .7 2.2.7 2-1 .4zm1-.4v.8h-.8v-.2l1-.6z"/>
+      </g>
+      <use width="1350" height="900" transform="matrix(-1 0 0 1 964.3 0)" xlink:href="#e"/>
+      <path fill="#21231e" d="M473 398.4h-.2v.5h-.2v.8l.2.7v1.6l.2.8.2.8v.7l.3.8v.8l.3.7.2.8.3.7.2.7.2.7.3.7.3.8.3.7.3.7.2.7.3.6.4.6.2.7.4.5.4.7.4.7.4.5.5.6.4.8.5.6.4.6.5.6.6.6.2.2h.8v-.2l.6-.6.5-.6.5-.6.4-.6.5-.7.5-.5.4-.6.3-.8.4-.6.3-.7.4-.8.4-.6.3-.7.4-.8.3-.7.3-.7.3-.7.3-.6.2-.7.3-.7.3-.7.2-.8v-.7l.3-.7.2-.7v-.7l.3-.8v-1.4l.2-.8v-2.1h-1v.4l-.2 1v1.4l-.2.7v.7l-.2.7-.2.7v.8l-.3.7-.2.7-.2.7v.6l-.3.7-.3.7-.2.7-.3.7-.4.6-.2.7-.4.7-.3.6-.3.7-.4.6-.4.7-.3.6-.4.6-.5.6-.4.6-.4.7-.4.7-.4.6-.5.6h-.2l-.5-.7-.4-.6-.4-.6-.4-.6-.4-.6-.4-.6-.4-.6-.4-.6-.3-.7-.4-.6-.4-.7-.3-.6-.3-.7-.4-.7-.2-.6-.3-.7-.2-.7-.2-.7-.2-.7-.2-.7-.2-.8-.2-.7-.2-.7v-.7l-.3-.6v-.8l-.2-.7v-2.3l-.2-.8v-.4h-.2v-.2h-.5z"/>
+    </g>
+    <g transform="translate(-32 32) scale(.53333)">
+      <path fill="#c6363c" d="M549.2 422v108.6a72 72 0 01-19.7 49.8 65 65 0 01-94.7.1 72.9 72.9 0 01-19.7-49.8V422h134.2z"/>
+      <use width="1350" height="900" transform="matrix(-1 0 0 1 964.3 -90)" xlink:href="#f"/>
+      <path fill="#fff" stroke="#21231e" d="M549.2 488.6v28h-53v83a63.8 63.8 0 01-14 1.5 59 59 0 01-14-1.5v-83h-53v-28h53V422h28v66.6h53z"/>
+      <use width="1350" height="900" transform="translate(0 -90)" xlink:href="#f"/>
+      <path id="f" fill="#fff" stroke="#21231e" d="M459 567.3V528c-8.4-2.3-29.3-10.6-30.3 7.6-.5 8.4 10.4 14 13.3 6.5 1.4-3.4 0-6-2-6.7-2.4-.8-4.6 1-4 3.6-8.8-4.7 8-14.6 15.5-1.7 2.2 3.7-3.7 7.6-3.7 10.4 0 2.7 5.8 7 3.7 10.3-7.7 12.8-24.3 3-15.5-1.6-.6 2.7 1.6 4.5 4 3.6 2-.8 3.4-3.3 2-6.8-3-7.5-13.8-2-13.3 6.5 1 18.2 22 10 30.4 7.6z"/>
+      <use width="1350" height="900" transform="matrix(-1 0 0 1 964.3 0)" xlink:href="#f"/>
+      <path fill="#21231e" d="M414 421v113.3l.2 1.7v2l.4 1.7.2 1.8.3 1.7.4 1.8.3 1.8.4 1.7.6 1.7.5 1.7.6 1.5.6 1.7.5 1.6.7 1.6.7 1.6.7 1.6.8 1.6.8 1.5.8 1.5 1 1.5.8 1.5 1 1.4.8 1.4 1 1.4 1 1.4 1 1.3 1 1.5 1.2 1.2 1 1.3 1.2 1.2 1.2 1.2 1.2 1.2 1.2 1 1.3 1.3 1 1 1.4 1 1.3 1 1.4 1 1.5 1 1.4 1 1.3.8 1.4.8 1.5.8 1.4.8 1.6.7 1.5.6 1.5.7 1.5.6 1.6.5 1.6.5 1.5.5 1.6.5 1.8.4 1.6.4 1.7.4 1.8.2 1.7.3 1.7.2h1.7l1.6.2h8.9l1.7-.3 1.8-.3 1.7-.3 1.7-.2 1.7-.4 1.5-.4 1.7-.4 1.6-.5 1.6-.5 1.6-.5 1.5-.6 1.6-.7 1.6-.7 1.6-.7 1.5-.8 1.4-.8 1.6-.8 1.4-1 1.5-.7 1.4-1 1.2-1 1.4-1 1.3-1 1.2-1 1.3-1 1.2-1.3 1.2-1 1-1.3 1.3-1.2 1.2-1.2 1-1.3 1.2-1.2 1-1.4 1-1.2 1-1.4 1-1.4 1-1.4 1-1.4.7-1.5 1-1.5.7-1.5.8-1.5.8-1.6.7-1.6.6-1.6.6-1.6.6-1.6.5-1.7.5-1.6.5-1.8.4-1.7.6-1.7.3-1.8.2-1.8.3-1.7.3-1.8v-.9l.3-2 .2-1.7V421H414zm2.3 2.2H548V536l-.3 1.6-.2 1.8-.2 1.7-.3 1.8-.3 1.7-.4 1.7-.3 1.7-.5 1.5-.4 1.7-.4 1.6-.5 1.6-.5 1.6-.6 1.5-.8 1.6-.7 1.6-.7 1.5-.7 1.6-.7 1.4-.8 1.5-.8 1.4-1 1.3-.8 1.4-1 1.3-1 1.3-1 1.3-1 1.3-1 1.2-1.2 1.2-1 1.2-1.2 1-1.2 1.3-1.2 1-1.2 1-1.2 1-1.3 1-1.2 1-1.4 1-1.4 1-1.3.8-1.4 1-1.5.7-1.4.8-1.3.7-1.5.8-1.5.6-1.4.7-1.5.7-1.6.5-1.5.6-1.5.5-1.6.4-1.6.4-1.6.5-1.6.3-1.6.3-1.7.4H489l-1.8.3h-1.7l-1.6.2h-3.6l-1.6-.2H477l-1.6-.3h-1.6l-1.7-.4-1.5-.2-1.6-.3-1.7-.4-1.6-.3-1.6-.4-1.4-.5-1.6-.6-1.5-.5-1.5-.6-1.5-.6-1.4-.6-1.4-.8-1.4-.7-1.4-.8-1.4-.8-1.4-1-1.3-.7-1.4-1-1.3-1-1.2-1-1.3-1-1.2-1-1.2-1-1-1-1.3-1.3-1-1-1.2-1.3-1-1.2-1-1.3-1.2-1.4-1-1.3-1-1.3-1-1.3-.8-1.4-.8-1.4-1-1.5-.7-1.5-.8-1.4-.7-1.5-.8-1.4-.6-1.5-.6-1.5-.6-1.5-.5-1.6-.6-1.6-.5-1.6-.5-1.7-.4-1.6-.4-1.8-.4-1.7-.3-1.7-.3-1.7-.2-1.6-.2-1.8-.2-1.7v-5.4z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ru.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ru.svg
new file mode 100644
index 0000000..d643087
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ru.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ru" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h512v512H0z"/>
+    <path fill="#0039a6" d="M0 170.7h512V512H0z"/>
+    <path fill="#d52b1e" d="M0 341.3h512V512H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/rw.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/rw.svg
new file mode 100644
index 0000000..26e41f6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/rw.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-rw" viewBox="0 0 512 512">
+  <path fill="#20603d" d="M0 0h512v512H0z"/>
+  <path fill="#fad201" d="M0 0h512v384H0z"/>
+  <path fill="#00a1de" d="M0 0h512v256H0z"/>
+  <g transform="translate(374.4 133.8) scale(.7111)">
+    <g id="b">
+      <path id="a" fill="#e5be01" d="M116.1 0L35.7 4.7l76.4 25.4-78.8-16.3L100.6 58l-72-36.2L82 82.1 21.9 28.6l36.2 72-44.3-67.3L30 112 4.7 35.7 0 116.1-1-1z"/>
+      <use width="100%" height="100%" transform="scale(1 -1)" xlink:href="#a"/>
+    </g>
+    <use width="100%" height="100%" transform="scale(-1 1)" xlink:href="#b"/>
+    <circle r="34.3" fill="#e5be01" stroke="#00a1de" stroke-width="3.4"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sa.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sa.svg
new file mode 100644
index 0000000..1cc41b8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sa.svg
@@ -0,0 +1,26 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sa" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M124 0h496v496H124z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-128) scale(1.0321)">
+    <path fill="#199d00" d="M0 0h744v496H0z"/>
+    <path fill="#fff" d="M187.5 140.6c-.8 11.6-1.9 32 8 34.1 11.9 1.1 5.3-20.2 9.6-24 .9-2 2.4-2 2.5.5v18c-.1 6 3.7 7.6 6.7 8.9 3.2-.3 5.2-.2 6.5 2.8l1.4 31.3s7.3 2 7.6-17.6c.4-11.5-2.3-21.2-.7-23.4 0-2.2 2.8-2.3 4.8-1.3 3.1 2.2 4.5 5 9.3 3.8 7.4-2 11.8-5.6 12-11.2a51 51 0 00-3.4-16.1c.3-1-1.5-3.5-1.1-4.5 1.3 2 3.3 1.9 3.8 0-1.3-4.2-3.2-8.1-6.4-9.8-2.6-2.3-6.4-1.8-7.8 3a26 26 0 006 17.3 17 17 0 011.5 8.7c-2.1 1.3-4.2.7-6-1.1 0 0-5.9-4.5-5.9-5.4 1.6-10 .4-11.1-.5-13.9-.6-3.8-2.4-5-3.9-7.6-1.5-1.6-3.4-1.6-4.4 0-2.6 4.5-1.4 14.1.5 18.4 1.4 4 3.4 6.5 2.4 6.5-.8 2.2-2.4 1.7-3.6-.9a61.2 61.2 0 01-2.1-16.9c-.5-4.5-1-14-4-16.4-1.8-2.4-4.5-1.2-5.4 1a80 80 0 00.3 13c2 7 2.6 13.4 3.6 20.7.3 9.8-5.7 4.3-5.4-.6 1.4-6.3 1-16.3-.2-18.8-1-2.5-2.1-3.1-4.4-2.7-2-.2-6.7 5-8 13.8 0 0-1.2 4.5-1.7 8.4-.7 4.5-3.6 7.7-5.7-.6-1.8-6-2.9-20.9-5.9-17.4z"/>
+    <path fill="#fff" d="M219.9 188.2l-31 14.9c.3-7 14.7-19.8 24.5-20 6.4.2 4.8 2.5 6.5 5z"/>
+    <path fill="#fff" d="M214.5 197.9c-16.4 42.1 38.2 48 44.3 1.7.6-1.9 3-3.8 3.3-.7-1.3 42-42.2 44.8-49.2 31.6-1.7-3-2.2-10-2.4-14.2-1-8.2-5.4-5-6 3.2-.7 4.5-.6 5.8-.6 10.2 2.2 33 55 18.8 63.6-8.5 4.5-15.1-.8-26.3 1.7-26.3 5.2 5.7 12.6.8 14.2-1.2.7-1 2.4-1.6 3.6-.3 4 3 11.3 1.5 12.8-3.6.8-5.1 1.5-10.3 1.7-15.7-3.3 1-5.8 1.7-6 3l-.7 4.6c-.3 1.4-3.2 1.5-3.3-.4-1.3-5.7-6.5-6.5-9.7 2.4-2.1 1.8-6 2-6.4-.5.5-6-1.9-6.8-6.7-4l-4.7-35c2 0 3.9 1.4 5.7-.9-2-6.3-6.3-19-8.6-20-1.2-1.4-2.1-.5-3.6-.2-2.6.8-5 3-4.2 7.3l8 50.2c.4 2.1-1.4 5-3.7 4.7-3.9-2.7-4.9-8-11.5-7.8-4.9 0-10.4 5.3-11 10.4-.9 4-1.2 8.4 0 11.9 3.3 4 7.4 3.7 11 2.7 2.9-1.2 5.3-4.1 6.4-3.4.7.9.1 10.5-13.9 18-8.4 3.8-15.2 4.6-18.8-2.3-2.2-4.3.2-20.7-5.3-17z"/>
+    <path fill="#fff" d="M283.8 155c3.3-1.1 18.8-19 18.8-19l-2.3-1.8c-.9-.8-.8-1.5 0-2.3 3.8-2.2 2.6-7.2.6-9.4a9.4 9.4 0 00-8.4 0c-2.7 2.7-3.3 6.8-1.2 9.4 2 1 4.2 3 2.8 4.2-6.4 6.8-23.8 18.5-21.8 19 .4.5 11.2.5 11.5 0zm-93.9 63c-5.8 9.3-6.3 23.2-3 27.3 1.6 2 4.4 2.8 6.5 2.2 3.7-1.6 5.3-9 4.4-11.7-1.2-2-2.2-2.2-3.4-.6-2.6 5.2-3.7 1.6-3.9-1.3-.4-5.5.1-10.7.7-14.7.7-4.1 0-2.9-1.3-1.2zM439 203c-5.6-12.1-13.4-24.1-15.9-28.7a541 541 0 00-24-34.9c-6-7.2 9.9 3-2-11.3-4.5-4-4.8-4.1-8.6-7.3-1.9-1.4-6.5-3.8-7.3.2a23.5 23.5 0 00.4 8.6c.4 2 3.3 5.3 4.8 7.3 19 25.5 35.9 51.4 52.1 83.8 2.6-1.2 2-15.6.5-17.7z"/>
+    <path fill="#fff" d="M414.3 243.7c-1.1 1.3 2.7 6.6 7.7 6.6 8.4-1 15.7-5.7 22.5-18 1.8-3 5-9 5.1-13.9.7-28-1.4-49.8-5.6-70-.2-2 0-4.4.3-5 .5-.6 2.3 0 3.3-1.5 1.4-1.5-3.8-13.6-6.7-18.2-1.1-2.1-1.5-3.5-3.2.2-1.9 3-3 8.3-3 13.2 4 27.6 5.3 51.8 7.9 79.3.2 2.7-.2 6.6-2 8.1a77.8 77.8 0 01-26.3 19.2zm112.8-.1c-6 3.4-6 7.4-1.1 7.6 8.3-1 18.2-1.7 25-12 1.8-2.9 4-10.7 4.1-15.4.6-28-.4-49-4.6-69.2-.2-2-1.1-6.5-.8-7.1.6-1.4 3.3.1 4.3-1.5 1.4-1.4-7-12.3-10-17-1.1-2-1.5-3.4-3.2.3-1.9 3-2.5 8.4-1.8 13.1 4.5 30 7.8 52.5 8.4 79-.3 2.6-.4 4-1.6 7.1-2.6 3.4-5.5 7.6-8.3 9.6-2.7 2-8.5 4-10.4 5.5z"/>
+    <path fill="#fff" d="M531.6 216.7v-18.3a33 33 0 00-3-13.2c-1.8-4-.7-7.1-1.5-11.4-.8-4.2-.6-10.6-1.8-15.6-.4-2-1.4-8.2-1-8.8.4-1.4 2.3 0 3.2-1.6 1.4-1.5-4.8-17.5-7.9-22-1.1-2-3.1-1.4-5.7 2-2.3 2.1-1.4 7.1-.5 11.8 6 31.3 10.4 59.7 9.5 89.4-.3 2.6 8.8-7.5 8.7-12.3zm-44.3-38.8c-3.7 0-11.6-7.4-14-11.6a7.8 7.8 0 01.5-6.2c1.4-1 3.6-2 5.2-1 0 0 1.6 2.4 1.3 2.7 2 1 3 .4 3.2-.5.1-1.4-.7-2.3-.7-4 1-4.3 6-5 7.8-2.2 1.4 1.7 1.9 5.3 2.1 7.8 0 1.2-2-.3-3.2 0-1.1.4-1.4 1.7-1.5 2.9-.2 3.2-.6 8.3-.7 12zm-69.6 46.6c1-9.6-.3-26.5-.4-32.1-.4-13.3-2.6-39-3.6-43.2-1.2-8.1 3.3.9 2.7-3.8-1.5-8-6-13.6-11.2-21-1.7-2.3-1.6-2.8-4.3.6-2.8 6.6-.3 11.1.4 16.2 3.8 16.7 6 32 7 47.2a381.2 381.2 0 01.4 47.5c2.9.2 7.5-4.6 9-11.4z"/>
+    <path fill="#fff" d="M544.5 209.2c-6.7-11.1-16.7-23.2-19.4-27.7a639.2 639.2 0 00-28.2-36.7c-8.3-8.7 3.8-1.4-1.6-8.1-4.6-5-6-6.6-9.8-9.6-2-1.3-3.2-3.7-3.8.4-.3 3.6-.5 7.8-.3 10.9 0 1.7 1.8 4.8 3.3 6.7 20 24.7 42 50 59.7 81.7 2.5-1.4 1.7-15.6 0-17.6z"/>
+    <path fill="#1ba400" d="M242.8 188.6c-.5.9-1.6 2-1.2 3 .8 1 1.4 1.3 2.6 1.4 1 0 2.6.2 2.9-.4a3.2 3.2 0 00.5-3.2c-1-2.8-4.2-1.8-4.8-.8z"/>
+    <path fill="#fff" d="M467.2 351.3c8.9.3 14.7.4 22.6 1.3l9.2-1c10.3-1 10.8 14.7 10.8 14.7-.1 9.2-3.7 9.6-8.2 10.6-2.6.4-4-1.5-5.3-3.5-1.7.7-4 .8-6.9.4-3.7-.2-7.4-.2-11-.5-4-.3-6.1.5-10 .1-.9 1.3-2 3-4.3 2.5-2-.2-4.4-5.9-3.7-10.1 1.4-3.1 1-2.1.9-3.5-36.4-.9-73-2.5-108.7-2-28 0-55.5 1.2-83 2.4-14.7-.2-26-2.6-33.7-14 .7 0 37.5 2.2 48.2 1.5 20-.3 38.1-1.9 58.4-2.5 40 .7 79.5.7 119.5 3.5-3.8-2.6-4-8.8 2-10.3.4-.3.7 3 1.6 3 4.6-.3 2.6 6 1.6 7.4zM306.8 131c-6 17.3 3.4 36.2 10 34.4 4.8 2 7.8-7.1 9.8-17 1.3-2.8 2.3-3.1 3-1.7-.2 13.2 1 16.1 4.4 20.1a11 11 0 0014.3.3l5.9-6c1.3-1.3 3-1.4 4.9-.2 1.8 1.7 1.5 4.5 5.4 6.5 3.2 1.3 10.2.3 11.8-2.5 2.1-3.7 2.7-5 3.7-6.4 1.5-2 4.1-1.2 4.1-.5-.2 1.1-1.7 2.3-.7 4.3 1.8 1.4 2.3.5 3.4.2 3.8-1.8 6.7-10.2 6.7-10.2.1-3-1.6-2.8-2.7-2.2l-3 2.1c-2 .3-5.6 1.5-7.4-1.3-1.8-3.3-1.9-8-3.3-11.4 0-.2-2.4-5.3-.1-5.6 1.1.2 3.6.8 4-1.2 1.2-2-2.6-7.7-5.2-10.6-2.2-2.4-5.4-2.7-8.4-.2-2 2-1.8 4-2.2 6.1a9.6 9.6 0 002 8.4c2.1 4.1 6 9.4 4.7 17 0 0-2.3 3.5-6.2 3-1.6-.4-4.2-1-5.6-11.4-1-7.9.2-18.9-3.1-24-1.2-3.2-2-6.2-5-.8-.8 2-4.2 5.2-1.8 11.8a35 35 0 012 18.3c-1.4 2.1-1.7 2.9-3.6 5-2.5 2.7-5.3 2-7.4 1-2-1.3-3.6-2-4.5-6.3.2-6.8.5-17.9-.7-20.3-1.8-3.6-4.8-2.3-6.1-1.2a46.3 46.3 0 00-11.2 22.9c-1.7 5.5-3.5 4-4.8 1.7-3.1-3-3.3-25.9-7.1-22.1z"/>
+    <path fill="#fff" d="M325 168.7c2.8-2 1.5-3.3 5.6.8a69.8 69.8 0 019 30.3c-.3 2.5 1.5 4 2.3 3.5.4-5.8 14.7-14 27.7-15.2 2-.4 1-4.2 1.3-6.2-.8-7.2 4-13.8 10.9-14.3 9.2 1.4 12.3 6.3 12.5 13.8-1 14.5-16.1 17-24.6 18-1.3.6-1.8 1.2 0 1.9l35.5.1 1.8 1c.2 1-.5.2-2 2.5s-3.4 7.7-3.5 11.2a173 173 0 01-32.6 6.2c-3.8 2-5.7 4.6-5 7.5 1.3 3.3 9.9 6.5 9.9 6.7 1.6 1 3.5 3.4-.5 8.2-17.3-.7-30.7-8.1-35.3-18.5-1.4-1-3 0-3.9 1.4a54.7 54.7 0 01-24.9 20.7c-6.9 1.7-13.9-1-17.2-5.5-2.2-2.6-2.1-5.4-3-6-3.7 1.6-35.6 15.2-31.5 8.9 7.7-8.4 21.2-14.5 33-22.7 1-2.7 2.5-12 7.2-15 .2 0-.8 5.4-.7 7.7 0 1.9-.1 2.6.3 2.1.8-.5 15.2-11.8 16.3-15.3 1.4-2 .4-7 .4-7.2-2.6-7-6.4-7.5-7.8-11-1.3-4.6-.7-9.8 1.9-11.3 2.3-2.1 5-1.9 7.6.4 3 2.6 5.5 7.7 6.3 11.5-.5 1.5-3.8-1-5-.2 2 2 3 4.5 3.7 7.5 2 8 1.3 11-.5 16.2-6.4 13.4-14.6 17.5-21.8 22.4-.2.1-.3 3.5 2.4 5.3 1 1 4.7 1.4 9 0a52.8 52.8 0 0021.7-22.6c1.3-7.2-.5-14.8-2.4-21.4a252.7 252.7 0 01-6-16c-.2-4 .1-5.4 2-7.4zm-92.8-37.4c4 1.9 11.7 1 11.4-5.5l-.2-3.1c-.8-2-3.1-1.5-3.6.6-.2.6.3 1.7-.3 2-.4.3-1.7.1-1.6-1.7 0-.6-.4-1.2-.7-1.6-.3-.1-.4-.2-.9-.2-.6 0-.5.2-.9.7l-.3 1.5c0 .7-.3.9-.8 1-.5 0-.4 0-.8-.2-.3-.3-.6-.4-.6-.9l-.2-1.6a2 2 0 00-1-.6c-2.3 0-2.4 2.6-2.3 3.6-.2.1-.3 4.7 2.8 6z"/>
+    <path fill="#fff" d="M351.8 181.9c4 2 13.8.8 11.4-5.5l-.2-3c-.8-2-3-1.5-3.6.5-.1.6.3 1.7-.3 2-.3.4-1.6.2-1.6-1.6 0-.6-.4-1.2-.7-1.6-.2-.2-.4-.2-.9-.2s-.5.1-.8.6l-.3 1.5c-.1.7-.4 1-.8 1-.6 0-.4 0-.9-.2-.2-.3-.6-.4-.6-.9s0-1.3-.2-1.6c-.2-.3-.6-.4-1-.5-2.2 0-2.4 2.5-2.3 3.5-.1.2-.2 4.7 2.8 6zm69.8-21c4 2 11.7 1.1 11.4-5.4l-.2-3.1c-.8-2-3.1-1.5-3.6.5-.2.7.3 1.7-.3 2-.4.4-1.7.2-1.6-1.6 0-.6-.5-1.2-.7-1.6-.3-.1-.4-.2-1-.2-.5 0-.5.2-.8.7l-.3 1.5c0 .6-.3.9-.8 1-.5 0-.4 0-.8-.3-.3-.2-.6-.4-.6-.8 0-.5-.1-1.3-.3-1.7-.2-.3-.5-.4-1-.5-2.2 0-2.3 2.6-2.2 3.5-.2.2-.3 4.8 2.8 6zm36 52.7c-7 8-3.9 21.2-2.3 24 2.4 4.8 4.2 7.8 8.8 10.1 4.2 3 7.4 1.1 9.2-1 4.2-4.3 4.2-15.4 6.2-17.6 1.4-4 4.8-3.3 6.5-1.5a16 16 0 006 5.1c3.9 3.4 8.5 4 13.1 1 3.1-1.8 5.2-4.1 7-8.6 2-5.5 1-30.7.5-45.6-.1-1.2-4-20.6-4-20.8 0-.2-.6-9.9-1-12.2 0-.9-.3-1.2.7-1 1 .8 1.2.9 1.8 1.2 1 .2 2-1.6 1.4-3.3l-9.8-18c-.7-.7-1.7-1.5-3 .3a7 7 0 00-2.4 5.3c.3 4.3 1 8.6 1.3 12.9l4 21.8c1.2 15.6 1.5 28.3 2.7 44-.2 6.5-2.2 12.3-4.2 13 0 0-2.9 1.8-4.8 0-1.5-.7-7.2-9.6-7.2-9.6-3-2.7-4.8-2-7 0-5.6 5.5-8.2 15.9-12.1 23-1 1.6-3.9 3-7-.1-8-11-3.3-26.4-4.3-22.4zm-34.2-90.9c3.7 1.5 6.2 9 5.4 12.6-.7 4.4-2.7 9.3-4 8.6-1.6-.5 1-4.4-.5-8.5-.8-2.6-5.8-7.5-5.3-8.9-1-3 2.2-4.3 4.4-3.8z"/>
+    <path fill="#fff" d="M469.5 218c.7-9-.6-14.4-.8-19.6-.2-5.2-6-45-7-49-1.5-7.5 5.5-1 4.7-5.4-2.4-5.5-8.3-13.5-10.2-18.2-1.1-2-.7-3.9-3.2-.6a41 41 0 00-2.2 18.6c6 31.3 12.1 57.3 11.1 87.1 2.9 0 6.2-6.5 7.6-13zm62.4-82.7c3.4 1.7 5.3 11 5 13.6-.7 4.9-2.5 10-3.8 9.4-1.3-.6.3-7.2-.4-9.2-.7-2.9-5.2-8.1-4.8-9.7-.9-3.2 2-4.6 4-4zm-247.7 65.8c3.2 1.3 5 8 4.7 10-.6 3.6-2.3 7.4-3.5 7-1.3-.5.2-5.3-.4-6.8-.3-3.7-4.7-5.6-4.6-7.1-.8-3 1.9-3.5 3.8-3z"/>
+    <path fill="#1b9d00" d="M361.3 211.4c4 .2 6.1 3.5 2.3 4.8-3.8 1.3-7.5 2.3-7.5 7.8 1.4 7.7-2 5-4 4-2.3-1.7-8.9-5.7-9.8-14.5-.1-2 1.5-3.8 4.1-3.8 4 1 9.8 1.2 14.8 1.7z"/>
+    <path fill="#fff" d="M199 120.5c4.7 1.4 5 8.3 4.6 10.4-.6 3.7-2.3 7.6-3.5 7.1-1.3-.4 0-5.4-.6-7-.7-2.2-4.7-6.2-4.2-7.4-1-2.4 1.8-3.5 3.7-3zm92.9 32.6c-3.6 2-5 7.8-2.8 11.2 2.1 3 5.4 1.9 5.9 1.9 3.5.4 5.6-6.7 5.6-6.7s.1-2-4 1.8c-1.8.3-2-.3-2.5-1.3a8.7 8.7 0 01.6-5.6c.6-1.7-.8-2.5-2.8-1.3zm27-35.3c-1.7 1.3-5.4 5-5.5 9.3 0 2.4-.5 2.4 1 4 1.2 1.6 2.4 1.5 4.7.3a5 5 0 002.2-3.3c.6-2.8-2.9 1.3-3.3-1.8-.8-2.8 1.4-4 3.5-6.8 0-1.9 0-3.2-2.5-1.7zm21.9 4a56.9 56.9 0 00-1.6 10.7c-.6 2.7 2.8 3.8 4.4.3 2.3-6.3 2.3-9 2.5-11.7-.7-4-3.5-4-5.3.6zm137.5 69.9c.4-.5 19.4-14 19.4-14 1.9-.6 1.5 7 .6 7a75.3 75.3 0 01-20 13.9c-1 .6-1.9-5.2 0-7zm17.2-.1c3.3 1.6 4.7 11.4 4.3 14 .1 5.2-3.2 9.3-4.5 8.6-1.4-.6.1-6.4-.5-8.4-.7-2.9-3.6-8.3-3.1-9.8-1-3.3 1.8-5 3.8-4.4zm-112.4 42c1.3-2 5.3-4.7 5.4-4.7 1.9-1 3.7.7 3.6.6.3 1.9-1.2 3.6-.7 6.1.4 1 .7 2.1 2.6 1.7 3-2.3 5.8-2.5 8.8-2.7 2.3.2 2.3 4 .9 4.1-5.6 1.2-8 2.7-12 4.2-1.9 1.1-3.5-.3-3.5-.4s-1-1.1-.3-3.6c.1-2-.7-3-2.3-2.8-1.3.6-2.4 1-3-.4-.3-1-.3-1.5.5-2.1zm132.3 5.2c.8 1 1.4 2 0 3.7l-3.6 3c-.7 1.2-1 2.8.9 3.3 3.5 1 11.7-4.3 11.7-4.4 1.3-1 .9-2.9.7-2.9-.7-.9-2.5-.4-3.6-.5-.6 0-2.4-.3-1.6-1.9.8-1 1-1.6 1.5-2.9.6-1.2.1-2-1.9-2.7-2-.3-2.8-.1-5 0-1.3.3-1.7.8-2 2.3.2 2.2 1.5 2.1 3 3z"/>
+    <path fill="#259f00" d="M383.8 183.8c-.5 1-2.3.9-4 0s-2.5-2.5-2-3.4 2.3-.9 4 0 2.5 2.5 2 3.4zM297.5 132c-1 .3-2.3-.6-2.9-2s-.3-2.5.7-2.8 2.3.7 2.9 2 .3 2.6-.7 2.8z"/>
+    <path fill="#209000" d="M468.2 363.3c9 .4 17.6.1 26.6.6 1.7 1.3.5 4.8-.6 4.5l-7.6-.2c0-2.9-7.5-2.4-7.2.1-4 .5-7.6-.1-11.6-.3-1.2-1.5-1-4.1.4-4.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sb.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sb.svg
new file mode 100644
index 0000000..f61bafd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sb.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sb" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h496v496H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#a)" transform="scale(1.0321)">
+    <path fill="#0000d6" d="M0 491.4L956.7 0H0v491.4z"/>
+    <path fill="#006000" d="M992.1 0L26.3 496h965.8V0z"/>
+    <path fill="#fc0" d="M992.2 0H939L0 470.3V496h53.1l939-469.4V0z"/>
+    <path fill="#fff" d="M39 96.1l11.6-33.3-30.2-20.6h37.3L69.2 8.8l11.5 33.4h37.2L87.8 62.8 99.3 96 69.2 75.5zm185.2 0l11.6-33.3-30.2-20.6h37.3l11.5-33.4 11.5 33.4H303l-30 20.6L284.5 96l-30.1-20.6zm0 140l11.6-33.3-30.2-20.6h37.3l11.5-33.4 11.5 33.4H303l-30 20.6 11.6 33.3-30.1-20.6zm-92-69.2l11.5-33.3-30.1-20.6h37.2l11.5-33.3 11.5 33.3h37.3l-30.2 20.6 11.5 33.3-30-20.6zM39 236.1l11.6-33.3-30.2-20.6h37.3l11.5-33.4 11.5 33.4h37.2l-30.1 20.6L99.3 236l-30.1-20.6z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sc.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sc.svg
new file mode 100644
index 0000000..65d8943
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sc.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sc" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v496H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#a)" transform="scale(1 1.0321)">
+    <path fill="red" d="M0 0h992.1v496H0z"/>
+    <path fill="#090" d="M0 496l992.1-165.3v165.4H0z"/>
+    <path fill="#fff" d="M0 496l992.1-330.6v165.3L0 496.1z"/>
+    <path fill="#009" d="M0 496V0h330.7L0 496z"/>
+    <path fill="#ff0" d="M0 496L330.7 0h330.7L0 496z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sd.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sd.svg
new file mode 100644
index 0000000..72a7297
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sd.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sd" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h496v496H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#a)" transform="scale(1.0321)">
+    <path d="M0 330.7h992.1v165.4H0z"/>
+    <path fill="#fff" d="M0 165.3h992.1v165.4H0z"/>
+    <path fill="red" d="M0 0h992.9v165.4H0z"/>
+    <path fill="#009a00" d="M0 0v496l330.7-248L0 0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/se.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/se.svg
new file mode 100644
index 0000000..e824395
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/se.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-se" viewBox="0 0 512 512">
+  <path fill="#066aa7" d="M0 0h512v512H0z"/>
+  <path fill="#fecc00" d="M0 204.8h512v102.4H0z"/>
+  <path fill="#fecc00" d="M134 0h102.4v512H134z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sg.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sg.svg
new file mode 100644
index 0000000..1444e5b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sg.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sg" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M27.7 0h708.6v708.7H27.7z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-20) scale(.72249)">
+    <path fill="#fff" d="M0 0h1063v708.7H0z"/>
+    <path fill="#df0000" d="M0 0h1063v354.3H0z"/>
+    <path fill="#fff" d="M245.2 59.4a124.6 124.6 0 001.1 243.9 126.9 126.9 0 11-1.1-243.9z"/>
+    <path fill="#fff" d="M202 162.4l-18.9-13.8 23.5-.2 7.2-22.3 7.5 22.3h23.4l-18.8 14 7.2 22.3L214 171l-19 13.8zm26 76.9l-19-13.8 23.5-.2 7.3-22.3 7.4 22.2h23.5l-19 14 7.3 22.3-19-13.6-19 13.8zm86.3-.6l-19-13.8 23.4-.2 7.3-22.3 7.4 22.3H357l-18.9 14 7.3 22.3-19.1-13.7-19 13.8zm25.7-76.2l-19-13.8 23.5-.2 7.2-22.3 7.5 22.2h23.4l-18.8 14 7.2 22.3-19.1-13.6-19 13.8zM271.7 112l-19-13.8 23.5-.2 7.3-22.3 7.4 22.3h23.5l-19 14 7.3 22.2-19-13.6-19 13.8z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sh.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sh.svg
new file mode 100644
index 0000000..599a09d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sh.svg
@@ -0,0 +1,81 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sh" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)">
+    <path fill="#006" d="M1024 512V0H0v512h1024z"/>
+    <path fill="#fff" d="M0 85.3h108L0 31V0h61.8l151 75.3V0h85v75.3L449 0h62.4v31L402.7 85.4h108.6v85.3H402.7l108.6 54.2V256h-62.4l-151-75.3V256h-85v-75.3L61.7 256H0v-31l108-54.3H0V85.3z"/>
+    <path fill="#ce1126" d="M471 0L300.5 85.3h40.9L511.3 0H471zm40.3 256L341 170.5h41l129.2 65v20.3zM171 85.2L0-.1v20.4l129.8 65H171zm-.4 85.3L0 255.9h40.8l170.7-85.3h-40.9z"/>
+    <path fill="#ce1126" d="M0 103h231V0h50v103h230.3v50H280.9v103h-50V153H0v-50z"/>
+    <path fill="#8fc5ff" stroke="#fff" d="M399.7 640.8c0 16.3-2.6 33.9-23.8 42.3-21.1-8.4-23.7-26-23.8-42.3h47.6z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)"/>
+    <path fill="#366cc9" stroke="#000" d="M375.9 683a34.3 34.3 0 0018.8-16h-2c-.6-.1-20.3-2-22.7-3-2-.7-9.8.7-13.4 2a34 34 0 0019.3 17z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)"/>
+    <path fill="#5d3100" stroke="#000" stroke-width=".1" d="M361.1 673h1.2c.3 0 .3 0 .4-.3s.4-.2.6-.1.6 0 .8-.2c.2-.2.2-.2.4 0s.3.1.5 0c.1 0 .5-.2.6-.5s.4-.4.5-.2.3.2.5.2.2.1.2.4c0 .2 0 .3.5-.1.4.4.5.2.5-.2s0-2-.2-2.1-.3-.8-.4-1.3c0-1 0-1-1-1.5 0-.3-.2-.4-1-.4.1-.1 0-.4-.2-.5s-.2-.2 0-.6c.2 0 .6 0 .7-.3.2-.2.8-.2 1.2 0s.8.2 1.5 0l1.2-.6c.5-.3.6-.4.6-.8 0-1-.3-2-.5-2.5-.3-.5-.3-1-.7-1.9-.4-.8-.4-1-.8-1.5-.2-.2-.3-.3-.3-.6a1.5 1.5 0 00-.5-1c-.8-.7-1-3-1.4-4.7-.2-1 0-3.3-.4-3.7-.7-.5-1-.4-1.5-.6-.4-.5-.5-1.4-.9-2.3-.5.1-.8.6-1.1.8s-.4.2-.4.7c0 .4-.3 1-.7 1.8s-1.3.5-2 1.6c-1.4-1.7-1.4-2.2-1.5-2.7 0-.5-.3-.6-1.1-1.3v-1.5c-.7-.5-1.1-.4-1.4 0-.3.3-.5.8-1 1-.2.4-1 1.2-1.6 2.3.6 9 2.6 18 8.7 25.2z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)"/>
+    <path fill="#ff0" stroke="#fff" d="M399.7 640.8c0-6.2-.3-12.2-.2-17.4a63.6 63.6 0 00-23.6-4.3c-5.3 0-15.7.8-23.6 4.3.2 5.2-.2 11.2-.2 17.4h47.6z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)"/>
+    <path fill="#cf6200" d="M264.3 312.1c1.2 2 3.6 5.6 3.8 7.5 1-1.8 1.6-2.7 1.8-3.8s1.6-3.4 1-4.6-.8-2.2.6-1.3c1.4.9 1.1 2.4.8 4.7-.8 6.3-3.5 7.6-3.9 11.9 3.8 8.9 1 12.1 5.1 20.8.7.4 2.4-.3 2.9-.1 2.2-1.6 3.8-1 6.9-.4 3 .7 4.7 2.8 4.7 4.8s0 2.4.7 3.6 2 3 1.6 4.2c-.2 1.3.3 2 .7 2.7s-.1 2-.5 3-.3 2 1.3 4c1.5 1.9 5.1 10 5.1 14.7s.3 7 2.2 7.9c2 .9 2.6 1.6 2.3 3.7s.9 12.7 1.2 14.4.9 1.3 1.6 2.2c.8.9 1.3 1.9 3.9 1.9s5-.4 6.7 0c2.3 3.1 3.7 7.5 4.2 10.2s.5 6.4 1.4 6.4 1.8.1 1.5-3.2-.5-3.9-1.6-5.6c-1.2-1.6-1.8-2.4-1.2-3.4s.8-2.7.5-4-.6-3.2 1.6-.7l3.5 4.1c.7 1 .9 2.6.7 4.2-.1 1.5.2 2.1 1 1.4 1-.8 2.1.5 1.6 2.2s.1 2.7 1.7 3.2 2.2.9 2.5 2 1.7 1.7 1.7-.6-.9-7.2-1.5-8.8c-.7-1.5-1.2-4.8-1.3-6.8s-.5-2.4-1.4-2.8-1.7-1-1.8-2-1-1.1-1.5-1.1-1.1-.5-1.4-1.1-.7-.7-1.3-.8-1.7.3-2-.7-.8-2.5-1.4-3.4-1.2-1-1.3-4c0-2.8-.1-3.2-1-4.2s-2.5-3.8-3.1-5c-.6-1-1.3-2.2-1.3.2s0 3.7 1.5 4.6c1.6 1 2 1 1.3 2.2s0 2.2.3 3.1.8 1.8 0 2.7c-.8.9-1.6.6-1.4-.8a8 8 0 00-1-4.2c-.7-1.2-1.2-2-2-1.3s-1.4-.1-.9-.6.4-1 0-1.3-.5-.8.2-1.6.6-1.1.2-3c-.4-1.7-3.2-10.7-4.5-12.8s-1.1-3.6.5-1.5 3.1 3.8 3.2 5.5c.2 1.7.6 2.7 1 3.4s1 .3 1.2-1 1.3-1-.5-3.7-5.1-7.2-6.4-15.3-1.8-13.5-3.1-15.6c-1.3-2.2-1.7-2.7-1.8-4.8s0-4.1-1-5.6-1.4-1.8-1.6.5c-.1 2.3.2 7.4.8 8.3s.3 3.2.1 4.5-2.1 2.6 2 5.2c1.8 1 1.5 2.4 1.2 3.3-.2.9-.5.8-1.4-.6-.9-1.5-1.8-2.6-2.7-3.4s-1-1.3-.9-3 .5-3.1 0-3.8c-.5-.6-.7-.1-1 1-.3 1-.5 3.8-1 4.5s-.8.3-1.2-1.4.1-4.2 1-7.2 1.5-6 .7-9.9c-.8-3.8-.4-5-3.4-8.2-3-3.2-6.2-6.3-7.7-10.3-1.4-4-1.6-7.4-3.2-9.2a21.1 21.1 0 00-5.1-4.8v-5.9c0-1.4-.7-2.3-2.3-2s-2.7 1.6-3.7 3.6c-1 1.9-1.8 1-3.3 4.3s-3.4 5-3.4 8.6z"/>
+    <path fill="#cf6200" d="M273.6 349.8c1 .7 2 1 3.5.3s3.4-3 5.5-.8c2 2.2 3.2 5.8 3.2 8.6s0 8.1 3.2 11c3.2 3 4.9 6 5 10 .1 3.8 1.5 9.7 2 11.3.3 1.5 1.2 3.3 2.2 4.3s1.8 4 2 7c0 3.2-.4 5.4 0 6.9s0 2.8-1.2 2-1.4-1.1-2-2.4-1.5-1-.8 1 2.5 3.6 4.2 3.6 2.2.3 3.2 1.3 1.2 1.6 3 1.6 2 0 3.7.5 1.7.2 2.6 0 1.8.5 2.4 2.2 2.2 6.3 2.2 7.5 0 2.6.9 3.9.6 2.6-.4 1.8-1-.5-1.8-.4-1.3-.2-2.3-.9c-1-.6-.4-.5-1.4-2s-1.7-2.1-1.7-1-.1 2.6-.9 2-1.1-.7-1.8 0-.9 1.1-1.7-.1-1.6-1.3-2.4-1.6-.8-.2-1.1-1.4c-.4-1.2-1.6-1.4-2.6-1.4s-1.6-.5-1.7-1.3c-.1-.8-.8-1.3-1.3-1.7s-.2-1.3-.4-2.2-.9-.5-1.4-.7-.9-.1-.9-1.4-.5-1.7-.9-2.6c-.3-1 0-1.8.3-2.8.2-1 .1-1.7-.6-2.6-.8-.9-.2-1.8-2.2-3.6s-3.1-.3-3.8-4.5c-.6-4.2-1.9-13-3-14.4s-2-2.4-3.1-2.8-2-.1-2-2.6c-.2-2.4-1-5.5-2.5-7l-3-2.7c-.8-.6-1-1.8 0-4s.7-5.2.5-6.6c-.1-1.4-.5-3.2-.2-4.7s.1-3.5-.3-4.5-.9-1.3-.2-2zm31-36.5a27.9 27.9 0 01-6 5.8c-2.5 1.7-5.6 3-3.9 6 1.8 2.9 3.1 3.2 3.5 5.5.3 2.2.8 4 2.5 4.6 1.8.5 2.4.2 2.4 3.8s0 5 1.6 6.3 1.4 2.7 2 6c.7 3.3.7 10.3 2.8 15s6.7 14 6.2 15.8-1.2 3.3.8 5.5 3.4 5.5 3.6 7.4c.2 1.9.5 2.6 2.6 1.9 2-.7 3-1.4 3.7-2.3.7-.8 2-.6 4 .4 1.9 1 4.8 2 6.5 1 1.7-1 2.6-2.6 4.1-2.6 2.4-1.7 3.3-5.3 3.8-6.3s.1-1-.9-2-.5-2.8-.7-4.5c-.1-1.7-.8-4.3-2.9-8-2-3.8-3.2-8.5-4.6-9.7-1.4-1.2-2-4-2.2-5.4-.2-1.4-1.8-2.6-2.8-3.6-1-1-2-2.6-3.2-8.6-1.2-6-2-10.3-2-11.3s-.3-1.2-1.3-1.5-1.5-2.1-1.2-3c.3-.8-.3-1.7-.7-2.7s0-2.9.7-4c.7-1 .5-3.9-.2-6.3s-1.3-4.4-4-4.8c-2.8-.3-3.3-1-4.4-3.2-1-2.3-2-6.2-2.4-7-.3-1-.8-1-2.9.6-2 1.7-2.7 2.3-2.7 5.5 0 2 .3 2.8 1 4 .7 1.2.9 1.5 1.4 4.8s3.4 8.3-.4 11.3-3.2 3.6-3 5.6c.1 2-1 3.4-1.7.5s0-4.6 2-6c2-1.3 4-3 2.6-5-1.4-1.8-1.9-6.3-2-8.3s-.6-2.8-1.8-1.2z"/>
+    <path fill="#00b800" d="M274 357c-.1 1.3.2 2.9.3 4 .1 1.5.5 4.5-.5 6.6-1 2.2-.8 3.4 0 4v.1a3 3 0 001.9-4.1c-.6-1.3-.4-2.7.3-3.9.6-1.2.6-1.9 0-2.7-.6-.9-.6-.9.1-3.3.6-2.1-.9-2.1-2.1-.8zm22 33.2c-.5-1.6-1.9-7.5-2-11.4a14 14 0 00-5-9.9c-2.5-2.2-3-6-3.2-8.8-1.9-1.2-2.7-.7-2.5 1.5.1 2.3 2.5 3.4 2.1 6.7-.3 3.4-.3 2.5 1.3 4.2s2.2 3.1 1.4 3.8c-.9.7-1 1.9.2 2.3 1.2.5 1.3 1.7 1.1 3-.1 1.1 1 1.4 1.7 2.2.6 1 .7 3 0 4.2-.6 1.2-.7 3 .5 2s1.7 0 2.6 1.6c.8 1.4 1.5 1 2.4.5a10.8 10.8 0 01-.7-2zm16.6 29.9c-.8 1.5-1.7 1-2.4.2s-1.7-.8-1.3-2.2.2-1.6-.8-2.4a7.7 7.7 0 00-.3-.2h-1.2c-1.8 0-2-.6-3-1.6a8.6 8.6 0 00-.6-.6v1c0 1.4 0 1.1-1.4 1.5s-1.2-1.4-1.5-2.6a4.3 4.3 0 00-.2-.6c-1.5-.3-3.2-2-3.7-3.7-.7-2 .1-2.2.7-1s1 1.8 2.1 2.5 1.5-.5 1.1-2a6.5 6.5 0 010-1.7c-.4-.5-.7-1-1.2-1.2-2-.9-1.5-1.1-1.3-2.8.1-1.6-.3-1.6-1.6-.8-1.3 1-1.4 0-1.4-2.7 0-2.5-1.7-2.5-2-.7-.4 1.8-1 .6-1.8-2s-1.8-3.2-2-.7c0 2-.6 2.5-2 1.4l.6 4c.7 4.2 1.7 2.7 3.8 4.5s1.4 2.7 2.1 3.6c.8.9 1 1.5.7 2.5-.3 1-.7 2-.3 2.9.4.9 1 1.3 1 2.5s.3 1.2.8 1.5c.3.1.8 0 1 .2l1-1.4c1.6-1.5 4 .1 4.7 2s1.7 2.5 2.8 1 .8-1.3 2 0 1.9 1.2 1.9 1.2 1.3-.5 2.2.3 1.4.6 3-1.8c1.7-2.4-.7-1.7-1.5-.1zm4.6-70.5c.5-3.8.1-7.6 1.7-9 1.5-1.3 3.4-4 3.2 1.8-.1 5.8-.3 5.5-1.5 6.8-1.2 1.4-2.2 1.7-1 4 1.2 2.2 1.3 2.4 1.2 5.8-.2 3.4-.2 4.8 1.2 6.5 1.3 1.7 1.7 1.9 2 3.8.4 1.8 1.5 4.4 3 5.8s3.3 5.3 3.5 8c.2 2.8 2.6 3.5 4.8 5.3 2.2 2-.5 3.3-2.2 2.5-1.7-1-1 0-2 1.1-1 1.2-1.4 1.4-2.3-.6s-3.8-3.5-5.1-4-2.6-2.7-3.8-5c-1-1.9-3-3.3-5-3.4.6 1.4.9 2.6.7 3.1-.5 1.9-1.2 3.3.9 5.5 2 2.2 3.4 5.5 3.6 7.4.1 1.8.5 2.5 2.5 1.8 2.1-.7 3.1-1.3 3.8-2.2.7-.8 2-.7 4 .4 1.8 1 4.7 2 6.4 1 1.8-1 2.6-2.6 4.2-2.6 2.4-1.7 3.2-5.3 3.7-6.3s.2-1-.8-2-.5-2.8-.7-4.5c-.2-1.8-.9-4.3-3-8-2-3.9-3.2-8.5-4.5-9.7-1.4-1.2-2-4-2.3-5.5-.1-1.3-1.7-2.5-2.7-3.6-1-1-2-2.5-3.3-8.5l-1.9-10.2c-1.2 2-2 2.4-2.5 1.1-.5-1.5-1.2-2.4-1.9-1.4s-.9-.8-.9-1.7c0-.8-.1-1-1-1-.8 0-.2-1.4-.5-4-.3-2.5-.9-2.9-1.2.2-.3 3.1-2 5-1.4 5.7.7.7.4 2-.3 4-.7 2.1-.4 3.3.2 4.7s-.4 4-.7 6.2c-.4 2.2 1.3 4.4 1.9.7zm-31.3-30.8c-1.3.1-2.2 1.2-1.4 5.1.4 2.4-1.4 1.9-2 .7-.8-1.2-1.3-3.8-2.7-6-1.3-2.2-.7 1.5-.8 3.6-.2 2 1.2 2 2.4 3.8s.1 2.4-1.2 2.4-.7 2.7-.4 4.6-.3 2.2-1.3.7c-1-1.6-.4-4-.2-6.9.2-2.9.3-2.2-1.6-2.9-1.8-.7-1.5-1-.8-2.7.7-1.7 1.4-2.6.5-3.5-.9-.8-.7-1.3.7-1.5 1.4-.2.8-1.2 2-1.6 1.2-.3 1.8.2 2-2 0-1.9.7-3 2-2.4 1 2.8 2 7.3 2.8 8.6zM303 339c0 3.6 0 5 1.6 6.3s1.3 2.8 2 6c.7 3.3.7 10.3 2.8 15l2.3 5.2a9.6 9.6 0 002.5-3.2c.5-1.2-1-3.6-2.3-5.7-1.2-2 .2-2.7 1.4-5.3 1.2-2.6-.2-2.7-2-3.4-2-.7-2-2.4-3-5.2s-.8-3.9-.1-5.4c.6-1.6.1-2.8-1.2-3.1-1.4-.4-1-1.4-.6-3.1.6-1.7.9-2-1.2-1.6-1.5.4-1.9.7-2.4 1.3.2.5.2 1.2.2 2.2z"/>
+    <path fill="#5d3100" d="M322.9 346.1c-.2 2.1-.2 3.1-.7 3.8-.5.7-.2 1.7.3 2.8s.9 2.4.4 4.2.3 3.5 1.3 4 1.6 0 1.2 2.4a7.4 7.4 0 002.2 6c1.2 1 2.1 2.7 2 3.7-.2 1 .8 2.1 2 2.6s1 .7 1 1.4.5.7 1.9 1 2.4 1.2 4 3.1 3.7 3 3.4.8 0-3.4-2-4.4c-2.1-1-3.7-6-4.5-9.4-.9-3.5-3.6-8-5.2-9-.2-2.3.2-3.5-1.4-4.7a5 5 0 01-2-4c0-1.2-.9-2.7-1.5-3-.7-.4-1-1.3-1-2.3s-1.3-.8-1.4 1z"/>
+    <path fill="#00d860" d="M313.8 438a50 50 0 0012.3-3.4 19 19 0 007.2 3.3c-3 .7-4.9.3-5.7-.2.4.9 1.4 2.3 2 2.4-2.8-.1-6-.8-7-1.8-2.4 1-6.5 1.3-8.9-.2zm5.5 4c1 .2 6.5 1.1 7.3 1.1-1.9 1.6-.3 3 2.7 2.8-1.5.2-3 .8-2 1a29 29 0 0011.2-2.2c-2.4 3.1-14.3 6-19.2-2.8zm4.9 7.7c1.5-.7 5.1-.5 6.9.4-2 .6-5.8.6-7-.4z"/>
+    <path d="M329.7 449.6c2.6-.4 10 1.4 12.7-.2-1 2.4-5.6 2.7-7.2 2.2-1.6-.6-3.1-1.2-4.2-1.1.5-.4-.4-.4-1.3-.9z"/>
+    <path fill="#00d860" d="M332.4 453.3c2 .3 9.1-.6 11.3-1.4 2.3.7 6.9 2 7.9 1.8-2.2 1.4-6.4.6-7.7 0-3.9 1.3-7 1.7-11.5-.4z"/>
+    <path fill="#00d860" d="M335.8 454.5c2.9.6 5.3.2 8.1-.8.9.4 3 .9 4.9.8 1.3.7 3 1.7 4.7 1.9-1.8.7-8.1 0-9.4-.8a26 26 0 00-10.1 2c0-1 .5-2.2 1.8-3.1z"/>
+    <path d="M332.4 440c2.2.7 10.3.4 14.4-1.5 1.6-.8 2.6.4.7 1.1-6.6 2.3-11.9 3.2-15.8 1.2-1.5-.9-1.6-1.6.7-.8z"/>
+    <path fill="#00d860" d="M371.8 429c-9.9 4.7-16.4 6.1-30.2 1.9-1.2-.4-2.1 0-.7.9 1.4.9 9 3 10.8 3s1.1 1 0 1.3-1.4 1.1.1.5 9.7-.8 13.1 1c1.5.8 1.9.6 1.7 0s.7-.9 1.8-1 1.7-.5.9-.9-1-.5-.3-.8.7-.6-.3-.8-1.6-.5-.7-1c.9-.4 2.2-.7 3.3-.8.2-.7-.2-2.6.5-3.2z"/>
+    <path d="M355.4 430.3c5.6.3 16-2.2 21.6-7.6 1.9 1.1 4.6 2.4 6 2.7s2.7 1.5.5 1.5-5.3-.9-6.7-1.5a38 38 0 01-21.3 5.5c-1.5-.1-2-.8-.1-.7z"/>
+    <path fill="#00d860" d="M338.7 399.4a15 15 0 009.7 3.3 21.4 21.4 0 007.2 3.5c-3 1.2-6.2 2.2-7 3.2-1.4-1.3-3.1-1-3.6-1.7-1.2 1-1 1.6-.2 2.2s7.3 1.6 8.9 1.1 2 1 .7 1.4c-3.5 1.2-10.2 0-12.5-3.7-2.3-3.7-4.3-5.1-10.6-1.7-.7-1.8-.7-2.3-2-2.3s-3.4-1.6-1.7-1.5 6.9-.7 11-3.8z"/>
+    <path fill="#00d860" d="M340.2 407.6c-1 .3-4.1 2-5.2 2.1-1.1.1-3 1.7-1 1.7 2 .1 4.5-2 6-2.3s1.5-1.8.2-1.5zm6.2 6.6c-.7.1-4 .9-5 .8s-1.7.2-1.6.8.3 1-1 1-2.6.3-3 .7-.5.8.9 1 2 .2 3.6-.5 3-1.8 4.7-1.9c1.6 0 3.3-2.2 1.4-2z"/>
+    <path d="M341.8 418.1c1.4 1 8.4 3.3 10.9 3.1s2 1 .1 1.4c-3.9.9-8.7-.8-12-3.4-1.5-1.3 0-1.8 1-1z"/>
+    <path fill="#00d860" d="M374.7 421.6c-5.3 1.6-10.7 1-12.9.5s-4.2-.7-2.7.7 6.2 2.3 9 1.6c-9.6 2.2-12.1 2-14.5 1.6a46 46 0 00-8.8 0c-1.4 0-3.3-.1-4.1-.7s-1.1-1.4 1.4-1.2c2.5.3 2.8-.2.6-.6s-5.2.6-2.2 2.5 9.4-.1 13.5 1c4.1 1.2 12.9 2 21.2-4.7.4-.3 1.1-1.3-.5-.8zm-26.1-7.9c.2.7.2 1.4 0 1.8s-.2 1 .6.4 1.4-1.4 2.2-1 3 .5 4 .3c1-.1 1.2-.3-.2-.9-1.4-.6-2.8-.8-3.6-.7s-1.7-.1-2.4-.4-.8-.1-.6.5z"/>
+    <path fill="#00d860" d="M362.3 416.2c-1.1 0-3-.6-4-1s-2.6-.6-1.5.9 5.9 2.3 7.6 1.6 1-1.5 2.6-.5c1.7 1 3.4 1.8 4.6 1.8s1.7 0 .3-.8-2-1-2-1.6-.4-1 .8-.6 2.6 1 3.6.5 2.8-1.6 4.4-1.6l.4-1c-2.4-.2-3.8.5-4.5.8s-1.8.4-3 .2-2.8-.4-3.2-.7-.4-.6.6-.8 1.4-.9 0-.6-5.2.1-7.2-.5-2.8-.7-3.7-.4c-.8.3-.7 1.2.5 1.3s4 .3 5 1.2.8 1-.3.5-3-.2-1 1.3z"/>
+    <path fill="#00d860" d="M379 413.9l-.3 1c2.4-.1 8.1.5 10 1.6 1.8-1.4 1.5-1.8 2.8-1.6s2.8.7 3.6.3 1.2-.3 2-.2c.7.2 2.4-.1 3.3-.7s3-1.4 4.2-1.4 2.5-.2.4-.6c-2.1-.3-5.3.4-6.4.7-1.1.4-4.4.7-6.3.7s-4.6 1-6.8.4-5.2-.2-6.5-.2z"/>
+    <path d="M408.8 412.8c-3.8 2.8-8.5 3.4-14 3.8-1.6.1-1.1.6.3.7 5.7.6 12.4-1.5 14.6-3.9.6-.6.6-1.7-.9-.6z"/>
+    <path fill="#00d860" d="M382.6 419.3c1.6 0 7.4 1.6 9.3 2.2 1.4-.1 1.8-.4 1.5-1s-.4-1 2.1-1c2.6.2 8.5.1 9.6.1 1-.3 2.9-1.9 3.8-2-2.3.2-12 .7-13.2.6s-1.8 0-2.6.4-1.2.7-2.2.3-2.7-1-3.6-.4c-1 .6-3 .1-4.7.8z"/>
+    <path fill="#00d860" d="M405.1 419.6c1-.4 2.9-2 3.8-2 1.7-.1 3.6.6 4.5.7s1.9 0 1.2-.7 0-2 2.6-1.6c2.6.3 4 .7 6.5.5s3.8 1.6 8.6-.3c-.3 2 .6 2 1.5 1.7s1.9-.3 3.4.9 11 1.3 13.1.9c2.2-.4 3.4.7 1.7 1.3-1.7.5-2 1.2-1.7 1.8.4.5.8 1.1-1.2.9-2.1-.3-2.5.3-3.5 1.1s-1.3 1-4.1.5c-2.9-.5-3.4-.1-5 .2s-1.8.2-3.4-.3-4.9-1-7-.4-3.5 1.3-5.3.8-2-.3-.8-1.4 1.4-1 3.6-1.3c2.2-.3 3.9-1 2.3-1.8s-2-.8-4 .2-3.2 1.7-5.5.4c-2.3-1.3-3.4-1-5-.6s-4.1-.5-6.3-1.5zm7.7 3.9c-3 .4-3.7-1.5-6.8-1.1-1 .1-2.8 1.4-.4 1.2 2.4-.2 5 1.1 7.3.9s1.3-1.2 0-1zm-3.4 2.2c1.6-.6 4.8.5 6.1.3s2.7.5 1.2 1-4.8-.8-6.3-.4-3.1-.1-1-.9zm-30.7 8.3c2.1 0 9.8-.2 12.8-6.7.2-.5.5-.7 1.4 0s4.5 2.7 11.1 3.3c1.9.2 3.9 1.1.1.8s-9.6-1.2-11.6-2.5c-3.3 5.3-9.3 6-13.8 5.8-2.7 0-2-.8 0-.7z"/>
+    <path fill="#00d860" d="M395.2 425.3c-1 1.4-4.5 3.8-6.1 4-1.7 0-6.5-.4-7.7-.8s-2.7-.3-1 .9 6 2 7.8 1.6c1.8-.3 3.7-1 5 0s4 2.4 5.4 2c1.5-.3 4.5-.3 5.5.2 1 .4 2.6 1.8.1 1s-4.5-.1-5.7-.7c1.3 1.8 4.2 4.7 6.7 4.7.6 0 1 1-.3 1.6 1.2.6 4 1 5.5-.3-.3.5-.1.9.5 1.2s1.4.8.3.9-3.8.4-4.6.1c2.5 1.6 9 4.2 15.6 2.9 1.3-.2 2-.8-.1-.7-4.3.1-4.5 0-5.3-.4-.8-.4-.6-.8.6-1.2 1.2-.4 4.3-.8 5.6-.8s2.5-.6 0-.6-6 0-7.2-.4-2.3-1-1-2 2.8-.6 3.5-1.4c-4.3 0-9.5-2.3-6.6-4.4.7-.5.5-.5-.6-.6s-4.3-1-5.7-1.8-.4-1.4.7-1.6c-2.5.4-7.5-1-10.9-3.4zm37.7-.2c-2.3 1.8-6.7 2.5-8.5 2.5s-2.2.6-.7.8 3 .4 3.7.2 1-.2 2 .2c1 .5 3 .7 4.8.1s4.8-.8 6-.7 2.6.1.1-.6c-2.4-.7-6.4-.2-7.3 0s-3.6.1-2.2-.3 2.6-1.2 3.3-1.8c-.5 0-.8-.2-1.2-.4zm-1.2 5a15 15 0 01-7.8 3c2.7 1 5 3.8 6.7 3.7-.9.5-2 1.2-3 1.4 1.7.4 4.5 0 6.8-1.4 3.9 1.1 8.9.4 10.5-1a12 12 0 01-6.8-2c1.2 0 2.3-.8 3-1.5-3 .5-8-1-9.4-2.2z"/>
+    <path fill="#00d860" d="M427.6 438.2c1.1-.1 2.1-.9 3-1.4-2.2.7-11.4-.8-14.2-3.2-2.7-2.5-2.7-.6-.8 1.1s5.3 4.4 12 3.5zm6.8 5.9c-1.2.6-6.7 1-8.5.6s-2.6-.2-2.1.5.6 1.4-.9 1.2-4 .1-5.2.5c-1 .4-2.4 1.4 0 1 2.2-.4 4.3-.9 6-.4s8 .6 9.2 0 .4-.5-.2-.5-.8-.3 0-.7 1.5-1.5 1.7-2.2zm-53.5-7.5a65 65 0 01-12 3.2 16.8 16.8 0 01-6 1.8c1 .8 4.4 1.6 5.8 1.2-.7.8-2.5 1.7-3.2 2 2-.2 4.5.3 5.5.4a15.4 15.4 0 01-8.3 1.8c.6 1 1.5 1.8 2.7 1.8a14 14 0 01-7 .2c.7 1.3 1.3 2 2.2 2.2-2 .2-4.6.6-6.8-.7 1.7 2.2 5.4 3 11 2.3 5.5-.6 10.1-3 11.4-4.1-2.3.3-5.4.4-7 .1 3.1-.7 9.8-3.6 11-4.7a6.2 6.2 0 01-3.5-1c1.8.2 8.1-.6 10-1.3a7.4 7.4 0 01-4.4-2.9 43.2 43.2 0 0021.5.7c1-.3 1.2-1.6-.9-1.4-3.6.2-10.5-.8-12.3-1.7a12.8 12.8 0 005.1 2.3c-3.3 1-8 1.6-14.8-2.2z"/>
+    <path fill="#00d860" d="M365.5 444.9c.7-.4 2.4-1.3 3.2-2a11 11 0 01-5.8-1.2c1.3 0 3.4-.7 6-1.8-4.7-.2-7.9-.2-9.6-1s-4.7-.7-5.9-.4-.7 2.1 4.1 1.6c-2 1.4-7.5 2-9.6 1.4.5 1.7 1 3.4.4 4.3 2.7 1.5 9.8 3.5 13.2 3.2-3-1.2-4.7-2.4-2.2-2.7s4-.8 6.2-1.4z"/>
+    <path d="M357.6 453.2c6.1-.5 14.3-.6 20.9-6.1 1.7-1.5 2.8-1 1.2.5-3.5 3-12.1 7.3-20.3 7.4-3.4 0-5-1.5-1.8-1.8z"/>
+    <path fill="#00d860" d="M403.6 443c-1.5.6-5.8 1.3-7.1 1.2-1.3-.2-3.1-.3-4.2.3s-1 1 .3 1.2 3.3.2 4.2.2a6.8 6.8 0 00-2.2 2c2-.6 5.8.3 7 1-1 .2-1.9-.1-2.6-.5 3.5 3.7 13.8 3.7 15.4 3-.7.6-1.5 1.2-2.2 1.4 2.9.5 6.2.4 9.5-1.5a29 29 0 01-5.2-.2 6.2 6.2 0 012.5-1.5 17 17 0 00-6.3.4c.4-.8 1-1.7 1.9-2a39 39 0 01-13.6-1.4c3.7.4 7.6-1.7 9.3-1.7-2.8 0-5.9-.7-6.7-1.9zm-12.9 2.9c-2.5.5-6.3 1.5-7.3 2s-2.1 1 .1 1a228.3 228.3 0 01.8-.2c-.9 0-2 0-.3-.6s3.9-1.7 6.7-2.2zm-5 6c.8 0 4.8 0 6.3-1.4 1.6 1.2 4.7 3 6.7 3s1.8.5 0 .7c-1.7.2-5.1-.9-6.8-2.2-2.3.9-4.3.2-6.3-.2zm-29.8 17.3c4 1.5 9.2 2.7 13 1.4 2.3 1.9 6.8 2 9.2 1.5 2.4-.5 4.6-.8 7.3.1s8.2 1 9.8 2.3c-1.4 0-4.4 0-5.2.2-.7.2-.3.6 1 1.3a26.9 26.9 0 00-14.2 3.6 8 8 0 017.5-4.7c-2.3-.8-9.7-.9-12.1.6-.7-.8-1.6-2-1.6-2.5-4 2.2-11.6-1-14.7-3.8zm-10.2-7.3c4.7-.6 8-2.1 9.4-3.6.8.8 4.3 1.6 8 .4a1.9 1.9 0 00-.5 2.3c-2.4 0-7.2 1.3-8.8 2.1-1.6.8-6.3 1.4-7.8.6s-1.6-1.6-.3-1.8z"/>
+    <path fill="#00d860" d="M362.6 461c-2.5 0-7.2 1.3-8.8 2.1.3.7.5 1.7.6 2.4a56 56 0 0119.2-2c-1.9 0-5.6 2-7.6 2.3 5-.4 9.9.7 11.2 1 1.2.3 1.5 1.3.5 2.2s-1.4 1 .7 1c2 .1 6.3-.1 8.2-2-.8-.8-2.8-.5-3.3-1.1a8.9 8.9 0 003.4-2.1c-3.4 0-4.7-.1-5.9-.4-1.1-.3-2-.6-.6-1.3a8.3 8.3 0 002.6-2c-2.6.7-6.5 1.3-9.8-1.3 1.3.4 4.2.2 5.2-.3-1.1-.6-2-1-2.9-1 2.6-1.3 7.8-2.5 14.3.1 3.2-.2 6.6-.1 9 .5 1.1-1 3.3-3.4 4.4-4-7.5.6-21.1-.9-20.9-4.8-2.4 3.2-8 5-10.5 4.5-.3 1.1.7 2.5 1.6 3.3-2.5.5-6.9 1-9 .5 1.2 1.2 3.4 2.2 4.7 2-2.7 0-4.1.6-6.3.4z"/>
+    <path fill="#00d860" d="M378.4 470c2 .1 6.3-.1 8.2-2-.8-.8-2.8-.5-3.3-1.1a9 9 0 003.4-2.1c5.4-.5 10.2-.2 12.5-1 2.4-.6 8.3-.2 9.4-.6-5.1.9-6.1 1.3-6.4 2.2s1.7 1.5 2.9 1.5c-2.3-.1-5.2 2.3-5.5 3.3-3-1.8-4.5.3-4.9 1a9.8 9.8 0 00-7.7 1.5c-2.8-.8-4.6-1.3-7.5-.8 1.8-.4 1.4-1.6-1.1-1.8zm24.6-15c1.8 0 5.6.2 7 0a8.3 8.3 0 00-2.4 1.6c4.4-.5 10.3-.8 12-.5-2-.4-4.2 1-5.3 1.7s-.5 1.1 1 1.3 3.5 1.4.8 1-8-.4-9.3-.2-2-.4-.2-.7 3.2-.9 4-1.4c-1.5.4-4.4.4-5.3.1s-1.5-.8-.5-1 .4-.7-.7-.5-3.9 1.3-5.4 2.7c1.6-1.7 3.1-3.2 4.3-4z"/>
+    <path d="M383.5 458a11 11 0 008.6 3.8c.8 0 2.4 1.1.3 1.2-5.3.2-8-1-10.4-4.5-.5-.8.4-1.7 1.5-.6zm32.1-45c2.9 1.3 8.6 2.5 13 2.3.8 0 2.3.8.4 1a23 23 0 01-13.7-2.6c-1.1-.6-.8-1.2.3-.7z"/>
+    <path fill="#00d860" d="M418.5 413c4.4-.2 7.7-.1 9 1.2 2.5-.8 7-1.3 8-1s2.2-.3-.2-.9c-2.3-.6-7.9-.8-9.6-.4-1.7.3-7.1.5-9 .3.8.1 1.3.2 1.8.7zm17 1.7c2-1.1 8 0 9.7-.9-1.3 1.6 4.1 1.7 8.8.5-1.8 1.1-5.6 1.3-7.3 2s-2.6.2-3.9-.3-4.5-1.8-7.3-1.3z"/>
+    <path fill="#00d860" d="M454 414.3c-4.6 1.2-10 1-8.7-.5-1.9.8-7.8-.2-9.8.9 2.1-1.3 3.7-.3 5.3-3 1 .3 3.2.4 4-.6 1.3.3 3.7.9 4.4 1.6.7.7 1.8-.2.9-1.3 2-.8.7 1 5.7-.3 1-.3 3.5-.7 4.4-.8a30.4 30.4 0 01-6.1 4z"/>
+    <path fill="#ff0" stroke="#000" stroke-width=".1" d="M373.4 664.2l-.2-22.2c0-1-.5-.8-.5 0v22l.7.2zm7.2-23.4l.8 23.4-.1.2h-.5l-.5-23.6h.3zm6.8 19.8l-.4-19c0-.6-.5-.5-.5.1l.4 18.9h.5z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)"/>
+    <path fill="#fff" stroke="#000" stroke-width=".1" d="M376.6 644.7l-7-.1c-.3 1.4 1.4 1.3 2 1 .8.5 1.4.5 1.8 0 .6.5 1.4.4 1.7 0 .8.7 1.7 0 1.5-1zm.5 3.4h-7c-1.3 1.2.3 1.8 1.7 1 .2.4 1 .6 1.6.3.6.4 1.4.1 1.8-.3.7.3 1.6.4 2-1zm-.2 4.5h-6.8c-.1 1.1 1.3 1 1.8.7.5.8 1.7.6 2.1.1.7.5 1.3.4 1.6 0 .7.6 1.4-.2 1.3-.8zm.4 4.4l-7.7-.1c-.4 1.3.8 1.5 1.3 1.2.2.7 1.2.5 1.5 0 .4.3.9.1 1.1-.2.1.7 1 .8 1.7.2 1.4 1 2.7-.2 2-1.1zm6.7-1.8h-6.3c.3 1.2.9 1.5 1.9.8.8.8 2 .5 2.3.1 1.4 1.1 2.1-.2 2.1-1zm-.6-4.4l-6.2-.2c.1 1.6 1.6 1.5 2.4.9.5.7 1.5.5 2 0 .7.8 2 .3 1.8-.7zm.8-4.9h-6.6c0 1.1 1.5 1.7 2.6.7.3 1.3 1.5.9 2 .4.8 1 2.5-.2 2-1zm-.4-3.3l-6 .1c0 1 1.4 1.4 1.9.6.3.5 1.3.4 1.6 0 .4.7 1 .2 1.2 0 .7.5 1.4.2 1.3-.7zm6.9 2.2l-7.2-.1c0 .7.7 1 1.2.7 0 .8 1 1 1.7.4.4.7 1.7.8 2.2 0 1 .9 2.2.2 2-1zm-.1 5.9h-7c0 1 1.1 1.3 1.8.8.1.8 1 .9 1.5.4.7.7 1.7.8 2.3 0 .8.3 1.5-.4 1.4-1.2zm-.4 5.3h-5.6c0 1 1.2 1 1.7.5.6.7 1.4.7 1.9.2.7.6 1.9.4 2-.7z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)"/>
+    <path stroke="#000" stroke-width=".1" d="M381.3 664.4c-3 0-6.1 0-8.2-.2s-2.7-.6-4.2-1.5l-5.6-3.4c-.5-.2-1 .1-.3.5l5.6 3.7c1.5 1 2.5 1.9 3.4 3 1.2 1.3 2 1.3 2.6 1.1s1.4-.5 2.3-.3c.8.2 2 .3 2.6.2.5.5 1.8.4 2.5.2s1.2-.2 1.7-.1h1.7c.5 0 1.8-.3 2.7-.2 1 .2 1.9 0 2.5 0a5 5 0 012-.1c.6-.4.8-.9 1-1.4.6-.1.8-.2.9-.5l.6-1.6h.2v-.6l-.4-.6.2-1 .5-.2-.2-1-8.8.2a2 2 0 00-.6 1.1l-2.6.4c-.3.1-.6.1-.9.5l-1.2 1.8z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)"/>
+    <path stroke="#000" stroke-width=".1" d="M391.8 660.5l1.3-4.9c.2-.5-.3-.6-.5 0l-1.3 4.9h.5z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)"/>
+    <path fill="#fff" stroke="#000" stroke-width=".1" d="M396.9 655c-1.1.5-1.7.8-2.2.6-.5-.2-1.1-.3-1.5-.1a.5.5 0 010 .1 493.3 493.3 0 01-1.1 3.8c.8.3 2.2.3 2.5 0 .4-.4 1.3-.3 1.8-.3.3-.4.4-.9.3-1.1s0-.7 0-1 .4-1.4.2-2z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)"/>
+    <path fill="none" stroke="#000" stroke-width=".1" d="M371.7 645.6a53.2 53.2 0 01-8 14m2 1.2a54.5 54.5 0 0011.4-12.6m-7 4.3c-.3 2.7-1.1 7.5-1.5 10m2.6-4c-1 1-2.3 2.6-3.4 3.5m12.7-8.9c-.8.8-1.7 1.8-2.6 2m3.1-1.8a7 7 0 002.7 1.9m-3.2-6.2a8.5 8.5 0 01-3 1.7m3.4-1.6c.6.6 1.3 1.3 2.2 1.7m-5.4-4.9a7 7 0 002.7-1.5m.3 0c.7.7 2 1.4 2.7 1.6m-5.5-3.3a4 4 0 002.4-1.4m.3-.2c.7.6 2 1.4 2.7 1.5m3.2.8c-.4.5-1.5 1.3-2.2 1.3m2.7-1.3c.3.5 1.1 1.3 1.6 1.3m-4.8 6a7.2 7.2 0 002.8-1.9m.5.1a5.6 5.6 0 001.9 1.8m-4.1 5.2c.4 0 1.5-.6 1.8-1.3m.6-.3a7 7 0 002 1.7m-18.7.9c1.3-.4 3.8-2 5.1-3.5m-2.4 1.9c1 .7 2.3 1.5 3.2 1.7m-6.2-4.5a8 8 0 002.4-1.5m.5-.1c.3.4 2.4 1.7 3.3 1.7m-3.8-5.9a9.8 9.8 0 01-2.5 1.4m3-1.4c.7.5 2.2 1.4 3.1 1.4m-3.6-5.4c-.6.6-1.6 1.6-2.4 1.9m2.9-1.8c.4.7 1.6 1.7 2.4 1.8m8 2.6c1.9 3.3 5.3 7.4 8.7 9.6m-14.1-13.3c2.8 4 8.2 12.7 13.4 15.9m1-3.4a18.4 18.4 0 01-4.9 4.6m4.5-3.5c-1.7-2.8-2.6-6.3-4-11m-14 12.4l2 6m-2.4-6.1l1.9 6m-2.4-6.3l1.8 6.2m-2-6.1l1.4 6.1m0-.2h1.7m-.2-.6h-1.6m1.4-.5h-1.6m1.4-.5H374m1.3-.6H374m-.1-.5h1.3m-1.4-.4h1.3m-1.4-.5h1.2m-1.3-.4h1.1m-1.2-.5h1m-1.1-.4h1m-1.1-.3h1m-1-.4h.9m-2.6 0l-1.2 5m1.5-5l-1 5.2m1.3-5.4l-.8 5.5m1.2-5.6l-.6 5.8m.7-.4h-2m2-.5h-2.3m2.3-.6h-2.1m2-.5h-1.9m2-.5h-1.9m1.9-.6H371m1.7-.5H371m1.6-.5h-1.5m1.5-.5h-1.3m1.3-.5h-1.2m1.2-.3h-1.1m1 5.5v-5.9m6.5-2l-4 8.1m4.3-8.2l-3.4 8.3m3.6-8.4l-2.7 8.4m3-8.2l-2.2 8.2m.1-.3h-2.5m2.7-.8h-2.4m2.5-.6h-2m2.4-.6h-2m2.1-.6h-1.9m2.1-.6h-1.8m2-.7h-1.6m1.7-.5h-1.5m1.7-.6h-1.4m1.5-.4H378m1.4-.4H378m1.3-.4h-1m1-.3h-.9m1-.4h-.8m1-.4h-.8m.8-.3h-.7m3.4-.1l1.7 5.6m-1.4-5.5l2.1 5.4m-1.8-5.4l2.5 5.3m.6-.5l-2.8-4.9m2.8 5h-2m1.8-.8h-2m1.7-.6h-1.9m1.5-.7h-1.7m1.3-.6h-1.5m1.1-.7H383m1-.7h-1.2m.8-.6h-1m3.2.1L384 662m2.3-5.4l-1.6 5.3m.7-.1l1.2-5m.3.2l-1 4.7m-1.7-.3h1.7m-1.5-.6h1.7m-1.5-.7h1.6m-1.3-.6h1.5m-1.3-.7h1.4m-1.2-.6h1.3m-1-.7h1.2m-1-.6h1m.9.1l.8 3.6m-.5-3.8l1.1 3.7m-.7-3.7l1.2 3.7m-.7-3.5l1.3 3.5m-.1-.3h-1.7m1.5-.5h-1.6m1.4-.5h-1.5m1.3-.6H388m1.2-.5h-1.4m1.2-.5h-1.3m1.1-.5h-1.2" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)"/>
+    <path fill="#00b800" d="M358 403c4-2.6 10.7-2.1 14.2.5 4.1-2.3 11.6-1.7 15 1.4 5.3-3.6 9.8-4.1 15-.7 4-2.8 10-3 14.8.3 4.7-2.2 9.8-4 14.3.8-2.7-2-8.5-3.6-14.3.9-4.5-4.5-12.3-2.9-14.9.2a9.7 9.7 0 00-14.6.3c-4.6-3.9-11.6-4-15.3-1-3-2.4-7.3-4.3-14.3-2.7z"/>
+    <path fill="#cf6200" d="M428.1 397.5a303 303 0 01-74.7-1.4c-3.3-.9-2.4-2.1.4-1.5a240 240 0 0048.5 2c2.6-3.4 6.6-9.2 7.9-10.8s1.7-1.8 4.3-2.2l11-1.9.1 1.6c-.3.2-.6.7-.9.8 0 2.6.6 9 1 11.4.6 0 1.2-.3 1.5-.4 1-.2 1.9 2.1 1 2.4z"/>
+    <path fill="#cf6200" d="M461.6 398.5l2.7-.1c.8 0 2-.6 2.5-1.9l2.7-8-2-3.1a174.4 174.4 0 001-6.7l2.7-1c.1-.6-.1-2.2-.7-2.7-8.8.4-35 1.3-40 1.3-1 0-1.6 0-2 1.6-2.5 9.2 1 22 10.1 29.3.7.6 1.5.1.4-.9a32.8 32.8 0 01-5.5-7.1l6.5-.2c.6 2.2 2.2 6.8 2.5 7.5s1.1 1 .8-.2c-1-2.7-1.4-5.8-1.8-7.3l6.8-.1c0 2.4.3 5.7.4 6.6s.8 1 .8 0v-6.7l6-.2-.5 6.6c-.1 1 .4 1.6.7 0l.9-6.6 4.1-.1c0 1.3-1.4 5.5-1.7 6.6s.2 1.1.6 0a30 30 0 002-6.6z"/>
+    <path d="M432.4 397.4c-.6-1.4-2.8-6.4-3-10l8.7-.3a104 104 0 001.7 10.1l-7.4.2zm7.3-10.3l1.5 10.2 7-.2-.3-10.2-8.2.2zm-10-9c-.3 1.9-.4 5.8-.3 7.5l8.6-.1-.7-7.6-7.6.2zm9.2-.2c0 1.8.5 6.2.6 7.5l8.3-.2-.4-7.6-8.5.3zm10.2-.3c0 1.7.3 6.4.2 7.6l7.3-.2c0-1.7.3-6.5.2-7.7l-7.7.3zm9.1-.3l-.2 7.7 7.9-.3c.3-1.6 1-6 1.1-7.8l-8.8.4zm8 9c-2.7.2-7 .3-8.3.3a262 262 0 01-.9 10.2l8-.2a68 68 0 002.9-7.9l-1.7-2.3zm-16.8.5l.3 10.2 6-.2.8-10.2-7 .2zm-34.1-2l-3.3.7a246.9 246.9 0 01-8 11c4 0 10.2-.2 11.7-.3l-.4-11.3zm1.5-.2l.4 11.5 7-.5-1-12.2-6.4 1.2z"/>
+    <path stroke="#000" stroke-width=".1" d="M377.3 657h-7.7v-.2l7.7.1zm6-6.2c.1 0 .1 0 0 0l-6-.1c-.1 0-.1 0 0 0h6zm-6.4 1.7c.1 0 .1.1 0 .1h-6.8c-.1 0 0-.1 0-.1h6.8zm.2-4.4c.1 0 .1.1 0 .1H370c-.1 0-.1-.1 0-.1h7.1zm-.5-3.5c.1 0 .1.1 0 .1h-6.9c-.1 0 0-.2 0-.2l7 .1z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)"/>
+    <path fill="#fff" stroke="#000" stroke-width=".1" d="M383.8 642.6l-6 .1 6-.1z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)"/>
+    <path stroke="#000" stroke-width=".1" d="M384.1 646c.1 0 .1 0 0 0h-6.5c-.1 0-.1 0 0 0h6.5zm6.5 4.6v.1h-7c-.2 0-.2 0 0 0h7zm0-5.9c.2 0 .2.1 0 .1h-7.1c-.1 0-.1-.1 0-.1h7.2zm-6.6 10.4c.1 0 .1.1 0 .1h-6.4v-.1h6.4zm6.2.9c.1 0 .1 0 0 0h-5.6 5.6z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)"/>
+    <path fill="#ef072d" stroke="#000" stroke-width=".1" d="M395.3 657a3 3 0 000-1.4 1.1 1.1 0 01-.6 0 3 3 0 00-.3-.2c0 .4-.2 1.5-.4 1.9-.3 0-1 0-1.3-.2l-.3 1a3.5 3.5 0 001.5 0c0 .6-.1 1.1-.4 1.5.5 0 1 0 1.1-.3.3-.4.3-1 .4-1.3l.5-.1.5-.2.7-.1v-.6l.2-.4-1.6.5z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)"/>
+    <path stroke="#000" stroke-width=".1" d="M370.5 623.2c-.8 0-2.6 0-3 .2-.3.2-.4.3.2.4s1.7.5 2.3.8c.6.4 1 1 1 2a6 6 0 003 6.3c.1.1.2.2.1.6l-.3 1.1c0 .2-.1.4.2.3a20 20 0 01-1 1.6c-1.6-.2-3 0-3 1.8 0 .2 0 .4.2 0 .3-.4.6-.8 1.3-1-.4.7-.6 1.3-.5 1.7 0 .3.2.5.4 0 .1-.4.5-.8.8-1.1.2-.1.2-.1.1.2s.1.9.3 1.1c.2.2.3.1.2-.2 0-.4 0-1.1.5-1.3.6-.4 1.2-.2 1.4.2.3.5.5 0 .2-.4s-.6-.9-1-.9l1-1.7c0-.2.2-.3.4-.2 0 .1.2.1.3-.2l.7-1.4.6-.2 1 1.5v.6c0 .4-.4 1.3-.5 1.6-1.2 0-1.8 0-2.2.7-.2.3.1.4.4.3a2 2 0 011-.3c.2 0 .3.2 0 .3-.7.3-1.2.8-1.2 1.5 0 .2.2.3.3 0 .3-.5.8-.9 1.3-1 0 .5.1 1.3.5 1.5.3.2.3 0 .2-.3-.2-.5 0-1 .3-1.3.5-.6 1.7.2 2 .4.2.2.4.3.2-.3-.1-.7-1.1-1-2-1.2l1.2-4.2c.5.3 1-.5 1.8-.2 1.4.6 3.5 1.9 3.8 2.2.4.3.5.2.7 0 .2-.1.5 0 .8 0 .2.1.4.2.1-.4a7.2 7.2 0 00-2.4-2.6c.8 0 1.8 0 1.8-.2s-1.2-.6-1.7-.6a3.3 3.3 0 001.6-.8c.2-.2 0-.3-.8-.3-2.1 0-3.2 0-4.3-.6-1.8-1-2.9-2.2-3.8-2.6-.4-.3-.7-.9-1-1.4-.5-1.5-.5-2.3-1.8-2.8s-3 .1-3.7.8z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)"/>
+    <path fill="#fff" stroke="#000" stroke-width=".1" d="M370.6 623.6h-1.7s-.2 0 0 0l1.5.4c.3 0 .2.3 0 .2s-.4 0-.2.2c1 .7 1.2 1 1 3.7l.5.4c.2 0 .1.2 0 .1s-.5 0-.2.2.5.2.2.2-.6.2 0 .1c.5 0 .8.2 0 .3-.6 0-.4.2 0 .2.7 0 .5.2.3.2s-.3.2.2.2h.7c.1 0 .2 0 0 .1-.2 0-.2.2.1.2s.5 0 .2.1c-.1 0-.3.1 0 .2.7 0 .8.2.6.3s-.3.1 0 .1.6.1.3.2c-.2 0-.3.2 0 .2s.5.2.3.3-.3.2 0 .2.4.1.2.2c-.2.2-.3.2-.5 0 0-.2-.2-.2-.2 0l-.2-.3c-.1-.3-.3-.3-.3 0s-.2.1-.4 0a3.3 3.3 0 004 .8c.1 0 .2 0 .3.3l.6 1.1c.1.2.3 0 .3-.2l.6-1.7c0-.3.4-.5.3.3.3-.2 1.5-.3 2.5 0a12.2 12.2 0 012.7 1.5.6.6 0 00.5.1c.3 0 .4 0-.1-.5s-.3-.7 0-.5c.3.2.5.1.2-.2l-1-.9c-.1 0-.1-.2-.6-.2h-1.5c-.2 0-.4 0 .2.2.6.2 1.7 1 2 1.2s.4.6-.1.2-2.4-1.5-3.6-2c-2.7.3-4.9.6-6.5-1.1-.8-.9-.8-2.8.5-3.6-.2-.2-.2-.4-.1-.4v-.6c-.2-.1-.4-.3-.4-.5-.3 0-.5-.5-1-.3s-.6 0-.8-.1c-.1-.2-.2-.2-.5-.2s-.5 0-.5-.2.2-.2.6 0c.7.3 1.3.5 1.8-.2.4-.6-.2-1.1-1-1.3-.9-.2-1.5.5-1.9.8z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)"/>
+    <path fill="#fff" stroke="#000" stroke-width=".1" d="M375 623.3a2.8 2.8 0 00-1-.6c-.3 0-.3.2-.2.3v.6c.2.1.3.3 0 .3-.2.2 0 .9.3.7h.2s0 .3.2.3 0 .2 0 .3h.2c.2 0 .1.4-.1.5.3 0 .4 0 .4.2.1.2.4.3.4.6s0 .3-.4.2-.4 0-.5.2-.2.3 0 .3.4.1.1.2-.6 0-.7.3c0 .3 0 .4.2.3l.7-.4.5.1c.2.1 0 .5-.2.3s-.4 0-.5.1l-.5.2c-.2 0-.4 0-.3.5 0 1.4 1.1 2.4 3.1 2.4h3.3c-.6-.4-1-.6-1.3-.6h-.3c.1-.1 0-.3-.1-.3s-.3-.2-.5 0l-1 .5c-.2 0-.5 0-.2-.2l.9-.4c.2 0 .1-.2.1-.2s0-.3.3-.2c.6.4 1.5.9 1.8.9s.4-.2.2-.3-.3-.3-.3-.4.1-.2.5 0c.4.3 1 .5 1.3.6s.5.1 0-.2l-2.3-1.7c-.3-.3-.3 0-.2.2s-.3.3-.5.1-.3-.3 0-.4.2-.2-.1-.5c-.4-.3-.5-.3-.4 0 .1.3.1.5-.2.4s-.6-.3-.3-.4c.2-.2.5-.3 0-.6s-.2 0-.3.2-.4.2-.5 0-.3-.3-.2-.4.1-.2.3 0 .4 0 .1-.3-.4-.2-.3 0-.2.4-.6 0c-.2-.1-.2-.3 0-.4.2 0 .2-.1 0-.3-.7-1.2-.4-2.1-1.2-3z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)"/>
+    <path fill="#cf6200" d="M371.2 191.5c-.3.5-.5.5-1 .9-.8.5-1 2 .3 1.8.9-.1 1.4-.7 1.7-1a11.1 11.1 0 00-1-1.7zm-4-3.2c-1 1-1.2 1.4-.7 1.4.6 0 .4 0 0 .7-.5.7.8 1 1.3.6s.6-.7.9 0c.2.5 1 0 1.6-.5a14.2 14.2 0 00-3.1-2.2zm-1.8 5.5c-1.3.7-.8 4 1.1 3.1.6-.3 1.2-.2 1 .3l.1.9a6 6 0 002.2-1.6c1.2-1.3 0-1.3-1.7-1.3-1.8 0-2.4-.3-.6-1.3 1.5-1 .5-1.6-1.6-1.3.3.4.1 1-.5 1.2zm7.4 7.6c-1-1-.4-1.6.7-2l.5-.5-.8-3.3c-.6.1-1.2 1.3-1.4 2-.2.8-.5 1.3-1.3 1-.8-.2-1.6.7-1.7 1.6h.5c.4.1.6.6.5 1.1 2.3 0 2.7 1.5 3 2.6.5 1.2 1 1 1.4.4.3-.7-.5-1.9-1.4-3z"/>
+    <path fill="#ff0" d="M373.4 214.8c-.4 1-.4.9-1.8 1-1.4 0-3 .3-3.8 1-.4.5-2.8.6-2.8 1.7 0 1 0 1.9 1 2 1 0 1.2.2.8 1-.4.7-.7 2 1.1 2.1 1.8.1 3.1-.4 3.6.6.4 1 0 2.7.3 3.3s1.6 1 3.4 1.6c1.3.3 6 .6 7.5.4 1.5-.2 1-1-.5-1.2-1.5-.1-2.6-.3-3-1.4-.3-1-.6-1.6.3-2.5.8-1 1.6-1.6 1.1-3.1s-1.2-3.3-3-3.7c-1.7-.5-1.1-2.8-2.8-3-.7-.1-1.2-.1-1.4.2z"/>
+    <path fill="#cf6200" d="M365.1 228.8c1.5.1 2.8.5 1.6.9-1.3.3-2 1-.4 1.1 1.6.2 2.9.7 1.7 1.1s-1.4 1.1 0 1 2.1.8 1.1 1.4c-1 .6-1.7 1-2.4 0-.6-1-1-1.4-1.2-.6-.2.7-.6.2-1.1-1s-1.5-1.4-1.2-.5-1 1-2 .6a22.4 22.4 0 003.7 3c1.5-.5 3.3 0 3.9 0 .6 0 2.6.5 3.7 1s1.8-.4 1.4-1.5c-.5-1.2-.6-.8-1.1-.2-.6.7-.7-.2-.7-1.6 0-1.1-.7-.8-1-.1s-.8-.4-.5-1.1 0-1-.6-.8-.6 0-.7-1.3-.6-1.1-.8-.6-.7-.2-1.5-1.2c-.7-1-1.5-.4-2.8.2l1 .2z"/>
+    <path fill="#ff0" d="M380.7 236.7c-7 2.9-12 1.6-15.9-1 1.6-.4 3.4 0 4 0 .6.1 2.6.6 3.7 1.2s1.8-.5 1.4-1.6c1 1.2 1.6 2 2.8 2 1.2-.1 3-.3 4-.6zm-15-32.3c-.4-1.4-.8-1.8-1.6-1.7-.7 0-1-.1-2-.4-.8-.4-2 0-2 1.6s-1.2 2.3-2.5 3.2c-1.3 1-2 1.8-2 3.3s-.4 2-1.2 3l-1.5 1.7 1.7 1c.9.4.6 1-.4.8s-1.8.3-.3.6 2.3 1 .8 1c-1.5 0-3.2 1.2-.3.9 2.9-.3 4 1 .6 1-3.4.2-2.1 1.2-.3 1.2 3.2 0 2.2 1 1.4 1-.8 0-1.2 1 .9.8h.1c.3-.3.5-.7.7-1.2.3-1 .7-4 1.9-4.9 1.2-.8 1.8-2 1.8-2.9s1.8-4.6 3-5.5 1.7-3 1.3-4.5z"/>
+    <path fill="#cf6200" d="M363.2 204.4c-1.2-.8-2.4-.3-2.4 1.2s-.7 2-1.8 2.5a4.4 4.4 0 00-2.1 3c-.2 1.2.2 2-.7 3-.8.9-1 1.6-.3 2.2.6.5.6.6.8 1.3.3.8 1.7 0 1.7-.9s.4-.9 1.3-1.4c1-.5 2.5-3 2.2-3.7-.4-.6-1.2-1.2-.1-2.2 1.1-1 2.3-1 2.3-2s.3-1.2.7-1.6c.3-.3-.8-.8-1.6-1.4z"/>
+    <path d="M363.2 203.2c-.8-.3-1.2 1.4-.1 1.6s1.2-1.2.1-1.6zm-.2 2.2c-.8 0-1.8 1.2-.3 1s2-1.2.3-1zm-1.6 2c-1 .5-.7 1.7.5.8s1.6-1.8-.5-.7zm-1.4 1.9c-1 .4-.7 1.6.6.7 1.2-.8 1.6-1.8-.6-.7z"/>
+    <path d="M358.2 210c-.9.5-.3 1.7 1 .9s1.2-2-1-.8zm1 1.2c-.8.4-.2 1.6 1 .8s1.3-2-1-.8z"/>
+    <path d="M357.8 211.6c-1 .5-.4 1.6 1 .8s1.1-1.9-1-.8zm1 1.3c-1 .4-.4 1.6.9.7 1.3-.8 1.2-1.8-1-.7z"/>
+    <path d="M357.3 213.6c-1 .4-.4 1.6 1 .8s1.1-1.9-1-.8z"/>
+    <path d="M357.4 214.7c-1 .5-.4 1.6 1 .8s1.1-1.9-1-.8z"/>
+    <path fill="#cf6200" d="M356.7 225.6c-1 0-1.5 1.3-.4 1.6s1.4.3 1.4 1.2.3 2 1.5 2.1c1.2.1 2.3-1.3 1.2-1.7-1-.4-2-.8-2-1.7-.1-1-1-1.6-1.7-1.5z"/>
+    <path fill="#ff0" d="M388.2 218.2l.6.6c.8.7 2.4 0 2.2-.6s-1-2.4 1-.9l11.8 8.2c2.4 1.7.8 2-.3 1.4l-6.2-3c-2-1.1-2.2-.7-2.5-.3-.2.3 0 1 .7 1.7-1.2.2-3 0-3.6-1.3-.6-1.5-2.2-3.3-3.2-4.7-.4-.5-.6-.8-.5-1.1z"/>
+    <path fill="#00d860" d="M452 428.7c-1.7 1-3.8 3-2.4 5.7l.5-.3a158 158 0 0016.3-24l.1-.7a22.6 22.6 0 01-5.8 3.5c.8 2-2.8 4.7-4.7 5.5.8 1.3.5 3.2-1.2 3.6.4 1.1-.9 1.1-2.4 1.8s-2.3 1.1-2.8 2c.8-.5 2-1 2.6-.7s.8 1.1-.4 1.4-2 .9-2.3 1.4c1.7-.6 4-.3 2.4.8z"/>
+    <path stroke="#000" stroke-width=".1" d="M376 628.4c-.4-.3-.5-.1-.4 0s0 .4-.3.5h-1c-.2 0-.5.4 0 .3l1.6-.3c.2 0 .4-.2 0-.5zm.7.6c-.3-.3-.4-.2-.3 0s-.1.3-.3.3l-1.4.4c-.4 0-.4.3.1.3s1.5-.5 1.6-.5.2-.3.3-.2.3 0 0-.3zm.3.8l-1 .5c-.3 0-.5.3 0 .3s1-.5 1.2-.6l.4-.2s.4-.1 0-.4-.8 0-.6.1 0 .3 0 .3z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)"/>
+    <path d="M360.6 190.5c-3.1-2-6.7 2.3-3.2 4.6 3 2.1 6.2-2.6 3.2-4.6z"/>
+    <path fill="#fff" d="M356.7 192.4h1c-.3 1 .7 2.4 2.2 2.1-1.2.9-3.5-.1-3.2-2.1zm12.2 46.8c1 .3 4.2.6 5.3.7l-1.4 2.8c-.3.8-.5.9-.5-.4s-.8-2.1-1.5-.8l-1.3 2.4c-.3.6-.8.8-.7-.6v-4z"/>
+    <path fill="none" stroke="#000" stroke-width=".3" d="M399.7 640.8c0 16.3-2.6 33.9-23.8 42.3-21.1-8.4-23.7-26-23.8-42.3h47.6zm0 0c0-6.2-.3-12.2-.2-17.4a63.6 63.6 0 00-23.6-4.3c-5.3 0-15.7.8-23.6 4.3.2 5.2-.2 11.2-.2 17.4h47.6z" transform="matrix(4.9436 0 0 4.9441 -1482.9 -2891.1)"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/si.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/si.svg
new file mode 100644
index 0000000..6de77ef
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/si.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-si" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M60.2 0h497.3v497.3H60.2z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#a)" transform="translate(-62) scale(1.0295)">
+    <path fill="#fff" d="M0 0h994.7v497.3H0z"/>
+    <path fill="#d50000" d="M0 331.6h994.7v165.7H0z"/>
+    <path fill="#0000bf" d="M0 165.8h994.7v165.8H0z"/>
+    <path fill="#d50000" d="M282 90.3c-3.9 59.9-6.1 92.7-15.2 107.9-9.9 16.3-19.5 28.2-58 42.6-38.4-14.4-48-26.3-57.9-42.6-9-15.2-11.3-48-15.2-107.9l5.7-1.9c11.4-3.5 20-6.3 26.3-7.5 9-2 16.7-4.1 41-4.6 24.3.4 32 2.7 41 4.6 6.4 1.3 15.3 4 26.6 7.5l5.7 2z"/>
+    <path fill="#0000bf" d="M276.4 88.3c-3.7 59.8-6.7 87.2-11.6 100.3-9.3 22.6-24.1 35-56 46.7-31.8-11.8-46.6-24.1-56-46.7-4.8-13.1-7.9-40.4-11.4-100.3 11.2-3.5 20-6.2 26.3-7.5 9-1.9 16.7-4.2 41-4.6 24.3.4 32.1 2.7 41.1 4.6 6.4 1.3 15.3 4 26.6 7.5z"/>
+    <path fill="#ffdf00" d="M208.8 106.6l1.5 3.7 6.7.9-4.3 2.6 4.2 2.8-6.1 1-1.9 3.3-2-3.4-6-.8 4-2.9-4-2.6 6.4-1 1.5-3.6z"/>
+    <path fill="#fff" d="M262.5 174.5l-3.7-3-2.7-4.4-5.2-4.6-2.8-4.6-5.2-4.7-2.6-4.6-2.8-2.3-1.9-1.7-4.7 4.1-2.6 4.6-3.3 2.9-3.5-2.8-2.7-4.7-10-17.7-10 17.7-2.6 4.7-3.6 2.8-3.2-3-2.6-4.5-4.7-4.1-1.9 1.7-2.8 2.3-2.6 4.6-5.2 4.7-2.8 4.6-5.3 4.6-2.6 4.4-3.7 3a64 64 0 0018 35.2c6.4 6.1 19.5 14.4 35.5 19.9a101 101 0 0035.7-20 64 64 0 0018.1-35.1z"/>
+    <path fill="#ffdf00" d="M224.8 81.5l1.5 3.6 6.7 1-4.3 2.5 4.2 2.9-6.1 1-1.9 3.3-2-3.4-5.9-.8 4-3-4.1-2.5 6.4-1 1.5-3.6zm-32 0l1.5 3.5 6.7 1-4.3 2.6 4.2 2.8-6.1 1-1.9 3.3-2.1-3.4-5.8-.8 4-2.9-4.1-2.6 6.4-1 1.5-3.6z"/>
+    <path fill="#0000bf" d="M254.2 197.2H247l-6.7-.5-8.1-4-9.2.1-7.9 3.9-6.2.5-6.3-.5-7.9-3.9h-9.1l-8.1 4-6.7.4h-7.4l-3.5-6 .1-.2 10.9 1.8 6.6-.5 8.1-4h9.2l8 4 6.2.5 6.2-.6 8-3.8h9l8.2 3.9 6.7.5 10.5-1.9.2.3-3.6 6zm-84 9.3l7.2-.5 8.1-4h9.1l8 3.9 6.2.6 6.2-.6 8-3.9h9.1l8.1 4 7.3.5 4.7-5.8-.2-.2-5 1.5-6.7-.5-8.1-4h-9.1l-8 4-6.2.5-6.2-.5-8-4h-9.1l-8.1 4-6.7.5-5-1.2v.2l4.4 5.5z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sj.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sj.svg
new file mode 100644
index 0000000..f4e5829
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sj.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sj" viewBox="0 0 512 512">
+  <path fill="#ef2b2d" d="M0 0h512v512H0z"/>
+  <path fill="#fff" d="M128 0h128v512H128z"/>
+  <path fill="#fff" d="M0 192h512v128H0z"/>
+  <path fill="#002868" d="M160 0h64v512h-64z"/>
+  <path fill="#002868" d="M0 224h512v64H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sk.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sk.svg
new file mode 100644
index 0000000..fd72868
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sk.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sk" viewBox="0 0 512 512">
+  <path fill="#ee1c25" d="M0 0h512v512H0z"/>
+  <path fill="#0b4ea2" d="M0 0h512v341.3H0z"/>
+  <path fill="#fff" d="M0 0h512v170.7H0z"/>
+  <path fill="#fff" d="M203.2 395.5c-45.9-22-111.5-66-111.5-152.8s4.1-126.2 4.1-126.2h214.8s4.2 39.4 4.2 126.2S249 373.4 203.2 395.5z"/>
+  <path fill="#ee1c25" d="M203.2 384c-42.1-20.3-102.3-60.5-102.3-140.2s3.8-115.8 3.8-115.8h197s3.8 36.2 3.8 115.8-60.2 120-102.3 140.2z"/>
+  <path fill="#fff" d="M212.2 223c11.4.2 33.7.6 53.5-6 0 0-.6 7-.6 15.3s.6 15.3.6 15.3a172 172 0 00-53.5-6v44h-18v-44a172 172 0 00-53.5 6s.6-7 .6-15.3-.6-15.3-.6-15.3c19.9 6.6 42.1 6.2 53.5 6v-27.7a128 128 0 00-42.3 6.1s.5-7 .5-15.3-.5-15.4-.5-15.4c17 5.7 31.9 6.2 42.2 6-.5-17.4-5.6-39.4-5.6-39.4s10.5.8 14.7.8c4.2 0 14.7-.8 14.7-.8s-5.1 22-5.7 39.5a126 126 0 0042.3-6s-.5 7-.5 15.3.5 15.3.5 15.3c-17-5.7-31.9-6.1-42.3-6V223z"/>
+  <path fill="#0b4ea2" d="M203.2 280.8c-21.2 0-32.6 29.4-32.6 29.4s-6.3-14-23.6-14c-11.7 0-20.3 10.5-25.8 20.2 21.3 33.8 55.3 54.7 82 67.6 26.7-12.9 60.7-33.8 82-67.7-5.5-9.6-14.1-20-25.8-20-17.3 0-23.6 14-23.6 14s-11.4-29.5-32.6-29.5z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sl.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sl.svg
new file mode 100644
index 0000000..18c76d7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sl.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sl" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <rect width="384" height="512" rx="4.6" ry="7.6"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(1.33333 1)">
+    <path fill="#0000cd" d="M0 341.7h512V512H0z"/>
+    <path fill="#fff" d="M0 171.4h512v170.3H0z"/>
+    <path fill="#00cd00" d="M0 0h512v171.4H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sm.svg
new file mode 100644
index 0000000..1ed18ee
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sm.svg
@@ -0,0 +1,89 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sm" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#19b6ef" d="M0 256h512v256H0z"/>
+    <path fill="#fff" d="M0 0h512v256H0z"/>
+  </g>
+  <path fill="#fd0" fill-rule="evenodd" stroke="#7d6c00" stroke-width="2.4" d="M252.9 361.8C308.8 320 369 234.6 298.5 189.7c-13.2-2.6-27.9-1.8-35 3.8-3.7-2.2-6.6-2-10.4 2-2.6-3.2-5.2-4.7-10.7-3a43.6 43.6 0 00-33.6-3.4c-61.5 37-23.9 124.6 44 172.7z"/>
+  <g stroke="#3a9d4f">
+    <path fill="#4fd46b" fill-rule="evenodd" stroke-linejoin="round" stroke-width="2.4" d="M356.3 266.8s6.3-8.5 6.5-8.5c6.3-3.7 7-8.5 7-8.5 6.3-2 4.3-7.1 4.8-7.8a6.9 6.9 0 001.5-7.6c0-.9 2.2-8.9-.9-10 .2-8.5-5.1-7.7-9.3-2.1-4.5 1.3-5.5 5-4 9-5.8 0-6 8.5-4.3 13.3-7.8-.2-3.4 8.5-3.7 9-2.6 1.2 2 13.6 2.4 13.2zM307 339.5l4 2.4c.7 3 3.5 4.8 5.6 4.3 1 4.6 6 4 9.5 1.3 3 4.2 6.5 4.3 11.3 2.9 4.4 3.2 10 1.8 13.7-1.6 4 3.3 6.7 1 8.7-2.6 3.1.8 5.6.3 6.7-2.8 6.1-.5 3-6.2-2-8.7 4-3.4 8.5-10.6 2.2-11.7-2-1.4-5.6-1.1-8.4.2-.7-3.2-5.2-4-10-.4-1.7-3.6-7.5-1.9-10.2.6-3.5-3-7.6-3-13.7.5L307 339.5zm0-9.3c.7-4-2-11.2 2.2-12-.8-6.6.4-14.1 8-13.4 1.3-6.3 1-12.2 8.3-13 0 0 5.9-20.5 12-6.3 2.3 4 1.9 10.8-2.9 9.5 1 5-.7 9.5-6.3 9.3 2.5 3.6 1.7 8.4-1 10.7L307 330.2zm35.4-25.4l6.3-1.3c6.5-4.4 9.1-6.1 12.4-1.3 5.4-1.2 10.6-.6 10.4 3.7 6.5.4 6.4 4.5 5.7 7.8 1 5.7-1.5 13.2-5.5 4.1-12.6-7.7-19.7-6.7-39.7-2.2l10.4-10.8zm3.3-6.3c.2-.2 18.7-5 16.7-10.7 5.2-.8 6.3-6 6.5-6 10.9-3.5 10.2-9.8 10.2-9.8 3.1-3.4 8.6-6.7 7.4-12.6.4-6.7 1-10.9-8-6.5-6.8-.7-9.1 3.2-11.1 9-3.2-3.7-8.3 2.3-8.9 7.7 0 0-8.3 8-8.3 8.2l-6.9 12.8 2.4 7.9z"/>
+    <path fill="#4fd46b" fill-rule="evenodd" stroke-linejoin="round" stroke-width="2.4" d="M346.1 284.1c-4.4-3.3-6.9-7.3-6-11.3-3-3.9-5-6.3-2.2-9.7l-2.2-8c-5.7-2.2-3.3-7-1.7-8.7-2.7-3.7-2.8-7.6-.3-11.1 0-7 4.9-4.4 9 0 0 0 6.7 4.8 1.7 9.1 5 1.7 6.5 6 3.7 7.8 4.3 2 5 5.9 2.6 8.5 4.4 3.5 2.7 8 4.1 12l-8.7 11.4z"/>
+    <path fill="#4fd46b" fill-rule="evenodd" stroke-linejoin="round" stroke-width="2.4" d="M354 251.8c-.3-.2-7.5-9.4-5.5-10-.4-2.8-2.6-5.9-1.3-8.7-3.5-3.5-3.6-7.7-.9-11-2.4-3.3-1.3-7.7 2-10.5-1-5.3 2.7-6.6 6-7.6 2.5-8.6 6.5-6.4 8.8.2 3.4 3 2.9 7.5 1.7 10.9 4 2.7 1.6 6.1-.2 7.6l-10.7 29.1z"/>
+    <path fill="#4fd46b" fill-rule="evenodd" stroke-linejoin="round" stroke-width="2.4" d="M352.9 206l-6.1-6.1c1.5-3.2 2.8-9-1.8-11.5-2.5-6.2-15-13.8-17.1.8-2-4.4-6-8.7-9-3.6-6.5-5.7-10-4-6.6 3.2 0 0-3 4.8 5 8.5.6.6-2.7 8.7 6.9 8.9-1.8 2.7 1.2 6.6 5 6.3-2.8 3.4 1.9 7 4.8 5.6-1.3 3.8-1.2 5.6 4 6.1l6 6.7 4.7 6.6 4.1-31.5z"/>
+    <path fill="none" stroke-linecap="round" stroke-width="2.2" d="M356.6 263c.2-.4 11.6-26.5 13.1-34.5m-12-12s2 21.3-3.3 37M322.8 195s23.3 22.4 25.5 31.6m-9.3-34s1.6 18.4 8 36.5m33.2 30.4s-23.3 19.6-34.7 36.8m12.6 32s-30.7 4.2-44.2 4.5m34 8.7s-38-1-40.8-3.7M329 292c0 .3-19.3 32.2-20 42.7"/>
+  </g>
+  <path fill="#65c7ff" fill-rule="evenodd" stroke="#7d6c00" stroke-width="2.4" d="M252.7 355.7c-40.3-38-81.6-109.4-40.5-145.4 7.2 4.1 15.9.4 27.7-4.2 3.6 3.9 8.2 4.9 12.7 2 5.2 2.1 9 .4 11.5-2.4 11.6 6.8 26.5 10.3 30 3.6 40.4 38.4-.5 110-41.5 146.4z"/>
+  <path fill="#8fc753" fill-rule="evenodd" d="M252.9 354.6a227.1 227.1 0 01-45.2-61.5c2-1.8 3-2.3 4.1-5.4a46 46 0 0017.7-.3c1.6 6.1 2 11.2 5.8 16.3l8.2-16a36 36 0 0017.6 0c3.4 4.6 2.2 11.5 8.2 16.7 3.6-10.6 7.2-11.3 10.8-17 5.3 1.9 8.7 1 13-.3 2.3 2.6 1.2 2.5 5.4 6.4a206.4 206.4 0 01-45.6 61z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M205.5 175.3a3.6 3.6 0 11-7.2 0 3.6 3.6 0 017.2 0zm-3.7-8.3a3.6 3.6 0 11-7.2 0 3.6 3.6 0 017.2 0zm-4.4-7.6a3.6 3.6 0 11-7.1 0 3.6 3.6 0 017.1 0zm-3-7.4a3.6 3.6 0 11-7 0 3.6 3.6 0 017 0zm.5-8.1a3.6 3.6 0 11-7.1 0 3.6 3.6 0 017.1 0zm18.9-13.3a3.6 3.6 0 11-7.2 0 3.6 3.6 0 017.2 0zm-7.1 1.2a3.6 3.6 0 11-7.1 0 3.6 3.6 0 017.1 0zm-7.7 4.7a3.6 3.6 0 11-7.2 0 3.6 3.6 0 017.2 0zm23.9-5.8a3.6 3.6 0 11-7.2 0 3.6 3.6 0 017.2 0zm9.9.8a3.6 3.6 0 11-7.1 0 3.6 3.6 0 017 0zm8.8-.5a3.6 3.6 0 11-7.1 0 3.6 3.6 0 017.1 0z"/>
+  <path fill="#fd0" fill-rule="evenodd" stroke="#7d6c00" stroke-width="1.1" d="M262.3 125.3a9.2 9.2 0 11-18.4 0 9.2 9.2 0 0118.3 0z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M271.9 130.9a3.6 3.6 0 11-7.2 0 3.6 3.6 0 017.2 0zm9.3.7a3.6 3.6 0 11-7.1 0 3.6 3.6 0 017.1 0zm9-.4a3.6 3.6 0 11-7.1 0 3.6 3.6 0 017.1 0zm7.6-.3a3.6 3.6 0 11-7.1 0 3.6 3.6 0 017.1 0zm9.5 1a3.6 3.6 0 11-7.2 0 3.6 3.6 0 017.2 0zm7.4 4.7a3.6 3.6 0 11-7.1 0 3.6 3.6 0 017.1 0z"/>
+  <path fill="#e40000" fill-rule="evenodd" stroke="#ac0000" stroke-width="2.4" d="M202 161.8l9.2 17.6h84.5l9.7-17c-5.7-3.9-9.6-6.9-17.7-5-4.7-6.7-9.7-8-17.2-7.2a12.3 12.3 0 00-8-4.2l-17.8.5c-4.6.4-8.2 4-8.4 4-7.6-1-14.5-.7-16.3 6.6-6.9-1.7-11.7.2-18 4.7z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M317.8 144.4a3.6 3.6 0 11-7.1 0 3.6 3.6 0 017.1 0zm.6 8.3a3.6 3.6 0 11-7.1 0 3.6 3.6 0 017.1 0zm-2.6 7.8a3.6 3.6 0 11-7.1 0 3.6 3.6 0 017.1 0zm-3.3 6.4a3.6 3.6 0 11-7 0 3.6 3.6 0 017 0zm-3.8 8a3.6 3.6 0 11-7.2 0 3.6 3.6 0 017.2 0zm-50-10.2a5.3 5.3 0 11-10.5 0 5.3 5.3 0 0110.5 0zm1-12.1a6.4 6.4 0 11-12.7 0 6.4 6.4 0 0112.8 0z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M258.9 140.8a5.7 5.7 0 11-11.5 0 5.7 5.7 0 0111.5 0z"/>
+  <path fill="#fd0" fill-rule="evenodd" stroke="#7d6c00" stroke-width="1.1" d="M251.2 116.3v-4.6h-3.8l.1-3.4h3.3v-3h4.7v2.7h3.7v3.6h-3.9v4.8h-4.1z"/>
+  <path fill="none" stroke="#fd0" stroke-width="3.3" d="M210.7 179.4c-7.5-12.9-18.7-30.3-11.8-37.8 9.6-10.9 32-1 46.3-7.4 1 12.3-2.4 32.5 3.1 36.7l-5.1 4.5c-3.1-4-9-9.4-16.3.2-4.1-3.6-8.8-3-11 1.8-2.2.3-2 1.2-5.2 2zm85.5-.5c7.5-12.8 18.7-30.2 11.8-37.8-9.6-10.8-32-1-46.3-7.3-1 12.2 2.4 32.4-3.1 36.7l5.1 4.4c5-6.9 11-7.1 16.2.3 4.2-3.7 8.5-3.2 11.1 1.8 2.2.3 2 1.1 5.2 2z"/>
+  <path fill="#fd0" fill-rule="evenodd" stroke="#7d6c00" stroke-width="2.4" d="M210.5 189a466 466 0 0184.5 0l3.3-9.6c-29.5-5.4-49.9-6-88.5-.7l.7 10.2z"/>
+  <path fill="#c76e2e" fill-rule="evenodd" d="M249.7 351.3l.7-4.5c3 .9 5.3.5 7.8-.4l2.6-3.9-2-2.3c-1.7.4-3 2-4.2 3.4-1.7 0-3.2-.8-4.9-1.1l-1.6-6.9c-1.6-1.9-5-1.7-4.3 1.7l.4 2.6c.6 1.6.9 3.9 2 5v2.8l3.5 3.6zm1.3-19.5c-2.3 1.1-5-.8-7.8-2-2.6-.1-4.7 2-7.9 1.4.6-1.7 2-2 3-3-.7-4.4 1.6-5.9 2.3-5.9.6 0 3.2.7 3.2.7l2.6.3c1.6 2.8 3.7 5.4 4.6 8.5z"/>
+  <path fill="#ffe100" fill-rule="evenodd" stroke="#e9bf00" stroke-width="2.4" d="M235.5 390.5c7.5-12.3 60-36.8 109.2-89.9-50 48.3-81.4 60.1-122.4 89.6l13.2.3z"/>
+  <path fill="#9d4916" fill-rule="evenodd" stroke="#68300e" stroke-width="1.1" d="M307.6 334a3.8 3.8 0 11-7.6 0 3.8 3.8 0 017.6 0zm36.7-37.1a4.3 4.3 0 11-8.7 0 4.3 4.3 0 018.7 0zm12.2-31.6a3.8 3.8 0 11-7.6 0 3.8 3.8 0 017.6 0zm-12-41a3.8 3.8 0 11-7.6 0 3.8 3.8 0 017.6 0z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#a9a9a9" stroke-width="1.1" d="M212.4 287.6v-16.2l-1.7-1.4v-3.8l3-.3.6-18-2-1.1-.2-3s2.2.8 2.2.2l.5-3.5s-1.3-.3-1.3-.9 1.6-1.9 1.6-1.9-.8-.8-1-1.3l-.9-3 .8-3-.5-1.7-1.4-2.5 2-1.9-.6-3c0-.5 1.3-2.8 1.6-3l2.5-3.3 4.6-1.1 5.5.8 3 2 .6 4.9s-.6 3-.8 3l-2.5 1s-2.7.3-3 0 .8 3.3.8 3.3v3.3l-.3 4.1s0 2-.2 2.2l-.9 1.1-.2 4.1 4.3 1.1-.2 2.5-3 .3.5 16.7 4.4.8v4.7l-2 1-.5 16.8h-15.3zm66.5.2v-16.1l-1.6-1.4v-3.8l3-.3.6-18-2-1.2-.2-3s2.2.8 2.2.3l.5-3.6s-1.4-.2-1.4-.8 1.7-1.9 1.7-1.9-.8-.8-1.1-1.4-.8-3-.8-3l.8-3-.6-1.6-1.3-2.5 1.9-2-.6-3a10 10 0 011.7-3l2.4-3.2 4.7-1.1 5.5.8 3 2 .5 4.8s-.5 3-.8 3-2.5 1.2-2.5 1.2-2.7.2-3 0 .9 3.2.9 3.2v3.3l-.3 4.1s0 2-.3 2.2l-.8 1.1-.3 4.1 4.4 1.1-.3 2.5-3 .3.6 16.7 4.3.8v4.6l-1.9 1.1-.5 16.7h-15.4zm-33.6.6v-16.2l-1.7-1.3V267l3-.2.6-18.1-2-1.1-.2-3s2.2.8 2.2.3l.5-3.6s-1.4-.3-1.4-.8 1.7-2 1.7-2l-1.1-1.3c-.3-.5-.8-3-.8-3l.8-3-.6-1.7-1.3-2.4 1.9-2-.6-3a10 10 0 011.7-3l2.5-3.3 4.6-1 5.5.8 3 1.9.5 4.9s-.5 3-.8 3-2.4 1.1-2.4 1.1-2.8.3-3 0 .8 3.3.8 3.3v3.3l-.3 4s0 2-.3 2.3c-.3.2-.8 1-.8 1l-.3 4.2 4.4 1-.3 2.5-3 .3.6 16.7 4.4.8v4.7l-2 1-.5 16.8h-15.3z"/>
+  <path fill-rule="evenodd" d="M216.4 287.4v-12.7h7.2V288l-7.2-.6zm33.6 1l.3-13h6.4v12.8l-6.6.3zm33.2-.2l-.5-12.2 6.8-.3v12.8l-6.3-.3zm-65-38.5h4v6.7h-4zm32.4.3h5.6v6.4h-5.6zm33 .5h5v6.1h-5z"/>
+  <path fill="none" stroke="#a8a8a8" stroke-width="1.1" d="M220.3 220.8c4.4 4.9 4.7 4.9 4.7 4.9m28-5c.7 1.7 2.1 5.3 3.8 5.5m31.2-4.6s1.3 3.8 3.3 4.3"/>
+  <path fill="#b97700" fill-rule="evenodd" d="M215.7 207c12.8-4.2-3-12.5-5.6 0-4.2.6-4.7 3.7-13.7 2.3-21.7 35.4-5.6 92.3 57.8 151.3-113.6-96.6-67.4-168-36-165.4 17.1 1.2 8.5 22.5-2.5 11.8z"/>
+  <path fill="none" stroke="#7d6c00" stroke-width="2.4" d="M219.2 188.8s10.5 2.8 10.5 7.3m0-8s7.2 3.1 8.8 6m48.1-4.8s-9.2 1.1-11.2 4m-2.8-3.3s-5.2 4.5-4.8 5.7m3.6 13.6c-.8-.4-4.4-5.2-3.6-11.2m-31.7 8s2.4-2.8 2.4-8m14.4-2l.4 11.6m10-1.6c0-.8 3.3-8.4-.3-12m-21.7-1.6s-2.8 7.6-.8 14m21.3-7.2s-4.4 1.2-6.4 3.2m-12.5-2c0-.4 4.8-1.2 6.4 1.6"/>
+  <path fill="#c76e2e" fill-rule="evenodd" d="M235.3 322c.2 0 4-.7 4-2.6 2-1.2.5-4.7.5-4.7l-3.6-.7-4.9-5.6c-.2-1.7.4-3.3-.7-5-3.4.8-5.3 3.6-6.5 6.9.9 1 1 2.1 2.5 3 1.6.3 2.7-.6 4.2-.3.8 1.3.6 2.5.8 3.7 2 1.5 2.5 3.5 3.7 5.3zm-4.4-23.7v-6.6l-4.7-.1c-.6 1-1.7 1.4-2.4 2.3l-3.2 1.6c1.3 1.7 3 2.6 4 3.4 2.5.7 4.4.7 6.3-.6zm-14.8 9.7l-2.5-4.3a7.7 7.7 0 015 .3s1.1 2.7.3 3.7c-.4 1-2.9.5-2.8.3zm39 4.4a4.7 4.7 0 002.9-3.5l-4.8-5.5H249c-1-1.1-2.6-1.3-3.9-1.3 0 0 1.4 2 3.1 2.5 1.3 2.7 6.6 7.8 7 7.8zm4.6.7a16 16 0 016.5-1.4c-.2-1.7 3.1-5.7 3.1-5.7l6 7.8c-1.1.9-3 .6-4.5.9 0 0-2.9 2.8-3.2 2.9s-5.5 1.3-8-.2c-1.2-2.2.2-4.7.1-4.3zm3.4-13.7c.7-2.5 1-5 0-8 0 0-6.8-.2-6.8 0l-4.5 2s1.5 4.5 3.2 4c.8 2.4 3.1 1.8 4.2 2.6l3.9-.6zm26.5-6.8c-.9 2.8-1.4 5.8 0 8.6 1.2.2 2.6 1 3.7.8l5.5-9.8c-3.8-1.2-6.8-1.1-9.2.4z"/>
+  <path fill="#b97700" fill-rule="evenodd" d="M291.3 206c-12.8-4 3-12.4 5.6 0 4.2.7 4.7 3.8 13.7 2.5 21.6 35.3 5.6 92.3-57.8 151.2 113.5-96.6 67.4-168 36-165.4-17.2 1.2-8.5 22.5 2.5 11.8z"/>
+  <path fill="#c76e2e" fill-rule="evenodd" d="M292.6 303.6c-.2 0-3.3 2.3-3.3 2.3l-4.4 1.7-4.7.1-1-3.2 3.6-3.2c-3-.5-6.1.7-8.5 3 0 0 0 3.5 2 5.3a41 41 0 004.8 4.3c2.3.4 4.4 0 5.9-1.1l5.6-9.2zm-24.8 32.2c1.5.4 12.1-13.6 12.1-13.6a10.7 10.7 0 00-5.2-5.8s-5.2 6-5.3 8.1c-.8 1.9-3.1 9-2.1 9.9-.1.2-.5 3 .5 1.4z"/>
+  <path fill="#006800" fill-rule="evenodd" stroke="#004100" stroke-linejoin="round" stroke-width="2.4" d="M198.8 338.6c-15.8-13.8-37.2-21.4-67-11 8 3.4 16.7 4.6 24.1 8.3l42.9 2.7z"/>
+  <path fill="none" stroke="#00a400" stroke-linecap="round" stroke-width="2.2" d="M153 328.8c31.2.6 40.3 8.4 38.6 7.1"/>
+  <path fill="#006800" fill-rule="evenodd" stroke="#004100" stroke-linejoin="round" stroke-width="2.2" d="M199.4 340.2c-9.3 1.8-22.2 10.8-26 10.4-10.1-1.2-19.7-5.4-29.5-8.5-4.1-1.3-8.2 0-12.4 0 35-16.6 47-14.3 68-2z"/>
+  <path fill="#006800" fill-rule="evenodd" stroke="#004100" stroke-linejoin="round" stroke-width="2.4" d="M176.4 315.8s-11.7 1.6-17 2c-5.1-.4-12.7-5.2-21-14-4.4-4.8-14.3-4.2-14.3-4.2 22-4.7 39-.3 52.3 16.2zm-16-22.7c-15.9-1-35.7-15.3-40.2-32.2 0 .3 5.8 3.7 4.9 4.6 26 6.6 27.8 11.9 35.4 27.6zm26.7 27.3c2.3-14.4 3-24-4-32.5-5.5-6.5-7-10.4-11-19.5-1.1 19-5.2 34.6 15 52zm-25-40c11.8-17.2 13.8-30.2 12-50.6a88.4 88.4 0 01-4.6 11.7c-17.5 11-9.7 28.2-7.4 39z"/>
+  <path fill="#006800" fill-rule="evenodd" stroke="#004100" stroke-linejoin="round" stroke-width="2.4" d="M151.7 197.3c11.8 17.2 10 33.4 8.1 53.9a89.1 89.1 0 00-4.5-11.7c-17.6-11-5.9-31.5-3.6-42.2z"/>
+  <path fill="#006800" fill-rule="evenodd" stroke="#004100" stroke-linejoin="round" stroke-width="2.4" d="M161.4 224c28.6-14.5 17.6-32.8 22.8-46.9-19.8 14.8-22.4 30.5-22.8 46.8z"/>
+  <path fill="none" stroke="#00a400" stroke-linecap="round" stroke-width="2.2" d="M165.3 220.3c3.6-10 10.7-27.2 11.4-27.2m-19.8 48.4c-.7-7.2-4.2-26.4-4.6-28.3"/>
+  <path fill="#006800" fill-rule="evenodd" stroke="#004100" stroke-linejoin="round" stroke-width="2.4" d="M158.2 273.6c-16-1-33.1-22.7-37.7-39.6 0 .2 5.9 3.6 4.9 4.5 22.8 10.2 25.2 19.4 32.8 35zm-4.7-15c-11.8-17.2-13.9-30.2-12-50.6.3 1.6 4.2 11.7 4.5 11.7 17.5 11 9.7 28.2 7.5 39zm10.5-30.1c29.6-13.1 20.5-26.9 29.3-41.3-19.8 14.7-29 25-29.3 41.3z"/>
+  <path fill="none" stroke="#00a400" stroke-linecap="round" stroke-width="2.2" d="M165.3 225.5c12-12 16.3-22 16.3-22"/>
+  <g fill-rule="evenodd">
+    <path fill="#ffe100" stroke="#e9bf00" stroke-width="2.4" d="M270.4 390.8l14.4.3c-47.7-44.8-139.3-64.3-126.5-146.6C145 333.8 233 342 270.4 390.8z"/>
+    <path fill="#9d4916" stroke="#68300e" stroke-width="1.1" d="M165.8 226.8a4.6 4.6 0 11-9.2 0 4.6 4.6 0 019.2 0zM163 252a4.3 4.3 0 11-8.7 0 4.3 4.3 0 018.7 0zm4 36a3.8 3.8 0 11-7.6 0 3.8 3.8 0 017.6 0zm33.4 39.7a3.8 3.8 0 11-7.7 0 3.8 3.8 0 017.7 0zm4.8 11.4a3.8 3.8 0 11-7.6 0 3.8 3.8 0 017.6 0z"/>
+  </g>
+  <g fill="#fff" fill-rule="evenodd">
+    <g stroke="#000" stroke-width="1.1">
+      <path d="M222 372.3a16.7 16.7 0 01-5-6.2l-15-1.7-.2 8.6 20.3-.7z"/>
+      <path stroke-linejoin="round" d="M112.3 362.2c8.7 1.6 21.8-.8 26.1 4.8 5.2 5.8-16 14.8-13 19.8 6.5 7 13.3 4.1 20.6.3 1.8-3.8 3.1-10.5 4-12.5-2.6-6.1-9.8-9.1-8-18.4 12.2-4.6 35.5-4.2 38-2.4 2 3.8.2 5.6.6 8.7-2 3.8-7.2 10.4-7.2 14 12.7 4.4 16-.8 27.5-.5 13.4.2 21.6 3.8 24.5-1.5-2-4.6-14.3-.9-19-3.9-2.3-.8-3.8-2.6-5.8-4.7s-7.7-2.2-8.6-7.3c2.4-10.9 18.1-9.2 20.7-10.9l41 2.8c7.4-.2 11.6 13.2 1.6 17.2s-39.7-6-52.5 1c-.7-2.9-10-7.1-10.6-7.3-4 1.2-11.6.8-11.6.8-1.9 3.5-4 6-5.9 9.5-8.5-3.7-16.5 2.9-25.8 1l-14.5 1.5-9.2-.8-14 4 10-8.8-8.9-6.4z"/>
+      <path d="M111.7 360.5a3.9 3.9 0 11-7.7 0 3.9 3.9 0 017.7 0zm-1 19.1a3.9 3.9 0 11-7.8 0 3.9 3.9 0 017.8 0z"/>
+    </g>
+    <g stroke="#000" stroke-width="1.1">
+      <path d="M284 372.4c2.5-2.3 4-3.8 5-6.3l15-1.6.3 8.6-20.3-.7z"/>
+      <path stroke-linejoin="round" d="M393.7 362.3c-8.7 1.6-21.8-.8-26 4.8-5.2 5.8 16 14.8 13 19.8-6.6 7-13.3 4.1-20.7.3-1.7-3.8-3-10.5-4-12.5 2.7-6.1 9.9-9.2 8-18.5-12.1-4.5-35.4-4.1-38-2.4-2 3.9-.1 5.7-.5 8.7 2 4 7.1 10.5 7.1 14-12.7 4.5-16-.7-27.5-.4-13.4.2-21.6 3.8-24.5-1.6 2-4.6 14.3-.8 19-3.8 2.3-.8 3.8-2.7 5.9-4.7s7.7-2.2 8.5-7.3c-2.4-10.9-18.1-9.2-20.7-10.9l-41 2.8c-7.4-.2-11.5 13.2-1.5 17.2s39.6-6 52.5.9c.7-2.8 9.9-7 10.6-7.2 3.9 1.2 11.6.8 11.6.8 1.8 3.4 4 6 5.9 9.5 8.5-3.8 16.5 2.9 25.8 1l14.4 1.5 9.3-.8 14 4-10-8.8 8.8-6.4z"/>
+      <path d="M394.4 360.5a3.9 3.9 0 107.7 0 3.9 3.9 0 00-7.8 0zm1 19.2a3.9 3.9 0 107.7 0 3.9 3.9 0 00-7.7 0z"/>
+    </g>
+    <path d="M252.8 351.3c-3.5-.7-4.7-.5-7-.7l-5.5 16.9c8.4.7 16.3.7 16.3.7-5.1-1-3.9-16.8-3.8-17z"/>
+  </g>
+  <g font-family="Trebuchet MS" font-size="9" font-weight="bold">
+    <text x="448.6" y="344.3" transform="translate(-581.2 -248.8) scale(1.7767)">
+      <tspan x="448.6" y="344.3">L</tspan>
+    </text>
+    <text x="453.6" y="344.6" transform="translate(-581.2 -248.8) scale(1.7767)">
+      <tspan x="453.6" y="344.6">I</tspan>
+    </text>
+    <text x="456.7" y="345.1" transform="translate(-581.2 -248.8) scale(1.7767)">
+      <tspan x="456.7" y="345.1">B</tspan>
+    </text>
+    <text x="462.6" y="345.5" transform="translate(-581.2 -248.8) scale(1.7767)">
+      <tspan x="462.6" y="345.5">E</tspan>
+    </text>
+    <text x="468.3" y="345.6" transform="translate(-581.2 -248.8) scale(1.7767)">
+      <tspan x="468.3" y="345.6">R</tspan>
+    </text>
+    <text x="473.9" y="345.4" transform="translate(-581.2 -248.8) scale(1.7767)">
+      <tspan x="473.9" y="345.4">T</tspan>
+    </text>
+    <text x="479.3" y="344.5" transform="translate(-581.2 -248.8) scale(1.7767)">
+      <tspan x="479.3" y="344.5">A</tspan>
+    </text>
+    <text x="485.5" y="344.3" transform="translate(-581.2 -248.8) scale(1.7767)">
+      <tspan x="485.5" y="344.3">S</tspan>
+    </text>
+  </g>
+  <path fill="none" stroke="#00a400" stroke-linecap="round" stroke-width="2.2" d="M161.4 339.8c10.8 1.3 25.7.4 32.2 0m-48.4-36.7c9 7.2 28.9 11.4 28.6 11.4m11.3 2c-2.9-15-6.1-18.5-8.7-28m-46.5-16.9c15.3 6.9 17.6 11.4 27.3 18.2m5.5-15c1.3-18.4 4-23.3 8.5-27.5m-41.3-2.3a2102 2102 0 0023.7 25.3m-7.4-42.2c6.8 4.9 6.8 22.4 6.8 22.4"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sn.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sn.svg
new file mode 100644
index 0000000..fbbad5e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sn.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sn" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#0b7226" d="M0 0h170.7v512H0z"/>
+    <path fill="#ff0" d="M170.7 0h170.6v512H170.7z"/>
+    <path fill="#bc0000" d="M341.3 0H512v512H341.3z"/>
+  </g>
+  <path fill="#0b7226" d="M197 351.7l22-71.7-60.4-46.5h74.5l24.2-76 22.1 76H356L295.6 280l22.1 74-60.3-46.5z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/so.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/so.svg
new file mode 100644
index 0000000..96d88a9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/so.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-so" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M177.2 0h708.6v708.7H177.2z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-128) scale(.72249)">
+    <path fill="#40a6ff" d="M0 0h1063v708.7H0z"/>
+    <path fill="#fff" d="M643 527.6l-114.3-74-113.6 74.8 42.3-121.5-113.5-75 140.4-1 43.5-121.1 44.5 120.8 140.3.1-112.9 75.7L643 527.6z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sr.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sr.svg
new file mode 100644
index 0000000..a0ca03e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sr.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sr" viewBox="0 0 512 512">
+  <path fill="#377e3f" d="M0 0h512v512H0z"/>
+  <path fill="#fff" d="M0 102.4h512v307.2H0z"/>
+  <path fill="#b40a2d" d="M0 153.6h512v204.8H0z"/>
+  <path fill="#ecc81d" d="M255.9 163.4l60.2 185.2-157.6-114.5h194.8L195.7 348.6z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ss.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ss.svg
new file mode 100644
index 0000000..7e6a47f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ss.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ss" viewBox="0 0 512 512">
+  <path fill="#078930" d="M0 358.4h512V512H0z"/>
+  <path fill="#fff" d="M0 153.6h512v204.8H0z"/>
+  <path d="M0 0h512v153.6H0z"/>
+  <path fill="#da121a" d="M0 179.2h512v153.6H0z"/>
+  <path fill="#0f47af" d="M0 0l433 256L0 512z"/>
+  <path fill="#fcdd09" d="M209 207.8L64.4 256l144.8 48.1-89.5-126v155.8z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/st.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/st.svg
new file mode 100644
index 0000000..da5df29
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/st.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-st" viewBox="0 0 512 512">
+  <path fill="#12ad2b" d="M0 0h512v512H0z"/>
+  <path fill="#ffce00" d="M0 146.3h512v219.4H0z"/>
+  <path fill="#d21034" d="M0 0v512l192-256"/>
+  <g id="c" transform="translate(276.9 261.5) scale(.33167)">
+    <g id="b">
+      <path id="a" d="M0-200V0h100" transform="rotate(18 0 -200)"/>
+      <use width="100%" height="100%" transform="scale(-1 1)" xlink:href="#a"/>
+    </g>
+    <use width="100%" height="100%" transform="rotate(72)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(144)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(-144)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(-72)" xlink:href="#b"/>
+  </g>
+  <use width="100%" height="100%" x="700" transform="translate(-550.9)" xlink:href="#c"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sv.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sv.svg
new file mode 100644
index 0000000..e824395
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sv.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-se" viewBox="0 0 512 512">
+  <path fill="#066aa7" d="M0 0h512v512H0z"/>
+  <path fill="#fecc00" d="M0 204.8h512v102.4H0z"/>
+  <path fill="#fecc00" d="M134 0h102.4v512H134z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sx.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sx.svg
new file mode 100644
index 0000000..5d9fadf
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sx.svg
@@ -0,0 +1,56 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sx" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h450v450H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="scale(1.1378)">
+    <path fill="#ed2939" fill-rule="evenodd" d="M0 0h675v225H300L0 0z"/>
+    <path fill="#002395" fill-rule="evenodd" d="M0 450h675V225H300L0 450z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M0 0l300 225L0 450V0z"/>
+    <path fill="#ff0" d="M151.4 169.8l.1-3.4s-1.9-3 .3-6.2c0 0-4.6-2.5-3.5-6.3 0 0-4.2-1-3.9-5.6 0 0-4.5-.3-5-4.2 0 0-4.5.8-6.4-3 0 0-4.4.9-5.7-2.2 0 0-4.2 1.5-6.8-2.1 0 0-4.5 1.8-6.4-1.6-1.8 3.4-6.3 1.6-6.3 1.6-2.5 3.6-6.8 2-6.8 2-1.2 3.2-5.6 2.3-5.6 2.3-2 3.7-6.5 3-6.5 3-.4 3.8-5 4.1-5 4.1a5.3 5.3 0 01-3.7 5.7c1 3.8-3.5 6.2-3.5 6.2 2.2 3.2.3 6.2.3 6.2v3.2l74.4.3"/>
+    <path fill="none" stroke="#000" stroke-width=".3" d="M377.2 843.1v-3.5s-1.8-3 .4-6c0 0-4.6-2.5-3.5-6.3 0 0-4.2-1-3.9-5.6 0 0-4.5-.3-5-4.1 0 0-4.4.7-6.3-3 0 0-4.4.8-5.6-2.2 0 0-4.3 1.5-6.8-2.1 0 0-4.5 1.8-6.3-1.6-1.9 3.4-6.4 1.6-6.4 1.6-2.4 3.5-6.7 2-6.7 2-1.2 3.1-5.5 2.3-5.5 2.3-2 3.7-6.5 3-6.5 3-.4 3.7-4.9 4-4.9 4a5.1 5.1 0 01-3.7 5.6c1 3.8-3.5 6.2-3.5 6.2 2.2 3.2.3 6.2.3 6.2v3.2l73.9.3z" transform="matrix(1.0075 0 0 1.0074 -228.6 -679.5)"/>
+    <path fill="red" d="M149.7 165.5c-11.7-1.2-25.2-4-35.6 1.9-7-4.1-16.7-3.9-25-3-4.4.7-9.7.7-14.4 1.5l-.7.1c-8.6.6-16.3-2-23.7-5.2 2.4 13.3 5 27 6.3 41 2.8 20.6-9.8 38-4.7 58.4 3.1 9.8 13.9 15.5 23.8 16.6a188.7 188.7 0 0128.2 4 28 28 0 014.9 1.7 17.3 17.3 0 015.7 4c5.4-5.5 13.2-7 21-7.8 13.8-1.7 31-.8 39.5-13.4v-.7c4.6-7 4-17.6 2-25.5-.2-2.7-.9-5.1-1.3-7.8-8.5-22.4-1.2-47.6 2.4-70.2-4.4 2.4-9.4 3.6-14.4 4.8-4 .5-8.3.3-12.4 0l-1.6-.4"/>
+    <path fill="#80cfe1" d="M167.2 229.9c-.1 1.5.7 2.6 1 4 1.6 9.8 3.2 22.8-7 28.9-11 7-25.7 4-38.6 7.8-2.6.7-6.2 3-8 4.7-1.2-.7-2.3-1.9-3.8-2.6-10.7-5.6-24.5-3.8-36.5-6.8-6-2-12.3-6.6-13.9-12.8-3.9-16.2 5.5-30 4.4-46a195.7 195.7 0 00-5.6-35.6 50 50 0 0030.8 3c7.8-1 17-1 24.2 2.2a49 49 0 0113.1-3c8.3.8 17.2 2.3 25.7 2.3a44 44 0 0015.8-4.2c-3 19-8.6 39-1.7 58"/>
+    <path fill="#fff" d="M150.3 233.7l-.1-17.9h2.2L125 198.1V189h2.6l-13.7-9.8-13.6 9.8h2.6v9.1l-27 17.7h2l.2 17.8h72"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M376 906.5v-17.8h2.1l-27-17.5-.1-9h2.6l-13.6-9.8-13.5 9.7h2.6l.1 9.1-27 17.5h2.2v17.7H376z" transform="matrix(1.0075 0 0 1.0074 -228.6 -679.5)"/>
+    <path fill="#fff" d="M158.7 257.1v5.6h-88V257h88"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M384.4 929.8v5.5H297v-5.6h87.4z" transform="matrix(1.0075 0 0 1.0074 -228.6 -679.5)"/>
+    <path fill="#fff" d="M76.5 256.8v-19H80l-.2 19.2.2-19-5-.1v-4h78.6v4h-4.9l.1 19.2-.1-19.2h3.6v19"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M302.8 929.4v-18.8h3.5l-.2 19 .2-18.8-5-.2v-4l78 .1v4h-4.8l.1 19-.2-19h3.6l.1 18.8" transform="matrix(1.0075 0 0 1.0074 -228.6 -679.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M319.6 924.8v-13.1H309v13l10.5.1" transform="matrix(1.0075 0 0 1.0074 -228.6 -679.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M312 914.4v7.6h4.8v-7.6h-4.9m59 10.4l-.1-13h-10.4v13h10.5" transform="matrix(1.0075 0 0 1.0074 -228.6 -679.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M363.2 914.5v7.6h4.8v-7.6h-4.8m7.6-11v-13h-10.5v13h10.5z" transform="matrix(1.0075 0 0 1.0074 -228.6 -679.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M363.1 893.2v7.6h4.8v-7.6h-4.8m-43.6 10.3v-13.1H309v13h10.5z" transform="matrix(1.0075 0 0 1.0074 -228.6 -679.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M311.9 893.1v7.6h4.8v-7.6h-4.8m26.6 10.4v-13.1H328v13h10.5" transform="matrix(1.0075 0 0 1.0074 -228.6 -679.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M330.8 893.1v7.6h4.8v-7.6h-4.8m22.3 10.4v-13l-10.5-.1v13l10.5.1" transform="matrix(1.0075 0 0 1.0074 -228.6 -679.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M345.4 893.1v7.6h4.9v-7.6h-4.9" transform="matrix(1.0075 0 0 1.0074 -228.6 -679.5)"/>
+    <path fill="#fff" d="M129.8 226.7l.1 30.4H99.4l-.1-30.5h30.5"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M355.7 899.5l.1 30.2h-30.3l-.1-30.2h30.3zm-30.5 8.6h30.6M329 929.7v-21.4m23.1 21.4v-21.3m14.7-21.8l-17-12.4h-19.3l-17 12.4h53.3M332 863.8v7.6h16.2v-7.6H332" transform="matrix(1.0075 0 0 1.0074 -228.6 -679.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M336.4 865.7v3.8h7.4v-3.8h-7.4M340 855l9 6.4h-17.9l9-6.4" transform="matrix(1.0075 0 0 1.0074 -228.6 -679.5)"/>
+    <path fill="#fff" d="M150.6 177.6c2.6 0 3.2 10.6 3.2 15.9a24 24 0 019.3 6.5h-24.8a24 24 0 019.1-6.5c0-5.3.6-16 3.2-15.9"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M376.3 850.8c2.6 0 3.2 10.5 3.2 15.8 2.2.6 7.1 3.7 9.2 6.4h-24.6c2.1-2.7 7-5.8 9.1-6.4 0-5.3.6-15.8 3.1-15.8m-49.5 49.5h2.2l-.6 1.2s1 1.4 0 3l.6 1h-2.2l.6-1s-1-1.8 0-3l-.6-1.2m4.5 0h2.2l-.6 1.2s1 1.4 0 3l.6 1h-2.2l.6-1s-1-1.8 0-3l-.6-1.2m5 0h2.1l-.6 1.2s1 1.4 0 3l.6 1h-2.1l.5-1s-1-1.8 0-3l-.6-1.2zm5.5 0h2.2l-.7 1.3s1.1 1.3 0 2.9l.6 1h-2.1l.6-1s-1-1.8 0-3l-.6-1.1zm4.9 0h2.2l-.7 1.3s1.1 1.3 0 2.9l.6 1h-2l.5-1s-1-1.8 0-3l-.6-1.1m4.9 0h2.2l-.7 1.2s1.1 1.3 0 2.9l.6 1h-2l.5-1s-1-1.8 0-3l-.6-1.1" transform="matrix(1.0075 0 0 1.0074 -228.6 -679.5)"/>
+    <path fill="#ff0" d="M114.7 296a82 82 0 0032-5.6l14.6-1.3.2 17.6c-12.2 6.8-40.5 8.3-46.8 8.2-6.2 0-34.9-1.4-47.2-8.2l.2-17.7 14.5 1.3a86.9 86.9 0 0032.5 5.8"/>
+    <path fill="none" stroke="#000" stroke-width=".3" d="M340.7 968.4c11.4 0 25.3-2.3 31.9-5.7l14.3-1.2.3 17.5c-12.1 6.7-40.3 8.2-46.4 8.1-6.2 0-34.7-1.4-47-8.2l.2-17.5 14.4 1.3c6.6 3.4 21 5.7 32.3 5.7" transform="matrix(1.0075 0 0 1.0074 -228.6 -679.5)"/>
+    <path fill="#ff0" d="M30.2 220.7l12.8 4-3.9 20.7-12 1.9s-2-10.9 3.1-26.6"/>
+    <path fill="none" stroke="#000" stroke-width=".3" d="M256.9 893.6l12.6 4-3.8 20.5-12 1.9s-2-10.8 3.2-26.4z" transform="matrix(1.0075 0 0 1.0074 -228.6 -679.5)"/>
+    <path fill="#7e7e7e" d="M39.1 245.2l-12 2.1 7.6-10.9 4.4 8.8"/>
+    <path fill="none" stroke="#000" stroke-width=".3" d="M265.7 917.9l-12 2 7.6-10.7 4.4 8.7" transform="matrix(1.0075 0 0 1.0074 -228.6 -679.5)"/>
+    <path fill="#ff0" d="M22.6 235.6l12.3.9c.3 10.4 1.5 50.1 49 52.3l-1.5 14.5c-57.8.6-62.1-48.8-59.8-67.7"/>
+    <path fill="none" stroke="#000" stroke-width=".3" d="M249.3 908.4l12.2.8c.3 10.4 1.5 49.8 48.7 52l-1.5 14.4c-57.4.6-61.7-48.4-59.4-67.2zm44.8 70.1l14.4-3.1" transform="matrix(1.0075 0 0 1.0074 -228.6 -679.5)"/>
+    <path fill="#ff0" d="M198.1 220.8l-12.7 4 4 20.7 12.1 2s2-11-3.4-26.7"/>
+    <path fill="none" stroke="#000" stroke-width=".3" d="M423.5 893.7l-12.6 4 4 20.5 12 2s2-10.8-3.4-26.5z" transform="matrix(1.0075 0 0 1.0074 -228.6 -679.5)"/>
+    <path fill="#7e7e7e" d="M189.4 245.3l12.1 2.1-7.7-10.8-4.4 8.7"/>
+    <path fill="none" stroke="#000" stroke-width=".3" d="M414.9 918l12 2.1-7.7-10.7-4.3 8.6" transform="matrix(1.0075 0 0 1.0074 -228.6 -679.5)"/>
+    <path fill="#ff0" d="M205.9 235.7l-12.3.9c-.2 10.4-1.1 50.2-48.6 52.3l1.6 14.4c57.8.7 61.8-48.7 59.3-67.6"/>
+    <path fill="none" stroke="#000" stroke-width=".3" d="M431.2 908.5l-12.2.8c-.2 10.4-1 49.9-48.2 52l1.6 14.3c57.4.7 61.3-48.3 58.8-67zm-44.2 70l-14.4-3" transform="matrix(1.0075 0 0 1.0074 -228.6 -679.5)"/>
+    <path fill="#009fc5" d="M107 304.8c-.3.2-.8.2-1.3.2l-2.3-.1.2-2.9 2.3.1c.4 0 .8.2 1 .3.5.2.7.7.6 1.3 0 .5-.2.9-.5 1m-3.9 4.6l.3-3.5 2.6.2a3 3 0 002-.6c.4-.5.7-1 .7-1.7a2.2 2.2 0 00-.6-1.8 2.8 2.8 0 00-1.8-.7l-3.8-.2-.5 8.2h1.1m8.4-6.8h2.8l1 .2c.3.2.5.6.5 1.2s-.1 1-.4 1.2c-.3.2-.8.3-1.3.3h-2.7v-2.9m0 7.3v-3.5h2.6c.5 0 .9 0 1.1.2.4.1.6.5.6 1v1.4l.1.7.1.3h1.4v-.2a.7.7 0 01-.4-.5v-1.8c0-.5-.2-.9-.4-1a1.5 1.5 0 00-.7-.6l1-.7.2-1.3c0-.9-.4-1.6-1.2-1.9a4.1 4.1 0 00-1.6-.3h-3.9v8.2h1.1m8.8-1.7a4 4 0 01-.9-2.3c0-1.2.2-2 .7-2.6.5-.7 1.2-1 2.1-1 1 0 1.6.2 2.2.8.5.5.9 1.3 1 2.3 0 .9-.2 1.7-.6 2.4-.5.7-1.1 1.1-2.2 1.2-1 0-1.8-.2-2.3-.8m-1.4-5.2a4.7 4.7 0 00-.7 2.9 4.7 4.7 0 001.2 3 4 4 0 003.1 1 3.9 3.9 0 003.2-1.5 5 5 0 00.8-3.1 4.4 4.4 0 00-1-2.8c-.8-.9-2-1.3-3.4-1.2-1.5 0-2.5.6-3.2 1.7m38.7-11.9a4.2 4.2 0 012.1.1c1 .3 1.6 1 2 2l-1.2.2a2 2 0 00-1-1.2 3.1 3.1 0 00-1.7-.1 2.6 2.6 0 00-1.9 1.1c-.4.7-.5 1.5-.3 2.7.1 1 .5 1.7 1 2.2.6.6 1.3.8 2.3.6a2.8 2.8 0 001.8-1c.4-.4.6-1.2.4-2.1l-2.6.4-.2-.9 3.7-.6.7 4.4h-.7l-.4-1a4 4 0 01-1 1 3.8 3.8 0 01-1.8.8 3.8 3.8 0 01-2.7-.6 4.5 4.5 0 01-1.7-3 4.5 4.5 0 01.6-3.4 3.6 3.6 0 012.6-1.6m8.4-.6l2.6-1a2 2 0 011-.1c.4 0 .8.3 1 .9.2.5.2.9 0 1.2l-1.1.7-2.5 1-1-2.7m2.6 6.8l-1.3-3.3 2.5-.9a3 3 0 011-.2c.4 0 .7.3 1 .8l.5 1.3.3.6.2.2 1.3-.5v-.1c-.2 0-.4-.2-.6-.4l-.3-.6-.4-1c-.2-.5-.4-.8-.7-1a2.1 2.1 0 00-.9-.2c.3-.3.5-.6.6-1a2.2 2.2 0 00-.1-1.2c-.4-.9-1-1.4-1.9-1.4-.4 0-1 0-1.6.2l-3.7 1.4 3 7.7 1.1-.4m9.6-4l-4.7-7 5.2-3.3.6.9-4.3 2.7 1.5 2 3.9-2.4.5.8-3.9 2.5 1.6 2.3 4.3-2.8.6.8-5.3 3.4m4.2-12.1l1.3-1.5c.6-.7 1.3-1 2-.9a4 4 0 012.3 1.1 4 4 0 011.2 1.9c.2.5.1 1 0 1.4l-.6.7-1.4 1.5-4.8-4.2m7 3.2c1-1 1.3-2.2.7-3.5a5.9 5.9 0 00-1.5-2 4.6 4.6 0 00-2.7-1.2 3.2 3.2 0 00-2.8 1.2l-2.3 2.4 6.4 5.6 2.3-2.5m4.9-6.4l-7.3-4.3.6-1 7.3 4.3-.6 1m2.9-5l-8-3.1 2.4-5.6 1 .4-2 4.6 2.4.9 1.8-4.2 1 .4-1.8 4.2 2.6 1 2-4.6 1 .4-2.4 5.6m3.6-9.7l-8.3-1.8.3-1.3 7.6-2.6-6.7-1.4.2-1 8.3 1.7-.2 1.3-7.7 2.6 6.7 1.5-.2 1m-.7-10.5l.1-1c.5 0 1 0 1.2-.3.6-.3 1-.9 1-1.8v-1.2c-.2-.7-.6-1-1.2-1.1-.5 0-.8 0-1 .3-.2.3-.5.7-.6 1.3l-.4 1-.7 1.6c-.4.5-1 .7-1.7.6a2.5 2.5 0 01-1.8-1c-.5-.5-.6-1.2-.5-2.2 0-.8.3-1.5.8-2.1.5-.5 1.2-.8 2.1-.7v1c-.5 0-.9.1-1.1.3-.5.3-.8.8-.8 1.7-.1.6 0 1 .2 1.4.3.3.6.5 1 .5s.7 0 1-.4l.6-1.4.3-1.1c.2-.6.4-1 .7-1.3a2.2 2.2 0 011.8-.6c1 .1 1.6.5 2 1.2.3.7.4 1.5.3 2.4a3 3 0 01-1 2.3 3 3 0 01-2.3.6M28.2 252l.2 1c-.4.1-.8.3-1 .6-.6.4-.7 1-.6 2l.4 1.1c.4.6.9.9 1.5.8.4-.1.7-.3.9-.6l.2-1.4v-1.2l.4-1.6c.2-.5.7-.9 1.4-1a2.5 2.5 0 012 .5c.6.4 1 1 1 2a3 3 0 01-.2 2.3c-.3.6-.9 1-1.8 1.2l-.2-1c.4-.2.7-.3 1-.6.3-.4.4-1 .3-1.8-.1-.6-.3-1-.7-1.3a1.3 1.3 0 00-1-.3 1 1 0 00-.8.7 4 4 0 00-.2 1.5v1.2a3 3 0 01-.4 1.4 2 2 0 01-1.5 1c-1 .2-1.7 0-2.2-.6a4.3 4.3 0 01-1-2.2 3.4 3.4 0 01.3-2.5 2.7 2.7 0 012-1.2m-.5 10.9l8.1-2.5 2 5.7-1 .4-1.6-4.7-2.5.7 1.4 4.3-1 .3-1.3-4.3-2.8.8 1.6 4.8-1 .3-1.9-5.8m3.6 9.9l7.5-4 .8 1.4-5.2 5.4 7.5-1.2.8 1.3-7.5 4-.5-1 4.4-2.3.8-.4 1.1-.6-7.5 1.3-.5-1 5.1-5.4-.3.2-.8.4a6.1 6.1 0 01-.8.5l-4.4 2.3-.5-1m13.9 11c-.4 0-.7-.2-1.1-.6l-1.6-1.6 2.1-2 1.6 1.6.6.9c.2.5 0 1-.4 1.3-.4.4-.8.6-1.2.5m-6 .7l2.6-2.4 1.8 2a3 3 0 001.9.8 2.6 2.6 0 001.7-.8c.5-.5.8-1 .8-1.7 0-.6-.3-1.1-.8-1.7l-2.6-2.7-6.2 5.7.8.8m7.5 6.6l4.4-7 5.3 3.2-.5.9-4.4-2.6-1.3 2.1 4 2.4-.6.8-4-2.4-1.5 2.4 4.4 2.6-.5.9-5.4-3.3m13.3-1.3l2.7.8.8.5c.3.3.4.8.2 1.3-.1.5-.4.8-.8 1l-1.3-.1-2.5-.8.9-2.7m-2.3 6.9l1-3.4 2.6.8 1 .5c.2.3.3.7.1 1.2L62 297l-.2.7v.2l1.4.5v-.2l-.2-.6c0-.1 0-.4.2-.7l.3-1c.1-.5.2-.8 0-1a1.7 1.7 0 00-.5-.8c.4-.1.8-.2 1.1-.5.3-.2.5-.6.7-1 .3-1 .1-1.7-.5-2.3-.4-.2-.8-.5-1.5-.7l-3.7-1.2-2.6 7.8 1 .4"/>
+    <path fill="#bc715f" d="M69 154.4c1-2.4 9.9-8.7 39.4-6 0 0 5 3.1 7.9 2.7 1.6-.2-1 .1-3.2-1.7s-2.7-5.5 2.4-5.4c5 .1 24 1.2 24.3 2.9.3 1.7-10 2.4-13.8 2.3-3.9 0-3.4 1.9.4 1.7 12-.4 25-4.6 39 5.2 1.6 1.1-4.3 1.3-8.8-.6 0 0-12.2.7-17.4-.2 0 0-4 3.3-9.4 3 .7 1.7-2 8-18.5 3.3-2.8.8-12.7 2.5-11.7-.5-2.6 0-7.2.8-7.9-.7-.6-1.4 8.1-3.7 9.7-5.3 0 0-18.6.2-22.1-1 0 0-11 2.4-10.3.3"/>
+    <path fill="#008737" d="M75 180.4c.3-.5.5-1.5 1.3-1.5 1.9.5 3.1 3.9 5.4 1.7.8-.2 1 .9 1.7 1 .5 1.9 2-.3 3-.2a14.2 14.2 0 018.3-.8c0 1.8-1.4 3.8-3.2 4.9 0 1.8 1.7 3 1.7 4.9-.3.7 0 1.8-1 2-1.4-.3-2.7-.4-3.8-1.1-.2-.2-.3-.4-.5-.4-.2.7.8 1.3 1.2 2-.7 1-1.8 0-2.7 0-.3.7 0 1.5-.7 2-1.2-.1-1.5-1.4-2.2-2-.7.8.6 1.3.7 1.9-.4 2.4-.4 4.8-2.8 6.4l-1.6.8c-.4-1.3-.2-3.1-.5-4.4-1 1.6-1.7 3-3 4.3-1.7-.6-2.7-2.5-3-4.1a5.1 5.1 0 011.2-5.5c-.5-1-2.3-.7-2.5-2.1-2.6-1.7-4 3-5.7.5A7.6 7.6 0 0168 184c-.3-1-1.5-.7-2.2-1.2-1.7-1.4-4-2.8-3.9-5.3a12.3 12.3 0 0113 2.9"/>
+    <path fill="#ff0" d="M77.2 180.2c0 2 1.4.5 2.5 1.7-.9-.3-1.5 1.5-2.3.5l-.6.5c.3.7 1 .8.3 1.5-.9.4-1-.8-1.5-1.2 0-.2.1-.6-.2-.7-.5.4-1 .6-1.8.5-.2-.4-.6-1-.2-1.2.7-1 1.8.3 2.3-.3.1-.6-.4-1.3.3-1.8.4.1 1-.1 1.2.4m5.5 1.7c0 .4-.2 1 .3 1.2.7-.3 1.4 0 1.8.6 0 .4.1.8-.4 1l-1-.2c0-.2-.3-.3-.4-.5-.5-.2-.7.2-1 .4.2.4.8.7.6 1.2-.6.6-.9-.6-1.6-.3-.4-.2.2-1.1-.5-1.4-.9 0-.3 1.4-1.4.9-.4-.5-.8-1-.3-1.6a1.4 1.4 0 011.6.2c.7-.7.7-3.6 2.3-1.5m-6.8 3c.4.6-.1 1.5.4 2.2 1-1.7 1.8.4 2.9.2.3.4 0 1 .1 1.4-1.3.4-2.9.8-4-.3l-.4.4c.7.6 1.4 1.4.8 2.5-1 .2-2.5.2-3-.8-.2-.9.6-1.5-.3-2.1-.6.8-.6 1.9-2 1.1a1.6 1.6 0 01-.7-2.2c1-1.4 2.5 0 3.4-.7.2-1.2-.3-2.2.8-2.9 1-.1 1.4.6 2 1.2"/>
+    <path fill="#fff" d="M79.6 185.5c-.4 2-2-.1-2.7-.2 1-1.7 1.6.6 2.7.2m4.8 2.2c-1 .3-1-1-1.5-1.5l.5-.4 1 2"/>
+    <path fill="#ff0" d="M83 187.3c.2.7-.8 1.3.1 1.8l.7-.7c.8.2 1.6.4 2.1 1 .6 1.6-1 1.6-1.8 2h-.8c.2-.5-.4-.7-.6-1a.8.8 0 00-.9.4c.2 1 1.4 1.7.1 2.5-1 0-2.5.4-2.4-1-.4-.8 1-2-.5-2-.5 1-1 2-2.3 1l.1-1.5c1.2 0 2.7.2 3.3-1.2.3-1-.6-1.9.2-2.7 1.3-.3 2 .6 2.6 1.4"/>
+    <path d="M82 189.6c.4.8-.5.8-1 1.2-.5 0-.8-.2-1.2-.6-.2-.9.5-1 1-1.3.6-.3.8.4 1.2.7"/>
+    <path fill="#fff" d="M81.3 190c-.1.3-.3.2-.5.3l-.2-1c.4 0 .9.2.7.8"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sy.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sy.svg
new file mode 100644
index 0000000..904dc1f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sy.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sy" viewBox="0 0 512 512">
+  <rect width="512" height="170.7" y="170.7" fill="#fff" fill-rule="evenodd" rx="0" ry="0"/>
+  <rect width="512" height="170.7" y="341.3" fill-rule="evenodd" rx="0" ry="0"/>
+  <path fill="red" fill-rule="evenodd" d="M0 0h512v170.7H0z"/>
+  <path fill="#090" fill-rule="evenodd" d="M151.4 299.7l-30.8-22.2L90 300l11.4-36.6L70.9 241l37.8-.3 11.7-36.5 12 36.4H170l-30.4 22.8 11.7 36.4zm285.4 0l-30.7-22.2-30.6 22.5 11.4-36.6-30.5-22.5 37.7-.3 11.7-36.5 12 36.4h37.8l-30.4 22.8 11.6 36.4z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sz.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sz.svg
new file mode 100644
index 0000000..b3009e4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/sz.svg
@@ -0,0 +1,45 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sz" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M124 0h496v496H124z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="translate(-128) scale(1.0321)">
+    <path fill="#3e5eb9" fill-rule="evenodd" d="M0 0h744v496H0z"/>
+    <path fill="#ffd900" fill-rule="evenodd" d="M0 88.6h744v318.9H0z"/>
+    <path fill="#b10c0c" fill-rule="evenodd" d="M0 124h744v248H0z"/>
+    <rect width="602.4" height="10.6" x="74.2" y="242.7" fill="#ffd900" fill-rule="evenodd" stroke="#000" stroke-width="1.3" rx="5.2" ry="5.3"/>
+    <g stroke="#000" transform="translate(-609.5 -24.8)">
+      <path fill="#fff" fill-rule="evenodd" stroke-width="3.9" d="M-106.3 265.8l-88.6 35.4 88.6 35.4 88.6-35.4-88.6-35.4z" transform="matrix(.34 0 0 .3 1256.8 136.4)"/>
+      <rect width="442.9" height="7.1" x="761.8" y="223.2" fill="#ffd900" fill-rule="evenodd" stroke-width="1.3" rx="3.9" ry="3.5"/>
+      <path fill="none" stroke-width="2.5" d="M1224.4 280c-3.5 0-7-3.6-7-7.2s3.5-7 7-7" transform="matrix(-.50001 0 0 .5 1806.3 90.3)"/>
+      <path fill="none" stroke-width="2.5" d="M1224.4 280c-3.5 0-7-3.6-7-7.2s3.5-7 7-7" transform="matrix(-.50001 0 0 .5 1802.8 90.3)"/>
+      <path fill="none" stroke-width="2.5" d="M1224.4 280c-3.5 0-7-3.6-7-7.2s3.5-7 7-7" transform="matrix(-.50001 0 0 .5 1799.2 90.4)"/>
+    </g>
+    <g stroke="#000" transform="translate(-637.8 -3.5)">
+      <path fill="#fff" fill-rule="evenodd" stroke-width="3.9" d="M-106.3 265.8l-88.6 35.4 88.6 35.4 88.6-35.4-88.6-35.4z" transform="matrix(.34 0 0 .3 1256.8 136.4)"/>
+      <rect width="442.9" height="7.1" x="761.8" y="223.2" fill="#ffd900" fill-rule="evenodd" stroke-width="1.3" rx="3.9" ry="3.5"/>
+      <path fill="none" stroke-width="2.5" d="M1224.4 280c-3.5 0-7-3.6-7-7.2s3.5-7 7-7" transform="matrix(-.50001 0 0 .5 1806.3 90.3)"/>
+      <path fill="none" stroke-width="2.5" d="M1224.4 280c-3.5 0-7-3.6-7-7.2s3.5-7 7-7" transform="matrix(-.50001 0 0 .5 1802.8 90.3)"/>
+      <path fill="none" stroke-width="2.5" d="M1224.4 280c-3.5 0-7-3.6-7-7.2s3.5-7 7-7" transform="matrix(-.50001 0 0 .5 1799.2 90.4)"/>
+    </g>
+    <g fill-rule="evenodd" stroke-width="1pt">
+      <path fill="#3d5da7" stroke="#000" d="M338-.4c-5.5 12.4 4.3-4.1 28.4 16.7 4.4 3.8 8.3 14 8.3 21.1-1.1-1-2-3-3.2-4.5-1.8 2.3 1.7 12.6 2.2 17.5-3.8-2.7-3.4-4-4.7-7.4.3 4-.6 15.2.9 19.4-3-1-2.8-4.1-4.3-4.8 1 4.9-1 10.1-.4 15.6-1.8-2.2-3.6-4-4.4-4.9-.1 2.6-3.3 9.4-3.4 11.9-1.5-1.2-1.9-3-2.1-4.2-1.8 3-8.3 14-8.7 17.2-5-5.7-17.8-19.5-19.5-26.9-1.5 4.2-3.6 5.6-7.8 8.7-1.7-11.7-8-24.8-4.6-34.8a84.4 84.4 0 00-6.6 5.9A67.9 67.9 0 01338-.4z" transform="matrix(.96345 0 0 .74716 308.4 244.1)"/>
+      <path fill="#a70000" d="M614.1 289.9c2.3-4.5 4.3-6 5.8-8.8 2.5-5 2.9-9 5-8.5 2.3.6 2.3 2.7-.6 7.7-2.8 5-4.2 6-10.2 9.6zm15.1 10.6c-.3-3.4.7-4.8.5-7-.3-3.9-1.8-6.5.2-6.7 2-.2 3 1.1 3 5s-.6 4.9-3.7 8.7zm11.4 6.6c-.8-4.7-.2-6.8-.8-9.9-1-5.3-3-8.9-1-9.4 1.9-.5 3 1.3 3.7 6.7.8 5.5.4 7-1.8 12.6zm12-33.2c-2.9-2-4.5-2.2-6.3-3.6-3.2-2.4-4.8-5-5.8-3.7-1 1.3-.3 2.7 3 4.9 3.4 2.2 4.5 2.4 9 2.4zm-2 15.8c-1.5-3.1-3-3.9-4-5.8-1.7-3.5-1.7-6.5-3.5-5.7-1.8.7-2 2.3 0 5.7 2 3.3 3 3.9 7.5 5.8z"/>
+    </g>
+    <g fill-rule="evenodd" stroke-width="1pt">
+      <path fill="#3d5da7" stroke="#000" d="M329.6 20.7c-.3-2.7.3-3-1.3-5 2.2 1 2.3 3.7 5 1.8 1-.6 1.4-.6.2-3.5 2.8 0 12 3.5 13.4 3.6 3.9.2 10.9-4.4 15.7 1.2 4.7 5.1 3.1 10.4 3.1 17.5-1.8-1-1-1.4-3-4 1.6 6.2 0 17.4 0 24-.8-1.6-.7-1-1.4-2.6-2 6-4.4 7.3-4.4 14.3-.7-2.7 0-2.2-.8-3.6-2 4.5-15 8.4-10 13-4.4-2.8-6.4-2.5-8.5-5.1-.9.6-1.6 1.8-2.4 3.4-8-4-5-12.5-11.3-18.2-1 2.4-.6 2-1.8 5.9-1.2-5.4-1.6-8.9-3-12.8-1.2 2.2-1 1.3-3.3 4.7-1-6.6-2.4-8.2-1.8-12.5-2.4 1.8-.8 1-3.2 3.3 2.2-17 11.9-29.4 18.8-25.4z" transform="matrix(1.1018 0 0 1.01684 -263 231.7)"/>
+      <path fill="#a70000" d="M89.4 280.8c2.3-5.5 4.3-7.3 5.8-10.8 2.5-6.3 3-11.3 5.1-10.5 2.2.7 2.1 3.3-.8 9.5a24.7 24.7 0 01-10 11.8zm8.6 13.8c.9-5 2.3-6.8 2.9-10 1-5.6.4-9.7 2.4-9.5 2 .2 2.5 2.3 1.2 8-1.4 5.5-2.3 6.8-6.5 11.5zm10.2 9.6c.2-4.8 1.4-6.7 1.5-9.8.3-5.4-.7-9.3 1.2-9.3 2 0 2.6 2 2 7.4-.6 5.4-1.3 6.8-4.7 11.7zm21.9-31.4c-4.2-4.2-6.7-5-9.4-7.6-4.8-4.7-7.1-9.2-8.8-7.6-1.7 1.6-.7 4 4.3 8.4 5 4.5 6.8 5.2 13.9 6.8zm-2.5 16.2c-2.8-4.2-4.8-5.3-6.5-8-3.2-4.8-4.2-8.8-6-7.8-1.8 1-1.4 3.1 2 7.7s4.7 5.4 10.5 8z"/>
+    </g>
+    <g fill-rule="evenodd">
+      <path fill="#fff" stroke="#000" stroke-width="2" d="M637.8 230.3c-53.1 59-124 177.2-265.8 177.2-124 0-212.6-118.1-265.7-177.2C159.4 171.3 248 53.2 372 53.2c141.8 0 212.6 118 265.8 177.1z" transform="matrix(.66667 0 0 .6 124 109.8)"/>
+      <path d="M359.7 178.7c9.4 10.6 1.5 14.9 11.5 15.6 10.5.7 4.6 11.2 13.4 11.5 6.2.3-.6 25 5.4 33.2 6 8.5 11.1 2.5 11.2 8.6.1 6.4-16.5 5.7-16.8 25.3-.5 11.3-14 12-14.7 19.3-.8 6.8 26.7 10.6 26.3 16.8-.3 6-29.6 5-30.9 12-.6 6.3 40.2 11.4 43.5 29.4-6 2-23.4 4-36.6 4-82.6 0-141.7-71-177.1-106.4 35.4-35.4 94.5-106.3 177.1-106.3 0 0-24.5 22.5-12.3 37z"/>
+      <path fill="#fff" stroke-width="1pt" d="M261 210.2h8.6v28.4H261zm0 47.3h8.6v28.3H261zm17.2-47.3h8.6v28.4h-8.6zm0 47.3h8.6v28.3h-8.6zm17.2-47.3h8.6v28.4h-8.6zm0 47.3h8.6v28.3h-8.6zm17.2-47.3h8.6v28.4h-8.6zm0 47.3h8.6v28.3h-8.6zm17.1-47.3h8.6v28.4h-8.6zm0 47.3h8.6v28.3h-8.6zm17.2-47.3h8.6v28.4H347zm0 47.3h8.6v28.3H347z"/>
+      <path stroke-width="1pt" d="M391 210.2h8.5v28.4H391zm0 47.3h8.5v28.3H391zm17.1-47.3h8.6v28.4h-8.6zm0 47.3h8.6v28.3h-8.6zm17.2-47.3h8.6v28.4h-8.6zm0 47.3h8.6v28.3h-8.6zm17.2-47.3h8.6v28.4h-8.6zm0 47.3h8.6v28.3h-8.6zm17.2-47.3h8.6v28.4h-8.6zm0 47.3h8.6v28.3h-8.6zm17.1-47.3h8.6v28.4h-8.6zm0 47.3h8.6v28.3h-8.6z"/>
+    </g>
+    <g fill-rule="evenodd" stroke-width="1pt">
+      <path fill="#3d5da7" stroke="#000" d="M338-.4c-5.5 12.4 9.8-4.1 33.8 16.7a51.2 51.2 0 0110.9 26.2c-5.1-1.2-14.2-7-14.2-7s10.6 12.2 10.6 26.4c-3.7-2.7-5.6-2.3-6.8-5.6 0 4.5 3.3 7.5 3.3 14.6a49.8 49.8 0 00-7.3-5.7c3.5 7.1-6.5 20.9-1.5 25.5-8.7-1.5-17.7-8-21.2-15-1.9 1.4-2 3.7-2.2 6.2.3.2-13.3-11.7-12-16.3-1.9 3-2.1 4.6-2.5 8a44 44 0 01-11.3-18.8l-4.6 6.7c-1.6-11.7-1.6-11.3 1.7-21.3a84.4 84.4 0 00-6.6 5.9A67.8 67.8 0 01338-.4z" transform="matrix(.8811 0 0 .76298 16.9 161)"/>
+      <path fill="#a70000" d="M302.6 207c.8-6.5 2.5-9 3-13.2 1-7.4-.1-12.9 2.5-12.7 2.6.1 3.4 2.9 2.1 10.3s-2.4 9.1-7.6 15.6zm13.7 12c-.5-5.6.5-7.9.2-11.5-.6-6.2-2.5-10.4-.2-10.8 2.3-.4 3.4 1.7 3.7 8 .2 6.3-.4 8-3.7 14.3zm21.4 9.7c-2.3-4.7-4.3-6.2-5.8-9.2-2.6-5.4-3.2-9.9-5.2-9-2 .7-2 3 1 8.3 3 5.3 4.3 6.4 10 10zm7.4-42.7c-5.9-3.2-9-3.2-12.8-5.2-6.7-3.5-10.6-7.5-12-5.3-1.4 2.2.5 4.4 7.4 7.6 7 3.2 9 3.3 17.4 2.9zm2.2 17.8c-4.3-3.6-6.9-4-9.6-6.4-5-4-7.4-8-9-6.4-1.7 1.6-.6 3.7 4.6 7.5 5.1 3.9 6.9 4.3 14 5.3z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tc.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tc.svg
new file mode 100644
index 0000000..1029615
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tc.svg
@@ -0,0 +1,74 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-tc" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)">
+    <path fill="#006" d="M1024 512V0H0v512h1024z"/>
+    <path fill="#006" fill-rule="evenodd" d="M0 0h512v256H0z"/>
+    <g stroke-width="1pt">
+      <path fill="#fff" d="M0 0v28.6L454.8 256H512v-28.6L57.2 0H0zm512 0v28.6L57.2 256H0v-28.6L454.8 0H512z"/>
+      <path fill="#fff" d="M213.3 0v256h85.4V0h-85.4zM0 85.3v85.4h512V85.3H0z"/>
+      <path fill="#c00" d="M0 102.4v51.2h512v-51.2H0zM230.4 0v256h51.2V0h-51.2zM0 256l170.7-85.3h38.1L38.2 256H0zM0 0l170.7 85.3h-38.2L0 19.1V0zm303.2 85.3L473.8 0H512L341.3 85.3h-38.1zM512 256l-170.7-85.3h38.2L512 236.9V256z"/>
+    </g>
+    <path fill="#fff" d="M493.6 140.9v116.5c0 95.6-37.6 183.1-149 236.4-111.4-53.3-149-140.8-149-236.4V140.9h298z"/>
+    <path fill="#fdc300" d="M483.6 152.8v108.6c0 89.2-35 170.9-139 220.5-104-49.6-139-131.3-139-220.5V152.8h278z"/>
+    <g stroke="#000" stroke-width=".1">
+      <path fill="#ff9e3d" d="M206 52.9a2 2 0 00-1.3-.5c.1-1.3-.8-1.8-1.5-2-.7-.3-1-.6-1-1.1-.1-.5-.5-.9-1.1-1-.6-.2-1.2-.8-1.4-1.1-.2-.3-.3-.3-.5.2s-.9 1.5-.2 1.5c-.5.4-.8.8-.5 1.4-.3.3-.5.7-.1.8l.6.4c-.4 0-.5.8.4 1-.2 0-.3.6.1.6-.5 0-1 .8-1.6.8-.7 0-1 .2-1 .5l-.6.8c.5 0 .8 0 1-.2s.7-.3 1 0c.3.2 1 .3 1.2.2-.6.5-1 1-1.1 1.6 0 .6-.5 1.2-1 1.4-.3.2-1 .6-1.1 1.2.5 1.4 1.3 1.7 2.1 2.1 1.4.6 2.3 1.1 2.9 1.8.6.6.8.1 1.7 1.3.9 1 1.7 3.2 2.6 3.5.9.4 2 .2 2.6-1 .7-1 1-12.4-2.2-14.3z" transform="matrix(5.698 0 0 5.6987 -893.7 -100.8)"/>
+      <path fill="#ff927f" d="M207.5 48.1c-.9 1-2 1.8-1.7 3.4s.3 4.2-1.2 5c-1.4 1-2.1 3.2-.4 4.5 1.8 1.3 1.9 2.9 2.1 4.3.3 1.5 1.1 2.7 2.3 1.7 1.2.2 1.8-.3 1.8-1.3s0-1.4 1-1.7c.8-.3 1-.6 1.5-1.4.4-.8.6-1.2.4-1.6a3.7 3.7 0 01-.2-2.2c.2-.7-.2-1-.4-1.5a1.9 1.9 0 01-.2-1.4c0-.6-.2-1-.6-1.3-.4-.3-.6-.6-.5-1 0-.5-.3-.8-.8-1.2s-.7-.8-.7-1.5-1.4-2.3-2.4-2.8z" transform="matrix(5.698 0 0 5.6987 -893.7 -100.8)"/>
+      <path fill="#ff9ee1" d="M207.8 67.3c2-.5 1.8-3.7 1.5-5-.3-1.4-1-3.3-.5-4.9.8-2.1-1-4.2-.5-5 .5-.9.4-1.3.3-1.6 0-.2-.5-.4-.5.1 0 .6-.2.8-.5 1.1s-.3 1.2 0 2c.2.9.8 2.2 0 3.9-1 1.7-.6 2.4-.3 3.2.6 1.3 1.8 5.6.5 6.2z" transform="matrix(5.698 0 0 5.6987 -893.7 -100.8)"/>
+      <path fill="none" d="M199 48.9c.2 0 .6 0 .6.2m-1 1.2c.2-.2.7 0 1.1-.2m-.7 1.4c.3 0 .8 0 1.3-.4m-.9 1.4c.4 0 1-.2 1.1-.7m-1 1.3c.7 0 1.5.2 1.6 0m-1.5 2.1c.4-.4 1.4-.7 1.7-1m-.6-5.5c.7.2.4.7.8 1 .6.4 0 1 .6 1.1.5.2.5.3.3.9-.1.7.5.7.3 1.2m2-.5c-.3 0-1.2 0-1.5.8m-4.8 7.7c.4 0 .5-.1.6-.3.1-.2.2-.4.5-.4s.8-.1.9-.3c0-.3.4 0 .7-.7.4-.6.6-1.3 1.4-1.6" transform="matrix(5.698 0 0 5.6987 -893.7 -100.8)"/>
+    </g>
+    <g stroke="#000" stroke-width=".1">
+      <path fill="#00a728" d="M221.8 73.8c.3.4 0 1 .5 1.2.7.2.1 1 .9 1.4.7.3 0 1 .7 1.5.7.3 0 1 .8 1.5 1 .5-.2 1.5.5 1.9.7.4-.2 1.4.6 1.8.7.4-.4 1.1.4 1.7.7.5-.2 1.4.5 1.9s-.4 1.2.3 1.9c.6.5-.2 1 .2 2 .3.5-.3 2.7-1.8 2.5-.6 1-2.7 1.8-3.5 1.5-.8.6-3.3 1.3-4.6.1-1.3 1.2-3.8.5-4.6 0-.8.2-3-.7-3.5-1.6-1.6.2-2.1-2-1.8-2.6.4-.8-.4-1.4.2-2 .7-.6-.5-1.3.3-1.8s-.2-1.4.5-2c.8-.5-.4-1.3.4-1.6.8-.4-.1-1.4.6-1.8.6-.4-.4-1.4.5-1.9.9-.4 0-1.2.8-1.5.7-.4 0-1.2.7-1.5.8-.3.2-1.2.9-1.4.6-.3.2-.8.5-1.3 1.7.7 6.8 1.2 9 0z" transform="matrix(5.698 0 0 5.6987 -893.7 -100.8)"/>
+      <path fill="#fdc300" d="M213.5 76.7c0 .2 0 .5-.2.8-.5.6.2 1-.4 1.7-.5.7.1 1.2-.5 1.8-.6.6.1 1.2-.5 1.8-.6.7.1 1.2-.5 1.8-.6.6.1 1.3-.5 1.9-.6.6.1 1.4-.5 2-.7.8 0 1.4-.5 2-.5.5 0 1-.4 1.4.6-.5.6-1.3 1.1-1.6.5-.4-.1-1 .2-1.3s0-1.4.5-2 0-1.7.5-2 .1-1.6.7-2 0-1.3.4-1.8c.5-.5 0-1.3.5-2 .4-.5 0-1.1.3-1.6.2-.2.2-1.8-.2-1zm1.6.7c-.4.7.3.9-.2 1.6s.3 1.3-.3 2 .3 1.1-.2 1.8c-.5.8.2 1.2-.2 1.7-.5.6.3 1.1-.2 1.8-.6.7.2 1.2-.3 1.8-.4.6.2 1.3-.2 1.8s.3 1.2-.3 1.9.1 1-.2 1.5c.7-.2.4-1.1.7-1.3.2-.2-.1-1.5.3-1.8.4-.4-.3-1.4 0-1.8.7-.8.2-1.3.5-1.9.4-.6-.1-1.3.2-1.7.5-.7-.2-1.3.1-1.8.5-.7 0-1.2.3-1.7.5-.7 0-1.4.1-1.8.3-.3.6-1.9 0-2.1zm2.2.6c-.4 1 .3 1.3 0 2.1-.2.8.3 1.4 0 2.2-.3.9.4 1.5 0 2.6s.3 1.4 0 2.5c-.3 1.2.5 1.9 0 2.8-.6.9.6 1.2 0 2.1-.2.5 0 1.6.5.2.5-1.3-.3-1.5 0-2 .5-.6 0-2 .1-2.9.2-.7-.4-1.8 0-2.6.3-.9-.6-1.8-.2-2.5.3-.7-.2-1.6.2-2.2.3-.6-.3-1.4-.2-1.7.2-.3-.1-1.6-.4-.6z" transform="matrix(5.698 0 0 5.6987 -893.7 -100.8)"/>
+      <path fill="#ef072d" d="M221.5 74.4c0-6.3-1-8.5-4.2-8.5-3.3 0-4.2 2.2-4.2 8.5h8.4z" transform="matrix(5.698 0 0 5.6987 -893.7 -100.8)"/>
+      <path fill="none" d="M214.3 73.9c-.6.6.1 1-.5 1.8-.6.7 0 1.1-.5 1.8s.2 1-.4 1.7c-.5.7.2 1.2-.5 1.8-.6.6.1 1.2-.5 1.8-.6.7.1 1.2-.5 1.8-.6.6.1 1.2-.5 1.9-.6.6.1 1.4-.5 2-.7.8 0 1.4-.5 2s0 1-.4 1.4c-.4.4-.5 1-.3 1.2m6.3-19c-.6.8.3 1-.2 1.7-.5.6.2.8-.2 1.6s.3.9-.2 1.6.3 1.3-.3 2 .3 1.1-.2 1.8c-.5.8.2 1.2-.2 1.7-.5.6.3 1.1-.3 1.8-.5.7.3 1.2-.2 1.8-.4.6.2 1.3-.2 1.8s.3 1.2-.3 1.9.1 1-.2 1.5c-.3.5-.6 1.1-.3 1.3m4.6-19.8c-.3 1.2.4 2.2 0 3.2s.3 1.3 0 2.1c-.2.8.3 1.4 0 2.2-.3.9.4 1.5 0 2.6s.3 1.4 0 2.5c-.3 1.2.6 1.9 0 2.8-.6.9.5 1.1 0 2.1-.4 1 .3 1.4 0 2.4m3-20.8c.6.6-.2 1 .5 1.8.6.7 0 1.1.5 1.8s-.2 1 .3 1.7c.6.7 0 1.2.5 1.8.7.6 0 1.2.5 1.8.7.7 0 1.2.6 1.8.6.6-.2 1.2.5 1.9.6.6-.1 1.4.5 2 .7.8-.1 1.4.5 2 .5.5 0 1 .4 1.4.4.4.5 1 .3 1.2m-6.3-19c.5.8-.3 1 .2 1.7.5.6-.2.8.2 1.6.4.7-.3.9.2 1.6s-.3 1.3.3 2-.3 1.1.2 1.8c.5.8-.2 1.2.2 1.7.5.6-.3 1.1.2 1.8.6.7-.2 1.2.3 1.8.4.6-.2 1.3.2 1.8s-.3 1.2.3 1.9-.1 1 .2 1.5c.3.5.6 1.1.3 1.3" transform="matrix(5.698 0 0 5.6987 -893.7 -100.8)"/>
+      <path d="M213.1 74.4c0-6.3 1-8.5 4.2-8.5-1.5 0-2.4 1.2-2.7 2s-.1.7.2.4.2.4 0 .7c-.3.4-.6 1.4-.2 1 .4-.2.7.1.2.7s-.7 2-.3 1.5c.4-.5.5.3.2.7-.2.4-.2.7 0 .6.3-.2.2.6 0 1h-1.6zm7.7-.3c0-5-.6-6.5-1.8-7-.7-.3-.7-.2-.4.3s.3 1 0 .6-.4-.5-.6-.3l.8 2c.3.6 0 1-.4.3s-.4-.1 0 .5c.5.7.4 2.9.4 3.8l2-.2z" transform="matrix(5.698 0 0 5.6987 -893.7 -100.8)"/>
+      <path fill="#ef072d" d="M217.3 75.3c1.3 0 2.7-.2 3.7-.6 1.1-.4 1.2-.8.8-1.3-.3-.4-.9-.2-1.5.1a11.2 11.2 0 01-6 0c-.6-.2-1.2-.5-1.5-.1-.4.5-.4.9.8 1.3 1 .4 2.4.6 3.7.6z" transform="matrix(5.698 0 0 5.6987 -893.7 -100.8)"/>
+    </g>
+    <g fill="#b95a1e" fill-rule="evenodd">
+      <path stroke="#000" stroke-width="4.4" d="M779.4 912.6v179.2c.1 75.7 19.8 105 54.3 103.6 34.4-1.3 41-58.8 34.5-92-6.6-33.3-53.2-199-53.2-199l-35.6 8.2z" transform="matrix(.07727 -.0499 .04732 .08148 313.5 245.5)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.4 912.6v179.2c.1 75.7 19.8 105 54.3 103.6 34.4-1.3 41-58.8 34.5-92-6.6-33.3-53.2-199-53.2-199l-35.6 8.2z" transform="matrix(.08863 -.01984 .01882 .09346 329.5 211.7)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.4 912.6v179.2c.1 75.7 19.8 105 54.3 103.6 34.4-1.3 41-58.8 34.5-92-6.6-33.3-53.2-199-53.2-199l-35.6 8.2z" transform="matrix(.0906 0 0 .09555 343 194.7)"/>
+      <path stroke="#000" stroke-width="5.5" d="M779.5 255.1c159.6-1.4 177.2-35.4 177.2-35.4s35.4-70.9 17.7-88.6c-17.7-17.7-194.9-17.7-194.9-17.7V255z" transform="matrix(.05623 0 0 .09555 369.9 257.3)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.5 255.1c106.3 0 124-35.4 124-35.4s35.5-70.9 17.8-88.6c-17.7-17.7-141.8-17.7-141.8-17.7V255z" transform="matrix(.0906 0 0 .09555 343 250.5)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.5 255.1c88.6 0 141.8-35.4 141.8-35.4s35.4-70.9 17.7-88.6c-17.7-17.7-159.5-17.7-159.5-17.7v141.7z" transform="matrix(.0906 0 0 .09555 343 243.8)"/>
+      <path stroke="#000" stroke-width="3.9" d="M832.7 113.4s70.8-88.6 194.9-177.2c124-88.6 213.7-156.7 230.3-141.7 0 17.7-106.3 106.3-195 177.2-88.5 70.8-194.8 177.1-194.8 177.1l-35.4-35.4z" transform="matrix(.11244 0 0 .09555 325.5 194.9)"/>
+      <path stroke="#000" stroke-width="3.9" d="M832.7 113.4s70-52 204.4-124c132.2-64 318.9-53.2 318.9-35.5-17.8 17.8-177.2 17.8-283.5 70.9C971 75.5 868 148.8 868 148.8l-35.4-35.4z" transform="matrix(.11244 0 0 .09555 326.4 201.7)"/>
+      <path stroke="#000" stroke-width="3.9" d="M832.7 113.4s61.6-35 204.4-88.6c141.7-53.1 329.8-17.7 329.8 0-17.7 17.7-170.4 7-276.7 35.4-110 27.8-222 88.6-222 88.6l-35.5-35.4z" transform="matrix(.11244 0 0 .09555 326.5 213.3)"/>
+      <path stroke="#000" stroke-width="3.9" d="M832.7 113.4s71-71 222.4-88.6c152.3-17.7 276.3 88.6 276.3 106.3-17.7 17.7-159.5-78-265.7-64.3-112.6 13.7-197.6 82-197.6 82l-35.5-35.4z" transform="matrix(.11244 0 0 .09555 327.3 225.2)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.5 255.1c159.6-1.4 159.5-45.5 159.5-45.5s35.4-70.8 17.7-88.6c-17.7-17.7-177.2-7.6-177.2-7.6V255z" transform="matrix(.0906 0 0 .09555 343 235.3)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.5 255.1c159.6-1.4 177.2-35.4 177.2-35.4s35.4-70.9 17.7-88.6c-17.7-17.7-194.9-17.7-194.9-17.7V255z" transform="matrix(.0906 0 0 .09555 343 228.5)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.5 255.1c159.6-1.4 195-35.4 195-35.4s35.3-70.9 17.6-88.6c-17.7-17.7-212.6-17.7-212.6-17.7V255z" transform="matrix(.0906 0 0 .09555 343 220)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.5 255.1c159.6-1.4 212.6-35.4 212.6-35.4s17.7-70.9 0-88.6c-17.7-17.7-212.6-17.7-212.6-17.7V255z" transform="matrix(.0906 0 0 .09555 343 211.6)"/>
+      <path stroke="#000" stroke-width="3.9" d="M832.7 113.4S946.9 24.8 946.9-46.1c0-70.8-50.4-141.7-64.6-177.1 28.5 0 93.1 106.3 93.1 177.1 0 77.5-107.3 195-107.3 195l-35.4-35.5z" transform="matrix(.11244 0 0 .09555 323.3 187.9)"/>
+      <path stroke="#000" stroke-width="3.9" d="M832.7 113.4s-14.3-53.2-14.3-159.5a355 355 0 0185.7-230.3C910-249 847-152.4 847-46c0 77.5 21.1 195 21.1 195l-35.4-35.5z" transform="matrix(.11244 0 0 .09555 323.3 187.9)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.5 255.1c159.6-1.4 212.6-35.4 212.6-35.4s0-70.9-17.7-88.6c-17.7-17.7-194.9-17.7-194.9-17.7v141.7z" transform="matrix(.0906 0 0 .09555 343 203.2)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.5 255.1c159.6-1.4 195-35.4 195-35.4s0-70.9-17.8-88.6c-17.7-17.7-177.2-17.7-177.2-17.7V255z" transform="matrix(.0906 0 0 .09555 343 194.7)"/>
+      <path stroke="#fdc301" stroke-width="11" d="M318.9 1318.1c55-122.3 70.9-336.6 70.9-372 0-99.8-33-585.2-35.5-779.6s124-301.2 248-301.2c106.4 0 177.2 71 177.2 177.2h-53.1a121 121 0 00-124-124c-106.3 0-188 83.7-195 248-7.5 190 21.4 683 17.8 815S374 1231.2 318.9 1318z" transform="matrix(-.0906 0 0 .09555 484.3 194.7)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.4 912.6v179.2c.1 75.7 19.8 105 54.3 103.6 34.4-1.3 41-58.8 34.5-92-6.6-33.3-53.2-199-53.2-199l-35.6 8.2z" transform="matrix(-.07727 -.0499 -.04732 .08148 513.9 245.5)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.5 32.9C903.7 33 957.3 135.3 957 133.2l-35.7 33.3c-19 17.8-141.8 17.8-140.2 17.7l-1.6-151.3z" transform="matrix(.0906 0 0 .09555 343 194.7)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.4 912.6v179.2c.1 75.7 19.8 105 54.3 103.6 34.4-1.3 41-58.8 34.5-92-6.6-33.3-53.2-199-53.2-199l-35.6 8.2z" transform="matrix(-.08863 -.01984 -.01882 .09346 497.9 211.7)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.4 912.6v179.2c.1 75.7 19.8 105 54.3 103.6 34.4-1.3 41-58.8 34.5-92-6.6-33.3-53.2-199-53.2-199l-35.6 8.2z" transform="matrix(-.0906 0 0 .09555 484.3 194.7)"/>
+      <path stroke="#000" stroke-width="5.5" d="M779.5 255.1c159.6-1.4 177.2-35.4 177.2-35.4s35.4-70.9 17.7-88.6c-17.7-17.7-194.9-17.7-194.9-17.7V255z" transform="matrix(-.05623 0 0 .09555 457.5 257.3)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.5 255.1c106.3 0 124-35.4 124-35.4s35.5-70.9 17.8-88.6c-17.7-17.7-141.8-17.7-141.8-17.7V255z" transform="matrix(-.0906 0 0 .09555 484.3 250.5)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.5 255.1c88.6 0 141.8-35.4 141.8-35.4s35.4-70.9 17.7-88.6c-17.7-17.7-159.5-17.7-159.5-17.7v141.7z" transform="matrix(-.0906 0 0 .09555 484.3 243.8)"/>
+      <path stroke="#000" stroke-width="3.9" d="M832.7 113.4s70.8-88.6 194.9-177.2c124-88.6 213.7-156.7 230.3-141.7 0 17.7-106.3 106.3-195 177.2-88.5 70.8-194.8 177.1-194.8 177.1l-35.4-35.4z" transform="matrix(-.11244 0 0 .09555 501.9 194.9)"/>
+      <path stroke="#000" stroke-width="3.9" d="M832.7 113.4s70-52 204.4-124c132.2-64 318.9-53.2 318.9-35.5-17.8 17.8-177.2 17.8-283.5 70.9C971 75.5 868 148.8 868 148.8l-35.4-35.4z" transform="matrix(-.11244 0 0 .09555 501 201.7)"/>
+      <path stroke="#000" stroke-width="3.9" d="M832.7 113.4s61.6-35 204.4-88.6c141.7-53.1 329.8-17.7 329.8 0-17.7 17.7-170.4 7-276.7 35.4-110 27.8-222 88.6-222 88.6l-35.5-35.4z" transform="matrix(-.11244 0 0 .09555 500.9 213.3)"/>
+      <path stroke="#000" stroke-width="3.9" d="M832.7 113.4s71-71 222.4-88.6c152.3-17.7 276.3 88.6 276.3 106.3-17.7 17.7-159.5-78-265.7-64.3-112.6 13.7-197.6 82-197.6 82l-35.5-35.4z" transform="matrix(-.11244 0 0 .09555 500.1 225.2)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.5 255.1c159.6-1.4 159.5-45.5 159.5-45.5s35.4-70.8 17.7-88.6c-17.7-17.7-177.2-7.6-177.2-7.6V255z" transform="matrix(-.0906 0 0 .09555 484.3 235.3)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.5 255.1c159.6-1.4 177.2-35.4 177.2-35.4s35.4-70.9 17.7-88.6c-17.7-17.7-194.9-17.7-194.9-17.7V255z" transform="matrix(-.0906 0 0 .09555 484.3 228.5)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.5 255.1c159.6-1.4 195-35.4 195-35.4s35.3-70.9 17.6-88.6c-17.7-17.7-212.6-17.7-212.6-17.7V255z" transform="matrix(-.0906 0 0 .09555 484.3 220)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.5 255.1c159.6-1.4 212.6-35.4 212.6-35.4s17.7-70.9 0-88.6c-17.7-17.7-212.6-17.7-212.6-17.7V255z" transform="matrix(-.0906 0 0 .09555 484.3 211.6)"/>
+      <path stroke="#000" stroke-width="3.9" d="M832.7 113.4S946.9 24.8 946.9-46.1c0-70.8-50.4-141.7-64.6-177.1 28.5 0 93.1 106.3 93.1 177.1 0 77.5-107.3 195-107.3 195l-35.4-35.5z" transform="matrix(-.11244 0 0 .09555 504.1 187.9)"/>
+      <path stroke="#000" stroke-width="3.9" d="M832.7 113.4s-14.3-53.2-14.3-159.5a355 355 0 0185.7-230.3C910-249 847-152.4 847-46c0 77.5 21.1 195 21.1 195l-35.4-35.5z" transform="matrix(-.11244 0 0 .09555 504.1 187.9)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.5 255.1c159.6-1.4 212.6-35.4 212.6-35.4s0-70.9-17.7-88.6c-17.7-17.7-194.9-17.7-194.9-17.7v141.7z" transform="matrix(-.0906 0 0 .09555 484.3 203.2)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.5 255.1c159.6-1.4 195-35.4 195-35.4s0-70.9-17.8-88.6c-17.7-17.7-177.2-17.7-177.2-17.7V255z" transform="matrix(-.0906 0 0 .09555 484.3 194.7)"/>
+      <path stroke="#fdc301" stroke-width="11" d="M318.9 1318.1c55-122.3 70.9-336.6 70.9-372 0-99.8-33-585.2-35.5-779.6s124-301.2 248-301.2c106.4 0 177.2 71 177.2 177.2h-53.1a121 121 0 00-124-124c-106.3 0-188 83.7-195 248-7.5 190 21.4 683 17.8 815S374 1231.2 318.9 1318z" transform="matrix(.0906 0 0 .09555 343 194.7)"/>
+      <path stroke="#000" stroke-width="4.4" d="M779.5 32.9C903.7 33 957.3 135.3 957 133.2l-35.7 33.3c-19 17.8-141.8 17.8-140.2 17.7l-1.6-151.3z" transform="matrix(-.0906 0 0 .09555 484.3 194.7)"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/td.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/td.svg
new file mode 100644
index 0000000..e3e81ce
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/td.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-td" viewBox="0 0 512 512">
+  <g fill-rule="evenodd">
+    <path fill="#000067" d="M0 0h171.2v512H0z"/>
+    <path fill="red" d="M340.8 0H512v512H340.8z"/>
+    <path fill="#ff0" d="M171.2 0h169.6v512H171.2z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tf.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tf.svg
new file mode 100644
index 0000000..2061867
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tf.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-tf" viewBox="0 0 512 512">
+  <defs>
+    <path id="a" fill="#fff" d="M0-21l12.3 38L-20-6.5h40L-12.3 17z"/>
+  </defs>
+  <path fill="#002395" d="M0 0h512v512H0z"/>
+  <path fill="#fff" d="M0 0h312.3v210H0z"/>
+  <path fill="#002395" d="M0 0h102.4v204.8H0z"/>
+  <path fill="#ed2939" d="M204.8 0h102.4v204.8H204.8z"/>
+  <path fill="#fff" d="M282.4 234.2l16.5 26.3h46.9V352l-35.3-55-47.3 75.5h23l24.4-43.5 49.9 89.6 49.9-89.6 24.3 43.5h23L410.5 297l-35.2 55v-50.6h21.1l15.7-25h-36.8v-16h46.9l16.5-26.2H282.4zm55 112h-51.2v18h51.2zm97.3 0h-51.2v18h51.2z"/>
+  <use width="100%" height="100%" x="416" y="362" transform="translate(-172) scale(1.28)" xlink:href="#a"/>
+  <use width="100%" height="100%" x="371" y="328" transform="translate(-172) scale(1.28)" xlink:href="#a"/>
+  <use width="100%" height="100%" x="461" y="328" transform="translate(-172) scale(1.28)" xlink:href="#a"/>
+  <use width="100%" height="100%" x="333" y="227" transform="translate(-172) scale(1.28)" xlink:href="#a"/>
+  <use width="100%" height="100%" x="499" y="227" transform="translate(-172) scale(1.28)" xlink:href="#a"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tg.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tg.svg
new file mode 100644
index 0000000..2c1fd98
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tg.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-tg" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0-.2h496.3V496H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(0 .3) scale(1.0316)">
+    <path fill="#ffe300" d="M0-.2h744V496H0z"/>
+    <path fill="#118600" d="M0 201.5h744v99.7H0zM0 0h744v99.7H0z"/>
+    <path fill="#d80000" d="M0 0h297.1v301.2H0z"/>
+    <path fill="#fff" d="M130.3 124.3c0-.9 18.3-51.5 18.3-51.5l16.6 50.6s55.6 1.7 55.6.8-44 33.2-44 33.2 20.7 58.1 19.9 56.5c-.8-1.7-48.1-34.9-48.1-34.9s-48.2 33.2-47.3 33.2 18.2-54.7 18.2-54.7L76.4 125l53.9-.8z"/>
+    <path fill="#118600" d="M0 396.4h744v99.7H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/th.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/th.svg
new file mode 100644
index 0000000..86850f5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/th.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-th" viewBox="0 0 512 512">
+  <g fill-rule="evenodd">
+    <path fill="#f4f5f8" d="M0 0h512v512H0z"/>
+    <path fill="#2d2a4a" d="M0 173.4h512V344H0z"/>
+    <path fill="#a51931" d="M0 0h512v88H0zm0 426.7h512V512H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tj.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tj.svg
new file mode 100644
index 0000000..853a4a4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tj.svg
@@ -0,0 +1,26 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-tj" viewBox="0 0 512 512">
+  <path fill="#060" d="M0 0h512v512H0z"/>
+  <path fill="#fff" d="M0 0h512v365.7H0z"/>
+  <path fill="#c00" d="M0 0h512v146.3H0z"/>
+  <g fill="#f8c300" transform="translate(-256) scale(.73143)">
+    <path d="M672 340.7a12.5 12.5 0 0123.3 5.9v50h9.4v-50a12.5 12.5 0 0123.3-5.9 29.5 29.5 0 10-56 0"/>
+    <path fill="#fff" d="M678.7 327.6a20 20 0 0121.3 9.6 20 20 0 0121.3-9.6 21.5 21.5 0 00-42.6 0"/>
+    <path id="a" d="M695.3 376.6a38 38 0 01-63.8 24.3 39.5 39.5 0 01-59.8 17.5c3.7 36.4 58.3 29 62.3-6.4 17.2 30.1 55 21.5 66-15.4z"/>
+    <use width="100%" height="100%" transform="matrix(-1 0 0 1 1400 0)" xlink:href="#a"/>
+    <path id="b" d="M658.8 441.3c-7.6 16.5-22.8 19.3-36.1 6 0 0 5.3-3.8 11-4.8a18 18 0 014.3-14.3 22 22 0 019 11.8c8-1 11.8 1.3 11.8 1.3z"/>
+    <use width="100%" height="100%" transform="rotate(9.4 700 804)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(18.7 700 804)" xlink:href="#b"/>
+    <path fill="none" stroke="#f8c300" stroke-width="16" d="M603 478a340 340 0 01194 0"/>
+    <g transform="translate(700 380)">
+      <g transform="translate(0 -140)">
+        <path id="c" d="M488533-158734l-790463 574305L0-513674l301930 929245-790463-574305z" transform="scale(.00005)"/>
+      </g>
+      <g id="d">
+        <use width="100%" height="100%" transform="translate(-70 -121.2)" xlink:href="#c"/>
+        <use width="100%" height="100%" transform="translate(-121.2 -70)" xlink:href="#c"/>
+        <use width="100%" height="100%" transform="translate(-140)" xlink:href="#c"/>
+      </g>
+      <use width="100%" height="100%" transform="scale(-1 1)" xlink:href="#d"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tk.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tk.svg
new file mode 100644
index 0000000..c5ff6b4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tk.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-tk" viewBox="0 0 512 512">
+  <path fill="#00247d" d="M0 0h512v512H0z"/>
+  <path fill="#fed100" d="M90.7 384.2c-5.3 0 50-29.5 96.4-67.2 60.7-49.5 191.5-128.7 230-141.5 4-1.3-8.2 6.8-9.8 9.5-41.1 48.6-8.3 140.3 43 186.4 15.4 11.8 14.6 12.4 43.2 13.6v2.7l-402.8-3.5zm-3.3 5.4s-3.9 2.8-3.9 4.9c0 2.3 4.4 5.4 4.4 5.4l397.3 4.4 7.3-4.9-10.2-6.3-394.9-3.5z"/>
+  <path fill="#fff" d="M105.5 116.6l-4 12.1 10.4-7.5 10.3 7.5-4-12.1 10.4-7.5h-12.8l-3.9-12.2-4 12.2H95.2zm77.8 57.1l8.6-6.2h-10.6l-3.3-10.1-3.3 10.1h-10.6l8.6 6.2-3.3 10.1 8.6-6.2 8.6 6.2zm-144.7 13l-3.9-12.1-4 12.1H18l10.3 7.5-4 12.1 10.4-7.5 10.3 7.5-3.9-12.1 10.3-7.5zm77.9 121.9l-4.6-14.2-4.6 14.2H92.4l12 8.7-4.6 14.2 12.1-8.8 12 8.8-4.6-14.2 12-8.7z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tl.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tl.svg
new file mode 100644
index 0000000..ec6d44b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tl.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-tl" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h496v496H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(1.0321)">
+    <path fill="#cb000f" d="M0 0h999v496H0z"/>
+    <path fill="#f8c00c" d="M0 0c3.1 0 496 248.7 496 248.7L0 496.1V0z"/>
+    <path d="M0 0c2 0 330 248.7 330 248.7L0 496.1V0z"/>
+    <path fill="#fff" d="M181.9 288.9l-59-13L93 327l-5-57.8-58.8-13 53.1-24-3.2-57.5 39 42 53.6-24.4-28 52.2 38 44.4z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tm.svg
new file mode 100644
index 0000000..d856424
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tm.svg
@@ -0,0 +1,203 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-tm" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h496v496H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(1.0321)">
+    <path fill="#28ae66" d="M0 0h744v496H0z"/>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M255.1 133.2c27 13 59.2 0 70.9-18 12-16.8 13.4-45-7.3-70.9 32 26.6 39.2 56.7 23.2 81.5-21.2 28.3-68.4 27.5-86.8 7.4z"/>
+      <path d="M297 76.2l1.5-5.4-4.4-3.3 5.4-.2 1.8-5.3 1.8 5.3h5.4l-4.3 3.5 1.6 5.3-4.4-3.2zm-27 33.6l1.6-5.3-4.4-3.4 5.5-.1 1.7-5.3 1.9 5.2 5.4.1-4.3 3.4 1.6 5.4-4.5-3.2zm1.8-26.5l1.6-5.4-4.4-3.3 5.4-.2 1.8-5.3 1.8 5.3h5.5l-4.3 3.5 1.6 5.3-4.5-3.2zm0-26.6l1.6-5.4L269 48l5.4-.2 1.8-5.3 1.8 5.3h5.5l-4.3 3.5 1.6 5.3-4.5-3.1zM242 90.4l1.5-5.4-4.3-3.4 5.4-.1 1.8-5.3 1.8 5.2 5.4.1-4.3 3.4 1.6 5.4-4.5-3.2z"/>
+    </g>
+    <path fill="#ca3745" d="M46 0h159.5v496H46.1z"/>
+    <g fill="#faae29" stroke-width="1pt">
+      <path d="M46 129.3v-3.5l6.7-8.9-1.4-1.7 4-5.4-1.3-1.7-2.7 3.5-1.3-1.8 9.3-12.4 1.3 1.8-1.3 1.8 2.7 3.6 6.6-9-6.7-8.5-2.6 3.3 1.3 1.7-1.3 1.8L50 81.5l1.3-1.8 2.7 3.6 1.3-1.8-4-5.3 1.4-1.8-6.6-8.8V62l9.2 12.4-1.3 1.8 4 5.3-2.7 3.5 2.7 3.6 4-5.3 9.3 12.6L62 108l-4-5.3-2.7 3.5 2.7 3.5-4 5.4 1.3 1.7-9.2 12.4z"/>
+      <path d="M46 85l1.4 3.6v5.3h4l2.6 1.8-2.6 1.7h-4v5.4l-1.3 3.5V85z"/>
+    </g>
+    <g fill="#faae29" stroke-width="1pt">
+      <path d="M46 214.4v-3.6l6.7-8.8-1.4-1.8 4-5.3L54 193l-2.7 3.5L50 195l9.3-12.4 1.3 1.7-1.3 1.8 2.7 3.6 6.6-8.9-6.7-8.6-2.6 3.3 1.3 1.8-1.3 1.7-9.3-12.4 1.3-1.7 2.7 3.5 1.3-1.8-4-5.3 1.4-1.7-6.6-9V147l9.2 12.4-1.3 1.8 4 5.3-2.7 3.6 2.7 3.5 4-5.3 9.3 12.6-9.3 12.2-4-5.3-2.7 3.5L58 195l-4 5.3 1.3 1.8-9.2 12.4z"/>
+      <path d="M46 170l1.4 3.6v5.3h4l2.6 1.8-2.6 1.8h-4v5.3l-1.3 3.5v-21.2z"/>
+    </g>
+    <g fill="#faae29" stroke-width="1pt">
+      <path d="M46 299.4v-3.5l6.7-8.9-1.4-1.8 4-5.3-1.3-1.7-2.7 3.5-1.3-1.8 9.3-12.4 1.3 1.8-1.3 1.8 2.7 3.5 6.6-8.9-6.7-8.6-2.6 3.3 1.3 1.8-1.3 1.8-9.3-12.4 1.3-1.8 2.7 3.5 1.3-1.7-4-5.3 1.4-1.8-6.6-8.9v-3.5l9.2 12.4-1.3 1.8 4 5.3-2.7 3.5 2.7 3.6 4-5.3 9.3 12.6-9.3 12.2-4-5.4-2.7 3.6 2.7 3.5-4 5.3 1.3 1.8-9.2 12.4z"/>
+      <path d="M46 255.1l1.4 3.6v5.3h4l2.6 1.8-2.6 1.7h-4v5.3l-1.3 3.6V255z"/>
+    </g>
+    <g fill="#faae29" stroke-width="1pt">
+      <path d="M46 379.1v-3.5l6.7-8.9-1.4-1.7 4-5.4L54 358l-2.7 3.5-1.3-1.8 9.3-12.4 1.3 1.8-1.3 1.8 2.7 3.6 6.6-9-6.7-8.5-2.6 3.3 1.3 1.7-1.3 1.8-9.3-12.4 1.3-1.8 2.7 3.6 1.3-1.8-4-5.3 1.4-1.8-6.6-8.8v-3.6l9.2 12.4L54 326l4 5.3-2.7 3.5 2.7 3.6 4-5.3 9.3 12.6-9.3 12.2-4-5.3-2.7 3.5 2.7 3.5-4 5.4 1.3 1.7-9.2 12.4z"/>
+      <path d="M46 334.8l1.4 3.6v5.3h4l2.6 1.8-2.6 1.7h-4v5.4L46 356v-21.3z"/>
+    </g>
+    <g fill="#faae29" stroke-width="1pt">
+      <path d="M205.5 129.3v-3.5l-6.6-8.9 1.3-1.7-4-5.4 1.4-1.7 2.7 3.5 1.3-1.8-9.3-12.4-1.4 1.8 1.4 1.8-2.8 3.6-6.5-9 6.6-8.5 2.7 3.3-1.4 1.7 1.4 1.8 9.3-12.4-1.4-1.8-2.6 3.6-1.3-1.8 4-5.3-1.4-1.8 6.6-8.9V62l-9.2 12.4 1.3 1.8-4 5.3 2.7 3.5-2.7 3.6-4-5.3-9.3 12.6 9.3 12.2 4-5.3 2.7 3.5-2.7 3.5 4 5.4-1.3 1.7 9.2 12.4z"/>
+      <path d="M205.5 85l-1.3 3.6v5.3h-4l-2.7 1.8 2.7 1.7h4v5.4l1.3 3.5V85z"/>
+    </g>
+    <g fill="#faae29" stroke-width="1pt">
+      <path d="M206 214.4v-3.6l-6.7-8.8 1.4-1.8-4-5.3 1.3-1.8 2.7 3.6 1.3-1.8-9.3-12.4-1.3 1.7 1.3 1.8-2.7 3.6-6.6-8.9 6.7-8.6 2.6 3.3-1.3 1.8 1.3 1.7 9.3-12.4-1.3-1.7-2.7 3.5-1.3-1.8 4-5.3-1.3-1.7 6.5-9v-3.4l-9.2 12.4 1.3 1.7-4 5.3 2.7 3.6-2.7 3.5-4-5.3-9.3 12.6 9.4 12.2 4-5.3 2.6 3.5-2.7 3.6 4 5.3-1.3 1.8 9.3 12.4z"/>
+      <path d="M206 170l-1.4 3.6v5.3h-4l-2.6 1.8 2.6 1.8h4v5.3l1.3 3.5v-21.2z"/>
+    </g>
+    <g fill="#faae29" stroke-width="1pt">
+      <path d="M205.5 299.4v-3.5L199 287l1.3-1.8-4-5.3 1.4-1.7 2.7 3.5 1.3-1.8-9.3-12.4-1.4 1.8 1.4 1.8-2.8 3.5-6.5-8.9 6.6-8.6 2.7 3.3-1.4 1.8 1.4 1.8 9.3-12.4-1.4-1.8-2.6 3.5-1.3-1.7 4-5.3-1.4-1.8 6.6-8.9v-3.5l-9.2 12.4 1.3 1.8-4 5.3 2.7 3.5-2.7 3.6-4-5.3-9.3 12.6 9.3 12.2 4-5.4 2.7 3.6-2.7 3.5 4 5.3-1.3 1.8 9.2 12.4z"/>
+      <path d="M205.5 255.1l-1.3 3.6v5.3h-4l-2.7 1.8 2.7 1.7h4v5.3l1.3 3.6V255z"/>
+    </g>
+    <g fill="#faae29" stroke-width="1pt">
+      <path d="M205.5 379.1v-3.5l-6.6-8.9 1.3-1.7-4-5.4 1.4-1.7 2.7 3.5 1.3-1.8-9.3-12.4-1.4 1.8 1.4 1.8-2.8 3.6-6.5-9 6.6-8.5 2.7 3.3-1.4 1.7 1.4 1.8 9.3-12.4-1.4-1.8-2.6 3.6-1.3-1.8 4-5.3-1.4-1.8 6.6-8.8v-3.6l-9.2 12.4 1.3 1.8-4 5.3 2.7 3.5-2.7 3.6-4-5.3-9.3 12.6 9.3 12.2 4-5.3 2.7 3.5-2.7 3.5 4 5.4-1.3 1.7 9.2 12.4z"/>
+      <path d="M205.5 334.8l-1.3 3.6v5.3h-4l-2.7 1.8 2.7 1.7h4v5.4l1.3 3.5v-21.3z"/>
+    </g>
+    <path fill="#faae29" stroke-width="1pt" d="M46 33.7V30l6.7-8.8-1.4-1.8 4-5.3-1.3-1.8-2.7 3.5-1.3-1.7 9.3-12.4 1.3 1.7-1.3 1.8L62 9l6.6-9h2.7L62 12.4l-4-5.3-2.7 3.5 2.7 3.6-4 5.3 1.3 1.8-9.2 12.4zM46 0h8l-2.6 1.8h-4V7l-1.3 3.5V0zm159.5 33.7V30l-6.6-8.8 1.3-1.8-4-5.3 1.4-1.8 2.6 3.5 1.4-1.7-9.3-12.4-1.4 1.7 1.4 1.8-2.8 3.6-6.5-9h-2.7l9.3 12.5 4-5.3 2.7 3.5-2.7 3.6 4 5.3-1.3 1.8 9.2 12.4zm0-33.7h-8l2.7 1.8h4V7l1.3 3.5V0z"/>
+    <path fill="#faae29" d="M112.5 489s5.7-10 20.2-13.1c14.4-3 16.9 6.7 25.1 6.7 8.2 0 21.3-6.7 21.3-6.7s-13 12.8-23.1 12.5c-10-.3-13.5-6.7-23.8-5.8-10.3 1-19.7 6.7-19.7 6.4z"/>
+    <path fill="#faae29" d="M140.3 489s-5.7-10-20.1-13.1c-14.4-3-17 6.7-25.2 6.7s-21.3-6.7-21.3-6.7 13.1 12.8 23.2 12.5c10-.3 13.5-6.7 23.8-5.8 10.3 1 19.6 6.7 19.6 6.4z"/>
+    <g fill="#faae29" stroke-width="1pt">
+      <path d="M93.2 472.4c-1.3-2.7-4.4-14.3-2.8-15.7 2.6-1 9.3 10.9 8.7 21.5-4.4 2.4-19.4-1-19.2-4.1 1-4.4 9.5-3 13.3-1.7z"/>
+      <path d="M84.1 462.3c-.8-3-2.1-15.2-.2-16.2 2.6-.2 7.4 13.2 5.1 23.4-4.7 1.2-18.9-6.2-18.2-9.3 1.7-4 9.8-.2 13.3 2z"/>
+      <path d="M76.8 451c-.6-3.1-.8-15.5 1.1-16.1 2.7.1 6.2 14.2 3 24-4.7.4-18.1-9.2-17.2-12 2-3.8 9.7 1.2 13 4z"/>
+      <path d="M71 438.8c-.3-3.1 1-15.3 3-15.6 2.6.7 4.4 15.4.2 24.4-4.8-.6-17-12.9-15.7-15.5 2.5-3.2 9.5 3.3 12.4 6.7z"/>
+      <path d="M66.9 426.2c.1-3.2 2.7-15 4.7-14.9 2.4 1.2 2.7 16.1-2.5 24.2-4.6-1.5-15.3-16-13.8-18.4 2.8-2.7 9 5.1 11.6 9z"/>
+      <path d="M68 411.8c-.3 12.6-2.6 12.7-6.8 3.4-1.8-3.5-2-18-.4-18.6 2.4 0 7.1 10.3 7.2 15.2z"/>
+    </g>
+    <g fill="#faae29" stroke-width="1pt">
+      <path d="M159 473.7c1.2-2.6 4.4-14.3 2.7-15.7-2.6-1-9.3 10.9-8.7 21.5 4.5 2.4 19.5-1 19.3-4.1-1.1-4.3-9.6-2.9-13.4-1.7z"/>
+      <path d="M168 463.6c.8-3 2.1-15.2.3-16.2-2.7-.2-7.5 13.3-5.2 23.5 4.7 1.1 19-6.3 18.2-9.3-1.7-4-9.8-.3-13.3 2z"/>
+      <path d="M175.4 452.2c.5-3 .8-15.4-1.2-16-2.6.2-6.2 14.3-3 24 4.8.5 18.2-9.2 17.2-12-2-3.7-9.7 1.3-13 4z"/>
+      <path d="M181.2 440.2c.2-3.2-1-15.4-3-15.6-2.6.7-4.5 15.3-.2 24.4 4.7-.6 16.9-13 15.6-15.6-2.5-3.2-9.4 3.3-12.4 6.8z"/>
+      <path d="M185.2 427.5c-.1-3.1-2.6-15-4.6-14.9-2.5 1.2-2.8 16.1 2.4 24.2 4.7-1.5 15.3-16 13.8-18.3-2.8-2.7-9 5-11.6 9z"/>
+      <path d="M184.1 413.1c.4 12.6 2.7 12.8 6.8 3.4 1.9-3.5 2.1-18 .4-18.6-2.4 0-7.1 10.4-7.2 15.2z"/>
+    </g>
+    <g transform="matrix(.96875 0 0 1.2258 182.4 -74.6)">
+      <path fill="#ca3745" stroke="#000" stroke-width=".1" d="M-3.5 290.6H-9v3.5h-5.3v3.5h-21.2l-3.6 3.6 1.8 1.8h8.9l1.7-1.8h-8.8l1.7-1.8h12.4l-5.3 5.3H-39l-3.5-1.7-3.6 1.7h-12.4l-5.3-5.3h12.4l1.8 1.8h-8.9l1.8 1.8h8.9l1.7-1.8-3.5-3.6h-19.5v-3.5h-5.3v-3.5h-5.3v-16h5.3v-3.5h5.3v-3.6h19.5l3.5-3.5-1.7-1.8h-8.9l-1.8 1.8h8.9l-1.8 1.7h-12.4l5.3-5.3H-46l3.6 1.8 3.5-1.8h12.4l5.3 5.3h-12.4l-1.7-1.7h8.8l-1.8-1.8h-8.8L-39 264l3.6 3.5h21.2v3.6h5.3v3.5h5.4v16z" transform="matrix(1.4884 0 0 1.24 3.5 -39.5)"/>
+      <path fill="#28ae66" stroke="#faae29" stroke-width="1pt" d="M375.6 499.7v24.8h10.6v7h10.6v7h35.5l14.2 10.7 14.1-10.6h39v-7l10.6-.1v-7H521v-24.9h-10.7v-7h-10.6v-7.2h-39l-14.1-10.6-14.2 10.6h-35.5v7.2h-10.6v7h-10.6z" transform="matrix(.74419 0 0 .62 -392 -6.5)"/>
+      <path fill="#ca3745" d="M-75.6 296.6l-15.8 11v-11h15.8zm31.6 0l15.9 11v-11H-44zm-31.6 28.6l-15.8-11v11h15.8zm31.6 0l15.9-11v11H-44zm5.3-22l-5.3 4.4h10.6l-5.3-4.4zm-42.2 0l-5.2 4.4h10.5l-5.3-4.4zm0 15.4l-5.2-4.4h10.5l-5.3 4.4zm42.2 0l-5.3-4.4h10.6l-5.3 4.4z"/>
+      <path fill="#faae29" d="M-59.8 329.6l-5.3-4.4h10.6l-5.3 4.4zm0-22l-5.3-4.4h10.6l-5.3 4.4zm0-15.4l-5.3 4.5h10.6l-5.3-4.5zm0 22l-5.3 4.4h10.6l-5.3-4.4z"/>
+      <path fill="#faae29" stroke="#000" stroke-width=".1" d="M467.7 506.7H482v3.5h-14.2z" transform="matrix(.74419 0 0 .62 -392 -6.5)"/>
+      <path fill="#c00" stroke="#000" stroke-width=".1" d="M414.6 510.2h7v3.6h-7zm56.7 0h7v3.6h-7z" transform="matrix(.74419 0 0 .62 -392 -6.5)"/>
+      <path fill="#900" stroke="#000" stroke-width=".1" d="M439.4 489h14.1v3.5h-14.1zm0 7h14.1v3.6h-14.1z" transform="matrix(.74419 0 0 .62 -392 -6.5)"/>
+      <path fill="#900" stroke="#000" stroke-width=".1" d="M435.8 492.5h21.3v3.6h-21.3zm3.6 32h14.1v3.4h-14.1zm0 7h14.1v3.5h-14.1zm-3.6-3.5h21.3v3.5h-21.3z" transform="matrix(.74419 0 0 .62 -392 -6.5)"/>
+      <path fill="#faae29" stroke="#000" stroke-width=".1" d="M467.7 513.8H482v3.5h-14.2zm-56.7-7.1h14.2v3.5H411zm0 7h14.2v3.6H411zm-3.5-3.5h7v3.6h-7zm14.2 0h7v3.6h-7zm42.5 0h7v3.6h-7zm14.2 0h7v3.6h-7z" transform="matrix(.74419 0 0 .62 -392 -6.5)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -374.1 -39)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -367.6 -39)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -361 -39)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -371.5 -41.1)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -363.7 -41.1)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -371.6 -36.8)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -363.7 -36.7)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -353.2 -50)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -346.6 -50)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -340 -50)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -350.5 -52.2)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -342.7 -52.2)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -350.6 -47.9)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -342.7 -47.8)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -374.2 -60.9)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -367.6 -60.9)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -361 -61)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -371.6 -63.1)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -363.7 -63.1)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -371.6 -58.8)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -363.7 -58.7)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -395.3 -49.8)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -388.7 -49.8)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -382.1 -49.9)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -392.6 -52)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -384.8 -52)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -392.7 -47.7)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -384.8 -47.6)"/>
+    </g>
+    <path fill="#fff" d="M134.6 247.8l4.4-2 4.4 2h-8.8zm-13.2 0l4.4-2 4.4 2h-8.8zm-13.2 0l4.4-2 4.4 2h-8.8zm26.4-47.4l4.4 2.1 4.4-2h-8.8zm-13.2 0l4.4 2.1 4.4-2h-8.8zm-13.2 0l4.4 2.1 4.4-2h-8.8z"/>
+    <path fill="#28ae66" d="M131 254l-5.2 4.1-5.1-4.1-5.2 4.1-5-4.1v2l3.3 2.1-1.7 2v2.1h1.7l1.7-2 1.7 2h1.7v-2l-1.7-2.1 3.5-2 3.4 2-1.7 2v2.1h1.7l1.7-2 1.7 2h1.7v-2l-1.7-2.1 3.4-2 3.4 2-1.7 2v2.1h1.7l1.7-2 1.7 2h1.7v-2l-1.7-2.1 3.5-2V254l-5.2 4-5-4.1zm0-59.7l-5.2-4.2-5.1 4.2-5.2-4.2-5 4.2v-2.1l3.3-2-1.7-2.1v-2h1.7l1.7 2 1.7-2h1.8v2l-1.7 2 3.4 2.1 3.4-2-1.7-2.1v-2h1.7l1.7 2 1.7-2h1.7v2l-1.7 2 3.4 2.1 3.4-2-1.7-2.1v-2h1.7l1.7 2 1.7-2h1.8v2l-1.7 2 3.4 2.1v2l-5.2-4-5 4zm38.7 34.3l5.5-4.5-5.5-4.4 5.5-4.5-5.5-4.5h2.8l2.7 3 2.8-1.5h2.7v1.5l-2.7 1.5 2.7 1.5v1.5H178l-2.8-1.5-2.7 3 2.7 3 2.8-1.6h2.7v1.5l-2.7 1.5 2.7 1.5v1.5H178l-2.8-1.5-2.7 3 2.7 3 2.8-1.5h2.7v1.5L178 233l2.7 1.5v1.5H178l-2.8-1.5-2.7 3h-2.8l5.5-4.5-5.5-4.4zm-87.9 0l-5.5-4.5 5.5-4.4-5.5-4.5 5.5-4.5h-2.7l-2.8 3-2.7-1.5h-2.7v1.5l2.7 1.5-2.7 1.5v1.5h2.7l2.8-1.5 2.7 3-2.8 3-2.7-1.6h-2.7v1.5l2.7 1.5-2.7 1.5v1.5h2.7l2.8-1.5 2.7 3-2.8 3-2.7-1.5h-2.7v1.5l2.7 1.4-2.7 1.5v1.5h2.7l2.8-1.5 2.7 3h2.7l-5.5-4.5 5.5-4.4z"/>
+    <path fill="#28ae66" stroke="#000" stroke-width=".3" d="M-26.6 214.4h1.8v1.7h-1.8zm-1.8 1.7h1.8v1.8h-1.7zm-8.8 8.9h1.8v1.8h-1.8zm1.8-1.8h1.7v1.8h-1.7zm-58.5 0h1.8v1.8H-94zm-8.9-8.8h1.8v1.7h-1.8zm1.8 1.7h1.8v1.8h-1.8zm0-39h1.8v1.8h-1.8zm-1.8 1.8h1.8v1.8h-1.8zm10.7-10.6h1.7v1.8H-92zm-1.8 1.8h1.8v1.8H-94zm56.7-1.8h1.8v1.8h-1.8zm1.8 1.8h1.7v1.8h-1.7zm7 7h1.8v1.8h-1.7zm1.8 1.9h1.8v1.7h-1.8zM-92 225h1.7v1.8H-92z" transform="matrix(1.24 0 0 1.1622 204.9 -5.5)"/>
+    <path fill="#fff" d="M119 224.1h-6.4v-4h4.3v-3.8h4.3v-3.5h4.4v4.3c-3.6 0-6.5 3-6.5 7z"/>
+    <path fill="#faae29" d="M132 224.1h6.5v-4h-4.3v-3.8h-4.3v-3.5h-4.3v4.3c3.5 0 6.4 3 6.4 7z"/>
+    <path fill="#fff" d="M132 224.1h6.5v4h-4.3v3.9h-4.3v3.4h-4.3v-4.3c3.5 0 6.4-3 6.4-7z"/>
+    <path fill="#faae29" d="M119 224.1h-6.4v4h4.3v3.9h4.3v3.4h4.4v-4.3c-3.6 0-6.5-3-6.5-7z"/>
+    <path fill="#28ae66" d="M132 224.1h-6.4v-7c3.5 0 6.4 3.2 6.4 7z"/>
+    <path fill="#ca3745" d="M132 224.1h-6.4v7c3.5 0 6.4-3.1 6.4-7z"/>
+    <path fill="#28ae66" d="M119 224.1h6.6v7c-3.6 0-6.5-3.1-6.5-7z"/>
+    <path fill="#ca3745" d="M119 224.1h6.6v-7c-3.6 0-6.5 3.2-6.5 7z"/>
+    <path fill="#28ae66" d="M132.4 249.8l-6.6-4-6.6 4-6.6-4-6.6 4v-2l4.4-2-2.2-2.1v-2h2.2l2.2 2 2.2-2h2.2v2l-2.2 2 4.4 2.1 4.4-2-2.2-2.1v-2h2.2l2.2 2 2.2-2h2.2v2l-2.2 2 4.4 2.1 4.4-2-2.2-2.1v-2h2.2l2.2 2 2.2-2h2.2v2l-2.2 2 4.4 2.1v2l-6.6-4-6.6 4zm0-51.4l-6.6 4.1-6.6-4.1-6.6 4.1-6.6-4.1v2l4.4 2.1-2.2 2v2.1h2.2l2.2-2 2.2 2h2.2v-2l-2.2-2 4.4-2.2 4.4 2.1-2.2 2v2.1h2.2l2.2-2 2.2 2h2.2v-2l-2.2-2 4.4-2.2 4.4 2.1-2.2 2v2.1h2.2l2.2-2 2.2 2h2.2v-2l-2.2-2 4.4-2.2v-2l-6.6 4.1-6.6-4.1zm24.1 30.9l-3.3-5.2 3.3-5.1-3.3-5.2 3.3-5.1H155l-1.7 3.4-1.6-1.7H150v1.7l1.7 1.7-1.7 1.7v1.7h1.7l1.6-1.7 1.7 3.5-1.7 3.4-1.6-1.7H150v1.7l1.7 1.7-1.7 1.7v1.8h1.7l1.6-1.8 1.7 3.5-1.7 3.4-1.6-1.7H150v1.7l1.7 1.7-1.7 1.7v1.8h1.7l1.6-1.8 1.7 3.5h1.6l-3.3-5.2 3.3-5.1z"/>
+    <path fill="#28ae66" stroke="#000" stroke-width=".4" d="M-101 177.2l-7 7v26.6l7 7.1h32l7-7v-26.6l-7.1-7.1H-101zm-1.8-5.4l-17.7 17.8v16l17.8 17.6h35.4l17.7-17.7v-16l-17.7-17.7h-35.4z" transform="matrix(1.24 0 0 1.1622 231.2 -5.5)"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".3" d="M-93.9 147l3.5 5.4 3.6-5.4H-94z" transform="matrix(.992 0 0 .7748 208.4 136)"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".3" d="M-93.9 147l3.5 5.4 3.6-5.4H-94z" transform="matrix(.992 0 0 -.7748 208.4 312.3)"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".3" d="M-93.9 147l3.5 5.4 3.6-5.4H-94z" transform="matrix(.992 0 0 -.7748 222.4 312.3)"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".3" d="M-93.9 147l3.5 5.4 3.6-5.4H-94z" transform="matrix(.992 0 0 .7748 222.4 136)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-93.9 147l3.5 5.4 3.6-5.4H-94z" transform="matrix(.992 0 0 -.7748 201.4 312.3)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-93.9 147l3.5 5.4 3.6-5.4H-94z" transform="matrix(.992 0 0 -.7748 215.4 312.3)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-93.9 147l3.5 5.4 3.6-5.4H-94z" transform="matrix(.992 0 0 -.7748 229.5 312.3)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-104.5 180.7l3.5-3.5h-3.5v3.5z" transform="matrix(1.8599 0 0 -1.7432 293.8 558.7)"/>
+    <path fill="#28ae66" d="M95 229.3l3.3-5.2L95 219l3.3-5.2-3.3-5.1h1.7l1.6 3.4 1.7-1.7h1.6v1.7l-1.6 1.7 1.6 1.7v1.8H100l-1.7-1.8-1.6 3.5 1.6 3.4 1.7-1.7h1.6v1.7l-1.6 1.7 1.6 1.7v1.8H100l-1.7-1.8-1.6 3.5 1.6 3.4 1.7-1.7h1.6v1.7l-1.6 1.7 1.6 1.7v1.8H100l-1.7-1.8-1.6 3.5H95l3.3-5.2-3.3-5.1z"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-76.2 154.1h7.1l1.8 1.8-1.8 1.8h-7V154z" transform="matrix(1.24 0 0 1.046 253.2 57.3)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".4" d="M-99.2 180.7l-3.6 3.6v26.5l3.6 3.6h-5.3v-33.7h5.3z" transform="matrix(1.24 0 0 1.1622 222.4 -5.5)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-93.9 147l3.5 5.4 3.6-5.4H-94z" transform="matrix(.992 0 0 .7748 201.4 136)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-93.9 147l3.5 5.4 3.6-5.4H-94z" transform="matrix(.992 0 0 .7748 215.4 136)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-93.9 147l3.5 5.4 3.6-5.4H-94z" transform="matrix(.992 0 0 .7748 229.5 136)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".4" d="M-99.2 180.7l-3.6 3.6v26.5l3.6 3.6h-5.3v-33.7h5.3z" transform="matrix(-1.24 0 0 1.1622 29.1 -5.5)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-104.5 180.7l3.5-3.5h-3.5v3.5z" transform="matrix(-1.8599 0 0 -1.7432 -42.3 558.7)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-104.5 180.7l3.5-3.5h-3.5v3.5z" transform="matrix(-1.8599 0 0 1.7432 -42.3 -110.5)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-104.5 180.7l3.5-3.5h-3.5v3.5z" transform="matrix(1.8599 0 0 1.7432 293.8 -110.5)"/>
+    <path fill="#28ae66" stroke="#000" stroke-width=".4" d="M-101 177.2l-7 7v26.6l7 7.1h32l7-7v-26.6l-7.1-7.1H-101zm0-1.8l-8.8 8.8v26.6l8.8 8.9h32l8.8-8.9v-26.6l-8.9-8.8H-101z" transform="matrix(1.24 0 0 1.1622 231.2 -5.5)"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".3" d="M-76.2 154.1h7.1l1.8 1.8-1.8 1.8h-7V154z" transform="matrix(1.24 0 0 1.04607 253.2 61)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-76.2 154.1h7.1l1.8 1.8-1.8 1.8h-7V154z" transform="matrix(1.24 0 0 1.046 253.2 64.8)"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".3" d="M-76.2 154.1h7.1l1.8 1.8-1.8 1.8h-7V154z" transform="matrix(1.24 0 0 1.04607 253.2 68.4)"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".3" d="M-76.2 154.1h7.1l1.8 1.8-1.8 1.8h-7V154z" transform="matrix(1.24 0 0 1.04607 253.2 53.6)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-76.2 154.1h7.1l1.8 1.8-1.8 1.8h-7V154z" transform="matrix(-1.24 0 0 1.046 -1.6 57.3)"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".3" d="M-76.2 154.1h7.1l1.8 1.8-1.8 1.8h-7V154z" transform="matrix(-1.24 0 0 1.04607 -1.6 61)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-76.2 154.1h7.1l1.8 1.8-1.8 1.8h-7V154z" transform="matrix(-1.24 0 0 1.046 -1.6 64.8)"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".3" d="M-76.2 154.1h7.1l1.8 1.8-1.8 1.8h-7V154z" transform="matrix(-1.24 0 0 1.04607 -1.6 68.5)"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".3" d="M-76.2 154.1h7.1l1.8 1.8-1.8 1.8h-7V154z" transform="matrix(-1.24 0 0 1.04607 -1.6 53.6)"/>
+    <path fill="#970000" stroke="#000" stroke-width=".3" d="M-101 179v37h8.9v8.9h56.7V216h8.8v-37h-8.8v-8.8h-56.7v8.8h-8.9zm1.8 1.7v33.7h8.8v8.8h53.2v-8.8h8.9v-33.7h-8.9V172h-53.2v8.8h-8.8z" transform="matrix(1.24 0 0 1.1622 204.9 -5.5)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-28.4 69.1l-5.3-7.1v-5.3l-5.3-5.3h-10.6l-8.9-5.3h-28.3l-8.9 5.3h-10.6l-5.3 5.3V62l-5.3 7v14.3l5.3 7v5.4l5.3 5.3h10.6l8.9 5.3h28.3l8.9-5.3H-39l5.4-5.3v-5.3l5.3-7.1V69z" transform="matrix(1.24 0 0 1.1176 215.9 -35.5)"/>
+    <path fill="#faae29" d="M73 49.6v6l6.7 7.9v6l6.6 5.9h13.1l11 5.9h15.4V49.6H73.1z"/>
+    <path fill="#ca3745" d="M107.3 63.5l-8 5h-4.9l1.6 1.8-3.2 3.4 1.6 1.7 4.8-1.7 1.6 1.7.8-4.6 8.8-5.4-3.2-2z"/>
+    <path fill="#ca3745" d="M98.5 59.5l-8 5.1h-4.9l1.6 1.7-3.2 3.4 1.6 1.7 4.8-1.7 1.6 1.7.8-4.6 8.8-5.3-3.1-2zm-4.4-8l-8 5.2h-4.9l1.6 1.7-3.2 3.4 1.6 1.7 4.8-1.7 1.6 1.7.8-4.6 8.8-5.3-3.1-2z"/>
+    <path fill="#faae29" d="M178.5 49.6v-6l-6.6-7.8v-6l-6.6-6h-13.2l-11-5.9h-15.3v31.7h52.7z"/>
+    <path fill="#ca3745" d="M125.8 81.3h-4l-4.8-4h-7.5l-4-2 2-2 4 2h4.1l4-5.9 6.2 2v4h-6.1l6 5.9z"/>
+    <path fill="#fff" d="M73 49.6v-6l6.7-7.8v-6l6.6-6h13.1l11-5.9h15.4v31.7H73.1z"/>
+    <path fill="#ca3745" d="M125.8 18h-4l-4.8 3.9h-7.5l-4 2 2 2 4-2h4.1l4 5.9 6.2-2v-4h-6.1l6-5.9zm0 0h4l4.8 3.9h7.5l4 2-2 2-4-2H136l-4.1 5.9-6.1-2v-4h6l-6-5.9z"/>
+    <path fill="#fff" d="M178.5 49.6v6l-6.6 7.9v6l-6.6 5.9h-13.2l-11 5.9h-15.3V49.6h52.7z"/>
+    <path fill="#ca3745" d="M125.8 81.3h4l4.8-4h7.5l4-2-2-2-4 2H136l-4.1-5.9-6.1 2v4h6l-6 5.9zM98.5 39.7l-8-5h-4.9l1.6-1.8-3.2-3.4 1.6-1.7 4.8 1.7 1.6-1.7.8 4.6 8.8 5.3-3.1 2zm45.8-4l8-5h4.8l-1.5-1.8 3.2-3.3-1.7-1.7-4.7 1.7-1.7-1.7-.7 4.5-8.8 5.4 3.1 2z"/>
+    <path fill="#ca3745" d="M107.3 35.8l-8-5.1h-4.9l1.6-1.8-3.2-3.3 1.6-1.7 4.8 1.7 1.6-1.7.8 4.5 8.8 5.4-3.2 2zM94 47.5l-8-5h-4.9l1.6-1.8-3.2-3.4 1.6-1.7 4.8 1.7 1.6-1.7.8 4.6 8.8 5.3-3.1 2z"/>
+    <path fill="#fff" d="M77 49.6h2l2 2 2-2h42.8v27.7h-2l2 2v2l-6.1-6v-2h2v2h2v-2l-16.4-8.7h-14v-8.5l-6.1-4.5H83l-2 2 2 2h-2l-4.1-6z"/>
+    <path fill="#faae29" d="M77 49.6h2l2-2 2 2h42.8V21.9h-2l2-2v-2l-6.1 6v2h2v-2h2v2l-16.4 8.7h-14v8.6l-6.1 4.4H83l-2-2 2-2h-2l-4.1 6z"/>
+    <path fill="#28ae66" d="M86.3 49.6h39.5v23.8l-17.6-10H95v-7.9l-8.7-5.9z"/>
+    <path fill="#ca3745" d="M153.1 39.7l8-5h4.8l-1.6-1.8 3.2-3.4-1.6-1.7-4.8 1.7-1.6-1.7-.7 4.6-8.8 5.3 3.1 2zm4.4 8l8-5.2h4.8l-1.6-1.7 3.2-3.4-1.6-1.7-4.8 1.7-1.6-1.7-.7 4.6-8.8 5.3 3.1 2z"/>
+    <path fill="#fff" d="M174.6 49.6h-2l-2-2-2.1 2h-42.7V21.9h2l-2-2v-2l6 6v2h-2v-2h-2v2l16.5 8.7h14v8.6l6.1 4.4h4l2.1-2-2-2h2l4 6z"/>
+    <path fill="#28ae66" d="M165.3 49.6h-39.5V26l17.6 9.9h13.1v7.9l8.8 6z"/>
+    <path fill="#ca3745" d="M144.3 63.5l8 5h4.9l-1.6 1.8 3.2 3.4-1.6 1.7-4.8-1.7-1.6 1.7-.8-4.6-8.8-5.4 3.1-2z"/>
+    <path fill="#ca3745" d="M153.1 59.5l8 5.1h4.8l-1.6 1.7 3.2 3.4-1.6 1.7-4.8-1.7-1.6 1.7-.7-4.6-8.8-5.3 3.1-2zm4.4-8l8 5.2h4.8l-1.6 1.7 3.2 3.4-1.6 1.7-4.8-1.7-1.6 1.7-.7-4.6-8.8-5.3 3.1-2z"/>
+    <path fill="#faae29" d="M174.6 49.6h-2l-2 2-2.1-2h-42.7v27.7h2l-2 2v2l6-6v-2h-2v2h-2v-2l16.5-8.7h14v-8.5l6.1-4.5h4l2.1 2-2 2h2l4-6z"/>
+    <path fill="#ca3745" d="M165.3 49.6h-39.5v23.8l17.6-10h13.1v-7.9l8.8-5.9zm-79 0h39.5V26l-17.6 9.9H95v7.9l-8.7 6z"/>
+    <path fill="#ca3745" d="M130.1 49.6l11-6h6.7l-2.2-2 4.4-3.9-2.3-2-6.5 2-2.2-2-1 5.3-12.2 6.3 4.3 2.3zm-8.6 0l-11 6h-6.7l2.2 2-4.4 3.9 2.2 2 6.6-2 2.2 2 1-5.3 12.2-6.3-4.4-2.3z"/>
+    <path fill="#28ae66" d="M121.5 49.6l-11-6h-6.7l2.2-2-4.4-3.9 2.2-2 6.6 2 2.2-2 1 5.3 12.2 6.3-4.4 2.3zm8.6 0l11 6h6.7l-2.2 2 4.4 3.9-2.3 2-6.5-2-2.2 2-1-5.3-12.2-6.3 4.3-2.3z"/>
+    <path fill="#fff" d="M112.6 49.6l13.2-9.9 13.2 9.9-13.2 9.9-13.2-9.9z"/>
+    <path fill="#ca3745" d="M83 53.6l2.1 2-2 2h-2l-6.2-8h2l4.1 6h2l-2-2 2-2h4.1v2h-4zm0-8l2.1-2-2-2h-2l-6.2 8h2l4.1-6h2l-2 2 2 2h4.1v-2h-4zm85.5 8l-2 2 2 2h2l6.1-8h-2l-4 6h-2.1l2-2-2-2h-4v2h4zm0-8l-2-2 2-2h2l6.1 8h-2l-4-6h-2.1l2 2-2 2h-4v-2h4zm-44.8-4h4.1v16h-4z"/>
+    <path fill="#ca3745" d="M117.7 45.6h16.2v8h-16.2z"/>
+    <path fill="#28ae66" stroke="#000" stroke-width=".1" d="M333 170l-10.6 5.4v8.8l10.7 5.4h10.6l10.6-5.4v-8.8l-10.6-5.3h-10.6z" transform="matrix(3.4444 0 0 3.7273 -1039.8 -283.1)"/>
+    <path fill="#c00" d="M84.5 384h2.2v-4.1H91v4h2.2v-9.4H91v4h-4.4v-4h-2.2v9.4zm56 31.5h2.3v-4h4.4v4h2.2V406h-2.2v4.1h-4.4v-4h-2.2v9.4zm-35.4-47.3h2.2V364h4.5v4h2.2v-9.4h-2.2v4h-4.4v-4H105v9.5zm32.5 0h2.2V364h4.4v4h2.3v-9.4h-2.3v4h-4.4v-4h-2.2v9.5zm20.7 15.7h2.2v-4h4.4v4h2.2v-9.4H165v4h-4.4v-4h-2.2v9.4zm0 15.8h2.2v-4h4.4v4h2.2v-9.4H165v4h-4.4v-4h-2.2v9.4z"/>
+    <path fill="#faae29" d="M125.8 421.9V387h53.1v15.8l-35.4 19h-17.7zm0-69.5V387H72.6v-15.8l35.5-19h17.7z"/>
+    <path fill="#fff" d="M125.8 352.4V387h53.1v-15.8l-35.4-19h-17.7zm0 69.5V387H72.6v15.8l35.5 19h17.7z"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".1" d="M-177.2 368.5h21.3l-21.3-10.6v10.6zm24.8-1.8v17.7H-186v-14.1h-7.1l-8.9-5.3v-12.4l5.4-5.4h-7.1V365h-1.8v-19.5h17.7l35.4 21.2z" transform="matrix(1 0 0 .8913 331.3 44.5)"/>
+    <path fill="#ca3745" d="M108 376v22.2h5.4l12.4 6.3 12.4-6.3h5.3V376h-5.3l-12.4-6.4-12.4 6.4H108z"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".1" d="M-177.2 368.5h21.3l-21.3-10.6v10.6zm24.8-1.8v17.7H-186v-14.1h-7.1l-8.9-5.3v-12.4l5.4-5.4h-7.1V365h-1.8v-19.5h17.7l35.4 21.2z" transform="matrix(-1 0 0 -.8913 -79.7 729.8)"/>
+    <path fill="#fff" stroke="#000" stroke-width=".1" d="M-177.2 368.5h21.3l-21.3-10.6v10.6zm24.8-1.8v17.7H-186v-14.1h-7.1l-8.9-5.3v-12.4l5.4-5.4h-7.1V365h-1.8v-19.5h17.7l35.4 21.2z" transform="matrix(-1 0 0 .8913 -79.7 44.5)"/>
+    <path fill="#fff" stroke="#000" stroke-width=".1" d="M-177.2 368.5h21.3l-21.3-10.6v10.6zm24.8-1.8v17.7H-186v-14.1h-7.1l-8.9-5.3v-12.4l5.4-5.4h-7.1V365h-1.8v-19.5h17.7l35.4 21.2z" transform="matrix(1 0 0 -.8913 331.3 729.8)"/>
+    <path fill="#ca3745" d="M83.3 399.8h2.2V395h4.4v4.7h2.2v-11H90v4.7h-4.4v-4.7h-2.2v11zm21.2 15.7h2.2v-4.7h4.5v4.7h2.2v-11h-2.2v4.7h-4.5v-4.7h-2.2v11zm-21.2-41h2.2v4.7h4.4v-4.7h2.2v11H90v-4.7h-4.4v4.7h-2.2v-11zm21.2-15.8h2.2v4.7h4.5v-4.7h2.2v11h-2.2V365h-4.5v4.7h-2.2v-11zm33.7 56.8h2.2v-4.7h4.4v4.7h2.3v-11h-2.3v4.7h-4.4v-4.7h-2.2v11zm21.3-30h2.2v-4.7h4.4v4.7h2.2v-11h-2.2v4.7h-4.4v-4.7h-2.2v11z"/>
+    <path fill="#ca3745" d="M138.2 415.5h2.2v-4.7h4.4v4.7h2.3v-11h-2.3v4.7h-4.4v-4.7h-2.2v11z"/>
+    <path fill="#ca3745" d="M138.2 415.5h2.2v-4.7h4.4v4.7h2.3v-11h-2.3v4.7h-4.4v-4.7h-2.2v11zm21.3-15.8h2.2V395h4.4v4.7h2.2v-11h-2.2v4.7h-4.4v-4.7h-2.2v11zm-21.3-30h2.2V365h4.4v4.7h2.3v-11h-2.3v4.7h-4.4v-4.7h-2.2v11z"/>
+    <path fill="#fff" d="M127.6 387.1l7-5.8h3.6v3h-3.5v1.4h5.3v-5.8h-5.3v-4.3h-7.1v4.3h1.7V377h3.6v3l-7.1 5.7-7-5.8V377h3.4v3h1.8v-4.4h-7v4.3h-5.4v5.8h5.3v-1.5h-3.5v-2.8h3.5l7.1 5.7-7 5.8h-3.6v-3h3.5v-1.4h-5.3v5.8h5.3v4.3h7.1v-4.3h-1.8v2.9h-3.5v-2.9l7-5.8 7.2 5.8v2.9h-3.6v-2.9h-1.7v4.3h7v-4.3h5.4v-5.8h-5.4v1.5h3.6v2.9h-3.5l-7.1-5.8z"/>
+    <g transform="matrix(1 0 0 .92857 198.4 17.6)">
+      <path fill="#ca3745" d="M-122.3 134.3l3.4-3.8h20.6l15.4-16.7h20.6l15.4 16.8h20.6l3.4 3.7-3.4 3.7H-47l-15.4 16.8H-83L-98.3 138H-119l-3.4-3.7z"/>
+      <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M372 391.5l2-2h22.8l17.1-19.4h19l17.2 19.5h22.8l1.9 2-1.9 1.9h-22.8L434.8 411H412l-15.2-17.5h-22.9l-1.9-2z" transform="matrix(.93104 0 0 .90908 -466.9 -221.3)"/>
+      <path fill="#faae29" d="M-64 136.2l6.8 7.4-3.4 3.7-1.8-1.8H-64v1.8l1.7 1.9h3.5l3.4-3.7v-3.8l-6.9-7.4 6.9-7.5v-3.7l-3.4-3.7h-3.5l-1.7 1.8v1.9h1.7l1.8-1.9 3.4 3.8-6.9 7.4-6.8-7.4 6.8-7.5v-1.9h-1.7l-6.8 7.5-6.9-7.5h-1.7v1.9l6.8 7.5-6.8 7.4-6.9-7.4 3.5-3.8 1.7 1.9h1.7v-1.9l-1.7-1.8h-3.5l-3.4 3.7v3.7l6.9 7.5-6.9 7.4v3.8l3.4 3.7h3.5l1.7-1.9v-1.8H-83l-1.7 1.8-3.5-3.7 6.9-7.4 6.8 7.4-6.8 7.5v1.8h1.7l6.9-7.4 6.8 7.4h1.7v-1.8l-6.8-7.5 6.8-7.4zm-8.6-9.4l-6.9 7.5 6.9 7.4 6.8-7.4-6.8-7.5zm-10.3 28v15l1.7-2 1.7 2 1.7-2 1.7 2 1.8-2 1.7 2 1.7-2 1.7 2 1.7-2 1.7 2 1.7-2 1.8 2v-15H-83zm20.6-41v-15l-1.8 2-1.7-2-1.7 2-1.7-2-1.7 2-1.7-2-1.8 2-1.7-2-1.7 2-1.7-2-1.7 2-1.7-2v15h20.6zm29 16.8v-15l-1.6 2-1.7-2-1.7 2-1.8-2-1.7 2-1.7-2-1.7 2-1.7-2v15h13.7zm-65 0v-15l-1.8 2-1.7-2-1.7 2-1.7-2-1.7 2-1.7-2-1.8 2-1.7-2v15h13.7zm65.1 7.4v15l-1.7-2-1.7 2-1.7-2-1.8 2-1.7-2-1.7 2-1.7-2-1.7 2v-15h13.7zm-65.2 0v15l-1.7-2-1.7 2-1.7-2-1.7 2-1.7-2-1.7 2-1.8-2-1.7 2v-15h13.7z"/>
+      <path fill="#28ae66" d="M-62.4 154.8v9.3l1.8-1.9 1.7 2 1.7-2 1.7 2 1.7-2 1.7 2 1.8-2 1.7 2 1.7-2V138l-15.5 16.8zm-20.5 0v9.3l-1.8-1.9-1.7 2-1.7-2-1.7 2-1.7-2-1.7 2-1.7-2-1.7 2-1.8-2V138l15.5 16.8zm0-41v-9.3l-1.8 1.8-1.7-1.8-1.7 1.8-1.7-1.8-1.7 1.8-1.7-1.8-1.7 1.8-1.7-1.8-1.8 1.8v24.3l15.5-16.8zm20.5 0v-9.3l1.8 1.8 1.7-1.8 1.7 1.8 1.7-1.8 1.7 1.8 1.7-1.8 1.7 1.8 1.8-1.8 1.7 1.8v24.3l-15.5-16.8zm-49.7 35.4l-1.7-1.9-1.7 2-1.7-2-1.7 2-1.7-2-1.8 2-1.7-2-1.7 2v-30l1.7 2 1.7-2 1.8 2 1.7-2 1.7 2 1.7-2 1.7 2 1.7-2v11.3h-6.8l-3.5 3.7 3.5 3.7h6.8v11.2zm78.9 0l1.7-1.9 1.7 2 1.7-2 1.8 2 1.7-2 1.7 2 1.7-2 1.7 2v-30l-1.7 2-1.7-2-1.7 2-1.7-2-1.8 2-1.7-2-1.7 2-1.7-2v11.3h6.9l3.4 3.7-3.4 3.7h-6.9v11.2z"/>
+      <path fill="#fff" d="M-91.4 156s-1.4 1.4-1.4 2.2c0 .7 1.5 2.2 2.2 2.2.8 0 2.1-1.5 2.1-2.2s-1.4-2.2-1.4-2.2v-3s3 5.1 3 2.9c0-1.6-3-4.3-3-4.3h-1.5s-3 3.2-3 4.3c0 2.2 3-2.9 3-2.9v3z"/>
+      <path fill="#ca3745" d="M-73.5 161.7s-1.7 2-1.7 3 1.8 3.2 2.6 3.2c1 0 2.5-2.1 2.5-3.1s-1.7-3.1-1.7-3.1v-4.2s3 6.8 3 3.7c0-2-3-5.7-3-5.7h-1.7s-3.5 4.6-3 5.7c0 3.1 3-3.7 3-3.7v4.2z"/>
+      <ellipse cx="403.9" cy="391.5" fill="#28ae66" rx="3.5" ry="1.8" transform="matrix(.96774 0 0 1.0526 -482.4 -277.9)"/>
+      <ellipse cx="403.9" cy="391.5" fill="#28ae66" rx="3.5" ry="1.8" transform="matrix(.96774 0 0 1.0526 -463.5 -277.9)"/>
+      <ellipse cx="403.9" cy="391.5" fill="#28ae66" rx="3.5" ry="1.8" transform="matrix(.96774 0 0 1.0526 -444.7 -277.9)"/>
+      <path fill="#fff" d="M-91.7 112.8s-1.4-1.5-1.4-2.2c0-.7 1.5-2.3 2.1-2.3.8 0 2.1 1.5 2.1 2.2 0 .8-1.4 2.3-1.4 2.3v3s3.1-5.2 3.1-3c0 1.6-3 4.4-3 4.4h-1.5s-3.1-3.2-3.1-4.3c0-2.2 3 2.8 3 2.8v-3z"/>
+      <path fill="#ca3745" d="M-73.9 107s-1.7-2-1.7-3 1.9-3.1 2.6-3.1c1 0 2.6 2 2.6 3s-1.7 3.2-1.7 3.2v4s3-6.7 3-3.6c0 2-3 5.8-3 5.8H-74s-3.5-4.7-3-5.8c0-3 3 3.7 3 3.7V107z"/>
+      <path fill="#fff" d="M-54.9 156s-1.4 1.4-1.4 2.2c0 .7 1.5 2.2 2.2 2.2.8 0 2.1-1.5 2.1-2.2s-1.4-2.2-1.4-2.2v-3s3 5.1 3 2.9c0-1.6-3-4.3-3-4.3H-55s-3 3.2-3 4.3c0 2.2 3-2.9 3-2.9v3zm-.3-43.2s-1.4-1.5-1.4-2.3c0-.6 1.5-2.2 2.1-2.2.8 0 2.1 1.5 2.1 2.2 0 .8-1.4 2.3-1.4 2.3v3s3.1-5.2 3.1-3c0 1.6-3 4.4-3 4.4h-1.5s-3.1-3.2-3.1-4.3c0-2.2 3 2.8 3 2.8v-3z"/>
+      <path fill="#ca3745" d="M-106.3 145.6s-1.9 1.4-1.9 2c0 .7 2 2.2 2.9 2.1 1 0 2.8-1.3 2.8-2s-1.9-2.1-1.9-2.1v-2.8s3.4 4.5 3.4 2.5c0-1.4-3.4-3.9-3.4-3.9h-1.9s-3.9 3.2-3.3 3.9c0 2 3.3-2.5 3.3-2.5v2.8zm-.4-21.1s-1.9-1.4-1.9-2.1c0-.7 2-2.1 2.9-2 1 0 2.8 1.3 2.8 2s-1.9 2-1.9 2v2.8s3.4-4.5 3.4-2.4c0 1.3-3.4 3.8-3.4 3.8h-1.9s-3.9-3.1-3.3-3.8c0-2 3.3 2.4 3.3 2.4v-2.7zm66.3 20.6s-2 1.4-2 2.1c0 .7 2.1 2.1 3 2.1 1 0 2.8-1.4 2.8-2 0-.8-2-2.2-2-2.2v-2.7s3.4 4.5 3.4 2.4c0-1.3-3.3-3.8-3.3-3.8h-2s-3.8 3.1-3.3 3.8c0 2.1 3.4-2.4 3.4-2.4v2.8zm-.4-21s-2-1.4-2-2.1c0-.7 2.1-2.1 3-2.1 1 0 2.8 1.4 2.8 2 0 .8-2 2.1-2 2.1v2.8s3.4-4.5 3.4-2.5c0 1.4-3.3 3.9-3.3 3.9h-2s-3.8-3.1-3.3-3.8c0-2.1 3.4 2.4 3.4 2.4V124z"/>
+      <path fill="#fff" d="M-120.3 145.4c-.6-1.3-.4-1.9-.4-2.6 0-.7 1.7-2 2.3-2 .8 0 2.1 1.4 2.1 2.2 0 .7 0 1.3-.3 2.6l-.8-2.1c-1.1 3-1.2 3-1.8-.1l-1 2zm0-21.5c-.5 1.3-.4 1.9-.4 2.6 0 .7 1.7 2 2.4 2 .8 0 2.1-1.4 2.1-2.2 0-.7 0-1.3-.3-2.6l-.9 2.1c-1-3-1.1-3-1.8.1l-1-2zm92.5 21.2c-.6-1.3-.5-1.9-.5-2.6 0-.7 1.8-2 2.4-2 .8 0 2.1 1.5 2.1 2.2 0 .7 0 1.4-.3 2.6l-.9-2.1c-1 3-1.1 3.1-1.8 0l-1 1.9zm0-21.4c-.6 1.2-.4 1.8-.4 2.6 0 .6 1.7 2 2.3 2 .8 0 2.2-1.5 2.2-2.2 0-.8 0-1.4-.3-2.7l-1 2.2c-1-3.1-1-3.2-1.7 0l-1-2z"/>
+      <path fill="#ca3745" stroke="#000" stroke-width=".1" d="M115.2 177.2v-5.4h-16v-10.6H85v-3.5H72.6v-32H85v-3.5h14.2v-10.6h16v-5.3h21.2v5.3h16v10.6h14.1v3.6H179v31.9h-12.4v3.5h-14.1v10.6h-16v5.3h-21.2zm-1.8 1.7v-5.3h-16V163H83.3v-3.6H70.9V124h12.4v-3.5h14.1v-10.7h16v-5.3h24.8v5.3h16v10.7h14.1v3.5h12.4v35.4h-12.4v3.6h-14.2v10.6h-16v5.3h-24.7z" transform="matrix(1 0 0 .99999 -198.4 -7)"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tn.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tn.svg
new file mode 100644
index 0000000..d46a1cd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tn.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-tn" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M124 0h496v496H124z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-128) scale(1.0321)">
+    <path fill="#e70013" d="M0 0h744v496H0z"/>
+    <path fill="#fff" d="M497.8 247.8a125.1 125.1 0 11-250.2 0 125.1 125.1 0 01250.2 0z"/>
+    <path fill="#e70013" d="M372.7 330.8a83 83 0 01-83-83 83 83 0 0183-83c11.4 0 24.5 2.7 33.3 9.2-60.6 2.3-76 53.7-76 74.5s9.8 67 76 73.8a70.4 70.4 0 01-33.3 8.5z"/>
+    <path fill="#e70013" d="M445.8 282.7L408.1 269l-24.9 31.4 1.4-40-37.6-14 38.6-11.1 1.7-40 22.4 33.2 38.6-10.8-24.7 31.6z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/to.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/to.svg
new file mode 100644
index 0000000..201d6bc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/to.svg
@@ -0,0 +1,10 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-to" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#c10000" d="M0 0h512v512H0z"/>
+    <path fill="#fff" d="M0 0h218.3v175H0z"/>
+    <g fill="#c10000">
+      <path d="M89.8 27.3h34.8v121.9H89.8z"/>
+      <path d="M168.2 70.8v34.8H46.3V70.8z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tr.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tr.svg
new file mode 100644
index 0000000..861d4ea
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tr.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-tr" viewBox="0 0 512 512">
+  <g fill-rule="evenodd">
+    <path fill="#e30a17" d="M0 0h512v512H0z"/>
+    <path fill="#fff" d="M348.8 264c0 70.6-58.3 127.9-130.1 127.9s-130.1-57.3-130.1-128 58.2-127.8 130-127.8S348.9 193.3 348.9 264z"/>
+    <path fill="#e30a17" d="M355.3 264c0 56.5-46.6 102.3-104.1 102.3s-104-45.8-104-102.3 46.5-102.3 104-102.3 104 45.8 104 102.3z"/>
+    <path fill="#fff" d="M374.1 204.2l-1 47.3-44.2 12 43.5 15.5-1 43.3 28.3-33.8 42.9 14.8-24.8-36.3 30.2-36.1-46.4 12.8-27.5-39.5z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tt.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tt.svg
new file mode 100644
index 0000000..87e439a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tt.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-tt" viewBox="0 0 512 512">
+  <path fill="#fff" d="M0 0h512v512H0z" style="width:0"/>
+  <g fill-rule="evenodd">
+    <path fill="#e00000" d="M371 512L0 1v510.7l371 .3zM141 0l371 511V.2L141 0z"/>
+    <path d="M22.2.2h94.9l374.5 511.3h-97.9L22.2.2z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tv.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tv.svg
new file mode 100644
index 0000000..f30c8f3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tv.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-tv" viewBox="0 0 512 512">
+  <defs id="defs540">
+    <clipPath id="a">
+      <path id="path537" fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <path id="rect597" fill="#009fca" fill-opacity="1" stroke-width="4.9" d="M0 0h512v512H0z"/>
+  <path id="path572" fill="#fff40d" fill-rule="evenodd" stroke-width="1pt" d="M478 226.3l7.1 20.4-18.4-12.6-18.5 12.6 7.1-20.4-18.5-12.6h22.9l7-20.4 7 20.4h22.8zm-57.2 162.8l7 20.4-18.4-12.7-18.4 12.7 7-20.4-18.4-12.7h22.8l7-20.4 7 20.5h22.9zm57.3-36.9l7 20.4-18.4-12.6-18.5 12.6 7.1-20.4-18.5-12.6h22.9l7-20.4 7 20.4h22.8zm-246.2 118l7.1 20.5-18.4-12.7-18.5 12.7 7.1-20.4-18.5-12.6h22.8l7-20.4 7.1 20.4h22.8zm43.1-88.4l-7-20.4 18.4 12.6 18.4-12.6-7 20.4 18.4 12.6h-22.8l-7 20.4-7-20.4h-22.8zm67.3-93l-7.1-20.4 18.4 12.6 18.5-12.6-7 20.4 18.4 12.6h-22.8l-7 20.4-7-20.4h-22.9zm56.5-19.3l-7-20.4 18.4 12.6 18.4-12.6-7 20.4 18.4 12.6h-22.8l-7 20.4-7-20.4h-22.9zm-56.5 161l-7.1-20.4 18.4 12.6 18.5-12.6-7 20.4 18.4 12.6h-22.8l-7 20.4-7-20.4h-22.9zM275 446.9l-7-20.4 18.4 12.6 18.4-12.6-7 20.4 18.4 12.6h-22.8l-7 20.4-7-20.4h-22.8z" opacity="1" stop-opacity="1"/>
+  <g id="g947" transform="scale(.5)">
+    <path id="path925" fill="#012169" d="M0 0h512v512H0z"/>
+    <path id="path927" fill="#FFF" d="M512 0v64L322 256l190 187v69h-67L254 324 68 512H0v-68l186-187L0 74V0h62l192 188L440 0z"/>
+    <path id="path929" fill="#C8102E" d="M184 324l11 34L42 512H0v-3zm124-12l54 8 150 147v45zM512 0L320 196l-4-44L466 0zM0 1l193 189-59-8L0 49z"/>
+    <path id="path931" fill="#FFF" d="M176 0v512h160V0zM0 176v160h512V176z"/>
+    <path id="path933" fill="#C8102E" d="M0 208v96h512v-96zM208 0v512h96V0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tw.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tw.svg
new file mode 100644
index 0000000..5f284fc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tw.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-tw" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h496v496H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#a)" transform="scale(1.0321)">
+    <path fill="#fe0000" d="M0 0h744v496H0z"/>
+    <path fill="#000095" d="M0 0h373.7v248H0z"/>
+    <path fill="#fff" d="M273.3 173l-45.8-9.4 9.7 45.8-35-31.1-14.4 44.5-14.8-44.4-34.8 31.3 9.5-45.8-45.8 9.7 31-35-44.5-14.4 44.5-14.8-31.4-34.8 45.9 9.5-9.8-45.8 35 31 14.5-44.5 14.7 44.5 34.8-31.4-9.4 45.9L273 74l-31.1 35 44.5 14.4-44.4 14.8z"/>
+    <path fill="#000095" d="M231 169.5l-14.4 7.7-14.1 8.3-16.4-.6-16.4.2-14-8.6-14.2-8-7.7-14.5-8.4-14 .5-16.4-.1-16.4 8.7-13.8 8-14.3 14.5-7.7 14-8.3 16.5.5 16.4-.2 13.9 8.7 14.3 8 7.7 14.5 8.3 14-.5 16.4.2 16.3-8.7 14z"/>
+    <path fill="#fff" d="M237 124.3a50.3 50.3 0 11-100.5 0 50.3 50.3 0 01100.5 0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tz.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tz.svg
new file mode 100644
index 0000000..f993ff1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/tz.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-tz" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M102.9 0h496v496H103z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="translate(-106.2) scale(1.0321)">
+    <g fill-rule="evenodd" stroke-width="1pt">
+      <path fill="#09f" d="M0 0h744.1v496H0z"/>
+      <path fill="#090" d="M0 0h744.1L0 496V0z"/>
+      <path d="M0 496h165.4L744 103.4V0H578.7L0 392.7v103.4z"/>
+      <path fill="#ff0" d="M0 378L567 0h56L0 415.3v-37.2zm121.1 118l623-415.3V118L177 496h-55.9z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ua.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ua.svg
new file mode 100644
index 0000000..18ebe0d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ua.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ua" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#ffd500" d="M0 0h512v512H0z"/>
+    <path fill="#005bbb" d="M0 0h512v256H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ug.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ug.svg
new file mode 100644
index 0000000..d9be945
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ug.svg
@@ -0,0 +1,30 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ug" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M124 0h496v496H124z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="translate(-128) scale(1.0321)">
+    <path fill="#ffe700" fill-rule="evenodd" d="M0 330.7h744v82.7H0z"/>
+    <path fill-rule="evenodd" d="M0 248h744v82.7H0z"/>
+    <path fill="#de3908" fill-rule="evenodd" d="M0 165.4h744V248H0z"/>
+    <path fill="#ffe700" fill-rule="evenodd" d="M0 82.7h744v82.7H0z"/>
+    <path fill-rule="evenodd" d="M0 0h744v82.7H0z"/>
+    <path fill="#fffdff" fill-rule="evenodd" stroke="#000" stroke-width=".9" d="M449.3 248a77.2 77.2 0 11-154.5 0 77.2 77.2 0 01154.5 0z"/>
+    <path fill="#de3108" fill-rule="evenodd" stroke="#000" stroke-width=".9" d="M358.4 188.8l-5-9.2c2-2 5.2-3.4 10.4-3.4l-.5 10-4.9 2.6z"/>
+    <path fill="#ffe700" fill-rule="evenodd" stroke="#000" stroke-width=".9" d="M363.3 186.4l.6-10.2s10.4-.6 16 6.1l-5.5 8-11.2-4z"/>
+    <path fill="#de3108" fill-rule="evenodd" stroke="#000" stroke-width=".9" d="M374.6 190.2l5.1-8c3.4 3.6 4.8 6.2 5.4 10 0 .2-8.1 2-8.1 2l-2.4-4z"/>
+    <path fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width=".8" d="M361 320.9s9.6-11 28.2-8.7c-2.8-4.5-11.9-4-11.9-4s-2.8-21.4-.6-22.4 11.5 0 11.5 0c1.3 0 3.4-3.3 1.7-5.4s-6.6-10.2-4.6-11.8c2-1.6 13 .9 13 .9l-31-39.8s-3.2-15 3.2-22.1c7.6-6.4 6.8-13.2 6.6-13.1-1-7-11.6-12-18.8-5.6-4.2 5.1-1.4 9-1.4 9s-11 3-11.5 5c-.4 1.8 12.5-.4 12.5-.4l-1.2 8.8s-25.2 23-6 42.7c.3 0 .7-.9.7-.9s6.8 8.4 13.9 10.2c6.7 6.9 6 5.8 6 5.8s1.4 10.8.1 13a93.4 93.4 0 00-21.2-.2c-2.3.7-11.1.3-9 14.6l3.2-7.3s-.2 5.2 1.9 7c-.4-5.4 2-9.1 2-9.1s.4 6 1.8 6.8c1.3 1 1.3-9.6 8.6-8.8 7.3 1 12.6.7 12.6.7s2.4 20.6 1.6 22.6c-5.2-1.3-17.8.5-18.6 3.7 7.4-.5 10.8.4 10.8.4s-6 5.3-4.1 8.4z"/>
+    <path fill="#9ca69c" fill-rule="evenodd" stroke="#9ca69c" stroke-linecap="round" stroke-linejoin="round" stroke-width=".8" d="M364 208s-18.4 20.2-10.5 35.7c.5-2.2.3-3.5.5-3.4-.4-.3 2.3 1.8 2 1.4.2-1.1-.7-3.5-.7-3.5l2.4.6-1.4-2.7 3.5.5s-1.2-3.4-.8-3.4a94 94 0 012.9.2c-5.2-9.3-.3-17 2-25.3z"/>
+    <path fill="#9ca69c" fill-rule="evenodd" stroke="#9ca69c" stroke-width=".9" d="M370.3 190.8s1 7-2.8 9c-.6.4-3 1.2-2.7 2.6.5 1.9 1.5 1.5 3 1.2 4-.7 8.6-9.2 2.5-12.8z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M363.5 196.7a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0z"/>
+    <path fill="#de3108" fill-rule="evenodd" stroke="#000" stroke-width=".9" d="M357.6 202.5c-1 .8-6 6.1-1 8 5.2-1.4 3.7-2.3 4.9-3.5 0-2.3-2.6-3-3.9-4.5z"/>
+    <path fill="#9ca69c" fill-rule="evenodd" stroke="#9ca69c" stroke-linecap="round" stroke-linejoin="round" stroke-width=".8" d="M368.7 252.4c-.3 1.2-1.4 5.4.2 8.6 4.4-1.8 6.4-1.3 7.9-.3-3.6-3-5-4.1-8.1-8.3z"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width=".8" d="M376.3 272.4l.2 9.8s3.5.7 5 0c1.6-.6 0-6.8-5.2-9.8z"/>
+    <path fill="#9ca69c" fill-rule="evenodd" stroke="#000" stroke-width=".9" d="M401.2 273.6s-6.4-15.3-22.5-19.2-14.1-21-12.8-22.1c.7-1.5 1.2-3.8 5.9-1.6 4.7 2.2 26.1 13 29.2 13.5s.4 29.8.2 29.4z"/>
+    <path fill="#de3108" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width=".8" d="M385.8 254.4c-.3.1 21.6 12.9 15 23.9 6.3-4.1 4.2-11.4 4.2-11.4s5.1 13.3-7.3 19.8c1.4 1.2 2.2.9 2.2.9l-2 2.1s-1 1.6 7.3-2.4c-2.3 1.8-2.5 3.1-2.5 3.1s.7 1.8 6.1-3a30.1 30.1 0 00-5.4 7.2c12-1.1 37.8-39.7-8.1-51.1l2 2.2-11.5 8.7z"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width=".8" d="M386.7 250.6c3 2 4 2.8 4.4 3.8-2.7-.6-5.2-.4-5.2-.4s-5.8-5.6-6.9-6c-.8 0-5.4-3-5.4-3-2.3-1.1-4.4-9 4-6.7 8.8 4.1 10 4.4 10 4.4L398 246l6 6.7s-10.7-5.3-12-5.4c3 2.4 4.6 5.6 4.6 5.6-3.4-1-6.3-1.8-9.9-2.3z"/>
+    <path fill="none" stroke="#fff" stroke-linecap="round" stroke-width=".8" d="M345.3 203.3s10.2-2.4 11.4-2"/>
+    <path fill="#de3908" fill-rule="evenodd" d="M0 413.4h744v82.7H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/um.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/um.svg
new file mode 100644
index 0000000..25b08ce
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/um.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-um" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h130v130H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="scale(3.9385)">
+    <g stroke-width="1pt">
+      <path fill="#bd3d44" d="M0 0h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0z"/>
+      <path fill="#fff" d="M0 10h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0z"/>
+    </g>
+    <path fill="#192f5d" d="M0 0h98.8v70H0z"/>
+    <path fill="#fff" d="M8.2 3l1 2.8H12L9.7 7.5l.9 2.7-2.4-1.7L6 10.2l.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7L74 8.5l-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 7.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 24.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 21.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 38.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 35.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 52.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 49.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 66.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 63.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/un.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/un.svg
new file mode 100644
index 0000000..1d50ea9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/un.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-un" viewBox="0 0 512 512">
+  <path fill="#4b92db" fill-rule="evenodd" d="M0 0h512v512H0z"/>
+  <g transform="translate(-128.7) scale(.64)">
+    <path id="a" fill="#fff" d="M663.9 587a71 71 0 01-9.5 8.6c-21.2-22-46.2-46.2-69.9-46.2-14.7 0-25.2 11.2-37.6 19-17.1 11-40.6 17.2-60.7 9.1a66.2 66.2 0 01-29.2-20 63.6 63.6 0 0057.5 5c19.7-8.2 39.9-19.1 62.4-19.1 33.2 0 64.8 22.5 87 43.6zm-245.6-69c22 25 57.9 17 87.2 23.2 4.1 1 8 2.3 12.4 1.6-3.5-2.2-8.2-2.5-12.2-4-22.8-8.6-26.3-33-38.8-49.7 16 10.6 29.1 25 44 38.7a73.8 73.8 0 0036.7 16.2c-3.2 1.2-7.4 1-11 1.8-24 6-50.6 15.4-76.2 7a75.4 75.4 0 01-42-34.8zm-35.2-58c13.7 31.1 48.2 33.6 71 52.6a64 64 0 0013.5 9.2l.3-.2a99.5 99.5 0 01-15.1-16.5c-13.1-19-8.8-45-18.9-65.2a142 142 0 0123.1 34.9c8.5 20.2 11.4 43.3 30.5 58.7-20.7-6.8-44.5-5.5-63-17.6-19.6-12.8-37.7-33-41.4-55.8zm-14.7-62.8c2 27.4 31 42 45 64.5 3 4.8 6 9.8 10.3 13.6-.7-2.9-3-5.5-4.4-8.3a62.8 62.8 0 01-5.3-32.3c1.3-14 7.1-27 4.9-41.7 12 25.9 8.1 58.2 15 86.1 1.6 6.2 5.3 11.6 7.6 17.5-11.7-9-27.1-17-40-27a85.5 85.5 0 01-29-36.5 84.9 84.9 0 01-4.1-35.9zm.8-50.4c1.4-6.1 2.5-12.4 5.1-18-5 25.8 12.2 44.4 18 66.8 2.2 8.4 3 17.3 6.4 25.2.3.1.6-.2.8-.4-8.5-23.8 4-45.8 16-64.5a55 55 0 006.2-16.5c1.3 10.8-1 23.2-3 34.3-2.5 14.3-7.4 27.7-11.3 41.5a65 65 0 00-.5 27.4l-1.3-1c-9-16.6-26.8-29.6-32.1-47.8a102.6 102.6 0 01-4.3-47zm9.5-27.8a79 79 0 0119-50c.3-.2.6-.5 1-.4-12.6 19-1.1 43.2-2.8 64.9l-1.6 22.2c.2.2.2.9.8.6.8-2.5 1-5.1 1.4-7.7 3-18 18.8-30.4 32.1-43a28.5 28.5 0 007-10.4c-1.1 9-3.6 18.1-7.6 26.2-10.3 20.8-30.1 37.6-33.7 61.3-1.7-22.7-15.6-39.6-15.6-63.7zm33-65.9a46 46 0 0122-14.6c-16.5 11.3-15.6 31.4-20.6 48.2-1.8 6.1-4.5 11.9-6 18.2l.5.4a54 54 0 0113.5-19.9c11.5-10.8 28.8-17.4 34.5-33.3-.3 22.1-19.1 38.9-36.3 51.9a62.6 62.6 0 00-18.2 21.8c.6-6 1-11.2.4-17.1-1.8-19.3-3-41 10.3-55.6zm66.5-37.1c-12.1 10.7-20.2 24.4-29.6 36.7-7.7 10.3-18.4 16.6-27.5 25.2 5-10.2 5.8-22 12.1-31.9 10.7-17 28.5-23.6 45-30z"/>
+    <use width="100%" height="100%" transform="matrix(-1 0 0 1 1202.2 0)" xlink:href="#a"/>
+  </g>
+  <path fill="#fff" d="M351 279.5l-2.4-1.3a103.4 103.4 0 01-19 27.1l-13.4-13.4A83.9 83.9 0 00332 269l-2.3-1.2a81.6 81.6 0 01-15.3 22.2l-12.2-12.2a64 64 0 0012.4-18.3l-2.3-1.2a61.8 61.8 0 01-11.9 17.7L287 262.7a42.4 42.4 0 008.6-13.5l-2.3-1.2a40.1 40.1 0 01-8.1 12.9L273 248.7a22.6 22.6 0 005.8-14H296a39.8 39.8 0 01-2.7 13.3l2.3 1.2a42.5 42.5 0 003-14.4h19a61.2 61.2 0 01-5.3 23.6l2.3 1.2a64 64 0 005.5-24.9h17.2a80.8 80.8 0 01-7.6 33.2l2.3 1.2c5-10.6 7.7-22.3 7.9-34.4h19a102.3 102.3 0 01-10.3 43.5l2.3 1.3a105 105 0 0010.6-46c0-13.8-2.7-27.2-7.7-39.6l-2.3 1c4.7 11.7 7.2 24.3 7.4 37.3h-19a83.7 83.7 0 00-6-29.7l-2.3 1a81.1 81.1 0 015.7 28.7h-17.2a64 64 0 00-4.3-22l-2.3 1a61.5 61.5 0 014 21h-19a42.5 42.5 0 00-2.5-13.4l-2.4 1a40 40 0 012.4 12.4h-17.2a22.6 22.6 0 00-5.8-14l12.2-12.1a39.8 39.8 0 018.5 13.7l2.3-1a42.4 42.4 0 00-9-14.5l13.4-13.5a61.3 61.3 0 0113 20.5l2.4-1a63.9 63.9 0 00-13.6-21.3l12.2-12.1a81.1 81.1 0 0117.2 26.6l2.4-1a83.7 83.7 0 00-17.8-27.4l13.5-13.5a102.6 102.6 0 0121.8 33.3l2.3-1a105.2 105.2 0 00-23.2-35 105.2 105.2 0 00-35.2-23.3l-1 2.4a102.6 102.6 0 0133.5 21.8l-13.5 13.5a83.8 83.8 0 00-26.9-17.6l-1 2.4a81.1 81.1 0 0126.1 17l-12.2 12.2a64 64 0 00-20.1-13.2l-1 2.4a61.4 61.4 0 0119.3 12.6l-13.4 13.4a42.5 42.5 0 00-12.8-8.3l-1 2.4a40 40 0 0112 7.7l-12.2 12.2a22.6 22.6 0 00-14-5.8v-17.2a39.9 39.9 0 0114.3 3l1-2.3a42.5 42.5 0 00-15.2-3.3v-19a61.4 61.4 0 0122 4.6l1-2.4a64 64 0 00-23-4.7V152a81.2 81.2 0 0129.3 6l1-2.4a83.7 83.7 0 00-30.3-6.1v-19c13 .1 25.5 2.7 37.2 7.4l1-2.4A105.3 105.3 0 00256 128a104.8 104.8 0 00-47.2 11.2l1.2 2.2a102.4 102.4 0 0144.7-10.8v19a83.3 83.3 0 00-35.9 8.7l1.2 2.2a80.8 80.8 0 0134.7-8.4v17.3a63.7 63.7 0 00-26.7 6.4l1.1 2.2a61.3 61.3 0 0125.6-6.1v19a42.3 42.3 0 00-16.7 4l1.1 2.2a39.9 39.9 0 0115.6-3.7v17.3c-2.7.1-5.2.8-7.6 1.8l1.2 2.2a20.2 20.2 0 017.7-1.5 20.2 20.2 0 0114.3 6 20.2 20.2 0 016 14.3c0 11.1-9.1 20.3-20.3 20.3a20.1 20.1 0 01-14.4-6 20.2 20.2 0 01-5.9-14.3c0-5.5 2.1-10.6 6-14.4a20.3 20.3 0 016.6-4.4l-1.2-2.3a22.8 22.8 0 00-6.3 4l-12.2-12.1A40 40 0 01239 197l-1-2a42.7 42.7 0 00-11.2 7.6L213.3 189a61.6 61.6 0 0115.8-11l-1.1-2.2a64.4 64.4 0 00-16.4 11.5L199.4 175a81.3 81.3 0 0120.6-14.6l-1.2-2.2a84.3 84.3 0 00-21.2 15l-13.5-13.5a103 103 0 0125.9-18.4l-1.2-2.2a106.2 106.2 0 00-47.4 47.7l2.2 1.2a103 103 0 0118.7-26.5l13.5 13.5a84.2 84.2 0 00-15.4 22.1l2.2 1.2a81.4 81.4 0 0115-21.5l12.2 12.2a64.4 64.4 0 00-12 17.5l2.2 1.2a61.5 61.5 0 0111.5-17l13.5 13.5a42.7 42.7 0 00-8.2 12.6l2.2 1.2a39.9 39.9 0 017.8-12l12.2 12.2a22.7 22.7 0 00-5.8 13.9H216a40 40 0 013-14.1l-2.2-1.2a42.3 42.3 0 00-3.4 15.3h-19a61.3 61.3 0 015.6-24.4l-2.2-1.2a63.7 63.7 0 00-6 25.6h-17.2a81 81 0 018-33.8l-2.2-1.2a83.3 83.3 0 00-8.3 35h-19a102.4 102.4 0 0110.5-44l-2.2-1.3a104.8 104.8 0 00-10.9 46.6 105.8 105.8 0 004.3 29.7l2.5-.6a103.2 103.2 0 01-4.2-27.9h19a84 84 0 003.6 23.2l2.5-.6a81.5 81.5 0 01-3.5-22.6h17.2a64.3 64.3 0 003 18.4l2.5-.6a61.7 61.7 0 01-3-17.8h19a42.6 42.6 0 002.5 13.1l2.5-.6a40 40 0 01-2.4-12.5h17.2a22.6 22.6 0 005.8 14l-12.2 12.2a39.9 39.9 0 01-8.4-13.7l-2.5.6a42.4 42.4 0 009.1 14.9L211.6 276a61.3 61.3 0 01-14.2-23.6l-2.5.6a63.7 63.7 0 0014.9 24.8L197.6 290a80.9 80.9 0 01-19.4-32.8l-2.5.6a83.5 83.5 0 0020 34l-13.3 13.4a102.3 102.3 0 01-25.1-42.7l-2.5.6a104.9 104.9 0 0026.6 44.9c8.6 8.6 18.5 15.5 29.1 20.6l1.3-2.2A102.9 102.9 0 01184 307l13.5-13.4a83.9 83.9 0 0023.6 16.1l1.2-2.2a81.3 81.3 0 01-23-15.7l12.2-12.2a64 64 0 0019.3 12.8l1.3-2.2a61.4 61.4 0 01-18.8-12.4l13.4-13.4a42.4 42.4 0 0014.8 9l1.3-2.2a39.9 39.9 0 01-14.3-8.6l12.2-12.2a22.6 22.6 0 0014 5.8v17.2a40 40 0 01-12-2.2l-1.2 2.3a42.5 42.5 0 0013.1 2.4v19a61.4 61.4 0 01-22.5-4.7l-1.3 2.2a63.9 63.9 0 0023.8 5.1v17.2a81 81 0 01-32.3-7.2l-1.2 2.2a83.6 83.6 0 0033.5 7.6v19c-15-.2-29.6-3.6-43-10l-1.2 2.3A105.1 105.1 0 00256 339c16.8 0 33-4 47.5-11.3l-1.2-2.4a102.2 102.2 0 01-45 11v-19a83.5 83.5 0 0036.3-8.8l-1.2-2.3a80.8 80.8 0 01-35.1 8.6v-17.2a64 64 0 0027.3-6.7l-1.2-2.3a61.2 61.2 0 01-26.1 6.5v-19a42.3 42.3 0 0017.4-4.3l-1.2-2.3a39.8 39.8 0 01-16.2 4v-17.2a22.6 22.6 0 0013.9-5.8l12.2 12.2a40.2 40.2 0 01-9.9 6.8l1.2 2.3a42.6 42.6 0 0010.5-7.3l13.4 13.4a61.7 61.7 0 01-15.2 10.7l1.2 2.3a64.2 64.2 0 0015.8-11.2l12.2 12.2a81.6 81.6 0 01-20.2 14.3l1.2 2.3a83.9 83.9 0 0020.8-14.8l13.4 13.4a103.3 103.3 0 01-25.5 18.2l1.2 2.4a105.7 105.7 0 0027-19.6 105.6 105.6 0 0020.4-28.6z"/>
+  <path fill="#fff" d="M261.4 209v.9h.7v-.8zm-1-1h1v.7h-1zm-.7 0v-.7l-.7-.1v.6zm-1.4-.4l-.7-.1v-.7l.8.1zm-6.1-.8h.8v.6h-.8zM251 208v-.6l-.7-.1v.6zm-.7 1l-.9-.3.2-.6.8.2zm-1.5.7l-.1-.6.6-.1.1.6zM165 275h-.5v1h.9v1.5h.6l-.1-1.7-.9-.3zm8.4 9.4l-.4.7-1.2-1-.8-1.2-.4-1-.8-2 1.6.8.5 1.5.8.6zM195 313l-.8-1.3 1.3.2 1.3 1.2.6 1.4-.8.4-.4-.6-1-.3zm57.8-97h-1.2l-.2-2.4.7-.5V212h-3.8v-1l.5-.4-.9-.3-.6.9-.2 1-1.1.2v.5h-.8v1.4l-3 2.5-5.9-.2c-.4 1-1.5-.1-1.5-.1-.2-.7-1.7 0-1.7 0 0 1.1-2-.6-2-.6l-3.7-2.7c-2.1-2-5.3.6-5.4 1.1 0 1.5-2.5.3-2.5.3s-2.1-.6-2.4.2c-.4.9-1.7.7-1.7.7l-.3.4-1 .2-.2.7-1.3.2 3.2-.1c.8-.1-.3 1.8-.9 1.7l-1.5.1-.5.6h-1.4l-.6.8h-2s-1.2.9-1.1 1.2c.1.3-.2 1.3-.5 1.3s-1 1-.8 1.3c.2.3-.6 1.4-.6 1.4l-.2 1-.7.3v3l-1.2.8v1.3l-2 2 .3 1.8-1.6 1.7.2 1.7-1 .3-.2.8-.4 2.3h1c.6-.1.5 1.5 0 1.7-.4.2-1.6.6-1 1 .7.5-1.6.4-1.6-.3 0-.6-1.3-1.1-1.6-1-.3.3-.9-.9-.9-.9-1.1-1.2-4.7.1-4.7.1l-.6 1.7c-1.2.3-1.9 2.2-1.9 2.2-1 .3-1.7 1.5-1.4 1.8.3.4-.5.5-.5.5v2.3l-.5.8v2.6c.7 0 .6 1.2.6 1.2-1 0-.9 1.5-.9 1.5l-2.2.7-.4.7-2.8-.1-.7.7-.8-.7h-5.3l-.2-.6-1-.2-.2-1.2-1.6.1-.3.7h-1.7c.1 1.2-1.7 2.8-2 2.4-.1-.5-1.3-1.6-.8-1.9l2-.4v-.8h-4l-.4.6H161v1.8l-.7.2c-.6.4 0 1.5 0 1.5.8.8 0 2 0 2-.7.6.5 1.8.5 1.8.8.2-.5.9-.5.9.2 1 .8 1.4.8 1.4-.6 1 .4 1.6.4 1.6l.1 1.8.8.5v1.2l.4.7h1.7l-.1-2.7c-1.5-1.7 1.3-2.1 1.4-1.5 0 .7 1.3 1 1.3 1 .2 1.6 2 2.6 2.5 1 .5-1.7 1-.7 1.3 0 .3.8 2.3 2.7 2.3 2.7h1.6l.2 1.5c1.8-.1 2.4 0 3.1 2.6a4.7 4.7 0 002.8 3h1.5c0-1.3 1.5.2 1.5.9 0 .6 2.8 3 2.8 3l3 .7 2.6 2.2 2-.2h.9c.5-1.9 3 0 3.3.7.2.7 1.9 1.8 2 1.2.3-.5 1.5-.2 1.7 1.4.2 1.6 1 1.3 1 1.3h6l2.1-2h5.4c2.8-.1 1.1-4 .6-4-1-.7.3-3.8.3-3.8l-7.8-7.2c-1.8 0-.2-2.7-.2-2.7 1.4-.8-.3-2.2-.3-2.2.2-1.3-.7-2.8-.7-2.8-2-1.3-1.4-3.8-1.4-3.8v-1.7c-1.6-1.5.6-1.8.6-1.8.8-1.3-.5-2.2-.5-2.2l-.1-1.4-1.7-.2-.2-5.1-3.9-5.5c-.7-.2-.2-1.5-.2-1.5 1-.6-.2-1.9-.2-1.9l-.1-2.3 2.2-.3.6-.8h1v-2.8c.4-1.4 1.7-.7 1.7-.7l1.5.1.9-1.6.2-1.3h-1.2c-1.3-.9-.6-3.7-.6-3.7 2-3 4.3-1.3 4.3-1.3h1.5c2.3 1.4.2 4.3.2 4.3-.4.6-.2 2.7-.2 2.7l.6 3.4-1.4 1.2c-1.2.6-1.2 2.2 0 2.5 1 0 .6 2.1-.7.7-1.9 0 1 1.8.2 1.3 2 1 1.5-.8 1.5-.8l2.6-2c1-.8 2.6 1.5 2.6 1.9 0 .3 4.3 0 4.3 0 1.2.8 1.6 2.8 1.6 2.8 1.2-1.5 3.6-.1 1.8.7 1.7 1.1 1.7 2 1.7 2 1.4-.4 1.4.7 1.4 1l.4-1.6c-1.6-1.2 2.1-1.6 1 .6l-.6 1 1.1.8.1 2.5c2.4-.2 1.7-3.1 1.7-3.1l1-.3c0-1 .8-.4.8-.4-.7-3.7 1.7-4.3 1.7-4.3 1.4-.3 1.5-3.3 1.5-3.3-1-.4-.4-1.9.7-.6 1 1.3-.7-2.6-.7-2.6l-.8-.7-1.2-.2-.1-1.1h-2l-.2 1.5-.8.2-.2-.4-.3 1.1h-2v-1.3l1.1-.3.5-.6.3-1.8h1.4l1.8-.5c0-1.8 1-1.4 1-1.4l.7.5 1 .8v.6l-.6.4-.1.8.3 1.2h.9c.3-1.7 2.5-1.7 3.2-.6l.6-1.5c-1.5-.8 0-2 .4-1.4.4.5 1.4-1.4 1.4-1.4s.7 1 0-.4c-.8-1.3.5-2 .5-2-.2-1.2 1.4-1 1.4-1l.1-1.7-1.5-.1c-.3 1.5-1.6.2-1-.1s1.3-1 1.3-1v-1l.7-.3v-1h1.7l1.4-.7.3-.6h1.5l2.1-2-.2-.9c-1.3 0 0-1 0-1l.2-1.6z"/>
+  <path fill="#fff" d="M209.8 237.4l-1.9-.2.1.8h.6c.8 1.5 0 5.1 0 5.1s-1.2.1-1.4-.5c-.2-.7-.8 1.4-.3 1.7.4.3 1.9 0 2 1.2 0 1.2 1-.7 1-.7v-7.4z"/>
+  <path fill="#fff" d="M210.3 249.5l.2-1-.8-.3.1-1.6.7-.1v-.8l-1.5 1.1-1-.6v2.6l1.6 2.2zm.4 2.8l-.8.1v.9h.8zm-1 5.5l-.9.1v.8l1-.1zm1.3-2.6c.2 0 .4-.1.4-.4 0-.3-.2-.5-.4-.5s-.5.2-.5.5c0 .2.2.4.5.4z"/>
+  <circle cx="211.7" cy="257.1" r=".5" fill="#fff"/>
+  <circle cx="211.7" cy="244.7" r=".5" fill="#fff"/>
+  <path fill="#fff" d="M241.5 241.4l.3-1 .6-.4v-1l.5-.8.7-.8.2-.9 1-.6 1.3-.2.5-.7.3-1.3v-1l.5-.6 1.3-.5v-2h-.7v-.8l-1.2-.1-.3.5h-.5l-.1.9h.6l.1.6-.4.4-.2.6-.8.2-2 1.8v.9l-.6.8-.6 1.6h-2.3l-.4 2 .3 1.6zm9.4-5.3v-1.5l-.2-1.4-1.6-.8-1.2 1.1-.2 1.5v1l-1 .2-.3 3-.8.3v1l-1 .4-1.3.3-.2 1.4-.8.5-.4 1.3-.6 3.2s1 1.8 1.5 1a2 2 0 011.4-1l.3-.8 2.9.1c.2-1.2 1.6-.7 1.6-.2s1 .1 1 .1l.8-1.2h1.2v-1.3l.6-.3v-2c1.7-.5 1.5-2.1 1.5-2.1l.4-.5-.2-.8c-.9-.3-.4-1 .1-.9.5.3-.7-1-.7-1-.7.6-1.2-.6-1.2-.6h-1.6zm1.7 13c-.1 1.4-1.7 1.8-1.7 1.8l-1.2-.3-.6-.6-.1-1.5h1l.1.6h2.5zm5.7-6.8c.3 1 .2-1.5.7-1.4.4 0 0-1.5 0-1.5l-1.8 1.4c1 0 1 1 1.1 1.5zm5.7-5.7c.4 1 .3 2.4 1.9 3.5.5.4-.3 1-.9.8-.5-.4-2-2.7-2-2.7v-1.4c.3-.9.8-.6 1-.1zm1.4 32.6l-.7-.3-.7.6.3.3.3.5zm-4-1.5v1.4m16.2-3.5l-.4-.5-.8.5.3.6zm29.9 23.1l1 .4v1.9c1.3 1.3 5.5.2 5.5-.1l-.2-4-.6-.6v-2.7c.4-1.4-2-3.4-2.3-3-.2.4-1.6.1-1.6.5 0 .5-.9 2.6-.4 3.4.4.7-.3.7-.5 1.5 0 .8-1.1 2-1 2.7zm-2.4-4.3c-.2.8-.9 1.3-1.3 1-.5-.4.5.5.7 1a.6.6 0 001 0c.3-.5.2-1.5.4-2 .2-.3-.6-.4-.8 0zm-4.9-19.8h.7v2h-.7zm11-20.8c-.5-.6 2.1-1.7 2.6-.4.4 1.3 0 1-.5 1-.4-.2-1.5.2-2-.6zm2.2-13.8l1.2.2v-.7l-1-.2zm-2.8 1.4l.6-.3-.2-.5-.2-.3-.3.1-.8.5-.7-.5-.3.6.9.5.1.1h.2l.6-.4zm4-26.5h-1.7s.5.2-1-1.2-2.4.3-2.4.3l-1.7.3v1.7l-.8.3v1h1.2s0 1.3.4.7 3 .1 2.7 1.4c0 .6 2.7 2 2.4 3.7 1.3.2 1 1.6 1 1.6l1.8.3.6-1.1h.5v-.6l-1.2-.3-.2-3.4-.7-.6.2-.8-.9-.4.5-1.4-.8-1.5zm4.6 11h-.9l-1.9.2-1 2s.5.4 1 1.2c.3.7.6 5.2-.7 6-1.3.7 0 .2 0 .2l-.1 2.4c.3 1 .8.6 1.1 0 .4-.5.7-.6 1.1-1.2a5.7 5.7 0 001.2-2.2c0-.8.6-2 .3-2.3-.3-.3.3-1.8.3-1.8s.4-1 0-1.8.1-1.8.4-2.2l-.8-.5zm1.3 4.4v-.8h.7v1zm0 3l-.6-.3.3-.6.6.3zm-1-8.6l-.4-1s0-.8.2-1.2c.2-.5-.4-.9-.8-1-.3-.1-.2-1-.3-1.4 0-.4-.8-.8-.8-.8l-.2-1.9c0-.3-1-.8-.7-1l.9-1c.3-.3-.3-1.8.2-1.5.5.4.5 1 .7 1.3.2.5 0 2 .5 2.3.5.3-.1 1.4.7 1.4.9 0 .3 2 .3 2s-.2 1.6.3 1.7c.6 0 .3 2.7.3 2.7l-.9-.6zm-6.9-17.5c.3.5 1 .8 1 1.2 0 .5-.3.8.4.9.6.1 1-.1 1.3.4a3 3 0 010 1.9c0 .4.2 1 .7 1 .5 0 .6.2.6.5s.7-1.2.7-1.2c-.6-.4-1-1.4-1-1.4l-.5-1.7c0-.3-.7-.5-1-.6-.4 0-1-1-1-1h-1.2zm1-1a3 3 0 00-1-.9c-.4-.2-.7-.4-1.2-.4a.7.7 0 01-.6-1c.2-.5-.3-.8-.3-1.2 0-.4.3-.4.8 0 .6.2.5.3.9.9.4.5.6 1 1 1 .5-.2.8 1 1.2.6.4-.3.3.8.3.8l-1 .3zm-12.4 12.3c.6.6-3.2.4-3.2 0s.4-2 1.3-1.7c1 .4 1-1.9 1-1.9s-.8.1 0-.3c.7-.4 0-1-.4-1.4l-.6-.9h1.5c.6-.4.8-2.5.8-2.5 1.3.5 2-.4 2-.4s.2.7.6 1.2c.4.5-1 .8-.5 1 .5.4.7 1.4.5 1.7-.2.3-1.4 0-1.4-.3 0-.5-.4.5 0 1 .4.6-.5 1.4-.7 1.4-.2 0-1.6.2-.5.8 1.2.7 2.5.3 2.5.3s1 0 1.3.5c.3.5-.1.6-.7.6l-3-.2s-.8.8-.5 1zm-6.8 1c.5-.2 1.8-.3 2 0 .2.4-.7.8-.7.8l-1.3.2c-.4-.5-.5-1 0-1zm13.7-9.1c.9-.5 2.7-.5 2.6-1.1-.1-.7 1-.9 1-.9l.4 1.3 1 .7v1.2s.4-.2-.8 0c-1.2.4-.4 1-.4 1h-2.6l-.3-1-.9-1.2zm-4.1-5.9c.6 0-.2 2.5 1.5 2.3 1.7-.2 0 .8 1.4.9 1.2 0 1-1 1.3-1.8.5-.7.3-1.1-.5-1.4-.7-.2-.7-.2-1-1-.2-.9-1-1.1-1-1.1l-.3-1.3-1.4.9-1.4 1.8c0 1.4.7.7 1.4.7zm2.8 9.2l.3-.7.6.3-.3.7zm-1.1-1h.6v.7h-.6zm.5-14.4l.1 1h-.6l-.1-1zm-1.8 10h.7v.6h-.7zm-1.7 0v-.6l1-.1.1.6zm-8.7 10.4l-.6-.3.3-.7.6.2zm-3.4-2v-.6l1-.1v.6zm-20.8 0v.6l2.4-.1v-.7zm-1.5.8l-.2-1 .6-.1.2 1zm-.5.6l-.2-.6h.3l.2.5zm5.3-1.8v.8h1s.6.5.6.8.8.7 1.2.7c.4 0 1.6-.9 1.6-.9s.5-1.5 0-1.4c-.3.1-1.2.8-1.3.1 0-.6-1.4-.3-1.4-.3l-1.7.2zm5.3-1.2c0 .4-.2.8.5.9.6 0 1.8-.4 1.9.2 0 .7 0 1 1 1.4a5 5 0 002 .4l2-.2s1.5.3 1.8.6c1.2 1.2 2 1.5 2.2 1 .4-.6 0-1.8-.2-2.2 0-.4-1.6-2.5-2.1-2-.5.4-.6 0-1.6.3s-3 0-3-.4c-.2-.4-1.7-.6-1.7-1 0-.5-1-1-1-.4.2.7-.7 1-1 .8-.1-.2-.8.6-.8.6zm24.5-13.8l.8-2.4c-1.1-.2-.9-1.4-.9-1.4 0-1-1.6-2-2.1-1.7-.5.3-.3-2.3-.3-2.3s1-.6 1.4-.3c.4.3-3.7-5.4-4.5-4.9-.9.6-2.8-.5-2.7-1.5.1-1-3.8-4.2-3.8-4.2s-1.3-.8-1.5-.2c-.2.6-.6 1 0 1.4.6.3.5-.5 1.3.2.7.8 2.1 1.7 1.6 2.4-.6.6-1.2.9-1.2.9l.8.8h1.1l.2 1.9s1.3.6 1.6 1.4c.4.7.4 1.2 0 1.6-.3.4-1 1.2-.8 2 0 .7 1 1 1 1l.8.1.6.3v1.4c.9-.2 2.3 1 2.2 1.8-.1.7.2.3 1.2 1 1 .8.8 1 1.5 1.5.8.5 1.4.2 1.7-.8z"/>
+  <path fill="#fff" d="M285.4 176.6c-.1-.4-.4-2 .3-1.8.6 0 .2 0 1 .3.7.3.8-.5.8-.5h1.2l1.5 1.2-.3 1h-1c-.6-.8-1.6-.5-1.4.3.2.7-.5 2.1-1 2.2-.4.1-1.8.1-1.7-.5l.6-2.2zm-.9-2.9v-.9s0-.8-.6-.8-1.5-.7-1.3-1.1c.2-.4-1.8-.9-1.8-.9s-1.8-1.7-1.2-1.5c.7.2.3-.7.3-.7s-1.2.2-1.6 0c-.3 0-.2-1-.2-1s-1.3-.3-1.3 0 .5.3.7 1c.2.6 0 1.7 1 2 1 .1 1.2.3 1.3.8.1.4 1.3.5 1.3.5l.9.4 2.5 2.2zm-11.8-11.9l-.8-.2v1h1.1zm0-3.6c-1.1-.9 1.5.6 1.5.6.8 0 1.4.7 1.4 1 0 .3 1.1.2 1.1.2l.2-.8-.9-1-.7-.6s-1.2 0-1.2-.4c0-.3-1 1.3-1.4 1zm19.6.6c-.3 1-.5 2.3-1 2.3s-.3 1.4-.3 1.4h1.8c.4.2.4 1.3.4 1.3 1.6-.1 2.3 2 2 2.6-.1.5.7.5.7.5s0 1.7-.2 2.2c-.2.4 1.4.7 1.8 1.4.4.6-.2 2.8-.5 2.9-.4 0 .8.4.7 1-.1.5.3 0 .4.8l.4 2.7 1.4.1c.3-1.4 3-1.4 3.4-1.3 1.9.7 3.2 3.5 3.2 4.1 0 .7-1.1.8-1.1.8l.2 3.1c1.8.6 3.3 3.2 3 3.6-.2.4 1.3.3 1.3.3.2-2 2-1.3 2.2-.6 0 .6.4 2 .4 2l.5 1 .8.7h1.1l.3.6 1.4.2s1.2 1.3 1.3 1.6c.1.3 1.7.2 2.1.3.5.1 1.1.5 1.2 1 .1.6.8 1.4.8 1.4s1.2.3 1.3.8l.7 1.4 1 .8.1 1 1.2.1.3 1.3h2l1-.8c1.4-.8 2.4-1.8 2.5-2.2 0-.4.3-2 1.3-1.7 1.1.3.4-2.4.4-2.4s-1.5-1-1.4-1.6c0-.6-1.5-1.6-1.4-2 .1-.5-1.4-1.4-1.3-1.8.1-.4-.7-1.6-.7-1.6l-1.6-1.5-.2-1-1.3-.1-2.6-3.1.1-1h-.7v-1.2l-.7-.4-1.2-.1-2.4-2.6-.2-1.2h-1.1l.2-2.3c.7-1 .3-2.8.3-2.8s-1.5.8-2.2.4c-.8-.3.3-1 .3-1v-1l-.7-.6s-1.8.3-1.9 0l-.4-1.8-.1-1.8-.8-.4v-.6h-1.2v-1.2l-.7-.2-.6-.3-.1-1.3-2.4-.1-.7-1.1-.9-1.3-2.6-.2-.7-.7-1-.2-.8-.3-.3.5-2 .1-.1.7c-1 .5-5.3 0-5.4.4zm11.1-2.8c-.1-.8 2.2-1.6 2.7-1 .5.7 2 .8 2.2 4 .1 1.2-1.9-1.2-1.9-1.2l-1.6-.5c-.8-.2-1.3-.8-1.4-1.3zm-31.1 1.3l-.6-.2.4-1 .6.3zm-5.6-10.6l-1.3-1.4v-1.2l-.5-.4-.4-1.5-1.4-.4-1.4.5-1.4 1-1.7.2-.8 1 3.4.3.6 1 2.5.3 1.6 1.6c1.4.4 1.7-.2.8-1zm-.2-5.3c-.2-1-1.6 1.2-.2 1.6 1.4.5 2.8 0 2.8 0l.3-.6 5.3.1.7-1s1.2-.5 1.8-.3c.5.2 0-1.5-.5-1.3-.5.2-1.6.1-1.6.1h-1.9c0-.7-1.8-.4-1.9 0 0 .4-.7.6-.7.6l-2.5.2c-.2.6-1.5 1-1.6.6zM256 159.6c1.6.6 2.2.2 2.3-.3.1-.4.2-.5.9-.6.6-.1-.1-1.4-.7-1.3-.7.1-1.3-.2-1.4-.8-.1-.5-1.2-1.9-1.3-.8-.1 1-.8 1-.7 1.8.2.8.5 2 .9 2zm-12.2 1.3c-.1-.4 2.1-.5 2.4-.2.3.4.1 1 1 1s.6.6.5.9c-.1.3-1.2.2-1.3-.1 0-.4-1.7-.5-1.7-.5s-.8-.6-1-1.1zm35.3-22.5l-.5-.6-.5.5.8.8.2.2.2-.2 1-.9-.3-.5zm-5.7-3l-.3.5.8.5.2.1h.2l1.1-.8-.3-.6-1 .7zm-2.9 22.5h-1l-.1.6h.9l.7 1.1.5-.3-.8-1.2v-.1zm-35 30.2v1.2h1.7c.6 0-.6-.8-.6-.8s-1.2.1-1.1-.4zm2 0l.4-.5.6.5-.4.5zm-19.4-20.2l.5-.5.6.7-.4.5zM248 306.3l-.3.6.6.4-.2.2.5.4.5-.5.3-.3-.4-.2zm-7.6-7.7l-.7.5-.3.3.4.3.7.5.4-.5-.4-.3.3-.3zm79.5-20c-.1-.5-.8-.8-.8-.8l-.2.6.2.1v.8l.4.4c.3-.4.5-.7.4-1zm0-2.1v-1l1 .2v.9zm25.6-8.3c.5-.3 1-.9 1 .3 0 1.3-.6.9-1 1.3s-.6-1.2 0-1.7zm5.4-4.6v-.2a1.8 1.8 0 00-.1-.6l-.6.2v.5c.1.2.1.4.3.5l.4.1v-.6zm-1.4.5l.4 1.3.6-.2a12.7 12.7 0 01-.4-1.3l-.6.2zm-2.3 2.5h-.6c0 .5 0 1.1.5 1.2l.2-.6-.1-.5zm-2.8-12.8a.6.6 0 00-.3-.5c-.5-.2-1.3.1-1.7.4l.3.5c.5-.2 1-.4 1.1-.3l.6-.1zm-29.5-34.5c-.4.4-1.3.6-1.3.6l-.4 1.2-.5.4v1.1c-.1.8-1 1.2-1 1.2l-.5.5s-2.5.2-2.9 0c-1-.4-.3-1.7.4-1.6.6.1-.1-1.8-.1-1.8l.8-.1s.1-2 .4-2 0-.6-.5-1c-.4-.3-1-1.3-1.4-1.2h-2.1l-.3.6-1.2.2s.1.9-.1 1.1c-.6.8-3.1 2.4-2-.3l.3-.6v-1l-2-.1s-.9-.4-.9-.8v-1l-2.3-2.4-2.7-.4-.2-.5-1.6-.2c-2-1-3.6-.1-3.3 1.5.3 1.6.9 2.3-.2 2.3-1 0-1.3-1-1.3-1s-.8-.2-.8.2-.3 1.3 0 1.7c.3.5-.4 1.1-.8.8-.3-.3-1.1-1.3-1-1.6.3-.4-1.4-2.4.3-2.7 1.7-.4-.1-1.3.5-1.5l.9-.5h.8l.6-.4-1.4-.2-.9-.1-1.6-.1a4.5 4.5 0 00-1.9 2.3c-.8 1.7-2.9-.6-2.1-1.5.7-.8-2.4 0-2.9.4s-2.1.2-2.1.2c-.3 1-1.8-.1-1.4-.8.4-.6.4-1 .4-1l-.5-.2-.6 1.2c-1.5 0-2 .9-1.6 1.4.3.6-.5 0-.7.7-.2.7.1.7.8 1 .6.4-.4.4 0 .9.5.5 1.8 0 1 .8-.7.7-2.2.4-2.2.4-.1 1-2.1.7-2.3.4a79.8 79.8 0 00-1.9-2.2l-2-.1c-.2-1.6 1-.8 1.4-2 .4-1.2.6-3.1.6-3.1s-1.7-.1-1.8.4c0 .5-1.1.9-1.1.9s-.9.3-.6.7c.4.5-.6.7-.6.7s.2.7-.1 1c-.9.8-3 0-3.3-.3l-1.3-.5-1.3-.9-1.5.7-.4.4H253v1.3l2.8.3.2 2.7-1.2-.4h-.7l-.3-.7h-.7v2.3l.7.5.5.6h1l.3 1.4h2.6l.4.6 1.6.1 3 3.2-.2 1-.5.3c.2.7-1.4.3-1.4.3v.6l.8.1.7.5 1-1.9c1.2-.7 1.8.4 1.9 1 0 .7-.6.6-.6.6v1.5l.7.2c1 1.3-.4 2-.4 2l-.4 1.1c-.3 1-1.5.8-1.5.8l-.4.6-1.3.3 2.6.4c.2-.9.8-1.1 1.2-.7.3.4.3 1.2.3 1.2l.6.1v1.2l.6.2v3.5l.7.8c1.3-.5 1.3.4.6.8s-.2 2.4-.2 2.4l-.5.5v.9l-.6.4v1.2c-1.1-.6-2.4-.3-2.7 0-1-.7-3-.4-3 .1.7.9-.7 1-.7 1l-.8 1c.6 1-.5 1.1-.5 1.1v2l-1.3 1.3.1 2.8c0 .7 1.6.8 2 .4.3-.4 1.5.9 1.5.9h1l.2-2-.6-.3v-3.1l1-1.2c1.3-.5.9 2.8.9 3.1 0 1.2.6 1.1 1.2.9 1-.5.2 1.2-.7 1-.8 0-.3 1.1-.3 1.1l.5.3-1 .7-.8 1-1-.3-1.3-.1-.4-.8-.8-.1-.1 1.5-.5.7-1.3 1.3c1.7 0-.2 1.1-.6 1.1 1 .4-.1 1.3-2.6.6v.7l-.9.1.8.9.8.1-.3 1.8c0 1.4-3.5.5-3.8.1l-.1 2h-.6v3.2l1.1-.2v.8h2.9l4.1-4.3 2.5-.6c.2-1 1.3.2 1.3.2 1 0 1.2.7 1.2.7l1.4.2c1.2.3.5.4.6.9 0 .6.6.4.6.4l.2-1.4h.7l-.7-.7-1.2-.5-1.2-.5c-.9-1.2.2-1 1-1h1.4s1.6 2.3 1.6 2.8.8.6.8.6h.9l.3.7h1l.3.6h2v-1l-1.8-.3v-1l-1.4-.4c-.4-1.8.4-2.3.9-1.5l.6.1-.2-1.6.8-.2-.3-2.3-.6-.2v-.7h2.7c-.2-1.3 0-2 0-2h.8l.1.6 3.3.3 2.3-2.7c-.1-.2.2-.3 0-.6-.4-.3-.8 0-1.3-.3-.6-.3 0-2.1-.1-2.6-.1-.4 1.8-1 1.5 0-.4.9 0 1.3 0 1.3 1.3-1.3 2.5.1 2.4.5-.1.3.7.6 1.3.3.5-.3 1.2 1 1 1.6-.3.6-2.2.5-2.3-.1-.1-.7-.4-.4-.6-.1-.2.3-1.2.5-1.7.2a.5.5 0 01-.2-.2l-2.3 2.7h.1c1.3.7.7 1.7.2 2l-1.1.1-.2.5-2.8.2-.2 1c-1.4-.1-2 1.4-1.6 2.1.3.8 0 1.4 0 1.4l1.1.6 1.5-.5c.2-1 1.2-1.3 2-2 .9-.6 2.3 1.3 1.9 2.1-.5.9-.5 1.2-.5 1.2l.1 1-1 .4-.9.5v.5h-3l-.5.5-1.4.1-.4.7-1 .1s-1.5.8-.9 1.6c.6.9-2.7.8-3.4-.4-.2 1-1.4 0-1.4 0l-1.2-.2v-1.6c-.3-1.1-2.3-1.1-2.2-.4.1.8-3.8.4-3.8.4l-1.3.6-1.2.7v.5l-2 .2-.8.4-.4-.6h-.8l-.9 1.2c-2.2 0-4.3 1.4-4.1 2 .2.5-.9 1-.9 1l-1 .3-.6 1-1.2.4-.2 2.3-.7.4v1l-.7.2v.6h-1.1l.6 1.7.9.4c1.5.2.8 2 .8 2l.9.2.4 1.2.9 1.7c.3 1.3 1.3 1 1.7.9.4-.1.8 1.3.8 1.3h4.3s-.2.5.5.7c.8.2 5.7.4 5.9.1-.2-1 2.6-1.2 3.8-.3 1.2.9 2.8.3 2.8.3l1.6 2 1 2.3 1.8.6 1.3.3.4 1.8 1 .1.3 1.2c1.2.9-.3 2.7-.3 2.7v2.4l.8.4v.9l1.3 1.4 1.6.1 4 4.3 3.3 1 .5 1.7h.8l.7-.6 2.5-.1 1.3-1.2 1.4-.2 11.8-10-1-.7V301c1.8-1.4 2-3.9.1-4-1.3-.3-.7-1.7.6-2l.7-.2v-1l2.5-2.3v-1.7l-5.3-4.4c-2.4-1 0-6.1 1.5-6 1.6.1 0-8 0-8l-1-.4.3-2.6H298l-1.9 2.5-.5 1.7c-.2 2.3-6.8 1.8-7.1 1.5l-2.6-1.3s-1.7-1.4-2-1c-.3.5-1.8-.5-1.8-.2 0 .4-1.4-.7-1.4-.7l-2.1-.8 1.6-.3-.4-1.3 2.8 1.4c.3.4 1.7.3 1.7.3l.4.6s.9-.1 1.4.5c.5.7 3.3.1 3.3.1l.8.7 1.1.4 3.3.1.1-2 .7-.7-.1-1.3.7-.6v-1.1l.6-.2.1-2.4.6-.1V259l-1.6-1.5c-.1.5-1.8.5-1.8.5s-.4.8-.8.8.5 1 .2 1.6c-.2.7-1 .7-1 .7l-1.6.4-.4.5h-1.7l-.3-1.4 2-.5 1-.6.6-1c0-1.1 1.3-1 1.3-1s2.5-2 2.6-3c0-1 1-3.7 2.4-3.7h2.8c1-.4.7-1.8.7-1.8l1.4-.3.2.8s2 .2 2.2-.1c.2-.3.6-1 1.1-.8.6.4 2.3-.7 2.3-.7 0-.8 2.7-.5 2.7-.5l.4-1s-1.9-2.4-2.2-2.4c-.3 0-2-1.5-2.2-1-1.7-.4-1.6-2.8-1.6-2.8l-.6-1.5c0-.9-1.6-2.7-2-2.5-1.6-1.2-.4-2.6 0-2.7.5 0 1.5-1.6 1.5-1.6l.6-1.5 1.8-.5.2-1.4-1-.2s1-2 1.6-2l4.4-.1c.3-.2 1-2 1-2.3 0-.3.8-.4 1.1-.5.3-.1 1-1 1.3-1.4.2-.5-.5-3.2-1-2.7z"/>
+  <path fill="#fff" d="M256 258.2c.2-.2.3.5.6.4.4 0 .5.6.2.6s-.3.4-.3.5c0 .2 0 .6-.3.8-.2.3-.4.1-.8 0-.3-.2-.4-.2-.8-.2s-.1.6-.1.6-1.7 0-1.4-.3c.4-.2.7-.3.4-.5-.2-.1 0-.3 0-.6s.8-.2.6-.4c-.2-.3 0-1.2.4-.7l.2-.5c-.2-.3 0-.3-.5-.5s-.1-1.1-.1-1.1v-.7c.2-.8 1.8-.9 1.9-.2v1.3l.5.1s-.1.5-.5.5 0 .3-.2.5l.2.4zm-5.3.8c.3-.5.8-2.6 1.5-2 .6.7 1 0 1 0s.3.4.2 1c-.2.7-.4 1.3-.8 1.4-.4 0-.7.3-1.2.4-.4.1-.7-.8-.7-.8z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/us.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/us.svg
new file mode 100644
index 0000000..31f90c6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/us.svg
@@ -0,0 +1,10 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-us" viewBox="0 0 512 512">
+  <g fill-rule="evenodd">
+    <g stroke-width="1pt">
+      <path fill="#bd3d44" d="M0 0h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0z" transform="scale(3.9385)"/>
+      <path fill="#fff" d="M0 10h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0zm0 20h247v10H0z" transform="scale(3.9385)"/>
+    </g>
+    <path fill="#192f5d" d="M0 0h98.8v70H0z" transform="scale(3.9385)"/>
+    <path fill="#fff" d="M8.2 3l1 2.8H12L9.7 7.5l.9 2.7-2.4-1.7L6 10.2l.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7L74 8.5l-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 7.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 24.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 21.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 38.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 35.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 52.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 49.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm-74.1 7l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7H65zm16.4 0l1 2.8H86l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm-74 7l.8 2.8h3l-2.4 1.7.9 2.7-2.4-1.7L6 66.2l.9-2.7-2.4-1.7h3zm16.4 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8H45l-2.4 1.7 1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9zm16.4 0l1 2.8h2.8l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h3zm16.5 0l.9 2.8h2.9l-2.3 1.7.9 2.7-2.4-1.7-2.3 1.7.9-2.7-2.4-1.7h2.9zm16.5 0l.9 2.8h2.9L92 63.5l1 2.7-2.4-1.7-2.4 1.7 1-2.7-2.4-1.7h2.9z" transform="scale(3.9385)"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/uy.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/uy.svg
new file mode 100644
index 0000000..0194a7c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/uy.svg
@@ -0,0 +1,28 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-uy" viewBox="0 0 512 512">
+  <path fill="#fff" d="M0 0h512v512H0z"/>
+  <path fill="#0038a8" d="M284 56.9h228v56.9H284zm0 113.8h228v56.9H284zM0 284.4h512v57H0zm0 113.8h512v57H0z"/>
+  <g fill="#fcd116" stroke="#000" stroke-miterlimit="20" stroke-width=".6" transform="translate(142.2 142.2) scale(3.12889)">
+    <g id="c">
+      <g id="b">
+        <g id="a">
+          <path stroke-linecap="square" d="M1.5 9L6 12c-8 13 1 15-6 21 3-7-3-5-3-17" transform="rotate(22.5)"/>
+          <path fill="none" d="M0 11c-2 13 4.5 17 0 22" transform="rotate(22.5)"/>
+          <path d="M0 0h6L0 33-6 0h6v33"/>
+        </g>
+        <use width="100%" height="100%" transform="rotate(45)" xlink:href="#a"/>
+      </g>
+      <use width="100%" height="100%" transform="rotate(90)" xlink:href="#b"/>
+    </g>
+    <use width="100%" height="100%" transform="scale(-1)" xlink:href="#c"/>
+    <circle r="11"/>
+  </g>
+  <g transform="translate(142.2 142.2) scale(.31289)">
+    <g id="d">
+      <path d="M81-44c-7 8-11-6-36-6S16-35 12-38s21-21 29-22 31 7 40 16m-29 9c7 6 1 19-6 19S26-28 32-36"/>
+      <path d="M19-26c1-12 11-14 27-14s23 12 29 15c-7 0-13-10-29-10s-16 0-27 10m3 2c4-6 9 6 20 6s17-3 24-8-10 12-21 12-26-6-23-10"/>
+      <path d="M56-17c13-7 5-17 0-19 2 2 10 12 0 19M0 43c6 0 8-2 16-2s27 11 38 7c-23 9-14 3-54 3h-5m63 6c-4-7-3-5-11-16 8 6 10 9 11 16M0 67c25 0 21-5 54-19-24 3-29 11-54 11h-5m5-29c7 0 9-5 17-5s19 3 24 7c1 1-3-8-11-9S25 9 16 7c0 4 3 3 4 9 0 5-9 5-11 0 2 8-4 8-9 8"/>
+    </g>
+    <use width="100%" height="100%" transform="scale(-1 1)" xlink:href="#d"/>
+    <path d="M0 76c-5 0-18 3 0 3s5-3 0-3"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/uz.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/uz.svg
new file mode 100644
index 0000000..641af1b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/uz.svg
@@ -0,0 +1,30 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-uz" viewBox="0 0 512 512">
+  <path fill="#1eb53a" d="M0 341.3h512V512H0z"/>
+  <path fill="#0099b5" d="M0 0h512v170.7H0z"/>
+  <path fill="#ce1126" d="M0 163.8h512v184.4H0z"/>
+  <path fill="#fff" d="M0 174h512v164H0z"/>
+  <circle cx="143.4" cy="81.9" r="61.4" fill="#fff"/>
+  <circle cx="163.8" cy="81.9" r="61.4" fill="#0099b5"/>
+  <g fill="#fff" transform="translate(278.5 131) scale(2.048)">
+    <g id="e">
+      <g id="d">
+        <g id="c">
+          <g id="b">
+            <path id="a" d="M0-6L-1.9-.3 1 .7"/>
+            <use width="100%" height="100%" transform="scale(-1 1)" xlink:href="#a"/>
+          </g>
+          <use width="100%" height="100%" transform="rotate(72)" xlink:href="#b"/>
+        </g>
+        <use width="100%" height="100%" transform="rotate(-72)" xlink:href="#b"/>
+        <use width="100%" height="100%" transform="rotate(144)" xlink:href="#c"/>
+      </g>
+      <use width="100%" height="100%" y="-24" xlink:href="#d"/>
+      <use width="100%" height="100%" y="-48" xlink:href="#d"/>
+    </g>
+    <use width="100%" height="100%" x="24" xlink:href="#e"/>
+    <use width="100%" height="100%" x="48" xlink:href="#e"/>
+    <use width="100%" height="100%" x="-48" xlink:href="#d"/>
+    <use width="100%" height="100%" x="-24" xlink:href="#d"/>
+    <use width="100%" height="100%" x="-24" y="-24" xlink:href="#d"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/va.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/va.svg
new file mode 100644
index 0000000..7da6d3e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/va.svg
@@ -0,0 +1,479 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-va" viewBox="0 0 512 512">
+  <g fill-rule="evenodd">
+    <path fill="#fff" d="M256 0h256v512H256z"/>
+    <path fill="#fff" stroke="#000" stroke-width="1pt" d="M282.4-735.1c0 .6 56 222.8 118.2 300.5 69.4 87.3 113.2 87.4 113.2 87.4l70.9-17.8s-41.6 2.1-123.9-104.2c-83.4-107.7-109.4-286-108.1-282.8l-70.3 16.9z" transform="matrix(-.21542 0 0 .17871 450.5 340.7)"/>
+    <path fill="#fff" stroke="#000" stroke-width="1pt" d="M285-727.6c-1.5-9.4 33.9 221 140.2 327.2 53.1 53.1 88.6 53.1 88.6 53.1l88.6-17.7s-51.7 3.8-134-102.5c-83.5-107.8-108.6-263.3-108-263.9l-75.4 3.8z" transform="matrix(.21542 0 0 .17871 313.9 342.3)"/>
+    <path fill="#fff" stroke="#000" stroke-width="1pt" d="M282.4-735.1c0 .6 56 222.8 118.2 300.5 69.4 87.3 113.2 87.4 113.2 87.4l70.9-17.8s-41.6 2.1-123.9-104.2c-83.4-107.7-109.4-286-108.1-282.8l-70.3 16.9z" transform="matrix(.21542 0 0 .17871 313.9 342.3)"/>
+    <path fill="#fff" stroke="#000" stroke-width="1pt" d="M285-727.6c-1.5-9.4 33.9 221 140.2 327.2 53.1 53.1 88.6 53.1 88.6 53.1l88.6-17.7s-51.7 3.8-134-102.5c-83.5-107.8-108.6-263.3-108-263.9l-75.4 3.8z" transform="matrix(-.21542 0 0 .17871 450.5 340.7)"/>
+    <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M344.5-596.3l9.2 22.1s1.5-9.7 8.5-11.5l7-1.7s27 49.3 32.3 58.1c5.3 8.8-3.6 16.8-1.8 16.8s26.5-11.5 26.5-11.5-10.6.9-15-6.2-34.8-60-34.8-60 6.1-2.6 11.4-5.2c5.3-2.7 10.6 8 10.6 8L385.2-614s0 8.9-4.4 10.6c-4.4 1.8-8 3.6-8 3.6s-3.5-6.2-8-13.3c-4.4-7 4.5-14.1 4.5-14.1l-23 11.5s8 4.4 10.6 8.8l5.3 8.8s-3.2 1.8-8.2 3.5c-3.6 1.9-7.7 0-9.5-1.7z" transform="matrix(.21538 .00384 -.00463 .17867 312.2 347.8)"/>
+    <g fill="#b00" stroke="#000" stroke-width="14.3">
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01583 .00247 .00912 -.01043 340 336.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01553 .00281 .0093 -.0104 338.6 337.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01583 .00247 .00912 -.01043 336.7 339.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01606 -.001 .00564 -.01204 356.6 321)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01588 -.00034 .0061 -.01195 355.6 322.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01608 -.00073 .00592 -.01194 354.2 324)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01587 .0005 .007 -.0116 353.3 324.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01584 -.00241 .00408 -.01247 360.6 315.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0157 -.002 .00426 -.0125 359.7 316.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01584 -.00241 .00408 -.01247 358.5 318.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01575 -.00175 .00455 -.01242 357.5 320)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01601 .0014 .00808 -.01102 346.2 331.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01575 .00175 .00826 -.011 344.9 332.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01601 .0014 .00808 -.01102 343.1 334.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01553 .00281 .0093 -.0104 341.9 335)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0161 .00013 .00681 -.0116 351.7 326.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01587 .0005 .007 -.0116 350.5 327.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01601 .0014 .00808 -.01102 349.3 328.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01575 .00175 .00826 -.011 348 329.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01497 -.00495 .0011 -.0129 369.3 295.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01532 -.00352 .0025 -.01283 369.3 296.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0154 -.00394 .00232 -.01278 368.4 298.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01532 -.00352 .0025 -.01283 367.8 299.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01493 -.00453 .00126 -.01295 371.1 290)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01497 -.00495 .0011 -.0129 370.5 292)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01493 -.00453 .00126 -.01295 370 293.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01572 -.0029 .00353 -.01259 364.3 308.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0156 -.00249 .0037 -.01262 363.5 310)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01572 -.0029 .00353 -.01259 362.4 311.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0157 -.002 .00426 -.0125 361.7 313.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0154 -.00394 .00232 -.01278 366.9 301.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0156 -.00249 .0037 -.01262 367.2 302.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01572 -.0029 .00353 -.01259 366.1 304.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0156 -.00249 .0037 -.01262 365.3 306.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01384 -.0069 -.00138 -.01288 374 279.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01486 -.00518 .00082 -.01291 374 281.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01483 -.00476 .00099 -.01297 373.6 282.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01388 -.00647 -.00122 -.01295 374.7 273.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01384 -.0069 -.00138 -.01288 374.4 276)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01388 -.00647 -.00122 -.01295 374.3 277.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01486 -.00518 .00082 -.01291 373 285)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01493 -.00453 .00126 -.01295 372.4 286.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01497 -.00495 .0011 -.0129 371.7 288.2)"/>
+    </g>
+    <g fill="#b00" stroke="#000" stroke-width="14.3">
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01599 .0016 -.00828 -.01091 422.7 331.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01571 .00195 -.00846 -.0109 424.1 332.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01599 .0016 -.00828 -.01091 425.9 334.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01594 -.00187 -.00468 -.01232 407.4 315)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01582 -.00121 -.00515 -.01226 408.3 316.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01598 -.0016 -.00497 -.01224 409.6 318.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01588 -.00037 -.00607 -.01196 410.4 318.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01562 -.00328 -.0031 -.01267 403.9 309)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01551 -.00286 -.00327 -.0127 404.7 310.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01562 -.00328 -.0031 -.01267 405.6 312.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01558 -.0026 -.00357 -.01265 406.6 314)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01609 .0005 -.0072 -.01144 417 326)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01585 .00088 -.00738 -.01143 418.2 327.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01609 .0005 -.0072 -.01144 419.8 329)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01571 .00195 -.00846 -.0109 421 329.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01607 -.00076 -.00589 -.01195 411.8 320.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01588 -.00037 -.00607 -.01196 413 322)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01609 .0005 -.0072 -.01144 414 323)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01585 .00088 -.00738 -.01143 415.3 324.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01455 -.00577 -.00008 -.01293 396.7 289.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.015 -.00436 -.00148 -.01293 396.7 289.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01505 -.00478 -.00131 -.01288 397.4 291.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.015 -.00436 -.00148 -.01293 398 293.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01455 -.00534 -.00025 -.013 395.3 283.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01455 -.00577 -.00008 -.01293 395.8 285.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01455 -.00534 -.00025 -.013 396.2 287)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01546 -.00376 -.00253 -.01275 400.7 302)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01538 -.00334 -.0027 -.0128 401.4 303.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01546 -.00376 -.00253 -.01275 402.3 305.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01551 -.00286 -.00327 -.0127 403 307)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01505 -.00478 -.00131 -.01288 398.6 295.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01538 -.00334 -.0027 -.0128 398.2 296.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01546 -.00376 -.00253 -.01275 399.1 298.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01538 -.00334 -.0027 -.0128 399.8 300)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01327 -.00764 .00239 -.01277 393.3 273)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01443 -.00598 .0002 -.01293 393.1 274.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01443 -.00556 .00003 -.013 393.5 276)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01334 -.00722 .00224 -.01286 393 267)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01327 -.00764 .00239 -.01277 393.1 269.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01334 -.00722 .00224 -.01286 393.2 270.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01443 -.00598 .0002 -.01293 394 278.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01455 -.00534 -.00025 -.013 394.4 279.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01455 -.00577 -.00008 -.01293 395 281.5)"/>
+    </g>
+    <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M344.5-596.3l9.2 22.1s1.5-9.7 8.5-11.5l7-1.7s27 49.3 32.3 58.1c5.3 8.8-3.6 16.8-1.8 16.8s26.5-11.5 26.5-11.5-10.6.9-15-6.2-34.8-60-34.8-60 6.1-2.6 11.4-5.2c5.3-2.7 10.6 8 10.6 8L385.2-614s0 8.9-4.4 10.6c-4.4 1.8-8 3.6-8 3.6s-3.5-6.2-8-13.3c-4.4-7 4.5-14.1 4.5-14.1l-23 11.5s8 4.4 10.6 8.8l5.3 8.8s-3.2 1.8-8.2 3.5c-3.6 1.9-7.7 0-9.5-1.7z" transform="matrix(-.21538 .00384 .00463 .17867 452.2 346.2)"/>
+    <g transform="matrix(.12959 0 0 .10848 351.4 305.6)">
+      <path fill="silver" d="M324.6-255.4l-50.2 50.1L449.8-29.9l50.1-50z"/>
+      <circle cx="354.3" cy="-1428" r="35.4" fill="#fff133" stroke="#000" stroke-width="1pt" transform="scale(-1 1) rotate(45 -177.9 -1104.6)"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M-402-957l37.5 37.7-25 25-37.6-37.6c-12.5-12.5 12.5-37.5 25-25z"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M-346.6-926.5l-50.1 50a25 25 0 01-25-25c10.8-25.8 25-38.4 50-50a26.9 26.9 0 0125 25z"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M-352-931.9l37.7 37.6-50.2 50.1-37.5-37.5c5-20 30-45.1 50-50.1z"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M-309-889l-50.1 50.1a25.1 25.1 0 01-25-25c10.8-25.9 25-38.4 50-50.1a26.9 26.9 0 0125 25z"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M-314.4-894.3L28.4-551.5l-50 50.1-342.9-342.8c5-20 30.1-45 50.1-50z"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M49-531l-50.2 50.1a25.1 25.1 0 01-25-25c10.8-25.9 25-38.5 50-50.1A26.9 26.9 0 0149-531z"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M49-531l225.4 225.5-50 50.1L-1.3-480.9c5-20 30.1-45 50.1-50z"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M186.7-418.2l-75.1 75.1a25.1 25.1 0 01-25-25s0-25 25-50.1 50-25 50-25c11.7 1.5 21.5 12.4 25.1 25z"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M186.7-418.2l50.2 75.1-50.1 50.1-75.2-50c-2.8-2.5 0-25.1 25-50.2s49-24.4 50.1-25z"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M336.6-506.7c0-35.4 0-86.6 17.7-130C372-593.3 372-542 372-506.7h-35.4z" transform="rotate(135 434.8 18.7) scale(1 -.81782)"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M318.9-506.7h17.7V-550c0-43.3-35.4-65-35.4-65l17.7 108.3z" transform="rotate(-45 399.4 -194.2) scale(1 .81782)"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M318.9-506.7h17.7V-550c0-43.3-35.4-65-35.4-65l17.7 108.3z" transform="rotate(135 434.8 18.7) scale(1 -.81782)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M-314.4-894.3l37.6 37.6c25 25 112.8 137.8 112.8 137.8s117.3 92.3 142.3 117.3L16-564c-25-25-180-129.8-180-129.8S-71.7-551.5-34.1-514l-37.6-37.6c-25-25-117.3-142.3-117.3-142.3S-289.3-769-314.4-794.1l-50-50c25 25 175.3 125.2 175.3 125.2s-100.2-150.3-125.3-175.4z"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M299.5-230.3A907.4 907.4 0 00412.2-92.5a83 83 0 0050.1 25s0-25-25-50a899 899 0 00-137.8-112.8zm-62.6-112.8c87.6 87.7 187.9 137.8 250.5 200.5 50.1 50 15.4 88.4 1.4 100.6-14 12.1-52 50.3-101.6-.4C324.5-105 274.4-205.3 186.7-293c0-25 25.1-50 50.1-50z"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M218.3 257.9h23v73h-23z" transform="matrix(-1.2487 -1.4214 -1.3593 1.3175 1166.1 -102.6)"/>
+      <g fill="silver" stroke="#000">
+        <path stroke-width=".6" d="M301.2 396.9l17.7 17.7-17.7 17.7 8.8 8.8 17.7-17.7 35.5 35.5-17.7 17.7 8.8 8.8 17.7-17.7 17.8 17.7-53.2 53.2-35.4-35.4 17.7-17.8 8.9 8.9 8.8-8.9-35.4-35.4-8.9 8.9 8.9 8.8-17.7 17.7-17.7-17.7 8.8-8.8-8.8-8.9-35.5 35.4 8.9 8.9 8.8-8.9 17.8 17.8-17.8 17.7-8.8-8.9-8.9 8.9 35.5 35.4 8.8-8.9-8.8-8.8 17.7-17.7 35.4 35.4-53.1 53.1-17.8-17.7 17.8-17.7-9-8.8-17.6 17.7-35.5-35.5 17.8-17.7-8.9-8.8-17.7 17.7-17.7-17.7 124-124z" transform="matrix(-2.2946 0 0 2.2438 360.6 -1733.7)"/>
+        <path stroke-width="1.3" d="M318.9 786.6V822l88.6 88.6v-70.8L389.8 822h-35.5L319 786.6z" transform="matrix(-1.1473 0 0 1.1219 157.3 -1288.5)"/>
+        <path stroke-width="1.3" d="M230.4 698.8l70.4 70.4.8 35.2-71.2-71.3v-34.3z" transform="matrix(-1.1473 0 0 1.1219 157.4 -1288.5)"/>
+        <path stroke-width="1.3" d="M301.2 804.3l35.4-35.4v-35.4l-35.4 35.4v35.4z" transform="matrix(-1.1473 0 0 1.1219 157.3 -1288.5)"/>
+        <path stroke-width="1.3" d="M301.2 804.3l35.4-35.4v-35.4l-35.4 35.4v35.4z" transform="matrix(-1.1473 0 0 1.1219 259 -1387.9)"/>
+        <path stroke-width="1.3" d="M248 644.9v35.4l17.8-17.7-17.8-17.7z" transform="matrix(-1.1473 0 0 1.1219 157.3 -1288.5)"/>
+        <path stroke-width="1.3" d="M248 644.9v35.4l17.8-17.7-17.8-17.7z" transform="matrix(-1.1473 0 0 1.1219 55.7 -1189.1)"/>
+        <path stroke-width="1.3" d="M230.4 698.8l35.8 35.4v35.4l-35.8-36.5v-34.3z" transform="matrix(-1.1473 0 0 1.1219 218.8 -1349)"/>
+        <path stroke-width="1.3" d="M301.2 804.3l35.4-35.4v-35.4l-35.4 35.4v35.4z" transform="matrix(-1.1473 0 0 1.1219 55.7 -1507.1)"/>
+        <path stroke-width="1.3" d="M301.2 804.3l35.4-35.4v-35.4l-35.4 35.4v35.4z" transform="matrix(-1.1473 0 0 1.1219 137 -1427.6)"/>
+        <path stroke-width="1.3" d="M283.5 822l53.1-53.1v-35.4l-70.9 70.8 17.8 17.8z" transform="matrix(-1.1473 0 0 1.1219 137 -1546.9)"/>
+        <path stroke-width="1.3" d="M248 644.9v35.4l17.8-17.7-17.8-17.7z" transform="matrix(-1.1473 0 0 1.1219 35.4 -1447.5)"/>
+        <path stroke-width="1.3" d="M301.2 804.3L265.8 769v-35.4l35.4 35.4v35.4z" transform="matrix(-1.1473 0 0 1.1219 55.7 -1507.1)"/>
+        <path stroke-width="1.3" d="M389.8 822l-53.2-53v-35.4l70.9 70.8-17.7 17.8z" transform="matrix(-1.1473 0 0 1.1219 55.7 -1546.9)"/>
+        <path stroke-width="1.3" d="M230.4 698l70.9 71h35.4l17.7 17.6v70.9l-124-124.4v-35z" transform="matrix(-1.1473 0 0 1.1219 -66.2 -1387.9)"/>
+        <path stroke-width="1.3" d="M354.3 822l106.3-106.3h35.5L389.8 822h-35.5zm53.2 17.8l106.3-106.3-17.7-17.7L389.8 822l17.7 17.7z" transform="matrix(-1.1473 0 0 1.1219 157.3 -1288.5)"/>
+        <path stroke-width="1.3" d="M407.5 839.8v70.8l106.3-106.3v-70.8L407.5 839.8z" transform="matrix(-1.1473 0 0 1.1219 157.3 -1288.5)"/>
+        <path stroke-width="1.3" d="M354.3 822l106.3-106.3h35.5L389.8 822h-35.5zm53.2 17.8l106.3-106.3-17.7-17.7L389.8 822l17.7 17.7z" transform="matrix(-1.1473 0 0 1.1219 -5.3 -1447.5)"/>
+        <path stroke-width="1.3" d="M407.5 839.8v70.8l106.3-106.3v-70.8L407.5 839.8z" transform="matrix(-1.1473 0 0 1.1219 -5.3 -1447.5)"/>
+        <path stroke-width="1.3" d="M318.9 786.6l17.7-17.7v-35.4l-35.4 35.4 17.7 17.7z" transform="matrix(-1.1473 0 0 1.1219 -86.6 -1527)"/>
+        <path stroke-width="1.3" d="M318.9 786.6l17.7-17.7v-35.4l-35.4 35.4 17.7 17.7z" transform="matrix(-1.1473 0 0 1.1219 15 -1626.4)"/>
+        <path stroke-width="1.3" d="M265.8 768.9v-35.4l17.7 17.7-17.7 17.7z" transform="matrix(-1.1473 0 0 1.1219 55.7 -1348.1)"/>
+        <path stroke-width="1.3" d="M301.2 804.3L265.8 769l17.7-17.7 17.7 17.7v35.4z" transform="matrix(-1.1473 0 0 1.1219 137 -1427.6)"/>
+        <path stroke-width="1.3" d="M301.2 804.3l-17.7-17.7 17.7-17.7v35.4z" transform="matrix(-1.1473 0 0 1.1219 15 -1586.6)"/>
+      </g>
+      <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M196.5 254.2h25.2v80.2h-25.2z" transform="matrix(-1.2509 -1.4194 -1.3614 1.3153 1166.1 -102.6)"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M336.6 166.5c0 14.7 35.4 35.5 35.4-17.7h-35.4v17.7z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.6)"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M242.1 24.8c-147 0-113.1 164.2-100.4 124 9.4-29.5 35.5-70.8 65-80.2C246.9 55.8 233.4 78 248 78c14.7 0 1.2-22.2 41.4-9.4 29.5 9.4 55.6 50.7 65 80.2 12.7 40.3 53-124-112.3-124z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.6)"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M389.8 166.5a141.8 141.8 0 01-283.5 0v-17.7c0-29 35.4 124 141.7 124s141.8-124.7 141.8-124v17.7z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.6)"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M336.6 166.5c0 14.7 35.4 35.5 35.4-17.7h-35.4v17.7z" transform="matrix(1.8992 0 0 1.8865 224 -100.5)"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M389.8 148.8a141.8 141.8 0 11-283.6 0 141.8 141.8 0 01283.6 0zm-53.2 0c0 14.7 22.8 3 9.4 43a81 81 0 01-56.6 55c-40.2 12.7-26.7-9.4-41.4-9.4-14.6 0-1.1 22.1-41.3 9.4a80.2 80.2 0 01-56.6-56.6c-12.8-40.2 9.3-26.7 9.3-41.4s-22-1.1-9.3-41.3a80.2 80.2 0 0156.6-56.6c40.2-12.8 26.7 9.3 41.3 9.3 14.7 0 1.2-22 41.4-9.3a80.3 80.3 0 0156.6 56.6c12.7 40.2-9.4 26.6-9.4 41.3z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.6)"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M126.5 157.7c-20.2 0-1.9 67.6-9 51.7a126.5 126.5 0 010-103.4c7.1-16-11.2 51.7 9 51.7z" transform="matrix(-1.6618 0 0 1.7607 1107.2 -99.5)"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M372 140a88 88 0 01-9.7 44.8c-8 13.7 9.8-44.8-8-44.8 17.7 0 1.7-58.6 8-44.8a107.7 107.7 0 019.8 44.8z" transform="matrix(-1.8992 0 0 2.0316 1166.1 -106.2)"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M296.3 263a123.5 123.5 0 01-96.5 0c-14.9-6.2 48.2 9.8 48.2-7.9 0 17.7 63.1 1.7 48.3 8zM248 42.6c0-17.7-63-1.7-48.2-8a123 123 0 0196.5 0c14.8 6.3-48.3-9.7-48.3 8z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.6)"/>
+      <ellipse cx="82.1" cy="160.9" fill="#fff133" stroke="#000" stroke-width="1pt" rx="18.4" ry="20.1" transform="matrix(-1.2929 -1.3819 -1.3912 1.2842 1257.6 -120)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M276.6 287.7a142 142 0 01-57.1 0l-1.5 7a149 149 0 0060 0l-1.4-7z" transform="matrix(-1.2929 -1.3819 1.3912 -1.2842 808.9 712)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M276.6 287.7a142 142 0 01-57.1 0l-1.5 7a149 149 0 0060 0l-1.4-7z" transform="matrix(-1.2929 -1.3819 -1.3912 1.2842 1223.2 329.9)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M267.7 308.5c-9.2 1.9-20.2 1-30 1-9.7 0-19.3-2.7-28.5-4.6l8.8-10.3a149.3 149.3 0 0060 0l-10.3 14z" transform="matrix(-1.2929 -1.3819 -1.3912 1.2842 1223.2 329.9)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M276.6 287.7a142 142 0 01-57.1 0l-1.5 7a149 149 0 0060 0l-1.4-7z" transform="matrix(-1.3912 1.2842 1.2929 1.3819 847.4 -345.2)"/>
+      <ellipse cx="82.1" cy="160.9" fill="#fff133" stroke="#000" stroke-width="1pt" rx="18.4" ry="20.1" transform="matrix(-1.2929 -1.3819 -1.3912 1.2842 789.1 314.4)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M267.6 281.5c-9.2 1.9-17.1 3-26.9 3s-23-.8-32.3-2.7l9.6 12.8a149.5 149.5 0 0060 0l-10.4-13.1z" transform="matrix(-1.3912 1.2842 1.2929 1.3819 850.6 -315.2)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M174 271.8l-.9 14.8-3.2 4.5 1-15 3-4.3zm156.5-6.2l3.6 4.2 1 13.6-2.9-3-1.7-14.8z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.6)"/>
+      <ellipse cx="82.1" cy="160.9" fill="#fff133" stroke="#000" stroke-width="1pt" rx="18.4" ry="20.1" transform="matrix(-1.2929 -1.3819 -1.3912 1.2842 1237.6 329.9)"/>
+    </g>
+    <path fill="#fff" stroke="#000" stroke-width="1pt" d="M513.8-790.2l35.4-17.7 35.4 17.7s-73.3 35.5-73.3 159.5c0 88.6 125.2 106.3 125.2 212.6 0 45.6-34.1 88.6-69.6 88.6s-88.6-17.7-141.7-70.9c35.4 17.7 76 37.3 106.3 36 19.6-.3 55-17.7 55-53 0-71-122.8-107-122.8-213.3 0-124 50-159.4 50-159.4z" transform="matrix(-.21542 0 0 .17871 450.5 340.7)"/>
+    <path fill="#fff" stroke="#000" stroke-width="1pt" d="M520.3-790.2l46.6-17.7 10 17.7s-70.6 35.5-70.6 159.5c0 88.6 125.9 106.3 125.9 212.6 0 45.6-26.7 87.4-65.3 88.6-73.4 2.3-90.4-24-141.7-70.9 43.1 32.3 105 46.8 129 34.2 29.4-15.4 35-36 35-53.8 0-70.9-120.9-104.4-120.9-210.7 0-124 52-159.4 52-159.4z" transform="matrix(-.21542 0 0 .17871 450.5 340.7)"/>
+    <path fill="#fff" stroke="#000" stroke-width="1pt" d="M513.3-789.7c7-2.4 36-18.2 71.3 17.3 17.8 17.7 17.8 53.1 17.8 70.8l53.1-53.1s-29-86.9-107.6-53.6a334.8 334.8 0 00-34.5 18.6z" transform="matrix(-.21542 0 0 .17871 450.5 340.7)"/>
+    <path fill="#fff" stroke="#000" stroke-width="1pt" d="M523.8-796c8.8-2.8 36.7-6.3 64.6 18.6 17.7 17.7 19 42.9 19 60.6l40.6-38c3.4-3.1-24.8-81.2-99.2-54a154 154 0 00-25 12.9z" transform="matrix(-.21542 0 0 .17871 450.5 340.7)"/>
+    <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M344.5-596.3l9.2 22.1s1.5-9.7 8.5-11.5l7-1.7s27 49.3 32.3 58.1c5.3 8.8-3.6 16.8-1.8 16.8s26.5-11.5 26.5-11.5-10.6.9-15-6.2-34.8-60-34.8-60 6.1-2.6 11.4-5.2c5.3-2.7 10.6 8 10.6 8L385.2-614s0 8.9-4.4 10.6c-4.4 1.8-8 3.6-8 3.6s-3.5-6.2-8-13.3c-4.4-7 4.5-14.1 4.5-14.1l-23 11.5s8 4.4 10.6 8.8l5.3 8.8s-3.2 1.8-8.2 3.5c-3.6 1.9-7.7 0-9.5-1.7z" transform="matrix(-.17534 -.01853 -.05985 .15541 365.6 343.2)"/>
+    <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M344.5-596.3l9.2 22.1s1.5-9.7 8.5-11.5l7-1.7s27 49.3 32.3 58.1c5.3 8.8-3.6 16.8-1.8 16.8s26.5-11.5 26.5-11.5-10.6.9-15-6.2-34.8-60-34.8-60 6.1-2.6 11.4-5.2c5.3-2.7 10.6 8 10.6 8L385.2-614s0 8.9-4.4 10.6c-4.4 1.8-8 3.6-8 3.6s-3.5-6.2-8-13.3c-4.4-7 4.5-14.1 4.5-14.1l-23 11.5s8 4.4 10.6 8.8l5.3 8.8s-3.2 1.8-8.2 3.5c-3.6 1.9-7.7 0-9.5-1.7z" transform="matrix(.15954 .02165 .00278 -.11904 258.9 126)"/>
+    <g transform="matrix(.12959 0 0 .10848 351.4 305.6)">
+      <g stroke-width="1pt" transform="rotate(45 478.1 -504.6)">
+        <circle cx="354.3" cy="-1428" r="35.4" fill="silver" stroke="#000" transform="translate(124 283.5)"/>
+        <path fill="#fff133" stroke="#000" d="M460.6-1126.8v53.2h35.5v-53.2c0-17.7-35.5-17.7-35.5 0z"/>
+        <path fill="silver" stroke="#000" d="M443-1066h70.8a25.1 25.1 0 000-35.5c-26-10.6-44.9-9.5-70.9 0a27 27 0 000 35.4z"/>
+        <path fill="#fff133" stroke="#000" d="M443-1073.6v53.1h70.8v-53.1c-17.7-10.6-53.2-10.6-70.9 0z"/>
+        <path fill="silver" stroke="#000" d="M443-1013h70.8a25.1 25.1 0 000-35.4c-26-10.6-44.9-9.5-70.9 0a27 27 0 000 35.5z"/>
+        <path fill="#fff133" d="M443-117h70.8v248.1h-70.9z"/>
+        <path fill="#fff133" stroke="#000" d="M443-1020.5v484.8h70.8v-484.8c-17.7-10.6-53.2-10.6-70.9 0z"/>
+        <path fill="silver" stroke="#000" d="M443-506.7h70.8a25.1 25.1 0 000-35.4c-26-10.6-44.9-9.5-70.9 0a27 27 0 000 35.4z"/>
+        <path fill="#fff133" stroke="#000" d="M443-506.7v318.9h70.8v-318.9c-17.7-10.6-53.2-10.6-70.9 0z"/>
+        <path fill="#fff133" stroke="#000" d="M425.2-329.5h106.3a25 25 0 000-35.5s-17.7-17.7-53.2-17.7-53.1 17.7-53.1 17.7c-7.1 9.4-6.3 24 0 35.5z"/>
+        <path fill="#fff133" stroke="#000" d="M425.2-329.5l17.7 88.6h70.9l17.7-88.6c.3-3.8-17.7-17.7-53.2-17.7s-51.9 17.3-53.1 17.7z"/>
+        <path fill="#fff133" stroke="#000" d="M336.6-506.7c0-35.4 0-86.6 17.7-130C372-593.3 372-542 372-506.7h-35.4z" transform="matrix(1 0 0 .81782 124 173.4)"/>
+        <path fill="#fff133" stroke="#000" d="M318.9-506.7h17.7V-550c0-43.3-35.4-65-35.4-65l17.7 108.3z" transform="matrix(-1 0 0 .81782 832.7 173.4)"/>
+        <path fill="#fff133" stroke="#000" d="M318.9-506.7h17.7V-550c0-43.3-35.4-65-35.4-65l17.7 108.3z" transform="matrix(1 0 0 .81782 124 173.4)"/>
+        <path fill="#fff133" stroke="#000" d="M478.3-117a908.6 908.6 0 0117.8 177.2 83 83 0 01-17.8 53.2s-17.7-17.7-17.7-53.2c0-17.7 0-88.6 17.7-177.1zM443-241c0 124-35.4 230.4-35.4 319 0 70.8 51.6 73.4 70 72.1 18.6-1.3 72.4-1.2 71.7-72.2 0-88.5-35.4-194.8-35.4-318.9-17.7-17.7-53.2-17.7-70.9 0z"/>
+        <path fill="silver" stroke="#000" d="M443-1020.5v53.2c0 35.4 17.6 177.1 17.6 177.1S443-642 443-606.6v53.2c0-35.4 35.4-219 35.4-219s35.5 165.9 35.5 219v-53.2c0-35.4-17.7-183.6-17.7-183.6s17.7-124 17.7-159.4v-70.9c0 35.4-35.4 212.6-35.4 212.6S443-985.1 443-1020.5z"/>
+      </g>
+      <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M218.3 257.9h23v73h-23z" transform="matrix(1.2487 -1.4214 1.3593 1.3175 -662.5 -102.6)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M336.6 166.5c0 14.7 35.4 35.5 35.4-17.7h-35.4v17.7z" transform="matrix(1.8992 0 0 1.8865 -662.5 -102.6)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M242.1 24.8c-147 0-113.1 164.2-100.4 124 9.4-29.5 35.5-70.8 65-80.2C246.9 55.8 233.4 78 248 78c14.7 0 1.2-22.2 41.4-9.4 29.5 9.4 55.6 50.7 65 80.2 12.7 40.3 53-124-112.3-124z" transform="matrix(1.8992 0 0 1.8865 -662.5 -102.6)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M389.8 166.5a141.8 141.8 0 01-283.5 0v-17.7c0-29 35.4 124 141.7 124s141.8-124.7 141.8-124v17.7z" transform="matrix(1.8992 0 0 1.8865 -662.5 -102.6)"/>
+      <ellipse cx="82.1" cy="160.9" fill="silver" stroke="#000" stroke-width="1pt" rx="18.4" ry="20.1" transform="matrix(1.2929 -1.3819 1.3912 1.2842 -753.9 -120)"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M196.5 254.2h25.2v80.2h-25.2z" transform="matrix(1.2509 -1.4194 1.3614 1.3153 -662.5 -102.6)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M336.6 166.5c0 14.7 35.4 35.5 35.4-17.7h-35.4v17.7z" transform="matrix(-1.8992 0 0 1.8865 279.7 -100.5)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M389.8 148.8a141.8 141.8 0 11-283.6 0 141.8 141.8 0 01283.6 0zm-53.2 0c0 14.7 22.8 3 9.4 43a81 81 0 01-56.6 55c-40.2 12.7-26.7-9.4-41.4-9.4-14.6 0-1.1 22.1-41.3 9.4a80.2 80.2 0 01-56.6-56.6c-12.8-40.2 9.3-26.7 9.3-41.4s-22-1.1-9.3-41.3a80.2 80.2 0 0156.6-56.6c40.2-12.8 26.7 9.3 41.3 9.3 14.7 0 1.2-22 41.4-9.3a80.3 80.3 0 0156.6 56.6c12.7 40.2-9.4 26.6-9.4 41.3z" transform="matrix(1.8992 0 0 1.8865 -662.5 -102.6)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M126.5 157.7c-20.2 0-1.9 67.6-9 51.7a126.5 126.5 0 010-103.4c7.1-16-11.2 51.7 9 51.7z" transform="matrix(1.6618 0 0 1.7607 -603.6 -99.5)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M372 140a88 88 0 01-9.7 44.8c-8 13.7 9.8-44.8-8-44.8 17.7 0 1.7-58.6 8-44.8a107.7 107.7 0 019.8 44.8z" transform="matrix(1.8992 0 0 2.0316 -662.5 -106.2)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M296.3 263a123.5 123.5 0 01-96.5 0c-14.9-6.2 48.2 9.8 48.2-7.9 0 17.7 63.1 1.7 48.3 8zM248 42.6c0-17.7-63-1.7-48.2-8a123 123 0 0196.5 0c14.8 6.3-48.3-9.7-48.3 8z" transform="matrix(1.8992 0 0 1.8865 -662.5 -102.6)"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M276.6 287.7a142 142 0 01-57.1 0l-1.5 7a149 149 0 0060 0l-1.4-7z" transform="matrix(1.2929 -1.3819 -1.3912 -1.2842 -305.2 712)"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M276.6 287.7a142 142 0 01-57.1 0l-1.5 7a149 149 0 0060 0l-1.4-7z" transform="matrix(1.2929 -1.3819 1.3912 1.2842 -719.6 329.9)"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M267.7 308.5c-9.2 1.9-20.2 1-30 1-9.7 0-19.3-2.7-28.5-4.6l8.8-10.3a149.3 149.3 0 0060 0l-10.3 14z" transform="matrix(1.2929 -1.3819 1.3912 1.2842 -719.6 329.9)"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M276.6 287.7a142 142 0 01-57.1 0l-1.5 7a149 149 0 0060 0l-1.4-7z" transform="matrix(1.3912 1.2842 -1.2929 1.3819 -343.8 -345.2)"/>
+      <ellipse cx="82.1" cy="160.9" fill="silver" stroke="#000" stroke-width="1pt" rx="18.4" ry="20.1" transform="matrix(1.2929 -1.3819 1.3912 1.2842 -285.5 314.4)"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M267.6 281.5c-9.2 1.9-17.1 3-26.9 3s-23-.8-32.3-2.7l9.6 12.8a149.5 149.5 0 0060 0l-10.4-13.1z" transform="matrix(1.3912 1.2842 -1.2929 1.3819 -347 -315.2)"/>
+      <path fill="silver" stroke="#000" stroke-width="1pt" d="M174 271.8l-.9 14.8-3.2 4.5 1-15 3-4.3zm156.5-6.2l3.6 4.2 1 13.6-2.9-3-1.7-14.8z" transform="matrix(1.8992 0 0 1.8865 -662.5 -102.6)"/>
+      <ellipse cx="82.1" cy="160.9" fill="silver" stroke="#000" stroke-width="1pt" rx="18.4" ry="20.1" transform="matrix(1.2929 -1.3819 1.3912 1.2842 -733.9 329.9)"/>
+      <g fill="#fff133" stroke="#000">
+        <path stroke-width=".6" d="M301.2 396.9l17.7 17.7-17.7 17.7 8.8 8.8 17.7-17.7 35.5 35.5-17.7 17.7 8.8 8.8 17.7-17.7 17.8 17.7-53.2 53.2-35.4-35.4 17.7-17.8 8.9 8.9 8.8-8.9-35.4-35.4-8.9 8.9 8.9 8.8-17.7 17.7-17.7-17.7 8.8-8.8-8.8-8.9-35.5 35.4 8.9 8.9 8.8-8.9 17.8 17.8-17.8 17.7-8.8-8.9-8.9 8.9 35.5 35.4 8.8-8.9-8.8-8.8 17.7-17.7 35.4 35.4-53.1 53.1-17.8-17.7 17.8-17.7-9-8.8-17.6 17.7-35.5-35.5 17.8-17.7-8.9-8.8-17.7 17.7-17.7-17.7 124-124z" transform="matrix(2.2946 0 0 2.2438 143.1 -1733.7)"/>
+        <path stroke-width="1.3" d="M318.9 786.6V822l88.6 88.6v-70.8L389.8 822h-35.5L319 786.6z" transform="matrix(1.1473 0 0 1.1219 346.4 -1288.5)"/>
+        <path stroke-width="1.3" d="M230.4 698.8l70.4 70.4.8 35.2-71.2-71.3v-34.3z" transform="matrix(1.1473 0 0 1.1219 346.3 -1288.5)"/>
+        <path stroke-width="1.3" d="M301.2 804.3l35.4-35.4v-35.4l-35.4 35.4v35.4z" transform="matrix(1.1473 0 0 1.1219 346.4 -1288.5)"/>
+        <path stroke-width="1.3" d="M301.2 804.3l35.4-35.4v-35.4l-35.4 35.4v35.4z" transform="matrix(1.1473 0 0 1.1219 244.7 -1387.9)"/>
+        <path stroke-width="1.3" d="M248 644.9v35.4l17.8-17.7-17.8-17.7z" transform="matrix(1.1473 0 0 1.1219 346.4 -1288.5)"/>
+        <path stroke-width="1.3" d="M248 644.9v35.4l17.8-17.7-17.8-17.7z" transform="matrix(1.1473 0 0 1.1219 448 -1189.1)"/>
+        <path stroke-width="1.3" d="M230.4 698.8l35.8 35.4v35.4l-35.8-36.5v-34.3z" transform="matrix(1.1473 0 0 1.1219 284.9 -1349)"/>
+        <path stroke-width="1.3" d="M301.2 804.3l35.4-35.4v-35.4l-35.4 35.4v35.4z" transform="matrix(1.1473 0 0 1.1219 448 -1507.1)"/>
+        <path stroke-width="1.3" d="M301.2 804.3l35.4-35.4v-35.4l-35.4 35.4v35.4z" transform="matrix(1.1473 0 0 1.1219 366.7 -1427.6)"/>
+        <path stroke-width="1.3" d="M283.5 822l53.1-53.1v-35.4l-70.9 70.8 17.8 17.8z" transform="matrix(1.1473 0 0 1.1219 366.7 -1546.9)"/>
+        <path stroke-width="1.3" d="M248 644.9v35.4l17.8-17.7-17.8-17.7z" transform="matrix(1.1473 0 0 1.1219 468.3 -1447.5)"/>
+        <path stroke-width="1.3" d="M301.2 804.3L265.8 769v-35.4l35.4 35.4v35.4z" transform="matrix(1.1473 0 0 1.1219 448 -1507.1)"/>
+        <path stroke-width="1.3" d="M389.8 822l-53.2-53v-35.4l70.9 70.8-17.7 17.8z" transform="matrix(1.1473 0 0 1.1219 448 -1546.9)"/>
+        <path stroke-width="1.3" d="M230.4 698l70.9 71h35.4l17.7 17.6v70.9l-124-124.4v-35z" transform="matrix(1.1473 0 0 1.1219 569.8 -1387.9)"/>
+        <path stroke-width="1.3" d="M354.3 822l106.3-106.3h35.5L389.8 822h-35.5zm53.2 17.8l106.3-106.3-17.7-17.7L389.8 822l17.7 17.7z" transform="matrix(1.1473 0 0 1.1219 346.4 -1288.5)"/>
+        <path stroke-width="1.3" d="M407.5 839.8v70.8l106.3-106.3v-70.8L407.5 839.8z" transform="matrix(1.1473 0 0 1.1219 346.4 -1288.5)"/>
+        <path stroke-width="1.3" d="M354.3 822l106.3-106.3h35.5L389.8 822h-35.5zm53.2 17.8l106.3-106.3-17.7-17.7L389.8 822l17.7 17.7z" transform="matrix(1.1473 0 0 1.1219 509 -1447.5)"/>
+        <path stroke-width="1.3" d="M407.5 839.8v70.8l106.3-106.3v-70.8L407.5 839.8z" transform="matrix(1.1473 0 0 1.1219 509 -1447.5)"/>
+        <path stroke-width="1.3" d="M318.9 786.6l17.7-17.7v-35.4l-35.4 35.4 17.7 17.7z" transform="matrix(1.1473 0 0 1.1219 590.3 -1527)"/>
+        <path stroke-width="1.3" d="M318.9 786.6l17.7-17.7v-35.4l-35.4 35.4 17.7 17.7z" transform="matrix(1.1473 0 0 1.1219 488.6 -1626.4)"/>
+        <path stroke-width="1.3" d="M265.8 768.9v-35.4l17.7 17.7-17.7 17.7z" transform="matrix(1.1473 0 0 1.1219 448 -1348.1)"/>
+        <path stroke-width="1.3" d="M301.2 804.3L265.8 769l17.7-17.7 17.7 17.7v35.4z" transform="matrix(1.1473 0 0 1.1219 366.7 -1427.6)"/>
+        <path stroke-width="1.3" d="M301.2 804.3l-17.7-17.7 17.7-17.7v35.4z" transform="matrix(1.1473 0 0 1.1219 488.6 -1586.6)"/>
+      </g>
+    </g>
+    <g fill="#b00" stroke="#000" stroke-width="20">
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376.9 291.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376.9 289.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376.9 287.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 377 285.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376.8 299)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376.8 297.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376.8 295.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376.9 293.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 377 275.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 377 274.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 377 272)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 377.1 270.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 377 283.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 377 281.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 377 279.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 377 278)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376.6 322)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376.6 320.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376.6 318.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376.6 316.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376.5 329.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376.5 328)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376.5 325.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376.5 324.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376.7 306.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376.7 305)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376.8 302.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376.8 301.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376.6 314.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376.7 312.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376.7 310.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376.7 308.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376.2 352.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376.3 351)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376.3 349)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376.3 347.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376.2 358.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376.2 356.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376.2 354.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376.4 337.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376.4 335.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376.4 333.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376.5 331.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376.3 345)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376.3 343.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376.4 341.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376.4 339.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376 372)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376 370.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376 368.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376.1 366.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376 378)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376 376)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376 374.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376.1 364.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01298 .00767 -.00286 .01277 376.1 362.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01288 .00808 -.003 .01268 376.1 360.6)"/>
+    </g>
+    <g fill="#b00" stroke="#000" stroke-width="20">
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.5 291.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.5 289.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.5 287.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.5 286)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.5 299.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.5 297.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.5 295.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.5 293.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.4 276.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.5 274.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.4 272.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.4 270.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.5 283.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.5 282.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.5 280)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.5 278.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.6 322.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.6 320.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.6 318.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.6 316.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.6 330)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.6 328.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.6 326.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.6 324.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.6 306.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.6 305.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.5 303)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.6 301.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.6 314.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.6 312.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.6 310.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.6 309)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.7 353)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.7 351.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.7 349.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.7 347.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.7 359)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.7 356.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.7 355.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.6 337.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.7 336)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.6 333.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.6 332.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.7 345.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.7 343.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.7 341.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.7 339.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.8 372.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.8 370.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.7 368.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.8 366.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.8 378.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.8 376.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.8 374.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.7 364.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01308 .00754 -.00269 .0128 379.7 363)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.013 .00796 -.00283 .0127 379.7 360.8)"/>
+    </g>
+    <g fill="#b00" stroke="#000" stroke-width="14.3">
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0162 .00404 .00232 .0128 390 279.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0045 .013 -.01229 .00849 386.7 276.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01181 .00968 -.00565 .01213 388 278.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00986 .01097 -.01604 -.00222 386.4 273.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00934 .01104 -.01615 -.0021 388.6 273.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01037 .01067 -.01593 -.0027 377 273.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00985 .01076 -.01604 -.00257 379.1 273.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01037 .01067 -.01593 -.0027 381.8 273.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00934 .01104 -.01615 -.0021 383.7 273.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01037 .01067 -.01593 -.0027 373.9 272.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01138 .00976 -.01555 -.00406 375.4 272.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01504 .00625 -.01305 -.00773 374.5 271.2)"/>
+    </g>
+    <g fill="#b00" stroke="#000" stroke-width="14.3">
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01307 -.00787 -.01355 .0062 420.7 360.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01263 -.00807 -.0137 .00611 422.6 359.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01307 -.00787 -.01355 .0062 425 359.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01263 -.00807 -.0137 .00611 427 358.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01559 .00255 -.00363 .01263 441.4 352.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0103 .01036 .00644 .01175 443.3 347)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0157 .00296 -.00345 .0126 442.4 350.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01221 -.00878 -.01414 .0052 411.6 362.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01175 -.00895 -.01428 .0051 413.6 361.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0134 -.00747 -.01328 .0066 416.7 361.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01125 -.00939 -.01454 .00455 417.5 360.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01307 -.00787 -.01355 .0062 429.4 358)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01263 -.00807 -.0137 .00611 431.4 357.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00984 -.01067 -.0151 .0027 382.8 363.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00934 -.01075 -.01521 .00257 384.9 363.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00984 -.01067 -.0151 .0027 387.4 363.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00934 -.01075 -.01521 .00257 389.5 363.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00984 -.01067 -.0151 .0027 373.7 364)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00934 -.01075 -.01521 .00257 375.7 364)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00984 -.01067 -.0151 .0027 378.3 363.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00934 -.01075 -.01521 .00257 380.3 363.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01117 -.0097 -.01466 .00406 401.9 363.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01105 -.00955 -.01463 .00433 404.1 363.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01153 -.0094 -.0145 .00444 406.7 362.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01175 -.00895 -.01428 .0051 409.1 362.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00984 -.01067 -.0151 .0027 392 363.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01015 -.01023 -.01499 .00338 394.4 363.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01123 -.00966 -.01464 .00412 397.3 363.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00994 -.01037 -.01505 .00317 398.9 363.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0074 -.01197 -.01544 .00039 345.1 362)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00689 -.01198 -.01552 .00025 347.1 362.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00882 -.01127 -.0153 .00171 350.2 363)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00832 -.01133 -.0154 .00158 352.3 363)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00689 -.01198 -.01552 .00025 338 361.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0074 -.01197 -.01544 .00039 340.6 361.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00689 -.01198 -.01552 .00025 342.6 361.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00882 -.01127 -.0153 .00171 364 363.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00832 -.01133 -.0154 .00158 366 363.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00984 -.01067 -.0151 .0027 369 364)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00934 -.01075 -.01521 .00257 371.1 364)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00882 -.01127 -.0153 .00171 354.8 363.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00832 -.01133 -.0154 .00158 356.8 363.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00882 -.01127 -.0153 .00171 359.4 363.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00832 -.01133 -.0154 .00158 361.4 363.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01592 -.00203 .00451 -.01237 330 344.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01266 -.00804 -.00338 -.01268 327.5 348.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0085 -.01144 -.0083 -.0109 327.4 351.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.00338 -.013 -.01242 -.0078 328 355)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01585 .00085 .00735 -.01145 335 339.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01609 .00047 .00716 -.01145 333.4 341)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01577 -.00162 .0047 -.01239 331.2 342.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0009 -.01346 -.01428 -.00493 329.9 357.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00393 -.01288 -.01527 -.00232 332.5 359.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0074 -.01197 -.01544 .00039 336 360.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01563 -.00324 -.00984 .00997 434.9 356.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01507 -.0042 -.0106 .0095 435 356.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01583 -.00244 -.0091 .01045 439.4 354.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01496 -.00447 -.01083 .0093 436.6 355.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01467 -.00556 .01183 .00831 430.2 346.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01428 -.00583 .012 .00825 428.5 345.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01514 -.0046 .01102 .00905 425.6 344.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01428 -.00583 .012 .00825 436.5 349.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01467 -.00556 .01183 .00831 434.2 348.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01428 -.00583 .012 .00825 432.5 347.7)"/>
+    </g>
+    <g stroke-width="1pt" transform="matrix(.07228 0 0 .0858 364.6 299.2)">
+      <path fill="#fff133" stroke="#000" d="M212.6-1995v53.2h-53.1v35.5h53.1v106.3H248v-106.3h53.2v-35.5H248v-53.1h-35.4z"/>
+      <ellipse cx="239.2" cy="-1813.5" fill="#fff133" stroke="#000" rx="62" ry="57.3" transform="matrix(.57143 0 0 .61816 93.6 -679)"/>
+      <path fill="#fff" stroke="#000" d="M602.4-1119.4c0 68.5-10.5 145.7-29.3 205-120-26.4-268-39.7-339-39.7-87.6 0-246.2 13.3-345.3 26.5a630.8 630.8 0 01-30.5-191.8c0-273.8 105.2-390.2 367.5-496 233.3 105.8 376.6 222.2 376.6 496z" transform="matrix(1.0576 0 0 1.3394 -5.8 363.7)"/>
+      <path fill="#fff133" stroke="#000" d="M567-657.3c0-44-150.9-79.7-336.7-79.7s-336.6 35.7-336.6 79.7v26.6c0-44 150.8-70.9 336.6-70.9S567-657 567-613v-44.3z" transform="matrix(1.1715 0 0 .74463 -32.8 -634.9)"/>
+      <g fill="#fff133" stroke="#000">
+        <path d="M230.3-825.6l-53.1 53.2 35.4 35.4-17.7 17.7-35.5-35.4-53.1 53.1 53.1 53.2L195-684l17.7 17.8v53.1H248v-53.1l17.7-17.8 35.5 35.5 53.1-53.2-53.1-53.1-35.4 35.4L248-737l35.5-35.5-53.2-53.1z" transform="matrix(1.1725 0 0 .74463 -33 -766.8)"/>
+        <path d="M221-825.6l-8.4 53.2v35.4l-17.7 17.7v-35.4l-17.7 53.1 17.7 53.2V-684l17.7 17.8v53.1h17.7v-53.1L248-684v35.5l17.8-53.2-17.8-53.1v35.4L230.3-737v-35.4l-9.3-53.2z" transform="matrix(1.13516 -.18643 .29356 .72091 -190 -703.6)"/>
+        <path d="M221-825.6l-8.4 53.2v35.4l-17.7 17.7v-35.4l-17.7 53.1 17.7 53.2V-684l17.7 17.8v53.1h17.7v-53.1L248-684v35.5l17.8-53.2-17.8-53.1v35.4L230.3-737v-35.4l-9.3-53.2z" transform="matrix(1.1416 .16986 -.26746 .725 182.2 -778.4)"/>
+        <path d="M141.7-1020.5a38.1 38.1 0 0135.5-35.4c17.7 0 35.4 17.7 35.4 35.4s-17.7 35.4-17.7 35.4l70.8 70.9h-35.4l-53.1-53.1-53.2 53.1H88.6l70.9-70.9s-17.8-17.7-17.8-35.4z" transform="matrix(.92597 -.09509 .18717 .73508 28.8 -521.9)"/>
+        <path d="M141.7-1020.5a38.1 38.1 0 0135.5-35.4c17.7 0 35.4 17.7 35.4 35.4s-17.7 35.4-17.7 35.4l70.8 70.9h-35.4l-53.1-53.1-53.2 53.1H88.6l70.9-70.9s-17.8-17.7-17.8-35.4z" transform="matrix(.92699 .091 -.17909 .7359 124.8 -554)"/>
+        <path d="M567-657.3c0-44-150.9-79.7-336.7-79.7s-336.6 35.7-336.6 79.7v26.6c0-44 150.8-70.9 336.6-70.9S567-657 567-613v-44.3z" transform="matrix(1.1725 0 0 .74463 -33 -674.5)"/>
+      </g>
+      <path fill="#fff133" stroke="#000" d="M567-657.3c0-44-150.9-79.7-336.7-79.7s-336.6 35.7-336.6 79.7v26.6c0-44 150.8-70.9 336.6-70.9S567-657 567-613v-44.3z" transform="matrix(1.0735 0 0 .74463 -9.3 -386.9)"/>
+      <g fill="#fff133" stroke="#000">
+        <path d="M230.3-825.6l-53.1 53.2 35.4 35.4-17.7 17.7-35.5-35.4-53.1 53.1 53.1 53.2L195-684l17.7 17.8v53.1H248v-53.1l17.7-17.8 35.5 35.5 53.1-53.2-53.1-53.1-35.4 35.4L248-737l35.5-35.5-53.2-53.1z" transform="matrix(1.1042 0 0 .74463 -12.9 -518.8)"/>
+        <path d="M221-825.6l-8.4 53.2v35.4l-17.7 17.7v-35.4l-17.7 53.1 17.7 53.2V-684l17.7 17.8v53.1h17.7v-53.1L248-684v35.5l17.8-53.2-17.8-53.1v35.4L230.3-737v-35.4l-9.3-53.2z" transform="matrix(1.06903 -.18643 .27645 .72092 -160.7 -455.6)"/>
+        <path d="M221-825.6l-8.4 53.2v35.4l-17.7 17.7v-35.4l-17.7 53.1 17.7 53.2V-684l17.7 17.8v53.1h17.7v-53.1L248-684v35.5l17.8-53.2-17.8-53.1v35.4L230.3-737v-35.4l-9.3-53.2z" transform="matrix(1.0751 .16986 -.25188 .725 189.8 -530.4)"/>
+        <path d="M141.7-1020.5a38.1 38.1 0 0135.5-35.4c17.7 0 35.4 17.7 35.4 35.4s-17.7 35.4-17.7 35.4l70.8 70.9h-35.4l-53.1-53.1-53.2 53.1H88.6l70.9-70.9s-17.8-17.7-17.8-35.4z" transform="matrix(.87203 -.09509 .17626 .73508 45.4 -273.9)"/>
+        <path d="M141.7-1020.5a38.1 38.1 0 0135.5-35.4c17.7 0 35.4 17.7 35.4 35.4s-17.7 35.4-17.7 35.4l70.8 70.9h-35.4l-53.1-53.1-53.2 53.1H88.6l70.9-70.9s-17.8-17.7-17.8-35.4z" transform="matrix(.873 .091 -.16866 .7359 135.8 -306)"/>
+        <path d="M567-657.3c0-44-150.9-79.7-336.7-79.7s-336.6 35.7-336.6 79.7v26.6c0-44 150.8-70.9 336.6-70.9S567-657 567-613v-44.3z" transform="matrix(1.1042 0 0 .74463 -12.9 -426.4)"/>
+      </g>
+      <path fill="#fff133" stroke="#000" d="M567-657.3c0-44-150.9-79.7-336.7-79.7s-336.6 35.7-336.6 79.7v26.6c0-44 150.8-70.9 336.6-70.9S567-657 567-613v-44.3z" transform="matrix(1.105 0 0 .74463 -16.1 -865.2)"/>
+      <g fill="#fff133" stroke="#000">
+        <path d="M230.3-825.6l-53.1 53.2 35.4 35.4-17.7 17.7-35.5-35.4-53.1 53.1 53.1 53.2L195-684l17.7 17.8v53.1H248v-53.1l17.7-17.8 35.5 35.5 53.1-53.2-53.1-53.1-35.4 35.4L248-737l35.5-35.5-53.2-53.1z" transform="matrix(1.0799 0 0 .70238 -6.2 -1031.3)"/>
+        <path d="M221-825.6l-8.4 53.2v35.4l-17.7 17.7v-35.4l-17.7 53.1 17.7 53.2V-684l17.7 17.8v53.1h17.7v-53.1L248-684v35.5l17.8-53.2-17.8-53.1v35.4L230.3-737v-35.4l-9.3-53.2z" transform="matrix(1.0455 -.17585 .27037 .68 -150.8 -971.8)"/>
+        <path d="M221-825.6l-8.4 53.2v35.4l-17.7 17.7v-35.4l-17.7 53.1 17.7 53.2V-684l17.7 17.8v53.1h17.7v-53.1L248-684v35.5l17.8-53.2-17.8-53.1v35.4L230.3-737v-35.4l-9.3-53.2z" transform="matrix(1.05143 .16022 -.24634 .68386 192.1 -1042.3)"/>
+        <path d="M141.7-1020.5a38.1 38.1 0 0135.5-35.4c17.7 0 35.4 17.7 35.4 35.4s-17.7 35.4-17.7 35.4l70.8 70.9h-35.4l-53.1-53.1-53.2 53.1H88.6l70.9-70.9s-17.8-17.7-17.8-35.4z" transform="matrix(.85284 -.0897 .17238 .69338 50.8 -800.3)"/>
+        <path d="M141.7-1020.5a38.1 38.1 0 0135.5-35.4c17.7 0 35.4 17.7 35.4 35.4s-17.7 35.4-17.7 35.4l70.8 70.9h-35.4l-53.1-53.1-53.2 53.1H88.6l70.9-70.9s-17.8-17.7-17.8-35.4z" transform="matrix(.85378 .08583 -.16494 .69414 139.3 -830.7)"/>
+        <path d="M567-657.3c0-44-150.9-79.7-336.7-79.7s-336.6 35.7-336.6 79.7v26.6c0-44 150.8-70.9 336.6-70.9S567-657 567-613v-44.3z" transform="matrix(1.0799 0 0 .70238 -6.2 -944.2)"/>
+      </g>
+      <ellipse cx="234.1" cy="-822.1" fill="#b90000" rx="375.9" ry="120.5" transform="matrix(.96627 0 0 .41385 13 -517.5)"/>
+    </g>
+    <path fill="#fff" stroke="#000" stroke-width="1pt" d="M513.8-790.2l35.4-17.7 35.4 17.7s-73.3 35.5-73.3 159.5c0 88.6 125.2 106.3 125.2 212.6 0 45.6-34.1 88.6-69.6 88.6s-88.6-17.7-141.7-70.9c35.4 17.7 76 37.3 106.3 36 19.6-.3 55-17.7 55-53 0-71-122.8-107-122.8-213.3 0-124 50-159.4 50-159.4z" transform="matrix(.21542 0 0 .17871 313.9 342.3)"/>
+    <path fill="#b00" stroke="#000" stroke-width="20" d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01859 -.00133 .0085 .02009 379 385.3)"/>
+    <path fill="#fff" stroke="#000" stroke-width="1pt" d="M520.3-790.2l46.6-17.7 10 17.7s-70.6 35.5-70.6 159.5c0 88.6 125.9 106.3 125.9 212.6 0 45.6-26.7 87.4-65.3 88.6-73.4 2.3-90.4-24-141.7-70.9 43.1 32.3 105 46.8 129 34.2 29.4-15.4 35-36 35-53.8 0-70.9-120.9-104.4-120.9-210.7 0-124 52-159.4 52-159.4z" transform="matrix(.21542 0 0 .17871 313.9 342.3)"/>
+    <path fill="#fff" stroke="#000" stroke-width="1pt" d="M513.3-789.7c7-2.4 36-18.2 71.3 17.3 17.8 17.7 17.8 53.1 17.8 70.8l53.1-53.1s-29-86.9-107.6-53.6a334.8 334.8 0 00-34.5 18.6z" transform="matrix(.21542 0 0 .17871 313.9 342.3)"/>
+    <path fill="#fff" stroke="#000" stroke-width="1pt" d="M523.8-796c8.8-2.8 36.7-6.3 64.6 18.6 17.7 17.7 19 42.9 19 60.6l40.6-38c3.4-3.1-24.8-81.2-99.2-54a154 154 0 00-25 12.9z" transform="matrix(.21542 0 0 .17871 313.9 342.3)"/>
+    <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M344.5-596.3l9.2 22.1s1.5-9.7 8.5-11.5l7-1.7s27 49.3 32.3 58.1c5.3 8.8-3.6 16.8-1.8 16.8s26.5-11.5 26.5-11.5-10.6.9-15-6.2-34.8-60-34.8-60 6.1-2.6 11.4-5.2c5.3-2.7 10.6 8 10.6 8L385.2-614s0 8.9-4.4 10.6c-4.4 1.8-8 3.6-8 3.6s-3.5-6.2-8-13.3c-4.4-7 4.5-14.1 4.5-14.1l-23 11.5s8 4.4 10.6 8.8l5.3 8.8s-3.2 1.8-8.2 3.5c-3.6 1.9-7.7 0-9.5-1.7z" transform="matrix(.17534 -.01853 .05985 .15541 398.7 344.8)"/>
+    <path fill="#fff133" stroke="#000" stroke-width="1pt" d="M344.5-596.3l9.2 22.1s1.5-9.7 8.5-11.5l7-1.7s27 49.3 32.3 58.1c5.3 8.8-3.6 16.8-1.8 16.8s26.5-11.5 26.5-11.5-10.6.9-15-6.2-34.8-60-34.8-60 6.1-2.6 11.4-5.2c5.3-2.7 10.6 8 10.6 8L385.2-614s0 8.9-4.4 10.6c-4.4 1.8-8 3.6-8 3.6s-3.5-6.2-8-13.3c-4.4-7 4.5-14.1 4.5-14.1l-23 11.5s8 4.4 10.6 8.8l5.3 8.8s-3.2 1.8-8.2 3.5c-3.6 1.9-7.7 0-9.5-1.7z" transform="matrix(-.15954 .02165 -.00278 -.11904 505.5 127.7)"/>
+    <path fill="#b00" stroke="#000" stroke-width="20" d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01859 -.00133 .0085 .02009 382 385)"/>
+    <path fill="#b00" stroke="#000" stroke-width="20" d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0313 -.00133 .01432 .02009 377.4 387.7)"/>
+    <path fill="#b00" stroke="#000" stroke-width="20" d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0313 -.00133 .01432 .02009 380.4 387.5)"/>
+    <path fill="#b00" stroke="#000" stroke-width="20" d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0388 -.00133 .01775 .02009 376.2 390.5)"/>
+    <path fill="#b00" stroke="#000" stroke-width="20" d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0388 -.00133 .01775 .02009 379.9 390.3)"/>
+    <path fill="#ffe000" d="M0 0h256v512H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/vc.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/vc.svg
new file mode 100644
index 0000000..ee72f78
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/vc.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-vc" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#f4f100" d="M0 0h510.4v512H0z"/>
+    <path fill="#199a00" d="M385.6 0H512v512H385.6z"/>
+    <path fill="#0058aa" d="M0 0h126.4v512H0z"/>
+  </g>
+  <path fill="#199a00" fill-rule="evenodd" d="M191.2 138.6l-49.5 76.2 47.8 79.3 46.7-78.6-45-76.9zm129.4 0L271 214.8l47.7 79.3 46.8-78.6-45-76.9zm-65.4 103.9l-49.4 76.1 47.7 79.4 46.7-78.7-45-76.8z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ve.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ve.svg
new file mode 100644
index 0000000..205fe84
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ve.svg
@@ -0,0 +1,26 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-ve" viewBox="0 0 512 512">
+  <defs>
+    <g id="d" transform="translate(0 -36)">
+      <g id="c">
+        <g id="b">
+          <path id="a" fill="#fff" d="M0-5L-1.5-.2l2.8.9z"/>
+          <use width="180" height="120" transform="scale(-1 1)" xlink:href="#a"/>
+        </g>
+        <use width="180" height="120" transform="rotate(72)" xlink:href="#b"/>
+      </g>
+      <use width="180" height="120" transform="rotate(-72)" xlink:href="#b"/>
+      <use width="180" height="120" transform="rotate(144)" xlink:href="#c"/>
+    </g>
+  </defs>
+  <path fill="#cf142b" d="M0 0h512v512H0z"/>
+  <path fill="#00247d" d="M0 0h512v341.3H0z"/>
+  <path fill="#fc0" d="M0 0h512v170.7H0z"/>
+  <g id="f" transform="translate(256.3 358.4) scale(4.265)">
+    <g id="e">
+      <use width="180" height="120" transform="rotate(10)" xlink:href="#d"/>
+      <use width="180" height="120" transform="rotate(30)" xlink:href="#d"/>
+    </g>
+    <use width="180" height="120" transform="rotate(40)" xlink:href="#e"/>
+  </g>
+  <use width="180" height="120" transform="rotate(-80 256.3 358.4)" xlink:href="#f"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/vg.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/vg.svg
new file mode 100644
index 0000000..9572de3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/vg.svg
@@ -0,0 +1,128 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-vg" viewBox="0 0 512 512">
+  <defs>
+    <linearGradient id="a">
+      <stop offset="0" stop-color="red"/>
+      <stop offset="1" stop-color="#ff0"/>
+    </linearGradient>
+    <linearGradient id="c" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.65977 0 0 1.4919 -3.7 -.7)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="d" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.65977 0 0 1.4919 -3.7 -.5)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="e" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.65977 0 0 1.4919 -4.5 -.3)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="f" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.65977 0 0 1.4919 -3.7 0)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="g" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.65977 0 0 1.4919 -3.7 .2)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="h" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.65977 0 0 1.4919 -3.7 .4)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="i" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.65977 0 0 1.4919 -4.5 .4)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="j" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.65977 0 0 1.4919 -4.5 .2)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="k" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.65977 0 0 1.4919 -4.5 0)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="m" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.65977 0 0 1.4919 -4.5 -.5)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="n" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.65977 0 0 1.4919 -3.8 -.3)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="l" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.85004 0 0 1.9222 723.3 109.7)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <clipPath id="b">
+      <path fill-opacity=".7" d="M0 0h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#b)">
+    <path fill="#006" d="M0 0h1024v512H0z"/>
+    <path fill="#006" fill-rule="evenodd" d="M0 0h512v256H0z"/>
+    <g stroke-width="1pt">
+      <path fill="#fff" d="M0 0v28.6L454.8 256H512v-28.6L57.2 0H0zm512 0v28.6L57.2 256H0v-28.6L454.8 0H512z"/>
+      <path fill="#fff" d="M213.3 0v256h85.4V0h-85.4zM0 85.3v85.4h512V85.3H0z"/>
+      <path fill="#c00" d="M0 102.4v51.2h512v-51.2H0zM230.4 0v256h51.2V0h-51.2zM0 256l170.7-85.3h38.1L38.2 256H0zM0 0l170.7 85.3h-38.2L0 19.1V0zm303.2 85.3L473.8 0H512L341.3 85.3h-38.1zM512 256l-170.7-85.3h38.2L512 236.9V256z"/>
+    </g>
+    <path fill="#fff" fill-rule="evenodd" d="M256.4 193.6l213.7-.8-.4 190.3s7.5 29-89.6 73c34.9-3.6 73-40.9 73-40.9s15.4-19.8 23-8.7c7.5 11.1 14.6 16.6 20.1 21 5.6 4.4 10 16.3 1.6 25s-21.4 9.9-25-.8c-5.5 2.8-39.6 44-109.4 46-71-1.2-109.8-46.4-109.8-46.4s-9.5 15-23 3.2c-13-15.5-3.1-25.4-3.1-25.4s11-6.3 14.2-10.7c5.2-6 6.8-13.9 15.5-13.9 10.3.8 14.3 9.1 14.3 9.1s35.6 37.7 74.1 42.5c-86.8-41.7-90-67.4-89.6-73.8l.4-188.7z"/>
+    <path fill="#006129" fill-rule="evenodd" stroke="#000" stroke-width="1.7" d="M261.5 198.8l203.8-1.2v183.1c.4 23.8-39.6 48-102.3 79-64.6-33.4-101.9-53.6-102.3-79.4l.9-181.5z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.7" d="M286 400.6l12-17.7 12.2 17.7"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M300.5 394a2.4 2.4 0 11-4.8 0 2.4 2.4 0 014.8 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M288.3 413.6h18.6s.4-2.3-1.9-3.8c9.8-1.3 7.2-10 15.4-10.4 1.6.2-4.3 3.6-4.3 3.6s-4.9 3.5-2.6 5.3c1.7 1.4 2.5-.9 2.8-2.6.2-1.7 7.9-2.8 6.8-7.7-1.8-4-12.6 2.7-12.6 2.7H303c-.5-1-2.6-4.4-4.8-4.4-2.6.1-4.4 4.4-4.4 4.4h-17.4s-.6 4.4 8.2 5.3a10.5 10.5 0 005.3 4c-1.2 1-1.5 2-1.5 3.6z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M289.6 409.8h15.6m-22.7-9.1s1.3 7.2 7 9"/>
+    <path fill="url(#c)" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M66.3 170.5c.5-2.1 1.3-2.5 2.2-5.2.1-2.7-2.2-2.4-1.5-4.1 1.2-1.9.6-3.6-1.6-5 .4 2.4-3 4.7-3 6.7s1.8 1.6 1.6 4.6c0 1.8-.5 1.3-.6 3h3z" transform="translate(196.1 180.9) scale(1.2884)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M300.3 383.4a2.2 2.2 0 11-4.4 0 2.2 2.2 0 014.4 0z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.7" d="M285.4 364.2l12-17.6 12 17.6"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M299.8 357.6a2.4 2.4 0 11-4.8 0 2.4 2.4 0 014.8 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M287.6 377.3h18.7s.3-2.4-2-3.9c9.8-1.3 7.2-10 15.4-10.4 1.6.2-4.2 3.7-4.2 3.7s-5 3.4-2.7 5.2c1.8 1.4 2.5-.9 2.8-2.6.2-1.7 8-2.8 6.8-7.7-1.8-4-12.6 2.7-12.6 2.7h-7.6c-.5-.9-2.6-4.3-4.8-4.3-2.6 0-4.4 4.3-4.4 4.3h-17.3s-.6 4.5 8.2 5.3a10.5 10.5 0 005.2 4c-1.2 1-1.5 2.1-1.5 3.7z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M289 373.5h15.5m-22.6-9.2s1.2 7.3 7 9"/>
+    <path fill="url(#d)" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M66.3 170.5c.5-2.1 1.3-2.5 2.2-5.2.1-2.7-2.2-2.4-1.5-4.1 1.2-1.9.6-3.6-1.6-5 .4 2.4-3 4.7-3 6.7s1.8 1.6 1.6 4.6c0 1.8-.5 1.3-.6 3h3z" transform="translate(195.4 144.5) scale(1.2884)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M299.6 347a2.2 2.2 0 11-4.4 0 2.2 2.2 0 014.4 0z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.7" d="M413.1 331.2l12-17.7 12.2 17.7"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M427.6 324.6a2.4 2.4 0 11-4.8 0 2.4 2.4 0 014.8 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M415.4 344.2H434s.3-2.3-1.9-3.8c9.8-1.4 7.2-10 15.4-10.5 1.6.3-4.3 3.7-4.3 3.7s-4.9 3.5-2.6 5.3c1.7 1.4 2.5-1 2.8-2.6.2-1.7 7.9-2.8 6.8-7.7-1.8-4-12.6 2.7-12.6 2.7H430c-.5-1-2.6-4.4-4.8-4.4-2.6.1-4.4 4.4-4.4 4.4h-17.4s-.6 4.4 8.2 5.3a10.5 10.5 0 005.3 4c-1.2 1-1.5 2-1.5 3.6z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M416.8 340.4h15.5m-22.7-9.1s1.3 7.2 7 9"/>
+    <path fill="url(#e)" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M66.3 170.5c.5-2.1 1.3-2.5 2.2-5.2.1-2.7-2.2-2.4-1.5-4.1 1.2-1.9.6-3.6-1.6-5 .4 2.4-3 4.7-3 6.7s1.8 1.6 1.6 4.6c0 1.8-.5 1.3-.6 3h3z" transform="translate(323.2 111.5) scale(1.2884)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M427.4 314a2.2 2.2 0 11-4.4 0 2.2 2.2 0 014.4 0z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.7" d="M288.3 295.8l12-17.6 12.2 17.7"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M302.8 289.2a2.4 2.4 0 11-4.8 0 2.4 2.4 0 014.8 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M290.6 308.9h18.6s.4-2.4-1.9-3.9c9.8-1.3 7.2-10 15.4-10.4 1.6.2-4.3 3.7-4.3 3.7s-4.9 3.4-2.6 5.2c1.7 1.4 2.5-.8 2.8-2.6.2-1.7 7.9-2.8 6.8-7.7-1.8-4-12.6 2.7-12.6 2.7h-7.6c-.5-.9-2.6-4.3-4.8-4.3-2.6 0-4.4 4.3-4.4 4.3h-17.4s-.6 4.5 8.2 5.3a10.5 10.5 0 005.3 4c-1.2 1-1.5 2.1-1.5 3.7z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M292 305h15.5m-22.7-9s1.3 7.2 7 9"/>
+    <path fill="url(#f)" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M66.3 170.5c.5-2.1 1.3-2.5 2.2-5.2.1-2.7-2.2-2.4-1.5-4.1 1.2-1.9.6-3.6-1.6-5 .4 2.4-3 4.7-3 6.7s1.8 1.6 1.6 4.6c0 1.8-.5 1.3-.6 3h3z" transform="translate(198.4 76.1) scale(1.2884)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M302.6 278.6a2.2 2.2 0 11-4.4 0 2.2 2.2 0 014.4 0z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.7" d="M288.6 261l12-17.6 12.1 17.7"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M303 254.5a2.4 2.4 0 11-4.7 0 2.4 2.4 0 014.8 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M290.9 274.1h18.6s.3-2.3-2-3.8c9.8-1.3 7.3-10 15.5-10.4 1.6.2-4.3 3.6-4.3 3.6s-5 3.5-2.7 5.3c1.8 1.4 2.6-.9 2.8-2.6.3-1.7 8-2.8 6.9-7.7-1.9-4-12.6 2.7-12.6 2.7h-7.7c-.4-1-2.6-4.3-4.7-4.4-2.6.1-4.4 4.4-4.4 4.4h-17.4s-.6 4.4 8.2 5.3a10.5 10.5 0 005.2 4c-1.1 1-1.4 2-1.4 3.6z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M292.2 270.4l15.6-.1m-22.7-9.1s1.2 7.3 7 9"/>
+    <path fill="url(#g)" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M66.3 170.5c.5-2.1 1.3-2.5 2.2-5.2.1-2.7-2.2-2.4-1.5-4.1 1.2-1.9.6-3.6-1.6-5 .4 2.4-3 4.7-3 6.7s1.8 1.6 1.6 4.6c0 1.8-.5 1.3-.6 3h3z" transform="translate(198.7 41.4) scale(1.2884)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M302.9 243.9a2.2 2.2 0 11-4.4 0 2.2 2.2 0 014.4 0z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.7" d="M289.3 225.8l12-17.6 12 17.7"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M303.7 219.2a2.4 2.4 0 11-4.8 0 2.4 2.4 0 014.8 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M291.5 238.9h18.7s.3-2.4-2-3.9c9.8-1.3 7.3-10 15.4-10.4 1.6.3-4.2 3.7-4.2 3.7s-5 3.4-2.7 5.2c1.8 1.4 2.6-.8 2.8-2.5.2-1.7 8-2.8 6.8-7.7-1.8-4-12.6 2.7-12.6 2.7h-7.6c-.5-1-2.6-4.4-4.8-4.4-2.6 0-4.4 4.4-4.4 4.4h-17.3s-.6 4.4 8.2 5.3a10.5 10.5 0 005.2 4c-1.1.9-1.5 2-1.5 3.6z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M292.9 235.1h15.5m-22.6-9.2s1.2 7.3 7 9"/>
+    <path fill="url(#h)" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M66.3 170.5c.5-2.1 1.3-2.5 2.2-5.2.1-2.7-2.2-2.4-1.5-4.1 1.2-1.9.6-3.6-1.6-5 .4 2.4-3 4.7-3 6.7s1.8 1.6 1.6 4.6c0 1.8-.5 1.3-.6 3h3z" transform="translate(199.4 6.1) scale(1.2884)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M303.5 208.6a2.2 2.2 0 11-4.4 0 2.2 2.2 0 014.4 0z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.7" d="M414.1 226.4l12-17.7 12.1 17.8"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M428.5 219.8a2.4 2.4 0 11-4.7 0 2.4 2.4 0 014.7 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M416.4 239.5H435s.3-2.4-2-3.9c9.8-1.3 7.3-10 15.5-10.4 1.6.2-4.3 3.6-4.3 3.6s-5 3.5-2.7 5.3c1.8 1.4 2.6-.9 2.8-2.6.3-1.7 8-2.8 6.9-7.7-1.9-4-12.6 2.7-12.6 2.7h-7.7c-.5-.9-2.6-4.3-4.8-4.3-2.6 0-4.4 4.3-4.4 4.3h-17.3s-.6 4.5 8.2 5.3a10.5 10.5 0 005.2 4c-1.1 1-1.4 2.1-1.4 3.7z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M417.7 235.7h15.5m-22.6-9.2s1.2 7.3 7 9"/>
+    <path fill="url(#i)" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M66.3 170.5c.5-2.1 1.3-2.5 2.2-5.2.1-2.7-2.2-2.4-1.5-4.1 1.2-1.9.6-3.6-1.6-5 .4 2.4-3 4.7-3 6.7s1.8 1.6 1.6 4.6c0 1.8-.5 1.3-.6 3h3z" transform="translate(324.2 6.7) scale(1.2884)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M428.3 209.2a2.2 2.2 0 11-4.4 0 2.2 2.2 0 014.4 0z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.7" d="M413 261l12-17.7 12 17.7"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M427.4 254.4a2.4 2.4 0 11-4.8 0 2.4 2.4 0 014.8 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M415.2 274l18.7.1s.3-2.4-2-3.9c9.8-1.3 7.2-10 15.4-10.4 1.6.2-4.3 3.6-4.3 3.6s-4.9 3.5-2.6 5.3c1.8 1.4 2.5-.9 2.8-2.6.2-1.7 8-2.8 6.8-7.7-1.8-4-12.6 2.7-12.6 2.7h-7.6c-.5-.9-2.6-4.3-4.8-4.3-2.6 0-4.4 4.3-4.4 4.3h-17.4s-.5 4.5 8.3 5.3a10.5 10.5 0 005.2 4c-1.2 1-1.5 2.1-1.5 3.7z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M416.6 270.3H432m-22.7-9.2s1.3 7.3 7 9"/>
+    <path fill="url(#j)" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M66.3 170.5c.5-2.1 1.3-2.5 2.2-5.2.1-2.7-2.2-2.4-1.5-4.1 1.2-1.9.6-3.6-1.6-5 .4 2.4-3 4.7-3 6.7s1.8 1.6 1.6 4.6c0 1.8-.5 1.3-.6 3h3z" transform="translate(323 41.3) scale(1.2884)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M427.2 243.8a2.2 2.2 0 11-4.4 0 2.2 2.2 0 014.4 0z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.7" d="M411.4 296.4l12-17.7 12.1 17.7"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M425.9 289.8a2.4 2.4 0 11-4.8 0 2.4 2.4 0 014.8 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M413.7 309.4h18.6s.3-2.3-2-3.8c9.8-1.3 7.3-10 15.5-10.5 1.6.3-4.3 3.7-4.3 3.7s-5 3.5-2.7 5.3c1.8 1.4 2.6-.9 2.8-2.6.3-1.7 8-2.8 6.9-7.7-1.8-4-12.6 2.7-12.6 2.7h-7.7c-.4-1-2.6-4.4-4.7-4.4-2.6.1-4.4 4.4-4.4 4.4h-17.4s-.6 4.4 8.2 5.3a10.5 10.5 0 005.3 4c-1.2 1-1.5 2-1.5 3.6z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M415 305.6h15.6m-22.7-9.1s1.2 7.2 7 9"/>
+    <path fill="url(#k)" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M66.3 170.5c.5-2.1 1.3-2.5 2.2-5.2.1-2.7-2.2-2.4-1.5-4.1 1.2-1.9.6-3.6-1.6-5 .4 2.4-3 4.7-3 6.7s1.8 1.6 1.6 4.6c0 1.8-.5 1.3-.6 3h3z" transform="translate(321.5 76.7) scale(1.2884)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M425.7 279.2a2.2 2.2 0 11-4.4 0 2.2 2.2 0 014.4 0z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.3" d="M413 401l12-17.7 12 17.7"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M427.4 394.3a2.4 2.4 0 11-4.8 0 2.4 2.4 0 014.8 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M415.2 414H434s.2-2.4-2-3.8c9.8-1.4 7.2-10 15.4-10.5 1.6.3-4.3 3.7-4.3 3.7s-4.9 3.5-2.6 5.2c1.7 1.4 2.5-.8 2.8-2.5.2-1.7 7.9-2.8 6.8-7.7-1.8-4-12.6 2.7-12.6 2.7l-7.6-.1c-.5-.9-2.6-4.3-4.8-4.3-2.6 0-4.4 4.4-4.4 4.4h-17.4s-.5 4.4 8.3 5.3a10.5 10.5 0 005.2 4c-1.2.9-1.5 2-1.5 3.6z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M416.6 410.2H432m-22.7-9.2s1.3 7.3 7 9"/>
+    <path fill="url(#l)" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M814.5 330.3c.6-2.8 1.6-3.3 2.8-6.8.2-3.5-2.8-3-2-5.3 1.6-2.4.8-4.7-2-6.5.5 3.2-3.8 6.1-3.8 8.7 0 2.6 2.2 2 2 6 .1 2.2-.6 1.7-.8 3.9h3.8z" transform="translate(-406 70.7)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M427.2 383.7a2.2 2.2 0 11-4.4 0 2.2 2.2 0 014.4 0z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.7" d="M412.8 366l12-17.7 12 17.7"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M427.2 359.4a2.4 2.4 0 11-4.8 0 2.4 2.4 0 014.8 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M415 379h18.7s.3-2.4-2-3.8c9.8-1.4 7.2-10 15.4-10.5 1.6.3-4.2 3.7-4.2 3.7s-5 3.5-2.7 5.2c1.8 1.4 2.5-.8 2.8-2.5.2-1.7 8-2.8 6.8-7.7-1.8-4-12.6 2.7-12.6 2.7h-7.6c-.5-1-2.6-4.4-4.8-4.4-2.6.1-4.4 4.4-4.4 4.4h-17.3s-.6 4.4 8.2 5.3a10.5 10.5 0 005.2 4c-1.2.9-1.5 2-1.5 3.6z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M416.4 375.2h15.5m-22.6-9.1s1.2 7.2 7 9"/>
+    <path fill="url(#m)" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M66.3 170.5c.5-2.1 1.3-2.5 2.2-5.2.1-2.7-2.2-2.4-1.5-4.1 1.2-1.9.6-3.6-1.6-5 .4 2.4-3 4.7-3 6.7s1.8 1.6 1.6 4.6c0 1.8-.5 1.3-.6 3h3z" transform="translate(322.9 146.3) scale(1.2884)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M427 348.7a2.2 2.2 0 11-4.4 0 2.2 2.2 0 014.4 0z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.7" d="M311.1 333.4l12-17.6 12.2 17.7"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M325.6 326.8a2.4 2.4 0 11-4.8 0 2.4 2.4 0 014.8 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M313.4 346.5H332s.3-2.4-1.9-3.8c9.8-1.4 7.2-10 15.4-10.5 1.6.3-4.3 3.7-4.3 3.7s-4.9 3.5-2.6 5.2c1.7 1.4 2.5-.8 2.8-2.5.2-1.7 7.9-2.8 6.8-7.7-1.8-4-12.6 2.7-12.6 2.7H328c-.5-1-2.6-4.4-4.8-4.4-2.6 0-4.4 4.4-4.4 4.4h-17.4s-.6 4.4 8.2 5.3a10.5 10.5 0 005.3 4c-1.2.9-1.5 2-1.5 3.6z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M314.8 342.7h15.5m-22.7-9.2s1.3 7.3 7 9"/>
+    <path fill="url(#n)" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M66.3 170.5c.5-2.1 1.3-2.5 2.2-5.2.1-2.7-2.2-2.4-1.5-4.1 1.2-1.9.6-3.6-1.6-5 .4 2.4-3 4.7-3 6.7s1.8 1.6 1.6 4.6c0 1.8-.5 1.3-.6 3h3z" transform="translate(221.2 113.7) scale(1.2884)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M325.4 316.2a2.2 2.2 0 11-4.4 0 2.2 2.2 0 014.4 0z"/>
+    <g stroke="#000">
+      <path fill="#f7c600" fill-rule="evenodd" stroke-width=".8" d="M375.5 417.4s4.9 11.2 10.4 4.3 3.5-9.8 3.5-9.8L377 405l-3.6 7.7 2.1 4.6z"/>
+      <path fill="#ffc6b5" fill-rule="evenodd" stroke-width=".8" d="M386.2 416s.8 0 1.5-1.2-1.5-1.7-2.5-3l-1 2 2 2.1zm-28.1-3l-11 5.9s-5.4 1-5.8 0c-.4-1 .1-2 3-2.2 2.8-.1 10.5-7.1 10.5-7.1l3.3 3.3zm.1-194.6l.4 4c.1 1.3-2.2 4.1-2.3 4s-1.2.1-1 1 1.7 1 1.7 1-.7 2.9 0 3c.7.1-1.8 3.7 0 4.6 1.7 1 4.7 2.2 6 1.9 1.4-.3 0 5.3 0 5.3l-3.7 8 20.8-2-4.3-7s-2-1.3-1.5-5.3c.5-3.9-.3-21.6-.3-21.6l-14.9-2-.9 5.1zm-3.8 30.9s-6.8 3-6.5 11.4c-1.7 8.2-2.7 16.3-2.7 16.3s-8 9-10.4 12.3c-2.4 3.2-6 9.8-7.4 11.6s-6.6 7.6-6.5 9.7c.1 2.2-1.2 11.8 4 12.9 1.4.5 5.7-11.1 5.7-11.1s.3-5-1.2-6 3.3-4.2 3.3-4.2l11-8.2c2-1.6 7.6-7.8 7.6-7.8l3.1-37z"/>
+      <path fill="#fff" fill-rule="evenodd" stroke-width=".8" d="M362.1 242.9s1.8 4.7 5.7 4c4-.9 8.5-4.5 8.5-4.5s3.7-.2 4.2.4c.5.5 9.9 9.6 9.6 12.4-.3 2.8-4.3 2-5.8 4s-4 6.5-3.3 10 2.7 8.2 2.5 10-1.8 2.2-1.8 3.2 1.2 2.5 1.2 4.3-1.6 4.3-1.3 6c.3 1.8.4 7 .4 7l-.4 23.8s1.3.8 1.5 2.1c.1 1.4 9.2 40.7 9.2 40.7s-.4 1.2-1.4 1 3.7 6.2 3.8 8 4.7 15.5 4.6 17.4c-.1 1.9-.8 6-1.2 6.2-.4.1 3 8.6 2.4 10-.5 1.3-6 1.2-6 1.2l-1.6-.3s.2 1.8-1 2-9-.5-9-.5-2.3 3.5-3.6 3.4c-1.4-.1-3.1-2.6-3.5-2.2-.4.4 1.2 2.7.8 3.4-.4.7-7.3 2.2-8.7-1-1.3-3.3.8-2.5.4-3.2-.4-.7-3.5-2.4-4.4-1.9s2.4 1.4 2.3 2.7c-.2 1.4-3 3.4-4 3.4s-3.7-5-7.5-4.4-6.2 1.4-6.2 1.4-4.5 2-6.4 1.5c-1.9-.4-2.7-1.9-2.7-2.7s1.4-4.3 1.2-5.4-1.2-2.1-1.2-3.8a31 31 0 013.1-7.1l-.1-24.9s-2.9 0-3-1.8 4.3-39.3 5-41.7c.7-2.5 2.4-11.1 2.4-11.1s-2 1-2.1 0 6-22.4 6-22.4 1.1-10.7 1.1-13.6-.5-6.7-.5-6.7-5.6-2.4-5.7-6c-.5-5.7 5.3-8.9 6-10.8l2.7-7.5s3-5.2 7.8-6z"/>
+      <path fill="#f7c600" fill-rule="evenodd" stroke-width=".8" d="M360.1 414.6s-13.1 6.9-15 7.4c-2 .5-3.1-2.3-1.2-2.8 1.9-.6 4.8-.8 4.8-.8s-4.4-3.6-4.3-3.7l6.2-2.3c.2 0 2 3.5 3.1 3.3s4.8-3 4.8-3l1.6 1.9z"/>
+      <path fill="#ffc6b5" fill-rule="evenodd" stroke-width=".8" d="M378.6 418.3c1.2 1.6 1.7 4.4 4.5 2.8 2.9-1.6-1.4-4.6-1.4-4.6l-3.1 1.8z"/>
+      <path fill="#ffc6b5" fill-rule="evenodd" stroke-width=".8" d="M383.8 418s1.3 1.2 2.5 0-2.4-3.9-2.4-3.9l-1.8 2 1.6 2z"/>
+      <path fill="none" stroke-width=".8" d="M379.7 248.2s-12 7.7-11.8 10.4m14.5-9l-2.8 2.9m6.4.3s-6 4.8-5 8m-23-13.3s-1.8 3.6-1.4 4.9c.4 1.2 3.3 5.8 3.8 8.6.4 2.8 0 4.9 0 4.9m-5.6-11.6s.6 4.3 1.4 5c.8.9 3 4.5 3.2 6m-5.7 7s3.5 1.7 6.8-5m5.3-4.8c-.2 0-2.6 6.6 1.7 9s7.6 2.2 9.5 1.5c1.9-.6 3.9-1.9 3.9-1.9m-17-.5s.2 9 13.4 17.7m-12.9-9.3s-.1 7.8 5 11.4m-7.7-20.6s-4 11.6-7 12.8m5.8-4.3s-.1 8.4-1.2 11.4m-1.1 2s2.7 3.4 5.7 3.1c3-.3 4.2-3.8 6.2-3.2 2 .5 4 2.1 8.6 1.7m-6.7 3.5s0 7 1.2 7.6.7 7 .7 7m-18.4-17.8s-.1 6.5-1 8.8c-.8 2.3-2.4 6.2-2.1 9.6m-5.1 3.8c.6-.3 3-2.3 3-2.3m1.1 1.5s-5.8 24.8-4.2 39.7m5.6-38.5s-3 18.6-1.6 22.1m.1-22.7l11.4.8m1.6-1.4s3 1.6 7.4 1.3M363 324s-.5 32-1.3 39m18-31.7s3.5 28 5.5 30.6m-12.3-27s2.2 24.7 3.4 26.8m-34 8.7s4.1-1.4 7.9-5.4c4.3 5.8 11 .2 11 .2s10.2 7 14.8-.8c7 4.6 10.6-.6 10.6-.6s2.5 3.9 4.4 3.5m-11.2 2.7s5.3 24.7 13 31.7m-40.2-34.3s.7 20.7 2 35.3m-3-12s-.6 13.6-1.4 14.5m-6.5 1.4s1.5 5.8 9 .4c7.4-5.4 7.5 2 7.8 2.9.2.8 1.5 6.6 4.3 1.7m6-8s-1.3 12 9.4 3.3c10.7-8.8 12.4-.2 12.7 2.5"/>
+      <path fill="#9c5100" fill-rule="evenodd" stroke-width=".8" d="M357.8 217.6s3 .4 4.6-.5c1.6-1 3.5-1.4 4.9.5s2.3 1.8 2.3 1.8-2 5 0 5.5c2 .6 3 .6 3 1.2.2.7-1.7 2.2-1.2 2.9.6.6 1.5 1.5 1.7 2 .1.5-1.3 2.8-.8 3.4.4.5 1.6 2.7 2.4 2.7s.3 3.4 2.7 2.6 2.3-3 2.3-3 2.6-.4 3.2-2.7c.7-2.3 2.3-2.9 2.3-2.9s3.3-1.7-1-4.4c0-19-12.5-17-12.5-17s-1.5-3.3-4-2.9c-2.3.4-2.5 3.3-4.2 3-1.8-.3-2.2-1.5-2.3-1.4-.2.2-1.7 2.9-1.7 3.5 0 .7-4.7-.9-4.3 2.6s2.7 3.4 2.6 3.1z"/>
+      <path fill="none" stroke-width=".8" d="M370.8 213s-1 6 5.4 5.4c-.8 3.3 1.6 4.4 1.6 4.4m4.7 3.6c.2 0 2.9 1.8-.1 4m-9 .7s1.3 1.7 2.8 1.3c1.5-.4 3.9 1.4 3.9 1.4s2 .7 2.3.3m-17.3 2.2s4.6 1.7 7.6-5.6m-16.1-2.1l2.7.1"/>
+      <path fill="none" stroke-linejoin="round" stroke-width=".8" d="M357 231.3h2.4l-2.1 1"/>
+      <path fill="none" stroke-linejoin="round" stroke-width="1.4" d="M360.4 223.7c.4 0 1.9-.5 2.1-.1s-1.6.6-2.1.1z"/>
+      <path fill="#ffc6b5" fill-rule="evenodd" stroke-width=".8" d="M389.6 255.8s4.4 13.4 5 16.8c.5 3.4 2.3 16.9 1.6 18.8-.7 1.9-7.6 11-8.4 13.2-.8 2.3-5.7 11.1-5.7 11.1s-1.2 8.7-1.7 9c-.6.5 1.4 2.6 1.2 3.3-.3.8-4 4.6-5.6 4.2-1.6-.4-4.2-2.3-4.3-4s.1-7.6 1.4-9.1 7.5-16.5 8-17.5c.3-.9 5.7-12.7 5.9-14.7.1-2-1.7-6.7-3.6-8.4-4.3-12.6-2.6-20.1 6.2-22.7z"/>
+      <path fill="none" stroke-width=".8" d="M326.6 313.8l.2 6m-5.8-6.4s3.8 6.3 3.5 9.7"/>
+      <path fill="none" stroke-linejoin="round" stroke-width=".8" d="M372 326.6s2.8-.3 2.7 4.5c1.8-5.9 5.5-6 5.5-6"/>
+    </g>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width="1.7" d="M362.2 462a137 137 0 0093.6-43.2c-.4-.4 7.5-11.5 13.9-10 6.3 1.7 15.4 20.3 26.5 24.3 5.6 8.7-1.6 16.6-4 18.2-2.3 1.6-13 6-14.6-.4-1.6-6.3-4.8-5.2-4.8-5.2s-50.7 49.6-109.4 47.6c-60.6.4-110.6-47.6-110.6-47.6l-4.3 4.8s-4.8 5.2-7.2 4.8c-2.3-.4-12.7-7.2-13.4-14-.8-6.7 6.3-11 6.3-11s17.4-13.5 19.4-20.6c4-4 11.5 2.7 11.5 2.7s46 52.8 97.1 49.6z"/>
+    <path fill="none" stroke="#000" stroke-width="1.7" d="M233 431.3s4.7-1.2 6.5.7a719 719 0 0013.5 13.6"/>
+    <path fill="none" stroke="#000" stroke-width="1.7" d="M243.8 436.8l-4.8 3.6s12 2.3 9.3 10.1M492 431s-2.4-1.2-6 1.5c-3.8 2.8-13.1 13.2-13.1 13.2"/>
+    <path fill="none" stroke="#000" stroke-width="1.7" d="M481.4 436.5l5 4s-10.6.7-8.3 10.8"/>
+    <path d="M293.4 444l-.3.4a3.5 3.5 0 00-2.5-.2c-.6.2-2 .8-3.8 1.9l-15.7 9.2-.4-.3 4-18.4.6-4c0-.5-.4-1-1-1.6l.3-.5 8.5 6-.3.5-.3-.2c-.8-.5-1.4-.8-1.8-.8a.8.8 0 00-.7.4 2.3 2.3 0 00-.3.6l-.5 2.2-2.5 11.5 9-5.3 2.2-1.4.7-.7.3-.9c0-.3 0-.6-.3-.9a5 5 0 00-1.3-1.2l.3-.5 5.8 4.1m5.7 27.3l-.3.5-10-5.4.3-.5.7.3a3 3 0 001.5.5c.3 0 .6-.2.9-.4.2-.2.6-.7 1.1-1.7l6.8-12.5a7 7 0 00.9-2c0-.2 0-.6-.3-1-.2-.3-.6-.6-1.1-.9l-.6-.3.2-.5 10 5.4-.3.5-.6-.3a3 3 0 00-1.5-.5c-.3 0-.6.2-1 .4-.2.2-.6.7-1 1.7l-7 12.5a7.1 7.1 0 00-.8 2l.3.9c.2.4.6.7 1.1 1l.7.3m36.3-8.5l-2.5 7.2-.6-.2a9.7 9.7 0 00-1.4-5.6 7.6 7.6 0 00-3.9-3.1 6 6 0 00-4.3 0 7.3 7.3 0 00-3.4 2.8 18.9 18.9 0 00-2.3 4.5c-.7 2-1.1 3.7-1.2 5.4s.3 3 1.1 4a6.8 6.8 0 003.3 2.4 8.3 8.3 0 001.6.4 12 12 0 001.7 0l1.6-4.2c.2-.8.4-1.3.3-1.6a1.6 1.6 0 00-.4-.9 2.7 2.7 0 00-1.2-.7l-.5-.2.2-.6 10 3.6-.3.5a4.5 4.5 0 00-1.7-.2c-.3 0-.6.2-1 .5l-.5 1.4-1.6 4.2a22.2 22.2 0 01-9-1.3 13.7 13.7 0 01-4.6-2.5 13.2 13.2 0 01-2.7-3.3 10.6 10.6 0 01-1.2-3.7 11 11 0 01.6-5c1-3 3-5.3 6-6.6a11.8 11.8 0 019.3-.3 9 9 0 012.6 1.2c.5.2 1 .7 2 1.5a9.8 9.8 0 001.5 1.1h.9a3 3 0 001-1l.6.3m15.3 24.6v.5l-11.3-1.7.1-.5h.7a3 3 0 001.6 0c.3-.1.5-.4.7-.7.2-.2.3-.9.5-2l2.2-14c.1-1.2.2-1.9 0-2.2 0-.3-.2-.5-.5-.8a2.8 2.8 0 00-1.4-.5l-.7-.1v-.6l11.3 1.7v.6l-.8-.1a3 3 0 00-1.5 0l-.8.7c-.2.3-.3 1-.5 2l-2.1 14.1a7.2 7.2 0 00-.2 2.1c.1.3.3.6.6.8.4.3.8.5 1.4.5l.7.2m29.2-7.1l-.5 7.6-19.2 1v-.6h.7a3 3 0 001.5-.4c.3-.2.5-.5.6-.8v-2l-.7-14.3a7.1 7.1 0 00-.3-2c0-.3-.3-.6-.7-.8-.4-.2-.9-.2-1.5-.2h-.7v-.6l11.5-.5v.6h-.9a3 3 0 00-1.5.4l-.6.8a7 7 0 000 2l.6 13.8c0 1.2.2 1.9.3 2.2.2.3.4.5.8.6h3.8a6.1 6.1 0 002.8-.8 5.3 5.3 0 001.9-2c.5-1 1-2.2 1.4-4h.7m21-3.7l-7.3 2.2-.3 2.3a4.7 4.7 0 000 1.8c.2.6.6 1 1.2 1 .3.2 1 0 2-.1l.3.5-7 2-.1-.5a3.3 3.3 0 001.6-1.4c.3-.7.6-2 .8-3.7l2.5-18.8.3-.1 12.6 14.8c1.2 1.4 2 2.2 2.6 2.5.5.2 1 .3 1.7.1l.1.6-10 3-.2-.6.4-.1c.8-.2 1.4-.5 1.6-.8.2-.3.2-.5.1-.8a2 2 0 00-.2-.6l-.8-1-1.9-2.3m-.9-1l-5.2-6.2-1 8.1 6.2-1.8m27.8-28.3l2.7 5.2-.5.2a9.1 9.1 0 00-2.3-2 4.3 4.3 0 00-2.2-.4c-.5 0-1.1.2-2 .7l-1.5.8 8 14.7 1.1 1.8c.3.2.6.3 1 .3a3 3 0 001.4-.4l.7-.4.2.5-10 5.4-.2-.5.6-.3a3 3 0 001.2-1l.2-1a6.6 6.6 0 00-.8-1.9l-8-14.7-1.3.7c-1.3.7-2.1 1.5-2.4 2.3-.4 1.2-.3 2.6.2 4.1l-.5.3-2.8-5.2 17.2-9.2m13-7.7l5.3 7 .3-.2c1.1-.9 1.7-1.8 1.6-2.9s-.4-2.3-1.3-3.7l.5-.4 6.8 9-.5.4a8.4 8.4 0 00-2.4-1.9c-.8-.4-1.5-.5-2.1-.4-.6.1-1.3.5-2.2 1.1l3.7 4.9a10 10 0 001.4 1.6c.3.2.6.2.9.2.3 0 .7-.2 1.2-.6l1-.8a7.8 7.8 0 003-4 7.8 7.8 0 00-.4-5l.5-.4 3.4 6.1-15 11.3-.4-.5.6-.4a3 3 0 001-1.2c.2-.3.2-.6 0-1a6.6 6.6 0 00-1-1.7l-8.6-11.4-1.2-1.4a1.5 1.5 0 00-1-.3c-.4 0-1 .2-1.5.6l-.6.4-.4-.4 14.5-11 3.9 5.2-.5.3a7.7 7.7 0 00-3-1.9 4.8 4.8 0 00-2.9.2l-2.8 1.9-1.8 1.3"/>
+    <path fill="none" d="M258.4 445.6c70.9 57.5 140.4 58.5 208.4 0"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/vi.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/vi.svg
new file mode 100644
index 0000000..2740f24
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/vi.svg
@@ -0,0 +1,28 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-vi" viewBox="0 0 512 512">
+  <path fill="#fff" d="M0 0h512v512H0z"/>
+  <path fill="#369443" stroke="#010002" stroke-miterlimit="10" stroke-width="1.2" d="M163.5 316s-.4-2.9 4.9-5c5.3-2 5.7-9.7 4.7-14.8 0 0-2.8 4.9-6.2 6.5 0 0-5.5 2.9-5.8 8.4 0 0 0 2-.4 3.5-.2.9-2.7-6.8 2-12.6 4.7-5.9 6-10.7 2.3-20 0 0-.4 5.6-4.1 8.9-3.8 3.2-4.2 3.5-4.2 11.2 0 0 0 2.7-1.3 3.6 0 0-3-4.3-3.7-7-.8-2.9-1.1-4 2.2-7.3 0 0 10.6-6.9 3-22 0 0-.3 5.3-4 8.3-3.6 3-3.3 5.1-3.5 10.4-.2 5.3-.6 5-1 5.7 0 0-6.7-12.4-1.5-19s8.1-8 2.4-20.3c0 0 .2 6.3-4.4 9.4s-3.5 10.5-3.5 10.5.3 2.7-.7 4.7c0 0-6.5-12.7-.3-19.5 5.3-5.8 5.7-9.9 2.8-18.1 0 0-.3 3.8-3.2 5.9-3 2-5.2 4-4.7 12 0 0 .2 5.5-.5 7 0 0-2.7-5-3.5-8.3-.7-3.3-1-5.2 1-8.5s10-12.8.4-26.4c0 0-.3 4.4-2.7 8.4-2.4 4-1.3 8.7-.8 12.3.6 3.6-1.2 7.1-1.2 7.1s-4.1-7.6-3.3-16.3c1-8.7-2.6-16-10.7-21 0 0-5.8 13.5 2.2 20.4 0 0 6.8 6.8 8.5 15 0 0-5.2-.6-9.8-9.7-4.7-9-14.4-7.6-15-7.7 0 0 1.5 14 16.4 18 0 0 9.6 1.7 11.3 8.7 0 0 1.6 4.8 2.3 7.4 0 0-3-1.2-5.8-5.3-2.8-4.2-2.4-4.7-11.8-5.6 0 0-3.8-.4-5.8-3.1 0 0 4 14.9 14.1 14.8 0 0 9.3-1 14.5 11.2l-2.4-1.6c-1.3-1-4.8-2.7-11.6-1.8s-8.7-.4-10.4-1c0 0 6.9 12.7 16.6 9 9.7-3.8 14.4 9.8 14.5 10.1 0 0-1.3-1-3-2.7-1.7-1.7-5.3-3.7-12-1.6 0 0-4.9 1.9-9.8.4 0 0 4.7 9.1 15.8 7.6 11-1.6 13.9 8.2 13.9 8.2l-2.5-1.7c-1-.8-4.8-3-12.8-.6s-10.9-.4-10.9-.4 4.5 8.1 13 9c0 0 4.7 0 6.8-.7a9 9 0 0111 3.3s-1 .2-2.6-.5c0 0-5.7-2-10 1.6 0 0-3.8 4-9.3 3.2 0 0 7 6.8 18.3 1 0 0 3.8-2.7 6.5-.6 2.8 2.1 9.3-2 9.3-2z"/>
+  <g fill="#f4c53d" stroke="#010002" stroke-miterlimit="10" stroke-width="1.2">
+    <path d="M225.8 147s-1.3-11.7 8-12.8c9.6-1.1 14.4.9 14.4.9l4.3 8.5-1.5 5.8-6 2.7s1-8.8-7-9c-2 0-3.3.8-6.5.3-3.3-.6-5 3-5.7 3.5z"/>
+    <path d="M291 175.7c-1.4 1.8-6.9 2.4-6.9 2.4s5.7 4.3 8.1 10.6c2.5 6.2-65.8 0-65.8 0s3-2.1 5-6c0 0-3 1-6.1-2 0 0 2.3.8 5.2-3.7 0 0 4.4-5.6 7.5-7.1 0 0-1.5.9-4.9-1 0 0 6-.8 8-10.9 0 0 .4-2.2 2.7-5.5 2.2-3.2 1.7.7 5.9-4.3 0 0 1.9-3.6.2-5.7s-3.4-1.4-6.9-3.5-5-3.2-3.8-6.4c1.2-3.2 4.2-2.7 4.7-2.7.4 0 .7-2.8 4.4-4.7a29 29 0 0115.4-.3c1.5.9 7.6 2.7 11.1 11.6 3.6 9-1 12.4 8.8 26 0 0-4 .8-6.4 0 0 0 5 9 13.8 13.2z"/>
+    <path fill="none" d="M248.7 137.8c-7.8-.4-4.8-7.9-4.8-7.9"/>
+    <path d="M262.4 138.8s-1.4-.7-2.5-2.2c-1.7-2.2-5.4-3.2-7.4-1.2 0 0-2 2.3-3.8 2.4 0 0 2 .6 3.4 1.9 1.4 1.3 2.9 2.2 5 2 2-.4 2.4-1.5 3.3-2.1 1-.7 2-.8 2-.8z"/>
+  </g>
+  <path fill="#369443" stroke="#010002" stroke-miterlimit="10" stroke-width="1.2" d="M162.3 333.2s-.2-5 6.2-5.5l18.8 26.2s-.7 1.7-9.2 1.5c0 0-1 0-1.4 1-.7 1.6-14.4-23.2-14.4-23.2z"/>
+  <g id="a" fill="#f4c53d" stroke="#010002" stroke-width="10" transform="translate(2.9 85) scale(.12044)">
+    <path d="M1495 1807.9s-49.9 85.6-110.2 87c0 0-103.7-12.6-133 14.5-20.5 18.9-41.4 34.5-50 82.8-8.4 48.3 16.5 58.7 22.4 60.8 0 0 4.6 34.5 38.7 25.5 0 0 2 36 62.2 18.7 60.3-17.3 85.3-11.8 97-71.8 11.9-60.1 22.8-59.1 33.5-66.3 14.4-9.7 41.5-18.8 61.6-30.4 18-10.4 87.2-45.6 110.8-48.3 23.6-2.8 18.4-82.2 18.4-82.2h-61l-29.5-43.5-61 53.2zm192-429.4s-61 49.7-112.2 0c0 0-20.6 24.8-62 17.6-41.2-7.3-48.1-29-52-41.4 0 0-35.8 20.8-66 4.3-30-16.4-30-41.3-30-41.3s-52.5 10.4-79.4-25.2c-26.9-35.5-10.5-70.7 4-74.9 0 0-56.7 14.9-72.2-33.8a56 56 0 0116.4-62.8s-119.4-.6-168.4-38c0 0-40.7-25.6-16.4-52.5 0 0-107.5-17.2-134.4-60 0 0-11.8-11.8-7.9-32.5 0 0 .7-11.7 12.5-12.4 0 0-122.6-19-158-59.4 0 0-17-18.6-8.5-43.5 0 0 1.8-6.5 4.7-11 0 0-111.6-23.5-166.6-73.2 0 0-31.8-28.3-15.4-66.3 0 0-186.5-51-143.3-133.2 0 0-87.2-28.3-59.6-107 0 0-72.1-36.6-40.7-94.6 30.1-55.5 122.6 9.7 232 40 0 0 296.4 93.2 442.3 118l414.6 617.3 241.9 93.2 24.5 172.6z"/>
+    <path d="M1689.9 923.9s-38.9-29.2-108.2 5.1c0 0-23.3 16.1-41.7-1.5a37.3 37.3 0 014.3-57.5c51.7-38.3 70.8-153.2-7.8-200.9 0 0-114-67.6-532.3-174 0 0-35-9.8-53.8-5.1a52 52 0 00-37.6 37.8S894 581.1 957 611.6c0 0 28.4 13 57.7 21.4 0 0-32.2-7-46 24.8-13 30.4 6 61.5 65 81.5 0 0 16 6.2 38.7 11.7 0 0-50.5 14.5-26.2 55.3 0 0 21.6 42.8 98 50.4 0 0-57 6.2-16.8 60.4 0 0 17.7 29.7 73.4 40.7 0 0-42.2 1.4-21 39.3 21.4 38 71.5 59.4 120.9 62.9 0 0 26.7 1.4 45.4-2.8 0 0-47 23.5-19.4 62.8 0 0 20.3 28 71.1 26.6 0 0-13.1 44 24.1 60.6 29 13 53.1-7.8 53.1-7.8s-9.8 47.1 32.5 63.7c0 0 21.1 10.9 52.6 0 0 0 24 53.9 109.6 16 85.6-37.7 20.2-355.1 20.2-355.1zm5 489.4s-12.5 67.4-112 152.2c0 0-76.8 67.7-74.9 145.7 2 79.5-13.7 88.4-43.9 115.3 0 0 62.3 4.9 92.4-36.6 0 0-1.3 69-10.5 75.3 0 0 19.6 1.2 47.9-29.7 0 0 17-18 32.8-24.9 0 0-18.4 47.7-4 91.9 0 0 4.6-17.3 28.9-24.9 0 0 44-9 61-72.5 0 0 11.1-42 80-79.4 0 0 78-29.4 76-67.8-2-38.5-173.6-244.6-173.6-244.6z"/>
+    <path stroke-miterlimit="10" d="M2056.5 2282.2s-17.9 78.8-80 72.5c0 0-43.9-4.2-40.6-77.4 0 0-64.9 34.6-75.4-51 0 0-59 13.7-58.3-66.3 0 0-55 9.6-48.5-61.5 0 0-59.7 16-59.7-51 0 0-139.6-23.2 151.4-288.6l259.6 154.6-48.5 368.7z"/>
+    <path d="M2085.4 1928.3s-43.3 38.4-74.1-19c0 0-42-2-48.5-33.8 0 0-34.1-3.4-40.7-35.9 0 0-46.5-4.8-45.2-44.1 0 0-84.6-6.6 0-102.4 84.6-95.8 228.1 159 228.1 159l-19.6 76.2zm48.2-23.8c42 0 89.5 262 77.2 419.9-4.5 57.3-35.2 104.1-77.2 104.1s-72.6-46.8-77-104.1c-12.4-157.9 35.1-419.9 77-419.9"/>
+    <ellipse cx="2133.6" cy="1902.5" rx="58" ry="86"/>
+    <path fill="none" stroke-miterlimit="10" d="M1935.9 2277.3s6.6-138.7 126.8-337.6m-202.2 286.6s-18.7-80.1 150.8-317c0 0-19.7-56.5 40.6-92.8M1802.2 2160s-5.3-86.7 160.6-284.5c0 0-14.7-51 45.4-91.8m-254.5 314.8s6.2-87.6 168.4-258.9c0 0-8-52.4 50-84.9m-278 292.8s11.7-100.1 182.8-252c0 0-5.9-39.4 51.1-79.4"/>
+    <path fill="none" d="M372.3 432s134.3 77.8 552.9 155.6M431.9 539S795.6 657.6 965 672.2m-389.9 0s213.4 67 463.3 109.3m-281.2 30.3s241 57.9 356.2 67.5M919 925.6s203.9 42.5 255.5 47.6m-125.7 57.3s148.8 22.6 208 21.4m-23.2 69s60.2-2.8 89.1-7.6m-33.4 104.3s51.2-13.8 81.3-33.1m-5.9 133.2s39.4-15.2 58.4-56.6m37.7 93.6s30.4-27.3 32.4-57.7m81.6 81.5s-11.4-9.9-3.6-52.7m-11.1-62.8s-6-12.2-4-31.6m-211-581.3s68.8 27.6 91.7 65.6c23 38 7.9 74.9 0 96-3.9 10.7-52.4 104.2 4.6 171.9M1346 1057s.4-.3 24.6-8m-169.8-91.4s41 8.2 81.3 8.6m-138-109.8s48.2 4.9 93.5 4.2m-165.2-109.8s69.5 13.8 106.8 14.5M1014.7 633s85.7 24.4 149.4 33.1m141.6 50.4s-61.6 57.3 12.5 110.5c0 0-30.8 48.3 30.8 98.7m-16.4 23.8s-9.2 92.2 103.6 92.2c0 0-21.7 82.1 87.2 79.4 0 0 12.4 65.6 91 52.4M1441.3 1895s-17.9 4-56.6 0m-108.8 48.3s-54.4-8.3-51.8 109.8m84.6-82.9s-49.2-6.2-46 108.4m520.7-384.5s-23.6 4.8-40 23.5c-16.3 18.6-47.8 15.1-47.8 15.1s17-13.8 23-48.3c5.8-34.5 24.9-44.9 24.9-44.9m-56.3-32.6s-23.6 4.8-40 23.4c-16.4 18.7-47.9 15.2-47.9 15.2s17-13.8 23-48.3c5.9-34.5 24.9-44.9 24.9-44.9m23.7 188.5s-20.6 4.3-34.9 20.5c-14.3 16.3-41.8 13.3-41.8 13.3s15-12 20-42.2c5.2-30.1 21.8-39.2 21.8-39.2"/>
+  </g>
+  <use width="100%" height="100%" stroke="#010002" stroke-width="10" transform="matrix(-1 0 0 1 517.8 0)" xlink:href="#a"/>
+  <path fill="#0081c6" stroke="#010002" stroke-miterlimit="10" stroke-width="1.2" d="M379.7 272.7l-6.9-4-11.4 49.5-4.7-3.4 11.1-47.4-7.8.2 18.5-33.8 1.2 39zm27 13.4l-4.3-7-34.4 40.7-3.7-4.2 34.3-40-7-3.8 31.4-20.7-16.3 35z"/>
+  <path fill="#0081c6" stroke="#010002" stroke-miterlimit="10" stroke-width="1.2" d="M399.8 263.4l-5.7-5.8-30.8 59.2-4.7-2.8 31-59-7.6-2 26.1-27.6-8.4 38zm-44.1 71.5l-2.3 9.4 6.3 6.3-9 37.6-7.9-10.6-11.7 5.5 9-37.7 8.2-2.3 2.1-9.4s2.5-1 5.3 1.2z"/>
+  <path fill="#0081c6" stroke="#010002" stroke-miterlimit="10" stroke-width="1.2" d="M357.8 328.6l-4.5 8.5 4.5 7.8-17.9 34-5-12.5-12.7 2.1 17.9-34h8.5l4.4-8.4s3.2 0 4.8 2.5z"/>
+  <path fill="#0081c6" stroke="#010002" stroke-miterlimit="10" stroke-width="1.2" d="M358.6 331.1l-12.1 15.4 2.8 8.6-24.7 28.9-2.3-13.3-12.8-1 24.7-28.9 8.3 2 12.8-16.2s3.5 1.7 3.3 4.5zm-306.2-36c2.9-1.2 5-2.3 5-5.4 0-.7-.4-2.3-1.3-4.8l-19.3-59.1a50.8 50.8 0 00-2.4-6.4c-.9-1.7-2.6-2.4-4.9-3.3h24.6c-2.7 1.2-5.1 2.2-5 5 0 1.2.2 2.7.8 4.7L64.8 272l14.8-46.3c.6-2 1-3.5 1-4.6-.1-3-2.7-4-5.2-5.1h23.9c-2.2.9-4 1.5-4.9 3.3-.4.8-1.3 2.8-2.4 6.4l-19.3 59a30.2 30.2 0 00-1.3 5s-.9 3.7 5 5.3h-24zm412.2-6v-67a5.1 5.1 0 00-.6-2.6c-.3-.7-2-2.4-4.4-3.4h22.2a9.2 9.2 0 00-4.4 3.3 5.3 5.3 0 00-.6 2.7v67c0 1.1.2 2 .6 2.7.4.6 2 2.2 4.4 3.3h-22.2c2.4-1 4-2.7 4.4-3.3.4-.7.6-1.6.6-2.8z"/>
+  <path fill="#fff" stroke="#010002" stroke-width="1.2" d="M259.9 311.8s59.2-26.3 59.4-87H200.4c.2 60.7 59.5 87 59.5 87z"/>
+  <path fill="#a60032" stroke="#010002" stroke-width="1.2" d="M209.6 224.8v38.8s4.5 9 9.1 14.7v-53.5h-9.1zm18.3 0v64s5.7 5.6 9.1 8.3v-72.3h-9.2zm18.2 0v79s6.6 4.3 9.2 5.7v-84.7H246zm64 0v38.8s-4.5 9-9.1 14.7v-53.5h9.1zm-18.3 0v64s-5.7 5.6-9 8.3v-72.3h9zm-18.2 0v79s-6.6 4.3-9.2 5.7v-84.7h9.2z"/>
+  <path fill="#162667" stroke="#010002" stroke-miterlimit="10" stroke-width="1.2" d="M319.3 180.6s-29.1 15.2-59.4-1.2c-30.4 16.4-59.5 1.2-59.5 1.2v44.2h118.9v-44.2z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/vn.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/vn.svg
new file mode 100644
index 0000000..6b15814
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/vn.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-vn" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M177.2 0h708.6v708.7H177.2z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-128) scale(.72249)">
+    <path fill="#ec0015" d="M0 0h1063v708.7H0z"/>
+    <path fill="#ff0" d="M661 527.5l-124-92.6-123.3 93.5 45.9-152-123.2-93.8 152.4-1.3L536 129.8 584.3 281l152.4.2-122.5 94.7L661 527.5z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/vu.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/vu.svg
new file mode 100644
index 0000000..397d30e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/vu.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-vu" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M0 0h496v496H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="scale(1.0321)">
+    <g fill-rule="evenodd">
+      <path d="M0 0l336.6 212.6h407.5v70.9H336.6L0 496V0z"/>
+      <path fill="#ff0" d="M0 478.4l343.7-219.7h400.4v-21.3H343.7L0 17.7v32L322.4 248 0 446.5v31.8z"/>
+      <path fill="#40aa40" d="M0 496l343.7-219.6h400.4V496H0z"/>
+      <path fill="#ce0000" d="M0 0l343.7 219.7h400.4V0H0z"/>
+      <path fill="#ff0" d="M92.8 258.3c1.2.3 1.5.6 2.7-1.1.3-.9 1-2 1.6-3.2.9-1.4 1.3-2 2-.9.6.6 2.7-.5 3.6.1 1.3 1 .5.8 1.6-.2.8-1.8 0-1.6-1.1-2.4-.8-.5-3 .6-3.8 0 .3-1.7.9-2 1.9-2.3.8.6 3-.4 3.8-.4 1 .2 1.8.3 2.1-1.1.5-1 .3-.3 0-1-1-.6-3 .5-3.9 0-1-.9-.9-1.2-.2-2.5.8-.5 1.4-.3 2.5.4 1 .7 2.7-.7 3.7-.8.8-1 1.8-1.3 1.2-2.4-.3-1-.6-1-1.8-1.3-1.2-.8-2.7.7-3.2-.5 1-1.3 1.3-1 2.5-.3.7.3 3-1 3.6-1.1 1.1-.3.6.9 1.3-1.8-.2-1-2.1.7-3.2.4-1 .2-1.9-.2-2-1.3 0-1.5.8-1.6 1.8-1.4 1 .2 3.1-1 3.9-1 1.1.6 1.5.4 2.4-1 .6-1.6-.1-1-1.2-1.8-.9-.5-3 .6-3.8 0 .1-.5.4-1.3 1-1.6.8.2 1.5.1 2.5.8 1 .4 2.7-1.5 3.6-2.2-.2-1-1.9.4-2.9-.3-.6-.4-1.4-.9-1.6-1.4.6-1.7.3-1.6 1.9-1 .8-.3 2.2-.3 1.3-1.8-.2-.3-1-.2-1.7-.5-1-.6-1.8-1.2-2.7-1.5-.6-.1-1.6-.3-2.1-.2-.1 1 .2 1.6 0 2.8.5.7 1.3.7 1.5 1-.9.7-1.3.3-2.2.4-1.1-.8-.5-3.1-1.8-2.6.3.7.2 3.3.7 3.8.6.4 1.4.8 1.5 1.4-1 1.4-1.3 1.3-2.4.6-1-.6-.6-2.7-1.4-2.6-1 .7-1 .7-.8 1.8 0 1.3-.5 3.2.6 4 1.3 1 1.5.8.4 2.6-.7.9-1.1.7-2 .3-.8-.6-.6-2.8-1.3-3.6-1.3-.7-.6-.7-1.6.2-.4 1.3-.1 1.6.4 2.7.4.6.4 3 1.2 3 1.2.8 1.2.6-.2 2-1 0-1.5.3-2.3-.7-1-.7-.4-3-1.7-3.1-1.2.1-1.4.1-1.3 1.7.2 1.5-.3 3.7.8 4.6 1.1.5 1.8.4 2.1 1l-1.3 1.5c-.7 0-1.5-.5-2.4-.7-1-.4-.5-1.3-1.3-1.9-1 .3-1-1-1.5.3.2 1.1-.2 2.5.9 3.2.8.6 1.5 1.8 2.4 2.3 1 1.2.5 1.4 0 3-.8 0-1.8-.5-2.6-1.1-.9-.6-.7-2.8-1.6-3.4-.7-.7-.5-1.3-1.6.2 0 1.1.1 1.2.4 2 0 1-.3 3 .7 3.7l3 1c.7 1 0 .8-.8 2.2-.6 1.4-.6 1.6-1.4 2.3-.8 1-1 1.4-.4 2.7z"/>
+      <path fill="#ff0" d="M117.2 259.5c.7-1.1 1.1-1.3 0-3.3-.7-.6-1.5-1.9-2.3-3-1-1.5-1.3-2 0-2.5.8-.3.6-3 1.5-3.7 1.3-1 .9-.2.4-1.8-1.3-1.6-1.4-.7-2.6.2-.9.7-.6 3.4-1.5 4-1.5-1-1.4-1.6-1.4-2.9.8-.6.9-3.4 1.2-4.1.6-1 1-1.9-.2-2.8-.8-1-.2-.4-1-.3-.9.7-.6 3.4-1.5 4-1.2.9-1.4.5-2.4-.7 0-1 .4-1.6 1.4-2.5 1-.8.4-3.2.8-4.2-.6-1.3-.5-2.5-1.8-2.3-1 0-1.2.3-1.8 1.4-1.3 1-.5 3.2-1.8 3.2-.9-1.6-.5-1.8.7-2.7.5-.7.2-3.6.4-4.4.2-1.2 1-.2-1-2-1.2-.2-.3 2.6-1 3.6-.3 1.1-1 1.9-2 1.5-1.4-.6-1.2-1.4-.5-2.5.5-.9.3-3.6.6-4.5 1-.9 1-1.4 0-2.9-1.2-1.3-.9-.3-2.1.6-.9.6-.6 3.4-1.5 4-.5-.4-1-1-1.1-1.7.5-.8.7-1.6 1.7-2.4.8-.9-.3-3.5-.6-4.6-.9-.2-.3 2-1.4 2.9-.6.5-1.4 1.1-2 1.1-1.2-1.2-1.3-1-.2-2.4.2-1 .7-2.5-1-2-.4 0-.6 1-1.2 1.6-.9.6-1.8 1.3-2.4 2.2-.4.6-1 1.6-1 2.2.8.4 1.5.4 2.5 1 .9-.2 1.2-1 1.5-1.2.4 1.3-.2 1.6-.5 2.6-1.1.9-3-.7-3 .8.7 0 3 1.2 3.8.8.6-.5 1.2-1.1 1.8-1 1 1.5.7 1.9-.4 2.8-1 .7-2.8-.4-3 .4.3 1.4.3 1.4 1.3 1.6 1.3.5 2.8 1.8 4 1 1.4-1 1.3-1.3 2.6.5.5 1.1.2 1.5-.5 2.2-1 .7-3-.4-3.9 0-1.2 1.1-.9.3-.4 1.9 1 .8 1.3.7 2.5.5.8-.2 3 .8 3.4 0 1-1 1-1 1.7 1-.4 1.1-.4 1.7-1.6 2.2-1 .8-3-.8-3.5.5-.4 1.3-.5 1.6 1 2 1.5.4 3.3 1.9 4.6 1 .8-1 1-1.6 1.8-1.8l.8 2c-.3.8-1 1.4-1.6 2.3-.8.9-1.5 0-2.3.7 0 1-1.3.6-.3 1.6 1.1.3 2.3 1.2 3.3.4.9-.6 2.2-1 3-1.6 1.5-.6 1.5 0 2.8 1.2a7 7 0 01-2 2.3c-1 .6-2.9-.4-3.7.3-1 .4-1.4 0-.5 1.8 1 .5 1.1.3 1.9.3 1 .4 2.7 1.6 3.8.8.6-1 1.5-2 2-2.7 1.2-.5.8.2 1.7 1.6 1 1.2 1.3 1.3 1.6 2.4.6 1.2.9 1.7 2.4 1.5z"/>
+      <path fill="#ff0" d="M95 304.7c0-5.1-.8-10.3 0-10.3 45.3 0 56.6-31 56.6-51.5 0-20.6-15.7-41.3-45.3-41.3-34 0-45.4 20.2-45.4 41.3 0 20.6 17 36 34 36 22.7 0 28.4-5.1 45.4-25.7-5.7 25.7-34 36-45.3 36A44 44 0 0149.6 243c0-25.8 17-51.6 56.7-51.6 34 0 56.7 25.8 56.7 51.6 0 36-28.4 61.8-68 61.8z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/wf.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/wf.svg
new file mode 100644
index 0000000..bb726a7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/wf.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-wf" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h512v512H0z"/>
+    <path fill="#00267f" d="M0 0h170.7v512H0z"/>
+    <path fill="#f31830" d="M341.3 0H512v512H341.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ws.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ws.svg
new file mode 100644
index 0000000..155ad7b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ws.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ws" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#ce1126" d="M0 0h512v512H0z"/>
+    <path fill="#002b7f" d="M0 0h256v256H0z"/>
+    <path fill="#fff" d="M147 231.4l-19.6-13.3-18.9 13.5 6-23.5-18-14.7 23.2-1.3 7.7-22.4 8.5 22.8 22.8.5-18.2 15.5zm-3.4-156.8l-15.6-10-15.4 10 4.2-19-13.7-12.1 18.3-1.6 6.8-17.5 7.1 17.7 18 1.4-14 12.5zM74.3 131l-15.2-10.8-15.4 10.4 4.6-18.3L34 100.2l18.2-.8 6.7-18.1 6.6 17.8 18.3 1.1-14.3 12zm139-12.7l-14.7-9.5-14.3 9.7 4-17.4-13-11.2 17.3-1.4 6-16.4 6.6 16.6 16.8 1-13.2 11.6zm-41.1 41.3l-9.7-6.2-9.6 6.2 2.5-11.6-8.7-7.7 11.4-1 4.4-11 4.5 11 11.2 1-8.5 7.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/xk.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/xk.svg
new file mode 100644
index 0000000..69146ca
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/xk.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-xk" viewBox="0 0 512 512">
+  <path fill="#244AA5" d="M0 0h512v512H0z"/>
+  <path fill="#D0A650" d="M202.3 245.7l1.3-.7 1.6-.5s.8-.4 1.2-.4c.4 0 1.3.5 1.5.9.3.4 1.7 1 1.7 1s1 .4 1.1 0c.2-.2.6-.5 1-.5s.6-.4.6-.7c0-.3.2-.7.5-1.1.3-.4 1-.6 1-.6s1-.4 1-1 1.1-1 1.7-1c.5-.1 0-.4 1.3-.2 1.4.1 1.6-.3 1.7-.7 0-.5 0-.9.9-.8.8.1 1.3.1 1.3-.4 0-.4.8-.7-.6-1-1.4-.5-1.3-.2-1.4-.8-.1-.7 0-.6-1-.7-1 0-.4-.5-.5-1 0-.5-.3-.7-.5-1-.2-.4-.7-.4-.7-.8 0-.5 0-.8-.6-.8s-.7 0-.7-.4c0-.5.1-.9.6-.9s.8-.4.7-.9v-1.5l.6-.8 2.3-2c.2-.3.9-.6 1.2 0 .3.7.5.9.8 1.2.2.3 1 0 1.2-.2.2-.4.2-1.5.7-2.2.5-.6.8-1 .9-1.4s.3-1 .9-1 .9-.7.9-1.1.2-.9 1-1c.6 0 1-.5 1.2.1.2.7.4.7.9.9.4.2 1 .5 1.4.2.4-.3.5-.8 1-.5.5.3.9 0 1-.6l.2-1.5s.1-.4 1-.4.2-.5.6-.8c.5-.4.5-.7 1-.5.6.2 1.5-.2 1-.7-.4-.6-1.4-1.4-.9-2 .6-.6.8-1.7.3-1.8-.6-.1-1.4.1-1.5-.5-.1-.6-.3-1 .3-1.2.7 0 1.9 0 2.2-.4s1.5-.5 1.5-1.4c0-1 .3-1 .4-1.6.1-.5.1-1.6-.3-2.1a9.5 9.5 0 01-1.3-1.6 2 2 0 00-1.2-1c-.7-.2-1.3-.3-1.3-.8 0-.6.5 0 .5-1.3s-1-1.6-1-1.6l-1.3-.8s-2.4-.6-3-.6-1.4-.7-.7-1.1c.8-.5 1-1.2.7-1.8s-.5-1-1.5-1.3c-1-.3-1.3-.5-.9-1.1.5-.6.6-1 1.2-.6.5.4 1.4.6 2.2.2.7-.3 1-.6 1.4-.2.3.3.8.7 1.4.2.5-.6 1.5-.6 2-.4.5.3 1.6.2 2 0 .3-.2 1-.8 1-1.1s.5-1 1-1.2c.4-.3 1-1.1 1.5-1.1s.6-.5.6-.9.4-1 .5-1.2c0-.3 1-.7 1.6-.1.7.5 1.5.7 1.5.7h1.4c.5-.2 1.1-.4 1.8 0 .6.5 1.6.5 1.6.5l.1-1c0-.4.2-1-.1-1.2-.4-.3-.9-.6-.1-1.2.7-.5.7-.4 1.4-.4l1.8.1c.6 0 1.5.5 1.5 1s.4.9.8 1.1c.5.3 1 .5.9 1-.2.4-.2.7.3.7.6-.1.8.2.8.6s.1.7.7.9c.6.2.8.5.8 1l.1 1c.1.4.8 1.1.8 1.1s1 1.2-.3.6-1.6-.8-2-.7c-.5 0-.8.3-.8.3l-1 .2c-.6 0-1 1-.3 1.1.8.2 1 .3 1 1s-.2.4-.6.8c-.4.4-.7.2-1.3.2-.7 0-.8.5-.8 1s.2.4.5.8c.3.5.8.5 1.2.1.5-.4.9-.7 1.1.1s.7.8 1.2.8c.6 0 .8 0 1.2-.3.5-.2 1 0 1.2.7 0 .7.5.8 1 1 .4.3.7.5.8.9.1.4.4.6.8.3.5-.2 1.2-.4 1.5 0l.8 1v.8l1.8.6.2.8c0 .4.3.5.7.4h1.3s.7-.3.7-.8.3-.6.7-.6c.5 0 1.5.3 1.8-.2.3-.5 1.1-.7 1.7-.4l2.4.9s-.2 0 .3 1c.6.8 1.6.8 1.6.8l.3 1.1c.2.3 1 .5 1.5.2.4-.4 1-.8 1.6-.8.6 0 1 0 1-.3s-.6-.6-.6-1.2c0-.5.6-.5.7-1 0-.5.6 0 1 .3.3.2.8.7.8 1s.8 1.5 1.2 1.7c.5.2 1.7.3 2-.2.4-.4 1.3-.6 1.3.5-.1 1-.3 1 .3 1.4.7.4.8 1.6.2 1.9-.5.3-.7.4-.7 1s-.2 1.3.2 1.6c.5.4.8.6.8 1s.5 1.9.5 1.9.3 1.5.2 1.8-.2 1 .6.9c.8-.1 1-.1 1 .6s.3 1-.2 1.2c-.4.2-.7 1-.3 1.3.5.1.9.4 1 .7 0 .4.8 1 1.3.6.4-.3.5-.5.9-.6.4 0 .6-.3.3-.7-.4-.5-.5-.9-.1-1.2.4-.2.5-1 .5-1s.6-.8 1.2 0c.7.7.8.4 1.2.4.5 0 .7.5.7.9s1 .3 1 1l.1 2.3s0 1 .6 1.3c.5.4.4.4.1.9-.2.4-.1 1-.1 1.4s.1.5-.3.9c-.5.3-.7.7-.4 1.2.3.6.2.9 1 1.5.7.6.6.9.6 1.3s.7 1 .7 1.4c0 .5.6 1 1 1s1 .9 1 1.3l.2 1.6s-.1.2.4.2c.6 0 1 .6 1.1 0 .2-.7.8-.8 1.1-1 .4-.2 1.2-.5 1.5-.3.4.3.9.3 1.2.3h2.2s.4 0 .7.7c.3.7 1.1 1.4.7 1.8-.5.3-.5 1 0 1 .6 0 1.2 0 1.2.4 0 .5 0 .8.5.5s.8-.3 1 0c.1.4.5.4 1 .6.4.3.6.1.9-.2.3-.4 1.4-.7 1.4-.7s1.5-.3 2-.2l1.3.5s.4.9.2 1.4c-.2.5-.4.4-.2 1.2.2.8-.2.9-.5.8-.4-.1-.8-.1-.8.6s-.4.8-.4 1.4 0 .5-.3.8c-.4.2-.5.7 0 .8.6 0 .4.6.4 1v1s0 .5-.6.5c-.7 0-1.2 0-1.3.4s-.8 1-.2 1.5c.7.4.5.7.1.8-.4.2-.6 1 0 1.3.8.3.7.5.3.9-.5.3-1.4.6-1.4 1 0 .6-.2.6-.8.7s-.8.7-.1 1.6c.6.9.8.7 1.3.7.4 0 .4-.7.4-.7h2c.5 0 1.2 0 1.5-.2.4-.2 1.4-.7 1.4.1 0 .8.2.7.7 1 .4.4.5.1 1 .6.3.5.4.1.6-.5.3-.6.9-1.2 1.3-.5s.5.5 1 .5c.6 0 .8.3.8.7s.6.4 1.2.3.7.4 1 .8c.3.4.4.4.8.4.3 0 .7 0 1-.4.3-.3.6-.8 1-.2s1.1.4 1.3-.2c.2-.6 1-1.1 1.5-.4.4.6.8.6 1.3.7.4.1 1.1.1 1.4.5.3.5 1.2 1.2.5 1.7-.6.5-1.4 1.2-.8 1.3.6.2 1 .4 1.3.8.4.4 1.6.6 2.1.7.6 0 1 .2 1.7-.4.6-.5 1.3-.5 1.2.2-.1.7.3 1.5.3 1.5s.4 1 .4 1.5c0 .4 0 .5.8 1s.7.9 1.4.4c.6-.6.8-.8.8-1.2v-1.4s1-.2 1.3-.4 1.9-1 2.2-.7.9.2 1.2 0h1.5c.4 0 1 0 1.8-.6.7-.6.7-.4 1.2 0s.4 1 .2 1.3c-.3.3 0 1 .6 1 .7 0 .8.4.8.9l.2 1.3c.1.4.1.5 1.1.8 1 .2.9.8 1 1.3.2.4.2.7-.3.7-.6 0-.8.3-.8.7-.1.4-1 .6-1 .6l-.8-.2s-.6 0-.8.4c-.3.3-.9 1-.5 1.6.4.6.4 1 0 1.2-.4.3-.6 1.5-1 1.3s-.8 0-1.1.2c-.4.2-.3 1.4.4 1.8.8.5 1 1 1 1l.8 1.3-.5.7c-.2.4-.7 1.3-.2 1.5s.3 1-.2 1c-.6 0-1.2-.2-1.3.5-.1.7-.4.5-1 .4-.5 0-2-.4-2.3.3-.3.7-.4 1-1 .8-.7 0-.5 1-.3 1.5.2.4.9 1 .9 1s.5.4.5 1.3-.4.8-.7.2-1.1-.5-1.2.1c-.1.7-.2 1.7-.9 1.7-.6 0-.9.2-1.2.6-.2.3-.7.9-.7 1.2s-.1.7-.6.8c-.4 0-.5 1-.5 1s-1.1.2-1.2.6c-.1.4 0 1.1-.9 1.2-.9.1-1.4.7-1.7 1.1-.3.5-.4.8 0 1.2.4.4.6 1.8 1 2 .6.3 1 .4.8 1 0 .8-.6 1.3.1 1.3.8 0 1.2.2 1 .8-.3.6-.3.6-.9.9-.5.3-.8.3-.8 1s.2.6-.3.9c-.5.2-.5.6-.5 1 0 .6-.1.4-.7 1s-1.3.6-1.8.4c-.4-.1-.5-.1-.6-.6-.1-.6-1-.6-1.4-.5-.5.1-1.1.6-1.1.6s-.8.5-.5 1c.4.4.2 1-.4 1-.7 0-2.2.7-2.6 0-.5-.9-1.8-1.4-2-.3-.2 1 .6.9.5 2-.1 1-.3 1-.7 1.3-.3.3-.3.6-.4 1-.1.4-.2 1.4.4 1.7.7.4 1 1.3 1 1.8s0 1 .6 1c.7 0 1.2 0 1.3-.7.1-.6 1.4-.9 1.5.3s0 1.8.6 2.3c.4.5.8 1.2 1.2 1.5s1 2.4 1 2.4c-1 .2-1.2 1.4-1.8 1.6-.3.1-.6 0-1 .2-.2.2-.2.5-.5.7-.7.3-.5-.8-1.4-.4-.7.3-.8 1.2-1.8.8-.6-.2-1-2.3-1.1-2.8 0-.3-.7-1.2-.9-1.5-.6-1-1.8 0-2.2-.3-.7-.4-.4-1.2-1.3-1.2-2-.2-.6 1.1-1.4 1.4-1.5.6-1.5-1.4-2.7-.5-.4.3.7.6.4 1.2-.2.4-1.4 1.2-1.3 1.8.1.8 1 1 1.2 1.7.7 1.7-.4 3-2.2 1.6-1-.8-1.1-2.2-2.6-2.1-.4 0-.5.3-.9.4-.3 0-.6-.3-1-.2-.5.2 0 .6-.1.9l-.9.8c-.4.5-.3 1-.9 1.5-.5.3-.9.1-1.4.7-.6.6-.7 1.5-1.4 2.1-.4.3-.6-.9-1 0-.2 0-.2.1-.3.2v.6c1 2-1 2.6-1.7 4-.3.5.5 1 .2 1.4-.2.4-1.1 1.2-1.2 1.4 0 .2-.1.6-.3.8-.2.2-.7 0-.8.3 0 .3.6.6.8.8.2.2-.1.5 0 .6 1 1 .4.7.9 1.6 0 .2.4 0 .5.3.1.3-.2.3-.1.6l.8 1.1c0 .3-1.5 1-1.8 1-.9 0 .8-1.8-.7-1.8-.6 0-.6 1.4-.8 1.6h-.8c-.9 0-1.5 1.1-1.9 1.2h-1.1c-.4 0-.8.4-1.2.4-.2 0-.3-.2-.5-.3l-1.6-.5c-.3 0-.8.4-1 .2-.2-.1.3-.7-.4-1l-.6-1.4c.2-.8.5-1.7.4-2.5-.2-1-1.5-1.7-2-2.4-.2-.5-.4-2-1-2.3a5 5 0 01-1.4-1.7c0-.2.2-.5 0-.8-.2-.3-.7-.4-.8-.8-.1-.4 0-1.5-.4-1.7-.4-.3-3.3-.6-4-.7-.3 0-.6 0-.9-.3l-.4-.5-.9.1h-.7c-1 .6-1.1 1.4-2 2-.9.8-1.8.7-2.7 1.5-.6.5-1 1.7-1.5 2.2-.2.3-.6 0-.7.1l-1.6 1.5s0 .3-.2.4l-1 .2h-1c-.4.2-.4.7-2 1l-.3.2-.6.5h-.6c-.4 0-.7.3-1 .4-.9 0-2.2-.4-2.8-.1-.4.1-1.5 1.3-2 1.4h-.6c-.2 0-.5 1.4-.6 1.7l-2 1.7-.5.8c-.2.2-.5.4-.8.4-.4 0-1-.3-1.3-.4-.7 0-2.7-.2-3.3 0-.6 0-.4 1.9-2 2l-2.7.4s-.6-.4-1.2-.2c-.2 0-.8.7-.8 1v.3l.1.3c-.3.5-1.1 1-1.4 1.6l-.2.3c-.2.2-1.3.6-1.4.8-.3.6.7 1.2.6 1.5-.2.8-1.4 1.6-1.7 2.4-.1.3.4 1.3.3 1.7 0 1-.4 2.3-.4 3.3l.2 1.3.6.4c.1.2 1.4 2.6 1.4 2.9.2 1.7-2.3 1.1-.8 2.9l.6.8 2.3 1.8c0 .3-1.6.6-1.8.8-.8.8-1.4 2.1-2.1 2.9-.5.4-.9 0-1.4 1-.2.4 0 1.3-.3 1.6-.4.4-.7-.2-1 0-.2 0-.3.6-.4.7-.5.3-4.2 2.3-4.5 2.1-.2 0-.4-.7-.4-.9a2 2 0 00-.5-.8c-1-.8-2.4-1-3.3 0-.3.3-.3.7-.6 1l-1.6 1.2s-.3.4-.5.3c-.3 0-1.2-1-1.5-1.3-.4-.5-1.6-1.7-1.7-2.2 0-2-1.5-3.9-2.1-5.8h1c1-.6.7-2.4 2.5-1.7.3-.3.2-.6.7-.9.2 0 .5-.2.5-.3.7-1 1.4-4.6.8-5.6-.6-.8-1.2-.8-1.7-2.2v-1.2c0-.4-.7-2.4-.8-2.6-.1-.1-.5-.3-.5-.5 0-.1-.2-2.3-.1-2.5-.6-1.7-2.8-2.8-2.9-3l-.8-1.4c-.3-.5-.3-.8-.5-1.3 0-.2-.4-.4-.4-.7 0-.4 1.2-1.4 1.2-2.1 0-.3-.8-1-.7-1.5.2-.4 1-1.4 1-2 0-.6-1.3-2-1.5-2.7 0-.4.5-.7.4-.9l-1.7-1.8c-.1-.3.5-.6 0-1-.4-.5 0-.3-.1-.7l-.8-1.2-1.3-4.6c-.2-.3-.5-.5-.6-.8l-.4-1s-1.3-.4-1.5-.8c-.2-.3-.2-1.2-.6-1.7-.1-.3-.4-.2-.6-.4l-.2-.5c-.4-.5-1.1 0-1.6-2l-2-1.4-.2-.3c-.5-.2-1.2-.2-1.6-.6l-1.6-.1-.4-.6c-.6-.2-1.7-.1-2.2-.6-.5-.4-.6-2.2-1.3-2h-.4c-.5-.7-2.2-.8-3-1.2-.2-.1-.8 0-.8-.2l.1-1-1-1.1c-.6-.2-.3-.3-.8-.5-1.1-.1-1.2 0-2 .8l-.8.3c-.4.2-.5 1-1 .6l-.5-.4c-.3-.3-.5-.1-.6-.6-1-.5-3.6 1.2-4.2 0-.5-.3-.8 0-1.2-.3-.2-.2.5-2.4-1.4-3.2l1.4-1v-.8c0-.3.2-1 .1-1.3l-.4-.8c-.2-.3 0-.6-.2-1l-.6-.3c-.5-.4-1-.6-1.4-1.1l-.3-.4c-.3-.2-1.5-.6-1.4-1.1 0-.2.2-.2.3-.4 0-.2 0-.5.2-.7.5-.7 1.7-.4 1.5-1.7 0-.6-.5-1.1-.6-1.8l-.4-.5c-1.2-.1-1-1.3-1.4-1.6-1.3-.8-2.2-.3-.8-2 .2-.5-1.2-1.4-1.5-1.6-.5-.5-.2-1.5-.4-2-.1-.3-1-.7-1.2-1l-.4-.8v-.2c.3-.2.2-.5 0-.8 0-.2-.4-.1-.5-.2-1.2-1-2.5-1.5-4-2-.4-.2-.2-.5-.6-.7l-2.3-1c-.3 0-.4-.9-.6-1.1a3 3 0 00-.7-.8c0-.8-.5-.9-1-1.3l-.2-.5.5-1.7c.1-.3.5-.6.5-1l-.4-1.8c-.6-1.6-1.3-1.4-1-3.6.1-.5 0-.7.3-1.1l.2-.3 1-.7c.3-.4.5-1.5 1-1.8.2-.3 1.2-.8 1.3-1 .2-.2.4-.7.3-1h-1c-.1 0-.5-.4-.9-.4l-.2-.4-.2-.2-1-.3c-.5-.2-1-.2-1.5-.5-.7-.4-1.5-1.6-2.3-1.7-1-.2-1.6 0-2.5 0-.6.1-.6-.2-1-.4-.7-.2-.2.4-1.7-.1-.2-.2 0-.7.1-.9-.2 0-.5.1-.8 0-1.2-.3-.8-1.4-1-2-.2-.3-.7-.2-1-.2v-.3c.3-.3-.4-1.1-.4-1.2 0-.3 1.5-.5 1.7-.5.1-.2-.1-.4-.1-.6l.3-1.4-1-1c.1-.1.4-.3.4-.5.7-2 1.8-.4 2.8-2.2l.5-1h.2l.6.2c.1-.2.4-.3.6-.4l.4.1c1.8-.4 1.4-1 2.4-1.8.3-.2 1.1-.2 1.5-.4.4.2 1 .8 1.7 1.1.5.2 2.3.6 2.6.8.4.2.5.7.9.9 1 .5.4-.4 1.4-.2 1 .2 1.8 1 2.8 1.4h.7c.3 0 2-.4 2.1-.3l.7.3c.2 0 .4-.5.5-.5.7.1.8.4 1.7.3 0 0 .5-2.6 1-2.7.2 0 .9.6 1 .7.4 0 0-.6 0-.6 0-.2-.6-1.8-.5-2 0 0 .4.2.6 0 .6 0 1.2-.2 1.6-.6l.9-1.2c0-.2-.2-.7-.1-.8l.7-.5c.3-.3.4-.8.8-1 1.7-.2 2.2-1.5 3.7-1.7h.5l.3.5c.1.1 1 .7 1.3.7l.3-.3c.3 0 1.1-.5 1.2-.8 0 0-.2-.2 0-.4 0-.1 1-1 1.2-1h1.1l.5.5h.9c.2 0 .3-.4.5-.5l.1.1z"/>
+  <g id="h" fill="#FFF">
+    <path id="star" d="M281.4 124.5l12.9 39.7-33.8-24.5h41.7l-33.7 24.5 12.9-39.7z"/>
+    <path id="star_1_" d="M331.6 133.4l12.9 39.7-33.8-24.5h41.8L318.7 173l12.9-39.7z"/>
+    <path id="star_2_" d="M379.5 150.8l13 39.7-33.8-24.5h41.7l-33.8 24.5 13-39.7z"/>
+  </g>
+  <g id="h_1_">
+    <path id="star_3_" fill="#FFF" d="M230.4 124.5l-13 39.7 33.8-24.5h-41.7l33.8 24.5-13-39.7z"/>
+    <path id="star_4_" fill="#FFF" d="M180.2 133.4l-13 39.7 33.8-24.5h-41.7L193 173l-13-39.7z"/>
+    <g transform="scale(-1 1)">
+      <path id="star_5_" fill="#FFF" d="M-132.5 150.8l-12.9 39.7 33.8-24.5h-41.7l33.7 24.5-12.9-39.7z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ye.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ye.svg
new file mode 100644
index 0000000..d49d2c4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/ye.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ye" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h512v504.3H0z"/>
+    <path fill="#f10600" d="M0 0h512v167.9H0z"/>
+    <path d="M0 344.1h512V512H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/yt.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/yt.svg
new file mode 100644
index 0000000..7bf3837
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/yt.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-yt" viewBox="0 0 512 512">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h512v512H0z"/>
+    <path fill="#00267f" d="M0 0h170.7v512H0z"/>
+    <path fill="#f31830" d="M341.3 0H512v512H341.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/za.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/za.svg
new file mode 100644
index 0000000..9bae96f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/za.svg
@@ -0,0 +1,17 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-za" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M70.1 0h499.6v499.6H70.1z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="translate(-71.9) scale(1.0248)">
+    <g fill-rule="evenodd" stroke-width="1pt">
+      <path d="M0 397.9v-296l220.4 147.9L0 397.9z"/>
+      <path fill="#00c" d="M150.4 499.7l247.4-166.5h351.6v166.5h-599z"/>
+      <path fill="red" d="M134.5 0h615v166.6H397.7S137.8-1.6 134.5 0z"/>
+      <path fill="#fc0" d="M0 62.5v39.3l220.4 148L0 397.8v39.4l277.6-187.4L0 62.5z"/>
+      <path fill="#093" d="M0 62.5V0h92.6l294 199h362.8v101.7H386.6l-294 198.9H0v-62.4l277.6-187.4L0 62.5z"/>
+      <path fill="#fff" d="M92.6 0h57.8l247.4 166.6h351.6V199H386.6L92.6 0zm0 499.7h57.8l247.4-166.5h351.6v-32.4H386.6l-294 198.8z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/zh.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/zh.svg
new file mode 100644
index 0000000..7873c1b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/zh.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-cn" viewBox="0 0 512 512">
+  <defs>
+    <path id="a" fill="#ffde00" d="M1-.3L-.7.8 0-1 .6.8-1-.3z"/>
+  </defs>
+  <path fill="#de2910" d="M0 0h512v512H0z"/>
+  <use width="30" height="20" transform="matrix(76.8 0 0 76.8 128 128)" xlink:href="#a"/>
+  <use width="30" height="20" transform="rotate(-121 142.6 -47) scale(25.5827)" xlink:href="#a"/>
+  <use width="30" height="20" transform="rotate(-98.1 198 -82) scale(25.6)" xlink:href="#a"/>
+  <use width="30" height="20" transform="rotate(-74 272.4 -114) scale(25.6137)" xlink:href="#a"/>
+  <use width="30" height="20" transform="matrix(16 -19.968 19.968 16 256 230.4)" xlink:href="#a"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/zm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/zm.svg
new file mode 100644
index 0000000..105f107
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/zm.svg
@@ -0,0 +1,27 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-zm" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill-opacity=".7" d="M248 0h496v496H248z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#a)" transform="translate(-256) scale(1.0321)">
+    <path fill="#198a00" d="M0 0h744v496H0z"/>
+    <path fill="#ef7d00" d="M656.8 178.2H744V496h-87.3z"/>
+    <path d="M569.6 178h87.2v318h-87.2z"/>
+    <path fill="#de2010" d="M480.5 178.3h89V496h-89z"/>
+    <g fill="#ef7d00" stroke="#000">
+      <path stroke-linejoin="round" stroke-width=".9" d="M685.6 63.5s32.9-14 36-16.9c1.5 1.7-13.1 19.4-41.5 26 25.8-6.2 47.8-25.3 52.2-24.7 1.3.3 1 18.7-58 34.6 40.8-10.7 64.6-30.4 64.3-28.2.3.4-4 15.5-39.8 27.2 10-2.3 37-18.8 36.7-15.6.9 1.3-26.2 36-75.1 24.7 39 10.2 64.4-14.3 68-13.9.8.2-7.2 21.4-56.4 22.7 23.6-2.4 16.8-.1 16.8-.1s-14 10.9-30.7 3.5c13.2 3.6 14.6 3.7 14.9 4.9-.9 1.4-11.7 3.6-22.2-2 8.4 3.4 16 4 16.1 5.3a11 11 0 01-10.3 1.3c-4.7-2.1-48.8-29.2-48.8-29.2l75-20.6 2.8 1zm-88.2 73.3a6 6 0 00-6.7 5.8s-.6.5-.2 3.3a16.2 16.2 0 011.6-2.5c.7 0 3.8 1 8.5-2.7-4.3 4.5-1.7 6.2-1.7 6.2s-1 3.6 2.3 4.3c-1-1.5-.4-2.7-.4-2.7s4.6-.5 4.3-6.2c.2 5.1 3 6.4 3 6.4s0 2.8 3 3c-1.6-1.4-1.3-3.6-1.3-3.6s4-2.9.6-7.7c2-1.1 3.7-4.3 3.7-4.3s-2.8-1.2-4-2.2c-.6-1.2 0-8.2 0-8.2l-1.7-9-4.7 14c.2-2 .3 6-6.3 6z"/>
+      <path stroke-linejoin="round" stroke-width=".9" d="M630 116.5c.1.2 5 5.5 9.6 5.2 1.7-1.4-3.7-4.6-3.7-5.3 2 1.7 9.9 8.5 15 6 2-2.8-3.7-2.4-9.9-10.2 4.3 2.9 15.2 9.3 20.3 6.8 2.1-2.3-11.3-9.6-15.8-15.2l-11.6-6-15.8 13 11.9 5.7z"/>
+      <path stroke-linecap="round" stroke-linejoin="round" stroke-width=".9" d="M612.2 72.5s5.4-3.2 26.8-1.6c2.3.3 14.6-4.2 18.5-5.5 6.2-1.1 26-5.5 31.4-9.5 3.8-.5-1 7-5.8 8.7-5 2.3-23.4 8.7-30 7.8 7.9.1 3.5 6.5-9.5 3.4 6.2 3.5 4 4.1 4 4.1s-11 .6-14-1.9c7.4 2.8 4.4 3.8 4.4 3.8s-7.6.7-11-.9c5.3 1.6 2.6 2.6 2.6 2.6s-4.4.7-8-.6c-3.6-1.3-9.1-10.4-9.4-10.4z"/>
+      <path stroke-linejoin="round" stroke-width=".9" d="M620.8 119.5l.8 14.2-.8 1.1c-.4.5-10-1.5-8.7 6 0 3 0 3.7 2 5.4-.5-2-.3-3.4-.3-3.4s2.7 1.7 5.4-2.8c-1.8 4.4-.5 6-.1 6 .4.9-.7 4.5 2.9 4.4-1.4-1.3-.7-3.3-.7-3.3s3.8-.6 2.4-7.5c1.4-1.4 2 0 2 0s.4 4 3.7 3.2c1.5.9-.2 3.1-.2 3.1s2.4 0 3.1-2c.8-2 1.6-5.7-2.4-7.2-.5-1.5 1.6-1.6 1.6-1.6s2.5.8 3.3 2.1c.7 1.3.4-3.3-2.7-3.8-3.9-.1-4.1-1-4.1-1.1l-1-13.2-6.2.4z"/>
+      <path stroke-linecap="round" stroke-linejoin="round" d="M634.3 131.6c0-.7-6.6-9.6-5-10.8 1.7.4 4.5 4.5 6.7 3.1-.6-1.6-2.6-.7-5-4.7-2.2-4.6-2.5-11.5-10.5-19 5.2 8 16.9 12.6 17.4 10.2s-10.3-11-9.8-13.2c2.1 4.4 13 14 21 13.3.5-1.9-6.6-5.7-8.4-9.2-5-3.4-18.7-15.2-19-17.9a32 32 0 00-9.5-10.3c-.6-.6-.7-1.3-.8-1.7-3.1-7.2 1-9.6 3.4-10 2-.1 2.5.1 4-.5l-5.1-2c2.2 1.6 7.8.2 6.5 4.8 2.5-.9 7.7-7-5.9-8.5-4.4-5-22.5-8-27 14.1.3.3.5.6 1.7 1.5-5.8-2.8-21.2-5-26.8-5.8-15-4.4-30.6-14.8-32.1-13.6-2 1 9 11.3 8.5 11.5-9.7-5.6-18.4-9.6-26.6-13.2-5.8-2.2-11.5-7.2-12.2-6.2-2 4.4 9.3 15.4 11.4 16.7 2 1.2 18.7 9 18.4 9-25-11.3-29.2-13.4-30.4-14.7-2.2-.5-7.6-7.7-9-7.3-.9.8.7 12.3 12.7 17.4 2 1.4 25.5 10 25.3 10.6l-28.1-11.6c-5.2-2-11.6-9.2-12.8-8.4-1.1.8 3 8.5 8.2 11 2.8 1.2 13.3 6.4 22.9 9.7.6.3-17.1-6.7-25.7-10.3-3.8-2-5.7-4.8-6.2-4.2-1 .6 1.4 12 28.8 18.5.7.3 9.6-2.1 9.2-1.8a111.8 111.8 0 01-15.4 2.7c-.3.8 1.7 4.9 15.9 4 1.8 0 11.6-3.5 10.8-2.8-.4.4-13.4 4.6-14.4 4.7-.8 0-5.4.6-5.5 1-.2.7 3.3 3.6 11 4 6.7.4 19.4-4 19.2-3.7-.3.3-12.3 4.4-12.7 4.6-.4.3-4.8.5-5 .9-.3.8 6.4 7.1 26.3.4-2 2.7-11.6 4.5-11.6 5 0 .4 2.1 2.5 5.5 3.2 1.7.4 4 .3 6 0a25 25 0 0013-7c.5 1.5-12.7 8.3-12.1 8.9 2.9 2.7 12.4-.4 13-.7A148 148 0 00587 91.7c.3 1.5-23 14.2-22.7 14.7 1.5 2.3 9.5-.2 9.8-.4l10.4-5.6c.3-.2-11.4 6.9-10.4 8-.5 4.5 18.3-3.2 19.8-4.2.7-.5-9 4.3-9 6.6 3 5.3 13.2 3.6 14.7 2.4.8-.5-1 4-.4 3.6a17 17 0 003-4.2c-.2 1.5-1.4 3.8-2 6.5-.6 2.7-.8 5.8-1.7 9-.2 1.4 6.2-2.8 5.3-12.8.5 5.2-2 15-1.4 15.4 1.4 1 5-4.8 5.5-8.8 1 2 3.4 6.2 5.4 7.2-.2-3 0-3-.9-5.9.5-4 .6-9.4.7-15.6 5.5 10.4 7.6 14.8 6.1 22.8 1.6.7 4.2-5.6 4-8.8 2 9 11 10.3 11.2 10z"/>
+      <path stroke-linecap="round" stroke-linejoin="round" d="M543.9 65.6s-3.7 2.8-8.3 2.6c1.1 4.6 10.7 1.1 10.7 1.1s-4.6 5.1-8 6c2 1.5 10.3 1 11.7.2 1.4-.9 3.9-4 3.9-4s-8.5 9.8-9.8 9.7c-.1 1.1 9 .7 10.9-1 1.9-1.7 6.6-4.3 6.6-4.3s-12.5 8.7-13 8.7c4.6 1.3 14-1.4 20-5.1-8.9 5.9-9.7 7-14.2 9 4 .8 6 3.5 19.7-2.4 7.8-3.7 12.2-10.4 12.2-10.4a79.2 79.2 0 01-21 17.4c-.4 1 9.1 5 21.3-7.6"/>
+      <path stroke-linecap="round" d="M609.9 93s.8 3.9 4 6.8c3.3 3 3.6 5.9 3.6 5.9m-9.3-37.8s1.2 3.5 4.5 5.7a38 38 0 019 10.4 114 114 0 012.3 13.4m-36.7-24.2c.2 1.4-4.8 8 2.1 15.8-6.3 7.7-6.3 8.7-6.3 8.7s3.5 2 9.9-3.5c10.4 12.8 7 18.7 7 18.7"/>
+      <path stroke-linecap="round" stroke-linejoin="round" d="M599 103.9s-.9-1.4.8-6.5c1.6 1.8 3.3 2.2 4 3s8.7 1.9 9.2 7.1"/>
+      <path d="M608.3 55.7c0-.4-1.6-3.8-7.5.4 3.2.2 6.3 2 7.5-.4z"/>
+      <path stroke-linejoin="round" d="M664.7 71.2c.3.2 17.7 4 23.5 2-7.4 9.9-22.2 3.2-22.2 3.2 7.3 2.2 7.6 2 9.9 4 .7 2-13.3 1.1-18-1.5 13 4 13.2 3.8 13.6 5.3.6 2.2-21-.5-23-3.4 5.8 4.5 9 5.3 12.2 7.4-4 1.7-11.2 3.4-24.5-6 17.5 16 33.3 15 35.8 17.8-6.1 9-29.7-5.3-40.6-12.6-10.8-7.2 23.8 17.5 27 17.1-1.6 2.5-13 .3-13.8-.9"/>
+      <path stroke-linecap="round" d="M669.2 87.9c-2 .3-8 .3-9 .1"/>
+      <path stroke-linecap="round" stroke-linejoin="round" d="M538.8 63s13.2 7 18.8 6.5c-1.5 1.4-3.7 2-3.7 2 1.4.5 5.2 2.6 11 1.2-1.3 1.4-3.1 3-3.1 3s5 1.9 10.6-1a43.6 43.6 0 00-2.7 3.6l4 .3"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/zw.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/zw.svg
new file mode 100644
index 0000000..ca5b7a2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/1x1/zw.svg
@@ -0,0 +1,21 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-zw" viewBox="0 0 512 512">
+  <defs>
+    <clipPath id="a">
+      <path fill="#00f" fill-rule="evenodd" d="M1.3-.1h421.4v420.2H1.3z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#a)" transform="matrix(1.2149 0 0 1.2184 -1.5 .1)">
+    <path fill="#006400" d="M0 0h840v420H0z"/>
+    <path fill="#ffd200" d="M0 60h840v300H0z"/>
+    <path fill="#d40000" d="M0 120h840v180H0z"/>
+    <path d="M0 180h840v60H0z"/>
+    <path stroke="#000" stroke-width="20" d="M0 0v420l280-210z"/>
+    <path fill="#fff" d="M0 0v420l280-210z"/>
+    <path fill="#d40000" d="M106.5 104.4L162 275.1 16.8 169.6h179.5L51 275.1z"/>
+    <path fill="#fc0" d="M82.8 253.7l9.8-1.8 18.1-.7 6.7.6 15 2.5 1.1-1.5V242l1.8-9.3 3-9.4 3.3-7.5 4.2-7.8 6.8 1.7h1.8l.2-1.3-14.4-12.3-15-11.5-21.7-16.2-2-.5-2.3-17-1.7-5.1-2.3-2-4.3-1.4-4.8.2-2.2 1.2-4.6 1-2.4.4-1.6 1.9-.2 2.4 6.7.2 1.7.7-.2.7-3.8.5-1.8.6 2.1 1.6 2.2.8 2.8 1 .6 2 .2 25.8-1.5 4-.5 7.5 2.2 9-5.6 6.4L77 216l-.6 3.5-1.7 3.5-.2 2.2 1.1 2.4 4.3 14.2 2.2 11.7z"/>
+    <path d="M88 142c-1.8 0-2.6.2-4.3 1.1a10.8 10.8 0 01-4.6 1.4c-2.5 0-4.5 1.8-4.5 4.1v1.5l3.6-.1c10.6.3 1 1.3.2 1.4-2.6.5.6 2.6 3.7 3.7 3.3 1 3.1.4 3.1 15 0 11.9 0 13.6-1 16.3-1.3 4-1.3 10 0 14 .6 1.6 1 3 1 3.3 0 .2-1.6 2.1-3.5 4.3-3.5 4-5.6 8.1-5.6 11a6 6 0 01-1 2.6c-1.3 1.7-1.3 4.6-.1 5.7 1.3 1.2 6.6 21.8 6.7 25.7 0 1.4.2 1.4 8.3-.2 6.6-1.3 22.1-1.6 30-.6 3.6.5 7.8 1.3 9.3 1.6 4.8 1.3 4.6 1.5 4.6-4.3a74 74 0 015.1-26.7 94.7 94.7 0 016.9-14s1.8.2 4 .8c4.1 1 5.3.9 5.3-1 0-1-4.3-4.6-25.4-21a432.2 432.2 0 00-26.3-19.9c-.6 0-1.2-.3-1.3-.7l-1.5-9.5c-.7-4.9-1.7-9.7-2.1-10.7-1.4-3-4.1-4.5-8.6-4.8a31.2 31.2 0 00-2 0zm.1 1h2c6.6.4 7.8 2.2 9.6 14a173 173 0 011.2 9.4c0 .8-.9 1.8-3.2 3.3a46.8 46.8 0 00-10 9.5l-1.3 1.8-.3-4.2V165c.3-8.7 0-9.5-2.8-10.5-2.3-.8-5.3-1.6-4.5-2.1 1-.6 2-.2 4.4-.9 1-.2.9-.1.7-.9-.2-1.3-1.6-2-5.3-1.8-3 .2-3.3.1-3.1-.7.4-1.6 2-2.6 4.5-2.9a13.4 13.4 0 004.4-1.3 7 7 0 013.7-1zm14.9 25.8h.4c1.7.3 50.8 38.7 50.8 39.8 0 .4-.4.7-1 .7-.4 0-12.9-3.5-27.7-7.8-23.6-7-27-8-28-9.3a5.1 5.1 0 01-.1-6.2 5 5 0 001-2c0-1.2-2.5 1.8-3 3.5-.5 2 .5 5.4 2 6.5.6.5 5.1 2 10 3.5 8.4 2.4 9 2.7 9.4 4.1 1 3.3-2.5 7.2-7.5 8.3a14.6 14.6 0 00-5.2 2.4 68.2 68.2 0 01-17.2 10.4c-.4.3-.9 1.9-1.2 3.4-.6 3.3-.8 3.8-1.8 3.8-.5 0-.6-.3-.2-1.4.7-2 .6-4.4-.1-4.4-.5 0-.7.7-.7 1.8 0 1-.3 2.2-.7 2.5-.5.6-.6.2-.4-2.3.2-1.7.1-3-.1-3-.5 0-1.4 2.5-1.7 4.7-.2 1.3-.2 1.3-.6-.3-.3-1.2-.2-2 .7-3.5a9 9 0 001-3.5c0-1.3 1-2.6 5.7-7.3 3-3.1 6.7-7 8-8.7 2.3-2.8 2.4-3 2.3-5.9 0-1.6-.2-3.1-.4-3.3-.6-.6-1.4 2.6-1 4.3.2 1.6 0 2.1-3.3 6a113.2 113.2 0 01-7.5 7.8c-3.9 3.6-5.3 5.6-5.3 7.4 0 .6-.4 2-1 3.3s-.8 2.6-.6 2.9c.2.3 0 .3-.3 0-.5-.5-.5-1.3-.1-3a7 7 0 00.2-2.6c-.5-1-1.2.2-1.5 2.7-.2 1.4-.5 2.5-.8 2.3-.7-.4-.5-3 .4-4.4.5-.7 1-2.3 1.3-3.6.7-3.7 2.3-6.7 5.8-10.7a57.5 57.5 0 003.2-3.8l-1-3.3a25 25 0 01-.2-13.7c1.3-3.8 3.9-7.6 8-11.7 4-3.9 7.9-6.3 10-6.4zm15 32.2a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm2.5.3a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm2.6.5a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm2.4.5a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm-6.3.6a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm2.4.4a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm5.2.2a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm-2.7 0a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm5 .6c.1 0 3.7.8 8 2l7.9 2.3-1.5 2.7a96.2 96.2 0 00-2.4 4.4c-1 2-1.2 2-6 .9-5.2-1.2-13.4-2.3-21.8-3l-8-.7 3-1.1a50.4 50.4 0 005.3-2.4c2-1.1 2.8-1.3 5.9-1 4.5.3 7.5-.6 8.7-2.4l1-1.7zm-8.8.6a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm5.6 0a.9.6 0 011 .6.9.6 0 01-1.6 0 .9.6 0 01.7-.6zm-8 0a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.5zm5.3.2a.9.6 0 011 .5.9.6 0 01-1.7 0 .9.6 0 01.7-.5zm-6.6 1.1a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm2.5 0a.9.6 0 011 .7.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm2.6.2a.9.6 0 011 .5.9.6 0 01-1.7 0 .9.6 0 01.7-.5zm2.8 0a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm-20.3 8.1a191.2 191.2 0 0135.1 4.2c.1.1-.6 2.5-1.7 5.4l-2 6c-.1.5-.8.5-2.5.3-8.3-1.3-32.3-1.2-41.5.2-5.3.8-6 .7-5.6-.4l1-3.5.6-2.7L93 221a63.4 63.4 0 0010.2-6.5h.9zm-27 14.2c.3 0 .9.3 1.6.8 1 .6 2.2 1.1 2.7 1.1 2.6 0 4 3.7 6.2 16l.8 4.4c.2 1 0 1.2-2.3 1.7-2.8.6-3.5.7-3.5.3 0-1-2.8-13.7-4-18.2a96.9 96.9 0 01-1.6-6 .1.1 0 01.1 0zm28.6 2h2.9l-1 1c-1.7 2-2.5 2.1-3.7.8a5 5 0 01-1-1.5c0-.2 1.3-.4 2.8-.4zm6.1 0h5.4l-1.2 1.2c-1.4 1.6-1.5 1.6-3 0l-1.2-1.3zm8.2 0h1.3c.7 0 2 0 2.8.2l1.5.3-1.4 1.3c-.8.7-1.5 1.3-1.6 1.2l-1.4-1.6-1.2-1.5zm8.5.3l1.2.3c.7.2 2.2.3 3.3.4h2l-1.5 1.3a8.9 8.9 0 01-1.8 1.3c-.1 0-1-.8-1.7-1.7l-1.5-1.6zm-30.2.1h.2c.1.2-.3 1-1 1.7l-1 1.4-1.5-1.2-1.5-1.3 2.4-.3 2.4-.3zm2.3.2l1.6 1.4 1.6 1.5-3 .2-3 .1 1.4-1.5 1.4-1.7zm18 0c.3 0 .5.1.8.3a6.6 6.6 0 011.3 1.7c.4.8.3 1-1 1l-2.5-.5-1.2-.3 1.3-1.3c.6-.6 1-1 1.4-1zm-8.3 0c.5 0 1 .3 1.6 1.3.7 1.1.7 1.1-2 1.1h-2.7l1.4-1.3c.7-.7 1.3-1 1.7-1zm17 .2l1.2 1.2c1.4 1.3 1.6 2.1.6 2l-2.8-.3-2.2-.2 1.6-1.3 1.6-1.4zm-35.2.7c.2 0 1 .5 1.6 1.2l1.2 1.3-2.5.4-3.5.5c-.7.2-.5-.3 1-1.6 1-1 2-1.8 2.2-1.8zm-3.7 0h.4c.8.2.8.4-.6 1.8l-1.5 1.5-.5-1.3c-.4-1-.3-1.3.6-1.7a4.8 4.8 0 011.6-.3zm46 1.8c.2 0 .2.2 0 .6-.2.8-1.1 1-1.1.2 0-.2.3-.5.7-.7h.3zm-21.4 1.6c7.7 0 15.5.2 17.4.4 3.1.4 3.4.5 3.4 1.7 0 1.4-.4 1.5-4.6.8-1.2-.3-6.3-.7-11.2-1.1a149.6 149.6 0 00-28.5 1c-1.9.2-2.4 0-2.4-.6 0-1.3 10.2-2.2 25.9-2.2zm-10.3 2.9h5.4l-1.2 1.3c-1.5 1.6-1.6 1.6-3 0l-1.2-1.3zm7 0l1.4 1.4 1.4 1.6-2.9.1h-2.9l1.5-1.6 1.4-1.5zm2.1 0h5.4l-1.2 1.3c-1.4 1.6-1.5 1.6-3 0l-1.2-1.3zm-12.8 0c.2 0 0 .5-.7 1.5-.7.9-1.4 1.6-1.5 1.6-.2 0-.9-.6-1.5-1.3l-1.2-1.3H96a9 9 0 002.7-.4 1 1 0 01.4 0zm2 .5l1.3 1.2 1.5 1.3-2.6.2-2.9.2 1.4-1.5 1.3-1.4zm17.4 0l1.4 1.6c1.6 1.7 1.5 1.8-2.1 1.1l-1.7-.3 1.2-1.2 1.2-1.2zm2 0h2.4c2.6 0 2.9.4 1.4 1.8-1.2 1-1.2 1-2.6-.5l-1.2-1.3zm-30.6.5c1.2 0 1.1.1-.4 1.6-1.1 1.1-1.2 1.1-1.6.3-.3-1 .6-1.8 2-1.9zm38.8.2c.4 0 1.2 0 2 .2l2.3.4-1.3 1.2-1.2 1.2-1.1-1.4-1-1.6h.3zm-36 .5c.3 0 .6.2 1.1.7 1 1 1 1 .2 1.4a8 8 0 01-2.4.4H90l1.3-1.4c.7-.7 1-1 1.3-1.1zm34.1.3c.4 0 .7.2 1.2 1l.9 1.2h-2.1c-1.4 0-2-.2-2-.6.2-.4.7-1 1.3-1.3l.7-.3zm6.4 1.3c.2 0 .2.2.2.5 0 1-.9 1.7-1.3 1-.1-.3.1-.8.5-1.1l.6-.4zm-25.9 1.2c8.7 0 18.3.6 24 1.6l1.6.3v4.4c0 3.3-.2 4.4-.7 4.4l-5-1a126 126 0 00-35-1l-2.3.3-.6-3.7a21 21 0 01-.4-3.8s2.3-.5 5-.8c3.3-.5 8.2-.7 13.4-.7z"/>
+    <path id="b" d="M124.8 217.8c-3 0-5.1 2.1-5.1 5.2 0 4.8 5.4 7.2 8.6 3.8s1-9-3.5-9zm0 1.2a4 4 0 014 4c0 3-3.3 5-6 3.7-2.7-1.5-2.5-6.1.4-7.3a4.3 4.3 0 011.5-.4z"/>
+    <use width="100%" height="100%" x="-20.1" y="-.6" xlink:href="#b"/>
+    <path d="M88 145.3a1.7 1.8 0 00-1.6 1.7 1.7 1.8 0 103.5 0 1.7 1.8 0 00-1.9-1.7zm.1.6a1.2 1.1 0 011.2 1.1 1.2 1.1 0 11-2.4 0 1.2 1.1 0 011.2-1.1z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ad.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ad.svg
new file mode 100644
index 0000000..7320bf2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ad.svg
@@ -0,0 +1,150 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-ad" viewBox="0 0 640 480">
+  <path fill="#d0103a" d="M0 0h640v480H0z"/>
+  <path fill="#fedf00" d="M0 0h435.2v480H0z"/>
+  <path fill="#0018a8" d="M0 0h204.8v480H0z"/>
+  <path fill="#c7b37f" d="M300.4 136.6c7.7 0 10.9 6.6 18.6 6.6 4.7 0 7.5-1.5 11.7-3.9 2.9-1.6 4.7-2.5 8-2.5 3.4 0 5.5 1 7.3 4 1 1.6 1.8 4.9 1.3 6.7a40 40 0 01-2.7 8.3c-.7 1.6-1.3 2.5-1.3 4.2 0 4.1 5.6 5.5 9.4 5.6.8 0 7.7 0 12-4.2-2.3-.1-4.9-2-4.9-4.3 0-2.6 1.8-4.3 4.3-5.1.5-.1 1.3.3 1.7 0 .7-.3.4-1 1-1.4 1.2-1 2-1.6 3.6-1.6 1 0 1.6.1 2.5.7.4.4.6.8 1 .8 1.2 0 1.8-.8 3-.8a5 5 0 012.3.6c.6.3.6 1.5 1.4 1.5.4 0 2.4-.9 3.5-.9 2.2 0 3.4.8 4.8 2.5.4.5.6 1.4 1 1.4a6.2 6.2 0 014.8 3c.3.4.7 1.4 1.1 1.5.6.3 1 .2 1.7.7a6 6 0 012.8 4.8c0 .7-.3 1.6-.5 2.2-1.8 6.5-6.3 8.6-10.8 14.3-2 2.4-3.5 4.3-3.5 7.4 0 .7 1 2.1 1.3 2.7-.2-1.4.5-3.2 2-3.3a4 4 0 014 3.6 4.5 4.5 0 01-.3 1.8 9.6 9.6 0 014-1.4h1.9c3.3 0 7 1.9 9.3 3.8a21 21 0 017.3 16.8c-.8 5.2-.3 14.8-13.8 18.6 2.5 1 4.2 3 4.2 5.2a4.5 4.5 0 01-4.4 4.7 4.4 4.4 0 01-3.5-1.4c-2.8 2.8-3.3 5.7-3.3 9.7 0 2.4.4 3.8 1.4 6 1 2.2 1.8 3.5 3.7 5.1 1-1.5 2.1-2.6 4-2.6 1.7 0 3.2.6 3.9 2.2.2.5 0 .9.3 1.4.3.6.8.7 1.1 1.3.5 1 0 1.8.5 2.7.3.7.9.8 1.2 1.4.4 1 .5 1.6.5 2.7 0 3-2.7 5.2-5.7 5.2-1 0-1.4-.4-2.3-.3 1.7 1.7 3 2.5 4.3 4.5a17.7 17.7 0 013 10.3 22 22 0 01-2.8 11.2 20 20 0 01-7 8.5 35 35 0 01-16 6.4 74.4 74.4 0 01-11 1.4l-14.1.8c-7.2.4-12.2 1.5-17.3 6.6 2.4 1.7 4 3.5 4 6.4 0 3-1.8 5.3-4.7 6.2-.7.2-1.2 0-1.9.4s-.7 1.3-1.4 1.7a6.2 6.2 0 01-3.8 1 8 8 0 01-6.4-2.5c-2.2 1.8-3 3.4-5.5 4.9-.8.4-1.2 1-2.1 1-1.5 0-2.2-1-3.4-1.8a23 23 0 01-4.4-4c-2.3 1.3-3.6 2.4-6.3 2.4a7 7 0 01-4-1c-.6-.5-.8-1.2-1.5-1.6-.7-.5-1.3-.3-2.1-.7-3-1.3-5-3.5-5-6.8 0-2.9 1.8-4.7 4.4-6-5-5-10-5.8-17-6.2l-14-.8c-4.4-.3-6.8-.7-11-1.4-3.3-.5-5.2-.7-8.2-2.1-10.2-4.8-16.8-11.3-18-22.5-.2-1-.2-1.5-.2-2.5 0-5.8 2.3-9.4 6.4-13.5-1-.3-1.7 0-2.8-.3-2.5-1-4.4-2.7-4.4-5.5 0-1 0-1.7.5-2.6.4-.6 1-.7 1.2-1.4.2-1 0-1.6.4-2.5.3-.5.8-.6 1-1.2 1-1.9 2-3.4 4.1-3.4 1.8 0 3 1 3.8 2.5 1.8-.8 2.2-2.1 3.2-3.7a15.5 15.5 0 001.4-13.3c-.4-1.5-.6-2.5-1.8-3.7-1 1-2 1.4-3.4 1.4-2.9 0-5-2.5-5-5.3a4.8 4.8 0 013-4.6c-1.6-1.4-3-1.5-4.7-2.6-2.6-1.6-3.5-3.4-5.2-6-1.2-1.6-1.5-2.8-2-4.7a19 19 0 01-1-7.8c.6-5 1.5-8 4.6-11.9 1.8-2.3 3-3.7 5.8-4.9 2.3-1 3.7-1.7 6.2-1.7l2 .1a6.9 6.9 0 012.8.8c.4.2 1.1.9 1.1.4s-.3-.8-.3-1.3c0-2 1.5-4 3.6-4 1.5 0 2.1 1.4 2.9 2.7.4-.8.7-1.4.7-2.3 0-3.4-1.9-5.2-4-7.9-4.7-5.8-10.5-8.5-10.5-16 0-2.2 1-3.7 3-4.9.5-.3 1.3 0 1.8-.3s.4-1 .7-1.4c.5-.7 1-1 1.6-1.6 1-1 2-.6 3.1-1.5.6-.4.8-1 1.2-1.4 1.3-1.6 2.5-2.4 4.6-2.4 1 0 1.6 0 2.5.4l1 .5c.3-.2.8-.8 1.5-1.1a4 4 0 012.2-.6c1.1 0 1.8.6 3 .6.3 0 .4-.4.8-.6 1-.7 1.5-1 2.7-1 1.2 0 1.8.3 2.8 1 1 .5 1 1.3 2 1.8.5.3 1 .2 1.5.4 2.6.9 4.5 2.6 4.5 5.3 0 1.5-.3 2.5-1.4 3.5-.9.7-1.7.6-2.8 1a16 16 0 0011.3 3.5c4.2 0 9.3-1.7 9.3-5.9 0-2-1-3-1.8-4.8a18.8 18.8 0 01-2.1-8.5c0-2.8.3-4.5 1.9-6.7 1.6-2.3 3.6-2.9 6.5-2.9z"/>
+  <g fill="none" stroke="#703d29">
+    <path stroke-linejoin="round" stroke-width=".7" d="M272.4 159a3.6 3.6 0 002.4 2.4c.8.3 2.7.2 3.8-1.4 1-1.2 1-2.8.6-4a4.7 4.7 0 00-1.7-2.2l-5.1 5.2z"/>
+    <path stroke-linecap="round" stroke-width=".7" d="M401 236.1c-1.2-2.9-4.3-1.6-4.4 0-.5 3.7 2.7 4.8 5 4.2a4 4 0 002.5-2c.6-1 .8-2.4.4-3.7a4.9 4.9 0 00-.8-1.6 5 5 0 00-1.3-1.2c-.9-.6-1.9-.6-3.4-.6-5.5 0-10.4 6.5-12 13.4-.6 2.2-1.3 7.3-.3 12a22.4 22.4 0 005.9 11.3 25.7 25.7 0 009.9 5.8 7.9 7.9 0 004 .1c3.2-.7 4.7-3.8 3-7-1.3-2.5-5.3-4-7.2-.6-.1.3-.4.9-.4 1.5 0 .9.4 2 1 2.4 1.5.9 3.8.6 3.7-2"/>
+    <path stroke-width=".8" d="M383.8 274a11.3 11.3 0 016.6-3.7c3-.4 5.6.5 8.2 2a18.5 18.5 0 0110.8 17c0 3.6-1 7.5-2 9.4-.8 1.7-3 9-15.3 14-7.1 3-18 3.6-25.7 4-10.4.3-20 .7-25.5 7.6"/>
+    <g stroke-width=".7">
+      <path d="M386.4 285.7c-.3-1 0-2.1.8-3.3 1.2-1.6 3.7-2.1 6-1a7.4 7.4 0 012.5 2.2l1.1 1.6c.7 1.1 1 2 1 2.5 2.5 7-1.4 14.5-6.5 17.6-4 2.4-8.7 3.4-14.4 4-2.5.4-4 .3-6.5.5h-9.6a70.1 70.1 0 00-7.2 0c-2.9.3-5 .4-7.6.8-1.6.2-3.4.5-5.4 1-.6 0-1.2.2-1.8.4l-1.2.3c-3.6 1.1-7 2.4-9.8 4.2-.8.5-1.8 1-2.5 1.7l-1.3 1.2c-2 2-3.9 4-4.4 6.7v1.6c0 1.8 1.4 4.3 5.4 5m5.5-170c.8 1.4 1.3 2.3.8 3.9-.6 1.7-1.8 2.8-3.6 2.8-4 0-6.3-4.8-4.5-7.8 3.2-5.3 9.3-2.3 15 .3-.3-1.3-.8-1.8-.7-3.5.1-4.2 3.2-6 4.5-10 .7-2.3 1-4.3-.7-6-1.5-1.3-3.2-1.3-5.1-.6-3.8 1.5-8.5 5.9-16.6 6-8.2-.1-12.8-4.5-16.7-6-2-.7-3.6-.7-5.1.7-1.7 1.6-1.4 3.6-.7 6 1.3 3.8 4.4 5.7 4.5 10 0 1.6-.4 2-.7 3.4 5.7-2.6 12-5.9 15-.3 1.7 3.2-.5 7.7-4.5 7.7-1.8 0-3-1-3.6-2.7-.4-1.5 0-2.8.8-4"/>
+      <path stroke-linecap="round" d="M314.6 159.9a5.3 5.3 0 012.4 5c-.2 2.5-.8 3.1-2.8 4.5m2.4-3.8c-.1 1.5-.7 2.5-2.3 3.1"/>
+    </g>
+    <path fill="#c7b37f" stroke="none" d="M276.7 153.3l.7.5.8.8.5 1 .2.8v1.9l-.2.8-.5.6-.6.6-.9.5-1 .2-1 .2-1-.5-.9-.6-.5-.8-.4-1v-.4l4.8-4.6z"/>
+    <path stroke-linecap="round" stroke-width=".7" d="M275.2 157.2c-.3-1.7-2.2-2-3-1-1.1 1.5-.3 4 2 4.7a4 4 0 003.9-1.4c1-1.3.9-2.8.5-4a4.5 4.5 0 00-1.7-2.2c-2.7-2-7.1-1.6-8.6 2-1.8 4.4 2.2 7.8 6 10.3 4.6 3.2 10 3.8 14 3.8 9.2-.1 16.2-4.5 20.7-7 1-.6 2.1-.5 2.7.2a2 2 0 01-.3 2.7"/>
+    <path stroke-width=".7" d="M248 281.2l-2 .7-2 1.6-1 1.3-1.1 2-.5 1.5-.4 1.8-.2 1.4m19-10.1l-.1 1.8-.3 1.2-1 2.2-1.3 1.8-1.5 1.2-1.1.5-1.6.4"/>
+    <path stroke-width=".8" d="M319.7 329.1c-.3 1.7-1.9 3.6-5.3 4.2l-.6.2"/>
+    <path stroke-width=".9" d="M404.2 276.2a18.3 18.3 0 015.6 13.5c0 3.6-1 7.5-2 9.4-.8 1.7-3 9-15.3 14a85 85 0 01-25.6 4c-10.3.3-19.8.7-25.4 7.3"/>
+    <path stroke-width=".6" d="M387.5 282.9c.8-1 3.5-2.4 5.8-1.1a6.2 6.2 0 012.3 2"/>
+    <path stroke-width=".9" d="M401.6 273.8l1.4.5a7 7 0 004 0c2.8-.8 4.6-3.4 3.2-6.9a6 6 0 00-1.8-2.1"/>
+    <path stroke-linecap="round" stroke-width=".7" d="M240.3 199.8c-2 1.1-3.3 1.4-4.8 3.1a28.1 28.1 0 00-2.6 6.8m46-51.7c0 1.8-1.2 2.8-3 3.2"/>
+    <path stroke-width=".6" d="M397.1 192a19 19 0 0118.6 19.8c0 16-9.9 18.5-13.8 19.6"/>
+    <path stroke-width=".7" d="M398.4 192c8.1-.3 16.5 5.7 16.9 20.7.3 11.7-8 17-12 18"/>
+    <path stroke-width=".6" d="M393.8 248.4l.1-1.6.6-2.5.7-2 .9-1.6 1-1.3m7.8-3.4v1.5l-.5 1-.7 1.1-.8.6-1.2.5h-1.1l-.8-.1m-14.3-52.8l.3-1.7.8-1.6 1-1.5 1.6-2.2 1.4-1.4 2-2.2 2-1.9 1.1-1.3 1.5-1.9 1.4-2 .8-1.7.5-2.2.1-2.7-.2-.8m-12.3 128.2l1.6-.4 1.2-.6.7-.7.5-.8.3-1.2v-.9m-158.2-12.1h2.7l1.6-.6m5-36.5l-.2 1.4-.4.6-.4.6-.7.5-.7.3-1 .1h-.6m9.9-15.5l-.3 2.1-.5 1-.8 1.2-1.2.9-1.2.6-2.3.5m15.3-39.7l-.5 1.3-.5 1-.8 1-1 1-1.2.5-1.1.3-.6-.1m.3-6.2v1"/>
+    <g stroke-width=".6">
+      <path stroke-linecap="round" d="M254.3 224a6.9 6.9 0 01-2.1 1.4m150.5 44.8l.5.2c1.4.8 4.2-.2 3.4-2.4"/>
+      <path d="M397.8 239.6c1 1.3 2.9 1.7 4.4 1.3a4 4 0 002.5-2c.6-1 .8-2.4.4-3.7a4.9 4.9 0 00-.9-1.6 6.8 6.8 0 00-1.3-1.5l-.4-.2m6.4 34a4 4 0 00.1-.7 4 4 0 00-1.3-3l-.8-.8m.4.5c0-1.8-1.5-3.2-3.4-3.5m-4.2 2.8l-1.3-1a15.7 15.7 0 01-4.3-10.7c0-4.2 1.6-8.4 3.6-10M341.2 324l1.8-1.6 1.2-1 2.3-1.4 2.2-1 1.6-.5 3-.6 3.6-.6m-29.5 19.4a17 17 0 01-7.6 6.1 17.7 17.7 0 01-7.6-6.1"/>
+      <path stroke-linecap="round" d="M314.4 332.6a10 10 0 01-2.2 4.2"/>
+      <path d="M314.7 330.5l-.4 2.2M312 337l-1 1-1.7.9-2 .6m-5.6-177.8c.3-.8.5-1.4.5-2.6-.1-4.2-3.2-6.1-4.5-10-.7-2.3-1-4.3.7-6 1.4-1.4 3.2-1.4 5-.6 4 1.5 8.6 5.8 16.7 6-8.1-.2-12.8-4.5-16.6-6-2-.8-3.8-1-5.3.5-1.7 1.6-1.2 3.8-.5 6.1 1.3 3.9 4.2 5.8 4.3 10 0 1.2-.3 1.8-.5 2.6M320 148c8-.4 14.9-5.8 17.1-6.3 2-.4 3-.2 4.5 1.1-1.4-1.3-3-1.2-5-.5-3.8 1.5-8.4 5.8-16.6 6m79.6 112.9a15.5 15.5 0 01-6.2-12.4c0-4.1 1.7-8.4 3.6-10m-70 97.6c-1.3 2-4.3 5-7.6 6.2a17.7 17.7 0 01-7.6-6.2"/>
+      <path stroke-linecap="round" d="M306.7 163.7l2.3-1.3c1-.6 2.3-.5 2.9.2.6.7.7 2-.2 2.8"/>
+      <path d="M294.7 169.3c5.5-1.2 10-3.6 13.4-5.5M340.3 328c.5.3.8 1 .8 1 .1.2.3.5.3.8.3 1.5-.7 2.4-2 2.6-1.7.2-3-.8-3.5-2M294.4 169c5.5-1.1 10-3.6 13.4-5.5m97.6 106.9c-1 .4-1.6.3-3-.2l-1.8-1a20.7 20.7 0 01-8.4-9 18.8 18.8 0 01-1.7-4.6 12 12 0 01-.5-3.3 25.6 25.6 0 014.7-15.3c1.1-1.6 2.1-2.5 4.2-2.6m-143.7-39.3a7.1 7.1 0 012.7 5.7c0 3.1-2.6 8.2-9 10a8.3 8.3 0 01-6.3-.8"/>
+      <path d="M256.3 205.6c1.1.8 1.6 1.7 1.6 3.3 0 1-.7 2.4-1.9 3.7a12.4 12.4 0 01-8.8 4c-2 0-4-.4-6-1.7a9 9 0 01-3.8-5.4"/>
+      <path d="M256.2 212.3c1.3 1.2 1.7 2.7 1.7 4.6 0 2.7-1.1 4.8-3.7 7-.6.6-1.2 1-2 1.5m129.5-22.1v3.5m-.3-4.4v5m.3-15.8v6.6m-.3-8v8.9m-1.9 82a18.7 18.7 0 01-4.2 5.6 19.6 19.6 0 01-5.8 4.1 24.6 24.6 0 01-6.6 2.2 33 33 0 01-6.8.9c-2.5 0-3.9 0-6.4-.2-2.6-.2-4-.6-6.7-.8-2.2-.2-3.4-.4-5.6-.3a28.3 28.3 0 00-11 1.8c-2.6 1-5.7 3-6.3 3.8a22 22 0 00-6.4-3.8 22 22 0 00-5.1-1.4c-2.3-.4-3.5-.4-5.8-.4-2.2 0-3.4.1-5.6.3-2.6.3-4 .6-6.7.8-2.5.2-3.9.3-6.4.2a33 33 0 01-13.4-3 19.5 19.5 0 01-6.4-4.8m42.1 53.4l1.8-.2m30.3-2.4l1.8-.1 1.7-.7 1.2-.8 1.7-2 .3-.6.3-1.7v-.8m47-136.7c.7-2.6-.2-5.4-2.8-5.3m-132 46.5a8.2 8.2 0 01-3.5 4.7m3.6-46.7a6.5 6.5 0 01-3.6 4c-1.9.8-4 0-5.2-.8"/>
+      <path stroke-linecap="round" d="M243.8 202.4c1.5.8 3.1-.4 2.8-2.4a2.9 2.9 0 00-2.5-2.2"/>
+      <path d="M250.2 286.6c.3.3.4.7.8.8.7.2 1.2.4 1.9-.5.8-1.1.3-2.8-.5-3.9a5 5 0 00-5.8-1c-.8.5-1.7 1-2.6 2.2l-1.1 1.6c-.7 1.1-1 2-1.1 2.4-2 5.9.4 12 4.1 15.7"/>
+      <path stroke-linecap="round" d="M340.2 327.8l.7.8.2.9c.3 1.5-.7 2.4-2 2.6-1.6.2-2.8-.8-3.3-2"/>
+      <path d="M389.4 154.8a7.4 7.4 0 016.3 7c0 4.4-1.5 6-3.8 9.2-2.5 3.4-10.7 9.6-10.7 16.7 0 4.3 1.2 7 4.3 8.4 2 1 4.3 0 5.4-1 2.6-2.4 1.5-6.5-1.2-7-3.2-.6-3.9 4.6-.7 4.3m17.9 69a3.7 3.7 0 00-3.6-3 3.7 3.7 0 00-3.7 3.7c0 1 .4 2 1 2.6"/>
+      <path d="M383.9 195.1a7.1 7.1 0 00-2.7 5.7c0 3.1 2.6 8.2 9 10 2.4.7 4.8.6 6.2-.3m-156-10.3a9.4 9.4 0 00-4.8 3.5 16.9 16.9 0 00-2.2 12.7 15.8 15.8 0 002.3 5.6 8 8 0 001 1.2l1.2 1m64 92c4.9 2.1 8.4 3.7 11.4 8.5a10 10 0 011.2 4.9c0 2.7-1 5.7-3.3 7.6a8.3 8.3 0 01-6.7 2c-1.9-.2-3.7-1.6-4-2.6M254 224.1c2.7 2.2 3.9 4.2 3.9 7.5a8.4 8.4 0 01-4 7.5"/>
+      <path stroke-linecap="round" d="M251.5 236.4c4 5.1 6.3 8.1 6.4 14.1.1 5.7-1.7 9.6-5 13.7"/>
+      <path d="M329.8 169.3a4.1 4.1 0 001.5-2.2c.5-1.5.5-2.8-.2-4 1 1.4 1 2.5.7 4-.1 1-.8 1.5-1.6 2.3m51.5 86.1v16.2l-.1 2.5a34.4 34.4 0 01-.3 1.7"/>
+      <path d="M381.4 254v19.9l-.5 2.6m.5-43v14.6m.3-13.4v11.8m0-26.8v8.8m-.3-9.9v11m.3-19v3.5m-.3-4.2v5m-1.8 65.2l-.4.7a18.7 18.7 0 01-4.1 5.7 19.6 19.6 0 01-5.9 4 24.6 24.6 0 01-6.5 2.2c-2.7.6-4.2.8-6.9.9-2.5 0-3.9 0-6.3-.2-2.7-.2-4.1-.5-6.8-.8-2.2-.2-3.4-.3-5.6-.3-2.2 0-3.5 0-5.7.4a22 22 0 00-5.2 1.4c-2.7 1.1-5.7 3-6.4 3.8-.6-.8-3.7-2.7-6.3-3.8a22 22 0 00-5.2-1.4c-2.2-.4-3.5-.4-5.8-.4-2.2 0-3.4.1-5.6.3-2.6.3-4 .6-6.7.8-2.5.2-3.9.3-6.3.2a33 33 0 01-13.5-3 19.5 19.5 0 01-5.8-4.1 22 22 0 01-2.5-2.8m-2-3.2a10.1 10.1 0 01-2.3 7.7c-.8.9-2.6 2.6-5 2.6-3.7 0-4.8-2.5-5-3.2"/>
+      <path d="M255.6 278.9c.7.7 1.3 1.5 1.9 2.5 1 1.8.6 4.8-.1 6.2a4.4 4.4 0 01-.3.4m-20.3 18c2.3 2.4 5.7 5 10.9 7.1 7.1 3 18.1 3.6 25.7 4 10 .3 19.3.7 25 7m17.3-4a12 12 0 014 5.5m-7.3 11.5a8.2 8.2 0 01-.7.7 8.3 8.3 0 01-6.6 2c-2-.2-3.8-1.6-4.3-2.6m-5.4-2.9l.3.4a7.6 7.6 0 005.1 2.4m27 0a18 18 0 01-7.7 6.1 17.7 17.7 0 01-7.6-6.1l-.3-.5m15.6.4l.7.7a8.3 8.3 0 006.7 2 5.5 5.5 0 004-2.5l.5-.7"/>
+      <path d="M339 336.6l-.7 1.2-1.1 1-1.7.7h-1.6"/>
+      <path d="M343 325.3a7.7 7.7 0 012.4 2.9c.3.7.4 1.5.5 2.3a5.8 5.8 0 01-1.5 4.2 7.5 7.5 0 01-5.4 2.4 5.5 5.5 0 01-.4 0m.2-.2a6.8 6.8 0 01-5.2-2.2m63.7-67.9a23.8 23.8 0 01-4.8-6.4 18.8 18.8 0 01-1.7-4.5 12 12 0 01-.5-3.3 26 26 0 014.6-15.3c.7-.8 1.4-1.8 2.1-2.2m-1.3-75.9c2.5.2 4.8 3 4.8 5.7 0 3.8-1.3 5.5-4.4 9.3-2.6 3.2-10.6 9-10.3 14.5 0 1 .5 2 1.1 2.8m-3.2 3.5a7 7 0 002 1.4 5 5 0 004.3-.3M369 153a6 6 0 012.2 2.6c1.8 4.5-2.2 7.9-6 10.4a21.3 21.3 0 01-8.3 3.3"/>
+      <path d="M364.6 161.6a4.2 4.2 0 01-3.1-1.5 3.4 3.4 0 01-.7-1m-15 4.9a4.6 4.6 0 01-1.2-1c-1-1-1.5-2.3-.8-4.4.6-1.9 3.7-7.2 3.8-10.9.2-5.6-2-9-5.3-10.2"/>
+      <path stroke-linecap="round" d="M347.3 146.5l-.1 2-.6 2.2-1 3-1 1.9-.8 1.9-.4 1.3-.2 1 .1.9m38 126.3l.6.8c.7 1 3.2 3 5.5 3 3.7 0 4.6-2.6 4.7-3.2.5-2.9-.5-3.6-2-4.5 0 0-.8-.4-1.9-.2"/>
+      <path d="M237 274.4a6.9 6.9 0 01-3.7 0c-2.9-.9-5.2-3.6-4-7m13.4-31.8c.3.3.4.7.4 1 .4 3.8-2.8 4.8-5 4.2a5.6 5.6 0 01-3-2.3 4.7 4.7 0 01-.7-2.3m22-23.6c.6.5 1 1 1.3 1.7m-1.1-8.5c.5.4.9.9 1.1 1.3"/>
+      <path stroke-linecap="round" d="M257.9 210.5a8.5 8.5 0 01-1.6 2.4 12.4 12.4 0 01-8.8 4c-2 0-4-.4-6-1.7a9.5 9.5 0 01-4-5.6"/>
+      <path d="M255.4 195.3a7.8 7.8 0 012.4 3.4"/>
+      <path stroke-linecap="round" d="M257.8 203.2c-.9 3-3.5 6.6-8.6 7.9-2.4.6-5.6-.2-6.6-1"/>
+      <path d="M240 202.6c.3 2.6 2 4.6 5.4 4.6 4.7.1 7.6-6.7 3.4-11.5"/>
+      <path stroke-linecap="round" d="M229.4 225.5c.7.9 1.5 1.7 2.4 2.4a16.8 16.8 0 006 3.3m5.2.5c4.2-.5 6.6-3.7 6-7.3-.3-2.8-2.8-5-4.6-5.1"/>
+      <path d="M249.8 188.1c1.9 0 3 1.6 2.9 3"/>
+      <path stroke-linecap="round" d="M249.4 163a11.5 11.5 0 005 5.9m144.2 31c1.7 2.3.6 7-4 7a5.2 5.2 0 01-4.5-2.5"/>
+      <path d="M381.7 169.1V185"/>
+      <path stroke-linecap="round" d="M243.8 202.3c1.4 1 3.3-.7 2.5-2.6-.5-1.2-2.2-2.6-4.7-.9-2.8 1.9-2 7.8 3.2 7.9 4.7 0 7.6-6.8 3.4-11.6-4-4.6-11.3-3.6-16 .2A21.4 21.4 0 00225 207a22.5 22.5 0 000 9.2 20.9 20.9 0 003 7.5l1.3 1.7c.8.8 1 1.2 2 2a15 15 0 0010.4 3.7c4.6-.2 7.3-3.4 6.8-7.3-.4-3.8-4.2-5.7-6.7-3.9-1.7 1.2-2.3 4.9.7 5.8 1.6.5 3.1-1.7 2-3M374 150.9c2.7-1.4 4.8-1.2 6.3 1a9.9 9.9 0 011.6 7.2 9.2 9.2 0 01-3.5 5.8"/>
+      <path stroke-linecap="round" d="M380.5 152c3.1-2 6.5-1.1 8.3 1.6 1.3 2 1.7 3.6 1.6 6.1a11.2 11.2 0 01-5.7 9.2"/>
+      <path d="M395 159.2c2.6.2 4.6 2.5 4.6 5.1 0 3.8-1 5.5-4 9.3-2.7 3.3-10.6 9-10.4 14.6 0 2.1 1.8 4 3.3 4.2"/>
+      <path stroke-linecap="round" d="M395.4 202.3c-1.5 1-3.3-.6-2.5-2.4.5-1.2 2.2-2.8 4.7-1.1 2.7 1.9 2 7.8-3.3 7.9-4.7 0-8-6.6-3.4-11.6 4-4.6 11.7-3.7 16.5.1 2 1.6 6.1 6 7 12 1 7 .9 15.6-6.4 21-3 2.1-7 3.1-10.6 3-4.6-.2-7.3-3.5-6.8-7.4.5-3.8 4-5.4 6.7-3.9 2.8 1.5 2.3 5.4-.7 5.8-1.7.2-3.1-1.7-2-3"/>
+      <path d="M392.9 199.9c.8-3.5 3.7-3.8 6.2-3.8 6.5.1 11.1 8 11.2 15.5 0 9.5-4 15.2-11 15.5-1.9 0-5-.8-5-3"/>
+      <path stroke-linecap="square" d="M397 198.3c6.9 1.6 9.3 7.8 9.3 13.8 0 4.9-.5 11.6-10 13.9"/>
+      <path d="M408.4 265.3a3.9 3.9 0 10-6.3 2.4"/>
+      <path stroke-linecap="round" d="M394.4 259.4c1.4 2 3 4.1 6.3 6m-1.3 10.5c-3.2-2.2-9.5-5-15-2.2a7.6 7.6 0 00-4.4 4.4 10 10 0 001.8 9.5c.9 1 2.7 2.6 5 2.7 3.8 0 4.7-2.6 4.8-3.2.4-2.8-1.2-3.9-2-4.1-.7-.3-2.8-.2-3.2 1.3-.2.5-.2 1.3.2 2"/>
+      <path stroke-linecap="round" d="M340.5 328.4c1 2.2-.2 3.2-1.6 3.4-2.2.3-3.3-1.4-3.4-3a4.4 4.4 0 014.3-4.7c2.3 0 4.1 1.5 5 3.5.3.7.5 1.5.5 2.4a5.8 5.8 0 01-1.4 4.1 7.5 7.5 0 01-5.4 2.5c-4.2.1-7.5-3.8-7.5-7.8 0-7.7 11.4-12 16-13a84 84 0 0117.9-2.4c3.5-.1 6.2 0 10.1-.5 3.5-.3 5.4-.5 9-1.3a27.2 27.2 0 0012.6-6.4c2.9-2.7 4.5-4.5 5.9-8.2a17 17 0 00-1.3-13.9 14.3 14.3 0 00-10.3-6.8c-3.7-.5-7 1.1-9 4.8-1 1.8-.6 4.8.1 6.2a6 6 0 004.8 3c3.8 0 4.7-2.6 4.8-3.2.4-2.8-1.2-3.9-2-4.2-.7-.2-2.8-.1-3.2 1.4-.2.5-.2 1.3.2 2"/>
+      <path stroke-linecap="round" d="M337.2 316.2c-4.8 2.1-8.4 3.7-11.4 8.5a9.9 9.9 0 00-1.2 4.9c0 2.7 1.1 5.7 3.3 7.6a8.3 8.3 0 006.7 2c2-.2 3.7-1.6 4-2.6"/>
+      <path d="M385.1 224.1c-2.3.8-3.9 4.2-3.9 7.5a8.4 8.4 0 004 7.5"/>
+      <path stroke-linecap="round" d="M387.6 236.4c-4 5.1-6.3 8.1-6.4 14.1 0 5.7 1.7 9.6 5.1 13.7"/>
+      <path d="M365.9 152l.3-.5c1.7-2.4 4.7-3.1 6.9-1.5 2.6 2 3.3 5.4 2.6 9-.5 2.2-2 4.1-4 5.5"/>
+      <path stroke-linecap="round" d="M265.1 150.8c-2.6-1.2-4.7-1-6.3 1a8.7 8.7 0 00-1.6 7.2c.6 2.7 1.4 3.8 3.5 5.8"/>
+      <path d="M258.6 152a5.8 5.8 0 00-8.3 1.6 9.1 9.1 0 00-1.6 6.1c.2 4.2 2.8 7.6 5.8 9.2"/>
+      <path d="M249.7 154.8a6.8 6.8 0 00-6 6.6c0 4.5 1 6.3 3.5 9.6 2.5 3.4 10.7 9.6 10.7 16.7 0 4.3-1.2 7-4.3 8.4-2 1-4.3 0-5.4-1-2.6-2.4-1.5-6.5 1.2-7 3.3-.6 3.9 4.6.7 4.3"/>
+      <path d="M244 159.2c-2.5.2-5 2.3-5 5 0 3.8 1.5 5.6 4.6 9.4 2.6 3.3 10.1 9 9.9 14.5 0 2-1.5 4.6-2.9 4.3"/>
+      <path stroke-linecap="round" d="M238 236.1c1.3-2.9 4.4-1.6 4.6 0 .4 3.7-2.8 4.8-5.1 4.2a4 4 0 01-2.5-2 4.8 4.8 0 01-.4-3.7 4.9 4.9 0 01.9-1.6 5 5 0 011.2-1.2c1-.6 1.9-.6 3.4-.6 5.5 0 10.4 6.5 12 13.4.6 2.2 1.3 7.3.3 12a22.4 22.4 0 01-5.8 11.3 25.8 25.8 0 01-10 5.8 7 7 0 01-3.9.1c-2.8-.9-4.6-3.5-3.2-7 1.2-2.6 5.4-4 7.3-.6.2.3.4.9.4 1.5 0 .9-.4 2-1 2.4-1.4.9-3.7.6-3.6-2"/>
+      <path d="M233.8 270.4c1 .4 1.6.3 2.9-.2l1.8-1c2.6-1.5 5.6-3.8 8.4-9.1a18.8 18.8 0 001.7-4.5c.3-1 .5-2.2.6-3.3a25.6 25.6 0 00-4.8-15.3c-1.1-1.6-2-2.5-4.2-2.6m-9.5 31a3.9 3.9 0 116.3 2.3"/>
+      <path d="M232.2 261.4a3.7 3.7 0 013.7-3 3.7 3.7 0 013.6 3.7 3.8 3.8 0 01-1 2.6"/>
+      <path d="M239.4 261.3a15.5 15.5 0 006.2-12.4c0-4.1-1.6-8.4-3.6-10"/>
+      <path stroke-linecap="round" d="M244.7 259.4a16.5 16.5 0 01-6.3 6"/>
+      <path d="M254.6 273.7c-1-2.2-2.8-3.2-5.8-3.5-3-.3-5.5.5-8.2 1.9a18.6 18.6 0 00-10.8 17 25 25 0 002 9.5c.9 1.6 3 9 15.3 14a86.1 86.1 0 0025.7 3.9c10.4.4 20 .8 25.6 7.6"/>
+      <path stroke-linecap="round" d="M239.7 275.9c3.3-2.2 9.5-5 15.1-2.2a8 8 0 014.3 4.4 10 10 0 01-1.8 9.5c-.9 1-2.7 2.6-5 2.7-3.8 0-4.7-2.6-4.8-3.2-.4-2.8 1.2-3.9 2-4.2.7-.2 2.8-.1 3.2 1.4.2.5.2 1.3-.2 2"/>
+      <path d="M252.7 285.7c.3-1 .2-2.2-.8-3.3a5.1 5.1 0 00-6-1c-.7.5-1.6 1-2.4 2.2-.4.4-1 1.1-1.2 1.6-.7 1.1-1 2-1 2.5-2.5 7 1.5 14.4 6.5 17.6 4.4 2.8 8.8 3.6 14.4 4 2.5.3 4 .3 6.5.5h9.6a70.1 70.1 0 017.2 0c3 .3 5.1.4 7.6.8 1.6.2 3.5.5 5.4 1 .6 0 1.2.2 1.8.4l1.2.3c3.6 1.1 7 2.4 9.8 4.2.8.5 1.8 1 2.5 1.7l1.3 1.2c2 2 4 4 4.4 6.7v1.6c0 1.8-1.4 4.3-5.3 5"/>
+      <path d="M298.6 328.4c-1 2.2.2 3.2 1.6 3.4 2.2.3 3.3-1.4 3.5-3a4.4 4.4 0 00-4.4-4.7 5.5 5.5 0 00-5 3.5 6.9 6.9 0 00-.5 2.4 5.8 5.8 0 001.4 4.1 7.5 7.5 0 005.4 2.5c4.2.1 7.5-3.8 7.5-7.8 0-7.7-11.4-12-16-13a84 84 0 00-17.9-2.4c-3.5-.1-6.2 0-10.1-.5-3.5-.3-5.4-.5-9-1.3a27.2 27.2 0 01-12.5-6.4 17 17 0 01-4.7-22 14.3 14.3 0 0110.3-6.9c3.8-.5 7 1.1 9 4.8 1 1.8.6 4.8-.1 6.2a6 6 0 01-4.8 3c-3.8 0-4.7-2.6-4.8-3.2-.4-2.8 1.2-3.9 2-4.2.7-.2 2.8-.1 3.2 1.4.2.5.2 1.3-.2 2"/>
+      <path stroke-linecap="round" d="M273.3 152l-.4-.5c-1.7-2.4-4.7-3.1-6.9-1.5-2.6 2-3.3 5.4-2.5 9a9 9 0 004 5.5"/>
+      <path d="M366.8 159.6c-4 4.4-8.1 5.8-14.1 6-2 0-5.5-.6-7.6-2.1-1.3-1-2.8-2.6-1.9-5.5.6-1.9 3.7-7.2 3.8-10.9.3-5.6-1.9-8.7-5.3-9.9-6.2-2.2-13 4-17 5.4-2.1.7-3.2.8-5.1.8-2 0-3-.1-5.2-.8-4-1.4-10.7-7.6-17-5.4-3.4 1.2-5.5 4.3-5.3 10 .1 3.6 3.2 9 3.8 10.8 1 2.9-.5 4.5-1.9 5.5-2 1.5-5.7 2.1-7.5 2-6-.1-10.1-1.5-14.1-5.9"/>
+      <path stroke-linecap="round" d="M297.3 314.4c.8.3.2-.2 5.3 2a22 22 0 0111.3 8.9 10.5 10.5 0 01.9 7.3"/>
+      <path d="M297.7 336a8 8 0 003.2.9c4.2.1 7.5-3.8 7.5-7.8 0-2.8-1.5-5.2-3.6-7"/>
+      <path stroke-linecap="round" d="M298.6 328.4c-1 2.3.4 3.5 1.8 3.7 2.2.2 3.4-1.4 3.6-3a4.5 4.5 0 00-2.2-4.2"/>
+      <path d="M390.1 154.8c3.2 0 6 3.6 6 7.2 0 4.3-2.2 6.9-3.9 8.8-1.3 1.6-2.7 3-4.4 4.7"/>
+      <path stroke-linecap="round" d="M386.3 151.4a9 9 0 012.8 2.4c1.3 2 1.7 3.7 1.6 6.2-.2 4.2-3.2 7.1-6 9m-4.7-17.6l.6.7c1.9 2.2 2 5.4 1.6 7.2a8.2 8.2 0 01-3.8 5.4m-5-14.4c2.6 2 3.4 5.4 2.5 9-.6 2.5-2.2 4-4.2 5.2m11.1 41.1c.3 1 .9 1.3 1.5 2a13.5 13.5 0 006.2 3.5c2.4.7 4.6.2 6.3-.9m-163 54c1.2 0 2.5.9 3.3 2.3.1.2.4.8.4 1.5 0 .9-.4 1.8-1 2.2-1.5 1-4 .5-4-2"/>
+      <path d="M241.5 231.3c5 1 9.7 6.9 11.2 13.3.6 2.3 1.3 7.3.3 12a22.4 22.4 0 01-6 11.4 16.5 16.5 0 01-2.1 1.9l-1 .7m-8-12.1c2 0 3.8 1.9 3.8 4a3.8 3.8 0 01-1 2.6"/>
+      <path d="M234.6 260.7c2.1 0 4.1 2 4.1 4.2a3.9 3.9 0 01-1.4 3"/>
+      <path stroke-linecap="round" d="M254 239.5a18 18 0 013.8 7.7m0 8.5a17.3 17.3 0 01-1.5 4 17.8 17.8 0 01-3.6 4.7"/>
+      <path d="M254.3 224.3c1.8 1.5 3 3 3.5 4.8"/>
+      <path stroke-linecap="round" d="M257.9 219.5a10 10 0 01-3.4 4.6m-9.2-17.2l2.2-.6 1.3-1 .8-1.1.7-1.8.3-1.5"/>
+      <path d="M241 199.3c-.7.2-1.6.4-2.5.8a9 9 0 00-3.5 3 17 17 0 00-2.2 12.7 15.8 15.8 0 002.3 5.6l1 1.4c1.4 1.3 2.6 2 4.6 1.7"/>
+      <path stroke-linecap="round" d="M253 189.8c-.3 1.3-1 2.9-3 2.7"/>
+      <path d="M245.7 198.5c-2-1.9-6-2.4-10.1.2L234 200a8.8 8.8 0 00-1.4 1.6 17.5 17.5 0 00-2.4 5c-.7 3-.7 5.6-.6 6.3 0 1 .2 1.9.3 2.7.6 2.8 1.4 4.8 2.3 6.2.9 1.5 3 5 7.7 5.4 1.8.1 4.8-.7 5-3"/>
+      <path stroke-linecap="round" d="M363.8 157c.3-1.6 2.3-1.9 3-1 1.2 1.6.4 4.2-2 4.9a4 4 0 01-3.8-1.4c-1-1.3-.9-2.8-.5-4 .2-.8.9-1.5 1.7-2.2 2.7-2 7.1-1.6 8.6 2 1.8 4.4-2.2 7.8-6 10.3-4.6 3.2-10 3.8-14 3.7-9.2 0-16.1-4.4-20.7-7-1-.5-2.1-.4-2.7.3a2 2 0 00.3 2.7"/>
+      <path stroke-linecap="round" d="M365.6 155.5c1 0 1.2.4 1.5.8 1.2 1.5.3 4.1-2 4.9m17.8 51.5c-3.5 3.8-.2 10.3 2.4 11.8.9.7 1.3.3 2 .7"/>
+      <path d="M383.1 205.4c-1.1.8-1.5 1.7-1.6 3.3a5.3 5.3 0 001.4 4 14 14 0 009.3 3.7c2 0 4-.4 6-1.7a9 9 0 003.8-5.4m-20.8 61.8l-.2 2.5a18.9 18.9 0 01-2 7 18.7 18.7 0 01-4.2 5.6 19.6 19.6 0 01-5.9 4 24.6 24.6 0 01-6.5 2.3 43.8 43.8 0 01-13.2.6c-2.7-.2-4.1-.5-6.8-.8-2.2-.1-3.4-.3-5.6-.3a28.3 28.3 0 00-10.9 1.9c-2.7 1-5.7 3-6.4 3.8-.6-.9-3.7-2.8-6.3-3.8a22 22 0 00-5.2-1.5c-2.2-.4-3.5-.4-5.8-.4-2.2 0-3.4.2-5.6.4-2.6.2-4 .6-6.7.7-2.5.2-3.9.3-6.3.2a33 33 0 01-7-.8 24.6 24.6 0 01-6.5-2.2 19.6 19.6 0 01-5.8-4.1 18.7 18.7 0 01-4.2-5.7 19 19 0 01-2-6.9c-.2-1-.2-2.5-.2-2.5V169.3h123.2v101.8z"/>
+    </g>
+    <g fill="#c7b37f" stroke="#c7b37f">
+      <path stroke-width=".3" d="M248 285.6a2.5 2.5 0 115 0 2.5 2.5 0 01-5 0zM232.5 268c0-1.3.8-2.3 1.8-2.3s1.7 1 1.7 2.3c0 1.2-.8 2.2-1.7 2.2-1 0-1.8-1-1.8-2.2z"/>
+      <path stroke="none" d="M241.3 223.6c0-1 .8-1.8 1.7-1.8 1 0 1.7.8 1.7 1.8s-.7 1.8-1.7 1.8-1.7-.8-1.7-1.8zM272 158c0-1 .5-2 1.4-2 .9-.1 1.7.6 1.8 1.6 0 1-.5 2-1.4 2-.9.1-1.6-.6-1.8-1.6z"/>
+    </g>
+    <g stroke="#c7b37f" stroke-linecap="round" stroke-width=".6">
+      <path d="M239.3 234c-.4.1-.6.2-.8.5-.3.3-.4.4-.6.9l-.2 1.2m4.7 26.7l1-1 .6-1 .5-1 .7-1.3m-1.3 14l-1.5.7-1.1.6a17.4 17.4 0 00-1.3.8l-1.2 1m15-37.9l-.8-.8-1-.8-.9-.8"/>
+      <path stroke-linecap="butt" d="M254.2 225l-1.2.5a5.1 5.1 0 01-1.5.3"/>
+      <path d="M237.4 208.4c.2.6.2 1 .5 1.5.2.7.5 1.1.9 1.7a8.3 8.3 0 002.6 2.7l1.5.8m-1-5.8l1.3.6a7.4 7.4 0 003 .6l1.8-.1m7.2-40.7l-2-1.2c-.9-.5-1.3-.9-2-1.5a9.3 9.3 0 01-1.1-1.3l-.8-1.3m7.5-4.6l.6 1.7a7.8 7.8 0 001.4 2c1 1 1.7 1.3 2.8 2.2m1.4-6c.3.7.3 1 .7 1.6.2.5.4.8.8 1.2l1.3 1.3c.7.6 1.2.7 2 1.1"/>
+    </g>
+    <path fill="#703d29" stroke-width=".2" d="M333.3 151.6c0-1.7-1.7-1.8-2.4-1.8-1.8 0-2.3 1.1-4.6 2.3a11.9 11.9 0 01-6.7 2 12 12 0 01-6.7-2c-2.3-1.2-2.7-2.3-4.6-2.3a2.3 2.3 0 00-2.2 2.4v.9l.3.2c0-.8.1-1.2.5-1.7a2.2 2.2 0 011.6-.8c1.8 0 2.5 1.2 4.8 2.4 3 1.6 4.2 1.9 6.7 2a12 12 0 006.8-2c2.3-1.2 3-2.5 4.8-2.5.6 0 1 .4 1.3 1v.9l.2.1c0-.3.2-.4.2-1z"/>
+  </g>
+  <g fill="#703d29">
+    <path d="M264.4 294c.5-.5.9-.3 1-.6 0-.2 0-.2-.3-.3l-.9-.2-.8-.4c-.1 0-.4-.2-.5 0-.1.4 1 .4.6 1.4a3.7 3.7 0 01-.8 1.2l-2.6 3-.2.1v-4.3l.1-1.8c.2-.4.8 0 .9-.4 0-.1 0-.2-.3-.3-.2 0-.5 0-1.1-.3l-1-.5c-.2 0-.5-.2-.6 0l.1.3c.4.2.5.4.5 1v7.4c0 .5.1.6.2.7.1 0 .2 0 .4-.3l5.3-5.7z"/>
+    <path d="M267.5 295.2c.3-1.1 1-.4 1-.8.1-.2 0-.2-.2-.3l-1.3-.4c-.4 0-.8-.3-1.2-.4 0 0-.3-.1-.4 0-.1.5 1.1.5.8 1.5l-1.7 5.5c-.3 1-1 .6-1.1 1v.1l1.2.4 1.6.5h.3c.2-.4-1.2-.3-.7-1.7l1.7-5.4zm3.7 1c.2-.6.5-.5.9-.4 1 .3 1.4 1.3 1 2.5-.2.6-.4 1.2-2 .8-.3-.1-.7-.2-.6-.5l.7-2.3zm-2.8 5c-.5 1.4-1.2.8-1.3 1.2 0 .2.2.2.3.3l1.6.4.8.3h.4c.1-.5-1-.3-.7-1.5l.6-2c.1-.4.1-.5.6-.3.6.1.7.3.8.8l.3 2c.2.9.3 1.7 1 2 .5 0 1.2 0 1.4-.4l-.2-.2h-.3s-.3 0-.3-.3l-.7-3.6c0-.2.4-.2.8-.3a2 2 0 001-1.3c.1-.5.4-2.2-1.8-2.9l-2.1-.5-1.2-.4h-.3c-.1.5 1.1.4.7 1.7l-1.5 5zm8.4 2.5c-.4 1.4-1.4.5-1.5 1 0 .2.1.3.3.3l1.5.3 1.4.4c.3 0 .5.2.6-.1 0-.3-1.3-.3-1-1.8l1.3-5.2c0-.6.2-.6.6-.5l1 .2c1.1.3.5 1.5 1 1.6.2 0 .2-.4.2-.6l.1-1v-.4l-3.3-.7-3.2-.8c-.1 0-.2 0-.2.2l-.5 1.5c-.1.1-.2.4 0 .4.5.1.5-1.5 1.7-1.2l.9.2c.4.1.5.2.4.8l-1.3 5.4zm12.7-3.3c.4-.6.8-.5.9-.7 0-.2-.2-.2-.4-.3h-.9l-.9-.3c-.1 0-.4-.1-.4.1-.1.4 1 .2.8 1.3 0 .2-.1.6-.6 1.3l-2 3.3-.3.2v-.2l-.7-4a5.4 5.4 0 01-.1-1.8c0-.5.7-.2.7-.5 0-.2 0-.2-.4-.3l-1.1-.1c-.4 0-.7-.2-1-.3-.2 0-.5-.1-.6.1l.1.2c.5.2.6.4.7.9l1.3 7.3c.1.5.2.7.3.7.1 0 .2 0 .4-.3l4.2-6.6zm.6 6.8c0 .3 0 .3.2.5.6.2 1 .6 1.7.7 1.4.2 2.6-.7 2.8-2.2.3-1.5-.3-2.1-1.4-2.9-1.3-.9-1.8-1.1-1.7-2 .1-.7.7-1 1.4-1 1.8.3 1.6 2.6 1.8 2.6.3 0 .3-.1.3-.4l.2-1.6v-.4h-.6c-.4 0-.7-.5-1.6-.7-1.2-.2-2.3.7-2.5 2-.2 1.2.4 1.8 1.2 2.4 1.6 1.1 2.2 1.4 2 2.4-.1 1-.9 1.4-1.7 1.3-1.2-.2-1.6-1.4-1.8-2.6 0-.2 0-.3-.2-.3s-.2.3-.2.5v1.7zm15.8-4.5c.3-.7.8-.6.8-.9 0-.2-.1-.1-.4-.2h-.9l-.9-.1c-.1 0-.4 0-.4.2 0 .4 1 0 1 1.1 0 .2-.1.6-.5 1.4l-1.8 3.5-.1.3-.1-.3-1.1-4a5.4 5.4 0 01-.3-1.6c0-.5.7-.3.7-.6 0-.2 0-.2-.4-.2h-1.2l-1-.2c-.2 0-.5-.1-.6.1l.2.2c.4.2.6.3.7.8l2.1 7.1.4.7c.1 0 .2 0 .3-.4l3.5-7z"/>
+    <path d="M307.6 308.5c0 1.2-1 1-1 1.5 0 .2.1.1.3.1h2.2l.4-.1c0-.6-1.4.2-1.4-2v-4.2l.1-.1.2.1 5.1 6.3.3.1.2-.3v-6.7c0-1.3 1-1 1-1.3 0 0 0-.2-.3-.2h-2.3c-.2 0-.2.1-.2.2 0 .4 1.3.2 1.3 1.3v4l-.1.4-.4-.3-4.2-5.3c-.2-.3-.1-.3-.4-.3h-1.8l-.2.1c0 .6 1.2-.2 1.2 2.1v4.6zM318 303c0-1.1.8-.7.8-1.1 0-.1 0-.2-.4-.2h-2.6s-.3 0-.3.2c0 .4 1.1 0 1.1 1.2v5.7c0 1.1-.8.8-.8 1.2 0 0 0 .2.2.2h2.8c.2 0 .3 0 .3-.2 0-.4-1.2.2-1.2-1.3l.1-5.7zm4.5 5.5c0 1.5-1.2 1-1.2 1.4 0 .2.2.2.4.2h3c.3 0 .5 0 .5-.3s-1.4 0-1.4-1.4V303c0-.6 0-.6.5-.6h1c1.2-.1.8 1.2 1.3 1.2.2 0 .1-.4.1-.6l-.1-1c0-.2 0-.4-.2-.4l-3.3.1h-3.3l-.2.3-.1 1.6.1.4c.5 0 .2-1.6 1.4-1.6h.9c.4 0 .5 0 .6.6v5.6zm6.3-2.2h-.4l.1-.5.7-2.2v-.2l.2.1 1 2.1.2.4c0 .2-.2.2-.4.2h-1.4zm1.8.5c.3 0 .3 0 .8 1l.2.8c0 .7-.7.6-.7 1 0 .1.2.1.4 0h1.2l1.3-.1c.3 0 .4 0 .4-.2 0-.4-.6 0-1-.7l-3.4-7-.3-.4c-.2 0-.2.2-.3.4L327 309c-.2.7-.8.7-.7 1h2.3c.2-.1.5 0 .5-.3s-1.2 0-1.3-.9l.2-1c.2-.8.4-.8.6-.8l2.1-.2zm8.3-5c-.1-.8 0-.8 1.2-1 2-.2 1.4 1.3 2 1.2.2 0 0-.4 0-.6l-.1-1.1c0-.1-.1-.2-.3-.2-1 0-1.7.2-2.4.3l-2.8.4c-.2 0-.3 0-.3.2.1.5 1.3 0 1.4 1l.7 5.5c.2 1.5-.7 1-.6 1.5 0 0 0 .1.2 0l1.4-.1 1.2-.1c.3 0 .5 0 .5-.3s-1.2.1-1.4-1.2l-.2-1.7c-.1-.7-.1-.9.3-1h.8c1.1-.2 1 1.1 1.3 1 .3 0 .2-.4.1-.5l-.3-2.1c0-.3-.2-.3-.2-.3-.3 0-.1 1.1-1 1.2l-.7.1c-.5.1-.5 0-.6-.5l-.2-1.7zm4 2.8c.4 2.3 2.1 3.7 4.2 3.3 3.4-.7 3.5-3.6 3.2-5.3-.5-2.5-2.3-3.7-4.4-3.3-2.5.5-3.5 2.7-3 5.3zm1.1-1c-.3-1.6 0-3.4 1.7-3.7 1.4-.3 3 .8 3.4 3.4.3 2 0 3.6-1.8 4-1.9.4-3-2-3.3-3.6zm8.3-4.1c-.1-.7.2-.8.6-.9 1-.2 1.8.5 2.1 1.6.2.7.3 1.4-1.3 1.8-.3 0-.7.1-.8-.2l-.5-2.3zm0 5.7c.4 1.4-.5 1.3-.5 1.6.1.3.3.2.4.1.6 0 1-.3 1.6-.4l1-.2c.2 0 .2-.1.2-.2 0-.4-1 .3-1.3-1l-.5-2c0-.4-.2-.4.4-.5.5-.2.7-.1 1.1.3l1.3 1.6c.5.6 1 1.3 1.8 1.1.5-.1 1-.5 1-.9l-.2-.1-.3.1s-.3.1-.4 0l-2.4-2.9.5-.6c.2-.4.4-.9.2-1.6-.1-.5-.7-2.1-3-1.6l-2.1.6-1.2.2c-.2 0-.3.1-.2.2 0 .5 1.1-.2 1.4 1l1.2 5.2zm8.7-2c.3 1.4-1 1.2-.9 1.6 0 .3.3.2.5.2l1.4-.5 1.5-.3c.3 0 .5 0 .4-.4 0-.3-1.3.4-1.7-1l-1.3-5.3c-.2-.5 0-.6.3-.7l1-.2c1.1-.4 1.1 1 1.5.9.3 0 0-.5 0-.7l-.4-1s0-.3-.2-.2l-3.2.9-3.2.7v.3l.1 1.6c0 .2 0 .4.3.4.5-.1-.3-1.6 1-1.9l.8-.2c.4-.1.6 0 .7.5l1.4 5.3zm5.5-7.3c-.3-1 .6-.9.4-1.3h-.3l-1.4.4-1.2.3s-.3 0-.3.2c.1.4 1.2-.2 1.5.8l1.6 5.6c.2 1-.6 1-.5 1.3 0 .1 0 .2.2.1l1.1-.3 1.6-.4c.3 0 .3-.1.3-.3-.1-.3-1.1.5-1.5-.9l-1.5-5.5zm2.3 2.7c.7 2.3 2.6 3.4 4.7 2.7 3.2-1.1 3-4.1 2.4-5.7-.8-2.4-2.8-3.3-4.8-2.7-2.4.9-3.2 3.2-2.3 5.7zm1-1c-.6-1.7-.6-3.5 1.1-4 1.3-.5 3 .4 3.9 2.9.6 1.8.5 3.6-1.2 4.2-1.8.6-3.2-1.5-3.8-3.2zm7.6-5.5c-.2-.7 0-.8.4-1 1-.3 2 .3 2.4 1.4.2.6.4 1.3-1.1 1.9-.3 0-.7.2-.8 0l-.9-2.3zm.8 5.6c.6 1.4-.4 1.4-.2 1.7 0 .3.2.1.4.1l1.5-.7.9-.2c.2-.1.2-.2.2-.3-.2-.4-1 .4-1.4-.8l-.8-1.9c-.2-.4-.2-.5.3-.7.5-.2.7-.1 1.1.3l1.6 1.4c.5.5 1.1 1.1 2 .8.3-.2.9-.7.7-1l-.2-.1-.2.2h-.5l-2.8-2.5.4-.7a2 2 0 000-1.6c-.1-.6-1-2-3.1-1.2l-2 .9-1.2.4-.2.2c.2.4 1.1-.4 1.6.8l2 5z"/>
+  </g>
+  <g fill="#fedf00" transform="matrix(.64 0 0 .64 0 16)">
+    <path fill="#d52b1e" d="M412.7 249.3h82.1v82h-82.1z"/>
+    <path id="a" fill="#fff" d="M451.2 313.8s0 3-.8 5.3c-1 2.7-1 2.7-1.9 4a13.2 13.2 0 01-3.8 4c-2 1.2-4 1.8-6 1.6-5.4-.4-8-6.4-9.2-11.2-1.3-5.1-5-8-7.5-6-1.4 1-1.4 2.8-.3 4.6a9 9 0 004.1 2.8l-2.9 3.7s-6.3-.8-7.5-7.4c-.5-2.5.7-7.1 4.9-8.5 5.3-1.8 8.6 2 10.3 5.2 2.2 4.4 3.2 12.4 9.4 11.2 3.4-.7 5-5.6 5-7.9l2.4-2.6 3.7 1.2h.1z"/>
+    <use width="100%" height="100%" transform="matrix(-1 0 0 1 907.5 0)" xlink:href="#a"/>
+    <path d="M461.1 279l10.8-11.7s1.6-1.3 1.6-3.4l-2.2.4-.5-1.2-.1-1.1 3-.7V260l.3-1.3-3.2.2.3-1.4.5-1 1.9-.4h1.9c1.8-3.4 9.2-6.4 14.4-1 3.8 4 3 11.2-2 13.2a6.3 6.3 0 01-6.8-1.1l2-4c2.7 1.7 5-.3 4.8-2.4-.2-2.7-2-4.3-4.3-4.5-2.3-.2-4 1-5 3-.6 1.3-.3 2.2-.5 3.6-.2 1.5 0 2.3-.5 3.8a8.8 8.8 0 01-2.4 3.6l-11 12-43 46.4-3.2-3 43.2-46.7z"/>
+    <path fill="#fff" d="M429.5 283s2.7 13.4 11.9 33.5c4.7-1.7 7.4-2.8 12.4-2.8 4.9 0 7.6 1 12.3 2.8A171 171 0 00478 283l-24.2-31-24.4 31z"/>
+    <path d="M456.1 262.4l16.8 21.7s-2.2 10.5-9 26.3c-2.7-.6-5-1.1-7.8-1.3v-46.7zm-4.7 0l-16.8 21.7s2.2 10.5 9 26.3c2.7-.6 5-1.1 7.8-1.3v-46.7z"/>
+  </g>
+  <g fill="#d52b1e">
+    <path fill="#fedf00" d="M322.3 175.5h52.6V228h-52.6z"/>
+    <path d="M329.7 175.5h7.8V228h-7.8zm15 0h7.8V228h-7.8zm15 0h7.9V228h-7.9z"/>
+  </g>
+  <g fill="#d52b1e" stroke="#d52b1e" stroke-width=".5">
+    <path fill="#fedf00" stroke="none" d="M264.3 273.5c.1 1 .5 2.6 1.4 4.3 1 1.5.6 1.4 2.7 3.8a15.3 15.3 0 004 2.9 32.7 32.7 0 0015 2.6c2.7-.1 4.8-.4 6.6-.7a71 71 0 0111-.6c1.5 0 3 .3 4.7.6 3.5.7 7 2 7 2v-54.7h-52.6V271l.2 2.4z"/>
+    <path stroke-width=".3" d="M270.4 283.1l2.5 1.5 3.4 1.2v-52.2h-5.9zm29.2 2.4v-51.9h-5.8v52.8l5.8-.7zm11.7-51.9h-5.8v52.1c1.9.2 3.8.6 5.8 1v-53zm-23.4 0V287s-3.8.2-5.8 0v-53.4z"/>
+  </g>
+  <g transform="matrix(.64 0 0 .64 0 16)">
+    <path fill="#fedf00" d="M585.5 402.4a20.8 20.8 0 01-2.2 6.6c-1.5 2.3-1 2.3-4.3 6a26.3 26.3 0 01-13 7 51.8 51.8 0 01-16.6 1.6c-4.3-.2-7.5-.7-10.3-1-3.8-.6-6.7-.9-11-1a62.9 62.9 0 00-6.2 0 83.3 83.3 0 00-18.3 4.2V340h82.2v58.5l-.3 3.8z"/>
+    <g id="b">
+      <path fill="#d52b1e" d="M524.6 347l-.6.2-.8.8c-.4.4-.7.5-1.2.8l-.6.5c-.3.3 0 .6-.3 1-.1.4-.3.6-.6 1-.4.4-.7.5-1 1l-1.2 1-.3.1h-.6c-.4.2-.5.6-.8.8l.3.6.8 1.4c.2.3.2.7.5.8.5.2.9.2 1.3.1.8.2 1.3.2 2 .5l1.5.8c.5.3.8.4 1.3.5h1.8v.3l2 1a1.7 1.7 0 00-.1.4c-.1.3-.2.7-.1.8.6 1.9 1.2 3 1.5 3.2.6.2.8.9 1.1 1.5l-.3.3c-.6.6-1.2 1-1.7 1.8-.7 1.2-1.2 1.2-.3 2.8l1.5 2.4c.4.7.6 1.2.8 2 .2.7.3 1.2.3 2l1 .3.7-.6.6-1.2v-1c-.2-.1-.3-.4-.2-.7 0-.4.5-.3.7-.6.3-.5-.4-.8-.7-1.1-.6-.7-1.4-.9-1.6-1.9 0-.2 0-.4.4-.7l2-1.8c.2.1.6.2 1 .1l1.3.4c.6.2.9 0 1.2 0h.4l.1.6c.1 1-.1 3 .2 3.5l.3.6.2.6v2l-.2 1.7c0 .4-.2.7-.5 1-.2.4-.6.4-1 .7v1l1.1.5 1.3.3.7-.3.1-.6.5-.5c.4-.2.8 0 .9-.1.2-.3 0-.4 0-.8 0-.6-.2-1-.3-1.6a11.8 11.8 0 01-.1-2.8c0-.6 0-1 .2-1.5.1-1 .4-1.4.6-2.2.3-1 .3-1.6.4-2.5a24.4 24.4 0 0010.1-.6c.8.7 1.7 1.2 2.7 1.6v1c0 .3 0 .4.2.7l.3.3c.3 0 .5 0 .7-.2.2-.2.2-.4.2-.7v-.7h1.8v1.1c.1.3.3.4.5.4a.7.7 0 00.6 0c.3-.2.2-.6.3-1v-.7l1-.4a5.1 5.1 0 010 .9l-.3.9c-.2.6-.5.8-.8 1.4-.4.6-.5 1-1 1.5l-.6.7-.6.9-.9 1c-.7.6-1.2.2-2 .9l-.3 1 1.4.6 1.3.2.4-.2c0-.3 0-.6.3-.8.2-.3.4-.3.7-.4.4 0 .8 0 1-.2.4-.3.4-1 .7-1.5a12.7 12.7 0 013-3.9l1.7-1.4c.2-.4.5-.5.5-1l-.2-.6-.2-1c1.5.7 1 .7 1.2 1.4.3.6 0 1 .1 1.7.1.8.5 1.1.5 1.9.1.9-.1 1.4-.3 2.3-.1.8-.1 1.3-.5 2a3.8 3.8 0 01-1.1 1.5l-.6.5-.1 1 1.1.4 1.6.4.4-.3c.2-.7 0-1.7.4-1.7.4-.1.7 0 .8-.3v-.7l.7-4.5.4-1.9.4-1.7c.7-2-.2-2.3-1-3.6-.5-.7-.7-1-.7-1.5V362a42.7 42.7 0 010-2.8l.4-.2c1.2-.7 1.7-.9 2.4-2.5a3.4 3.4 0 00.3-1.5v-1l-.4-1a3.2 3.2 0 00-.6-.8c-.7-1-1.7-1.1-2.7-1.5-1.5-.5-2.5-.4-4-.5-1.8-.2-2.7-.2-4.4 0-2 0-3.1.4-5.1.7l-4.9.4c-2.3 0-4.4-.5-5.8-.4-2.4.2-2.5.8-6.2 1.1a67 67 0 01-3.8.2l-2.2-.7c.9-.3 1.1-.5 1.5-1 .3-.4.2-.7.6-1.1l.7-1a2.2 2.2 0 00-.9-.4h-1a3 3 0 00-1.2.3l-.8.6-2.2-1.2a8.8 8.8 0 00-3-.9zm2 11.8z"/>
+      <g fill="none" stroke="#fedf00" stroke-linecap="round">
+        <path d="M568.8 359.5l-.8.3c-.9.4-1.6.4-2.6.5-2.6.2-4.3-1.1-7-.9-1.4.1-2 1.2-3.5 1.6a9.3 9.3 0 01-1.7.2l.5-1s-1.2.3-2 .3a7.5 7.5 0 01-1.6-.2l1-1-1.3-.2a4 4 0 01-1-.7 20.5 20.5 0 001.7-.3c1.5-.4 2-1.2 3.9-1.4 1.1 0 3 0 7.6.8 3 .5 4.4.2 5.5-.3.8-.3 1-1 1.1-1.8.1-.8-.4-1.4-.8-1.8-.1 0-.5-.3-1.1-.4"/>
+        <path fill="#fcd900" stroke-linecap="butt" stroke-width=".5" d="M524.8 350.6c-.5 0-.9 0-1.3.3-.5.3-.6.7-1 1.1.5.1.8.4 1.2.3.4 0 .5-.2.8-.5.3-.4.4-.7.4-1.2h-.1z"/>
+        <path d="M536 363.8a13.6 13.6 0 001 2.3c.2.8 0 1.2.2 2v1.6m6.8-7l-.3 1.3-1 3.5v.7m-11-4c.9.2.6 3.3 1.9 4"/>
+        <path stroke-linecap="butt" d="M560.1 369.8l.4-.3a8.2 8.2 0 002.7-1.8"/>
+        <path d="M552.4 368c3.5-.9 5.9-2.6 7.6-2.9m-4-1.5h.8c1.5-.3 1.7.6 2.7 1.2 1.9 1 2.1 2.3 4.3 3.4l.4.1.8.4"/>
+        <path fill="#fcd900" stroke-linecap="butt" stroke-width=".5" d="M517.7 354.5h.7l.8-.2c.3 0 .5 0 .7.2.2 0 .2.1.3.3 0 .2.2.3.1.5 0 .2-.3.4-.6.4-.2 0-.4 0-.5-.3a.5.5 0 010-.4 1 1 0 01-.9 0 1 1 0 01-.6-.5z"/>
+      </g>
+      <path fill="#0065bd" d="M525.1 364.2l-2-.9c.4-.2.7-.2 1-.5.3-.4.3-.8.5-1.3s.2-1 .7-1.4c.3-.2.8-.2 1.1-.1.4 0 .8.4.9.7 0 .6-.2 1-.3 1.5 0 .6-.3.9-.2 1.4 0 .4.2.6.4 1l-2-.4zm-1 1a.6.6 0 11.7.5.6.6 0 01-.7-.6zm-1.7-16.6h-.2c-.4-.4-.4-.8-.6-1.2a4 4 0 01-.3-1.2v-2c0-.3 0-.6-.2-.9 0-.2-.4-.3-.3-.4 0-.1.3 0 .4 0 .4 0 .6.1 1 .4.3.3.5.6.6 1l.4 1.5.3.8.5.6-.7.8-.9.6zm3.6 10.6l2.2 1a9.2 9.2 0 003.5-3.8c.9-1.8 1-2.7 1.4-4.4l-1.8-.5h-.4c-.5 1.8-.7 2.7-1.6 4.2-.8 1.3-1.7 2.3-2.6 3l-.7.5zm5 18.2l.8-1.3 1.4-1.1h.4a8.7 8.7 0 01-.5 2.8l-.4 1-.5.5c-.5-.8-1.3-1.3-1.3-2zm33 1.8l1.4.6 1.5.9v.5l-1.5.2a8.4 8.4 0 01-1.3 0h-1l-.6-.4c.5-.7.8-1.6 1.4-1.8zm-9.8-2l1.4.5 1.5 1c0 .1.1.3 0 .4a9 9 0 01-2.7.3l-1-.1-.7-.3c.6-.7.9-1.7 1.5-1.8zm-17.4 2.1l1.5.5 1.5 1v.5a9 9 0 01-2.8.2h-1l-.6-.4c.5-.7.8-1.6 1.4-1.8zm-9-29.8c-.6-.3-1-1-.6-1.6.1-.2.4-.2.6-.4.2-.3.1-.5 0-.8l-.1-1-.2-1c0-.6 0-1 .4-1.6.2-.3.7-.6.8-.6.2.1 0 .5 0 .8 0 .5.1.7.3 1.2l.7 1.3c.2.6.4.8.4 1.4 0 .5 0 .7-.2 1.2a2 2 0 01-.6.8 2 2 0 01-.8.4 1.1 1.1 0 01-.6 0z"/>
+    </g>
+    <use width="100%" height="100%" y="36.6" xlink:href="#b"/>
+  </g>
+  <path fill="none" stroke="#703d29" stroke-width=".5" d="M264.1 175.5h52.6V228h-52.6zm58.2 0h52.6V228h-52.6zm-58 98c.1 1 .5 2.6 1.4 4.3 1 1.5.6 1.4 2.7 3.8a15.3 15.3 0 004 2.9 32.7 32.7 0 0015 2.6c2.7-.1 4.8-.4 6.6-.7a71 71 0 0111-.6c1.5 0 3 .3 4.7.6 3.5.7 7 2 7 2v-54.7h-52.6V271l.2 2.4zm110.4 0a13 13 0 01-1.4 4.3c-1 1.5-.6 1.4-2.7 3.8a15.4 15.4 0 01-4 2.9c-1.3.7-2.3 1-4.4 1.6a32.6 32.6 0 01-10.6 1c-2.7-.1-4.8-.5-6.5-.7a71 71 0 00-7.2-.6 40.5 40.5 0 00-3.9 0c-1.5 0-3 .3-4.7.6-3.5.7-7 2-7 2v-54.8H375v37.5l-.2 2.4z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ae.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ae.svg
new file mode 100644
index 0000000..a7bdb17
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ae.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ae" viewBox="0 0 640 480">
+  <path fill="#00732f" d="M0 0h640v160H0z"/>
+  <path fill="#fff" d="M0 160h640v160H0z"/>
+  <path d="M0 320h640v160H0z"/>
+  <path fill="red" d="M0 0h220v480H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/af.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/af.svg
new file mode 100644
index 0000000..399c1c7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/af.svg
@@ -0,0 +1,81 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-af" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path d="M0 0h640v480H0z"/>
+    <path fill="#090" d="M426.7 0H640v480H426.7z"/>
+    <path fill="#bf0000" d="M213.3 0h213.4v480H213.3z"/>
+  </g>
+  <g fill="#fff" fill-rule="evenodd" stroke="#bd6b00" stroke-width=".5" transform="translate(1 27.3) scale(1.06346)">
+    <path d="M319.5 225.8h8.3c0 3.2 2 6.6 4.5 8.5h-16c2.5-2.2 3.2-5 3.2-8.5z"/>
+    <path stroke="none" d="M266.7 178.5l4.6 5 57 .2 4.6-5-14.6-.3-7-5h-23l-6.6 5.1h-15z"/>
+    <path d="M290 172.7h19.7c2.6-1.4 3.5-5.9 3.5-8.4 0-7.4-5.3-11-10.5-11.2-.8 0-1.7-.6-1.9-1.3-.5-1.6-.4-2.7-1-2.6-.4 0-.3 1-.7 2.4-.3.8-1.1 1.5-2 1.6-6.4.3-10.6 5-10.5 11.1.1 4 .6 6.4 3.4 8.4z"/>
+    <path stroke="none" d="M257.7 242.8H342l-7.5-6.1h-69.4l-7.5 6.1z"/>
+    <path d="M296.4 219.7l1.5 4.6h3.5l-2.8-4.6h-2.2zm-2 4.6l1 4.6h4l-1.5-4.6h-3.5zm7 0l2.8 4.6h5.9l-4.6-4.6h-4.1zm-34.5 10.4c3.1-2.9 5.1-5.3 5.1-8.8h7.6c0 2 .7 3.1 1.8 3h7.7v-4.5h-5.6v-24.7c-.2-8.8 10.6-13.8 15-13.8h-26.3v-.8h55.3v.8H301c7.9 0 15.5 7.5 15.6 13.8v7h-1l-.1-6.9c0-6.9-8.7-13.3-15.7-13.1-6 .1-15.4 5.9-15.3 13v2.2l14.3.1-.1 2.5 2.2 1.4 4.5 1.4v3.8l3.2.9v3.7l3.8 1.7v3.8l2.5 1.5-.1 3.9 3.3 2.3h-7.8l4.9 5.5h-7.3l-3.6-5.5h-4.7l2.1 5.4h-5l-1.3-5.4h-6.2v5.8H267zm22.2-15v4.6h5.3l-1-4.6H289z"/>
+    <path fill="none" d="M289.4 211.7h3.3v7.6h-3.3z"/>
+    <path fill="none" d="M284.7 219.8h3.2v-5.6c0-2.4 2.2-4.9 3.2-5 1.2 0 2.9 2.3 3 4.8v5.8h3.4v-14.4h-12.8v14.4zm25.6 3.3h4v3.2h-4zm-2.4-5.3h4v3.1h-4zm-3.9-5.4h4v3.1h-4zm-3.3-4.5h4v3.1h-4z"/>
+    <path fill="none" d="M298 219.8l4.2.2 7.3 6.4v-3.8l-2.5-1.8v-3l-3.6-2v-3.3l-3.5-1.2V207l-1.7-1.5-.1 14.4z"/>
+    <path d="M315.4 210.3h1v7.1h-1z"/>
+    <g id="a">
+      <path d="M257.3 186.5c-1.2-2-2.7 2.8-7.8 6.3-2.3 1.6-4 5.9-4 8.7 0 2 .2 3.9 0 5.8-.1 1.1-1.4 3.8-.5 4.5 2.2 1.6 5.1 5.4 6.4 6.7 1.2 1 2.2-5.3 3-8 1-3 .6-6.7 3.2-9.4 1.8-2 6.4-3.8 6-4.6l-6.3-10z"/>
+      <path fill="#bf0000" d="M257 201.9a10 10 0 00-1.6-2.6 6.1 6.1 0 00-2.4-1.8 5.3 5.3 0 01-2.4-1.5 3.6 3.6 0 01-.8-1.5 5.9 5.9 0 010-2l-.3.3c-2.3 1.6-4 5.9-4 8.7a28.5 28.5 0 000 2.3c.2.5.3 1 .6 1.3l1.1.8 2.7.7a7.1 7.1 0 012.6 2 10.5 10.5 0 011.8 2.6l.2-.8c.8-2.7.7-5.9 2.6-8.5z"/>
+      <path fill="none" d="M249.8 192.4c-.5 3.3 1.4 4.5 3.2 5.1 1.8.7 3.3 2.6 4 4.4m-11.7 1.5c.8 3 2.8 2.6 4.6 3.2 1.8.7 3.7 3 4.5 4.8"/>
+      <path d="M255.6 184.5l1-.6 17.7 29.9-1 .6-17.7-30z"/>
+      <path d="M257.5 183.3a2 2 0 11-4 0 2 2 0 114 0zm15.2-24h7.2v1.6h-7.2zm0 3.1h7.2v13.8h-7.2zm-.4-5h8c.2-2.7-2.5-5.6-4-5.6-1.6.1-4.1 3-4 5.6z"/>
+      <path fill="#bd6b00" stroke="none" d="M292.6 155.8c-1.5.6-2.7 2.3-3.4 4.3-.7 2-1 4.3-.6 6.1 0 .7.3 1.1.5 1.5.2.3.4.5.6.5.3 0 .6 0 .7-.3l.2-.8c-.1-2-.1-3.8.3-5.4a7.7 7.7 0 013-4.4c.3-.2.4-.5.5-.7a1 1 0 00-.3-.7c-.4-.3-1-.4-1.5-.1zm.2.4c.4-.2.8 0 1 .1l.1.2c0 .1 0 .2-.3.4a8.2 8.2 0 00-3.1 4.6 16.7 16.7 0 00-.3 5.6 1 1 0 01-.2.6s0 .1-.2 0c0 0-.2 0-.4-.3a3.9 3.9 0 01-.4-1.2c-.3-1.8 0-4 .7-6 .7-1.8 1.8-3.4 3-4z"/>
+      <path fill="#bd6b00" stroke="none" d="M295.2 157.7c-1.5.7-2.5 2.3-3 4.2a13.6 13.6 0 00-.3 5.9c.2 1.3 1 2 1.6 2 .3.1.6 0 .8-.3.2-.3.3-.6.2-1-.4-1.6-.5-3.4-.3-5.1.3-1.7 1-3.2 2.2-4.1.3-.3.5-.5.5-.8a.8.8 0 00-.2-.6c-.4-.3-1-.4-1.5-.2zm.2.5c.4-.2.8-.1 1 0l.1.3-.3.4a6.5 6.5 0 00-2.4 4.4c-.3 1.8-.1 3.7.2 5.2.1.4 0 .6 0 .8l-.5.1c-.3 0-1-.5-1.2-1.7-.3-1.7-.2-3.9.3-5.7.5-1.8 1.5-3.3 2.8-3.8z"/>
+      <path d="M272.3 187.4h8v11h-8zm.5 17.4h7.7v2.4h-7.7zm-.2 4.1h8v8.7h-8zm-.6 10.5h8.7v4.9H272zm1.1-16.6h7l1.4-2.4h-9.6l1.2 2.4zm9.4-8.6l.1-6h4.8a17.4 17.4 0 00-4.9 6z"/>
+      <path fill="none" d="M273.6 196.7c0 1.3 1.5.8 1.5.1v-5.6c0-1 2.4-.8 2.4-.1v6c0 1 1.7.9 1.6 0v-7c0-2.2-5.5-2.1-5.5-.1v6.7zm0 13.3h5.7v7h-5.7z"/>
+      <path d="M277.2 213h2v1h-2zm-3.5 0h2v1h-2zm2-3h1.5v3h-1.5zm0 4h1.5v3.1h-1.5zM244 139c.4 5.5-1.4 8.6-4.3 8.1-.8-3 1-5.1 4.3-8.1zm-6.5 12.3c-2.6-1.3-.7-11.5.3-15.8.7 5.5 2 13.3-.3 15.8z"/>
+      <path d="M238.4 151.8c4.4 1.5 8-3.2 9.1-8.7-3.6 5-9.5 5-9 8.7zm-3.3 5.1c-3.4-.9-1.4-11.7-.7-16 .7 4.5 3.1 14.5.7 16zm1.2-.3c.2-3.7 3.9-2.7 6.5-4.7-.5 2-2 5.2-6.5 4.7zm-4.2 5c-3.4-1-1.4-12.6-1.6-17.4 1 4.2 4.2 16.3 1.6 17.4zm1.6-.5c2.8.9 6.5-1 6.8-4.3-2.5 1.7-6.3.4-6.8 4.3z"/>
+      <path d="M229.5 166.7c-3.2.3-1.8-9.6-1.8-18.8 1.2 8.6 4.5 16.5 1.8 18.8z"/>
+      <path d="M230.7 166.3c2.2 1 6.1-.7 7.2-4.4-4 1.7-6.6 0-7.2 4.4zm25.6-22.2c-.6 4.9-2.6 7.7-5.5 7.2-.8-3 1.6-5 5.5-7.2zm-7.8 12.4c4.9.7 6.6-3 10-7.9-4.7 3.4-10.2 4-10 8z"/>
+      <path d="M247 156c-2.6-3.2 0-7.3 2-10.7-.4 5.1 1.3 8-2 10.7zm-1 5.3c-.4-3.2 5-3.9 7.4-5.6-.9 1.8-2 6.7-7.5 5.6z"/>
+      <path d="M244.8 161.3c-3.7-.4-2.2-6.7.5-10.1-1.1 4.8 2 8.1-.5 10.1z"/>
+      <path d="M242 166.6c-4.2-2-1.5-7.2 0-10.3-.6 4.1 2.8 7.2 0 10.2z"/>
+      <path d="M242.8 166c2.2 3 6.5-.8 7.4-5.2-3.7 3.1-6.5 2.6-7.4 5.3zm-9.6 20.3c-.4-4.3 2.8-12 .5-16.2-.3-.6.7-2.1 1.4-1.2 1 1.5 2 5.7 2.5 4.1.4-1.7.5-4.6 2-5.2 1-.3 2.3-.6 1.9 1-.4 1.4-1.2 3.4-.3 3.5.5 0 2-2 3.3-3 1-.8 2.6.6 1 1.8-4.8 4-9.5 5.9-12.3 15.2zm-8.7 64.5c-.6 0-1.3-.3-.6.6 5.7 7 7.3 9 15.6 8 8.3-1.1 10.3-3.4 16.2-6.7a14.6 14.6 0 0111.2-1c1.6.5 2.6.5 1.4-.7-1.2-1.1-2.5-2.7-4-3.8a17.5 17.5 0 00-12.7-2.7c-6 1-11.1 4.9-17.2 6.4a25 25 0 01-9.9 0zm47.8 12.5c1 .2 1.7 2.2 2.3.9.8-2.3.2-4-.8-3.9-1.2.3-3.1 3-1.5 3z"/>
+      <path stroke="none" d="M220.6 183c-1.2-1.4-.9-1.8 1-1.9 1.4 0 4.2 1 5.3.1 1-.7.5-3.7 1-5 .2-.9.7-2 2-.2 3.6 5.8 8 12.8 10 19.6 1 3.8 0 9.8-3.4 13.8 0-3.4-1.2-5.7-2.7-8.6-2-3.7-9.1-14-13.2-17.9z"/>
+      <path d="M235.5 213.4c4 0 4.7-5.3 4.7-6.8-2 .4-5.4 3.7-4.7 6.8zm34.5 51.9c2.8.6 2.7-6.2-.2-9.1 1.3 4.4-2 8.4.1 9zm-1.2-.1c.2 3.2-8-.4-10-3 4.8 2.1 9.8.4 10 3zm-3.5-4.6c.3 3.1-7 .3-9.3-2.1 4.9 1.6 9-.5 9.3 2zm1.3.4c2.9.7 2.4-6.4-.4-8.8 1.4 4.7-1.8 8.1.4 8.8zm-3-4.3c2.9.7 1.2-5.4-.9-7.8.4 4.4-1 7.5 1 7.8zm-1.5 0c.3 3.2-5.4.8-7.6-2.3 4.8 1.5 7.3-.3 7.6 2.3zm-1.5-2.5c1.8-1.3-.1-4.8-3.7-4.6.4 2.1 1.6 5.9 3.7 4.6zm14 14.7c.1 3.2-8 1.6-10.6-1.8 5.2 1 10.3-.8 10.5 1.8zm-32.4-5.8c.3 3.2-8.6-.4-10.8-3.4 4.7 1.6 10.5.8 10.8 3.4zm5.4 1.3c1.9-1.3-1.9-4.7-5-5.5.4 2.1 3 6.8 5 5.6zm.6 2.3c.2 2.9-9.5 1.3-12-1.4 8.3 1.5 11.7-1.1 12 1.4z"/>
+      <path d="M252.8 268.6c1 2.7-8.3 2-11.6.5 5.3 0 10.8-2.4 11.6-.5z"/>
+      <path d="M257.1 270.6c1 2.4-7.6 2.4-11.8 1 5.6 0 10.8-3.4 11.8-1zm6.3 1.3c1.6 2.9-7.6 3.1-10.5 1.7 5.2-.7 9.2-4 10.5-1.7zm-10.7-4.9c-2.9 1.8-2.7-3.6-5-7.3 3.6 3.3 7 5.6 5 7.3z"/>
+      <path d="M257.9 269c-2.4 2.1-4.4-5.3-6.6-9.5 3.6 4 8.8 7.7 6.6 9.4zm6.8 2c-2 2.4-8-7-10.2-12 3.3 3.9 11.8 10 10.2 12zm-5.8 7.2c-1 3.6-16.2-3.4-18-7.1 8.8 4.6 18.2 3.6 18 7zm-48.7-73.8c-.4-.5-1.4 0-1.2 1.1.3 1.5 2.5 9.2 6.3 11.8 2.7 2 17 5.1 23.4 6.5 3.6.7 6.5 2.5 8.9 5.3a94.4 94.4 0 00-3-9.8c-1.2-3-4.4-6.2-7.8-6.3-6.1-.3-14.1-.8-20-3.3a16 16 0 01-6.7-5.3z"/>
+      <path d="M245.5 234.9c2 1.4 4.1-3.7 1.7-8.6-.1 4.7-3.8 6.3-1.7 8.6z"/>
+      <path d="M247.4 239.6c2.7.8 3.5-4 1.8-7.8.3 4.1-4.3 6.6-1.8 7.8z"/>
+      <path d="M249.5 243.4c2.6 1.3 3.5-3.6 1.7-7.1.2 4.5-3.7 5.9-1.7 7z"/>
+      <path d="M248.4 243.7c-1 3-7-2.7-8-5.8 3.7 3.7 8.7 3.2 8 5.7z"/>
+      <path d="M245.7 239c-1.2 3-8.7-5-10.4-8.7 3.7 3.7 11.2 6.5 10.4 8.6z"/>
+      <path d="M244.2 234.3c-1.2 3.5-9.3-5.8-11.7-9.1 4 3.6 12.6 6.6 11.7 9.1zm-.3-3.4c3-.6-.1-3-3.7-6.9-.1 4.1.5 7 3.7 6.9z"/>
+      <path d="M239 228.5c1.3-1.3-1.1-1.9-4.1-5.3-.5 2.3 2.8 6.5 4.2 5.3zm14 15.2c1.6 1 2.6-2.3.7-5.2-.5 3.2-2.1 4-.7 5.2zm-34.2-20.3c-3.3 2-8.6-6-10-9.3 2.9 3.8 10.6 7.2 10 9.3z"/>
+      <path d="M221.7 228c-1.9 2-7.7-3.5-9.7-6.3 3 2.7 10.5 3 9.7 6.3z"/>
+      <path d="M224.8 232.2c-.6 2.8-9-3.5-11-6.5 3.6 3.5 11.6 3.2 11 6.5z"/>
+      <path d="M223.5 235.3c-1.3 2.5-8.2-3.8-9.9-7 4.3 3.6 11 4.5 10 7zM220 223c2.1-2.3 1.2-3.4-.4-7-.8 3.7-2.1 5.2.4 7zm2.9 4.3c4 .2 0-4.6-1-8.7.4 4.6-1 8.3 1 8.7z"/>
+      <path d="M225.4 231.1c2.7-.6 2-4.5-.2-9.2.5 5.1-2.3 8 .2 9.2zm-1 7.7c-1 3-8.8-4-10-6.8 4 3.4 10.7 4.5 10 6.8z"/>
+      <path d="M229.1 243.6c-1.1 3-9.3-3.2-11.8-6.6 4.9 4 12.4 3.6 11.8 6.6z"/>
+      <path d="M233.9 248.5c-1.3 4.3-9.9-2.6-12.4-6 5.4 4.2 13 3 12.4 6zm-8-11c2.3 1.1 3.2-5.4 1.9-10.1 0 5-4.7 8.8-2 10z"/>
+      <path d="M229.8 242.7c2.8.8 2-6.3-.5-11-.3 4.7-2.3 9 .5 11zm5 4.9c3 .1 1-6.1-1.6-9.6.4 4.5-1 9 1.6 9.6zm-5.5 2.6c-1 1.6-3.2-1.3-7-3.5 3.4 1 7.4 2 7 3.5zm-1.8-52.7c3-2.2.7-6.2 0-10-1 3.6-3.4 8.4 0 10zm0 5.3c-4.5-.5-3.8-6.1-4-9.7 1.4 4.9 5 5.7 4 9.8zm.6-.7c3.7-.2 3.5-4.4 3.7-8.6-1.9 3.9-4 4.5-3.7 8.6z"/>
+      <path d="M228 207.3c-3 .3-4.4-2.6-5-7 2.7 4.1 5.1 2.8 5 7zm1-.3c3.7.5 3-3.8 3-7-1.2 3-4.2 4-3 7z"/>
+      <path d="M223.2 205.2c.3 2.8 2.1 7.6 5 6.5 1.1-3.4-2.6-4.1-5-6.5z"/>
+      <path d="M229 212c-1.2-2.4 3-3.7 3.8-6.9.5 4.6.1 7.6-3.8 7zm-11.9-29.2c2.3-2.4.3-6.4-.4-10.2-1 3.6-2.5 8.4.4 10.2zm0 4.6c-4 .5-5-7.7-5.5-11.3 1.4 4.9 6 7 5.5 11.4zm.8 0c2.8-1.5 2.2-4.7 3-7-1.8 2.9-3.6 3.3-3 7z"/>
+      <path d="M217 192.8c-4.1.3-6.6-8.8-6.8-12.4 1.3 4.9 7.4 7.5 6.9 12.4zm.9-.2c4-.9 3.5-3.5 2.9-7.6-1.3 4.2-3.5 3.3-2.9 7.6z"/>
+      <path d="M217 198c-4.6.8-4.3-6.6-8-11.9 3.2 4 9 9 8 11.9zm1-.3c3.6.2 4-5.1 3.8-7.3-.9 2.2-5 4.2-3.7 7.4z"/>
+      <path d="M209.8 192.3c1.7 5.7 4.2 11.4 7.2 11 1.5-3.3-2.9-3.7-7.2-11z"/>
+      <path d="M218.1 202.4c-1.2-2.5 3-3.7 3.8-6.9.5 4.6.1 7.6-3.8 6.9zm-7.1-3.6c2.5 5.1 3.6 11 7 10.1 1.3-4-3.8-4.8-7-10.1z"/>
+      <path d="M218.7 208c-1.5-2.8 2.7-3.7 3.8-7.4.5 4.8 0 8.3-3.8 7.3zm7.2-34.5c2.4.6 5-2.1 4.1-6.2-2.8.6-4 3.2-4.1 6.2zm-7.9-2.1c.2 1.2 1.7 1.3 1.2-.4a5.3 5.3 0 010-3.4 7.5 7.5 0 000-4.6c-.4-1-1.8-.4-1.2.4.6.9.7 2.8.2 3.7-.6 1.3-.4 3-.2 4.3zm22.9 16c-1 1.3-2.9.4-1.4-1.5 1.2-1.5 3-2.8 3-4.4.2-2 1.3-5 2.4-6.1 1.1-1.1 2.4.4 1.2 1.2-1.3.8-2.2 4.4-2.1 5.8-.1 2-2 3.5-3.1 5zm-3-2.3c-1 1.4-2.4.5-1.6-1.7.7-1.5.8-3.5 1.6-4.6 1.2-1.7 3-3.1 4.1-4.2 1.2-1 2 0 1 1a27 27 0 00-3.3 4c-1.4 2.2-.8 4-1.8 5.5zm-15.7-7.2c-.1 2 1.5 2.4 1.4-.4 0-3-2.2-5.8-1-10.3.8-2.2.8-6.3.4-8.4-.4-2.2-2-.8-1.3.9.6 2-.1 5.6-.6 7.5-1.5 5.4 1.2 8 1 10.7zm4.3-11c-.2 1.9-1.8 2-1.3-.5.4-2 .4-3.6 0-5.3-.6-2.1-.4-5.7 0-7.2.5-1.6 2-.7 1.4.5a9.9 9.9 0 00-.3 5.9c.6 2 .5 4.8.2 6.7zM210.9 204c.8.9 2 .3 1-1-1-1-.7-1.2-1.3-2.4-.6-1.4-.5-2.1-1.2-3-.7-1-1.6 0-1 .7.8 1 .6 1.6 1 2.5 1 1.5.7 2.3 1.5 3.2zm20.4 24.6a8.6 8.6 0 014.4 6.7 16 16 0 002 7.1c-2-.5-3-3.7-3.3-6.8-.3-3.2-2-4.5-3-7zm5.1 5.9c1.7 3.1 4 4.3 4.2 6.6.2 2.7.4 2.8 1.1 5.4-2-.5-2.5-.7-3-4.7-.3-2.8-2.6-4.7-2.3-7.3z"/>
+      <path stroke="none" d="M289 263.3c1 1.8 2 4.5 4 4 0-1.3-2.1-2.3-4-4zm3 .6c3.7 1.6 7 1.2 7.5 3.6-3.6.4-5-1-7.6-3.6zm-16.1-12.7a14 14 0 015 7.7 29 29 0 003.6 7.8 13 13 0 01-5.3-7.4c-.7-3-1.6-5.3-3.3-8zm3.1 0c2.8 2.2 5.4 4.8 6.2 7.9.8 2.9 1.3 5.1 3.2 8-3-1.9-4.1-4.7-5-7.8-.7-3-2.5-5.2-4.4-8zm9.2 7.3a1.1 1.1 0 01.7-1.2 33.4 33.4 0 012.6-.8c1-.3 1.6.4 1.6.9v2c0 .7-.2.8-.7.9-.7.1-1.7.2-2.4.7-.6.4-1.2.1-1.5-.5l-.3-2zm10.6 0c0-.6-.2-1.1-.6-1.2a5.4 5.4 0 00-2.4-.4c-1 0-1.1.2-1.1.6v2.1c0 .8 0 .8.4 1 .7 0 1.8 0 2.5.6.5.3 1 0 1.1-.6l.1-2.1z"/>
+    </g>
+    <use width="100%" height="100%" x="-600" transform="scale(-1 1)" xlink:href="#a"/>
+    <g stroke="none">
+      <path d="M328.5 286.6c0 1.2.2 2.2 1 3.1a19 19 0 00-13.8 1.1c-1.8.8-4-1-1.9-2.7 3-2.3 9.7-1 14.7-1.5zm-57.5 0a7 7 0 01-.4 3c4.4-1.7 9.1-.2 13.6 1.6 3 1.3 3.3-1 2.8-1.7a6.5 6.5 0 00-5-2.9h-11zm3.8-21.7c-1.3-.5-2.7 0-4 1.4-4.3 4.2-9.4 8.3-13.5 11.6-1.5 1.3-3 3.7 3.4 6 .3.2 5 2 8 2 1.3 0 1.3 1.8 1 2.3-.5 1-.1 1.4-1.1 2.3-1.1 1 0 2.1 1 1.3 3.6-3.2 9.6-1.1 15.3.7 1.4.4 3.8.3 3.8-1.6 0-2 1.5-3.4 2.4-3.5 2.4.4 14 .5 17.5.1 2-.3 2.2 2.9 3.3 4 .8.9 3.7 1.1 5.8.2 4-1.8 10-1.8 12.5 0 1 .7 1.9 0 1.3-.7-.8-1-.7-1.6-1.1-2.4-1-2-.2-2.4.8-2.5 11-1.5 14.6-5.2 11.2-8.3-4.4-3.8-9.2-7.7-13.4-12.2-1.2-1.2-2-1.7-4.3-.7a66.5 66.5 0 01-25.3 5.9 76 76 0 01-24.6-5.8z"/>
+      <path fill="#bd6b00" d="M326.6 265.5l-1.6.4c-9 3.2-17.2 5.4-25.7 5.4-8.3 0-17-2.4-24.9-5.6a2.3 2.3 0 00-1.5 0c-.5.1-1 .4-1.3.7a115.5 115.5 0 01-11.8 10.3c-.7.5-.6 1.8.5 2.2 8.3 3 16.4 8.5 39.6 8.3 23.5-.2 31.8-5.6 39.2-8.1.5-.2 1-.5 1.3-1a1 1 0 00.1-.8 2 2 0 00-.6-.8c-4.3-3.5-8.8-6.3-11.8-10.4-.3-.5-.9-.6-1.5-.5zm0 .5c.5 0 1 0 1.1.3 3 4.3 7.7 7 11.9 10.5l.4.7a.5.5 0 010 .4c-.1.3-.6.6-1 .7-7.6 2.6-15.7 8-39 8.2-23.2.2-31.2-5.3-39.5-8.3-.8-.4-.7-1.2-.4-1.4 4.2-3.2 8.2-6.8 11.8-10.4a2.5 2.5 0 011.1-.6h1.2a68 68 0 0025 5.6c8.7 0 17-2.2 26-5.3a6.7 6.7 0 011.5-.4z"/>
+      <path d="M269.7 114.6c0-1.4 2-1.5 1.8.4-.3 2.3 4.5 8.3 4.9 12 .3 2.5-1.5 4.6-3.2 6a6.6 6.6 0 01-6.8.5c-.9-.8-1.7-3.3-1-4.3.2-.3 1.3 3.7 3.7 3.7 3.3 0 6-2.5 6-4.7.2-3.8-5.3-9.8-5.4-13.6zm9.5 9.4c.6-.4 1.4 1.3.8 1.7-.5.3-1.5-1.3-.8-1.8zm1.5-3.5c-.3.2-.8 0-.7-.2a12 12 0 013.6-3.3c.4-.2 1 .4.8.7a11 11 0 01-3.7 2.8zm12.6-10c.3-.6 2.1-1.3 2.6-1.7.4-.5.6.4.4.7-.3.7-1.9 1.7-2.6 1.8-.3 0-.6-.4-.4-.7zm4.3.3a8.3 8.3 0 012.5-3.4c.5-.3 1.3 0 1.1.4a9 9 0 01-2.9 3.3c-.3.3-.8 0-.7-.3zm-3.7 2.7c-.3.2-.1.7.1.8.6.2 1.5.2 2 0 .6-.4.3-2.9-.5-1.6-.6.8-1 .6-1.6.8zm-7.3 5.6c-1.3-1 .4-2.4 1.7-1.4 2.7 2-4 9.8-7.6 13.4-.7.7-1.3-1-.4-1.9a33.7 33.7 0 006.7-7.6c.4-.5.7-1.6-.4-2.5zm15.3-6.6c.1-1-1.6 0-1.6-1.3 0-.7 1.9-1.2 2.7-.4 1.3 1.4.3 3.7-2 3.9-1.8 0-5 2.7-4.5 3.2.5.7 5.4 1.1 8.3.7 1.8-.3 1.4 1.3-.4 1.5-1.8.2-3.2 0-4.8.6-2 .5-2.8 3-3.9 4-.2.2-.8-.8-.6-1.2.8-1.2 2-3 3.4-3.6.8-.3-2.4-.4-3.4-.7-.8-.2-.6-1.3-.3-1.9.4-.8 3.4-3.9 4.7-3.8 1.1 0 2.3-.3 2.4-1zm5 .2c.6-.5 1-1.3 1.5-1.8.3-.3.9 0 .8.8-.1.7-1 1.2-1.5 1.7-.5.3-1-.4-.7-.7zm6.5-2.3c.9 0 1 1.6.2 1.8-.6.2-1-1.7-.2-1.8zm-2.1 5c0 1.5.7 1.4 2 1.3 1.3 0 2.4 0 2.4-1.2 0-1.3-.7-2.5-1-1.6-.1.8-.3 2.2-.8 1.6-.4-.5-.2-.6-1 .2-.5.5-.5-.2-.8-.6-.2-.3-.8.2-.8.4zm-9.2 7.2c-.3 1.9 0 4.5.9 4.5 1.2 0 3.6-4 4.8-6.2.7-1.2 1.8-1.4 1.3-.1-.7 1.9-.6 6 0 7.2.4.6 3-.6 3.4-1.5.8-1.7.1-4.8.4-6.7.1-1.2 1.3-1.5 1.2-.3a75.6 75.6 0 00-.1 7.5c0 1 2.9 2.4 3.3-.6.2-1.8 1.2-3.7 0-5.7-.8-1.3 1.1-1.2 2.1.6.7 1.2-.6 3.2-.5 4.7 0 2.4-1.8 3.8-3.1 3.8-1.2 0-2-1.5-3-1.5s-2.2 1.7-3 1.6c-3.6-.2-1.7-5.3-2.8-5.4-1.2 0-2.5 5-4 4.9-1.4-.2-3-4.2-2.3-5.8.5-1.6 1.5-2 1.4-1zm16.9-8c-1.7-1 0-3.7.9-2.8 1.6 2 3.2 6.5 4.4 6.9.7.2.6-3.4 1.1-5 .4-1.3 1.8-.9 1.6.7-.1.5-2 6.4-1.8 6.6a47.1 47.1 0 013.3 7.8c.3 1.2-1.1.4-1.3.2-.9-1.4-2.4-6.5-2.4-6.2l-1.7 7.7c-.2 1-1.7.8-1.3-1 .3-1.4 2.3-8.3 2.2-8.6a17.2 17.2 0 00-5-6.3z"/>
+      <path d="M322 131.2c-.4 0-1.2 1 1.2 1.5 3.1.6 6.6-.5 7.6-3.6 1.3-3.7 2-7.2 2.7-8.5.8-1.5 1.8-1.4 1-3.6-.5-1.7-1.5-1.2-1.7-.3-.5 2.3-2.6 10-3.3 11.3-1.2 2.6-3.7 3.6-7.5 3.2z"/>
+      <path d="M328.4 119c-.4-.7-1.2 0-1 .7a1.2 1.2 0 001.2 1c.7 0 2.2.1 2.2-1 0-.8-.7-1.5-1.1-.6-.5.8-1 .7-1.3 0zm.7-3c-.2.2 0 1.1.3 1a7 7 0 003.3-.8c.2-.2.1-.7-.2-.7-1 0-2.6 0-3.4.5zm8.8 2.3c.8-1.2 2.8-1.3 2 .4a614.3 614.3 0 01-6.3 12.3c-.8 1.4-1.4.7-.8-.4.7-1.4 4.9-12 5.1-12.3z"/>
+      <path d="M330.2 133c-.2-.8-1.5-2-1.3.2.2 3.8 5.5 2.6 7 1.3s.3 4.3 2.2 4.9c1 .3 3-1.1 4-2.4 2.7-3.5 4.5-8.6 7-12 1-1.4-.5-2.4-1-1.3-2.4 3.8-5.2 11.6-8.3 13.6-2.5 1.6-1.7-2-1.8-3.2-.1-.8-1.1-2-2.4-.9a5.5 5.5 0 01-3.7 1.2c-.7 0-1.4 0-1.7-1.4z"/>
+      <path d="M339.6 126c0-.3-1.1-.4-1 .7 0 .8 1 1 1.1 1 1.5-1.2-.3-.6-.1-1.8zm-2.3 4.4c-.3 0-.6 1 .2 1.1l3.9-.2c.4 0 .6-.9-.4-.8-1.2 0-2.7-.3-3.7 0zm-62-16.6c.5 0 1.6 1.4 1.5 1.9 0 .2-1.2 0-1.5-.3-.3-.3-.2-1.6 0-1.6zm-5.3 10.4c-1 .6.2 1.7 1 1.2 2.8-1.9 7-3.8 8-7.5.3-1.2 1.4-3.1 2.5-3.5 1-.5 2.6 1.9 3.6 0 .6-1 2.7.7 3.2-.4.6-1.3.3-2 .3-3.4 0-.8-.7-1-1.2.3-.2.6 0 1.2-.1 1.6-.2.2-.6.4-1 .2-.2-.2 0-.7-.6-1-.2 0-.6-.1-.8.2-.7 1.3-1 2.5-2.1 1-.9-1-1.4-3.1-2-.3-.2 1-1.7 2.4-2.6 2.4-1.1 0-.8-3-3.2-2.5-1.3.3-1.2 2.7-1 3.5.3 1.3 4 .4 3.7 1.2-.6 2.7-4.4 5.4-7.7 7zm-22.7 13.2c-.1.5.5 1.7 1.1 1.8.6 0 1-1.3.8-1.8-.2-.3-1.8-.3-1.9 0zm3.3 4.9c-.4-.4-1.6.7-.6 1.5.5.5 2.5 1.1 3 .2.8-1.2-.7-5.5 0-6 .5-.5 2.8 2.8 4 3 2.7.4 2-4.6 5-4.2 1.9.2 2.1-2.2 1.8-3.8-.2-1.5-2.6-3.6-3.7-4.6-1.4-1.2-2.1 1-1.2 1.6 1.2 1 3.3 2.9 3.6 4.1.1.6-1.4 1.8-2 1.5-1.4-.8-2.6-4-3.8-4.7-.4-.2-1.4.3-1 1.3.6 1.1 3 2.7 3.1 3.9.1 1-1 3.2-1.8 3.2-.9 0-3-2.7-3.7-4-.4-.5-1.5-.5-1.7.4a22 22 0 00.5 5.5c.2 1.6-.9 1.7-1.5 1.1zm-4-8.6c-.4.4.8 1.2 1 1 .4-.4 2.1-2.3 1.8-3-.3-.6-2.6-2-3-1.3-.7 1.1 2.2 1.7 1.7 2a7 7 0 00-1.5 1.3zm4.1-8.4s.8 2.5 1.4 1.4c.4-.7-1.4-1.4-1.4-1.4zm1.2 4c-.2 0-1 .7-.5 1 .8.4 2.9.8 2.4-.7-.3-.9 3.2 0 2.3-2.4a3.7 3.7 0 00-1.7-1.7c-.4 0-1.5.5-.8.9.5.2 2 1.1 1.5 1.7-.7.6-1.1-.3-1.9-.1-.4 0-.1 1.2-.4 1.5 0 .2-.7-.4-.9-.3zm5.5-9.5a3.5 3.5 0 00-1.2 2c0 .2.3.6.5.5a3.2 3.2 0 001.2-1.9c0-.3-.2-.8-.5-.6zm2.8-.3c-.8-1 1-2.6 1.7-.5.5 1.3 5.5 7.9 6.5 10.1.8 1.5 0 2.1-.9 1-2.5-3.2-4.6-7.2-7.3-10.6zm5.2.1c.9-1 2.7-3 2.2-4-.4-1-1.5-1-1.7-.7-1 1.3.8 1 .5 1.4-.5 1-1 1.6-1.3 2.6-.1.3.1.9.3.7zm77.8 3.2c-.7-.5.6-3 1.5-2 2.3 2.7 3.4 11.6 4.1 18.3 0 0-1 .9-1 .7 0-3.5-1.5-14.4-4.6-17zm-53.1-8.6c-.8-1.8 1.1-2.4 1.4-1.2 1.3 5.8 4.5 10.2 7 14.1.7 1.2 0 2-1.7.8-1.2-.8-2.5-3.9-3-4-1.2-.2-3.8 5-9.1 3.5-1.4-.4-1.3-4.5-1.4-6.3 0-.9 1-1 1 0 0 1.7 0 5.2 2.1 5.4 1.8 0 5.6-2.4 6.4-4.4.8-2-1.9-5.9-2.7-8z"/>
+      <path d="M344.6 138.4c.4-1.2 6.1-10.8 6.9-12.9.4-1 2 1.8.4 3.3-1.4 1.2-5.5 8-6.3 10.4-.4 1-1.4.5-1-.8z"/>
+      <path d="M354.3 129.3c1-4 3.6.6 1.3 2.8-3.4 3.4-4.5 9.9-10 10.9-1.4.3-4-.7-4.8-1.3-.3-.2.2-1.6 1.1-.9 1.3 1 4.1 1.3 5.6.1a25.4 25.4 0 006.8-11.6zm-57 12.7c-.3.3-1 .3-1.1.7-.3 1.4 0 2.2-.3 3.6s-1.3 1.4-1.2.3c0-1.4 1.3-3.5.4-3.6-.6-.1-1-.9-.4-1.3 1.1-.7 1.7-.6 2.4-.4.3.1.4.5.2.7z"/>
+      <path d="M296.5 140c-1.4 1.4-2.8 1.9-4.1 3.5-.6.6-.5 1.5-.9 2.4-.3.9-1.4 1-1.7.9-.5-.4-.4-2-1-1.2-.6.9-.9 2-1.7 2-.7 0-2-1.5-1.3-1.5 2.3-.3 2.2-2 3-2.2 1-.1 1 1.5 1.7 1.2.4-.2.7-2.1 1.2-2.6 1.5-1.6 2.7-2.4 4.3-3.6.7-.6 1.3.5.5 1.2zm5.3 5c-1.2.2-1 1.7-.6 1.8.5.3 1.4.4 1.7-1.3.2-.7.3 3.5 1.8 1.9 1-1 3.1.2 4-1 .7-.9 1-1.5.4-2.7-.2-.3-1-.2-1 .7 0 .8-.5 1.7-1.3 1.6-.4-.1.2-1.9-.2-2.4a.5.5 0 00-.7 0c-.3.4.3 2.2-.6 2.4-1.2.2-.6-1.2-1-1.4-1.7-.8-1.8.2-2.5.3zm9-3c.9-.2.6-.2 2-1.3.5-.4.6.8.5 1.3 0 .7-1 .2-1.3.9-.4.9-.2 3-.4 3.8 0 .4-.8.4-.8 0-.2-1 .1-2 0-3.3 0-.4-.5-1.1 0-1.3zm-5-2.5c-.2.9-.2 1.6-.2 2.3 0 .5 1 .2 1 .1 0-.8.2-2 0-2.3-.2-.1-.7-.3-.8-.1z"/>
+      <path d="M299.5 130.2l-1.4 5.6-2-3.8v3.9l-4.4-5.2 1.5 5.6-4-3.4 2.2 3.8-7-4.5 4.4 5.2-5.6-2.8 4 3.4-9-3.4 8.7 4.3a29 29 0 0112.6-2.6c4.9 0 9.3 1 12.5 2.6l8.8-4.3-9 3.4 4-3.4-5.5 2.8 4.3-5.2-7 4.5 2.2-3.8-4 3.3 1.5-5.5-4.3 5.2V132l-2 3.8-1.5-5.6z"/>
+    </g>
+  </g>
+  <path fill="#fff" d="M311.3 295l-.3 2.6h-.4l-.1-1.8a9.3 9.3 0 00-.5-1.6 7.3 7.3 0 00-.5-1.3l-1-1.4.8-2.2a6.6 6.6 0 011.5 2.4 9.4 9.4 0 01.5 3.2m7-4.2c0 .7-.2 1.2-.5 1.5-.2.3-.6.6-1.3.7l.4 1.5a6.7 6.7 0 010 2 22.5 22.5 0 01-.1 1.3h-.4a8.2 8.2 0 00-.1-1.3 5.5 5.5 0 00-.2-1l-.4-1a10.5 10.5 0 00-.7-1.4l-1-1.7.6-2 1 1c.3.2.6.3 1 .3.8 0 1.2-.4 1.2-1.3h.4v1.4m6.4 4.8l-.5 2.1c-.4 0-.6-.3-.8-.7l-.4-1.3a12.4 12.4 0 01-.1-1.7 4 4 0 01-1 .2 2 2 0 01-1.3-.4 1.3 1.3 0 01-.5-1c0-.9.3-1.7.7-2.3.5-.7 1-1 1.5-1.1.5 0 .8.1 1 .4a2 2 0 01.3.9v2c0 .9.1 1.5.3 1.9 0 .3.3.6.8 1m-2-3.5c0-.6-.3-.8-.8-.8a1 1 0 00-.6.1c-.2.1-.2.2-.2.3 0 .3.3.5 1 .5l.6-.1m8.7 3l-.3 2.6c-.5-.4-1-1-1.4-2a25.4 25.4 0 01-1.3-4.1 52.8 52.8 0 01-1.8 5.5 2.9 2.9 0 01-.8.7v-2.5c.6-.7.9-1.1 1-1.5a7.6 7.6 0 00.8-1.7l.5-2.7h.4l.9 2.7c.2.6.5 1.2.9 1.6l1 1.4"/>
+  <path fill="#bf0000" d="M350.8 319.4c.4.4.6.8.7 1.2l.4 1.6-.8.1a7.8 7.8 0 00-1-1.5 18.8 18.8 0 00-1.1-1.2 46 46 0 00-1.7-1.5 34.4 34.4 0 00-2-1.7c-.4-.2-.6-.4-.6-.5a1.9 1.9 0 01-.3-.8 11.2 11.2 0 01-.2-1.6l2.7 2.2a44.3 44.3 0 012.5 2.2l1.4 1.5m-9.5-5.8l-.2 2H338l.3-2h3m8.4 8.9l-7.6 2.3-1.3-2 6.5-2-.7-.8a2.8 2.8 0 00-.9-.6 1.4 1.4 0 01-.4 1 2 2 0 01-1 .6 3.4 3.4 0 01-1.8 0 2 2 0 01-1.3-.7 4 4 0 01-.7-2.2c0-1 .3-1.6.9-1.8.7-.2 1.8 0 3 .7a8.1 8.1 0 013 2.4l2.3 3.1m-5.8-4a3.8 3.8 0 00-.8-.3 1.1 1.1 0 00-.6 0 .7.7 0 00-.5.3.5.5 0 000 .6l.5.2h.6l.4-.3.4-.5m-8-1.6l-.5 2-3.2-.3.5-2 3.1.3m7.5 7.7l-1.7.4a5.3 5.3 0 01-1.7 0 3.6 3.6 0 01-1.5-.4c-.3.5-.8 1-1.5 1.2a7.4 7.4 0 01-1.6.6l-1.2.3-1-2 1.1-.3a9.1 9.1 0 001.3-.4l.9-.5-1-.5h-.7a.4.4 0 00-.2 0 .6.6 0 00-.2.3h-.5c-.5-.8-.6-1.5-.3-2s.9-.8 2-1a6.8 6.8 0 012.6-.2c.8.1 1.3.4 1.5.9.2.2.2.5.2.7l-.4 1.2h.5a2 2 0 00.6 0l1.7-.3 1 2m-8 1.8l-1.6.3a3 3 0 01-2.2-.4 5.5 5.5 0 01-1.7-2.6l-.8-2.2a2 2 0 00-.8-1 4.6 4.6 0 00-.9-.5l.6-2.1c.6.3 1 .6 1.4 1l1 1.7.5 1.5 1.1 2.2c.3.3.7.4 1 .3l1.7-.2.7 2m-7-7.5l-1 1.9-3-.7 1-1.9 3 .7m1.8 8.4l-7.5.7-.4-2 6.2-.7a2.3 2.3 0 00-.6-.8 8.3 8.3 0 00-1-.6l.5-2c.7.4 1.2.9 1.6 1.3.3.5.6 1.2.8 2.1l.4 2m-6 1a17 17 0 01-2.2-.2 10.5 10.5 0 01-1.7-.5 5.6 5.6 0 01-1.3.4 9.9 9.9 0 01-1.7 0h-2a2.5 2.5 0 01-1.2-.3c-.3-.2-.5-.5-.8-1a4.1 4.1 0 01-1.5 1l-1.7.1h-1.7l.2-2.1h1.7c.8 0 1.5 0 2.1-.4a2 2 0 001.3-1.8l.7.1a30.2 30.2 0 00-.1 1.3c0 .3 0 .5.3.7.3.2.6.3 1 .3h1.5c1 0 1.6 0 2-.2.6-.2.9-.5 1-1.1l.1-.4s.3 0 .5-.2l.5-.2v.4a8.9 8.9 0 010 .3l-.3 1.1a12.4 12.4 0 002 .5c.1-.2 0-.4-.1-.7l-.3-.6a.5.5 0 01.1-.3l.3-.2 1-.9.5 1v1l-.2 2.9m-11.3-8.7l-2 1.3-1.3-.9-1.4 1-1.9-1 1.8-1.3 1.5.8 1.5-1 1.8 1m-3 8.2l-7.3-1.2.8-2 6.2 1c0-.4 0-.7-.2-1a5.2 5.2 0 00-.5-.8l1.6-1.7c.4.6.6 1 .7 1.6 0 .5-.2 1.2-.5 2.1l-.8 2m-6.1-1l-1.6-.3c-.9-.2-1.4-.6-1.5-1.2-.2-.6.1-1.5.8-2.8l1.2-2c.3-.5.4-.9.3-1.2a2.2 2.2 0 00-.3-.7l2.2-1.6c.3.5.3 1 .3 1.4 0 .5-.3 1.1-.7 1.8l-.8 1.4a5.8 5.8 0 00-.9 2.2c0 .4.2.6.5.7l1.6.4-1.1 2m-3.8-8l-2.5 1.1-1.8-1.7 2.6-1 1.7 1.7m-1 6.6a6.8 6.8 0 01-1.6 1.4 4.2 4.2 0 01-1.7.6l-2.4-.1a14.8 14.8 0 01-2.8-.7 7.7 7.7 0 01-3.4-2c-.6-.8-.6-1.5 0-2.2a7 7 0 012-1.6c.8-.5 2-1 3.8-1.6l.4.5-2.8 1.2c-.5.3-1 .6-1.3 1-.4.4-.3 1 .2 1.6a10.5 10.5 0 006.3 2.2c1.2 0 2-.3 2.3-.7.3-.3.4-.6.5-1l.2-1.6 2.5-1.5a8 8 0 01-.1 1.5 4.4 4.4 0 01-1 1.6l-1.2 1.4"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ag.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ag.svg
new file mode 100644
index 0000000..bdeee48
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ag.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ag" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="ag-a">
+      <path fill-opacity=".7" d="M-79.7 0H603v512H-79.7z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#ag-a)" transform="translate(74.7) scale(.9375)">
+    <path fill="#fff" d="M-120 0h763.3v511.5H-120z"/>
+    <path d="M-118.3.6h760.9v216.1h-761z"/>
+    <path fill="#0061ff" d="M21.3 203.2h505V317h-505z"/>
+    <path fill="#e20000" d="M642.8 1.8V512H262L642.8 1.7zm-761.5 0V512H262L-118.7 1.7z"/>
+    <path fill="#ffd600" d="M440.4 203.3L364 184l64.9-49-79.7 11.4 41-69.5-70.7 41L332.3 37l-47.9 63.8-19.3-74-21.7 76.3-47.8-65 13.7 83.2L138.5 78l41 69.5-77.4-12.5 63.8 47.8L86 203.3h354.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ai.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ai.svg
new file mode 100644
index 0000000..29e6586
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ai.svg
@@ -0,0 +1,763 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ai" viewBox="0 0 640 480">
+  <defs id="defs1837">
+    <clipPath id="ai-a">
+      <path id="path1834" fill-opacity=".7" d="M0 0h640v480H0z"/>
+    </clipPath>
+  </defs>
+  <path id="rect4120" fill="#012169" fill-opacity="1" stroke-width="4.4" d="M0 0h640v480H0z"/>
+  <path id="path1855" fill="#49497d" d="M484.3 180.4l2 2z"/>
+  <path id="path1857" fill="#0e0e6e" d="M486.3 180.4l2 2z"/>
+  <path id="path1859" fill="#262678" d="M480.2 182.4l2 2z"/>
+  <path id="path1861" fill="#808067" d="M482.3 182.4l2 2z"/>
+  <path id="path1863" fill="#58587b" d="M488.3 182.4l2 2z"/>
+  <path id="path1865" fill="#0e0e6e" d="M413.2 184.5l2 2z"/>
+  <path id="path1867" fill="#1b1b74" d="M476.2 184.5l2 2z"/>
+  <path id="path1869" fill="#6e6c70" d="M478.2 184.5l2 2z"/>
+  <path id="path1871" fill="#cc3" d="M416.8 188c0 52.6-6 111.7 33 152.8 8 8.4 23.4 27.7 36.5 27 13.7-.8 31.4-21.1 39.2-31 34-44.8 28.7-98.2 29.8-150.2-15.3 6.9-23 9.2-36.4 9-10 1-25.3-5.5-34.5-10-6 4-14.7 8.9-30.4 9.4-18 .8-23.8-2.3-37.2-7z"/>
+  <path id="path1873" fill="#99994e" d="M490.4 184.5l2 2z"/>
+  <path id="path1875" fill="#49497d" d="M492.4 184.5l2 2z"/>
+  <path id="path1877" fill="#0e0e6e" d="M555.3 184.5l2 2z"/>
+  <path id="path1879" fill="#a4a43d" d="M415.3 186.5l2 2z"/>
+  <path id="path1881" fill="#6e6c70" d="M417.3 186.5l2 2z"/>
+  <path id="path1883" fill="#3a3a7c" d="M419.3 186.5l2 2z"/>
+  <path id="path1885" fill="#1b1b74" d="M472 186.5l2 2z"/>
+  <path id="path1887" fill="#6e6c70" d="M474 186.5l2 2z"/>
+  <path id="path1889" fill="#a4a43d" d="M476.2 186.5l2 2z"/>
+  <path id="path1891" fill="#d0d045" d="M484.3 186.5l2 2z"/>
+  <path id="path1893" fill="#a4a43d" d="M492.4 186.5l2 2z"/>
+  <path id="path1895" fill="#8d8d5b" d="M494.4 186.5l2 2z"/>
+  <path id="path1897" fill="#3a3a7c" d="M496.5 186.5l2 2z"/>
+  <path id="path1899" fill="#262678" d="M549.2 186.5l2 2z"/>
+  <path id="path1901" fill="#53527c" d="M551.3 186.5l2 2z"/>
+  <path id="path1903" fill="#8d8d5b" d="M553.3 186.5l2 2z"/>
+  <path id="path1905" fill="#737370" d="M423.4 188.6l2 2z"/>
+  <path id="path1907" fill="#53527c" d="M425.4 188.6l2 2z"/>
+  <path id="path1909" fill="#1b1b74" d="M427.4 188.6l2 2z"/>
+  <path id="path1911" fill="#262678" d="M468 188.6l2 2z"/>
+  <path id="path1913" fill="#6e6c70" d="M470 188.6l2 2z"/>
+  <path id="path1915" fill="#a4a43d" d="M472 188.6l2 2z"/>
+  <path id="path1917" fill="#e5e59d" d="M482.3 188.6l2 2z"/>
+  <path id="path1919" fill="#fff" d="M420.9 193.8c-1 27.6-.2 58.6 4 88 4.9 15.5 4.2 24 11.3 33.2l99-.8c6-9.7 10.5-24.4 11-30.3 5.6-29.7 5.7-62.6 5.9-92a62 62 0 01-35.7 7.4 69 69 0 01-30.5-9.2c-9.5 5.6-12.8 8.2-28.4 8.9-12.2.6-22 1.6-36.6-5.2z"/>
+  <path id="path1921" fill="#f2f1d7" d="M486.3 188.6l2 2z"/>
+  <path id="path1923" fill="#d9d868" d="M488.3 188.6l2 2z"/>
+  <path id="path1925" fill="#a4a43d" d="M496.5 188.6l2 2z"/>
+  <path id="path1927" fill="#99994e" d="M498.5 188.6l2 2z"/>
+  <path id="path1929" fill="#49497d" d="M500.5 188.6l2 2z"/>
+  <path id="path1931" fill="#0e0e6e" d="M502.5 188.6l2 2z"/>
+  <path id="path1933" fill="#3a3a7c" d="M543.2 188.6l2 2z"/>
+  <path id="path1935" fill="#667" d="M545.2 188.6l2 2z"/>
+  <path id="path1937" fill="#99994e" d="M547.2 188.6l2 2z"/>
+  <path id="path1939" fill="#a4a43d" d="M549.2 188.6l2 2-2-2m-121.8 2l2 2z"/>
+  <path id="path1941" fill="#99994e" d="M429.5 190.6l2 2z"/>
+  <path id="path1943" fill="#6e6c70" d="M431.5 190.6l2 2z"/>
+  <path id="path1945" fill="#49497d" d="M433.5 190.6l2 2z"/>
+  <path id="path1947" fill="#1b1b74" d="M435.5 190.6l2 2-2-2m26.4 0l2 2z"/>
+  <path id="path1949" fill="#53527c" d="M463.9 190.6l2 2-2-2z"/>
+  <path id="path1951" fill="#8d8d5b" d="M466 190.6l2 2z"/>
+  <path id="path1953" fill="#a4a43d" d="M468 190.6l2 2z"/>
+  <path id="path1955" fill="#e5e59d" d="M478.2 190.6l2 2z"/>
+  <path id="path1957" fill="#fbfaf2" d="M480.2 190.6l2 2z"/>
+  <path id="path1959" fill="#f2f1d2" d="M490.4 190.6l2 2z"/>
+  <path id="path1961" fill="#d9d868" d="M492.4 190.6l2 2z"/>
+  <path id="path1963" fill="#a4a43d" d="M502.5 190.6l2 2z"/>
+  <path id="path1965" fill="#6e6c70" d="M504.6 190.6l2 2z"/>
+  <path id="path1967" fill="#3a3a7c" d="M506.6 190.6l2 2z"/>
+  <path id="path1969" fill="#0e0e6e" d="M533 190.6l2 2z"/>
+  <path id="path1971" fill="#32327b" d="M535 190.6l2 2z"/>
+  <path id="path1973" fill="#58587b" d="M537 190.6l2 2z"/>
+  <path id="path1975" fill="#808067" d="M539 190.6l2 2z"/>
+  <path id="path1977" fill="#a4a43d" d="M542.5 191.2l1.3.7z"/>
+  <path id="path1979" fill="#dddc7a" d="M419.3 192.6l2 2z"/>
+  <path id="path1981" fill="#d0d045" d="M421.3 192.6l2 2z"/>
+  <path id="path1983" fill="#a4a43d" d="M436.9 193.2l1.4.7z"/>
+  <path id="path1985" fill="#808067" d="M439.6 192.6l2 2z"/>
+  <path id="path1987" fill="#667" d="M441.6 192.6l2 2z"/>
+  <path id="path1989" fill="#58587b" d="M443.7 192.6l2 2z"/>
+  <path id="path1991" fill="#49497d" d="M445.7 192.6l2 2z"/>
+  <path id="path1993" fill="#737370" d="M457.9 192.6l2 2z"/>
+  <path id="path1995" fill="#99994e" d="M459.9 192.6l2 2z"/>
+  <path id="path1997" fill="#a4a43d" d="M461.9 192.6l2 2z"/>
+  <path id="path1999" fill="#e5e59d" d="M474 192.6l2 2z"/>
+  <path id="path2001" fill="#fbfaf2" d="M476.2 192.6l2 2z"/>
+  <path id="path2003" fill="#f2f1d2" d="M494.4 192.6l2 2z"/>
+  <path id="path2005" fill="#d9d868" d="M496.5 192.6l2 2z"/>
+  <path id="path2007" fill="#a4a43d" d="M507.9 193.2l1.4.7-1.3-.7z"/>
+  <path id="path2009" fill="#808067" d="M510.7 192.6l2 2z"/>
+  <path id="path2011" fill="#667" d="M512.7 192.6l2 2z"/>
+  <path id="path2013" fill="#58587b" d="M514.7 192.6l2 2z"/>
+  <path id="path2015" fill="#3a3a7c" d="M516.8 192.6l2 2z"/>
+  <path id="path2017" fill="#58587b" d="M526.2 193.2l1.4.7z"/>
+  <path id="path2019" fill="#737370" d="M528.9 192.6l2 2z"/>
+  <path id="path2021" fill="#99994e" d="M530.9 192.6l2 2-2-2z"/>
+  <path id="path2023" fill="#a4a43d" d="M533 192.6l2 2z"/>
+  <path id="path2025" fill="#dddc7a" d="M549.2 192.6l2 2z"/>
+  <path id="path2027" fill="#d0d045" d="M551.3 192.6l2 2z"/>
+  <path id="path2029" fill="#f2f1d7" d="M423.4 194.6l2 2z"/>
+  <path id="path2031" fill="#e0dea1" d="M425.4 194.6l2 2z"/>
+  <path id="path2033" fill="#dddc7a" d="M427.4 194.6l2 2z"/>
+  <path id="path2035" fill="#d9d868" d="M468 194.6l2 2z"/>
+  <path id="path2037" fill="#e5e3af" d="M470 194.6l2 2z"/>
+  <path id="path2039" fill="#f6f6e4" d="M498.5 194.6l2 2z"/>
+  <path id="path2041" fill="#e1e18c" d="M500.5 194.6l2 2z"/>
+  <path id="path2043" fill="#d4d456" d="M541 194.6l2 2z"/>
+  <path id="path2045" fill="#e1e18c" d="M543.2 194.6l2 2z"/>
+  <path id="path2047" fill="#eeedc1" d="M545.2 194.6l2 2z"/>
+  <path id="path2049" fill="#f2f1d2" d="M431.5 196.6l2 2z"/>
+  <path id="path2051" fill="#e0dea1" d="M433.5 196.6l2 2z"/>
+  <path id="path2053" fill="#dddc7a" d="M435.5 196.6l2 2z"/>
+  <path id="path2055" fill="#d0d045" d="M437.6 196.6l2 2z"/>
+  <path id="path2057" fill="#dddc7a" d="M461.9 196.6l2 2z"/>
+  <path id="path2059" fill="#e5e3af" d="M463.9 196.6l2 2-2-2z"/>
+  <path id="path2061" fill="#f6f6e4" d="M466 196.6l2 2z"/>
+  <path id="path2063" fill="#eeedc1" d="M504.6 196.6l2 2z"/>
+  <path id="path2065" fill="#e1e18c" d="M506.6 196.6l2 2z"/>
+  <path id="path2067" fill="#d4d456" d="M508.6 196.6l2 2z"/>
+  <path id="path2069" fill="#d9d868" d="M533 196.6l2 2z"/>
+  <path id="path2071" fill="#e1e18c" d="M535 196.6l2 2z"/>
+  <path id="path2073" fill="#eeedc1" d="M537 196.6l2 2z"/>
+  <path id="path2075" fill="#f6f6e4" d="M539 196.6l2 2z"/>
+  <path id="path2077" fill="#f2f1d7" d="M441.6 198.6l2 2-2-2z"/>
+  <path id="path2079" fill="#f2f1d2" d="M443.7 198.6l2 2-2-2z"/>
+  <path id="path2081" fill="#eeedc1" d="M445.7 198.6l2 2-2-2z"/>
+  <path id="path2083" fill="#f2f1d2" d="M455.2 199.3l1.3.7z"/>
+  <path id="path2085" fill="#fbfaf2" d="M457.9 198.6l2 2-2-2z"/>
+  <path id="path2087" fill="#fef8f1" d="M468 198.6l4 4v-4h-4z"/>
+  <path id="path2089" fill="#f2f1d7" d="M512.7 198.6l2 2-2-2z"/>
+  <path id="path2091" fill="#f2f1d2" d="M514.7 198.6l2 2-2-2z"/>
+  <path id="path2093" fill="#e5e3af" d="M516.8 198.6l2 2-2-2z"/>
+  <path id="path2095" fill="#e5e59d" d="M520.2 199.3l1.3.7-1.4-.7z"/>
+  <path id="path2097" fill="#e0dea1" d="M522.9 198.6l2 2-2-2z"/>
+  <path id="path2099" fill="#f2f1d2" d="M526.2 199.3l1.4.7z"/>
+  <path id="path2101" fill="#fbfaf2" d="M528.9 198.6l2 2-2-2z"/>
+  <path id="path2103" fill="#fef8f1" d="M463.9 200.7l2 2-2-2z"/>
+  <path id="path2105" fill="#fbbe66" d="M466 200.7l2 2z"/>
+  <path id="path2107" fill="#fbc477" d="M463.9 202.7l2 2-2-2z"/>
+  <path id="path2109" fill="#fcb144" d="M468 202.7l2 2z"/>
+  <path id="path2111" fill="#fe9f11" d="M463.9 204.8l2 2-2-2z"/>
+  <path id="path2113" fill="#fea522" d="M468 204.8l2 2z"/>
+  <path id="path2115" fill="#fae3c9" d="M461.9 206.8l2 2-2-2m8.2 0l2 2z"/>
+  <path id="path2117" fill="#fbead6" d="M480.2 206.8l2 2z"/>
+  <path id="path2119" fill="#f9d6aa" d="M482.3 206.8l2 2z"/>
+  <path id="path2121" fill="#fae3c9" d="M490.4 206.8l2 2z"/>
+  <path id="path2123" fill="#fef8f1" d="M492.4 206.8l2 2z"/>
+  <path id="path2125" fill="#f9d099" d="M461.9 208.8l2 2z"/>
+  <path id="path2127" fill="#fdab33" d="M470 208.8l2 2z"/>
+  <path id="path2129" fill="#fcf1e4" d="M474 208.8l2 2z"/>
+  <path id="path2131" fill="#fbc477" d="M476.2 208.8l2 2z"/>
+  <path id="path2133" fill="#fea522" d="M478.2 208.8l2 2z"/>
+  <path id="path2135" fill="#fcb755" d="M494.4 208.8l2 2z"/>
+  <path id="path2137" fill="#f9d6aa" d="M496.5 208.8l2 2z"/>
+  <path id="path2139" fill="#faca88" d="M461.9 210.9l2 2z"/>
+  <path id="path2141" fill="#fea522" d="M472 210.9l2 2-2-2m26.5 0l2 2z"/>
+  <path id="path2143" fill="#f8dcbb" d="M500.5 210.9l2 2z"/>
+  <path id="path2145" fill="#f6f6e4" d="M419.3 212.9l2 2z"/>
+  <path id="path2147" fill="#fbc477" d="M461.9 212.9l2 2z"/>
+  <path id="path2149" fill="#fbbe66" d="M502.5 212.9l2 2z"/>
+  <path id="path2151" fill="#f8dcbb" d="M504.6 212.9l2 2z"/>
+  <path id="path2153" fill="#faca88" d="M461.9 214.9l2 2z"/>
+  <path id="path2155" fill="#fcb755" d="M508.6 214.9l2 2z"/>
+  <path id="path2157" fill="#f8dcbb" d="M510.7 214.9l2 2z"/>
+  <path id="path2159" fill="#fef8f1" d="M459.9 217l2 2z"/>
+  <path id="path2161" fill="#fe9f11" d="M461.9 217l2 2z"/>
+  <path id="path2163" fill="#fdab33" d="M518.8 217l2 2z"/>
+  <path id="path2165" fill="#fcb144" d="M520.9 217l2 2z"/>
+  <path id="path2167" fill="#fbc477" d="M522.9 217l2 2z"/>
+  <path id="path2169" fill="#f9d6aa" d="M524.9 217l4 4z"/>
+  <path id="path2171" fill="#fef8f1" d="M526.9 217l2 2z"/>
+  <path id="path2173" fill="#fcb144" d="M459.9 219l2 2z"/>
+  <path id="path2175" fill="#fdab33" d="M488.3 219l2 2z"/>
+  <path id="path2177" fill="#fbc477" d="M490.4 219l2 2zm8 0l2 2-2-2z"/>
+  <path id="path2179" fill="#fea522" d="M500.5 219l2 2z"/>
+  <path id="path2181" fill="#fae3c9" d="M457.9 221l2 2z"/>
+  <path id="path2183" fill="#fcb144" d="M484.3 221l2 2z"/>
+  <path id="path2185" fill="#fae3c9" d="M486.3 221l2 2z"/>
+  <path id="path2187" fill="#f8dcbb" d="M502.5 221l2 2z"/>
+  <path id="path2189" fill="#fdab33" d="M504.6 221l2 2z"/>
+  <path id="path2191" fill="#fe9f11" d="M516.8 221l2 2z"/>
+  <path id="path2193" fill="#fcb755" d="M518.8 221l2 2z"/>
+  <path id="path2195" fill="#f9d099" d="M520.9 221l2 2z"/>
+  <path id="path2197" fill="#fbead6" d="M522.9 221l2 2z"/>
+  <path id="path2199" fill="#fcb144" d="M457.9 223l2 2z"/>
+  <path id="path2201" fill="#fbbe66" d="M482.3 223l2 2z"/>
+  <path id="path2203" fill="#f9d099" d="M506.6 223l2 2z"/>
+  <path id="path2205" fill="#fbead6" d="M514.7 223l2 2z"/>
+  <path id="path2207" fill="#fcf1e4" d="M455.9 225l2 2z"/>
+  <path id="path2209" fill="#fbbe66" d="M480.2 225l2 2z"/>
+  <path id="path2211" fill="#f9d099" d="M508.6 225l2 2z"/>
+  <path id="path2213" fill="#fae3c9" d="M514.7 225l2 2z"/>
+  <path id="path2215" fill="#fbc477" d="M455.9 227l2 2z"/>
+  <path id="path2217" fill="#fcb144" d="M478.2 227l2 2-2-2m32.5 0l2 2z"/>
+  <path id="path2219" fill="#fbbe66" d="M514.7 227l2 2z"/>
+  <path id="path2221" fill="#f6f6e4" d="M419.3 229l2 2z"/>
+  <path id="path2223" fill="#fea522" d="M455.9 229l2 2z"/>
+  <path id="path2225" fill="#fbead6" d="M478.2 229l2 2z"/>
+  <path id="path2227" fill="#fcf1e4" d="M510.7 229l2 2z"/>
+  <path id="path2229" fill="#fef8f1" d="M516.8 229l2 2z"/>
+  <path id="path2231" fill="#fcf1e4" d="M453.9 231.2l2 2z"/>
+  <path id="path2233" fill="#fbbe66" d="M476.2 231.2l2 2z"/>
+  <path id="path2235" fill="#faca88" d="M512.7 231.2l2 2z"/>
+  <path id="path2237" fill="#f9d099" d="M516.8 231.2l2 2z"/>
+  <path id="path2239" fill="#f9d6aa" d="M453.9 233.2l2 2z"/>
+  <path id="path2241" fill="#fcf1e4" d="M476.2 233.2l2 2z"/>
+  <path id="path2243" fill="#fae3c9" d="M486.3 233.2l2 2z"/>
+  <path id="path2245" fill="#fea522" d="M488.3 233.2l2 2z"/>
+  <path id="path2247" fill="#fcb144" d="M490.4 233.2l2 2z"/>
+  <path id="path2249" fill="#f9d6aa" d="M492.4 233.2l2 2z"/>
+  <path id="path2251" fill="#fef8f1" d="M512.7 233.2l2 2z"/>
+  <path id="path2253" fill="#fea522" d="M514.7 233.2l2 2z"/>
+  <path id="path2255" fill="#fdab33" d="M516.8 233.2l2 2z"/>
+  <path id="path2257" fill="#faca88" d="M453.9 235.2l-2.1 6 2-6z"/>
+  <path id="path2259" fill="#fea522" d="M474 235.2l2 2z"/>
+  <path id="path2261" fill="#fef8f1" d="M476.2 235.2l2 2z"/>
+  <path id="path2263" fill="#f9d099" d="M486.3 235.2l2 2z"/>
+  <path id="path2265" fill="#fdab33" d="M494.4 235.2l2 2z"/>
+  <path id="path2267" fill="#fae3c9" d="M496.5 235.2l2 2z"/>
+  <path id="path2269" fill="#f8dcbb" d="M514.7 235.2l2 2z"/>
+  <path id="path2271" fill="#f90" d="M516.8 235.2l2 2z"/>
+  <path id="path2273" fill="#fbead6" d="M519.5 236.6l.6 1.3z"/>
+  <path id="path2275" fill="#fea522" d="M478.2 237.2l2 2z"/>
+  <path id="path2277" fill="#fbbe66" d="M480.2 237.2l2 2z"/>
+  <path id="path2279" fill="#faca88" d="M482.3 237.2l2 2z"/>
+  <path id="path2281" fill="#fcb144" d="M484.3 237.2l2 2z"/>
+  <path id="path2283" fill="#fae3c9" d="M486.3 237.2l2 2z"/>
+  <path id="path2285" fill="#fe9f11" d="M488.3 237.2l2 2z"/>
+  <path id="path2287" fill="#fdab33" d="M498.5 237.2l2 2z"/>
+  <path id="path2289" fill="#fbc477" d="M500.5 237.2l2 2z"/>
+  <path id="path2291" fill="#faca88" d="M502.5 237.2l2 2z"/>
+  <path id="path2293" fill="#f9d6aa" d="M504.6 237.2l2 2z"/>
+  <path id="path2295" fill="#fae3c9" d="M507.9 237.9l1.4.7-1.3-.7z"/>
+  <path id="path2297" fill="#fef8f1" d="M510.7 237.2l2 2z"/>
+  <path id="path2299" fill="#fbc477" d="M516.8 237.2l2 2z"/>
+  <path id="path2301" fill="#fef8f1" d="M429.5 239.3l2 2z"/>
+  <path id="path2303" fill="#fcf1e4" d="M431.5 239.3l2 2z"/>
+  <path id="path2305" fill="#fcb755" d="M484.3 239.3l2 2z"/>
+  <path id="path2307" fill="#fbead6" d="M488.3 239.3l2 2z"/>
+  <path id="path2309" fill="#fea522" d="M490.4 239.3l2 2z"/>
+  <path id="path2311" fill="#fe9f11" d="M506.6 239.3l2 2z"/>
+  <path id="path2313" fill="#fcb144" d="M508.6 239.3l-2 4z"/>
+  <path id="path2315" fill="#fe9f11" d="M512.7 239.3l2 2z"/>
+  <path id="path2317" fill="#fbbe66" d="M514.7 239.3l2 2z"/>
+  <path id="path2319" fill="#fcf1e4" d="M516.8 239.3l2 2z"/>
+  <path id="path2321" fill="#fae3c9" d="M429.5 241.3l2 2z"/>
+  <path id="path2323" fill="#fe9f11" d="M431.5 241.3l4 4z"/>
+  <path id="path2325" fill="#fbead6" d="M433.5 241.3l2 2zm18.3 0l2 2z"/>
+  <path id="path2327" fill="#fae3c9" d="M453.9 241.3l2 2z"/>
+  <path id="path2329" fill="#fe9f11" d="M472 241.3l2 2z"/>
+  <path id="path2331" fill="#fbc477" d="M474 241.3l2 2z"/>
+  <path id="path2333" fill="#fea522" d="M476.2 241.3l2 2z"/>
+  <path id="path2335" fill="#fbc477" d="M482.3 241.3l2 2z"/>
+  <path id="path2337" fill="#fef8f1" d="M484.3 241.3l2 2z"/>
+  <path id="path2339" fill="#fbc477" d="M492.4 241.3l2 2z"/>
+  <path id="path2341" fill="#fff" d="M508.6 241.3l2 2z"/>
+  <path id="path2343" fill="#fdab33" d="M510.7 241.3l2 2z"/>
+  <path id="path2345" fill="#fbc477" d="M518.8 241.3l2 2z"/>
+  <path id="path2347" fill="#fef8f1" d="M429.5 243.3l2 2z"/>
+  <path id="path2349" fill="#fbead6" d="M435.5 243.3l2 2z"/>
+  <path id="path2351" fill="#f9d6aa" d="M445.7 243.3l2 2z"/>
+  <path id="path2353" fill="#fe9f11" d="M455.9 243.3l2 2z"/>
+  <path id="path2355" fill="#f9d6aa" d="M459.2 244l1.4.7z"/>
+  <path id="path2357" fill="#f8dcbb" d="M472 243.3l2 2z"/>
+  <path id="path2359" fill="#fcf1e4" d="M478.2 243.3l2 2z"/>
+  <path id="path2361" fill="#f9d6aa" d="M494.4 243.3l2 2z"/>
+  <path id="path2363" fill="#fdab33" d="M508.6 243.3l2 2z"/>
+  <path id="path2365" fill="#fcb755" d="M520.9 243.3l2 2z"/>
+  <path id="path2367" fill="#fef8f1" d="M522.9 243.3l2 2z"/>
+  <path id="path2369" fill="#53527c" d="M413.2 245.4l2 2z"/>
+  <path id="path2371" fill="#fcb755" d="M431.5 245.4l2 2z"/>
+  <path id="path2373" fill="#fea522" d="M435.5 245.4l2 2z"/>
+  <path id="path2375" fill="#fbead6" d="M443.7 245.4l2 2z"/>
+  <path id="path2377" fill="#fe9f11" d="M447.7 245.4l2 2z"/>
+  <path id="path2379" fill="#fcf1e4" d="M449.8 245.4l2 2z"/>
+  <path id="path2381" fill="#fbbe66" d="M455.9 245.4l2 2z"/>
+  <path id="path2383" fill="#fbc477" d="M457.9 245.4l2 2z"/>
+  <path id="path2385" fill="#fbbe66" d="M459.9 245.4l2 2z"/>
+  <path id="path2387" fill="#fea522" d="M470 245.4l2 2z"/>
+  <path id="path2389" fill="#f9d6aa" d="M496.5 245.4l2 2z"/>
+  <path id="path2391" fill="#fcb144" d="M522.9 245.4l2 2z"/>
+  <path id="path2393" fill="#8d8d5b" d="M555.3 245.4l2 2z"/>
+  <path id="path2395" fill="#e5e3af" d="M419.3 247.4l2 2z"/>
+  <path id="path2397" fill="#f8dcbb" d="M431.5 247.4l2 2z"/>
+  <path id="path2399" fill="#fdab33" d="M437.6 247.4l2 2z"/>
+  <path id="path2401" fill="#fe9f11" d="M443.7 247.4l2 2z"/>
+  <path id="path2403" fill="#faca88" d="M447.7 247.4l2 2z"/>
+  <path id="path2405" fill="#fcf1e4" d="M455.9 247.4l2 2z"/>
+  <path id="path2407" fill="#f9d099" d="M470 247.4l2 2-2-2m28.5 0l2 2z"/>
+  <path id="path2409" fill="#fbbe66" d="M524.9 247.4l2 2z"/>
+  <path id="path2411" fill="#fea522" d="M433.5 249.4l2 2z"/>
+  <path id="path2413" fill="#fdab33" d="M439.6 249.4l2 2z"/>
+  <path id="path2415" fill="#fea522" d="M441.6 249.4l2 2z"/>
+  <path id="path2417" fill="#fe9f11" d="M445.7 249.4l2 2z"/>
+  <path id="path2419" fill="#fef8f1" d="M447.7 249.4l2 2z"/>
+  <path id="path2421" fill="#fbbe66" d="M457.9 249.4l2 2z"/>
+  <path id="path2423" fill="#fef8f1" d="M470 249.4l2 2z"/>
+  <path id="path2425" fill="#fbbe66" d="M500.5 249.4l2 2z"/>
+  <path id="path2427" fill="#f9d099" d="M526.9 249.4l2 2z"/>
+  <path id="path2429" fill="#f9d6aa" d="M433.5 251.5l2 2z"/>
+  <path id="path2431" fill="#f9d099" d="M445.7 251.5l2 2z"/>
+  <path id="path2433" fill="#fcf1e4" d="M457.9 251.5l2 2z"/>
+  <path id="path2435" fill="#fdab33" d="M468 251.5l2 2-2-2m34.5 0l2 2z"/>
+  <path id="path2437" fill="#fbead6" d="M528.9 251.5l2 2z"/>
+  <path id="path2439" fill="#fea522" d="M435.5 253.5l2 2z"/>
+  <path id="path2441" fill="#fe9f11" d="M443.7 253.5l2 2z"/>
+  <path id="path2443" fill="#fcb144" d="M459.9 253.5l2 2z"/>
+  <path id="path2445" fill="#faca88" d="M468 253.5l2 2z"/>
+  <path id="path2447" fill="#f8dcbb" d="M502.5 253.5l2 2z"/>
+  <path id="path2449" fill="#fcb144" d="M528.9 253.5l2 2z"/>
+  <path id="path2451" fill="#d3d079" d="M419.3 255.6l2 2z"/>
+  <path id="path2453" fill="#faca88" d="M435.5 255.6l2 2zm24.4 0l2 2z"/>
+  <path id="path2455" fill="#fae3c9" d="M468 255.6l2 2-2-2m34.5 0l2 2z"/>
+  <path id="path2457" fill="#f8dcbb" d="M530.9 255.6l2 2-2-2z"/>
+  <path id="path2459" fill="#f2f1d7" d="M549.2 255.6l2 2z"/>
+  <path id="path2461" fill="#58587b" d="M556 256.9l.7 1.3z"/>
+  <path id="path2463" fill="#d9d868" d="M419.9 258.9l.8 1.4-.7-1.4z"/>
+  <path id="path2465" fill="#f8dcbb" d="M435.5 257.6l2 2z"/>
+  <path id="path2467" fill="#f9d6aa" d="M500.5 257.6l2 2z"/>
+  <path id="path2469" fill="#fe9f11" d="M502.5 257.6l2 2z"/>
+  <path id="path2471" fill="#fcb144" d="M530.9 257.6l2 2-2-2z"/>
+  <path id="path2473" fill="#f2f1d2" d="M549.9 258.9l.7 1.4z"/>
+  <path id="path2475" fill="#fcf1e4" d="M435.5 259.6l2 2z"/>
+  <path id="path2477" fill="#fef8f1" d="M498.5 259.6l2 2z"/>
+  <path id="path2479" fill="#fe9f11" d="M500.5 259.6l2 2z"/>
+  <path id="path2481" fill="#fdab33" d="M506.6 259.6l-2 4z"/>
+  <path id="path2483" fill="#fcb755" d="M508.6 259.6l2 2z"/>
+  <path id="path2485" fill="#fea522" d="M533 259.6l2 2z"/>
+  <path id="path2487" fill="#f9d099" d="M535 259.6l2 2z"/>
+  <path id="path2489" fill="#53527c" d="M555.3 259.6l2 2z"/>
+  <path id="path2491" fill="#808067" d="M415.9 263l.7 1.3z"/>
+  <path id="path2493" fill="#fea522" d="M437.6 261.6l2 2-2-2m6 0l2 2-2-2z"/>
+  <path id="path2495" fill="#fe9f11" d="M466 261.6l2 2z"/>
+  <path id="path2497" fill="#fae3c9" d="M498.5 261.6l2 2z"/>
+  <path id="path2499" fill="#fef8f1" d="M506.6 261.6l2 2z"/>
+  <path id="path2501" fill="#fcb144" d="M510.7 261.6l2 2z"/>
+  <path id="path2503" fill="#fcb755" d="M537 261.6l2 2z"/>
+  <path id="path2505" fill="#fef8f1" d="M539 261.6l4 4z"/>
+  <path id="path2507" fill="#e5e59d" d="M549.9 263l.7 1.3z"/>
+  <path id="path2509" fill="#32327b" d="M556 263l.7 1.3z"/>
+  <path id="path2511" fill="#fcb755" d="M438.3 265l.6 1.4z"/>
+  <path id="path2513" fill="#fef8f1" d="M445.7 263.6l2 2z"/>
+  <path id="path2515" fill="#fbbe66" d="M466 263.6l2 2z"/>
+  <path id="path2517" fill="#fbead6" d="M498.5 263.6l2 2z"/>
+  <path id="path2519" fill="#fe9f11" d="M502.5 263.6l2 2z"/>
+  <path id="path2521" fill="#fcf1e4" d="M504.6 263.6l2 2z"/>
+  <path id="path2523" fill="#fbead6" d="M510.7 263.6l2 2z"/>
+  <path id="path2525" fill="#fdab33" d="M539 263.6l2 2z"/>
+  <path id="path2527" fill="#667" d="M415.3 265.6l2 2-2-2z"/>
+  <path id="path2529" fill="#f6f6e4" d="M421.3 265.6l2 2-2-2z"/>
+  <path id="path2531" fill="#f9d6aa" d="M445.7 265.6l2 2-2-2z"/>
+  <path id="path2533" fill="#fdab33" d="M461.9 265.6l2 2-2-2z"/>
+  <path id="path2535" fill="#fe9f11" d="M463.9 265.6l2 2-2-2z"/>
+  <path id="path2537" fill="#fcf1e4" d="M466 265.6l2 2-2-2z"/>
+  <path id="path2539" fill="#fea522" d="M500.5 265.6l2 2-2-2z"/>
+  <path id="path2541" fill="#faca88" d="M502.5 265.6l2 2-2-2m10.2 0l2 2z"/>
+  <path id="path2543" fill="#fcb144" d="M541 265.6l2 2-2-2z"/>
+  <path id="path2545" fill="#dddc7a" d="M549.2 265.6l2 2-2-2z"/>
+  <path id="path2547" fill="#58587b" d="M415.3 267.7l2 2z"/>
+  <path id="path2549" fill="#f2f1d2" d="M421.3 267.7l2 2z"/>
+  <path id="path2551" fill="#fcb144" d="M438.3 269l.6 1.4z"/>
+  <path id="path2553" fill="#fea522" d="M445.7 267.7l2 2z"/>
+  <path id="path2555" fill="#fef8f1" d="M466 267.7l2 2z"/>
+  <path id="path2557" fill="#fea522" d="M468 267.7l2 2z"/>
+  <path id="path2559" fill="#fcb144" d="M472 267.7l2 2z"/>
+  <path id="path2561" fill="#fbead6" d="M474 267.7l2 2z"/>
+  <path id="path2563" fill="#f8dcbb" d="M500.5 267.7l2 2z"/>
+  <path id="path2565" fill="#fcf1e4" d="M502.5 267.7l2 2z"/>
+  <path id="path2567" fill="#fef8f1" d="M512.7 267.7l2 2z"/>
+  <path id="path2569" fill="#fe9f11" d="M514.7 267.7l2 2z"/>
+  <path id="path2571" fill="#fbead6" d="M543.2 267.7l2 2z"/>
+  <path id="path2573" fill="#d9d868" d="M549.2 267.7l2 2z"/>
+  <path id="path2575" fill="#3a3a7c" d="M415.3 269.7l2 2z"/>
+  <path id="path2577" fill="#e5e3af" d="M421.3 269.7l2 2z"/>
+  <path id="path2579" fill="#faca88" d="M447.7 269.7l2 2z"/>
+  <path id="path2581" fill="#fbead6" d="M468 269.7l2 2z"/>
+  <path id="path2583" fill="#fe9f11" d="M474 269.7l2 2z"/>
+  <path id="path2585" fill="#fcf1e4" d="M476.2 269.7l2 2z"/>
+  <path id="path2587" fill="#fbead6" d="M498.5 269.7l2 2z"/>
+  <path id="path2589" fill="#fae3c9" d="M500.5 269.7l2 2z"/>
+  <path id="path2591" fill="#fbead6" d="M502.5 269.7l2 2z"/>
+  <path id="path2593" fill="#fbbe66" d="M514.7 269.7l2 2-2-2m16.3 0l2 2z"/>
+  <path id="path2595" fill="#fcf1e4" d="M533 269.7l2 2z"/>
+  <path id="path2597" fill="#fef8f1" d="M535 269.7l2 2z"/>
+  <path id="path2599" fill="#f8dcbb" d="M537 269.7l2 2z"/>
+  <path id="path2601" fill="#fcb755" d="M539 269.7l2 2z"/>
+  <path id="path2603" fill="#fae3c9" d="M543.2 269.7l2 2z"/>
+  <path id="path2605" fill="#808067" d="M553.3 269.7l2 2z"/>
+  <path id="path2607" fill="#32327b" d="M415.3 271.8l2 2z"/>
+  <path id="path2609" fill="#a4a43d" d="M417.9 273l.7 1.5-.6-1.4z"/>
+  <path id="path2611" fill="#e5e59d" d="M421.3 271.8l2 2z"/>
+  <path id="path2613" fill="#fbc477" d="M437.6 271.8l2 2z"/>
+  <path id="path2615" fill="#f9d6aa" d="M449.8 271.8l2 2z"/>
+  <path id="path2617" fill="#fbbe66" d="M470 271.8l2 2z"/>
+  <path id="path2619" fill="#f9d099" d="M476.2 271.8l2 2z"/>
+  <path id="path2621" fill="#fae3c9" d="M494.4 271.8l2 2z"/>
+  <path id="path2623" fill="#fcb144" d="M496.5 271.8l2 2z"/>
+  <path id="path2625" fill="#fae3c9" d="M504.6 271.8l2 2z"/>
+  <path id="path2627" fill="#f8dcbb" d="M514.7 271.8l2 2z"/>
+  <path id="path2629" fill="#f9d099" d="M530.9 271.8l2 2-2-2z"/>
+  <path id="path2631" fill="#fbc477" d="M541 271.8l2 2z"/>
+  <path id="path2633" fill="#fbead6" d="M543.2 271.8l2 2z"/>
+  <path id="path2635" fill="#737370" d="M553.3 271.8l2 2z"/>
+  <path id="path2637" fill="#d9d868" d="M421.3 273.8l2 2z"/>
+  <path id="path2639" fill="#f9d099" d="M437.6 273.8l2 2z"/>
+  <path id="path2641" fill="#f9d6aa" d="M451.8 273.8l2 2-2-2m18.3 0l2 2z"/>
+  <path id="path2643" fill="#fbc477" d="M476.2 273.8l2 2z"/>
+  <path id="path2645" fill="#fef8f1" d="M486.3 273.8l2 2z"/>
+  <path id="path2647" fill="#f8dcbb" d="M488.3 273.8l2 2z"/>
+  <path id="path2649" fill="#fbc477" d="M490.4 273.8l2 2z"/>
+  <path id="path2651" fill="#fea522" d="M492.4 273.8l2 2z"/>
+  <path id="path2653" fill="#fbead6" d="M504.6 273.8l2 2z"/>
+  <path id="path2655" fill="#f2f1d2" d="M547.2 273.8l2 2z"/>
+  <path id="path2657" fill="#58587b" d="M553.3 273.8l2 2z"/>
+  <path id="path2659" fill="#99994e" d="M417.3 275.8l2 2z"/>
+  <path id="path2661" fill="#d0d045" d="M421.3 275.8l2 2z"/>
+  <path id="path2663" fill="#fcb144" d="M453.9 275.8l2 2z"/>
+  <path id="path2665" fill="#fae3c9" d="M455.9 275.8l2 2z"/>
+  <path id="path2667" fill="#fef8f1" d="M470 275.8l2 2z"/>
+  <path id="path2669" fill="#fcb755" d="M478.2 275.8l2 2z"/>
+  <path id="path2671" fill="#fbc477" d="M480.2 275.8l2 2z"/>
+  <path id="path2673" fill="#fcb144" d="M482.3 275.8l2 2z"/>
+  <path id="path2675" fill="#fea522" d="M484.3 275.8l2 2z"/>
+  <path id="path2677" fill="#fe9f11" d="M500.5 275.8l2 2z"/>
+  <path id="path2679" fill="#f9d6aa" d="M502.5 275.8l2 2z"/>
+  <path id="path2681" fill="#fef8f1" d="M530.9 275.8l2 2-2-2z"/>
+  <path id="path2683" fill="#e0dea1" d="M547.2 275.8l2 2z"/>
+  <path id="path2685" fill="#3a3a7c" d="M553.3 275.8l2 2z"/>
+  <path id="path2687" fill="#737370" d="M417.3 277.9l2 2z"/>
+  <path id="path2689" fill="#fbfaf2" d="M423.4 277.9l2 2z"/>
+  <path id="path2691" fill="#fea522" d="M439.6 277.9l2 2z"/>
+  <path id="path2693" fill="#fe9f11" d="M457.9 277.9l2 2z"/>
+  <path id="path2695" fill="#fcb144" d="M459.9 277.9l2 2z"/>
+  <path id="path2697" fill="#fbc477" d="M461.9 277.9l2 2z"/>
+  <path id="path2699" fill="#faca88" d="M463.9 277.9l2 2-2-2z"/>
+  <path id="path2701" fill="#fbc477" d="M466 277.9l2 2z"/>
+  <path id="path2703" fill="#fcb144" d="M468 277.9l2 2z"/>
+  <path id="path2705" fill="#fdab33" d="M470 277.9l2 2z"/>
+  <path id="path2707" fill="#fbc477" d="M498.5 277.9l2 2z"/>
+  <path id="path2709" fill="#fef8f1" d="M500.5 277.9l2 2z"/>
+  <path id="path2711" fill="#fdab33" d="M528.9 277.9l2 2z"/>
+  <path id="path2713" fill="#e1e18c" d="M547.2 277.9l2 2z"/>
+  <path id="path2715" fill="#a4a43d" d="M551.9 279.2l.7 1.4z"/>
+  <path id="path2717" fill="#262678" d="M553.3 277.9l2 2z"/>
+  <path id="path2719" fill="#58587b" d="M417.3 279.9l2 2z"/>
+  <path id="path2721" fill="#f2f1d2" d="M423.4 279.9l2 2z"/>
+  <path id="path2723" fill="#faca88" d="M439.6 279.9l2 2z"/>
+  <path id="path2725" fill="#fe9f11" d="M494.4 279.9l2 2z"/>
+  <path id="path2727" fill="#fbead6" d="M496.5 279.9l2 2z"/>
+  <path id="path2729" fill="#fbc477" d="M514.7 279.9l2 2z"/>
+  <path id="path2731" fill="#faca88" d="M528.9 279.9l2 2z"/>
+  <path id="path2733" fill="#d4d456" d="M547.2 279.9l2 2z"/>
+  <path id="path2735" fill="#32327b" d="M417.3 281.9l2 2z"/>
+  <path id="path2737" fill="#e5e59d" d="M423.4 281.9l2 2z"/>
+  <path id="path2739" fill="#fef8f1" d="M439.6 281.9l2 2z"/>
+  <path id="path2741" fill="#fe9f11" d="M441.6 281.9l2 2z"/>
+  <path id="path2743" fill="#fbead6" d="M494.4 281.9l2 2z"/>
+  <path id="path2745" fill="#fea522" d="M514.7 281.9l2 2z"/>
+  <path id="path2747" fill="#fcf1e4" d="M528.9 281.9l2 2z"/>
+  <path id="path2749" fill="#808067" d="M551.3 281.9l2 2z"/>
+  <path id="path2751" fill="#0e0e6e" d="M417.3 283.9l2 2z"/>
+  <path id="path2753" fill="#a4a43d" d="M419.3 283.9l2 2z"/>
+  <path id="path2755" fill="#d9d868" d="M423.4 283.9l2 2z"/>
+  <path id="path2757" fill="#f8dcbb" d="M441.6 283.9l2 2z"/>
+  <path id="path2759" fill="#f9d6aa" d="M512.7 283.9l2 2z"/>
+  <path id="path2761" fill="#faca88" d="M526.9 283.9l2 2z"/>
+  <path id="path2763" fill="#f2f1d2" d="M545.2 283.9l2 2z"/>
+  <path id="path2765" fill="#58587b" d="M551.3 283.9l2 2z"/>
+  <path id="path2767" fill="#8d8d5b" d="M419.3 286l2 2z"/>
+  <path id="path2769" fill="#f9d6aa" d="M443.7 286l2 2z"/>
+  <path id="path2771" fill="#fdab33" d="M484.3 286l2 2z"/>
+  <path id="path2773" fill="#fff" d="M486.3 286l2 2z"/>
+  <path id="path2775" fill="#fcb144" d="M489.7 286.6l1.4.7z"/>
+  <path id="path2777" fill="#fef8f1" d="M510.7 286l-2 4z"/>
+  <path id="path2779" fill="#fe9f11" d="M512.7 286l2 2z"/>
+  <path id="path2781" fill="#fdab33" d="M524.9 286l-2 4z"/>
+  <path id="path2783" fill="#e5e59d" d="M545.2 286l2 2z"/>
+  <path id="path2785" fill="#3a3a7c" d="M551.3 286l2 2z"/>
+  <path id="path2787" fill="#667" d="M419.3 288l2 2z"/>
+  <path id="path2789" fill="#f2f1d2" d="M425.4 288l2 2z"/>
+  <path id="path2791" fill="#f9d6aa" d="M445.7 288l2 2z"/>
+  <path id="path2793" fill="#fe9f11" d="M484.3 288l2 2z"/>
+  <path id="path2795" fill="#faca88" d="M486.3 288l2 2z"/>
+  <path id="path2797" fill="#fea522" d="M488.3 288l2 2z"/>
+  <path id="path2799" fill="#fcf1e4" d="M490.4 288l2 2z"/>
+  <path id="path2801" fill="#fdab33" d="M510.7 288l2 2z"/>
+  <path id="path2803" fill="#fef8f1" d="M524.9 288l2 2z"/>
+  <path id="path2805" fill="#d9d868" d="M545.2 288l2 2z"/>
+  <path id="path2807" fill="#a4a43d" d="M549.2 288l2 2z"/>
+  <path id="path2809" fill="#0e0e6e" d="M551.3 288l2 2z"/>
+  <path id="path2811" fill="#3a3a7c" d="M419.3 290l2 2z"/>
+  <path id="path2813" fill="#e5e59d" d="M425.4 290l2 2z"/>
+  <path id="path2815" fill="#fae3c9" d="M447.7 290l4 4z"/>
+  <path id="path2817" fill="#fe9f11" d="M449.8 290l2 2z"/>
+  <path id="path2819" fill="#f8dcbb" d="M488.3 290l2 2z"/>
+  <path id="path2821" fill="#fcf1e4" d="M506.6 290l2 2z"/>
+  <path id="path2823" fill="#fdab33" d="M508.6 290l2 2z"/>
+  <path id="path2825" fill="#fcb144" d="M520.9 290l2 2z"/>
+  <path id="path2827" fill="#fef8f1" d="M522.9 290l2 2z"/>
+  <path id="path2829" fill="#fbfaf2" d="M543.2 290l2 2z"/>
+  <path id="path2831" fill="#8d8d5b" d="M549.2 290l2 2z"/>
+  <path id="path2833" fill="#0e0e6e" d="M419.3 292l2 2z"/>
+  <path id="path2835" fill="#a4a43d" d="M421.3 292l2 2z"/>
+  <path id="path2837" fill="#d4d456" d="M425.4 292l2 2z"/>
+  <path id="path2839" fill="#f9d6aa" d="M486.3 292l2 2z"/>
+  <path id="path2841" fill="#f9d099" d="M504.6 292l2 2z"/>
+  <path id="path2843" fill="#fe9f11" d="M506.6 292l2 2z"/>
+  <path id="path2845" fill="#faca88" d="M518.8 292l2 2z"/>
+  <path id="path2847" fill="#eeedc1" d="M543.2 292l2 2z"/>
+  <path id="path2849" fill="#58587b" d="M549.2 292l2 2z"/>
+  <path id="path2851" fill="#737370" d="M421.3 294l2 2z"/>
+  <path id="path2853" fill="#f6f6e4" d="M427.4 294l2 2z"/>
+  <path id="path2855" fill="#fbbe66" d="M449.8 294l2 2z"/>
+  <path id="path2857" fill="#fcb144" d="M482.3 294l2 2z"/>
+  <path id="path2859" fill="#f8dcbb" d="M484.9 295.5l.7 1.3z"/>
+  <path id="path2861" fill="#fbbe66" d="M500.5 294l2 2z"/>
+  <path id="path2863" fill="#fe9f11" d="M502.5 294l2 2z"/>
+  <path id="path2865" fill="#fbc477" d="M514.7 294l2 2z"/>
+  <path id="path2867" fill="#fcf1e4" d="M516.8 294l2 2z"/>
+  <path id="path2869" fill="#d3d079" d="M543.2 294l2 2z"/>
+  <path id="path2871" fill="#a4a43d" d="M547.2 294l2 2z"/>
+  <path id="path2873" fill="#262678" d="M549.2 294l2 2z"/>
+  <path id="path2875" fill="#49497d" d="M421.3 296l2 2z"/>
+  <path id="path2877" fill="#e0dea1" d="M427.4 296l2 2z"/>
+  <path id="path2879" fill="#fae3c9" d="M447.7 296l2 2z"/>
+  <path id="path2881" fill="#fdab33" d="M476.2 296l2 2z"/>
+  <path id="path2883" fill="#fbc477" d="M478.2 296l2 2z"/>
+  <path id="path2885" fill="#fbead6" d="M480.2 296l2 2z"/>
+  <path id="path2887" fill="#fcb144" d="M486.3 296l2 2z"/>
+  <path id="path2889" fill="#f9d6aa" d="M512.7 296l2 2z"/>
+  <path id="path2891" fill="#99994e" d="M547.2 296l2 2z"/>
+  <path id="path2893" fill="#0e0e6e" d="M421.3 298.2l2 2z"/>
+  <path id="path2895" fill="#a4a43d" d="M423.4 298.2l2 2z"/>
+  <path id="path2897" fill="#d4d456" d="M427.4 298.2l2 2z"/>
+  <path id="path2899" fill="#f9d099" d="M445.7 298.2l2 2z"/>
+  <path id="path2901" fill="#fe9f11" d="M447.7 298.2l2 2-2-2m10.2 0l2 2z"/>
+  <path id="path2903" fill="#f9d6aa" d="M459.9 298.2l2 2z"/>
+  <path id="path2905" fill="#f9d099" d="M461.9 298.2l2 2z"/>
+  <path id="path2907" fill="#f9d6aa" d="M470 298.2l2 2z"/>
+  <path id="path2909" fill="#fae3c9" d="M472 298.2l2 2z"/>
+  <path id="path2911" fill="#fef8f1" d="M474 298.2l2 2z"/>
+  <path id="path2913" fill="#fbead6" d="M490.4 298.2l2 2z"/>
+  <path id="path2915" fill="#fae3c9" d="M492.4 298.2l2 2z"/>
+  <path id="path2917" fill="#faca88" d="M494.4 298.2l2 2z"/>
+  <path id="path2919" fill="#fbc477" d="M496.5 298.2l2 2z"/>
+  <path id="path2921" fill="#fdab33" d="M498.5 298.2l2 2z"/>
+  <path id="path2923" fill="#fe9f11" d="M508.6 298.2l2 2z"/>
+  <path id="path2925" fill="#f9d6aa" d="M510.7 298.2l2 2z"/>
+  <path id="path2927" fill="#e5e3af" d="M541 298.2l2 2z"/>
+  <path id="path2929" fill="#667" d="M547.2 298.2l2 2z"/>
+  <path id="path2931" fill="#737370" d="M423.4 300.2l2 2z"/>
+  <path id="path2933" fill="#f2f1d7" d="M429.5 300.2l2 2z"/>
+  <path id="path2935" fill="#fea522" d="M443.7 300.2l2 2z"/>
+  <path id="path2937" fill="#fe9f11" d="M453.9 300.2l2 2z"/>
+  <path id="path2939" fill="#fbbe66" d="M455.9 300.2l2 2z"/>
+  <path id="path2941" fill="#fcf1e4" d="M457.9 300.2l2 2z"/>
+  <path id="path2943" fill="#fea522" d="M506.6 300.2l2 2z"/>
+  <path id="path2945" fill="#fbead6" d="M508.6 300.2l2 2z"/>
+  <path id="path2947" fill="#dddc7a" d="M541 300.2l2 2z"/>
+  <path id="path2949" fill="#a4a43d" d="M545.2 300.2l2 2z"/>
+  <path id="path2951" fill="#262678" d="M547.2 300.2l2 2z"/>
+  <path id="path2953" fill="#49497d" d="M423.4 302.2l2 2z"/>
+  <path id="path2955" fill="#a4a43d" d="M426 303.6l.8 1.3z"/>
+  <path id="path2957" fill="#d3d079" d="M429.5 302.2l2 2z"/>
+  <path id="path2959" fill="#f9d099" d="M445.7 302.2l2 2z"/>
+  <path id="path2961" fill="#fcb144" d="M447.7 302.2l2 2z"/>
+  <path id="path2963" fill="#faca88" d="M449.8 302.2l2 2z"/>
+  <path id="path2965" fill="#f8dcbb" d="M451.8 302.2l2 2z"/>
+  <path id="path2967" fill="#fef8f1" d="M453.9 302.2l2 2z"/>
+  <path id="path2969" fill="#f8dcbb" d="M498.5 302.2l2 2z"/>
+  <path id="path2971" fill="#fcf1e4" d="M506.6 302.2l2 2z"/>
+  <path id="path2973" fill="#f6f6e4" d="M539 302.2l2 2z"/>
+  <path id="path2975" fill="#8d8d5b" d="M545.2 302.2l2 2z"/>
+  <path id="path2977" fill="#fbfaf2" d="M431.5 304.2l2 2z"/>
+  <path id="path2979" fill="#fbbe66" d="M498.5 304.2l2 2z"/>
+  <path id="path2981" fill="#faca88" d="M504.6 304.2l2 2z"/>
+  <path id="path2983" fill="#e1e18c" d="M539 304.2l2 2z"/>
+  <path id="path2985" fill="#49497d" d="M545.2 304.2l2 2z"/>
+  <path id="path2987" fill="#58587b" d="M425.4 306.3l2 2z"/>
+  <path id="path2989" fill="#e5e59d" d="M431.5 306.3l2 2z"/>
+  <path id="path2991" fill="#fe9f11" d="M498.5 306.3l2 2z"/>
+  <path id="path2993" fill="#fdab33" d="M502.5 306.3l2 2z"/>
+  <path id="path2995" fill="#fbfaf2" d="M537 306.3l2 2z"/>
+  <path id="path2997" fill="#a4a43d" d="M543.2 306.3l2 2z"/>
+  <path id="path2999" fill="#0e0e6e" d="M545.2 306.3l2 2z"/>
+  <path id="path3001" fill="#1b1b74" d="M425.4 308.3l2 2z"/>
+  <path id="path3003" fill="#a4a43d" d="M427.4 308.3l2 2z"/>
+  <path id="path3005" fill="#d0d045" d="M431.5 308.3l2 2z"/>
+  <path id="path3007" fill="#fbead6" d="M496.5 308.3l2 2z"/>
+  <path id="path3009" fill="#fe9f11" d="M500.5 308.3l2 2z"/>
+  <path id="path3011" fill="#fbead6" d="M502.5 308.3l2 2z"/>
+  <path id="path3013" fill="#e5e59d" d="M537 308.3l2 2z"/>
+  <path id="path3015" fill="#667" d="M543.2 308.3l2 2z"/>
+  <path id="path3017" fill="#6e6c70" d="M427.4 310.3l2 2z"/>
+  <path id="path3019" fill="#e5e3af" d="M433.5 310.3l2 2z"/>
+  <path id="path3021" fill="#faca88" d="M497 311.7l.8 1.4z"/>
+  <path id="path3023" fill="#fae3c9" d="M500.5 310.3l2 2z"/>
+  <path id="path3025" fill="#fbfaf2" d="M535 310.3l2 2z"/>
+  <path id="path3027" fill="#a4a43d" d="M541 310.3l2 2z"/>
+  <path id="path3029" fill="#1b1b74" d="M543.2 310.3l2 2-2-2m-115.8 2l2 2z"/>
+  <path id="path3031" fill="#a4a43d" d="M429.5 312.4l2 2z"/>
+  <path id="path3033" fill="#d0d045" d="M433.5 312.4l2 2z"/>
+  <path id="path3035" fill="#fbfaf2" d="M435.5 312.4l2 2z"/>
+  <path id="path3037" fill="#f9d6aa" d="M498.5 312.4l2 2z"/>
+  <path id="path3039" fill="#e5e59d" d="M535 312.4l2 2z"/>
+  <path id="path3041" fill="#6e6c70" d="M541 312.4l2 2-2-2m-111.5 2l2 2z"/>
+  <path id="path3043" fill="#8cbf84" d="M435.5 314.4l2 2z"/>
+  <path id="path3045" fill="#0cf" d="M436.4 314.4c7 14.8 32 49.8 51 49.2 18.6-.7 39.5-35 47.6-49.2z"/>
+  <path id="path3047" fill="#a4a43d" d="M539 314.4l2 2z"/>
+  <path id="path3049" fill="#1b1b74" d="M541 314.4l2 2-2-2m-111.5 2l2 2z"/>
+  <path id="path3051" fill="#a4a43d" d="M431.5 316.4l2 2z"/>
+  <path id="path3053" fill="#adb333" d="M435.5 316.4l2 2z"/>
+  <path id="path3055" fill="#1ac5b5" d="M437.6 316.4l2 2z"/>
+  <path id="path3057" fill="#68b070" d="M533 316.4l2 2z"/>
+  <path id="path3059" fill="#667" d="M539 316.4l2 2z"/>
+  <path id="path3061" fill="#58587b" d="M431.5 318.5l2 2z"/>
+  <path id="path3063" fill="#7fb15c" d="M437.6 318.5l2 2z"/>
+  <path id="path3065" fill="#27c2aa" d="M530.9 318.5l2 2-2-2z"/>
+  <path id="path3067" fill="#a4a43d" d="M537 318.5l-2 4z"/>
+  <path id="path3069" fill="#0e0e6e" d="M539 318.5l2 2-2-2m-107.5 2l2 2z"/>
+  <path id="path3071" fill="#a4a43d" d="M433.5 320.5l4 4z"/>
+  <path id="path3073" fill="#34be9e" d="M439.6 320.5l2 2z"/>
+  <path id="path3075" fill="#96b247" d="M530.9 320.5l2 2-2-2z"/>
+  <path id="path3077" fill="#53527c" d="M537 320.5l2 2z"/>
+  <path id="path3079" fill="#3a3a7c" d="M433.5 322.6l2 2z"/>
+  <path id="path3081" fill="#a2b23d" d="M439.6 322.6l2 2z"/>
+  <path id="path3083" fill="#0dc9c1" d="M441.6 322.6l2 2z"/>
+  <path id="path3085" fill="#5bb47c" d="M528.9 322.6l2 2z"/>
+  <path id="path3087" fill="#8d8d5b" d="M535 322.6l2 2z"/>
+  <path id="path3089" fill="#737370" d="M435.5 324.6l2 2z"/>
+  <path id="path3091" fill="#74b166" d="M441.6 324.6l2 2z"/>
+  <path id="path3093" fill="#27c2aa" d="M526.9 324.6l2 2z"/>
+  <path id="path3095" fill="#a4a43d" d="M533 324.6l-2 4z"/>
+  <path id="path3097" fill="#262678" d="M535 324.6l2 2z"/>
+  <path id="path3099" fill="#0e0e6e" d="M435.5 326.6l2 2z"/>
+  <path id="path3101" fill="#a4a43d" d="M437.6 326.6l4 4z"/>
+  <path id="path3103" fill="#42bb92" d="M443.7 326.6l2 2z"/>
+  <path id="path3105" fill="#0dc9c1" d="M524.9 326.6l2 2z"/>
+  <path id="path3107" fill="#96b247" d="M526.9 326.6l2 2z"/>
+  <path id="path3109" fill="#58587b" d="M533 326.6l2 2z"/>
+  <path id="path3111" fill="#3a3a7c" d="M437.6 328.6l2 2z"/>
+  <path id="path3113" fill="#adb333" d="M443.7 328.6l2 2z"/>
+  <path id="path3115" fill="#27c2aa" d="M445.7 328.6l2 2z"/>
+  <path id="path3117" fill="#74b166" d="M524.9 328.6l2 2z"/>
+  <path id="path3119" fill="#8d8d5b" d="M530.9 328.6l2 2-2-2z"/>
+  <path id="path3121" fill="#6e6c70" d="M439.6 330.6l2 2z"/>
+  <path id="path3123" fill="#96b247" d="M445.7 330.6l2 2z"/>
+  <path id="path3125" fill="#0dc9c1" d="M447.7 330.6l2 2z"/>
+  <path id="path3127" fill="#42bb92" d="M522.9 330.6l2 2z"/>
+  <path id="path3129" fill="#a4a43d" d="M528.9 330.6l-4 6 4-6z"/>
+  <path id="path3131" fill="#1b1b74" d="M530.9 330.6l2 2-2-2z"/>
+  <path id="path3133" fill="#0e0e6e" d="M439.6 332.6l2 2-2-2z"/>
+  <path id="path3135" fill="#8d8d5b" d="M441.6 332.6l2 2-2-2z"/>
+  <path id="path3137" fill="#7fb15c" d="M447.7 332.6l2 2-2-2z"/>
+  <path id="path3139" fill="#34be9e" d="M520.9 332.6l2 2-2-2z"/>
+  <path id="path3141" fill="#3a3a7c" d="M528.9 332.6l2 2-2-2z"/>
+  <path id="path3143" fill="#1b1b74" d="M441.6 334.7l2 2z"/>
+  <path id="path3145" fill="#a4a43d" d="M443.7 334.7L466 357z"/>
+  <path id="path3147" fill="#74b166" d="M449.8 334.7l2 2z"/>
+  <path id="path3149" fill="#27c2aa" d="M518.8 334.7l2 2z"/>
+  <path id="path3151" fill="#adb333" d="M520.9 334.7l2 2z"/>
+  <path id="path3153" fill="#667" d="M526.9 334.7l2 2z"/>
+  <path id="path3155" fill="#32327b" d="M443.7 336.7l2 2z"/>
+  <path id="path3157" fill="#42bb92" d="M451.8 336.7l2 2z"/>
+  <path id="path3159" fill="#0dc9c1" d="M516.8 336.7l-8.2 10.2 8.3-10.3z"/>
+  <path id="path3161" fill="#adb333" d="M518.8 336.7l2 2z"/>
+  <path id="path3163" fill="#737370" d="M524.9 336.7l2 2z"/>
+  <path id="path3165" fill="#49497d" d="M445.7 338.8l2 2z"/>
+  <path id="path3167" fill="#42bb92" d="M453.9 338.8l2 2z"/>
+  <path id="path3169" fill="#96b247" d="M516.8 338.8l2 2z"/>
+  <path id="path3171" fill="#8d8d5b" d="M522.9 338.8l-2 4z"/>
+  <path id="path3173" fill="#0e0e6e" d="M524.9 338.8l2 2z"/>
+  <path id="path3175" fill="#53527c" d="M447.7 340.8l2 2z"/>
+  <path id="path3177" fill="#42bb92" d="M455.9 340.8l2 2z"/>
+  <path id="path3179" fill="#96b247" d="M514.7 340.8l2 2z"/>
+  <path id="path3181" fill="#0e0e6e" d="M522.9 340.8l2 2z"/>
+  <path id="path3183" fill="#6e6c70" d="M449.8 342.8l2 2z"/>
+  <path id="path3185" fill="#42bb92" d="M457.9 342.8l2 2z"/>
+  <path id="path3187" fill="#96b247" d="M512.7 342.8l2 2z"/>
+  <path id="path3189" fill="#a4a43d" d="M518.8 342.8l-4 6 4-6z"/>
+  <path id="path3191" fill="#262678" d="M520.9 342.8l2 2z"/>
+  <path id="path3193" fill="#6e6c70" d="M451.8 344.9l2 2z"/>
+  <path id="path3195" fill="#42bb92" d="M459.9 344.9l2 2z"/>
+  <path id="path3197" fill="#96b247" d="M510.7 344.9l2 2z"/>
+  <path id="path3199" fill="#262678" d="M518.8 344.9l2 2z"/>
+  <path id="path3201" fill="#6e6c70" d="M453.9 346.9l2 2z"/>
+  <path id="path3203" fill="#68b070" d="M461.9 346.9l2 2z"/>
+  <path id="path3205" fill="#27c2aa" d="M506.6 346.9l2 2z"/>
+  <path id="path3207" fill="#adb333" d="M508.6 346.9l2 2z"/>
+  <path id="path3209" fill="#262678" d="M516.8 346.9l2 2z"/>
+  <path id="path3211" fill="#667" d="M455.9 348.9l2 2z"/>
+  <path id="path3213" fill="#74b166" d="M463.9 348.9l2 2-2-2z"/>
+  <path id="path3215" fill="#34be9e" d="M504.6 348.9l2 2z"/>
+  <path id="path3217" fill="#adb333" d="M506.6 348.9l2 2z"/>
+  <path id="path3219" fill="#8d8d5b" d="M512.7 348.9l-2 4z"/>
+  <path id="path3221" fill="#262678" d="M514.7 348.9l2 2z"/>
+  <path id="path3223" fill="#49497d" d="M457.9 350.9l2 2z"/>
+  <path id="path3225" fill="#96b247" d="M466 350.9l2 2z"/>
+  <path id="path3227" fill="#0dc9c1" d="M468 350.9l2 2z"/>
+  <path id="path3229" fill="#42bb92" d="M502.5 350.9l2 2z"/>
+  <path id="path3231" fill="#0e0e6e" d="M512.7 350.9l2 2z"/>
+  <path id="path3233" fill="#49497d" d="M459.9 353l2 2z"/>
+  <path id="path3235" fill="#a2b23d" d="M468 353l2 2z"/>
+  <path id="path3237" fill="#27c2aa" d="M470 353l2 2z"/>
+  <path id="path3239" fill="#74b166" d="M500.5 353l2 2z"/>
+  <path id="path3241" fill="#a4a43d" d="M506.6 353l-6 8z"/>
+  <path id="path3243" fill="#808067" d="M508.6 353l2 2z"/>
+  <path id="path3245" fill="#0e0e6e" d="M510.7 353l2 2z"/>
+  <path id="path3247" fill="#262678" d="M461.9 355l2 2z"/>
+  <path id="path3249" fill="#adb333" d="M470 355l2 2z"/>
+  <path id="path3251" fill="#42bb92" d="M472 355l2 2z"/>
+  <path id="path3253" fill="#0dc9c1" d="M496.5 355l2 2z"/>
+  <path id="path3255" fill="#96b247" d="M498.5 355l2 2z"/>
+  <path id="path3257" fill="#6e6c70" d="M506.6 355l2 2z"/>
+  <path id="path3259" fill="#1b1b74" d="M463.9 357l2 2-2-2z"/>
+  <path id="path3261" fill="#8d8d5b" d="M466 357l2 2z"/>
+  <path id="path3263" fill="#74b166" d="M474 357l2 2z"/>
+  <path id="path3265" fill="#0dc9c1" d="M476.2 357l2 2z"/>
+  <path id="path3267" fill="#34be9e" d="M494.4 357l2 2z"/>
+  <path id="path3269" fill="#adb333" d="M496.5 357l2 2z"/>
+  <path id="path3271" fill="#49497d" d="M504.6 357l2 2z"/>
+  <path id="path3273" fill="#0e0e6e" d="M466 359l2 2z"/>
+  <path id="path3275" fill="#6e6c70" d="M468 359l2 2z"/>
+  <path id="path3277" fill="#a4a43d" d="M470 359l4 4z"/>
+  <path id="path3279" fill="#96b247" d="M476.2 359l2 2z"/>
+  <path id="path3281" fill="#27c2aa" d="M478.2 359l2 2z"/>
+  <path id="path3283" fill="#68b070" d="M492.4 359l2 2z"/>
+  <path id="path3285" fill="#32327b" d="M502.5 359l2 2z"/>
+  <path id="path3287" fill="#49497d" d="M470 361l2 2z"/>
+  <path id="path3289" fill="#5bb47c" d="M480.2 361l2 2z"/>
+  <path id="path3291" fill="#27c2aa" d="M488.3 361l2 2z"/>
+  <path id="path3293" fill="#96b247" d="M490.4 361l2 2z"/>
+  <path id="path3295" fill="#a4a43d" d="M496.5 361l-2 4z"/>
+  <path id="path3297" fill="#808067" d="M498.5 361l2 2z"/>
+  <path id="path3299" fill="#0e0e6e" d="M500.5 361l2 2z"/>
+  <path id="path3301" fill="#262678" d="M472 363l2 2z"/>
+  <path id="path3303" fill="#8d8d5b" d="M474 363l2 2z"/>
+  <path id="path3305" fill="#8bb252" d="M482.3 363l2 2z"/>
+  <path id="path3307" fill="#1ac5b5" d="M484.3 363l2 2z"/>
+  <path id="path3309" fill="#5bb47c" d="M486.3 363l2 2z"/>
+  <path id="path3311" fill="#58587b" d="M496.5 363l2 2z"/>
+  <path id="path3313" fill="#0e0e6e" d="M474 365.2l2 2z"/>
+  <path id="path3315" fill="#667" d="M476.2 365.2l2 2z"/>
+  <path id="path3317" fill="#a4a43d" d="M478.2 365.2l2 2z"/>
+  <path id="path3319" fill="#99994e" d="M492.4 365.2l2 2z"/>
+  <path id="path3321" fill="#32327b" d="M494.4 365.2l2 2-2-2m-16.2 2l2 2z"/>
+  <path id="path3323" fill="#99994e" d="M480.2 367.2l2 2z"/>
+  <path id="path3325" fill="#a4a43d" d="M488.3 367.2l2 2z"/>
+  <path id="path3327" fill="#667" d="M490.4 367.2l2 2z"/>
+  <path id="path3329" fill="#0e0e6e" d="M492.4 367.2l2 2-2-2m-12.2 2l2 2z"/>
+  <path id="path3331" fill="#667" d="M482.3 369.2l2 2z"/>
+  <path id="path3333" fill="#a4a43d" d="M484.3 369.2l2 2z"/>
+  <path id="path3335" fill="#99994e" d="M486.3 369.2l2 2z"/>
+  <path id="path3337" fill="#32327b" d="M488.3 369.2l2 2z"/>
+  <path id="path3339" fill="#262678" d="M484.3 371.2l2 2z"/>
+  <path id="path3341" fill="#0e0e6e" d="M486.3 371.2l2 2z"/>
+  <path id="path3343" fill="#f90" d="M488.3 235.2c3.2 7.4 13.2 15.5 16 19.5-3.5 4-4.2 3.6-3.8 11 6-6.4 6.2-7 10.2-6.1 8.6 8.6 1.5 27-5.6 31-7.1 4.3-5.8-.1-16.5 5.2 4.9 4.2 10.6-.6 15.2.7 2.5 3-1.2 8.4.7 13.6 4-.4 3.6-8.7 4.6-11.7 3-11 21-18.6 21.9-28.7 3.8-1.7 7.5-.5 12 2-2.2-9.4-9.7-9.3-11.8-12.2-4.8-7.4-9.1-15.8-19.4-18-8-1.7-7.3.5-12.3-3-3.2-2.4-12.7-7-11.2-3.3z"/>
+  <path id="path3345" fill="#fff" fill-rule="evenodd" d="M510.9 243.6a1.6 1.6 0 11-3.3 0 1.6 1.6 0 013.3 0z"/>
+  <path id="path3347" fill="#f90" d="M463.2 266.5c5-6.2 7.6-19 9.8-23.2 5.2 1.2 5 2 11.5-1.8-8.5-2.4-9.2-2.2-10.2-6.1 3.6-11.7 23.2-14 30-9.6 7.2 4.3 2.7 5.2 12.4 12 1.4-6.2-5.5-9-6.5-13.6 1.5-3.7 8-3 11.6-7-2.2-3.5-9.3.8-12.4 1.4-11 2.5-26.3-9.8-35.6-6-3.3-2.5-4-6.4-4-11.7-7.1 6.5-3.5 13-5.2 16.3-4.2 7.7-9.7 15.5-6.8 25.6 2.2 7.8 3.8 6.2 3.2 12.3-.7 3.9-.4 14.5 2.2 11.4z"/>
+  <path id="path3349" fill="#fff" fill-rule="evenodd" d="M460 242.6c.9-.4 1.9-.1 2.3.7a1.6 1.6 0 11-2.2-.7z"/>
+  <path id="path3351" fill="#f90" d="M504.3 270.8c-8-1-20.1 3.3-25 3.7-1.5-5.1-.8-5.5-7.4-9 2.3 8.6 2.8 9 0 12-11.8 2.9-24-12.7-23.8-20.8 0-8.3 3.2-5 4-17-6 2-4.8 9.5-8.3 12.8-4 .6-6.6-5.3-12-6.3-1.8 3.7 5.5 7.5 7.6 9.9 7.9 8.2 5.2 27.5 13.3 33.5-.4 4.2-3.4 6.8-8 9.4 9.3 2.9 13-3.7 16.7-4 8.8-.2 18.3.4 25.5-7.3 5.4-6 3.3-6.5 8.8-9 3.7-1.4 12.6-7.2 8.6-8z"/>
+  <path id="path3353" fill="#fff" fill-rule="evenodd" d="M485.5 285.9a1.6 1.6 0 111.7-2.8 1.6 1.6 0 01-1.7 2.8z"/>
+  <path id="path5288" fill="#012169" stroke-width=".5" d="M0 0h320v240H0z"/>
+  <path id="path5290" fill="#fff" stroke-width=".5" d="M37.5 0l122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z"/>
+  <path id="path5292" fill="#c8102e" stroke-width=".5" d="M212 140.5L320 220v20l-135.5-99.5zm-92 10l3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z"/>
+  <path id="path5294" fill="#fff" stroke-width=".5" d="M120.5 0v240h80V0zM0 80v80h320V80z"/>
+  <path id="path5296" fill="#c8102e" stroke-width=".5" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/al.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/al.svg
new file mode 100644
index 0000000..e831b02
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/al.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-al" viewBox="0 0 640 480">
+  <path fill="#e41e20" d="M0 0h640v480H0z"/>
+  <path id="a" d="M272 93.3c-4.6 0-12.3 1.5-12.2 5-13-2.1-14.3 3.2-13.5 8 1.2-1.9 2.7-3 3.9-3.1 1.7-.3 3.5.3 5.4 1.4a21.6 21.6 0 014.8 4.1c-4.6 1.1-8.2.4-11.8-.2a16.5 16.5 0 01-5.7-2.4c-1.5-1-2-2-4.3-4.3-2.7-2.8-5.6-2-4.7 2.3 2.1 4 5.6 5.8 10 6.6 2.1.3 5.3 1 8.9 1 3.6 0 7.6-.5 9.8 0-1.3.8-2.8 2.3-5.8 2.8-3 .6-7.5-1.8-10.3-2.4.3 2.3 3.3 4.5 9.1 5.7 9.6 2 17.5 3.6 22.8 6.5a37.3 37.3 0 0110.9 9.2c4.7 5.5 5 9.8 5.2 10.8 1 8.8-2.1 13.8-7.9 15.4-2.8.7-8-.7-9.8-2.9-2-2.2-3.7-6-3.2-12 .5-2.2 3.1-8.3.9-9.5a273.7 273.7 0 00-32.3-15.1c-2.5-1-4.5 2.4-5.3 3.8a50.2 50.2 0 01-36-23.7c-4.2-7.6-11.3 0-10.1 7.3 1.9 8 8 13.8 15.4 18 7.5 4.1 17 8.2 26.5 8 5.2 1 5.1 7.6-1 8.9-12.1 0-21.8-.2-30.9-9-6.9-6.3-10.7 1.2-8.8 5.4 3.4 13.1 22.1 16.8 41 12.6 7.4-1.2 3 6.6 1 6.7-8 5.7-22.1 11.2-34.6 0-5.7-4.4-9.6-.8-7.4 5.5 5.5 16.5 26.7 13 41.2 5 3.7-2.1 7.1 2.7 2.6 6.4-18.1 12.6-27.1 12.8-35.3 8-10.2-4.1-11 7.2-5 11 6.7 4 23.8 1 36.4-7 5.4-4 5.6 2.3 2.2 4.8-14.9 12.9-20.8 16.3-36.3 14.2-7.7-.6-7.6 8.9-1.6 12.6 8.3 5.1 24.5-3.3 37-13.8 5.3-2.8 6.2 1.8 3.6 7.3a53.9 53.9 0 01-21.8 18c-7 2.7-13.6 2.3-18.3.7-5.8-2-6.5 4-3.3 9.4 1.9 3.3 9.8 4.3 18.4 1.3 8.6-3 17.8-10.2 24.1-18.5 5.5-4.9 4.9 1.6 2.3 6.2-12.6 20-24.2 27.4-39.5 26.2-6.7-1.2-8.3 4-4 9 7.6 6.2 17 6 25.4-.2 7.3-7 21.4-22.4 28.8-30.6 5.2-4.1 6.9 0 5.3 8.4-1.4 4.8-4.8 10-14.3 13.6-6.5 3.7-1.6 8.8 3.2 9 2.7 0 8.1-3.2 12.3-7.8 5.4-6.2 5.8-10.3 8.8-19.9 2.8-4.6 7.9-2.4 7.9 2.4-2.5 9.6-4.5 11.3-9.5 15.2-4.7 4.5 3.3 6 6 4.1 7.8-5.2 10.6-12 13.2-18.2 2-4.4 7.4-2.3 4.8 5-6 17.4-16 24.2-33.3 27.8-1.7.3-2.8 1.3-2.2 3.3l7 7c-10.7 3.2-19.4 5-30.2 8l-14.8-9.8c-1.3-3.2-2-8.2-9.8-4.7-5.2-2.4-7.7-1.5-10.6 1 4.2 0 6 1.2 7.7 3.1 2.2 5.7 7.2 6.3 12.3 4.7 3.3 2.7 5 4.9 8.4 7.7l-16.7-.5c-6-6.3-10.6-6-14.8-1-3.3.5-4.6.5-6.8 4.4 3.4-1.4 5.6-1.8 7.1-.3 6.3 3.7 10.4 2.9 13.5 0l17.5 1.1c-2.2 2-5.2 3-7.5 4.8-9-2.6-13.8 1-15.4 8.3a17 17 0 00-1.2 9.3c.8-3 2.3-5.5 4.9-7 8 2 11-1.3 11.5-6.1 4-3.2 9.8-3.9 13.7-7.1 4.6 1.4 6.8 2.3 11.4 3.8 1.6 5 5.3 6.9 11.3 5.6 7 .2 5.8 3.2 6.4 5.5 2-3.3 1.9-6.6-2.5-9.6-1.6-4.3-5.2-6.3-9.8-3.8-4.4-1.2-5.5-3-9.9-4.3 11-3.5 18.8-4.3 29.8-7.8l7.7 6.8c1.5.9 2.9 1.1 3.8 0 6.9-10 10-18.7 16.3-25.3 2.5-2.8 5.6-6.4 9-7.3 1.7-.5 3.8-.2 5.2 1.3 1.3 1.4 2.4 4.1 2 8.2-.7 5.7-2.1 7.6-3.7 11-1.7 3.5-3.6 5.6-5.7 8.3-4 5.3-9.4 8.4-12.6 10.5-6.4 4.1-9 2.3-14 2-6.4.7-8 3.8-2.8 8.1 4.8 2.6 9.2 2.9 12.8 2.2 3-.6 6.6-4.5 9.2-6.6 2.8-3.3 7.6.6 4.3 4.5-5.9 7-11.7 11.6-19 11.5-7.7 1-6.2 5.3-1.2 7.4 9.2 3.7 17.4-3.3 21.6-8 3.2-3.5 5.5-3.6 5 1.9-3.3 9.9-7.6 13.7-14.8 14.2-5.8-.6-5.9 4-1.6 7 9.6 6.6 16.6-4.8 19.9-11.6 2.3-6.2 5.9-3.3 6.3 1.8 0 6.9-3 12.4-11.3 19.4 6.3 10.1 13.7 20.4 20 30.5l19.2-214L320 139c-2-1.8-8.8-9.8-10.5-11-.7-.6-1-1-.1-1.4.9-.4 3-.8 4.5-1-4-4.1-7.6-5.4-15.3-7.6 1.9-.8 3.7-.4 9.3-.6a30.2 30.2 0 00-13.5-10.2c4.2-3 5-3.2 9.2-6.7a86.3 86.3 0 01-19.5-3.8 37.4 37.4 0 00-12-3.4zm.8 8.4c3.8 0 6.1 1.3 6.1 2.9 0 1.6-2.3 2.9-6.1 2.9s-6.2-1.5-6.2-3c0-1.6 2.4-2.8 6.2-2.8z"/>
+  <use width="100%" height="100%" transform="matrix(-1 0 0 1 640 0)" xlink:href="#a"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/am.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/am.svg
new file mode 100644
index 0000000..0cd2178
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/am.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-am" viewBox="0 0 640 480">
+  <path fill="red" d="M0 0h640v160H0z"/>
+  <path fill="#00f" d="M0 160h640v160H0z"/>
+  <path fill="orange" d="M0 320h640v160H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ao.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ao.svg
new file mode 100644
index 0000000..a0b6dbb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ao.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ao" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="red" d="M0 0h640v243.6H0z"/>
+    <path d="M0 236.4h640V480H0z"/>
+  </g>
+  <path fill="#ffec00" fill-rule="evenodd" d="M228.7 148.2c165.2 43.3 59 255.6-71.3 167.2l-8.8 13.6c76.7 54.6 152.6 10.6 174-46.4 22.2-58.8-7.6-141.5-92.6-150l-1.3 15.6z"/>
+  <path fill="#ffec00" fill-rule="evenodd" d="M170 330.8l21.7 10.1-10.2 21.8-21.7-10.2zm149-99.5h24v24h-24zm-11.7-38.9l22.3-8.6 8.7 22.3-22.3 8.7zm-26-29.1l17.1-16.9 16.9 17-17 16.9zm-26.2-39.8l22.4 8.4-8.5 22.4-22.4-8.4zM316 270l22.3 8.9-9 22.2-22.2-8.9zm-69.9 70l22-9.3 9.5 22-22 9.4zm-39.5 2.8h24v24h-24zm41.3-116l-20.3-15-20.3 14.6 8-23-20.3-15h24.5l8.5-22.6 7.8 22.7 24.7-.3-19.6 15.3 7 23.4z"/>
+  <path fill="#fe0" fill-rule="evenodd" d="M336 346.4c-1.2.4-6.2 12.4-9.7 18.2l3.7 1c13.6 4.8 20.4 9.2 26.2 17.5a7.9 7.9 0 0010.2.7s2.8-1 6.4-5c3-4.5 2.2-8-1.4-11.1-11-8-22.9-14-35.4-21.3z"/>
+  <path fill-rule="evenodd" d="M365.3 372.8a4.3 4.3 0 11-8.7 0 4.3 4.3 0 018.6 0zm-21.4-13.6a4.3 4.3 0 11-8.7 0 4.3 4.3 0 018.7 0zm10.9 7a4.3 4.3 0 11-8.7 0 4.3 4.3 0 018.7 0z"/>
+  <path fill="#fe0" fill-rule="evenodd" d="M324.5 363.7c-42.6-24.3-87.3-50.5-130-74.8-18.7-11.7-19.6-33.4-7-49.9 1.2-2.3 2.8-1.8 3.4-.5 1.5 8 6 16.3 11.4 21.5A5288 5288 0 01334 345.6c-3.4 5.8-6 12.3-9.5 18z"/>
+  <path fill="#ffec00" fill-rule="evenodd" d="M297.2 305.5l17.8 16-16 17.8-17.8-16z"/>
+  <path fill="none" stroke="#000" stroke-width="3" d="M331.5 348.8l-125-75.5m109.6 58.1L274 304.1m18.2 42.7L249.3 322"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/aq.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/aq.svg
new file mode 100644
index 0000000..2000e3c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/aq.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-aq" viewBox="0 0 640 480">
+  <path fill="#072B5F" d="M0 0h640v480H0z"/>
+  <path fill="#FFF" d="M340.4 1a237.1 237.1 0 0197.4 29.9L455 .9h6.1l-18.8 32.7a241.2 241.2 0 0184.2 84.1L640 52.2v6.2l-110.8 64a239 239 0 0130.8 115h80v5.3h-80v1.3a239 239 0 01-30.8 113.7l110.8 64v6.2l-113.5-65.5a241.2 241.2 0 01-84.2 84.1l18.8 32.6H455l-17.2-29.9a238.4 238.4 0 01-96.4 29.9h-42.6c-34.8-3-67.4-13.6-96.4-29.9l-17.2 29.9H179l18.8-32.6a241.2 241.2 0 01-84.2-84.1L.1 427.9v-6.2l110.8-64a238.8 238.8 0 01-30.7-115H0v-5.3h80V236c1-41.2 12-80 31-113.6L.1 58.4v-6.2l113.5 65.5a241.2 241.2 0 0184.2-84.1L179 .9h6.2l17.2 30c29.2-16.5 62.2-27 97.4-30h40.6zM238.6 386.5l-33.5 58a233.5 233.5 0 00112.3 30v-66.9c-28.6-.4-55.4-8-78.8-21zm167 6.9l-6.1 3.5-6.4-2-11.6 2-1-.5c-18 7-37.4 11-57.7 11.2v67h1.2c40.3-.7 78.2-11.6 111.1-30.1l-29.5-51.1zm83.3-53l-9.8.9 2.6 5.9-5.3 5.3-8.6 1.6-2.6 4.7 6.4 3.2-12.2 11.2 3.6 5.9-9.4-2.1-10.7 6.4-14.3 6.8-3.2 4.8-2.2-1.8 2.2-4.6-9.5 3.5-2.1-3.5-3.6 2 29.5 51.2c33.9-20 62.2-48.4 82.3-82.2l-33.1-19.1zm-312.7-14.3l-58 33.5a236.4 236.4 0 0082.3 82.2l33.4-58a168.6 168.6 0 01-57.7-57.7zm119.6 6.4l-1.6 2.7-7.5.5h-2l-3.1 5.4-9-6.4-5 1.6.8 4.3-2.5-1.4-24.7 42.7c22.7 12.6 48.6 20 76.2 20.4v-64.8l-.3-.1-21.3-4.9zm52.1 4.9l-3.9 1.7 1.8 5.2h-13.4l-9.6-4.2v62.2a162 162 0 0051-9l-3.2-1.9-12.7 3.2-11.2-7.1v2.8L344 387l3.2-3.2-.5-9.7h3.7l2.2-6.2 2.7-1.3-2.2-3.2 3.2-1-.5-4.9-3.2-1.4 4.3-.5-2.7-11.6-6.3-6.4zM206 309l-25.2 14.5c13.8 22.9 33 42 55.8 55.8l24.6-42.6-4.6-2.5-.5 4.3-11.6-5.3-.6.5-5.9 2.1-1-4.2-13.8-6.8-14.8-4.8-2.4-11zm304.8-66.3l1.1 3.4-1.6 7.5 3.2 4.3 8.4 1.6-8.4 11.6 1.6 2 2.2 2.3-3.8 5.7 3.6 2.1-18.6 15.4 4.3 10.7-1 6.2-6.5 2.1-1.6 5.4-7.1 3.2-2 5.7 40 23.1a233.5 233.5 0 0030.1-112.3h-43.9zm-425.3 0v1.2c.7 40.4 11.5 78.2 30 111.1l58-33.4a166.9 166.9 0 01-21-78.9h-67zm72.3 0a161 161 0 0020.4 76.2l26.7-15.4-5-8.9 2.6-12.8-4.8-1.6-1.6-5.4 8-.9h-3.5l.3-8-11.6 3.6-.5-3-1.6 5.8-6.2 2.5-4.5-4-1.4-4.4-1.8-8.3 3.7-2.7 1.6 2 1.1-2.5-1.7-12.2h-20.2zm41.3 38.4l-1.6 3.5-5.1 1.1 3.2-4.3 3.5-.3zm-26-84.8l-3.7 5.2-1.1-3.6-4.8 1.5-.7.3c-3 12-4.8 24.7-5 37.7h19.5l-.3-1.6 4.3.9 2.3-19.9.6-.7 4.2-2.5-5.3.6-2-4.8 9.5-10.7-8.6-1.5-6.4 6.3-2.5-7.2zM524.6 125l-43.8 25.4 10.4 26.3-5.9 5.4-.3 6.2-3.9 4.7.7 2.3 3.7 2.5-2.1 1.7 4.6 4.7 7.3 1.2 2.3 3 2 4.3 5.3 2.2 6.5-4.3 4.2.5-5.3 7.5 5.3 13.8-6 5h45v-1.2a233.4 233.4 0 00-30-111.2zm-409 0a233.5 233.5 0 00-30 112.4h66.8v-.1c.3-17.2 3.2-33.8 8.3-49.4l-1.5.4-.4-5.3h3.6c.5-1.5 1-3 1.7-4.5l-5-8.4-3 1-2-3.5-1.2 3.2-3.2-2.3 3.2-2-4.8-1.7 1.1-2.5-3.8-2.2-1-8.4-3.8-1.2 2.4-1.4-4.3-10.7-23.1-13.4zm91.4 53l4.7 5.6 2.7-1.3-7.4-4.3zm-39 5h.7l-.2-1.2-.5 1.3zm68.5-82.1a164.3 164.3 0 00-55.8 55.7l40.7 23.5 30-6.9 1.2-6.4 2.5 1.3-.6-2.2 1.8-1 7.3-2.7v-7.3l2.5-2.8-29.6-51.2zm-85 74.1v.2-.2zm-5.3-7.1l6 3.6-.7 3.5-5.3-7.1zm54.2-129.6a235.8 235.8 0 00-82.2 82.2l21 12.1 1.3-9.5h3.2l-.5 4v.2h-.2l.1.7-.2 2 5.6 8 21 12.2.5-.7 1.4 1.8 4.7 2.7a168 168 0 0157.7-57.8l-33.4-58zm-61.8 107.6v.8l-1.5 4-1.7-4.8h3.2zm301-107.6L407 94.9l2.3-.8.7 4.3 3.4 2.2 2.5-4.4h3l1.9 9.7 7.2 5.7 2.2-1 5.9-2.2 16.4 5.7 3-1 1.3 5.8 4.3.7-1.1-2.8h3.5l1.1 5.9 4.3-4.7 10.2 6.3 2.6 11.6-4.2 1.2 1 8.4 43.5-25a235.8 235.8 0 00-82.3-82.3zm-302.5 103l1.6 3.8-3.2-2.2 1.6-1.6zm179-63.5h.8c-27.5.5-53.3 7.9-75.8 20.4l27 46.6 1.2-5-1.6-4.7 7.5-17.9v-11.4h3.6l4.5-6.4 5.3-1.6.5-6 7.2-8.8 3.4 1.7 14.8-5.3 1.5-1.6zM146.8 126v4h-.2v.4l-3.2-.3-.3-2 .1-.8v-.3l3.6-1zm-1.3-9.9l-2.1 4.9-1-2.2v-.3l3.1-2.4zm234-27l7 6 7.6.6c-4.7-2.5-9.6-4.7-14.5-6.6zM322.9 5.5v66.9c14.4.2 28.3 2.2 41.5 5.8l1.3-.7v1.1c12.7 3.6 24.8 8.6 36 14.9l33.5-58a233.5 233.5 0 00-112.3-30zm-2.7 0a234 234 0 00-115 30l33.5 58c23.4-13 50.2-20.7 78.8-21.1v-67h2.7zm26.2 74.3l11.3 2.5.2-.2c-3.8-1-7.6-1.7-11.5-2.3zm-22.2-2l15.5 3.6 2.3-2.3c-6-.7-12-1.1-18-1.4z"/>
+  <path fill="#072B5F" d="M321.5 69.1l1.6 8.4 1 .2h-1.3v71.4c14.6.4 28.4 4.3 40.5 10.8L399 98.1a162 162 0 00-4.8-2.5l2 .1 6 .9 4.8-1.7-.7 1.2 3.7 2.3v.5l3.2 2 .2-.3 7.4 5.3.5 2.5 2.5.5-.6 4.3-.3.5h.9l4.2-2a167.6 167.6 0 0136 42.2l14.5-8.4v.5l1.6 2.7.7 1.7-14.1 8.1c6 10.8 10.9 22.4 14.4 34.5l-1 1.2 1.7 1a168 168 0 016 42.2h21.8l-.4.3 1.6 5h-23v.1c-.5 28.6-8 55.4-21.1 78.8l18 10.3-.5 1-1.6 3.7 7.5 3.9H489l-25-14.2a168.6 168.6 0 01-57.7 57.7l4 6.8-4.7 2.8-4-6.9a167 167 0 01-21.1 10l-2.2-1.2-1.1-.4-2-1.2h-.1l1.8 1-2-.8-1.2-.7a155 155 0 0025.3-11.3l-35.7-61.8a90.5 90.5 0 01-40.5 10.8v9.2l-1.4-.6-4-2V331a90.5 90.5 0 01-40.5-10.8l-11 19.1-4.7-2.6 11.1-19.2a91.5 91.5 0 01-29.6-29.7L206 309l-.2-1.2V305l-1-1.5 35.2-20.3a90.5 90.5 0 01-10.8-40.5H178l-.7-5.3h51.9a90.5 90.5 0 0110.8-40.5l-25.5-14.7 2-1 5-1.2 21.2 12.2a91.5 91.5 0 0129.6-29.6l-6.1-10.6 2-7.3 8.7 15.2a90.5 90.5 0 0140.5-10.8V77.7h-1.3l.3-.2 3-3.2-1-5.2h3.1zM377 395h.3l1 .7-1.3-.7zm20.6-107a91.5 91.5 0 01-29.6 29.6l35.7 61.8c22.9-13.7 42-33 55.8-55.8l-61.9-35.7zm-74.8-38v75.6a86 86 0 0037.8-10L322.8 250zm-5.4 0l-37.8 65.5a84.8 84.8 0 0037.8 10.1V250zm165-7.3h-71.3a90.5 90.5 0 01-10.9 40.5l61.9 35.7a162.1 162.1 0 0020.3-76.2zm-155 4.7l37.8 65.4a86 86 0 0027.7-27.6l-65.5-37.8zm-14.6 0l-65.5 37.8a86 86 0 0027.7 27.6l37.8-65.4zm-2.7-4.7h-75.6c.4 13.7 4 26.5 10.1 37.8l65.5-37.8zm95.6 0h-75.6l65.5 37.8c6-11.3 9.7-24.1 10.1-37.8zm-10.1-43.1L330 237.4h75.6c-.4-13.7-4-26.5-10.1-37.8zm-151 0a85.2 85.2 0 00-10 37.8H310l-65.5-37.8zm217.5-38.4l-61.9 35.7a90.5 90.5 0 0110.9 40.5h71.3c-.4-27.7-7.8-53.6-20.3-76.2zm-187.1 6a86 86 0 00-27.7 27.7l65.5 37.8-37.8-65.5zm90.2 0l-37.8 65.5L393 195a86 86 0 00-27.7-27.7zm-47.8-12.8c-13.6.5-26.5 4-37.8 10.2l37.8 65.5v-75.7zm5.4 0V230l37.8-65.4a85.2 85.2 0 00-37.8-10.2zm-160 45.3l-2.4 1.3 2.5-9.7-2.1-1 1.2-2.7-1.3.3c.5-1.6 1-3.3 1.7-5h5.7c-2 5.5-3.8 11.1-5.3 16.8zm240.8-99l-35.7 62a91.5 91.5 0 0129.6 29.5l61.9-35.7c-13.8-22.8-33-42-55.8-55.7zm-264.3 31.8l9.3 5.4 2.2 3.1 5.7 7.5 11.8 3.2v.4l1.3-2 2 1 4.7 5.8 3.2 3.6 1.6 1.8 17.9 8.5 3.2 1.6 1 1 3.9 4.5-29-16.7c-3.6 6.5-6.8 13.4-9.5 20.5l-.3-1.4H165l-1-1.8a167 167 0 019.4-20l-34.8-20-.2-.7.5-3.6.3-1.7zm226.4-53.9l.3 3.7 6.4.7 5.3 4.1h-.5v.6h1l.6.5.9.8c-7-2.8-14.4-5.1-21.9-7l.3-.2 6.2-3.6 1.4.4zm-23.5.2l1.1.3 3 .7-3.2-.5-1-.4.6.3h-.8l.3-.4zm-24.6-1h-.2.2zm2.5-.1h-2.5 2.5z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ar.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ar.svg
new file mode 100644
index 0000000..4553b08
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ar.svg
@@ -0,0 +1,31 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-ar" viewBox="0 0 640 480">
+  <path fill="#74acdf" d="M0 0h640v480H0z"/>
+  <path fill="#fff" d="M0 160h640v160H0z"/>
+  <g id="c" transform="translate(-64) scale(.96)">
+    <path id="a" fill="#f6b40e" stroke="#85340a" stroke-width="1.1" d="M396.8 251.3l28.5 62s.5 1.2 1.3.9c.8-.4.3-1.5.3-1.5l-23.7-64m-.7 24.1c-.4 9.4 5.4 14.6 4.7 23-.8 8.5 3.8 13.2 5 16.5 1 3.3-1.3 5.2-.3 5.7s3-2.1 2.4-6.8c-.7-4.6-4.2-6-3.4-16.3.8-10.3-4.2-12.7-3-22"/>
+    <use width="100%" height="100%" transform="rotate(22.5 400 250)" xlink:href="#a"/>
+    <use width="100%" height="100%" transform="rotate(45 400 250)" xlink:href="#a"/>
+    <use width="100%" height="100%" transform="rotate(67.5 400 250)" xlink:href="#a"/>
+    <path id="b" fill="#85340a" d="M404.3 274.4c.5 9 5.6 13 4.6 21.3 2.2-6.5-3.1-11.6-2.8-21.2m-7.7-23.8l19.5 42.6-16.3-43.9"/>
+    <use width="100%" height="100%" transform="rotate(22.5 400 250)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(45 400 250)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(67.5 400 250)" xlink:href="#b"/>
+  </g>
+  <use width="100%" height="100%" transform="rotate(90 320 240)" xlink:href="#c"/>
+  <use width="100%" height="100%" transform="rotate(180 320 240)" xlink:href="#c"/>
+  <use width="100%" height="100%" transform="rotate(-90 320 240)" xlink:href="#c"/>
+  <circle cx="320" cy="240" r="26.7" fill="#f6b40e" stroke="#85340a" stroke-width="1.4"/>
+  <path id="h" fill="#843511" d="M329.1 234.3c-1.8 0-3.6.8-4.6 2.4 2 1.9 6.6 2 9.7-.2a7 7 0 00-5.1-2.2zm0 .4c1.7 0 3.4.8 3.6 1.6-2 2.3-5.3 2-7.4.4a4.3 4.3 0 013.8-2z"/>
+  <use width="100%" height="100%" transform="matrix(-1 0 0 1 640.2 0)" xlink:href="#d"/>
+  <use width="100%" height="100%" transform="matrix(-1 0 0 1 640.2 0)" xlink:href="#e"/>
+  <use width="100%" height="100%" transform="translate(18.1)" xlink:href="#f"/>
+  <use width="100%" height="100%" transform="matrix(-1 0 0 1 640.2 0)" xlink:href="#g"/>
+  <path fill="#85340a" d="M316 243.7a1.9 1.9 0 101.8 2.9 4 4 0 002.2.6h.2a3.9 3.9 0 002.3-.6 1.9 1.9 0 101.8-3c.5.3.8.7.8 1.3 0 .6-.5 1.2-1.2 1.2a1.2 1.2 0 01-1.2-1.2 3 3 0 01-2.6 1.7 3 3 0 01-2.5-1.7 1.2 1.2 0 01-1.3 1.2c-.6 0-1.2-.6-1.2-1.2s.3-1 .8-1.2zm2 5.5c-2.1 0-3 1.8-4.8 3 1-.4 1.9-1.2 3.3-2s2.7.2 3.5.2c.8 0 2-1 3.5-.2 1.4.8 2.3 1.6 3.3 2-1.9-1.2-2.7-3-4.8-3a5.5 5.5 0 00-2 .6 5.5 5.5 0 00-2-.7z"/>
+  <path fill="#85340a" d="M317.2 251.6c-.8 0-1.8.2-3.4.6 3.7-.8 4.5.5 6.2.5 1.6 0 2.4-1.3 6.1-.5-4-1.2-4.9-.4-6.1-.4-.8 0-1.4-.3-2.8-.2z"/>
+  <path fill="#85340a" d="M314 252.2h-.8c4.3.5 2.3 3 6.8 3s2.5-2.5 6.8-3c-4.5-.4-3.1 2.3-6.8 2.3-3.5 0-2.4-2.3-6-2.3zm9.7 6.7a3.7 3.7 0 00-7.4 0 3.8 3.8 0 017.4 0z"/>
+  <path id="e" fill="#85340a" d="M303.4 234.3c4.7-4.1 10.7-4.8 14-1.7a8 8 0 011.5 3.5c.4 2.3-.3 4.8-2.1 7.4l.8.4a14.6 14.6 0 001.6-9.4 13.3 13.3 0 00-.6-2.3c-4.5-3.7-10.7-4-15.2 2z"/>
+  <path id="d" fill="#85340a" d="M310.8 233c2.7 0 3.3.7 4.5 1.7 1.2 1 1.9.8 2 1 .3.2 0 .8-.3.6-.5-.2-1.3-.6-2.5-1.6s-2.5-1-3.7-1c-3.7 0-5.7 3-6.2 2.8-.3-.2 2.1-3.5 6.2-3.5z"/>
+  <use width="100%" height="100%" transform="translate(-18.4)" xlink:href="#h"/>
+  <circle id="f" cx="310.9" cy="236.3" r="1.9" fill="#85340a"/>
+  <path id="g" fill="#85340a" d="M305.9 237.5c3.5 2.7 7 2.5 9 1.3 2-1.3 2-1.7 1.6-1.7-.4 0-.8.4-2.4 1.3-1.7.8-4.1.8-8.2-.9z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/as.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/as.svg
new file mode 100644
index 0000000..81b0d9f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/as.svg
@@ -0,0 +1,33 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-as" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="as-a">
+      <path fill-opacity=".7" d="M0 0h640v480H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#as-a)">
+    <path fill="#006" d="M-374-16H650v512H-374z"/>
+    <path fill="#bd1021" fill-rule="evenodd" d="M-374 240L650 496V-16L-374 240z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M650 11.4v457.2L-264.3 240 650 11.4z"/>
+    <g stroke="#000">
+      <path fill="#9c3900" fill-rule="evenodd" stroke-linejoin="round" stroke-width="1.8" d="M478 297.4s-6.4-5.2 1.2-13.7c-4.1-3.4-.3-10.1-.3-10.1s-7-2.6.3-13.4c-5.3-3.5-3-11.3-3-11.3s-17-6.4-.8-12.5c-13.4 5.8-25.9-7.9-25.9-7.9l-19.4.6c-3.3-16.2-29-2.1-10-48.5-4.9-.9-10.4-2.3-16 1.7-5.4 4.1-21.1 12.8-30.4 4.1s6-21.2 6.4-21.5c.3-.3 20.6-10.8 23.5-17.7-.3-5.3-6.7-9.3-.9-20.7 6.7-10.7 47.7-20.9 66.3-24.4a29.5 29.5 0 0013-11.9l2.1 7.6s41.3-12.2 43.3-18 .9 5.2.9 5.2c16.2-1.5 36.9-15.4 39.8-9 13.6-2.6 39.8-14.3 39.8-14.3s9-.3 2.6 9.6c4 6.4-1.2 12-1.5 12-.2 0 1.8 6.3-3.4 9.8 1.7 5.5-3.2 10-3.2 10s2.3 6.6-7 10c.9 5.9-5.2 7-5.2 7s.8 6.1-3.2 8.8c0 4.6-4.7 7-4.7 7s3 1.7-1.2 4.6a1568 1568 0 01-46.2 28.5c0-.3 30.8 5.5 32.9 6.6s25.3 16.6 25.3 16.6l-23.6 29s-26.1-2.8-27.3-1.4 5.5 2 7 4.4c1.4 2.3 3.8 7.8 8.4 7.2 4.7-.5-8.7 8.5-17.4 9.3 0 3.2 11 3.5 14 1 2.8-2.7-7 7.5-8.2 9s13-2.1 13-2.1-2.3 9.6-14.7 12.5c4.9 8.1 2.9 13.3 2.6 13.3s-8.2-8-15.7-6.6c2 7.8 8.1 15 9.9 16.2 1.7 1.2-13.7 1-15.7-3.5s-3.8 10.5 1.7 15.2c-6.4.3-11.9-3.5-11.9-3.5s-3.8 8.7-1.2 13c2.6 4.4-9-8.7-9-8.7l-22 9.3-5-8.4z"/>
+      <path fill="#ffc221" fill-rule="evenodd" stroke-width="1.9" d="M307.3 280.1c.5 0 32.1-.5 46.6-8.8a86.3 86.3 0 0017 19.1l4.7-16.5s11.4.5 12.4 3c-1.5 3.2-2 7.3-2 7.3s7.7.6 8.3 1.6c.5 1-2.1 9.8-2.1 9.8l33.1 7.8s2.6-13 5.2-11.4c2.6 1.6 14 17.6 30 18.6s17-13.4 17-13.4l3.7 2s6.7-14.4 7.8-14.4 2.5 2 11.3 2c2.6 3.1 3.7 10.4 3.7 10.4s-9.9 9.8-6.8 17.6 3.7 5.7 3.7 5.7l71.4 17s3.6 5.7-2.6 8.8c0 .5-72-16.5-72-16.5s-6.7 7.7-11.9 6.2-1.5 3-1.5 3l77.6 6.3s5.7 7.2 1.6 9.3c-5.2.5-83.9-5.2-83.9-5.2s-4.6 9.9-9.8 1.6c-3.6 5.7-7.8-1.6-7.8-1.6s-6.7 5.2-7.7-.5c-5.7 4.2-9.3-2.6-9.3-2.6l-33.2-2-2 3s5.7 1.6-3.1 5.2c-8.8 3.7 52.8 2.1 54.3 2.6 1.6.6-4.1 5.2-4.1 5.2s31.5 2 37.2-4.6c5.7-6.8-2 8.8-2 8.8s24.8-1 24.8-2.1-.5 7.7-17.6 6.7a112 112 0 0023.3 10.9s-13 3-28-.5c2.6 6.7 14 12.9 14 12.9s-8.3 7.2-26.9-10.4c5.2 9.4 1 13 .5 12a48 48 0 00-30-18.7c13 8.3 7.3 12 7.3 12s-6.8-12-17.6 0c-4.2-11-20.2-17.2-39.9-18.2-6.2-7.2-9.8-5.2-24.3-9.3-8.3-9.3-20.2-19.7-20.2-19.7s.5-14 14.5-12.4c1.6 4.7 1.6 3.1 1.6 3.1s15.5-5.7 20.1 2c6.8-11.8 16-1.7 17.6 2.4 4.5.7 27 1.3 27 1.3s-2.7-4.7-1-4.1c1.5.5 13.9-4.7 13.4-6.2-.6-1.6-1-6.8 1-6.3 2 .6-17.6-2.5-28.5 5.7-3.6-3.6-1-13.4-1-13.4l-32-6.7-1.6 8.2s-9.4 1.6-8.8-.5l-2.1 7.3s-12.4-3.1-12.4-3.7 3.6-18.6 3.6-18c0 .4-10.4 1-24.8 11.8-4.2-13-36.8-30-36.8-30.5z"/>
+      <path fill="none" stroke-width="1.9" d="M386 284.8l-6.7 30m12.9-18.7l-2 9.9m35.1-2l-3 9.2m60.4 53.8c-.5 0-16.5 2.1-18.6 1.6-2-.5 25.4 8.3 25.4 11.9m-35.7-9.8s-16-10.4-18.7-9.4c-2.5 1 16-.5 17.6-2m-32-.5s-16.6.5-18.2-1 16 11.3 19.2 10.3m-33.1-16.6c-.5 0-11.4-4.1-16-5.2 4 4.2 7.2 9.9 17.5 12m2.6-13.5c-.5-1-20.7-7.3-20.7-10.4a32.6 32.6 0 0017.6 2.1M499.8 321l-2 9.3"/>
+      <path fill="#ffc221" fill-rule="evenodd" stroke-width="1.9" d="M347.7 237.7s-21.7 18.6 0 29.5c1-7.3 2.6-8.3 2.6-8.3s18 6.7 29-9.3c-4.7-6.8-13-4.2-13-4.2s-17 0-18.6-7.7z"/>
+      <path fill="none" stroke-width="1.9" d="M365.8 246l-15 12.9m61.2 76.9s3.5 3.8.4 8.5m72.4-4.7l-5.7.5m-40.9-3.6l10.4 1.6m17.5-28.2s.3 10.5-8.4 10.2c-8.8-.3-5.9.3-5.9.3"/>
+      <path fill="none" stroke-width="1.9" d="M472.8 308.1s3.5 1.2 2.6 3.8c-.9 2.6.9 10.2-9.3 17.5-10.8 2.3-9.6-9-9.6-9"/>
+      <path fill="none" stroke-width="1.9" d="M476.6 311.4s6.3-3.8 7.2 2.3c.9 6-5.2 17.4-9.6 19.2-4.3 1.7-9.3-.3-8.7-3.2m18.9-15.7s5.8-4.7 7.6 1.4c1.7 6.1-4.7 19.8-7.3 20m7.8-20s3-1.4 5 .3m-14.3 20.6c-1.1.3-6 .6-7.8-3.2m-18.3-7l-6.1.4m28.4 22.6l-.5-9.6-2.4-3.2-4 4.1s-.6 9.6-2.4 10.5m2.4-10.8l-3.2-6-5 6s-.5 8.7-2.3 9.6m2.3-9.9l-2-5.8s-5.8 3.2-6.4 5.5c-.6 2.4-.9 8.7-2.3 9.3m2.3-10.4s.6-5.3-1.2-5.3c-1.7 0-9.5 7.3-9.8 13.7"/>
+      <path fill="#fff" fill-rule="evenodd" stroke-linejoin="round" stroke-width="1.9" d="M348.4 237.8s2.9-2.9 3.8-6.4c.8-3.4-1.2-7.2 2.3-10.4s49.4-22.7 53.2-26.5a115 115 0 0011.6-13.6c.9-1.8 3.5 8.7-4.4 13.3 8.5-2.3 14-4.9 17.5-3.7-3.5 4.9-12.8 13-17.2 13 10.2-3.7 19.5-7 22.1-4.9 2.6 2-12.5 12.2-18.6 12.8 10.2-2.6 23.8-6.7 25.6-2.3-5.5 1.7-3.8 3.2-15.1 9.6a28.5 28.5 0 01-8.7 1.4c8.7-.9 20.6-4.4 21.8 2-7 2.7-9.6 6.1-15.4 7.6-5.9 1.4-19.2 4-27.4 7.3-8 3.2-20 12.5-20 12.5s-25.9.8-25.9.5c0-.3-5-11.9-5.2-12.2z"/>
+      <path fill="none" stroke-width="1.9" d="M360.6 235.8s.3-5.8 3-7.8c2.5-2 15.6-7 18.5-11.4 3-4.3-4.3 7.6-3.2 10.8m-13-.3s6.3 2.3 4.9 7.2"/>
+      <path fill="none" stroke-width="1.6" d="M373.4 230.4a4.8 4.8 0 11-9.6 0 4.8 4.8 0 019.6 0z"/>
+      <path fill="#fff" fill-rule="evenodd" stroke-width="1.9" d="M570.1 220.1l50.3 9.6s5.5-6.4 2.6-9.9c7.6-1.7 5.5-11.6 5.5-11.6s8.7-3.8 1.5-12.5c5-5-1.2-8.7-1.2-8.7s2-8.7-4.3-9.6c1.7-7-11-9.3-11-9.3s-26.5 7.3-45.1 7.8c6 6.1-2.3 10-2.3 10s4.9 3.4 3.4 6.3c-1.4 3 1 6.1-5.5 8.2 8.4 3.7-.9 10.1-.9 10.1s9.3 6.4 7 9.6z"/>
+      <path fill="none" stroke-width="1.9" d="M565.2 209.4s44.4 5.2 46.5 5.2 9.8 2.6 11.3 5.2m-55.5-13l61.9 1.4m-61.6-3s58.7-3.4 62.8-9.5m-61-3.2s59-6.4 59.5-5.5m-61.6-1.8s57.2-9 57.8-7.5m-221.1-29.4s18 19.8 16.3 33.2"/>
+      <path fill="none" stroke-width="1.9" d="M419.3 171s5.8 8.4 8.1 9.3 22.7 2 23.9 10.8c1.1 5.5-4.4 3.7-3.5 7.8 1.4 5.2 15 12 30 4M464 207s12.2 18 30.2-1.4m-9.3 7.8s14.8 7.9 27-12.5m-15.7 14.3s7.3 6 22.4-2m20.9-8.2s22.4 4.6 23.8 6M548 200l15.7.6m-25.3-9.3s26.8-1.7 30.3 3.8M526.8 183s37.5 1.5 39.2 3.5m-30.8 34.9s6.4-1.8 7.3-1M520.7 237s8.4 7.2 19.2 4m-14.5 8.2s9.6 4.3 20.9 1.7m-17.7 5.5s9.6 6.4 16 5.3m-20.4-1.5s6.7 5 7 7.6m-16.3-1.8s2 10.5 9.3 14.3m-14.2-9.6s-3.2 13.6 4.9 22m-13.4-11.3c0 .3-.5 6.4-.2 7m-52-59.9l15.6-.8s5.8-2.4 1.8-6.1m2 3.5c.3 0 14.8 1.1 18.6 5.5 3.8 4.3 8.4 13 11 14.5 2.7 1.5 3.2-.6 3.2-.6m-6.4-2.3s-7.8 13.4-1.7 17.4m-2.6-2.6s-7 9.3-1.5 14m-1.4-1.2s-5.5 9 1.1 15.1m-3.6-39c-.3.4-6.7 4.9-9 3.8m2.3 10.4s2.6 2.7 4.9 2.3m-4.6 11.4l4.2 2.8m-3.6 7.6l3.6 2.2m-69.3-144.7s7.7 4 13.8 0c6.1-4 35.4-19 43-21.4 7.7-2.4 12-16.5 13.5-22.6m-5.8 16.5l42.8-12.5s7-5.8 7.3-16.5m-3 11.6s42.7-4.3 42.7-20.2m-6.7 11s45-12.2 49.2-16.8"/>
+      <path fill="none" stroke-width="1.9" d="M436.2 151.5s27.2-14 31.5-15.6c4.3-1.5 14-13.8-.6-13.8"/>
+      <path fill="none" stroke-width="1.9" d="M449.4 157c.3 0 22.3-14.4 29.6-16.2 4-5.5 1.8-11.3-4.9-10.1"/>
+      <path fill="none" stroke-width="1.9" d="M480.9 137.1c.6-.3 11.9-.6 7.9 8.3-5.8 4.2-30.9 16.8-30.9 16.8m17.1-34.5l47.7-16s4-8.2-1.8-9.4m39.7-14.4c0 .3 6.1 3.7 2.4 9.2-6.7 4-38.4 11.6-38.4 11.6M608.9 83l-45 12.6m41.6-2.5l-39 12m35.7-2.2l-34.6 10.4m28.1-.6c-.9 0-25.6 7.6-25.6 7.6m20.2 0l-16 6.4m12 2.2a321 321 0 00-13.8 5.8m9.8 1.2l-12.2 5.8m-8.9 7.3s1.5.6 1.2 2.5m-32 14.3s5.1 1.9.3 6.8c-2.5 3.3-9.5 2.4-13.8 8.5m46.8-83.7s6.4 1.5 1.5 9.8c-12.8 4.9-38.8 12.8-38.8 12.8s-1.2 2.2-4.6 4a758.6 758.6 0 01-40.3 12.2m84.3-29.3s7 3 0 8.2c-8 4.6-35.7 13.2-35.7 13.2s-.4 2.4-1.6 3.3c-1.2 1-37.9 13.2-37.9 13.2"/>
+      <path fill="none" stroke-width="1.9" d="M567.6 115.1s7.4 2.2 1 8.3a289 289 0 01-32.1 12.8s-2.5 3-6.5 4.3a919 919 0 00-29.3 11.6m68.8-28.7c2.1.9 8 1.8.9 7.3-8.3 3.7-28.4 11.6-28.4 11.6l-1.9 3.4-32 13.7m63.2-27.8s3 3.7-3.7 8c-7.3 4-23.2 10-23.2 10m23.2-9.4s3.4 2.1-.9 5.2c-4.9 2.4-24.1 12.5-24.1 12.5l-12.5 8.3"/>
+      <path fill="none" stroke-width="1.9" d="M523.6 112c0 .4 5.2 4.6 3.4 9.5 4.6 3.4 3.7 7 3.7 7s6.4 3.7 5.5 9c6.4 1.5 6 5.1 6 5.1l-2 3.4s6.3-.3.8 8c3.4 1.8 1.9 3.9 1.9 3.9m-1.9-3.7c-.9 0-22.3 8-27.8 12.9"/>
+      <path fill="none" stroke-width="1.9" d="M489.4 144.8s6.4-.3 5.5 6.7c7.4-2.5 5.8 4.6 5.8 4.6s8.6-3.4 7 7.3c5.6-1.2 4.6 4.3 4.6 4.3s5-.3 5 2.4c3.3-3 7-1.5 7-1.5s2.4-3.4 5.8-2.4m-34.9-15c0 .6-28.7 16.5-28.7 16.5m34.2-11.3L479 169.8m29-6.7c0 .3-18.9 11.3-18.9 11.3m23.2-7s-13.4 11-16.5 10.4m21.1-7s-7.6 5.7-14 8.5m22-11s2.4 3-12.9 11"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/at.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/at.svg
new file mode 100644
index 0000000..e63fb2e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/at.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-at" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="#fff" d="M640 480H0V0h640z"/>
+    <path fill="#ed2939" d="M640 480H0V320h640zm0-319.9H0V.1h640z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/au.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/au.svg
new file mode 100644
index 0000000..18394ab
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/au.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-au" viewBox="0 0 640 480">
+  <path id="path617" fill="#006" stroke-width="1.3" d="M0 0h640v480H0z"/>
+  <path id="path625" fill="#fff" fill-rule="evenodd" stroke-width="1.3" d="M299.8 392.5l-43.7 3.8 6 43.4L232 408l-30.1 31.7 6-43.4-43.7-3.8 37.7-22.3-24.3-36.5 41 15.5 13.4-41.7 13.5 41.7 41-15.5-24.3 36.5m224.4 62.3L476 416.7l17.8 6.7 5.8-18.1 5.8 18.1 17.8-6.7-10.5 15.8 16.4 9.7-19 1.7 2.6 18.9-13-13.9-13.2 13.9 2.6-18.9-19-1.6m16.4-291.9L476 134.6l17.8 6.7 5.8-18.1 5.8 18.1 17.8-6.7-10.5 15.8 16.4 9.8-19 1.6 2.6 18.9-13-13.8-13.2 13.7 2.6-18.8-19-1.6M380.8 265l-10.5-15.8 17.8 6.7 5.8-18.1 5.9 18.1 17.8-6.7L407 265l16.4 9.7-19 1.7 2.7 18.9-13.2-13.9-13 13.9 2.5-18.9-19-1.6m216.3-38L570 221l17.8 6.7 5.8-18.1 5.9 18.1 17.8-6.7-10.5 15.8 16.3 9.7-19 1.7 2.6 18.8-13-13.8-13.2 13.8 2.6-18.8-19-1.7M542 320l-10.3 6.5 2.9-11.9-9.3-7.8 12.1-1 4.6-11.2 4.7 11.3 12.1.9-9.3 7.8 2.9 11.9"/>
+  <path id="path969" fill="#006" stroke-width=".5" d="M0 0h320v240H0z"/>
+  <path id="path971" fill="#fff" stroke-width=".5" d="M37.5 0l122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z"/>
+  <path id="path973" fill="#c8102e" stroke-width=".5" d="M212 140.5L320 220v20l-135.5-99.5zm-92 10l3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z"/>
+  <path id="path975" fill="#fff" stroke-width=".5" d="M120.5 0v240h80V0zM0 80v80h320V80z"/>
+  <path id="path977" fill="#c8102e" stroke-width=".5" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/aw.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/aw.svg
new file mode 100644
index 0000000..66adb11
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/aw.svg
@@ -0,0 +1,186 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-aw" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="aw-a">
+      <path fill-opacity=".7" d="M0 0h288v216H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#aw-a)" transform="scale(2.2222)">
+    <path fill="#39c" d="M0 0v216h324V0H0z"/>
+    <path fill="#ff0" d="M0 144v12h324v-12H0zm0 24v12h324v-12H0z"/>
+  </g>
+  <path fill="#9cc" d="M142.7 28l2.9 3-3-3zm-3 6l3 3-3-3m5.9 0l3 3-3-3z"/>
+  <path fill="#ccf" d="M139.7 37l3 2.9-3-3m5.9 0l3 3-3-3z"/>
+  <path fill="#6cc" d="M136.7 42.8l3 3-3-3z"/>
+  <path fill="#c66" d="M142.7 42.8l2.9 3-3-3z"/>
+  <path fill="#6cc" d="M148.6 42.8l2.9 3-3-3z"/>
+  <path fill="#ccf" d="M136.7 45.8l3 3-3-3zm11.9 0l2.9 3-3-3z"/>
+  <path fill="#fcc" d="M139.7 48.7l3 3-3-3m5.9 0l3 3-3-3z"/>
+  <path fill="#6cc" d="M133.8 51.7l3 3-3-3z"/>
+  <path fill="#c00" stroke="#fff" stroke-width="3.7" d="M142.2 34l-20.7 78.5L42.8 134l78.4 20.5 21 78.4 20.9-78.4 78.4-21-78.4-20.9-21-78.4z"/>
+  <path fill="#6cc" d="M151.5 51.7l3 3-3-3z"/>
+  <path fill="#9cf" d="M133.8 54.6l3 3-3-3m17.7 0l3 3-3-3z"/>
+  <path fill="#fcc" d="M136.7 57.6l3 3-3-3m11.9 0l2.9 3-3-3z"/>
+  <path fill="#69c" d="M130.8 60.5l3 3-3-3z"/>
+  <path fill="#c33" d="M137.7 62.5l1 2-1-2m11.8 0l1 2-1-2z"/>
+  <path fill="#69c" d="M154.5 60.5l3 3-3-3z"/>
+  <path fill="#9cf" d="M130.8 63.5l3 3-3-3m23.7 0l3 3-3-3z"/>
+  <path fill="#fcc" d="M133.8 66.4l3 3-3-3m17.7 0l3 3-3-3z"/>
+  <path fill="#69c" d="M127.9 69.4l3 3-3-3zm29.5 0l3 3-3-3z"/>
+  <path fill="#9cc" d="M127.9 72.3l3 3-3-3m29.5 0l3 3-3-3z"/>
+  <path fill="#cff" d="M127.9 75.3l3 3-3-3m29.5 0l3 3-3-3z"/>
+  <path fill="#69c" d="M125 78.3l2.9 2.9-3-3z"/>
+  <path fill="#fcc" d="M130.8 78.3l3 2.9-3-3m23.7 0l3 3-3-3z"/>
+  <path fill="#69c" d="M160.4 78.3l3 2.9-3-3z"/>
+  <path fill="#9cc" d="M125 81.2l2.9 3-3-3z"/>
+  <path fill="#c33" d="M131.8 83.2l1 2-1-2m23.6 0l1 2-1-2z"/>
+  <path fill="#9cc" d="M160.4 81.2l3 3-3-3z"/>
+  <path fill="#cff" d="M125 84.2l2.9 3-3-3m35.5 0l3 3-3-3z"/>
+  <path fill="#fcc" d="M127.9 87.1l3 3-3-3m29.5 0l3 3-3-3z"/>
+  <path fill="#9cc" d="M122 90l3 3-3-3z"/>
+  <path fill="#c33" d="M128.9 92l1 2-1-2m29.5 0l1 2-1-2z"/>
+  <path fill="#9cc" d="M163.3 90l3 3-3-3z"/>
+  <path fill="#ccf" d="M122 93l3 3-3-3m41.3 0l3 3-3-3z"/>
+  <path fill="#fcc" d="M125 96l2.9 3-3-3m35.5 0l3 3-3-3z"/>
+  <path fill="#9cc" d="M119 99l3 2.9-3-3z"/>
+  <path fill="#c33" d="M126 100.9l.9 2-1-2m35.4 0l1 2-1-2z"/>
+  <path fill="#9cc" d="M166.3 99l3 2.9-3-3z"/>
+  <path fill="#ccf" d="M119 101.9l3 3-3-3m47.3 0l3 3-3-3z"/>
+  <path fill="#fcc" d="M122 104.8l3 3-3-3m41.3 0l3 3-3-3z"/>
+  <path fill="#9cc" d="M116 107.8l3 3-3-3z"/>
+  <path fill="#c33" d="M122 107.8l3 3-3-3m41.3 0l3 3-3-3z"/>
+  <path fill="#9cc" d="M169.2 107.8l3 3-3-3m-62 3l3 2.9-3-3z"/>
+  <path fill="#ccf" d="M110.2 110.7l3 3-3-3m65 0l2.9 3-3-3z"/>
+  <path fill="#9cc" d="M178 110.7l3 3-3-3m-79.6 3l3 3-3-3z"/>
+  <path fill="#ccf" d="M101.3 113.7l3 3-3-3z"/>
+  <path fill="#fcc" d="M113.1 113.7l3 3-3-3z"/>
+  <path fill="#c33" d="M116 113.7l3 3-3-3m53.2 0l3 3-3-3z"/>
+  <path fill="#fcc" d="M172.2 113.7l3 3-3-3z"/>
+  <path fill="#ccf" d="M184 113.7l3 3-3-3z"/>
+  <path fill="#9cc" d="M187 113.7l2.9 3-3-3z"/>
+  <path fill="#69c" d="M86.6 116.6l3 3-3-3z"/>
+  <path fill="#9cc" d="M89.5 116.6l3 3-3-3z"/>
+  <path fill="#cff" d="M92.5 116.6l3 3-3-3z"/>
+  <path fill="#fcc" d="M104.3 116.6l3 3-3-3z"/>
+  <path fill="#c33" d="M109.2 117.6l2 1-2-1m67.9 0l2 1-2-1z"/>
+  <path fill="#fcc" d="M181 116.6l3 3-3-3z"/>
+  <path fill="#cff" d="M192.8 116.6l3 3-3-3z"/>
+  <path fill="#9cc" d="M195.8 116.6l3 3-3-3z"/>
+  <path fill="#69c" d="M198.7 116.6l3 3-3-3m-121 3l3 3-3-3z"/>
+  <path fill="#9cc" d="M80.7 119.6l3 3-3-3z"/>
+  <path fill="#cff" d="M83.6 119.6l3 3-3-3z"/>
+  <path fill="#fcc" d="M95.4 119.6l3 3-3-3z"/>
+  <path fill="#c33" d="M100.3 120.6l2 1-2-1m85.6 0l2 1-2-1z"/>
+  <path fill="#fcc" d="M189.9 119.6l3 3-3-3z"/>
+  <path fill="#cff" d="M201.7 119.6l3 3-3-3z"/>
+  <path fill="#9cc" d="M204.6 119.6l3 3-3-3z"/>
+  <path fill="#69c" d="M207.6 119.6l3 3-3-3m-138.8 3l3 2.9-3-3z"/>
+  <path fill="#9cf" d="M71.8 122.5l3 3-3-3z"/>
+  <path fill="#fcc" d="M86.6 122.5l3 3-3-3z"/>
+  <path fill="#c33" d="M91.5 123.5l2 1-2-1m103.3 0l2 1-2-1z"/>
+  <path fill="#fcc" d="M198.7 122.5l3 3-3-3z"/>
+  <path fill="#9cf" d="M213.5 122.5l3 3-3-3z"/>
+  <path fill="#69c" d="M216.4 122.5l3 3-3-3z"/>
+  <path fill="#6cc" d="M60 125.5l3 3-3-3z"/>
+  <path fill="#9cf" d="M63 125.5l2.9 3-3-3z"/>
+  <path fill="#fcc" d="M74.8 125.5l2.9 3-3-3zm135.8 0l2.9 3-3-3z"/>
+  <path fill="#9cf" d="M222.3 125.5l3 3-3-3z"/>
+  <path fill="#6cc" d="M225.3 125.5l3 3-3-3m-174.2 3l3 2.9-3-3z"/>
+  <path fill="#ccf" d="M54 128.4l3 3-3-3z"/>
+  <path fill="#fcc" d="M65.9 128.4l3 3-3-3z"/>
+  <path fill="#c33" d="M70.8 129.4l2 1-2-1m144.7 0l2 1-2-1z"/>
+  <path fill="#fcc" d="M219.4 128.4l3 3-3-3z"/>
+  <path fill="#ccf" d="M231.2 128.4l3 3-3-3z"/>
+  <path fill="#6cc" d="M234.2 128.4l3 3-3-3z"/>
+  <path fill="#9cc" d="M42.3 131.4l3 3-3-3z"/>
+  <path fill="#ccf" d="M45.2 131.4l3 3-3-3z"/>
+  <path fill="#fcc" d="M57 131.4l3 3-3-3zm171.3 0l3 3-3-3z"/>
+  <path fill="#ccf" d="M240 131.4l3 3-3-3z"/>
+  <path fill="#9cc" d="M243 131.4l3 3-3-3m-206.6 3l3 2.9-3-3z"/>
+  <path fill="#c66" d="M51.1 134.3l3 3-3-3zm183 0l3 3-3-3z"/>
+  <path fill="#9cc" d="M249 134.3l2.9 3-3-3m-206.6 3l3 3-3-3z"/>
+  <path fill="#ccf" d="M45.2 137.3l3 3-3-3z"/>
+  <path fill="#fcc" d="M57 137.3l3 3-3-3m171.3 0l3 3-3-3z"/>
+  <path fill="#ccf" d="M240 137.3l3 3-3-3z"/>
+  <path fill="#9cc" d="M243 137.3l3 3-3-3z"/>
+  <path fill="#6cc" d="M51.1 140.3l3 2.9-3-3z"/>
+  <path fill="#ccf" d="M54 140.3l3 2.9-3-3z"/>
+  <path fill="#fcc" d="M65.9 140.3l3 2.9-3-3z"/>
+  <path fill="#c33" d="M70.8 141.2l2 1-2-1m144.7 0l2 1-2-1z"/>
+  <path fill="#fcc" d="M219.4 140.3l3 2.9-3-3z"/>
+  <path fill="#ccf" d="M231.2 140.3l3 2.9-3-3z"/>
+  <path fill="#6cc" d="M234.2 140.3l3 2.9-3-3m-174.2 3l3 3-3-3z"/>
+  <path fill="#9cf" d="M63 143.2l2.9 3-3-3z"/>
+  <path fill="#fcc" d="M74.8 143.2l2.9 3-3-3zm135.8 0l2.9 3-3-3z"/>
+  <path fill="#9cf" d="M222.3 143.2l3 3-3-3z"/>
+  <path fill="#6cc" d="M225.3 143.2l3 3-3-3z"/>
+  <path fill="#69c" d="M68.8 146.2l3 2.9-3-3z"/>
+  <path fill="#9cf" d="M71.8 146.2l3 2.9-3-3z"/>
+  <path fill="#fcc" d="M86.6 146.2l3 2.9-3-3z"/>
+  <path fill="#c33" d="M91.5 147.1l2 1-2-1m103.3 0l2 1-2-1z"/>
+  <path fill="#fcc" d="M198.7 146.2l3 2.9-3-3z"/>
+  <path fill="#9cf" d="M213.5 146.2l3 2.9-3-3z"/>
+  <path fill="#69c" d="M216.4 146.2l3 2.9-3-3m-138.7 3l3 3-3-3z"/>
+  <path fill="#9cc" d="M80.7 149.1l3 3-3-3z"/>
+  <path fill="#cff" d="M83.6 149.1l3 3-3-3z"/>
+  <path fill="#fcc" d="M95.4 149.1l3 3-3-3z"/>
+  <path fill="#c33" d="M100.3 150l2 1-2-1m85.6 0l2 1-2-1z"/>
+  <path fill="#fcc" d="M189.9 149.1l3 3-3-3z"/>
+  <path fill="#cff" d="M201.7 149.1l3 3-3-3z"/>
+  <path fill="#9cc" d="M204.6 149.1l3 3-3-3z"/>
+  <path fill="#69c" d="M207.6 149.1l3 3-3-3m-121 3l2.9 2.9-3-3z"/>
+  <path fill="#9cc" d="M89.5 152l3 3-3-3z"/>
+  <path fill="#cff" d="M92.5 152l3 3-3-3z"/>
+  <path fill="#fcc" d="M104.3 152l3 3-3-3z"/>
+  <path fill="#c33" d="M109.2 153l2 1-2-1m67.9 0l2 1-2-1z"/>
+  <path fill="#fcc" d="M181 152l3 3-3-3z"/>
+  <path fill="#cff" d="M192.8 152l3 3-3-3z"/>
+  <path fill="#9cc" d="M195.8 152l3 3-3-3z"/>
+  <path fill="#69c" d="M198.7 152l3 3-3-3z"/>
+  <path fill="#9cc" d="M98.4 155l3 3-3-3z"/>
+  <path fill="#ccf" d="M101.3 155l3 3-3-3z"/>
+  <path fill="#fcc" d="M113.1 155l3 3-3-3z"/>
+  <path fill="#c33" d="M116 155l3 3-3-3m53.2 0l3 3-3-3z"/>
+  <path fill="#fcc" d="M172.2 155l3 3-3-3z"/>
+  <path fill="#ccf" d="M184 155l3 3-3-3z"/>
+  <path fill="#9cc" d="M187 155l2.9 3-3-3m-79.7 3l3 3-3-3z"/>
+  <path fill="#ccf" d="M110.2 158l3 3-3-3m65 0l2.9 3-3-3z"/>
+  <path fill="#9cc" d="M178 158l3 3-3-3m-62 3l3 2.9-3-3z"/>
+  <path fill="#c33" d="M122 161l3 2.9-3-3m41.3 0l3 3-3-3z"/>
+  <path fill="#9cc" d="M169.2 161l3 2.9-3-3z"/>
+  <path fill="#fcc" d="M122 163.9l3 3-3-3m41.3 0l3 3-3-3z"/>
+  <path fill="#ccf" d="M119 166.8l3 3-3-3z"/>
+  <path fill="#c33" d="M126 168.8l.9 2-1-2m35.4 0l1 2-1-2z"/>
+  <path fill="#ccf" d="M166.3 166.8l3 3-3-3z"/>
+  <path fill="#9cc" d="M119 169.8l3 3-3-3m47.3 0l3 3-3-3z"/>
+  <path fill="#fcc" d="M125 172.7l2.9 3-3-3m35.5 0l3 3-3-3z"/>
+  <path fill="#ccf" d="M122 175.7l3 3-3-3z"/>
+  <path fill="#c33" d="M128.9 177.6l1 2-1-2m29.5 0l1 2-1-2z"/>
+  <path fill="#ccf" d="M163.3 175.7l3 3-3-3z"/>
+  <path fill="#9cc" d="M122 178.6l3 3-3-3m41.3 0l3 3-3-3z"/>
+  <path fill="#fcc" d="M127.9 181.6l3 3-3-3m29.5 0l3 3-3-3z"/>
+  <path fill="#cff" d="M125 184.5l2.9 3-3-3z"/>
+  <path fill="#c33" d="M131.8 186.5l1 2-1-2m23.6 0l1 2-1-2z"/>
+  <path fill="#cff" d="M160.4 184.5l3 3-3-3z"/>
+  <path fill="#9cc" d="M125 187.5l2.9 3-3-3m35.5 0l3 3-3-3z"/>
+  <path fill="#69c" d="M125 190.4l2.9 3-3-3z"/>
+  <path fill="#fcc" d="M130.8 190.4l3 3-3-3m23.7 0l3 3-3-3z"/>
+  <path fill="#69c" d="M160.4 190.4l3 3-3-3z"/>
+  <path fill="#cff" d="M127.9 193.4l3 3-3-3zm29.5 0l3 3-3-3z"/>
+  <path fill="#9cc" d="M127.9 196.3l3 3-3-3m29.5 0l3 3-3-3z"/>
+  <path fill="#69c" d="M127.9 199.3l3 3-3-3m29.5 0l3 3-3-3z"/>
+  <path fill="#fcc" d="M133.8 202.2l3 3-3-3m17.7 0l3 3-3-3z"/>
+  <path fill="#9cf" d="M130.8 205.2l3 3-3-3z"/>
+  <path fill="#c33" d="M137.7 207.2l1 2-1-2m11.8 0l1 2-1-2z"/>
+  <path fill="#9cf" d="M154.5 205.2l3 3-3-3z"/>
+  <path fill="#69c" d="M130.8 208.2l3 2.9-3-3m23.7 0l3 3-3-3z"/>
+  <path fill="#fcc" d="M136.7 211.1l3 3-3-3m11.9 0l2.9 3-3-3z"/>
+  <path fill="#9cf" d="M133.8 214l3 3-3-3zm17.7 0l3 3-3-3z"/>
+  <path fill="#6cc" d="M133.8 217l3 3-3-3m17.7 0l3 3-3-3z"/>
+  <path fill="#fcc" d="M139.7 220l3 3-3-3m5.9 0l3 3-3-3z"/>
+  <path fill="#ccf" d="M136.7 222.9l3 3-3-3m11.9 0l2.9 3-3-3z"/>
+  <path fill="#6cc" d="M136.7 225.9l3 3-3-3z"/>
+  <path fill="#c66" d="M142.7 225.9l2.9 3-3-3z"/>
+  <path fill="#6cc" d="M148.6 225.9l2.9 3-3-3z"/>
+  <path fill="#ccf" d="M139.7 231.8l3 3-3-3m5.9 0l3 3-3-3z"/>
+  <path fill="#9cc" d="M139.7 234.7l3 3-3-3m5.9 0l3 3-3-3m-3 6l3 2.9-3-3z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ax.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ax.svg
new file mode 100644
index 0000000..dad7d94
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ax.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ax" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="ax-a">
+      <path fill-opacity=".7" d="M106.3 0h1133.3v850H106.3z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#ax-a)" transform="matrix(.56472 0 0 .56482 -60 -.1)">
+    <path fill="#0053a5" d="M0 0h1300v850H0z"/>
+    <g fill="#ffce00">
+      <path d="M400 0h250v850H400z"/>
+      <path d="M0 300h1300v250H0z"/>
+    </g>
+    <g fill="#d21034">
+      <path d="M475 0h100v850H475z"/>
+      <path d="M0 375h1300v100H0z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/az.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/az.svg
new file mode 100644
index 0000000..4293e9f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/az.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-az" viewBox="0 0 640 480">
+  <path fill="#3f9c35" d="M.1 0h640v480H.1z"/>
+  <path fill="#ed2939" d="M.1 0h640v320H.1z"/>
+  <path fill="#00b9e4" d="M.1 0h640v160H.1z"/>
+  <circle cx="304" cy="240" r="72" fill="#fff"/>
+  <circle cx="320" cy="240" r="60" fill="#ed2939"/>
+  <path fill="#fff" d="M384 200l7.7 21.5 20.6-9.8-9.8 20.7L424 240l-21.5 7.7 9.8 20.6-20.6-9.8L384 280l-7.7-21.5-20.6 9.8 9.8-20.6L344 240l21.5-7.7-9.8-20.6 20.6 9.8L384 200z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ba.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ba.svg
new file mode 100644
index 0000000..6402c10
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ba.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ba" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="ba-a">
+      <path fill-opacity=".7" d="M-85.3 0h682.6v512H-85.3z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#ba-a)" transform="translate(80) scale(.9375)">
+    <path fill="#009" d="M-85.3 0h682.6v512H-85.3V0z"/>
+    <path fill="#FC0" d="M56.5 0l511 512.3V.3L56.5 0z"/>
+    <path fill="#FFF" d="M439.9 481.5L412 461.2l-28.6 20.2 10.8-33.2-28.2-20.5h35l10.8-33.2 10.7 33.3h35l-28 20.7 10.4 33zm81.3 10.4l-35-.1-10.7-33.3-10.8 33.2h-35l28.2 20.5-10.8 33.2 28.6-20.2 28 20.3-10.5-33 28-20.6zM365.6 384.7l28-20.7-35-.1-10.7-33.2-10.8 33.2-35-.1 28.2 20.5-10.8 33.3 28.6-20.3 28 20.4-10.5-33zm-64.3-64.5l28-20.6-35-.1-10.7-33.3-10.9 33.2h-34.9l28.2 20.5-10.8 33.2 28.6-20.2 27.9 20.3-10.4-33zm-63.7-63.6l28-20.7h-35L220 202.5l-10.8 33.2h-35l28.2 20.4-10.8 33.3 28.6-20.3 28 20.4-10.5-33zm-64.4-64.3l28-20.6-35-.1-10.7-33.3-10.9 33.2h-34.9L138 192l-10.8 33.2 28.6-20.2 27.9 20.3-10.4-33zm-63.6-63.9l27.9-20.7h-35L91.9 74.3 81 107.6H46L74.4 128l-10.9 33.2L92.1 141l27.8 20.4-10.3-33zm-64-64l27.9-20.7h-35L27.9 10.3 17 43.6h-35L10.4 64l-11 33.3L28.1 77l27.8 20.4-10.3-33zm-64-64L9.4-20.3h-35l-10.7-33.3L-47-20.4h-35L-53.7 0l-10.8 33.2L-35.9 13l27.8 20.4-10.3-33z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bb.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bb.svg
new file mode 100644
index 0000000..73f5329
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bb.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-bb" viewBox="0 0 640 480">
+  <path fill="#00267f" d="M0 0h640v480H0z"/>
+  <path fill="#ffc726" d="M213.3 0h213.4v480H213.3z"/>
+  <path id="a" d="M319.8 135.5c-7 19-14 38.6-29.2 53.7 4.7-1.6 13-3 18.2-2.8v79.5l-22.4 3.3c-.8 0-1-1.3-1-3-2.2-24.7-8-45.5-14.8-67-.5-2.9-9-14-2.4-12 .8 0 9.5 3.6 8.2 1.9a85 85 0 00-46.4-24c-1.5-.3-2.4.5-1 2.2 22.4 34.6 41.3 75.5 41.1 124 8.8 0 30-5.2 38.7-5.2v56.1H320l2.5-156.7z"/>
+  <use width="100%" height="100%" transform="matrix(-1 0 0 1 639.5 0)" xlink:href="#a"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bd.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bd.svg
new file mode 100644
index 0000000..1e3433e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bd.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bd" viewBox="0 0 640 480">
+  <path fill="#006a4e" d="M0 0h640v480H0z"/>
+  <circle cx="280" cy="240" r="160" fill="#f42a41"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/be.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/be.svg
new file mode 100644
index 0000000..eaf016d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/be.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-be" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path d="M0 0h213.3v480H0z"/>
+    <path fill="#ffd90c" d="M213.3 0h213.4v480H213.3z"/>
+    <path fill="#f31830" d="M426.7 0H640v480H426.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bf.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bf.svg
new file mode 100644
index 0000000..c92cce6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bf.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bf" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="#de0000" d="M640 479.6H.4V0H640z"/>
+    <path fill="#35a100" d="M639.6 480H0V240.2h639.6z"/>
+    <path fill="#fff300" d="M254.6 276.2l-106-72.4h131L320 86.6 360.4 204l131-.1-106 72.4 40.5 117.3-106-72.6L214 393.4"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bg.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bg.svg
new file mode 100644
index 0000000..15ba696
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bg.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bg" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#d62612" d="M0 320h640v160H0z"/>
+    <path fill="#fff" d="M0 0h640v160H0z"/>
+    <path fill="#00966e" d="M0 160h640v160H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bh.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bh.svg
new file mode 100644
index 0000000..d4a32c0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bh.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bh" viewBox="0 0 640 480">
+  <defs id="defs448">
+    <clipPath id="bh-a">
+      <path id="path445" fill-opacity=".7" d="M0 0h640v480H0z"/>
+    </clipPath>
+  </defs>
+  <path id="path1077" fill="#fff" stroke-width="4.8" d="M0 0h640v480H0" opacity="1" stop-opacity="1"/>
+  <path id="path1079" fill="#ce1126" stroke-width="5.1" d="M640 0H96l110.7 48L96 96l110.7 48L96 192l110.7 48L96 288l110.7 48L96 384l110.7 48L96 480h544" opacity="1" stop-opacity="1"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bi.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bi.svg
new file mode 100644
index 0000000..091f2df
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bi.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bi" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="bi-a">
+      <path fill-opacity=".7" d="M-90.5 0H592v512H-90.5z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#bi-a)" transform="translate(84.9) scale(.9375)">
+    <path fill="#00cf00" d="M-178 0l428.8 256L-178 512zm857.6 0L250.8 256l428.8 256z"/>
+    <path fill="red" d="M-178 0l428.8 256L679.6 0zm0 512l428.8-256 428.8 256z"/>
+    <path fill="#fff" d="M679.6 0h-79.9L-178 464.3V512h79.9L679.6 47.7z"/>
+    <path fill="#fff" d="M398.9 256a148 148 0 11-296.1 0 148 148 0 01296 0z"/>
+    <path fill="#fff" d="M-178 0v47.7L599.7 512h79.9v-47.7L-98.1 0z"/>
+    <path fill="red" stroke="#00de00" stroke-width="3.9" d="M280 200.2l-19.3.3-10 16.4-9.9-16.4-19.2-.4 9.3-16.9-9.2-16.8 19.2-.4 10-16.4 9.9 16.5 19.2.4-9.3 16.8zm-64.6 111.6l-19.2.3-10 16.4-9.9-16.4-19.2-.4 9.3-16.9-9.2-16.8 19.2-.4 10-16.4 9.9 16.5 19.2.4-9.3 16.8zm130.6 0l-19.2.3-10 16.4-10-16.4-19.1-.4 9.3-16.9-9.3-16.8 19.2-.4 10-16.4 10 16.5 19.2.4-9.4 16.8z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bj.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bj.svg
new file mode 100644
index 0000000..fa0df27
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bj.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bj" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="bj-a">
+      <path fill="gray" d="M67.6-154h666v666h-666z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#bj-a)" transform="matrix(.961 0 0 .7207 -65 111)">
+    <g fill-rule="evenodd" stroke-width="1pt">
+      <path fill="#319400" d="M0-154h333v666H0z"/>
+      <path fill="#ffd600" d="M333-154h666v333H333z"/>
+      <path fill="#de2110" d="M333 179h666v333H333z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bl.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bl.svg
new file mode 100644
index 0000000..ecf6ec4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bl.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bl" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h640v480H0z"/>
+    <path fill="#00267f" d="M0 0h213.3v480H0z"/>
+    <path fill="#f31830" d="M426.7 0H640v480H426.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bm.svg
new file mode 100644
index 0000000..5e2c873
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bm.svg
@@ -0,0 +1,98 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bm" viewBox="0 0 640 480">
+  <path fill="#cf142b" d="M0 0h640v480H0z"/>
+  <path fill="#00247d" d="M0 0h320v160H0z"/>
+  <path fill="#fff" d="M0 0v17.9L284.2 160H320v-17.9L35.8 0H0zm320 0v17.9L35.8 160H0v-17.9L284.2 0H320z"/>
+  <path fill="#fff" d="M133.3 0v160h53.4V0h-53.4zM0 53.3v53.4h320V53.3H0z"/>
+  <path fill="#cf142b" d="M0 64v32h320V64H0zM144 0v160h32V0h-32zM0 160l106.7-53.3h23.8L23.8 160H0zM0 0l106.7 53.3H82.8L0 12V0zm189.5 53.3L296 0h24L213.3 53.3h-23.8zM320 160l-106.7-53.3h23.9L320 148v12z"/>
+  <path fill="#fff" d="M553.8 148.3v135.5c0 36.2-72.3 48-72.3 48S409 320 409 283.7V148.3h144.7z"/>
+  <path fill="#2f8f22" d="M553.8 283.8c0 36.2-72.3 48-72.3 48S409 320 409 283.7c0 0 0-3 1.5-4.6 0 0-.8 6 3.8 10.6 0 0-3.6-6.5 0-12.8 0 0-1.4 8.2 3.7 12.8 0 0-2.8-6.6.3-14 0 0-1.5 12 4 14.5 0 0 1.5-7-.7-11.4 0 0 3.8 1.5 3.6 11.6 0 0 1.2-1.5 1.5-8.8 0 0 .2 8.4 3 10.3 0 0 1-.9-.3-4.6s.5-5.1.8-5c0 0-.6 4.1 2.9 7.3 0 0-1.5-6.6.6-7.5 0 0-.5 5.6 4 6.8 0 0 .3-1.6-.7-3.4 0 0-.8-2.1-.2-3.8 0 0 1.4 5 3.3 5.9 0 0-1.1-3 0-5.9 0 0 .2 4.2 4 6 0 0-2.5-3.3-1.6-6.9l24.1 1.2 12.5.6 37.5-2.6 6.4-5.6s2.6 3.5-1.5 9.1c0 0 4-.7 5.3-7 0 0 1.6 3.5-.6 7.4 0 0 4.4-4.5 5-9.5 0 0 1.8 4.9-2.4 10.1 0 0 3.7-1.3 5.3-6.8 0 0 1.3 3.3-2.3 8 0 0 6.8-3.5 6.6-11 0 0 2.8 4.1-.4 9.8 0 0 3.4-3.1 3.8-7.8 0 0 1.9 2.1-.2 7.9 0 0 4.2-4 4.9-8.3 0 0 .9 4-2.7 9 0 0 2.4-.6 4.8-5.5 0 0 .6 2-1.5 5.5 0 0 2.3-.4 3.8-4.9 0 0 .3 2.7-.4 5 0 0 1.8-1.1 2.2-6.1 0 0 1 1.6 1 3.7v.7z"/>
+  <path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width=".5" d="M516.6 205.4s-2.5.5-5.8-.5c-3.2-1-4.5-.6-5.5 0 0 0 1.3-2.6-1.9-4.7 0 0 1 2.7-.4 3.9 0 0-.6.6-1.4-.3 0 0-1.1-1.2-2.3-2 0 0 2.7-1 2.2-3.8-.5-2.7-2-3-2.7-3.4a5 5 0 000 2s-3-1.6 1-3.9 3.3-3.7 2.6-4.9a11 11 0 00-3-3s.8 1.3.6 2.4c-.1 1-2 1.7-1.6-.1.4-2 0-1.6 0-3.6 0 0 3.5 1.2 5-2.3 0 0 1.3-3.6-3.2-5.4 0 0 1.1 1.5.6 2.6 0 0-1 1.8-2.1.4s-1.9-1.8-1.8-3.5c0 0 4.1.6 3-3.9 0 0-.7 3-6-1 0 0 3.5-3.6 2.1-6.4 0 0-.4-1.3-4.1-.6 0 0 3.2-2 1.9-3.8 0 0-.7-1.1-3.8.4 0 0 1.2-2-1.8-4.2 0 0-2 1-3 2 0 0-2-2.6-3.3-3.6 0 0-2.4.9-3 3.6 0 0-1.1-1.3-3.6-2 0 0-1.2 2.3.4 4.2 0 0-1.2 0-3.3-1 0 0-2.4-1-2 1 .3 2 .5 2.5 1 3.5 0 0-5.4-1.3-5.2 1.7a7.4 7.4 0 002.6 5.2s-3 4-5.6 1c0 0-1 1 1 3.5 0 0 2 2.1.3 3.5 0 0-2.1 1.7-3.1-1.6 0 0-3.5 3.4.6 6 0 0 2.6 1.5 5.3-.8 0 0-.9 6.6-3.4 5.3 0 0-1.5-1 1.2-2.4 0 0-4-.5-4.6 3.3 0 0-.5 3 3 4.2 0 0 2.6 1-.1 3 0 0-2 1.5-.7 3.7 0 0 1.5 2.4-2.4 2.7 0 0-2 0-2.8-.3 0 0-.9 1.6-.3 3.4 0 0-2-1.5-6.3.1-4.4 1.6-4.1.5-4.4 1l-1.3 2s2.3 3 2.4 2.8l-.5 3.3 1.2.5 9-4 9.3-4.8 7.4.4 4.7 1.1 6.1.5 4.5-2.4h6.4l7 3.5 8 4.8 4.2.8 3.2-.2v-6.5l-1.5-2.4z"/>
+  <path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width=".5" d="M443.5 213s3.5 1.8 5-.3c0 0 1.9-3.7-2.3-5 0 0 2.3-2.7-.2-5.2 0 0-1.3-1.4-3.5-.4 0 0-1-2-3.1-1.9 0 0-2 0-2.6 2.1 0 0-2.6-1-4 .5 0 0-2.5 2.7.9 4.9l2.4.2 2.4-1.1 2.7.7s-.7 2.7 2.3 5.5z"/>
+  <path fill="#64b4d1" stroke="#000" stroke-width=".4" d="M521.8 206.6a5.6 5.6 0 015.8 3.2c2.2 5.2-2.5 8-2.5 8 .3 1.1.4 2.7.4 2.7 6.6.8 5.4 8.2 5.4 8.2l-2.2-1.8c-3.8-1.5-7.8 1.8-10.6 7.2-2.8 5.5-1.5 8-1 14.5s11 10.4 11 10.4l-8.2 21c-3.2 8.3-10 4.9-12 3.1-1.9-1.7-2.4-.7-3.3 0-1 .8 4.4 5-5.5 9-9.8 4-11.5 7-13.2 8-1.6 1-8.4.4-9-.5-.8-.8-.4-.8-3-2.4-2.5-1.5-6.8-3-11.5-5.2-4.7-2.3-4.6-5.2-4.5-5.8 0-.6 1.6-5.5-3.9-1.6s-10.2-1.9-10.2-1.9c-1-1.4-5.7-13.7-5.7-13.7a77.5 77.5 0 00-3.6-10s-.3.6 3.8-1.7c4-2.3 5.9-6.2 7.3-10 1.4-3.9 0-10.5-.5-11.8s-3.5-7.4-7.3-8.7c-3.7-1.3-6.3 2-6.3 2s-1.1-7.5 5.5-8.3c0 0 0-1.6.4-2.7 0 0-4.7-2.8-2.5-8 0 0 1.5-3.6 5.7-3.2l-1 2s-1 10.6 14.5 3.5c15.5-7.2 15-8.5 24-4l6.4-.1s9.3-4.4 12.3-2.5c3 1.9 13.7 7.9 13.7 7.9s10.4 3.9 12.5-3.3l-1.2-3.5z"/>
+  <path fill="#fff" stroke="#00247d" stroke-miterlimit="10" stroke-width=".5" d="M475 252.7s-.5-3.3-1-5.4c0 0-1.2-3.3.8-5.7l2.4-2.8s1.5-2 3.4-2.3c0 0 1.9 0 2-.4.2-.4 2.3-3.8 7.2 0 0 0 1.5-2.5 4-3 0 0 2.5-.7 3.8 1.2 0 0 2.9-2.2 5.4 1.4 0 0 3.4-2 6 1.9 0 0 3.3-1.7 5.4 1.8 2.1 3.6 1.7 5 1.7 5l1.6 5.7 5.5 6.8-12.8 4.8h-5.8l-11.5 3-20.4 1.6-5.6-6.7 8-7z"/>
+  <path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width=".5" d="M457.8 286.6s-3 .1-4.6 1c-1.5.7-2.7 1.5-4.5 2.7 0 0-.9 1.1-4.4.4 0 0-6-1.4-6 3.3 0 0-7.4.6-4.4 7 0 0 2 5 6.2 1.5 0 0-2.7 3.8 2.5 5.3 0 0 3.7 1 4.8-2.9 0 0 .6-1.5-.8-3.3 0 0 1.8-.4 3-2.3 0 0-3.8 4.8.4 6.6 0 0 5.3 1.3 5.6-4.2 0 0-.5-2.6 1.6-3.5 0 0 4.2-1 6-5.6 0 0-6-3.2-5.4-6zm-12.3-48.2s-4.7-2.1-7 0c0 0-3-1.9-6.3 0 0 0-3.1 2-5.3 4.3 0 0-1.5 1.3-1 5.4 0 0 .9 2.9.4 4.3 0 0-1-.2-3.1 2.3 0 0-2.6 3-5 .3 0 0 .8 3.8 5.1 3.2 0 0-2.1 1.6-.3 5.9 0 0 1.4 3-.8 6.8 0 0 3.8-1.5 3.7-6 0 0-.4-3 .8-5.1 0 0-1.2 1.9 1.4 6 0 0 2 3 .4 6 0 0 3.7-1.3 3.4-5.8-.4-4.6-2.6-2.7-1.2-6.9 0 0 .4 2.2 1.5 3.3a6 6 0 012 5.9s2.2-2.8 1.7-5.7a11 11 0 00-1.1-3.7l7-4 3.6-6.3.1-10.2z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".5" d="M434.8 256.4s-3-.2-3.4-2.5m-5.1-1.5s1 0 2 1c0 0 .6 1 1.6.8"/>
+  <path d="M439.1 247.8s-1.5 0-2.4-.7c0 0-.8-.6-1.3.3 0 0-.8 1.4.6 2 0 0 1.9 1-1 2.8 0 0 3.4-1.3 2-3 0 0-1.5-1-1-1.4 0 0 .2-.4.8 0 .6.5 1.8.3 2.3 0z"/>
+  <path fill="#784421" stroke="#000" stroke-width=".4" d="M484.9 256l1.8-.5-11.7-40.3-.4.1z"/>
+  <path d="M446 300.7s-2.7-1.6-5 .2c0 0 .3-1 2-1.4 0 0 1-2.7 3.6-2.4 0 0-1.1 1.3-2.5 2.3 0 0 1.5.2 2 1.3z"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".4" d="M436.4 307s-4.4-2.7-2-7.3c0 0 .7-1.3 2-1 0 0 2.7.8.6 4.6 0 0-1.1 2.4-.6 3.8zm8.8 4.4s-6.2-2.8-4.3-7.7c0 0 .6-1.6 2-1.5 0 0 2.4.2 1.9 3.4 0 0-.7 3 .4 5.8z"/>
+  <path d="M443.9 293.4s-1.9 1.4-2.6 2.3c0 0-.8-1-1.8-1.5 0 0 1.2-.2 1.8.3 0 0 1-.9 2.6-1.1z"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".4" d="M449.4 310.2s5-1.2 4-6.3c0 0-.5-2.2-2.5-1.9 0 0-2.5.7-.9 3.9 0 0 1 2.2-.6 4.3z"/>
+  <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width=".5" d="M471.5 203.7l4.8 1.6s4.5 2 10.3 0l4.4-1.7-3 4.6v2.4l1.8 2.7s-1.1.5-4.5-1.6c0 0-3.7-2.9-8.1 0 0 0-2.5 1.6-4.5 1.6l2.9-3.2-1.1-2.9-3-3.6z"/>
+  <path fill="#fff" d="M451.3 304.2s.2-.3 0-.4l-.4.2s-.5.8 0 2c0 0 .4.7.2 1.5l.1.3s.2-.1.2-.3c0 0 .3-.7-.2-1.5 0 0-.5-1.2.1-1.8z"/>
+  <path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width=".5" d="M518.8 213s-3.5 1.8-5-.3c0 0-1.8-3.7 2.4-5 0 0-2.3-2.7.1-5.2 0 0 1.3-1.4 3.5-.4 0 0 1-2 3.1-1.9 0 0 2 0 2.6 2.1 0 0 2.7-1 4.1.5 0 0 2.4 2.7-1 4.9l-2.4.2-2.4-1.1-2.6.7s.7 2.7-2.4 5.5z"/>
+  <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width=".5" d="M491 210.2s0 .7-.7.8c0 0-.8.3-1.3-.7v-.3c0-.4-.2-1.7 1.2-2.7 0 0 2.2-1.8 6.4.4A161 161 0 00509 214s2.6 1.3 6.6 1.5c0 0 5.5.4 7.8-3.5 0 0 1.8-2.9 0-4.8 0 0-.7-.8-1.9-.7-.4.1-1 .3-1.5 1 0 0-.9 1.2.1 2.1 0 0 1.3.8 1.8-.9 0 .2.4 1.5-.3 2.5 0 0-3.4 5-12.5-.1l-12-6.8s-6-3.1-9.7 1.8c0 0-2.9 4 .9 6.6 0 0 2.8 1.7 4.5-1 0 0 1.5-2.6-.8-3.7 0 0-2-1-2.8 1-.8 2 1.5 2.6 1.7 1.1 0 0 0-.3.2 0z"/>
+  <path fill="#e4cb5e" stroke="#000" stroke-miterlimit="2.6" stroke-width=".4" d="M443.3 231v-7.6c0-.6 0-1 1-1.8.8-.7 1.8-1.9 3.1 1.4 0 0 2.7-2.9 3.6-3.3 0 0 1.6-1.3 2.7.6 0 0 1.4-2.2 2.5-2.7 0 0 2.7-1.7 2.8 3.5l2.1-2s1.7-1.3 3.5.6c0 0 3 3 3.4 3.8 0 0 .7.9.8 2.3 0 0 0 1.6.8 2.5 0 0 1 .9 1.9 1 0 0 2.1.1 3 2.2 0 0 .3-.4 1.4 9.4v18l-12.1 14.4-19.4-5.6-7.7-3.2-1.8-5.6 7.5-4.9 4-11-1.2-7.7-1.9-4.4z"/>
+  <path fill="#784421" stroke="#000" stroke-width=".4" d="M496.7 240.4l1-1.3 2.1-1.7s3.4 8.8 3.5 10.7v2.7s5 1.3 6 9l-4.2 7.7-6.5-3.7-1.9-1.3v-22z"/>
+  <path fill="#fff" d="M435.2 300.8s.2-.3 0-.5l-.4.3s-1.3 1.4-.2 3.7c0 0 0 .3.3.2 0 0 .2 0 0-.3 0 0-1-2 .3-3.4z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".5" d="M454.8 299.3s.1-.7-.3-1.4c0 0-.3-.5-.2-1.2"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".4" d="M459 221.1s0 1.9.6 3.3c.5 1.4 2.4 3.8 2.5 5"/>
+  <path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width=".5" d="M504.6 286.6s3 .1 4.6 1c1.6.7 2.8 1.5 4.6 2.7 0 0 .8 1.1 4.3.4 0 0 6.1-1.4 6.1 3.3 0 0 7.3.6 4.3 7 0 0-2 5-6.2 1.5 0 0 2.7 3.8-2.5 5.3 0 0-3.7 1-4.8-2.9 0 0-.6-1.5.9-3.3 0 0-1.8-.4-3-2.3 0 0 3.8 4.8-.4 6.6 0 0-5.3 1.3-5.6-4.2 0 0 .4-2.6-1.6-3.5 0 0-4.2-1-6.1-5.6 0 0 6-3.2 5.4-6z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".4" d="M456.6 229.5l5 40.1m-3.8-40.2l5.6 37.4m-4.6-37.6l6.5 37.1"/>
+  <path fill="#784421" stroke="#000" stroke-width=".4" d="M469 263.1l1.8-.6-11.7-40.2h-.4z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".4" d="M462.4 227.7l11.8 29.8m-12.6-29.3l11.4 31"/>
+  <path fill="#fff" d="M443 308.5s-1.4-1.3-1.2-3.6c0 0 0-.5-.2-.6 0 0-.3-.1-.3.5 0 0-.4 2.4 1.3 3.8 0 0 .1.2.3.1 0 0 .2 0 0-.2z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".4" d="M463 227.3l12 27.2M459.7 229l7.5 36.6"/>
+  <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width=".5" d="M520.5 256c-5.3-3-6.5-9.6-6.5-9.6a20.6 20.6 0 011.4-12c3.4-7.2 9.3-8.6 9.3-8.6s-5.8 4-7.4 9.4c0 0-1.2 4.6-.5 9 .7 4.6.4 3.4 1.5 6.9l2.2 5z"/>
+  <path fill="#784421" stroke="#000" stroke-width=".2" d="M497.6 239l-22.3 7.1-1.2 10c-5.3 7.7-16.1 9-16.1 9l8.4 9 16 3.3 8.5-6.5 7.7-7c-.8-3.8-.4-9.4-.4-9.4 0-1 .4-3.2.4-3.2s-1.3-9-1-12.2z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".4" d="M474.4 253.6s14.7-4.6 23.5-8.3M467.3 262s18.4-3.3 31.3-10.7l4.7-3.2"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".4" d="M503.3 250.8l-5 3.7s-20.6 9.4-36.3 9.7m36.2-3s-15.8 8.1-24.8 8.2"/>
+  <path fill="#d40000" stroke="#000" stroke-linejoin="round" stroke-width=".5" d="M517 238.4s4.7-2.1 7 0c0 0 3-1.9 6.4 0 0 0 3 2 5.2 4.3 0 0 1.5 1.3 1 5.4 0 0-.8 2.9-.3 4.3 0 0 1-.2 3 2.3 0 0 2.7 3 5 .3 0 0-.7 3.8-5 3.2 0 0 2 1.6.2 5.9 0 0-1.3 3 .8 6.8 0 0-3.8-1.5-3.6-6 0 0 .3-3-.8-5.1 0 0 1.1 1.9-1.5 6 0 0-2 3-.3 6 0 0-3.8-1.3-3.4-5.8.3-4.6 2.6-2.7 1.1-6.9 0 0-.3 2.2-1.4 3.3a6 6 0 00-2 5.9s-2.2-2.8-1.7-5.7 1-3.7 1-3.7l-7-4-3.5-6.3-.2-10.2z"/>
+  <path fill="#fff" stroke="#00247d" stroke-miterlimit="10" stroke-width=".5" d="M437.1 263.9s.7-3.1 3.6-2c0 0 1-5 6.5-5.2 5.4-.2 5.7 5.3 5.7 5.7 0 0 1.7-2.4 4.3-2.1 0 0 4.6-.3 3 7.1l.8 1s3.5-8.3 10.7-6.2c0 0 7 2.2 2.5 9 0 0 3.5 4.6 6.4 4.1 3-.4 5.6-1.3 8.5-6.5 3-5.2 9.8-6 11.5-5.7 1.7.3 3.1 1.5 3.4 2.7 0 0 3.6-12 16.6-10.2l5.2 2.7 2 .9-3 8.3-7.1 16.2-5.5 1.6-5.7-3.2-2 1-.1 4.9-7.5 5.4-5.2 2.1-5.7 4-1.4 3.5s-3.1-1.4-6.7 0l-1.2-3-3.4-3.1-13-6.2-2.3-7.6-2.4-1-2.7 3-3.8.5-5.8-4L437 264z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".5" d="M493.8 204.9s-5-.2-4.8 5"/>
+  <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width=".5" d="M526.4 259.6c-8.6-2.7-11-12-11-12a21.4 21.4 0 011.1-13c4-9.3 10.6-9.3 10.6-9.3a3.4 3.4 0 013.8 2.8c.3 2-1.1 2.7-1.1 2.7-2.3 1.3-3.8-.4-3.8-.4-1-1.3-.2-2.4-.2-2.4.6-.8 1.7-.4 1.7-.4 1 .2.8 1.4.8 1.4s.3-1.4-1-1.5c0 0-2.7-.6-5.7 3.2 0 0-4 5.1-4 11.8 0 0-.5 12.4 12.4 15.6 0 0-1.4 2-3.9 9.3 0 0-2.8 9.4-5.4 14.5 0 0-3.6 7.2-11.6 4.3 0 0-4.7-2.1-4.7-5.5 0 0-.3-3.2 2.5-3.4 0 0 2.8-.2 2.8 2.2 0 0 0 2.5-3 2 0 0-1-.3-.9-1.3 0 0 .2-1 1.5-.5s0 0 0-.1c0 0-.5-.2-1 0 0 0-.5.1-.5.9 0 0 0 .5.6.9l1.4.2s.8 1.6 2.6 2.2c2.5.7 4.6 0 5.9-1a9 9 0 002.5-3.6 95 95 0 004.4-11.3s1.5-4.8 2.8-7.3l.4-1z"/>
+  <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width=".5" d="M502 283.2s1.7-.2 1.7 1.2c0 0-.1 2-2.7 1.6 0 0-2.5-.5-1.6-3.3 0 0 .6-2 3-1.7 0 0 2.3 0 3.3 3.2 0 0 .8 2.7-.6 5-1.5 2.5-5.2 4.2-7 5 0 0-7.3 2.8-9.5 4.5 0 0-3.3 2.4-1.8 4.7 0 0 .6.9 1.4.9 0 0 1 0 1.1-1 0 0 0 .6-.6.9 0 0-.7.3-1.4-.3 0 0-.8-.8-.2-2 0 0 .9-1.4 3-.5 0 0 1.7.9 1 2.7 0 0-.7 1.8-2.8 1.7 0 0-1.6 0-2.7-1-1.6-1.8-1.7-5-.2-6.7 0 0 1.3-1.8 4-3l7.5-3c2.2-.9 4.1-1.9 5.4-3.4 0 0 1.1-1.2 1.5-3.4 0 0 .3-1.6-.7-2l-1-.2z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".5" d="M502.2 283.2s1.8-.4 2.9 1.8c0 0 .6 1.3.7 2.1m.6-7.6s-1.8.3-.9 2.9c1 2.4 2.5 3.1 3 3.5"/>
+  <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width=".5" d="M471.5 210.2s0 .7.8.8c0 0 .7.2 1.1-.7l.1-.3c0-.4.2-1.7-1.1-2.7 0 0-2.3-1.8-6.5.4 0 0-3.3 1.6-5.6 3 0 0-6 3.2-6.8 3.4 0 0-2.6 1.3-6.6 1.5 0 0-5.5.4-7.8-3.5 0 0-1.8-2.9 0-4.8 0 0 .7-.8 1.9-.7.5.1 1 .3 1.5 1 0 0 .9 1.2-.1 2.1 0 0-1.3.8-1.8-.9 0 .2-.3 1.4.4 2.5 0 0 3.3 5 12.4-.2l12-6.7s6-3.1 9.7 1.7c0 0 2.9 4-.8 6.7 0 0-2.8 1.7-4.6-1 0 0-1.4-2.6.8-3.7 0 0 2-1 2.9 1 .8 2-1.6 2.6-1.8 1.1 0 0 0-.3-.1 0zM442 256.1c5.3-3 6.5-9.7 6.5-9.7 1.2-6.7-1.4-12-1.4-12-3.4-7.2-9.3-8.6-9.3-8.6s5.8 4 7.4 9.4c0 0 1.3 4.6.5 9-.7 4.6-.4 3.4-1.5 6.9l-2.2 5z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".5" d="M468.8 204.9s5-.2 4.7 5"/>
+  <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width=".5" d="M436 259.6c8.7-2.7 11-12 11-12a21.4 21.4 0 00-1-13c-4-9.3-10.6-9.3-10.6-9.3a3.4 3.4 0 00-3.8 2.8c-.3 2 1.1 2.7 1.1 2.7 2.3 1.3 3.8-.4 3.8-.4 1-1.3.2-2.4.2-2.4-.6-.8-1.7-.4-1.7-.4-1 .2-.8 1.4-.8 1.4s-.3-1.4 1-1.5c0 0 2.7-.6 5.7 3.2 0 0 4 5.1 4 11.8 0 0 .5 12.4-12.4 15.6 0 0 1.4 2 3.9 9.3 0 0 2.8 9.4 5.5 14.5 0 0 3.5 7.2 11.5 4.3 0 0 4.7-2.1 4.7-5.5 0 0 .3-3.2-2.5-3.4 0 0-2.8-.2-2.8 2.2 0 0 0 2.5 3 2 0 0 1-.3.9-1.3 0 0-.2-1-1.5-.5s0 0 0-.1c0 0 .5-.2 1 0 0 0 .5.1.5.9 0 0 0 .5-.6.9l-1.3.2s-.8 1.6-2.7 2.2a6.3 6.3 0 01-5.9-1 9 9 0 01-2.5-3.6 95.2 95.2 0 01-4.4-11.3s-1.5-4.8-2.7-7.3l-.5-1z"/>
+  <path fill="#f5ce00" stroke="#000" stroke-miterlimit="2.6" stroke-width=".5" d="M460.5 283.2s-1.6-.2-1.6 1.2c0 0 0 2 2.6 1.6 0 0 2.5-.5 1.6-3.3 0 0-.6-2-3-1.7 0 0-2.3 0-3.3 3.2 0 0-.8 2.7.6 5 1.5 2.5 5.2 4.2 7 5 0 0 7.3 2.8 9.5 4.5 0 0 3.3 2.4 1.8 4.7 0 0-.5.9-1.4.9 0 0-1 0-1.1-1 0 0 0 .6.6.9 0 0 .7.3 1.4-.3 0 0 .8-.8.2-2 0 0-.9-1.4-2.9-.5 0 0-1.8.9-1 2.7 0 0 .6 1.8 2.7 1.7 0 0 1.6 0 2.7-1 1.6-1.8 1.7-5 .3-6.7 0 0-1.4-1.8-4-3-1.6-.5-4.6-1.8-7.6-3-2.2-.9-4.1-1.9-5.4-3.4 0 0-1.1-1.2-1.5-3.4 0 0-.3-1.6.7-2l1-.2h.1z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".5" d="M460.3 283.2s-1.8-.4-2.9 1.8c0 0-.6 1.3-.7 2.1m-.6-7.6s1.8.3.9 2.9c-1 2.4-2.5 3.1-3 3.5m23-76.4s4.3-2.7 8.7.3"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".4" d="M452.4 236s.6-2.5-2.2-6.7c0 0-1.8-3.9-2.7-6.3m6.2-2.7l2 5.5 2.4 5.7"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".4" d="M454.4 238.6s1.7 1.8 1.5 4.7m-6.8-6.6s1.8.9 1.6 5.7c0 0-.1 3.4 2.5 5.2m-4.4 1.2s5.6-.6 6 2.9c0 0 0 3.3 2 3.6 0 0 2.8.3 3.4 3m-9.6-5.7s1 1.5 2 2.2m5.2-5.8s1.4 2.2 1.7 3.4M464 223s1.3 1.8 2.6 2.6m2.6 8s2.8 1.3 2.4 8.4c0 0-.4 4.1.8 6.4"/>
+  <path fill="#784421" stroke="#000" stroke-width=".4" d="M456 228.8l.3.7s5 .2 7.7-3.2l-.3-.7s-4.4-.2-7.6 3.2z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".4" d="M474.1 255.6s17.3-5.1 24-8.1"/>
+  <path fill="#784421" stroke="#000" stroke-width=".2" d="M472.3 223.7l-.2-.5 8.5-3.3.2.6z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".4" d="M473 223.4l5.7 27.9m-4.7-28.2l6.5 27.7m-5.4-28.2l7.1 27.6m-4.3-28.6l9.7 20.6m-8.4-21l10.3 20.4m-9.4-20.9l11.2 20.4m-13 10.4l4.4-1.4m-7.7-1.3s12.8-3.8 22.6-7.7m-22.8 9s16.3-4.2 22.8-7.4m-17.8 20.7l.8 2.7 2.4-.8-.8-2.6m4.2-1.1l.8 2.6 2.3-.8-.8-2.6m-13.4-14.7l-.2-3.5 21.4-6.5 1.1 3m-13.4.7l1.1 3.2m6.3-5.4l1.4 3m.4-3.6l1.3 2.8m.4-3.3l1.3 3m0-3.4l2.4-1.3 1 2.6m-2.2-2l1.2 2.8"/>
+  <path fill="none" stroke="#00247d" stroke-miterlimit="10" stroke-width=".5" d="M444.6 276.2s-4.2-4.3 0-8.4c0 0-4.6-2.2-3.9-5.8m11.4 17.5s-4.4.6-3.1-7.8c0 0-1.8 3.3-2.4 5a3.9 3.9 0 001.7 4.5c.7.5 4.6 1.5 5.8-1m-6.9-13.6s-1.8 1.6-.5 4.6m2.3-4.2s.2 2.9 1.7 4.5m-.4-5.6s0 3.4 2.4 5.5m-1.2-6.7s0 3.8 2.8 6.2m11.3-.6s1.4-3.2 4.4-3c0 0-1.4.7-1.4 2.1 0 0-.2 2.5 2.4 2.7 0 0 2.1.3 3.2-.9"/>
+  <path fill="none" stroke="#00247d" stroke-miterlimit="10" stroke-width=".5" d="M472.8 284.6s-7.5-3.5-6.7-8.5c0 0 .3-3 3.3-4.5m-1.6 3.2s-.7 2.1.8 3.6m.9-5.1s-1 2.4.6 4.1m1.2-5.3s-1.1 2 .2 3.8m-7 9.2s4 3.6 7.2 3.6m-8.5-2.4s3.8 3 6.2 3.5m-7.6-2.7s4.7 4.1 7.6 4.4m11.5 3.8s-4.6 2.5-1 5.2m-2-7.9l7.6-3.8m-5.7 5.2s7.6-4.6 9.8-5.6m-5.9 6s6.5-4.4 10-6.3m-5.7 6s4.5-3.4 8.8-6m1.5-4.3s-2.2-3.2-9.4 0c0 0 2.7-2.4 7.9-4.3m7.2-13.7s.6 2.6 0 4.2"/>
+  <path fill="none" stroke="#00247d" stroke-miterlimit="10" stroke-width=".5" d="M492.4 278.4s1.5-2.2 5.3-3.3c0 0 1 2.5 4 2 0 0 4.4-.9 3-5.8 0 0-.9-3.6-6-4m15.2-6.1s5.1 1 5 5.1c0 0 .5 6.4-6.2 7.6m5.5-10.1s1.4-3.1 4.6-4.4m-3.8-1.8s1.4 2.3 2.3 2.6m-3-.8s1.3 1.7 1.7 2m-2.2-.4s.7 1 1.3 1.4m-28-25.9s1-1.6 3.6-1m10.2 13.3s1.6-6.6 7.1-4.2m-2.2-.5s.5-3-.8-4.6m-3 4.3s.7 1.3.1 2.3"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".4" d="M517.3 311.4s6.2-2.8 4.3-7.7c0 0-.6-1.6-2-1.5 0 0-2.4.1-2 3.3 0 0 .8 3.2-.4 5.9z"/>
+  <path fill="#fff" d="M519.5 308.5s1.4-1.3 1.2-3.6c0 0-.1-.5.1-.6 0 0 .3-.1.3.5 0 0 .4 2.4-1.2 3.8 0 0-.1.2-.3.1 0 0-.2 0-.1-.2z"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".4" d="M526.1 307s4.4-2.7 2-7.3c0 0-.7-1.3-2-1 0 0-2.7.8-.6 4.6 0 0 1 2.4.6 3.8z"/>
+  <path fill="#fff" d="M527.2 300.8s-.2-.3 0-.5l.3.3s1.3 1.4.3 3.7c0 0-.1.3-.4.2v-.3s1-2-.2-3.4z"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".4" d="M513 310.2s-4.9-1.2-4-6.3c0 0 .5-2.2 2.6-1.9 0 0 2.5.7.9 3.9 0 0-1 2.2.5 4.3z"/>
+  <path fill="#fff" d="M511.1 304.2s-.1-.3 0-.4c0 0 .3 0 .4.2 0 0 .5.8.1 2 0 0-.4.7-.2 1.5 0 0 0 .2-.2.3l-.2-.3s-.2-.7.2-1.5c0 0 .5-1.2 0-1.8z"/>
+  <path d="M516.5 300.7s2.8-1.6 5 .2c0 0-.2-1-2-1.4 0 0-.9-2.7-3.5-2.4 0 0 1 1.3 2.5 2.3 0 0-1.5.2-2 1.3zm2-7.3s2 1.4 2.7 2.3c0 0 .7-1 1.7-1.5 0 0-1.1-.2-1.7.3 0 0-1-.9-2.6-1.1z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".5" d="M507.7 299.3s-.2-.7.3-1.4c0 0 .3-.5.2-1.2m19.6-40.3s2.9-.2 3.4-2.5m5-1.5s-1 0-1.9 1c0 0-.7 1-1.7.8"/>
+  <path d="M523.5 247.8s1.5 0 2.3-.7c0 0 .9-.6 1.4.3 0 0 .8 1.4-.7 2 0 0-1.8 1 1.1 2.8 0 0-3.5-1.3-2-3 0 0 1.5-1 .9-1.4 0 0-.2-.4-.8 0-.6.5-1.8.3-2.2 0z"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".4" d="M525.5 211.2s.7-1 .4-3.7 2.2-3.1 3.1-2.3c0 0 1 .8 0 2.6a7 7 0 01-3.5 3.4z"/>
+  <path fill="#fff" d="M526.4 209.1s1-1 .5-3.1l.1-.2.3.1s.5 2.3-.5 3.5c0 0-.2.2-.4 0v-.3z"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".4" d="M524.8 210.2s-.1-1.2-2-3c-2-2-.4-3.7.8-3.7 0 0 1.2 0 1.7 1.9a7 7 0 01-.5 4.8z"/>
+  <path fill="#fff" d="M524.5 207.7s0-1.4-1.8-2.8v-.3h.3s1.9 1.5 1.9 3.2c0 0 0 .2-.2.2 0 0-.2 0-.2-.3z"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".4" d="M522.1 209.3s-.5-.9-2.9-1.8c-2.4-.8-1.8-2.9-.8-3.4 0 0 1.1-.4 2.2 1a6.4 6.4 0 011.5 4.2z"/>
+  <path fill="#fff" d="M521 207.6s-.5-1.2-2.7-1.8c0 0-.2 0-.2-.2 0 0 0-.2.3-.1 0 0 2.4.5 3.1 2l-.1.3s-.2 0-.3-.2z"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".4" d="M523.6 210.2s-1.1.4-3.7-.9c-2.6-1.2-3.7 1-3.2 2 0 0 .4 1.3 2.4 1a7 7 0 004.5-2z"/>
+  <path fill="#fff" d="M517.6 211s1.2.8 3.3 0h.3s0 .2-.2.3c0 0-2.2 1-3.7.1 0 0-.2-.1 0-.3h.3z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".5" d="M519.9 202.1s1.2.6 1 2.1"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".5" d="M525.5 202.3s.5 1.6 0 2.5"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".4" d="M436.8 211.2s-.7-1-.4-3.7c.3-2.8-2.1-3.1-3-2.3 0 0-1 .8-.1 2.6a7 7 0 003.5 3.4z"/>
+  <path fill="#fff" d="M435.9 209.1s-.9-1-.5-3.1v-.2l-.4.1s-.4 2.3.6 3.5c0 0 .2.2.3 0v-.3z"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".4" d="M437.6 210.2s0-1.2 2-3c2-2 .4-3.7-.8-3.7 0 0-1.3 0-1.7 1.9a7 7 0 00.5 4.8z"/>
+  <path fill="#fff" d="M437.9 207.7s0-1.4 1.7-2.8c0 0 .2-.2 0-.3 0 0 0-.1-.2 0 0 0-2 1.5-2 3.2 0 0 0 .2.3.2 0 0 .2 0 .2-.3z"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".4" d="M440.2 209.3s.5-.9 3-1.8c2.3-.8 1.7-2.9.7-3.4 0 0-1-.4-2.2 1a6.4 6.4 0 00-1.5 4.2z"/>
+  <path fill="#fff" d="M441.3 207.6s.5-1.2 2.7-1.8c0 0 .2 0 .2-.2 0 0 0-.2-.2-.1 0 0-2.4.5-3.1 2v.3s.3 0 .4-.2z"/>
+  <path fill="#64b4d1" stroke="#00247d" stroke-miterlimit="2.6" stroke-width=".4" d="M438.7 210.2s1.2.4 3.7-.9c2.6-1.2 3.7 1 3.3 2 0 0-.5 1.3-2.5 1a7 7 0 01-4.5-2z"/>
+  <path fill="#fff" d="M444.7 211s-1.1.8-3.3 0h-.2v.3s2.4 1 3.8.1c0 0 .2-.1 0-.3h-.3z"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="2.6" stroke-width=".5" d="M442.5 202.1s-1.3.6-1 2.1"/>
+  <path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width=".5" d="M436.8 202.3s-.5 1.6 0 2.5"/>
+  <path d="M492.6 187.7s.8 2.3.5 4.4c-.3 2 .1 2.4.8 2.8.6.3 2-.3 2.1-1.8 0 0 1.6 3.2-1.5 5.3 0 0-2.3 1.4-4.2-.4-.7-.7-1-2.5-.6-4.2 0 0 .5-2.2-.4-4.6 0 0 1.3 1.4 1 4.1 0 0-.7 5 3 4.7 0 0 2.5 0 2.6-3 0 0-1 1-2.1.7a2 2 0 01-1.5-2.4c.1-1.3.5-3.6.3-5.6zm-4 8s-.3 4-3.8 4.9c0 0 .5-.7-.3-2.7 0 0-.8-1-.8-2.8 0 0-1 .9.2 3.2.8 1.4.1 3-.1 3.1-.3.1 5.8-.8 4.7-5.6zm-4.7-3.8s-.9-1-1-3.2c0-2.2-.4-2.8-.7-3 0 0 .4 1.9.3 3 0 1.3.1 2 .3 2.5 0 0-2 .3-3.2-2.5-1.1-2.7-2.3-2.5-2.9-2.5 0 0 .7.1 2 2.6 1.4 2.4 1.8 3 5.2 3zm-9-5.8s1 2.6 1.1 4c0 0-2.6-.8-3.3-3 0 0-2.7.9-1.7 4 0 0-2.4-.8-3.5-2.7 0 0 1.3 1 2.6 1.4 0 0-.2-2.6 3-3.5 0 0 .5 2.3 2.2 2.8l-.4-3zm4.2-4.6s1 1.3 2.8 1.3a3 3 0 002.7-1.3s-.1 2.2-2.7 2.3c0 0-2.8 0-2.8-2.3zM467.8 197l1.7 1.6s1 1 1.7-.2c0 0 1.1-2 2.4-1.9 0 0-1 .6-2 2.5 0 0-.2.6-1 .7-.4 0-.8.2-1.5-.6 0 0-.6-.7-1.3-2zm14-24.6c-2.7 0-.4 2-.4 2 0 3.4-2.6 4.5-4.4 3.5-1.9-1-.4-3.4-.4-3.4s-2 1.3-.8 3.3c1.3 2 4.8 1 6-.7 1.3 1.8 4.8 2.7 6 .7 1.4-2-.7-3.3-.7-3.3s1.5 2.4-.4 3.4c-1.8 1-4.5 0-4.4-3.4 0 0 2.3-2.1-.4-2.1zm1.7-3.7s1 1.7.8 4.1c0 0 .8-2.4-.8-4zm-8.4 3.9s-.2-1.8-2-2c0 0 1.6 1.1 2 2zm13.5 0s.2-1.8 2-2c0 0-1.5 1.1-2 2zm-16.2 2.7s1.4.4 2.2-.6l-2.2.6zm-4.5-11s1.6-.1 3.2 2.3c0 0-1.6.8-2 1.3 0 0 0-.8.8-1.4 0 0-.3-1.2-2-2.1zm26.8 0s-1.6-.1-3.2 2.3c0 0 1.6.8 2 1.3 0 0 0-.8-.8-1.4 0 0 .3-1.2 2-2.1zm-12.3 1.9s1.4.4 3.2-.6c0 0 2.2-1.2 3.6 0 0 0-1.2-.6-3.6.6 0 0-2.3 1.3-3.2 0z"/>
+  <path fill="#fff" d="M483.9 167.6s1.2-2.1 5-1.7c0 0-1 3-5 1.7z"/>
+  <ellipse cx="486.4" cy="166.9" fill="#784421" rx=".7" ry=".9"/>
+  <ellipse cx="486.4" cy="166.9" rx=".4" ry=".6"/>
+  <path d="M475.9 163s2.3.2 3.8 1c0 0 1.5 1 3.2-.3 0 0 1.9-1.1 3.1-2.6 0 0-2.9 2-4 2.3 0 0-1-.8-1.3-1.9 0 0 .1-.8 1.7-2.3 0 0-2.1.7-2.5 2.4a6 6 0 001.2 2s-.4.2-1.4-.5c0 0-2.3-.7-3.8 0zm6 14.2c-2 1.8 0 1.6 0 1.6s2 .2 0-1.6zm-1.2-11s-1.5.4-3.3-.6c0 0-2.2-1.2-3.6 0 0 0 1.2-.6 3.6.6 0 0 2.4 1.3 3.3 0z"/>
+  <path fill="#fff" d="M479.2 167.6s-1.2-2.1-5-1.7c0 0 1 3 5 1.7z"/>
+  <ellipse cx="476.6" cy="166.9" fill="#784421" rx=".7" ry=".9"/>
+  <ellipse cx="476.6" cy="166.9" rx=".4" ry=".6"/>
+  <path fill="none" stroke="#000" stroke-width="1.3" d="M554 148.3v135.5c0 36.2-72.3 48-72.3 48s-72.4-11.8-72.4-48V148.3h144.8z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bn.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bn.svg
new file mode 100644
index 0000000..ab6678f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bn.svg
@@ -0,0 +1,36 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-bn" viewBox="0 0 640 480">
+  <path fill="#f7e017" d="M0 0h640v480H0z"/>
+  <path fill="#fff" d="M0 33.3v213.4l640 100V233.3z"/>
+  <path d="M0 146.7v100l640 200v-100z"/>
+  <g fill="#cf1126" transform="translate(-160) scale(.66667)">
+    <path d="M695.7 569.7a117.2 117.2 0 01-49.4-17.2c-2.4-1.6-4.6-3-5-3-.4 0-.6 1.9-.6 4.1 0 6.4-2.6 9.6-9 11.3-6.2 1.6-15.6-1.6-23.2-8a68.3 68.3 0 00-24.7-13.5 39.9 39.9 0 00-28 3.6 8.7 8.7 0 01-2.8 1.3c-1.1 0-1-6.9.2-9 1.5-3 5.1-5.8 9.4-7.3 2.2-.8 4-1.8 4-2.3 0-.4-.8-2-1.7-3.6-2.9-5.1-1.7-10 3.4-13.9 5.2-4 14-4.6 21.7-1.7a32 32 0 004 1.4c1 0 .4-1.5-2.4-5.6-3.2-4.7-3.9-7-3.5-12.7a14.7 14.7 0 0113.5-13.5c5.8-.4 9.4 1.6 18 9.7a144 144 0 0086 41.6c8.3 1 24.8.5 34.5-1a156 156 0 0081.8-40.8c6.4-6 9.4-7.6 14.7-7.6 4.5 0 7.7 1.4 11 5 3 3.3 4 6.4 3.6 11.5-.2 3.2-.7 4.7-2.6 7.9-2.8 4.5-2.3 5 3.2 2.8 7.6-3 16.9-1.6 21.9 3.2 4.4 4.2 4.8 8.4 1.4 14-1.3 2.1-2.3 4-2.3 4.4 0 .6 1 .8 5.5 1.6 6 1 9.5 5.4 9.5 12.2 0 2-.3 3.7-.6 3.7s-2.6-.9-5-1.9c-7-2.9-11-3.6-19.2-3.5-6.2 0-8.3.3-12.6 1.7a57.5 57.5 0 00-19.5 11.5c-6.4 5.7-10.4 7.5-16.6 7.4-5.8 0-9.7-1.7-11.8-5-1.1-1.8-1.3-2.8-1-6.8.2-2.6.1-4.7 0-4.7-.3 0-2.5 1.4-5 3.1A80.5 80.5 0 01778 560a181.6 181.6 0 01-82.3 9.7z"/>
+    <path d="M706.3 525.2a136.4 136.4 0 01-97.9-55.7c-24.4-33.2-32-77.1-24.6-117.2 4-18.3 12-36.6 25.5-49.6a114.6 114.6 0 00-8.7 74.3c9 49.8 51 91.9 101.3 99.2 20 5.7 40.5-.4 59.5-6.5 42-14.8 74-54.6 77.8-99.1 3.3-24-.3-49.1-11.2-71 6.2 3.3 14 16.2 18.6 24.8 16 31 16.7 68.1 7.3 101.2-12.8 42.1-45 79-87.5 92.4a165.7 165.7 0 01-60 7.2z"/>
+    <g id="a">
+      <path d="M512 469.9c-2.5-.4-5.3 2.1-4.3 4.7 1.8 2.6 5 4 7.8 5.2a54.2 54.2 0 0023.2 3.6 49.6 49.6 0 0017-3c3-1 6.8-2 8-5.4 1.3-2.1-1-4.3-3.1-3.9-3 .7-6 2-9 2.9a57.7 57.7 0 01-20.3 2 54 54 0 01-14.4-4.2c-1.6-.7-3.1-1.7-4.9-1.9z"/>
+      <path d="M514.8 459.5c-2.5-.4-4.7 2.6-3.7 5 2 2.8 5.3 4.3 8.4 5.6a42.4 42.4 0 0017 2.9h1.5a37.6 37.6 0 0014.4-2.8c2.7-1.1 6.1-2.2 7.3-5.2.9-1.7.2-4.1-2-4.3-1.8 0-3.5 1.2-5.3 1.7a44.3 44.3 0 01-20.6 3.2c-4.4-.5-8.5-2.1-12.5-4-1.5-.7-2.8-1.8-4.5-2z"/>
+      <path d="M518.3 449.6c-2.2-.3-3.7 2.2-3.3 4.1.3 1.8 1.8 3 3.1 4a30 30 0 0018.6 5.3h1.6a28 28 0 0012-2.8c2.5-1 5.4-2.3 6.3-5.2.4-1.3.6-3.2-.9-4-1.6-.8-3.1.5-4.5 1a34 34 0 01-15.5 3.9 27 27 0 01-13.1-4c-1.5-.7-2.7-2-4.3-2.3z"/>
+      <path d="M481.5 302.7c-3.2 3.3-.7 9.3-1 13.5 1.8 13.2 3.9 26.5 8.8 39 6 12 18.8 18.5 26.5 29.2 2.8 5.1 1.8 11.3 2.4 17 .4 15.3.3 30.7 0 46 7 3.6 14.5 7 22.5 5.7 4.7-1.1 13.5-1.8 14.5-6.5l-1-79.5c-2.7-8.1-11-12.3-17.1-17.5a155.5 155.5 0 01-14.2-16.1c-2.6-4.5-12.9-6-9.2 1.6 2.2 6.7 7.7 11.6 9.1 18.6.3 3.9 5 11 1 13.2a24.5 24.5 0 00-10.7-10c-4.4-3.3-11.7-4.7-13.3-10.5a42.9 42.9 0 00-11-22c1.5-7.4 0-16.7-6.4-21.5l-.9-.2z"/>
+      <path d="M491.4 304.2c-3 .5-2.8 4.2-1.5 6.2a27.2 27.2 0 011.1 13.4 44.1 44.1 0 0110.6 21.7c0 3 3.2 4 5.3 5.5 4.9 3.1 10.3 5.4 14.7 9.3.9 1 1.6 2 1 0-.7-2.6-1-5.4-3-7.3-2.8-3-6.2-5.6-10.2-6.4-.3-4.2-2.3-8-4.1-11.6-2-3.5-4.1-7.2-7.5-9.4 0-6.1 0-12.5-2.6-18.2-.8-1.4-2-3.1-3.8-3.2z"/>
+      <path d="M499.7 306.6c-2 .6-1.6 3.2-1 4.7a54 54 0 011 13.2c3.9 3 6.2 7.4 8.4 11.6 1.4 2.8 2.6 5.8 3.1 8.9 3.1 1 5.8 3 8.2 5-1-2.8-3-5-4.5-7.7s-3-5.6-3.7-8.7c-3-3.1-4.6-7.6-4-12 .2-4.7-1.3-9.6-4.5-13.2-.8-.8-1.8-1.7-3-1.8z"/>
+      <path d="M509.2 308c-1.2.2-1.8 1.2-2.4 2.1-.3.9.8 1.8 1 2.8a21.8 21.8 0 011.4 10.4c-.1 2.5.8 5 2 7a3.9 3.9 0 013.5-2.8c.5 0 1.4.2 1-.7-.4-4.8-1.1-9.6-2.8-14a9.6 9.6 0 00-2.8-4.5c-.2-.2-.6-.4-1-.3z"/>
+    </g>
+    <use width="100%" height="100%" transform="matrix(-1 0 0 1 1440 0)" xlink:href="#a"/>
+    <path d="M715.7 476a35.6 35.6 0 01-29.9-24c.3-2.2 3 1.2 4.3 1.5a19 19 0 008 2.6c3.5 1.5 5.7 5 9.1 6.9 1.6 1.2 7.2 3.6 6.1-.3-1.3-2-2.2-4.6-1-7 1.8-4.1 4.7-7.7 7.7-11.2 2.1-.7 3.6 3.6 5.1 5 2.1 3.3 4.7 7.3 3.4 11.3-1.2 1.5-2 6 1.3 4.6 4-1.8 7.3-4.8 10.6-7.6 3-2 6.7-2.1 9.7-4 1.5-.3 4.4-3.1 5-1.6a44.9 44.9 0 01-7.4 12.3 32.1 32.1 0 01-18.8 10.9c-4.4.8-8.8 1-13.2.6z"/>
+    <path d="M731.5 460.2c.3-2.7-.3-5.4-1.7-8-2.1-4.2-5-8-8-11.9-2.8-1.6-4.3 3.7-6.1 5.2-2.9 4.3-6.5 8.7-6.7 14-1.6 2.5-4.6-2-5.9-3.5a19 19 0 01-4-12 50.8 50.8 0 013.6-20.6c2-5.6 5.1-11 4.8-17 .2-4.7-.7-9.7-4.4-12.8-3.6-2.8 2.3-3.4 4.1-2 3.2.3 4.9 5.5 7.8 4.2 1.1-2.7 1.4-6 3.8-8.1 2.3-3.2 4.7 1.3 5.5 3.5 1.7 1.8 0 6.5 2.6 6.6 3.2-2.3 5.5-6 9.6-6.9 1.7-1 4.5 0 2.3 1.8-3 2.9-5.6 6.4-6.2 10.7-.9 5.3.4 10.7 2.7 15.4 4.5 9.4 8 20 5.7 30.5-1 4.6-4.2 8.6-8 11.3-.5.3-1.3.3-1.5-.4z"/>
+    <path d="M726.7 389.6a21.2 21.2 0 00-5.6-7c-2.4 0-3.9 3-5.5 4.6-1.1 2.1-2.5 5.6-5.3 2.9-4.5-2.6-5.2-8.3-5.2-13-.3-7.6 2.8-14.7 5.5-21.6 1.7-4.3 1.3-9.2.2-13.6-1.3-5-5.4-8.6-8.5-12.6.2-1.5 4.2-.7 5.7-.4 3.4.9 5.4 3.8 7.9 6 1.8-.6 1-4.2 1.9-5.9 0-2.4 3.2-5.5 4.5-2.1 2 2.2 0 6.5 2.5 7.8 2.4-.9 3.6-3.5 5.8-4.7a8 8 0 017.8-.5c.9 2.2-2.6 4-3.6 6a20.4 20.4 0 00-3.8 18c1.4 5 3.8 9.5 4.7 14.5a40.1 40.1 0 01-.5 17.2c-.9 3.4-3.8 5.6-6.8 7-.8-.7-1.2-1.7-1.7-2.6z"/>
+    <path d="M711.6 326.9c-3.4-2.5-4.5-4.8-4.5-9.5 0-2.3.5-3.6 2-5.8 2.4-3.2 2-4.2-1.3-3.3-5.3 1.5-7.8.2-8-4.3 0-2.2.4-3.1 3.3-6.7 2.4-2.8 3.3-4.3 2.8-4.8-.5-.4-3.3 2-9 7.8a124 124 0 01-11.4 10.6c-9.8 6.6-19.2 7.6-23.5 2.5-2.2-2.6-2.1-4 .4-5.6a27.4 27.4 0 004.4-3.7 86 86 0 0116.1-11.6c3.6-1.8 4.4-3 2.1-3-3 0-12.5 6.2-19.8 12.8-2.1 2-5.2 4.2-6.8 5a25.4 25.4 0 01-13.9 1c-2.2-.7-6.3-4.5-6.3-5.9 0-.3 1-1.1 2-1.8a30 30 0 004.6-3.2c5.8-5 16.8-10.3 25.5-12.2 2.8-.5 1.7-2-1.4-1.8a56 56 0 00-25 11.7c-8.3 6.9-20.8 6.2-24.8-1.3-.7-1.3-1.2-2.5-1-2.7a92.8 92.8 0 0020.4-7.8 51.5 51.5 0 0118.1-6.5c2.8-.5 3-1.9.3-2.2-3.6-.4-9 1.4-18.5 6-12.3 6.1-15.8 7.2-22.2 6.8-6-.4-9.3-1.9-14-6.4-3.2-3-7.6-10.5-6.8-11.4a63.5 63.5 0 0015.8 1.3c8.3 0 10.6-.2 15-1.5a84.3 84.3 0 0024-12.1 57.5 57.5 0 0136.8-13.6c12.4 0 20.2 2.8 27.2 9.9 2.4 2.4 4.4 3.9 4.7 3.6.3-.3.6-4.5.7-9.3 0 0 3.7-.4 4.5.7 0 7.7 0 8.4 1.2 8.4.7 0 1.5-.8 2-2 1-2.5 5-6 9.2-8.2 9-4.5 24.7-4.7 37.3-.3a62.4 62.4 0 0116.7 9.5 90.2 90.2 0 0024 12c6.8 2 19 2.5 25.1 1a61.9 61.9 0 015.4-1c2.3 0-1.6 7.6-6.2 12.1-8.4 8.2-19.3 8.1-34.6-.1-9.6-5.2-21-8-21-5.2 0 .6.6 1 1.5 1 3.3 0 9.7 2.2 18.7 6.5a53.7 53.7 0 0018.3 6.5c2.3 0 2.4 1.5.2 4.7-2.3 3.4-6.2 5-11.7 5-5.3 0-8.3-1.1-13-5-8-6.6-27.6-14-26.9-10 .2.7 1.1 1.2 3.2 1.5a56 56 0 0123.1 11l5.9 4.3c1.1.6 1.1.8.2 2.5-1.4 2.8-5.2 4.9-9.2 5.3-5.2.6-9.8-1-14.5-5-10-8.3-19.3-14.3-22.3-14.3-2.5 0-1.4 1.4 3 3.7a79.7 79.7 0 0115.8 11c2 1.9 4.3 3.7 5 4.1 1.9 1 1.8 2.4-.2 5s-5.4 3.8-9.7 3.3c-8.6-.9-15.4-5-26-16a70.7 70.7 0 00-8.2-7.8c-1.4 0-.5 1.9 2.2 5 3.4 3.7 4 5.8 2.7 9-1.1 2.6-3 3.3-6.8 2.2-4-1-4.6 0-2 3.1 3.8 4.9 3.3 10.7-1.5 14.8a12 12 0 01-3.4 2.3c-.4 0-1.4-1-2.3-2.4-3-4.6-5.7-4.6-8.7 0a53.6 53.6 0 01-2 3 113.1 113.1 0 01-3-2.2z"/>
+    <path d="M726.7 233l-5.2 4-4.6-3.4v27.8h9.8z"/>
+    <path d="M694.9 204.3a88.3 88.3 0 01-9 32.3l11.1-10.3 7.7 9.2 8.4-9.4 8.5 8 8.2-8.3 8.5 10 7.4-8.2 12.6 9c-4.6-10-10.7-18.6-10-32.8-12.1 9-41 10.6-53.4.4z"/>
+    <path d="M717 197.6c-4.5 0-9.2.1-13.4 1a20.1 20.1 0 00-7.8 3c.3 8.6 41 12.1 51.9.2a20 20 0 00-8.2-3.3c-4-.8-8.6-.8-12.9-1v7.1H717v-7z"/>
+    <path d="M724.9 154h-6.3v49.4h6.4z"/>
+    <path d="M724.9 155.2l-2.4 23.7 24.3 11.9-12.3-16.5 16.8-5.5zm-2.7-6.1c-3.7 0-6.4 1.4-6.4 3s2.7 3 6.4 3 6.4-1.4 6.4-3-2.7-3-6.4-3z"/>
+  </g>
+  <g fill="#f7e017">
+    <path d="M314 375.9c2.7-.9 4.2-2.5 5.3-5.6.5-1.6.9-3.2.8-3.6-.2-1-1.4-1-2.6.1-.9.7-1 1.1-.8 2.6.7 3.7-.7 4.7-7.7 5.4-.7 0-2.8 0-4.5-.3-3.4-.4-4.6 0-3.4 1a7 7 0 002.1.9c1.9.5 8.8.2 10.8-.5zm14.7-.6c.4-.4 1.7-1 3-1.5 1.7-.5 2.6-1 3.3-2.2 2.1-3 1.7-5.7-1.3-9.3-1.7-2-2.4-1.9-3.7.3-1.2 1.8-1.1 2 .5 2.4.9.2 1.7.8 2.1 1.6 1.8 3.1 1.3 5-1.4 5-2.4 0-3 .4-3.7 2l-.6 1.9c0 .6 1 .5 1.8-.2zm-4.8-3.5c.4-1.3.6-3.5.5-8a33 33 0 00-.3-6.4c-.4-.4-2.3.8-2.6 1.7a3 3 0 00.5 2.1c.6 1.2.7 2.4.5 7-.3 6 .1 7 1.4 3.6z"/>
+    <path d="M312.6 369l.7-5c.1-1.7.5-3.8.7-4.7.7-2.3 0-2.9-1.8-1.6l-1.3 1 .2 3.3c.3 3-.2 8.5-.9 10.7-.2.6.1.4.9-.5.6-.7 1.3-2.2 1.5-3.3zm-10 1.6c2.4-2 2.1-5.6 2.7-8.4 0-1.9 1.2-4.1.4-5.8-2.3.4-3.7 2.6-2.5 4.7 0 2.5 0 5.2-1.3 7.4-1 1.5-4.4 1.1-4.2-1 .8-3-2.9-1.5-4.3-.7-1.1.8-3.5.9-2.6-1-.6-2.7-3.9-1-5.7-1-1.7 0-.1-3.5-2.6-3-4.5-.3-9.5.1-13.5-2.6-2.3-1.1-2-3.9-.7-5.7 1.4-2.4 1.8-5.5 4-7.4 2.3-2.1-2-1.2-3-.5-2.2 1.2-.2 4.3-2 6-1 1.8-2.4 4.2-4.8 3.9-3.5-.7-5.5-4-8-6-2.2-.5-1 3.4.2 4.2a21.9 21.9 0 007.4 3.6c2.6-.5 2.7 3 5 3.5 4 2 8.6 2.5 13.1 2.8 1.8.1.8 3.3 3.1 2.6 1.3.4 4.3-.5 4.4 1-2 2.4 1.9 2.3 3.3 2 1.9-.4 4.2-1 4.7 1.4 1.5 1.7 4.3 1.4 6.2.5l.7-.5z"/>
+    <path d="M262.8 350.4a23.9 23.9 0 002.4-4.2 16 16 0 012-3.6c1.2-1.2.5-2-1.4-1.6-1 .2-1.4.6-1.5 1.5a23 23 0 01-2.5 7c-1.7 2.5-1.7 2.6-1 2.6.3 0 1.2-.8 2-1.7zm-25-15.7c-1.9 0-2 1.2-.2 1.8 1 .3 1.7 1 2.3 2.3 1.7 3.5 2.8 4.2 7.5 4.6l3 .2.2 1.9c0 1 .3 1.8.5 1.8l2.6-1c2.2-1.2 4.3-3.8 4.3-5.5 0-1-1.8-2.2-3.4-2.2-.7 0-2 .6-3.1 1.4-3.4 2.4-7 2-9-1.2-1.5-2.6-3.2-4-4.7-4zm16.3 6.5c.9 0 1 .7.6 2a.9.9 0 01-1.7 0c-.4-1 .1-2 1-2zm126.5-4c-1.3 0-1.6.2-2.4 1.4-1.3 1.9-1.4 6-.2 7.4.7.9.8.9 2.3.2 2.2-.9 2.6-.8 2.5.3 0 3-4.2 8.7-8.6 11.7a9.7 9.7 0 00-2.4 2c-.3.8 1.3.7 3.3-.4a21 21 0 007.9-8c1.1-2.3 1.3-3 1.5-7 0-3.8 0-5-.6-6.2-.8-1.4-1-1.5-2.8-1.5h-.5zm.1 2.5c1 0 1 .2 1.2 1.6 0 1-.1 1.7-.7 2.3-.8.7-1 .7-1.6-.4-1-1.6-.4-3.5 1.1-3.5zm-20.2 28.5c3.9-2 6.2-4.1 7.6-7.2a20 20 0 001.3-3.1c0-.6-1.9-1.5-3-1.5s-1.4-.8-1-3c.5-2.1 0-4.8-1-4.8-.3 0-1 .5-1.3 1.1-.6 1-.7 1.4-.2 2.7.7 2 .1 3.6-1.7 4.9-.9.6-1.3 1.3-1.3 2l.1 1 2.1-1 2-1.2 1.1 1c.7.4 1.2 1.2 1.2 1.7 0 2.4-6.8 6.4-11.4 6.8-2.5.2-3 0-3.8-.8-.7-.7-.9-1.3-.7-2l.5-2.6c.4-2.1-.4-1.8-2 .6-1.2 2-1.6 4.1-.9 5.2.6 1 4.4 1.8 7.2 1.6 1.7 0 3.4-.5 5.2-1.4zm26-14.5c2.4-2.5 3.5-5.5 3.5-10v-3.5l2-1c2.7-1.2 5.2-3.7 5.2-5.1 0-1.4-.7-1.4-1.8.2-.9 1.1-2 1.8-6 3.7-1 .4-1.1.7-1.4 5-.2 5-1 6.8-3.7 10.2-1.7 2-1.8 2.4-.6 2.4.5 0 1.8-.9 2.8-2zm-26.7-2.8c.2-.7-1.2-1.2-1.7-.6-.3.2-.4.6-.2.9.4.6 1.6.4 1.9-.3zm36.8-9.5c.3-.8-1.1-1.3-1.7-.7-.2.3-.3.7-.1 1 .4.6 1.6.4 1.8-.3zm-44.3-25.9c-1 .5-1.5 1.5-2.1 2.3-.5.3-.1.6.1 1 1.7 1.7 2.4 4.2 3.2 6.5.8 2.7 1.8 5.6 1 8.4-.3 1-1.2 2.1-2.4 1.8-2-.1-4-.7-6-.7-1.9.1-3.3 1.8-5.1 1.6-1.2 0-1.2-2.4-2.2-1.7-.6 1.3-.3 2.7-.4 4 .2.3.8.1 1.1.2h3.7c.2 1.2.2 2.7 1 3.7 1.3.4 2.8 0 4-.5 1.2-.6 1.4-2.1 1.8-3.3.4-1.3 2-1 3-1.5a5.7 5.7 0 004-5.7c-.2-3.9-1.6-7.4-2.8-11-.5-1.6-.9-3.3-1.5-4.9l-.4-.2zm-6 21.8c1.3 0 1.9 1.6 1.6 2.7-.5 1.5-2.4.6-2.7-.5-.7-1-.3-2.3 1-2.2z"/>
+    <path d="M296 324.8c-.6 0-1.3.2-2 .7-3.5 2.5-4.5 5.4-2 6.6 1.7.8 1.3 1.8-1.5 3.2-4 2-7.5 1.7-14.2-1-1.6-.7-2-.4-1.7 1 .4 1.5 1.8 2.3 5.1 3 3.6 1 8 .7 10.8-.5a14 14 0 004.3-3.4l2.2-2.3 2.5.3c3.1.4 3.2.4 3.2 1.9 0 1.2 0 1.2 2.9 1.5l4.7.2c1.3 0 2 .3 2.4.9.6.7.9.8 5.6.4 4.4-.4 5.2-.4 7.2.3 1.4.4 3 .6 4.1.5 3.4-.4 8-3.1 8.7-5.1 0-.3 1.3-.7 2.7-1 3.4-.7 3.5-1.4.4-1.8a22.9 22.9 0 01-4.6-1.1 12.2 12.2 0 00-3.5-.9c-1.7 0-3.3 1-3.3 2.2 0 .7.2.8 2.3.6 1.8-.2 2.4-.1 3.4.7.7.5 1.1 1.1 1 1.3-.5.8-4.5 2.6-6.2 2.9a4.7 4.7 0 01-3-.5c-1.6-.8-3.8-.9-4.3-.2-.2.3-.6.1-1.3-.5l-1-1-2.4 1c-2.4 1-3.3 1-3.3-.2 0-.5-.7-.6-4.2-.3-3.9.2-4.3.1-5-.7-.7-.7-.7-1-.2-1.7.4-.8.4-1 0-1.5-.4-.4-1-.4-2.5 0-3.9 1-5 .5-5-2.5 0-1.9-1-3-2.3-3zm-1 2.8c.2 0 .4.1.7.4.3.3.5 1 .3 1.3-.3.9-2 .9-2.3 0-.2-.5 0-1 .5-1.3l.8-.4z"/>
+    <path d="M288 330.4c2.4-1.5 2.4-1.4 2.7-5.5.2-3 .2-3.2-.6-3.2-1.2 0-1.8 1.3-1.8 3.7 0 1.6-.2 2.3-1 3-2 2-6.8 1.1-7.5-1.3-.2-.8.1-1.6 1.1-3 2.1-3 1.7-3.8-1-1.5-1.7 1.6-2 1.6-1.7.3.3-1.3-.3-1.8-1.8-1.4-.7.2-1.2.6-1.3 1.6-.2.8-.6 1.3-1.3 1.5-1.2.3-3.2-.8-3.2-1.8 0-.7 3-4.4 6.9-8.4 1.4-1.5 2.6-3 2.6-3.1 0-.2-.8-.4-1.7-.4-1.4 0-1.8.2-1.8.8 0 .4-1.9 3-4.3 5.7-5 5.6-5.4 6.7-3 8.2a6 6 0 006.6-.2l1.6-1.1v2c0 2.5.5 3.5 2.5 4.5a8 8 0 008-.4zm104.4-34.6c-1.8 1.1-.4 3.4 0 5-.8 2-3.5 2.6-5.5 3-2.8.5-4.8 2.8-5.8 5.3-.6 1.6-2 4-3.5 1.6-1.3-1.3-3.7-2.4-5.2-.8-1.2 1.1-1.5 2.7-2 4.2-.7-1.1-1-2.8-2.4-3.2-2.4.3-1.5 3.3-.4 4.5 1 1.5 2 3.3 1 5-1 2-4 3.4-5.7 1.7-1.6-.9-.5-4-2.2-4.2-.8.6-.8 3.9-2.1 2.1-1-1.5-.4-3.6-1.6-4.9-1.3.2-2.4 2.5-2 3.7 1.8 2.4 2.6 5.4 3.3 8.3.4 1.2-.1 3.5 1 4 .7-1.9 0-4 .6-5.9 1.8-.2 3.7.6 5.5.2 2.7-.3 4.7-2.6 5.6-4.9.3-1.8 0-3.6-.1-5.4 2 .4 4.2.4 6.2 1 1 1.5-.3 3.7-.6 5.3-1 3.4-3.7 5.8-6.2 8-1.1.7-1.2 2.4.3 1.5a15 15 0 007.5-8c1.1-2.6.2-5.5 1-8.1 1-2 3.5-1.6 5.4-1.6 1.9 0 3.5-2.3 2.9-4.2-.6-2.2 1.7-3.2 3.2-4 2.1-1 3.7-3.1 3.5-5.5 0-1.3 0-3.6-1.7-3.7zm-7.3 12.5c2.2.6-.4 4.8-1.6 2.1-.4-1 .5-2.1 1.6-2.1zm-10.3 3c2.9-.1 1.8 4-.6 2.2-1.3-.7-.9-2.2.6-2.2zM270 327.6c0-.4-.2-.7-.6-.7-.7 0-1.2.7-.9 1.3.4.7 1.3.3 1.5-.6zm34-3.6c0-.7-.3-.9-.8-.8-1.1.2-1.3 1.7-.1 1.7.6 0 .9-.3.9-1zm-42-20.4c-1.3-.3-2.2.9-2.7 2-1 1.7-2.2 3.4-4 4.3-1.3.4-2.7-.1-3.9-.8-1.3-.7-1-2.3-1.6-3.4-1-.8-2.7.3-2.6 1.5-.1 1.6 1.3 2.5 2.6 3.1 1 .7 2.6 1 3 2.3 0 1.1.4 2.4 1.7 2 1.5 0 2 1.8 1.3 2.9a6.3 6.3 0 00-.7 4c.7.7 1.4-1 2-1.4l1-1.4c2.7.1 5.3.5 8 .4 2 0 3.5-1.2 4.7-2.6 1.8-1.8 3.2-3.9 5.1-5.4 1.4-.4.7-3-.8-2.2-1.3.5-1.7 2-2.6 2.9a31 31 0 01-5 5.2c-1.5.6-3.1.3-4.6 0-.6-.5 1.2-1 1.5-1.6.8-.8 1.8-1.6 2.3-2.7-.5-1-1.9-1-2.9-1-2.4.2-4.3 2.3-6.8 2.5-1.9 0-.9-2 0-2.7 1.6-2 3.4-3.8 5.1-5.7.5-.6 2.3-1.2 1.2-2-.4-.2-.9-.2-1.3-.2zm1.2 10c1.3.7-.8 1.8-1.6 1.7-1.1.3-1.2-.8-.2-1 .6-.4 1.2-.7 1.8-.7zm-3.8 2.6c.7 0 2.2.7.8 1.1-1 .8-2-.8-.8-1.1z"/>
+    <path d="M289.4 317.8c0-1-1.6-.8-1.8.2-.2.6 0 .7.8.6.6 0 1-.4 1-.8zm74.7-6.6c.2-.9-1-1.5-1.7-.8-.7.6 0 1.9.8 1.7.4 0 .8-.5 1-.9zM248 302.1c1.1-1 1.2-1.1.7-3.3-.8-3.1-.7-3.5.5-3.8 1.5-.3 5.3 1.7 6 3.3.8 1.3.7 1.4-.4 2.4-1.2 1.1-1.2 2.4 0 2.4 1 0 3.7-2.6 3.7-3.5 0-1.3-3-4.4-5.4-5.5a10.7 10.7 0 00-4.6-1c-3.1 0-3.5.7-2.7 4.2 1 4.2-.3 4.8-3.7 1.6a10.4 10.4 0 01-3.5-8.6c0-4 1.6-6.1 5.1-6.6 2.4-.3 2.3-.9 0-1.2-3.6-.6-6.6 1.8-7.7 6-1.3 4.7 1.6 10.4 6.7 13.3 2.7 1.5 3.7 1.6 5.3.3zm139.2-5.2c.3-.2.5-.9.5-1.4s.5-1.6 1.1-2.4c.6-.8 1-1.6 1-1.8 0-.8-1.3-.8-2.3 0-1.1.9-2 1-2 0l1.2-.9c1.6-.7 1.7-1.5.4-2.1-1.7-.8-3.5.6-3.6 3-.1 1.6 0 1.8 1.2 2.5 1.1.7 1.3 1 1.1 2-.3 1.6.4 2.2 1.4 1.1zm13-1.4c1-1 1.8-1.9 1.8-2.2 0-.3.9-1.2 1.9-2 2.8-2 3.5-4 2.2-7.3-.5-1.3-2-3-5.5-6a26 26 0 00-5.4-4.4c-.9 0-.7 3.4.2 3.7 1.7.6 2.8 1.3 5.4 3.7 3.2 2.8 4.6 5.5 3.8 7-.7 1.4-1.7 1-4.5-2a13.8 13.8 0 00-3.2-2.9c-.3 0-.5.6-.5 1.4 0 1 .5 2 2 3.5 2.3 2.6 2.5 4.1.7 5.5a5 5 0 01-1.4 1 33.2 33.2 0 00-9-10c-.3 0-.5.4-.5 1.4 0 1.3.2 1.7 1.2 2.2a38 38 0 017 7l1.8 2a9 9 0 002-1.7zm6-16.8c-.5-1.2-8.4-9.4-9.3-9.4-.4 0-.5.5-.4 1.8 0 1.6.3 1.8 1.4 2.1a20 20 0 014.6 3.7 17 17 0 003.7 3v-1.2zm-47.8 92.6a1.2 1 0 11-2.3 0 1.2 1 0 112.3 0zm4.2-1.4a1.2 1 0 11-2.4 0 1.2 1 0 112.4 0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bo.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bo.svg
new file mode 100644
index 0000000..c2dcbc8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bo.svg
@@ -0,0 +1,676 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bo" viewBox="0 0 640 480">
+  <path fill="#007934" d="M0 0h640v480H0z"/>
+  <path fill="#ffe000" d="M0 0h640v320H0z"/>
+  <path fill="#d52b1e" d="M0 0h640v160H0z"/>
+  <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M368.6 210.7l-98 97.9a91.8 91.8 0 00-1.3-1l98-97.8a6.3 6.3 0 011.3 1z"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M374.7 204.5c-.4.7-1.4 2.5-1 3.8l-2-1.5c.5 1 .4 1.4-.1 1.8-.3.4-1.4.3-2.1.2.7.4 1.5.8 2.4 1h2c-.7.3-2.2.8-3.3 1-.5.1-1.6.2-2 0-.6.5-1.9-.4-1.3-1-.3-.3-.3-.8-.4-1.4 0-.7.1-1.9.7-3l.5 1.7c.2.5.7 1 1.1 1.4-.2-.5-.4-1.2.1-1.8.5-.5 1.3-.5 2-.2l-1.9-1.3c.8 0 3.3-1 4.1-1.5a62.3 62.3 0 004.9-3.8 57 57 0 00-3.7 4.6z"/>
+  <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M387 222.8l-125.7 70.9a85 85 0 00-.9-1.2l125.7-71a5.6 5.6 0 011 1.3z"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M394.9 218.3c-.6.6-2.2 2-2.2 3.4l-1.4-2c.2 1-.1 1.5-.7 1.7-.4.4-1.4 0-2-.3a5.1 5.1 0 002 1.5l1.7.6c-.6.1-2.3.3-3.4.2-.5 0-1.5-.2-1.9-.6-.7.4-1.6-.8-1-1.2 0-.4 0-.8.2-1.4.2-.7.7-1.8 1.6-2.8a7.8 7.8 0 000 1.8c0 .5.3 1 .5 1.6 0-.5 0-1.3.7-1.7.7-.4 1.4-.2 2 .3l-1.4-1.7c.8.1 3.5-.2 4.4-.5 1-.2 4.1-1.6 6-2.5-1.7 1-4.6 3-5.1 3.6z"/>
+  <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M376.3 217.5l-113 85.2-1-1.1 112.9-85.2a6 6 0 011.1 1z"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M383.4 212.1c-.5.6-1.8 2.3-1.6 3.6L380 214c.3 1 .1 1.5-.4 1.7-.4.4-1.5.2-2.1 0 .6.5 1.3 1 2.2 1.2l1.9.3c-.7.3-2.3.6-3.4.6-.5 0-1.6 0-2-.3-.6.5-1.7-.6-1.1-1.1-.2-.3-.1-.8-.1-1.4a6 6 0 011.1-3 7.8 7.8 0 00.2 1.8c.2.6.5 1 .9 1.6-.2-.5-.2-1.3.4-1.8.6-.4 1.3-.3 2 0l-1.6-1.5c.7 0 3.3-.6 4.2-1 1-.4 3.8-2 5.5-3.1-1.4 1.2-4 3.5-4.4 4z"/>
+  <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M271.4 210.7l98 97.9 1.3-1-98-97.8a6.3 6.3 0 00-1.3 1z"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M265.3 204.5c.4.7 1.4 2.5 1 3.8l2-1.5c-.5 1-.4 1.4.1 1.8.3.4 1.4.3 2.1.2-.7.4-1.5.8-2.4 1h-2c.7.3 2.2.8 3.3 1 .5.1 1.6.2 2 0 .6.5 1.9-.4 1.3-1 .3-.3.3-.8.4-1.4 0-.7-.1-1.9-.7-3a8 8 0 01-.5 1.7c-.2.5-.7 1-1.1 1.4.2-.5.4-1.2-.1-1.8-.5-.5-1.3-.5-2-.2l1.9-1.3c-.8 0-3.3-1-4.1-1.5a62.3 62.3 0 01-4.9-3.8 57 57 0 013.7 4.6z"/>
+  <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M253 222.8l125.7 70.9c.2-.3.6-1 .9-1.2l-125.7-71a5.6 5.6 0 00-1 1.3z"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M245.1 218.3c.6.6 2.2 2 2.2 3.4l1.4-2c-.2 1 .1 1.5.7 1.7.4.4 1.4 0 2-.3a5.1 5.1 0 01-2 1.5l-1.8.6c.7.1 2.3.3 3.4.2.6 0 1.6-.2 2-.6.7.4 1.6-.8 1-1.2 0-.4 0-.8-.2-1.4a6.3 6.3 0 00-1.6-2.8v1.8c0 .5-.3 1-.5 1.6 0-.5 0-1.3-.7-1.7-.7-.4-1.4-.2-2 .3l1.4-1.7a17 17 0 01-4.4-.5 70.5 70.5 0 01-6-2.5c1.7 1 4.6 3 5.1 3.6z"/>
+  <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M263.7 217.5l113 85.2 1-1.1-112.9-85.2a6 6 0 00-1.1 1z"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M256.6 212.1c.5.6 1.8 2.3 1.6 3.6l1.7-1.7c-.3 1-.1 1.5.4 1.7.4.4 1.5.2 2.1 0a5.4 5.4 0 01-2.2 1.2l-1.9.3c.7.3 2.3.6 3.4.6.5 0 1.6 0 2-.3.6.5 1.7-.6 1.1-1.1.2-.3.1-.8.1-1.4a6 6 0 00-1.1-3 7.8 7.8 0 01-.2 1.8c-.2.6-.5 1-.9 1.6.2-.5.2-1.3-.4-1.8-.6-.4-1.3-.3-2 0l1.6-1.5a15 15 0 01-4.2-1c-1-.4-3.8-2-5.5-3.1 1.4 1.2 4 3.5 4.4 4z"/>
+  <path fill="#00e519" stroke="#000" stroke-width=".1" d="M300.1 283.4c4-2.6 15.1-4 16.7-3.6-8 6-16 6.3-16.7 3.7z"/>
+  <path fill="#ffe533" stroke="#000" stroke-width=".1" d="M300.2 283.5c.7 2.6 8.7 2.4 16.6-3.6a69 69 0 01-16.6 3.6z"/>
+  <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M300.2 283.5c.7 2.6 8.7 2.4 16.6-3.6a69 69 0 01-16.6 3.6z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M300.1 283.4a40.6 40.6 0 0116.7-3.6c-8 6-16 6.3-16.7 3.6z"/>
+  <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M347.6 220.2L322 272.5c-1.3 1-2.3-.3-2.7-.2-1.5 1.7-3.6 2-4 2.5-1.8 2.4-.8 4.3-.7 4.5 1.3 1.8-1.6 3.5-1.5 4-.6 1-2.7.9-3.1 2l-4.8 9.3c-.6.5-3.7 6.1-3.7 6.1-2 0-10.2-5.2-10.4-5.1 4.6-7.3 15.6-18.5 15.3-19.2 3.1-5.2 8-10.9 10.1-10.8 3-1.6 4.5-5.7 4-6.6 2.2 0 3.5-1.4 3.6-1.5l18.8-37.6c1.6-.5 1.4.1 1.9 1 0 0 1-1.2.9-1.3.9-.4 1.8.2 1.8.6z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M348.6 208.8c-.6 1 .2 1 .5 1.1l1 .3c1.3 0 2 .7 2 1l-30 61.3c-1.3 1-2.5-.3-2.9-.1l20.6-41.8 10-18.8-2.8-1.2c-.8-.2-1-.8-.7-1.6l12.6-21.6-10.2 21-.1.4"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M348.6 208.8c-.6 1 .2 1 .5 1.1l1 .3c1.3 0 2 .7 2 1l-30 61.3c-1.3 1-2.5-.3-2.9-.1l20.6-41.8 10-18.8-2.8-1.2c-.8-.2-1-.8-.7-1.6l12.6-21.6-10.2 21-.1.4"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M308.8 272.4c-3 0-4.6 2-2.7 4.7m1.4-2.4c-1 .6-1.7-.3-1.7-.3m15.2-13c-1.5 5.6-4.3 9.3-5 10.4-2 2.2-3.9 7.2-3.5 8.1l-8.1 13.3"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M322 272.7c-1.4-.5-5.7-4.5-10-3.8-3.3 3.8-5.3 7.7-5.9 8.2 4 3.3 6.7 5 7.6 5.4.7-.4 1-1.5 1-1.5.9-1-.2-1.7-.2-1.7.2-2.5 2-4.2 3.8-4.3 2.2-.2 1.6-.4 1.9-.4 1-.6 1.8-1.9 1.8-1.9z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M322 272.7c-1.4-.5-5.7-4.5-10-3.8-3.3 3.8-5.3 7.7-5.9 8.2 4 3.3 6.7 5 7.6 5.4.7-.4 1-1.5 1-1.5.9-1-.2-1.7-.2-1.7.2-2.5 2-4.2 3.8-4.3 2.2-.2 1.6-.4 1.9-.4 1-.6 1.8-1.9 1.8-1.9z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M317.6 272.8c-2 0-4 .9-4.8 2.6l4.8-2.6"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M317.6 272.8c-2 0-4 .9-4.8 2.6m-3.5.7c.1.4.7.6 1.1.5.6-.2.8-.7.6-1-.2-.5-.7-.7-1.2-.5-.5.1-.7.6-.5 1zm2.5-3.4c.1.4.7.6 1.2.4.5-.1.7-.6.5-1-.2-.4-.7-.6-1.2-.5-.5.2-.7.7-.5 1z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M345.3 226.1c.8-.2 1.2-1.1.8-2l-4.7-1.7s-.6 0-1 .7c-.5.7.1 1.2.1 1.2l4.8 1.8"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M345.3 226.1c.8-.2 1.2-1.1.8-2l-4.7-1.7s-.6 0-1 .7c-.5.7.1 1.2.1 1.2l4.8 1.8"/>
+  <path fill="#00e519" stroke="#000" stroke-width=".1" d="M294.5 286c3.9-2.7 15-4.2 16.6-3.8-7.8 6.2-15.8 6.5-16.6 3.9z"/>
+  <path fill="#ffe533" stroke="#000" stroke-width=".1" d="M294.6 286c.7 2.7 8.7 2.3 16.5-3.8a62.4 62.4 0 01-16.5 3.9z"/>
+  <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M294.6 286c.7 2.7 8.7 2.3 16.5-3.8a62.4 62.4 0 01-16.5 3.9z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M294.6 286a40 40 0 0116.6-3.9c-7.9 6.2-16 6.6-16.6 4z"/>
+  <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M340.7 222l-24.4 52.8c-1.3 1-2.4-.3-2.7-.2-1.5 1.7-3.6 2.1-4 2.5-1.8 2.5-.7 4.4-.6 4.6 1.3 1.8-1.5 3.5-1.4 4-.6 1-2.7.9-3.1 2.1-.1-.1-4.2 8.4-4.6 9.3-.6.5-3.5 6.2-3.5 6.2-2.1 0-10.3-5-10.5-5 4.4-7.3 15.1-18.7 14.9-19.4 3-5.3 7.7-11 9.9-11 3-1.6 4.3-5.7 3.7-6.6 2.3-.1 3.5-1.5 3.7-1.6l18-37.8c1.6-.6 1.3 0 1.9 1 0 0 1-1.2.9-1.4.9-.4 1.7.2 1.8.6z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M340.7 222l-24.4 52.8c-1.3 1-2.4-.3-2.7-.2-1.5 1.7-3.6 2.1-4 2.5-1.8 2.5-.7 4.4-.6 4.6 1.3 1.8-1.5 3.5-1.4 4-.6 1-2.7.9-3.1 2.1-.1-.1-4.2 8.4-4.6 9.3-.6.5-3.5 6.2-3.5 6.2-2.1 0-10.3-5-10.5-5 4.4-7.3 15.1-18.7 14.9-19.4 3-5.3 7.7-11 9.9-11 3-1.6 4.3-5.7 3.7-6.6 2.3-.1 3.5-1.5 3.7-1.6l18-37.8c1.6-.6 1.3 0 1.9 1 0 0 1-1.2.9-1.4.9-.4 1.7.2 1.8.6z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M341.4 210.6c-.5 1 .3 1 .6 1.2l1 .3c1.3 0 2 .6 2 1l-28.7 61.7c-1.3 1-2.5-.3-2.9 0l19.7-42.2 9.6-19-2.8-1c-.8-.3-1-.8-.7-1.7l12-21.8-9.6 21.1-.2.4"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M341.4 210.6c-.5 1 .3 1 .6 1.2l1 .3c1.3 0 2 .6 2 1l-28.7 61.7c-1.3 1-2.5-.3-2.9 0l19.7-42.2 9.6-19-2.8-1c-.8-.3-1-.8-.7-1.7l12-21.8-9.6 21.1-.2.4"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M303 275c-3-.2-4.6 2-2.6 4.6m1.3-2.4c-1 .6-1.7-.3-1.7-.3m15-13.3c-1.5 5.7-4.2 9.4-4.7 10.6-2.2 2.2-3.9 7.3-3.5 8.1l-7.8 13.4"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M316.1 275c-1.3-.5-5.8-4.5-10-3.7-3.3 3.9-5.1 7.8-5.7 8.3a50 50 0 007.7 5.3c.7-.4 1-1.5 1-1.5.8-1-.2-1.8-.2-1.8 0-2.4 1.8-4.2 3.6-4.3 2.2-.2 1.6-.4 1.9-.4 1-.6 1.7-2 1.7-2z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M316.1 275c-1.3-.5-5.8-4.5-10-3.7-3.3 3.9-5.1 7.8-5.7 8.3a50 50 0 007.7 5.3c.7-.4 1-1.5 1-1.5.8-1-.2-1.8-.2-1.8 0-2.4 1.8-4.2 3.6-4.3 2.2-.2 1.6-.4 1.9-.4 1-.6 1.7-2 1.7-2z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M311.8 275.1c-2 0-4 1-4.7 2.7l4.7-2.7"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M311.8 275.1c-2 0-4 1-4.7 2.7m-3.6.8c.2.4.7.6 1.2.4.5-.2.7-.6.5-1-.2-.5-.7-.6-1.2-.5-.5.2-.7.6-.5 1zm2.4-3.5c.2.4.8.6 1.3.5.5-.2.7-.7.5-1-.2-.5-.7-.7-1.2-.5-.5.1-.8.6-.6 1z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M338.5 228c.8-.2 1.1-1.1.7-2l-4.7-1.6s-.5 0-1 .7c-.4.7.2 1.2.2 1.2l4.8 1.8"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M338.5 228c.8-.2 1.1-1.1.7-2l-4.7-1.6s-.5 0-1 .7c-.4.7.2 1.2.2 1.2l4.8 1.8"/>
+  <path fill="#00e519" stroke="#000" stroke-width=".1" d="M340.6 283.3a39 39 0 00-16.8-3.7c8 6.1 16.1 6.3 16.8 3.7z"/>
+  <path fill="#ffe533" stroke="#000" stroke-width=".1" d="M340.6 283.3c-.7 2.7-8.8 2.4-16.8-3.6a63.4 63.4 0 0016.8 3.6z"/>
+  <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M340.6 283.3c-.7 2.7-8.8 2.4-16.8-3.6a63.4 63.4 0 0016.8 3.6z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M340.6 283.3c-4.2-3-15.8-4-16.9-3.7 8 6 16.2 6.3 16.9 3.6z"/>
+  <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M292.7 219.3l25.7 52.9c1.3 1 2.4-.3 2.7-.2 1.6 1.7 3.7 2.1 4.2 2.5 1.8 2.4.8 4.4.7 4.6-1.4 1.8 1.5 3.5 1.4 4.1.6 1 2.7.8 3.2 2l4.8 9.3c.7.5 3.7 6.2 3.7 6.2 2.1 0 10.3-5.3 10.5-5.2-4.6-7.3-15.7-18.7-15.4-19.4-3.1-5.2-8.1-11-10.2-10.9-3-1.6-4.5-5.7-4-6.6-2.3 0-3.6-1.5-3.7-1.6l-19-37.9c-1.6-.5-1.3.1-1.9 1 0 0-1-1.2-.9-1.3-.9-.5-1.8.2-1.8.5z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M291.7 207.8c.5 1-.2 1-.5 1.2l-1.1.3c-1.2 0-1.9.7-1.9 1l30.2 61.9c1.3 1 2.5-.3 3-.1l-20.8-42.3-10-19 2.7-1.1c.8-.2 1-.8.7-1.6l-12.7-21.9 10.2 21.2.2.4"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M291.7 207.8c.5 1-.2 1-.5 1.2l-1.1.3c-1.2 0-1.9.7-1.9 1l30.2 61.9c1.3 1 2.5-.3 3-.1l-20.8-42.3-10-19 2.7-1.1c.8-.2 1-.8.7-1.6l-12.7-21.9 10.2 21.2.2.4"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M331.9 272.1c3 0 4.6 2.1 2.7 4.7m-1.4-2.3c1 .6 1.7-.4 1.7-.4M319.5 261c1.6 5.7 4.4 9.5 5 10.6 2.2 2.2 4 7.3 3.7 8.2l8.1 13.4"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M318.6 272.4c1.3-.4 5.7-4.6 10-3.8 3.4 3.8 5.4 7.7 6 8.2-4 3.4-6.7 5-7.7 5.5-.7-.4-1-1.5-1-1.5-.9-1 .2-1.8.2-1.8-.1-2.4-2-4.2-3.8-4.3-2.3-.2-1.6-.4-2-.4-1-.6-1.7-1.9-1.7-1.9z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M318.6 272.4c1.3-.4 5.7-4.6 10-3.8 3.4 3.8 5.4 7.7 6 8.2-4 3.4-6.7 5-7.7 5.5-.7-.4-1-1.5-1-1.5-.9-1 .2-1.8.2-1.8-.1-2.4-2-4.2-3.8-4.3-2.3-.2-1.6-.4-2-.4-1-.6-1.7-1.9-1.7-1.9z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M323 272.5c2 0 4 1 4.8 2.7l-4.8-2.7"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M323 272.5c2 0 4 1 4.8 2.7m3.6.6a1 1 0 01-1.2.5.7.7 0 01-.5-1c.1-.5.7-.6 1.2-.5.5.2.7.6.5 1zm-2.5-3.4c-.2.4-.8.6-1.3.5-.4-.2-.7-.7-.5-1 .2-.5.7-.7 1.2-.5.5.1.8.6.6 1z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M295 225.4a1.4 1.4 0 01-.8-2l4.8-1.8s.5.1 1 .7c.5.7-.2 1.2-.2 1.2l-4.8 1.9"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M295 225.4a1.4 1.4 0 01-.8-2l4.8-1.8s.5.1 1 .7c.5.7-.2 1.2-.2 1.2l-4.8 1.9"/>
+  <path fill="#00e519" stroke="#000" stroke-width=".1" d="M345.6 286a38 38 0 00-16.6-3.8c7.9 6.2 15.9 6.5 16.6 3.9z"/>
+  <path fill="#ffe533" stroke="#000" stroke-width=".1" d="M345.6 286c-.8 2.7-8.7 2.3-16.5-3.8a62.4 62.4 0 0016.5 3.9z"/>
+  <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M345.6 286c-.8 2.7-8.7 2.3-16.5-3.8a62.4 62.4 0 0016.5 3.9z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M345.6 286a40.1 40.1 0 00-16.6-3.9c7.8 6.2 15.9 6.6 16.6 4z"/>
+  <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M299.5 222l24.4 52.8c1.3 1 2.3-.3 2.7-.2 1.5 1.7 3.6 2.1 4 2.5 1.7 2.5.7 4.4.6 4.6-1.4 1.7 1.5 3.5 1.4 4 .5 1 2.6.9 3 2.1.2-.1 4.2 8.4 4.7 9.3.6.5 3.5 6.2 3.5 6.2 2 0 10.3-5 10.5-5-4.4-7.4-15.2-18.7-15-19.4-2.9-5.3-7.7-11-9.8-11-3-1.6-4.3-5.7-3.7-6.6-2.3-.1-3.6-1.5-3.7-1.6L304 222c-1.6-.6-1.4 0-2 1 0 0-.9-1.2-.8-1.4-.9-.4-1.8.2-1.8.6z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M299.5 222l24.4 52.8c1.3 1 2.3-.3 2.7-.2 1.5 1.7 3.6 2.1 4 2.5 1.7 2.5.7 4.4.6 4.6-1.4 1.7 1.5 3.5 1.4 4 .5 1 2.6.9 3 2.1.2-.1 4.2 8.4 4.7 9.3.6.5 3.5 6.2 3.5 6.2 2 0 10.3-5 10.5-5-4.4-7.4-15.2-18.7-15-19.4-2.9-5.3-7.7-11-9.8-11-3-1.6-4.3-5.7-3.7-6.6-2.3-.1-3.6-1.5-3.7-1.6L304 222c-1.6-.6-1.4 0-2 1 0 0-.9-1.2-.8-1.4-.9-.4-1.8.2-1.8.6z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M298.8 210.6c.4 1-.3 1-.6 1.2l-1 .3c-1.3 0-2 .6-2 1l28.7 61.7c1.3 1 2.5-.3 2.9 0L307 232.5l-9.6-19 2.7-1c.9-.3 1.2-.8.8-1.7L288.8 189l9.7 21.1.2.4"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M298.8 210.6c.4 1-.3 1-.6 1.2l-1 .3c-1.3 0-2 .6-2 1l28.7 61.7c1.3 1 2.5-.3 2.9 0L307 232.5l-9.6-19 2.7-1c.9-.3 1.2-.8.8-1.7L288.8 189l9.7 21.1.2.4"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M337.2 275c3-.2 4.5 2 2.6 4.6m-1.4-2.4c1 .6 1.8-.3 1.8-.3m-15-13.3c1.4 5.7 4.2 9.4 4.7 10.6 2.1 2.2 3.8 7.3 3.5 8.1l7.8 13.4"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M324 275c1.4-.5 5.8-4.5 10.1-3.7 3.2 3.9 5.1 7.8 5.7 8.3a54.1 54.1 0 01-7.8 5.3c-.6-.4-1-1.5-1-1.5-.7-1 .3-1.8.3-1.8 0-2.4-1.8-4.2-3.6-4.3-2.3-.2-1.6-.4-2-.4-1-.6-1.7-2-1.7-2z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M324 275c1.4-.5 5.8-4.5 10.1-3.7 3.2 3.9 5.1 7.8 5.7 8.3a54.1 54.1 0 01-7.8 5.3c-.6-.4-1-1.5-1-1.5-.7-1 .3-1.8.3-1.8 0-2.4-1.8-4.2-3.6-4.3-2.3-.2-1.6-.4-2-.4-1-.6-1.7-2-1.7-2z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M328.4 275.1c2 0 4 1 4.7 2.7l-4.7-2.7"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M328.4 275.1c2 0 4 1 4.7 2.7m3.6.8a1 1 0 01-1.2.4c-.5-.2-.8-.6-.6-1 .2-.5.8-.6 1.3-.5.4.2.7.6.5 1zm-2.5-3.5c-.2.4-.7.6-1.2.5-.5-.2-.7-.7-.5-1 .2-.5.7-.7 1.2-.5.5.1.7.6.5 1z"/>
+  <path fill="#cce5e5" stroke="#000" stroke-width=".1" d="M301.6 228c-.8-.2-1-1.1-.7-2l4.7-1.6s.6 0 1 .7c.5.7-.2 1.2-.2 1.2l-4.8 1.8"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M301.6 228c-.8-.2-1-1.1-.7-2l4.7-1.6s.6 0 1 .7c.5.7-.2 1.2-.2 1.2l-4.8 1.8"/>
+  <path fill="#a05a2c" stroke="#000" stroke-width=".1" d="M315.3 250.7l35.5-38a97.4 97.4 0 01-1.4-.9l-35.6 38a7.5 7.5 0 001.5.9z"/>
+  <path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M349.8 212.2c-1.2-1-3.4-2.2-5-1.8-.5-2.2 2.5-4.4 3.8-4-.3 2.3 3.2 3.8 3.1 3.8l-1.9 2z"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M352.1 210.4c1 .8 1.4.8 2.8 1.6 1.4.7 3.2-1.1 4.1-1.7 0 0 1 3.4-1.1 5.6-2 2.3-4.6 2.8-6.5 2.1 0 0 2.6-2.5 1.5-3.6-1-1.1-1.4-1.2-2.5-1.9"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M-27.7-406.5h4.1v2.2h-4.1z" transform="matrix(-.67726 .73575 -.82314 -.56784 0 0)"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M308.2 290.3l-1 9 1.8-2.2c.3-.6 1.5-2.1 1.8-7.4 0 0-1-2.9-1.4-2.9-.7-.4-1.2 3.5-1.2 3.5zm2.2-20.1l-2.7 15.8c0 .5 1.3 1.6 2.1-1.2l1.5-10.5-1-4.1z"/>
+  <path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M315.9 284.6a8.7 8.7 0 01-1.4-2l-.4 3.1s2 1.5 1.7 4.3l.4-.6.2-1s.5-2 .5-3.1c0 0-.5-.2-1-.7z"/>
+  <path fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M307.3 299.4s3.3-3 3.5-9.7l.4-1.9s0 1.5.8.4c.6-1.5.6-2.8.6-2.8s1.2-1.6 1.6.3l-1.2 9.6a51.4 51.4 0 01-.3 2s-.7-1-1.4.1c-.7 1.2-1.8 2.7-4 2zm4-25.1l-1.5 10.5s1.2.6 1.4 3c.1 1.2.6.6.8.4.2-.8 0-2.3 0-2.3l.6-7.3s-1.2-3.4-1.3-4.3z"/>
+  <path fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M310.1 298.8l-.2 2.6s1 0 1.7-1.2c.8-1.1 1-2.8 1-2.8s-.7-1.1-1.3 0c-.5 1-1.2 1.4-1.2 1.4zm1.8-10.6c.6-1 .8-2.6.7-2.8l-.7.5c.2 1.2 0 2.3 0 2.3z"/>
+  <path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M315.3 287.1a4.4 4.4 0 00-1.3-1.5l-1.5 12s-.4 3-2.3 3.7c0 0 1.1 10.3 4.5 7.5.4-.4 1-3.6.9-5.5l-.9-6a26.8 26.8 0 01.5-4.7l.6-2.6c.2-.2 0-1.8-.5-2.9z"/>
+  <path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M316.9 285.3l1 1c.3 0-2.3 19.3-2.3 19.3s0-2-.7-6c-.6-3.2.2-7.5.9-9.6 0 0 .8-.5 1-4.7z"/>
+  <path fill="#f7e214" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M312.6 278.8l-.7 7.1s1.8-2.4 2.2-.2l.4-3.2s-1.5-2.4-2-3.7z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M311.3 287.8s-.6-6.1-3.6-1.8a10 10 0 000 3c0 .8.9 1.8 1.2 2.3.7 1 1.3-.2 1.3-.2s.7-1 1-3.3z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M287.8 237c-.1-3.5-1.2-9.3-1.3-13.3l-12-12.2s-1.4 9.9-5.8 15.5l19 10"/>
+  <path fill="#ffe000" stroke="#000" stroke-width=".1" d="M288.7 237.3c.5-2.4 1-5 1.5-10.2l-7.7-7.6c0 3.2-3.6 8.1-3.9 14"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M295.3 244.7c1-4.3-1.3-4.8 2-10.8l-7.2-6.8c-1.3 4-2.2 6.6-2 10l6 4.4"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M267.6 270c-1.5-4.2.5-12.7.2-18-.1-3.5 2.5-16.7 2.4-20.6l-14.1-8.8s-.6 14.3-2.3 29.9c-1.4 8-1.4 15.3-.4 21.5 1.5 8.7 3 12.2 6.5 15.9 6.3 6.5 19.7 2.7 19.7 2.7 11.3-2.3 17.8-9.4 17.8-9.4s-3.7.8-9.6 1.4c-13-.9-18.2 2.4-18.6-11"/>
+  <path fill="#f7e214" stroke="#000" stroke-width=".1" d="M305.4 278.8l.2-.1-5.9 1.9-8 .6c-17.2.4-15-10.3-14.3-27.5.1-6.6 1.4-14.8 1-17.7l-11.5-6.6c-3.8 10.6-2.6 18-3.3 23.5-.4 6-1.7 17.4.2 22.4 2.7 11.6 11.8 11.2 24.2 10.1 6.1-.5 9.4-2 9.4-2l8-4.6"/>
+  <path fill="#007a3d" stroke="#000" stroke-width=".1" d="M305.6 278.5a34.4 34.4 0 01-6 2.2l-8 .8c-12.5 1-19.8-7.7-18.2-27.6 0-7 .2-10.2 2.6-19.5l7 4v.7c-.5 2-1.5 7-1.5 9.2 0 16 10.1 28.2 23.9 30.3h.2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M260 230.6c1 2 8 12.5 12 14.5m-11-7.6c1.3 2 9.8 14 13.6 14.6m-15.5 3.6c2 2.4 4 7 9.7 10m-7 3.3c4 3.7 13.6 11.6 23 12m-23-6c2 2.3 6.2 13.3 24 8.3m-26.7-6.3c1.2 2.6 10.1 17.3 26 11.6"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M277.8 264.8c-1.5-4.3.5-12.7.2-18.1-.1-3.5 1.5-15.5 1.5-19.5l-13.2-9.9s-.6 14.3-2.3 30a84 84 0 00-1.5 23.9c1.8 10 6.6 12.8 7.5 13.6 6.7 6 22 5.4 23.5 4.9 10.8-4 15.6-10.8 15.6-10.8s-5.2-.1-11.1.5c-13-1-19.7-.4-20.1-13.8"/>
+  <path fill="#ffe000" stroke="#000" stroke-width=".1" d="M315.6 273.5h.2l-5.9 1.8-8 .6c-17.2.5-15-10.2-14.3-27.5.1-6.5.3-12.4 0-15.3l-10.3-7.6c-3.8 10.7-2.8 16.7-3.5 22.2-.4 5.8-1.7 17.3.2 22.3 2.7 11.7 11.8 11.2 24.2 10.2 6.1-.5 9.4-2.1 9.4-2.1l8-4.6"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M315.9 273.4c-2.4 1.2-6 2.1-6 2.1l-8 .8c-12.5 1-19.8-7.7-18.2-27.6 0-7-.3-7.5 2.2-16.9 3.8 2.5 11.1 8.8 11.1 8.8s-2 2.8-1.5 6.7c0 16 6.4 24 20.2 26.1l1.5-13"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M270.1 225.3c1.2 2 8.1 12.6 12 14.6m-10.8-7.7c1.2 2 9.7 14 13.5 14.7m-15.5 3.6c2 2.3 4 7 9.7 10m-7 3.3c4 3.6 13.6 11.6 23 12m-23-6c2 2.3 6.2 13.2 24 8.3m-26.7-6.4c1.2 2.7 10.1 17.3 26 11.7"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M256.2 224l-.7 6c-.2 4.4-.1 7.7.1 9.8 0 .2.9 5.5.6 5.8-1 1.1-1.1 1.2-2.2.4-.1-.2.5-5.6.5-6.3l.4-9.9c0-1 1-6.4 1-6.4s0-1.2.3.5"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M256.2 224l-.7 6c-.2 4.4-.1 7.7.1 9.8l.7 5.8c-1 1.1-1.2 1.6-2.3.7-.1-.2.5-5.9.5-6.6l.4-9.9c0-1 1-6.4 1-6.4s0-1.2.3.5z"/>
+  <path fill="#f7e214" stroke="#000" stroke-width=".1" d="M256 222.2s-1 6-1.2 9.6l-.3 7.9-.5 4.5c-.1.7.1.2 0 .2-.9.5-1.5.1-2-.3-.2-.1 1.4-3.8 1.4-4.5.9-10.8 2.4-17 2.4-17s-.6 3.7.3-.4"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M256 222.2s-1 6-1.2 9.6l-.3 7.9-.5 4.5c-.1.7.1.2 0 .2-.9.5-1.5.1-2-.3-.1-.1 1.4-3.8 1.5-4.5.8-10.8 2.3-17.1 2.3-17.1s-.6 3.8.3-.3zm-.4 17.3s-1 .4-1 .2m0-1.3s.7 0 .8-.2m0-1s-.6.3-.8 0m.8-1.6h-.6m.6-1.5h-.6m.5-2.1s-.3.1-.4-.1m.5-1.7h-.5m-.5 9.5s-.9.2-1-.1m1.1-2s-.9.1-1-.1m1-1.3h-.7m.9-1.5h-.7m.7-1.7h-.5m.7-1.5h-.6m.6-1.7s-.4.3-.4 0m0 9s-.9 0-.9-.3m12.8-19.8l-.7 6a63.4 63.4 0 000 9.8c0 .3 1 5.5.7 5.8-1 1.2-1.1 1.3-2.2.4-.1-.1.5-5.5.5-6.3l.4-9.8c0-1.1 1-6.5 1-6.5s0-1.1.3.6"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M266.4 218.7l-.7 6a73 73 0 00.1 9.8l.7 5.8c-1 1.2-1.2 1.6-2.3.7-.1-.1.5-5.8.5-6.6l.4-9.8c0-1.1 1-6.5 1-6.5s0-1.1.3.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M266.3 217s-1.2 6-1.3 9.5l-.3 8-.5 4.4v.3c-.9.5-1.5 0-2-.4-.2 0 1.4-3.7 1.4-4.5a127 127 0 012.4-17l.3-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M266.3 217s-1.2 6-1.3 9.5l-.3 8-.5 4.4v.3c-.9.5-1.5 0-2-.4-.2 0 1.4-3.7 1.4-4.5.9-10.8 2.4-17 2.4-17l.3-.4zm-.5 17.2s-1 .5-1 .2m0-1.2s.7 0 .8-.3m0-1s-.6.4-.8.1m.7-1.7h-.5m.6-1.5h-.6m.5-2s-.4 0-.4-.2m.5-1.7h-.5m-.5 9.6s-.9.1-1-.2m1.1-1.9s-.9 0-1-.2m1-1.3h-.7m.9-1.4h-.7m.7-1.7l-.5-.1m.7-1.4l-.6-.1m.6-1.6s-.4.2-.4 0m0 9s-.9 0-.9-.4"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M274.3 211.3s.5 5.1.2 8c-.3 3.5-.3 4.5-.6 6.6v3.9c.8.5 1.5.2 2 0 .3-.1-1-3.3-1-4 .5-8.9-.4-14.3-.4-14.3l-.2-.2"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M274.3 211.3s.5 5.1.2 8c-.3 3.5-.3 4.5-.6 6.6v3.8c0 .5-.1 0 0 .1.8.5 1.4.2 2 0 .2-.1-1-3.3-1-4 .5-9-.4-14.3-.4-14.3l-.2-.2zm-.3 14.6s.9.2 1 0m-.8-1.7s.9.2 1 0m-1-1.2h.9m-.8-1.2h.7m-.5-1.4h.5m-.5-1.3h.5m-.4-1.4s.4.2.4 0m-1 7.4s1 .1 1-.1"/>
+  <path fill="#005000" stroke="#000" stroke-width=".1" d="M306 221.7h.8-.8z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M316.7 256.4s-.3-.2-.4 0l.1.2.3-.2zm-1 1.1l2.1-.1"/>
+  <path fill="#e8a30e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M292.2 284.2c-.2 3-7.4 6.6-12.7.1-5.7-4.5-4.5-11.4 0-12.3l54.7-53.3c2.2-1.2 2.4-2.3 3.5-3.5 2.3 2.5 7 6.8 9.6 9-1.6 1.2-2.9 2.5-3.2 3.5l-52 56.5z"/>
+  <path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width=".1" d="M337.8 215c2.6-3.5 12.8 5.8 10 8.7-2.6 2.8-12.4-5-10-8.6z"/>
+  <path fill="#cccccf" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M347 223c-2 1.4-9.3-4.8-8.1-7.2 2-2.2 10.1 5.7 8 7.2z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M344 227.9a15.8 15.8 0 01-9.9-9m-23 44.8a16.3 16.3 0 01-11.4-11.6m9.1 14.3a16.3 16.3 0 01-11.4-11.6m-2.1 25.8c-5.8-1.8-10.4-6-12.2-12.1m9.8 14.8a18 18 0 01-12.3-12.2"/>
+  <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M279.4 285c-.3 1.4-1 1.8-2.1 1.4m13.7-2c-2.1 3.5-4.5 2.4-6.5 2.5"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M276.4 285.2c0 1 .8 1.6 1.7 1.6a1.7 1.7 0 001.7-1.6c0-1-.7-1.6-1.7-1.6s-1.7 1-1.7 1.9"/>
+  <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M279.5 284.9c-.3 1.3-1 1.7-2 1.3m13.5-1.7c-2.1 3.4-4.5 2.3-6.5 2.4"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M331.8 290.3l1 9-1.8-2.2c-.3-.6-1.5-2.1-1.8-7.4 0 0 1-2.9 1.4-2.9.7-.4 1.2 3.5 1.2 3.5zm-2.2-20.1l2.7 15.8c0 .5-1.3 1.6-2.1-1.2l-1.5-10.5 1-4.1z"/>
+  <path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M324.1 284.6l1.4-2 .4 3.1s-2 1.5-1.7 4.3l-.4-.6-.2-1s-.5-2-.5-3.1c0 0 .5-.2 1-.7z"/>
+  <path fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M332.8 299.4s-3.4-3-3.6-9.7l-.4-1.9s0 1.5-.8.4c-.6-1.5-.6-2.8-.6-2.8s-1.2-1.6-1.6.3l1.2 9.6.3 2s.7-1 1.4.1c.7 1.2 1.8 2.7 4 2zm-4.1-25.1l1.5 10.5s-1.2.6-1.4 3c-.1 1.2-.6.6-.8.4-.2-.8 0-2.3 0-2.3l-.6-7.3s1.2-3.4 1.3-4.3z"/>
+  <path fill="#ffe000" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M329.9 298.8l.2 2.6s-1 0-1.7-1.2c-.8-1.1-1-2.8-1-2.8s.7-1.1 1.3 0c.5 1 1.2 1.4 1.2 1.4zm-1.8-10.6a6 6 0 01-.7-2.8l.7.5c-.2 1.2 0 2.3 0 2.3z"/>
+  <path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M324.8 287.1a4.4 4.4 0 011.2-1.5l1.5 12s.4 3 2.3 3.7c0 0-1.1 10.3-4.5 7.5-.4-.4-1-3.6-.9-5.5l.9-6a26.8 26.8 0 00-.5-4.7 31 31 0 00-.6-2.6c-.2-.2 0-1.8.5-2.9z"/>
+  <path fill="#d52b1e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M323.1 285.3l-1 1c-.3 0 2.3 19.3 2.3 19.3s0-2 .7-6c.6-3.2-.2-7.5-.9-9.6 0 0-.8-.5-1-4.7z"/>
+  <path fill="#f7e214" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M327.4 278.8l.7 7.1s-1.8-2.4-2.2-.2l-.4-3.2s1.5-2.4 2-3.7z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M328.7 287.8s.6-6.1 3.6-1.8c0 0 .2 2.4 0 3 0 .8-.9 1.8-1.2 2.3-.7 1-1.3-.2-1.3-.2s-.7-1-1-3.3z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M352.2 237c.1-3.5 1.2-9.3 1.3-13.3l12-12.2s1.4 9.9 5.8 15.5l-19 10"/>
+  <path fill="#ffe000" stroke="#000" stroke-width=".1" d="M351.3 237.3c-.5-2.4-1-5-1.5-10.2l7.7-7.6c0 3.2 3.6 8.1 3.9 14"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M344.7 244.7c-1-4.3 1.3-4.8-2-10.8l7.2-6.8c1.3 4 2.2 6.6 2 10l-6 4.4"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M372.4 270c1.5-4.2-.5-12.7-.2-18 .1-3.5-2.5-16.7-2.4-20.6l14.1-8.8s.6 14.3 2.3 29.9c1.4 8 1.4 15.3.4 21.5-1.5 8.7-3 12.2-6.5 15.9-6.3 6.5-19.7 2.7-19.7 2.7-11.3-2.3-17.8-9.4-17.8-9.4s3.7.8 9.6 1.4c13-.9 18.2 2.4 18.6-11"/>
+  <path fill="#f7e214" stroke="#000" stroke-width=".1" d="M334.6 278.8l-.2-.1 5.9 1.9 8 .6c17.2.4 15-10.3 14.3-27.5-.1-6.6-1.4-14.8-1-17.7l11.5-6.6c3.8 10.6 2.6 18 3.3 23.5.4 6 1.7 17.4-.2 22.4-2.7 11.6-11.8 11.2-24.2 10.1-6.1-.5-9.4-2-9.4-2l-8-4.6"/>
+  <path fill="#007a3d" stroke="#000" stroke-width=".1" d="M334.4 278.5a34.4 34.4 0 006 2.2l8 .8c12.5 1 19.8-7.7 18.2-27.6 0-7-.2-10.2-2.6-19.5l-7 4v.7c.5 2 1.5 7 1.5 9.2 0 16-10.1 28.2-23.9 30.3h-.2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M380 230.6c-1 2-8 12.5-12 14.5m11-7.6c-1.3 2-9.8 14-13.6 14.6m15.5 3.6c-2 2.4-4 7-9.7 10m7 3.3c-4 3.7-13.6 11.6-23 12m23-6c-2 2.3-6.2 13.3-24 8.3m26.7-6.3c-1.2 2.6-10.1 17.3-26 11.6"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M362.3 264.8c1.4-4.3-.6-12.7-.4-18.1.2-3.5-1.4-15.5-1.4-19.5l13.2-9.9s.6 14.3 2.3 30a84 84 0 011.5 23.9c-1.8 10-6.6 12.8-7.5 13.6-6.7 6-22 5.4-23.5 4.9-10.8-4-15.6-10.8-15.6-10.8s5.2-.1 11.1.5c13-1 19.7-.4 20.1-13.8"/>
+  <path fill="#ffe000" stroke="#000" stroke-width=".1" d="M324.4 273.5h-.2l5.9 1.8 8 .6c17.2.5 15-10.2 14.3-27.5-.1-6.5-.3-12.4 0-15.3l10.3-7.6c3.8 10.7 2.8 16.7 3.5 22.2.4 5.8 1.7 17.3-.2 22.3-2.7 11.7-11.8 11.2-24.2 10.2-6.1-.5-9.4-2.1-9.4-2.1l-8-4.6"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M324.1 273.4a34.4 34.4 0 006 2.1l8 .8c12.5 1 19.8-7.7 18.2-27.6 0-7 .3-7.5-2.2-16.9-3.8 2.5-11.1 8.8-11.1 8.8s2 2.8 1.5 6.7c0 16-6.4 24-20.2 26.1l-1.5-13"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M369.9 225.3c-1.2 2-8.1 12.6-12 14.6m10.8-7.7c-1.2 2-9.7 14-13.5 14.7m15.5 3.6c-2 2.3-4 7-9.7 10m7 3.3c-4 3.6-13.6 11.6-23 12m23-6c-2 2.3-6.2 13.2-24 8.3m26.7-6.4c-1.2 2.7-10.1 17.3-26 11.7"/>
+  <path fill="#f7e214" stroke="#000" stroke-width=".1" d="M383.8 224l.7 6c.2 4.4.1 7.7-.1 9.8 0 .2-.8 5.5-.6 5.8 1 1.1 1.1 1.2 2.2.4.1-.2-.5-5.6-.5-6.3l-.4-9.9c0-1-1-6.4-1-6.4s0-1.2-.3.5"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M383.8 224l.7 6c.2 4.4.1 7.7-.1 9.8l-.7 5.8c1 1.1 1.2 1.6 2.3.7.1-.2-.5-5.9-.5-6.6l-.4-9.9c0-1-1-6.4-1-6.4s0-1.2-.3.5z"/>
+  <path fill="#f7e214" stroke="#000" stroke-width=".1" d="M384 222.2s1 6 1.2 9.6l.3 7.9.5 4.5c.1.7 0 .2 0 .2.9.5 1.5.1 2-.3.2-.1-1.4-3.8-1.4-4.5-.9-10.8-2.4-17-2.4-17s.6 3.7-.3-.4"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M384 222.2s1 6 1.2 9.6l.3 7.9.5 4.5c.1.7-.1.2 0 .2.9.5 1.5.1 2-.3.2-.1-1.4-3.8-1.4-4.5-.9-10.8-2.4-17.1-2.4-17.1s.6 3.8-.3-.3zm.4 17.3s1 .4 1 .2m0-1.3s-.7 0-.8-.2m0-1s.6.3.8 0m-.7-1.6h.5m-.6-1.5h.6m-.5-2.1s.4.1.4-.1m-.5-1.7h.5m.5 9.5s.9.2 1-.1m-1.1-2s.9.1 1-.1m-1-1.3h.7m-.9-1.5h.7m-.7-1.7h.5m-.7-1.5h.6m-.6-1.7s.4.3.4 0m0 9s.9 0 .9-.3"/>
+  <path fill="#f7e214" stroke="#000" stroke-width=".1" d="M373.6 218.7l.7 6a73 73 0 01-.1 9.8c0 .3-.8 5.5-.6 5.8 1 1.2 1.1 1.3 2.2.4.1-.1-.5-5.5-.5-6.3l-.4-9.8c0-1.1-1-6.5-1-6.5s0-1.1-.3.6"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M373.6 218.7l.7 6a73 73 0 01-.1 9.8l-.7 5.8c1 1.2 1.2 1.6 2.3.7.1-.1-.5-5.8-.5-6.6l-.4-9.8c0-1.1-1-6.5-1-6.5s0-1.1-.3.6z"/>
+  <path fill="#f7e214" stroke="#000" stroke-width=".1" d="M373.7 217s1.2 6 1.3 9.5l.3 8 .5 4.4v.3c.9.5 1.5 0 2-.4.2 0-1.4-3.7-1.4-4.5a127 127 0 00-2.4-17l-.3-.4"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M373.7 217s1.2 6 1.3 9.5l.3 8 .5 4.4v.3c.9.5 1.5 0 2-.4.2 0-1.4-3.7-1.4-4.5-.9-10.8-2.4-17-2.4-17l-.3-.4zm.5 17.2s1 .5 1 .2m0-1.2s-.7 0-.8-.3m0-1s.6.4.8.1m-.7-1.7h.5m-.6-1.5h.6m-.5-2s.4 0 .4-.2m-.5-1.7h.5m.5 9.6s.9.1 1-.2m-1.1-1.9s.9 0 1-.2m-1-1.3h.7m-.9-1.4h.7m-.7-1.7l.5-.1m-.7-1.4l.6-.1m-.6-1.6s.4.2.4 0m0 9s.9 0 .9-.4m-10.5-22s-.5 5.2-.2 8.1c.3 3.5.3 4.5.6 6.6v3.9c-.8.5-1.4.2-2 0-.2-.1 1-3.3 1-4-.5-8.9.4-14.3.4-14.3l.2-.2"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M365.7 211.3s-.5 5.1-.2 8c.3 3.5.3 4.5.6 6.6v3.8c0 .5.1 0 0 .1-.8.5-1.4.2-2 0-.2-.1 1-3.3 1-4-.5-9 .4-14.3.4-14.3l.2-.2zm.3 14.6s-.9.2-1 0m.8-1.7s-.9.2-1 0m1-1.2h-.9m.8-1.2h-.7m.5-1.4h-.5m.5-1.3h-.5m.4-1.4s-.4.2-.4 0m1 7.4s-1 .1-1-.1"/>
+  <path fill="#005000" stroke="#000" stroke-width=".1" d="M334 221.7h-.8.8z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M323.3 256.4s.3-.2.4 0l-.1.2-.3-.2zm1 1.1l-2.1-.1"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M291.7 215.5c0-2.1 2-3.3 2.2-3.6 1-.6 1.7-1.2 3.7-1.5l.2.9c0 .3-.5 1.6-2 2.7a11.5 11.5 0 01-4.1 1.5z"/>
+  <path fill="#a05a2c" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M291.6 214.7l29.7 38.4 1.4-1.3-30.2-39.1-.9 2z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M291.2 207.2s3.2-.4 2.8-2.2c-.5-1.8-2.6-1.8-3.5-1.9-1 0-4 .7-4.8 1.5-.9 1-2.7 2.5-2.1 5s1.3 4.4 2.3 6c.9 1.6.7 3.2.4 3.9 0 .3-.4 1.3.4 1.6 1.2.5 1.5.5 2.5-.6s2.5-3 2.5-5c0-2.1 2-3.3 2.2-3.6 1-.6 1.7-1.2 3.7-1.5 0 0-.7-1.2-1.8-1-1.1 0-3.4-1-4.6-2.2z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M291.2 207.2s3.2-.4 2.8-2.2c-.5-1.8-2.6-1.8-3.5-1.9-1 0-4 .7-4.8 1.5-.9 1-2.7 2.5-2.1 5s1.3 4.4 2.3 6c.9 1.6.7 3.2.4 3.9 0 .3-.4 1.3.4 1.6 1.2.5 1.5.5 2.5-.6s2.5-3 2.5-5c0-2.1 2-3.3 2.2-3.6 1-.6 1.7-1.2 3.7-1.5 0 0-.7-1.2-1.8-1-1.1 0-3.4-1-4.6-2.2z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M291.2 207.2c-.4 0-1.7-.6-2.6-.3-.9.4-2.7 1.4-2.4 3m10.4-.3s-1.8.8-3.1 1.7c-.6.3-2.4 2-3.5 3.2-1 1-1.3 2.4-3.5 3.9m9-9l-1.4 1c-.7.3-.9.9-1.2 1.3"/>
+  <path fill="#e8a30e" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M347.8 284.2c.2 3 7.4 6.6 12.7.1 5.7-4.5 4.5-11.4 0-12.3l-54.7-53.3c-2.2-1.2-2.4-2.3-3.5-3.5a133 133 0 01-9.6 9 9.9 9.9 0 013.2 3.5l51.9 56.5z"/>
+  <path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width=".1" d="M302.2 215c-2.6-3.5-12.8 5.8-10 8.7 2.6 2.8 12.4-5 10-8.6z"/>
+  <path fill="#cccccf" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M293 223c2 1.4 9.3-4.8 8.1-7.2-2-2.2-10.1 5.7-8 7.2z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M296 227.9a16 16 0 009.9-9m23 44.8c5.7-1.7 9.6-5.5 11.4-11.6m-9.1 14.3c5.7-1.8 9.7-5.5 11.4-11.6m2.1 25.8c5.8-1.8 10.4-6 12.2-12.1m-9.8 14.8a18 18 0 0012.3-12.2"/>
+  <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M360.6 285c.3 1.4 1 1.8 2.1 1.4m-13.7-2c2.1 3.5 4.5 2.4 6.5 2.5"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M363.6 285.2c0 1-.8 1.6-1.7 1.6a1.7 1.7 0 01-1.7-1.6c0-1 .7-1.6 1.7-1.6s1.7 1 1.7 1.9"/>
+  <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M360.5 284.9c.3 1.3 1 1.7 2 1.3m-13.5-1.7c2.1 3.4 4.5 2.3 6.5 2.4"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M339.6 175.5c1.8 2.9 4.4 8 5.2 12a22.5 22.5 0 01-7 20.8c-5.2 4.7-13.3 6-16.7 6.8-3.3.7-5.7 1.8-6.3 2.5 0-.5 0-1 .5-1.6 1.6-.7 4.1-1 7.8-1.8 7.2-1.5 14.8-4.2 19-12.2 5.4-10.3 2.2-18.4-2.5-26.4z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M341.6 206.2a.4.6 49.9 01-.6-.6.4.6 49.9 11.6.6z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M346.6 205c-1.1.6-2.2.7-3 1a65.7 65.7 0 00-3.7 1.4c-.8.3-1.6 1.3-1.6 1.3s1.2 1.3 2.6 1.1c1.2-.1 1.7-.4 2.3-.7.6-.3.6-.6 1.4-1.2 1-.7 1.6-2 2-3zm-5.7 1.1c-.3.6-1.1.5-1.6.5l-.2.2c.6 0 1.5 0 2-.5l-.2-.2z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M346.6 205c-1 1-2.8 2-4.7 2.8a14 14 0 01-5 1l-.2.3c1.4-.1 3.4-.4 5-1.1a14.9 14.9 0 004.9-3zm-2.4 4.6c-2-.1-3 .5-4.8.9-1.7.4-3.7-.5-4.8 1.1 4.4 2.9 7.6 1 9.6-2z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M340.2 213.6c-.8-.8-8-3.2-9.2-.5 1.7 2 6.8 2.4 9.2.5z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M338.5 215.5l-2.5-.4c-1-.1-1.3-.3-1.9-.4-1-.1-2.3-1.6-6-.5 1.4 3.4 6.4 4 10.4 1.3zm1.6-1.9c-3.8.8-8.3 0-10.1-1l-.3.2a16.3 16.3 0 0010.4.8zm4-4c-2.2 1.5-5.2 2.6-11.4 1.8v.2c8.5.7 9.3-.8 11.4-2z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M338.5 215.5c-3 .1-4.7 1.4-10.3-1.3l-1.4-.6-.5.2 1.4.4c7 3 6.8 1.6 10.8 1.3z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M327.3 211.6a.4.6 66.2 10.4.7.4.6 66.2 00-.4-.7z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M327.1 212.3c-.6.1-.8.9-.8 1.3l-.4.2c.2-.6.4-1.4 1.2-1.7v.1z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M346 186.8a.4.6 15.8 11-1-.2.4.6 15.8 011 .2z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M341.6 203.2c-.1-2.1-1.1.8-3.2-3.9-.6-1.4-.6-2.2-1-4.3 1.2 1.8 3 2.3 3.8 3.6.7 1.4.5 3.5.4 4.6z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M337.5 195.2s1 2.4 2.4 4a7.9 7.9 0 011.8 3.7"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M338.5 197.2c1.3 1.7 3 3.8 3 6h.3c-.3-2.8-2-4.1-3-5.6l-.3-.4zm10.8 2.7c-1 .7-2 1-2.7 1.4l-1.4.9c-.4.2-1 .2-1.4.5-.7.5-2 2-2 2s1.3 1.1 2 1c2.4-.5 3.1-1.4 4.3-2.3 1-.8 1-2.5 1.2-3.5z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M340.7 204.8l-.2.4c1.3-.2 3.5-1.5 5-2.2 1.8-1 3-1.7 3.7-3a8.9 8.9 0 01-3.9 3c-1.5.7-3.7 2-4.6 1.8zm9.4-9.5c-.8.9-1.7 1.3-2.4 1.8l-1.3 1.1-1.2.8c-.6.6-1.5 2.2-1.5 2.2s.7.7 1.4.4c2.4-.3 3.1-1.4 4-3.5.5-1 1-1.8 1-2.8z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M341.5 199.4a.6.4 62 10.8-.3.6.4 62 00-.8.3z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M342.5 201.6l-.2.3c2.9-1.3 6.6-3.9 7.8-6.5a17.2 17.2 0 01-7.6 6.2zm8.3-10.7c-.7 1-1.6 1.4-2.2 2l-1 1.1-1.2.9c-.5.6-1.2 2.2-1.2 2.2s.8.9 1.5.5a12 12 0 002.1-1.6c.5-.4.6-1.4 1.2-2.2.7-1 .8-1.9.8-2.9z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M348.7 193.8c-1.4 1.6-3 3.1-4.6 3.8l-.2.4c2.6-1.5 3.7-2.8 4.9-4.1zm1-5.6c-.4 1-1 1.5-1.6 2l-.8 1.2-1 .9-.7 2.1s.6.6 1.2.2a12 12 0 001.8-1.6c.4-.5.6-1.4 1-2.2a4 4 0 00.2-2.6zm-4.3-1.1l-.5 1.6v-.4c0-.4.2-.9.4-1.3l.1.1z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M348.4 191a13 13 0 01-3.8 4v.3c2.2-1.6 3-3 3.8-4.2zm-5.6 10c-.2-.6-.3-1-.6-1.4.2.5.4 1 .4 1.6l.1-.3z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M341.9 181.3a.4.3 39.5 01-.5.5.4.3 39.5 01.5-.5z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M343.1 182.5l-1.2-.8 1.3 1v-.2zm5.6.4c-1.2 2.4-3.9 4-2.8 7.5 2.8 2.6 3-4.5 2.8-7.5z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M346.1 177.7c-.5 2.4-2.6 4.4-1.2 7.6 4 1 2-4.3 1.2-7.6z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M343.7 174c2 3.7 2.5 5.9.2 8.3 0 0-1.3-1.1-1.6-3.3-.2-1.8 1.2-4 1.4-5z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M340.4 171.8c.5 2.4-1.5 3.5 1.4 6.5 2.1-2.4 1.1-3-1.4-6.5z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M339.6 176c-3.3.3-2-2.6-3-5.3 2 1.5 4.7 2.1 3 5.3zm2.2 4.4c-1-4.4-4-2.6-5.6-4.6.9 2.9 2.1 4.8 5.6 4.6zm1.4 4.1c-2.6-.1-4.8-1.4-6.2-4.4 2.7 1.2 5.7 1.4 6.2 4.4z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M343.6 188.3c-1-1.2-1-2-1.5-2.7a9 9 0 00-3-3.7c0 3 .4 6.5 4.5 6.4z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M344.2 191.6a20 20 0 00-5.6-5.7c1 2.2.6 6.3 5.6 5.7z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M343.7 196c-5-.1-4.5-4.8-4.5-7 .9 1.4 2 2.5 2.8 3.5.9 1 1.8 2.2 1.7 3.5z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M343.1 198.8c-.4-1 0-1.4-1-2.3-1-1-2.8-2.7-3.7-4.6-.1 1.7-.2 4.4 1.2 5.3 1 .7 2 .9 3.5 1.6zm-4.3 7.3c-3.9-3-1.6-5.6-1.2-7.9 1 2.6 3.7 4.8 1.2 7.9zm1.6-29.2c-1.3-2.3-2-3.6-3.7-6 2 2.7 2.8 4.5 3.9 6.4"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M338.9 206.8c.1-3-.7-5.7-1.3-8.5.5 3 1.3 6 1 8.8l.3-.3zm4.6-7.4c-.4-1.8-4.1-3-5-7.5.7 4.4 4.5 5.5 4.8 8l.2-.5zm.8-2.5l-.1.5c-.6-3-4-4.4-5-8.4 1.5 4.3 4.3 4.9 5.1 7.9zm.7-4.4c-1.7-2.6-4.1-3.6-6.4-6.7 2.1 3 4.8 4.4 6.4 7v-.3zm0-3.5c-2-.8-3.9-3-6-7.1 1.4 3 3 5.8 6 7.6v-.5zm-1-4c-2.1-1.7-5-2.8-7-4.9 1.7 2 5 3.3 7.1 5.2v-.3zm-1.6-4.3c-2.2-1.5-4.4-2-6.2-4.8 1.5 2.8 3.8 3.5 6.3 5l-.1-.2zm6.3 2.2c-.8 3.1-1.5 6.3-3.6 8.4v-.4c1-.5 2.5-3.7 3.6-8zm-2.6-5.1c-.1 3.2 0 6.5-1.7 8.3l-.1-.3c1.6-1.4 1.5-5 1.8-8zm-2.2-3.6c.5 2.8.6 5.3-.2 9.5l-.1-.3c.4-2.4 1-5 .3-9.2zm-3.4-2.3c1.1 2.4 2 4.8 1.2 7.4l-.2-.3c.9-2.4-.1-4.7-1-7zm-4.4 31.2c1.4 3.2-.4 5.6-2.5 7-1.6-4.7 1.8-4.2 2.5-7z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M336.2 203.1c.2 2-2 4.2-2.6 7.6l-.3.2c1-4 3-5.6 2.9-7.8z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M343.7 181.2a.3.4 1.9 11-.6-.1.3.4 1.9 01.6.1z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M343.5 183v-1.6h-.2v1.7l.2-.1z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M342.8 180.9a.3.4 2 01-.5.2.3.4 2 01.5-.2z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M343.2 182.3l-.5-1.1.4 1.4v-.2z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M344.7 186.9a.4.3 80.5 11-.7 0 .4.3 80.5 01.7 0z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M344.9 188.6a9.3 9.3 0 00-.4-1.4h-.1l.4 1.6v-.2z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M343.6 187.2a.4.3 57 11-.5.5.4.3 57 01.5-.5z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M344.8 188.6a8.8 8.8 0 00-1.2-1v.1l1.3 1.1-.1-.2z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M343.4 199.1a.3.4 12.7 11-.7-.2.3.4 12.7 01.7.2z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M342.8 200.8c.2-.5.2-1 .2-1.5a9 9 0 01-.4 1.7l.2-.2z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M344 199.9a.3.4 50.5 10.5.4.3.4 50.5 10-.5-.4z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M342.7 201l1.3-.8v.1a8.7 8.7 0 00-1.3 1v-.2z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M340.7 205a.3.4 40.4 11-.4-.6.3.4 40.4 01.4.5z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M339.5 206.2l.9-1.3h-.1l-1 1.3h.2z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M338.8 204.5a.5.6 10 001 .1.5.6 10 10-1 0z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M339.4 205c-.3.7 0 1 0 1.2l-.1.3c-.2-.4-.3-.8-.1-1.5h.2zm-12.1 9.5c-.7 0-1-.4-1.3-.8h-.3c.4.5.8 1 1.5 1v-.3z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M327.3 215.2a.6.4 9.5 01.2-.9.6.4 9.5 11-.2.8z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M332.7 206a5.5 5.5 0 01-4 6.4c-.9-4 2.8-4 4-6.3z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M332.7 206.1a21 21 0 01-4.8 7.2h-.5c2.7-2.1 4.2-4.9 5.3-7.2z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M327.8 213.3a.5.4 9.8 11-.4-.7.5.4 9.8 01.4.7z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M326 213.8a8 8 0 001.4-.7h-.1l-1.7.6h.3zm2.5-5c0 1.2-1 2.4-2 3.2-.9.9-1 1.2-2.2 1.6-1.2-2.8 2.8-3.3 4.2-4.8z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M328.5 208.8c-1.3 2.5-3.5 3.8-4.7 5.4h-.1c1.6-2.2 3-2.7 4.8-5.4z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M300.4 175.5c-1.7 2.9-4.4 8-5.1 12a22.5 22.5 0 007 20.8c5.2 4.7 13.3 6 16.6 6.8 3.4.7 5.8 1.8 6.4 2.5 0-.5 0-1-.5-1.6-1.6-.7-4.2-1-7.8-1.8-7.2-1.5-14.9-4.2-19-12.2-5.4-10.3-2.2-18.4 2.5-26.4z"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M314.1 213.6c-.2.4-4 3.7-7.5 3.5-2.5-.2-2.9-.8-2.9-.8s-.2-.7 2-1.1c2.3-.5 6.2-2 8.4-1.6z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M303.8 216.3c2.7.3 5.5-.8 7.7-1.6"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M311.2 208.7a11 11 0 014.6 3.7c.9 1.5.7 1.9.7 1.9s-.2.3-1.3-1c-1-1.2-3.4-3.3-4-4.6z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M316.5 214.2c-.9-1.7-2.5-3-3.7-4.2"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M300.3 175.8c-.1-.3.3-3.4 2-4.4 1.3-.7 1.8-.5 1.8-.5s.3.3-.5 1.3c-1 1-2.1 3.2-3.3 3.7z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M304 171c-1.4.7-2.3 2.2-3 3.4"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M299.4 177.4c-.2-.2-1-3-.2-4.7.5-1.3.9-1.4.9-1.4s.3 0 .1 1.3c-.2 1.3-.2 3.8-.8 4.8z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M300 171.4c-.6 1.3-.6 3-.6 4.4"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M299.4 177.5c.2 0 2.7-.8 3.9-2.1.8-1 .8-1.3.8-1.3s-.2-.2-1.1.5c-1 .8-3 2-3.6 2.9z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M304 174.1c-.9 1.1-2.2 2-3.3 2.6"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M298.2 179.6a10 10 0 01-.9-5.2c.3-1.6.6-1.7.6-1.7s.4 0 .4 1.4c0 1.5.3 4.2-.1 5.5z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M298 172.7c-.5 1.7-.2 3.6 0 5"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M297.3 181.6c-.3-.2-2.3-3-2-5.2 0-1.7.5-2 .5-2s.3-.1.6 1.4c.3 1.6 1.2 4.3.9 5.8z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M295.7 174.5c-.2 1.8.5 3.7 1 5.2"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M296.2 184.1a9.9 9.9 0 01-2.4-4.7c-.2-1.5 0-1.8 0-1.8s.4-.1.8 1.3c.4 1.4 1.6 3.9 1.6 5.2z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M293.9 177.7c.1 1.7 1 3.4 1.5 4.8"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M298.2 179.6c.3 0 3.2-.2 4.6-1.7 1-1 1-1.5 1-1.5s-.2-.3-1.4.4c-1.1.8-3.4 1.8-4.2 2.8z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M303.7 176.5c-1 1.2-2.7 1.9-4 2.5"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M297.3 181.6c.2 0 3.2 0 4.6-1.4 1.1-1 1-1.4 1-1.4s0-.3-1.2.3c-1.2.7-3.6 1.5-4.4 2.5z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M303 178.9c-1.2 1-2.8 1.7-4.1 2.2"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M296.4 184.2c.2 0 3.4-.2 4.9-1.7 1-1.1 1-1.5 1-1.5s-.1-.4-1.4.3c-1.2.8-3.7 1.8-4.5 2.9z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M302.3 181c-1.2 1.3-2.9 2-4.3 2.5"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M296.8 183s-.3-.5-.3-1c0-.6.2-.8.2-.8l-.2-.2-.1.9v.3l-.5-.5a10.8 10.8 0 01-.1-.4h-.2l.3.7c.5.4.8 1.1.8 1.1"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.6 180.3a.5.4 83.5 11.1 1 .5.4 83.5 11-.1-1z" overflow="visible" style="marker:none"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M296.8 180.3a.4.5 19.3 11-.3 1 .4.5 19.3 11.3-1z" overflow="visible" style="marker:none"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M296.7 183l1-.7c.3-.4.3-.7.3-.7h.2l-.4.8-.2.2.6-.1.4-.2.1.1-.6.4c-.6 0-1.3.3-1.3.3"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M299.4 181.6a.4.5 45.6 10-.8.8.4.5 45.6 10.8-.8z" overflow="visible" style="marker:none"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M298.4 180.8a.4.5 19.8 10-.3 1 .4.5 19.8 10.3-1z" overflow="visible" style="marker:none"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.4 186.9c-.2-.2-2.4-2.6-2.8-4.8-.3-1.6 0-1.9 0-1.9s.3-.1.8 1.3c.6 1.5 2 4 2 5.4z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M292.6 180.3c.2 1.8 1.2 3.5 2 4.9"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.6 186.9c.3 0 3.5-.4 5-2 1-1.3 1-1.7 1-1.7s-.2-.4-1.4.5-3.8 2-4.6 3.2z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M301.5 183.2c-1 1.4-2.8 2.2-4.2 3"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.2 189.6c.3 0 3.5-.9 5-2.6 1.1-1.3 1-1.7 1-1.7s-.1-.2-1.4.7c-1.2 1-3.8 2.5-4.6 3.6z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M301.2 185.4c-1.1 1.4-3 2.4-4.3 3.2"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295 189.6c-.3 0-3.3-2.2-3.8-4.5-.3-1.7 0-2 0-2s.5-.3 1.2 1.2c.7 1.4 2.5 3.8 2.7 5.3z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M291.3 183.2c.3 1.8 1.5 3.5 2.5 4.8"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.2 193a11 11 0 004.6-3.6c.9-1.5.7-1.8.7-1.8s-.2-.3-1.3 1c-1 1.2-3.4 3.1-4 4.5z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M300.5 187.7c-1 1.6-2.5 3-3.8 4"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295 193.2c-.3 0-3.6-1.7-4.4-4-.7-1.6-.4-2-.4-2s.4-.4 1.3 1c1 1.3 3.1 3.5 3.5 5z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M290.3 187.2c.5 1.8 2 3.4 3.2 4.6"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295 191.6s-.4-.5-.5-1c-.2-.6 0-.9 0-.9h-.3v.8l.2.4-.6-.4-.3-.5-.2.2.5.6c.6.2 1.1 1 1.1 1"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M293 189a.6.4 69.4 11.4 1.2.6.4 69.4 11-.4-1.1z" overflow="visible" style="marker:none"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M294.3 188.7a.4.6 5.2 110 1.2.4.6 5.2 110-1.2z" overflow="visible" style="marker:none"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295 191.6s.6-.5.8-1c.3-.5.2-.8.2-.8h.3l-.3.8-.1.4.6-.3.4-.4.1.2-.6.5c-.6.1-1.2.7-1.2.7"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M297.5 189.4a.4.6 31.5 10-.6 1 .4.6 31.5 10.6-1z" overflow="visible" style="marker:none"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M296.3 188.9a.4.6 5.7 10-.1 1.1.4.6 5.7 100-1.1z" overflow="visible" style="marker:none"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.4 196.2a12 12 0 01-5.1-4c-1-1.7-.8-2.1-.8-2.1s.2-.3 1.4 1c1.3 1.4 3.8 3.6 4.5 5.1z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M289.5 190.2c1 1.8 2.8 3.3 4.2 4.6"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.6 196.2c.4 0 4-1.9 5-4.4.6-1.8.3-2.3.3-2.3s-.4-.3-1.4 1.2c-1 1.4-3.4 3.8-3.9 5.5z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M300.9 189.6c-.7 2-2.3 3.7-3.6 5"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M296.6 199.3c.3-.1 3.7-2.3 4.5-4.8.7-1.9.4-2.3.4-2.3s-.4-.3-1.3 1.3c-1 1.5-3.2 4-3.6 5.7z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M301.5 192.3c-.7 2-2.2 3.8-3.4 5.2"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M296.3 199.3c-.4 0-4.7-1.3-6.2-3.8-1-2-.9-2.5-.9-2.5s.4-.4 1.8 1c1.5 1.4 4.5 3.5 5.3 5.2z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M289.3 193.1c1.1 2 3.3 3.6 5 4.8"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M300.1 205.7c.3-.2 2.6-3 2.8-5.6.2-1.8-.2-2-.2-2s-.3-.2-.8 1.4c-.5 1.7-1.8 4.6-1.8 6.2z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M302.8 198.1c-.1 2-1 4-1.8 5.6"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M300 205.6c-.5.2-5.4 0-7.7-2.1-1.6-1.6-1.5-2.2-1.5-2.2s.2-.5 2.1.5c2 1 5.7 2.3 7 3.8z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M290.9 201.4c1.7 1.7 4.4 2.6 6.5 3.4"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M298.2 203c-.4.1-4.8-1-6.8-3.1-1.6-1.6-1.5-2.1-1.5-2.1s.2-.4 2 .8c1.6 1.2 5 3 6.3 4.5z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M290 197.9c1.6 1.7 4 3 5.8 4"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M298.4 203c.4-.2 3.6-2.9 4-5.6.2-2-.2-2.5-.2-2.5s-.5-.2-1.2 1.5c-.7 1.8-2.6 4.7-2.6 6.5z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M302.2 195c-.2 2.2-1.5 4.3-2.5 6"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M297.4 201.5l-1-.8c-.4-.5-.5-.9-.5-.9h-.3a8 8 0 00.8 1.2l-.8-.1-.5-.3v.2l.7.4c.7 0 1.6.5 1.6.5"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M294.2 199.8a.7.5 45.9 111 1 .7.5 45.9 11-1-1z" overflow="visible" style="marker:none"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M295.4 198.8a.7.5 71.6 11.4 1.3.7.5 71.6 11-.4-1.3z" overflow="visible" style="marker:none"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M297.5 201.4s.4-.6.4-1.3l-.1-1h.2a7.8 7.8 0 00.1 1.3l.6-.5.2-.6.2.1-.4.8c-.6.5-1 1.4-1 1.4"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M299.1 198.2a.5.7 8 10-.2 1.3.5.7 8 10.2-1.3z" overflow="visible" style="marker:none"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M297.6 198.1a.7.5 72.2 10.4 1.3.7.5 72.2 10-.4-1.3z" overflow="visible" style="marker:none"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M301.8 207.6c-.3.2-4.3 1-6.8-.3-1.8-.9-2-1.4-2-1.4s0-.5 2 0c1.8.4 5.2.7 6.8 1.7z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M293.1 206c2 1 4.4 1.2 6.3 1.4"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M302 207.5c.2-.1 2-2.5 1.9-4.8 0-1.7-.4-2-.4-2s-.3-.2-.6 1.3c-.2 1.5-1 4-.9 5.5z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M303.5 200.8c.2 1.8-.4 3.6-.9 5"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M305.5 210.3c-.3.3-5 1.5-8 .3-2-1-2.1-1.5-2.1-1.5s0-.5 2.2-.1c2.1.3 6.2.4 8 1.3z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M295.5 209.2c2.2 1 5 1 7.3 1.1"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M305.8 210.3c.2-.3 1.2-3.8 0-5.6-1-1.4-1.5-1.3-1.5-1.3s-.4 0 0 1.5c.3 1.5.5 4.3 1.5 5.4z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M304.4 203.4c1 1.4 1.1 3.4 1.3 5"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M303.3 208.7s-.5.4-1.2 0c-.6-.3-.8-.7-.8-.7l-.3.2 1 .7.3.2-.9.2-.6-.1v.3h1a13.6 13.6 0 001.5-.5"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M299.5 208.7a.8.5 24.1 111.4.7.8.5 24.1 11-1.4-.7z" overflow="visible" style="marker:none"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M300.3 207.2a.8.5 49.9 111 1.2.8.5 49.9 11-1-1.2z" overflow="visible" style="marker:none"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M303.4 209s.6-.5.2-1.2l-.6-.9.1-.2.7 1 .2.3.2-.9v-.6h.2v1l-.5 1.5"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M303.7 205.1a.8.5 69.5 10.6 1.5.8.5 69.5 10-.6-1.5zm-1.5.8a.8.5 43.7 101 1 .8.5 43.7 10-1-1z" overflow="visible" style="marker:none"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M308.3 211.8c-.3.4-4.2 3-7.4 2.3-2.3-.4-2.6-1-2.6-1s-.1-.6 2-.8c2.2-.1 6-1 8-.5z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M298.4 213.1c2.5.6 5.2 0 7.3-.5"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M310.8 212.6s-.5.7-1.3.5a3 3 0 01-1.2-.5l-.3.3 1.3.4.5.1-.9.6-.7.1v.3l1.2-.3c.2 0 1.4-1 1.4-1"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M306.6 214a.9.6 5.4 111.7.2.9.6 5.4 11-1.7-.1zm.4-2a.9.6 31.2 111.5 1 .9.6 31.2 11-1.5-1z" overflow="visible" style="marker:none"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M309.5 212.2c.2-.3.7-4-1-5.6-1.1-1.2-1.7-1-1.7-1s-.5.1.1 1.5c.7 1.4 1.4 4.2 2.6 5.1z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M306.8 205.6c1.4 1.2 1.9 3.2 2.3 4.7"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M311.4 213s.2-.7-.5-1.2c-.6-.5-1.1-.6-1.1-.6v-.4l1.2.7.4.3c.4.3 0-.8-.2-1l-.4-.7.3-.2.5 1 .2 2"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M309.7 209a.9.6 42.7 101.3 1.1.9.6 42.7 10-1.3-1.2zm-1.2 1.5a.9.6 17 101.7.6.9.6 17 10-1.7-.6z" overflow="visible" style="marker:none"/>
+  <path fill="#452c25" d="M319.1 209s-2.3 5.4-1.5 6c0 0 2.4-4.3 4.4-5.8 1.1-1 1.8 0 2-1 0-.8-3-2.1-3-2.1l-1.8 2.7"/>
+  <path fill="none" stroke="#000" stroke-width=".2" d="M319.1 209s-2.3 5.4-1.5 6c0 0 2.4-4.3 4.4-5.8 1.1-1 1.8 0 2-1 0-.8-3-2.1-3-2.1l-1.8 2.7"/>
+  <path fill="#452c25" d="M310.6 213.1s-3.4 6-2.5 6c.8 0 4.5-7.5 4.5-7.5l-1.3.2-.7 1.3z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M310.6 213.1s-3.4 6-2.5 6c.8 0 4.5-7.5 4.5-7.5l-1.3.2-.7 1.3z"/>
+  <path fill="#452c25" d="M311.6 211.5s-3.6 5.8-2.7 5.9c1 .1 4.8-7.4 4.8-7.4l-1.3.1-.8 1.4z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M311.6 211.5s-3.6 5.8-2.7 5.9c1 .1 4.8-7.4 4.8-7.4l-1.3.1-.8 1.4z"/>
+  <path fill="#452c25" d="M312.3 210.5s-4 5.4-3.2 5.6c1 .2 5.4-7 5.4-7l-1.3.1-.9 1.3z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M312.3 210.5s-4 5.4-3.2 5.6c1 .2 5.4-7 5.4-7l-1.3.1-.9 1.3z"/>
+  <path fill="#452c25" d="M313.4 209.5s-4.8 4.9-3.9 5.2c.8.3 6.2-6.2 6.2-6.2l-1.2-.1-1.1 1.1z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M313.4 209.5s-4.8 4.9-3.9 5.2c.8.3 6.2-6.2 6.2-6.2l-1.2-.1-1.1 1.1z"/>
+  <path fill="#452c25" d="M313.6 207.7s-4.2 5.4-3.3 5.6c.9.2 5.5-6.9 5.5-6.9l-1.3.1-1 1.2z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M313.6 207.7s-4.2 5.4-3.3 5.6c.9.2 5.5-6.9 5.5-6.9l-1.3.1-1 1.2z"/>
+  <path fill="#452c25" d="M312.5 212.4s-4 5.5-3.2 5.6c1 .2 5.4-7 5.4-7l-1.3.1-.9 1.3z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M312.5 212.4s-4 5.5-3.2 5.6c1 .2 5.4-7 5.4-7l-1.3.1-.9 1.3z"/>
+  <path fill="#452c25" d="M314.8 211.3s-2.4 4.5-2.1 4.6c.3.2 3.1-2.5 4.6-5.2 1.4-2.6-2.6.5-2.6.5"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M314.8 211.3s-2.4 4.5-2.1 4.6c.3.2 3.1-2.5 4.6-5.2 1.4-2.6-2.6.5-2.6.5"/>
+  <path fill="#452c25" d="M315 210.8s-2.3 5.5-1.5 6c0 0 3-3.3 3.7-5.9.8-2.6 0-.1 0-.1l-.2-2.9-2 2.7"/>
+  <path fill="none" stroke="#000" stroke-width=".2" d="M315 210.8s-2.3 5.5-1.5 6c0 0 3-3.3 3.7-5.9.8-2.6 0-.1 0-.1l-.2-2.9-2 2.7"/>
+  <path fill="#452c25" d="M313.8 210.4s-4.7 4.8-3.9 5.1c.9.3 6.3-6.1 6.3-6.1l-1.3-.1-1 1z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M313.8 210.4s-4.7 4.8-3.9 5.1c.9.3 6.3-6.1 6.3-6.1l-1.3-.1-1 1z"/>
+  <path fill="#452c25" d="M314.2 211s-4.7 5-3.9 5.2c.8.3 6.2-6.2 6.2-6.2h-1.2l-1.1 1z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M314.2 211s-4.7 5-3.9 5.2c.8.3 6.2-6.2 6.2-6.2h-1.2l-1.1 1z"/>
+  <path fill="#452c25" d="M314.6 211.8s-4.8 4.9-4 5.2c1 .3 6.3-6.2 6.3-6.2h-1.2l-1.1 1z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M314.6 211.8s-4.8 4.9-4 5.2c1 .3 6.3-6.2 6.3-6.2h-1.2l-1.1 1z"/>
+  <path fill="#452c25" d="M315 205.1s-3.6 4.5-3 5.3c.4.8 3.6-2 4.7-4 1-2-1.7-1.4-1.7-1.4"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M315 205.1s-3.6 4.5-3 5.3c.4.8 3.6-2 4.7-4 1-2-1.7-1.4-1.7-1.4"/>
+  <path fill="#452c25" d="M314.8 209.9s-3 5.8-2.2 5.5c.8-.4 3.8-4.7 4.2-5.7.3-1 .2-2 .2-2l-2.3 1.5.2 1.1"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M314.8 209.9s-3 5.8-2.2 5.5c.8-.4 3.8-4.7 4.2-5.7.3-1 .2-2 .2-2l-2.3 1.5.2 1.1"/>
+  <path fill="#452c25" d="M314.8 208s2.5-4.6 0 .9-3.4 4.5-3.4 4.5c-.2-.3 2.2-4 2.2-4s1.7-2.8 2.1-3.1"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M314.8 208s2.5-4.6 0 .9-3.4 4.5-3.4 4.5c-.2-.3 2.2-4 2.2-4s1.7-2.8 2.1-3.1"/>
+  <path fill="#452c25" d="M317.5 207.4s2.8-4.6 0 .9c-2.8 5.4-3.9 4.5-3.9 4.5-.2-.3 2.5-4 2.5-4s2-2.8 2.4-3.1"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M317.5 207.4s2.8-4.6 0 .9c-2.8 5.4-3.9 4.5-3.9 4.5-.2-.3 2.5-4 2.5-4s2-2.8 2.4-3.1"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M316.5 205.5s-3.5 4.5-3 5.2c.5.8 3.7-2 4.7-4s-1.7-1.4-1.7-1.4"/>
+  <path fill="#e8a30e" d="M352.8 251a32.8 37 0 11-65.6 0 32.8 37 0 1165.6 0z"/>
+  <path fill="none" stroke="#390" stroke-width=".8" d="M293.7 251c0-17 12-30.2 26.3-30.2s26.3 13.1 26.3 30.3" color="#000" font-family="Sans" font-weight="400" overflow="visible" style="line-height:normal;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;block-progression:tb;marker:none"/>
+  <path fill="#007934" stroke="#eee" stroke-width=".1" d="M287.2 253c1 19.5 15.3 35 32.8 35s31.9-15.5 32.8-35h-65.6z"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M352.8 251a32.8 37 0 11-65.6 0 32.8 37 0 1165.6 0z"/>
+  <path fill="#d52b1e" stroke="#000" stroke-width=".1" d="M314.5 225.4c-.3 1.4 0 2.5.7 3.6.6.9 1 1.8.9 2.7a7.9 7.9 0 00-.7.5l-5.5-3.7 3.7 5.5a8 8 0 00-.2.2 4.9 4.9 0 00-3-.3 5 5 0 01-3.7-.8 4.5 4.5 0 003.1 2.1 5 5 0 012.6 1.3 8 8 0 00-.2.8l-6.6 1.3 6.6 1.3v.3a4.9 4.9 0 00-2.4 1.9 5 5 0 01-3 2c1.3.4 2.5 0 3.6-.7a5 5 0 012.7-.9l.4.7-3.6 5.6 5.4-3.7.3.2a4.9 4.9 0 00-.4 3 5 5 0 01-.7 3.6 4.5 4.5 0 002-3.1 4.9 4.9 0 011.4-2.5l.8.2 1.3 6.5 1.3-6.5h.3a4.9 4.9 0 001.8 2.3 5 5 0 012.1 3.1 4.4 4.4 0 00-.7-3.6 4.9 4.9 0 01-.9-2.8l.7-.4 5.5 3.7-3.7-5.5.2-.3c1 .5 2 .6 3 .4a5 5 0 013.7.7 4.5 4.5 0 00-3.1-2 4.9 4.9 0 01-2.6-1.4l.2-.8 6.6-1.3-6.6-1.2a7.9 7.9 0 000-.4 4.9 4.9 0 002.4-1.8 5 5 0 013-2 4.5 4.5 0 00-3.6.7 4.9 4.9 0 01-2.7.8 7.9 7.9 0 00-.4-.7l3.7-5.5-5.5 3.7a8 8 0 00-.3-.2c.5-1 .6-2 .4-3a5 5 0 01.7-3.6 4.5 4.5 0 00-2 3 5 5 0 01-1.4 2.6 8 8 0 00-.8-.2l-1.3-6.5-1.2 6.5h-.4a4.9 4.9 0 00-1.8-2.3 5 5 0 01-2-3.1z" overflow="visible" style="marker:none"/>
+  <use width="330" height="330" fill="#fcbf49" stroke-width="1.1" transform="rotate(22.5 -417.9 955.8) scale(.14262)"/>
+  <use width="330" height="330" fill="#fcbf49" stroke-width="1.1" transform="matrix(-.14262 0 0 .14262 334 232.7)"/>
+  <path d="M325.9 236.7c-1.7-1.4-3.8-1.6-4.9-.6-.8 1.1-.8 2.4.2 3.8a.5.5 0 00-.3.2 4.9 4.9 0 01-.3-4.1c1.5-1.3 3.7-1.4 5.2.7"/>
+  <path d="M323.3 236.3c-1 0-1.2.2-1.6.5-.4.4-.6.3-.7.4 0 0 0 .3.1.2.2 0 .5-.2.9-.6.4-.3.8-.3 1.3-.3 1.3 0 2 1 2.1 1 .2 0-.7-1.2-2.1-1.2"/>
+  <path d="M325 237.5c-1-1-2.7-1-3.4 0h.2c.8-1 2.5-.6 2.6 0"/>
+  <circle cx="323.1" cy="237.4" r=".6"/>
+  <path d="M321.6 237.6c.7.6 2.2.7 3.3-.1h-.5c-.7.7-1.8.6-2.5 0"/>
+  <path d="M325 237.8c-1.2 1-2.4.9-3.1.5-.7-.5-.7-.6-.6-.6l.8.4c.6.3 1.5.3 2.9-.2m-3.5 2a.4.4 0 11-.6.5c0 .1-.3.6-.9.6h-.1l.1.2c.1 0 .6 0 .9-.2a.6.6 0 10.6-1m.9 3c-.7-.5-1-1-1.7-1a2 2 0 00-.7.1h-.1l.1.2c.3 0 .7-.3 1.2 0l1.2.7m-.3 0c-1.4-.5-1.7-.2-2.1-.2h-.1l.1.3c.6 0 .9-.4 2.1-.1"/>
+  <path d="M322.4 243c-1.6-.2-1.1.8-2.4.8h-.1l.1.2c1.6 0 .9-.9 2.4-1m-8.2-6.3c1.6-1.4 3.7-1.6 4.8-.6.8 1.1.8 2.4-.2 3.8a.5.5 0 01.3.2 5 5 0 00.3-4.1c-1.5-1.3-3.7-1.4-5.2.7"/>
+  <path d="M316.7 236.3c1 0 1.2.2 1.6.5.4.4.6.3.7.4 0 0 0 .3-.1.2a4.1 4.1 0 01-.9-.6c-.4-.3-.8-.3-1.3-.3-1.3 0-2 1-2.1 1-.2 0 .7-1.2 2.1-1.2"/>
+  <path d="M315 237.5c1-1 2.7-1 3.4 0h-.2c-.8-1-2.5-.6-2.6 0"/>
+  <circle cx="-316.9" cy="237.4" r=".6" transform="scale(-1 1)"/>
+  <path d="M318.4 237.6c-.7.6-2.2.7-3.3-.1h.5c.7.7 1.8.6 2.5 0"/>
+  <path d="M315 237.8c1.2 1 2.4.9 3.1.5.8-.5.8-.6.6-.6l-.8.4c-.5.2-1.5.3-2.9-.2m3.5 2a.4.4 0 10.6.5c0 .1.3.6.9.6h.1l-.1.2c-.1 0-.6 0-.9-.2a.6.6 0 11-.6-1m-.9 3c.7-.5 1-1 1.7-1l.7.1h.1l-.1.2c-.3 0-.7-.3-1.2 0l-1.2.7m.3 0c1.4-.5 1.7-.2 2.1-.2h.1l-.1.3c-.6 0-.9-.4-2.1-.1"/>
+  <path d="M317.6 243c1.6-.2 1.1.8 2.4.8h.1l-.1.2c-1.6 0-.9-.9-2.4-1"/>
+  <path fill="#007934" stroke="#000" stroke-linecap="round" stroke-width=".1" d="M323.2 258.4c1.6.2 3.3.2 4.7-.3a9.9 9.9 0 014.2-.6c0-.2.5-.3.2-.5-.5-.3-1.2-.3-1.8-.6-1-.5-1.7-1.3-2.7-2-.1 0-.6-.3-.6-.5 2.2 3.2 7.5 1.5 12 1.2.4.1 1.5-.2 2.4-.5 1-.4 3.6 0 4.3-.5l-1.3-1c-.6-.8-2.3-.7-3-1.5-1.3-1.5-3.3-1.9-4.9-3-.3-.3-1-.2-1.6-.3-.6-.6 0-.5-5-4.7-4.5-1.8-4.2-3.2-7-4.3-1-.5-1.9-1.4-2.7-1.1a30 30 0 00-6.3 3c-1.2.6-2.7 2-3.8 2.8-.2.2-3.4 2.9-7 4.8a115 115 0 01-9.2 4.8c8-.4-7.3 2.3 29.1 4.8z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M303.3 249c2-1 10-5.3 12.4-8.4-.4 0 .6 1 .5 1.4.8 0 .4-1 1-1 .5 0 .9-.1 1.3-.3.5 0 .2.2.2.4-.7 1.2-2 2-3.2 2.9l.2.4c.4 0 .9 0 1.1-.2l.1-.3c.4.1.3.5.1.7-.3.6-1.4.5-1.8 1a6.2 6.2 0 01-1.5 1.7c.5-.4 1-1 1.7-1 1 0 1.3-.7 2.2-.9.9-.1 1.5-.9 2.2-1.4-.3.4-.9.7-.7 1.2a.6.6 0 00.6.2c-.7.8-2 1.4-2.4 2.4-.4-.2-.7.2-1 .2-.4.1-.3.8-.6 1-1.2.7-1.8 1.8-2.3 2.7l-1.3.7c-.7.3-4.6 3.4-4.7 3-.3-2.1-4.3 1.6-13.3-1.6m30.6-.1l-.2-.2c.1-.3-.5-.4-.5-.7 1 0 1.8 1.2 2.5.5.1-.1-.3-.4.4-.6 0 0-.2-.1-.1-.2h-.8l-.8-.3c-.3-.1-.5-.5 0-.6 1-.1 1.9.5 2.6.2.6-.3 1.1-.3 1.7-.5.3-.1 1.2 0 .9.2-.2.2-.7.1-1 .2-.5.1-1 .4-1.4.6.3 0 .2.3.7.2a6 6 0 012-.4v-.5h.3c-.3-.5.6-.2 1-.6l.1.1c-.5.2-.3.5-.4.8 0 0-.3 0-.2.2.2.2.2-.2.5 0h.6c.3 0 .7-.1.5-.4-.3-.2-.6-.5-.6-.8l-.1-.1c.5 0 1 .2 1.1.4.3.3.3.6.8.7.8.2.7-.2.7-.6.7 0 1.6.3 1.4.6 0 .3-.6.5-1 .5s-.2.3-.4.3c-.4 0-.9 0-1 .2-.2.2 0 .7.3.9.4.2 1.2 0 1.8 0 .1-.3.5-.4.9-.6.4-.3-.2-.5-.5-.7-.3 0 0-.1 0-.3.3-.3.9 0 1-.2.1-.3-.1-.6.1-.8.2-.1.5.1.4.3l.7-.2c.3 0 .5.3.4.4-.5.2-.8.4-.7.8 0 .2-.5.3-.3.5.4.3.4.5.5.9.2.3 1 .4 1.6.3-.2-.7 1.4-.4 2-.5.1 0 .1-.1 0-.2-.3-.2-.3-.3-.3-.6l-.1-.1c1 .3 2.8.8 3.6 1.4-1 .2-2.8-.2-3.8 0a15 15 0 01-3.7.6c-.5 0-1-.3-1.6-.3m-11.3-.7l-.4-.1"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M321.2 259.1c2 0 2.2 1.4 3.5.1 1.1.2 2.2-.2 2.2-.3 2.7.6 11.1-.2 10.6-.8-.9-1-2.3-1.4-3.4-2.2l-1.1-.4c-.7-.2-1.5 0-2-.3l-2.6-1.5c-.5-.4-.7-1-1.2-1.4-.6-.4-1.4-.5-2-.7-.9-.4-1.4-1.2-2.2-1.9l-1.1-.4c-.7-.3-1.2-1.1-1.9-1-1 .2-1.7 1-2.8 1.6-1 .4-1.4 1.1-2.2 1.6-.2.2-2.6 1.8-5.3 2.9a72.6 72.6 0 01-6.6 2.5s2.4 1.7 8 1.5l3.4 1 1.9-.3h4.8z"/>
+  <path fill="#007934" stroke="#000" stroke-width=".1" d="M309.8 254.8c1.2-.6 6-2.9 7.4-4.5-.1 0 .5.5.4.7.5 0 .2-.4.6-.5l.8-.1c.3 0 .1 0 .1.2-.4.6-1.3 1-2 1.5l.2.2h.7v-.3c.3.1.2.3.1.4-.2.4-.9.3-1.1.6a3 3 0 01-1 .9c.4-.2.7-.5 1.1-.5.6 0 .8-.4 1.3-.5.6-.1 1-.5 1.4-.8-.2.2-.5.4-.4.7l.4.1c-.4.4-1.2.7-1.5 1.2l-.6.1c-.3.1-.2.5-.4.6-.7.3-1 1-1.4 1.4l-.8.4c-.4.2-2.8 1.8-2.8 1.6-.2-1.1-2.6.5-8-1.2"/>
+  <path fill="#00a6de" stroke="#000" stroke-width=".1" d="M320 214.2c-18.1 0-32.8 16.5-32.8 36.9S301.9 288 320 288s32.8-16.5 32.8-37c0-20.3-14.7-36.9-32.8-36.9zm0 8.2c13.2 0 24.7 12.3 24.7 28.7s-11.5 28.6-24.7 28.6-24.7-12.2-24.7-28.6c0-16.4 11.5-28.7 24.7-28.7z" color="#000" font-family="Sans" font-weight="400" overflow="visible" style="line-height:normal;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;block-progression:tb;marker:none"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M324.7 266.8c0 .2 0 .2-.4.3-.4 0-.5 0-.5-.2s.1-.2.5-.2c.3-.1.4-.1.4 0z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M324.8 266.8l-.5.2h-.5c0-.2.2-.2.5-.3h.5zm-2.8 9c.8-2.2 1-3.8-.2-6 2-1.9 3.3-1.2 4.6 0-1.2 2.3-1 4-.2 6a4 4 0 01-4.2 0z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M324 268.6v7.7h.1v-7.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M324.4 268.6a44.6 44.6 0 00-.3 7.7c0-2.9.2-5.3.4-7.6zm.7-2.4c-.4.4-.6.4-.4 1 .4-.3.4-.5.4-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M324.3 266.4c.2.3.6.4.3 1-.4-.3-.3-.4-.3-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M324.3 267c.2.3.5.3.3.9-.3-.3-.4-.3-.4-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M324.2 267.4c.2.2.5.4.3 1-.4-.4-.3-.4-.3-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M324 267.9c.3.2.7.3.4 1-.4-.4-.2-.5-.4-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M324 268.4c.2.2.6.3.4 1-.3-.4-.4-.4-.4-1zm1.3-1.7c-.2.1-.6.1-.6.8.5-.3.5-.3.6-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M325.3 267.1c-.2.2-.7.2-.7.7.6-.2.5-.2.7-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M325.2 267.6c-.2.1-.6 0-.7.7.6-.3.6-.2.7-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M325.2 268.1c-.2 0-.7 0-.7.7.4-.1.4-.3.7-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M325 268.6c-.4.1-.5 0-.6.7.5-.3.4-.2.5-.7zm.2.3c-.7 2.1-.8 4-.7 7.4h.1c0-3.4.1-5.2.8-7.3a2.8 2.8 0 00-.1 0zm1.2-2.2c-.4.3-.6.2-.5.8.4-.1.4-.3.5-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M325.6 266.8c.2.2.5.4.1 1-.3-.4-.2-.5 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M325.4 267.4c.3.3.5.3.2.8-.2-.3-.3-.3-.2-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M325.3 267.7c.1.3.4.4.1 1-.3-.4-.3-.4-.1-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M325 268.1c.3.3.6.5.3 1-.4-.4-.2-.5-.3-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M324.9 268.6c.2.3.5.5.2 1-.3-.4-.3-.4-.2-1zm1.6-1.4c-.2.2-.6 0-.7.7.5-.2.5-.2.7-.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M326.4 267.7c-.2 0-.6 0-.8.5.6-.1.6 0 .8-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M326.3 268c-.3.2-.7 0-.9.7.7-.2.6-.2.9-.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M326.1 268.6c-.2 0-.6-.2-.8.5.4 0 .4-.2.8-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M325.8 269c-.3 0-.5 0-.7.6.5-.2.5-.1.7-.6zm.1.4c-1 1.9-1.1 3.6-.7 6.8l.2-.1c-.4-3-.2-4.7.6-6.6zm1.6-2.2c-.5.2-.7.2-.7.8.4-.2.5-.4.7-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M326.7 267.2c.1.3.4.5 0 1-.3-.5-.2-.5 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M326.4 267.8c.2.2.4.4 0 .8 0-.4-.2-.4 0-.9z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M326.2 268c.1.3.4.5 0 1-.3-.4-.2-.4 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M326 268.5c0 .3.4.5 0 1-.3-.5 0-.5 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M325.7 268.9c.2.3.5.5 0 1-.1-.4-.2-.5 0-1zm1.8-1.1c-.2 0-.6-.1-.8.5.6-.1.5 0 .8-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M327.3 268.2c-.2 0-.6-.1-.8.4.6 0 .6 0 .8-.4z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M327.1 268.5c-.2 0-.6 0-.8.5.6 0 .5 0 .8-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M327 269c-.3 0-.7-.3-1 .4.5 0 .5-.1 1-.4zm-.5.4c-.3 0-.4 0-.7.5.5-.1.5 0 .7-.5zm-3-.7c.2 2.4.4 4.8.4 7.6h.1c.1-2.9 0-5.3-.4-7.6zm-.6-2.6c.4.4.5.4.4 1-.4-.3-.4-.5-.4-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M323.7 266.4c-.3.2-.6.4-.4 1 .4-.3.4-.4.4-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M323.7 267c-.3.3-.5.3-.3.8.2-.3.3-.2.3-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M323.8 267.4c-.2.2-.5.3-.3 1 .4-.4.3-.4.3-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M324 267.9c-.3.2-.7.3-.5 1 .5-.4.2-.5.4-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M324 268.4c-.3.2-.6.3-.4.9.3-.3.4-.4.4-.9zm-1.3-1.8c.2.2.6.2.6.8-.5-.3-.5-.2-.6-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M322.7 267.1c.2.1.6.1.6.7-.5-.3-.5-.2-.6-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M322.8 267.5c.2.1.6.1.6.8-.5-.3-.5-.3-.6-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M322.8 268c.2.1.7 0 .7.8-.4-.1-.4-.4-.7-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M323 268.5c.3.2.5.1.5.8-.4-.3-.4-.3-.5-.8zm-.2.5a3.8 3.8 0 00-.2.1c.7 2 1 3.9.9 7.2h.1a19 19 0 00-.8-7.3zm-1.2-2.4c.4.3.5.3.5.8-.4-.1-.4-.3-.5-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M322.4 266.7c-.2.3-.5.4-.2 1 .3-.4.3-.4.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M322.6 267.3c-.3.3-.6.4-.2.9.2-.4.3-.4.2-.9z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M322.7 267.6c-.2.3-.5.5-.1 1 .3-.4.2-.4.1-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M323 268.1c-.3.3-.6.4-.3 1 .4-.5.1-.5.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M323 268.6c-.1.2-.5.4-.1 1 .2-.4.3-.5.2-1zm-1.5-1.5c.2.1.6 0 .7.7-.6-.2-.5-.2-.7-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M321.6 267.6c.2 0 .6 0 .7.5-.5-.1-.5 0-.7-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M321.7 268c.2 0 .7 0 .8.6-.6-.2-.6-.2-.8-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M321.9 268.5c.2 0 .6-.2.8.6-.4 0-.5-.3-.8-.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M322.2 269c.3 0 .4 0 .6.5-.5-.2-.4-.1-.6-.6zm0 .5a4.1 4.1 0 00-.2 0c.9 2 1 3.6.7 6.6h.2c.3-3 .2-4.6-.8-6.6zm-1.7-2.5c.4.3.6.2.6.8-.4-.1-.5-.3-.6-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M321.3 267c-.1.3-.4.6 0 1 .3-.4.2-.4 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M321.6 267.6c-.2.3-.5.4-.1.9.1-.4.3-.4 0-.9z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M321.8 268c-.2.2-.4.4 0 1 .2-.5.2-.5 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M322 268.4c-.1.3-.4.5 0 1 .3-.5 0-.5 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M322.3 268.8c-.2.3-.5.5-.1 1 .2-.4.2-.5 0-1zm-1.8-1.2c.2 0 .6 0 .8.5-.6 0-.6 0-.8-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M320.6 268c.3 0 .7 0 .9.5-.6-.1-.6 0-.9-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M320.8 268.4c.3 0 .7 0 1 .5-.7-.1-.7 0-1-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M321 268.9c.3 0 .7-.3 1 .5-.5 0-.5-.3-1-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M321.4 269.3c.3 0 .5 0 .7.5-.5-.1-.4 0-.7-.5zm2.2-3.2c.3.4.5.4.3 1-.4-.3-.3-.5-.3-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M324.3 266.4c-.2.2-.5.3-.4 1 .5-.3.4-.4.4-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M324.4 267c-.3.2-.6.3-.4.8.2-.3.3-.2.4-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M324.4 267.4c-.2.2-.5.3-.4 1 .4-.4.4-.4.4-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M324.5 268c-.3.1-.6.2-.5.8.5-.3.3-.4.5-.9z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M324.5 268.4c-.2.2-.6.3-.4.9.3-.3.4-.3.4-.9zm-1.2-1.8c.2.2.6.2.6.8-.5-.3-.5-.3-.6-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M323.3 267c.2.2.6.2.6.8-.5-.3-.5-.3-.6-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M323.4 267.4c.2.2.6.2.6.9-.5-.4-.5-.3-.6-.9z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M323.4 268c.2.1.7 0 .6.8-.4-.2-.3-.4-.6-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M323.6 268.5c.2.1.4.1.4.8-.4-.4-.4-.3-.4-.8zm-.4.3a2.7 2.7 0 00-.1 0c.5 2.5.7 4.7.6 7.5h.2c0-2.5 0-5-.7-7.5zm-1-2.4c.4.4.6.3.5 1-.4-.3-.4-.5-.5-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M323 266.6c-.2.2-.5.4-.2 1 .3-.4.3-.4.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M323.1 267.2c-.2.2-.5.3-.2.8.2-.3.3-.3.2-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M323.3 267.5c-.2.3-.5.4-.2 1 .3-.3.3-.4.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M323.5 268c-.3.3-.6.4-.3 1 .4-.4.2-.5.3-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M323.6 268.5c-.2.3-.6.4-.3 1 .3-.4.3-.5.3-1zM322 267c.3 0 .7 0 .8.6-.6-.2-.6-.1-.8-.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M322.1 267.4c.2.1.7 0 .8.6-.6-.2-.6-.1-.8-.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M322.3 267.8c.2.1.6 0 .7.7-.6-.2-.6-.2-.7-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M322.4 268.3c.2 0 .6-.1.8.7-.5-.1-.5-.3-.8-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M322.7 268.8c.3 0 .4 0 .6.6-.5-.2-.5-.1-.6-.6zm-.8.9c.6 1.4.8 2.6.7 3.7l-.3 2.5h.1c.6-2.5.5-4.4-.5-6.2z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M322.5 269.2l-.1.1c.8 2.1.9 4 .7 7h.1c.2-3 .1-5-.7-7zm-1.4-2.4c.4.3.5.2.5.8-.4-.1-.4-.3-.5-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M321.8 266.9c-.1.2-.4.4 0 1 .3-.4.2-.5 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M322 267.4c-.1.3-.4.4 0 1 .1-.4.2-.4 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M322.3 267.8c-.2.2-.5.4 0 1 .2-.5.1-.5 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M322.5 268.2c-.2.3-.5.5 0 1 .2-.5 0-.5 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M322.7 268.7c-.1.2-.5.5-.1 1 .2-.4.3-.5.1-1zm-1.7-1.3c.2 0 .6 0 .8.5-.6-.1-.6 0-.8-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M321.1 267.8c.3 0 .7 0 .8.5-.5-.1-.5 0-.8-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M321.3 268.1c.2.1.7 0 .9.6-.6-.1-.6 0-.9-.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M321.5 268.7c.2 0 .6-.3.9.5-.5 0-.5-.2-.9-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M321.9 269c.3.1.4 0 .6.6-.4-.1-.4 0-.6-.5zm-2-1.6c.5.2.7.2.8.7-.4 0-.5-.2-.7-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M320.7 267.4c0 .3-.3.5.2 1 .2-.5.1-.5-.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M321 267.9c0 .3-.3.5.1.9.1-.4.2-.4 0-.9z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M321.3 268.2c0 .3-.3.5.1 1 .2-.5.2-.5 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M321.6 268.6c0 .3-.4.5.1 1 .2-.6 0-.5 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M322 269c-.2.3-.5.6 0 1 .1-.4.2-.5 0-1zm-2-1c.2 0 .6-.1.9.4-.6 0-.6 0-1-.4z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M320.2 268.4c.2 0 .6-.2.9.4-.6 0-.6 0-.9-.4z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M320.4 268.7c.3 0 .7-.1 1 .4-.6 0-.6 0-1-.4z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M320.7 269.2c.2 0 .6-.3 1 .4-.5 0-.5-.2-1-.4z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M321.1 269.5c.3 0 .5 0 .8.5-.5 0-.5 0-.8-.5zm3.8-.7a25.9 25.9 0 00-.7 7.5 2.5 2.5 0 00.2 0c0-2.8 0-5 .7-7.4a2.8 2.8 0 00-.2-.1zm1-2.3c-.4.3-.5.3-.5.9.4-.2.5-.4.5-.9z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M325.1 266.6c.2.3.5.5.2 1-.3-.4-.3-.4-.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M325 267.3c.3.2.5.3.2.8-.2-.3-.3-.3-.2-.9z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M324.9 267.6c.2.2.5.4.2 1-.4-.4-.3-.5-.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M324.7 268c.2.3.5.5.2 1-.4-.4-.1-.5-.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M324.5 268.5c.2.3.6.5.3 1-.3-.4-.3-.4-.3-1zm1.6-1.5c-.2.2-.6 0-.7.7.5-.2.5-.2.7-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M326 267.5c-.2 0-.6 0-.7.6.5-.2.5-.1.7-.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M325.9 267.9c-.2 0-.7 0-.8.6.6-.2.6-.1.8-.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M325.7 268.4c-.2 0-.6-.2-.7.6.4 0 .4-.3.7-.6z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M325.4 268.8c-.2.1-.4 0-.5.7.4-.2.4-.2.5-.7zm.2.4c-.9 2.1-1 4.1-.8 7h.2c-.2-3-.1-4.9.7-7zm1.5-2.3c-.5.3-.6.2-.6.8.4-.1.4-.3.6-.8z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M326.3 267c.1.2.4.5 0 1-.3-.5-.2-.5 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M326 267.5c.3.3.5.5.1 1-.1-.5-.2-.5 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M325.9 267.8c.1.3.4.5 0 1-.3-.4-.2-.4 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M325.6 268.3c.2.3.5.5.1 1-.3-.5 0-.5-.1-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M325.4 268.7c.2.3.5.5.1 1-.2-.4-.3-.4-.1-1zm1.7-1.2c-.2.1-.6 0-.8.5.6 0 .6 0 .8-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M327 268c-.2 0-.6-.1-.8.4.6-.1.5 0 .8-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M326.8 268.3c-.2 0-.7 0-.8.5.6-.1.5 0 .8-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M326.6 268.8c-.2 0-.6-.3-.8.5.4 0 .4-.3.8-.5z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M326.3 269.2c-.4 0-.5 0-.7.5.4-.1.4 0 .6-.5zm0 .5c-1.1 2-1 4-.6 6.3h.2l-.3-2.9a6 6 0 01.8-3.3h-.1zm1.9-2c-.5.1-.7 0-.8.6.5 0 .5-.2.8-.7z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M327.4 267.5c0 .3.3.6-.2 1-.2-.5-.1-.5.2-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M327 268c.2.3.4.5 0 .9-.1-.4-.2-.4 0-.9z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M326.8 268.3c.1.3.3.5-.1 1-.2-.5-.2-.5.1-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M326.5 268.7c0 .3.4.6-.1 1-.2-.6 0-.5 0-1z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M326.2 269c.1.4.4.7 0 1-.2-.4-.2-.4 0-1zm2-.8c-.3 0-.6-.2-1 .4.6 0 .6 0 1-.4z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M327.9 268.6c-.2 0-.6-.2-.9.3.6 0 .6 0 .9-.3z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M327.7 268.9c-.3 0-.7-.2-1 .4.7 0 .6 0 1-.4z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M327.4 269.4c-.2 0-.6-.4-1 .3.5 0 .6-.2 1-.3z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M327 269.7c-.3 0-.5-.1-.8.4.5 0 .5 0 .8-.4zm-3.5 2.7h1.1c.7 0 1.2.2 1.2.4s-.5.3-1.2.3h-1.1c-.7 0-1.3-.2-1.3-.4s.6-.3 1.3-.3z"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width="0" d="M322.7 272.4l-.4.6a.3.3 0 00.2 0h.2l.4-.6h-.4zm.9 0l-.4.6h.4l.4-.6h-.4zm.9 0l-.4.7h.4l.4-.7h-.4zm.8 0l-.3.7h.4l.3-.6a.3.3 0 00-.2 0h-.2z"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M316.5 268.8l.5 2.7.2.2v1.1c.3.5.3 1.1.5 1.6l.3.6h.4l.1.2-.2.2h-.6l-.3-.1v-.3h-.2l-.1-.6-.8-1c0-.1 0-.4-.2-.5l-.3-.3c-.5-1-1-3-1-3m-6.4-1l1.8.4-.5 2.6c-.3.8-.3.9-.2 1 .2.5.4 1.2 1.1 2.3l.6.4.5.3h.5l.1-.2c0-.1-.3 0-.5-.2 0-.3-.5-.8-.5-1.2-.3-.7-.2-.7-.2-1.5l.5-1.6c.2-.5.5-1.4.5-2l-.8-1.7-.5-.7m-1.6-1.1c-2.9 1-1.7 3.5-.9 3.6m9.2-8.1l.4-1v-.4l-.7.9"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M319.2 262.4c.2 0 .4.1.4 0v-.6c-.6-.4-1-.4-1-.7v-.2c0-.2-.8-.3-1-.4l-.4-.2h-.2c-.8 0-1.1.7-1.2 1.2 0 0-.2 2.1-.5 3a.7.7 0 01-.2.3l-.2.2c-2-.2-3.4-.2-4.2-.2-.8 0-1.8.7-1.8.7s-1 .6-1.1 1.6c-.1.3 0 .7.1 1 1 2.7 1.8 0 2.1.1h.4c.5 0 1.4 1.5 2.7 1.8 4 .9 5-1.2 5-5.8v-.2l.2-.4v-.8l1-.2.2-.1"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M317.3 261l.4-1v-.4l-.9 1m-8.9 7.6c.3.8.7 1.5.7 1.8 0 .4-.3.6-.3.7h-.2l-.2.6a1.3 1.3 0 000 .6c0 .7.4 2.2.4 2.3 0 0 .3 0 .3.2v1.2c0 .2.3.3.3.3h.6l-.4-.4a.4.4 0 010-.2c0-.2.2-.4.3-.5v-.3l-.1-.2a8.3 8.3 0 01-.1-.9v-1.1l.2-.2.1-.2 1-.6.8-1 .2-.5a.5.5 0 000-.2 3.8 3.8 0 00-.3-.9 3.2 3.2 0 00-.6-.8m5.9 1.8c-.5.4-1.8.7-1.8 1 0 0 0 1.6-.2 2.2l-.3.6-.2.7-.3 1v.3l.4.3h-.4l-.6-.2V274l-.2-1.4.1-1-.1-3.6m4.7-5.4c.2.2.6.4 1.3.1.2.1.3.2.6-.2m-.3-.5h.2s.1 0 0 0c0 0 0-.1 0 0h-.2z"/>
+  <path d="M317.8 261.4c.2.3.4.3.6.1-.2-.3-.4-.1-.5-.1h-.1z"/>
+  <path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width=".1" d="M329.1 272.9a2 2 0 000 .7v.8a2 2 0 000 .7 2 2 0 000 .7c.2.2 1 .2 1.2 0a2.2 2.2 0 000-.7v-.7a2 2 0 000-.7v-.8a2.3 2.3 0 000-.8v-.7a2.2 2.2 0 000-.8v-.8a2.4 2.4 0 000-.8v-.7a2.2 2.2 0 000-.8 1.9 1.9 0 000-.8 2.5 2.5 0 000-.8 2.3 2.3 0 000-.8 3.3 3.3 0 000-.8 2.9 2.9 0 000-.7v-.8a2.6 2.6 0 000-.8 2.7 2.7 0 000-.8v-.8a2.3 2.3 0 000-.8v-.7a2 2 0 000-.3h-.9v1a2.3 2.3 0 000 .8v.8a2.7 2.7 0 000 .8 2.6 2.6 0 000 .8 3 3 0 000 .7l-.1.8v.8a2.4 2.4 0 000 .8 2.5 2.5 0 000 .8 1.9 1.9 0 000 .8c-.1.3-.1.5 0 .8v.7a2.4 2.4 0 00-.1.8 2.6 2.6 0 000 .8 2.2 2.2 0 000 .8 2 2 0 000 .7 2.3 2.3 0 000 .8z"/>
+  <path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width=".1" d="M329.1 273.6c.3.2 1 .1 1.2 0m-1.2-.7h1.2m-1.2-.8h1.2m-1.1-.7h1.1m-1.1-.8h1.1m-1.1-.8h1.1m-1-.8h1m-1-.7h1m-1-.8h1m-1-.8h1m-1-.8h1m-1-.8h1m-1-.8h1m-1-.7h1m-1-.8h1m-1-.8h1m-.9-.8h.8m-.8-.8h.8m-.8-.8h.8m-.8-.7h.8m-1 15.5h1.1m-1.2.7h1.2"/>
+  <path fill="#007934" fill-rule="evenodd" stroke="#e7e7e7" stroke-width=".1" d="M331.5 257a13 13 0 012.1 0 13.7 13.7 0 00-.8-.3h2.2a5 5 0 00-1-.5 8 8 0 012.2.1l-1-.5c.9 0 1.2 0 2 .2a2.6 2.6 0 00-.9-.5 8 8 0 012.5-.2 8.6 8.6 0 00-8 .8 6 6 0 011-1.1 2.5 2.5 0 00-.7 0c.3-.3.8-.8 1.2-1l-.7.1 1.4-1a3.1 3.1 0 00-.9.1 5.2 5.2 0 011.6-1.1 4 4 0 00-1 0 8.7 8.7 0 012-1.3c-3.3.4-5.1 2.8-5.3 4.8a7 7 0 00-6.6-3.6c1 .3 1.8.7 2.4 1a4.4 4.4 0 00-1 .1c.7.2 1.5.6 2 1a3.4 3.4 0 00-1 0l1.8.8-.8.1a5 5 0 011.5.8h-.8c1 .4 1.1.6 1.3.7a8 8 0 00-7.3 3 10 10 0 012.2-1l-.5.8c.5-.4 1.3-.8 2-1a4.8 4.8 0 00-.4.7l1.8-1-.4.8 1.7-.7-.5.7 1-.4a6.2 6.2 0 00-2.9 5.8l.9-2v1a8.5 8.5 0 011-2v1l1-2v1l1.1-1.9v.8l.3-.6.7-.9.2.3c.3.4.4 1.1.5 1.8a3.2 3.2 0 00.2-.9c.3.7.7 1.8.7 2.4a3.6 3.6 0 00.2-1c.3.5.6 1.8.7 2.3l.3-.9c.3.8.4 1.7.5 2.3.8-3-.4-4.9-1.8-6.3.4.1.8.5 1.3 1a4.9 4.9 0 00-.3-.9l1.5 1.4-.2-.8c.6.4 1.1 1.2 1.5 1.6a5.4 5.4 0 00-.2-1 6 6 0 011.3 1.8l-.1-1c.7.6 1 1.3 1.3 1.7 0-2.7-3.1-5-6-5.3z"/>
+  <path fill="none" stroke="#e7e7e7" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1" d="M330.3 257.1c3.1-.5 7.2 2.3 7.2 5.3-.3-.4-.6-1.1-1.3-1.8l.1 1a6 6 0 00-1.3-1.7l.2 1c-.4-.4-.9-1.2-1.5-1.6l.2.8-1.5-1.4.3 1c-.5-.6-1-1-1.3-1.1m-1.8-1.5c-1.9-1.2-5.8-1-8.7 2.3a10 10 0 012.2-.9l-.5.8c.5-.4 1.3-.8 2-1a4.8 4.8 0 00-.4.7l1.8-1-.4.8 1.7-.7-.5.7 1-.4"/>
+  <path fill="none" stroke="#e7e7e7" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1" d="M329.7 256.6c-.4-2.2-3-4.8-6.9-4.6 1 .3 1.8.7 2.4 1a4.3 4.3 0 00-1 .1c.7.2 1.5.6 2 1a3.4 3.4 0 00-1 0l1.8.8a3.2 3.2 0 00-.8.1 5 5 0 011.5.7l-.7.1c1 .4 1 .6 1.2.7m1.5 1c-2.6.8-5.1 3.3-4.7 6.7 0-.4.5-1.5.8-2v1l1-2v1l1-2v1a13.3 13.3 0 011.1-1.9v.8a5 5 0 011-1.5m-1.6.2a8.7 8.7 0 00-.5 1.4m-.5-.8a9.7 9.7 0 00-.5 1.9m-.5-1a9 9 0 00-.5 2"/>
+  <path fill="none" stroke="#e7e7e7" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1" d="M329.9 258.6v-.6" class="fil1 str2"/>
+  <path fill="none" stroke="#e7e7e7" stroke-linecap="round" stroke-linejoin="round" stroke-width=".1" d="M332.6 261.3v1.3m-1-3l.1 1.6m-1-2.7l.1 1.3m4.8-.4l.6 1.2m-2-2.1l.8 1.4m-2-1.8c.3.3.5.7.7 1.2m-10.6-.8a4.7 4.7 0 011.7-1.2m-.2 1c.4-.6.6-.9 1.6-1.3m-.2 1c.4-.4.9-.8 1.7-1.1m-.4 1.2c.5-.5 1-.7 1.6-1m-3.7-4c.7 0 1.6.2 2.2.6m-1.2.4c.6 0 1.4.2 1.8.4m-1 .4c.6 0 1.3.3 2 .6m-1.3.2a4 4 0 011.7.6m.9.2a8.6 8.6 0 018.5-1.2 8 8 0 00-2.4.2c.4 0 .7.3.8.4h-2c.4 0 .7.2 1 .4a7.3 7.3 0 00-2.2 0l1 .3h-2.2l.8.3c-1 0-1.6 0-2 .2m4.8-1.6a6 6 0 00-2.2-.4m1 .7a5.8 5.8 0 00-2.5-.2m1.3.6a6.8 6.8 0 00-2.5-.2m1.3.7a5 5 0 00-2-.1m.8 1c.4.3.6.7.8 1.1m-3-3.1c.2-2 2-4.4 5.3-4.8a9 9 0 00-2 1.3h1c-.5.2-1.2.7-1.6 1.1a3.1 3.1 0 01.9 0 6.7 6.7 0 00-1.4 1l.7-.1a4.1 4.1 0 00-1.2.9h.7l-1 1.1m2-4c-.5.1-1.1.4-1.6.7m1 .4a4.5 4.5 0 00-1.5.5m.9.4c-.5.1-1 .4-1.5.7m1 .2a3.2 3.2 0 00-1.4.8m-.5 2.4a6 6 0 00-.3 1.1m1.2-2c1.8 1.6 4.1 3.7 3 7.6a6 6 0 00-.4-2.2l-.3.9a6.8 6.8 0 00-.7-2.4 3.5 3.5 0 01-.2 1 8.3 8.3 0 00-.7-2.4c0 .2 0 .6-.2.9 0-.9-.3-1.7-.7-2"/>
+  <path fill="#e8a30e" stroke="#000" stroke-width=".1" d="M293.3 233.5l1.3.7.3-.6c.1-.3.2-.5.1-.6 0-.2-.2-.4-.5-.5-.3-.2-.6-.3-.7-.2-.2 0-.4.2-.5.4l-.2.5c0 .1 0 .2.2.3m1.6 1l1.7.8h.3l.3-.5.3-.6a.6.6 0 000-.4.7.7 0 00-.2-.2 1.9 1.9 0 00-.3-.2c-.8-.4-1.3-.3-1.7.3l-.4.7m-2.6-.8a33 33 0 00.6-1.2 3.3 3.3 0 01.6-.7l.6-.4h.9c.2.1.3.3.4.6.1.2.2.5.1.7a2 2 0 011-.6l1 .1c.3.2.5.6.6 1 .1.5 0 1-.4 1.7a32.4 32.4 0 01-.7 1.3l-.3.7-1.4-.9-1.8-1-1.5-.7.3-.6m9-10.8c-.8.6-.7 1.5.3 2.6.5.6 1 1 1.5 1 .4.2.9 0 1.3-.3.3-.3.5-.6.4-1a3.1 3.1 0 00-.8-1.5c-.5-.7-1-1-1.4-1.2-.5 0-1 0-1.4.4m3.8-.2c.5.6.7 1.3.7 2a2.8 2.8 0 01-1.2 2 2.9 2.9 0 01-2 .7 2.4 2.4 0 01-1.8-1 2.8 2.8 0 01-.7-2c0-.7.4-1.4 1-2a2.9 2.9 0 012-.7c.8 0 1.4.4 2 1m8-2.6l.3 1a14.4 14.4 0 001.9-.7h.3a4.5 4.5 0 00.3.7l-.5.1-2.4.7-.7.2-.4-1.6-.5-2a12 12 0 00-.5-1.5l.6-.2.7-.2.3 1.6.6 2m9.2-3a12.2 12.2 0 000-1.6h.8l.7.1c-.2.5-.2 1-.3 1.7l-.2 2a11.9 11.9 0 00-.1 1.6h-.7l-.7-.1.3-1.7.2-2m9.9 5.3c1.6-1.3 2.7-2.2 3.1-2.7l.4.2.4.2a230 230 0 00-4.7 3.6l-.5-.3a316.2 316.2 0 01.2-2 362.5 362.5 0 00.4-3.8 7.7 7.7 0 001.2.7 34.8 34.8 0 00-.5 4m8.4 4l1.2-1.3.4.6.5.4a11.1 11.1 0 00-1.3 1.1l-1.5 1.4a12 12 0 00-1.1 1.1l-.5-.5-.5-.5 1.3-1 1.5-1.4m5 10l1.3-1.4h-2a18 18 0 00.7 1.4m-1.1-1.3l-2 .1a1.9 1.9 0 00-.1-.3 2.6 2.6 0 00-.2-.4h5.9l.3.6a82.5 82.5 0 00-4 4.3l-.2-.7a5.4 5.4 0 00-.3-.6 23.9 23.9 0 001.4-1.3 35 35 0 00-.4-.8 39.5 39.5 0 00-.4-1" font-family="Linux Biolinum" font-size="100" font-weight="700" letter-spacing="60" text-anchor="middle" word-spacing="0" style="line-height:125%;-inkscape-font-specification:Linux Biolinum Bold;text-align:center"/>
+  <path fill="#e8a30e" stroke="#000" stroke-linecap="square" stroke-linejoin="round" stroke-width=".1" d="M325 280.6l-.8 2.2h-2.4l1.9 1.5-.7 2.2 2-1.3 1.8 1.3-.6-2.2 1.8-1.4h-2.3zm9-3.9l-.7 2.2H331l1.8 1.5-.7 2.2 2-1.3 1.9 1.3-.7-2.2 1.9-1.4h-2.4zm14.2-25l-.8 2.3h-2.3l1.8 1.4-.6 2.3 1.9-1.4 1.9 1.4-.7-2.3 1.9-1.4h-2.4zm-6.7 17.9l.7 2.2h2.4l-1.9 1.4.7 2.3-2-1.4-1.9 1.4.7-2.3-1.8-1.4h2.3zm4.7-8.2l.8 2.2h2.3l-1.9 1.5.7 2.2-1.9-1.3-2 1.3.8-2.2-1.9-1.4h2.3zm-31.1 19.2l.8 2.2h2.3l-1.9 1.5.7 2.2-2-1.3-1.8 1.3.6-2.2-1.8-1.4h2.3zm-9.2-3.9l.8 2.2h2.4l-2 1.5.8 2.2-2-1.3-1.9 1.3.7-2.2-1.9-1.4h2.4zm-14-25l.7 2.3h2.3l-1.8 1.4.6 2.3-1.9-1.4-1.9 1.4.7-2.3-1.9-1.4h2.4zm6.6 17.9l-.7 2.2h-2.4l1.9 1.4-.7 2.3 2-1.4 1.9 1.4-.7-2.3 1.8-1.4h-2.3zm-4.7-8.2l-.8 2.2h-2.3l1.9 1.5-.7 2.2 1.9-1.3 2 1.3-.8-2.2 1.9-1.4h-2.3z"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width="0" d="M321 248.1v-.5h.1l-.8-.5h-.7l-.8.5v.5h2.3"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width="0" d="M321 248.1v-.5h.1l-.8-.5v-.7h-.6v.7l-.9.5v.5h2.3zm.3.6v.2h-2.6v-.2h2.6"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width="0" d="M321.3 248.7v.2h-2.6v-.2h2.6zm-2.5 0v-.5h.1v.5-.5h-.1v-.1h2.4v.1h-.2v.5-.5h.1v.5"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width="0" d="M318.9 248.7v-.5.5-.5h-.1v-.1h2.4v.1h-.2v.5-.5h.1v.5"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width="0" d="M319.4 248.6v-.4h-.4v.4h.4"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width="0" d="M319.1 248.3v.2h.2v-.2h-.2m1.8.3v-.4h-.3v.4h.3"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width="0" d="M320.7 248.3v.2h.1v-.2h-.1m.2-.3v-.3h-.3v.3h.3z"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width="0" d="M320.7 247.7v.2h.1v-.2h-.1m-1.3.3v-.3h-.4v.3h.4z"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width="0" d="M319.1 247.7v.2h.2v-.2h-.2m.8.3v-.3h-.3v.3h.3"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width="0" d="M319.7 247.7v.2h.1v-.2h-.1m.7.3v-.3h-.3v.3h.3"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width="0" d="M320.1 247.7v.2h.2v-.2h-.2m.4.2v.8h-1v-.8h1"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width="0" d="M320.5 247.9v.8h-1v-.8h1zm-1 .2h1m-.9.6v-.6m.7.6v-.6m.5-.5l-.5-.4h-.6l-.5.4h1.6m-1-.5h.4m-.3-.1h.2-.2m0 1zm.1 0h.1zm.3 0h.1"/>
+  <path fill="#e7e7e7" fill-rule="evenodd" stroke="#000" stroke-width="0" d="M319.8 246h.4v.4h-.4v-.4z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M320 245.6v.4m-.2-.2h.4"/>
+  <path fill="#452c25" d="M317.1 210.3s-2.3 5.4-1.5 6c0 0 3-3.3 3.7-5.9.8-2.6 0-.2 0-.2l-.2-2.8-2 2.7"/>
+  <path fill="none" stroke="#000" stroke-width=".2" d="M317.1 210.3s-2.3 5.4-1.5 6c0 0 3-3.3 3.7-5.9.8-2.6 0-.2 0-.2l-.2-2.8-2 2.7"/>
+  <path fill="#452c25" d="M317.6 207.7s-2.8 6-2.1 6.4c0 0 2.3-2.7 3-4.8.5-2.1 0-.1 0-.1l.7-3.9"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M317.6 207.7s-2.8 6-2.1 6.4c0 0 2.3-2.7 3-4.8.5-2.1 0-.1 0-.1l.7-3.9"/>
+  <path fill="#452c25" d="M320.5 206.4s-2.8 6-2.1 6.4c0 0 2.3-2.7 3-4.8.5-2.2 0-.2 0-.2l.7-3.8"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M320.5 206.4s-2.8 6-2.1 6.4c0 0 2.3-2.7 3-4.8.5-2.2 0-.2 0-.2l.7-3.8"/>
+  <path fill="#452c25" d="M356.8 195.6l3.4 1.9s.8.7-1 .3a42 42 0 01-12.8-6.4c-3.3-2-4.3-2-4.3-2l4.5.1 10.2 6.1z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M356.8 195.6l3.4 1.9s.8.7-1 .3a42 42 0 01-12.8-6.4c-3.3-2-4.3-2-4.3-2l4.5.1 10.2 6.1z"/>
+  <path fill="#452c25" d="M358 194.8l3.3 1.9s.8.7-1 .3a45 45 0 01-12.8-6.4c-3.3-2.1-.6 1.7-.6 1.7l.5-2.5 10.5 5z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M358 194.8l3.3 1.9s.8.7-1 .3a45 45 0 01-12.8-6.4c-3.3-2.1-.6 1.7-.6 1.7l.5-2.5 10.5 5z"/>
+  <path fill="#452c25" d="M363.5 196.6s-4-.7-5.4-1.8c0 0 .2.5-1.7-.4 0 0 .7 1.7-4.8-2-5.5-3.8-3.6-2-3.6-2l1.6-.3 9.3 3.7a53 53 0 014.6 2.8"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M363.5 196.6s-4-.7-5.4-1.8c0 0 .2.5-1.7-.4 0 0 .7 1.7-4.8-2-5.5-3.8-3.6-2-3.6-2l1.6-.3 9.3 3.7a53 53 0 014.6 2.8z"/>
+  <path fill="#452c25" d="M342.6 198.1l1.4 1.9s-.5 1.8-5.1-1.7-4.4-3.2-4.4-3.2l2.6-.3 5.6 3.2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M342.6 198.1l1.4 1.9s-.5 1.8-5.1-1.7-4.4-3.2-4.4-3.2l2.6-.3 5.6 3.2"/>
+  <path fill="#452c25" d="M336.6 199s2.2 2.9 1.7 3.2c-.5.4-3 .2-4.8-2.5-1.9-2.8 0-.2 0-.2v-4.4l3.2 3.8"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M336.6 199s2.2 2.9 1.7 3.2c-.5.4-3 .2-4.8-2.5-1.9-2.8 0-.2 0-.2v-4.4l3.2 3.8"/>
+  <path fill="#452c25" d="M338.8 197.8s2.1 2.6 1.9 3c-.2.4-3.2.2-5.5-2.5-2.3-2.6-.3-3.4-.3-3.4l3.9 2.7"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M338.8 197.7s2.1 2.7 1.9 3.1c-.2.4-3.2.2-5.5-2.5-2.3-2.6-.3-3.4-.3-3.4l4 2.8z"/>
+  <path fill="#452c25" d="M350.6 196.2s6 2.5 1.6 2.4c0 0-8.6-2.3-13-6.2l1.2-1.6 10.2 5.2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M350.6 196.2s6 2.5 1.6 2.4c0 0-8.6-2.3-13-6.2l1.2-1.6 10.2 5.2"/>
+  <path fill="#452c25" d="M353.8 195.4s3.1 2 3.4 2.7c.2.8-10-1.9-15.3-6.3l2.4-1.2 9.4 4.8z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M353.8 195.4s3.1 2 3.4 2.7c.2.8-10-1.9-15.3-6.3l2.4-1.2 9.4 4.8z"/>
+  <path fill="#452c25" d="M344.5 197.2s2.3 1.9 2 2.1c-.3.2-5-.5-8.6-3.3l.4-1.7 6.2 2.8"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M344.5 197.2s2.3 1.9 2 2.1c-.3.2-5-.5-8.6-3.3l.4-1.7 6.2 2.8"/>
+  <path fill="#452c25" d="M348.4 197s2.3 1.6 1.8 1.8c-.4.1-2.2 1.6-10.7-3.4l-1-.6 1.3-2 8.6 4.1"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M348.4 197s2.3 1.6 1.8 1.8c-.4.1-2.2 1.6-10.7-3.4l-1-.6 1.3-2 8.6 4.2z"/>
+  <path fill="#452c25" d="M339.7 192.4s2.8 2.4 2.4 2.8c-.4.4-3.6-.4-5-1.5-1.5-1-2.6-2.4-2.6-2.4l3-.7 2.2 1.8z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M339.7 192.4s2.8 2.4 2.4 2.8c-.4.4-3.6-.4-5-1.5-1.5-1-2.6-2.4-2.6-2.4l3-.7 2.2 1.8z"/>
+  <path fill="#452c25" d="M336.4 188.3l5 3s4.1 2.8 3.7 3.1c-.4.3-3.7-.8-6-2-2.2-1.3-5-4-5-4"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M336.4 188.3l5 3s4.1 2.8 3.7 3.1c-.4.3-3.7-.8-6-2-2.2-1.3-5-4-5-4"/>
+  <path fill="#452c25" d="M333.2 202.4s1 2.4.4 2.6c-.6.3-2-.2-3-2.3-1.2-2.2 1-1.3 1-1.3l1.6 1z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M333.2 202.4s1 2.4.4 2.6c-.6.3-2-.2-3-2.3-1.2-2.2.7-1.3.7-1.3l2 1z"/>
+  <path fill="#452c25" d="M334.9 200.9s1.4 2.3 1.1 2.6c-.3.2-2.2 1-4.2-2s2.1-2.3 2.1-2.3l1 1.7z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M334.9 200.9s1.4 2.3 1.1 2.6c-.3.2-2.2 1-4.2-2s2.1-2.3 2.1-2.3l1 1.7z"/>
+  <path fill="#452c25" d="M330.7 190.4s4.8 9.3 4.4 9.8c-.4.5-2.3 0-3.4-2.5s-1.9-5.6-1.9-5.6l.9-1.7z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M330.7 190.4s4.8 9.3 4.4 9.8c-.4.5-2.3 0-3.4-2.5s-1.9-5.6-1.9-5.6l.9-1.7z"/>
+  <path fill="#452c25" d="M336.3 192.8s4 3.3 3.2 3.8c-.8.4-2.4-.2-4.8-2.5-2.3-2.3 1.6-1.5 1.6-1.5"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M336.3 192.7s4 3.5 3.2 3.9c-.9.4-2.5-.2-4.8-2.5s1.6-1.4 1.6-1.4z"/>
+  <path fill="#452c25" d="M334.4 192.8s2.8 5.3 2.5 5.8c-.4.5-2.5-1.3-3.6-2.7-1-1.3-1.9-3.3-1.9-3.3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M334.4 192.8s2.8 5.3 2.5 5.8c-.4.5-2.5-1.3-3.6-2.7-1-1.3-1.9-3.3-1.9-3.3"/>
+  <path fill="#452c25" d="M312.9 203.6s-.2 3.1 0 3.3c.2.3 1.7.3 1.8-2 .1-2.4-.3-2.5-.3-2.5l-1.5 1.1"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M312.9 203.6s-.2 3.1 0 3.3c.2.3 1.7.3 1.8-2 .1-2.4-.3-2.5-.3-2.5l-1.5 1.1"/>
+  <path fill="#452c25" d="M313.8 199.9s-1 3.4 0 4.1c1 .7 1.9-3.4 2-4.3 0-1-2 .2-2 .2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M313.8 199.9s-1 3.4 0 4.1c1 .7 1.9-3.4 2-4.3 0-1-2 .2-2 .2z"/>
+  <path fill="#452c25" d="M314.6 204.3s.2 3.2.8 3.4c.6.1 1.6-1 1.6-1.8s-1-2.8-1-2.8l-1.4 1"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M314.6 204.3s.2 3.2.8 3.4c.6.1 1.6-1 1.6-1.8s-1-2.8-1-2.8l-1.4 1"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M314.6 200.4s-1 3.5 0 4.2c1 .7 1.9-3.4 2-4.4 0-.9-2 .2-2 .2z"/>
+  <path fill="#452c25" d="M314.7 194.8s-1.6 1.7-1.6 2.6c0 1 2.4-1.2 2.6-1.6.2-.4-1-1-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M314.7 194.8s-1.6 1.7-1.6 2.6c0 1 2.4-1.2 2.6-1.6.2-.4-1-1-1-1z"/>
+  <path fill="#452c25" d="M313.6 194s-1.3 2.3-1 3c.4.8 1.6-.5 2.2-1.4.6-.8-1.2-1.7-1.2-1.7"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M313.6 194s-1.3 2.3-1 3c.4.8 1.6-.5 2.2-1.4.6-.8-1.2-1.7-1.2-1.7z"/>
+  <path fill="#452c25" d="M331.5 190.8s2 3.8 1.5 4c-.6.2-1.4-.7-2.3-1.9-.8-1.1.8-2.1.8-2.1"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M331.5 190.8s2 3.8 1.5 4c-.6.2-1.4-.7-2.3-1.9-.8-1.1.8-2.1.8-2.1z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M331.6 198.6s.7 3.3 0 3.6c-1.2.5-2-2.3-2-3.4 0-1.2 2-.2 2-.2zm-2.6 5.1s.2 2.5-.2 2.7c-.3.2-1.2.2-2.1-1.8-1-2-.5-1.2-.5-1.2l2.3-1.2.5 1.3"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M331.4 203.2s.2 2.5-.3 2.6c-.5 0-1.9-.8-2.5-2.3-.6-1.8 2.4-1.3 2.4-1.3l.4 1z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M329 195.3s2.6 6 2.1 6.7c-.8 1.7-3.2-3.5-3.9-5.6-.8-2.2 1.7-1 1.7-1z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M327.7 196.3s3.6 6.5 2.1 6.6c-1.5.2-4.3-4.6-4.7-5.8-.5-1 2.6-.8 2.6-.8z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M327.5 197.7s1.8 6.2.6 5.6c-1-.5-2.5-5.2-2.6-6.2-.2-1 2 .6 2 .6zm6.2-8.8s2.7 4.1 1.8 4.2c-.8.2-4-2.7-4-3.2-.1-.5 2.2-1 2.2-1z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M332 189s3.5 4.8 2.4 5c-1 .2-1.1-.5-1.1-.5s-2.8-2.5-3-3.1c-.1-.6 1.6-1.4 1.6-1.4m3.5.1s2.4 2.5 1.8 3.3c-.6.8-4-3.1-4.4-3.6-.4-.5 2.9.2 2.9.2m-6 3.5s3.8 7.5 3 8.2c-.6.8-4.9-5.6-5-6.5-.2-.9 2-1.8 2-1.8"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M327.5 193.2s1.5 2.3 1.4 3.6c0 1.2-2.3-1.8-2.5-2.4-.2-.6 1-1.2 1-1.2zm3.1-1.2s1.2 2.4.8 3.1c-.3.8-2-1.4-2.5-2.3-.6-.8 1.7-.8 1.7-.8z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".2" d="M325 194.4s2 2 1.9 3.1c-.1 1.1-2.8-1.6-3-2-.3-.6 1.2-1.1 1.2-1.1z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M337.2 188.4s2.8 2.5 2.4 3c-.5.3-4.3-2.4-4.9-3-.6-.5 2.5 0 2.5 0z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M334.8 188.2l2.2 1.9s2 1.3 1.7 1.7c-.3.3-3.6-1.1-4.1-1.8-.6-.7-.6-1.4-.6-1.4l.8-.4zm7.3.6s8.4 3.4 8 4.2c-.3.8-8.8-2.7-10-3.7-1.4-.9 1.8-.6 1.8-.6"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M342.4 189.8s6.3 3.6 5.5 4c-.7.3-5.2-1-7.5-2.5a36.6 36.6 0 01-3.3-2.5l2.8-.6 2.5 1.7zm-15.5 4.4s1.2 2.4.8 3c-.4.8-1.5-.5-2.1-1.4-.6-.8 1.3-1.6 1.3-1.6zm.3 5.4s1 3.5-.1 4.2c-1.1.6-1.8-3.6-1.8-4.5 0-.9 1.9.3 1.9.3z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M322.3 193.8s3.5-1.5 4.1-1.4c0 0 .8-.2 1.1-.5l1.3-1s-.6-4.3 3.9-3.8l11.5 1.1a45 45 0 016.5 2l9 3.9a30 30 0 014 2.3c.8.5-.1.1-.1.1s-10.7-5.7-14.5-6.4c-1-.2 0 1 0 1l-3.4-1.3a6 6 0 00-2.9-.6 5.8 5.8 0 01-2.2-.3c-.6-.2-3.8-.3-4.4-.4a7.3 7.3 0 01-1-.2l.3.4-1.6-.2-.5.6s-1.5.3-1.6-.2c-.1-.4-1 2.3-1.3 3-.4.9-1.9.9-2.3 1.4l-1 .9c-.2.1-1.3.8-1.7.8l-2.9.2-.6-1 .3-.4zm4.6 10l-.1 3.3c-.2.2-1.8.1-1.8-2.2s.5-2.4.5-2.4l1.5 1.2"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M327.3 201.4s-.3-1.4-.5-1.6c-.3-.2 0-.3 0-.3s-.5-1.4-.9-1.6c-.3-.2.1-.4.1-.4s-.6-1-1-1.2c-.4-.3 0-.4 0-.4s-.5-1.2-1.5-1.8c0 0-.7-.7-1.4-.9-.7-.2-2.4-.4-4.5-.3-2.2 0-3.2 1.5-3.2 1.5l-.1 1.8.3-.2-.5 2.2c0 .5.5 1.4.5 2.5v1c.1 1 .4 2 .8 2.9v.2c.2-.2.5.6.7 1 0 0 0 1 .2.6l.6 1.1c0 .2.5 1.4.5.9 0-.6.4 1.3.4 1.5l.5-.7.2.8h.5l-.2.8s1.2-1 1.3-1.4v-.6l.4-.4.6-1s1.5 1.2 1.7 1.7l.3.7.4-.3.3.8.3-.4.2.6.1.3c.1.1.4.2.8-.6.6-1 .6-1.9.6-2 0-.3.3.2.3.2s.6-1 .5-1.6c0-.7.3-.4.3-.4v-2.2c0-.4.3-.3.3-.3l-.2-2.3c-.2-.2.3-.2.3-.2z"/>
+  <path d="M324.3 196.7c.3 0 .4.4.6.6-.1-.4-.3-.7-.6-.8v.2m.3 1.2c.5.5.6 1.1.5 1.8v.1c0-.7 0-1.5-.5-2v.1m1.1.7a3 3 0 01.4 1.6c0-.6 0-1.2-.4-1.7m.4 2.5c0 .4 0 .7-.2 1a.4.4 0 000 .2 11 11 0 00.2-1.2m-.4 1.9v.7a3.8 3.8 0 000-.8m.7 0c.2.1.3.3.3.6a.4.4 0 000-.1 1.2 1.2 0 00-.3-.7v.2m0-2.6l.4.5v-.2a3.1 3.1 0 00-.5-.5v.2m-1.4 2a5.9 5.9 0 010 1 6.6 6.6 0 000-1m-.7.7a5.2 5.2 0 010 1 6.2 6.2 0 000-1.1v.1"/>
+  <path fill="#452c25" d="M310.7 194.3s-.8 3.2-.2 3.5c1.3.7 2-2.2 2.2-3.2.1-1.2-2-.3-2-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M310.7 194.3s-.8 3.2-.2 3.5c1.3.7 2-2.2 2.2-3.2.1-1.2-2-.3-2-.3z"/>
+  <path fill="#452c25" d="M312.6 194.3s-1.6 1.7-1.6 2.6c0 1 2.4-1.3 2.6-1.7.2-.4-1-.9-1-.9"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M312.6 194.3s-1.6 1.7-1.6 2.6c0 1 2.4-1.3 2.6-1.7.2-.4-1-.9-1-.9z"/>
+  <path fill="#452c25" d="M285 194.5s-3.3 1.7-3.6 2.4c-.3.7 10-1 15.8-5l-2.3-1.4-9.8 4z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M285 194.5s-3.3 1.7-3.6 2.4c-.3.7 10-1 15.8-5l-2.3-1.4-9.8 4z"/>
+  <path fill="#452c25" d="M289 195.2s-6 2.2-1.7 2.3c0 0 8.7-1.8 13.3-5.4l-1.1-1.7-10.5 4.7"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M289 195.1s-6 2.3-1.7 2.4c0 0 8.7-1.8 13.3-5.4l-1.1-1.7-10.5 4.7z"/>
+  <path fill="#452c25" d="M298 189s-6.5 3.4-5.8 3.7c.7.4 5.3-.6 7.7-2l3.4-2.4-2.9-.8-2.5 1.6z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M298 189s-6.5 3.4-5.8 3.7c.7.4 5.3-.6 7.7-2l3.4-2.4-2.9-.8-2.5 1.6z"/>
+  <path fill="#452c25" d="M295.5 196.3s-2.3 1.9-2 2.1c.2.2 5-.5 8.6-3.4l-.5-1.7-6.2 2.9"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M295.5 196.3s-2.3 1.9-2 2.1c.2.2 5-.5 8.6-3.4l-.5-1.7-6.2 2.9"/>
+  <path fill="#452c25" d="M291.5 196s-2.2 1.7-1.7 1.8c.5.1 2.3 1.5 10.6-3.9l1-.6-1.5-2-8.4 4.5"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M291.5 196s-2.2 1.7-1.7 1.8c.5.1 2.3 1.5 10.6-3.9l1-.6-1.5-2-8.4 4.6z"/>
+  <path fill="#452c25" d="M289.8 189.6a66 66 0 00-13.9 7.2l17.9-7m11.2 10.6s-1.5 2.3-1.2 2.5c.3.3 2.1 1.2 4.3-1.7 2-3-2-2.5-2-2.5l-1.1 1.7z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M305 200.4s-1.5 2.3-1.2 2.5c.3.3 2.1 1.2 4.3-1.7 2-3-2-2.5-2-2.5l-1.1 1.7z"/>
+  <path fill="#452c25" d="M306.6 202s-1 2.4-.5 2.6c.6.3 2-.1 3.2-2.2 1.2-2.2-.6-1.1-.6-1.1l-2 .7zm-3.3-3.5s-2.2 2.7-1.7 3.1c.4.4 3 .3 4.9-2.4 1.9-2.6 0 0 0 0l-.5-2.5-2.7 1.7"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M306.6 202s-1 2.4-.5 2.6c.6.3 2-.1 3.2-2.2 1.2-2.2-.6-1.1-.6-1.1l-2 .7zm-3.3-3.5s-2.2 2.7-1.7 3.1c.4.4 3 .3 4.9-2.4 1.9-2.6 0 0 0 0l-.5-2.5-2.7 1.7"/>
+  <path fill="#452c25" d="M301.2 197.1s-2.2 2.6-2 3c.2.5 3.2.3 5.6-2.2s.5-3.5.5-3.5l-4 2.6"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M301.2 197.1s-2.2 2.6-2 3c.2.5 3.2.3 5.6-2.2s.5-3.5.5-3.5l-4 2.6"/>
+  <path fill="#452c25" d="M297.4 197.3l-1.4 1.9s.3 1.8 5.1-1.5l4.5-3-2.5-.5-5.8 3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M297.3 197.2l-1.3 2s.3 1.8 5.1-1.5l4.5-3-2.6-.5-5.7 3z"/>
+  <path fill="#452c25" d="M282.2 194.5l-3 1.3s-.7.6 1 .7c1.8 0 5.5-.5 11.9-4 2.8-1.7 4.7-3.3 4.7-3.3l-2.4-.8-12.2 6z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M282.2 194.5l-3 1.3s-.7.6 1 .7c1.8 0 5.5-.5 11.9-4 2.8-1.7 4.7-3.3 4.7-3.3l-2.4-.8-12.2 6z"/>
+  <path fill="#452c25" d="M277 196.4s4.4-.5 6-1.6c0 0-.3.5 2-.4 0 0-1.2 2 5.3-2 6.5-3.8 0 0 0 0l7.2-4.1-.4-.8-14.7 6.2c-1 .3-5.4 2.7-5.4 2.7"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M290.3 192.4l7.2-4.1-.4-.8-14.7 6.2c-1 .3-5.4 2.7-5.4 2.7s4.4-.5 6-1.6c0 0-.3.5 2-.4 0 0-1.1 2 5.3-2z"/>
+  <path fill="#452c25" d="M308.5 202s-.4 3.4.1 3.5c.5.1 2-1 2.6-3 .6-2.2-2.4-2-2.4-2l-.4 1.3"/>
+  <path fill="none" stroke="#000" stroke-width=".2" d="M308.5 202s-.4 3.4.1 3.5c.5.1 2-1 2.6-3 .6-2.2-2.4-2-2.4-2l-.4 1.3"/>
+  <path fill="#452c25" d="M310.8 203.5s-.3 2.4 0 2.6c.4.3 1.3.4 2.3-1.6 1-2 .5-1.3.5-1.3l-2.3-1.2-.5 1.3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M310.8 203.4s-.3 2.5 0 2.7c.4.3 1.3.4 2.3-1.6 1-2 .5-1.3.5-1.3l-2.3-1.2-.5 1.4z"/>
+  <path fill="#452c25" d="M311.4 199s-1.9 4-.8 4c1 0 2.5-3 2.7-3.7.2-.7-1.9-.3-1.9-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M311.4 199s-1.9 4-.8 4c1 0 2.5-3 2.7-3.7.2-.7-1.9-.3-1.9-.3z"/>
+  <path fill="#452c25" d="M311.3 199s-.8 4.5.2 4c1-.3 1.6-3.7 1.7-4.4 0-.7-2 .4-2 .4"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M311.3 199s-.8 4.5.2 4c1-.3 1.6-3.7 1.7-4.4 0-.7-2 .4-2 .4z"/>
+  <path fill="#452c25" d="M312.8 199.4s-1.1 3.5 0 4.2c1 .7 1.8-3.4 1.9-4.3 0-1-2 .1-2 .1"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M312.8 199.4s-1.1 3.5 0 4.2c1 .7 1.8-3.4 1.9-4.3 0-1-2 .1-2 .1z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M308.4 198.3s-1 3.2-.4 3.5c1.2.6 2.3-2.2 2.4-3.3.1-1.2-2-.2-2-.2zm-7.9-6.6s-2.8 2.4-2.5 2.7c.3.4 3.6-.2 5.1-1.3l2.1-1.5-2.5-1.6-2.2 1.7z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M303 189.3s-1.8 1.5-1.5 1.9c.4.3 3.6-1 4.2-1.7.6-.6.6-1.3.6-1.3l-3.3 1.1z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M304.9 189s-2.5 2.1-1.9 2.9c.6.7 4-2.6 4.5-3 .5-.4-2.9 0-2.9 0"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M303.8 188.2l-5 2.3s-4.2 2.7-3.8 3c.4.3 3.7-.6 6-1.7a37.9 37.9 0 005-3.1m-.9 2.1s-5.3 4.7-4.5 5.1c.8.5 4.4-1.4 6.8-3.7"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M305.8 192.4s-3 5-2.7 5.6c.4.5 2.6-1.2 3.7-2.5s2-3.2 2-3.2"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M307.6 192.8s-3.3 6.1-3 6.6c.4.5 2.4.1 3.5-2.3 1.2-2.4 1-4 1-4l-1.5-.3z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M309.5 193.1s-3.7 7.6-3 8.3c.8.8 4.8-5.7 5-6.6.3-1.6-2-1.8-2-1.8m-7.7-4.9s-3.3 1.6-2.7 2c.7.2 3.8-1.2 4.2-1.3.5-.1-1.5-.7-1.5-.7z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M302.3 188.6s-2 1.6-1.6 2c.4.5 3.5-1.2 4-1.7.7-.5-2.4-.3-2.4-.3zm4.3.2s-2.8 3.7-2 3.8c.9.2 4.1-2.4 4.2-2.8 0-.5-2.2-1-2.2-1z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M307.8 189.6s-3 3.7-2.1 4c.8.2 1-.4 1-.4s2.3-2 2.4-2.5c.2-.5-1.2-1.2-1.2-1.2"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M308.7 190.5s-2.1 3.7-1.6 4c.6.2 1.5-.8 2.4-1.9.9-1-.8-2.1-.8-2.1z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M309.3 192.2s-1.3 2.3-1 3c.4.8 1.6-.5 2.2-1.3.6-.8-1.2-1.7-1.2-1.7zm.5 6.5s-.8 3.2-.2 3.5c1.3.7 2-2.2 2.2-3.2.1-1.2-2-.3-2-.3z"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M315.7 194.4s-.9-.3-1.5-.3c0 0-1.9-1.4-3-1.6-1-.1 0-.2 0-.2s-.2-2.4-.5-2.6c0 0-.1-2.5-1.7-2.6-1.6-.2-5.1.1-5.7-.1-.7-.3-2.6-1-6.3 0-3.8 1-11.2 4.3-11.6 4.4-.4 0 8.5-2 11-3l3.3-.5s-2.8 1.4-.2.8c2.6-.6 2 0 2 0s-.2.6 1.3.3c1.4-.4 1.4 0 1.4 0s1.7.6 3-.2c0 0 .7 2.3 1.6 2.6 0 0 1 2.2 3.1 2.6l1.2.9 1.2.4 1.3-1"/>
+  <path fill="#452c25" stroke="#000" stroke-width=".1" d="M298.3 188s-8.6 3-8.3 3.9c.4.8 9-2.4 10.3-3.2 1.4-1-2-.7-2-.7"/>
+  <path d="M321.8 194.6l.5.2a1.5 1.5 0 00-.3-.3l-.7-.3.1.2.4.2M315 201c.2.2.2.5.3.8v-.2c-.1-.2-.1-.5-.3-.7v.1m1.2-6.5l.9-.2v-.1l-.9.1v.2m1.7-.2l.8-.1a.3.3 0 000-.1 2 2 0 00-.8.1v.1m-3 1.5a.3.3 0 000 .2v-.2m-.1 4.6a4.8 4.8 0 000 .7.4.4 0 000-.1v-.6"/>
+  <path fill="#bd8759" d="M316.6 213.9s-1 .7-1 1a3.8 3.8 0 00-.2.8s.8-.1.7.3c0 0 .3.2.8-.8.4-1 .8-1.5 1.1-1.5.4 0 .8.4 1 .6.2.2.4.4.8.3 0 0-.4-.6-.2-.7l.6-.1s-.3-.7-.9-.8c-.6-.1-1-.3-1-.6.2-.2 1-2.4 1-2.4l-1-1.5-.5 1.3.2 1-1 2.1c0 .1-2.4 1-2.7 1l-.8.9v.5s.3-.4.4-.2c0 0 .3-.3.6-.2.2.1.1.2.1.2l.5-.4.1-.1.6-.1"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M316.6 213.9s-1 .7-1 1a3.8 3.8 0 00-.2.8s.8-.1.7.3c0 0 .3.2.8-.8.4-1 .8-1.5 1.1-1.5.4 0 .8.4 1 .6.2.2.4.4.8.3 0 0-.4-.6-.2-.7l.6-.1s-.3-.7-.9-.8c-.6-.1-1-.3-1-.6.2-.2 1-2.4 1-2.4l-1-1.5-.5 1.3.2 1-1 2.1c0 .1-2.4 1-2.7 1l-.8.9v.5s.3-.4.4-.2c0 0 .3-.3.6-.2.2.1.1.2.1.2l.5-.4.1-.1.6-.1"/>
+  <path fill="#bd8759" d="M323.1 209.2v2.1c0 .3 0 .8-.2 1.1-.2.3-.4.5-.7.5-.3 0-1 0-1.2.3l-.3.4s.5-.3.6 0l-.2.6.9-.2.8-.3.4.2v1c0 .4 0 1.2.3 1.2l.4-.5.5.5-.1-1.2a6.7 6.7 0 01-.3-1l1.5.6c0 .2.4.5.5.5.1 0 0-.5.2-.5.3-.1.4 0 .4 0s-.4-.8-1-1c-.5-.4-1-.4-1.2-.6l-.3-.9v-2.8l-1-.2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M323.1 209v2.3c0 .3 0 .8-.2 1.1-.2.3-.4.5-.7.5-.3 0-1 0-1.2.3l-.3.4s.5-.3.6 0l-.2.6.9-.2.8-.3.4.2v1c0 .4 0 1.2.3 1.2l.4-.5.5.5-.1-1.2-.3-1s1.4.5 1.5.7l.5.4c.1 0 0-.5.2-.5.3-.1.4 0 .4 0s-.4-.8-1-1c-.5-.4-1-.4-1.2-.6l-.3-.9v-2.8l-1-.2z"/>
+  <path fill="#dcddde" d="M315 197.3s0-1.3.3-1.4c0 0 .1-1.2 1.7-1 0 0 .5-.9 1.4-.4 0 0 .8-.4 1.3-.2l1 .7s.7-.1 1 .1c.3.3.2 1.1.2 1.1s.8.6.8 1.1v.9s.3.3.2.7c0 .4-.4 1-.4 1-.1 0 0 1-.3 1.3l-.8.5c-.2 0-.6.6-1 .6-.3 0-.8-.5-.8-.7 0-.2-.6-.4-.6-.4s-1 1.2-1.8 1c-.8-.2-1.1-.8-1.2-1l-.3-1s-.8-.4-.7-.9c0-.4.4-1 .4-1l-.3-1z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M317.8 212l-.2-.1m.6-.9a.8.8 0 01-.3-.1m0 .6h.2m5.5.5l.5.2m-.2-.6h-.3m.4-.5a.9.9 0 01-.5 0m0 1.8l.4.1m-.4.5a.2.2 0 01.2 0m-.1 1.6a.4.4 0 01.3 0m-5.1-2a.3.3 0 00-.3.1m1-.1c-.1.1-.3.2-.3.4m-4.5.5l.4.3m10-1a.3.3 0 00-.3.3m.7-.1a.2.2 0 000 .2"/>
+  <path fill="#d9c0b9" d="M313.4 215h.6s-.3.7-.2.8c0 .2-.5-.3-.3-.7"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M313.4 215h.6s-.3.7-.2.8c0 .2-.5-.3-.3-.7z"/>
+  <path fill="#d9c0b9" d="M315.6 215.5s-.7 1 .1 1.5c0 0 0-1 .6-1.1l-.8-.4z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M315.6 215.5s-.7 1 .1 1.5c0 0 0-1 .6-1.1l-.8-.4z"/>
+  <path fill="#d9c0b9" d="M319.6 214.5l-.2-.5.2-.3h.6s.4.9 0 1.3c0 0 0-.5-.2-.5h-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M319.6 214.5l-.2-.5.2-.3h.6s.4.9 0 1.3c0 0 0-.5-.2-.5h-.4z"/>
+  <path fill="#d9c0b9" d="M321 213.4h.3l.1.3v.3l-.3.2s-.5-.2-.4.5c0 0-.3-1.2.2-1.3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M321 213.4h.3l.1.3v.3l-.3.2s-.5-.2-.4.5c0 0-.3-1.2.2-1.3z"/>
+  <path fill="#d9c0b9" d="M323.5 215.9l.4-.4.4.2-.3 1.2-.2-.3-.3-.7"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M323.5 215.9l.4-.4.4.2-.3 1.2-.2-.3-.3-.7z"/>
+  <path fill="#d9c0b9" d="M326 214.8l.5 1s.6-.6-.2-1.5l-.4.5z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M326 214.8l.5 1s.6-.6-.2-1.5l-.4.5z"/>
+  <path d="M323.3 195.9l.2.2v-.1l-.2-.2m.1 2.2l.4.7v-.2a1.7 1.7 0 00-.4-.7v.2m-.4-1.6l.5.6v-.2l-.5-.5v.1m.5 3.5c0 .3 0 .6-.2.8v.2c.2-.4.2-.7.2-1.1a.5.5 0 000 .1m.5 1v.5a.4.4 0 000 .1 2.2 2.2 0 000-.6m1.8 3.9a4.8 4.8 0 01.1 1.3l-.1-1.5v.2m-.3.8l-.4 1 .4-.8v-.2m-10.3-2.9l.7 1.2v-.1l-.7-1.2v.1m1.8 0c-.2 0-.3-.3-.5-.4v.2c.2 0 .3.4.5.4v-.2m-1 1.8l.5 1v-.2l-.5-1v.2m1.2.4l.5.8v-.1c0-.3-.3-.6-.5-.8m0 1.3l.2.7v-.1l-.3-.7v.1m1.1.3a2.8 2.8 0 01.1.7 3.3 3.3 0 000-.9v.2m-.5 1c0 .3.1.7.3 1v-.2a3.2 3.2 0 01-.3-.9.4.4 0 000 .1m.2-4.4l.8.3v-.1a8 8 0 01-.8-.3v.1m.2 1.2l1 .4c-.3-.3-.7-.4-1-.6v.2m.3 1.2l.6.6v-.1a4.5 4.5 0 01-.6-.6v.1m.4 1.6l.2.7a1.8 1.8 0 00-.2-.8v.1m1-4v.5a10 10 0 010-.5m2.3-.9a3.6 3.6 0 01-.2.5v.1l.2-.4v-.2m1 0v.8a.4.4 0 000 .1 4.2 4.2 0 000-1m.2 1.6v.7a3.7 3.7 0 000-.8m.7 1.5c0 .3-.2.6-.5.8v.1c.3-.2.5-.4.5-.8m-2.4-1.5l-.2.4v.1l.2-.4m.3 1.8a1.9 1.9 0 01-.4.4v.1c.2 0 .3-.2.4-.3v-.1m-.9 1c-.3-.4-.4-.8-.3-1.3v-.1c-.2.5 0 1 .3 1.5v-.2m-1-1l-.1.5v-.6m2.6 1.3c0 .3-.2.5-.3.7v.1l.3-.6v-.2m1.7.7a9.2 9.2 0 01-.5.7v.2l.5-.8m.8.8a17 17 0 00-.2 1.3v.1l.2-1.3a.6.6 0 000-.1m1-1.6v.5-.5M315 202l.1 1.3v-.2a2.2 2.2 0 01-.1-1 .6.6 0 000-.1"/>
+  <path fill="#fff" d="M318.8 196.3c.7-.6 1.7-1.3 2.7-1v-.2c-1-.2-2 .5-2.7 1.1v.1m3.5.8c-.8-.5-2-.6-2.7 0 .7-.5 2-.3 2.7.2v-.2m-2.8 1.1c.3 1 .7 2 .5 3 .2-1-.2-2-.5-3m-1.1.6v3c0-1 .2-2 0-3.1a.4.4 0 000 .1m1.5-.7c1 .2 1.9.9 2.4 1.7v-.1a3.9 3.9 0 00-2.4-1.7v.1m-.8 1.3c0 .6 0 1.2-.2 1.8.2-.5.2-1.2.2-1.8m1.4-.1a3.1 3.1 0 011.2 2v-.1a3.2 3.2 0 00-1.2-2m-4.3 1.7c.2-.3.4-.6.8-.7v-.1c-.4 0-.6.4-.8.7v.1m1.4-5c-.1-.6-.5-1-1-1.2v.1c.5.3.9.6 1 1.2v-.2m-.8 0c-.5-.2-1-.2-1.5-.2a.3.3 0 000 .1c.5 0 1 0 1.5.3v-.2m1.5 0c0-.6 0-1-.4-1.3.3.3.5.7.4 1.2m1.8.7c.5-.3 1-.2 1.5-.2v-.2c-.5 0-1 0-1.5.2v.2m.9 1.2a2.6 2.6 0 011.7 1v-.3a2.6 2.6 0 00-1.7-1v.3m-3.1 2c-.2.6 0 1.5-.9 1.8v.2c.8-.3.7-1.1.9-1.8v-.3"/>
+  <path fill="#fff" d="M319.5 199c.3.7.7 1.4.5 2.2a.9.9 0 000 .3c.2-1-.1-1.8-.5-2.7v.2m1-.1c.7 0 1.3.7 1.4 1.4a1 1 0 000-.2 1.7 1.7 0 00-1.4-1.5v.3m0 1c.1.6.3 1.2.1 1.8v.2c.3-.7 0-1.5 0-2.2a1 1 0 000 .2m-.4-2.6c.7-.1 1.5-.2 2.2.3v-.3c-.7-.5-1.5-.4-2.2-.2v.2m-1.4-1.5c0-.6.6-1 1.2-1.3v-.2c-.6.2-1.2.6-1.3 1.3a1 1 0 000 .2m-.6.4c0-.7-.4-1.3-.7-1.9v.2c.3.6.6 1.1.6 1.8v-.1m-.6.4a2 2 0 00-1-1.4v.3c.5.3.9.7 1 1.3a.8.8 0 000-.2m-1-.3a2.9 2.9 0 00-1.2-.5v.2c.5 0 .8.3 1.2.5v-.2m2.2 3c0 .6.2 1.3-.2 1.9v.2c.4-.7.3-1.6.2-2.3v.1"/>
+  <path fill="#fff" d="M319.4 198.9c.2.6.5 1.3.4 2a5.8 5.8 0 00-.4-2.3v.3m.5-1c.6.3 1.3.5 1.7 1v-.3a3.6 3.6 0 00-1.7-.9v.3m-1.7-1.4a14.8 14.8 0 000-1.7 11.8 11.8 0 010 1.7m-1.2-.4a5.6 5.6 0 01-1.2-.8v.2l1.2.9v-.3m-.2 3.3c-.3.2-.5.5-.6.8v.2a1.6 1.6 0 01.6-.7v-.3m.9.5c0 .5-.3.9-.6 1.2v.2c.4-.4.6-.8.6-1.3 0 0 0-.3 0 0m2.1-3.6c.4-.6 1.3-.7 1.9-.9v-.2c-.6.2-1.5.2-2 .8v.3m-4 0a2 2 0 01-.5-.3v.2l.4.2v-.2m.1 3l-.4.3v.1a.7.7 0 000 .1.8.8 0 01.4-.2.7.7 0 000-.2m.5.1l-.6.6v.2l.6-.6v-.2m1 .3c-.1.6-.8 1.2-.3 1.8v-.2c-.3-.5.2-1 .4-1.4v-.2m.7 0c0 .6 0 1.1-.2 1.7a.9.9 0 000 .2 9.8 9.8 0 00.2-2m1.9-.6c.4.5.8 1.1 1 1.8v-.2a5 5 0 00-1-1.9v.3m.2-.5c.7.6 1.5 1 2 1.8v-.2c-.5-.8-1.3-1.3-2-1.8v.2"/>
+  <path fill="#fff" d="M320.5 197.8h.8l.6.5.6.4c.2.2.2.6.3.9a.7.7 0 000-.2l-.2-.7c0-.2-.3-.4-.5-.5l-.7-.4a1.4 1.4 0 00-.9-.2v.2"/>
+  <path fill="#fff" d="M322.3 199.3l.2.6v-.1l-.2-.7v.2m-2-3.6l1.5-.4v-.3l-1.5.4v.3m-2 .2c0-.2.1-.5.3-.7l.4-.8v-.3l-.4.7c0 .3-.3.5-.4.9v.2m-1.7 4.6l.1 1.3v-.2a1.4 1.4 0 010-.8.7.7 0 000-.2s0-.1 0 0m1 .7c-.2.3-.2.6-.1 1a.3.3 0 000-.2v-.7m.8-.5l-.2.7v.2l.2-.8s0-.2 0 0m0-1.5v.4-.5.1m-.3.2v.1a.7.7 0 000 .3v-.7.4m-.5-.2l-.1.5a.8.8 0 000 .2 3.3 3.3 0 01.1-.4v-.2m-.4 0l-.8.6v.3l.8-.7v-.2m-.6 0a1.6 1.6 0 01-.5.3v.3c.2 0 .3-.2.5-.3v-.2m-1-.3l-.4.2v.2c.2 0 .3 0 .4-.2v-.2m2.9 0v.4a.8.8 0 000-.2v-.4.1m.4-.2l.1.6v-.3a1 1 0 010-.3v-.1.1m.3 0v.3h.1a.8.8 0 00-.1-.6v.2m.4-.2l.4.2v-.2a.8.8 0 00-.4-.2v.2m.2-.3l.6.3v-.3a1.2 1.2 0 01-.6-.3v.2m.5-1h.4v-.2a2.3 2.3 0 00-.4-.1v.3m-.3-.6l.4-.3v-.3l-.4.4v.2m-.4-.5a1 1 0 01.2-.5v-.2a1 1 0 00-.2.7m-.3-.2l.4-.8v-.2l-.4.7v.2"/>
+  <path fill="#fff" d="M318.6 195.3v.9a.7.7 0 000-.3 3.7 3.7 0 010-.7v.1m-1.3.2l.2.3v.6l.1-.5-.3-.6v.2m-.2.5a4.5 4.5 0 00-.6-.4v.2l.6.5v-.2m.8.2c0-.6 0-1.2-.2-1.7v.3c.2.4.3.7.2 1.2a.8.8 0 000 .1m1.2-.7v-.2.2"/>
+  <path fill="#fff" d="M317.7 196.3l.2-1v-.2l-.2 1v.2m3.5 2c.3 0 .6.3.7.6v-.4c-.1-.3-.4-.5-.7-.6v.4m-1 2a1 1 0 010 .4 1.2 1.2 0 000 .3h.1v-1 .3m-.8-.5v1.2s0 .2 0 0v-1.4.2m-.4.4l-.3 1.2a1 1 0 000 .3s0 .1 0 0l.3-1.2v-.3m.5.2v1.1a1.3 1.3 0 000 .3v-1.6.2m-2.6.2a.6.6 0 010 .1v.4c.1-.2.1-.6 0-.8 0-.1 0 0 0 0v.3m1.2-.8v.4c0-.3.1-.6 0-.8v.3m.3 0a.4.4 0 01.1 0v.1a.8.8 0 000 .1v-.2l-.1-.5a1.3 1.3 0 000 .2v.2m.4-.3l.1.3v-.3l-.1-.4a.9.9 0 000 .1v.2m.8-.2l.5.6v-.4a9.3 9.3 0 01-.5-.6v.4m.5-.8l.3.6v-.4a4.1 4.1 0 01-.3-.5v.3m-4.3-2a1.7 1.7 0 00-.4-.2 1.1 1.1 0 000 .2v.2l.4.3v-.4m1.3-.5a.5.5 0 010 .1.8.8 0 000 .2v-.3a1 1 0 000-.4.8.8 0 000 .2v.2m1-1v.8c-.1 0-.1.1 0 .2v.1l.1-1.2a.6.6 0 000-.1v.2m.2 1.5l.5-.7v-.3l-.5.6v.4m.7 0l.2-.3v-.4l-.2.2a1.3 1.3 0 000 .2v.2m1 .2a7.6 7.6 0 01-.8 0v.4h.8v-.4m-.3.9l1 .6v-.4l-1-.6v.4"/>
+  <path fill="#fff" d="M320 198l.8.5v-.4l-.8-.5a2 2 0 000 .2v.2m-2-1.4l.1-.5v-.2.6m-2.3-1c.2.3.5.6.9.8l.6.7s.1-.4 0-.4l-.6-.6-1-.9c.1 0 0 .3 0 .4m.6 1a7.7 7.7 0 01-.4-.4 1.6 1.6 0 000 .2v.1l.4.5v-.3m-.3 2.5l-.3.6v.4l.3-.6v-.4m.3.4l-.1.6a1.3 1.3 0 000 .3l.1-.8v-.2a.6.6 0 000 .1m1 1.8c.2-.6.2-1.3.2-2v.2c0 .5 0 1-.2 1.4v.4m.6-1.5v.6a1.3 1.3 0 000 .3v-1.3a.6.6 0 000 .2v.2m.6-.2c.2.2.3.6.2 1v.1c.1-.5.1-1-.2-1.5v.4"/>
+  <path fill="#fff" d="M318.6 199.3a12.6 12.6 0 01.3 1.7v-.3l-.2-1.7v.3m.5-.1l.6 1v-.3l-.6-1v.3m1.1-1c0-.1-.3-.2-.5-.1v.3c.2 0 .4 0 .5.2v-.3"/>
+  <path fill="#fff" d="M319.7 198.1a7.5 7.5 0 011.1 0v-.4a7.5 7.5 0 00-1 0c-.1 0 0 .4 0 .4m.6-3c-.3.4-.4.9-.5 1.3v.3s0 .1 0 0c0-.4.2-.8.5-1.1v-.5m-1.5.4l.2 1a.7.7 0 000-.2v-.2l-.2-1v.4m-.3.5a1.6 1.6 0 01-.3-.5.8.8 0 000 .2v.2l.2.5v-.3m-.5.2a4 4 0 01-1.2-.6v.4l1.2.6s.1-.4 0-.4"/>
+  <path fill="#dba05f" d="M318.5 196.2l-2.2.4-1.8.2-1.3-.4c-.3 0-1.6-.2-2 .3l-.9.8c-.1.1-.7.6-.7.9 0 .2.1.5.4.5.3 0 .9.6.9.7 0 .3.8.5 1.5.5 1.3 0 2-.7 4-.5 1 .2 3-.7 3.4-1.2.4-.5.6-1 .2-1.7-.3-.6-1.4-.5-1.5-.5"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M318.5 196.2l-2.2.4-1.8.2-1.3-.4c-.3 0-1.6-.2-2 .3l-.9.8c-.1.1-.7.6-.7.9 0 .2.1.5.4.5.3 0 .9.6.9.7 0 .3.8.5 1.5.5 1.3 0 2-.7 4-.5 1 .2 3-.7 3.4-1.2.4-.5.6-1 .2-1.7-.3-.6-1.4-.5-1.5-.5z"/>
+  <path d="M311.4 198.1v-.1l.1-.1.1-.2a.8.8 0 01.4-.3h.5-.2.2-.2l-.3.1c-.3 0-.3.4-.6.6"/>
+  <path fill="none" d="M311.3 198l.4-.4.6-.3h.3"/>
+  <path fill="none" d="M312 197.4l-.4.3c0 .2-.3.3-.3.3m.7-.5h.5m-.6 0h.5"/>
+  <path d="M312.4 197.9v-.1l-.2.1-.1.1-.3.2-.3.1.4-.2-.4.2.4-.1-.3.1h.1s.3 0 .7-.4"/>
+  <path fill="none" d="M312.3 197.8l-.3.2-.3.2-.2.1m.4-.1l.2-.2.2-.2m-.4.4l-.3.1m.4-.1l-.3.1"/>
+  <path fill="#c6262c" d="M312.9 196.5s0-.6-.6-.8c-.5-.2-1-.2-1.3-.2l-.5.2a2.5 2.5 0 00-.6.2l-.1.2c-.1.2-.4.4-.3.6.2.3 0 .3.2.3s-1 .3-.8.8c.3.6.5.4.6.3l.5-.2.7-.7 1-.4h.5l.7-.3z"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M312.9 196.5s0-.6-.6-.8c-.5-.2-1-.2-1.3-.2l-.5.2a2.5 2.5 0 00-.6.2l-.1.2c-.1.2-.4.4-.3.6.2.3 0 .3.2.3s-1 .3-.8.8c.3.6.5.4.6.3l.5-.2.7-.7 1-.4h.5l.7-.3z"/>
+  <path d="M312.2 197.8c0 .1-.1.3-.3.3h-.3s.1-.4.3-.4h.3"/>
+  <path fill="#d9c0b9" d="M308.6 200.2s-.7-1.2 1.2-1.8c0 0 .6.3.8.6 0 0-.4.5-1.5.7 0 0-.5.1-.5.5"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M308.6 200.2s-.7-1.2 1.2-1.8c0 0 .6.3.8.6 0 0-.4.5-1.5.7 0 0-.5.1-.5.5z"/>
+  <path fill="#d9c0b9" d="M308.8 200s.8.2 1.3-.2c.5-.3.6-.2.7-.1 0 0 0-.4-.2-.7l-1 .5c-.4.2-.7.1-.8.5"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M308.8 200s.8.2 1.3-.2c.5-.3.6-.2.7-.1 0 0 0-.4-.2-.7l-1 .5c-.4.2-.7.1-.8.5z"/>
+  <path fill="#7a2e26" d="M311 199.6h.5v-.1h-.5a.3.3 0 000 .1m-.3-2l-.1.2v.1l.1-.2v-.1m.5.2l.3-.2v-.1c-.2 0-.3 0-.3.2v.1m.5.8a.3.3 0 00.2-.2.3.3 0 01-.2 0v.2m.4-.2a.8.8 0 00.4-.3v-.1a.7.7 0 01-.4.3v.1m-.7-.7c0 .2-.2.2-.3.4v.1c0-.1.3-.2.3-.4m.3 2c.4 0 .7 0 1-.2a3.1 3.1 0 01-1 0v.2m1.6 0c.4-.4.8-.7 1-1.3a2 2 0 01-1 1v.2m.3-.8c.3-.2.5-.4.6-.8v-.1a1.6 1.6 0 01-.6.8v.1m-.2-2l.7.4v-.1l-.7-.4v.2m6.3 1c.2-.5 0-1-.2-1.4.2.4.4.8.2 1.2v.2m-4.8-.7c.3.2 1 .7.8 1.2.3-.5-.4-1-.8-1.3v.1m2.1 2a1.4 1.4 0 00.1-.3 1.3 1.3 0 010 .3"/>
+  <path fill="#5e3f17" d="M317.9 199.2l.5-.2m-8.5-.3c-.3.2-.8.2-1 .7.2-.5.7-.5 1-.6"/>
+  <path fill="#842116" d="M309.7 197.3c.1 0 .3 0 .3.2a.4.4 0 000 .1.7.7 0 000-.3l-.3-.1m.7.4a.7.7 0 00-.1-.6v.5m.6-.5c0-.3-.1-.5-.3-.6v.1c.2.1.3.4.3.6a.4.4 0 000-.1m.5-.1c0-.3 0-.5-.2-.6v.1l.2.3a.4.4 0 000 .1m-.8-.7c.4-.2 1.4-.3 1.8.2v-.2c-.4-.4-1.4-.3-1.8 0"/>
+  <path fill="#7a2e26" d="M309.5 198.1v-.5s-.1 0 0 .1v.4m4.7 1.4a.6.6 0 00.3-.5.6.6 0 01-.3.3v.2m.7 0a.4.4 0 00.1-.3v-.1.3m4.3-2.4a1 1 0 010 .7.4.4 0 000 .1v-.9.1m-.5.5v.7c.1-.3.2-.6 0-.9v.2m-.4.3"/>
+  <path fill="#452c25" d="M324.3 210.5v.2l.1.1-.1-.4z"/>
+  <path fill="#dcddde" d="M314.4 195c-1.7 0-3.3-1-3.3-1a2.7 2.7 0 01-2.3-2.4c-.8-.4-1.6-2.5-1.6-2.5-1.3.7-3 0-3 0s0-.4-1.4 0c-1.5.3-1.3-.3-1.3-.3s.6-.6-2 0 .2-.8.2-.8c-.8.2-3.3.4-3.3.4-.9 0-1.8.5-2.8.8l-2.3.6-6.8 3-5.5 2.1c.2 0 3.4-2.1 7.5-4a87.8 87.8 0 0110.3-3.9 9.9 9.9 0 016.5 0c.6.2 4.2 0 5.7 0 1.6.3 1.8 2.9 1.8 2.9.3.1.4 2.6.4 2.6s-1 0 .1.1c1 .2 2.9 1.7 2.9 1.7h.7s.4-.5.9-.7l1.5-.5a11.6 11.6 0 012 0l2 .3 1.2.3h.5c1-.5 3-1.2 3.4-1.1 0 0 .7-.2 1.1-.5a105 105 0 001.3-1s-.6-4.5 3.9-4l11.5 1.2a43.9 43.9 0 016.5 1.8l5.2 2.4 4 1.7c2.3 1 4 2.4 4 2.4-1.5-.6-2.6-1.3-3.7-1.8-.9-.4-1.8-.5-2.6-.9l-3.6-1.7c-3.5-1.6-3.5-1.7-4.9-1.8-1 0 .7 1.2.7 1.2l-4.1-1.7a6 6 0 00-2.9-.5 5.8 5.8 0 01-2.2-.3c-.6-.2-3.8-.3-4.4-.4a7.3 7.3 0 01-1-.2l.2.4-1.5-.3-.5.7s-1.5.3-1.6-.2c-.1-.5-1 2.2-1.3 3-.4.8-2.2.6-2.7 1-.4.5-1.4.9-1.6 1h-1.3c-.6 0-.1 0-1 .3 0 0-.9 0-1.2-.2l-1.4-.4a27.5 27.5 0 00-3.5-.2 5.4 5.4 0 00-2.7 1.1"/>
+  <path fill="#e7e7e7" stroke="#000" stroke-width=".1" d="M314.4 195c-1.7 0-3.3-1-3.3-1a2.7 2.7 0 01-2.3-2.4c-.8-.4-1.6-2.5-1.6-2.5-1.3.7-3 0-3 0s0-.4-1.4 0c-1.5.3-1.3-.3-1.3-.3s.6-.6-2 0 .2-.8.2-.8c-.8.2-3.3.4-3.3.4-.9 0-1.8.5-2.8.8l-2.3.6-6.8 3-5.5 2.1c.2 0 3.4-2.1 7.5-4a87.8 87.8 0 0110.3-3.9 9.9 9.9 0 016.5 0c.6.2 4.2 0 5.7 0 1.6.3 1.8 2.9 1.8 2.9.3.1.4 2.6.4 2.6s-1 0 .1.1c1 .2 2.9 1.7 2.9 1.7h.7s.4-.5.9-.7l1.5-.5a11.6 11.6 0 012 0l2 .3 1.2.3h.5c1-.5 3-1.2 3.4-1.1 0 0 .7-.2 1.1-.5l1.3-1s-.6-4.5 3.9-4l11.5 1.2a43.9 43.9 0 016.5 1.8l5.2 2.4 4 1.7c2.3 1 4 2.4 4 2.4-1.5-.6-2.6-1.3-3.7-1.8-.9-.4-1.8-.5-2.6-.9l-3.6-1.7c-3.5-1.6-3.5-1.7-4.9-1.8-1 0 .7 1.2.7 1.2l-4.1-1.7a6 6 0 00-2.9-.5 5.8 5.8 0 01-2.2-.3c-.6-.2-3.8-.3-4.4-.4a7.3 7.3 0 01-1-.2l.2.4-1.5-.3-.5.7s-1.5.3-1.6-.2c-.1-.5-1 2.2-1.3 3-.4.8-2.2.6-2.7 1-.4.5-1.4.9-1.6 1h-1.3c-.6 0-.1 0-1 .3 0 0-.9 0-1.2-.2a17.9 17.9 0 00-1.4-.4c-.5-.2-3.1-.2-3.5-.2a5.4 5.4 0 00-2.7 1.1"/>
+  <path fill="#452c25" d="M314.6 194.4s-.2.2-.2.5v.2"/>
+  <path fill="#574f4c" d="M323.3 194l.7.5a.5.5 0 00-.1-.1 6.5 6.5 0 00-.7-.6.6.6 0 000 .1"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bq.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bq.svg
new file mode 100644
index 0000000..4b74eb4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bq.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bq" viewBox="0 0 640 480">
+  <path fill="#21468b" d="M0 0h640v480H0z"/>
+  <path fill="#fff" d="M0 0h640v320H0z"/>
+  <path fill="#ae1c28" d="M0 0h640v160H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/br.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/br.svg
new file mode 100644
index 0000000..3252a8e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/br.svg
@@ -0,0 +1,45 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-br" viewBox="0 0 640 480">
+  <g stroke-width="1pt">
+    <path fill="#229e45" fill-rule="evenodd" d="M0 0h640v480H0z"/>
+    <path fill="#f8e509" fill-rule="evenodd" d="M321.4 436l301.5-195.7L319.6 44 17.1 240.7 321.4 436z"/>
+    <path fill="#2b49a3" fill-rule="evenodd" d="M452.8 240c0 70.3-57.1 127.3-127.6 127.3A127.4 127.4 0 11452.8 240z"/>
+    <path fill="#ffffef" fill-rule="evenodd" d="M283.3 316.3l-4-2.3-4 2 .9-4.5-3.2-3.4 4.5-.5 2.2-4 1.9 4.2 4.4.8-3.3 3m86 26.3l-3.9-2.3-4 2 .8-4.5-3.1-3.3 4.5-.5 2.1-4.1 2 4.2 4.4.8-3.4 3.1m-36.2-30l-3.4-2-3.5 1.8.8-3.9-2.8-2.9 4-.4 1.8-3.6 1.6 3.7 3.9.7-3 2.7m87-8.5l-3.4-2-3.5 1.8.8-3.9-2.7-2.8 3.9-.4 1.8-3.5 1.6 3.6 3.8.7-2.9 2.6m-87.3-22l-4-2.2-4 2 .8-4.6-3.1-3.3 4.5-.5 2.1-4.1 2 4.2 4.4.8-3.4 3.2m-104.6-35l-4-2.2-4 2 1-4.6-3.3-3.3 4.6-.5 2-4.1 2 4.2 4.4.8-3.3 3.1m13.3 57.2l-4-2.3-4 2 .9-4.5-3.2-3.3 4.5-.6 2.1-4 2 4.2 4.4.8-3.3 3.1m132-67.3l-3.6-2-3.6 1.8.8-4-2.8-3 4-.5 1.9-3.6 1.7 3.8 4 .7-3 2.7m-6.7 38.3l-2.7-1.6-2.9 1.4.6-3.2-2.2-2.3 3.2-.4 1.5-2.8 1.3 3 3 .5-2.2 2.2m-142.2 50.4l-2.7-1.5-2.7 1.3.6-3-2.1-2.2 3-.4 1.4-2.7 1.3 2.8 3 .6-2.3 2M419 299.8l-2.2-1.1-2.2 1 .5-2.3-1.7-1.6 2.4-.3 1.2-2 1 2 2.5.5-1.9 1.5"/>
+    <path fill="#ffffef" fill-rule="evenodd" d="M219.3 287.6l-2.7-1.5-2.7 1.3.6-3-2.1-2.2 3-.4 1.4-2.7 1.3 2.8 3 .6-2.3 2"/>
+    <path fill="#ffffef" fill-rule="evenodd" d="M219.3 287.6l-2.7-1.5-2.7 1.3.6-3-2.1-2.2 3-.4 1.4-2.7 1.3 2.8 3 .6-2.3 2m42.3 3l-2.6-1.4-2.7 1.3.6-3-2.1-2.2 3-.4 1.4-2.7 1.3 2.8 3 .5-2.3 2.1m-4.8 17l-2.6-1.5-2.7 1.4.6-3-2.1-2.3 3-.4 1.4-2.7 1.3 2.8 3 .6-2.3 2m87.4-22.2l-2.6-1.6-2.8 1.4.6-3-2-2.3 3-.3 1.4-2.7 1.2 2.8 3 .5-2.2 2.1m-25.1 3l-2.7-1.5-2.7 1.4.6-3-2-2.3 3-.3 1.4-2.8 1.2 2.9 3 .5-2.2 2.1m-68.8-5.8l-1.7-1-1.7.8.4-1.9-1.3-1.4 1.9-.2.8-1.7.8 1.8 1.9.3-1.4 1.3m167.8 45.4l-2.6-1.5-2.7 1.4.6-3-2.1-2.3 3-.4 1.4-2.7 1.3 2.8 3 .6-2.3 2m-20.8 6l-2.2-1.4-2.3 1.2.5-2.6-1.7-1.8 2.5-.3 1.2-2.3 1 2.4 2.5.4-1.9 1.8m10.4 2.3l-2-1.2-2.1 1 .4-2.3-1.6-1.7 2.3-.3 1.1-2 1 2 2.3.5-1.7 1.6m29.1-22.8l-2-1-2 1 .5-2.3-1.6-1.7 2.3-.3 1-2 1 2.1 2.1.4-1.6 1.6m-38.8 41.8l-2.5-1.4-2.7 1.2.6-2.8-2-2 3-.3 1.3-2.5 1.2 2.6 3 .5-2.3 1.9m.6 14.2l-2.4-1.4-2.4 1.3.6-2.8-1.9-2 2.7-.4 1.2-2.5 1.1 2.6 2.7.5-2 2m-19-23.1l-1.9-1.2-2 1 .4-2.2-1.5-1.7 2.2-.2 1-2 1 2 2.2.4-1.6 1.6m-17.8 2.3l-2-1.2-2 1 .5-2.2-1.6-1.7 2.3-.2 1-2 1 2 2.1.4-1.6 1.6m-30.4-24.6l-2-1.1-2 1 .5-2.3-1.6-1.6 2.2-.3 1-2 1 2 2.2.5-1.6 1.5m3.7 57l-1.6-.9-1.8.9.4-2-1.3-1.4 1.9-.2.9-1.7.8 1.8 1.9.3-1.4 1.3m-46.2-86.6l-4-2.3-4 2 .9-4.5-3.2-3.3 4.5-.6 2.2-4 1.9 4.2 4.4.8-3.3 3.1"/>
+    <path fill="#fff" fill-rule="evenodd" d="M444.4 285.8a124.6 124.6 0 005.8-19.8c-67.8-59.5-143.3-90-238.7-83.7a124.5 124.5 0 00-8.5 20.9c113-10.8 196 39.2 241.4 82.6z"/>
+    <path fill="#309e3a" d="M414 252.4l2.3 1.3a3.4 3.4 0 00-.3 2.2 3 3 0 001.4 1.7c.7.5 1.4.8 2 .7.6 0 1-.3 1.3-.7a1.3 1.3 0 00.2-.9 2.3 2.3 0 00-.5-1c-.2-.3-.7-1-1.5-1.8a7.7 7.7 0 01-1.8-3 3.7 3.7 0 012-4.4 3.8 3.8 0 012.3-.2 7 7 0 012.6 1.2c1.4 1 2.3 2 2.6 3.2a4.1 4.1 0 01-.6 3.3l-2.4-1.5c.3-.6.4-1.2.2-1.7-.1-.5-.5-1-1.2-1.4a3.2 3.2 0 00-1.8-.7 1 1 0 00-.9.5c-.2.3-.2.6-.1 1s.6 1.2 1.6 2.2c1 1 1.6 1.9 2 2.5a3.9 3.9 0 01-.3 4.2 4.1 4.1 0 01-1.9 1.5 4 4 0 01-2.4.3c-.9-.2-1.8-.6-2.8-1.3-1.5-1-2.4-2.1-2.7-3.3a5.4 5.4 0 01.6-4zm-11.6-7.6l2.5 1.3a3.4 3.4 0 00-.2 2.2 3 3 0 001.4 1.6c.8.5 1.4.7 2 .6.6 0 1-.3 1.3-.8a1.3 1.3 0 00.2-.8c0-.3-.2-.7-.5-1a34.6 34.6 0 00-1.6-1.8c-1.1-1.1-1.8-2-2-2.8a3.7 3.7 0 01.4-3.1 3.6 3.6 0 011.6-1.4 3.8 3.8 0 012.2-.3 7 7 0 012.6 1c1.5 1 2.4 2 2.7 3.1a4.1 4.1 0 01-.4 3.4l-2.5-1.4c.3-.7.4-1.2.2-1.7s-.6-1-1.3-1.4a3.2 3.2 0 00-1.9-.6 1 1 0 00-.8.5c-.2.3-.2.6-.1 1s.7 1.2 1.7 2.2c1 1 1.7 1.8 2 2.4a3.9 3.9 0 010 4.2 4.2 4.2 0 01-1.8 1.6 4 4 0 01-2.4.3 8 8 0 01-2.9-1.1 6 6 0 01-2.8-3.2 5.4 5.4 0 01.4-4zm-14.2-3.8l7.3-12 8.8 5.5-1.2 2-6.4-4-1.6 2.7 6 3.7-1.3 2-6-3.7-2 3.3 6.7 4-1.2 2-9-5.5zm-20.7-17l1.1-2 5.4 2.7-2.5 5c-.8.2-1.8.3-3 .2a9.4 9.4 0 01-3.3-1 7.7 7.7 0 01-3-2.6 6 6 0 01-1-3.5 8.6 8.6 0 011-3.7 8 8 0 012.6-3 6.2 6.2 0 013.6-1.1c1 0 2 .3 3.2 1 1.6.7 2.6 1.7 3.1 2.8a5 5 0 01.3 3.5l-2.7-.8a3 3 0 00-.2-2c-.3-.6-.8-1-1.6-1.4a3.8 3.8 0 00-3.1-.3c-1 .3-1.9 1.2-2.6 2.6-.7 1.4-1 2.7-.7 3.8a3.7 3.7 0 002 2.4c.5.3 1.1.5 1.7.5a6 6 0 001.8 0l.8-1.6-2.9-1.5zm-90.2-22.3l2-14 4.2.7 1.1 9.8 3.9-9 4.2.6-2 13.8-2.7-.4 1.7-10.9-4.4 10.5-2.7-.4-1.1-11.3-1.6 11-2.6-.4zm-14.1-1.7l1.3-14 10.3 1-.2 2.4-7.5-.7-.3 3 7 .7-.3 2.4-7-.7-.3 3.8 7.8.7-.2 2.4-10.6-1z"/>
+    <g stroke-opacity=".5">
+      <path fill="#309e3a" d="M216.5 191.3c0-1.5.3-2.6.7-3.6a6.7 6.7 0 011.4-1.9 5.4 5.4 0 011.8-1.2c1-.3 2-.5 3-.5 2.1 0 3.7.8 5 2a7.4 7.4 0 011.6 5.5c0 2.2-.7 4-2 5.3a6.5 6.5 0 01-5 1.7 6.6 6.6 0 01-4.8-2 7.3 7.3 0 01-1.7-5.3z"/>
+      <path fill="#f7ffff" d="M219.4 191.3c0 1.5.3 2.7 1 3.6.7.8 1.6 1.3 2.8 1.3a3.5 3.5 0 002.8-1.1c.7-.8 1-2 1.1-3.7 0-1.6-.2-2.8-1-3.6a3.5 3.5 0 00-2.7-1.3 3.6 3.6 0 00-2.8 1.2c-.8.8-1.1 2-1.2 3.6z"/>
+    </g>
+    <g stroke-opacity=".5">
+      <path fill="#309e3a" d="M233 198.5l.2-14h6c1.5 0 2.5.2 3.2.5.7.2 1.2.7 1.6 1.3s.6 1.4.6 2.3a3.8 3.8 0 01-1 2.6 4.5 4.5 0 01-2.7 1.2l1.5 1.2c.4.4.9 1.2 1.5 2.3l1.7 2.8h-3.4l-2-3.2-1.4-2a2.1 2.1 0 00-.9-.6 5 5 0 00-1.4-.2h-.6v5.8H233z"/>
+      <path fill="#fff" d="M236 190.5h2c1.4 0 2.3 0 2.6-.2.3 0 .6-.3.8-.5s.3-.7.3-1c0-.6-.1-1-.4-1.2-.2-.3-.6-.5-1-.6h-2l-2.3-.1v3.5z"/>
+    </g>
+    <g stroke-opacity=".5">
+      <path fill="#309e3a" d="M249 185.2l5.2.3c1.1 0 2 .1 2.6.3a4.7 4.7 0 012 1.4 6 6 0 011.2 2.4c.3.9.4 2 .3 3.3a9.3 9.3 0 01-.5 3c-.4 1-1 1.8-1.7 2.4a5 5 0 01-2 1c-.6.2-1.5.2-2.5.2l-5.3-.3.7-14z"/>
+      <path fill="#fff" d="M251.7 187.7l-.5 9.3h3.8c.5 0 .9-.2 1.2-.5.3-.3.6-.7.8-1.3.2-.6.4-1.5.4-2.6l-.1-2.5a3.2 3.2 0 00-.8-1.4 2.7 2.7 0 00-1.2-.7 13 13 0 00-2.3-.3h-1.3z"/>
+    </g>
+    <g stroke-opacity=".5">
+      <path fill="#309e3a" d="M317.6 210.2l3.3-13.6 4.4 1 3.2 1c.7.4 1.3 1 1.6 1.9.4.8.4 1.7.2 2.8-.2.8-.5 1.5-1 2a3.9 3.9 0 01-3 1.4c-.7 0-1.7-.2-3-.5l-1.7-.5-1.2 5.2-2.8-.7z"/>
+      <path fill="#fff" d="M323 199.6l-.8 3.8 1.5.4c1 .2 1.8.4 2.2.3a1.9 1.9 0 001.6-1.5c0-.5 0-.9-.2-1.3a2 2 0 00-1-.9l-1.9-.5-1.3-.3z"/>
+    </g>
+    <g stroke-opacity=".5">
+      <path fill="#309e3a" d="M330.6 214.1l4.7-13.2 5.5 2c1.5.5 2.4 1 3 1.4.5.5.9 1 1 1.8s.2 1.5 0 2.3c-.4 1-1 1.7-1.8 2.2-.8.4-1.8.5-3 .3.4.5.8 1 1 1.6l.8 2.7.6 3.1-3.1-1.1-1-3.6a19.5 19.5 0 00-.7-2.4 2.1 2.1 0 00-.6-.8c-.2-.3-.6-.5-1.3-.7l-.5-.2-2 5.6-2.6-1z"/>
+      <path fill="#fff" d="M336 207.4l1.9.7c1.3.5 2.1.7 2.5.7.3 0 .6 0 .9-.3.3-.2.5-.5.6-.9.2-.4.2-.8 0-1.2a1.7 1.7 0 00-.8-.9l-2-.7-2-.7-1.2 3.3z"/>
+    </g>
+    <g stroke-opacity=".5">
+      <path fill="#309e3a" d="M347 213.6a9 9 0 011.7-3.2 6.6 6.6 0 011.8-1.5 6 6 0 012-.7c1 0 2 0 3.1.4a6.5 6.5 0 014.2 3.3c.8 1.6.8 3.5.2 5.7a7.4 7.4 0 01-3.4 4.5c-1.5.9-3.3 1-5.2.4a6.6 6.6 0 01-4.2-3.3 7.3 7.3 0 01-.2-5.6z"/>
+      <path fill="#fff" d="M349.8 214.4c-.4 1.5-.5 2.8 0 3.8s1.2 1.6 2.3 2c1 .3 2 .2 3-.4 1-.5 1.6-1.6 2.1-3.2.5-1.5.5-2.7 0-3.7a3.5 3.5 0 00-2.2-2 3.6 3.6 0 00-3 .3c-1 .6-1.7 1.6-2.2 3.2z"/>
+    </g>
+    <g stroke-opacity=".5">
+      <path fill="#309e3a" d="M374.3 233.1l6.4-12.4 5.3 2.7a10 10 0 012.7 1.9c.5.5.8 1.1.8 1.9s0 1.5-.4 2.2a3.8 3.8 0 01-2 2c-1 .2-2 .2-3.1-.2.4.6.6 1.2.8 1.7.2.6.3 1.5.4 2.8l.2 3.2-3-1.5-.4-3.7a20 20 0 00-.3-2.5 2 2 0 00-.5-1l-1.2-.7-.5-.3-2.7 5.2-2.5-1.3z"/>
+      <path fill="#fff" d="M380.5 227.2l1.9 1c1.2.6 2 1 2.3 1 .3 0 .7 0 1-.2.3-.1.5-.4.7-.8.2-.4.3-.8.2-1.2a2 2 0 00-.7-1 23.7 23.7 0 00-1.8-1l-2-1-1.6 3.2z"/>
+    </g>
+    <g stroke-opacity=".5">
+      <path fill="#309e3a" d="M426.1 258.7a8.9 8.9 0 012.5-2.6 6.6 6.6 0 012.2-.9 5.5 5.5 0 012.2 0c1 .2 1.9.6 2.8 1.2a6.6 6.6 0 013 4.4c.3 1.7-.2 3.6-1.4 5.5a7.3 7.3 0 01-4.5 3.3 6.5 6.5 0 01-5.2-1.1 6.6 6.6 0 01-3-4.4c-.3-1.8.2-3.6 1.4-5.4z"/>
+      <path fill="#fff" d="M428.6 260.3c-1 1.3-1.3 2.5-1.1 3.6a3.6 3.6 0 001.6 2.5c1 .7 2 .9 3 .6 1-.3 2-1 2.9-2.4.9-1.4 1.3-2.6 1.1-3.6-.1-1-.7-1.9-1.6-2.6s-2-.8-3-.5c-1 .2-2 1-3 2.4z"/>
+    </g>
+    <path fill="#309e3a" d="M301.8 204.5l2.3-9.8 7.2 1.7-.3 1.6-5.3-1.2-.5 2.2 4.9 1.1-.4 1.7-4.9-1.2-.6 2.7 5.5 1.3-.4 1.6-7.5-1.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bs.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bs.svg
new file mode 100644
index 0000000..a14500b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bs.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bs" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="bs-a">
+      <path fill-opacity=".7" d="M-12 0h640v480H-12z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#bs-a)" transform="translate(12)">
+    <path fill="#fff" d="M968.5 480h-979V1.8h979z"/>
+    <path fill="#ffe900" d="M968.5 344.5h-979V143.3h979z"/>
+    <path fill="#08ced6" d="M968.5 480h-979V320.6h979zm0-318.7h-979V2h979z"/>
+    <path d="M-11 0c2.3 0 391.8 236.8 391.8 236.8L-12 479.2-10.9 0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bt.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bt.svg
new file mode 100644
index 0000000..f4b6e63
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bt.svg
@@ -0,0 +1,89 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bt" viewBox="0 0 640 480">
+  <path fill="#ffd520" d="M.1 0h640.1v480H.1z"/>
+  <path fill="#ff4e12" d="M.1 480h640.1V0z"/>
+  <g stroke="#000" stroke-width=".5">
+    <g fill="#fff" stroke-width=".4">
+      <path d="M345.4 150c-4-1.3-6.6.7-6.4 5.9 0 5.1 2.8 8 6.8 6.1l-.4-12z"/>
+      <path d="M348.9 140.4c-3.3-2.6-6.4-1.5-8 3.4-1.5 5 .1 8.6 4.5 8l3.5-11.4z"/>
+      <path d="M354.4 131c-2.8-3-6-2.4-8.4 2.2-2.3 4.6-1.3 8.5 3.2 8.7l5.2-10.8zm-3.6 45.5c-4.9 1.8-5.4 8.5-2.3 12.6 3 4.1 8.7 4.9 11.8 0l-9.5-12.6z"/>
+      <path d="M345.1 162.3c-4.6-1.5-8.8 4.7-9.5 10.3-.9 7-11 9.4-5.4 20.1 1.2-6.8 5.7-10.6 9.3-10.8 3.6-.3 9-1 11.3-5.4l-5.7-14.2zm14.7 27.6c-5.4 1.3-6.2 8.5-2.3 13.6 3.3 4.4 13.7 3.4 13.4-1l-11-12.6zm15.3 43.4c.3-4.7-7.2-6.5-10.8-5.6-3.6 1-10.5-.1-12-4-1.4 3.1.5 6.5 5.7 8.2 4 1.2 3.9 4 2.7 5.4 3 .5 11.7.5 14.4-4z"/>
+      <path d="M370.9 203.7c-5.3-2.4-8.4 1.2-10.4 4.6-3 5-12.1-1.4-15.2 5.3 4.2-1.8 8.4 2 10.4 3.3 5.7 3.7 16.6 2.6 18.2-6.2l-3-7z"/>
+      <path d="M374 209.8c-5.3 4-7.4 8.8-7.2 12 .1 3.2 4.6 10.3 9.5 10.7 2.8-5.8 4.3-18-2.3-22.7zm-22 24.9c0-2 2.8-2.7 4.8-2 1.9.6 4.9 2.5 3.8 4.6l-8.6-2.6zM323 224c-.5-2.3 3.2-6.3 8.2-4.1 5 2.2 5.7 6.4 3.6 8.1l-11.8-4z"/>
+      <path d="M335.2 228.4c-.4-1.3 3.3-3.9 9.4-2.4 6.2 1.6 7.7 5.6 7.5 8.7l-16.9-6.3zm-12.9-4.3c3.3-2.4 2-7-.9-8.5-5.2-2.6-3.3-9.2-6.7-10.5-3.3-1.3-6.5-3.6-6.7-6-1.6 3.3-.6 6.2 1.7 8.3 2.3 2-1.8 10.4 1.2 12.6l11.4 4.1zm-69-1.8c-2.7-4.2-9.1-3.5-11.8-.5-2.7 3-2.3 7.3.2 9.3l11.6-8.8zm15.5-6.3c-1-5.7-7.9-6.3-11.6-4.9-3.8 1.4-6.3 7.1-3.9 11.2l15.5-6.3z"/>
+      <path d="M279 215.2c2.5-4.7-2.3-11.8-7.7-12.8-4.5-1-9.8-.9-11.6-5.3-1 3.8 1.8 6.3 5.2 8.5 3.3 2.2-.6 7.8 4.8 11l9.4-1.4z"/>
+      <path d="M278.6 215.4c-1.2-3.4 1.1-8 5.7-7.6 4.7.3 7.3 3.6 5.3 7.9l-11-.3z"/>
+      <path d="M288.9 215.7c-.7-3.6 2.2-7.8 6.8-6.8 4.5 1 6.6 4.7 4 8.5l-10.8-1.8z"/>
+      <path d="M299 217.3c-.4-3.6 2.7-7.6 7.2-6.4 4.5 1.2 6.4 5 3.6 8.7l-10.7-2.3zm-77.6 59c-8.7 0-10.8 2-12 11-1.6 11 13.5 12.3 12-11z"/>
+      <path d="M225.2 264.7c-13.2-5-20.4 16-33.6 12.2 4.7 7.5 16.1 0 20.4.8 7.2 1.3 22.8-1.4 13.2-13zm-8.6 28.7c-6.6-3-13.6 7-12.4 11.5 1.7 5.5 16.7 1 12.4-11.5zM186 336.7c3.6 1 8 3 7.2 10-.8 7-14 21.1-25.8 22-11.8.7-16 15-26.3 11 9.6-1.8 9.6-12.6 17-16-5.4-2-8.2 10.3-15.2 10.3s-10.3 11.1-18.8 10.3c-8.5-.7-9.3 13.5-26.4 13.7-13 .1-29 15.3-34.9 8.7 12.7-1.8 17.8-8.8 25.3-16.5 12-12.3 25.7-6.8 30.4-17.7a31.6 31.6 0 01-18.3 5.4c-8-.2-16.6 12.6-25.5 7 5.1-.7 8.5-2.9 13.9-8.6 5.5-5.8 13.7-2 20.1-8 10-9.2 18.7-1.5 28.3-13-2.7-1.4-8.5-.5-13.9 2.4-5.4 2.8-12.3-2-18.5 1.4.7-7.6 15.2-3.3 24.2-8.5 10.2-6 18.6-4.2 26.6-3.5-11.2 0-15.5-10.7-31-7.6-6.7 1.4-12.1-9.3-18.8-3.9.2-4 7.2-7.2 14.4-3.3 7.2 3.9 10.1-3.4 24.5 5.7 6 3.7 16.1-2.4 22.5 1.6-.8-2.4-4.5-4-8.8-3.6 2.7-5.6 20.2-4.9 27.8.7z"/>
+      <path d="M197.4 328.3c-5.6-4.4-13.5.9-19-1.2 0 3.6 1.9 9 7.8 11.1 1.8-1.3 10-8.4 11.2-9.9z"/>
+      <path d="M206.3 315.8c-8.9-4.5-10.4 6.7-17.4 4.4.3 3.2 2.9 7.2 8.5 8.1l9-12.5z"/>
+      <path d="M211.6 305.6c-13.1-5.1-14.8 7.5-22.5 5 1.8 4.4 12.8 6.8 18.5 5.2l4-10.2zm18-55.2c-3.5-5-10.8-1-12 4.9-1.1 5.8 1.7 13.9 6.6 12l5.4-17z"/>
+      <path d="M238.5 235c-6-1.5-13-.8-12.2 5-2.4 1.1-3 8.7 3.3 10.4l8.9-15.5z"/>
+      <path d="M242.5 231c-6-7-12.5-6.9-16.2-4-6.9 5.5-13.5 2.4-13.7 7.8 4.1-3.2 7.8.6 11-.5 3.4-1.2 5.9 5.3 15.2 2.6l3.7-6zm-14.3 103.9c.9 1.7 6.4 2.4 9.1-.4 3.6-3.8-.3-14.2-6-15-5.7-.7-6.2 11.8-3.1 15.4z"/>
+      <path d="M221.8 335.1c8 3 11.5-3.7 7.2-8a80 80 0 01-7.2 8z"/>
+      <path d="M191.4 346.2c-1.6 4.7-9.6 5.4-18.6 19.8-9 14.5-17.6 8.4-19.8 18.3 10.8-8.7 19.3-3 25.8-11.6 9.7-13.1 17.8-11.2 21.6-20 5.4-12.7 29-12.4 30.4-32.3-8-1.5-33.3 19.9-39.4 25.8zm203.2-194.7c10.3 3.4 10.5 16.7 22.4 21.1 11.8 4.4 13 15 22.7 12.4-9-2.5-8.4-12.9-17.8-15.5-11-3-15.2-19.8-24-22.4m44 74.3c1.8 4.2 1.5 11.5-5 13.4 3.5 2.2 8.7.2 11.5-4.6-4.2 9.4-1.4 17.9 5.3 19.6-3.2-6.6 4-9.7 1.7-14 4.2 1.9 8 7.7 7.8 11.3 5.6-6.2-4-14.5-2.3-20.3l-19-5.4zM375 287.6c-6.3-5.5-9 1.5-12-1-3-2.2-6.8-2.5-8.3-.3 5.4.2 2.8 4.4 13.3 5.4-10.5.7-8.6 12.5-15.6 11.9 7.4 7 11.3-6.3 17.4-4.1-1.8.5 2.8 4.7-.4 10.4 5.2-.1 7.3-7.3 8-11l-2.4-11.3zm-139 60.2c-2.2-2-9-2.9-11.5-1.3-2.6 1.5-1.7 2 1.4 2.2 3.1.2 7 5.2.4 5.5-3.1.1-2 7.6-8.5 8.1 2.6 3.2 10.2 1.1 12.9-2.4-.5 2.9 3.3 5.5 1.8 9 4.7.5 2-9.7 9.5-9.2-3 .4-1.8 7.4 3.6 5.6-3.2 1.5-1.5 5.3 2 4.4-2.2.7-3 3.7.2 5.4 3.1-4.3-.4-19.5-11.7-27.3zm280.6-142.1a17.9 17.9 0 100-35.7 17.9 17.9 0 000 35.7z"/>
+      <path d="M423.4 227.2c5.5-5.1 13.7-7.7 19.4-3.8 5.6 3.8 24.4 8.4 33.7 2 9.3-6.4 13.7-9.8 17.8-9 3 4.6 6.8 6.8 11.4 7.2 1.4 1.6 6.5 2.8 9.3 2.5 4.1 1 9.1-.3 13.1-4.7 6.2 1 12-3.7 14.2-10.7 6.6-.7 7-8 2.8-13-3.8-.7-.9-13.8-14.9-11.2 6 3.6 1.4 10.8 6.3 14.2-3.3 0-7.7 1.4-8.7 6.4 1.3-3.4-.2-5.8-1-6.5 0-3-6.5-10.3-12.7-7.6 4.4 1 2 8 5.2 10.8a8.1 8.1 0 00-6.2 3.3c-1.7-3-7.6-6-11.2-6.3 0-1-.2-3-.7-4.1-1.6-3.1-3-6.8-2.3-11.5a48 48 0 00-7.2 11.4c-4.9-3.4-17 1.5-22.7 2.8-5.6 1.3-24.7-1.8-29-6.4a49.2 49.2 0 00-21-9.8c-11-3.2-11-15.2-23.1-23.5-.3 15 22.4 62.4 27.5 67.5zM297.2 341.1a17.3 17.3 0 100-34.6 17.3 17.3 0 000 34.6z"/>
+      <path d="M256 327.8c3.5 4.5 9.4 4.2 11.9 3.9 2 5.4 8.6 5.2 11.4 8.2 2.9 3 12.5 2.7 15.3 1-2.5-.2-5.9-1.8-9-4.5-4-3.2-2.2-9.8-5.2-12a11 11 0 002.2-8.6c2.4-1.4 4.2-3.7 4.4-4.9a15 15 0 009.6-4.1c2.2 2 7.7-.6 10.7 2.8.6-8.5-7.5-13-13-10.1-2.1-1.2-7.9-.4-9 1.1-1.7-.8-6.8 1.8-9 3.5 2.5-1.4 2.9-5.7 1.9-7.2 2.2-1 4.6-3.9 4.9-6 3 .5 7.7-1.6 9.7-1.1-3.3-4.4-8.8-6-14.5-5.5-5.9.3-8.4 4.4-9.2 8.8-3.4 2.1-4.6 9-3.3 11.5-2 0-3.9 1.9-4.6 3a26.7 26.7 0 00-9.4-2m1.3-7c-1.2-3.4.3-6.4 1.1-9 2-6.8.8-8.6-5.3-7.7a47 47 0 004.2 16.7z"/>
+      <path d="M248.6 282.3c1.6 1.6 7 2.3 7.6-2.6.7-5.6-1.6-7.8-6.5-5.6-.4 1.3-.8 6.5-1 8.2z"/>
+      <path d="M249.8 273.9c2 .8 6.5 2.5 9-2.3 2-4-.7-7-5-6.8-1 1.2-3 5.3-4 9.1z"/>
+      <path d="M253.6 264.4c.5 1.6 5.8 6.7 9.6 3 3.9-3.7 3.9-9.3-1.9-11.3-1.5.2-6.2 5.6-7.7 8.3z"/>
+      <path d="M261.3 256c1.1 3.3 4.8 8.8 11.5 6.3 6.7-2.6 3.8-11 .7-12.7a33 33 0 00-12.2 6.5z"/>
+      <path d="M273.5 249.6c-.5 2.9 0 10.6 9.2 10.5 9.1-.2 6.6-10.9 4.2-12.4-3.7 0-10 .1-13.4 2z"/>
+      <path d="M287.3 248c-1 2.3-3.3 16.7 14.6 12.7 2.3-.5 8.3-13.8-14.6-12.6z"/>
+      <path d="M297.1 249.4c-1.8 1.8 2.8 16.3 15 13.9 12-2.5 1.9-16.3-15-14z"/>
+      <path d="M307.4 251.6c-2 4 1 15.8 15.9 15.8 13.5 0-.7-15.6-15.9-15.8z"/>
+      <path d="M319.1 255c-1 2.3-2.1 14.8 15.5 15.9 12.7.8 9.6-17.3-15.5-15.9z"/>
+      <path d="M338 260.3c-2.1 3.9-4.4 13.5 14.9 14.3 12.3.5 4.7-14-14.8-14.3z"/>
+      <path d="M354.1 263.3c-2.8 3.8-.7 11.4 6.5 12.8 9 1.8 10.3-6.7 4.1-10.8-6.2-4-10.6-2-10.6-2z"/>
+      <path d="M363 265c-2.1 3.7-.9 12.4 12.8 12.4 2.8 0 13.6-11-12.9-12.3zM257.1 433a20 20 0 100-40 20 20 0 000 40z"/>
+      <path d="M404.1 141.7a35.2 35.2 0 00-5.4 8c-6.7 20 11.2 35 21.6 56.7a63 63 0 01-5.6 60.7c-4.4 5.8-3.1 7.5-8.8 13.4-2.2 2.3-4.6 5.2-3.8 13.4 3.6-1.3 8.7 2 9.7 5 2.6-1.4 6.2-.9 7.5.7 4.4-2 8-1 11.9 3 3.3-.4 7 0 10.3 3.7 1.8-3.6 5.4-5 8-4.1-.3-4.7 4.3-8 8.4-6.2a7.6 7.6 0 019.8-9c4.7-3.6 14-3.9 18.6 1.5-8.3-2.3-8 6.5-15 5.7 1.8 5.1-2.8 8.1-7.4 9.8 3-1.4 6.2-3.1 7.2-1.3 2.6-2.3 7.7-1.4 9-.3 3.4-1 6.7-.2 8.2 3.9 4.7 2.8 7.8 10 4.4 15.4-1-5.6-4.9-5.4-6.4-7.7-3.6 1.3-7.2 1.3-8.3-1-2 2-9 3.9-12 .8-1.2 4.6-5.2 8.5-9.9 8.5 1.3 3.6-2.3 9.7-5.1 12.8 4.4 2.3 3 7.5 2 10.6 6.8 1 1 7 12.7 10.8-5.7 1.8-16.8 0-18.3-7-5.7-.2-9.5-5.9-9.3-11.8-4.4-4.1-5-10 1-14.2-5.1 1.6-8-6.7-15.4-3.3-3.7 1.7-13.5-1.2-13.4-4.6-1.5 2.5-11 1.5-12.2-2.9-3.1 1.7-10.3-1.1-10.2-5.4-4 1.8-9.4-1.4-9.1-5.5-3.8-.5-4.2-3.9-4-6.7-3.3-1.6-2.4-4.8-1-8.6-2.4-2.6-1.4-6.2.4-9.6-2.5-2.6-2-5.6-1.3-9.3-12.3-1-27.8-4-63.3-14.9-53.6-16.5-68 22.2-56.2 46.4 13.7 28-1.5 34 3.1 54.8 5 1 7.5 5.2 7.2 9.6 3 .1 5 2.8 4 8a9 9 0 017.6 2.3c1.8-3.4 7.8-4.2 10.8-.3 6.7-.5 10.1 5 9.8 11.6a18 18 0 01-1.5 19.3c.4-2.7 0-6.5-.1-8.9-.3-4.2-6.2-5.1-5.6-8.6-3 .3-6-1.4-7-3.7a6.8 6.8 0 01-6.6 1.3c3.4 1.5 6.2 7.7 5.1 11.8 1.8 3.1 1.4 8.8-.7 11.2-1 5-5 6.8-10 4.6 2.9-1.8 3.9-5 3.8-7.7a10 10 0 01-2.9-6.3c-5 .8-12-3.5-13.2-5.2a20 20 0 00-20 20.1c-.6-4.1-5.8-8.2-5.1-11.7-3.1-9.5 1.3-18.4 13.9-20.2-1.6-3.6 3.8-7.3 1.8-11.4a97 97 0 00-14.7-20.1c4.4-7.5 3-17.5.5-23.7-3.7-8.9-7.2-6.7-20.3 7.7-21.4 23.5-50 17-75.2 32.5-6.7 4-13.4 5.6-6.2-1.6s26.2-14.4 38.6-20.6c23.2-11.6 42.8-30.9 50.5-68.5 18.1-88.4 85-59.2 127.2-42.8 39.7 15.5 32.5-19.5 12.4-40.7-24.2-25.3-19.3-45.3-8-61.3 20.3-2.8 59.4 4.3 51.5 11.1z"/>
+      <path d="M475.9 358.8a22 22 0 100-44.1 22 22 0 000 44z"/>
+    </g>
+    <g fill="none" stroke-width=".4">
+      <path d="M391.8 142.7c-5 21.7-.8 31.5 6.4 41 14.9 19.7 26.8 64.6 9.8 94"/>
+      <g stroke-linecap="round">
+        <path d="M417.5 252.3c2-.7 6-3.2 6.8-7.4m-5.2-2c.6-3.7 6.4-5.3 6.5-9.3m-6.4-5.2c-.4-3.9 5.8-7.4 4.9-11.2m-8.3-2.7c-.5-2.2 5.2-6.3 3.6-9.8m-7.8-3.8c-1.2-2.4 2.7-5.2 1-7.8m-7.2-3c-.4-1.6 2-5.3.7-7.5m-6.9-5.2c.5-.7 2.6-2.2 1.8-4.1m-6-5.3c.8-.4 3.3-1.2 3-3"/>
+        <path stroke-linejoin="round" d="M266 410.9c-5-1.8-11.5.7-12.8 5.1m3.9 4c.6-4.4 7.3-6.3 9.3-4.3-4.2-2.3-6.3 6-2.5 6.2m34.6-103.8c-3 1.6-4 7.2 0 11.5m4.6-10.2c-2.1 1.8-2 7.2 1.2 8.5-2.7-2 0-5.3 2-5.4 1.9-.1 3.2 2.2.8 4.5m177 5.2c-7.2-2-13 6.4-6.4 13.9-.2-7.2 5-12 11.3-10.7m-3 5a2.7 2.7 0 00-2.7 2.7c0 1.4 1.2 2.8 3.2 2.8 1.3 0 2.4-1.5 2.4-2.7m22.6-161c1.2 4.4 7.2 6.3 12 5.2m0-2.8c-3.7.1-6.8-3.4-6.6-6.3 0 2.2 5 3.2 6.6 1.8"/>
+        <path d="M267.9 331.7c-1-2.6 3-5.2 3.2-7.6.1-2.5 4.6-4.4 9.3.2m-2.2-27.4l-2.5 1.2m11.4 12.8c-1.1 0-3.4 0-4.6-.9m0 5.8c-.8.5-2.8 1.2-4 1.5m-40.1 76.3c-.2 2.3 2.2 5.7 3.4 6.7m6.6-12.2a10 10 0 00-1.3 7.6m20.5 0c-2.3-1.5-.8-5.4-1-8-.3-2.6 2.7-6.7 8.5-3.2M246 381c2.3-.4 4.7-.3 6.3.4m23-7.7a8.3 8.3 0 00-1.4 4m12.3-4.3c-1.8 0-3.4 1.3-4.2 2.6m-20.8-68.5c2 .7 7.4 4 7.6 7.4m14.3-24.2c-6.3-.1-8.8-6.5-4-6.5m15.3 15.2c-2.4 1-1.3 5.2 2.2 7.3m-17.3 33.1c-1.2-1.6.4-6 4.4-4.7m5 51.7c.3-4 5.2-6.2 7.2-1.8m-25.5 13c-.3-4.3 2-5.7 3.8-6 2-.2 4.7 1.4 6 4.2m-48.1 5c.2-2.6 2.4-5.3 4.7-4.9m231-109.4c-1.7 1.2-2.8 6.7 3.5 7.2M458 296c0 .6.8 1.5 1.3 2m29 8.3c-1.6-1.3-6 4-2 7.7m-39 35.6c-.9-3.7 2.5-4.7 5.8-3.9m-14-22.2c2-1.2 4-2.7 6.4-3.3m-7.4 17.5c0-3 1.6-5.7 3-6.4m8.4-29.1a16 16 0 002.4 9.2m28.2-9c-1.9.6-3.5 1.3-4.2 2.9m2.1 7.7c1-.8 2-1.7 2.4-2.3m46.3-110.2c0 3.6-4.5 5.6-7.5 3.3m17.3-3.1c2 1.5 8.9 0 7.3-4M528 221.4a11 11 0 01-4.9-3m19.1-7.7c-2.3.5-3.9 0-5-.5m-31.6 13.4a17 17 0 006.5-1.6M502 200.8c-1.7-.2-3 .1-3.9.8m29.8 5.5a11 11 0 01-3 5.2"/>
+        <path stroke-linejoin="round" d="M497.5 212.8c3.2-1.4 7.2 9.5 15 5.7m.6-11.4a11.3 11.3 0 00-1.8 5.6"/>
+      </g>
+      <path d="M359 190.4c1-.2 2.9-.5 3.3-1.8M226.5 310.3c3.9 2.2 6.6 5.9 5 11.4m172.1-143.2c1.2.8 5.5.8 8 0m3 2.6c0 1.8.5 8.6-3 10m1.3-.8c3.2 1 9.6.6 11.7-5.3m-4.5 5c1.7 2.6 2.2 7.6-2.8 10.3m4-6c3.8 1.2 12.4 1.4 11.5-6m-3 6c2.7 3.5 14 7.8 12.2.3m-22.5 10c4.3 1.1 10.5-1.9 8-9.6m12.3 3.9c.6 3 15 6 13.1-.7m-2.7 3.9c2.7 6.2 17 5.7 12.5-2.6m-2.3 6.5c2.8 3.4 15.5 1.4 10.4-7m-.1 6.8c7.9 6 17-2.5 7-8.7m4.6 6.8c7 5.5 15.5-4.5 9.4-7.3m-64.4 5c2.2.6 6.8.4 7.9-3.6m-1.8 2.7c-.2 5.8 9.6 8 12.1 1.3m-3.3 3.7c1.8 3.9 10.5 5.4 11.9-.1m-1.4 2.6c1.4 3.8 8.9 3.4 11-.6m-2.8 2.6c2.3 5 11.9 5 14-2.3m-1.6 3.2c3.7 2.3 11.7 1.4 11-5.8m-1.5 5.2c5.6 4.5 13.4.1 9.5-7.5m-.3 13.4c3-.5 4.5-6.4 1.4-8m-70 9c6-3.3 7.3-9 3-14.5m2.2 8.9c3.9 2.3 11.2-.2 12.5-5.8m-7.2 6.4c2.2 2.8 2.6 6.3-.3 9.5m2-5.9c6.9-4.2 15.4 3.6 9 8.4m-1-8.8c1.5-.4 4.2-3.2 4.4-6.4m-1.4 9.4c2.9-3 22.2 3 10 9.3m-1-17.4c3.8 1.4 5.7 6.7 0 8.5m5 4.4c4-4.3 17-1.6 12.3 3.8m-3.1-5.5c2.3-7.9 16.1-3 11.6.2m-14.4-8c.4 1.5.5 5.3-2 7.4m13.6-9a6.1 6.1 0 01-.8 5.3m9.5-5.2c.8 1.4 2 4.1-.8 6.3m-109.4-65.5c.1 7.3 2.7 12.2 12.6 7.6m-9.5 1.1c-5 6.6.6 13.7 10.3 6.6M365 165c6.7 7.2 18.7 2 11-9m8 15.2c-1.2 7.1 4.6 8.5 9.3 5.3m-34.2-10.3c1.2 7.1 8.5 12.7 15.6 8.4m-6.9 1.4c0 10.2 14 11.3 17.3.8m-5 6.4c4.5 9.3 14.3 5.5 17.5-.1m-27.4-14.7c1.8 4.5 5.4 9.5 13.7 5.8m-39.5-8c1.2 3.7 7.9 8.2 15.6 3m-10.8 1.8c-4.2 6 4 11.7 14 2.7m-9.1 4.7c1.6 8.5 5 15.4 17 4.4m-6 4.4c4.4 5.4 11.1 8.7 17.4-.4"/>
+      <path d="M387.3 188.8c-.4 6.5.8 9.7 5.9 9.4 4-.2 7.7-3.3 9.9-6.7m-10.8 6.7c-.2 7.4 5.6 13.2 16.5 5.7m-12 3c-2 5.5 4.1 14.5 16.2 9.9m-41.9-24.6c-.7 7 5.8 11.8 16.4 2.7m-11.2 5.1c.4 5.8 7 12.8 16.6 2.7m-12 4.7c-.7 9.9 8.4 12.7 16.1 5.1M367.2 200c2 .2 3.7-1.6 4.7-3m-.4 10.2c1.8.4 5-1.2 6-3.3m-1.4 15c2 2.3 9 .7 9.9-2.3m-2.2 2.2c3.8 9 14.1 8.7 18.4-1.5m-2 3.6c2 5.3 6.9 8.6 14.9 6.8m-11-1.4c-4.5 7.3 1.4 16 11.5 7.5m-9 3.5c-.5 4.6 3.7 9.9 9.5 10.5m-28.6-24c-1.5 10.4 6 15.4 15.3 9.8m-26.2-4.8c2.4 1.9 6.8 2.1 11 .6m5 6c-2.4 8.8 6.6 15.1 14.3 5.3M380 230.2c.2 4.5 4.5 9.4 12.1 8m21.3 9c-5.2 3.4-6.2 9.6 1 13.6m-13.6-15.4c.2 5.2 2.7 8.2 8.5 8.7m-16.1-11.4c-7.8 7-.2 15.3 9 8.3m-3.6 2.2c-2.6 8.1 7 13 12.2 4.8m-28.2-22c-2.8 8 .8 13.2 7.4 12.7m-17.6-14.3c.4 4.8 4.5 6.5 9.2 5.4m-6.2-.4c-3.5 6.7 1.8 10.3 8.8 7.8m21 15c-1 4.2-.4 7.2 5.9 8.7m-5.4-2.7c-7.6 3.4-8.3 10.8-2.4 15.5m-3.8-23.7a7.6 7.6 0 001.2 12.3m-35-35.8c-4.3 4.3-.2 16.2 9.5 9.7m15.7 5.3c-6 5-3.3 13.8 6.5 11.4m-16.3-15c-3.1 8.7-.2 11.8 6.8 11.9"/>
+      <path d="M359.3 236.1a8.2 8.2 0 00-1.5 12.2c2.3 2.6 6.7 1.4 8-1.9m-17.6-13.8c-5.9 7.6 0 16.6 8.4 14m23.3 8.6c-6 2.1-10.7 7.6-7 12.5 2.3 2.8 11.8 3.2 14.5-7.8M369 248.1c-3.5 5-2.4 9.8 4 12.2m-4.4-2.8c-3.8 2-6.2 4.5-5.3 9m-3.1-16.9c-1.4 6 .3 9.8 4 11.6m-4.1-4.4c-5.8-.4-8.8 2-6.8 7.8m.5-6.4c-5.7-2-6.6-7-4.1-12m-.8 7.6c-6.2.2-9 3.3-9 7.5"/>
+      <path d="M340.5 229.7c-4.5 1.9-6 8-4.3 11.3 1.7 3.3 7 3.6 10.2 1.4M328 224.9c-4.1 4.6.6 13.7 8 11.5m-18.6-15.1c-3.8 5.4.4 14.4 10.3 11.8m.5 25.1c-1-6.4 5.7-10.6 14-2.3m-4-13a10.1 10.1 0 00-3.3 8.5m-28-33.2c-4.3 7.2.9 13.8 10 11.2m13.8 6.7c-6 6-4 12.1.5 15.6m-4.4-8.5c-9.1.1-9.6 10.7-2.2 14m-4.7-24.6c-3.8 2.6-5 9.7 1.5 12.5m-1.8 3.4c-3.9-1.8-8.5.4-8.1 4.9m2.3-4.8c-3.5-8.2-13.6-6.8-12.7 1.7m15.5-11.9c-2.1.4-6.5 1.7-8.2 5m.6-14.3a7 7 0 002.5 11.4M296.7 216c-.8 5.6 1.4 8.3 8.4 7.8m-6-.7c-2.6 6.7 1 9.7 8 9.3m-6.4-1c-4.1 4.9-1.3 10.1 2.7 12.3m-4.6-6.1c-7.4-1-8.5 7.6-6 11.5"/>
+      <path d="M292.9 215.5c-4.5 2-7.1 7.6-4.7 11 2.5 3.5 7.4 2.4 10 .6m-8.4 1c-3.8 5.7-.4 10 3.6 11.6"/>
+      <path d="M275.3 214.8c-3 3.1-1.1 9.4 6 9.6 5.9 0 8.8-5.4 7-9.3m-8 9.3c-2.3 5.1-.8 10.7 8 9.8m3.6 8c-5.3-2.4-12.6 0-9.5 6.5m-.7-15.6c-2.2 3.1-1.5 7.5 1 10.2m-1.4-2c-3.6.7-7.1 2.6-5 8.3m-.5-4.6c-4.6-1.4-10.5 2-7 6.7m-.7-4.5c-4-.7-8.7 3.6-4.9 7.8m-1.5-3.5c-3.6 1-7.9 5-4.1 8.3m22.3-28.5c-5.2 2.3-5.7 8.1-3.3 12.4m-2.2-23c-7.7 3-7.6 13.2 1 16.4m-3.7-2.3c-4.6 2.7-5.5 7.9-2.4 11.2m-5.7-29.2c-3 1-2.8 10.5 5.4 10.3m-13.9-7.1c-6.2 4.1 1.3 14.5 11.3 7m-5.5 2.7c-.9 4.2.3 8.8 7.1 9.4m-6.7-3.8c-4.9 1.8-5.8 11.9 3 12.7m-18.6-21.8c-6.3 5.8 5.2 10.8 9.4 2.4m-18.1 7.2c-3.1 3.8 7.7 13.6 12.5-2.8m1.1-.3c.3 4 2.6 6.2 7.3 6.5m0 3.7c-7.7 1.2-10.1 10.7-1.6 12.8m-12.5-14c-.3 3.5 3.5 6.5 7.7 5.9m3.9 7.8c-7 1.6-7.9 10.6-1.7 10m-3.2 8.4c-5.8-1.7-6-8.6-.8-11.2"/>
+      <path d="M245.7 267.8c-4.9 3-3 10-.4 11s4.7-.2 5-2.4m-.5 10c.6 3.3-11.9 2-5.5-8.4m0 8.9c-4.2 6.6 2.6 12 6.9 6.3m-6.4 1.6c-1.7 5.3 4.7 9.1 8.8 5M231 245.4c-2.3 4.7 9.3 6.5 10-3.3m-13.2 10.3c-2.3 9.3 15.2 7.4 10.7-4.6m.4 6.2a8.2 8.2 0 0011.6-6.3m-5.3 6.6a10 10 0 004.7 6.3m-13.1-3.9c-.8 5 4.3 9.2 10 8.8m-9.1-3.9c-2.8 3.9-3.7 11.3 5.2 11.8M224 263c-1.4 4 7 8.1 11.8 1.5m-14.4 8.7c-.7 3 6.8 7 11-5.8m-3.3 6.5c1.8 3.2 7.9 5.8 11.6-.5m-6 3.9c-1.6 4.5 2.7 8.7 7.8 7.5m-17.5-8.5c-1 6.4 6.5 10.1 11 6.8m-15.9-4c-2.2 8.2 8.4 11.3 12.4 5.1m-2.7 2.5c.4 4.6 7.6 8.6 13.2 4.8m-26.1-1c-.5 2.1 8.1 4.2 9.4-3m-4.4 4.9c2 5.2 9 6.5 13 0m-2.3 2.6c1 5 7.2 7.7 12.8 4.3m2.3 2c-1.4 6.5 5.4 11.8 9.6 8.2m-20.6-9.4c-2 7.2 7 11.3 12 7.3m-22.8-11c-.5 6.8 4.8 10.8 10.8 7.8m-22.3-7c-1.8 4.3 7.8 7.9 12.3 4.2m-18.2 7.7c2.5 2.8 11 0 11.7-6.3m-2.3 4.6c3.1 3.6 10.5 5.6 13.4-2.2m-2.6 4c0 5.6 9.8 9.6 13-.6m11.7 2c-1 2.7 1.2 7 5.7 7.5m-13.9-9.2c-.6 3 3.9 7.4 8.7 5.7m.9 1.3c-1.3 3.3-.2 8.1 4.3 8m-3.9-1.8c-3.4 2.8-2 7.9 2.9 8m-4.6-3.2c-4.8 3.2-3.1 10.3 3.2 9.9M239 313c0 7 8.7 8 10.3 1.6m-3.3 4c-1.3 4.2 2 8.2 7.3 7m-6.3 42.8c1.2 1.7 6-1.2 4.7-4-1.3-2.8-6.4-1.3-5.8 1.7m4.6-2.9c.6-5.6-6-6.5-7.7-1.6m2.4-2.9c1.7-2.8-4-6.7-6.3-2.5m2-1.7c1.6-4.1-4.8-6-5.3-2.2m-1.5-5.4c.8-2 8-.8 5 3.5m5.5 5.1c2.8-2.6-2-7.8-5-6m24 13.9c-2.2.2-4.5 1.7-2.9 6.5 1.2 3.3 6.1 3.4 6.9 1.5"/>
+      <path d="M260.5 365.9c-2.2-1.5-7 1-4.8 5.6 1.6 3.5 5.8 2 6.4.2m-14 .8c1.2 2 6.6 1 7.6-1m-3.8-5.4c1.2-.8 3.3.2 3.7 1.2m-4-33c-3.8 2.5-1.5 10 4.3 8m-5.6-1.9c-3 2.3-.2 9.6 5.3 6.8m-4.3 0c-2.1 2.1-.1 7.8 5.2 6.7m-6-3.8c-1.2-.5-4.2-.2-5.5 1.8m2.1-28c-2.8 2.8-1.4 8.3 3.8 8.8m-4.8-3c-4 2-4 10 4 10.3m-4.3-1.3c-2.3 1.8-1.2 8.8 4.6 7.9m-2.8-.3c-.8.9-1 3-.2 3.9m-2.3-6.5c-2 0-4.8 1.5-5.5 3.7m-3.7-7.5c.7-2 7.1-2 7.6 4.1m.6-7.2c-.9.2-2.6 1-3 2.8m.2-21.7c-2.7 2.6-4 10.5 4.3 12m-9.9 4.4c0-2.1 5.8-4 7.8-.8M232 322.8c.8 1.6 4.8 3.8 7.2 2m-28-14.6a6.3 6.3 0 007.2 6.5c4.3-.5 5.2-4.2 3.9-6.7m-3.2 6.9c-2.9 3.4.6 8.3 3.8 6.9m-.6-9.4c1.7-.6 7.2-1.4 8.9 1.2m-26.8-.2c-1.3 2 6.7 3.9 9.4.2m-2.7 1.9c-.3 2.6 1 7 7.6 5.1"/>
+      <path d="M219.8 326.6c1-2.2-3.8-5.8-7.6-1.8-3.7 4 .6 8.5 2.9 7M202.7 318c-2 3.4 5.5 9.5 9.8 3.8"/>
+      <path d="M197.7 323.8c-2.7 2.8.7 7.9 4.7 6.3 4.1-1.5 3.7-5.8 2.7-6.9"/>
+      <path d="M192.5 329c-2.2 2 0 6.6 3 6.6s4.9-2.3 4.3-5.4m5-1.6c-.4 3 4 5 6.9 2.2m0-5.4c.5-.6.2-1.7-.5-2.3m-23.4 9.8c-2.5 2 3 7.6 6.3 2.5m13.1-3.5c-1.6 1.5 1 5.5 3.6 4.3m-12.4-1.5c.4 2.7 5.8 4.8 9.2.6m-6.3 2.1c-.8 1.8.9 4.5 3 4.2m48.3 11.8c-2 3.9 4.4 8.5 9 3.7m-4.4 2.1c-1 2.1.2 5.1 2 6.2m-8-1.7c.4-2 3.2-3.8 5.7-2.9m-9-2.2c.3-1.8 2.6-3.5 4.4-3m147.2-77.4c-9.2.1-5.3 14.8 2.6 11.9m-5.6-1c-1.8 2.9 1.7 7.6 5.6 4.8m-1 .6c-2.8 4.5 6.9 11.4 10.8 4.3m-3.1 2.7c0 4.3 12.5 7 10.7-1.5m-1.2 4.6c3 5 14 5.5 12.9-2m-2.5 5.2c2.3 3.4 13.2 5.4 12.8-1.5m-56.7-40.8c1.5 4 6.8 5.4 12.6 3m-16-.2c3.7 2.3-1.6 12.9-7.1 8.6m7.2-2c4 1.9 8.9.5 10.3-5.2m-2.5 4.4c.4 3 4.7 5.3 10.2 4.1m-20.1-1c5.2 4.4-2.3 13.4-5.7 9.3m7.6-6c2.5 1.8 8.8.8 9.4-4m-2.8 4c.5 3.1 3 4.3 6.4 4.4m-14.4-.1c2.6 3.6 9 4.6 11.9-.1m-2.9 2.7c-.2 3.4 3.6 6.3 7.6 5.5M375 295c3.3 1.7 7-4.7 4.1-9m-.2 15.7c4 .2 4.5-5.8.7-9.2m8.4 14.7c3.4-.8 2.3-8.1-5.8-8.7m16 14.1c3.2-.9.6-9-8.3-8.5m20.5 11.4c2.2-3.4-5-9-11-6m17 10.6c4 1.2 6.8-9.4-5.9-7.7m13.3 7.7c3.5-1 6-7.2-4.2-5.2m12 5.7c3 1.6 4.4-7.5-5-5m-47-23c3.9 2.1 10-.4 9.4-5.3m-1.5 4.2c1.3 2.3.8 6.8-1.7 8m2-2.6c2.6 1 6.1.1 8.2-4m-3.6 4c.7 1.8 1 5.4-.7 7.2m1.3-4.1c2.9 1.6 6.2-.5 7.6-3.5m-1.8 2.6c2 1.3 3.9 7.3.4 9.8m2-2.8c2.4 0 6 0 8.3-3m-1.7 1.7c2.2.6 4.8 4.2 3.9 7.4m.1-1.1c2.5-.3 6.7-2 7.9-5m-1.2 2a6.6 6.6 0 013.2 6.5m0-2.1c2.5-.1 4.7-1.4 5.3-4.1m-.6 1.8c1.8.6 4 2.7 4.1 5.1m-.3-1.5c1.8-.3 3.1-1.4 4.3-3.2m4.9-.3c2.3 2.3-.8 10-5.6 8.6m-43.9-164.7c-4.7 2.9-18.3 2-11.6-9.2m13 1.6c-9.5 3.8-21-3.5-9-11.3m-3.2-2.6c-7.8 0-13.1 12.6-2.6 17M348.6 138c-2 4 5.3 8.4 10.3 4.4 3.9-3.1 3.6-11.5 1.3-14.7m-15.6 19.8c-2.6 8.5 16.4 9 13.4-4.5m-14.4 17.2c.6 6.4 18.1 4.3 12.5-8.7m2-3.6c1.4 2 5.3 5.3 11.9 4.6m-9-13.5c.6 2.3 4.5 4 9.5 2.3M185.4 334.8c-4.5 3.1 2.4 8.1 4.9 2.6m-8.4-.2c-4.4 3.2 2.4 8.2 4.9 2.7m-8.6-.3c-4.4 3.2 2.4 8.1 5 2.7m-8.8-.5c-4.3 2.3.7 7.8 5 3m-9.2-.9c-4.3 2.3.7 7.8 5 3m16.6-9.6c-.1 3.3 6.1 4.6 8.4-.3m-4.5 3.3c-2 2.5 1.6 5.5 3.5 4.4m-11.8-4.8c-.2 2.8 5.2 4.4 7.8 1.3m-4.9 1.6c-1.7 2.2 1.7 5.3 4 4.4m-10.5-4.8c.2 2.2 3.3 4.7 6.6 3.3m-4.6-.3c-1.3 1.1-.7 3.8 1.1 4.7m-7.8-5c-.5 2 2.9 5.6 6.4 3.3m-5.7-1c-2 1.7-1.8 4.1.8 4.5m-5.8-4.7c-.2 1.4 1.5 3.6 3.7 3.3m-14.7-3.4c-2 1.1 3.2 6.7 6.5 1.5m-11.6.8c-2.6 1.2 3.8 7.4 6.7 1.1m10-1.3c-2 .4-3.3 3.3-1.6 4.5m-5-3.5c-.2 1.2 2.3 3 4.3 2.4m-5.9-1.9c-2 1.2-.9 4.6 1.4 4.1m-8.3-1.8c-1.8 1.3-.5 4 2 3.4m1.3-3.6c0 .7 1.7 1.8 3 1.3m-12.5-2.5c-2.3 1-2.1 6.6 5.5 3.6m-10.6-1.3c-3.2 1.5-2.1 5.8 4.8 1.7m.5.3c-.8.7-1.7 3.5 1.5 2.4m-7.2-1c-1.3 1.1-.5 3.5 2.3 2.6m-9-2.2c-2.3 1.3 2.8 3.1 6.2-.5m-4.6 2.1c-1 1-1 4.1 1.6 3m-8.2-1.7c-1.5 1.1 1 2.7 6 .5m-4 1.1c-1.9 1.5-1.7 3.4 1 2.8m-6.4-2c-2 1.9.9 3.1 4.4 1.6m-4.4.5c-3.4 1.5-1.9 4.4.2 3.3m113.8 6.5c-.8 1.7 1.8 3.1 4.3 2.7 2.3-.3 4.6-2.3 2.8-5m.1 3.4c2.4 1.8 6.5-.3 6.5-3"/>
+    </g>
+    <g fill="#fff" stroke-width=".4">
+      <path d="M396.8 103c-10.3-5-31.7-14.6-37.8-6.9 5.6-2.3 21.8.1 35.2 12.5l2.6-5.5z"/>
+      <path d="M403 102.5c-11.9-13.9-19-10.8-27.5-15.5-8-4.5-20.8-5.4-23.3 1.7 11.7-5.7 22.5 3 29.2 4.2 9 1.4 14.2 8.5 16.9 11.7l4.7-2zm44.9-1.8c-6.2-14.1-19.4-10.4-25.2-16.4-8.5-8.8-30-17-39-10.9 19.6-1 28 13.5 38.4 18.6 7.5 3.6 15.5 11.3 25.8 8.7z"/>
+      <path d="M424.7 99.2c-10.5-13.1-26.8-24.7-34.2-20.4 9.8.6 12.9 7.4 19.8 11.8 7 4.3 3.9 10.7 14.4 8.6zm-50.2 23.2c-11-4.1-32.7-6.2-42.8 6.4 16.8 2.9 42 1.3 42.8-6.4z"/>
+      <path d="M372.4 127.3c-11-5.2-19.7 2-30.1 1-19.8-2-34-.8-35.8 8.8 11.3-10.2 30.4-1.8 38.1-3.9 7.7-2 36.3-.3 45.3 3.6-4.6-5.7-11.8-7.2-17.5-9.5zm34.8-29.5c-2.6-8.5-2.4-17.5 10.3-16.9-3.2-4-15-6-17 8.9-14-10.3-29.4-12.1-32.2-3.2 7.2-6.2 18.4-1.7 31.8 13.5a23.8 23.8 0 017.1-2.3z"/>
+      <path d="M387.9 109.5c-8-5.2-18.8-13.5.1-16.9-8-4.3-20-2.4-18.7 12.5-21.6-8.7-37.1-5.8-40.4 2.9-3.6 9.5 9.8 14.8 12.1 8.7-2.4 1-10.8-1.8-6.4-7.2s26.8-1.3 48.1 9.8c6 3 26.3 2.6 5.2-9.8z"/>
+      <path d="M382.2 123.7c-6.1-12.6-26.1-1.2-30.1-13.4-5.6 17.9 28.4 8 30.1 13.4zm127.1 13.6c4.2 2.1 7.8-1.2 1.4-3.7 4.2 2 7.9-1.1 1.5-3.7 4.2 2 7.8-1.1 1.4-3.7-1.7 1.7-4.1 8-4.3 11.1zm2.2-24.2c9.3-9.8-.7-13.1 10.6-23.2 9.3-8.2 1.8-13.7 10.5-20 2.9-2.1 9-6.2 9.6-10.4 3.7 9.3-11.6 10.6-10.6 25.5.7 9.5-5.8 8.7-8.2 24.8-.5 3.3-2.9 10.8-11.9 3.3z"/>
+      <path d="M515.6 117.5c5.2-11 11.1-10.9 14-15.2 5.4-8.3 16.8 1.4 26.5-6-1.7 10.5-14.7 6.8-20.4 13.5-5.6 6.7-10.3 9.7-20 7.7z"/>
+      <path d="M517 121.1c9-7.2 15.6-2.4 21.8-6.2 15.7-9.5 22 2 36-2.6-3.6 9-24.4 1.3-33.4 8s-40.7 13.2-24.5.8zm-26.3 51.4c-.2-4.1-4-9.4-9.4-10-5.4-.7-7.8-6.4-11.9-6.6-4.1-.3-6.8-8.5-12.5-8.4-5.6.1-8 7.5 5.3 14.2 13.3 6.7 28 14.4 28.5 10.8zm-16.8 3.5c-5.6.2-6.4 8.5-11.8 8.7 7.4 4 12.9-1.8 16.7-7L474 176z"/>
+      <path d="M478.6 177c-5 4.1-6.4 12.7.7 15.2-4.2-5.9 7.5-8.5 3.9-14l-4.6-1.2z"/>
+      <path d="M483.4 177.3c-3.8 7.4 6.1 8.3 3.5 14 5.7-1.3 6.6-12 1.4-14.8l-4.9.7z"/>
+      <path d="M445.6 161.3c9.3-.5 17.7 4.5 23.4 12.6 3.6 5.1 15.7 7.2 19.9 3 4-4 1.8-12.8-8.5-10-2.6-4.3-10-2.8-13.7-6.4-3.6-3.6-17.5-13.9-21.1.8z"/>
+      <path stroke-linecap="round" d="M480.4 167c-2.5.5-3.3 4.7-1.7 6.9m7-4.4c.7 1.3.2 3.1-.2 4m-25.2-11.8c4.7.2 5.6 3.7 10.8 5"/>
+      <path d="M457.1 150a161 161 0 0137.6 12.3c8.1 4.6 20.7 6 31.6 2.8 11-3 32.2-5.9 31.1 7.8 5.8-6.9-1.5-14.2-16.2-15.5.3-6.7-6.9-12.7-12-8.7 4.7-.7 8.8 8.2-.6 11.8a8.4 8.4 0 00-11.7-9.8c4.4 1.3 9 8.8-1 11.6-6.3 1.8-15.4-.5-22.2-4.6-6.8-4.1-45-19-36.6-7.8z"/>
+      <path d="M498.6 143.3c-5.1 2.3-1.8 7.7-9.7 10.8-8 3-13.6 10.1-11.8 16.2 5.4-11.9 15-11.3 18.3-16 3.4-4.6 8.3-11.4 3.2-11z"/>
+      <path d="M500 144c-.2 9.4-7.6 6-4.7 19.2.9 4.1 2.6 10.8-.3 17.5 8.3-6 3-18.7 6.7-23.5 1.8-2.4 4.2-6 5-9-1.9 5.3-1.7 15.4 3.5 18-4.2-10 11.5-18.3.7-30-1.6 3-6.5 8-10.8 7.8zm-26.2-9.4c1.3 2 2.6 6.8 1.4 9.6 2.6-1.6 6.3-5.6 7.5-8.3 5.3.8 7.3 7.3 2.3 10.2 3 0 8.4 0 11.3-3.5-3.6-4-14.8-10.2-22.5-8z"/>
+      <path d="M393.7 116.1a10 10 0 00-4.8-2c-7.8-1.6-3.7-8.6 2.9-8.5 14.2-15.5 22.1-3.6 39.4-8.4 6-1.8 10.2-1.3 13.4.2 7.8-5.2 16.8-3.8 23.4 2.3a5.3 5.3 0 013-2.4c6.1-1.7 11 3.4 12.7 10.1 4.7-.8 10.1 1.5 13.7 4.7 4.9-2.5 8.2-2.6 9.5 0 4.4-2 10-3.4 12.9 3.6s-6.7 4.9-8.3 19.6c-1 9-11 12.6-19 7.2-12.8-8.7-25.3-10-31.5 3-6.1 13.2-11 20.8-26 16.5a16 16 0 00-16.7 6.5c-4.4 6-11 .4-19 1 10-1.5 6.1-4 14.9-4.6 8-.5 5.9-8 11-9-20 5.1-19.3-2.4-35.8 2.8 7.2-9.3 18.6-4.1 24.2-9.5-14.9-.3-21.6-10-28.3-6-10.5 6.5-6 24.8-33.5 23.2-13.4-.7-21.9 1-29.8 9 13.9-28.8 32.8-13 42-22.1a68 68 0 0012.3-14.7 6.1 6.1 0 014-3.2c-22.9-7.2-9-18.5 13.4-19.3z"/>
+      <path stroke-linecap="round" d="M506.9 112c.3.8.5 1.8.5 3 0 5.6-8.5 5.8-9 14.2-.3 4.4-.8 6.8-3.7 6.3-3-.5-5.6-5.1-2.8-10.5"/>
+      <path d="M398 107.7a10.9 10.9 0 00-6.2-2.1m52.8-8.3c6.8 3 10.1 10 20 10.4 9.6.3 15.5 14.2 31.5 5.1a38 38 0 011.2-.6M468 99.7a12.7 12.7 0 00-1.4 8.2m-29.8 21c-12 0-15.2 6.1-15.2 12 0 6 5.7 13.7 15.7 13.7s15.5-6.2 15.5-12.9-6.2-12.9-16-12.9z"/>
+      <path d="M439 154.3c-.2-3.3-6.3-2.8-6-5.4.2-2.6 3.3-3.6 3.3-7.2s5.4-3.9 7.2-1c1.8 2.8 7.2 8.3 8.4 5.5m-8.4-5.5a9.9 9.9 0 00-.4 13.1m4.3-8.8c-1 2-1.2 5-.1 6.8"/>
+      <path fill="none" d="M495.5 135.6c9.5.8 11-9.7 4-10.3m-15.7-17.8c-3.2-4.2-10.8-5.6-11 3.2"/>
+      <path d="M472 120.8c-3.2-8-11.5-9.1-15.8-5.1-3.7 3.3-3.8 12 4 13.8 2.8-3.3 8-7.5 11.8-8.7zm-3.5-5c-4.7-4.1-11.5 3.7-5.3 10.8m-83 8.7c3.2-.7 7.7.8 14.7 4 4.3 2.1 17.5 6.5 25.7 2.1-8.5 3.1-15-9.7-21.4-8.2-6.4 1.6-18.2 4-23.1-.8 12 .8 18.5-8.8 32.4-.5a24 24 0 0013.1 3.6c-11.3-13.6-26.2-4.9-27.8-16 6.8 7.4 23.5-1.6 32 12.1m-29.5-10c-1.6-2-1-4-2.6-5.5"/>
+    </g>
+    <path stroke="none" d="M483.8 107.5c-2.8-3-9-.7-7.2 5.4a9.6 9.6 0 017.2-5.5zM466.3 124a21.1 21.1 0 015.7-3.2 12.4 12.4 0 00-3.8-5.2c-1.5-1-5.7 4.7-1.9 8.3z"/>
+    <path fill="none" stroke-linecap="round" stroke-width=".4" d="M458.7 113.5c-4.6-3.1-8.9-2.8-10.3-.3-3.3 0-6.1 2.4-6.2 7.2m7.1 2.1c-5.5-3.8-13.1-2.4-12.6 6.1m-3.4 4.9c2.7-2.2 6.6-3.8 9.6 0m31.8-8.4c-1 1.4-1.8 3.6-.1 7-2-2.8-7.2-2.8-12.8 4.4m25.1-11.8c-6.7.8-6.5 5.2-1.1 7m-46.5-23.4c-5.7-1.1-9.8 2.2-2 5m12.8-8.8c-8-2-11.2.1-7.6 2m-15.5 30c-.2 2.9 1.3 6.6 6 2.4m-4.4 6.1c0 .8-.1 1.7-.7 2.4m-17.9-40c-4.9-1.5-5.8-6 0-5.6m-1.6 16c-5.4-1.9-5.4-7.1-1-6.6m11 3.8c-6.3-1.5-6.5-5.9-1.8-5.2m2.6-8.2c-3.4-.2-8.5 3.5.1 5.7m9.3 1.8c-7.9-1.1-7.7 2-3.1 4.1m9-11.6c-6-1.1-8.1 2.5-4 4m-15 18.3c-1.5-1.2-2.7-7 4.3-5.3m10.3 3.5c-4.7-1.3-9.2 3.4-4.9 6m11.2-11.5c-5-1-9.2.5-6.5 2.3"/>
+    <path fill="#fff" stroke-width=".4" d="M483.6 107.5a9.6 9.6 0 00-7 5.4"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bv.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bv.svg
new file mode 100644
index 0000000..71d098a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bv.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bv" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="bv-a">
+      <path fill-opacity=".7" d="M0 0h640v480H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#bv-a)">
+    <path fill="#fff" d="M-28 0h699.7v512H-28z"/>
+    <path fill="#d72828" d="M-53-77.8h218.7v276.2H-53zM289.4-.6h381v199h-381zM-27.6 320h190.4v190.3H-27.6zm319.6 2.1h378.3v188.2H292z"/>
+    <path fill="#003897" d="M196.7-25.4H261v535.7h-64.5z"/>
+    <path fill="#003897" d="M-27.6 224.8h698v63.5h-698z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bw.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bw.svg
new file mode 100644
index 0000000..3d65eda
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bw.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-bw" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="#00cbff" d="M0 0h640v480H0z"/>
+    <path fill="#fff" d="M0 160h640v160H0z"/>
+    <path d="M0 186h640v108H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/by.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/by.svg
new file mode 100644
index 0000000..9566c6a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/by.svg
@@ -0,0 +1,20 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-by" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="by-a">
+      <path fill-opacity=".7" d="M0 0h682.6v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#by-a)" transform="scale(.9376 .9375)">
+    <path fill="#b20000" d="M0 0h1024v340.1H0z"/>
+    <path fill="#429f00" d="M0 340.1h1024V512H0z"/>
+    <path fill="#fff" d="M0 0h113.4v512H0z"/>
+    <g fill="#b20000" stroke-width="1pt">
+      <path d="M5.4 8.7h5.4v8.7H5.4zm16.2 0h16.2v8.7H21.6zM27 0h5.4v8.7H27zm27 0h5.4v8.7H54zm21.6 8.7h16.2v8.7H75.6zM81 0h5.4v8.7H81zM16.2 17.4H27V26H16.2zm16.2 0h10.8V26H32.4zm37.8 0H81V26H70.2zm16.2 0h10.8V26H86.4zM10.8 26h10.8v8.7H10.8zm27 0h10.8v8.7H37.8zm27 0h10.8v8.7H64.8zm27 0h10.8v8.7H91.8zm10.8-17.3h5.4v8.7h-5.4zm-97.2 26h10.8v8.7H5.4zm37.8 0H54v8.7H43.2zm54 0H108v8.7H97.2zm-86.4 26h10.8v8.7H10.8zm5.4 8.7H27v8.7H16.2zm21.6-8.6h10.8v8.6H37.8zm-5.4 8.6h10.8v8.7H32.4zm-10.8 8.7h16.2v8.7H21.6z"/>
+      <path d="M27 86.8h5.4v8.7H27zm37.8-26h10.8v8.6H64.8zm5.4 8.6H81v8.7H70.2zm21.6-8.6h10.8v8.6H91.8zm-5.4 8.6h10.8v8.7H86.4zm-10.8 8.7h16.2v8.7H75.6zm5.4 8.7h5.4v8.7H81zM54 78h5.4v8.7H54zM0 78h5.4v8.7H0zm108 0h5.4v8.7H108zm-81 43.4h5.4v8.7H27zm-5.4 8.8h16.2v8.6H21.6zm-5.4 8.6h27v8.7h-27zM81 121.5h5.4v8.7H81zm-5.4 8.7h16.2v8.6H75.6zm-5.4 8.6h27v8.7h-27zm5.4 43.4h27v8.7h-27zm-10.8-34.7h37.8v8.7H64.8zm-54 0h37.8v8.7H10.8zm5.4 43.4h16.2v8.7H16.2zm-5.4-8.7h27v8.7h-27zM86.4 165h27v8.7h-27zM81 191h16.2v8.7H81z"/>
+      <path d="M21.6 199.6H27v8.7h-5.4zm64.8 0h5.4v8.7h-5.4zM0 164.9h27v8.7H0zm48.6 17.3h16.2v8.7H48.6zM54 191h5.4v8.7H54zm-16.2-26h37.8v8.7H37.8zM59.4 34.7h10.8v8.7H59.4zm-10.8 8.7h16.2v8.7H48.6zm-5.4 8.7H54v8.6H43.2zm16.2 0h10.8v8.6H59.4zM0 43.4h10.8v8.7H0zm5.4 8.7h10.8v8.6H5.4zm97.2-8.7h10.8V52h-10.8zM97.2 52H108v8.6H97.2zM0 130h5.4v8.7H0zm108 0h5.4v8.7H108zm-59.4 69.5h16.2v8.7H48.6zm-5.4 8.7H54v8.6H43.2zm16.2 0h10.8v8.6H59.4zm-21.6 8.6h10.8v8.7H37.8zm27 0h10.8v8.7H64.8zm-32.4 8.7h10.8v8.7H32.4zm37.8 0H81v8.7H70.2zM27 234.3h10.8v8.7H27zm48.6 0h10.8v8.7H75.6zM16.2 243h16.2v8.7H16.2zm64.8 0h16.2v8.7H81zm10.8-8.7h10.8v8.7H91.8zm5.4-8.7H108v8.7H97.2zm5.4-8.7h10.8v8.7h-10.8zm-91.8 17.4h10.8v8.7H10.8zm-5.4-8.7h10.8v8.7H5.4zM0 217h10.8v8.7H0zm21.6 34.8H27v8.6h-5.4zm64.8 0h5.4v8.6h-5.4zm-32.4-26h5.4v8.6H54zm-16.2 26h5.4v8.6h-5.4zm32.4 0h5.4v8.6h-5.4zm-16.2 0h5.4v8.6H54zm-54 0h5.4v8.6H0zm108 0h5.4v8.6H108zM54 130.2h5.4v8.6H54zM27 43.4h5.4v8.7H27zm54 0h5.4v8.7H81zm-32.4 60.7h16.2v8.7H48.6zm-10.8 8.7H54v8.7H37.8zm5.4 8.7h5.4v8.7h-5.4zm-10.8-17.4h10.8v8.7H32.4zm5.4-8.6H54v8.6H37.8zm5.4-8.7h5.4v8.7h-5.4zm16.2 8.7h16.2v8.6H59.4zm5.4-8.7h5.4v8.7h-5.4zm5.4 17.3H81v8.7H70.2zm-10.8 8.7h16.2v8.7H59.4zm5.4 8.7h5.4v8.7h-5.4zm21.6-17.4h10.8v8.7H86.4zm5.4-8.6H108v8.6H91.8zm10.8 8.6h10.8v8.7h-10.8zm-10.8 8.7H108v8.7H91.8zm5.4 8.7h5.4v8.7h-5.4zm0-34.7h5.4v8.7h-5.4zM0 104h10.8v8.7H0zm5.4-8.6h16.2v8.6H5.4zm10.8 8.6H27v8.7H16.2zm-10.8 8.7h16.2v8.7H5.4z"/>
+      <path d="M10.8 121.5h5.4v8.7h-5.4zm0-34.7h5.4v8.7h-5.4zm-5.4 69.4H27v8.7H5.4zm27 0H54v8.7H32.4zm27 0H81v8.7H59.4zm27 0H108v8.7H86.4zm-43.2 17.4h27v8.6h-27zm-37.8 0h27v8.6h-27zm75.6 0h27v8.6H81zm27 34.7h5.4v8.6H108zm-108 0h5.4v8.6H0zm5.4 295h5.4v-8.6H5.4zm16.2 0h16.2v-8.6H21.6zM27 512h5.4v-8.7H27zm27 0h5.4v-8.7H54zm21.6-8.7h16.2v-8.7H75.6zM81 512h5.4v-8.7H81zm-64.8-17.4H27V486H16.2zm16.2 0h10.8V486H32.4zm37.8 0H81V486H70.2zm16.2 0h10.8V486H86.4zM37.8 486h10.8v-8.7H37.8zm27 0h10.8v-8.7H64.8zm27 0h10.8v-8.7H91.8zm10.8 17.3h5.4v-8.7h-5.4zm-97.2-26h10.8v-8.7H5.4zm37.8 0H54v-8.7H43.2zm54 0H108v-8.7H97.2zm-86.4-26h10.8v-8.7H10.8zm5.4-8.7H27v-8.7H16.2zm21.6 8.7h10.8v-8.7H37.8zm-5.4-8.7h10.8v-8.7H32.4zm-10.8-8.7h16.2v-8.7H21.6zm5.4-8.7h5.4v-8.6H27zm37.8 26h10.8v-8.6H64.8zm5.4-8.6H81v-8.7H70.2zm21.6 8.7h10.8v-8.7H91.8zm-5.4-8.7h10.8v-8.7H86.4zm-10.8-8.7h16.2v-8.7H75.6zm5.4-8.7h5.4v-8.6H81zM54 434h5.4v-8.7H54zm-54 0h5.4v-8.7H0zm108 0h5.4v-8.7H108zm-81-43.4h5.4v-8.7H27zm-5.4-8.8h16.2v-8.6H21.6zm-5.4-8.6h27v-8.7h-27zM81 390.5h5.4v-8.7H81z"/>
+      <path d="M75.6 381.8h16.2v-8.6H75.6zm-5.4-8.6h27v-8.7h-27zm5.4-43.4h27V321h-27zm-10.8 34.7h37.8v-8.7H64.8zm-54 0h37.8v-8.7H10.8zm5.4-43.4h16.2v-8.7H16.2zm-5.4 8.7h27V321h-27zM86.4 347h27v-8.7h-27zM81 321h16.2v-8.7H81zM0 347h27v-8.7H0zm48.6-17.3h16.2V321H48.6zM54 321h5.4v-8.7H54zm-16.2 26h37.8v-8.7H37.8zm21.6 130.2h10.8v-8.7H59.4zm-10.8-8.7h16.2V460H48.6zm-5.4-8.7H54v-8.7H43.2zm16.2 0h10.8v-8.7H59.4zM0 468.6h10.8V460H0zm5.4-8.7h10.8v-8.6H5.4zm97.2 8.7h10.8V460h-10.8zm-5.4-8.7H108v-8.6H97.2zM0 382h5.4v-8.7H0zm108 0h5.4v-8.7H108zm-64.8-78.2H54v-8.6H43.2zm16.2 0h10.8v-8.6H59.4zm-21.6-8.6h10.8v-8.7H37.8zm27 0h10.8v-8.7H64.8zm-32.4-8.7h10.8v-8.7H32.4zm37.8 0H81v-8.7H70.2zM27 277.7h10.8V269H27zm48.6 0h10.8V269H75.6zM16.2 269h16.2v-8.7H16.2zm64.8 0h16.2v-8.7H81zm10.8 8.7h10.8V269H91.8zm5.4 8.7H108v-8.7H97.2zm5.4 8.7h10.8v-8.7h-10.8zm-91.8-17.4h10.8V269H10.8zm-5.4 8.7h10.8v-8.7H5.4zM0 295h10.8v-8.7H0zm21.6-34.8H27v-8.6h-5.4zm32.4 26h5.4v-8.6H54zm0 95.5h5.4v-8.6H54zm-27 86.8h5.4V460H27zm54 0h5.4V460H81zM48.6 408h16.2v-8.7H48.6zm-10.8-8.7H54v-8.7H37.8zm5.4-8.7h5.4v-8.7h-5.4zM32.4 408h10.8v-8.7H32.4zm5.4 8.5H54V408H37.8zm5.4 8.7h5.4v-8.6h-5.4zm16.2-8.7h16.2V408H59.4zm5.4 8.7h5.4v-8.6h-5.4zm5.4-17.3H81v-8.7H70.2zm-10.8-8.7h16.2v-8.7H59.4zm5.4-8.7h5.4v-8.7h-5.4zM86.4 408h10.8v-8.7H86.4zm5.4 8.5H108V408H91.8zm10.8-8.6h10.8v-8.7h-10.8zm-10.8-8.7H108v-8.7H91.8zm5.4-8.7h5.4v-8.7h-5.4zm0 34.7h5.4v-8.6h-5.4zM0 408h10.8v-8.7H0zm5.4 8.5h16.2V408H5.4z"/>
+      <path d="M16.2 407.9H27v-8.7H16.2zm-10.8-8.7h16.2v-8.7H5.4zm5.4-8.7h5.4v-8.7h-5.4zm0 34.7h5.4v-8.6h-5.4zm-5.4-69.4H27v-8.7H5.4zm27 0H54v-8.7H32.4zm27 0H81v-8.7H59.4zm27 0H108v-8.7H86.4zm-43.2-17.4h27v-8.6h-27zm-37.8 0h27v-8.6h-27zm75.6 0h27v-8.6H81zm27-34.6h5.4V295H108zm-108 0h5.4V295H0zm48.6-43.5H54v8.7h-5.4zm10.8 0h5.4v8.7h-5.4zm0-17.3h5.4v8.7h-5.4zm-10.8 0H54v8.7h-5.4zM10.8 477.3h10.8v8.7H10.8zm75.6-164.9h5.4v-8.7h-5.4zm-64.8 0H27v-8.7h-5.4zm27-8.7h16.2v8.7H48.6z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bz.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bz.svg
new file mode 100644
index 0000000..6824957
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/bz.svg
@@ -0,0 +1,145 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-bz" viewBox="0 0 640 480">
+  <defs>
+    <radialGradient id="a">
+      <stop offset="0" stop-color="#ffef5d"/>
+      <stop offset="1" stop-color="#ea5700"/>
+    </radialGradient>
+    <radialGradient id="b">
+      <stop offset="0" stop-color="#952d1a"/>
+      <stop offset="1" stop-color="#570a00"/>
+    </radialGradient>
+    <radialGradient id="c" cx="247.1" cy="238.3" r="36" fx="247.1" fy="238.3" gradientTransform="scale(1.22624 .8155)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <radialGradient id="d" cx="322" cy="152.9" r="10.6" fx="322" fy="152.9" gradientTransform="scale(.93615 1.06821)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <radialGradient id="e" cx="364.2" cy="237.8" r="36" fx="364.2" fy="237.8" gradientTransform="scale(1.2242 .81686)" gradientUnits="userSpaceOnUse" xlink:href="#b"/>
+    <radialGradient id="f" cx="468.1" cy="156.1" r="10.7" fx="468.1" fy="156.1" gradientTransform="scale(.95596 1.04607)" gradientUnits="userSpaceOnUse" xlink:href="#b"/>
+  </defs>
+  <path fill="#ce1126" d="M0 0h640v480H0z"/>
+  <path fill="#003f87" d="M0 34.3h640v411.4H0z"/>
+  <circle cx="320" cy="240" r="188.6" fill="#fff"/>
+  <circle cx="320" cy="239" r="156.3" fill="none" stroke="#552300" stroke-width="3.9"/>
+  <path fill="#007f00" d="M302 73.2c14-15.2 26.9 2.3 26.5 10.6C328.2 92 314 110 301 95.5c13.4 3.4 17.4-11.5 24.1-11.7-6.7.2-9.5-14.6-23.2-10.6zm-147.2 119c-7.4-19.4 14-23 21.3-19 7.3 3.9 17.3 24.6-1.6 29.6 9-10.4-2.7-20.5.2-26.6-2.9 6-17.5 2-19.9 16zM471.9 173c19.4 7.6 7.6 25.8-.2 28.4-7.9 2.7-30-4-21-21.2 1.6 13.6 17 12 19.7 18.1-2.6-6.2 10.3-14 1.5-25.3zM218.8 377.4c-20.7-2-14.3-22.7-7.5-27.4 6.8-4.7 30-4.3 26 14.7-5.3-12.6-19.7-6.8-24-12 4.3 5.2-6 16.3 5.5 24.7zm209.3-15c.3 20.7-21.1 16.8-26.6 10.6-5.4-6.2-7.7-29 11.8-27.3-12 6.6-4.6 20.2-9.4 25 4.8-4.8 17.1 4 24.2-8.2zM170 153c-1.9-20.6 19.8-18.3 25.7-12.6 6 5.8 10 28.4-9.6 28.2 11.5-7.6 3-20.5 7.4-25.6-4.4 5-17.3-2.8-23.5 10zm22.2 193c-20.5-3.5-12.7-23.7-5.6-27.9 7-4.2 30.1-2.3 25 16.4-4.5-13-19.3-8-23.1-13.6 3.8 5.5-7.2 16 3.7 25zM354.3 74c18.6-9.2 24.3 11.7 21 19.3-3.2 7.5-23 19.4-29.8 1.3 11.2 7.9 20.3-4.7 26.7-2.4-6.4-2.3-3.7-17-17.9-18.2zM394 388.3c-9.3 18.5-26.5 5.3-28.5-2.7s6.5-29.3 23-19c-13.8.5-13.4 16-19.8 18 6.4-2 13.3 11.4 25.3 3.7zm90.5-178.7c15.6 13.7-1.7 26.8-10 26.7-8.2-.1-26.8-13.8-12.5-27-3 13.4 12 17 12.4 23.6-.3-6.7 14.5-9.8 10-23.3zm-263-108.8c4.7-20 24.5-11.2 28.4-3.9 3.8 7.3.5 30-18 23.8 13.3-3.7 9.3-18.6 15-22-5.7 3.4-15.5-8-25.4 2.1zm-61.6 172.5c-18.2-10-4.2-26.5 4-28.1 8-1.7 29.2 7.7 18 23.7.2-13.7-15.4-14-17.2-20.5 1.8 6.5-12 12.7-4.8 25zm263.6-159.6c20.6-3 19.4 18.7 14 24.8-5.5 6.2-28 11.4-28.9-8 8.2 11 20.8 1.9 26.2 6-5.4-4.1 1.9-17.3-11.3-22.8zM306.3 408.1c-19 8.4-23.8-12.7-20.3-20 3.6-7.5 23.9-18.6 30-.1-11-8.4-20.5 3.8-26.8 1.3 6.3 2.5 3 17.2 17.1 18.8zM476.8 293c8.6 18.8-12.6 23.7-20.1 20.2-7.5-3.5-18.8-23.6-.2-29.7-8.4 10.9 4 20.3 1.4 26.6 2.5-6.3 17.3-3 19-17.1zm-325.1-60.6c-12-17 8-25.7 16-23.6 8 2 22.8 19.8 5.7 29.2 6.2-12.3-7.6-19.3-6.3-25.9-1.3 6.6-16.5 6.1-15.4 20.2zM264 395.6c-19.6 7.1-23-14.2-18.9-21.4 4-7.2 25-16.9 29.9 2-10.3-9.1-20.7 2.4-26.8-.5 6 2.9 1.8 17.3 15.8 19.9zm-5.7-314c11.6-17.2 27-2 28 6.3.9 8.1-10.3 28.2-25.4 15.8 13.8 1.3 15.4-14 22-15.2-6.6 1.2-11.7-13-24.6-7zm200.2 252.1c1.3 20.6-20.3 17.7-26 11.7-5.8-5.9-9.1-28.6 10.4-27.8-11.7 7.2-3.6 20.4-8.2 25.4 4.6-5 17.3 3.3 23.8-9.3zm-5.3-194.4c20.4 4 12 24 4.7 28-7.2 4-30.2 1.3-24.4-17.2 4 13.1 19 8.7 22.6 14.4-3.6-5.7 7.7-15.7-3-25.2zm-258.4-14.6c.2-20.6 21.5-16.2 26.8-9.9 5.3 6.3 7 29.3-12.4 27 12.2-6.3 5-20 10-24.7-5 4.7-17-4.5-24.4 7.6zM169 311c-18.6-9.4-5.1-26.4 2.9-28.3 8-2 29.5 6.7 19 23-.4-13.7-16-13.4-18-19.8 2 6.4-11.6 13.1-4 25zM392 91c19.5-7.3 23 14 19 21.2-4 7.2-24.9 17.1-29.9-1.7 10.4 9 20.7-2.6 26.9.3-6.2-2.9-2-17.3-16-19.8zm-41.3 314.8c-15.2 14.2-26.7-4.1-25.8-12.3.9-8.2 16.3-25.3 28.2-9.9-13-4.3-18 10.4-24.9 10 6.8.4 8.5 15.3 22.5 12.2zm132.7-158c14.2 15.1-4.4 26.5-12.6 25.5-8.2-.9-25.4-16.3-9.8-28-4.4 13 10.3 18 10 24.7.3-6.7 15.4-8.4 12.4-22.2z"/>
+  <path fill="#005800" d="M301 95.5c13.4 3.4 16.7-11.3 23.5-11.5-4 4.7-14.2 16.7-23.5 11.5zm1-22.3c14-15.2 26.9 2.3 26.5 10.6-11.5-20-15-17-26.6-10.6zM174.4 202.8c9-10.4-2.8-19.9 0-26 2.6 5.6 8.9 20.1 0 26zm-19.7-10.7c-7.4-19.3 14-22.9 21.3-19-23.1 1.4-22 6-21.3 19zm295.9-11.8c1.6 13.5 16.7 11.3 19.3 17.5-5.9-2-21-7.1-19.3-17.6zm21.2-7.3c19.4 7.6 7.6 25.8-.3 28.4 14.7-17.8 10.5-20 .3-28.4zM237.3 364.7c-5.3-12.6-19.2-6.4-23.4-11.7 6.2.3 22 1.2 23.4 11.7zm-18.5 12.7c-20.7-2-14.3-22.7-7.5-27.4-9.2 21.1-4.6 22.1 7.5 27.4zm194.5-31.7c-12 6.6-4.2 19.6-9 24.3-.4-6-1.3-21.8 9-24.3zm14.8 16.7c.3 20.7-21.1 16.8-26.6 10.6 22.3 6.6 22.7 2 26.6-10.6zM186 168.4c11.5-7.5 2.7-19.8 7-25 1 6.1 3 21.8-7 25zM169.9 153c-1.9-20.6 19.8-18.3 25.7-12.6-22.7-4.9-22.8-.2-25.7 12.6zm41.5 181.5c-4.4-13-18.7-7.6-22.5-13.2 6.1.7 21.9 2.7 22.5 13.2zM192.1 346c-20.5-3.5-12.7-23.7-5.6-27.9-10.6 20.5-6 21.8 5.6 27.9zM345.4 94.6c11.3 7.9 19.7-4.7 26.1-2.5-5.4 3-19.3 10.6-26 2.5zm8.9-20.6c18.6-9.2 24.3 11.7 21 19.3-3.5-22.8-8-21.1-21-19.3zm34.2 292.6c-13.8.5-12.8 15.6-19.3 17.6 2.5-5.6 9-20 19.3-17.5zm5.5 21.7c-9.3 18.5-26.5 5.3-28.5-2.7 16.7 16 19.2 12 28.5 2.7zm68-179c-3.1 13.4 11.9 16.3 12.2 23-4.9-3.8-17.2-13.7-12.2-23zm22.5.3c15.6 13.7-1.7 26.8-10 26.7 19.9-12 16.7-15.4 10-26.7zm-252.6-89c13.3-3.6 8.8-18 14.6-21.5-1 6-4 21.5-14.6 21.6zm-10.4-19.8c4.7-20 24.5-11.2 28.4-3.9-20-11.7-21.6-7.2-28.4 4zm-39.5 168c.1-13.6-15.2-13.3-17-19.8 5.6 2.7 19.9 9.7 17 19.9zm-22 4.5c-18.3-10-4.3-26.5 3.9-28.1-16.8 15.9-13 18.6-4 28.1zm248.6-142.8c8.2 11 20.2 1.6 25.6 5.7-6.1 1.2-21.7 4.1-25.6-5.7zm14.9-16.8c20.6-3 19.4 18.7 14 24.8 3.7-22.7-1-22.5-14-24.8zM316 388c-11-8.4-19.9 3.9-26.1 1.4 5.5-2.8 19.7-9.8 26-1.4zm-9.7 20.1c-19 8.4-23.8-12.7-20.3-20 2.7 22.8 7.2 21.4 20.3 20zm150.2-124.7c-8.4 10.9 4 19.7 1.5 25.9-2.8-5.4-10-19.5-1.5-26zm20.3 9.5c8.6 18.8-12.6 23.7-20.1 20.2 23-2.8 21.6-7.2 20.1-20.2zm-303.3-55c6.2-12.3-7.7-18.6-6.4-25.2 3.8 4.8 13.5 17.3 6.4 25.2zm-21.8-5.7c-12-16.9 8-25.5 16-23.5-22.1 7-19.8 11-16 23.6zm123.3 144c-10.3-9.1-20 2.5-26.2-.4 5.7-2.4 20.4-8.5 26.2.3zm-11 19.4c-19.6 7.1-23-14.2-18.9-21.4 1.1 23 5.7 21.9 18.9 21.4zm-3-291.9c13.7 1.3 14.7-13.8 21.3-15-3.1 5.3-11.4 18.8-21.4 15zm-2.7-22.2c11.6-17.1 27-1.8 28 6.3-14.5-18-17.6-14.3-28-6.3zM443 317.6c-11.7 7.2-3.3 19.8-7.9 24.8-.7-6.1-2.3-21.8 8-24.8zm15.6 16.1c1.3 20.6-20.3 17.7-26 11.7 22.4 5.7 22.7 1 26-11.7zm-25-183.6c4 13.1 18.5 8.3 22.1 14-6-1-21.8-3.5-22-14zm19.7-10.8c20.4 4 12 24 4.7 28 11.3-20.1 6.8-21.6-4.7-28zm-244 2.6c12.2-6.4 4.7-19.6 9.6-24.2.3 6.1.8 21.9-9.6 24.2zm-14.4-17.2c.2-20.6 21.5-16.2 26.8-9.9-22-7.1-22.6-2.4-26.8 10zm-4 181c-.3-13.7-15.6-12.8-17.6-19.2 5.7 2.4 20.2 9 17.6 19.2zM169 311c-18.5-9.4-5-26.4 3-28.3-16.2 16.4-12.3 19-3 28.3zm212.2-200.4c10.4 9 20-2.8 26.2 0-5.7 2.6-20.3 8.7-26.2 0zM392 91c19.5-7.3 23 14 19 21.3-1.2-23-5.8-21.9-19-21.3zm-38.9 292.6c-13-4.3-17.4 10.2-24.2 10 4.3-4.5 15.4-15.8 24.2-10zm-2.4 22.2c-15.2 14.2-26.7-4.1-25.8-12.3 10 20.7 13.8 17.9 25.8 12.3zM461 245.3c-4.4 13 10.2 17.3 9.9 24-4.5-4.2-15.8-15.3-9.9-24zm22.4 2.5c14.2 15.1-4.4 26.5-12.6 25.5 21-9.9 18.1-13.6 12.6-25.5z"/>
+  <g fill="#730000" stroke="#000" stroke-width=".5">
+    <path d="M349 120.3s.6-1.3 1.7-.6c1 .8 1.3 4.2 1.3 4.2l-1.6.8s.9-1.3-1.3-4.4zm-8.8 30.7s.8-1-.3-3.4l1.5-.5s.6 1.8-.2 3.9h-1m27-5.4l-3.7 2.3 1.9.8 4.5-2.6-2.7-.5m-49.7 14.6c-1 .8-1 2.1-1.7 3-.4.7-2 1.8-2 3-.2 1.1-.3 1.9.2 3.5.6 1.5 3 8.5 2 13.7-1 5.3-.6 7.5-.3 8.3.4.8 1.6 3 2.3 3 1.6-.2.9-.7 1.5-1.7 1.4-2.5 0-22.2-.7-27.6-.5-4.2-2.5-8-2.7-8.4l-.8-2.6c-1.5-3.5-3.3-6.5-3.3-13.9 0 0-4.7 1.1-8.8-8.2-2.2-4.7-5.3-4.2-9-5.7l1.6-1.1s3.2 1.6 4.7 1.6c1.6 0 1-3.2 1-3.2l1.7-1.5v6.8c0 3.1 4.3 7.4 6.8 8.7 1.6.8 3.6-2.4 3.1-5.6-.5-3 0-7.3 0-7.3l2.2 1.3s-.8 1.3-.6 2.1c.3.8 1.3-.7 2.1-1.5 0 0 .2.2 1 .2l-2.3 4c-.8 1.2-.8 6.2-.8 8 0 2 .7 6.2.7 7.6 0 1 1.8 5 3.3 7.4l1.6 3.5c1.2 1.9 1.3 3.2 2 4.7.4.8 1 3 1.6 7l.7 7c.2 2.4 2.2.6 4.5-1 2.4-1.8 2.4-6 2.4-6s1.8-1.6 1.5-.7c-.2 1 1 2 1 2-1.4 3.3-.6 2.9.9 2.8 1.5-.2 6.5-4 6.5-4 .7-.2 3.8-.2 3.3 0-.6.3-1.4 1.7-1.4 1.7l3.3-.4c-1.1.9-5.5 3.4-6.5 4a90.6 90.6 0 01-8.6 4.1c-2.3 1-6.7 3.2-6.9 5.4 0 2.3.3 8.3 0 10.3l-1 10.6h-10.4s2-7.6 0-9.7c-2.1-2.1-7-8.4-10-10.5-3.2-2 2-.5 2-.5v-2.1l4.8 5.7s8.3-7.3 0-17.3c-2.6-3.1-5.3-7.9-7.3-8.4-2.2-.6-3.3-1-6.9 0-3.7 1.1-12.6 1.1-16.3-4.8l3.1-.5 2.7-1s-1.1 3.7 6.3 3.7 8.4 0 7.8-6.8l2.2-1.1 1.6 1.5s-1.1 3.8-.5 5.3c.5 1.6 3 2.7 5.1 4.2 1 .7 1.6.8 2.2.8.9-.1 1-.1 2.2-1.3 1.8-2 1.4-1.8 3.2-3.4l1-1.6 1.1 2.9z"/>
+    <path d="M319 155c.5-.4 1.2-1.9 2-3.1 1.1-2 2.5-3.2 4-5.6 1.5-2.2 2-5.6 1.5-7.9l1.4.8v3.7l2.7-2 .8.4s-5.9 6-11.3 15.9l-1-2.2zm-51.3-20.3c.8 1.4 1.6 4 3.9 6l1.6-.4s-3.6-4.2-3.6-6l-1.9.4m9.2-2.4s.5 5-.8 6.9l1.6-.8s1-3.4.7-5.3l-1.5-.7zm51.4-15.7s-.3 7 1.1 11.3l1.9-.5s-.3-1.3 1.2-1.9c1.6-.5 5.3-2 7.2-3.6l-.6-1.6s-2.8 2.3-4.2 2.9c-1.3.5-2 1-3.1.7-1.1-.3-2.4-2-1.6-6l-1.9-1.3m20.7 32.8s-.4 5-.2 7.2l1.7.4s-.4-6 .7-6.5l-2.2-1m7.5 3.7s-1.9 3.2-4 3.5l3.4-.7s1-.5 2.4-2l-1.8-.8"/>
+  </g>
+  <g fill="#289400" stroke="#030" stroke-width=".5">
+    <path d="M326.6 138.4l1.3.8 1.3.2 3.2 2.6c1.2 1 1.2-.2 1.2-.2l.8 3.1h1l-.2 3.2 1.8-1.6 2.2 1.9s1.5-1.4 2.3-1.4c.8 0 1.1-.8 1.1-.8h.1c-5.2-2.4-7.4-5-5.9-7.6 2.6-4.4 6.8-1.6 8.1-1l19 10.2s1.3-.8.4-1.6c-1-.8-1.4-2.7-1-3.5.2-.8 2.4 2.4 3.4 2.7l3.5.7v-1s3 2.2 3 3.3c0 0 2.3-1.2 1.5-1.9-.7-.7 3.5 1.7 3.7 3l1-1c-.2 0 .2-3.2 1.3-4.6a4.8 4.8 0 012-1.9s1-1.7 2-1.7c0 0-1-.6-1.4-1.4-.5-.8-1.6-1.2-1.6-1.2s1.4-1 1.8-1.5c.4-.6.8-.7.8-.7s-2.2-1.9-3.8-2.2c0 0-.1-2.5-2-2.7h.8s-1.4-2.8-2.8-2.8c0 0 .9-1 1.6-1.1 0 0-1.6-2.2-3.9-1.4l1.5-.6s-1-1.1-4.4-.6c0 0 .3-1.3-1.2-2.4 0 0-1.2 0-1.2 1 0 0-1.2-1-2.7-1-1.4 0 .5 1.6.5 1.6s-2-1.3-3.1-1c0 0 .5-2.2-.8-3.3 0 0-1.4.7-1.8 1.7l-.4-1s-2 2.4-2.4 1.7c-.3-.4-.6-2-.6-2l-1.1 1.7.2-2.4s-1.4.8-2.5 3.3c0 0-1.3 1.3-1.3 2.4 0 0-1.1-1.2-2 0-1 1.4 0 1.1 0 1.1s-.5.5-1.5.7l.2.8s-1.2-.7-2.2-.4l.5 1.2s-2.6.2-2.7-2c0 0-2.1-1-2.4.2l-1.6 1s-.5-1-1.3-1.2c-1-.3-.2 1.3-.2 1.3s-.3-1.2-1.5-1.8c-1.2-.5-.2 1-.2 1s-1.5-1.2-.8-2.2c0 0-1.4 1.4-.7 2.7l-1 .7s-.5-.5-.4-1c0-.3-1.7 1.3-1.7 1.3s-1-2.6 0-2.6c.1 0-1.8 0-2.1 2.2 0 0-1.3 0-2.5.4s1 1.3 1 1.3-2-.4-3 .2l.7.9s-.7-.7-2.4-.1c-1.7.5.4.8.4.8s-1.7-.4-2.6 0c-.9.4.3 1 .3 1s-3.2-1-3.7-.6c-.5.3 1 1.8 1 1.8s-2 .5-2.3 2l1.8.7s-.8.4-1.2 1.1c-.4.8 1.2.4 1.2.4s-2.2 1.6-2.2 2.8c0 0 1.6.5 2.7-.7 1.2-1.2.4-.8.4-.8l.1.8s2.3-1 2.3-1.6c0-.5-.4.8-.4.8l2.2-1.2 1.5 1z"/>
+    <path d="M324.7 108l-.5-2.2 5 .6.9-2s2.4 1 3.1 1.8c0 0 4.6-1.2 6-.7l-.6 2.1s4.2.3 5.6.8c1.2.5-.6 1.6-.6 1.6s4.8.6 6.8 1.8c2.2 1.3 2.2 2.4 1.1 2.7l2.6 4.2s-4.2.5-5 1.5c-.7 1.1-1.5-1-1.5-1l-.8 2.9s-2.6-1.4-3.7-2.4c0 0-1.3 1.6-.5 2.4l-4.8-3.1s-2-.3-2 1.5l-3-3.4-2.6.8s-.8-1-1.7-1.4c-1.1-.2-.3 1.4-.3 1.4l-1.6-1.9-1.6-1.8s-1.3 1.8-2.4 1.8c-1 0-1-1.2-.8-2.1.3-.8-3.1-1-3.4 0 0 0-1-4 2.6-5l3.7-1zm-19 13.3l-1.6 1.6-1-.5-1.9 2.1-.4-1.1-1 1.7-1.7-.6-.8 1.3-1.5-.3s-1.2 1.2-2 1.5c-.8.2 0-1.8 0-1.8s-1.2 2-2 2c-.9 0-.6-1-.6-1s-.5 1.4-1.4 1.6c-.9 0-.5-1-.5-1l-1.6 1.2v-1l-.7-.3s.4-1.8 1.1-2.2c.7-.4-.7-1.5-.7-1.5l.7-.8s-2-.5-2-.1c0 0 1-2.6 2.4-3.1l.1-3s1.4-1.1 2.6-1.2c1.4-.2-.4-2.3-.4-2.3l3.2-1.8.4-2.3 4.7.4 1-2 3.8 1 3.3-1.7 2.3 2.7 3.5.3v3.1s4.1 1.3 4.6 1.7c0 0-.8 2.5-.8 3 0 0 3-.8 3.8-.6l.4 3.4s5 1.6 5.3 2.5c0 0-1 .7-1.7 1.6 0 0 .6 3 .6 4l-.4.5s-1.4-1.3-2.6-1.5l-1 2.1-1.7-1.1h-1.1s-.9-1-1.6-1v-1l-1.4.9s-2.2-1.1-2.2-1.8l.1-1.5-2.2 1.5s-.5-1.1-.4-1.6c0-.5-.9 1.1-.9 1.1s-1.2-2-1-2.4l-.4 1.7s-2.3-.8-2.6-2.4z"/>
+    <path d="M274.5 130.9s4.1 2 4.1 3c0 0 1.1-2.1.5-3l1.6 1.1s.5-1.9-.1-2.5c-.5-.5 3.5-2.1 4.4.5 0 0 2.4-2.5-2.3-4.7 0 0-.4-1.6 2.5-1.2 0 0-.2-1-.9-1.3h2.7s-1.6-1.4-4-1.8c-2.4-.4-1-.7-1-1.2-.2-.5 0-2.2 0-2.2s-1.4-.5-2.5 0l.4-.4s-2.5-.7-3.5-.1c0 0-1.5-.6-1.3-2.1 0 0-1.5-.1-2.1 1.4 0 0-1.4 1.6-3.3 1.6-.3 0-1.7-.8-1.7-.8l-1.2 2.7H265l.5 1s-2.8-.8-3.7 0c0 0 1.1 1.7.8 2.8 0 0-2.2.4-2.7.8-.6.4.8.7.8.7s-2.6.8-3.2 1.6l1 .7-1.2 1.6 1 .2-2.5.8c-.9.3 1.5.5 1.5.5l-1.1 1 1.8.3s-1.4 4-1.5 5.8c0 0 2.2-2.7 2.8-3l-1.8 3s3.4-1 3.7-1.6l.5-1 .1 1.6s1.3-1.7 1.5-2.4c.1-.7 2 .7 2 .7v-1l2.4.7c.7 0 .8-.3.8-.3l1.6-.2-.3 1.4s1.2-.8 1.5-1.6c.2-.8.8 0 .8 0l.8-3.1h1.6zm-13.4 13.8l1.6 3.3c-1.3 0-3.1 1.5-3.1 1.5.3 5.4-1 5.1-1 5.1.3 1-.3 2.8-.3 2.8l7.7-4.6.1-.5 9.2-4.3.3.5 2.6-1.5 1.9 4.9-1.9 1c.1 1.7 2.1 4.6 2.1 4.6l2.4-.6 2.7-1v1c0-.3 2.9-1.3 2.9-1.3l1.3 1.3c1-.1 2.7-2.5 2.7-2.5l2 .8s.7-1.2.7-2 2.6-.8 2.6-.8l1.7 1.2 2.3-1.8s.7 1.3 1.6 1.5c1 .1 3.4 2 3.4 1.6 0-.4 1-2.5 1-2.5l4.1 1.6c-.5-1.8-2-4-2-4s2-1.6 1.7-2c-.4-.4-1.6 0-1.6 0l1.2-2.4h-1.6l.5-.6-2.5-1 1.3-2.8c-.6-.7-7.3-2-7.3-2l1.6-1.5s-.8-1.2-1.6-1.2-4.9.1-5-.3l-1.8-1.8-2.6 1.9-1.3-.4-2.2.8s0 1.3-.3.4c-.3-.8-2.3-2.8-2.3-2.8-.4.7-3 3.8-3 3.8s-.5 1.7-1.3.5c-1-1.2-3-2.4-3.4-1.5-.2 1.1-2.1 2-2.5 1.8-.4-.3-2.5-.1-2.7.5-.1.7-2.5 2.4-2.5 2.4-1.4-.7-3.8-.3-3.8-.3s-.7 1.1-.8 2l-4.7 1.2zm44.2 39.6v-2l2.3 1.5 1.4-1.5 1.8 1.7 1-1.7v2.8l2.7-2.3 1.5.6v-2.2s1.9-3.1 1.1-3.7l1.6-.5s-2.7-2.6-3.4-3.1c-.8-.6-1.9-.6-1.9-.6s-2-2-3.4-2.7c-1.3-.5-2 .6-2 .6s-.8-1.5-2.2-1.8c-1.3-.3-1.3 1-1.3 1s-1-1-2.2-1.4c-1.3-.6-.4 1.2-.4 1.2l-4.5-1.4.6 1.4-4.2-1.1.5 1.5-3-.5-.2 1.3-4.2.8.8 1.4-2.6-1.1v1.9l-3 1 1.1 1-4.7 2.4c-.7.5 1.6 1.6 1.6 1.6l-4.2-.6 1.6 1.4-3.7 3.4 2.6 1.9-1.6 2.3 4 .8 1.5 2.6 3.2-.6v3l4.7-3.7s3.4 3 3.7 2.1c.2-.8.2-3.4.2-3.4h1.7V187l1.2 1 2.2-3.1 2.8 3.9 2.2-5 3.1.5zm19.1-11.8l-.4-4.5-1.4 1.4.6-4.2-2.2-.4.8-4.1-1.6-.8.4-2 1.6-1.1 2.8-2.8 6.6.1.7-2.1 4.7.8c.8.8 3.3-1.8 3.3-1.8h1l1 2s3.4-.4 5 .6l-1.9 2.6 3.5.3 2.3.5 2.4-.8 3.2-.2.7 1.3h3l-1 1.1 3.8 1.8-.8.8s2.2.8 3.7.8h.8s.8 1.8-.3 2.6c0 0 1.1 2.6 3.4 3.1 2.4.5 2.4.5 2.7 1 .3.6 0 3.2-2.7 3.2v2.7s-2 1.8-2.3 2.6l-1.6-1s-1.3 1.5-1.3 2.5c0 0-3.5-4.5-4.7-4.7-1.4-.2-1 2.6-1 2.6l-3.8-3.1-.5 2.1-3.1-2.6-1.9 1.3-3.3-3.5-3.2.4 1.2-1.6h-3.9l-.7-3.4-.6 2.8-2.4-1.6-3 3.3s-.4-.4-.9-2c-.5-1.5-1.8 2-1.8 2l-1.1-2.5-1.3 2.4s-1-1.8-2.1-2.4c-1-.5-2 3-2.4 4.5zm.6 10.3l.2-1.6 5.6-2.2 4.7-1.7 2.3-1.1 1.1 1.9 1.4-2.7 2.1 2.8 1.2-1.5 1.8 1.4h1.6l.3 2s3.9.3 4.2-.5c.3-.8.8 2.7.8 2.7l3.7.5.8 4.2s1.8 3.9 1.2 5.4c-.5 1.7-2-2-2-2s-.3 2.9-.6 3.7c-.2.8-5-.8-5-.8l-2 3.9s-2.2-3.1-3.2-3.1-1 3.1-1 3.1l-4.5-5.3c-1.3-1.5-1.6 1.6-1.6 1.6s-2-3.4-2-4.4c0-1-1.9-2.2-1.9-2.2s-3.2 3.7-5.6 4.7c0 0 .3-2.3-.5-3-.7-.9-3 1.5-3 1.5s-1.7-3.6 0-7.4z"/>
+  </g>
+  <g fill="none" stroke="#004b00" stroke-width=".5">
+    <path d="M350.8 124.5l.5 2s1.8-.4 3-.3l-.7 2.2s2.3-.4 3.4.3l-.5 1.2 2.7 1.2-2.5 2s4 1.5 4.9 2.7c0 0-2.7 1.8-3 1.7-.5-.2-.2.8.5 1.7l-2.2-.1s.9 2 .8 2.8c-.2.8-3.8.6-3.8.6m14.1-5.3s.7-3.9-.4-4.9c0 0 2.5 2.2 4.2 2.3 1.8 0 0-3.2 0-3.2s2.3 1.2 3.5 1.5c1.2.2-.9-2.4-.9-2.4s.7-1.3 2.7-.1m-45.4-15.5s0-1-.3-1.4c-2.4-3.2 2.4 2.4 3.4 2.6m4.5 0s1.6 1.2 2.3 1.2c.8 0-.5-3.1-.9-3.5-.3-.4 2.9 1.3 4 1.4 1.2.3 1.4-2 1.4-2s3.6.7 4.4 1.2m-25-.7l-.5-3m-24.2 12.7c-.2-.3 1-2 .5-2.9 0 0 .7.6 1.4.7.6.1.4-2.2.4-2.2l.7.3s2-1 1.7-1.8c-.4-.8 1.4 1.2 1.4 1.2s1.1-1.2 1.1-1.7 1.4 1.2 1.4 1.2 1.5-.3 1.5-1.2c0-.9 1.8.3 1.8.3s.8-1 .7-1.8m-19.7 9.8s.9-2-.1-3.4m-23.6 9.8c0-1 .5-3.6 0-4-.4-.4 1 .4 2.2.7m9.3-.4c-1.2-1.1-1.9-1.7-3.7-1.7m-16.2 8.3c.3-.7.8-2.4.5-3.3m25 51.7l1.3-2.6 1.6 3.7 1-2.3.4.7 2.4-2.5 2.5 3.8m40.7-16.5l1.7-3.3 2.3 1.2 1-3.3 2.4 1.5 1.3-3 2.7.7.2-2.2s1.8 1 2.3 1.9c.6.7 0-2.7 0-2.7l2.2 1s1.5-1.6-.6-2.4"/>
+    <path d="M343.6 163.1l2.3 3.4 2-2.2 1.7 3.8 2.3-1.4 3.2 1.9 1.5-1.2 3.5 2.5 1.4-3 3.2 1 2-3.5m-84.4-9.2s1.4-2.3 1-3.4c-.7-1 2.8 1.8 2.8 1.8s.7-2.3.3-3.4c-.6-1 3.9 3.2 3.9 3.2s.7-3.7 0-4.4c-.8-.8 4.3 1 4.3 1s2-.6 1.2-1.6c-.8-1.1 3.4 1.5 3.4 1.5s1-2.6 0-3.6 3.2 1.3 3.2 1.3l-1.6-2.8 3.4.2-.3-3.2m30.3 45.1l2.2-1 2 2 2.2-3.5 2.6 2.5.4-2.5 2.8 1.2.6-1.6 3.1 1.7.3-2.4 1.6.5.3-1.5"/>
+  </g>
+  <path fill="#9dd7ff" d="M283.1 298.1a69.8 69.8 0 01-6-13l42.4-37.2 42.3 37.1a64.7 64.7 0 01-6.2 13.3l-.3.5-3.2-1.2s-1.4 1.3-2.5 1.4c-1.4.2-2.7-1.3-2.7-1.3s-1.8 1.6-3.7 1.3c-1.9-.2-2.6-1.4-2.6-1.4s-2 1.6-3.4 1.3c-1.2-.3-2.1-1.2-2.1-1.2s-1.2 1.5-2.8 1.2c-1.6-.3-3-1.2-3-1.2s-2.5 1-4 1.3c-1.6.3-3-1.4-3-1.4s-2 1.4-2.8 1.4c-.8 0-3.7-1.4-3.7-1.4s-3 1-4.1 1c-1 0-4-1.3-4-1.3s-2.9.8-4.1.8c-1.4 0-3.4-.8-3.4-.8s-2.3 1.1-3.6.8c-1.4-.3-2.4-.8-2.4-.8s-2.6 1.1-4.2.8c-1.6-.3-3.4-1.4-3.4-1.4s-.3.8-3.4 1.4"/>
+  <path fill="#fff" stroke="#000" stroke-width=".7" d="M319.5 205.1V248l-42.3 37.4a84.2 84.2 0 01-4.4-27.1V205h46.7"/>
+  <path fill="#ffd83c" stroke="#000" stroke-width=".7" d="M319.5 205.1V248l42.2 37.4a84.2 84.2 0 004.3-27.1V205h-46.5"/>
+  <g stroke="#000" stroke-width=".5">
+    <path fill="#730000" d="M292.2 289.2c3.2 1.7 2 1.2 8.7 3.5a61.8 61.8 0 0020.7 2.8c8 0 12.4-.7 15-1.4 2.5-.7 3.1-1.8 3.1-1.8l-6.5 6.7s-26.3 1.4-31-1.7c-2-1-6-4.2-10-8z"/>
+    <path fill="none" d="M330.8 276.8s8.4 4.8 0 14m-37.8-1l12-11.6-1.3 15.4m6.3 1.4v-25.8m20.8 25.8v-27.4m-10.5 27.9V266"/>
+    <path fill="#ff0018" d="M310 270.6l-5.4 1.7 5.4.6v-2.3m10.3-4l-5.8 2.1 5.8.2v-2.4m10.5 1.6l-5.8 2.2 5.8.3V268zm3.4 12.4c-.3-1.1 3.4-1 3.4-1s1 3.9 0 6.3l-3.1-.6s.3-2.6-.3-4.7z"/>
+    <g fill="#fff">
+      <path d="M294.8 288.1l10.3-10-.5 6s-5.3 3.5-5.3 5.9l-4.5-1.9m5.5 2.1s1-3.1 4-4.7l-.3 6.3-3.7-1.6zm14.7-17.3s4.2-.6 7.4 0c0 0-.5 4.2 0 5 0 0-5.8-1.4-8.1.8 0 0-.8-4 .7-5.8zm-8.9 1s4.2-.5 7.4 0c0 0-.8 4.8-.3 5.5 0 0-4.7-2.6-7-.4 0 0-1.6-3.3 0-5z"/>
+      <path d="M305.9 279.4s4.2-.4 7.3 0c0 0-.5 4.3 0 5 0 0-5.5-1.2-7.8.8 0 0-1.1-3.9.5-5.8zm8.4-.7s6-.8 9.1-.3c0 0-1.2 3.4.3 5.7 0 0-6.5-1.7-9 .3 0 0-2-3.9-.4-5.7zm-9 6.5l8.2.6s-.8 6-.3 6.7c0 0-6.6-1.5-7.8.6 0 0-2.2-5.4 0-7.9zm9.2 0s7-.5 10.3 0c0 0-1.9 4.5.2 8.4 0 0-9.2-2.6-10.5-.5 0 0-2.1-5.4 0-7.9zm10.8-12.3s4.2-.6 7.3 0c0 0-.5 4.2 0 5 0 0-5.8-1.4-8 .8 0 0-.9-4 .7-5.8zm0 5.8s4.2-.5 7.3 0c0 0-.5 4.2 0 5 0 0-5.8-1.3-8 .7 0 0-.9-3.9.7-5.7zm.5 6s4.2-.6 7.4 0c0 0-1 6.6-.6 7.4 0 0-4.8-2.3-7-.3 0 0-1.4-5.2.2-7z"/>
+      <path d="M334.5 285.2s1.3 5 3 5.6l-2.2 2.8s-2.9-2-3.2-4.4c0 0 1.9-2.1 2.4-4z"/>
+    </g>
+  </g>
+  <g stroke="#000" stroke-width=".6">
+    <path fill="#006ac8" stroke="none" d="M355.4 298.7a66.2 66.2 0 01-36 28.3 67.3 67.3 0 01-36.3-28.8h.1c3-.7 3.4-1.5 3.4-1.5s1.8 1.1 3.4 1.4c1.6.3 4.2-.8 4.2-.8s1 .5 2.4.8c1.3.3 3.6-.8 3.6-.8s2 .8 3.3.8c1.3 0 4.1-.8 4.1-.8s3 1.3 4 1.3c1.1 0 4.2-1 4.2-1s2.9 1.4 3.7 1.4c.7 0 2.8-1.4 2.8-1.4s1.4 1.7 3 1.4c1.5-.2 4-1.3 4-1.3s1.4.9 3 1.2c1.6.3 2.8-1.2 2.8-1.2s.9.9 2.1 1.2c1.4.3 3.3-1.3 3.3-1.3s.8 1.2 2.7 1.4c1.8.3 3.7-1.3 3.7-1.3s1.3 1.5 2.7 1.3c1.1-.1 2.5-1.4 2.5-1.4l3.3 1"/>
+    <path fill="none" stroke-width=".5" d="M353.7 301.2c-1.4.1-1.6-.8-1.6-.8s-2 1.6-3.8 1.3c-2-.3-2.9-1.5-2.9-1.5s-2 1.6-3.4 1.3a5 5 0 01-2.3-1.1s-1.3 1.4-3 1.1c-1.6-.2-3-1.1-3-1.1s-2.7 1-4.4 1.3c-1.6.3-3-1.5-3-1.5s-3.8 1.2-4.6 1.2c-.9 0-3.6-1.2-3.6-1.2s-1.9 1.1-3 1.1-4.2-1.3-4.2-1.3-3 .8-4.3.8c-1.4 0-3.5-.8-3.5-.8s-2.5 1-3.9.8l-2.4-.8s-2.7 1-4.4.8c-1.6-.4-3.6-1.4-3.6-1.4s-.3.7-3.5 1.4h-.1"/>
+    <path fill="#5ac800" d="M293.1 305.2s-.3.7-2.8 1.2l-.7.2.6-.2-.7.3a44 44 0 0011.7 11c4.5 3 9.6 6.6 18.4 9.2a71 71 0 0017.8-9c6-4.5 9.2-7.2 12.6-11.7-2.7 1.5-2.3 1.5-3.7 1.3-1.3-.3-2.3-1.3-2.3-1.3s-1.3 1.5-3 1.3c-1.6-.3-3-1.3-3-1.3s-2.2 1.5-4.4 1.4c-1.6-.1-3-1.6-3-1.6s-3.8 1.3-4.6 1.3c-.9 0-3.6-1.3-3.6-1.3s-1.9 1.2-3 1.2-4.2-1.4-4.2-1.4-3 .8-4.3.8-3.4-.8-3.4-.8-2.5 1-4 .8c-1.3-.3-2.4-.8-2.4-.8s-2.7 1-4.4.8c-1.6-.3-3.6-1.4-3.6-1.4z"/>
+    <path fill="#ffd800" d="M319.6 326.9a89 89 0 0017.1-8.6c-1 0-4-1-2.9-1.2 0 0-1.2 1-2.3 1-1.1 0-4.2-1.3-4.2-1.3s-3 .7-4.3.7c-1.4 0-3.4-.7-3.4-.7s-2.6 1-4 .7l-2.4-.7s-2.8 1-4.4.7c-1.6-.3-3.6-1.3-3.6-1.3s-2.4 1.3-4 1.4a55 55 0 0018.4 9.3z"/>
+  </g>
+  <g stroke="#000" stroke-width=".5">
+    <path fill="#b34b00" d="M313.2 249c1.9-1.6 3-3 2.3-4.2-.7-1-1.8.6-3 .2 0 0-2-1.1-2.5-2-1-1.2-2.5-2.3-3.3-3.4-.9-1-4.2-5.3-9.1-10.3-1.5-.9-1.1-4.4-2.2-5.5 0-.8-10-10.6-13.4-14-1.5-1.1-2.2-1.8-4.7.5-2 1.7-2.7 3.6-.1 5.8l12.8 11.7c1.9 1.8 4.5 2.1 5.6 3l13 13.4c1.7 1.4 2.5 2.4 1.5 3.6-1 2 .1 2.3.3 2.3.2.1 1.1.1 1.7-.4l1-.7z"/>
+    <path fill="none" d="M280.7 214l13.4 13.2"/>
+    <path fill="#fff" stroke-width=".6" d="M298.8 220l1.1-2.5c.2-.4 3.8-6.2 5.6-6.3l11.3 8.2c0 .5-5 7.8-5.3 7.2 0 0-13.2-5.5-12.7-6.6z"/>
+    <path fill="#ccb8c8" stroke="none" d="M306 222c-1.6-1.2-4.1-2.4-6.2-3.8l-.9 2c.7.8 10 5.1 11.6 6 0 0-1.8-2-4.6-4.2z"/>
+    <path fill="none" stroke-width=".4" d="M299.8 218a73 73 0 005 3.1c2.7 2 4.4 4 6.4 5.2"/>
+    <path fill="#782121" d="M277.1 253l25.5-31.7c.5-.4 2.9-.4 3.2 2l-24.2 33s-2.7-.3-4.5-3.4z"/>
+    <path fill="#730000" d="M362.7 253.3c-1 .7-2.4.8-2.4.8-1.7-1.9-3-4-5.4-6.5l-25.5-31.3 2.7-2.6 23 26.9c.6.7 4.6 4.9 8.4 9.8 0 0 .3 2-.8 2.9z"/>
+    <path fill="#fff" d="M338.1 220.3l-4-5s-3.2.5-3.8 2.1c0 0-2.2 3.7-8.2 4.1 0 0 1.7 7 8.6 10.7 0 0 2.5-7.2 5-8.4 0 0 2.5-1.9 2.4-3.6z"/>
+    <path fill="#730000" d="M327.9 242c-.6-.3-1.2 0-2 .4-.9.5-1.8.3-1.7-.7 0-.8 0-.7 1-1.4a6.3 6.3 0 015-.5l-2.3 2.1m27.8-27.7c-.2-.7-.4-1.4.3-2.2.7-.8.7-2.2-1-1.5-1.7.7-2.2 2.5-.9 5.4l1.6-1.7z"/>
+    <path fill="#fff" d="M327.3 242.5l28.9-28.7 7.1 7.6s-1.5-.6-2-.2c-.5.4.5 1.9.5 1.9s-1.3-.5-1.9-.1c-.7.4 0 2 0 2s-1.2-.8-1.8-.5c-.5.4 0 2.3 0 2.3s-1.5-.5-2-.1c-.3.4 0 2 0 2s-1.5-.7-2.3 0 .4 1.9.4 1.9-2-.8-2.7.4c-.8 1.2.1 2.2.1 2.2s-1.6-.7-2-.4c-.4.4 0 2.3 0 2.3s-1.3-.8-2.2.2c-.9 1 .1 2 .1 2s-1.3-.8-2-.4c-.6.4.2 2.2.2 2.2s-1.2-.9-2.1 0c-.9 1 0 2 0 2s-1-1-2.2 0c-1 1 0 2.1 0 2.1s-1.5-.8-2.1 0c-.7.8.2 1.9.2 1.9s-1.2-.7-2-.3c-.7.4 0 2.1 0 2.1s-1.1-1.3-1.6-.6c-.6.7 0 2.4 0 2.4s-1-1.3-1.6-.6c-.7.6.4 2 .4 2s-2-.8-1.5-.8z"/>
+    <path fill="#7e4b7e" stroke="none" d="M354.5 216.2l-2.2 2.2.5 7.7s.5-2.2 1.1-.7c0 0 .2-1.8.7-1.5-.4-.2 0-7.8 0-7.8m-4.3 4.3l-1.6 1.5.6 7.7s.4-2.9 1.1-.6v-8.6m-17.6 17.2l-1.5 1.7.4 4.7s.5-3 1.1-.7l-.2-2.6.2-3"/>
+    <g fill="none" stroke="#7e4b7e" stroke-width=".9">
+      <path d="M330.9 218.3c1 1 4 5 4 5m-2.6-2.9c-.2.6-.6 2.3-1.5 3.2m2-2.8c-.2.4-.2 1.7-1.5 3m2-2.4c-.3.7-.4 1.2-.8 1.7m1-1c0 .4-.3.5-.4.8m-3.2-2.7a29 29 0 01-4.8 2.8m4-1.8a14 14 0 01-3.1 2.2m2.8-1c-.5.4-1.5 1.4-2.3 1.7m1.8-.5c-.4.5-1 .8-1.5 1.1"/>
+      <path stroke-linecap="square" d="M311.3 224.7c.3-.6.9-1.8 1.6-2.8 1-1.4 1.3-1.6 1.8-2"/>
+    </g>
+  </g>
+  <path fill="#289400" stroke="#060" stroke-width=".5" d="M217 303.4c1.5.7 0-4.8.5-6.8.6-2.2 4.8 5.2 6.8 6.2 2.2 1 15.3-5.2 15.3-5.2l3.1-5.8 1.7 4.8s3.6-4.2 4.6-5.8c1.1-1.6 0 3.1-1 4.7-1.1 1.5 3.1 2.1 2.6 5.3-.5 3 4.2-2.2 4.2-2.2l12.1 1s2-7.3 5.3-11.5l1 4.8 5-5.1a65.9 65.9 0 0041.3 39.2 66.6 66.6 0 0040.2-36.6l6.7 7s5.3-1.6 6.3-2.2a70.3 70.3 0 0115.5 5.6c1 .7.3-3.5.3-3.5s5.8 1.1 5.3 4.2c0 0 1.2-2.9 2.3-3.4 1.1-.5 3.6 2.7 4.2 3.7.5 1 13 2.6 14.7 3.6 0 0 1.3 1.6 1.3 2.7 0 0 2.7-.3 4.7-.3 0 0-1.5.8-1.5 2.4 0 1.6-.8 2.9-2.4 3.6-1.5.8 0 1.4 2 1.6 2.2.3 0 3-4.1 4.5 0 0-1 2.3.8 3.1 0 0-3.7.3-4.2-.8 0 0-1.3 2.5-1.3 3.8 0 0-4-1.3-5-1.9 0 0-1.6 1.6-.5 2.3 0 0-7.1-.7-8.5-3.4 0 0-2.5.8-2 1.7 0 0-5-3.4-6.6-3.4l-1 1.7s-3.5-2-4.5-2-.2 1.5-.2 1.5l-4.8-2.9-1.9 3-5-2.7c-1-.8-1.2 1.6-2 1.9 0 0-1.6-2.2-3.7-1.9 0 0-.8 2.6-.5 3.4l-7.1-1.5c-1.1-.3-.5 1.2 0 2.3 0 0-4.5-1.3-5.5-2l-.3 2s-3.7-.3-4.5-1l-2.3 3.1h-3.5l-.7 2.9s-6.6-1.9-7.2-.8c-.5 1 .3 2.6.3 2.6l-5.7-.7-.5 2.3s-6.7-2-8.2-1c0 0-2 2-3.4 2.6-1.3.5 0-.8 0-.8l-2-2.9s-2.4 1.3-3.8.8c-1.3-.6-5.5 2-6.8 1.3 0 0 0-1.9-1.1-2.4-1-.4-2.8-.4-3.6.8l-2.2-3c-1.2-2.2-3.1.1-3.1.1l-.3-2.5-3.6-.3c-2.2-.3-2.6-2.2-2.6-2.2s-5.6.6-6.4.3l1.4-1.3s-7.6 1.6-9.2 1c-1.7-.5 1.8-2.6 1.8-2.6l-8.4-2c-1.3-.4-9 1.2-10 1.2s-1.6-1.8-1.6-1.8-1.8 1.6-3.4 2.1c0 0-1.3-3.1-.5-3.4 0 0-5 1.3-5.3 2.6 0 0-1.2-2-1-3 0 0-2.4 3.8-3.5 4.6-1 .8-.2-1.9-.2-1.9s-2.9 3.7-4 4v-2.6s-8.4 4.5-10.7 3.9c0 0 0-1.9.8-2.4l-5.3-.2c-1.3-.2-2.8-.8-4.2-1.1-1.3-.2 1.9-1.6 4-1 0 0-5.8-2.1-7.6-1 0 0-.8-2.2 2.3-3 0 0-4-3.9-6.3-3.6 0 0 2.6-1.6 4.8-.8 0 0-2.5-6.6-4-7.4 0 0 5.5-1 7.1-.2z"/>
+  <path fill="#730000" stroke="#000" stroke-width=".5" d="M208.9 188.8L280 152c.3-2-.7-3.4-1.9-5-20.3 10-38.8 22.2-61.4 29.5-1.3.5-12.5 5.2-18.3 12.1a7.7 7.7 0 00-2 4.5s.2 3.1.9 4c0 0 .1.8 1.2 1.5 0 0 .7.3 1.1.2.5 0 1.4 0 2.6-2a52.4 52.4 0 016.7-8z"/>
+  <path fill="#fff" stroke="#000" stroke-width=".5" d="M266.1 152.4l9.2-4.4s3.1 2.3 2.8 5c0 0 .7 6 8.2 10.2 0 0-6.3 8-17.4 8.6 0 0 1.2-10.4-1.1-13.5 0 0-.4.4-.2-.1.3-1-.2-4.5-1.7-5.3l.2-.5z"/>
+  <path fill="none" stroke="#7e4b7e" stroke-width=".8" d="M276.9 153.6c-2 .8-8.3 4.1-8.3 4.1m5.2-2.1c0 1-.6 3.3 0 5m-.8-4.7c0 .5-.8 2.2 0 4.6m-1-4.1c-.2 1-.4 1.5 0 2.6m-.8-2c-.2.5 0 .8 0 1.2m5.8-1.5c.3.7 2.9 4.8 4.5 6.5m-4.1-4.7c.3.8 1.7 3.6 2.8 4.7m-3-3c.4 1 1.1 2.7 2 3.7m-2-1.8a8 8 0 001.1 2.5"/>
+  <g stroke="#000" stroke-width=".5">
+    <path fill="#b34b00" d="M342.3 148.3l26.1 12.8c5.2 2.5 7.1.2 10 1.5l51.6 26.2c4.5 2 7 2.5 6.3 4.8-.1 3.7 1.7 3.7 2.2 3.8.4 0 2.1-.2 2.8-1.2l.6-.6c.6-.6.5-.7.7-1 2.1-3 3.3-5.8 1-7.5-2.5-1.3-2.8 1.5-5.6 1.2 0 0-4.8-1.8-6.6-3.1-3.2-1.8-7.8-3.9-8.8-5-3.3-.6-28-14.6-42.1-21.6-1.5-1.2-2.3-5.9-5.3-7.4-.8-1.3-19.8-10-29.8-15-3.6-1.3-5.7-2.2-8.3 2.3-2.3 4.4-1.8 6.8 5.2 9.8z"/>
+    <path fill="none" d="M344.5 142.8l29.2 14.6"/>
+  </g>
+  <g fill="#ffa54b" stroke="#000" stroke-width=".5" transform="translate(-40) scale(.96)">
+    <path fill="url(#c)" d="M309.7 165.1c-.2.6-.7.2-.7.4-.4 2.2-.3 3.3-.8 4.5a7.1 7.1 0 01-3.1 2.6c-2 .7-4.5 3.1-8.5.9l-.6-.5s1.1 4.1-3 6.2l-15.7 8.2s-1.5 2.8-.5 6.5c0 .6.3 1.1-.3 1.5-1 .7-2.7 2.8-3.7 6 0 0-3-1.3-3-3.2 0-2 1.2-3 1.5-4.4.3-1.3 1-4.7.7-5.7-.4-1.1-2.3-1.5-3-2-.6-.3-1.4.5-1.3 1.4.1 1 .8.8 1.6 1 0 0-.9 2-.8 3.4l-9.2 4.8 1.6 2.3c.4.7 1.3 10.2 4 14.7s3.7 3.2 4.3 3.8l2 2c.8.5 4 .8 4.5-1a9 9 0 013.2-4.1c2-1.6 6-5.4 6-7.2 0 0 2.3 6.8 2 12.4 0 0 8.5 1.7 16.1 1.9 7.6 0 11.5-1.5 11.5-1.5s1-6.4.6-7.7c0 0 1.2 4.2 2.2 5.6 1 1.8 2.1 5.3 4.3 5.5 2.2.1 4-2.1 4.2-3v-6.8h8.7s3.8 1.5 5 1.3c1.3-.1 2-1.3.8-1.7l-.4-.3c1.2 0 2.6.7 2.6.7h4.3l-.1-.5c-.3-1.2-2.6-2.2-4.2-3-1.6-.5-3.5-1.2-4.7-1.3a20 20 0 00-6.2.4c-.8 0-3.9.4-5.8 1.3-.5.3-1 .4-.8-1 .3-1.3.2-7.8-1.3-10.5-1.2-2-1-3.6-.9-5.2a87 87 0 000-8.8c-.3-1.7-2.5-4-6.6-4.4-3.8-.5-7-3.7-7.3-6.2-.3-2.6.4-7.2.8-9.3"/>
+    <g fill="none">
+      <path fill="url(#d)" d="M292.4 153.6c-.7 3.3-.7 6.1-.6 9.3.1 2.1 1.1 4.6 2 6.7a10 10 0 002.8 3.9c3.6 2.3 7-.2 8.9-1a6.4 6.4 0 002.7-2.5c.5-1.2.3-2.1.8-4.5l.7-.4c1-1.5.7-2 1.2-3 .6-1-.5-2.2-1.8-2 .6-1.9 1-4 .4-5.9-.2-.6.5-2.2-.6-1.8-4.6 1.8-10 1.4-14.8 1.4-.4 0-.8-.8-1.4-.7l-.3.5"/>
+      <path fill="#000" d="M292 155.3c-.5-.4-.6-1.3 0-3.2.7-2 0-2 1.1-3.2s.9-1.6 1.6-1.9c.7-.2 2.8-.2 3.5-.5a11 11 0 019-.3c1.5.8 2.5 2.8 3.4 3.6 1 .7 1.7 3.6 1.5 7.9-.3 4.3-1.2 3.5-1.2 3.5s-1.2-2-2.2-.3c0 0 0-1.7.2-3 .1-1.1-.6-3.4.1-4.9 0 0-5.8 1.8-8.7 1.7-3-.2-7.4-.9-7.6-1.6l-.7 2.2"/>
+      <path fill="#fff" stroke="#fff" d="M295 151.8c-.3-.6-1.8-2.9-.6-3.6 1-.6.4 2.8 2 3.5 0 0-.6 1.5-1.4.1z"/>
+      <path d="M298.3 160.1l-.9 3.2m10.6 1.6c.2.6.4.3 1 .4m.3-4c.5-.5 1.2-.2.8 1.3m-17.7-4.9l2.8 1c1.5.6.6 2.9.2 4.3-.2.7-1 2-.6 2.5.5.8 1.1.3 2 .4 0-.3.6-.5.8-.5.7 0 1.1.5 1.7.3.6-.3.5-1.2.3-1.7m-.1-4.5c0-.4 1-.8 1.5-.9 2.1-.4 3.6-.7 5.4.5m-5.7 11.1c-1.8.4-3.6.7-5.2-.2m0-.8c.8-.4 1.1-.8 2.1-.3a5 5 0 011.1-.4c.8 0 1.4.3 2.2.8m-5.5.3c1-.3 3.3-.3 5.4.1"/>
+      <path fill="#fff" stroke-width=".3" d="M292.3 160.1c.7 0 1.6-.9 3.2.3 1.1.8-1.8 1.5-1.3 1.4-1.4.2-1.8-.5-1.9-1.2 0-.1-.2-.5 0-.5zm8.4.8c.7-1.4 1.8-1 2.8-.8 1 .3.7.1 1.7.7-1.2.1-.9.2-1.7.6-.9.5-1.7.7-2.3.3-.2-.2-.7-.5-.7-1 0 .2 0 .3.2.3z"/>
+      <path fill="#000" stroke-width=".3" d="M293.8 161.4c.4 0 .7-.4.7-.8 0-.6-.3-1-.7-1-.5 0-.9.4-.9 1 0 .4.4.8.9.8zm8.6.2c.4 0 .7-.4.7-1a.8.8 0 00-.8-.8c-.4 0-.7.3-.7.8 0 .6.4 1 .8 1z"/>
+    </g>
+    <g id="g">
+      <g fill="none">
+        <path d="M345.9 213.7a3.9 3.9 0 00-1.9-1.4l-2-1c-.7-.4-1.7-.5-2.4-.9m.5 2.6l-.9-.5c-.3 0-.7 0-1-.2 0 0 0-.2-.2-.2a3.5 3.5 0 01-2.4-1.3m-62.8-9.3c1 .7 3.2 2.2 3.4 5.1a10.5 10.5 0 001 3M264 202c.5 1.7.6 7.4 6 13.4m-5-21.4c-.4 1.1-1 2.2.2 3m14.4 10.7c1.1-2.6 4.6-2.4 4.6-4.8"/>
+        <path d="M284.8 207.3c-.3-2.9-1-4.5-.4-8.7.2-1.2.4-5.9 0-8.1 0 0 1.6 7.8-3.7 9.3m34.4 12.5c0-4 1-6.2 1-6.2 1.2-5.6-1.2-7.7-.3-9.1.9-1.2 2-3.8.5-8.9 0 0 2.8 10.5-4.5 10.5-7.5 0-7.2-2.7-7.2-2.7"/>
+        <path d="M284.4 190.5c0 2 0 8.4 9 8.4 2.8 0 5.8-2 7.4-3.3m2.2-2.7c-.3-2-.3-4.4-.3-7m-13.6-3.4c2.4-.3 4.4-.6 9-.6m.2-6.3c.5 2.2-.3 5.8 4 6.3m4.3-7.1c-.6 1.6-.6 3.3-.8 4.4m.2 2.7c1.7 0 5-1.1 9-.3m1.4 22.8c.9 1.6 1 3.8 3.6 6.2m-31.7-11.4c.2 1.3-1.8 5.7-.3 9.3a12.3 12.3 0 01-1.2 11m6.7-19c-.9 1.7-2.3 3.3-2.6 4.7m6.6-1.6c0 1-2.7 8.7-4.7 10.9 0 0 3.6 1.4 3 6.6m7.4-21c0 1.2-.2 1.6 1 2.4m2.4 0c1.3 1.6 5.5 6.5 4.6 9.2m-7.4-6.5c.3 1 .3 6.3-.6 9m-2.1-.2c-1.1 0-2.8.8-3 2.7m8.7-3c1.1-.3 3.3 1.6 3.3 7m15.7-10.2c-2.1.6-3 1.7-2.4 1.1-1.1 1-2.2 1.6-2.2 1.6"/>
+      </g>
+      <path fill="#000" stroke-width=".3" d="M289.8 198c.6 0 1.1-.4 1.1-1 0-.3-.5-.7-1.1-.7-.5 0-1 .4-1 .8 0 .5.5.9 1 .9zm23 .3c.6 0 1.1-.4 1.1-1 0-.4-.5-.7-1-.7-.6 0-1.1.3-1.1.8s.5.9 1 .9z"/>
+      <path fill="#fff" d="M280.5 239.8c1.3-8 5-14.5 5.1-15.2 0 0 3.9.9 10.6 1.5 6.6.7 8.4.4 11.5.2l6.8-.8s1.2 2.4 1.3 4.8c.3 5.2 2.3 27.7 2.5 33.7 0 0 .8 3.6.8 12.3 0 9.6 2.6 29 2.6 39.4l-2.6.5s-14.5 1.1-14.5-.8c0-2.1-.8-27 1.4-42.1 0 0-.5-3-1.4-5.5-.8-2.5-4.3-10-4.3-11.7 0 0-5.7 16-6 18.8-.3 2.6-1.2 38.4-1.7 41.3 0 0-8.2 6.3-9.3 7-1.1.4-9-3.4-9.3-4.4a211 211 0 014.6-33.2c1.4-7.1.6-8.4.6-10.4s.1-27.5 1.3-35.4z"/>
+      <path fill="none" d="M294.3 275c-.6 2.2-1.7 4.3-3.6 5.7m-2.7-53.6c-.3 1.3-2.3 7.3-7.2 10.9m14.3-9.8c-1.1 3.6-5.5 22.7-6.3 45.4m-.3 7.1l-1.7 20.8m-.8 3a71.3 71.3 0 00-2.7 18.7m32.2-36c-.2 2-1 15.7 3.6 28m-18.5-86c-.3 2.3-.8 16.7-.8 17.8 0 1.2 1.6 2.8 2.4 3 0 0-1.6.6-2 6m-4-12.8c-.3 1.7-2 8.5-3 11.3m13-25.5s5 1 5.3 0c0 0 1.6 29.5 3.8 46m-11.2-42.2l-.6 16.5m2.5 2.1s1.9 2.8 1.4 4m-17.8-28l3 .8m5.2 1.6c-.3.9-.6 4.6-.6 4.6m8.8 38.9c.6.8 1.4 2 .8 4.4"/>
+      <path fill="#9b5f00" d="M285 224.4s0-3.2 1.1-4.8c0 0 3.5.7 8.4 1.2 5 .5 9 .9 12.6.5 3.7-.4 7.4-1.3 7.4-1.3s1 4.8.5 5.5c0 0-4 .8-8.3 1a86 86 0 01-14.5-.8 57 57 0 01-7.3-1.3z"/>
+      <path fill="#fff" d="M288 224.8l.7-4.8h1l-.2 5.1-1.4-.2m22-4.1l.1 5.5 1.3-.2-.1-5.6-1.3.3m-15.6 0l-.4 5.3h.7l.7-5.3h-1"/>
+      <path d="M276.8 320.8c-.3 1.3-.8 3.2-1 5.5 0 .5-.6 3.3 1 3.4 1 0 1.4-2.9 1.4-2.9s-1 3.3.3 3.7c1.8.4 2-3.6 2-3.6-.2 1.1-1.4 4 .3 4.3 1.9.3 2.4-3.9 2.4-3.9s-1.6 4.2.3 4.3c1.7 0 1.7-4 1.7-4s-.9 5 1.5 4.5c1.4-.2 1.7-2 2-3 .4-1.5 1.3-3.4.2-6.6-.8-2.3-.5-3-.5-3s-2.9 2.2-5.1 3.6c-1 .6-6.5-2.3-6.5-2.3zm29.7-4.4c-.5-.3-.4 1.9-.6 2.9-.1 1 .2 3.2 3.6 3 3.4-.3 6.7-1 8.9-.5 2.1.6 5.3.7 7 .7 1.7 0 2.8-.2 3.7-.5.7-.3 2.2.4 3 .4s1.7-1 1.6-1.8c0-1.3-1.3-1.3-3-1.4a22 22 0 01-5-1c-1.1-.3-3.1-1.5-5.7-2l-5.9.2c-1 0-7 .3-7.6 0z"/>
+    </g>
+    <g fill="none">
+      <path fill="#ffb366" d="M255.7 189.8c-.5.3-1.1-2 .4-2.9 0 0 .4-2 2-2.1 0 0 1.4-1.9 3.3-1.7 0 0 2.2-1.5 3-1.3.9.1 3 2.1 3 2.9.2.7 0 1.9-.5 2.4-.6.6-1-.1-1.1-1 0 0 .4 1.6-.8 2.2-1.2.7-1.1.2-1.2-.6 0 0-.4 1.6-1.2 1.9-.8.3-1.3-.5-2-.5 0 0 1.1.9.4 1.5-.7.5-1.5.3-2-.1-.5-.5-1.2-1.9-3.3-.6z"/>
+      <path d="M265.7 186c-.5-1.5-2.2-3-4-2.8m2.2 4.4c-.3-.4-.4-.8-.8-1.2-.9-1.5-2.8-1.4-4.4-1.8m2.4 4.5c-.6-.4-.8-1.2-1.4-1.5-1-.4-2-.9-3.3-.7"/>
+    </g>
+  </g>
+  <g stroke="#000" stroke-width=".5" transform="translate(-40) scale(.96)">
+    <path fill="url(#e)" d="M439.1 165.1c.7-.3.5.6.6 1 .4 1.3.4 2.7.9 3.9.6 1.1.8 1.5 1.8 2 1.6 1 6.4 3.6 9.8 1.5a3.1 3.1 0 00.7-.5s-1.3 4.1 3 6.2l15.6 8.2s1.5 2.7.6 6.5c-.2.6-.4 1.1.2 1.5 1 .7 2.6 2.8 3.8 6 0 0 3-1.3 3-3.2 0-2-1.3-3-1.6-4.4-.2-1.3-1-4.7-.6-5.7.4-1.1 2.1-1.5 2.8-2 .7-.3 1.6.5 1.3 1.4 0 1-.8.8-1.6 1 0 0 1 2 .8 3.4l9.4 4.8-1.6 2.3c-.5.7-1.5 10.2-4.2 14.6-2.8 4.5-3.7 3.3-4.2 4l-2.1 1.8c-.6.5-3.8.9-4.5-.9a9 9 0 00-3.1-4.1c-2-1.6-6-5.4-6-7.2 0 0-2.3 6.8-2 12.4 0 0-8.4 1.7-16.2 1.9-7.6 0-11.5-1.5-11.5-1.5s-1-6.4-.6-7.7c0 0-1.2 4.2-2 5.6-1.1 1.8-2.2 5.3-4.4 5.5-2.2.1-4-2.1-4.2-3v-6.8h-8.7s-3.8 1.5-5 1.3c-1.3-.1-1.9-1.3-.9-1.7l.4-.3a7 7 0 00-2.5.7H402l.1-.5c.3-1.2 2.6-2.2 4.3-3 1.6-.5 3.3-1.2 4.6-1.3 1.9-.2 3.2-.1 6.2.4.8 0 4 .4 5.8 1.3.5.3 1 .4.8-1-.3-1.3-1.2-5.5.3-8.3 1-1.9.9-3.5.8-5.2-.2-1.7-1.1-5.6-1.1-7.3 0-5.7 4.4-8 8.2-9.2 4.3-1.4 7.1-2.8 7-5.3-.2-2.7.5-7 .1-9"/>
+    <g fill="none">
+      <path fill="url(#f)" d="M456.3 153.6a20 20 0 011.2 5.3c0 1.2-.5 1.4-.1 2.8.7 2.4-.8 5-2.5 8-.8 1.2-1.4 3-2.7 3.8-3.4 2.1-7.5-.4-9.6-1.3a3.7 3.7 0 01-2-2.2c-.4-1.2-.5-2.3-.8-4 0-.3 0-1.2-.6-.9-1.3-1.4-1-2-1.6-3-.5-1 1-2.2 2-2a10 10 0 01-.2-5.9c.2-.6-.6-2.2.5-1.8 4.5 1.8 10 1.4 14.8 1.4.4 0 .7-.8 1.3-.7l.3.5"/>
+      <path fill="#000" d="M456.8 155.3c.4-.4.1-2.3-.4-4.3-.1-1-1-1.5-2-2.6s-1.6-1-2.3-1.4c-.6-.2-2-.2-2.8-.5-.6-.3-2.2-.1-3.7.1-2 .3-3.2.2-4.7 1s-2.8 1.8-3.3 3.3c-.4 1-1 2.5-.8 6.8.2 4.3 1 3.5 1 3.5s1.1-1.7 1.9-.6l-.3-3.6c-.1-1.2 0-2.8.5-4.6 0 0 4.6 1.7 9 1.7 3 0 7-.3 7.1-1l.7 2.2z"/>
+      <path d="M450.4 160.1c.7 1.8.1 1.3.4 2.4m-10.2 2c0 .8-.6.6-1 .6"/>
+      <path d="M456.9 158.8c-1-.7-2.7-.2-3.5.1-1.5.7-.7 2.3-.2 3.7.2.7 1 1.7.5 2.4-.4.8-.7.4-1.6.5 0-.3-.8 0-1.1 0-.6 0-1 .4-1.5.2-.6-.3-.5-1.2-.3-1.7m.1-4.5c0-.4-1.3-.8-2.7-.9-2.3 0-2.5.1-4.2 1.3m11.5 9c-.4-.6-1-1-2.1-.4 0-.2-1.6-.4-1.6-.4-.8 0-1.3.3-2.1.7m5.6.6c-1-.6-3.3-.2-5.6-.2m.2.8c1.7.5 3.5.8 5.2 0"/>
+      <path fill="#fff" stroke-width=".3" d="M456.4 160.1c-.7 0-1-.9-3.1.3-1.1.7 1.8 1.5 1.4 1.4 1.2.2 1.6-.5 1.7-1.2 0-.1.2-.5 0-.5zm-8.3.8c0-.8-1.8-1-2.9-.8-1 .3-.5.1-1.5.7 1 .1.7.2 1.6.6.9.5 1 .9 2.3.3.3-.1.7-.5.8-1 0 .2-.2.3-.3.3z"/>
+      <path fill="#000" stroke-width=".3" d="M455.1 161.4a.8.8 0 01-.8-.8c0-.6.3-1 .8-1 .4 0 .7.4.7 1 0 .4-.3.8-.7.8zm-8.7.2c-.4 0-.7-.4-.7-1 0-.5.4-.8.8-.8s.7.3.7.8c0 .6-.3 1-.8 1z"/>
+    </g>
+    <use width="100%" height="100%" fill="#730000" transform="matrix(-1 0 0 1 748.8 0)" xlink:href="#g"/>
+    <g fill="none">
+      <path fill="#730000" d="M491.6 193.5c.5.2 2-2 .5-3 0 0-.5-2-2-2 0 0-1.4-2-3.4-1.7 0 0-2-1.5-2.9-1.4-1 .2-3 2.2-3 3-.2.5 0 1.8.5 2.4.6.5 1-.1 1-1 0 0-.3 1.5.9 2.2 1.2.7 1.1 0 1.2-.7 0 0 .3 1.6 1.1 2 .9.2 1.4-.5 2-.5 0 0-1 .8-.3 1.3.7.6 1.5.3 2 0 .6-.5.3-1.8 2.4-.6z"/>
+      <path d="M482.5 189.8c.5-1.8 2.2-3.2 4-2.9m-2 4.4c.1-.4.2-.8.5-1.2 1-1.6 3-1.6 4.6-1.9m-2.5 4.5c.6-.4.8-1.1 1.4-1.4a5.3 5.3 0 013.2-.7"/>
+      <path fill="#730000" stroke="none" d="M482.3 186.8c-.9.7-1.8 1.8-1.9 2.2 0 .7 0 1.9.5 2.5.6.5 1 0 1.1-.8 0 .5 0 1.5.8 2 1.3.7 1.2.1 1.3-.7 0 0 .3 1.6 1 2 .9.2 1.4-.5 2-.5 0 0-1 .8-.3 1.3.7.6 1.5.3 2 0 .6-.5.3-1.8 2.5-.6.2.2.8-.4 1-1.1l-7.7-5.5-2.3-.8z"/>
+      <path d="M480.7 188.2c-1.5 2.6.5 4.1 1.1 2.6-.1 2.4 1.7 2.3 2.3 1.5.7 2.5 1.9 1.4 3 1.2-1.3 2.3 1.4 1.6 2 1 1-1.3 1.4-.2 2-.3l1.3-1.3m-8-5.7c-1.7 1-2.5 2.2-2.6 3.7m5-2.2c-1.8 1-2.6 2.2-2.6 3.7m5.4-1.7c-1.7.9-1.8 1.7-2.5 2.8"/>
+    </g>
+  </g>
+  <path fill="#5ac800" d="M238.5 310.7l-.2-4.5 1.9 1.6.4-3.4c.8-.2 2.1 1.3 2.1 1.3l-.2-3.4 2.8 3.1s-.2-2.6.8-4.2c0 0 2.2 1.9 2.2 4 0 1.9 1.8-2.6 1.8-2.6a3116.2 3116.2 0 001.6 5l1.3-1.9 1 4 2.4-3.5 1.8 4 4.2-.3.5 2.4 1.9-2 2.4 1.5s2-.6 3.1-.6 2.4 1.4 2.4 1.4.8-1.4 1.5-1.9 1.9.8 2.2 1.6l1.6-2.9s2 2 2.3 2.9c0 0 .3-2.4.8-3.2.5-.7 1.2.3 1.8 1.3l1.3-4.2s1.4.3 2.3 1.9c1.1 1.5 1.1-2.4 1.1-2.4s2.4 3.2 3 5.3c0 0-16.2 5.6-27.6 4a306 306 0 01-24.5-4.3m110.9-.5s.7-2.1 1.8-3.2c0 0 2 2.4 2 3.2l1.7-1 1.6 1.5 1.8-1.3 1.8 1.6 3.2-1.4 1.3 1.4 5-.6 1.8.8 1.8-2.3 1.6 1.8 2.7-2.6s1.3 1 1.5 1.8c0 0 2.2-1 2.7-1.8 0 0 2-.8 2.3.5 0 0 1.3-1 1.2-2-.1-1.2 1.5-.4 2 1 0 0 .5-2.2 2-2.4 0 0 1.2 1.3.9 3.7 0 0 2.3-1.9 3.4-2.1 0 0 .5 2.6-.3 5 0 0 2.4-4 3-2.7.1.8.7 3.5.1 5.3l2.2-1.3.8 2.6 2.3-.5s-13.9 2.1-27 .9c-13-1.3-25.3-5.9-25.3-5.9m-9.6 9.7c.6-.4-4.4 10.3-16.5 10.9-16.9.8-31.3-7.7-31.3-7.7s1.8-2.9 2.9-3.7c0 0 2.3 1.9 3 4.2 0 0 .4-1.5 1.2-2.9 0 0 2.9 1.4 3.4 3.2 0 0 1-1.8 1.8-2.3.8-.6 1.6 2 1.6 3.6 0 0 1.9-2 3-2 0 0 2 1 2.6 4.3 0 0 2-1.8 2.6-1.5 0 0 2.3 1.5 1.8 3.7-.3 1.2 2.3-1.4 5.5-2.2l2.9 2.2 3.4-4.7s2.1.8 2.1 2c0 0 1-3.7 1.8-4 .8-.5 1.8 1.1 1.8 2.2 0 0 .3-2.8 1.9-3.4 0 0 1.6 1 1.6 2.1 0 0 1.6-3.2 2.9-4z"/>
+  <path fill="none" stroke="#060" stroke-width=".5" d="M238.5 310.7l-.2-4.5 1.9 1.6.4-3.4c.8-.2 2.1 1.3 2.1 1.3l-.2-3.4 2.8 3.1s-.2-2.6.8-4.2c0 0 2.2 1.9 2.2 4 0 1.9 1.8-2.6 1.8-2.6l1.6 5 1.3-1.9 1 4 2.4-3.5 1.8 4 4.2-.3.5 2.4 1.9-2 2.4 1.5s2-.6 3.1-.6 2.4 1.4 2.4 1.4.8-1.4 1.5-1.9c.8-.5 1.9.8 2.2 1.6l1.6-2.9s2 2.1 2.3 2.9c0 0 .3-2.4.8-3.2.5-.7 1.2.3 1.8 1.3l1.3-4.2s1.4.3 2.3 1.9c1.1 1.5 1.1-2.4 1.1-2.4s2.4 3.2 3 5.3m58.7-.8s.8-2.1 1.9-3.2c0 0 2 2.4 2 3.2l1.7-1 1.6 1.5 1.8-1.3 1.8 1.6 3.2-1.4 1.3 1.4 5-.6 1.8.8 1.8-2.2 1.6 1.7 2.7-2.6s1.2 1 1.5 1.8c0 0 2.2-1 2.7-1.8 0 0 2-.8 2.3.5 0 0 1.3-1 1.2-2-.1-1.2 1.5-.4 2 1 0 0 .5-2.2 2-2.4 0 0 1.2 1.3.9 3.7 0 0 2.3-1.9 3.4-2 0 0 .5 2.5-.3 4.9 0 0 2.4-4 3-2.7.1.8.7 3.5.1 5.3l2.2-1.3.8 2.6 2.3-.5m-109.8 8s1.8-3 2.9-3.7c0 0 2.3 1.8 3.1 4.2 0 0 .3-1.6 1-3 0 0 3 1.4 3.5 3.2 0 0 1-1.8 1.9-2.3.7-.6 1.5 2 1.5 3.6 0 0 1.9-2 3-2 0 0 2 1 2.6 4.4 0 0 2-1.9 2.6-1.6 0 0 2.4 1.6 1.8 3.7-.3 1.2 2.3-1.4 5.5-2.1l2.9 2.1 3.4-4.7s2.1.8 2.1 2c0 0 1-3.6 1.8-4 .8-.5 1.9 1.1 1.9 2.2 0 0 .3-2.8 1.8-3.4 0 0 1.6 1 1.6 2.1 0 0 1.6-3.2 3-4"/>
+  <g fill="#fff">
+    <path d="M319.5 361.9c22 .2 35-7.8 42-12.6 16.8-11.2 20.3-11.6 23-11.4 3.1.3 7.7 1.3 8 4 .2 4.3-6.6 6.1-10.5 6.1-4 0-14.5-2.6-14.5-2.6l-2.7 1.9c1.8.8 23.2 8 27.3 1.2 4.2-6.8 8.4-17.9 8.4-17.9s-4.7-8.4-15.1-8.4c-10.6 0-20.8 6.7-27.6 11.7-6.9 5-15.5 11.8-38.3 11.8-22.9 0-31.6-6.8-38.4-11.8-6.9-5-17.1-11.7-27.6-11.7a18 18 0 00-15.2 8.4s4.2 11 8.4 18c4.1 6.7 25.5-.5 27.3-1.4l-2.6-1.8S261 348 257 348s-10.9-1.8-10.6-6c.2-2.8 4.8-3.8 8-4.1 2.7-.2 6.2.2 22.9 11.4a72 72 0 0042.2 12.6"/>
+    <path d="M284.1 336s0-1.9-.3-4.6c-.4-3.5-2.4-4.4-4-3.9-1.2.4-3.3 3-3.3 3v.1a31 31 0 00-3-1.8 18 18 0 016.3-3.6c1 0 14.5 5.4 18.8 9.1 1 1 1.8 7 1.2 9a46.5 46.5 0 01-15.7-7.2m-6.5 13.6s-2.9 3-3 8.3c0 6.3 4.5 6.6 7.5 6.5 3.7 0 6.6-2.1 6.5-8.9 0 0-6-2.5-11-6m77.1-13.6l.4-4.6c.4-3.5 2.4-4.4 4-3.9 1 .4 3.2 3 3.2 3v.1l3-1.8c-.7-1-5.2-3.6-6.2-3.6s-14.5 5.4-18.8 9.1c-1 1-1.8 7-1.3 9a45.5 45.5 0 0015.7-7.2v-.1m6.5 13.7s2.9 3 3 8.3c.2 6.3-4.5 6.6-7.5 6.5-3.6 0-6.5-2.1-6.5-8.9 0 0 6-2.5 11-6"/>
+  </g>
+  <path fill="#69f" d="M271.3 345.4S260.9 348 257 348c-4 0-10.9-1.8-10.6-6 .2-2.8 4.8-3.8 8-4.1 2.3-.2 5.3 0 17 7.5m96.1 0S378 348 382 348c3.9 0 10.7-1.8 10.4-6-.2-2.8-4.8-3.8-7.9-4.1-2.3-.2-5.4 0-17 7.5m-83.4-9.3a93.7 93.7 0 01-3.1-2.3c-1.5-1.1-3-2-4.5-3.2 0 0 2.1-2.7 3.2-3 1.7-.6 3.7.3 4.1 3.8.3 2.7.3 4.7.3 4.7m-7.1 27.6c1.8 1 3.9 1 5.1.8 3.7 0 6.6-2.1 6.5-8.9 0 0 4.5 2.3 11.8 4 0 0 1.2 1.5 1.4 4.4.3 2.5-1.4 5.1-3.3 5 0 0-10.3-2-16.5-3-3.7-.7-5-2.3-5-2.3m77.7-27.6l3.2-2.3 4.4-3.2s-2.1-2.7-3.2-3c-1.6-.6-3.6.3-4 3.8l-.4 4.7m7.1 27.6c-1.8 1-3.9 1-5.1.8-3.6 0-6.5-2.1-6.5-8.9 0 0-4.5 2.3-11.7 4 0 0-1.3 1.5-1.5 4.4-.2 2.5 1.5 5.1 3.4 5 0 0 10.3-2 16.5-3 3.6-.7 5-2.3 5-2.3"/>
+  <g fill="none" stroke="#000" stroke-width=".7">
+    <path d="M319.5 361.9c22 .2 35-7.8 42-12.6 16.8-11.2 20.3-11.6 23-11.4 3.1.3 7.7 1.3 8 4 .2 4.3-6.6 6.1-10.5 6.1-4 0-14.5-2.6-14.5-2.6l-2.7 1.9c1.8.8 23.2 8 27.3 1.2 4.2-6.8 8.4-17.9 8.4-17.9s-4.7-8.4-15.1-8.4c-10.6 0-20.8 6.7-27.7 11.7-6.8 5-15.4 11.8-38.2 11.8s-31.6-6.8-38.4-11.8c-6.9-5-17.1-11.7-27.6-11.7s-15.2 8.4-15.2 8.4 4.2 11 8.4 18c4.1 6.7 25.5-.5 27.4-1.4l-2.7-1.8S261 348 257 348s-10.9-1.8-10.6-6c.2-2.8 4.8-3.8 8-4.1 2.7-.2 6.2.2 22.9 11.4a72 72 0 0042.2 12.6z"/>
+    <path d="M271.3 345.4S260.9 348 257 348c-4 0-10.9-1.8-10.6-6 .2-2.8 4.8-3.8 8-4.1 2.3-.2 5.3 0 17 7.5zm96.2 0S378 348 382 348c3.9 0 10.7-1.8 10.4-6-.2-2.8-4.8-3.8-7.9-4.1-2.3-.2-5.4 0-17 7.5zm-83.4-9.3a92.6 92.6 0 01-3.1-2.3c-1.5-1.1-3-2-4.5-3.2 0 0 2.1-2.7 3.2-3 1.7-.6 3.7.3 4.1 3.8.3 2.8.3 4.7.3 4.7z"/>
+    <path d="M284.1 336s0-1.9-.3-4.6c-.4-3.5-2.4-4.4-4-3.9-1.2.4-3.3 3-3.3 3v.1a31.9 31.9 0 00-3-1.8 18 18 0 016.3-3.6c1 0 14.5 5.4 18.8 9.1 1 1 1.8 7 1.2 9a46.6 46.6 0 01-15.7-7.2m-6.5 13.6s-2.9 3-3 8.3c0 6.3 4.5 6.6 7.5 6.5 3.7 0 6.6-2.1 6.5-8.9 0 0-6-2.5-11-6z"/>
+    <path d="M280.1 351.1s-2.3 2.5-2.7 6.5c-.2 3.1 1.8 4.9 4.5 4.7 3.7-.2 5.1-5.3 3.4-8.1l-5.2-3"/>
+    <path d="M277 363.7c1.8 1 3.9 1 5.2.8 3.6 0 6.5-2.1 6.4-8.9 0 0 4.5 2.3 11.8 4 0 0 1.2 1.5 1.4 4.5.3 2.4-1.4 5-3.3 4.8L282 366c-3.7-.7-5-2.3-5-2.3zm77.7-27.6l3.3-2.3c1.3-1.1 2.8-2 4.4-3.2 0 0-2.2-2.7-3.3-3-1.6-.6-3.6.3-4 3.8l-.4 4.7z"/>
+    <path d="M354.7 336l.4-4.6c.4-3.5 2.4-4.4 4-3.9 1 .4 3.2 3 3.2 3v.1a31.9 31.9 0 013-1.8c-.7-.9-5.2-3.6-6.2-3.6s-14.5 5.4-18.8 9.1c-1 1-1.8 7-1.3 9a45.7 45.7 0 0015.7-7.2m6.5 13.6s2.9 3 3 8.3c.2 6.3-4.5 6.6-7.5 6.5-3.6 0-6.5-2.1-6.5-8.9 0 0 6-2.5 11-6z"/>
+    <path d="M358.7 351.1s2.4 2.5 2.8 6.5c.3 3.1-1.9 4.9-4.5 4.7-3.7-.2-5.1-5.3-3.4-8.1l5.1-3"/>
+    <path d="M361.9 363.7c-2 1-4 1-5.2.8-3.6 0-6.5-2.1-6.5-8.9 0 0-4.5 2.3-11.7 4 0 0-1.3 1.5-1.5 4.5-.2 2.4 1.5 5 3.4 4.8l16.5-2.9c3.6-.7 5-2.3 5-2.3z"/>
+  </g>
+  <path fill="none" stroke="#fff" stroke-width=".7" d="M299.6 361.4s3.3 2.4-.7 5.3m-9-6.8l10 4.3m-8.3-2.1l7.2 3.1m-4.6-5l5.4 2.5m39.7-1.3s-3.3 2.4.6 5.3m9-6.8l-10 4.3m8.4-2.1l-7.2 3.1m4.6-5l-5.4 2.5"/>
+  <path stroke="#000" stroke-width=".7" d="M261 331.4c.2.2.2.4.3.7a2.5 2.5 0 010 .8 2.4 2.4 0 01-1.2 1.6 3 3 0 01-2.2.4 3.7 3.7 0 01-1-.4 4.3 4.3 0 01-1-.6l-.3.4-.4-.1.4-2.9.5.1c0 .4 0 .7.2 1l.3 1 .7.6c.2.2.5.3.9.4h.7a1.2 1.2 0 00.9-.6 1.8 1.8 0 00.2-.6 1.7 1.7 0 00-.1-1 1.8 1.8 0 00-.7-.7 48.3 48.3 0 00-.8-.5l-.8-.6c-.5-.3-.8-.6-1-1-.2-.4-.2-.8-.1-1.4 0-.3.2-.6.4-.8a2.5 2.5 0 011.5-1 2.9 2.9 0 011 0l1 .4.8.6.3-.4.5.1-.5 2.8-.5-.1a11.2 11.2 0 000-1 3.6 3.6 0 00-.4-.8 2 2 0 00-.5-.7 2 2 0 00-.8-.4 1.4 1.4 0 00-1 .2c-.4.2-.6.5-.6.8v1l.7.7.8.5a14.1 14.1 0 011.3 1c.2 0 .4.3.5.5m12 1.6l-.5-.1a1.4 1.4 0 00-.5-.1c-.2 0-.4.1-.5.3a5.7 5.7 0 00-.6 1l-1.8 3.1a2.4 2.4 0 01-1.9 1.3h-1.1a4.2 4.2 0 01-1-.5 4.3 4.3 0 01-1-.8 3 3 0 01-.7-1 2.2 2.2 0 01-.1-1 2 2 0 01.2-.8l2.4-4.3a.9.9 0 00.1-.4v-.3a1.5 1.5 0 00-.3-.3l-.4-.3.2-.3 3.1 1.7-.2.3-.3-.1a2 2 0 00-.4-.1h-.4a.9.9 0 00-.2.3l-2.2 4a3.3 3.3 0 00-.3.7 1.8 1.8 0 000 .8c0 .2 0 .5.2.7l.9.8 1 .3a1.9 1.9 0 001.5-.5l.5-.6 1.6-3 .5-1v-.6c0-.2-.2-.3-.4-.5a3.6 3.6 0 00-.4-.3l.2-.4 3 1.7a19.2 19.2 0 01-.2.3m4.3 7.5a1.9 1.9 0 010 1.8 2 2 0 01-.8.8 2.2 2.2 0 01-1 .3l-1-.1a4 4 0 01-.9-.4l-3.5-2 .2-.4a5 5 0 00.8.3.5.5 0 00.3 0 .7.7 0 00.3-.3l3-5.3a1 1 0 00.1-.3.6.6 0 00-.1-.4 1.7 1.7 0 00-.3-.3l-.3-.2.2-.4 3.4 2 .7.5.6.7a1.6 1.6 0 010 1.6 1.8 1.8 0 01-.6.6l-.7.3a2.5 2.5 0 01-.7 0 3.3 3.3 0 01-.8-.2v.1a5 5 0 01.6.6l.5.7zm-.6-1.8c.2 0 .4-.2.5-.3a2.7 2.7 0 00.5-.6c.2-.4.3-.8.2-1.2-.1-.3-.4-.6-.9-.9l-.4-.2-.4-.3-1.6 2.8.6.4.8.3h.7zm-.6 2.7c.2-.4.3-.8.1-1.3 0-.4-.4-.8-1-1.1a29 29 0 00-.5-.4l-.4-.1-1.5 2.5a.6.6 0 000 .7c.1.2.4.4.7.5.5.3 1 .4 1.4.3.5-.2.8-.5 1.2-1zm18.9 4.3a3.5 3.5 0 00-.5 0 1.4 1.4 0 00-.6-.1c-.1 0-.3.1-.4.4a5.9 5.9 0 00-.5 1l-1.5 3.3c-.1.4-.4.7-.7 1a2.6 2.6 0 01-1 .4 3.2 3.2 0 01-1.1 0 4.3 4.3 0 01-2.2-1 3.1 3.1 0 01-.7-.8 2.2 2.2 0 01-.3-1 2 2 0 01.2-.9l2-4.5a.9.9 0 000-.4.7.7 0 00-.1-.3 1.6 1.6 0 00-.3-.3l-.4-.2.2-.4 3.3 1.4-.2.4a3.5 3.5 0 00-.4-.1 2.3 2.3 0 00-.4 0h-.3a1 1 0 00-.2.3l-1.9 4.3-.2.7a1.7 1.7 0 00.4 1.4c.2.3.5.5 1 .7l1 .2a1.9 1.9 0 001.5-.7 2.5 2.5 0 00.4-.6l1.3-3.1.3-1v-.7l-.4-.4a3.7 3.7 0 00-.5-.3l.2-.4 3.1 1.4-.1.3m9.2 10.8l-3.6-1v-.4a9 9 0 00.6 0l.4.1a.8.8 0 00.4-.2.7.7 0 00.2-.3l1.7-5.8a1.4 1.4 0 00-.1 0l-4.8 6h-.3l-.6-7.9-1.5 4.8-.2 1.1.1.6.5.4a3.2 3.2 0 00.5.3l-.2.4-3.2-1v-.4h.6a1 1 0 00.5 0c.2 0 .3-.2.5-.4l.3-1 1.2-4.2a1.7 1.7 0 00.1-.6 1 1 0 00-.1-.4 1.2 1.2 0 00-.4-.4 2 2 0 00-.5-.2l.1-.4 2.8.8.6 6.7 3.5-4.5.3-.5a2.8 2.8 0 00.2-.4l2.7.8-.1.4a3.9 3.9 0 00-.5 0 2.4 2.4 0 00-.4-.1.4.4 0 00-.3.1 1 1 0 00-.1.4l-1.7 5.8a.8.8 0 000 .3l.1.3a3.4 3.4 0 00.8.4l-.1.4m8.7-2.6a1.9 1.9 0 01.7 1.7l-.4 1c-.2.3-.5.4-.8.6-.3.2-.6.2-1 .3h-1l-4-.5v-.4h.5a1.7 1.7 0 00.4 0 .5.5 0 00.3-.2.7.7 0 00.1-.4l.8-6a1 1 0 000-.3.6.6 0 00-.3-.3 1.7 1.7 0 00-.4-.2h-.3v-.5l3.9.5c.3 0 .6 0 .9.2l.7.4a1.6 1.6 0 01.6 1.5l-.2.8a1.7 1.7 0 01-.6.5 2.6 2.6 0 01-.6.3 3.4 3.4 0 01-.8.2l.8.3.7.5zm-1.3-1.5l.4-.5.2-.7a1.5 1.5 0 00-.3-1.1c-.2-.3-.6-.5-1.1-.5a27.3 27.3 0 00-1-.1l-.4 3.2h.8c.3.1.6 0 .8 0a1.3 1.3 0 00.6-.3zm.5 2.8c0-.5 0-1-.3-1.3-.3-.3-.8-.5-1.4-.6l-.7-.1h-.4l-.3 2.9a.6.6 0 00.2.6l.8.3c.6 0 1 0 1.5-.4.3-.3.5-.7.6-1.4zm11.4 2.6h-2.2a44 44 0 00-1.4-2l-1.3-1.8h-1v2.7l.1.4.3.2h.4l.5.1v.4h-3.6v-.4h.4l.4-.1a.5.5 0 00.2-.2.7.7 0 00.1-.4v-6.4l-.3-.3a2.2 2.2 0 00-.4 0l-.4-.1v-.4h4.9a2.8 2.8 0 01.9.4l.6.6a2.3 2.3 0 010 1.8 2 2 0 01-.4.7 2.5 2.5 0 01-.7.4 5.3 5.3 0 01-.8.3l1 1.4c.3.4.7.8 1 1.4a2.5 2.5 0 001 .8 3 3 0 00.8.1v.4zm-3.1-6.2c0-.5-.2-1-.4-1.2-.3-.3-.8-.5-1.3-.5h-1v3.6h.8c.5 0 1-.1 1.3-.5.4-.3.6-.8.6-1.4zm13 5.6l-3.6.3v-.4l.7-.2c.2 0 .3-.2.3-.2v-.2a.5.5 0 000-.1l-.9-1.8-3 .2a9.6 9.6 0 00-.2.7l-.1.6a3.4 3.4 0 00-.1.4v.3c0 .2.1.3.4.3l.9.1v.4l-3.2.3v-.4a2 2 0 00.4-.1 1.3 1.3 0 00.7-.6l.2-.5 1.1-3.6 1.1-3.6h.5l3.4 7 .2.3a1.2 1.2 0 00.7.4h.4v.4zm-3.7-3.1l-1.6-3.2-1 3.4 2.6-.2zm15.7-6.7a27.9 27.9 0 00-.4.2 3.1 3.1 0 00-.8-.9c-.4-.2-.7-.4-1-.3a6.3 6.3 0 00-.3 0l-.6.2-1.4.4.9 3.2 1-.2.6-.3.3-.4.1-.4v-.6l.4-.2.9 3.2-.4.1a2.9 2.9 0 00-.3-.5l-.4-.4a.9.9 0 00-.5-.2 2.3 2.3 0 00-.6.1l-1 .3.8 2.8s0 .2.2.3a.6.6 0 00.3.2h.4l.4-.1.1.4-3.5 1-.1-.4a9.5 9.5 0 00.4-.2l.4-.2a.5.5 0 00.2-.3.8.8 0 000-.3l-1.6-5.9a1.1 1.1 0 00-.2-.3l-.3-.2a2.4 2.4 0 00-.4 0 2.4 2.4 0 00-.5 0l-.1-.3 6.4-1.8.6 2m9.4-.7l1 2.4-6 2.8-.2-.3.4-.3a1.4 1.4 0 00.3-.2.5.5 0 00.1-.3.8.8 0 000-.4l-2.7-5.4a1 1 0 00-.2-.3.5.5 0 00-.4 0h-.4a2 2 0 00-.4 0l-.2-.3 3.3-1.6.2.4a2.8 2.8 0 00-.4.2 2.2 2.2 0 00-.3.3.4.4 0 00-.2.3.8.8 0 00.1.4l2.5 5c0 .3.2.5.3.6l.3.2h.4l.7-.3.4-.2.4-.3.3-.2a.6.6 0 00.2-.3 6.3 6.3 0 00.2-2l.3-.2m4.5-8.3a4.2 4.2 0 011.5.8l1.2 1.4a5 5 0 01.6 1.7 4.1 4.1 0 010 1.6 4 4 0 01-.7 1.5 4 4 0 01-1.2 1 4 4 0 01-3.2.4 4 4 0 01-1.4-.7 5 5 0 01-1.2-1.4 5 5 0 01-.6-1.7 4.3 4.3 0 010-1.7 4 4 0 012-2.4 4 4 0 011.5-.6 3.9 3.9 0 011.5.1zm2.3 5.6a4 4 0 00-.2-1.3 7 7 0 00-.7-1.4 7.2 7.2 0 00-1-1.3 4 4 0 00-1-.8 2.4 2.4 0 00-1-.2c-.5 0-.8.1-1.2.3-.4.3-.7.6-.9 1a2.6 2.6 0 00-.3 1c0 .5.1.9.3 1.3a7.2 7.2 0 001.5 2.6c.3.4.7.6 1 .8a2.4 2.4 0 001.2.3c.3 0 .7 0 1.1-.3a2.3 2.3 0 001.2-2zm10.5-5.7l-1.9 1.3-2.3-.9-2-.6-.8.5 1.6 2.1.2.3h.4a1.8 1.8 0 00.3-.1l.4-.3.3.4-3 2-.2-.3a8.6 8.6 0 00.6-.5.5.5 0 000-.4.7.7 0 000-.3l-3.6-5a1 1 0 00-.2-.2.3.3 0 00-.4 0 3 3 0 00-.7.3l-.3-.4 3.2-2.2a4.6 4.6 0 01.9-.5 2.7 2.7 0 01.9-.2l.8.1a2.2 2.2 0 011.1 1.4v.8a2.5 2.5 0 01-.2.7 4.9 4.9 0 01-.5.8l1.6.5 1.6.5a2.5 2.5 0 001.2.1h.4a2.6 2.6 0 00.4-.3l.2.4zm-6.2-3.3c-.3-.4-.6-.6-1-.7-.4-.1-.9 0-1.3.3l-.8.6 2 3 .7-.5c.4-.3.7-.7.8-1.2 0-.5 0-1-.4-1.5zm13.2-2l.7 2.4-6.6 2.4-.2-.4a4.3 4.3 0 00.8-.4.6.6 0 00.2-.3.7.7 0 000-.4l-2.2-5.6a1 1 0 00-.1-.3l-.4-.1h-.4a2.2 2.2 0 00-.5 0l-.1-.3 6.1-2.3.7 1.9-.4.1a2.7 2.7 0 00-.8-.7l-.9-.3a4.3 4.3 0 00-.4.2l-.6.2-1.2.4 1.1 3.1 1-.3c.2 0 .4-.2.5-.3a.9.9 0 00.3-.4v-1.1l.4-.1 1.1 3-.4.2a3.2 3.2 0 00-.3-.5 1.5 1.5 0 00-.4-.3.9.9 0 00-.5-.2c-.2 0-.4 0-.6.2l-.9.3.9 2.4.2.5a.5.5 0 00.3.3h.5l.7-.3.5-.2a3.9 3.9 0 001-.4l.2-.3.2-1v-1l.5-.1m7.1-5.8c.4.3.8.7 1 1.3.3.5.5 1 .6 1.7a4.9 4.9 0 010 1.8 4.1 4.1 0 01-.8 1.5 3.9 3.9 0 01-2.7 1.6 3.9 3.9 0 01-3-.9 4.1 4.1 0 01-1-1.2 4.9 4.9 0 01-.6-1.7 5 5 0 010-1.9l.8-1.5a4 4 0 012.7-1.5 4 4 0 011.6 0l1.4.8zm-.1 6c.2-.4.3-.8.3-1.3v-1.5a7 7 0 00-.4-1.5 3.9 3.9 0 00-.7-1.2 2.4 2.4 0 00-.9-.7 2.3 2.3 0 00-1.1-.1c-.5 0-1 .2-1.2.5-.3.2-.6.6-.7 1a4 4 0 00-.3 1.2 7 7 0 00.4 3l.7 1.1c.2.4.5.6.9.7.3.2.7.2 1.2.2a2.3 2.3 0 001-.5 2.4 2.4 0 00.8-1z"/>
+  <path fill="none" stroke="#000" d="M366 205.1v53c0 10.6-1.4 52.6-46.5 69-45.3-16.4-46.7-58.4-46.7-69v-53H366"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ca.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ca.svg
new file mode 100644
index 0000000..4843fc3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ca.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ca" viewBox="0 0 640 480">
+  <path fill="#fff" d="M81.1 0h362.3v512H81.1z" transform="translate(74.1) scale(.9375)"/>
+  <path fill="#d52b1e" d="M-100 0H81.1v512H-100zm543.4 0h181.1v512h-181zm-308 247.4l-14.2 4.8 65.5 57.5c5 14.7-1.7 19-6 26.8l71-9L250 399l14.8-.4-3.3-71 71.2 8.5c-4.4-9.3-8.3-14.2-4.3-29l65.4-54.5-11.4-4.2c-9.4-7.2 4-34.7 6-52.1 0 0-38.1 13.1-40.6 6.2l-9.8-18.7-34.7 38.2c-3.8.9-5.4-.6-6.3-3.8l16-79.8-25.4 14.3c-2.1 1-4.2.2-5.6-2.3l-24.5-49-25.2 50.9c-1.9 1.8-3.8 2-5.4.8l-24.2-13.6 14.6 79.1c-1.2 3.2-4 4-7.2 2.3l-33.3-37.7c-4.3 7-7.2 18.3-13 20.9-5.7 2.4-25-4.8-37.9-7.6 4.4 15.9 18.2 42.3 9.5 51z" transform="translate(74.1) scale(.9375)"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cc.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cc.svg
new file mode 100644
index 0000000..2c45698
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cc.svg
@@ -0,0 +1,19 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-cc" viewBox="0 0 640 480">
+  <defs>
+    <path id="a" d="M0-360l69.4 215.8 212-80.3L156-35.6 351 80.1 125 99.8l31.1 224.6L0 160l-156.2 164.3 31.1-224.5L-351 80l195-115.7-125.5-188.9 212 80.3z"/>
+    <path id="b" d="M0-210L54.9-75.5l144.8 10.6-111 93.8 34.7 141L0 93.3-123.4 170l34.6-141-111-93.8 145-10.6z"/>
+  </defs>
+  <path fill="green" d="M0 0h640v480H0z"/>
+  <circle cx="320" cy="240" r="66.7" fill="#ffe000"/>
+  <circle cx="340.8" cy="240" r="54.9" fill="green"/>
+  <circle cx="109.8" cy="173.3" r="69.8" fill="#ffe000"/>
+  <path fill="#802000" stroke="#7b3100" stroke-width="1.5" d="M105 226h17.5s.7-1.6-.2-2.4c-1-.8-4.7-1-3.7-3.8 2-5.8 2.4-4 3.7-17.8a739 739 0 002-35.5h-2.6s.5 6.7-1 15.5c-1.4 8.8-1.9 9.5-3.5 16.3a63.5 63.5 0 01-3.3 11.2c-1.4 4-1.6 4.1-3.8 7.8-2.3 3.6-1.5 2.2-2.7 4.4-.7 1.1-1.4.8-1.9 1.6-.4.8-.5 2.7-.5 2.7z"/>
+  <path fill="green" d="M118.3 122.5a23 23 0 01-1.2 9.2 26.5 26.5 0 00-2.3 9.8c-1.8.6-3.7-3.9-5.5-1.2 1.3 3.7 4.4 6.6 6.4 9.9.4 1 3.4 3.7 1.6 4.3-4.3-1.5-5.4-7-8-10.3a19 19 0 00-15.5-10c-2.5.1-10.4-.5-8.4 3.7 3 2 6.8 3.4 9.8 5.7 2.3.2 6.3 4 6.1 5.4-4-1.6-5.8-3.5-10-5.2-5.8-2.2-13.7-.9-17 4.8-.5 1.5-1.4 5.8.5 6.3 2.2-3.4 5.3-7.3 9.9-6.2 3.6.3-4 6.7-1.1 5.4 1-.4 3-1.8 4.6-2 1.5 0 2.3 1 3.4 1.2 2.3.3 3 1.2 2.7 1.8-.2.6-1 0-3.3.8-1.1.4-1.7 1.4-3 1.9-1.4.4-4.2.5-5.2 0-3.7-1.5-9.7-1.3-10.8 3.3 0 2-1.8-.2-2.6.7-.7 2.2-.8 4.4-4 4.2-2 2-4 4.2-6.6 5.7 1.5 3.4 7.3-3.4 7-.5-2.5 3.5 1.4 4.2 3 1.5 2.9-3 6.5-6.7 10.7-3.6 2 1.9 3.2-1 4.7-1 1 2.5 2.1.2 3.2-.5 1.7-.2 1.2 2.2 3.2.7 4.1-2.7 9.1-.4 13.1-3 4.3-2 .6 1.5-.5 2.9-1.9 3.6-.3 8.4-4.3 10.6-1.7 4.3 1.9 10-1.7 13.2-.5 2 4.6 1.8 6 2.6 2.6 0 0-5.8 2.5-6.6 3.4 2 3.2-3.8 2.5-5.6.4-4 .6-8.6 2.6-12.3 2.2-4.5 4.2 1.9 1.8 3.7-1.4 4.1-3.4 9.4-.3 13.3 1 .2 1.7 2.4 2.8 3 1.2.7 2.8-.1 3-2.1 1.6-6 .8-12.4 3-18.3 1.5-1.8 3.6-.3 4.5 1.4 3 3.5 5.1 7.8 8.7 10.7a15 15 0 017.8 7.3c0 2.6 7.4 3 5.2 0-2.1-2.7-.7-5.6 1.4-7.5 1.2.3.9-1.8 0-1-1.5-.3-1.6-3 .4-1.7 3.5 1.1-.2-2.5-1.5-2.6-2.9-1.8-6.2-3.8-7.6-7 3.8 0 7.7 2.1 11.5.9 3.1-1.6 6.2 0 7.3 2.8 2.4-.4 1.4-2.8 0-3.6 1.7-.7 3-2.2.8-3.5-1-1.4 1.5-4-1.7-3.8.1-2.5-.8-4.7-3.5-5.6-2.7-2.2-10.6 3.4-10.3-1.7-.8-2.8 3.2-.4 4.3-1.8 1.1-3-5.5-2.6-3.3-5 1.4-.8 8.1-2.1 2.9-3.1a8.3 8.3 0 01-7-1.1c-1.9 3.1-7.2-1.8-6.3 3.8-.7 2.1-5.5 7.6-6.8 3.4 1-3.3 6.8-4.3 5-8.8-.3-2.7-2.6.5-3.6.3-.6-1.7 1.6-3.8 3.2-4.2 3 2.4 3-3 6-2.5 2.1-.5-.7-1.4-1.3-1.8.6-1.5 3.9-2.3.7-3.7-2.9-2-5 2.1-7.3 2.3-2.2-2.5 2-3.7 3.2-5 .1-1-2.4-.3-1.7-1.2.7-1.1 5.2-1.2 3-3a14.7 14.7 0 00-10.2.6c-2 .6-2.5 5-4.2 4.8-.7-2 .3-5.8-2.4-6.3zm15 42.3c2.4-.4 0 3.7-1 3.6 0-1.4-3.6-1.3-1.3-2.6a7.3 7.3 0 012.3-1z"/>
+  <g fill="#ffe000" transform="translate(0 80) scale(.0635)">
+    <use width="100%" height="100%" x="7560" y="4200" xlink:href="#a"/>
+    <use width="100%" height="100%" x="6300" y="2205" xlink:href="#a"/>
+    <use width="100%" height="100%" x="7560" y="840" xlink:href="#a"/>
+    <use width="100%" height="100%" x="8680" y="1869" xlink:href="#a"/>
+    <use width="100%" height="100%" x="8064" y="2730" xlink:href="#b"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cd.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cd.svg
new file mode 100644
index 0000000..739fab7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cd.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cd" viewBox="0 0 640 480">
+  <path fill="#007fff" d="M0 0h640v480H0z"/>
+  <path fill="#f7d618" d="M28.8 96H96l20.8-67.2L137.6 96h67.2l-54.4 41.6 20.8 67.2-54.4-41.6-54.4 41.6 20.8-67.2L28.8 96zM600 0L0 360v120h40l600-360V0h-40"/>
+  <path fill="#ce1021" d="M640 0L0 384v96L640 96V0"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cf.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cf.svg
new file mode 100644
index 0000000..9f19138
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cf.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cf" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="cf-a">
+      <path fill-opacity=".7" d="M-12.4 32h640v480h-640z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#cf-a)" transform="translate(12.4 -32)">
+    <path fill="#00f" d="M-52 32h719.3v119H-52z"/>
+    <path fill="#ff0" d="M-52 391.6h719.3V512H-52z"/>
+    <path fill="#009a00" d="M-52 271.3h719.3v120.3H-52z"/>
+    <path fill="#fff" d="M-52 151h719.3v120.3H-52z"/>
+    <path fill="red" d="M247.7 32.5h119.9V512H247.7z"/>
+    <path fill="#ff0" d="M99.3 137.7l-31.5-21.8-31.3 22L47.4 101 16.9 78l38.2-1 12.5-36.3L80.3 77l38.1.7L88.2 101"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cg.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cg.svg
new file mode 100644
index 0000000..8b66be2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cg.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cg" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="cg-a">
+      <path fill-opacity=".7" d="M-79.5 32h640v480h-640z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#cg-a)" transform="translate(79.5 -32)">
+    <path fill="#ff0" d="M-119.5 32h720v480h-720z"/>
+    <path fill="#00ca00" d="M-119.5 32v480l480-480h-480z"/>
+    <path fill="red" d="M120.5 512h480V32l-480 480z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ch.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ch.svg
new file mode 100644
index 0000000..f5ec8d4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ch.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ch" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#d52b1e" d="M0 0h640v480H0z"/>
+    <g fill="#fff">
+      <path d="M170 195h300v90H170z"/>
+      <path d="M275 90h90v300h-90z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ci.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ci.svg
new file mode 100644
index 0000000..2bd7104
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ci.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ci" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="#00cd00" d="M426.8 0H640v480H426.8z"/>
+    <path fill="#ff9a00" d="M0 0h212.9v480H0z"/>
+    <path fill="#fff" d="M212.9 0h214v480h-214z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ck.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ck.svg
new file mode 100644
index 0000000..e4f0d0c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ck.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ck" viewBox="0 0 640 480">
+  <path id="path628" fill="#006" d="M0 0h640v480H0z"/>
+  <path id="path638" fill="#fff" fill-rule="evenodd" d="M471.6 213l5.2-16.7-14-10.6 17.6-.2 6-16.5 5.6 16.5 17.7.5-14.1 10.5 5 16.7-14.5-10m27.1 13l10.4-13.9-9.7-14.8 16.7 5.8 11-13.5v17.6l16.4 6.4-16.8 5-.8 17.5-10.2-14.4m-98.4 15l-.7-17.5-16.8-5.2L431 198v-17.4l10.9 13.5 16.8-5.6-9.8 14.7 10.3 14-17-4.5m-39.6 40.9l-7.4-15.8-17.4 1.8 12.8-12.3L384 211l15.2 8.2 13.3-11.8-3.4 17.4 14.9 8.9-17.3 2.5M389 291.8l-13.3-11.1-15 9.2 6.4-16.7-12.9-11.6 17.3.7 7-16.4 4.3 17.2 17.2 1.5-14.6 9.8m3.2 60.4l-16.5-4.8-10.1 14.5-.7-17.9-16.4-5.5 16.1-6.2v-18l10.7 14.1 16.4-5.6-9.6 15m29.5 50.8l-17 2.4-3.5 17.4-7.8-16-17.1 1.6 12.2-12.3-7.1-16.4 15.3 8.5 12.8-11.8L393 362m45 38l-15.1 8.2 2.6 17.6-12.7-12.4-15.6 7.6 7.3-15.9-12.3-12.9 17.3 2.6 8-15.5 3.4 17.4m53.8 9l-8.3 15.3 11.7 13.2-17.4-3.3-8.9 15-2.4-17.3-17.2-4 15.8-7.4-1.7-17.5 12.2 12.8m57.4-13.1l-.5 17.4 16.3 6.4-17 5-1.2 17.5-10-14.3-17 4.4 10.8-13.9-9.4-14.7 16.6 5.7M559 209.8l12 12.6 15.9-7.4-8.3 15.8 11.5 13.1-17-2.8-9 15.5L562 239l-17-3.5 15.7-8m34.2 21l5.5 16.6 17.5.3-14.2 10.7 4.7 16.8-14.1-10-14.6 10.1 5.4-16.8-13.8-10.6 17.6-.4m19.5 33.2l-2 17.4 15.7 7.7-17.3 3.6-2.7 17.3-8.7-15.1-17.4 2.9 12-13-8.1-15.5 16 7.2m3 39.8l-7.8 15.6L603 379l-17.4-2.7-8.4 15.3-3-17.3-17.4-3.3 15.6-8-2.3-17.4 12.6 12.3m-9.8 39.1l-14.7 9.2 3.8 17.3-13.5-11.5-15 8.6 6.3-16.3-13.1-12.1 17.4 1.5 7-16 4.4 17.2"/>
+  <path id="path1423" fill="#006" stroke-width=".5" d="M0 0h320v240H0z"/>
+  <path id="path1425" fill="#fff" stroke-width=".5" d="M37.5 0l122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z"/>
+  <path id="path1427" fill="#c8102e" stroke-width=".5" d="M212 140.5L320 220v20l-135.5-99.5zm-92 10l3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z"/>
+  <path id="path1429" fill="#fff" stroke-width=".5" d="M120.5 0v240h80V0zM0 80v80h320V80z"/>
+  <path id="path1431" fill="#c8102e" stroke-width=".5" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cl.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cl.svg
new file mode 100644
index 0000000..287a37e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cl.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cl" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="cl-a">
+      <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#cl-a)" transform="scale(.9375)">
+    <path fill="#fff" d="M256 0h512v256H256z"/>
+    <path fill="#0039a6" d="M0 0h256v256H0z"/>
+    <path fill="#fff" d="M167.8 191.7L128.2 162l-39.5 30 14.7-48.8L64 113.1l48.7-.5L127.8 64l15.5 48.5 48.7.1-39.2 30.4 15 48.7z"/>
+    <path fill="#d52b1e" d="M0 256h768v256H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cm.svg
new file mode 100644
index 0000000..b4272b7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cm.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-cm" viewBox="0 0 640 480">
+  <path fill="#007a5e" d="M0 0h213.3v480H0z"/>
+  <path fill="#ce1126" d="M213.3 0h213.4v480H213.3z"/>
+  <path fill="#fcd116" d="M426.7 0H640v480H426.7z"/>
+  <g fill="#fcd116" transform="translate(320 240) scale(7.1111)">
+    <g id="b">
+      <path id="a" d="M0-8L-2.5-.4 1.3.9z"/>
+      <use width="100%" height="100%" transform="scale(-1 1)" xlink:href="#a"/>
+    </g>
+    <use width="100%" height="100%" transform="rotate(72)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(144)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(-144)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(-72)" xlink:href="#b"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cn.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cn.svg
new file mode 100644
index 0000000..72080b6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cn.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-cn" viewBox="0 0 640 480">
+  <defs>
+    <path id="a" fill="#ffde00" d="M-.6.8L0-1 .6.8-1-.3h2z"/>
+  </defs>
+  <path fill="#de2910" d="M0 0h640v480H0z"/>
+  <use width="30" height="20" transform="matrix(71.9991 0 0 72 120 120)" xlink:href="#a"/>
+  <use width="30" height="20" transform="matrix(-12.33562 -20.5871 20.58684 -12.33577 240.3 48)" xlink:href="#a"/>
+  <use width="30" height="20" transform="matrix(-3.38573 -23.75998 23.75968 -3.38578 288 95.8)" xlink:href="#a"/>
+  <use width="30" height="20" transform="matrix(6.5991 -23.0749 23.0746 6.59919 288 168)" xlink:href="#a"/>
+  <use width="30" height="20" transform="matrix(14.9991 -18.73557 18.73533 14.99929 240 216)" xlink:href="#a"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/co.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/co.svg
new file mode 100644
index 0000000..0d74127
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/co.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-co" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#ffe800" d="M0 0h640v480H0z"/>
+    <path fill="#00148e" d="M0 240h640v240H0z"/>
+    <path fill="#da0010" d="M0 360h640v120H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cr.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cr.svg
new file mode 100644
index 0000000..133b029
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cr.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cr" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#0000b4" d="M0 0h640v480H0z"/>
+    <path fill="#fff" d="M0 75.4h640v322.3H0z"/>
+    <path fill="#d90000" d="M0 157.7h640v157.7H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cs.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cs.svg
new file mode 100644
index 0000000..8767581
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cs.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cz" viewBox="0 0 640 480">
+  <path fill="#ffffff" d="M0 0h640v240H0z"/>
+  <path fill="#d7141a" d="M0 240h640v240H0z"/>
+  <path fill="#11457e" d="M360 240 0 0V480z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cu.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cu.svg
new file mode 100644
index 0000000..079a29b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cu.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cu" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="cu-a">
+      <path fill-opacity=".7" d="M-32 0h682.7v512H-32z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#cu-a)" transform="translate(30) scale(.94)">
+    <path fill="#0050f0" d="M-32 0h768v512H-32z"/>
+    <path fill="#fff" d="M-32 102.4h768v102.4H-32zm0 204.8h768v102.4H-32z"/>
+    <path fill="#ed0000" d="M-32 0l440.7 255.7L-32 511V0z"/>
+    <path fill="#fff" d="M161.8 325.5L114.3 290l-47.2 35.8 17.6-58.1-47.2-36 58.3-.4 18.1-58 18.5 57.8 58.3.1-46.9 36.3 18 58z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cv.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cv.svg
new file mode 100644
index 0000000..39a7b7e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cv.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cv" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="cv-a">
+      <path fill-opacity=".7" d="M-123.4 0h682.6v512h-682.6z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#cv-a)" transform="translate(115.7) scale(.94)">
+    <path fill="#fff" d="M-123.4 233H723v206h-846.5z"/>
+    <path fill="#081873" d="M-122.8 0h846v256.6h-846zm.3 385.9h852.1V512h-852.1z"/>
+    <path fill="#de3929" d="M-122.5 302.6h846v39.6h-846z"/>
+    <path fill="#ffce08" d="M131 399.2l6.6 20.4H159l-17.4 12.7 6.6 20.5L131 440l-17.4 12.7 6.7-20.5-17.4-12.7h21.5M317 250.4l6.7 20.5H345l-17.4 12.6 6.6 20.5-17.4-12.7-17.4 12.7 6.6-20.5-17.4-12.6h21.6m-222 64.4l6.6 20.5h21.5L99 368.6l6.7 20.4-17.4-12.6L70.9 389l6.6-20.4-17.4-12.7h21.5M317 329.5l6.7 20.4H345l-17.4 12.7 6.6 20.4-17.4-12.6-17.4 12.7 6.6-20.5-17.4-12.7h21.6m-40.5-161.7l6.7 20.4H298l-17.4 12.7 6.6 20.5-17.4-12.7-17.4 12.7 6.7-20.5-17.5-12.7h21.6m-64.5-45.2l6.7 20.5h21.5l-17.4 12.6 6.6 20.5-17.4-12.6-17.4 12.6 6.7-20.5-17.4-12.6H192m-64.5 2.9l6.7 20.5h21.5l-17.4 12.6 6.7 20.5-17.5-12.7-17.4 12.7 6.7-20.5-17.4-12.6H121m-34.8 43.2l6.6 20.5h21.6l-17.5 12.6 6.7 20.5-17.4-12.7-17.4 12.7 6.6-20.5L58 271h21.5m119.2 149.4l6.7 20.5h21.5l-17.4 12.6 6.7 20.5-17.5-12.7-17.4 12.7 6.7-20.5-17.4-12.6H192m82.2-41.7l6.6 20.4h21.5L285 432.3l6.7 20.5-17.4-12.7-17.5 12.7 6.7-20.5-17.4-12.7h21.5"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cw.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cw.svg
new file mode 100644
index 0000000..533644d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cw.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-cw" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="cw-a">
+      <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+    </clipPath>
+    <path id="b" d="M0-1l.2.7H1L.3 0l.2.7L0 .4l-.6.4.2-.7-.5-.4h.7z"/>
+  </defs>
+  <g clip-path="url(#cw-a)" transform="scale(.94)">
+    <path fill="#002b7f" d="M0 0h768v512H0z"/>
+    <path fill="#f9e814" d="M0 320h768v64H0z"/>
+    <use width="13500" height="9000" x="2" y="2" fill="#fff" transform="scale(42.67)" xlink:href="#b"/>
+    <use width="13500" height="9000" x="3" y="3" fill="#fff" transform="scale(56.9)" xlink:href="#b"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cx.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cx.svg
new file mode 100644
index 0000000..f5b89b7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cx.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-cx" viewBox="0 0 640 480">
+  <path fill="#0021ad" d="M0 0h640v480H0z"/>
+  <path fill="#1c8a42" d="M0 0h640v480z"/>
+  <circle cx="320" cy="240" r="57.8" fill="#ffc639"/>
+  <path fill="#1c8a42" d="M284.7 214c4 5.5 10 14.6 14.8 12.2 3.7 0 5.7.3 6.2 2.8a37 37 0 0033-14.3s.8 0 .5-4.5c0-2 2.8-1.6 2.8-1 .4 1 .4 1.7.9 1.8 1-.4 2.7-3 4-4.6.3-.7.1-1.5.2-2.4.7-1.7 2.4-1.3 2.8-.4l.6 1.6c1.8 1.2 5 0 5.2 0 .3-1.4 1.2-1.2 1.2-1.2 1.2-.3.7-.2 1.5.2-.7 7.7 1.5 8 1.3 12 .1 4.4-1.3 5.6-1.3 7.3.4 2 7 2.1 4.6 3.9-2 1 0 3-3 3.8-8.8 4.5-10.4 8.3-10.4 8.3s-2.2 4.2-2.5 4.2c-1.5 2.8-3.3 1.2-4.4 2.6-.5 1.7-1 5.5 0 7.4.5 2.7 0 4.2-.7 6.9-.6 5.6-2.8 6.5-3.1 8.4-1 2.2.2 12-.8 12-6.5.2-11.5-1.2-14.1-1.7 2.5-10.9 1.5-20.4 1.5-21.4-.6-7.8-11.6-5.9-13.3-7-1.4-.2-2.3-1.3-2.7-1.8-1.6-.2-2.2-.6-3.7-.7-.8.4-.3.8-2 1.3-4.5.5-6.4-3.8-6.4-3.8.2-1.5-9.9.3-15.3-1-2.3 1.3-3.3 5-5.1 5.4 0 1.1-3-1-3.6-2-.2-3.4 2.8-4.8 2.8-4.8 2.4-1.7 3.8-2 5-3.1.5-2.9.2-5 1.5-7.1 1-1.7 2.5-1 3.5-1.6 1.1-.8 1.6-5.6.6-7l-4.7-4.2c-1.4-4.1 1.7-6.8 2.6-6.5z"/>
+  <path fill="#ffc639" d="M561.9 142.4c-2.6-10.3-26-32.7-43.7-46.9-4.2-2.8-7-1.1-6.4 3 2.2 3.6 3.8 7.6 6 11.3.6 2.5 1.8 4.2 2.4 6.6 0 0 .2 4.2.6 4.6 5.4 6 6.2 11.1 6.2 11.1a49 49 0 0011.5 15.6c6.2 3.9 1.6 16 1.8 22.5 0 4-2.9 3.6-5.5 3-20.1-18.5-40.1-18.5-57.8-23.9-6.8-.7-7 2.6-4.7 4.4a129 129 0 0039.1 29.6l7.7 4.8 8.8 7.3c6.8 4.4 7.3 8.4 7.3 8.8.2 8.2-4.2 14.6-5.5 17.2-2.3 8.7-7 10.2-7 10.2-37.6 25.4-57.4 32-118.4 24.1-1-.4-6.8.5 0 3 15.5 5.2 53.7 13.5 90.6-4 9-6.2 14.8-4.2 21.3-8a287.3 287.3 0 0128.3-15.4c8.3-4.5 31.3-9.4 36.6-13.8 6.1-.5 12.4-1.3 12.8-6.5 2-1.3 5-.3 7.2-4.6 4.8-.9 4-2.6 4-2.6-1.2-3.4-5.8-4.8-9-7.3-4.8-1.6-8-2-11.5-.4l-3.3 1.5s-5.1-.7-5.1-1.1c-11.4-.6-10.3-38.3-14.3-54z"/>
+  <path fill="#1c8a42" d="M588.6 204.2a2.8 1.8 16 11-5.4-1.7 2.8 1.8 16 015.4 1.7z"/>
+  <g fill="#fff" transform="matrix(.64 0 0 .64 0 80)">
+    <path id="a" d="M188.2 191l-12.8-12-12.9 11.8 1.4-17.4-17.3-2.8 14.5-9.8-8.6-15.2 16.7 5.3 6.5-16.2L182 151l16.7-5-8.8 15 14.4 10-17.3 2.5 1.2 17.4z"/>
+    <path d="M233.4 335.5l-13.8-9.1-13.4 9.6 4.8-15.5-13.6-9.5 16.6-.4 5-15.5 5.6 15.3 16.7-.1L228 320l5.3 15.4z"/>
+    <use width="100%" height="100%" x="2.5" y="269.1" xlink:href="#a"/>
+    <use width="100%" height="100%" x="-112.1" y="123.2" xlink:href="#a"/>
+    <use width="100%" height="100%" x="108.4" y="85" xlink:href="#a"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cy.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cy.svg
new file mode 100644
index 0000000..3d483a1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cy.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-cy" viewBox="0 0 640 480">
+  <path fill="#fff" d="M0 0h640v480H0z"/>
+  <path id="a" fill="#435125" d="M307.8 398.6a.8.8 0 01-.2-.2h-.1l-1.3-1.4-3.8-4.5-4.9-6.3-.6-.9-6.2-1.9-4.6-2.1 2.4-2.7 8.4 3.5 6.2 1.3 11.5 8.5-3.3 2.9a37.2 37.2 0 00-3.3 3.5l.7-.5.8.6-1.6.2zm-42.6-12.8a31.7 31.7 0 01-16-4.5s.7-1.3 2.3-2.4c1.6-1.2 4.4-2.5 9-2.6 5.4 0 12 1.9 19.5 5.4a28.8 28.8 0 01-14.8 4zm-23.5-5.2c-1 0-2-.4-2.6-1a5.2 5.2 0 01-1.1-2.4 11.7 11.7 0 01-.3-3.4 3.5 3.5 0 011.3-.2c2 0 3.6 1.7 4.3 3.4.4 1 .5 1.8.2 2.5-.2.6-1 1-1.8 1zm41.3-4.8c-13.9-2-19.8-7-22.3-10.9-2.6-4.1-2-8-2-8s.8-.2 2-.2c3.8 0 13.2 1.9 22.3 19zm-28.5-2.8c-5.9 0-10.4-1-13.4-3a8.3 8.3 0 01-3-3.3 5.4 5.4 0 01-.4-1.6 18.2 18.2 0 017.2-1.4 27 27 0 0118.9 8.7c-3.4.4-6.5.6-9.3.6zm-28.7-1c-6.2 0-14.8-2-20.2-7.3 0 0 5.9-1.5 12.4-1.7h1.2c5.9 0 10.4 1.1 13.4 3.4 1 .8 1.6 1.5 1.7 2.2.1.6-.2 1.2-.8 1.7-1.4 1-3.8 1.6-7.2 1.6h-.5zm-20.3-10.5a2.6 2.6 0 01-2-1 4.7 4.7 0 01-.8-2c-.3-1.4-.2-2.8-.2-2.9a2.4 2.4 0 011-.2c.9 0 1.6.5 2 1a5.6 5.6 0 011.4 2c.2.9.3 1.6 0 2.2 0 .4-.6 1-1.3 1zm46.9-1c-1 0-2-.4-2.6-1a5.2 5.2 0 01-1.1-2.4 11.7 11.7 0 01-.3-3.4 3.5 3.5 0 011.3-.2c2 0 3.7 1.7 4.3 3.4.4 1 .5 1.8.3 2.5-.3.6-1 1-2 1zm-22.8-1c-12.6-.4-19.2-4-22.4-7a14.6 14.6 0 01-3.4-4.3c-.5-1-.7-1.8-.7-2s1.2-.4 3-.4h.4c4.2 0 12.9 1.8 23 13.7zm13.6-1.2a30.8 30.8 0 01-18.9-9.3 19.4 19.4 0 01-4.1-7s1.2-.3 3-.4a14.2 14.2 0 011 0c5 .1 14.3 2.4 19 16.7zm-52-5a42 42 0 01-9.5-1c-5.3-1.4-7.6-3.4-8.6-4.9a5 5 0 01-.8-2 3.4 3.4 0 010-.8s3.5-1 8.4-1.1a35 35 0 017.4.6 21.7 21.7 0 0112.8 8.1s-4 1.2-9.7 1.2zm23.5-8.4a3.4 3.4 0 01-2.5-1 5.2 5.2 0 01-1.1-2.4c-.4-1.6-.3-3.2-.3-3.4a3.5 3.5 0 011.2-.3h.1c2 0 3.6 1.8 4.3 3.5.4 1 .4 1.8.2 2.4-.3.7-1 1.1-1.9 1.1zm-17.6-2.5a38.6 38.6 0 01-9.6-4.2c-4.4-2.7-9.9-7.5-10.5-15l1-.1h.3c1.3 0 4 .3 7.3 2.8 4.2 3.2 8 8.8 11.5 16.5zm11.5-.4a31.2 31.2 0 01-7.6-4.9 48.5 48.5 0 01-13.3-18.6s.9-.5 2.3-.6a3.3 3.3 0 01.2 0h.4c2 0 4.9.9 8.1 4.4 3.8 4 7.1 10.6 10 19.7zm-29.9-.9c-3.9 0-5.2-2-5.6-3a6 6 0 01-.4-3 8.5 8.5 0 012-.2 8 8 0 016.5 3c.2.4.8 1.4.3 2.3-.4.6-1.3 1-2.8 1zm-8.5-10.8a51.1 51.1 0 01-9-.7c-3.4-.6-5.3-3.5-6.4-5.9-1-2.5-1.4-5-1.4-5 10.6.3 15.7 3.4 18 6a9.4 9.4 0 012.6 5.5s-1.6.2-3.8.2zm11-11a42.7 42.7 0 01-2.4-3.4c-1.3-2-2.4-4-2.4-5.6 0-1.7-.4-5-.6-7l-.6-4.5c.3 0 6.6 2.4 6.6 8.4s-.6 12-.6 12v.1zm-8.2-.6h-.2a43.7 43.7 0 01-18.2-10.8c-1.7-2-2.8-5.2-3.1-9.4-.2-3 0-5.5 0-5.8a3.3 3.3 0 011.1-.1c1.4 0 3 .6 5 2a39.6 39.6 0 015.2 4.4c3.2 3.2 5.7 6.4 5.7 6.4.3.4 2 3.7 3.5 6.9a22 22 0 011.6 4.6c.1.6.2 1 0 1.4a.7.7 0 01-.3.4.9.9 0 01-.4 0z"/>
+  <use width="100%" height="100%" transform="matrix(-1 0 0 1 593.7 0)" xlink:href="#a"/>
+  <path fill="#d47600" d="M519 76.4l-1.8.7-.8.3-2.2-.1-2.2 1-3.8 2.6-.1.1-1.5.4-1.3-.6-.7.4-.3 1.5-.7 1.1-.9.6-3 .3-2.5 1.4-3.4-1-1.5.7-3.3 3-1.7.7h-.5l-2.3-.1-.9.3-1.4 1.3-2.6.2-.9.6-1.3 2.6L476 96l-.8.1-.8-.3-.7.1-.3 1.7-.6.7-1.8.6-1.4 1.2-1.3.6h-2l-1.7 1-3.1.2-1.3 1.2-.3.3-.6.3-1 .6-.2.2-1.2-.2-1.4.5-.6-.8-1 .5-1.2.1-1.6-.7-1.3-.6-.9.2-.3 1.5v.2l-1 1.2-1.7 1.1-.2.3-2 2.6-3.8 4-3.2 1.6-3.3 1-2.3 1.9-6 3-9.7 4.8-2 .6-2.8.4-5 1.9-4.4 1.3-.3.1-.8.3-6.3 1.9-2.9-.4-1.7.7-4.5-.5h-3.1l-2 .4-3.7 1.8-6.3 3-2 2-3.2 1.6-3.8 1.2v-1.6l-1.3.4-1 .3-3 .4h-1.7l-1.1-.3h-.2l-6.2 2.1-7 .7-3.5 1.1H333l-1.6.5-3.2.4-1.2-.3-.2-.1-9.4.4-4.3-.5-2 .5-3.5-1.2-5-.6-1.2-.3-2.6-.8-1.2.7-1 .1-2-.8h-.8l-1.8.6-1-.2-1-.8-2.1-.3-1.4-1.1-7.5 1-2-.6-6.9-2h-1l-1.4 1-2 .8-1.9.4-2.4.1-2.8-.7-2.8-1.4-1.1-.3-2.4.3h-.7l-4.4-2.3-5.6-3.5-3.8-1.9-1.5-.2-.2.7.7 2.2.3 2.3v2l-.1 1.3.3 1.1 1.4 1.6.6 1.5.4 4.2v4.3l-.7 6.8-.2 1-.8 3.6-.7 3.3-2.9 8.7-.7 1-2 1.3-4.3 3-3.2 1.8-1 .4-2.6.2H219l-2-1.1-2-.5-2.6-1.9-2.8-.6-3.2-1.8-.8-1-1.7-.2-2.4-.7-.9-.3-.6-.1-3-.1-2.9-1.3-1.5-.4h-2l-2.1 1-1.1.4-1.4-.5h-1l-1 1.7-.2.3-.8.4h-1.7l-.8.3-1.1.5-1 .4-.5.2h-.3l-.5.2h-.6l-1.2-.6-.6-.3-1-.2-.5.3-.1 1.9-.5 1.1-1.6 1.4-1.6 1.4-1 1.6-3 6.7-1.9 2.7-.5.7-2 2.1-1.7 1.3-3.9 3-3.7 1.5-3.2.6h-1.6l-3-.4-2.6-.8-3-1.8-3.1-2.6-4.7-4.5-.6-.4-.2-.1-1.4-1h-1.1l-.4.8-.3 1-.2.9-.5 5v.3l.3 2.1 3.6 5 1 2.6.2.3.7 1.2.6 1 1.3 3.6-.9 2 .4 1.4-1 .8-.2 1.2 3.1 4 .7 1.7-.7 2.4-1.3 1.4-.3.3.2 1 1.4 1.4 2.5 2.2 1.3 3.2 1 1 1.2-.3.6.5h1l1 1 .6.2 1 .5.8 1 .1 3.2 1.5 3.8v2.5l1 1.5.2 1.2-.5 3.3 1.2 1 1.2-.2.8.1 1.3 1.1 1.6 2.4 1.6-.2 1 .4 4.7 4.3 1 .6.9.4 1 1 1.4-1h.2l1.6-.2.7.5 1.4.9h1.7l4 1.2 1.6.4 3.4 2.1 1.5.9.8.7 1.2 1 2.2 1 2 .4 1 .2.9.3 4.2 1.7 2.3.5 2 .8 1.6.5h1.2l1.6-1.3h1.5l1.3.2 1.3-.2 2-1.2.3-.6 1.4-.6 4.8-.6 1.4.4 3.6-1.5 2.4.6 2-.7 4.7 1 1.2.9 1.4 1.5h1.7l-.7 1.1 2 2.2 1.9 2.7.1.4 1.3 3.9 1 1.4.7 1.9v1.2l-1 .9-.2.4v.2l.2.5.4-.2.7-.4 1-.2 1.6.2 1.1.1 1.7-.8 1.2-.6 1.8.8h2l.9.3 2.4 1.1 1.2.1.4-.3.3-.6-.1-.8-1-1.1-2-2.4-.8-1.2-.6-1.7-.2-2.2-.2-1.5.3-2 .5-.7.4-1.6.1-.4 1.2-1.5 3-2 3.2-2.8 2.5-1.7 2.6-1.1v-.3l.4.1 6.6-2.3 3-.5 20 1.4.7-.2.7-1.9.3-.3.3-.2 2.2-1 1-.2 2.8.7 1.2.3 1.9-1h1.3l2.7-1.5h1.7l.7-.2 3.3-2.4 3.1-.9.8-.4.3-.2 3.3-1.7 2-1.6 1.8-1 2-.4 5-.4 1.1-1.7 2.2-.3 1.3-1.5 1.5-.6 1.1-1.6 1-1.3 1.2-.7 4.1-.3 4.8.6.7-.4 1-3.9 1.2-.7 3-4.5v-1.6l.1-1.4.5-2-.3-3.4.4-3.6 1.9-4.5 1.7-1.8 2.7-1.9 1.4-.6 2-.3h.2l.5-.2h9.2l2.3-.1 5.7 1h.4l1.9.7 2.2 1.7 2.4 2.3.4.4 1.5.7.5.2 1.2-.2 1.8-1 1.4-1 1.8-1v-.2l1.1-1.5.4-.7 3.6-1.4 4.2-.2.5-.3h.2l1.1-1.4h1l2.6 1 1.7-.4 1.4.5 1.1-.1 2-.3 2.3 1.6 1.3.2 4.5 2.6h.4l.2.1.5-.2.8-.2h.1l.1.1.6.7.7.1.8-1-.3-.6-.1-.2-1.7-.3-1.4-2.5 1.4-1.5-2.2-2.6-.4-.5v-.1l-.8-1.2-3.8-5.8-5-4-1.7-1.3-.6-.5-2.7-2.7-1.9-2.5-.2-.5-.4-.9-1.1-2.4-2-1.5-1.6-1.8-3.4-4.6-.5-.7-.8-.5h-1.7l-.1-.2h-.1v-.1l.8-.8 1-.2.3-.9-1.7-4.9v-.2l-.1-1.5 1.3-7.1.2-.9 2.4-4.7 1.4-1.2 1.6-3.1 1.4-2 1.3-1.3.2-.1 2.3-1.4 2-.3 1.9-.3 3.3 1h3l.7-.1 1.4-.2 2.3-.7 1.1-.7.6-.8 1.2-4 .4-1.3.7-1.4 4.3-4.9 3.2-3 7.2-5.2 3.5-2.1 1.8-1.1 16.1-7.2 4.2-4.2 2.2-2.2 3.8-2.6 4.5-1.9 4-3 .8-1.1 1-3.5 1-.2.7-1.7.3-.5 3.1-2.2.4-.2 12.3-6.2 1.8.3 1-1.5 3.5-.6h.7l.9-.5.7-1.3v-.3l.1-3.4.8-.9.4-2.2.4-.6.4-.5 1-.7-.2-.4z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cz.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cz.svg
new file mode 100644
index 0000000..8767581
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/cz.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-cz" viewBox="0 0 640 480">
+  <path fill="#ffffff" d="M0 0h640v240H0z"/>
+  <path fill="#d7141a" d="M0 240h640v240H0z"/>
+  <path fill="#11457e" d="M360 240 0 0V480z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/da.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/da.svg
new file mode 100644
index 0000000..ab47e0c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/da.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-dk" viewBox="0 0 640 480">
+  <path fill="#c8102e" d="M0 0h640.1v480H0z"/>
+  <path fill="#fff" d="M205.7 0h68.6v480h-68.6z"/>
+  <path fill="#fff" d="M0 205.7h640.1v68.6H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/de.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/de.svg
new file mode 100644
index 0000000..1acf302
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/de.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-de" viewBox="0 0 640 480">
+  <path fill="#ffce00" d="M0 320h640v160H0z"/>
+  <path d="M0 0h640v160H0z"/>
+  <path fill="#d00" d="M0 160h640v160H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/dj.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/dj.svg
new file mode 100644
index 0000000..f328f3a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/dj.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-dj" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="dj-a">
+      <path fill-opacity=".7" d="M-40 0h682.7v512H-40z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#dj-a)" transform="translate(37.5) scale(.94)">
+    <path fill="#0c0" d="M-40 0h768v512H-40z"/>
+    <path fill="#69f" d="M-40 0h768v256H-40z"/>
+    <path fill="#fffefe" d="M-40 0l382.7 255.7L-40 511V0z"/>
+    <path fill="red" d="M119.8 292L89 270l-30.7 22.4L69.7 256l-30.6-22.5 37.9-.3 11.7-36.3 12 36.2h37.9l-30.5 22.7 11.7 36.4z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/dk.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/dk.svg
new file mode 100644
index 0000000..ab47e0c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/dk.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-dk" viewBox="0 0 640 480">
+  <path fill="#c8102e" d="M0 0h640.1v480H0z"/>
+  <path fill="#fff" d="M205.7 0h68.6v480h-68.6z"/>
+  <path fill="#fff" d="M0 205.7h640.1v68.6H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/dm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/dm.svg
new file mode 100644
index 0000000..e35d7ca
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/dm.svg
@@ -0,0 +1,152 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-dm" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="dm-a">
+      <path fill-opacity=".7" d="M-85 0h682.7v512H-85z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#dm-a)" transform="translate(79.7) scale(.94)">
+    <path fill="#108c00" d="M-258.3 0H769.2v512H-258.3z"/>
+    <path fill="#ffd600" d="M-260 178.2H772.6v50.1H-260z"/>
+    <path fill="#ffd600" d="M181 0h48.5v512h-48.4z"/>
+    <path d="M227.8 0h48.4v512h-48.4z"/>
+    <path d="M-260 226.6H772.6v50.2H-260z"/>
+    <path fill="#fff" d="M-260 276.8H772.6v50.1H-260z"/>
+    <path fill="#fff" d="M276.2 0h48.5v512h-48.5z"/>
+    <rect width="273.8" height="275" x="-394.6" y="-393.9" fill="#e72910" ry="137.5" transform="scale(-1)"/>
+    <g stroke-width="1pt">
+      <path d="M250.5 137l5.6-16 5.1 15.7s17.1.5 17.1.2-13.5 10.3-13.5 10.3l6.1 17.6c-.2-.5-14.8-10.9-14.8-10.9s-14.8 10.4-14.5 10.4 5.6-17 5.6-17l-13.3-10.1 16.6-.3z"/>
+      <path fill="#ffe700" d="M251.3 137.7L256 124l4.4 13.6s14.9.4 14.9.2-11.7 9-11.7 9l5.2 15.2c-.2-.5-12.8-9.4-12.8-9.4s-12.8 9-12.6 9 5-14.8 5-14.8l-11.6-8.8 14.4-.2z"/>
+      <path fill="#108c00" d="M253.3 140l2.8-8 2.6 7.9s8.5.2 8.5 0-6.7 5.2-6.7 5.2l3 8.8c-.1-.3-7.4-5.4-7.4-5.4l-7.2 5.2c.2 0 2.8-8.5 2.8-8.5l-6.6-5 8.2-.2z"/>
+    </g>
+    <g stroke-width="1pt">
+      <path d="M356.9 211.8l5.6-16 5 15.7s17.2.6 17.2.3-13.5 10.3-13.5 10.3l6 17.6c-.2-.5-14.7-10.9-14.7-10.9s-14.8 10.4-14.5 10.4 5.6-17 5.6-17L340.3 212l16.6-.3z"/>
+      <path fill="#ffe700" d="M357.6 212.6l4.9-13.9 4.4 13.7s14.8.4 14.8.2-11.7 9-11.7 9l5.3 15.1c-.2-.4-12.8-9.4-12.8-9.4s-12.8 9-12.6 9 4.9-14.8 4.9-14.8l-11.5-8.7 14.3-.2z"/>
+      <path fill="#108c00" d="M359.7 214.9l2.8-8 2.5 7.8 8.6.2-6.8 5.1s3.2 9 3 8.8c0-.3-7.3-5.4-7.3-5.4l-7.3 5.1 2.8-8.5-6.6-5 8.3-.1z"/>
+    </g>
+    <g stroke-width="1pt">
+      <path d="M325.9 330.6l5.6-16 5 15.8s17.2.5 17.2.3-13.5 10.3-13.5 10.3l6 17.5c-.2-.5-14.7-10.8-14.7-10.8S316.7 358 316.9 358s5.7-17 5.7-17l-13.3-10 16.6-.3z"/>
+      <path fill="#ffe700" d="M326.6 331.4l4.9-13.8 4.4 13.6s14.8.5 14.8.2-11.7 9-11.7 9l5.3 15.2c-.2-.5-12.8-9.4-12.8-9.4s-12.8 9-12.6 9 4.9-14.8 4.9-14.8l-11.5-8.7 14.3-.3z"/>
+      <path fill="#108c00" d="M328.7 333.7l2.8-8 2.5 7.9s8.6.3 8.6.1-6.8 5.2-6.8 5.2l3 8.7c0-.2-7.3-5.4-7.3-5.4l-7.3 5.2 2.8-8.5-6.6-5 8.3-.2z"/>
+    </g>
+    <g stroke-width="1pt">
+      <path d="M177.2 330.6l5.6-16 5 15.8s17.1.5 17.1.3-13.5 10.3-13.5 10.3l6.2 17.5c-.3-.5-14.8-10.8-14.8-10.8S168 358 168.2 358s5.7-17 5.7-17l-13.3-10 16.6-.3z"/>
+      <path fill="#ffe700" d="M178 331.4l4.8-13.8 4.4 13.6s14.8.5 14.8.2-11.7 9-11.7 9l5.3 15.2c-.2-.5-12.8-9.4-12.8-9.4s-12.8 9-12.6 9 4.9-14.8 4.9-14.8l-11.5-8.7 14.3-.3z"/>
+      <path fill="#108c00" d="M180 333.7l2.8-8 2.5 7.9s8.6.3 8.6.1-6.8 5.2-6.8 5.2l3 8.7c0-.2-7.3-5.4-7.3-5.4l-7.3 5.2 2.8-8.5-6.6-5 8.3-.2z"/>
+    </g>
+    <g stroke-width="1pt">
+      <path d="M150 208.7l5.6-16 5.1 15.8s17.1.5 17.1.2-13.5 10.4-13.5 10.4l6.1 17.5c-.3-.5-14.8-10.8-14.8-10.8S140.8 236 141.1 236s5.6-17 5.6-17l-13.3-10 16.6-.3z"/>
+      <path fill="#ffe700" d="M150.8 209.5l4.8-13.8 4.5 13.6s14.7.5 14.7.2-11.7 9-11.7 9l5.3 15.2c-.2-.5-12.8-9.4-12.8-9.4s-12.8 9-12.5 9 4.8-14.8 4.8-14.8l-11.5-8.7 14.4-.3z"/>
+      <path fill="#108c00" d="M152.8 211.8l2.8-8 2.6 7.9 8.5.1-6.7 5.2 3 8.7c-.1-.2-7.4-5.4-7.4-5.4l-7.2 5.2c.2 0 2.8-8.5 2.8-8.5l-6.6-5 8.2-.2z"/>
+    </g>
+    <g stroke-width="1pt">
+      <path d="M324.6 174.1l-5.6 16-5-15.7s-17.2-.5-17.2-.3 13.5-10.3 13.5-10.3l-6-17.5c.2.5 14.7 10.8 14.7 10.8s14.8-10.3 14.5-10.3-5.6 17-5.6 17l13.3 10-16.6.3z"/>
+      <path fill="#ffe700" d="M323.9 173.3c0 .3-5 13.9-5 13.9l-4.3-13.6s-14.8-.5-14.8-.3 11.7-8.9 11.7-8.9l-5.3-15.2c.2.5 12.8 9.4 12.8 9.4s12.8-9 12.6-9-4.9 14.8-4.9 14.8l11.5 8.7-14.4.2z"/>
+      <path fill="#108c00" d="M321.8 171l-2.8 8-2.5-7.8s-8.6-.3-8.6-.1 6.8-5.2 6.8-5.2l-3-8.7c0 .2 7.3 5.4 7.3 5.4l7.3-5.2c-.2 0-2.9 8.5-2.9 8.5l6.7 5-8.3.2z"/>
+    </g>
+    <g stroke-width="1pt">
+      <path d="M367.3 290.3l-5.6 16-5-15.8s-17.2-.5-17.2-.2S353 280 353 280l-6-17.6c.2.5 14.7 10.8 14.7 10.8s14.8-10.3 14.5-10.3-5.6 17-5.6 17L384 290l-16.6.3z"/>
+      <path fill="#ffe700" d="M366.6 289.5l-4.9 13.8-4.4-13.6s-14.8-.4-14.8-.2 11.7-9 11.7-9l-5.3-15.2c.2.5 12.8 9.4 12.8 9.4s12.8-9 12.6-9-4.9 14.8-4.9 14.8l11.5 8.8-14.4.2z"/>
+      <path fill="#108c00" d="M364.5 287.2l-2.8 8-2.5-7.9s-8.6-.2-8.6 0 6.8-5.2 6.8-5.2l-3-8.8c0 .3 7.3 5.4 7.3 5.4l7.3-5.2c-.2 0-2.9 8.6-2.9 8.6l6.7 5-8.3.1z"/>
+    </g>
+    <g stroke-width="1pt">
+      <path d="M261.4 375.3l-5.6 16-5-15.8s-17.2-.5-17.2-.3 13.5-10.3 13.5-10.3l-6-17.5c.2.5 14.7 10.8 14.7 10.8s14.8-10.3 14.5-10.3-5.6 17-5.6 17L278 375l-16.6.3z"/>
+      <path fill="#ffe700" d="M260.7 374.4l-4.9 14-4.4-13.7s-14.8-.5-14.8-.2 11.7-9 11.7-9l-5.3-15.2c.2.5 12.8 9.4 12.8 9.4s12.8-9 12.6-9-4.9 14.8-4.9 14.8l11.5 8.7-14.3.3z"/>
+      <path fill="#108c00" d="M258.6 372.2l-2.8 8-2.5-7.9s-8.6-.3-8.6-.1 6.8-5.2 6.8-5.2l-3-8.7c0 .2 7.3 5.4 7.3 5.4l7.3-5.2-2.8 8.5 6.6 5-8.3.2z"/>
+    </g>
+    <g stroke-width="1pt">
+      <path d="M162 290.3l-5.7 16-5-15.8s-17.2-.5-17.2-.2 13.5-10.3 13.5-10.3l-6-17.6c.2.5 14.7 10.8 14.7 10.8L171 263l-5.7 17 13.3 10.1-16.6.3z"/>
+      <path fill="#ffe700" d="M161.2 289.5l-4.9 13.8-4.4-13.6s-14.8-.4-14.8-.2 11.7-9 11.7-9l-5.3-15.2c.2.5 12.8 9.4 12.8 9.4s12.8-9 12.6-9-4.9 14.8-4.9 14.8l11.5 8.8-14.3.2z"/>
+      <path fill="#108c00" d="M159.1 287.2l-2.8 8-2.5-7.9s-8.6-.2-8.6 0 6.8-5.2 6.8-5.2l-3-8.8c0 .3 7.3 5.4 7.3 5.4l7.3-5.2-2.8 8.6 6.6 5-8.3.1z"/>
+    </g>
+    <g stroke-width="1pt">
+      <path d="M198.7 175.8l-5.6 16-5.2-15.7s-17-.5-17-.3 13.5-10.3 13.5-10.3l-6.1-17.5c.2.5 14.7 10.8 14.7 10.8s14.8-10.3 14.6-10.3-5.6 17-5.6 17l13.2 10-16.5.4z"/>
+      <path fill="#ffe700" d="M197.9 175l-4.9 14-4.4-13.7s-14.8-.5-14.8-.2 11.7-9 11.7-9l-5.3-15.2c.2.5 12.8 9.4 12.8 9.4s12.8-9 12.6-9-4.8 14.8-4.8 14.8l11.4 8.7-14.3.3z"/>
+      <path fill="#108c00" d="M195.8 172.8l-2.8 8-2.5-7.9s-8.5-.3-8.5-.1 6.7-5.2 6.7-5.2l-3-8.7c0 .2 7.3 5.4 7.3 5.4l7.3-5.2-2.8 8.5 6.6 5-8.3.2z"/>
+    </g>
+    <g transform="matrix(1.04 0 0 1.04 -250.6 359.4)">
+      <g fill="#009200" stroke="#000" stroke-width="2.5" transform="matrix(.16 -.02 0 .18 429.8 -215.6)">
+        <ellipse cx="680.2" cy="586.1" rx="30.8" ry="189.8" transform="matrix(1.4 0 0 1 -534.3 263.7)"/>
+        <ellipse cx="680.2" cy="586.1" rx="30.8" ry="189.8" transform="matrix(1.5 0 0 1 -547.2 267)"/>
+        <ellipse cx="680.2" cy="586.1" rx="30.8" ry="189.8" transform="matrix(1.2 0 0 1.1 -365 214.1)"/>
+      </g>
+      <g stroke="#000" transform="translate(72.9 -9.8)">
+        <path fill="#a95600" stroke-width=".5" d="M388.5-53c6-.3 3.4-3.3 6.4-5 3-1.6 7.3-.6 8.6 1.4 1.3 2 .3 4 2 4s47-2.5 48.6-.9c1.6 1.7 2 5 .3 6.3-1.6 1.4-58.9 3-60.9 1.6s-5-7-5-7.4z"/>
+        <path fill="#ff0" stroke-width="3.9" d="M529.6 405.5c0 40 45.6 27.8 46.8 61.2-.7 35.4-76.7 3.5-78.6-61.2 1.9-64.8 75-98 76.7-61 1.2 30.6-45 21-45 61z" transform="matrix(.15 0 0 .1 340.4 -81.7)"/>
+        <path fill="#ff0" stroke-width="3.9" d="M529.6 405.5c0 40 45.6 27.8 46.8 61.2-.7 35.4-76.7 3.5-78.6-61.2 1.9-64.8 75-98 76.7-61 1.2 30.6-45 21-45 61z" transform="matrix(.15 0 0 .1 344.4 -81.6)"/>
+        <path fill="#ff0" stroke-width="3.9" d="M529.6 405.5c0 40 45.6 27.8 46.8 61.2-.7 35.4-76.7 3.5-78.6-61.2 1.9-64.8 75-98 76.7-61 1.2 30.6-45 21-45 61z" transform="matrix(.15 0 0 .1 348.7 -81.8)"/>
+        <path fill="#ff0" stroke-width="3.9" d="M529.6 405.5c0 40 45.6 27.8 46.8 61.2-.7 35.4-76.7 3.5-78.6-61.2 1.9-64.8 75-98 76.7-61 1.2 30.6-45 21-45 61z" transform="matrix(.15 0 0 .1 352.7 -81.8)"/>
+        <ellipse cx="478.4" cy="-41.1" fill="#a95600" stroke-width=".4" rx="3.5" ry="3.4" transform="matrix(1.1 .02 -.02 1.15 -75.6 4.7)"/>
+      </g>
+      <g fill="#009200" stroke="#000" stroke-width="2.5" transform="rotate(-5.8 688.4 -625.2)">
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.17 0 0 .32 369.8 -361.6)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.17 0 0 .32 364 -362.7)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.17 0 0 .32 360.6 -370.6)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .35 369.3 -399.4)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 377.4 -379)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 373.2 -382.2)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 368 -386.7)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 363 -389.5)"/>
+      </g>
+      <path fill="#804bff" stroke="#000" stroke-width=".5" d="M482.6-141s-11.7 10-10.1 36.9c1.8 27 26.5 39.5 26.5 39.5s6.2-7.7 5.2-29.5c-2-31.8-13.8-45.7-13.8-45.7l-7.8-1.3z"/>
+      <g fill="#009200" stroke="#000" stroke-width="2.5" transform="rotate(4.5 181 769.9)">
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.17 0 0 .32 369.8 -361.6)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.17 0 0 .32 364 -362.7)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.17 0 0 .32 360.6 -370.6)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .35 369.3 -399.4)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 377.4 -379)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 373.2 -382.2)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 368 -386.7)"/>
+        <ellipse cx="427.1" cy="905" rx="20.8" ry="24.1" transform="matrix(.16 0 0 .33 363 -389.5)"/>
+      </g>
+      <ellipse cx="624.4" cy="606.1" fill="#c90000" stroke="#000" stroke-width="1pt" rx="58.3" ry="186.5" transform="matrix(.16 -.06 .06 .15 369.6 -145)"/>
+      <g fill="#009200" stroke="#000" transform="rotate(1 242.4 -1957.8)">
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.5" rx="10.8" ry="12.9" transform="matrix(.4 0 0 .3 445 -230.5)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 457.2 -236)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 452 -236)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.37 0 0 .27 449.5 -233.5)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.37 0 0 .27 449 -238)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 447 -238.8)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 448 -241.6)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.5" rx="10.8" ry="12.9" transform="matrix(.4 0 0 .3 432.8 -243.5)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.37 0 0 .27 446 -243.5)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 444.2 -247)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 436.1 -243.2)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 437.4 -243.9)"/>
+        <ellipse cx="218.1" cy="356.8" stroke-width="1.6" rx="10.8" ry="12.9" transform="matrix(.35 0 0 .3 439 -247)"/>
+      </g>
+      <g fill="#009200" stroke="#000" transform="matrix(.18 0 0 .2 421 -216.8)">
+        <ellipse cx="528.7" cy="564.5" stroke-width="2.5" rx="67.4" ry="205.6" transform="matrix(.98 -.3 .36 .87 -245.8 324.4)"/>
+        <ellipse cx="528.7" cy="646.1" stroke-width="2.5" rx="13.3" ry="40.8" transform="rotate(-23.4 630.5 660.9)"/>
+        <path stroke-width="1.5" d="M139.9 644c0 57.7-18.8 86.2-34.6 110.3 7.5-32.5 13-52.6 13-110.3 0-57.7 29.5-85.3 40.3-102-4.2 16.7-18.7 44.3-18.7 102z" transform="matrix(1.88 -.46 .95 1.18 -352.3 -10)"/>
+        <path stroke-width="1.5" d="M139.9 644c0 57.7-18.8 86.2-34.6 110.3 7.5-32.5 13-52.6 13-110.3 0-57.7 29.5-85.3 40.3-102-4.2 16.7-18.7 44.3-18.7 102z" transform="matrix(1.88 -.46 .95 1.18 -348.4 44)"/>
+        <path stroke-width="1.5" d="M139.9 644c0 57.7-18.8 86.2-34.6 110.3 7.5-32.5 13-52.6 13-110.3 0-57.7 29.5-85.3 40.3-102-4.2 16.7-18.7 44.3-18.7 102z" transform="matrix(1.87 -.5 .98 1.16 -362 105.8)"/>
+        <ellipse cx="528.7" cy="646.1" stroke-width="1.4" rx="13.3" ry="40.8" transform="matrix(1.8 -.4 .7 1.64 -915.6 -221)"/>
+        <ellipse cx="528.7" cy="646.1" stroke-width="1.6" rx="13.3" ry="40.8" transform="matrix(1.63 -.23 .54 1.35 -739.5 -91.8)"/>
+        <ellipse cx="528.7" cy="646.1" stroke-width="1.6" rx="13.3" ry="40.8" transform="matrix(1.63 -.2 .5 1.36 -750.6 -91.8)"/>
+        <ellipse cx="528.7" cy="646.1" stroke-width="2.1" rx="13.3" ry="40.8" transform="matrix(1.3 -.2 .47 1 -531 47.6)"/>
+        <ellipse cx="528.7" cy="646.1" stroke-width="2.1" rx="13.3" ry="40.8" transform="matrix(1.33 -.13 .4 1.03 -517.9 12.2)"/>
+        <path stroke-width="2.1" d="M145.7 569.5c0 34-6.7 61.6-15 61.6s-15-27.6-15-61.6" transform="matrix(1.03 -.5 .46 1.18 12.8 -14.5)"/>
+        <ellipse cx="528.7" cy="646.1" stroke-width="2.1" rx="13.3" ry="40.8" transform="matrix(1.33 -.13 .4 1.03 -519.5 -34.4)"/>
+        <ellipse cx="528.7" cy="646.1" stroke-width="2.1" rx="13.3" ry="40.8" transform="matrix(1.33 -.1 .38 1.04 -534 -40.1)"/>
+        <path stroke-width="2.9" d="M145.7 569.5c0 34-6.7 61.6-15 61.6s-15-27.6-15-61.6" transform="matrix(.67 -.47 .46 .8 39.5 143.3)"/>
+        <path stroke-width="2.9" d="M145.7 569.5c0 34-6.7 61.6-15 61.6s-15-27.6-15-61.6" transform="matrix(.67 -.47 .46 .8 51.1 125.8)"/>
+        <path stroke-width="2.1" d="M145.7 569.5c0 34-6.7 61.6-15 61.6s-15-27.6-15-61.6" transform="matrix(.94 -.64 .64 1.1 -40.2 -10.7)"/>
+        <path stroke-width="2.7" d="M145.7 569.5c0 34-6.7 61.6-15 61.6s-15-27.6-15-61.6" transform="matrix(.67 -.52 .46 .88 68.6 71.2)"/>
+      </g>
+      <g fill="#804bff" stroke="#000" stroke-width="2.5">
+        <path d="M276.3 345.4c-12.3 9.2.4 25.2 12 30.7 13 7.7 86.6 58.2 136.3 12-40.8.8-118.7-63.2-148.3-42.7z" transform="matrix(.16 0 0 .22 458 -214.3)"/>
+        <path d="M276.3 345.4c-12.3 9.2.4 25.2 12 30.7 13 7.7 86.6 58.2 136.3 12-40.8.8-118.7-63.2-148.3-42.7z" transform="matrix(.16 0 0 .22 456.6 -220.2)"/>
+        <path d="M276.3 345.4c-12.3 9.2.4 25.2 12 30.7 13 7.7 86.6 58.2 136.3 12-40.8.8-118.7-63.2-148.3-42.7z" transform="matrix(.16 0 0 .22 454.8 -225.8)"/>
+        <path d="M276.3 345.4c-12.3 9.2.4 25.2 12 30.7 13 7.7 86.6 58.2 136.3 12-40.8.8-118.7-63.2-148.3-42.7z" transform="matrix(.16 0 0 .22 450.9 -232.2)"/>
+      </g>
+      <g transform="rotate(1 -589.6 681.6)">
+        <path fill="#804bff" stroke="#000" stroke-width="2.5" d="M211.2 247.3c21.7-12 56.6-9.8 79.7 11.2 19.4 17 45.3 75.2 70.3 92.8a57.7 57.7 0 01-42.2-15.2c-28.8 15.5-38.1 16.7-64 15.7-35.8-1.4-62.4-17.7-68-40.6-6.3-21.8 4.8-52.5 24.2-63.9z" transform="matrix(.2 -.04 .05 .18 407.8 -213.6)"/>
+        <ellipse cx="287.2" cy="323" fill="red" stroke="#000" stroke-width="2.5" rx="14.2" ry="15" transform="matrix(.25 0 0 .13 401.8 -215.2)"/>
+        <ellipse cx="204.6" cy="348.3" fill="#ff0" stroke="#000" stroke-width="2.5" rx="23.3" ry="15.9" transform="matrix(.2 -.08 .07 .17 398.7 -208)"/>
+        <circle cx="283.9" cy="333.9" r="5.8" transform="matrix(.2 0 0 .2 411.3 -233.7)"/>
+        <path fill="#ff0" stroke="#000" stroke-width="6.6" d="M516.8 260.3c4.4 18-6.7 43-33.1 52.6-26.8 13.2-46.1 41.8-55.7 88-47.2-103.2-23-148.3 20.6-160.3 37.4-14.4 60.4-13.4 68.2 19.7z" transform="matrix(.1 0 0 .08 417.9 -191.5)"/>
+        <circle cx="199" cy="362.4" r="4.7" transform="matrix(.2 0 0 .2 418.7 -235)"/>
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/do.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/do.svg
new file mode 100644
index 0000000..97bae5f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/do.svg
@@ -0,0 +1,6745 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-do" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="do-a">
+      <path fill-opacity=".7" d="M-222.6-115.2h958v718.4h-958z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#do-a)" transform="matrix(.67 0 0 .67 148.7 77)">
+    <path fill="#00319c" fill-rule="evenodd" d="M322 329h446.5v273.9H322z"/>
+    <path fill="#d62918" fill-rule="evenodd" d="M-256.7 329.8h445.2v273h-445.2z"/>
+    <path fill="#00319c" fill-rule="evenodd" d="M-255.8-115.2h445.2v305.4h-445.2z"/>
+    <path fill="#d62918" fill-rule="evenodd" d="M324.6-112.7h443V193h-443z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M-256.4 190.1H769.5v141.7h-1026z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M187.4-113.7h138.3v717H187.4z"/>
+    <path fill="#cecece" d="M246.5 194.3l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M247.2 194.3l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M247.9 194.3l.7.6-.7-.6z"/>
+    <path fill="#848c9c" d="M252.8 194.3l.7.6-.7-.6z"/>
+    <path fill="#848ca5" d="M254 194.5l.4.2-.4-.2z"/>
+    <path fill="#848c9c" d="M254.9 194.3l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M259.8 194.3l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M260.5 194.3l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M261.2 194.3l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M241.5 195l.7.6-.7-.7z"/>
+    <path fill="#bdbdbd" d="M242.2 195l.7.6-.7-.7z"/>
+    <path fill="#8c8c8c" d="M243 195l.6.6-.7-.7z"/>
+    <path fill="#42425a" d="M243.7 195l.7.6-.8-.7z"/>
+    <path fill="#425a84" d="M244.3 195l.7.6-.7-.7z"/>
+    <path fill="#00184a" d="M245.5 195.2l.5.2-.5-.2z"/>
+    <path fill="#002984" d="M247 195.2l.4.2-.5-.2z"/>
+    <path fill="#003994" d="M235.7 201.5a59 59 0 00-26.7 4.9c-4.8 2.8-4.3 10.7 2.1 10.5v.6h-1.4v.7l10.6-2.7v-.6H216v-.7h5l-1.4-2.7 25.3-2.7-1.4-4.7a69 69 0 0126 2v.7l-5.6-1.3c.6 2.9 4 2.2 6.3 1.3l-7 1.4v.6l16.2 1.5 16.8 3.9v.7l-9.1-1.4v.7l11.2 3.3-2-2v-.6l2.7 3.3c4.5.2 7.9 1.2 10.6 4.7l-9.8-4 5.6 12.7h.7v-2h.7v2l6.3-1.3c-1.6-6.8-4.5-14.8-11.2-18.1.6-2.6 0-3.7-2.2-5.4 2.6 5.2-1.7 7.3-5.6 3.4l-1.4 1.3 1.4-4.7-4.2 4 .7-4.6h-.7l-.7 4-2.1-2-.7 2-11.3-1.4v-6l1.4 2h.7v-2l3.5 2h.7l14.1.7.7 5.3h.7l2.1-4.6a74.3 74.3 0 00-26.7-4.7c.5-4.6-4.5-5.4-8.4-6-6.8-1-27.4-3.3-28.2 6z"/>
+    <path fill="#002984" d="M261 195.2l.5.2-.5-.2z"/>
+    <path fill="#00184a" d="M262.4 195.2l.5.2-.5-.2z"/>
+    <path fill="#314a7b" d="M263.4 195l.7.6-.8-.7z"/>
+    <path fill="#42425a" d="M264 195l.8.6-.8-.7z"/>
+    <path fill="#8c8c8c" d="M264.8 195l.6.6-.6-.7z"/>
+    <path fill="#ada5a5" d="M265.5 195l.7.6-.7-.7z"/>
+    <path fill="#dedede" d="M266.2 195l.7.6-.7-.7z"/>
+    <path fill="#ada5a5" d="M239.4 195.6l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M240.1 195.6l.7.7-.7-.7z"/>
+    <path fill="#21315a" d="M240.8 195.6l.7.7-.7-.7z"/>
+    <path fill="#00215a" d="M241.5 195.6l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M242.2 195.6l.7.7-.7-.7m23.3 0l.6.7-.7-.7z"/>
+    <path fill="#00216b" d="M266.2 195.6l.7.7-.7-.7z"/>
+    <path fill="#10295a" d="M266.9 195.6l.7.7-.7-.7z"/>
+    <path fill="#636b7b" d="M267.6 195.6l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M268.3 195.6l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M237.3 196.3l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M238 196.3l.7.7-.7-.7z"/>
+    <path fill="#10214a" d="M238.7 196.3l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M239.4 196.3l.7.7-.7-.7z"/>
+    <path fill="#184a8c" d="M246.5 196.3l.7.7-.7-.7z"/>
+    <path fill="#5a6b63" d="M247.2 196.3l.7.7-.7-.7z"/>
+    <path fill="#295284" d="M247.9 196.3l.7.7-.7-.7m1.4 0l.7.7-.7-.7zm4.2 0l.7.7-.7-.7z"/>
+    <path fill="#4a636b" d="M257.7 196.3l.7.7-.7-.7z"/>
+    <path fill="#7b7b52" d="M259.8 196.3l.7.7-.7-.7z"/>
+    <path fill="#5a6b63" d="M260.5 196.3l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M268.3 196.3l.7.7-.7-.7z"/>
+    <path fill="#10295a" d="M269 196.3l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M269.7 196.3l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M270.4 196.3l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M236 197l-.8 1.3.7-1.3z"/>
+    <path fill="#8c8c8c" d="M236.6 197l.7.6-.7-.6z"/>
+    <path fill="#10295a" d="M237.3 197l.7.6-.7-.6z"/>
+    <path fill="#5a6b63" d="M241.5 197l.7.6-.7-.6z"/>
+    <path fill="#7b7b52" d="M242.2 197l.7.6-.7-.6z"/>
+    <path fill="#ad9431" d="M243 197l.6.6-.7-.6z"/>
+    <path fill="#9c8c42" d="M243.7 197l.7.6-.8-.6z"/>
+    <path fill="#395273" d="M244.3 197l.7.6-.7-.6z"/>
+    <path fill="#8c8442" d="M246.5 197l.7.6-.7-.6z"/>
+    <path fill="#9c8c42" d="M247.9 197l.7.6-.7-.6z"/>
+    <path fill="#395273" d="M249.3 197l.7.6-.7-.6zm4.2 0l.7.6-.7-.6z"/>
+    <path fill="#9c8c42" d="M260.5 197l.7.6-.7-.6z"/>
+    <path fill="#bd9c29" d="M263.8 197.2l.5.2-.5-.2z"/>
+    <path fill="#295284" d="M264.8 197l.6.6-.6-.6z"/>
+    <path fill="#00184a" d="M270.4 197l.7.6-.7-.6z"/>
+    <path fill="#63636b" d="M271 197l.8.6-.7-.6z"/>
+    <path fill="#dedede" d="M271.8 197l.7.6-.7-.6z"/>
+    <path fill="#31394a" d="M236 197.6l.6.7-.7-.7z"/>
+    <path fill="#deb518" d="M241.5 197.6l.7.7-.7-.7z"/>
+    <path fill="#efbd08" d="M244.3 197.6l.7.7-.7-.7z"/>
+    <path fill="#bd9c29" d="M246.5 197.6l.7.7-.7-.7z"/>
+    <path fill="#efbd08" d="M247.9 197.6l.7.7-.7-.7z"/>
+    <path fill="#7b7b52" d="M255.6 197.6l.7.7-.7-.7z"/>
+    <path fill="#003994" d="M256.3 197.6l.7.7-.7-.7z"/>
+    <path fill="#4a636b" d="M257 197.6l.7.7-.7-.7z"/>
+    <path fill="#395273" d="M258.4 197.6l.7.7-.7-.7z"/>
+    <path fill="#184a8c" d="M262.6 197.6l.7.7-.7-.7z"/>
+    <path fill="#4a636b" d="M264.8 197.6l.6.7-.6-.7z"/>
+    <path fill="#10214a" d="M271.8 197.6l1.4 1.4-1.4-1.4z"/>
+    <path fill="#cecece" d="M272.5 197.6l.7.7-.7-.7z"/>
+    <path fill="#212139" d="M235.2 198.3l.7.7-.7-.7z"/>
+    <path fill="#bd9c29" d="M241.5 198.3l.7.7-.7-.7z"/>
+    <path fill="#cead21" d="M242.2 198.3l.7.7-.7-.7z"/>
+    <path fill="#003994" d="M243.2 198.7l.2.5-.2-.5z"/>
+    <path fill="#395273" d="M243.9 198.7l.2.5-.2-.5z"/>
+    <path fill="#6b735a" d="M245 198.3l.8.7-.7-.7z"/>
+    <path fill="#cead21" d="M247.2 198.3l.7.7-.7-.7z"/>
+    <path fill="#5a6b63" d="M248.6 198.3l.7.7-.7-.7z"/>
+    <path fill="#9c8c42" d="M255.6 198.3l.7.7-.7-.7z"/>
+    <path fill="#395273" d="M256.3 198.3l.7.7-.7-.7z"/>
+    <path fill="#9c8c42" d="M257 198.3l.7.7-.7-.7z"/>
+    <path fill="#184a8c" d="M258.4 198.3l.7.7-.7-.7z"/>
+    <path fill="#295284" d="M259.1 198.3l.7.7-.7-.7z"/>
+    <path fill="#8c8442" d="M262.6 198.3l.7.7-.7-.7z"/>
+    <path fill="#7b7b52" d="M264.8 198.3l.6.7-.6-.7z"/>
+    <path fill="#efefef" d="M273.2 198.3l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M234.5 199l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M235.2 199l.7.6-.7-.6z"/>
+    <path fill="#7b7b52" d="M241.5 199l.7.6-.7-.6z"/>
+    <path fill="#395273" d="M245 199l.8.6-.7-.6z"/>
+    <path fill="#295284" d="M245.8 199l.7.6-.7-.6z"/>
+    <path fill="#4a636b" d="M247.2 199l.7.6-.7-.6z"/>
+    <path fill="#deb518" d="M247.9 199l.7.6-.7-.6z"/>
+    <path fill="#ad9431" d="M248.6 199l.7.6-.7-.6m9.1 0l.7.6-.7-.6z"/>
+    <path fill="#395273" d="M259.4 199.4l.2.5-.2-.5z"/>
+    <path fill="#efbd08" d="M262.6 199l.7.6-.7-.6z"/>
+    <path fill="#ad9431" d="M263.4 199l.7.6-.8-.6z"/>
+    <path fill="#cead21" d="M264 199l.8.6-.8-.6z"/>
+    <path fill="#ad9431" d="M264.8 199l.6.6-.6-.6z"/>
+    <path fill="#002984" d="M272.5 199l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M273.2 199l.7.6-.7-.6m-38.7.6l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M235.4 200l.3.5-.3-.4z"/>
+    <path fill="#6b735a" d="M241.5 199.6l.7.7-.7-.7z"/>
+    <path fill="#bd9c29" d="M243 199.6l.6.7-.7-.7z"/>
+    <path fill="#184a8c" d="M245 199.6l.8.7-.7-.7z"/>
+    <path fill="#5a6b63" d="M245.8 199.6l.7.7-.7-.7z"/>
+    <path fill="#7b7b52" d="M247.2 199.6l.7.7-.7-.7z"/>
+    <path fill="#cead21" d="M247.9 199.6l.7.7-.7-.7z"/>
+    <path fill="#9c8c42" d="M255.6 199.6l.7.7-.7-.7z"/>
+    <path fill="#4a636b" d="M256.3 199.6l.7.7-.7-.7z"/>
+    <path fill="#deb518" d="M257 199.6l.7.7-.7-.7z"/>
+    <path fill="#5a6b63" d="M262 199.6l.6.7-.7-.7z"/>
+    <path fill="#4a636b" d="M263.4 199.6l.7.7-.8-.7z"/>
+    <path fill="#bd9c29" d="M264.5 199.9l.5.2-.5-.2z"/>
+    <path fill="#bdbdbd" d="M234.5 200.3l.7.7-.7-.7z"/>
+    <path fill="#395273" d="M241.5 200.3l.7.7-.7-.7z"/>
+    <path fill="#cead21" d="M243 200.3l.6.7-.7-.7z"/>
+    <path fill="#8c8442" d="M243.7 200.3l.7.7-.8-.7z"/>
+    <path fill="#395273" d="M244.3 200.3l.7.7-.7-.7z"/>
+    <path fill="#8c8442" d="M245.8 200.3l.7.7-.7-.7z"/>
+    <path fill="#5a6b63" d="M249.3 200.3l.7.7-.7-.7z"/>
+    <path fill="#7b7b52" d="M255.8 200.8l.3.4-.3-.5m1.2-.4l1.4 2-1.4-2z"/>
+    <path fill="#4a636b" d="M259.1 200.3l.7.7-.7-.7z"/>
+    <path fill="#bd9c29" d="M262 200.3l.6.7-.7-.7z"/>
+    <path fill="#deb518" d="M264 200.3l.8.7-.8-.7z"/>
+    <path fill="#ada5a5" d="M231.7 201l.7.6-.7-.6z"/>
+    <path fill="#42425a" d="M234.5 201l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M235.2 201l.7.6-.7-.6z"/>
+    <path fill="#7b7b52" d="M243 201l.6.6-.7-.6z"/>
+    <path fill="#bd9c29" d="M245.8 201l.7.6-.7-.6z"/>
+    <path fill="#cead21" d="M246.5 201l.7.6-.7-.6z"/>
+    <path fill="#395273" d="M247.2 201l.7.6-.7-.6z"/>
+    <path fill="#295284" d="M247.9 201l.7.6-.7-.6z"/>
+    <path fill="#deb518" d="M248.6 201l.7.6-.7-.6z"/>
+    <path fill="#bd9c29" d="M249.3 201l.7.6-.7-.6z"/>
+    <path fill="#7b7b52" d="M259.1 201l.7.6-.7-.6z"/>
+    <path fill="#ad9431" d="M262.6 201l.7.6-.7-.6z"/>
+    <path fill="#cead21" d="M264 201l.8.6-.8-.6z"/>
+    <path fill="#184a8c" d="M265.5 201l.7.6-.7-.6z"/>
+    <path fill="#002984" d="M272.5 201l.7.6-.7-.6z"/>
+    <path fill="#42425a" d="M273.2 201l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M276 201l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M278.8 201l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M223.3 201.6l.6.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M224 201.6l.6.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M225.1 201.9l.5.2-.5-.2z"/>
+    <path fill="#42425a" d="M226 201.6l.8.7-.7-.7z"/>
+    <path fill="#314a7b" d="M226.8 201.6l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M228 201.9l.4.2-.5-.2z"/>
+    <path fill="#00216b" d="M228.9 201.6l.7.7-.7-.7z"/>
+    <path fill="#9c8c42" d="M243 201.6l.6.7-.7-.7z"/>
+    <path fill="#ffce08" d="M245.8 201.6l.7.7-.7-.7z"/>
+    <path fill="#8c8442" d="M246.5 201.6l.7.7-.7-.7z"/>
+    <path fill="#6b735a" d="M248.6 201.6l.7.7-.7-.7z"/>
+    <path fill="#8c8442" d="M249.3 201.6l.7.7-.7-.7z"/>
+    <path fill="#184a8c" d="M250.7 201.6l.7.7-.7-.7z"/>
+    <path fill="#7b7b52" d="M251.4 201.6l.7.7-.7-.7z"/>
+    <path fill="#184a8c" d="M252 201.6l.8.7-.7-.7z"/>
+    <path fill="#395273" d="M254.9 201.6l.7.7-.7-.7m2.1 0l.7.7-.7-.7z"/>
+    <path fill="#5a6b63" d="M259.1 201.6l.7.7-.7-.7z"/>
+    <path fill="#bd9c29" d="M259.8 201.6l.7.7-.7-.7z"/>
+    <path fill="#8c8442" d="M261.2 201.6l.7.7-.7-.7z"/>
+    <path fill="#184a8c" d="M262.6 201.6l.7.7-.7-.7z"/>
+    <path fill="#395273" d="M264 201.6l.8.7-.8-.7m1.5 0l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M278.8 201.6l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M280 201.9l.5.2-.5-.2z"/>
+    <path fill="#314a7b" d="M281 201.6l.6.7-.7-.7z"/>
+    <path fill="#42425a" d="M281.6 201.6l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M282.3 201.6l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M283 201.6l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M283.8 201.6l.6.7-.6-.7z"/>
+    <path fill="#cecece" d="M284.4 201.6l.8.7-.8-.7m-65.4.7l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M219.7 202.3l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M220.4 202.3l.7.7-.7-.7z"/>
+    <path fill="#42425a" d="M221.1 202.3l.7.7-.7-.7z"/>
+    <path fill="#29396b" d="M221.8 202.3l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M222.5 202.3l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M223.3 202.3l.6.7-.7-.7z"/>
+    <path fill="#002984" d="M224 202.3l.6.7-.7-.7z"/>
+    <path fill="#00216b" d="M234.5 202.3l.7.7-.7-.7z"/>
+    <path fill="#8c8442" d="M242.2 202.3l.7.7-.7-.7z"/>
+    <path fill="#7b7b52" d="M243 202.3l.6.7-.7-.7z"/>
+    <path fill="#184a8c" d="M264 202.3l.8.7-.8-.7z"/>
+    <path fill="#7b7b52" d="M264.8 202.3l.6.7-.6-.7z"/>
+    <path fill="#295284" d="M265.5 202.3l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M271.8 202.3l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M284.2 202.5l.5.3-.5-.3z"/>
+    <path fill="#00184a" d="M285.1 202.3l.7.7-.7-.7z"/>
+    <path fill="#10295a" d="M285.9 202.3l.7.7-.7-.7z"/>
+    <path fill="#42425a" d="M286.6 202.3l.7.7-.7-.7z"/>
+    <path fill="#636b7b" d="M287.3 202.3l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M288 202.3l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M288.7 202.3l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M216.2 203l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M217 203l.6.6-.7-.6z"/>
+    <path fill="#525a6b" d="M217.6 203l.7.6-.7-.6z"/>
+    <path fill="#10295a" d="M218.3 203l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M219 203l.7.6-.7-.6z"/>
+    <path fill="#395273" d="M226.8 203l.7.6-.7-.6z"/>
+    <path fill="#00184a" d="M234.5 203l.7.6-.7-.6z"/>
+    <path fill="#00215a" d="M271.8 203l-.7 1.3.7-1.3z"/>
+    <path fill="#395273" d="M275.3 203l.7.6-.7-.6z"/>
+    <path fill="#184a8c" d="M276 203l.7.6-.7-.6z"/>
+    <path fill="#395273" d="M277.4 203l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M288.7 203l.7.6-.7-.6z"/>
+    <path fill="#00184a" d="M289.4 203l.7.6-.7-.6z"/>
+    <path fill="#42425a" d="M290 203l.8.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M290.8 203l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M291.5 203l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M292.2 203l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M213.4 203.7l.7.6-.7-.7z"/>
+    <path fill="#7b7373" d="M214.1 203.7l.7.6-.7-.7z"/>
+    <path fill="#314a7b" d="M214.8 203.7l.7.6-.7-.7z"/>
+    <path fill="#00184a" d="M215.5 203.7l.7.6-.7-.7z"/>
+    <path fill="#002984" d="M216.2 203.7l.7.6-.7-.7z"/>
+    <path fill="#184a8c" d="M221.1 203.7l.7.6-.7-.7z"/>
+    <path fill="#6b735a" d="M221.8 203.7l.7.6-.7-.7z"/>
+    <path fill="#395273" d="M222.5 203.7l.7.6-.7-.7z"/>
+    <path fill="#5a6b63" d="M225.4 203.7l.7.6-.7-.7z"/>
+    <path fill="#efbd08" d="M226 203.7l.8.6-.7-.7z"/>
+    <path fill="#ffce08" d="M227.2 203.9l.5.2-.5-.2z"/>
+    <path fill="#4a636b" d="M228.2 203.7l.7.6-.7-.7z"/>
+    <path fill="#00215a" d="M234.5 203.7l.7.6-.7-.7z"/>
+    <path fill="#002984" d="M246.2 203.9l.5.2-.5-.2z"/>
+    <path fill="#00215a" d="M247.2 203.7l.7.6-.7-.7z"/>
+    <path fill="#00184a" d="M247.9 203.7l.7.6-.7-.7z"/>
+    <path fill="#29396b" d="M248.6 203.7l.7.6-.7-.7z"/>
+    <path fill="#425a84" d="M249.3 203.7l.7.6-.7-.7z"/>
+    <path fill="#636b7b" d="M253.5 203.7l.7.6-.7-.7z"/>
+    <path fill="#737b94" d="M254.2 203.7l.7.6-.7-.7z"/>
+    <path fill="#29396b" d="M259.1 203.7l.7.6-.7-.7z"/>
+    <path fill="#00184a" d="M260.3 203.9l.5.2-.5-.2z"/>
+    <path fill="#002984" d="M261.7 203.9l.5.2-.5-.2z"/>
+    <path fill="#6b6b4a" d="M271.8 203.7l.7.6-.7-.7z"/>
+    <path fill="#7b7b52" d="M276 203.7l1.4 5.3-1.4-5.3z"/>
+    <path fill="#cead21" d="M279.5 203.7l.7.6-.7-.7z"/>
+    <path fill="#4a636b" d="M280.2 203.7l.7.6-.7-.7z"/>
+    <path fill="#8c8442" d="M281.6 203.7l.7.6-.7-.7z"/>
+    <path fill="#395273" d="M284.4 203.7l-.6 2.6.6-2.6z"/>
+    <path fill="#002984" d="M291.5 203.7l.7.6-.7-.7z"/>
+    <path fill="#00215a" d="M292.2 203.7l.7.6-.7-.7z"/>
+    <path fill="#314a7b" d="M292.9 203.7l.7.6-.7-.7z"/>
+    <path fill="#7b7373" d="M293.6 203.7l.7.6-.7-.7z"/>
+    <path fill="#cecece" d="M294.3 203.7l.7.6-.7-.7z"/>
+    <path fill="#efefef" d="M211.3 204.3l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M212 204.3l.7.7-.7-.7z"/>
+    <path fill="#31425a" d="M212.7 204.3l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M213.4 204.3l.7.7-.7-.7z"/>
+    <path fill="#5a6b63" d="M220.4 204.3l.7.7-.7-.7z"/>
+    <path fill="#cead21" d="M223.3 204.3l.6.7-.7-.7z"/>
+    <path fill="#deb518" d="M225.8 204.5l.5.3-.5-.3z"/>
+    <path fill="#7b7b52" d="M226.8 204.3l.7.7-.7-.7z"/>
+    <path fill="#deb518" d="M228 204.5l.4.3-.5-.3z"/>
+    <path fill="#00216b" d="M235.2 204.3l.7.7-.7-.7m8.5 0l.7.7-.8-.7z"/>
+    <path fill="#63636b" d="M244.3 204.3l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M261.2 204.3l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M262 204.3l.6.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M262.6 204.3l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M263.4 204.3l.7.7-.8-.7z"/>
+    <path fill="#00184a" d="M264.3 204.8l.2.4-.2-.4z"/>
+    <path fill="#001039" d="M271 204.3l.8.7-.7-.7z"/>
+    <path fill="#deb518" d="M271.8 204.3l.7.7-.7-.7z"/>
+    <path fill="#bd9c29" d="M278.1 204.3l.7.7-.7-.7z"/>
+    <path fill="#7b7b52" d="M278.8 204.3l-.7 1.4.7-1.4z"/>
+    <path fill="#deb518" d="M279.5 204.3l.7.7-.7-.7z"/>
+    <path fill="#bd9c29" d="M281.6 204.3l1.4 1.4-1.4-1.4zm4.3 0l.7.7-.7-.7z"/>
+    <path fill="#ffce08" d="M286.6 204.3l.7.7-.7-.7z"/>
+    <path fill="#bd9c29" d="M287.3 204.3l.7.7-.7-.7z"/>
+    <path fill="#ad9431" d="M288 204.3l.7.7-.7-.7z"/>
+    <path fill="#4a636b" d="M288.7 204.3l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M294.3 204.3l.7.7-.7-.7z"/>
+    <path fill="#21315a" d="M295 204.3l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M295.7 204.3l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M296.4 204.3l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M209.9 205l.7.7-.7-.7z"/>
+    <path fill="#525a6b" d="M210.6 205l.7.7-.7-.7z"/>
+    <path fill="#00215a" d="M211.3 205l.7.7-.7-.7z"/>
+    <path fill="#bd9c29" d="M217.6 205l.7.7-.7-.7z"/>
+    <path fill="#deb518" d="M221.1 205l.7.7-.7-.7z"/>
+    <path fill="#4a636b" d="M221.8 205l.7.7-.7-.7z"/>
+    <path fill="#9c8c42" d="M222.5 205l.7.7-.7-.7z"/>
+    <path fill="#7b7b52" d="M224 205l.6.7-.7-.7z"/>
+    <path fill="#ffce08" d="M225.4 205l1.4 1.3-1.4-1.3z"/>
+    <path fill="#8c8442" d="M226 205l.8.7-.7-.7z"/>
+    <path fill="#003994" d="M226.8 205l.7.7-.7-.7z"/>
+    <path fill="#295284" d="M227.5 205l.7.7-.7-.7z"/>
+    <path fill="#5a6b63" d="M228.2 205l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M235.2 205l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M241.5 205l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M242.2 205l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M243 205l.6.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M244.3 205l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M262.6 205l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M263.6 205.4l.2.5-.2-.5z"/>
+    <path fill="#002984" d="M265 205.4l.2.5-.2-.5z"/>
+    <path fill="#313931" d="M271 205l.8.7-.7-.7z"/>
+    <path fill="#295284" d="M276.7 205l.7.7-.7-.7z"/>
+    <path fill="#003994" d="M278.8 205l.7.7-.7-.7z"/>
+    <path fill="#8c8442" d="M279.5 205l.7.7-.7-.7z"/>
+    <path fill="#184a8c" d="M281 205l.6.7-.7-.7z"/>
+    <path fill="#efbd08" d="M281.6 205l.7.7-.7-.7z"/>
+    <path fill="#003994" d="M283 205l.7.7-.7-.7m2.4.4l.2.5-.2-.5z"/>
+    <path fill="#cead21" d="M285.9 205l.7.7-.7-.7z"/>
+    <path fill="#efbd08" d="M286.6 205l.7.7-.7-.7z"/>
+    <path fill="#cead21" d="M287.3 205l.7.7-.7-.7z"/>
+    <path fill="#295284" d="M289.4 205l.7.7-.7-.7z"/>
+    <path fill="#ffce08" d="M290 205l.8.7-.7-.7z"/>
+    <path fill="#cead21" d="M290.8 205l.7.7-.7-.7z"/>
+    <path fill="#8c8442" d="M291.5 205l.7.7-.7-.7z"/>
+    <path fill="#5a6b63" d="M292.2 205l.7.7-.7-.7z"/>
+    <path fill="#184a8c" d="M292.9 205l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M296.4 205l.7.7-.7-.7z"/>
+    <path fill="#31394a" d="M297.1 205l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M297.8 205l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M298.5 205l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M208.5 205.7l.7.6-.7-.6z"/>
+    <path fill="#212139" d="M209.2 205.7l.7.6-.7-.6z"/>
+    <path fill="#002984" d="M209.9 205.7l.7.6-.7-.6z"/>
+    <path fill="#5a6b63" d="M212.7 205.7l.7.6-.7-.6z"/>
+    <path fill="#9c8c42" d="M213.4 205.7l.7.6-.7-.6z"/>
+    <path fill="#deb518" d="M214.1 205.7l.7.6-.7-.6z"/>
+    <path fill="#bd9c29" d="M215.5 205.7l.7.6-.7-.6z"/>
+    <path fill="#7b7b52" d="M217.6 205.7l.7.6-.7-.6z"/>
+    <path fill="#184a8c" d="M219 205.7l.7.6-.7-.6z"/>
+    <path fill="#395273" d="M219.7 205.7l.7 2-.7-2z"/>
+    <path fill="#7b7b52" d="M221.1 205.7l.7.6-.7-.6z"/>
+    <path fill="#003994" d="M221.8 205.7v2.6h1.4v-2.6h-1.4z"/>
+    <path fill="#efbd08" d="M223.3 205.7l.6.6-.7-.6z"/>
+    <path fill="#deb518" d="M224 205.7l.6.6-.7-.6z"/>
+    <path fill="#bd9c29" d="M225.4 205.7l.7.6-.7-.6z"/>
+    <path fill="#efbd08" d="M226.8 205.7l.7.6-.7-.6z"/>
+    <path fill="#bd9c29" d="M227.5 205.7l-.7 1.3.7-1.3z"/>
+    <path fill="#7b7b52" d="M228.2 205.7l.7.6-.7-.6z"/>
+    <path fill="#00215a" d="M235.2 205.7l.7.6-.7-.6z"/>
+    <path fill="#002984" d="M238 205.7l.7.6-.7-.6z"/>
+    <path fill="#00184a" d="M239.7 206.6v1.6h3.3l-3.3-1.6z"/>
+    <path fill="#00215a" d="M240.8 205.7l.7.6-.7-.6z"/>
+    <path fill="#002984" d="M241.5 205.7l.7.6-.7-.6z"/>
+    <path fill="#31394a" d="M244.3 205.7l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M267.6 205.7l1.4 1.3-1.4-1.3z"/>
+    <path fill="#002984" d="M268.3 205.7l.7.6-.7-.6z"/>
+    <path fill="#00184a" d="M270.6 206.1l.2.5-.2-.5z"/>
+    <path fill="#8c8442" d="M271 205.7l.8.6-.7-.6z"/>
+    <path fill="#9c8c42" d="M280.2 205.7l.7.6-.7-.6z"/>
+    <path fill="#003994" d="M281.2 206.1l.2.5-.2-.5z"/>
+    <path fill="#deb518" d="M282.3 205.7l.7.6-.7-.6z"/>
+    <path fill="#6b735a" d="M283 205.7l.7.6-.7-.6z"/>
+    <path fill="#295284" d="M284.4 205.7l.8.6-.8-.6z"/>
+    <path fill="#ad9431" d="M286.6 205.7l.7.6-.7-.6z"/>
+    <path fill="#003994" d="M287.3 205.7l.7.6-.7-.6z"/>
+    <path fill="#295284" d="M288 205.7l.7.6-.7-.6z"/>
+    <path fill="#8c8442" d="M289.4 205.7l.7.6-.7-.6z"/>
+    <path fill="#9c8c42" d="M290 205.7l.8.6-.7-.6z"/>
+    <path fill="#deb518" d="M290.8 205.7l.7.6-.7-.6z"/>
+    <path fill="#ffce08" d="M291.5 207l2.1-.7-2.1.7z"/>
+    <path fill="#6b735a" d="M293.6 205.7l.7.6-.7-.6z"/>
+    <path fill="#295284" d="M295 205.7l-.7 1.3.7-1.3z"/>
+    <path fill="#10214a" d="M298.5 205.7l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M299.2 205.7l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M207 206.3l.8.7-.7-.7z"/>
+    <path fill="#42425a" d="M207.8 206.3l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M208.5 206.3l.7.7-.7-.7z"/>
+    <path fill="#ad9431" d="M212.7 206.3l.7.7-.7-.7z"/>
+    <path fill="#bd9c29" d="M214.6 206.6l.4.2-.4-.3m1.6-.2l.7.7-.7-.7z"/>
+    <path fill="#6b735a" d="M217.6 206.3l.7.7-.7-.7z"/>
+    <path fill="#395273" d="M221.1 206.3l.7.7-.7-.7z"/>
+    <path fill="#184a8c" d="M225.6 206.8l.2.4-.2-.4z"/>
+    <path fill="#9c8c42" d="M226 206.3l.8.7-.7-.7z"/>
+    <path fill="#ffce08" d="M228 206.6l.4.2-.5-.3z"/>
+    <path fill="#8c8442" d="M228.9 206.3l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M236.1 206.8l.3.4-.3-.4z"/>
+    <path fill="#002984" d="M236.6 206.3l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M237.3 206.3l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M238 206.3l.7.7-.7-.7z"/>
+    <path fill="#00215a" d="M244.3 206.3l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M245 206.3l.8.7-.7-.7z"/>
+    <path fill="#21315a" d="M263.4 206.3l.7.7-.8-.7z"/>
+    <path fill="#00184a" d="M269 206.3l.7.7-.7-.7z"/>
+    <path fill="#9c8c42" d="M278.1 206.3l.7.7-.7-.7z"/>
+    <path fill="#bd9c29" d="M278.8 206.3l.7.7-.7-.7z"/>
+    <path fill="#efbd08" d="M279.5 206.3l.7.7-.7-.7z"/>
+    <path fill="#deb518" d="M280.2 206.3l.7.7-.7-.7z"/>
+    <path fill="#8c8442" d="M284.4 206.3l.8.7-.8-.7z"/>
+    <path fill="#184a8c" d="M285.1 206.3l.7.7-.7-.7z"/>
+    <path fill="#bd9c29" d="M286.6 206.3l.7.7-.7-.7z"/>
+    <path fill="#4a636b" d="M287.3 206.3l.7.7-.7-.7z"/>
+    <path fill="#7b7b52" d="M288 206.3l.7.7-.7-.7z"/>
+    <path fill="#4a636b" d="M289.4 206.3l.7.7-.7-.7z"/>
+    <path fill="#5a6b63" d="M290.8 206.3l.7.7-.7-.7z"/>
+    <path fill="#6b735a" d="M292.2 206.3l.7.7-.7-.7z"/>
+    <path fill="#7b7b52" d="M292.9 206.3l.7.7-.7-.7z"/>
+    <path fill="#184a8c" d="M293.6 206.3l.7.7-.7-.7z"/>
+    <path fill="#efbd08" d="M295.7 206.3l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M299.2 206.3l.7.7-.7-.7z"/>
+    <path fill="#212139" d="M300 206.3l.6.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M300.6 206.3l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M206.4 207l-.7 1.3.7-1.3z"/>
+    <path fill="#00215a" d="M207 207l.8.7-.7-.7z"/>
+    <path fill="#6b735a" d="M212.7 207l.7.7-.7-.7z"/>
+    <path fill="#295284" d="M214.1 207l.7.7-.7-.7z"/>
+    <path fill="#003994" d="M214.8 207v2.7h.7l-.7-2.7z"/>
+    <path fill="#9c8c42" d="M215.5 207l.7.7-.7-.7z"/>
+    <path fill="#184a8c" d="M217 207l1.3 1.3-1.4-1.3z"/>
+    <path fill="#395273" d="M217.6 207l.7.7-.7-.7zm8.5 0l.7.7-.7-.7z"/>
+    <path fill="#003994" d="M227.2 207.2l.5.2-.5-.2z"/>
+    <path fill="#deb518" d="M228.2 207l.7.7-.7-.7z"/>
+    <path fill="#bd9c29" d="M228.9 207l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M236.8 207.4l.3.5-.3-.5z"/>
+    <path fill="#002984" d="M244.3 207l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M245 207l.8.7-.7-.7z"/>
+    <path fill="#cecece" d="M262.6 207l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M263.4 207l.7.7-.8-.7z"/>
+    <path fill="#000818" d="M269.7 207l.7.7-.7-.7z"/>
+    <path fill="#395273" d="M278.1 207l.7.7-.7-.7z"/>
+    <path fill="#003994" d="M278.8 207l.7.7-.7-.7z"/>
+    <path fill="#7b7b52" d="M279.5 207l-.7 1.3.7-1.3z"/>
+    <path fill="#ffce08" d="M280.2 207l.7.7-.7-.7z"/>
+    <path fill="#9c8c42" d="M282.3 207l.7.7-.7-.7z"/>
+    <path fill="#7b7b52" d="M283.8 207l.6.7-.6-.7z"/>
+    <path fill="#395273" d="M285 207.2l.4.2-.5-.2z"/>
+    <path fill="#9c8c42" d="M290.8 207l.7.7-.7-.7z"/>
+    <path fill="#efbd08" d="M291.5 207l.7.7-.7-.7z"/>
+    <path fill="#cead21" d="M294.3 207l.7.7-.7-.7z"/>
+    <path fill="#395273" d="M298.5 207l.7.7-.7-.7z"/>
+    <path fill="#184a8c" d="M299.2 207l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M300.6 207l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M301.3 207l1.4 1.3-1.4-1.3z"/>
+    <path fill="#00216b" d="M206.4 207.7l.7.6-.7-.6z"/>
+    <path fill="#295284" d="M212.7 207.7l.7.6-.7-.6z"/>
+    <path fill="#184a8c" d="M215.5 207.7l.7.6-.7-.6z"/>
+    <path fill="#5a6b63" d="M217 207.7l.6.6-.7-.6z"/>
+    <path fill="#7b7b52" d="M219 207.7l.7.6-.7-.6z"/>
+    <path fill="#cead21" d="M221.1 207.7l.7.6-.7-.6m2.1 0l.8.6-.8-.6z"/>
+    <path fill="#7b7b52" d="M225.4 207.7l.7.6-.7-.6z"/>
+    <path fill="#6b735a" d="M226.8 207.7l.7.6-.7-.6z"/>
+    <path fill="#efbd08" d="M228.4 208.1l.2.5-.2-.5z"/>
+    <path fill="#ad9431" d="M228.9 207.7l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M237.3 207.7l.7.6-.7-.6z"/>
+    <path fill="#002984" d="M237.3 209l2.1-1.3-2 1.3z"/>
+    <path fill="#00216b" d="M239.4 207.7l.7.6-.7-.6z"/>
+    <path fill="#525a6b" d="M245 207.7l.8.6-.7-.6z"/>
+    <path fill="#63636b" d="M262.6 207.7l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M266.9 207.7l.7.6-.7-.6z"/>
+    <path fill="#002984" d="M266.9 209l2-1.3-2 1.3z"/>
+    <path fill="#00184a" d="M269 207.7l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M269.7 207.7l.7.6-.7-.6z"/>
+    <path fill="#5a6b63" d="M276.7 207.7l.7.6-.7-.6z"/>
+    <path fill="#9c8c42" d="M278.1 207.7l.7.6-.7-.6z"/>
+    <path fill="#efbd08" d="M279.5 207.7l.7.6-.7-.6z"/>
+    <path fill="#deb518" d="M280.2 207.7l.7.6-.7-.6z"/>
+    <path fill="#6b735a" d="M282.3 207.7l.7.6-.7-.6zm2.8 0l.7.6-.7-.6m1.4 0l.8.6-.7-.6z"/>
+    <path fill="#5a6b63" d="M287.3 207.7l.7.6-.7-.6z"/>
+    <path fill="#efbd08" d="M288 207.7l.7.6-.7-.6z"/>
+    <path fill="#cead21" d="M290.8 207.7l.7.6-.7-.6z"/>
+    <path fill="#bd9c29" d="M291.5 207.7l.7.6-.7-.6z"/>
+    <path fill="#6b735a" d="M293.6 207.7l.7.6-.7-.6z"/>
+    <path fill="#9c8c42" d="M300 207.7l.6.6-.7-.6z"/>
+    <path fill="#002984" d="M301.3 207.7l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M205 208.3l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M205.7 208.3l.7.7-.7-.7z"/>
+    <path fill="#efbd08" d="M213.4 208.3l.7.7-.7-.7z"/>
+    <path fill="#9c8c42" d="M214.1 208.3l.7.7-.7-.7z"/>
+    <path fill="#7b7b52" d="M217.2 208.8l.2.4-.3-.4z"/>
+    <path fill="#ad9431" d="M219 208.3l.7.7-.7-.7z"/>
+    <path fill="#8c8442" d="M220.4 208.3l.7.7-.7-.7z"/>
+    <path fill="#ad9431" d="M222.3 208.6l.5.2-.5-.2m1.6-.3l.7.7-.7-.7z"/>
+    <path fill="#efbd08" d="M226 208.3l.8.7-.7-.7z"/>
+    <path fill="#4a636b" d="M228.9 208.3l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M243.7 208.3l.7.7-.8-.7z"/>
+    <path fill="#636b7b" d="M245 208.3l.8.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M262 208.3l.6.7-.7-.7z"/>
+    <path fill="#424242" d="M262.6 208.3l.7.7-.7-.7z"/>
+    <path fill="#8c8442" d="M271 208.3l.8.7-.7-.7z"/>
+    <path fill="#5a6b63" d="M280.2 208.3l.7.7-.7-.7z"/>
+    <path fill="#8c8442" d="M284.4 208.3l.8.7-.8-.7z"/>
+    <path fill="#7b7b52" d="M285.1 208.3l.7.7-.7-.7z"/>
+    <path fill="#184a8c" d="M286.6 208.3l.7.7-.7-.7z"/>
+    <path fill="#7b7b52" d="M291.5 208.3l.7.7-.7-.7z"/>
+    <path fill="#184a8c" d="M292.9 208.3l.7.7-.7-.7z"/>
+    <path fill="#efbd08" d="M293.6 208.3l.7.7-.7-.7z"/>
+    <path fill="#bd9c29" d="M294.3 208.3l.7.7-.7-.7z"/>
+    <path fill="#7b7b52" d="M295 208.3l-.7 1.4.7-1.4z"/>
+    <path fill="#5a6b63" d="M297.8 208.3l.7.7-.7-.7z"/>
+    <path fill="#ffce08" d="M298.5 208.3l.7.7-.7-.7z"/>
+    <path fill="#efbd08" d="M300.6 208.3l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M302 208.3l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M302.7 208.3l.7.7-.7-.7z"/>
+    <path fill="#525a6b" d="M205 209l.7.7-.7-.7z"/>
+    <path fill="#bd9c29" d="M213.4 209l.7.7-.7-.7z"/>
+    <path fill="#deb518" d="M214.1 209l.7.7-.7-.7z"/>
+    <path fill="#184a8c" d="M215.5 209l.7.7-.7-.7z"/>
+    <path fill="#cead21" d="M218.3 209l.7.7-.7-.7z"/>
+    <path fill="#bd9c29" d="M219 209l-.7 1.3.7-1.3z"/>
+    <path fill="#ad9431" d="M221.1 209l.7.7-.7-.7z"/>
+    <path fill="#bd9c29" d="M223.3 209l.6.7-.7-.7z"/>
+    <path fill="#4a636b" d="M226.8 209l.7.7-.7-.7z"/>
+    <path fill="#5a6b63" d="M227.5 209l.7.7-.7-.7z"/>
+    <path fill="#184a8c" d="M228.2 209l.7.7-.7-.7z"/>
+    <path fill="#292921" d="M244.3 209l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M245 209l.8.7-.7-.7m16.8 0l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M262.6 209l1.4 1.3-1.4-1.3z"/>
+    <path fill="#31394a" d="M263.4 209l.7.7-.8-.7z"/>
+    <path fill="#7b7b52" d="M281.6 209l.7.7-.7-.7z"/>
+    <path fill="#9c8c42" d="M282.3 209l.7.7-.7-.7z"/>
+    <path fill="#6b735a" d="M284.4 209l.8.7-.8-.7z"/>
+    <path fill="#ad9431" d="M285.1 209l.7.7-.7-.7z"/>
+    <path fill="#deb518" d="M288 209l.7.7-.7-.7z"/>
+    <path fill="#395273" d="M290 209l.8.7-.7-.7m1.4 0l.7.7-.7-.7z"/>
+    <path fill="#bd9c29" d="M292.9 209l.7.7-.7-.7z"/>
+    <path fill="#8c8442" d="M295 209l.7.7-.7-.7z"/>
+    <path fill="#cead21" d="M295.7 209l.7.7-.7-.7z"/>
+    <path fill="#003994" d="M299.2 209l-.7 2.7h.7V209z"/>
+    <path fill="#7b7b52" d="M300 209l.6.7-.7-.7z"/>
+    <path fill="#5a6b63" d="M301.3 209l.7.7-.7-.7z"/>
+    <path fill="#425a84" d="M303 209.4l.2.5-.2-.5z"/>
+    <path fill="#42425a" d="M205 209.7l.7.6-.7-.6z"/>
+    <path fill="#7b7b52" d="M213.4 209.7l.7.6-.7-.6m1.4 0l.7.6-.7-.6z"/>
+    <path fill="#deb518" d="M215.5 209.7l.7.6-.7-.6z"/>
+    <path fill="#5a6b63" d="M217 209.7l.6.6-.7-.6z"/>
+    <path fill="#ffce08" d="M219 209.7l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M242.2 209.7l.7.6-.7-.6z"/>
+    <path fill="#21315a" d="M243 209.7l.6.6-.7-.6z"/>
+    <path fill="#63636b" d="M243.7 209.7l.7.6-.8-.6z"/>
+    <path fill="#efefef" d="M244.3 209.7l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M264 209.7l.8.6-.8-.6z"/>
+    <path fill="#21315a" d="M264.8 209.7l.6.6-.6-.6z"/>
+    <path fill="#00216b" d="M265.5 209.7l.7.6-.7-.6z"/>
+    <path fill="#395273" d="M285.9 209.7l.7.6-.7-.6z"/>
+    <path fill="#8c8442" d="M288 209.7l.7.6-.7-.6z"/>
+    <path fill="#6b735a" d="M288.7 209.7l.7.6-.7-.6z"/>
+    <path fill="#7b7b52" d="M290 209.7l.8.6-.7-.6z"/>
+    <path fill="#6b735a" d="M292.2 209.7l.7.6-.7-.6z"/>
+    <path fill="#bd9c29" d="M295.7 209.7l-.7 2 .7-2z"/>
+    <path fill="#5a6b63" d="M297.1 209.7l.7.6-.7-.6z"/>
+    <path fill="#ffce08" d="M297.8 209.7l.7.6-.7-.6z"/>
+    <path fill="#5a6b63" d="M298.5 209.7l.7.6-.7-.6z"/>
+    <path fill="#395273" d="M300 209.7l.6.6-.7-.6z"/>
+    <path fill="#6b735a" d="M301.3 209.7l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M205 210.3l.7.7-.7-.7z"/>
+    <path fill="#395273" d="M213.4 210.3l.7.7-.7-.7z"/>
+    <path fill="#9c8c42" d="M216.2 210.3l.7.7-.7-.7z"/>
+    <path fill="#184a8c" d="M218.3 210.3l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M226.8 210.3l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M227.5 210.3l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M228.2 210.3l.7.7-.7-.7z"/>
+    <path fill="#10295a" d="M228.9 210.3l.7.7-.7-.7z"/>
+    <path fill="#525a6b" d="M238 210.3l.7.7-.7-.7z"/>
+    <path fill="#848c9c" d="M238.7 210.3l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M242.2 210.3l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M265.5 210.3l.7.7-.7-.7z"/>
+    <path fill="#848c9c" d="M269 210.3l.7.7-.7-.7z"/>
+    <path fill="#636b7b" d="M269.7 210.3l.7.7-.7-.7z"/>
+    <path fill="#10295a" d="M278.8 210.3l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M279.5 210.3l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M280.2 210.3l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M281 210.3l.6.7-.7-.7z"/>
+    <path fill="#4a636b" d="M290 210.3l.8.7-.7-.7z"/>
+    <path fill="#6b735a" d="M290.8 210.3l.7.7-.7-.7z"/>
+    <path fill="#efbd08" d="M292.2 210.3l.7.7-.7-.7z"/>
+    <path fill="#cead21" d="M292.9 210.3l.7.7-.7-.7z"/>
+    <path fill="#4a636b" d="M294.3 210.3l.7.7-.7-.7z"/>
+    <path fill="#deb518" d="M295 210.3l.7.7-.7-.7m2.6.3l.4.2-.4-.2z"/>
+    <path fill="#8c8442" d="M300 210.3l.6.7-.7-.7z"/>
+    <path fill="#184a8c" d="M301.3 210.3l.7.7-.7-.7z"/>
+    <path fill="#525a6b" d="M302.7 210.3l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M205 211l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M205.7 211l.7.7-.7-.7z"/>
+    <path fill="#7b7b52" d="M214.1 211l.7.7-.7-.7z"/>
+    <path fill="#4a636b" d="M214.8 211l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M219.7 212.3l2.1-.6-2 .7z"/>
+    <path fill="#00215a" d="M221.8 211l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M222.5 211l.7.7-.7-.7z"/>
+    <path fill="#314a7b" d="M223.3 211l.6.7-.7-.7z"/>
+    <path fill="#42425a" d="M224 211l.6.7-.7-.7z"/>
+    <path fill="#636b7b" d="M224.7 211l.7.7-.8-.7z"/>
+    <path fill="#8c8c8c" d="M225.4 211l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M226 211l.8.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M226.8 211l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M227.5 211l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M280.2 211l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M281 211l.6.7-.7-.7z"/>
+    <path fill="#9c9494" d="M281.6 211l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M282.3 211l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M283 211l.7.7-.7-.7z"/>
+    <path fill="#42425a" d="M283.8 211l.6.7-.6-.7z"/>
+    <path fill="#314a7b" d="M284.4 211l.8.7-.8-.7z"/>
+    <path fill="#00184a" d="M285.1 211l.7.7-.7-.7z"/>
+    <path fill="#00215a" d="M285.9 211l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M287 211.2l.5.3-.5-.3z"/>
+    <path fill="#184a8c" d="M292.9 211l.7.7-.7-.7z"/>
+    <path fill="#5a6b63" d="M296.4 211l.7.7-.7-.7zm1.4 0l.7.7-.7-.7z"/>
+    <path fill="#295284" d="M299.2 211l.7.7-.7-.7z"/>
+    <path fill="#bd9c29" d="M300.6 211l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M302.7 211l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M205 211.7l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M205.7 211.7l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M220.4 211.7l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M221.1 211.7l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M221.8 211.7l-.7 1.3.7-1.3z"/>
+    <path fill="#bdbdbd" d="M286.6 211.7l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M287.3 211.7l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M288 211.7l.7.7-.7-.7z"/>
+    <path fill="#395273" d="M295 211.7l.7.7-.7-.7z"/>
+    <path fill="#6b735a" d="M295.7 211.7l.7.7-.7-.7z"/>
+    <path fill="#deb518" d="M296.4 211.7l.7.7-.7-.7z"/>
+    <path fill="#bd9c29" d="M297.8 211.7l.7.7-.7-.7z"/>
+    <path fill="#7b7b52" d="M298.5 211.7l.7.7-.7-.7z"/>
+    <path fill="#00215a" d="M302 211.7l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M302.7 211.7l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M203.6 212.3l.7.7-.8-.7z"/>
+    <path fill="#63636b" d="M204.3 212.3l.6.7-.7-.7z"/>
+    <path fill="#001039" d="M205.2 212.8l.2.5-.2-.5z"/>
+    <path fill="#00216b" d="M217.6 212.3l-.7 1.4.7-1.3z"/>
+    <path fill="#00184a" d="M218.3 212.3l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M219 212.3l.7.7-.7-.7z"/>
+    <path fill="#10214a" d="M220.4 212.3l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M286.6 212.3l.7.7-.7-.7z"/>
+    <path fill="#212139" d="M287.3 212.3l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M288 212.3l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M289 212.8l.1.5-.2-.5z"/>
+    <path fill="#184a8c" d="M296.4 212.3l.7.7-.7-.7z"/>
+    <path fill="#9c8c42" d="M297.1 212.3l.7.7-.7-.7z"/>
+    <path fill="#295284" d="M300 212.3l.6.7-.7-.7z"/>
+    <path fill="#00216b" d="M302.7 212.3l.7.7-.7-.7z"/>
+    <path fill="#42425a" d="M303.4 212.3l.8.7-.8-.7z"/>
+    <path fill="#bdbdbd" d="M304.1 212.3l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M202.8 213l-1.4 2 1.4-2z"/>
+    <path fill="#10214a" d="M203.6 213l-1.4 2 1.4-2z"/>
+    <path fill="#003994" d="M204.3 213c-2 2.1-5 4.5-3.6 7.4-3.7 2-4.4 6.4-5.6 10l7.7 1.4 5.7-12.7-7.8.6v-.6l7-.7-3.5-5.4z"/>
+    <path fill="#002984" d="M214.1 213l.7.7-.7-.7z"/>
+    <path fill="#00215a" d="M214.8 213l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M216 213.2l.4.3-.4-.3z"/>
+    <path fill="#002984" d="M217.6 213l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M221.1 213l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M286.6 213l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M287.3 213l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M291.5 213l.7.7-.7-.7z"/>
+    <path fill="#184a8c" d="M297.8 213l.7.7-.7-.7z"/>
+    <path fill="#395273" d="M298.5 213l.7.7-.7-.7z"/>
+    <path fill="#00215a" d="M304.1 213l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M304.9 213l2 2-2-2z"/>
+    <path fill="#00216b" d="M205 213.7l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M205.7 213.7l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M212 213.7l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M213.2 214l.4.1-.4-.2z"/>
+    <path fill="#00216b" d="M214.1 213.7l.7.7-.7-.7z"/>
+    <path fill="#42425a" d="M221.1 213.7l.7.7-.7-.7z"/>
+    <path fill="#636b7b" d="M286.6 213.7l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M291.5 213.7l.7.7-.7-.7z"/>
+    <path fill="#00215a" d="M292.2 213.7l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M293.4 214l.4.1-.4-.2z"/>
+    <path fill="#00216b" d="M294.5 214.1l.3.5-.3-.5m10.3-.4l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M205.7 214.4l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M210.1 214.8l.2.5-.2-.5z"/>
+    <path fill="#00184a" d="M211 214.6l.5.2-.4-.2z"/>
+    <path fill="#00215a" d="M216.2 214.4l.7.6-.7-.6z"/>
+    <path fill="#002984" d="M220.4 214.4l.7.6-.7-.6z"/>
+    <path fill="#21315a" d="M221.1 214.4l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M285.9 214.4l.7.6-.7-.6z"/>
+    <path fill="#101810" d="M286.6 214.4l.7.6-.7-.6z"/>
+    <path fill="#00184a" d="M287.7 214.6l.5.2-.5-.2z"/>
+    <path fill="#00215a" d="M288.7 214.4l.7.6-.7-.6z"/>
+    <path fill="#00184a" d="M289.4 214.4l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M290 214.4l.8.6-.7-.6z"/>
+    <path fill="#00184a" d="M295.5 214.6l.4.2-.4-.2z"/>
+    <path fill="#00216b" d="M305.6 214.4l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M200.7 215l.7.7-.7-.7z"/>
+    <path fill="#212139" d="M201.4 215l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M205.7 215l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M206.4 215l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M209 215.3l.4.2-.5-.3z"/>
+    <path fill="#00216b" d="M214.1 215l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M214.8 215l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M215.5 215l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M220.4 215l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M221.1 215l-.7 1.4.7-1.4z"/>
+    <path fill="#7b7373" d="M285.9 215l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M286.6 215l.7.7-.7-.7z"/>
+    <path fill="#00215a" d="M287.3 215l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M290 215l.8.7-.7-.7z"/>
+    <path fill="#00184a" d="M291.3 215.3l.4.2-.4-.3z"/>
+    <path fill="#002984" d="M292.2 215l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M296.4 215l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M297.1 215l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M297.8 215l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M306.3 215l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M307 215l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M200.7 215.7l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M208.5 215.7l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M213.2 216l.4.1-.4-.2z"/>
+    <path fill="#002984" d="M214.1 215.7l.7.7-.7-.7z"/>
+    <path fill="#10214a" d="M219.7 215.7l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M287.3 215.7l.7.7-.7-.7z"/>
+    <path fill="#21315a" d="M288 215.7l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M292.2 215.7l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M292.9 215.7l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M293.6 215.7l.7.7-.7-.7z"/>
+    <path fill="#31425a" d="M307 215.7l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M307.7 215.7l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M200 216.4l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M200.7 216.4l.7.6-.7-.6m5.7 0l.7.6-.7-.6z"/>
+    <path fill="#00184a" d="M211.8 216.6l.4.2-.4-.2z"/>
+    <path fill="#00216b" d="M217.6 216.4l.7.6-.7-.6z"/>
+    <path fill="#21315a" d="M218.3 216.4l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M219 216.4l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M219.7 216.4l.7.6-.7-.6m68.3 0l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M288.7 216.4l.7.6-.7-.6z"/>
+    <path fill="#314a7b" d="M289.4 216.4l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M290 216.4l.8.6-.7-.6m3.5 0l-.7 1.3.7-1.3z"/>
+    <path fill="#001039" d="M294.3 216.4l.7.6-.7-.6z"/>
+    <path fill="#002984" d="M295 216.4l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M307.7 216.4l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M199.3 217l.7.7-.7-.7z"/>
+    <path fill="#10214a" d="M200 217l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M207.8 217l.7.7-.7-.7m1.4 0l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M210.3 217.3l.5.2-.5-.2z"/>
+    <path fill="#002984" d="M214.1 217l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M214.8 217l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M215.5 217l.7.7-.7-.7z"/>
+    <path fill="#42425a" d="M216.2 217l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M217 217l.6.7-.7-.7z"/>
+    <path fill="#cecece" d="M217.6 217l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M290 217l.8.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M290.8 217l.7.7-.7-.7z"/>
+    <path fill="#525a6b" d="M291.5 217l.7.7-.7-.7z"/>
+    <path fill="#10295a" d="M292.2 217l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M293.6 217l.7.7-.7-.7z"/>
+    <path fill="#003994" d="M294.3 217l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M295 217l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M295.7 217l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M296.4 217l.7.7-.7-.7m2.8 0l.7.7-.7-.7m8.5 0l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M308.4 217l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M199.3 217.7l.7.7-.7-.7z"/>
+    <path fill="#00215a" d="M207.8 217.7l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M209.2 217.7l.7.7-.7-.7m2 0l.8.7-.7-.7z"/>
+    <path fill="#21315a" d="M212 217.7l.7.7-.7-.7z"/>
+    <path fill="#525a6b" d="M212.7 217.7l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M214.1 217.7l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M214.8 217.7l.7.7-.7-.7m78 0l.8.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M293.6 217.7l.7.7-.7-.7z"/>
+    <path fill="#525a6b" d="M295 217.7l.7.7-.7-.7z"/>
+    <path fill="#21315a" d="M295.7 217.7l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M298.5 217.7l.7.7-.7-.7z"/>
+    <path fill="#42425a" d="M308.4 217.7l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M198.6 218.4l.7.6-.7-.6z"/>
+    <path fill="#10295a" d="M199.3 218.4l.7.6-.7-.6z"/>
+    <path fill="#00215a" d="M205 218.4l.7.6-.7-.6z"/>
+    <path fill="#21315a" d="M209.9 218.4l.7.6-.7-.6z"/>
+    <path fill="#52525a" d="M210.6 218.4l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M211.3 218.4l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M214.1 218.4l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M292.2 218.4l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M292.9 218.4l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M295.5 218.6l.4.2-.4-.2z"/>
+    <path fill="#8c8c8c" d="M296.4 218.4l.7.6-.7-.6z"/>
+    <path fill="#292921" d="M297.1 218.4l.7.6-.7-.6z"/>
+    <path fill="#080829" d="M297.8 218.4l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M301.3 218.4l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M309 218.4l.8.6-.7-.6z"/>
+    <path fill="#63636b" d="M198.6 219l.7.7-.7-.6z"/>
+    <path fill="#00215a" d="M200.7 219l.7.7-.7-.6z"/>
+    <path fill="#00184a" d="M202 219.3l.4.2-.5-.2z"/>
+    <path fill="#00216b" d="M202.8 219l.7.7-.7-.6z"/>
+    <path fill="#8c8c8c" d="M209.2 219l.7.7-.7-.6z"/>
+    <path fill="#efefef" d="M209.9 219l.7.7-.7-.6z"/>
+    <path fill="#8c8c8c" d="M298.5 219l.7.7-.7-.6z"/>
+    <path fill="#10295a" d="M299.2 219l.7.7-.7-.6z"/>
+    <path fill="#00216b" d="M303.4 219l.8.7-.8-.6z"/>
+    <path fill="#00184a" d="M304.6 219.3l.5.2-.5-.2z"/>
+    <path fill="#002984" d="M305.8 219.5l.2.4-.2-.4z"/>
+    <path fill="#212139" d="M309 219l.8.7-.7-.6z"/>
+    <path fill="#dedede" d="M198 219.7l.6.7-.7-.7z"/>
+    <path fill="#10214a" d="M207.8 219.7l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M208.5 219.7l-.7 1.4.7-1.4m90.7 0l1.4 1.4-1.4-1.4z"/>
+    <path fill="#10214a" d="M300 219.7l.6.7-.7-.7z"/>
+    <path fill="#00184a" d="M306.3 219.7l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M307 219.7l2.8 2.7-2.8-2.7z"/>
+    <path fill="#002984" d="M309 219.7l.8.7-.7-.7z"/>
+    <path fill="#9c9494" d="M309.8 219.7l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M198 220.4l.6.6-.7-.6z"/>
+    <path fill="#001039" d="M198.6 220.4l.7.6-.7-.6z"/>
+    <path fill="#10295a" d="M207 220.4l.8.6-.7-.6z"/>
+    <path fill="#101831" d="M300.6 220.4l.7.6-.7-.6z"/>
+    <path fill="#42425a" d="M309.8 220.4l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M197.2 221l.7.7-.7-.6z"/>
+    <path fill="#101829" d="M198 221l.6.7-.7-.6z"/>
+    <path fill="#002984" d="M206.4 221l.7.7-.7-.6z"/>
+    <path fill="#9c9494" d="M207 221l.8.7-.7-.6z"/>
+    <path fill="#cecece" d="M213.4 221l.7.7-.7-.6z"/>
+    <path fill="#bdbdbd" d="M214.1 221v.7H295l-24.6-.6H214m86.5 0l.7.6-.7-.6z"/>
+    <path fill="#00215a" d="M301.3 221l.7.7-.7-.6z"/>
+    <path fill="#00216b" d="M309.8 221l.7.7-.7-.6z"/>
+    <path fill="#dedede" d="M310.5 221l.7.7-.7-.6z"/>
+    <path fill="#424242" d="M197.2 221.7l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M198 221.7l.6.7-.7-.7z"/>
+    <path fill="#52525a" d="M206.4 221.7l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M213.4 221.7l3.5 3.4-3.5-3.4z"/>
+    <path fill="#00216b" d="M214.1 221.7l2.1 2-2.1-2z"/>
+    <path fill="#003994" d="M214.8 221.7l5.9 7.4.4 26h6.4c0-8.2 1.8-16.8-4.3-23.3l8.5 5.3-3.5-10 19.7 18.7-14.8-22.7 14 18h.8v-19.4h-33.1z"/>
+    <path fill="#00184a" d="M247.9 221.7v20.1h.7l-.7-20z"/>
+    <path fill="#631808" d="M259.8 221.7v20.1h.7l-.7-20z"/>
+    <path fill="#de2110" d="M260.5 221.7v18.8l14.8-17.4-14.8 22.7 20.4-18.7-4.2 9.3 8.4-5.3c-4.5 8.3-4.2 14.5-4.2 24h6.4l.4-26 5.9-7.4h-33z"/>
+    <path fill="#b51010" d="M293.6 221.7l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M294.3 221.7l-1.4 2 1.4-2z"/>
+    <path fill="#8c8c8c" d="M301.3 221.7l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M302 221.7l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M310.5 221.7l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M196.5 222.4l.7.7-.7-.7z"/>
+    <path fill="#000818" d="M197.2 222.4l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M205.7 222.4l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M206.4 222.4l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M292.9 222.4l.7.7-.7-.7z"/>
+    <path fill="#21315a" d="M302 222.4l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M309 222.4l.8.7-.7-.7z"/>
+    <path fill="#10214a" d="M310.5 222.4l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M311.2 222.4l.7.7-.7-.7z"/>
+    <path fill="#313931" d="M196.5 223l.7.7-.7-.6z"/>
+    <path fill="#00216b" d="M197.2 223l.7.7-.7-.6z"/>
+    <path fill="#63636b" d="M205.7 223l.7.7-.7-.6z"/>
+    <path fill="#002984" d="M233.1 223l.7.7-.7-.6z"/>
+    <path fill="#8c8c8c" d="M302 223l.7.7-.7-.6z"/>
+    <path fill="#00184a" d="M310 223.5l.2.5-.2-.5z"/>
+    <path fill="#9c9494" d="M311.2 223l.7.7-.7-.6M196 224l.3.5-.3-.4z"/>
+    <path fill="#292921" d="M196.5 223.7l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M205 223.7l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M205.7 223.7l.7.7-.7-.7z"/>
+    <path fill="#00215a" d="M216.2 223.7l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M233.1 223.7l.7.7-.7-.7z"/>
+    <path fill="#212139" d="M233.8 223.7l1.4 1.4-1.4-1.4z"/>
+    <path fill="#100808" d="M274.6 223.7l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M292.2 223.7l-4.2 4.7 4.2-4.7z"/>
+    <path fill="#efefef" d="M302 223.7l.7.7-.7-.7z"/>
+    <path fill="#10295a" d="M302.7 223.7l.7.7-.7-.7z"/>
+    <path fill="#31425a" d="M311.2 223.7l.7.7-.7-.7z"/>
+    <path fill="#10295a" d="M196.5 224.4l.7.7-.7-.7z"/>
+    <path fill="#42425a" d="M205 224.4l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M217 224.4l.6.7-.7-.7z"/>
+    <path fill="#002984" d="M233.1 224.4l.7.7-.7-.7z"/>
+    <path fill="#6b5a00" d="M233.8 224.4l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M273.2 224.4l.7.7-.7-.7z"/>
+    <path fill="#7b5a00" d="M273.9 224.4l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M302.7 224.4l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M311.2 224.4l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M311.9 224.4l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M195.8 225l.7.7-.7-.6z"/>
+    <path fill="#002984" d="M204.3 225l.6.7-.7-.6z"/>
+    <path fill="#9c9494" d="M205 225l.7.7-.7-.6z"/>
+    <path fill="#cecece" d="M217 225l3.4 3.4-3.5-3.3z"/>
+    <path fill="#10214a" d="M217.6 225l.7.7-.7-.6z"/>
+    <path fill="#392121" d="M233.8 225l.7.7-.7-.6z"/>
+    <path fill="#cea508" d="M234.7 225.5l.3.5-.3-.5z"/>
+    <path fill="#293129" d="M235.2 225l1.4 1.4-1.4-1.3z"/>
+    <path fill="#631808" d="M272.5 225l.7.7-.7-.6z"/>
+    <path fill="#634a00" d="M273.9 225l.7.7-.7-.6z"/>
+    <path fill="#ce2110" d="M274.6 225l.7.7-.7-.6z"/>
+    <path fill="#dedede" d="M302.7 225l.7.7-.7-.6z"/>
+    <path fill="#00216b" d="M303.4 225l.8.7-.8-.6z"/>
+    <path fill="#636b7b" d="M311.9 225l.7.7-.7-.6z"/>
+    <path fill="#42425a" d="M195.8 225.7l.7.7-.7-.7z"/>
+    <path fill="#21315a" d="M204.3 225.7l.6.7-.7-.7z"/>
+    <path fill="#10214a" d="M218.3 225.7l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M233.8 225.7l.7.7-.7-.7z"/>
+    <path fill="#efbd08" d="M235.2 225.7l.7.7-.7-.7z"/>
+    <path fill="#5a2908" d="M271.8 225.7l.7.7-.7-.7z"/>
+    <path fill="#efbd08" d="M273.2 225.7l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M273.9 225.7l.7.7-.7-.7z"/>
+    <path fill="#42425a" d="M303.4 225.7l.8.7-.8-.7z"/>
+    <path fill="#10214a" d="M311.9 225.7l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M195.1 226.4l.7.7-.7-.7z"/>
+    <path fill="#00215a" d="M195.8 226.4l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M204.3 226.4l.6.7-.7-.7z"/>
+    <path fill="#10214a" d="M219 226.4l.7.7-.7-.7z"/>
+    <path fill="#634a00" d="M234.5 226.4l.7.7-.7-.7z"/>
+    <path fill="#deb508" d="M235.2 226.4l.7.7-.7-.7z"/>
+    <path fill="#292100" d="M236 226.4l.6.7-.7-.7z"/>
+    <path fill="#211800" d="M271.8 226.4l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M273.9 226.4l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M303.4 226.4l.8.7-.8-.7z"/>
+    <path fill="#002984" d="M304.1 226.4l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M311.9 226.4l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M312.6 226.4l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M195.1 227l.7.8-.7-.7z"/>
+    <path fill="#002984" d="M195.8 227l.7.8-.7-.7z"/>
+    <path fill="#00216b" d="M203.6 227l.7.8-.8-.7z"/>
+    <path fill="#cecece" d="M204.3 227l.6.8-.7-.7z"/>
+    <path fill="#10214a" d="M219.7 227l.7.8-.7-.7z"/>
+    <path fill="#00184a" d="M228.4 227.5l.2.5-.2-.5z"/>
+    <path fill="#10295a" d="M234.5 227l.7.8-.7-.7z"/>
+    <path fill="#000818" d="M235.2 227l.7.8-.7-.7z"/>
+    <path fill="#392100" d="M236 227l1.3 1.4-1.4-1.3z"/>
+    <path fill="#00184a" d="M236.6 227l.7.8-.7-.7z"/>
+    <path fill="#7b1008" d="M271 227l.8.8-.7-.7z"/>
+    <path fill="#392100" d="M271.8 227l.7.8-.7-.7z"/>
+    <path fill="#210800" d="M272.5 227l.7.8-.7-.7z"/>
+    <path fill="#5a1008" d="M273.2 227l.7.8-.7-.7z"/>
+    <path fill="#631808" d="M279.5 227l.7.8-.7-.7z"/>
+    <path fill="#ce2110" d="M280.2 227l.7.8-.7-.7z"/>
+    <path fill="#7b1008" d="M288 227l.7.8-.7-.7z"/>
+    <path fill="#00184a" d="M304.1 227l.7.8-.7-.7z"/>
+    <path fill="#7b7373" d="M312.6 227l.7.8-.7-.7z"/>
+    <path fill="#636b7b" d="M195.1 227.8l.7.6-.7-.7z"/>
+    <path fill="#21315a" d="M203.6 227.8l.7.6-.8-.7z"/>
+    <path fill="#10295a" d="M220.4 227.8l.7.6-.7-.7z"/>
+    <path fill="#102110" d="M228.9 227.8l.7.6-.7-.7z"/>
+    <path fill="#002984" d="M229.6 227.8l.7.6-.7-.7z"/>
+    <path fill="#101810" d="M236 227.8l.6.6-.7-.7z"/>
+    <path fill="#00216b" d="M237.3 227.8l.7.6-.7-.7z"/>
+    <path fill="#b51010" d="M270.4 227.8l.7.6-.7-.7z"/>
+    <path fill="#211800" d="M271.6 228l.4.2-.4-.2z"/>
+    <path fill="#b51010" d="M272.5 227.8l.7.6-.7-.7z"/>
+    <path fill="#bd2110" d="M278.1 227.8l.7.6-.7-.7z"/>
+    <path fill="#5a2908" d="M278.8 227.8l.7.6-.7-.7z"/>
+    <path fill="#310000" d="M279.5 227.8l.7.6-.7-.7z"/>
+    <path fill="#7b1008" d="M287.3 227.8l.7.6-.7-.7z"/>
+    <path fill="#42425a" d="M304.1 227.8l.7.6-.7-.7z"/>
+    <path fill="#314a7b" d="M312.6 227.8l.7.6-.7-.7z"/>
+    <path fill="#10214a" d="M195.1 228.4l.7.7-.7-.7z"/>
+    <path fill="#636b7b" d="M203.6 228.4l.7.7-.8-.7z"/>
+    <path fill="#42425a" d="M220.4 228.4V256h.7c0-7.9 2.5-20.3-.7-27.5z"/>
+    <path fill="#634a00" d="M228.9 228.4l.7.7-.7-.7z"/>
+    <path fill="#8c7300" d="M229.6 228.4l.7.7-.7-.7z"/>
+    <path fill="#10214a" d="M230.3 228.4l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M236 228.4l.6.7-.7-.7z"/>
+    <path fill="#211800" d="M236.6 228.4l.7.7-.7-.7z"/>
+    <path fill="#181000" d="M237.3 228.4l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M269.7 228.4l.7.7-.7-.7z"/>
+    <path fill="#311000" d="M270.4 228.4l.7.7-.7-.7z"/>
+    <path fill="#392100" d="M271 228.4l-1.3 2 1.4-2z"/>
+    <path fill="#7b1008" d="M271.8 228.4l.7.7-.7-.7m5.6 0l.7.7-.7-.7z"/>
+    <path fill="#7b5a00" d="M278.1 228.4l.7.7-.7-.7z"/>
+    <path fill="#6b5a00" d="M278.8 228.4l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M279.5 228.4l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M287.3 228.4v26.8h.7c0-7.7 2.4-19.7-.7-26.8z"/>
+    <path fill="#8c8c8c" d="M304.1 228.4l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M312.6 228.4l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M313.3 228.4l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M194.4 229l.7.8-.7-.7z"/>
+    <path fill="#00216b" d="M195.1 229l.7.8-.7-.7z"/>
+    <path fill="#002984" d="M202.8 229l.7.8-.7-.7z"/>
+    <path fill="#9c9494" d="M203.6 229l.7.8-.8-.7z"/>
+    <path fill="#00215a" d="M228.9 229l.7.8-.7-.7z"/>
+    <path fill="#bd9408" d="M229.6 229l.7.8-.7-.7z"/>
+    <path fill="#cea508" d="M230.3 229l.7.8-.7-.7z"/>
+    <path fill="#293129" d="M231 229l.7.8-.7-.7z"/>
+    <path fill="#002984" d="M231.7 229l.7.8-.7-.7z"/>
+    <path fill="#00184a" d="M236.6 229l.7.8-.7-.7z"/>
+    <path fill="#392100" d="M237.3 229l1.4 1.4-1.4-1.3z"/>
+    <path fill="#101829" d="M238 229l.7.8-.7-.7z"/>
+    <path fill="#5a1008" d="M269.7 229l.7.8-.7-.7z"/>
+    <path fill="#420000" d="M271 229l.8.8-.7-.7z"/>
+    <path fill="#ce2110" d="M276 229l.7.8-.7-.7z"/>
+    <path fill="#5a2908" d="M276.7 229l.7.8-.7-.7z"/>
+    <path fill="#bd9408" d="M277.4 229l.7.8-.7-.7z"/>
+    <path fill="#efbd08" d="M278.1 229l.7.8-.7-.7z"/>
+    <path fill="#631808" d="M278.8 229l.7.8-.7-.7z"/>
+    <path fill="#cecece" d="M304.1 229l.7.8-.7-.7z"/>
+    <path fill="#00216b" d="M304.9 229l.7.8-.8-.7z"/>
+    <path fill="#8c8c8c" d="M313.3 229l.7.8-.7-.7m-118.9.7l.7.6-.7-.6z"/>
+    <path fill="#00215a" d="M202.8 229.8l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M203.6 229.8l.7.6-.8-.6z"/>
+    <path fill="#313918" d="M229.6 229.8l.7.6-.7-.6z"/>
+    <path fill="#ffce08" d="M230.3 229.8l.7.6-.7-.6z"/>
+    <path fill="#ad8c08" d="M231 229.8l.7.6-.7-.6z"/>
+    <path fill="#00215a" d="M231.7 229.8l.7.6-.7-.6z"/>
+    <path fill="#101829" d="M237.3 229.8l.7.6-.7-.6z"/>
+    <path fill="#00184a" d="M238.7 229.8l.7.6-.7-.6z"/>
+    <path fill="#941808" d="M269 229.8l.7.6-.7-.6z"/>
+    <path fill="#ce2110" d="M271 229.8l.8.6-.7-.6z"/>
+    <path fill="#ad1810" d="M276 229.8l.7.6-.7-.6z"/>
+    <path fill="#7b5a00" d="M276.7 229.8l.7.6-.7-.6z"/>
+    <path fill="#ffce08" d="M277.4 229.8l.7.6-.7-.6z"/>
+    <path fill="#634a00" d="M278.1 229.8l-.7 1.3.7-1.3z"/>
+    <path fill="#ce2110" d="M278.8 229.8l.7.6-.7-.6z"/>
+    <path fill="#10214a" d="M304.9 229.8l.7.6-.8-.6z"/>
+    <path fill="#00216b" d="M306.3 229.8l.7.6-.7-.6z"/>
+    <path fill="#525a6b" d="M313.3 229.8l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M193.7 230.4l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M194.4 230.4l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M195.1 230.4l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M195.8 230.4l.7.7-.7-.7z"/>
+    <path fill="#42425a" d="M196.5 230.4l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M197.2 230.4l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M198 230.4l.6.7-.7-.7z"/>
+    <path fill="#314a7b" d="M202.8 230.4l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M229.6 230.4l.7.7-.7-.7z"/>
+    <path fill="#423100" d="M230.3 230.4l.7.7-.7-.7z"/>
+    <path fill="#211800" d="M231 230.4l.7.7-.7-.7z"/>
+    <path fill="#181000" d="M231.7 230.4l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M232.4 230.4l.7.7-.7-.7z"/>
+    <path fill="#181000" d="M238 230.4l.7.7-.7-.7z"/>
+    <path fill="#211800" d="M238.7 230.4l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M239.4 230.4l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M268.3 230.4l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M270.4 230.4l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M275.3 230.4l-.7 1.4.7-1.4z"/>
+    <path fill="#211800" d="M276.7 230.4l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M278.1 230.4l.7.7-.7-.7z"/>
+    <path fill="#636b7b" d="M304.9 230.4l.7.7-.8-.7z"/>
+    <path fill="#000818" d="M306.3 230.4l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M309.8 230.4l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M310.5 230.4l.7.7-.7-.7z"/>
+    <path fill="#314a7b" d="M311.2 230.4l.7.7-.7-.7z"/>
+    <path fill="#636b7b" d="M311.9 230.4l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M312.6 230.4l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M313.3 230.4l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M195.1 231l.7.8-.7-.7z"/>
+    <path fill="#dedede" d="M195.8 231l.7.8-.7-.7z"/>
+    <path fill="#bdbdbd" d="M196.5 231l.7.8-.7-.7m1.4 0l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M198.6 231l.7.8-.7-.7z"/>
+    <path fill="#314a7b" d="M199.3 231l.7.8-.7-.7z"/>
+    <path fill="#00216b" d="M200 231l.7.8-.7-.7z"/>
+    <path fill="#7b7373" d="M202.8 231l.7.8-.7-.7z"/>
+    <path fill="#cecece" d="M204.3 231l.6.8-.7-.7z"/>
+    <path fill="#efefef" d="M205 231l.7.8-.7-.7z"/>
+    <path fill="#001039" d="M231 231l2.1 2-2.1-2z"/>
+    <path fill="#392100" d="M231.7 231l5 4.8-5-4.7z"/>
+    <path fill="#001010" d="M232.4 231l.7.8-.7-.7z"/>
+    <path fill="#00216b" d="M238 231l.7.8-.7-.7z"/>
+    <path fill="#392100" d="M238.7 231l2.1 2-2-2z"/>
+    <path fill="#101810" d="M239.4 231l.7.8-.7-.7z"/>
+    <path fill="#310000" d="M268.3 231l1.4 1.4-1.4-1.3z"/>
+    <path fill="#392100" d="M269 231l.7.8-.7-.7z"/>
+    <path fill="#631808" d="M269.7 231l.7.8-.7-.7z"/>
+    <path fill="#420000" d="M276.7 231l.7.8-.7-.7z"/>
+    <path fill="#ce2110" d="M277.4 231l.7.8-.7-.7m7 0l.8.7-.7-.7z"/>
+    <path fill="#9c9494" d="M304.9 231l.7.8-.8-.7z"/>
+    <path fill="#001000" d="M306.3 231l.7.8-.7-.7z"/>
+    <path fill="#00216b" d="M307.7 231l.7.8-.7-.7z"/>
+    <path fill="#21315a" d="M308.4 231l.7.8-.7-.7z"/>
+    <path fill="#7b7373" d="M309 231l.8.8-.7-.7z"/>
+    <path fill="#bdbdbd" d="M311.6 231.3l.5.2-.5-.2z"/>
+    <path fill="#cecece" d="M193 231.8l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M193.7 231.8l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M195.8 231.8l1.4 1.3-1.4-1.3z"/>
+    <path fill="#ada5a5" d="M196.5 231.8l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M197.2 231.8l2.1 2.6-2-2.6z"/>
+    <path fill="#9c9494" d="M198 231.8l.6.6-.7-.6z"/>
+    <path fill="#efefef" d="M199 232l.6.2-.5-.2z"/>
+    <path fill="#dedede" d="M200 231.8l-.7 1.3.7-1.3z"/>
+    <path fill="#8c8c8c" d="M200.7 231.8l2.1 3.3-2-3.3z"/>
+    <path fill="#314a7b" d="M201.4 231.8l.7.6-.7-.6z"/>
+    <path fill="#00184a" d="M202.1 231.8l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M202.8 231.8l.7.6-.7-.6z"/>
+    <path fill="#6b735a" d="M204.3 231.8l.6.6-.7-.6z"/>
+    <path fill="#63636b" d="M205 231.8l.7.6-.7-.6z"/>
+    <path fill="#002984" d="M284 231.3l.7.7-.7-.7z"/>
+    <path fill="#000818" d="M224 231.8l.6.6-.7-.6z"/>
+    <path fill="#00216b" d="M224.7 231.8l.7.6-.8-.6z"/>
+    <path fill="#001010" d="M233.1 231.8l.7.6-.7-.6z"/>
+    <path fill="#001039" d="M238.7 231.8l.7.6-.7-.6m1.4 0l.7.6-.7-.6z"/>
+    <path fill="#631808" d="M267.6 231.8l.7.6-.7-.6z"/>
+    <path fill="#392100" d="M268.3 231.8l.7.6-.7-.6z"/>
+    <path fill="#5a1008" d="M274.6 231.8l-1.4 2 1.4-2z"/>
+    <path fill="#392100" d="M275.3 231.8l-2.1 2.6 2.1-2.6z"/>
+    <path fill="#ce2110" d="M276.7 231.8l.7.6-.7-.6z"/>
+    <path fill="#ad1810" d="M283 231.8l.7.6-.7-.6z"/>
+    <path fill="#310000" d="M283.8 231.8l.6.6-.6-.6z"/>
+    <path fill="#941808" d="M284.4 231.8l.8.6-.8-.6z"/>
+    <path fill="#8c8c8c" d="M296.6 232.2l.3.5-.3-.5z"/>
+    <path fill="#dedede" d="M300 231.8l.6.6-.7-.6z"/>
+    <path fill="#7b7373" d="M300.6 231.8l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M304.9 231.8l.7.6-.8-.6z"/>
+    <path fill="#080829" d="M305.6 231.8l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M306.3 231.8l.7.6-.7-.6z"/>
+    <path fill="#424242" d="M307 231.8l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M307.7 231.8l1.4 1.3-1.4-1.3z"/>
+    <path fill="#cecece" d="M308.4 231.8l.7.6-.7-.6z"/>
+    <path fill="#424242" d="M310.5 231.8l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M311.2 231.8l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M193 232.4l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M193.7 232.4l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M195.8 232.4l.7.7-.7-.7m5 0l.6.7-.7-.7z"/>
+    <path fill="#dedede" d="M202 232.7l.4.2-.5-.2z"/>
+    <path fill="#cecece" d="M203.6 232.4l.7.7-.8-.7z"/>
+    <path fill="#294200" d="M204.3 232.4l.6.7-.7-.7z"/>
+    <path fill="#295200" d="M205 232.4l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M205.7 232.4l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M224 232.4l.6.7-.7-.7z"/>
+    <path fill="#8c7300" d="M224.7 232.4l.7.7-.8-.7z"/>
+    <path fill="#392121" d="M225.4 232.4l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M226 232.4l.8.7-.7-.7z"/>
+    <path fill="#00184a" d="M231.7 232.4v4.7h.7l-.7-4.7z"/>
+    <path fill="#001010" d="M233.8 232.4l.7.7-.7-.7m5.6 0l.7.7-.7-.7z"/>
+    <path fill="#00215a" d="M240.8 232.4l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M266.9 232.4l.7.7-.7-.7z"/>
+    <path fill="#211800" d="M266.9 233.8l2-.7-2 .7z"/>
+    <path fill="#bd2110" d="M269 232.4l.7.7-.7-.7z"/>
+    <path fill="#001010" d="M275.3 232.4l-.7 1.4.7-1.4z"/>
+    <path fill="#6b1821" d="M276 232.4l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M281.6 232.4l.7.7-.7-.7z"/>
+    <path fill="#5a2908" d="M282.3 232.4l1.4 1.4-1.4-1.4z"/>
+    <path fill="#8c7300" d="M283 232.4l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M283.8 232.4l.6.7-.6-.7z"/>
+    <path fill="#ada5a5" d="M297.1 232.4l-.7 1.4.7-1.4z"/>
+    <path fill="#101810" d="M300.6 232.4l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M301.3 232.4l.7.7-.7-.7m3.3.3l.5.2-.5-.3z"/>
+    <path d="M305.6 232.4l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M306.3 232.4l.7.7-.7-.7z"/>
+    <path fill="#313931" d="M307 232.4l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M307.7 232.4l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M310.5 232.4l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M311.2 232.4l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M193 233.1l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M194.2 233.3l.4.3-.4-.3m2.8 0l.4.3-.4-.3z"/>
+    <path fill="#ada5a5" d="M199.3 233.1l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M200 233.1l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M201.4 233.1l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M202.8 233.1l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M203.6 233.1l.7.7-.8-.7z"/>
+    <path fill="#397b00" d="M204.3 233.1l.6.7-.7-.7z"/>
+    <path fill="#428c00" d="M205 233.1l-1.4 5.4h-.7l1.3-4.7h-.6l-.7 5.3 2.8-1.3-3.5 5.3 2.8-2-3.6 2.7-.7 3.4h.7l7-8-2 .6v-.7l2-.6v-.7h-2.7l-.7-4.7z"/>
+    <path fill="#5a6b52" d="M205.7 233.1l.7.7-.7-.7z"/>
+    <path fill="#102121" d="M224.7 233.1l.7.7-.8-.7z"/>
+    <path fill="#efbd08" d="M225.4 233.1l.7.7-.7-.7z"/>
+    <path fill="#ad8c08" d="M226 233.1l.8.7-.7-.7z"/>
+    <path fill="#102121" d="M226.8 233.1l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M227.5 233.1l.7.7-.7-.7z"/>
+    <path fill="#003994" d="M232.4 233.1c0 5.4 3.2 7.9 7.7 10.7-.3-4.5-4.1-8-7.7-10.7z"/>
+    <path fill="#001010" d="M233.1 233.1l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M234.5 233.1l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M239.4 233.1l.7.7-.7-.7z"/>
+    <path fill="#211800" d="M240.6 233.3l.5.3-.5-.3z"/>
+    <path fill="#002984" d="M241.5 233.1l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M266.2 233.1l.7.7-.7-.7z"/>
+    <path fill="#392100" d="M267.6 233.1l-1.4 2 1.4-2z"/>
+    <path fill="#941808" d="M268.3 233.1l.7.7-.7-.7z"/>
+    <path fill="#003994" d="M275.3 233.1l-7 10.7c3.9-2.3 9.2-5.8 7-10.7z"/>
+    <path fill="#ce2110" d="M280.2 233.1l.7.7-.7-.7z"/>
+    <path fill="#6b2908" d="M281 233.1l.6.7-.7-.7z"/>
+    <path fill="#9c7b08" d="M281.6 233.1l.7.7-.7-.7z"/>
+    <path fill="#ffce08" d="M282.3 233.1l-.7 1.3.7-1.3z"/>
+    <path fill="#ce2110" d="M283.8 233.1l.6.7-.6-.7z"/>
+    <path fill="#294221" d="M300.6 233.1l1.4 1.3-1.4-1.3z"/>
+    <path fill="#8c8c8c" d="M301.3 233.1l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M304.6 233.3l.5.3-.5-.3z"/>
+    <path fill="#103910" d="M305.6 233.1l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M306.3 233.1l.7 14h.7l2-12h-.6l-1.4 8h-.7l-.7-10z"/>
+    <path fill="#424242" d="M307 233.1l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M307.7 233.1l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M309.8 233.1l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M311.2 233.1l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M312.6 233.1l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M313.3 233.1l-.7 1.3.7-1.3z"/>
+    <path fill="#ada5a5" d="M315.4 233.1l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M193 233.8l2.1 2-2.1-2z"/>
+    <path fill="#cecece" d="M194.4 233.8l.7 2h.7l-1.4-2z"/>
+    <path fill="#9c9494" d="M195.1 233.8l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M197.2 233.8l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M198 233.8l-.8 1.3.7-1.3z"/>
+    <path fill="#425242" d="M199.3 233.8l.7.6-.7-.6z"/>
+    <path fill="#213918" d="M200 233.8l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M200.7 233.8l.7.6-.7-.6z"/>
+    <path fill="#63636b" d="M202.8 233.8l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M204.5 234.2l.2.5-.2-.5z"/>
+    <path fill="#295200" d="M205.7 233.8l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M206.4 233.8l.7.6-.7-.6z"/>
+    <path fill="#4a4208" d="M225.4 233.8l.7.6-.7-.6z"/>
+    <path fill="#ffce08" d="M226 233.8l.8.6-.7-.6z"/>
+    <path fill="#bd9408" d="M226.8 233.8l.7.6-.7-.6z"/>
+    <path fill="#00184a" d="M227.5 233.8l.7.6-.7-.6z"/>
+    <path fill="#001010" d="M233.8 233.8l.7.6-.7-.6z"/>
+    <path fill="#001039" d="M235.2 233.8l.7.6-.7-.6z"/>
+    <path fill="#00215a" d="M240.1 233.8l.7.6-.7-.6z"/>
+    <path fill="#392100" d="M240.8 233.8l1.4 1.3-1.4-1.3z"/>
+    <path fill="#001010" d="M241.5 233.8l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M255.6 233.8l.7.6-.7-.6z"/>
+    <path fill="#420000" d="M266.2 233.8l.7.6-.7-.6z"/>
+    <path fill="#5a1008" d="M267.6 233.8l.7.6-.7-.6z"/>
+    <path fill="#7b1008" d="M272.5 233.8l.7.6-.7-.6z"/>
+    <path fill="#181000" d="M273.9 233.8l-1.4 2 1.4-2z"/>
+    <path fill="#002984" d="M274.6 233.8l.7.6-.7-.6z"/>
+    <path fill="#941808" d="M280.2 233.8l.7.6-.7-.6z"/>
+    <path fill="#7b5a00" d="M281 233.8l.6.6-.7-.6m1.4 0l.7.6-.7-.6z"/>
+    <path fill="#b51010" d="M283 233.8l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M296.4 233.8l.7.6-.7-.6z"/>
+    <path fill="#103910" d="M297.1 233.8l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M297.8 233.8l.7.6-.7-.6z"/>
+    <path fill="#4a6342" d="M300.6 233.8l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M304.9 233.8l.7.6-.8-.6z"/>
+    <path fill="#185200" d="M305.6 233.8l.7.6-.7-.6z"/>
+    <path fill="#7b8c73" d="M307 233.8l.7.6-.7-.6z"/>
+    <path fill="#395231" d="M309 233.8l.8.6-.7-.6z"/>
+    <path fill="#319400" d="M309.8 233.8l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M313.3 233.8l.7.6-.7-.6z"/>
+    <path fill="#63636b" d="M314.7 233.8l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M315.4 233.8l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M193 234.4l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M198 234.4l.6.7-.7-.7z"/>
+    <path fill="#424242" d="M198.6 234.4l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M199.3 234.4l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M200 234.4l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M200.7 234.4l1.4 1.4-1.4-1.4z"/>
+    <path fill="#397b00" d="M202.8 234.4l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M206.4 234.4l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M225.4 234.4l1.4 1.4-1.4-1.4z"/>
+    <path fill="#6b5a00" d="M226 234.4l.8.7-.7-.7z"/>
+    <path fill="#211800" d="M226.8 234.4l2 1.4-2-1.4z"/>
+    <path fill="#00216b" d="M228.2 234.4l.7.7-.7-.7z"/>
+    <path fill="#001010" d="M234.5 234.4l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M236 234.4l.6.7-.7-.7m5 0l.6.7-.7-.7z"/>
+    <path fill="#00184a" d="M242.2 234.4l.7.7-.7-.7z"/>
+    <path fill="#bd9408" d="M253.5 234.4v.7l1.4 2.7h.7l-2.1-3.4z"/>
+    <path fill="#7b1008" d="M265.5 234.4l.7.7-.7-.7z"/>
+    <path fill="#311000" d="M266.9 234.4l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M267.6 234.4l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M271.8 234.4l-.7 1.4.7-1.4z"/>
+    <path fill="#211800" d="M272.5 234.4l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M273.9 234.4l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M279.5 234.4l.7.7-.7-.7z"/>
+    <path fill="#211800" d="M280.2 234.4l-1.4 2 1.4-2z"/>
+    <path fill="#181000" d="M281 234.4l.6.7-.7-.7z"/>
+    <path fill="#6b5a00" d="M281.6 234.4l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M282.3 234.4l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M296.4 234.4l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M297.1 234.4l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M297.8 234.4l.7.7-.7-.7z"/>
+    <path fill="#6b735a" d="M300.6 234.4l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M301.3 234.4l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M302 234.4l.7.7-.7-.7z"/>
+    <path fill="#313931" d="M304.9 234.4l.7.7-.8-.7z"/>
+    <path fill="#297b00" d="M305.6 234.4l.7.7-.7-.7z"/>
+    <path fill="#4a6342" d="M307 234.4v3.4h.7l-.7-3.4z"/>
+    <path fill="#7b7373" d="M308.4 234.4l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M309.5 234.7l.5.2-.5-.2z"/>
+    <path fill="#63636b" d="M310.5 234.4l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M311.2 234.4l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M312.4 234.7l.4.2-.4-.2z"/>
+    <path fill="#8c8c8c" d="M313.3 234.4l-.7 1.4.7-1.4z"/>
+    <path fill="#7b7373" d="M314 234.4l.7.7-.7-.7z"/>
+    <path fill="#103910" d="M314.7 234.4l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M315.4 234.4l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M192.3 235.1l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M193 235.1l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M195.8 235.1l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M198 235.1l.6.7-.7-.7z"/>
+    <path fill="#001000" d="M198.6 235.1l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M199.3 235.1v2l2.1-.6v-.7l-2-.7z"/>
+    <path fill="#213918" d="M200.7 235.1l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M202.1 235.1l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M204 235.3l.5.3-.5-.3z"/>
+    <path fill="#8c8c8c" d="M206.4 235.1l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M226.8 235.1l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M228.9 235.1l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M234.5 235.1l2.1 2-2.1-2z"/>
+    <path fill="#181000" d="M235.2 235.1l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M236.6 235.1l.7.7-.7-.7z"/>
+    <path fill="#181000" d="M241.5 235.1l.7.7-.7-.7z"/>
+    <path fill="#211800" d="M242.5 235.6l.2.4-.2-.4z"/>
+    <path fill="#00216b" d="M243 235.1l.6.7-.7-.7z"/>
+    <path fill="#7b5a00" d="M252.8 235.1v2.7h.7l-.7-2.7z"/>
+    <path fill="#ffce08" d="M253.5 235.1v3.4h-2.8v2h2.8v8h.7l.7-8h3.5v-2H255V235h-1.4z"/>
+    <path fill="#b51010" d="M264.8 235.1l.6.7-.6-.7z"/>
+    <path fill="#211800" d="M266 235.3l.4.3-.5-.3z"/>
+    <path fill="#b51010" d="M266.9 235.1l.7.7-.7-.7z"/>
+    <path fill="#211800" d="M271.8 235.1l-2.1 2.7 2-2.7z"/>
+    <path fill="#002984" d="M273.2 235.1l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M278.8 235.1l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M281 235.1l.6.7-.7-.7z"/>
+    <path fill="#b51010" d="M281.6 235.1l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M297.1 235.1l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M297.8 235.1l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M298.5 235.1l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M300.6 235.1l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M301.3 235.1l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M302 235.1l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M304.9 235.1l.7.7-.8-.7z"/>
+    <path fill="#395231" d="M308.4 235.1l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M309.8 235.1l.7.7-.7-.7z"/>
+    <path fill="#424242" d="M310.5 235.1l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M311.2 235.1l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M311.9 235.1l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M313.3 235.1l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M314 235.1l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M314.7 235.1l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M193.7 235.8l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M194.4 235.8l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M195.6 236l.5.2-.5-.2z"/>
+    <path fill="#9c9494" d="M196.5 235.8l.7.6-.7-.6z"/>
+    <path fill="#424242" d="M198 235.8l.6.6-.7-.6z"/>
+    <path fill="#428c00" d="M198.6 235.8c-1.9 4-1.6 6.6 0 10.7h1.4l1.4-10h-.7l-.7 8h-1.4v-8.7z"/>
+    <path fill="#313931" d="M201.4 235.8l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M203.8 236.2l.2.5-.2-.5z"/>
+    <path fill="#6b735a" d="M206.4 235.8l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M227.5 235.8l1.4 1.3-1.4-1.3z"/>
+    <path fill="#100808" d="M228.2 235.8l.7.6-.7-.6z"/>
+    <path fill="#392100" d="M228.9 235.8l2.8 2.7-2.8-2.7z"/>
+    <path fill="#001039" d="M229.6 235.8l.7.6-.7-.6z"/>
+    <path fill="#181000" d="M236 235.8l1.3 1.3-1.4-1.3z"/>
+    <path fill="#211800" d="M236.6 235.8l2.8 3.3-2.8-3.3z"/>
+    <path fill="#00216b" d="M237.3 235.8l.7.6-.7-.6z"/>
+    <path fill="#002984" d="M241.5 235.8l.7.6-.7-.6z"/>
+    <path fill="#181000" d="M243 235.8l.6.6-.7-.6z"/>
+    <path fill="#311000" d="M264.8 235.8l.6.6-.6-.6z"/>
+    <path fill="#392100" d="M265.5 235.8l-.7 1.3.7-1.3z"/>
+    <path fill="#7b1008" d="M266.2 235.8l.7.6-.7-.6z"/>
+    <path fill="#ad1810" d="M270.4 235.8l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M272.5 235.8l.7.6-.7-.6z"/>
+    <path fill="#631808" d="M278.1 235.8l.7.6-.7-.6z"/>
+    <path fill="#5a1008" d="M280.2 235.8l.7.6-.7-.6z"/>
+    <path fill="#5a6b52" d="M297.1 235.8l.7.6-.7-.6z"/>
+    <path fill="#319400" d="M297.8 235.8l.7.6-.7-.6z"/>
+    <path fill="#103910" d="M298.5 235.8l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M299.2 235.8l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M300.6 235.8l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M301.3 235.8l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M302 235.8l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M302.7 235.8l.7.6-.7-.6z"/>
+    <path fill="#315221" d="M304.9 235.8l.7.6-.8-.6z"/>
+    <path fill="#185200" d="M308.4 235.8l.7.6-.7-.6m1.4 0l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M310.5 235.8l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M311.6 236l.5.2-.5-.2z"/>
+    <path fill="#ada5a5" d="M312.6 235.8l.7.6-.7-.6z"/>
+    <path fill="#214210" d="M313.3 235.8l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M314 235.8l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M314.7 235.8l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M198 236.4l.6.7-.7-.7z"/>
+    <path fill="#103900" d="M201.4 236.4l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M206.4 236.4l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M227.5 236.4v18.8H221v.7l7-.7v3.3h.8c0-5.7 2.3-17.4-1.4-22z"/>
+    <path fill="#001010" d="M228.9 236.4l.7.7-.7-.7m1.4 0l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M238 236.4l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M242.2 236.4l.7.7-.7-.7z"/>
+    <path fill="#392100" d="M243 236.4l1.3 1.4-1.4-1.4z"/>
+    <path fill="#101829" d="M243.7 236.4l.7.7-.8-.7z"/>
+    <path fill="#631808" d="M264 236.4l.8.7-.8-.7z"/>
+    <path fill="#420000" d="M265.5 236.4l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M269.7 236.4l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M271.8 236.4l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M276.7 236.4l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M277.4 236.4l.7.7-.7-.7z"/>
+    <path fill="#392100" d="M278.1 236.4l-2 2.7 2-2.6z"/>
+    <path fill="#181000" d="M278.8 236.4l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M279.5 236.4l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M280.2 236.4v18.8h.7l-.7-18.7z"/>
+    <path fill="#8c8c8c" d="M297.1 236.4l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M298.3 236.7l.5.2-.5-.2z"/>
+    <path fill="#52525a" d="M299.2 236.4l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M300.6 236.4l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M301.3 236.4l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M302 236.4l2.9 16.8h.7a21.2 21.2 0 00-3.6-16.8z"/>
+    <path fill="#63636b" d="M302.7 236.4l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M304.1 236.4l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M304.9 236.4l.7.7-.8-.7z"/>
+    <path fill="#297b00" d="M308.4 236.4l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M309.8 236.4l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M312.6 236.4l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M313.3 236.4l.7.7-.7-.7z"/>
+    <path fill="#294221" d="M314 236.4l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M196.5 237.1l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M197.2 237.1l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M199.6 237.6l.2.4-.2-.4z"/>
+    <path fill="#294200" d="M201.4 237.1l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M203.3 237.3l.5.3-.5-.3z"/>
+    <path fill="#294200" d="M205.7 237.1l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M206.8 237.3l.5.3-.5-.3z"/>
+    <path fill="#294200" d="M207.8 237.1l.7.7-.7-.7z"/>
+    <path fill="#8c8442" d="M208.5 237.1l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M209.2 237.1l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M209.9 237.1l.7.7-.7-.7z"/>
+    <path fill="#003994" d="M228.9 237.1c0 5-2.5 18.3.7 22.3 1.4 1.8 4.9 2 7 2.5 0-10.3 2-18.4-7.7-24.8z"/>
+    <path fill="#101829" d="M229.6 237.1l.7.7-.7-.7z"/>
+    <path fill="#100808" d="M231 237.1l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M231.7 237.1l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M236.6 237.1l.7.7-.7-.7m2.1 0l.7.7-.7-.7z"/>
+    <path fill="#001010" d="M243 237.1l.6.7-.7-.7z"/>
+    <path fill="#00184a" d="M244.3 237.1l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M263.4 237.1l.7.7-.8-.7z"/>
+    <path fill="#211800" d="M263.4 238.5l2-1.4-2 1.4z"/>
+    <path fill="#ce2110" d="M265.5 237.1l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M269 237.1l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M271 237.1l.8.7-.7-.7z"/>
+    <path fill="#5a1831" d="M276 237.1l.7.7-.7-.7z"/>
+    <path fill="#311000" d="M276.7 237.1l.7.7-.7-.7z"/>
+    <path fill="#001010" d="M278.1 237.1l.7.7-.7-.7z"/>
+    <path fill="#003994" d="M271.8 261.9c2.3-.6 5.6-.8 7.3-2.5 3.6-3.6 1.1-17.4 1.1-22.3-11 4.9-8.4 15-8.4 24.8z"/>
+    <path fill="#dedede" d="M297.1 237.1l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M297.8 237.1l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M298.5 237.1l5.6 21.4h-.7c-1-3.7-5.5-18-11.2-12.7 7.5.3 10 13.1 11.2 18.8h.7l9.2-26.8h-.7l-7 17.4h-.8c-1.9-5.7-1.7-13.7-6.3-18z"/>
+    <path fill="#296300" d="M299.2 237.1l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M300 237.1l.6.7-.7-.7z"/>
+    <path fill="#dedede" d="M300.6 237.1l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M301.3 237.1l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M302.7 237.1l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M303.4 237.1l.8.7-.8-.7z"/>
+    <path fill="#8c8c8c" d="M304.1 237.1l-.7 1.4.8-1.4z"/>
+    <path fill="#297b00" d="M304.9 237.1l.7.7-.8-.7z"/>
+    <path fill="#395231" d="M307.7 237.1l.7.7-.7-.7z"/>
+    <path fill="#4a6342" d="M309.8 237.1l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M311.9 237.1l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M313 237.3l.5.3-.4-.3z"/>
+    <path fill="#8c8c8c" d="M314 237.1l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M196.5 237.8l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M201.4 237.8l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M202.8 237.8l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M204.3 237.8l-2.9.7v.6l2.8-1.3z"/>
+    <path fill="#103900" d="M205 237.8l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M208.7 238.2l.2.5-.2-.5z"/>
+    <path fill="#428c00" d="M209.2 237.8l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M209.9 237.8l.7.7-.7-.7z"/>
+    <path fill="#313931" d="M210.6 237.8l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M230.3 237.8l.7.7-.7-.7z"/>
+    <path fill="#181000" d="M231.7 237.8l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M232.4 237.8l1.4 1.3-1.4-1.3m5 0l.6.7-.7-.7z"/>
+    <path fill="#181000" d="M238.7 237.8l2.1 2-2-2z"/>
+    <path fill="#002984" d="M239.4 237.8l.7.7-.7-.7z"/>
+    <path fill="#211800" d="M244.1 238l.5.2-.5-.2z"/>
+    <path fill="#002984" d="M245 237.8l.8.7-.7-.7z"/>
+    <path fill="#dedede" d="M249.3 237.8l.7.7-.7-.7z"/>
+    <path fill="#ada584" d="M250 237.8l.7.7-.7-.7z"/>
+    <path fill="#9c7b08" d="M252.8 237.8l.7.7-.7-.7z"/>
+    <path fill="#cea508" d="M254.9 237.8l.7.7-.7-.7z"/>
+    <path fill="#9c9463" d="M255.6 237.8l.7.7-.7-.7z"/>
+    <path fill="#bdb584" d="M256.3 237.8v.7h2.1l-2-.7z"/>
+    <path fill="#bdbdbd" d="M258.4 237.8l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M262.6 237.8l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M264.8 237.8l.6.7-.6-.7z"/>
+    <path fill="#bd2110" d="M268.3 237.8l.7.7-.7-.7z"/>
+    <path fill="#210800" d="M269 237.8l.7.7-.7-.7z"/>
+    <path fill="#392100" d="M269.7 237.8l-1.4 2 1.4-2z"/>
+    <path fill="#00184a" d="M270.4 237.8l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M275.3 237.8l.7.7-.7-.7z"/>
+    <path fill="#100808" d="M276 237.8l.7.7-.7-.7z"/>
+    <path fill="#101829" d="M277.4 237.8l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M294.3 237.8l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M295 237.8l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M297.8 237.8l.7.7-.7-.7z"/>
+    <path fill="#103910" d="M300 237.8l.6.7-.7-.7z"/>
+    <path fill="#efefef" d="M300.6 237.8l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M301.3 237.8l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M302.7 237.8l.7.7-.7-.7z"/>
+    <path fill="#5a6b52" d="M304.1 237.8l.7.7-.7-.7z"/>
+    <path fill="#294221" d="M307 237.8l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M307.7 237.8l.7.7-.7-.7z"/>
+    <path fill="#5a6b52" d="M309.8 237.8l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M311.2 237.8l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M311.9 237.8l.7.7-.7-.7m1.4 0l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M314 237.8l.7.7-.7-.7z"/>
+    <path fill="#5a5231" d="M196.5 238.5l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M199.3 238.5v2h.7l-.7-2m5 0l.6.6-.7-.6m3.3.2l.5.2-.5-.2z"/>
+    <path fill="#214210" d="M209.2 238.5l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M209.9 238.5l.7.6-.7-.6z"/>
+    <path fill="#00215a" d="M231 238.5l.7.6-.7-.6z"/>
+    <path fill="#211800" d="M231.7 238.5v.6l2.1.7-2.1-1.3z"/>
+    <path fill="#00216b" d="M238 238.5l.7.6-.7-.6z"/>
+    <path fill="#002984" d="M240.1 238.5l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M243.7 238.5l.7.6-.8-.6z"/>
+    <path fill="#392100" d="M244.3 238.5l2.2 2-2.1-2z"/>
+    <path fill="#101810" d="M245 238.5l.8.6-.7-.6z"/>
+    <path fill="#bd9408" d="M250 238.5v2h.7l-.7-2z"/>
+    <path fill="#310000" d="M262.6 238.5l.7.6-.7-.6z"/>
+    <path fill="#392100" d="M263.4 238.5l-.7 1.3.7-1.3z"/>
+    <path fill="#631808" d="M264 238.5l.8.6-.8-.6z"/>
+    <path fill="#ce2110" d="M267.6 238.5l-.7 1.3.7-1.3z"/>
+    <path fill="#311000" d="M268.3 238.5l.7.6-.7-.6z"/>
+    <path fill="#001039" d="M269.7 238.5l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M274.6 238.5l-.7 1.3.7-1.3z"/>
+    <path fill="#181000" d="M275.3 238.5l.7.6-.7-.6z"/>
+    <path fill="#001039" d="M276.7 238.5l.7.6-.7-.6z"/>
+    <path fill="#101810" d="M295 238.5l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M295.7 238.5l.7.6-.7-.6z"/>
+    <path fill="#63636b" d="M297.8 238.5l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M300 238.5l.6.6-.7-.6z"/>
+    <path fill="#7b7373" d="M300.6 238.5l.7.6-.7-.6z"/>
+    <path fill="#315221" d="M301.3 238.5l.7.6-.7-.6z"/>
+    <path fill="#214210" d="M303.4 238.5l.8.6-.8-.6z"/>
+    <path fill="#103900" d="M304.1 238.5l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M307 238.5v4h.7l-.7-4z"/>
+    <path fill="#297b00" d="M307.7 238.5l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M309.8 238.5l.7.6-.7-.6z"/>
+    <path fill="#63636b" d="M311.2 238.5l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M311.9 238.5l.7.6-.7-.6z"/>
+    <path fill="#5a6b52" d="M313.3 238.5l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M196.5 239.1l.7.7-.7-.7m5.6 0l.7.7-.7-.7m1.4 0l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M206.4 239.1l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M207 239.1l.8.7-.7-.7z"/>
+    <path fill="#294200" d="M208.5 239.1l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M209.2 239.1l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M231.7 239.1l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M233.8 239.1l1.4 1.4-1.4-1.4z"/>
+    <path fill="#00184a" d="M238.7 239.1l.7.7-.7-.7z"/>
+    <path fill="#392100" d="M239.4 239.1l5.7 5.4-5.7-5.4z"/>
+    <path fill="#001039" d="M244.3 239.1l.7.7-.7-.7m1.4 0l.8.7-.7-.7z"/>
+    <path fill="#631808" d="M262 239.1l.6.7-.7-.7z"/>
+    <path fill="#311000" d="M263.4 239.1l.7.7-.8-.7m4.3 0l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M269 239.1l.7.7-.7-.7z"/>
+    <path fill="#211800" d="M273.9 240.5l2.1-.7-2.1.7z"/>
+    <path fill="#00215a" d="M276 239.1l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M295 239.1l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M295.7 239.1l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M297.8 239.1l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M298.5 239.1l.7.7-.7-.7z"/>
+    <path fill="#295210" d="M300.6 239.1l.7.7-.7-.7z"/>
+    <path fill="#395231" d="M301.3 239.1l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M303.4 239.1l.8.7-.8-.7z"/>
+    <path fill="#185200" d="M304.1 239.1l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M309 239.1l.8.7-.7-.7z"/>
+    <path fill="#9c9494" d="M309.8 239.1l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M310.5 239.1l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M311.2 239.1l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M312.6 239.1l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M313.3 239.1l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M195.8 239.8l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M196.5 239.8l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M202.1 239.8l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M202.8 239.8l-.7 2h.8v-2m2.8 0l-.7 1.3.7-1.3z"/>
+    <path fill="#397b00" d="M207.8 239.8l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M208.5 239.8l.7.7-.7-.7m2.8 0l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M232.4 239.8l.7.7-.7-.7z"/>
+    <path fill="#392100" d="M233.8 239.8l2.8 2.7-2.8-2.7z"/>
+    <path fill="#001039" d="M239.4 239.8l.7.7-.7-.7z"/>
+    <path fill="#001010" d="M240.8 239.8l.7.7-.7-.7z"/>
+    <path fill="#101810" d="M245 239.8l.8.7-.7-.7z"/>
+    <path fill="#00216b" d="M246.5 239.8l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M261.2 239.8l.7.7-.7-.7z"/>
+    <path fill="#211800" d="M261.2 241.1l2.2-.6-2.2.6z"/>
+    <path fill="#bd2110" d="M263.4 239.8l.7.7-.8-.7z"/>
+    <path fill="#310000" d="M266.9 239.8l.7.7-.7-.7z"/>
+    <path fill="#422100" d="M267.6 239.8l.7.7-.7-.7z"/>
+    <path fill="#101829" d="M268.3 239.8l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M273.2 239.8l-.7 1.3.7-1.3z"/>
+    <path fill="#181000" d="M274.6 239.8l-.7 1.3.7-1.3z"/>
+    <path fill="#00216b" d="M275.3 239.8l.7.7-.7-.7z"/>
+    <path fill="#426331" d="M295 239.8l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M295.7 239.8l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M296.4 239.8l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M298.5 239.8l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M300.6 239.8l.7.7-.7-.7z"/>
+    <path fill="#001000" d="M301.3 239.8l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M304.1 239.8l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M309 239.8l.8.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M309.8 239.8l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M310.5 239.8l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M311.2 239.8l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M312.6 239.8l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M196 241l.3.4-.3-.5z"/>
+    <path fill="#295200" d="M199.3 240.5l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M201.7 241l.2.4-.2-.5m1.1-.4l.7.6-.7-.6z"/>
+    <path fill="#425242" d="M207.8 240.5l.7.6-.7-.6z"/>
+    <path fill="#001000" d="M211.3 240.5l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M212 240.5l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M217.6 240.5l.7.6-.7-.6z"/>
+    <path fill="#52525a" d="M218.3 240.5l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M219 240.5l.7.6-.7-.6z"/>
+    <path fill="#001010" d="M233.8 240.5l.7.6-.7-.6m1.4 0l.7.6-.7-.6z"/>
+    <path fill="#001039" d="M240.1 240.5l.7.6-.7-.6z"/>
+    <path fill="#001010" d="M241.5 240.5l.7.6-.7-.6z"/>
+    <path fill="#002984" d="M245 240.5l.8.6-.7-.6z"/>
+    <path fill="#211800" d="M246.2 240.7l.5.2-.5-.2z"/>
+    <path fill="#dedede" d="M249.3 240.5l.7.6-.7-.6z"/>
+    <path fill="#ada584" d="M250 240.5l.7.6-.7-.6z"/>
+    <path fill="#9c7b08" d="M252.8 240.5l.7.6-.7-.6z"/>
+    <path fill="#cea508" d="M254.9 240.5l.7.6-.7-.6z"/>
+    <path fill="#9c9463" d="M255.6 240.5l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M258.4 240.5l.7.6-.7-.6z"/>
+    <path fill="#ce2110" d="M260.5 240.5l.7.6-.7-.6z"/>
+    <path fill="#392100" d="M262 240.5l-1.5 2 1.4-2z"/>
+    <path fill="#941808" d="M262.6 240.5l.7.6-.7-.6z"/>
+    <path fill="#5a1008" d="M266.2 240.5l-1.4 2 1.4-2z"/>
+    <path fill="#392100" d="M266.9 240.5l-1.4 2 1.4-2z"/>
+    <path fill="#001010" d="M267.6 240.5l.7.6-.7-.6z"/>
+    <path fill="#392100" d="M273.2 240.5L271 243l2-2.6z"/>
+    <path fill="#002984" d="M274.6 240.5l.7.6-.7-.6z"/>
+    <path fill="#4a6342" d="M295 240.5l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M295.7 240.5l.7.6-.7-.6z"/>
+    <path fill="#52525a" d="M296.4 240.5l.7.6-.7-.6z"/>
+    <path fill="#5a6b52" d="M298.5 240.5l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M301.3 240.5l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M304.1 240.5l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M304.9 240.5l-.7 1.3.7-1.3z"/>
+    <path fill="#185200" d="M309 240.5l.8.6-.7-.6z"/>
+    <path fill="#dedede" d="M309.8 240.5l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M310.5 240.5l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M311.9 240.5l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M312.6 240.5l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M314.7 240.5l.7.6-.7-.6z"/>
+    <path fill="#294221" d="M315.4 240.5l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M316.1 240.5l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M316.8 240.5l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M198.6 241.1v3.4h1.4V241h-1.4z"/>
+    <path fill="#103900" d="M204.3 241.1l.6.7-.7-.7z"/>
+    <path fill="#295200" d="M207 241.1l.8.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M207.8 241.1l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M210.6 241.1l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M211.3 241.1l1.4 1.4-1.4-1.4z"/>
+    <path fill="#425242" d="M212 241.1l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M216.2 241.1l.7.7-.7-.7z"/>
+    <path fill="#5a5231" d="M217 241.1l.6.7-.7-.7z"/>
+    <path fill="#397b00" d="M217.6 241.1l.7.7-.7-.7z"/>
+    <path fill="#396b10" d="M218.3 241.1l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M219 241.1l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M234.5 241.1l.7.7-.7-.7z"/>
+    <path fill="#181000" d="M236 241.1l1.3 1.4-1.4-1.4z"/>
+    <path fill="#002984" d="M236.6 241.1l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M240.8 241.1l.7.7-.7-.7z"/>
+    <path fill="#001010" d="M242.2 241.1l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M245.8 241.1l.7.7-.7-.7z"/>
+    <path fill="#392100" d="M246.5 241.1l1.4 1.4-1.4-1.4z"/>
+    <path fill="#001010" d="M247.2 241.1l.7.7-.7-.7z"/>
+    <path fill="#7b5a00" d="M252.8 241.1v7.4h.7l-.7-7.4z"/>
+    <path fill="#420000" d="M260.5 241.1l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M262 241.1l.6.7-.7-.7z"/>
+    <path fill="#313931" d="M266.9 241.1l.7.7-.7-.7z"/>
+    <path fill="#314a7b" d="M267.6 241.1l.7.7-.7-.7z"/>
+    <path fill="#001010" d="M271.8 241.1l.7.7-.7-.7m1.4 0l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M295 241.1l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M295.7 241.1l3.5 6h.7l-4.2-6z"/>
+    <path fill="#296300" d="M296.4 241.1l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M297.1 241.1l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M298.5 241.1l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M299.2 241.1l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M301.3 241.1l1.4 1.4-1.4-1.4z"/>
+    <path fill="#297b00" d="M302 241.1l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M304.9 241.1l.7.7-.8-.7z"/>
+    <path fill="#214210" d="M309 241.1l.8.7-.7-.7z"/>
+    <path fill="#63636b" d="M309.8 241.1l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M310.5 241.1l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M311.9 241.1l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M312.6 241.1l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M314 241.1l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M314.7 241.1l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M311.2 245.8l7-2-1.4-2.7-5.6 4.7z"/>
+    <path fill="#214210" d="M316.8 241.1l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M317.5 241.1l.7.7-.7-.7m-121.7.7l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M196.5 241.8l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M201.7 242.3l.2.4-.2-.5m1.8-.4l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M204.3 241.8l.6.7-.7-.7z"/>
+    <path fill="#425242" d="M207 241.8l.8.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M210.6 241.8l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M211.3 241.8l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M212.7 241.8l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M215.5 241.8l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M216.2 241.8l.7.7-.7-.7z"/>
+    <path fill="#428c00" d="M214.1 251.8h-.7v-7.3h-.7l-.7 3.3h-.7v-3.3h-.7l-4.2 15.4h.7l1.4-2.7h.7l-1.4 3.4h.7l3.5-4.7-2.8 6h.7l7-10 1.4-10c-4.6 2-4.2 5.6-4.2 10z"/>
+    <path fill="#63636b" d="M218.3 241.8l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M235.2 241.8l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M237.3 241.8l1.4 1.3-1.4-1.3z"/>
+    <path fill="#efefef" d="M240.8 241.8l2.1 2-2-2z"/>
+    <path fill="#313931" d="M241.5 241.8l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M243 241.8l.6.7-.7-.7z"/>
+    <path fill="#101829" d="M246.5 241.8l.7.7-.7-.7z"/>
+    <path d="M247.9 241.8l.7.7-.7-.7z"/>
+    <path fill="#210800" d="M259.8 241.8l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M262 241.8l.6.7-.7-.7z"/>
+    <path fill="#292921" d="M266.2 241.8l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M266.9 241.8l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M270.4 241.8l.7.7-.7-.7z"/>
+    <path fill="#181000" d="M271 241.8l.8.7-.7-.7z"/>
+    <path fill="#001039" d="M272.5 241.8l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M295.2 242.3l.3.4-.3-.5z"/>
+    <path fill="#297b00" d="M295.7 241.8l.7.7-.7-.7z"/>
+    <path fill="#103910" d="M297.1 241.8l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M297.8 241.8l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M298.5 241.8l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M299.2 241.8l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M301.3 241.8l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M304.9 241.8l.7.7-.8-.7z"/>
+    <path fill="#294221" d="M309 241.8l.8.7-.7-.7z"/>
+    <path fill="#184a00" d="M309.8 241.8l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M311.9 241.8l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M313.3 241.8l-1.4 2 1.4-2z"/>
+    <path fill="#297b00" d="M314 241.8l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M317.5 241.8l.7.7-.7-.7z"/>
+    <path fill="#396b10" d="M196.5 242.5l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M202.8 242.5l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M203.6 242.5l.7.6-.8-.6z"/>
+    <path fill="#314231" d="M206.4 242.5l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M207 242.5l-.6 1.3.7-1.3z"/>
+    <path fill="#7b7373" d="M210.6 242.5l.7.6-.7-.6z"/>
+    <path fill="#428c00" d="M211.8 242.7l.4.2-.4-.2z"/>
+    <path fill="#7b7373" d="M212.7 242.5l.7.6-.7-.6z"/>
+    <path fill="#63636b" d="M214.8 242.5l-.7 1.3.7-1.3z"/>
+    <path fill="#397b00" d="M215.5 242.5l.7.6-.7-.6m2.1 0l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M218.3 242.5l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M236 242.5l.6.6-.7-.6z"/>
+    <path fill="#211800" d="M237 242.7l.6.2-.5-.2z"/>
+    <path fill="#313931" d="M242.2 242.5l.7.6-.7-.6z"/>
+    <path fill="#001039" d="M243.7 242.5l.7.6-.8-.6z"/>
+    <path fill="#181000" d="M247.2 242.5l.7.6-.7-.6z"/>
+    <path fill="#211800" d="M248.1 243l.2.4-.2-.5z"/>
+    <path fill="#bdbdbd" d="M248.6 242.5l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M259.1 242.5l.7.6-.7-.6z"/>
+    <path fill="#b51010" d="M261.2 242.5l.7.6-.7-.6z"/>
+    <path fill="#941808" d="M264 242.5l-1.3 2 1.4-2z"/>
+    <path fill="#211800" d="M264.8 242.5l-3.6 4 3.6-4z"/>
+    <path fill="#212118" d="M265.5 242.5l-.7 1.3.7-1.3z"/>
+    <path fill="#cecece" d="M266.2 242.5l-1.4 2 1.4-2z"/>
+    <path fill="#00216b" d="M269.7 242.5l-.7 1.3.7-1.3z"/>
+    <path fill="#181000" d="M270.4 242.5l.7.6-.7-.6z"/>
+    <path fill="#001039" d="M271.8 242.5l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M293.6 242.5l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M294.3 242.5l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M295.7 242.5l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M297.1 242.5l.7.6-.7-.6z"/>
+    <path fill="#52525a" d="M297.8 242.5l.7.6-.7-.6z"/>
+    <path fill="#395231" d="M299.2 242.5l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M302 242.5v2h.7l-.7-2z"/>
+    <path fill="#296300" d="M305.3 242.7l.5.2-.5-.2m1.7-.2l.7.6-.7-.6z"/>
+    <path fill="#001000" d="M309 242.5l.8.6-.7-.6z"/>
+    <path fill="#297b00" d="M309.8 242.5l.7.6-.7-.6m1.4 0l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M311.9 242.5l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M313.3 242.5l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M317.5 242.5l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M318.2 242.5l.7.6-.7-.6z"/>
+    <path fill="#5a6b52" d="M196.5 243.1l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M200.7 243.1v.7h2.1l-2-.7z"/>
+    <path fill="#294200" d="M202.8 243.1l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M205 243.1l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M205.7 243.1l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M209.9 243.1l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M210.6 243.1l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M210.6 243.8v.7l2 .6v-2l-2 .7z"/>
+    <path fill="#5a5231" d="M212.7 243.1l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M214.8 243.1l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M217.4 243.4l.4.2-.4-.2z"/>
+    <path fill="#dedede" d="M218.3 243.1l.7.7-.7-.7z"/>
+    <path fill="#424242" d="M236.6 243.1l.7.7-.7-.7z"/>
+    <path fill="#212118" d="M237.3 243.1l.7.7-.7-.7z"/>
+    <path fill="#392100" d="M238 243.1l2.8 2.7-2.8-2.7z"/>
+    <path fill="#001039" d="M238.7 243.1l.7.7-.7-.7z"/>
+    <path fill="#292921" d="M243 243.1l.6.7-.7-.7z"/>
+    <path fill="#001039" d="M244.3 243.1l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M247.2 243.1l.7.7-.7-.7z"/>
+    <path fill="#211810" d="M248.6 243.1l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M249.3 243.1l.7.7-.7-.7z"/>
+    <path fill="#313931" d="M259.1 243.1l.7.7-.7-.7z"/>
+    <path fill="#392100" d="M259.8 243.1l-.7 1.4.7-1.4z"/>
+    <path fill="#631808" d="M260.5 243.1l.7.7-.7-.7z"/>
+    <path fill="#211800" d="M270.1 243.4l.5.2-.5-.2z"/>
+    <path fill="#313931" d="M271 243.1l.8.7-.7-.7z"/>
+    <path fill="#63636b" d="M292.9 243.1l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M293.6 243.1l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M294.3 243.1l.7.7-.7-.7z"/>
+    <path fill="#295210" d="M295 243.1l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M295.7 243.1l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M297.8 243.1l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M298.5 243.1l1.4 1.4-1.4-1.4z"/>
+    <path fill="#8c8c8c" d="M299.2 243.1l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M305.6 243.1l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M308.4 243.1l1.4 1.4-1.4-1.4z"/>
+    <path fill="#184a00" d="M309 243.1l.8.7-.7-.7z"/>
+    <path fill="#214210" d="M311.2 243.1l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M312.6 243.1l.7.7-.7-.7m1.4 0l-4.2 2.7v.7l1.4.7 2.8-4z"/>
+    <path fill="#214210" d="M314.7 243.1l.7.7-.7-.7z"/>
+    <path fill="#5a6b52" d="M315.4 243.1l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M316.1 243.1l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M316.8 243.1l.7.7-.7-.7z"/>
+    <path fill="#294221" d="M318.2 243.1l-.7 1.4.7-1.4z"/>
+    <path fill="#bdbdbd" d="M196.5 243.8l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M197.2 243.8l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M200.7 243.8l.7.7-.7-.7m1.4 0l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M203.6 243.8l-.7 1.3.7-1.3z"/>
+    <path fill="#5a5231" d="M204.3 243.8l.6.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M205 243.8l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M209.9 243.8l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M212.7 243.8l1.4 1.3-1.4-1.3z"/>
+    <path fill="#52525a" d="M213.4 243.8l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M214.1 243.8l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M216.4 244.3l.3.4-.3-.4m1.2-.5v4.7h.7l-.7-4.7z"/>
+    <path fill="#8c8c8c" fill-opacity=".5" d="M236.6 243.8v18h.7l-.7-18z"/>
+    <path fill="#cecece" d="M237.3 243.8l.7.7-.7-.7z"/>
+    <path fill="#211810" d="M238 243.8l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M239.4 243.8l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M243 243.8l2 2-2-2z"/>
+    <path fill="#212118" d="M243.7 243.8l.7.7-.8-.7z"/>
+    <path fill="#00215a" d="M245 243.8l.8.7-.7-.7z"/>
+    <path fill="#001039" d="M247.9 243.8l.7.7-.7-.7z"/>
+    <path fill="#392100" d="M248.6 243.8l1.4 1.3-1.4-1.3z"/>
+    <path fill="#424242" d="M249.3 243.8l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M258.4 243.8l.7.7-.7-.7z"/>
+    <path fill="#310000" d="M259.8 243.8l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M268.3 243.8l.7.7-.7-.7z"/>
+    <path fill="#392100" d="M269 243.8l-2.1 2.7 2-2.7z"/>
+    <path fill="#212118" d="M269.7 243.8l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M270.4 243.8l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M271 243.8v18h.8l-.7-18m21 0l.8.7-.7-.7z"/>
+    <path fill="#296300" d="M292.9 243.8l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M295.7 243.8l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M296.4 243.8l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M298.5 243.8l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M300 243.8l.6.7-.7-.7z"/>
+    <path fill="#184a00" d="M305.6 243.8l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M306.3 243.8l-.7 1.3.7-1.3z"/>
+    <path fill="#185200" d="M308.4 243.8l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M314 243.8l-1.4 2 1.4-2z"/>
+    <path fill="#efefef" d="M314.7 243.8l-2.1 2.7 2.1-2.7z"/>
+    <path fill="#bdbdbd" d="M316.8 243.8l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M318.2 243.8l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M319 243.8l.6.7-.7-.7z"/>
+    <path fill="#63636b" d="M197.2 244.5l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M200.7 244.5l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M201.4 244.5l.7.6-.7-.6z"/>
+    <path fill="#63636b" d="M203.6 244.5l-.7 1.3.7-1.3z"/>
+    <path fill="#7b7373" d="M204.3 244.5l.6.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M205 244.5l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M205.7 244.5l.7.6-.7-.6m3.5 0l.7.6-.7-.6z"/>
+    <path fill="#214210" d="M209.9 244.5l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M238 244.5l1.4 1.3-1.4-1.3z"/>
+    <path fill="#313931" d="M238.7 244.5l.7.6-.7-.6z"/>
+    <path d="M240.1 244.5l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M240.8 244.5l.7.6-.7-.6z"/>
+    <path fill="#212118" d="M244.3 244.5l1.4 1.3-1.3-1.3z"/>
+    <path fill="#211800" d="M245 244.5l2.9 3.3-2.8-3.3z"/>
+    <path fill="#00216b" d="M245.8 244.5l.7.6-.7-.6z"/>
+    <path fill="#00184a" d="M247.9 244.5v2h.7l-.7-2z"/>
+    <path fill="#313931" d="M248.6 244.5l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M250 244.5l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M257.7 244.5l.7.6-.7-.6z"/>
+    <path fill="#211800" d="M258.7 245l.2.4-.2-.5z"/>
+    <path fill="#211810" d="M259.1 244.5l.7.6-.7-.6z"/>
+    <path fill="#b51010" d="M262 244.5l.6.6-.7-.6z"/>
+    <path fill="#9c9494" d="M264 244.5l-1.3 2 1.4-2z"/>
+    <path fill="#efefef" d="M266.9 244.5l-.7 1.3.7-1.3z"/>
+    <path fill="#292921" d="M267.6 244.5l.7.6-.7-.6z"/>
+    <path fill="#211810" d="M269 244.5l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M269.7 244.5l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M291.5 244.5l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M292.2 244.5l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M296.4 244.5l2.1 2-2-2z"/>
+    <path fill="#297b00" d="M297.1 244.5l.7.6-.7-.6m1.4 0l.7.6-.7-.6z"/>
+    <path fill="#314231" d="M299.2 244.5l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M300 244.5l.6.6-.7-.6m2.1 0l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M302.7 244.5l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M306.3 244.5l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M308.4 244.5l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M310.5 244.5l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M318.2 244.5l.7.6-.7-.6z"/>
+    <path fill="#63636b" d="M319 244.5l.6.6-.7-.6z"/>
+    <path fill="#dedede" d="M197.2 245.2l.7.6-.7-.7z"/>
+    <path fill="#294200" d="M198 245.2l.6.6-.7-.7z"/>
+    <path fill="#397b00" d="M200.5 245.4l.5.2-.5-.2z"/>
+    <path fill="#295200" d="M202.1 245.2l.7.6-.7-.7z"/>
+    <path fill="#6b735a" d="M204.3 245.2l.6.6-.7-.7z"/>
+    <path fill="#295200" d="M205 245.2l.7.6-.7-.7z"/>
+    <path fill="#396b10" d="M205.7 245.2l.7.6-.7-.7z"/>
+    <path fill="#7b7373" d="M206.4 245.2l.7.6-.7-.7z"/>
+    <path fill="#efefef" d="M207 245.2l.8.6-.7-.7z"/>
+    <path fill="#8c8c8c" d="M209.2 245.2l.7.6-.7-.7z"/>
+    <path fill="#295200" d="M211.3 245.2l.7.6-.7-.7z"/>
+    <path fill="#294200" d="M213.4 245.2v6h.7l-.7-6z"/>
+    <path fill="#397b00" d="M216 245.4l.4.2-.4-.2z"/>
+    <path fill="#52525a" d="M239.4 245.2l.7.6-.7-.7z"/>
+    <path fill="#211810" d="M240.8 245.2l.7.6-.7-.7z"/>
+    <path fill="#cecece" d="M241.5 245.2l.7.6-.7-.7z"/>
+    <path fill="#00216b" d="M246.5 245.2l.7.6-.7-.7z"/>
+    <path fill="#cecece" d="M248.6 245.2l.7.6-.7-.7z"/>
+    <path fill="#392121" d="M249.3 245.2l.7.6-.7-.7z"/>
+    <path fill="#211800" d="M250 245.2l.7.6-.7-.7z"/>
+    <path fill="#cecece" d="M250.7 245.2l.7.6-.7-.7z"/>
+    <path fill="#efefef" d="M257 245.2l.7.6-.7-.7z"/>
+    <path fill="#211810" d="M257.7 245.2l.7.6-.7-.7z"/>
+    <path fill="#ada5a5" d="M259.1 245.2l.7.6-.7-.7z"/>
+    <path fill="#b51010" d="M261.2 245.2l.7.6-.7-.7z"/>
+    <path fill="#313931" d="M266.9 245.2l.7.6-.7-.7m1.4 0l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M269 245.2l-.7 1.3.7-1.3z"/>
+    <path fill="#294221" d="M291.5 245.2l.7.6-.7-.7z"/>
+    <path fill="#297b00" d="M292.9 245.2l.7.6-.7-.7z"/>
+    <path fill="#185200" d="M293.6 245.2l.7.6-.7-.7z"/>
+    <path fill="#184a00" d="M294.3 245.2l.7.6-.7-.7z"/>
+    <path fill="#297b00" d="M297.8 245.2l.7.6-.7-.7z"/>
+    <path fill="#296300" d="M299.2 245.2l.7.6-.7-.7z"/>
+    <path fill="#103900" d="M300 245.2l.6.6-.7-.7z"/>
+    <path fill="#296300" d="M302.5 245.4l.5.2-.5-.2z"/>
+    <path fill="#184a00" d="M306.3 245.2l.7.6-.7-.7z"/>
+    <path fill="#297b00" d="M307.7 245.2l.7.6-.7-.7z"/>
+    <path fill="#185200" d="M308.4 245.2l.7.6-.7-.7z"/>
+    <path fill="#103900" d="M310.5 245.2l.7.6-.7-.7z"/>
+    <path fill="#9c9494" d="M315 245.6l.2.5-.3-.5z"/>
+    <path fill="#63636b" d="M198 245.8l.6.7-.7-.7z"/>
+    <path fill="#294200" d="M200.3 246.3l.2.4-.2-.4z"/>
+    <path fill="#8c8c8c" d="M202.1 245.8l.7.7-.7-.7m2.4.5l.2.4-.2-.4z"/>
+    <path fill="#397b00" d="M205.4 246l.5.3-.5-.3z"/>
+    <path fill="#428c00" d="M206.4 245.8l.7 6h.7l-1.4-6z"/>
+    <path fill="#315221" d="M207 245.8l.8.7-.7-.7z"/>
+    <path fill="#cecece" d="M207.8 245.8l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M208.5 245.8l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M240.1 245.8l.7.7-.7-.7z"/>
+    <path fill="#211800" d="M240.8 245.8l2.1 1.4v-.7l-2-.7z"/>
+    <path fill="#212118" d="M241.5 245.8l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M245 245.8l.8.7-.7-.7z"/>
+    <path fill="#002984" d="M247.2 245.8l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M249.3 245.8l.7.7-.7-.7z"/>
+    <path fill="#392100" d="M250 245.8l2 2-2-2z"/>
+    <path fill="#313931" d="M250.7 245.8l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M251.4 245.8l.7.7-.7-.7z"/>
+    <path fill="#424242" d="M257 245.8l.7.7-.7-.7z"/>
+    <path fill="#392100" d="M257.7 245.8l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M258.4 245.8l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M260.5 245.8l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M265.5 245.8l.7.7-.7-.7z"/>
+    <path fill="#211810" d="M266.2 245.8l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M267.6 245.8l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M290.8 245.8l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M291.5 245.8l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M292.2 245.8l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M292.9 245.8l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M293.6 245.8l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M294.3 245.8l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M295 245.8l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M297.1 245.8l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M300 245.8l.6.7-.7-.7z"/>
+    <path fill="#297b00" d="M302 245.8l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M302.7 245.8l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M306.3 245.8l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M307.7 245.8l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M310.5 245.8l.7.7-.7-.7z"/>
+    <path fill="#293129" d="M311.9 245.8l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M313.3 245.8l.7.7-.7-.7z"/>
+    <path fill="#292921" d="M314 245.8l.7.7-.7-.7z"/>
+    <path fill="#424242" d="M195.1 246.5l1.4 1.3-1.4-1.3z"/>
+    <path fill="#dedede" d="M195.8 246.5l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M198 246.5l.6.7-.7-.7z"/>
+    <path fill="#292100" d="M198.6 246.5l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M199.3 246.5l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M201.4 246.5l.7.7-.7-.7z"/>
+    <path fill="#428c00" d="M205 246.5c-.2 3.6-1 6.7 2.8 8.7l-2.8-8.7z"/>
+    <path fill="#294200" d="M205.9 247l.2.4-.2-.5z"/>
+    <path fill="#214210" d="M207.8 246.5l.7.7-.7-.7z"/>
+    <path fill="#424242" d="M208.5 246.5l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M240.8 246.5l.7.7-.7-.7m2.1 0l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M245.8 246.5l.7.7-.7-.7z"/>
+    <path fill="#181000" d="M247.2 246.5l1.4 1.3-1.4-1.3z"/>
+    <path fill="#001039" d="M247.9 246.5l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M250 246.5l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M251.4 246.5l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M256.3 246.5l.7.7-.7-.7z"/>
+    <path fill="#211800" d="M257 246.5l.7.7-.7-.7z"/>
+    <path d="M257.7 246.5l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M258.4 246.5l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M259.1 246.5l-.7 2 .7-2z"/>
+    <path fill="#5a1008" d="M259.8 246.5l.7.7-.7-.7z"/>
+    <path fill="#210800" d="M260.5 246.5l.7.7-.7-.7z"/>
+    <path fill="#392100" d="M261.2 246.5l-.7 1.3.7-1.3z"/>
+    <path fill="#63636b" d="M262 246.5l.6.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M264.8 246.5l.6.7-.6-.7z"/>
+    <path fill="#212118" d="M265.5 246.5l.7.7-.7-.7z"/>
+    <path fill="#211800" d="M266.2 246.5l-1.4 2 1.4-2z"/>
+    <path fill="#63636b" d="M266.9 246.5l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M290 246.5l.8.7-.7-.7z"/>
+    <path fill="#214210" d="M291.3 246.7l.4.2-.4-.2z"/>
+    <path fill="#9c9494" d="M292.2 246.5l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M295 246.5l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M295.7 246.5l.7.7-.7-.7m2.1 0l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M298.5 246.5l.7.7-.7-.7m1.4 0l1.4 1.3-1.4-1.3z"/>
+    <path fill="#297b00" d="M300.6 246.5l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M302.7 246.5l.7.7-.7-.7m3.6 0l1.4 1.3-1.4-1.3z"/>
+    <path fill="#103900" d="M307.7 246.5l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M309.8 246.5l1.4 1.3-1.4-1.3z"/>
+    <path fill="#214210" d="M311.2 246.5l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M311.9 246.5l-.7 1.3.7-1.3z"/>
+    <path fill="#9c9494" d="M312.6 246.5l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M313.3 246.5l.7.7-.7-.7z"/>
+    <path fill="#294221" d="M314 246.5l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M317.5 246.5l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M318.2 246.5l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M195.1 247.2l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M196.5 247.2l.7.6-.7-.6z"/>
+    <path fill="#5a1010" d="M198 247.2l.6.6-.7-.6z"/>
+    <path fill="#ce2110" d="M198.6 247.2l.7.6-.7-.6z"/>
+    <path fill="#bd2110" d="M199.3 247.2l.7.6-.7-.6z"/>
+    <path fill="#311000" d="M200 247.2l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M200.7 247.2l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M201.4 247.2l.7.6-.7-.6z"/>
+    <path fill="#5a6b52" d="M204.3 247.2l.6.6-.7-.6z"/>
+    <path fill="#295200" d="M208.5 247.2l-.7 1.3.7-1.3m2.8 0l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M241.5 247.2l.7.6-.7-.6z"/>
+    <path fill="#212118" d="M242.2 247.2l.7.6-.7-.6z"/>
+    <path fill="#392100" d="M243 247.2l2.7 2.6-2.8-2.6z"/>
+    <path fill="#63636b" d="M243.7 247.2l.7.6-.8-.6z"/>
+    <path fill="#bdbdbd" d="M246 247.6l.2.5-.2-.5z"/>
+    <path fill="#520808" d="M246.5 247.2l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M248.6 247.2l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M250 247.2l.7.6-.7-.6z"/>
+    <path fill="#392121" d="M250.7 247.2l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M252 247.2l.8.6-.7-.6z"/>
+    <path fill="#9c7b08" d="M254.9 247.2l.7.6-.7-.6z"/>
+    <path fill="#424242" d="M255.6 247.2l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M256.3 247.2l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M257 247.2l.7.6-.7-.6z"/>
+    <path d="M259.8 247.2l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M262.2 247.6l.2.5-.2-.5z"/>
+    <path fill="#9c9494" d="M264 247.2l.8.6-.8-.6m2.2 0l.7.6-.7-.6z"/>
+    <path fill="#63636b" d="M290 247.2l.8.6-.7-.6z"/>
+    <path fill="#425242" d="M290.8 247.2l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M291.5 247.2l.7.6-.7-.6z"/>
+    <path fill="#5a6b52" d="M295.7 247.2l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M296.4 247.2l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M298.5 247.2l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M298.5 248.5l2.1-.7-2 .7z"/>
+    <path fill="#103900" d="M302.7 247.2l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M306.3 247.2v2h.7l-.7-2m1.4 0l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M309.8 247.2l-.7 2 .7-2z"/>
+    <path fill="#8c8c8c" d="M311.9 247.2l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M312.6 247.2l-.7 1.3.7-1.3z"/>
+    <path fill="#296300" d="M313.3 247.2l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M314 247.2l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M316.1 247.2l.7.6-.7-.6z"/>
+    <path fill="#424242" d="M316.8 247.2l.7.6-.7-.6z"/>
+    <path fill="#313931" d="M317.5 247.2l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M318.2 247.2l-1.4 2 1.4-2z"/>
+    <path fill="#295200" d="M195.1 247.8l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M195.8 247.8l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M196.5 247.8l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M197.2 247.8l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M198 247.8l.6.7-.7-.7z"/>
+    <path fill="#941808" d="M200 247.8l.7.7-.7-.7z"/>
+    <path fill="#313931" d="M200.7 247.8l.7.7-.7-.7z"/>
+    <path fill="#526b42" d="M204.3 247.8l.6.7-.7-.7z"/>
+    <path fill="#397b00" d="M206.1 248l.5.3-.5-.3m2.4-.2l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M210.6 247.8l.7.7-.7-.7z"/>
+    <path fill="#524242" d="M242.2 247.8l.7.7-.7-.7z"/>
+    <path fill="#210800" d="M243 247.8l.6.7-.7-.7z"/>
+    <path fill="#424242" d="M244.3 247.8l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M245 247.8l.8.7-.7-.7z"/>
+    <path fill="#ad1810" d="M246.7 248.3l.2.4-.2-.4z"/>
+    <path fill="#5a1008" d="M247.2 247.8l1.4 1.4-1.4-1.4z"/>
+    <path fill="#392100" d="M247.9 247.8l1.4 1.4-1.4-1.4z"/>
+    <path fill="#211810" d="M248.6 247.8l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M249.3 247.8l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M250.7 247.8l-.7 1.4.7-1.4z"/>
+    <path fill="#211800" d="M251.4 247.8l.7.7-.7-.7z"/>
+    <path fill="#212118" d="M252 247.8l.8.7-.7-.7z"/>
+    <path fill="#6b5a10" d="M254.2 247.8l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M254.9 247.8l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M256.3 247.8l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M257 247.8l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M257.7 247.8l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M259.1 247.8l.7.7-.7-.7z"/>
+    <path fill="#313931" d="M259.8 247.8l.7.7-.7-.7z"/>
+    <path fill="#de2110" d="M261.5 248.3l.2.4-.2-.4z"/>
+    <path fill="#63636b" d="M263.4 247.8l.7.7-.8-.7z"/>
+    <path fill="#392100" d="M264 247.8l-2 2.7 2-2.7z"/>
+    <path fill="#524242" d="M265.5 247.8l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M290 247.8l.8.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M293.6 247.8l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M294.3 247.8l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M295.7 247.8l-.7 1.4.7-1.4z"/>
+    <path fill="#214210" d="M296.4 247.8l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M299.2 247.8l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M300 247.8l.6.7-.7-.7z"/>
+    <path fill="#103900" d="M300.6 247.8l-.7 2 .7-2z"/>
+    <path fill="#184a00" d="M302.7 247.8l.7.7-.7-.7z"/>
+    <path fill="#082108" d="M307 247.8l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M309 247.8l.8.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M310.7 248.3l.2.4-.2-.4z"/>
+    <path fill="#63636b" d="M311.2 247.8l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M312.6 247.8l-5 7.4 5-7.4z"/>
+    <path fill="#294221" d="M313.3 247.8l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M314.7 247.8l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M315.4 247.8l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M316.1 247.8l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M316.8 247.8l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M195.1 248.5v1.3l1.4-1.3h-1.4z"/>
+    <path fill="#428c00" d="M196.5 248.5l1.4 2.7-2-1.4c.6 2.7 1.3 4.4 4.1 5.4v.7l-2.8-.7 1.4 2-2-.7 6.2 6 .7-2.6 2.2 1.3-4.3-4v-.7l2.1.7a12.3 12.3 0 00-7-8.7z"/>
+    <path fill="#294200" d="M197.2 248.5l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M198 248.5l.6.7-.7-.7z"/>
+    <path fill="#ce2110" d="M198.6 248.5l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M200 248.5l1.4 1.3-1.4-1.3z"/>
+    <path fill="#7b7373" d="M200.7 248.5l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M201.4 248.5l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M204.3 248.5l.6.7-.7-.7z"/>
+    <path fill="#295200" d="M206.4 248.5l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M207.8 248.5v6h.7l-.7-6m3 .5l.3.4-.3-.5z"/>
+    <path fill="#295200" d="M215.5 248.5l.7.7-.7-.7z"/>
+    <path fill="#527b31" d="M217.6 248.5l.7.7-.7-.7z"/>
+    <path fill="#734a42" fill-opacity=".6" d="M242.2 248.5v14.7h.7l-.7-14.7z"/>
+    <path fill="#ce2110" d="M243 248.5l1.3 1.3-1.4-1.3z"/>
+    <path fill="#311000" d="M243.7 248.5l.7.7-.8-.7z"/>
+    <path fill="#313931" d="M245 248.5l.8.7-.7-.7z"/>
+    <path fill="#9c9494" d="M245.8 248.5l.7.7-.7-.7z"/>
+    <path fill="#de2110" d="M247.2 248.5v1.3h1.4l-1.4-1.3z"/>
+    <path fill="#313931" d="M249.3 248.5l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M250.7 248.5l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M251.4 248.5l.7.7-.7-.7z"/>
+    <path fill="#392121" d="M252 248.5l.8.7-.7-.7z"/>
+    <path fill="#423100" d="M252.8 248.5l.7.7-.7-.7z"/>
+    <path fill="#5a5231" d="M253.5 248.5l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M254.2 248.5l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M254.9 248.5l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M255.6 248.5l-.7 1.3.7-1.3z"/>
+    <path fill="#9c9494" d="M256.3 248.5l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M259.8 248.5l-2.8 1.3v.7l3.5-1.3-.7-.7z"/>
+    <path fill="#ada5a5" d="M262 248.5l.6.7-.7-.7z"/>
+    <path fill="#424242" d="M262.6 248.5l.7.7-.7-.7z"/>
+    <path fill="#210800" d="M264 248.5l.8.7-.8-.7z"/>
+    <path fill="#b51010" d="M264.8 248.5l.6.7-.6-.7z"/>
+    <path fill="#734a42" d="M265.5 248.5l-.7 15.4h.7a26.7 26.7 0 000-15.4z"/>
+    <path d="M294.3 248.5l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M296.4 248.5l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M297.1 248.5l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M299.2 248.5l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M300 248.5l.6.7-.7-.7z"/>
+    <path fill="#296300" d="M303.2 248.7l.5.2-.5-.2z"/>
+    <path fill="#103900" d="M307 248.5l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M309.8 248.5l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M311.2 248.5l.7.7-.7-.7m1.4 0l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M313.3 248.5l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M314 248.5l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M314.7 248.5l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M315.4 248.5l-1.4.7v.6l1.4-1.3z"/>
+    <path fill="#52525a" d="M316.1 248.5l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M195.8 249.2l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M196.5 249.2l.7.6-.7-.6z"/>
+    <path fill="#293100" d="M198.6 249.2l.7.6-.7-.6z"/>
+    <path fill="#311000" d="M199.3 249.2l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M200 249.2l.7.6-.7-.6z"/>
+    <path fill="#941808" d="M201.4 249.2l.7.6-.7-.6z"/>
+    <path fill="#5a2121" d="M202.1 249.2l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M202.8 249.2l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M203.6 249.2l.7.6-.8-.6z"/>
+    <path fill="#295200" d="M204.3 249.2l.6.6-.7-.6z"/>
+    <path fill="#397b00" d="M215.3 249.4l.4.2-.4-.2z"/>
+    <path fill="#526b42" d="M217.6 249.2l.7.6-.7-.6z"/>
+    <path fill="#de2110" d="M243 249.2v14l7.7 1.4c-1.7-5-2.7-12.8-7.8-15.4z"/>
+    <path fill="#5a1008" d="M244.3 249.2l.7.6-.7-.6z"/>
+    <path fill="#100808" d="M245.8 249.2l.7.6-.7-.6z"/>
+    <path fill="#941808" d="M246.5 249.2l.7.6-.7-.6z"/>
+    <path fill="#310000" d="M248.6 249.2l.7.6-.7-.6z"/>
+    <path fill="#524242" d="M249.3 249.2l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M250.2 249.6l.2.5-.2-.5z"/>
+    <path fill="#efefef" d="M252.8 249.2l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M253.7 249.6l.3.5-.3-.5z"/>
+    <path fill="#bdbdbd" d="M254.2 249.2l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M257 249.2l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M259.8 249.2l.7.6-.7-.6z"/>
+    <path fill="#100808" d="M260.5 249.2l.7.6-.7-.6z"/>
+    <path fill="#bd2110" d="M261.2 249.2l.7.6-.7-.6z"/>
+    <path fill="#101810" d="M262 249.2l.6.6-.7-.6z"/>
+    <path fill="#311000" d="M263.4 249.2l.7.6-.8-.6z"/>
+    <path fill="#ce2110" d="M264 249.2l-.6 1.3.7-1.3z"/>
+    <path fill="#de2110" d="M264.8 249.2l-2.9 2 2.9 8.7-5 1.3.7 2.7 5-.7-.8-14z"/>
+    <path fill="#214210" d="M294.3 249.2l.7.6-.7-.6z"/>
+    <path fill="#425242" d="M295 249.2l.7.6-.7-.6z"/>
+    <path fill="#395231" d="M297.1 249.2l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M300.6 249.2l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M301.3 249.2l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M303.4 249.2v2h.8l-.8-2z"/>
+    <path fill="#185200" d="M306.3 249.2l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M307 249.2l.7.6-.7-.6z"/>
+    <path fill="#292921" d="M309 249.2l.8.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M309.8 249.2l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M310.5 249.2l.7.6-.7-.6z"/>
+    <path fill="#102110" d="M312.6 249.2l.7.6-.7-.6z"/>
+    <path fill="#314231" d="M313.3 249.2l.7.6-.7-.6z"/>
+    <path fill="#63636b" d="M314.7 249.8v.7h2.1l-2.1-.7z"/>
+    <path fill="#426331" d="M195.1 249.8l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M196.5 249.8l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M197.2 249.8l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M199.3 249.8l2.1 2-2-2z"/>
+    <path fill="#211800" d="M200 249.8l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M202.4 250.3l.2.4-.2-.4z"/>
+    <path fill="#7b7373" d="M203 250.3l.3.4-.2-.4z"/>
+    <path fill="#bdbdbd" d="M203.6 249.8l.7.7-.8-.7z"/>
+    <path fill="#397b00" d="M204.3 249.8l.6.7-.7-.7z"/>
+    <path fill="#295200" d="M210.6 249.8l.7.7-.7-.7z"/>
+    <path fill="#6b735a" d="M217.6 249.8l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M245 249.8l.8.7-.7-.7z"/>
+    <path fill="#211800" d="M245.8 249.8l1.4 1.4v-1.4h-1.4z"/>
+    <path fill="#631808" d="M247.2 249.8l.7.7-.7-.7z"/>
+    <path fill="#5a2121" d="M247.9 249.8l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M248.8 250.3l.2.4-.2-.4z"/>
+    <path fill="#8c8c8c" d="M250.7 249.8v.7h2l-2-.7z"/>
+    <path fill="#bdbdbd" d="M252.8 249.8l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M255.6 249.8l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M256.3 249.8l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M257.7 249.8l.7.7-.7-.7z"/>
+    <path fill="#313931" d="M260.5 249.8l.7.7-.7-.7z"/>
+    <path fill="#211800" d="M261.2 249.8l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M262.6 249.8l.7.7-.7-.7z"/>
+    <path fill="#4a6342" d="M294.3 249.8l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M295 249.8l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M295.7 249.8l.7.7-.7-.7m1.6.5l.3.4-.3-.4z"/>
+    <path fill="#185200" d="M297.8 249.8l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M300 249.8l.6.7-.7-.7z"/>
+    <path fill="#082108" d="M300.6 249.8l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M301.3 249.8l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M306.5 250.3l.2.4-.2-.4z"/>
+    <path fill="#296300" d="M308.4 249.8l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M309 249.8l.8.7-.7-.7z"/>
+    <path fill="#314231" d="M309.8 249.8l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M311.9 249.8l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M312.6 249.8l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M313.3 249.8l-.7 1.4.7-1.4z"/>
+    <path fill="#296300" d="M314 249.8l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M315.4 249.8l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M316.8 249.8l.7.7-.7-.7z"/>
+    <path fill="#6b735a" d="M195.1 250.5l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M197.2 250.5l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M200.7 250.5l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M203.6 250.5l.7.7-.8-.7z"/>
+    <path fill="#397b00" d="M210.3 250.7l.5.3-.5-.3z"/>
+    <path fill="#8c8c8c" d="M217.6 250.5l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M245.8 250.5l.7.7-.7-.7z"/>
+    <path d="M247.2 250.5l3.5 13.4c4.3-1.5 10.9-2 13.4-6l-12.7 4-4.2-11.4z"/>
+    <path fill="#ada5a5" d="M247.9 250.5l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M249.3 250.5l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M250 250.5l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M253.5 250.5l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M254.2 250.5l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M256.3 250.5l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M258.7 251l.2.4-.2-.5z"/>
+    <path fill="#9c9494" d="M259.1 250.5l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M260.3 250.7l.5.3-.5-.3z"/>
+    <path d="M261.2 250.5l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M262 250.5l.6.7-.7-.7z"/>
+    <path fill="#6b735a" d="M294.3 250.5l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M295 250.5l5.6 21.4h-.7v-1.3h-.7l.7 6h-.7v-1.3h-.7v5.3h-.7c0-6.8-2.7-12.9-6.3-18.7l-1.4 1.3v.7c5.1 4.9 6.7 15.4 7 22h-1.4l-2.8-14h-.7l2 18.8h-.6l-2.8-14h-.7l2 21.3h-.6l-1.4-17.4h-.7l1.4 17.4h-.7l-.7-9.3h-.7l.7 11.4h-.7l-.7-9.4h-.7l-2.1 12.7 7.7-.7v-.6l-5-.7v-.7l18.4 4.7v-.7l-8.5-2.7v-.6l12.7 2.7c-4-4.9-9-4-14.8-3.4v-.7l16.2.7v-.7l-11.3-2.6v-.7l11.3.7v-.7c-8-1.8-12-.8-18.3 4.7l1.4-6.7h-.7l-.7 2h-.7l3.5-10h.7l-.7 7.3 16.2-6v-.7l-14.8 4a42.2 42.2 0 0121.1-8.7v-.6c-8.4 0-13 1.9-19.7 6.7 5.3-6.6 13.5-7.3 21.1-10v-.8c-9.5.8-14 3-21.8 8 4.8-4.5 13-12.4 20.4-10.6l-1.4-3.4c-6.5 1.5-12.1 5-16.9 9.4 3.3-4.4 14.8-16.5 20.4-16-5.7-5-16.6 10.1-20.4 13.3l15.5-16.7-13.4 11.4 14.8-18.8v-.7c-7 2.5-9 10.8-14 15.4l10.5-16.7a26.8 26.8 0 00-9.9 14.7c-3.2.4-2 5.5-2 8h-.8c0-8-1-18-6.3-24.7z"/>
+    <path fill="#314231" d="M295.7 250.5l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M296.4 250.5l.7.7-.7-.7z"/>
+    <path fill="#6b735a" d="M297.8 250.5l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M300.6 250.5l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M301.3 250.5l.7.7-.7-.7m7 0l.8.7-.7-.7z"/>
+    <path fill="#63636b" d="M309 250.5l.8.7-.7-.7z"/>
+    <path fill="#297b00" d="M309.8 250.5l.7.7-.7-.7m1.4 0l1.4 1.3-1.4-1.3z"/>
+    <path fill="#103900" d="M311.9 250.5l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M313.3 250.5L309 254v.6l4.2-4z"/>
+    <path fill="#8c8c8c" d="M314 250.5l-.7 1.3.7-1.3z"/>
+    <path fill="#ada5a5" d="M314.7 250.5l.7.7-.7-.7z"/>
+    <path fill="#102110" d="M315.4 250.5l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M316.1 250.5l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M195.1 251.2l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M195.8 251.2l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M198 251.2l2 2-2-2z"/>
+    <path fill="#5a1008" d="M201.4 251.2l.7.7-.7-.7z"/>
+    <path fill="#733939" d="M202.1 251.2l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M202.8 251.2l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M203.6 251.2l.7.7-.8-.7z"/>
+    <path fill="#295200" d="M206.4 251.2l1.4 1.3-1.4-1.3z"/>
+    <path fill="#294200" d="M209.9 251.2l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M213.4 251.2l.7.7-.7-.7m3.5 0l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M217.6 251.2l.7.7-.7-.7z"/>
+    <path fill="#100808" d="M246.5 251.2l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M247.9 251.2l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M250.7 251.2l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M251.4 251.2v.7h2.1l-2.1-.7z"/>
+    <path fill="#efefef" d="M253.5 251.2l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M256.3 251.2l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M257.5 251.4l.5.2-.5-.2z"/>
+    <path fill="#dedede" d="M259.1 251.2l.7.7-.7-.7m1.4 0l.7.7-.7-.7z"/>
+    <path fill="#210800" d="M261.2 251.2l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M292.9 251.2l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M293.6 251.2l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M294.3 251.2l-.7 1.3.7-1.3z"/>
+    <path fill="#185200" d="M295.7 251.2l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M296.4 251.2l.7.7-.7-.7z"/>
+    <path fill="#292921" d="M297.1 251.2l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M297.8 251.2l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M298.5 251.2l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M300.6 251.2l.7.7-.7-.7z"/>
+    <path fill="#082108" d="M301.3 251.2l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M303.4 251.2l1.5 1.3-1.5-1.3z"/>
+    <path fill="#297b00" d="M304.1 251.2l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M306 251.4l.5.2-.5-.2z"/>
+    <path fill="#102110" d="M308.4 251.2l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M309 251.2l.8.7-.7-.7z"/>
+    <path fill="#184a00" d="M311.2 251.2l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M314 251.2l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M314.7 251.2l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M315.4 251.2l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M195.1 251.8l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M195.8 251.8l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M201.4 251.8l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M202.1 251.8l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M203.6 251.8l.7.7-.8-.7z"/>
+    <path fill="#397b00" d="M204.3 251.8l.6.7-.7-.7m2.2 0l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M209.9 251.8l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M212.7 251.8l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M214.6 252l.4.3-.4-.2z"/>
+    <path fill="#315221" d="M217 251.8l.6.7-.7-.7z"/>
+    <path fill="#420000" d="M246.5 251.8l.7.7-.7-.7z"/>
+    <path fill="#101810" d="M247.9 251.8l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M249.3 251.8l-.7 1.4.7-1.3z"/>
+    <path fill="#7b7373" d="M250 251.8l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M250.7 251.8l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M256 252l.5.3-.4-.2z"/>
+    <path fill="#efefef" d="M257 251.8l1.4 4h.7l-2-4m2 0l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M260 252.3l.3.4-.2-.4z"/>
+    <path fill="#ada5a5" d="M260.5 251.8l.7.7-.7-.7z"/>
+    <path fill="#313931" d="M261.2 251.8l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M262 251.8l.6.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M292.9 251.8l.7.7-.7-.7m1.4 0l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M295 251.8l.7.7-.7-.7z"/>
+    <path fill="#5a6b52" d="M296.4 251.8l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M297.1 251.8l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M297.8 251.8l.7.7-.7-.7z"/>
+    <path fill="#6b735a" d="M298.5 251.8l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M299.2 251.8l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M301.3 251.8l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M303.4 251.8l.8.7-.8-.7z"/>
+    <path fill="#184a00" d="M305.6 251.8l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M307.7 251.8l1.4 1.4-1.4-1.3z"/>
+    <path fill="#103900" d="M308.4 251.8l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M310.5 251.8l.7.7-.7-.7z"/>
+    <path fill="#313931" d="M312.6 251.8l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M313.3 251.8l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M314 251.8l.7.7-.7-.7z"/>
+    <path fill="#103910" d="M314.7 251.8l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M315.4 251.8l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M195.8 252.5l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M202.1 252.5l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M203.6 252.5l-.7 1.4.7-1.4z"/>
+    <path fill="#396b10" d="M204.3 252.5l.6.7-.7-.7z"/>
+    <path fill="#397b00" d="M209.9 252.5l.7.7-.7-.7m1.4 1.4l2.1-.7-2.1.7z"/>
+    <path fill="#103900" d="M214.1 252.5l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M217 252.5l.6.7-.7-.7z"/>
+    <path fill="#941808" d="M246.5 252.5l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M249.3 252.5l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M251.4 252.5l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M252 252.5l.8.7-.7-.7m2.1 0l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M254.9 252.5l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M257.7 252.5l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M258.9 252.7l.5.3-.5-.3z"/>
+    <path fill="#efefef" d="M260.5 252.5l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M261.2 252.5l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M262 252.5l.6.7-.7-.7z"/>
+    <path fill="#dedede" d="M292.9 252.5l.7.7-.7-.7z"/>
+    <path fill="#101810" d="M293.6 252.5l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M294.3 252.5l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M295 252.5l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M296.4 252.5l.7.7-.7-.7z"/>
+    <path fill="#082108" d="M297.1 252.5l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M297.8 252.5l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M298.5 252.5l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M299.2 252.5l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M301.8 252.7l.5.3-.5-.3z"/>
+    <path fill="#103900" d="M304.1 252.5l.7.7-.7-.7m1.4 0l.8.7-.7-.7m2 0l.8.7-.7-.7m2.8 0l.7.7-.7-.7z"/>
+    <path d="M311.9 252.5l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M312.6 252.5l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M314 252.5l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M314.7 252.5l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M195.1 253.2l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M195.8 253.2l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M196.5 253.2l.7.7-.7-.7z"/>
+    <path fill="#292100" d="M200 253.2l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M202.1 253.2l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M204.3 253.2l.6.7-.7-.7z"/>
+    <path fill="#397b00" d="M205 253.2l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M212 253.2l.7.7-.7-.7z"/>
+    <path fill="#428c00" d="M212.7 253.2l-.7 1.3.7-1.3z"/>
+    <path fill="#295200" d="M213.4 253.2l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M214.1 253.2l.7.7-.7-.7z"/>
+    <path fill="#213918" d="M216.2 253.2l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M217 253.2l.6.7-.7-.7z"/>
+    <path fill="#ce2110" d="M246.5 253.2l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M248.6 253.2l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M250 253.2l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M251.2 253.4l.4.2-.4-.2z"/>
+    <path fill="#cecece" d="M252 253.2l2.2 2-2.1-2z"/>
+    <path fill="#8c8c8c" d="M254.9 253.2l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M255.6 253.2l1.4 2-1.4-2z"/>
+    <path fill="#8c8c8c" d="M256.8 253.4l.4.2-.4-.2z"/>
+    <path fill="#dedede" d="M260.5 253.2l1.4 1.3-1.4-1.3z"/>
+    <path fill="#bdbdbd" d="M261.2 253.2l.7.7-.7-.7z"/>
+    <path fill="#210800" d="M262 253.2l.6.7-.7-.7z"/>
+    <path fill="#103910" d="M293.6 253.2l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M294.3 253.2l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M295 253.2l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M296.4 253.2l.7.7-.7-.7z"/>
+    <path fill="#001000" d="M297.1 253.2l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M297.8 253.2l.7.7-.7-.7z"/>
+    <path fill="#103910" d="M298.5 253.2l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M299.2 253.2l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M302 253.2l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M304.1 253.2l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M305.6 253.2l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M307 253.2l1.4 1.3-1.4-1.3z"/>
+    <path fill="#184a00" d="M307.7 253.2l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M309.8 253.2l.7.7-.7-.7z"/>
+    <path fill="#001000" d="M311.2 253.2l-.7 1.3.7-1.3z"/>
+    <path fill="#297b00" d="M311.9 253.2l.7.7-.7-.7m1.4 0l-.7 1.3.7-1.3z"/>
+    <path fill="#8c8c8c" d="M314 253.2l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M314.7 253.2l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M315.4 253.2l.7.7-.7-.7z"/>
+    <path fill="#6b735a" d="M316.1 253.2l.7.7-.7-.7z"/>
+    <path fill="#8c9c84" d="M316.8 253.2l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M317.5 253.2l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M318.2 253.2l.7.7-.7-.7z"/>
+    <path fill="#313931" d="M195.1 253.8l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M195.8 253.8l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M196.5 253.8l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M200 253.8l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M200.7 253.8l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M202.8 253.8l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M205 253.8l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M211.3 253.8l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M212.7 253.8l-.7 1.4.7-1.3z"/>
+    <path fill="#294200" d="M213.4 253.8l.7.7-.7-.7m2.1 0l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M216.2 253.8l.7.7-.7-.7z"/>
+    <path fill="#420000" d="M247.2 253.8l.7.7-.7-.7z"/>
+    <path fill="#101810" d="M248.6 253.8l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M249.3 253.8l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M250 253.8l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M253.5 253.8l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M254.2 253.8l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M254.9 253.8l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M256.3 253.8l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M258.4 253.8v.7h2.1l-2-.7z"/>
+    <path fill="#ada5a5" d="M260.5 253.8l.7.7-.7-.7z"/>
+    <path fill="#313931" d="M262 253.8l.6.7-.7-.7z"/>
+    <path fill="#bd2110" d="M262.6 253.8l.7.7-.7-.7z"/>
+    <path fill="#4a6342" d="M293.6 253.8l.7.7-.7-.7z"/>
+    <path fill="#294221" d="M294.3 253.8l.7.7-.7-.7z"/>
+    <path fill="#4a6342" d="M295 253.8l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M297.1 253.8l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M297.1 255.2l2.1-.7-2 .7z"/>
+    <path fill="#313931" d="M299.2 253.8l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M300 253.8l.6.7-.7-.7z"/>
+    <path fill="#185200" d="M302 253.8l1.4 1.4-1.4-1.3z"/>
+    <path fill="#297b00" d="M302.7 253.8l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M307 253.8l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M311.2 253.8l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M313.3 253.8l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M314 253.8l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M314.7 253.8l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M315.4 253.8l.7.7-.7-.7m2.1 0l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M318.2 253.8l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M319 253.8l.6.7-.7-.7z"/>
+    <path fill="#425242" d="M319.6 253.8l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M320.6 254.3l.2.5-.2-.5z"/>
+    <path fill="#8c8c8c" d="M195.1 254.5l.7.7-.7-.7z"/>
+    <path fill="#428c00" d="M195.8 254.5l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M196.5 254.5l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M197.2 254.5l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M198 254.5l.6.7-.7-.7z"/>
+    <path fill="#295200" d="M200.7 254.5l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M201.7 255l.2.4-.2-.4z"/>
+    <path fill="#315221" d="M202.8 254.5l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M205 254.5l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M205.7 254.5l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M207.8 254.5l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M210.6 254.5l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M212.7 254.5l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M214.8 254.5l-.7 1.4.7-1.4z"/>
+    <path fill="#9c9494" d="M215.5 254.5l-.7 1.4.7-1.4z"/>
+    <path fill="#941808" d="M247.2 254.5l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M249.3 254.5l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M250.7 254.5l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M251.9 254.8l.4.2-.4-.3z"/>
+    <path fill="#ada5a5" d="M252.8 254.5l.7.7-.7-.7m2.6.2l.4.3-.4-.3z"/>
+    <path fill="#8c8c8c" d="M257 254.5l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M257.7 254.5l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M262 254.5l-2.9.7v.7l3.5-.7-.7-.7z"/>
+    <path fill="#7b1008" d="M262.6 254.5l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M293.6 254.5l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M294.3 254.5l.7.7-.7-.7z"/>
+    <path fill="#001000" d="M295 254.5l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M297.8 254.5l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M298.5 254.5l2.8 11.4h.7c0-4.1-.5-8.2-3.5-11.4z"/>
+    <path fill="#184a00" d="M299.2 254.5l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M300 254.5l.6.7-.7-.7z"/>
+    <path fill="#297b00" d="M302 254.5l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M304.9 254.5l.7.7-.8-.7z"/>
+    <path fill="#184a00" d="M307 254.5l.7.7-.7-.7m2 0l.8.7-.7-.7z"/>
+    <path fill="#103900" d="M309.8 254.5l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M310.5 254.5l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M312.6 254.5l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M313.3 254.5l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M314 254.5l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M316.1 254.5l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M316.8 254.5l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M317.5 254.5l.7.7-.7-.7z"/>
+    <path fill="#295210" d="M318.2 254.5l.7.7-.7-.7z"/>
+    <path fill="#4a6342" d="M319 254.5l.6.7-.7-.7z"/>
+    <path fill="#5a6b52" d="M319.6 254.5l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M195.1 255.2l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M195.8 255.2l2.1 1.3-2-1.3m2 0l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M198.6 255.2l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M199.3 255.2l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M202.8 255.2l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M203.6 255.2l.7.7-.8-.7z"/>
+    <path fill="#8c8c8c" d="M205.7 255.2l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M206.4 255.2v.7h2l-2-.7z"/>
+    <path fill="#103900" d="M209.9 255.2l.7.7-.7-.7m2 0l.8.7-.7-.7z"/>
+    <path fill="#00215a" d="M227.5 255.2l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M247.2 255.2l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M249.3 255.2l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M250 255.2l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M250.7 255.2l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M251.6 255.6l.3.5-.3-.5z"/>
+    <path fill="#bdbdbd" d="M254.4 255.6l.3.5-.3-.5z"/>
+    <path fill="#dedede" d="M255.1 255.6l.3.5-.3-.5z"/>
+    <path fill="#7b7373" d="M255.8 255.6l.3.5-.3-.5z"/>
+    <path fill="#bdbdbd" d="M256.3 255.2l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M257 255.2l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M262 255.2l.6.7-.7-.7z"/>
+    <path fill="#210800" d="M262.6 255.2l.7.7-.7-.7z"/>
+    <path fill="#520808" d="M280.2 255.2l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M281 255.2v.7h6.3l-6.4-.7z"/>
+    <path fill="#520808" d="M287.3 255.2l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M291.5 255.2l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M293.6 255.2l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M294.3 255.2l.7.7-.7-.7z"/>
+    <path fill="#082108" d="M295 255.2l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M297.8 255.2l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M299.2 255.2l.7.7-.7-.7z"/>
+    <path fill="#001000" d="M300 255.2l.6.7-.7-.7z"/>
+    <path fill="#297b00" d="M300.6 255.2l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M303 255.6l.2.5-.2-.5z"/>
+    <path fill="#103900" d="M306.3 255.2l.7.7-.7-.7m2 0l1.5 1.3-1.4-1.3z"/>
+    <path fill="#185200" d="M309 255.2l.8.7-.7-.7z"/>
+    <path fill="#296300" d="M309.8 255.2l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M311.9 255.2l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M312.6 255.2l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M313.3 255.2l-.7 1.3.7-1.3z"/>
+    <path fill="#297b00" d="M314 255.2l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M315.4 255.2l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M316.1 255.2l-.7 1.3.7-1.3z"/>
+    <path fill="#5a5231" d="M195.8 255.9l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M200.5 256l.5.3-.5-.2z"/>
+    <path fill="#8c8c8c" d="M203.6 255.9l.7.6-.8-.6z"/>
+    <path fill="#314231" d="M206.4 255.9l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M207 255.9l.8.6-.7-.6z"/>
+    <path fill="#295200" d="M209.2 255.9l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M209.9 255.9l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M211.3 255.9l.7.6-.7-.6z"/>
+    <path fill="#214210" d="M213.4 255.9l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M214.1 255.9l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M220.4 255.9l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" fill-opacity=".3" d="M221.1 255.9v.6h6.4v10c3.8-6 .2-10.6-6.4-10.6z"/>
+    <path fill="#8c8c8c" d="M227.5 255.9l.7.6-.7-.6z"/>
+    <path fill="#420000" d="M247.9 255.9l.7.6-.7-.6z"/>
+    <path fill="#101810" d="M249.3 255.9l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M250.7 256.5v.7l3.5-.7h-3.5m7-.6l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M258.4 255.9l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M259.1 255.9l.7.6-.7-.6z"/>
+    <path fill="#292921" d="M262.6 255.9l.7.6-.7-.6z"/>
+    <path fill="#bd2110" d="M263.4 255.9l.7.6-.8-.6z"/>
+    <path fill="#63636b" d="M280.2 255.9l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M281 255.9v.6h6.3l-6.4-.6z"/>
+    <path fill="#63636b" d="M287.3 255.9l.7.6-.7-.6z"/>
+    <path fill="#292921" d="M291.5 255.9l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M292.2 255.9l.7.6-.7-.6m1.6.4l.3.5-.3-.5z"/>
+    <path fill="#296300" d="M294.3 257.2l2.1-.7-2.1.7z"/>
+    <path fill="#185200" d="M297.8 255.9l1.4 1.3-1.4-1.3z"/>
+    <path fill="#297b00" d="M298.5 255.9l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M300 255.9l.6.6-.7-.6z"/>
+    <path fill="#185200" d="M300.6 255.9l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M306.3 255.9l.7.6-.7-.6z"/>
+    <path fill="#319400" d="M307 255.9l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M307.7 255.9l.7.6-.7-.6z"/>
+    <path fill="#214210" d="M311.9 255.9l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M313.3 255.9l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M314.7 255.9l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M195.8 256.5l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M197.2 256.5l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M198 256.5l.6.7-.7-.7m4 .2l.5.3-.5-.2z"/>
+    <path fill="#5a6b52" d="M203.6 256.5l.7.7-.8-.7z"/>
+    <path fill="#9c9494" d="M206.4 256.5l.7.7-.7-.7z"/>
+    <path fill="#292100" d="M207 256.5l.8.7-.7-.7z"/>
+    <path fill="#294200" d="M209.2 256.5l.7.7-.7-.7m1.4 0l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M211.3 256.5l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M212.7 256.5l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M213.4 256.5l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M220.4 256.5v5.4h.7l-.7-5.4z"/>
+    <path fill="#941808" d="M247.9 256.5l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M250 256.5l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M252 256.5l.8.7-.7-.7z"/>
+    <path fill="#efefef" d="M254.9 256.5l1.4 1.4-1.4-1.4z"/>
+    <path fill="#bdbdbd" d="M255.6 256.5l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M256.8 256.8l.4.2-.4-.2z"/>
+    <path fill="#dedede" d="M257.7 256.5l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M259.1 256.5l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M259.8 256.5l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M261 256.8l.5.2-.5-.2z"/>
+    <path fill="#9c9494" d="M262 256.5l.6.7-.7-.7z"/>
+    <path fill="#7b7373" d="M262.6 256.5l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M263.4 256.5l.7.7-.8-.7z"/>
+    <path fill="#8c8c8c" d="M280.2 256.5v8.7h.7l-.7-8.7m7 0v10h.8l-.7-10z"/>
+    <path fill="#6b735a" d="M291.5 256.5l.7.7-.7-.7z"/>
+    <path fill="#395231" d="M292.2 256.5l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M295 256.5l3.5 12h.7l-4.2-12z"/>
+    <path fill="#103900" d="M295.7 256.5l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M297.8 256.5l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M300.9 257l.2.4-.2-.4z"/>
+    <path fill="#296300" d="M302.7 256.5l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M303.4 256.5l-.6 1.4.6-1.4z"/>
+    <path fill="#184a00" d="M305.6 256.5l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M307.4 256.8l.5.2-.5-.2z"/>
+    <path fill="#185200" d="M308.4 256.5l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M311.2 256.5l.7.7-.7-.7z"/>
+    <path d="M311.9 256.5l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M312.6 256.5l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M314.7 256.5l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M195.8 257.2l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M196.5 257.2l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M198.6 257.2l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M199.6 257.6l.2.5-.2-.5m2.5-.4l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M202.8 257.2l1.4 1.3-1.3-1.3z"/>
+    <path fill="#213918" d="M203.6 257.2l.7.7-.8-.7z"/>
+    <path fill="#dedede" d="M206.4 257.2l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M207 257.2l.8.7-.7-.7z"/>
+    <path fill="#103900" d="M208.5 257.2l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M209.9 257.2l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M210.6 257.2l.7.7-.7-.7z"/>
+    <path fill="#213918" d="M212 257.2l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M212.7 257.2l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M247.9 257.2l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M250 257.2l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M252 257.2l.8.7-.7-.7z"/>
+    <path fill="#9c9494" d="M252.8 257.2l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M253.5 257.2v.7h2.1l-2.1-.7m2.8 0l-2 1.3v.7l2-2m2.1 0l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M259.1 257.2l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M259.8 257.2l.7.7-.7-.7m2.8 0l-.7 1.3.7-1.3z"/>
+    <path fill="#210800" d="M263.4 257.2l.7.7-.8-.7z"/>
+    <path fill="#8c8c8c" d="M291.5 257.2l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M292.4 257.6l.3.5-.3-.5z"/>
+    <path fill="#8c8c8c" d="M292.9 257.2l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M294.3 257.2l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M295.7 257.2l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M296.4 257.2l-.7 1.3.7-1.3z"/>
+    <path fill="#103900" d="M298.5 257.2l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M301.3 257.2l-.7 1.3.7-1.3z"/>
+    <path fill="#184a00" d="M303.7 257.6l.2.5-.2-.5z"/>
+    <path fill="#103900" d="M305.6 257.2l.7.7-.7-.7m1.4 0l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M308.4 257.2l.7.7-.7-.7m2.8 0l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M311.9 257.2l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M314 257.2l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M314.7 257.2l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M317.4 260.4l-2.8 4.7c1.9-1.3 3.7-2.4 2.8-4.7z"/>
+    <path fill="#dedede" d="M321.7 257.2l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M196.5 257.9l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M197.2 257.9l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M200 257.9l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M204.3 257.9l.6.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M206.4 257.9l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M207.8 257.9l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M208.5 257.9l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M209.9 257.9l.7.6-.7-.6m1.4 0l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M212 257.9l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M214.6 258l.4.3-.4-.2z"/>
+    <path fill="#420000" d="M248.6 257.9l.7.6-.7-.6z"/>
+    <path fill="#101810" d="M250 257.9l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M251.4 257.9l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M252 257.9l.8.6-.7-.6z"/>
+    <path fill="#dedede" d="M252.8 257.9l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M257.7 257.9l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M258.4 257.9l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M262.6 257.9l.7.6-.7-.6z"/>
+    <path fill="#ce2110" d="M264 257.9l.8.6-.8-.6z"/>
+    <path fill="#cecece" d="M291.5 257.9l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M292.9 257.9l-.7 1.3.7-1.3z"/>
+    <path fill="#dedede" d="M293.6 257.9l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M294.5 258.3l.3.5-.3-.5z"/>
+    <path fill="#185200" d="M296.4 257.9l.7.6-.7-.6m2.1 0l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M299.2 257.9l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M301.3 257.9l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M304.9 257.9l.7.6-.8-.6z"/>
+    <path fill="#296300" d="M305.6 257.9l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M306.3 257.9l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M307.7 257.9l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M311.2 257.9l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M313.3 257.9l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M314 257.9l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M320.3 257.9l.7.6-.7-.6z"/>
+    <path fill="#424242" d="M321 257.9l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M197.2 258.5l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M200.7 258.5l1.4 1.4-1.4-1.4z"/>
+    <path fill="#397b00" d="M201.4 258.5l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M204.3 258.5l.6.7-.7-.7z"/>
+    <path fill="#efefef" d="M205.4 258.8l.5.2-.5-.2z"/>
+    <path fill="#214210" d="M206.4 258.5l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M207.8 258.5l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M209.2 258.5l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M209.9 258.5l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M211.3 258.5l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M214.1 258.5l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M214.8 258.5l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M228.2 258.5l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M248.6 258.5l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M250.7 258.5l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M253.5 258.5l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M256.3 258.5l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M257 258.5l.7.7-.7-.7m2.1 0l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M259.8 258.5l.7.7-.7-.7z"/>
+    <path fill="#313931" d="M260.5 258.5l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M264 258.5l.8.7-.8-.7z"/>
+    <path fill="#319400" d="M292.9 258.5l5 16.1h.6c0-5.6-1.8-11.7-5.6-16z"/>
+    <path fill="#425242" d="M293.6 258.5l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M296.4 258.5l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M299.2 258.5l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M301.6 259l.2.4-.2-.4m3.2-.5l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M305.6 258.5l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M306.3 258.5l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M307.7 258.5l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M310.5 258.5l.7.7-.7-.7z"/>
+    <path fill="#103910" d="M313.3 258.5l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M314 258.5l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M315.4 258.5l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M316.1 258.5l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M319 258.5l.6.7-.7-.7z"/>
+    <path fill="#314231" d="M319.6 258.5l-1.4 2.7 1.4-2.7z"/>
+    <path fill="#313931" d="M320.3 258.5l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M197.2 259.2l2.1 2-2-2z"/>
+    <path fill="#314231" d="M198 259.2l.6.7-.7-.7z"/>
+    <path fill="#397b00" d="M202.1 259.2l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M205 259.2l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M205.7 259.2l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M207 259.2l.8.7-.7-.7z"/>
+    <path fill="#295200" d="M207.8 259.2l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M209.2 259.2l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M210.6 259.2l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M211.3 259.2l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M213.4 259.2l.7.7-.7-.7z"/>
+    <path fill="#5a5231" d="M214.8 259.2l.7.7-.7-.7z"/>
+    <path fill="#101829" d="M228.2 259.2l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M248.6 259.2l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M250.7 259.2l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M251.6 259.7l.3.4-.3-.4z"/>
+    <path fill="#9c9494" d="M252 259.2l.8.7-.7-.7z"/>
+    <path fill="#7b7373" d="M252.8 259.2l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M253.5 259.2l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M257 259.2l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M257.7 259.2l.7.7-.7-.7z"/>
+    <path fill="#313931" d="M258.4 259.2l.7.7-.7-.7z"/>
+    <path fill="#210800" d="M263.4 259.2l.7.7-.8-.7z"/>
+    <path fill="#7b1008" d="M264 259.2l.8.7-.8-.7z"/>
+    <path fill="#10214a" d="M279.5 259.2l.7.7-.7-.7z"/>
+    <path fill="#4a6342" d="M292.4 259.7l.3.4-.3-.4z"/>
+    <path fill="#296300" d="M293.6 259.2l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M294.5 259.7l.3.4-.3-.4z"/>
+    <path fill="#296300" d="M296.9 259.4l.5.3-.5-.3z"/>
+    <path fill="#103900" d="M299.2 259.2l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M305.3 259.4l.5.3-.5-.3m1.7-.2l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M309.8 259.2l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M312.6 259.2l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M313.3 259.2l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M314 259.2l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M314.7 259.2l.7.7-.7-.7z"/>
+    <path fill="#313931" d="M315.4 259.2l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M316.1 259.2l.7.7-.7-.7m1.4 0l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M318.2 259.2l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M319 259.2l.6.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M189.5 259.9l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M190.2 259.9l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M198.6 259.9l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M199.3 259.9l1.4 1.3-1.4-1.3m4.3 0l.7.7-.8-.7m1.5 0l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M205.7 259.9l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M206.4 259.9l.7.7-.7-.7z"/>
+    <path fill="#292100" d="M207 259.9l.8.7-.7-.7z"/>
+    <path fill="#397b00" d="M208.5 259.9v1.3h1.4l-1.4-1.3z"/>
+    <path fill="#295200" d="M209.2 259.9l.7.7-.7-.7z"/>
+    <path fill="#5a5231" d="M210.6 259.9l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M212.7 259.9l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M214.8 259.9l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M215.5 259.9l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M228.2 259.9l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M228.9 259.9l.7.7-.7-.7z"/>
+    <path fill="#10214a" d="M229.6 259.9l.7.7-.7-.7z"/>
+    <path fill="#420000" d="M249.3 259.9l.7.7-.7-.7z"/>
+    <path fill="#101810" d="M250.7 259.9l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M252 259.9l.8.7-.7-.7m2.1 0l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M254.9 259.9l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M256 260.1l.5.2-.4-.2z"/>
+    <path fill="#313931" d="M257 259.9l.7.7-.7-.7z"/>
+    <path fill="#101810" d="M257.7 259.9l.7.7-.7-.7z"/>
+    <path fill="#310000" d="M261.2 259.9l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M262 259.9l.6.7-.7-.7z"/>
+    <path fill="#00184a" d="M278.1 259.9l.7.7-.7-.7z"/>
+    <path fill="#636b7b" d="M278.8 259.9l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M279.5 259.9l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M295 259.9l-.7 1.3.7-1.3z"/>
+    <path fill="#184a00" d="M297.1 259.9l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M299.2 259.9l1.4 1.3-1.4-1.3z"/>
+    <path fill="#297b00" d="M300 259.9l.6.7-.7-.7z"/>
+    <path fill="#296300" d="M301.3 259.9l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M302 259.9l-.7 1.3.7-1.3z"/>
+    <path fill="#184a00" d="M304.4 260.3l.2.5-.2-.5z"/>
+    <path fill="#103900" d="M305.6 259.9l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M306.3 259.9l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M307 259.9l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M309.5 260.1l.5.2-.5-.2z"/>
+    <path fill="#425242" d="M312.6 259.9l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M313.3 259.9l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M314.5 260.1l.4.2-.4-.2z"/>
+    <path fill="#cecece" d="M315.4 259.9l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M316.8 259.9l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M317.5 259.9l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M318.2 259.9l.7.7-.7-.7z"/>
+    <path fill="#8c9c84" d="M189.5 260.6l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M190.2 260.6l.7.6-.7-.6z"/>
+    <path fill="#63636b" d="M199.3 260.6l.7.6-.7-.6z"/>
+    <path fill="#001000" d="M203.6 260.6l.7.6-.8-.6z"/>
+    <path fill="#295200" d="M204.3 260.6l.6.6-.7-.6z"/>
+    <path fill="#292100" d="M205.7 260.6l.7.6-.7-.6z"/>
+    <path fill="#ad1810" d="M206.8 260.8l.5.2-.5-.2z"/>
+    <path fill="#311000" d="M207.8 260.6l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M210.6 260.6l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M212 260.6l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M212.7 260.6l.7.6-.7-.6z"/>
+    <path fill="#428c00" d="M209.7 267.4h-.7c-.1-3.8-1.6-6.3-5.6-7.4 0 2 1.6 10 5 7.4h.6l-1.4 6c2.1-2.2 10.8-10 7-13.5-3.2-2.9-4.8 6-4.9 7.5z"/>
+    <path fill="#295200" d="M214.1 260.6l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M215.5 260.6l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M229.6 260.6l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M230.3 260.6l.7.6-.7-.6z"/>
+    <path fill="#31425a" d="M231 260.6l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M231.7 260.6l.7.6-.7-.6z"/>
+    <path fill="#941808" d="M249.3 260.6l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M251.4 260.6l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M252.8 260.6l.7.6-.7-.6z"/>
+    <path fill="#63636b" d="M253.5 260.6l.7.6-.7-.6z"/>
+    <path fill="#310000" d="M259.8 260.6l.7.6-.7-.6z"/>
+    <path fill="#ad1810" d="M260.5 260.6l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M276 260.6l.7.6-.7-.6z"/>
+    <path fill="#21315a" d="M276.7 260.6l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M277.4 260.6l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M278.1 260.6l.7.6-.7-.6m12 0l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M290.8 260.6l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M291.5 260.6l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M292.2 260.6l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M295 260.6l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M297.1 260.6l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M297.8 260.6l-.7 1.3.7-1.3m1.4 0l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M305.6 260.6l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M309 260.6l.8.6-.7-.6z"/>
+    <path fill="#185200" d="M311.9 260.6l.7.6-.7-.6z"/>
+    <path fill="#102110" d="M312.6 260.6l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M313.8 260.8l.4.2-.4-.2z"/>
+    <path fill="#8c8c8c" d="M314.7 260.6l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M315.4 260.6l.7.6-.7-.6z"/>
+    <path fill="#425242" d="M316.1 260.6l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M316.8 260.6l-2.1 3.3 3.5-3.3h-1.4z"/>
+    <path fill="#295200" d="M190.2 261.2l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M190.9 261.2l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M199.3 261.2l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M200 261.2l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M200.7 261.2l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M202.8 261.2v.7h2.2l-2.1-.7z"/>
+    <path fill="#294200" d="M205 261.2l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M205.7 261.2l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M208 261.7l.2.4-.2-.4z"/>
+    <path fill="#292100" d="M208.5 261.2l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M209.9 261.2l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M210.6 261.2l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M211.3 261.2l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M212 261.2l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M213.6 261.7l.3.4-.3-.4z"/>
+    <path fill="#8c8c8c" d="M215.7 261.7l.3.4-.3-.4z"/>
+    <path fill="#dedede" d="M231.7 261.2l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M232.4 261.2l.7.7-.7-.7z"/>
+    <path fill="#636b7b" d="M233.1 261.2l.7.7-.7-.7z"/>
+    <path fill="#21315a" d="M233.8 261.2l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M234.5 261.2l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M235.2 261.2l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M249.3 261.2l.7.7-.7-.7z"/>
+    <path fill="#424242" d="M251.4 261.2l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M252 261.2l.8.7-.7-.7z"/>
+    <path fill="#101810" d="M252.8 261.2l.7.7-.7-.7z"/>
+    <path fill="#100808" d="M257.7 261.2l.7.7-.7-.7z"/>
+    <path fill="#310000" d="M258.4 261.2l.7.7-.7-.7z"/>
+    <path fill="#210800" d="M259.1 261.2l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M272.5 261.2l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M273.2 261.2l.7.7-.7-.7z"/>
+    <path fill="#10295a" d="M273.9 261.2l.7.7-.7-.7z"/>
+    <path fill="#525a6b" d="M274.6 261.2l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M275.3 261.2l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M276 261.2l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M290 261.2l.8.7-.7-.7z"/>
+    <path fill="#297b00" d="M290.8 261.2l1.4 1.4-1.4-1.4z"/>
+    <path fill="#103910" d="M291.5 261.2l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M292.2 261.2l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M295 261.2l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M295.7 261.2l-.7 1.4.7-1.4z"/>
+    <path fill="#185200" d="M297.8 261.2l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M300 261.2l.6.7-.7-.7z"/>
+    <path fill="#184a00" d="M304.9 261.2l.7.7-.8-.7z"/>
+    <path fill="#103900" d="M308.4 261.2l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M311.2 261.2v.7h2.8v-.7h-2.8z"/>
+    <path fill="#425242" d="M314 261.2l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M314.7 261.2l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M315.4 261.2l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M317.5 261.2l.7.7-.7-.7z"/>
+    <path fill="#428c00" d="M190.2 261.9l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M191.1 262.3l.3.5-.3-.5z"/>
+    <path fill="#314231" d="M191.6 261.9l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M192.3 261.9l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M195.1 261.9l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M198.6 261.9l.7.7-.7-.7z"/>
+    <path fill="#101810" d="M199.3 261.9l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M200.7 261.9l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M201.4 261.9l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M202.8 261.9l.7.7-.7-.7z"/>
+    <path fill="#292100" d="M205.7 261.9l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M206.4 261.9l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M208.5 261.9l.7.7-.7-.7z"/>
+    <path fill="#5a2908" d="M209.2 261.9l-.7 1.3.7-1.3z"/>
+    <path fill="#7b1008" d="M209.9 261.9l.7.7-.7-.7z"/>
+    <path fill="#5a3131" d="M210.6 261.9l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M211.3 261.9l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M219.7 261.9l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M220.4 261.9l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M221.1 261.9l.7.7-.7-.7m13.4 0l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M235.2 261.9l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M236 261.9l.6.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M236.6 261.9l.7.7-.7-.7z"/>
+    <path fill="#420000" d="M250 261.9l.7.7-.7-.7z"/>
+    <path fill="#100808" d="M256.3 261.9l.7.7-.7-.7z"/>
+    <path fill="#7b0008" d="M257 261.9l.7.7-.7-.7z"/>
+    <path fill="#de2110" d="M254.2 262.6v.6h2.1c-5.4 8.4-1.5 19.7-.7 28.8h.7c2-8.2 2.2-20 0-28.1l2.8 1.3.7-2.6-.7-.7-4.9.7z"/>
+    <path fill="#940008" d="M259.1 261.9l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M259.8 261.9l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M271 261.9l.8.7-.7-.7z"/>
+    <path fill="#9c9494" d="M271.8 261.9l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M272.5 261.9l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M273.2 261.9l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M289.4 261.9l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M290 261.9l.8.7-.7-.7z"/>
+    <path fill="#313931" d="M292.2 261.9l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M292.9 261.9l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M295.7 261.9l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M297.8 261.9l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M300 261.9l.6.7-.7-.7z"/>
+    <path fill="#297b00" d="M300.6 261.9l-.7 1.3.7-1.3z"/>
+    <path fill="#103900" d="M304.9 261.9l.7.7-.8-.7z"/>
+    <path fill="#185200" d="M307.7 261.9l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M311.2 261.9l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M312.6 261.9l-.7 1.3.7-1.3z"/>
+    <path fill="#082108" d="M313.5 262.3l.3.5-.3-.5z"/>
+    <path fill="#52525a" d="M314 261.9l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M314.7 261.9l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M316.8 261.9l-2.1 2.7 2.1-2.7z"/>
+    <path fill="#295200" d="M190.2 262.6l.7.6-.7-.6z"/>
+    <path fill="#428c00" d="M191.6 262.6l1.4 4h.7l.7-2.7-2.8-1.3z"/>
+    <path fill="#295200" d="M192.3 262.6l.7.6-.7-.6z"/>
+    <path fill="#63636b" d="M193 262.6l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M193.7 262.6l.7.6-.7-.6z"/>
+    <path fill="#101810" d="M195.1 262.6l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M195.8 262.6l.7.6-.7-.6z"/>
+    <path fill="#425242" d="M198.6 262.6l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M199.3 262.6l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M202.1 262.6l.7.6-.7-.6z"/>
+    <path fill="#001000" d="M202.8 262.6l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M206.4 262.6l.7.6-.7-.6z"/>
+    <path fill="#4a1000" d="M207 262.6l.8.6-.7-.6z"/>
+    <path fill="#294200" d="M207.8 262.6l.7.6-.7-.6z"/>
+    <path fill="#631808" d="M210.6 262.6l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M213.2 262.8l.4.2-.4-.2z"/>
+    <path fill="#6b735a" d="M215.5 262.6l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M217 262.6l.6.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M217.6 262.6l.7.6-.7-.6z"/>
+    <path fill="#526b42" d="M218.3 262.6l.7.6-.7-.6z"/>
+    <path fill="#396b10" d="M219 262.6l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M219.7 262.6l.7.6-.7-.6z"/>
+    <path fill="#213918" d="M220.4 262.6l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M221.1 262.6l.7.6-.7-.6z"/>
+    <path fill="#941808" d="M250 262.6l.7.6-.7-.6z"/>
+    <path fill="#520808" d="M252.8 262.6l-.7 1.3.7-1.3z"/>
+    <path fill="#ad0008" d="M253.5 262.6l.7.6-.7-.6z"/>
+    <path fill="#520808" d="M259.8 262.6l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M289.4 262.6l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M290 262.6l.8.6-.7-.6z"/>
+    <path fill="#184a00" d="M292.2 262.6l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M292.9 262.6l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M295.7 262.6l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M296.4 262.6l-.7 1.3.7-1.3z"/>
+    <path fill="#185200" d="M297.8 262.6l1.4 1.3-1.4-1.3z"/>
+    <path fill="#297b00" d="M298.5 262.6l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M300.6 262.6l.7.6-.7-.6m1.4 0l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M302.7 262.6l.7.6-.7-.6m1.4 0l1.4 1.3-1.3-1.3z"/>
+    <path fill="#185200" d="M304.9 262.6l.7.6-.8-.6z"/>
+    <path fill="#297b00" d="M307 262.6l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M307.7 262.6l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M310.5 262.6l1.4 1.3-1.4-1.3zm3.5 0l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M317.5 262.6l.7.6-.7-.6z"/>
+    <path fill="#5a6b52" d="M318.2 262.6l.7.6-.7-.6z"/>
+    <path fill="#425242" d="M319 262.6l.6.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M319.6 262.6l.7.6-.7-.6z"/>
+    <path fill="#8c9c84" d="M189.5 263.2l.7.7-.7-.7z"/>
+    <path fill="#428c00" d="M190.2 263.2l2 3.4-2-3.4z"/>
+    <path fill="#103900" d="M190.9 263.2l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M193.7 263.2l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M194.4 263.2l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M195.1 263.2l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M195.8 263.2l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M198 263.2l.6.7-.7-.7z"/>
+    <path fill="#397b00" d="M199 263.4l.6.3-.5-.2z"/>
+    <path fill="#dedede" d="M200 263.2l.7.7-.7-.7z"/>
+    <path fill="#7b8c73" d="M202.8 263.2l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M207 263.2l1.5 1.4v-1.4H207z"/>
+    <path fill="#4a1000" d="M208.5 263.2l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M209.9 263.2l.7.7-.7-.7z"/>
+    <path fill="#526b42" d="M215.5 263.2l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M216.2 263.2l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M217 263.2l.6.7-.7-.7z"/>
+    <path fill="#428c00" d="M214.8 268.6l1.4-.7v.7l-5 4c4.5-1.7 6.7-4 8.5-8l-2 1.3 1.3-2.7-4.2 5.4z"/>
+    <path fill="#294200" d="M219 263.2l-.7 1.4.7-1.4z"/>
+    <path fill="#397b00" d="M219.7 263.2l-.7 1.4.7-1.4z"/>
+    <path fill="#424242" d="M220.4 263.2l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M242.2 263.2l.7.7-.7-.7z"/>
+    <path fill="#845a52" d="M243 263.2l.6.7-.7-.7z"/>
+    <path fill="#734a42" d="M243.7 263.2l.7.7-.8-.7z"/>
+    <path fill="#842118" d="M244.3 263.2l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M245 263.2l.8.7-.7-.7z"/>
+    <path fill="#b51010" d="M245.8 263.2l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M250 263.2l.7.7-.7-.7z"/>
+    <path fill="#310000" d="M251.4 263.2l.7.7-.7-.7z"/>
+    <path fill="#310010" d="M252.8 263.2l.7.7-.7-.7z"/>
+    <path fill="#180821" d="M253.5 263.2l.7.7-.7-.7z"/>
+    <path fill="#310010" d="M254.2 263.2l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M254.9 263.2l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M255.6 263.2l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M259.8 263.2l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M262 263.2l.6.7-.7-.7z"/>
+    <path fill="#7b1008" d="M262.6 263.2l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M263.4 263.2l.7.7-.8-.7z"/>
+    <path fill="#8c4a4a" d="M264 263.2l.8.7-.8-.7z"/>
+    <path fill="#9c9494" d="M265.5 263.2l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M289.4 263.2l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M292.2 263.2l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M292.9 263.2l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M296.4 263.2l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M297.8 263.2l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M300.6 263.2l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M304.4 263.7l.2.4-.2-.4m2.6-.5l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M312.6 263.2l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M316.8 263.2l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M317.5 263.2l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M319.6 263.2l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M320.3 263.2l1.4 1.4-1.4-1.4z"/>
+    <path fill="#8c8c8c" d="M189.7 264.3l.2.5-.2-.5z"/>
+    <path fill="#295200" d="M190.9 263.9l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M191.6 263.9l.7.7-.7-.7z"/>
+    <path fill="#102110" d="M194.4 263.9l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M195.1 263.9v.7l2.1.6-2-1.3z"/>
+    <path fill="#63636b" d="M196.5 263.9l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M198 263.9l.6.7-.7-.7z"/>
+    <path fill="#428c00" d="M198.6 263.9v3.3h-.7l-.7-2h-.7l.7 6.7h-.7l-.7-7.3h-.7l-.7 5.3h-.7l-3.5-2.7 2 4h-.6l-2.8-3.3c2.3 8 5.7 6.8 11.3 11.3 2.1 1.6 3.5 5.2 4.9 7.4l-2.9-2 1.4 2-3.5-2 4.3 4 .7-2h.7c-1.8 3.2-5 3.6-8.5 4v-.6l1.4-1.3 3.5.6c-2.5-2.5-5.6-3-9.1-2l4.2 3.4v.6L193 296l8.4-1.3-.7 1.3h.7l4.3-2-8.5 4v.7c7.1-.9 8-3.2 12-8-.6 2.1-.6 3.3 1.4 4.7l-1.1-8 9.5-10.8-3.5 2.7 2.8-4c-4 .8-5.7 3.6-5.6 7.3l-4.2 4h-.7c1.5-4.1 5.6-6.5 4.2-11.3-3.7 2.6-4.7 5.8-5 10l-2.7-13.4.7 2.7h-.7v-1.3h-.7l.7 9.3h-.7c-2.2-5-.3-15.4-5-18.7z"/>
+    <path fill="#9c9494" d="M200 263.9l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M203 264.3l.3.5-.2-.5z"/>
+    <path fill="#397b00" d="M205 263.9l1.4 1.3-1.4-1.3z"/>
+    <path fill="#5a1008" d="M209.2 263.9l.7.7-.7-.7z"/>
+    <path fill="#311000" d="M209.9 263.9l.7.7-.7-.7z"/>
+    <path fill="#213918" d="M215.5 263.9l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M216.2 263.9l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M219.7 263.9l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M245 263.9l.8.7-.7-.7z"/>
+    <path fill="#9c9494" d="M245.8 263.9l.7.7-.7-.7z"/>
+    <path fill="#736b6b" d="M246.5 263.9l.7.7-.7-.7z"/>
+    <path fill="#6b2908" d="M247.2 263.9l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M247.9 263.9l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M250.7 263.9l.7.7-.7-.7z"/>
+    <path fill="#000818" d="M251.4 263.9l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M252 263.9l-.6 1.3.7-1.3z"/>
+    <path fill="#003994" d="M250 287.3h.7a35.9 35.9 0 013.5-23.4c-8.3 4-7.8 16.8-4.2 23.4z"/>
+    <path fill="#52525a" d="M254.2 263.9l.7.7-.7-.7z"/>
+    <path fill="#9c2118" d="M254.9 263.9l.7.7-.7-.7z"/>
+    <path fill="#ce0008" d="M257.7 263.9l.7.7-.7-.7z"/>
+    <path fill="#bd0008" d="M259.1 263.9l.7.7-.7-.7z"/>
+    <path fill="#520808" d="M259.8 263.9l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M260.5 263.9l.7.7-.7-.7z"/>
+    <path fill="#7b5252" d="M261.2 263.9l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M262 263.9l.6.7-.7-.7z"/>
+    <path fill="#dedede" d="M262.6 263.9l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M279.5 263.9l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M288.7 263.9l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M289.4 263.9l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M290 263.9l.8.7-.7-.7z"/>
+    <path fill="#185200" d="M290.8 263.9l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M292.9 263.9l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M293.6 263.9l-.7 1.3.7-1.3z"/>
+    <path fill="#103900" d="M296.4 263.9l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M298.8 264.3l.2.5-.2-.5z"/>
+    <path fill="#185200" d="M300.6 263.9l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M306.5 264.3l.2.5-.2-.5z"/>
+    <path fill="#297b00" d="M307 263.9l.7.7-.7-.7m2.8 0l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M314 263.9l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M315.4 263.9l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M316.1 263.9l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M316.8 263.9l.7.7-.7-.7m3.5 0l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M191.6 264.6l.7.6-.7-.6m2.8 0l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M196 265l.3.5-.3-.5z"/>
+    <path fill="#ada5a5" d="M197.2 264.6l.7.6-.7-.6z"/>
+    <path fill="#526b42" d="M198 264.6l.6.6-.7-.6z"/>
+    <path fill="#5a6b52" d="M200 264.6l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M205 264.6l.7.6-.7-.6m3.5 0l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M209.2 264.6l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M209.9 264.6l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M215.7 265l.3.5-.3-.5z"/>
+    <path fill="#397b00" d="M217.6 264.6l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M218.3 264.6l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M219.7 264.6l.7.6-.7-.6z"/>
+    <path fill="#313931" d="M228.2 264.6l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M247.9 264.6l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M248.6 264.6l.7.6-.7-.6z"/>
+    <path fill="#733939" d="M249.3 264.6l.7.6-.7-.6z"/>
+    <path fill="#7b1008" d="M250 264.6l.7.6-.7-.6z"/>
+    <path fill="#631808" d="M250.7 264.6l.7.6-.7-.6z"/>
+    <path fill="#00184a" d="M253.5 264.6l.7.6-.7-.6z"/>
+    <path fill="#6b5252" d="M254.2 264.6l.7.6-.7-.6z"/>
+    <path fill="#310000" d="M257.7 264.6l.7.6-.7-.6z"/>
+    <path fill="#5a1010" d="M259.1 264.6l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M259.8 264.6l.7.6-.7-.6z"/>
+    <path fill="#63636b" d="M279.5 264.6l.7.6-.7-.6z"/>
+    <path fill="#5a6b52" d="M288.7 264.6l.7.6-.7-.6z"/>
+    <path fill="#214210" d="M289.4 264.6l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M290 264.6l.8.6-.7-.6z"/>
+    <path fill="#425242" d="M290.8 264.6l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M293.6 264.6l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M296.4 264.6l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M297.1 264.6l-.7 1.3.7-1.3z"/>
+    <path fill="#184a00" d="M300.9 265l.2.5-.2-.5z"/>
+    <path fill="#297b00" d="M303.4 264.6l1.5 1.3-1.5-1.3z"/>
+    <path fill="#185200" d="M304.1 264.6l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M305.6 264.6l1.4 1.3-1.4-1.3z"/>
+    <path fill="#103900" d="M310.5 264.6l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M313.3 264.6l-2.8 3.3 2.8-3.3z"/>
+    <path fill="#7b7373" d="M314 264.6l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M314.7 264.6l.7.6-.7-.6z"/>
+    <path fill="#214210" d="M315.4 264.6l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M316.1 264.6l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M317.5 264.6l.7.6-.7-.6z"/>
+    <path fill="#5a6b52" d="M318.2 264.6l.7.6-.7-.6z"/>
+    <path fill="#395231" d="M319 264.6l.6.6-.7-.6z"/>
+    <path fill="#296300" d="M319.6 264.6l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M321.3 265l.2.5-.2-.5z"/>
+    <path fill="#8c8c8c" d="M321.7 264.6l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M189.7 265.7l.2.4-.2-.4z"/>
+    <path fill="#397b00" d="M190.2 265.2l.7.7-.7-.7m1.4 0l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M192.3 265.2l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M194.2 265.5l.4.2-.4-.2z"/>
+    <path fill="#213918" d="M197.2 265.2l.7.7-.7-.7z"/>
+    <path fill="#5a5231" d="M198 265.2l.6.7-.7-.7z"/>
+    <path fill="#295200" d="M200 265.2l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M200.7 265.2l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M202.8 265.2l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M203.6 265.2l.7.7-.8-.7z"/>
+    <path fill="#103900" d="M205.7 265.2l.7.7-.7-.7z"/>
+    <path fill="#001000" d="M209.2 265.2l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M212.7 265.2l-.7 1.4.7-1.4z"/>
+    <path fill="#103900" d="M217.6 265.2l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M219 265.2l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M219.7 265.2l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M228.2 265.2l.7.7-.7-.7z"/>
+    <path fill="#733939" d="M228.9 265.2l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M229.6 265.2l.7.7-.7-.7m20.4 0l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M250.7 265.2l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M252.8 265.2l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M253.5 265.2l.7.7-.7-.7z"/>
+    <path fill="#842118" d="M254.2 265.2l.7.7-.7-.7z"/>
+    <path d="M257.7 265.2l.7.7-.7-.7z"/>
+    <path fill="#ad0008" d="M258.4 265.2l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M259.1 265.2l.7.7-.7-.7z"/>
+    <path fill="#debdb5" d="M278.1 265.2l.7.7-.7-.7z"/>
+    <path fill="#8c4a4a" d="M278.8 265.2l.7.7-.7-.7z"/>
+    <path fill="#ce1810" d="M279.5 265.2l.7.7-.7-.7z"/>
+    <path fill="#946b63" d="M280.5 265.7l.2.4-.2-.4z"/>
+    <path fill="#001000" d="M288.7 265.2l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M289.4 265.2l.7.7-.7-.7m1.4 0l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M291.5 265.2l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M293.6 265.2l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M294.3 265.2l-.7 1.4.7-1.4z"/>
+    <path fill="#184a00" d="M297.1 265.2l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M298.5 265.2l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M299.2 265.2l-.7 1.4.7-1.4z"/>
+    <path fill="#103900" d="M303.7 265.7l.2.4-.2-.4m1.9-.5l.7.7-.7-.7z"/>
+    <path d="M309.8 265.2l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M310.5 265.2l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M313.3 265.2l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M314 265.2l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M314.7 265.2l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M316.8 265.2l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M317.5 265.2l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M319.6 265.2l.7.7-.7-.7z"/>
+    <path fill="#294221" d="M320.3 265.2l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M321.7 265.2l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M322.4 265.2l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M186.7 265.9l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M187.8 266.1l.5.2-.5-.2z"/>
+    <path fill="#9c9494" d="M188.8 265.9l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M190.2 265.9l1.4 1.3-1.4-1.3z"/>
+    <path fill="#103900" d="M192.3 265.9l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M193.7 265.9l-.7 2 .7-2m2.1 0v2h.7l-.7-2z"/>
+    <path fill="#292100" d="M198 265.9l.6.7-.7-.7z"/>
+    <path fill="#9c9494" d="M200.7 265.9l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M203.6 265.9l.7.7-.8-.7m2.9 0l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M209.2 265.9l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M212.7 265.9l.7.7-.7-.7m2.6.2l.4.2-.4-.2z"/>
+    <path fill="#103900" d="M217 265.9l.6.7-.7-.7z"/>
+    <path fill="#7b7373" d="M219 265.9l.7.7-.7-.7z"/>
+    <path fill="#de2110" d="M228.9 265.9v10.7h-.7l-.7-9.4H221v19.4l2.9-1.3 1.4 4.7 3.5-2 .7 7.4 6.3-2c3 2 4.9 2 6.3-1.4h1.4l4.3 4-.7-12.7-12.7-.7v-.6l12 .6v-2c-9-.2-9.9-5.5-9.9-12.7l-7.7-2z"/>
+    <path fill="#b51010" d="M229.6 265.9l.7.7-.7-.7z"/>
+    <path fill="#7b5252" d="M230.3 265.9l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M231 265.9l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M250 265.9l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M250.7 265.9l.7.7-.7-.7z"/>
+    <path fill="#10214a" d="M252.8 265.9l.7.7-.7-.7z"/>
+    <path fill="#c6b5b5" d="M253.5 265.9l.7.7-.7-.7z"/>
+    <path fill="#ce1810" d="M254.2 265.9l.7.7-.7-.7z"/>
+    <path fill="#6b0808" d="M257 265.9l.7.7-.7-.7z"/>
+    <path fill="#100808" d="M257.7 265.9l.7.7-.7-.7z"/>
+    <path fill="#5a3131" d="M258.4 265.9l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M276.7 265.9l.7.7-.7-.7z"/>
+    <path fill="#a56363" d="M277.4 265.9l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M278.1 265.9l.7.7-.7-.7z"/>
+    <path fill="#de2110" d="M271.8 268c0 6.7-.7 12.2-9.1 12.6 1.8 5.1 11 1.9 14-.8 4.1-3.7 3.5-9 3.5-13.9l-8.4 2z"/>
+    <path fill="#bdbdbd" d="M288 265.9l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M288.7 265.9l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M291.5 265.9l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M294.3 265.9l.7.7-.7-.7m2.8 0l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M299.2 265.9l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M304.9 265.9l.7.7-.8-.7z"/>
+    <path fill="#185200" d="M305.6 265.9l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M304.1 272l6.4-6c-3.5.8-5 3-6.4 6z"/>
+    <path fill="#103900" d="M309 265.9l.8.7-.7-.7z"/>
+    <path fill="#7b7373" d="M312.6 265.9l.7.7-.7-.7z"/>
+    <path fill="#294221" d="M313.3 265.9l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M314 265.9l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M316.1 265.9l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M316.8 265.9l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M320.3 265.9l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M321 265.9l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M321.7 265.9l.7.7-.7-.7z"/>
+    <path fill="#294221" d="M322.4 265.9l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M323.1 265.9l.7.7-.7-.7m-136.4.7l.7.6-.7-.6z"/>
+    <path fill="#293129" d="M187.4 266.6l.7.6-.7-.6z"/>
+    <path fill="#428c00" d="M188.5 266.8l.5.2-.5-.2z"/>
+    <path fill="#397b00" d="M189.7 267l.2.5-.2-.5z"/>
+    <path fill="#295200" d="M190.2 266.6l.7.6-.7-.6m1.4 0l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M192.3 266.6l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M198 266.6l.6.6-.7-.6z"/>
+    <path fill="#425242" d="M200.7 266.6l.7.6-.7-.6z"/>
+    <path fill="#5a6b52" d="M203.6 266.6l.7.6-.8-.6z"/>
+    <path fill="#295200" d="M206.4 266.6l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M209.2 266.6v2h.7l-.7-2m3 .4l.3.5-.3-.5m2.6-.4l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M216.7 266.8l.5.2-.5-.2z"/>
+    <path fill="#295200" d="M218.3 266.6l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M219 266.6l.7.6-.7-.6z"/>
+    <path fill="#52525a" d="M220.4 266.6l.7.6-.7-.6z"/>
+    <path fill="#5a3131" d="M227.5 266.6l.7.6-.7-.6z"/>
+    <path fill="#b51010" d="M231 266.6l.7.6-.7-.6z"/>
+    <path fill="#842118" d="M231.7 266.6l.7.6-.7-.6z"/>
+    <path fill="#8c6363" d="M232.4 266.6l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M233.1 266.6l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M249.3 266.6l.7.6-.7-.6z"/>
+    <path fill="#00184a" d="M250 266.6l.7.6-.7-.6z"/>
+    <path fill="#002984" d="M252 266.6l.8.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M252.8 266.6l.7.6-.7-.6z"/>
+    <path fill="#8c6363" d="M253.5 266.6l.7.6-.7-.6z"/>
+    <path fill="#941808" d="M257 266.6l.7.6-.7-.6z"/>
+    <path fill="#4a2129" d="M257.7 266.6l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M258.4 266.6l.7.6-.7-.6z"/>
+    <path fill="#d6a5a5" d="M274.6 266.6l.7.6-.7-.6z"/>
+    <path fill="#946b63" d="M275.3 266.6l.7.6-.7-.6z"/>
+    <path fill="#a52921" d="M276 266.6l.7.6-.7-.6z"/>
+    <path fill="#b51010" d="M276.7 266.6l.7.6-.7-.6z"/>
+    <path fill="#4a2129" d="M280.2 266.6l.7.6-.7-.6z"/>
+    <path fill="#42425a" d="M281 266.6v.6h6.3l-6.4-.6z"/>
+    <path fill="#212139" d="M287.3 266.6l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M290 266.6l2.2 1.3v-.7l-2.1-.6z"/>
+    <path fill="#8c8c8c" d="M291.5 266.6l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M292.2 266.6l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M294.3 266.6l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M295 266.6l-.7 1.3.7-1.3m2.1 0l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M297.8 266.6l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M299.2 266.6l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M300.6 266.6l.7.6-.7-.6m1.4 0l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M303.4 266.6l.8.6-.8-.6z"/>
+    <path fill="#103900" d="M304.9 266.6l.7.6-.8-.6m3.6 0l.7.6-.7-.6z"/>
+    <path fill="#313931" d="M311.9 266.6l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M312.6 266.6l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M315.4 266.6l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M316.1 266.6l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M321.7 266.6l.7.6-.7-.6z"/>
+    <path fill="#424242" d="M322.4 266.6l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M323.1 266.6l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M187.4 267.2l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M188 267.2l.8.7-.7-.7z"/>
+    <path fill="#103900" d="M188.8 267.2l.7.7-.7-.7z"/>
+    <path fill="#292100" d="M192.3 267.2l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M193.7 267.2l.7.7-.7-.7m5.2.5l.2.4-.2-.4m1.8-.5l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M201.4 267.2l.7.7-.7-.7m2.1 0l.8.7-.8-.7z"/>
+    <path fill="#294200" d="M204.3 267.2l.6.7-.7-.7m2.9 0l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M214.1 267.2l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M214.8 267.2l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M216.2 267.2l.7.7-.7-.7z"/>
+    <path fill="#6b735a" d="M218.3 267.2l.7.7-.7-.7z"/>
+    <path fill="#ce1810" d="M233.1 267.2l.7.7-.7-.7z"/>
+    <path fill="#a51008" d="M233.8 267.2l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M234.5 267.2l.7.7-.7-.7z"/>
+    <path fill="#943131" d="M235.7 267.5l.5.2-.5-.2z"/>
+    <path fill="#c6b5b5" d="M236.6 267.2l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M249.3 267.2l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M252 267.2l.8.7-.7-.7z"/>
+    <path fill="#efefef" d="M252.8 267.2l.7.7-.7-.7z"/>
+    <path fill="#943131" d="M253.5 267.2l.7.7-.7-.7z"/>
+    <path fill="#ce1810" d="M256.3 267.2l1.4 6-1.4-6z"/>
+    <path fill="#6b0808" d="M257 267.2l1.4 1.4-1.4-1.4z"/>
+    <path fill="#733939" d="M257.7 267.2l.7.7-.7-.7z"/>
+    <path fill="#c69c94" d="M271 267.2l.8.7-.7-.7z"/>
+    <path fill="#ad3931" d="M272.3 267.5l.4.2-.4-.2z"/>
+    <path fill="#bd2110" d="M273.2 267.2l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M273.9 267.2l.7.7-.7-.7z"/>
+    <path fill="#ce1810" d="M274.6 267.2l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M280.2 267.2v5.4h.7l-.7-5.4z"/>
+    <path fill="#003994" d="M281 267.2c0 12.5-7.3 17-19.8 16.1l-.7 12.7c2.7 0 6.4.2 7-2.7l2.9 2 2.8-2.6-.7 2.6 1.4-1.3h.7l4.2-.7-.7 2 2.1-2.6 1.4 1.3h2.1v-2l1.5.7.7-6c3.5-3 1.4-15 1.4-19.5h-6.4z"/>
+    <path fill="#424242" d="M290 267.2l.8.7-.7-.7z"/>
+    <path fill="#185200" d="M292.2 267.2l.7.7-.7-.7m2.8 0l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M297.8 267.2v2h.7l-.7-2z"/>
+    <path fill="#185200" d="M299.2 267.2l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M301.3 267.2v3.4h.7l-.7-3.4z"/>
+    <path fill="#185200" d="M304.1 267.2l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M304.9 267.2l.7.7-.8-.7z"/>
+    <path fill="#082108" d="M307.7 267.2l.7.7-.7-.7z"/>
+    <path d="M311.2 267.2l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M311.9 267.2l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M314.7 267.2l-1.4 2 1.4-2z"/>
+    <path fill="#63636b" d="M315.4 267.2l.7.7-.7-.7m-127.3.7l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M189.5 268l1.4 1.3-1.4-1.4z"/>
+    <path fill="#295200" d="M190.2 268l.7.6-.7-.7z"/>
+    <path fill="#103900" d="M193 268l.7.6-.7-.7z"/>
+    <path fill="#397b00" d="M193.7 268l.7.6-.7-.7m2.1 0v1.4h1.4v-1.4h-1.4z"/>
+    <path fill="#8c8c8c" d="M201.4 268l.7.6-.7-.7z"/>
+    <path fill="#7b7373" d="M204.3 268l.6.6-.7-.7z"/>
+    <path fill="#103900" d="M215.5 268l.7.6-.7-.7z"/>
+    <path fill="#396b10" d="M217.6 268l.7.6-.7-.7z"/>
+    <path fill="#dedede" d="M218.3 268l.7.6-.7-.7z"/>
+    <path fill="#8c7373" fill-opacity=".5" d="M236.6 268v6h.7l-.7-6z"/>
+    <path fill="#efefef" d="M248.6 268l.7.6-.7-.7z"/>
+    <path fill="#10214a" d="M249.3 268l.7.6-.7-.7z"/>
+    <path fill="#636b7b" d="M252 268l.8.6-.7-.7z"/>
+    <path fill="#ad1810" d="M253.5 268l.7.6-.7-.7z"/>
+    <path fill="#420000" d="M257 268l.7.6-.7-.7z"/>
+    <path fill="#8c8c8c" d="M290 268l.8.6-.7-.7z"/>
+    <path fill="#63636b" d="M290.8 268l.7.6-.7-.7z"/>
+    <path fill="#425242" d="M292.2 268l.7.6-.7-.7z"/>
+    <path fill="#103900" d="M295 268l.7.6-.7-.7z"/>
+    <path fill="#184a00" d="M299.2 268l.7.6-.7-.7z"/>
+    <path fill="#297b00" d="M303.4 268l1.5 1.3-1.5-1.4z"/>
+    <path fill="#103900" d="M304.1 268l.7.6-.7-.7m2.9 0l.7.7-.7-.7m2.8 0l-3.5 4 3.5-4z"/>
+    <path fill="#082108" d="M310.5 268l.7.6-.7-.7z"/>
+    <path fill="#297b00" d="M311.2 268l.7.6-.7-.7z"/>
+    <path fill="#314231" d="M314.7 268l-.7 1.3.7-1.4z"/>
+    <path fill="#bdbdbd" d="M188 268.6l.8.6-.7-.6z"/>
+    <path fill="#397b00" d="M188.8 268.6l.7.6-.7-.6m2 0l.8.6-.7-.6z"/>
+    <path fill="#294200" d="M194 269l.2.5-.3-.5m5 0l.2.5-.2-.5z"/>
+    <path fill="#526b42" d="M201.4 268.6l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M204.3 268.6l.6.6-.7-.6z"/>
+    <path fill="#314231" d="M205 268.6l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M209.2 268.6l.7.6-.7-.6m4.2.6v.7h2.1l-2-.6m2-.7l.7.6-.7-.6m1.4 0l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M217.6 268.6l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M242.7 268.8l.5.2-.5-.2z"/>
+    <path fill="#8c8c8c" d="M243.7 268.6l.7.6-.8-.6z"/>
+    <path fill="#bdbdbd" d="M244.3 268.6l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M245 268.6l.8.6-.7-.6z"/>
+    <path fill="#9c9494" d="M248.6 268.6l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M249.3 268.6l.7.6-.7-.6z"/>
+    <path fill="#00215a" d="M251.4 268.6l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M252 268.6l.8.6-.7-.6z"/>
+    <path fill="#a51008" d="M253.5 268.6l.7.6-.7-.6z"/>
+    <path fill="#310000" d="M257 268.6l.7.6-.7-.6z"/>
+    <path fill="#940008" d="M257.7 268.6l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M258.4 268.6l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M262.6 268.6l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M263.4 268.6l.7.6-.8-.6z"/>
+    <path fill="#8c8c8c" d="M264.5 268.8l.5.2-.5-.2z"/>
+    <path fill="#7b7373" d="M265.5 268.6l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M290 268.6l.8.6-.7-.6z"/>
+    <path fill="#103900" d="M290.8 268.6l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M291.5 268.6l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M292.2 268.6l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M292.9 268.6l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M295.5 268.8l.4.2-.4-.2z"/>
+    <path fill="#297b00" d="M298.5 268.6l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M299.2 268.6l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M300 268.6l.6.6-.7-.6z"/>
+    <path fill="#103900" d="M303.4 268.6l.8.6-.8-.6m2.9 0l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M314.7 268.6l.7.6-.7-.6z"/>
+    <path fill="#396b10" d="M188.8 269.3l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M190.9 269.3l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M196.8 269.7l.2.5-.3-.5z"/>
+    <path fill="#396b10" d="M201.4 269.3l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M203.6 269.3l.7.6-.8-.6z"/>
+    <path fill="#dedede" d="M205 269.3l.7.6-.7-.6z"/>
+    <path fill="#214210" d="M205.7 269.3l2 2-2-2z"/>
+    <path fill="#294200" d="M208.7 269.7l.2.5-.2-.5z"/>
+    <path fill="#103900" d="M214.1 269.3l.7.6-.7-.6z"/>
+    <path fill="#314231" d="M217 269.3l.6.6-.7-.6z"/>
+    <path fill="#003994" d="M243 269.3c0 3.3.3 5 4.2 5.3.6-3.6-.6-4.6-4.3-5.4z"/>
+    <path fill="#002984" d="M244.3 269.3l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M245 269.3l.8.6-.7-.6z"/>
+    <path fill="#10214a" d="M245.8 269.3l.7.6-.7-.6z"/>
+    <path fill="#636b7b" d="M246.5 269.3l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M247.2 269.3l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M247.9 269.3l.7.6-.7-.6z"/>
+    <path fill="#31425a" d="M248.6 269.3l.7.6-.7-.6z"/>
+    <path fill="#21315a" d="M251.4 269.3l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M252.8 269.3l.7.6-.7-.6z"/>
+    <path fill="#ce1810" d="M253.5 269.3l.7.6-.7-.6z"/>
+    <path fill="#420000" d="M257 269.3l.7.6-.7-.6z"/>
+    <path fill="#ce0008" d="M257.7 269.3l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M258.4 269.3l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M260.5 269.3l.7.6-.7-.6z"/>
+    <path fill="#63636b" d="M261.2 269.3l.7.6-.7-.6z"/>
+    <path fill="#21315a" d="M262 269.3l.6.6-.7-.6z"/>
+    <path fill="#00216b" d="M262.6 269.3l.7.6-.7-.6z"/>
+    <path fill="#002984" d="M263.4 269.3l.7.6-.8-.6z"/>
+    <path fill="#003994" d="M259.1 270.6c1.7 5.8 6.3 4 6.3-1.4l-6.3 1.4z"/>
+    <path fill="#efefef" d="M290 269.3l.8.6-.7-.6z"/>
+    <path fill="#185200" d="M290.8 269.3l.7.6-.7-.6z"/>
+    <path fill="#425242" d="M291.5 269.3l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M292.2 269.3l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M292.9 269.3l.7.6-.7-.6m2.8 0l.7.6-.7-.6zm9.9 0l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M309 269.3l.8.6-.7-.6z"/>
+    <path fill="#214210" d="M313.3 269.3l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M314 269.3l-.7 1.3.7-1.4z"/>
+    <path fill="#5a6b52" d="M188.8 270l.7.6-.7-.7z"/>
+    <path fill="#397b00" d="M190.9 270l.7.6-.7-.7z"/>
+    <path fill="#295200" d="M191.6 270l.7.6-.7-.7m2.8 0l.7.7-.7-.7m4.2 0l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M203.6 270l.7.6-.8-.7z"/>
+    <path fill="#cecece" d="M205.7 270l2 2-2-2z"/>
+    <path fill="#397b00" d="M212.7 270l.7.6-.7-.7z"/>
+    <path fill="#214210" d="M216.2 270l-.7 1.3.7-1.4z"/>
+    <path fill="#cecece" d="M217 270l-.8 1.3.7-1.4z"/>
+    <path fill="#002984" d="M247.2 270l.7.6-.7-.7z"/>
+    <path fill="#001039" d="M247.9 270l.7.6-.7-.7z"/>
+    <path fill="#00184a" d="M248.6 270l.7.6-.7-.7z"/>
+    <path fill="#7b7373" d="M251.4 270l.7.6-.7-.7z"/>
+    <path fill="#b5adad" d="M252.8 270l.7.6-.7-.7z"/>
+    <path fill="#6b0808" d="M257 270l.7.6-.7-.7z"/>
+    <path fill="#de2110" d="M257.7 270l.7.6-.7-.7z"/>
+    <path fill="#524242" d="M258.4 270l.7.6-.7-.7z"/>
+    <path fill="#525a6b" d="M259.1 270l.7.6-.7-.7z"/>
+    <path fill="#00184a" d="M259.8 270l.7.6-.7-.7z"/>
+    <path fill="#002984" d="M260.5 270l.7.6-.7-.7z"/>
+    <path fill="#395231" d="M290.8 270l.7.6-.7-.7z"/>
+    <path fill="#296300" d="M291.5 270l.7.6-.7-.7z"/>
+    <path fill="#9c9494" d="M292.2 270l.7.6-.7-.7z"/>
+    <path fill="#5a6b52" d="M292.9 270l.7.6-.7-.7z"/>
+    <path fill="#185200" d="M295.7 270l1.4 1.3-1.4-1.4z"/>
+    <path fill="#297b00" d="M296.4 270l.7.6-.7-.7z"/>
+    <path fill="#103900" d="M298.8 270.4l.2.4-.2-.4z"/>
+    <path fill="#297b00" d="M299.2 270l.7.6-.7-.7z"/>
+    <path fill="#103900" d="M304.9 270l.7.6-.8-.7z"/>
+    <path fill="#296300" d="M308.4 270l.7.6-.7-.7z"/>
+    <path fill="#103900" d="M312.6 270l.7.6-.7-.7z"/>
+    <path fill="#9c9494" d="M188.8 270.6l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M191.6 270.6l.7.7-.7-.7m3 .4l.3.5-.3-.5z"/>
+    <path fill="#295200" d="M196.5 270.6l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M204.3 270.6l.6.7-.7-.7z"/>
+    <path fill="#397b00" d="M207.8 270.6l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M208.5 270.6l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M212 270.6l.7.7-.7-.7z"/>
+    <path fill="#00215a" d="M247.9 270.6l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M248.6 270.6l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M250.7 270.6l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M251.4 270.6l.7.7-.7-.7z"/>
+    <path fill="#ad0008" d="M257.7 270.6l.7.7-.7-.7z"/>
+    <path fill="#390821" d="M258.4 270.6l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M290.8 270.6l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M291.5 270.6l.7.7-.7-.7z"/>
+    <path fill="#103910" d="M292.2 270.6l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M292.9 270.6l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M293.6 270.6l.7.7-.7-.7m2.1 0l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M300 270.6l.6.7-.7-.7z"/>
+    <path fill="#185200" d="M301.3 270.6l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M304.1 270.6l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M307.7 270.6l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M311.9 270.6l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M312.6 270.6l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M188.8 271.3l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M189.5 271.3l.7.6-.7-.6m2.8 0l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M196.5 271.3l.7.6-.7-.6z"/>
+    <path fill="#6b735a" d="M202.8 271.3l.7.6-.7-.6z"/>
+    <path fill="#214210" d="M204.3 271.3l1.3 1.3-1.3-1.3z"/>
+    <path fill="#cecece" d="M205 271.3l1.4 1.3-1.4-1.3z"/>
+    <path fill="#001000" d="M207.8 271.3l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M210.6 271.3l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M211.3 271.3l.7.6-.7-.6m2.1 0l.7.6-.7-.6z"/>
+    <path fill="#214210" d="M214.1 271.3l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M214.8 271.3l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M215.5 271.3l.7.6-.7-.6z"/>
+    <path fill="#001039" d="M247.9 271.3l.7.6-.7-.6z"/>
+    <path fill="#00184a" d="M250.7 271.3l.7.6-.7-.6z"/>
+    <path fill="#7b0008" d="M257 271.3l.7.6-.7-.6m1.4 0l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M289.1 271.5l.5.2-.5-.2z"/>
+    <path fill="#9c9494" d="M290.8 271.3l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M292 271.5l.4.2-.4-.2z"/>
+    <path fill="#7b7373" d="M292.9 271.3l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M293.6 271.3l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M296.6 271.7l.3.5-.3-.5m2.1 0l.3.5-.2-.5z"/>
+    <path fill="#296300" d="M300 271.3l.6.6-.7-.6m1.4 0l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M303.4 271.3l.8.6-.8-.6z"/>
+    <path fill="#297b00" d="M307 271.3l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M311.2 271.3l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M311.9 271.3l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M314.7 271.3l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M315.4 271.3l.7.6-.7-.6z"/>
+    <path fill="#214210" d="M316.1 271.3l.7.6-.7-.6z"/>
+    <path fill="#395231" d="M316.8 271.3l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M317.5 271.3l.7.6-.7-.6z"/>
+    <path fill="#5a5231" d="M189.5 272l.7.6-.7-.7z"/>
+    <path fill="#294200" d="M192.3 272l.7.6-.7-.7z"/>
+    <path fill="#295200" d="M194.4 272l1.4 1.3-1.4-1.4z"/>
+    <path fill="#397b00" d="M195.1 272l.7.6-.7-.7m3.5 0l-.7 1.4h1.4l-.7-1.4z"/>
+    <path fill="#396b10" d="M201.4 272l.7.6-.7-.7z"/>
+    <path fill="#526b42" d="M203 272.4l.3.4-.2-.4z"/>
+    <path fill="#efefef" d="M207 272l-.6 1.3.7-1.4z"/>
+    <path fill="#294200" d="M207.8 272l.7.6-.7-.7m2.3.5l.3.4-.3-.4z"/>
+    <path fill="#295200" d="M210.6 272l.7.6-.7-.7z"/>
+    <path fill="#294200" d="M212 272l.7.6-.7-.7z"/>
+    <path fill="#63636b" d="M212.7 272l.7.6-.7-.7z"/>
+    <path fill="#ada5a5" d="M213.4 272l.7.6-.7-.7z"/>
+    <path fill="#00184a" d="M247.9 272l.7.6-.7-.7z"/>
+    <path fill="#31425a" d="M250.7 272l.7.6-.7-.7z"/>
+    <path fill="#6b0808" d="M258 272.4l.2.4-.2-.4z"/>
+    <path fill="#bd0008" d="M258.4 272l.7.6-.7-.7z"/>
+    <path fill="#00215a" d="M259.1 272l.7.6-.7-.7z"/>
+    <path fill="#bdbdbd" d="M288.7 272l.7.6-.7-.7z"/>
+    <path fill="#7b7373" d="M289.4 272l.7.6-.7-.7z"/>
+    <path fill="#dedede" d="M290.8 272l.7.6-.7-.7z"/>
+    <path fill="#185200" d="M291.5 272l.7.6-.7-.7z"/>
+    <path fill="#184a00" d="M292.9 272l.7.6-.7-.7z"/>
+    <path fill="#314231" d="M293.6 272l.7.6-.7-.7z"/>
+    <path fill="#184a00" d="M301.3 272v2.6h.7l-.7-2.7z"/>
+    <path fill="#185200" d="M303.2 272.1l.5.3-.5-.2m2.4-.3l-1.5 2 1.4-2z"/>
+    <path fill="#296300" d="M306.3 272l.7.6-.7-.7z"/>
+    <path fill="#297b00" d="M310.5 272l-1.4 3.3h.7l.7-3.4z"/>
+    <path fill="#63636b" d="M311.2 272l.7.6-.7-.7z"/>
+    <path fill="#9c9494" d="M313.3 272l.7.6-.7-.7z"/>
+    <path fill="#425242" d="M314 272l.7.6-.7-.7z"/>
+    <path fill="#185200" d="M314.7 272l.7.6-.7-.7z"/>
+    <path fill="#297b00" d="M315.4 272l.7.6-.7-.7z"/>
+    <path fill="#184a00" d="M317.5 272l.7.6-.7-.7z"/>
+    <path fill="#cecece" d="M318.2 272l.7.6-.7-.7z"/>
+    <path fill="#8c8c8c" d="M189.5 272.6l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M192.8 272.8l.4.2-.4-.2z"/>
+    <path fill="#526b42" d="M201.4 272.6l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M204 272.8l.5.2-.5-.2z"/>
+    <path fill="#314231" d="M205.7 272.6l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M207 272.6l-.6 1.3.7-1.3z"/>
+    <path fill="#397b00" d="M209.2 272.6v2l2-2h-2z"/>
+    <path fill="#5a6b52" d="M211.3 272.6l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M212 272.6l.7.7-.7-.7z"/>
+    <path fill="#525a6b" d="M242.2 272.6l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M247.6 272.8l.5.2-.5-.2z"/>
+    <path fill="#7b7373" d="M250.7 272.6l.7.7-.7-.7z"/>
+    <path fill="#de2110" d="M258.7 273l.2.5-.2-.5z"/>
+    <path fill="#390821" d="M259.1 272.6l.7.7-.7-.7z"/>
+    <path fill="#00215a" d="M280.2 272.6l.7.7-.7-.7z"/>
+    <path fill="#292921" d="M289.4 272.6l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M291.5 272.6l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M292.9 272.6l.7.7-.7-.7z"/>
+    <path fill="#001000" d="M293.6 272.6l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M294.3 272.6l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M296.9 272.8l.5.2-.5-.2z"/>
+    <path fill="#185200" d="M298.5 272.6l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M302.7 272.6l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M310.5 272.6l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M311.2 272.6l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M311.9 272.6l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M312.6 272.6l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M313.3 272.6l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M318.2 272.6l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M189.5 273.3l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M190.2 273.3l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M193 273.3l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M195.1 273.3l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M198 273.3l.6.6-.7-.6z"/>
+    <path fill="#6b735a" d="M201.4 273.3l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M202.8 273.3l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M204.5 273.7l.2.5-.2-.5z"/>
+    <path fill="#315221" d="M207 273.3l.8.6-.7-.6z"/>
+    <path fill="#103900" d="M209.2 273.3l.7.6-.7-.6z"/>
+    <path fill="#63636b" d="M210.6 273.3l-.7 1.3.7-1.3z"/>
+    <path fill="#292921" d="M212 273.3l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M212.7 273.3l.7.6-.7-.6z"/>
+    <path fill="#733939" d="M220.4 273.3l.7.6-.7-.6z"/>
+    <path fill="#bd2110" d="M227.5 273.3l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M242.2 273.3l.7.6-.7-.6z"/>
+    <path fill="#002984" d="M250 273.3l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M250.7 273.3l.7.6-.7-.6z"/>
+    <path fill="#b51010" d="M257 273.3l.7.6-.7-.6z"/>
+    <path fill="#520808" d="M257.7 273.3l.7.6-.7-.6z"/>
+    <path fill="#7b0008" d="M259.1 273.3l.7.6-.7-.6z"/>
+    <path fill="#636b7b" d="M265.5 273.3l.7.6-.7-.6z"/>
+    <path fill="#002984" d="M280.5 273.7l.2.5-.2-.5z"/>
+    <path fill="#001000" d="M289.4 273.3l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M290 273.3l.8.6-.7-.6z"/>
+    <path fill="#6b735a" d="M291.5 273.3l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M294 273.5l.5.2-.4-.2z"/>
+    <path fill="#103900" d="M297.1 273.3l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M299.2 273.3l.7.6-.7-.6z"/>
+    <path fill="#293129" d="M309.8 273.3l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M310.5 273.3l.7.6-.7-.6z"/>
+    <path fill="#214210" d="M311.2 273.3l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M311.9 273.3l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M318.2 273.3l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M319 273.3l.6.6-.7-.6z"/>
+    <path fill="#314231" d="M190.2 274l.7.6-.7-.7z"/>
+    <path fill="#295200" d="M193 274l.7.6-.7-.7z"/>
+    <path fill="#397b00" d="M195.1 274l.7.6-.7-.7z"/>
+    <path fill="#295200" d="M195.8 274l.7.6-.7-.7z"/>
+    <path fill="#294200" d="M198 274l.6.6-.7-.7z"/>
+    <path fill="#8c8c8c" d="M201.7 274.4l.2.4-.2-.4m1.1-.5l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M206.4 274l.7.6-.7-.7z"/>
+    <path fill="#397b00" d="M207 274l-.6 3.3h.7v-3.4z"/>
+    <path fill="#294200" d="M208.7 274.4l.2.4-.2-.4z"/>
+    <path fill="#bdbdbd" d="M211.3 274l.7.6-.7-.7z"/>
+    <path fill="#294200" d="M212.2 274.4l.3.4-.3-.4z"/>
+    <path fill="#bdbdbd" d="M212.7 274l.7.6-.7-.7m5.6 0l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M219 274l.7.6-.7-.7z"/>
+    <path fill="#315221" d="M219.7 274l.7.6-.7-.7z"/>
+    <path fill="#310000" d="M220.4 274l.7.6-.7-.7z"/>
+    <path fill="#a51008" d="M228.2 274l.7.6-.7-.7z"/>
+    <path fill="#845a52" d="M236.6 274l.7.6-.7-.7z"/>
+    <path fill="#dedede" d="M242.2 274l.7.6-.7-.7z"/>
+    <path fill="#10214a" d="M243 274l.6.6-.7-.7z"/>
+    <path fill="#00216b" d="M250 274l.7.6-.7-.7z"/>
+    <path fill="#bdbdbd" d="M250.7 274l.7.6-.7-.7z"/>
+    <path fill="#a51008" d="M257 274l.7.6-.7-.7z"/>
+    <path fill="#940008" d="M257.7 274l1.4 1.3-1.4-1.4z"/>
+    <path fill="#bd0008" d="M258.9 274.2l.5.2-.5-.2z"/>
+    <path fill="#00215a" d="M259.8 274l.7.6-.7-.7z"/>
+    <path fill="#10214a" d="M264.8 274l.6.6-.6-.7z"/>
+    <path fill="#cecece" d="M265.5 274l-.7 1.3.7-1.4z"/>
+    <path fill="#103900" d="M289.4 274l.7.6-.7-.7z"/>
+    <path fill="#8c8c8c" d="M290 274l.8.6-.7-.7z"/>
+    <path fill="#9c9494" d="M291.5 274l.7.6-.7-.7z"/>
+    <path fill="#297b00" d="M292.2 274l.7.6-.7-.7z"/>
+    <path fill="#103900" d="M294.3 274l.7.6-.7-.7z"/>
+    <path fill="#184a00" d="M297.1 274l.7.6-.7-.7zm7 0l.8.6-.7-.7z"/>
+    <path fill="#103900" d="M309 274l.8.6-.7-.7z"/>
+    <path fill="#184a00" d="M309.8 274l.7.6-.7-.7z"/>
+    <path fill="#297b00" d="M310.5 274l.7.6-.7-.7m6 .3l.6.2-.5-.2m1.6-.3l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M319 274l.6.6-.7-.7z"/>
+    <path fill="#bdbdbd" d="M190.2 274.6l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M190.9 274.6l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M193.7 274.6l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M195.8 274.6l1.4 1.3-1.4-1.3z"/>
+    <path fill="#397b00" d="M196.5 274.6l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M198 274.6l-.8 2 .7-2z"/>
+    <path fill="#bdbdbd" d="M202.8 274.6l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M203.6 274.6l.7.7-.8-.7z"/>
+    <path fill="#295200" d="M205 274.6l.7.7-.7-.7z"/>
+    <path fill="#738c63" d="M209.2 274.6l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M210.6 274.6l-2.8 3.4 2.8-3.4z"/>
+    <path fill="#214210" d="M211.3 274.6l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M213 275l.2.5-.3-.5z"/>
+    <path fill="#efefef" d="M215.5 274.6l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M216.2 274.6l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M217 274.6l.6.7-.7-.7z"/>
+    <path fill="#294200" d="M217.6 274.6v2h.7l-.7-2z"/>
+    <path fill="#397b00" d="M218.8 274.8l.5.2-.5-.2z"/>
+    <path fill="#214210" d="M219.7 274.6l.7.7-.7-.7z"/>
+    <path fill="#733939" d="M220.4 274.6l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M228.2 274.6l.7.7-.7-.7z"/>
+    <path fill="#943131" d="M236.6 274.6l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M243 274.6l.6.7-.7-.7z"/>
+    <path fill="#636b7b" d="M243.7 274.6l.7.7-.8-.7z"/>
+    <path fill="#10295a" d="M244.3 274.6l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M245.5 274.8l.5.2-.5-.2z"/>
+    <path fill="#001039" d="M246.5 274.6l.7.7-.7-.7z"/>
+    <path fill="#00215a" d="M250 274.6l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M250.7 274.6l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M257 274.6l.7.7-.7-.7z"/>
+    <path fill="#bd0008" d="M257.7 274.6l.7.7-.7-.7z"/>
+    <path fill="#de2110" d="M259.1 274.6l2.8 7.4-2.8-7.4z"/>
+    <path fill="#391810" d="M259.8 274.6l.7.7-.7-.7z"/>
+    <path fill="#636b7b" d="M260.5 274.6l.7.7-.7-.7z"/>
+    <path fill="#21315a" d="M261.2 274.6l.7.7-.7-.7z"/>
+    <path fill="#525a6b" d="M264 274.6l.8.7-.8-.7z"/>
+    <path fill="#9c4a42" d="M271 274.6l.8.7-.7-.7z"/>
+    <path fill="#ce1810" d="M279.5 274.6l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M289.6 275l.2.5-.2-.5z"/>
+    <path fill="#395231" d="M290 274.6l.8.7-.7-.7z"/>
+    <path fill="#dedede" d="M291.5 274.6l-.7 1.3.7-1.3z"/>
+    <path fill="#296300" d="M292.2 274.6l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M294.3 274.6l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M297.1 274.6l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M303.4 274.6l.8.7-.8-.7z"/>
+    <path fill="#296300" d="M307.9 275l.2.5-.2-.5z"/>
+    <path fill="#103900" d="M308.4 274.6l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M314.7 274.6l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M315.4 274.6l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M316.1 274.6l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M316.8 274.6l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M317.5 274.6l1.4 1.3-1.4-1.3z"/>
+    <path fill="#315221" d="M319 274.6l.6.7-.7-.7z"/>
+    <path fill="#7b7373" d="M190.9 275.3l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M191.6 275.3l1.4 1.3-1.4-1.3m2.1 0l2.1 1.3v-.7l-2.1-.6z"/>
+    <path fill="#294200" d="M194.4 275.3l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M197.2 275.3l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M201.4 275.3l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M202.8 275.3l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M203.6 275.3l.7.6-.8-.6z"/>
+    <path fill="#294200" d="M205 275.3v2h.7l-.7-2z"/>
+    <path fill="#295200" d="M207.8 275.3l.7.6-.7-.6z"/>
+    <path fill="#396b10" d="M208.5 275.3l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M209.2 275.3l.7.6-.7-.6z"/>
+    <path fill="#214210" d="M210.6 275.3l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M212 275.3l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M214.1 275.3l-.7 1.3.7-1.3z"/>
+    <path fill="#63636b" d="M214.8 275.3l.7.6-.7-.6z"/>
+    <path fill="#396b10" d="M215.5 275.3l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M219 275.3l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M219.7 275.3l.7.6-.7-.6z"/>
+    <path fill="#ad1810" d="M228.2 275.3l.7.6-.7-.6z"/>
+    <path fill="#a51008" d="M236.6 275.3l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M246.5 275.3l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M247.2 275.3l.7.6-.7-.6z"/>
+    <path fill="#00184a" d="M250 275.3l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M252.8 275.3l.7.6-.7-.6z"/>
+    <path fill="#a51008" d="M257 275.3l.7.6-.7-.6z"/>
+    <path fill="#6b0808" d="M258.7 275.7l.2.5-.2-.5z"/>
+    <path fill="#7b0008" d="M259.8 275.3l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M260.5 275.3l.7.6-.7-.6z"/>
+    <path fill="#ad3931" d="M271 275.3l.8.6-.7-.6z"/>
+    <path fill="#842118" d="M279.5 275.3l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M290 275.3l.8.6-.7-.6z"/>
+    <path fill="#184a00" d="M292.2 275.3l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M294.8 275.5l.4.2-.4-.2z"/>
+    <path fill="#185200" d="M299.2 275.3l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M306.3 275.3l1.4 1.3-1.4-1.3z"/>
+    <path fill="#103900" d="M307 275.3l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M313.3 275.3l.7.6-.7-.6z"/>
+    <path fill="#425242" d="M314 275.3l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M314.7 275.3l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M317.5 275.3l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M319 275.3l.6.6-.7-.6z"/>
+    <path fill="#cecece" d="M319.6 275.3l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M324.6 275.3l.6.6-.6-.6z"/>
+    <path fill="#8c8c8c" d="M325.5 275.7l.2.5-.2-.5z"/>
+    <path fill="#63636b" d="M191.6 276l.7.6-.7-.7z"/>
+    <path fill="#001000" d="M198 276l.6.6-.7-.7z"/>
+    <path fill="#397b00" d="M200.7 276l.7.6-.7-.7z"/>
+    <path fill="#bdbdbd" d="M201.4 276l.7.6-.7-.7z"/>
+    <path fill="#294200" d="M203.6 276l.7.6-.8-.7z"/>
+    <path fill="#103900" d="M207.8 276l.7.6-.7-.7z"/>
+    <path fill="#bdc6ad" d="M208.5 276l.7.6-.7-.7z"/>
+    <path fill="#214210" d="M209.9 276l.7.6-.7-.7z"/>
+    <path fill="#295200" d="M211.3 276l.7.6-.7-.7z"/>
+    <path fill="#526b42" d="M213 276.4l.2.4-.3-.4z"/>
+    <path fill="#314231" d="M214.1 276l.7.6-.7-.7z"/>
+    <path fill="#397b00" d="M218.3 276l.7.6-.7-.7z"/>
+    <path fill="#214210" d="M219 276l.7.6-.7-.7z"/>
+    <path fill="#ce2110" d="M228.2 276l.7.6-.7-.7z"/>
+    <path fill="#ce1810" d="M236.6 276l.7.6-.7-.7z"/>
+    <path fill="#a59494" d="M237.3 276l.7.6-.7-.7z"/>
+    <path fill="#9c9494" d="M246.5 276l.7.6-.7-.7z"/>
+    <path fill="#002984" d="M247.2 276l.7.6-.7-.7z"/>
+    <path fill="#10295a" d="M250 276l.7.6-.7-.7z"/>
+    <path fill="#c6b5b5" d="M252.8 276l.7.6-.7-.7z"/>
+    <path fill="#ce1810" d="M253.7 276.4l.3.4-.3-.4z"/>
+    <path fill="#bd0008" d="M259.8 276l.7.6-.7-.7z"/>
+    <path fill="#8c8c8c" d="M260.5 276l.7.6-.7-.7z"/>
+    <path fill="#debdb5" d="M270.4 276l.7.6-.7-.7z"/>
+    <path fill="#ce1810" d="M271 276l.8.6-.7-.7z"/>
+    <path fill="#00184a" d="M279.5 276l.7.6-.7-.7z"/>
+    <path fill="#5a7b42" d="M289.4 276l.7.6-.7-.7z"/>
+    <path fill="#297b00" d="M290 276l.8.6-.7-.7z"/>
+    <path fill="#8c8c8c" d="M290.8 276l.7.6-.7-.7z"/>
+    <path fill="#315221" d="M292.2 276l.7.6-.7-.7z"/>
+    <path fill="#297b00" d="M294.3 276l.7.6-.7-.7z"/>
+    <path fill="#184a00" d="M295 276v2h.7l-.7-2z"/>
+    <path fill="#185200" d="M298 276.4l.3.4-.2-.4z"/>
+    <path fill="#296300" d="M299.2 276l.7.6-.7-.7z"/>
+    <path fill="#184a00" d="M302 276l.7.6-.7-.7z"/>
+    <path fill="#185200" d="M305.6 276l.7.6-.7-.7z"/>
+    <path fill="#184a00" d="M306.3 276l.7.6-.7-.7z"/>
+    <path fill="#296300" d="M311.9 276l.7.6-.7-.7z"/>
+    <path fill="#395231" d="M312.6 276l.7.6-.7-.7z"/>
+    <path fill="#bdbdbd" d="M313.3 276l.7.6-.7-.7z"/>
+    <path fill="#63636b" d="M318.2 276l.7.6-.7-.7z"/>
+    <path fill="#297b00" d="M319 276l.6.6-.7-.7z"/>
+    <path fill="#63636b" d="M319.6 276l.7.6-.7-.7z"/>
+    <path fill="#dedede" d="M322.4 276l.7.6-.7-.7z"/>
+    <path fill="#8c8c8c" d="M323.1 276l.7.6-.7-.7z"/>
+    <path fill="#314231" d="M323.9 276l.7.6-.8-.7z"/>
+    <path fill="#001000" d="M324.6 276l.6.6-.6-.7z"/>
+    <path fill="#8c8c8c" d="M192.3 276.6l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M193 276.6l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M198 276.6l.6.7-.7-.7z"/>
+    <path fill="#294200" d="M198.9 277l.2.5-.2-.4z"/>
+    <path fill="#8c8c8c" d="M201.4 276.6l.7.7-.7-.7z"/>
+    <path fill="#5a5231" d="M203.6 276.6l.7.7-.8-.7z"/>
+    <path fill="#295200" d="M207 276.6l-.6 1.3.7-1.3z"/>
+    <path fill="#425242" d="M207.8 276.6l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M209.2 276.6l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M211.3 276.6l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M213.4 276.6l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M217 276.6l.6.7-.7-.7z"/>
+    <path fill="#397b00" d="M217.6 276.6l.7.7-.7-.7z"/>
+    <path fill="#6b735a" d="M219 276.6l.7.7-.7-.7z"/>
+    <path fill="#a51008" d="M228.9 276.6l.7.7-.7-.7z"/>
+    <path fill="#842118" d="M237.3 276.6l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M246.5 276.6l.7.7-.7-.7z"/>
+    <path fill="#42425a" d="M250 276.6v5.4h.7l-.7-5.4z"/>
+    <path fill="#bdbdbd" d="M252.8 276.6l.7.7-.7-.7z"/>
+    <path fill="#a51008" d="M257 276.6l.7.7-.7-.7z"/>
+    <path fill="#ad0008" d="M259.1 276.6l.7.7-.7-.7z"/>
+    <path fill="#733939" d="M260.5 276.6l.7.7-.7-.7z"/>
+    <path fill="#9c4239" d="M270.4 276.6l.7.7-.7-.7z"/>
+    <path fill="#ce1810" d="M278.8 276.6l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M288 276.6l1.4 1.3-1.4-1.3z"/>
+    <path fill="#4a6342" d="M289.6 277l.2.5-.2-.4z"/>
+    <path fill="#314231" d="M290.8 276.6l.7.7-.7-.7z"/>
+    <path fill="#4a6342" d="M292.2 276.6l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M301.3 276.6l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M302 276.6l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M304.9 276.6l.7.7-.8-.7z"/>
+    <path fill="#296300" d="M305.6 276.6l.7.7-.7-.7m4.9 0l.7.7-.7-.7z"/>
+    <path fill="#294221" d="M311.2 276.6l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M311.9 276.6l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M319 276.6l.6.7-.7-.7z"/>
+    <path fill="#52525a" d="M319.6 276.6l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M320.3 276.6l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M321 276.6l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M321.7 276.6l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M322.7 277l.2.5-.2-.4z"/>
+    <path fill="#296300" d="M323.1 276.6l.7.7-.7-.7z"/>
+    <path fill="#294221" d="M323.9 276.6l.7.7-.8-.7z"/>
+    <path fill="#bdbdbd" d="M324.6 276.6l.6.7-.6-.7z"/>
+    <path fill="#efefef" d="M193 277.3l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M193.7 277.3l.7.6-.7-.6z"/>
+    <path fill="#5a5231" d="M194.4 277.3l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M195.1 277.3l.7.6-.7-.6z"/>
+    <path fill="#5a6b52" d="M201.4 277.3l.7.6-.7-.6z"/>
+    <path fill="#526b42" d="M203.6 277.3l.7.6-.8-.6z"/>
+    <path fill="#213918" d="M207 277.3l.8.6-.7-.6z"/>
+    <path fill="#315221" d="M208.5 277.3l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M210.6 277.3l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M211.3 277.3l.7.6-.7-.6z"/>
+    <path fill="#292100" d="M212.7 277.3l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M213.4 277.3l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M216.2 277.3l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M217 277.3l.6.6-.7-.6m1.4 0l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M219 277.3l.7.6-.7-.6z"/>
+    <path fill="#ad1810" d="M228.9 277.3l.7.6-.7-.6z"/>
+    <path fill="#ce1810" d="M237.3 277.3l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M238 277.3l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M246.5 277.3l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M252.8 277.3l.7.6-.7-.6z"/>
+    <path fill="#b51010" d="M253.5 277.3l.7.6-.7-.6z"/>
+    <path fill="#ad0008" d="M257.7 277.3l.7.6-.7-.6z"/>
+    <path fill="#bd0008" d="M258.4 277.3l.7.6-.7-.6z"/>
+    <path fill="#7b0008" d="M259.1 277.3l.7.6-.7-.6z"/>
+    <path fill="#940008" d="M260.5 277.3l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M261.2 277.3l.7.6-.7-.6z"/>
+    <path fill="#a5847b" d="M269.7 277.3l-.7 1.3.7-1.3z"/>
+    <path fill="#ce1810" d="M270.4 277.3l.7.6-.7-.6z"/>
+    <path fill="#392121" d="M278.8 277.3l.7.6-.7-.6z"/>
+    <path fill="#103910" d="M288 277.3l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M290.8 277.3l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M291.5 277.3l.7.6-.7-.6z"/>
+    <path fill="#6b735a" d="M292.2 277.3l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M298 277.7l.3.5-.2-.5z"/>
+    <path fill="#297b00" d="M300.6 277.3l1.4 1.3-1.4-1.3z"/>
+    <path fill="#103900" d="M301.3 277.3l.7.6-.7-.6m2.8 0l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M309 277.3l.8.6-.7-.6z"/>
+    <path fill="#214210" d="M309.8 277.3l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M310.5 277.3l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M316.6 277.5l.4.2-.4-.2z"/>
+    <path fill="#8c8c8c" d="M317.5 277.3l.7.6-.7-.6z"/>
+    <path fill="#6b735a" d="M318.2 277.3l.7.6-.7-.6z"/>
+    <path fill="#4a6342" d="M319 277.3l.6.6-.7-.6z"/>
+    <path fill="#184a00" d="M319.6 277.3l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M320.3 277.3l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M321 277.3l-.7 1.3.7-1.3z"/>
+    <path fill="#319400" d="M321.7 277.3l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M323.1 277.3l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M323.9 277.3l.7.6-.8-.6z"/>
+    <path fill="#dedede" d="M195.1 278l.7.6-.7-.7z"/>
+    <path fill="#8c8c8c" d="M195.8 278l.7.6-.7-.7z"/>
+    <path fill="#5a5231" d="M196.5 278l.7.6-.7-.7z"/>
+    <path fill="#295200" d="M197.2 278l.7.6-.7-.7m2.1 0l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M201.4 278l.7.6-.7-.7z"/>
+    <path fill="#292100" d="M206.4 278l.7.6-.7-.7z"/>
+    <path fill="#8c8c8c" d="M207 278l.8.6-.7-.7z"/>
+    <path fill="#63636b" d="M207.8 278l.7.6-.7-.7z"/>
+    <path fill="#294200" d="M210.6 278l.7.6-.7-.7m2 0l.8.7-.7-.7z"/>
+    <path fill="#397b00" d="M215.5 278l.7.6-.7-.7z"/>
+    <path fill="#294200" d="M216.2 278l.7.6-.7-.7m2.1 0l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M229.6 278l.7.6-.7-.7z"/>
+    <path fill="#b51010" d="M238 278l1.4 1.3-1.4-1.4z"/>
+    <path fill="#a59494" d="M238.7 278l.7.6-.7-.7z"/>
+    <path fill="#a51008" d="M253.5 278l.7.6-.7-.7z"/>
+    <path fill="#de2110" d="M258.4 278v9.3h2.1l-2-9.4z"/>
+    <path fill="#6b0808" d="M259.4 278.4l.2.5-.2-.5z"/>
+    <path fill="#ce0008" d="M260.5 278l.7.6-.7-.7z"/>
+    <path fill="#7b7373" d="M261.2 278l.7.6-.7-.7z"/>
+    <path fill="#ce1810" d="M269.7 278l.7.6-.7-.7z"/>
+    <path fill="#ad1810" d="M278.1 278l.7.6-.7-.7z"/>
+    <path fill="#5a6b52" d="M288 278l.7.6-.7-.7z"/>
+    <path fill="#185200" d="M288.7 278l.7.6-.7-.7z"/>
+    <path fill="#103910" d="M289.4 278l.7.6-.7-.7z"/>
+    <path fill="#297b00" d="M290.8 278l.7.6-.7-.7z"/>
+    <path fill="#9c9494" d="M291.5 278l.7.6-.7-.7z"/>
+    <path fill="#8c9c84" d="M292.4 278.4l.3.5-.3-.5z"/>
+    <path fill="#296300" d="M295 278l.7.6-.7-.7z"/>
+    <path fill="#297b00" d="M295.7 278l-.7 1.3.7-1.4z"/>
+    <path fill="#185200" d="M300.6 278l.7.6-.7-.7m2.1 0l-2 2.7 2-2.7z"/>
+    <path fill="#184a00" d="M303.4 278l.8.6-.8-.7z"/>
+    <path fill="#297b00" d="M307.7 278l.7.6-.7-.7z"/>
+    <path fill="#214210" d="M308.4 278l.7.6-.7-.7z"/>
+    <path fill="#8c8c8c" d="M309 278l.8.6-.7-.7z"/>
+    <path fill="#cecece" d="M309.8 278l.7.6-.7-.7z"/>
+    <path fill="#bdbdbd" d="M310.5 278l.7.6-.7-.7z"/>
+    <path fill="#8c8c8c" d="M311.6 278.2l.5.2-.5-.2z"/>
+    <path fill="#6b735a" d="M312.6 278l.7.6-.7-.7z"/>
+    <path fill="#4a6342" d="M313.3 278l.7.6-.7-.7z"/>
+    <path fill="#426331" d="M314 278l.7.6-.7-.7z"/>
+    <path fill="#184a00" d="M314.7 278l.7.6-.7-.7z"/>
+    <path fill="#185200" d="M315.4 278l.7.6-.7-.7z"/>
+    <path fill="#296300" d="M316.6 278.2l.4.2-.4-.2z"/>
+    <path fill="#184a00" d="M321 278l.7.6-.7-.7z"/>
+    <path fill="#63636b" d="M321.7 278l.7.6-.7-.7z"/>
+    <path fill="#dedede" d="M322.4 278l.7.6-.7-.7m-125.2.7l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M198 278.6l.6.7-.7-.7z"/>
+    <path fill="#103900" d="M198.6 278.6l.7.7-.7-.7z"/>
+    <path fill="#422100" d="M199.3 278.6l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M200 278.6l1.4 1.4-1.4-1.4z"/>
+    <path fill="#397b00" d="M201.4 278.6l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M202.1 278.6l.7.7-.7-.7z"/>
+    <path fill="#293129" d="M206.4 278.6l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M207 278.6l.8.7-.7-.7z"/>
+    <path fill="#295200" d="M207.8 278.6l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M209.9 278.6l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M212.7 278.6l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M215.5 278.6l.7.7-.7-.7z"/>
+    <path fill="#5a6b52" d="M218.3 278.6l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M229.6 278.6l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M230.3 278.6l1.4 2-1.4-2z"/>
+    <path fill="#8c7373" d="M239.4 278.6l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M240.1 278.6l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M253.5 278.6l.7.7-.7-.7z"/>
+    <path fill="#a51008" d="M258 279l.2.5-.2-.4z"/>
+    <path fill="#6b2131" d="M261.2 278.6l.7.7-.7-.7z"/>
+    <path fill="#946b63" d="M268.3 278.6l.7.7-.7-.7z"/>
+    <path fill="#ce1810" d="M269 278.6l.7.7-.7-.7m8.4 0l-.7 1.4.7-1.4z"/>
+    <path fill="#00216b" d="M278.1 278.6l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M288 278.6l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M288.7 278.6l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M289.4 278.6l.7.7-.7-.7z"/>
+    <path fill="#5a6b52" d="M291.5 278.6l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M296 279l.2.5-.3-.4m2-.5l.6.7-.7-.7z"/>
+    <path fill="#297b00" d="M306.3 278.6l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M307 278.6l.7.7-.7-.7z"/>
+    <path fill="#001000" d="M307.7 278.6l.7.7-.7-.7z"/>
+    <path fill="#395231" d="M308.4 278.6l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M309 278.6l.8.7-.7-.7z"/>
+    <path fill="#185200" d="M309.8 278.6l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M310.5 278.6l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M319 278.6l.6.7-.7-.7z"/>
+    <path fill="#184a00" d="M319.6 278.6l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M320.3 278.6l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M321 278.6l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M198 279.3l.6.7-.7-.7z"/>
+    <path fill="#bd2110" d="M198.6 279.3l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M200 279.3l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M202.1 279.3l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M205.7 279.3l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M206.4 279.3l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M207 279.3l.8.7-.7-.7z"/>
+    <path fill="#397b00" d="M209.7 279.5l.4.2-.4-.2m2.8 0l.4.2-.4-.2z"/>
+    <path fill="#103900" d="M214.8 279.3l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M217.6 279.3l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M218.3 279.3l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M240.1 279.3l.7.7-.7-.7z"/>
+    <path fill="#8c7373" d="M240.8 279.3l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M241.5 279.3l.7.7-.7-.7z"/>
+    <path fill="#943131" d="M253.7 279.7l.3.5-.3-.5z"/>
+    <path fill="#940008" d="M259.1 279.3l.7.7-.7-.7z"/>
+    <path fill="#ad0008" d="M259.8 279.3l.7.7-.7-.7z"/>
+    <path fill="#940008" d="M261.2 279.3l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M262 279.3l.6.7-.7-.7z"/>
+    <path fill="#a5847b" d="M266.9 279.3l.7.7-.7-.7z"/>
+    <path fill="#9c2118" d="M267.6 279.3l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M277.4 279.3l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M288.2 279.7l.2.5-.2-.5z"/>
+    <path fill="#297b00" d="M288.7 279.3v.7h2v-.7h-2z"/>
+    <path fill="#185200" d="M289.4 279.3l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M291.5 279.3l.7.7-.7-.7z"/>
+    <path fill="#395231" d="M292.2 279.3l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M297.8 279.3l.7.7-.7-.7m7.8 0l.7.7-.7-.7z"/>
+    <path fill="#082108" d="M306.3 279.3l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M307 279.3l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M317.5 279.3l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M318.2 279.3l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M319 279.3l.6.7-.7-.7z"/>
+    <path fill="#dedede" d="M319.6 279.3l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M198 280l.6.6-.7-.6z"/>
+    <path fill="#422100" d="M200.7 280l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M202.1 280l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M202.8 280l.7.6-.7-.6z"/>
+    <path fill="#214210" d="M205.7 280l.7.6-.7-.6z"/>
+    <path fill="#314231" d="M207 280l.8.6-.7-.6z"/>
+    <path fill="#294200" d="M209.2 280l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M212 280l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M214.1 280l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M214.8 280l.7.6-.7-.6z"/>
+    <path fill="#396b10" d="M217.6 280l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M218.3 280l.7.6-.7-.6z"/>
+    <path fill="#a51008" d="M231.7 280l.7.6-.7-.6m9.8 0l.7.6-.7-.6z"/>
+    <path fill="#9c2929" d="M242.2 280l.7.6-.7-.6z"/>
+    <path fill="#845a52" d="M243 280l.6.6-.7-.6z"/>
+    <path fill="#a59494" d="M243.7 280l.7.6-.8-.6z"/>
+    <path fill="#c6b5b5" d="M244.3 280l.7.6-.7-.6z"/>
+    <path fill="#8c7373" d="M245.5 280.2l.5.2-.5-.2z"/>
+    <path fill="#212139" d="M246.5 280l.7.6-.7-.6z"/>
+    <path fill="#b51010" d="M257.7 280l.7.6-.7-.6z"/>
+    <path fill="#ce0008" d="M259.1 280l.7.6-.7-.6z"/>
+    <path fill="#6b0808" d="M259.8 280l.7.6-.7-.6z"/>
+    <path fill="#ce0008" d="M261.2 280l.7.6-.7-.6z"/>
+    <path fill="#734a42" d="M262 280l.6.6-.7-.6z"/>
+    <path fill="#946b63" d="M262.6 280l.7.6-.7-.6z"/>
+    <path fill="#bd8c8c" d="M263.4 280l.7.6-.8-.6z"/>
+    <path fill="#a5847b" d="M264 280l.8.6-.8-.6z"/>
+    <path fill="#9c5a52" d="M264.8 280l.6.6-.6-.6z"/>
+    <path fill="#ad3931" d="M265.5 280l.7.6-.7-.6z"/>
+    <path fill="#b51010" d="M266.2 280l.7.6-.7-.6m9.8 0l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M276.7 280l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M288.7 280l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M290.3 280.4l.2.5-.2-.5z"/>
+    <path fill="#297b00" d="M291.5 280l.7.6-.7-.6z"/>
+    <path fill="#082108" d="M292.2 280l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M295.7 280v2h.7l-.7-2z"/>
+    <path fill="#103900" d="M304.9 280l.7.6-.8-.6z"/>
+    <path fill="#297b00" d="M315.4 280l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M316.1 280l.7.6-.7-.6z"/>
+    <path fill="#425242" d="M316.8 280l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M317.5 280l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M318.2 280l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M198 280.6l.6.7-.7-.7z"/>
+    <path fill="#7b1008" d="M198.6 280.6l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M200 280.6l.7.7-.7-.7z"/>
+    <path fill="#213918" d="M200.7 280.6l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M202.8 280.6l.7.7-.7-.7z"/>
+    <path fill="#5a6b52" d="M205.7 280.6l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M206.4 280.6l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M207 280.6l.8.7-.7-.7m2 0l.8.7-.7-.7m2 0l-1.3 2.7h.7l.7-2.7z"/>
+    <path fill="#397b00" d="M212 280.6l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M213.9 280.9l.4.2-.4-.2z"/>
+    <path fill="#397b00" d="M217 280.6l.6.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M217.6 280.6l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M231.7 280.6l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M232.4 280.6l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M246.5 280.6l.7.7-.7-.7z"/>
+    <path fill="#8c6363" d="M253.5 280.6l.7.7-.7-.7z"/>
+    <path fill="#a51008" d="M258 281l.2.5-.2-.4z"/>
+    <path fill="#520808" d="M259.8 280.6l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M262 280.6l.6.7-.7-.7z"/>
+    <path fill="#7b1008" d="M275.3 280.6l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M276 280.6l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M288.7 280.6l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M292.2 280.6l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M300.6 280.6l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M303.4 280.6l.8.7-.8-.7z"/>
+    <path fill="#103900" d="M304.1 280.6l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M314 280.6l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M314.7 280.6l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M315.4 280.6l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M316.1 280.6l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M198.6 281.3l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M199.3 281.3l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M200 281.3l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M200.7 281.3l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M201.4 281.3l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M202.8 281.3l.7.7-.7-.7z"/>
+    <path fill="#292921" d="M203.6 281.3l.7.7-.8-.7z"/>
+    <path fill="#8c8c8c" d="M205.7 281.3l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M206.4 281.3l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M207 281.3l.8.7-.7-.7z"/>
+    <path fill="#294200" d="M211.3 281.3l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M212.7 281.3l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M213.4 281.3l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M217 281.3l-1.5 2 1.4-2z"/>
+    <path fill="#ad1810" d="M233.1 281.3l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M233.8 281.3l.7.7-.7-.7z"/>
+    <path fill="#a51008" d="M246.5 281.3l.7.7-.7-.7z"/>
+    <path fill="#8c7373" d="M253.5 281.3l.7.7-.7-.7z"/>
+    <path fill="#6b0808" d="M259.8 281.3l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M262 281.3l.6.7-.7-.7z"/>
+    <path fill="#ad1810" d="M273.9 281.3l.7.7-.7-.7z"/>
+    <path fill="#291029" d="M274.6 281.3l.7.7-.7-.7z"/>
+    <path fill="#29396b" d="M287.3 281.3l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M288.7 281.3l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M290 281.3l.8.7-.7-.7z"/>
+    <path fill="#297b00" d="M290.8 281.3l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M292.2 281.3l.7.7-.7-.7m10.5 0l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M303.4 281.3l.8.7-.8-.7z"/>
+    <path fill="#297b00" d="M309 281.3l1.5 1.3-1.4-1.3z"/>
+    <path fill="#185200" d="M309.8 281.3l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M310.5 281.3v.7h2.8l-2.8-.7z"/>
+    <path fill="#185200" d="M313.3 281.3l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M314 281.3l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M314.7 281.3v.7h2.1l-2.1-.7z"/>
+    <path fill="#4a6342" d="M316.8 281.3v.7h2.1l-2-.7z"/>
+    <path fill="#7b8c73" d="M319 281.3l.6.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M319.6 281.3l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M320.3 281.3l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M198.6 282l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M201.4 282l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M203.6 282l.7.6-.8-.6z"/>
+    <path fill="#295200" d="M205 282l.7.6-.7-.6z"/>
+    <path fill="#5a1008" d="M205.7 282l.7.6-.7-.6z"/>
+    <path fill="#733939" d="M206.4 282l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M211.3 282l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M212 282l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M217 282l-.8 1.3.7-1.3z"/>
+    <path fill="#b51010" d="M234.5 282l.7.6-.7-.6z"/>
+    <path fill="#941808" d="M235.2 282l.7.6-.7-.6z"/>
+    <path fill="#b51010" d="M236 282l1.3 1.3-1.4-1.3z"/>
+    <path fill="#ce1810" d="M246.5 282l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M247.2 282l.7.6-.7-.6z"/>
+    <path fill="#425a84" d="M250 282l.7.6-.7-.6z"/>
+    <path fill="#b5adad" d="M253.5 282l.7.6-.7-.6z"/>
+    <path fill="#b51010" d="M257.7 282l.7.6-.7-.6z"/>
+    <path fill="#940008" d="M260.3 282.2l.5.2-.5-.2z"/>
+    <path fill="#ad0008" d="M261.2 282l.7.6-.7-.6z"/>
+    <path fill="#ad1810" d="M262 282l1.3 1.3-1.4-1.3z"/>
+    <path fill="#ce1810" d="M271.8 282l.7.6-.7-.6z"/>
+    <path fill="#ad1810" d="M272.5 282l.7.6-.7-.6z"/>
+    <path fill="#00184a" d="M273.2 282l.7.6-.7-.6z"/>
+    <path fill="#42425a" d="M287.3 282l.7.6-.7-.6z"/>
+    <path fill="#396321" d="M288.7 282l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M290.8 282v2h.7l-.7-2z"/>
+    <path fill="#296300" d="M292.2 282l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M292.9 282l-.7 1.3.7-1.3z"/>
+    <path fill="#296300" d="M295.7 282v3.3h1.4l-1.4-3.3z"/>
+    <path fill="#297b00" d="M296.4 282l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M302 282l-1.4 2 1.4-2z"/>
+    <path fill="#297b00" d="M302.7 282l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M307.9 282.4l.2.5-.2-.5z"/>
+    <path fill="#103900" d="M308.4 282l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M309 282l.8.6-.7-.6z"/>
+    <path fill="#297b00" d="M319 282l.6.6-.7-.6z"/>
+    <path fill="#184a00" d="M319.6 282l.7.6-.7-.6z"/>
+    <path fill="#313931" d="M320.3 282l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M198.6 282.6l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M199.3 282.6l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M200 282.6l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M201.4 282.6l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M202.1 282.6l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M204.5 283l.2.5-.2-.4z"/>
+    <path fill="#7b1008" d="M205 282.6l.7.7-.7-.7z"/>
+    <path fill="#de2110" d="M205.9 283l.2.5-.2-.4z"/>
+    <path fill="#631808" d="M206.6 283l.2.5-.2-.4z"/>
+    <path fill="#294200" d="M209.2 282.6l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M214.8 282.6l.7.7-.7-.7z"/>
+    <path fill="#946b63" d="M220.4 282.6l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M236 282.6l.6.7-.7-.7z"/>
+    <path fill="#941808" d="M237.3 282.6l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M238 282.6l.7.7-.7-.7z"/>
+    <path fill="#a51008" d="M238.7 282.6l.7.7-.7-.7z"/>
+    <path fill="#ce1810" d="M239.4 282.6v.7h5.7l-5.7-.7z"/>
+    <path fill="#941808" d="M245 282.6l.8.7-.7-.7z"/>
+    <path fill="#a51008" d="M245.8 282.6l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M246.5 282.6l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M247.2 282.6l.7.7-.7-.7m3 .5l.3.4-.3-.4z"/>
+    <path fill="#bdbdbd" d="M253.5 282.6l.7.7-.7-.7z"/>
+    <path fill="#ce1810" d="M254.4 283l.3.5-.3-.4z"/>
+    <path fill="#000818" d="M260.5 282.6l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M261.2 282.6l.7.7-.7-.7z"/>
+    <path fill="#080829" d="M262 282.6l.6.7-.7-.7z"/>
+    <path fill="#ce1810" d="M263.4 282.6l.7.7-.8-.7z"/>
+    <path fill="#b51010" d="M269 282.6l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M269.7 282.6l.7.7-.7-.7z"/>
+    <path fill="#5a1021" d="M270.4 282.6l.7.7-.7-.7z"/>
+    <path fill="#00215a" d="M271 282.6l.8.7-.7-.7z"/>
+    <path fill="#292921" d="M287.3 282.6l.7.7-.7-.7z"/>
+    <path fill="#5a7b42" d="M288.7 282.6l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M292.9 282.6l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M302 282.6l.7.7-.7-.7m3.6 0l1.4 1.4-1.4-1.4z"/>
+    <path fill="#185200" d="M306.3 282.6l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M307 282.6l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M315.4 282.6l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M316.1 282.6l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M316.8 282.6l.7.7-.7-.7z"/>
+    <path fill="#395231" d="M317.5 282.6l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M318.2 282.6l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M319 282.6l.6.7-.7-.7z"/>
+    <path fill="#dedede" d="M319.6 282.6l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M198.6 283.3l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M199.3 283.3l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M200 283.3l.7.7-.7-.7z"/>
+    <path fill="#6b735a" d="M200.7 283.3l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M201.4 283.3l.7.7-.7-.7z"/>
+    <path fill="#5a5231" d="M202.1 283.3l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M205 283.3l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M209 283.5l.4.2-.5-.2z"/>
+    <path fill="#396b10" d="M214.1 283.3l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M239.4 283.3l.7.7-.7-.7zm5 0l.6.7-.7-.7z"/>
+    <path fill="#391810" d="M247.2 283.3l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M253.5 283.3l.7.7-.7-.7z"/>
+    <path fill="#291029" d="M260.5 283.3l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M264 283.3v.7h5l-5-.7z"/>
+    <path fill="#082108" d="M287.3 283.3l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M288 283.3l.7.7-.7-.7z"/>
+    <path fill="#4a6342" d="M289 283.8l.1.4-.2-.5z"/>
+    <path fill="#184a00" d="M293.1 283.8l.3.4-.3-.5z"/>
+    <path fill="#297b00" d="M301.3 283.3l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M304.9 283.3l.7.7-.8-.7z"/>
+    <path fill="#103900" d="M305.6 283.3l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M311.9 283.3l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M312.6 283.3l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M313.3 283.3l.7.7-.7-.7z"/>
+    <path fill="#4a6342" d="M314 283.3l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M314.7 283.3l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M315.4 283.3l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M316.1 283.3l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M198.6 284l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M199.3 284l.7.7-.7-.7z"/>
+    <path fill="#292100" d="M200 284l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M200.7 284l1.4 1.3V284h-1.4z"/>
+    <path fill="#292100" d="M202.1 284l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M202.8 284l.7.7-.7-.7z"/>
+    <path fill="#392100" d="M205 284l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M205.7 284l.7.7-.7-.7z"/>
+    <path fill="#5a2908" d="M206.4 284l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M208.5 284l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M212.7 284l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M213.4 284l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M214.1 284l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M247.2 284l.7.7-.7-.7z"/>
+    <path fill="#00215a" d="M247.9 284l.7.7-.7-.7m2 0l.8.7-.7-.7z"/>
+    <path fill="#dedede" d="M250.7 284l.7.7-.7-.7z"/>
+    <path fill="#a51008" d="M254.2 284l.7.7-.7-.7z"/>
+    <path fill="#390821" d="M260.5 284l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M287.3 284l1.4 1.3-1.4-1.3z"/>
+    <path fill="#5a6b52" d="M288 284l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M290.8 284l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M291.5 284l-.7 1.3.7-1.3z"/>
+    <path fill="#185200" d="M299.2 286l2.1-2-2 2z"/>
+    <path fill="#297b00" d="M303.4 284l1.5 1.3-1.5-1.3z"/>
+    <path fill="#103900" d="M304.1 284l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M304.9 284l.7.7-.8-.7m5.7 0l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M311.2 284l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M311.9 284l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M312.6 284l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M190.9 284.6l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M191.6 284.6l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M199.3 284.6l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M200.7 284.6l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M202.8 284.6l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M203.6 284.6l.7 2h.6l-1.4-2z"/>
+    <path fill="#397b00" d="M205.7 284.6l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M206.4 284.6l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M208.2 284.9l.5.2-.5-.2m2.4-.2l.7.6-.7-.7z"/>
+    <path fill="#315221" d="M211.3 284.6l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M212 284.6l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M212.7 284.6l.7.7-.7-.7z"/>
+    <path fill="#391810" d="M247.9 284.6l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M250 284.6l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M250.7 284.6l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M254.2 284.6l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M257.7 284.6l.7.7-.7-.7z"/>
+    <path fill="#6b0808" d="M260.5 284.6l.7.7-.7-.7z"/>
+    <path fill="#395231" d="M288.7 284.6l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M291.5 284.6l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M292.9 284.6l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M293.6 284.6l-.7 1.4.7-1.4z"/>
+    <path fill="#296300" d="M302.7 284.6l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M303.4 284.6l.8.7-.8-.7z"/>
+    <path fill="#185200" d="M309 284.6l.8.7-.7-.7z"/>
+    <path fill="#425242" d="M309.8 284.6l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M310.5 284.6l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M190.9 285.3l.7.7-.7-.7z"/>
+    <path fill="#293129" d="M191.6 285.3l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M192.3 285.3l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M193 285.3l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M193.7 285.3l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M199.3 285.3l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M201.4 285.3l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M202.1 285.3l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M203.6 285.3l.7.7-.8-.7z"/>
+    <path fill="#294200" d="M207.8 285.3l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M209.9 285.3l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M210.6 285.3l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M212 285.3l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M212.7 285.3l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M218.3 285.3l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M219 285.3l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M223.3 285.3l.6.7-.7-.7z"/>
+    <path fill="#10214a" d="M248.6 285.3l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M250.7 285.3l.7.7-.7-.7z"/>
+    <path fill="#943131" d="M254.4 285.8l.3.4-.3-.4z"/>
+    <path fill="#a51008" d="M257.7 285.3l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M288 285.3l.7.7-.7-.7z"/>
+    <path fill="#082108" d="M288.7 285.3l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M291.7 285.8l.3.4-.3-.4z"/>
+    <path fill="#296300" d="M293.6 285.3l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M296.2 285.5l.5.3-.5-.3m2.3-.2l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M302 285.3l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M302.7 285.3l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M307.7 285.3l.7.7-.7-.7z"/>
+    <path fill="#294221" d="M308.4 285.3l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M309 285.3l.8.7-.7-.7z"/>
+    <path fill="#cecece" d="M190.9 286l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M191.6 286l.7.7-.7-.7zm2.1 0l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M194.9 286.2l.4.2-.4-.2z"/>
+    <path fill="#526b42" d="M195.8 286l.7.7-.7-.7z"/>
+    <path fill="#5a6b52" d="M196.5 286l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M197.2 286l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M198 286l.6.7-.7-.7z"/>
+    <path fill="#dedede" d="M198.6 286l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M199.3 286l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M200 286l-.7 1.3.7-1.3z"/>
+    <path fill="#397b00" d="M202.1 286l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M202.8 286l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M207.8 286l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M209.2 286l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M209.9 286l.7.7-.7-.7z"/>
+    <path fill="#5a6b52" d="M212 286l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M212.7 286v2.7h.7l-.7-2.7z"/>
+    <path fill="#63636b" d="M213.4 286l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M218.3 286l.7.7-.7-.7z"/>
+    <path fill="#213918" d="M219 286l1.4 1.3-1.4-1.3z"/>
+    <path fill="#cecece" d="M219.7 286l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M222.5 286l-1.4 2 1.4-2z"/>
+    <path fill="#181000" d="M223.3 286l.6.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M248.6 286l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M249.3 286l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M250.7 286l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M257.7 286l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M288 286v2h.7l-.7-2z"/>
+    <path fill="#103900" d="M288.7 286l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M293.8 286.4l.3.5-.3-.5z"/>
+    <path fill="#297b00" d="M299.2 288l3.5-2-3.5 2z"/>
+    <path fill="#103900" d="M301.3 286l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M307 286l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M307.7 286l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M308.4 286l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M191.6 286.6l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M198 286.6l.6.7-.7-.7z"/>
+    <path fill="#295200" d="M198.6 286.6l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M200 286.6l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M200.7 286.6l2.1 2-2-2z"/>
+    <path fill="#294200" d="M203.6 286.6l.7.7-.8-.7z"/>
+    <path fill="#103900" d="M205 286.6l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M209.2 286.6l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M211.3 286.6l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M212 286.6l.7.7-.7-.7z"/>
+    <path fill="#428c00" d="M212.7 286.6l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M214.1 286.6l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M218.3 286.6l.7.7-.7-.7z"/>
+    <path fill="#428c00" d="M219 286.6c-2.2 4.7-4.7 9.8 1.4 12.8 0-4 1.5-9.7-1.4-12.7z"/>
+    <path fill="#bd2110" d="M221.1 286.6l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M222.5 286.6l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M223.3 286.6l-.8 1.4h1.5l-.7-1.4z"/>
+    <path fill="#b51010" d="M224 286.6l.6.7-.7-.7z"/>
+    <path fill="#31394a" d="M249.3 286.6l.7.7-.7-.7z"/>
+    <path fill="#525a6b" d="M250.7 286.6l.7.7-.7-.7z"/>
+    <path fill="#8c7373" d="M254.4 287.1l.3.5-.3-.5z"/>
+    <path fill="#a51008" d="M257.7 286.6l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M286 287.1l.3.5-.2-.5z"/>
+    <path fill="#00216b" d="M286.6 286.6l.7.7-.7-.7z"/>
+    <path fill="#001000" d="M287.3 286.6l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M288.7 286.6l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M291.5 286.6l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M296.4 286.6l-.7 1.4.7-1.4z"/>
+    <path fill="#103900" d="M300.6 286.6l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M305.6 286.6l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M306.3 286.6l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M307 286.6l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M307.7 286.6l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M308.8 286.9l.5.2-.5-.2z"/>
+    <path fill="#4a6342" d="M310.3 286.9l.4.2-.4-.2z"/>
+    <path fill="#295210" d="M311.2 286.6l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M311.9 286.6l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M312.6 286.6v.7h3.5l-3.5-.7z"/>
+    <path fill="#184a00" d="M316.1 286.6l.7.7-.7-.7z"/>
+    <path fill="#082108" d="M316.8 286.6l.7.7-.7-.7z"/>
+    <path fill="#313931" d="M317.5 286.6l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M318.2 286.6l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M319 286.6l.6.7-.7-.7m-127.3.7l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M193.7 287.3l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M194.9 287.6l.4.2-.4-.2z"/>
+    <path fill="#397b00" d="M196 287.8l.3.4-.3-.4z"/>
+    <path fill="#292100" d="M200.7 287.3l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M205 287.3l-.7 2h.7v-2m3.5 0l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M209.2 287.3l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M211.3 287.3l.7.7-.7-.7z"/>
+    <path fill="#428c00" d="M212 287.3c-1.7 4.3-1.2 6.9 1.4 10.7h.7v-10.7h-.7v8H212v-8z"/>
+    <path fill="#315221" d="M214.1 287.3l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M217.6 287.3l.7.7-.7-.7z"/>
+    <path fill="#396b10" d="M218.3 287.3l.7.7-.7-.7z"/>
+    <path fill="#293129" d="M220.4 287.3l.7.7-.7-.7z"/>
+    <path fill="#293100" d="M221.8 287.3l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M224 287.3l.6.7-.7-.7z"/>
+    <path fill="#cecece" d="M249.3 287.3l.7.7-.7-.7z"/>
+    <path fill="#001039" d="M250 287.3l.7.7-.7-.7z"/>
+    <path fill="#42425a" d="M250.7 287.3l.7.7-.7-.7z"/>
+    <path fill="#520808" d="M257.7 287.3l.7.7-.7-.7z"/>
+    <path fill="#6b5252" d="M258.4 287.3l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M259.1 287.3l.7.7-.7-.7z"/>
+    <path fill="#290018" d="M259.8 287.3l.7.7-.7-.7z"/>
+    <path fill="#420000" d="M260.5 287.3l.7.7-.7-.7z"/>
+    <path fill="#001010" d="M286.6 287.3l.7.7-.7-.7z"/>
+    <path fill="#292921" d="M287.3 287.3l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M288.7 287.3l1.4 1.4-1.4-1.4z"/>
+    <path fill="#297b00" d="M289.4 287.3l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M291.5 287.3v2h.7l-.7-2z"/>
+    <path fill="#185200" d="M293.6 287.3l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M300 287.3l.6.7-.7-.7z"/>
+    <path fill="#297b00" d="M303.4 287.3l.8.7-.8-.7z"/>
+    <path fill="#184a00" d="M304.1 287.3v.7h2.2l-2.2-.7z"/>
+    <path fill="#296300" d="M306.7 287.6l.5.2-.5-.2z"/>
+    <path fill="#297b00" d="M307.7 287.3l.7.7-.7-.7m4.9 0l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M313.3 287.3l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M314 287.3l.7.7-.7-.7z"/>
+    <path fill="#6b735a" d="M314.7 287.3l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M315.4 287.3l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M316.1 287.3l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M192.3 288l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M201.4 288l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M205 288l.7.7-.7-.7m3.5 0l1.4 1.3-1.4-1.3z"/>
+    <path fill="#5a5231" d="M209.2 288l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M210.6 288l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M211.3 288l.7.7-.7-.7m2.8 0l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M214.8 288l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M217.6 288l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M219.3 288.4l.2.5-.2-.5z"/>
+    <path fill="#295200" d="M220.4 288l.7.7-.7-.7z"/>
+    <path fill="#100808" d="M221.1 288l.7.7-.7-.7z"/>
+    <path fill="#428c00" d="M221.8 288l-.7 10.7 2.1-2h.8l-.7 2.7c5.5-1.6 6.5-5.2 4.9-10l-3.5 7.3h-.7V288h-.7l-1.4 7.4V288z"/>
+    <path fill="#295200" d="M222.5 288l.7.7-.7-.7z"/>
+    <path fill="#293100" d="M224 288l.6.7-.7-.7z"/>
+    <path fill="#ce2110" d="M227.5 288l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M228.2 288l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M250 288l.7.7-.7-.7z"/>
+    <path fill="#080829" d="M250.7 288l.7.7-.7-.7z"/>
+    <path fill="#c6b5b5" d="M254.2 288l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M257 288l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M257.7 288l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M286.6 288l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M287.3 288l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M288.4 288.2l.5.2-.5-.2z"/>
+    <path fill="#184a00" d="M293.6 288l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M295.7 288l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M299.2 288l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M302 288l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M302.7 288l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M303.4 288l.8.7-.8-.7z"/>
+    <path fill="#297b00" d="M309.8 288l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M310.5 288l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M311.2 288l.7.7-.7-.7z"/>
+    <path fill="#6b735a" d="M311.9 288l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M312.6 288l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M313.3 288l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M192.3 288.7l1.4 1.3-1.4-1.3z"/>
+    <path fill="#214210" d="M193 288.7l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M202.1 288.7l1.4 1.3v-1.3h-1.4z"/>
+    <path fill="#103900" d="M203.6 288.7l.7.6-.8-.6m2.9 0l-.7 1.3.7-1.3z"/>
+    <path fill="#397b00" d="M207 288.7l.8.6-.7-.6z"/>
+    <path fill="#295200" d="M208.5 288.7l.7.6-.7-.6z"/>
+    <path fill="#213918" d="M210.6 288.7l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M212.7 288.7v3.3h.7l-.7-3.3z"/>
+    <path fill="#526b42" d="M214.8 288.7l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M217 288.7l.6.6-.7-.6z"/>
+    <path fill="#397b00" d="M217.6 288.7l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M221.1 288.7l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M222.5 288.7v2.6h.7l-.7-2.6z"/>
+    <path fill="#397b00" d="M224 288.7l.6.6-.7-.6z"/>
+    <path fill="#941808" d="M224.7 288.7l.7.6-.8-.6m2.2 0l-.7 1.3.7-1.3z"/>
+    <path fill="#293100" d="M227.5 288.7l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M228.2 288.7l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M250 288.7l.7.6-.7-.6z"/>
+    <path fill="#292921" d="M250.7 288.7l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M251.4 288.7l.7.6-.7-.6z"/>
+    <path fill="#842118" d="M257 288.7l.7.6-.7-.6z"/>
+    <path fill="#293129" d="M287.3 288.7l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M288 288.7l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M289.4 288.7l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M293.6 288.7l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M295.7 288.7l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M300.6 288.7l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M301.3 288.7l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M302 288.7l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M307.7 288.7l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M308.4 288.7l.7.6-.7-.6z"/>
+    <path fill="#001000" d="M309 288.7l.8.6-.7-.6z"/>
+    <path fill="#101810" d="M309.8 288.7l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M310.5 288.7l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M311.6 288.9l.5.2-.5-.2z"/>
+    <path fill="#214210" d="M193.7 289.3l1.4 1.4-1.4-1.4z"/>
+    <path fill="#397b00" d="M199.6 289.8l.2.4-.2-.4m9.6-.5l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M209.9 289.3l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M210.6 289.3l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M215 289.8l.3.4-.3-.4z"/>
+    <path fill="#dedede" d="M216.2 289.3l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M217 289.3l.6.7-.7-.7z"/>
+    <path fill="#295200" d="M219 289.3l.7.7-.7-.7m2.1 0l.7.7-.7-.7z"/>
+    <path fill="#422100" d="M224.7 289.3l.7.7-.8-.7z"/>
+    <path fill="#295200" d="M226.8 289.3l.7.7-.7-.7m1.4 0l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M228.9 289.3l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M250.7 289.3l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M251.6 289.8l.3.4-.3-.4z"/>
+    <path fill="#736b6b" d="M257 289.3l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M287.3 289.3l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M288 289.3l.7.7-.7-.7m1.4 0l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M291.5 289.3l.7 2.7h.7l-1.4-2.7z"/>
+    <path fill="#297b00" d="M292.2 289.3l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M293.6 289.3l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M295 289.3l.7.7-.7-.7zm4.2 0l1.4 1.4-1.4-1.4z"/>
+    <path fill="#184a00" d="M300 289.3l.6.7-.7-.7z"/>
+    <path fill="#185200" d="M300.6 289.3l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M305.6 289.3l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M306.3 289.3v.7l2.8.7v-.7l-2.8-.7z"/>
+    <path fill="#103900" d="M307 289.3l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M307.7 289.3l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M308.4 289.3v.7h2l-2-.7z"/>
+    <path fill="#297b00" d="M310.7 289.8l.2.4-.2-.4z"/>
+    <path fill="#296300" d="M311.2 289.3v.7l2.8.7v-.7l-2.8-.7z"/>
+    <path fill="#185200" d="M312.6 289.3l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M313.3 289.3l.7.7-.7-.7z"/>
+    <path fill="#4a6342" d="M314 289.3l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M314.7 289.3l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M315.4 289.3l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M193.7 290l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M197.7 290.2l.5.2-.5-.2z"/>
+    <path fill="#295200" d="M198.6 290l.7.7-.7-.7z"/>
+    <path fill="#292100" d="M205 290l.7.7-.7-.7z"/>
+    <path fill="#001000" d="M209.9 290l.7.7-.7-.7z"/>
+    <path fill="#5a6b52" d="M216.2 290l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M219.3 290.4l.2.5-.2-.5z"/>
+    <path fill="#397b00" d="M220.9 290.2l.5.2-.5-.2z"/>
+    <path fill="#294200" d="M224.7 290l.7.7-.8-.7z"/>
+    <path fill="#bd2110" d="M225.4 290l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M226 290l.8.7-.7-.7z"/>
+    <path fill="#397b00" d="M228.2 290l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M228.9 290l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M252 290l-.6 1.3.7-1.3z"/>
+    <path fill="#ce1810" d="M256.3 290l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M257 290l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M287.3 290l.7.7-.7-.7z"/>
+    <path fill="#082108" d="M288 290l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M289.4 290l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M290 290l.8.7-.7-.7z"/>
+    <path fill="#185200" d="M293.6 290l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M299.2 290l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M303.4 290l1.5 1.3-1.5-1.3z"/>
+    <path fill="#185200" d="M304.1 290l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M304.9 290l.7.7-.8-.7z"/>
+    <path fill="#185200" d="M306 290.2l.5.2-.5-.2m3-.2l.8.7-.7-.7z"/>
+    <path fill="#296300" d="M310 290.4l.2.5-.2-.5z"/>
+    <path fill="#319400" d="M311.2 290l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M311.9 290l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M314 290l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M314.7 290l.7.7-.7-.7z"/>
+    <path fill="#082108" d="M315.4 290l.7.7-.7-.7z"/>
+    <path d="M316.1 290l.7.7-.7-.7z"/>
+    <path fill="#313931" d="M316.8 290l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M317.5 290l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M194.6 291.1l.3.5-.3-.5z"/>
+    <path fill="#52525a" d="M195.1 290.7l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M195.8 290.7l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M196.5 290.7l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M204.3 290.7l.6.6-.7-.6z"/>
+    <path fill="#397b00" d="M205 290.7l.7.6-.7-.6m3.2.2l.5.2-.5-.2z"/>
+    <path fill="#294200" d="M210.1 291.1l.2.5-.2-.5z"/>
+    <path fill="#397b00" d="M214.8 290.7l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M215.5 290.7l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M216.2 290.7l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M220.4 290.7v2h.7l-.7-2z"/>
+    <path fill="#397b00" d="M224.7 290.7v1.3h1.4l-1.4-1.3z"/>
+    <path fill="#211800" d="M225.4 290.7l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M227.5 290.7l.7.6-.7-.6z"/>
+    <path fill="#5a2908" d="M228.9 290.7l.7.6-.7-.6z"/>
+    <path fill="#63636b" d="M252 290.7l.8.6-.7-.6z"/>
+    <path fill="#9c2118" d="M256.3 290.7l.7.6-.7-.6z"/>
+    <path fill="#00216b" d="M285.9 290.7l.7.6-.7-.6z"/>
+    <path fill="#103910" d="M286.6 290.7l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M288.2 291.1l.2.5-.2-.5z"/>
+    <path fill="#296300" d="M289.8 290.9l.5.2-.5-.2z"/>
+    <path fill="#103900" d="M297.8 290.7l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M302.3 291.1l.2.5-.2-.5z"/>
+    <path fill="#103900" d="M303.2 290.9l.5.2-.5-.2z"/>
+    <path fill="#319400" d="M295 298.7a38 38 0 0119.7-6c-6.5-3.8-17.5-1.5-19.7 6z"/>
+    <path fill="#297b00" d="M309 290.7l.8.6-.7-.6z"/>
+    <path fill="#185200" d="M310.5 290.7l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M311.2 290.7l.7.6-.7-.6z"/>
+    <path fill="#293129" d="M311.9 290.7l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M312.6 290.7l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M313.3 290.7l.7.6-.7-.6z"/>
+    <path fill="#314231" d="M195.1 291.3l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M201.4 291.3l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M202.1 291.3l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M203.6 291.3l.7.7-.8-.7z"/>
+    <path fill="#295200" d="M204.3 291.3l.6.7-.7-.7m3.6 0l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M214.8 291.3l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M215.5 291.3l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M218.8 291.6l.5.2-.5-.2m3.7-.3v2h.7l-.7-2z"/>
+    <path fill="#295200" d="M226.8 291.3l.7.7-.7-.7z"/>
+    <path fill="#293100" d="M228.9 291.3l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M252 291.3l.8.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M252.8 291.3l.7.7-.7-.7z"/>
+    <path fill="#8c6363" d="M256.3 291.3l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M285.1 291.3l.7.7-.7-.7z"/>
+    <path fill="#21315a" d="M285.9 291.3l.7.7-.7-.7z"/>
+    <path fill="#5a7b42" d="M286.6 291.3l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M290 291.3l.8.7-.7-.7z"/>
+    <path fill="#297b00" d="M291.5 291.3l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M300.6 291.3l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M301.3 291.3l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M312.6 291.3l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M313.3 291.3l.7.7-.7-.7z"/>
+    <path fill="#5a6b52" d="M314 291.3l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M314.7 291.3l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M315.4 291.3l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M193.7 292l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M194.4 292l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M200 292l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M200.7 292l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M201.4 292l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M203.6 292l.7.7-.8-.7z"/>
+    <path fill="#294200" d="M208 292.5l.2.4-.2-.4z"/>
+    <path fill="#295200" d="M209.9 292l.7.7-.7-.7m2.8 0l.7.7-.7-.7z"/>
+    <path fill="#526b42" d="M215.3 292.2l.4.3-.4-.3z"/>
+    <path fill="#295200" d="M218.3 292l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M224.9 292.5l.2.4-.2-.4m2.1 0l.2.4-.2-.4z"/>
+    <path fill="#397b00" d="M228.9 292l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M242.2 292l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M243 292l.6.7-.7-.7z"/>
+    <path fill="#63636b" d="M252.8 292l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M256.3 292l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M283.8 292l.6.7-.6-.7z"/>
+    <path d="M285.1 292l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M285.9 292l.7.7-.7-.7z"/>
+    <path fill="#396321" d="M286.6 292l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M288 292l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M288.7 292l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M290 292l.8.7-.7-.7m2 0l.8.7-.7-.7m3.5 0l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M299.2 292l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M300 292l.6.7-.7-.7z"/>
+    <path fill="#296300" d="M300.6 292l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M314.7 292l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M315.4 292l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M316.1 292l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M316.8 292l.7.7-.7-.7z"/>
+    <path fill="#424242" d="M193.7 292.7l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M198 292.7l.6.7-.7-.7z"/>
+    <path fill="#294200" d="M199 292.9l.6.2-.5-.2z"/>
+    <path fill="#397b00" d="M200 292.7l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M202.8 292.7l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M210.1 293.1l.2.5-.2-.5z"/>
+    <path fill="#397b00" d="M212 292.7v2.7h1.4v-2.7H212z"/>
+    <path fill="#6b735a" d="M214.8 292.7l.7.7-.7-.7z"/>
+    <path fill="#396b10" d="M215.5 292.7l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M218.3 292.7v3.3h.7l-.7-3.3z"/>
+    <path fill="#295200" d="M220.7 293.1l.2.5-.2-.5z"/>
+    <path fill="#392100" d="M242.2 292.7l.7.7-.7-.7z"/>
+    <path fill="#292100" d="M243 292.7l.6.7-.7-.7z"/>
+    <path fill="#9c9494" d="M252.8 292.7l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M253.5 292.7l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M254.2 292.7l-.7 1.3.7-1.3z"/>
+    <path fill="#bd0008" d="M254.9 292.7l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M255.6 292.7l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M271.8 292.7l-.7 1.3.7-1.3z"/>
+    <path fill="#002984" d="M272.7 293.1l.3.5-.3-.5m7.5-.4l.7.6-.7-.6z"/>
+    <path fill="#00184a" d="M281 292.7l2.7 2v-.7l-2.8-1.3z"/>
+    <path fill="#001010" d="M283.8 292.7l.6.7-.6-.7z"/>
+    <path fill="#002984" d="M284.4 292.7l.8.7-.8-.7z"/>
+    <path fill="#103900" d="M285.1 292.7l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M285.9 292.7l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M286.8 293.1l.2.5-.2-.5z"/>
+    <path fill="#296300" d="M288.4 292.9l.5.2-.5-.2z"/>
+    <path fill="#184a00" d="M290 292.7l.8.7-.7-.7z"/>
+    <path fill="#297b00" d="M291.5 292.7l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M292.2 292.7l-.7 2.7.7-2.7z"/>
+    <path fill="#103900" d="M294.3 292.7l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M295.2 293.1l.3.5-.3-.5z"/>
+    <path fill="#103900" d="M295.7 292.7l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M297.1 293.4v.6h2.1l-2-.6z"/>
+    <path fill="#103900" d="M298.5 292.7l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M299.2 292.7l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M307 292.7l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M307.7 292.7l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M308.4 292.7l-1.4.7v.6l1.4-1.3z"/>
+    <path fill="#315221" d="M309 292.7l.8.7-.7-.7z"/>
+    <path fill="#4a6342" d="M309.8 292.7v.7h4.9l-5-.7z"/>
+    <path fill="#295210" d="M314.7 292.7l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M315.4 292.7l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M316.1 292.7l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M316.8 292.7l.7.7-.7-.7z"/>
+    <path fill="#294221" d="M317.5 292.7l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M318.2 292.7l.7.7-.7-.7m-125.2.7l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M193.7 293.4l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M196.5 293.4l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M197.2 293.4l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M198 293.4l.6.6-.7-.6z"/>
+    <path fill="#292100" d="M202.1 293.4l.7.6-.7-.6m5.7 0l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M214.1 293.4l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M214.8 293.4l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M215.5 293.4l.7.6-.7-.6m7 0l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M224.4 293.6l.5.2-.5-.2z"/>
+    <path fill="#295200" d="M226.8 293.4l.7.6-.7-.6z"/>
+    <path fill="#bd2110" d="M236 293.4l.6.6-.7-.6z"/>
+    <path fill="#631808" d="M241.5 293.4l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M242.2 293.4l1.4 1.3-1.4-1.3z"/>
+    <path fill="#428c00" d="M243 293.4l.6.6-.7-.6z"/>
+    <path fill="#631808" d="M243.7 293.4l.7.6-.8-.6z"/>
+    <path fill="#8c7373" d="M254.2 293.4l.7.6-.7-.6z"/>
+    <path fill="#6b0808" d="M254.9 293.4l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M255.6 293.4l.7.6-.7-.6z"/>
+    <path fill="#000818" d="M267.6 293.4l.7.6-.7-.6z"/>
+    <path fill="#082108" d="M271.8 293.4l.7.6-.7-.6z"/>
+    <path fill="#002984" d="M277.4 293.4l1.4 1.3v-1.3h-1.4z"/>
+    <path fill="#001039" d="M280.2 293.4l.7.6-.7-.6m2.1 0l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M283.8 293.4l.6.6-.6-.6z"/>
+    <path d="M284.4 293.4l.8.6-.8-.6z"/>
+    <path fill="#296300" d="M285.1 293.4l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M285.9 293.4l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M290.3 293.8l.2.4-.2-.4z"/>
+    <path fill="#297b00" d="M293.6 293.4v.6l3.5 1.4v-.7l-3.5-1.3z"/>
+    <path fill="#185200" d="M294.3 293.4l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M295.7 293.4l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M297.8 293.4l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M304.9 293.4l.7.6-.8-.6z"/>
+    <path fill="#103900" d="M306 293.6l.5.2-.5-.2z"/>
+    <path fill="#214210" d="M308.4 293.4l.7.6-.7-.6z"/>
+    <path fill="#5a6b52" d="M309 293.4l.8.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M309.8 293.4l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M310.5 293.4l.7.6-.7-.6m5.6 0l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M316.8 293.4l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M317.5 293.4l.7.6-.7-.6z"/>
+    <path fill="#292921" d="M318.7 293.6l.5.2-.5-.2z"/>
+    <path fill="#315221" d="M193 294l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M195.1 294l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M195.8 294l.7.7-.7-.7m5.6 0l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M202.1 294l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M204.3 294l-.8 1.4.8-1.4z"/>
+    <path fill="#397b00" d="M205 294l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M207 294l.8.7-.7-.7z"/>
+    <path fill="#63636b" d="M207.8 294l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M208.5 294l.7.7-.7-.7m1.8.2l.5.3-.5-.3z"/>
+    <path fill="#295200" d="M214.1 294l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M214.8 294l.7.7-.7-.7z"/>
+    <path fill="#426331" d="M215.5 294l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M220.7 294.5l.2.4-.2-.4z"/>
+    <path fill="#295200" d="M222.5 294l.7.7-.7-.7m1.4 0l.7.7-.6-.7z"/>
+    <path fill="#397b00" d="M226.5 294.2l.5.3-.5-.3m2.4-.2l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M235.2 294l.7.7-.7-.7z"/>
+    <path fill="#211800" d="M236 294l.6.7-.7-.7z"/>
+    <path fill="#ce2110" d="M236.6 294l1.4 1.4-1.4-1.4z"/>
+    <path fill="#b51010" d="M240.8 294l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M241.5 294l.7.7-.7-.7z"/>
+    <path fill="#428c00" d="M242.2 294l-1.4 4-2-1.3 2 5.3h.7v-2.6h.7v4.7c3.4-2.2 3-6 2.2-9.4h-.7v6.7h-.7l-.8-7.4z"/>
+    <path fill="#294200" d="M243.7 294l.7.7-.8-.7z"/>
+    <path fill="#ce2110" d="M244.3 294l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M253.5 294l.7.7-.7-.7z"/>
+    <path fill="#6b4242" d="M254.2 294l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M254.9 294l.7.7-.7-.7z"/>
+    <path fill="#103910" d="M267.6 294l.7.7-.7-.7z"/>
+    <path fill="#10214a" d="M268.3 294l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M270.4 294l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M271 294l.8.7-.7-.7z"/>
+    <path fill="#184a00" d="M271.8 294l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M273.9 294l.7.7-.7-.7z"/>
+    <path fill="#001010" d="M277.4 294l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M280.2 294l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M283.8 294l.6.7-.6-.7z"/>
+    <path fill="#424242" d="M284.4 294l.8.7-.8-.7z"/>
+    <path fill="#319400" d="M285.1 294l-4.2 12c4-2 6-8 4.2-12z"/>
+    <path fill="#293129" d="M285.9 294l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M286.6 294l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M293.6 294l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M296.2 294.2l.5.3-.5-.3z"/>
+    <path fill="#184a00" d="M297.1 294l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M302.7 294l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M302.7 294.7v.7h3.6l-3.6-.7z"/>
+    <path fill="#297b00" d="M304.9 294l.7.7-.8-.7z"/>
+    <path fill="#319400" d="M305.6 294v.7h4.9l-5-.7z"/>
+    <path fill="#296300" d="M310.5 294l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M311.2 294l-.7 1.4.7-1.4z"/>
+    <path fill="#7b7373" d="M311.9 294l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M312.6 294l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M319 294l.6.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M192.3 294.7l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M193 294.7l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M194.4 294.7l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M195.1 294.7l.7.7-.7-.7m5 0v2h.6l-.7-2z"/>
+    <path fill="#103900" d="M200.7 294.7l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M204.3 294.7l.6.7-.7-.7z"/>
+    <path fill="#425242" d="M207 294.7l.8.7-.7-.7z"/>
+    <path fill="#315221" d="M208.5 294.7l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M210.6 294.7l.7.7-.7-.7z"/>
+    <path fill="#5a5231" d="M214.1 294.7l.7.7-.7-.7z"/>
+    <path fill="#526b42" d="M215.5 294.7l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M222.3 295l.5.1-.5-.2z"/>
+    <path fill="#294200" d="M224.2 295.1l.2.5-.2-.5m1.9-.4l.7.7-.7-.7m2.8 0l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M235.2 294.7l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M236 294.7l1.3 3.3h2.1l-3.5-3.3z"/>
+    <path fill="#311000" d="M236.6 294.7l.7.7-.7-.7z"/>
+    <path fill="#422100" d="M240.8 294.7l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M243 294.7v2.7h.6l-.7-2.7z"/>
+    <path fill="#5a1008" d="M244.3 294.7l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M253.5 294.7l.7.7-.7-.7z"/>
+    <path fill="#101810" d="M254.2 294.7l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M254.9 294.7l.7.7-.7-.7z"/>
+    <path fill="#083121" d="M267.6 294.7l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M268.3 294.7l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M269 294.7l.7.7-.7-.7z"/>
+    <path fill="#102110" d="M270.4 294.7l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M271 294.7l-.6 6h.7v-6z"/>
+    <path fill="#083121" d="M271.8 294.7l.7.7-.7-.7z"/>
+    <path fill="#000818" d="M273.9 294.7l.7.7-.7-.7z"/>
+    <path fill="#00216b" d="M276.7 294.7l.7.7-.7-.7z"/>
+    <path fill="#082108" d="M277.4 294.7l-.7 1.3.7-1.3z"/>
+    <path fill="#00215a" d="M279.5 294.7l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M280.2 294.7l.7.7-.7-.7z"/>
+    <path fill="#00215a" d="M281 294.7l.6.7-.7-.7z"/>
+    <path fill="#103910" d="M281.6 294.7l.7.7-.7-.7z"/>
+    <path fill="#424242" d="M282.3 294.7l.7.7-.7-.7z"/>
+    <path fill="#103910" d="M283 294.7l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M283.8 294.7l-.8 1.3.8-1.3z"/>
+    <path fill="#294221" d="M284.4 294.7l.8.7-.8-.7z"/>
+    <path fill="#103900" d="M285.9 294.7l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M286.6 294.7l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M290.3 295.1l.2.5-.2-.5z"/>
+    <path fill="#103900" d="M293.6 294.7l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M295 294.7l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M301.3 294.7l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M302 294.7l.7.7-.7-.7m4.3 0l.7.7-.7-.7z"/>
+    <path fill="#082108" d="M307 294.7v.7h2l-2-.7z"/>
+    <path fill="#4a6342" d="M309.5 295l.5.1-.5-.2z"/>
+    <path fill="#184a00" d="M311.2 294.7l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M311.9 294.7l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M312.6 294.7l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M313.3 294.7l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M314 294.7l1.4 1.3-1.4-1.3z"/>
+    <path fill="#7b7373" d="M192.3 295.4l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M197.2 295.4l.7 2.6h.7l-1.4-2.6z"/>
+    <path fill="#294200" d="M199 295.6l.6.2-.5-.2z"/>
+    <path fill="#295200" d="M202.1 295.4l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M202.8 295.4l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M203.6 295.4l.7.6-.8-.6z"/>
+    <path fill="#213918" d="M206.4 295.4l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M207 295.4l.8.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M208.5 295.4l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M209.2 295.4l.7.6-.7-.6z"/>
+    <path fill="#5a2908" d="M209.9 295.4l.7.6-.7-.6z"/>
+    <path fill="#7b1008" d="M210.6 295.4l.7.6-.7-.6z"/>
+    <path fill="#292100" d="M211.3 295.4l.7.6-.7-.6z"/>
+    <path fill="#5a6b52" d="M214.1 295.4l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M215.5 295.4l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M220.4 295.4l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M226 295.4l.8.6-.7-.6z"/>
+    <path fill="#181000" d="M228.9 295.4l.7.6-.7-.6z"/>
+    <path fill="#310000" d="M229.6 295.4l.7.6-.7-.6z"/>
+    <path fill="#313918" d="M235.2 295.4l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M236 295.4l.6.6-.7-.6z"/>
+    <path fill="#293100" d="M237.3 295.4l.7.6-.7-.6z"/>
+    <path fill="#5a1010" d="M238 295.4l.7.6-.7-.6z"/>
+    <path fill="#734a42" d="M239.2 295.6l.5.2-.5-.2z"/>
+    <path fill="#5a2121" d="M240.1 295.4l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M240.8 295.4l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M244.3 295.4l.7.6-.7-.6z"/>
+    <path fill="#bd2110" d="M245 295.4l.8.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M253.5 295.4l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M254.2 295.4l.7.6-.7-.6z"/>
+    <path fill="#002984" d="M264 295.4l.8.6-.8-.6z"/>
+    <path fill="#00216b" d="M264.8 295.4l.6.6-.6-.6z"/>
+    <path fill="#103921" d="M267.6 295.4l.7.6-.7-.6z"/>
+    <path fill="#319400" d="M268.3 295.4l-.7 8.7c2.6-2.5 2.5-5.8.7-8.7z"/>
+    <path fill="#102121" d="M269 295.4l.7.6-.7-.6z"/>
+    <path fill="#212139" d="M269.7 295.4l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M270.4 295.4l.7.6-.7-.6z"/>
+    <path fill="#293129" d="M271.8 295.4l.7.6-.7-.6z"/>
+    <path fill="#42425a" d="M272.5 295.4l.7.6-.7-.6z"/>
+    <path fill="#31425a" d="M273.2 295.4l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M273.9 295.4l.7.6-.7-.6z"/>
+    <path fill="#31425a" d="M274.6 295.4l.7.6-.7-.6z"/>
+    <path fill="#42425a" d="M275.8 295.6l.4.2-.4-.2z"/>
+    <path fill="#184a00" d="M277.6 295.8l.3.5-.2-.5z"/>
+    <path fill="#42425a" d="M278.1 295.4l.7.6-.7-.6z"/>
+    <path fill="#636b7b" d="M278.8 295.4l.7.6-.7-.6z"/>
+    <path fill="#082108" d="M279.5 295.4l.7.6-.7-.6z"/>
+    <path fill="#292921" d="M281 295.4l.6.6-.7-.6z"/>
+    <path fill="#185200" d="M281.6 295.4l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M282.3 295.4l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M283.8 295.4l.6.6-.6-.6z"/>
+    <path fill="#214210" d="M284.4 295.4l.8.6-.8-.6z"/>
+    <path fill="#185200" d="M291.5 295.4l.7.6-.7-.6m1.4 0l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M293.6 295.4l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M295 295.4l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M300 295.4l.6.6-.7-.6z"/>
+    <path fill="#103900" d="M300.6 295.4l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M301.3 295.4l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M307.7 295.4l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M308.4 295.4l.7.6-.7-.6z"/>
+    <path fill="#214210" d="M309 295.4l.8.6-.7-.6z"/>
+    <path fill="#7b7373" d="M309.8 295.4l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M310.5 295.4l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M311.9 295.4l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M312.6 295.4l-.7 1.3.7-1.3z"/>
+    <path fill="#8c8c8c" d="M313.3 295.4l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M314 295.4l.7.6-.7-.6z"/>
+    <path fill="#314231" d="M192.3 296l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M193 296l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M193.7 296l.7.7-.7-.7z"/>
+    <path fill="#396b10" d="M194.4 296l.7.7-.7-.7z"/>
+    <path fill="#213918" d="M195.1 296l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M196.3 296.3l.4.2-.4-.2z"/>
+    <path fill="#428c00" d="M199 296.3l.6.2-.5-.2z"/>
+    <path fill="#294200" d="M201.2 296.3l.5.2-.5-.2z"/>
+    <path fill="#397b00" d="M202.1 296l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M205.7 296l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M206.4 296l.7.7-.7-.7z"/>
+    <path fill="#420000" d="M209.2 296l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M211.5 296.5l.3.4-.3-.4z"/>
+    <path fill="#295200" d="M212 296l.7 2.7h.7L212 296z"/>
+    <path fill="#8c8c8c" d="M214.3 296.5l.3.4-.3-.4z"/>
+    <path fill="#efefef" d="M215.5 296l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M216.2 296l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M220.4 296l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M224 296l.6.7-.7-.7z"/>
+    <path fill="#294200" d="M225.4 296l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M228.2 296l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M228.9 296l.7.7-.7-.7z"/>
+    <path fill="#313931" d="M229.6 296l.7.7-.7-.7z"/>
+    <path fill="#213918" d="M230.3 296l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M231 296l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M231.7 296l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M232.4 296l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M233.1 296l.7.7-.7-.7z"/>
+    <path fill="#526b42" d="M235.2 296l.7.7-.7-.7z"/>
+    <path fill="#428c00" d="M236 296l1.3 1.4-1.4-1.4z"/>
+    <path fill="#103900" d="M236.6 296l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M238.7 296l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M239.4 296l.7.7-.7-.7z"/>
+    <path fill="#5a5231" d="M240.1 296l.7.7-.7-.7z"/>
+    <path fill="#313931" d="M245 296l.8.7-.7-.7z"/>
+    <path fill="#7b5252" d="M245.8 296l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M246.5 296l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M247.2 296l.7.7-.7-.7z"/>
+    <path fill="#002984" d="M260.5 296l.7.7-.7-.7z"/>
+    <path fill="#00184a" d="M261.2 296l.7.7-.7-.7z"/>
+    <path fill="#42425a" d="M262 296l.6.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M262.6 296l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M263.4 296l.7.7-.8-.7z"/>
+    <path fill="#bdbdbd" d="M264 296l.8.7-.8-.7z"/>
+    <path fill="#dedede" d="M264.8 296l.6.7-.6-.7z"/>
+    <path fill="#214210" d="M269 296l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M269.7 296l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M273.2 296l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M276 296l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M276.7 296l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M278.8 296l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M281 296l1.3 1.4-1.4-1.4z"/>
+    <path fill="#296300" d="M281.6 296l.7.7-.7-.7z"/>
+    <path fill="#313931" d="M282.3 296l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M283 296l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M283.8 296l.6.7-.6-.7z"/>
+    <path fill="#185200" d="M284.4 296l.8.7-.8-.7m5.7 0l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M291.7 296.5l.3.4-.3-.4m1.2-.5l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M294.3 296l1.4 1.4-1.4-1.4z"/>
+    <path fill="#184a00" d="M295 296l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M298.5 296l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M299.2 296l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M300 296l.6.7-.7-.7z"/>
+    <path fill="#297b00" d="M309.8 296l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M310.5 296l.7.7-.7-.7z"/>
+    <path fill="#5a6b52" d="M311.2 296l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M192.8 297l.4.1-.4-.2z"/>
+    <path fill="#efefef" d="M194.4 296.7l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M195.1 296.7l.7.7-.7-.7z"/>
+    <path fill="#428c00" d="M196.5 299.4l1.4-2c-1.8-.4-2.9.6-1.4 2z"/>
+    <path fill="#294200" d="M199 297l.6.1-.5-.2z"/>
+    <path fill="#295200" d="M200 296.7l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M204.3 296.7l.6.7-.7-.7z"/>
+    <path fill="#63636b" d="M205 296.7l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M205.7 296.7l.7.7-.7-.7z"/>
+    <path fill="#5a2121" d="M209.2 296.7l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M216.2 296.7l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M217 296.7l.6.7-.7-.7z"/>
+    <path fill="#295200" d="M220.7 297.1l.2.5-.2-.5m2.5-.4l.8.7-.8-.7z"/>
+    <path fill="#63636b" d="M228.2 296.7l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M229.6 296.7l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M230.3 296.7l.7.7-.7-.7z"/>
+    <path fill="#428c00" d="M231 296.7l.7 4.7 3.5 2.7 5 .6.6-.6c-.5-1.9-6.2-9.7-7-5.4l-1.4-2H231z"/>
+    <path fill="#397b00" d="M232.4 296.7v1.3l1.4-1.3h-1.4z"/>
+    <path fill="#295200" d="M233.8 296.7l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M235 297l.4.1-.4-.2z"/>
+    <path fill="#397b00" d="M236.1 297.1l.3.5-.3-.5z"/>
+    <path fill="#294200" d="M237.3 296.7l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M239.4 296.7l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M240.1 296.7l.7.7-.7-.7z"/>
+    <path fill="#526b42" d="M245 296.7l.8.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M247.2 296.7l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M247.9 296.7l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M248.6 296.7l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M249.3 296.7l.7.7-.7-.7m9.1 0l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M259.1 296.7l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M259.8 296.7l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M260.5 296.7l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M261.2 296.7l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M269 296.7l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M269.7 296.7l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M272.5 296.7l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M273.2 296.7l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M275.3 296.7l.7.7-.7-.7z"/>
+    <path fill="#294221" d="M276 296.7l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M276.7 296.7l-5 8c5.6 0 8-2.9 8.5-8h-.7l-4.9 7.4 2.1-7.4z"/>
+    <path fill="#4a6342" d="M277.4 296.7l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M278.8 296.7l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M280.2 296.7l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M281 296.7l.6.7-.7-.7z"/>
+    <path fill="#184a00" d="M282.3 296.7l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M283 296.7l-4.9 8.7c3.3-1.5 5.7-5.2 5-8.7z"/>
+    <path fill="#082108" d="M283.8 296.7l.6.7-.6-.7z"/>
+    <path fill="#297b00" d="M284.4 296.7l.8.7-.8-.7z"/>
+    <path fill="#184a00" d="M290 296.7l.8.7-.7-.7z"/>
+    <path fill="#185200" d="M294.3 296.7l.7.7-.7-.7m3.5 0l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M298.5 296.7l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M301.1 297l.5.1-.5-.2z"/>
+    <path fill="#296300" d="M302 296.7l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M302.7 296.7v.7h2.2l-2.2-.7z"/>
+    <path fill="#185200" d="M304.9 296.7l.7.7-.8-.7z"/>
+    <path fill="#184a00" d="M306 297l.5.1-.5-.2z"/>
+    <path fill="#185200" d="M307 296.7l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M307.9 297.1l.2.5-.2-.5z"/>
+    <path fill="#297b00" d="M308.4 296.7l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M311.9 296.7l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M312.6 296.7l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M313.3 296.7l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M194.4 297.4l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M196.5 297.4l-.7 1.3h1.4l-.7-1.3z"/>
+    <path fill="#103900" d="M197.2 297.4l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M202.8 297.4l.7.6-.7-.6z"/>
+    <path fill="#5a5231" d="M203.6 297.4l.7.6-.8-.6z"/>
+    <path fill="#ada5a5" d="M204.3 297.4l.6.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M207 297.4l.8.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M207.8 297.4l.7.6-.7-.6z"/>
+    <path fill="#8c9c84" d="M208.5 297.4l.7.6-.7-.6z"/>
+    <path fill="#5a5231" d="M209.2 297.4l.7.6-.7-.6z"/>
+    <path fill="#422100" d="M209.9 297.4l.7.6-.7-.6z"/>
+    <path fill="#5a2908" d="M210.6 297.4l.7.6-.7-.6z"/>
+    <path fill="#311000" d="M211.3 297.4l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M212.7 297.4l.7.6-.7-.6z"/>
+    <path fill="#5a6b52" d="M214.1 297.4l.7.6-.7-.6z"/>
+    <path fill="#52525a" d="M217 297.4l.6.6-.7-.6z"/>
+    <path fill="#103900" d="M223.3 297.4l.6.6-.7-.6z"/>
+    <path fill="#314231" d="M227.5 297.4l-.7 1.3.7-1.3z"/>
+    <path fill="#dedede" d="M228.2 297.4l.7.6-.7-.6z"/>
+    <path fill="#63636b" d="M230.3 297.4l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M231.7 297.4l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M236.6 297.4l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M238 297.4l-.7 1.3.7-1.3z"/>
+    <path fill="#103900" d="M240.1 297.4l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M243.2 297.8l.2.5-.2-.5z"/>
+    <path fill="#294200" d="M245.3 297.8l.2.5-.2-.5z"/>
+    <path fill="#dedede" d="M248.6 297.4l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M249.3 297.4l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M250 297.4l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M257.7 297.4l.7.6-.7-.6z"/>
+    <path fill="#63636b" d="M258.4 297.4l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M259.1 297.4l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M269.7 297.4l.7.6-.7-.6z"/>
+    <path fill="#63636b" d="M272.5 297.4l-.7 1.3.7-1.3z"/>
+    <path fill="#297b00" d="M273.2 297.4l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M275.3 297.4l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M276 297.4l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M277.9 297.6l.5.2-.5-.2z"/>
+    <path fill="#296300" d="M278.8 297.4l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M280.2 297.4l.7.6-.7-.6z"/>
+    <path fill="#319400" d="M281 297.4l.6.6-.7-.6z"/>
+    <path fill="#082108" d="M281.6 297.4l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M282.3 297.4l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M283.8 297.4l.6.6-.6-.6z"/>
+    <path fill="#296300" d="M290 297.4l.8.6-.7-.6m1.4 0l.7.6-.7-.6z"/>
+    <path fill="#103900" d="M294.3 297.4l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M295.7 298v.7h2.1l-2-.7z"/>
+    <path fill="#103900" d="M297.1 297.4l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M297.8 297.4l.7.6-.7-.6z"/>
+    <path fill="#082108" d="M308.4 297.4l.7.6-.7-.6z"/>
+    <path fill="#001000" d="M309 297.4l.8.6-.7-.6z"/>
+    <path fill="#395231" d="M309.8 297.4l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M310.5 297.4l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M311.2 297.4l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M312.4 297.6l.4.2-.4-.2z"/>
+    <path fill="#214210" d="M313.3 297.4l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M314 297.4l.7.6-.7-.6z"/>
+    <path fill="#5a5231" d="M194.4 298l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M199.3 298l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M200 298l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M200.7 298l.7.7-.7-.7z"/>
+    <path fill="#5a5231" d="M201.4 298l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M202.1 298l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M202.8 298l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M204 298.3l.5.2-.5-.2z"/>
+    <path fill="#9c9494" d="M205 298l.7.7-.7-.7z"/>
+    <path fill="#5a6b52" d="M205.7 298l.7.7-.7-.7z"/>
+    <path fill="#396b10" d="M206.4 298l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M207 298l.8.7-.7-.7z"/>
+    <path fill="#428c00" d="M205.7 298.7v.7h6.3v.6h-6.3v.7h1.4v.7c-3.9.2-5.8 1.5-7.8 4.7l12-.7v.7c-3.3 1-8 .6-9.2 4 4.5-1.8 11-2.4 13.4-6.7l-4.2 2 2-2.7-6.2-.6v-.7l11.2.7v.6h-2v.7l9-.7v-.6h-2v-.7h4.2v-.7l-5.7 1.3-16.1-3.3z"/>
+    <path fill="#294200" d="M213.4 298l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M214.1 298l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M217 298l.6.7-.7-.7z"/>
+    <path fill="#314231" d="M217.6 298l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M220.4 298l1.4 1.4-1.4-1.4z"/>
+    <path fill="#397b00" d="M223 298.3l.5.2-.5-.2m3-.3l.8.7-.7-.7z"/>
+    <path fill="#efefef" d="M227.5 298l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M230.3 298l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M231 298l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M232.9 298.3l.4.2-.4-.2z"/>
+    <path fill="#295200" d="M238 298l2.1 1.4v-.7l-2-.7z"/>
+    <path fill="#103900" d="M239 298.5l.2.4-.2-.4z"/>
+    <path fill="#294200" d="M240.8 298l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M250 298l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M250.7 298l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M251.4 298l.7.7-.7-.7m5 0l-1.5 2 1.4-2z"/>
+    <path fill="#63636b" d="M257 298l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M257.7 298l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M269.7 298l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M272.5 298l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M273.2 298l-4.2 6.7c2.6-1.3 5-3.7 4.2-6.7z"/>
+    <path fill="#184a00" d="M273.9 298l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M274.6 298l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M275.3 298l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M276.7 298l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M277.4 298l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M278.1 298l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M280.2 298l1.4 1.4-1.4-1.4z"/>
+    <path fill="#297b00" d="M281 298l1.3 1.4-1.4-1.4z"/>
+    <path fill="#103900" d="M281.6 298l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M283 298l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M283.8 298l.6.7-.6-.7z"/>
+    <path fill="#185200" d="M288.7 298l.7.7-.7-.7zm5.6 0l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M296.4 298l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M309 298l.8.7-.7-.7z"/>
+    <path fill="#425242" d="M309.8 298l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M310.5 298l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M311.2 298l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M311.9 298l.7.7-.7-.7z"/>
+    <path fill="#5a6b52" d="M312.6 298l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M313.3 298l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M314 298l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M314.7 298l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M194.6 299.1l.3.5-.3-.5m2-.4l.6.7-.7-.7z"/>
+    <path fill="#526b42" d="M197.2 298.7l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M198.4 299l.5.2-.5-.3z"/>
+    <path fill="#bdbdbd" d="M199.3 298.7l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M200 298.7l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M202.8 298.7l.7.7-.7-.7z"/>
+    <path d="M203.6 298.7l.7.7-.8-.7z"/>
+    <path fill="#295200" d="M204.3 298.7l.6.7-.7-.7z"/>
+    <path fill="#397b00" d="M205 298.7l.7.7-.7-.7z"/>
+    <path fill="#292100" d="M214.1 298.7l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M214.8 298.7l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M217 298.7l.6.7-.7-.7z"/>
+    <path fill="#63636b" d="M217.6 298.7l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M218.3 298.7l.7.7-.7-.7z"/>
+    <path fill="#001000" d="M220.4 298.7l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M221.8 298.7l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M222.5 298.7l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M224.7 298.7l.7.7-.8-.7z"/>
+    <path fill="#214210" d="M225.4 298.7l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M226 298.7l.8.7-.7-.7z"/>
+    <path fill="#efefef" d="M230.3 298.7l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M231 298.7l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M233.8 298.7l1.4 1.3-1.4-1.3z"/>
+    <path fill="#295200" d="M240.8 298.7l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M243 298.7v2.7h.6l-.7-2.7z"/>
+    <path fill="#295200" d="M245 298.7l.8.7-.7-.7z"/>
+    <path fill="#7b7373" d="M251.4 298.7l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M252 298.7l2.2 2.7-2.1-2.7z"/>
+    <path fill="#7b7373" d="M256.3 298.7l-1.4 2 1.4-2z"/>
+    <path fill="#efefef" d="M257 298.7l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M270 299.1l.1.5-.2-.5z"/>
+    <path d="M271.8 298.7l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M272.5 298.7l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M273.9 298.7l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M274.6 298.7l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M276.7 298.7l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M277.4 298.7l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M278.1 298.7l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M280.2 298.7l.7.7-.7-.7m2.8 0l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M288.7 298.7l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M295 298.7l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M295.7 298.7l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M309.8 298.7l.7.7-.7-.7z"/>
+    <path fill="#103910" d="M310.5 298.7l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M311.2 298.7l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M313.3 298.7l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M314 298.7l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M314.7 298.7l.7.7-.7-.7z"/>
+    <path fill="#424242" d="M315.4 298.7l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M193.7 299.4l.7.6-.7-.6z"/>
+    <path fill="#213918" d="M195.1 299.4l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M195.8 299.4l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M196.5 299.4l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M203.6 299.4l1.4 1.3-1.4-1.3z"/>
+    <path fill="#214210" d="M204.3 299.4l.6.6-.7-.6z"/>
+    <path fill="#294200" d="M205 299.4v.6h3.5l-3.5-.6z"/>
+    <path fill="#295200" d="M208.5 299.4l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M209.2 299.4l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M209.9 299.4l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M210.6 299.4l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M211.3 299.4l.7.6-.7-.6z"/>
+    <path fill="#213918" d="M214.8 299.4l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M215.5 299.4l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M216.2 299.4l.7.6-.7-.6z"/>
+    <path fill="#ad1810" d="M217 299.4l.6.6-.7-.6z"/>
+    <path fill="#941808" d="M218.3 299.4l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M219 299.4l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M219.7 299.4l.7.6-.7-.6z"/>
+    <path fill="#941808" d="M220.4 299.4l.7.6-.7-.6z"/>
+    <path fill="#de2110" d="M221.1 299.4l-.7 1.3.7-1.3z"/>
+    <path fill="#b51010" d="M221.8 299.4l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M222.5 299.4l.7.6-.7-.6z"/>
+    <path fill="#295200" d="M223.3 299.4l.6.6-.7-.6z"/>
+    <path fill="#102110" d="M224 299.4l.6.6-.7-.6z"/>
+    <path fill="#63636b" d="M224.7 299.4l.7.6-.8-.6z"/>
+    <path fill="#bdbdbd" d="M225.4 299.4l.7.6-.7-.6z"/>
+    <path fill="#315221" d="M231 299.4l.7.6-.7-.6z"/>
+    <path fill="#397b00" d="M235.2 299.4l2.1 2-2-2m4.1 0l.7.6-.7-.6z"/>
+    <path fill="#294200" d="M241.8 299.8l.2.5-.2-.5m3.2-.4l.8.6-.8-.6z"/>
+    <path fill="#6b735a" d="M267.6 299.4l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M271 299.4l.8.6-.7-.6z"/>
+    <path fill="#184a00" d="M271.8 299.4l.7.6-.7-.6z"/>
+    <path fill="#101810" d="M273.9 299.4l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M274.6 299.4l.7.6-.7-.6z"/>
+    <path fill="#001000" d="M276.7 299.4l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M277.4 299.4l.7.6-.7-.6m2.1 0l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M280.7 299.6l.5.2-.5-.2z"/>
+    <path fill="#184a00" d="M283 299.4l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M285.1 299.4l1.4 1.3-1.4-1.3z"/>
+    <path fill="#184a00" d="M295 299.4l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M297.1 299.4l1.4 1.3-1.4-1.3z"/>
+    <path fill="#185200" d="M297.8 299.4l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M298.5 299.4v.6h2.1l-2-.6z"/>
+    <path fill="#296300" d="M300.6 299.4l.7.6-.7-.6z"/>
+    <path fill="#184a00" d="M301.3 299.4v.6h3.5l-3.5-.6z"/>
+    <path fill="#296300" d="M304.9 299.4l.7.6-.8-.6z"/>
+    <path fill="#184a00" d="M305.6 299.4l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M306.3 299.4l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M307 299.4l.7.6-.7-.6z"/>
+    <path fill="#185200" d="M311.2 299.4l1.4 1.3-1.4-1.3z"/>
+    <path fill="#9c9494" d="M311.9 299.4l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M193.7 300l.7.7-.7-.7z"/>
+    <path fill="#313931" d="M194.4 300l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M195.1 300l-1.4.7v.7l1.4-1.4z"/>
+    <path fill="#103900" d="M205 300l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M212 300l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M212.7 300l.7.7-.7-.7m2.8 0l.7.7-.7-.7z"/>
+    <path fill="#391810" d="M216.2 300l.7.7-.7-.7z"/>
+    <path fill="#423100" d="M219.5 300.3l.5.2-.5-.2z"/>
+    <path fill="#ce2110" d="M221.1 300l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M221.8 300l.7.7-.7-.7z"/>
+    <path fill="#293100" d="M222.5 300l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M223.3 300v.7h2.8l-2.8-.7z"/>
+    <path fill="#294200" d="M226 300l.8.7-.7-.7z"/>
+    <path fill="#315221" d="M226.8 300l.7.7-.7-.7z"/>
+    <path fill="#5a6b52" d="M227.5 300l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M228.2 300l.7.7-.7-.7z"/>
+    <path fill="#6b735a" d="M231 300l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M235.2 300l.7.7-.7-.7m4.2 0l.7 2h.7l-1.4-2z"/>
+    <path fill="#315221" d="M245 300l.8.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M254.2 300l.7.7-.7-.7z"/>
+    <path fill="#4a6342" d="M267.6 300l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M271 300l.8.7-.7-.7z"/>
+    <path fill="#185200" d="M273.2 300l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M273.9 300l-.7 1.4.7-1.4z"/>
+    <path fill="#297b00" d="M276 300l1.4 1.4-1.4-1.4z"/>
+    <path fill="#103900" d="M276.7 300l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M279.5 300l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M280.2 300l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M282.3 300l1.4 1.4-1.4-1.4z"/>
+    <path fill="#185200" d="M283 300l.7.7-.7-.7m2.2 0l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M295.7 300l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M296.4 300l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M297.1 300l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M305.6 300l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M306.3 300l.7.7-.7-.7z"/>
+    <path fill="#101810" d="M307 300l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M307.7 300l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M308.4 300l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M309 300l.8.7-.7-.7z"/>
+    <path fill="#296300" d="M309.8 300l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M312.6 300l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M202.8 300.7l.7.7-.7-.7z"/>
+    <path fill="#5a5231" d="M203.6 300.7l.7.7-.8-.7z"/>
+    <path fill="#295200" d="M204.3 300.7l.6.7-.7-.7z"/>
+    <path fill="#397b00" d="M205 300.7l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M206.1 301l.5.2-.5-.3z"/>
+    <path fill="#397b00" d="M216.2 300.7l.7.7-.7-.7z"/>
+    <path fill="#293100" d="M217 300.7l.6.7-.7-.7z"/>
+    <path fill="#631808" d="M217.6 300.7l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M218.3 300.7l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M219 300.7l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M219.7 300.7l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M220.4 300.7l.7.7-.7-.7z"/>
+    <path fill="#392100" d="M221.1 300.7l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M227.5 300.7l-2.1 2 2-2z"/>
+    <path fill="#294200" d="M228.2 300.7v1.3h1.4l-1.4-1.3z"/>
+    <path fill="#213918" d="M228.9 300.7l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M229.6 300.7l1.4 1.3-1.4-1.3z"/>
+    <path fill="#8c8c8c" d="M231 300.7l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M236 300.7l.6.7-.7-.7z"/>
+    <path fill="#397b00" d="M239.4 300.7l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M241.5 300.7l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M245 300.7l.8.7-.7-.7m9.1 0l.7.7-.7-.7z"/>
+    <path fill="#294221" d="M267.6 300.7l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M271 300.7l.8.7-.7-.7z"/>
+    <path fill="#297b00" d="M273.9 300.7l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M276 300.7l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M278.8 300.7l.7.7-.7-.7z"/>
+    <path d="M279.5 300.7l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M280.2 300.7l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M282.3 300.7l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M285.1 300.7l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M288 300.7l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M289.1 301l.5.2-.5-.3z"/>
+    <path fill="#185200" d="M290 300.7l.8.7-.7-.7z"/>
+    <path fill="#297b00" d="M290.8 300.7l-.7 1.3.7-1.3m2.8 0l.7.7-.7-.7m13.4 0l.7.7-.7-.7z"/>
+    <path fill="#103910" d="M307.7 300.7l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M308.4 300.7l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M309 300.7l.8.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M309.8 300.7l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M310.5 300.7l.7.7-.7-.7z"/>
+    <path fill="#294221" d="M311.2 300.7l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M311.9 300.7l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M312.6 300.7l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M313.3 300.7l1.4 1.3-1.4-1.3z"/>
+    <path fill="#efefef" d="M201.4 301.4l-1.4 2 1.4-2z"/>
+    <path fill="#425242" d="M202.1 301.4l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M202.8 301.4l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M207.5 301.6l.5.2-.5-.2z"/>
+    <path fill="#397b00" d="M208.7 301.8l.2.5-.2-.5z"/>
+    <path fill="#294200" d="M218.8 301.6l.5.2-.5-.2z"/>
+    <path d="M220.4 301.4l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M221.1 301.4l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M223.3 301.4v.7h2l-2-.7z"/>
+    <path fill="#103900" d="M229.6 301.4l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M231 301.4l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M231.7 301.4l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M232.4 301.4l.7.7-.7-.7z"/>
+    <path fill="#422100" d="M233.1 301.4l.7.7-.7-.7z"/>
+    <path fill="#4a4208" d="M233.8 301.4l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M236.6 301.4l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M237.3 301.4v1.3h1.4l-1.4-1.3zm7 0l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M245 301.4l.8.7-.7-.7z"/>
+    <path fill="#cecece" d="M266.9 301.4l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M267.6 301.4l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M269.7 301.4l1.4 1.3-1.4-1.3z"/>
+    <path fill="#185200" d="M272.5 301.4l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M273.2 301.4l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M275.3 301.4l1.4 1.3-1.4-1.3z"/>
+    <path fill="#103900" d="M276 301.4l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M279.3 301.6l.5.2-.5-.2m3-.2l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M284.4 301.4l1.5 1.3-1.5-1.3z"/>
+    <path fill="#185200" d="M285.1 301.4l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M290.8 301.4l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M291.5 301.4l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M292.2 301.4l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M292.9 301.4l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M297.8 301.4l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M298.5 301.4l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M299.2 301.4v1.3h1.4l-1.4-1.3z"/>
+    <path fill="#297b00" d="M300 301.4l.6.7-.7-.7z"/>
+    <path fill="#185200" d="M308.4 301.4l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M309 301.4l.8.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M311.9 301.4l.7.7-.7-.7z"/>
+    <path fill="#6b735a" d="M312.6 301.4l.7.7-.7-.7z"/>
+    <path fill="#082108" d="M313.3 301.4l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M314.7 301.4l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M201.4 302l.7.7-.7-.6z"/>
+    <path fill="#295200" d="M209.2 302l.7.7-.7-.6z"/>
+    <path fill="#294200" d="M209.9 302v.7h2.8l-2.8-.6z"/>
+    <path fill="#295200" d="M212.7 302l.7.7-.7-.6z"/>
+    <path fill="#397b00" d="M213.4 302v2l2.8-2h-2.8z"/>
+    <path fill="#294200" d="M216.7 302.3l.5.2-.5-.2z"/>
+    <path fill="#397b00" d="M217.6 302l.7.7-.7-.6z"/>
+    <path fill="#103900" d="M221.8 302l.7.7-.7-.6z"/>
+    <path fill="#295200" d="M222.5 302l.7.7-.7-.6z"/>
+    <path fill="#214210" d="M226 302l.8.7-.7-.6z"/>
+    <path fill="#63636b" d="M226.8 302l.7.7-.7-.6z"/>
+    <path fill="#8c8c8c" d="M227.5 302l-.7 1.4.7-1.3z"/>
+    <path fill="#bdbdbd" d="M228.2 302v1.4h1.4l-1.4-1.3z"/>
+    <path fill="#cecece" d="M230 302.3l.5.2-.4-.2z"/>
+    <path d="M231.7 302l.7.7-.7-.6z"/>
+    <path fill="#bd2110" d="M232.4 302l.7.7-.7-.6zm1.4 0l.7.7-.7-.6z"/>
+    <path fill="#294200" d="M234.5 302l.7.7-.7-.6z"/>
+    <path fill="#397b00" d="M240.6 302.3l.5.2-.5-.2z"/>
+    <path fill="#5a6b52" d="M244.3 302l.7.7-.7-.6z"/>
+    <path fill="#7b7373" d="M266.9 302l.7.7-.7-.6z"/>
+    <path fill="#103900" d="M269.7 302l.7.7-.7-.6z"/>
+    <path fill="#297b00" d="M271.8 302l1.4 1.4-1.4-1.3z"/>
+    <path fill="#103900" d="M272.5 302l.7.7-.7-.6z"/>
+    <path fill="#184a00" d="M275.5 302.5l.3.5-.3-.5z"/>
+    <path fill="#297b00" d="M278.1 302l1.4 1.4-1.4-1.3z"/>
+    <path fill="#082108" d="M278.8 302l.7.7-.7-.6z"/>
+    <path fill="#296300" d="M282.1 302.3l.5.2-.5-.2z"/>
+    <path fill="#185200" d="M284.4 302l.8.7-.8-.6m8.7.4l.3.4-.3-.4z"/>
+    <path fill="#103900" d="M293.8 302.5l.3.5-.3-.5z"/>
+    <path fill="#297b00" d="M294.3 302l.7.7-.7-.6z"/>
+    <path fill="#296300" d="M296.4 302l.7.7-.7-.6z"/>
+    <path fill="#297b00" d="M297.1 302l-1.4 2 1.4-2z"/>
+    <path fill="#184a00" d="M300.6 302v.7h2.1l-2-.6z"/>
+    <path fill="#185200" d="M302.7 302l1.4 1.4V302h-1.4z"/>
+    <path fill="#297b00" d="M304.1 302l.7.7-.7-.6m5 0l2 2-2-2z"/>
+    <path fill="#63636b" d="M309.8 302l2 2-2-2z"/>
+    <path fill="#efefef" d="M313.3 302l.7.7-.7-.6z"/>
+    <path fill="#8c8c8c" d="M314.5 302.3l.4.2-.4-.2z"/>
+    <path fill="#314231" d="M200.7 302.7l.7.7-.7-.7z"/>
+    <path fill="#292100" d="M213.4 302.7l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M223.3 302.7l2.8 1.4v-.7l-2.8-.7z"/>
+    <path fill="#103900" d="M224 302.7l.6.7-.7-.7z"/>
+    <path fill="#292921" d="M224.7 302.7l.7.7-.8-.7z"/>
+    <path fill="#7b7373" d="M225.4 302.7l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M226 302.7l.8.7-.7-.7z"/>
+    <path fill="#9c9494" d="M227.5 302.7l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M229.6 302.7l.7.7-.7-.7z"/>
+    <path fill="#734a42" d="M231.7 302.7l.7.7-.7-.7z"/>
+    <path fill="#423100" d="M234.5 302.7l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M241 303.2l.3.4-.2-.4z"/>
+    <path fill="#397b00" d="M243.7 302.7l.7.7-.8-.7z"/>
+    <path fill="#9c9494" d="M244.3 302.7l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M266.9 302.7l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M269.2 303.2l.2.4-.2-.4z"/>
+    <path fill="#296300" d="M269.7 302.7l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M271.8 302.7l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M274.6 302.7l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M278.4 303.2l.2.4-.2-.4m3.2-.5l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M284.4 302.7l.8.7-.8-.7z"/>
+    <path fill="#297b00" d="M286.6 302.7l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M287.3 302.7l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M285.9 303.4v.7l6.3-.7h-6.3z"/>
+    <path fill="#296300" d="M292.2 302.7l-.7 1.4.7-1.4z"/>
+    <path d="M294.3 302.7l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M295 302.7l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M297.1 302.7l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M297.8 302.7l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M298.5 302.7l.7.7-.7-.7z"/>
+    <path d="M304.1 302.7l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M304.9 302.7l.7.7-.8-.7z"/>
+    <path fill="#315221" d="M305.6 302.7l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M306.3 302.7l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M307 302.7l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M200 303.4l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M209.2 303.4l-.7 1.3.7-1.3z"/>
+    <path fill="#294200" d="M209.9 303.4l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M212.7 303.4l-.7 2 .7-2z"/>
+    <path fill="#103900" d="M215.5 303.4l.7.7-.7-.7z"/>
+    <path fill="#6b735a" d="M216.2 303.4l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M217 303.4l.6.7-.7-.7z"/>
+    <path fill="#295200" d="M217.6 303.4l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M218.3 303.4v.7h2.8l-2.8-.7z"/>
+    <path fill="#294200" d="M221.1 303.4l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M221.8 303.4l.7.7-.7-.7z"/>
+    <path fill="#292100" d="M222.5 303.4l.7.7-.7-.7z"/>
+    <path fill="#428c00" d="M219.7 306.7l14.8-2c-4.6-1.8-11.3-1.6-14.8 2z"/>
+    <path fill="#397b00" d="M228.2 303.4v.7h2l-2-.7z"/>
+    <path fill="#294200" d="M230.3 303.4v.7h2l-2-.7z"/>
+    <path fill="#422100" d="M232.4 303.4l.7.7-.7-.7z"/>
+    <path fill="#5a2908" d="M233.1 303.4l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M233.8 303.4l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M234.5 303.4l1.4 1.3-1.4-1.3z"/>
+    <path fill="#214210" d="M243.7 303.4l.7.7-.8-.7z"/>
+    <path fill="#bdbdbd" d="M266.2 303.4l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M270.4 304.7l2-1.3-2 1.3z"/>
+    <path fill="#103900" d="M274.6 303.4l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M277.4 303.4l-1.4 2h2.1l-.7-2z"/>
+    <path fill="#296300" d="M281.4 303.6l.5.2-.5-.2z"/>
+    <path fill="#185200" d="M283.8 303.4l.6.7-.6-.7z"/>
+    <path fill="#296300" d="M285 303.6l.4.2-.5-.2z"/>
+    <path fill="#185200" d="M290 303.4l.8.7-.7-.7z"/>
+    <path fill="#297b00" d="M292.2 303.4l-.7 1.3.7-1.3z"/>
+    <path fill="#319400" d="M292.9 303.4v.7l9.8 2.6v-.6l-9.8-2.7z"/>
+    <path fill="#296300" d="M295 303.4l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M298.5 303.4l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M299.2 303.4l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M300 303.4l.6.7-.7-.7z"/>
+    <path fill="#297b00" d="M304.1 303.4l1.4 1.3-1.4-1.3z"/>
+    <path fill="#314231" d="M304.9 303.4l.7.7-.8-.7z"/>
+    <path fill="#cecece" d="M305.6 303.4l1.4 1.3-1.4-1.3z"/>
+    <path fill="#dedede" d="M306.3 303.4l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M307 303.4l.7.7-.7-.7z"/>
+    <path fill="#6b735a" d="M307.7 303.4l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M308.4 303.4l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M309 303.4l.8.7-.7-.7z"/>
+    <path fill="#63636b" d="M199.3 304l.7.7-.7-.6z"/>
+    <path fill="#397b00" d="M200 304l.7.7-.7-.6m2.8 0v1.3h2.1v-1.3h-2z"/>
+    <path fill="#295200" d="M205 304l.7.7-.7-.6z"/>
+    <path fill="#294200" d="M205.7 304l.7.7-.7-.6z"/>
+    <path fill="#295200" d="M206.4 304l.7.7-.7-.6z"/>
+    <path fill="#294200" d="M207.5 304.3l.5.2-.5-.2z"/>
+    <path fill="#8c8c8c" d="M215.5 304l.7.7-.7-.6z"/>
+    <path fill="#dedede" d="M217.6 304l.7.7-.7-.6z"/>
+    <path fill="#bdbdbd" d="M218.3 304v.7h2.8l-2.8-.6z"/>
+    <path fill="#52525a" d="M221.1 304l.7.7-.7-.6z"/>
+    <path fill="#397b00" d="M221.8 304l.7.7-.7-.6m12.7 0l.7.6-.7-.6z"/>
+    <path fill="#292100" d="M236 304v.7h2l-2-.6z"/>
+    <path fill="#295200" d="M238 304l.7.7-.7-.6z"/>
+    <path fill="#397b00" d="M240.1 304l.7.7-.7-.6z"/>
+    <path fill="#103900" d="M240.8 304l.7.7-.7-.6z"/>
+    <path fill="#313931" d="M243.7 304l.7.7-.8-.6z"/>
+    <path fill="#bd8c8c" d="M244.8 304.3l.5.2-.5-.2z"/>
+    <path fill="#845a52" d="M245.8 304l.7.7-.7-.6z"/>
+    <path fill="#9c4a42" d="M253.5 304l.7.7-.7-.6z"/>
+    <path fill="#ad524a" d="M254.2 304l.7.7-.7-.6z"/>
+    <path fill="#845a52" d="M262 304l.6.7-.7-.6z"/>
+    <path fill="#bd8c8c" d="M263.1 304.3l.5.2-.5-.2z"/>
+    <path fill="#293129" d="M266.2 304l.7.7-.7-.6z"/>
+    <path fill="#082108" d="M268.3 304l.7.7-.7-.6z"/>
+    <path fill="#103900" d="M277.4 304l.7.7-.7-.6z"/>
+    <path fill="#297b00" d="M280.2 304l-.7 1.4.7-1.3z"/>
+    <path fill="#103900" d="M281 304l.6.7-.7-.6z"/>
+    <path fill="#297b00" d="M283 304l1.4 1.4-1.4-1.3z"/>
+    <path fill="#184a00" d="M283.8 304l.6.7-.6-.6z"/>
+    <path fill="#319400" d="M283.8 306l17.5 2.7v2.7c2-5.8-14.2-9.7-17.6-5.3z"/>
+    <path fill="#103900" d="M292.2 304l.7.7-.7-.6z"/>
+    <path fill="#184a00" d="M292.9 304l.7.7-.7-.6z"/>
+    <path fill="#185200" d="M293.6 304l1.4 1.4-1.4-1.3z"/>
+    <path fill="#297b00" d="M294.3 304l.7.7-.7-.6z"/>
+    <path fill="#296300" d="M300 304l.6.7-.7-.6z"/>
+    <path fill="#082108" d="M300.6 304l.7.7-.7-.6z"/>
+    <path fill="#103900" d="M301.3 304l.7.7-.7-.6z"/>
+    <path fill="#296300" d="M302 304l.7.7-.7-.6z"/>
+    <path fill="#214210" d="M305.6 304l.7.7-.7-.6z"/>
+    <path fill="#9c9494" d="M309 304l.8.7-.7-.6z"/>
+    <path fill="#425242" d="M309.8 304l.7.7-.7-.6z"/>
+    <path fill="#185200" d="M311 304.3l.4.2-.4-.2z"/>
+    <path fill="#9c9494" d="M311.9 304l.7.7-.7-.6m-113.3.6l-1.4 2 1.4-2z"/>
+    <path fill="#397b00" d="M199.3 304.7l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M200.7 304.7l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M202 305l.4.2-.5-.2m9.4-.3l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M214.8 304.7l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M219.7 304.7l-.7 1.4.7-1.4z"/>
+    <path fill="#293129" d="M220.4 304.7l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M232.9 305l.4.2-.4-.2z"/>
+    <path fill="#294200" d="M233.8 304.7l.7.7-.7-.7z"/>
+    <path fill="#423100" d="M234.5 304.7l.7.7-.7-.7z"/>
+    <path fill="#422100" d="M235.7 305l.5.2-.5-.2z"/>
+    <path fill="#5a2908" d="M236.6 304.7l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M237.3 304.7v.7h2.1l-2-.7z"/>
+    <path fill="#ad1810" d="M239.4 304.7v.7h2.1l-2-.7z"/>
+    <path fill="#bd2110" d="M241.5 304.7l.7.7-.7-.7z"/>
+    <path fill="#de2110" d="M225.4 316.8v-.7l-4.3.7v-.7c19-5.7 47.1-5.7 66.2 0v.7l-3.6-.7c3.5 5 13 2 9.9-4-2.7-5-12.5-5.5-17.6-6.2-14.3-2-30-2.1-44.3.1-5 .8-11.3 1.2-15.3 4.6-3 2.4-1.9 7.3 2 8.4 2.4.7 5-1.1 7-2.2z"/>
+    <path fill="#ce2110" d="M266.2 304.7l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M269 304.7l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M270.1 305l.5.2-.5-.2z"/>
+    <path fill="#6b2908" d="M271 304.7l.8.7-.7-.7z"/>
+    <path fill="#184a00" d="M273.9 304.7l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M274.6 304.7l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M275.3 304.7l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M276.7 304.7l.7.7-.7-.7m3.5 0l-.7 1.4.7-1.4m2.8 0l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M293.6 304.7l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M295.5 305l.4.2-.4-.2z"/>
+    <path fill="#297b00" d="M296.4 304.7l-.7 1.4.7-1.4m4.2 0l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M301.3 304.7l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M302 304.7l1.4 1.4-1.4-1.4z"/>
+    <path fill="#7b7373" d="M302.7 304.7l.7.7-.7-.7z"/>
+    <path fill="#315221" d="M303.4 304.7l.8.7-.8-.7z"/>
+    <path fill="#185200" d="M304.1 304.7l.7.7-.7-.7z"/>
+    <path fill="#103910" d="M306.3 304.7l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M307 304.7l1.4 1.4-1.4-1.4z"/>
+    <path fill="#cecece" d="M310.5 304.7l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M311.2 304.7l.7.7-.7-.7z"/>
+    <path fill="#102110" d="M311.9 304.7l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M312.6 304.7l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M198.6 305.4l4.2 2-4.2-2z"/>
+    <path fill="#397b00" d="M210.1 305.8l.2.5-.2-.5z"/>
+    <path fill="#294200" d="M210.6 305.4l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M214.1 305.4l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M214.8 305.4l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M219.7 305.4l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M228.2 305.4l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M228.9 305.4l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M229.6 305.4l.7.7-.7-.7z"/>
+    <path fill="#422100" d="M230.3 305.4l.7.7-.7-.7z"/>
+    <path fill="#520808" d="M231 305.4l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M231.7 305.4l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M232.4 305.4l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M233.1 305.4l.7.7-.7-.7m41.5 0l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M275.3 305.4l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M276 305.4l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M276.7 305.4l.7.7-.7-.7z"/>
+    <path fill="#422100" d="M277.4 305.4l.7.7-.7-.7z"/>
+    <path fill="#4a4208" d="M278.1 305.4l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M278.8 305.4l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M280.2 305.4l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M282.3 305.4l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M283 305.4l.7.7-.7-.7m1.4 0l3.6.7-3.6-.7z"/>
+    <path fill="#297b00" d="M287.3 305.4l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M296.4 305.4l.7.7-.7-.7z"/>
+    <path fill="#082108" d="M297.1 305.4l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M297.8 305.4l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M298.5 305.4l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M302 305.4l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M304.1 305.4l.7.7-.7-.7z"/>
+    <path fill="#6b735a" d="M304.9 305.4l.7.7-.8-.7z"/>
+    <path fill="#184a00" d="M305.6 305.4l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M306.3 305.4l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M307 305.4l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M311.9 305.4l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M312.6 305.4l.7.7-.7-.7z"/>
+    <path fill="#292100" d="M198 306l.6.7-.7-.6z"/>
+    <path fill="#397b00" d="M202.8 306v1.4h1.4v-1.3H203m5.1.4l.2.5-.2-.5z"/>
+    <path fill="#294200" d="M209 306.3l.4.2-.5-.2z"/>
+    <path fill="#397b00" d="M212.7 306l.7.7-.7-.6z"/>
+    <path fill="#314231" d="M213.4 306l.7.7-.7-.6z"/>
+    <path fill="#dedede" d="M214.1 306l.7.7-.7-.6z"/>
+    <path fill="#425242" d="M219 306l.7.7-.7-.6z"/>
+    <path fill="#397b00" d="M222.3 306.3l.5.2-.5-.2z"/>
+    <path fill="#294200" d="M223.7 306.3l.5.2-.5-.2z"/>
+    <path fill="#292100" d="M224.7 306l.7.7-.8-.6z"/>
+    <path fill="#181000" d="M225.4 306l.7.7-.7-.6z"/>
+    <path fill="#310000" d="M226 306l.8.7-.7-.6z"/>
+    <path fill="#631808" d="M226.8 306l.7.7-.7-.6z"/>
+    <path fill="#941808" d="M227.5 306l.7.7-.7-.6z"/>
+    <path fill="#ad1810" d="M228.2 306l.7.7-.7-.6z"/>
+    <path fill="#ce2110" d="M228.9 306l.7.7-.7-.6z"/>
+    <path fill="#de3110" d="M244.3 306l.7.7-.7-.6z"/>
+    <path fill="#e75a10" d="M245 306l.8.7-.7-.6z"/>
+    <path fill="#de3110" d="M245.8 306l.7.7-.7-.6z"/>
+    <path fill="#e75a10" d="M248.6 306l.7.7-.7-.6z"/>
+    <path fill="#de3110" d="M249.3 306l.7.7-.7-.6z"/>
+    <path fill="#e75a10" d="M254.7 306.3l.4.2-.4-.2z"/>
+    <path fill="#de3110" d="M255.6 306l.7.7-.7-.6z"/>
+    <path fill="#e75a10" d="M259.6 306.3l.5.2-.5-.2z"/>
+    <path fill="#de3110" d="M260.5 306l.7.7-.7-.6z"/>
+    <path fill="#ad1810" d="M279.5 306l.7.7-.7-.6z"/>
+    <path fill="#941808" d="M280.2 306l.7.7-.7-.6z"/>
+    <path fill="#631808" d="M281 306l.6.7-.7-.6z"/>
+    <path fill="#5a2908" d="M281.6 306l.7.7-.7-.6z"/>
+    <path fill="#293100" d="M282.3 306l.7.7-.7-.6z"/>
+    <path fill="#185200" d="M283 306l.7.7-.7-.6z"/>
+    <path fill="#297b00" d="M283.8 306l.6.7-.6-.6z"/>
+    <path fill="#184a00" d="M288 306v.7h2l-2-.6z"/>
+    <path fill="#185200" d="M290 306l1.5 1.4-1.4-1.3z"/>
+    <path fill="#297b00" d="M290.8 306l.7.7-.7-.6z"/>
+    <path fill="#185200" d="M297.8 306l.7.7-.7-.6z"/>
+    <path fill="#001000" d="M298.5 306l.7.7-.7-.6z"/>
+    <path fill="#293129" d="M299.2 306l.7.7-.7-.6z"/>
+    <path fill="#214210" d="M300 306l.6.7-.7-.6z"/>
+    <path fill="#296300" d="M300.6 306l.7.7-.7-.6m2.1 0l1.4 1.3-1.4-1.3z"/>
+    <path fill="#63636b" d="M303.4 306l.8.7-.8-.6z"/>
+    <path fill="#dedede" d="M305.6 306l.7.7-.7-.6z"/>
+    <path fill="#63636b" d="M306.3 306l.7.7-.7-.6z"/>
+    <path fill="#214210" d="M307 306l.7.7-.7-.6z"/>
+    <path fill="#63636b" d="M307.7 306l.7.7-.7-.6z"/>
+    <path fill="#cecece" d="M197.2 306.7l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M204.3 306.7l.6.7-.7-.7z"/>
+    <path fill="#294200" d="M205 306.7l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M205.7 306.7l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M206.8 307l.5.2-.5-.2z"/>
+    <path fill="#397b00" d="M211.3 306.7l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M212 306.7l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M212.7 306.7l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M218.3 306.7l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M219.5 307l.5.2-.5-.2z"/>
+    <path fill="#294200" d="M218.3 308v.7l4.2-1.3-4.2.7z"/>
+    <path fill="#293100" d="M222.5 306.7l.7.7-.7-.7z"/>
+    <path fill="#5a2908" d="M223.3 306.7l.6.7-.7-.7z"/>
+    <path fill="#7b1008" d="M224 306.7l.6.7-.7-.7z"/>
+    <path fill="#b51010" d="M224.7 306.7l.7.7-.8-.7z"/>
+    <path fill="#de3110" d="M233.8 306.7l.7.7-.7-.7zm2.8 0l1.4 1.4-1.4-1.4z"/>
+    <path fill="#e75a10" d="M243.7 306.7l.7.7-.8-.7zm2.8 0l.7.7-.7-.7z"/>
+    <path fill="#f7b508" d="M249.3 306.7l.7.7-.7-.7z"/>
+    <path fill="#de3110" d="M257 306.7l1.4 1.4-1.4-1.4z"/>
+    <path fill="#ef9408" d="M258.4 306.7l1.4 1.4-1.4-1.4z"/>
+    <path fill="#e75a10" d="M261.2 306.7l1.4 1.4-1.4-1.4z"/>
+    <path fill="#de3110" d="M262 306.7l.6.7-.7-.7z"/>
+    <path fill="#e75a10" d="M264.8 306.7l.6.7-.6-.7z"/>
+    <path fill="#ef9408" d="M266.2 306.7l-.7 4.7.7-4.7z"/>
+    <path fill="#e75a10" d="M266.9 306.7l.7.7-.7-.7z"/>
+    <path fill="#de3110" d="M268.3 306.7l.7.7-.7-.7z"/>
+    <path fill="#ef9408" d="M269 306.7l.7.7-.7-.7z"/>
+    <path fill="#ef7b08" d="M269.7 306.7l.7.7-.7-.7z"/>
+    <path fill="#e75a10" d="M271 306.7l.8.7-.7-.7z"/>
+    <path fill="#de3110" d="M273.9 306.7l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M283 306.7l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M283.8 306.7l.6.7-.6-.7z"/>
+    <path fill="#4a1000" d="M284.4 306.7l.8.7-.8-.7z"/>
+    <path fill="#293100" d="M285.1 306.7l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M286.6 306.7l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M287.3 306.7v.7l7 1.4-7-2z"/>
+    <path fill="#297b00" d="M290 306.7l.8.7-.7-.7z"/>
+    <path fill="#184a00" d="M291.5 306.7l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M292.2 306.7l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M293.1 307.2l.3.4-.3-.4m6.1-.5l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M300 306.7l.6.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M300.6 306.7l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M301.3 306.7l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M302 306.7l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M302.7 306.7l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M304.1 306.7l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M307 306.7l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M307.7 306.7l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M308.4 306.7l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M201.4 307.4l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M202.1 307.4l.7.7-.7-.7m6.4 0l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M209.2 307.4l.7.7-.7-.7z"/>
+    <path fill="#396b10" d="M209.9 307.4l.7.7-.7-.7z"/>
+    <path fill="#5a6b52" d="M210.6 307.4l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M211.3 307.4l.7.7-.7-.7m6.3 0l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M218.3 307.4l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M221.1 307.4l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M221.8 307.4l.7.7-.7-.7z"/>
+    <path fill="#ef9408" d="M230.3 307.4l.7.7-.7-.7z"/>
+    <path fill="#f7b508" d="M236.6 307.4l.7.7-.7-.7m2.1 0l.7.7-.7-.7m5.4.2l.5.3-.5-.3z"/>
+    <path fill="#e75a10" d="M245 307.4l.8.7-.7-.7z"/>
+    <path fill="#f7b508" d="M246.2 307.6l.5.2-.5-.2z"/>
+    <path fill="#ef9408" d="M257 307.4l.7.7-.7-.7z"/>
+    <path fill="#f7b508" d="M261 307.6l.5.2-.5-.2z"/>
+    <path fill="#de3110" d="M264 307.4l.8.7-.8-.7z"/>
+    <path fill="#de2110" d="M268.5 307.9l.2.4-.2-.5z"/>
+    <path fill="#ef9408" d="M275.3 307.4l1.4 1.4-1.4-1.4z"/>
+    <path fill="#ef7b08" d="M277.4 307.4l.7.7-.7-.7z"/>
+    <path fill="#de3110" d="M280.2 307.4l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M285.9 307.4l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M286.6 307.4l.7.7-.7-.7z"/>
+    <path fill="#293100" d="M287.3 307.4l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M288 307.4l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M293.6 307.4l.7.7-.7-.7z"/>
+    <path fill="#001000" d="M294.3 307.4l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M295 307.4l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M295.7 307.4l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M296.4 307.4l.7.7-.7-.7m3.5 0l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M300.6 307.4l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M301.3 307.4l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M302 307.4l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M302.7 307.4l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M304 307.6l.4.2-.5-.2z"/>
+    <path fill="#bdbdbd" d="M304.9 307.4l.7.7-.8-.7z"/>
+    <path fill="#9c9494" d="M201.4 308l.7.7-.7-.6z"/>
+    <path fill="#397b00" d="M205.7 308l.7.7-.7-.6z"/>
+    <path fill="#396b10" d="M206.4 308l.7.7-.7-.6z"/>
+    <path fill="#526b42" d="M207 308l.8.7-.7-.6z"/>
+    <path fill="#8c8c8c" d="M207.8 308l.7.7-.7-.6z"/>
+    <path fill="#ada5a5" d="M208.5 308l.7.7-.7-.6z"/>
+    <path fill="#dedede" d="M209.2 308l.7.7-.7-.6z"/>
+    <path fill="#efefef" d="M217 308l.6.7-.7-.6z"/>
+    <path fill="#213918" d="M217.6 308l.7.7-.7-.6z"/>
+    <path fill="#4a1000" d="M219 308l.7.7-.7-.6z"/>
+    <path fill="#941808" d="M219.7 308l.7.7-.7-.6z"/>
+    <path fill="#de3110" d="M224.4 308.3l.5.2-.5-.2z"/>
+    <path fill="#ef7b08" d="M229.6 308l.7.7-.7-.6zm3.7.5l.3.5-.3-.5z"/>
+    <path fill="#de2110" d="M235.2 308l.7.7-.7-.6z"/>
+    <path fill="#de3110" d="M236 308l.6.7-.7-.6z"/>
+    <path fill="#e75a10" d="M237.3 308l.7.7-.7-.6z"/>
+    <path fill="#de3110" d="M245.8 308l.7.7-.7-.6z"/>
+    <path fill="#ef7b08" d="M246.5 308l.7.7-.7-.6m1.4 0l.7.6-.7-.6zm2 0l.8.6-.7-.6z"/>
+    <path fill="#de2110" d="M255.6 308v2h.7l-.7-2z"/>
+    <path fill="#ef9408" d="M256.3 308l.7.7-.7-.6z"/>
+    <path fill="#de3110" d="M259.1 308l.7.7-.7-.6z"/>
+    <path fill="#de2110" d="M259.8 308l.7 2-.7-2z"/>
+    <path fill="#e75a10" d="M264 308l.8.7-.8-.6z"/>
+    <path fill="#ef9408" d="M264.8 308l.6.7-.6-.6z"/>
+    <path fill="#ef7b08" d="M274.6 308l.7.7-.7-.6z"/>
+    <path fill="#ffce08" d="M275.3 308l.7.7-.7-.6z"/>
+    <path fill="#f7b508" d="M276.7 308l.7.7-.7-.6z"/>
+    <path fill="#de3110" d="M278.1 308l.7.7-.7-.6z"/>
+    <path fill="#ef7b08" d="M279.5 308l.7.7-.7-.6z"/>
+    <path fill="#ffce08" d="M280.2 308l-.7 2 .7-2z"/>
+    <path fill="#ef7b08" d="M281.2 308.5l.2.5-.2-.5z"/>
+    <path fill="#e75a10" d="M283 308l.7.7-.7-.6z"/>
+    <path fill="#de3110" d="M283.8 308l.6.7-.6-.6z"/>
+    <path fill="#941808" d="M288 308l.7.7-.7-.6z"/>
+    <path fill="#5a2908" d="M288.7 308l.7.7-.7-.6z"/>
+    <path fill="#184a00" d="M289.4 308l.7.7-.7-.6z"/>
+    <path fill="#297b00" d="M290 308l.8.7-.7-.6m4.4.4l.3.5-.3-.5z"/>
+    <path fill="#184a00" d="M295 308l.7.7-.7-.6z"/>
+    <path fill="#424242" d="M295.7 308l.7.7-.7-.6z"/>
+    <path fill="#8c8c8c" d="M296.4 308l.7.7-.7-.6z"/>
+    <path fill="#5a6b52" d="M297.1 308l.7.7-.7-.6z"/>
+    <path fill="#214210" d="M297.8 308l.7.7-.7-.6z"/>
+    <path fill="#296300" d="M298.5 308l.7.7-.7-.6z"/>
+    <path fill="#297b00" d="M301.3 308l1.4 1.4-1.4-1.3z"/>
+    <path fill="#314231" d="M302 308l.7.7-.7-.6z"/>
+    <path fill="#dedede" d="M303.4 308l.8.7-.8-.6z"/>
+    <path fill="#63636b" d="M304.1 308l.7.7-.7-.6z"/>
+    <path fill="#101810" d="M304.9 308l.7.7-.8-.6z"/>
+    <path fill="#8c8c8c" d="M201.4 308.7l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M204.3 308.7l.6.7-.7-.7z"/>
+    <path fill="#6b735a" d="M205 308.7l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M205.7 308.7l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M217 308.7l.6.7-.7-.7z"/>
+    <path fill="#311000" d="M217.6 308.7l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M218.3 308.7l.7.7-.7-.7z"/>
+    <path fill="#ef7b08" d="M221.8 308.7l.7.7-.7-.7z"/>
+    <path fill="#ef9408" d="M222.5 308.7l.7.7-.7-.7z"/>
+    <path fill="#f7b508" d="M223.3 308.7l.6.7-.7-.7z"/>
+    <path fill="#ffce08" d="M224 308.7l.6.7-.7-.7z"/>
+    <path fill="#ef9408" d="M224.7 308.7l.7.7-.8-.7z"/>
+    <path fill="#de3110" d="M231 308.7l.7.7-.7-.7zm6.3 0l.7.7-.7-.7z"/>
+    <path fill="#ef9408" d="M249 309l.5.2-.5-.2z"/>
+    <path fill="#ef7b08" d="M256.3 308.7l.7.7-.7-.7m7.7 0l.8.7-.8-.7z"/>
+    <path fill="#de3110" d="M268.3 308.7l.7.7-.7-.7z"/>
+    <path fill="#ef9408" d="M269.7 308.7l.7.7-.7-.7z"/>
+    <path fill="#de2110" d="M276 308.7v2.7l2.8-.6-2.8-2z"/>
+    <path fill="#e75a10" d="M278.1 308.7l.7.7-.7-.7z"/>
+    <path fill="#f7b508" d="M279.5 308.7l.7.7-.7-.7m4 .3l.5.2-.5-.2z"/>
+    <path fill="#de3110" d="M285.1 308.7l.7.7-.7-.7z"/>
+    <path fill="#e75a10" d="M285.9 308.7l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M289.4 308.7l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M290 308.7l.8.7-.7-.7z"/>
+    <path fill="#184a00" d="M291.3 309l.4.2-.4-.2z"/>
+    <path fill="#185200" d="M292.2 308.7l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M293.4 309l.4.2-.4-.2z"/>
+    <path fill="#319400" d="M295 308.7l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M295.7 308.7l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M296.4 308.7l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M297.1 308.7l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M297.8 308.7l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M298.5 308.7l1.4 2-1.4-2z"/>
+    <path fill="#63636b" d="M299.2 308.7l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M300 308.7l.6.7-.7-.7z"/>
+    <path fill="#297b00" d="M300.6 308.7l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M302.7 308.7l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M202.8 309.4l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M203.6 309.4l.7.7-.8-.7z"/>
+    <path fill="#dedede" d="M204.3 309.4l.6.7-.7-.7m11.3 0l.7.7-.7-.7z"/>
+    <path fill="#524242" d="M216.2 309.4l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M217 309.4l.6.7-.7-.7z"/>
+    <path fill="#de3110" d="M219.5 309.6l.5.3-.5-.3z"/>
+    <path fill="#f7b508" d="M221.8 309.4l.7.7-.7-.7z"/>
+    <path fill="#ef7b08" d="M223.3 309.4l.6.7-.7-.7z"/>
+    <path fill="#de2110" d="M227.5 309.4l.7.7-.7-.7z"/>
+    <path fill="#ef7b08" d="M228.2 309.4l.7.7-.7-.7z"/>
+    <path fill="#e75a10" d="M231.2 309.9l.3.4-.3-.4z"/>
+    <path fill="#ef7b08" d="M246.5 309.4l.7.7-.7-.7z"/>
+    <path fill="#de3110" d="M247.2 309.4l.7.7-.7-.7z"/>
+    <path fill="#ffce08" d="M248.1 309.9l.2.4-.2-.4m2.1 0l.2.4-.2-.4z"/>
+    <path fill="#ef9408" d="M256.8 309.6l.4.3-.4-.3z"/>
+    <path fill="#de3110" d="M259.1 309.4l.7.7-.7-.7z"/>
+    <path fill="#ef9408" d="M263.4 309.4l.7.7-.8-.7zm8.4 0l-.7 2.7.7-2.7z"/>
+    <path fill="#de3110" d="M273.9 309.4l.7.7-.7-.7z"/>
+    <path fill="#ffce08" d="M274.8 309.9l.3.4-.3-.4z"/>
+    <path fill="#ef7b08" d="M275.5 309.9l.3.4-.3-.4z"/>
+    <path fill="#e75a10" d="M278.8 309.4l.7.7-.7-.7z"/>
+    <path fill="#f7b508" d="M280.2 309.4l.7.7-.7-.7z"/>
+    <path fill="#ef9408" d="M281.2 309.9l.2.4-.2-.4z"/>
+    <path fill="#de3110" d="M282.3 309.4l.7.7-.7-.7z"/>
+    <path fill="#ef7b08" d="M285.1 309.4l.7.7-.7-.7z"/>
+    <path fill="#ffce08" d="M285.9 309.4l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M290.8 309.4l.7.7-.7-.7z"/>
+    <path fill="#210800" d="M291.5 309.4l.7.7-.7-.7z"/>
+    <path fill="#292921" d="M292.2 309.4l.7.7-.7-.7z"/>
+    <path fill="#313931" d="M292.9 309.4l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M293.6 309.4l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M294.3 309.4l1.4 1.4-1.4-1.4z"/>
+    <path fill="#8c8c8c" d="M295 309.4l.7.7-.7-.7z"/>
+    <path fill="#5a6b52" d="M295.7 309.4l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M296.4 309.4l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M297.1 309.4l.7.7-.7-.7z"/>
+    <path fill="#293129" d="M297.8 309.4l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M300 309.4l.6.7-.7-.7z"/>
+    <path fill="#294221" d="M300.6 309.4l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M302 309.4l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M302.7 309.4l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M202.1 310l.7.7-.7-.6z"/>
+    <path fill="#63636b" d="M202.8 310l.7.7-.7-.6z"/>
+    <path fill="#9c9494" d="M214.8 310l.7.7-.7-.6z"/>
+    <path fill="#631808" d="M215.5 310l.7.7-.7-.6z"/>
+    <path fill="#ce2110" d="M216.2 310l.7.7-.7-.6z"/>
+    <path fill="#e75a10" d="M217.6 310l.7.7-.7-.6z"/>
+    <path fill="#ef9408" d="M218.3 310l.7.7-.7-.6zm2.1 0l.7.7-.7-.6z"/>
+    <path fill="#ef7b08" d="M221.8 310l.7.7-.7-.6z"/>
+    <path fill="#de3110" d="M223.3 310l.6.7-.7-.6z"/>
+    <path fill="#ef7b08" d="M226 310l.8.7-.7-.6z"/>
+    <path fill="#de3110" d="M229.6 310l.7.7-.7-.6z"/>
+    <path fill="#e75a10" d="M235.2 310l.7.7-.7-.6z"/>
+    <path fill="#de2110" d="M236 310l.6.7-.7-.6z"/>
+    <path fill="#f7b508" d="M244.1 310.3l.5.2-.5-.2m2.1 0l.5.2-.5-.2z"/>
+    <path fill="#e75a10" d="M247.2 310l-.7 1.4.7-1.3z"/>
+    <path fill="#ef9408" d="M249 310.3l.5.2-.5-.2z"/>
+    <path fill="#e75a10" d="M250.7 310l.7.7-.7-.6z"/>
+    <path fill="#ef7b08" d="M255.6 310l.7.7-.7-.6z"/>
+    <path fill="#e75a10" d="M257 310l.7.7-.7-.6z"/>
+    <path fill="#de3110" d="M257.7 310l.7.7-.7-.6z"/>
+    <path fill="#f7b508" d="M261 310.3l.5.2-.5-.2z"/>
+    <path fill="#ef7b08" d="M263.4 310l.7.7-.8-.6z"/>
+    <path fill="#f7b508" d="M264.8 310l.6.7-.6-.6z"/>
+    <path fill="#ef9408" d="M270.4 310l.7.7-.7-.6zm9.1 0l.7.7-.7-.6z"/>
+    <path fill="#ef7b08" d="M280.2 310l.7.7-.7-.6z"/>
+    <path fill="#e75a10" d="M282.3 310l.7.7-.7-.6m2.1 0l.8.6-.8-.6z"/>
+    <path fill="#f7b508" d="M285.1 310l.7.7-.7-.6z"/>
+    <path fill="#ef9408" d="M285.9 310l.7.7-.7-.6z"/>
+    <path fill="#e75a10" d="M288 310l.7.7-.7-.6z"/>
+    <path fill="#ffce08" d="M289 310.5l.1.5-.2-.5z"/>
+    <path fill="#7b1008" d="M292.2 310l.7.7-.7-.6z"/>
+    <path fill="#185200" d="M292.9 310l1.4 1.4v-1.3h-1.4z"/>
+    <path fill="#314231" d="M294.3 310l.7.7-.7-.6z"/>
+    <path fill="#dedede" d="M297.1 310l.7.7-.7-.6z"/>
+    <path fill="#9c9494" d="M297.8 310l.7.7-.7-.6z"/>
+    <path fill="#63636b" d="M298.5 310l.7.7-.7-.6z"/>
+    <path fill="#6b735a" d="M300.6 310l.7.7-.7-.6z"/>
+    <path fill="#184a00" d="M302 310l.7.7-.7-.6z"/>
+    <path fill="#52525a" d="M202.1 310.8l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M214.1 310.8l.7.6-.7-.6z"/>
+    <path fill="#631818" d="M214.8 310.8l.7.6-.7-.6z"/>
+    <path fill="#de3110" d="M217 310.8l.6.6-.7-.6z"/>
+    <path fill="#ffce08" d="M217.6 310.8l.7.6-.7-.6z"/>
+    <path fill="#ef7b08" d="M219 310.8l.7.6-.7-.6z"/>
+    <path fill="#ef9408" d="M219.7 310.8l.7.6-.7-.6z"/>
+    <path fill="#e75a10" d="M221.8 310.8l.7.6-.7-.6m4.3 0l.7.6-.7-.6z"/>
+    <path fill="#f7b508" d="M227.5 310.8l.7.6-.7-.6z"/>
+    <path fill="#e75a10" d="M228.2 310.8l.7.6-.7-.6z"/>
+    <path fill="#f7b508" d="M230.3 310.8l.7.6-.7-.6z"/>
+    <path fill="#ef9408" d="M231 310.8l-.7 1.3.7-1.4zm9.8 0l.7.6-.7-.6z"/>
+    <path fill="#e75a10" d="M243.7 310.8l.7.6-.8-.6z"/>
+    <path fill="#ef9408" d="M247.2 310.8l.7.6-.7-.6z"/>
+    <path fill="#f7b508" d="M247.9 310.8l.7.6-.7-.6m2 0l.8.6-.7-.6z"/>
+    <path fill="#ef9408" d="M250.7 310.8l.7.6-.7-.6z"/>
+    <path fill="#f7b508" d="M256.3 310.8l.7.6-.7-.6z"/>
+    <path fill="#ef9408" d="M258.4 310.8l.7.6-.7-.6z"/>
+    <path fill="#e75a10" d="M263.4 310.8l.7.6-.8-.6z"/>
+    <path fill="#ef7b08" d="M264.8 310.8l.6.6-.6-.6z"/>
+    <path fill="#f7b508" d="M274.6 310.8l.7.6-.7-.6z"/>
+    <path fill="#ef9408" d="M275.3 310.8l.7.6-.7-.6z"/>
+    <path fill="#ef7b08" d="M276.7 310.8l1.4 1.3-1.4-1.4z"/>
+    <path fill="#e75a10" d="M278.1 310.8l.7.6-.7-.6z"/>
+    <path fill="#ffce08" d="M278.8 310.8l.7.6-.7-.6z"/>
+    <path fill="#f7b508" d="M283 310.8l.7.6-.7-.6z"/>
+    <path fill="#ef7b08" d="M284.4 310.8l-.6 1.3.6-1.4zm1.5 0l.7.6-.7-.6z"/>
+    <path fill="#de3110" d="M287.3 310.8l.7.6-.7-.6z"/>
+    <path fill="#941808" d="M292.9 310.8l.7.6-.7-.6z"/>
+    <path fill="#319400" d="M294.3 310.8l.7.6-.7-.6z"/>
+    <path fill="#296300" d="M295.2 311.2l.3.5-.3-.5z"/>
+    <path fill="#314231" d="M295.7 310.8l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M296.4 310.8l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M300.6 310.8l.7.6-.7-.6z"/>
+    <path fill="#4a6342" d="M302 310.8l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M213.4 311.4l.7.7-.7-.7z"/>
+    <path fill="#631818" d="M214.1 311.4l.7.7-.7-.7z"/>
+    <path fill="#de2110" d="M219 311.4l.7.7-.7-.7z"/>
+    <path fill="#e75a10" d="M219.7 311.4l.7.7-.7-.7z"/>
+    <path fill="#de3110" d="M221.1 311.4l.7.7-.7-.7z"/>
+    <path fill="#de2110" d="M222 311.9l.3.4-.2-.4z"/>
+    <path fill="#ef9408" d="M223.5 311.9l.2.4-.2-.4z"/>
+    <path fill="#e75a10" d="M224 311.4l1.3 1.4-1.4-1.4z"/>
+    <path fill="#de3110" d="M226 311.4l.8.7-.7-.7z"/>
+    <path fill="#e75a10" d="M227.5 311.4l.7.7-.7-.7zm5.6 0l.7.7-.7-.7z"/>
+    <path fill="#de3110" d="M238 311.4l.7.7-.7-.7zm6.4 0l.7.7-.7-.7z"/>
+    <path fill="#e75a10" d="M245 311.4l.8.7-.7-.7z"/>
+    <path fill="#de3110" d="M245.8 311.4l.7.7-.7-.7m1.8.2l.5.3-.5-.3m2.8 0l.5.3-.5-.3zm8.7-.2l.7.7-.7-.7z"/>
+    <path fill="#e75a10" d="M259.8 311.4l.7.7-.7-.7z"/>
+    <path fill="#de3110" d="M260.5 311.4l.7.7-.7-.7z"/>
+    <path fill="#e75a10" d="M262.6 311.4l.7.7-.7-.7m1.4 0l.7.7-.7-.7z"/>
+    <path fill="#de3110" d="M264.8 311.4v.7h2l-2-.7m3.5 0l.7.7-.7-.7z"/>
+    <path fill="#ef9408" d="M269 311.4l.7.7-.7-.7z"/>
+    <path fill="#ef7b08" d="M274.6 311.4l.7.7-.7-.7z"/>
+    <path fill="#ef9408" d="M279.5 311.4l.7.7-.7-.7z"/>
+    <path fill="#ffce08" d="M281.2 311.9l.2.4-.2-.4z"/>
+    <path fill="#f7b508" d="M282.3 311.4l.7.7-.7-.7m2.1 0l.8.7-.8-.7z"/>
+    <path fill="#e75a10" d="M285.9 311.4l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M293.6 311.4l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M294.3 311.4l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M295.7 311.4l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M296.4 311.4l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M297.1 311.4l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M300.9 311.9l.2.4-.2-.4z"/>
+    <path fill="#296300" d="M301.3 311.4l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M302 311.4l.7.7-.7-.7m-88.6.7l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M214.1 312l.7.8-.7-.7z"/>
+    <path fill="#e75a10" d="M217.6 312l.7.8-.7-.7z"/>
+    <path fill="#ffce08" d="M218.3 312l.7.8-.7-.7z"/>
+    <path fill="#ef7b08" d="M221.1 312l.7.8-.7-.7z"/>
+    <path fill="#f7b508" d="M222.5 312l.7.8-.7-.7z"/>
+    <path fill="#de2110" d="M224 312l.6.8-.7-.7z"/>
+    <path fill="#ef7b08" d="M225.4 312l.7.8-.7-.7z"/>
+    <path fill="#f7b508" d="M226.8 312l.7.8-.7-.7z"/>
+    <path fill="#ef7b08" d="M227.5 312l.7.8-.7-.7z"/>
+    <path fill="#e75a10" d="M231 312l.7.8-.7-.7z"/>
+    <path fill="#ef7b08" d="M231.7 312l.7.8-.7-.7z"/>
+    <path fill="#e75a10" d="M232.4 312l.7.8-.7-.7m42.9 0l.7.7-.7-.7z"/>
+    <path fill="#ef9408" d="M276 312l.7.8-.7-.7z"/>
+    <path fill="#e75a10" d="M276.7 312l.7.8-.7-.7z"/>
+    <path fill="#de3110" d="M277.4 312l.7.8-.7-.7z"/>
+    <path fill="#e75a10" d="M278.8 312l.7.8-.7-.7m1.4 0l.7.7-.7-.7z"/>
+    <path fill="#de3110" d="M281.6 312l.7.8-.7-.7z"/>
+    <path fill="#ffce08" d="M282.6 312.5l.2.5-.2-.5z"/>
+    <path fill="#e75a10" d="M283.5 312.3l.5.2-.5-.2z"/>
+    <path fill="#de2110" d="M285.9 312l.7.8-.7-.7z"/>
+    <path fill="#ef7b08" d="M286.6 312l.7.8-.7-.7z"/>
+    <path fill="#e75a10" d="M288 312l.7.8-.7-.7zm1.6.5l.2.5-.2-.5z"/>
+    <path fill="#736b6b" d="M294.3 312l.7.8-.7-.7z"/>
+    <path fill="#cecece" d="M295 312l.7.8-.7-.7z"/>
+    <path fill="#8c8c8c" d="M295.7 312l.7.8-.7-.7z"/>
+    <path fill="#294221" d="M296.4 312l.7.8-.7-.7z"/>
+    <path fill="#082108" d="M297.1 312l.7.8-.7-.7z"/>
+    <path fill="#8c8c8c" d="M297.8 312l.7.8-.7-.7z"/>
+    <path fill="#103900" d="M301.3 312l.7.8-.7-.7z"/>
+    <path fill="#dedede" d="M302 312l.7.8-.7-.7z"/>
+    <path fill="#6b4242" d="M213.4 312.8l.7.6-.7-.6z"/>
+    <path fill="#ef7b08" d="M219.7 312.8l.7.6-.7-.6z"/>
+    <path fill="#ef9408" d="M220.4 312.8l.7.6-.7-.6z"/>
+    <path fill="#ef7b08" d="M222.5 312.8l.7.6-.7-.6z"/>
+    <path fill="#f7b508" d="M225.4 312.8l.7.6-.7-.6z"/>
+    <path fill="#e75a10" d="M226.8 312.8l.7.6-.7-.6z"/>
+    <path fill="#de3110" d="M227.5 312.8l.7.6-.7-.6z"/>
+    <path fill="#ad1810" d="M243 312.8v.6h4.2l-4.3-.6z"/>
+    <path fill="#7b1008" d="M247.2 312.8l.7.6-.7-.6z"/>
+    <path fill="#631808" d="M247.9 312.8v.6h13.3l-13.3-.6z"/>
+    <path fill="#ad1810" d="M261.2 312.8v.6h4.3l-4.3-.6z"/>
+    <path fill="#ce2110" d="M265.5 312.8l.7.6-.7-.6z"/>
+    <path fill="#de3110" d="M280.2 312.8l.7.6-.7-.6z"/>
+    <path fill="#ef7b08" d="M281 312.8l.6.6-.7-.6z"/>
+    <path fill="#e75a10" d="M281.6 312.8l.7.6-.7-.6z"/>
+    <path fill="#de3110" d="M283.5 313l.5.2-.5-.2z"/>
+    <path fill="#f7b508" d="M285.1 312.8l1.4 1.3-1.4-1.3z"/>
+    <path fill="#e75a10" d="M285.9 312.8l.7.6-.7-.6z"/>
+    <path fill="#ef9408" d="M288 312.8l.7.6-.7-.6z"/>
+    <path fill="#631818" d="M294.3 312.8l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M297.4 313.2l.2.5-.2-.5z"/>
+    <path fill="#7b7373" d="M297.8 312.8l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M298.5 312.8l.7.6-.7-.6m2.1 0l.7.6-.7-.6z"/>
+    <path fill="#52525a" d="M301.3 312.8l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M205 313.4l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M205.7 313.4l.7.7-.7-.7z"/>
+    <path fill="#6b4242" d="M206.4 313.4l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M209.2 313.4l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M209.9 313.4l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M210.6 313.4l.7.7-.7-.7z"/>
+    <path fill="#6b2908" d="M213.4 313.4l.7.7-.7-.7z"/>
+    <path fill="#ef9408" d="M218.3 313.4l.7.7-.7-.7z"/>
+    <path fill="#ffce08" d="M219.3 313.9l.2.4-.2-.4z"/>
+    <path fill="#f7b508" d="M221.1 313.4l.7.7-.7-.7z"/>
+    <path fill="#e75a10" d="M224 313.4l.6.7-.7-.7z"/>
+    <path fill="#de3110" d="M224.7 313.4l.7.7-.8-.7z"/>
+    <path fill="#ad1810" d="M234.3 313.6l.4.3-.4-.2z"/>
+    <path fill="#941808" d="M235.2 313.4l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M236 313.4l.6.7-.7-.7z"/>
+    <path fill="#733129" d="M236.6 313.4l.7.7-.7-.7z"/>
+    <path fill="#734a42" d="M237.8 313.6l.5.3-.5-.2z"/>
+    <path fill="#845a52" d="M238.7 313.4l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M239.4 313.4v.7h2.8l-2.8-.7z"/>
+    <path fill="#ada5a5" d="M242.2 313.4l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M243 313.4v.7h2l-2-.7z"/>
+    <path fill="#cecece" d="M245 313.4l.8.7-.7-.7z"/>
+    <path fill="#63636b" d="M245.8 313.4l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M246.5 313.4l2 2-2-2z"/>
+    <path fill="#428c00" d="M247.2 313.4c1.8 2.3 3.3 3.2 6.3 2.7l-6.3-2.7z"/>
+    <path fill="#397b00" d="M251.4 313.4l1.4 3.4h1.4l-2.8-3.4z"/>
+    <path fill="#63636b" d="M252 313.4l2.2 2-2.1-2z"/>
+    <path fill="#cecece" d="M254.9 313.4l-.7 1.4.7-1.4z"/>
+    <path fill="#214210" d="M255.6 313.4l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M256.3 316.8l5.6-2.7c-2.8-1.1-6.2-.8-5.6 2.7z"/>
+    <path fill="#185200" d="M262 313.4l.6.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M262.6 313.4l.7.7-.7-.7z"/>
+    <path fill="#946b63" d="M269 313.4l.7.7-.7-.7z"/>
+    <path fill="#734a42" d="M270.1 313.6l.5.3-.5-.2z"/>
+    <path fill="#8c3939" d="M271 313.4l.8.7-.7-.7z"/>
+    <path fill="#631808" d="M271.8 313.4l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M272.5 313.4l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M273.7 313.6l.4.3-.4-.2z"/>
+    <path fill="#ce2110" d="M274.6 313.4l.7.7-.7-.7z"/>
+    <path fill="#ef9408" d="M285 313.6l.4.3-.5-.2m1.7-.3l.7.7-.7-.7z"/>
+    <path fill="#ef7b08" d="M287.3 313.4l.7.7-.7-.7z"/>
+    <path fill="#f7b508" d="M288 313.4l.7.7-.7-.7z"/>
+    <path fill="#de3110" d="M289.4 313.4l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M294.3 313.4l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M297.8 313.4l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M298.5 313.4l.7.7-.7-.7zm3.5 0l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M302.7 313.4l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M204.3 314.1l.6.7-.7-.7z"/>
+    <path fill="#631818" d="M205 314.1l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M205.7 314.1l.7.7-.7-.7z"/>
+    <path fill="#de2110" d="M205 320.1c7.3-4.2 16.8 7.4 22.5-2l-.7-.7c-2.4.9-5.2 2.8-7.8 2.4-1.7-.2-19.4-11.7-14 .3z"/>
+    <path fill="#bd2110" d="M209.9 314.1l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M210.6 314.1l.7.7-.7-.7z"/>
+    <path fill="#631818" d="M211.3 314.1l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M212 314.1l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M212.7 314.1l.7.7-.7-.7z"/>
+    <path fill="#734a42" d="M213.4 314.1l.7.7-.7-.7z"/>
+    <path fill="#de3110" d="M218.3 314.1l.7.7-.7-.7z"/>
+    <path fill="#ef7b08" d="M219.7 314.1l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M228.2 314.1l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M228.9 314.1l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M229.6 314.1l.7.7-.7-.7z"/>
+    <path fill="#733129" d="M230.3 314.1l.7.7-.7-.7z"/>
+    <path fill="#734a42" d="M231 314.1l.7.7-.7-.7z"/>
+    <path fill="#8c6363" d="M231.7 314.1l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M232.9 314.3l.4.2-.4-.2z"/>
+    <path fill="#bdbdbd" d="M234.3 314.3l.4.2-.4-.2z"/>
+    <path fill="#efefef" d="M235.2 314.1l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M246.5 314.1l2 2-2-2z"/>
+    <path fill="#103910" d="M254.9 314.1l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M261.2 314.1l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M262 314.1l.6.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M273.7 314.3l.4.2-.4-.2z"/>
+    <path fill="#8c8c8c" d="M275 314.3l.5.2-.4-.2z"/>
+    <path fill="#8c7373" d="M276 314.1l.7.7-.7-.7z"/>
+    <path fill="#734a42" d="M276.7 314.1l.7.7-.7-.7z"/>
+    <path fill="#733939" d="M277.4 314.1l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M278.1 314.1l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M278.8 314.1l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M279.5 314.1l.7.7-.7-.7z"/>
+    <path fill="#e75a10" d="M285.9 314.1l.7.7-.7-.7m2.3.5l.2.4-.2-.4z"/>
+    <path fill="#6b2908" d="M294.3 314.1l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M295 314.1l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M295.7 314.1l.7.7-.7-.7z"/>
+    <path fill="#733129" d="M296.4 314.1l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M297.1 314.1l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M297.8 314.1l.7.7-.7-.7z"/>
+    <path fill="#de2110" d="M282.3 317.4c-1 9.4 16.6.1 21.1 2.7 2.5-5-3.2-7.4-7.6-4.7-2 1.3-3.1 3.9-5.8 4.4-2.6.4-5.4-1.4-7.7-2.4z"/>
+    <path fill="#ce2110" d="M302 314.1l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M302.7 314.1l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M303.4 314.1l.8.7-.8-.7m-99.8.7l.6.6-.7-.6z"/>
+    <path fill="#631808" d="M204.3 314.8l.6.6-.7-.6z"/>
+    <path fill="#941808" d="M212.7 314.8l.7.6-.7-.6z"/>
+    <path fill="#310000" d="M213.4 314.8l.7.6-.7-.6z"/>
+    <path fill="#ce2110" d="M214.1 314.8l.7.6-.7-.6z"/>
+    <path fill="#ef9408" d="M219 314.8l.7.6-.7-.6z"/>
+    <path fill="#e75a10" d="M219.7 314.8l.7.6-.7-.6z"/>
+    <path fill="#ce2110" d="M224 314.8l.6.6-.7-.6z"/>
+    <path fill="#ad1810" d="M224.7 314.8l.7.6-.8-.6z"/>
+    <path fill="#7b1008" d="M225.4 314.8l.7.6-.7-.6z"/>
+    <path fill="#6b2908" d="M226 314.8l.8.6-.7-.6z"/>
+    <path fill="#734a42" d="M226.8 314.8l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M227.5 314.8l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M228.2 314.8l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M228.9 314.8l.7.6-.7-.6z"/>
+    <path fill="#293129" d="M254.2 314.8l.7.6-.7-.6z"/>
+    <path fill="#297b00" d="M254.9 314.8l1.4 2-1.4-2m5 0l-.8 1.3.7-1.3z"/>
+    <path fill="#103910" d="M260.5 314.8l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M261.2 314.8l-.7 1.3.7-1.3z"/>
+    <path fill="#bdbdbd" d="M278.8 314.8l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M279.5 314.8l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M280.2 314.8l.7.6-.7-.6z"/>
+    <path fill="#734a42" d="M281 314.8l.6.6-.7-.6z"/>
+    <path fill="#733129" d="M281.6 314.8l.7.6-.7-.6z"/>
+    <path fill="#7b1008" d="M282.3 314.8l.7.6-.7-.6z"/>
+    <path fill="#ad1810" d="M283 314.8l.7.6-.7-.6z"/>
+    <path fill="#ce2110" d="M283.8 314.8l.6.6-.6-.6z"/>
+    <path fill="#f7b508" d="M288.7 314.8l.7.6-.7-.6z"/>
+    <path fill="#420000" d="M294.3 314.8l.7.6-.7-.6z"/>
+    <path fill="#941808" d="M295 314.8l.7.6-.7-.6m8.4 0l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M304.1 314.8l.7.6-.7-.6z"/>
+    <path fill="#efefef" d="M202.8 315.4l.7.7-.7-.7z"/>
+    <path fill="#842118" d="M203.6 315.4l.7.7-.8-.7z"/>
+    <path fill="#bd2110" d="M213.4 315.4l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M214.1 315.4l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M221.8 315.4l.7.7-.7-.7z"/>
+    <path fill="#520808" d="M224.7 315.4l.7.7-.8-.7z"/>
+    <path fill="#bdbdbd" d="M225.4 315.4l.7.7-.7-.7z"/>
+    <path fill="#214210" d="M248.6 315.4l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M254.2 315.4l.7.7-.7-.7z"/>
+    <path fill="#293129" d="M259.8 315.4l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M282.3 315.4l.7.7-.7-.7z"/>
+    <path fill="#391810" d="M283 315.4l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M283.8 315.4l.6.7-.6-.7z"/>
+    <path fill="#5a1008" d="M284.4 315.4l.8.7-.8-.7z"/>
+    <path fill="#631808" d="M285.1 315.4l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M285.9 315.4l1.4 1.4-1.4-1.4m7.7 0l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M294.3 315.4l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M304.1 315.4l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M304.9 315.4l.7.7-.8-.7z"/>
+    <path fill="#8c8c8c" d="M202.8 316.1l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M203.6 316.1l.7.7-.8-.7z"/>
+    <path fill="#7b1008" d="M214.1 316.1l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M214.8 316.1l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M221.6 316.3l.5.2-.5-.2z"/>
+    <path fill="#631818" d="M225.4 316.1l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M226 316.1l.8.7-.7-.7z"/>
+    <path fill="#cecece" d="M245.8 316.1l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M246.5 316.1l.7.7-.7-.7z"/>
+    <path fill="#734a42" d="M247.2 316.1v.7h2l-2-.7z"/>
+    <path fill="#293100" d="M249.3 316.1l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M250 316.1l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M254.2 316.1l.7.7-.7-.7z"/>
+    <path fill="#082108" d="M254.9 316.1l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M257.7 316.1l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M258.4 316.1l.7.7-.7-.7z"/>
+    <path fill="#392100" d="M259.1 316.1l.7.7-.7-.7z"/>
+    <path fill="#733939" d="M259.8 316.1l.7.7-.7-.7z"/>
+    <path fill="#734a42" d="M260.5 316.1l.7.7-.7-.7z"/>
+    <path fill="#736b6b" d="M261.2 316.1l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M262 316.1l.6.7-.7-.7z"/>
+    <path fill="#cecece" d="M281.6 316.1l-.7 1.3.7-1.3z"/>
+    <path fill="#5a1010" d="M282.3 316.1l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M283 316.1l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M285.9 316.1l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M292.9 316.1l1.4 1.3-1.4-1.3z"/>
+    <path fill="#5a1008" d="M293.6 316.1l.7.7-.7-.7z"/>
+    <path fill="#736b6b" d="M304.9 316.1l.7.7-.8-.7z"/>
+    <path fill="#8c6363" d="M202.8 316.8l.7.6-.7-.6z"/>
+    <path fill="#520808" d="M214.8 316.8l.7.6-.7-.6z"/>
+    <path fill="#ce2110" d="M215.5 316.8l.7.6-.7-.6z"/>
+    <path fill="#bd2110" d="M224.7 316.8l.7.6-.8-.6z"/>
+    <path fill="#7b1008" d="M225.4 316.8l-.7 1.3.7-1.3z"/>
+    <path fill="#100808" d="M226 316.8l.8.6-.7-.6z"/>
+    <path fill="#9c9494" d="M226.8 316.8l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M243 316.8l.6.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M243.7 316.8l.7.6-.8-.6z"/>
+    <path fill="#8c8c8c" d="M244.3 316.8l.7.6-.7-.6z"/>
+    <path fill="#52525a" d="M245 316.8l.8.6-.7-.6z"/>
+    <path fill="#7b1008" d="M245.8 316.8l.7.6-.7-.6z"/>
+    <path fill="#ce2110" d="M246.5 316.8l.7.6-.7-.6z"/>
+    <path fill="#de2110" d="M245.8 320.1l5.6.7c-.4-4.1-4.8-5.1-5.6-.7z"/>
+    <path fill="#b51010" d="M250 316.8l.7.6-.7-.6z"/>
+    <path fill="#7b1008" d="M250.7 316.8l.7.6-.7-.6z"/>
+    <path fill="#292100" d="M251.4 316.8l.7.6-.7-.6z"/>
+    <path fill="#422100" d="M252 316.8l.8.6-.7-.6z"/>
+    <path fill="#941808" d="M252.8 316.8l.7.6-.7-.6z"/>
+    <path fill="#ad1810" d="M253.5 316.8v.6h2.1l-2.1-.6z"/>
+    <path fill="#311000" d="M255.6 316.8l.7.6-.7-.6z"/>
+    <path fill="#293100" d="M256.3 316.8l.7.6-.7-.6z"/>
+    <path fill="#631808" d="M257 316.8l.7.6-.7-.6z"/>
+    <path fill="#941808" d="M257.7 316.8l.7.6-.7-.6z"/>
+    <path fill="#de2110" d="M257 317.4l.7 3.4 5-.7c-.6-3.3-2.6-3.3-5.7-2.7z"/>
+    <path fill="#b51010" d="M262 316.8l.6.6-.7-.6z"/>
+    <path fill="#423131" d="M262.6 316.8l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M263.4 316.8l.7.6-.8-.6z"/>
+    <path fill="#9c9494" d="M264 316.8l.8.6-.8-.6z"/>
+    <path fill="#bdbdbd" d="M264.8 316.8l.6.6-.6-.6z"/>
+    <path fill="#efefef" d="M265.5 316.8l.7.6-.7-.6z"/>
+    <path fill="#101810" d="M281.6 316.8l.7.6-.7-.6z"/>
+    <path fill="#631808" d="M282.3 316.8l.7.6-.7-.6z"/>
+    <path fill="#b51010" d="M283 316.8l.7.6-.7-.6z"/>
+    <path fill="#520808" d="M292.9 316.8l.7.6-.7-.6z"/>
+    <path fill="#734a42" d="M305 317.2l.3.5-.2-.5z"/>
+    <path fill="#8c8c8c" d="M202.8 317.4l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M214.8 317.4l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M215.5 317.4l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M223.3 317.4l.6.7-.7-.7z"/>
+    <path fill="#5a1008" d="M224 317.4l.6.7-.7-.7z"/>
+    <path fill="#ce2110" d="M225.4 317.4l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M226.8 317.4l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M227.5 317.4l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M240.1 317.4l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M240.8 317.4l.7.7-.7-.7z"/>
+    <path fill="#736b6b" d="M241.5 317.4l.7.7-.7-.7z"/>
+    <path fill="#631818" d="M242.2 317.4l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M243 317.4l.6.7-.7-.7z"/>
+    <path fill="#b51010" d="M243.7 317.4l.7.7-.8-.7z"/>
+    <path fill="#de2110" d="M244.3 317.4l-2.8.7v4c2.5-1 3.9-2 2.8-4.7z"/>
+    <path fill="#5a1008" d="M245 317.4l.8.7-.7-.7z"/>
+    <path fill="#520808" d="M251.4 317.4l.7.7-.7-.7z"/>
+    <path fill="#de2110" d="M252 317.4v4h4.3v-4h-4.2z"/>
+    <path fill="#520808" d="M256.3 317.4l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M262.6 317.4l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M263.4 317.4l.7.7-.8-.7z"/>
+    <path fill="#bd2110" d="M264 317.4l.8.7-.8-.7z"/>
+    <path fill="#ad1810" d="M264.8 317.4l.6.7-.6-.7z"/>
+    <path fill="#7b1008" d="M265.5 317.4l.7.7-.7-.7z"/>
+    <path fill="#6b4242" d="M266.2 317.4l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M266.9 317.4l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M267.6 317.4l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M280.2 317.4l.7.7-.7-.7z"/>
+    <path fill="#5a1010" d="M281 317.4l.6.7-.7-.7z"/>
+    <path fill="#ce2110" d="M281.6 317.4l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M283 317.4l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M283.8 317.4l.6.7-.6-.7z"/>
+    <path fill="#941808" d="M284.4 317.4l.8.7-.8-.7z"/>
+    <path fill="#7b1008" d="M292.2 317.4l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M292.9 317.4l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M203 318.6l.3.4-.2-.4z"/>
+    <path fill="#ad1810" d="M203.6 318.1l.7.7-.8-.7z"/>
+    <path fill="#ce2110" d="M207 318.1l.8.7-.7-.7z"/>
+    <path fill="#bd2110" d="M207.8 318.1l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M215.5 318.1l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M216.2 318.1l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M221.8 318.1l.7.7-.7-.7z"/>
+    <path fill="#520808" d="M222.5 318.1l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M223.3 318.1l.6.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M227.5 318.1l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M240.4 318.6l.2.4-.2-.4z"/>
+    <path fill="#941808" d="M240.8 318.1l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M245 318.1v2.7h.8l-.7-2.7m6.3 0v2.7h.7l-.7-2.7z"/>
+    <path fill="#941808" d="M256.3 318.1l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M257 318.1l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M262.6 318.1l-2 3.4h2V320l1.4.7V318h-1.4z"/>
+    <path fill="#de2110" d="M264 318.1v3.4l2.9.6.7-3.3-3.6-.7z"/>
+    <path fill="#bd2110" d="M266.9 318.1l.7.7-.7-.7z"/>
+    <path fill="#6b4242" d="M267.6 318.1l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M280.2 318.1l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M281 318.1l.6.7-.7-.7m3.6 0l.6.7-.7-.7z"/>
+    <path fill="#520808" d="M285.1 318.1l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M285.9 318.1l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M291.5 318.1l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M292.2 318.1l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M300.4 318.3l.5.3-.5-.3m3.8-.2l.6.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M304.9 318.1l.7.7-.8-.7z"/>
+    <path fill="#cecece" d="M198 318.8l.6.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M198.6 318.8l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M202.1 318.8l.7.6-.7-.6z"/>
+    <path fill="#5a1010" d="M203.6 318.8l.7.6-.8-.6z"/>
+    <path fill="#bd2110" d="M205.7 318.8l.7.6-.7-.6z"/>
+    <path fill="#5a1008" d="M206.4 318.8l.7.6-.7-.6z"/>
+    <path fill="#631808" d="M207 318.8l.8.6-.7-.6z"/>
+    <path fill="#941808" d="M207.8 318.8l.7.6-.7-.6z"/>
+    <path fill="#631808" d="M208.5 318.8l.7.6-.7-.6z"/>
+    <path fill="#7b1008" d="M209.2 318.8l.7.6-.7-.6z"/>
+    <path fill="#5a1008" d="M209.9 318.8l.7.6-.7-.6z"/>
+    <path fill="#bd2110" d="M210.6 318.8l.7.6-.7-.6z"/>
+    <path fill="#5a1008" d="M216.2 318.8l.7.6-.7-.6z"/>
+    <path fill="#941808" d="M217.2 319.2l.2.5-.3-.5z"/>
+    <path fill="#b51010" d="M220.4 318.8l.7.6-.7-.6z"/>
+    <path fill="#5a1008" d="M221.1 318.8l.7.6-.7-.6z"/>
+    <path fill="#631808" d="M221.8 318.8l.7.6-.7-.6z"/>
+    <path fill="#ce2110" d="M222.5 318.8l.7.6-.7-.6z"/>
+    <path fill="#941808" d="M226.8 318.8l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M227.5 318.8l.7.6-.7-.6z"/>
+    <path fill="#ad1810" d="M240.8 318.8l.7.6-.7-.6m15.5 0v1.3h1.4v-1.3h-1.4z"/>
+    <path fill="#8c8c8c" d="M267.8 319.2l.2.5-.2-.5z"/>
+    <path fill="#dedede" d="M280.2 318.8l.7.6-.7-.6z"/>
+    <path fill="#631808" d="M281 318.8l.6.6-.7-.6z"/>
+    <path fill="#941808" d="M285.9 318.8l.7.6-.7-.6z"/>
+    <path fill="#5a1008" d="M286.6 318.8l.7.6-.7-.6z"/>
+    <path fill="#ad1810" d="M287.3 318.8l.7.6-.7-.6z"/>
+    <path fill="#b51010" d="M290.8 318.8l.7.6-.7-.6z"/>
+    <path fill="#520808" d="M291.5 318.8l.7.6-.7-.6z"/>
+    <path fill="#ce2110" d="M292.2 318.8l.7.6-.7-.6m5 0l.6.6-.7-.6z"/>
+    <path fill="#7b1008" d="M297.8 318.8l.7.6-.7-.6z"/>
+    <path fill="#631808" d="M299 319l.5.2-.5-.2z"/>
+    <path fill="#941808" d="M300 318.8l.6.6-.7-.6z"/>
+    <path fill="#7b1008" d="M300.6 318.8l.7.6-.7-.6z"/>
+    <path fill="#5a1008" d="M301.3 318.8l.7.6-.7-.6z"/>
+    <path fill="#b51010" d="M302 318.8l.7.6-.7-.6z"/>
+    <path fill="#520808" d="M304.1 318.8l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M305.3 319l.5.2-.5-.2z"/>
+    <path fill="#bdbdbd" d="M309.5 319l.5.2-.5-.2z"/>
+    <path fill="#ada5a5" d="M195.8 319.4l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M196.5 319.4l.7.7-.7-.7z"/>
+    <path fill="#733129" d="M197.2 319.4l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M198 319.4l.6.7-.7-.7z"/>
+    <path fill="#de2110" d="M194.4 321.5c2.8 5.7 17.6 7.3 21.1 1.3-8.2 1-13.4-5.2-21.1-1.3z"/>
+    <path fill="#ce2110" d="M202.1 319.4l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M202.8 319.4l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M203.6 319.4l.7.7-.8-.7z"/>
+    <path fill="#ce2110" d="M206.4 319.4l.7.7-.7-.7z"/>
+    <path fill="#de2110" d="M214.8 322.1c-6.6-5-10.9 1.3 0 0z"/>
+    <path fill="#ce2110" d="M209.9 319.4l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M210.6 319.4l.7.7-.7-.7z"/>
+    <path fill="#520808" d="M211.3 319.4l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M212 319.4l.7.7-.7-.7zm8.4 0l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M221.1 319.4l.7.7-.7-.7z"/>
+    <path fill="#5a2121" d="M226.8 319.4l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M240.8 319.4l.7.7-.7-.7z"/>
+    <path fill="#736b6b" d="M281 319.4l.6.7-.7-.7z"/>
+    <path fill="#ce2110" d="M281.6 319.4l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M287.3 319.4l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M288 319.4l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M295.7 319.4l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M296.9 319.7l.5.2-.5-.2z"/>
+    <path fill="#bd2110" d="M297.8 319.4l.7.7-.7-.7z"/>
+    <path fill="#de2110" d="M293.6 321.5v.6c3.6.5 7.7 1.8 8.4-2.7l-8.4 2z"/>
+    <path fill="#520808" d="M302 319.4l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M303.4 319.4l.8.7-.8-.7z"/>
+    <path fill="#5a1008" d="M304.1 319.4l-.7 1.4.8-1.4z"/>
+    <path fill="#ad1810" d="M304.9 319.4l.7.7-.8-.7z"/>
+    <path fill="#ce2110" d="M305.6 319.4l.7.7-.7-.7z"/>
+    <path fill="#de2110" d="M292.9 322.8c3.5 6 18.3 4.4 21-1.3-7.6-3.9-12.8 2.3-21 1.3z"/>
+    <path fill="#941808" d="M309.8 319.4l.7.7-.7-.7z"/>
+    <path fill="#6b2908" d="M310.5 319.4l.7.7-.7-.7z"/>
+    <path fill="#736b6b" d="M311.2 319.4l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M311.9 319.4l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M312.6 319.4l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M194.4 320.1l-1.4 2 1.4-2z"/>
+    <path fill="#5a3131" d="M195.1 320.1l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M195.8 320.1l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M204.3 320.1l.6.7-.7-.7z"/>
+    <path fill="#ad1810" d="M212 320.1l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M213.2 320.4l.4.2-.4-.2z"/>
+    <path fill="#bd2110" d="M214.1 320.1l.7.7-.7-.7z"/>
+    <path fill="#631818" d="M226 320.1l.8.7-.7-.7z"/>
+    <path fill="#cecece" d="M226.8 320.1l-.7 1.4.7-1.4z"/>
+    <path fill="#631808" d="M240.8 320.1l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M245.8 320.1v.7l2.8.7-2.8-1.4z"/>
+    <path fill="#941808" d="M256.3 320.1l1.4 1.4-1.4-1.4z"/>
+    <path fill="#ce2110" d="M257 320.1l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M259.8 320.1l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M262.6 320.1l1.4 1.4-1.4-1.4z"/>
+    <path fill="#ad1810" d="M266.9 320.1l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M267.6 320.1l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M281 320.1l.6.7-.7-.7z"/>
+    <path fill="#5a2121" d="M281.6 320.1l1.4 1.4-1.4-1.4z"/>
+    <path fill="#ce2110" d="M293.6 320.1l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M294.3 320.1l-.7 1.4.7-1.4z"/>
+    <path fill="#5a1008" d="M295 320.1l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M295.7 320.1l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M302 320.1l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M302.7 320.1l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M311.9 320.1l.7.7-.7-.7z"/>
+    <path fill="#5a2121" d="M312.6 320.1l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M313.3 320.1l.7.7-.7-.7z"/>
+    <path fill="#631818" d="M194.4 320.8l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M204.3 320.8l.6.7-.7-.7z"/>
+    <path fill="#210800" d="M205 320.8l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M205.7 320.8l-.7 1.3.7-1.3z"/>
+    <path fill="#ce2110" d="M213.4 320.8l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M214.1 320.8l.7.7-.7-.7z"/>
+    <path fill="#420000" d="M214.8 320.8l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M215.5 320.8l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M224.7 320.8l.7.7-.8-.7z"/>
+    <path fill="#5a1010" d="M225.4 320.8l.7.7-.7-.7z"/>
+    <path fill="#734a42" d="M240.8 320.8l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M244.3 320.8l.7.7-.7-.7z"/>
+    <path fill="#310000" d="M245 320.8l.8.7-.7-.7z"/>
+    <path fill="#941808" d="M246 321.2l.2.5-.2-.5z"/>
+    <path fill="#b51010" d="M247 321l.4.2-.5-.2z"/>
+    <path fill="#7b1008" d="M248.6 320.8l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M249.3 320.8l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M250 320.8l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M250.7 320.8l.7.7-.7-.7z"/>
+    <path fill="#520808" d="M251.4 320.8l.7.7-.7-.7z"/>
+    <path fill="#420000" d="M256.3 320.8l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M257.7 320.8v.7h2.1l-2-.7z"/>
+    <path fill="#941808" d="M259.8 320.8l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M261.2 320.8l.7.7-.7-.7z"/>
+    <path fill="#310000" d="M262.6 320.8l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M266.9 320.8l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M267.6 320.8l.7.7-.7-.7m14 0l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M283 320.8l.7.7-.7-.7m9.2 0l.7.7-.7-.7z"/>
+    <path fill="#520808" d="M292.9 320.8l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M294.3 320.8l.7.7-.7-.7m7.7 0l.7.7-.7-.7z"/>
+    <path fill="#210800" d="M302.7 320.8l.7.7-.7-.7z"/>
+    <path fill="#bd2110" d="M303.4 320.8l.8.7-.8-.7z"/>
+    <path fill="#7b1008" d="M313.3 320.8l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M314 320.8l.7.7-.7-.7z"/>
+    <path fill="#631818" d="M193.7 321.5l3.5 4-3.5-4z"/>
+    <path fill="#420000" d="M205.7 321.5l.7.6-.7-.6z"/>
+    <path fill="#842118" d="M214.8 321.5l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M215.5 321.5l.7.6-.7-.6z"/>
+    <path fill="#524242" d="M216.2 321.5l.7.6-.7-.6z"/>
+    <path fill="#7b1008" d="M217 321.5l.6.6-.7-.6z"/>
+    <path fill="#b51010" d="M217.6 321.5l.7.6-.7-.6m5.7 0l.6.6-.7-.6z"/>
+    <path fill="#5a1008" d="M224 321.5l.6.6-.7-.6z"/>
+    <path fill="#7b7373" d="M224.7 321.5l.7.6-.8-.6z"/>
+    <path fill="#efefef" d="M225.4 321.5l.7.6-.7-.6z"/>
+    <path fill="#845a52" d="M240.8 321.5l.7.6-.7-.6z"/>
+    <path fill="#bd2110" d="M242.2 321.5l.7.6-.7-.6z"/>
+    <path fill="#631818" d="M243 321.5l.6.6-.7-.6z"/>
+    <path fill="#7b5252" d="M243.7 321.5l.7.6-.8-.6z"/>
+    <path fill="#8c8c8c" d="M244.3 321.5l.7.6-.7-.6z"/>
+    <path fill="#63636b" d="M245 321.5l.8.6-.7-.6z"/>
+    <path fill="#de2110" d="M246.5 321.5v.6h2.8l-2.8-.6z"/>
+    <path fill="#b51010" d="M249.3 321.5l.7.6-.7-.6z"/>
+    <path fill="#941808" d="M250 321.5l.7.6-.7-.6z"/>
+    <path fill="#5a1008" d="M250.7 321.5l.7.6-.7-.6z"/>
+    <path fill="#392100" d="M251.4 321.5l.7.6-.7-.6z"/>
+    <path fill="#292100" d="M252 321.5l.8.6-.7-.6z"/>
+    <path fill="#7b1008" d="M252.8 321.5l.7.6-.7-.6z"/>
+    <path fill="#ad1810" d="M254 321.7l.4.2-.4-.2z"/>
+    <path fill="#941808" d="M254.9 321.5l.7.6-.7-.6z"/>
+    <path fill="#311000" d="M255.6 321.5l.7.6-.7-.6z"/>
+    <path fill="#292100" d="M256.3 321.5l.7.6-.7-.6z"/>
+    <path fill="#4a1000" d="M257 321.5l.7.6-.7-.6z"/>
+    <path fill="#7b1008" d="M257.7 321.5l.7.6-.7-.6z"/>
+    <path fill="#ad1810" d="M258.4 321.5l.7.6-.7-.6z"/>
+    <path fill="#de2110" d="M259.1 321.5v.6h2.8l-2.8-.6z"/>
+    <path fill="#b51010" d="M262 321.5l.6.6-.7-.6z"/>
+    <path fill="#5a1010" d="M262.6 321.5l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M263.4 321.5l.7.6-.8-.6z"/>
+    <path fill="#7b7373" d="M264 321.5l.8.6-.8-.6z"/>
+    <path fill="#6b2131" d="M264.8 321.5l.6.6-.6-.6z"/>
+    <path fill="#941808" d="M265.5 321.5l.7.6-.7-.6z"/>
+    <path fill="#631808" d="M266.9 321.5l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M283 321.5l.7.6-.7-.6z"/>
+    <path fill="#631818" d="M283.8 321.5l.6.6-.6-.6z"/>
+    <path fill="#ad1810" d="M284.4 321.5l.8.6-.8-.6z"/>
+    <path fill="#b51010" d="M290 321.5l.8.6-.7-.6z"/>
+    <path fill="#7b1008" d="M290.8 321.5l.7.6-.7-.6z"/>
+    <path fill="#733939" d="M291.5 321.5l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M292.2 321.5l.7.6-.7-.6z"/>
+    <path fill="#631818" d="M292.9 321.5l.7.6-.7-.6z"/>
+    <path fill="#941808" d="M314 321.5l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M314.7 321.5l.7.6-.7-.6z"/>
+    <path fill="#63636b" d="M193 322.1l2.8 2.7-2.8-2.7z"/>
+    <path fill="#941808" d="M205.7 322.1l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M206.4 322.1l1.4 1.4-1.4-1.4z"/>
+    <path fill="#ce2110" d="M212 322.1l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M213 322.6l.2.4-.3-.4z"/>
+    <path fill="#631808" d="M213.9 322.4l.4.2-.4-.2z"/>
+    <path fill="#7b1008" d="M214.8 322.1l.7.7-.7-.7z"/>
+    <path fill="#392121" d="M215.5 322.1l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M217 322.1l.6.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M217.6 322.1l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M218.3 322.1l.7.7-.7-.7z"/>
+    <path fill="#6b2131" d="M219 322.1l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M219.7 322.1l.7.7-.7-.7z"/>
+    <path fill="#9c4239" d="M220.4 322.1l.7.7-.7-.7z"/>
+    <path fill="#ad524a" d="M221.1 322.1l.7.7-.7-.7z"/>
+    <path fill="#734a42" d="M221.8 322.1l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M222.5 322.1l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M223.3 322.1l.6.7-.7-.7z"/>
+    <path fill="#efefef" d="M224 322.1l.6.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M240.8 322.1l.7.7-.7-.7z"/>
+    <path fill="#6b2131" d="M241.5 322.1l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M242.2 322.1l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M243 322.1l.6.7-.7-.7m2.1 0l.8.7-.8-.7z"/>
+    <path fill="#313931" d="M245.8 322.1l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M246.5 322.1v.7h2.8l-2.8-.7z"/>
+    <path fill="#296300" d="M249.3 322.1l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M250 322.1l-.7 2.7.7-2.7z"/>
+    <path fill="#319400" d="M251.2 322.4l.4.2-.4-.2z"/>
+    <path fill="#214210" d="M252 322.1l-.6 1.4.7-1.4z"/>
+    <path fill="#9c9494" d="M252.8 322.1l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M254 322.4l.4.2-.4-.2z"/>
+    <path fill="#efefef" d="M254.9 322.1l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M255.6 322.1l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M256.3 322.1l.7.7-.7-.7z"/>
+    <path fill="#428c00" d="M257 322.1c2.6 3 7 6.8 10.6 3.4L257 322z"/>
+    <path fill="#397b00" d="M258.4 322.1l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M259.1 322.1v.7h2.8l-2.8-.7z"/>
+    <path fill="#103900" d="M262 322.1l.6.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M262.6 322.1l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M265.5 322.1l.7.7-.7-.7z"/>
+    <path fill="#524242" d="M266.2 322.1l.7.7-.7-.7z"/>
+    <path fill="#5a1010" d="M266.9 322.1l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M284.4 322.1l.8.7-.8-.7z"/>
+    <path fill="#7b7373" d="M285.1 322.1l.7.7-.7-.7z"/>
+    <path fill="#734a42" d="M285.9 322.1l.7.7-.7-.7z"/>
+    <path fill="#ad524a" d="M287 322.4l.5.2-.5-.2z"/>
+    <path fill="#631808" d="M288 322.1l.7.7-.7-.7z"/>
+    <path fill="#733129" d="M288.7 322.1l.7.7-.7-.7z"/>
+    <path fill="#736b6b" d="M289.4 322.1l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M290 322.1l.8.7-.7-.7z"/>
+    <path fill="#dedede" d="M290.8 322.1l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M292.2 322.1l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M292.9 322.1l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M294 322.4l.5.2-.4-.2z"/>
+    <path fill="#ad1810" d="M295.2 322.6l.3.4-.3-.4z"/>
+    <path fill="#ce2110" d="M295.7 322.1l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M301.3 322.1l.7.7-.7-.7z"/>
+    <path fill="#631818" d="M314 322.1l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M314.7 322.1l-.7 1.4.7-1.4z"/>
+    <path fill="#efefef" d="M315.4 322.1l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M192.3 322.8l2.8 2.7-2.8-2.7z"/>
+    <path fill="#cecece" d="M193 322.8l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M206.4 322.8l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M208.2 323l.5.2-.5-.2z"/>
+    <path fill="#941808" d="M209.2 322.8l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M209.9 322.8l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M210.6 322.8l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M211.8 323l.4.2-.4-.2z"/>
+    <path fill="#5a1008" d="M215.5 322.8l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M216.2 322.8l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M240.8 322.8l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M244.3 322.8l.7.7-.7-.7z"/>
+    <path fill="#294221" d="M245 322.8l.8.7-.7-.7z"/>
+    <path fill="#297b00" d="M245.8 322.8l.7.7-.7-.7z"/>
+    <path fill="#319400" d="M241.5 325.5c3.3 3 6.8.2 9.2-2.7l-9.2 2.7z"/>
+    <path fill="#cecece" d="M252 322.8l-.6 1.3.7-1.3z"/>
+    <path fill="#8c8c8c" d="M256.3 322.8l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M257 322.8l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M262.6 322.8l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M263.4 322.8l.7.7-.8-.7z"/>
+    <path fill="#efefef" d="M264 322.8l.8.7-.8-.7z"/>
+    <path fill="#dedede" d="M266.9 322.8l.7.7-.7-.7z"/>
+    <path fill="#420000" d="M292.2 322.8l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M295.7 322.8l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M296.4 322.8l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M297.1 322.8l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M297.8 322.8l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M298.5 322.8l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M299.2 322.8v.7h2.1l-2-.7z"/>
+    <path fill="#ad1810" d="M301.3 322.8l.7.7-.7-.7z"/>
+    <path fill="#520808" d="M313.3 322.8l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M314.7 322.8l-1.4 2 1.4-2z"/>
+    <path fill="#8c8c8c" d="M315.4 322.8l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M191.6 323.5l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M193.7 323.5l.7.6-.7-.6z"/>
+    <path fill="#7b1008" d="M215.5 323.5l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M216.2 323.5l.7.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M243.7 323.5l.7.6-.8-.6z"/>
+    <path fill="#184a00" d="M244.3 323.5l.7.6-.7-.6z"/>
+    <path fill="#314231" d="M250.7 323.5l-.7 1.3.7-1.3z"/>
+    <path fill="#bdbdbd" d="M257 323.5l.7.6-.7-.6z"/>
+    <path fill="#213918" d="M257.7 323.5l.7.6-.7-.6m6.4 0l.6.6-.6-.6z"/>
+    <path fill="#bdbdbd" d="M264.8 323.5l.6.6-.6-.6z"/>
+    <path fill="#5a1008" d="M292.2 323.5l.7.6-.7-.6z"/>
+    <path fill="#631808" d="M312.6 323.5l.7.6-.7-.6z"/>
+    <path fill="#424242" d="M313.3 323.5l.7.6-.7-.6z"/>
+    <path fill="#7b7373" d="M314.7 323.5l-1.4 2 1.4-2z"/>
+    <path fill="#9c9494" d="M315.4 323.5l-.7 1.3.7-1.3z"/>
+    <path fill="#cecece" d="M192.3 324.1l.7.7-.7-.7m2.1 0l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M214.8 324.1l-.7 1.4.7-1.4z"/>
+    <path fill="#63636b" d="M215.5 324.1l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M242.2 324.1l.7.7-.7-.7z"/>
+    <path fill="#294221" d="M243 324.1l.6.7-.7-.7z"/>
+    <path fill="#296300" d="M243.7 324.1l.7.7-.8-.7z"/>
+    <path fill="#efefef" d="M250.7 324.1l.7.7-.7-.7m7 0l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M258.4 324.1l.7.7-.7-.7z"/>
+    <path fill="#397b00" d="M259.1 324.1l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M264.8 324.1l.6.7-.6-.7z"/>
+    <path fill="#425242" d="M265.5 324.1l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M266.2 324.1l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M292.2 324.1l.7.7-.7-.7z"/>
+    <path fill="#ad1810" d="M292.9 324.1l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M311.9 324.1l-1.4 2 1.4-2z"/>
+    <path fill="#424242" d="M312.6 324.1l-1.4 2 1.4-2z"/>
+    <path fill="#7b7373" d="M316.1 324.1l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M191.6 324.8l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M193 324.8l1.4 1.3-1.4-1.3z"/>
+    <path fill="#7b7373" d="M193.7 324.8l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M195.1 324.8l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M195.8 324.8l1.4 1.3-1.4-1.3z"/>
+    <path fill="#5a3131" d="M214.8 324.8l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M240.8 324.8l.7.7-.7-.7z"/>
+    <path fill="#425242" d="M241.5 324.8l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M242.2 324.8l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M248.6 324.8l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M249.3 324.8l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M259.1 324.8l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M259.8 324.8l.7.7-.7-.7m6.4 0l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M266.9 324.8l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M267.6 324.8l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M292.9 324.8l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M293.6 324.8l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M312.6 324.8l.7.7-.7-.7z"/>
+    <path fill="#a59494" d="M314 324.8l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M315.4 324.8l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M316.1 324.8l-.7 2 .7-2z"/>
+    <path fill="#bdbdbd" d="M192.3 325.5l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M194.4 325.5l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M195.1 325.5l5 4-5-4z"/>
+    <path fill="#9c9494" d="M195.8 325.5l.7.7-.7-.7z"/>
+    <path fill="#7b1008" d="M197.2 325.5l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M203.6 325.5l.7.7-.8-.7z"/>
+    <path fill="#631808" d="M204.3 325.5l.6.7-.7-.7z"/>
+    <path fill="#8c3939" d="M205 325.5l.7.7-.7-.7z"/>
+    <path fill="#843129" d="M209.9 325.5l.7.7-.7-.7z"/>
+    <path fill="#6b5252" d="M213.4 325.5l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M214.1 325.5l.7.7-.7-.7m26 0l.7.7-.7-.7z"/>
+    <path fill="#184a00" d="M240.8 325.5l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M247.2 325.5l.7.7-.7-.7z"/>
+    <path fill="#294221" d="M247.9 325.5l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M248.6 325.5l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M259.8 325.5l.7.7-.7-.7z"/>
+    <path fill="#213918" d="M260.5 325.5l.7.7-.7-.7z"/>
+    <path fill="#103900" d="M267.6 325.5l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M268.3 325.5l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M293.6 325.5l.7.7-.7-.7z"/>
+    <path fill="#736b6b" d="M294.3 325.5l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M295 325.5l.7.7-.7-.7z"/>
+    <path fill="#842118" d="M297.8 325.5l.7.7-.7-.7z"/>
+    <path fill="#8c4a4a" d="M298.5 325.5l.7.7-.7-.7zm4.2 0l.7.7-.7-.7z"/>
+    <path fill="#631808" d="M303.4 325.5l.8.7-.8-.7z"/>
+    <path fill="#941808" d="M304.1 325.5l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M304.9 325.5l.7.7-.8-.7z"/>
+    <path fill="#cecece" d="M311.9 325.5l-2.1 2.7 2-2.7z"/>
+    <path fill="#8c8c8c" d="M312.6 325.5l-3.5 4.7 3.5-4.7z"/>
+    <path fill="#ada5a5" d="M313.8 325.7l.4.2-.4-.2z"/>
+    <path fill="#dedede" d="M192.3 326.1l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M193 326.1l1.4 2-1.4-2z"/>
+    <path fill="#efefef" d="M194.4 326.1l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M196.5 326.1l.7.7-.7-.7z"/>
+    <path fill="#52525a" d="M197.2 326.1l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M198 326.1l.6.7-.7-.7z"/>
+    <path fill="#bd2110" d="M201.4 326.1l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M202.1 326.1l.7.7-.7-.7z"/>
+    <path fill="#736b6b" d="M202.8 326.1l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M203.6 326.1l.7.7-.8-.7z"/>
+    <path fill="#efefef" d="M240.1 326.1l.7.7-.7-.7z"/>
+    <path fill="#314231" d="M240.8 326.1l.7.7-.7-.7z"/>
+    <path fill="#297b00" d="M241.5 326.1l1.4 1.4-1.4-1.4z"/>
+    <path fill="#185200" d="M246.5 326.1l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M247.2 326.1l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M247.9 326.1l.7.7-.7-.7m12.6 0l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M261.2 326.1l.7.7-.7-.7z"/>
+    <path fill="#294200" d="M262 326.1l.6.7-.7-.7z"/>
+    <path fill="#397b00" d="M266.9 326.1l-.7 1.4.7-1.4z"/>
+    <path fill="#52525a" d="M267.6 326.1l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M268.3 326.1l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M304.1 326.1l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M304.9 326.1l.7.7-.8-.7z"/>
+    <path fill="#631818" d="M305.6 326.1l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M306.3 326.1l.7.7-.7-.7m3.5 0l-.7 1.4.7-1.4z"/>
+    <path fill="#292921" d="M310.5 326.1l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M313.3 326.1l.7.7-.7-.7m1.4 0l-2.1 2.7 2-2.7z"/>
+    <path fill="#bdbdbd" d="M193.7 326.8l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M195.1 326.8l.7.7-.7-.7z"/>
+    <path fill="#424242" d="M198 326.8l.6.7-.7-.7z"/>
+    <path fill="#ad1810" d="M198.6 326.8l.7.7-.7-.7m2.1 0l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M201.4 326.8l.7.7-.7-.7z"/>
+    <path fill="#efefef" d="M202.1 326.8l.7.7-.7-.7z"/>
+    <path fill="#63636b" d="M241.5 326.8l.7.7-.7-.7z"/>
+    <path fill="#296300" d="M245 326.8l.8.7-.7-.7z"/>
+    <path fill="#425242" d="M245.8 326.8l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M246.5 326.8l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M262 326.8l.6.7-.7-.7z"/>
+    <path fill="#425242" d="M262.6 326.8l.7.7-.7-.7z"/>
+    <path fill="#295200" d="M263.4 326.8l.7.7-.8-.7z"/>
+    <path fill="#63636b" d="M266.9 326.8l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M306.3 326.8l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M307 326.8l.7.7-.7-.7z"/>
+    <path fill="#292921" d="M309.8 326.8l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M312.6 326.8l.7.7-.7-.7z"/>
+    <path fill="#ada5a5" d="M314.7 326.8l-1.4 2 1.4-2z"/>
+    <path fill="#cecece" d="M195.8 327.5l2.8 2.7-2.8-2.7z"/>
+    <path fill="#7b7373" d="M196.5 327.5l.7.7-.7-.7z"/>
+    <path fill="#292921" d="M198.6 327.5l.7.7-.7-.7z"/>
+    <path fill="#b51010" d="M199.3 327.5l.7.7-.7-.7z"/>
+    <path fill="#941808" d="M200 327.5l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M200.7 327.5l.7.7-.7-.7m41.5 0l.7.7-.7-.7z"/>
+    <path fill="#185200" d="M243 327.5l.6.7-.7-.7z"/>
+    <path fill="#296300" d="M243.7 327.5l.7.7-.8-.7z"/>
+    <path fill="#395231" d="M244.3 327.5l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M245 327.5l.8.7-.7-.7m18.3 0l.7.7-.8-.7z"/>
+    <path fill="#5a5231" d="M264 327.5l.8.7-.8-.7z"/>
+    <path fill="#397b00" d="M264.8 327.5l.6.7-.6-.7z"/>
+    <path fill="#295200" d="M265.5 327.5l.7.7-.7-.7z"/>
+    <path fill="#9c9494" d="M266.2 327.5l.7.7-.7-.7m40.8 0l.7.7-.7-.7z"/>
+    <path fill="#5a1008" d="M307.7 327.5l.7.7-.7-.7z"/>
+    <path fill="#ce2110" d="M308.4 327.5l.7.7-.7-.7z"/>
+    <path fill="#391810" d="M309 327.5l.8.7-.7-.7z"/>
+    <path fill="#cecece" d="M311.9 327.5l.7.7-.7-.7z"/>
+    <path fill="#7b7373" d="M197.2 328.2l.7.6-.7-.6z"/>
+    <path fill="#313931" d="M199.3 328.2l.7.6-.7-.6z"/>
+    <path fill="#9c9494" d="M200 328.2l.7.6-.7-.6z"/>
+    <path fill="#ada5a5" d="M243 328.2l.6.6-.7-.6z"/>
+    <path fill="#9c9494" d="M243.7 328.2l.7.6-.8-.6m21.2 0l.6.6-.6-.6z"/>
+    <path fill="#ada5a5" d="M265.5 328.2l.7.6-.7-.6z"/>
+    <path fill="#cecece" d="M307.7 328.2l1.4 1.3-1.4-1.3z"/>
+    <path fill="#292921" d="M308.4 328.2l.7.6-.7-.6z"/>
+    <path fill="#bdbdbd" d="M309 328.2l.8.6-.7-.6m2 0l.8.6-.7-.6z"/>
+    <path fill="#8c8c8c" d="M195.1 328.8l.7.7-.7-.7z"/>
+    <path fill="#cecece" d="M195.8 328.8l2.8 2.7-2.8-2.7z"/>
+    <path fill="#7b7373" d="M198 328.8l.6.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M310.5 328.8l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M311.9 328.8l-.7 1.4.7-1.4z"/>
+    <path fill="#7b7373" d="M312.6 328.8l-.7 1.4.7-1.4m-116.8.7l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M198.6 329.5l.7.7-.7-.7z"/>
+    <path fill="#bdbdbd" d="M309.8 329.5l.7.7-.7-.7z"/>
+    <path fill="#8c8c8c" d="M196.5 330.2l1.4 1.3-1.4-1.3z"/>
+    <path fill="#efefef" d="M198.6 330.2l.7.6-.7-.6z"/>
+    <path fill="#dedede" d="M310.5 330.2l.7.6-.7-.6m-114 .6l1.4 1.4-1.4-1.4z"/>
+    <path fill="#efefef" d="M309.8 330.8l.7.7-.7-.7z"/>
+    <path fill="#dedede" d="M311.2 330.8l-.7 1.4.7-1.4z"/>
+    <path fill="#ecca5e" d="M230.9 207.5l1.1-.3a.8.8 0 00.4.5h.6c.3 0 .6 0 .7-.2a.3.3 0 00.1-.3.3.3 0 00-.1-.2 1 1 0 00-.4 0 6.5 6.5 0 01-1.8-.4 1 1 0 01-.7-.9c0-.4 0-.7.3-1 .3-.2.8-.4 1.4-.5.6 0 1 0 1.4.2.3.1.5.3.7.7l-1.1.3a.6.6 0 00-.3-.3 1 1 0 00-.6 0l-.6.1-.1.2.1.2c.1.1.5.2 1.1.2.7 0 1.1.2 1.4.4a1 1 0 01.4.7c0 .4 0 .7-.3 1-.3.4-.8.6-1.5.6-.6.1-1 0-1.4-.1a1.6 1.6 0 01-.8-.9zm-5.1-.4a2.1 2.1 0 01.1-1l.7-1c.4-.1.7-.3 1.2-.3a2 2 0 011.7.4c.4.4.7.8.8 1.5a2 2 0 01-.5 1.6c-.3.5-.8.7-1.5.8l-1.2-.1a1.9 1.9 0 01-.9-.7l-.4-1.2zm1.2 0c0 .4.2.7.4.9.2.2.5.2.8.2a1 1 0 00.7-.4c.2-.3.2-.6.2-1s-.2-.7-.4-.9a1 1 0 00-.8-.2 1 1 0 00-.7.4c-.2.2-.3.5-.2 1zm-3.6-2.3l-.1-1 1.1-.1.1 1-1.1.1zm.6 4.7l-.5-4.1 1.1-.2.5 4.2-1.1.1zm-6.8-5l2.2-.3h1.2c.3 0 .7.2 1 .4l.7.9c.1.3.3.8.3 1.3v1.3a2.5 2.5 0 01-.5 1 2 2 0 01-.8.6l-1 .3-2.4.2-.7-5.7zm1.3.8l.5 3.8h1l.7-.2.4-.3.3-.6v-1a3.3 3.3 0 00-.3-1 1.3 1.3 0 00-.4-.6 1.2 1.2 0 00-.6-.2h-1l-.5.1z"/>
+    <path fill="#ecca5e" fill-rule="evenodd" d="M233.4 223.4l17 21.4-.7 1-17.1-21.4zm44-1.6L258.3 247l-1.5-.5 19.1-25.2zm-48.4 5.8l20.2 18.8-.7 1-20.2-18.7zm-4.7 4.4l22.2 16.6-.5 1-22.3-16.5zm56-3.3l-20 19-1.2-.7 20-19zm4.4 3.5l-22.4 16.4-1-.8 22.4-16.4z"/>
+    <path fill="#7b5a00" fill-opacity=".6" d="M271.3 229.6l4.6-5.9-.6-.4-4 6.3z"/>
+    <path fill="#7b5a00" fill-opacity=".5" d="M260.8 243.5l4.6-5.9-.6-.4-4 6.3z"/>
+    <path fill="#7b5a00" fill-opacity=".7" d="M266 236.8l4.6-5.9-.5-.4-4.1 6.3z"/>
+    <path fill="#7b5a00" fill-opacity=".5" d="M276.8 237.6l6.5-4-.4-.6-6 4.6z"/>
+    <path fill="#7b5a00" fill-opacity=".4" d="M268.3 240l5.8-5-.5-.5-5.3 5.4z"/>
+    <path fill="#428c00" d="M213.6 288.6h-.7c-.1-3.8-1.6-6.3-5.6-7.3.1 2 1.6 10 5 7.3h.6l-1.4 6c2.1-2.2 10.8-10 7-13.4-3.2-3-4.8 6-4.9 7.4zm-5.3-47.9h-.8c0-3.8-1.6-6.3-5.6-7.3.1 2 1.6 10 5 7.3h.6l-1.4 6c2.1-2.2 10.8-10 7-13.4-3.2-3-4.8 6-4.9 7.4z"/>
+    <path fill="#ecca5e" d="M299.5 210.8h-1v-.7l-.7.5a1.7 1.7 0 01-.7 0c-.5 0-1-.2-1.2-.7-.3-.4-.5-1-.4-1.6.1-.7.3-1.2.7-1.6.4-.3.9-.4 1.4-.4.5.1.9.3 1.2.8l.3-2.1 1.1.1-.7 5.7zm-2.8-2.5v1a.9.9 0 00.8.5.9.9 0 00.7-.2c.2-.2.4-.5.4-1l-.1-1a.9.9 0 00-.7-.4.9.9 0 00-.7.2c-.2.2-.4.5-.4 1zm-4.6-1.2l-1-.3c.1-.4.3-.7.7-.8l1.3-.2 1.1.3.5.5v1l-.2 1.3v.8l.1.6-1.1-.1a4.7 4.7 0 010-.4 2 2 0 01-1.5.3c-.5 0-.8-.2-1-.5a1.1 1.1 0 01-.3-.9 1.1 1.1 0 01.8-1l1-.1 1-.1.1-.2-.1-.4-.6-.2a.9.9 0 00-.5 0 .8.8 0 00-.3.4zm1.4 1a8 8 0 01-.7.2h-.7l-.2.4a.5.5 0 000 .5.6.6 0 00.5.2c.2 0 .4 0 .7-.2a.7.7 0 00.3-.3v-.5l.1-.2zm-3-2.4v.8h-.8l-.2 1.6v.7l.2.1h.5v.8l-1 .1a1.5 1.5 0 01-.5-.2.8.8 0 01-.4-.3 1 1 0 010-.4v-.8l.2-1.8h-.5v-1l.6.1.1-.8 1.3-.5-.2 1.5h.8zm-4.6 3.6l-1.1-.1.5-4.1h1v.7l.5-.5.5-.1c.3 0 .5.1.8.3l-.5.9a1 1 0 00-.5-.2.7.7 0 00-.5 0l-.3.5-.2 1.4-.2 1.2zm-3-1.6l1 .3a1.8 1.8 0 01-.8.8 2 2 0 01-1.2.2c-.8-.1-1.3-.4-1.6-1-.2-.3-.3-.8-.3-1.4.1-.7.4-1.2.8-1.5.4-.4 1-.5 1.5-.4a2 2 0 011.5.7c.3.5.4 1.1.3 2l-2.9-.4c0 .4 0 .6.2.8.1.2.4.3.6.4l.5-.1a.9.9 0 00.3-.4zm.1-1.1c0-.4 0-.6-.2-.8a.8.8 0 00-.5-.3.8.8 0 00-.7.2 1 1 0 00-.3.7l1.7.2zm-8 1.5l.7-5.7 1.1.1-.2 2c.4-.2.8-.4 1.3-.3.5 0 1 .3 1.2.7.3.4.4.9.4 1.6-.1.7-.4 1.2-.8 1.5a1.7 1.7 0 01-2 .2 1.8 1.8 0 01-.6-.6v.6H275zm1.4-2v1c.2.3.5.5.8.5a.8.8 0 00.7-.2c.2-.2.3-.6.4-1 0-.5 0-.8-.2-1a.9.9 0 00-.6-.4.9.9 0 00-.7.2c-.2.2-.4.5-.4.9zm-3.1-3v-1l1.2.2v1l-1.2-.1zm-.6 4.8l.5-4.2 1.1.2-.5 4h-1.1zm-5-.6l.6-5.7 1.2.2-.6 4.7 3 .3v1l-4.3-.5z"/>
+    <path fill="#428c00" d="M201 254h-.6c-.1-3.8-1.6-6.2-5.6-7.3 0 2 1.5 10 4.9 7.4h.7l-1.4 6c2-2.2 10.7-10 7-13.5-3.2-3-4.9 6-5 7.5z"/>
+    <path fill="#fac349" fill-rule="evenodd" d="M226 232.8c0 .5-.6 1-1.4 1s-1.3-.5-1.3-1 .6-1 1.3-1 1.3.5 1.3 1zm4.3-4.7c0 .6-.5 1-1.3 1s-1.3-.4-1.3-1c0-.5.6-.9 1.3-.9s1.3.4 1.3 1zm4.1-4.3c0 .5-.6 1-1.3 1s-1.3-.5-1.3-1 .6-1 1.3-1 1.3.5 1.3 1zm43.3-1.7c0 .5-.5 1-1.2 1s-1.4-.5-1.4-1 .6-1 1.3-1 1.4.5 1.4 1zm3.1 6c0 .6-.5 1-1.3 1s-1.3-.4-1.3-1c0-.5.6-.9 1.3-.9s1.3.4 1.3 1zm4.6 4c0 .4-.6.8-1.3.8s-1.3-.4-1.3-.9.6-1 1.3-1 1.3.5 1.3 1z"/>
+    <path fill="#ecca5e" d="M262.6 199.3l-1-.2c0-.4.3-.7.6-.9.3-.2.7-.3 1.3-.3l1.1.2.5.5.2 1v2.1l.2.5h-1.1a4 4 0 01-.1-.3 1.4 1.4 0 000-.1 1.9 1.9 0 01-1.5.5c-.4 0-.8-.1-1-.4a1.1 1.1 0 01-.4-.9 1.1 1.1 0 01.7-1 4 4 0 011-.3l1-.2v-.1l-.1-.5-.6-.1-.5.1a.8.8 0 00-.3.4zm1.5.9l-.7.2-.6.2-.2.3c0 .2 0 .3.2.4a.7.7 0 00.4.2c.2 0 .4 0 .6-.2.2 0 .2-.2.3-.3v-.8zm-4.7-2.8v-1h1.2v1h-1.2zm0 4.8V198h1.2v4.2h-1.2zm-2.2 0H256V198h1.1v.6l.5-.6a1 1 0 01.5-.1c.3 0 .6 0 .8.2l-.4 1a1 1 0 00-.5-.2l-.4.1-.3.5-.1 1.4v1.2zm-1.9-4.2v.8h-.8v2.3l.1.1.2.1.5-.1v.9l-.9.1h-.5a.9.9 0 01-.4-.3 1 1 0 01-.1-.5 5.3 5.3 0 010-.8v-1.8h-.6v-.9h.6v-.8l1.1-.6v1.5h.8zm-5.8 1.2l-1-.2c0-.4.2-.7.5-.9.3-.2.8-.3 1.3-.3s1 0 1.2.2l.5.5.1 1v2l.3.6h-1.2a4.2 4.2 0 010-.3l-.1-.2a1.9 1.9 0 01-1.4.6c-.4 0-.8-.2-1-.4a1.1 1.1 0 01-.4-.9 1.1 1.1 0 01.6-1 4 4 0 011-.3l1.1-.2v-.1l-.1-.5-.7-.1h-.4a.8.8 0 00-.3.5zm1.5.9a9 9 0 01-.7.2l-.6.1c-.2.1-.3.3-.3.4a.5.5 0 00.2.4l.5.2c.2 0 .4 0 .6-.2l.3-.3v-.8zm-8 2v-5.8h3.4l.9.7c.2.3.3.6.3 1s0 .7-.2 1l-.5.5a1 1 0 01-.7.3h-2v2.2h-1.3zm1.2-4.8v1.6h1.7l.3-.4a.7.7 0 00.2-.4.7.7 0 00-.2-.5.8.8 0 00-.5-.3 6.2 6.2 0 00-.9 0h-.6zm2.4 110.6h-.8c0-.3.2-.6.4-.7.2-.2.5-.3.9-.4h.9c.2 0 .3.2.4.3.1.1.2.3.2.7l.2 1 .1.5.2.4-.8.2a3.5 3.5 0 01-.1-.3 1.5 1.5 0 01-1 .5c-.4 0-.6 0-.9-.2a.9.9 0 01-.3-.6.8.8 0 010-.5.8.8 0 01.3-.3l.7-.3.8-.3v-.1c0-.2-.1-.3-.2-.3h-.5a.6.6 0 00-.3 0 .6.6 0 00-.2.4zm1.3.5l-.5.2c-.3 0-.4.2-.5.2v.6h.5a.8.8 0 00.4-.1.5.5 0 00.1-.3v-.6zm-2.6-.3l-.8.2a.6.6 0 00-.3-.3.6.6 0 00-.4 0 .7.7 0 00-.5.2v.8c0 .3.1.6.3.7l.6.2a.6.6 0 00.3-.2l.2-.5h.8a1.4 1.4 0 01-.3.9c-.2.2-.6.4-1 .4-.5 0-.9 0-1.2-.2a1.6 1.6 0 01-.6-1.2c0-.5 0-.9.2-1.2a2 2 0 011.1-.6l1 .1c.3.1.5.3.6.7zm-4.8-.7v-.8h.8l.1.7-.9.1zm.6 3.5l-.5-3 .9-.2.5 3-.9.2zm-1.7.3l-.7-4.3.8-.1.7 4.2-.8.2zm-3.9.5l-.7-4.3h.9l.2 1.5c.2-.4.5-.6.9-.6s.7 0 1 .3c.3.2.5.6.6 1 .1.6 0 1-.2 1.3a1.3 1.3 0 01-1.4.6 1.4 1.4 0 01-.6-.4l.1.5-.8.1zm.6-1.7c0 .3.1.5.3.7a.7.7 0 00.6.2.6.6 0 00.5-.3c0-.2.1-.4 0-.8 0-.3-.1-.6-.3-.7a.7.7 0 00-.5-.2.7.7 0 00-.5.3 1 1 0 00-.1.8zm-2.3 2v-.5a1.2 1.2 0 01-.4.5l-.6.2h-.6a.8.8 0 01-.5-.4l-.2-.7-.3-2h.9l.2 1.4.2.8a.5.5 0 00.2.2.6.6 0 00.3 0 .7.7 0 00.4-.2.6.6 0 00.2-.3v-.8l-.3-1.3.9-.1.5 3-.8.1zm-6.4-2.3h.8v.4a1.2 1.2 0 011-.7c.4 0 .7 0 1 .3.3.2.5.6.6 1.1 0 .5 0 1-.2 1.3-.2.3-.5.5-1 .5a1.2 1.2 0 01-.4 0 1.8 1.8 0 01-.5-.3l.2 1.6h-.8l-.7-4.2zm1 1.4c.1.3.2.6.4.7a.7.7 0 00.6.2.6.6 0 00.4-.3c.1-.2.2-.4.1-.8 0-.3-.2-.5-.3-.7a.7.7 0 00-.5-.1.7.7 0 00-.5.3c-.1.2-.2.4-.1.7zm-2.3 1h1l-.5.7c-.2.2-.5.3-.9.4-.5 0-1 0-1.3-.4a1.7 1.7 0 01-.5-1c0-.5 0-.9.2-1.2a1.4 1.4 0 011-.6c.5 0 1 0 1.3.3.3.2.5.7.6 1.3l-2.2.3c0 .3.2.4.3.5.2.2.4.2.6.2a.5.5 0 00.3-.2.7.7 0 00.1-.3zm0-.9c0-.2-.2-.4-.3-.5a.6.6 0 00-.5-.1.6.6 0 00-.4.3.7.7 0 00-.1.5l1.3-.2zm-6.2 2.8l-.7-4.3 2-.3h1l.6.3.3.7c0 .3 0 .6-.2.8-.2.2-.4.4-.8.5l.5.3.6.6.7.8-1 .1-.9-.8-.5-.6a.7.7 0 00-.3 0 1.6 1.6 0 00-.5 0h-.2l.3 1.7-.9.2zm.5-2.6l.7-.1.8-.2a.5.5 0 00.2-.2.6.6 0 000-.3.5.5 0 00-.1-.4.6.6 0 00-.4 0h-1.4l.2 1.2zm67 .4l-.7-.2c.1-.3.3-.5.5-.6.3-.1.6-.2 1-.1l.9.2.3.4v.8l-.1 1a3.5 3.5 0 000 .5v.5l-.8-.1v-.3a1.6 1.6 0 01-.6.1 1.4 1.4 0 01-.6 0 1.1 1.1 0 01-.7-.3.8.8 0 01-.2-.7.8.8 0 01.6-.7 3 3 0 01.7 0l.9-.2v-.4l-.5-.2a.6.6 0 00-.4 0 .6.6 0 00-.2.3zm1.1.8l-.5.1h-.5l-.2.3a.4.4 0 000 .4.5.5 0 00.4.1.8.8 0 00.4 0 .5.5 0 00.3-.3 1.6 1.6 0 00.1-.4v-.2zm-2.9 1.2l-.8-.1.2-1.6v-.7a.4.4 0 00-.1-.2.5.5 0 00-.3-.2.7.7 0 00-.4.1.6.6 0 00-.3.3l-.2.7-.2 1.4-.8-.1.4-3.1h.8v.5c.3-.3.7-.4 1.1-.3l.5.1a.8.8 0 01.3.3.9.9 0 01.1.4v.5l-.3 2zm-5.5-3l-.7-.2c.1-.3.3-.5.5-.6h1c.4 0 .7 0 .9.2l.3.3v.8l-.1 1a3.4 3.4 0 000 .6v.4l-.8-.1a3.2 3.2 0 010-.3 1 1 0 00-.1 0l-.5.2a1.4 1.4 0 01-.6 0 1.1 1.1 0 01-.7-.4.8.8 0 01-.2-.7.9.9 0 01.6-.7h.7l.9-.2v-.4l-.5-.2a.7.7 0 00-.4 0 .6.6 0 00-.3.3zm1.1.9h-.6l-.4.1c-.2 0-.2.2-.2.3a.4.4 0 000 .3.5.5 0 00.4.2.8.8 0 00.4-.1.5.5 0 00.3-.3v-.5zm-2.4-1h-.8a.6.6 0 00-.2-.4.6.6 0 00-.3-.2.7.7 0 00-.6.2l-.3.6.1.8c.1.2.3.3.5.3a.6.6 0 00.4 0l.3-.5.8.3c-.1.3-.3.6-.6.8-.3.1-.6.2-1 .1a1.5 1.5 0 01-1.1-.6 1.6 1.6 0 01-.3-1.2c.1-.5.3-1 .6-1.2.4-.2.8-.3 1.2-.2.4 0 .7.1 1 .3.2.2.3.5.3.8zm-4.3-2v-.8l1 .2-.2.7h-.8zm-.6 3.5l.5-3h.9l-.5 3.1h-.9zm-.8-.1l-.9-.1.2-1.6v-.6a.4.4 0 000-.3.5.5 0 00-.3-.1h-.5c-.2 0-.2.2-.3.3l-.1.7-.2 1.4h-.9l.5-3.2.8.1v.5a1.4 1.4 0 011.6-.2.8.8 0 01.3.3.9.9 0 01.1.3 2.4 2.4 0 010 .6l-.3 1.9zm-4.2-4.1l.1-.8.9.1-.1.8-.9-.1zm-.5 3.5l.4-3.1.9.1-.5 3.1-.8-.1zm-5.2-3.9l.8.1v.5c.3-.3.6-.4 1-.4l.5.2.4.4.5-.3h.5c.3 0 .5 0 .6.2a.8.8 0 01.3.4v.7l-.3 2-.8-.2.2-1.7v-.6c0-.2-.2-.2-.3-.3a.6.6 0 00-.7.4l-.1.6-.2 1.5-.9-.1.3-1.7v-.6a.4.4 0 00-.1-.2.4.4 0 00-.3-.1.7.7 0 00-.3 0 .6.6 0 00-.3.3 2.1 2.1 0 00-.2.6l-.2 1.5h-.9l.5-3.2zm-4.2 1a1.6 1.6 0 011-1.3h1c.4 0 .8.2 1 .6.3.3.4.7.4 1.2a1.6 1.6 0 01-.7 1c-.4.4-.8.5-1.3.4a2 2 0 01-.8-.3 1.4 1.4 0 01-.5-.7v-.9zm.9.2l.1.7c.1.2.3.3.5.3a.8.8 0 00.6-.1l.4-.7c0-.3 0-.6-.2-.8a.7.7 0 00-.5-.3.8.8 0 00-.6.2c-.2.1-.3.4-.3.7zm-4.8-3.5l1.6.3c.4 0 .7 0 .9.2.2 0 .4.2.6.4.2.3.3.5.3.8a3.2 3.2 0 01-.3 2 1.9 1.9 0 01-.5.6l-.7.3h-.8l-1.7-.3.6-4.3zm.8.9l-.4 2.8.6.1h.6a.8.8 0 00.4 0c0-.2.2-.3.3-.5l.2-.7v-.8a1 1 0 00-.2-.5.9.9 0 00-.4-.2 4.4 4.4 0 00-.7-.2h-.4z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/dz.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/dz.svg
new file mode 100644
index 0000000..aa4eca2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/dz.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-dz" viewBox="0 0 640 480">
+  <path fill="#fff" d="M320 0h320v480H320z"/>
+  <path fill="#006233" d="M0 0h320v480H0z"/>
+  <path fill="#d21034" d="M424 180a120 120 0 100 120 96 96 0 110-120m4 60l-108-35.2 67.2 92V183.2l-67.2 92z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ec.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ec.svg
new file mode 100644
index 0000000..42fbef5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ec.svg
@@ -0,0 +1,138 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ec" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#ffe800" d="M0 0h640v480H0z"/>
+    <path fill="#00148e" d="M0 240h640v240H0z"/>
+    <path fill="#da0010" d="M0 360h640v120H0z"/>
+  </g>
+  <g fill-rule="evenodd">
+    <path d="M269.6 290.8L197 367.3l-1.2-1.6 72.4-76.5 1.2 1.6zm50.4 12.5l-94.8 100-1.6-1.6 94.7-100 1.7 1.6z"/>
+    <path fill="gray" stroke="#000" stroke-width="4.1" d="M478.4 60.2v88.6l17.7 88.6 17.7-88.6V60.2h-35.4z" transform="matrix(-.07 -.07 -.1 .1 265 429.6)"/>
+    <path fill="gray" stroke="#000" stroke-width="4.1" d="M478.4 60.2v88.6l17.7 88.6 17.7-88.6V60.2h-35.4z" transform="matrix(-.07 -.07 -.1 .1 240.6 390.5)"/>
+  </g>
+  <path fill="#ffdf00" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M301.2 272.8s-17.7 336.6 53.1 336.6S460.6 574 460.6 574l-.8-185-158.6-116.2z" transform="matrix(.45 0 0 .64 72.4 -59.8)"/>
+  <path fill="#0000c4" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M344.5 304.2c0 17.7-7.9 269.8 27.5 269.8s88.6-17.7 88.6-17.7l-.8-167.3-115.3-84.8z" transform="matrix(.45 0 0 .64 72.4 -59.8)"/>
+  <path fill="#e10000" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M367.5 321.2c0 17.7 4.5 217.4 40 217.4h53.1l-.8-149.6-92.3-67.8z" transform="matrix(.45 0 0 .64 72.4 -59.8)"/>
+  <path fill-rule="evenodd" d="M206.2 116l72.4 76.5 1.3-1.6-72.4-76.5-1.3 1.6z"/>
+  <path fill="#ffdf00" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M301.2 272.8S265.8 609.4 372 609.4c88.5 0 88.5-53.1 106.2-53.1l-17.7-124-159.4-159.5z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
+  <g stroke="#000">
+    <path fill="none" stroke-width="2.3" d="M269.6 155.2c1.1 0 28.3-94 119-147.2" transform="matrix(.4 -.03 -.05 .35 135.1 147.4)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.14 -.22 .3 .14 175.9 257.4)"/>
+    <path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.18 -.1 .1 .17 177.6 256.7)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.18 .12 -.13 .33 181 96.4)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.17 -.03 -.03 .33 179.3 159.3)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.06 .25 -.17 .2 228 45.5)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.2 -.2 .2 .24 150.3 241)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.22 -.22 .25 .2 135.6 282.1)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.26 .1 -.2 .32 130.8 147.7)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.15 .2 -.32 .22 178.5 103.3)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.08 .1 -.14 .16 250.7 102.6)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.1 0 -.08 .17 238 136.4)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(0 .14 -.14 .08 287.4 81.1)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.07 .1 -.25 .15 220.7 115.6)"/>
+    <path fill="#005b00" fill-rule="evenodd" stroke-width="1pt" d="M421.4-20.3c0 18.1-4.6 31.7-11.4 45.3-5.6-18.1-9-27.2-9-45.3s6.8-35.1 12.4-48.7c2.3 12.4 8 30.5 8 48.7z" transform="matrix(.13 .22 -.33 .2 207 70.1)"/>
+    <path fill="none" stroke-width="2.4" d="M269.6 155.2c1.1 0 28.3-94 119-147.2" transform="matrix(.35 -.2 .14 .28 111.8 227.8)"/>
+    <path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.18 -.1 .1 .17 200.3 224.6)"/>
+    <path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.18 -.1 .1 .17 211.1 218.3)"/>
+    <path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.2 -.1 .07 .13 166.8 232.7)"/>
+    <path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.2 -.1 .07 .13 170 231.3)"/>
+    <path fill="red" fill-rule="evenodd" stroke-width="1pt" d="M454.2-169.3c0 4-3.8 7.4-8.5 7.4s-8.5-3.3-8.5-7.4 3.8-7.3 8.5-7.3 8.5 3.3 8.5 7.3z" transform="matrix(.2 -.1 .07 .13 168.1 234.3)"/>
+    <path fill="red" fill-rule="evenodd" stroke-width=".3" d="M252.7 167.3c.4.8 0 1.8-1 2.3s-2 .2-2.4-.7 0-1.8 1-2.3 2-.2 2.3.7z"/>
+    <path fill="red" fill-rule="evenodd" stroke-width=".3" d="M255 164.9c.3.8 0 1.8-1 2.3s-2 .2-2.5-.6 0-1.9 1-2.4 2-.1 2.4.7z"/>
+    <path fill="red" fill-rule="evenodd" stroke-width=".3" d="M255.5 166c.4.8 0 1.9-1 2.3s-2 .2-2.4-.6 0-1.8 1-2.3 2-.2 2.4.6z"/>
+  </g>
+  <path fill="#0000c4" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M336.6 308.3c0 17.7-35.4 212.6 53.2 265.7 35.4 17.7 88.5-17.7 88.5 0l-17.7-141.7-124-124z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
+  <path fill="#e10000" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M372 343.7c0 17.7-17.7 159.4 35.5 194.9 35.4 35.4 124 25.8 124 25.8l-70.9-132.1-88.6-88.6z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
+  <path fill-rule="evenodd" d="M183.8 158l94.8 100 1.7-1.6-94.8-99.9-1.6 1.6z"/>
+  <path fill="#cececc" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M460.6 184.3l17.7 35.4v17.7c-.8-1.3 0 17.7-17.7 17.7S443 219.7 443 219.7s-17.7 35.4-17.7 70.9 17.7 53.1 17.7 53.1-2.6-36.7 17.7-35.4c20.4 1.2 17.7 17.7 17.7 17.7v35.4h17.8V219.7l17.7-35.4-27.2-53.2-26 53.1z" transform="matrix(.14 -.14 .1 .1 86.3 192.2)"/>
+  <path fill="#cececc" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M557.8 95.7l-26.3 70.8 17.7 53.2-35.4-17.7 35.4 53.1v35.5H567V255l35.5-53.1-35.5 17.7 17.8-53.2-26.9-70.8z" transform="matrix(.1 -.16 .14 .1 114 183.8)"/>
+  <path fill="#e10000" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c0 35.8 20.9 187.8 22.6 191.5.1 4.5-4.8 6.4-7.1.9-6.6-17.4-20.8-160-21.3-193.3-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(.4 0 0 .3 43.8 69.8)"/>
+  <path fill="#0000c4" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c31.5 61.4 48.7 166.7 50.4 170.5.1 4.4-4.8 6.4-7.1.8-2.5-3.3-12.7-100.2-49.1-172.2-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(.38 .1 -.15 .3 76 38.2)"/>
+  <path fill="#e10000" fill-rule="evenodd" stroke="#000" stroke-width=".7" d="M186.7 151.5c0 1-1 2-2.2 2-1.2 0-2.2-1-2.2-2s1-1.8 2.2-1.8c1.2 0 2.1.8 2.1 1.8zm-3.2 4c0 17.9 10.5 93.9 11.3 95.8 0 2.2-2.3 3.2-3.5.4-3.3-8.7-10.4-80-10.7-96.6-.1-6.9 1.9-7.4 4.2-7.3 1.9.1 4.1 1.9 4.1 4 0 2.4-2.9 4.3-5.4 3.7z"/>
+  <path fill="#0000c4" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c31.5 61.4 48.7 166.7 50.4 170.5.1 4.4-4.8 6.4-7.1.8-2.5-3.3-12.7-100.2-49.1-172.2-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(.48 .15 -.2 .48 16.7 31.6)"/>
+  <g fill-rule="evenodd">
+    <path d="M370.4 290.8l72.5 76.5 1.3-1.6-72.5-76.5-1.3 1.6zM320 303.3l94.8 100 1.6-1.6-94.7-100-1.7 1.6z"/>
+    <path fill="gray" stroke="#000" stroke-width="4.1" d="M478.4 60.2v88.6l17.7 88.6 17.7-88.6V60.2h-35.4z" transform="matrix(.07 -.07 .1 .1 375 429.6)"/>
+    <path fill="gray" stroke="#000" stroke-width="4.1" d="M478.4 60.2v88.6l17.7 88.6 17.7-88.6V60.2h-35.4z" transform="matrix(.07 -.07 .1 .1 399.4 390.5)"/>
+  </g>
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#ffdf00" stroke="#000" d="M301.2 272.8s-17.7 336.6 53.1 336.6S460.6 574 460.6 574l-.8-185-158.6-116.2z" transform="matrix(-.45 0 0 .64 567.6 -59.8)"/>
+    <path fill="#0000c4" stroke="#000" d="M344.5 304.2c0 17.7-7.9 269.8 27.5 269.8s88.6-17.7 88.6-17.7l-.8-167.3-115.3-84.8z" transform="matrix(-.45 0 0 .64 567.6 -59.8)"/>
+    <path fill="#e10000" stroke="#000" d="M367.5 321.2c0 17.7 4.5 217.4 40 217.4h53.1l-.8-149.6-92.3-67.8z" transform="matrix(-.45 0 0 .64 567.6 -59.8)"/>
+    <path d="M433.8 116l-72.4 76.5-1.3-1.6 72.4-76.5 1.3 1.6z"/>
+    <g fill="#005b00" stroke="#000">
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.16 -.07 .08 .35 309.5 211)"/>
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.2 -.05 .07 .4 291.5 182.6)"/>
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.23 .14 -.03 .4 296.5 69.4)"/>
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.25 .03 .02 .44 274.4 115)"/>
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.18 .17 -.04 .35 330 67)"/>
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.23 0 .03 .4 280.6 141.9)"/>
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.2 -.07 .07 .38 290.1 196.8)"/>
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.2 -.03 .05 .4 292.7 166.8)"/>
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.22 .15 -.05 .38 305 65.5)"/>
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.24 .05 0 .44 278.9 97.7)"/>
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.17 .17 -.06 .33 339 70)"/>
+      <path d="M428.2-17s81.5 90.7 111 154.1c29.4 63.5 54.4 156.3 54.4 156.3s2.2-86-36.3-163C505.2 32.8 425.9-12.5 428.2-17z" transform="matrix(.24 .02 0 .4 276.4 128)"/>
+    </g>
+    <path fill="#ffdf00" stroke="#000" d="M301.2 272.8S265.8 609.4 372 609.4c88.5 0 88.5-53.1 106.2-53.1l-17.7-124-159.4-159.5z" transform="matrix(-.58 0 0 .62 630.4 -10.2)"/>
+    <path fill="#0000c4" stroke="#000" d="M336.6 308.3c0 17.7-35.4 212.6 53.2 265.7 35.4 17.7 88.5-17.7 88.5 0l-17.7-141.7-124-124z" transform="matrix(-.58 0 0 .62 630.4 -10.2)"/>
+    <path fill="#e10000" stroke="#000" d="M372 343.7c0 17.7-17.7 159.4 35.5 194.9 35.4 35.4 124 25.8 124 25.8l-70.9-132.1-88.6-88.6z" transform="matrix(-.58 0 0 .62 630.4 -10.2)"/>
+    <path d="M456.2 158l-94.8 100-1.7-1.6 94.8-99.9 1.7 1.6z"/>
+    <path fill="#cececc" stroke="#000" d="M460.6 184.3l17.7 35.4v17.7c-.8-1.3 0 17.7-17.7 17.7S443 219.7 443 219.7s-17.7 35.4-17.7 70.9 17.7 53.1 17.7 53.1-2.6-36.7 17.7-35.4c20.4 1.2 17.7 17.7 17.7 17.7v35.4h17.8V219.7l17.7-35.4-27.2-53.2-26 53.1z" transform="matrix(-.14 -.14 -.1 .1 553.7 192.2)"/>
+    <path fill="#cececc" stroke="#000" d="M557.8 95.7l-26.3 70.8 17.7 53.2-35.4-17.7 35.4 53.1v35.5H567V255l35.5-53.1-35.5 17.7 17.8-53.2-26.9-70.8z" transform="matrix(-.1 -.16 -.14 .1 526 183.8)"/>
+    <path fill="#e10000" stroke="#000" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c0 35.8 20.9 187.8 22.6 191.5.1 4.5-4.8 6.4-7.1.9-6.6-17.4-20.8-160-21.3-193.3-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(-.4 0 0 .3 596.3 69.8)"/>
+    <path fill="#0000c4" stroke="#000" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c31.5 61.4 48.7 166.7 50.4 170.5.1 4.4-4.8 6.4-7.1.8-2.5-3.3-12.7-100.2-49.1-172.2-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(-.38 .1 .15 .3 564 38.2)"/>
+    <path fill="#e10000" stroke="#000" stroke-width=".7" d="M453.4 151.5c0 1 1 2 2.1 2 1.2 0 2.2-1 2.2-2s-1-1.8-2.2-1.8c-1.2 0-2.1.8-2.1 1.8zm3 4a1152 1152 0 01-11.2 95.8c0 2.2 2.3 3.2 3.5.4 3.3-8.7 10.4-80 10.7-96.6.1-6.9-1.9-7.4-4.2-7.3-1.9.1-4.1 1.9-4.1 4 0 2.4 2.9 4.3 5.4 3.7z"/>
+    <path fill="#0000c4" stroke="#000" d="M422.5 137c0 2-2 3.7-4.3 3.7s-4.4-1.7-4.4-3.7 2-3.8 4.4-3.8 4.3 1.7 4.3 3.8zm-6.2 7.9c31.5 61.4 48.7 166.7 50.4 170.5.1 4.4-4.8 6.4-7.1.8-2.5-3.3-12.7-100.2-49.1-172.2-.3-13.7 3.7-14.8 8.3-14.5 3.7.2 8.3 3.7 8.3 7.9 0 5-5.8 8.7-10.8 7.5z" transform="matrix(-.48 .15 .2 .48 623.3 31.6)"/>
+  </g>
+  <g fill-rule="evenodd" stroke="#000" stroke-width="1pt">
+    <path fill="#e10000" d="M478.4 698a53.3 53.3 0 0053.1 0V556.3h-35.4c17.7 53.1 17.7 106.3-17.8 141.7z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
+    <path fill="#0000c4" d="M513.8 609.5c0 88.5-42.5 108.2-42.5 126 17.7 0 29.5-8.3 42.5-19.7 17.7-17.8 19.4-107.7 17.7-106.3h-17.7z" transform="matrix(.35 0 0 .7 123.5 -90)"/>
+    <path fill="#0000c4" d="M478.4 609.5c-.9 51.7-44.8 99.6-36.5 110.2 9.4 9.5 36.5-21.7 71.9-4 17.7-17.7 19.4-107.6 17.7-106.3h-53.1z" transform="matrix(.35 0 0 .7 123.5 -90)"/>
+    <path fill="#ffdf00" d="M513.8 609.5c0 88.5-40.7 94.4-40.7 118 17.7 0 40.6-12.9 40.7-11.7 17.7-17.8 19.4-107.7 17.7-106.3h-17.7z" transform="matrix(.35 0 0 .46 112.5 51)"/>
+    <path fill="#ffdf00" d="M478.4 609.5c-.9 51.7-43.8 95.7-35.5 106.3 9.5 9.4 35.5-17.8 70.9 0 17.7-17.8 19.4-107.7 17.7-106.3h-53.1z" transform="matrix(.35 0 0 .46 112.5 51)"/>
+    <path fill="#e10000" d="M478.4 698a53.3 53.3 0 0053.1 0V556.3h-35.4c17.7 53.1 17.7 106.3-17.8 141.7z" transform="matrix(-.58 0 0 .62 630.4 -10.2)"/>
+    <path fill="#0000c4" d="M513.8 609.5c0 88.5-42.5 108.2-42.5 126 17.7 0 29.5-8.3 42.5-19.7 17.7-17.8 19.4-107.7 17.7-106.3h-17.7z" transform="matrix(-.35 0 0 .7 516.5 -90)"/>
+    <path fill="#0000c4" d="M478.4 609.5c-.9 51.7-44.8 99.6-36.5 110.2 9.4 9.5 36.5-21.7 71.9-4 17.7-17.7 19.4-107.6 17.7-106.3h-53.1z" transform="matrix(-.35 0 0 .7 516.5 -90)"/>
+    <path fill="#ffdf00" d="M513.8 609.5c0 88.5-40.7 94.4-40.7 118 17.7 0 40.6-12.9 40.7-11.7 17.7-17.8 19.4-107.7 17.7-106.3h-17.7z" transform="matrix(-.35 0 0 .46 527.5 51)"/>
+    <path fill="#ffdf00" d="M478.4 609.5c-.9 51.7-43.8 95.7-35.5 106.3 9.5 9.4 35.5-17.8 70.9 0 17.7-17.8 19.4-107.7 17.7-106.3h-53.1z" transform="matrix(-.35 0 0 .46 527.5 51)"/>
+  </g>
+  <g fill-rule="evenodd" stroke="#000">
+    <path fill="#908f8a" stroke-width="4.5" d="M198.6 78l-89.7 35.4 89.7 35.4 44.8-17.7 22.4 17.7 22.4 35.4 22.5-35.4 22.4-17.7H1535V95.7H333l-22.4-17.8c0-17.7 4.7-35.4 22.5-35.4h89.6c0-17.7-44.8-53.1-134.5-53.1-89.6 0-134.5 35.4-134.5 53.1h89.7c17.7 0 22.4 17.7 22.4 35.5l-22.4 17.7-44.9-17.8z" transform="matrix(.12 0 0 .22 217.8 324.4)"/>
+    <path fill="#b74d00" stroke-width="1.8" d="M204.3 95.7H541v17.7H204.4zm0-17.8H541v17.8H204.4zm0-17.7H541V78H204.4zm0-17.7H541v17.7H204.4zm0-17.7H541v17.7H204.4zm0-17.8H541v17.8H204.4zm0-17.6H541V7H204.4z" transform="matrix(.28 0 0 .27 216 334.6)"/>
+    <path fill="#908f8a" stroke-width="3.3" d="M423.2 60.2l137.8 124h19.7L443 60.3h-19.7z" transform="matrix(.25 0 0 .27 171.9 315.2)"/>
+    <path fill="#908f8a" stroke-width="3.3" d="M423.2 60.2l137.8 124h19.7L443 60.3h-19.7z" transform="matrix(.25 0 0 -.27 171.9 382.2)"/>
+    <path fill="#908f8a" stroke-width="3.1" d="M425.2 60.2v124h17.7v-124h-17.7z" transform="matrix(.28 0 0 .27 159.6 315.2)"/>
+    <path fill="#908f8a" stroke-width="3.3" d="M423.2 60.2l137.8 124h19.7L443 60.3h-19.7z" transform="matrix(.25 0 0 .27 216.2 315.2)"/>
+    <path fill="#908f8a" stroke-width="3.3" d="M423.2 60.2l137.8 124h19.7L443 60.3h-19.7z" transform="matrix(.25 0 0 -.27 216.2 382.2)"/>
+    <path fill="#908f8a" stroke-width="3.1" d="M425.2 60.2v124h17.7v-124h-17.7z" transform="matrix(.28 0 0 .27 238.4 315.2)"/>
+    <path fill="#908f8a" stroke-width="3.1" d="M425.2 60.2v124h17.7v-124h-17.7z" transform="matrix(.28 0 0 .27 204 315.2)"/>
+    <path fill="#908f8a" stroke-width="3.1" d="M425.2 60.2v124h17.7v-124h-17.7z" transform="matrix(.28 0 0 .27 194 315.2)"/>
+  </g>
+  <g fill="#ffdf00" fill-rule="evenodd" stroke="#000" stroke-width="1pt">
+    <path d="M655.5 396.9c0 88-55.6 159.4-124 159.4s-124-71.4-124-159.4 55.5-159.5 124-159.5 124 71.4 124 159.4zm-17.7 0c0 78.2-47.6 141.7-106.3 141.7-58.7 0-106.3-63.5-106.3-141.7 0-78.3 47.6-141.8 106.3-141.8 58.7 0 106.3 63.5 106.3 141.8z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
+    <path d="M579.8 250c-14.9-8.1-31.2-12.6-48.3-12.6s-33.4 4.5-48.3 12.5l7 16.4a82.8 82.8 0 0182.7 0l6.9-16.4z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
+    <path d="M579.8 250c-14.9-8.1-31.2-12.6-48.3-12.6s-33.4 4.5-48.3 12.5l7 16.4a82.8 82.8 0 0182.7 0l6.9-16.4z" transform="matrix(.58 0 0 -.62 9.8 479.3)"/>
+  </g>
+  <path fill="#a7cfff" fill-rule="evenodd" d="M379.6 235.9c0 48.5-27.7 87.8-61.7 87.8s-61.6-39.3-61.6-87.8 27.6-88 61.6-88 61.7 39.4 61.7 88z"/>
+  <path fill="#afff7b" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M637.8 396.9c1.1 26.6-4.6 39.6-11.9 67.3-1.9 3-11-6.5-16.4-11.2s-7.8 4.2-14.6-3c-6.7-7.4-11 2-16-4.2s-51.3-7-51.3-7.6c4.6-2.2 28.2.2 24.4-11.1-4.3-11.8-31-.4-34.6-15.4-2.5-15-53.6-15.6-57.3-19.2 1.5 5.6 39.8 8 38.9 22.5-.9 6-37.7 7.7-41.3 12.7-3 6.3 29-1.7 30.1 6 0 3.2-4.7 0-21.3 5-8.4 2.5 15.4 10.3 6.4 14.6-9 4.3-28.3 6.2-27.5 8 3 9 44.7 19.6 40.6 21.1-14.8 6.6-22.6 10.9-29.7 14.7a167.9 167.9 0 01-31.1-100.2c31.7-11.4 25-13.8 83.6-13.8s78 2.3 129 13.8z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M637.8 396.9c-8 0-16.4 3.4-25 3.4-8.7 0-17.5-3.5-26.5-3.5s-19.3 4.6-28.5 4.6c-9.3 0-17.4-4.5-26.7-4.5s-18.6 3.4-27.8 3.4-18.3-3.5-27.2-3.5-17.7 3.5-26.2 3.5-16.8-3.5-24.7-3.5c0-19.5 3-38.1 8.4-55.1 27 2 11-15.7 27-15.7a33 33 0 0125.3 9.8c2.4 0 14.4-11.4 27.9-9.8 13.4 1.6 8.5 27.3 26.4 28.6 9 6.8 14.3 11.1 26.7 13.9 17.7 1.6 68.4-2.5 68.7-.2a188.2 188.2 0 012.2 28.6z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M549.9 474c0-5.7 13.5-9.5 13.5-18.6s-12-9.3-12.4-17.8c-.2-3.5 10.3-7 14.9-7.4s8.5 7.4 8.5 9.1-4.7-4.2-8.6-4.3-12.3.6-12.3 2.3c0 3.4 14.8 7.6 13.7 19-1.1 11.2-12.7 14.6-12.7 18s5 12.8 5 12.8-9.7-7.5-9.7-13.2z" transform="matrix(.2 0 0 .48 217.2 59.5)"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M549.9 474c0-5.7 13.5-9.5 13.5-18.6s-12-9.3-12.4-17.8c-1-4 11.8-6.6 16.4-6.9s10 8 10 9.6-5.4-5.2-9.3-5.3-14.6.6-14.6 2.3c0 3.4 14.8 7.6 13.7 19-1.1 11.2-12.7 14.6-12.7 18s5 12.8 5 12.8-9.7-7.5-9.7-13.2z" transform="matrix(-.2 0 0 .48 445.8 59.1)"/>
+  <path fill-rule="evenodd" d="M333 264.9c0 1.3-.7 2.4-1.5 2.4s-1.4-1.1-1.4-2.5.6-2.4 1.4-2.4c.8 0 1.5 1.1 1.5 2.5zm17 9h.4v19.5h-.5zm4.1-1.6h.5V292h-.5z"/>
+  <path fill-rule="evenodd" d="M352.6 281.2v-.5l4 .7v.5z"/>
+  <path fill="#b74d00" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M497.3 478s26 11.4 31.7 18.2c5.6 6.8 3.4 6.8 3.4 6.8l57.7 2.3c0-3.4 10.2-3.4 12.5-11.4 2.3-7.9 2.3-10.2 2.3-10.2l-18.1 5.7 1-10.2H572l-2.3 10.2-34-1.1L538 461l-6.8 1.1-1 26c-1.2 0-31.8-7.9-33-10.1z" transform="matrix(.58 0 0 .62 7 -9.5)"/>
+  <path fill="#fede00" fill-rule="evenodd" stroke="#fede00" stroke-width="1pt" d="M440.5 316.3s37.7-11.2 92.1-10.4 92.1 12.8 91.3 12.8-10.4-18.4-10.4-18.4-38.4-10.5-81.7-11.3c-43.2-.8-80.9 8-80 8.8l-11.3 18.5z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
+  <path fill="#38a9f9" fill-rule="evenodd" d="M306 169.8l13.6-.2.2 7.9-13.6.3zm-31.2 4.3L270 182l16.2-2-1.3-7.7-10.1 2zm13.7-3l13.6-1.1.6 7.8-13.5 1.2zm48.9-.7l-13.5-1-.5 8 13.5.8zm29.2 5l4.9 9.6-14.6-3.6 1.6-7.7 8 1.6zm-11.8-3l-13.4-1.7-1 7.8 13.5 1.8z"/>
+  <path fill="#ffdf00" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M532.6 323.5l-2.5-13.5-7.6 11.5 2.8-13.5-11.3 7.7 7.6-11.3-13.4 2.8 11.5-7.6-13.5-2.5 13.5-2.6-11.5-7.6 13.4 2.8-7.7-11.3 11.4 7.7-2.8-13.5 7.6 11.5 2.5-13.5 2.6 13.5 7.5-11.5-2.7 13.5 11.3-7.7-7.7 11.3 13.5-2.8-11.5 7.6 13.5 2.6-13.5 2.5 11.5 7.6-13.5-2.8 7.7 11.3L540 308l2.8 13.5-7.6-11.5z" transform="matrix(.58 0 0 .62 9.6 -10.2)"/>
+  <path fill="#ffdf00" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M547 293.9c0 9.3-6.6 16.8-14.8 16.8s-14.8-7.5-14.8-16.8S524 277 532.2 277s14.8 7.6 14.8 17z" transform="matrix(.57 0 0 .5 18.3 21.8)"/>
+  <path fill-rule="evenodd" d="M320.7 170.6c0 .5-1.3 1-2.8 1s-2.8-.5-2.8-1 1.2-1 2.8-1 2.8.4 2.8 1zm6 0c0 .5-.9 1-2 1s-2.2-.5-2.2-1c0-.6 1-1 2.1-1s2.1.4 2.1 1z"/>
+  <path fill="none" stroke="#000" stroke-width="1pt" d="M529.4 297.9l.8.8c-1.9-2-1-1.2 1.6 3.2 2.4-.5 3.1-1.4 4.8-2.4" transform="matrix(.56 -.18 .17 .6 -26.7 90.6)"/>
+  <path fill="none" stroke="#000" stroke-width="1pt" d="M527.8 304.3l.8.8c-1.9-2-1-1 3.2 1.6 4 .5 8.1-1.2 10.5-4" transform="matrix(.58 0 0 .62 8.7 -10.2)"/>
+  <path fill="#b7e1ff" fill-rule="evenodd" d="M281.4 194.8s1 8-5.1 18c-6 9.9-5.1 6.4-5.1 6.4s2.8 5.5 2.3 5.5-4.7-5-4.7-5l-5 5.5s4.6-8.5 4.1-8.5-1.4-3-1.4-3l3.7-1.5s5.6-10.4 5.6-9.9-16.7 11.4-16.7 11.4l22.3-18.8zm3.7 3c-.5 0 2.3 8 4.7 12 2.3 4 2.3 8.9 2.3 8.9l7.9 4-10.2-15.4 6.5 2.4-11.2-11.9zm0 20.9s5.6 6 6 8 .5 6.4.5 6.4l-2.3-5-3.3 4.5s2.4-7 1.9-7.5-3.7 2.5-3.7 2.5 1.4-4 1.4-4.4 0-3-.5-4.5zm-27.9 13.9c1.9-1.5 5.6-2.5 5.6-2.5s-2.3 4-2.8 4-1.8 0-2.8-1.5zm64.1-21.8s12.1 7.4 12.1 7.9-7.9-3.5-7.9-3.5l-4.2-4.4zm-21.8-15.5c1 .5 17.7 14.4 17.2 14.4s-7.4-4-7.4-3.4v3.4l-3.8-7.9-.9 3-5-9.5zm4.2 22.4l4.6 9.4 4.7-1s-8.8-8.4-9.3-8.4zm14.4-6l.5 9s2.7 2.5 2.7 2-2.7-10.5-3.2-11z"/>
+  <path fill="#984000" fill-rule="evenodd" d="M182.6 89.5s21-11.6 44.9-20.2a303.8 303.8 0 0154.2-14.4c7 0 19.2 17.8 21.2 17.8s10.1-5 20.3-5 16.1 8 18.2 8h18.2c2 0-6.1-19.8 0-18.8 3 .5 28.8 4.5 52.8 12.2 24 7.8 58 21.6 58 21.6S414.9 98 400 95.9c-2 1 0 13-3 7.7-4.6-1-21.7-3.7-24.7-3.7s-8.7 3.4-16.8 5.4c-8 2-18.2 5-18.2 5l13.2 20.7-16.2 8s-10.1-23.8-14.2-23.8-6 16.8-11.1 15.8c-5-1-7-15.8-11.1-19.8-4-3.9-25.4-5.4-33.5-7.3-8-2-21.1-3.5-28.2-5.5-7-2-14.2 5-17.2 5s4-6 1-7-5 3-7 3-23.3-4-25.3-5 5-4.9 3-4.9h-8.1z"/>
+  <path fill="gray" fill-rule="evenodd" stroke="#772600" stroke-width="3.7" d="M463-65c0 21.2-20.6 38.4-45.9 38.4S371.3-43.8 371.3-65s20.5-38.3 45.8-38.3S463-86.1 463-65z" transform="matrix(.22 0 0 .26 231.6 96.5)"/>
+  <path fill="#984000" fill-rule="evenodd" stroke="#772600" stroke-width="5.3" d="M284.7-60c6.7-6.6 15-16.6 36.7-16.6 5-1.7 5-11.7 16.6-11.7 11.7 0 8.3 10 16.7 13.4 8.3 3.3 76.6-3.4 76.6-3.4s6.6 5 6.6 11.7-5 11.6-6.6 11.6-68.3-5-73.3-3.3c-5 1.7-8.3 3.3-20 3.3-11.6 0-15-11.6-23.3-11.6s-16.6-1.7-30 6.7z" transform="matrix(.27 0 0 .32 205.4 100.7)"/>
+  <path fill="none" stroke="#772600" stroke-width="3.5" d="M487.9-76.6h26.6c9.6.1 12.9 3 21.7 3.3h23.3c8.5-.3 13-2.3 21.6-3.3 14.5-.2 9.6-1.3 6.7-10-2.6-6.5-3-9.6-6.7-13.3-1.4-8-4.6-10.8-5-20-1.5-7-4.3-11.7-1.6-20 3.8 5.7 5.3 8 15 8.4 10 0 13.9-.3 20 3.3 4.6 4.9 10.8 3.3 20 3.3 7.6 1.4 8.9 5.3 14.9 8.3 7.1 4 11.7 5 21.6 5 8 1.5 15 2.6 20 5 4.3 5.1 11 6.4 20 6.7 5 0 9-.5 13.3-1.7 7.7.4 15.5 0 25 0 6.2 7.2 7.6 9.9 18.3 10 7.4 5.2 13.6 6 20 8.3h25c9 .7 11.8 4.4 20 6.7a200.9 200.9 0 0021.6 8.3 108 108 0 0021.7 1.7c6.1 3.2 13.6 3.4 18.3 6.6 6.9 1.5 16.3 3.3 21.6 5 8.8 1.2 12.2 4 20 5 6.7 2-2.2 3.6-6.7 5-9.8-.3-10.5-4-20-5-5-2.9-12.6-2.5-20-5h-1.6c6.6 4 13 6.5 10 13.4-8.5 0-15.4-1.1-23.3-1.7-8.4-1.6-12.2-3.3-21.6-3.3 9.4-2.3 11.8.2 18.3 3.3 2.4 8-2.8 5-11.7 5-7.6-2.7-12.2-6-21.6-6.7h-20c9.9.4 12 4.1 18.3 8.4.5 2.6-.1 2.4-5 3.3-5.2-4.5-11.9-6-20-8.3-7.9-.3-16.2-1-23.3-3.4-4.9-.3-4.1-6.1 6.7 3.4 6.5 3.8 8.8 7 8.3 10-8.6-2.2-12.8-5.6-18.3-8.4a61.3 61.3 0 00-23.3-3.3c-8.6-2.3.9-3.6 6.6 5 12.4 8.8-1.6 5-6.6 3.3-7.5-2.1-15.3-5.2-21.7-6.6-5-1.5-9.4-2.9-15-3.4 8.7.8 11.6 3.9 15 10 8.8 6-.4 3.1-8.3 1.7-5-4.4-11.5-6.7-15-11.7-8.3-4.1-8.6-9-3.3 1.7 1.3 3.4 1 10.8 1.6 11.7-6.1-6.7-4.8-8.4-11.6-8.4-4.7-3.2-11.5-5.7-15-10-6.4-.6-6.8-2.9-13.3-5 5.3 6.3 12.4 12.5 16.6 18.4 7.6 4.2 9.7 8 15 11.6 2.1 3.7 8 6.7 1.7 1.7-7.2-7-12.5-8.7-23.3-13.3-6.2-5-8.4-7-15-11.7-9-2.9-5.5-4.5 0 5 6.3 5.8 11.1 12.2 16.6 16.7a67.8 67.8 0 0015 13.3c1.5 2.2 6 2.6 0 3.3-5-4.6-12.4-7.5-18.3-11.7-8.3-2.3-12.2-6.6-18.3-11.6-4-5.9-10.4-10.4-15-15-9.6-3.8 1.9 3.6 5 8.3 2.1 6.1 4.8 11 6.6 16.7 2.8 5.5-8.4-1.3-11.6-3.3a57 57 0 00-21.7-8.4 298 298 0 00-20-3.3c-7.5-2 4.1 4.8 8.4 11.7 8.4 7.9-8.3 1.4-13.3 0a125 125 0 00-25-1.7c-10.7.6-3 2 0 6.6 3.3 2.6 5.6 8 5 10-7-1-13-3-21.7-3.3-7 2.3-15.3 1.7-23.3 1.7-.3 4.2 1.5.6 5 5 5.8 2.3 9.6 5.1 8.4 8.3h-48.3c-5.3 1.4 1.1.7 5 6.7-2.2 5.4-5 3.3-11.7 3.3-4.5-1.8-13.6-2.6-18.3-5-4.7 0-4.3-1.2-8.3-1.7 14 10 7 7.5 15 15 1.3.5 4.5 1.7 1.6 1.7M371.3 73.3c-1 0-3.2-5.4-6.6-10-2.4-6-5.4-2.6-8.4-11.7.4-9.4.7-11 0-20-6.8-4.8-9.7-6.2-15-15-8.4-7 1.3-19 2.9-27.8-7.4-1.6-11 11.5-22.3 16.2-8.2 5.5-1-11.4-5-21.2-2.7-13.9-10.8 7-13.8 12.9-5.5 3.7-7.2 8.5-15 1.6 0-5.1 4.9-19.5 2.8-22.3-7.8 3.9-18 15.5-26.1 17.3-8.2-1.7 1.7-14.8 1.7-24.5-3-1-14.7 25.8-19.5 26s-2.7-26-5-25.4c-3.5 5-10.6 15.4-15.5 19-9.5-1.3 1.4-17.5 2.8-23.5 1.6-7.2-8.9 13.8-14.5 15.1-4.1 3.6-12.2 6-15 6.7 3.2-6.2 19-18.7 18-22.3-9.3.3-23.4 12.5-31.3 14-5.2 0-12.4 1.7-13.3 1.6.4-8 19.4-14.6 22.4-19.5-9.3 1.5-27.2 9.7-32.4 16.2-6.2 1.3-14 3-20 0 .9-7.5 14.9-22 18-26.8-8.5 3.7-12.7 6.6-21.7 8.3-1.7 1.7-6.5 5.3-5 1.7 2.7-7 6.7-10 10-15-7.5 1.4-10.3 5.7-18.3 10-5.1.2-19.7 14.9-24.6 15.1a69.1 69.1 0 01-28.3 13.3c-7.6 1.4-11.3 3-15 6.7 3.8-6.7 9.6-13 15-16.6a29.8 29.8 0 0115-13.4c1.9-2.3 7.1-2.9 1.6-3.3-4.7 4.2-12.7 9-16.6 11.7-5.1 3.2-11 6.4-13.4 5 2.7-7.2 7.5-9 11.7-15 8.8-5.6 0-2-6.7 0-4.3 3.8-12 6.7-18.3 10-7 1.8-11.7 6-20 8.3 0 2.4 2.4-4.3 3.4-6.7 6.8-7.4 8.6-9.5 16.6-11.6 2-2.9 4.4-1.7-1.6-1.7-4.6 4-10.8 6.2-16.7 10-5.9 1.3-13.6 1.7-21.6 1.7-10.4 1.2-9.5 2 0-3.4 5.3-5 9.7-3.7 10-10-6.3 4.6-14 8-21.7 11.7-6.4.2-8.1 1.7-15 1.7 3.3-3.4 5.3-7.7 10-10 7-7.7-4.4-1.5-6.7 0h-25c-4.4 5.6-.2 0 3.4-3.4 4.3-2.2 8.8-5.1 8.3-6.6-5 4.3-10.7 6.3-15 10-4.6 1.4-10 2-10 3.3 3.7-5.3 9.6-8.6 13.4-13.3 5.6-1.2 10.4-3 11.6-5h-23.3 16.6c8.5 0 15.7-.8 23.4-1.7 13.2-2.2-1.2-3.3-8.4-3.3-1.3-2.6 4.2-4 10-5C-6.7-69-.4-71.1 5-73.3a45.2 45.2 0 0013.3-6.6c-5 .2-5 1.4-10 1.6 7.5-.5 12.8-1.6 21.7-1.6a239 239 0 0021.6-8.3c3-3.6 4.2-3.4-3.3-3.4 6.7-2.1 16.2-3.2 21.6-5a94 94 0 0020-6.6c4.9-3.3 7.7-7.2 13.3-10 6.5 4.4 6.6 5 18.3 5 9.4-.1 15.2-2.4 20-6.7 7.2-2 8.5-5.4 16.7-6.6a134 134 0 0023.3 1.6c8-2.1 15.7-6 21.6-10 5.1-2.5 11.2-6.1 16.7-8.3 6 3.1 10.8 5.6 18.3 6.7 7.7-1.2 11.8-5 18.3-6.7a28 28 0 0115-8.3c9.7-4.8 9 1.5 13.3 6.6 5 5.2 11.4 2.7 18.3 5 3.9 6 6.7 10 11.7 13.3 3.9 4.8 8.5 6 16.7 6.7 3 4 .6 6.8 6.6 8.3 2.4 2.6 6.5 3.6 10 5" transform="matrix(.27 0 0 .32 205.4 104.9)"/>
+  <path fill="none" stroke="#782600" stroke-width="3.1" d="M468.7 30.8v.8c0-2.3 0-1 1.7 3.4.6 3.6-.8 3.2-2.5 5.8-.3 3.7-.8 6.4-.8 10.8-.6 3.6-2.6 7-4.2 10-1.6 3.1-8.5 4.9-8.3 9.2-4 1.1-4.1-1.5-4.2-5.9-2.4-2.7-3.2-6.4-5-10-1-3.4-3.4-6-5-10-2.4-3.7-4.5-4.8-6.6-9.1-.9-2-.7-4.6-2.5-5.8-2.7-3.5-4.5-4-9.2-4.2-3.6.8-5 2.4-8.3 3.3-2.6.9-7.6.6-10.8 1.7-.8 1.3 1.6 2 2.5 5-2.2 1.8-3 4.9-4.2 7.5-2 2.5-3.3 3.7-4.2 7.5 1.4 2.3.2 5.4-1.6 7.5-.6 3.8-2.5 5.9-3.4 9.1-2.6 1.9-3.6 3.6-5.8 6.7-1.9 2.7-3.6 2.5-8.3 2.5-3.7-1-4.2-3-7.5-4.2-.3-1-.6-1.3-1.7-1.6" transform="matrix(.27 0 0 .32 205.4 104.9)"/>
+  <path fill="#812e00" fill-rule="evenodd" d="M307.6 125.5s-.4 5-3.6 8.3-9.8 7.1-9.8 7.1 8.9-4.2 9.8-3.3c1 1-5.7 8.3-5.7 8.3s8.7-7.7 9.8-7.7 3.6 7.5 4.6 7.3c.9-.2-2-9.5-1.6-11 .4-1.4 0-9.3 0-9.3l-3.4.3zm20.5-.6s-.4 5.3-3.6 8.8-9.8 7.6-9.8 7.6 8.9-4.5 9.8-3.5c1 1-5.7 8.8-5.7 8.8s8.7-8.2 9.8-8.2 3.6 8 4.6 7.8c.9-.2-2-10.2-1.6-11.7.4-1.6 0-10 0-10l-3.5.4zm-28.7-48c0 .9-1 1.7-2.1 1.7s-2.2-.8-2.2-1.8 1-1.8 2.2-1.8 2.1.8 2.1 1.8z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ee.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ee.svg
new file mode 100644
index 0000000..aa917bb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ee.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ee" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <rect width="640" height="477.9" rx="0" ry="0"/>
+    <rect width="640" height="159.3" y="320.7" fill="#fff" rx="0" ry="0"/>
+    <path fill="#1291ff" d="M0 0h640v159.3H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/eg.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/eg.svg
new file mode 100644
index 0000000..a755cd7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/eg.svg
@@ -0,0 +1,38 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-eg" viewBox="0 0 640 480">
+  <path d="M0 320h640v160H0z"/>
+  <path fill="#fff" d="M0 160h640v160H0z"/>
+  <path fill="#ce1126" d="M0 0h640v160H0z"/>
+  <g fill="#fff" stroke="#c09300" transform="matrix(.8 0 0 .8 -40 0)">
+    <path stroke-linejoin="round" stroke-width="1.3" d="M450.8 302.4l68.5 63.6-4.9-115.5c-.7-17.5-15.9-13.5-27-7.2-11.1 7.2-24 7.2-37.4 2.5-13.5 4.7-26.3 4.7-37.4-2.5-11-6.3-26.3-10.3-27 7.2L380.7 366l70.1-63.6z"/>
+    <path id="a" fill="#c09300" stroke="none" d="M393.5 246.5l-4.8 112.3-8 7.2 4.9-115.5a24 24 0 017.9-4zm9.6 8l-4 94-8 8.2 4.8-108.5c1.6 1.6 6.3 5.5 7.2 6.3zm8.7 7.2l-3.1 78.4-6.5 6.3 4-89.4c1.6 1.5 4.8 3.8 5.6 4.7zm9.5 4l-3.1 66.8-6.3 5.1 3.1-74.3c1.6.7 4.7 2.4 6.3 2.4zm8.8 0l-2.3 55.7-6.5 6.3 2.5-61.3c1.5 0 5.6 0 6.3-.7z"/>
+    <use width="100%" height="100%" transform="matrix(-1 0 0 1 900 0)" xlink:href="#a"/>
+    <path fill="#c09300" stroke-width="1.1" d="M453.2 315l9.6 43.8-3.2 3.2-3.3-2.5-5.4-39 2.3 39-3.2 4-3.1-4 2.3-39-5.5 39-3.3 2.5-3.2-3.2 9.6-43.7h6.4z"/>
+    <g id="b" fill="none" stroke-linejoin="round" stroke-width="1.3">
+      <path fill="#fff" stroke-width="1.2" d="M428.5 295.8l-19.1 67.7 26.3 4 11.1-50.9-18.3-20.8z"/>
+      <path d="M422.2 319l2.3 5.5 12.4-11.8"/>
+      <path d="M430.8 305l2.6 24.3 7.9-10.4m-3.2 4l4.3 15m1.7-5.5l-8.7 13.2m2.7 13.2l-2.8-13.2-2.4-13.4-5.9 7.9-2.5-9.1-8.2 8.4 4.1 15.2 5.8-9.4 3.1 9.6 6-9.2"/>
+      <path d="M415 362l5.3-7.5 3.4 11.5 4.8-8 3.1 9.6"/>
+    </g>
+    <use width="100%" height="100%" transform="matrix(-1 0 0 1 900 0)" xlink:href="#b"/>
+    <g stroke-linecap="round" stroke-linejoin="round" stroke-width="1.3">
+      <path stroke-width="2.4" d="M450 393.8c20 0 39-1.6 50.2-4.7 4.7-.9 4.7-3.3 4.7-6.5 4.8-1.6 2.4-7.2 5.7-7.2-3.4 1-4-5.5-8-4.7 0-5.6-5.7-6.3-10.4-4.7-9.5 3.1-26.3 3.9-42.2 3.9-16-.8-32.6-.8-42.2-4-4.7-1.5-10.3-.8-10.3 4.8-4-.8-4.7 5.6-8 4.7 3.3 0 .8 5.7 5.6 7.2 0 3.2 0 5.6 4.8 6.5 11 3.1 30.2 4.7 50.1 4.7z"/>
+      <path d="M422.9 363.5c6.4.9 13.6 1.6 19.2.9 3.2 0 5.5 5.5-.9 6.3-5.5.7-14.3 0-19-.8a231 231 0 01-18.4-4c-5.6-2.4-1.6-7 1.6-6.4a105.3 105.3 0 0017.5 4zm54.2 0c-6.4.9-13.6 1.6-19 .9-3.4 0-5.7 5.5.7 6.3 5.6.7 14.3 0 19-.8 4-.8 12.8-2.3 18.4-4 5.6-2.4 1.6-7-1.6-6.4a105.2 105.2 0 01-17.5 4z"/>
+      <path d="M403 360.4c-4.8-.9-7 4.7-5.5 7.9.7-1.6 4-1.6 4.7-3.2.9-2.4-.7-2.4.9-4.7zm19.2 14.7c0-3.2 3.1-2.8 3.1-6 0-1.5-.8-4-2.4-4a3.4 3.4 0 00-3.2 3.2c-.7 3.1 2.5 3.6 2.5 6.8zm22.7-9.1c4.7 0 4.2 6.3 2 9.5 0-2.3-4-3.2-4-4.8 0-2.4 3.6-2.4 2-4.7zm52-5.6c4.9-.9 7.2 4.7 5.6 7.9-.7-1.6-4-1.6-4.7-3.2-.9-2.4.7-2.4-.9-4.7zM478 375c0-3.2-3.2-2.8-3.2-6 0-1.5.8-4 2.4-4a3.4 3.4 0 013.2 3.2c.7 3.1-2.5 3.6-2.5 6.8zm-23-9c-4.7 0-4.2 6.3-2 9.5 0-2.3 4-3.2 4-4.8 0-2.4-3.6-2.4-2-4.7z"/>
+      <path stroke-width=".9" d="M404.7 362c1.6 0 4 .7 4.7 1.6l-4.7-1.6zm7.9 2.4c.8 0 4 .7 5.5 1.6l-5.5-1.6zm28.6 3.2c-1.5 0-4.7 0-5.5.7l5.5-.8zm-8.7 0c-.9-.9-4-.9-5.6 0h5.6zm62.8-5.6a8 8 0 00-4.7 1.6l4.7-1.6zm-7.8 2.4c-1 0-4 .7-5.6 1.6l5.6-1.6zm-28.7 3.2c1.5 0 4.7 0 5.6.7l-5.6-.8zm8.7 0c.9-.9 4-.9 5.6 0h-5.6z"/>
+      <g fill="#c09300" stroke="none">
+        <path d="M403.3 374.6c-.5-.1-.8-.6-.6-1 .1-.7.6-1 1-.8.4 0 .9.6.9.8l-.4.7-.2.1c0 .2-.4.2-.7.2zm55 3.9c-.2 0-.6-.5-.6-.7 0-.4.6-1 1-1l.8.4c.3.3.3.9-.1 1.2-.2.2-.8.2-1.1 0zm.3 2.5c-.4-.2-.5-.4-.6-.8 0-.5 0-.6.5-.9l.4-.2.4.2c.4.2.7.4.7.8 0 .3-.3.6-.7.8-.3.2-.4.2-.7 0z"/>
+        <path d="M407.8 370c-.4 0-.9.4-1.2.6-.6.1-1.4.5-2 0-.6-.1-1.4 0-1.5.8.1.7 1 1 1.6.6.4-.5 1.5-.9 1.7 0-.5.8-.4 1.7-.8 2.4 0 .5-.3.9-.5 1.3-.5 0-1 0-1.4.3a2 2 0 00-1.6.8c-.4.6-.8 1.2-.9 2 .1.6 1 .8 1.6.9l2 .6 3.2.9c1.6.5 3.2.7 4.8 1.1l.5.1c.7.2 1-.5 1-1l1-3.6c.2-.5.5-1.5-.4-1.3-.5.3-1 .8-1.6.8-.9 0-.4 1 0 1.3 0 .6-.2 1.3-.5 1.8-.6.3-1.2 0-1.8-.2-.5 0-1.7-.3-1.2-1l.5-1.8c.3-.6.3-1.3.5-2-.4-.7-1 .3-1.5.4-.4.2-1.6.3-1 1 .6.4.2 1.1 0 1.7 0 .7-.8 1-1.4.7-.6 0-1.5-.5-1-1.1l.5-1.8.7-2c0-.7.3-1.2.6-1.8 0-.7.5-1.3.5-2 0-.3-.2-.4-.4-.4zm-3.7 7.3a.3.3 0 01.3 0c.2.2.2.4 0 .6l-.3.2c-.5 0-.6-.1-.6-.3 0-.1 0-.2.3-.3a1.4 1.4 0 01.4-.2zm-1 5c-.5-.4-.4-.7.3-1.3.4-.2.5-.2.9.1.6.5.6.8 0 1.3-.2.2-.3.2-.5.2-.3 0-.4 0-.7-.2zm3 1a.9.9 0 01-.6-1.1c.2-.4.3-.5.9-.5.7 0 .8.1.9.7 0 .4 0 .5-.3.7a1 1 0 01-.8.2zm89.2 0c-.2-.1-.3-.2-.3-.5 0-.4.2-.7.8-.9.6-.3 1-.3 1.2.2.3.6.3.8-.1 1.2-.2.3-.3.3-.8.3s-.6 0-.8-.2zm-85 1.2c-.4 0-.6-.4-.6-.8 0-.3 0-.4.2-.6l.6-.2.6.1c.5.4.6.8.3 1.2-.3.4-.6.4-1.2.3zm21.8 1l-.2-.3c0-.6 0-1.1.2-1.7.1-.5 0-1 .2-1.5l.4-2.8c0-.5 0-1 .2-1.4.1-.8 0-1.5.2-2.2 0-.3.3-1 .6-.6.4.6.9 1 1.4 1.5.4.3 0 .7-.3.8-.4.1-.5.6-.5 1l-.2 1.2c0 .7 0 1.3-.2 2l-.1 1.8-.2 1.2c0 .4 0 .9-.4 1.1-.3.2-.8.2-1-.1zm29.7-9.8l-1.3 1.2c-.6.5.5.7.6 1.1.2.6.2 1.2.2 1.8.2.6.3 1.1.2 1.7 0 .7-.8.5-1.2.9-.5.2-.7.7-1 1a4.2 4.2 0 00-.4 1.6c0 .5-.3 1 0 1.4l.1.2h.5l1.5-.1c1.2-.2 2.5-.2 3.7-.3l2.2-.2c.6.1.9-.5.9-1-.4-.7-.1-1.4-.4-2-.2-.8-.1-1.5-.2-2.2 0-.6-.7-.8-1-.4-.4.4-1 .5-1.2.9-.3.6.6.6.8 1l.1 1.5c.1.6-.5.6-1 .7-.5.2-1.2.3-1.5-.3-.2-.5-.2-1-.2-1.5 0-1-.3-1.8-.3-2.7 0-1-.3-2.1-.3-3.2 0-.5-.1-1.2-.8-1.1zm-.6 8.2h.3v.8l-.3.1a3.3 3.3 0 01-.4.1 2.5 2.5 0 01-.2 0c-.2-.2-.2-.5.1-.8l.5-.2zm-30-9.2c-.3 0-.8.7-1.2.6-.9.1-.8 1-.1 1.3v.8c.1.8-.4 1.5-.3 2.3 0 .8-.3 1.7-.3 2.6-.3.9-.3 1.8-.4 2.7-.1.8-.7.5-1.2.3v-1c.1-.9-.5-1.1-1.2-1.2-.7 0-1-.5-.8-1.1.3-.4 1-.3 1.5-.3 1 .2.9-1.1.4-1.6-.4-.6-1.2-1-1.4-1.6 0-.8-.5-1.7-1.2-2.1-1.1-.1-2 .8-2.3 1.8-.5 0-1 .2-1.4.4-.7.2-1.7 1.4-.7 1.9.5.1 2.2.5 1.4 1.2-.4.8-1.2.8-1.9.6-.7 0-1.5-.4-1.5-1.2-.1-.8-.1-1.6-.4-2.3-.2-.8-1.1-.6-1.2.2-.7.5-.6 1.4-.1 2 .3.7 0 1.6-.3 2.2-.2 1-1.2 1-1.9 1.2-.3.2-1.6 0-1.1.7a4 4 0 002.4.3c.8 0 1.5-.7 2-1.4.5-.5 1.4-.2 2.2-.2.7 0 1.5.5 2.3.1.2-.5 1.2-1.5 1.5-.5 0 .9.7 1.3 1.5 1.2.9 0 .5.6.5 1.2 0 .9.7 1.4 1.5 1.8h.8c.7-.3 1.5-.6 1.8-1.4.3-.7.3-1.5.5-2.2.2-1.1.4-2.3.4-3.4.3-1 .2-2.1.4-3.2l.3-2.3c0-.5-.2-.5-.5-.4zm-6.7 4.1c.1 0 .2.2.2.5 0 .4.2.7.5.8v.3l-.8.2c-.5 0-.9-.2-1.2-.5l-.2-.2.3-.2.5-.5c.3-.3.5-.4.7-.4zm66-7.9a8.4 8.4 0 00-1.7.3c-1 0-1.5 1-.5 1.6.6 1.5 1.5-.4 2.5-.2 1.4.2 1.5 1.8 1.8 3 0 1.1.4 2.2.7 3.3 1 1.1-.7 1.8-1.4 1-.6-.7-2-1.5-2.7-.6-.9.4-1 1.6-1.7 2-1.2.3-1.3-1.2-2-1.8-.6-.9-1.7-1-2.6-1.2-.4-.9-.2-2.4-1-3-.8.3-2.2 1.7-1 2.4 1 1-.5 1.4-1 2-.8.9-1 2-1 3-1.3.7-1.5-.8-1.7-1.7 0-1.1-1-.8-1.7-.4-1 .4-1.4 1.3-2 2v2c.2.9 1.2.5 1.8.4 1-.4 1.4.7.6 1.3-.6.6-2.2.3-2 1.4h1.6c1-.3 2.2-1.1 2.3-2.3.2-1 1.7-.9 2.5-1.1 1-.3 2.3-.4 2.6 1 .7.7 2.2 1.5 3 .5a2.4 2.4 0 001.1-2.3c-.1-.8 1.3-.8 1.7-.3.5.8 2.1.6 2.9 0 .8-.5 1-1.6 2.2-1.6l5.4-1.5c1.4-.3-.2-1.2-.6-1.8-1-.5-2 1.7-3.2.6-1-.7-.9-2-1.2-3.1-.3-1.4-.2-3-1.2-4-.6-.7-1.6-.9-2.5-.9zm-6.8 9.5c.1 0 .3 0 .5.2.4.2.7.6.7 1 0 .2 0 .2-.3.3l-.5.2c-.2 0-.7-.3-.7-.5v-.4c-.2-.4-.2-.4 0-.6l.3-.2zm6.5.4c.4 0 .6 0 .8.3.1.4 0 .6-.4.8l-.5.2-.4-.3c-.2-.1-.3-.2-.3-.4 0-.3.4-.6.8-.7zm-9 0c.2 0 .3 0 .4.2.2.2.3.3.3.6v.6c0 .3 0 .2-.6.2s-.7 0-.7-.6c0-.4 0-.5.3-.7.1-.2.3-.2.4-.2zm-5.4 1.5a.6.6 0 01.4.4c0 .3 0 .5-.2.6-.3.1-.8.2-1 0a.6.6 0 010-.1c-.2-.1-.2-.2 0-.3v-.1l.2-.3a.5.5 0 01.6-.2zm9.2 1.2l.5.1v.6h-1.2l-.1-.2c0-.2 0-.3.2-.4l.6-.1zm-17.1 4.8c-.1 0-.3-.1-.1-.2.1-.3.5-.4.8-.6a3.4 3.4 0 001.4-1c0-.4.4-.6.4-1l-.1-1.4a1.8 1.8 0 00-.8-1c-.3-.1-.7-.2-.8-.6 0-.3.3-.6.4-.9l.6-1.2c.3-.3.7 0 .8.2l.5 1c.3.3.5.6.6 1 .2.4.4.7.4 1l.2 1.3c0 .5 0 1.1-.2 1.6l-.6.8c-.3.3-.6.6-1 .7-.3.1-.5.4-.9.4H468l-.1-.1zm-6.9.4c-.2-.2-.3-.3-.3-.6s0-.3.3-.6c.4-.4.6-.4 1.4 0 .7.4 1 .4 1 .1.1-.2.5-.5 1-.5a.8.8 0 01.5.2c.2.2.3.3.3.7 0 .5 0 .5-.3.8-.3.2-.3.2-.7.2a.9.9 0 01-.8-.6c0-.2 0-.3-.2-.1l-.2.1c-.2 0-.6.3-.8.5l-.5.1c-.4 0-.4 0-.7-.3zm-19.8-8.9c-.7 0-1.4.6-1.5 1.3.2.7.8 1.5.4 2.2.3 1-.8 1.4-1.5.9-.4-1-.6-2-1.3-3-.8-.2-1.1 1.1-1.7 1.6.3.7 1.1 1.4 1.2 2.3.2 1-.4 2-1.1 2.4-.7.7-1.7.5-2.5.6-1 .6.7.8 1.2.8 1 .1 2.1 0 3-.8.7-.3.6-1.7 1.5-1.8l4.8.3c.8.2 2.1-.1 2.7.5 0 1 1 1.8 1.9 2.2.5.2 1-.5 1.5-.6 1-.3.7-1.5 1.3-2h5c.2 0 .3-.5.6-.7l-.2-1.9c-.3-.8 0-1.8-.5-2.5-.9-.2-1.6.5-2.4.6-1 .4-1.7 1.3-1.8 2.3-.5.9-1.4-.2-1-1l-.1-1c-.5-.5-1.4-.3-2.1-.4l-3-.2c-1 0-1.9.1-2.7-.1-1 0-1-1-1-1.8a1 1 0 00-.7-.2zm2 3.7l1 .1h1.3c1 .2 2 .2 3 .2.2 0 .4.2.6.4v2c0 .3 0 .7-.2.8a.7.7 0 01-.2.2 1 1 0 01-.7-.5v-1.4a1.3 1.3 0 00-.7-.3l-2.6-.1-2-.1c-.3-.1-.7 0-.9-.4-.2-.2.1-.6.4-.7a2.3 2.3 0 011-.2zm11.3.3c.1 0 .2 0 .2.3l.2.5c0 .1 0 .2-.2.2-.5.2-1 .2-1.2 0 0-.1 0-.5.2-.6l.8-.4z"/>
+      </g>
+    </g>
+    <path stroke-width="1.1" d="M450 327.2c32.6-25 29.8-61.8 29.8-61.8l-2.5.2c-6.9 0-23.2-4-27-8.9-4 4.5-20.8 9-27.6 9l-2.5-.3s-2.9 36.7 29.8 61.8z"/>
+    <path stroke-width=".9" d="M477.2 268h-.8c-6.2 0-20.6-3.1-26.2-7.9-5.8 4.4-20.5 8-26.6 8a4.7 4.7 0 01-.8-.1 73.1 73.1 0 002.6 18.7 71 71 0 0024.6 37.1 71.2 71.2 0 0024.6-37.2 73.1 73.1 0 002.6-18.6z"/>
+    <path fill="#c09300" stroke="none" d="M439.4 265a62.2 62.2 0 01-16.6 3l.1 4.1a72.8 72.8 0 002.5 14.5 71 71 0 0014 26.8V265zm20.6 0v49.2a71.1 71.1 0 0014.6-27.6 73 73 0 002.5-14.5l.1-4h-.8c-3.8 0-10.4-1.2-16.4-3.2z"/>
+    <g stroke-width="1.3">
+      <path stroke-width="1.2" d="M462.3 253c.7.1-.9-3.5-.9-3.5 1.8 1.8 8.4 2.3 8.4 2.3-4-1.8-8-15.1-7.5-25.8.4-10.6-1.5-14.8-3-16.4-2-2-8.5-3.8-12.7-4-2.5-.1-2 1.8-2 1.8-4.5-1.1-9-1.6-11-.2-1.8 1.2-2.2 7.5-.8 6.4 3.3-2.7 6.2-.2 8.2 2.7 1.8 2.5 1.7 9.7-.9 18.2a60 60 0 01-10 17.7c4 0 9.6-3.5 9.6-3.5l-1.3 5.5c4.2-2 7.5-5.1 7.5-5.1l4 4.2c1.3-1.8 4-4.2 4-4.2s3.3 3.5 8.4 4z"/>
+      <path fill="none" d="M446.1 227.6s-2.2 16.4-6.4 21m10-21.5s-1 16.7-3.8 22m6.9-21.3s0 18.2 1 21.3m3-20.4s.8 15.3 4.6 20.8"/>
+      <path fill="#c09300" stroke-width=".3" d="M442 219.6a8 8 0 00-1-3.3c-2-3-4.9-5.4-8.2-2.7 0 0 1.1-3.5 3.6-3.6 1.8-.1 6.1 1.4 9.9 7.8 0 0-2.8-.6-3.5 0-1.2 1-.7 1.8-.7 1.8z"/>
+      <path fill="#c09300" stroke-width=".3" d="M432.4 209.3c.3-1 .7-1.8 1.3-2.1 2-1.4 6.4-1 10.9.2 0 0-.4-1.9 2-1.8 4.2.2 10.6 2 12.6 4a7.9 7.9 0 011.5 2.4c-1-1.4-3.8-1.3-4.5-1.2-1 .1-1.7 0-3.1.4-.7.2-1.7.4-2.3.8-.4.4-.8 1.6-1.4 1.6-1 0-1-.2-1.3-.5-.3-.5-.5-1.1-.9-1-1 .1-2.8-.7-5-2.5-2.3-1.8-3.2-2.2-6-2-3 .2-3.8 1.9-3.8 1.9v-.2z"/>
+      <circle cx="448.8" cy="210.7" r="1.2" stroke="none"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/eh.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/eh.svg
new file mode 100644
index 0000000..438c382
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/eh.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-eh" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="eh-a">
+      <path fill-opacity=".7" d="M-158.7 0H524v512h-682.7z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#eh-a)" transform="translate(148.8) scale(.94)">
+    <path d="M-180 0H844v256H-180z"/>
+    <path fill="#107b00" d="M-180 256H844v256H-180z"/>
+    <path fill="#fff" d="M-180 169.3H844v176.1H-180z"/>
+    <path fill="#f0f" d="M310 195.6c-45.2-19.5-84.1 20.6-84 58 0 39.2 38 81 86 62.5-34-10-48-35.3-48-60.7-.3-25.2 15.8-54.6 46-59.9z"/>
+    <path fill="#ff1800" d="M363.1 294.2l-25.8-18.9-26 19 10-30.5-26-18.8h32l9.9-30.5 9.8 30.4h32.1l-25.9 18.8"/>
+    <path fill="red" d="M314.3 315.6a65.2 65.2 0 01-89.2-59.4 65 65 0 0189.5-60.9 60.6 60.6 0 00-51.2 59.2 61.3 61.3 0 0051 61.1zM-180 0l348.6 256.6L-180 512V0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/en.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/en.svg
new file mode 100644
index 0000000..132dbed
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/en.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gb" viewBox="0 0 640 480">
+  <path fill="#012169" d="M0 0h640v480H0z"/>
+  <path fill="#FFF" d="M75 0l244 181L562 0h78v62L400 241l240 178v61h-80L320 301 81 480H0v-60l239-178L0 64V0h75z"/>
+  <path fill="#C8102E" d="M424 281l216 159v40L369 281h55zm-184 20l6 35L54 480H0l240-179zM640 0v3L391 191l2-44L590 0h50zM0 0l239 176h-60L0 42V0z"/>
+  <path fill="#FFF" d="M241 0v480h160V0H241zM0 160v160h640V160H0z"/>
+  <path fill="#C8102E" d="M0 193v96h640v-96H0zM273 0v480h96V0h-96z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/er.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/er.svg
new file mode 100644
index 0000000..7a25798
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/er.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-er" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="#be0027" d="M0 0h640v480H0z"/>
+    <path fill="#b4d7f4" d="M0 480l640-.3V240L0 480z"/>
+    <path fill="#239e46" d="M0 0l640 .3V240L0 0z"/>
+    <path fill="#f3e295" d="M186.2 360.4c-10.7 3-16.8 11.3-16.7 19.1l52.8-.2c.4-8.4-6.5-16.2-17-19.3 51.6-1 96.4-20.4 104.6-32.8-8-3.5-17.4 2.1-24 .8 15.7-7.3 63-37.9 55.3-70.7-6 18.2-24 33.3-31.8 37.4 17.7-26.8 41.8-54.8 20.9-76.4 1 12.5-8 26.3-12 27.4 10.3-28.4 20-64-2.1-87.4 2.9 8.5 1.7 32.4-2.3 33.5-1.2-19.3-4.5-59.8-24.8-59.3 6.4 5.8 9.2 21.4 9.4 37.2a57.5 57.5 0 00-21.1-27 118.3 118.3 0 00-41.5-42.2c1.8 12.7 3.3 22.7 21 35.9-9.2-.6-18.4-18.1-28.3-18.6-7.9-.4-14 7.1-26.9 2.8 1.4 4.2 7.4 6.1 8.7 9.2-2.8 2-9.3-.3-14.7-3 7.5 10 19 16 28.8 14 11.7-2.2 24.2-1 36.2 5.8a63 63 0 01-22.5.6c6.9 7 11.5 11.7 23.6 11.6 10.7 0 16.4-5.8 19.1-2.2 6.8 8 11.3 16 17 25.4-12.5 1.3-8.7-14.1-22.6-22-7.9 16 9 35.2 20.3 43.2a65 65 0 007.1 31.5c3.5 6.5 8 13.2 6.3 27.9-6.9-5-13.5-21.8-11-35.1-8.6 2.3-12 17.4-8 25 3 5.7 5 16.8 1.6 21.7-3.4 4.6-3.7 4-3.7 14 .1 5.8-3.2 12.8-8.5 17.7a35.5 35.5 0 001.1-15.8c-4.2 7.2-14.9 14.6-18.2 22.4-3.3 7.7-4.1 21.2-20 24.3-20.6 4-27.7 7.6-40.8 13-1.5-10 2.9-31 11.3-29.7 8.1 1.4 33-8.6 24-29.5-1.7 6.6-7.5 13-13.9 13.3 6.9-8.8 19-18 13.1-32.8a42.6 42.6 0 01-16.3 18c8.4-16 1-21-9-7.6-3.8 5.1-6.1 15.4-8.5 28.5-4-10.6-3.7-24.6-8.4-36-4.8-12.3 6.5-15.5 11.8-14.5 13 3.5 34.9 3.5 33.3-18.1-5.7 7.3-15.5 9.5-26.2 7 12-8.8 21.4-25.3 8-34a31 31 0 01-16.9 24.1 50.8 50.8 0 01-.3-24.8c-5.2 5.6-9 17-12.1 30.2-.3-13 2.2-22.3 4-29.3 2.8-10.1 9.6-3.5 20-2.8 10.2.6 24-5 21.4-18.7-3.4 5.5-10.5 7.6-17.7 7 8.7-5.3 23.8-14.6 15.5-29-3.5 5.4-4.6 10-14.7 11.7 2.6-6 3-14.7 11-18-14-2.9-22 6.3-26.2 20.7-1.6-10-3.6-13.6-4-21 7.6-8.3 8.4-24.8-8-28.4a35 35 0 001.2 17.4c-7.7-4.6-18.5-7.1-25.8-.7 5 5.3 12.5 10 24.2 4.2-2.8 9-10 7.5-19.8 4 6 11.3 13.6 13.3 22 12 4.4 11.6 4.6 20.4-8.3 37.2.6-10.4-.1-18.2-8.4-26.7-7.2-7-13 .3-1.8 15.8-6.8-5-14.4-15-16.7-25.1-2.2 12.4-.2 27.1 6.7 35.4-3.3 3.5-7-.4-12.5-9 2 27.4 13.7 32.7 29.4 26.6.4 15 .4 28.9 1.3 47-9.1-13.2-20.7-23-27.1-25.4-2 7.3 5.5 17 9.8 22.3-6.5-1.4-20.5-12-20.5-12-1.4 12.1 14.3 23.4 24.5 28.4-12-.5-17.3-5-25-12.4.2 33.8 36.6 27.9 43.5 22.7l3 52.5c-10.3-1.8-9.5-5-18.3-5.7-24.5-1-43.9-29.4-50.3-50.3-1.9 3.4-.4 7-2.1 11.3-4-10.3-9-23.6-15.9-29.8 1.8 6 2 12.1 1.4 23.3-2.4-7.2-4.5-9.5-4.7-18 .1-6.5 6.3-11.3 6-20.5-.3-6.7-6.4-21.3-7.3-32.5-3 11.6-4.8 23.8-9.4 31 2.3-12.4 1.6-21 5.4-29.3 4.4-8.7 8.1-16.6 5.2-25.4-2.8 3.4-1.9 6.5-9 14.8-1.5-9 9.2-23.5 19.6-29.3 7.3-3.8 16.5-17.6 10.5-27-6.9 5-10 11.6-19.7 23 7-27 25-34.2 46.5-34.3 4.7 0 14.3-1.7 17-8-6 2.3-13.2 2.6-19.6 1.4 4.7-6.9 14.4-6 23.6-6 7.1 0 18.3-1 22.8-11.2a50.8 50.8 0 01-31 1.9c13.7-7 35-7.8 46-17.1-12.5-9.3-43.7 2.2-63.4 15.7 5.5-5 14.2-14 19-21.2-10.8-5.2-38 25-47.4 43-9 5-12.5 13-16 18.5 4.7-16.1 5.2-27.8 9.2-41C80 138 92.6 194.6 86 208.2c.8-15 .1-34.1-6-44-9.4 7.2-10.2 49.5-1.4 84.7-3.2-9.4-9.2-18.2-11.1-29.7-14 25.4 8.2 55.5 26.7 79.2-14-7.3-27.7-22.9-36.8-36 2.5 45.6 50 55 57.4 66.2-10-4.7-29.1-13.9-37.3-4.2a99 99 0 0132.3 12.1c12.4 15.4 35.7 22.2 76.4 23.9z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/es-ca.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/es-ca.svg
new file mode 100644
index 0000000..fc7c2e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/es-ca.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-es-ca" viewBox="0 0 640 480">
+  <path fill="#fcdd09" d="M0 0h640v480H0z"/>
+  <path stroke="#da121a" stroke-width="60" d="M0 90h810m0 120H0m0 120h810m0 120H0" transform="scale(.79012 .88889)"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/es-ga.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/es-ga.svg
new file mode 100644
index 0000000..4e213f5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/es-ga.svg
@@ -0,0 +1,189 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-es-ga" version="1.0" viewBox="0 0 640 480">
+  <g id="g5162" font-size="12" transform="matrix(1.06667 0 0 1.2001 0 -115.3)">
+    <path id="rect733" fill="#fff" fill-opacity="1" fill-rule="evenodd" stroke-width="1pt" d="M0 96h600v400H0z"/>
+    <path id="path556" fill="#09c" d="M600 437.8L86 96H0v57l516 343h84v-58.2"/>
+  </g>
+  <g id="g4979" font-size="12" transform="matrix(1.06667 0 0 1.06758 0 -76)">
+    <path id="path558" fill="#005bbf" fill-opacity="1" d="M296.6 401.2c-60 0-58.1-56.5-58.1-56.5v-86.9h116.3v86.9s2 56.5-58.2 56.5"/>
+    <path id="path559" fill="none" stroke="#000" stroke-width="1" d="M296.6 401.2c-60 0-58.1-56.5-58.1-56.5v-86.9h116.3v86.9s2 56.5-58.2 56.5z"/>
+    <path id="path560" fill="#d81126" fill-opacity="1" d="M296.1 203.2s-12.4-6-24.1 2.8c0 0-21.1-3-22.7 17.2 0 .8-.2 2.3.2 2.8.4.4.8 1.2.8 1.8 0 .6.3.9.5 1.1 0 .3.4.7.5 1.7 0 1.1-.2 1.6.9 2.7 1 1 1 4.1 1 5 0 .9.6 3.3 1 3.8.5.5 1.3 1.8 1.3 2.9 0 1 .4 4 .2 4.7-.2.8 1.2 1.7 2.4 2.1 1.2.4 16 5.2 37.6 4.8 21.6-.3 29.4-1.5 38.4-4.7 1.3-.5 1.6-1.7 1.5-2.3-.2-.6 0-2.6.3-3.1.4-.5 3-4.6 2.4-5.3-.5-.8-.5-2.4 0-3 .5-.7 2.1-3.7 2.4-5 .3-1.2.4-2.7 1-3.1.5-.4.7-1.9.8-2.2a4 4 0 011.2-1.6s1-5.1.4-7.6c-.7-2.5-4.5-13.3-19.8-11 0 0-11.4-8.7-28.2-4.5"/>
+    <path id="path561" fill="none" stroke="#000" stroke-width="1.5" d="M296.1 203.2s-12.4-6-24.1 2.8c0 0-21.1-3-22.7 17.2 0 .8-.2 2.3.2 2.8.4.4.8 1.2.8 1.8 0 .6.3.9.5 1.1 0 .3.4.7.5 1.7 0 1.1-.2 1.6.9 2.7 1 1 1 4.1 1 5 0 .9.6 3.3 1 3.8.5.5 1.3 1.8 1.3 2.9 0 1 .4 4 .2 4.7-.2.8 1.2 1.7 2.4 2.1 1.2.4 16 5.2 37.6 4.8 21.6-.3 29.4-1.5 38.4-4.7 1.3-.5 1.6-1.7 1.5-2.3-.2-.6 0-2.6.3-3.1.4-.5 3-4.6 2.4-5.3-.5-.8-.5-2.4 0-3 .5-.7 2.1-3.7 2.4-5 .3-1.2.4-2.7 1-3.1.5-.4.7-1.9.8-2.2a4 4 0 011.2-1.6s1-5.1.4-7.6c-.7-2.5-4.5-13.3-19.8-11 0 0-11.4-8.7-28.2-4.5h0z"/>
+    <path id="path562" fill="#bcac0b" fill-opacity="1" d="M337.6 240.8c-47-14.9-83.4-.7-83.4-.7s.4 1.6.8 2.1 1 1.7 1 2.6v2.8c0 .7-.4 3.7 2.2 3.6 0 0 32.8-12.8 75.4.7 0 0 1.2-1 1.2-2.5a8 8 0 011-4c.5-.8 1.8-3.4 1.8-4.6"/>
+    <path id="path563" fill="#c8b100" fill-opacity=".9" d="M294 319.3h-20.5s-2 18.3 13.8 23.9v1.6h3.3v2.2s-5.8 5.2-.7 11.2v1.8h.8v3h1v4.7s-.8 17-17.6 25.2v1h44.7v-1c-16.7-8.1-17.5-25.2-17.5-25.2V363h1V360h.8v-1.8c5-6-.8-11.2-.8-11.2v-2.2h3.4v-1.6c15.7-5.6 13.7-23.9 13.7-23.9H294"/>
+    <path id="path564" fill="none" stroke="#000" stroke-width="1" d="M294 319.3h-20.5s-2 18.3 13.8 23.9v1.6h3.3v2.2s-5.8 5.2-.7 11.2v1.8h.8v3h1v4.7s-.8 17-17.6 25.2v1h44.7v-1c-16.7-8.1-17.5-25.2-17.5-25.2V363h1V360h.8v-1.8c5-6-.8-11.2-.8-11.2v-2.2h3.4v-1.6c15.7-5.6 13.7-23.9 13.7-23.9H294h0z"/>
+    <path id="path565" fill="none" stroke="#000" stroke-width=".3" d="M286.6 342.9h19.7m-19 1.5h18.4m-15 2.5h11.5m-12.3 11.5H303m-12.4 1.4h11.6m-11.6 2.8h11.5m-18.5 23.2h25.5m-32.7 5.9h40m-41.5.9h43"/>
+    <path id="path566" fill="#ccc" fill-opacity="1" d="M296.6 318.3a13 13 0 100-26.1 13 13 0 000 26"/>
+    <path id="path567" fill="none" stroke="#000" stroke-width="1" d="M296.6 318.3a13 13 0 100-26.1 13 13 0 000 26z"/>
+    <path id="path568" fill="#ccc" fill-opacity="1" d="M266.3 280h-8.1v-8.2H251v8.2h-8.2v7.2h8.2v8h7.2v-8h8V280"/>
+    <path id="path569" fill="none" stroke="#000" stroke-width="1" d="M266.3 280h-8.1v-8.2H251v8.2h-8.2v7.2h8.2v8h7.2v-8h8V280"/>
+    <path id="path570" fill="#ccc" fill-opacity="1" d="M350.8 280h-8.1v-8.2h-7.2v8.2h-8.2v7.2h8.2v8h7.2v-8h8.1V280"/>
+    <path id="path571" fill="none" stroke="#000" stroke-width="1" d="M350.8 280h-8.1v-8.2h-7.2v8.2h-8.2v7.2h8.2v8h7.2v-8h8.1V280"/>
+    <path id="path572" fill="#ccc" fill-opacity="1" d="M308 269.7h-8.2v-8h-7.2v8h-8v7.2h8v8.2h7.2v-8.2h8.2v-7.2"/>
+    <path id="path573" fill="none" stroke="#000" stroke-width="1" d="M308 269.7h-8.2v-8h-7.2v8h-8v7.2h8v8.2h7.2v-8.2h8.2v-7.2"/>
+    <path id="path574" fill="#ccc" fill-opacity="1" d="M266.3 315.2h-8.1V307H251v8.2h-8.2v7.2h8.2v8h7.2v-8h8v-7.2"/>
+    <path id="path575" fill="none" stroke="#000" stroke-width="1" d="M266.3 315.2h-8.1V307H251v8.2h-8.2v7.2h8.2v8h7.2v-8h8v-7.2"/>
+    <path id="path576" fill="#ccc" fill-opacity="1" d="M350.8 315.2h-8.1V307h-7.2v8.2h-8.2v7.2h8.2v8h7.2v-8h8.1v-7.2"/>
+    <path id="path577" fill="none" stroke="#000" stroke-width="1" d="M350.8 315.2h-8.1V307h-7.2v8.2h-8.2v7.2h8.2v8h7.2v-8h8.1v-7.2"/>
+    <path id="path578" fill="#ccc" fill-opacity="1" d="M266.3 350.7h-8.1v-8.1H251v8.1h-8.2v7.2h8.2v8.1h7.2v-8h8v-7.3"/>
+    <path id="path579" fill="none" stroke="#000" stroke-width="1" d="M266.3 350.7h-8.1v-8.1H251v8.1h-8.2v7.2h8.2v8.1h7.2v-8h8v-7.3"/>
+    <path id="path580" fill="#ccc" fill-opacity="1" d="M350.8 350.7h-8.1v-8.1h-7.2v8.1h-8.2v7.2h8.2v8.1h7.2v-8h8.1v-7.3"/>
+    <path id="path581" fill="none" stroke="#000" stroke-width="1" d="M350.8 350.7h-8.1v-8.1h-7.2v8.1h-8.2v7.2h8.2v8.1h7.2v-8h8.1v-7.3"/>
+    <path id="path582" fill="#005bbf" fill-opacity="1" d="M296.5 185.8a7.8 7.8 0 100-15.7 7.8 7.8 0 000 15.7"/>
+    <path id="path583" fill="none" stroke="#000" stroke-width="1" d="M296.5 185.8a7.8 7.8 0 100-15.7 7.8 7.8 0 000 15.7z"/>
+    <path id="path584" fill="#fc0" fill-opacity="1" d="M303.8 176.6h-6.4v-10.4h2.5v-2h-2.5v-2.5h-2v2.4h-2.5v2.1h2.4v10.4h-6v1.4h14.5v-1.4"/>
+    <path id="path585" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".5" d="M303.8 176.6h-6.4v-10.4h2.5v-2h-2.5v-2.5h-2v2.4h-2.5v2.1h2.4v10.4h-6v1.4h14.5v-1.4"/>
+    <path id="path586" fill="#fc0" fill-opacity="1" d="M265.2 195.1s5.8-.6 9.1.7c0 0-3.8 4.4-3 10.1.4 3 1 4.5 1.9 6 .8 1.3 1.7 4.3 1.2 6.6h1.1s1.1-4.8-.7-7.4a10 10 0 01-1-10.3c1.9-3.8 4.6-5.3 4.6-5.3 3 1.2 9.6 0 11.4-1.3 1.9-1.3 2.8-3.2-.6-3.3-3.5-.2-9.3-.1-13.3 2.9 0 0-2.1-2.4-12.6-1.3-10.5 1.2-18 5.7-20.4 15.1-1.2 4.8 3.3 14.9 7.4 17.3 0 0-.1-1.6.3-2.8 0 0-7-7.9-5-15.2 2.2-7.2 10.6-12 19.6-11.8"/>
+    <path id="path587" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M265.2 195.1s5.8-.6 9.1.7c0 0-3.8 4.4-3 10.1.4 3 1 4.5 1.9 6 .8 1.3 1.7 4.3 1.2 6.6h1.1s1.1-4.8-.7-7.4a10 10 0 01-1-10.3c1.9-3.8 4.6-5.3 4.6-5.3 3 1.2 9.6 0 11.4-1.3 1.9-1.3 2.8-3.2-.6-3.3-3.5-.2-9.3-.1-13.3 2.9 0 0-2.1-2.4-12.6-1.3-10.5 1.2-18 5.7-20.4 15.1-1.2 4.8 3.3 14.9 7.4 17.3 0 0-.1-1.6.3-2.8 0 0-7-7.9-5-15.2 2.2-7.2 10.6-12 19.6-11.8z"/>
+    <path id="path588" fill="#fff" d="M284.9 193.7c1.8-.2 3.3-.5 3.2-.7 0-.3-1.5-.3-3.3-.2-1.8.1-3.2.5-3.2.7 0 .3 1.5.3 3.3.2"/>
+    <path id="path589" fill="none" stroke="#000" stroke-width=".7" d="M278.3 195.4s-2 2 0 0 6.4-3.2 8.9-2.7c2.4.6-.5.9-1.3 1-.8 0-2.4.3-4.8 0"/>
+    <path id="path590" fill="#fc0" fill-opacity="1" d="M327.7 195.8s-5.7-.7-9.1.6a14.6 14.6 0 011.2 16c-.9 1.5-1.8 4.4-1.3 6.7h-1s-1.2-4.7.7-7.4a10 10 0 00.9-10.2 12.6 12.6 0 00-4.5-5.4c-3.1 1.3-9.7 0-11.5-1.3-1.8-1.3-2.8-3.1.7-3.3 3.4-.2 9.3-.1 13.3 3 0 0 2-2.5 12.6-1.3 10.4 1.1 18 5.6 20.3 15 1.2 4.8-3.2 14.9-7.3 17.3 0 0 0-1.6-.3-2.8 0 0 7-7.8 4.9-15.1-2.1-7.3-10.5-12-19.6-11.8"/>
+    <path id="path591" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M327.7 195.8s-5.7-.7-9.1.6a14.6 14.6 0 011.2 16c-.9 1.5-1.8 4.4-1.3 6.7h-1s-1.2-4.7.7-7.4a10 10 0 00.9-10.2 12.6 12.6 0 00-4.5-5.4c-3.1 1.3-9.7 0-11.5-1.3-1.8-1.3-2.8-3.1.7-3.3 3.4-.2 9.3-.1 13.3 3 0 0 2-2.5 12.6-1.3 10.4 1.1 18 5.6 20.3 15 1.2 4.8-3.2 14.9-7.3 17.3 0 0 0-1.6-.3-2.8 0 0 7-7.8 4.9-15.1-2.1-7.3-10.5-12-19.6-11.8z"/>
+    <path id="path592" fill="#fff" d="M308 194.3c-1.8-.1-3.2-.4-3.2-.7 0-.2 1.5-.3 3.3-.2 1.8.2 3.3.5 3.3.7 0 .3-1.5.4-3.4.2"/>
+    <path id="path593" fill="none" stroke="#000" stroke-width=".7" d="M314.6 196s2.1 2 0 0c-2-1.9-6.4-3.2-8.8-2.6-2.5.5.4.8 1.2.9.9 0 2.5.4 4.9 0"/>
+    <path id="path594" fill="#fc0" fill-opacity="1" d="M291.1 189.3v22.3c-.2 2.2 2.7 5.3 4.8 6.2 0 0 5-1.6 5.3-6.2v-23.5h-1.7v20.4c0 2-1.4 5.8-3.3 6.4 0 0-3.6-.6-3.8-6.4v-19.8l-1.3.6"/>
+    <path id="path595" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M291.1 189.3v22.3c-.2 2.2 2.7 5.3 4.8 6.2 0 0 5-1.6 5.3-6.2v-23.5h-1.7v20.4c0 2-1.4 5.8-3.3 6.4 0 0-3.6-.6-3.8-6.4v-19.8l-1.3.6"/>
+    <path id="path596" fill="#fff" d="M241.8 219.8a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path597" fill="none" stroke="#000" stroke-width="1" d="M241.8 219.8a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path598" fill="#fff" d="M240.1 213.7a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path599" fill="none" stroke="#000" stroke-width="1" d="M240.1 213.7a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path600" fill="#fff" d="M241 206.3a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path601" fill="none" stroke="#000" stroke-width="1" d="M241 206.3a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path602" fill="#fff" d="M245.1 200.1a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path603" fill="none" stroke="#000" stroke-width="1" d="M245.1 200.1a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path604" fill="#fff" d="M250 195.6a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path605" fill="none" stroke="#000" stroke-width="1" d="M250 195.6a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path606" fill="#fff" d="M256.4 193.1a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path607" fill="none" stroke="#000" stroke-width="1" d="M256.4 193.1a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path608" fill="#fff" d="M263 192a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.3"/>
+    <path id="path609" fill="none" stroke="#000" stroke-width="1" d="M263 192a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.3z"/>
+    <path id="path610" fill="#fff" d="M269.3 191.6a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4"/>
+    <path id="path611" fill="none" stroke="#000" stroke-width="1" d="M269.3 191.6a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4z"/>
+    <path id="path612" fill="#fff" d="M275 192a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.4"/>
+    <path id="path613" fill="none" stroke="#000" stroke-width="1" d="M275 192a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.4z"/>
+    <path id="path614" fill="#fff" d="M291 190a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path615" fill="none" stroke="#000" stroke-width="1" d="M291 190a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path616" fill="#fff" d="M296.2 191.4a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path617" fill="none" stroke="#000" stroke-width="1" d="M296.2 191.4a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path618" fill="#fff" d="M296.2 211.2a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4"/>
+    <path id="path619" fill="none" stroke="#000" stroke-width="1" d="M296.2 211.2a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4z"/>
+    <path id="path620" fill="#fff" d="M351.3 221.5a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path621" fill="none" stroke="#000" stroke-width="1" d="M351.3 221.5a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path622" fill="#fff" d="M352.7 215a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.3"/>
+    <path id="path623" fill="none" stroke="#000" stroke-width="1" d="M352.7 215a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.3z"/>
+    <path id="path624" fill="#fff" d="M351.6 208a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path625" fill="none" stroke="#000" stroke-width="1" d="M351.6 208a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path626" fill="#fff" d="M348.7 201.5a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4"/>
+    <path id="path627" fill="none" stroke="#000" stroke-width="1" d="M348.7 201.5a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4z"/>
+    <path id="path628" fill="#fff" d="M343.8 197a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.3"/>
+    <path id="path629" fill="none" stroke="#000" stroke-width="1" d="M343.8 197a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.3z"/>
+    <path id="path630" fill="#fff" d="M337.9 194a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path631" fill="none" stroke="#000" stroke-width="1" d="M337.9 194a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path632" fill="#fff" d="M331.1 192.5a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path633" fill="none" stroke="#000" stroke-width="1" d="M331.1 192.5a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path634" fill="#fff" d="M325 192a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path635" fill="none" stroke="#000" stroke-width="1" d="M325 192a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path636" fill="#fff" d="M319.4 191.3a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4"/>
+    <path id="path637" fill="none" stroke="#000" stroke-width="1" d="M319.4 191.3a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4z"/>
+    <path id="path638" fill="#fff" d="M323 213a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.4"/>
+    <path id="path639" fill="none" stroke="#000" stroke-width="1" d="M323 213a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.4z"/>
+    <path id="path640" fill="#fff" d="M324.4 208a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.3"/>
+    <path id="path641" fill="none" stroke="#000" stroke-width="1" d="M324.4 208a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.3z"/>
+    <path id="path642" fill="#fff" d="M302 190.9a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4"/>
+    <path id="path643" fill="none" stroke="#000" stroke-width="1" d="M302 190.9a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4z"/>
+    <path id="path644" fill="#fff" d="M289 190.1a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path645" fill="none" stroke="#000" stroke-width="1" d="M289 190.1a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path646" fill="#fff" d="M285.8 190a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path647" fill="none" stroke="#000" stroke-width="1" d="M285.8 190a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path648" fill="#fff" d="M268.8 213.1a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path649" fill="none" stroke="#000" stroke-width="1" d="M268.8 213.1a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path650" fill="#fff" d="M268 206.8a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4"/>
+    <path id="path651" fill="none" stroke="#000" stroke-width="1" d="M268 206.8a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4z"/>
+    <path id="path652" fill="#fff" d="M270 200.6a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path653" fill="none" stroke="#000" stroke-width="1" d="M270 200.6a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path654" fill="#fff" d="M281.7 190.6a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path655" fill="none" stroke="#000" stroke-width="1" d="M281.7 190.6a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path656" fill="#fff" d="M277.2 192.4a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path657" fill="none" stroke="#000" stroke-width="1" d="M277.2 192.4a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path658" fill="#fff" d="M273 196a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path659" fill="none" stroke="#000" stroke-width="1" d="M273 196a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path660" fill="#fff" d="M296.2 194.4a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path661" fill="none" stroke="#000" stroke-width="1" d="M296.2 194.4a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path662" fill="#fff" d="M296.2 199.5a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4"/>
+    <path id="path663" fill="none" stroke="#000" stroke-width="1" d="M296.2 199.5a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4z"/>
+    <path id="path664" fill="#fff" d="M296.2 204.9a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4"/>
+    <path id="path665" fill="none" stroke="#000" stroke-width="1" d="M296.2 204.9a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4z"/>
+    <path id="path666" fill="#fff" d="M305.4 190.2a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4"/>
+    <path id="path667" fill="none" stroke="#000" stroke-width="1" d="M305.4 190.2a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4z"/>
+    <path id="path668" fill="#fff" d="M309 189.4a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path669" fill="none" stroke="#000" stroke-width="1" d="M309 189.4a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path670" fill="#fff" d="M313.2 190a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.4"/>
+    <path id="path671" fill="none" stroke="#000" stroke-width="1" d="M313.2 190a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.4z"/>
+    <path id="path672" fill="#fff" d="M323.5 201.4a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path673" fill="none" stroke="#000" stroke-width="1" d="M323.5 201.4a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path674" fill="#fff" d="M317.3 192.5a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4"/>
+    <path id="path675" fill="none" stroke="#000" stroke-width="1" d="M317.3 192.5a2.7 2.7 0 100-5.4 2.7 2.7 0 000 5.4z"/>
+    <path id="path676" fill="#fff" d="M321.1 196.1a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3"/>
+    <path id="path677" fill="none" stroke="#000" stroke-width="1" d="M321.1 196.1a2.7 2.7 0 100-5.3 2.7 2.7 0 000 5.3z"/>
+    <path id="path678" fill="#fff" d="M296 236l-7 3.6 6.3 4 7.5-3.8-6.8-3.8"/>
+    <path id="path679" fill="none" stroke="#000" stroke-width=".5" d="M296 236l-7 3.6 6.3 4 7.5-3.8-6.8-3.8"/>
+    <path id="path680" fill="#fff" d="M280.6 236.8l-10.5 1.6s-.2 5.7.3 7l10.9-1.4s.5-5.3-.7-7.2"/>
+    <path id="path681" fill="none" stroke="#000" stroke-width=".5" d="M280.6 236.8l-10.5 1.6s-.2 5.7.3 7l10.9-1.4s.5-5.3-.7-7.2z"/>
+    <path id="path682" fill="#058e6e" fill-opacity=".9" d="M279.5 238.8s-6.4.6-8 1.2v3.8s4.3-.7 8.1-1l-.1-4"/>
+    <path id="path683" fill="none" stroke="#000" stroke-width=".5" d="M279.5 238.8s-6.4.6-8 1.2v3.8s4.3-.7 8.1-1l-.1-4"/>
+    <path id="path684" fill="#fff" d="M310.7 237l10.6 1.7s.1 5.7-.4 7l-10.8-1.4s-.5-5.3.6-7.2"/>
+    <path id="path685" fill="none" stroke="#000" stroke-width=".5" d="M310.7 237l10.6 1.7s.1 5.7-.4 7l-10.8-1.4s-.5-5.3.6-7.2z"/>
+    <path id="path686" fill="#058e6e" fill-opacity=".9" d="M312 239.1s6.3.6 7.9 1.2l-.1 3.8s-4.2-.7-8-1l.1-4"/>
+    <path id="path687" fill="none" stroke="#000" stroke-width=".5" d="M312 239.1s6.3.6 7.9 1.2l-.1 3.8s-4.2-.7-8-1l.1-4"/>
+    <path id="path688" fill="none" stroke="#000" stroke-width=".5" d="M254.2 241.8s37-13.7 84.2 1.2m-82.7 6.7s35.9-13.4 80 .6m-79.8-9l7.2 2.1-5 5.4"/>
+    <path id="path689" fill="red" d="M256 247.8l4.2-3.5-4.7-.9s.6.7.5 1.4v3"/>
+    <path id="path690" fill="none" stroke="#000" stroke-width=".5" d="M256 247.8l4.2-3.5-4.7-.9s.6.7.5 1.4v3z"/>
+    <path id="path691" fill="none" stroke="#000" stroke-width=".5" d="M337.6 242.7l-7.7 1.4 5.2 6"/>
+    <path id="path692" fill="red" d="M335.3 248l-2.9-3 4.2-.4s-1.2.7-1.2 1.4c0 .6.2 1.5 0 2"/>
+    <path id="path693" fill="none" stroke="#000" stroke-width=".5" d="M335.3 248l-2.9-3 4.2-.4s-1.2.7-1.2 1.4c0 .6.2 1.5 0 2z"/>
+    <path id="path694" fill="none" stroke="#000" stroke-width=".5" d="M265.3 241.8c.6 0 1.2-.4 1.2-1 0-.4-.6-.9-1.2-.9-.7 0-1.2.5-1.2 1s.5 1 1.2 1zm20.6-2.3c.7 0 1.2-.4 1.2-1 0-.5-.5-.9-1.2-.9s-1.2.4-1.2 1c0 .5.5.9 1.2.9zm0 3.3c.7 0 1.2-.4 1.2-.9s-.5-1-1.2-1-1.2.5-1.2 1 .5 1 1.2 1zm20.3-3.1c.6 0 1.2-.5 1.2-1s-.6-1-1.2-1c-.7 0-1.2.5-1.2 1s.5 1 1.2 1zm20.1 3.7c.7 0 1.2-.5 1.2-1s-.5-1-1.2-1-1.2.5-1.2 1 .5 1 1.2 1zm-.3 2.6c.6 0 1.2-.4 1.2-1 0-.4-.6-.9-1.2-.9-.7 0-1.2.5-1.2 1s.5 1 1.2 1zm-19.8-3c.6 0 1.2-.4 1.2-1 0-.5-.6-.9-1.2-.9-.7 0-1.2.4-1.2 1 0 .5.5 1 1.2 1zm-40 3c.7 0 1.3-.4 1.3-1 0-.4-.6-.9-1.2-.9-.7 0-1.2.5-1.2 1s.5 1 1.2 1z"/>
+    <path id="path695" fill="#fc0" fill-opacity="1" d="M253.6 231s.1 7.2 4.8 6.2 4.2-6.9 4.5-7.2c.4-.3.9-.3.9-.3s.6 5.7 5 5c4.4-.7 4.2-7.7 3.7-8.9l1-.3s1.7 8.2 6.7 7c5-1.2 4.5-6.4 4.5-6.4h.4s1.1 5.6 5.2 5.2c4-.3 4.8-1.6 4.3-7.2l2.7-.5s-1 8 3.9 8c4.8-.3 5-4.1 5.3-4.8h.8s.2 5.7 4.3 5.7c4 0 4.8-4.8 4.8-6.7l4 .2s-4.2 7.5 1.9 8.5c6 1 6.2-4.8 6.2-4.8h1.2s-.2 7.5 3.1 7.7c3.4.1 5.4-1 5.7-6.6l1.9.7s-1.6 9-7.9 7.4c-3.3-.9-4.4-4.7-4.2-5.7 0 0-2.3 4.2-6.9 2.8-4.5-1.3-4-4.5-4-5.5 0 0-2.7 5-6.5 3.9-3.4-1-4.7-2.2-4.7-4.6 0 0-1.7 3.9-5 3.7-3.4-.1-5-2.2-5.2-4 0 0-.7 3.6-5.2 3.9-3 .1-4.7-1.4-5.4-3.4 0 0-.9 3.6-5.2 4.2-2.7.3-5.4-1.2-6-3.7 0 0-.7 4.9-5 5.5-4.4.7-5.4-2.3-5.4-2.3s-.9 3.8-4.4 4.7c-3.5.8-5.8-.7-6.7-4.2-.8-3.5-.5-5-.5-5l1.4 1.8"/>
+    <path id="path696" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M253.6 231s.1 7.2 4.8 6.2 4.2-6.9 4.5-7.2c.4-.3.9-.3.9-.3s.6 5.7 5 5c4.4-.7 4.2-7.7 3.7-8.9l1-.3s1.7 8.2 6.7 7c5-1.2 4.5-6.4 4.5-6.4h.4s1.1 5.6 5.2 5.2c4-.3 4.8-1.6 4.3-7.2l2.7-.5s-1 8 3.9 8c4.8-.3 5-4.1 5.3-4.8h.8s.2 5.7 4.3 5.7c4 0 4.8-4.8 4.8-6.7l4 .2s-4.2 7.5 1.9 8.5c6 1 6.2-4.8 6.2-4.8h1.2s-.2 7.5 3.1 7.7c3.4.1 5.4-1 5.7-6.6l1.9.7s-1.6 9-7.9 7.4c-3.3-.9-4.4-4.7-4.2-5.7 0 0-2.3 4.2-6.9 2.8-4.5-1.3-4-4.5-4-5.5 0 0-2.7 5-6.5 3.9-3.4-1-4.7-2.2-4.7-4.6 0 0-1.7 3.9-5 3.7-3.4-.1-5-2.2-5.2-4 0 0-.7 3.6-5.2 3.9-3 .1-4.7-1.4-5.4-3.4 0 0-.9 3.6-5.2 4.2-2.7.3-5.4-1.2-6-3.7 0 0-.7 4.9-5 5.5-4.4.7-5.4-2.3-5.4-2.3s-.9 3.8-4.4 4.7c-3.5.8-5.8-.7-6.7-4.2-.8-3.5-.5-5-.5-5l1.4 1.8h0z"/>
+    <path id="path697" fill="#fc0" fill-opacity="1" d="M263.3 231.3a1.7 1.7 0 100-3.3 1.7 1.7 0 000 3.3"/>
+    <path id="path698" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M263.3 231.3a1.7 1.7 0 100-3.3 1.7 1.7 0 000 3.3z"/>
+    <path id="path699" fill="#fc0" fill-opacity="1" d="M285.1 227.8a1.7 1.7 0 100-3.3 1.7 1.7 0 000 3.3"/>
+    <path id="path700" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M285.1 227.8a1.7 1.7 0 100-3.3 1.7 1.7 0 000 3.3z"/>
+    <path id="path701" fill="#fc0" fill-opacity="1" d="M307.3 228.5a1.7 1.7 0 100-3.3 1.7 1.7 0 000 3.3"/>
+    <path id="path702" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M307.3 228.5a1.7 1.7 0 100-3.3 1.7 1.7 0 000 3.3z"/>
+    <path id="path703" fill="#fc0" fill-opacity="1" d="M329.2 232a1.7 1.7 0 100-3.3 1.7 1.7 0 000 3.3"/>
+    <path id="path704" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M329.2 232a1.7 1.7 0 100-3.3 1.7 1.7 0 000 3.3z"/>
+    <path id="path705" fill="#fc0" fill-opacity="1" d="M295.2 226h-1.5c-.4 1.5-3.6 2.4-3.6 2.4-.4-1.2.5-2.9.5-2.9-3.7-1-3.7-2.2-3.7-2.2.5-1.3 4-1.5 4-1.5-1-1.1-.8-3-.8-3 2.3.2 4.2 2.5 4.2 2.5s-2.3-1.2-2-5.2c0 0 1.2 0 2 .8 0 0 0-4.4 1.8-4.9h.2c1.8.5 1.8 4.9 1.8 4.9.8-.9 2-.8 2-.8.3 4-2 5.2-2 5.2s1.9-2.3 4.2-2.4c0 0 .1 1.8-.7 3 0 0 3.4.1 4 1.4 0 0 0 1.3-3.8 2.2 0 0 .8 1.7.5 3 0 0-3.3-1-3.6-2.5h-3.5"/>
+    <path id="path706" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M295.2 226h-1.5c-.4 1.5-3.6 2.4-3.6 2.4-.4-1.2.5-2.9.5-2.9-3.7-1-3.7-2.2-3.7-2.2.5-1.3 4-1.5 4-1.5-1-1.1-.8-3-.8-3 2.3.2 4.2 2.5 4.2 2.5s-2.3-1.2-2-5.2c0 0 1.2 0 2 .8 0 0 0-4.4 1.8-4.9h.2c1.8.5 1.8 4.9 1.8 4.9.8-.9 2-.8 2-.8.3 4-2 5.2-2 5.2s1.9-2.3 4.2-2.4c0 0 .1 1.8-.7 3 0 0 3.4.1 4 1.4 0 0 0 1.3-3.8 2.2 0 0 .8 1.7.5 3 0 0-3.3-1-3.6-2.5h-3.5 0z"/>
+    <path id="path707" fill="#fff" d="M296 226.8a3 3 0 100-6 3 3 0 000 6"/>
+    <path id="path708" fill="none" stroke="#000" stroke-width=".4" d="M296 226.8a3 3 0 100-6 3 3 0 000 6z"/>
+    <path id="path709" fill="#fff" d="M296 225.5a1.7 1.7 0 100-3.4 1.7 1.7 0 000 3.4"/>
+    <path id="path710" fill="none" stroke="#000" stroke-width=".3" d="M296 225.5a1.7 1.7 0 100-3.4 1.7 1.7 0 000 3.4z"/>
+    <path id="path711" fill="#fc0" fill-opacity="1" d="M319.1 228l1.5.3c0 1.5 3 3.1 3 3.1.6-1 .1-2.9.1-2.9 3.9-.1 4.1-1.4 4.1-1.4-.2-1.4-3.5-2.3-3.5-2.3 1-.9 1.3-2.7 1.3-2.7-2.3-.4-4.6 1.4-4.6 1.4s2.5-.6 3-4.6c0 0-1.1-.3-2 .3 0 0 .9-4.2-.8-5l-.2-.1c-1.9 0-2.8 4.3-2.8 4.3-.6-1-1.8-1.1-1.8-1.1-1.1 3.8.9 5.4.9 5.4s-1.4-2.6-3.6-3.2c0 0-.5 1.8 0 3 0 0-3.3-.5-4.1.6 0 0-.3 1.3 3.1 3 0 0-1.1 1.5-1 2.8 0 0 3.3-.3 4-1.7l1.5.3 2 .4"/>
+    <path id="path712" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M319.1 228l1.5.3c0 1.5 3 3.1 3 3.1.6-1 .1-2.9.1-2.9 3.9-.1 4.1-1.4 4.1-1.4-.2-1.4-3.5-2.3-3.5-2.3 1-.9 1.3-2.7 1.3-2.7-2.3-.4-4.6 1.4-4.6 1.4s2.5-.6 3-4.6c0 0-1.1-.3-2 .3 0 0 .9-4.2-.8-5l-.2-.1c-1.9 0-2.8 4.3-2.8 4.3-.6-1-1.8-1.1-1.8-1.1-1.1 3.8.9 5.4.9 5.4s-1.4-2.6-3.6-3.2c0 0-.5 1.8 0 3 0 0-3.3-.5-4.1.6 0 0-.3 1.3 3.1 3 0 0-1.1 1.5-1 2.8 0 0 3.3-.3 4-1.7l1.5.3 2 .4"/>
+    <path id="path713" fill="#fff" d="M318 228.6a3 3 0 111.4-6 3 3 0 01-1.3 6"/>
+    <path id="path714" fill="none" stroke="#000" stroke-width=".4" d="M318 228.6a3 3 0 111.4-6 3 3 0 01-1.3 6z"/>
+    <path id="path715" fill="#fff" d="M318.4 227.3a1.7 1.7 0 11.7-3.3 1.7 1.7 0 01-.7 3.3"/>
+    <path id="path716" fill="none" stroke="#000" stroke-width=".3" d="M318.4 227.3a1.7 1.7 0 11.7-3.3 1.7 1.7 0 01-.7 3.3z"/>
+    <path id="path717" fill="#fc0" fill-opacity="1" d="M272.3 227.6l-1.5.2c-.2 1.6-3.3 3-3.3 3-.5-1.2 0-3 0-3-3.7-.4-3.9-1.7-3.9-1.7.4-1.3 3.8-2 3.8-2-1-1-1.1-2.8-1.1-2.8 2.2-.2 4.4 1.8 4.4 1.8s-2.4-.8-2.7-4.8c0 0 1.3-.3 2.1.4 0 0-.5-4.3 1.2-5h.2c1.9.2 2.4 4.5 2.4 4.5.7-.9 2-1 2-1 .7 4-1.4 5.4-1.4 5.4s1.6-2.5 3.8-3c0 0 .4 1.9-.3 3.1 0 0 3.4-.3 4.1 1 0 0 .2 1.2-3.4 2.6 0 0 1 1.6.9 2.8 0 0-3.3-.5-4-2l-1.4.3-2 .2"/>
+    <path id="path718" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M272.3 227.6l-1.5.2c-.2 1.6-3.3 3-3.3 3-.5-1.2 0-3 0-3-3.7-.4-3.9-1.7-3.9-1.7.4-1.3 3.8-2 3.8-2-1-1-1.1-2.8-1.1-2.8 2.2-.2 4.4 1.8 4.4 1.8s-2.4-.8-2.7-4.8c0 0 1.3-.3 2.1.4 0 0-.5-4.3 1.2-5h.2c1.9.2 2.4 4.5 2.4 4.5.7-.9 2-1 2-1 .7 4-1.4 5.4-1.4 5.4s1.6-2.5 3.8-3c0 0 .4 1.9-.3 3.1 0 0 3.4-.3 4.1 1 0 0 .2 1.2-3.4 2.6 0 0 1 1.6.9 2.8 0 0-3.3-.5-4-2l-1.4.3-2 .2"/>
+    <path id="path719" fill="#fff" d="M273.2 228.4a3 3 0 10-.8-6 3 3 0 00.8 6"/>
+    <path id="path720" fill="none" stroke="#000" stroke-width=".4" d="M273.2 228.4a3 3 0 10-.8-6 3 3 0 00.8 6z"/>
+    <path id="path721" fill="#fff" d="M273 227a1.7 1.7 0 10-.4-3.3 1.7 1.7 0 00.4 3.3"/>
+    <path id="path722" fill="none" stroke="#000" stroke-width=".3" d="M273 227a1.7 1.7 0 10-.4-3.3 1.7 1.7 0 00.4 3.3z"/>
+    <path id="path723" fill="#fc0" fill-opacity="1" d="M340.2 234.1s-.8-2-2.5-1.3-1.5 1-3 1c0 0-.6-1.9.2-2.7 0 0-2.4-.9-3-3 0 0 1.3-1.5 4.4-.9 0 0-.1-1.5.3-2.2 0 0 3.3 1 3.3 2.9 0 0-1-3.6.8-6.2 0 0 1.5.6 1.4 2.3 0 0 .7-3.4 5.2-2.5 0 0-2.4 2.2-2.5 3.2-.2 1-2.2 2.7-2.3 3.3 0 .5-.2 1.5-.8 2.1-.6.6-.7 1.6-.7 2 0 .2 0 1.6-.8 2"/>
+    <path id="path724" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M340.2 234.1s-.8-2-2.5-1.3-1.5 1-3 1c0 0-.6-1.9.2-2.7 0 0-2.4-.9-3-3 0 0 1.3-1.5 4.4-.9 0 0-.1-1.5.3-2.2 0 0 3.3 1 3.3 2.9 0 0-1-3.6.8-6.2 0 0 1.5.6 1.4 2.3 0 0 .7-3.4 5.2-2.5 0 0-2.4 2.2-2.5 3.2-.2 1-2.2 2.7-2.3 3.3 0 .5-.2 1.5-.8 2.1-.6.6-.7 1.6-.7 2 0 .2 0 1.6-.8 2z"/>
+    <path id="path725" fill="#fff" d="M337.7 230.1a3 3 0 014.8-1.8c0 .5-.3 1.3-.8 1.8-.6.6-.7 1.6-.7 2a3 3 0 01-.4 1.6h-.5a3 3 0 01-2.4-3.6"/>
+    <path id="path726" fill="none" stroke="#000" stroke-width=".4" d="M337.7 230.1a3 3 0 014.8-1.8c0 .5-.3 1.3-.8 1.8-.6.6-.7 1.6-.7 2a3 3 0 01-.4 1.6h-.5a3 3 0 01-2.4-3.6z"/>
+    <path id="path727" fill="#fff" d="M339 230.4a1.7 1.7 0 013-.7l-.3.4c-.6.6-.7 1.6-.7 2v.2h-.6c-1-.1-1.5-1-1.3-2"/>
+    <path id="path728" fill="none" stroke="#000" stroke-width=".3" d="M339 230.4a1.7 1.7 0 013-.7l-.3.4c-.6.6-.7 1.6-.7 2v.2h-.6c-1-.1-1.5-1-1.3-2z"/>
+    <path id="path729" fill="#fc0" fill-opacity="1" d="M252.2 233.3s.8-2 2.5-1.2c1.6.9 1.4 1.1 3 1.1 0 0 .6-1.8 0-2.6 0 0 2.4-.7 3-2.8 0 0-1.2-1.6-4.3-1.2 0 0 .2-1.5-.2-2.2 0 0-3.3.8-3.4 2.6 0 0 1.2-3.5-.4-6.2 0 0-1.6.6-1.6 2.2 0 0-.5-3.4-5-2.7 0 0 2.3 2.3 2.3 3.3s2 2.8 2 3.4c0 .5.2 1.6.8 2.2.6.6.6 1.6.5 2 0 .2 0 1.6.8 2"/>
+    <path id="path730" fill="#bcac0b" fill-opacity="1" stroke="#000" stroke-width=".7" d="M252.2 233.3s.8-2 2.5-1.2c1.6.9 1.4 1.1 3 1.1 0 0 .6-1.8 0-2.6 0 0 2.4-.7 3-2.8 0 0-1.2-1.6-4.3-1.2 0 0 .2-1.5-.2-2.2 0 0-3.3.8-3.4 2.6 0 0 1.2-3.5-.4-6.2 0 0-1.6.6-1.6 2.2 0 0-.5-3.4-5-2.7 0 0 2.3 2.3 2.3 3.3s2 2.8 2 3.4c0 .5.2 1.6.8 2.2.6.6.6 1.6.5 2 0 .2 0 1.6.8 2z"/>
+    <path id="path731" fill="#fff" d="M254.8 229.4a3 3 0 00-4.6-2c0 .5.2 1.3.7 1.8.6.6.6 1.6.5 2 0 .2 0 1 .4 1.7h.4a3 3 0 002.6-3.5"/>
+    <path id="path732" fill="none" stroke="#000" stroke-width=".4" d="M254.8 229.4a3 3 0 00-4.6-2c0 .5.2 1.3.7 1.8.6.6.6 1.6.5 2 0 .2 0 1 .4 1.7h.4a3 3 0 002.6-3.5z"/>
+    <path id="path733" fill="#fff" d="M253.5 229.6a1.7 1.7 0 00-3-.9l.4.5c.6.6.6 1.6.5 2v.2h.7c.9 0 1.5-.9 1.4-1.8"/>
+    <path id="path734" fill="none" stroke="#000" stroke-width=".3" d="M253.5 229.6a1.7 1.7 0 00-3-.9l.4.5c.6.6.6 1.6.5 2v.2h.7c.9 0 1.5-.9 1.4-1.8z"/>
+    <path id="path735" fill="none" stroke="#000" stroke-width="1.5" d="M257.2 251.6s33.8-13.2 76.4.3"/>
+    <path id="path736" fill="none" stroke="#000" stroke-width=".5" d="M338.4 241.1c-47.1-15-84.7-.8-84.7-.8"/>
+    <path id="path737" fill="red" d="M296 237.8l-3.8 1.9 3.4 2.1 4-2-3.6-2"/>
+    <path id="path738" fill="none" stroke="#000" stroke-width=".5" d="M296 237.8l-3.8 1.9 3.4 2.1 4-2-3.6-2"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/es.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/es.svg
new file mode 100644
index 0000000..576dd67
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/es.svg
@@ -0,0 +1,544 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-es" viewBox="0 0 640 480">
+  <path fill="#AA151B" d="M0 0h640v480H0z"/>
+  <path fill="#F1BF00" d="M0 120h640v240H0z"/>
+  <path fill="#ad1519" d="M127.3 213.3l-.8-.1-1-1-.7-.4-.6-.8s-.7-1.1-.4-2c.3-.9.9-1.2 1.4-1.5a12 12 0 011.5-.5l1-.4 1.3-.3.5-.3c.2 0 .7 0 1-.2l1-.2 1.6.1h4.8c.4 0 1.2.3 1.4.4a35 35 0 002 .7c.5.1 1.6.3 2.2.6.5.3.9.7 1.1 1l.5 1v1.1l-.5.8-.6 1-.8.6s-.5.5-1 .4c-.4 0-4.8-.8-7.6-.8s-7.3.9-7.3.9"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".3" d="M127.3 213.3l-.8-.1-1-1-.7-.4-.6-.8s-.7-1.1-.4-2c.3-.9.9-1.2 1.4-1.5a12 12 0 011.5-.5l1-.4 1.3-.3.5-.3c.2 0 .7 0 1-.2l1-.2 1.6.1h4.8c.4 0 1.2.3 1.4.4a35 35 0 002 .7c.5.1 1.6.3 2.2.6.5.3.9.7 1.1 1l.5 1v1.1l-.5.8-.6 1-.8.6s-.5.5-1 .4c-.4 0-4.8-.8-7.6-.8s-7.3.9-7.3.9z"/>
+  <path fill="#c8b100" d="M133.3 207c0-1.3.6-2.3 1.3-2.3.8 0 1.4 1 1.4 2.4 0 1.3-.6 2.4-1.4 2.4s-1.3-1.1-1.3-2.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M133.3 207c0-1.3.6-2.3 1.3-2.3.8 0 1.4 1 1.4 2.4 0 1.3-.6 2.4-1.4 2.4s-1.3-1.1-1.3-2.5z"/>
+  <path fill="#c8b100" d="M134 207c0-1.2.3-2.1.7-2.1.3 0 .6 1 .6 2.1 0 1.3-.3 2.2-.6 2.2-.4 0-.6-1-.6-2.2"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M134 207c0-1.2.3-2.1.7-2.1.3 0 .6 1 .6 2.1 0 1.3-.3 2.2-.6 2.2-.4 0-.6-1-.6-2.2z"/>
+  <path fill="#c8b100" d="M133.8 204.5c0-.4.4-.8.8-.8s1 .4 1 .8c0 .5-.5.9-1 .9s-.8-.4-.8-.9"/>
+  <path fill="#c8b100" d="M135.3 204.2v.6h-1.4v-.6h.5V203h-.7v-.6h.7v-.5h.5v.5h.6v.6h-.6v1.2h.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M135.3 204.2v.6h-1.4v-.6h.5V203h-.7v-.6h.7v-.5h.5v.5h.6v.6h-.6v1.2h.4"/>
+  <path fill="#c8b100" d="M135.9 204.2v.6h-2.5v-.6h1V203h-.7v-.6h.7v-.5h.5v.5h.6v.6h-.6v1.2h1"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M135.9 204.2v.6h-2.5v-.6h1V203h-.7v-.6h.7v-.5h.5v.5h.6v.6h-.6v1.2h1"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M134.9 203.7c.4.1.6.4.6.8 0 .5-.4.9-.8.9s-1-.4-1-.9c0-.4.3-.7.7-.8"/>
+  <path fill="#c8b100" d="M134.7 213.2H130v-1.1l-.3-1.2-.2-1.5c-1.3-1.7-2.5-2.8-2.9-2.5.1-.3.2-.6.5-.7 1.1-.7 3.5 1 5.2 3.6l.5.7h3.8l.4-.7c1.8-2.7 4.1-4.3 5.2-3.6.3.1.4.4.5.7-.4-.3-1.6.8-2.9 2.5l-.2 1.5-.2 1.2-.1 1.1h-4.7"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M134.7 213.2H130v-1.1l-.3-1.2-.2-1.5c-1.3-1.7-2.5-2.8-2.9-2.5.1-.3.2-.6.5-.7 1.1-.7 3.5 1 5.2 3.6l.5.7h3.8l.4-.7c1.8-2.7 4.1-4.3 5.2-3.6.3.1.4.4.5.7-.4-.3-1.6.8-2.9 2.5l-.2 1.5-.2 1.2-.1 1.1h-4.7z"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M126.8 206.8c1-.5 3 1.1 4.6 3.6m11-3.6c-.8-.5-2.8 1.1-4.5 3.6"/>
+  <path fill="#c8b100" d="M127.8 215.3l-.5-1a27.3 27.3 0 0114.7 0l-.5.8a5.7 5.7 0 00-.3.8 22.9 22.9 0 00-6.6-.8c-2.6 0-5.2.3-6.5.8l-.3-.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M127.8 215.3l-.5-1a27.3 27.3 0 0114.7 0l-.5.8a5.7 5.7 0 00-.3.8 22.9 22.9 0 00-6.6-.8c-2.6 0-5.2.3-6.5.8l-.3-.6"/>
+  <path fill="#c8b100" d="M134.6 217.7c2.4 0 5-.4 5.9-.6.6-.2 1-.5 1-.8 0-.2-.2-.3-.4-.4-1.4-.5-4-.8-6.5-.8s-5 .3-6.4.8c-.2 0-.3.2-.4.3 0 .4.3.7 1 .9 1 .2 3.5.6 5.8.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M134.6 217.7c2.4 0 5-.4 5.9-.6.6-.2 1-.5 1-.8 0-.2-.2-.3-.4-.4-1.4-.5-4-.8-6.5-.8s-5 .3-6.4.8c-.2 0-.3.2-.4.3 0 .4.3.7 1 .9 1 .2 3.5.6 5.8.6z"/>
+  <path fill="#c8b100" d="M142.1 213.2l-.5-.5s-.6.3-1.3.2c-.6 0-.9-1-.9-1s-.7.7-1.3.7c-.7 0-1-.6-1-.6s-.7.5-1.3.4c-.6 0-1.2-.8-1.2-.8s-.6.8-1.2.8c-.6.1-1-.5-1-.5s-.4.6-1.1.7-1.4-.6-1.4-.6-.5.7-1 1c-.5 0-1.2-.4-1.2-.4l-.2.5-.3.1.2.5a27 27 0 017.2-.9c3 0 5.5.4 7.4 1l.2-.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M142.1 213.2l-.5-.5s-.6.3-1.3.2c-.6 0-.9-1-.9-1s-.7.7-1.3.7c-.7 0-1-.6-1-.6s-.7.5-1.3.4c-.6 0-1.2-.8-1.2-.8s-.6.8-1.2.8c-.6.1-1-.5-1-.5s-.4.6-1.1.7-1.4-.6-1.4-.6-.5.7-1 1c-.5 0-1.2-.4-1.2-.4l-.2.5-.3.1.2.5a27 27 0 017.2-.9c3 0 5.5.4 7.4 1l.2-.6z"/>
+  <path fill="#c8b100" d="M134.7 210.7h.2a1 1 0 000 .4c0 .6.4 1 1 1a1 1 0 001-.7l.2-.3v.4c.1.5.6.8 1.1.8.6 0 1-.4 1-1v-.1l.4-.4.2.5a.9.9 0 00-.1.4 1 1 0 001 1c.4 0 .7-.2.9-.5l.2-.2v.3c0 .3.1.6.4.7 0 0 .4 0 1-.4l.7-.7v.4s-.5.8-1 1c-.2.2-.5.4-.8.3-.3 0-.6-.3-.7-.6-.2.2-.4.2-.7.2-.6 0-1.2-.3-1.4-.8-.3.3-.7.5-1.1.5a1.6 1.6 0 01-1.2-.6 1.6 1.6 0 01-1 .4 1.6 1.6 0 01-1.3-.6 1.6 1.6 0 01-2.4.2 1.6 1.6 0 01-1.2.6 1.5 1.5 0 01-1.1-.5c-.2.5-.8.8-1.4.8-.2 0-.5 0-.7-.2-.1.3-.4.6-.7.6-.3 0-.6 0-.9-.2l-1-1 .1-.5.8.7c.5.4.9.4.9.4.3 0 .4-.4.4-.7v-.3l.2.2c.2.3.5.5.9.5a1 1 0 001-1 .9.9 0 000-.4v-.5l.4.4a.7.7 0 000 .1c0 .6.5 1 1 1 .6 0 1-.3 1.1-.9v-.3l.2.3c.2.4.6.7 1 .7.7 0 1.1-.4 1.1-1a1 1 0 000-.3h.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M134.7 210.7h.2a1 1 0 000 .4c0 .6.4 1 1 1a1 1 0 001-.7l.2-.3v.4c.1.5.6.8 1.1.8.6 0 1-.4 1-1v-.1l.4-.4.2.5a.9.9 0 00-.1.4 1 1 0 001 1c.4 0 .7-.2.9-.5l.2-.2v.3c0 .3.1.6.4.7 0 0 .4 0 1-.4l.7-.7v.4s-.5.8-1 1c-.2.2-.5.4-.8.3-.3 0-.6-.3-.7-.6-.2.2-.4.2-.7.2-.6 0-1.2-.3-1.4-.8-.3.3-.7.5-1.1.5a1.6 1.6 0 01-1.2-.6 1.6 1.6 0 01-1 .4 1.6 1.6 0 01-1.3-.6 1.6 1.6 0 01-2.4.2 1.6 1.6 0 01-1.2.6 1.5 1.5 0 01-1.1-.5c-.2.5-.8.8-1.4.8-.2 0-.5 0-.7-.2-.1.3-.4.6-.7.6-.3 0-.6 0-.9-.2l-1-1 .1-.5.8.7c.5.4.9.4.9.4.3 0 .4-.4.4-.7v-.3l.2.2c.2.3.5.5.9.5a1 1 0 001-1 .9.9 0 000-.4v-.5l.4.4a.7.7 0 000 .1c0 .6.5 1 1 1 .6 0 1-.3 1.1-.9v-.3l.2.3c.2.4.6.7 1 .7.7 0 1.1-.4 1.1-1a1 1 0 000-.3h.3z"/>
+  <path fill="#c8b100" d="M134.6 213.3c-2.9 0-5.5.4-7.3 1l-.3-.2.1-.3a27 27 0 017.5-1c3 0 5.7.4 7.6 1 0 0 .2.2.1.3l-.3.2a27.3 27.3 0 00-7.4-1"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".3" d="M134.6 213.3c-2.9 0-5.5.4-7.3 1l-.3-.2.1-.3a27 27 0 017.5-1c3 0 5.7.4 7.6 1 0 0 .2.2.1.3l-.3.2a27.3 27.3 0 00-7.4-1z"/>
+  <path fill="#fff" d="M131.8 214.4c0-.3.2-.4.5-.4a.4.4 0 01.4.4c0 .2-.2.4-.4.4a.4.4 0 01-.5-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M131.8 214.4c0-.3.2-.4.5-.4a.4.4 0 01.4.4c0 .2-.2.4-.4.4a.4.4 0 01-.5-.4z"/>
+  <path fill="#ad1519" d="M134.7 214.5h-1c-.1 0-.3 0-.3-.3l.3-.3h2a.3.3 0 01.2.3.3.3 0 01-.3.3h-1"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M134.7 214.5h-1c-.1 0-.3 0-.3-.3l.3-.3h2a.3.3 0 01.2.3.3.3 0 01-.3.3h-1"/>
+  <path fill="#058e6e" d="M130 214.9h-.7c-.1 0-.3 0-.3-.2a.3.3 0 01.2-.3l.7-.1.7-.1c.2 0 .3 0 .4.2a.3.3 0 01-.3.4h-.7"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M130 214.9h-.7c-.1 0-.3 0-.3-.2a.3.3 0 01.2-.3l.7-.1.7-.1c.2 0 .3 0 .4.2a.3.3 0 01-.3.4h-.7"/>
+  <path fill="#ad1519" d="M127.3 215.3l.3-.4h.7l-.4.6-.6-.2"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M127.3 215.3l.3-.4h.7l-.4.6-.6-.2"/>
+  <path fill="#fff" d="M136.6 214.4c0-.3.2-.4.4-.4a.4.4 0 01.5.4.4.4 0 01-.5.4.4.4 0 01-.4-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M136.6 214.4c0-.3.2-.4.4-.4a.4.4 0 01.5.4.4.4 0 01-.5.4.4.4 0 01-.4-.4z"/>
+  <path fill="#058e6e" d="M139.3 214.9h.6a.3.3 0 00.4-.2.3.3 0 00-.3-.3l-.6-.1-.7-.1c-.2 0-.3 0-.4.2 0 .2.1.3.3.4h.7"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M139.3 214.9h.6a.3.3 0 00.4-.2.3.3 0 00-.3-.3l-.6-.1-.7-.1c-.2 0-.3 0-.4.2 0 .2.1.3.3.4h.7"/>
+  <path fill="#ad1519" d="M142 215.4l-.3-.5h-.7l.3.6.6-.1"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M142 215.4l-.3-.5h-.7l.3.6.6-.1"/>
+  <path fill="#ad1519" d="M134.6 217.1a25 25 0 01-6-.6 25.5 25.5 0 0112.1 0c-1.6.4-3.7.6-6 .6"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".3" d="M134.6 217.1a25 25 0 01-6-.6 25.5 25.5 0 0112.1 0c-1.6.4-3.7.6-6 .6z"/>
+  <path fill="#c8b100" d="M142 212l-.1-.3c-.2 0-.3 0-.4.2 0 .2 0 .4.2.4 0 0 .2 0 .3-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M142 212l-.1-.3c-.2 0-.3 0-.4.2 0 .2 0 .4.2.4 0 0 .2 0 .3-.3z"/>
+  <path fill="#c8b100" d="M137.3 211.2c0-.2 0-.4-.2-.4 0 0-.2.1-.2.3 0 .2 0 .4.2.4l.3-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M137.3 211.2c0-.2 0-.4-.2-.4 0 0-.2.1-.2.3 0 .2 0 .4.2.4l.3-.3z"/>
+  <path fill="#c8b100" d="M132 211.2l.1-.4c.2 0 .3.1.3.3 0 .2 0 .4-.2.4l-.2-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M132 211.2l.1-.4c.2 0 .3.1.3.3 0 .2 0 .4-.2.4l-.2-.3z"/>
+  <path fill="#c8b100" d="M127.3 212l.1-.3c.2 0 .3 0 .4.2 0 .2 0 .4-.2.4 0 0-.2 0-.3-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M127.3 212l.1-.3c.2 0 .3 0 .4.2 0 .2 0 .4-.2.4 0 0-.2 0-.3-.3z"/>
+  <path fill="#c8b100" d="M134.6 208.5l-.8.5.6 1.3.2.1.2-.1.7-1.3-.9-.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M134.6 208.5l-.8.5.6 1.3.2.1.2-.1.7-1.3-.9-.5"/>
+  <path fill="#c8b100" d="M132.8 210.5l.4.5 1.3-.4.1-.2-.1-.2-1.3-.3-.4.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M132.8 210.5l.4.5 1.3-.4.1-.2-.1-.2-1.3-.3-.4.6"/>
+  <path fill="#c8b100" d="M136.4 210.5l-.3.5-1.3-.4-.2-.2.2-.2 1.3-.3.3.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M136.4 210.5l-.3.5-1.3-.4-.2-.2.2-.2 1.3-.3.3.6"/>
+  <path fill="#c8b100" d="M129.3 209l-.7.7.9 1 .2.1.1-.1.3-1.3-.8-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M129.3 209l-.7.7.9 1 .2.1.1-.1.3-1.3-.8-.3"/>
+  <path fill="#c8b100" d="M128 211.2l.4.5 1.2-.6v-.2l-.1-.2-1.3-.1-.3.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M128 211.2l.4.5 1.2-.6v-.2l-.1-.2-1.3-.1-.3.6"/>
+  <path fill="#c8b100" d="M131.5 210.5l-.3.6H130l-.2-.2.1-.3 1.2-.6.5.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M131.5 210.5l-.3.6H130l-.2-.2.1-.3 1.2-.6.5.5"/>
+  <path fill="#c8b100" d="M126.6 211.4v.6l-1.4.2-.2-.1v-.2l1-.9.6.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M126.6 211.4v.6l-1.4.2-.2-.1v-.2l1-.9.6.4"/>
+  <path fill="#c8b100" d="M129.2 210.9c0-.3.2-.5.5-.5s.5.2.5.5a.5.5 0 01-.5.4.5.5 0 01-.5-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M129.2 210.9c0-.3.2-.5.5-.5s.5.2.5.5a.5.5 0 01-.5.4.5.5 0 01-.5-.4z"/>
+  <path fill="#c8b100" d="M140 209l.7.7-.9 1-.2.1-.1-.1-.3-1.3.8-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M140 209l.7.7-.9 1-.2.1-.1-.1-.3-1.3.8-.3"/>
+  <path fill="#c8b100" d="M141.4 211.2l-.5.5-1.2-.6v-.2l.1-.2 1.3-.1.3.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M141.4 211.2l-.5.5-1.2-.6v-.2l.1-.2 1.3-.1.3.6"/>
+  <path fill="#c8b100" d="M137.8 210.5l.3.6h1.3l.2-.2-.1-.3-1.2-.6-.5.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M137.8 210.5l.3.6h1.3l.2-.2-.1-.3-1.2-.6-.5.5"/>
+  <path fill="#c8b100" d="M142.5 211.4l.1.6 1.3.2.2-.1v-.2l-1-.9-.6.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M142.5 211.4l.1.6 1.3.2.2-.1v-.2l-1-.9-.6.4"/>
+  <path fill="#c8b100" d="M134.2 210.4a.5.5 0 01.4-.4c.3 0 .5.2.5.4a.5.5 0 01-.5.5.5.5 0 01-.4-.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M134.2 210.4a.5.5 0 01.4-.4c.3 0 .5.2.5.4a.5.5 0 01-.5.5.5.5 0 01-.4-.5z"/>
+  <path fill="#c8b100" d="M139.1 210.9c0-.3.3-.5.5-.5a.5.5 0 01.5.5.5.5 0 01-.5.4.5.5 0 01-.5-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M139.1 210.9c0-.3.3-.5.5-.5a.5.5 0 01.5.5.5.5 0 01-.5.4.5.5 0 01-.5-.4z"/>
+  <path fill="#c8b100" d="M124.8 212.2l-.6-.7c-.2-.2-.7-.3-.7-.3 0-.1.3-.3.6-.3a.5.5 0 01.4.2v-.2s.3 0 .4.3v1"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M124.8 212.2l-.6-.7c-.2-.2-.7-.3-.7-.3 0-.1.3-.3.6-.3a.5.5 0 01.4.2v-.2s.3 0 .4.3v1z"/>
+  <path fill="#c8b100" d="M124.8 212c.1-.2.4-.2.5 0 .2.1.3.3.2.5l-.5-.1c-.2-.1-.3-.4-.2-.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M124.8 212c.1-.2.4-.2.5 0 .2.1.3.3.2.5l-.5-.1c-.2-.1-.3-.4-.2-.5z"/>
+  <path fill="#c8b100" d="M144.3 212.2l.6-.7c.2-.2.7-.3.7-.3 0-.1-.3-.3-.6-.3a.6.6 0 00-.4.2v-.2s-.3 0-.4.3v.7l.1.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M144.3 212.2l.6-.7c.2-.2.7-.3.7-.3 0-.1-.3-.3-.6-.3a.6.6 0 00-.4.2v-.2s-.3 0-.4.3v.7l.1.3z"/>
+  <path fill="#c8b100" d="M144.3 212c0-.2-.3-.2-.5 0-.2.1-.2.3-.1.5l.5-.1c.2-.1.2-.4.1-.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M144.3 212c0-.2-.3-.2-.5 0-.2.1-.2.3-.1.5l.5-.1c.2-.1.2-.4.1-.5z"/>
+  <path fill="#c8b100" d="M124 223h21.4v-5.5H124v5.6z"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M124 223h21.4v-5.5H124v5.6z"/>
+  <path fill="#c8b100" d="M126.2 226.8a1 1 0 01.4 0h16.5a1.4 1.4 0 01-1-1.2c0-.6.5-1.1 1-1.3a1.7 1.7 0 01-.4 0h-16a1.4 1.4 0 01-.5 0c.6.2 1 .7 1 1.3a1.3 1.3 0 01-1 1.2"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M126.2 226.8a1 1 0 01.4 0h16.5a1.4 1.4 0 01-1-1.2c0-.6.5-1.1 1-1.3a1.7 1.7 0 01-.4 0h-16a1.4 1.4 0 01-.5 0c.6.2 1 .7 1 1.3a1.3 1.3 0 01-1 1.2z"/>
+  <path fill="#c8b100" d="M126.6 226.8h16c.6 0 1 .3 1 .7 0 .4-.4.8-1 .8h-16c-.5 0-1-.4-1-.8s.5-.8 1-.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M126.6 226.8h16c.6 0 1 .3 1 .7 0 .4-.4.8-1 .8h-16c-.5 0-1-.4-1-.8s.5-.8 1-.8z"/>
+  <path fill="#c8b100" d="M126.6 223h16c.6 0 1 .4 1 .7 0 .4-.4.6-1 .6h-16c-.5 0-1-.2-1-.6 0-.3.5-.6 1-.6"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M126.6 223h16c.6 0 1 .4 1 .7 0 .4-.4.6-1 .6h-16c-.5 0-1-.2-1-.6 0-.3.5-.6 1-.6z"/>
+  <path fill="#005bbf" d="M149.6 317.4c-1.4 0-2.8-.3-3.7-.8a8.4 8.4 0 00-3.8-.8c-1.4 0-2.7.3-3.7.8a8.3 8.3 0 01-3.8.8c-1.5 0-2.8-.3-3.7-.8a8.4 8.4 0 00-3.7-.8 8 8 0 00-3.7.8 8.3 8.3 0 01-3.8.8v2.4c1.5 0 2.8-.4 3.8-.9a8.2 8.2 0 013.7-.8c1.4 0 2.7.3 3.7.8s2.2.9 3.7.9a8.4 8.4 0 003.8-.9c1-.5 2.3-.8 3.7-.8 1.5 0 2.8.3 3.8.8s2.2.9 3.7.9v-2.4"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M149.6 317.4c-1.4 0-2.8-.3-3.7-.8a8.4 8.4 0 00-3.8-.8c-1.4 0-2.7.3-3.7.8a8.3 8.3 0 01-3.8.8c-1.5 0-2.8-.3-3.7-.8a8.4 8.4 0 00-3.7-.8 8 8 0 00-3.7.8 8.3 8.3 0 01-3.8.8v2.4c1.5 0 2.8-.4 3.8-.9a8.2 8.2 0 013.7-.8c1.4 0 2.7.3 3.7.8s2.2.9 3.7.9a8.4 8.4 0 003.8-.9c1-.5 2.3-.8 3.7-.8 1.5 0 2.8.3 3.8.8s2.2.9 3.7.9v-2.4z"/>
+  <path fill="#ccc" d="M149.6 319.8a8 8 0 01-3.7-.9 8.3 8.3 0 00-3.8-.8c-1.4 0-2.7.3-3.7.8s-2.3.9-3.8.9-2.8-.4-3.7-.9a8.4 8.4 0 00-3.7-.8 8.2 8.2 0 00-3.7.8c-1 .5-2.3.9-3.8.9v2.3c1.5 0 2.8-.4 3.8-.9a8.1 8.1 0 013.7-.7c1.4 0 2.7.2 3.7.7a8.3 8.3 0 007.5 0 8.5 8.5 0 017.5.1 8.1 8.1 0 003.7.8v-2.3"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M149.6 319.8a8 8 0 01-3.7-.9 8.3 8.3 0 00-3.8-.8c-1.4 0-2.7.3-3.7.8s-2.3.9-3.8.9-2.8-.4-3.7-.9a8.4 8.4 0 00-3.7-.8 8.2 8.2 0 00-3.7.8c-1 .5-2.3.9-3.8.9v2.3c1.5 0 2.8-.4 3.8-.9a8.1 8.1 0 013.7-.7c1.4 0 2.7.2 3.7.7a8.3 8.3 0 007.5 0 8.5 8.5 0 017.5.1 8.1 8.1 0 003.7.8v-2.3"/>
+  <path fill="#005bbf" d="M149.6 322a7 7 0 01-3.7-.8 8.3 8.3 0 00-3.8-.7c-1.4 0-2.7.2-3.7.7-1 .6-2.3.9-3.8.9s-2.8-.4-3.7-.9a8.4 8.4 0 00-3.7-.8 8 8 0 00-3.7.8c-1 .5-2.3.9-3.8.9v2.3c1.5 0 2.8-.3 3.8-.9a10.2 10.2 0 017.4 0 7 7 0 003.7.9 8.4 8.4 0 003.8-.8c1-.5 2.3-.8 3.7-.8 1.5 0 2.8.3 3.8.8s2.2.8 3.7.8V322"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M149.6 322a7 7 0 01-3.7-.8 8.3 8.3 0 00-3.8-.7c-1.4 0-2.7.2-3.7.7-1 .6-2.3.9-3.8.9s-2.8-.4-3.7-.9a8.4 8.4 0 00-3.7-.8 8 8 0 00-3.7.8c-1 .5-2.3.9-3.8.9v2.3c1.5 0 2.8-.3 3.8-.9a10.2 10.2 0 017.4 0 7 7 0 003.7.9 8.4 8.4 0 003.8-.8c1-.5 2.3-.8 3.7-.8 1.5 0 2.8.3 3.8.8s2.2.8 3.7.8V322"/>
+  <path fill="#ccc" d="M149.6 326.7a8 8 0 01-3.7-.8c-1-.5-2.3-.8-3.7-.8a8.4 8.4 0 00-3.8.8c-1 .5-2.3.8-3.8.8a7 7 0 01-3.7-.9 8.4 8.4 0 00-3.7-.7c-1.4 0-2.7.3-3.7.8s-2.3.8-3.8.8v-2.3a8.3 8.3 0 003.8-.9 10.2 10.2 0 017.4 0 8 8 0 003.7.9 8.4 8.4 0 003.8-.8c1-.5 2.3-.8 3.8-.8 1.4 0 2.7.3 3.7.8s2.3.8 3.7.8v2.3"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M149.6 326.7a8 8 0 01-3.7-.8c-1-.5-2.3-.8-3.7-.8a8.4 8.4 0 00-3.8.8c-1 .5-2.3.8-3.8.8a7 7 0 01-3.7-.9 8.4 8.4 0 00-3.7-.7c-1.4 0-2.7.3-3.7.8s-2.3.8-3.8.8v-2.3a8.3 8.3 0 003.8-.9 10.2 10.2 0 017.4 0 8 8 0 003.7.9 8.4 8.4 0 003.8-.8c1-.5 2.3-.8 3.8-.8 1.4 0 2.7.3 3.7.8s2.3.8 3.7.8v2.3"/>
+  <path fill="#005bbf" d="M149.6 329a8.1 8.1 0 01-3.7-.8c-1-.5-2.3-.8-3.7-.8a8.4 8.4 0 00-3.8.8c-1 .5-2.3.8-3.8.8a7 7 0 01-3.7-.9 8.4 8.4 0 00-3.7-.7c-1.4 0-2.7.3-3.7.8s-2.3.8-3.8.8v-2.3a8.3 8.3 0 003.8-.8c1-.5 2.3-.8 3.7-.8 1.4 0 2.7.3 3.7.7a8.4 8.4 0 007.5 0c1-.4 2.3-.7 3.8-.7 1.4 0 2.7.3 3.7.8s2.2.8 3.7.8v2.3"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M149.6 329a8.1 8.1 0 01-3.7-.8c-1-.5-2.3-.8-3.7-.8a8.4 8.4 0 00-3.8.8c-1 .5-2.3.8-3.8.8a7 7 0 01-3.7-.9 8.4 8.4 0 00-3.7-.7c-1.4 0-2.7.3-3.7.8s-2.3.8-3.8.8v-2.3a8.3 8.3 0 003.8-.8c1-.5 2.3-.8 3.7-.8 1.4 0 2.7.3 3.7.7a8.4 8.4 0 007.5 0c1-.4 2.3-.7 3.8-.7 1.4 0 2.7.3 3.7.8s2.2.8 3.7.8v2.3z"/>
+  <path fill="#c8b100" d="M126.2 308l.2.5c0 1.5-1.3 2.6-2.7 2.6h22a2.7 2.7 0 01-2.7-2.6v-.5a1.3 1.3 0 01-.3 0h-16a1.4 1.4 0 01-.5 0"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M126.2 308l.2.5c0 1.5-1.3 2.6-2.7 2.6h22a2.7 2.7 0 01-2.7-2.6v-.5a1.3 1.3 0 01-.3 0h-16a1.4 1.4 0 01-.5 0z"/>
+  <path fill="#c8b100" d="M126.6 306.5h16c.6 0 1 .3 1 .8 0 .4-.4.7-1 .7h-16c-.5 0-1-.3-1-.8 0-.4.5-.7 1-.7"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M126.6 306.5h16c.6 0 1 .3 1 .8 0 .4-.4.7-1 .7h-16c-.5 0-1-.3-1-.8 0-.4.5-.7 1-.7z"/>
+  <path fill="#c8b100" d="M123.7 316.7h22V311h-22v5.6z"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M123.7 316.7h22V311h-22v5.6z"/>
+  <path fill="#ad1519" d="M122 286.7c-2.2 1.2-3.7 2.5-3.4 3.2 0 .6.8 1 1.8 1.6 1.5 1.1 2.5 3 1.7 4a5.5 5.5 0 00-.1-8.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M122 286.7c-2.2 1.2-3.7 2.5-3.4 3.2 0 .6.8 1 1.8 1.6 1.5 1.1 2.5 3 1.7 4a5.5 5.5 0 00-.1-8.8z"/>
+  <path fill="#ccc" d="M126.8 305.6h15.6V229h-15.6v76.5z"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M138 229.2v76.3m1.7-76.3v76.3m-12.9 0h15.6v-76.4h-15.6v76.5z"/>
+  <path fill="#ad1519" d="M158.4 257.7a49.6 49.6 0 00-23.3-2c-9.4 1.6-16.5 5.3-15.9 8.4v.2l-3.5-8.2c-.6-3.3 7.2-7.5 17.6-9.2a43 43 0 019.2-.7c6.6 0 12.4.8 15.8 2.1v9.4"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M158.4 257.7a49.6 49.6 0 00-23.3-2c-9.4 1.6-16.5 5.3-15.9 8.4v.2l-3.5-8.2c-.6-3.3 7.2-7.5 17.6-9.2a43 43 0 019.2-.7c6.6 0 12.4.8 15.8 2.1v9.4"/>
+  <path fill="#ad1519" d="M126.8 267.3c-4.3-.3-7.3-1.4-7.6-3.2-.3-1.5 1.2-3 3.8-4.5 1.2.1 2.5.3 3.8.3v7.4"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M126.8 267.3c-4.3-.3-7.3-1.4-7.6-3.2-.3-1.5 1.2-3 3.8-4.5 1.2.1 2.5.3 3.8.3v7.4"/>
+  <path fill="#ad1519" d="M142.5 261.5c2.7.4 4.7 1 5.7 1.9l.1.2c.5 1-1.9 3-5.9 5.4v-7.5"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M142.5 261.5c2.7.4 4.7 1 5.7 1.9l.1.2c.5 1-1.9 3-5.9 5.4v-7.5"/>
+  <path fill="#ad1519" d="M117.1 282c-.4-1.2 3.8-3.6 9.8-5.8l7.8-3.2c8.3-3.7 14.4-7.9 13.6-9.4v-.2c.4.4 1 8 1 8 .8 1.3-4.8 5.5-12.4 9.1-2.5 1.2-7.6 3-10 4-4.4 1.4-8.7 4.3-8.3 5.3l-1.5-7.7"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M117.1 282c-.4-1.2 3.8-3.6 9.8-5.8l7.8-3.2c8.3-3.7 14.4-7.9 13.6-9.4v-.2c.4.4 1 8 1 8 .8 1.3-4.8 5.5-12.4 9.1-2.5 1.2-7.6 3-10 4-4.4 1.4-8.7 4.3-8.3 5.3l-1.5-7.7z"/>
+  <path fill="#c8b100" d="M125.8 254c1.9-.6 3.1-1.5 2.5-3-.4-1-1.4-1-2.8-.6l-2.6 1 2.3 5.8.8-.3.8-.3-1-2.5zm-1.2-2.7l.7-.3c.5-.2 1.2.1 1.4.8.2.5.2 1-.5 1.5a4.4 4.4 0 01-.6.3l-1-2.3m7.3-2.5l-.9.3h-.8l1.3 6.1 4.3-.8-.2-.4v-.4l-2.5.6-1.2-5.3m8.4 5.2c.8-2.2 1.7-4.3 2.7-6.4a5.3 5.3 0 01-1 0 54.8 54.8 0 01-1.8 4.6l-2.4-4.3-1 .1h-1a131.4 131.4 0 013.5 6h1m8.8-4.7l.4-.9a3.4 3.4 0 00-1.7-.6c-1.7-.1-2.7.6-2.8 1.7-.2 2.1 3.2 2 3 3.4 0 .6-.7.9-1.4.8-.8 0-1.4-.5-1.4-1.2h-.3a7.3 7.3 0 01-.4 1.1 4 4 0 001.8.6c1.7.2 3-.5 3.2-1.7.2-2-3.3-2.1-3.1-3.4 0-.5.4-.8 1.3-.7.7 0 1 .4 1.2.9h.2"/>
+  <path fill="#ad1519" d="M277.9 211.6s-.7.8-1.3.9c-.5 0-1.1-.5-1.1-.5s-.5.5-1 .6c-.6.1-1.4-.6-1.4-.6l-1 1c-.6 0-1.1-.3-1.1-.3s-.3.4-.7.6h-.4l-.6-.4-.7-.7-.5-.3-.4-1v-.5c-.1-.6.8-1.4 2.2-1.7a3.9 3.9 0 012 0c.5-.5 1.7-.8 3-.8s2.4.3 3 .7a5.5 5.5 0 012.9-.7c1.3 0 2.5.3 3 .8.5-.2 1.2-.2 2 0 1.4.3 2.3 1 2.2 1.7v.5l-.4 1-.6.3-.6.7-.6.3s-.3.2-.4 0c-.4-.1-.7-.5-.7-.5s-.6.4-1 .2c-.5-.2-1-1-1-1s-.9.8-1.4.7c-.6-.1-1-.6-1-.6s-.7.6-1.2.5c-.5-.1-1.2-.9-1.2-.9"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M277.9 211.6s-.7.8-1.3.9c-.5 0-1.1-.5-1.1-.5s-.5.5-1 .6c-.6.1-1.4-.6-1.4-.6l-1 1c-.6 0-1.1-.3-1.1-.3s-.3.4-.7.6h-.4l-.6-.4-.7-.7-.5-.3-.4-1v-.5c-.1-.6.8-1.4 2.2-1.7a3.9 3.9 0 012 0c.5-.5 1.7-.8 3-.8s2.4.3 3 .7a5.5 5.5 0 012.9-.7c1.3 0 2.5.3 3 .8.5-.2 1.2-.2 2 0 1.4.3 2.3 1 2.2 1.7v.5l-.4 1-.6.3-.6.7-.6.3s-.3.2-.4 0c-.4-.1-.7-.5-.7-.5s-.6.4-1 .2c-.5-.2-1-1-1-1s-.9.8-1.4.7c-.6-.1-1-.6-1-.6s-.7.6-1.2.5c-.5-.1-1.2-.9-1.2-.9z"/>
+  <path fill="#c8b100" d="M276.5 207.6c0-1 .6-2 1.3-2 .8 0 1.3 1 1.3 2s-.5 1.8-1.3 1.8c-.7 0-1.3-.8-1.3-1.9"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M276.5 207.6c0-1 .6-2 1.3-2 .8 0 1.3 1 1.3 2s-.5 1.8-1.3 1.8c-.7 0-1.3-.8-1.3-1.9z"/>
+  <path fill="#c8b100" d="M277.3 207.6c0-1 .2-1.8.5-1.8.4 0 .7.8.7 1.8s-.3 1.7-.6 1.7c-.4 0-.6-.8-.6-1.8"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M277.3 207.6c0-1 .2-1.8.5-1.8.4 0 .7.8.7 1.8s-.3 1.7-.6 1.7c-.4 0-.6-.8-.6-1.8z"/>
+  <path fill="#c8b100" d="M271 215.3a4.5 4.5 0 00-.5-1 27.4 27.4 0 0114.8 0l-.6.8a5.2 5.2 0 00-.3.8 22.9 22.9 0 00-6.6-.8c-2.6 0-5.2.3-6.6.8l-.2-.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M271 215.3a4.5 4.5 0 00-.5-1 27.4 27.4 0 0114.8 0l-.6.8a5.2 5.2 0 00-.3.8 22.9 22.9 0 00-6.6-.8c-2.6 0-5.2.3-6.6.8l-.2-.6"/>
+  <path fill="#c8b100" d="M277.8 217.7c2.4 0 5-.4 5.9-.6.6-.2 1-.5 1-.8 0-.2-.2-.3-.4-.4a24.1 24.1 0 00-6.5-.8c-2.5 0-5 .3-6.4.8-.2 0-.3.2-.4.3 0 .4.3.7 1 .9 1 .2 3.5.6 5.8.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M277.8 217.7c2.4 0 5-.4 5.9-.6.6-.2 1-.5 1-.8 0-.2-.2-.3-.4-.4a24.1 24.1 0 00-6.5-.8c-2.5 0-5 .3-6.4.8-.2 0-.3.2-.4.3 0 .4.3.7 1 .9 1 .2 3.5.6 5.8.6z"/>
+  <path fill="#fff" d="M283.5 208.4c0-.2.2-.4.4-.4s.5.2.5.4-.2.4-.5.4a.4.4 0 01-.4-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".2" d="M283.5 208.4c0-.2.2-.4.4-.4s.5.2.5.4-.2.4-.5.4a.4.4 0 01-.4-.4zm-.2-1.4a.4.4 0 01.4-.4c.2 0 .4.1.4.4s-.2.4-.4.4a.4.4 0 01-.4-.4zm-1.1-1c0-.2.2-.3.4-.3s.4.1.4.4c0 .2-.2.4-.4.4a.4.4 0 01-.4-.5zm-1.4-.4c0-.2.2-.4.4-.4.3 0 .5.2.5.4s-.2.4-.4.4-.5-.2-.5-.4zm-1.4 0c0-.2.2-.3.5-.3s.4.1.4.4c0 .2-.2.4-.4.4a.4.4 0 01-.5-.4z"/>
+  <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".3" d="M287.8 211.2l.2-1a2.7 2.7 0 00-2.7-2.8c-.5 0-1 .1-1.3.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M283 209.2l.2-.8c0-1.1-1.1-2-2.5-2-.6 0-1.2.2-1.6.4"/>
+  <path fill="none" stroke="#000" stroke-width=".2" d="M288.2 210c0-.3.2-.5.4-.5s.4.2.4.4c0 .3-.2.4-.4.4s-.4-.1-.4-.4zm-.2-1.6c0-.2.2-.4.4-.4a.4.4 0 01.5.4c0 .2-.2.4-.4.4-.3 0-.5-.2-.5-.4zm-1-1.1a.4.4 0 01.5-.4c.2 0 .4.1.4.4a.4.4 0 01-.4.4.4.4 0 01-.5-.4zm-1.3-.7c0-.2.2-.4.5-.4s.4.2.4.4c0 .3-.2.5-.4.5a.4.4 0 01-.5-.5zm-1.4.1c0-.2.2-.4.5-.4s.4.2.4.4-.2.4-.4.4-.5-.2-.5-.4z"/>
+  <path fill="#c8b100" d="M285.3 213.2l-.5-.5s-.6.3-1.3.2c-.6 0-.9-1-.9-1s-.7.7-1.3.7c-.7 0-1-.6-1-.6s-.7.5-1.3.4c-.6 0-1.2-.8-1.2-.8s-.6.8-1.2.8c-.6.1-1-.5-1-.5s-.3.6-1.1.7-1.4-.6-1.4-.6-.4.7-1 1c-.5 0-1.2-.4-1.2-.4l-.1.5-.3.1.1.5a27 27 0 017.3-.9c2.8 0 5.4.4 7.3 1l.2-.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M285.3 213.2l-.5-.5s-.6.3-1.3.2c-.6 0-.9-1-.9-1s-.7.7-1.3.7c-.7 0-1-.6-1-.6s-.7.5-1.3.4c-.6 0-1.2-.8-1.2-.8s-.6.8-1.2.8c-.6.1-1-.5-1-.5s-.3.6-1.1.7-1.4-.6-1.4-.6-.4.7-1 1c-.5 0-1.2-.4-1.2-.4l-.1.5-.3.1.1.5a27 27 0 017.3-.9c2.8 0 5.4.4 7.3 1l.2-.6z"/>
+  <path fill="#fff" d="M271.3 208.4c0-.2.2-.4.4-.4s.4.2.4.4a.4.4 0 01-.4.4.4.4 0 01-.4-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".2" d="M271.3 208.4c0-.2.2-.4.4-.4s.4.2.4.4a.4.4 0 01-.4.4.4.4 0 01-.4-.4zm.2-1.4c0-.3.2-.4.4-.4s.5.1.5.4-.2.4-.5.4a.4.4 0 01-.4-.4zm1-1c0-.2.3-.3.5-.3s.5.1.5.4c0 .2-.2.4-.5.4a.4.4 0 01-.4-.5zm1.4-.4c0-.2.2-.4.5-.4s.4.2.4.4-.2.4-.4.4-.5-.2-.5-.4zm1.4 0c0-.2.2-.3.5-.3.2 0 .4.1.4.4 0 .2-.2.4-.4.4a.4.4 0 01-.5-.4z"/>
+  <path fill="none" stroke="#000" stroke-linecap="round" stroke-width=".3" d="M267.8 211.2a2.8 2.8 0 01-.2-1 2.7 2.7 0 012.7-2.8c.5 0 1 .1 1.4.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M272.7 209.2a1.7 1.7 0 01-.3-.8c0-1 1.2-2 2.6-2a3 3 0 011.5.4"/>
+  <path fill="none" stroke="#000" stroke-width=".2" d="M266.6 210c0-.3.2-.5.4-.5.3 0 .4.2.4.4a.4.4 0 01-.4.4c-.2 0-.4-.1-.4-.4zm.1-1.6c0-.2.3-.4.5-.4s.4.2.4.4-.2.4-.4.4-.4-.2-.4-.4zm1-1.1c0-.3.2-.4.5-.4a.4.4 0 01.4.4.4.4 0 01-.4.4.4.4 0 01-.5-.4zm1.3-.7c0-.2.2-.4.5-.4.2 0 .4.2.4.4 0 .3-.2.5-.4.5a.4.4 0 01-.5-.5zm1.4.1c0-.2.2-.4.5-.4a.4.4 0 01.4.4.4.4 0 01-.4.4c-.3 0-.5-.2-.5-.4z"/>
+  <path fill="#c8b100" d="M277.9 210.7h.2a1 1 0 000 .4c0 .6.5 1 1 1a1 1 0 001-.7l.2-.3v.4c.1.5.6.8 1.1.8.6 0 1-.4 1-1a.7.7 0 000-.1l.4-.4.2.5a1 1 0 00-.1.4 1 1 0 001 1c.4 0 .7-.2.9-.5l.2-.2v.3c0 .3.1.6.4.7 0 0 .4 0 1-.4s.7-.7.7-.7v.4s-.5.8-1 1c-.2.2-.5.4-.8.3-.3 0-.6-.3-.7-.6a1.5 1.5 0 01-.7.2c-.6 0-1.2-.3-1.4-.8a1.5 1.5 0 01-1.1.5c-.5 0-1-.2-1.2-.6a1.5 1.5 0 01-1 .4c-.6 0-1-.2-1.4-.6-.2.4-.7.6-1.2.6-.4 0-.8-.1-1-.4a1.6 1.6 0 01-1.3.6c-.4 0-.8-.2-1.1-.5-.2.5-.8.8-1.4.8-.2 0-.5 0-.7-.2-.1.3-.4.6-.7.6-.3 0-.6 0-.9-.2a4.2 4.2 0 01-1-1l.1-.5.8.7c.5.4.9.4.9.4.3 0 .4-.4.4-.7v-.3l.2.2c.2.3.5.5.9.5a1 1 0 001-1 1 1 0 000-.4v-.5l.4.4v.1c0 .6.5 1 1 1 .6 0 1-.3 1.1-.9v-.3l.2.3c.2.4.6.7 1 .7.6 0 1.1-.4 1.1-1a1 1 0 000-.3h.2"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M277.9 210.7h.2a1 1 0 000 .4c0 .6.5 1 1 1a1 1 0 001-.7l.2-.3v.4c.1.5.6.8 1.1.8.6 0 1-.4 1-1a.7.7 0 000-.1l.4-.4.2.5a1 1 0 00-.1.4 1 1 0 001 1c.4 0 .7-.2.9-.5l.2-.2v.3c0 .3.1.6.4.7 0 0 .4 0 1-.4s.7-.7.7-.7v.4s-.5.8-1 1c-.2.2-.5.4-.8.3-.3 0-.6-.3-.7-.6a1.5 1.5 0 01-.7.2c-.6 0-1.2-.3-1.4-.8a1.5 1.5 0 01-1.1.5c-.5 0-1-.2-1.2-.6a1.5 1.5 0 01-1 .4c-.6 0-1-.2-1.4-.6-.2.4-.7.6-1.2.6-.4 0-.8-.1-1-.4a1.6 1.6 0 01-1.3.6c-.4 0-.8-.2-1.1-.5-.2.5-.8.8-1.4.8-.2 0-.5 0-.7-.2-.1.3-.4.6-.7.6-.3 0-.6 0-.9-.2a4.2 4.2 0 01-1-1l.1-.5.8.7c.5.4.9.4.9.4.3 0 .4-.4.4-.7v-.3l.2.2c.2.3.5.5.9.5a1 1 0 001-1 1 1 0 000-.4v-.5l.4.4v.1c0 .6.5 1 1 1 .6 0 1-.3 1.1-.9v-.3l.2.3c.2.4.6.7 1 .7.6 0 1.1-.4 1.1-1a1 1 0 000-.3h.2z"/>
+  <path fill="#c8b100" d="M277.8 213.3c-2.9 0-5.5.4-7.3 1l-.3-.2.1-.3c2-.6 4.6-1 7.5-1 3 0 5.7.4 7.6 1 0 0 .2.2.1.3l-.3.2a27 27 0 00-7.4-1"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M277.8 213.3c-2.9 0-5.5.4-7.3 1l-.3-.2.1-.3c2-.6 4.6-1 7.5-1 3 0 5.7.4 7.6 1 0 0 .2.2.1.3l-.3.2a27 27 0 00-7.4-1z"/>
+  <path fill="#fff" d="M275 214.4c0-.3.2-.4.5-.4a.4.4 0 01.4.4.4.4 0 01-.4.4c-.3 0-.5-.2-.5-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M275 214.4c0-.3.2-.4.5-.4a.4.4 0 01.4.4.4.4 0 01-.4.4c-.3 0-.5-.2-.5-.4z"/>
+  <path fill="#ad1519" d="M277.9 214.5h-1c-.1 0-.3 0-.3-.3l.3-.3h2a.3.3 0 01.2.3.3.3 0 01-.3.3h-1"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M277.9 214.5h-1c-.1 0-.3 0-.3-.3l.3-.3h2a.3.3 0 01.2.3.3.3 0 01-.3.3h-1"/>
+  <path fill="#058e6e" d="M273.2 214.9h-.6a.3.3 0 01-.4-.2.3.3 0 01.3-.3l.6-.1.7-.1c.2 0 .3 0 .4.2a.3.3 0 01-.3.4h-.7"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M273.2 214.9h-.6a.3.3 0 01-.4-.2.3.3 0 01.3-.3l.6-.1.7-.1c.2 0 .3 0 .4.2a.3.3 0 01-.3.4h-.7"/>
+  <path fill="#ad1519" d="M270.5 215.3l.3-.4h.7l-.4.6-.6-.2"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M270.5 215.3l.3-.4h.7l-.4.6-.6-.2"/>
+  <path fill="#fff" d="M279.8 214.4c0-.3.2-.4.4-.4.3 0 .5.1.5.4 0 .2-.2.4-.5.4a.4.4 0 01-.4-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M279.8 214.4c0-.3.2-.4.4-.4.3 0 .5.1.5.4 0 .2-.2.4-.5.4a.4.4 0 01-.4-.4z"/>
+  <path fill="#058e6e" d="M282.5 214.9h.7a.3.3 0 00.3-.2.3.3 0 00-.2-.3l-.7-.1-.7-.1c-.2 0-.3 0-.4.2 0 .2.1.3.3.4h.7"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M282.5 214.9h.7a.3.3 0 00.3-.2.3.3 0 00-.2-.3l-.7-.1-.7-.1c-.2 0-.3 0-.4.2 0 .2.1.3.3.4h.7"/>
+  <path fill="#ad1519" d="M285.1 215.4l-.2-.5h-.7l.3.6.6-.1"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M285.1 215.4l-.2-.5h-.7l.3.6.6-.1"/>
+  <path fill="#ad1519" d="M277.8 217.1a25 25 0 01-6-.6 25.4 25.4 0 016-.7c2.4 0 4.5.3 6.1.7-1.6.4-3.7.6-6 .6"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".3" d="M277.8 217.1a25 25 0 01-6-.6 25.4 25.4 0 016-.7c2.4 0 4.5.3 6.1.7-1.6.4-3.7.6-6 .6z"/>
+  <path fill="#c8b100" d="M285.2 212l-.1-.3c-.2 0-.3 0-.4.2l.1.4c.2 0 .3 0 .4-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M285.2 212l-.1-.3c-.2 0-.3 0-.4.2l.1.4c.2 0 .3 0 .4-.3z"/>
+  <path fill="#c8b100" d="M280.6 211.2c0-.2-.1-.4-.3-.4 0 0-.2.1-.2.3 0 .2 0 .4.2.4l.3-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M280.6 211.2c0-.2-.1-.4-.3-.4 0 0-.2.1-.2.3 0 .2 0 .4.2.4l.3-.3z"/>
+  <path fill="#c8b100" d="M275.2 211.2c0-.2 0-.4.2-.4l.3.3-.2.4c-.2 0-.3-.2-.3-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M275.2 211.2c0-.2 0-.4.2-.4l.3.3-.2.4c-.2 0-.3-.2-.3-.3z"/>
+  <path fill="#c8b100" d="M270.5 212l.1-.3c.2 0 .3 0 .4.2l-.1.4c-.2 0-.3 0-.4-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M270.5 212l.1-.3c.2 0 .3 0 .4.2l-.1.4c-.2 0-.3 0-.4-.3z"/>
+  <path fill="#c8b100" d="M277.8 208.5l-.8.5.6 1.3.2.1.3-.1.6-1.3-.9-.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M277.8 208.5l-.8.5.6 1.3.2.1.3-.1.6-1.3-.9-.5"/>
+  <path fill="#c8b100" d="M276 210.5l.4.5 1.3-.4.1-.2-.1-.2-1.3-.3-.4.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M276 210.5l.4.5 1.3-.4.1-.2-.1-.2-1.3-.3-.4.6"/>
+  <path fill="#c8b100" d="M279.6 210.5l-.3.5-1.3-.4-.1-.2v-.2l1.4-.3.4.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M279.6 210.5l-.3.5-1.3-.4-.1-.2v-.2l1.4-.3.4.6"/>
+  <path fill="#c8b100" d="M272.5 209l-.7.7.9 1 .2.1.2-.1.2-1.3-.8-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M272.5 209l-.7.7.9 1 .2.1.2-.1.2-1.3-.8-.3"/>
+  <path fill="#c8b100" d="M271.1 211.2l.5.5 1.2-.6v-.2l-.1-.2-1.3-.1-.3.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M271.1 211.2l.5.5 1.2-.6v-.2l-.1-.2-1.3-.1-.3.6"/>
+  <path fill="#c8b100" d="M274.7 210.5l-.3.6h-1.3l-.2-.2.1-.3 1.2-.6.5.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M274.7 210.5l-.3.6h-1.3l-.2-.2.1-.3 1.2-.6.5.5"/>
+  <path fill="#c8b100" d="M269.8 211.4v.6l-1.4.2-.2-.1v-.2l1-.9.6.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M269.8 211.4v.6l-1.4.2-.2-.1v-.2l1-.9.6.4"/>
+  <path fill="#c8b100" d="M272.4 210.9c0-.3.2-.5.5-.5a.5.5 0 01.5.5.5.5 0 01-.5.4.5.5 0 01-.5-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M272.4 210.9c0-.3.2-.5.5-.5a.5.5 0 01.5.5.5.5 0 01-.5.4.5.5 0 01-.5-.4z"/>
+  <path fill="#c8b100" d="M283.2 209l.7.7-.9 1-.2.1-.1-.1-.3-1.3.8-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M283.2 209l.7.7-.9 1-.2.1-.1-.1-.3-1.3.8-.3"/>
+  <path fill="#c8b100" d="M284.6 211.2l-.5.5-1.2-.6v-.2l.1-.2 1.3-.1.3.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M284.6 211.2l-.5.5-1.2-.6v-.2l.1-.2 1.3-.1.3.6"/>
+  <path fill="#c8b100" d="M281 210.5l.3.6h1.3l.2-.2-.1-.3-1.2-.6-.5.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M281 210.5l.3.6h1.3l.2-.2-.1-.3-1.2-.6-.5.5"/>
+  <path fill="#c8b100" d="M285.7 211.4v.6l1.4.2.2-.1v-.2l-1-.9-.6.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M285.7 211.4v.6l1.4.2.2-.1v-.2l-1-.9-.6.4"/>
+  <path fill="#c8b100" d="M277.4 210.4c0-.2.2-.4.5-.4.2 0 .4.2.4.4 0 .3-.2.5-.4.5a.5.5 0 01-.5-.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M277.4 210.4c0-.2.2-.4.5-.4.2 0 .4.2.4.4 0 .3-.2.5-.4.5a.5.5 0 01-.5-.5z"/>
+  <path fill="#c8b100" d="M282.3 210.9c0-.3.3-.5.5-.5.3 0 .5.2.5.5s-.2.4-.5.4a.5.5 0 01-.5-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M282.3 210.9c0-.3.3-.5.5-.5.3 0 .5.2.5.5s-.2.4-.5.4a.5.5 0 01-.5-.4z"/>
+  <path fill="#c8b100" d="M277 205.4c0-.5.4-.8.8-.8s1 .3 1 .8-.5.8-1 .8a.9.9 0 01-.8-.8"/>
+  <path fill="#c8b100" d="M278.5 205.1v.6H277v-.6h.4v-1.3h-.5v-.5h.5v-.6h.6v.6h.6v.6h-.6v1.2h.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M278.5 205.1v.6H277v-.6h.4v-1.3h-.5v-.5h.5v-.6h.6v.6h.6v.6h-.6v1.2h.4z"/>
+  <path fill="#c8b100" d="M279 205.1v.6h-2.4v-.6h1v-1.3h-.7v-.5h.6v-.6h.6v.6h.6v.6h-.6v1.2h1"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M278.1 204.6c.4 0 .6.4.6.8 0 .5-.4.8-.9.8a.9.9 0 01-.8-.8c0-.4.2-.7.6-.8"/>
+  <path fill="#c8b100" d="M268 212.2l-.6-.7a2.3 2.3 0 00-.7-.3c0-.1.3-.3.6-.3.2 0 .3 0 .4.2v-.2s.3 0 .4.3v1"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M268 212.2l-.6-.7a2.3 2.3 0 00-.7-.3c0-.1.3-.3.6-.3.2 0 .3 0 .4.2v-.2s.3 0 .4.3v1z"/>
+  <path fill="#c8b100" d="M268 212c.1-.2.4-.2.5 0 .2.1.3.3.1.5l-.5-.1c-.1-.1-.2-.4 0-.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M268 212c.1-.2.4-.2.5 0 .2.1.3.3.1.5l-.5-.1c-.1-.1-.2-.4 0-.5z"/>
+  <path fill="#c8b100" d="M287.5 212.2l.6-.7c.2-.2.7-.3.7-.3 0-.1-.3-.3-.6-.3a.6.6 0 00-.4.2v-.2s-.3 0-.4.3v.7l.1.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M287.5 212.2l.6-.7c.2-.2.7-.3.7-.3 0-.1-.3-.3-.6-.3a.6.6 0 00-.4.2v-.2s-.3 0-.4.3v.7l.1.3z"/>
+  <path fill="#c8b100" d="M287.5 212c-.1-.2-.3-.2-.5 0-.2.1-.2.3-.1.5l.5-.1c.2-.1.2-.4.1-.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M287.5 212c-.1-.2-.3-.2-.5 0-.2.1-.2.3-.1.5l.5-.1c.2-.1.2-.4.1-.5z"/>
+  <path fill="#c8b100" d="M267.2 223h21.4v-5.5h-21.4v5.6z"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M267.2 223h21.4v-5.5h-21.4v5.6z"/>
+  <path fill="#c8b100" d="M286.3 226.8a1 1 0 00-.4 0h-16.5c.6-.2 1-.7 1-1.2 0-.6-.4-1.1-1-1.3h17-.1c-.6.2-1 .7-1 1.3 0 .5.4 1 1 1.2"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M286.3 226.8a1 1 0 00-.4 0h-16.5c.6-.2 1-.7 1-1.2 0-.6-.4-1.1-1-1.3h17-.1c-.6.2-1 .7-1 1.3 0 .5.4 1 1 1.2z"/>
+  <path fill="#c8b100" d="M269.9 226.8h16c.6 0 1 .3 1 .7 0 .4-.4.8-1 .8h-16c-.6 0-1-.4-1-.8s.5-.8 1-.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M269.9 226.8h16c.6 0 1 .3 1 .7 0 .4-.4.8-1 .8h-16c-.6 0-1-.4-1-.8s.5-.8 1-.8z"/>
+  <path fill="#c8b100" d="M269.9 223h16c.6 0 1 .4 1 .7 0 .4-.4.6-1 .6h-16c-.6 0-1-.2-1-.6 0-.3.4-.6 1-.6"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M269.9 223h16c.6 0 1 .4 1 .7 0 .4-.4.6-1 .6h-16c-.6 0-1-.2-1-.6 0-.3.4-.6 1-.6z"/>
+  <path fill="#005bbf" d="M263 317.4c1.4 0 2.7-.3 3.7-.8a8.4 8.4 0 013.7-.8c1.4 0 2.8.3 3.8.8s2.3.8 3.7.8c1.5 0 2.8-.3 3.8-.8a8.4 8.4 0 013.6-.8 8 8 0 013.7.8c1 .5 2.4.8 3.8.8v2.4a8.3 8.3 0 01-3.8-.9 8.2 8.2 0 00-3.7-.8c-1.4 0-2.7.3-3.6.8-1 .5-2.3.9-3.8.9a8 8 0 01-3.7-.9 8.4 8.4 0 00-3.8-.8 8.3 8.3 0 00-3.7.8c-1 .5-2.3.9-3.8.9v-2.4"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M263 317.4c1.4 0 2.7-.3 3.7-.8a8.4 8.4 0 013.7-.8c1.4 0 2.8.3 3.8.8s2.3.8 3.7.8c1.5 0 2.8-.3 3.8-.8a8.4 8.4 0 013.6-.8 8 8 0 013.7.8c1 .5 2.4.8 3.8.8v2.4a8.3 8.3 0 01-3.8-.9 8.2 8.2 0 00-3.7-.8c-1.4 0-2.7.3-3.6.8-1 .5-2.3.9-3.8.9a8 8 0 01-3.7-.9 8.4 8.4 0 00-3.8-.8 8.3 8.3 0 00-3.7.8c-1 .5-2.3.9-3.8.9v-2.4z"/>
+  <path fill="#ccc" d="M263 319.8c1.4 0 2.7-.4 3.7-.9s2.3-.8 3.7-.8c1.4 0 2.8.3 3.8.8s2.3.9 3.7.9a8.2 8.2 0 003.8-.9 8.4 8.4 0 013.6-.8c1.5 0 2.8.3 3.7.8 1 .5 2.4.9 3.8.9v2.3a8.3 8.3 0 01-3.8-.9 8.1 8.1 0 00-3.7-.7c-1.4 0-2.7.2-3.6.7-1 .5-2.3.9-3.8.9a7 7 0 01-3.7-.9c-1-.4-2.3-.7-3.8-.7a8.3 8.3 0 00-3.7.7 8.1 8.1 0 01-3.8.9v-2.3"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M263 319.8c1.4 0 2.7-.4 3.7-.9s2.3-.8 3.7-.8c1.4 0 2.8.3 3.8.8s2.3.9 3.7.9a8.2 8.2 0 003.8-.9 8.4 8.4 0 013.6-.8c1.5 0 2.8.3 3.7.8 1 .5 2.4.9 3.8.9v2.3a8.3 8.3 0 01-3.8-.9 8.1 8.1 0 00-3.7-.7c-1.4 0-2.7.2-3.6.7-1 .5-2.3.9-3.8.9a7 7 0 01-3.7-.9c-1-.4-2.3-.7-3.8-.7a8.3 8.3 0 00-3.7.7 8.1 8.1 0 01-3.8.9v-2.3"/>
+  <path fill="#005bbf" d="M263 322c1.4 0 2.7-.2 3.7-.8 1-.4 2.3-.7 3.7-.7 1.4 0 2.8.2 3.8.7s2.3.9 3.7.9a8.2 8.2 0 003.8-.9 8.4 8.4 0 013.6-.8 8 8 0 013.7.8c1 .5 2.4.9 3.8.9v2.3a8.3 8.3 0 01-3.8-.9 8.2 8.2 0 00-3.7-.7c-1.4 0-2.7.3-3.6.7-1 .6-2.3.9-3.8.9-1.4 0-2.8-.3-3.7-.8a8.4 8.4 0 00-3.8-.8 8.3 8.3 0 00-3.7.8c-1 .5-2.3.8-3.8.8V322"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M263 322c1.4 0 2.7-.2 3.7-.8 1-.4 2.3-.7 3.7-.7 1.4 0 2.8.2 3.8.7s2.3.9 3.7.9a8.2 8.2 0 003.8-.9 8.4 8.4 0 013.6-.8 8 8 0 013.7.8c1 .5 2.4.9 3.8.9v2.3a8.3 8.3 0 01-3.8-.9 8.2 8.2 0 00-3.7-.7c-1.4 0-2.7.3-3.6.7-1 .6-2.3.9-3.8.9-1.4 0-2.8-.3-3.7-.8a8.4 8.4 0 00-3.8-.8 8.3 8.3 0 00-3.7.8c-1 .5-2.3.8-3.8.8V322"/>
+  <path fill="#ccc" d="M263 326.7a8 8 0 003.7-.8c1-.5 2.3-.8 3.7-.8 1.4 0 2.8.3 3.8.8s2.3.8 3.7.8c1.5 0 2.8-.3 3.8-.9a8.4 8.4 0 013.6-.7c1.5 0 2.8.3 3.7.8a8.3 8.3 0 003.8.8v-2.3a8.3 8.3 0 01-3.8-.9 8.2 8.2 0 00-3.7-.7c-1.4 0-2.7.3-3.6.7-1 .5-2.3.9-3.8.9-1.4 0-2.8-.3-3.7-.8a8.4 8.4 0 00-3.8-.8 8.3 8.3 0 00-3.7.8c-1 .5-2.3.8-3.8.8v2.3"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M263 326.7a8 8 0 003.7-.8c1-.5 2.3-.8 3.7-.8 1.4 0 2.8.3 3.8.8s2.3.8 3.7.8c1.5 0 2.8-.3 3.8-.9a8.4 8.4 0 013.6-.7c1.5 0 2.8.3 3.7.8a8.3 8.3 0 003.8.8v-2.3a8.3 8.3 0 01-3.8-.9 8.2 8.2 0 00-3.7-.7c-1.4 0-2.7.3-3.6.7-1 .5-2.3.9-3.8.9-1.4 0-2.8-.3-3.7-.8a8.4 8.4 0 00-3.8-.8 8.3 8.3 0 00-3.7.8c-1 .5-2.3.8-3.8.8v2.3"/>
+  <path fill="#005bbf" d="M263 329a8.1 8.1 0 003.7-.8c1-.5 2.3-.8 3.7-.8 1.4 0 2.8.3 3.8.8s2.3.8 3.7.8a8.2 8.2 0 003.8-.9 8.4 8.4 0 013.6-.7c1.5 0 2.8.3 3.7.8 1 .5 2.4.8 3.8.8v-2.3a8.3 8.3 0 01-3.8-.8 8.2 8.2 0 00-3.7-.8 8.4 8.4 0 00-3.6.7 8.2 8.2 0 01-3.8.9c-1.4 0-2.8-.3-3.7-.8-1-.5-2.3-.8-3.8-.8-1.4 0-2.7.3-3.7.8s-2.3.8-3.8.8v2.3"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M263 329a8.1 8.1 0 003.7-.8c1-.5 2.3-.8 3.7-.8 1.4 0 2.8.3 3.8.8s2.3.8 3.7.8a8.2 8.2 0 003.8-.9 8.4 8.4 0 013.6-.7c1.5 0 2.8.3 3.7.8 1 .5 2.4.8 3.8.8v-2.3a8.3 8.3 0 01-3.8-.8 8.2 8.2 0 00-3.7-.8 8.4 8.4 0 00-3.6.7 8.2 8.2 0 01-3.8.9c-1.4 0-2.8-.3-3.7-.8-1-.5-2.3-.8-3.8-.8-1.4 0-2.7.3-3.7.8s-2.3.8-3.8.8v2.3z"/>
+  <path fill="#c8b100" d="M286.3 308l-.1.5c0 1.5 1.2 2.6 2.7 2.6h-22c1.5 0 2.7-1.2 2.7-2.6l-.1-.5h16.8"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M286.3 308l-.1.5c0 1.5 1.2 2.6 2.7 2.6h-22c1.5 0 2.7-1.2 2.7-2.6l-.1-.5h16.8z"/>
+  <path fill="#c8b100" d="M269.9 306.5h16c.6 0 1 .3 1 .8 0 .4-.4.7-1 .7h-16c-.6 0-1-.3-1-.8 0-.4.5-.7 1-.7"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M269.9 306.5h16c.6 0 1 .3 1 .8 0 .4-.4.7-1 .7h-16c-.6 0-1-.3-1-.8 0-.4.5-.7 1-.7z"/>
+  <path fill="#c8b100" d="M266.9 316.7h22V311h-22v5.6z"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M266.9 316.7h22V311h-22v5.6z"/>
+  <path fill="#ad1519" d="M290.6 286.7c2.1 1.2 3.6 2.5 3.4 3.2-.1.6-.8 1-1.8 1.6-1.6 1.1-2.5 3-1.8 4a5.5 5.5 0 01.2-8.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M290.6 286.7c2.1 1.2 3.6 2.5 3.4 3.2-.1.6-.8 1-1.8 1.6-1.6 1.1-2.5 3-1.8 4a5.5 5.5 0 01.2-8.8z"/>
+  <path fill="#ccc" d="M270.1 305.6h15.6V229h-15.6v76.5z"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M281.4 229.1v76.3m1.8-76.3v76.3m-13 .2h15.5V229h-15.6v76.5z"/>
+  <path fill="#ad1519" d="M254.2 257.7a49.6 49.6 0 0123.3-2c9.3 1.6 16.4 5.3 15.9 8.4v.2l3.5-8.2c.6-3.3-7.3-7.5-17.6-9.2a53.5 53.5 0 00-9.2-.7c-6.7 0-12.4.8-15.9 2.1v9.4"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M254.2 257.7a49.6 49.6 0 0123.3-2c9.3 1.6 16.4 5.3 15.9 8.4v.2l3.5-8.2c.6-3.3-7.3-7.5-17.6-9.2a53.5 53.5 0 00-9.2-.7c-6.7 0-12.4.8-15.9 2.1v9.4"/>
+  <path fill="#ad1519" d="M285.7 267.3c4.4-.3 7.3-1.4 7.7-3.2.2-1.5-1.2-3-3.8-4.5-1.2.1-2.5.3-3.9.3v7.4"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M285.7 267.3c4.4-.3 7.3-1.4 7.7-3.2.2-1.5-1.2-3-3.8-4.5-1.2.1-2.5.3-3.9.3v7.4"/>
+  <path fill="#ad1519" d="M270 261.5a13 13 0 00-5.7 1.9v.2c-.5 1 1.8 3 5.8 5.4v-7.5"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M270 261.5a13 13 0 00-5.7 1.9v.2c-.5 1 1.8 3 5.8 5.4v-7.5"/>
+  <path fill="#ad1519" d="M295.4 282c.4-1.2-3.8-3.6-9.7-5.8-2.8-1-5-2-7.8-3.2-8.3-3.7-14.4-7.9-13.6-9.4v-.2c-.4.4-1 8-1 8-.8 1.3 4.8 5.5 12.4 9.1 2.4 1.2 7.6 3 10 4 4.3 1.4 8.7 4.3 8.3 5.3l1.4-7.7"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M295.4 282c.4-1.2-3.8-3.6-9.7-5.8-2.8-1-5-2-7.8-3.2-8.3-3.7-14.4-7.9-13.6-9.4v-.2c-.4.4-1 8-1 8-.8 1.3 4.8 5.5 12.4 9.1 2.4 1.2 7.6 3 10 4 4.3 1.4 8.7 4.3 8.3 5.3l1.4-7.7z"/>
+  <path fill="#c8b100" d="M263.9 254.4c.6-2.3 1.4-4.4 2.1-6.6h-.5a5.2 5.2 0 01-.5.1 52.8 52.8 0 01-1.4 4.8c-1-1.4-2-2.7-2.7-4.1l-1 .2h-1a131.3 131.3 0 014 5.7h.5l.5-.1m6-6.6h-1a8 8 0 01-.8 0v6.2h4.2v-.7h-2.6l.1-5.5m6.8 1l2 .3v-.7l-5.8-.5v.8a19.3 19.3 0 012 0l-.4 5.6h1.6l.5-5.4m2.4 6c.3 0 .5 0 .8.2l.8.2.7-2.9.6 1.2.8 2.1 1 .2c.4 0 .7.2 1 .3l-.3-.7c-.4-1-1-1.9-1.3-2.9 1 0 1.9-.3 2.1-1.2.1-.6 0-1-.7-1.5-.4-.3-1.2-.4-1.7-.5l-2.4-.5-1.4 6m3-5.2c.7.2 1.5.3 1.5 1v.5c-.3.9-1 1.2-2 .9l.5-2.4m8 7l-.2 2 .8.5.9.5.5-7a3.4 3.4 0 01-.7-.3l-6.1 3.8.5.3.4.2 1.7-1.2 2.3 1.3zm-1.7-1.5l2-1.4-.2 2.3-1.8-1"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M182.2 192.4c0-1 1-2 2-2s2.2 1 2.2 2c0 1.1-1 2-2.1 2a2 2 0 01-2.1-2z"/>
+  <path fill="#ad1519" stroke="#000" stroke-width=".3" d="M205.7 175.4c6.3 0 12 1 15.7 2.4a31.7 31.7 0 0014.6 2.3c2.7 0 6.5.8 10.3 2.4a27.3 27.3 0 017.4 4.7l-1.5 1.4-.4 3.8-4.1 4.7-2 1.8-5 3.9-2.5.2-.7 2.1-31.6-3.7-31.7 3.7-.8-2.1-2.5-.2-4.9-4-2-1.7-4.1-4.7-.5-3.8-1.5-1.4a27.6 27.6 0 017.5-4.7 26 26 0 0110.2-2.4c2 .2 4.2.1 6.6-.2a30 30 0 008-2c3.7-1.5 9-2.5 15.5-2.5z"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M206.2 217.1c-11.8 0-22.4-1.4-29.9-3.6a1.1 1.1 0 01-.8-1.2c0-.5.3-1 .8-1.2a109 109 0 0129.9-3.6c11.7 0 22.3 1.4 29.8 3.6a1.3 1.3 0 010 2.4c-7.5 2.2-18 3.6-29.8 3.6"/>
+  <path fill="#ad1519" d="M206.1 215.6c-10.6 0-20.2-1.2-27.5-3.1 7.3-2 16.9-3 27.5-3.1a115 115 0 0127.6 3c-7.3 2-17 3.2-27.6 3.2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M206.9 215.7v-6.3m-1.7 6.3v-6.3"/>
+  <path fill="none" stroke="#000" stroke-width=".2" d="M203.6 215.7v-6.3m-1.6 6.3v-6.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M200.6 215.7v-6.3m-2.8 5.9v-5.7m1.3 5.8v-6m-3.8 5.6v-5.2m1.3 5.4v-5.6"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M192 214.8V210m1 4.7V210m1.2 5v-5m-3.4 4.7v-4.5"/>
+  <path fill="none" stroke="#000" stroke-width=".5" d="M189.7 214.5v-4.2m-1.2 4.1v-4"/>
+  <path fill="none" stroke="#000" stroke-width=".6" d="M186 214v-3m1.3 3.2v-3.5m-2.5 3.1V211"/>
+  <path fill="none" stroke="#000" stroke-width=".7" d="M183.7 213.6v-2.3m-1.3 2v-1.8m-1.2 1.6v-1.3"/>
+  <path fill="none" stroke="#000" stroke-width=".9" d="M179.8 212.8v-.7"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M213.7 215.3v-5.8m-2.9 6v-6.1m-2.1 6.2v-6.3"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M206 207.4a108 108 0 00-30 3.9c.6-.3.5-1-.3-3-1-2.5-2.4-2.4-2.4-2.4 8.3-2.5 20-4 32.8-4a123 123 0 0133 4s-1.5-.1-2.5 2.3c-.8 2-.8 2.8-.2 3-7.5-2.2-18.4-3.7-30.3-3.7"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M206.1 201.9c-12.9 0-24.5 1.5-32.8 4a1 1 0 01-1.3-.6 1 1 0 01.7-1.3 121 121 0 0133.4-4.2c13.2 0 25.2 1.7 33.5 4.2.6.2.9.8.7 1.3-.2.5-.8.8-1.3.6-8.4-2.5-20-4-32.9-4"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".4" d="M206.1 215.6c-10.6 0-20.2-1.2-27.5-3.1 7.3-2 16.9-3 27.5-3.1a115 115 0 0127.6 3c-7.3 2-17 3.2-27.6 3.2z"/>
+  <path fill="#fff" stroke="#000" stroke-width=".4" d="M197 204.8c0-.5.4-1 1-1 .5 0 1 .5 1 1s-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="#ad1519" stroke="#000" stroke-width=".4" d="M206.1 205.6H203a1 1 0 010-2h6.4c.5 0 1 .5 1 1s-.5 1-1 1h-3.2"/>
+  <path fill="#058e6e" stroke="#000" stroke-width=".4" d="M190.3 206.5l-2.3.2c-.6.1-1-.3-1.2-.8a1 1 0 011-1.1l2.2-.3 2.4-.3c.5 0 1 .3 1.1.9.1.5-.3 1-.9 1l-2.3.4"/>
+  <path fill="#fff" stroke="#000" stroke-width=".4" d="M181 206.7c0-.6.5-1 1.1-1 .6 0 1 .4 1 1 0 .5-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="#ad1519" stroke="#000" stroke-width=".4" d="M174 208.5l1.2-1.6 3.3.4-2.6 2-1.8-.8"/>
+  <path fill="#058e6e" stroke="#000" stroke-width=".4" d="M222 206.5l2.3.2c.5.1 1-.3 1.1-.8a1 1 0 00-.9-1.1l-2.2-.3-2.4-.3a1 1 0 00-1.1.9c-.1.5.3 1 .9 1l2.3.4"/>
+  <path fill="#fff" stroke="#000" stroke-width=".4" d="M213.3 204.8c0-.5.4-1 1-1s1 .5 1 1-.4 1-1 1a1 1 0 01-1-1m15.8 1.9c0-.6.5-1 1-1 .6 0 1.1.4 1.1 1 0 .5-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="#ad1519" stroke="#000" stroke-width=".4" d="M238.2 208.5l-1.1-1.6-3.3.4 2.6 2 1.8-.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M177.3 212.8c7.4-2.1 17.6-3.4 28.8-3.4 11.3 0 21.4 1.3 28.9 3.4"/>
+  <path fill="#c8b100" d="M182.3 183.8l1.4 1 2-3.2a7.4 7.4 0 01-3.6-7.2c.2-4.1 5.2-7.6 11.7-7.6 3.3 0 6.3 1 8.5 2.4 0-.6 0-1.2.2-1.8a17.4 17.4 0 00-8.7-2.1c-7.4 0-13.2 4.1-13.5 9.1a8.9 8.9 0 003 7.6l-1 1.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M182.3 183.8l1.4 1 2-3.2a7.4 7.4 0 01-3.6-7.2c.2-4.1 5.2-7.6 11.7-7.6 3.3 0 6.3 1 8.5 2.4 0-.6 0-1.2.2-1.8a17.4 17.4 0 00-8.7-2.1c-7.4 0-13.2 4.1-13.5 9.1a8.9 8.9 0 003 7.6l-1 1.8"/>
+  <path fill="#c8b100" d="M182.4 183.8a9.3 9.3 0 01-4-7.3c0-3.2 2-6.1 5.3-8a8.5 8.5 0 00-3.4 6.8 8.9 8.9 0 003 6.7l-.9 1.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M182.4 183.8a9.3 9.3 0 01-4-7.3c0-3.2 2-6.1 5.3-8a8.5 8.5 0 00-3.4 6.8 8.9 8.9 0 003 6.7l-.9 1.8"/>
+  <path fill="#c8b100" d="M160.1 187.1a8.8 8.8 0 01-2.3-5.9c0-1.3.3-2.6 1-3.8 2-4.2 8.4-7.2 16-7.2 2 0 4 .2 5.9.6l-1 1.4a25.5 25.5 0 00-4.9-.4c-7 0-12.8 2.7-14.5 6.3a7 7 0 00-.7 3.1 7.3 7.3 0 002.7 5.6l-2.6 4.1-1.3-1 1.7-2.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M160.1 187.1a8.8 8.8 0 01-2.3-5.9c0-1.3.3-2.6 1-3.8 2-4.2 8.4-7.2 16-7.2 2 0 4 .2 5.9.6l-1 1.4a25.5 25.5 0 00-4.9-.4c-7 0-12.8 2.7-14.5 6.3a7 7 0 00-.7 3.1 7.3 7.3 0 002.7 5.6l-2.6 4.1-1.3-1 1.7-2.8z"/>
+  <path fill="#c8b100" d="M162.7 173.3a10.5 10.5 0 00-4 4.1 8.6 8.6 0 00-.9 3.8c0 2.3.9 4.3 2.3 5.9l-1.5 2.5a10.4 10.4 0 01-2.3-6.5c0-4 2.5-7.5 6.4-9.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M162.7 173.3a10.5 10.5 0 00-4 4.1 8.6 8.6 0 00-.9 3.8c0 2.3.9 4.3 2.3 5.9l-1.5 2.5a10.4 10.4 0 01-2.3-6.5c0-4 2.5-7.5 6.4-9.8z"/>
+  <path fill="#c8b100" d="M206 164.4c1.7 0 3.2 1.1 3.5 2.6.3 1.4.4 2.9.4 4.5v1.1c.1 3.3.6 6.3 1.3 8.1l-5.2 5-5.2-5c.7-1.8 1.2-4.8 1.3-8.1v-1.1c0-1.6.2-3.1.4-4.5.3-1.5 1.8-2.6 3.5-2.6"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M206 164.4c1.7 0 3.2 1.1 3.5 2.6.3 1.4.4 2.9.4 4.5v1.1c.1 3.3.6 6.3 1.3 8.1l-5.2 5-5.2-5c.7-1.8 1.2-4.8 1.3-8.1v-1.1c0-1.6.2-3.1.4-4.5.3-1.5 1.8-2.6 3.5-2.6z"/>
+  <path fill="#c8b100" d="M206 166c1 0 1.7.6 1.8 1.4.2 1.2.4 2.6.4 4.2v1c.1 3.2.6 6 1.2 7.7l-3.4 3.2-3.4-3.2c.7-1.7 1.1-4.5 1.2-7.7v-1a28.1 28.1 0 01.4-4.2 2 2 0 011.8-1.4"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M206 166c1 0 1.7.6 1.8 1.4.2 1.2.4 2.6.4 4.2v1c.1 3.2.6 6 1.2 7.7l-3.4 3.2-3.4-3.2c.7-1.7 1.1-4.5 1.2-7.7v-1a28.1 28.1 0 01.4-4.2 2 2 0 011.8-1.4z"/>
+  <path fill="#c8b100" d="M229.7 183.8l-1.3 1-2-3.2a7.4 7.4 0 003.6-6.3 7 7 0 000-.9c-.2-4.1-5.3-7.6-11.7-7.6a15 15 0 00-8.5 2.4 23 23 0 00-.2-1.8 17.4 17.4 0 018.7-2.1c7.4 0 13.2 4.1 13.4 9.1a8.9 8.9 0 01-3 7.6l1 1.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M229.7 183.8l-1.3 1-2-3.2a7.4 7.4 0 003.6-6.3 7 7 0 000-.9c-.2-4.1-5.3-7.6-11.7-7.6a15 15 0 00-8.5 2.4 23 23 0 00-.2-1.8 17.4 17.4 0 018.7-2.1c7.4 0 13.2 4.1 13.4 9.1a8.9 8.9 0 01-3 7.6l1 1.8"/>
+  <path fill="#c8b100" d="M229.6 183.8a9.1 9.1 0 004.1-7.3c0-3.2-2.1-6.1-5.3-8a8.5 8.5 0 013.4 6.8 8.9 8.9 0 01-3.2 6.7l1 1.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M229.6 183.8a9.1 9.1 0 004.1-7.3c0-3.2-2.1-6.1-5.3-8a8.5 8.5 0 013.4 6.8 8.9 8.9 0 01-3.2 6.7l1 1.8"/>
+  <path fill="#c8b100" d="M252 187.1a8.8 8.8 0 002.2-5.9 8.7 8.7 0 00-.9-3.8c-2-4.2-8.4-7.2-16-7.2a29 29 0 00-6 .6l1 1.4a25.4 25.4 0 015-.4c7 0 12.8 2.7 14.4 6.3.5 1 .7 2 .7 3.1a7.3 7.3 0 01-2.6 5.6l2.5 4.1 1.3-1-1.7-2.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M252 187.1a8.8 8.8 0 002.2-5.9 8.7 8.7 0 00-.9-3.8c-2-4.2-8.4-7.2-16-7.2a29 29 0 00-6 .6l1 1.4a25.4 25.4 0 015-.4c7 0 12.8 2.7 14.4 6.3.5 1 .7 2 .7 3.1a7.3 7.3 0 01-2.6 5.6l2.5 4.1 1.3-1-1.7-2.8z"/>
+  <path fill="#c8b100" d="M249.3 173.3a10.6 10.6 0 014 4.1 8.7 8.7 0 01.9 3.8 8.8 8.8 0 01-2.3 5.9l1.6 2.5a10.4 10.4 0 002.3-6.5c0-4-2.6-7.5-6.5-9.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M249.3 173.3a10.6 10.6 0 014 4.1 8.7 8.7 0 01.9 3.8 8.8 8.8 0 01-2.3 5.9l1.6 2.5a10.4 10.4 0 002.3-6.5c0-4-2.6-7.5-6.5-9.8z"/>
+  <path fill="#fff" d="M204.2 181.4c0-1 .8-1.8 1.8-1.8s1.9.8 1.9 1.8-.9 1.7-1.9 1.7a1.8 1.8 0 01-1.8-1.7"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M204.2 181.4c0-1 .8-1.8 1.8-1.8s1.9.8 1.9 1.8-.9 1.7-1.9 1.7a1.8 1.8 0 01-1.8-1.7z"/>
+  <path fill="#fff" stroke="#000" stroke-width=".4" d="M204.2 178c0-1 .8-1.8 1.8-1.8s1.9.8 1.9 1.8-.9 1.7-1.9 1.7a1.8 1.8 0 01-1.8-1.7m.4-3.7c0-.7.6-1.3 1.4-1.3.8 0 1.5.6 1.5 1.3 0 .8-.7 1.4-1.5 1.4s-1.4-.6-1.4-1.4m.4-3.3c0-.5.4-1 1-1s1 .5 1 1-.4 1-1 1a1 1 0 01-1-1m.2-2.8c0-.5.4-.8.8-.8.5 0 .9.3.9.8 0 .4-.4.8-.9.8a.8.8 0 01-.8-.8"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M206.2 191.8l1.2.2a4.6 4.6 0 004.5 6 4.7 4.7 0 004.4-3c.1 0 .5-1.7.7-1.7.2 0 .1 1.8.2 1.7.3 2.3 2.4 3.8 4.7 3.8a4.6 4.6 0 004.7-5l1.5-1.5.7 2a4 4 0 00-.4 1.9 4.4 4.4 0 004.5 4.2c1.6 0 3-.7 3.8-1.9l.9-1.2v1.5c0 1.5.6 2.8 2 3 0 0 1.7.1 4-1.6 2.1-1.7 3.3-3.1 3.3-3.1l.2 1.7s-1.8 2.8-3.8 4c-1 .6-2.7 1.3-4 1-1.4-.2-2.4-1.3-3-2.6a6.7 6.7 0 01-3.3 1 6.5 6.5 0 01-6.1-3.7 7 7 0 01-10.4-.3 7 7 0 01-4.6 1.8 6.9 6.9 0 01-5.7-3 6.9 6.9 0 01-5.7 3 7 7 0 01-4.7-1.8 7 7 0 01-10.4.3 6.5 6.5 0 01-6 3.7 6.7 6.7 0 01-3.4-1c-.6 1.3-1.5 2.4-3 2.7-1.2.2-2.9-.5-4-1.1-2-1.2-3.8-4-3.8-4l.2-1.7s1.2 1.4 3.4 3.1c2.2 1.8 3.9 1.6 3.9 1.6 1.4-.2 2-1.5 2-3v-1.5l1 1.2a4.6 4.6 0 003.7 2c2.5 0 4.5-2 4.5-4.3a4 4 0 00-.4-2l.8-1.9 1.5 1.5a4.4 4.4 0 000 .6c0 2.4 2 4.4 4.6 4.4 2.4 0 4.4-1.5 4.7-3.8 0 0 0-1.6.2-1.7.2 0 .6 1.7.7 1.6a4.7 4.7 0 004.5 3.1 4.6 4.6 0 004.5-6l1.2-.2"/>
+  <path fill="#fff" stroke="#000" stroke-width=".4" d="M238.6 197.7c.3-.8 0-1.6-.6-1.8-.5-.2-1.2.3-1.5 1.1-.3.8 0 1.6.6 1.8.5.2 1.2-.3 1.5-1.1m-20.5-4c0-.8-.3-1.6-1-1.6-.5-.1-1 .5-1.2 1.4-.1.8.3 1.5.9 1.6.6 0 1.2-.6 1.3-1.4m-23.9 0c0-.8.4-1.6 1-1.6.6-.1 1.1.5 1.2 1.4.1.8-.3 1.5-.9 1.6-.6 0-1.1-.6-1.2-1.4m-20.6 4c-.2-.8 0-1.6.6-1.8.6-.2 1.2.3 1.5 1.1.3.8 0 1.6-.5 1.8-.6.2-1.3-.3-1.6-1.1"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M182.7 184a5.1 5.1 0 012.2 2.9s0-.3.6-.6 1-.3 1-.3l-.1 1.3-.3 2.2a7.4 7.4 0 01-.7 1.6 1.9 1.9 0 00-1.5-.4 1.8 1.8 0 00-1.2.9s-.7-.6-1.2-1.3l-1.1-2-.7-1.1s.5-.2 1.1 0c.6 0 .8.2.8.2a4.9 4.9 0 011-3.4m.4 9.8a1.8 1.8 0 01-.6-1c0-.5 0-.9.3-1.2 0 0-.9-.5-1.8-.7-.7-.2-2-.2-2.3-.2h-1l.2.5c.2.5.5.7.5.7a5 5 0 00-3 2 5.3 5.3 0 003.5 1l-.2.8v.6l1-.4c.3-.1 1.5-.5 2-1 .8-.4 1.5-1.1 1.5-1.1m2.7-.5a1.6 1.6 0 00.2-1.1 1.7 1.7 0 00-.6-1l1.4-1.3a10 10 0 012-.9l1.1-.4v.6a5.7 5.7 0 01-.2.8 5 5 0 013.4 1 5 5 0 01-2.9 2 6.4 6.4 0 00.7 1.2h-1c-.4 0-1.6 0-2.3-.2a11 11 0 01-1.8-.7"/>
+  <path fill="#ad1519" stroke="#000" stroke-width=".4" d="M182.2 192.4c0-1 1-2 2-2s2.2 1 2.2 2c0 1.1-1 2-2.1 2a2 2 0 01-2.1-2"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M206.1 180.8a5.7 5.7 0 011.9 3.7s.2-.3.9-.5c.7-.3 1.2-.2 1.2-.2l-.5 1.4-.8 2.4a8.2 8.2 0 01-1 1.7 2.1 2.1 0 00-1.7-.7c-.6 0-1.2.3-1.6.7 0 0-.6-.7-1-1.7l-.8-2.4-.5-1.4 1.2.2c.7.2.9.5.9.5 0-1.4.8-2.8 1.8-3.7"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M204.6 191.8a2 2 0 01-.5-1.2c0-.5.1-1 .4-1.3 0 0-.8-.7-1.8-1-.7-.4-2-.7-2.5-.7l-1.2-.2.2.6.4.9a5.9 5.9 0 00-3.7 1.7c1 .9 2.3 1.6 3.7 1.6l-.4 1-.2.6 1.2-.2c.4-.1 1.8-.4 2.5-.7 1-.4 1.9-1 1.9-1m3 0a1.9 1.9 0 00.1-2.6s.9-.7 1.8-1a8 8 0 012.5-.7l1.2-.3-.1.7-.4.9c1.4 0 2.7.8 3.6 1.7a5.9 5.9 0 01-3.6 1.6 6.9 6.9 0 00.5 1.6l-1.2-.2-2.5-.7c-1-.4-1.8-1-1.8-1m22-8a5.2 5.2 0 00-2.2 3l-.7-.6c-.6-.3-1-.3-1-.3l.2 1.3c0 .3 0 1.3.3 2.2.2 1 .6 1.6.6 1.6a2 2 0 011.5-.4c.6.1 1 .5 1.3.9l1.1-1.3c.6-.8 1-1.7 1.1-2l.7-1.1s-.4-.2-1 0c-.7 0-1 .2-1 .2a4.9 4.9 0 00-1-3.4m-.3 9.8c.3-.3.5-.6.6-1a1.6 1.6 0 00-.2-1.2s.8-.5 1.7-.7c.7-.2 2-.2 2.3-.2h1.1l-.3.5a6.2 6.2 0 01-.4.7 5 5 0 012.9 2 5.3 5.3 0 01-3.5 1l.2.8v.6l-1-.4c-.3-.1-1.4-.5-2-1-.8-.4-1.4-1.1-1.4-1.1m-2.8-.5a1.7 1.7 0 01-.2-1.1c0-.5.3-.8.6-1 0 0-.6-.8-1.4-1.3-.6-.4-1.7-.8-2-.9a171.4 171.4 0 01-1-.4v.6c0 .5.2.8.2.8a5.2 5.2 0 00-3.5 1c.7.9 1.7 1.7 3 2 0 0-.3.2-.5.7l-.3.5h1c.4 0 1.7 0 2.3-.2a11.1 11.1 0 001.8-.7"/>
+  <path fill="#ad1519" stroke="#000" stroke-width=".4" d="M226 192.4c0-1 1-2 2-2s2.1 1 2.1 2a2 2 0 01-2 2 2 2 0 01-2.1-2m23.2 4.4c-.4-.5-1.4-.4-2.2.2-.8.7-1 1.6-.5 2.2.5.5 1.5.4 2.3-.3.7-.6 1-1.6.5-2"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M246.3 198l.7-1c.7-.6 1.8-.7 2.3-.2l.1.2s1-2 2.3-2.6c1.3-.7 3.4-.5 3.4-.5a2.8 2.8 0 00-2.9-2.8 3 3 0 00-2.4 1l-.2-1s-1.3.3-1.9 1.8c-.6 1.5 0 3.6 0 3.6s-.3-.9-.7-1.5a8 8 0 00-2.4-1.6l-1.3-.7-.1.5a5 5 0 000 .8 7.9 7.9 0 00-3.7.5 4.7 4.7 0 002.5 2.2l-.8.7a4 4 0 00-.4.5l1.3.2 2.5.2a14.5 14.5 0 001.7-.2m-80.3 0c0-.4-.3-.7-.7-1-.7-.7-1.7-.8-2.2-.3l-.2.3s-1-2-2.3-2.7c-1.2-.7-3.3-.5-3.3-.5a2.8 2.8 0 012.8-2.8c1 0 1.9.4 2.4 1l.2-1s1.3.3 2 1.8c.5 1.5-.1 3.6-.1 3.6s.3-.9.8-1.5a8 8 0 012.4-1.6l1.3-.7v1.3a7.9 7.9 0 013.7.5 4.7 4.7 0 01-2.5 2.2l.8.7.4.5-1.2.2-2.6.2a14.7 14.7 0 01-1.7-.2"/>
+  <path fill="#ad1519" stroke="#000" stroke-width=".4" d="M163 196.8c.6-.5 1.6-.4 2.4.3.7.6 1 1.5.4 2-.5.6-1.5.5-2.2-.2-.8-.6-1-1.6-.5-2m41-6.3c0-1.1.9-2 2-2s2.1.9 2.1 2c0 1-1 2-2 2a2 2 0 01-2.1-2"/>
+  <path fill="#005bbf" stroke="#000" stroke-width=".3" d="M201.8 160.6c0-2.2 1.9-4 4.3-4s4.2 1.8 4.2 4-1.9 4-4.3 4a4.1 4.1 0 01-4.2-4"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".3" d="M205 149.3v2.2h-2.4v2.2h2.3v6.3H202l-.2.6c0 .6.1 1.1.3 1.6h7.9c.2-.5.3-1 .3-1.6l-.2-.6h-2.8v-6.3h2.3v-2.2h-2.3v-2.2h-2.4z"/>
+  <path fill="#ccc" d="M206.5 330.6a82 82 0 01-35.5-8.2 22.7 22.7 0 01-12.8-20.4v-32h96.4v32a22.7 22.7 0 01-12.8 20.4 81 81 0 01-35.3 8.2"/>
+  <path fill="none" stroke="#000" stroke-width=".5" d="M206.5 330.6a82 82 0 01-35.5-8.2 22.7 22.7 0 01-12.8-20.4v-32h96.4v32a22.7 22.7 0 01-12.8 20.4 81 81 0 01-35.3 8.2z"/>
+  <path fill="#ccc" d="M206.3 270h48.3v-53.5h-48.3V270z"/>
+  <path fill="none" stroke="#000" stroke-width=".5" d="M206.3 270h48.3v-53.5h-48.3V270z"/>
+  <path fill="#ad1519" d="M206.3 302c0 12.6-10.7 22.9-24 22.9s-24.2-10.3-24.2-23v-32h48.2v32"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".5" d="M168.6 320.9c1.5.8 3.6 2 5.8 2.6l-.1-54.7h-5.7v52z"/>
+  <path fill="#c8b100" stroke="#000" stroke-linejoin="round" stroke-width=".5" d="M158 301.6a24.4 24.4 0 005.5 15v-47.5h-5.4v32.5z"/>
+  <path fill="#c7b500" stroke="#000" stroke-width=".5" d="M179.4 324.7a26.6 26.6 0 005.6 0v-55.9h-5.6v56z"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".5" d="M190 323.5a19 19 0 005.8-2.5v-52.2H190l-.1 54.7z"/>
+  <path fill="#ad1519" d="M158.1 270h48.2v-53.5H158V270z"/>
+  <path fill="none" stroke="#000" stroke-width=".5" d="M158.1 270h48.2v-53.5H158V270z"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".5" d="M201 316c2.4-2 4.6-6.8 5.4-12.2l.1-35H201l.1 47.3z"/>
+  <path fill="none" stroke="#000" stroke-width=".5" d="M206.3 302c0 12.6-10.7 22.9-24 22.9s-24.2-10.3-24.2-23v-32h48.2v32"/>
+  <path fill="#ad1519" d="M254.6 270v32c0 12.6-10.8 22.9-24.1 22.9s-24.2-10.3-24.2-23v-32h48.3"/>
+  <path fill="none" stroke="#000" stroke-width=".5" d="M254.6 270v32c0 12.6-10.8 22.9-24.1 22.9s-24.2-10.3-24.2-23v-32h48.3"/>
+  <path fill="#c8b100" d="M215.1 294.1l.1.5c0 .6-.5 1-1.1 1a1 1 0 01-1.1-1v-.5h-1.5a2.5 2.5 0 001.8 2.9v3.9h1.6V297a2.6 2.6 0 001.7-1.6h4.4v-1.2h-6m21.8 0v1.2h-4a2.5 2.5 0 01-.3.6l4.6 5.2-1.2 1-4.6-5.3-.2.1v8.7h-1.6V297h-.2l-4.8 5.2-1.2-1 4.7-5.3a2.1 2.1 0 01-.2-.4h-4V294h13zm2.6 0v1.2h4.4c.3.8.9 1.4 1.7 1.6v3.9h1.6V297a2.5 2.5 0 001.8-2.4 2 2 0 000-.5h-1.6l.1.5c0 .6-.5 1-1 1-.7 0-1.2-.4-1.2-1a1 1 0 01.1-.5h-5.9m-6.7 22.1a15.6 15.6 0 003.7-1l.8 1.4a17.6 17.6 0 01-4.3 1.2 2.6 2.6 0 01-2.6 2 2.6 2.6 0 01-2.5-2 17.5 17.5 0 01-4.6-1.2l.8-1.4c1.3.5 2.6.9 4 1a2.5 2.5 0 011.5-1.3v-6.7h1.6v6.7c.7.2 1.3.7 1.6 1.4zm-11-2.2l-.8 1.4a16.6 16.6 0 01-3.6-3.1c-.9.2-1.8 0-2.5-.5a2.4 2.4 0 01-.3-3.5l.1-.1a15.3 15.3 0 01-1.3-4.8h1.7a13.1 13.1 0 001 4c.5 0 1 0 1.4.2l4.1-4.5 1.3 1-4.1 4.5c.5.9.5 2-.1 2.8a15.2 15.2 0 003.1 2.6zm-6-4.8c.3-.4 1-.5 1.5 0s.5 1 .1 1.4a1.2 1.2 0 01-1.6.1 1 1 0 010-1.5zm-2.2-4.5l-1.6-.3-.3-4.3 1.7-.6v2.5c0 1 0 1.8.2 2.7zm1.4-5.3l1.7.4v2.2c0-.8.3 2.1.3 2.1l-1.7.6a14 14 0 01-.3-2.7v-2.6zm5.6 13.7a15.7 15.7 0 004.8 2.6l.4-1.6a13.7 13.7 0 01-4-2l-1.2 1m-.8 1.4a17.4 17.4 0 004.8 2.6l-1.2 1.1a18.7 18.7 0 01-4-2l.4-1.7m2.2-9.4l1.6.7 3-3.3-1-1.4-3.6 4m-1.3-1l-1-1.4 3-3.3 1.6.7-3.6 4m18.1 9.9l.8 1.4a16.7 16.7 0 003.6-3.1c.9.2 1.8 0 2.5-.5a2.4 2.4 0 00.3-3.5l-.1-.1a15 15 0 001.3-4.8h-1.7a13.3 13.3 0 01-1 4 3 3 0 00-1.4.2l-4.1-4.5-1.3 1 4.1 4.5a2.4 2.4 0 00.1 2.8 15 15 0 01-3.1 2.6zm6-4.8a1.2 1.2 0 00-1.5 0 1 1 0 00-.1 1.4 1.2 1.2 0 001.6.1 1 1 0 000-1.5zm2.2-4.5l1.6-.3.3-4.3-1.7-.6v2.5c0 1 0 1.9-.2 2.8zm-1.4-5.3l-1.7.4v2.2c0-.8-.3 2.1-.3 2.1l1.7.6.3-2.7v-2.6m-5.6 13.7a15.7 15.7 0 01-4.8 2.6l-.4-1.6a13.7 13.7 0 004-2l1.2 1m.8 1.4a17.4 17.4 0 01-4.8 2.6l1.2 1.1a18.6 18.6 0 004-2l-.4-1.7m-2.2-9.4l-1.6.7-2.9-3.3 1-1.4 3.5 4m1.3-1l1-1.4-3-3.3-1.6.7 3.6 4m-20.1-8.7l.5 1.6h4.5l.5-1.6h-5.5m21.1 0l-.5 1.6h-4.5l-.5-1.6h5.5m-11.6 21.9c0-.6.5-1 1.1-1a1 1 0 011.1 1c0 .6-.5 1-1 1a1.1 1.1 0 01-1.2-1zm1.9-7.8l1.7-.4v-4.3l-1.7-.5v5.2m-1.6 0l-1.7-.4v-4.3l1.7-.5v5.2"/>
+  <path fill="#c8b100" d="M211.5 294.2c.2-1 1-1.6 1.8-2V287h1.6v5.3c.8.3 1.5.9 1.7 1.6h4.4v.3h-6a1.2 1.2 0 00-1-.6c-.4 0-.7.3-1 .6h-1.5m12.2 0v-.3h4.1a2.4 2.4 0 01.2-.3l-5-5.7 1.2-1 5 5.6.2-.1V285h1.6v7.3h.3l4.9-5.5 1.2 1-4.9 5.5.3.6h4v.3h-13zm21.6 0a1.1 1.1 0 011-.6c.5 0 .8.3 1 .6h1.6c-.2-1-.9-1.6-1.8-2V287h-1.6v5.3c-.8.3-1.4.8-1.7 1.6h-4.4v.3h6m-30.2-15l6 6.8 1.3-1-6.1-6.7.3-.6h4.4V276h-4.4a2.6 2.6 0 00-2.5-1.7 2.6 2.6 0 00-2.7 2.5 2.5 2.5 0 001.8 2.4v5.2h1.6v-5.2h.3zm32 0v5.3h-1.7v-5.2a2.5 2.5 0 01-.4-.2l-6 6.8-1.3-1 6.2-6.9-.1-.3h-4.5V276h4.5a2.6 2.6 0 012.4-1.7 2.6 2.6 0 012.7 2.5 2.5 2.5 0 01-1.9 2.4zm-16.1 0v3.3h-1.7v-3.2a2.6 2.6 0 01-1.7-1.6h-4V276h4a2.6 2.6 0 012.5-1.7c1.2 0 2.2.7 2.5 1.7h4v1.6h-4a2.5 2.5 0 01-1.6 1.6zm-17.8 4l-1.7.4v4.3l1.7.5v-5.2m1.6 0l1.7.4v4.3l-1.7.5v-5.2m30.6 0l-1.7.4v4.3l1.7.5v-5.2m1.6 0l1.7.4v4.3l-1.7.5v-5.2m-25.5.8l1.6-.7 2.9 3.3-1 1.4-3.5-4m-1.3 1l-1 1.4 3 3.3 1.6-.7-3.6-4m18.5-1.1l-1.6-.7-3 3.3 1 1.4 3.6-4m1.2 1l1 1.4-3 3.3-1.5-.7 3.5-4m-20.3 9l.5-1.6h4.5l.5 1.6h-5.5m-6.7-17c0-.6.5-1 1.2-1a1 1 0 011 1c0 .6-.4 1-1 1a1.1 1.1 0 01-1.2-1zm12.1.8l-.5 1.6h-4.5l-.5-1.6h5.5m0-1.6l-.5-1.6h-4.5l-.5 1.6h5.5m15.7 17.8l-.5-1.6h-4.5l-.5 1.6h5.5m4.4-17c0-.6.5-1 1.1-1a1 1 0 011.1 1c0 .6-.5 1-1 1a1.1 1.1 0 01-1.2-1zm-16.1 0c0-.6.5-1 1.1-1a1 1 0 011.1 1c0 .6-.5 1-1.1 1a1.1 1.1 0 01-1.1-1zm6.2.8l.5 1.6h4.6l.5-1.6h-5.6m0-1.6l.5-1.6h4.6l.5 1.6h-5.6m-5.9 5l-1.7.5v4.3l1.7.5V281m1.7 0l1.6.5v4.3l-1.6.5V281"/>
+  <path fill="none" stroke="#c8b100" stroke-width=".3" d="M232.7 316.3a15.6 15.6 0 003.7-1.1l.8 1.4a17.6 17.6 0 01-4.3 1.2 2.6 2.6 0 01-2.6 2 2.6 2.6 0 01-2.5-2 17.5 17.5 0 01-4.6-1.2l.8-1.4c1.3.5 2.6.9 4 1a2.5 2.5 0 011.5-1.3v-6.7h1.6v6.7c.7.2 1.3.7 1.6 1.4zm-4.7-20.4a2.3 2.3 0 01-.2-.5h-4V294h4a2.6 2.6 0 01.2-.4l-5-5.6 1.2-1 5 5.5a2.2 2.2 0 01.2 0V285h1.7v7.3h.2l4.9-5.5 1.2 1-4.9 5.5.3.6h4v1.5h-4c0 .2-.2.4-.3.5l4.7 5.3-1.3 1-4.6-5.3-.2.1v8.7h-1.6V297l-.2-.1-4.8 5.3-1.2-1 4.7-5.3m-12.8-16.7l6 6.8 1.3-1-6.1-6.7.3-.6h4.4V276h-4.4a2.6 2.6 0 00-2.5-1.7 2.6 2.6 0 00-2.6 2.5 2.5 2.5 0 001.7 2.4v5.2h1.6v-5.2h.3zm6.5 34.8l-.8 1.4a16.6 16.6 0 01-3.6-3.1c-.9.2-1.8 0-2.5-.5a2.4 2.4 0 01-.3-3.5l.1-.1a15.3 15.3 0 01-1.2-4.8h1.6a13.1 13.1 0 001 4c.5 0 1 0 1.4.2l4.1-4.5 1.3 1-4.1 4.5c.6.9.5 2-.1 2.8a15.2 15.2 0 003.1 2.6zm-8.4-13.1V297a2.5 2.5 0 01-1.8-2.4c0-1 .8-2 1.8-2.4V287h1.6v5.3c.8.2 1.5.8 1.7 1.6h4.4v1.5h-4.4a2.6 2.6 0 01-1.6 1.6v3.9h-1.7m2.3 8.3c.4-.4 1.1-.5 1.6 0s.5 1 .1 1.4a1.2 1.2 0 01-1.6.1 1 1 0 010-1.5zm-2-4.5l-1.7-.3-.3-4.3 1.7-.6v2.5c0 1 0 1.8.3 2.7zm1.4-5.3l1.6.4v2.2c0-.8.3 2.1.3 2.1l-1.7.6-.3-2.7v-2.6zm5.5 13.7a15.7 15.7 0 004.8 2.6l.4-1.6a13.7 13.7 0 01-4-2l-1.2 1m-.8 1.4a17.4 17.4 0 004.8 2.6l-1.2 1.1a18.7 18.7 0 01-4-2l.4-1.7"/>
+  <path fill="none" stroke="#c8b100" stroke-width=".3" d="M221.9 305.1l1.6.7 3-3.3-1-1.4-3.6 4m-1.3-1l-1-1.4 3-3.3 1.6.7-3.6 4m-7.6-9.5c0-.6.5-1 1-1 .7 0 1.2.5 1.2 1 0 .6-.5 1.1-1.1 1.1a1 1 0 01-1.1-1zm25.7 19.4l.8 1.4a16.7 16.7 0 003.6-3.1c.9.2 1.8 0 2.6-.5a2.4 2.4 0 00.2-3.5l-.1-.1a15 15 0 001.3-4.8h-1.7a13.3 13.3 0 01-1 4 3 3 0 00-1.4.2l-4.1-4.5-1.3 1 4.1 4.5a2.4 2.4 0 00.1 2.8 15 15 0 01-3 2.6zm8.4-13.1V297a2.5 2.5 0 001.8-2.4c0-1-.7-2-1.8-2.4V287h-1.6v5.3c-.8.2-1.4.8-1.7 1.6h-4.4v1.5h4.4c.3.8.9 1.3 1.7 1.6v3.9h1.6zm-2.3 8.3a1.2 1.2 0 00-1.6 0 1 1 0 00-.1 1.4 1.2 1.2 0 001.6.1 1 1 0 000-1.5zm2-4.5l1.7-.3.3-4.3-1.7-.6v2.5c0 1 0 1.8-.2 2.7zm-1.3-5.3l-1.7.4v2.2c0-.8-.3 2.1-.3 2.1l1.7.6.3-2.7v-2.6m1.6-20.1v5.2h-1.6v-5.2a2.3 2.3 0 01-.4-.2l-6 6.8-1.2-1 6-7v-.2h-4.5V276h4.4a2.6 2.6 0 012.5-1.7 2.6 2.6 0 012.6 2.5 2.5 2.5 0 01-1.8 2.4zm-16 0v3.2h-1.7v-3.2a2.6 2.6 0 01-1.7-1.6h-4V276h4c.4-1 1.3-1.7 2.5-1.7s2.2.7 2.5 1.7h4v1.6h-4a2.5 2.5 0 01-1.6 1.6zm8.8 33.8a15.7 15.7 0 01-4.8 2.6l-.4-1.6a13.7 13.7 0 004-2l1.2 1m.8 1.4a17.4 17.4 0 01-4.8 2.6l1.2 1.1a18.7 18.7 0 004-2l-.4-1.7m-27.4-31.4l-1.7.5v4.3l1.7.5v-5.2m1.7 0l1.6.4v4.3l-1.6.5V283m30.5 0l-1.7.5v4.3l1.7.5V283"/>
+  <path fill="none" stroke="#c8b100" stroke-width=".3" d="M247.1 283.1l1.7.5v4.3l-1.7.5V283m-8.6 22l-1.6.7-2.9-3.3 1-1.4 3.5 4m1.3-1l1-1.4-3-3.3-1.6.7 3.6 4m-18.2-20l1.6-.7 3 3.3-1 1.4-3.6-4m-1.3 1l-1 1.4 3 3.3 1.6-.7-3.6-4m18.5-1.1l-1.6-.7-3 3.3 1 1.4 3.6-4m1.2 1l1 1.4-3 3.2-1.5-.6 3.5-4m-20.3 9l.5-1.6h4.5l.5 1.6h-5.5m0 1.5l.5 1.6h4.5l.5-1.6h-5.5M213 277c0-.6.5-1 1.2-1 .6 0 1 .4 1 1s-.4 1-1 1a1 1 0 01-1.2-1zm12.1.8l-.5 1.6h-4.5l-.5-1.6h5.5m0-1.6l-.5-1.6h-4.5l-.5 1.6h5.5m20.1 18.5c0-.5.5-1 1.1-1 .6 0 1.1.5 1.1 1 0 .6-.5 1.1-1 1.1a1 1 0 01-1.2-1zm-4.4-.7l-.5-1.6h-4.5l-.5 1.6h5.5m0 1.5l-.5 1.6h-4.5l-.5-1.6h5.5m-11.6 21.9c0-.6.5-1 1.1-1 .6 0 1.1.4 1.1 1s-.5 1-1 1a1.1 1.1 0 01-1.2-1zm1.9-7.8l1.7-.4v-4.3l-1.7-.5v5.2m-1.6 0l-1.7-.4v-4.3l1.7-.5v5.2m15.7-32.6c0-.6.5-1 1.1-1a1 1 0 011.1 1c0 .6-.5 1-1 1a1.1 1.1 0 01-1.2-1zm-16.1 0c0-.6.5-1 1.1-1a1 1 0 011.1 1c0 .6-.5 1-1 1a1.1 1.1 0 01-1.2-1zm6.2.8l.5 1.6h4.6l.5-1.6h-5.5m0-1.6l.4-1.6h4.6l.5 1.6h-5.5m-6 5l-1.6.5v4.3l1.6.5V281m1.7 0l1.6.5v4.3l-1.6.5V281"/>
+  <path fill="#058e6e" d="M227.7 294.7a2.6 2.6 0 012.6-2.5 2.6 2.6 0 012.6 2.5 2.6 2.6 0 01-2.6 2.4c-1.4 0-2.6-1-2.6-2.4"/>
+  <path fill="#db4446" d="M230.9 229.7v-.6l.1-.3-2.3-.1a5.9 5.9 0 01-2.3-1.2c-.8-.7-1.1-1-1.6-1.2-1.3-.2-2.3.4-2.3.4s1 .4 1.7 1.3 1.5 1.3 1.8 1.4c.6.2 2.6 0 3.1.1l1.8.2"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M230.9 229.7v-.6l.1-.3-2.3-.1a5.9 5.9 0 01-2.3-1.2c-.8-.7-1.1-1-1.6-1.2-1.3-.2-2.3.4-2.3.4s1 .4 1.7 1.3 1.5 1.3 1.8 1.4c.6.2 2.6 0 3.1.1l1.8.2z"/>
+  <path fill="#ed72aa" stroke="#000" stroke-width=".4" d="M238.1 227.5v1.4c.2.6-.1 1.2 0 1.5 0 .4.1.6.3.9l.2.9-.7-.5-.6-.4v1c.1.2.3.8.6 1.1l1 1.3c.2.5.1 1.4.1 1.4s-.4-.7-.8-.8l-1.2-.7s.7.8.7 1.5c0 .8-.3 1.6-.3 1.6s-.3-.7-.8-1.1l-1-.9s.4 1.2.4 2v2.3l-.9-1-1-.7c0-.2.5.6.6 1.1 0 .5.3 2.3 1.8 4.5 1 1.3 2.3 3.6 5.3 2.9 3-.8 1.9-4.8 1.3-6.7a16.8 16.8 0 01-1-4.6c0-.8.6-2.9.5-3.3a8 8 0 01.2-3.1c.4-1.3.7-1.8.9-2.3.2-.6.4-.9.4-1.3l.1-1.3.7 1.3.1 1.5s.1-1 1-1.6c.8-.6 1.8-1.1 2-1.4.3-.3.3-.5.3-.5s0 1.8-.6 2.6l-1.7 2s.7-.3 1.2-.3h.9s-.6.4-1.4 1.6c-.8 1-.5 1.2-1 2.1-.6 1-1 1-1.7 1.5-1 .8-.5 4.2-.4 4.7.2.5 2 4.5 2 5.5s.2 3.2-1.5 4.6c-1.1 1-3 1-3.4 1.2-.4.3-1.2 1.1-1.2 2.8 0 1.7.6 2 1 2.4.6.5 1.2.2 1.3.6.2.3.2.5.5.7.2.2.3.4.2.8 0 .3-.8 1.1-1.1 1.7l-.8 2.4c0 .2-.1 1 .1 1.3 0 0 .9 1 .3 1.2-.4.2-.8-.2-1-.2l-.9.5c-.3-.1-.3-.3-.4-.8l-.1-.7c-.2 0-.3.2-.4.5 0 .2 0 .8-.3.8-.2 0-.5-.4-.8-.5-.2 0-.8-.2-.8-.4 0-.3.4-.9.7-1 .4 0 .8-.3.5-.5s-.5-.2-.7 0-.8 0-.7-.2v-.8c0-.2-.4-.5.1-.8.6-.3.8.2 1.4.1.6 0 .8-.3 1-.6.2-.3.2-1-.2-1.4-.4-.5-.7-.5-.9-.8l-.3-.9v2.2l-.7-.8c-.3-.3-.6-1.3-.6-1.3v1.3c0 .4.3.7.2.8-.1.1-.8-.7-1-.8a3.7 3.7 0 01-1-1l-.4-1.4a4.2 4.2 0 010-1.5l.4-1h-1.4c-.7 0-1.2-.3-1.5.2-.3.5-.2 1.5.2 2.8.3 1.2.5 1.9.4 2.1a3 3 0 01-.7.8h-.9a2.5 2.5 0 00-1.2-.3h-1.3l-1.1-.3c-.3.1-.8.3-.6.7.2.6-.2.7-.5.7l-.9-.2c-.4-.1-.9 0-.8-.4 0-.4.2-.4.4-.7.2-.3.2-.5 0-.5h-.6c-.2.2-.5.5-.8.4-.2-.1-.4-.4-.4-1s-.7-1.2 0-1.1c.5 0 1.3.4 1.4 0 .2-.3 0-.4-.2-.7s-.8-.4-.3-.7l.7-.5c.1-.2.4-.8.7-.6.6.2 0 .7.6 1.3.6.7 1 1 2 .8 1 0 1.3-.2 1.3-.5l-.1-1v-1s-.4.3-.5.6l-.4.8v-2a8 8 0 00-.2-.8l-.3.9-.1 1s-.7-.5-.5-1.5c.1-.7-.1-1.6.1-2 .2-.3.7-1.5 2-1.6h2.6l2-.3s-2.8-1.4-3.5-1.9a9.5 9.5 0 01-2-2l-.6-1.6s-.5 0-1 .3a5 5 0 00-1.2 1l-.7 1 .1-1.2v-.8s-.4 1.2-1 1.7l-1.4 1v-.8l.2-1s-.4.8-1.1 1c-.7 0-1.8 0-1.9.4 0 .5.2 1 0 1.4 0 .3-.4.5-.4.5l-.8-.4c-.4 0-.7.2-.7.2s-.3-.4-.2-.7c.1-.2.7-.6.5-.8l-.8.2c-.3.1-.8.3-.8-.2 0-.4.2-.7 0-1 0-.3 0-.5.2-.6l1.2-.1c0-.2-.2-.5-.8-.6-.6-.1-.8-.5-.5-.8.3-.2.3-.3.5-.6.1-.2.2-.7.7-.5.5.3.4.8 1 1a4 4 0 002-.2l1.5-1 1.5-1-1-.8c-.3-.3-.7-.9-1-1a8.3 8.3 0 00-1.8-.6 9 9 0 01-1.7-.5l.8-.3c.2-.2.6-.6.8-.6h.3-1.4c-.3-.1-1-.6-1.3-.6l-.8.1s.8-.4 1.4-.5l1-.1s-.9-.3-1.1-.6l-.6-1c-.2-.1-.3-.5-.6-.5l-1 .3c-.4 0-.6-.2-.6-.6l-.1-.5c-.2-.3-.6-.8-.2-1h1.4c0-.2-.5-.6-.8-.8-.4-.2-1-.5-.7-.8l.8-.5c.2-.3.3-1 .7-.7.4.2.8 1.2 1.1 1.1.3 0 .3-.8.3-1 0-.4 0-1 .2-.9.3 0 .5.4 1 .5.4 0 1-.1 1 .2 0 .3-.3.7-.6 1-.3.3-.4 1-.3 1.4.2.5.7 1.2 1.2 1.4.4.3 1.2.5 1.7.9.5.3 1.7 1.2 2.1 1.3l.8.4s.5-.2 1.1-.2c.7 0 2.1 0 2.6-.2.6-.2 1.3-.6 1-1-.1-.6-1.3-1-1.2-1.4 0-.4.5-.4 1.2-.4.8 0 1.8.1 2-1 .2-1 .2-1.5-.8-1.8-1-.2-1.8-.2-2-1-.2-.7-.4-.9-.2-1.1.3-.2.6-.3 1.4-.4.8 0 1.6 0 1.9-.2.2-.2.3-.7.6-.9.3-.2 1.4-.4 1.4-.4s1.4.7 2.7 1.7a15 15 0 012.2 2.1"/>
+  <path d="M228.1 226.8l-.2-.6v-.3s.8 0 .7.3c0 .2-.2.2-.3.3l-.2.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M228.1 226.8l-.2-.6v-.3s.8 0 .7.3c0 .2-.2.2-.3.3l-.2.3z"/>
+  <path d="M232 225.4v-.4s.7 0 1 .3c.5.4.9 1 .9 1l-.8-.4h-.5l-.3-.1v-.3h-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M232 225.4v-.4s.7 0 1 .3c.5.4.9 1 .9 1l-.8-.4h-.5l-.3-.1v-.3h-.3z"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M237.3 231.3l-.4-.7a8 8 0 01-.3-.4"/>
+  <path fill="#db4446" d="M217.4 226.6s.5.4.8.4h.8s.2-.5.1-.8c-.2-1.2-1.2-1.4-1.2-1.4s.3.7.1 1a2 2 0 01-.6.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M217.4 226.6s.5.4.8.4h.8s.2-.5.1-.8c-.2-1.2-1.2-1.4-1.2-1.4s.3.7.1 1a2 2 0 01-.6.8z"/>
+  <path fill="#db4446" d="M215.2 227.6s-.4-.7-1.3-.6c-.8 0-1.4.8-1.4.8h1.2c.3.3.4 1 .4 1l.7-.6a7.2 7.2 0 00.4-.6"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M215.2 227.6s-.4-.7-1.3-.6c-.8 0-1.4.8-1.4.8h1.2c.3.3.4 1 .4 1l.7-.6a7.2 7.2 0 00.4-.6z"/>
+  <path fill="#db4446" d="M214.2 230.6s-.8.1-1.2.6c-.4.5-.3 1.3-.3 1.3s.4-.5.9-.5l1 .2-.1-.8-.3-.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M214.2 230.6s-.8.1-1.2.6c-.4.5-.3 1.3-.3 1.3s.4-.5.9-.5l1 .2-.1-.8-.3-.8z"/>
+  <path d="M228.2 230.5l.3-.5.3.5h-.7"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M228.2 230.5l.3-.5.3.5h-.7"/>
+  <path d="M229 230.5l.3-.5.4.5h-.8"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M229 230.5l.3-.5.4.5h-.8"/>
+  <path d="M228.6 227.3l.8.3-.7.4-.1-.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M228.6 227.3l.8.3-.7.4-.1-.6"/>
+  <path d="M229.5 227.6l.7.2-.5.4-.2-.6"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M229.5 227.6l.7.2-.5.4-.2-.6"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M224.2 233.7s-.7.2-1 .6c-.4.5-.3 1-.3 1s.6-.5 1.5-.3l1.2.3 1.3-.3s-.7.8-.7 1.3l.2 1.1c0 .7-.6 1.6-.6 1.6l1-.3a4.6 4.6 0 001.7-.8l.9-1s-.2 1 0 1.4l.2 1.6.8-.6c.2-.1.7-.4.9-.7l.3-1s0 .8.4 1.3l.6 1.6s.3-.8.6-1.1c.3-.4.7-.8.7-1a4.3 4.3 0 00-.1-.9l.4.8m-11 .6s.5-.8 1-1l1.1-.8.9-.4m1 5l1.3-.8a4 4 0 001-1"/>
+  <path fill="#db4446" d="M216.6 240.4s-.4-.5-1.1-.3c-.7 0-1.2.9-1.2.9s.6-.2 1-.1.6.4.6.4l.4-.4.3-.6"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M216.6 240.4s-.4-.5-1.1-.3c-.7 0-1.2.9-1.2.9s.6-.2 1-.1.6.4.6.4l.4-.4.3-.6z"/>
+  <path fill="#db4446" d="M215.8 243.2s-.6 0-1.1.3c-.5.4-.5 1.2-.5 1.2s.4-.4.8-.3l.9.2v-.6c.2-.4-.1-.8-.1-.8"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M215.8 243.2s-.6 0-1.1.3c-.5.4-.5 1.2-.5 1.2s.4-.4.8-.3l.9.2v-.6c.2-.4-.1-.8-.1-.8z"/>
+  <path fill="#db4446" d="M217.2 245.8s0 .8.3 1.3c.4.5 1.1.5 1.1.5l-.3-.7c0-.4.3-.8.3-.8s-.3-.3-.7-.3h-.7"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M217.2 245.8s0 .8.3 1.3c.4.5 1.1.5 1.1.5l-.3-.7c0-.4.3-.8.3-.8s-.3-.3-.7-.3h-.7zm16 1.3s2 1.2 1.9 2.2c0 1-1 2.3-1 2.3"/>
+  <path fill="#db4446" d="M224.2 252.6s-.4-.6-1.1-.6c-.7 0-1.4.7-1.4.7s.8-.1 1 .2l.5.6.5-.3.5-.6"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M224.2 252.6s-.4-.6-1.1-.6c-.7 0-1.4.7-1.4.7s.8-.1 1 .2l.5.6.5-.3.5-.6z"/>
+  <path fill="#db4446" d="M222.2 255.3s-1-.1-1.4.3c-.4.5-.4 1.3-.4 1.3s.6-.6 1-.5c.5 0 1 .3 1 .3v-.7l-.3-.7"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M222.2 255.3s-1-.1-1.4.3c-.4.5-.4 1.3-.4 1.3s.6-.6 1-.5c.5 0 1 .3 1 .3v-.7l-.3-.7z"/>
+  <path fill="#db4446" d="M224 258.1s-.3.7 0 1.1c.3.5 1 .8 1 .8s-.3-.4-.2-.8c.1-.3.7-.8.7-.8l-1.4-.2"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M224 258.1s-.3.7 0 1.1c.3.5 1 .8 1 .8s-.3-.4-.2-.8c.1-.3.7-.8.7-.8l-1.4-.2z"/>
+  <path fill="#db4446" d="M236 259.3s-.8-.2-1.2 0c-.5.3-.8 1.4-.8 1.4s.7-.6 1.2-.5c.5 0 1 .3 1 .3v-.8l-.2-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M236 259.3s-.8-.2-1.2 0c-.5.3-.8 1.4-.8 1.4s.7-.6 1.2-.5c.5 0 1 .3 1 .3v-.8l-.2-.4z"/>
+  <path fill="#db4446" d="M236.4 262.2s-.6.6-.4 1.1l.6 1s0-.7.2-1l1-.3-.7-.5a15.8 15.8 0 01-.7-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M236.4 262.2s-.6.6-.4 1.1l.6 1s0-.7.2-1l1-.3-.7-.5a15.8 15.8 0 01-.7-.3z"/>
+  <path fill="#db4446" d="M239.4 263s-.3.8.2 1.3c.6.5 1 .5 1 .5s-.3-.7-.2-1.1c.1-.5.5-.7.5-.7l-.8-.2-.7.3"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M239.4 263s-.3.8.2 1.3c.6.5 1 .5 1 .5s-.3-.7-.2-1.1c.1-.5.5-.7.5-.7l-.8-.2-.7.3z"/>
+  <path fill="#ffd691" stroke="#000" stroke-width=".5" d="M208.8 316.4c2 .6 3 2 3 3.8 0 2.3-2.2 4-5 4-3 0-5.3-1.7-5.3-4 0-1.7 1-3.6 3-3.8l-.2-.4-.7-.7h1.2l.8.5.5-.7c.3-.4.6-.5.6-.5l.6.6.3.5.7-.4.8-.3s0 .4-.2.7l-.1.7"/>
+  <path fill="#058e6e" stroke="#000" stroke-width=".5" d="M206.3 326.7s-3.8-2.6-5.5-3c-2-.4-4.5 0-5.5 0 0 0 1.2.8 1.8 1.4.5.5 2.3 1.5 3.3 1.8 3 .8 6-.2 6-.2m1 .2s2.4-2.5 5-2.9c3-.4 5 .3 6.2.6l-1.5.8c-.5.3-2 1.5-4 1.6-2 0-4.4-.3-4.8-.2l-.9.1"/>
+  <path fill="#ad1519" stroke="#000" stroke-width=".5" d="M206.7 323.8a4.8 4.8 0 010-7.1 4.8 4.8 0 011.5 3.5 4.9 4.9 0 01-1.5 3.6"/>
+  <path fill="#058e6e" stroke="#000" stroke-width=".5" d="M205.7 329s.6-1.5.6-2.7l-.1-2.1h.8s.3 1.1.3 2l-.1 2.4-.7.1-.8.3"/>
+  <path fill="#fff" d="M254 190.7c0-.5.5-1 1-1 .6 0 1.1.5 1.1 1 0 .6-.5 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M254 190.7c0-.5.5-1 1-1 .6 0 1.1.5 1.1 1 0 .6-.5 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M255.4 188.2c0-.6.5-1 1.1-1 .6 0 1 .4 1 1s-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M255.4 188.2c0-.6.5-1 1.1-1 .6 0 1 .4 1 1s-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M256.4 185.2c0-.5.5-1 1-1 .6 0 1.1.5 1.1 1s-.5 1-1 1a1 1 0 01-1.1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M256.4 185.2c0-.5.5-1 1-1 .6 0 1.1.5 1.1 1s-.5 1-1 1a1 1 0 01-1.1-1z"/>
+  <path fill="#fff" d="M256.5 182c0-.5.5-1 1-1 .6 0 1.1.5 1.1 1 0 .6-.5 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M256.5 182c0-.5.5-1 1-1 .6 0 1.1.5 1.1 1 0 .6-.5 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M255.7 179c0-.6.5-1 1-1 .7 0 1.2.4 1.2 1s-.5 1-1.1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M255.7 179c0-.6.5-1 1-1 .7 0 1.2.4 1.2 1s-.5 1-1.1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M254.1 176.1c0-.5.5-1 1-1 .7 0 1.1.5 1.1 1s-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M254.1 176.1c0-.5.5-1 1-1 .7 0 1.1.5 1.1 1s-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M252 173.8c0-.6.4-1 1-1s1 .4 1 1-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M252 173.8c0-.6.4-1 1-1s1 .4 1 1-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M249.4 171.8c0-.5.5-1 1.1-1a1 1 0 010 2c-.6 0-1-.4-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M249.4 171.8c0-.5.5-1 1.1-1a1 1 0 010 2c-.6 0-1-.4-1-1z"/>
+  <path fill="#fff" d="M246.5 170.3c0-.6.4-1 1-1s1 .4 1 1-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M246.5 170.3c0-.6.4-1 1-1s1 .4 1 1-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M243.3 169.1c0-.5.5-1 1.1-1a1 1 0 010 2 1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M243.3 169.1c0-.5.5-1 1.1-1a1 1 0 010 2 1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M239.9 168.5c0-.5.4-1 1-1s1 .5 1 1-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M239.9 168.5c0-.5.4-1 1-1s1 .5 1 1-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M236.6 168.3c0-.5.4-1 1-1s1 .5 1 1-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M236.6 168.3c0-.5.4-1 1-1s1 .5 1 1-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M233.3 168.5c0-.6.5-1 1-1 .7 0 1.1.4 1.1 1s-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M233.3 168.5c0-.6.5-1 1-1 .7 0 1.1.4 1.1 1s-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M230.1 168.5c0-.6.5-1 1-1 .6 0 1.1.4 1.1 1s-.5 1-1 1a1 1 0 01-1.1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M230.1 168.5c0-.6.5-1 1-1 .6 0 1.1.4 1.1 1s-.5 1-1 1a1 1 0 01-1.1-1z"/>
+  <path fill="#fff" stroke="#000" stroke-width=".4" d="M231.7 171.2c0-.5.5-1 1-1 .7 0 1.1.5 1.1 1s-.4 1-1 1a1 1 0 01-1-1m.6 3.1c0-.6.4-1 1-1s1 .4 1 1c0 .5-.4 1-1 1a1 1 0 01-1-1m0 3c0-.5.6-1 1.1-1a1 1 0 010 2 1 1 0 01-1-1m-1 2.8c0-.5.5-1 1-1 .7 0 1.1.5 1.1 1 0 .6-.4 1-1 1a1 1 0 01-1-1m-1.9 2.6c0-.5.5-1 1-1 .7 0 1.2.5 1.2 1s-.5 1-1.1 1c-.6 0-1-.4-1-1"/>
+  <path fill="#fff" d="M227.6 166.5c0-.5.5-1 1.1-1a1 1 0 010 2 1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M227.6 166.5c0-.5.5-1 1.1-1a1 1 0 010 2 1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M224.8 165c0-.6.4-1 1-1s1 .4 1 1-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M224.8 165c0-.6.4-1 1-1s1 .4 1 1-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M221.6 164c0-.6.5-1 1-1 .6 0 1.1.4 1.1 1 0 .5-.5 1-1 1-.6 0-1.1-.5-1.1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M221.6 164c0-.6.5-1 1-1 .6 0 1.1.4 1.1 1 0 .5-.5 1-1 1-.6 0-1.1-.5-1.1-1z"/>
+  <path fill="#fff" d="M218.3 163.4c0-.5.5-1 1-1 .6 0 1.1.5 1.1 1s-.5 1-1 1a1 1 0 01-1.1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M218.3 163.4c0-.5.5-1 1-1 .6 0 1.1.5 1.1 1s-.5 1-1 1a1 1 0 01-1.1-1z"/>
+  <path fill="#fff" d="M215 163.5c0-.6.5-1 1.1-1 .6 0 1 .4 1 1 0 .5-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M215 163.5c0-.6.5-1 1.1-1 .6 0 1 .4 1 1 0 .5-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M211.7 164c0-.5.5-1 1-1 .7 0 1.1.5 1.1 1s-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M211.7 164c0-.5.5-1 1-1 .7 0 1.1.5 1.1 1s-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M208.6 165.1c0-.5.5-1 1-1 .6 0 1.1.5 1.1 1s-.5 1-1 1a1 1 0 01-1.1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M208.6 165.1c0-.5.5-1 1-1 .6 0 1.1.5 1.1 1s-.5 1-1 1a1 1 0 01-1.1-1z"/>
+  <path fill="#fff" d="M156 190.7c0-.5.4-1 1-1s1 .5 1 1c0 .6-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M156 190.7c0-.5.4-1 1-1s1 .5 1 1c0 .6-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M154.5 188.2c0-.6.5-1 1-1 .6 0 1 .4 1 1s-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M154.5 188.2c0-.6.5-1 1-1 .6 0 1 .4 1 1s-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M153.5 185.2c0-.5.5-1 1-1 .7 0 1.1.5 1.1 1s-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M153.5 185.2c0-.5.5-1 1-1 .7 0 1.1.5 1.1 1s-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M153.4 182c0-.5.5-1 1-1 .6 0 1.1.5 1.1 1 0 .6-.5 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M153.4 182c0-.5.5-1 1-1 .6 0 1.1.5 1.1 1 0 .6-.5 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M154.2 179c0-.6.5-1 1-1 .6 0 1 .4 1 1s-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M154.2 179c0-.6.5-1 1-1 .6 0 1 .4 1 1s-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M155.8 176.1c0-.5.5-1 1-1 .6 0 1.1.5 1.1 1s-.5 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M155.8 176.1c0-.5.5-1 1-1 .6 0 1.1.5 1.1 1s-.5 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M158 173.8c0-.6.4-1 1-1s1 .4 1 1-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M158 173.8c0-.6.4-1 1-1s1 .4 1 1-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M160.5 171.8c0-.5.4-1 1-1s1 .5 1 1-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M160.5 171.8c0-.5.4-1 1-1s1 .5 1 1-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M163.5 170.3c0-.6.4-1 1-1s1 .4 1 1-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M163.5 170.3c0-.6.4-1 1-1s1 .4 1 1-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M166.6 169.1c0-.5.5-1 1-1a1 1 0 010 2 1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M166.6 169.1c0-.5.5-1 1-1a1 1 0 010 2 1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M170 168.5c0-.5.5-1 1.1-1a1 1 0 010 2c-.6 0-1-.4-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M170 168.5c0-.5.5-1 1.1-1a1 1 0 010 2c-.6 0-1-.4-1-1z"/>
+  <path fill="#fff" d="M173.4 168.3c0-.5.4-1 1-1s1 .5 1 1-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M173.4 168.3c0-.5.4-1 1-1s1 .5 1 1-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M176.6 168.5c0-.6.5-1 1-1 .6 0 1.1.4 1.1 1s-.5 1-1 1a1 1 0 01-1.1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M176.6 168.5c0-.6.5-1 1-1 .6 0 1.1.4 1.1 1s-.5 1-1 1a1 1 0 01-1.1-1z"/>
+  <path fill="#fff" d="M179.8 168.5c0-.6.5-1 1-1 .7 0 1.2.4 1.2 1s-.5 1-1.1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M179.8 168.5c0-.6.5-1 1-1 .7 0 1.2.4 1.2 1s-.5 1-1.1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" stroke="#000" stroke-width=".4" d="M178.2 171.2c0-.5.5-1 1-1 .7 0 1.1.5 1.1 1s-.4 1-1 1a1 1 0 01-1-1m-.7 3.1c0-.6.4-1 1-1s1 .4 1 1c0 .5-.4 1-1 1a1 1 0 01-1-1m-.2 3c0-.5.5-1 1-1 .7 0 1.1.5 1.1 1s-.4 1-1 1a1 1 0 01-1-1m.9 2.8c0-.5.5-1 1-1 .6 0 1.1.5 1.1 1 0 .6-.5 1-1 1a1 1 0 01-1.1-1m1.8 2.6c0-.5.5-1 1-1a1 1 0 010 2 1 1 0 01-1-1"/>
+  <path fill="#fff" d="M182.3 166.5c0-.5.5-1 1-1a1 1 0 010 2 1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M182.3 166.5c0-.5.5-1 1-1a1 1 0 010 2 1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M185.2 165c0-.6.4-1 1-1s1 .4 1 1-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M185.2 165c0-.6.4-1 1-1s1 .4 1 1-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M188.3 164c0-.6.5-1 1-1 .7 0 1.1.4 1.1 1 0 .5-.4 1-1 1s-1-.5-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M188.3 164c0-.6.5-1 1-1 .7 0 1.1.4 1.1 1 0 .5-.4 1-1 1s-1-.5-1-1z"/>
+  <path fill="#fff" d="M191.6 163.4c0-.5.5-1 1-1 .7 0 1.1.5 1.1 1s-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M191.6 163.4c0-.5.5-1 1-1 .7 0 1.1.5 1.1 1s-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M194.9 163.5c0-.6.4-1 1-1s1 .4 1 1c0 .5-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M194.9 163.5c0-.6.4-1 1-1s1 .4 1 1c0 .5-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M198.2 164c0-.5.5-1 1-1 .7 0 1.1.5 1.1 1s-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M198.2 164c0-.5.5-1 1-1 .7 0 1.1.5 1.1 1s-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#fff" d="M201.3 165.1c0-.5.5-1 1-1 .7 0 1.1.5 1.1 1s-.4 1-1 1a1 1 0 01-1-1"/>
+  <path fill="none" stroke="#000" stroke-width=".4" d="M201.3 165.1c0-.5.5-1 1-1 .7 0 1.1.5 1.1 1s-.4 1-1 1a1 1 0 01-1-1z"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M174.7 228.9h-1v-1h-1.5v3.6h1.6v2.5h-3.4v7h1.8v14.3h-3.5v7.3h27.2v-7.3h-3.5V241h1.8v-7h-3.4v-2.5h1.6V228h-1.6v.9h-.8v-1h-1.6v1h-1.1v-1h-1.6v3.6h1.6v2.5H184v-7.8h1.7v-3.5H184v.9h-1v-1h-1.5v1h-.9v-1H179v3.6h1.7v7.8h-3.3v-2.5h1.6V228h-1.6v.9h-.9v-1h-1.8v1zm-6 33.7H196m-27.3-1.8H196m-27.3-1.8H196m-27.3-1.7H196m-27.3-2H196m-23.8-1.6h20.2m-20.2-1.8h20.2m-20.2-2h20.2m-20.2-1.7h20.2m-20.2-1.8h20.2m-20.2-1.8h20.2m-20.2-1.7h20.2m-22-1.8h23.8m-23.8-1.8h23.8m-23.8-1.8h23.8m-23.8-1.8h23.8m-20.4-1.7h17m-10.2-1.8h3.4m-3.4-1.8h3.4m-3.4-1.8h3.4m-3.4-1.7h3.4m-5.1-2.2h6.8m-12 7.5h3.6m-5-2.2h6.6m-6.7 32.6v-1.8m0-1.8v-1.7m-1.8 1.7v1.8m3.4 0V259m1.7 3.6v-1.8m0-1.8v-1.7m0-2v-1.6m0-1.8v-2m-1.7 7.4v-2m-3.4 2v-2m7 0v2m1.5-2v-1.6m-5.1-1.8v1.8m3.5-1.8v1.8m3.3-1.8v1.8M179 252v-2m1.7-1.7v1.7m0-5.3v1.8m-1.7-3.6v1.8m1.7-3.5v1.7m-3.3-1.7v1.7m-3.5-1.7v1.7m-1.6-3.5v1.8m3.3-1.8v1.8m3.4-1.8v1.8m1.7-3.6v1.8m-3.3-1.8v1.8m-3.5-1.8v1.8m-1.6-3.6v1.8m6.7-1.8v1.8m-3.4-5.3v1.8m15.3-1.8h-3.5m5-2.2h-6.6m6.7 32.6v-1.8m0-1.8v-1.7m1.8 1.7v1.8m-3.4 0V259m-1.7 3.6v-1.8m0-1.8v-1.7m0-2v-1.6m0-1.8v-2m1.7 7.4v-2m3.4 2v-2m-7 0v2m-1.5-2v-1.6m5.1-1.8v1.8m-3.5-1.8v1.8m-3.3-1.8v1.8m1.7-1.8v-2m-1.7-1.7v1.7m0-5.3v1.8m1.7-3.6v1.8m-1.7-3.5v1.7m3.3-1.7v1.7m3.5-1.7v1.7m1.6-3.5v1.8m-3.3-1.8v1.8m-3.4-1.8v1.8m-1.7-3.6v1.8m3.3-1.8v1.8m3.5-1.8v1.8m1.6-3.6v1.8m-6.7-1.8v1.8m3.4-5.3v1.8m-7 18v-2m0-5.4v-1.8m0 5.4v-1.8m0-5.3v-1.8m0-1.8v-1.7m0-3.6v-1.8m0-1.7v-1.8m-8.3 4.6h3.5m3.3-5.3h3.4m3.3 5.3h3.5"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M186.8 262.6v-4.7c0-.8-.4-3.5-4.6-3.5-4 0-4.4 2.7-4.4 3.5v4.7h9z"/>
+  <path fill="#c8b100" stroke="#000" stroke-width=".4" d="M179.3 258.2l-2.2-.3c0-.9.2-2.2.9-2.6l2 1.5c-.3.2-.7 1-.7 1.4zm6 0l2.2-.3c0-.9-.2-2.2-.9-2.6l-2 1.5c.3.2.7 1 .7 1.4zm-2.2-2.3l1-2a5.3 5.3 0 00-2-.4l-1.7.4 1.1 2h1.6zm-4.2-5.5v-4.9c0-1.3-1-2.4-2.5-2.4s-2.4 1-2.4 2.4v4.9h4.9zm6.8 0v-4.9c0-1.3 1-2.4 2.5-2.4s2.4 1 2.4 2.4v4.9h-4.9zm-1.7-12l.4-4.4h-4.2l.2 4.4h3.6zm3.3 0l-.4-4.4h4.4l-.5 4.4h-3.5zm-10 0l.2-4.4h-4.2l.5 4.4h3.5z"/>
+  <path fill="#0039f0" d="M185.3 262.6v-4c0-.7-.5-2.7-3.1-2.7-2.4 0-2.9 2-2.9 2.7v4h6zm-6.9-12.7v-4.2c0-1-.6-2.2-2-2.2s-2 1.1-2 2.2v4.3h4zm7.8 0v-4.2c0-1 .7-2.2 2-2.2s2 1.1 2 2.2v4.3h-4z"/>
+  <path fill="#ad1519" d="M190.8 269.8c0-9.7 7-17.6 15.6-17.6s15.6 7.9 15.6 17.6-7 17.5-15.6 17.5-15.6-7.8-15.6-17.5"/>
+  <path fill="none" stroke="#000" stroke-width=".6" d="M190.8 269.8c0-9.7 7-17.6 15.6-17.6s15.6 7.9 15.6 17.6-7 17.5-15.6 17.5-15.6-7.8-15.6-17.5z"/>
+  <path fill="#005bbf" d="M195.4 269.7c0-7 5-12.8 11-12.8s11 5.7 11 12.8c0 7.2-5 13-11 13s-11-5.8-11-13"/>
+  <path fill="none" stroke="#000" stroke-width=".6" d="M195.4 269.7c0-7 5-12.8 11-12.8s11 5.7 11 12.8c0 7.2-5 13-11 13s-11-5.8-11-13z"/>
+  <path fill="#c8b100" d="M201.2 260.9s-1.3 1.4-1.3 2.7a6 6 0 00.6 2.4c-.2-.5-.8-.8-1.4-.8-.8 0-1.4.6-1.4 1.3l.2.8.5.9c.1-.3.5-.5 1-.5s1 .4 1 1a.9.9 0 010 .2h-1.2v1h1l-.8 1.5 1-.4.8.9.8-.9 1 .4-.7-1.5h1v-1h-1.1a.9.9 0 010-.3 1 1 0 011-1c.4 0 .7.3 1 .6l.4-1 .2-.7a1.4 1.4 0 00-1.4-1.3c-.7 0-1.2.3-1.4.9 0 0 .6-1.2.6-2.5s-1.4-2.7-1.4-2.7"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".3" d="M201.2 260.9s-1.3 1.4-1.3 2.7a6 6 0 00.6 2.4c-.2-.5-.8-.8-1.4-.8-.8 0-1.4.6-1.4 1.3l.2.8.5.9c.1-.3.5-.5 1-.5s1 .4 1 1a.9.9 0 010 .2h-1.2v1h1l-.8 1.5 1-.4.8.9.8-.9 1 .4-.7-1.5h1v-1h-1.1a.9.9 0 010-.3 1 1 0 011-1c.4 0 .7.3 1 .6l.4-1 .2-.7a1.4 1.4 0 00-1.4-1.3c-.7 0-1.2.3-1.4.9 0 0 .6-1.2.6-2.5s-1.4-2.7-1.4-2.7z"/>
+  <path fill="#c8b100" d="M199.2 269.9h4.1v-1h-4.1v1z"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M199.2 269.9h4.1v-1h-4.1v1z"/>
+  <path fill="#c8b100" d="M211.4 260.9s-1.3 1.4-1.3 2.7c0 1.3.6 2.4.6 2.4-.2-.5-.7-.8-1.4-.8-.8 0-1.4.6-1.4 1.3l.2.8.5.9c.2-.3.5-.5 1-.5a1 1 0 011 1 .9.9 0 010 .2h-1.2v1h1l-.8 1.5 1-.4.8.9.8-.9 1 .4-.7-1.5h1v-1h-1.1a.8.8 0 010-.3 1 1 0 011-1c.4 0 .8.3 1 .6l.4-1 .2-.7a1.4 1.4 0 00-1.4-1.3c-.6 0-1.2.3-1.4.9 0 0 .6-1.2.6-2.5s-1.4-2.7-1.4-2.7"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".3" d="M211.4 260.9s-1.3 1.4-1.3 2.7c0 1.3.6 2.4.6 2.4-.2-.5-.7-.8-1.4-.8-.8 0-1.4.6-1.4 1.3l.2.8.5.9c.2-.3.5-.5 1-.5a1 1 0 011 1 .9.9 0 010 .2h-1.2v1h1l-.8 1.5 1-.4.8.9.8-.9 1 .4-.7-1.5h1v-1h-1.1a.8.8 0 010-.3 1 1 0 011-1c.4 0 .8.3 1 .6l.4-1 .2-.7a1.4 1.4 0 00-1.4-1.3c-.6 0-1.2.3-1.4.9 0 0 .6-1.2.6-2.5s-1.4-2.7-1.4-2.7z"/>
+  <path fill="#c8b100" d="M209.4 269.9h4.1v-1h-4.1v1z"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M209.4 269.9h4.1v-1h-4.1v1z"/>
+  <path fill="#c8b100" d="M206.3 269.6s-1.3 1.5-1.3 2.8.6 2.4.6 2.4c-.2-.5-.7-.9-1.4-.9-.8 0-1.4.6-1.4 1.4l.2.7.5 1c.1-.4.5-.6 1-.6a1 1 0 011 1 .9.9 0 010 .3h-1.2v1h1l-.8 1.5 1-.4.8.9.8-1 1 .5-.7-1.5h1v-1h-1.1a.9.9 0 010-.3 1 1 0 011-1c.4 0 .7.2.9.6l.5-1 .2-.7a1.4 1.4 0 00-1.4-1.4c-.7 0-1.2.4-1.4 1 0 0 .6-1.2.6-2.5s-1.4-2.7-1.4-2.7"/>
+  <path fill="none" stroke="#000" stroke-linejoin="round" stroke-width=".3" d="M206.3 269.6s-1.3 1.5-1.3 2.8.6 2.4.6 2.4c-.2-.5-.7-.9-1.4-.9-.8 0-1.4.6-1.4 1.4l.2.7.5 1c.1-.4.5-.6 1-.6a1 1 0 011 1 .9.9 0 010 .3h-1.2v1h1l-.8 1.5 1-.4.8.9.8-1 1 .5-.7-1.5h1v-1h-1.1a.9.9 0 010-.3 1 1 0 011-1c.4 0 .7.2.9.6l.5-1 .2-.7a1.4 1.4 0 00-1.4-1.4c-.7 0-1.2.4-1.4 1 0 0 .6-1.2.6-2.5s-1.4-2.7-1.4-2.7z"/>
+  <path fill="#c8b100" d="M204.3 278.6h4.1v-1h-4.1v1z"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M204.3 278.6h4.1v-1h-4.1v1z"/>
+  <path fill="#c8b100" d="M237.6 223.4h-.3a1.5 1.5 0 01-.3.4c-.2.2-.6.2-.8 0a.5.5 0 01-.1-.4.5.5 0 01-.5 0c-.3-.1-.3-.5-.1-.7v-.5h-.3l-.1.2c-.2.3-.5.3-.7.2a.6.6 0 010-.2h-.3c-.5.2-.7-1-.7-1.2l-.2.2s.2.7.1 1.2c0 .6-.3 1.2-.3 1.2a9 9 0 012.9 1.6 9 9 0 012.2 2.3l1.2-.5c.6-.2 1.3-.2 1.3-.2l.2-.2c-.3 0-1.5.1-1.5-.4v-.2a.7.7 0 01-.2 0c-.2-.2-.2-.4 0-.7l.2-.1v-.3h-.3l-.2.1c-.2.3-.6.3-.8 0a.4.4 0 01-.1-.4.6.6 0 01-.5 0c-.2-.2-.3-.5 0-.8l.2-.3v-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M237.6 223.4h-.3a1.5 1.5 0 01-.3.4c-.2.2-.6.2-.8 0a.5.5 0 01-.1-.4.5.5 0 01-.5 0c-.3-.1-.3-.5-.1-.7v-.5h-.3l-.1.2c-.2.3-.5.3-.7.2a.6.6 0 010-.2h-.3c-.5.2-.7-1-.7-1.2l-.2.2s.2.7.1 1.2c0 .6-.3 1.2-.3 1.2a9 9 0 012.9 1.6 9 9 0 012.2 2.3l1.2-.5c.6-.2 1.3-.2 1.3-.2l.2-.2c-.3 0-1.5.1-1.5-.4v-.2a.7.7 0 01-.2 0c-.2-.2-.2-.4 0-.7l.2-.1v-.3h-.3l-.2.1c-.2.3-.6.3-.8 0a.4.4 0 01-.1-.4.6.6 0 01-.5 0c-.2-.2-.3-.5 0-.8l.2-.3v-.3z"/>
+  <path d="M235.4 224h.2v.3h-.1c-.1 0-.1-.2 0-.2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M235.4 224h.2v.3h-.1c-.1 0-.1-.2 0-.2z"/>
+  <path d="M236.3 224.8l-.3-.2v-.2h.1l.4.3.3.2v.2h-.2l-.3-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M236.3 224.8l-.3-.2v-.2h.1l.4.3.3.2v.2h-.2l-.3-.3"/>
+  <path d="M234.6 223.7l-.2-.2s-.1 0 0-.1l.3.1.3.1v.2h-.1l-.3-.1"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M234.6 223.7l-.2-.2s-.1 0 0-.1l.3.1.3.1v.2h-.1l-.3-.1"/>
+  <path d="M233.7 223h.2v.2h-.2s-.1-.1 0-.2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M233.7 223h.2v.2h-.2s-.1-.1 0-.2z"/>
+  <path d="M237.3 225.5v-.2h-.3l.1.2h.2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M237.3 225.5v-.2h-.3l.1.2h.2z"/>
+  <path d="M237.9 226.2l.2.2h.1c.1 0 0-.1 0-.2l-.2-.2-.2-.2h-.1v.2l.2.2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M237.9 226.2l.2.2h.1c.1 0 0-.1 0-.2l-.2-.2-.2-.2h-.1v.2l.2.2"/>
+  <path d="M238.8 227v-.3h-.3v.2h.3"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M238.8 227v-.3h-.3v.2h.3z"/>
+  <path fill="#c8b100" d="M236.2 221.1h-.6l-.1.9v.1h.2l.7-.5-.3-.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M236.2 221.1h-.6l-.1.9v.1h.2l.7-.5-.3-.5"/>
+  <path fill="#c8b100" d="M234.6 221.6v.5l.9.1h.1v-.2l-.5-.7-.5.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M234.6 221.6v.5l.9.1h.1v-.2l-.5-.7-.5.3"/>
+  <path fill="#c8b100" d="M236.4 222.6l-.4.3-.6-.7v-.1h1.1v.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M236.4 222.6l-.4.3-.6-.7v-.1h1.1v.5"/>
+  <path fill="#c8b100" d="M235.3 222a.3.3 0 01.4 0 .3.3 0 010 .3.3.3 0 01-.3 0 .3.3 0 01-.1-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M235.3 222a.3.3 0 01.4 0 .3.3 0 010 .3.3.3 0 01-.3 0 .3.3 0 01-.1-.3z"/>
+  <path fill="#c8b100" d="M233.2 221.1l-.2-.7-.4-.4s.4-.2.8.1c.4.3 0 .9 0 .9l-.2.1"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M233.2 221.1l-.2-.7-.4-.4s.4-.2.8.1c.4.3 0 .9 0 .9l-.2.1z"/>
+  <path fill="#c8b100" d="M234.2 221.4l-.4.4-.6-.6v-.2h1v.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M234.2 221.4l-.4.4-.6-.6v-.2h1v.4"/>
+  <path fill="#c8b100" d="M233.1 221l.3-.1v.3c0 .2-.1.2-.2.2l-.1-.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M233.1 221l.3-.1v.3c0 .2-.1.2-.2.2l-.1-.3z"/>
+  <path fill="#c8b100" d="M238.3 222.5h-.5l-.3.7v.2h.2l.8-.4-.2-.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M238.3 222.5h-.5l-.3.7v.2h.2l.8-.4-.2-.5"/>
+  <path fill="#c8b100" d="M236.7 222.8v.5l.8.2h.1v-.2l-.4-.7-.5.2"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M236.7 222.8v.5l.8.2h.1v-.2l-.4-.7-.5.2"/>
+  <path fill="#c8b100" d="M238.4 224l-.5.2-.4-.7v-.2h.1l.9.2-.1.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M238.4 224l-.5.2-.4-.7v-.2h.1l.9.2-.1.5"/>
+  <path fill="#c8b100" d="M237.3 223.2h.4a.3.3 0 010 .4.3.3 0 01-.3 0 .3.3 0 010-.4"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M237.3 223.2h.4a.3.3 0 010 .4.3.3 0 01-.3 0 .3.3 0 010-.4z"/>
+  <path fill="#c8b100" d="M240.2 224.3l.1.5-.8.3h-.2v-.2l.4-.8.5.2"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M240.2 224.3l.1.5-.8.3h-.2v-.2l.4-.8.5.2"/>
+  <path fill="#c8b100" d="M240 225.8l-.5.1-.3-.8v-.1h.2l.8.3-.1.5"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M240 225.8l-.5.1-.3-.8v-.1h.2l.8.3-.1.5"/>
+  <path fill="#c8b100" d="M238.6 224.3l-.2.5.9.3h.1v-.1l-.3-.8-.5.1"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M238.6 224.3l-.2.5.9.3h.1v-.1l-.3-.8-.5.1"/>
+  <path fill="#c8b100" d="M239.5 225.2a.3.3 0 000-.3.3.3 0 00-.4 0 .3.3 0 000 .3.3.3 0 00.4 0"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M239.5 225.2a.3.3 0 000-.3.3.3 0 00-.4 0 .3.3 0 000 .3.3.3 0 00.4 0z"/>
+  <path fill="#c8b100" d="M240.8 227h.8l.5.3s.1-.4-.3-.7c-.3-.3-.8.2-.8.2l-.2.2"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M240.8 227h.8l.5.3s.1-.4-.3-.7c-.3-.3-.8.2-.8.2l-.2.2z"/>
+  <path fill="#c8b100" d="M240.3 226.1l-.3.5.8.5v-.1h.2l-.1-1-.6.1"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M240.3 226.1l-.3.5.8.5v-.1h.2l-.1-1-.6.1"/>
+  <path fill="#c8b100" d="M241 227s.1-.1 0-.2h-.3c-.2 0-.2.1-.1.2h.3"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M241 227s.1-.1 0-.2h-.3c-.2 0-.2.1-.1.2h.3zm38-21.9v.6h-2.4v-.6h1v-1.3h-.7v-.5h.6v-.6h.6v.6h.6v.6h-.6v1.2h1"/>
+  <path fill="none" stroke="#000" stroke-width="0" d="M134.4 217.1v-1.2m-.4 1.2v-1.2m-.2 1.2v-1.2m-.3 1.2v-1.2"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M133.2 217.1v-1.2m-.5 1.1v-1m.2 1v-1m-.7 1v-1m.2 1v-1m-.9 1v-1m.2 1v-1m.3 1v-1m-.7 1v-1m-.3.9v-.8m-.1.8v-.8m-.5.7v-.6m.2.6v-.6m-.4.5v-.5m-.2.5v-.4m-.3.3v-.3m-.3.3v-.2"/>
+  <path fill="none" stroke="#000" stroke-width=".2" d="M129.2 216.6v-.2"/>
+  <path fill="none" stroke="#000" stroke-width="0" d="M135.7 217v-1m-.5 1v-1m-.4 1.2V216m143 1.1V216m-.4 1.1V216m-.3 1.1V216m-.3 1.2V216"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M276.6 217.1V216m-.6 1v-1m.3 1v-1m-.8 1v-1m.3 1v-1m-.9 1v-1m.2 1v-1m.2 1v-1m-.6 1v-1m-.3.9v-.8m-.2.8v-.8m-.4.7v-.6m.2.6v-.6m-.5.6v-.6m-.2.5v-.4m-.3.4v-.4m-.2.3v-.2"/>
+  <path fill="none" stroke="#000" stroke-width=".2" d="M272.6 216.6v-.2"/>
+  <path fill="none" stroke="#000" stroke-width="0" d="M279.1 217v-1m-.6 1v-1m-.4 1.1V216"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/et.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/et.svg
new file mode 100644
index 0000000..9145fd7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/et.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-et" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="et-a">
+      <path fill-opacity=".7" d="M-61.3 0h682.7v512H-61.3z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#et-a)" transform="translate(57.5) scale(.94)">
+    <path fill="#ffc621" d="M-238 3.5H800v498H-238z"/>
+    <path fill="#ef2118" d="M-240 342.5H799.3V512H-240z"/>
+    <path fill="#298c08" d="M-238 0H800v180H-238z"/>
+    <circle cx="534.2" cy="353" r="199.7" fill="#006bc6" transform="matrix(.54 0 0 .54 -25.8 74)"/>
+    <path fill="#ffc621" d="M214.3 188.2l-6.5 4.5 23.5 33 6.3-4-23.4-33.5zm29.4 78l-9.7-6.8 4-12.7-48.1.7-14-10.7 65.7-.7 12.2-36.9 6.6 15-16.7 52zm76.5-70.7l-6.3-4.8-24.3 32.4 5.6 4.7 25-32.3zM254.8 247l3.5-11.2h13.3L256.4 190l6-16.5 20.5 62.4 38.8.5-12.2 10.7-54.7-.2zm90.6 51.2l2.7-7.4-38.3-13.3-2.8 7 38.4 13.7zm-69.1-46.4l11.7-.1 4.1 12.6 38.8-28.5 17.6.6-53.1 38.7 11.5 37.2-14-8.4-16.6-52.1zm-19.8 102l7.9.2.3-40.5-7.4-.5-.8 40.9zm22-80.3l3.8 11.1-10.7 8 39.4 27.7 5 16.8-53.6-38-31.5 22.7 3.5-16 44-32.3zm-103.3 13l2.3 7.5 38.7-12.2-2-7.2-39 11.9zm83.2-4l-9.4 7.1-10.8-7.7-14.2 46-14.4 10 19.5-62.7-31.4-23 16.3-1.6 44.4 31.9z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/eu.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/eu.svg
new file mode 100644
index 0000000..b6a39f5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/eu.svg
@@ -0,0 +1,28 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-eu" viewBox="0 0 640 480">
+  <defs>
+    <g id="d">
+      <g id="b">
+        <path id="a" d="M0-1l-.3 1 .5.1z"/>
+        <use transform="scale(-1 1)" xlink:href="#a"/>
+      </g>
+      <g id="c">
+        <use transform="rotate(72)" xlink:href="#b"/>
+        <use transform="rotate(144)" xlink:href="#b"/>
+      </g>
+      <use transform="scale(-1 1)" xlink:href="#c"/>
+    </g>
+  </defs>
+  <path fill="#039" d="M0 0h640v480H0z"/>
+  <g fill="#fc0" transform="translate(320 242.3) scale(23.7037)">
+    <use width="100%" height="100%" y="-6" xlink:href="#d"/>
+    <use width="100%" height="100%" y="6" xlink:href="#d"/>
+    <g id="e">
+      <use width="100%" height="100%" x="-6" xlink:href="#d"/>
+      <use width="100%" height="100%" transform="rotate(-144 -2.3 -2.1)" xlink:href="#d"/>
+      <use width="100%" height="100%" transform="rotate(144 -2.1 -2.3)" xlink:href="#d"/>
+      <use width="100%" height="100%" transform="rotate(72 -4.7 -2)" xlink:href="#d"/>
+      <use width="100%" height="100%" transform="rotate(72 -5 .5)" xlink:href="#d"/>
+    </g>
+    <use width="100%" height="100%" transform="scale(-1 1)" xlink:href="#e"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/fi.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/fi.svg
new file mode 100644
index 0000000..c3451a4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/fi.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-fi" viewBox="0 0 640 480">
+  <path fill="#fff" d="M0 0h640v480H0z"/>
+  <path fill="#003580" d="M0 174.5h640v131H0z"/>
+  <path fill="#003580" d="M175.5 0h130.9v480h-131z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/fj.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/fj.svg
new file mode 100644
index 0000000..c7549b5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/fj.svg
@@ -0,0 +1,122 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-fj" viewBox="0 0 640 480">
+  <path id="path564" fill="#68bfe5" d="M0 0v480h640V0H0z"/>
+  <g id="g768" stroke-miterlimit="4.8">
+    <path id="path566" fill="#fff" d="M420.9 193.2v136.4c0 44.6 80.6 71 80.6 71s80.5-26.4 80.5-71V193.2z"/>
+    <path id="path568" fill="#d21034" d="M490.3 241.2v61.4h-69.4v22.3h69.4v71.5l11.2 4.3 11.1-4.3V325H582v-22.4h-69.4v-61.4z"/>
+    <path id="path570" fill="#d21034" d="M420.9 193.2H582V246H420.8z"/>
+    <g id="g642" stroke-miterlimit="3">
+      <g id="g580" fill="#fff" stroke="#000" stroke-width=".8" transform="translate(-96.9 97.5) scale(.66486)">
+        <ellipse id="ellipse572" cx="798.2" cy="192.2" rx="13.6" ry="11"/>
+        <ellipse id="ellipse574" cx="798.2" cy="186.5" rx="12.1" ry="6.1"/>
+        <ellipse id="ellipse576" cx="798.2" cy="198.8" rx="12.1" ry="6.1"/>
+        <ellipse id="ellipse578" cx="798.2" cy="192.2" rx="12.1" ry="6.1"/>
+      </g>
+      <path id="path582" fill="#ffd100" stroke="#000" stroke-width=".8" d="M578 235.4l-1.3-3.6s-3.6-1.5-3.9-3.4c-.6-5.1-2.4-7-5.2-7.8a6 6 0 00-4.5.5c-.8 1.2-5 1.2-7.2 1.3-2.3 0-2.4-1-2.4-1-1.7 0-2.5-1.3-2.5-1.3-1.1-2.3-2-3.2-2.6-3.5 3 0 5.2-1.3 8.6-4.8 3.6-3.8 6.2-2.4 6.2-2.4-1.8 3.6.6 3.3.6 3.3 4.8-2.5.6-8.7-.8-8.4-1.5.3-1.9-.7-1.9-.7 0 1.1-1.6 1.6-1.6 1.6 1.2-7.1-3-9-3-9-.6.6-1 1.9-1 1.9-1.2 4.3-5.1 3.6-9.5 1.5-4.4-2-16 2.2-19.7 3.7-3.7 1.5-10.4 3.7-16.4.4-6-3.4-7.5-2.8-9.9-2.1-2.3.6-6.5 1.6-8 .8a8.5 8.5 0 00-3.4-.9c.4-.2-.2-1.2-.2-1.2-1.9-2.5.2-4 .2-4s-3.4 1-2 6.8l.6.8s.4 1.9 1.4 2.4v.4s.9-.4 1.1.8c.3 1.2 1.6 0 2.1-1 0 0-.9 5.4 5.7 6.7 0 0-.7-.9-.5-1.4.3-.6-.8-1-.7-1.8.1-.9-1.6-1.2-.3-1.9 1.4-.6 2-1.9 5-.1 2.9 1.7 5.2 1.3 5.2 1.3s-1.8-3.6-.8-3.6 5.4 5.4 7.5 5.2c2.2-.3 6.4-2.8 8.5-1.9 0 0 .2-1 8.2-2.4 8-1.4 18-5.4 21.7-1.9 0 0 .4 2.8 2 3.5 0 0-.3 5.8-10.2 2.6l-3.6-1s-.6-1.7-19.5 3.2c0 0-1.1.4-1.9.9-.7.5-1.7-.3-5.5 1-3.7 1.5-17.7 6-26.3 4.4-1.9-.6-3.6-.3-3.7-.6 0-.3 1 .1 1 .1-.6-.7-.9-.8-.9-.8-7.2-.8-6-4-6-4l.4 1c1.2-1.6-.4-5.2-.4-5.2h-.1a3.8 3.8 0 000-.3l.5-.4c3.5-3 7.5-3.5 7.5-3.5-2.4-3-7.4-1.4-7.4-1.4.1-3.5-1.4-7.7-1.4-7.7a12 12 0 00-7.7 4.7c-.2-3.7-4.9-5.8-4.9-5.8 1.8 2.1.7 7.2.7 7.2h.2-.5l-.1 1.1h-.2s-1.7.6-3.7 5.2c0 0-.2 1-1 2v-.4s-2.3 3-7.4 0c0 0-7-4.1-9.6-4-2.4.2-4 1.3-3.9 2 0 0-5.7-.4-7.6 2.8 0 0-4.3 1.6-.6 5 0 0 .5 1.6 1.5 2.4 0 0-.1-3.2.7-2.3l.5.6c.1.4.5 1.6 1.2 2.3l.6-.2c0-.8.2-1.8.4-2.2h.2l1 1.6 1-.6c.6 0 1.3.5 1.3.5l1.3-1.1c1.3.2 1.7-2.4 1.7-2.4a4 4 0 003.1-.5c.6 2 5.2 4.3 5.2 4.3h.2l-.6.4c2.1 1.5 6 1.1 6 1.1-1.6.6-1.4 3.7-1.4 3.7-1 .4-1 1.3-1 1.3 3.2 1.3 5.3.2 5.3.2.2 1 0 1.2 0 1.2-1.3 2.7-1.9 5.4-1.9 5.4h.1v.2s-5.7 2-8.1 4.7c0 0-.3-.8-1-.8s-2.8-1.8-3.8-2.1c-1-.3-2.5.3-3-.2-.3-.4-.1-3.6-.8-4l-.7-2c-.4 1-2.4.8-2.4.8l-.8.6-.8-.1c-.2 0-.4.5-.5 1l-.3.3v-.6c-.3.3-1.1-.1-1.4-.1-.2 0-.4.4-.5.9l-1.9.1c-.3.2 0 2.6 0 2.6-2.3 1.2-1.2 3.1-1.2 3.1 1.2 6 11.5 3.3 12.3 4.1.8.8 2.6 1 3.5 1 1 0 2.1 2.2 3.4 2.4 1.3.2 0-1.8 6.1-3.2 6.1-1.5 8.2-4 8.2-4 1.9-.4 2.4-2.7 2.5-3.6l.2 1.4c.3 2.1-1.2 3-1.2 3l5.3-1.7c2.1-.5 1.8-2.4 1.8-2.4 2 5.8 5.7 6.2 5.7 6.2.7-2.2.6-2.9.6-2.9h1.7c0-1.3-1-2.2-1.7-2.6l2.6 1.5 1-.1c0 .9 1.3 1.7 1.3 1.7l.2-1.2c1.2 1.6 3.4 1 3.4 1a7.3 7.3 0 00-.2-.8c4.7 2.9 12.2-.8 12.2-.8 2 .4 2.3-.8 2.3-.8 2.2.3 2.8-1.3 2.8-1.3 5.3-.4 9.1-4.2 9.1-4.2 2.7-.2 2.8-2.1 2.8-2.1s2.6.5 5.2-2.7c6-8.5 14.8-4 14.8-4l-5.1.3c-13.5-.1-7.9 9-7.9 9h.8c1.3.2 5.7 3.7 4 6.2v.2c-2.8 3.7-7.8.2-9.3-3-1.4-3.2-4.4-2.5-4.4-2.5s-7.5 1.3-4.4 7.3c.1 1.5 1 3.2 3.8 4.8 1.5 2.2 6.5 2.4 10.1 1.6C524 244 533 240 533 240c.7-2 3-1.5 5-4.4 2-2.8-2.9-3.8-4-5.4-1-1.5.3-1.2.3-1.2 4.4 2.3 4.8-5.2 4.8-5.2a6.6 6.6 0 004.3 5.5c2.3-2.3.6-7.2.6-7.2 5.7 10.2 9.1 8.5 9.1 8.5-3-1.8-1.5-4.4-1.5-4.4 2.7 10.8 14 1.4 14 1.4-.6 1.6 0 2.5 1 3.5s2.2 1.4 1.6 3.3c-.5 1.8-5.8 1.4-5.8 1.4s-5-.2-4.6 4c.3 1 3.6 1.4 5 1.1 0 0-.6.2 1.3.4h2.2c2.1 0 4.5-.4 4.5-.4 2.9-.6 2.4-1.6 2.4-1.6 4.5-.8 5-3.8 5-3.8z"/>
+      <path id="path584" d="M429.6 216.7s.3-.5.7-.6c.4 0 .8.2 1.2.8l.3-.2s-1.2-1.8-.8-3c.3-.6.8-1 1.6-1.1v-.3c-1 .2-1.6.6-1.8 1.3a2 2 0 00-.2.7c0 .6.2 1.2.5 1.7a1.1 1.1 0 00-.8-.2 1 1 0 00-.8.6zm141 24c-3 .5-7.5.7-7.9-.2 0-.2 0-.8 2.4-2.4l-.2-.5c-2.1 1.4-3 2.3-2.7 3 .7 1.8 7.2.8 8.5.6zm-58.4 1.7c-.7-1-.3-2.5 1-4.3l-.5-.3c-1.4 2-1.7 3.6-1 5z"/>
+      <path id="path586" d="M508.1 237.8c0 1.9 1.4 3.6 3.9 5.1l.3-.5c-2.4-1.4-3.6-3-3.6-4.6-.2-2.5 2.5-4.5 2.6-4.5l-.3-.4c-.2 0-3 2.1-2.9 5zm52 .7c-.8 1.3-.5 2.8-.5 2.8h.5c0-.1-.2-1.4.5-2.5a3 3 0 012-1.2v-.5c-1.1.2-2 .7-2.4 1.4zM441 215.1h-.2v.2s-.2 1.6-1 2a.8.8 0 01-.6 0l-1.3-.7c-.2-.2-.4-.3-.8-.2a1.8 1.8 0 01-.4-1.4c.1-.7.6-1.4 1.6-2l-.2-.3c-1 .7-1.6 1.5-1.7 2.3 0 1 .5 1.6.5 1.6v.1h.2c.3-.1.3 0 .6.2l1.4.8h1c.7-.5 1-1.9 1-2.2 3.2.7 5.8-3.3 6-3.4l-.3-.2s-2.7 4-5.8 3.2z"/>
+      <path id="path588" d="M433.1 214.5a3 3 0 00.4 2c.3.5.7.8 1 .9.5 0 .8-.3 1.2-.6.2-.2.4-.4.6-.4l.3.2.2-.2-.5-.3c-.3 0-.6.2-.8.5s-.6.5-1 .5c-.2 0-.5-.3-.8-.8a2.2 2.2 0 01-.3-1.7c.4-1.4 2.1-2.5 2.1-2.5l-.1-.3c-.1 0-1.9 1.2-2.3 2.7zm-4.4 20.7c.1-.6.6-1 1.3-1.4-.2 0 .6.6 1.3.6l.5-.3c.2.2 1.4 1.3 1.4 2.7 0 .3 0 .6-.2.9l.3.1c.9-2.1-1.4-4-1.4-4h-.2l-.4.3c-.6 0-1.3-.6-1.3-.6-1 .4-1.4 1-1.6 1.6zm10.3-5.4c-.7.1-2.5.4-3.1 1.4-.2.4-.3.8-.1 1.2l.2.6c.6 1.6 1.2 3.2 1.9 3.6l.1-.3c-.6-.3-1.2-2-1.7-3.4l-.2-.6a1 1 0 010-1c.5-.7 2.2-1 3-1.1.4 0 .5 1.5.6 2.4h.3c-.1-1.4-.3-2.8-1-2.8z"/>
+      <path id="path590" d="M433.9 231.4c-.4.3-.3.8-.3.9 0 .1.2 4 2 4.8l.1-.3c-1.6-.7-1.8-4.5-1.8-4.6 0 0 0-.4.2-.6.3-.2.8-.3 1.6 0l.1-.3c-.9-.3-1.5-.2-1.9 0z"/>
+      <path id="path592" d="M432.4 231.7c-.8.6-.7 2.2-.7 2.3h.3s0-1.6.6-2c.3-.2.6-.2 1 0l.1-.4c-.5-.2-1-.2-1.3 0z"/>
+      <g id="g632" transform="translate(-96.9 97.5) scale(.66486)">
+        <path id="path594" d="M862.3 169.5s1.3 3 1.3 5.3c0 .4-.2.7-.3 1l-.5-1.3-.3 1s-.6 1.4.3 2.9c1.2 2 4.2 3.2 9 3.7v.1a.8.8 0 00-.4.1l-.2.2v.4c.2.5.7.5 1.8.5l.7.1.6.2-.1-.1c1 0 2.3.3 3.6.8l-1 .2 1.1.5c.1 0 8.7 3.5 12.2 6.3-1 .9-5.3 4-12.7 2.2l-1.2-.3.8 1s4.9 5.6 5.9 9c-1.7 0-8.2 0-10.5-2l-.5.5s3 4.6 3.8 8.1c-1 .2-3 .3-4.3-1.4l-.6-.7-.3 2c-.6-.5-1.4-1.1-1.4-1.9v-.4l-1.8.3-3.8-2.3a8 8 0 00-.6-.4l-.4.7.6.3c.8.6 2.2 1.7 2.3 3.3H863v.5c0 .3 0 1.4-.9 3.7-1.1-.2-5.3-1.7-7.8-8.8l-.8.2v.2c0 .7-.2 2.3-2.4 2.9l-6.5 2a4.5 4.5 0 00.8-2.8v-.8a20.3 20.3 0 01-.2-2.6c0-1.5.3-2.4 1.4-3l-.4-.8c-.1 0-9.6 3.9-14.3 2.3.2-1 1-4.2 2.6-7.6l-.2.2c.3-.2.6-.6.3-2.2v-.5l-.5.2s-3 1.4-7.4-.2c0-.4.3-1 1.2-1.4l.3-.1v-.8c0-1.2.1-4 1.8-4.6l-.2-.8s-5.1.4-8.2-1.3a11 11 0 014.5-1.9h.3v-.4a6 6 0 00-.5-2.3c1.2.4 2.6.7 3.1.3l.2-.1-.2-3.1h-.8l.1 2.6-3-.7-1.2-.4.8 1a4 4 0 01.7 2.4 12.7 12.7 0 00-5 2.3l-.5.4.5.3c2.4 1.6 6.1 1.8 8 1.7a8.4 8.4 0 00-1.3 4.5v.4a3.1 3.1 0 00-1.5 2.2v.3l.2.1a11 11 0 007.9.5v.9c-2 4.2-3 8.3-3 8.3v.4h.3c3.9 1.6 10.7-.5 13.8-1.6-.4.7-.7 1.5-.7 2.5a22.1 22.1 0 00.3 3.4c0 2.3-1.5 3.2-1.6 3.2l.3.8 8-2.4c1.8-.5 2.5-1.6 2.8-2.5 3.1 7.4 8 8 8.3 8.1h.3l.1-.3a14 14 0 001-4 439.6 439.6 0 002.4-.1v-.5c0-.7-.1-1.3-.4-1.8l1.4.8 1.3-.2c.3 1.3 1.9 2.4 2.1 2.5l.5.3.3-1.7c2 1.7 4.7 1.2 4.9 1.2l.3-.1v-.4c-.4-2.7-2.2-5.9-3.3-7.6 3.5 1.6 9.9 1.5 10.2 1.5h.4v-.5a30 30 0 00-5.6-9c8.2 1.5 12.6-2.8 12.8-3l.3-.3-.4-.2a53.8 53.8 0 00-11.6-6.3l.9-.2-1-.5a12.8 12.8 0 00-5.8-1.4c-1-1.2-1.5-1.3-1.6-1.4-5.6-.6-7.6-2.1-8.4-3.3v-.3l.2-.3c.5-.7.7-1.6.7-2.6 0-2.6-1.3-5.5-1.3-5.6l-.8.3z"/>
+        <path id="path596" d="M836.8 167.9s-.6 3-3.2 4.5c-2 1-4.5 1-7.6-.3l-.4-.1v.4a5 5 0 002 3.2c1.3 1 3.3 1.4 5.9 1.2-.9 1-3.6 4.4-3.6 7.8v.5c.4.2 4.6 1.4 6.6-1.1 0 1 .4 4.5 1.7 5.8.8.8 1 1.8 1 2.7 0 .8-.2 1.4-.2 1.4l-.2.6.5-.4c.2-.1 4.1-3 5.3-6.7 0 0 .7-1 1.9-1.3v.5c0 1.5.6 4.1 4.8 5.7l.3.1v-.3a7.1 7.1 0 010-.7c0-1.1 0-3 1.1-4a2.8 2.8 0 00.6-3.3c.9.2 2.9.9 3.7 2.4 1.2 2.2 5.3.4 5.5.4l-.1-.5s-1.8.4-2.9-.3a2.1 2.1 0 01-.8-1.5l-.2-2.4c0-1-.2-1.7-.7-2.2.5 0 1.6 0 2 1 .8 1.6 3.3 1.7 3.4 1.7l.9.1-.7-.5s-2.2-1.4-1.8-3.3l.3-1.4c.6-2.5 1.6-6.6.7-9.2l-.4.2c.2.6.3 1.4.3 2.2 0 2.2-.7 5-1 6.7l-.4 1.4a2.6 2.6 0 000 .5c0 1.3.7 2.2 1.3 2.7-.7-.1-1.7-.5-2-1.3-.7-1.4-2.3-1.4-3-1.3l-.6.1.4.4c.7.4.8 1 .8 2.3l.2 2.3c.1.8.5 1.4 1 1.8.6.4 1.2.4 1.7.5-1.2.3-2.9.5-3.5-.6-1.1-2.2-4.3-2.7-4.4-2.8h-.5l.2.4s.4.6.4 1.4c0 .5-.2 1.2-.7 1.7-1.1 1.1-1.3 3.2-1.3 4.3v.4c-3.6-1.5-4.2-3.7-4.2-5v-1l.2-.3h-.4a3.5 3.5 0 00-2.5 1.8 15 15 0 01-4.7 6.2 6.9 6.9 0 00.1-1c0-.9-.2-2-1-2.9-1.5-1.4-1.7-6-1.7-6v-.8l-.4.7c-1.6 2.8-6.2 1.4-6.3 1.4-.2-3.5 4-8.1 4-8.2l.4-.4h-.6c-2.7.4-4.8 0-6.2-1a4.6 4.6 0 01-1.6-2.5c3 1.1 5.6 1.2 7.6.1a7.4 7.4 0 003.4-4.8c3-6.6 5.5-7.7 5.5-7.7l-.1-.4c-.2 0-2.8 1-5.8 8z"/>
+        <path id="path598" d="M843.5 158h-.2l-2.4 3.3h.7a31 31 0 0119.7 9.2l.3.3 2.3-2.5-.2-.3c-6.5-10.2-20.1-10-20.3-10zm.2.9c1.6 0 13.2.3 19.2 9.3l-1.3 1.4a33 33 0 00-19.3-8.9 631.2 631.2 0 011.4-1.8z"/>
+        <path id="path600" d="M841.6 164.8a11 11 0 00-2.1 4.8l.1.4a7.3 7.3 0 00-2 5.5c0 1.3.2 2.6.6 3.8l.3.7c1.2 3.4 2.3 6.4 7.8 4.6 5.2-1.6 5.4-2 6.7-4.2l.4-.5c.7-1.2 1.5-1.4 2.3-1.7 1-.3 2-.6 3-2.4l.8-1.3c1-1.3 2.2-3 2.3-5h-.4a9.8 9.8 0 01-2.2 4.7l-1 1.4a3.6 3.6 0 01-2.6 2.2 3.9 3.9 0 00-2.6 1.8l-.4.6c-1.2 2.1-1.4 2.4-6.5 4-5 1.6-6-.9-7.2-4.4l-.3-.7c-1.4-3.8-.3-7.6 1.6-9l.6-.5-.9.1v-.1c0-.7.7-2.6 2-4.5 1.2-1.6 4-3.1 4-3.2l-.2-.4c-.2.1-2.9 1.7-4.1 3.3z"/>
+        <path id="path602" d="M839.2 178.7c.9.6 2.1.5 3.7 0 0 .5 0 1.7 1 2.5 1.2 1 3 1.2 5.5.6v-.5c-2.4.6-4.2.4-5.2-.5a3 3 0 01-.9-2.4v-.4l-.3.2c-1.5.6-2.7.7-3.6 0-1.5-1-1.4-3.7-1.4-3.7h-.4s-.2 3 1.6 4.2z"/>
+        <path id="path604" d="M842 175c-.6.2-.8.7-.8 1.1v.3c.2 1.2 1.5 2 2.6 2.3 1.2.3 2.6.4 3.1-.3.2-.3.4-.8 0-1.7a3.7 3.7 0 00-4.8-1.7zm2 3.3c-1-.3-2.2-1-2.3-2 0 0-.1-.7.5-.9a3.3 3.3 0 014.2 1.6c.3.4.3.8.1 1-.3.5-1.4.6-2.5.3zm-2-3.3zm1.6 6c-.3 2.5 0 2.6.1 2.6h.2l.2-.1 1.4-2-1.8-.8v.3zm.5.4l.7.3-.8 1.1v-1.4zm-4.2-2.4l-.1 2.3 2-2.4-2-.2v.3zm.4.2h.6l-.6.8v-.8z"/>
+        <path id="path606" d="M838.5 178.2s1.5 2.9 1.8 4c.1.6 1 1.4 2 1.7 1 .4 2 .4 2.7-.1l1.3-1.1c.4-.5.6-.6 1-.5v-.5c-.6 0-.9.2-1.3.6l-1.3 1c-.8.6-1.7.4-2.2.2-1-.3-1.7-1-1.8-1.5-.3-1-1.7-3.9-1.8-4l-.4.2zm2-8.6a5 5 0 00-2.4 2.8l.4.1s.7-1.8 2.1-2.5a2.9 2.9 0 012.4 0l.1-.4c-1-.4-1.8-.4-2.7 0zm10.8 5.2c.2 0 3.2 2.4 1.5 5.2l.3.3c2-3.3-1.5-5.9-1.5-6l-.3.5zm-9.2.4s-.5 1.7 2 2.3c0 0-2.3 0-2.5-.6-.1-.6 0-1.9.5-1.7zm7.5 2c0 .2-.2.3-.3.3a.3.3 0 01-.3-.2c0-.2.1-.3.3-.3.1 0 .3.1.3.3zm.2 1.2c0 .1 0 .2-.2.2a.3.3 0 01-.3-.2.3.3 0 01.3-.3c.1 0 .2.1.2.3z"/>
+        <circle id="circle608" cx="848" cy="177.8" r=".3"/>
+        <path id="path610" d="M848.8 179.4a.3.3 0 11-.6 0c0-.1.1-.2.3-.2l.3.2zm-7.1-7.3a.3.3 0 01-.6 0 .3.3 0 01.5 0z"/>
+        <circle id="circle612" cx="841.6" cy="173.2" r=".3"/>
+        <circle id="circle614" cx="840.1" cy="172.7" r=".3"/>
+        <path id="path616" d="M840.8 174.3a.3.3 0 01-.2.3.3.3 0 010-.6.3.3 0 01.2.3zm4.8-9.6s3.5 2.2.1 6.3c0 0 1.7-1.3 1.8-3.4.2-2.1-1.2-3.8-2-2.9zm13.5 5.9c-1.2.6-2.8-.5-3.6-1.5-.8-1-2.5-1.3-3.6.6-1 1.8-2.5 2.5-2.5 2.5s1.5-.8 3-2.5c1.5-1.6 2.4-.3 3.9.5 1.4.8 1.7 1 2.7.5v-.1z"/>
+        <path id="path618" d="M858.8 170.9a1.7 1.7 0 01-2.2-.1c-1-.8-1.7-1.8-2.8-1.2-1.2.6-3.3 2.2-3.3 2.2s3.5-2.4 4.2-1.8c.6.5 2.2 1.8 3.1 1.4l1-.5z"/>
+        <path id="path620" d="M856.1 172.3c-1.1-.8-2.2 1-3.1.8-1-.2-1.7-1.8-1.7-1.8s.8 1.6 2 1.3c1.3-.4 2.1-1.2 2.9-.6.7.6-.1.3-.1.3z"/>
+        <path id="path622" d="M854.4 172.6a2 2 0 01-2.4-1.9s.7 1.8 2.6 1.5l-.2.4z"/>
+        <path id="path624" d="M854.3 171.2c.1.5.1.8-.5.8s-1-.2-1-.8c0-.5 1.4-.4 1.5 0zm-7.8-3a.7.7 0 01-.7.6c-.4 0-.5-.2-.5-.6s0-.7.5-.7.7.3.7.7z"/>
+        <path id="path626" d="M844 165.7s3.8 0 2 4.7c0 0 1.4-2.3.5-4-1-1.6-2.3-1.2-2.3-1.2s-.4.3-.2.5z"/>
+        <path id="path628" d="M844 167.6c0 1 .6 1.9 1.8 2.9l.3-.4c-1.1-.9-1.7-1.7-1.7-2.5s.6-1.3.6-1.3l-.3-.3s-.7.6-.8 1.6z"/>
+        <path id="path630" d="M844.8 168.4c.1.5.6 1 1.2 1.2l.2-.4c-.5-.2-.9-.6-1-1-.2-.8.4-1.7.4-1.7l-.4-.3s-.7 1.2-.4 2.2zm5.1 2.6s.7 1.5-.3 3.1l-1 1.6s1.2-2.3.7-3.2c-.4-1 .6-1.5.6-1.5zm14.6 15.8c3.8.7 12.5 7.5 12.5 7.5l.5-.6c-.3-.3-8.9-7-12.9-7.7l-.2.8zm3.4 9.5c.2 3.5 4 5.6 4 5.7l.5-.7s-3.5-2-3.7-5h-.8zm-9.3.8c0 3.8 3.6 8.4 3.8 8.6l.6-.5s-3.6-4.6-3.6-8.1h-.8zm-12.1.4c.6 1.3.6 1.9.4 2.2-.2.4-.6.4-.6.4l.1.8c.3 0 .9-.2 1.2-.8.4-.7.3-1.7-.4-3l-.7.4z"/>
+      </g>
+      <g id="g640" fill="#fff" stroke="#000" stroke-width=".2">
+        <path id="path634" d="M429.6 216.3s.1 1.7 1.4 2.7c0 0-.1-1.8.3-2.6 0 0-.7-.8-1.7-.1zm2.6 1s.3 1.6 1.2 2.3l.6-.1s.2-2 .5-2.2c.3-.2-1.3.7-2.3 0z"/>
+        <path id="path636" d="M434.5 217.3l1 1.6 1.2-.7-.2-1.8s-.7-.2-2 .9zm4.7.3l-1.3 1.1s-.7-.5-1.2-.5l.2-1.7s1-.7 2.3 1.1zm-9.3 16s-.2-2.4 0-2.5c0 0 1 .3 1.4 0 0 0 .5 1.8.4 2.6-.2.8-1.1.5-1.8 0zm6-2.4s-.1-2 .2-2.3c0 0 2 .3 2.4-.8l.7 2s-2.1-.3-3.4 1z"/>
+        <path id="path638" d="M433.8 231.6s.3-2.1.7-2.2c0 0 1 .3 1.3-.1v2.6s0-1.1-2-.3zm-2.3.3s.5-1.9.8-1.9 1 .5 1.4.2v1.4s-1.6-.4-1.9 1.9l-.3-1.6z"/>
+      </g>
+    </g>
+    <g id="g682" fill="#00a651" stroke="#000" stroke-width=".8">
+      <path id="path644" stroke-width=".5" d="M461.7 270.4s5.2 4.9 3.9 9.2c0 0 3.3-7.3-.3-9.5-3.6-2-3.7-.5-3.6.3z"/>
+      <path id="path646" fill="#964b36" stroke-width=".5" d="M455 275.1s-1.3 2 .2 3.3c0 0-1.7 2.4-.4 4.4 0 0-1 2.1-.8 4.4 0 0-.8 3.5 1 5.1 0 0 2 1 3 .1 0 0 1.7-2.6.6-5.3 0 0 1.2-2.3-.2-5.2 0 0 .4-1.6-.7-3.5 0 0 .7-1.2.1-2.2 0 0-2.5-2.7-2.8-1z"/>
+      <path id="path648" stroke-width=".5" d="M456.5 269s-6.2-12-10.6-12.5c-4.4-.5-4.6-4.8-4.6-4.8s.5 2 4 2 10.2 5 11 8.7c.7 3.7 1.5 3.2 1.5 3.2l-1.3 3.4z"/>
+      <path id="path650" stroke-width=".5" d="M456.5 268.1s2.3-15.1 12.2-15.4c9.9-.2 6.6.8 9-.8 0 0-6.6 3.4-10.7 4-4.2.4-7.6 8.5-7.4 10 0 1.5-2.3 4.4-3.4 3.4-1.2-1 .3-1.2.3-1.2z"/>
+      <path id="path652" stroke-width=".5" d="M458.8 273.8s2.3-6 6.1-4c0 0-3-5.8-8.4-.8 0 0 2.4 3.3 2.3 4.8zm-7.5-6s3.2 13.4-1.8 17.5c0 0 .2-6.9-2.9-11-3-4.2 3-8.7 4.7-6.5z"/>
+      <path id="path654" stroke-width=".5" d="M451.7 270.1s5.9 5.7 6.2 7.6c.4 1.8 1.8-5.7-1-7.8s-5.7-2.5-5.7-2.5l.5 2.8z"/>
+      <path id="path656" fill="#964b36" stroke-width=".5" d="M440.8 285s.5 2.3 2 2.8c0 0 0 1.7 1.4 2.2 0 0-.7 1.5.4 2.4 0 0-.2 3 .8 3.5 0 0 2.7-.1 3.6-.9 0 0 .5-1.9-1-3.8 0 0 .3-1.8-1.2-2.8 0 0 .5-2.5-1.4-3.4 0 0-.3-2-1.4-3 0 0-2.2 3.1-3.2 3z"/>
+      <path id="path658" stroke-width=".5" d="M443.7 282s-7.7-2.8-12 1.2c0 0 6.6 1 7.4 2.3.8 1.3 4.9-2.2 4.6-3.5z"/>
+      <path id="path660" stroke-width=".5" d="M441.3 286.8l-1.4-1c-.7-.6-7.2-2.3-8.1 4 0 0-2.4-6.3 1-7 3.5-1 6.2 1 8.5 4m-5-12.8s2.3 5.2 3.2 5.4c.9.3 1.5-.6 1.5-.6s-3.1-4.6-4.8-4.8zm-1.8-7.9s-2-6.6-4.4-4.8c-2.4 1.7-1.8 6.5-1.8 6.5s-4.7-5-2-8.8c2.8-3.9 8.2.4 8.2 7.1z"/>
+      <path id="path662" fill="#964b36" stroke-width=".5" d="M439.9 279.8s0 1.3.9 1.6c.8.4 2.5 1 2.5.3s-1.3-3.7-1.8-3.3c-.5.4-1.4.4-1.6 1.4z"/>
+      <path id="path664" stroke-width=".5" d="M438.4 272s-.3-5.7 3.5-7.9c0 0 .7.2 1.1-1 0 0-3 7.3-2.1 11l-.1.4"/>
+      <path id="path666" stroke-width=".5" d="M439.1 265s6.8-14 15-9.1c0 0-8.6 1.7-11.7 7.9l-3.1 4.6-.2-3.4z"/>
+      <path id="path668" stroke-width=".5" d="M435.5 270.1s-2-9.4-3.3-10.6c-1.2-1.3-3.3-2.6-5.9-.5 0 0 4.4-3.9 9-.6 4.7 3.2 3.7 8.4 3.7 8.4l-.5 6.5-3.1-2.9"/>
+      <path id="path670" stroke-width=".5" d="M442.8 281.3s-8.3-15.7-13.7-4.5c0 0-1 2.9.1 4 0 0-3-2.3-1.6-7.8s10.5-3 13.2 1.5c2.6 4.5 3.3 6.8 3 7-.4.3-1-.2-1-.2zm23.3 4.5s6-12.4 9.5-6.8c0 0 1 2.8-.5 4 0 0-2.4-3-4.5.6-2.2 3.5-1.3 3.2-1.3 3.2s-2.2.6-3.2-1z"/>
+      <path id="path672" stroke-width=".5" d="M475 283s3.3 1.7 2.2 5.2c0 0 4.4-8.4-1.6-9.2 0 0 1.1 2.7-.5 4zm.5-8.6s7.9 2.3 8.1 5.7c0 0 1.4-6.6-3.1-8.6 0 0-5.4 1-5 3z"/>
+      <path id="path674" stroke-width=".5" d="M479 264c3.4-6.6 7.6 2.1 7.6 2.1s1.5-6.9-2.7-8.1c-4.3-1.3-7 14.7-7 14.7l-5 1s1.3-13.8 8.8-15h1"/>
+      <path id="path676" stroke-width=".5" d="M473 268s-4.8-9.8-8-10.8 1.7-2.5 3.7-.6 5.8 4.3 5.4 9.3L473 268zm-5 13.4s1.4-6.6 5.2-8.6c3.8-2 7.3-1.3 7.3-1.3s-4.5 1-5.3 3.3c-.7 2.2-2 2.4-2 2.4l-5.1 4.2z"/>
+      <path id="path678" fill="#964b36" stroke-width=".5" d="M466 285.8s-2 4-1.6 4.6c0 0-2.2 3.3-1.3 5 0 0 2.2 1.7 3.2 1 0 0 2.6-3.7 1.9-5.7 0 0 1.8-2.4 1.1-3.9 0 0-2.6.1-3.2-1z"/>
+      <path id="path680" fill="#000" stroke="none" d="M455 278.6c.2.1 1.5.7 2.3.4l.6-.5-.5-.2c-.3.6-1.7.1-2.1-.1l-.2.4zm-.1 4l-.2.5c.1 0 2.7.5 3.9-.6l-.4-.4c-1 .9-3.3.4-3.4.4zm-.7 4.4l-.3.4s3 2.1 4.9-.2l-.5-.3c-1.5 1.9-4 .2-4.1 0zm-11.5.6l.1.3c.1 0 2.6-1 2.8-2.9h-.3c-.1 1.6-2.5 2.6-2.6 2.6zm1.4 2.3v.3c.2 0 2.5-.2 2.9-1.8h-.3c-.4 1.3-2.5 1.5-2.6 1.5zm.5 2.4v.3c.1 0 2.7.1 3.6-1.3l-.3-.2c-.8 1.3-3.3 1.2-3.3 1.2zm19.7-1.7s1.1 1.2 2.4 1.1a2.3 2.3 0 001.7-.8l-.4-.4c-.4.5-.8.7-1.3.7-1 0-2-1-2-1l-.4.4z"/>
+    </g>
+    <g id="g688" fill="#964b36" stroke="#000" stroke-width=".3">
+      <path id="path684" d="M542 299.8a1.1 1.1 0 00-.3.3l.4-.3zm9.3-2.3c-.1-.2-.2-.1-.3-.2l-.4-.8h-.3l-.7-1.4a.4.4 0 000-.3 7.6 7.6 0 000-.4s-.2 0-.3-.2v-1.6l-.1-.5a2 2 0 01-.3-1.1v-1c.1-.4-.1-.6-.1-1l.1-.9v-5.4l-.1-1-.1-.4v-1.6 2.6l-.2-4.3-3.4-1.6s-.3 6.2-.2 7c0 .9.4 6.7.2 7.4l-.5 4.3s-1.6 1.2-2.2 2.4c-.7 1.3-.5 1.7-.7 1.7l1.5-.2-1.1.8a.7.7 0 01.7.1l.2.2.2-.2c.3 0 .5.4.7.3l.4-.2.2-.4c.1-.1.3 0 .4 0h.7c.3 0 .6-.5.9-.7.2-.2.4-.3.7-.3.3 0 .6.3 1 .3.2 0 .3 0 .5-.2l.4-.6.8-.1.4.1h.6l.3.2.2-.4-.1-.4z"/>
+      <path id="path686" d="M544.5 299.7h.6v.2a.2.2 0 00.2 0l.3.2h.3l.4.1c.2.1.4 0 .6-.1.2-.2.3 0 .6.2.1.1.1.1.2 0l.1-.1.3-.1.3-.1.4-.2.4.2a.8.8 0 01.2 0l.7-.5c.3-.2.5 0 .7 0h.3c.1-.1.2 0 .4 0 0-.1 0-.2.2-.3l.7.4c.1.1.7.2.6-.2 0-.4-.4-.1-.5-.4v-.6a.7.7 0 00-.3-.4c-.2 0-.2.1-.4 0l-.2-.6-.3.2c-.2 0-.2-.1-.3-.3-.3-.3-.4.2-.7.1-.2 0-.4-.5-.5-.7-.1-.1-.3-.5-.5-.4-.2.1 0 .5 0 .7h-.5c-.2 0-.2 0-.3.2-.2.4-.3.7-.7.6-.1 0-.3-.1-.4 0l-.5.2a1 1 0 01-.4 0l-.4-.4a.1.1 0 00-.2 0 8.7 8.7 0 00-.1-.2c-.2 0-.2 0-.3.3l-.1.5-.3.4-.4.1c-.2 0-.4.3-.4 0-.2-.4.3-1.1-.2-1-.1 0-.2 0-.3.2v.7c-.1.3-.7.8-.6 1 0 .3.4 0 .4 0l.2.4c.2.3.7-.4.7 0m-2.1-2.7v-.2l-.4-.1c-.2 0-.4.3-.5.4-.2.4-.2 1-.6 1h-.5v1s-.2 0-.2.2c-.1.4.2.2.4.2h1l.5-.1c.2 0 .4 0 .5-.2a2.2 2.2 0 00.2-.4v-.4c0-.2.3-.1.3-.4.1-.7-.6-.2-.5-.9"/>
+    </g>
+    <g id="g698" stroke="#000" stroke-width=".5">
+      <path id="path690" d="M550.8 277.9c0 .9-.6 1.6-1.4 1.6-.7 0-1.4-.7-1.4-1.6 0-.9.7-1.6 1.4-1.6.8 0 1.4.7 1.4 1.6zm-4.5-2c0 .9-.6 1.6-1.4 1.6s-1.4-.7-1.4-1.6c0-1 .7-1.6 1.4-1.6s1.4.7 1.4 1.6z"/>
+      <path id="path692" d="M548.7 276.5c0 1-.6 1.6-1.4 1.6-.8 0-1.4-.7-1.4-1.6 0-.9.6-1.6 1.4-1.6.8 0 1.4.7 1.4 1.6z"/>
+      <path id="path694" d="M546.4 278c0 .9-.6 1.6-1.4 1.6-.8 0-1.4-.7-1.4-1.6 0-.9.6-1.6 1.4-1.6.8 0 1.4.7 1.4 1.6z"/>
+      <path id="path696" d="M548.5 279.3c0 .8-.6 1.6-1.4 1.6-.7 0-1.4-.7-1.4-1.6 0-1 .7-1.7 1.4-1.7.8 0 1.4.7 1.4 1.6z"/>
+    </g>
+    <path id="path700" fill="#00a651" stroke="#000" stroke-width=".5" d="M549.2 261.5s13.9-19.4 28.8.7c0 0 .1 2-1.3 4.2l-.3-1.7-1 .3-.2-1-1.6-.1.5-2.2-1.7 1.4.2-1.5-2 2 .3-4.3-2.2 3.7.3-2.5-.8 1.1-.4-1.5-.7 1.5-1-.7v1l-1.8-1.5-.6 2-.9-2.2-.2 1.5-.9-1.7-.1 1.9-2.9-1.3.6 1.8-1.3-1 .2 1-1.9-.4.2 1.1-2-.4.3 1-2.7-.3 1 1-.3.6s15-5 16 13.8l-2.7 1.3.8-1.5-.8-.5-2.3-1.7.7-2.4-.8.3-.1-1.4-.4.2-.9-1.3-.2.5-.6-1.7-.7 1.2-.3-2.8-1 1.8-.2-1-.3.6-1.3-1.5-.4 1-.5-.8-.3 1-1.4-1.4v1l-1-.7-.3.5-2.1-1.1-.1 1-1.2-1-.3 1s13.6 7.8 9.4 20.4l-.8 1.6-.2-4.2-1.3 2.2.9-4.9-.9 1-.1-2-1.1 2-.4-2.2-.5.6-.8-3.2-.6 1.3-1-3.6-.8 1.5-.5-3.1-.5 1.9-1.5-2.8-.2 1.1-.9-2.2-.5.7s-2.5-.1-3.3-.7c-.7-.7-2.8 3.7-2.8 3.7l.2-2.6-.9 1.8v-1.8l-1.6 5.3-.4-3.8-.8 3.3-.4-1-.3 1.3-.5-.5-.4 1.5-.8-.6v2l-.8-1-.6 3-.4-1.2v1.3l-.6-.7-.6 3-1-1.3v2.2l.3 1.6-1-.5.4 2.6s-3.9-7.2.8-14.2c4.6-7 10.9-9 10.9-9l-.7-.6v-.6l-3.8 1.9v-1.1l-1 .8-.2-1.2-.6 1.1-.1-.5-1 1.4-.4-2-.6 2.4-.6-1.7-1.3 3.5V270l-1 2.8-.4-3-.7 3.4v-3l-1.2 3-.7-3-.5 3-.8-2.3-.7 3.4-1.2-3-.6 4.5-.7-1.8-.2 3.3-.8-2 .8 4.2-1-1.6.3 2.6-1.6-2.9v3.4l-.8-1.1-.4 1.3s-.3-13 8.6-15.6c8.9-2.5 14.6.8 14.6.8l-3.4-2.8.4-.9h-1.2l.5-1-2.7.1.8-1-2 .3v-.6l-1.3 1 .5-1.2-1.7 1.2-.1-1.7-1 1.4-.4-1.5-4 4 1-4.1-.7.9-.1-1-1.1 1.8-.3-1.2-.5 1.5-.4-1.8-.8 1.8-1-1.6-.3 2.1-.6-1.1-.8 1.6-1-1v1l-2-.9.4 1.5-1.5-1.2-.4 2-.8-1-.7 2.5-.6-2.4-.6 1.9s7.8-20.2 27.6-7c0 0 2.2 2.1 2.7 3.6s.1.2.1.2l-.4-13.9.8 6 .5-2-.1 3 2-4.3s-2.4 7.2-1.5 9.9c0 0 .9-8.4 3.9-9.4l-2.8 6 .9-.1-.6 1.2h.7l-.9 2-.5 1 .5 1 .8-.7z"/>
+    <path id="path702" d="M547.1 269.6l.4.4s1.3-1.4 3.4.4l.3-.4c-2.5-2.1-4-.4-4-.4zm-.6-6.8v.5l.9-.4-.7 1.2 1.5-.5-1.8 2.3.4.3 2.9-3.7-1.8.6.8-1.3-1.6.6.3-1.9h-.5l-.4 2.3z"/>
+    <path id="path704" d="M543.9 263l.6 1.3-1-.4 2.9 5.2.4-.5-.6 1.5.5.2 1.2-3.2-.4-.3-1 1.3-1.8-3.1.8.3-.8-1.7 1.1.6v-1.9h-.5v1l-1.8-1.1.4.8zm-1.9 6.4l.2.5c.8-.3 1.5-.4 2-.2.5.3.7.9.7 1l.5-.2s-.2-.9-1-1.2c-.6-.3-1.4-.3-2.4.1zm2.3 5.4l-.5-2.8h.6l.4 2.7zm3.8-.4l-.7-2.2.5-.1.7 2zm1.4 1.5l-.5-2.1.5-.1.6 2.1z"/>
+    <path id="path706" fill="#00a651" stroke="#000" stroke-width=".5" d="M442.6 340.2s-2.4-1-3.5-.2c-1 .7-.9 1.9-1.8 1.8 0 0 3.6.8 4.3-.1l1-1.2m.4.7s-1.6 2-1 3.3c.5 1.2 1.7 1.3 1.4 2.2 0 0 1.5-3.3.8-4.3s-1-1.1-1-1.1m-2.8-5.8s-2.5.8-2.8 2c-.2 1.4.6 2.1-.1 2.7 0 0 3.2-1.8 3.1-3v-1.5m1.2.7s1.2-2.3.5-3.4c-.8-1.2-2-1-1.8-2 0 0-1 3.5 0 4.4l1.1 1m-2.2-.9s0-2.6-1-3.2c-1.2-.7-2.2-.1-2.5-1 0 0 .7 3.6 1.8 4l1.5.3m4.4 4.2s2.7-1 3 2c.2 3-.2 2-.2 2s-1.4-3.2-3-3.7l.2-.3z"/>
+    <path id="path708" d="M443 341.3l.2 2.2h.4l-.3-2.2 1-4.9h-.4l-1 4.9z"/>
+    <path id="path710" d="M440.5 340.6l-.1.3c1.3.5 3-1 3.1-1l-.2-.3s-1.7 1.3-2.8 1zm3.4-2.9l-6-3 .2-.5 6 3z"/>
+    <path id="path712" d="M439.5 337l-.4-.4 1.2-1.2.4.4zm2.1-.6l-1.3-2.8.5-.2 1.3 2.8zm1.8 3.4v.6c1.7-.1 2 1 2 1l.6-.2c0-.3-.7-1.5-2.6-1.4z"/>
+    <path id="path714" fill="#fff" stroke="#000" stroke-width=".7" d="M471.2 341c2-1 2.4-5 2.4-5-.5 1.4-4.2 2.9-4.2 2.9 2.7-1.7 6-9.4 6-9.4-.8 2.7-8 5-12.6 7.6-4.6 2.6-2.2 10-2.2 10-1.3-.9-3.8-4.8-4.3-8.3-.5-3.5-1.8-4.9-5-5.3-3.1-.4-5 3.2-5 3.2l-4.7 2.4 4.8.2s3.4 1.1 3.4 3.8c0 2.6-3 13.3 2 19.3 3.3 4.1 16 6.5 16 6.5"/>
+    <path id="path716" fill="#fff" stroke="#000" stroke-width=".7" d="M461.9 349.3s1-4.8 4.1-4.6c3.1.2 4-3.6 5.9-4.1 1.9-.6 11.5-3.2 12.5-7.8 0 0-.9 7.6-9.7 11.4 0 0 7.1-2.3 8-3.9 0 0-3.2 6.8-10.9 7.9 0 0 7.2-.6 8.2-2.5 0 0-3.2 4.2-8.5 4.8 0 0 5 2 6.2.3 0 0-2.7 3.2-6 3.4l1 .2s-3.2 3.8-6.7 1.3-3.6.6-3.6.6"/>
+    <path id="path718" fill="#fff" stroke="#000" stroke-width=".7" d="M469 356.5s4.1 6.8 4.5 10.4c0 0 7.8 8.5 10.7 9 0 0-1.4.6-4-1.5 0 0 2.2 2.2 2.6 2.3.4 0-1.7-.2-2-.8a6 6 0 001.4 1.5l-.5-.2s-1-.1-1.6-.5c-.5-.4-.1 1-.1 1s-1.2-.3-1.6-.7c-.4-.4.1.9.1.9l-1-.3-.8.5s0 .5-.5 0c-.5-.3-1.4 0-1.4 0s-.6.6-1 .2c-.3-.4-1.5 1.6-1.5 1.6l-5-12.3"/>
+    <path id="path720" d="M473.9 378.7l-6.4-12.2.6-.4 6.4 12.3zm5.6-.8l-11-12.3.6-.5 11 12.3zm2.5-1L469.5 365l.5-.5 12.5 11.7z"/>
+    <g id="g732" transform="translate(-96.9 97.5) scale(.66486)">
+      <path id="path722" d="M823.4 360.8s-1.2-2.2-2.3-1.3c-1 .8-1.6 1-1.8.9 0 0 1 0 1.7-.5.6-.6 1.6-.3 2.4 1zm-6.6-1l.7 1.4-.8 2.3.6.2.7-2.5-.7-1.6-.5.2z"/>
+      <path id="path724" d="M823.2 360.5s-1 1-2.2.8l-1.3-.3h1.8c.7 0 1.6-.3 1.7-.5z"/>
+      <path id="path726" d="M822.9 360.7s-1.2-1.2-2-.8c0 0 1.4-.5 2.2.7l-.2.1z"/>
+      <path id="path728" d="M822.7 360.5s-1.3.9-2.7 0l-.1-.2h.2s1.7.7 2.6.2z"/>
+      <circle id="circle730" cx="821.6" cy="360.3" r=".4"/>
+    </g>
+    <path id="path734" d="M450 359.6s-.7 1.2-.3 2c.3.7 2 1 2.1 2 .2 1 .8 1 1.5 1l.9-.3s-3.1-1.6-4-4.3l-.2-.4z"/>
+    <g id="g744" fill="#964b36" stroke="#000" stroke-width=".5">
+      <path id="path736" stroke-width=".3" d="M549.4 334.8s5.6-7.4 10.6-5.5c5 2 8.1 3 8.1 3s.1 4.9-2.5 4.9-5.2-5-7.6-3.5a13 13 0 00-4.5 4.2c-.1.7-6.3.8-4.1-3.1z"/>
+      <path id="path738" d="M528.2 370.4s-1.6 1.6-.9 2c.7.4 2.1 0 2.1-.6s-1-1.6-1.2-1.4z"/>
+      <path id="path740" d="M527 372s-3-1.7-5.2 2.2c-2.3 3.8-4.1 10.1-5.4 11-1.3.8 12.8-6.2 13-9.2 0 0 .9-3.8-.6-3.7-1.5 0-1.6.2-1.9-.4z"/>
+      <path id="path742" stroke-width=".3" d="M527.3 372.4s-3 .7-3.6 4.9c-.6 4.2-4.7 6.3-5 6.5m49.4-51.6s-4.4 1.6-3.7 4.7"/>
+    </g>
+    <path id="path746" fill="#fff200" stroke="#000" stroke-width=".3" d="M533.7 341.3s.2-10.6 8.9-10.2c1.6.2.8 2.1.8 2.1s2-1.3 2.8.8c0 0 2.7-1.2 3 1.5 0 0 3-.4 2.6 2 0 0 2-.5 2 1.2 0 0 2.3-.9 2 1.5 0 0 2.6-1.7 2.3 1.4 0 0 2.6-1.9 3.5 1.2 1 3.2-2.6 9.8-6.1 11.5"/>
+    <path id="path748" d="M557.9 342s1.1 8.2-3.5 11.3l.1.2c4.9-3 3.7-11.5 3.7-11.6h-.3zm-5.7 9l.2.2c3-2.9 3.7-10.6 3.7-11h-.3s-.7 8-3.6 10.8zm-2.7-1.9h.3a26 26 0 014.1-10.3l-.2-.1s-3.8 5.5-4.2 10.4zm-2.2-1.4h.3c.5-5.7 4.4-10 4.4-10.1l-.2-.2s-4 4.5-4.5 10.3zm-3-2h.3c.3-6.7 4.8-10 4.8-10l-.2-.3s-4.6 3.4-5 10.4zm-2.8-1.6h.3c-.2-6.2 4.5-10 4.6-10l-.2-.2s-5 3.8-4.7 10.2zm-5-2.3h.3a10.2 10.2 0 016.8-8.4v-.3a10.5 10.5 0 00-7.1 8.7z"/>
+    <path id="path750" fill="#00a651" stroke="#000" stroke-width=".3" d="M528.6 354.2s-1.5-9.9 4.4-13c0 0 1.1-.2 1.7 1.2 0 0 3.1-1.3 3.2 1.3 0 0 1.6-1.2 2 .5 0 0 3.3-.7 2.7 1.8 0 0 2.8-.8 2.5 1.6 0 0 2.8-1 2.4 1 0 0 3-.6 2.2 1.8 0 0 3.7-.4 2.6 2.1 0 0 2.7-.7 2 1.4 0 0 3.6.7 2 3a24.1 24.1 0 01-9.8 7"/>
+    <path id="path752" fill="#00a651" stroke="#000" stroke-width=".3" d="M525.4 364.1s-2.4-8.2 2.2-10.3c0 0 .9-.2 1 .6 0 0 1-1.3 1.8-.1 0 0 2.3-1.1 2.9.6 0 0 1.5-1.3 2.3.6 0 0 1.5-.6 1.5 1 0 0 2-1 2 1 0 0 2-.8 1.5 1.2 0 0 3 .5 2.1 1.9 0 0 2.7.7 1.7 1.8 0 0 2.8-.3 1.3 1.6 0 0 2.2-.7 1 1.7-1.3 2.4-5.2 5-8 5.4"/>
+    <path id="path754" fill="#00a651" stroke="#000" stroke-width=".3" d="M528.3 370.6s-5.1-5-2.7-6.4c0 0 1 .3 1.5 1.4 0 0 1.2-1.8 2 0 0 0 1.8-.6 1.8.7l1.4 1s1.7-.1 1.4 1c0 0 1.9-.3 1.8.7 0 0 1.6.1 1.5 1.2 0 0 2.8.5 1.5 1.9 0 0-4.8 1-8.3-.4 0 0-1.7-.6-1.9-1.1z"/>
+    <path id="path756" d="M545.9 362.4v.3a36 36 0 008.6-8.7l-.3-.2c0 .1-5.4 7.5-8.3 8.6zm-1.8-1.3l.2.3c2.6-1.5 7.9-8.5 8-8.8l-.1-.2c-.1.1-5.5 7.2-8 8.7zm-1.5-.6l.2.2a48 48 0 007-10.3l-.2-.1s-4.2 7.9-7 10.2zm-1.3-1.8h.3c.5-3.8 6-9.9 6-10l-.3-.1c-.2.2-5.5 6.2-6 10.1zm-10.9-4.7h.3c-.4-5.5 4.1-11.5 4.2-11.5l-.3-.2s-4.7 6.2-4.2 11.7zm2.9.5h.3c-.8-4.4 4.4-10.6 4.4-10.7l-.2-.2c-.2.3-5.3 6.4-4.5 10.9zm4.4 1.6h.3c-.2-5 4.6-10 4.7-10l-.2-.3c0 .1-5 5.2-4.8 10.3zm-10.5 9h.3c-1.8-4.7 1.2-10.6 1.3-10.6l-.3-.2s-3.1 6.1-1.3 10.9zm2 .4l.3-.1c-1.6-4.7 1-11 1-11l-.2-.2s-2.7 6.5-1.1 11.3zm8.3 4.7v.2c5-1.7 8.3-6.3 8.3-6.3l-.3-.2s-3.2 4.5-8 6.3zm-1-1.1v.3c4-1.8 7.7-6.8 7.7-6.8l-.2-.2s-3.7 5-7.5 6.7zm-1-.4l.2.3c3-2.3 7-8 7-8l-.2-.2s-4 5.7-7 7.9zm-5-2.9h.4a21 21 0 012.5-10.9l-.3-.1s-3.2 6-2.5 11zm2.2 1.4l.2.2c3.2-2.9 4.3-10.6 4.3-11h-.3s-1 8-4.2 10.8zm2.2.8l.2.3a17 17 0 005.7-9.5h-.3s-1.2 6-5.6 9.3zm.5-13.4v.9l-3.4 11 .3.1 3.4-11c-.5-5.4 4.2-11.3 4.3-11.3l-.3-.2s-4.3 5.3-4.3 10.5z"/>
+    <path id="path758" d="M539 357.3c0 .2-1.1 7.7-5.2 10.5l.2.3c4.2-2.9 5.2-10.3 5.2-10.7 1.8-2.1 6-9.7 6-9.7l-.2-.2s-4.2 7.6-6 9.8zm-12 8.3c0 .1.6 4 1.4 5.2l.3-.1c-.8-1.3-1.5-5.1-1.5-5.2l-.3.1zm1.9 0l-.1 5.3h.3v-5.3h-.2z"/>
+    <path id="path760" d="M529 371l.3.1c1.3-2.8 1.7-4.8 1.7-4.8h-.3s-.4 1.9-1.7 4.7zm.3.1l.2.3a6.6 6.6 0 003-4h-.3s-.6 2.4-2.9 3.7zm.5.2v.3c2.4-.2 4-3.1 4-3.3h-.2s-1.6 2.8-3.8 3z"/>
+    <path id="path762" d="M530 371.5v.3c3.9-.3 5.6-2.6 5.6-2.7l-.2-.1s-1.7 2.2-5.4 2.5z"/>
+    <path id="path764" d="M530.3 371.5v.3c.1 0 5 1.1 6.7-1.4l-.3-.2c-1.5 2.4-6.4 1.4-6.4 1.3z"/>
+    <path id="path766" fill="none" stroke="#000" stroke-width="2.8" d="M420.9 193.2v136.4c0 44.6 80.6 71 80.6 71s80.5-26.4 80.5-71V193.2z"/>
+  </g>
+  <g id="g1157" transform="scale(.5)">
+    <path id="path1135" fill="#012169" d="M0 0h640v480H0z"/>
+    <path id="path1137" fill="#FFF" d="M75 0l244 181L562 0h78v62L400 241l240 178v61h-80L320 301 81 480H0v-60l239-178L0 64V0z"/>
+    <path id="path1139" fill="#C8102E" d="M424 281l216 159v40L369 281zm-184 20l6 35L54 480H0zM640 0v3L391 191l2-44L590 0zM0 0l239 176h-60L0 42z"/>
+    <path id="path1141" fill="#FFF" d="M241 0v480h160V0zM0 160v160h640V160z"/>
+    <path id="path1143" fill="#C8102E" d="M0 193v96h640v-96zM273 0v480h96V0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/fk.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/fk.svg
new file mode 100644
index 0000000..28ad702
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/fk.svg
@@ -0,0 +1,90 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-fk" viewBox="0 0 640 480">
+  <defs id="defs2935">
+    <linearGradient id="b" x1="444.4" x2="470.9" y1="592.2" y2="577.1" gradientTransform="matrix(-1.08448 0 0 1.26674 909.5 -414.7)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="f" x1="851.8" x2="646.2" y1="369.9" y2="369.9" gradientTransform="matrix(.85733 0 0 .9624 -161.5 .3)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="c" x1="458.2" x2="520.5" y1="562.5" y2="552.8" gradientTransform="matrix(-1.01941 0 0 1.3554 909.5 -414.7)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="d" x1="472.4" x2="445.3" y1="578.7" y2="580.2" gradientTransform="matrix(1.08448 0 0 1.26674 49.7 -414.7)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="e" x1="518" x2="456.4" y1="553.7" y2="558.1" gradientTransform="matrix(1.01941 0 0 1.3554 49.7 -414.7)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="a">
+      <stop id="stop2921" offset="0" stop-color="#a43907"/>
+      <stop id="stop2923" offset="1" stop-color="#fff"/>
+    </linearGradient>
+    <linearGradient id="g" x1="388.5" x2="677.4" y1="507.2" y2="508.8" gradientTransform="matrix(.88927 0 0 1.54542 50.4 -413.6)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="h" x1="579.8" x2="556.8" y1="504.9" y2="505.9" gradientTransform="matrix(.91096 0 0 1.52008 49.7 -414.7)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="i" x1="581.4" x2="558.9" y1="512" y2="514.3" gradientTransform="matrix(-.88927 0 0 1.54542 908.8 -413.6)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="j" x1="552" x2="589.8" y1="517.9" y2="503.9" gradientTransform="matrix(-.91096 0 0 1.52008 909.5 -414.7)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="linearGradient3141" x1="444.4" x2="470.9" y1="592.2" y2="577.1" gradientTransform="matrix(.85733 0 0 .9624 -162.4 -.6)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+  </defs>
+  <path id="path2937" fill="#012169" d="M0 0h640v480H0z"/>
+  <path id="path2939" fill="#012169" fill-rule="evenodd" d="M0 0h400v200H0z"/>
+  <path id="path2949" fill="url(#linearGradient3141)" fill-rule="evenodd" stroke="#fff" stroke-width="10" d="M412.9 308.9a11.3 12.7 0 00-1.7 0c-3 .6-7.6 11.3-10 17.6-4.1 5.4-6.2 9.6-7.8 12.7-.7 1.2-1.7 2.6-1.4 4.2-6 1.6-6.3 7.4-6.3 9.6 0 2.5.7 3.7.7 3.7l3.6 7.5v.1c3.8 9 9.4 20.9 12.7 21.8 4.4 1.5 16-3.3 24.8-11.7a140.6 157.8 0 0053.2 12.1c20.4 0 38.7-5.5 53-12.1 8.8 8.4 20.4 13.2 25 11.7 3-1 8.7-13 12.6-21.8l3.5-7.6s.7-1.2.7-3.6c0-2.2-.3-8-6.3-9.6.3-1.6-.6-3-1.3-4.3-1.7-3.2-3.8-7.4-7.7-13-2.6-6.2-7.2-16.7-10-17.2-4.2-.8-13 1.5-13 2.4v.4l-17.7 18.6c0 .5.9 14 4.3 26a126 141.5 0 01-43.3 8.2c-17 0-31.5-3.4-43.2-8.3a116.6 130.9 0 004.3-26L424 311.8v-.4c0-.7-6.8-2.5-11.1-2.5zm4.4 23c2.3 0 4.6 2.2 6.5 4.4l-.1 1.3a67.5 75.7 0 01-2.8 10.2 73.6 82.6 0 01-12.2-9.9c1.9-2.3 5-5.4 8.2-5.8h.4zm126.6 0h.4c3.3.6 6.3 3.7 8.3 6a73.4 82.4 0 01-12.3 10 67.1 75.4 0 01-2.8-10.3 14.6 16.4 0 01-.2-1.3c2-2.3 4.3-4.3 6.6-4.3zm-142.4 26.4c2.4 2 5.4 4.4 9.1 6.8a10.5 11.8 0 01-3.2 1.6c-1.6.4-3.1.3-4.7 0a15 16.8 0 01-1-5.6 60.3 67.7 0 01-.2-2.8zm158.2 0l-.1 2.8a15 17 0 01-1 5.5 10.3 11.5 0 01-8-1.5c3.7-2.4 6.8-4.8 9.1-6.8z" opacity="1" stop-opacity="1"/>
+  <path id="path2951" fill="url(#b)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M426.2 339.6s-6.1-11.1-11.1-10.2c-5.1.7-10 7.8-10.2 8.2a44.5 52 0 01-7.5-9.5c.3-.4 7.8-20.9 12-21.8 4-.9 12.7 1.5 12.7 2.3z" opacity="1" stop-opacity="1"/>
+  <path id="path2953" fill="url(#c)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M439.8 327.7c0 .8-2.2 30.2-10.9 40.4-8.6 10.3-23 16.6-28.2 15.1-5-1.6-16.5-31.3-16.5-31.3s12.2 14.2 21.3 11.8c9.1-2.3 14.6-20.1 16.3-28.9 1.7-8.6.3-25.7.3-25.7l17.8 18.6z" opacity="1" stop-opacity="1"/>
+  <path id="path2955" fill="url(#d)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M532.9 339.6s6.2-11.1 11.2-10.2c5 .7 9.8 7.8 10.2 8.2a44.5 52 0 007.5-9.5c-.4-.4-7.9-20.9-12-21.8-4.1-.9-12.8 1.5-12.8 2.3z" opacity="1" stop-opacity="1"/>
+  <path id="path2957" fill="url(#e)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M519.3 327.7c0 .8 2.2 30.2 10.9 40.4 8.7 10.3 23 16.6 28.2 15.1 5-1.6 16.6-31.3 16.6-31.3s-12.3 14.2-21.4 11.8c-9-2.3-14.5-20.1-16.2-28.9-1.8-8.6-.4-25.7-.4-25.7l-17.8 18.6z" opacity="1" stop-opacity="1"/>
+  <path id="path2959" fill="url(#f)" fill-rule="evenodd" stroke="#000" stroke-width="1.5" d="M401.2 326.2c-4 5.5-6.1 9.8-7.9 13-1.7 3.2-.6 7.7 3.2 14 4.3 6.7 39 33.4 84.1 33.4 45.2 0 79.8-26.6 84-33.4 4-6.4 5-10.8 3.3-14-1.7-3.2-3.9-7.5-7.9-13 0 8.3-28.7 38.5-79.4 38.5s-79.4-30.2-79.4-38.5z" opacity="1" stop-opacity="1"/>
+  <path id="path2961" fill="url(#g)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M557.7 378.8l7.8-15.1-3.9-3.2c-1 3.8-5.5 5.1-6.3 10-.7 4.7 3 9.4 2.4 8.3z" opacity="1" stop-opacity="1"/>
+  <path id="path2963" fill="url(#h)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M564.8 374.5s1.4-6.8-3-7.6c-4.4-.8-6.8 3.8-6.1 2 .6-2 3.2-4 3.7-10.7.3-6.7-.4-10.3-.4-10.3s1.8-8.7 8.8-7.5c7.2 1.3 7.5 7.6 7.5 9.9a9 9 0 01-.6 3.5z" opacity="1" stop-opacity="1"/>
+  <path id="path2965" stroke-width=".8" d="M539.2 351.7l1.5 2.8 1-.6-.7-2 .1-.3 1.7-1.2 4.4 8.7v.5l-1 .7.5.8 4.2-3-.4-.8-1 .6h-.3l-4.4-8.8 1.6-1.2h.4l1 1.6 1-.7-1.5-2.8-8 5.7zm-10.5 6.7l.4.8.9-.4.3.1 3.9 8.9-.1.4-.8.6.3.8 4.1-2.5-.3-.8-.9.4h-.4l-1.8-4.3 4.3-2.4 1.8 4v.5l-1 .6.4.9 4.2-2.5-.4-.8-.9.4-.3-.2-3.8-8.8v-.4l.8-.6-.3-.8-4.1 2.5.3.8 1-.5.3.2 1.5 3.6-4.2 2.5-1.6-3.7.2-.4.8-.5-.4-.9zm-2.4 7.6l.2.8 1.2-.3.4.1.9 3.7-.8.4c-2.5.8-4.4-.5-5.3-3.7-.8-3.2.2-5.6 2.5-6.4a3.5 4 0 011.4-.1l.3.2.8 1.7 1.2-.4-.7-3c-1.3 0-2.5.2-3.5.6-3.6 1.3-5.2 4.5-4.3 8.2 1 3.7 3.9 5.4 7.2 4.3a11.3 12.7 0 003.4-2L530 366l.2-.4.9-.4-.3-.9zm-9.7 10.3l4.7-1.7-.3-.9-1 .2-.3-.1-2.6-9.6.1-.3 1-.5-.2-.8-4.7 1.6.3.9 1-.3.4.2 2.5 9.5-.2.4-1 .4.3.9zm-25.5 4.6l8.3-.8-.3-3.4-1 .1-.2 2-.2.3-3.5.4-.4-4.9 2-.2.3.3.2 1.3h1l-.4-4.4h-1v1.4l-.2.4-2 .1-.4-4.4 3.1-.3.2.2.4 1.7 1.1-.1-.2-3-7.8.8v.9h1l.3.3.7 9.9-.1.3-1 .2v1zm-12.4-12.3v1h1l.2.3.1 9.9-.2.3-.9.2v.8h4.4v-.9h-1l-.2-.4V375h4.4v4.6l-.2.3-.9.1v1h4.4v-1h-1l-.1-.4-.2-10 .2-.3h1v-1h-4.5v1l1 .1.2.3v4l-4.3.1-.2-4 .3-.3h.9v-1zm-9.4-.3v3.3h1l.3-2 .2-.3h1.9v10.2l-.3.4h-1v1h4.6v-.9l-1-.1-.3-.4.1-10h1.8l.3.2.3 2h1v-3.3zM455 378.9l8 .4.2-3.3h-1l-.3 1.9-.2.2-3.5-.1.2-5 1.9.2.2.3.2 1.4h.8l.2-4.3h-.9l-.2 1.2-.2.3h-2l.2-4.6 3 .2.2.2.1 1.7h1.1v-2.9l-7.5-.4v.9l1 .2.1.3-.4 9.9-.2.3h-1v.9zm-18.6-5.4l4.4 1.6.2-.8-1-.5v-.4l2.5-9.5.3-.2 1 .3.2-.8-4.3-1.7-.2.9.9.4.2.4-2.7 9.4-.2.3-1-.3zm-7.6-3.3a8.4 9.4 0 002.6 1.6c2.4.8 4.3-.2 4.8-2.2a3 3.5 0 00-.5-3.2l-1.8-2c-.6-.9-.8-1.6-.6-2.5.3-.9 1.1-1.4 2.2-1 .4.2.8.4 1 .7v.3l-.2 2 1 .3.8-2.8a8 9 0 00-2.5-1.7c-2-.8-3.8.3-4.4 2.2a3.2 3.5 0 00.4 2.8c.4 1 1 1.5 1.5 2 .9 1 1.2 2 1 2.9-.3 1-1.2 1.5-2.4 1a4 4.5 0 01-1.2-.8l-.1-.3.4-2.2-1.1-.4zm-9.8-4.6l7.4 4 1.2-3-1-.5-.9 1.7-.3.1-3.1-1.8 1.8-4.3 1.8 1v.3l-.3 1.3.8.5 1.6-4-.8-.4-.7 1.1-.3.2-1.7-1 1.6-4 2.7 1.5.1.3-.4 1.6 1 .5 1-2.6-6.8-3.9-.4.8.8.6.1.4-3.6 9h-.3l-.9-.3zm-1.1-15l-3.7-2.9-.5.8.7.7.1.4-4.6 8.2-.4.1-.7-.5-.5.8 3.6 2.8c1.4 1 2.5 1.5 3.6 1.4 1.6-.2 3-1.2 4-3 1.8-3.4 1.3-6.6-1.6-8.8zm-1.6 0l.8.6c2 1.5 2.2 3.7.5 6.6-1.7 3-3.5 3.6-5.4 2l-.8-.4 5-8.7zm29.3 13l-.1.8.9.3.1.4-1.7 9.7-.3.2h-1v.8l4.1 1 .2-.8-1-.4-.1-.3.7-4.1h.3c1.5.4 1.8 1.3 1.8 3.2.1.9.1 1.7.8 2.7.3.4.7.8 1.4.9a10.1 11.4 0 001.5.2l.1-.8h-.1c-1-.3-1.5-.7-1.5-1.8-.2-1 0-2-.4-3a2.6 2.9 0 00-1.3-1.4c1.7 0 2.7-.9 3-2.5.4-2-.5-3.5-2.9-4l-4.4-1.1zm3 1.7l.6.2c1.4.4 2 1.4 1.7 2.9-.3 1.7-1.2 2.3-2.8 1.8l-.5-.1.9-4.8zm54.2 1l.1 1h1l.3.2 1.4 9.8-.2.3-1 .3.2.8 4.5-.8v-1l-1.1.2-.3-.3-.6-4h.3c1.6-.5 2.2.2 3 1.9.3.8.5 1.6 1.5 2.2.4.3 1 .4 1.8.3a12 13.6 0 001.6-.5l-.1-.9h-.2c-1.1.3-1.7 0-2.2-.9-.4-.8-.7-1.8-1.3-2.5-.4-.5-1-.8-1.8-.8 1.7-.8 2.5-2 2.3-3.7-.3-2-1.7-3-4.2-2.5zm3.5.5h.7c1.6-.4 2.5.2 2.8 1.8.2 1.6-.5 2.6-2.2 3h-.6l-.8-4.8z" opacity="1" stop-opacity="1"/>
+  <path id="path2967" fill="url(#i)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M401.5 378.8l-7.8-15.1 3.9-3.2c1 3.8 5.5 5.1 6.3 10 .7 4.7-3 9.4-2.4 8.3z" opacity="1" stop-opacity="1"/>
+  <path id="path2969" fill="url(#j)" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M394.3 374.5s-1.4-6.8 3-7.6c4.4-.8 6.8 3.8 6.2 2-.7-2-3.3-4-3.7-10.7-.4-6.7.3-10.3.3-10.3s-1.7-8.7-8.8-7.5c-7.1 1.3-7.5 7.6-7.5 9.9 0 2.2.7 3.5.7 3.5z" opacity="1" stop-opacity="1"/>
+  <path id="path2971" fill="#0072c4" fill-rule="evenodd" stroke="#fff" stroke-width="3.9" d="M480.5 356.1s-82-27-81.4-129.4l.6-135.6H561l.6 134.8c.5 102.4-81.4 130.1-81.4 130.1z" opacity="1" stop-opacity="1"/>
+  <g id="g2985" fill-rule="evenodd" opacity="1" transform="matrix(.73276 0 0 .82256 122.8 17.5)">
+    <path id="path2973" fill="#bcbcbc" d="M392.3 129c.2 0 1.5-1.3 2.8-2.4 1.7-1 3.3-2.1 5-3 1.4-.7 4-1.3 5.1-1.9a12.5 12.5 0 004.2-3.4c.2-2.1.5-3.7.5-6.2 1.8-1 3.4-1.8 5-2.4 2.3-.7 2.8-1.6 5.1-2 1.5-.5 3.9-.5 6-.5 2.3 0 3.7 1.7 5.8 2 2.5 1 3.6 1.7 5.6 3.4 1 1.4 1.7 2.6 3.6 3.6 1.5.8 2.9 2 4.6 2.4 2 1.1 3.6 1.8 5.1 3.4 1.4 1 2 2.4 3.2 3.4a36.1 36.1 0 004.7 3.4c2 1.3 4 2.3 7.1 2 1.7 0 3.5-.3 5.5 0 2.3 0 4.5 0 6.5.6 2.4 0 4.3.3 6.5.5 2 .3 4.1.4 6.4.4 2 .6 4.2.5 6.5.5h13c2.3 0 4.7.1 6.4.5a51 51 0 006.5-.5c2.5 0 4.4-.4 6.9-.5h7.8c2 .6 4.6 1 6 2 1.9.5 2.8 1.4 4.6 1.9 1.5.7 3.6 1.9 4.7 3.4a24.7 24.7 0 013.7 5.3c1.2 1.8 1.7 4 2.7 6.3.6 2.2 1 4.3 1 6.7.5 2.1.4 4.4.4 6.8-.5 2.2-.6 4.6-1.4 6.7 0 2.4-.5 4.5-.9 6.3-.4 2-.9 3.3-1 5.8v6.8c0 2.2-.6 3.8-.8 6.2a71 71 0 00-3.3 7.3 14.7 14.7 0 00-3.7 3.8c-1 .6-1.5 1.6-1.3 2 1.8.6 1.3 1.9 1.3 4.3.3 1.9.5 4.2 1 6.3.1 2.3.6 3.7 1.3 5.3.8 1 1 .5-.9.5-1.3 1-2.7.5-3.2-1.5a12 12 0 01-1.9-5.3c-.2-2.2-.6-4.4-1.3-5.8-.3-2.7-1-2.7-3.7-2.9-1.3-1.1-3-1.4-5.6-1.4-2.5 0-2.7-.3-2.7 2.4v6.8c-.5 2-1.4 3.5-1.9 5.3-1.4 1-2 2.7-3.7 3.8-.8 2.2-1.9 2.6-4.1 3l-2.8-3.4c1.3-2.2 2.4-2.5 3.2-4.9 1-1.9 1.6-3.1 2.3-4.8-1-1.5-1.8-2.2-2.7-4.3a26.3 26.3 0 01-2.3-5.3c-1.6-.6-4-.7-5.1-1.5-2.3-.5-2.9 2-5.6 2h-6.4c-2.9 0-3.6 1.5-6 1.4-.7.2-2.5-.1-5.1 0-2 .7-4.3.5-6.5.5-2.3 0-4.2-.6-6-1-2.1-.6-4.2-1.2-6.4-1.4-2.7 0-3.8.2-5.6 1.4-1.4.9-3.5 2.8-5 3.9-.7 1.6-1 4.3-2 6.2-.4 2-1.2 3.1-1.7 4.9a18.4 18.4 0 00-1.4 5.8c-.2 3.2-.9 2.8-2.8 1.9-.8-1.4-2-2.8-2.8-4.4.4-2.4 1-3.6 1-6.2-.5-2-1.5-1.8-2.8-.5 0 2.5 0 4.5-1 5.8a6 6 0 01-2.7 3.8c-.7 1.8-2.2 2.7-3.7 3.4-.2 0 0-.6 0-2-1.1-2.1 0-4 0-6.7 0-2.4-.2-4 .5-6.2 0-2.4-1-4.6-1.4-6.3-.9-1.8-1.4-2.7-3.7-3.4-1.7-.7-4-1.5-5.1-3a9.6 9.6 0 00-4.2-3.3c-2-.7-3.1-1.5-4.6-2.4-1.4-1.6-2.6-2.2-3.2-4.3-1-1.5-1.1-4.3-1.8-6.3a21.7 21.7 0 00-1.4-5.8 24.3 24.3 0 00-1.4-5.8c-.3-2-.8-4-1.4-6.3 0-2.3 0-4.6-.5-6.7v-6.8c-.3-2-.4-4.8-.9-6.3 0-2.6-.3-4-1-5.8-1-1.7-1-2.4-2.7-2.9-1.2 1.5-3.1 2.2-5.5 2.5-1.7-.4-4.1-.7-6-1.5-1.9-.4-3.1-1.2-4.6-2a43.2 43.2 0 00-2.8-3.8c-.3-2.5-.8-3.8-1-6.3 0-1.8.1-.8 2-3.3z"/>
+    <path id="path2975" fill="#fefefe" d="M419.6 146.4l.4-.4c-.8.8-.5.4 1.3-.3 1-.6 2.9-1.7 3.6-2.4.8-.4 2.2-1 3-1.7.8-1 1.7-1.8 2.9-2.7 1.2-1.1 2.4-1.5 3.9-2.4 1.8-.2 2.5-1 4.2-.4 1.6.4 2.3.4 3.6-1 1.3-.8 2.8-1.7 3.3-3V130c0 2.2-.5 3-2 3.7-1 1.3-2.4 2.6-3 3.8-1 1.5-1.2 2.3-2.2 3-.9 1.1-2.3 1.7-2.6 3.5.4.8 0 1.2 1 1.3.9.8 1.9.5 3.2 0a14.2 14.2 0 002.6-4c1.1-1.6 1.7-2.3 2.3-3.5 1.2-.8 1.9-1.4 2.3-2.7 1.3-.8 2.4-1.6 3.3-2.4 1-.6 1.5-1.1 2.9-1.4a6 6 0 01-1 3.8c-.3 1.9-.2 2.8.4 4 .9.7.7 1.2 1.3 2.5.5-1.2.8-3.4 1-4.8v-.3c0 1.4 0 3.4-.4 4.4 0 2 .5 2.9 1 4.4.5.8 1 1.3 1.6 1.7 0-2 .6-3.2.7-5 .4 1.3.3 3.2.6 4.7.1 1.6.7 2.8 1.3 4.1.8.4 1 1.8 1.3.7.8-2.4.8-5 1.3-7.5.1-1.3.2-3.2.7-4.1l-.7 4c.1-1.2.2-3 .7-4v-.4a39 39 0 01.7 5.5c0 1.5-.1 3 .3 4.4 1-.5 1.7-1.7 2.3-3a18.2 18.2 0 012.6-3.8l-2.6 3.7a18.2 18.2 0 012.6-3.7v-.3a40.3 40.3 0 00-.3 4.7c0 1.6 0 3.4.3 4.5.4 1.8.9 2.1 1 4 0 1-.2 2 .3 2.5 1.4.3 1.4-.5 1.6-2.4 0-2.2.6-3.7.7-5.8 0-2.6.3.3.6 1.3a13 13 0 011 4.5c0 1-.1 1.9.3 2.4 1.3-.6 1.8-2 2.6-2.8.7-1.6 1.4-2.3 2-3.4 1.7-.3 1.6-1 1.6-3 0-1.7-.1-3.4.4-4.8a41 41 0 001.3-4.5c.6-.3 1.2.6 1.6 1.4.7 1.1.6 2.7.6 4.4.4 1.5 1 2.7 1.7 4.1a15 15 0 002.3 3.4c.3 1.1.3 3 .3 4.5 1.3-1.5 1.5-3.6 1.6-5.8-.2-1.5-.2-3.4-.6-4.8 0-1.5-.4-3-.7-4.1-1-.5-1.3-1-.3-2.4 1-.9 2.2-.5 3.9-.3.9.9 1.2 1.4 1.3 3.4 0 1.8 0 3.2.7 4.4.6 1 1.2 1.7 1.6 3.4.5.5.9 1.2 1.6.4.4-1 .7-3 1-4.1.3-1.3.9-2 1.6-2.4 0 1.9 0 3 .7 4.4.6 1.5 1 2.1 1.6 3.8.7.5.8 1.5 1.7 2 .2-1.6.3-3.4.3-5.4V145c.1-1.6.5-2.5 1-3.8 1 1.4 1 1.9 1 3.8 1-.4 1.2-1.2 1.6-2.4.7-.7 1-1 1.3.7.2 1.8.6 3.4 1 5.1.6.8 1.4 2.7 2.2 3.4a16.4 16.4 0 002 2.8c.5 1 .6 1.7 2 2 0-2.3 0-4.6-.4-6.8 0-2-.4-2.7-.6-4.5-.6-1.1-.9-2.9-.7-3.4a11 11 0 013 4.1c.7 1.7 1.4 2.8 2 4.5a20 20 0 012.5 3.4c1.2 1 1.8 2.1 3 3 .6.6 2 1 2.3.7-.1-2-.4-3.7-1-5.4a9 9 0 00-1-4.1c-1.3-1.1-2.3-1.9-3-3.4-.4-.5-.5-.8-.6-1.7a26.3 26.3 0 014.6 4.7 7 7 0 002.6 2.4c.6.8 2.5 1.7 3.9 2a5.6 5.6 0 003.3 2.1l-3.3-2a5.6 5.6 0 003.3 2v.4a13 13 0 00-2-5.5 8.8 8.8 0 00-3-3.8 9.3 9.3 0 00-3.2-3c-.9-1-2.2-2.8-3-3.4 1.5-1 3.1.6 4.6 1.3 1.3 1.4 2.5 3.2 3.3 4.1a18 18 0 003 4.5c1.4.8 2.3 1.6 3.5 2.7 2 .5 1.2-.2.7-1.7-.7-2 0-2 1.3-.7.9.7 2 1.7 3.3 2.4.5.7 1.4 1.2 2.2.7.4-.5.4-.5.4-1-.7-2.2-1.3-3.8-3-4.5-.7-1-2-2-3-3-.6-1-1.3-1.6-1.9-2.8l2 2.7c-.7-1-1.4-1.5-2-2.7h-.3c2 0 2.7.6 4.2 1.4a6.8 6.8 0 013 2.4c.6.8 1.6 1.7 2.3 2.7l3.2 2.4c1.1 1.4 1.3 2.3 1.3 4.4.7 1 .8 3 1 4.1-.2 1.9-.9.4-1-.7-.2-1.5-.8-1.4-2-1 0 2 .3 2.6 1 4.1a8 8 0 01-1.2 3.4c-.8.5-1-1-1.7-1.7 0-2-.6-2.3-2-3.4v1.4c.8 1.4 1.6 2.7 1.7 4.7a12 12 0 01.7 4.5c0 1.7 0 3.3-.4 4.8 0 1.8-.3 2.6-.3 4.4v9.6a23.3 23.3 0 00-.3 4.4l.3-4.4c-.3 1.2-.3 2.7-.3 4.4v.3c-.6-1.7-1.3-3.2-1.7-5a10.3 10.3 0 01-2.2-3.5c-.3-1.5-.4-3.2-.7-4.4-.5-1.2-1-2.5-2-1.7-.4 2.5.1 4 1 6.4.5 1.6.5 3 1 4.5.8 1.8 1.4 2 0 4-.7 1.2-1 1.5-1.3 2.8-1.2.6-1.5 1-1.6 2.4-.4-1.3-1.4-2.9-2-4.4-.6-1.7-1.3-3.4-1.6-4.8-.8-1.2-1.8-3-2.6-3.8-.9-1-2-3-2.6-4-1.3-1.5-1.6-2.4-2.7-3.1-.2-.7-.6-1.6-1.3-1 0 1.6 0 3.3.4 4.7.3 2 .9 3.1 1 5.1v3.8c-.8-2-1.7-3.6-2.3-5.5-.8-1-1.5-3-2.3-3.7-.6-1.4-1-2.5-1.7-3.4-.1-1-.6-1-1-1.7 0 1.9.7 2.6 1 4 .7 1.4.9 3.5.7 4.2-.8-2.4-1.6-5-2.6-7.2-1-1.4-2-3.2-2.6-4.5-1-1.1-2-1.2-3-2a5.9 5.9 0 01-2.3-1.7c.3 1.8 1 3 1.3 4.4.3 1.7 1 3.1 1.3 4.5-.3 2.3-.8-.7-1.3-1.7-.3-2-1-3-1.6-4.1-.9-.7-1.7-1.8-2.6-2.4-1-.4-.6 0-.6 1.3 0 2.1 0 3.5.6 4.8.7 1 .7 2.3.7 4.1-.1 1.7-.4 3-.4 4.8v2.7c-.7-1.4-1.4-2.3-2-4.1-1-1.6-1.4-2.7-2.2-4.4-.7-.3-2-.6-2.6 0 .1 1.7.9 2.4 1 4.4-1.3 1.3-1.1 1.7-2-.3-.7-1.6-1.6-1.5-2.6-2.4-1.7-.2-1.1-1.3-1.6-2.8 0-1.3 0-2.6-.4-3.7-1.8 0-2.8 0-3.9 1-.5 1-.3 3 0 4.5v4.7c-.4 1.2-1 1.3-1.3 2.8-.6 1.4-.8 3-1.3 4-1.2 1.1-.7 1.2-1.3-.6v-11c0-1.8.3-2.7.3-4.4-.7-1.4-.8-1.7-3-1.7-.4.9-.2 2.5 0 3.4 0 1.7.2 3.3.4 4.5 0 1.8.2 2.9.3 4.4 0 1.8-.4 3.2-1.3 4-1.1.4-.1 1.2-1.3 1.5a15 15 0 01-3.6-2.4c-1.2-.4-2.4-.7-4.2-.7-2.2 0-2.2-.3-3-2a31.4 31.4 0 01-1.3-5.5c-.7-1.6-.8-2.7-1.3-4.5a6.2 6.2 0 00-2-2.4c-.4 1.8-.8 3.2-.9 5.2-.4.8-.5 2.8-.7 3.7-.6-1-.9-3-1.3-4.4-.6-2-1.1-3.4-3.2-2.7-2.2 0-2.3 0-2.3 2.4l2.6 4v4.8c0 2 .1 2.6-1.3 3-.5-2-1.7-4-3-5.7-.1-1.4-.5-1-1.9-1-.9 0-1.8-.2-2.3.3v3c-.8.2-1 0-1.6-.6-.6 1-.2 2.4 0 3.7-.4 1.6-1 3-1.6 3.8-.2-.5-.5-.3 0-.3-2.3-.9-4-1.4-6-2-1 0-1.9 1.1-2.5 2-1.7.5-2.4 1-4.3 1-1.8 0-2.6.3-4.2.3-1.2.3-2.7.4-4.3.4-.8-.3-2.4-.3-2.9-.7.7-1 1.4-1.5 2-3a20 20 0 002.6-2.5c.8-.6 1.8-1.9 2.6-2.7.5-1.7 1.2-2 2.3-2.7 2 0 2.3.7 4.2 1 1.9.7 3 1 4-.4 1.5-.6 2.8-1.7 4.5-2l3.3-2c1.4-.9 2-1.8 3.2-2.8.4-1.4 1.4-2.5 1-4-1.8-.5-2.9-.4-4 .6-1.3 1.2-1.6 1.7-3.2 2.7-1.3.4-2 1-3.6 1.4-1.3.5-3 .3-4.5.3s-3.4-.1-4.3.4c1.5-1 3.2-2 4.6-2.4 1.3-.9 1.8-1.3 3.6-1.4.8-1 1.6-1 2-2.7.5-2-1.3-1.4-2.7-.7-1.3.3-2.8 1.2-3.9 1.7a14.3 14.3 0 01-4.2.7c-.4-.6.3-1.1.6-2 1.5-.6 1.8-.8 2-2.4-1.8.2-2.4.8-4 1-1.6.4-3.3.6-5.2.7h-4.5c-1.6 0-2.5-.4-4.3-.4-1.3-.7-1.3-1-1.3-3 1-1.2 2-1 4-1l3.5-1.8c1.2-.2 2-.7 1.7-1.3h-4.6c-1.8-.8 0-1.1 1-1.7 1.5 0 3.2 0 4.2.6 2 0 2.7-.7 4.2-2 1.3-1 2-1.7 3.3-2.4 1-1.1 2-1.7 2.6-2.7 1.4-1.3 2.3-2 3-3.1.8-.5 1.4-1 1-1.7-2.1.2-3 1-4.3 2a10 10 0 01-2.6 2 8.2 8.2 0 01-4.3 1.5c-1.6 0-3-.3-4.5-.4-1.8-.2-.2-.6.3-1.4.7-.4 1.2-1.5.6-2.3-1.3-.5-3-.4-4.5-.4h-4.6c-1.7 0-2.4-.4-3.6-1-.3-1 0-.7 1.3-.7a18 18 0 004.3-.7c1.5-.4 1.7-1 2-2.7-1.6 0-3.3 0-4.3-.3zm-28.2-7.8c-.3-2.5-.9-3.8-1-6.3 0-1.8.1-.8 1.9-3.3.2 0 1.5-1.3 2.8-2.4 1.7-1 3.3-2.1 5-3 1.3-.7 4-1.3 5.1-1.9a12.5 12.5 0 004.2-3.4c.1-2.1.4-3.7.4-6.2 1.9-1 3.5-1.8 5.1-2.4 2.3-.7 2.8-1.6 5.1-2 1.5-.5 3.9-.5 6-.5 2.3 0 3.7 1.7 5.8 2 2.5 1 3.6 1.7 5.5 3.4 1.1 1.4 1.8 2.6 3.7 3.6 1.5.8 2.9 2 4.6 2.4 0 1.8.4 1.5-.8 1.5-.2 1.8-.6 1.6-2.3 1.7a8 8 0 01-3-2.8c.7-1.7.3 1.5 0 2.1-.8.7-1.3 1.4-2.2.7-.6-1.7-1-2.8-1-4.8-.3-2.1-.9-.6-1.3.3-.5 1.8-.3 2.4.3 3.8-1.7 0-3-.2-4.2-.4-1.2-.3-2.6.1-4 .7-1.7 1.1-1.1 1.1-.3 2.4 1.5.5 2.6 1.3 4 2 1.4-.2 3-.6 4.5-1 1.6-.5 3-.2 4.6 0 .8.5 1.8.5 2.3 1 0 1.1 0 2.2-.4 2.8-.6.5-1.3 1.7-2.3 2a16.1 16.1 0 01-4.5 1.8c-2 0-2.8.5-4.3 1.3-.2 1.8-.7 2.2-2.3 2.8a10.3 10.3 0 01-4.5 1c-1 0-1.9.1-2.3-.4a12.8 12.8 0 002.6-4c.3-.8.9-1.2.3-1.8-1.9.1-2.4.1-2.6 2-.2 1.9-.9 2.2-2.3 2.8.4-1.7.5-3 1-4.4a25 25 0 01-4.2.3c-1 .6-1.4.9-1 2-1.3.5-3 .2-4.6 0-1.4 0-.6-.6-1.6-1.3-.7-1.3-1.4-1.6-3-1.7-.7 1-2 1.3-2.9 2-1.4.5-2.3.1-3.6-.6-1.6 0-1.4.5-1 1.7.7.4 0 .9 1 1 1 .8 1.8 1 3.6 1 1.4-.4 3-.3 4.6-.3 1.6 0 1.3.4 1.3 2-1 .8-2.6.7-4.3.7a16.6 16.6 0 01-3.9-1c-1.5-.1-2.7-.4-3.9 0-.5.6-2 .8-.3 1 .7.7 4.5.3 4.7 1.5 1 1 .7 2.3-.8 2.3a2.2 2.2 0 00-2.3 0c-1 .2-2.4 0-4.3.2 2.5.2-1.8-2.7-2.7-3.9z"/>
+    <path id="path2977" fill="#bcbcbc" d="M401.7 127.3l-2 1.3c-1.4.8-3 2-3.9 2.7-.7.6-.7 1-1.6 1 1.5-.2 2.2-.6 3.6-1.3 1.7-.2 3.3-.6 4.2-1.4.9-.3 0-1.6-.3-2.4zm15-16.1c.2 0 .6 1 1.3 1.7.5 1.3 1 2.2 1 3.8.4-1.7 1-3 1.3-4.8-.5-1-.5-1.3-2-1.4 0 1 .2.3-1.6.7z"/>
+    <path id="path2979" fill="#c4c4c2" stroke="#000" stroke-width=".9" d="M349.4 417.7c-.5 0 .8-.5 1.3-.6.4-.8.6-1.3 1.3-1.8 1.1 0 1.7.4 2.2 1.1 1 .3 1.3.7 2.4.9.5.4 1 .4 0 .7-.6.3-1.5.4-2.6.4a7.2 7.2 0 00-2.6.7c-1.5 0-1.3 0-2-1.4z" transform="matrix(1.48 0 0 1.54 -109.5 -520)"/>
+    <path id="path2981" fill="#bcbcbc" d="M422.6 111.5v.4c0-1 0-.5.3 1.4a9 9 0 01.7 4 6.7 6.7 0 002-3c0-2.7-.5-2.6-3-2.8zm12 39.3h.4c-1 0-.4 0 1.3-1 1.1-.8 2-2 3.6-2.4a13 13 0 014.2-2.4c.8-.4 1.5-1 2.3-.3-.2 1.6-.5 2.3-2 3-.7 1-1.8 1.6-2.9 2-1 .6-2.2.6-2.6 1.8-1.8.8-2 .6-4.2-.7zm6.3 9.9c.5-.5 2.6-2.6 3.6-3.4a15 15 0 013.2-3.4c1-1.5 2.2-2.5 3-3.8l2.6-3.4c0 1.5-.2 3.5.3 4.4a7 7 0 01-1 4.1c-.7 1.2-1.3 2-3 2.8-1.4.8-2.3 1-3.5 2a26 26 0 01-3 1.7c-.9.4-.5.3-2.2-1zm-10.2 7.8h.4c-1 0-.5.1 1.3-1 1.4-1.4 2.5-2 4.2-2.7a10.3 10.3 0 004-1c.7-.2 1.3-.7 1.9 0 1 1.4 1.3 1.8-.3 2.7a9.4 9.4 0 01-3.3 1.7c-.8.7-2.4.7-4 1-1.2 0-2 .2-2.5-.7l2.6.7c-1.3 0-2 .2-4.3-.7zm14 0v-.3c0 1 0 .5.7-1.4 1.3-1.9 1.7-3 3.3-3.4.7-1 2-1.2 3.6-1.7.6 1 .1 2.2 0 3.4-.4 1.3-1.6 2.2-2.3 3.1-1 .7-1.4 1.4-3 1.7-1.2 0-.5 0-2.2-1.4z"/>
+    <path id="path2983" d="M412.8 124.2c0 .9-.7 1.7-1.6 1.7-1 0-1.7-.8-1.7-1.7 0-.9.8-1.7 1.7-1.7.9 0 1.6.7 1.6 1.7z"/>
+  </g>
+  <g id="g2991" fill="#005120" fill-rule="evenodd" stroke="#002b0d" stroke-width="1pt" opacity="1" transform="matrix(.73276 0 0 .82256 122.8 17.5)">
+    <path id="path2987" d="M351.8 479.6h.9c-2.8 0-1.1-.2 3.5 3.5 2-1.6 2-1.8 3.5 1 1 1.5 1.2-.2 2.7-1.8.7 3.2 1.1 6.5 3.5 3.5 2.8 0 5.6-.2 7.1.9 1.8 3.3 1.2-.6 2.6.9 4 .4 3.9-3.4 8.1-4.4 2.6 3.3 3.8.8 7-.8 2.5.6 4.8 4.3 5.3.7 2-3.2 2.1-3 3.5 0 2 1.8 2.8-.8 4.4-1.7 3 1.7 6.3 2 10.6.9.8 2.9 2.6 1.6 4.5.8 3.9 1.7 5.2 2.2 9.7 0 2.2-2.6 1 .1 2.6 1.8 3.3-1 2.4-1.2 6.2-.9 3.9 0 4.2 0 5.3-2.6 2 1.9 2.6 3.3 5.3.9 4.2 0 2.9.5 5.3-1 1.9 4 2.3 1.2 4.5 2.7a14.5 14.5 0 01-6.2 7c-1.7 3-2.8 6-6.2 7.2-2.5 2.5-5.2 4-8 6.2-3.8 1-8 .8-12.3.8H388c-2.6 1.4-7 2-10.6 2.7-4 0-8.7 0-11.5-.9-1.9-1.9-5.2-4-7-6.2-2-1.5-2-4.4-3.6-6.2-1.4-2.5-2-6.5-3.5-8.8z" transform="matrix(1.48 0 0 1.54 -103 -521.4)"/>
+    <path id="path2989" d="M437.5 487.6v.8c0-2.4.1-1.1-1.8 3.6-.3 1.1-1.2 1.4-2.6 1.8m-3.5-2.7h.9c-3.3 3-5.5 4.5-6.2 8l6.2-8c-3.3 3-5.5 4.5-6.2 8m-7.1-12.4s-.1 3.1-.9 4.4m-2.6 1.8v.8zm-7.1-5.3h.9-1c.4 0 .7 0 0 0zm-49.5 0c.4 0 2.2 2.8 4.4 4.4-.5 2.6-1.4 5.6 0 8m2.7-7.1c.4 0 2.1 2.8 4.4 4.4l-4.4-4.4c.4 0 2.1 2.8 4.4 4.4v.9c0-2.8-.2-5.6.9-7.1 1 1.7 2.2 4.3 2.6 1.8 5-.2 7.4-1.6 10.6-2.7 0 1.3-.2.7 1 1.8m60-3.6h.9c-1.7 1.4-3 4.3-4.4 6.2m-32.7-8.8h7" transform="matrix(1.48 0 0 1.54 -103 -521.4)"/>
+  </g>
+  <path id="path2993" fill="#fff" fill-rule="evenodd" stroke-width=".8" d="M425.9 214.3c-11.5 0-15.4 13.5-26.9 13.5h-.6v.8c0 9.4.6 18.1 1.8 26.2 10.6-.8 14.5-13.4 25.7-13.4 11.5 0 15.3 13.4 26.8 13.4 11.6 0 15.4-13.4 26.9-13.4 11.5 0 15.4 13.4 26.9 13.4 11.5 0 15.3-13.4 26.8-13.4 11 0 15 12.5 25.6 13.4a139 156.1 0 001.9-27h-.7c-11.5 0-15.3-13.4-26.8-13.4s-15.4 13.5-26.8 13.5c-11.5 0-15.4-13.5-27-13.5-11.4 0-15.3 13.5-26.8 13.5-11.4 0-15.3-13.5-26.8-13.5zm0 52.7c-9 0-13.2 8.2-20.2 11.8a111 124.5 0 008.6 20.5c3.3-2.8 6.7-5.2 11.6-5.2 11.5 0 15.3 13.5 26.8 13.5 11.6 0 15.4-13.5 26.9-13.5 11.5 0 15.4 13.5 26.8 13.5s15.4-13.5 26.9-13.5a18.3 20.6 0 0111.3 5 112 125.7 0 008.6-20.4c-6.7-3.7-11-11.7-20-11.7-11.4 0-15.3 13.5-26.8 13.5S491 267 479.6 267s-15.4 13.5-26.9 13.5c-11.4 0-15.3-13.5-26.8-13.5zm53.7 52.7c-11.5 0-15.4 13.5-26.9 13.5-10.9 0-14.9-12-25-13.4a132 132 0 0039.3 33c3.6-3.2 7.3 3.6 12.5 3.6 5.3 0 9-6.9 12.5-3.8a129.1 145 0 0039-32.7c-9.8 1.7-14 13.3-24.6 13.3-11.5 0-15.3-13.5-26.8-13.5z" opacity="1" stop-opacity="1"/>
+  <g id="g3070" opacity="1" transform="matrix(.86465 0 0 .97062 -175.4 2.5)">
+    <path id="path2995" fill="none" stroke="#512007" stroke-width=".5" d="M332.5 541.4a110 110 0 0110.5-3l16.3 15.7-13.4 2.7z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <path id="path2997" fill="none" stroke="#512007" stroke-width=".6" d="M413.6 471c.3-4.6 8.8-31 8.8-31m-5.9 31.3l6.7-31.1m-4.4 31.2l5.6-31.2m-10.5 27c1.5-.8 5.8-2 5.8-2m-3.7-2.6c1.4 0 4.3-1.2 4.3-1.2m-3.5-2.3a24 24 0 014.4-1.2m-3.8-3.2l4.7-.8m-2.6-3c0 .3 3.2.3 3.2.3m-2.4-3.7l3.2.5" transform="matrix(1.06 0 0 1.03 276.8 -178)"/>
+    <path id="path2999" fill="none" stroke="#512007" stroke-width=".4" d="M413.6 471c.3-4.6 8.8-31 8.8-31m-5.9 30.1l6.7-30m-3.7 27.7c.2-1.7 4.9-27.6 4.9-27.6m-10.5 27c1.5-.8 5.8-2 5.8-2m-3.7-2.6c1.4 0 4.3-1.2 4.3-1.2m-3.5-2.3a24 24 0 014.4-1.2m-3.8-3.2l4.7-.8m-2.6-3c0 .3 3.2.3 3.2.3m-2.4-3.7l3.2.5" transform="matrix(-1.25 0 0 1.76 1290.4 -502)"/>
+    <path id="path3001" fill="none" stroke="#512007" stroke-width=".5" d="M413.6 471c.3-4.6 8.8-31 8.8-31m-5.9 30.1l6.7-30m-3.7 27.7c.2-1.7 4.9-27.6 4.9-27.6m-10.5 27c1.5-.8 5.8-2 5.8-2m-3.7-2.6c1.4 0 4.3-1.2 4.3-1.2m-3.5-2.3a24 24 0 014.4-1.2m-3.8-3.2l4.7-.8m-2.6-3c0 .3 3.2.3 3.2.3m-2.4-3.7l3.2.5" transform="matrix(-1.25 0 0 1.3 1321.3 -302)"/>
+    <path id="path3003" fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M395.3 572.2l.9-73s2.6-.3 2.6 0-.3 72.7-.6 73c-.3.3-3.2.5-2.9 0zm28.5-69.8l-.6 61.3-2 2.4.6-63.7z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <path id="path3005" fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M363 560.2s3 30 36.4 29.1c33.4-.9 42.7-30.2 42.7-30.2l-14.5-.6c-.3 0-11.6 14-26.2 13.7-14.6-.3-19.2-3.8-22.4-6.7-3.2-3-6-7.3-6-7.3l-17-6.7 1 6.4zm90.3-3l-1-4v-3.4l1.6-3.6s-25.3 3.7-25.3 4l-.1 6.8 24.8.1z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <path id="path3007" fill="none" stroke="#512007" stroke-width=".5" d="M448.5 549.8l-.6 6h4.1l-.3-6zm-4.3.3l-.3 6.4 2.6-.3.3-6.1zm-4.4 6.4v-5l2.6-.9.3 5zm-5-.3l.6-4.4 3 .3.2 4.7zm-5.5 0l.3-3.8 3-.3v4.4zm-67.4 3.7c.9 0 7.6 1.5 7.6 1.5l7 9.3" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <path id="path3009" fill="none" stroke="#512007" stroke-width=".5" d="M366.8 561.1c.3.3 6.1 19.8 34 19.8s34.6-22.1 34.6-22.1" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <path id="path3011" fill="none" stroke="#512007" stroke-width=".5" d="M439.8 559.4s-13.4 29-39 27c-25.5-2-29.6-11.6-31.6-16.6-2-5-3.2-9-3.2-9" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <path id="path3013" fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M373.2 558.2c.3-1.7.3-54.4.3-54.4l-1.7-.2-.3 53.7 1.7 1zm-41.5-17.1l22 10.7-.5 1.5S332 543.3 332 543c0-.3.2-1.5-.3-2z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <path id="path3015" fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M341.8 537.9c0 .8 3.2 18.6 3.2 18.6s2 .3 2 0l-3.4-18.3zm20.4.5c1.1 0 21-3.2 21-3.2l-.4 3.2-19.5 2z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <path id="path3017" fill="#fecf3e" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M365 514.3c.7 0 7 3.2 9.7 2.4 2.7-.8.9-3 1.4-3 .6 0 2.6 1.5 3.8.3 1.2-1.1 2-4.6 1.5-4.3-.6.3-16 5.8-16.3 4.6z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <path id="path3019" fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M362.5 521.6c1.1.3 23.8-6.1 23.8-6.1s0 2-.3 2l-23.5 6.1z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <path id="path3021" fill="#fecf3e" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M415 512.6s1.5 3.5 3 2.9c1.5-.6 2.9-1.8 2.9-1.8s1.2 3 3.2 2.4c2-.6 3.2-3.8 3.2-3.8s2 .6 2.9.3c.9-.3 2-5 2-5l-17.1 5zm-1.7 28.2c-.3.6 1.5 2 3 2s2-2 2.3-1.4c.3.5.3 3.2 4 2.3 3.7-.9 3.8-3.5 3.8-3.5s-1.1.9 1.5 1.2c2.6.3 5.2-3.8 5-3.8-.4 0-19 3.5-19.6 3.2z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <path id="path3023" fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M363.4 513.1a5 5 0 00.2 2.7l19-6.4s.8-1.5 0-1.5-19.5 5.8-19.3 5.3zm25-4c.5 0 19.4-6.1 19.4-6.1s.3 2.6 0 2.6l-17.7 5.2-1.8-1.7z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <path id="path3025" fill="#fecf3e" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M413.3 521.9s-2.9 3.2-2 7.5c.9 4.4 2 8.2 2.3 8.2.3 0 3.5-5.8 7-6.1 3.5-.3 9.9 3.2 9.9 3.2s-.9-7-.6-10.2c.3-3.2 5.2-8.7 5.2-8.7l-21.8 6z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <path id="path3027" fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M386.9 516.6s-.6 2.7-.3 2.7l24.7-6.4V511l-24.4 5.5z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <path id="path3029" fill="#b6b6b4" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M355.5 551.8s-5.8-.8-5.5.6c.3 1.5 2.9 2.9 3.2 3.8.3.9-.9 4 .9 3.8 1.7-.3 3.4-1.5 3.4-2.4l-.3-5z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <path id="path3031" fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M387.8 537.3v2l20.9-2.9-.6-1.5z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <path id="path3033" fill="#fecf3e" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M363 540.8c.4 0 0 2.6 2.4 2 2.3-.6 2.9-2 2.9-2s.6 3.2 3.8 2.9c3.2-.3 5-3.8 5-3.8s.2 2.6 2.2 1.7c2-.9 2.6-2.9 2.6-2.9l-18.3 2.6-.5-.5zm0-17.2s-2.6.9-1.7 6.1c.9 5.2 3 8.2 3.2 8.2.3 0 2.6-5 6.1-5.8 3.5-1 9.6 2.6 9.6 2.6s-.6-4.7.3-9a18 18 0 013.8-7.6s-20.4 5.5-21.2 5.5z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <path id="path3035" fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M411.9 538.7l.3 1.8s21-2.6 21-3c0-.2 0-2-.4-2-.3 0-20.6 3.5-21 3.2zm-.3-18.6l.3 2 24.7-6.6s.6-1.8.3-1.8-24.7 7.3-25.3 6.4z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <path id="path3037" fill="none" stroke="#512007" stroke-width=".5" d="M414.2 510.8s-.3 1.8 0 1.8 18.3-4.4 18.3-4.7c0-.3 1.8-2 .3-1.7-1.4.3-18 5.5-18.6 4.6zm38.7 33.7l-18-28.4m-2.4 19.7c.3-.8 1.2-18.3 1.2-18.3" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <path id="path3039" fill="#fecf3e" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M389 510c1 .2 3.1 3.2 4.3 2.6 1.2-.6 2.9-2.4 2.9-2.4s-.3 3.5 2 3c2.4-.6 2.7-3 2.7-3s1.7 1 3.2 0c1.4-.8 2.8-5.2 2.3-5.2s-16.9 5.2-17.5 5zm-.6 8.4c0 .6-3 5.2-2 9.6 1 4.4 2.5 8.4 2.8 8.4.3 0 4.7-4.6 8.5-5.5 3.7-.9 9.3 2.9 9 2.9-.3 0-1.5-4.4-1.5-7.6 0-3.2 4.4-13 4.4-13zm0 21c0 .2.8 2.2 2.9 2.2 2 0 2.3-2 2.3-2s-.3 3.5 2.9 3.2c3.2-.3 4.3-3.5 4.3-3.5s.3 1.8 3 .9c2.6-.9 6-3.8 5.8-3.8-.3 0-21 3.8-21.3 3z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <use id="use3041" width="992.1" height="496.1" x="0" y="0" transform="translate(-6.6 7.3)" xlink:href="#k"/>
+    <use id="use3043" width="992.1" height="496.1" x="0" y="0" transform="translate(6.6 3.8)" xlink:href="#k"/>
+    <use id="use3045" width="992.1" height="496.1" x="0" y="0" transform="translate(0 11)" xlink:href="#k"/>
+    <path id="k" fill="#be0f17" fill-rule="evenodd" stroke="#512007" stroke-width=".6" d="M409 477a1.9 1.9 0 11-3.8 0 1.9 1.9 0 013.8 0z" transform="matrix(.04 -1.07 1.02 .04 251.6 668)"/>
+    <path id="path3048" fill="none" stroke="#512007" stroke-width=".5" d="M398.2 500c0-.2 9 3.8 9 4.1 0 .3 32 42.8 32.3 42.8m-16-42.8l8.2 3.5 2.6 6.4m-61.4-10.4c-.3 0 9 7 9 7l1.2 5.7M341.3 546c4-1.7 32.2-26.4 32.2-26.4m-39.8 21.7l31.7-26.7m21.2 4l30 49.8m-3.6-29.2s3.5 11.7 7 13.5a86 86 0 017.6 4.6" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <path id="path3050" fill="none" stroke="#512007" stroke-width=".5" d="M412.6 539.5s2.5 13.8 6 16.4c3.5 2.6 7 5.5 7 5.5" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <path id="path3052" fill="none" stroke="#512007" stroke-width=".5" d="M391 439s3.4 19.2 10.4 23.6a950 950 0 0112.8 8.1" transform="matrix(1.25 0 0 1.3 256.3 -299.5)"/>
+    <path id="path3054" fill="none" stroke="#512007" stroke-width=".5" d="M390.7 438.7s7.5 15.2 14 19.8c6.3 4.7 15 9 15 9M366.3 440c2 3.5 1.7 10.2 4 12.5a66 66 0 015.8 7.6m-9.3-19.9c1.2 1.7 4.4 10.4 6.4 13 1.5 2.4 16.3 17.2 16.3 17.2" transform="matrix(1.25 0 0 1.3 256.3 -299.5)"/>
+    <path id="path3056" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M384.6 471.1a2.2 2.2 0 11-4.4 0 2.2 2.2 0 014.4 0zm10.7 4.7a1.9 1.9 0 11-3.8 0 1.9 1.9 0 013.8 0zM409 477a1.9 1.9 0 11-3.8 0 1.9 1.9 0 013.8 0zm11.9-4.5c0 1-.7 1.7-1.6 1.7-.9 0-1.6-.8-1.6-1.7 0-.9.7-1.8 1.6-1.8.9 0 1.6.8 1.6 1.8zm9.6-5.7c0 .9-.9 1.6-1.9 1.6-1 0-1.9-.7-1.9-1.6 0-.9.9-1.6 1.9-1.6 1 0 1.9.7 1.9 1.6z" transform="matrix(1.25 0 0 1.3 256.3 -299.5)"/>
+    <path id="path3058" fill="red" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M374.1 404.4c-.9.6-15.4 4.1-13.4 3.8 2-.3 13.7 3 13.4 2-.3-1 0-5.2 0-5.8zm24.7-4.3c-.6 0-9 3.2-8.7 3.2.3 0 9.6 2.6 9.3 2-.3-.6-.3-4.4-.6-5.2zm25.3 2.9c-.6.3-10.5 2.6-8.7 2.9 1.8.3 8.4 2.6 8.4 2 0-.5 0-4.6.3-5z" transform="matrix(1.25 0 0 1.3 256.3 -299.5)"/>
+    <path id="path3060" fill="none" stroke="#512007" stroke-width=".5" d="M413.6 471c.3-4.6 8.8-31 8.8-31m-5.9 30.1l6.7-30m-3.7 27.7c.2-1.7 4.9-27.6 4.9-27.6m-10.5 27c1.5-.8 5.8-2 5.8-2m-3.7-2.6c1.4 0 4.3-1.2 4.3-1.2m-3.5-2.3a24 24 0 014.4-1.2m-3.8-3.2l4.7-.8m-2.6-3c0 .3 3.2.3 3.2.3m-2.4-3.7l3.2.5" transform="matrix(1.25 0 0 1.3 256.3 -299.5)"/>
+    <path id="path3062" fill="none" stroke="#512007" stroke-width=".5" d="M413.6 471c.3-4.6 8.8-31 8.8-31m-5.9 31.3l6.7-31.1m-4.4 31.2l5.6-31.2m-10.5 27c1.5-.8 5.8-2 5.8-2m-3.7-2.6c1.4 0 4.3-1.2 4.3-1.2m-3.5-2.3a24 24 0 014.4-1.2m-3.8-3.2l4.7-.8m-2.6-3c0 .3 3.2.3 3.2.3m-2.4-3.7l3.2.5" transform="matrix(1.25 0 0 1.36 225.3 -323.4)"/>
+    <path id="path3064" fill="none" stroke="#512007" stroke-width=".5" d="M413.6 471c.3-4.6 8.8-31 8.8-31m-5.9 30.1l6.7-30m-3.7 27.7c.2-1.7 4.9-27.6 4.9-27.6m-10.5 27c1.5-.8 5.8-2 5.8-2m-3.7-2.6c1.4 0 4.3-1.2 4.3-1.2m-3.5-2.3a24 24 0 014.4-1.2m-3.8-3.2l4.7-.8m-2.6-3c0 .3 3.2.3 3.2.3m-2.4-3.7l3.2.5" transform="matrix(-1.25 0 0 1.32 1259.2 -307.3)"/>
+    <path id="path3066" fill="#dd8b59" fill-rule="evenodd" stroke="#512007" stroke-width=".5" d="M426.4 558.5l27.6.6.3-2-28.5-.3zm1.2-7.3c3.2 0 27.3-4.6 27.3-4.6s.9-3 0-3-27.3 5.6-27.3 5.6z" transform="matrix(1.25 0 0 1.3 259.4 -430)"/>
+    <use id="use3068" width="992.1" height="496.1" x="0" y="0" transform="translate(0 5.5)" xlink:href="#k"/>
+  </g>
+  <path id="path4214" fill="#012169" stroke-width=".5" d="M0 0h320v240H0z" opacity="1" stop-opacity="1"/>
+  <path id="path4216" fill="#FFF" stroke-width=".5" d="M37.5 0l122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z" opacity="1" stop-opacity="1"/>
+  <path id="path4218" fill="#C8102E" stroke-width=".5" d="M212 140.5L320 220v20l-135.5-99.5zm-92 10l3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z" opacity="1" stop-opacity="1"/>
+  <path id="path4220" fill="#FFF" stroke-width=".5" d="M120.5 0v240h80V0zM0 80v80h320V80z" opacity="1" stop-opacity="1"/>
+  <path id="path4222" fill="#C8102E" stroke-width=".5" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z" opacity="1" stop-opacity="1"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/fm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/fm.svg
new file mode 100644
index 0000000..54f3e77
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/fm.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-fm" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="fm-a">
+      <path fill-opacity=".7" d="M-81.3 0h682.6v512H-81.3z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#fm-a)" transform="translate(76.3) scale(.94)">
+    <path fill="#6797d6" d="M-252 0H772v512H-252z"/>
+    <path fill="#fff" d="M259.8 123l-32.4 22.2 12.4-35.9-32.5-22.2h40.1l12.4-35.9 12.4 36h40l-32.4 22.1 12.4 35.9M259.8 390l-32.4-22.2 12.4 36-32.5 22.1h40.1l12.4 35.9 12.4-36 40 .1-32.4-22.2 12.4-35.9m-188.4-92.4L79.3 306l1.4-38-37.5-11.7 38.4-11.7 1.3-38 22.3 30.8 38.4-11.8-24.6 30.7 22.4 30.7m274.2-11.7l24.6 30.7-1.4-38 37.5-11.7-38.4-11.7-1.3-38-22.3 30.8-38.4-11.8 24.6 30.7-22.4 30.7"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/fo.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/fo.svg
new file mode 100644
index 0000000..341d52e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/fo.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-fo" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="fo-a">
+      <path fill-opacity=".7" d="M-78 32h640v480H-78z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="0" clip-path="url(#fo-a)" transform="translate(78 -32)">
+    <path fill="#fff" d="M-78 32h663.9v480H-78z"/>
+    <path fill="#003897" d="M-76 218.7h185.9V32H216v186.7h371.8v106.6H216V512H109.9V325.3h-186V218.7z"/>
+    <path fill="#d72828" d="M-76 245.3h212.4V32h53.1v213.3H588v53.4H189.5V512h-53V298.7H-76v-53.4z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/fr.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/fr.svg
new file mode 100644
index 0000000..712c8a5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/fr.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-fr" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h640v480H0z"/>
+    <path fill="#00267f" d="M0 0h213.3v480H0z"/>
+    <path fill="#f31830" d="M426.7 0H640v480H426.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ga.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ga.svg
new file mode 100644
index 0000000..1f0a9ca
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ga.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ga" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="#ffe700" d="M640 480H0V0h640z"/>
+    <path fill="#36a100" d="M640 160H0V0h640z"/>
+    <path fill="#006dbc" d="M640 480H0V320h640z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gb-eng.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gb-eng.svg
new file mode 100644
index 0000000..eab52bd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gb-eng.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gb-eng" viewBox="0 0 640 480">
+  <path fill="#fff" d="M0 0h640v480H0z"/>
+  <path fill="#ce1124" d="M281.6 0h76.8v480h-76.8z"/>
+  <path fill="#ce1124" d="M0 201.6h640v76.8H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gb-nir.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gb-nir.svg
new file mode 100644
index 0000000..e043b3e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gb-nir.svg
@@ -0,0 +1,132 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-gb-nir" viewBox="0 0 640 480">
+  <path id="rect6943" fill="#fff" stroke-width="8.1" d="M0 0h640v480H0z"/>
+  <rect id="rect6703" fill="#fff" fill-rule="evenodd" rx="0" ry="0"/>
+  <rect id="a" width="640" height="96" y="192" fill="#c00" fill-rule="evenodd" rx="0" ry="0"/>
+  <use id="use6706" width="600" height="300" transform="matrix(0 .75 -1 0 560 0)" xlink:href="#a"/>
+  <path id="path6708" fill="#ebeae3" fill-rule="evenodd" stroke="#000" stroke-width=".5" d="M355.2 146.6c3-4.8 1.2-8-3.4-8.9 0 0-14.9 4.8-31 5.3-16 .5-35-4-35-4-3.5 2.1-2.7 7.2-1 10.4 0 0 16.8 5.6 36 5a111 111 0 0030.1-5.5c3.7-1.2 4.3-2.2 4.3-2.3z"/>
+  <path id="path6710" fill="#fff" stroke="#161111" stroke-width="1.6" d="M320 357.6l-30.9-64.2-70.9 5.4 40-58.8-40-58.8 71 5.4 30.8-64.1 30.9 64 70.9-5.3-40 58.8 40 58.8-71-5.4z"/>
+  <path id="path6712" fill="#b02320" fill-rule="evenodd" stroke="#000" stroke-width="1.3" d="M319.5 122.2c38.8 6.4 37.4 8.2 37.4 8.2l10.1-30.2s1.1-6-1.7-9.6-10.5-1.6-10.5-1.6-1-4.9-4.5-6c-3.4-1.2-16 4.5-20 5.8-4 1.3-6 2.5-11.5 2.4-5.5 0-15.4-5-17.3-6-1.7-.9-4.4-1.8-6.9-1.7-2.4 0-5 .7-6.3 2.4-1.2 1.7-1.2 3.9-1.2 3.9s-2-1.3-5.2-1.3-5 .4-6.5 2.1c-1.5 1.7-3.4 6.5-3.4 6.5l3.6 8.2.2 11.3 7.5 12 36.2-6.4z"/>
+  <path id="path6714" fill="#ebeae3" fill-rule="evenodd" stroke="#000" stroke-width=".5" d="M355.7 139.3s2 2.3 1.9 3.2c-.1.8-1 1.5-1 1.5s.7.6.5 1.5c-.1 1-1.4 1-1.4 1s.3.8-.5 1.2c-.7.4-3.8 1-3.8 1s-15-4.2-31-4.2-35 5.2-35 5.2-2-.7-2-2c-.2-1.2.1-2.1.1-2.1s-1 0-1.3-.9c-.4-1.3.1-2.3.1-2.3s-.7.2.1-1.5c.6-1.3 1.5-1.7 1.5-1.7s16.8-6 36-6.1c19.1 0 35.8 6 35.8 6.2z"/>
+  <path id="path6716" fill="none" stroke="#000" stroke-width="1.1" d="M276.2 101.5s-.6-2.2.8-4.1a4.3 4.3 0 014.7-1.4c.8.4.7 1.3 1.7 1.5 1 .3 1.8-.5 1.8-.5"/>
+  <path id="path6718" fill="#fc0" fill-opacity=".9" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M369.8 106.6l-5.8 12-2.3.4s-1.4-.8-5.4-.5c-2.8.2-3.7 1-3.7 1l5.2-12s.4 2.5 1 4c.8 2 3.7 3.7 3.7 3.7s.4-2.3-.4-5a55.9 55.9 0 00-2.8-7.3l10.5 3.7z"/>
+  <path id="path6720" fill="#121116" stroke="#121116" stroke-linejoin="round" stroke-width="1.2" d="M316.5 69.2h6.5v27.7h-6.5z"/>
+  <path id="path6722" fill="#f6ca1f" fill-rule="evenodd" stroke="#000" d="M276.6 120.2l4.1 9s17.9-7 38.9-6.8c31.5.2 40.5 6.5 40.5 6.5l4.6-11.1-3.5 2-3.6 2.3-4 1.5-5-.3-4.4-3.2-2.2-4.7-3.7 3.4-6.6 1.4-6.4-1.6-5.6-7.1s-4.2 7.9-9.6 8.4c-7.7.6-12.1-3.7-12.1-3.7s-2.9 6.4-7.6 7.5c-7.5 1.9-13.7-3.5-13.8-3.5z"/>
+  <g id="g6842" stroke-width="2.2">
+    <path id="path6724" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M348.4 65.7c0 1.8-1.4 3.4-3.3 3.4a3.4 3.4 0 01-3.4-3.4 3.4 3.4 0 013.4-3.5 3.4 3.4 0 013.3 3.4"/>
+    <path id="path6726" fill="#a3afb8" fill-rule="evenodd" d="M343.5 67.4s2.7 0 3-1.1c.3-1.2-.2-2.6-.2-2.6s1.3 1.4 1 2.5c-.4 1.1-.8 1.4-1.7 1.7a3 3 0 01-2-.5z"/>
+    <path id="path6728" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M340.3 69.5c0 1.8-1.5 3.4-3.4 3.4a3.4 3.4 0 01-3.4-3.4A3.4 3.4 0 01337 66a3.4 3.4 0 013.4 3.3"/>
+    <path id="path6730" fill="#a3afb8" fill-rule="evenodd" d="M335.3 71.2s2.8 0 3-1.1c.3-1.1-.2-2.6-.2-2.6s1.3 1.5 1 2.6c-.4 1-.8 1.4-1.7 1.6a3 3 0 01-2-.5z"/>
+    <path id="path6732" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M358 63.4c0 1.9-1.6 3.4-3.4 3.4a3.4 3.4 0 01-3.4-3.4 3.4 3.4 0 013.3-3.4 3.4 3.4 0 013.4 3.4"/>
+    <path id="path6734" fill="#a3afb8" fill-rule="evenodd" d="M353 65.2s2.7 0 3-1.2c.3-1.1-.2-2.5-.2-2.5s1.3 1.4 1 2.5c-.4 1.1-.8 1.4-1.7 1.6a3 3 0 01-2-.4z"/>
+    <path id="path6736" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M368.6 65.6c0 1.8-1.5 3.4-3.3 3.4a3.4 3.4 0 01-3.4-3.4 3.4 3.4 0 013.4-3.4 3.4 3.4 0 013.3 3.3"/>
+    <path id="path6738" fill="#a3afb8" fill-rule="evenodd" d="M363.7 67.3s2.7 0 3-1.1c.3-1.2-.2-2.6-.2-2.6s1.3 1.4 1 2.6c-.4 1-.8 1.3-1.7 1.6a3 3 0 01-2.1-.5z"/>
+    <path id="path6740" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M376.8 72.3c0 1.8-1.5 3.4-3.4 3.4a3.4 3.4 0 01-3.4-3.4 3.4 3.4 0 013.4-3.4 3.4 3.4 0 013.4 3.3"/>
+    <path id="path6742" fill="#a3afb8" fill-rule="evenodd" d="M371.9 74s2.7 0 3-1.1c.2-1.1-.2-2.6-.2-2.6s1.3 1.5.9 2.6c-.4 1-.7 1.4-1.7 1.6-.6.1-1.5-.1-2-.5z"/>
+    <path id="path6744" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M380.3 83.3c0 1.9-1.5 3.4-3.4 3.4a3.4 3.4 0 01-3.3-3.4 3.4 3.4 0 013.3-3.4 3.4 3.4 0 013.4 3.4"/>
+    <path id="path6746" fill="#a3afb8" fill-rule="evenodd" d="M375.4 85s2.7 0 3-1.1c.2-1.1-.2-2.6-.2-2.6s1.3 1.5.9 2.6c-.4 1-.7 1.4-1.7 1.6a3 3 0 01-2-.5z"/>
+    <path id="path6748" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M379 94.4c0 2-1.5 3.4-3.4 3.4a3.4 3.4 0 01-3.3-3.3 3.4 3.4 0 013.3-3.5 3.4 3.4 0 013.4 3.4"/>
+    <path id="path6750" fill="#a3afb8" fill-rule="evenodd" d="M374 96.2s2.8 0 3-1.2c.3-1-.1-2.5-.1-2.5s1.3 1.4.9 2.5-.7 1.4-1.7 1.6a3 3 0 01-2-.4z"/>
+    <path id="path6752" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M374 104.2c0 1.9-1.5 3.4-3.3 3.4a3.4 3.4 0 01-3.4-3.4 3.4 3.4 0 013.4-3.4 3.4 3.4 0 013.3 3.4"/>
+    <path id="path6754" fill="#a3afb8" fill-rule="evenodd" d="M369.1 106s2.7 0 3-1.2c.3-1-.2-2.5-.2-2.5s1.3 1.4 1 2.5c-.4 1.1-.8 1.4-1.7 1.6a3 3 0 01-2-.4z"/>
+    <path id="path6756" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M332.3 72.4c0 1.9-1.5 3.4-3.3 3.4a3.4 3.4 0 01-3.4-3.4 3.4 3.4 0 013.3-3.4 3.4 3.4 0 013.4 3.4"/>
+    <path id="path6758" fill="#a3afb8" fill-rule="evenodd" d="M327.4 74.2s2.7 0 3-1.2c.3-1.1-.2-2.5-.2-2.5s1.3 1.4 1 2.5c-.4 1.1-.8 1.4-1.7 1.6-.7.2-1.6 0-2.1-.4z"/>
+    <g id="g6764" stroke-width="2.7">
+      <path id="path6760" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M322.1 71.5a2.8 2.8 0 01-2.8 2.9 2.8 2.8 0 01-2.8-2.9 2.8 2.8 0 012.8-2.8 2.8 2.8 0 012.8 2.8"/>
+      <path id="path6762" fill="#a3afb8" fill-rule="evenodd" d="M318 73s2.3 0 2.5-1c.3-.9-.1-2-.1-2s1 1.1.8 2c-.4 1-.7 1.2-1.4 1.4a2.5 2.5 0 01-1.8-.4z"/>
+    </g>
+    <g id="g6770" stroke-width="2.7">
+      <path id="path6766" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M322.2 75a2.8 2.8 0 01-2.8 3 2.8 2.8 0 01-2.8-3 2.8 2.8 0 012.8-2.8 2.8 2.8 0 012.8 2.8"/>
+      <path id="path6768" fill="#a3afb8" fill-rule="evenodd" d="M318 76.5s2.3 0 2.6-1c.2-.8-.2-2-.2-2s1 1.2.8 2c-.3 1-.6 1.2-1.4 1.4a2.5 2.5 0 01-1.7-.4z"/>
+    </g>
+    <g id="g6776" stroke-width="2.7">
+      <path id="path6772" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M322.4 80.3a2.8 2.8 0 01-2.8 2.8 2.8 2.8 0 01-2.9-2.8 2.8 2.8 0 012.9-2.9 2.8 2.8 0 012.8 2.9"/>
+      <path id="path6774" fill="#a3afb8" fill-rule="evenodd" d="M318.3 81.8s2.2 0 2.5-1c.2-1-.2-2.1-.2-2.1s1 1.2.8 2c-.3 1-.6 1.3-1.4 1.4a2.5 2.5 0 01-1.7-.3z"/>
+    </g>
+    <g id="g6782" stroke-width="2.5">
+      <path id="path6778" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M322.7 85.8a3 3 0 01-3 3.1 3 3 0 01-3.1-3 3 3 0 013-3.2 3 3 0 013 3.1"/>
+      <path id="path6780" fill="#a3afb8" fill-rule="evenodd" d="M318.2 87.4s2.5 0 2.7-1-.2-2.3-.2-2.3 1.2 1.3.9 2.3c-.4 1-.7 1.2-1.5 1.4a2.6 2.6 0 01-1.9-.4z"/>
+    </g>
+    <path id="path6784" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M323 93.3c0 1.8-1.5 3.4-3.4 3.4a3.4 3.4 0 01-3.3-3.4 3.4 3.4 0 013.3-3.5 3.4 3.4 0 013.4 3.4"/>
+    <path id="path6786" fill="#a3afb8" fill-rule="evenodd" d="M318 95s2.8 0 3-1.1c.3-1.1-.1-2.6-.1-2.6s1.3 1.5.9 2.6c-.4 1-.7 1.4-1.7 1.6a3 3 0 01-2-.5z"/>
+    <g id="g6792" stroke-width="2.4">
+      <path id="path6788" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M322.7 108.5c0 1.8-1.4 3.2-3.2 3.2a3.2 3.2 0 01-3.2-3.2c0-1.7 1.4-3.2 3.2-3.2a3.2 3.2 0 013.2 3.2"/>
+      <path id="path6790" fill="#a3afb8" fill-rule="evenodd" d="M318 110.2s2.6 0 2.8-1.1c.3-1-.1-2.4-.1-2.4s1.2 1.3.8 2.4c-.3 1-.7 1.3-1.5 1.5-.6.1-1.5-.1-2-.4z"/>
+    </g>
+    <path id="path6794" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M313.6 72.3c0 1.9-1.6 3.4-3.4 3.4a3.4 3.4 0 01-3.4-3.4 3.4 3.4 0 013.4-3.4 3.4 3.4 0 013.4 3.4"/>
+    <path id="path6796" fill="#a3afb8" fill-rule="evenodd" d="M308.6 74s2.7 0 3-1c.3-1.2-.2-2.6-.2-2.6s1.3 1.4 1 2.5c-.4 1.1-.8 1.4-1.7 1.6a3 3 0 01-2-.4z"/>
+    <path id="path6798" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M305.2 69c0 1.9-1.5 3.4-3.4 3.4a3.4 3.4 0 01-3.3-3.4 3.4 3.4 0 013.3-3.4 3.4 3.4 0 013.4 3.4"/>
+    <path id="path6800" fill="#a3afb8" fill-rule="evenodd" d="M300.3 70.8s2.7 0 3-1.2c.2-1-.2-2.5-.2-2.5s1.3 1.4 1 2.5c-.5 1.1-.8 1.4-1.8 1.6-.6.2-1.5 0-2-.4z"/>
+    <path id="path6802" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M297.2 65.3c0 1.8-1.5 3.4-3.3 3.4a3.4 3.4 0 01-3.4-3.4 3.4 3.4 0 013.3-3.5 3.4 3.4 0 013.4 3.4"/>
+    <path id="path6804" fill="#a3afb8" fill-rule="evenodd" d="M292.3 67s2.7 0 3-1.1c.3-1.1-.2-2.6-.2-2.6s1.3 1.5 1 2.6c-.4 1-.8 1.4-1.7 1.6a3 3 0 01-2.1-.5z"/>
+    <path id="path6806" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M288 63.3c0 1.9-1.4 3.4-3.3 3.4a3.4 3.4 0 01-3.4-3.4 3.4 3.4 0 013.4-3.5 3.4 3.4 0 013.4 3.4"/>
+    <path id="path6808" fill="#a3afb8" fill-rule="evenodd" d="M283.1 65s2.7 0 3-1.1c.3-1.1-.2-2.6-.2-2.6s1.3 1.5 1 2.6c-.4 1-.8 1.4-1.7 1.6a3 3 0 01-2-.5z"/>
+    <path id="path6810" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M277.2 65.8c0 2-1.5 3.4-3.3 3.5a3.4 3.4 0 01-3.4-3.4 3.4 3.4 0 013.4-3.5 3.4 3.4 0 013.3 3.4"/>
+    <path id="path6812" fill="#a3afb8" fill-rule="evenodd" d="M272.3 67.6s2.7 0 3-1.1c.3-1.2-.2-2.6-.2-2.6s1.3 1.4 1 2.5c-.4 1.1-.8 1.4-1.7 1.7a3 3 0 01-2-.5z"/>
+    <path id="path6814" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M269.6 73.5c0 1.9-1.5 3.4-3.4 3.4a3.4 3.4 0 01-3.3-3.4 3.4 3.4 0 013.3-3.4 3.4 3.4 0 013.4 3.4"/>
+    <path id="path6816" fill="#a3afb8" fill-rule="evenodd" d="M264.7 75.2s2.7 0 3-1.1c.2-1.1-.2-2.6-.2-2.6s1.3 1.5.9 2.6c-.4 1-.7 1.4-1.7 1.6a3 3 0 01-2-.5z"/>
+    <path id="path6818" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M266.4 84.2c0 1.9-1.5 3.4-3.3 3.4a3.4 3.4 0 01-3.4-3.4 3.4 3.4 0 013.3-3.4 3.4 3.4 0 013.4 3.3"/>
+    <path id="path6820" fill="#a3afb8" fill-rule="evenodd" d="M261.5 86s2.7-.1 3-1.2c.3-1.1-.2-2.6-.2-2.6s1.3 1.5 1 2.6c-.4 1-.8 1.4-1.7 1.6a3 3 0 01-2.1-.5z"/>
+    <path id="path6822" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M267.8 95.3c0 2-1.5 3.5-3.3 3.5a3.4 3.4 0 01-3.4-3.4 3.4 3.4 0 013.3-3.5 3.4 3.4 0 013.4 3.4"/>
+    <path id="path6824" fill="#a3afb8" fill-rule="evenodd" d="M262.9 97.1s2.7 0 3-1.2c.3-1-.2-2.5-.2-2.5s1.3 1.4 1 2.5c-.4 1.1-.8 1.4-1.7 1.7a3 3 0 01-2-.5z"/>
+    <path id="path6826" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M273 105.5c0 1.8-1.5 3.4-3.4 3.4a3.4 3.4 0 01-3.3-3.4 3.4 3.4 0 013.3-3.5 3.4 3.4 0 013.4 3.4"/>
+    <path id="path6828" fill="#a3afb8" fill-rule="evenodd" d="M268 107.2s2.8 0 3-1.1c.3-1.1-.1-2.6-.1-2.6s1.3 1.4 1 2.5c-.5 1.1-.8 1.4-1.7 1.7a3 3 0 01-2.1-.5z"/>
+    <g id="g6834" stroke-width="2.8">
+      <path id="path6830" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.31597 -.08466 .13499 .50378 109.4 30)"/>
+      <path id="path6832" fill="#a3afb8" fill-rule="evenodd" d="M276.3 120.7s1.6-.5 1.5-1.6c0-1.1-.7-2.4-.7-2.4s1.1 1.1 1.2 2.3c0 1-.1 1.4-.6 1.8-.3.2-1 .2-1.4-.1z"/>
+    </g>
+    <g id="g6840" stroke-width="2.8">
+      <path id="path6836" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" d="M430.6 247.4a6.5 6.5 0 01-6.4 6.5 6.5 6.5 0 01-6.5-6.5 6.5 6.5 0 016.4-6.5 6.5 6.5 0 016.5 6.5" transform="matrix(.31758 .0784 -.125 .50636 260 -40.2)"/>
+      <path id="path6838" fill="#a3afb8" fill-rule="evenodd" d="M362.3 119.8s1.7.4 2.1-.7c.5-1 .5-2.5.5-2.5s.5 1.6 0 2.6-.8 1.3-1.4 1.3c-.4.1-1-.3-1.2-.7z"/>
+    </g>
+  </g>
+  <path id="path6844" fill="#b3a192" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M316.7 53.8l.3 5.7s-6.8.6-7 1.2c-1.4 3 1.5 7 1.5 7s2.3-1.8 8-1.8c5.5 0 8.3 1.4 8.3 1.4s1.4-2.3 1.4-4c0-1.7-.6-3.4-.6-3.4l-3.6-.4h-2.5l-.2-5.8-5.6.1z"/>
+  <path id="path6846" fill="#f0ddcb" stroke="#121116" stroke-linejoin="round" stroke-width=".6" d="M326.4 62.6c0 .7-.6 1.2-1.2 1.2-.7 0-1.3-.5-1.3-1.1 0-.7.6-1.2 1.2-1.2.7 0 1.2.5 1.3 1.1m2.7.7c0 .6-.5 1.2-1.2 1.2s-1.3-.6-1.3-1.2c0-.7.6-1.2 1.3-1.2.7 0 1.2.5 1.2 1.2m-5.5-.7c0 .6-.6 1.2-1.2 1.2-.7 0-1.2-.6-1.2-1.2s.5-1.2 1.1-1.2c.7 0 1.3.6 1.3 1.2m-5.6 0c0 .7-.6 1.3-1.3 1.3-.7 0-1.2-.6-1.2-1.2 0-.7.5-1.2 1.2-1.2s1.3.5 1.3 1.2m-3.1.2c0 .6-.6 1.2-1.3 1.2-.7 0-1.2-.5-1.2-1.2s.5-1.2 1.2-1.2 1.3.5 1.3 1.2m5.7-3.5c0 .6-.5 1-1 1a1 1 0 01-1.2-1c0-.6.5-1 1.1-1 .6 0 1 .4 1 1m0-4.7c0 .5-.4 1-1 1a1 1 0 01-1-1c0-.6.4-1 1-1s1 .4 1 1m0 2.5c0 .6-.4 1-1 1s-1-.4-1-1c0-.5.4-1 1-1s1 .4 1 1m-8.8 6.5c0 .7-.5 1.2-1.2 1.2-.6 0-1.2-.5-1.2-1.2 0-.6.5-1.1 1.2-1.1s1.2.5 1.2 1.1"/>
+  <path id="path6848" fill="#916c68" stroke="#4d3126" stroke-linejoin="round" stroke-width=".6" d="M320.9 62.4c0 .7-.6 1.2-1.4 1.2a1.3 1.3 0 01-1.3-1.2c0-.7.6-1.3 1.3-1.3.7 0 1.3.6 1.3 1.3"/>
+  <g id="g6854" stroke-width="2.5">
+    <path id="path6850" fill="#eee" stroke="#1e1e1e" stroke-linejoin="round" stroke-width="1.2" d="M322 45.5a2.5 2.5 0 01-2.4 2.5 2.5 2.5 0 01-2.5-2.5 2.5 2.5 0 012.5-2.6 2.5 2.5 0 012.5 2.5"/>
+    <path id="path6852" fill="#a3afb8" fill-rule="evenodd" d="M318.4 46.8s2 0 2.2-1c.2-.7-.1-1.8-.1-1.8s1 1 .7 1.9c-.3.8-.6 1-1.2 1.2a2.2 2.2 0 01-1.6-.3z"/>
+  </g>
+  <path id="path6856" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width=".5" d="M280 130.1s2.2 2.1 2.8 4c.6 1.8 1.5 6.8 1.5 6.8s23.2-6.5 34.6-6c11.4.6 37.7 6.3 37.7 6.3l1-5.7c.5-3 2.7-6.3 2.7-6.3s-25.1-7.8-41-7a116 116 0 00-27.3 3.5 258.5 258.5 0 00-12 4.4z"/>
+  <path id="path6858" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M314.7 36h10s-2.5 1.7-3 3.4c-.4 1.4-.3 3.7-.3 3.7s2.7 0 4-1a78.8 78.8 0 013.7-2.9v12.7s-2.5-2.3-4-3.1a14.4 14.4 0 00-3.5-1.3s0 2 .8 3.3 4.3 5.8 4.3 5.8l-14.3.5s3.4-3.5 4.8-6.1c.9-1.7.5-3.5.5-3.5s-2.4 0-3.6.9c-1.3.8-3.4 3.3-3.4 3.3V39.5s1 2.4 3 3.3c2 .9 3.8.4 3.8.4s.4-2.4-.4-4c-.8-1.5-2.6-3.2-2.4-3.1z"/>
+  <path id="path6860" fill="#fc0" fill-rule="evenodd" stroke="#121116" stroke-width="1.2" d="M313.9 76.5s-7.1-.1-13.2-3.7-12.3-7.4-21.3-5.3c-1.8.5-8.6 3.5-11.6 13.2a26 26 0 002.4 18.7 50.2 50.2 0 005.6 7.4l3.7-2.5s-9.3-8-8.2-18.2c1-10.3 6.2-12.7 6.2-12.7s6.4-5 14.9-.3a80 80 0 0025.3 8.7c.6-.1-4-5.4-3.8-5.3z"/>
+  <path id="path6862" fill="#fc0" fill-rule="evenodd" stroke="#000" stroke-width="1.2" d="M274.5 115l-3.8-7.4 11.4-4.4s-2.8 3.6-3.4 6.2c-.8 3.2-.5 5.9-.5 5.9s1-.8 2.3-2.9c1-1.5 2.6-7.3 2.6-7.3l5.1 16.3s-2.6-2.6-4.5-2.9c-2-.4-4.6.3-4.6.3l-3 1-1.6-4.8z"/>
+  <path id="path6864" fill="#fc0" fill-rule="evenodd" stroke="#121116" stroke-width="1.2" d="M326.7 76.3s7.1 0 13.2-3.7c6.1-3.6 12.2-7.3 21.3-5.2 1.8.4 8.6 3.4 11.6 13.1a26 26 0 01-2.5 18.7 116.7 116.7 0 01-3.6 5.9l-4.4-1.6s8.1-7.3 7-17.6c-1.1-10.3-6.2-12.7-6.2-12.7s-6.4-5-14.9-.2c-8.5 4.7-16.8 6.8-16.8 6.8s-7.8 2-8.5 1.8c-.7 0 4-5.4 3.8-5.3z"/>
+  <path id="path6866" fill="#fc0" stroke="#121116" stroke-linejoin="round" stroke-width="1.2" d="M323 69.3h3V97h-3zm-10-.2h3.5v27.7H313z"/>
+  <path id="path6868" fill="#fc0" stroke="#121116" stroke-linejoin="round" stroke-width="1.2" d="M329.2 62.7c0 5-4.3 9-9.7 9-5.3 0-9.7-4-9.7-9 0-4.9 4.3-8.9 9.6-8.9 5.4 0 9.8 4 9.8 8.9"/>
+  <path id="path6870" fill="#fc0" fill-rule="evenodd" stroke="#000" d="M310.9 96.8l16.7-.2s-2 1.2-3.7 4.2c-1.6 3-1.4 4.8-1.4 4.8s2.5 0 4.3-1.3a25.9 25.9 0 003.8-3.7v15.3s-1.3-2-3.3-3c-2-1.3-4.8-1.3-4.8-1.3h-5.7s-2.6.2-3.7 1a29 29 0 00-3.7 3.2l-.3-14.6s.8 2.6 3.5 3.6 4.2 1 4.2 1 0-3.4-1.4-5a33 33 0 00-4.5-4z"/>
+  <path id="path6872" fill="#f6ca1f" fill-rule="evenodd" stroke="#000" stroke-width=".9" d="M320.2 108.8s2.4 5.7 5.3 8.2c1.6 1.5 6.6 2.6 8.8 2 5-1.3 8.6-5.3 8.6-5.3s-.2 4.4 3 6.9c3.1 2.4 5.6 3 8.2 2.3 2.7-.7 10-6.2 10-6.2l1.6 1.3s-4.3 4.2-8.7 6.3c-2.3 1.2-9.3.5-11.5-1.3-2.3-1.8-3.6-6.1-3.6-6.1s-1.4 2.8-4.4 3.8c-3 1-7 1-10.9-.2-2.5-.8-5.9-4.3-6.5-5.5-.6-1.1-.4-1.8-.4-1.8s-2 5.4-5.8 6.9a18.7 18.7 0 01-11.5.4c-3.6-1-3.9-3.1-3.9-3.1s-.2 5.7-8 7.3c-8 1.6-14.2-4.1-14.2-4.1l1.1-1.7s4.4 5 11.2 4.6c6.8-.5 9-9.2 9-9.2s3 4.5 11 4.6c7.9.1 10.2-10.3 10.2-10.3l1.4.2z"/>
+  <g id="g6882" fill="#fc0" stroke="#000" stroke-width="1.1">
+    <path id="path6874" fill-rule="evenodd" d="M300.6 112.1s0-2.7.7-3.6c.8-1.1 2-1.2 2.6-1 .7.2 1.4.8 1.3 2.8-.1 1.9-.7 2.8 0 3.6.5.7.6 1.2 1.7 1 1-.2 1.6-.5 1.3-1.5s-.5 0-.7-.8c-.2-.9 1-4.6.8-6.9-.2-2.2-1-4-2.8-4.5-1.6-.4-3-.4-4.5.7-1.4 1-3.3 4.5-3.3 4.5v7.5l3-.2v-1.6z"/>
+    <path id="path6876" fill-rule="evenodd" d="M295 114.1s-1.2-2.5-2-3a2.5 2.5 0 00-2.8 0c-.6.5-1 1.4-.1 3.1.8 1.7 1.7 2.4 1.4 3.3-.2.9 0 1.4-1.1 1.7-1.1.3-1.7.1-1.9-1-.2-1 .6 0 .4-1-.1-.8-2.8-3.7-3.5-5.9-.7-2.1-.6-4.1.8-5.2 1.3-1 2.5-1.6 4.3-1.2 1.8.4 4.9 2.9 4.9 2.9l3 6.8-2.8 1-.6-1.5z"/>
+    <path id="path6878" fill-rule="evenodd" d="M294.4 92.1s-3 5-2.3 8.8c.7 3.8 4.6 12 4.6 12v1l2.2-.2-.5-1.1s1-9.8.4-12.9a33 33 0 00-4.4-7.6zm4.7 22.7s1.5 1.7 3.2 2.6c2 .9 2.8 1 3.5.3.6-.4.4-2.2-.3-2.7-.6-.5-1.4-.2-1.5.3-.2.8-.4.8-1 .4-1-.4-3-1.7-3-1.7l-.9.8zm-2.3.4s-.6 2.2-1.8 3.7c-1.4 1.6-2.1 2-3 1.7-.7-.1-1.3-1.8-.9-2.6.4-.7 1.2-.8 1.5-.4.5.7.7.6 1.1 0l2-2.7 1.1.2z"/>
+    <path id="path6880" stroke-linejoin="round" d="M302.4 113.4c.2.6-1.8 1.5-4.3 1.9-2.5.4-4.6.3-4.8-.4 0-.6 1.9-1.5 4.4-2 2.5-.4 4.6-.2 4.7.5"/>
+  </g>
+  <g id="g6892" fill="#fc0" stroke="#000" stroke-width="1.1">
+    <path id="path6884" fill-rule="evenodd" d="M345.6 113.2s1-2.5 2-3.1c1.1-.8 2.2-.5 2.7 0 .6.3 1 1.2.3 3-.8 1.7-1.6 2.4-1.4 3.3.3 1 .2 1.4 1.3 1.6 1.1.3 1.7.1 1.8-1 .1-1-.5 0-.4-1 0-.8 2.6-3.9 3.2-6 .6-2.3.4-4.2-1-5.3-1.4-1-2.7-1.4-4.5-.9-1.7.5-4.7 3.1-4.7 3.1l-2.6 7 2.9.9.4-1.6z"/>
+    <path id="path6886" fill-rule="evenodd" d="M339.7 113.1s-.2-2.7-.9-3.5c-.9-1.1-2-1.1-2.6-1-.7.3-1.4 1-1.2 2.9.2 2 .8 2.8.3 3.6-.6.8-.6 1.2-1.7 1.1-1.1 0-1.7-.4-1.5-1.4.2-1 .6 0 .8-.9.1-.8-1.3-4.5-1.2-6.8 0-2.2.8-4 2.5-4.6 1.6-.5 3-.6 4.5.5 1.5 1 3.6 4.3 3.6 4.3l.4 7.4h-3v-1.6z"/>
+    <path id="path6888" fill-rule="evenodd" d="M346.8 92.3s-4.5 3.6-5.2 7.4c-.7 3.8.1 12.8.1 12.8l-.3 1 2 .6v-1.2s4.4-8.8 4.9-12a32 32 0 00-1.5-8.6zm-3.5 22.9s.8 2.1 2.1 3.5c1.5 1.6 2.2 1.9 3.1 1.6.7-.2 1.1-2 .7-2.6-.4-.7-1.2-.7-1.5-.3-.5.7-.7.5-1.1 0a77.7 77.7 0 01-2.2-2.6l-1.1.4zm-2.3-.5s-1.3 1.9-3 2.8c-1.9 1.1-2.7 1.2-3.5.6-.6-.3-.5-2.1.1-2.7.7-.5 1.4-.3 1.6.2.2.8.5.7 1 .4l2.8-2 1 .7z"/>
+    <path id="path6890" stroke-linejoin="round" d="M346.9 115c-.1.7-2.3.8-4.8.3s-4.4-1.4-4.3-2c.1-.7 2.3-.8 4.8-.3s4.4 1.4 4.3 2"/>
+  </g>
+  <path id="path6894" fill="#cca715" fill-rule="evenodd" stroke="#000" stroke-width=".5" d="M279 129.9s.6 2 1.7 1c1.2-1.1 17.3-7.5 40-7.5s37.5 6.3 38.4 6.7c.9.3 1.3.8 2 0 .8-1-.7-2.3-.7-2.3s-15.8-6.7-40.4-6.6c-24.7.1-40.6 7.1-40.6 7.1s-1 .8-.3 1.6z"/>
+  <path id="path6896" fill-rule="evenodd" d="M307.9 139.3s.7-2 2-2.4c1-.3 2.5.7 2.5.7s-1.9-.2-2.5.2c-.5.3-.7 1.2-.7 1.2s.4-.8 1.9-.7h1.6s-2.5.3-3 1c-.6.7 2.3 1 2.3 1s-4.5 0-5-.2c-.6-.3-1-1.2-2-1-1 .4-2 1.3-2 1.3s1.1-2 1.8-2 1.2 0 1.8.3l1.3.6zm-16.8 3.6s.3-2 1.5-2.7c1-.5 2.7.2 2.7.2s-2 .2-2.5.6c-.4.4-.4 1.4-.4 1.4s.3-.8 1.7-1a68.5 68.5 0 001.6-.3s-2.4.7-2.8 1.5c-.5.8 2.5.6 2.5.6s-4.4.8-5 .7c-.7-.2-1.2-1-2.1-.5-1 .4-1.8 1.5-1.8 1.5s.8-2.1 1.5-2.3c.7-.1 1-.2 1.8 0l1.3.3zm30.9-4.3s.8-2 2-2.3c1.1-.3 2.7.8 2.7.8s-2-.3-2.6 0c-.5.3-.7 1.2-.7 1.2s.4-.7 1.9-.5l1.6.1s-2.5 0-3.1.8c-.6.6 2.3 1.1 2.3 1.1s-4.5-.2-5-.5c-.6-.3-1-1.2-2-1-1 .2-2 1-2 1s1.2-1.8 1.9-1.8 1.1 0 1.8.4l1.2.7zm14.1 1.6s1-1.9 2.4-2c1-.2 2.4 1 2.4 1s-1.8-.4-2.5-.2c-.6.2-.9 1-.9 1s.5-.6 2-.3l1.6.4s-2.5-.2-3.2.4c-.7.6 2.1 1.4 2.1 1.4s-4.4-.8-5-1.1c-.4-.4-.7-1.4-1.7-1.3-1 .1-2.2.8-2.2.8s1.5-1.6 2.2-1.5c.7 0 1.1.1 1.7.5l1.1.9zm14 2.5s1-1.4 2.1-1.5c.9 0 1.9 1.1 1.9 1.1s-1.5-.5-2-.4c-.5.1-.8.8-.8.8s.5-.5 1.6-.1l1.3.4s-2-.4-2.6 0c-.6.5 1.6 1.4 1.6 1.4s-3.5-1-4-1.3c-.3-.3-.4-1.1-1.2-1.1-.9 0-1.9.5-1.9.5s1.3-1.3 1.9-1.1c.5 0 .9.2 1.3.5l.9.8z"/>
+  <path id="path6898" fill="#0f6545" stroke="#000" stroke-linejoin="round" stroke-width=".7" d="M305 129.7c.4 1.7-1.6 3.5-4.4 4-2.8.6-5.3-.3-5.6-2-.3-1.6 1.6-3.4 4.4-4 2.8-.6 5.3.3 5.6 2z"/>
+  <path id="path6900" fill="#cecfc1" d="M298.8 129.4c0 .4-.4.9-1 1-.6.1-1.2-.1-1.3-.5 0-.4.4-.8 1-1 .6 0 1.2.1 1.3.5z"/>
+  <path id="path6902" fill="#0f6545" stroke="#000" stroke-linejoin="round" stroke-width=".7" d="M344.1 131.8c-.5 1.6-3 2.2-5.8 1.4-2.7-.9-4.4-2.9-4-4.5.6-1.6 3.2-2.3 5.9-1.4 2.7.8 4.5 2.8 4 4.4z"/>
+  <path id="path6904" fill="#cecfc1" d="M338.8 128.5c-.2.4-.7.6-1.3.4-.6-.2-1-.7-.9-1 .1-.5.7-.6 1.3-.5.6.2 1 .7.9 1z"/>
+  <path id="path6906" fill="#1f2d86" stroke="#000" stroke-linejoin="round" d="M314.6 126h10.1v5h-10.1z"/>
+  <path id="path6908" fill="#707c8b" d="M318.9 127c0 .3-.4.5-1 .5s-1-.2-1-.5c0-.2.5-.4 1-.4s1 .2 1 .4z"/>
+  <path id="path6910" fill="#9f1209" fill-rule="evenodd" stroke="#000" stroke-width=".5" d="M286 131l1.6 5-3 1.7s-1.5 1-3 .2c-1.4-.7-2.2-3-1.4-4 1.5-1.8 5.7-3 5.7-2.9z"/>
+  <path id="path6912" fill="#8f322f" d="M283.4 134.6c0 .8-.7 1.5-1.5 1.5s-1.4-.7-1.4-1.5c0-.9.6-1.5 1.4-1.5s1.5.6 1.5 1.5z"/>
+  <path id="path6914" fill="#e2a494" d="M282 134a.8.8 0 01-.2.7.4.4 0 01-.5 0 .8.8 0 01-.4-.5.8.8 0 01.2-.7.4.4 0 01.5-.1c.2 0 .4.3.4.6z"/>
+  <path id="path6916" fill="#9f1209" fill-rule="evenodd" stroke="#000" stroke-width=".5" d="M353.9 131.7l-1.7 4.4 4 2s1.7.8 2.8-.1c1-.8 1.2-2.8.4-3.7-.7-1-5.6-2.6-5.5-2.6z"/>
+  <path id="path6918" fill="#aa675d" d="M358.6 135.2c0 .6-.6 1-1.3 1s-1.2-.4-1.2-1 .6-1 1.2-1c.7 0 1.3.5 1.3 1z"/>
+  <path id="path6920" fill="#e2a494" d="M357.4 135c0 .3-.1.6-.3.7a.5.5 0 01-.6 0 .8.8 0 01-.3-.6c0-.3.1-.5.3-.6a.5.5 0 01.6 0c.2 0 .3.3.3.6z"/>
+  <path id="path6922" fill="#f5d8bc" d="M328.6 126.4a.7.7 0 01-.8.7.7.7 0 01-.7-.7.7.7 0 01.7-.7c.4 0 .8.3.8.7zm4.3.2a.7.7 0 01-.7.7.7.7 0 01-.8-.7.7.7 0 01.8-.6c.3 0 .7.2.7.6zm-2.2 1.7c0 .5-.4.9-1 .9s-.8-.4-.8-.9.4-.9.9-.9.9.4.9 1zm2 2.8a.7.7 0 01-.6.7.7.7 0 01-.8-.7.7.7 0 01.7-.7c.5 0 .8.3.8.7zm-4.1-.5a.7.7 0 01-.7.7.7.7 0 01-.7-.7.7.7 0 01.7-.7c.4 0 .7.3.7.7zm-20.9-3.5a.7.7 0 01-.5.8.7.7 0 01-.9-.5.7.7 0 01.6-.8.7.7 0 01.8.5zm4.3-.7a.7.7 0 01-.6.8.7.7 0 01-.8-.5.7.7 0 01.5-.8.7.7 0 01.9.5zm-1.8 2.1c.1.5-.2 1-.6 1a.9.9 0 01-1.1-.6c-.1-.4.2-1 .7-1a.9.9 0 011 .6zm2.7 2.3a.7.7 0 01-.5.8.7.7 0 01-.9-.5.7.7 0 01.5-.8.7.7 0 01.9.5zm-4.2.4a.7.7 0 01-.5.8.7.7 0 01-.9-.5.7.7 0 01.6-.8.7.7 0 01.8.5zm-19.2-.2a.7.7 0 01-.4 1 .7.7 0 01-.9-.4.7.7 0 01.4-1 .7.7 0 011 .4zm4.1-1.3a.7.7 0 01-.4 1 .7.7 0 01-.9-.5.7.7 0 01.4-.9.7.7 0 011 .4zm-1.4 2.4a.9.9 0 01-.5 1 .9.9 0 01-1.1-.4.9.9 0 01.5-1.1.9.9 0 011.1.5zm3 1.8a.7.7 0 01-.4 1c-.4 0-.8-.1-1-.5s.1-.7.5-.9a.7.7 0 01.9.4zm-4.1 1a.7.7 0 01-.4 1 .7.7 0 01-1-.4.7.7 0 01.5-1 .7.7 0 011 .4zm56.2-5.8c-.1.4-.5.6-1 .5a.8.8 0 01-.5-1c0-.3.5-.5 1-.4.3 0 .6.5.5.9zm4.4 1.3c0 .4-.5.7-.9.6a.8.8 0 01-.6-1c.1-.3.5-.6 1-.5.4.1.6.5.5 1zm-2.7 1.2a1 1 0 01-1.1.7 1 1 0 01-.8-1.1 1 1 0 011.2-.7c.5.1.8.6.7 1.1zm1.5 3.5c-.1.4-.5.6-1 .5a.8.8 0 01-.5-.9c0-.4.5-.6.9-.5.4.1.7.5.6 1zm-4.3-1.6c0 .4-.5.6-.9.5a.8.8 0 01-.5-.9c0-.4.5-.6.9-.5.4 0 .6.5.5.9z"/>
+  <path id="path6924" fill="none" stroke="#000" stroke-width="1.2" d="M356 89s-2 1.9-4.5 1.9a7 7 0 01-4.6-1.6c-.8-.5.2-2 .2-2"/>
+  <path id="path6926" fill="none" stroke="#000" stroke-width="1.1" d="M312.9 92.8s-3.7-.7-5.3-1.2c-1.5-.5-1.1-1.5-3-1.4-1.7.1-3.5 1.4-3.1 3.2.4 1.8 1.7 2 3 1.7 1.2-.4.8-2.6-.8-2.4-1.7 0-.3 1.5-.3 1.5"/>
+  <path id="path6928" fill="none" stroke="#000" d="M287.3 90s1 1.5 3.7 1.2c2.7-.2 3.7-1.6 3.8-2.3.2-.6 0-1.8-.5-2.3-.5-.5-2.3-.7-2.3-.7"/>
+  <g id="g6934" stroke="#161111" stroke-width="1.6">
+    <path id="path6930" fill="#c00" d="M339.2 270.4c2.5-2.5 6.5-5.2 8.7-11 2-5.6 3-15.7 5-20.8 2.5-8.8 7.5-17.4 1.5-16.8-5.7.6-7.5 6-9.6 10-1 1.5-3.3 4.7-3.7 6.5-.1-3-1.7-11.9-2-20.8-.3-8.4 0-17-.3-20.3-.2-4.3-.2-8.3-1.2-11.4-.5-1.5-2.6-3-3.8-2.9-2.2 0-3.6 2-4 3.9l-.2 2.8c-.2 2.4 0 5.5-.2 8.3-.1 3 .2 6.2 0 9-.2 5.4-.6 10.5-.8 11.5 0-2-1-11.7-1.3-20.9l-.2-10c0-2.6 0-5.4-.2-7.4-.5-3.4-1.6-5-4-5-1.8 0-4.2 1.3-5 5-.3 2.1-.4 4.6-.3 7.4l.2 8c-.2 10.5-.4 21.5-.8 24.8 0-1-1.1-6.5-1.4-13.9l-.4-9.6-.3-9.6c0-1.6-.7-6.2-3.7-6-1.7-.2-3.4 1-4 5.3-.4 2.5-.4 6.6-.5 9.9-.1 6-.4 11.4 0 16.9l.1 7.7c0 .4-.9-2.9-1.3-7.4l-.8-8.6c0-2.3-.1-5.7-.3-8.5-.2-2.1-.1-4.5-2.5-4.3-2.4.1-3.8 1-4.3 5-.4 2.7-.4 8.5-.5 10.5.2 5.3-1.2 17.7-1.8 21.2-.2 2.5-1.2 5.7-1.6 9.2a70 70 0 001 20.6c2 7 7 10.2 6.8 15-.3 4.8 0 13.3 0 17 0 3.8 3.3 4 10 2.6 11.2-2.4 17.3 2.4 26.4-1.2-1.1-10.4 1.1-16.7 1-20.5zm-6.5-24.7c2.3-6.4 5.2-8.9 8-10.2"/>
+    <path id="path6932" fill="none" d="M307.4 239.2c3.5-1.4 7-2.4 10.6-3.6 4.3-1.2 8.5-3 13-3.6 2-.5 4.2-1 6.4-1m-36.1 42c.4-.3 1 .2 1.4.3.6.2 1.3.4 2 .3a107.4 107.4 0 014 0c1.7 0 3-.2 4.3-1m10 .6l1.6.9c.8.3 1.8.4 7.3 0 3.5.2 6.5-2.8 7.4-3.6"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gb-sct.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gb-sct.svg
new file mode 100644
index 0000000..169bfba
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gb-sct.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gb-sct" viewBox="0 0 640 480">
+  <path fill="#0065bd" d="M0 0h640v480H0z"/>
+  <path stroke="#fff" stroke-width=".6" d="M0 0l5 3M0 3l5-3" transform="scale(128 160)"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gb-wls.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gb-wls.svg
new file mode 100644
index 0000000..48a6420
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gb-wls.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gb-wls" viewBox="0 0 640 480">
+  <path fill="#00ab39" d="M0 240h640v240H0z"/>
+  <path fill="#fff" d="M0 0h640v240H0z"/>
+  <g stroke="#000" stroke-width="1.4">
+    <path fill="#d21034" d="M419 70.8h-.1zm-.1 0a693.8 693.8 0 00-111.8 75c-17 14.9-12.2 26.7-12.9 40 .6 9-1.9 17.4-7.4 22.4l-37.8 7.6-3.6-10.4c1.1-5.4 5.5-8 14.9-4.7.7-6.8-4.9-9.6-11.3-12-2.3-1.8-5-3-4.7-9-1-13.5 20.6 1 20.8 1 .2 0-.8-13.7-10.7-16.4-5.4-1.9-7.7-7.6-5.6-11.8 4.3-8.7 12.5.6 18.7 1-.2-5.7-1.8-9.7-6.7-14.2-2.6-1.7-9-2.9-9.2-5.6-.1-3.6 6-5.2 14.5-4.2-1.8-5.1-7.5-8.4-15.3-10.8l-4.6-8.1c-2.2-4-3.2-4.2 1.9-11.8 4.5-3 10.6-7.2 15.2-10.1l-5-.6c.6-5.5.7-7.4 2-16.5-5 6.7-11 5.5-16.6 8.2 0 0-15.6 2.8-20.7 9.5l-39.4-2c-8.4 1.1-15.5 3.5-16.9 11.6-19.1 2-39.1.3-53.7 18.5 10-.4 18.6-2.8 29.8-1.4 0 0 9.5.2 11.4 10.3.2.4 3.3.4 3.3.4l3.6 2.8 1.4-3.8 3.2 2.2 1-4.2 3.2 2.2.2-5 4.2 3v-6.7s15.6 0 20.4 10c.2.1-43.7 8-86.1 4.3l12.2-6c-15.4-3.2-30-6-43.6-16.7 5.1 19.4 31.7 42.1 37.2 42l-5.2-9.4 46 2c1.7 5.1 1 10.8 5 15.3 0 0-2.5 8.4 3.2 11.8.2.4 6.7-17 6.7-17s2 4.7 4 7.8c3-15 19.4-17.5 19.4-17.5l3.4 8c-5.1.8-11.5 11.2-8 17-3.5 0-9.6 10.1-7.7 15.6-2.9 2.9-10 6.7-8.3 18.8-5.6 1.2-9 11.5-7.2 22.5-8.8 8.1-6.6 23 1.2 29.1-3.2 3-5.2 5.1-5.2 8.7-3.1-1.1-6-.2-7.3 1.8-3.8-3.9-9.2-7.2-13-3.6-1-4.6-7-9.6-13.5-9a12.3 12.3 0 00-9-13s-1.5-22.6-8.3-30c-.7-4 .4-6.8 6-10.2 5.7-3 6.9-5.3 6.4-13.9 2.3-5.7 4-11.5-3-15.4.2 6.8-1.8 10-4.6 13-3.3-.4-4.4 3.4-6.6 5-3.1-4.1 6.5-10.6-.6-19.9-.4-.4-5-12-16.3-11.8 5.3 3.1 7.6 8.4 7.6 13.9a41.3 41.3 0 00-1.8 29.3c-4.7-7-7.4-20.4-11.3-22.7-3.4-.7-5-8.7-18.3-6.4 5.7 1.5 7.6 5.9 9 9.8-3.4 1.8-1.7 6.6.9 9.9-.5 7.7 4.1 12.2 11 15L85.6 237c-2.7-.3-7 10.4-8.6 10.7-2.7 1.7-7.4 6.2-2 7.5-1.6 5.7-3.1 9.2-11.7 10.4 0 0 9 5.4 16.6-3.8 8-.2 5.4-9.8 9.3-14 0-.3 2.3-1.7 5.5-10.2 1.4 7.6 9.2 30.8 26.7 42.3 15.3 16.4 28 31.9 27.8 53.7a54 54 0 0012.3-22.7 89 89 0 0130.8-3.6c-1.8 3.9-3.9 7.6-1.3 10-7.4 2.6-9 8-6 13.3-7.8 5.3-8.3 8.7-8.4 17.5-14.5 18.5-23.4 17.9-37.7 13-4.6-2.7-12-6.6-15.3-4.5-6.1-4.2-15-4.8-16.5 4.6 4.7-3.9 7.4-3.1 11.1.6-.7 1.9-1.3 3.7 1.4 4.8l-3.6 4c-6.6-1-15.6-1-17.9 8.7 3.4-2.9 11-3.5 17-.8l3.5 1.2.4 4.6s-9-1.4-11.4 13.3c8.4-9 14.4-6.7 14.4-6.7 3.3 4.8 15.3 4.1 24-3.8 12.1-6.8 15.7 3 23.5-3.4 6.5-4.8 14.2-1.6 19.5 4 6.1 2.3 12.5 4.2 17.5 0 0 0 6.2-3.9 12.3 2.4 0-7-5-10.9-11.8-11l-2-2c-6.5-1.4-13.7-.8-19.4-4a58 58 0 0114.1-27c9.3-10 16.2-14.6 28-29.9-.5 8.7 6.1 18.3 9.6 27 0 0 7-11.1 8-20.3.3 0 8.9-4.4 12.5-8.3 7.8 4.9 20.4-3.8 28.6-11 5 2 8.9 1.8 14.7 0-4.7 9.6 2.7 18.5 14.5 22.2 1 8.4 9.6 10.2 22.5 10.2.6 5 8.3 5.7 8.3 5.7-5 2.2-7.4 4.5-7.3 9.6-5 0-8.7 1.3-10 7-6.9.2-13.9.7-19.8 4-6.3-.9-14-3.5-18.9-8.6-2.5-2.1-3.2-5.2-7.6-6.4-2.8-3.3-6.2-2.6-7.3.6-2.9-2.3-13.8-3.3-15.7 7 5.2-3.7 9.7-5.1 13-.5-1.8 3.1 4.2 5 9.4 6.2 3.7.2 10.2 3.6 12.2 9.2a20 20 0 01-16.7-2.6 11 11 0 00-13-.8c-4.4-2.8-14.7 2.5-15.1 10.9 4.3-4 8.3-6 12.3-3.4-2 .4-1.3.6-1 1.8l10 5.8c-5 1.3-9.6 3.3-7.4 12.5 0 0 4-8 13-5 .2-.3 1.3 2.8 3.9.7 3.9-4.4 12.8-6.4 20.7-7.2 6.3-.7 12.6-2.6 18 1 5-2.5 10.4-4.2 16-.2 6.6 2 11.4 9.8 19.7 6.3 4.2-3 9.3-3 14.5 2.8 0-7.4-5.5-9.9-13.3-11.5l-5.4-3.2c-5-.8-10 .1-15.1-2.3a92.3 92.3 0 0057.7-42.4l12.5 4.4c3 .2 3.2 1.2 9.3 3 .2-8.9-3.7-18.1-19.8-19l-21-8c-4.6-4.8-6.6-14.9-.9-20.8 5.6-5 6.6-4.4 10.3-10.5 4.5-.4 8.7 4.2 12.8 4.2 2 5.9 13.4 11 20.6 9.3 4.5 4 13 6.2 22.5 3a18.2 18.2 0 0020.5 3c2.2 2.2 6.8 4 12 2.8.5 0 2.8 5.8 8.5 7.9-2.5 2.4-1 13 1.7 16.9a17 17 0 00-.9 12.7c-5.8 3.7-7 6.5-4.4 12.8-7.6 12.3-16.7 13.7-25.3 10l-9.3-6-9.8-9.6c-1.7-1.6-5.2-2-5.9 1.4 0 0-12.6-2.8-13.7 7.9 5.3-5.1 12.7-.6 12.7-.4s-1.8 1.4-.4 3.4c.3-.3 9.3 3.3 17.2 6.7 4.3 1.7 5.3 2.2 7.2 3.2a340.8 340.8 0 00-7.2-3.2 32.8 32.8 0 00-11-2.9c-4.4-.4-9.2-1-11.4 2.4-4.8 2-12.4 3.7-12 12.7 3.2-5.4 7.7-5.1 13.4-4.6l-.4 1.2c6.2 2.8 5-.8 10.8-1.3a44 44 0 0115.3 2.5c-4.5 1.3-10.7.7-13.6 4-.6 1-2.5.6-1.6 3.2 0 0-9-.2-11.3 12 9-5.7 15.9-5.5 16-5.5l2.9.6 11-7.3c.3 0 10.6-4.6 15.3.6 4.2 2 8.6 2.2 13-.4 8.4-3.7 16.3-4 24 1.2l7.1 4.2 3-2s8-2.2 13.8 4.9c-2.4-12.3-11.2-12.7-11.2-12.7l-2-1.8-12.4-4.9c-1.9-4.5-6.4-8-1.9-13.4 4.7-23.1 10.2-40.4 1.2-63.8 8.4 3.6 14.7 14.8 25.2 10.9 0-9.4-34.6-27.3-61-41.6C508 264 560 232.1 540 191.5l9.4-29.4c4.5 9 13.5 15.8 21.6 18.7-6.7-12.7-10.5-51.6-6.7-78.4a627 627 0 01-57.1 60c10 2.4 18.9.7 28.6-.5l-8.2 17c-26.6-15.7-57.8-4-58 16.8.9 24.2 30.8 27.7 48.1 19.2-3.4 22.1-54.2 14-54.2 14-18-6.2-35.1-5.2-54-5 3.9-12.1 25.7-22.9 42.4-18.1-23.3-26.2 3.3-58.7 35.4-68.6-35-11.6-4.9-38.3 21.3-57.4 0 0-75.3 31.7-82.2 31.6-21.4-1.6-15.6-27-7.4-40.6zm-236.4 30.4c1.8 0 3.8.2 5.5.6 3.4.9 7.5 1.3 7.5 2.4-1.6 2.6-5.5 5.7-9.3 5.6-3.8-.2-6-2.5-7.2-8.2.4-.2 1.8-.4 3.5-.4zm317 89.4c5 0 10.9 2 16.6 8.2-2.7 8-26.8 12-28.4.2-.5-3.6 4.6-8.3 11.8-8.4z"/>
+    <path fill="none" stroke-linejoin="round" d="M207.4 171.2l3.7 5.3m-.2.1s0 7.2 1.5 7.3m-3.3 3.9l3.8 6.3m-10.5 1.6c.2 0 4.7 5.2 4.7 5.2m3.9-4c0 .2 4.2 8.1 4.5 8.1m-10-2.6s1.4 9.6 2.7 9.3m-9 8.3l4.2 6.5m3.7-13.3s2.3 9.1 4.1 8.3m1.9-13.8c.1.2 4.3 6.1 5.4 5.3m-1 2.3l4 8m-10.6-1.8l3.3 9.4m-11-4.6s3 10.1 5.7 8.5m-6.8 5s.2 5.3 2.8 5.6m1.8-8.3c0 .2 2.7 3.8 2.7 3.8m5-10.1l2.1 3.5m4.9-10l3.3 4.1M206 176.7c.1 4.5 7.2-1.6 10-5.4m-13 21s7.7-5.5 13.7-13.8m-16.3 26.9c5.5-1.5 15.6-13.7 17.6-20.2m-18.7 32.3c1.5.7 20.3-13 20.8-22.9M198.8 228c0-.1 17.2-4.4 24.3-23.3M198 242.3s27.5-16.5 29-28.6M412.4 270s-1.8 14.2-16 16.4m20.5 9c.1-.2 13.6-15 10.1-19.5m21.1 5.2s-.2 10.3-8.6 17.4m25.4-14.4s.3 12.4-5 17.4m20.4-10s-6 11.7-8.1 12.9m7.9 7.8s7.8 2 10.3-3.2m-8.3 20.1s7.2 1.3 10.6-5.6m-11.4 18.7s5.9 5 9.9-1.6m-94-94.4s-.7 25.3 34.8 30.4c39.7 11 58.5 5.2 60.8 49.7-1.5 17-3.6 36-16 28.7m-117.4-85.5s5.7 10.1 12.5 9.4c9-2.6 12.3 2.9 12.3 2.9m-49-2.2s15 7.3 27.7-4.5m-26-6c1.3 17.5-20.1 27.5-28.6 25.8m29.6 41c.1 0 11.6-6.8 9.3-11.6m-32.1 1.5c.3-.4 19.3-2.2 22.8-9m-31.6-19s26.9.2 28.7 5.1m7-21s-26.2 44.9 22.2 44.9m-50-45.5s-5.6 16.7-13.6 22.4m-14.2-28.2s9.7 18.8 0 28.1M261 280.8c.1.3 3.1 26.7-3.5 34.2m-9.2-33.4s1 16.8-4 22.8 1.2 18.4 1.2 18.4m-60.5 8s3.6 6.3 8.5 4.1m-2.5-17.8s8 3.5 10.7 2.2m-2-30.4s-11.8 3.3-7.3 17.3c6.8 5.5 13.4 4.6 13.4 4.6m-29.4 37.4c-.1 0 1.4 11 9 2.7 5.3-11.2 22-42.6 25.9-53.4m7.8-5.1s-8.1-6.3-7.8 2.5c-.2 5.5 2.5 6.8 2.5 6.8.3 4 3.8 9.6 6.6 4.5 1.2-5-.8-7.2-.8-7.2m4.7-9c-7.3-.4-11.3 15.7 2.8 5.6m4.8-11s-1.8 2.5-4.7-.2c-1.5-2.6-6.8 12 2.5 12.5 1.7-4.3 6.8-5.5 6.8-5.5m4.4-13.8s-4.2 2-5.7 1.7c-5 1.1-4 12.8 2.3 12.1 2.2-2.5 4.5-6 4.5-6m-40.3-23c-.2 0-16.5 25.7 9.1 32.5m198-71s-10 8.4-.7 22c-31-.5-47.5 13.8-48.8 23.4-39.4-2.8-32.2 8.8-45 12.6-17.1-14.3-42.2-6.3-40.6 8-11.4-16.1-29-8.3-31.2-4.3-2.1 4-1.3-19.8-1.3-19.8s-11.5 5.2-19.4 14.6v-19.9c-9.6 2-18.9 2-28.8 1.8m-25.9-7.3s14.3 8 32-2.8M166 226.3s11 10 32 6.8m-25-29.7s2.4 8.1 26.3 8.6M181 184.6s9 11 21.2 9.3m-13.5-25s3.5 6 16.8 7m-9-24.5s7 7.6 15 6.3M238 89.3s3.1-3 8.3-1.5m-10.5 17.8s-9.6-.3-9-4c.8-4.4 10.2-7.5 10.2-7.5s12.5-8 14.4-10.8m-56.6 44l12.2 23.3 5.8-8.8 3 6 5-8.7 8.6 5.5-3.2-10.7 7.2-.5s-2-5.1-8.4-6.2c1.7-1.3 7.7-5.3 7.7-5.3s-3.4-4-8.8-4.1c1.8-1.9 4.2-6.5 4-6.5l-5.3-1.2s12.2 4 21.6-1.6M221 89.7c.1.1-.7 4.8-3.3 7.5m-43.7 5.3s7.5-2 13.1-.9c5.6 1.2 13.1 3.2 13.1 3.2s9-1.2 11.9-3.3m-56.8 6s-1 3.6-1.4 6c0 1.7-5.5 4-5.5 4m10.3-17.4s4.8 6 5 9.5c.1 3.4-3.6 6-3.6 6M109 141l-5-8 4.5-1.6m90.5 121c-4-5.2 3-84.2 17.7-104.8-5.1 37.2 12 75.2 16.3 75m-79-97s6.8 2.5 20.7-8.6m18.9 26.8l10 .1m300.3-62s-166.7 77.8-169.1 82c28.1-8.6 147.5-28.5 150.4-26.8-7 1.7-151.9 35-158.7 43 36.2-1.2 111.9 11.6 123.8 24C424.5 198.3 347.6 187 324 192c17.2 4.1 83.2 46.8 83.2 53.6-10-9.5-89.3-42.2-92.4-39 18.2 10.9 43.9 51.4 43.9 61.3-5.3-8.4-51.2-57.7-53.9-54.5 4.9 6.7 14.5 64.9 9.6 67.6 0-7-17.8-58-19.3-59.4-3.6 1-26.3 62-21.8 67.8-3-20.4.5-63 6-61.3-10 1.5-41.7 43.4-38.3 50 1-10.5 2.4-17.4 20.4-52.1-20 1.2-61.2 27.1-68.2 36.4 5.6-16.5 40.5-44.4 55.8-46.4m72-60.7c17.6-9.8 72-29.7 108.4-44.4m-142.6 97s12-.2 24-32.8c11.8-44.6 105.7-94.3 107.6-103.6M128 252.8s-2.8 6-6.2 7.6m19.7 1.4s-3.7 7.2-4.6 10.6m17.5-7s3 9.8.5 14.4m-36.4-40.1c-9.4 5.3 5.4 39 50.1 42.2m-7.2-18.2s-1.2 6 7.2 18c-2.4 13.4 10.2 23.9 15.2 25.6m-26-164.2l1.4-3.6 1.5 4 2.5-.1 1.6-4 1.4 4h2.4l1.5-4.4 2.3 4.2h2l1.5-5 3 3.6 1.2-.4 1-5.2 3.1 3.6 1-.5 1.4-5 2.5 3.7 1.3-.4 1.2-4.3 2.4 4m-39 6.2l18.8-.3c6 0 15.8-8.3 26.7-5.7m-84.9 46s3.1 6.8 7.4 3m-14.6 1.5s-6 16.2 1.2 20m-9.8-37.8s0 3.8 8-2m-32.5 86.7s6.3 2 5.3 6.7m-3-80.8s4 1.9 7.8-4m34.2 189.7c6.1-.4 7.5 2.4 13 2.4 6.6.2 12.9-2.4 21-4.7m53.1 15c-.2 0-3 5.8-.5 8.7m-87.5-8.2s9.8-8 15-3.1c4.9 1.7 7.6 1.4 7.6 1.4m-17.5-21.3s2.4 6.2-5.6 5.3m-2.4 9s5.1 3.2-.7 7.5m3.8 5.8s7 1 2.9 6.7M346 341.6s19 2 20 3.4c2.2-2.3 19.2-16.2-1.7-18.1a19 19 0 01-18.3 14.7zm-6.8 9.5c7.1 5.7 4.2 9.1 26.6-5.9m-36.8 13s10.5 11.4 18.2-2.4m-38.3 6.5l-14.3 7.5M269 380.3s8.7-7.4 12.7-3.5c4.1 4 21.3-3.4 21.3-3.4M275.5 348s3 6-2.8 6.7m-8.5 11.9s3 5.6-2.8 7m9.5 8.1s9 .5 5.8 7.3m78.4-8.5s-5 4.2-1.3 9m73-39s5.7 2.8-1.1 7.5m-5.7 9.9s4.3 4.5 1.4 8.2m10.6 9s5.9 1.7 5.2 6.6m77.8-11s-5 3.7-2.3 8.4M427 236.3c11.8-1.4 28.8 25 37.5 30.1m51.9-67.4s6 5.3.7 18m10.4-38.2c1.7 1.3 8.1 4.8 12.4 12.8m4.1-52.2l-8.3 22.5m17.6-23.6s-1.6 20-4 24M516 198.8c-2.7 8-26.8 12-28.4.2-.9-6 14.2-15.3 28.4-.2z"/>
+    <path stroke-linejoin="round" d="M182.3 101.3l9.3 1.7s-6.5 8.8-9.3-1.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gb.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gb.svg
new file mode 100644
index 0000000..132dbed
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gb.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gb" viewBox="0 0 640 480">
+  <path fill="#012169" d="M0 0h640v480H0z"/>
+  <path fill="#FFF" d="M75 0l244 181L562 0h78v62L400 241l240 178v61h-80L320 301 81 480H0v-60l239-178L0 64V0h75z"/>
+  <path fill="#C8102E" d="M424 281l216 159v40L369 281h55zm-184 20l6 35L54 480H0l240-179zM640 0v3L391 191l2-44L590 0h50zM0 0l239 176h-60L0 42V0z"/>
+  <path fill="#FFF" d="M241 0v480h160V0H241zM0 160v160h640V160H0z"/>
+  <path fill="#C8102E" d="M0 193v96h640v-96H0zM273 0v480h96V0h-96z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gd.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gd.svg
new file mode 100644
index 0000000..f2254f3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gd.svg
@@ -0,0 +1,27 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-gd" viewBox="0 0 640 480">
+  <defs>
+    <g id="c">
+      <g id="b">
+        <path id="a" fill="#fcd116" d="M0-1v1h.5" transform="rotate(18 0 -1)"/>
+        <use transform="scale(-1 1)" xlink:href="#a"/>
+      </g>
+      <use transform="rotate(72)" xlink:href="#b"/>
+      <use transform="rotate(144)" xlink:href="#b"/>
+      <use transform="rotate(216)" xlink:href="#b"/>
+      <use transform="rotate(288)" xlink:href="#b"/>
+    </g>
+  </defs>
+  <path fill="#ce1126" d="M0 0h640v480H0z"/>
+  <path fill="#007a5e" d="M67.2 67.2h505.6v345.6H67.2z"/>
+  <path fill="#fcd116" d="M67.2 67.3h505.6L67.2 412.9h505.6z"/>
+  <circle cx="319.9" cy="240.1" r="57.6" fill="#ce1126"/>
+  <use width="100%" height="100%" transform="matrix(52.8 0 0 52.8 320 240)" xlink:href="#c"/>
+  <use width="100%" height="100%" x="-100" transform="translate(-30.3)" xlink:href="#d"/>
+  <use id="d" width="100%" height="100%" transform="matrix(31.2 0 0 31.2 320 33.6)" xlink:href="#c"/>
+  <use width="100%" height="100%" x="100" transform="translate(30.3)" xlink:href="#d"/>
+  <path fill="#ce1126" d="M102.3 240.7a80.4 80.4 0 0033.5 33.2 111 111 0 00-11.3-45l-22.2 11.8z"/>
+  <path fill="#fcd116" d="M90.1 194.7c10.4 21.7-27.1 73.7 35.5 85.9a63.2 63.2 0 01-10.9-41.9 70 70 0 0132.5 30.8c16.4-59.5-42-55.8-57.1-74.8z"/>
+  <use width="100%" height="100%" x="-100" transform="translate(-30.3 414.6)" xlink:href="#d"/>
+  <use width="100%" height="100%" transform="matrix(31.2 0 0 31.2 320 448.2)" xlink:href="#c"/>
+  <use width="100%" height="100%" x="100" transform="translate(30.3 414.6)" xlink:href="#d"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ge.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ge.svg
new file mode 100644
index 0000000..8abdee3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ge.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ge" viewBox="0 0 640 480">
+  <path fill="#fff" d="M0 0h640v480H0z"/>
+  <path fill="red" d="M272 0h96v480h-96z"/>
+  <path fill="red" d="M0 192h640v96H0z"/>
+  <path style="mix-blend-mode:multiply" fill="red" fill-rule="evenodd" d="M146.8 373.1c1-16.8 4-31.1 4-31.1s-9.8 1-14.8 1c-4.9 0-14.8-1-14.8-1s3 14.3 4 31.2c-16.9-1-31.2-4-31.2-4s1 7.4 1 14.8-1 14.8-1 14.8 14.3-3 31.2-4c-1 16.9-4 31.2-4 31.2s7.4-1 14.8-1 14.8 1 14.8 1-3-14.3-4-31.2c16.9 1 31.2 4 31.2 4s-1-9.8-1-14.8c0-4.9 1-14.8 1-14.8s-14.3 3-31.1 4zm368-288c1-16.8 4-31.1 4-31.1s-9.8 1-14.8 1c-4.9 0-14.8-1-14.8-1s3 14.3 4 31.1c-16.9-1-31.2-3.9-31.2-3.9s1 7.4 1 14.8-1 14.8-1 14.8 14.3-3 31.2-4c-1 16.9-4 31.2-4 31.2s7.4-1 14.8-1 14.8 1 14.8 1-3-14.3-4-31.1c16.9 1 31.2 4 31.2 4s-1-10-1-14.9 1-14.8 1-14.8-14.3 3-31.2 4zm-368 0c1-16.8 4-31.1 4-31.1s-9.8 1-14.8 1c-4.9 0-14.8-1-14.8-1s3 14.3 4 31.2c-16.9-1-31.2-4-31.2-4s1 7.4 1 14.8-1 14.8-1 14.8 14.3-3 31.2-4c-1 16.9-4 31.2-4 31.2s7.4-1 14.8-1 14.8 1 14.8 1-3-14.3-4-31.2c16.9 1 31.2 4 31.2 4s-1-9.8-1-14.8c0-4.9 1-14.8 1-14.8s-14.3 3-31.1 4zm368 288c1-16.8 4-31.1 4-31.1s-9.8 1-14.8 1c-4.9 0-14.8-1-14.8-1s3 14.3 4 31.2c-16.9-1-31.2-4-31.2-4s1 7.4 1 14.8-1 14.8-1 14.8 14.3-3 31.2-4c-1 16.9-4 31.2-4 31.2s7.4-1 14.8-1 14.8 1 14.8 1-3-14.3-4-31.2c16.9 1 31.2 4 31.2 4s-1-9.8-1-14.8c0-4.9 1-14.8 1-14.8s-14.3 3-31.2 4z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gf.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gf.svg
new file mode 100644
index 0000000..e382883
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gf.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gf" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h640v480H0z"/>
+    <path fill="#00267f" d="M0 0h213.3v480H0z"/>
+    <path fill="#f31830" d="M426.7 0H640v480H426.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gg.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gg.svg
new file mode 100644
index 0000000..deb4af5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gg.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-gg" viewBox="0 0 640 480">
+  <path fill="#fff" d="M0 0h640v480H0z"/>
+  <path fill="#e8112d" d="M256 0h128v480H256z"/>
+  <path fill="#e8112d" d="M0 176h640v128H0z"/>
+  <path id="a" fill="#f9dd16" d="M110 286.7l23.3-23.4h210v-46.6h-210L110 193.3z"/>
+  <use width="36" height="24" transform="rotate(90 320 240)" xlink:href="#a"/>
+  <use width="36" height="24" transform="rotate(-90 320 240)" xlink:href="#a"/>
+  <use width="36" height="24" transform="rotate(180 320 240)" xlink:href="#a"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gh.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gh.svg
new file mode 100644
index 0000000..3f97834
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gh.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gh" viewBox="0 0 640 480">
+  <path fill="#006b3f" d="M0 0h640v480H0z"/>
+  <path fill="#fcd116" d="M0 0h640v320H0z"/>
+  <path fill="#ce1126" d="M0 0h640v160H0z"/>
+  <path d="M320 160l52 160-136.1-98.9H404L268 320z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gi.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gi.svg
new file mode 100644
index 0000000..1b44fd6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gi.svg
@@ -0,0 +1,32 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-gi" viewBox="0 0 640 480">
+  <path fill="#da000c" d="M0 0h640v480H0z"/>
+  <path fill="#fff" d="M0 0h640v321.6H0z"/>
+  <g stroke="#000" transform="translate(-160) scale(1.875)">
+    <g id="a" fill="#da000c" stroke-linecap="square">
+      <path fill="#000" stroke="none" d="M196.6 116.3h64v44h-64z"/>
+      <path d="M229.8 153.9h-39l-8.7 5.7v6h47.7m-16.3-37c5.6 0 10.2 4.7 10.2 10.5v14.7h7.3v-56h-40.3v56h12.6v-14.7c0-5.6 4.5-10.5 10.2-10.5z"/>
+      <path fill="#000" stroke="none" d="M204.5 60h18.6v34h-18.6z"/>
+      <path d="M223 88.7h-16.2v-5.8h-11.9v5.8h-8v-5.8H182v10.4h41m-36.2 0h35v4.5h-35zm14-45.7V83h6v-9.7c0-3.6 2.5-6.6 6.1-6.8h.4a6.8 6.8 0 016.8 6.8V83h5.7V47.6zm-2.3-4.8v4.8h29.3v-4.8zm-3.7-9.1v9.1h35v-9.1h-5.3v4.7h-6.6v-4.7h-10v4.7h-6.5v-4.7zM182 159.6h48m31-2.8h-32.4l-9.8 4.7v7H261"/>
+      <path stroke-linecap="butt" d="M218.8 161.5H262"/>
+    </g>
+    <use width="100%" height="100%" transform="matrix(-1 0 0 1 512 0)" xlink:href="#a"/>
+    <g fill="#f8d80e">
+      <g stroke-linecap="round">
+        <path stroke-width=".8" d="M273.3 150c-2.7 1-5 2.4-7.5 3.8a72.4 72.4 0 00-8.9 6c-1 .7-2 1.4-2.7 2.4-1 .8-2 2-1.8 3.5 0 .6.8-.8 1.4-.9a4.4 4.4 0 013.1-.4c1.3-1.4 3-2.3 4.4-3.4a77.4 77.4 0 0113-7.6l-1-3.4z"/>
+        <path d="M260.4 157.4v3.9m2.4-5.6v3.9m2.4-5.4v3.8m2.5-5.3v4"/>
+        <path stroke-width=".8" d="M238.9 150.2l-1.2 3.3a86.6 86.6 0 0115.8 8c1.7 1.2 3.5 2.3 4.8 3.9.3.8-.5 1.5-1.3 1.2-.7-.2-1.5-.5-2.2 0-1.1.5-2.1 2.2-.5 2.7 2.4 1.6 6.1.9 7.2-1.8.6-1.4.7-3.2-.5-4.4-2-2.3-4.8-4-7.4-5.7a89.2 89.2 0 00-14.7-7.2z"/>
+        <path d="M254 158l-.3 3.4m3.1-1.7l-.8 3.3m3.8-1l-1.8 2.6m2.7 3.6l-2.6-1.4m3.4-1.4l-3 .3m-.8 4l-.2-2.6m-1-.3l-2.4 1.8m-9.4-15.7v3.1m6.3.3v3.5m-3.2-5.2v3.3"/>
+      </g>
+      <path d="M235.8 227.6v8h5v-4h6.9v4h5.4v-8zm0 11v8H253v-8h-5.4v4h-6.9v-4z"/>
+      <path d="M253 193.7h5v58h-5z"/>
+      <path d="M253 198.7h5v50h-5zm2.6-19.3l10.6 6.2-10.6 6.2-10.7-6.2zm-14.3 4h-2.7v4.4h2.7l14.3 8.3 14.2-8.3h2.8v-4.4h-2.8l-14.2-8.3z"/>
+      <path d="M255.3 164.3a5 5 0 00-4 5.1v11.2a5 5 0 004.6 4.6 4.9 4.9 0 004.8-2.8l-1.7-1a2.9 2.9 0 01-3 1.8c-1.6 0-2.9-1.6-2.7-3.1v-11.2a2.9 2.9 0 013-2.6c.6-.2 1.5.7 1.9 0 .6-.9-.4-1.5-1-2h-1.9zm5.8 3.9a5 5 0 01-1.9 1.6v7.5l2 1.1v-10.2z"/>
+    </g>
+    <g fill="#da000c">
+      <path fill="#000" stroke="none" d="M240.8 38.4h29.3v53.2h-29.3z"/>
+      <path d="M238.8 38.4v44.5h9.3V69.7c0-3 2-7.3 7.9-7.3s8 4.3 8 7.3V83h9.2V38.4zm15.8 5h2.8v15.2h-2.8zm-8.3 3h3v11.1h-3zm16.5 0h2.9v11.1h-3zM235.6 32v6.3h40.8V32zm-3.8-7.4V32h48.5v-7.4h-6.1v4h-7v-4h-7.8v4h-6.8v-4h-7.9v4H238v-4zm-9 73.2v4.6h66.5v-4.6z"/>
+      <path d="M220 82.9v15h72v-15h-6.8v5.8H276v-5.8h-12.2v5.8H248v-5.8h-12.2v5.8h-9v-5.8z"/>
+      <path stroke-linejoin="round" d="M228.7 102.4v54.4h12.8v-20.4c0-9.5 6.4-14 14.5-14 7.8 0 14.5 4.5 14.5 14v20.4h12.8v-54.4z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gl.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gl.svg
new file mode 100644
index 0000000..20f5c5e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gl.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gl" viewBox="0 0 640 480">
+  <path fill="#fff" d="M0 0h640v480H0z"/>
+  <path fill="#d00c33" d="M0 240h640v240H0zm80 0a160 160 0 10320 0 160 160 0 00-320 0"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gm.svg
new file mode 100644
index 0000000..76d03af
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gm.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gm" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="gm-a">
+      <path fill-opacity=".7" d="M0-48h640v480H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#gm-a)" transform="translate(0 48)">
+    <path fill="red" d="M0-128h640V85.3H0z"/>
+    <path fill="#fff" d="M0 85.3h640V121H0z"/>
+    <path fill="#009" d="M0 120.9h640V263H0z"/>
+    <path fill="#fff" d="M0 263.1h640v35.6H0z"/>
+    <path fill="#090" d="M0 298.7h640V512H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gn.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gn.svg
new file mode 100644
index 0000000..7841e8d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gn.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gn" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="red" d="M0 0h213.3v480H0z"/>
+    <path fill="#ff0" d="M213.3 0h213.4v480H213.3z"/>
+    <path fill="#090" d="M426.7 0H640v480H426.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gp.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gp.svg
new file mode 100644
index 0000000..24a8260
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gp.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gp" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h640v480H0z"/>
+    <path fill="#00267f" d="M0 0h213.3v480H0z"/>
+    <path fill="#f31830" d="M426.7 0H640v480H426.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gq.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gq.svg
new file mode 100644
index 0000000..4cec1a5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gq.svg
@@ -0,0 +1,23 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gq" viewBox="0 0 640 480">
+  <path fill="#e32118" d="M0 0h640v480H0z"/>
+  <path fill="#fff" d="M0 0h640v320H0z"/>
+  <path fill="#3e9a00" d="M0 0h640v160H0z"/>
+  <path fill="#0073ce" d="M0 0v480l180-240z"/>
+  <g stroke="#000">
+    <path fill="#fff" d="M281.6 191.8h76.6V272c0 27-35.2 6.2-38.2 20.6-5.2-14.8-38.2 6.6-38.2-22.2l-.2-78.6z"/>
+    <path fill="#73452b" stroke-width=".2" d="M325.4 279.8s-1 1-2.8.2c-1.8-.8-2-51.4-2-51.4 4-4.4 7.2-5.8 7.2-5.8l2.4 2c-9 4.6-8.2 11.2-7.4 22.6.2 4.2.2 9.6 1.2 14.8 1.4 6.6 4.2 12.2 4.4 16.4.2 2.6-3 1.2-3 1.2z"/>
+    <path fill="#73452b" stroke-width=".2" d="M319.2 221.6h3.6c-3 29-.4 46.2-.4 54.6 0 2.8 1.6 3.8 1.4 3.8-3.6 4-5.4-.2-5.4-.2z"/>
+    <path fill="#a36629" stroke-width=".2" d="M313.6 279.8c-3.4 1.6-3.8-1.6-3.6-2 7.4-15 10.6-48 3.8-51.6l.4-3.2c2.6.8 5 4.2 5 4.2 1 37 0 52.2-.6 52.8-3.6 3.8-5-.6-5.2-1"/>
+    <path fill="none" stroke-width=".2" d="M313.4 279.2c-.6-3.2 5.2-11.4 4.8-20m5 7c1.8 5 2.6 9.4 2.2 13.6"/>
+    <path fill="#009a3b" stroke-width=".2" d="M331 208c1.2-1.4 1.2-1.4 3.4-1.4.4-3 5.4-3 5.8.8 4-.8 4.8 1.6 3.2 4 3.8-1 7.2 0 6.2 4.4 6.8 1.8 4.2 6.6 1.2 7.6-.4 3-3.2 4-7 2.8-4.8 3.4-7.6 2.2-9.8-1.2-5.4.8-5.8-.4-8.2-3.4-4.2 1.8-5 1.8-8.6-.4-.2 2.8-1.2 2-3 1.8.2 3.6-1.2 5.2-4.4 4 2.4 5-3.8 7.2-6.8 3-2.8.2-3-.6-4.4-1.6-1.2 4-5.6 3.4-6.4 1.2-5.6-.8-5-3.8-.4-4 .4-3.2 3.2-2.6 5-2.2.2-2 1.4-1.6 2.4-1.2-.6-1.4-.2-2.2 1.6-2.6-2.6-3.4-1-4.6 1.6-5.8-1.4-3.2 1-3 2.8-3.2-.2-3.4.8-4 4.4-4.4-.4-1.2.2-2.2 2.2-2.2-1.2-3.4.4-4.2 4-3.6.6-5 11.2-2.6 10.4 4.2 3 .4 4 1 4.8 3.4z"/>
+    <path fill="none" stroke-width=".2" d="M309.6 206.2c.8.4 1.8 0 2 2.2 1.6-2.8 3.6-1.2 3.6 2m11-5.8c-.8 1.2-3.8 1.2-3.4 4.4-1-1.4-3-1.8-3.8-.4m12-.6c0 .8-.2 3.2-1 4.4m13.4-1c.2.2-2.8 0-4.2 1m11.6 11c-.8-.4-2.4-1.4-3.6.2 0-.8 0-3-2.2-3m-1.2 5.6c0-2-.4-2.6-.8-3.2m-5.8.4c-1.6-1.2-3.2.6-3.2 1.6m-8.4-3.4c0-.8-.6-2.4.8-3M302.8 230c.4-2 1.8-2 1.6-3-.2-1.6-2-3-4.2-.8m4.2.8c1.2-.4 2.4-.2 2.8.4m-6.2-7.8c.8-.8 2.8-.6 4 0m0-4.8c1 0 2.8-.4 3.4 1.4 2.2-3.4 3.8-3 4.2-2.2m4-.4c1.6-.6 4.4 1 6 3.8.8-2.2 2-1.8 3.2-2m7.6 2c2.6-1.2 4.2 1.2 5 2.2 1.2-1.6 2.2-1.6 3.4-1.6m-32.6 4.2c.6-1 2-1.2 3-.6-.2-1.8 1-2.6 1.8-2.2"/>
+    <path fill="gold" stroke-width=".7" d="M317.4 180.5l-4.4.2-2.2 4-2.4-3.8-4.4.2 2-4-2.4-3.7 4.6-.2 2-4 2.4 3.8 4.4-.2-2 4zm-18.8 1.5l-4.4 1-1.2 4.3-3.2-3.2-4.2 1 1.2-4.2-3-3.2 4.2-1.1 1.2-4.3 3.2 3.2 4.4-1-1.4 4.3zm-18.2 3.7l-4 2-.2 4.4-3.8-2.4-4 2 .4-4.5-3.8-2.4 4-2 .4-4.5 3.6 2.5 4-2-.2 4.4zm42.8-5.2l4.4.2 2 4 2.4-3.8 4.4.2-2-4 2.4-3.7-4.4-.2-2.2-4-2.4 3.8-4.4-.2 2 4zM342 182l4.2 1 1.2 4.3 3.2-3.2 4.2 1-1.2-4.2 3.2-3.2-4.4-1.1-1.2-4.3-3.2 3.2-4.2-1 1.2 4.3zm18 3.7l4 2 .2 4.4 3.8-2.4 4 2-.2-4.5 3.6-2.4-4-2-.2-4.5-3.8 2.5-4-2 .4 4.4z"/>
+    <g fill="#fff" stroke-width=".7">
+      <path d="M365.4 270.4l5 7.2 4.6-6.8-3.2-5.8zm-31.8 21l.4 7.2s2 0 3.8-.6c1.6-.6 3-1.8 3-1.8l-.2-3.8zm-26.8 0l-.4 7s-1.8 0-3.6-.4c-1.6-.4-3-1.4-3-1.4l-2-4.8zm-32.2-21l-5.2 7.2-5.6-9.2 4.2-4.4z"/>
+      <path d="M299.6 305.8c0 6.8 41.2 6.8 41.2 0v-9.6c0 5-41.2 4-41.2 0z"/>
+      <path d="M262.8 283.6c3.6 18.4 36.8 18.8 36.8 18.8v-6.2c-.8-2.4.6-3.2 6-4 2.2-.2 1.2-3.4 1.2-3.4s-14.4 2.6-24.6-1.4c-13.8-5.6-15.8-16.4-15.8-16.4s-1 8.4-3.6 12.6zm114.6 0c-3.4 18.4-36.6 18.8-36.6 18.8v-6.2c.6-2.4-.8-3.2-6.2-4-2.2-.2-1-3.4-1-3.4s14.4 2.6 24.6-1.4c13.6-5.6 15.2-16.4 15.2-16.4s1.4 8.4 4 12.6z"/>
+      <path d="M265.4 276.6c-9.2-5-2-10.2-1.2-25 1.4 9 11.6 12.8 10.4 18.6-4.2.2-6.2-6.2-8.2.8l-1 5.6zm109.4 0c9.2-5.2 1.6-10.2.8-25-1.4 9-11.4 12.8-10.2 18.6 4 .2 6-6.2 8 .8l1.4 5.4z"/>
+    </g>
+    <path stroke="none" d="M271 283.4l1 .8-2.2 2.4c-1 1-1.1 1.6-.5 2.2.7.7 1.3.4 2-.4l2.5-2.6.8.8-2.4 2.8c-1.3 1.5-2.5 1.2-3.6.2-.8-.8-1.4-2 0-3.5l2.4-2.7zm4 3.4l1 .6-.2 4.8 2.2-3.4 1 .6-3.2 5.2-1.2-.6.2-4.8-2.2 3.4-1-.6zm1.8 8.4l2.8-5.6 1 .6-2.6 5.4zm4.4-4.8l-2.2 5.8 2.2.8c2 .7 3-.2 3.6-1.9.7-1.8.4-3-1.6-3.9l-2-.8zm.8 1.4c2 .7 2.2 1.5 1.6 3-.6 1.3-1 1.8-3 .8l1.4-3.8zm5.8.8l-3.6 5.4 1.4.4.8-1.4 2.4.6.2 1.4 1.4.2-1.4-6.4-1.2-.2zm.4 1.4l.4 2.4-1.6-.2 1.2-2.2zm3-.9l-.2 6.2h2.3c2.2.1 2.8-1 2.9-3 0-1.8-.7-3-2.9-3l-2.1-.2zm1.2 1c2.2.1 2.5.8 2.5 2.3-.1 1.5-.4 2.1-2.6 1.8v-4zm19.8 7.7v6.4h1.4v-2.4s1.2 0 2.2-.2c.7-.2 1.3-.7 1.3-2 0-1.2-.7-1.8-1.9-1.8h-3zm1.4 1h1.4c1.1 0 1 1.8 0 1.8h-1.4v-1.8zm5.8-1l-2.6 6.4h1.4l.6-1.6h2.6l.6 1.6h1.4l-2.6-6.4h-1.4zm.6 1.4l1 2.4h-1.8l.8-2.4zm3.4 3.8l3.4-4.2h-3v-1h4.8v1L325 307h3.6v1.2h-5.2zm20.2-12.4l1.2-.2.6 3.6c.2 1.3-.4 2.1-1.3 2.5-1 .4-2.4 0-2.5-1.7l1-.2c.2 1 .6 1.1 1 1 .5-.2.7-.8.6-1.4zm2-.4l1.1-.2.6 3c.2 1.3.6 1.8 1.5 1.7 1-.2 1.1-.8.9-2l-.7-3.1 1.2-.2.8 3.3c.4 2-.6 2.7-2 3-1.1.2-2.4 0-2.8-2zm6.2 2.8l1-.4c.5.9 1.2.8 1.8.6.8-.4 1-1.1.5-1.4-.6-.3-2 .2-2.7 0-.9-.4-1.3-1-1.2-1.7 0-1 .8-1.4 1.7-1.7 1-.3 2-.2 2.7 1l-1.2.4c-.4-.7-1-.6-1.4-.4-.4.2-1 .5-.6 1 .2.5 1.7.2 2.5.2s1.4.6 1.5 1.3c.2 1.1-.2 1.7-1.5 2.2-1.5.6-2.9 0-3.1-1.1zm5.4-5l-1.6.8-.4-1 4.4-1.8.4.8-1.6.8 1.8 4.4-1 .6zm2.6-2.2l1-.6 2.8 5.2-1 .6zm6.8.4l1.2-.4a2.4 2.4 0 01-2.4 3.3c-3 0-3.4-3.4-2.9-4.5.8-1.9 3-1.8 4-.8l-1 .8c-.6-.8-2-.3-2 .4a2.7 2.7 0 001.4 3c1 .4 2.4-.8 1.7-1.8zm-.6-4.2l1-.8 3.6 4.8-1 .8zm3.8-3l-1 .8 2.2 6 1-1-.6-1.2 1.8-1.6 1.2.6 1-.8-5.6-2.8zm.4 1.4l2 1-1.2 1.2-.8-2.2z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gr.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gr.svg
new file mode 100644
index 0000000..581af28
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gr.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gr" viewBox="0 0 640 480">
+  <path fill="#005bae" fill-rule="evenodd" stroke-width="6.7" d="M0 0h640v53.3H0z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke-width="6.7" d="M0 53.3h640v53.4H0z"/>
+  <path fill="#005bae" fill-rule="evenodd" stroke-width="6.7" d="M0 106.7h640V160H0z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke-width="6.7" d="M0 160h640v53.3H0z"/>
+  <path fill="#005bae" stroke-width=".9" d="M0 0h266.7v266.7H0z"/>
+  <path fill="#005bae" fill-rule="evenodd" stroke-width="6.7" d="M0 213.3h640v53.4H0z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke-width="6.7" d="M0 266.7h640V320H0z"/>
+  <path fill="#005bae" fill-rule="evenodd" stroke-width="6.7" d="M0 320h640v53.3H0z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke-width="6.7" d="M0 373.3h640v53.4H0z"/>
+  <g fill="#fff" fill-rule="evenodd" stroke-width="1.3">
+    <path d="M20 0h10v50H20z" transform="scale(5.33333)"/>
+    <path d="M0 20h50v10H0z" transform="scale(5.33333)"/>
+  </g>
+  <path fill="#005bae" stroke-width=".6" d="M0 426.7h640V480H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gs.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gs.svg
new file mode 100644
index 0000000..6833555
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gs.svg
@@ -0,0 +1,201 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-gs" viewBox="0 0 640 480">
+  <defs>
+    <linearGradient id="b">
+      <stop offset="0" stop-color="#d5dfff"/>
+      <stop offset="1" stop-color="#fff"/>
+    </linearGradient>
+    <linearGradient id="a">
+      <stop offset="0" stop-color="#474747"/>
+      <stop offset="1" stop-color="#f50"/>
+    </linearGradient>
+    <linearGradient id="c" x1="109.3" x2="110.9" y1="218.5" y2="173.4" gradientTransform="matrix(1.5 0 0 .65 40.5 0)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="d" x1="125.9" x2="126" y1="316.4" y2="337.2" gradientTransform="matrix(1.23 0 0 .8 40.5 0)" gradientUnits="userSpaceOnUse">
+      <stop offset="0" stop-color="#b50000"/>
+      <stop offset="1" stop-color="#ffc500"/>
+    </linearGradient>
+    <linearGradient id="e" x1="407.9" x2="456.4" y1="149.4" y2="147.3" gradientTransform="matrix(.56 0 0 1.76 40.5 0)" gradientUnits="userSpaceOnUse" xlink:href="#b"/>
+    <linearGradient id="f" x1="215.8" x2="229" y1="103" y2="103" gradientTransform="matrix(.74 0 0 1.33 40.5 0)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="g" x1="117.6" x2="78.2" y1="1040.4" y2="1003.7" gradientTransform="matrix(2.56 0 0 .38 40.5 0)" gradientUnits="userSpaceOnUse" xlink:href="#b"/>
+    <linearGradient id="h" x1="264.7" x2="255" y1="246" y2="226.4" gradientTransform="matrix(.9 0 0 1.1 40.5 0)" gradientUnits="userSpaceOnUse" xlink:href="#b"/>
+  </defs>
+  <path fill="#006" d="M0 0h640v480H0z"/>
+  <g stroke-width="1pt">
+    <path fill="#fff" d="M0 0v33l403.2 261.7H454v-33L50.7 0H0zm454 0v33L50.7 294.6H0v-33L403.2 0H454z"/>
+    <path fill="#fff" d="M189.2 0v294.7h75.6V0h-75.6zM0 98.2v98.3h454V98.1H0z"/>
+    <path fill="#c00" d="M0 117.9v59h454v-59H0zM204.3 0v294.7h45.4V0h-45.4zM0 294.7l151.3-98.2h33.9L33.8 294.6H0zM0 0l151.3 98.2h-33.8L0 22V0zm268.8 98.2L420.1 0H454L302.6 98.2h-33.8zM454 294.7l-151.3-98.2h33.8L454 272.6v22z"/>
+  </g>
+  <path fill="#6a4c2d" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M463.8 350s-3 7.5-4.6 7.5c-1.6 0-7.6-3.2-7.6-3.2s-4.3 7-6.6 7.4c-2.2.4-8.2-1-8.2-1s-5.8 0-6-.9c-.2-.8.3-2.4.3-2.4s-8.3 6.5-10.1 6.1c-1.9-.4-8-8.2-8-8.2l-1 4.1-11.8-.4-10.3-6.6s-5.7 9.5-6 9.3c-.1-.2-10 2.2-10 2.2l-.6-1.8-6.6-4s5.1-7.1 5.1-7.3c0-.2-2.4-1-2.4-1l-3.7 3-7.6 5-7.7-3.5 3.3-6.2.4-4.5 6-9 73-71 36 66.4-5.3 20z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M515.6 354.3l19-.7-8-4 72.3-2.8-10.2-3.9-9-12.2-37.6-2.9s-2.8-2.1-7.4-1c-.2-3-3.7-6.8-3.7-6.8l-23-1.7-14.5 9.8 9.7 25 12.4 1.1z"/>
+  <path fill="url(#c)" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M121.3 150.8l2.2-7.6s4-6.6 4-9.4c0-3 2.8-6.4 2.8-6.4s9-2.6 10.8 2.9c9.6-14.5 20.8-.7 20.8-.7l3.1-3.6 6.4-7.8s9 8.4 9 9.9 1.6.4 1.6.4l9.8-.8s4.7 3.7 3.7 10.6c3.4 2 6.6 14 6.6 14l-80.8-1.5z" transform="matrix(.86 0 0 .86 337.3 11.7)"/>
+  <path fill="#656263" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M515.5 218.7c1.4-.9 6-2.3 5.5-9-.6-6.7-6.4-7.5-9.6-7.3-3.3.3-6.2 3-6.2 3l-10.7-6.8s5.4-33.8 11-35.9c5.5-3.9 6.4-5.5 6.4-6.4s-2-3.2-2-3.2L475 149l-33 3.9s-2.6 3.9-2.2 5.5.4 3.2 6.3 7.8c6.6 5 11 33.9 11 33.9s-9.2 4.6-9.8 4c-.5-.6-3.3-1.1-4.7-.9-1.5.2-6.3 2.7-6.3 9 0 6.4 4.8 10 4.8 10s31.6-3.6 36.3 5.1c4.5-10.5 34.5-6.8 38.1-8.6z"/>
+  <path fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="1.1" d="M549.5 183.6s.4-3.7 3-5.4c2.6-1.8 20-2.6 24.3 0s5.7 15.5 5.7 15.5 2.6 4.6 2.8 7.9l.5 5.6s14 18.1 14.2 34.6c1.6 11.1 1.2 41-3.2 52.4-.1 14.1-6 23.4-6 23.4s1.3 2.4 1.2 5c-.2 2.7-1.6 5.1-1.6 5.1l20.4 10.1-7.5-2.8 7.5 6.3-8.5-4 5 5-12.4-5.5s5.8 5.4 5.4 5.2l-9.2-4.3 5.4 5.6c-.2-.3-8-3.5-8-3.5l.3 3s-6.3-.4-6.3-5.1a23 23 0 01-5.2-4.2l-14.5-2.5-16.4-49 3.8-83 1-4.2-1.7-11.2z"/>
+  <path fill="#fb0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M538.5 448.8s-8.4-17.8-12.6-18c-3.8-7.2 13.2-66.2 46-69.5 18 1.4 1.4 20.7-10.4 14.8 1.5 5.2 7.4 12.6 7.4 12.6s-23.5 10.1-30.4 60zm-112.7 2.5s7-20.1 11.2-20.4c4.2-.2-11.2-67-44.8-67.6-18.1 1.5-1.5 21 10.4 15-1.4 5.2-7.4 12.6-7.4 12.6s23.6 10.2 30.6 60.4z"/>
+  <path fill="#00713d" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M456.6 325.5c-.1-.1-8.4 2.6-3 11.6.4-3.5 4-5.6 4-5.6s-5.6 6.7.4 12.4c.7-5.3 4.1-7 4.1-7s-4.2 12.3.1 14.8c.5-4.9 3.7-7 3.7-7s-3.8 11-.4 13.5c.4-4.2 3.2-6 3.2-6s-1.7 11.4 2.7 12.2c.1-4 3.4-8 3.4-8s-1.5 9.4 5.5 9.8c0-3.5 1.3-7.6 1.3-7.6s3.2 10 7.8 8.3v-8.4s2.9 9.5 8.4 7.7c-.8-2.7.3-5.8.3-5.8s3 5.9 8.2 4c.9-1.8-.2-5.3-.2-5.3s7.6 8 10 3.2c2.3-4.8-6.2-6.4-6.2-6.4h5.8s-1.9-4.9-9.6-6c2.6-1.1 5.4-.3 5.4-.3s-1.6-6-9.6-6.7c3.1-1 6.5-.3 6.5-.3s-1-5.7-9.8-7.4c1.4-1.5 5.1-1 5.1-1s-3.5-5.4-7.4-5.1-39.8-3.6-39.7-3.6z"/>
+  <path fill="none" stroke="#3ec26d" stroke-linecap="round" stroke-width="1.1" d="M491.9 354.7s3.1 1.6 3 3m-1.1-5.5s4 2.9 4 5m-.5-6.4s3.2 2 3.4 5.2m2-4s1.6 3.6 1 4.2m2.3-2.3c.2 2.8-.3 3-.3 3m-39.6-20.4s3.8 2.5 3.5 5.9m-3.7-3s1.7 1.8 1.3 2.9m3.3-5.7s2.6 3.5 1.7 6m2.6-3.7s1.2 2.2.1 3.4m2-2.4s1.3 2.2.1 3m-1.7 4.2s3.6.8 4 3.5m-1.9-5.9s3.7.3 4.1 4.2m.9-5.6s2.5 4.3 2 5.7m2.7-5.3s1 4.2.3 5.5m2.8-3.8v4.7m-4.7-11.2s2.4.9 2.2 3.1m0-5.2s3 1.7 2.7 5m.8-6.4s2.6 3 1.6 6.5m2.9-5.8s-1 3.8-.6 5.4m3.3-2.8s-1.6 1.3-.7 3m-14 11.8s.6 3 0 3.4m-3.7-5s1.9 3.2 1.2 4.8m-5.2-5s2.1 2.4 2 4.3m-5.2-3.8s2 1.8 1.8 2.9m-3.5-.1s1.9 2 1.8 2.3"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M430.9 222.2l26.7-.5s17.7 0 19.6 5.8c3.4-7.7 18.6-7.2 18.6-7.2l27.7-1 .5 67a71.5 71.5 0 01-44.9 52 68.6 68.6 0 01-45.3-52.6l-3-63.5z"/>
+  <path fill="#006b00" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M440.4 222l39 103.8 35.2-106.1c-11 .7-34.4-1.7-37.3 8.3-4.5-9-29.1-5.4-36.9-6z"/>
+  <path fill="#ffc900" fill-rule="evenodd" stroke="#006b00" stroke-linecap="round" stroke-width=".6" d="M467 278.2c1.4.8 1.4-28.2 3.4-29.1l1.5-6c-1.7-3-9.3-2.8-12-.3a74.5 74.5 0 001.8 5.4c3.8 6.2 3 30.6 5.2 30z"/>
+  <path fill="#cdad56" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="1.1" d="M456.5 54.3s2.8-3.1 2.9-3.9c.1-.7 12.5-1.2 19.9-15 4.1-7.2 0-3 0-3L479 29s5.1-4.9 3.3-7.5c-1.9-2.6-1.3 3.4-4.3 3.3-3-.2-1.4-6.5-1.4-6.5s-.2-.8-1-1.2c-1.3.2-1 2.4-2 2.7-1.2.2-2.2-5.3-2.2-5.3s-1.9-2.5-3.5 5.4c.9 8.4 6.2 6.7 6.2 12.2 0 5.5-4.7 9.8-6 10-1.5 0-1-4.7-1-4.7s-.7-2.3-1.2-2.3 2.7-.5 2.2-6.7c-1-7.5-2 1.7-4 1.4s-.5-7 .3-7.7-.9-3.8-5.3 4.2c-.4 3.8-.9-1-1.7-.8-1.5 3.1-1.3 5.4.9 8.3 3 2.8 5 5.7 5 7.2-.2 1.5-1.8 4.9-4 4.9s0-4.1 0-5.5c-.2-1.4-4-6.4-4-6.4s-2.6-4.2-2.3-4.4c.3 0-.3-.7-1.5 3.7s-2.8-3-2.8-3-1.7 5.5 2 8.7c-2.8-.4-3 .8-3 .8 0 1.5 3.8 2.1 4.3 4.7s-4 4.2-4 4.2 1.9 2.6 7.1-2.5c.1 3.2-2 5.5-2 5.5 1.8.8 3.1.7 3.4 2.7z"/>
+  <path fill="#cdad56" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width=".9" d="M439.3 54.3s-2.3-3.5-2.4-4.1c-.1-.7-11.5.8-17-13-3.4-6.7 0-2.8 0-2.8l.3-3.2s-3.7-4.6-2.1-7c1.6-2.3 1 3.1 3 3.1 2.5 0 1.1-5.9 1.1-5.9s.2-.7 1-1c1 .1 1.5 3.5 2.4 3.8 1 .2 3-4 3.6-5 .9 0 .8-3.5 2.2 3.7-.7 7.6-7 6.1-7 11.2 0 5 4 8.8 5.2 9 1.1 0 .7-4.3.7-4.3s.6-2 1-2c.5 0-3.6.8-3.2-5 1-5.2 3 .4 4.8 0 1.7-.3-.2-5.5.3-6.4 0-.8 2.6-4.2 3.5 3.4.4 3.6 2.3-3 3-2.8 1.3 2.9-.5 6.7-2.3 9.3-2.7 2.6-4 5.5-3.8 6.8.1 1.4.7 3 2.6 3 2 0 .7-2.3.8-3.5.1-1.3 3.3-5.3 3.3-5.3.6-1 .1-3 .8-3.8 1 0 1.4-1.4 2.5 2.6 1 4 2.3-2.6 2.3-2.6s1.5 4.9-1.7 7.8c2.5-.3 2.7.7 2.7.7 0 1.4-1.2 2-1.6 4.3a4 4 0 001.3 3.8s-1.6 2.4-6.1-2.3a7.8 7.8 0 001.7 5c-1.5.7-2.7.7-2.9 2.5z"/>
+  <path fill="#ffc900" fill-rule="evenodd" d="M508 237.4c-2.3-2-2.5-.2-3.7-.7-.5-.2-1-.8-1.5-1.2-.4-.5-.9-.7-1.5-.9l-.6 1.9c-.2.6.6 1.7.6 2.6-.2 1.4-.8 2.5-2.5 3 .5-1 .8-1 .6-2.2 0-.6-1.7-1.7-1.5-2.3.3-.9.8-2 .4-2.9-.7.5-1.6.3-2.4.6-.6.2-.6 1.4-1.4 1.8-1 .4-2.8.2-4.4-.7 1-.7 1.8-.2 2.7-1 .5-.3.5-1.9 1-2.3s1.6-.7 2.1-1c-.4-.6-.4-1.4-.8-1.9s-2.4-.4-2.8-.9c-.9-1-.7-2.3-1.6-3.3 2.2.9 2 2 2.5 1.9a4 4 0 012.7-.4c.5.2 1.6 1.6 2.2 1.9l.7-2c.2-.7-1-1.8-.7-2.4.4-1.3 1.4-2.4 1.9-3.6l.5 3.4c0 .6 1.2 1 1.3 1.5 0 .6-.6 2-.5 2.6l2.2-.1c.7-.2 1-1.7 1.7-1.8a8.4 8.4 0 013.6 0c-1 1-1.7 1-2.3 1.7-.5.4.1 1.6-1.3 2.5-.5.3-1.9 0-2.4.3l1.3 1.5s2.4.7 2.9 1.2c.9 1 1.3 2.2 1 3.3zm-59.8 1c2.3-2 2.6-.2 3.7-.7.6-.2 1-.7 1.5-1.2.4-.4 1-.6 1.5-.9l.6 2s-.6 1.6-.5 2.5c.1 1.4.7 2.6 2.4 3-.4-1-.7-1-.6-2.2 0-.6 1.8-1.7 1.6-2.2-.3-1-.9-2-.5-3 .8.6 1.7.3 2.4.6.6.3.6 1.4 1.5 1.8.9.4 2.8.2 4.3-.7-1-.7-1.7-.2-2.7-1-.5-.3-.5-1.9-1-2.2-.4-.4-1.6-.8-2-1.2.4-.5.3-1.2.8-1.7s2.3-.4 2.8-1c.9-1 .7-2.2 1.6-3.2-2.3.8-2 1.9-2.5 1.8-1.1-.5-2.2-.6-2.7-.4-.6.3-1.7 1.7-2.2 1.9l-.8-2c-.2-.7 1-1.8.8-2.4-.4-1.2-1.5-2.4-2-3.6 0 1.2-.3 2.2-.4 3.4-.1.6-1.3 1-1.4 1.5 0 .6.7 2 .6 2.7-.7-.2-1.6 0-2.3-.2-.6-.1-1-1.6-1.7-1.8a8.3 8.3 0 00-3.5.1c1 .9 1.7.8 2.3 1.7.5.3-.2 1.5 1.2 2.4.5.3 2 0 2.4.3l-1.3 1.5c-.4.5-2.4.7-2.8 1.2-1 1-1.4 2.2-1.1 3.3z"/>
+  <path fill="#ffc900" fill-rule="evenodd" stroke="#006b00" stroke-linecap="round" stroke-linejoin="round" stroke-width=".6" d="M506 244.1c-2.1 1.7-15.8 5.1-15.9 17-.1 11.8 2.4 14.5-.1 14.8-5 0-5.7-13.2-5.5-19 .1-5.9.3-5 .3-5s3.3 1 3 3.8c-.2 2.8 3.4-7 2.2-9.8 2.2 2.3 5.2 1.4 5.2 1.2 0-.1-1.7-2-2.4-3.3-.7-1.3 2.5.8 2.5.8s.1-2.3-2.7-2.1c-3.6 0 .6-1.2.6-1.2s2.1 2 3.5-.2a12 12 0 00-3.8-2.5s-2-3.8-4.6-4.5c-3.1-.8-2.7 1.3-6.2 1-.7 1.4-.7 1.5.7 2-2.4 1.6-1.1 5-1.1 5s3.8-1.7 3.6 1c-.1 2.7-2.2 2.2-3.6.6-1.3-.8-1.7.7-1.7.7l2 2.1s-3.9-.1-4.8 2.4c2-.1 3.2.5 3.2.5s-4.3 2-4.8 3c-.4 1-.5-1.2-.7-1.2l-4.2-1.5-1.4 6.5s2.8 2.8 4.4 1.9c1.5-1 4.3-3.6 6-2.9-5 3.8-9.8 9.2-12.5 10-.7-.7-3.1-3-4-1.9-1 1.2-.4 2.7.9 2.6 1.3-.2-4 1.2-3 3.4 1.2 2.3 1 2.1 2 1.5 1-.6-.8-.7 2.8-1.8 3.7-1 3.5-2 3.5-2s-.7 1.6-2.6 2c-2 .5-3.5.5-3.1 1 .4.7 1.2 1.7 1 2.3-.3.6 4-3.1 5.2-.1 3-.2 4.9-3.8 3.5-5.9.1 2.3 1.5 3 .7 4s6.6-3.4 3-6c1 2.2 1 4 1 4s1.8-.2 2.2-.8c.4-.6-.9 1.7-.3 2.1.6.5 3.2 3 2 4.8-.6-1-.7-2.7-1.6-2.5-.8.1-4.3 2.7-6.5 2.8s2.6 7.8 2.6 7.8-3.3-.4-3.7-.1c-.4.3-2.5-2.7-3-1-.6 2.3.8 1.4.8 1.4s-1.9-.9-2.8.2c-1 1-2 2-1.3 2.5s3.8.5 4.2.3-3.5.3-3.8.8c-.3.4-.8 2 0 2.7s3-.3 3.1-.8c.2-.4.3 1.7.3 1.7s3.6.3 3.6-3.5.3 2.7.3 2.7 3.7.6 3.8-3.1.4 2.5.4 2.5 2.4-.7 2.4-1.3c0-.6-.1 7.5-1.8 9.7-2.7-1.8-4.4 1.2-4.4 1.2s.2 4.3-.1 5.4c-.3 1 1.8-.6 2-1 .1-.5 2.6-1.7 2.8-2l.8-1.8s-.5 2.1-1.5 2.4-2 1.3-1.6 2.2c.5 1 2 1.5 2.6 2.4.5 1 2.5-5.2 2.5-5.2l.1 1.3s2.6-.6 2.9-1.8c.2-1.2-2.7-2.2-.3-4.2 2.4-1.9 0 1.8 0 1.8s.8 2.9 1.4 2.9 2-5.4.5-6.7c-1.4-1.4 2.1 1.6 2.1 1.6s2-5.5-.1-6.3l-3.1-1s1.1-1.5.6-1.7 3 3.3 3.5 2.4 1.4-3.6-2.7-5c-4-1.6-.1-5.8-.1-5.8s2.5 3 4.3 1.4c1.9-1.7-.1-1.7-.1-1.7s5.2-3.3 5.3-5l-2.6.2s3-2 2.2-5a3.5 3.5 0 01-2.7 1.6s2.6-2.6 2.1-5c-1.5 1.2-1.4 2.1-2.3 1.8s-2.7-9.7 1.2-10.3c4-.6 1.8 4.6 2 4.6.1 0 5.9-2.4 0-6.3 1.4-.4 4.4 2.3 4.4 2.3s-1.3-6.6-7.6-2.6c1.5-1.6 2.5-2.7 3.7-2.4 1.3.3 5.8-.1 5.8-1.5-1.1-.9-3.5.5-4.8 0-1.2-.4 9-1.2 8.2-6.3z"/>
+  <path fill="none" stroke="#006b00" stroke-linecap="round" stroke-width="1.3" d="M481.3 118.5s12.3-6.4 18.4 1.6m4.9 12.2c-.3 0-4.3 4-5.2 4m13.4 8.9s11.4.9 18.7-10.4" transform="matrix(.46 0 0 .5 240.3 190.1)"/>
+  <path fill="none" stroke="#006b00" stroke-linecap="round" stroke-width="1.3" d="M525 141.8s1 6.1 2.8 6.1-3 1.6-4.9.3c2.2 2.8 3.4 7.7 0 9.5" transform="matrix(.46 0 0 .5 240.3 190.1)"/>
+  <path fill="#e80000" fill-rule="evenodd" stroke="#006b00" stroke-linecap="round" stroke-width="1.3" d="M519.3 219s-4 4.3-9 4.6" transform="matrix(.46 0 0 .5 240.3 190.1)"/>
+  <path fill="none" stroke="#006b00" stroke-linecap="round" stroke-width="1.3" d="M523.9 199.4s-2.5-12.3-1-15.3c1-4 5-5.5 8-10.7m-8.3 17s-3 7.4-16.5 5m20.2-23.3s1 9.8-11.3 6.1m-3.7-50.2s-4.9 4.3-3 10.1" transform="matrix(.46 0 0 .5 240.3 190.1)"/>
+  <path fill="#006b00" fill-rule="evenodd" d="M483.7 247.6s3-1.2 3.6-1.8a9 9 0 001.8-2.7c.3-.9-2-2.3-.9-4.2.7-.9 1.7-1 3.4 0s-1.5-3.3-3.2-3.5-2.8 1.3-3.3 1c-.4-.3.2 1.2-.5 1.2s1.4 1.2 1.2 1.9c-.1.8 2.3 3.3 2.1 3.9 0 .6-3.5 4-4.2 4.2z"/>
+  <path fill="#ffc900" fill-rule="evenodd" stroke="#ffc900" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.3" d="M534.3 97.1c2.8-.6 3.2 0 2.7 2.5a7 7 0 01-2.7-2.5z" transform="matrix(.46 0 0 .5 240.3 190.1)"/>
+  <path fill="#e80000" fill-rule="evenodd" stroke="#006b00" stroke-linejoin="round" stroke-width="1.3" d="M514.7 233.5s-1 6.4 1.5 7c-.1-2.5.5-4.2 1.2-4.9-.6-.2-2.6-2-2.7-2zm-5.7-7.9c-2.3-.3-6.2 1.6-5 4 1.8-1.7 3.6 0 4.9-1.6.4-.4.3-1.8.1-2.4zm0-4.5s-3.6-.6-4.1 1.9c2.5-.3 3.2-.6 4 0 .3-.6 0-1.8.1-2z" transform="matrix(.46 0 0 .5 240.3 190.1)"/>
+  <path fill="#e80000" fill-rule="evenodd" stroke="#006b00" stroke-linejoin="round" stroke-width="1pt" d="M493.5 185s2.2.8 2.9 3c1.7-1 2.5-5.8-2.9-3zm-5.4 5.4c.1 0 4.6-2.8 5-.2-.9 1-1.3 1.6-2 1.8-.6 0-1.8-1.8-3-1.6zm-.4 8.8s2.9-2.5 4-.8c1 1.6-1 1.5-1 1.5s-1-.4-3-.7zm-4-49.2s-3.6-1.4-5 1c2.3.4 3.1 1.2 4.2 2-.3-1-.8-2.6.8-3zm-6.9 18.5s.2-4.2 2.1-5.9c1.2.7 1.5 1.7 2.2 2.9-1.5.3-3.4.4-4.3 3zm9.5-3s-4 1.9-2.6 3.8c1.2-1.3 2.7-1 2.7-1l-.1-2.8z" transform="matrix(.46 0 0 .5 240.3 190.1)"/>
+  <path fill="#ffc900" fill-rule="evenodd" stroke="#006b00" stroke-linejoin="round" stroke-width="1pt" d="M480.6 125.6c-1.4 1.6 1.8 5 5 4.5 1-3.7-4.1-5.7-5-4.5z" transform="matrix(.46 0 0 .5 240.3 190.1)"/>
+  <path fill="none" d="M461.2 248.1c-.3.9 1 2 1.7 1.8.3-1-1.4-2.5-1.7-1.8z"/>
+  <path fill="#e80000" fill-rule="evenodd" stroke="#006b00" stroke-linejoin="round" stroke-width="1pt" d="M484.3 122.8s.6 2.9 3.4 2.1c-.4-2.3-2.4-4-2.4-4-.1.7.4 1.7-1 1.9zm1.9 8.5s1.5 1.7 4.6-1.8c-1.4.4-3.8-.8-3.8-.8s0 2.4-.8 2.6z" transform="matrix(.46 0 0 .5 240.3 190.1)"/>
+  <path fill="#ffc900" fill-rule="evenodd" stroke="#006b00" stroke-linejoin="round" stroke-width="1pt" d="M480.5 118.9c-1.4 1.5.5 3.7 3.8 3.2.9-3.7-3-4.4-3.8-3.2z" transform="matrix(.46 0 0 .5 240.3 190.1)"/>
+  <path fill="url(#d)" fill-rule="evenodd" d="M144.6 266.6s7-2 10.8 1 3.7.3 3.7.3 5.5 2 7 1.6-1 .1 1-1.2c2.2-1.2-4.2.3-4.8-2.4-1-1.7.1-3.9-2.2-3.2-1.5-2 1-3.4.5-5.6-1.6 1.2-2.5-.4-3.8 2.5-3-.6-.4-4.8-3.7-5.2 0 3-2.4 3.2-2.6 4.9-1.4 1-7.7 4.7-5.9 7.3z" transform="matrix(.86 0 0 .86 337.3 11.7)"/>
+  <path fill="#c01500" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M392 437.9c4-1 25.2 4.7 33.4 13.5-1.7-15.7-6-27.7-6-27.7s-12.8-3.6-14.5-1.9a96.3 96.3 0 00-13 16.1zm-6.5-72.3c-1.5.2-3 1.2-4.5 3.7-1.7 4.2-3 14.9-5.4 17.4-2.5 2.5-4.8 2.7-4.8 5 0 2.2.3 7.4 7 9.4 6.7.3 17.4-10.7 17.4-10.7s5.5-6 7.7-12.4c-13 4.5-22.1-7.5-17.4-12.4zm187 69.8c-4-1-25.4 4.7-33.6 13.4a133 133 0 016-27.5c1.6-.4 12.5-3.6 14.2-1.9 2.5 2.7 10.7 10.7 13.4 16zm6-72c1.5.3 2 2.3 3.2 4.7 1.7 4.2 3.5 10.4 6 12.8 2.5 2.5 4.7 6.2 4.7 8.4s-.5 5.2-7.2 7.2c-6.7.3-16.3-8.3-16.3-8.3s-5.4-6-7.7-12.4c12.9 4.5 21.2-7 17.3-12.3z"/>
+  <path fill="#fb0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M378 424.2s13.5 9.2 13.7 13.5c36-53.5 128-70.1 180.5-3.8 7-9.2 14.2-12.1 14.2-12.1-55.2-72.2-165.1-63.2-208.4 2.4z"/>
+  <g fill="#1e5aa6" fill-rule="evenodd" stroke="#000" stroke-width="1.1">
+    <path d="M515 219.9l5.2-.2-9.4 12 11.3 13-22.2 28 21 25.2a70 70 0 01-8.6 15.4l-12-13.3 21.8-27.2-18-20.3L515 220zm-75.2 2.3l-5.6.2 10.5 11.4-11.2 13.9 23.2 25.1-19.2 25.7a75.8 75.8 0 009.2 16.5l11.4-14.4-23.4-26 17.1-21.8-12-30.6z"/>
+    <path d="M465.9 289.8l-8.3 11L487 335a74 74 0 0013.8-9.2L485.5 308l6.3-18.4 9 10.4-28.2 36a62 62 0 01-14.7-9.1l15-18.9-7-18.2zm-9.2-17.1l5.4 6.8-3.5-9.2-1.9 2.4zm38.6 6l4.3-5.8-1.6-2.2-2.7 8z"/>
+  </g>
+  <text x="-328.3" y="362.4" font-family="Timmons" font-size="14" font-weight="bold" transform="rotate(-49.4 182.5 -362) scale(.86)">
+    <tspan x="-328.3" y="362.4">L</tspan>
+  </text>
+  <text x="-292.3" y="384.3" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.6 -.6 .6 .6 337.3 11.7)">
+    <tspan x="-292.3" y="384.3">E</tspan>
+  </text>
+  <text x="-239.8" y="451.7" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.66 -.47 .5 .65 337.3 11.7)">
+    <tspan x="-239.8" y="451.7">O</tspan>
+  </text>
+  <text x="-188.5" y="430" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.7 -.48 .48 .7 337.3 11.7)">
+    <tspan x="-188.5" y="430">T</tspan>
+  </text>
+  <text x="-115.4" y="451.5" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.78 -.37 .37 .78 337.3 11.7)">
+    <tspan x="-115.4" y="451.5">E</tspan>
+  </text>
+  <text x="-94.1" y="453.1" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.8 -.35 .35 .8 337.3 11.7)">
+    <tspan x="-94.1" y="453.1">R</tspan>
+  </text>
+  <text x="-68.4" y="455" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.8 -.32 .32 .8 337.3 11.7)">
+    <tspan x="-68.4" y="455">R</tspan>
+  </text>
+  <text x="112" y="445.7" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.86 -.07 .07 .86 337.3 11.7)">
+    <tspan x="112" y="445.7">R</tspan>
+  </text>
+  <text x="180.2" y="430.8" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.86 0 0 .86 337.3 11.7)">
+    <tspan x="180.2" y="430.8">R</tspan>
+  </text>
+  <text x="414.8" y="275.2" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.75 .43 -.43 .75 337.3 11.7)">
+    <tspan x="414.8" y="275.2">R</tspan>
+  </text>
+  <text x="483.9" y="193.1" font-family="Timmons" font-size="14" font-weight="bold" transform="rotate(39.9 153.2 471.7) scale(.86)">
+    <tspan x="483.9" y="193.1">E</tspan>
+  </text>
+  <text x="309.1" y="414" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.83 .16 -.13 .82 337.3 11.7)">
+    <tspan x="309.1" y="414">O</tspan>
+  </text>
+  <text x="105.1" y="459.3" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.78 -.1 .12 .84 337.3 11.7)">
+    <tspan x="105.1" y="459.3">O</tspan>
+  </text>
+  <text x="-45.7" y="455.8" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.8 -.3 .3 .8 337.3 11.7)">
+    <tspan x="-45.7" y="455.8">A</tspan>
+  </text>
+  <text x="518.4" y="144.7" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.6 .6 -.6 .6 337.3 11.7)">
+    <tspan x="518.4" y="144.7">A</tspan>
+  </text>
+  <text x="271.2" y="388.3" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.84 .17 -.17 .84 337.3 11.7)">
+    <tspan x="271.2" y="388.3">A</tspan>
+  </text>
+  <text x="40.3" y="455.2" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.85 -.16 .16 .85 337.3 11.7)">
+    <tspan x="40.3" y="455.2">M</tspan>
+  </text>
+  <text x="94.4" y="448.1" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.86 -.1 .1 .86 337.3 11.7)">
+    <tspan x="94.4" y="448.1">P</tspan>
+  </text>
+  <text x="155.1" y="437.6" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.86 0 0 .86 337.3 11.7)">
+    <tspan x="155.1" y="437.6">P</tspan>
+  </text>
+  <text x="405.1" y="276.7" font-family="Timmons" font-size="14" font-weight="bold" transform="rotate(29.3 146.8 652.1) scale(.86)">
+    <tspan x="405.1" y="276.7">P</tspan>
+  </text>
+  <text x="232.1" y="409.8" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.85 .1 -.1 .85 337.3 11.7)">
+    <tspan x="232.1" y="409.8">I</tspan>
+  </text>
+  <text x="530.4" y="132.1" font-family="Timmons" font-size="14" font-weight="bold" transform="rotate(46.4 155 399.3) scale(.87)">
+    <tspan x="530.4" y="132.1">T</tspan>
+  </text>
+  <text x="464.2" y="218.5" font-family="Timmons" font-size="14" font-weight="bold" transform="rotate(36.4 149 515.6) scale(.87)">
+    <tspan x="464.2" y="218.5">T</tspan>
+  </text>
+  <text x="313.7" y="362" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.83 .24 -.24 .83 337.3 11.7)">
+    <tspan x="313.7" y="362">M</tspan>
+  </text>
+  <text x="513.7" y="123.3" font-family="Timmons" font-size="14" font-weight="bold" transform="matrix(.58 .64 -.64 .58 337.3 11.7)">
+    <tspan x="513.7" y="123.3">G</tspan>
+  </text>
+  <path fill="none" stroke="#fff700" stroke-linecap="round" stroke-width="1.1" d="M557.4 184.5s5.2-4.4 8.9-4.6m-8.2 4c.1-.1 31-4.5 32-5.4m-31.9 5.6l34.6-3m-34.7 3.2s36.7-1.8 39 0m-39.1-.2s36 .3 36.6 1.1m-36.5-1l34.6 2.8m-35-2.6c.2 0 35.3 3 38.7 7.5m1.9 6.3c-.2-.1-12-14.2-40.7-14m.2.3s19.8 1.4 26.1 8.3m-25.8-8.5s12.9-2.5 26.3 13.7"/>
+  <path fill="url(#e)" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M247.4 217.7s20.7.9 20.7 2.9-15.4 5.9-15.6 14.4c-.2 8.5 11.8 9.2 12.6 20 .8 10.7-9.4 12.3-11.4 15.2-2 1.4-6.9 16.6-6.3 25.5.6 9 3.3 39.2 8 45.3 3.6 2.9 9 12 15 9.2 5.9-2.9 1.8-13.2 1.2-16s2.4-7.6 2.4-11.8c0-4.3-2.2-7.8-2-8.8.2-1 16.4 3.9 15.4 20-1 16-7.5 11-7.5 11s2 19.8-3 22.4c-9.2 5-15.9-1-15.9-1l.9 4-7-3.6s-9-12.8-11-18.5-4.4-31-3.6-36.5c.8-5.5 1.4-37.6 1-39.2s-2-28.5-1-32.5 7.3-22 7.1-22z" transform="matrix(.86 0 0 .86 337.3 11.7)"/>
+  <path fill="#ff7000" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M530.8 194.4s12.4-12 19.6-10.6c3.7 0 .2 2.6.2 2.6s6.3.5 7.1 3.3c.2 1.2-3 1.6-3 1.6s2.7.5 2.8 2.8-26.5.5-26.7.3z"/>
+  <path fill="none" stroke="#000" stroke-width="1.1" d="M531.5 193.9s13.3-1.8 18.9-7.4m-5.4 3.7s9.8-.3 9.8 1"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="1.1" d="M579.7 333.1s8.4-1.9 10.7-4.9c1.4-1 8.7 11-10.7 5z"/>
+  <path fill="none" stroke="#fff" stroke-linecap="round" stroke-width="1.1" d="M577.5 263.8s1 6.4-2 10.8c-1.5 1.7-6.3 4.7-6.3 6.8 0 2.1 1.8 4.9 1.4 7.3s-3 5-2.7 7c0 2.1 3 13.3 2.6 13.5m-8.4-66.4s-6.6 2.3-8 9"/>
+  <path fill="#c75b00" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M559.3 190.2s2.3 6.3 9.6.4c-4.7-6.5-9.6-.2-9.6-.4z"/>
+  <path fill-rule="evenodd" d="M564.9 190c0 .4-.4.7-.8.7s-.8-.3-.8-.6.3-.6.8-.6.8.2.8.6z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M499.3 175.6s14 15 23 15c1.6 4.4-4.2 8.5-6.5 10.4-4.5-1.4-8.7.3-19.3-12.8.6-8.3 3-12.2 2.8-12.6zm18.8-35c1.8-5.6 5.4-10 8.5-10.5-.8-4.2 6.6-23 28-30.3 1.3 9.7-9.1 19.2-9.1 19.2s31.6-5.4 38-13.4c-.7 3.6-7.1 26-40.8 25.8 12.8 12.1-4.1 21.8-11.3 18.9 13.2-10.2-3.8-16.2-13.3-9.7z"/>
+  <path fill="#cccccd" fill-rule="evenodd" stroke="#ccc" stroke-width="1.1" d="M529 132.8c6.3-4.1 8.6-4.1 13.8-3.3l-3.7.6s-.4.5 2 2.7c-2.7-.7-5-2.2-12.2 0z"/>
+  <path fill="none" stroke="#000" stroke-width="1.1" d="M526.5 130.1s12.6-6.7 19.6-11.3"/>
+  <path fill="#00f" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M515.7 201s17.3 4.8 19.3-20.1c-3.8-10.8-9-34-1-40.8-7.4-5-15.4.2-15.4.2-.5 1.1-7 10.5 1.8 26.8-21-5.5-12.4 14.3-12.4 14.3.8-3.1 12-6 14.7 9.8 1.1 4-7.5 10-7 9.8z"/>
+  <path fill="#00f" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M535.1 181s18.4-9.8 17.9-32.9c-15.6.4-21.1 20.5-21.1 20.5l3.3 12.4z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M453 179.9s-13.6 11.8-21.3 8c-5.7 3.4-12.4-2.6-12.4-2.6s7.8 29 36 8c-.5-6.4-2-13-2.3-13.4z"/>
+  <path fill="#00f" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M431.5 187.4c1.2-6 6-9 9.7-3.3 5 1 10.2-19.8-7.9-16.3 5.1-27.2-10.1-37.3-10.1-37.3s-5.4 30-3 35.6c2.5 5.6-3.5-10.3-23-14.7-.3 22.8 21.7 33.4 21.7 33.4s6.3 5.7 12.6 2.6z"/>
+  <path fill="none" stroke="#000" stroke-width="1.1" d="M433.3 167.6s-8.5 7.2-6.5 17m-6.4-18s-2 7 2.3 17m-3.6 2.4s4-6.4 12.4 1.8"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M420.7 141.8c0-.2-12.9 0-5.2 13-5.7 1.8-18.5-6.5-9.7-17.6-29-.7-40.7-14.6-40.7-27.4 8.5 8.9 28.8 5.3 36 10.7-8.8-8.2-7-19.5-7-19.5s24.7 7.4 29.1 29.3c-1.5 4.2-2.1 11.8-2.5 11.4z"/>
+  <path fill="none" stroke="#000" stroke-width="1.1" d="M400.9 119.9c4.7 4.9 17 6.3 23.2 11.7"/>
+  <path fill="#cccccd" fill-rule="evenodd" stroke="#ccc" stroke-width=".8" d="M406.5 134.2s10.2-1.3 13 2.3c-3.9 0-5.2-1-11 1.2 1.7-.9 1.2-2.3 2.1-2.3s-3.7-1.2-4.1-1.2z"/>
+  <path fill="#923f00" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M457 54.8s5.6-4.9 11.7-.4c-2.7 8.1-12.6 5-12.6 5s.3 4.1-.7 6c2 1.6 3.6 6.5 3.6 6.5s10.2-2.5 12.3 2c3.9-.6 6.7 0 6.7 0s7.9-2 10.7-2c2.7 0 11.6 2.3 12.4 3.9.8 1.6 3.8 12.6 5.7 12.4 2-.1-4.7 2.7-6.5-.1-1.8-2.8-1.3 3.6-1.3 3.6s5.5 5.9 6.2 7.2c.6 1.3-3.4 12-.3 19.3-2.8.2-3 3-3 3-.1 3.3-4.2 4.2-4.2 4.2l-1-4.4-2.8 1.6 1.1-3.4s3.8-9.2 4.1-12.1c.4-3-3.4-8.2-6.3-8.2s-5.1 9.3-5.1 9.3-1.5 7-1 7.7l-2-2.3s-1.3 4.3-2.3 5.6c-1 1.3-3 1.8-3 1.8s-1.5-4.3-1-6c.4-1.6 8-8 7.3-12.5-.6-4.6 0-3.5-.2-3.6-.1-.2-3.9-3.5-4-5.3-.2-1.8-5 2.3-11.2 1-1.9 3.3-2 11.6-2 11.6s-.8 10 .6 11.2c1.3 1.1-3.3 3.6-3.3 3.6l-3.3 4.4-1.1-2.6-2.3 1.6 1.3-3.3c0-2.4 3.2-9.2 3.2-15s.4-11.8.4-11.8-6-.3-6 5.9c.3 6.2-1.4 6.5-1 8.3.3 1.8 2 6.9 1.4 8.4-.5 1.4-2.4 2-2.4 2l-.5.8s-6 2.7-6 3.9c.2 1.1 0-3.3 0-3.3l-.4-4.7s3.6-2.3 3.6-8c0-5.8-.8-6.6-.7-8 .2-1.2 1-6 .9-6.5-.2-.4-3.5 1.4-4.5 1.4s1.8-3.5 2.2-6c.3-2.4-3.3 2.4-6.3-.4 1.4-3 3.5-4 3.8-6.2s-2.3 2-4.6.3c.2-2.2 2.5-4.1 2.5-4.1s-1.9-.2-2.6 0c-1.5-.5 1.6-2.8 1.8-6 .1-3.3-1.8-4.6-1.8-4.8 0-.2-3.3-3-3.8-4.1-.5-1.1-.5-2.5-.5-2.5s-5.4 4-11.8-4.4c5.9-5 12.1-1.3 12.1-1.3s1.7-4.6 9.2-4.2c7.5.3 9 4.5 8.7 4z"/>
+  <path fill="#00f" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M498.3 139.5s13.8.4 14 7.8c.1 7.3-4.2 5.4-4.4 5.4l-10-1.2.3-12z"/>
+  <path fill="#fffeff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M484.9 137.5s17.2-.2 16.2 7.3-5.3 6-5.3 6l-8.3-.7-2.6-12.6z"/>
+  <path fill="#00f" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M475.2 136.6l10 .9s6 .8 5.7 6.5c-.3 5.7-6.1 5.9-6.1 5.9l-9.7-.6.1-12.7z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M451.9 139.5c-.1 0-13.9.4-14 7.8-.2 7.3 4.2 5.4 4.3 5.4l10.1-1.2-.4-12z"/>
+  <path fill="#00f" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M465.3 137.5s-17.2-.2-16.3 7.3c1 7.5 5.4 6 5.4 6l8.3-.7 2.6-12.6z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M475 136.6l-10 .9s-6 .8-5.7 6.5c.2 5.7 6.1 5.9 6.1 5.9l9.7-.6-.2-12.7z"/>
+  <path fill="#5e0043" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M501.6 219.4s7.1-10.6 10.2-9.4c2.6.9.6 9-.7 9.8l-9.5-.4zm-49 1.9c-2.3-3.2-5.6-11.8-8.6-9.4-2.6.8-.6 9 .6 9.8l8-.4z"/>
+  <path fill="none" stroke="#000" stroke-width="1.1" d="M457.3 200.4s14 8.6 18.5 8.8c4.6.3 19-11.1 19-11.1"/>
+  <path fill="#5e0043" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M458.6 166.8l2.7-3.4 13.4 6.8 13.6-6 2.7 2.8-15.2 10.7-17.2-11z"/>
+  <path fill="#474747" fill-rule="evenodd" stroke="#474747" stroke-linejoin="round" stroke-width="1.1" d="M448 166.6c1 1.3 9.7 11.9 11.3 20.6 1.6 8.7-.9-12-.9-12s10.7 5.3 11 8.6c.4 3.4 5.2-.2 5.4-.8l-31-20.1 4.2 3.7zm52.9-.6s-11.3 14.8-10 31c-2.3-7.8-.4-20.6-.4-20.6l-2.4 1.6s-2.6 11-5.8 12.6c-.6-1.3-.5-1.8-.5-1.8s-3.4 4.5-4.1 5c-.7.4.2 15 .2 15s1.2 10.6 2.5 10.5a45 45 0 00-3.4 1.9l-1.4-28.3 3.2-3.2s4.3-5.1 4.6-10.1c-1.9 1.5-4 2-4 2s-.5 7.1-2.1 8.1c-1.7 1-1.8 2.9-1.8 2.9l-.4-9.3L501 166z"/>
+  <path fill="none" stroke="#000" stroke-linecap="round" stroke-width="1.1" d="M475.1 183.1l2.2 44.6"/>
+  <path fill="none" stroke="#000" stroke-width="1.1" d="M447.7 204.4s5.1 3 7 12.2c16.7-1.2 22 4.7 22 4.7s13.7-6.6 20-5.4c2.3-4.7 8.7-10.7 8.7-10.7"/>
+  <path fill="#b4b6b9" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M440.7 160.7l34.4 22.6 31-21s6.5-3.5 6-6-2.8-1.6-4-1.2c-1 .5-32.4 22.7-32.4 22.7l-33.4-21s-2.4-.9-2.9.7 1 2.4 1.3 3.2z"/>
+  <path fill="#474747" fill-rule="evenodd" stroke="#474747" stroke-linejoin="round" stroke-width="1.1" d="M502.3 154.9s-8.8-3.8-8.8-.5c0 3.2.2 3.5 1.6 5.6 1.4 2.1-1 3.4-1 3.4l-.9-2.3c-.5-1.4-5.2-2.4-5.6-4-.4-1.7 1-4.4-1.9-4.7a5.2 5.2 0 00-6.1 4.4 67.5 67.5 0 01-4.2 10.8l.5-17.2c6.2.4 17.7 1.8 26.6 2.8-2.7-.4 1 .2.9 1-.3.8-1.2 1-1.1.7zm-31.2-4.4c-1.6 0-9.5 1-11.5 2.1-2 1.2 3.3 3 2.6 4.6-.7 1.6-.7 4.7-3.2 4-2.5-.6-11-4.7-11.2-6.2-.2-1.4-2-1.5-2-1.5s24.1-3.2 25.3-3z"/>
+  <path fill="none" stroke="#000" stroke-width="1.1" d="M474.9 148.6v21.1m-16.3-46l-9.8 16.1"/>
+  <path fill="url(#f)" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M161.8 129.7s4.9 6.7 4.3 8.6a25 25 0 014.3 7.8" transform="matrix(.86 0 0 .86 337.3 11.7)"/>
+  <path fill="none" stroke="#000" stroke-width="1.1" d="M492.7 122.3s-9.1 12.8-8.8 13.8"/>
+  <path fill-rule="evenodd" d="M446.2 61.4c-.2.7-1.4 1-2.6.7s-2-1.3-1.8-2c.2-.8 1.3-1 2.6-.7s2 1.3 1.8 2zm3.7-.2c.2.7 1.4 1 2.6.6s2-1.3 1.8-2c-.2-.7-1.4-1-2.6-.6s-2 1.3-1.8 2z"/>
+  <path fill="#ff7000" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="1.1" d="M556.1 326.6s-3.3.6-3.2 1-9.8.5-10 .2c-.2-.3-1.5 1.7-1.5 1.7l1.6-1s2.4 2.6 3.1 2.4c.8-.2-.3 1 0 1.1.1.2.9-.4.9-.4l16.3-.3-7.2-4.7zm6.1 5.1l-13.3.4s-3.4 3-3.6 3.7 2.2 1 2.2 1l.7 2.5 1.7-.6s11.4 1.7 21.8-.6c5.3-1.9 6.2-4.1 2.5-5.5-3.7-1.3-11.9-.9-12-1z"/>
+  <path fill="url(#g)" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M208.4 404l28-1.3-5.3-4.4 75.7-3-2.6-6-84.7 3.3 10.2 4.8-23 .6.8 2.4-6-.2s6.6 2.6 6.9 3.7z" transform="matrix(.86 0 0 .86 337.3 11.7)"/>
+  <path fill="url(#h)" fill-rule="evenodd" stroke="#000" stroke-width="1pt" d="M239.7 249.4c-2.2-1-12-2.4-22.8 4.7l.4 25s16-8.6 23.8-6.6c-.5-7.8-.5-17.8-1.4-23z" transform="matrix(.86 0 0 .86 337.3 11.7)"/>
+  <path fill="none" stroke="#000" stroke-width="1.1" d="M410.4 291.8L353.7 348m82-56l-46 60.7m44-76.5l-61.5 74.5m-1.8-1l6-7m69-29l-23.9 32.8m-1 4.3l.6 12.6m35.2-38.2L431 356.9m20.7-2.5l10.3-16.8m-6.3-3.3l-12.4 14M452 321l-8.5 10.3m-2.4-25.3s-25.7 37.6-25.3 40.7m22.6-45.6c-.6.4-22.2 29-22.2 29m-1.2 9l-4 4.8m-4.9 7.2l-6 7.8"/>
+  <path fill="#8a9396" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.1" d="M407.6 205.2s-1.7 5.5 0 8.2 12.7 24.9 12.7 24.9 7.5-9.2 10.2-9.5c2.7-.2 1.5 23.9 1.5 23.9s-4.5 4.2-7.2 4c-2.7-.3 6.7 9.4 6.5 17.6s-12.5 49-17 49.7c-4.4.8 2-7.4 1.8-9.7-.3-2.2-1.5-.7-2.5-3.2s1.5-6.2 1-8.7-2.8-2-3-3.7 1.5-2.3 1.2-4.2c-.2-2-3-1.5-2.7-3.3s.5-1 .3-4.2c-.3-3.2-.8 2.2-3.5 2.5-2.8.2-5 6.4-5 6.4s-5.5 7.7-11 4.3c3.3 7 .8 10-.4 10.2s1 5.4-2 5.7 2.2 11.7-1.3 12.7c3.8 1.7.8 4 .8 4s-8.6.7-6.7 11.9c-25.4-9-37.8-24.4-37.6-40 .3-15.7 5.3-29.9 17.4-35 3.5-13 9.5-27 9.5-27s-1-5.7-.3-9.4c.8-3.7 4.3-7.4 4.3-7.4s-.5-9-.3-13.5c.3-4.4 2-6.4 2.2-9 .3-2.4-.7-15 1.8-17.3 2.5-2.3 7.2-2 9.7-3.5 2.5-1.5 5.7-4.2 9-4s6 2.5 6 2.5 12 0 12.8 4.7c.8 4.8-2.5 6.5-2.5 6.5s1.8 6.7-5.7 13z"/>
+  <path fill="#cecfcf" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.1" d="M396.9 188.1c.4.7-.5 2-2 2.8s-3 .8-3.4.1c-.4-.7.5-2 2-2.8s3-.8 3.4-.1z"/>
+  <path fill-rule="evenodd" d="M394.8 189.3c0 .5-.4.9-1 .9-.4 0-.9-.4-.9-.8 0-.5.5-.9 1-.9s.9.4.9.9z"/>
+  <path fill="none" stroke="#2b2b2b" stroke-width=".5" d="M413 197.5s3 13.4-.7 22.8m1.5-28.7s6 7.8 5.2 17.4m-4.6-19.1c.2 0 5 4.1 4.8 7m-3.6-8.8s3.2 2.3 4 4.6"/>
+  <path fill="none" stroke="#000" stroke-width="1.1" d="M414 186.8s-11.5 18.8-10 30.6"/>
+  <path fill="none" stroke="#2b2b2b" stroke-width=".5" d="M414.8 186.2s-15.4 9.2-18.2 39"/>
+  <path fill="none" stroke="#000" stroke-width="1.1" d="M413.1 191.8l-6 4.5"/>
+  <path fill="none" stroke="#2b2b2b" stroke-width=".5" d="M390.9 226.9s8.5-35.5 23.7-40.7"/>
+  <path fill="#2b2b2b" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.1" d="M420.5 238.9s8.2-10.3 10-9.9c2 .4 1.4 23.8 1.4 23.8s-6 4.5-7.4 4.3c-1.3-.2 6.8 11 6.6 15.2l-.3 4.2s0-2.5-2-6.5c-1.8-4-.7-8.5-13-18.6-3-6.2 6 3.8 8 2.3 1.8-1.5-3.5-14.6-3.3-14.8z"/>
+  <path fill="none" stroke="#2b2b2b" stroke-width="1.1" d="M406 181s-3.5 1-4 2.4c-.4 1.4-2.4 2.8-3.5 2.4a18.9 18.9 0 01-3.1-2.2"/>
+  <path fill="#2b2b2b" fill-rule="evenodd" stroke="#2b2b2b" stroke-linejoin="round" stroke-width="1.1" d="M386.5 193.1s-5.2 5.2-2.7 5.8c2.5.6 5.2-4 5.2-4s0 7.9 2.1 6.6l8.6-5.7s2.2-.2 2.7 0c.5.1 6 4.8 9.5 3-2 5.4-4.4 6-4.4 6s-3.7 4.9-8.6 3.8c-4.8-1.1-6-3.2-6-3.2s-4.1.3-5.3-1.5c-1.3-1.9-1.8-3-1.8-3s-2.3 2.4-3 1.3c-.6-1.1 0-7.5 3.7-9z"/>
+  <path fill="none" stroke="#2b2b2b" stroke-width="1.1" d="M415.7 186s-9.6-2.9-12.8 1.8c-3.3 4.7-2.5 7.3-.8 7.8"/>
+  <path fill-rule="evenodd" d="M417.1 185.7c0 1-.8 2-1.8 2s-1.8-1-1.8-2 .8-2 1.8-2 1.8.8 1.8 2z"/>
+  <path fill="#2b2b2b" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.1" d="M389.4 210s3.9 6 8.5 7.6-3.2 3-7.8 0c-3.4-4.6-2.5-8-2.5-8s1-.8 1.8.4zm33.3 35.2s-11-15.1-14.1-16c-3.1-.8 2.4-1.5 5.7 1.8 3.4 3.2-.9-5.3-.9-5.3l9.3 19.5z"/>
+  <path fill="#2b2b2b" fill-rule="evenodd" stroke="#2b2b2b" stroke-linejoin="round" stroke-width="1.1" d="M388.4 332.8c4.2-1 22.4 10.5 26.5 13.4 4 3 12.7 1 12.7 1s-4 2.5-6.5 3 7.4.7 7.4.7-23.3 6.4-47-6.1c-2.2-9.7 5-11.9 6.9-12z"/>
+  <path fill="#2b2b2b" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.1" d="M415 249s-3-.6-4.6-2.4c-1.6-1.8-3.8-6.2-6.1-8.1s-14-8.2-18.1-7.8c-4.2.5-5.5-.4-6-1-.5-.5-2.2.3-2 2.5.4 2.1-3.1 6.9-1.9 9.1a63.5 63.5 0 008.5 11.7c1.2.3.4 5.3.4 5.3s5.3 5.4 6.7 5.7c1.3.3 2.7 1.2 2.5 2.5-.1 1.3-5.8 8.2-5.8 8.2s-6.1 3.2-6.2 5c0 1.8 1.5 5.6 6.3 6.8a45 45 0 0018.6-1c.7-1 1.8-7.8 1.3-8.4-.4-.7-3.7-2.7-5.3-2.4-1.6.3-3.1 1.6-3 1.9.2.3-2.3 1.6-2.3.4s4.8-6.6 5.3-6.2c.5.5 7.3 1.2 8.6 4.6s1.3 5.9 4.9 5.5c3.5-.3 8.5-3.6 9-10.5.4-6.9-4-11.5-5.2-12.2-1-.6-4.8-2.9-5.1-4-.3-1-1-4.4-.5-5.2z"/>
+  <path fill="#2b2b2b" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.1" d="M350.4 279.3s11.6-3 14.6-3c3 .1 14.3 5.4 17.5 8.6 3.3 3.2 10 10.8 14.5 10.2 4.4-.7 5.6-1.6 5.6-1.6l-1.7 3.3s-3.6 1-5.4.5a19 19 0 01-8.8-5c-3.5-3.4-14.3-12.7-23.5-12-9.2.6-14.5 9.7-14.5 9.7s0-4.4.5-5.4c.3-1-2 2-2 2l3.2-7.3z"/>
+  <path fill="#2b2b2b" fill-rule="evenodd" stroke="#2b2b2b" stroke-width="1.1" d="M393 288.3c.1 0 3 .8 7.8.8s7.3-2.1 7.3-2.1l-.3-1.9.7-2.6s3.7 3.7 3.6 4.5c0 .7-1.5 1-1.5 1l-.5-1.8-1.3 1.6s-7 5.5-10.7 4.7c-3.8-.8-7.4-3.3-6.4-3.9s1.5-.4 1.4-.4zm-16.8 9.7s-4.2 0-6 .9c-2 .9-2.6 2-3.9 1.8-1.2-.1-2.2-1.8-1.8-2.4.5-1 3-2.4 7.7-2s4 1.7 4 1.7zm14.6 11.4c0-.2-.3-6.1-2.6-8.5a7 7 0 00-6.4-2.1c-1.3.3 4.7 2.9 5.3 4.6.6 1.7 2.5 6.5 2 7.7-.5 1.2-1.5-3.3-5.2-4.6s-8.7-.6-7.6 1 5.1.2 7.2 3.7 3.7 7.2 3.7 7.2l.6-2.5 2-.5.1-4.9 1-1.1z"/>
+  <path fill="#2b2b2b" fill-rule="evenodd" stroke="#2b2b2b" stroke-linejoin="round" stroke-width="1.1" d="M387.8 328.5l-3.8-7.6s-1.2-4.9-4.4-6.2c-3.2-1.4-7.5-1.1-7.5.5-.1 1.7 6.8 3.7 7.3 4.6.5 1 .2 2.4-.4 2.5-.6 0-3.6-1.1-5.2-.7-1.6.3-2.5 2.4-4.8 1.8-2.3-.6-4.2-8-3.4-8.8 1-.7-1.7 1.4-2.2-.6-.5-2 .8-8-.1-8.7s-5.3-3.4-5.3-4c-.1-.4.2-29.6 24.6-5.4-10.5-12.4-14.6-11-16.5-11.2-1.4 0-10.9.9-13.3 13-2.4 12-5.2 4.5-5.2 4.5s-.5 5.2 2 6.7-1.2 5.9-1.2 5.9-4.6-11.2-3.9-16c-.9 3.9-.8 13.5 5 24a78 78 0 0029.9 21.1c8.9-13.6 8.4-15.2 8.4-15.4z"/>
+  <path fill="#8a9396" fill-rule="evenodd" stroke="#2b2b2b" stroke-linejoin="round" stroke-width="1.1" d="M371.9 328.6s4.9.6 6.2 3.1a24 24 0 012 6.4c.8-1.6 1.2-3 2.8-4.2s2.8-1.4 2.8-2.2c-.1-1-5.3-6.4-7.9-6.7-2.6-.3-7.1 2.8-7.1 2.8s-.9 1.2 1.2.8z"/>
+  <path fill="none" stroke="#8a9396" stroke-linecap="round" stroke-width="1.1" d="M383.1 341.4s12.8 5.9 33.8 6.2"/>
+  <path fill="none" stroke="#2b2b2b" stroke-linecap="round" stroke-width="1.1" d="M425.8 282.1s-1.1 10.7-9.4 32"/>
+  <path fill="none" stroke="#2b2b2b" stroke-width="1.1" d="M424.1 288.7s-2.5 7.7-9.3 13.5"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gt.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gt.svg
new file mode 100644
index 0000000..724e970
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gt.svg
@@ -0,0 +1,204 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-gt" viewBox="0 0 640 480">
+  <defs>
+    <radialGradient id="a">
+      <stop offset=".2" stop-color="#f9f0aa"/>
+      <stop offset="1" stop-color="#b07e09"/>
+    </radialGradient>
+    <radialGradient id="d" cx="447.4" cy="308.3" r="16.5" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <radialGradient id="e" cx="451.6" cy="313" r="10.9" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <radialGradient id="f" cx="454.1" cy="308.6" r="9.8" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <radialGradient id="g" cx="458.4" cy="307.1" r="17.4" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <radialGradient id="j" cx="446" cy="252.4" r="13" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <radialGradient id="m" cx="477.9" cy="215.3" r=".3" gradientUnits="userSpaceOnUse">
+      <stop offset=".3" stop-color="#a50a0a"/>
+      <stop offset="1" stop-color="#4c0505"/>
+    </radialGradient>
+    <radialGradient id="n" cx="489.1" cy="210.3" r=".3" fx="489.1" fy="210.3" gradientTransform="scale(.97707 1.02346)" gradientUnits="userSpaceOnUse">
+      <stop offset="0" stop-color="#fff"/>
+      <stop offset="1" stop-color="#fff" stop-opacity="0"/>
+    </radialGradient>
+    <linearGradient id="h" x1="473.9" x2="472.4" y1="259.2" y2="232" gradientUnits="userSpaceOnUse">
+      <stop offset=".2" stop-color="#b07e09" stop-opacity="0"/>
+      <stop offset="1" stop-color="#b07e09"/>
+    </linearGradient>
+    <linearGradient id="i" x1="483.1" x2="485.5" y1="296.7" y2="326.6" gradientUnits="userSpaceOnUse">
+      <stop offset=".2" stop-color="#b07e09" stop-opacity="0"/>
+      <stop offset="1" stop-color="#b07e09"/>
+    </linearGradient>
+    <linearGradient id="k" x1="451.5" x2="455.4" y1="249.5" y2="240.6" gradientUnits="userSpaceOnUse">
+      <stop offset=".2" stop-color="#f9f0aa"/>
+      <stop offset="1" stop-color="#b07e09"/>
+    </linearGradient>
+    <linearGradient id="l" x1="473.3" x2="475.9" y1="237.3" y2="270.4" gradientUnits="userSpaceOnUse">
+      <stop offset=".2" stop-color="#f9f0aa"/>
+      <stop offset="1" stop-color="#b07e09"/>
+    </linearGradient>
+  </defs>
+  <path fill="#4997d0" d="M0 0h640v480H0z"/>
+  <path fill="#fff" d="M213.3 0h213.4v480H213.3z"/>
+  <g transform="translate(0 40) scale(.66667)">
+    <g stroke="#24420e">
+      <path fill="none" stroke-width=".4" d="M452.1 377.5c2.7-.4 4.2-1.2 6-1.8m2.3-4a13 13 0 013 4.6m-8.1-5.1a15.4 15.4 0 013 4.2m-49.5-136.6c-1 1.6-3.1 2.7-4.8 3.4m-.3-.2c0-1.4-.3-3 0-4.4m-2 5l.7 2m2 1l-2 .3m-4-.9c0 2.6.4 5.6.6 7.9m-1.8-1a6 6 0 001.6 1.9m-4.6 6.4c.5 1 1 2.2 1.3 4m3.7-4.6l-2 1.5m1.7 4.4c-1 .9-2.2 1.5-3.5 2.1m-3.8 40.4a16 16 0 004 4.7m.6 1.7a8 8 0 01-3-1m4.4 8.5l1.7 1m-.4 3.4c1.2.8 2.5 2.3 3.7 3.9m-1.4 2.8c1.4.3 2.5.7 3.2 1m-1 2.5h2m1.3-5.3l-.5 4.2m1 1.6l.4-1.6m4.7 6l-.1 3.2m39.2 28l-1.2 1.5m-2.4-4l-.7-1.7"/>
+      <g stroke-width=".2">
+        <path fill="#406325" d="M486.1 385c-.8-1.3-2-2.1-3.3-2.7-7.7-4-15.4-5.9-24-7.3-2.1-.3-4.1-2.2-6.2-3.2-5-2.3-10.5-3.2-15.3-5.7a7.8 7.8 0 01-2-1.5c-2-2.2-5.5-2.9-7.6-5-8.4-7.8-17.2-15-21.8-25.5-5.6-12.7-12.5-25.8-11.6-40.3.6-9-.7-18.3 1.5-27 3.4-12.9 7.6-25.6 15.4-36.3l-1.3.8a103.6 103.6 0 00-15.4 36.3c-2.3 8.7-1 18-1.5 27-1 14.5 6 27.6 11.5 40.3 4.6 10.4 13.5 17.7 21.8 25.6 2.2 2 5.6 2.7 7.6 5a10 10 0 002 1.5c4.9 2.4 10.4 3.3 15.4 5.7 2 1 4 2.8 6 3.1a76.4 76.4 0 0124.2 7.3 8 8 0 013.3 2.6l1.3-.8"/>
+        <g fill="#67923d">
+          <path d="M406.3 331.6a46.9 46.9 0 01-.2-23.5c6.7 13 4.5 23.7.2 23.5zm45.9 45.4c-7.1.4-20.6 9.3-21.9 11.4 15.1.1 24-7.3 21.9-11.4zm7.5-4.3a60 60 0 01-14-26.5c15 10.8 18.9 24.3 14 26.5z"/>
+          <path d="M454.6 372.8a55.1 55.1 0 01-16-22.8c15.3 8.2 20.3 20.2 16 22.8zM439 366c1-7.8-5.6-24.2-7.5-26-3 16.5 3 27.6 7.6 26zm-27.3-24.3a42 42 0 01.5-21c5.5 11.7 3.3 21.2-.5 21zM398 265a51 51 0 0121-16c-6.7 14.6-18 19.9-21 16z"/>
+          <path d="M398.7 259.3a51.7 51.7 0 0117.4-20c-3.7 15.7-13.7 23.2-17.4 20zm27.9 99.2c-5-6.2-8-23.9-7.3-26.4 11.2 12.5 12 25.2 7.2 26.4zM397.9 322c-7 1.1-21.4-4.6-23-6.3 14.6-3.2 24.4 2 23 6.3zm-2.2-9.7c.8-5.5 8.6-15.8 10.3-16.6-1 12-7.4 18.6-10.3 16.6zM447 371a57.1 57.1 0 00-26.1 13.6c18 .1 28.7-8.7 26.1-13.6z"/>
+        </g>
+        <g fill="#406325">
+          <path d="M406.4 331.5c4.2.2 6.4-10.4-.3-23.4a79 79 0 01.3 23.4zm11.2 20a48.8 48.8 0 00-21.7-11.2c8.9 12.1 19.9 15.1 21.7 11.2zm-24.4-53a57 57 0 00-14.8-24c1.5 17.2 10.6 26.7 14.8 24zm8.4 34.3c-5-3.7-19-5.4-21-4.7 10.2 8.2 20.2 8.4 21 4.7zm-9.4-24.9a42 42 0 00-16.9-13.7c5.5 12.4 14.6 17 16.9 13.7zm2.7-47.5c1-7.6-5.5-23.4-7.3-25.2-2.9 16 2.9 26.7 7.3 25.2zm4.5-15a48 48 0 00-.5-24.3c-6.4 13.5-3.8 24.6.5 24.4z"/>
+          <path d="M404.4 237.8a40.2 40.2 0 003.5-19.4c-7.2 9.7-7 18.9-3.5 19.4zm6-6.1a38.9 38.9 0 009-17.4c-9.7 7-12.2 15.8-9 17.4zm-16 43.2c0 .9-1-8.2-10.1-18.3.4 14.8 6.2 20.4 10 18.3zm32.5 85.8a53.1 53.1 0 00-25.8-6c12.6 10.4 24.9 10.6 25.8 6zm12 5.2c-4.5 1.6-10.4-9.4-7.5-25.9a99 99 0 007.5 26zm13.4 11.2c2 4-6.8 11.4-21.8 11.3 12-5 21.2-9.9 21.7-11.3zm7.3-4.5c5-2.3 1.1-15.5-14-26.4 8.6 13.2 14.5 24.6 14 26.4z"/>
+          <path d="M454.6 372.7c4.2-2.7-.7-14.5-16-22.7 9.5 11.2 16.2 21 16 22.7zm-42.8-31c3.7.2 6-9.3.5-21 .7 11 .4 20-.5 21zM398 264.9c3 4 14-1.3 20.9-15.9a90.6 90.6 0 01-20.9 16z"/>
+          <path d="M398.9 259.3c3.6 3.2 13.5-4.3 17.2-20-8 11.3-15.6 19.8-17.2 20zm27.7 99.1c4.7-1.1 4-13.8-7.3-26.3 5 13.5 8 24.8 7.3 26.3zM397.7 322c1.4-4.3-8.3-9.4-22.8-6.3 12.3 2.2 22 5 22.8 6.3zm-2-9.7c3 2 9.3-4.6 10.4-16.6a68.8 68.8 0 01-10.3 16.6zM447 371c2.6 5-8 13.7-26 13.5 14.2-5.8 25.3-11.7 26-13.5z"/>
+          <path d="M399.4 326.3a45.1 45.1 0 00-17-15.8c5 13.6 14.2 19.1 17 15.8z"/>
+        </g>
+        <g fill="#67923d">
+          <path d="M392.4 274c4-4.7 17.5-9.2 19.6-9-8 10.5-18 12.6-19.6 9zm25 77.5c-1.7 4-12.6 1-21.6-11.1a84.8 84.8 0 0021.7 11.1zm-24.3-53c-4.2 2.7-13.1-6.8-14.7-24 6.6 13.3 13 23.5 14.7 24zm8.4 34.3c-.7 3.7-10.7 3.6-20.8-4.7a74.6 74.6 0 0020.8 4.7zm-9.4-25c-2.4 3.3-11.3-1.2-16.8-13.6 8.2 8 15.5 13.7 16.8 13.6zm2.7-47.5c-4.4 1.6-10.1-9-7.3-25 2.7 13.5 6 24.2 7.3 25zm4.5-14.9c-4.3.3-6.9-10.8-.5-24.3-.8 12.8-.5 23.2.5 24.3zm5-7.6c-3.4-.6-3.7-9.7 3.6-19.4a66.2 66.2 0 00-3.6 19.4zm6-6.1c-3.1-1.7-.7-10.4 9-17.4a66.2 66.2 0 00-9 17.4z"/>
+          <path d="M394.3 274.9c-3.9 2.1-9.6-3.5-10-18.3 5 11.7 8.6 17.8 10 18.3zm32.5 85.8c-.9 4.6-13.1 4.4-25.7-5.9 13.2 4.3 24.3 6.7 25.7 5.9zm-8.2-9.5A41 41 0 01412 332c9 8.7 10.2 18.1 6.8 19.2zm-16.8-25a44.3 44.3 0 01-3-23c8.3 11.9 7.3 22.7 3 23zm-2.7.1c-2.7 3.3-11.9-2.1-16.8-15.8a77.8 77.8 0 0016.8 15.8z"/>
+        </g>
+        <g fill="#406325">
+          <path d="M392.4 274c1.6 3.6 11.4 1.5 19.5-8.9-12 6.8-16.7 9.8-19.5 8.9zm9.3 52c4.3-.3 5.3-11-3-22.8a72.8 72.8 0 013 22.9zm17 25.2c3.4-1 2.2-10.5-6.7-19.2 4.4 9.7 7.2 18 6.7 19.2z"/>
+          <path d="M394.2 291.8a41 41 0 00-4.3-25.6c-4.7 15.4-.2 26.6 4.3 25.6z"/>
+        </g>
+        <path fill="#67923d" d="M394 293.8c-6 1.3-8.7-12-4.1-27.1 1 13.5 2.8 26.1 4 27z"/>
+        <path fill="#67923d" d="M392.7 293.7a53 53 0 019-24.7c2 15.8-4.5 26.3-9 24.7z"/>
+        <path fill="#406325" d="M392.8 293.6c4.4 1.6 10.9-8.8 8.9-24.6-3.5 13.3-7.5 23.8-8.9 24.6z"/>
+        <path fill="#67923d" d="M394.1 303.3a50 50 0 0110.6-23.7c.8 16.2-6.3 25.9-10.6 23.7z"/>
+        <path fill="#406325" d="M394.2 303.4c4.2 2.2 11.3-7.3 10.5-23.5-4.4 12.8-9 22.9-10.5 23.5z"/>
+      </g>
+      <g fill="#ba1f3e" stroke="#511124" stroke-width=".2">
+        <circle cx="396.8" cy="251.3" r="1.1"/>
+        <circle cx="405.2" cy="245.1" r="1.1"/>
+        <circle cx="401.6" cy="241.7" r="1.1"/>
+        <circle cx="392.5" cy="313.1" r="1.3"/>
+        <circle cx="395" cy="297.1" r="1.3"/>
+        <circle cx="408.2" cy="334.5" r="1.3"/>
+        <circle cx="402.4" cy="336.4" r="1.3"/>
+        <circle cx="446.7" cy="367.6" r="1.3"/>
+        <circle cx="449.6" cy="374.7" r="1.3"/>
+      </g>
+    </g>
+    <g stroke="#24420e">
+      <path fill="none" stroke-width=".4" d="M561.1 259c.7.6 1.2.8 2.3 1.9m-6.6-19c0-1.3-.6-3.6-.9-5m3.5 3c0 2-.3 3.8-1.1 5.5m-4.2-.5c1.8 1.6 3.5 3 5.3 3.9m3.8 1.2c.1 2-.1 4-.7 6m.4 1.5l1.3-2.3m-1.9 12.2c1.4.3 2.8 2 3.5 3.5m.5-1.3l1.6-2.2m1.7 30.8a23.9 23.9 0 01-2.4 3.4m-4 0c.8 1.4 1.6 3 2.6 4m2.5 5.9a13.2 13.2 0 01-4.5 4m.2 4.5c-1.1.8-2.5 3-3.7 4.7m8.4-20.2l-2.1.9m-1.4-7.5l1.3 1.1m-9.3 37.4H555m-2-1.8l.7 1.6m-7.8 5.1c-.2 1.9 0 3.7.2 5.6m4.3-9l1 2.2m3.9-.2l-2.5.5m-30.9 25.2l-1 1.8m12-4c-1.5.2-2.8 0-4.1-.2m-5.5 6a27.3 27.3 0 00-3-1m-14.6 2.7c-1 .7-2 2.4-3.1 4m-.6-4.5c-2.4 1.3-3.1 3.7-4.4 5.8m2.8 2.9a52.4 52.4 0 01-5.3-2m16.7-.8c-2.3-1.2-4.7-1-7.1-1.4m10.8-.4c-3.7-.7-7-.6-10.3-.1m7.8-2.6l-1.4-.6m-5.6 5.5l-2.3-1.3m58-49.2c-1.3.8-2.6 2.3-3.8 3.9m1.8-79.6l-2.1-.8"/>
+      <g stroke-width=".2">
+        <path fill="#406325" d="M474.4 384.9a8 8 0 013.3-2.7c7.7-4 15.4-5.8 24-7.2 2.1-.4 4.1-2.3 6.2-3.2 5-2.4 10.5-3.3 15.3-5.7a7.8 7.8 0 002-1.6c2-2.2 5.5-2.9 7.6-5 8.4-7.8 17.2-15 21.8-25.5 5.6-12.7 12.5-25.8 11.6-40.2-.6-9.2.7-18.4-1.5-27a104.8 104.8 0 00-15.4-36.4l1.3.8a103.8 103.8 0 0115.4 36.3c2.3 8.7 1 18 1.5 27.1 1 14.4-6 27.5-11.5 40.3-4.6 10.4-13.5 17.6-21.8 25.5-2.2 2-5.6 2.7-7.6 5a10 10 0 01-2 1.5c-4.9 2.5-10.4 3.4-15.4 5.7-2 1-4 2.8-6 3.2A76.4 76.4 0 00479 383a8 8 0 00-3.3 2.7l-1.3-.9"/>
+        <g fill="#406325">
+          <path d="M553.6 334.6c2.8-7.4 0-24.8-1.4-27-6.7 15.4-3.4 27.6 1.4 27z"/>
+          <path d="M546.5 341.6c2.3-5.6.6-19.3-.4-21-5.6 11.7-3.3 21.3.4 21zm16.8-74.1a47 47 0 00-19.2-14.6c6.2 13.3 16.5 18.2 19.2 14.6z"/>
+          <path d="M561.8 259.5a43.3 43.3 0 00-14.5-16.7c3 13 11.4 19.3 14.5 16.7zm4.7 15c-3.5-4.1-15.2-8-17-7.8 7 9 15.6 10.9 17 7.7zm-2.8 46.3a40 40 0 0020.3-5.7c-12.9-2.8-21.5 1.9-20.3 5.7zm-.1-5.7c0-5.6-6.4-16.8-8-18-.6 12 4.8 19.5 8 18z"/>
+          <path d="M564 301.4a50 50 0 00-10.6-23.6c-.8 16.2 6.3 25.8 10.6 23.6zm-53 75.3a47.7 47.7 0 0022.2 11c-8.8-12.3-20.1-15.1-22.1-11z"/>
+        </g>
+        <g fill="#67923d">
+          <path d="M553.6 334.4c-4.9.6-8.1-11.4-1.4-26.8-.5 14.2.2 25.7 1.4 26.8zm-53.4 43.7a48 48 0 0121.8 11.4c-15 .1-24-7.3-21.8-11.4zm0-8c2-8 15-21.2 17.5-22.1-3.6 17.1-13.7 25.5-17.5 22.2zm21.3-4.2c-1-7.8 5.6-24.2 7.5-26 3 16.5-3 27.6-7.5 26zm21.4-14.5a48.8 48.8 0 0121.7-11.2c-8.9 12.1-19.9 15.1-21.7 11.2zm25.8-53.3c1-6.3 9.7-17.9 11.6-18.9-1.2 13.6-8.3 21-11.6 19z"/>
+          <path d="M557 336.2a50.4 50.4 0 0124.4-5.5c-11.8 9.7-23.5 9.8-24.4 5.5zm10.3-24.5a44 44 0 0117.7-14.4c-5.8 13-15.3 17.8-17.7 14.4zm-1.5-45.6c0-7.6 8-22.7 10-24.2 1.1 16.1-5.7 26.2-10 24.2zm-7-26a40.6 40.6 0 010-20c5.5 11 3.7 20.2 0 20zm-4.1-2.1a49.8 49.8 0 01-10.5-22.1c11.8 9.3 14.4 20.4 10.4 22.1z"/>
+          <path d="M566.3 272.5c-.3.9 3-7.7 14.2-15.3-4 14.3-11 18.3-14.2 15.3zm-34.1 90c7-5.2 26.5-7.7 29.2-6.8-14.2 11.8-28.2 12-29.2 6.7zm14.3-20.9c-3.7.2-6-9.3-.5-21-.7 11-.4 20 .5 21zm16.9-74c-2.7 3.5-13-1.3-19.2-14.7a78.8 78.8 0 0019.2 14.6zm-1.7-8.1c-3.1 2.6-11.3-3.6-14.4-16.7 6.7 9.4 13 16.5 14.4 16.7zm4.8 15c-1.4 3.2-9.9 1.3-16.9-7.7 10.4 5.9 14.5 8.5 17 7.7zm-2.6 46.2c-1.3-3.7 7.3-8.3 20.2-5.5a69 69 0 00-20.2 5.5zm-.4-5.6c-3.2 1.5-8.5-5.9-8-17.9a68.5 68.5 0 008 18z"/>
+          <path d="M563.9 301.6c-4.2 2.2-11.3-7.4-10.5-23.5 4.4 12.8 9 22.9 10.5 23.5zm-52.7 75c2-4 13.1-1.3 22 11a80.3 80.3 0 00-22-11z"/>
+        </g>
+        <g fill="#406325">
+          <path d="M521.5 365.8c4.6 1.6 10.5-9.4 7.6-25.9-2.8 14-6.2 25.1-7.6 26z"/>
+          <path d="M531.8 360.6a55 55 0 004.6-27c-10 13.6-9.4 26.3-4.6 27zM500.1 378c-2 4.1 6.7 11.5 21.8 11.3a80.2 80.2 0 01-21.8-11.3zm.2-8c3.8 3.3 13.8-5 17.4-22.1-8.1 12.4-15.7 21.8-17.4 22zm42.7-18.7c1.8 4 12.7 1 21.7-11.1a84.5 84.5 0 01-21.7 11.1zm25.8-53.3c3.3 2.1 10.3-5.3 11.5-18.8a74.6 74.6 0 01-11.5 18.8zM557 336.2c.9 4.4 12.4 4.2 24.3-5.5-12.5 4-23 6.2-24.3 5.5zm10.3-24.6c2.5 3.4 11.9-1.4 17.7-14.4a75.1 75.1 0 01-17.7 14.4zM566 266c4.3 2 11-8 10-24-4.2 13-8.5 23.3-10 24zm-7-25.9c3.6.1 5.5-9 0-20 .9 10.5.8 19.1 0 20zm-4.2-2.2c4-1.7 1.4-12.7-10.4-22a81.8 81.8 0 0110.4 22zm11.6 34.7c3.2 3 10.2-1 14.2-15.4-7.8 10.1-12.7 15.2-14.2 15.4zm-34 89.9c1 5.2 14.9 5 29-6.7-14.9 4.8-27.4 7.6-29 6.7z"/>
+          <path d="M539.1 354.8a41 41 0 003.6-20.1c-7.5 10-7.2 19.5-3.6 20zm19.6-28.7a44.3 44.3 0 003-23c-8.3 11.9-7.3 22.7-3 23z"/>
+        </g>
+        <path fill="#67923d" d="M531.8 360.5c-4.8-.6-5.3-13.3 4.5-26.8-3.6 13.8-5.4 25.4-4.5 26.8zm35.2-68.3c-1-7.7 4-20.1 6.6-22.5 2.5 14.4-2.7 24-6.7 22.5zm-28 62.5c-3.6-.5-3.9-10 3.5-20a67.5 67.5 0 00-3.5 20zm23.4-104.2c-2.2-6 0-20 1.2-21.8 5.3 12.2 2.6 22.1-1.2 21.8zm-58.1 120.1c2.5-8 16.2-21 18.8-21.9-4.3 17.4-15 25.5-18.8 22zm54.5-41.6a45.1 45.1 0 0117-15.8c-5 13.6-14.3 19.1-17 15.8zm-.1-3c-4.3-.4-5.3-11 3-22.9a72.8 72.8 0 00-3 22.9z"/>
+        <path fill="#406325" d="M567 294c5.2 1.9 9-9.8 6.6-23.9a98.2 98.2 0 01-6.6 24z"/>
+        <path fill="#406325" d="M567.8 293.6c.5-7.5-7-23-9-24.7-2 15.8 4.5 26.3 9 24.7zm-5.2-43.2c3.8.4 6.4-9.4 1.1-21.7a73 73 0 01-1.2 21.7zm-58.1 120.1c3.8 3.6 14.4-4.4 18.7-21.8-8.8 12.3-17 21.6-18.7 21.8zm54.6-41.5c2.8 3.3 12-2.1 17-15.8a77.8 77.8 0 01-17 15.8z"/>
+        <path fill="#67923d" d="M567.7 293.5c-4.5 1.7-10.9-8.7-8.9-24.5 3.5 13.2 7.5 23.7 8.9 24.5z"/>
+      </g>
+      <g fill="#ba1f3e" stroke="#511124" stroke-width=".2">
+        <circle cx="564.6" cy="254.9" r="1.1"/>
+        <circle cx="568.4" cy="266.8" r="1.1"/>
+        <circle cx="569.8" cy="304.3" r="1.3"/>
+        <circle cx="564.6" cy="297.3" r="1.3"/>
+        <circle cx="549.9" cy="337.2" r="1.3"/>
+        <circle cx="556.2" cy="339.9" r="1.3"/>
+        <circle cx="513.8" cy="372.3" r="1.3"/>
+        <circle cx="506.8" cy="377.3" r="1.3"/>
+        <circle cx="557" cy="249.3" r="1.1"/>
+      </g>
+    </g>
+    <g id="b" fill="#8c959d" stroke="#485654" stroke-width=".1">
+      <path d="M434.3 336.3c-.2 1 .8 2.3 2 2 .5 0 .7-.5.2-.5-.4.1-.9 0-1.2-.3a1.7 1.7 0 01-.4-2l-.6.8z"/>
+      <path stroke="none" d="M437.2 338.3c-1 1.2-2.5 1.7-3.4.9-.6-.6-.8-1.2-.5-2l-1 1.3a4.4 4.4 0 001.6 1.8c1.2.5 3-.3 4-1.6.8-1 1.6-2.4 1-3.6a4 4 0 00-2-1.7l-1 1c.5-.2 1.2 0 1.7.4 1.3 1 .5 2.5-.4 3.5z"/>
+      <path fill="#485654" stroke="none" d="M437.2 338.3a4 4 0 01-1.1 1c-.5.2-1 .4-1.5.3a1.5 1.5 0 01-.7-.3 2.4 2.4 0 01-.5-.6 1.6 1.6 0 01-.3-.7c0-.3 0-.5.2-.8l.1.1-1.1 1.2c.3.4.6.9 1 1.2l.7.5a2 2 0 00.8.1 3 3 0 001.6-.5 5.1 5.1 0 001.3-1l1-1.4c.2-.5.3-1 .3-1.6a1.8 1.8 0 00-.2-.8 3 3 0 00-.5-.6 4.2 4.2 0 00-1.4-1h.1l-1 1.1h-.1c.2-.2.5-.2.8-.2a2 2 0 011.6 1.4c.1.5 0 1-.2 1.4a5.1 5.1 0 01-.9 1.2zm0 0c.4-.3.6-.7.8-1.2.2-.4.3-1 .2-1.4a2 2 0 00-.9-1c-.4-.3-1-.4-1.3-.2h-.1l1-1.2a4.2 4.2 0 012 1.6c.2.3.3.6.3 1 0 .5-.1 1-.4 1.6a6.4 6.4 0 01-1 1.4c-.3.5-.8.8-1.3 1.1-.5.3-1 .5-1.7.5a2.2 2.2 0 01-.8-.1 2.7 2.7 0 01-.8-.5 5 5 0 01-1-1.4l1-1.3h.2l-.1.8c0 .2 0 .5.2.7l.5.5.6.3c.5.1 1 0 1.5-.3a4 4 0 001.1-.9z"/>
+      <path fill="#6c301e" stroke="#351710" stroke-linejoin="round" stroke-width=".2" d="M515.2 249.3l-40.1 39.5L434 328l-4.6 5.4c-2 2.3-4.4 5.3-7.2 8-.4.6-1.1.4-1.7.8a23.4 23.4 0 00-5 4.3L403.2 360c-.7.9-1 1.4-.4 2l6.6 8.8c1.2 1.2 2.6 1.8 3.2.8 3.1-5.5 11-13.8 14-20.3 1.7-4 3.9-11.1 5.5-12.8 2-2.2 7.1-7.8 11.8-12.7l1-1 .9-1c23.5-24 50.7-53.1 70.5-73.6l-1-1z"/>
+      <path d="M431.9 328.1c-1.2 0-2-.7-2.9-1.4 1.2.4 2.4.8 3.5.4l-.6 1z"/>
+      <path fill="#b2b6ba" stroke-width=".2" d="M557 220.1l-31.8 26.2c-.3.4-.6.3-.9 0l-2.9-2.4v-.6l1.4-1.4c.2-.2 0-.3-.1-.6l-.6-.6c-.3-.1-.5 0-.7.2l-1.4 1.5c-.7 0-1.3.6-1.4 1.4-19.2 18.7-35.8 35.4-54.9 53.8l-22.6 21.6c-.8 1-4.3 2.9-6.6 4.4a5.6 5.6 0 00-1.8 1.5l-1.8 5.5-2.5 4.2c2.3 2.4 2.2 2.2 3.8 3.7l11.2-11.9.8-1a13.2 13.2 0 00-1.4-1.6 34.1 34.1 0 00-1.2-1l-.6-.6c-.2-.2.2-.5.4-.7 26.5-25.5 55-53.7 78.3-76.6a1.4 1.4 0 001 0l2.8 3.2c.6.6 1.2.6 1.7.4l31.9-28.6z"/>
+      <path fill="#485654" stroke="none" d="M431 330.4h.5a1.5 1.5 0 00.6-.1 124.9 124.9 0 011.5-4.8 1.5 1.5 0 00-.7-.4c.3 0 .5.2.7.4l-.7 2.4-.7 2.4a1.4 1.4 0 01-.6.2 2.9 2.9 0 01-.7-.1z"/>
+      <circle cx="438.2" cy="328.1" r=".6" fill="none" stroke-width=".2"/>
+      <circle cx="434.4" cy="331.9" r=".6" fill="none" stroke-width=".2"/>
+      <path fill="#485654" stroke="none" d="M441 322.4l-1-.8a11.6 11.6 0 01-.8-.8 11.4 11.4 0 011.8 1.6z"/>
+      <path d="M502.2 259l3.5 3.5.6-.6-3.5-3.4-.6.6z"/>
+    </g>
+    <use width="100%" height="100%" transform="rotate(-177.2 487 -.2)" xlink:href="#b"/>
+    <g stroke="#24420e" stroke-width=".2">
+      <path fill="#67923d" d="M434 365.4a55.9 55.9 0 00-29.3.9c16.3 8 29.5 4.6 29.2-1zm89 3.3a55 55 0 0129.2 1c-16.3 7.9-29.6 4.5-29.3-1z"/>
+      <path fill="#406325" d="M433.8 365.5c.3 5.5-12.8 8.9-29.1.9 15.3 1 27.8.4 29-1zm89.3 3.3c-.3 5.5 12.8 8.9 29 .9-15.2 1-27.7.4-29-1z"/>
+    </g>
+    <g id="c">
+      <path fill="#b2b6ba" stroke="#485654" stroke-width=".2" d="M508.5 360a237.5 237.5 0 00-76.1-68c3.6-.2 11.5 3.9 14.7 6 23.9 15.4 44.3 35.7 65.6 59.8a35.1 35.1 0 01-3.4 3l-.8-.8z"/>
+      <path fill="#8c959d" d="M510.6 359.8L509 361c-23-29.6-55.1-57.9-76.7-69.1 30.1 13.9 55.4 41.8 78 67.7h.2z"/>
+      <path fill="#485654" d="M510.6 359.8L509 361a302.3 302.3 0 00-16.9-19.7 336 336 0 00-18.3-18.3 284.2 284.2 0 00-19.8-16.8 195.9 195.9 0 00-10.6-7.6c-3.6-2.3-7.3-4.6-11.1-6.6v-.2a136 136 0 0122.5 13.3 210.9 210.9 0 0120 16.6 360 360 0 0118.3 18.5c6 6.4 11.6 13 17.4 19.4zm0 0a899.3 899.3 0 00-17.5-19.4 360.2 360.2 0 00-18.3-18.5 212 212 0 00-20-16.6 134.7 134.7 0 00-22.4-13.2v-.2a200.9 200.9 0 0121.7 14.3A285 285 0 01474 323a336 336 0 0118.3 18.3 302.3 302.3 0 0116.8 19.8l1.5-1.4z"/>
+      <g fill="#fab81c" stroke="#6c301e" stroke-width=".1">
+        <path stroke-width=".2" d="M517.5 355a18.3 18.3 0 00-5.3 2.3c-.2 1.4-2 3-3.6 3.3l-.5-.8a.1.1 0 00-.2 0 7.2 7.2 0 00-.6.3c-.6 0-1.3.2-1.6 1-.4 1 .4 2.3 1.2 3.1 1 .7 1.4 1 2.4 1 1.1-.3 1.7-1.3 2-1.6 3.7 4.5 6.5 7 11.2 10.6 2.1 0 3.2-1.3 2.5-2.8-.2-.5-.8-.8-1.3-.6v-.5c2.4-2.2 3.5-5 .9-9.9-2.2-4-4.7-5.3-7-5.3zm6.3 4.6l1 2c1.5 3 .2 6.6-2.4 7.8h-.2c.4-.7-.8-2.2-1.4-1.7.3-.7-.7-2-1.5-1.7.4-.7-.5-1.9-1.4-1.5.4-.7-.3-1.8-1.3-1.6.3-.9-.4-1.8-1.3-1.6 0-.8-.2-1.2-.5-1.5 1-.8 2.3-2.1 3.4-2.7 2.7-1.2 4.4 1 5.5 2.5z"/>
+        <path d="M524.9 362.8c-.5-.3-.8-.8-.6-1.1.2-.4.7-.5 1.2-.2.5.2.8.7.6 1-.1.4-.7.5-1.2.3z"/>
+        <path d="M524.6 361.8c-.5-.3-.8-.8-.6-1.2.2-.3.7-.4 1.2-.1.5.2.8.7.6 1-.1.4-.7.5-1.2.3z"/>
+        <path d="M524 360.6c-.5-.2-.8-.7-.6-1 .2-.4.7-.5 1.2-.3.5.3.8.8.6 1.1-.1.4-.7.5-1.2.2z"/>
+        <path d="M523.2 359.6c-.5-.3-.8-.8-.6-1.1.2-.3.7-.4 1.2-.2.5.3.8.8.7 1.1-.2.3-.8.5-1.3.2z"/>
+        <path d="M522.2 358.6c-.6-.2-.8-.8-.6-1v-.2c.2.1.7.2.6-.1 0-.2-.1-.3 0-.2l.6.2c.5.3.8.8.6 1.1-.2.4-.7.5-1.2.2z"/>
+      </g>
+      <path fill="#fab81c" d="M511.3 363.6c.6-1.8 2-3.4 3.5-3.8m-3.3 4c1.3.3 3.3-1.2 3.8-2.5m-2.6 4c1.6.4 3.3-1.2 4-2.4m-2.5 4c2 0 3.1-1.3 3.7-2.4m-2.2 4c1.6 0 3.2-1.4 3.6-2.5m-2.2 3.8a4 4 0 003.7-2m-2 3.4c1.6.1 3-.9 3.4-1.8m-1.6 3.3c1.6 0 2.7-1 3.1-2"/>
+      <path fill="#6c301e" d="M511.3 363.6a7.1 7.1 0 011.3-2.3l1-1 1.2-.5a4 4 0 00-1.2.6l-1 1a9.3 9.3 0 00-1.3 2.2zm.2.3c.4 0 .8 0 1.2-.2a4.9 4.9 0 001-.6l1-.8.6-1a2 2 0 01-.6 1 5 5 0 01-1 .9 4.6 4.6 0 01-1 .5 2.1 2.1 0 01-1.2.2zm1.2 1.4h1.2l1-.6a6.2 6.2 0 001.7-1.8 4.7 4.7 0 01-.7 1 5.2 5.2 0 01-.9.9 3.7 3.7 0 01-1 .5h-1.3zm1.5 1.6a4.2 4.2 0 001.1-.2 3.8 3.8 0 001-.5 4.7 4.7 0 001-.8l.6-1a4.5 4.5 0 01-1.5 1.9 3.4 3.4 0 01-2.2.6zm1.5 1.5a4.1 4.1 0 002.1-.8 5.1 5.1 0 001.5-1.6c-.1.3-.3.7-.6 1l-.8.7a4.2 4.2 0 01-1 .5c-.4.2-.8.2-1.2.2zm1.5 1.4a7 7 0 001-.2 4.6 4.6 0 001-.4 3.6 3.6 0 001.6-1.5l-.6 1c-.3.2-.6.5-1 .6a4.5 4.5 0 01-2 .5zm1.6 1.4h1a4 4 0 001-.5l.8-.5c.3-.3.5-.5.6-.8a2.5 2.5 0 01-.5.8 3.6 3.6 0 01-.9.6 3.7 3.7 0 01-2 .4zm1.8 1.5a4 4 0 001-.1 3.3 3.3 0 001.6-1 4 4 0 00.5-.8 3 3 0 01-1.2 1.5 3 3 0 01-1 .3 3 3 0 01-1 0z"/>
+    </g>
+    <use width="100%" height="100%" transform="rotate(-176.6 490 -.4)" xlink:href="#c"/>
+    <g stroke="#24420e" stroke-width=".2">
+      <path fill="#406325" d="M409.2 240a52.4 52.4 0 0019.5-17.9c-15.6 4.2-22.7 14.4-19.5 18zm145.8 4.7a50 50 0 00-15.6-19.9c2.8 15.2 12 22.8 15.6 20z"/>
+      <path fill="#67923d" d="M409.2 240c-3.3-3.5 3.8-13.6 19.4-17.8-11 8.4-19.2 16.2-19.4 17.8zm145.8 4.7c-3.7 3-12.7-4.6-15.5-19.7 7.2 11 14 19.5 15.5 19.7z"/>
+    </g>
+    <g stroke="#999270" stroke-width=".2">
+      <path fill="url(#d)" d="M452.2 318.1s-6.2.7-7.9-7.8c-1.8-9.1 5.3-10 5.3-10s8.1-.9 13.2-1l2.2 18-12.8.8z"/>
+      <path fill="url(#e)" d="M453 315.4s-4 .7-4.8-5.6c-.6-4.5 2.2-5.1 2.2-5.1l9.2 1.6v8.2l-6.6.9z"/>
+      <path fill="url(#f)" d="M450.4 304.7s5.9-.4 9-.8l1.3 5.7-7.1.4s-.5-5.1-3.2-5.3z"/>
+      <path fill="url(#g)" d="M449.2 300.4s7.5-1.9 8.5 6.5c.2 2.1-1 7.1-4.7 8.5l13.9-1.5-1.3-15-4.6.4s-10 .3-11.8 1z"/>
+      <path fill="#f9f0aa" d="M452.2 318.1s51.9-3.5 57.2-3.3c15.8-8.6 0-42.5-13.3-61.5 1.5-4.3-29.9-13.9-44-13-1.9 0-3.6.2-5.2.3-7.7.8-7.8 10.7-4.7 17 3 6 30.3 55 11.2 60.3l-1.2.2z"/>
+      <path fill="url(#h)" d="M507.8 273.3a148.3 148.3 0 00-11.7-20c1.5-4.3-29.9-13.9-44-13-1.9 0-3.6.2-5.2.3-7.7.8-7.8 10.7-4.7 17 1 1.8 4.3 8 7.9 15.7"/>
+      <path fill="url(#i)" d="M455 285c5.6 14.6 8.7 30-1.6 32.8l-1.2.3s52-3.5 57.2-3.3c8.6-4.7 7.8-16.8 3.2-30"/>
+      <path fill="url(#j)" d="M447.4 243.5c-3.7 0-4.7 3.6-4.6 5.8.1 6 4.6 6.2 4.6 6.2l6-.3 2.8-12.2-8.8.5z"/>
+      <path fill="url(#k)" d="M447.4 243.5l8.8-.5 1 9.1-7.8.4s2.5-7.3-2-9z"/>
+      <path fill="url(#l)" d="M496.1 253.3c6.7-1 6.6-10 2-13.7-15.5-.5-35.9-.1-50.6 1 1.7 0 6.3.4 6.9 6.5a8.2 8.2 0 01-3 7c-2 1.4-4 1.4-4 1.4h3.6l3-.4c21-2.7 42-1.8 42-1.8h.1z"/>
+      <path fill="#b07e09" stroke="none" d="M458.5 267.4c-.2-.3-.3-.7-.8-.8-.2 0-.6 0-.5-.4h.8l1.6-.2c.4.1.3.6 0 .5-.5 0-.2.5-.1.8l1.3 3c.1.4.4.7.7.7l1.1-.1c.3-.2.2-.6.2-1-.1-.3.5-.2.5 0l.4 1.4c0 .2-.2.1-.4.1l-3 .2c-.3 0-.8.3-1 0 0-.4.6-.2.6-.5l-.3-1-1.1-2.7zm4.8-.3c-.1-.3-.3-.7-.7-.8-.2 0-.6 0-.6-.4h.7l1.7-.2c.3 0 .4.5 0 .4-.3 0-.3.4-.2.7l1.5 3.4c0 .2.2.5.5.6.3 0 .7 0 .7.3 0 .2-.4.1-.6.1a6.6 6.6 0 00-1.6.2c-.2 0-.5 0-.5-.3s.5 0 .6-.4c0-.3-.2-.6-.4-1l-1.1-2.6zm4.5.7c0 .2.4 0 .5 0 .3 0 .6-.1.6-.4a1.7 1.7 0 00-.7-1.2c-.3-.3-.8-.2-1.1-.2l.1.5.6 1.3zm.6 1.6c.2.3.3.7.6 1 .2.2.6.1.8 0 .3 0 .5-.3.4-.5-.1-.7-.5-1.3-1.2-1.5a2.4 2.4 0 00-1 0l.2.5.2.5zm-2-2.4c-.2-.3-.3-.7-.7-1-.2 0-.6.1-.7-.2 0-.3.6-.1.8-.2.9 0 1.7-.3 2.6 0 .7.2 1.4.8 1.5 1.6 0 .4-.3.7-.6.8l.5.1c.6.2 1.1.6 1.4 1.1.2.4.3 1 0 1.4-.4.4-1 .4-1.4.4-.8 0-1.5 0-2.3.2-.2 0-.4-.5 0-.5.3 0 .3-.4.2-.6l-1.3-3zm7.4-1.9c.3 0 .4.3.5.5l.3.9c-.3.2-.5-.2-.6-.4-.1-.2-.4-.5-.7-.4a8.3 8.3 0 00-1.2 0c-.2.2 0 .4.1.6l.6 1.3c.2 0 .6 0 .8-.2 0-.2-.3-.7.2-.6.3.2.2.6.4.9l.5 1.1c-.3.3-.5-.1-.6-.4-.2-.3-.7-.3-1-.3-.2 0 0 .2 0 .3l.6 1.5c.2.3.7.3 1 .3.4 0 .8 0 1-.4.2-.2-.3-.7 0-.8.4 0 .4.4.5.6 0 .3.2.6.3.8 0 .2-.3.2-.4.2l-3 .2c-.4 0-.9.2-1-.2 0-.3.6-.1.6-.6l-.4-1-1.1-2.6c-.2-.3-.4-.6-.8-.7-.2 0-.6 0-.4-.4h1l2.8-.2zm2.3 1.3c-.1-.3-.3-.7-.7-.9-.2 0-.7 0-.7-.4.3-.2.7 0 1 0 .8 0 1.6-.3 2.4 0 .8.2 1.5.9 1.6 1.8 0 .4-.3.7-.7.8-.3 0 .2.1.3.2.7.3 1 .9 1.4 1.5.1.2.5.7.6.2 0-.5.7 0 .5.3 0 .4-.3.6-.7.6-.4 0-.9-.2-1.1-.6-.4-.6-.7-1.3-1.3-1.7-.2-.2-.5-.3-.8-.1v.4l.6 1.2c.2.3.6.3 1 .3.3.1.2.6-.2.5h-1.7c-.3.2-.9 0-.7-.3.3 0 .7-.2.5-.5l-1-2.6-.3-.7zm1.4 1c.2.3.6 0 .9 0 .3 0 .3-.5.2-.7-.1-.5-.4-1-.9-1.2-.2 0-.8-.2-.9.1l.7 1.6v.1zm7.2 1.6c.2.3.3.6.6.7.2 0 .6 0 .7.3 0 .3-.4.1-.6.2a7 7 0 00-1.6 0c-.3.1-.6 0-.6-.3.2-.2.7 0 .7-.4l-.5-1.1-1.1-2.9c-.1-.3-.5-.3-.7-.3-.3 0-.7 0-.7.4 0 .3.2.7 0 .8-.3 0-.4-.3-.5-.5l-.3-1c0-.2.3-.1.4-.1l4.2-.2c.3 0 .5.2.5.5s.3.6.4 1c-.1.3-.5 0-.5-.3-.2-.3-.6-.6-1-.7-.2 0-.6 0-.8.2l.2.7 1.2 3zm3.8-.9c-.2 0-.1.3-.1.4v.8c.1.3.5.3.8.4.2 0 .1.5-.2.4h-1.2c-.3.1-.7-.1-.5-.4.2 0 .4-.1.5-.3v-5c.2-.3.6 0 .6.1l3.6 4.6c.2.2.5.4.8.4.3 0 .4.5 0 .4h-1.5c-.2 0-.5.2-.7 0-.2-.1 0-.4.2-.4.3 0 0-.4-.1-.6l-.6-.8h-1.6zm1.1-.5c.2 0 0-.1 0-.2l-1.3-1.7v2h1.3zm3.1-1.8c-.1-.4-.3-1-.8-1-.3 0-.7-.2-.5-.5h1.7c.7 0 1.4 0 2 .2a4.3 4.3 0 013 3.4c0 .6-.1 1.3-.6 1.6-.8.5-1.7.4-2.5.3l-1.4.1c-.3 0-.4-.5 0-.4.4 0 .4-.5.2-.7l-1.1-3zm2 2.5c.1.3.2.7.5 1h1c.5 0 .7-.5.7-.9a4.3 4.3 0 00-.6-2.1 2.7 2.7 0 00-1.8-1.4h-1c-.1 0 0 .2 0 .4l1.2 3zm-21.1 12.4c0 .3.4.6.8.6.2 0 .7 0 .7.4-.2.2-.5 0-.8 0a8.6 8.6 0 00-1.5.2h-.9c-.2 0-.2-.4.1-.4.3 0 .6-.1.7-.4 0-.3-.2-.6-.3-.8l-1.2-2.8c0-.3-.4-.3-.7-.3-.2 0-.6.1-.7-.2 0-.3.5-.2.7-.4l1-.3c.2 0 .3.1.4.3l1.7 4zm.7-4.5h2c.4 0 .2-.5.4-.5.4 0 .4.5.4.7a.5.5 0 01-.6.6H475l.5 1.2.6-.2a2.8 2.8 0 012.6 1.6c.2.4.3 1 0 1.5-.4.5-1 .6-1.6.6-.5 0-1-.1-1.4-.6-.1-.2-.1-.7.2-.6.4 0 .7.2.7.6.1.2.5.1.7.1.3 0 .6-.2.6-.6 0-.4-.2-1-.5-1.3-.2-.4-.7-.7-1.2-.7l-.9.1c-.3 0-.3-.3-.4-.5a23.9 23.9 0 01-.7-1.9s.1-.2.2-.1zm6.9 1c-.2-.4-.4-.9-.9-1-.2 0-.7-.2-.4-.4h1.6a3 3 0 012.1.1 4.3 4.3 0 013 3.4c0 .6-.1 1.2-.7 1.5-.7.5-1.6.4-2.4.4l-1.3.2c-.3 0-.4-.5 0-.5s.3-.4.2-.7l-1.2-3zm2 2.4c.2.4.3.8.6 1 .3.2.6.1 1 0 .4 0 .6-.5.6-.9a4 4 0 00-.7-2.1 2.6 2.6 0 00-1.8-1.3 3 3 0 00-1 0v.3l1.3 3zm6.4-4.2c.3 0 .4.3.5.5 0 .3.2.5.3.8-.2.3-.5 0-.6-.3-.1-.2-.3-.5-.6-.5a9.7 9.7 0 00-1.3 0c-.2.2 0 .5 0 .6l.6 1.4c.3 0 .6 0 .8-.2.2-.2-.2-.7.2-.6.4 0 .3.5.4.8l.5 1.1c-.1.4-.5 0-.6-.3-.1-.3-.5-.3-.8-.3-.2 0-.4 0-.2.2l.6 1.5c.2.4.7.3 1 .3.4 0 .8 0 1-.3.2-.2-.2-.6 0-.8.4 0 .5.3.5.5l.3 1c0 .1-.3 0-.4 0l-3.1.2c-.3 0-.7.2-.9 0-.2-.5.5-.3.6-.6l-.3-.9-1.1-2.9c-.2-.3-.4-.6-.8-.7-.2 0-.6 0-.4-.4h1l2.8-.1zm-27.2 14.3c.1.5.6.7 1 .8.8.2 1.7.5 2.2 1.1.3.4.5.9.5 1.4 0 .5-.5.9-1 1a2.5 2.5 0 01-1.7-.1c-.2-.1-.1.4-.4.2-.3-.1-.2-.5-.4-.8a9 9 0 00-.3-1c0-.3.4 0 .5.2.3.6.9 1 1.6 1.1.4 0 .8-.2.8-.6 0-.5-.4-1-.8-1.2-.7-.3-1.4-.4-2-.8a2 2 0 01-1-1.6c0-.4.4-.8.8-.9a2.6 2.6 0 011.6 0c.2 0 .3-.3.6-.1 0 .2 0 .4.2.6l.3.9c-.2.2-.5 0-.5-.2-.3-.4-.6-.8-1-.8s-.8 0-1 .3v.5zm6.6-1.7c.4 0 .4.3.5.5 0 .3.2.6.3.8-.2.3-.5 0-.6-.2-.1-.2-.3-.5-.7-.5h-1.2c-.2.2 0 .4 0 .6l.5 1.4c.3 0 .6 0 .8-.2.2-.2-.2-.6.1-.7.4 0 .4.4.5.7 0 .4.3.8.5 1.3-.2.3-.6 0-.6-.3-.1-.3-.5-.4-.8-.3-.2 0-.4 0-.3.2l.6 1.5c.1.3.4.3.7.3.4 0 .9 0 1.2-.3.2-.2 0-.6 0-.8.3-.2.6 0 .6.3l.2 1c0 .2-.3.2-.4.2l-3 .2c-.4 0-.8.3-1 0 0-.4.5-.3.6-.6 0-.3 0-.5-.2-.8l-1-3c0-.3-.3-.6-.7-.6-.2 0-.6-.2-.4-.4h1l2.8-.3zm4.2 4.2c.1.3.3.6.6.7.3 0 .7-.1.8.2 0 .4-.5.2-.7.2a6.3 6.3 0 00-1.6.1c-.2 0-.5.2-.6-.1 0-.4.5-.2.6-.4l-.1-.8-1-3c-.2-.3-.3-.7-.7-.7-.2 0-.6 0-.5-.4.1-.2.5 0 .7 0 .7 0 1.4-.3 2.2-.2a2 2 0 011.7 1.2c.2.4.2 1 0 1.3-.5.4-1.1.5-1.7.6-.2 0 0 .2 0 .3l.3 1zm-.5-1.8h.6c.3-.1.5-.4.4-.7a2.2 2.2 0 00-.5-1.2c-.3-.3-.8-.3-1.1-.2-.2.1 0 .3 0 .5l.5 1.6zm6.1 1.5c0 .2.2.6.5.6.2 0 .7 0 .7.3s-.5.2-.7.2a7 7 0 00-1.6.1c-.2 0-.5 0-.5-.3.2-.2.7 0 .7-.4l-.3-1.2-1-2.9c0-.3-.4-.3-.7-.2-.2 0-.6 0-.7.3v.8c-.2.2-.4 0-.4-.3a6.6 6.6 0 00-.4-1c0-.3.3-.3.5-.3l4.1-.2c.3 0 .5.2.5.5l.4 1c-.1.2-.5 0-.5-.2-.2-.3-.5-.7-1-.8-.2 0-.5 0-.8.2l.2.6 1 3.2zm2.1-3.3c-.1-.3-.2-.7-.6-.8-.2 0-.6 0-.6-.4.1-.2.4 0 .6 0l1.8-.2c.3-.1.5.4.2.4s-.6.2-.5.5l.5 1.6.7 2.2c0 .2.3.4.5.4.3 0 .7 0 .6.4h-.7l-1.6.2c-.2 0-.5-.2-.4-.4.2-.1.6 0 .6-.4l-.3-1.2-.8-2.3zm5.8-1.6c.3 0 .3.3.4.5l.2.8c-.1.3-.5 0-.5-.2-.1-.3-.3-.6-.7-.6a9.7 9.7 0 00-1.2 0c-.2.2 0 .5 0 .6l.5 1.4c.2 0 .5 0 .8-.2.2-.2-.2-.6.1-.7.4 0 .4.5.4.7l.5 1.3c-.1.3-.5 0-.5-.2-.1-.3-.5-.4-.8-.4-.1 0-.5 0-.3.2l.5 1.5c.1.3.4.4.7.3.4 0 .9 0 1.2-.2.2-.2 0-.6.1-.9.3-.2.5.1.5.4a9.3 9.3 0 00.3 1c0 .2-.3.2-.5.2l-3 .1c-.3 0-.7.2-1 0-.1-.4.5-.3.6-.5a1 1 0 00-.1-.8l-1-3c0-.3-.3-.7-.7-.7-.2 0-.6-.2-.4-.4h1l2.9-.2zm2 1c-.1-.4-.4-.7-.8-.7-.3.1-.5-.6 0-.4h1.5l.7.9 2.1 2.9v-.3l.4-3.6c.2-.2.7 0 1-.2.3 0 1 0 .8.4-.4 0-.8.2-.6.6l1.2 3.6c0 .4.4.6.8.5.3 0 .3.6 0 .5H494c-.3.1-.8.1-.6-.3.3 0 .8-.2.5-.6l-1-3.2c.1.1 0 .3 0 .4l-.2 3-.1.8c-.3.1-.4-.1-.5-.3l-2.9-3.7.2.3c.3 1 .5 2 .9 2.9 0 .4.5.5.8.5.4.2.1.5-.2.4h-1.5c-.3 0-.3-.4 0-.4.5 0 .4-.5.2-.8l-1-3.3zm8.7.8c0 .2.4 0 .5 0 .3 0 .7 0 .7-.4 0-.5-.2-1-.5-1.2-.4-.3-.8-.2-1.2-.2l.1.5.4 1.3zm.5 1.6l.4 1c.3.2.6.1.9.1.2 0 .5-.2.4-.5 0-.6-.3-1.3-.9-1.5a2.4 2.4 0 00-1 0v.3l.2.6zM496 288c-.1-.4-.2-.8-.6-1-.2 0-.6 0-.6-.3s.5 0 .7-.1c1 0 1.8-.3 2.7 0 .7.2 1.3.9 1.3 1.6 0 .4-.3.7-.7.9 0-.2.4 0 .5 0 .5.2 1 .6 1.2 1.1.2.5.3 1 0 1.4-.4.4-1 .4-1.5.4l-2.3.1c-.3 0-.4-.5 0-.4.3 0 .4-.4.2-.7l-.9-3zm5-.2c0-.3-.2-.8-.6-1-.2 0-.6 0-.6-.3.2-.3.6 0 1-.1h2c.8 0 1.5.6 1.7 1.4.2.4 0 1-.3 1.2l-.5.2c.6.2 1.1.7 1.4 1.2l.5.8c.3.2.3-.1.3-.3.4-.2.6.3.4.6-.1.4-.7.5-1 .4-.4 0-.6-.3-.8-.6l-1-1.7a.9.9 0 00-.9-.2v.5l.5 1.1c.1.4.5.4.8.5.4 0 .4.5 0 .4h-1.8c-.2 0-.6.2-.7 0-.2-.5.4-.3.6-.6l-.2-.8-.8-2.7zm1.3 1c.1.2.6 0 .8 0 .3 0 .5-.3.4-.5 0-.5-.2-1-.5-1.3-.3-.2-.7-.2-1-.1-.2 0-.1.3 0 .5l.3 1.3zm7-2.6c.2 0 .3.3.3.5 0 .3.2.5.3.8-.2.3-.5 0-.5-.2-.2-.2-.3-.6-.7-.6a9.5 9.5 0 00-1.3 0c-.2.1 0 .4 0 .6l.4 1.3h.8c.3-.2-.1-.7.2-.8.4 0 .4.4.4.7 0 .4.3.9.4 1.3-.1.3-.5 0-.5-.2 0-.3-.4-.5-.7-.4-.1 0-.5-.2-.4 0l.5 1.7c0 .3.4.3.7.3.4 0 .9 0 1.2-.2.3-.2 0-.6.1-.8.3-.2.6 0 .5.3l.2 1c0 .2-.3.2-.4.2h-3.1c-.3 0-.6.2-.8 0-.3-.4.3-.3.4-.5.2-.2 0-.5 0-.7l-.9-3.1c0-.3-.3-.7-.6-.7s-.6-.1-.5-.4h1l3-.1zm-32.9 13.1c-.1-.4-.2-.8-.6-1-.3 0-.7 0-.5-.3.3-.2.6 0 1-.1.8 0 1.6-.2 2.4 0a3.5 3.5 0 012.6 2.3c.2.8.3 1.6-.2 2.3-.5.6-1.4.8-2.2.8-.7 0-1.3 0-1.9.2-.2.1-.6-.1-.4-.4.3 0 .7-.2.6-.5l-.4-1.5-.4-1.8zm1.6 2.5c.1.3.2.7.4.9.3.2.7.1 1 0 .4 0 .8-.4.9-.9a4 4 0 00-.4-2.2 2 2 0 00-1.5-1.2 3 3 0 00-1.1 0c-.1 0 0 .2 0 .4l.7 3zm7.1-4.5c.3 0 .3.3.4.5l.2.9c-.1.2-.5 0-.5-.2-.1-.3-.3-.6-.6-.6a9.3 9.3 0 00-1.3 0c-.2.1 0 .4 0 .6 0 .5.2 1 .3 1.4.3 0 .6 0 .8-.2.2-.2-.1-.6.2-.7.4 0 .3.5.4.7 0 .4.3.8.3 1.3 0 .3-.5 0-.5-.2 0-.4-.4-.5-.7-.4-.1 0-.5-.1-.3.1 0 .5.2 1 .4 1.6 0 .3.4.3.7.3.4 0 .9 0 1.2-.3.2-.2 0-.6.2-.8.3-.2.4.1.4.4 0 .3 0 .6.2 1l-.5.1-3 .2c-.3 0-.6.2-.9 0-.2-.2.1-.4.4-.4.3-.1.2-.5.2-.7l-.8-3.2c-.1-.3-.3-.7-.6-.7s-.6-.1-.5-.4l1-.1 2.9-.2zm6.5 4.1c0 .3.3.6.6.6.2.1.6 0 .7.3.1.3-.4.2-.6.2l-1.7.1c-.3 0-.6.1-.8 0-.3 0-.2-.4.1-.4.3 0 .6-.1.7-.4l-.1-.8-.7-2.8c0-.3-.4-.3-.6-.3-.2 0-.6.2-.7-.1 0-.4.5-.3.7-.4l1.1-.4c.2 0 .3.1.3.3l1 4.1zm3.7-3.3c0-.4-.3-.8-.7-.8-.3 0-.7 0-.8.3a1 1 0 00.4 1l.9.5.2-.6a1.4 1.4 0 000-.4zm.8 3c0-.6-.5-.9-1-1-.2 0-.4-.3-.5-.2a1 1 0 00-.4 1c.2.6.5 1 1 1 .4.1.8 0 1-.4a1 1 0 000-.5zm1-.3a1.2 1.2 0 01-.6 1.3 2.4 2.4 0 01-2 .2 1.7 1.7 0 01-1.2-1.3c0-.4.1-1 .6-1.3 0 0 .4-.1.1-.2-.5-.2-1-.6-1-1.2-.2-.5 0-1 .5-1.3a2 2 0 012.6.7c.2.4.2.9 0 1.2l-.6.5c.5 0 1 .4 1.2.8.2.1.3.4.3.6zm3.2.5c.2 0 .5 0 .5-.4.1-.1 0-.6.3-.5.3 0 .2.3.3.6 0 .4 0 .8-.4 1.1-.2.2-.5.1-.8.1h-1.7c-.2 0-.5.2-.7 0-.2-.2 0-.5 0-.7.2-.7.6-1.2 1-1.6.4-.3.8-.6.9-1.1a2 2 0 00-.3-1.2 1 1 0 00-1.4-.3c-.3.1-.4.5-.3.7.2.2.6 0 .7.4.2.2 0 .6-.3.6-.4 0-.8-.3-1-.7a1.2 1.2 0 01.6-1.4c.5-.3 1.1-.3 1.7-.2.5.2 1 .6 1.2 1.2.1.4.1.9-.1 1.3-.4.7-1.1 1-1.7 1.7-.1.1-.2.3-.1.6 0-.3.4-.2.5-.2h1zm4-.4c0 .3.2.6.5.7.2 0 .6 0 .7.2.1.3-.3.3-.5.3h-2.7c-.2-.1 0-.5.2-.4.3 0 .6-.1.7-.4v-.8l-.7-2.8c0-.3-.3-.3-.5-.3-.3 0-.6.2-.7 0-.2-.5.3-.4.5-.5l1.2-.4c.2 0 .3.1.4.3l.8 4.1z"/>
+    </g>
+    <g fill="#448127" stroke="#34541f" stroke-width=".2">
+      <path fill="url(#m)" stroke="#4c0505" d="M475.8 219.4L472 224c-1.2 5.2 1.8 9.2 7.7 12.6 4.7 3 13.5 3.7 16.3 1.3l-13.7-13-6.5-5.4z"/>
+      <path d="M503.6 354.3a322.5 322.5 0 00-2-2.5 100.5 100.5 0 01-32.7 28.6c15.1-4.3 25-15.2 34.7-26.1zM488 390a460 460 0 0118.2-32.3 274.3 274.3 0 00-2.1-2.7c-7.3 12.2-16 26.7-16 35zm42-114.5a62 62 0 00-4.3-13 126.5 126.5 0 00-43.8-44v-.3h.3l-.2-.1h.5l-.2-.3h.4l-.3-.4h.4l-.3-.3h.5l-.3-.4h.4l-.4-.3.6-.1-.5-.3.5-.1-.4-.3.6-.2-.5-.3.6-.3-.6-.4.7-.2-.7-.3.6-.4h-.8l.5-.7h-.7l.3-.5h-.6l.3-.5-.7.1.3-.6-.6.4.2-.7-.7.4.1-.7-.5.5v-.7l-.5.5v-.7l-.5.6v-.7l-.4.6-.2-.7-.3.6-.2-.7-.3.8-.2-.8-.3.8-.2-.7-.2.6-.1-.5-.3.7-.2-.7-.2.8-.3-.7-.2.8-.3-.7v.8l-.4-.6v.8l-.5-.6v.7l-.4-.3.2.7-.5-.3.2.7-.4-.3.1.6h-.4l.2.4h-.3l.2.4a9 9 0 00-.4 3.5c0 .2.6.4.7.6.3.4.2.6.2.6-1.6 2.6-3 4.6-3.1 7.6 1.2-1.6 2.6-3.6 4.4-3.6-.9 1.5-1.3 6.1-.3 6.9l.8-1.4c0 1 .1 1.8.4 2.3l1-1.7c0 1.5.2 2.7.6 3.3a6 6 0 011.6-1.6c-.2.9-.5 1.7-.4 2.7l2-2.5c-.4 1.6 0 2.8.4 4.5.4-2 .6-2.3 1.5-3.1.1 1.9-.2 3.6.2 4.7.8-1.7 1.4-1.5 2-2.6-.2 1.6-.5 3.3 0 4.7a4.5 4.5 0 011.9-2.6c0 2.2.5 1.8-.8 3.7.6.2 2.5-.4 3.6-.9-.5 1.2-.4 2.1-.9 3 1-.6 2-1.5 2.9-2.4-.4 1.4-1.5 2.8-1 4.1.3-1.3 1.3-2.3 2.3-2.5-.2.7-.3 2.2-1.3 2.9 2.4.2 3.4-1.4 4.6-2.7-.1 1.4 0 2.4 1.6 4.3-.3-2.4.2-1.9 1.3-3.3.6 2.1 1.2 4.4 3.4 6-1-2.3-1-3.5-.6-4.9.3 1.5 1.7 3.3 2 4.7.3-1.6.5-3.1 1-4.1a20.2 20.2 0 011.4 5.6c.5-1 .9-2 1.1-3.1 19.8 20.6 24.2 46.8 2.6 74.5 7.7-5.2 9.7-13.5 14-20.6-4.2 9.3-6 19.7-13.5 27.4 7.2-6.2 8.7-11.9 13-17.9-4.5 12.5-11 26.2-19.8 38.8a690.6 690.6 0 014.8 5.2l4-6.9c9.4-15.4 24.7-37.5 17-71.1z"/>
+    </g>
+    <path fill="#eac102" stroke="#a08307" stroke-width=".2" d="M473.2 215.3c-1 .2-1.4.6-2.1 1.4.9.2 1.6.3 2.5.3.2 0 .3-.3.3-.6l-.2-1c0-.2-.6-.1-.8 0l.3-.1z"/>
+    <path fill="#a08307" d="M471 216.7a9.9 9.9 0 011-.3 9.8 9.8 0 011.2-.2 9.8 9.8 0 01-1 .3 10 10 0 01-1.2.2z"/>
+    <circle cx="477.7" cy="215.4" r=".8" stroke="#000" stroke-width=".1"/>
+    <circle cx="477.9" cy="215.3" r=".3" fill="url(#n)"/>
+    <g fill="#34541f">
+      <path d="M488.2 389.7a83.4 83.4 0 011.5-4.4 96.2 96.2 0 011.8-4.4c1.2-2.9 2.7-5.7 4.1-8.4a199.6 199.6 0 014.7-8.2 354.4 354.4 0 012.4-4l2.5-4-2.4 4a400 400 0 00-2.4 4.1l-4.6 8.2a133.7 133.7 0 00-4.2 8.4 98.1 98.1 0 00-1.8 4.3 82.7 82.7 0 00-1.6 4.4zm-18.9-9.5a75.8 75.8 0 005-2.3 72.3 72.3 0 004.6-2.7 72 72 0 008.8-6.5 84.7 84.7 0 007.7-7.5 113.6 113.6 0 003.6-4.1l3.4-4.3a153.8 153.8 0 01-3.3 4.3 111.9 111.9 0 01-3.6 4.2 81.9 81.9 0 01-7.7 7.6 70 70 0 01-8.8 6.4 71.3 71.3 0 01-4.7 2.6 77 77 0 01-5 2.3zm37.3-29.3a138.7 138.7 0 004.3-6.7l4-6.8a341.8 341.8 0 003.7-7l3.7-7-1.7 3.5-1.8 3.6a256 256 0 01-3.7 7 160.5 160.5 0 01-4 6.8 93.5 93.5 0 01-4.5 6.6zm6-25.1a58.4 58.4 0 004.6-6.4 60.2 60.2 0 003.8-7 72.6 72.6 0 005-15l.4-2a61 61 0 00.7-6 52 52 0 000-7.9 50.6 50.6 0 00-1.3-7.8 53.4 53.4 0 00-2.4-7.6 53.5 53.5 0 012.5 7.5 50.5 50.5 0 011.3 7.9c.2 2.6.2 5.3 0 8a61.3 61.3 0 01-.6 6 90.3 90.3 0 01-.4 1.9 72.7 72.7 0 01-5 15 59.9 59.9 0 01-4 7 58.2 58.2 0 01-4.7 6.4z"/>
+      <path d="M510.9 320a36 36 0 004.9-5.8 52 52 0 003.8-6.6 96 96 0 003-7c.4-1.2 1-2.4 1.3-3.6l.4-.9.3-.9.6-1.8c.5-2.5.7-5.1.8-7.7a45.8 45.8 0 00-.6-7.7c-.4-2.5-1-5-1.7-7.5a80.2 80.2 0 00-2.6-7.3 80.3 80.3 0 012.7 7.3 57.4 57.4 0 011.7 7.5 46 46 0 01.6 7.7 41.4 41.4 0 01-.7 7.7l-.6 1.9-.3.9-.4.9-1.3 3.6a96 96 0 01-3.1 7 51.6 51.6 0 01-3.8 6.6 36 36 0 01-5 5.8z"/>
+      <path d="M505 349.2c1.3-1.6 2.4-3.3 3.6-5l1.8-2.5 1.7-2.5a68.8 68.8 0 003-5.4l2.6-5.5c1.8-3.7 3.5-7.4 5-11.3a75.3 75.3 0 003.5-11.7c.8-4 1.4-8 1.9-12.1.4-4.1.4-8.2 0-12.3a52.4 52.4 0 00-2.7-12 72.8 72.8 0 00-5.1-11.1 72.8 72.8 0 015.2 11.1 52.4 52.4 0 012.7 12c.5 4 .4 8.2 0 12.3-.4 4-1 8.1-1.8 12.1a75.5 75.5 0 01-3.5 11.8 145.1 145.1 0 01-5 11.2l-2.7 5.5a67.3 67.3 0 01-3 5.4c-.5 1-1.1 1.7-1.7 2.6l-1.8 2.5-3.6 5z"/>
+      <path d="M507.8 352.3l7-11.6a200.5 200.5 0 006.4-11.9 82 82 0 005-12.5c.7-2.2 1.2-4.3 1.7-6.5a59.3 59.3 0 00.6-3.4 127.7 127.7 0 001.4-16.8c0-4.5-.4-9-1.2-13.4a57.5 57.5 0 00-4-12.9 54 54 0 00-7-11.5 54 54 0 017 11.5 57.6 57.6 0 014.1 12.9 73.4 73.4 0 011.2 13.4c0 4.5-.3 9-.9 13.5a134 134 0 01-.4 3.4 58.8 58.8 0 01-.6 3.3 74.3 74.3 0 01-1.7 6.5 82 82 0 01-5 12.6c-2 4-4.3 8-6.5 11.8a442.5 442.5 0 01-7 11.5zM480 220.8h1.4a18.7 18.7 0 014.1 1.3c1.7.8 3.4 1.8 4.9 3a35.8 35.8 0 014.3 3.7 45.3 45.3 0 011.8 2.1l1.8 2.3a60.9 60.9 0 00-1.8-2.2 42 42 0 00-2-2 37.8 37.8 0 00-4.2-3.8 26.8 26.8 0 00-4.9-3 18 18 0 00-5.4-1.4z"/>
+    </g>
+    <g fill="#448127">
+      <path d="M496.4 231.6s3 1.8 4.7 4.4c0 0-4.7-.9-8-4.6"/>
+      <path fill="#34541f" d="M496.4 231.6a14.1 14.1 0 012.6 1.9 13 13 0 012.2 2.4l.1.3h-.2a14.5 14.5 0 01-2.3-.8 15.7 15.7 0 01-2.1-1c-1.4-.8-2.6-1.8-3.7-3a15.2 15.2 0 003.8 2.8 18.3 18.3 0 002 1 14.4 14.4 0 002.3.7v.2a11.2 11.2 0 00-1-1.3l-1.2-1.2a17.7 17.7 0 00-1.2-1 18.6 18.6 0 00-1.3-1z"/>
+      <path d="M489.6 230.7s7.2 4.6 8.2 5c0 0-1.6-3.5-5-5"/>
+      <path fill="#34541f" d="M489.6 230.7l4.1 2.5a139.9 139.9 0 003.1 1.8l1 .6v.1a10.7 10.7 0 00-1-1.5l-1.1-1.4a10.7 10.7 0 00-1.4-1.2l-1.5-.9a8.4 8.4 0 011.6.9 11.1 11.1 0 013.5 4l.2.3-.3-.1-2.1-1.2-2-1.3a151.6 151.6 0 01-4.1-2.6z"/>
+      <path d="M492.5 228.4s3.7 1.6 4.6 4.3c0 0-6.8-2.8-8-4.3"/>
+      <path fill="#34541f" d="M492.5 228.4a10.7 10.7 0 012.8 1.6 7.2 7.2 0 011.1 1.2l.8 1.5v.2h-.2a79.6 79.6 0 01-2-1 49.8 49.8 0 01-2.1-1 34 34 0 01-2-1.1l-1-.6-.8-.8.9.7 1 .6 2 1a84.2 84.2 0 004.1 2h-.1a4.8 4.8 0 00-.8-1.3 7.8 7.8 0 00-1-1.2 12.5 12.5 0 00-2.8-1.8z"/>
+      <path d="M486.8 231.3s6.6 4.7 8.6 4.7c0 0-2-3.3-5.4-4.7"/>
+      <path fill="#34541f" d="M486.8 231.3a127 127 0 004.1 2.6 35 35 0 003.3 1.7l1.2.3-.1.2a15.5 15.5 0 00-2.3-2.8l-1.4-1.1a11 11 0 00-1.6-1c1.1.5 2.2 1.2 3 2a12.8 12.8 0 012.5 2.8v.1h-.1a3.7 3.7 0 01-1.3-.3 13.7 13.7 0 01-1.1-.5 33.3 33.3 0 01-2.1-1.2 63.9 63.9 0 01-2.1-1.4 56.3 56.3 0 01-2-1.4z"/>
+      <path d="M486.8 232.7s3.4 3 5.4 3c0 0-2-3.3-5.4-4.8"/>
+      <path fill="#34541f" d="M486.8 232.7a31.2 31.2 0 002.5 1.8l1.4.7a5.3 5.3 0 001.5.4l-.1.1a12.4 12.4 0 00-1-1.4 13.3 13.3 0 00-2.7-2.5 11 11 0 00-1.6-.9c1.1.5 2.2 1.1 3 2a12.9 12.9 0 012.5 2.7v.2h-.1c-.6 0-1-.2-1.6-.4a11.4 11.4 0 01-1.4-.8l-1.2-.9a17.6 17.6 0 01-1.2-1z"/>
+      <path d="M485 226.2s7.2 5.1 8 7.9c0 0-6.4-3-7.6-4.5"/>
+      <path fill="#34541f" d="M485 226.2a51.6 51.6 0 012.3 1.7 51 51 0 012.2 1.8 25.7 25.7 0 012 2l1 1 .7 1.4v.2l-.2-.1a77 77 0 01-2-1 50.3 50.3 0 01-2-1 34.8 34.8 0 01-1.9-1.2 15.4 15.4 0 01-1-.7 4 4 0 01-.7-.7l.8.7a36.7 36.7 0 003 1.7 87.3 87.3 0 004 2l-.2.1a4.6 4.6 0 00-.7-1.2 12.2 12.2 0 00-.9-1.1l-2-2a51.1 51.1 0 00-2.1-1.9 71.2 71.2 0 00-2.3-1.7z"/>
+    </g>
+    <g stroke="#24420e" stroke-width=".2">
+      <path fill="#406325" d="M445 370.3a42.2 42.2 0 01-20.4 4.8c10-8.2 19.7-8.4 20.4-4.8zm69.8 4.5c5.2 4.7 21 8 23.5 7.4-10.6-10.7-22.1-11.8-23.5-7.4z"/>
+      <path fill="#67923d" d="M445 370.3c-.7-3.7-10.5-3.5-20.4 4.8a69.4 69.4 0 0120.4-4.8zm69.9 4.4c1.4-4.4 12.8-3.3 23.4 7.5a84 84 0 00-23.4-7.5z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gu.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gu.svg
new file mode 100644
index 0000000..00e8615
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gu.svg
@@ -0,0 +1,39 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gu" viewBox="0 0 640 480">
+  <path fill="#be0027" fill-rule="evenodd" d="M0 0h640v480H0z"/>
+  <path fill="#3b5aa3" fill-rule="evenodd" d="M25.6 27.3h589.5v428.4H25.6z"/>
+  <path fill="#cbe0e5" fill-rule="evenodd" d="M314.4 413.2a10 10 0 008.4.1c137.8-73.3 137.8-274.3.1-346.6a10 10 0 00-8.7.2c-134.3 73.4-134.7 272.1.1 346.3z"/>
+  <path fill="#add2d9" fill-rule="evenodd" d="M314.4 416.9c2 1.7 6.4 1.5 8.4 0 101.5-76 102-123.3 97.6-123.3h-201c-3 0 1.8 48.2 95 123.3z"/>
+  <path fill="#fdf9a1" fill-rule="evenodd" d="M235.3 331.2a39.2 39.2 0 0127.9 1.7c7.6 4 12 4 20.2 4 8.6.2 15.3 6.5 24.6 6.8 17.1.4 24.3 8.9 11 9-6.2 0-19.7-4.3-26.2-3.4-13.6 1.4-22.2 4.4-35 18.7l14.8 10c12.8-5.1 14.9-11 22-11.2 8-.3 10.7-5.2 20-5.2a92.6 92.6 0 0033-3.2c14.8-3.4 7.8-13.8-1.2-17.5-7.3-3.1-20.8-.1-29.2-3.2-6.4-2.5-1.2-6.5 2.3-7.3 3.4-.7 7.1.5 11.4 1.2 7.7.6 17.4-.1 24.1-1.2 14-2.1 13.4-6.2 20-6.3 5-.3 8.7-1.7 12-4.1 4-2.7 8.1-8 12.9-7.8l12.7.5-18 40.4-50.7 51.7-26.3 10-57.8-37.7-29.1-44.7 4.7-1.2z"/>
+  <path fill="#179a3b" fill-rule="evenodd" d="M301.8 292l116-.6 2-10.3s-4.1-.6-7.5-.8c-4.1-.3-11.3 4.4-16 4.3-3.5 0-7.3-6-10.7-6-6 0-6.4 5.3-12 5.5-4.5-.2-6.4-3.6-12.3-3.2-6 .3-5.6 3.7-13.3 3.5-10.2-.3-14.3-9.1-22.5-9.2-13.6-.2-14 13-23.8 16.7z"/>
+  <path fill="#fdf9a1" fill-rule="evenodd" d="M301.8 294.4l119.4-.6v-3.2l-122.2.6 2.7 3.2z"/>
+  <path fill="#a79270" fill-rule="evenodd" d="M350.8 330.3c1.9 7 3.8 9.4 11.2 11.3 7.3 1.7 18.5-5.4 11.6-12.3-6.6-6.4-13.6-8-19.5-13.8-12.5-12.3-31.3-42.5-31.3-63.8 0-18.3-1.8-55.8-1.8-91.3 0-2.3-7 6.4-7 8.8.4 31.3.4 55 1.6 86.6 2 23.1 13 38.7 22.7 52.7 4.3 6.8 10.6 14 12.5 21.8z"/>
+  <text x="465.1" y="269.5" fill="#bd0728" stroke="#fff" stroke-width="1.6" font-family="helvetica" font-size="25.6" transform="matrix(1.33 0 0 1.33 -363 -108)">
+    <tspan>G</tspan>
+  </text>
+  <text x="488.1" y="269.6" fill="#bd0728" stroke="#fff" stroke-width="1.6" font-family="helvetica" font-size="25.6" transform="matrix(1.33 0 0 1.33 -363 -108)">
+    <tspan>U</tspan>
+  </text>
+  <text x="516" y="269.6" fill="#bd0728" stroke="#fff" stroke-width="1.6" font-family="helvetica" font-size="25.6" transform="matrix(1.33 0 0 1.33 -363 -108)">
+    <tspan>A</tspan>
+  </text>
+  <text x="539.5" y="269.5" fill="#bd0728" stroke="#fff" stroke-width="1.6" font-family="helvetica" font-size="25.6" transform="matrix(1.33 0 0 1.33 -363 -108)">
+    <tspan>M</tspan>
+  </text>
+  <path fill="#239e46" fill-rule="evenodd" d="M259.6 160.9c-1.5 3 3.6-.9 4.8-1.3 6.7-2.4 9.3-10.8 20.8-5.7 9 3.9 21.1 1.6 14.8 5.6-7.8 4.7-23.5 9.9-23.8 33.2 1.3 2.2 1.4 1.9 2.5-.6 2.4-5.4 13.7-20.1 19.3-18.9 2.3.6 8.9-6.7 9-4.6.7 5.8-9 17.6-8.8 33.3 0 3.7 4.5 4.9 6.6 2.3 2.2-2.3 3.4-4.6 7.2-7.6 6.6-5.4 4.8-28.6 5.6-27.5 4.7 6 5.4 23.3 12.4 30.3 5.9 5.9 10.6 3 9.3-5-2.5-16.4-10.2-11.7-13.9-28.6-.8-3.3-1-6.2 3.4-4.9 5.3 1.6 8.5 4 12.4 10 4 5.8 11.4 11.3 15.7 14.6 7.5 5.8 10.2.8 6.6-6.6a39.6 39.6 0 00-21-18.2c-6.2-2.2-8.4-2.4-13.8-3.4-1.5-.3-3-3.4-.4-5.1a42.5 42.5 0 0119.6-7.7c6.7-.2 12 5.2 16.7 6.6 9.4 2.4 9.4-3.5 5.2-8-3.4-3.7-10.6-10-17.3-9.1-13.5 1.7-12.6 1.3-21 6.8-3 1.8-6.4 3.8-5.1 1.6 3-5.5.2-4.5 4.9-10.1 3.6-4 6.3-7 10-8 3.4-.9 8-4.5 9.3-6.4 3.4-4.6.5-7.3-4.7-5.7-4.6 1.2-7 4.2-10 5-7.4 2.4-13.3 19-14.2 21.4-1.1 2.8-2.4 1.4-2.2-1 1-11.7 2-31.5-2-39.6-6.4-12-5.8-6.4-8.2-.7-3.6 9-2.3 17.5 0 26.3 1 4.4 4.6 9.4 5.3 12.9.5 2.7-1.6-.8-2.8-2.5-3.9-6-6.8-10-13.2-13.3a35.3 35.3 0 00-20.2-2c-1.8.6 2 3.2 3.5 4.4 4.3 3.4 12.4 4.5 18 7.9 4.6 2.9 8.2 4.7 9.8 8.7.6 3 1.6 7.4-.4 7.3-5.1-.3-13-4.8-29.4-3-8.4 1.2-15.6 8.3-20.3 16.9z"/>
+  <path fill-rule="evenodd" d="M295.3 310.6h4.7v7.9h-4.7z"/>
+  <path fill="#fdf9ff" fill-rule="evenodd" d="M271.7 257.9c18.8 26 49 41.2 49.6 53h-58.8c13.5-16.2 21.8-27.2 9.2-53z"/>
+  <path fill="#a68861" fill-rule="evenodd" d="M254.6 311.5c25.6 5.7 56.1 8.9 75.6-.8.2 5.7-6.3 14-11.7 14h-49c5.7-.9 9-2.6 18.2-3l-26 .2c-3 .1-8-7.6-7.1-10.4z"/>
+  <path fill="#be0027" fill-rule="evenodd" d="M312.6 425c2.6 1.5 6.7 1.4 9 .2 147.8-78.7 147.9-294.4.2-372a10.7 10.7 0 00-9.4.2c-144 78.8-144.4 292 .2 371.7zm.7-17.7a9.3 9.3 0 008 .1c123.6-72.8 125.1-265.1.1-334-2.4-1.8-5.9-1.2-8.3 0-118.4 70.1-125 254.5.2 333.9z"/>
+  <text x="465.1" y="269.5" fill="#bd0728" font-family="helvetica" font-size="25.6" transform="matrix(1.33 0 0 1.33 -363 -108)">
+    <tspan>G</tspan>
+  </text>
+  <text x="488.1" y="269.6" fill="#bd0728" font-family="helvetica" font-size="25.6" transform="matrix(1.33 0 0 1.33 -363 -108)">
+    <tspan>U</tspan>
+  </text>
+  <text x="516" y="269.6" fill="#bd0728" font-family="helvetica" font-size="25.6" transform="matrix(1.33 0 0 1.33 -363 -108)">
+    <tspan>A</tspan>
+  </text>
+  <text x="539.5" y="269.5" fill="#bd0728" font-family="helvetica" font-size="25.6" transform="matrix(1.33 0 0 1.33 -363 -108)">
+    <tspan>M</tspan>
+  </text>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gw.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gw.svg
new file mode 100644
index 0000000..ae17314
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gw.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-gw" viewBox="0 0 640 480">
+  <path fill="#ce1126" d="M0 0h220v480H0z"/>
+  <path fill="#fcd116" d="M220 0h420v240H220z"/>
+  <path fill="#009e49" d="M220 240h420v240H220z"/>
+  <g id="b" transform="matrix(80 0 0 80 110 240)">
+    <path id="a" d="M0-1v1h.5" transform="rotate(18 0 -1)"/>
+    <use width="100%" height="100%" transform="scale(-1 1)" xlink:href="#a"/>
+  </g>
+  <use width="100%" height="100%" transform="rotate(72 110 240)" xlink:href="#b"/>
+  <use width="100%" height="100%" transform="rotate(144 110 240)" xlink:href="#b"/>
+  <use width="100%" height="100%" transform="rotate(-144 110 240)" xlink:href="#b"/>
+  <use width="100%" height="100%" transform="rotate(-72 110 240)" xlink:href="#b"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gy.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gy.svg
new file mode 100644
index 0000000..e957f3e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/gy.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-gy" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="#399408" d="M2.4 0H640v480H2.4z"/>
+    <path fill="#fff" d="M.2 0c-.9 0 619.6 241.5 619.6 241.5L0 479.8.2 0z"/>
+    <path fill="#ffde08" d="M.3 20.2c3.4 0 559 217.9 555.9 220L1.9 463.2.3 20.3z"/>
+    <path d="M1.9.8c1.8 0 290.9 240.9 290.9 240.9L1.8 477V.8z"/>
+    <path fill="#de2110" d="M.3 33.9c1.6-15 260.9 208.4 260.9 208.4L.2 451.7V33.9z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/hk.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/hk.svg
new file mode 100644
index 0000000..9e45292
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/hk.svg
@@ -0,0 +1,30 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-hk" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="hk-a">
+      <path fill-opacity=".7" d="M-89 0h682.6v512H-89z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#hk-a)" transform="translate(83.5) scale(.94)">
+    <path fill="#ba0000" fill-rule="evenodd" d="M618 512h-731.4V0H618z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M241.9 247.8s-51.6-22.2-44.2-79.8c7.1-27.7 19.8-46.6 42.7-56.9 10.8-3.3 21.8-4.8 33-5.7-3 2.8-5.4 5.6-6.7 9-2.4 6.4-.6 12.4 2.7 18.5 4.1 7 6.6 14.2 7.4 23.6a36.6 36.6 0 01-14.6 33.7c-6.6 5.1-14.4 6.9-20.8 12.7-5 4.8-8 9.7-9 18.1-.2 16.1 4.1 18.4 9.5 26.8z"/>
+    <path fill="#ba0000" fill-rule="evenodd" stroke="#000" stroke-width="2.1" d="M232 164.5v-.3"/>
+    <path fill="none" stroke="#ba0000" stroke-width="2.1" d="M235.3 241.8c-20-17.7-18.3-62.4-3-77.3"/>
+    <path fill="#ba0000" fill-rule="evenodd" d="M244.6 154.5l3.3 5.5-6-2.5-4.7 5 .8-6.5-6-2.5 6.5-1.5.8-6.4 3.3 5.5 6.6-1.5"/>
+    <path fill="#fff" fill-rule="evenodd" d="M246.3 244s6-55.9 63.3-65.7c28.6-1.2 50.4 5.3 67 24.3 6.3 9.3 10.9 19.4 15 29.8-3.5-2-6.8-3.5-10.6-3.7-6.7-.5-12 3-16.8 7.9a53.2 53.2 0 01-20.4 14 36.6 36.6 0 01-36.5-4c-6.8-4.9-10.8-11.8-18.2-16.2a28.2 28.2 0 00-20-3.4c-15.5 4.6-16.3 9.4-22.8 17z"/>
+    <path fill="#ba0000" fill-rule="evenodd" stroke="#000" stroke-width="2.1" d="M323 210.2h.3"/>
+    <path fill="none" stroke="#ba0000" stroke-width="2.1" d="M250 236c11.2-24.4 54.4-35.8 73.1-25.6"/>
+    <path fill="#ba0000" fill-rule="evenodd" d="M336.3 219.3L332 224l.6-6.5-6-3 6.3-1 .6-6.7 3.4 6 6.4-1.2-4.3 4.7 3.3 6"/>
+    <path fill="#fff" fill-rule="evenodd" d="M250.1 248s55-12 82.4 39.3c10.3 26.7 11 49.4-1.7 71.1-6.8 9-15 16.5-23.5 23.8.8-4 1.1-7.6.1-11.2-1.6-6.6-6.6-10.5-12.8-13.5a53.1 53.1 0 01-19.8-15 36.6 36.6 0 01-7.7-35.8c2.4-8 7.7-14 9.5-22.4a28 28 0 00-3.1-20c-9.3-13.2-14.1-12.5-23.4-16.3z"/>
+    <path fill="#ba0000" fill-rule="evenodd" stroke="#000" stroke-width="2.1" d="M306.5 310.1l.2.2"/>
+    <path fill="none" stroke="#ba0000" stroke-width="2.1" d="M259 249c26.6 2.9 51.1 40.2 47.4 61.3"/>
+    <path fill="#ba0000" fill-rule="evenodd" d="M302.1 325.6l-5.9-2.6 6.5-1.5.8-6.7 3.1 5.7 6.5-1.5-4.5 5 3 5.7-5.8-2.6-4.5 5.1"/>
+    <path fill="#fff" fill-rule="evenodd" d="M248.9 253.7s26.9 49.4-14.5 90c-22.8 17.4-44.4 24.5-68.8 18.4-10.5-4-20-9.7-29.5-15.9 4-.3 7.7-1 10.9-3 5.8-3.4 8.1-9.3 9.3-16a53 53 0 018.8-23.3 36.6 36.6 0 0132.2-17.5c8.4.1 15.6 3.6 24.2 3 6.9-.9 12.3-2.8 18.4-8.8 10-12.5 8-17 9-27z"/>
+    <path fill="#ba0000" fill-rule="evenodd" stroke="#000" stroke-width="2.1" d="M205.1 325.3l-.1.2"/>
+    <path fill="none" stroke="#ba0000" stroke-width="2.1" d="M250.3 262.4c4.9 26.4-24.1 60.5-45.4 62.7"/>
+    <path fill="#ba0000" fill-rule="evenodd" d="M189 325.4l.9-6.4 3.3 5.7 6.6-1-4.6 4.6 3.3 5.7-6.1-2.9-4.6 4.6.8-6.4-6.1-2.9"/>
+    <path fill="#fff" fill-rule="evenodd" d="M242.8 252.6S205.2 294.4 153 269c-24-15.7-37.8-33.8-40.1-58.8.3-11.3 2.4-22.1 5.1-33 1.7 3.6 3.6 6.8 6.5 9.2 5.1 4.3 11.5 4.5 18.3 3.4a52 52 0 0124.7.6 36.6 36.6 0 0127.3 24.6c2.7 7.9 1.8 15.9 5.3 23.8 3 6.2 6.6 10.6 14.3 14.4 15.2 5.3 18.7 1.9 28.4-.5z"/>
+    <path fill="#ba0000" fill-rule="evenodd" stroke="#000" stroke-width="2.1" d="M160.7 235.2l-.2-.1"/>
+    <path fill="none" stroke="#ba0000" stroke-width="2.1" d="M235 256.9c-23.2 13.3-65-2.7-74.2-22"/>
+    <path fill="#ba0000" fill-rule="evenodd" d="M155.3 220l6.3-1.3-4.3 5 3.1 5.9-5.8-2.8-4.3 5 .7-6.8-5.9-2.8 6.3-1.3.7-6.8"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/hm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/hm.svg
new file mode 100644
index 0000000..a9dda07
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/hm.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-hm" viewBox="0 0 640 480">
+  <g stroke-width="1pt">
+    <path fill="#006" d="M0 0h640v480H0z"/>
+    <path fill="#fff" d="M0 0v30.6l372.6 243h46.9V243L46.9 0H0zm419.5 0v30.6l-372.6 243H0V243L372.6 0h46.9z"/>
+    <path fill="#fff" d="M174.8 0v273.6h69.9V0h-70zM0 91.2v91.2h419.5V91.2H0z"/>
+    <path fill="#c00" d="M0 109.4v54.8h419.5v-54.8H0zM188.8 0v273.6h42V0h-42zM0 273.6l139.8-91.2h31.3L31.3 273.6H0zM0 0l139.8 91.2h-31.2L0 20.4V0zm248.4 91.2L388.2 0h31.3L279.6 91.2h-31.2zm171 182.4l-139.7-91.2h31.2l108.6 70.8v20.4z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M125.5 416.5L98 414l23.8-14-15.3-23 25.8 9.7 8.4-26.3 8.5 26.3L175 377l-15.3 23 23.7 14-27.5 2.5 3.8 27.3-19-20-19 20m370.5 1.9l-19.4-1.7 16.7-10-10.7-16 18.1 6.8 6-18.5 6 18.5 18-6.9-10.7 16.2L533 444l-19.3 1.7 2.7 19.2-13.4-14-13.4 14m2.7-307l-19.4-1.7 16.7-9.9-10.7-16.2 18.1 7 6-18.6 6 18.5 18-6.9-10.7 16.2 16.7 10-19.3 1.6 2.7 19.2-13.4-14-13.4 14m-105.2 97.7l-19.4-1.7 16.7-9.9-10.8-16.1 18.2 6.8 6-18.5 5.9 18.5 18.2-6.8-10.8 16.1 16.7 10-19.3 1.6 2.6 19.3L395 280l-13.4 14M588 246l-19.4-1.6 16.8-10-10.8-16.1 18.2 6.9 5.9-18.5 6 18.5 18-7-10.6 16.2 16.7 10-19.4 1.6 2.7 19.3-13.4-14.1-13.4 14M563 305.7l-9.5 8 3 12-10.6-6.5-10.5 6.6 3-12-9.6-8.1 12.4-1 4.7-11.4 4.7 11.5"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/hn.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/hn.svg
new file mode 100644
index 0000000..47af518
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/hn.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-hn" viewBox="0 0 640 480">
+  <path fill="#0073cf" d="M0 0h640v480H0z"/>
+  <path fill="#fff" d="M0 160h640v160H0z"/>
+  <g id="c" fill="#0073cf" transform="translate(320 240) scale(26.66665)">
+    <g id="b">
+      <path id="a" d="M-.3 0l.5.1L0-1z"/>
+      <use width="100%" height="100%" transform="scale(-1 1)" xlink:href="#a"/>
+    </g>
+    <use width="100%" height="100%" transform="rotate(72)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(-72)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(144)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(-144)" xlink:href="#b"/>
+  </g>
+  <use width="100%" height="100%" transform="translate(133.3 -42.7)" xlink:href="#c"/>
+  <use width="100%" height="100%" transform="translate(133.3 37.3)" xlink:href="#c"/>
+  <use width="100%" height="100%" transform="translate(-133.3 -42.7)" xlink:href="#c"/>
+  <use width="100%" height="100%" transform="translate(-133.3 37.3)" xlink:href="#c"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/hr.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/hr.svg
new file mode 100644
index 0000000..7b699d3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/hr.svg
@@ -0,0 +1,58 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-hr" viewBox="0 0 640 480">
+  <path fill="#171796" d="M0 0h640v480H0z"/>
+  <path fill="#fff" d="M0 0h640v320H0z"/>
+  <path fill="red" d="M0 0h640v160H0zm320 364.1c51.3 0 93.3-42 93.3-93.3V160H226.7v110.8c0 51.4 42 93.4 93.3 93.4z"/>
+  <path fill="#fff" d="M320 362.6a91.8 91.8 0 0091.6-91.5V161.8H228.5V271a91.8 91.8 0 0091.5 91.5z"/>
+  <g fill="red">
+    <path d="M267.1 165.2H232v38.7h35.2zm0 77.4h35.3v-38.7H267zM232 270.9c0 3.5.2 7 .6 10.4h34.6v-38.7H232v28.3zm105.7-28.3h-35.2v38.7h35.2zm0 77.4h35.2v-38.7h-35.2zm35.2 21.2A89.2 89.2 0 00393 320h-20v21.2zM267.1 320h35.3v-38.7H267zm-20.1 0a89.2 89.2 0 0020.1 21.2V320H247zm79.1 38.7c4-.3 7.7-.8 11.5-1.6V320h-35.2v37.1a87 87 0 0011.4 1.6c4.1.3 8.2.2 12.3 0z"/>
+    <path d="M407.4 281.3c.4-3.4.6-6.9.6-10.4v-28.3h-35.2v38.7h34.6zm-69.8-38.7h35.2v-38.7h-35.2zm0-77.4h-35.2v38.7h35.2zm70.4 38.7v-38.7h-35.2v38.7z"/>
+  </g>
+  <path fill="#fff" d="M410 158.8l21.8-49.5-16.6-26.8-27.6 10.2-19.4-22.2-25.4 14.7L320 66.5l-22.7 18.6-25.5-14.6-19.4 22.2-27.6-10.3-16.6 27 21.8 49.4a217.8 217.8 0 0190-19.3c32 0 62.5 6.9 90 19.3z"/>
+  <path fill="#0093dd" d="M253 94.8l-27.4-10-15.3 24.7 5.9 13.3 14.8 33.7a219.7 219.7 0 0134.6-12L253 94.8z"/>
+  <path fill="#fff" stroke="#000" stroke-width=".3" d="M251.4 119.3a13.3 13.3 0 011.6 6.2c0 7.3-6 13.3-13.4 13.3a13.4 13.4 0 01-13.1-10.8 13.4 13.4 0 0011.7 6.9 13.4 13.4 0 0013.2-15.6z"/>
+  <path d="M227.6 114l1-4.9-3.8-3.2-.1-.1.2-.1 4.6-1.6 1-4.8v-.2l.2.1 3.7 3.2 4.6-1.6h.2v.2l-1 4.8 3.7 3.2.2.2h-.3l-4.6 1.6-1 4.8v.2l-.1-.1-3.7-3.2-4.6 1.6h-.3z"/>
+  <path fill="#f7db17" d="M233.6 107.6l3.5 3 4.3-1.5zm0-.2l7.8 1.6-3.4-3zm-8.3-1.6l7.8 1.5-3.5-3zm7.8 1.7l-7.8-1.5 3.4 3zm.4-.3l5.2-6-4.3 1.5zm-5.6 6.4l5.2-6-4.3 1.5zm5.3-5.9l-5.2 6 4.3-1.5zm5.6-6.4l-5.2 6 4.3-1.5zm-5.6 6l-2.6-7.6-.9 4.5zm2.7 8l-2.5-7.5-.9 4.5zm-2.4-7.6l2.6 7.5.9-4.5zm-2.7-8l2.5 7.5 1-4.5z"/>
+  <path fill="#171796" d="M297.5 87.4L272.1 73 253 94.9l12.6 49.6a219.8 219.8 0 0136.1-6l-4.2-51.1z"/>
+  <path fill="red" d="M262.5 132.2a232.3 232.3 0 0138.2-6.4l-1-12.9a245.6 245.6 0 00-40.4 6.7l3.2 12.6zm-6.3-25a258 258 0 0142.4-7l-1.1-12.7a270.7 270.7 0 00-44.5 7.4l3.2 12.3z"/>
+  <g transform="translate(-160) scale(.00237)">
+    <path fill="#0093dd" d="M212105 36890l-23 13-9517-7794-9497 7778 1788 21560c2543-210 5113-322 7709-322 2608 0 5190 113 7744 325l1795-21560z"/>
+    <g id="a">
+      <path d="M202545 46585c-18-2-44 10-69 45-186 250-359 469-545 720-195 61-242 180-167 348-261-26-291 193-302 432-250-379-522-482-814-307-11-230-187-338-439-392-180-10-319-65-436-145-60-42-110-64-170-106-126-88-226-5-172 74 267 434 535 868 802 1302-14 80 6 151 88 204 47 133 93 265 140 397-11 38-21 75-32 113-221-105-443-118-664-133-170-8-287-50-361-137-54-63-91-26-92 82-3 534 162 1014 599 1492-231 4-462 11-694 21-79 6-95 39-73 104 126 304 339 579 822 766-208 112-327 285-357 520-9 224-75 382-212 455-60 32-81 65-24 106 253 185 565 193 895 112-157 270-226 553-198 850 208 56 412 15 614-52-29 61-44 175-52 309-7 115-41 229-104 343-32 33-65 84 4 102 336 91 648 52 915-47 0 243 2 487 76 727 18 58 70 102 125 26 155-214 322-396 527-517 31 90 75 168 156 215 96 55 147 170 153 343 0 30-2 60 35 90 149 7 514-380 589-597 206 121 284 246 439 461 55 76 99 29 128-25 62-243 67-481 66-724 267 99 579 138 915 47 69-19 36-70 4-102-62-114-105-250-113-365-9-133-14-226-43-287 202 68 405 108 614 52 29-297-53-579-211-850 330 80 655 73 908-112 57-41 35-74-24-106-136-73-203-231-212-455-30-235-149-409-357-520 483-187 696-463 822-766 22-66 6-99-73-104-231-10-480-24-711-27 437-478 606-961 604-1495-1-108-38-146-92-82-74 87-179 137-348 146-222 15-435 24-656 128-11-38-21-75-32-113 46-132 106-260 153-393 82-53 102-123 88-204 267-434 513-868 781-1302 54-79-46-162-171-74-60 42-110 64-170 106-117 80-257 134-437 145-251 54-417 167-428 397-293-175-564-73-814 307-11-239-41-457-302-432 75-168 17-291-178-352-186-250-458-470-644-720-31-35-51-47-69-45z"/>
+      <g fill="#f7db17">
+        <path d="M205075 47978c-51-26-124 17-162 95s-33 170 19 196c40 20 84-6 119-56l22-36c2-3 4-6 5-9 38-78 49-163-2-188zm-5008 0c52-26 124 17 162 95s39 165-13 191-103-24-141-102-60-158-9-184zm4539 905c-32 0-59 27-59 59s26 59 59 59 59-26 59-59c0-32-26-59-59-59zm-4032 0a59.1 59.1 0 10.2 118.2 59.1 59.1 0 00-.2-118.2zm4294-304c-754-91-1506-133-2260-133s-1509 41-2269 115c-26 8-21 90 14 86 756-73 1507-113 2256-113 743 0 1485 40 2228 129 39 4 54-80 32-84z"/>
+        <path d="M200319 48495c768-75 1530-117 2289-116 754 0 1507 42 2261 133l111-184c-32 10-62 9-90-5-76-38-92-161-36-274 56-114 164-175 240-138 39 19 62 62 68 114l446-739c-204 130-328 214-581 252-281 41-409 139-368 307 38 156-57 133-201 54-314-171-541 71-652 353-73 186-159 181-168-13-4-70 0-131-7-200-21-223-89-286-216-224-161 78-175 25-137-58 28-60 86-128 66-221-9-67-66-92-151-98-182-244-467-483-649-727-182 244-374 483-556 727-86 5-142 30-152 98-20 93 52 157 80 217 38 82 23 135-137 57-127-61-186-3-207 220-7 69-10 139-13 209-9 194-95 199-168 13-111-282-352-524-667-353-145 79-203 102-182-54 23-172-107-266-388-307-253-37-377-122-581-252l419 682c12-25 29-45 53-57 76-38 184 24 240 138 56 113 40 237-36 274-10 5-21 8-32 10l100 163zm4389 911c-7 3-7 4-24 11-46 19-80 66-134 124-57 60-128 125-211 188-12 10-25 19-44-6s-7-35 6-44c80-62 149-124 204-182 30-32 56-63 77-92-95-11-190-21-284-30-79 24-157 55-222 95-59 35-107 77-137 125-8 14-16 27-44 11-27-16-19-30-11-44 35-58 91-107 158-147 33-20 69-38 106-54-107-9-214-18-321-25-22 13-42 29-61 47-20 19-39 42-56 67-9 13-18 26-44 8s-18-31-8-44c19-29 41-54 64-77l9-9c-80-5-161-10-241-14-2 2-5 5-8 7a340.4 340.4 0 00-93 126c-6 15-12 29-41 18-29-12-23-26-17-41 12-29 27-55 45-81 8-11 18-22 27-33-115-5-230-9-344-12-4 5-9 8-14 11-25 15-47 32-66 51s-35 40-48 63c-8 14-16 28-43 12-28-16-20-29-12-43 16-28 35-54 59-77 7-7 14-13 21-19-122-2-244-4-365-4-120 0-240 1-360 3 8 7 15 13 22 20 23 23 42 49 59 77 8 14 16 27-12 43s-35 2-44-12c-13-23-29-44-48-63s-41-36-66-51c-6-3-12-7-15-12-115 2-230 6-345 11 11 11 20 23 29 35 19 25 33 52 45 81 6 15 12 29-17 41s-35-3-41-18c-9-24-22-46-38-67-15-21-34-41-55-59-4-3-7-6-10-10-81 4-162 8-243 13 4 4 9 8 13 12 24 23 45 48 64 77 9 13 18 26-8 44s-35 5-44-8c-18-26-36-48-56-67s-41-35-64-49c-1-1-3-2-5-3-110 7-220 14-330 23 43 18 85 38 122 61 67 40 124 89 158 147 8 14 16 27-11 44-27 16-35 3-44-11-29-48-78-90-137-125-72-44-159-77-246-102h-2c-90 7-179 15-268 24 22 33 51 68 86 106 55 58 124 120 204 182 13 9 25 19 6 44s-32 15-44 6c-83-64-155-128-211-188-37-38-99-111-135-140-196-90-354-127-575-147-153-14-318-9-458-79 36 85 75 164 126 229 53 68 120 121 209 147 8 2 21 16 22 25 28 157 84 286 169 386 52 60 114 110 188 149-75-81-132-166-172-251-67-142-90-286-77-420 1-16 3-32 34-29 32 3 30 19 29 35-11 123 9 256 72 387 56 118 159 237 291 346 24 19 0 63-29 55-154-44-290-123-383-231-89-104-149-237-180-397-94-32-165-90-222-164-47-60-85-131-118-205 28 428 182 801 456 1137 61 75 165 182 255 216 92 35 95 100-20 101-34 1-69 1-105 1 84 31 164 66 233 105 127 73 217 162 224 273 1 16 2 32-29 34-32 2-33-14-34-29-6-86-82-160-192-223-113-65-259-117-402-160-154 0-312-1-459 3 39 28 80 57 131 84 82 44 188 86 343 122 89 21 166 52 233 91 71 42 130 93 177 150 10 12 20 25-5 45s-34 8-45-5c-42-52-95-98-159-135-61-36-133-64-216-84-161-38-272-81-358-128-75-40-131-82-184-123 180 393 450 573 835 689 23 7 43 13 61 19 3 1 6 1 9 2 86 21 175 40 266 55 92 15 166 28 261 37 16 1 32 3 29 34-3 32-19 30-34 29-99-9-174-22-266-38-58-10-115-21-171-33-26 6-64 9-107 12-232 14-420 225-435 494 0 5 0 11-1 16 88-80 179-157 273-212 117-68 239-103 364-69 15 4 31 8 22 39-8 31-23 27-39 22-106-28-212 3-316 63-108 63-213 158-315 253-24 147-82 285-205 377 61 34 104 65 163 45 86-39 172-78 261-108 91-31 184-52 282-57 16-1 32-1 33 31s-14 32-31 33c-91 4-179 24-264 53-75 26-149 58-222 91 221 47 460-1 667-79 60-22 105-42 133-41 51-30 112-53 172-79 66-28 132-51 182-57 16-2 32-4 35 28 4 32-12 33-28 35-112 13-127 21-222 79 0 21-66 57-126 96-36 24-70 52-87 67-95 86-144 181-188 287-29 70-52 145-68 224 55-108 121-211 201-303 94-108 208-201 345-265 14-7 29-13 42 15 13 29-1 35-15 42-129 60-236 147-324 250-90 103-161 222-219 345-31 64-8 1-42 86 110-122 212-224 323-307 132-100 283-157 418-133 15 3 31 6 26 37s-21 28-37 26c-116-21-250 32-369 121-121 92-244 223-366 361 184 26 366-26 542-85 91-30 183-135 239-152 19-24 38-46 57-67 33-37 67-71 102-100 12-10 24-20 45 4s8 34-4 45c-33 28-65 60-96 94-32 35-62 73-92 113-6 8-13 17-24 16-60 70-151 162-172 240-57 210-25 370-122 576 71-38 128-81 175-134 53-60 94-135 128-230 37-104 95-195 167-270 75-77 165-136 261-172 15-5 30-11 41 19s-4 35-19 41c-87 32-169 86-238 157-66 68-119 151-153 247-37 102-81 183-141 250-44 50-95 91-156 127 52-3 78-10 121-7 79-6 211-66 279-119 66-51 116-120 154-206 6-15 13-29 42-16s23 27 16 42c-42 96-99 174-173 231-56 43-121 75-196 93 161-5 311-42 467-100 65-24 87-168 127-208 32-58 66-112 105-158 47-56 101-101 164-127 15-6 29-12 41 18 12 29-3 35-17 41-52 21-98 60-139 108-36 42-68 93-98 147 10 73-51 228-53 305-7 205-2 409 53 612 53-71 107-134 162-192 0-5 0-10 1-15 18-106 33-219 40-332 7-112 7-223-6-329-2-16-4-32 27-35 32-4 34 12 35 28 14 111 14 226 7 340-6 90-16 180-30 269 54-51 53-51 77-103 37-80 59-159 67-237 9-80 5-157-13-230-4-15-7-31 24-38s35 8 38 24c19 80 25 165 14 252-8 65-24 132-49 199 56-42 114-82 178-122-4-75-5-153-3-227 2-68 7-134 18-190 4-20 7-40 47-33s37 27 33 48c-9 50-14 111-16 177-2 78 0 162 4 243 5 82 49 185 125 230 103 62 158 163 186 274 16-145 17-280 3-400-17-143-55-267-114-368-8-14-16-27 12-44 27-16 35-2 43 12 63 110 104 241 122 393 17 146 13 310-13 488 102-82 381-258 352-594-7-27-16-52-28-75-7-14-14-28 14-42s35 0 42 14c17 33 30 69 39 110 5 24 8 49 11 76 13-7 45-43 51-39 24 16 58 38 80 54-21-60-35-120-42-178-10-87-5-172 14-252 4-15 7-31 38-24s27 23 24 38c-18 73-22 151-13 230 9 77 31 157 67 237 4 8 8 16 5 25 24 21 47 42 70 65-13-84-22-170-28-255-8-115-7-230 7-341 2-16 4-32 35-28s29 20 27 35c-13 106-13 217-6 329 7 113 22 225 40 332 1 2 1 5 1 7 54 59 95 120 152 196 55-203 73-407 66-612-2-76-69-227-65-302-30-55-63-107-100-151-41-49-87-87-139-108-15-6-29-12-18-41 12-29 27-24 41-18 62 26 117 71 164 127 38 45 72 98 103 154 57 7 78 179 143 212 154 57 298 94 453 100-75-19-140-50-195-93-74-57-131-135-173-231-6-15-13-29 16-42s35 2 42 16c38 86 88 156 154 206 85 66 289 124 400 127-61-37-113-78-157-128-59-67-104-148-141-250-34-95-87-179-153-247a642 642 0 00-238-157c-15-6-29-11-19-41 11-29 26-24 41-19 96 36 186 94 261 172 72 74 130 166 167 270 34 95 75 169 128 230 47 54 105 98 177 135-98-207-66-367-122-577-35-129-232-277-193-320 45-51 133 88 248 127 175 59 357 111 540 85-122-138-244-269-366-361-119-90-237-140-352-120-16 3-31 6-37-26-5-31 10-34 26-37 135-24 269 32 401 132 111 84 201 175 311 298-18-47 0-14-30-77-59-123-130-241-220-345-89-102-196-189-324-250-14-7-28-13-15-42 13-28 28-22 42-15 137 65 251 157 345 265 81 93 147 198 203 307-15-81-39-157-68-227-44-106-93-201-188-287-62-56-209-140-208-179-29-15-33-11-63-24-61-26-121-46-164-52-16-2-32-4-28-35 4-32 19-30 35-28 50 6 115 28 182 56 33 14 66 43 98 60 53 4 139 47 208 74 206 78 446 126 666 79-73-33-147-65-223-91-85-29-172-49-264-53-16-1-32-1-31-33s17-31 33-31c98 4 191 26 282 57 89 30 175 69 261 108 59 27 101-7 163-45-123-92-181-230-205-376l-2-2c-102-95-207-190-315-253-104-60-210-91-316-63-15 4-31 8-39-22-8-31 7-35 22-39 125-33 247 1 364 69 94 55 186 132 274 213 0-6-1-11-1-17-15-270-203-480-435-494-78-5-189 21-186-32 4-59 97-44 234-86 385-116 655-296 836-690-54 41-110 83-186 124-86 47-198 91-358 128-82 19-154 48-216 84-64 38-117 84-159 135-10 12-20 25-45 5s-14-32-5-45c47-57 106-108 177-150 67-39 145-70 233-91 155-36 261-78 343-122 51-27 92-55 131-84-148-4-305-3-459-3-143 44-289 96-402 160-110 63-186 136-192 223-1 16-2 32-34 29-32-2-31-18-29-34 8-111 97-200 224-273 69-39 149-74 233-105-35 0-70 0-104-1-116-2-112-66-20-101 90-34 190-141 251-216 271-334 412-714 456-1130-33 72-69 140-115 198-57 73-128 131-222 164-31 160-91 293-180 397-92 108-216 185-369 230-29 8-52-35-29-55 132-109 221-226 278-344 62-131 83-264 72-387-1-16-3-32 29-35 31-3 33 13 34 29 12 134-10 278-78 420-40 85-97 170-172 251 73-39 136-89 187-149 85-100 141-229 170-386 1-8 14-22 22-25 89-27 155-79 209-147 51-65 90-143 126-228-140 69-304 64-457 78-213 19-369 68-554 152z"/>
+        <path d="M204649 49231c-680-88-1359-113-2041-114-684 0-1369 40-2058 112-20 6-15 33-14 46 2 28 37 35 121 27 643-60 1285-93 1932-93 674 0 1351 21 2038 102 33 9 77-85 22-81z"/>
+        <path fill-rule="evenodd" d="M200570 49160c683-71 1362-110 2038-110 675 0 1349 40 2025 127l31-127c-17 9-37 15-58 15a123 123 0 11113-171l60-170c-724-84-1446-122-2171-122-729 0-1459 38-2193 107l58 164c22-32 59-54 101-54a123 123 0 110 246c-12 0-25-2-36-6l33 94-2 7zm3067-416a123 123 0 100 246 123 123 0 100-246zm0 64a59.1 59.1 0 000 118c32 0 59-27 59-59s-26-59-59-59zm-1082-91a123 123 0 10123 123c0-68-55-123-123-123zm0 64a59.1 59.1 0 10.2 118.2 59.1 59.1 0 00-.2-118.2zm-1064-40a123 123 0 10-.2 245.8 123 123 0 00.2-245.8zm0 64c-33 0-59 26-59 59s26 59 59 59a59.1 59.1 0 000-118z"/>
+      </g>
+      <path d="M202601 47974c-14-68-49-129-100-175-51-47-116-78-187-88-33-4-39-58-7-68 60-20 114-67 157-133 45-69 79-157 95-256 5-34 64-35 69-1 15 84 51 153 97 208 55 66 125 112 193 138 31 12 25 63-8 68-59 9-105 42-141 87-50 62-81 145-100 221-8 33-62 31-69-2zm33-118c20-52 47-103 81-146 28-34 60-64 99-84-51-30-100-70-143-120-28-34-53-73-73-116-19 59-45 112-75 158-31 47-67 86-108 116 50 19 95 47 134 82 34 31 63 68 85 110zm799 5115l-515 206c-17 7-35 14-48-21-14-34 4-41 21-48l515-206c17-7 35-14 48 21 14 34-4 41-21 48zm59-326l-604 328c-16 9-33 18-51-15s-1-42 15-51l604-328c16-9 33-18 51 15s1 42-15 51zm-1826-65l604 328c16 9 33 18 15 51s-34 24-51 15l-604-328c-16-9-33-18-15-51s34-24 51-15zm51 322l515 206c18 7 35 14 21 48-14 35-31 28-49 21l-515-206c-17-7-34-14-21-48 14-35 31-28 48-21zm224 434c137 33 261 48 358 31 88-16 155-60 191-146v-493c-107-1-212-15-303-41-109-31-170-98-201-178-41-107-27-235-4-329 5-18 9-36 45-27s32 27 27 45c-20 82-33 194 1 284 23 60 69 110 152 133 91 25 198 38 307 38 107 0 214-13 304-40 82-24 148-69 192-123s65-117 57-176c-5-36-24-62-49-80-34-24-82-35-128-37-47-2-94 7-142 16-25 5-50 9-77 13-19 2-37 5-42-32s14-40 32-42c23-3 48-8 73-12 52-10 105-20 159-18 60 2 121 18 168 51 42 29 72 72 80 131 11 80-16 163-73 233-53 65-131 119-229 147-83 24-178 38-274 42v483c3 5 3 11 2 16 37 82 102 125 188 141 97 18 221 2 358-31 18-5 36-9 45 27 8 37-9 41-28 45-146 35-279 51-388 32-92-17-165-58-215-132-49 74-124 115-215 132-109 20-242 4-388-32-18-4-37-8-28-45 8-36 27-32 45-27zm356 210l402-9c19 0 38-1 38 37 1 38-18 38-37 38l-402 9c-19 0-37 1-38-37s18-38 37-38zm593-3082c151-125 293-227 423-297 133-72 254-111 359-106 19 1 37 1 36 39-1 37-20 37-39 36-92-4-200 32-322 97-125 67-263 166-410 289-14 12-29 24-53-5s-9-41 5-53zm-605 56c-141-130-298-240-445-314-139-71-268-108-363-100-19 2-37 4-40-34-4-37 15-39 34-40 110-10 252 31 404 107 152 77 315 191 461 325 14 13 28 25 2 53-25 27-39 15-53 2zm-213 1004c37-83 83-155 136-219 53-63 112-119 174-170 14-12 29-24 52 5 24 29 9 41-5 53-59 48-114 101-164 160-49 59-91 125-125 201-8 17-15 34-49 19s-27-32-19-49zm371-1734c49 66 88 139 114 223 26 82 40 175 39 279 5 80 6 165-7 249-13 86-42 170-97 246-43 60-101 97-165 113-53 13-109 10-164-7 29 100 51 208 6 308-8 18-33 27-51 18-43-22-86-43-128-62s-84-36-127-51l-1-1c-95-37-173-73-236-112-65-39-115-80-150-124l1 2c-44-49-72-106-88-170-14-55-20-114-22-174-72-39-138-78-194-116-64-43-118-87-161-131-13-14-26-27 1-53s40-12 53 1c39 40 89 80 150 121 60 40 128 81 204 121 124 13 247 51 370 109 106 50 211 115 317 192 13 7 19 16 27 20 8 6 16 13 25 19 51 22 104 28 152 16 47-11 90-39 122-84 48-66 72-139 84-214 12-77 11-157 6-234v-2c1-97-12-183-35-258-24-76-58-142-102-201-11-15-22-30 7-52s41-7 52 7zm-375 1047c-104-77-207-141-311-190-105-49-210-83-314-98 2 48 8 93 18 135 13 52 35 99 71 138l1 1c30 37 73 72 130 107 60 36 134 71 225 106l-1-1c45 16 89 34 133 54 31 14 61 28 93 44 19-83-10-179-37-267-2-8-5-15-9-29zm776-1003c-44 59-79 125-102 201-24 76-36 161-35 258v2c-5 77-6 158 6 234 12 75 37 148 84 214 32 45 75 72 122 84 48 12 101 6 152-16l25-19c6-4 13-12 27-20 105-77 211-143 317-192 123-58 246-95 370-109 75-40 144-80 204-121s111-81 149-121c13-13 26-27 53-1s14 39 0 53c-43 44-97 88-161 131-57 38-122 77-194 116-2 61-8 119-22 174-16 63-44 121-88 170l1-2c-35 44-85 85-150 124-63 38-141 75-237 112l-1 1c-43 15-85 32-127 51-43 19-85 40-128 62-18 9-43 0-51-18-45-100-23-208 6-308-55 18-111 20-164 7-64-15-122-53-165-113-55-76-84-160-97-246-13-85-12-169-7-249-1-104 13-196 39-279 26-84 65-158 114-223 11-15 22-30 52-7 30 22 19 37 7 52zm940 715c-105 15-209 49-314 98-104 49-207 113-311 190-4 13-6 21-8 29-27 88-56 184-37 267 31-15 62-30 93-44 44-20 87-38 133-54l-1 1c91-35 165-70 225-106 58-34 100-70 131-107l1-1c35-39 57-86 71-138 11-42 16-87 19-135z"/>
+      <path fill-rule="evenodd" d="M203459 50602a216.4 216.4 0 000 433 216.6 216.6 0 000-433zm0 69c-81 0-147 66-147 147s66 147 147 147 147-66 147-147-66-147-147-147zm0 60a87 87 0 10.1 174.1 87 87 0 00-.1-174.1zm-1697-124c119 0 217 97 217 216s-97 217-217 217a216.6 216.6 0 010-433zm0 69c81 0 147 66 147 147s-66 147-147 147-147-66-147-147 66-147 147-147zm0 60a87 87 0 11-.1 174.1 87 87 0 01.1-174.1z"/>
+    </g>
+    <use width="100%" height="100%" transform="rotate(-2.2 -55532.8 156275.8)" xlink:href="#a"/>
+    <use width="100%" height="100%" transform="rotate(2.2 459865.8 156275.8)" xlink:href="#a"/>
+  </g>
+  <path fill="#171796" d="M387.2 94.9l-19.3-22-25.2 14.5-4.3 51.1a219.7 219.7 0 0136.2 6L387.2 95z"/>
+  <path d="M347.7 98c.8-.2 1.7-.2 2.6.3.3.1.6.3.8.6.4-.3.7-.6 1.2-.8a4 4 0 011.8-1c.9-.5 1.8-.8 2.7-.9h2.8c.8 0 1.6.2 2.3.6l2 1c.8.4 1.5.8 2.2 1a9.1 9.1 0 004.5.5c.4-.2.7.1.2.4-3.3 2-5.9.2-8.1-.6a16.2 16.2 0 012.1 1.7c.8.8 1.8 1.6 3.5 2.4a8.4 8.4 0 005 .7l.4.1-.1.5a4.8 4.8 0 01-2.6.7 10 10 0 01-5.2-1.3c-1.4-.7-2.3-1.6-3.3-2.4a7.5 7.5 0 00-3-1.4 6 6 0 00-2.9 0c.3.1.5.2.6.4.5.3 1 .4 2 .5.4 0 .2.3-.5.7a2 2 0 01-1.6.8c-1 .6-1.3.2-1.7-.2 0 .3 0 .5-.2.8a.6.6 0 010 .4l.2.7c0 .2 0 .3.2.4.2.2.3.4.3.7 0 .2.1.3.3.4l.6.6c.6.2.8.7 1 1.2.4.2.6.5.7.9.2 0 .4.2.6.4l2.6.1c.8.1 1.4.6 2 1.2h1.2a4 4 0 011.3-.3h2.3c.5.2.9.4 1.2.8.5.5 1.2.4 1.8.2a2.7 2.7 0 012.4 0 2.3 2.3 0 011-.2c.4-.3.7-.4 1-.4.6 0 1 0 .9.8 0 .2-.2.4-.3.4-.3.6-.7.7-1.3.7-.1.4-.3.7-.5.8.3.9 0 1.3-.7 1.2 0 .3-.3.4-.6.4a1.4 1.4 0 01-1 .5l.4.6c.4.7-.2 1-.8 1v1.2c.7.4.8.8.2 1.2.4.7.3 1.3-.5 1.6 0 .4 0 .8-.3 1-.2.2-.5.3-.3.6.3.5.2 1.1-.2 1.2l-.2.1-.2.2a9.6 9.6 0 00-1.5 1c-.1 0-.2.1-.2 0a9.6 9.6 0 01-1.8 2.4c0 .5-.4 1-1 1.1a.4.4 0 01-.3.4c.3.3.5.6.2 1a3 3 0 01-1.3.8c-1 .3-1.7.2-2-.2-.4-.3-.3-.6 0-.7-.7 0-.8-.2-.8-.7 0-.2.1-.2.3-.1.4 0 .7-.2 1-.3l.5-.6c0-.7.5-1 1.1-1.3.5-.2 1-.6 1.4-1.2l.9-1.5a1.2 1.2 0 01-.3-.7 1.5 1.5 0 01-.5-.6c-.5 0-.7-.2-.7-.5a1.1 1.1 0 01-.3 0c-.3.1-.5.3-.7.2a6.9 6.9 0 01-1.1 1c-.2.3-.4.5-.7.5-1 .1-1.5 1.2-2 1.7-.2.1-.3.4-.4.7 0 .6-.1 1-.4 1h-.4a1.2 1.2 0 00-.4 0c.3.3.3.6 0 .9-.1.3-.4.4-.8.4a3.6 3.6 0 01-1.6-.2c-.4-.2-.5-.5-.5-.7-.3-.2-.4-.3-.3-.5 0-.2.2-.3.4-.2l.6-.2a5.2 5.2 0 011.8-1.4 3 3 0 01.7-.7c0-.5.5-1 1-1.4l.1-.6v-.3c-.2-.3-.3-.7-.1-1a1.3 1.3 0 010-.6c-1.1.6-1.5.4-1.6-.1-.4.3-.8.5-1 0-.4.1-.8.3-1.2.1l-.8.2-.4.7c0 .5-.2 1-.5 1.5a9.3 9.3 0 01-.7 1.5 1 1 0 01-.1.5c0 .6-.2.9-.5 1a2.4 2.4 0 01-.4.8v.2c.1.3.1.7-.2 1l-1 .6h-1c-.4-.3-.4-.4-.3-.6a.6.6 0 01-.5 0l-.4-.3c-.1-.2-.1-.4.1-.5l.9-.6c0-.2.2-.3.4-.4.2-.4.4-.6.6-.7l.7-1.5c.1-.1.2-.3.1-.4l.1-.3s.2-.1 0-.2a1.4 1.4 0 01.2-1.2c.3-.4.6-1.4.3-2v-.8h-.3c-.2-.2-.4 0-.6.2l-.4.6c-.1.8-.5 1.5-1 1.6v1.2c0 .4 0 .7-.2.7s-.4.2-.5.5a1 1 0 00-.1.3c.3.3.2.7-.1 1-.6.6-1.4.5-2.2.3-.6-.3-.8-.5-.7-.8-.8 0-.7-.7 0-.9.8-.2 1.4-.7 1.9-1.4 0-.8.2-1.3.7-1.4 0-.5.2-1 .4-1.4.2-.4.3-.8.2-1.3-.4-.3-.4-.6 0-1 .1 0 .1 0 0-.2-.3 0-.3-.3-.3-.5s0-.2-.2-.2c-.6-.1-.5-.4-.2-.7.1 0 .2-.3 0-.4l-.1-.4c-.4-.3-.2-.6 0-.9l-.4-.8c-.7 0-1-.4-.6-.9a3.4 3.4 0 01.7-.6c.1-.3.3-.6.2-.8-.2-.6.5-1 1-1.4a.9.9 0 01-.1-.4c-.3-.3-.2-.6.1-.8a1 1 0 01-.1-.5c-.8.2-.8-.3-.4-1-.5-.3-.4-.8.5-1.5a1 1 0 010-.4 2 2 0 00-1 .3c-.3.3-.6.2-.9.1a1.5 1.5 0 00-.4-.4.6.6 0 01-.2-.6c-1 0-1.1-.7-.6-1 .3-.3.6-.6.7-.9.2-.6.7-1 1.3-1.5v-.5a1.6 1.6 0 00-.7-.3 1.2 1.2 0 00-.6-.7c-.1 0-.2-.2 0-.4-.6-.4-.5-.7-.3-1z"/>
+  <g fill="#f7db17">
+    <path d="M364.5 122a1.4 1.4 0 01-.2 0 8.4 8.4 0 01-.8.7c-.2-.3-.5 0-.2.1l-.2.2c0 .3-.2.4-.5.4h-.1a3 3 0 010-.3 3.5 3.5 0 010-.4 3.9 3.9 0 00-.1.4 2.8 2.8 0 000 .4c-.8.3-1.3 1.1-1.9 1.7l-.4.8c0 .2 0 .9-.3.9h-.2c0-.1-.2-.1-.4 0h-1c-.2.2.4.2.7.3.1.1.2.3.1.5-.2.7-1.8.5-2.3.2-.2-.1-.2-.3-.2-.5h.3c.2 0 .4 0 .5-.2 0 0 .1 0 0-.1 0-.1 0-.1 0 0a1.3 1.3 0 01-.5 0 2.6 2.6 0 01-.5 0h-.2c0-.1.2 0 .2 0l.7-.3a5.3 5.3 0 011.9-1.4l.8-.7c0-.7.4-1 .8-1.5l.3-.7v-.3c-.2-.4-.3-.7-.1-1a1.5 1.5 0 010-.8.3.3 0 000-.1 6.2 6.2 0 01.8-.6v.8a1.3 1.3 0 00-.2.3.5.5 0 000 .2v.1a.4.4 0 010-.3l.3-.2.7-.4.7-.6v1l-.6.7v.1h.1a2.3 2.3 0 01.5-.7 3.2 3.2 0 011-.6v1a1.5 1.5 0 00.5.9z"/>
+    <path d="M349 113l.2-.2.4-.6a4 4 0 01.5-.6 4 4 0 00-.4.7 5.8 5.8 0 00-.4.5v.2c.1.3.1.5.3.7l.3-.4a1.6 1.6 0 01.4-.4 1.8 1.8 0 00.5-.6h.1l-.2.4a2 2 0 01-.3.3l-.4.3a1.3 1.3 0 00-.2.4v.3c-.2.3-.5.5 0 .7a.6.6 0 00.1.5l-.1.7c-.3.2 0 .2.1.2l.4-.4a4.3 4.3 0 01.3-.4l.4-.5.1-.5h.1a1.4 1.4 0 01-.1.6 2 2 0 01-.5.5 3.8 3.8 0 00-.2.4 2.6 2.6 0 00-.3.4c.2.1.2.4.2.7h.1l.2-.2.2-.4h.1l-.2.4-.2.3c.2.1.2.3 0 .5-.4.3-.3.4 0 .7v1.2l.1.3h-.1v-.3c-.4.7-.6 1.1-.7 1.8-.6.1-.5.8-.6 1.3a3.9 3.9 0 01-1.9 1.5c-.1 0-.5.1-.5.3 0 .1.2.3.4.2.4-.5.7-.2.2.2v.3c.5.4 1.6.5 2.2.2.3-.3.5-.5.2-.9 0-.5.2-1 .8-1.2v-.4l.1-1.3.2-.1c.2 0 .6-.7.7-1.3v-.4c.1-.2.2-.2.3 0 0-.2 0-.3.2-.4.2-.3.5-.6.8-.4a3 3 0 01-.1-.8 2.7 2.7 0 010-1l.2-.2.3-.7.3-.7h.1l-.3.7-.3.8v.1a2.5 2.5 0 00-.1 1l.2.9.2.4v.6c.4.6 0 1.7-.3 2.2a1 1 0 00-.1.8c.2.2 0 .4-.1.6v.1c0 .2 0 .4-.2.5l-.7 1.6c-.4.1-.5.3-.6.7-.3.1-.3.2-.4.4a2.7 2.7 0 01-.9.6c-.3.1 0 .2.2.4.2.1.4-.2.6-.4.2-.3.3-.2.2 0a2 2 0 00-.2.7l.7.3c.4 0 .9-.4 1.2-.6.3-.2.2-.5.1-.8a2 2 0 01-.5 0 3.4 3.4 0 01-.5-.3 2.8 2.8 0 001 .2v-.3a2.7 2.7 0 00.5-.8c.4-.2.4-.4.4-.9l.1-.5a10 10 0 00.7-1.6c.4-.4.5-.9.5-1.4 0-.2.1-.3.3-.3a3.8 3.8 0 00.3-.5l.1-.4a.8.8 0 01.2-.2 1 1 0 000-.5 1.1 1.1 0 00-.1-.4.5.5 0 01-.1-.2v-.2h.1c.1 0 0 0 0 0v.1a.5.5 0 000 .2c.2.2.2.3.2.5a1 1 0 010 .5.7.7 0 00-.2.2 1.7 1.7 0 000 .3l.6-.1.4-.5.2-.6c.1 0 0 0 0 0a2 2 0 01-.1.7l-.3.3c.4.2.7 0 1 0V119l.4-.7c.1 0 .1 0 0 0l-.2.8v1c.1.4.2.5.5.3l.4-.2v-.1a18.2 18.2 0 011.8-1.6c.1.1 0 .1 0 .1a6.5 6.5 0 00-.8.7l-.8.7v.3c0 .3.1.5.6.3l.6-.2a1.3 1.3 0 01.3-.2 8 8 0 01.5-.3l.5-.3a3 3 0 01.1-.6l.7-1.3a2.3 2.3 0 001.1-1.1h.1l-.4.7a2.5 2.5 0 01-.7.5l-.7 1.2a2.7 2.7 0 00-.1.5v.1a2.8 2.8 0 000 .8c.2 0 .4 0 .7-.3l.7-.7a1.7 1.7 0 01.2-.5 1 1 0 01.4-.4h.1v.1a.9.9 0 00-.4.3 1.7 1.7 0 00-.2.5v1.1l1-.5v1c0 .3.2.6.4.8a2.8 2.8 0 01.5-.6l.3-.3.2-.2.3-.2-.2.3-.2.2-.3.2v.5h.6c0 .5 0 .6.5.6a3.2 3.2 0 010-.5l.1-.5h.1a1.9 1.9 0 00-.1.5 3.1 3.1 0 000 .5c.2.3.3.4.7.6l.2-.5a1.4 1.4 0 000-.4h.1v.5l-.3.5v.5a3 3 0 01.2-.3l.3-.4c.1 0 .1 0 0 0 0 .2 0 .3-.2.4a4 4 0 00-.2.4l.2.2c-.6 1-1.3 2.5-2.5 3-.6.2-.9.5-1 1.2a1 1 0 00-.5.6l-1.2.3c0 .3 0 .4.3.4l.7-.3c.1 0 0 .5-.5.8v.1c.4.6 1.4.4 1.9.2.4 0 1-.5 1.2-.9.1-.2 0-.4-.2-.6-.8.1-.6-.6 0-.3.2 0 .3 0 .3-.3.6-.2.9-.5 1-1 .6-.7 1.2-1.4 1.6-2.1.1-.2.2-.4.1-.5a1 1 0 00.2-.5l.1-.4h.1v.5a4.5 4.5 0 01-.2.3c0 .1 0 .2.2.2l1.5-1c0-.3.2-.4.4-.4l.2-.1c.1-.4 0-.6-.2-.8-.1-.4.1-.5.4-.7.2-.2.2-.7.2-1v-.2a2.6 2.6 0 000-.3l.1.3v.1c.3-.1.6-.3.7-.6 0-.3-.1-.6-.3-.8a9.6 9.6 0 01-.6.2 10.2 10.2 0 00.7-.4 1.3 1.3 0 00.3-.2c.2-.3-.3-.5-.5-.6l-.7-.7v-.1l.7.6v-1.1l-.2-.4a1.1 1.1 0 01-.5-.4 1 1 0 01-.1-.5l.2.4.4.4h1c.3-.3-.2-.7-.3-.9l-.1-.5h.1a1 1 0 00-.2-.2.6.6 0 00-.1 0v-.2a.7.7 0 01.2.1l.2.2a.9.9 0 00.1 0c.3 0 .5-.2.7-.5a3.6 3.6 0 00-.3-.4 10 10 0 00-.5-.3v-.1h.1a4 4 0 01.8.8c.4 0 .4 0 .6-.3a1.5 1.5 0 00-.2-.4 2.5 2.5 0 00-.3-.4c0-.1 0 0 0 0 .2 0 .3.2.4.3l.2.5.4-.1c.3-.2 0-.8 0-1a2.8 2.8 0 00-.1 0l-.2-.2c0-.1 0 0 0 0h.2l.2.1.4-.6c0-.4 0-.2.5-.3.4 0 .6 0 .9-.6.1 0 .2 0 .2-.3s0-.4-.3-.4c-.5 0-.8 0-1 .3v.3c0 .1 0 0 0 0l-.2-.2c-.4 0-.7 0-1.1.2h-.2l.2.3.1.4a1 1 0 00-.2-.4 1.8 1.8 0 00-.3-.4 2.6 2.6 0 00-1-.2l.2.1.2.2v.1a7.7 7.7 0 01-.2-.2 6.5 6.5 0 01-.2-.2 2.7 2.7 0 00-.9.2l-.6.2.4.5.2.6a2.1 2.1 0 00-.3-.6 1.9 1.9 0 00-.4-.4 1.8 1.8 0 01-.5 0l.2.3-.3-.4a1.4 1.4 0 01-.5-.2 8.3 8.3 0 01.2 1.5 7.8 7.8 0 00-.2-.9 4.7 4.7 0 00-.1-.7 1.7 1.7 0 01-.2-.2 2.1 2.1 0 00-.6-.4 1 1 0 01-.2.7c-.1 0 0 0 0 0a.8.8 0 00.1-.8 3.1 3.1 0 00-1-.2 5.3 5.3 0 01.5.8l.3.5v.5a2 2 0 00-.1-.5.7.7 0 00-.3-.4 5.6 5.6 0 00-.3-.5 4.6 4.6 0 00-.3-.4h-.4.1a.6.6 0 010 .3.5.5 0 000-.2.7.7 0 00-.2-.1h-.8a5 5 0 011 2.3 4.8 4.8 0 00-.4-1.2 5.1 5.1 0 00-.7-1h-.6a1.7 1.7 0 01.4.4c0 .1 0 .1 0 0a1.6 1.6 0 00-.3-.1 2.4 2.4 0 00-.3-.2 5 5 0 00-.3 0l-.1.1a4.7 4.7 0 011 1.1c0 .1 0 0 0 0a3.8 3.8 0 00-.6-.6 4.7 4.7 0 00-.6-.4h-.6a5 5 0 01.5 1.7h-.1a3.5 3.5 0 00-.2-.8 6.2 6.2 0 00-.3-.9 8 8 0 01-.4 0 9.1 9.1 0 01.3 1.6v.1a9.3 9.3 0 00-.2-1 9.3 9.3 0 00-.3-.8 3.9 3.9 0 00-1.3-1 1.7 1.7 0 01.4 1.1v.1a1.6 1.6 0 00-.2-.7 1.7 1.7 0 00-.4-.6 2 2 0 00-.3 0 15.6 15.6 0 00-1 0c.2.1.4.4.4.6 0-.2-.3-.5-.6-.7h-.6l.3.3.2.5.2.6.4.4s.1 0 0 0c0 .1 0 .1 0 0a1.1 1.1 0 01-.5-.3 1.5 1.5 0 01-.2-.7 1.3 1.3 0 00-.2-.4 2.7 2.7 0 00-.3-.4h-.7l.2.8.1 1h-.1a7.1 7.1 0 000-1 4.5 4.5 0 00-.3-.8 1 1 0 00-.6-.5.6.6 0 010 .3h-.1a.5.5 0 000-.3c-.2-.5-.3-.7-.6-.8v.4l-.2.4h-.1l.1-.5v-.4c0-.6-.2-1-.8-1.2v.2l-.1.5h-.1v-.5a1.9 1.9 0 000-.3l-.5-.5a2.3 2.3 0 010 .7 3 3 0 01-.4.8h-.1a3 3 0 00.3-.8 2.2 2.2 0 00.1-.8 1 1 0 01-.2-.3v.2h-.1v-.2l.1-.1v-.1a.7.7 0 00-.3-.5 1.5 1.5 0 01-.2.5h-.1c-.1 0 0 0 0 0l.1-.3.1-.3a1 1 0 01-.1-.2.8.8 0 01-.1.2 1.2 1.2 0 01-.2.2c-.1-.1 0-.1 0-.1l.1-.2a.7.7 0 00.1-.2v-.2c0-.3 0-.4-.2-.7a.9.9 0 00-.3 0 2.8 2.8 0 00-.5.4v-.1a3.2 3.2 0 01.4-.3.9.9 0 01.4-.1.4.4 0 000-.2l-1 .3a1.6 1.6 0 01-.9-.2h.8c.3 0 .7 0 1.1-.2l.2-.6a1.7 1.7 0 01-.5 0l.6-.1v-.2c0-.2.3-.2.4 0 .2 0 .3.2.4.3.3.2.6 0 .9-.2h-.2v-.1h.3c.6 0 1 0 1.4-.5a7 7 0 01-1 0c-.2 0-.4 0-.6-.2l.7.1h1l.5-.3a5.4 5.4 0 01-2-.6 1.4 1.4 0 00-.6-.3c-.5 0-1 0-1.4.3l-.3-.3-.4-.2h-.6s-.1 0 0 0h1.2a4.5 4.5 0 011.7-.3 5.7 5.7 0 011.7-.2v-.2c.3-.3.4-.6.3-.9-.1-.2-.4-.5-.8-.7h-1.3a4 4 0 00-.8.1l.6.4.4 1v.1h-.2a2 2 0 00-.4-1c-.1-.2-.6-.3-.7-.4l-1.3.2-.7.4c.3-.1.6 0 .8 0 .3.2.5.4.6.8v.1h-.2a1 1 0 00-.5-.7c-.4-.2-1.2 0-1.6.3a4.2 4.2 0 00-.6.6h-.2v-.2l.7-.6.7-.4a2 2 0 011-.5l1.3-.2a1 1 0 00-.5-.5 1.4 1.4 0 00-.8 0c-.5.1-1 .4-1.5.7h.5l.1.2h-.5a1.4 1.4 0 00-.4 0l-1.5 1.2c-.5 0-.8 0-1 .2l-.1.6-.2.7c-.5.5-1 .9-1.3 1.5a1.4 1.4 0 01-.3.5.5.5 0 01.3.1v-.2l.2-.4h.1a1.2 1.2 0 00-.1.4v.5h-.2a.3.3 0 00-.1-.2.5.5 0 00-.3 0l-.3.2-.2.3c0 .3.2.3.5.3.6 0 .1.4.4.7l.5.4h.5c0-.4 0-.6.2-.6a.8.8 0 01.2-.4.8.8 0 000 .2.8.8 0 00-.1.2v.4a2.4 2.4 0 011-.2c.7-.8 1-.6.4 0l-.1.2a1.4 1.4 0 00-.2.6c-.2.1-1 .8-.7 1 .2 0 .4 0 .3.2-.1.2-.4.6-.3.9h.3a6.2 6.2 0 00.7-.6 3.8 3.8 0 00.5-.8h.1a9 9 0 01.3-.8c0-.2.1-.5.3-.7l.3.3a.4.4 0 00.2 0 .4.4 0 00.3 0l.2-.3h.1a1.2 1.2 0 01-.3.4.5.5 0 01-.3 0 .5.5 0 01-.2 0 1.1 1.1 0 01-.3-.3 12 12 0 00-.5 1.4v.1a5.6 5.6 0 01-1.2 1.4l.2.5 1-1 .8-1a6 6 0 01-.3.6v1.1h-.1v-.9l-.3.3a11.6 11.6 0 01-1 1c-.3.3-.6.3-.2.7l.3-.3.4-.3h.1v.1l-.4.3-.4.3a.6.6 0 00.1.3.5.5 0 01.1 0l.8-.6c.1 0 0 .1 0 .1l-.7.6a.7.7 0 01-.1 0c-.3.3-1.2.8-1 1.2l.6-.2.6-.5c.1 0 0 0 0 .1a2.5 2.5 0 01-.6.5v.2-.1a3.6 3.6 0 01-.7.1c.1.4 0 .7-.3 1 0 .1-1 .9-.6 1a1 1 0 00.3.2z"/>
+    <path d="M349.4 100.1a2.2 2.2 0 00-.6-.3 1.4 1.4 0 00-.5-.5c-.2-.2-.2-.1-.1-.3l.2-.1a.9.9 0 01.3 0 .4.4 0 01.2.2h.1c.1 0 0 0 0 0a.5.5 0 00-.2-.2 1 1 0 00-.4-.1.7.7 0 00-.4 0l-.2-.5.4.1.2.1a.7.7 0 00-.2-.2 2 2 0 00-.2 0 2.9 2.9 0 012.1.2c.4.1.6.3.8.6l-.2.2c-.5 0-.8 0-1 .2-.2.1-.2.4-.2.6z"/>
+  </g>
+  <path d="M365 121.8l-.4.2c0-.3.2-.4.3-.6v.2l.1.2zm2 4.2a2.3 2.3 0 01-.4.4 4 4 0 01-.5.4v-.1l.4-.4.4-.4zm1.3-1.6l-.2.3h-.1l.2-.3zm-.7 0a1.1 1.1 0 01-.2.3 1 1 0 01-.5.4v-.1a1 1 0 00.4-.3 1 1 0 00.1-.4h.1zm1.2-1.6a1 1 0 00-.1.2 1.1 1.1 0 00-.1.2h-.1a1.1 1.1 0 01.3-.5zm1 0v.5l-.3.5c-.1 0 0 0 0 0l.1-.5.2-.5zm-.4-6c.3.5.4 1 .4 1.5a7.3 7.3 0 01.1-.6 1.4 1.4 0 00.3-1.1c0-.1.1 0 .1 0v.6a1.7 1.7 0 01-.3.6l-.2 1h-.1v-.1c0-.6 0-1.2-.4-1.8v-.1zm-.8 1v.3h-.1v-.4h.1zm-.2 1.4a6.2 6.2 0 01.2 1.4 1 1 0 01.1-.1l.3-.3h.1a1 1 0 00-.3.3.7.7 0 00-.2.4 5 5 0 00-.1-.9 5.9 5.9 0 00-.2-.8zm1 .5a3.6 3.6 0 01.1 1.2v-.6a3.6 3.6 0 00-.1-.6zm1-.2v.6a1.5 1.5 0 010 .5 1.2 1.2 0 000 .6l.1.6a2.5 2.5 0 01-.3-.6 1.3 1.3 0 010-.6 1.4 1.4 0 00.2-.5 2.3 2.3 0 000-.6zm.5-1.5l-.1.3v.2h-.1v-.6h.1zm-.5-2.6v.2c.1 0 .1 0 0 0 0 .1 0 0 0 0v-.2s-.1 0 0 0c0-.1 0 0 0 0zm.2-2v.8a.8.8 0 00-.2.3 1.4 1.4 0 000 .6h-.1a1.4 1.4 0 010-.6.9.9 0 01.3-.4v-.7zm-2-.7c.4.2.6.4.8.7.2.2.3.5.3.9l-.6-.2v1.8c-.2.5-.5.8-1 1a3.8 3.8 0 000-1.8h.1a3.6 3.6 0 010 1.6 1.5 1.5 0 00.7-.8 3.7 3.7 0 00.1-1.9l.6.2c0-.3-.1-.5-.3-.8a2.5 2.5 0 00-.7-.6v-.1zm5.2-1v.2h-.1v-.2s0-.1 0 0h.1zm-1.2 0l.3.1a.8.8 0 01.1.2v.1a.8.8 0 00-.2-.2.6.6 0 00-.2-.2zm-1.8.5l.3.5v.6c-.1 0-.1 0 0 0l-.1-.6a1 1 0 00-.3-.5h.1zm-6 .5v.4l-.1.1v-.5zm1-.6l.2.4v.1h-.1v-.1l-.1-.3zm2.4 1.6v.1a1.1 1.1 0 010 .2.8.8 0 000-.2.6.6 0 00-.1 0v-.1zm.8-1.8v.2a.2.2 0 010 .2.1.1 0 000-.2c-.1-.1-.1-.1 0-.1zm-5.5.3a1 1 0 00.2.7c.2.1.2.3.3.4v.4h-.1v-.4a.9.9 0 00-.2-.3 1 1 0 01-.2-.4 1.1 1.1 0 01-.1-.4zm2.2 1.5l.2.7v.7c0 .3 0 .6.2.8l.6.7a2.9 2.9 0 01-.1-1l.3-1c.2 0 .2-.2.3-.3v-.4h.1v.4a1.5 1.5 0 01-.3.5 1.6 1.6 0 00-.3.9c0 .3 0 .6.2 1h-.1c-.4-.2-.6-.5-.8-.8a1.3 1.3 0 01-.2-.8v-.7a1.8 1.8 0 00-.2-.6c0-.1.1 0 .1 0zm-.9 1.4c0 .2 0 .5-.2.7a3.4 3.4 0 01-.4.6h.3a2.2 2.2 0 00.7-.6l.3-.3c.1 0 0 0 0 0a3.6 3.6 0 01-.2.4 2.5 2.5 0 01-.3.2 24.5 24.5 0 010 .4v-.2a1.5 1.5 0 00-.1-.1 2.2 2.2 0 01-.4.2l-.4.2v-.1l.4-.7.2-.7h.1zm-1 0v.1h-.1c-.1 0 0 0 0 0v-.2z"/>
+  <path d="M363 113.7c.2.3.2.6.2 1a1.9 1.9 0 01-.4.8 1.9 1.9 0 00-.5.6 2.6 2.6 0 00-.2.6l.2-.3.5-.3a4.6 4.6 0 001.1-.9h.1c.1 0 0 0 0 0a4 4 0 01-1.2 1 1 1 0 00-.4.3 2.3 2.3 0 00-.4.5c0-.4 0-.7.2-1l.5-.6.4-.8c0-.3 0-.6-.2-.9h.1zm2.3 3.5l.1.4.1.1c.2.3.3.5.3.8l-.1 1h-.1a1.8 1.8 0 00-.4-1 3.4 3.4 0 00-.8-.6v-.1c.4.2.7.4.9.7l.3.6a3.4 3.4 0 000-.6 1.3 1.3 0 00-.1-.7l-.1-.2c-.2-.2-.3-.3-.2-.4zm1 0l.1.2c0 .1 0 0 0 0h-.1l-.2-.2h.1zm1 .3l-.2.7-.2.7.2-.7.2-.7zm.7 4v.1a.3.3 0 010-.2zm-.7-1.2v.3l-.2.4v-.4l.1-.4h.1zm-1 0h.1v.1h-.1v-.1zm-1.1-.6a7.3 7.3 0 01-.1.2v.2h-.1a5 5 0 010-.2 5 5 0 010-.2h.1c.1 0 0 0 0 0zm-1.7 1.8a.7.7 0 00-.1.2 1.3 1.3 0 000 .2s-.1.1-.2 0v-.2a.8.8 0 01.2-.3h.1zm-4.8 4.6a.7.7 0 010 .2 1.1 1.1 0 01-.2.1c-.1 0-.1 0 0 0a.8.8 0 00.1-.3h.1zm.8-.4a.3.3 0 01-.1.2.6.6 0 01-.2 0 .4.4 0 00.1-.1.3.3 0 000-.1h.2zm1-.6a.5.5 0 010 .1.5.5 0 01-.2.1.4.4 0 000-.2h.2zm1.5-3.8l-.1.4a1.4 1.4 0 000 .4h-.1a1.4 1.4 0 010-.4v-.5h.1zm1-10.3a.9.9 0 01-.1.3 1.4 1.4 0 01-.2.3h-.1l.2-.3a.8.8 0 000-.3l.1-.1zm-1-1a1.9 1.9 0 01.1 1 1.8 1.8 0 000-.5 1.5 1.5 0 00-.2-.4c0-.1 0 0 0 0zm-1.4 1.7a1.5 1.5 0 01-.4-.4.7.7 0 01-.1-.4l.2.4.3.4zm1.5 2.6v.2h-.1v-.2zm-2-2l.6 1 .1.8c.2 0 .3-.1.4-.3v-.9a1.9 1.9 0 00.3-.6 3.5 3.5 0 00.1-.5h.1l.4.8.3.9h-.1a2.9 2.9 0 00-.3-.9 3.9 3.9 0 00-.3-.6 2.9 2.9 0 010 .4 2 2 0 01-.3.5l-.1 1-.4.3v.4h-.1c0-.4 0-.8-.2-1.2a2 2 0 00-.5-1zm1.2 5v.3l-.1.4h-.1v-.8h.1c.1 0 .1 0 0 0zm-2.2.9v.3l-.1-.3c0-.1.1 0 .1 0zm1.9-2.5a2.3 2.3 0 01-.2.6l-.3.5a1.1 1.1 0 00-.3.6 1.8 1.8 0 000 .7c0 .1 0 0 0 0a1.9 1.9 0 01-.1-.7c0-.2.1-.5.3-.7a2.1 2.1 0 00.3-.5 2.1 2.1 0 00.2-.6c.1 0 0 0 0 0zm-.5-.8v.6a2.2 2.2 0 01-.5.6 1.8 1.8 0 00-.4.5l-.2.5h-.1l.2-.6.5-.5a2 2 0 00.3-.5 1 1 0 00.1-.6h.1zm-2.4 1.2c0 .4 0 .7-.2 1-.1.3-.3.6-.6.8h-.1v-.1c.3-.2.5-.5.6-.8.2-.2.2-.6.2-1zm-3 1.7v.2l.1.1v.1h-.1l-.1-.2v-.2s-.1 0 0 0zm-1.3 0a2.7 2.7 0 000 .7l.4.6.1.5v.4l.4-.5a1.4 1.4 0 00.2-.6 1.6 1.6 0 010 .6l-.5.6h-.1a3.3 3.3 0 000-.5 1.8 1.8 0 00-.2-.4 2 2 0 01-.3-.7 2.7 2.7 0 01-.1-.7zm.2 4.2a2.6 2.6 0 01.1-.8h.1a2.5 2.5 0 00-.1.8h-.1zm-.2 1.1v-.4s0-.1.1 0v.4zm-.8 2l.2-.3.2-.3h.1a4 4 0 01-.2.4l-.2.2c-.1 0-.1 0 0 0zm-1.1-6.6v.2h-.1v-.2zm-2 4.5a2.9 2.9 0 000-.1v-.2h.1v.3zm5-8l-.3 1c0 .3.1.6.3.7.3.2.4.4.5.7v-.4c.1-.1.1-.3 0-.4h.1a2.7 2.7 0 010 1h-.1a6 6 0 010-.2l-.5-.6c-.3-.2-.4-.4-.4-.8l.2-1h.1zm-.4-1.3a2.5 2.5 0 010 .8 4 4 0 01-.3.7 2.4 2.4 0 00-.2 1c0 .4.1.7.3 1v.1a2.5 2.5 0 01-.2-2.1 3.8 3.8 0 00.2-.7c0-.3.1-.5 0-.8h.1c.1 0 0 0 0 0zm-2.3 3.3a.8.8 0 000 .4l.1.5c0 .1 0 0 0 0a1.5 1.5 0 01-.3-.5.9.9 0 01.1-.5h.1zm-1-.4v.3a.9.9 0 010 .3.4.4 0 00-.1.3l.1.2v.1a.8.8 0 01-.2-.3.5.5 0 010-.4.8.8 0 00.1-.2v-.3h.1zm5.8-8.6a2.3 2.3 0 00.3 1.5 2.6 2.6 0 01-.4-.7 2.3 2.3 0 010-.8h.1zm-.7.7a4 4 0 01.5 1.7h-.1a3.8 3.8 0 00-.5-1.6v-.1zm-3.6.1c-.4.5-.5 1-.6 1.3l.2.9.2.8a2.6 2.6 0 01-.2.8c-.1 0 0 0 0 0v-.8a2.3 2.3 0 000-.8 1.7 1.7 0 01-.3-1c0-.3.2-.7.6-1.2.1 0 0 0 0 0zm3.3-1.4v.5l-.4.4a.8.8 0 00-.3.4v.7c0 .1 0 0 0 0a1.9 1.9 0 010-.7 1 1 0 01.3-.5 1 1 0 00.3-.4.6.6 0 000-.4h.1zm-3.5.3v.7c0 .2-.2.4-.4.6a1.2 1.2 0 00-.4.6 2.9 2.9 0 00-.1.7h-.1a3 3 0 01.1-.8c0-.2.2-.4.4-.6l.4-.6a1 1 0 000-.6zm2 .1a.8.8 0 000 .2.5.5 0 00.1.3.6.6 0 01-.2-.2.8.8 0 010-.3h.1zm0-.5a.8.8 0 00-.5.4l-.2.7.2.5v.7a2.4 2.4 0 000-.7l-.3-.4a2 2 0 00-.5 1.2c0 .5.1 1 .5 1.5h-.1a2.7 2.7 0 01-.5-1.5c0-.5.2-.9.6-1.3 0-.3 0-.6.2-.8a1 1 0 01.5-.4zm-.7-.8v.1c0 .3 0 .6-.2.7a.8.8 0 00-.2.3 1.6 1.6 0 00-.1.4h-.1a1.7 1.7 0 010-.4 1 1 0 01.3-.4c.2-.1.2-.4.2-.6a2.7 2.7 0 000-.1h.1zm5.7 6l.1.5v.4a1.4 1.4 0 000-.4 1.9 1.9 0 00-.2-.4h.1zm0 2v.6l-.2.6-.3.6.2-.6a2.1 2.1 0 00.2-.6 1.6 1.6 0 000-.7h.1zm-1.2-1.8a2.5 2.5 0 01.7 2.5h-.1a2.4 2.4 0 00-.6-2.4v-.1c0-.1 0 0 0 0zm0 2a5.3 5.3 0 01-1 1.4 2.5 2.5 0 00-.5 1 1.4 1.4 0 00-.1-.6 1.9 1.9 0 00-.2-.4 1.4 1.4 0 01-.3-.9l.3-.8.3-.6a2.4 2.4 0 000-.6h.1c.1 0 0 0 0 0a2.6 2.6 0 01-.3 1.3 1 1 0 00-.3.7c0 .3 0 .6.2.8a2 2 0 01.3.8 2.6 2.6 0 01.5-.8 5 5 0 00.5-.6l.3-.7h.1zm-3.2-1a2.8 2.8 0 00.4 1.4v.1h-.1a2.3 2.3 0 01-.3-.7 3 3 0 010-.7zm-1.7 1v.3h-.1v-.3zm.6-1.6l-.1.5a1.4 1.4 0 01-.3.5c-.1 0 0 0 0 0l.2-.5a1.4 1.4 0 000-.5h.1zm-1.6 3.1a3.3 3.3 0 01-.3-1.7c0-.5.3-.8.6-1l.4-.7c.1-.2.2-.5.1-1s.1 0 .1 0v1l-.6.7a1.9 1.9 0 00-.5 1c0 .5 0 1 .3 1.7h-.1zm-1-1.1a.7.7 0 000 .3l.1.4a1 1 0 01-.2-.4.8.8 0 010-.4h.1zm4.6-3.2c.1.2.3.5.3.8 0 .3 0 .6-.2.9h-.1c-.1 0 0 0 0 0l.2-.9a1.5 1.5 0 00-.3-.8zm1.4-1.1a2.4 2.4 0 010 1.7 1.8 1.8 0 00-.2-.8 1.5 1.5 0 00-.5-.5c0-.1 0-.1.1 0a1.6 1.6 0 01.6 1v-.6a2.3 2.3 0 00-.1-.8zm.8-1.2l.4.8v1a2 2 0 000 .5 1 1 0 00.2.4 1 1 0 01-.2-.4 2.3 2.3 0 010-.5 3.5 3.5 0 00-.1-1 1.5 1.5 0 00-.4-.7c0-.1 0 0 .1 0zm-2.2-.2a1 1 0 00-.3.5v.7a2 2 0 010-.7c0-.2 0-.4.2-.5.1 0 .1 0 0 0zm-4.4 3a2 2 0 01-.3 1 2.5 2.5 0 01-.8.7c-.1 0 0 0 0 0l.7-.7c.2-.3.3-.6.3-1l.1-.1zm0-1.6v.5a2.2 2.2 0 01-.3.5l.1-.5v-.5h.1zm2.9-.2v1h-.1v-1zm.7-1.3c-.2.3-.3.5-.3.8l.2.7.3 1.2c0 .4-.2.7-.4 1.1l.3-1.1a1.9 1.9 0 00-.3-1.2l-.2-.7c0-.3 0-.6.3-.8.1 0 0 0 0 0zm-4.6-8.1a2 2 0 011-.5c.4 0 .8 0 1.2.3h.8-.8c-.4.5-.8.7-1.1.7a1 1 0 01-.9-.2c0-.1 0-.1 0 0a1 1 0 00.9 0c.2 0 .6-.1 1-.5a1.9 1.9 0 00-1-.1 2 2 0 00-1 .4c-.1 0 0 0 0-.1z"/>
+  <path d="M351.6 101a.3.3 0 01.3.3.3.3 0 01-.3.2.3.3 0 01-.2-.2.3.3 0 01.2-.3zm1.8 1.6a2.2 2.2 0 00.8-.7c.1 0 0 0 0 .1a2.3 2.3 0 01-.2.3l-.5.4c-.1-.1 0-.1 0-.1zm3.7-1.6a.5.5 0 01.3 0 .8.8 0 01.3.2.7.7 0 00-.3 0 .5.5 0 00-.2 0l-.1-.1zm-2 .1a.8.8 0 01.3-.4l.7-.1v.1a1 1 0 00-.7 0 .7.7 0 00-.3.5c-.1 0-.1 0 0 0zm.2.4a.4.4 0 010-.3.6.6 0 01.3-.1h.1a.5.5 0 00-.3.2.3.3 0 000 .2h-.1zm-3.6 1.1l-.1.3a.8.8 0 000 .3l-.1.1a1 1 0 010-.4c0-.1 0-.2.2-.3zm1 .5v.2-.2zm-.6-1.1a1 1 0 00.3 0h.3a1.4 1.4 0 01-.3.1 1 1 0 01-.3 0s-.1 0 0-.1zm.6-2a.3.3 0 00-.2.1.4.4 0 00-.1.2h-.1a.5.5 0 01.2-.3.4.4 0 01.2 0h.1zm-1 .2a.8.8 0 00-.2 0 .3.3 0 000 .2h-.1c-.1 0 0 0 0 0a.4.4 0 010-.2.9.9 0 01.3-.1zm-.7 0a.8.8 0 00-.1.1.7.7 0 00-.1.2h-.1a.7.7 0 01.1-.2.9.9 0 01.2-.2v.1zm-.8.7a1.7 1.7 0 00-.4.4v-.1a2 2 0 01.4-.4zm0 .9v.1l-.2.2c-.1 0-.1 0 0 0v-.2l.2-.2c.1 0 .1 0 0 0zm-.7.2v.3l-.1.1c-.1 0 0 0 0 0v-.4zm1 1.4v.6h-.1v-.6h.1zm-.6-.4v.3h-.1v-.3h.1zm-.6-4.5a.7.7 0 01.5.4v.1h-.1a.7.7 0 00-.2-.3.7.7 0 00-.2-.1v-.1zm5.2 6.7a1.6 1.6 0 010 1.4h-.1a1.6 1.6 0 000-1.3v-.1zm-1.7 2c0-.3.2-.5.3-.7l.4-.6c.2-.2.3-.4.3-.7a1.8 1.8 0 000-.7h.1a2 2 0 01-.3 1.5 6.3 6.3 0 00-.4.5l-.3.7h-.1zm-2.2-.6a.7.7 0 01.2-.3.9.9 0 01.3-.1.8.8 0 00-.2.2.6.6 0 00-.2.2zm-.4-.2l.3-.3.3-.2v.1a1 1 0 00-.3.2 2 2 0 00-.2.3c-.1 0-.1 0 0 0zm2.3-2.2h.2a.8.8 0 00.3 0v.1a.8.8 0 01-.6 0c0-.1 0-.1 0 0zm-1.2-.1l.1-.1c.1 0 .1 0 0 0v.1c-.1 0 0 0 0 0zm24.2 7a1.1 1.1 0 01.2.3h-.1a.8.8 0 000-.1.8.8 0 00-.2-.2c0-.1 0 0 0 0zm-26.8 12.5l.3.3a1 1 0 00.5 0v.1a1 1 0 01-.5 0 1.7 1.7 0 01-.4-.3c0-.1 0-.1 0 0z"/>
+  <g fill="red">
+    <path d="M368.9 99.6a8.2 8.2 0 001.7 0c-.6.3-1.2.6-2 .7a.8.8 0 00.3-.4.4.4 0 000-.3zm-1.4-.1h1.2v.4s0 .2-.2.3c0 0-.1 0 0 .1a5.6 5.6 0 01-1.3 0 1 1 0 00.3-.5.6.6 0 000-.4zm-10.5-3c.7-.2 1.3-.2 2-.2a1 1 0 01.5.4c.1.2.2.5.1.8l.1.1h.1l-.1-1a1 1 0 00-.3-.2h.2a5 5 0 012.1.6c.2.2.3.3.2.5l-.3.5v.2h.2l.3-.7a.7.7 0 000-.3l1.7.8a.5.5 0 010 .5 1 1 0 01-.5.3v.1l.1.1c.3 0 .5-.2.6-.4a.6.6 0 000-.4l1.2.6v.3c0 .2-.1.3-.3.4 0 0-.1 0 0 .1 0 .1 0 0 0 0 .3 0 .5-.2.6-.4a.5.5 0 000-.3l.4.1a8.1 8.1 0 001.3.4.5.5 0 01.1.4.7.7 0 01-.2.3v.2c-1.4-.1-2.7-.9-4.1-1.4l-.5-.2-1.6-.6-.1-.1a8.5 8.5 0 00-1.5-.4 6.1 6.1 0 00-1.6 0h-.1l-.1-.8a1.3 1.3 0 00-.5-.4z"/>
+    <path d="M354.6 97a8.7 8.7 0 012-.5c.4.1.6.3.7.5v.6a4.2 4.2 0 00-1.7.2 1.2 1.2 0 00-.7-.6 1.2 1.2 0 00-.3-.1zm7.4 3.9a9.4 9.4 0 00-.5-.4 7 7 0 00-3-.8c.3-.4.4-.8.3-1.1a1.7 1.7 0 00-.7-.8h1a8 8 0 012 .6c0 .3.1.6 0 .8 0 .3-.2.5-.5.7 0 0-.1 0 0 .1 0 .1 0 .1 0 0 .4-.1.6-.4.7-.7v-.8l1 .6 1 .8c0 .4 0 .6-.3.8h-.9v.2z"/>
+    <path d="M364 102.4l-1.8-1.4c.4 0 .7 0 1-.2.1-.1.3-.4.3-.8l1.1 1 .6.5v.4a.5.5 0 010 .2.6.6 0 01-.4.2h-.7z"/>
+    <path d="M366.2 103.8a11.8 11.8 0 01-2-1.3h.7a.8.8 0 00.4-.2l.1-.4a1 1 0 000-.2 10.5 10.5 0 002.1 1.4c0 .3 0 .4-.3.5a3 3 0 01-1 .1z"/>
+    <path d="M368.4 104.7a11.9 11.9 0 01-2-.8c.4 0 .7 0 1-.2.2 0 .3-.2.3-.5a10.8 10.8 0 001.3.6v.4l-.5.4s-.1 0 0 0z"/>
+    <path d="M373.2 104.2s.4-.1.2 0c-1.4 1-3.1 1-4.8.5.3-.1.5-.2.6-.4a.6.6 0 000-.5l1.7.4a.4.4 0 01-.1.3l-.5.3s-.1 0 0 .1c0 .1 0 0 0 0 .3 0 .5-.2.6-.3a.6.6 0 00.2-.4 9 9 0 002 0zm-9.7 24l-.2.4-1.2.3c0 .3 0 .4.3.4l.7-.3c.1 0 0 .5-.5.8v.1c.4.6 1.4.4 1.9.3a3 3 0 001.3-1l-.3-.6c-.4.1-.6 0-.5-.2a3.9 3.9 0 00-1.5-.2zm-15.1-4.8c-.3.3-.7.5-1 .6-.2 0-.6.1-.6.3 0 .1.2.3.4.2.4-.5.7-.2.2.2v.3c.5.4 1.6.5 2.2.2.3-.2.6-.5.2-.9a1.7 1.7 0 010-.2h-.6l-.4-.3-.4-.4zm10 3.5h-.1c-.2.2.3.2.6.3.2.1.2.3.2.5-.3.7-1.9.5-2.4.2-.2-.1-.2-.3-.2-.5h.3c.2 0 .4 0 .6-.2v-.2h-.2a1.3 1.3 0 01-.4.2 2.6 2.6 0 01-.5 0l-.2-.2h.2l.7-.2.1-.1c.5 0 1 0 1.3.2zm-7.2-.4l-.2.3a2.7 2.7 0 01-.9.6c-.2.1 0 .2.2.4.2.1.5-.2.6-.4.2-.3.3-.2.2 0l-.2.7.7.3c.4 0 1-.4 1.2-.6.3-.2.2-.5.1-.8a2 2 0 01-.5 0 3.4 3.4 0 01-.5-.3l-.7-.2zm2.8-26.4h.3l.6.1a4.5 4.5 0 011.7-.3 5.7 5.7 0 011.7-.2v-.2c.3-.3.4-.6.3-.9-.1-.2-.4-.5-.8-.7h-1.3a4 4 0 00-.8.1l.6.4.4 1c-.2.1-.2 0-.2 0 0-.4-.2-.6-.3-.9l-.8-.4a9 9 0 00-1.3.2c-.3 0-.5.2-.7.3l.8.1c.3.1.5.4.6.8-.1.1-.1 0-.1 0a1 1 0 00-.5-.6c-.4-.2-1.3 0-1.7.2a4.2 4.2 0 00-.6.6l2 .4zm-2.3-.4v-.1l.7-.6.7-.4a2 2 0 011-.5l1.3-.2a1 1 0 00-.5-.5l-.8-.1-1.5.8h.5l.1.2h-.4a1.4 1.4 0 00-.4 0h-.1l-1.3 1c.3.1.6.2.7.4z"/>
+  </g>
+  <path fill="#0093dd" d="M409 156.5l20.8-47-15.3-24.7-27.3 10-12.7 49.8a219.4 219.4 0 0134.5 11.9z"/>
+  <path fill="#fff" d="M382.6 113a251.7 251.7 0 0139.6 13.7l-8 18.2a232 232 0 00-36.5-12.7z"/>
+  <path fill="red" d="M415.4 142l5.4-12.2a248.6 248.6 0 00-39-13.5l-3.2 12.4a235.9 235.9 0 0137 12.8l-.1.4z"/>
+  <path d="M385.6 125.8c.3-.3.7-.2 1.1-.1.3-.2.7-.2 1-.2l.6-.2c.2 0 .2-.2 0-.3a.6.6 0 010-.3c-.7-.4-1-1-1.2-1.5-.3 0-.5-.2-.5-.3h-.5c-.8 0-1-.3-1.3-.5a1 1 0 01-.6-.4l-.3-.3c-.2-.3-.1-.7.2-.7h.7a2 2 0 01.9-.1c.3 0 .5-.3.9-.6v-.4s0-.2.2-.1a1 1 0 01.8.5c.5 0 1 .3 1.2.7.7 0 1.1.3 1.2.5 0 .2-.2.4-.5.6v.2l.4.4 1 .7c1-.1 2.6.6 4.8 2a18.6 18.6 0 014.1 1.2h.9c2.4-.4 4.7 0 6.8 1.5.8.1 1.5.4 2.2.7.5.2 1 .3 1.6.3a8 8 0 012.6.7c1 .2 1.9.6 2.4 1.2.4.5.3 1-.2 1.2-.3.6-.9.6-1.8.3-.6.1-1.3-.4-2-.9-.8-.2-1.6-.8-2.4-1.3l-1.3-.6h-.8v.2c.2.2.4.4.4.8v1c0 .4.3.6.7.9l1 .4c.2 0 .3.1.3.3l.4 1.7.4.3c.6.5.2 1-.3 1a3.1 3.1 0 01-1.3.8c-.4.2-.6 0-.7-.2a.5.5 0 01-.4-.2c-.5-.4-.1-1 1-.7l.2-.2a1.5 1.5 0 010-.9l-.3-.2a2.8 2.8 0 01-1-.6c-.6-.5-1.5-1-2.4-1.4-.7 0-1.2-.4-1.8-.7h-.8c-.2 0-.4 0-.5.2-.2.3-.5.2-.8.2h-1.6c-.4 0-.7 0-1 .3-.2.2-.4.2-.7 0a1 1 0 01-.3-.2c-.3 0-.5 0-.5-.2-.5-.1-.6-.2-.6-.4-.6-.1-.3-.6 0-.6l1.4.1c.4.1 1 0 1.2-.2l.5-.5a4 4 0 01-1.8-.5c-1.1-.7-2-.9-2.8-.3-.2.2-.3.2-.6.1a1 1 0 00-.5 0c-.5.1-.9 0-1.3-.1a4 4 0 01-1.8 0c-.6.3-1 .4-1.2.2a8.6 8.6 0 01-.6-.4c-.4-.1-.5-.2-.5-.3-.4 0-.5-.2-.5-.4-.2-.2 0-.3 0-.4.4-.2.7-.2 1 0 .3 0 .5.2.6.3h.6c.1-.2.5-.2 1-.2l.7-.2v-.2c-.4 0-.6-.4-.9-.7a3 3 0 01-1.5-.5c-.4 0-.7-.1-1-.3h-.7a2.5 2.5 0 01-1.4 0h-.8a1 1 0 01-1 .2 1.5 1.5 0 00-.8-.5c-.3-.1-.4-.2-.4-.4-.4-.2-.3-.4 0-.5.3-.1.5-.2 1 0l.5.2z"/>
+  <path fill="#fff" d="M401.2 130.5s0-.2-.3 0c-.8 0-1.6 0-2.2-.4-.7-.4-1.3-.8-2-.8l.7-.4h1.5c.7 0 1.4.2 2 .4.4.2.8.5 1 .8a3.4 3.4 0 01.8.7 2.5 2.5 0 01-.7 0 2.9 2.9 0 01-.8-.3z"/>
+  <path d="M403 94.7v.2l.9 4.9-3.7 3.2-.2.1.2.1 4.7 1.6 1 4.9v.2l.2-.1 3.7-3.3 4.6 1.6h.3v-.1l-1-4.9 3.7-3.2.2-.2h-.3l-4.6-1.6-1-4.9V93l-.2.1-3.7 3.3-4.7-1.6z"/>
+  <path fill="#f7db17" d="M400.6 103l3.5-3 4.4 1.4zm8.5-1.7l3.4-3 4.4 1.5zm7.8-1.3l-3.4 3-4.4-1.5zm-8.4 1.6l-3.5 3-4.3-1.5zm-5-6.4l4.3 1.4.8 4.6zm5.5 6.4l4.4 1.5.9 4.5zm5.1 6.1l-4.3-1.5-.9-4.5zm-5.6-6.4l-4.3-1.5-.9-4.5zm3-7.7l1 4.6-3.5 3zm-2.7 8.1l.8 4.6-3.4 3zm-2.8 7.5l-.9-4.5 3.5-3zm2.8-8l-.9-4.6 3.5-3z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ht.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ht.svg
new file mode 100644
index 0000000..14f67d7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ht.svg
@@ -0,0 +1,116 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-ht" viewBox="0 0 640 480">
+  <path fill="#d21034" d="M0 0h640v480H0z"/>
+  <path fill="#00209f" d="M0 0h640v240H0z"/>
+  <g fill="#f1b517" stroke="#000" stroke-width=".2">
+    <path fill="#fff" stroke="none" d="M244.3 179.7h151.4v120.5H244.3z"/>
+    <path fill="#016a16" stroke="#016a16" stroke-width=".3" d="M350.5 266.8l-31 1-30.7.3s-15.8 5.8-22.3 7.1c-6.4 1.3-5.6 3.4-10.5 4.6-4 .9-4.5 1.1-6.8 1.3-1.5 0-3.2 1.2-5 2.4v16.7h151.5v-15.9c-1.6-.9-3.2-1.5-4.8-2-2.2-.8-3.7-1.6-7.7-2.5-5-1.1-4.2-3.3-10.6-4.6-6.5-1.3-22.1-8.4-22.1-8.4z"/>
+    <g transform="translate(-80) scale(1.6)">
+      <g id="a">
+        <path d="M244.5 143.5h1.4l2.6 10.7-.6 3.4-3.4-14z"/>
+        <path fill="#fff" d="M243 136.3l1 8.3h1l-2-8.2z"/>
+        <path d="M245.7 154.6l-4.3-11.5 1.6-.1 5 14-2.3-2.4z"/>
+        <path fill="#fff" d="M239.4 136.5l1.8 8h1.4l-3.2-8z"/>
+        <path d="M241.9 150.6l-2.5-5.5 1-.2 4.7 9-3.2-3.3z"/>
+        <path fill="#fff" d="M236 138.8l2.9 7.6h1.4l-4.2-7.6z"/>
+        <path fill="#0a328c" d="M242.3 151.4l-11.5-12.5c-3.6 2.8-2.9 8-2.9 8l13 10.2 1.3-5.7z"/>
+        <path fill="#d20014" d="M248.9 158.2l-8.5-8.6c-3.6.2-.8 5.5-.6 6.2l9 7.7v-5.3z"/>
+        <path d="M248.1 156.8L230.6 138l-.7.5 18.6 20.6-.4-2.3zm-18.5-20l-.4-.5v-.9l-3.6-2.3 1.6 3.7 1.3.2.3.4.8-.6z"/>
+        <path d="M227.7 138.1a8.4 8.4 0 012.7-2.2l1 1.5-2.2 1.8-1.5-1z"/>
+        <path fill="#0a328c" stroke="#0a328c" d="M225.8 141.3l.6 1c.4-.1 4-3.5 4-3.5h2.7l.7-.9c-2-2-3.7.3-3.7.3l-4.3 3z"/>
+        <path fill="#d20014" stroke="#d20014" d="M228 143c0-1 1.8-3.2 2-3.3 1.3.4 2.5 1.2 3.9-1.8-1.2 1.4-3.5 0-3.5 0l-1 .8v.4l-3 2.8 1.5 1.1z"/>
+        <path fill="#0a328c" d="M237.3 154.7l-14.4-11.4c-2.5 2.5-.4 10.2-.4 10.2l14 7.6.7-6.4z"/>
+        <path fill="#d20014" d="M249.2 164l-11.9-9.6c-4 .6-.8 6.5-.6 7.2l12.5 6.8v-4.5z"/>
+        <path d="M248.7 162l-25.6-19.2-.5.6 26.8 21-.7-2.4zm-26.8-20.2l-.4-.4-.2-.8-4-1.7 2.3 3.3h1.3l.4.4.6-.8z"/>
+        <path d="M220.3 143.4a8.2 8.2 0 012.3-2.6l1.2 1.3-1.8 2.1-1.7-.8z"/>
+        <path fill="#0a328c" stroke="#0a328c" d="M219 146.6v1.1c.4-.2 3.7-3.7 3.7-3.7l2.5-.5.6-.8c-1.8-2.1-3.7.7-3.7.7l-3.2 3.2z"/>
+        <path fill="#d20014" stroke="#d20014" d="M221 148.5c-.2-1 1.2-3.8 1.4-4 1.6.5 3 1.2 3.5-2-1 1.6-3.5.4-3.5.4l-.8 1v.5l-2.5 3.3 1.9.8z"/>
+        <path fill="#0a328c" d="M236.2 161.7a2783.3 2783.3 0 01-18.5-10.5c-1.3 2.3-.1 5.5.5 6 0 1.5-.6 2.3.7 5.5.4 2 1.3 3.9 2.7 5 1.6 6.4 8.2 6.9 10.7 1.6l4-7.6z"/>
+        <path fill="#d20014" d="M248.3 168.5l-12.5-7.3c-4 .5 0 8 .3 8.7l12.2 4.3v-5.7z"/>
+        <path d="M246.2 165.8l-28.3-15-.5.6 30 16.7-1.2-2.3zM216.5 150l-.5-.3-.3-.8-4.1-1 2.7 2.9 1.2-.2.6.3.4-.9z"/>
+        <path d="M215.2 151.8c.4-1 .8-1.9 1.8-3l1.4 1.1-1.4 2.4-1.8-.5z"/>
+        <path fill="#0a328c" stroke="#0a328c" d="M214.1 155.2l.6 1.2 3-4.6 2.5-.9.5-1c-2-1.8-3.5 1.4-3.5 1.4l-3.1 3.9z"/>
+        <path fill="#d20014" stroke="#d20014" d="M216.8 156.8c-.2-1 .5-4.2.7-4.3 1.5.5 2.8.6 3.2-2.6-1 1.5-3.3 1-3.3 1l-.7 1 .1.4-2 4 2 .5z"/>
+      </g>
+      <use width="100%" height="100%" transform="matrix(-1 0 0 1 499.9 0)" xlink:href="#a"/>
+    </g>
+    <g transform="translate(-80) scale(1.6)">
+      <path fill="#016a16" stroke="#016a16" d="M248.8 125.6l-.5 9h2.9l-.4-9 3-.3-.3-3.6-7.5.3v3.2l2.8.4z"/>
+      <g id="b" fill="#016a16">
+        <path d="M249.8 121.9c-7.8-7.8-13.9-4-15.3-2.9 1 .2 1.8-.4 2.3-.5l-1 1.2s2.5-1 2.8-1c-.4.3-.8 1-.8 1 .2 0 1.6-1.1 1.8-1.1-.4.4-.5 1.5-.5 1.5l1.2-.5c.3.2-.1.6.1.6 2-.2 4.7 1.7 5 2.3"/>
+        <path d="M247.9 123.3c-.8-1.8-15.6-5-18.6.3 1.2.3 2.3-1 2.3-1v1.2l1.9-1.6-.7 1.6 1.5-1.3v1.3l2-2-.3 1.1 1.7-.7-.2 1"/>
+        <path d="M247.2 123.6c-3.8-2.5-9.6-.8-9.6-.8-3.8 2-5.8 1.7-6.2 5.6.3-.1 1.3-1.4 1.3-1.4l.8 1.5.2-2.1.6 1.7 1-2.8.2 1.9 1.4-1.9.6.6.6-1.5.6 1s1-.6 1.5-.3l1-1.2.3.9 1-1 .3.7.9-.8v.6h3"/>
+        <path d="M246.4 124c-2.7 0-10.3 2.9-12.2 5.8a13.3 13.3 0 011.3-.6l.3 1.2.5-1.2.1 1c.3-.8.6-.8 1.2-.1l.2-1.1.3 1 .5-1.1s.3 1.2.5 1.2c0 0 .8-2.2 1.2-2.3l.1 1.4.5-1.4.5 1v-1.4l.6 1s.2-1 .6-1.2l.8.7 3.4-2.5"/>
+        <path d="M246.9 124.7c-3.5 1.3-6.7 6.2-6.4 8.2 1.5-2 1.2-1.7 1.9.6 0 0 .2-2 .5-2.2l.5 1.4.1-1.9h.5l-.1-1.1.7.5c-.2-.7-.3-.9.4-1.5 0 0-1 .1-.2-1.5l.7.6s-.2-.7 0-1l2.6-.8"/>
+        <path d="M247.2 125l-1.3 2.6.7.2-1.6 1.1 1.3-.1s-2 .7-2.2 2.7l2-1s-1.7 1.8-2 2.9l1.3-1s-1.2 1.2-1 3l.9-1c-.2 2.3-.2 2.5.8 4.2 0 0-.2-2.6 0-3l2.3 2.4-1.2-3.3s1.4 2 2.2 1.9l-1.8-2.7 1.8 1.4-2-3 1.8.6s-1.3-1.7-1.2-2.8l1.3 1.4s-.5-1.5-.4-2l.7.1-1.3-1.4.9-.2-.1-1 .6-.1v-1.1m-1.1 0c-2.2 3-1.1 7.5-2.4 9.9"/>
+      </g>
+      <use width="100%" height="100%" transform="matrix(-1 0 0 1 499.9 0)" xlink:href="#b"/>
+      <path d="M251 166.5s1.1-10 1.1-14.2c0-3.4-.8-10.8-.8-10.8H248s-.5 7.4-.4 10.8c0 4.2 1.1 14.2 1.1 14.2h2.3z"/>
+      <path d="M247.7 142h4l-.5-2.7h-2.9l-.6 2.6z"/>
+      <path d="M248 139.8h3.5l-.7-2.7h-2.2l-.7 2.7z"/>
+      <path d="M248.2 137.7h3l-.6-2.7h-1.9l-.5 2.7z"/>
+      <path d="M250.7 134.7h-2l-.3 1h2.5l-.2-1zm.4 29.7h-2.6m2.8-2h-3m3.4-2h-3.8m4-2.1h-4m4-2.2h-4.1m4.2-2h-4.4m4.4-1.7h-4.6m4.6-2.2h-4.6m4.5-2.1h-4.5m4.3-2.2h-4.1m3.9-2h-3.7"/>
+      <path fill="#0a328c" stroke="#0a328c" d="M250 119c-.8-.3-2.3-1.3-1.9-1.9l.7-1.2c1-2.2 0-1.4 0-2-.2-.8 3.8-.2 3.8 1.3 0 .5-.3.2-.2 2.6l-.8 1.5a3.5 3.5 0 01-1.7-.2z"/>
+      <path d="M250.4 125l-1-.9.3-7.1 1 .3-.3 7.6z"/>
+      <path fill="#d20014" stroke="#d20014" d="M251.7 119.3c.6-.4 1-1.5.6-2.1-1-1.3-1.7-.8-3.4-1.4-.3.4-1 1-.9 1.6 2.3 1 1.4.2 2.2.3.4 0 .6.5 1.5 1.5z"/>
+    </g>
+    <g transform="translate(-80) scale(1.6)">
+      <use width="100%" height="100%" transform="matrix(1 0 0 -1 0 320.4)" xlink:href="#c"/>
+      <path fill="#016a16" stroke="#fff" stroke-linecap="round" d="M238.4 161.8c0 1.2-.9 2.3-1.9 2.3s-1.8-1-1.8-2.4v-1.2h3.7v1.2z"/>
+      <ellipse cx="236.5" cy="160.1" fill="#fff" stroke="none" rx="1.8" ry=".9"/>
+      <path fill="#016a16" stroke="#f1b517" d="M236.1 161l-.3-3.2h1.4l-.2 3.3h-.9z"/>
+      <path id="c" fill="#016a16" stroke="#fff" stroke-linecap="round" d="M238.5 160.1c-.2.5-1 .9-2 .9s-1.7-.4-2-.9a.8.8 0 000 .4c0 .7.9 1.2 2 1.2 1.2 0 2.1-.5 2.1-1.2a.8.8 0 000-.4z"/>
+      <g id="d">
+        <path d="M246 172.8l-7-2.2-3.1-5.3-10.9-.5.4 4 9.3 1.7.8 1.6 10.7 3-.2-2.3z"/>
+        <path fill="#503200" d="M238.7 174.3l-11.2-16.5-.5.5 11 16.4.7-.4z"/>
+        <path fill="#fff" d="M228.6 158.5l-1.2-2c-.3-.4-.6-.5-1.1-.2-.5.2-.4.7-.2 1.1l1 1.9 1.5-.8z"/>
+        <path d="M240 164.1l-22.5-2.3-.6 3.3 22.4 2.3.7-3.3z"/>
+        <path d="M217 161l-.5 4.5h1l.6-4.1-1-.4zm3.8.7l-.2 4.1h.6l.5-3.5-.8-.6zm15.3 1.8l-.6 3.8h1.1l.5-3.8h-1zm3.3.1l-.7 4.4 1.2.2.4-2.3c0 .5.5.8 1 .8.6 0 1-.5 1-1 0-.6-.4-1-1-1a1 1 0 00-1 .6l.3-1.6-1.2-.1zm-8 .7l-3.2 3.5.4.4 4-2.7-1.3-1.2zM224 173l3.1-3.5-.3-.4-4 2.7 1.2 1.2zm8.1-.9l-3.7-2.9-.4.3 3 3.8 1.1-1.2zm-9.3-6.7l3.9 2.8.4-.3-3-3.8-1.3 1.3zm4.2-2.3l.4 4.6h.5l1.2-4.5-2.1-.1zm1.2 11l-.3-4.5h-.6l-.7 4.6h1.6zm5.1-6l-4.8.4v.5l4.8.6V168zm-11.4 1.5l4.7-.7v-.4l-4.8-.5v1.6z"/>
+        <ellipse cx="227.7" cy="168.6" rx="1.3" ry="1.2"/>
+        <path fill-rule="evenodd" stroke-linecap="round" d="M234.4 168.6c0 3.5-3 6.5-6.7 6.5a6.6 6.6 0 01-6.7-6.5c0-3.6 3-6.5 6.7-6.5a6.6 6.6 0 016.7 6.5zm-1.3 0a5.3 5.3 0 01-5.4 5.2 5.3 5.3 0 01-5.4-5.3 5.3 5.3 0 015.4-5.1 5.3 5.3 0 015.4 5.2z"/>
+        <path d="M223.5 165.3l-1-.8m8.5 0l1-1m1 9.2l-1.1-.9m-8.4 1.9l1-1m21.7-10.6l1.1 6-.9.4-1-6.3h.8z"/>
+        <path fill="#fff" d="M245.6 161.4c-.5-.3-1.2.1-2.4-1.3-1.9 1.7 0 2 .2 3.7.5.2.9-1.4 2.3-1.5l2.3-.2-.5-.7h-2z"/>
+        <path fill="#fff" d="M246.4 162.5l-.2-1.7c-.3-.7-1-.1-1 .2l.2 1.7 1-.2z"/>
+        <path fill-rule="evenodd" d="M240.8 167.4v1.6c-.6.2-.5.6-.5 1.2v4.7c-.1.4-.7.4-1 .6-.3.3-.2.8 1 1l1 .1c1.5-.3 1.8-.8 1-1-.3-.2-.9-.4-1-.6v-1.2h1c.2 0 .7-.6.7-1.1v-2.5c0-1.4-1-1.6-1.4-1.5v-1.3h-.8zm1.6 2.7c0-.4-.6-.8-.8-.8-.2 0-.7.5-.7.9v1c0 .4.3 1.6.9 1.7.2 0 .6-.4.6-.8v-2z"/>
+        <path fill="#fff" d="M234.3 172.3c-.7-.2-.7 1.2-.7 1.2h1c.5.2.8.8.6 1.2-.3.2-2.2-.5-2.3 0 .3 1.9 2.9 2.6 3.8 1.8.9-.9 1.1-3-1.8-3.7l-.6-.5zm.6.6l-.3.6"/>
+        <path d="M215 173l-1-4m2.1 3.8l-1.5-3.1m4 2.3l-3.3-1.8m4.8 1.4l-6.2-2.7"/>
+        <path fill="#d20014" stroke="#d20014" d="M210.2 166l-2.6.1c-.2.1.5.9.4 1.1-.6 1.1-4.4 1-4.7.8-.5-.5 3.5-.8 3.6-1 0-.4-.6-1.2-.5-1.7 0-.7 1.7-1 1.7-1l2.1 1.7z"/>
+        <path fill="#503200" d="M213.2 168l-5-4.2s-.3-.2-.5 0 0 .4 0 .4l5.4 4.4.1-.5z"/>
+        <path d="M218.2 172.2l-4.2-3.6-.3-1-.8.6c-.3.2-.6.8-.6.8h1.1l3.6 3.4 1.1-.2z"/>
+        <circle cx="232.5" cy="177.1" r=".7"/>
+        <circle cx="230.6" cy="175.7" r=".7"/>
+        <circle cx="228.1" cy="176.6" r=".7"/>
+        <circle cx="224.2" cy="177.4" r=".7"/>
+        <circle cx="222.5" cy="177.6" r=".7"/>
+        <circle cx="220.8" cy="177.6" r=".7"/>
+        <circle cx="219.2" cy="177.6" r=".7"/>
+        <circle cx="220" cy="176.3" r=".7"/>
+        <circle cx="221.6" cy="176.4" r=".7"/>
+        <circle cx="223.1" cy="176.2" r=".7"/>
+        <circle cx="222.4" cy="175" r=".7"/>
+        <circle cx="220.8" cy="174.9" r=".7"/>
+        <path fill-rule="evenodd" d="M236.5 178c0-.3-.8-.2-.8-.6 0-.4 1.2 0 1.3.3.7-.6 1-.2 1.4 0 .6-.8 1.3-.8 2-.2.4-.4 1.4-.3 1.7.2.7-.6 1.3-.5 1.7 0 .2-.3.5-.3.7 0 .3-.7 1.2-.5 1.6 0 .3-.4.7-.1 1.1.1.3-.2.8-.2.8 0 0 .4-.6.3-.6.6 0 .2.4 0 .4.4 0 .3-.6.4-.7 0-.3.4-1.1.2-1.2-.2a.8.8 0 01-1.2 0c-.3.2-.7.2-.8 0-.5.5-1.4.4-1.7-.2h-.3a1 1 0 01-1.5 0c-.9.6-1.4.4-1.9 0-.5.7-1.4.7-1.5 0-.4.3-1.2.4-1.2 0 0-.2.7-.1.7-.4zm1.6.1c0 .2-.2.3-.4.3s-.4-.1-.4-.3.1-.2.4-.2.4.1.4.2zm1.9-.2c0 .2-.3.3-.6.3s-.5-.1-.5-.3c0-.1.2-.3.5-.3s.5.2.5.3zm3.5.2c0 .2-.2.3-.5.3s-.4-.1-.4-.3c0-.1.2-.3.4-.3s.5.1.5.3zm-1.9 0c0 .2-.2.3-.5.3s-.4-.1-.4-.4c0-.2.2-.4.4-.4s.5.2.5.4zm4 0c0 .1-.1.3-.3.3-.3 0-.5-.2-.5-.4s.2-.3.5-.3c.2 0 .4.1.4.3zm-1.2 0c0 .2 0 .3-.2.3s-.3-.1-.3-.3.1-.2.3-.2l.2.2zm2.4.1c0 .2 0 .4-.3.4-.1 0-.3-.2-.3-.4s.2-.3.3-.3c.2 0 .3.1.3.3z"/>
+      </g>
+      <use width="100%" height="100%" transform="matrix(-1 0 0 1 499.9 0)" xlink:href="#d"/>
+      <path fill="#0a328c" stroke="#0a328c" d="M249.8 165.7c-2.5 0-4.5 1-4.5 2.1 0 .2 0 .4.2.6.5.6 2.3 1 4.4 1 2 0 3.6-.3 4.2-.9.2-.2.3-.4.3-.7 0-1.1-2-2-4.6-2z"/>
+      <path d="M254.4 168v7c0 .9-2 1.5-4.5 1.5s-4.6-.6-4.6-1.5v-7c0 .8 2 1.5 4.5 1.5 2.6 0 4.6-.7 4.6-1.5z"/>
+      <path fill="#d20014" stroke="#d20014" d="M245.3 168v1l2.2 7 1.8-5.4 2 5.5 1.3-5.2 1.8 3.5v-1.9l-1.6-3.4a8.3 8.3 0 01-.6.2l-1 3.8-1.5-3.6a14.5 14.5 0 01-.7 0l-1.5 3.6-1.6-4.4c-.4-.2-.6-.5-.6-.7z"/>
+      <path fill="#0a328c" stroke="#0a328c" d="M254.4 173.7v1.3c0 .9-2 1.5-4.5 1.5s-4.6-.6-4.6-1.5v-1.3c0 .9 2 1.5 4.5 1.5 2.6 0 4.6-.6 4.6-1.5z"/>
+      <path d="M251.7 175l-1.1.2v1.3l1.2-.1v-1.3zm-4.8-.1v1.3l1.1.2v-1.3a8.9 8.9 0 01-1.1-.2zm-1.6-1.2v1.3c0 .3.2.5.5.7v-1.3c-.3-.2-.5-.4-.5-.7zm9.1.2c0 .2-.4.5-.8.7v1.3c.5-.2.8-.5.8-.9v-1z"/>
+      <path fill="none" d="M254.4 168v7c0 .9-2 1.5-4.5 1.5s-4.6-.6-4.6-1.5v-7"/>
+      <path fill="#fff" stroke="#fff" d="M253.4 167.5c0 .5-1.6 1-3.5 1-2 0-3.6-.5-3.6-1s1.6-.9 3.5-.9c2 0 3.6.4 3.6 1z"/>
+      <path d="M248.7 168.2l.2 1.2h1l.1-1.2h-1.3zm4.1-.3l-1 .2.1 1.2 1-.2V168zm-5.4-2l-.7.3.1 1 .6-.2v-1zm2.4-.3h-.3l.2 1.2h.6l.2-1.2a9.7 9.7 0 00-.7 0zm2.7.4l-.1 1 .7.3v-1a5.3 5.3 0 00-.6-.3zm-6.5 2.8l.2-1.3-1-.5v1.5l.8.3zm8.4-.3v-1.3l-.8.3.8 1zm9.3-8.5c.8 0 2 1 2.1 2.5 0 1-1.7 1-1.7 1 0 .5-1 .9-1.8 1-.8 0 .2-1.5.2-1.5-.5-1.3.2-2.7.2-2.7l1-.3z"/>
+      <path d="M262.5 163h.8s0 .3.2.3.3-.4.3-.4h1.2"/>
+      <path fill="#d20014" stroke="#f1b517" d="M264.1 160.9c.7-.5.1-1.5-.4-1.5h-1c-.6 0-1.4.6-1.3 1 0 .5.4.7.8.6.2 0 .6-.6.8-.6.3 0 1 .6 1.1.5z"/>
+      <path fill-rule="evenodd" d="M214.2 174.8c-.6.1-.7.8-.5 1.5-2.6.7-5 1.7-7.4 2.4-.1-.5 1.2-1.8 1.2-1.8.3.1.6.9.6.9 0-1.6 1.6-2.6 1.6-2.6-1-.2-3.7 1-4 1.4 0 0 1-.2 1.2 0 0 0-2.2 2.3-2.3 3 .4.7 4 1.3 4 1.3 0 .2-1 1-1 1 1.5.2 3.7-.8 4.3-1.4 0 0-1.7-.2-3-1.3 0 0 .2.7 0 1 0 0-2-.6-2.3-1 0 0 5-1.2 7.4-2 .1.5.6 1.3 1.2 1.1.3-.1.2-.8 0-1.4a.8.8 0 00.6.2c.4 0 .7-.3.7-.7 0-.4-.3-.7-.7-.7a.8.8 0 00-.7.5c-.1-.5-.4-1.4-.8-1.3zm2 1.6c0 .2-.2.3-.4.3a.3.3 0 01-.4-.3c0-.2.2-.4.4-.4s.3.2.3.4z"/>
+      <path d="M293 177.9c.2-.4 0-2.2 0-2.2-.5 0-1 .7-1 .7.5-1.6-.8-4-.8-4 .9.1 3.9 3 4 3.6 0 0-1.3-.5-1.5-.4.3 1.5 1.3 2.2 1.7 3 0 0-1.7.3-1.6 1.8h-1.1c-.4-.5.1-1.3.1-1.3l-7.7-3.2c-.5-.2-1.6-.8-1.4-1.4.1-.5 2 .3 2.4.5l7 2.9z"/>
+      <path d="M285.6 176.5l1-1.6c.3-.5-.4-1-.9-.4l-1 1.5c-.4.9.5 1.1 1 .5z"/>
+    </g>
+    <g fill="#fff" stroke-width=".3">
+      <path d="M290.2 288.6l-.1-3-3.5.3-.2 3.1 3.8-.4z"/>
+      <path d="M264.4 292.7l-4.7-2.7c19.4 1.8 23.4-5 28.1-5.3 3-.3 3.3 3.2-2.3 1.5l1.5 3.6s-13.8 7.8-27.4 4.6l4.8-1.7zm84.8-4.1l.1-3 4.3.2.2 3.1-4.6-.3z"/>
+      <path d="M375.9 292l4.5-2.5c-22.4.7-17.3-3.6-28.4-4.8-3-.4-5 3.4 2.2 1.5l-1.4 3.6h3.5c7.6 5 17.8 5.5 24.6 3.9l-5-1.7z"/>
+      <path d="M285.5 286.3v5s12.3 4.6 34.4 4.6c22.2 0 34.4-4.6 34.4-4.6v-5s-9.3 4.3-34.4 4.3c-25 0-34.4-4.3-34.4-4.3z"/>
+    </g>
+    <path fill="#000" stroke="none" d="M287.3 291.3l1.1-3.7.5.2-1 3.2 2 .5-.2.5-2.4-.7zm3.6-1.6v-.7l.2-.7.6.2-.2.6-.3.7-.3-.1zm5.3-.3l.5.2-.4 2.1-.4 1a1.2 1.2 0 01-.5.4h-1a2 2 0 01-.9-.4 1 1 0 01-.4-.6l.1-1 .5-2.2.5.1-.5 2.2a2.1 2.1 0 000 .8.7.7 0 00.2.4l.5.2h1l.4-1 .4-2.2zm.6 4l.6-3.7h.6l1.5 3.4.5-3h.5l-.6 3.9-.5-.1-1.6-3.3-.5 3-.5-.1zm4 .7l.6-3.8h.5l-.5 3.8h-.5zm1.6-1.7c0-.6.3-1.1.7-1.4a2 2 0 011.4-.4c.4 0 .7.1 1 .3l.5.8c.2.3.2.7.1 1a2.2 2.2 0 01-.3 1 1.7 1.7 0 01-.8.7 2 2 0 01-1 .1 2 2 0 01-1-.3 1.7 1.7 0 01-.5-.8 2.1 2.1 0 01-.1-1zm.5 0c0 .5 0 1 .3 1.2.2.3.5.5.9.5s.7 0 1-.3c.3-.2.4-.6.5-1a1.9 1.9 0 000-1 1.2 1.2 0 00-.5-.5 1.3 1.3 0 00-.7-.3c-.3 0-.7 0-1 .3-.2.2-.4.6-.5 1.2zm3.7 2.3l.3-3.8h.6l1.8 3.2.2-3h.5l-.3 3.9h-.5l-1.9-3.2-.2 3h-.5zm5.6.4l.1-3.8 2.7.1v.5l-2.1-.1-.1 1.1 1.9.1v.5l-2-.1v1.8h-.5zm3 .1l1.5-3.8h.6l1.5 4h-.6l-.4-1.3h-1.7l-.4 1.2h-.6zm1-1.5h1.4l-.4-1a9.8 9.8 0 01-.2-.9l-.2.8-.5 1.1zm3.1 1.6v-3.8h.6v3.8h-.6zm2.5 0V292h-1.3v-.4h3.1v.4h-1.3v3.4h-.5zm4 0l-.3-4h.6l.1 3.4h2v.4l-2.5.1zm2.6-.2l1.2-4h.6l2 3.7h-.7l-.5-1h-1.7l-.3 1.3h-.6zm1-1.7h1.4l-.5-1-.4-.9a4.8 4.8 0 01-.1.8l-.4 1.1zm4.7 1.2l-.4-3.8 2.6-.3.1.5-2.1.2v1.2l2-.2v.5l-1.9.2.2 1.7h-.5zm3-2.1a2 2 0 01.2-1.6 2 2 0 011.3-.7l1 .1c.4.1.6.3.8.6l.4 1-.1 1a1.6 1.6 0 01-.6.8 2 2 0 01-.9.4 2 2 0 01-1-.1 1.7 1.7 0 01-.8-.6 2.1 2.1 0 01-.4-1zm.5-.1c0 .4.2.8.5 1 .3.3.6.3 1 .3s.7-.2 1-.5c.2-.3.2-.7.2-1.2a2 2 0 00-.3-.8 1.3 1.3 0 00-.6-.5 1.4 1.4 0 00-.7 0c-.4 0-.7.1-1 .4-.1.3-.2.7-.1 1.3zm4.1 1.3l-.6-3.8 1.7-.3h.8c.2 0 .4 0 .5.2l.3.6c0 .3 0 .5-.2.7-.1.2-.4.4-.7.5a1.4 1.4 0 01.3.1l.5.5 1 .9h-.7l-.7-.6a7.4 7.4 0 00-.5-.5 1.2 1.2 0 00-.3-.2.8.8 0 00-.3 0h-.3l-.6.1.4 1.7h-.6zm.2-2.2l1-.2a1.7 1.7 0 00.6-.2.6.6 0 00.3-.6.6.6 0 00-.2-.4h-.7l-1.3.1.3 1.3zm6.3-.4h.5c0 .4-.1.8-.3 1a2 2 0 01-1 .6 2 2 0 01-1 0 1.6 1.6 0 01-.8-.6 2.6 2.6 0 01-.5-1 2.2 2.2 0 010-1c0-.4.3-.7.5-.9l.9-.4h1c.4.2.6.4.8.8l-.5.2a1.2 1.2 0 00-.5-.5 1.1 1.1 0 00-.7 0 1 1 0 00-.7.3 1.1 1.1 0 00-.3.7v.7a2.3 2.3 0 00.4.8c.1.2.3.4.6.4h.7a1.1 1.1 0 00.6-.3c.2-.2.3-.5.3-.8zm1.4 1l-1-3.7 2.7-.7.2.4-2.3.6.3 1.1 2.1-.5.2.4-2.2.6.4 1.2 2.4-.6v.4l-2.8.8z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/hu.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/hu.svg
new file mode 100644
index 0000000..177da97
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/hu.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-hu" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="#fff" d="M640 480H0V0h640z"/>
+    <path fill="#388d00" d="M640 480H0V320h640z"/>
+    <path fill="#d43516" d="M640 160.1H0V.1h640z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/id.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/id.svg
new file mode 100644
index 0000000..0663baf
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/id.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-id" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#e70011" d="M0 0h640v249H0z"/>
+    <path fill="#fff" d="M0 240h640v240H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ie.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ie.svg
new file mode 100644
index 0000000..53f3464
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ie.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ie" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h640v480H0z"/>
+    <path fill="#009A49" d="M0 0h213.3v480H0z"/>
+    <path fill="#FF7900" d="M426.7 0H640v480H426.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/il.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/il.svg
new file mode 100644
index 0000000..fc10b47
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/il.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-il" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="il-a">
+      <path fill-opacity=".7" d="M-87.6 0H595v512H-87.6z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#il-a)" transform="translate(82.1) scale(.94)">
+    <path fill="#fff" d="M619.4 512H-112V0h731.4z"/>
+    <path fill="#00c" d="M619.4 115.2H-112V48h731.4zm0 350.5H-112v-67.2h731.4zm-483-275l110.1 191.6L359 191.6l-222.6-.8z"/>
+    <path fill="#fff" d="M225.8 317.8l20.9 35.5 21.4-35.3-42.4-.2z"/>
+    <path fill="#00c" d="M136 320.6L246.2 129l112.4 190.8-222.6.8z"/>
+    <path fill="#fff" d="M225.8 191.6l20.9-35.5 21.4 35.4-42.4.1zM182 271.1l-21.7 36 41-.1-19.3-36zm-21.3-66.5l41.2.3-19.8 36.3-21.4-36.6zm151.2 67l20.9 35.5-41.7-.5 20.8-35zm20.5-67l-41.2.3 19.8 36.3 21.4-36.6zm-114.3 0L189.7 256l28.8 50.3 52.8 1.2 32-51.5-29.6-52-55.6.5z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/im.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/im.svg
new file mode 100644
index 0000000..31b2222
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/im.svg
@@ -0,0 +1,36 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-im" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="im-a">
+      <path fill-opacity=".7" d="M-77.6 0H605v512H-77.6z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#im-a)" transform="translate(72.8) scale(.94)">
+    <path fill="#ba0000" fill-rule="evenodd" d="M629.4 512H-102V0h731.4z"/>
+    <path fill="#ffef00" fill-rule="evenodd" stroke="#000" stroke-width="2.2" d="M281 376c.2-.6.6-6.8.4-6.8s-9.4-10.9-9.2-10.9c.2 0 11.8 2.6 11.8 2.2 0-.4 4.7-11.5 4.7-11.7l5.6 13.5 11.5 5-8 6.7 1.7 13c0 .3-8-7.6-8-7.6l-8.9 1s-1.2-4-1.6-4.4z"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="2.6" d="M218.7 206.9c-7.7 4-37 37.5-41 42.7a77.3 77.3 0 01-16.8 23.4c-7.3 5.5-11.3 13-10.3 20 0 9 4.9 15 8.8 21.1 2.3 2.9 5.5 4.7 8.8 5 6.9.8 7.5 3 11 4.2 13.4 18.4 33.6 32 48 42.7a68.4 68.4 0 0118 12.4c4.2 8.2 3.4 16 2.8 20L237.3 439c-1.9 11 7.8 8.6 8.3 6.4 4.3-5.7 10.8-1.7 20-34.3l12.8-17.1s4.9-2 4.9-2.5c7.5-9 1.8-14-2.5-15.7l-9.2-3.4s-10.8-10.8-11.3-10.8c-5.1-14.9-30.3-46.6-36.1-51-4-4.3-6-6-9.8-8.4-5.9-2.8-7.8-3.8-11.4-5.2-3-1.2-.9-4.5 1-6 20-10.9 35.7-22.9 54.8-35.1l3-2-6.9-39.2-31.8-11.2c-1.7 1.1-3 2.3-4.4 3.4z"/>
+    <path fill="#ffec00" fill-rule="evenodd" d="M245.3 413.1c0-.4 20-4 20-4l-2.5 7.4-19.7 6 2.2-9.3z"/>
+    <path fill="none" stroke="#000" stroke-width="2.2" d="M193.6 338.5a37.9 37.9 0 0121.6-20.4"/>
+    <path fill="none" stroke="#000" stroke-width="2.4" d="M244.6 413.3c1.3-.3 7-2 8.6-2.3 1.8-.4 3.5-.8 5.2-1.4 2-.4 3.2-.8 5.2-1.1a39 39 0 015-1.4M241 425.6a14.6 14.6 0 012.5-2c1.1-.4 5-2 6.5-2.3a54 54 0 004.7-1.4l4.6-1.2c1.5-.6 2.9-1 4.4-1.4"/>
+    <path fill="none" stroke="#000" stroke-width="2.2" d="M249 341.4h-.2c.8 0 .3 0-.9 1.4-.4 1.1-4 3.7-6.8 3.7a53 53 0 01-4.7.3l-1.3-.3m13.7 53.5h1.4c1.5 0 3 .3 4.2.3 1.5 0 2.9.4 4.3.4 1.5.2 3.2.1 4.7.4 1.6 0 3 .3 4.7.3 1.4.1 2.2.3 3.7.3l-3.7-.3c1.4.1 2.2.3 3.7.3m-32.7 33a13.6 13.6 0 012.3-2c1-.3 4.6-2 6-2.2a46.7 46.7 0 004.2-1.5l4.3-1c1.3-.7 2.6-1.1 4-1.5m5.8-41.2c-.8 2.3.3 2.9.7 3.9a12 12 0 005.7 3.4c1.2.3 2 .6 3.4 1.2.9 0 1.3.3 2 .5m-124.4-94.8h.3c-.9 0-.3.1 1.1-1 1-1.1 1.7-1.6 2.6-2.7m14.4 24c.2 0 16.6-8.2 18.3-10l3.7-2.9c1-.5 1.7-1.1 2.6-1.7.7-1 1.7-1.7 2.3-2.7 1-.9.5-1.8 1.4-2.9l1.3-3.8m20.8 12.2c.1.6-.2 2.4-.2 3.8 0 1.6-2.1 6.5-4.6 8"/>
+    <path fill="none" stroke="#000" stroke-width="2.2" d="M192.6 307.8l6.7 2.1c5 1.8 15.4 8.4 16.5 9.3 1 .8 3 1.6 3.6 2.5 1.2 1 2 2.1 2.9 3.2 1 1.2 2 2.3 2.5 3.4a113.2 113.2 0 0113.4 24.5c.7.7 1 1.7 1.7 2.8.6 1.4 1.3 2 2 3.1 1 .7 2.2 2 3.4 2.6 1.3 1.1 2.5 1.5 3.5 2.3 1.3.6 16.3 10 17 10.5 1.4 1.1 5.5 5.4 2.6 8.6-1.2 1-2.4 2.5-3.4 3-1.1 1.2-2.6 1.7-3.9 2.2-6.7 2-10.2 1.3-11.5 1.3h-1.4m-88.8-114.9c2 .8 1.2.2 2.9 1 1.2.5 2 .5 3 1 1.3.3 4.7 1 6.3 2.6 1.2 1 2 2 3.4 2.7a21.8 21.8 0 004.6 2.4c1.6.6 3.4 1.3 5 1.3h7.8-4 4"/>
+    <path fill="#ffe606" fill-rule="evenodd" stroke="#000" stroke-width="2.2" d="M159 293.3c4.2-.3 11.3 1 11.5 1l9.4-.2c5-.4 6-2.3 6.8-3.7 1.9-2.8 3.1-3.8 4.6-6 2.2-1.6 5.4 2.3 5.5 2.3 8 7.6 1.6 16.8 1.2 17.1-4 3.7-4.9 3.9-7.3 1.6-2.4-2.9-3.1-4.2-5.1-5.2-3.9-1.8-11.8-.4-12-.4l-4.1 1.6c-2 .7-3.2 2.4-6.5 3-3.5.2-4.6-.1-6.3-2.9-2.3-3.5-1.2-7.8 2.3-8.2z"/>
+    <path fill="#ffef00" fill-rule="evenodd" stroke="#000" stroke-width="2.2" d="M381.8 120.7c-.6 0-6.3 2.8-6.2 3 .1.1-4.8 13.5-4.9 13.4-.1-.2-3.5-11.7-3.9-11.5-.3.2-12.3 1.6-12.4 1.7l9-11.5-1.3-12.5 9.8 3.8 10.5-8c.2-.1-2.7 10.8-2.7 10.8l5.2 7.2s-3 3-3.1 3.6z"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="2.6" d="M265 257.9c7.1 4.7 50.7 13.9 57.3 14.8a77 77 0 0128.6 3.2c8.3 3.6 16.8 3.4 22.5-1 7.8-4.2 10.6-11.4 14-18a12 12 0 000-10c-2.6-6.4-1-8-1.6-11.6 9.4-20.8 11.4-45 13.6-62.9-.2-10.5.9-18.5 2-21.7a32 32 0 0116-12.2l40.7-10.6c10.6-3.8 3.7-11 1.5-10.4-7-1-6.8-8.6-39.7-.7l-21.2-2.7s-4-3.3-4.5-3c-11.5-2.1-13.1 5.3-12.5 9.8l1.6 9.8s-4.1 14.6-3.9 15c-10.5 11.8-26 49.6-27 56.9-.5 6.8-3 5.5-2.4 12.2 0 5.2-.6 2 1.1 12.6.5 3.2-3.5 3-5.7 2-19.2-12-37.4-19.9-57.5-30.5l-3.1-1.6-30.8 25.2 5.8 33.2c1.8 1 3.4 1.5 5.1 2.2z"/>
+    <path fill="#ffec00" fill-rule="evenodd" d="M431.7 133.6a375 375 0 01-13.3-15.4l7.6-1.5 14.8 14.3-9.1 2.6z"/>
+    <path fill="none" stroke="#000" stroke-width="2.2" d="M392 215.2a37.9 37.9 0 01-28.4-8.8"/>
+    <path fill="none" stroke="#000" stroke-width="2.4" d="M432.2 134.1c-1-.9-5.2-5-6.2-6.4a66.5 66.5 0 00-3.8-3.8c-1.3-1.5-2.3-2.4-3.6-4a37.1 37.1 0 01-3.6-3.6m29.6 15c-.3 0-2-.7-3-1.2-.8-.9-4.2-3.4-5.1-4.6a54.2 54.2 0 00-3.5-3.4c-1.2-1.3-2.1-2-3.3-3.5a30.3 30.3 0 01-3.4-3"/>
+    <path fill="none" stroke="#000" stroke-width="2.2" d="M367.3 165.5l.1.3c-.4-.8-.2-.3 1.7 0 1.2-.2 5.2 1.7 6.5 4.1.8 1.1 2 2.8 2.6 4 .2.3.2 1 .4 1.3m40-38.2l-.2-.2-.6-1-1.8-3.9c-.7-1.2-1-2.7-1.7-3.9-.6-1.4-1.5-2.8-2-4.2-.8-1.5-1.2-2.8-2-4.4-.7-1.2-.8-2-1.6-3.3l1.6 3.3c-.7-1.2-.8-2-1.6-3.3m44.8 12.3a12 12 0 01-2.8-1c-.8-.7-4-3-5-4a47 47 0 00-3.3-3c-1-1.3-1.9-2-3-3.3a26.2 26.2 0 01-3.2-2.7m-38.9 15c2.5-.4 2.5-1.6 3.1-2.5.5-1 .9-3.5.2-6.6l-.6-3.5c-.4-.9-.4-1.4-.5-2m-21.7 154.8l-.1-.2c.4.8.2.3-1.6-.5l-3.5-1m13.9-24.3c-.1-.2-15.3-10.4-17.7-11-1.4-.7-2.7-1-4.3-1.8l-2.8-1.4c-1.3-.2-2.4-.7-3.5-.7-1.2-.4-1.9.4-3.2.2l-4 .7m.5-24.1c.4-.4 2.2-1 3.4-1.7 1.4-.7 6.7-1.3 9.2.1"/>
+    <path fill="none" stroke="#000" stroke-width="2.2" d="M365.7 231.2l-1.5-7a100 100 0 010-18.8c.2-1.3 0-3.4.5-4.5.3-1.4.8-2.7 1.3-4 .6-1.5 1.1-2.8 1.7-3.9.7-4 12-20.1 12.8-20.9a43 43 0 012-2.7c.3-1 1-1.8 1.6-3 1-1.1 1.2-2 1.8-3.2.1-1.1.6-2.9.6-4.2.3-1.7 0-3 .3-4.1-.2-1.5.7-19.2.8-20 .3-1.8 2-7.5 6.2-6.5 1.5.5 3.3.8 4.4 1.5 1.4.4 2.6 1.5 3.7 2.3 5 4.9 6.1 8.2 6.8 9.4l.7 1.2M352.6 276l-.1-.2c.4.7.2.3-.3-1.1-.1-1.3-.5-3-.7-4.2-.3-1.3-.9-2.7-.7-3.5-.5-1.3-.2-2.3 0-3.6.3-1.6.5-2.7.5-4.2.2-2 0-3.2.1-5-.5-1.5-.6-2.7-1.3-4.2l-2-4-2-3.5 2 3.4-2-3.4"/>
+    <path fill="#ffe606" fill-rule="evenodd" stroke="#000" stroke-width="2.2" d="M369.5 267.6c-2.3-3.6-4.7-10.4-4.8-10.5l-4.7-8.2c-2.8-4-5-4-6.6-4-3.4-.3-4.9-1-7.4-1.1-2.6-1.2-.7-5.9-.8-6 2.7-10.6 14-9.6 14.4-9.4 5.1 1.7 5.7 2.4 4.9 5.6-1.3 3.5-2 4.8-2 7 .3 4.2 5.5 10.5 5.5 10.6l3.4 2.8c1.6 1.4 3.7 1.6 5.8 4.3 1.9 2.9 2.2 4 .6 6.8-2 3.8-6.2 4.9-8.3 2.1z"/>
+    <path fill="#ffef00" fill-rule="evenodd" stroke="#000" stroke-width="2.2" d="M105.2 168.7c.5.4 5.8 3.7 6 3.5s14-3.4 13.8-3.2-7.8 9.3-7.4 9.5c.4.2 8 9.4 8.2 9.5l-14.5-1.2-9.8 7.8-2.2-10.2L87 180c-.2-.1 10.5-3.6 10.5-3.6l3.2-8.3s4.1.7 4.7.6z"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="2.6" d="M284 191.3c0-8.7-16.2-50.2-19-56.1a77.2 77.2 0 01-13-25.7c-1.5-9-6.3-16-13-18.4-7.9-4.1-15.5-2.5-22.8-1.8-3.6.7-6.7 2.7-8.4 5.5-4 5.7-6.1 5.2-8.9 7.7-22.5 3.5-43.8 15.1-60 23a68 68 0 01-19.3 10.2 32 32 0 01-19-6.6l-31.1-28.3c-9-6.7-11.2 3-9.5 4.5 3 6.4-3.5 10.3 21.2 33.6l9.3 19.2s-.5 5.2 0 5.4c4.4 10.8 11.6 8.1 15 5.1l7.3-6.7s14.5-4.6 14.7-5c15.6 2.3 55.8-5.3 62.4-8.5 6-3.3 6.3-.5 11.5-4.7 4.3-2.9 2-.6 10-7.9 2.4-2 4.3 1.3 4.8 3.7.4 22.7 3.8 42.2 5.9 64.8l.4 3.5 38 12 24.6-23-1-5.6z"/>
+    <path fill="#ffec00" fill-rule="evenodd" d="M88.7 119.8c.3.3-5.6 19.6-5.6 19.6l-5.4-5.5 3.8-20.3 7.2 6.2z"/>
+    <path fill="none" stroke="#000" stroke-width="2.2" d="M178.8 108.4c7.2 8 9.5 21.2 8.2 28.6"/>
+    <path fill="none" stroke="#000" stroke-width="2.4" d="M89 119.1c-.3 1.3-1.5 7.2-2 8.7a66.8 66.8 0 00-1.2 5.3l-1.4 5.2c-.2 1.7-.5 3.3-1 5m-3.7-33c.1.3.5 2 .6 3.1-.2 1.2-.5 5.4-1 6.9a54.4 54.4 0 00-.9 4.8l-1 4.6a30.6 30.6 0 01-.8 4.6"/>
+    <path fill="none" stroke="#000" stroke-width="2.2" d="M150.7 156.3l.1-.3c-.4.8 0 .3-.8-1.4-.9-1-1.4-5.3-.2-7.8a55 55 0 012-4.3c.1-.3.6-.7.8-1M98.8 129l-.1.2-.6 1c-.6 1.4-1.6 2.6-2.2 3.7-.6 1.3-1.7 2.3-2.3 3.6l-2.4 4c-.9 1.4-1.8 2.5-2.6 4l-2 3.2 2-3.2-2 3.2m-14.2-44.3c.2.2.7 1.9.8 3-.2 1-.4 5-.8 6.3l-.7 4.4c-.4 1.6-.5 2.7-1 4.3a26.2 26.2 0 01-.5 4.2M104 151c-1.7-1.9-2.7-1.2-3.8-1.3a12 12 0 00-5.7 3.5c-.8.9-1.5 1.6-2.6 2.5-.5.8-.9 1-1.4 1.5M232 90.4l-.1.3c.4-.8.1-.4.5 1.5.5 1.3.5 2.2 1 3.4m-27.9 1.8c0 .2-.3 18.5.5 20.9.2 1.5.6 2.7.8 4.6 0 1 .3 2 .4 3 .6 1.2.7 2.4 1.4 3.3.3 1.3 1.3 1.4 1.9 2.5.7.9 2 2.4 2.8 3m-20.5 12.9c-.6-.2-2-1.4-3.2-2-1.4-.8-4.9-4.9-5-7.8"/>
+    <path fill="none" stroke="#000" stroke-width="2.2" d="M206.5 121.6l-5 5a94.3 94.3 0 01-15.8 10.3c-1.2.6-2.7 2-4 2.1-1.3.6-2.7.8-4 1.1a113.4 113.4 0 01-28.7 1.5 43.2 43.2 0 01-3.4-.2c-1 .2-2 .1-3.3.2-1.6-.1-2.4.2-3.7.3-1 .6-2.7 1.1-3.9 1.9-1.5.6-2.5 1.5-3.6 2-1 .9-16.4 9.8-17.2 10.2-1.6.7-7.3 2.5-8.8-1.6-.4-1.6-1-3.3-1.1-4.5-.5-1.4-.2-3-.2-4.4 1.4-6.9 3.6-9.6 4.2-10.8l.7-1.2M251 108l-.1.3c.3-.7.2-.4-.8.8-1 .8-2.2 2-3.1 3-1 .8-1.8 2-2.6 2.4-.8 1-1.8 1.4-3 2a20 20 0 00-3.8 1.9c-1.7.8-2.7 1.7-4.2 2.6-1 1.2-2 2-2.8 3.4-.8 1.3-1.6 2.4-2.3 3.9l-1.8 3.5 1.8-3.5-1.8 3.5m11.7 73.1l.3-.5c-.5 1-.4.7.1-.9 0-1.8.5-4.1.5-5.8.3-1.8.6-3.7.6-5.5-.1-2-.1-4-.4-6 0-1.8-.3-3.7-.3-5.6 0-1.8-.2-3.3-.6-5a29.5 29.5 0 00-.4-4.8c.1-1.2-.2-2.4-.5-3.4l-1.2-5.1-1-4.1c-.2-1.6-1-3.6-1.4-4.9a13.6 13.6 0 01-1.1-3.4c-.5-1.1-1.2-2.4-1.3-3.6l-1.6-3.7-1.4-3.6c-.5-1.4-1.1-2.6-1.5-4-.5-.5-.6-1-.8-1.4"/>
+    <path fill="#ffe606" fill-rule="evenodd" stroke="#000" stroke-width="2.2" d="M234.9 98.5a59 59 0 01-6.2 9.7l-4.2 8.4c-1.8 4.6-.7 6.5.1 7.8 1.7 3 2 4.6 3.2 6.8.5 2.8-4.5 3.8-4.5 3.9-10.4 3.6-15.7-6.4-15.7-6.9-1.4-5.2-1.2-6 2-7.1 3.6-.9 5-1 6.8-2.2 3.5-2.6 5.9-10.3 6-10.4l.4-4.4c.3-2-.6-4 .4-7.2 1.4-3.2 2.2-4 5.4-4.3 4.2-.3 7.5 2.6 6.3 5.9z"/>
+    <path fill="#ffef00" fill-rule="evenodd" stroke="#000" stroke-width="2.2" d="M221.3 199.7c-1.6-1.5 29.4 11.2 33.7 11.3 5.8-2.1 29.9-22.4 29.9-22.4.2 2 1.1 7.1 3.4 8.2-9.3 7.5-17.7 14.8-27 22.3.6 12-1.5 24.7 4.5 38 0 0-7.2.2-7.2 0-6.4-6.4-8.7-37.2-8.7-37.2l-30.6-13.6c1.5-1 2.6-3.9 2-6.7z"/>
+    <path fill="none" stroke="#000" stroke-width="2.2" d="M250.8 231.3c.5-.4-5.6 2.8-7.2 3.6-28.1 15-42.6 37-43.5 37.8l-2.2 3.4-2.3 3a60.6 60.6 0 01-3.6 4.7c-.2.6.4-.3.2.2m77.9-70.6a79 79 0 006.5 4.7c26.2 18.2 52.3 21.1 53.5 21.5 1 0 2.5.3 4 .5 1.2 0 2.6.4 3.8.5 1.4.2 4.4.8 5.8 1.2.6-.2-.5-.3 0-.4"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/in.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/in.svg
new file mode 100644
index 0000000..6b831bc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/in.svg
@@ -0,0 +1,25 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-in" viewBox="0 0 640 480">
+  <path fill="#f93" d="M0 0h640v160H0z"/>
+  <path fill="#fff" d="M0 160h640v160H0z"/>
+  <path fill="#128807" d="M0 320h640v160H0z"/>
+  <g transform="matrix(3.2 0 0 3.2 320 240)">
+    <circle r="20" fill="#008"/>
+    <circle r="17.5" fill="#fff"/>
+    <circle r="3.5" fill="#008"/>
+    <g id="d">
+      <g id="c">
+        <g id="b">
+          <g id="a" fill="#008">
+            <circle r=".9" transform="rotate(7.5 -8.8 133.5)"/>
+            <path d="M0 17.5L.6 7 0 2l-.6 5L0 17.5z"/>
+          </g>
+          <use width="100%" height="100%" transform="rotate(15)" xlink:href="#a"/>
+        </g>
+        <use width="100%" height="100%" transform="rotate(30)" xlink:href="#b"/>
+      </g>
+      <use width="100%" height="100%" transform="rotate(60)" xlink:href="#c"/>
+    </g>
+    <use width="100%" height="100%" transform="rotate(120)" xlink:href="#d"/>
+    <use width="100%" height="100%" transform="rotate(-120)" xlink:href="#d"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/io.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/io.svg
new file mode 100644
index 0000000..d6e5854
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/io.svg
@@ -0,0 +1,138 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-io" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="io-a">
+      <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#io-a)" transform="scale(.9375)">
+    <path fill="#fff" fill-rule="evenodd" d="M0 0h1024v512H0z"/>
+    <path fill="#000063" fill-rule="evenodd" d="M1024 445.2c-11.5 7-21.3 23-51.8 23-61 0-76.2-33.9-122-33.9-30.4 0-45.6 34-76.1 34-61 0-76.2-34-122-34-30.4 0-45.6 34-76 34-61 0-76.3-34-122-34-30.5 0-45.7 34-76.2 34-61 0-76.2-34-121.9-34-30.5 0-45.7 34-76.2 34-61 0-76.2-34-121.9-34-30.5 0-39.6 24.2-57.9 24.2v43.7c18.3 0 27.4-24.2 58-24.2 45.6 0 60.9 34 121.8 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 122 34 30.4 0 45.6-34 76.1-34 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.5 0 40.3-9.6 51.8-16.5v-50.3zm0-84.9c-11.5 7-21.3 23-51.8 23-61 0-76.2-34-122-34-30.4 0-45.6 34-76.1 34-61 0-76.2-34-122-34-30.4 0-45.6 34-76 34-61 0-76.3-34-122-34-30.5 0-45.7 34-76.2 34-61 0-76.2-34-121.9-34-30.5 0-45.7 34-76.2 34-61 0-76.2-34-121.9-34-30.5 0-39.6 24.3-57.9 24.3v43.7c18.3 0 27.4-24.2 58-24.2 45.6 0 60.9 34 121.8 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 122 34 30.4 0 45.6-34 76.1-34 45.7 0 61 34 122 34 30.4 0 45.6-34 76.1-34 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.5 0 40.3-9.6 51.8-16.5v-50.3zm0-84.9c-11.5 7-21.3 23-51.8 23-61 0-76.2-34-122-34-30.4 0-45.6 34-76.1 34-61 0-76.2-34-122-34-30.4 0-45.6 34-76 34-61 0-76.3-34-122-34-30.5 0-45.7 34-76.2 34-61 0-76.2-34-121.9-34-30.5 0-45.7 34-76.2 34-61 0-76.2-34-121.9-34-30.5 0-39.6 24.3-57.9 24.3v43.7c18.3 0 27.4-24.2 58-24.2 45.6 0 60.9 34 121.8 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 122 34 30.4 0 45.6-34 76.1-34 45.7 0 61 34 122 34 30.4 0 45.6-34 76.1-34 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.5 0 40.3-9.7 51.8-16.6v-50.2zm0-84.9c-11.5 6.9-21.3 23-51.8 23-61 0-76.2-34-122-34-30.4 0-45.6 34-76.1 34-61 0-76.2-34-122-34-30.4 0-45.6 34-76 34-61 0-76.3-34-122-34-30.5 0-45.7 34-76.2 34-61 0-76.2-34-121.9-34-30.5 0-45.7 34-76.2 34-61 0-76.2-34-121.9-34-30.5 0-39.6 24.3-57.9 24.3v43.7c18.3 0 27.4-24.2 58-24.2 45.6 0 60.9 34 121.8 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 122 34 30.4 0 45.6-34 76.1-34 45.7 0 61 34 122 34 30.4 0 45.6-34 76.1-34 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.5 0 40.3-9.7 51.8-16.6v-50.2zm0-85c-11.5 7-21.3 23.1-51.8 23.1-61 0-76.2-34-122-34-30.4 0-45.6 34-76.1 34-61 0-76.2-34-122-34-30.4 0-45.6 34-76 34-61 0-76.3-34-122-34-30.5 0-45.7 34-76.2 34-61 0-76.2-34-121.9-34-30.5 0-45.7 34-76.2 34-61 0-76.2-34-121.9-34C27.4 94.7 18.3 119 0 119v43.7c18.3 0 27.4-24.2 57.9-24.2 45.7 0 61 34 122 34 30.4 0 45.6-34 76.1-34 45.7 0 61 34 122 34 30.4 0 45.6-34 76-34 45.8 0 61 34 122 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.4 0 40.3-9.7 51.8-16.6v-50.2zm0-84.8c-11.5 6.9-21.3 23-51.8 23-61 0-76.2-34-122-34-30.4 0-45.6 34-76.1 34-61 0-76.2-34-122-34-30.4 0-45.6 34-76 34-61 0-76.3-34-122-34-30.5 0-45.7 34-76.2 34-61 0-76.2-34-121.9-34-30.5 0-45.7 34-76.2 34-61 0-76.2-34-121.9-34C27.4 9.7 18.3 34 0 34v43.8c18.3 0 27.4-24.2 57.9-24.2 45.7 0 61 34 122 34 30.4 0 45.6-34 76.1-34 45.7 0 61 34 122 34 30.4 0 45.6-34 76-34 45.8 0 61 34 122 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.5 0 45.7-34 76.2-34 45.7 0 61 34 121.9 34 30.4 0 40.3-9.7 51.8-16.6V20.7z"/>
+    <path fill="#000063" fill-rule="evenodd" d="M0 0h261.3v158H0z"/>
+    <g stroke-width="1pt">
+      <path fill="#fff" d="M0 0v17.7L232.1 158h29.2v-17.7L29.3.1H0zm261.3 0v17.7L29.3 158H0v-17.7L232.1.1h29.2z"/>
+      <path fill="#fff" d="M108.9 0v158h43.5V0H109zM0 52.8v52.6h261.3V52.7H0z"/>
+      <path fill="#c00" d="M0 63.2v31.6h261.3V63.2H0zM117.6 0v158h26.1V0h-26.1zM0 158l87.1-52.7h19.5L19.5 158H0zM0 0l87.1 52.7H67.6L0 11.8V.1zm154.7 52.7L241.8.1h19.5l-87 52.6h-19.6zM261.3 158l-87-52.7h19.4l67.6 40.9V158z"/>
+    </g>
+    <path fill="#a24300" fill-rule="evenodd" stroke="#fff" stroke-width="6.9" d="M815-301.2l-17.8 708.7c0 37.3 80.1 37.3 88.6 0l-17.7-708.7H815z" transform="matrix(.2064 0 0 .4902 211.6 267.4)"/>
+    <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="8.3" d="M496 549.2l17.8 70.9 35.4-53.2-17.7 88.6 35.4-35.4-35.4 88.6 35.4-35.5-35.4 88.6 35.4-35.4-35.4 106.3 35.4-35.5-35.4 106.3 35.4-35.4-35.4 106.3-17.7 53.2-17.7 17.7-17.8-17.7-17.7-53.2-35.4-106.3 35.4 35.4-35.4-106.3 35.4 35.5-35.4-106.3 35.4 35.4-35.4-88.6 35.4 35.5-35.4-88.6 35.4 35.4L443 567l35.4 53.2 17.8-70.9z" transform="matrix(-.2354 .06743 -.1035 -.19501 591.3 322.6)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M496 549.2v496m-70.8-177l70.9 106.2 70.8-106.3" transform="matrix(-.2354 .06743 -.1035 -.19501 591.3 322.6)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 797.2l70.9 106.3 70.8-106.3" transform="matrix(-.2354 .06743 -.1035 -.19501 591.3 322.6)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 726.4l70.9 106.3 70.8-106.3" transform="matrix(-.2354 .06743 -.1035 -.19501 591.3 322.6)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 673.2l70.9 88.6 70.8-88.6" transform="matrix(-.2354 .06743 -.1035 -.19501 591.3 322.6)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 620l70.9 88.7 70.8-88.6" transform="matrix(-.2354 .06743 -.1035 -.19501 591.3 322.6)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M443 567l53 106.2L549.3 567" transform="matrix(-.2354 .06743 -.1035 -.19501 591.3 322.6)"/>
+    <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="8.3" d="M496 549.2l17.8 70.9 35.4-53.2-17.7 88.6 35.4-35.4-35.4 88.6 35.4-35.5-35.4 88.6 35.4-35.4-35.4 106.3 35.4-35.5-35.4 106.3 35.4-35.4-35.4 106.3-17.7 53.2-17.7 17.7-17.8-17.7-17.7-53.2-35.4-106.3 35.4 35.4-35.4-106.3 35.4 35.5-35.4-106.3 35.4 35.4-35.4-88.6 35.4 35.5-35.4-88.6 35.4 35.4L443 567l35.4 53.2 17.8-70.9z" transform="matrix(.17703 -.18126 .22077 .14638 73.8 93.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M496 549.2v496m-70.8-177l70.9 106.2 70.8-106.3" transform="matrix(.17703 -.18126 .22077 .14638 73.8 93.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 797.2l70.9 106.3 70.8-106.3" transform="matrix(.17703 -.18126 .22077 .14638 73.8 93.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 726.4l70.9 106.3 70.8-106.3" transform="matrix(.17703 -.18126 .22077 .14638 73.8 93.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 673.2l70.9 88.6 70.8-88.6" transform="matrix(.17703 -.18126 .22077 .14638 73.8 93.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 620l70.9 88.7 70.8-88.6" transform="matrix(.17703 -.18126 .22077 .14638 73.8 93.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M443 567l53 106.2L549.3 567" transform="matrix(.17703 -.18126 .22077 .14638 73.8 93.5)"/>
+    <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="8.3" d="M496 549.2l17.8 70.9 35.4-53.2-17.7 88.6 35.4-35.4-35.4 88.6 35.4-35.5-35.4 88.6 35.4-35.4-35.4 106.3 35.4-35.5-35.4 106.3 35.4-35.4-35.4 106.3-17.7 53.2-17.7 17.7-17.8-17.7-17.7-53.2-35.4-106.3 35.4 35.4-35.4-106.3 35.4 35.5-35.4-106.3 35.4 35.4-35.4-88.6 35.4 35.5-35.4-88.6 35.4 35.4L443 567l35.4 53.2 17.8-70.9z" transform="matrix(.1135 .2156 -.24917 .1076 581.8 -57.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M496 549.2v496m-70.8-177l70.9 106.2 70.8-106.3" transform="matrix(.1135 .2156 -.24917 .1076 581.8 -57.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 797.2l70.9 106.3 70.8-106.3" transform="matrix(.1135 .2156 -.24917 .1076 581.8 -57.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 726.4l70.9 106.3 70.8-106.3" transform="matrix(.1135 .2156 -.24917 .1076 581.8 -57.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 673.2l70.9 88.6 70.8-88.6" transform="matrix(.1135 .2156 -.24917 .1076 581.8 -57.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 620l70.9 88.7 70.8-88.6" transform="matrix(.1135 .2156 -.24917 .1076 581.8 -57.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M443 567l53 106.2L549.3 567" transform="matrix(.1135 .2156 -.24917 .1076 581.8 -57.8)"/>
+    <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="8.3" d="M496 549.2l17.8 70.9 35.4-53.2-17.7 88.6 35.4-35.4-35.4 88.6 35.4-35.5-35.4 88.6 35.4-35.4-35.4 106.3 35.4-35.5-35.4 106.3 35.4-35.4-35.4 106.3-17.7 53.2-17.7 17.7-17.8-17.7-17.7-53.2-35.4-106.3 35.4 35.4-35.4-106.3 35.4 35.5-35.4-106.3 35.4 35.4-35.4-88.6 35.4 35.5-35.4-88.6 35.4 35.4L443 567l35.4 53.2 17.8-70.9z" transform="matrix(-.15682 .19451 -.23555 -.12827 705.9 197.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M496 549.2v496m-70.8-177l70.9 106.2 70.8-106.3" transform="matrix(-.15682 .19451 -.23555 -.12827 705.9 197.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 797.2l70.9 106.3 70.8-106.3" transform="matrix(-.15682 .19451 -.23555 -.12827 705.9 197.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 726.4l70.9 106.3 70.8-106.3" transform="matrix(-.15682 .19451 -.23555 -.12827 705.9 197.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 673.2l70.9 88.6 70.8-88.6" transform="matrix(-.15682 .19451 -.23555 -.12827 705.9 197.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 620l70.9 88.7 70.8-88.6" transform="matrix(-.15682 .19451 -.23555 -.12827 705.9 197.8)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M443 567l53 106.2L549.3 567" transform="matrix(-.15682 .19451 -.23555 -.12827 705.9 197.8)"/>
+    <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="8.3" d="M496 549.2l17.8 70.9 35.4-53.2-17.7 88.6 35.4-35.4-35.4 88.6 35.4-35.5-35.4 88.6 35.4-35.4-35.4 106.3 35.4-35.5-35.4 106.3 35.4-35.4-35.4 106.3-17.7 53.2-17.7 17.7-17.8-17.7-17.7-53.2-35.4-106.3 35.4 35.4-35.4-106.3 35.4 35.5-35.4-106.3 35.4 35.4-35.4-88.6 35.4 35.5-35.4-88.6 35.4 35.4L443 567l35.4 53.2 17.8-70.9z" transform="matrix(-.15547 -.16616 .17678 -.15123 275.8 396)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M496 549.2v496m-70.8-177l70.9 106.2 70.8-106.3" transform="matrix(-.15547 -.16616 .17678 -.15123 275.8 396)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 797.2l70.9 106.3 70.8-106.3" transform="matrix(-.15547 -.16616 .17678 -.15123 275.8 396)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 726.4l70.9 106.3 70.8-106.3" transform="matrix(-.15547 -.16616 .17678 -.15123 275.8 396)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 673.2l70.9 88.6 70.8-88.6" transform="matrix(-.15547 -.16616 .17678 -.15123 275.8 396)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 620l70.9 88.7 70.8-88.6" transform="matrix(-.15547 -.16616 .17678 -.15123 275.8 396)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M443 567l53 106.2L549.3 567" transform="matrix(-.15547 -.16616 .17678 -.15123 275.8 396)"/>
+    <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="8.3" d="M460.6 549.2l28.7 70.9 42.2-53.2-10.2 88.6 28-35.4-17.8 88.6 25.2-35.5-25.2 88.6 35.4-35.4-35.4 106.3 35.4-35.5-35.4 106.3 35.4-35.4-35.4 106.3-17.7 53.2-17.7 17.7-17.8-17.7-17.7-53.2-35.4-106.3 35.4 35.4-35.4-106.3 35.4 35.5-35.4-106.3 35.4 35.4-45.6-88.6 45.6 35.5-53.1-88.6 43 35.4-25.3-88.6 35.4 53.2v-70.9z" transform="matrix(-.27108 -.06397 -.15704 .20433 684.1 -32.2)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M467.2 584.6l28.9 124v336.7" transform="matrix(-.27108 -.06397 -.15704 .20433 684.1 -32.2)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M436.2 885.8l59.9 88.6 60.6-88.6" transform="matrix(-.27108 -.06397 -.15704 .20433 684.1 -32.2)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M434.5 815l61.6 88.5 60.6-88.5" transform="matrix(-.27108 -.06397 -.15704 .20433 684.1 -32.2)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M435.4 744.1l60.7 88.6 59.8-88.6" transform="matrix(-.27108 -.06397 -.15704 .20433 684.1 -32.2)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M432.8 691l63.3 70.8 53.1-70.9" transform="matrix(-.27108 -.06397 -.15704 .20433 684.1 -32.2)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 637.8l70.9 70.9 45.4-70.9" transform="matrix(-.27108 -.06397 -.15704 .20433 684.1 -32.2)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M436.1 593.2l53.2 87 35.3-95.6" transform="matrix(-.27108 -.06397 -.15704 .20433 684.1 -32.2)"/>
+    <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="8.3" d="M460.6 549.2l28.7 70.9 42.2-53.2-10.2 88.6 28-35.4-17.8 88.6 25.2-35.5-25.2 88.6 35.4-35.4-35.4 106.3 35.4-35.5-35.4 106.3 35.4-35.4-35.4 106.3-17.7 53.2-17.7 17.7-17.8-17.7-17.7-53.2-35.4-106.3 35.4 35.4-35.4-106.3 35.4 35.5-35.4-106.3 35.4 35.4-45.6-88.6 45.6 35.5-53.1-88.6 43 35.4-25.3-88.6 35.4 53.2v-70.9z" transform="matrix(.27011 .06695 .00989 .24471 240.8 -138.4)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M467.2 584.6l28.9 124v336.7" transform="matrix(.27011 .06695 .00989 .24471 240.8 -138.4)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M436.2 885.8l59.9 88.6 60.6-88.6" transform="matrix(.27011 .06695 .00989 .24471 240.8 -138.4)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M434.5 815l61.6 88.5 60.6-88.5" transform="matrix(.27011 .06695 .00989 .24471 240.8 -138.4)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M435.4 744.1l60.7 88.6 59.8-88.6" transform="matrix(.27011 .06695 .00989 .24471 240.8 -138.4)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M432.8 691l63.3 70.8 53.1-70.9" transform="matrix(.27011 .06695 .00989 .24471 240.8 -138.4)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 637.8l70.9 70.9 45.4-70.9" transform="matrix(.27011 .06695 .00989 .24471 240.8 -138.4)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M436.1 593.2l53.2 87 35.3-95.6" transform="matrix(.27011 .06695 .00989 .24471 240.8 -138.4)"/>
+    <path fill="#006d00" fill-rule="evenodd" stroke="#fff" stroke-width="8.3" d="M354.3 531.5l88.6 88.6 17.7-53.2v88.6l35.5-35.4-17.8 88.6 35.5-35.5-17.7 88.6 35.4-35.4-17.7 106.3 35.4-35.4-35.4 106.3 35.4-35.5-17.7 106.3-17.7 53.2-17.7 17.7-17.8-17.7-17.7-53.2-53.1-82.3 35.4 11.5-35.4-106.3 35.4 35.4-53.1-106.3 35.4 35.4-53.2-88.6 53.2 35.5-70.9-88.6 53.2 35.4-70.9-70.8 70.9 35.4-53.2-88.6z" transform="matrix(.03453 -.23456 .24402 .04167 115.5 229.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M379 560l64 95.5 17.6 53.2 8.9 45.2 8.8 78.8 9.4 70.9 8.4 141.7" transform="matrix(.03453 -.23456 .24402 .04167 115.5 229.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M425.2 903.5l63.7 71 50.7-88.7" transform="matrix(.03453 -.23456 .24402 .04167 115.5 229.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M417 815l70.7 88.5 50.7-88.5" transform="matrix(.03453 -.23456 .24402 .04167 115.5 229.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M407.5 752.4l70.9 80.3 45.9-88.6M372.1 637.8l88.5 70.9 25.9-70.9" transform="matrix(.03453 -.23456 .24402 .04167 115.5 229.5)"/>
+    <path fill="none" stroke="#000" stroke-width="1pt" d="M360.6 602.4l82.3 53.1 10.5-53.1m-63.6 88.5l81 71 34-71" transform="matrix(.03453 -.23456 .24402 .04167 115.5 229.5)"/>
+    <g fill-rule="evenodd">
+      <path fill="#c00" stroke="#000" stroke-width="1pt" d="M541.5 1173.3l-1.7-229.1-61.1-107c-15.3-52.6-7.8-78 17-79.8 24.7-1.6 49.2 13.6 84.8 15.3 35.6 1.7 28.9-59.4 81.5-57.7 52.6 1.7 144.3 32.3 222.3 37.4 78.1 5 118.8-27.2 208.8-30.6 90-3.4 113.7 42.4 118.8 42.4s30.6-18.6 56-22c25.5-3.4 34 10.2 34 10.2s-1.7 57.7-13.6 91.6c-11.9 34-54.3 90-56 90-1.7 0-15.3 249.5-15.3 251.2 0 1.7-675.5-6.8-675.5-11.9z" transform="matrix(.13659 0 0 .12573 266.4 208.2)"/>
+      <g stroke="#000" stroke-width="1pt">
+        <path fill="#fff100" d="M531.5 584.6s-68-52-69.8-177.1c-1-72 34.4-124 123-124 124 0 301.1 53.1 301.1 53.1v17.7s-141.7-53.1-301.2-53.1c-70.8 0-106.3 52-106.3 105.2 0 88.6 71 178.3 71 178.3v141.7h-17.8V584.6z" transform="matrix(-.13659 0 0 .12573 508.4 252.7)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 506.2 252.5)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 508.6 247.4)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 509.9 242.2)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 510.8 236.7)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 510.6 230.7)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 502.7 257)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 508.5 225)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 504 220.5)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 498 217.5)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 492 217.1)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 485.5 217.3)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 479 218.2)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 472.6 219)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 465.6 220)"/>
+        <path fill="#fff" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(-.13659 0 0 .12573 459.6 221.6)"/>
+      </g>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 268.6 252.5)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 266.1 247.4)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 264.9 242.2)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 264 236.7)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 264.2 230.7)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 266.2 225)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 270.6 220.5)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 276.7 217.5)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 282.7 217.1)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 289.2 217.3)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 295.7 218.2)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 302.2 219)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 309.1 220)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 315.1 221.6)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 272 257)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M531.5 584.6s-68-52-69.8-177.1c-1-72 34.4-124 123-124 124 0 301.1 53.1 301.1 53.1v17.7s-141.7-53.1-301.2-53.1c-70.8 0-106.3 52-106.3 105.2 0 88.6 71 178.3 71 178.3v141.7h-17.8V584.6z" transform="matrix(.13659 0 0 .12573 266.4 252.7)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="3" d="M1240.2 531.5s15.3-35.4 70.9-35.4c37.8 0 70.8 35.4 70.8 70.8v70.9h35.5v-70.9c0-35.4 35.4-70.8 70.8-70.8 53.2 0 70.9 35.4 70.9 35.4s0-106.3-70.9-106.3c-53.1 0-70.8 35.4-70.8 35.4s17.7-53.1 17.7-106.3-35.4-88.6-35.4-88.6c0 6.8-35.5 35.5-35.5 88.6s17.7 106.3 17.7 106.3-17.7-35.4-70.8-35.4c-70.9 0-70.9 106.3-70.9 106.3z" transform="matrix(.04553 0 0 .0479 299.4 309)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="3" d="M1240.2 531.5s15.3-35.4 70.9-35.4c37.8 0 70.8 35.4 70.8 70.8v70.9h35.5v-70.9c0-35.4 35.4-70.8 70.8-70.8 53.2 0 70.9 35.4 70.9 35.4s0-106.3-70.9-106.3c-53.1 0-70.8 35.4-70.8 35.4s17.7-53.1 17.7-106.3-35.4-88.6-35.4-88.6c0 6.8-35.5 35.5-35.5 88.6s17.7 106.3 17.7 106.3-17.7-35.4-70.8-35.4c-70.9 0-70.9 106.3-70.9 106.3z" transform="matrix(.04553 0 0 .0479 347.8 309)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M531.5 832.7V673.2s35.4 53.2 88.6 53.2c43.5 0 88.6-70.9 88.6-70.9s41.5 53.2 88.6 53.2c42 0 88.5-68.6 88.5-68.6s43.2 68.6 88.6 68.6c45.5 0 88.6-53.2 88.6-53.2s46.3 70.9 106.3 70.9c53.1 0 70.9-53.2 70.9-53.2v159.5H531.5z" transform="matrix(.13659 0 0 .12573 266.4 252.7)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M708.7 832.7v-124S815 744 815 832.7H708.7z" transform="matrix(.13659 0 0 .12573 242.2 252.7)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M708.7 832.7v-124S815 744 815 832.7H708.7z" transform="matrix(-.13659 0 0 .12573 532.5 252.7)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M602.4 832.7C602.4 744 708.7 688 708.7 688S815 744 815 832.7H602.4z" transform="matrix(.13659 0 0 .12573 266.4 252.7)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M602.4 832.7C602.4 744 708.7 688 708.7 688S815 744 815 832.7H602.4z" transform="matrix(.13659 0 0 .12573 314.8 252.7)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M584.6 847.5c0-88.6 124.1-159.4 124.1-159.4s124 70.8 124 159.4h-248z" transform="matrix(.13659 0 0 .12573 290.6 250.9)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M1275.6 655.5c-35.4-17.7-166-35.4-376.3-35.4s-350 17.7-385.5 35.4c-35.4 17.7-35.4 53.2 0 70.9 35.4 17.7 175.3 35.4 385.5 35.4s340.9-17.7 376.3-35.4c35.4-17.7 35.4-53.2 0-70.9z" transform="matrix(.13505 0 0 .12573 265.9 275)"/>
+      <path fill="gray" d="M435.8 366.3c0 4.5-40.3 4.5-48.4 4.5-8.8 0-48.4 1.2-48.4-4.5 0-4.4 39.9-4.4 48.4-4.4 8.4 0 48.4.9 48.4 4.4z"/>
+      <path fill="#c00" d="M343.8 350.3c0 1.5-1 2.7-2.4 2.7s-2.4-1.2-2.4-2.7 1-2.6 2.4-2.6c1.3 0 2.4 1.2 2.4 2.6zm92 0c0 1.5-1.1 2.7-2.5 2.7-1.3 0-2.4-1.2-2.4-2.7s1.1-2.6 2.4-2.6c1.4 0 2.4 1.2 2.4 2.6z"/>
+      <path d="M392.2 349c0 1.4-2.2 2.6-4.8 2.6s-4.9-1.2-4.9-2.7 2.2-2.6 4.9-2.6 4.8 1.2 4.8 2.6z"/>
+      <path fill="#006300" d="M415.4 349c0 1.4-1.6 2.6-3.6 2.6s-3.6-1.2-3.6-2.7 1.6-2.6 3.6-2.6 3.6 1.2 3.6 2.6zm-49.8 0c0 1.4-1.6 2.6-3.6 2.6s-3.7-1.2-3.7-2.7 1.6-2.6 3.7-2.6c2 0 3.6 1.2 3.6 2.6z"/>
+      <path fill="#fff100" stroke="#000" stroke-width="2.2" d="M1257.9 496s35.4-53 70.9-53h35.4v35.3c0 53.2-53.1 71-53.1 71h141.7s-53.2-17.8-53.2-71V443h35.5c35.4 0 70.8 53.2 70.8 53.2V354.3s-35.4 53.2-70.8 53.2h-35.5V372c0-53.1 53.2-70.8 53.2-70.8H1311s53.1 17.7 53.1 70.8v35.5h-35.4c-35.5 0-70.9-53.2-70.9-53.2v141.8z" transform="matrix(.07805 0 0 .07185 279.5 298)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="3.3" d="M1381.9 549.2h70.9s-53.2-17.7-53.2-70.9V443h35.4c35.5 0 71 53.2 71 53.2V354.3s-35.5 53.2-71 53.2h-35.4V372c0-53.1 53.2-70.8 53.2-70.8h-70.9v248z" transform="matrix(.03903 0 0 .06287 285 307.3)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="3.3" d="M1381.9 549.2h70.9s-53.2-17.7-53.2-70.9V443h35.4c35.5 0 71 53.2 71 53.2V354.3s-35.5 53.2-71 53.2h-35.4V372c0-53.1 53.2-70.8 53.2-70.8h-70.9v248z" transform="matrix(-.03903 0 0 .06287 489.7 307.3)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M903.5 602.4a17.7 17.7 0 11-35.4 0 17.7 17.7 0 0135.4 0z" transform="matrix(.13659 0 0 .12573 266.4 252.7)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="2.2" d="M1257.9 496s35.4-53 70.9-53h35.4v35.3c0 53.2-53.1 71-53.1 71h141.7s-53.2-17.8-53.2-71V443h35.5c35.4 0 70.8 53.2 70.8 53.2V354.3s-35.4 53.2-70.8 53.2h-35.5V372c0-53.1 53.2-70.8 53.2-70.8H1311s53.1 17.7 53.1 70.8v35.5h-35.4c-35.5 0-70.9-53.2-70.9-53.2v141.8z" transform="matrix(.07805 0 0 .07185 279.5 251.2)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M903.5 602.4a17.7 17.7 0 11-35.4 0 17.7 17.7 0 0135.4 0z" transform="matrix(.13659 0 0 .12573 266.6 206.3)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M850.4 655.5h70.9v53.2h-71z" transform="matrix(.13659 0 0 .12573 266.4 208.2)"/>
+      <path fill="#fff100" stroke="#000" stroke-width="1pt" d="M850.4 683.3h70.9v202.5h-71z" transform="matrix(.13659 0 0 .12573 266.4 208.2)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 324.4 246)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 324.4 240.3)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 324.4 235)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1pt" d="M478.4 549.2a17.7 17.7 0 11-35.5 0 17.7 17.7 0 0135.5 0z" transform="matrix(.13659 0 0 .12573 324.4 229.4)"/>
+      <path d="M392.5 357.5c0 1-2.2 1.8-5 1.8s-4.8-.8-4.8-1.8 2.2-1.8 4.9-1.8 4.9.8 4.9 1.8zm44.6 4.4c-.3.7-2.7.8-5.4.1-2.7-.6-4.6-1.6-4.4-2.3.3-.7 2.7-.8 5.4-.1 2.7.6 4.6 1.6 4.4 2.3zm-18.7-3c0 .9-2.4 1.4-5.2 1.3-2.7-.2-4.9-1.1-4.8-2 .1-.9 2.5-1.4 5.2-1.2 2.8.2 5 1 4.8 1.9zm-81.8 3c.2.7 2.6.8 5.3.1 2.7-.6 4.7-1.6 4.4-2.3-.3-.7-2.7-.8-5.4-.1-2.6.6-4.6 1.6-4.3 2.3zm19.5-3.4c.1.9 2.5 1.4 5.2 1.2 2.8-.2 5-1 4.8-2 0-.8-2.4-1.4-5.2-1.2-2.7.2-4.9 1-4.8 2z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/iq.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/iq.svg
new file mode 100644
index 0000000..ab90fd0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/iq.svg
@@ -0,0 +1,10 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-iq" viewBox="0 0 640 480">
+  <path fill="#fff" d="M0 160h640v160H0z"/>
+  <path fill="#ce1126" d="M0 0h640v160H0z"/>
+  <path d="M0 320h640v160H0z"/>
+  <g fill="#007a3d" transform="translate(-179.3 -92.8) scale(1.75182)">
+    <path d="M325.5 173.2a5 5 0 01-1.4-1c-.3-.5-.1-.5 1.2-.2 2.3.7 3.8.4 5.3-.8l1.3-1.1 1.5.7c.9.5 1.8.8 2 .7.7-.2 2.1-2 2-2.6 0-.7.6-.5 1 .3.6 1.6-.3 3.5-2 3.9-.7.2-1.4.1-2.6-.3-1.4-.5-1.7-.5-2.4 0a5.4 5.4 0 01-5.9.4zm5.8-5.3a8 8 0 01-1-4c.1-.6.3-.8.8-.6 1 .3 1.2 1 1 3 0 1.8-.3 2.3-.8 1.6zm-67.6-1.9c-.1 1.3 2.4 4.6 3.5 5.2-.8.3-1.7.2-2.4.5-4 4-18.4 18-21 21.4 7.8.2 16.4-.1 23.7-.4 0-5.3 5-5.6 8.4-7.5 1.7 2.7 6 2.5 6.6 6.6v17.6H216a9.7 9.7 0 01-12.3 7.5c2-2 5.4-2.8 6.6-5.7 1-6.4-2-10.3-4-14a24 24 0 007-3.6c-2.3 7 6.2 6.3 12.4 6.1.2-2.4.1-5.2-1.7-5.6 2.3-.9 2.7-1.2 6.6-4.4v9.6l46.1-.1c0-3 .8-7.9-1.6-7.9-2.2 0 0 6.2-1.8 6.2h-35.7v-6c1.5-1.6 1.3-1.5 11.6-11.8 1-1 8.3-7.6 14.6-13.7zm89.1-.3c2.5 1.4 4.5 3.2 7.5 4-.3 1.3-1.5 1.8-1.8 3.1v27c3.4.7 4.2-1.3 5.8-2.3.4 4.3 3.2 8.5 3 12h-14.5v-43.7zm-19.4 14.5s5.3-4.5 5.3-4.7V199h3.8l-.1-26.3c1.5-1.6 4.6-3.8 5.3-5.4v42h-33.4c-.5-8.7-.6-17.7 9.6-15.8V190c-.3-.6-.9.1-1-.7 1.6-1.6 2.1-2 6.5-5.8l.1 15.5h3.9v-18.8zm-12.6 18.6c.7 1 3.2 1 3-.8-.3-1.5-3.5-1-3 .8z"/>
+    <circle cx="224" cy="214.4" r="2"/>
+    <path d="M287 165.8c2.5 1.3 4.5 3.2 7.6 4-.4 1.2-1.5 1.7-1.8 3v27c3.4.7 4.1-1.2 5.7-2.3.5 4.3 3.2 8.6 3.1 12H287v-43.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ir.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ir.svg
new file mode 100644
index 0000000..ffb37b4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ir.svg
@@ -0,0 +1,219 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ir" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="ir-a">
+      <path fill-opacity=".7" d="M-85.3 0h682.7v512H-85.3z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#ir-a)" transform="translate(80) scale(.9375)">
+    <path fill="#fff" d="M-192 0h896v512h-896z"/>
+    <path fill="#da0000" d="M-192 343.8h896V512h-896z"/>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M-21.6 351h49v3.3h-49zm7.3 16.8h3.4v3.3h-3.4zm41.9 0v3.3h-9.8v-3.4zm5.2-16.8h3.4v20h-3.4z"/>
+      <path d="M52.4 367.7v3.4H33.8v-3.4zm-34.6-7.9H21v11.3h-3.3z"/>
+      <path d="M49.6 351H53v20h-3.4zm-8.4 0h3.3v20h-3.3zm-44.8 8v3.4h-18V359zm39.3 0v3.4h-18V359z"/>
+      <path d="M17.8 359.9H21V371h-3.3z"/>
+      <path d="M17.8 359.9H21V371h-3.3z"/>
+      <path d="M17.8 359.9H21V371h-3.3zm-39.3 0h3.3V371h-3.3zm28.8 0h3.4V371H7.3zm-14.3 0h3.4V371H-7z"/>
+      <path d="M9.6 367.7v3.4H-5.5v-3.4zm1-8.7v3.4H1V359z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M-102.2 351h49v3.3h-49zm7.3 16.8h3.4v3.3H-95zm41.9 0v3.3h-9.8v-3.4zm5.2-16.8h3.4v20h-3.4z"/>
+      <path d="M-28.2 367.7v3.4h-18.6v-3.4zm-34.6-7.9h3.3v11.3h-3.3z"/>
+      <path d="M-31 351h3.4v20H-31zm-8.4 0h3.3v20h-3.3zm-44.8 8v3.4h-18V359zm39.3 0v3.4h-18V359z"/>
+      <path d="M-62.8 359.9h3.3V371h-3.3z"/>
+      <path d="M-62.8 359.9h3.3V371h-3.3z"/>
+      <path d="M-62.8 359.9h3.3V371h-3.3zm-39.3 0h3.3V371h-3.3zm28.8 0h3.3V371h-3.3zm-14.3 0h3.4V371h-3.4z"/>
+      <path d="M-71 367.7v3.4h-15v-3.4zm1-8.7v3.4h-9.6V359z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M58.3 351h49v3.3h-49zm7.3 16.8H69v3.3h-3.4zm41.9 0v3.3h-9.8v-3.4zm5.3-16.8h3.4v20h-3.4z"/>
+      <path d="M132.3 367.7v3.4h-18.6v-3.4zm-34.6-7.9h3.4v11.3h-3.4z"/>
+      <path d="M129.5 351h3.4v20h-3.4zm-8.4 0h3.4v20H121zm-44.8 8v3.4h-18V359zm39.3 0v3.4h-18V359z"/>
+      <path d="M97.7 359.9h3.4V371h-3.4z"/>
+      <path d="M97.7 359.9h3.4V371h-3.4z"/>
+      <path d="M97.7 359.9h3.4V371h-3.4zm-39.3 0h3.4V371h-3.4zm28.8 0h3.4V371h-3.4zm-14.3 0h3.4V371h-3.4z"/>
+      <path d="M89.6 367.7v3.4H74.4v-3.4zm1-8.7v3.4H81V359z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M622.7 351h49v3.3h-49zm7.3 16.8h3.4v3.3H630zm41.9 0v3.3H662v-3.4zm5.3-16.8h3.3v20h-3.4z"/>
+      <path d="M696.7 367.7v3.4H678v-3.4zm-34.6-7.9h3.4v11.3H662z"/>
+      <path d="M694 351h3.3v20h-3.4zm-8.5 0h3.4v20h-3.4zm-44.8 8v3.4h-18V359zm39.3 0v3.4h-18V359z"/>
+      <path d="M662 359.9h3.5V371H662z"/>
+      <path d="M662 359.9h3.5V371H662z"/>
+      <path d="M662 359.9h3.5V371H662zm-39.2 0h3.4V371h-3.4zm28.8 0h3.4V371h-3.4zm-14.3 0h3.4V371h-3.4z"/>
+      <path d="M654 367.7v3.4h-15.2v-3.4zm1-8.7v3.4h-9.6V359z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M138.7 351h49.1v3.3h-49zm7.4 16.8h3.3v3.3h-3.3zm41.8 0v3.3h-9.8v-3.4zm5.3-16.8h3.4v20h-3.4z"/>
+      <path d="M212.8 367.7v3.4h-18.6v-3.4zm-34.7-7.9h3.4v11.3h-3.4z"/>
+      <path d="M210 351h3.4v20H210zm-8.5 0h3.4v20h-3.4zm-44.8 8v3.4h-17.9V359zm39.3 0v3.4h-17.9V359z"/>
+      <path d="M178.1 359.9h3.4V371h-3.4z"/>
+      <path d="M178.1 359.9h3.4V371h-3.4z"/>
+      <path d="M178.1 359.9h3.4V371h-3.4zm-39.3 0h3.4V371h-3.4zm28.8 0h3.4V371h-3.4zm-14.2 0h3.3V371h-3.3z"/>
+      <path d="M170 367.7v3.4h-15.1v-3.4zm1-8.7v3.4h-9.6V359z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M219.5 351h49v3.3h-49zm7.3 16.8h3.4v3.3h-3.4zm41.9 0v3.3h-9.8v-3.4zM274 351h3.3v20H274z"/>
+      <path d="M293.5 367.7v3.4h-18.6v-3.4zm-34.6-7.9h3.4v11.3h-3.4z"/>
+      <path d="M290.7 351h3.4v20h-3.4zm-8.4 0h3.4v20h-3.4zm-44.8 8v3.4h-18V359zm39.3 0v3.4h-18V359z"/>
+      <path d="M258.9 359.9h3.4V371h-3.4z"/>
+      <path d="M258.9 359.9h3.4V371h-3.4z"/>
+      <path d="M258.9 359.9h3.4V371h-3.4zm-39.3 0h3.3V371h-3.3zm28.8 0h3.4V371h-3.4zm-14.3 0h3.4V371H234z"/>
+      <path d="M250.8 367.7v3.4h-15.2v-3.4zm1-8.7v3.4H242V359z"/>
+    </g>
+    <path fill="#239f40" d="M-192 0h896v168.2h-896z"/>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M300.7 351h49v3.3h-49zm7.3 16.8h3.4v3.3H308zm41.9 0v3.3H340v-3.4zm5.3-16.8h3.3v20h-3.3z"/>
+      <path d="M374.7 367.7v3.4h-18.6v-3.4zm-34.6-7.9h3.4v11.3H340z"/>
+      <path d="M372 351h3.3v20H372zm-8.5 0h3.4v20h-3.4zm-44.8 8v3.4h-18V359zm39.3 0v3.4h-18V359z"/>
+      <path d="M340 359.9h3.5V371H340z"/>
+      <path d="M340 359.9h3.5V371H340z"/>
+      <path d="M340 359.9h3.5V371H340zm-39.2 0h3.4V371h-3.4zm28.8 0h3.4V371h-3.4zm-14.3 0h3.4V371h-3.4z"/>
+      <path d="M332 367.7v3.4h-15.2v-3.4zm1-8.7v3.4h-9.6V359z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M381.4 351h49v3.3h-49zm7.3 16.8h3.4v3.3h-3.4zm42 0v3.3h-9.9v-3.4zm5.2-16.8h3.4v20h-3.4z"/>
+      <path d="M455.4 367.7v3.4h-18.6v-3.4zm-34.6-7.9h3.4v11.3h-3.4z"/>
+      <path d="M452.7 351h3.3v20h-3.3zm-8.5 0h3.4v20h-3.4zm-44.8 8v3.4h-17.9V359zm39.3 0v3.4h-17.9V359z"/>
+      <path d="M420.8 359.9h3.4V371h-3.4z"/>
+      <path d="M420.8 359.9h3.4V371h-3.4z"/>
+      <path d="M420.8 359.9h3.4V371h-3.4zm-39.3 0h3.4V371h-3.4zm28.8 0h3.4V371h-3.4zm-14.3 0h3.4V371h-3.3z"/>
+      <path d="M412.7 367.7v3.4h-15.1v-3.4zm1-8.7v3.4H404V359z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M462.2 351h49v3.3h-49zm7.3 16.8h3.4v3.3h-3.4zm41.9 0v3.3h-9.8v-3.4zm5.2-16.8h3.4v20h-3.4z"/>
+      <path d="M536.2 367.7v3.4h-18.6v-3.4zm-34.7-7.9h3.4v11.3h-3.4z"/>
+      <path d="M533.4 351h3.4v20h-3.4zm-8.4 0h3.3v20H525zm-44.8 8v3.4h-18V359zm39.3 0v3.4h-18V359z"/>
+      <path d="M501.6 359.9h3.3V371h-3.3z"/>
+      <path d="M501.6 359.9h3.3V371h-3.3z"/>
+      <path d="M501.6 359.9h3.3V371h-3.3zm-39.4 0h3.4V371h-3.4zm28.9 0h3.3V371h-3.3zm-14.3 0h3.4V371h-3.4z"/>
+      <path d="M493.4 367.7v3.4h-15.1v-3.4zm1-8.7v3.4h-9.6V359z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M543.4 351h49v3.3h-49zm7.3 16.8h3.4v3.3h-3.4zm41.9 0v3.3h-9.8v-3.4zm5.2-16.8h3.4v20h-3.4z"/>
+      <path d="M617.4 367.7v3.4h-18.6v-3.4zm-34.6-7.9h3.3v11.3h-3.3z"/>
+      <path d="M614.6 351h3.4v20h-3.4zm-8.4 0h3.3v20h-3.3zm-44.8 8v3.4h-18V359zm39.3 0v3.4h-18V359z"/>
+      <path d="M582.8 359.9h3.3V371h-3.3z"/>
+      <path d="M582.8 359.9h3.3V371h-3.3z"/>
+      <path d="M582.8 359.9h3.3V371h-3.3zm-39.3 0h3.3V371h-3.3zm28.8 0h3.4V371h-3.4zm-14.3 0h3.4V371H558z"/>
+      <path d="M574.6 367.7v3.4h-15.1v-3.4zm1-8.7v3.4H566V359z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M-183.8 351h49v3.3h-49zm7.3 16.8h3.4v3.3h-3.4zm42 0v3.3h-9.9v-3.4zm5.2-16.8h3.4v20h-3.4z"/>
+      <path d="M-109.8 367.7v3.4h-18.6v-3.4zm-34.6-7.9h3.4v11.3h-3.4z"/>
+      <path d="M-112.5 351h3.3v20h-3.3zm-8.5 0h3.4v20h-3.4zm-44.8 8v3.4h-17.9V359zm39.3 0v3.4h-17.9V359z"/>
+      <path d="M-144.4 359.9h3.4V371h-3.4z"/>
+      <path d="M-144.4 359.9h3.4V371h-3.4z"/>
+      <path d="M-144.4 359.9h3.4V371h-3.4zm-39.3 0h3.4V371h-3.4zm28.8 0h3.4V371h-3.4zm-14.3 0h3.4V371h-3.4z"/>
+      <path d="M-152.5 367.7v3.4h-15.2v-3.4zm1-8.7v3.4h-9.6V359z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M-21.6 143.4h49v3.4h-49zm7.3 17h3.4v3.2h-3.4zm41.9-.2v3.4h-9.8v-3.4zm5.2-16.8h3.4v20.2h-3.4z"/>
+      <path d="M52.4 160.2v3.4H33.8v-3.4zm-34.6-7.9H21v11.3h-3.3z"/>
+      <path d="M49.6 143.4H53v20.2h-3.4zm-8.4 0h3.3v20.2h-3.3zm-44.8 8v3.4h-18v-3.3zm39.3 0v3.4h-18v-3.3z"/>
+      <path d="M17.8 152.3H21v11.3h-3.3z"/>
+      <path d="M17.8 152.3H21v11.3h-3.3z"/>
+      <path d="M17.8 152.3H21v11.3h-3.3zm-39.3 0h3.3v11.3h-3.3zm28.8 0h3.4v11.3H7.3zm-14.3 0h3.4v11.3H-7z"/>
+      <path d="M9.6 160.2v3.4H-5.5v-3.4zm1-8.7v3.3H1v-3.3z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M-102.2 143.4h49v3.4h-49zm7.3 17h3.4v3.2H-95zm41.9-.2v3.4h-9.8v-3.4zm5.2-16.8h3.4v20.2h-3.4z"/>
+      <path d="M-28.2 160.2v3.4h-18.6v-3.4zm-34.6-7.9h3.3v11.3h-3.3z"/>
+      <path d="M-31 143.4h3.4v20.2H-31zm-8.4 0h3.3v20.2h-3.3zm-44.8 8v3.4h-18v-3.3zm39.3 0v3.4h-18v-3.3z"/>
+      <path d="M-62.8 152.3h3.3v11.3h-3.3z"/>
+      <path d="M-62.8 152.3h3.3v11.3h-3.3z"/>
+      <path d="M-62.8 152.3h3.3v11.3h-3.3zm-39.3 0h3.3v11.3h-3.3zm28.8 0h3.3v11.3h-3.3zm-14.3 0h3.4v11.3h-3.4z"/>
+      <path d="M-71 160.2v3.4h-15v-3.4zm1-8.7v3.3h-9.6v-3.3z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M58.3 143.4h49v3.4h-49zm7.3 17H69v3.2h-3.4zm41.9-.2v3.4h-9.8v-3.4zm5.3-16.8h3.4v20.2h-3.4z"/>
+      <path d="M132.3 160.2v3.4h-18.6v-3.4zm-34.6-7.9h3.4v11.3h-3.4z"/>
+      <path d="M129.5 143.4h3.4v20.2h-3.4zm-8.4 0h3.4v20.2H121zm-44.8 8v3.4h-18v-3.3zm39.3 0v3.4h-18v-3.3z"/>
+      <path d="M97.7 152.3h3.4v11.3h-3.4z"/>
+      <path d="M97.7 152.3h3.4v11.3h-3.4z"/>
+      <path d="M97.7 152.3h3.4v11.3h-3.4zm-39.3 0h3.4v11.3h-3.4zm28.8 0h3.4v11.3h-3.4zm-14.3 0h3.4v11.3h-3.4z"/>
+      <path d="M89.6 160.2v3.4H74.4v-3.4zm1-8.7v3.3H81v-3.3z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M622.7 143.4h49v3.4h-49zm7.3 17h3.4v3.2H630zm41.9-.2v3.4H662v-3.4zm5.3-16.8h3.3v20.2h-3.4z"/>
+      <path d="M696.7 160.2v3.4H678v-3.4zm-34.6-7.9h3.4v11.3H662z"/>
+      <path d="M694 143.4h3.3v20.2h-3.4zm-8.5 0h3.4v20.2h-3.4zm-44.8 8v3.4h-18v-3.3zm39.3 0v3.4h-18v-3.3z"/>
+      <path d="M662 152.3h3.5v11.3H662z"/>
+      <path d="M662 152.3h3.5v11.3H662z"/>
+      <path d="M662 152.3h3.5v11.3H662zm-39.2 0h3.4v11.3h-3.4zm28.8 0h3.4v11.3h-3.4zm-14.3 0h3.4v11.3h-3.4z"/>
+      <path d="M654 160.2v3.4h-15.2v-3.4zm1-8.7v3.3h-9.6v-3.3z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M138.7 143.4h49.1v3.4h-49zm7.4 17h3.3v3.2h-3.3zm41.8-.2v3.4h-9.8v-3.4zm5.3-16.8h3.4v20.2h-3.4z"/>
+      <path d="M212.8 160.2v3.4h-18.6v-3.4zm-34.7-7.9h3.4v11.3h-3.4z"/>
+      <path d="M210 143.4h3.4v20.2H210zm-8.5 0h3.4v20.2h-3.4zm-44.8 8v3.4h-17.9v-3.3zm39.3 0v3.4h-17.9v-3.3z"/>
+      <path d="M178.1 152.3h3.4v11.3h-3.4z"/>
+      <path d="M178.1 152.3h3.4v11.3h-3.4z"/>
+      <path d="M178.1 152.3h3.4v11.3h-3.4zm-39.3 0h3.4v11.3h-3.4zm28.8 0h3.4v11.3h-3.4zm-14.2 0h3.3v11.3h-3.3z"/>
+      <path d="M170 160.2v3.4h-15.1v-3.4zm1-8.7v3.3h-9.6v-3.3z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M219.5 143.4h49v3.4h-49zm7.3 17h3.4v3.2h-3.4zm41.9-.2v3.4h-9.8v-3.4zm5.3-16.8h3.3v20.2H274z"/>
+      <path d="M293.5 160.2v3.4h-18.6v-3.4zm-34.6-7.9h3.4v11.3h-3.4z"/>
+      <path d="M290.7 143.4h3.4v20.2h-3.4zm-8.4 0h3.4v20.2h-3.4zm-44.8 8v3.4h-18v-3.3zm39.3 0v3.4h-18v-3.3z"/>
+      <path d="M258.9 152.3h3.4v11.3h-3.4z"/>
+      <path d="M258.9 152.3h3.4v11.3h-3.4z"/>
+      <path d="M258.9 152.3h3.4v11.3h-3.4zm-39.3 0h3.3v11.3h-3.3zm28.8 0h3.4v11.3h-3.4zm-14.3 0h3.4v11.3H234z"/>
+      <path d="M250.8 160.2v3.4h-15.2v-3.4zm1-8.7v3.3H242v-3.3z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M300.7 143.4h49v3.4h-49zm7.3 17h3.4v3.2H308zm41.9-.2v3.4H340v-3.4zm5.3-16.8h3.3v20.2h-3.3z"/>
+      <path d="M374.7 160.2v3.4h-18.6v-3.4zm-34.6-7.9h3.4v11.3H340z"/>
+      <path d="M372 143.4h3.3v20.2H372zm-8.5 0h3.4v20.2h-3.4zm-44.8 8v3.4h-18v-3.3zm39.3 0v3.4h-18v-3.3z"/>
+      <path d="M340 152.3h3.5v11.3H340z"/>
+      <path d="M340 152.3h3.5v11.3H340z"/>
+      <path d="M340 152.3h3.5v11.3H340zm-39.2 0h3.4v11.3h-3.4zm28.8 0h3.4v11.3h-3.4zm-14.3 0h3.4v11.3h-3.4z"/>
+      <path d="M332 160.2v3.4h-15.2v-3.4zm1-8.7v3.3h-9.6v-3.3z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M381.4 143.4h49v3.4h-49zm7.3 17h3.4v3.2h-3.4zm42-.2v3.4h-9.9v-3.4zm5.2-16.8h3.4v20.2h-3.4z"/>
+      <path d="M455.4 160.2v3.4h-18.6v-3.4zm-34.6-7.9h3.4v11.3h-3.4z"/>
+      <path d="M452.7 143.4h3.3v20.2h-3.3zm-8.5 0h3.4v20.2h-3.4zm-44.8 8v3.4h-17.9v-3.3zm39.3 0v3.4h-17.9v-3.3z"/>
+      <path d="M420.8 152.3h3.4v11.3h-3.4z"/>
+      <path d="M420.8 152.3h3.4v11.3h-3.4z"/>
+      <path d="M420.8 152.3h3.4v11.3h-3.4zm-39.3 0h3.4v11.3h-3.4zm28.8 0h3.4v11.3h-3.4zm-14.3 0h3.4v11.3h-3.3z"/>
+      <path d="M412.7 160.2v3.4h-15.1v-3.4zm1-8.7v3.3H404v-3.3z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M462.2 143.4h49v3.4h-49zm7.3 17h3.4v3.2h-3.4zm41.9-.2v3.4h-9.8v-3.4zm5.2-16.8h3.4v20.2h-3.4z"/>
+      <path d="M536.2 160.2v3.4h-18.6v-3.4zm-34.7-7.9h3.4v11.3h-3.4z"/>
+      <path d="M533.4 143.4h3.4v20.2h-3.4zm-8.4 0h3.3v20.2H525zm-44.8 8v3.4h-18v-3.3zm39.3 0v3.4h-18v-3.3z"/>
+      <path d="M501.6 152.3h3.3v11.3h-3.3z"/>
+      <path d="M501.6 152.3h3.3v11.3h-3.3z"/>
+      <path d="M501.6 152.3h3.3v11.3h-3.3zm-39.4 0h3.4v11.3h-3.4zm28.9 0h3.3v11.3h-3.3zm-14.3 0h3.4v11.3h-3.4z"/>
+      <path d="M493.4 160.2v3.4h-15.1v-3.4zm1-8.7v3.3h-9.6v-3.3z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M543.4 143.4h49v3.4h-49zm7.3 17h3.4v3.2h-3.4zm41.9-.2v3.4h-9.8v-3.4zm5.2-16.8h3.4v20.2h-3.4z"/>
+      <path d="M617.4 160.2v3.4h-18.6v-3.4zm-34.6-7.9h3.3v11.3h-3.3z"/>
+      <path d="M614.6 143.4h3.4v20.2h-3.4zm-8.4 0h3.3v20.2h-3.3zm-44.8 8v3.4h-18v-3.3zm39.3 0v3.4h-18v-3.3z"/>
+      <path d="M582.8 152.3h3.3v11.3h-3.3z"/>
+      <path d="M582.8 152.3h3.3v11.3h-3.3z"/>
+      <path d="M582.8 152.3h3.3v11.3h-3.3zm-39.3 0h3.3v11.3h-3.3zm28.8 0h3.4v11.3h-3.4zm-14.3 0h3.4v11.3H558z"/>
+      <path d="M574.6 160.2v3.4h-15.1v-3.4zm1-8.7v3.3H566v-3.3z"/>
+    </g>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M-183.8 143.4h49v3.4h-49zm7.3 17h3.4v3.2h-3.4zm42-.2v3.4h-9.9v-3.4zm5.2-16.8h3.4v20.2h-3.4z"/>
+      <path d="M-109.8 160.2v3.4h-18.6v-3.4zm-34.6-7.9h3.4v11.3h-3.4z"/>
+      <path d="M-112.5 143.4h3.3v20.2h-3.3zm-8.5 0h3.4v20.2h-3.4zm-44.8 8v3.4h-17.9v-3.3zm39.3 0v3.4h-17.9v-3.3z"/>
+      <path d="M-144.4 152.3h3.4v11.3h-3.4z"/>
+      <path d="M-144.4 152.3h3.4v11.3h-3.4z"/>
+      <path d="M-144.4 152.3h3.4v11.3h-3.4zm-39.3 0h3.4v11.3h-3.4zm28.8 0h3.4v11.3h-3.4zm-14.3 0h3.4v11.3h-3.4z"/>
+      <path d="M-152.5 160.2v3.4h-15.2v-3.4zm1-8.7v3.3h-9.6v-3.3z"/>
+    </g>
+    <path fill="#d90000" stroke-width="1pt" d="M-68.8 339.5h6V350h-6zm160.5 0h6V350h-6zm-283.7 0h6V350h-6zm81.5 0h6V350h-6zm80.9 0h6V350h-6zm40 0h6V350h-6zm40.9 0h6V350h-6zm80.4 0h6V350h-6zm203 0h6.1V350h-6zm-162.1 0h6V350h-6zm40 0h6V350h-6zm40.5 0h6V350h-6zm40.4 0h6V350h-6zm323.2 0h6V350h-6zm-242.7 0h6V350h-6zm40.8 0h6V350h-6zm41.3 0h6V350h-6zm38.8 0h6V350h-6zm41.3 0h6V350h-6zm40.4 0h6V350h-6zm119.7 0h6V350h-6zm-38.8 0h6V350h-6zm-808.9 0h6V350h-6z"/>
+    <path fill="#239e3f" stroke-width="1pt" d="M-68.8 162.6h6v10.5h-6zm160.5 0h6v10.5h-6zm-283.7 0h6v10.5h-6zm81.5 0h6v10.5h-6zm80.9 0h6v10.5h-6zm40 0h6v10.5h-6zm40.9 0h6v10.5h-6zm80.4 0h6v10.5h-6zm203 0h6.1v10.5h-6zm-162.1 0h6v10.5h-6zm40 0h6v10.5h-6zm40.5 0h6v10.5h-6zm40.4 0h6v10.5h-6zm323.2 0h6v10.5h-6zm-242.7 0h6v10.5h-6zm40.8 0h6v10.5h-6zm41.3 0h6v10.5h-6zm38.8 0h6v10.5h-6zm41.3 0h6v10.5h-6zm40.4 0h6v10.5h-6zm119.7 0h6v10.5h-6zm-38.8 0h6v10.5h-6zm-808.9 0h6v10.5h-6z"/>
+    <g fill="#da0000">
+      <path d="M279.8 197.5c8.4 10.4 34.5 67.6-15.7 105.2-23.7 17.8-9 18.6-8.3 21.6 38-20.1 50.3-47.5 50-72-.2-24.4-13.2-46-26-54.8z"/>
+      <path d="M284.8 194.8a73.3 73.3 0 0115.7 112.4c27.2-6 62-86.4-15.7-112.4zm-57.6 0a73.3 73.3 0 00-15.6 112.4c-27.3-6-62-86.4 15.6-112.4z"/>
+      <path d="M232.2 197.5c-8.4 10.4-34.5 67.6 15.7 105.2 23.6 17.8 9 18.6 8.3 21.6-38-20.1-50.3-47.5-50-72 .2-24.4 13.2-46 26-54.8z"/>
+      <path d="M304.2 319.1c-14.9.2-33.6-2-47.5-9.3 2.3 4.5 4.2 7.3 6.5 11.7 13.2 1.3 31.5 2.8 41-2.4zm-95 0c14.9.2 33.6-2 47.5-9.3-2.3 4.5-4.2 7.3-6.5 11.7-13.2 1.3-31.5 2.8-41-2.4zm27.3-138.7c3 8 10.9 9.2 19.3 4.5 6.2 3.6 15.7 3.9 19-4.1 2.5 19.8-18.3 15-19 11.2-7.8 7.5-22.2 3.2-19.3-11.6z"/>
+      <path d="M256.4 331.6l7.8-9 1.1-120.1-9.3-8.2-9.3 7.8 1.9 121 7.8 8.5z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/is.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/is.svg
new file mode 100644
index 0000000..a7524b5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/is.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-is" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="is-a">
+      <path fill-opacity=".7" d="M0 0h640v480H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="0" clip-path="url(#is-a)">
+    <path fill="#003897" d="M0 0h666.7v480H0z"/>
+    <path fill="#fff" d="M0 186.7h186.7V0h106.6v186.7h373.4v106.6H293.3V480H186.7V293.3H0V186.7z"/>
+    <path fill="#d72828" d="M0 213.3h213.3V0h53.4v213.3h400v53.4h-400V480h-53.4V266.7H0v-53.4z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/it.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/it.svg
new file mode 100644
index 0000000..5cb92aa
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/it.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-it" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h640v480H0z"/>
+    <path fill="#009246" d="M0 0h213.3v480H0z"/>
+    <path fill="#ce2b37" d="M426.7 0H640v480H426.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/je.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/je.svg
new file mode 100644
index 0000000..d90f124
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/je.svg
@@ -0,0 +1,29 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-je" viewBox="0 0 30 22.5">
+  <defs>
+    <clipPath id="je-a">
+      <path fill-opacity=".7" d="M-5.3-6h40v30h-40z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#je-a)" transform="matrix(.75 0 0 .75 3.975 4.5)">
+    <path fill="#fff" d="M-10.3-6h50v30h-50z"/>
+    <path fill="#df112d" fill-rule="evenodd" d="M-10.3-6v2L11.6 9l-21.8 13v2H-7l21.8-13 21.7 13h3.2v-2L18 9 39.8-4v-2h-3.3L14.7 7-7-6h-3.2z"/>
+    <g transform="translate(-9.7 -6) scale(.20361)">
+      <path fill="#e8112d" stroke="#000" stroke-width=".1" d="M132.7 22.2c3.1 12.8 1.4 28.6-12.9 37.4-14.2-8.8-16-24.6-12.8-37.4 3.4-3 18.6-4.9 25.7 0z"/>
+      <path fill="#f9dd16" stroke="#000" stroke-width=".1" d="M119.8 19.7a26 26 0 0113 3.1 28 28 0 014.9-12.1c-2.5 0-3.6 1.3-3.6 2.6-.6-1.7-3-1.6-3.8-.7 2.7 1.8.6 5-1.8 4.4-1.1-.3-1.7-1.1-2-2.3a1.3 1.3 0 10-.5 0 2.9 2.9 0 01-3.1 1.3c-1.3-.3-1.9-1.5-1.9-2.5 0-2.7 2.6-3.1 3.4-2.6 0-1.8-2.9-3.3-3.8-1.8a4.8 4.8 0 00-.8-5.8A4.8 4.8 0 00119 9c-.9-1.5-3.7 0-3.7 1.8.7-.5 3.3-.1 3.3 2.6 0 1-.6 2.2-1.8 2.5a3 3 0 01-3.2-1.3 1.3 1.3 0 00.6-.4 1.3 1.3 0 10-1.1.4c-.2 1.2-.9 2-2 2.3a2.4 2.4 0 01-1.8-4.4c-.8-1-3.2-1-3.8.7 0-1.3-1.1-2.6-3.6-2.6a28 28 0 015 12.1 26 26 0 0113-3.1z"/>
+      <g id="b" stroke="#000">
+        <g fill="#f9dd16" stroke-width=".1">
+          <path d="M130.7 32.2c-.4 0-.4.5-.5.5.8 0 1.2-.3 1.4-.7v.6c.6-.2.8-.7.6-1l.7.2c-.4-.3-.1-1-.8-1.4.2 0 .6.2.8.5-.1-.7-.2-1.1-.8-1.5h.5a.9.9 0 01-.4-.8c0-.4-.2-.4-.6-.3l-1.8.1c-1 0-2 0-2.8-.6 1.3.6 3-.6 3-1.5 0-1-1.4-2-4-1.4-2.6.6-5.8.4-5.8-.5s2.3-1 3.5-.8c1.2.2 2 .3 4.2-.5-.5.2-2.3.3-3.7-.1s-4.8-.4-4.8 1.4c0 1.9 3.6 1.7 6.8 1.2 1.8-.2 2.8 0 2.8.5 0 .6-1.7.8-3 .7a10 10 0 00-4.1.3c-1.3.4-2.2 0-3.6.3-.7 0-2.4 0-3.2-1.4-.5.4-2 1.1-2.3 1.9-.3.6 0 1.3.4 2 .6.8-.3.7-1 .7-.8 0-2 0-2.6-.8-.6-.6-1.3-1.1-1.9-.7-.3.3 0 .6.2.5l.8.2a1 1 0 00-1 .1c-.3.2 0 .6.3.5.2-.1.7-.2 1 0-.3 0-.7 0-.8.2s0 .4.3.4c.6 0 .7.4 1.3.3a.9.9 0 00-.7.4c.6-.3 1.1.4 1.8.2-.2.1-.7.4-.7.6.4-.5 3.2.4 3.2-.7l-.1.8c.3-.2 1.4-.3 1.8-1 0 .2 0 .5-.2.6.3 0 .8-.2 1.3-.9.2-.3.2-.5.2-.7.5 0 .8-.1 1.2-.4.4-.3.8.3 1.5-.2.6-.4 1.2 0 1.6-.2.3-.2.8 0 1.2-.2s1 .1 1.6-.4c1 .4 2.3 1 5.2.5 1.6-.3 2.2.3 2.2 1 0 .6-.4.6-.6.6-1 .1-1.3-.3-1.7-.2-.2.1-.4.5 0 .7-.3.1-.3.4-.1.5s.5 0 .8-.1c-.4.1-.7.4-.5.7.1.2.4.3.7 0 .3-.4.8-.7 1.2-.7zm-18.6-8c-.8-.3-1-.3-.9.4 0 .3.3.7.5.9 0-.3.1-1 .4-1.2z"/>
+          <path d="M114.8 24.3c.8-.4 1.1-.4.9.3 0 .3-.3.7-.5.9 0-.3 0-1-.4-1.2z"/>
+          <path d="M113.5 23.8c1.6 0 1.8.8 1.7 1.7 0 1-.5.6-.8 2-.1.4-.5.5-1 .5-.3 0-.7 0-.9-.6-.3-1.3-.8-1-.8-2 0-.8.2-1.6 1.8-1.6z"/>
+          <path d="M109.4 27.5c-.4-.2-.7 0-.9 0 .6.1.6.8 1.8 1-.3 0-.4.2-.7 0 .5.4 1 .9 2.2.9.7 0 .2.3-.2.1.4.5 1.3.1 1.9 1 0-.7-1-1.7-.5-2.4-1.7-.1-1.8-1-2.7-1.7-.8-.6-.9-1.2-1.2-2.3-.1-.5-.7-.8-1-.7-.3 0-.5.3-.2.5.2.2.6.2.6.7-.3-.4-.8-.5-1-.3-.1.2 0 .5.2.5.5 0 .2.6.7 1-.5-.5-.9-.6-1.2-.3-.1.2 0 .5.4.5.5 0 1 1.2 1.8 1.5zm13 4.6c-.2 0-.1.5-.5.5.8 0 1.3-.2 1.6-.5l-.2.5c.4-.3 1.5-.4 2-.3s.6-.1.8-.4c.2-.4 0-.6-.3-.8-.3-.3-.4-.7-.3-1.3-1.4-2-4-1-4-.2.9 1.1 1 1 1.8 1.1.7.2 1.2.2.7.6-.2.2-1 0-1.5.1-1.3 0-2-.9-2.3-.4-.3.4 0 .6.6.6-.4 0-1 0-.9.4.2.7.8-.1 1.1.1-.2 0-.6.1-.6.3 0 .2.5.5 1 0a1.6 1.6 0 011-.3z"/>
+        </g>
+        <path fill="none" stroke-width=".1" d="M123.5 29.2c-.4-.2-.9-.3-1.4-.2m-5.6 0c-.4.8-.2 1.2-.1 1.6m-4-5.6c.2.2.4-.2.8.2-.1-.1-.3.3-.6 0m2-.1c-.3 0-.5-.3-.9.1.1-.1.3.3.6 0m-.6 0v.3c.1.7.3 1-.3 1-.5 0-.3-.3-.2-1v-.3"/>
+        <path fill="#ff0016" stroke-width=".1" d="M113.5 27.7c.4 0 .6 0 .6-.6 0-.2.3-.3.1-.7.2.4-.7.4-.7.2 0 .2-1 .2-.8-.2-.1.4.2.5.1.7 0 .6.2.6.7.6z"/>
+        <path stroke-width=".1" d="M113 26.5l-1-.3m1 .3h-1m1 .1l-.9.3m1.7-.4l1-.3m-1 .3h1.2m-1.2.1l1 .3"/>
+        <path fill="#0051ba" stroke-width="0" d="M108.1 23.4c-.3-.4-1 0-1 .4.2-.3.6.1.9 0 .1 0 .3-.2.1-.4zm-.3.9c-.3-.4-1.1 0-1.1.4.2-.3.6.1.9 0 .1 0 .3-.3.2-.4zm-.2 1.2c-.4-.4-1.1 0-1 .5.2-.3.6 0 .8 0 .2-.1.3-.4.1-.5zm.3 3.7c-.4-.4-1 .1-1 .6.2-.4.7 0 1-.2 0 0 .2-.3 0-.5zm0 .7c-.5-.1-1 .6-.7 1 0-.5.6-.3.8-.5l-.1-.5zm.6.7c-.5-.2-1 .4-.7.8 0-.3.6-.2.7-.4v-.5zm11.7 1.1c-.5-.1-1 .5-.7 1 0-.5.6-.3.8-.5l-.1-.5zm.6.6c-.5-.1-.9.6-.6 1 0-.5.6-.4.7-.6.1-.1.1-.4 0-.4zm-.4-1.4c-.4-.2-1 .4-.9.8.2-.4.7-.1.9-.3V31zm8.3 1c-.4-.1-.8.6-.6 1 0-.4.6-.3.8-.5 0-.2 0-.5-.2-.5zm0-.7c-.4-.3-1 .3-.8.7.2-.3.7-.1.9-.3v-.5zm.4 1.3c-.5 0-.9.7-.6 1 0-.4.6-.3.7-.5.1-.2 0-.4-.1-.5zm-15.6-5.2c.3 0 .4.1.4.7 0 1 0 1.6-.4 1.6-.3 0-.3-.5-.3-1.3 0-.4 0-.7-.1-.6 0-.3.1-.4.4-.4z"/>
+      </g>
+      <use width="30" height="18" transform="matrix(.9 0 0 .9 11.6 13.7)" xlink:href="#b"/>
+      <use width="30" height="18" transform="matrix(.67 0 0 .75 39.2 27.5)" xlink:href="#b"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/jm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/jm.svg
new file mode 100644
index 0000000..535daf4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/jm.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-jm" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path d="M0 0l320 240L0 480zm640 0L320 240l320 240z"/>
+    <path fill="#090" d="M0 0l320 240L640 0zm0 480l320-240 320 240z"/>
+    <path fill="#fc0" d="M640 0h-59.6L0 435.3V480h59.6L640 44.7z"/>
+    <path fill="#fc0" d="M0 0v44.7L580.4 480H640v-44.7L59.6 0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/jo.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/jo.svg
new file mode 100644
index 0000000..3a17678
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/jo.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-jo" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="jo-a">
+      <path fill-opacity=".7" d="M-117.8 0h682.6v512h-682.6z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#jo-a)" transform="translate(110.5) scale(.9375)">
+    <g fill-rule="evenodd" stroke-width="1pt">
+      <path d="M-117.8 0h1024v170.7h-1024z"/>
+      <path fill="#fff" d="M-117.8 170.7h1024v170.6h-1024z"/>
+      <path fill="#090" d="M-117.8 341.3h1024V512h-1024z"/>
+      <path fill="red" d="M-117.8 512l512-256-512-256v512z"/>
+      <path fill="#fff" d="M24.5 289l5.7-24.9H4.7l23-11-15.9-19.9 23 11 5.6-24.8 5.7 24.9L69 233.2l-16 19.9 23 11H50.6l5.7 24.9-15.9-20z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/jp.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/jp.svg
new file mode 100644
index 0000000..d415816
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/jp.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-jp" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="jp-a">
+      <path fill-opacity=".7" d="M-88 32h640v480H-88z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#jp-a)" transform="translate(88 -32)">
+    <path fill="#fff" d="M-128 32h720v480h-720z"/>
+    <circle cx="523.1" cy="344.1" r="194.9" fill="#d30000" transform="translate(-168.4 8.6) scale(.76554)"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ke.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ke.svg
new file mode 100644
index 0000000..c1fd2d8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ke.svg
@@ -0,0 +1,23 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-ke" viewBox="0 0 640 480">
+  <defs>
+    <path id="a" stroke-miterlimit="10" d="M-28.6 47.5l1.8 1 46.7-81c2.7-.6 4.2-3.2 5.7-5.8 1-1.8 5-8.7 6.7-17.7a58 58 0 00-11.9 14.7c-1.5 2.6-3 5.2-2.3 7.9z"/>
+  </defs>
+  <path fill="#fff" d="M0 0h640v480H0z"/>
+  <path d="M0 0h640v144H0z"/>
+  <path fill="#060" d="M0 336h640v144H0z"/>
+  <g id="b" transform="matrix(3 0 0 3 320 240)">
+    <use width="100%" height="100%" stroke="#000" xlink:href="#a"/>
+    <use width="100%" height="100%" fill="#fff" xlink:href="#a"/>
+  </g>
+  <use width="100%" height="100%" transform="matrix(-1 0 0 1 640 0)" xlink:href="#b"/>
+  <path fill="#b00" d="M640.5 168H377c-9-24-39-72-57-72s-48 48-57 72H-.2v144H263c9 24 39 72 57 72s48-48 57-72h263.5V168z"/>
+  <path id="c" d="M377 312c9-24 15-48 15-72s-6-48-15-72c-9 24-15 48-15 72s6 48 15 72"/>
+  <use width="100%" height="100%" transform="matrix(-1 0 0 1 640 0)" xlink:href="#c"/>
+  <g fill="#fff" transform="matrix(3 0 0 3 320 240)">
+    <ellipse rx="4" ry="6"/>
+    <path id="d" d="M1 5.8s4 8 4 21-4 21-4 21z"/>
+    <use width="100%" height="100%" transform="scale(-1)" xlink:href="#d"/>
+    <use width="100%" height="100%" transform="scale(-1 1)" xlink:href="#d"/>
+    <use width="100%" height="100%" transform="scale(1 -1)" xlink:href="#d"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/kg.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/kg.svg
new file mode 100644
index 0000000..936767b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/kg.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-kg" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="kg-a">
+      <path fill-opacity=".7" d="M-85 0h682.7v512H-85z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#kg-a)" transform="translate(79.6) scale(.9375)">
+    <path fill="#be0027" d="M-128 0h768.8v512H-128z"/>
+    <path fill="#ff0" d="M105.5 261.1c13.6-16.6 41.9-.4 65-12.3-27.4 1.5-42.3-13.2-63.9-11.1 22.4-13.8 41.5 4.5 66.5-2.8-33.1-2.8-31.7-17.7-61.9-19.8 26.8-11.4 40 11.8 66.3 6.5-31-7.1-35-25.3-58-29.2 33.6-5 31.4 14.8 64.3 17.2-33.4-14.3-24.7-26.8-52.6-37.7 31.3-.7 29.2 21 61 26.6-27.2-17.2-23.9-32.9-46.2-45.2 26.5.5 29 27.6 56.1 36-24.1-19.1-17.8-35.3-38.6-52.4 26.4 6.2 22.5 29.6 50 44.6-20.4-22.6-12.6-38.8-30.3-57.3 25.4 8.1 15.7 30.4 42 51.6-15-24.9-5.7-40.8-20.6-61.7 23.6 12.1 12.2 34.9 34 57.5-10.3-25.5 0-41.3-10.5-63.9 20.2 15 8.2 39.3 24.5 62.5-6-32 7.8-37.2 3.5-65.2 15.3 18.8-1.8 37.6 10 65.3-1.5-31.5 15.3-38.8 12.4-64 15.1 22.6-8.5 42.3 1.4 66.5 2.5-29.8 22.1-37.6 22.4-60.8 12 21.3-14 36.7-9.8 65 8.5-31.2 29.4-35 32-56 7.1 24.6-21.4 36-19.7 63.4 8.5-27.7 34.6-31 40-51.4 3.3 26-22.4 30.7-29.7 59.5 13.5-23.5 37.2-25.4 47.8-44-.8 25.8-29.8 29.2-38.7 53.3 16.7-20.5 37.7-17 54.4-35.1-1.8 23.3-31.3 22-47 46.1 18.1-16.7 45.4-11.7 59.3-26.1-.7 20.6-36.9 19-54 37.5 21-11.6 47.8-4.8 63.2-15.5-2.8 18-41 13.8-59.3 28 25.2-7 44.7 3.7 65-4-9.9 17.5-44.6 6.4-63 17.8 22-3.7 45.2 9.6 65.1 5.3-6.5 15.2-44.6-1-65 8.5 24.4-.2 40.3 15.5 63 14.4-12.3 13.8-45.7-5.1-65.2-1.9 23.8 5 42 24.6 60 25.6-14.9 11.3-42.5-14.5-65-11.3 23.2 6.2 42.6 32.5 55.8 33.1-14.3 9.8-42.5-22.5-61.8-21.3 23.5 10.6 34.2 37.5 49.7 41.3-19.1 6.1-37.9-29.2-58.4-30.5 23.8 15 25.1 38 43.4 48.2-19.3 4.7-33-35.2-53.3-38.6 19.5 14.3 22.5 45 35.4 54.6-19.6 1-26.7-40.7-46.8-46.7 17.2 14.4 13.1 45.6 26.5 59-20.4-4.3-17.8-40.6-39.1-52.9 15.3 19.4 7.5 46.9 17.5 62.4-19.9-8-11.3-40.6-30.2-59 10.3 20.6-.8 44.6 7.4 64.5-18.2-8.9-6-47.4-19.9-62.7 6.4 23.8-5.4 43.5-.6 64.8-18.6-21.5 2.8-43.2-13.3-65.1 4.2 25.1-13.4 42.7-10.6 63.7-14.7-17.2 8-44.7-3.5-66.4 2.4 24.7-20.3 46.4-18.7 62-12-20 13.3-43.6 6.5-66.3-1.4 23.6-24.4 36.4-28.7 57.9-7.7-23.7 19.6-40.8 17.2-64.1-7.8 22.1-30 31-37.8 52.5-6.4-23.7 26-36.2 26.8-61-10 23.2-36.5 28.4-45.3 46.2-3.3-23.5 33.8-34 35.2-56.3-12 21.4-41 22.3-51 39.3-1.5-23.4 37.6-26.3 43.7-50.8-11.9 18.2-43.7 15.9-57 30.7 2.1-21.7 44.4-23 51.2-42.6-15.8 15.2-45 9-61.5 21 9.2-21.4 48.9-16.9 57.8-32.3-17.5 9.1-48.6.2-64 9.4 14-20.2 44.8-8.1 62.3-22-28.4 4.1-45.5-7.2-65.2-2z"/>
+    <path fill="#ff0" d="M356 256.1a99.2 99.2 0 11-198.5 0 99.2 99.2 0 01198.4 0z"/>
+    <path fill="#be0027" d="M343.2 256.3a86.3 86.3 0 11-172.6 0 86.3 86.3 0 01172.6 0z"/>
+    <path fill="#ff0" d="M331.2 256.5a74 74 0 11-148.2 0 74 74 0 01148.2 0z"/>
+    <path fill="#be0027" d="M194 208c20.5-.5 46 1.4 62.9 14.8a97.1 97.1 0 0160.5-14.3l11 20.1a101 101 0 00-50 8.2 85.3 85.3 0 0134.6 72.1c-2.7 3.4-7 7.1-9.7 10.5 4-28.5-11-60.3-32.9-77 17.8 25.6 28.3 48.6 25.4 80.4l-10 6.4c4.6-28-2-61-22.7-80 12 17.5 23.8 49 16.4 81-3.2 1-8.2 3.7-11.4 4.6a96 96 0 00-10.8-78.7c-13.8 19.8-18.3 50-10.5 78-3.8-1-6.7-2.2-10.6-3.1-5.7-30 2.2-64 15.9-81.7-14 8.1-27.1 42.7-23.4 78l-9.3-4.3c-4.5-26.3 7.4-60.6 24.5-80.4-19.4 12.2-35.2 42.3-32.5 74.6-3-2.6-5.7-3.9-8.7-6.6-3.4-28.2 13-56.6 32.1-73.6-16.1-7.3-30-8.7-50-8.4 3.1-6.5 6-14.1 9.2-20.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/kh.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/kh.svg
new file mode 100644
index 0000000..7cd890a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/kh.svg
@@ -0,0 +1,61 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-kh" viewBox="0 0 640 480">
+  <path fill="#032ea1" d="M0 0h640v480H0z"/>
+  <path fill="#e00025" d="M0 120h640v240H0z"/>
+  <g fill="#fff" stroke="#000" transform="matrix(1.2 0 0 1.2 85.6 -522)">
+    <g stroke-linejoin="bevel">
+      <path d="M139 623.5h113.8v43.8H139z"/>
+      <path d="M247 647.6h3.5v16.5H247zm-108-8.1h113.8v5H139zm0-7h113.8v4.6H139z"/>
+      <path stroke-width=".9" d="M139 625.7h113.8v4.3H139z"/>
+      <path d="M169 647.6h3.6v16.5H169zm49 0h3.6v16.5H218zm-78 0h3.5v16.5H140zm7 0h3.5v16.5H147zm7.5 0h3.5v16.5h-3.5zm7.5 0h3.5v16.5H162zm62.8 0h3.6v16.5h-3.6zm7.5 0h3.6v16.5h-3.6zm7.5 0h3.6v16.5h-3.6z"/>
+      <path stroke-linejoin="miter" d="M94.5 669.5a9.3 9.3 0 004.4-5.3H292a9.3 9.3 0 004.4 5.3z"/>
+    </g>
+    <path d="M193 556.8s-.1-4.1 2.3-4.2c2.3 0 2.2 4.2 2.2 4.2zm-12.5 54.5v-5.5c0-2.8-2.8-3-2.8-5 0 0-.4-3 .4-4.4 1.1 4 3 3.3 3 1.6 0-1.4-1-2.8-3.3-6.3-.8-1.1-.3-4.6.7-5.9.4 3 .9 4.5 2.2 4.5.8 0 1.4-.5 1.4-2 0-2-1.3-3-2-4.8a5 5 0 011.1-5.3c.5 3 .4 4.2 1.7 4.2 2.7-.9 0-4.8-.6-5.8-.6-1.1 1-3.4 1-3.4.8 2.7 1 2.9 2 2.6 1.2-.3 1-2-.4-3.4-.9-1-.8-2.3.2-3.3 1 1.9 2.2 1.8 2.3.6l-.8-4.4H204l-.9 4.3c-.2 1.2 1.4 1.5 2.4-.5 1 1 1.1 2.4.2 3.3-1.4 1.4-1.6 3.1-.4 3.4 1 .3 1.2 0 2-2.6 0 0 1.5 1.5 1 3.4-.6 1-3.3 5-.6 5.8 1.3 0 1.2-1.2 1.7-4.2a5 5 0 011 5.3c-.6 1.8-2 2.8-2 4.8 0 1.5.7 2 1.5 2 1.3 0 1.8-1.4 2.2-4.5 1 1.3 1.5 4.8.7 6-2.3 3.4-3.4 4.8-3.4 6.2 0 1.7 2 2.4 3-1.6.9 1.4.5 4.4.5 4.4 0 2-2.7 2.2-2.8 5v5.5zm7.2-46l-.4-3.1h15.9l-.4 3.1zm1-3.2l-.2-2.5H202l-.3 2.5zm2.3-2.6l-.3-2.6h9l-.1 2.6zm33 110c-2-.7-5-2.9-5-5v-24.3l2.6-3.4H169l2.5 3.4v24.3c0 2.1-2 4.3-4 5z"/>
+    <path stroke-linejoin="bevel" d="M178.2 647.6h3.6v16.5h-3.6zm30.4 0h3.6v16.5h-3.6z"/>
+    <path d="M168 609.2v27.6h54v-27.6a4.2 4.2 0 00-2.6 2.8v11.8h-48.7V612s-.6-2-2.8-2.8z"/>
+    <path d="M214.6 669.5c-1.8-.7-5.6-2.9-5.6-5v-27.2c.4-1.5 2.4-2.4 3.7-3.4H177c1.7 1 3.6 1.7 4.3 3.4v27.2c0 2.1-3 4.3-4.8 5z"/>
+    <path d="M219.4 634.2v-19.6h-4.9v-1.9h-38.8v2h-5v19.5zM207 669.5c-1.8-.7-4.3-2.9-4.3-5v-23.2l1.4-2.1h-17.7l1.5 2v23.3c0 2.1-2.6 4.3-4.3 5z"/>
+    <path d="M190.7 639.2h9v30.3h-9z"/>
+    <path stroke-linejoin="bevel" d="M204.4 632.5c0-2 5.8-2.1 8.8-3.8h-36c3 1.7 8.7 1.8 8.7 3.8l1.2 3.9 15 .6z"/>
+    <path d="M211.4 611.3c0-4.9.2-6.7 1.7-6.7V620c-3.7 1.4-6.3 6-6.3 6h-23.2s-2.6-4.6-6.3-6v-15.5c1.8 0 1.8 2 1.8 6.7zm1.7-2c0-5.6 4.9-6.2 4.9-6.2v5c-1.9-.1-2.8 1.6-2.8 4 0 2.5 1.5 2.5 1.5 2.5v14.2h-3.6z"/>
+    <path d="M177.3 609.3c0-5.6-4.9-6.2-4.9-6.2v5c1.9-.1 2.8 1.6 2.8 4 0 2.5-1.5 2.5-1.5 2.5v14.2h3.6z"/>
+    <g fill="none" stroke-width=".8">
+      <path d="M186.8 570.6H204m-19.2 5.4h21m-23 6.5h24.9m-27 7.9h29.5m-30.2 9h30.4"/>
+      <path stroke-width="1" d="M170.8 629h48.6m-33.2 0h18v6.6h-18z"/>
+    </g>
+    <path d="M184 614.2c3 3.6 2.6 9.7 2.6 13.3H204c0-3.6-.4-9.7 2.6-13.3zm9.7-41l-2.4-1.3v-3.5c1 .3 2 .4 2.2 2 .3-2.3 1-2.1 1.9-3 1 .9 1.5.7 1.9 3 0-1.6 1.2-1.7 2.1-2v3.5l-2.3 1.2z"/>
+    <path d="M193.5 578.9l-4-2.8V573c1.5.3 3 .5 3.2 2.2.4-2.5 1.3-3.7 2.7-4.7 1.3 1 2.2 2.2 2.7 4.7.1-1.7 1.7-1.9 3-2.2v3.2l-3.9 2.7z"/>
+    <path d="M193.2 587.8l-4.5-4v-4.7c1.6.4 3.4.6 3.6 3.1.5-3.5 1.5-5.4 3-6.8 1.6 1.4 2.6 3.3 3.2 6.8.2-2.5 2-2.7 3.6-3.1v4.7l-4.6 4zm8.4 5.3l-4 5.7h-4.7l-4.1-5.7zm-15.2 9.5c2 1.1 2.8 3.4 3 7.6H201c.2-4.2 1-6.5 3-7.6z"/>
+    <path stroke-linejoin="bevel" d="M204.2 593v-5.6a5.2 5.2 0 00-3.8 3.3c0-2-2.5-6.3-5.2-8.5-2.7 2.4-5.3 6.4-5.2 8.4-.5-1.5-1.8-2.7-3.8-3.2v5.7z"/>
+    <path stroke-linejoin="bevel" d="M205 602.6V597c-2.1.6-3.5 1.7-4.1 3.3 0-2-2.7-6.3-5.7-8.5-3 2.5-5.8 6.4-5.7 8.5-.5-1.5-2-2.7-4.1-3.3v5.7z"/>
+    <path stroke-linejoin="bevel" d="M207.4 614.3v-6.6a9.6 9.6 0 00-5.1 3.8c0-3.5-4-9-7.1-10.7-3.2 1.8-7.1 7.4-7.1 10.7a9.7 9.7 0 00-5.2-3.8v6.6z"/>
+    <path stroke-linejoin="bevel" d="M206 629v-6.8c-2.4.9-3 3.1-3.8 4.7.3-6.9-3.8-14.2-7-16.1-3.2 1.9-7.4 9.4-7 16-.8-1.4-1.5-3.7-3.8-4.6v6.7z"/>
+    <path d="M204.4 639.2v-6.8c-2.5.6-2.6 1.5-3.4 3 .3-4.1-2.6-8.8-5.8-10.6-3.2 1.8-6 6.5-5.8 10.6-.8-1.5-.9-2.4-3.4-3v6.8z"/>
+    <g id="a">
+      <path d="M99 664.2v-20.4c-.7-2.6-3-5-4.6-5.4v-18l3.7 2 4.3 18.9v23z"/>
+      <path d="M99 664.3v-20.5c-.7-2.6-3-5-4.6-5.4v-19.2c2.5 0 3.7 3.2 3.7 3.2l4.3 18.9v22.9z"/>
+      <path d="M96.3 669.5c1.7-.7 4.2-2.9 4.2-5v-25.6l-1.2-2H143l-1.7 2v25.6a6 6 0 003.4 5z"/>
+      <path d="M135.8 669.5c-1.7-.7-4.2-2.9-4.2-5v-24.3l3.6-3.4h-29.6l3.6 3.4v24.3c0 2.1-2.5 4.3-4.2 5z"/>
+      <path d="M131.7 669.5c-1.7-.7-4.3-2.9-4.3-5v-22l2.4-3.3H111l2.4 3.3v22c0 2.1-2.5 4.3-4.3 5z"/>
+      <path d="M116 639.2h8.9v30.4h-9z"/>
+      <path stroke-linejoin="bevel" d="M103.7 647.6h3.6v16.5h-3.6zm30.8 0h3.5v16.5h-3.6zm-33.9-27.8h4.4v17h-4.4zm0-3.2h4.3v3.2h-4.3zm35.6 6.9h6.1v13h-6.1z"/>
+      <path d="M104.9 636.6v-29c1.2 0 1.4 4.3 4.2 4.3 1.5 0 1.4-1.8.5-3.2-.7-1.3-1.6-3-.4-6.3.9 2.5 3.1 3.3 2.7 1.8-.7-2.7-2.8-3.2-1.2-7.3.5 3.4 2.7 3.3 2.2 1.3-.6-2.3-1.9-3.3-.3-6.5.9 3.7 2 3.5 2 1.2 0-3.4 0-7 4.2-8.3 0 0 .3-3 1.9-3 1.5 0 1.8 3 1.8 3 4.3 1.3 4.2 5 4.2 8.3 0 2.3 1.1 2.5 2-1.2 1.6 3.2.3 4.2-.3 6.5-.5 2 1.7 2.1 2.2-1.3 1.6 4.1-.5 4.6-1.2 7.3-.4 1.5 1.8.7 2.7-1.8 1.2 3.3.3 5-.4 6.3-.8 1.4-1 3.2.5 3.2 2.8 0 3-4.2 4.2-4.2v28.9zM98 614.7v22.1h2.5v-22.1c-.9-.5-1.7-.5-2.5 0z"/>
+      <path d="M98.2 629c3.1 1.6 6.2 3.5 7 7.8h-7zm43.2-6.6v14.4h2v-14.4c-.6-.3-1.5-.4-2 0z"/>
+      <path d="M143.4 629c-3.1 1.5-6.2 3.3-7 7.7h7zm-20.6-33.7l1.8-1.5v-2c-.6 0-1 .3-1.5 1a5 5 0 00-2.5-3 5 5 0 00-2.6 2.9c-.5-.7-.8-.8-1.5-1v2l1.8 1.6z"/>
+      <path d="M123.8 600.2l.8-1.9v-2.5c-.6 0-1 .3-1.5 1a5 5 0 00-2.5-3 5 5 0 00-2.6 2.9c-.5-.7-.8-.8-1.5-.9v2.5l.8 1.9z"/>
+      <path d="M124 606.8l2.6-3.3v-3.2c-1 0-1.5.5-2.2 1.6-.7-2.3-2-2.7-3.8-3.8-1.9 1-3.2 1.5-3.8 3.7-.8-1.1-1.3-1.4-2.3-1.5v3.2l2.7 3.3z"/>
+      <path d="M124.7 613.3s3.2-2.7 3.3-4.2v-3.5c-1.2.1-2.3.4-3.2 1.9-.8-2.9-2-3.7-4.2-5-2.3 1.3-3.5 2.1-4.2 5-1-1.5-2-1.8-3.3-2v3.6a15 15 0 003.3 4.2z"/>
+      <path d="M126 625.3s4.4-4.7 4.5-6.6v-5.4c-1.6.2-3.2 1.3-4.4 3.6-1-4.5-2.6-7.6-5.5-9.8-3 2.2-4.6 5.3-5.6 9.8-1.2-2.3-2.7-3.4-4.3-3.6v5.4c.3 1.9 4.4 6.6 4.4 6.6z"/>
+      <path d="M126 632.4s3.7-3.7 4.5-5.3v-5.4c-1.6.2-3.2 1.3-4.4 3.5a14 14 0 00-5.5-9.2c-3 2.2-4.6 4.7-5.6 9.2-1.2-2.2-2.7-3.3-4.3-3.5v5.4c1 1.6 4.4 5.3 4.4 5.3z"/>
+      <path d="M127.5 636.6c-1-4.7-2-8.2-7.1-11.7-5.2 3.5-6.1 7-7.2 11.7z"/>
+      <path d="M130.2 639.2v-6.8c-2.4 1-4.5 2.3-5.3 3.8-.8-3.8-2.5-5.4-4.6-7.7-2.1 2.3-3.5 4-4.4 7.7-.8-1.5-2.9-2.9-5.2-3.8v6.8z"/>
+    </g>
+    <use width="100%" height="100%" transform="matrix(-1 0 0 1 390.7 0)" xlink:href="#a"/>
+    <path d="M72.7 694.3H318v12.5H72.7zm-6.5 12.5h258.3v12.5H66.2zm19.4-31.3H305v8.1H85.6z"/>
+    <path d="M79.2 683.6h232.4v10.6H79.2zm10.2-14.3h212v6.2h-212z"/>
+    <path d="M112.4 669.3h16v50h-16z"/>
+    <path d="M116 669.3h8.9v50h-9zm71 0h16v50h-16z"/>
+    <path d="M190.7 669.3h9v50h-9zm71.5 0h16v50h-16z"/>
+    <path d="M265.7 669.3h9v50h-9z"/>
+    <path fill="none" d="M99 664.2h193M115.8 713h9.2m-9.2-6.3h9.2m-9.2-6.2h9.2m-9.2-6.3h9.2m-9.2-6.2h9.2m-9.2-6.3h9.2m-9.2-6.2h9.2m65.8 37.5h8.6m-8.6-6.3h8.6m-8.6-6.2h8.6m-8.6-6.3h8.6m-8.6-6.2h8.6m-8.6-6.3h8.6m-8.6-6.2h8.6m66.2 37.5h9.2m-9.2-6.3h9.2m-9.2-6.2h9.2m-9.2-6.3h9.2m-9.2-6.2h9.2m-9.2-6.3h9.2m-9.2-6.2h9.2"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ki.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ki.svg
new file mode 100644
index 0000000..604890c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ki.svg
@@ -0,0 +1,36 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ki" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="ki-a">
+      <path fill-opacity=".7" d="M-86.3 0h682.6v512H-86.3z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#ki-a)" transform="translate(81) scale(.9375)">
+    <path fill="#e73e2d" fill-rule="evenodd" d="M-164.3 0h835.8v306.5h-835.8z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M204.3 282.1c-19.4-15.2-55.6-10-61.6-51.3 27.7 21.5 22.7-1.2 64 19.3l-2.4 32z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M209.5 263.4c-13.9-20.4-50-26.6-43-67.7 19.9 28.9 22 5.7 55.2 37.9l-12.2 29.8z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M215.8 250c-5-24.1-36-43.6-13.8-79 7.2 34.4 18 13.8 36.4 56.2L215.8 250z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M230.3 237.6c2.7-24.5-20.8-52.6 11.1-79.4-3.6 34.9 13 18.7 17.5 64.6l-28.6 14.8z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M243.3 227.7c12.4-21.3 2.5-56.5 42.6-67.9-17.6 30.3 4.2 22.3-10.5 66l-32.1 1.9z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M262 230.3c18.6-16.2 20.4-52.8 62-50.9-26.3 23.2-3 22.5-31 59.4l-31-8.5z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M278.6 239.9c22.5-10.1 34.9-44.5 74.1-30.5-32 14.5-9.5 20.7-47 47.7l-27.1-17.2z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M292.5 255c24.4-3.4 46-33 79.7-8.4-34.7 4.9-15 17.1-58.5 32.5l-21.2-24.2z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M379.5 259.6l-112.1 2.5 4.7 30.2 107.4-32.7z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M363 218.4l-103.8 39.9 17.3 33.3 86.5-73.2z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M280.6 280.7l53.7-97.6-82.4 76.7 28.7 20.9z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M279.5 272.6l17.2-109.4-53.8 97.2 36.6 12.2z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M273 263.7l-18-110.2-20 110.7 38-.5z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M263.7 254.3l-52.3-92 20 111.8 32.3-19.8z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M255.6 253.6l-81.1-68.5 57.6 98 23.5-29.5z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M146 218.9l87 71.9 13.4-37.6L146 218.9z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M232.1 260.9l-102.3-1.5 101.9 34 .4-32.5z"/>
+    <path fill="#fec74a" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M315.1 279.2a61.4 61.4 0 11-122.7 0 61.4 61.4 0 01122.7 0z"/>
+    <path fill="#005989" fill-rule="evenodd" d="M-165.1 303.4h839.9V512h-840z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M-165.6 454c15.6 7.2 38 25.3 62 25.3 40-.3 41-27.4 81.6-26.1 40.7 1 33.3 29.6 88.2 29.5 45.4-.2 60-34.7 99.2-30.6 29-1.5 40.8 32.7 85.3 33.2 46.2 1 63.1-37.3 92-34.1 31 0 41 30.8 84.3 31 55.2.3 64.9-32 99.3-30 24.6-.5 44 23.7 80 24.3 28.6.5 52.7-21.2 69-29l.7-36.8c-17 6.3-42.4 27.1-67.7 27.3-36.6 1.4-59.1-24-84.5-23.7-30.4.3-42.5 31.3-94 31.3-47.2 0-58-31.3-88.4-31.3-29.7.2-38.8 34-90.3 33.4-42-.5-58.3-32.3-88-32-31.5 0-64 30.9-99 29.4-48-2-58.5-29.4-90-29.4-23.5 0-49 25.6-77.3 26-28.2.5-59.9-25.5-62.8-26l.4 38.3zm0-73c15.6 7.3 38 25.4 62 25.4 40-.3 41-27.4 81.6-26.2 40.7 1 33.3 29.7 88.2 29.5 45.4 0 60-34.6 99.2-30.5 29-1.5 40.8 32.7 85.3 33.1 46.2 1 63.1-37.2 92-34 31 0 41 30.8 84.3 31 55.2.3 64.9-32 99.3-30 24.6-.5 44 23.7 80 24.3 28.6.5 52.7-21.2 69-29l.7-36.8c-17 6.3-42.4 27-67.7 27.3-36.6 1.3-59.1-24-84.5-23.7-30.4.3-42.5 31.3-94 31.3-47.2 0-58-31.3-88.4-31.3-29.7.2-38.8 34-90.3 33.4-42-.5-58.3-32.3-88-32-31.5 0-64 30.8-99 29.3-48-2-58.5-29.4-90-29.4-23.5 0-49 25.7-77.3 26.1-28.2.4-59.9-25.5-62.8-26l.4 38.3z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M-165.6 309c15.6 7.2 38 25.2 61.9 25.2 40-.2 41-27.4 81.6-26.1 40.6 1 33.2 29.6 88.1 29.5 45.3-.1 60-34.7 99-30.5 29-1.5 40.8 32.7 85.3 33.1 46.1 1 63-37.3 92-34.1 30.8 0 41 30.8 84.2 31 55 .3 64.7-32 99.2-30 24.5-.5 43.9 23.7 79.8 24.3 28.7.5 52.7-21.2 69-29l.7-36.8c-17 6.4-42.3 27.1-67.7 27.3-36.4 1.4-59-23.9-84.4-23.7-30.3.3-42.4 31.3-94 31.3-47 0-57.8-31.3-88.2-31.3-29.7.3-38.8 34-90.1 33.4-42-.5-58.3-32.2-88-32-31.5 0-64 30.9-98.8 29.4-48.1-2-58.5-29.4-90-29.4-23.5 0-48.9 25.6-77.2 26-28.2.5-59.8-25.4-62.8-26l.4 38.3z"/>
+    <path fill="#ffc84b" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.8" d="M136.8 76c61-4.2 50-9.4 74.5-13.4 31 4.3 34.5 23 51.8 34.5 0 0-6.5 22-27.7 18.9-2.9-8.8 10.2-11.6-27.5-34.6-22-1.3-61.3 3.9-71-5.4zm189.3 33.9l-44 1.8v10.9c29.7 1 35-3 44-12.7z"/>
+    <path fill="#ffc84b" fill-rule="evenodd" stroke="#d8aa3f" stroke-linejoin="round" stroke-width="1.7" d="M174.8 108c7.7-3.9 11.5-2.3 18.2-2.5 4.5 8.3 8.8 9 18.8 10a49.5 49.5 0 0039.9 21.8c29.9-.8 39.4-21.7 59.5-24h21.2c-3.5-6-6.3-9.5-14-9.9-15.8-.8-36.2-.4-54 3.6l-25.1 6.3c-7.4-3.6-25.3-22.4-36.8-22-6.7 1.8-6.7 4.1-10 6.7-6.5 2.8-13 1.4-17.7 10z"/>
+    <path fill="#ffc84b" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.7" d="M205.1 99a3.2 3.2 0 11-6.3 0 3.2 3.2 0 016.3 0z"/>
+    <path fill="#ffc84b" fill-rule="evenodd" stroke="#d8aa3f" stroke-width="1.8" d="M225.6 107.8c44.9-54.1 84.1-47.5 135.3-51.2 1.7 6.3 1 15.7-23.3 24-33.4 5-93.1 40.2-93.4 40.2-11.1-.6-18.9-12.2-18.6-13z"/>
+    <path fill="none" stroke="#d9a43e" stroke-linecap="round" stroke-width="1.8" d="M317.9 72.5L351 74m-36.7 4l24.1 2"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/km.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/km.svg
new file mode 100644
index 0000000..a6ccb8d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/km.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-km" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="km-a">
+      <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#km-a)" transform="scale(.9375)">
+    <path fill="#ff0" d="M0 0h768.8v128H0z"/>
+    <path fill="#fff" d="M0 128h768.8v128H0z"/>
+    <path fill="#be0027" d="M0 256h768.8v128H0z"/>
+    <path fill="#3b5aa3" d="M0 384h768.8v128H0z"/>
+    <path fill="#239e46" d="M0 0v512l381.9-255.3L0 0z"/>
+    <path fill="#fff" d="M157.2 141.4c-85-4.3-123.9 63.5-123.8 115.9-.2 62 58.6 113 112.8 110C117 353.5 81.2 314.6 81 257c-.3-52.1 29.5-97.5 76.3-115.6z"/>
+    <path fill="#fff" d="M156 197l-12-9.3-14.6 4.6 5.2-14.4-8.8-12.4 15.2.6 9-12.3 4.3 14.7 14.4 4.8-12.6 8.5zm-.3 52.1l-12-9.4-14.6 4.6 5.3-14.3-8.9-12.4 15.3.5 9-12.2 4.2 14.6 14.5 4.9-12.7 8.5zm.2 52.6l-12-9.4-14.5 4.6 5.2-14.3-8.8-12.4 15.2.5 9-12.2 4.3 14.6 14.4 4.8-12.6 8.6zm-.2 53l-12-9.3L129 350l5.3-14.4-8.9-12.4 15.3.6 9-12.3 4.2 14.7 14.5 4.8-12.7 8.5z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/kn.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/kn.svg
new file mode 100644
index 0000000..d13066b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/kn.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-kn" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="kn-a">
+      <path fill-opacity=".7" d="M-80.1 0h682.7v512H-80.1z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#kn-a)" transform="translate(75.1) scale(.9375)">
+    <path fill="#ffe900" d="M-107.8.2h737.6v511.3h-737.6z"/>
+    <path fill="#35a100" d="M-108.2.2l.8 368.6L466.6 0l-574.8.2z"/>
+    <path fill="#c70000" d="M630.7 511.5l-1.4-383.2-579 383.5 580.4-.3z"/>
+    <path d="M-107.9 396.6l.5 115.4 125.3-.2 611.7-410.1L629 1.4 505.2.2l-613 396.4z"/>
+    <path fill="#fff" d="M380.4 156.6l-9.8-42.2 33.3 27 38-24.6-17.4 41.3 33.4 27-44.2-1.5-17.3 41.3-9.9-42.2-44.1-1.5zm-275.2 179l-9.9-42.3 33.3 27 38-24.6-17.4 41.3 33.4 27-44.1-1.5-17.4 41.3-9.8-42.2-44.1-1.5z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ko.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ko.svg
new file mode 100644
index 0000000..39508cb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ko.svg
@@ -0,0 +1,24 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-kr" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="kr-a">
+      <path fill-opacity=".7" d="M-95.8-.4h682.7v512H-95.8z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#kr-a)" transform="translate(89.8 .4) scale(.9375)">
+    <path fill="#fff" d="M610.6 511.6h-730.2V-.4h730.2z"/>
+    <path fill="#fff" d="M251.9 256a112.5 112.5 0 11-225 0 112.5 112.5 0 01225 0z"/>
+    <path fill="#c70000" d="M393 262.6c0 81-65 146.8-145.3 146.8s-145.2-65.8-145.2-146.8 65-146.9 145.3-146.9S393 181.6 393 262.6z"/>
+    <path d="M-49.4 126.4l83.6-96.7 19.9 17.1-83.7 96.8zm27.4 23.7l83.6-96.7 19.9 17-83.7 96.9z"/>
+    <path d="M-49.4 126.4l83.6-96.7 19.9 17.1-83.7 96.8z"/>
+    <path d="M-49.4 126.4l83.6-96.7 19.9 17.1-83.7 96.8zm55.4 48l83.6-96.9 19.9 17.2-83.7 96.8z"/>
+    <path d="M-49.4 126.4l83.6-96.7 19.9 17.1-83.7 96.8z"/>
+    <path d="M-49.4 126.4l83.6-96.7 19.9 17.1-83.7 96.8zm508.8-96.8l83 97.4-20 17-83-97.4zm-55.7 47.5l83 97.4-20 17-83-97.4z"/>
+    <path fill="#fff" d="M417.6 133.2L496 65.4l14.7 17-84 75.4-9.3-24.6z"/>
+    <path d="M514.2 372l-80.4 95.8-19.7-16.4 80.4-95.8zM431.8 53.1l83 97.4-19.9 17L412 70zm109.7 341.6L461 490.5l-19.8-16.4 80.5-95.8zm-55.1-45.8L406 444.7l-19.7-16.4 80.4-95.8z"/>
+    <path fill="#3d5897" d="M104.6 236.7c4.6 37 11.3 78.2 68.2 82.4 21.3 1.3 62.8-5 77-63.2 18.8-55.8 75-71.8 113.3-41.6C385 228.5 391 251 392.4 268c-1.7 54-32.9 101-72.8 122-46 27.3-109.6 27.9-165.3-13.5-25.1-23.5-60.2-67-49.7-139.8z"/>
+    <path fill="#fff" d="M436 370.6l78.6 67.6-14.6 17-87.1-71.8 23-12.8z"/>
+    <path d="M-1.9 357.2l83 97.3-20 17-83-97.3z"/>
+    <path fill="#fff" d="M-16.2 437.3l78.6-67.9 14.7 17-84 75.5-9.3-24.7z"/>
+    <path d="M25.7 333.7l83 97.3-20 17-83-97.3zM-30 381.2l83 97.3-20 17-83-97.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/kp.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/kp.svg
new file mode 100644
index 0000000..06b4e38
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/kp.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-kp" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="kp-a">
+      <path fill-opacity=".7" d="M5 .1h682.6V512H5.1z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#kp-a)" transform="translate(-4.8 -.1) scale(.93768)">
+    <path fill="#fff" stroke="#000" d="M776 511.5H-76V.5h852z"/>
+    <path fill="#3e5698" d="M776 419H-76v92.5h852z"/>
+    <path fill="#c60000" d="M776 397.6H-76V114.4h852z"/>
+    <path fill="#3e5698" d="M776 .6H-76V93h852z"/>
+    <path fill="#fff" d="M328.5 256c0 63.5-53 115-118.6 115S91.3 319.5 91.3 256s53-114.8 118.6-114.8c65.5 0 118.6 51.4 118.6 114.9z"/>
+    <path fill="#c40000" d="M175.8 270.6l-57-40.7 71-.2 22.7-66.4 21.1 66.1 71-.4-57.9 41.2 21.3 66.1-57-40.7-58 41.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/kr.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/kr.svg
new file mode 100644
index 0000000..39508cb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/kr.svg
@@ -0,0 +1,24 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-kr" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="kr-a">
+      <path fill-opacity=".7" d="M-95.8-.4h682.7v512H-95.8z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#kr-a)" transform="translate(89.8 .4) scale(.9375)">
+    <path fill="#fff" d="M610.6 511.6h-730.2V-.4h730.2z"/>
+    <path fill="#fff" d="M251.9 256a112.5 112.5 0 11-225 0 112.5 112.5 0 01225 0z"/>
+    <path fill="#c70000" d="M393 262.6c0 81-65 146.8-145.3 146.8s-145.2-65.8-145.2-146.8 65-146.9 145.3-146.9S393 181.6 393 262.6z"/>
+    <path d="M-49.4 126.4l83.6-96.7 19.9 17.1-83.7 96.8zm27.4 23.7l83.6-96.7 19.9 17-83.7 96.9z"/>
+    <path d="M-49.4 126.4l83.6-96.7 19.9 17.1-83.7 96.8z"/>
+    <path d="M-49.4 126.4l83.6-96.7 19.9 17.1-83.7 96.8zm55.4 48l83.6-96.9 19.9 17.2-83.7 96.8z"/>
+    <path d="M-49.4 126.4l83.6-96.7 19.9 17.1-83.7 96.8z"/>
+    <path d="M-49.4 126.4l83.6-96.7 19.9 17.1-83.7 96.8zm508.8-96.8l83 97.4-20 17-83-97.4zm-55.7 47.5l83 97.4-20 17-83-97.4z"/>
+    <path fill="#fff" d="M417.6 133.2L496 65.4l14.7 17-84 75.4-9.3-24.6z"/>
+    <path d="M514.2 372l-80.4 95.8-19.7-16.4 80.4-95.8zM431.8 53.1l83 97.4-19.9 17L412 70zm109.7 341.6L461 490.5l-19.8-16.4 80.5-95.8zm-55.1-45.8L406 444.7l-19.7-16.4 80.4-95.8z"/>
+    <path fill="#3d5897" d="M104.6 236.7c4.6 37 11.3 78.2 68.2 82.4 21.3 1.3 62.8-5 77-63.2 18.8-55.8 75-71.8 113.3-41.6C385 228.5 391 251 392.4 268c-1.7 54-32.9 101-72.8 122-46 27.3-109.6 27.9-165.3-13.5-25.1-23.5-60.2-67-49.7-139.8z"/>
+    <path fill="#fff" d="M436 370.6l78.6 67.6-14.6 17-87.1-71.8 23-12.8z"/>
+    <path d="M-1.9 357.2l83 97.3-20 17-83-97.3z"/>
+    <path fill="#fff" d="M-16.2 437.3l78.6-67.9 14.7 17-84 75.5-9.3-24.7z"/>
+    <path d="M25.7 333.7l83 97.3-20 17-83-97.3zM-30 381.2l83 97.3-20 17-83-97.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/kw.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/kw.svg
new file mode 100644
index 0000000..b4a4bf2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/kw.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-kw" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="kw-a">
+      <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#kw-a)" transform="scale(.9375)">
+    <path fill="#fff" d="M0 170.6h1024v170.7H0z"/>
+    <path fill="#f31830" d="M0 341.3h1024V512H0z"/>
+    <path fill="#00d941" d="M0 0h1024v170.7H0z"/>
+    <path d="M0 0v512l255.4-170.7.6-170.8L0 0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ky.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ky.svg
new file mode 100644
index 0000000..1a2d9c9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ky.svg
@@ -0,0 +1,63 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ky" viewBox="0 0 640 480">
+  <path fill="#006" d="M0 0h640v480H0z"/>
+  <path fill="#006" fill-rule="evenodd" d="M0 0h400v200H0z"/>
+  <g stroke-width="1pt">
+    <path fill="#fff" d="M0 0v27l334.4 215.3h42.1v-27L42.1 0H0zm376.5 0v27L42.1 242.4H0v-27L334.4 0h42.1z"/>
+    <path fill="#fff" d="M156.9 0v242.3h62.7V0H157zM0 80.8v80.7h376.5V80.8H0z"/>
+    <path fill="#c00" d="M0 97v48.4h376.5V96.9H0zM169.4 0v242.3h37.7V0h-37.7zM0 242.3l125.5-80.8h28L28.2 242.3H0zM0 0l125.5 80.8h-28L0 18V0zm223 80.8L348.3 0h28.1L251 80.8h-28zm153.5 161.5L251 161.5h28l97.5 62.7v18.1z"/>
+  </g>
+  <path fill="#fff" fill-rule="evenodd" d="M448.3 179.1c-1 .6-3 2.5-5 1.9-2-.6-6.6-8.6-11.6-7.4-5 1.3-8.1 3.1-10.1 3.1s-7.6 1.8-7.6 6.7.5 8.6 1.5 8.6 2.5-3.1 2.5-3.1.5 6.1 4 6.1 11.2.6 11.7 2.5c.5 1.8-3.5 6-2.5 9.7 1 3.7 5.5 9.8 5.5 9.8s-6.5 4.8-6.5 8 1 6 1 6l-29.3 1.2s-2 86.7-1 93.4l3.5 23.2s-6.6-2.2-12.1 3.3c-5.6 5.5-25 15-25.5 19.2-.5 4.3-2.3 8-.3 11 2 3 9.2 11.4 7.1 11-6.8-1.1-9.3-10.8-13.9-14.3-4.5-3.5-13.3-2.8-14.4.9-1 3.7-.5 9.8 0 11 .5 1.2 6.1 20.7 7.6 25s17.4 10.7 24.5 10c13.4.4 19.4-5.7 20-5.1.4.6 28.7 29.8 86.8 29.9 45.2 0 79.2-29.3 79.2-28.7 0 .6 18.7 6.1 25.3 4.3 6.5-1.9 16.1-6.1 18.1-10.4 2-4.3 7.6-26.2 8.1-29.9s0-8-4.5-9.2-7-.9-9.6.3-3.3 4.6-7 10.7c-2.1 1.9-7.4 6.7-5.9 5.5s4.8-10.3 5.3-13.4c.5-3 2-8.5-1.5-11.6-3.5-3-9-4.3-15.1-8.8-6-4-10.6-10.7-14.2-10.7-3.5 0-7.5-1.8-7-1.8s4.5-9 3.5-18c-1-9.2.5-96.8 0-96.8s-25.2 1.9-25.2.6 2-9.7 0-15.2-10.7-9.2-8.1-10.4c2.5-1.2 13.6-4.3 13-9.1-.4-5-7.5-4.3-10.5-6.1-3-1.9-12.1-10.4-13.1-10.4s26.2-16.5 24.2-16.5-12.6-3-16.2-1.2c0-3 14.7-12.2 12.2-13.4-2.6-1.3-14.2-2.5-11.1-3 3-.7 4-8 3.5-8l-13.1 1.8s-3-4.3-4-4.3-5.6 2.5-5.6 2.5l-2.6-6.7-5.5 3.6-2.5-3s-4.6 1.2-4.6 0c.2 0-.5-3-1.2-3s-5.7 3.8-5.9 3.6c-.2-.2-5.7-8-5.7-7.8l-4.1 14.7c-.2 0-4 .4-4.1.6-.2.3-20-11.4-19.8-11.2l5.1 11.2s-4.2 2.4-4.2 2.6l.7 5-13.2-4.5s5 10 4.6 10l-9.6.5 4.4 8.4-1.6 5s14.2 10 13.2 10.6zm84.3 212.4c1.3 1.8 8.1 10.4 7.1 10.4s-18 11.3-24.7 13.4a351 351 0 01-27.8 5.8c1.3-.3 20-10.5 27.5-15.4a119 119 0 0018-14.2zm-105.5-.3c-1 1.2-5.8 10.7-5.8 10.7s13.9 9.7 24.2 13.4c10.4 3.6 28 4.9 27 4.6-1-.3-22.1-9.8-28.2-14.7-6-4.9-17-14-17.2-14z"/>
+  <g fill="#fec500" fill-rule="evenodd" stroke="#6d6666">
+    <path stroke-width="1.4" d="M394.6-213l35.4 21.4c6.6 4.1 28 22.2 29.6 21.4 1.6-.8 13.2-9.9 13.2-9.9S448.9-199 434-203s-39.5-8.2-39.5-9.9z" transform="matrix(.307 0 0 .37108 317 244.3)"/>
+    <path stroke-width="1.4" d="M390.5-231.9c2.5 0 47.7 23 61.7 34.6s19.7 26.3 21.4 26.3c1.6 0 23-3.3 22.2-3.3-.8 0-9.9-29.6-30.4-38.7-20.6-9-74-18.9-74.9-18.9z" transform="matrix(.307 0 0 .37108 317 244.3)"/>
+    <path stroke-width="1.4" d="M603.5-296c-.8 0-9 24.7-11.5 32-2.5 7.5-6.6 23-6.6 23s-36.2 3.4-34.5-.7c1.6-4.2 55-54.3 52.6-54.3z" transform="matrix(.307 0 0 .37108 317 246)"/>
+    <path stroke-width="1.4" d="M398.8-261.5s42.7 28.8 57.5 45.2c14.8 16.5 29.6 45.3 30.4 45.3.9 0 40.3-8.3 40.3-7.4s-46-46-68.2-60-59.2-21.4-60-23z" transform="matrix(.307 0 0 .37108 317 244.3)"/>
+    <path stroke-width="1.4" d="M443.2-273.8s21.3 32.9 25.5 44.4a1347 1347 0 0016.4 41h33.7s-16.4-37-34.5-55-40.3-28.8-41.1-30.4z" transform="matrix(.307 0 0 .37108 317 246)"/>
+    <path stroke-width="1.4" d="M454.7-291.9c.8 2.5 31.2 31.2 38.6 50.1a402 402 0 0113.2 42.8l29.6-7.4s-26.3-48.5-42.8-61.7c-16.4-13.1-37-22.2-38.6-23.8z" transform="matrix(.307 0 0 .37108 317 246)"/>
+    <path stroke-width="1.4" d="M700.5-209.7s-61.7 6.6-83.9 12.3-34.5 27.2-34.5 27.2 28.8 10.7 30.4 9 19-18.9 37.8-25.5c19-6.5 51.9-22.2 50.2-23z" transform="matrix(.307 0 0 .37108 317 244.3)"/>
+    <path stroke-width="1.4" d="M698-250c-1.6.9-51 41.1-66.6 54.3-15.6 13.1-30.4 27.1-32 28-1.7.8-32.1-4.2-30.5-5.8 1.7-1.6 45.3-37 74-52.6 28.8-15.7 52.7-22.2 55.1-23.9z" transform="matrix(.307 0 0 .37108 317 244.3)"/>
+    <path stroke-width="1.4" d="M685.7-278.8c-5 5.8-53.4 45.3-66.6 59.3S584.6-181 584.6-181s-25.5-11.5-23.9-16.5c1.7-4.9 36.2-33.7 60.9-50.1 24.6-16.5 66.6-29.6 64.1-31.3z" transform="matrix(.307 0 0 .37108 317 244.3)"/>
+    <path stroke-width="1.4" d="M636.4-282a725 725 0 00-35.4 39.4c-5.7 8.2-23 44.4-23 44.4s-25.5-22.2-25.5-23 32-34.5 51-47.7 33.7-10.7 32.9-13.1z" transform="matrix(.307 0 0 .37108 317 244.3)"/>
+    <path stroke-width="1.5" d="M565-241.8a10.5 10.5 0 11-20.8 0 10.5 10.5 0 0120.9 0zm21 14c0 5.1-4.7 9.3-10.4 9.3s-10.5-4.2-10.5-9.3 4.7-9.3 10.4-9.3 10.5 4.1 10.5 9.3zm-46.5-10.5c0 5.2-5.7 9.3-12.8 9.3-7 0-12.8-4.1-12.8-9.3s5.8-9.3 12.8-9.3c7 0 12.8 4.2 12.8 9.3z" transform="matrix(.307 0 0 .37108 317 246)"/>
+    <path stroke-width="1.5" d="M573.2-219c0 9.9-6.5 18-14.5 18s-14.5-8.1-14.5-18 6.5-18.1 14.5-18.1 14.5 8 14.5 18zm-39.5.5c0 7.7-6.5 14-14.5 14s-14.6-6.3-14.6-14 6.5-14 14.6-14c8 0 14.5 6.3 14.5 14z" transform="matrix(.307 0 0 .37108 317 246)"/>
+    <path stroke-width="1.5" d="M514-207.5c0 6.8-5 12.2-11.1 12.2s-11-5.4-11-12.2c0-6.7 4.9-12.2 11-12.2 6 0 11 5.5 11 12.2zm81.3-1.1c0 8-7.5 14.5-16.8 14.5-9.4 0-16.9-6.5-16.9-14.5s7.5-14.6 16.9-14.6c9.3 0 16.8 6.5 16.8 14.6zm-40.7-21c0 4.9-6 8.8-13.3 8.8s-13.4-4-13.4-8.8 6-8.7 13.4-8.7 13.3 4 13.3 8.7z" transform="matrix(.307 0 0 .37108 317 246)"/>
+    <path stroke-width="1.5" d="M557-210.4c0 7-8.4 12.8-18.6 12.8s-18.6-5.7-18.6-12.8c0-7 8.3-12.8 18.6-12.8s18.6 5.8 18.6 12.8zm47.6 22.7c0 8.7-7.8 15.7-17.4 15.7s-17.5-7-17.5-15.7 7.8-15.7 17.5-15.7c9.6 0 17.4 7 17.4 15.7zm-95.3-4c0 5.7-4.4 10.4-9.9 10.4s-9.9-4.7-9.9-10.5 4.4-10.4 9.9-10.4 9.9 4.6 9.9 10.4z" transform="matrix(.307 0 0 .37108 317 246)"/>
+    <path stroke-width="1.5" d="M579-193.5c0 7.4-6.7 13.4-15 13.4-8.4 0-15.2-6-15.2-13.4S555.6-207 564-207c8.4 0 15.1 6 15.1 13.4zm-47.6-.6c0 6.4-6 11.6-13.4 11.6s-13.4-5.2-13.4-11.6c0-6.4 6-11.6 13.4-11.6s13.4 5.2 13.4 11.6z" transform="matrix(.307 0 0 .37108 317 246)"/>
+    <path stroke-width="1.5" d="M554.6-190.6c0 7-6.2 12.8-14 12.8-7.6 0-13.9-5.8-13.9-12.8 0-7 6.3-12.8 14-12.8s14 5.7 14 12.8zm-60.4-76.8c3.4 0 27.9 8.2 27.9 8.2s-30.3 11.6-25.6 10.4 33.7-4.6 31.4-4.6c-2.3 0-25.6 22.1-18.6 21 7-1.2 20.9-15.2 22-15.2 1.2 0 15.2 22.1 16.4 21 1.1-1.2 0-22.2 1.1-22.2s29 14 26.7 12.8a123.2 123.2 0 01-17.4-17.4c1.2 0 38.4 3.5 36 2.3l-24.4-11.6s16.3-15.1 12.8-15.1-30.2 15.1-27.9 14c2.3-1.2 29-31.5 29-31.5L557-282.5s4.7-18.6 2.4-17.4c-2.4 1.2-21 24.4-22.1 24.4s-5.8-23.2-5.8-23.2 1.1 25.5-5.9 26.7c-7 1.2-31.3 5.8-31.3 4.7z" transform="matrix(.307 0 0 .37108 317 246)"/>
+  </g>
+  <g fill-rule="evenodd">
+    <path fill="#00389b" d="M445.5 216.5c.2.9 5.9 16.4 14.7 16s12.3-3 11.9-3.2a18 18 0 01-6.2-8.5 44 44 0 01-2.5-8l-17.9 3.7zm31.2-6s6.5 15.3 9.3 17.5c2.9 2.1 9.5 3.8 12.3 3.6 2.9-.2 6.3 0 6.3 0s-2.9-1.5-5.2-9.9l-3-11.2h-19.7zm39.3 5.6s-1.2 11.2 0 14c1.3 2.8 7.5 8 7.5 8s7.5-1 7.7-8a36 36 0 00-2.5-13.3L516 216z"/>
+    <path fill="#005120" stroke="#000" stroke-width="1.5" d="M289 21s1.1 4.7 0 8.2-11.1 12.8-11.1 20.3c0 7.6 11.6 30.8 47 31.4 35.6.6 80.3-19.2 79.7-19.8-.6-.5-84.9-57-86-56.4-1.2.6-29.7 17.5-29.7 16.3zm234.2 40.1s7.6 20.4 10.5 22.7c2.9 2.3 4 7 4.7 7s48.8 10.4 48.8 10.4 4.6-13.3-2.3-23.8c-7-10.5-33.2-37.8-33.2-37.8l-28.5 21.5zm33.2-25c1.1 0 12.8 10 22 4.7 9.4-5.2 24.5-19.2 24.5-19.2s-12.8 4-22.1 3.5c-9.3-.6-23.8 11.6-24.4 11z" transform="matrix(.307 0 0 .37108 350.7 188.7)"/>
+    <path fill="#005120" stroke="#000" stroke-width="1.5" d="M287.2 23.3s-3.5-9.8-12.8-10.4c-9.3-.6-26.2 1.1-32-3.5C236.6 4.7 235-6.3 232-5.7c-3 .5-10.5 0-11 0s-3.6-9.3 4.6-14 15-.6 19.7-4 11.7-5.9 21-6.5c9.3-.5 24.4 11.7 31.4 14.6 7 2.9 22 6.4 27.9 3.5 5.8-3 38.3-15.7 50-16.3 11.6-.6 36-1.2 45.3-.6s46 5.3 57 10.5S547.7 7 555.8 11.7c8.1 4.7 26.2 11.6 26.2 11.6S550 54.7 534.2 60a354.9 354.9 0 01-95.4 11.6c-29.6-1.7-52.9-4.7-75.5-16.3-22.7-11.6-47.1-22.7-48.3-28.5-1.2-5.8-.6-13.3-.6-13.3l-27.3 9.8z" transform="matrix(.307 0 0 .37108 350.7 188.7)"/>
+    <path fill="#005120" stroke="#000" stroke-width="1.5" d="M251.2-14.4c-1.2.5-7 2.9-5.9 4 1.2 1.2 3.5 4.7 10.5 4 7-.5 14.5-4.6 14.5-4.6s-8.7-4-19.1-3.4z" transform="matrix(.307 0 0 .37108 350.7 188.7)"/>
+    <path stroke="#000" stroke-width="1.5" d="M250.6-13.3v6.4s8.1 2.3 8.1.6c0-1.7.6-5.8-1.2-5.8s-6.4-.6-7-1.2z" transform="matrix(.307 0 0 .37108 350.7 188.7)"/>
+    <path fill="#001707" stroke="#000007" stroke-width="1.5" d="M332-8.4c2-3.7 0-8.7 11.9-14.4 11.9-5.8 32.7-4.2 32.7-4.2s-6 4.6-6.2 9.3c-.2 4.7.4 6.8.4 6.8s-11.3-3.7-20-1.5-18.6 4.6-18.9 4zm53.4-20.2c-1.2.6-10.3 10.7-9.3 13.8 1 3 13.2 10.5 17.1 9.8 4-.6 21.8-9.2 22.8-13.5 1-4.3 1.9-10.1.4-11.3-1.4-1.3-30.8 1.6-31 1.2zm39.3-1.6c-2.3 2.2-1.5 13.1-.7 14.3.9 1.3 15 15.5 18.1 16.3 3.1.8 26-1.5 27.8-4s7.4-12.9 5.7-15.3c-1.6-2.5-6.5-5.8-21.8-9s-24.2-3-29.1-2.3zm58.1 13.7c3.7 1.9 25.3 12.4 38 20.8 12.8 8.4 18 18 21.6 18.9 3.7.8 18.7-8.2 19.3-10.7.7-2.5-18.3-15.6-31-21.6-12.7-6-47.9-6.7-47.9-7.4zm-4.5 8.9c-1.9 1.6 23 45 27.7 46.4 4.8 1.5 33.1-8.4 32.7-11.7-.4-3.3-7.8-9.9-25.3-19.5-17.4-9.7-31.6-16-35.1-15.2zM447.5 8.2c-4 2.3-10.1 41.1-6.2 43 3.9 1.8 52-4.8 53.9-9C497 37.7 475.4 3.4 469 3.4c-6.4 0-18 1.6-21.6 4.7zM397.7 0c-5.1 4.7-4 40.9-1.8 43.1 2.2 2.3 30.8 9.7 33.9 7 3-2.6 7.2-43.3 4.3-46.4-2.9-3.1-10.9-10.5-17-11.1-6.2-.6-16.5 6-19.4 7.4zm-64.5-.6c-4.7 3.7-5 13.3.2 15 5.1 1.6 17.9 7.2 29.8 12.3 12 5.1 18.7 11.3 22.2 11.1 3.5-.2 6.8-36.4 3-38.4A62 62 0 00363.7-4a156 156 0 00-30.4 3.3z" transform="matrix(.307 0 0 .37108 350.7 188.7)"/>
+  </g>
+  <path fill="#d40f0f" fill-rule="evenodd" d="M388 359.2c2.6-2.5 6.6-8.7 12-9 5.5-.2 11.3 4.8 11.3 4.8s5.7 23.5 5.4 23.5c-.2 0-9.5 6.7-9.7 6.7-.3 0-4-9.2-7.5-8.3-3.5.8-3.2 13.4-3.8 12.6-.5-.9-15.2-18.2-14.6-18.8.5-.6 7.2-10.7 6.9-11.5zm151.9-3c1.7-.4 9.5-6.2 15-6 5.4.3 8.6 2.8 11.4 5.4 3 2.5 6.4 9 6.4 9s-7 19-7.5 19-3.5 1.6-4 .2-2.3-5.8-5.8-6.4c-3.4-.6-4.3 6.2-4.3 6.2L539.9 356z"/>
+  <path fill="#fddc59" fill-rule="evenodd" d="M543.6 362c0 1.7 10.7 28 27.9 33 17.3 5.1 22.7-4.7 24.7-8 2-3.4 9.2-3.1 9.2-3.1s-1.7 24.6-4.6 27.7c-2.8 3-5.1 9.8-21.2 10-16.1.3-30.8-15-35.7-19.5a91.6 91.6 0 01-13.8-21.6c-2.6-5.3 13.8-18 13.5-18.5zM356 414.4c.3 0 7.8 8.1 18.8 7.3 10.9-.9 29.6-7.3 38.2-18.5a96 96 0 0013-23.3s-12.7-22.4-13-22.4c-.3 0-1.4 7.3-3.7 12-2.3 4.8-8.7 18.3-19.3 22.5-10.6 4.2-10.6 5.9-15 5.3a59.3 59.3 0 01-15.5-7.6L354 403s-1.1 8.7 2 11.5z"/>
+  <path fill="#fddc59" fill-rule="evenodd" d="M387.8 358.4c-.8 0-21.2 11.1-20.4 15.9.9 4.7 35 72 108.2 72.9 73.3.8 118-61 114.8-71.3-3.3-10.3-26-22.2-26-22.2s5.6 4.7 4.8 11c-.8 6.4-26 61-89.5 59.5-63.4-1.6-93.5-50-93.5-55.5s3.2-8.7 1.6-10.3z"/>
+  <path fill="#d40f0f" fill-rule="evenodd" d="M586.2 407.4c1.7-1.4 12.3-30.5 18.4-29.7 6 .8 4 9.5 3.4 11.8-.5 2.2-6.6 22.4-6.6 22.4s.3-4.8-3.7-6-10.7 2-11.5 1.5zM356 414.7c0-1.6-4.8-7.2.9-8.7 5.7-1.6 13 1.5 13 1.5s-4-11.8-9-21.4c-4.9-9.5-6.5-7.9-10.6-6.3-4 1.6-4 5.8-1.5 12.1 2.5 6.4 7.2 24.4 7.2 22.8z"/>
+  <path fill="#fdc400" fill-rule="evenodd" d="M423.2 360.4l7-24-19.6-15 24.6-.6 8-23.6 8.1 23.6 24.6.4-19.6 15.2 7.2 23.9-20.2-14.3z"/>
+  <path fill="#fff" fill-rule="evenodd" d="M555.6 235.8v92c.2 45-45.7 84.4-76.1 92.1-30.5-7.6-76.3-47-76.2-92v-92h152.3z"/>
+  <path fill="#d40f0f" fill-rule="evenodd" stroke="#000" stroke-width="1.5" d="M177.2 326l.4 160.7s2.4-3.3 35-1.3c32.6 2 35.4 35.5 70.9 35.5 35.4 0 35.4-35.5 70.8-35.5s35.5 35.5 70.9 35.5 35.4-35.5 70.9-35.5 35.4 35.5 72.8 37.5c33.5-2 33.5-37.5 69-39.5l35.3 2V326h-496z" transform="matrix(.307 0 0 .35829 349 119)"/>
+  <path fill="#0062bb" fill-rule="evenodd" d="M403.3 312v19h11c10 .8 10.8 12.8 21.7 12.8s10.8-12.8 21.7-12.8 11 12.8 21.8 12.8 10.9-12.8 21.7-12.8 10.3 12 21.8 12.8c10.3-.8 10.8-12 21.8-12.8h10.8v-19h-10.8c-11 0-11 12.7-21.8 12.7S512.1 312 501.2 312s-10.8 12.7-21.7 12.7-10.9-12.7-21.8-12.7-10.8 12.7-21.7 12.7-11-12.7-21.8-12.7h-10.9zm3.3 38l7.6 19.1c10 .8 10.9 12.7 21.8 12.7 10.8 0 10.8-12.7 21.7-12.7s11 12.7 21.8 12.7 10.9-12.7 21.7-12.7 10.3 12 21.8 12.7c10.3-.7 10.6-12 21.5-12.7l7.8-19.3-7.5.3c-11 0-11 12.7-21.8 12.7S512.1 350 501.2 350s-10.8 12.7-21.7 12.7-10.9-12.7-21.8-12.7-10.8 12.7-21.7 12.7-11-12.7-21.8-12.7h-7.6zm72.9 70c10.9 0 35.8-19.1 35.5-19.1.3 0-2.9-12.7-13.8-12.7s-10.8 12.7-21.7 12.7-10.9-12.7-21.8-12.7-13.6 12.7-13.7 12.7c-.5 0 24.6 19 35.5 19z"/>
+  <path fill="#fdc400" fill-rule="evenodd" stroke="#000" stroke-width=".7" d="M90.8 117.6c.9 0 8.3 1.2 13.6.8 5.4-.4 7.4-2.5 7.4-2.9v-1.2h7s1.2 5.7.4 6.1-2.9 2.1-3.3 2.1 0-2.9-.8-2-1.2 2-1.2 2-.9-1.2-1.3-1.2-1.2 1.2-1.2 1.2 0-1.2-.4-1.2-2.5 2-2.5 2l-2-1.6s-1.3 2-1.7 2-2.9-1.6-2.9-1.6l-4 2.5s0-3.7-.9-3.3c-.8.4-5.3.4-5.3.4S90.4 124 90 124s-2-2-1.6-2 1.2-1.2.8-1.7c-.4-.4-2.5 0-2.5-.4s-.8-2.8-.4-2.8l2 .4V115h2.1l.4 2.5z" transform="matrix(1.5005 0 0 1.3054 287 126.3)"/>
+  <path fill="#fdc400" fill-rule="evenodd" stroke="#000" stroke-width=".7" d="M98.3 94.1c-.5 0-3.3 3.3-3 7 .5 3.7 7.5 9 7.5 9s3.7-1.6 4.9 0 1.2 6.6.8 6.6-5.3 1.3-5.3.5c0-.9 0-1.7-.4-1.7l-5 .4.4-1.6-4-.8 1.6-1.7s-6.6-2.9-6.2-2.9 2.9-1.6 2.9-1.6l-5-3.3h3s-4.2-3.3-3.8-3.3l2.5.4-1.2-3.3h1.2L88 95.4l2-.9 1.3 2.1-.5-5 3 .5v4s1.2-2.4 1.2-2.8c0-.4 3.7 1.7 3.2.8z" transform="matrix(1.5005 0 0 1.3054 287 126.3)"/>
+  <path fill-rule="evenodd" d="M530 282.4c-.8.7-3.1 2.2-3.1 2.2l5-.4a7 7 0 01-2-1.8zm4.4 2.6c-.3.4-1.2 4.6-.6 4.3a29 29 0 003.1-3.4l-2.5-.9zm7.1.5c.8.7 4.3 3.8 3.9 3.1-.5-.7-1-3.5-1.3-3.6-.3-.1-2.3.8-2.6.5zm-62.1-4.4c-.5.1-4.3 2.7-4.3 2.7l6.1-1c-.3 0-2-1.3-1.8-1.7zm4 3.2c-.6.6-2.6 4.3-1.9 4.2a27 27 0 004.2-2.6l-2.3-1.6zm-2.5-5.2l-3.5-1.5 4.3-1-.8 2.5zm-61-1.7l-4.7-3.3 5.9 1.6-1.2 1.7zm-4 2.1c-.7 0-6.5 3.2-6.4 3.2s8.2.2 8 0c-.1-.1-1.3-3-1.7-3.2zm3.7 4.7a40 40 0 00-5 3.4h7l-2-3.4zm-.7-33.4s-1.7-3.8-1.5-3.8l4.3 3-2.8.8zm4.7-4.7l.4-2.4s4.2 2.8 4 2.8c-.1 0-4.1 0-4.4-.4zm6.4 1.7l.5-3.5s3.9 4.6 3.5 4.7c-.3.2-3.7-.6-4-1.2z"/>
+  <path fill="#fdc400" fill-rule="evenodd" stroke="#000" stroke-width=".7" d="M137.3 110.9c0 .2 4.3 3.7 4.4 4.5 0 .8-7.8 1-7.8 1s-2.3-1.7-3-1.6c-.7 0-1 1.8-1 1.8l1.8 1-3.5.2 1 2 2.7-.2-.6 1.8s1.6 1.3 2 1c.3-.1 1.3-2 2.1-2.3.8-.3 2.6-.3 2.6-.3s-1.4 2.3-.7 2.3c.6 0 3.4-2.4 3.4-2.4l.7 2.2 2-2.5s0 2 .3 2 3.2-2.5 3.2-2.5 2.3 2.8 2.6 2.6c.3-.2.6-3 1-3s2.2-.3 2.2-.5-1.3-1-1.5-2.5c-.2-1.5.2-4.8.1-4.8s-13.8.5-14 .2z" transform="matrix(1.5005 0 0 1.3054 286 126.6)"/>
+  <path fill="#fdc400" fill-rule="evenodd" stroke="#000" stroke-width=".7" d="M115.4 104.6h40.3c4 0 7.8-1.6 7.8-4.1 0-2.5-6.6-2.9-9-2-2.5.8-13.2 5.7-17.7 5.3s-8.7-3.3-9.1-6.2c-.4-2.9 2-5.3 6.6-5.3s10.3 1.6 11.5 1.2 4.1-3.7 5.3-4.1c1.3-.4 5-.8 5-.8l-1.7 1.2 5.4-1.2s-4.1 4.5-8.3 5.7c-4 1.3-12.7.8-16 .8s-5-.4-4.5 2.1c.4 2.5 2.9 4.1 5 3.7 2-.4 8.1-2.5 8.1-2.5l-1.6-1.2 7.4-.4s-.4-1.2 0-1.2l4.1.4s-2.5-1.3-2-1.3 2 0 5.3.4 10.3 1.7 9.9 5c-.5 3.3-3 6.1-5.8 6.1s-5.3-.8-5.3.5c0 1.2 3.3 2 5.3 2s4.5-1.6 5-1.6 1.2 2.4 1.6 2.4 2.9-.8 2.9-.8l-1.7 4.5 2.9.8s-1.6 1.7-1.2 1.7 2.8 0 2.8.4-3.2 2.9-3.2 3.3 2.4 1.6 2.4 1.6-1.6 2.5-2 2.1l-2-2.5s-.5 1.7-1.3 1.7-2.5-.4-2.5-.4 1.2-2.5.8-2.5-2.4 1.6-2.4 1.2l-1.3-1.2s3.3-1.3 3.3-3.3c0-2-1.3-3.9-7.3-4.2-6-.3-6 1.4-10.5 1.2-4.4-.2-4.4-2-7.7-2s-13.4 4.2-18.2 4c-4.7 0-10.6-.3-10.4-.5.2-.2 3.9-9.7 4-10z" transform="matrix(1.5005 0 0 1.3054 286 126.6)"/>
+  <path fill="#fdc400" fill-rule="evenodd" stroke="#000" stroke-width=".7" d="M106.9 102.5c-.4.2-4 .7-4.2 4.5-.2 3.8.3 3.8.7 3.6.4-.2 1.2-3.5 1.2-3.5s-1.2 4.5.1 5.5a9.3 9.3 0 002.8 1.5l.5-3.6s-1 3.5 1.5 4.7c2.4 1.2 3.4.3 3.1-.6a70 70 0 00-.9-3.3l2 2.4c.2.2 1 1.8 3.6 1 2.4-.6.7-2.3.7-2.3l-3-2.4s3 3.1 4.4 2-1-3.6-1-3.5 2 3.5 2.8 1.4-1.2-2.8-1.8-4.9c-.6-2-1.1-2.2-.5-3.5.6-1.2.7-3.6.7-3.6s2.6.7 2.4-1.5c-.2-2.2-2.8-2.7-3.3-2.8-.5 0-.4-2.2-.6-2.1-.2 0-1.9 1.3-1.9 1.3s-1.4-3.4-1.7-3.2-2 2-3.2 2c-1.2.2-2 2-2 2s-4.3-2.1-4.2 1.3c.1 3.4 2.6 2.5 2.6 2.6s-.4 4.8-.8 5z" transform="matrix(1.5005 0 0 1.3054 287 126.3)"/>
+  <path fill-rule="evenodd" d="M450.9 253.3c.7-.3 1.8-1.2 3-1.1s3.4 1 2.4 1.6c-1 .5-1.8.8-3 .5-1-.3-2-.8-2.4-1zm12.6-.2c-.8-.2-1.9-1.1-3.2-1s-3.2 1-2.2 1.6a4 4 0 002.8.5c1.2-.3 2-.9 2.6-1z"/>
+  <path fill="#000039" fill-rule="evenodd" stroke="#000" stroke-width=".4" d="M111 103.2c0 .5.4 4.8.6 4.5l1.7-4.4-2.3-.1z" transform="matrix(1.5005 0 0 1.3054 287.1 126.4)"/>
+  <path fill="none" stroke="#000" stroke-width=".8" d="M110 103.2c0-1.3.8-1.2 2.4-1 1.7.2 2.5 1 2.4 1.3-.1.2-1.5.7-2.6.6-1.3-.4-2.3 0-2.2-1z" transform="matrix(1.5005 0 0 1.3054 287.1 126.6)"/>
+  <path fill="none" stroke="#000" stroke-width="1.5" d="M112.4 100l-.2 2m7.1-7.2s1.4.7 1.2 1.3c-.2.6-1.2.9-1.2.9m-11.2-2.7c-.3.1-.7.3-1 1.2-.1.8 1 1.3 1 1.3" transform="matrix(1.5005 0 0 1.3054 287.1 126.6)"/>
+  <path fill="none" stroke="#000" stroke-width="1.5" d="M111.2 136.1s-1.5 1.5 1 1.5.7-1.3.7-1.3" transform="matrix(1.5005 0 0 1.3054 287.4 77.6)"/>
+  <path fill="#fdc400" fill-rule="evenodd" d="M462.4 403.8l6.4-21.1-17.9-13.2 22.4-.5 7.2-20.8 7.4 20.7 22.3.4-17.7 13.3 6.4 21-18.3-12.4z"/>
+  <path fill="#003017" fill-rule="evenodd" d="M465.4 398.1l5.3-16.7-14.8-10.5 18.6-.4 6-16.5 6.2 16.4 18.5.4-14.7 10.5 5.4 16.7-15.3-9.9z"/>
+  <path fill="#fdc400" fill-rule="evenodd" d="M425.7 361.1l6.3-19.9-17.6-12.5 22-.5 7.2-19.7 7.3 19.7 22 .3-17.5 12.6 6.5 20-18.2-11.9z"/>
+  <path fill="#003017" fill-rule="evenodd" d="M428.7 355.8l5.3-15.9-14.7-9.9 18.4-.4 6-15.6 6 15.6 18.4.3-14.6 10 5.4 15.8-15.2-9.4z"/>
+  <path fill="#fdc400" fill-rule="evenodd" d="M499.6 361.1l6.4-20-17.8-12.4 22.3-.5 7.3-19.7 7.4 19.7 22.3.3-17.8 12.6 6.5 20-18.3-12z"/>
+  <path fill="#003017" fill-rule="evenodd" d="M502.6 355.8l5.4-15.9-15-9.9 18.6-.4 6-15.6 6.3 15.6 18.6.3-14.8 10 5.4 15.8-15.3-9.4z"/>
+  <path fill="none" d="M373.3 372.6c8 34.5 41.9 60.1 87.5 66.2 58.6 7.8 114.5-21.9 124.8-66.3"/>
+  <path d="M373.1 377.9l11-6.2 1 2.2-4.3 2.5 1.5 3.1 4.3-2.4 1 2.2-11 6.2-1-2.2 5-2.8-1.5-3.2-5 2.9-1-2.3m4.6 9.6L388 380l3.5 5.9-1.7 1.2-2.2-3.7-2.4 1.8 2 3.4-1.5 1.2-2.1-3.4-2.9 2 2.3 3.9-1.7 1.3-3.6-6m7.2 11l9-9.2 1.6 1.8-3.5 3.7 2.1 2.5 3.5-3.6 1.6 1.9-9 9.3-1.6-1.9 4-4.2-2-2.6-4.1 4.2-1.6-1.8m11.8 5.5l1.5 1.4 2.7-5-4.2 3.6m-5.7 1.7l10.2-8.3 2.3 2.3-6 12.4-1.9-1.9 1.6-3-2-2-2.5 2.2-1.7-1.7m9 8.3l6-9.2-2.1-1.8 1.2-1.8 6.1 5-1.2 1.8-2.1-1.7-6.1 9.2-1.9-1.5m5 4l6.5-11.7 1.9 1.3-2.5 4.6 2.7 1.8 2.5-4.6 2 1.4-6.5 11.7-2-1.3 3-5.4-2.7-1.8-3 5.3-1.9-1.3m12.1 7.7l5.2-12.5 5.9 3-.9 2-3.8-1.9-1.2 3 3.6 1.8-.9 2-3.5-1.9-2.3 5.5-2-1m11.4-2a15 15 0 00-1 4.2c0 .6.3 1 .9 1.3.6.3 1 .2 1.5-.3.4-.4 1-1.7 1.7-3.8s1-3.5 1-4.2a1.4 1.4 0 00-1-1.3c-.5-.3-1-.2-1.4.3-.4.4-1 1.7-1.7 3.9m-2.2-1a16 16 0 012.4-4.8 3 3 0 011.7-.7c.5 0 1.2 0 2 .4s1.2.7 1.6 1.1c.4.5.7 1 .8 1.8.1.5 0 1.2-.1 2a25.2 25.2 0 01-1 3.4l-1.2 3.2c-.4.7-.8 1.3-1.2 1.6-.5.4-1 .7-1.6.7-.6.1-1.2 0-2-.4s-1.3-.7-1.7-1.1a3.7 3.7 0 01-.8-1.8l.1-2 1-3.4m10.6-2.9l2.2.8-2.4 8.8a4.7 4.7 0 00-.2 2.2c.1.4.5.7 1 1 .6.1 1 0 1.4-.2.3-.3.6-1 .9-2l2.3-8.8 2.2.7-2.4 9a9.8 9.8 0 01-.7 2 2.9 2.9 0 01-.7.9 2.9 2.9 0 01-1.6.6 4.8 4.8 0 01-2-.3c-1.3-.4-2.1-1-2.5-1.9-.4-.8-.4-2 0-3.7l2.5-9m5.9 16.1l2.7-13.4 2.3.6 1.3 10.1 1.8-9.3 2 .5-2.6 13.4-2.3-.6-1.3-10.2-1.8 9.4-2.1-.5m12 .7l1 .2h1.2a1 1 0 00.5-.3c.3-.3.5-.8.7-1.4a24.1 24.1 0 00.8-5.8 3 3 0 00-.4-1.4 1 1 0 00-.4-.5l-1-.2-1-.2-1.3 9.6m-2.5 1.6l1.9-13.6 3.6.7c.8.1 1.3.3 1.8.5.4.2.7.5 1 .9.3.5.5 1.2.6 1.9 0 .7 0 1.8-.2 3.3a31 31 0 01-.7 4 6.4 6.4 0 01-1 2c-.3.5-.7.8-1.3 1-.5.1-1.4 0-2.6-.2l-3.1-.5m9.5 1.6l1.2-13.7 6.3.7-.2 2.3-4-.5-.3 3.2 3.8.4-.2 2.1-3.8-.4-.3 3.8 4.1.4-.2 2.3-6.4-.6m10.4-1.1h2.2a1 1 0 00.5-.5c.2-.3.4-.8.5-1.4a23 23 0 00.2-3v-3a3 3 0 00-.6-1.3 1 1 0 00-.5-.3l-1-.2h-1l-.3 9.7M470 441l.5-13.7 3.7.1a6 6 0 011.7.3c.5.2.8.4 1.1.8a4 4 0 01.9 1.8l.2 3.3a31.6 31.6 0 01-.4 4.1 4 4 0 01-.7 2c-.3.6-.7 1-1.2 1.2-.5.2-1.4.3-2.6.2l-3.2-.1m13.8.2l-.5-13.7 2.3-.1.5 13.7h-2.3m6.1-.3l-.8-11.4-2.7.2-.1-2.2 7.5-.7.2 2.2-2.6.3.8 11.4-2.3.2M498 426l2.3-.4 1.4 9c.2 1.1.4 1.8.7 2.1.3.4.7.5 1.3.3.6 0 1-.3 1.1-.8.2-.4.2-1.1 0-2.2l-1.4-9 2.2-.5 1.5 9.4.2 2-.3 1.2a3.3 3.3 0 01-1.2 1.3 5 5 0 01-1.8.7c-1.4.3-2.4.1-3.1-.4-.7-.6-1.2-1.7-1.4-3.4L498 426m12.3 3.5l1-.3c.6-.2 1-.4 1.3-.8.2-.4.2-1 0-1.7 0-.7-.3-1.2-.7-1.4-.3-.2-.8-.3-1.5 0l-1 .2.9 4m-.5 8l-3-13.3 4-1c1.1-.3 2-.3 2.7.2.6.4 1.1 1.3 1.4 2.6.3 1.4.2 2.4-.2 3.2-.4.8-1.2 1.4-2.3 1.7l-1.7.4 1.3 5.7-2.2.6m8.8-9.7a15 15 0 001.5 4c.4.4.9.5 1.5.3s1-.6 1-1.2-.2-2-.9-4.2-1-3.5-1.5-4c-.3-.5-.8-.6-1.4-.4-.6.2-1 .7-1 1.3-.1.6.2 2 .8 4.2m-2.3.8c-.4-1.4-.6-2.5-.7-3.4a5.6 5.6 0 010-2c.2-.8.4-1.3.8-1.8a5 5 0 011.8-1 4.1 4.1 0 012-.3c.5.1 1 .4 1.6.9.4.3.7.9 1 1.6a24.7 24.7 0 011.9 6.6 6 6 0 010 2.1 3.7 3.7 0 01-.8 1.7 4 4 0 01-1.8 1.1c-.8.3-1.4.4-2 .3a3 3 0 01-1.5-.9 5 5 0 01-1.1-1.6c-.4-.8-.8-2-1.2-3.3m11.3 3.1l-4.6-12.7 2.2-1 6.2 7.6-3.2-8.9 2-.9 4.6 12.7-2.2 1-6.2-7.6 3.2 9-2 .8m14.3-7l-4.8-10.1-2.3 1.3-1-2 6.7-3.9 1 2-2.3 1.4 4.8 10.1-2 1.2m5.4-3.2l-6.6-11.6 2-1.4 2.5 4.6 2.7-2-2.6-4.5 2-1.3 6.5 11.6-2 1.3-3-5.2-2.6 1.8 3 5.3-2 1.4m8.3-6l-7.4-11 5-4.2 1.3 1.9-3.3 2.7 1.7 2.5 3-2.5 1.2 1.7-3 2.5 2 3 3.4-2.7 1.2 1.8-5 4.3M562 404l1.6-1.8.6.6c.5.6 1 1 1.2 1 .4 0 .7 0 1-.4.4-.4.6-.8.6-1.2a2 2 0 00-.5-1.2 2 2 0 00-.9-.5 4.2 4.2 0 00-1.5 0l-1.4.3a6.4 6.4 0 01-2.6.2 3.3 3.3 0 01-1.5-1 3.8 3.8 0 01-1.1-2.7 4.1 4.1 0 011.2-2.7c.8-1 1.7-1.3 2.5-1.3s1.7.5 2.6 1.4a3.8 3.8 0 01.3.4l-1.6 1.7-.2-.3a3 3 0 00-1.3-.9c-.3 0-.7.1-1 .5-.3.3-.4.6-.4 1 0 .3.1.6.4 1 .3.3 1 .4 2.2.2l1.5-.3a5.3 5.3 0 012.5-.1c.6.1 1.2.6 1.8 1.2a4 4 0 011.1 2.8 4.5 4.5 0 01-1.3 2.9c-.9 1-1.8 1.4-2.6 1.4-1 0-1.8-.6-2.7-1.6l-.5-.6m9.5-3.9l-9.5-8.8 4.1-5.4 1.6 1.5-2.6 3.4 2.2 2 2.4-3.2 1.5 1.4-2.4 3.2 2.6 2.5 2.6-3.6 1.6 1.5-4 5.5m2.3-12.3l1.1-1.8-4.8-2.3 3.7 4.1m2.3 6.1l-8.7-10.2 1.7-2.8 11.8 5-1.4 2.3-2.9-1.3-1.5 2.4 2.3 2.5-1.3 2.1m1.4-11.1l1.1-2.3.7.4c.7.4 1.2.6 1.5.5.3 0 .6-.3.8-.7.2-.5.3-1 .2-1.3 0-.4-.4-.7-.8-1a1.5 1.5 0 00-1-.2c-.3 0-.8.3-1.4.6l-1.3.8a6.6 6.6 0 01-2.4 1 3 3 0 01-1.7-.5 3.5 3.5 0 01-1.8-2.1 4.3 4.3 0 01.4-3c.5-1.1 1.2-1.8 2-2 .9-.4 1.8-.2 2.8.4a3.5 3.5 0 01.4.2l-1 2.2-.3-.2c-.6-.3-1-.5-1.4-.4-.3 0-.6.3-.9.8-.1.4-.2.7 0 1 0 .4.2.6.6.8.4.3 1.2.1 2.2-.5l1.3-.8c1-.6 1.8-1 2.4-1 .6 0 1.3.2 2 .6 1 .5 1.6 1.3 1.9 2.2.2 1 0 2-.5 3.2-.5 1.3-1.2 2-2 2.3-1 .3-2 0-3.1-.6a11.5 11.5 0 01-.6-.4"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/kz.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/kz.svg
new file mode 100644
index 0000000..049d6fd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/kz.svg
@@ -0,0 +1,23 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-kz" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="#6fdcff" d="M0 0h640v480H0z"/>
+    <g fill="#ffe400">
+      <path d="M60.2 467c3.3 3.2 2.2 8.5 11.3 7.8 13.8 0 14.2-8.4 14.2-14.3S65 446.4 64 437.7c-1-8.7 4.8-11 9.6-11 4.7 0 8 2.7 8 5.1S79.4 435 76 435s1.5-1.7-1.4-3-4.8 2-4.8 4c0 2.2 7.2 2.8 12 1.3 1 4.7 1.4 5-5.3 13 4.8-3.1 5.2-3.8 10.5-2-5.3-4.6-1.3-13.8-1.2-16.1s-1-5.1-3-6.5c-3.9-3.5-12.2-3.7-17.2-1.4-7.3 3.2-7.7 12.8-5.8 16L80 460.7c1.4 2.4 2 9.2-6.6 9.5-9 .7-12.2-11.6-13.8-15.7-2.1 4.5-4.5 16.8-13.6 16.1-8.6-.3-10.2-7-8.8-9.5l20.7-21c2-3.2 1.6-12.8-5.7-16-5-2.3-13.3-2-17.1 1.4-2.2 1.4-3.4 4.1-3.2 6.5s4.1 11.5-1.1 16c5.2-1.7 5.7-1 10.5 2-6.7-7.9-6.2-8.2-5.3-13 4.8 1.6 12 1 12-1.1s-2-5.6-4.9-4.2c-2.8 1.4 2 3.1-1.4 3.1-3.3 0-5.7-.7-5.7-3s3.3-5.3 8.1-5.3 10.5 2.4 9.5 11.1-22 18.1-22 24c0 6 1.4 13.1 15.2 13.1 9 .7 10.1-4.6 13.4-7.8z"/>
+      <path d="M59.1 343.3c3.3-3.2 6-12.6 15-12 13.8 0 19 7.7 19 13.6 0 5.9-28 54-29 62.7-1 8.7 4.8 11.1 9.5 11.1 4.8 0 8.1-2.7 8.1-5.2s-2.4-3-5.7-3 1.4 1.7-1.4 3-4.8-2-4.8-4.1c0-2.1 7.2-2.8 12-1.2.9-4.7 1.3-5-5.3-13 4.8 3 5.2 3.8 10.5 2-5.3 4.6-1.4 13.7-1.2 16s-1 5.2-3.1 6.6c-3.8 3.5-12.2 3.6-17.2 1.4-7.2-3.3-7.6-12.8-5.7-16L87 346.6c1.5-2.4-2.3-10.4-10.9-10.7-9-.7-12.1 8.8-13.7 12.9l12.3-1s.5 2 0 3.2a110 110 0 00-12.3 1.6l-.5 6.2h6l-.4 2.8s-5.1-.4-5.6 0c-.5.3-1 6.2-1 6.2s-1 .4-2 .4-2-.4-2-.4-.4-5.9-.9-6.2c-.5-.4-5.6 0-5.6 0l-.5-2.8H56l-.5-6.2s-6-1.2-12.3-1.6c-.4-1.2 0-3.1 0-3.1l12.3.9c-1.6-4.1-4.7-13.6-13.7-13-8.6.4-12.4 8.4-11 10.8L58 405.2c1.9 3.1 1.5 12.7-5.7 16-5 2.2-13.4 2-17.2-1.4-2.1-1.4-3.3-4.2-3.1-6.5s4-11.6-1.2-16c5.3 1.7 5.8 1 10.5-2.1-6.6 8-6.2 8.3-5.2 13 4.7-1.6 11.9-1 11.9 1.2 0 2-2 5.5-4.8 4.1-2.8-1.4 2-3-1.4-3-3.3 0-5.7.6-5.7 3s3.3 5.2 8 5.2 10.5-2.4 9.6-11c-1-8.7-29-57-29-62.8 0-6 5.2-13.5 19-13.5 9-.7 12.3 8.7 15.5 11.9z"/>
+      <path d="M59.1 319.4c3.3 3.2 6 12.6 15 12 13.8 0 19-7.7 19-13.6 0-5.9-28-54-29-62.7-1-8.7 4.8-11.1 9.5-11.1 4.8 0 8.1 2.7 8.1 5.2s-2.4 3-5.7 3 1.4-1.6-1.4-3-4.8 2-4.8 4.1c0 2.1 7.2 2.8 12 1.2.9 4.7 1.3 5-5.3 13 4.8-3 5.2-3.8 10.5-2-5.3-4.6-1.4-13.7-1.2-16s-1-5.2-3.1-6.6c-3.8-3.4-12.2-3.6-17.2-1.4-7.2 3.3-7.6 12.8-5.7 16L87 316c1.5 2.4-2.3 10.4-10.9 10.7-9 .7-12.1-8.8-13.7-12.9l12.3 1s.5-2 0-3.2a110 110 0 01-12.3-1.6l-.5-6.2h6l-.4-2.8s-5.1.4-5.6 0c-.5-.3-1-6.2-1-6.2s-1-.4-2-.4-2 .4-2 .4-.4 5.9-.9 6.2c-.5.4-5.6 0-5.6 0l-.5 2.8H56l-.5 6.2s-6 1.2-12.3 1.6c-.4 1.2 0 3.1 0 3.1l12.3-.9c-1.6 4.1-4.7 13.6-13.7 13-8.6-.4-12.4-8.4-11-10.8L58 257.5c1.9-3.2 1.5-12.7-5.7-16-5-2.2-13.4-2-17.2 1.4-2.1 1.4-3.3 4.2-3.1 6.5s4 11.5-1.2 16c5.3-1.7 5.8-1 10.5 2.1-6.6-8-6.2-8.3-5.2-13 4.7 1.6 11.9 1 11.9-1.2 0-2-2-5.5-4.8-4.1-2.8 1.4 2 3-1.4 3-3.3 0-5.7-.6-5.7-3s3.3-5.2 8-5.2 10.5 2.4 9.6 11c-1 8.7-29 57-29 62.8 0 6 5.2 13.5 19 13.5 9 .7 12.3-8.7 15.5-11.9z"/>
+      <path d="M59.1 160.6c3.3-3.2 6-12.6 15-12 13.8 0 19 7.7 19 13.6 0 5.9-28 54-29 62.8-1 8.6 4.8 11 9.5 11 4.8 0 8.1-2.7 8.1-5.1s-2.4-3.2-5.7-3.2 1.4 1.8-1.4 3.2-4.8-2.1-4.8-4.2c0-2 7.2-2.8 12-1.2.9-4.7 1.3-5-5.3-13 4.8 3.1 5.2 3.8 10.5 2-5.3 4.6-1.4 13.8-1.2 16s-1 5.2-3.1 6.6c-3.8 3.5-12.2 3.6-17.2 1.4-7.2-3.3-7.6-12.8-5.7-16L87 164c1.5-2.4-2.3-10.4-10.9-10.7-9-.7-12.1 8.8-13.7 12.9l12.3-1s.5 2 0 3.2c-6.4.4-12.3 1.6-12.3 1.6l-.5 6.2h6l-.4 2.8s-5.1-.3-5.6 0-1 6.3-1 6.3-1 .3-2 .3-2-.3-2-.3-.4-6-.9-6.3c-.5-.3-5.6 0-5.6 0l-.5-2.8H56l-.5-6.2s-6-1.2-12.3-1.6c-.4-1.2 0-3.1 0-3.1l12.3.9c-1.6-4.1-4.7-13.6-13.7-13-8.6.4-12.4 8.4-11 10.8L58 222.5c1.9 3.2 1.5 12.7-5.7 16-5 2.2-13.4 2-17.2-1.4-2.1-1.4-3.3-4.2-3.1-6.5s4-11.5-1.2-16c5.3 1.7 5.8 1 10.5-2.1-6.6 8-6.2 8.3-5.2 13 4.7-1.6 11.9-.9 11.9 1.2 0 2-2 5.5-4.8 4.1-2.8-1.3 2-3-1.4-3-3.3 0-5.7.6-5.7 3s3.3 5.2 8 5.2 10.5-2.4 9.6-11c-1-8.7-29-56.9-29-62.8 0-5.9 5.2-13.5 19-13.5 9-.7 12.3 8.7 15.5 12z"/>
+      <path d="M59.1 136.7c3.3 3.2 6 12.7 15 12 13.8 0 19-7.7 19-13.6 0-5.9-28-54-29-62.7-1-8.7 4.8-11.1 9.5-11.1 4.8 0 8.1 2.8 8.1 5.2s-2.4 3.1-5.7 3.1 1.4-1.7-1.4-3.1-4.8 2-4.8 4.1c0 2.1 7.2 2.8 12 1.2.9 4.7 1.3 5-5.3 13 4.8-3 5.2-3.8 10.5-2-5.3-4.5-1.4-13.7-1.2-16s-1-5.2-3.1-6.6c-3.8-3.4-12.2-3.6-17.2-1.3-7.2 3.2-7.6 12.8-5.7 15.9L87 133.4c1.5 2.4-2.3 10.4-10.9 10.8-9 .6-12.1-8.8-13.7-13l12.3 1s.5-2 0-3.2a111.5 111.5 0 01-12.3-1.5l-.5-6.3h6l-.4-2.8s-5.1.4-5.6 0c-.5-.3-1-6.2-1-6.2s-1-.4-2-.4-2 .4-2 .4-.4 5.9-.9 6.2c-.5.4-5.6 0-5.6 0l-.5 2.8H56l-.5 6.3s-6 1.1-12.3 1.5c-.4 1.3 0 3.2 0 3.2l12.3-1c-1.6 4.2-4.7 13.6-13.7 13-8.6-.4-12.4-8.4-11-10.8L58 74.8c1.9-3.1 1.5-12.7-5.7-16-5-2.2-13.4-2-17.2 1.4-2.1 1.4-3.3 4.2-3.1 6.5s4 11.6-1.2 16c5.3-1.7 5.8-1 10.5 2.1-6.6-8-6.2-8.3-5.2-13 4.8 1.6 11.9 1 11.9-1.2 0-2-2-5.5-4.8-4.1-2.8 1.4 2 3.1-1.4 3.1-3.3 0-5.7-.7-5.7-3.1s3.3-5.2 8-5.2 10.6 2.4 9.6 11c-1 8.7-29 57-29 62.8 0 6 5.2 13.6 19 13.6 9 .7 12.3-8.8 15.5-12z"/>
+      <path d="M60.2 13c3.3-3.2 2.2-8.5 11.3-7.8 13.8 0 14.2 8.4 14.2 14.3S65 33.6 64 42.3c-1 8.7 4.8 11 9.6 11 4.7 0 8-2.7 8-5.1S79.4 45 76 45s1.5 1.7-1.4 3-4.8-2-4.8-4c0-2.2 7.2-2.9 12-1.3 1-4.7 1.4-5-5.3-13 4.8 3.1 5.2 3.8 10.5 2-5.3 4.6-1.3 13.8-1.2 16.1s-1 5.1-3 6.5c-4 3.7-12.3 3.7-17.3 1.5-7.3-3.2-7.7-12.8-5.8-16L80 19.3c1.4-2.4 2-9.2-6.6-9.5-9-.7-12.2 11.6-13.8 15.7C57.5 21 55.1 8.6 46 9.3c-8.6.3-10.2 7-8.8 9.5l20.7 21c2 3.2 1.6 12.8-5.7 16-5 2.3-13.3 2.1-17.1-1.4-2.2-1.4-3.4-4.1-3.2-6.5s4.1-11.5-1.1-16c5.2 1.7 5.7 1 10.4-2-6.6 7.9-6.1 8.2-5.2 13 4.8-1.6 12-1 12 1.1s-2 5.6-4.9 4.2c-2.8-1.4 2-3.1-1.4-3.1-3.3 0-5.7.7-5.7 3s3.3 5.3 8.1 5.3 10.5-2.4 9.5-11.1-22-18.1-22-24c0-6 1.4-13.1 15.2-13.1 9-.7 10.1 4.6 13.4 7.8z"/>
+    </g>
+    <g fill="#ffe400" transform="translate(-194.7 8.3) scale(1.0673)">
+      <rect width="170.2" height="161.3" x="425.9" y="104.5" rx="85.1" ry="80.7"/>
+      <path d="M507 56.4c-.8 0-4.6 26.8-6 32.8-1.4 13.5 18 13 14.8-.5L507 56.3zm6.8 259.8c.7 0 6.5-26.5 8.4-32.4 2.3-13.3-17.1-14-15-.4l6.6 32.8zM378.2 184.6c0 .7 27.9 6.3 34.1 8.1 14 2.3 15-16 .6-14l-34.7 6zm271.7 3.2c0-.7-28.2-5.3-34.5-6.9-14.1-1.7-14.2 16.6 0 14.1l34.5-7.2zM406.8 99.6c-.5.5 17.9 21.3 21.6 26.4 9.6 10 22.3-4 9.6-10.8l-31.2-15.5zm211.1 171c.5-.5-19.7-19.7-23.9-24.4-10.5-9.2-21.8 5.7-8.6 11.5l32.5 13zm-169-200c-.6.3 8 26.1 9.4 32.2 4.8 12.7 22.2 4.4 13.2-6.5L449 70.6zM572 303c.7-.3-6-26.6-6.9-32.7-3.9-13-21.8-6-13.7 5.6l20.7 27zm30.3-214.4c-.6-.5-22.8 16.6-28.2 20-10.7 9 3.8 21.2 11.2 9.3l17-29.3zm-183 193.7c.5.5 24-15 29.6-18.1 11.3-8.2-2.2-21.4-10.5-10l-19 28.1zm-35-144.1c-.3.6 24 14.7 29.3 18.4 12.5 6.5 19.8-10.5 5.5-13.2l-34.8-5.2zM638 236.6c.3-.6-23-16.3-28-20.3-12-7.4-20.5 9.1-6.4 12.7l34.4 7.6zM557.4 63.7c-.7-.2-14.6 23.4-18.3 28.5a7.8 7.8 0 0014 4.7l4.3-33.2zM463.5 308c.7.3 16.3-22.4 20.3-27.3 7.3-11.6-10.4-19-13.7-5.6l-6.6 32.9zM386 238.7c.3.6 28-6 34.5-7 13.6-3.8 6-20.6-6-12.8L386 238.7zM638.1 136c-.2-.6-28.3 4.1-34.8 4.7-14 2.9-7.5 20.2 5 13.2l29.8-17.9z"/>
+      <path d="M534.6 58.1c-.7-.1-10.1 25.4-12.9 31-4.1 13 15 16.2 14.7 2.4L534.7 58zM486.1 314c.7.2 12-24.7 15.2-30.2 5-12.6-13.8-17-14.5-3.3L486 314zm-9.7-253.4c-.7.2 1.9 27.2 1.9 33.4 1.9 13.3 20.6 8.7 14.4-3.7l-16.3-29.7zm68 251.9c.7-.1 0-27.2.5-33.4-.9-13.5-20-10.1-14.6 2.7l14 30.7zM428.2 83c-.6.4 12.7 24.3 15.2 30 7.2 11.7 22.7.7 11.8-8.6l-27-21.4zM593 290.9c.6-.4-11-25.2-13-31-6.3-12.1-22.5-2.1-12.4 7.8l25.4 23.2zM393 116.6c-.4.6 21.1 18.4 25.6 23 11.1 8.4 21.4-7.2 7.8-12.1L393 116.6zm234.2 139.7c.4-.6-19.7-19.8-23.9-24.6-10.4-9.1-21.8 5.8-8.6 11.6l32.5 13zm-249.6-97.8c-.2.7 26.3 10.8 32.1 13.7 13.4 4.5 17.7-13.4 3.1-13.8l-35.2.1zM645 216.3c.3-.6-25.4-12.4-31-15.7-13-5.4-18.7 12.2-4.2 13.6l35.2 2.1zM376.7 210c.1.6 28.7.2 35.2.7 14.2-.7 10.8-18.8-2.8-13.9L376.7 210zm270.2-45c0-.7-28.6-2.2-35-3.1-14.3-.2-12.2 18.1 1.7 14l33.3-11zm-245.7 98.4c.4.6 26-11.6 32-13.9 12.4-6.5 1-21.4-8.9-11.3l-23.1 25.2zm222.3-152.3c-.4-.6-26.7 9.9-33 11.8-12.9 5.7-2.6 21.3 8 11.9l25-23.7zM442.8 298.8c.6.3 18.9-20.5 23.5-24.9 8.7-10.7-8-20-12.9-7l-10.6 31.9zM582.5 75c-.5-.4-20.3 19.1-25.2 23.2-9.4 10.1 6.6 20.5 12.4 7.9L582.4 75z"/>
+      <g transform="matrix(2.1824 0 0 2.0629 -405 -272.6)">
+        <path d="M360.1 247.9c.7 2.5.8 16.5 14.9 30 14 13.4 38 16.4 38 16.4s.1 1.9-1.6 2c-1.7.2-9.9-1.5-14-2.8-4-1.2-7.6-3.4-8-3.3-.5.2-1.3 1.6-2.5 1.4s-7-6.2-9.6-7.8a80.6 80.6 0 01-13.7-15.3c-2.8-4.5-3.5-7.5-4.4-7.5s-4.2 2.2-4.2 2.2-3-4.5-5.6-11.7c-2.7-7.2-2.4-11.4-1.8-11.7.7-.3.7 5.3 2.7 10.4 2 5.2 4.8 6.8 4.8 6.8s-1.8-2.7-3.2-9.4-2-13.2-1-15.2 1.9-2.6 2-2.5c.2.2-1.7 3.1-.4 10.8s4.8 14.2 5.6 13.9c.8-.3-.5-1.9-1-6.4s.5-7.3 1.6-7.7c.5-.4 1.3 5 1.4 7.4zm-9.8 12.8c-2.7-2.5-6.9-11.2-7.8-10.8-1 .5 6.8 13 7 14 .2 1.2 1.9 4.6.6 4.1s-10.6-10.3-9.5-8.4 8.1 10.5 7.7 11-5.8-4.8-6-4.1c-.1.6 5.3 5.8 5.2 6.4s-3.5-3.3-3.5-2.5 3.5 4.7 3.5 5.3-3-2.8-2-1c.9 2 3.5 3.7 3.4 4.3s-2.2-.8-2.2-.5c0 .3 3.9 1.7 4.8 2.8 1 1.1 7.4 8.5 12.2 12.2s18.6 10.2 19.6 10.2c.9 0 2.3-2 2-2.8-.3-.8-13.8-5.4-17.5-8.8-3.8-3.4-13-11.6-13.8-12-.7-.5-2.8-.3-2.8-.8s2.7.3 2.5 0c-.1-.3-3.7-1.9-3.6-2.2.2-.3 2.5.6 2.5.3s-4.2-2.6-4-3.1c.1-.5 3.1 1.4 3.1 1 0-.2-4-3-3.9-3.5.1-.5 3.1 2.2 3 1.6s-2.4-4-2.4-4.4c0-.5 3.6 3.4 4 2.6.2-.7-1.3-7.2-1.2-7.3s2.7 1.4 3.1.5c.5-1-1.8-2.3-4-4.1zm46.1 49.2c-1.9.3-2.8-.4-1.7-2 1.5 0 5.5-1.3 6.9-1.9s2.9-1.4 4.1-2.5c1.2-1.3 2 .7 1.3 1.8-.5.7-2.8 2-4.5 2.7-2.5.8-4.7 2-6.1 1.9zm12.5-5.1c-1.3-1.4-.2-2.4 1.7-3.5 2.8-1.5 2-3.6 5.6-5.3 1.6-1 24-10 31.3-14.8s27.8-20.3 33.3-31c5.4-10.6 2.8-11.4 3.6-11.8.7-.5 1.5 1.5 1.4 3.9-.2 2.3-2 9.3-1.4 10s8.2-5.5 11.4-13 5.6-15.3 7.1-15.3c1.6 0-2.6 12.8-5.3 17.8-2.6 5-5.7 7.5-5 8.6.8 1 8.6-5.5 11.3-10.3 2.6-4.9 5.1-9.2 5.6-8.3a34 34 0 01-6.7 16.1c-4.2 4.8-9.2 8.3-8.4 9 .7.8 6.4 1.6 12.3-2.4 6-4.1 6.6-10 7.3-9.7.8.3-.7 8.4-6.4 13.4s-13.2 5.5-13 6.6c.4 1 16.3-4.6 16-3.3-.3 1.2-20.6 9.2-20.8 10 0 .6 3.5.8 9-.5 5.4-1.2 10.6-5.5 11.3-4.5.2 1.4-3.9 4.8-10.1 6.4-6.3 1.6-9.4 3.7-9.6 4.2-.1.5 11.2-1.4 11.2-.8s-14.8 3.5-14.9 4.3c-.2.7 14-2.9 13.8-2-.4.7-19.3 6.3-19.1 6.6.1.4 15.8-3.4 15.5-2.8-.4.7-26.4 8-26.6 8.5-.2.4 23-5.2 22.8-4.7s-12 3.4-12 3.7c0 .3 9.5-1.5 9.3-1-.1.4-24 6.5-24.5 7.4-.5 1 12.4-2.5 12.2-.7s-27.7 11-27.8 9.3c-.2-1.7 16.7-6 16.6-6.5-.2-.5-9.7 1-9.9.1-.1-1 6.3-3 5.8-3.4-.5-.5-5.3 1.4-4.9.3.5-1.1 9.6-5.3 9.4-5.6-.1-.3-3.3 1-3 0 .4-1.1 19.7-6.7 19.4-7.4-.3-.6-8.9 1.4-9.7 1.6-.3-.6 12-5.2 11.8-6-.4-.7-6.6 2.7-7 1.8-.2-1 10.9-5.3 10.2-6s-5.7 1.8-6.4 1.1 10.5-8.4 8.8-8.6c-1.7-.1-3.8 2.4-4 .8.2-2 8.7-5.3 6.8-6.9-3-.9-13.1.7-17.3 3.2s-18.2 16.4-21.6 18.6c-3.4 2.1-15 7-17.2 8-3.4 1.2-4 3-7.5 4.8-6.3 1.7-6.2 3.6-9.2 4.7-1.1.3-12.4 5.7-12.5 5.3zm-15.8 7c-1.9 1-3.6 3.4-2.5 4.4.6 1.2 2.5-2.7 4-2.5l8 .4c4.3.3 6.4-.9 8.8-.7s7.7-1.3 10.2-1.3 3 .3 3.2-.8c.3-1-7.8-.3-11.4-.4-3.6-.2-8.1.7-10.8.7-2.5-.1-6.8-.9-9.5.2z"/>
+        <rect width="3.4" height="3" x="401.7" y="309.1" rx="1.7" ry="1.5"/>
+        <path d="M445 307.7c1.7-.3 6.3 1.3 9.5 2 5.8 2.3 16.6 1.2 16.6 2.3s-.7 2.4-3.2 2.6-8.8-1-8.6-1 5 2.3 3.6 2.9-5.5-1.3-6.2-.8 3.8 1.4 3 1.7c-.6.3-3.7-.4-4.7-.3-1 .2.8 1.3-.4 1.7-1.2.5-3.2-.6-4-.3-.9.3 1.8 2 .6 2.2-1.2.2-4-.8-5.6-1-1.6 0 1.5 1.6.5 1.8-1 .1-3.8-1.3-4.5-1.3s0 2-1 2-2.2-1.7-2.8-1.7 0 2-1 2-1.4-2.1-2.2-2c-1 .2 0 2.7-1.4 2.5-1.3-.1-1.5-2.6-2.6-2.5-1 .2.2 2.5-.8 2.5s-1.2-2.3-2.2-2.5c-1-.1-.6 2.2-1.2 2.2s-1.2-2.2-1.6-2.2c-.3 0 0 2.2-1.2 2s-1.2-2.4-1.5-2.3c-.4.2-.4 1.8-1.2 1.8s-.9-1.6-1.2-1.4c-.4.1-1.6 2.1-2.4 1.8-.9-.3.2-1.9-.2-1.9s-1.4 1.1-2 1 0-1.4-.2-1.4-1.7.8-2.4.8-2.6 1-3.1.1c-.5-1 1.3-1 1.7-1.9.3-.9-1-3.6.4-4.5 1.3-1 5.6 1.3 12-.3 11.6-3.1 20.6-6.7 21.5-6.6z"/>
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/la.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/la.svg
new file mode 100644
index 0000000..a87bc98
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/la.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-la" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="la-a">
+      <path fill-opacity=".7" d="M0 0h640v480H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#la-a)">
+    <path fill="#ce1126" d="M-40 0h720v480H-40z"/>
+    <path fill="#002868" d="M-40 119.3h720v241.4H-40z"/>
+    <path fill="#fff" d="M423.4 240a103.4 103.4 0 11-206.8 0 103.4 103.4 0 11206.8 0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/lb.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/lb.svg
new file mode 100644
index 0000000..0967842
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/lb.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-lb" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="lb-a">
+      <path fill-opacity=".7" d="M-85.3 0h682.6v512H-85.3z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#lb-a)" transform="translate(80) scale(.9375)">
+    <g fill-rule="evenodd" stroke-width="1pt">
+      <path fill="red" d="M-128 384h768v128h-768zm0-384h768v128h-768z"/>
+      <path fill="#fff" d="M-128 128h768v256h-768z"/>
+    </g>
+    <path fill="#007900" d="M252.1 130c-7.8 15.5-13 15.5-26 26-5.2 5.1-13 7.7-2.6 13-10.5 5.1-15.7 7.7-20.9 18.1l2.6 2.6s10-4.8 10.4-2.6c1.8 2.1-13 10-14.9 11.3l-11 7c-13.1 10.3-21 7.7-28.7 23.3l26-2.6c5.2 18.2-13 20.8-26 28.6l-20.9 13c5.3 18.2 20.9 7.8 33.9 2.6l2.6 2.6v5.2l-26 13s-30.8 17.6-31.3 18.2c-.2 1 0 5.2 0 5.2 10.4 2.6 26 5.2 36.5 0 13-5.2 15.6-10.4 31.2-10.4a100.6 100.6 0 01-52 20.8v10.4c15.6 0 26 0 39-2.6l33.8-10.4c7.8 0 15.7 7.8 13 15.6-7.7 28.6-39 23.4-49.4 46.8L213 369c10.4-5.2 20.8-10.3 33.8-7.7 15.6 5.2 15.6 15.6 36.4 20.8l-5.2-13c5.2 2.6 10.4 2.6 15.7 5.2 13 5.2 15.6 10.4 31.2 7.8-13-15.6-15.6-13-26-23.4-10.4-15.6-15.7-39 0-41.6l18.2 5.2c18.2 2.6 18.2-2.6 44.2 7.8 15.7 5.2 20.9 13 39 7.8-7.7-18.2-36.3-31.2-54.6-36.4 20.9-13 15.6 5.2 44.3-2.6v-5.2C369.3 278 361.4 265 332.8 265l44.3-5.2v-5.2s-43.7-11.4-44.7-11.9c.3-1.3 1.4-3.3 4.3-4.5 8.3 5.4 33.3 4.8 34.8 4.7-.8-6.4-12.7-11.7-23-16.9 0 0-44.7-27.5-44.9-29.9.9-7 18.3 1.1 37 6.5-5.2-10.4-15.6-15.6-26-18.2l15.6-2.6c-10.4-23.4-36.4-20.8-52-31.2-10.5-7.8-10.5-13-26.1-20.7z"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="3.2" d="M224 303c1.9-6.1 4.4-11.6-7.2-16.9-11.6-5.3 5.8 21.1 7.2 17zm13.7-12.3c-2.3.3-3.6 8.8 1.1 11.2 5.2.8 1-11.1-1.1-11.2zm13.5-1c-2.4.8-2.5 12.8 6 10.6 8.6-2.1 0-11.5-6-10.5zM267 259c1.8-3-.1-15-7.4-10-7.4 5.1 5 10.8 7.4 10zm-16-10c2.3-.9 2.5-8.3-4-6.3-6.3 1.9 2.3 7.8 4 6.3zm-14.4 2.9s-4.5-6.2-8-4.9c-4.3 4.2 8.3 5 8 4.9zM187 271.7c1.9.2 16-2.3 20.9-7.8 4.9-5.5-25.1 2.3-25.1 2.4 0 .1 2.8 4.9 4.2 5.4zm141.1-35c.7-1.3-7.5-7.1-12.4-4.8-1.3 4.3 12.4 5.7 12.4 4.8zm-27.8-14c1.6-2.2-3.5-11.3-13.7-6.2-10.2 5 10.7 9.8 13.7 6.3zm-32.1-5.3s2.5-8.2 8.6-6.6c7 5.3-8.3 6.9-8.6 6.6zm-6-6.2c-1-2.3-7.3-1-14.6 3.9-7.4 4.7 16.8 1.4 14.6-4zm18.7-22.1s6.5-3 8.5 0c2.7 4.3-8.6 0-8.5 0zm-5.5-2.9c-1.3-2.6-8.5-2.9-8.3 1-1.2 3 9.4 2.4 8.3-1zm-17.2 0c-.7-1.5-11 0-14 6.2 5 2.4 16.3-2.3 14-6.2zm-22 6.3s-13.4 8.3-14.3 14.3c.4 5.2 16.8-9.4 16.8-9.4s1.4-5.8-2.4-4.9zm-14.9-7.5c.4-1.7 6.7-5.6 7.2-5.3.5 1.7-5.1 6.3-7.2 5.3zm4.3 31.6c.3-2.5-16-2.3-9.9 5.2 5.2 6.3 11-4.1 9.9-5.2zm-15 10.7c-.8-1.6-2-6-4.2-6.4-1.9 0-11.7 2-12.5 3.6-.4 1.3 4.1 9.4 5.6 9.6 1.8.7 10.9-6 11.2-6.8zm88.4 55.2c.5-1.8 17.3-7.5 23-2 6.8 9.3-23.4 5-23 2zm46 10.9c3.7-6.2-11.3-13.6-17.6-6.5 2.2 8.5 14.6 11.6 17.6 6.5z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/lc.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/lc.svg
new file mode 100644
index 0000000..8ba746c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/lc.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-lc" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="#65cfff" d="M0 0h640v480H0z"/>
+    <path fill="#fff" d="M318.9 42l162.7 395.3-322.6.9L318.9 42z"/>
+    <path d="M319 96.5l140.8 340-279 .8L319 96.5z"/>
+    <path fill="#ffce00" d="M318.9 240.1l162.7 197.6-322.6.5 159.9-198.1z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/li.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/li.svg
new file mode 100644
index 0000000..6b4160c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/li.svg
@@ -0,0 +1,43 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-li" viewBox="0 0 640 480">
+  <path fill="#002b7f" d="M0 0h640v240H0z"/>
+  <path fill="#ce1126" d="M0 240h640v240H0z"/>
+  <g fill="#ffd83d" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" transform="scale(.8)">
+    <g id="a">
+      <path stroke="none" d="M216.4 122.3l-1.9 62.5h-63.4c-7.8-15.2-14.2-28-14.2-45.5 0-14.6 11.5-26.2 28-26.2 17.5 0 36.8 5.9 51.5 9.2z"/>
+      <g stroke-width="1.5">
+        <path d="M144.5 125.2v36m5-39.7v48m5.2-50.5v57.2m5-58.4v44.9m5.1-45.1v45.3m5.1-47v47m5.1-47v47m5.1-46.5v47m5.1-46.5v46.9m5.1-44v47m5-46.5v52.9m5.2-52.9v47m5-47v47"/>
+        <path fill="#000" d="M176.4 118c10.8 1.7 34.4 12.8 31.7 27.7-3.8 21.2-16.2 12.7-32.6 9.7l-12.4 4.1c-4.5 4.5-11 8.7-15.4 3.2h-7.4v28.8h81.4V122z"/>
+      </g>
+      <circle cx="212.8" cy="113" r="4.9"/>
+      <circle cx="201.7" cy="110.3" r="4.9"/>
+      <circle cx="190.4" cy="107.5" r="4.9"/>
+      <circle cx="179.1" cy="105.6" r="4.9"/>
+      <circle cx="167.8" cy="104.5" r="4.9"/>
+      <circle cx="156.8" cy="105.1" r="4.9"/>
+      <circle cx="146.2" cy="108.7" r="4.9"/>
+      <circle cx="137.3" cy="115.3" r="4.9"/>
+      <circle cx="131" cy="124.4" r="4.9"/>
+      <circle cx="127.9" cy="135.2" r="4.9"/>
+      <circle cx="128" cy="146.3" r="4.9"/>
+      <circle cx="130.2" cy="157.2" r="4.9"/>
+      <path d="M215 119.5l-.5 6.5c-12.3-2-29.7-8.8-46-8.8-15 0-26.6 6-26.6 21.2 0 14.9 6.3 28.5 14.7 42.3l-8.7 4c-7.8-15-14.3-28-14.3-45.4 0-14.6 11.5-29 31.3-29 17.5 0 35.4 6 50.1 9.2z"/>
+    </g>
+    <use width="100%" height="100%" transform="matrix(-1 0 0 1 444 0)" xlink:href="#a"/>
+    <path d="M222 53.1l-5.2 9.7 5.2 9.6 5.1-9.6L222 53zm0 24.4l-5.2 9.6 5.2 9.7 5-9.8-5.1-9.6zM203.6 75l8.1 5.1 8.1-5.1-8-5.2-8.2 5.2zm20.5 0l8.1 5.1 8.2-5.1-8.2-5.2-8 5.2z"/>
+    <circle cx="222" cy="75.1" r="3.9"/>
+    <circle cx="222" cy="100" r="10.5"/>
+    <path fill="none" stroke-width="1.5" d="M219.3 89.9v6.6a62.5 62.5 0 00-7.4.8m20.2 0a62.1 62.1 0 00-7.5-.8v-6.6m-12.8 12.7a61.4 61.4 0 0110.2-.9c3.4 0 6.8.3 10 .9"/>
+    <path d="M211.8 117.7c-1 17-3 34.5-9.7 47.1l10.8-4.4c3.8-14.3 4.6-32.8 5.7-41.6l-6.8-1.1zm20.4 0l-6.9 1.1c1.2 8.8 2 27.3 5.7 41.6l10.8 4.4c-6.6-12.6-8.6-30-9.6-47.1z"/>
+    <path d="M222 154.7c-13 0-22.5 6-23 21.6-3.2-5.6-16.5-23-29-20.7-7.4 1.4-14 11.7-12.8 23.4-6.2-17.6-24.1-20.5-37.3-10 11.7 9.5 16.9 37.8 26.7 50h150.7c9.8-12.2 15-40.5 26.7-50-13.1-10.5-31.1-7.6-37.2 10 1-11.7-5.5-22-13-23.4-12.4-2.3-25.7 15.1-28.9 20.7-.5-15.5-10-21.6-23-21.6z"/>
+    <g stroke-width="1.5">
+      <path fill="#000" d="M297.1 219c0 5.6-33.6 11.7-75.1 11.7s-75.2-6-75.2-11.7c0-5.5 33.7-8.5 75.2-8.5 41.4 0 75.1 3 75.1 8.5z"/>
+      <circle cx="222" cy="114.4" r="3.5"/>
+      <circle cx="222" cy="122" r="3.7"/>
+      <circle cx="222" cy="130.2" r="4.1"/>
+      <circle cx="222" cy="139.3" r="4.7"/>
+      <circle cx="222" cy="149.4" r="5.1"/>
+      <path fill="#000" stroke="none" d="M220 159.2c-.6 0-1.1.5-1 1.4l.6 4.3c.2 1.5 1 1 1.3 0 .2-1.2.1-2 .2-4.1 0-1.1-.6-1.6-1.2-1.6zm4 0c-.6 0-1.1.5-1.1 1.6 0 2.1 0 2.9.2 4 .2 1.2 1 1.6 1.3 0l.5-4.2c.2-1-.4-1.4-.9-1.4zm-7.7.6a1 1 0 00-1 1c0 1 .3 2.3.4 3.8.2 1.5 1.3 1 1.4 0 0-.8.2-2.2 0-3.9 0-.6-.2-.9-.6-1a.8.8 0 00-.2 0zm11.1 0c-.3 0-.6.3-.7 1a20.1 20.1 0 00.2 3.8c0 1 1.2 1.5 1.3 0 0-1.5.4-2.7.4-3.7 0-.6-.5-1-1-1.1a.8.8 0 00-.2 0zm-15.4 1.7c-.5.1-1 .7-.8 1.3.3 1.3.6 2.7.6 4 0 1.1.9.7 1 0a59.8 59.8 0 00.1-4c0-1-.5-1.4-1-1.3zm19.6 0c-.3.1-.6.5-.6 1.3l.2 4c0 .7 1 1.1 1 0 0-1.3.2-2.7.5-4 .2-.6-.3-1.2-.7-1.3a.6.6 0 00-.3 0zm-59 .2c-.6 0-1 .7-.6 1.5.6 1.4 1.3 2.2 1.9 3.6.5 1.3 1.4.5 1.1-.4l-1.4-3.7c-.3-.7-.7-1-1-1zm98.8 0c-.4 0-.7.3-1 1-.9 1.9-1.2 2.8-1.5 3.7-.2 1 .6 1.7 1.2.4l1.8-3.6c.4-.8 0-1.5-.5-1.5zm-94.8 0c-.5.2-.7.7-.5 1.3.6 1.2 1.3 2.5 1.8 3.8.4 1.1 1.4.8 1-.2l-1-3.7c-.4-1-1-1.3-1.3-1.2zm90.5 0c-.4.1-.8.5-1 1.2-.7 2-.8 2.6-1.1 3.7-.4 1 .6 1.3 1 .2l1.8-3.8c.2-.6 0-1.1-.4-1.3a.6.6 0 00-.3 0zm-85.5 1c-.6.1-1 .9-.6 1.9.4 1.2 1 2.3 1.6 3.7.6 1.4 1.5 1.1 1.3.2-.3-.9-.5-2.3-1.2-4.5-.3-1-.7-1.4-1.1-1.3zm80.8 0c-.4 0-.9.3-1.2 1.3-.6 2.2-1 3.6-1.1 4.5-.3 1 .7 1.2 1.2-.2.6-1.4 1.2-2.5 1.6-3.7.4-1 0-1.8-.5-1.9zm-93.2.7c-.6 0-1 1-.7 1.7.5 1 .9 1.4 1.4 2.6.6 1.2 1.2.3 1-.5-.3-.8-.6-1.7-.8-2.8-.2-.8-.6-1-1-1zm105.6 0c-.4 0-.7.2-1 1l-.7 2.8c-.2.8.4 1.7 1 .5.5-1.2.8-1.5 1.4-2.6.3-.7-.2-1.6-.7-1.7zm-67 2.8c-.7 0-1.3.8-1 1.5.2 1.2.8 2.2 1.1 3.7.4 1.3 1.3.7 1.2-.2a28.7 28.7 0 00-.5-4c-.2-.7-.5-1-.9-1zm28.4 0c-.3 0-.7.3-.8 1a28.7 28.7 0 00-.6 4c0 .9.9 1.5 1.2.2l1.2-3.7c.2-.7-.4-1.5-1-1.5zm-14.2 1.2c-.8 0-.9 1-.9 1.7a12.3 12.3 0 01-2 6.4c-1 1.2-2.3.9-3.5.2a22.3 22.3 0 01-3.3-2.2c-1.4-1-2.4-.4-.8 1.9 4.6 6.6 9.6 12.2 9.6 23 0 1.3.3 1.7.9 1.7s.8-.4.8-1.8c0-10.7 5-16.3 9.6-23 1.6-2.2.6-2.8-.7-1.8a21 21 0 01-3.3 2.2c-1.3.7-2.6 1-3.5-.2a12.3 12.3 0 01-2-6.4c-.1-.7-.2-1.7-1-1.7zm-35.3-1.6a.6.6 0 00-.2 0c-.3.1-.4.4-.3 1l1.1 3.9c.3 1 1.4.7 1.2-.5l-.6-3.1c-.2-.8-.8-1.3-1.2-1.3zm70.6 0c-.5 0-1 .5-1.2 1.3-.4 1.4-.4 1.8-.6 3-.3 1.3.9 1.5 1.1.6l1.2-4c0-.5-.1-.8-.4-.9a.6.6 0 00-.2 0zm-91.6.4c-.6 0-1 .8-.4 1.8.6 1.2 1.7 2.6 2.2 3.5.5.8 1.4.2.8-.8-.6-1-.8-2.3-1.6-3.8a1 1 0 00-1-.7zm112.5 0c-.3 0-.7.2-1 .7-.7 1.5-1 2.7-1.5 3.8-.6 1 .2 1.6.7.8.5-.9 1.6-2.3 2.2-3.5.6-1 .2-1.8-.4-1.8zM134 169.5c-.6 0-.8 1.2-.2 2a19.2 19.2 0 002.6 2.7c.8.8 1-.2.6-1l-1.8-2.7c-.5-.7-.9-1-1.2-1zm175.9 0c-.3 0-.7.3-1.1 1l-1.9 2.7c-.4.8-.2 1.8.7 1a19 19 0 002.6-2.7c.6-.8.4-2-.3-2zm-170.8 1c-.6 0-1 .4-.5 1.3l1.9 3.8c.5 1 2 1.3 1.4-.2l-1.3-3.8c-.3-.7-1-1-1.5-1zm165.8 0c-.6 0-1.3.4-1.6 1.1l-1.2 3.8c-.6 1.5.9 1.2 1.4.2.5-1 1.3-2.5 1.8-3.8.5-.9.1-1.3-.4-1.3zm-175.6.4c-.8 0-.8.7-.1 1.2.9.7 2 1.4 3 2.3 1.3 1 1.7 0 1-.8-.6-.8-1.2-1.6-2.9-2.5-.4-.2-.7-.2-1-.2zm185.3 0c-.2 0-.6 0-1 .2-1.6.9-2.3 1.7-3 2.5-.6.9-.1 1.8 1.1.8 1-.9 2.2-1.6 3-2.3.8-.5.7-1.2 0-1.2zm-109.6.7c-.5 0-.8.5-.7 1.2l1 3.6c.2 1.1 1.5 1.1 1.3 0-.2-1-.3-2.3-.7-3.9-.1-.6-.4-.9-.8-1a.6.6 0 00-.1 0zm33.8 0c-.3 0-.6.3-.8 1-.4 1.5-.5 2.8-.7 3.9-.2 1 1.1 1 1.3-.1l1-3.6c.2-.7-.2-1.2-.6-1.2a.6.6 0 00-.2 0zm-64-2c-.3 0-.5.7-.2 1.7a26 26 0 011.6 9c-.3 1.2-1 1.3-1.9 1a18.8 18.8 0 01-2.8-1.7c-.8-.5-1.7.1-.5 1.1 6 5 10.3 10.7 12 17.6.2 1.4 1.1 1.6.9 0-1.4-8.7-1.7-15.9.4-20.3.8-1.7 0-3.3-1.2-.6-.9 1.8-2.2 2.5-3.3 1a47.9 47.9 0 01-4-7.7c-.2-.7-.5-1-.8-1.1a.3.3 0 00-.1 0zm94.1 0c-.3 0-.6.4-.8 1-.7 2-2.9 6.2-4 7.8s-2.4.8-3.2-1c-1.3-2.7-2-1.1-1.3.6 2.1 4.4 1.8 11.6.5 20.3-.3 1.6.6 1.4 1 0a32.4 32.4 0 0111.8-17.6c1.2-1 .3-1.6-.5-1a18 18 0 01-2.8 1.5c-1 .4-1.6.3-1.9-1-.2-1.2.2-3.9 1.7-9 .2-.8 0-1.5-.3-1.6a.3.3 0 00-.2 0zM144.4 172c-.5 0-1 .4-.7 1.2.4 1.4 1.2 2.8 1.5 3.6.3.9 1.2.5 1-.7l-.5-3.1c0-.6-.7-1-1.3-1zm155.1 0c-.6 0-1.2.4-1.3 1l-.4 3.1c-.2 1.2.7 1.6 1 .7.2-.8 1-2.2 1.4-3.6.3-.8-.1-1.2-.7-1.2zm-136.3-1.7c-.6-.1-.7 1.5-.2 2.2l2.8 3.1c.8 1 1.3.1.8-.7l-2.6-3.8c-.3-.5-.6-.8-.8-.8zm117.5 0c-.2 0-.5.3-.8.8l-2.6 3.8c-.5.8 0 1.7.9.7l2.7-3.1c.5-.7.5-2.3-.2-2.2zm-132 4c-.4 0-.7.2-.5 1 .2 1.2.5 2 .8 3.1.3 1 1 .9 1-.1l-.3-3.2a1.1 1.1 0 00-1-.9zm146.5 0a1 1 0 00-1 .8l-.3 3.2c0 1 .8 1.2 1 .1l.9-3c.2-.9-.2-1.2-.6-1.2zm-133.4 1.4c-.6 0-1.1.7-.4 1.6 1.1 1.5 2.4 2.5 2.9 3 .4.6 1.5.4.8-.7l-2.3-3.5c-.2-.4-.6-.5-1-.4zm120 0c-.2 0-.5.1-.6.4l-2.4 3.5c-.7 1.1.4 1.3.9.8.4-.6 1.7-1.6 2.9-3.1.7-1 .1-1.6-.5-1.6a.9.9 0 00-.2 0zm-140.7 4.1c-.4 0-.6.4 0 1.3a17 17 0 013.3 6.4c.1 1.4-.5 1.4-1.1 1.4-1.9 0-2.8-1.4-4.4-1.8-1.7-.3-2 .5-.8 1.4a53.4 53.4 0 0114.7 13.8c1 1.9 2.3 2.5 1.6.8a23.7 23.7 0 01-2.4-12.6c.5-2.8 1.2-4.6 1.1-6.2 0-1.5-1-1.4-1.3 0l-1 2.8c-.4.5-1.8.8-3-.9a48 48 0 00-5.6-5.8c-.3-.3-.7-.5-1-.6zm161.7 0c-.3 0-.7.2-1.1.6a48.2 48.2 0 00-5.5 5.8c-1.3 1.7-2.7 1.4-3 1a12 12 0 01-1-2.9c-.4-1.4-1.3-1.5-1.4 0 0 1.6.6 3.4 1.1 6.2s0 7.2-2.3 12.6c-.8 1.7.6 1 1.6-.8a53 53 0 0114.6-13.8c1.2-.9 1-1.7-.7-1.4-1.7.4-2.6 1.8-4.4 1.8-.6 0-1.3 0-1.2-1.4.1-1.3 1.8-4.4 3.3-6.4.6-1 .5-1.3 0-1.3z"/>
+      <path d="M150.1 212.7l2 6.1m2-7.3l1.8 6.2m2.6-7l1.2 6.4m2.8-7.1l1.3 6.3m3.8-6.8l1 6.4m4.5-6.4l1.1 6.3m4.3-8.1l.8 6.4m4.2-6.1l.8 6.4m4.1-7l.8 6.4m4-7l.5 6.5m4.8-6.5l.4 6.5m4.4-6.8l.3 6.5m4.9-6.8l.3 6.4m5.7-6.6l.3 6.5m79 .2l-2 6.1m-2-7.3l-1.7 6.2m-2.6-7l-1.2 6.4m-2.8-7.1l-1.3 6.3m-4-6.8l-1 6.4m-4.4-6.4l-1.1 6.4m-4.2-8.2l-.8 6.4m-4.3-6.1l-.8 6.4m-4-7l-.9 6.4m-4-7l-.5 6.5m-4.8-6.5l-.4 6.5m-4.3-6.8l-.3 6.5m-5-6.8l-.2 6.4m-5.8-6.6l-.2 6.5m-7.2-7v7.2"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/lk.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/lk.svg
new file mode 100644
index 0000000..4a377f1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/lk.svg
@@ -0,0 +1,22 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-lk" viewBox="0 0 640 480">
+  <path fill="#ffb700" d="M0 0h640v480H0z"/>
+  <path fill="#ff5b00" d="M26.7 240l88-213.3h88v426.6h-88z"/>
+  <path fill="#005641" d="M26.7 26.7h88v426.6h-88z"/>
+  <path fill="#8d2029" d="M229.3 26.7H616v426.6H229.3z"/>
+  <path id="a" fill="#ffb700" stroke="#000" stroke-width="1.1" d="M579.3 408.6s3.6 7.3 7.6 10.4c6 4.4 18 4 23.3 9.3 6.1 6.1-.5 14.2-.5 15l.4 4.2s-4.2 0-6 .3c-2.6.4-3.6 2.6-8.6 2.3-12.3-.8-11.8-12-12.5-21.5-.6-3.6-2-8.4-2.9-12-.7-3-.8-8-.8-8z"/>
+  <use width="100%" height="100%" transform="matrix(-1 0 0 1 845.3 0)" xlink:href="#a"/>
+  <use width="100%" height="100%" transform="matrix(1 0 0 -1 0 480)" xlink:href="#a"/>
+  <use width="100%" height="100%" transform="rotate(180 422.7 240)" xlink:href="#a"/>
+  <g transform="translate(0 -76)">
+    <use width="100%" height="100%" stroke="#000" stroke-width="5.6" xlink:href="#b"/>
+    <g id="b" fill="#ffb700">
+      <path d="M363.5 415.8l2.3-1.4 1 1.4c1.3 1.8 5 1.7 7.4 0l1.9-1.5 1.6 1.4c2 1.9 5.8 1.9 8.3 0 1.7-1.2 2-1.3 3-.3.7.6 2.7 1.2 4.4 1.5 3.2.4 3.2.4 5-2.4 1.6-2.3 1.8-3.2 1.5-5.5a59.4 59.4 0 01-.6-5.3c-.2-2.6-.1-2.6 3.6-4a50.5 50.5 0 005.4-2c1.5-.9 5.7-5.8 5.7-6.8 0-.2-1.6-.6-3.6-.8-8-1-9.3-5.2-4.1-13 8.3-13 13.4-25.5 13.4-33.4 0-3.6.3-4.8.7-4 1.9 3.1-1.5 16.4-6.5 26l-2 3.8 1.9-.4c1-.3 7.4-3 14-6 18.2-8.2 24.4-9.8 36.2-9.3 9.9.4 14 2.3 21 9.6 3.7 4 7.3 6.7 13.8 10.8 13.8 8.6 14.4 9.4 15.1 19.6.7 10.3.3 10.9-7.5 12.6-6.7 1.5-10.9 4.6-12 9-.6 2.2.7 2.3 4 .1l2.5-1.6 1.1 1.6c1.5 2.1 4.5 2.1 7 0l2-1.5 2 1.5c3 2.5 7 1.9 8.2-1.2.2-.5.8-.4 2 .7 2.3 2 8 2.8 8.6 1.2.2-.6-.2-2-1-3.2-3.3-5-4.4-7.3-4.4-10 0-3.8 1-5.7 5.4-8.7 5.2-3.8 6.8-8.6 2.8-8.6-2.4 0-4.9-2.2-6.5-5.7-3.2-7.2-2.5-15.2 2.3-28.6a57.6 57.6 0 005.4-25.2c0-7.4-.2-8.6-1.8-12.7a45.4 45.4 0 00-4.6-8.1l-2.8-3.7 3.5-3c10.8-8.9 8.6-23.5-4.4-29.1-4-1.8-5-1.9-12-1.9-4 0-10.5.6-14 1.3a98.2 98.2 0 01-14.2 1.2c-6.8 0-8-.2-10.6-1.6-2.7-1.4-3.2-2.1-3.7-5.5a2 2 0 00-1.1-1.5c-1-.3-5.2 3.4-5.8 5-.4.9-.6.8-1.5-.3a13.4 13.4 0 01-2-3.6c-1-3.3.3-5.7 4.2-7.6l3-1.4-1.8-1.1c-3.6-2.3-9.8-.7-12 3-.7 1-1.4 2-1.6 2-.2 0-1.4-1-2.6-2.3-4.7-4.6-3.1-11.4 3.2-13.4 3.3-1.1 6.3-.3 6.9 2 1 3.3 3.8-1.1 3.3-5.2-.3-2.7-.3-2.8 1.6-2.8 2.6 0 8 3.4 9.8 6 2 3.1 1.8 8-.4 11.6l-1.7 2.8 2.3-.4c3.2-.7 6.4-2.7 8-5.2a12 12 0 00.4-10.4c-1.5-2.7-1.3-3.1.9-2.2 3.6 1.5 5.6 3.2 7 6.1 1.4 2.6 1.5 3.2.8 6a17 17 0 01-2.2 4.8c-1.2 1.6-1.3 1.9-.3 1.9 1.8 0 5.4-1.7 6.7-3 .7-.8 1.7-2.5 2.2-4l1-2.5 1 2c1.5 2.7 4.5 5.2 8.1 6.8 3.9 1.6 5.5 1.7 3.5.2-1.4-1-4-8.5-3.1-9.2a51 51 0 0111.7 9c5.7 5.1 9.3 6.8 14.5 6.8 6.7 0 10.6-5.8 7.6-11.3-1.7-3.2-5.6-3.7-8-1-1 1.3-1.3 2.3-1 3.7.4 1.6.3 1.8-1.2 1.8-2 0-5.8-2.5-12.6-8.2a102 102 0 00-32.1-18.7 70.4 70.4 0 00-24.3-1.3c-6.4 1.2-14 4.9-18.2 8.8-7.3 7-7.4 16.3-.3 24.8l2 2.4-1.3 2.2a9.3 9.3 0 00.4 10.4c1 1.4 2 2.5 2.3 2.5.2 0 .4-.9.5-2 .2-2.7 1.4-4.5 3.4-5.2 1.8-.7 3-.3 11.2 3 8.7 3.4 23 3.6 38.2.6a42.6 42.6 0 0120 .2c7.2 3 8.8 10.7 3.6 16.5-2.3 2.6-4.4 3.6-11.7 5.6a54.3 54.3 0 01-19.5 1.5c-10.8-.1-14.7.1-19 1-4.9 1-7.8 1.1-21.8.8l-16.3-.4 1.8 1.4a22 22 0 003.1 2.3c1.3.7 1.2.8-.6 1.5-1 .4-3.4.7-5.3.7h-3.3l-.4 2.8a10 10 0 000 4c.4 1 .2 1.2-.8.8-.7-.3-2.6-.8-4.3-1.1a26.7 26.7 0 01-5-1.6c-1.9-1-2.1-1-2.8.3-.6 1-6.2 5.2-7 5.2a26.7 26.7 0 00-2.2-7.5c-1-2.1-1.9-4.5-2.2-5.2-.3-1.1-.5-1.2-1-.3-.3.5-.7 2-1 3.2a15.5 15.5 0 01-1.8 4.6l-1.5 2.2-1-1.9c-1-2-2.6-4.2-3.2-4.2-.2 0-.5.6-.7 1.5-.5 1.6-4.4 6.3-5.4 6.3-.3 0-.6-1.3-.6-3 0-1.5-.3-2.9-.7-2.9-.4 0-.7.5-.7 1 0 1.2-3.3 5-4.5 5-.4 0-1.2.4-1.7 1-1.2 1.3-2.2 1.1-1.7-.4a9 9 0 00-.4-3.8l-1-3.2c-.2-.5-1.4-.3-4 .5-4 1.3-5.4 1-3.3-.6.8-.6 2-2.7 2.6-4.6.7-2 1.7-3.7 2.2-3.9.7-.2.7 0-.2 1.2a5.7 5.7 0 00-1.1 2.6c0 .5-.5 1.8-1 2.9-.6 1-1 2-.9 2.1s1.7-.5 3.5-1.3l3.2-1.6v1.4c0 .8.4 2.8.9 4.5l.9 3 2.2-1c2.2-1 4.3-4.6 4.3-7.5 0-1.4.8-1.2 1.2.3 0 .4.6 2.1 1 3.7l1 2.8 1.5-1.8c.9-1 1.9-3 2.3-4.3.8-2.4 2-3.5 2-1.7 0 1.2 3.4 5.8 4 5.4.4-.2 1-1.9 1.5-3.8 1-4 2.5-6.6 3.5-6 .4.2.5.6.3 1-.2.2.6 2.8 1.8 5.6a2557.7 2557.7 0 012.6 6.3c.4 1 .8 1 3.3-1.3 1.5-1.4 3-2.9 3.1-3.4.3-.8.6-.7 2 .2a25 25 0 009.5 2.8c.2-.2.4-2 .4-4l.1-3.7 2 .4c1 .3 3.3.3 5 0l3-.4-2.7-2c-1.5-1-3-2.3-3.4-2.9-.3-.6-1.7-1.2-3.2-1.3-4.1-.4-11.4-4.4-11.4-6.4 0-.4 1 .3 2.2 1.4 2.8 2.5 6.6 4 10 4h2.4l-1.5-2a11.9 11.9 0 01-2-5.2c-.2-3-.5-3.4-3.6-5.5a35.2 35.2 0 01-5-4.3l-1.7-1.9-.9 2.3c-.5 1.3-1 2.3-1.3 2.3-.2 0-1.2-.8-2-1.7a7 7 0 00-2-1.6c-.3 0-1 1.2-1.8 2.7l-1.4 2.7-1-1.5a23.8 23.8 0 00-3-3.4c-1.2-1-1.7-1.8-1.3-1.8.4 0 1.7 1 3 2.3l2.2 2.3 1-1.7a6 6 0 00.5-3.8c-.4-1.8-.3-1.9.3-.7a16 16 0 003 3l2.2 1.8 1.5-2.7c1.5-2.8 1.5-2.8 2.1-1.1 1 2.1 7.5 7.5 13 10.6 1 .5.6-1.1-1-5a12.7 12.7 0 01-.8-4c0-1.8-.5-2.6-2.8-4.4a10.9 10.9 0 01-5-8.4c-.3-1.7-.9-3.5-1.4-4.1-.6-1-.8-.4-.6 2.6.2 2.1-.1 4.7-.6 5.8l-.8 2-.6-1.7c-.4-.9-2-2.5-3.5-3.5s-2.6-2-2.4-2.2c.2-.2 1.8.7 3.5 2 2.7 2.1 3.2 2.3 3.6 1.4.4-1 0-5.6-.8-8.8-.4-1.6-.4-1.6 1.6.4 1.4 1.4 2.2 3.2 2.9 6.2.8 3.8 1.2 4.5 4.7 7.6 2.1 1.9 4 3.3 4.1 3.2.2-.2.4-5 .6-10.8.4-11.1 0-13.8-2.7-17.2l-1.4-1.8 2.2-2.3a16 16 0 004.7-8.8l.4-2.7-2.4 2.3c-2 1.9-3 2.3-5.3 2.3s-3.2-.4-4.7-2a20 20 0 00-8.3-4.8c-1.2-.4-1.6-.2-1.6.6 0 .6-.6 2.2-1.4 3.7l-1.4 2.6-3-3c-1.9-1.7-4-3.2-5.7-3.6-4.1-1-4.3-1-4.3 2.1 0 4.7-2 5.6-5.6 2.5-2.8-2.4-5-3-10.3-2.3l-4 .4.7 1.8c.6 1.5.5 2.2-.8 3.9-2.1 2.8-4.8 4-9 4-2 0-4.4.4-5.4.9s-3.6 1-5.7 1.2c-2 .2-4.3.6-5 .8-1 .4-1 0-.7-2.2.5-3.4-2-6-5.7-6-4.9 0-7.1 4.4-5.2 10.2a44.6 44.6 0 011 3.8 23 23 0 005.2 6.6c2.6 2.6 5 5.3 5.4 6a9 9 0 003 2.5l2.2 1.2-.3-2.4c-.3-2.6.2-3 1.6-1.1.5.6 1.8 1.7 2.8 2.3 1.7 1 2 1 2 .2 0-.6.3-1.9.7-2.9l.7-1.8 1.3 2.5c.7 1.4 3 4.5 5.1 7 4.1 4.7 6.7 10 5.4 11.2-.6.5-2 .5-5-.1-2.2-.4-5-.7-6.2-.5-2.3.3-2.5 0-1-1.8 1.5-2 1.2-2.3-1.8-2.3-3.5 0-12.2-1.7-15.6-3-3.2-1.3-4-1-5 2.1l-1.7 5.6-1 3 3.6-.3a37 37 0 005.5-1 6 6 0 012.2-.3c.2.1-.3 1.3-1 2.7l-1.4 2.4 2.2-.4c1.2-.3 3-.9 4-1.4 1.8-.8 2-.8 3.4 1.5 1.7 2.7 3 2.6 3.3-.3.3-3 1.3-2.6 3.2 1.4 1.8 3.8 3.6 5.2 4 3 .1-.8 1-2 2.1-2.8 2.2-1.5 3.8-1 4.7 1.3 1 2.5-1.2 5-7.4 8.8a43 43 0 00-21.7 31c-1.9 11.8 4 24 15.6 32.9 5.6 4.2 14.5 8.6 13.9 7-2.4-7.3-2.3-21 .1-23.3.4-.4.3 1-.3 3.1-2 7.9-1 14.1 4 28.7 4.4 13.2 3.8 18.9-2.6 22.6-2 1.2-3.3 1.4-8.8 1.3-6 0-6.7 0-8.6 1.6a15.7 15.7 0 00-4.3 8.6c0 1.3 1.4 1.1 4-.4z"/>
+      <path d="M460.5 415.5l2.5-1.6 1.7 1.6c2.2 2.1 4.9 2 7-.1 1-1 1.8-1.6 1.9-1.5l.9 1.6c.5.9 1.6 1.3 3.6 1.5 2.3.1 3 0 4-1.4l1-1.7 2.5 1.6c6.8 4.4 10.4-.2 7.3-9.3-1.5-4.6-.6-7.2 4.3-13 2.1-2.5 3.8-5.2 3.8-6 0-1.1-.4-1.3-3.2-1.2-2.6 0-3.4-.3-4.8-1.8-2.3-2.5-2.1-5.4.4-8.6l2-2.5-3.6-2.4a59.7 59.7 0 01-8-7.1 25.7 25.7 0 00-17.5-9l-4.7-.5v3.6c0 4.5 2.2 8.9 8 16.3 6.6 8.4 7 9.7 7.3 20.7l.3 9.3-2 1.8c-1.7 1.6-2.4 1.9-8 2.2-5.3.3-6.5.6-8 2a8.7 8.7 0 00-3.4 5.3c-.3 1.5-.2 1.8.9 1.8.7 0 2.4-.7 3.8-1.6zm-142.2-24a5.8 5.8 0 001-3c0-1 .6-1.4 3.2-1.8l3.1-.4-2-1.7c-2.5-2-2.8-3.5-.6-3.5s5.8-2.2 6.4-3.9c.3-.8 0-1.8-.4-2.3-1.2-1.4-3.5-1.2-3.9.4-.5 1.6-1.2 1.6-3 0-2.5-2.5-2.6-7.6 0-10.6 1.1-1.4 1.1-1.4-.4-2.9-1.6-1.6-2.8-4.6-2-5.4.2-.2 1.5 0 2.8.5 2 .6 2.7.6 3.5 0 2.3-1.9-.2-4.3-4-3.7-1.6.2-2.2 0-2.4-.8-.2-.6-1.5-1.4-3-1.8-2.7-.7-2.7-.7-2.7 1.2 0 2-1.2 2.4-3.4 1.1-1.8-1-3.5-.2-3.5 1.7 0 1.8 1.7 2.6 5 2.4 2.4-.1 2.5 1.7.2 4.3l-1.7 2 1.3 1.9c2 2.8 1.8 7.5-.3 9.9l-1.7 1.8-1.1-1.5c-1.6-2-3.7-1.9-4.3.3-.3 1.4 0 2 1.8 3.6 1.2 1 3 1.8 3.9 1.8 2.3 0 2.2 1.9-.2 3.7l-2 1.5 3 .4c1.6.3 3 .7 3 1 0 1.3 2 5.2 2.6 5.2.4 0 1.2-.7 1.8-1.5z"/>
+      <path d="M356.5 374.9c2.7-1 8.5-6 8.5-7.1 0-.4-1.6-2.2-3.6-4-4-3.6-8.5-9.9-9.7-13.5-.6-2-3.5-5.2-11.7-13.2l-10.9-10.5-3.1.8c-1.8.4-3.9.8-4.7.8-1.5 0-1.5 0 .5 1.6l2 1.6 3-1.6c2.7-1.6 2.8-1.6 3.1-.3.2.7-.2 2-1 2.9-.7.9-1.1 2-1 2.3.3.3-.4 1-1.5 1.6-2 1-3.5 4.3-1.9 4.3 1.5 0 4.7-4 4.3-5.3-.2-.7 0-1.4.2-1.6 1.3-.7 1.2 2.4 0 4-.8.8-1.2 1.8-1 2.2.2.3-.5 1-1.6 1.6-2 1-3.5 4.3-1.9 4.3s4.7-3.8 4.4-5.2c-.2-.7-.2-1.5.1-1.7.9-.4 1.3 2 .6 3.2a2.3 2.3 0 000 2.2c.7 1.3 0 3.7-1.3 4.5-.5.3-.2 1 1.2 2 2 1.4 2 1.6 2 8 0 5.4.2 6.8 1.2 7.7 1 1 1.2 1 1.2 0s2-2.4 3.5-2.4c.5 0 3.4 2.5 6.5 5.5s6.4 5.7 7.3 5.8l2.2.4c.3 0 1.7-.3 3.1-1zm-33.3-26.1c0-1.7-3.6-3.6-7.9-4-3.5-.5-3.5-.4-3.5 1.3 0 1.4.5 2 3 3 3.8 1.7 8.4 1.5 8.4-.3z"/>
+      <path d="M327.1 348.6c1.8-1.6 2.6-3.4 1.5-3.4-1.2 0-4.4 2.8-4.4 4 0 1.6.6 1.5 3-.6zm-3.7-5.1c.1-1-.5-1.6-2.3-2.5-4-1.7-8.6-2.6-9.7-1.7-2.1 1.7-.7 3.9 2.6 4.3 1.4.1 3.2.5 4.1.9 2.6 1 5 .5 5.3-1zm0-5.3c.2-1.3-.7-1.8-8-4.4-5.5-2-7.9-1-6.1 2.3.6 1.1 1.6 1.6 3.9 2 1.7.2 4 .7 5.1 1.1 3 1 4.8.6 5-1zm3.6-4.9c1.1-1.1 2-2.4 2-3 0-1.5-4.3 1.3-4.9 3.3-.6 2.3.5 2.2 3-.3zm-3.6-.3c.2-1.6-2.4-3-7.6-4.1-3.9-.9-5.6-.4-5.3 1.4.2 1 1.5 1.7 5 2.8 5.9 1.8 7.6 1.8 7.9-.1zm5-7.4c6.8-3 7.3-10.5 1-12.5-2.6-.8-4.2-.3-5.2 1.4-.8 1.4-.3 3.8.7 3.8.4 0 .7.5.7 1 0 2.7-10.2 3.8-14.4 1.7-1.5-.7-2-2.7-.9-2.7 1 0 1.6-2 1.1-3.3-.6-2-2.6-2.6-5.3-1.8-6.3 1.6-6.1 9 .3 12a33.6 33.6 0 0022 .4z"/>
+      <path d="M324.3 319.8c.4-.4.2-1-.4-1.4-1.4-1.1-1.3-2.8.2-4.7 1.2-1.4 1.3-3.6 1.7-25.1.7-37.1 3.5-65 7.1-71.8 1.5-2.6 1.3-2.6-2.5 0a36 36 0 00-11.7 13.6c-6.2 11.5-8.3 27-8.3 60.2 0 18.8.1 21.3 1.2 23 1 1.8 1 2.4.4 4.2-.5 1.1-.7 2.3-.5 2.5 1.4 1.3 11.4 1 12.8-.5zm56.1-35.4c.3-.3-.2-2-1-3.6-1.2-2.6-1.7-3-3.4-3a65 65 0 01-23-6.4c-5.1-2.3-7-2.8-7.5-2.2-1.6 1.5 1 5 5 6.9a64 64 0 0018.3 3.7c2.7 0 2.8 0 1.2 2.3l-1 1.6h3l5 .6c3 .7 3 .7 3.4.1z"/>
+      <path fill="#000" d="M412 301.1c0-1-2.9-3.5-5.7-5.2-2.3-1.3-2.7-1.4-2.7-.3 0 1.6-1.4 5.7-2 5.7-.3 0-.8-.8-1-1.7-.3-1-1.4-3-2.5-4.3l-2-2.5-1.4 2.3c-1.4 2.2-3.9 4.3-5 4.3-.2 0-.3-1.2 0-2.5.1-1.6 0-2.8-.5-3-.4-.3-.8-.2-.8.2 0 .8-3.4 4.6-4 4.6-.4 0-.8-1-1-2.4l-.8-4.8c-.2-1.2.3-.4 1 2l1.6 4.1 1.6-2.5a11 11 0 001.6-3.4c0-.5.3-.7.7-.5.4.2.9 1.9 1.1 3.7l.5 3.4 1.8-2a28.8 28.8 0 002.6-3.2c.7-1.2.8-1.2 2.3 0 .8.8 2.1 2.5 2.9 3.9s1.5 2.4 1.6 2.3l.6-3.2.4-3c.1-.5 5.4 3 7.4 4.7 1.2 1.1 2.4 1.9 2.6 1.7.2-.2.4-1.8.4-3.7 0-2.8-.3-3.6-2-5.1-2-1.8-2-1.8-2.8-.5-1 1.7-2.1 1.7-2.1 0 0-1.2-3.8-5.9-4.7-5.9-.3 0-1.1 1-1.8 2.3s-1.5 2.3-1.7 2.3c-1 0-6.3-6-6.3-7 0-.8.4-.6 1.3.8a21 21 0 003.1 3.6c2 1.8 2.8 1.4 3.6-2.1.3-1 .7-1.8 1-1.8.8 0 5.4 4.9 6 6.5l.7 1.6.5-1.8c.6-2.2 1.3-2.2 2.3-.2.4.8 2.4 2.6 4.4 3.8l3.7 2.4.7-2.4c.4-1.3 1-2 1.2-1.6.4.5-.6 4.5-1.3 5.3 0 .1-1.3-.6-2.6-1.5l-2.5-1.8v3.2c0 1.7-.2 3.8-.4 4.6-.5 1.6-1.7 2-1.7.6zm-18.5-25.4c-4.4-3.6-5-4.4-5-6.2l.1-1.8.3 1.7c.2 1 1.4 2.6 2.8 3.8l2.6 2 1.5-1.8c.9-1 1.6-2.2 1.6-2.6 0-1.2.2-1.1 3.2 1.5 2.6 2.3 2.7 2.3 3 .8.3-.8.2-2.4 0-3.5-1-3-.8-3.4.5-1.6l2.4 2.8c1 1.1 1.1 1.1 1.5-.3.3-.9.5-2.4.5-3.4v-1.9l2.3 2.7c2.3 2.6 2.5 2.7 3.1 1.4.5-.7.8-2.4.8-3.7 0-1.8.2-2.2.6-1.6.8 1.2.3 4.2-1.1 6.8l-1 2-1.3-2.1c-1.7-2.6-2.3-2.6-3.3.2-1 2.7-1.7 2.9-2.7.8-.6-1.3-.8-1.1-1.2 1.7l-.5 3-3-2.3-3-2.3-1.5 1.5c-.7.9-1.3 2-1.3 2.4 0 1-.8 1-1.9 0zm39-13.6c-1.5-1.4-2.6-2.8-2.4-3 .3-.3.5-.4.6-.2a67 67 0 003 3c3.4 3.6 2.7 3.7-1.1.2zm-52-5.4c-1.4-2-1.3-3.2.5-5.4 1.2-1.5 1.8-1.7 4-1.4 1.5.1 4.6 1.4 6.9 2.8a21.2 21.2 0 0011 3l-1.7-2.8c-2.2-3.3-2.2-3.7.4-1.7 2.6 2.1 5.7 2.7 12.7 2.5l3.4-.1-2-2c-2.7-2.7-1.9-3 1.2-.3 2.8 2.5 2.7 2.7-3.4 3.3a23 23 0 01-7.6-.5c-3.4-1-3.6-.9-2.9.2.4.7 1 1.2 1.3 1.2.4 0 .7.4.7.8 0 1.3-7.4.1-11-1.6-8-4.1-9-4.5-11-3.9a4.3 4.3 0 00-2.4 2.3c-1.3 3.3 3.4 5.9 5.3 3 .6-.9.5-1.4-.5-2.5-1.4-1.4-1.2-1.6.6-1 1.3.5 1.4 3.6.2 4.8-1.3 1.3-4.5 1-5.7-.7z"/>
+      <path fill="#000" d="M412.4 248.6c-1-1-.2-1.2 4.3-1.3 5.6-.1 9-1 13-3.6 3.2-2 4.1-1.6 1 .5-2.7 2-7 3.4-11.3 3.8l-5.1.7c-.8.2-1.7.1-2-.1z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/lr.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/lr.svg
new file mode 100644
index 0000000..00e3629
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/lr.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-lr" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="lr-a">
+      <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#lr-a)" transform="scale(.9375)">
+    <path fill="#fff" d="M0 0h767.9v512H0z"/>
+    <path fill="#006" d="M0 0h232.7v232.8H0z"/>
+    <path fill="#c00" d="M0 464.9h767.9V512H0z"/>
+    <path fill="#c00" d="M0 465.4h767.9V512H0zm0-92.9h767.9v46.2H0zm0-93.2h766V326H0zM232.7 0h535.1v46.5H232.7zm0 186h535.1v46.8H232.7zm0-92.7h535.1v46.5H232.7z"/>
+    <path fill="#fff" d="M166.3 177.5l-50.7-31-50.4 31.3 18.7-50.9-50.3-31.4 62.3-.4 19.3-50.7L135 95h62.3l-50.1 31.7 19.1 50.8z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ls.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ls.svg
new file mode 100644
index 0000000..5dd5b0c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ls.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ls" viewBox="0 0 640 480">
+  <path fill="#fff" d="M0 0h640v480H0z"/>
+  <path fill="#009543" d="M0 336h640v144H0z"/>
+  <path fill="#00209f" d="M0 0h640v144H0z"/>
+  <path stroke="#000" stroke-width="1.6" d="M319.6 153c-2.7 0-5.4 3-5.4 3l.3 32.4-10.3 10.7h8.3v18.5l-49 66-7.2-2.6-12.7 27s31.3 19.6 76.7 19c49.8-.5 76.9-19.9 76.9-19.9l-13-26.6-6.5 2.8-49.6-65.6v-19.1h8.2L325.1 188v-32.2s-2.7-3-5.5-2.9z"/>
+  <path fill="none" stroke="#000" stroke-width="8" d="M336.7 230.4h-33.9s-12.2-25.9-10.3-44c2-18.4 12.6-27.1 26.6-27.3 16.6-.1 25.2 8.1 27.8 26.6 2.6 18.3-10.2 44.7-10.2 44.7z"/>
+  <path fill="#fff" d="M260.5 292.1c-.6.7-4.7 8.9-4.7 8.9l7-1.5-2.3-7.4zm4 10.5l-7.4 2.4 8.9 3.5-1.5-5.9zm3.3-10.3l3.7 10.9 9-2.6-2.3-5.2-10.4-3.1zm5.8 14.8l1.2 4.4 12 3-4.8-10.2-8.4 2.8zm13.2-9.3l4.3 10.2 9-3.5-3-4.5-10.3-2.2zm6 13.9l1.4 3.8 14 2-5.9-9.2-9.6 3.4zm13.4-11l5.2 9.1 13-4.8-1.4-3.5-16.8-.7zm7.6 12.4l2.7 4.8 16.2-.5-6-9-13 4.7zm17.1-12l4.4 7.6 10.4-5-2.8-4-12 1.4zm17 5.8l-10.3 5.1 2.7 4.5 13.8-2.2-6.2-7.4zm3.3-8l5.3 6.7 8.7-6.9-3-3-11 3.2zm15.9 3.5l-8.3 6.3 2.2 3.9 11.4-3-5.3-7.2zm11.4-13l2 2.9-5.7 8.5-5.9-7.6 9.6-3.8zm3.9 7.3l3.5 7-7 2.4-.6-3.3 4-6z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/lt.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/lt.svg
new file mode 100644
index 0000000..36e30e9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/lt.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-lt" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt" transform="scale(.64143 .96773)">
+    <rect width="1063" height="708.7" fill="#006a44" rx="0" ry="0" transform="scale(.93865 .69686)"/>
+    <rect width="1063" height="236.2" y="475.6" fill="#c1272d" rx="0" ry="0" transform="scale(.93865 .69686)"/>
+    <path fill="#fdb913" d="M0 0h997.8v164.6H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/lu.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/lu.svg
new file mode 100644
index 0000000..bf6ca16
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/lu.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-lu" viewBox="0 0 640 480">
+  <path fill="#00a1de" d="M0 240h640v240H0z"/>
+  <path fill="#ed2939" d="M0 0h640v240H0z"/>
+  <path fill="#fff" d="M0 160h640v160H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/lv.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/lv.svg
new file mode 100644
index 0000000..efa5a32
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/lv.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-lv" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="#fff" d="M0 0h640v480H0z"/>
+    <path fill="#981e32" d="M0 0h640v192H0zm0 288h640v192H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ly.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ly.svg
new file mode 100644
index 0000000..fcc2dc9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ly.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ly" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="ly-a">
+      <path d="M166.7-20h666.6v500H166.7z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#ly-a)" transform="matrix(.96 0 0 .96 -160 19.2)">
+    <path fill="#239e46" d="M0-20h1000v500H0z"/>
+    <path d="M0-20h1000v375H0z"/>
+    <path fill="#e70013" d="M0-20h1000v125H0z"/>
+    <path fill="#fff" d="M544.2 185.8a54.3 54.3 0 100 88.4 62.5 62.5 0 110-88.4M530.4 230l84.1-27.3-52 71.5v-88.4l52 71.5z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ma.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ma.svg
new file mode 100644
index 0000000..8de4077
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ma.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ma" viewBox="0 0 640 480">
+  <path fill="#c1272d" d="M640 0H0v480h640z"/>
+  <path fill="none" stroke="#006233" stroke-width="11.7" d="M320 179.4L284.4 289l93.2-67.6H262.4l93.2 67.6z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mc.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mc.svg
new file mode 100644
index 0000000..45133dc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mc.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mc" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#f31830" d="M0 0h640v240H0z"/>
+    <path fill="#fff" d="M0 240h640v240H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/md.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/md.svg
new file mode 100644
index 0000000..a86be90
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/md.svg
@@ -0,0 +1,70 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-md" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#00319c" d="M0 0h213.3v480H0z"/>
+    <path fill="#ffde00" d="M213.3 0h213.4v480H213.3z"/>
+    <path fill="#de2110" d="M426.7 0H640v480H426.7z"/>
+  </g>
+  <path fill="#ff1900" fill-rule="evenodd" stroke="#000" stroke-width=".7" d="M360.4 320.4l24.2 35c1.4 2 2.7 3.9.7 5.2-2 1.3-1.4 6.4 0 8.4 2.7 3.9 6 4.5 8 3.2l18.4-11.6c2-1.2 2.7-4.5 0-8.4-1.5-2-6-4.5-8-3.2-2.1 1.3-3.5-.7-4.8-2.6l-24.3-35"/>
+  <path fill="#a77b3b" fill-rule="evenodd" stroke="#000" stroke-width="2.5" d="M177.2 696.3c0 24.4-9.6 44.3-21.3 44.3-11.7 0-21.3-19.9-21.3-44.3S144.3 652 156 652s21.3 19.8 21.3 44.3z" transform="matrix(.52728 -.42386 .44358 .50386 -32.4 20)"/>
+  <path fill="#ff1900" fill-rule="evenodd" stroke="#000" stroke-width=".7" d="M262 306.1l-21.5 36.7c-1.2 2-2.4 4-4.5 3-2.1-1.2-6.6 1.7-7.8 3.8-2.4 4-1.5 7.2.7 8.4l19.2 10.2c2 1.1 5.4.2 7.8-3.8 1.1-2.2 1.4-7.3-.7-8.4-2.1-1.1-1-3.2.3-5.2l21.4-36.7"/>
+  <path fill="#a77b3b" fill-rule="evenodd" stroke="#000" stroke-width="1.7" d="M331.2 280.6h-19.6c-.6.6-6.2 35.6-12.2 49-7.3 16.3-29.2 30.7-29.2 30.7s13.1 4 17 6.6c1-.3 22-4.7 24.4-30.3 2.4 25.6-14.6 37.3-14.6 37.3s24.4 7 24.4 23.3c0-16.3 24.4-23.3 24.4-23.3s-12.2-11.7-14.7-37.3c5 25.6 23.5 30 24.5 30.3 3.9-2.6 17-6.6 17-6.6s-21.9-14.4-29.2-30.7c-6-13.4-11.6-48.4-12.2-49zm-83-116.7l36.6 11.7c12.1 0 24.4-11.7 24.4-23.4.4-26-9.8-35-12.2-35l4.8-4.6-7.3-7s2.5-12.1 26.9-11.7c24.4.5 24.4 11.7 24.4 23.3s-12.2 11.7-12.2 35c0 11.7 12.2 23.4 24.4 23.4l36.6-11.7v116.7H248.1V163.9z"/>
+  <g fill="none" stroke="#000">
+    <path stroke-width=".5" d="M302.2 292.2l14.6 15 14.7-15 14.6 15 29.3-15 14.3 15.8 15-15.8 21.6 15.8 22.3-15.8 14.6 15 14.7-15" transform="matrix(.16672 0 0 .46773 253.9 31.9)"/>
+    <path stroke-width=".2" d="M432.3 435.8l-7.1 39m10.6-39v39m7.1-39v39m7.1-39l3.5 39m3.6-39l3.5 39" transform="matrix(.68905 0 0 .65843 16.2 -144)"/>
+  </g>
+  <g stroke="#000" stroke-width="2.5">
+    <path fill="#a77b3b" fill-rule="evenodd" d="M318.9 361.4c35.4 17.7 35.4 53.2 35.4 70.9-1.2 16.1 0 354.3 0 354.3s-2.3-20-17.7-35.4L319 733.5l-17.7-17.7c-13-11.8-17.7-35.5-17.7-53.2v-248s0-17.8 35.4-53.2z" transform="matrix(-.68905 0 0 .65843 443.4 -144)"/>
+    <path fill="none" d="M283.5 574c.4 0 17.7-17.7 17.7-17.7l17.7 17.7 17.7-17.7 17.7 17.7" transform="matrix(-.68905 0 0 .65843 443.4 -237.3)"/>
+    <path fill="none" d="M283.5 574c.4 0 17.7-17.7 17.7-17.7l17.7 17.7 17.7-17.7 17.7 17.7" transform="matrix(-.68905 0 0 -.65843 443.4 530.2)"/>
+    <path fill="none" d="M283.5 574c.4 0 17.7-17.7 17.7-17.7l17.7 17.7 17.7-17.7 17.7 17.7" transform="matrix(-.68905 0 0 .65843 443.4 -190.7)"/>
+    <path fill="none" d="M301.4 557l-.2 158.8" transform="matrix(-.68905 0 0 1.24911 443.4 -566.8)"/>
+    <path fill="none" d="M301.4 539.3l-.2 176.5" transform="matrix(-.68905 0 0 1.12111 431.4 -464)"/>
+    <path fill="none" d="M301.4 539.3l-.2 176.5" transform="matrix(-.68905 0 0 1.2559 419.2 -548.3)"/>
+  </g>
+  <g stroke="#000" stroke-width="2.5">
+    <path fill="#a77b3b" fill-rule="evenodd" d="M318.9 361.4c35.4 17.7 35.4 53.2 35.4 70.9-1.2 16.1 0 354.3 0 354.3s-2.3-20-17.7-35.4L319 733.5l-17.7-17.7c-13-11.8-17.7-35.5-17.7-53.2v-248s0-17.8 35.4-53.2z" transform="matrix(.68905 0 0 .65843 199.3 -144)"/>
+    <path fill="none" d="M283.5 574c.4 0 17.7-17.7 17.7-17.7l17.7 17.7 17.7-17.7 17.7 17.7" transform="matrix(.68905 0 0 .65843 199.3 -237.3)"/>
+    <path fill="none" d="M283.5 574c.4 0 17.7-17.7 17.7-17.7l17.7 17.7 17.7-17.7 17.7 17.7" transform="matrix(.68905 0 0 -.65843 199.3 530.2)"/>
+    <path fill="none" d="M283.5 574c.4 0 17.7-17.7 17.7-17.7l17.7 17.7 17.7-17.7 17.7 17.7" transform="matrix(.68905 0 0 .65843 199.3 -190.7)"/>
+    <path fill="none" d="M301.4 557l-.2 158.8" transform="matrix(.68905 0 0 1.24911 199.3 -566.8)"/>
+    <path fill="none" d="M301.4 539.3l-.2 176.5" transform="matrix(.68905 0 0 1.12111 211.4 -464)"/>
+    <path fill="none" d="M301.4 539.3l-.2 176.5" transform="matrix(.68905 0 0 1.2559 223.6 -548.3)"/>
+  </g>
+  <path fill="#a77b3b" fill-rule="evenodd" stroke="#000" stroke-width="2.5" d="M177.2 696.3c0 24.4-9.6 44.3-21.3 44.3-11.7 0-21.3-19.9-21.3-44.3S144.3 652 156 652s21.3 19.8 21.3 44.3z" transform="matrix(.63605 .25323 -.26502 .60778 361.1 -165.2)"/>
+  <path fill="red" fill-rule="evenodd" d="M248.1 175.6h146.5v70H248.1z"/>
+  <path fill="#564dff" fill-rule="evenodd" d="M248.1 245.6h146.5v35c0 23.3-36.6 23.3-73.2 46.6C284.7 304 248 304 248 280.6v-35z"/>
+  <path fill="none" stroke="#ff0" stroke-width="2" d="M336.6 485.4h212.6V645c0 35.4-53.1 35.4-106.3 70.9-53.1-35.5-106.3-35.5-106.3-71V485.5z" transform="matrix(.68905 0 0 .65843 16.2 -144)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="2.5" d="M385.6 129.9S335 185.4 335 238.5c0 53.1 53.1 70.9 53.1 70.9s-17.7 0-17.7 70.8c0 35.5 53.1 17.8 53.1 35.5s-.7 60.5 0 88.6c0 17.7-35.4 0-35.4 17.7 0 8.8 26.6 53.1 53.2 53.1s53.1-44.3 53.1-53.1c0-17.7-35.4 0-35.4-17.7v-88.6c0-17.7 53.1 0 53.1-35.5 0-70.8-17.7-70.8-17.7-70.8s53.2-17.7 53.2-70.9-50.7-108.6-50.7-108.6 28.5 73.2 28.5 108.6c0 17.7-13.3 53.2-48.7 53.2 0 0-9-17.8-17.7 0 0 0-10.2-17.8-17.7 0-2.6 6-7.2-17.8-17.8 0-4.4 4.7-8-17.8-17.7 0-17.7 0-53.1-17.8-53.1-53.2s32.9-108.6 32.9-108.6z" transform="matrix(.48234 0 0 .30917 108.5 140.1)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="2.5" d="M382.7 248c-3.6 3.6 4.6 61.3 7 63.8 3.6 3.5 24.9 3.5 28.4 0 2.5-2.5 0-56.7-3.5-60.2-3.6-3.6-29.4-6-32-3.6z" transform="matrix(.48234 0 0 .30917 110.4 201.6)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="2.5" d="M382.7 248c-3.6 3.6 4.6 61.3 7 63.8 3.6 3.5 24.9 3.5 28.4 0 2.5-2.5 0-56.7-3.5-60.2-3.6-3.6-29.4-6-32-3.6z" transform="matrix(-.48234 0 0 .30917 532.4 201.6)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="2.5" d="M414.6 228.5a16 16 0 11-32 0 16 16 0 0132 0z" transform="matrix(.5544 0 0 .38542 82.7 183.7)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="2.5" d="M414.6 228.5a16 16 0 11-32 0 16 16 0 0132 0z" transform="matrix(.55441 0 0 .38543 118 183.7)"/>
+  <path fill-rule="evenodd" d="M336.8 307.5c0 1.5-2 2.7-4.3 2.7-2.4 0-4.3-1.2-4.3-2.7s2-2.7 4.3-2.7 4.3 1.2 4.3 2.7zm-22.3 0c0 1.5-1.9 2.7-4.2 2.7-2.4 0-4.3-1.2-4.3-2.7s1.9-2.7 4.3-2.7c2.3 0 4.2 1.2 4.2 2.7z"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M439.4 550l-7.8-10.3-12.8 1.7 1.8-12.8-10.3-7.7 10.3-7.8-1.8-12.8 12.8 1.8 7.8-10.3 7.8 10.3 12.7-1.8-1.7 12.8 10.2 7.8-10.2 7.8 1.7 12.7-12.8-1.7z" transform="matrix(.67225 0 0 .64237 26 -133.3)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M496 591.7l21.3 10.7 21.3-10.7-21.3-10.6-21.2 10.6z" transform="matrix(.68905 0 0 .65843 16.2 -144)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M496 591.7l21.3 10.7 21.3-10.7-21.3-10.6-21.2 10.6z" transform="matrix(.68905 0 0 .65843 -88.8 -144)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M535 659c-3.5-7-14.1-10.6-21.2-10.6s-14.2 0-21.3 10.7c0-14.2 10.5-21.3 21.3-21.3a22.7 22.7 0 0121.2 21.3z" transform="matrix(.59753 -.3279 .34316 .57097 -165.2 86.5)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M386.2 652a7 7 0 11-14.1 0 7 7 0 0114.1 0z" transform="matrix(.68905 0 0 .65843 13.7 -155.7)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M386.2 652a7 7 0 11-14.1 0 7 7 0 0114.1 0z" transform="matrix(.68905 0 0 .65843 8.8 -139.4)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M386.2 652a7 7 0 11-14.1 0 7 7 0 0114.1 0z" transform="matrix(.68905 0 0 .65843 6.4 -148.7)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M386.2 652a7 7 0 11-14.1 0 7 7 0 0114.1 0z" transform="matrix(.68905 0 0 .65843 18.6 -139.4)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M386.2 652a7 7 0 11-14.1 0 7 7 0 0114.1 0z" transform="matrix(.68905 0 0 .65843 21 -148.7)"/>
+  <path fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M386.2 652a7 7 0 11-14.1 0 7 7 0 0114.1 0z" transform="matrix(.68905 0 0 .65843 13.7 -146.4)"/>
+  <g fill-rule="evenodd">
+    <path fill="#da4500" d="M297.8 120.4c-12.4 0-14 2-19.6 3.9 0-5.4 13.8-11.7 26-11.7 0 3.9-3.2 7.8-6.4 7.8z"/>
+    <path fill="#cac9c7" d="M316.5 108c0 2.5-2.2 4.6-4.9 4.6s-4.9-2.1-4.9-4.7 2.2-4.6 4.9-4.6 4.9 2 4.9 4.6z"/>
+    <path fill="#ff0" stroke="#000" stroke-width="1.1" d="M361.4 357.9v10.6h17.7v53.1h10.7v-53.1h17.7v-10.6h-17.7v-14.2H379v14.2h-17.7z" transform="matrix(.68905 0 0 .65843 16.2 -144)"/>
+    <path fill="#da4500" d="M304.3 112.6a78.5 78.5 0 00-29.3 3.9c0-7.2 8.4-15.6 22.8-15.6 3.2 0 6.5 7.8 6.5 11.7z"/>
+  </g>
+  <g fill-rule="evenodd">
+    <path fill="#008500" stroke="#000" stroke-width=".7" d="M67.3 613c-14.2-14.2-16.6-21.4 3.6-10.1l283.7 247.5-3.4 7L67.4 613z" transform="matrix(.38821 .29653 -.14073 .23692 237.4 71.3)"/>
+    <path fill="#008f00" d="M228.4 330.4c.8-10.6-18.6-22-19.4-21.3-.7.8 1.2 7 4.9 10.1-7-3.6-14.4-5.8-14.6-4.3-.6 2.2 11 7.2 12 9.2 0 1.4-8.6 1.2-8.4 2.6.2 1.4 24.3 13.6 25.5 3.7zM209 299.6c.8-10.6-18.6-22-19.3-21.3-.8.7 1.1 6.9 4.8 10.1-7-3.6-14.4-5.9-14.6-4.3-.5 2.1 11 7.2 12 9.2.1 1.4-8.5 1.2-8.4 2.6.2 1.4 24.3 13.5 25.5 3.7zm-14.8-28c.8-10.6-18.6-22-19.4-21.3-.7.7 1.2 6.9 4.9 10.1-7-3.6-14.4-5.9-14.6-4.3-.5 2.1 11 7.2 12 9.2 0 1.4-8.5 1.2-8.4 2.6.2 1.4 24.3 13.6 25.5 3.7zm-14.6-30.4c.7-10.5-18.6-22-19.4-21.3-.8.8 1.2 7 4.8 10.2-7-3.7-14.4-5.9-14.5-4.3-.6 2.1 11 7.2 11.9 9.1.1 1.4-8.5 1.3-8.3 2.7.1 1.4 24.2 13.5 25.5 3.6z"/>
+    <path fill="#008f00" d="M184.6 239.9c9.4-5.7 7.5-27.4 6.5-27.6-1.1-.1-5.2 5-5.7 9.8-1.1-7.6-3.6-14.6-5-13.8-2.1.8.4 12.7-.7 14.6-1 1-6-5.8-7-4.8-1.2 1 2.8 26.7 12 21.8zm13.6 26.6c10.8-2.4 16.7-23.4 15.7-23.9s-6.6 3-8.7 7.4c1.6-7.5 1.7-14.9 0-14.6-2.3.1-4 12.1-5.7 13.5-1.3.6-3.7-7.3-5-6.8-1.4.6-6.6 26.1 3.7 24.4zm16.2 27.2c9.9-4.8 10-26.6 9-26.8-1-.3-5.5 4.5-6.5 9.2-.4-7.7-2.2-14.8-3.7-14.1-2.2.6-.8 12.6-2 14.4-1.2.9-5.5-6.3-6.7-5.4-1.2.8.4 26.8 10 22.7zm17.6 35.6c10.3-3.9 12.8-25.5 11.8-25.9-1-.3-6 4-7.5 8.6.4-7.7-.6-15-2.2-14.4-2.3.4-2.1 12.5-3.5 14.2-1.3.7-4.8-6.8-6-6-1.3.6-2.5 26.7 7.4 23.5z"/>
+  </g>
+  <path fill="#ff1900" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M209 776c0 7.8-10.2 14.2-23 14.2s-23-6.4-23-14.2 10.3-14.2 23-14.2 23 6.4 23 14.2z" transform="matrix(.60164 .32097 -.3359 .5749 389.6 -146.8)"/>
+  <g fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-width=".5">
+    <path d="M156 414.6v-7.1h7v-7.1h7v7h7.2v7.2H170v17.7h-7v-17.7h-7zm7 60.2h7v205.5h-7z" transform="matrix(.49887 .1571 -.1826 .4713 451.4 -3.7)"/>
+    <path d="M159.4 676.8h14.2v56.7h-14.2zM156 439.4h21.3c14.1 0-3.6 39-3.6 39h-14.1s-17.8-39-3.6-39zm17.6-5.4c0 3-3.1 5.4-7 5.4s-7.1-2.4-7.1-5.3 3.1-5.4 7-5.4 7.1 2.4 7.1 5.4z" transform="matrix(.49887 .1571 -.1826 .4713 451.4 -3.7)"/>
+  </g>
+  <path fill="#ff1900" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M209 776c0 7.8-10.2 14.2-23 14.2s-23-6.4-23-14.2 10.3-14.2 23-14.2 23 6.4 23 14.2z" transform="matrix(.57449 -.36357 .38048 .54895 -2.3 4.2)"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/me.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/me.svg
new file mode 100644
index 0000000..613083f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/me.svg
@@ -0,0 +1,116 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-me" viewBox="0 0 640 480">
+  <path fill="#d3ae3b" d="M0 0h640v480H0z"/>
+  <path fill="#c40308" d="M24 24h592v432H24z"/>
+  <path fill="#b96b29" d="M424.5 236.1a58 58 0 0019.4-9.2c7-5.6 8.3-10.1 8.8-12.5.6-2.4.8-4.3-1-3-1.8 1.4-7.1 5.6-10.7 7.6-3.7 2-7 3-9 3.6-2 .5-3.6.9-1.7.1 2-.7 8.1-2.9 13-7.7 4.7-4.8 8.5-12 8.6-16.4 0-4.4-.3-4-1.7-3-1.4 1.1-6.4 7.3-9.3 9.7a90 90 0 01-9.7 6.9c-2.3 1.3-5.5 2.8-1-.3 4.5-3 13-10.3 16.5-19.7a35.4 35.4 0 002.7-15.8c0-1-.8-2.8-1.6-1.1-.8 1.7-6.5 13-11 18-4.6 4.8-3.5 3.9-4.6 4.7-1 .8-2.7 2.2-.5-.6a51.2 51.2 0 0012.2-31.7c0-3.6-1.5-8.6-2.2-10.1-.7-1.5-1.4-2.6-1.7-.9a191 191 0 01-5.8 18.4 75 75 0 01-6.7 12.8c-.8 1.1-2.8 3.6-.6-.5a77.4 77.4 0 007-27.6 44 44 0 00-2.6-20.9c-1.6-3.1-3-4.2-3-4.2s.3 7.8-2 19-5.7 17-5.7 17-1.5 1.7-.5-1a62.4 62.4 0 001.4-34.5c-2.3-7.5-6.2-11.3-6.2-11.3-1 10.7-.9 24.5-4.8 35.7-.7-.7-1.7-1.9-2.1.6a63.1 63.1 0 01-7 19.4c-4.8 8.8-6.8 10-6.8 10l-1.5-3.4c-.6-1.2-1-1.8-1.8-.2s-3.5 7.8-9.4 14.6-9.2 10.2-9 15.3c.1 5 2.8 7.7 6.4 10 3.6 2.3 4.2 3.6 3.7 6.4-.6 2.8-3.8 3.7-6.6 3.8-2.7.1-6.2-.1-7.5.6-1.2.7-1.3 2.5-2.6 3.7-1.2 1.3-1.8 2-3 2.2l-1 .1c-.2-13.5 5-19.5 5-19.5l-14.6-17.1a50.8 50.8 0 01-2.2 1 4 4 0 00-.4-.6 11 11 0 01-2.6-7.8c.7 0 2.2.6 3.5.3 1.3-.2.3-1.6 0-2.8-.5-1.3-.9-5.7-.6-7.3l.4-2.3s2.1 2.3 3.4 2.3c1.3 0 1.2-1.3 1.4-2.8.3-2.2 1.3-5 3-6.5 0 0 2.4 1.6 5 1.6s6.2-.7 9-3.5c3-2.7 2.9-3.3 2.9-3.3s5.3 1.8 9.3 2c4 .2 8.3-.4 10.4-4.7 2-4.2-.6-8.2-1-8.8-.6-.7-1.9-1.2-1.9 0s.1 4.4-2.4 6c-2.4 1.6-4.3 1.5-6.6.8a20.5 20.5 0 00-13.1-.4 17 17 0 016.1-4.2c3-.9 4.8.4 5.8 1.6 1 1.2 1.9 3 2.7.3.8-2.8.3-6-1-8a7.6 7.6 0 00-7.2-3c-3 .2-4 .7-4 .7s-1.5-4.3-5.3-5a21 21 0 00-14 3s-3.1.7-6.4-.2a21 21 0 01-5.4-2.8l1.1-3.5 1.9-.6c1-.4.7-.7.9-1.5.1-.8-1.8-2.2-1.8-2.2s-.3-2.5 2.9-4.1l2.8-1.4s1.9.3 2.6-.2c.8-.6.8-1 .8-1s1.4-.4 2-1.2c.4-.9.5-2.1.2-3.1-.4-1-.9-1.2-.4-1.7s1-1.6 1-2.4l.1-1s1.1-.4 1-2c0-1.7-.9-2.3-1.4-2.5l-.9-.1s0-1-.9-2.3c-.8-1.4-1.4-2-1.4-2s.6-.4.3-1.5-1.1-1.7-1.9-2c-.7-.2-1.5 0-1.5 0l-3.7-2.1-1.5-.8s0-1-.4-1.6c-.5-.5-1.5-.8-2-.8s-1 .3-1 .3l-6-1.4c-1.8-.2-1.9-.4-1.9-.4s-3.8-1.8-5.2-2l-2-.5s1.6-1.8 1.7-4a6 6 0 00-2.8-5l-1.6-.8V93l2.8.3.2-4.6-2.7.3.4-2.7h-5.8l.4 2.7-2.8-.2.3 4.5 3-.4-.4 1.7s-1 .2-2 .9a5.4 5.4 0 00-2.6 4.7c0 2.2 1.3 4 1.3 4l-1.8.4c-1.5.3-5.3 2.1-5.3 2.1s0 .2-1.8.4l-6 1.4s-.6-.3-1-.3-1.6.3-2 .8c-.4.6-.5 1.6-.5 1.6l-1.4.8-3.7 2.1s-.8-.2-1.6 0c-.7.3-1.5 1-1.8 2-.3 1.1.3 1.6.3 1.6s-.6.5-1.5 1.9a6 6 0 00-.9 2.3l-.8.1c-.6.2-1.5.8-1.5 2.5 0 1.6 1 2 1 2v1c.1.8.6 2 1.1 2.4.5.5 0 .7-.3 1.7-.4 1-.3 2.2.2 3 .5 1 2 1.4 2 1.4s0 .3.7.9 2.6.2 2.6.2l2.9 1.4c3.2 1.6 2.9 4 2.9 4s-2 1.5-1.8 2.3c.1.8 0 1.1.9 1.5l1.9.6 1 3.5a21 21 0 01-5.4 2.8c-3.2.9-6.4.2-6.4.2a21 21 0 00-13.9-3c-3.8.7-5.4 5-5.4 5s-1-.4-4-.8c-3-.3-5.8 1-7.1 3-1.4 2.1-1.8 5.3-1 8.1s1.6.9 2.6-.3 2.8-2.5 5.8-1.6c3 1 6 4 6.2 4.2 0 0-.5-.3-3.9-.8-3.7-.5-6.9.4-9.2 1.2-2.3.7-4.2.8-6.7-.8-2.4-1.6-2.4-4.8-2.4-6 0-1.2-1.3-.7-1.8 0-.4.6-3 4.6-1 8.8 2 4.3 6.3 5 10.4 4.7 4-.2 9.3-2 9.3-2s0 .6 2.8 3.3a13 13 0 009 3.5c2.7 0 5-1.6 5-1.6 1.7 1.5 2.7 4.3 3 6.5.2 1.5.1 2.8 1.4 2.8 1.4 0 3.5-2.3 3.5-2.3l.4 2.3a26 26 0 01-.6 7.3c-.4 1.2-1.4 2.6 0 2.8 1.3.3 2.7-.2 3.5-.3 0 3.2-.7 5.3-2.6 7.8a4.4 4.4 0 00-.4.6 53.9 53.9 0 01-2.2-1l-14.6 17.1s5.3 6 5 19.6a20.6 20.6 0 01-1-.2c-1.2-.2-1.8-1-3-2.2-1.3-1.2-1.4-3-2.6-3.7-1.3-.8-4.8-.5-7.5-.6-2.8 0-6-1-6.6-3.8-.5-2.8.1-4 3.7-6.4 3.6-2.3 6.3-5 6.4-10 .2-5.1-3-8.5-9-15.3-5.9-6.8-8.6-13-9.4-14.6-.8-1.6-1.2-1-1.8.2l-1.5 3.3s-2-1.2-6.8-10a63 63 0 01-7-19.3c-.4-2.5-1.4-1.3-2-.6-4-11.2-3.8-25-4.9-35.7 0 0-3.9 3.8-6.2 11.3-2 6.8-2 14.9-1.3 22 .6 6.7 2 10.7 2.7 12.5 1 2.7-.5 1-.5 1s-3.4-5.8-5.7-17c-2.3-11.2-2-19-2-19s-1.4 1-3 4.2a44 44 0 00-2.6 21 77.4 77.4 0 007 27.5c2.2 4 .2 1.6-.6.5a71 71 0 01-6.7-12.8c-2-5.5-5.6-16.6-5.8-18.4-.3-1.7-1-.6-1.7.9s-2.3 6.5-2.2 10.2a51.2 51.2 0 0012.2 31.6c2.2 2.8.5 1.4-.5.6-1-.8 0 .1-4.5-4.7a91.7 91.7 0 01-11-18c-.9-1.7-1.6.1-1.7 1.1-.1 1-.7 6.5 2.7 15.8 3.5 9.4 12 16.7 16.5 19.7 4.5 3.1 1.3 1.6-1 .3a90 90 0 01-9.7-6.9c-2.9-2.4-7.9-8.6-9.3-9.7-1.4-1-1.7-1.4-1.7 3 .1 4.4 3.9 11.6 8.7 16.4 4.8 4.8 11 7 12.9 7.7 1.9.8.3.4-1.7-.1a40.2 40.2 0 01-9-3.6 93 93 0 01-10.7-7.6c-1.8-1.4-1.6.6-1 3 .5 2.4 1.9 6.9 8.8 12.5a57.7 57.7 0 0019.4 9.2c2.9.8.9.8.9.8l-6.8-1.4a71.3 71.3 0 01-16.7-7.3c-2.3-1.5-2.7-2-2.4 1a20 20 0 008.9 12.9 49.6 49.6 0 0017.2 4.8c2.5.1 1.8.4.7.5a50.5 50.5 0 01-19.2-3.2l-.5-2c-.2-1.2-.9-1-1.2-.8-.4.3-.7.5-2 1.1-1.3.7-1.3-.1-1.4-.5l-.3-3c0-.8-.5-.9-1.1-.6l-4.7 2c-1 .4 0 1.3.5 2.3a147.3 147.3 0 001.5 2.6l-3.7 1c-.8.2-.6.8-.3 1.4l1.9 4.6c.3.8 1.1.3 1.1.3l2.7-1.6 1 3.7s-1.3.3-2.7 1.2c-1.3 1-1 2.3.7 2.7 1.6.5 3.6 1.4 5.7 5.3 2.2 3.9 2.7 10.9 4 22 1.4 11 8.4 16.6 9.4 17.3 1 .7.4 1.3.4 1.3s-1 1.4-.5 3.5a5.3 5.3 0 003.2 3.8c1 .3.7 1.3.7 1.3s-.5 2.3 0 6.7c.5 4.3 4 9.1 5 10 1 .8 1 1.2 1 1.6-.2.3-.9 0-2 1a12.2 12.2 0 00-3.4 3.6c-.8 1.6-.5 2.5-.2 4.5.2 2.1 3.3 4 3.3 4s-.6.1-.7 1.7c-.1 1.5 1 3.2 2.4 4.4 1.3 1 4 1.6 4 1.6l.3 2.2c.2 1 1.9 1.9 3 2.5 1.1.6 3.3.3 4.2-.2.9-.4 1.5.1 2 1 .6 1 .4 4.4.4 5.8 0 1.4-.8 2.8-.4 3.5.5.7 1.8.2 3.2-.5 1.3-.8 1.6-.2 2.8.5a9 9 0 003.5 1.4c.5 0 .3-1.3.3-2.3s.2-3.4.7-3.8c.2-.2 2.3-.3 3.8-1 .7-.3 1.7-.6 1.7-1.3.1-.7-1-.7-3.2-1.9-2.3-1.1-2.7-1.8-4.2-2.8-1.4-1-.7-1.3-.7-1.8 0-.4.7-.9 1-1.4.2-.6 0-1.8 0-1.8l1.8-1.8 2-2.3c.8-.6 2-3.6 2.7-4.5.8-1 2.5-2 3.6-3.4a29.7 29.7 0 0111.3-7.6s-.1 2.6 1 3.9 2.6-1 7.5-4.5c5-3.5 8.6-4.7 8.6-4.7l2.4 3.3c1.3 1.6 2.5-.1 8.5-8.5 4.8-6.5 11-12.6 13.5-14.8l1.3.6-.4 1c-.5 1.8-1.4 3-2.6 5.3-1.1 2.4-3 3-5 6.2s-2.4 5.5-2.6 8.8c-.2 3.3 1.7 4 1.7 4s-3 3-4 5.2c-.9 2.2-1.3 6.7-1.3 6.7s-.5.2-1.6 2.5-3.1 2.6-6 5.5c-3 3-6.2 4.2-7.7 5-1.5 1-1 1.9-.7 3 .4 1.2 2.5 2.4 5 3.3 2.3.9 3.2.5 4.8.5 1.7-.1.4 1.2-.3 1.9s-1.6 3.1-1.5 5.8c.2 2.7 2.2 2 4.7 1.6a28 28 0 005.3-1.6l-.2.8c-.3.7-.4 1.3-.4 3.4 0 2.1.3 3.2 1 3.7.5.6 1.8-.6 2.7-.9.9-.2 2.4-1.1 4.6-1.6 2.2-.5 3-1.5 3-1.5s-.5.7-.6 2.2c-.2 1.6-.1 3.8.2 5.2a9.4 9.4 0 002.9 4.2c1.5 1.4 1.8.8 3-1 1-1.7 3.3-3.9 3.3-3.9l1.7 5.5c1.5 4.9 6.5 9 6.5 9s5-4.1 6.5-9l1.6-5.5s2.3 2.2 3.4 4c1.1 1.7 1.5 2.3 3 1a9.4 9.4 0 002.8-4.3c.3-1.4.4-3.6.3-5.2-.2-1.5-.7-2.2-.7-2.2s.8 1 3 1.5 3.8 1.4 4.7 1.6c.9.3 2.1 1.5 2.7 1 .6-.6 1-1.7 1-3.8 0-2.1-.1-2.7-.4-3.4l-.3-.8s2.9 1.2 5.4 1.6c2.5.5 4.5 1 4.6-1.6a10 10 0 00-1.4-5.8c-.7-.7-2-2-.4-2 1.7.1 2.5.5 5-.4 2.3-1 4.4-2.1 4.8-3.3.4-1.1.9-2-.7-3-1.5-.8-4.7-2-7.6-5-3-2.9-5-3.2-6-5.5-1.1-2.3-1.6-2.5-1.6-2.5s-.5-4.5-1.4-6.7c-1-2.2-4-5.2-4-5.2s2-.7 1.7-4c-.2-3.3-.5-5.5-2.5-8.8-2.1-3.2-4-3.8-5-6.2-1.3-2.4-2.2-3.5-2.7-5.2l-.4-1a146 146 0 011.8-.8c2.4 2.2 8.7 8.2 13.5 14.8 6 8.4 7.2 10.1 8.5 8.4l2.4-3.2s3.7 1.2 8.6 4.7c5 3.5 6.4 5.7 7.5 4.4.6-.6.8-1.7.8-2.6a104 104 0 0111.8 4.2c4.3 1.8 4.7 2.8 8.1 5.4 3.4 2.7 8.2 2.5 12.8 1a304 304 0 0021.6-7.5c4.9-2 8.4-4 9-4.9.4-1 1-3.7 1-4.7s-1-2.4-1.4-2.7c-.4-.2-.2-1-.1-1.6 0-.6-.3-2.5-1-3.3-.8-.8-.7-1.1-.6-3.5.2-5-3.4-11.4-8.4-13.4 0 0-.2-.6-.6-1l-1-.6v-3.5c0-.6.2-.5.6-.4.3.2.9.9 1.7 1.1.8.2 1.3-.4 1.5-1.3.2-1 .8-2.8 1.2-3.7.3-1-.1-1-.5-1.2l-2.2-.4c-.6-.1-.6-.2-.4-.5l1-2c.8-1 .1-1.1-.6-1.4a58.4 58.4 0 00-4.9-1.3c-.9-.2-1 .6-1 1v2.6c0 .6-.5.4-.9.3a12.6 12.6 0 01-1.7-1.2c-.7-.4-1 0-1.3.7l-1.3 4.3c-.2.9-.1 1.5.2 1.6.3.2 2 0 3 0 .9 0 .3.6.3.6l-1.3 2.3c-.4.7-1 .8-1.8.8h-2s-5.3.2-9.2 3-5 5.3-5.6 6.7c-.6 1.4-1.3 1.1-1.9 1.6-.6.5-2.3 2.3-2.3 3.4s.4 1.7-1.3 2.8c-1.7 1.1-3 5.9-.8 8.3 2.3 2.5 3.2 5 4 6.2.6 1.2 0 1.7-.7 1.7s-1.8-1-2.9-1.8l-8.5-6.5c-2.3-1.7-.6-1.5-.6-1.5s.6 0 1.9-.5c1.3-.6 1.5-1.3.2-1.7a16.7 16.7 0 01-4.6-2.6c-.7-.7-1-1.4.3-2.1 1.3-.7 4.2-2.6 2-3.2-2.4-.7-5-1.1-7.3-1.8-2.2-.6-2.4-1.2-2.4-1.2l1.5-2.1s1.1-1.7-.2-1.9c-1.4-.2-4.8-.6-7.8-2a18.8 18.8 0 01-11.3-12.5v-.1c1.2 2.2 3.8 6.4 7.8 6.5 5.5.2 6.1-1.5 4.9-3.3-1.3-1.8-2.7-3.4-3-4-.4-.5-.5-1.2 1 .2 1.4 1.3 4 5.9 12.3 5.4 8.2-.6 8.2-2.2 8.2-2.6 0-1.6-1.7-1.9-2.7-2.9-.5-.5-.8-1.2.9-.6s5.7 1.4 11.3.2c2.1-.5 8-3 8.5-6 0 0-3.7-.2-6.3-1.3-2.5-1-4-2-1.3-1.4 2.7.5 8 1.6 12.7 0 2.7-.9 6.2-3 6.2-7.1 0 0-5-1-6.9-1.8-1.9-.6-2.5-1.2-2.5-1.2s7.3 2.3 13.8-1c6.6-3.3 6.9-7.9 6.9-9 0-1-.2-1.3-.2-1.3s-6 1.4-10.4 1.4c-4.5 0-5.9-.4-5.9-.4s12.5-.4 18.8-4.2c6.3-3.9 6.7-11.5 6.7-11.5s-7.1 2.6-11.6 3.1-7.2.5-8.3.4c-1.1 0-1.8-.4.7-.5a49 49 0 0017.2-4.8c5.3-3.1 8.6-9.7 8.9-12.8.3-3.1 0-2.6-2.4-1-2.3 1.4-11 5.9-16.7 7.2l-6.8 1.4s-2.2-.1.7-.9zm-225.2 14.4l-2.5 1.4-1.3-2.7c-.2-.6-.1-.8.2-.8l2.3-.4h.3c.3.7.6 1.6 1.1 2.4h-.1zm76.8 45a20.1 20.1 0 01-8.8 7c-3 1.4-6.3 1.8-7.7 2-1.4.2-.2 2-.2 2l1.4 2s-.2.6-2.4 1.3c-2.2.6-5 1-7.2 1.7-2.3.6.6 2.5 2 3.2 1.2.7 1 1.5.2 2.1-.7.7-3.2 2.2-4.6 2.6-1.3.4-1 1.1.2 1.7 1.4.5 5 1.2 5 1.2l-2.3 1.8a18.9 18.9 0 01-8.7 3c-2.5.1-6.6.3-11.7 0l-5.8-.3-.5-4.3a21.5 21.5 0 00-3-7.8l-3.7-5 .2-1.5c.2-.8 0-1.7-.5-3.3-.6-1.5-3.6-3.8-3.6-3.8l-.2-3.2c0-1.6-1-7.7-2-10.6-1-2.9-5.7-10.5-7.8-14a39.2 39.2 0 01-4.3-19.8l.5-1.3a12.9 12.9 0 003.5 3.2c6.3 3.8 18.8 4.2 18.8 4.2s-1.4.4-5.9.4-10.4-1.4-10.4-1.4-.2.3-.2 1.4c0 1 .3 5.6 6.9 9 6.5 3.2 13.8 1 13.8 1s-.6.5-2.5 1.1c-1.8.7-7 1.8-7 1.8 0 4 3.6 6.2 6.3 7.2 4.7 1.5 10 .4 12.7-.1 2.8-.6 1.2.3-1.3 1.4-2.6 1.1-6.3 1.3-6.3 1.3.6 3 6.4 5.5 8.6 6 5.5 1.2 9.6.4 11.2-.2 1.7-.6 1.4.1.9.6-1 1-2.7 1.3-2.7 2.9 0 .4 0 2 8.2 2.6 8.2.5 11-4 12.4-5.4 1.4-1.4 1.3-.7 1-.1-.4.5-1.8 2.1-3 4-1.3 1.7-.7 3.4 4.8 3.2 4 0 6.6-4.4 7.8-6.6v.1l.3.3a51.7 51.7 0 01-2.4 5.3zm66.4-178.2l-1.1-2s3 1.4 5 3.5c1.8 2 1.7 3.2 2 4.2.3 1 0 2.9-.3 4.7-.3 1.7-.3 2.8.1 3.4.3.7.7 1 .7 1l-2.7.8c-1.3.6-3 1-4 .2-.9-.8-1.1-1.3-.5-1.8.6-.5 2.8-1.2 3-5 .3-3.7-1.5-7.6-2.2-9zm-17 10.3c.8-1.8 1-3.5.5-7.2-.4-3.1-1-5.7-1.2-9 0 0 2.3.4 5.6 3.4s4 6.1 4 7.6-.7 3.4-.9 4.8c0 1.5.4 2.8.4 2.8s-1.1.5-2.2 1.3c-1.1.7-1.9 1.2-3.5 1-1.7 0-2.7-.7-3.7-1.2l-1.5-.6s1.9-1.1 2.6-3zm-16-12.8a14 14 0 015.6-3.5c-.1 3.4-.7 6-1.2 9-.5 3.8-.3 5.5.5 7.3.7 1.8 2.6 2.9 2.6 2.9s-.6 0-1.6.6c-1 .5-2 1.2-3.6 1.3-1.7 0-2.4-.4-3.5-1.1a14 14 0 00-2.3-1.3s.5-1.3.4-2.7c-.1-1.5-1-3.3-1-4.8.1-1.6.8-4.6 4.1-7.7zm-11.8 18.3c-1 .8-2.7.4-4-.2l-2.6-.8s.3-.3.6-1c.4-.6.4-1.7.1-3.4-.3-1.8-.5-3.7-.3-4.7.3-1 .3-2.2 2.1-4.2 1.9-2.1 5-3.6 5-3.6l-1.2 2.1c-.7 1.4-2.5 5.3-2.2 9 .3 3.8 2.5 4.5 3 5 .6.5.4 1-.6 1.8zm43.8 31.7c-3.2 1.7-5 1.3-5 2.7.2 1.3 3.1 2.3 3.1 2.3s-3 3.2-5.3 4.6c-2.3 1.5-5 2.4-5 2.4s-1 .2-.4 1.6a5.4 5.4 0 002.2 2.9l1.1.5s-4 4.3-5.8 5.7a15.3 15.3 0 01-4.3 2.5c-1.4.6-.7 3-.4 4 .4 1 1.6 2.5 2.4 2.7.7.2 1 .8 0 2.2-.7 1.1-3 4-4 5.6h-.1l-4.2-5.6c-.9-1.4-.6-2 0-2.2.8-.2 2-1.6 2.4-2.7.3-1 1-3.4-.4-4a15.2 15.2 0 01-4.2-2.5 80.2 80.2 0 01-5.8-5.7l1-.5a5.4 5.4 0 002.3-2.9c.5-1.4-.4-1.6-.4-1.6s-2.7-1-5-2.4c-2.4-1.4-5.4-4.6-5.4-4.6s3-1 3-2.3c.2-1.4-1.6-1-4.9-2.7-3.2-1.8-4.3-4.1-4.3-4.1s3.8-1.3 5.7-5a7 7 0 00.7-3.6h.1c6 2 13.1 2.8 19.4 2.8a63 63 0 0019.3-2.8h.2a7 7 0 00.7 3.6c1.9 3.7 5.6 5 5.6 5s-1 2.3-4.3 4z"/>
+  <path fill="#d4af3a" d="M361.2 237.8c0-10.2 4.7-16.7 4.7-16.7l-12.7-14.6c-12.2 4.7-23.3 5-33.2 0-9.9 5-21 4.7-33.1 0L274 221.1s4.7 6.5 4.7 16.6-2 17.8-3.1 22.7c-1.2 5-2.1 14.1.5 20.7a26.3 26.3 0 0016.7 17c11.3 4.8 17.3 7.3 21.2 10.6 4 3.2 5.9 5.9 5.9 5.9s2-2.7 6-6c3.9-3.2 9.8-5.7 21-10.4a26.4 26.4 0 0016.8-17.1c2.7-6.6 1.7-15.8.5-20.7-1.1-5-3-12.5-3-22.6z"/>
+  <path fill="#b96b29" d="M357.2 242c-1.6-9.8 4-18.3 4-18.3l-10.9-12.8c-8.4 4.7-20.1 4.1-30.3-.6-10.1 4.7-21.8 5.3-30.2.6l-11 12.8s5.7 8.5 4 18.3c-1.5 9.7-5 25-4.1 31.3.9 6.3 5.3 13.6 9.8 17.4a58 58 0 0016.2 8.7 46.7 46.7 0 0115.3 10s1.5-1.5 3.7-3.2c2.3-1.7 7-5 11.7-6.8a59 59 0 0016.1-8.7c4.6-3.8 9-11.1 9.9-17.4.8-6.3-2.6-21.7-4.2-31.4z"/>
+  <path fill="#1d5e91" d="M356.1 243.1a32.5 32.5 0 013.2-19l-9.8-11c-8.4 4.4-18.5 3.3-29.5-.6-11 3.9-21.1 5-29.4.7l-9.9 11s4.7 8.4 3.2 18.9-4 22.4-3.6 29.4l.2 1.4h9s.5-.6 1.5-1 1.3-.7 1.3-.7.2-1.8 1.2-2.2c1.1-.4 1.6-.4 2-.4.5 0 .8-.1 1.3-.6.5-.6 2-1.8 2.6-3.6.6-1.9 1-2.6 1-3.8 0-1.2.4-3 .4-3s-.2-.6-1.1-.3c-1 .3-1-.6-1.2-1.5 0-.9 0-2.7.5-3.6l.7-1.1-.4-1.5s-5.7 1.2-6.7-3.3-1.1-6.5-1.3-7c-.1-.5-.3-.7-1-.7-.8 0-2.4-.4-3.6-2.7-1-2.3-1.2-3.3-.8-4.2.3-.9.9-.5 1-.3.3.3 1.8 2.5 2.4 1.9.6-.6.3-.6-.6-2.3-.8-1.8-.5-2.3-.4-3.2l-.3-2.5c0-.4.5-.8 1-.6.6.3 1 .6 1.3 1 .2.2.3.6.8.4.5-.3.2-1.9.2-2.4 0-.6.6-1 1.3-.5a2.2 2.2 0 011.2 1.8c0 .6 0 1.1.3 1.1s.6-.9.7-1.4c0-.6.4-1.5.9-.7.5.7.7 1.7.5 2.8-.2 1.1.2.5-.2 2.4-.4 2-.6 2.8-.5 4.2 0 1.5 0 2.3.8 4 .7 1.8 1.3 3.8 2.6 3.9h1.7s1.5-2.8 2.6-3.5c1.2-.6 2.8-.7 4-.9 1-.1 1.5-.5 1.5-.8 0-.2-.3-.3-1.7-.5s-2.5-.5-2.6-1.6c0-1 .3-2-.6-2-1 0-3.2-.8-4-2.2-.8-1.5-.6-1.8-.5-2.7 0-.8 1.1-2.4 1.8-.9.7 1.6 1.1 1.8 1.7 2 .5.4 1.3.5 1-.5-.5-1-.7-1.7-.6-2.5 0-.8.6-1.1 1.2-1.2l3.4-1 1-.2s.1-.7 1.4-1a9 9 0 013-.5c.8 0 1.5.1 2.7-.4a5.7 5.7 0 012.9-.7 3.7 3.7 0 011.9.8c.5.3.4.9.4 1.4 0 .5 0 .8.8.8.9 0 1.6 0 2.3.3.8.3 1.8.7 1.2 1.5-.7.8-.7 1.7-1.2 1.7-.4 0-.4.4-.5.7-.2.3-.4.5.1.8.5.3.5.6 1.2 1.2.6.6 1.6 1.3.6 2.3-1 1-2.7 1.8-2.7 1.8s-1 .5.1 1.1c1.2.7 1.7 2 2.1 2.3l1.2.8c.3.1.2 1 .2 1l-1.5.8c-.8.4-1.7.8-2.5.8s-1.3 0-1 .7c.4.8 1 1.6 1.1 2l.3 1.2s1.4.3 2.6.3l4.3-.2c2.6-.3 3.4-.4 5.9-.1 2.5.2 2.9.2 3.5.4l1.4.6s3.5 0 5.5-.5c2-.4 2.4-1.7 2.1-2.4-.3-.6-.2-1.6-3.6-2-3.5-.6-4.8-.4-7.5-.9-2.8-.5-7-1.9-7.7-5.3-.8-3.4 2-4.8 3.3-5.5l5.8-2.3c1.4-.5 3.9-1 6.5-.7 2.7.4 4.2 1 5.3.5 1-.7 1.9-.2 1.7.8-.2 1-1.3 2.9-4.3 3.8-3 .9-6.6 1-8.5.5-2-.6-3.4-1.3-4.6-.9-1.2.4-2.5 1.9-1.3 3.7 1.3 1.7 7.9 2.3 9.6 2.4 1.8.2 8.3-.2 10.2 3 1.8 3.2.3 6.9-1.8 7.7a29 29 0 01-5.7 1.5l-1.7.3s.8 1.7.8 2.4-.1 2 .7 2.6c.8.5 2 .9 3.3.7 1.4-.1 3 .8 3.1 2 .1 1.3.5 3 .6 5.5.2 2.5 0 4.5 0 4.5s0 1-.4 1.9c-.3 1-2 4.4-2 4.4h9.5l.2-1.4c.4-7.1-2-19-3.6-29.5z"/>
+  <path fill="#6d8c3e" d="M281.6 278.6a27.4 27.4 0 0011.6 14.3c8.2 5 11.8 4.3 19.5 9.3 7.7 5 7.2 5.8 7.3 5.8.1 0-.4-.8 7.3-5.8s11.3-4.4 19.5-9.3a27.4 27.4 0 0011.6-14.3h-76.7z"/>
+  <path fill="#d4af3a" d="M288.3 237.2c.9 1 1.5 1.2 2.9 1 1.3 0 1.7.9 1.9 2 .2 1 .2 3.5 1.2 5.8s4.2 2.5 4.2 2.5c0-1.1.5-2.6 1-3.9 0-.2.5-1.2-.7-1.2s-1.1-.5-1.8-1.6c-.7-1-2-4-2.4-6a16 16 0 01.6-5.7c.4-1 .4-1.7 0-1.9h-1s.2 1-.1 1c-.3.2-.6-.4-.8-1-.3-.7-.5-.6-1-.6s-.5.5-.1 1c.3.4.1 1.3.1 1.3l-1.4-1c-.5-.2-1.4.2-1.5.8-.1.5.3 2 1.2 2.7s1 2.2.6 3c-.2.6-1.5.5-1.8.2a.8.8 0 00-1.2 0c-.4.5-.8.7.1 1.6zm-.5-2.5l-.7-.6a35.1 35.1 0 01-.5-.7l-.1.7c0 .5.6 1.2.6 1.2l.7-.6zm2-6.4c.4-.1.7-.2.4-.7-.4-.5-.6-1-1-1-.3-.2-.6-.1-.6-.1l.5 1.3c0 .5.2.7.6.5zm2.4-2c0 .5 0 .7.4.5.4-.2.5-.7.3-1a2 2 0 00-.6-.7l-.3-.2s.2 1 .1 1.5zm3.4.6l-.1-1s0 .6-.3 1c-.2.3-.1.2 0 .5.3.2.4 0 .4-.5zm5.4 23.5c.7 1.6 2.4-.9 4-2.9s1.5-.4 1.3 1.2a7.6 7.6 0 001 4.5c.7 1 1.2.4 1.5-.4.2-.7.5-2.4 1-3.2.5-.7 1 0 1 .6.1.7 1 2.2 1.7 3.1.8 1 1.2-.3 1.5-1.4l.7-3.5c.2-.6 1 0 1 0l1.6 1.5c1 1 1.1-.6 1.2-1.4.1-.8-.1-2.5.2-2.8.3-.3 1.2.4 2.5 1 1.4.7 1.3-.6 1.2-1.3a7.4 7.4 0 00-2-3.4c-1.2-1-1.3-2-1-2.5.4-.5 1.7 0 2.6-.1l1.8-.3c.7-.2.7-.8.7-.8s-.5-.8-1.4-1.6c-.9-.8-1.4-1.4-2.5-1.6-1.1-.3-2.6 0-2.6 0l-.2-.4c-.1-.3-.4-.3-.6 0l-1.2 1.1c-.4.4-.7.6-1 .5-.2-.2.3-.6.3-.6s.5-.4 1-1.4c.6-1 .7-2 .3-2.6-.4-.4-1.5 0-2.2 0-.6 0-1 .2-1-.2 0-.3.6-.1 1.4-.2.8-.1 1.3-1 1.5-1.9s.5-.6 1-.2c.4.5.9.4 1 0l1-1.8c.5-.8.8-1.9.3-2.6-.6-.8-2-.7-2.6-.2-.6.5-1 1-1.1 2.1-.2 1.2-.5.5-.5.2 0-.4-.4-1-.2-1.5.2-.4 0-1 0-1s-.1-1-1.2-1.1a8.6 8.6 0 00-3.5.3c-1 .2-.9 1.2-.9 1.2l-1.7.1c-.9.1-2 .5-2.8.7-.8.2-1.1.3-1.1.7l.1 1.1s.7 0 1 .3.2.5-.2.7c-.4.2-.6.2-.6.7s.2.7.7.7c.4 0 1.3 0 2.3.4s1.3 1.4 1.2 2c0 .5-1.5 1.2-2.3 1.2s-1 .1-1 .6 1 .4 1 .4l2.6.3c1.7.2 2 .6 2.8 1.2.7.7.2.9-.2 1-.4.3-1 .8-1.5 1-.6.2-1 .6-1.5.7-.5.1-1.8 0-4.2 1-2.4 1-3.3 4.1-3.3 4.1l1.4-.7c1.1-.5 2.5-1.2 3.8-2 1.2-.7 1.2.4.6 1.5s.6.9 1 .6l2-1.3c1.2-.6.8.4.8.4s-.4.7-.5 2.5c-.1 1.7 1.7 0 2.5-1 .9-1.1 1.2 0 .6 1.2-.6 1.3-1.8 2.3-2.5 2.3s-1.2-.8-1.3-1.2c0-.4.3-1.7-.1-2-.5-.3-1.7 0-2.6.6-.9.5-1 .1-1.3-.4-.2-.4.3-.6.1-1-.2-.2-.6 0-1 .2l-2.8 1.5c-1.7.9-1.6 1.3-1.6 2.5s.3 1.5 1 3z"/>
+  <path fill="#d4af3a" d="M316.7 224.2l1-.5 1.5-.3c.7 0 .6-.5.4-.8-.1-.4-.4-.5-1.4-.5-.9 0-1.5.5-2 .7l-1.1.4.4.6c.4.5.9.6 1.2.4zm3.8 3.7l.8-.2 1.3-.6c.6-.2.8-.3 1.2-1 .4-.8-.4-.8-1.5-1-1-.3-1.6 0-1.7.5-.1.4 0 .8-.5 1.6s0 .7.4.7zm-.3 1c-1 0-2.3 1.5-2.7 1.8-.4.3-.2.6-.2.6l.4 1.2c.2.7.2 1.7.2 1.7h.8c.6 0 1-.2 1.6-.7a4 4 0 011.8-.7c.9-.2 1.3-.3 2.2-.8 1-.5-.5-1.4-1.5-2.2a3.7 3.7 0 00-2.6-1zm-14 3.6c.8-.1 1.2-.5 1.2-1s-.4-1-1.5-.9c-2.6.3-5.1-.7-5.6-3.2 0 0-.8 1.6.8 3.4 1.6 1.8 4.3 1.8 5.1 1.7zm-8.9 41l.5.4h4c.7-.2.7-.8.7-1.2 0-.5.4-2 1-4.7.5-2.6 1.5-4.5 1.9-5.6.4-1-.4-1.4-.7-2l-.8-2.5c-.1-.6-1-.5-1.6-.5-.5 0-.6.9-.7 1.7 0 .8-.4 3.1-.8 5.1-.4 2-2.7 4.7-3.3 5.3-.6.6-1.2.8-1.6.8-.4 0-1.4 0-1.8.3a2.4 2.4 0 00-1 1.6c0 .6.9 1 .9 1l1-.8c.3-.4 1-.5 1.5-.6.7-.1.7.1.5.4-.2.3-.1.4.3 1.2zm-6-.2c-.4 0-.6.4-.7.6h2.6a1.4 1.4 0 00-.3-.7c-.3-.3-1.1-.1-1.7 0z"/>
+  <path fill="#d4af3a" d="M294.8 273.2a3 3 0 00-1 .7h2.9c0-.2.1-.6-.2-.9-.7-.5-1.3 0-1.7.2zM319 272c-.3 0-.6.3-1 .6-.5.3-.6.8-.7 1.2a.3.3 0 000 .1h1.3a.2.2 0 000-.1c0-.4.2-.7.7-1.1.5-.5 0-.7-.3-.7zm2.3 1.3c0-.4-.1-.7-.4-.7-.2 0-.7.5-1 .8a2.4 2.4 0 00-.5.5h1.7l.2-.6z"/>
+  <path fill="#d4af3a" d="M332.3 260.4c.8-.6.7-.8.7-1.5 0-.6 0-.8-.3-1a5.9 5.9 0 00-2.8-.8c-1.1 0-3.4.3-4.2.8-.9.6-1.3 2.7-1.3 3.8 0 1 .2 1.2.5 1.2s.8-.8.8-.8l1.8 2.5c.7 1 .4 1.4 0 2.2-.2.8-1.4 2.9-2.2 3.3-1 .5-1.6 0-2.6-.1-1.1-.2-1.7.1-2.3.7s0 1.1.4 1.1c.3 0 .8 0 1.2.5.3.3.1 1.2 0 1.6h5.2c.9-.4 1.5-1.6 1.7-2.3.3-.7 1.4-1.7 2-2.2.5-.5.5-.8.5-2s-.2-1.7-.6-2.5c-.5-.8-.8-2-.6-2.6 0-.7 1.2-1.4 2-2z"/>
+  <path fill="#d4af3a" d="M323.7 247.4c.6.9.3 1-.4 1.2a8.5 8.5 0 01-2.8.2c-1.1-.1-1.1 0-1.1.6a5 5 0 01-.8 2.7c-.7 1-1.6.6-2 .2-.6-.3-.9-.2-1 .4l-1.2 2.1c-.5 1-.9 1-1.3.9-.4-.1-.7-.7-1.1-.7-.4 0-1-.8-1.6-1.8-.6-.9-.9.1-1.3 1-.4.8-.7 1.3-1.5 1.2-.7 0-1.6-1.5-2-2.3-.4-.8-.7-1.6-1.3-1.6-.7 0-1.7 1.4-2.4 1.7-.7.4-1 .3-1.3-.2-.3-.4-.7.2-1.1 1.2-.4 1.1 0 2 .6 2.3.6.3 1.7-.5 2.5-1 .8-.6 1.1-.5 2-.5.8 0 .7 1.4 1 3.3.4 2 1.5 2.2 1.5 2.2s.4.3 1.3-1.1c.9-1.5 1-3 1.8-3 .9 0 1 .2 1.8 1.4.8 1.1 1.5 2 2 1.1.5-.8.9-2.1 1.5-2.6.5-.4 1-.6.4.3-.5.8-.8 1.7.4 1.4 1.2-.4 5.7-2.2 7.6-2.6l4.7-.5 4-.3c1 0 1 0 1.1-.7 0-.7-.5-.5-2.3-.5-1.8 0-3 .2-4.3.4-1.3.2-1.8.2-1.6-.2.2-.3.6-.5 2-.7a58 58 0 016-.5c1.6 0 1 .5 1 1.5-.2 1 0 2.6.2 3.5 0 1 .1 1.3 1 2.7s3.7 2.2 4.5 2.6c.9.5.7 0 .7-.8s.7-.8 1.4-.3c.7.4 2 .7 2.9 1 .8.2 1 .4 1 .8 0 .5 0 1.5.2 2.4 0 1 0 1.2-.4 1.8l-2 2.3s-.8 0-2.3.4c-1.6.3-2.1 1.1-2.3 1.7-.1.7.3.9.4 1.1v.8h.4c0-.2.3-.5.5-.8.6-.7 2-.9 2.9-.5.6.3.6 1 .5 1.3h3.6l2-3.9a6 6 0 00.6-2.6c0-1.2.2-5.8 0-6-.3-.3 0-1.1 0-2.4-.1-1.3 0-2.3-2.4-2.5-2.4-.2-3.2-1.2-4-2-.8-.8-.6-2.7-1.2-5-.7-2.2-2.3-2.6-5-3.1a23.3 23.3 0 00-7-.5c-2.2.2-4.8.5-6.2.4-1.5-.2-1.2.2-.7 1z"/>
+  <path fill="#d4af3a" d="M337.3 273.4l-.5.5h2.4a1 1 0 00-.2-.7c-.4-.4-1-.2-1.7.2zm4.4-.2a2.2 2.2 0 00-.8.7h2.5a1 1 0 000-.3c-.1-.4-.9-.8-1.7-.4zm-61 1.6a24.1 24.1 0 00.5 2.3h77.6l.6-2.3h-78.8zm52.3-37.1c2.4 1.6 10.2 1.7 13.9 2.4 3.6.8 3.4 3.6 2.3 5-1.2 1.5-6.3 1.7-7.2 1.8.5.3 1.2 1.4 1.2 1.4l2.1-.2a11 11 0 006.1-2c1.9-1.6 1.8-4 .1-5.8-1.6-1.6-4.3-1.8-7-2.1-2.8-.3-5-.5-8-1-3.2-.6-4.7-1.8-4.7-3.6s1.7-2.8 2.9-3.1c1.2-.4 3.1-.9 4.9-.2 1.7.6 3.7.7 7.1.3 3.4-.5 4.2-2.8 4.2-2.8s-.4.2-2.2.2c-1.7 0-3-.7-6-.7-3.2 0-4.3 1-5.8 1.6-1.5.5-5.4.9-6.5 3.4-1.2 2.5.1 3.7 2.6 5.4z"/>
+  <ellipse cx="312.6" cy="226" fill="#b96b29" rx="1.5" ry="1.4"/>
+  <path fill="#b96b29" d="M344 228.4c-2-.2-4.5.4-4.5.4s.5.4 1.2.3c.6 0 1.8 0 3.7.3 1.9.3 3.2-.6 3.2-.6l-3.6-.4z"/>
+  <path fill="#1d5e91" d="M325.6 264.6c-.5-.8-.6-.7-1.2-.2-.5.4-1-1.2-1.1-2.2l.4-4.1s-2.6.5-4 1l-4 .9c-1.1.2-1.8.5-2.4.4-.6-.2-1.9-.2-2.9-.2s-1 .2-2 1.2-1.3 1.5-2 3.4a20 20 0 00-1.4 6 15.6 15.6 0 01-.7 3.1h12.2l.5-1.2a3 3 0 011.4-1.4c.5-.2 1-.2 1.2-.8.2-.5.8-1 1.4-1.2.7-.3 1.8-.2 2.8.1 1 .3 1.4-.4 1.7-.8.3-.4.4-1 1-1.6.5-.7 0-1.3 0-1.3l-1-1.1zm19.5.3c-.1-.7 0-.8-.5-.9-.4 0-1.1-.2-1.7-.5-.6-.2-.5 1.4-.5 1.4s-1.5.2-3.1 0-3.5-1.7-4.2-2.2a5.5 5.5 0 01-1.4-1.5l-1 .7c-.5.3-.8 1.3-1 2.4 0 1 1.3 2.2 1.4 3.2 0 1-1.2 3.1-1.8 4a9 9 0 00-1.2 2.4h5.9a3 3 0 01.6-1c.6-.6 1.6-.7 1.6-.7l.2-.8c.2-.5.9-1.2 2.3-1.8 1.5-.5 3.3-.6 3.3-.6s.7-.6 1.2-1.4c.5-.8 0-2 0-2.7z"/>
+  <path fill="#d4af3a" d="M296.2 329.6c1.1.4 3.2-.4 4.2-1.6 1-1.3 1.4-3.2 2.1-4.3l1.3-1.9s-.2 1.8-1.2 4.3a15.5 15.5 0 00-.8 6.8c.4 2.7 2.2 3.1 3.2 2.7.8-.2 2-1.4 3-3.2l1-2c.6-1.3 1.2-3.5 1.5-3.4.7.1.3 1.6 0 2.6-.5 2-1.5 5-1.6 7 0 1.7.2 5 2 5.2 1.8.1 2.8-1.5 3.8-5.2s1.2-5 1.7-5c.4 0 .4 2.6.4 3.7a18.2 18.2 0 001.6 7.4c.9.8 1.6.7 1.6.7s.7.1 1.6-.7c.9-.8 1.6-6.3 1.6-7.4 0-1 0-3.6.5-3.6s.6 1.2 1.6 4.9 2 5.3 3.8 5.2c1.9-.2 2-3.5 2-5.3 0-1.8-1.1-4.8-1.6-6.9-.5-2 .2-1.9 1.6.8l1.3 2.5c1 1.6 2 2.5 2.6 2.7 1 .4 2.8 0 3.2-2.7.5-2.7-1.6-10.5-1.6-10.5l1 1.3c.7 1.1 1 3 2 4.3 1 1.2 3.1 2 4.2 1.7 1-.4 1.2-2.4.4-6.1s-4-5.7-6.4-8.6a31.6 31.6 0 01-4-8.2 27 27 0 00-7.9 5.6l-5.9 6.3s-1-1.3-5.8-6.3a27 27 0 00-8-5.6c-.2.6-2.2 5.2-4.4 7.9-1 1.3-2.5 2.3-3.6 3.6a12.4 12.4 0 00-2.4 5.3c-.8 3.6-.6 5.7.5 6z"/>
+  <path fill="#d4af3a" d="M296 342c1.5-1.2 2.2-2 2.2-2s1-.8.8.9c-.3 1.6-.8 5-.5 6.4.4 1.4.5 2.7 2.3 1.6 1.8-1 2.3-1.7 3.1-2.6.9-.9 1.8-1.3 1.6.1-.3 1.4-.9 3.6-.6 6.4.3 3 1.7 3.3 3.6.9a32.3 32.3 0 003.5-5.9c.5-1.2 1.6-2.2 1.6 0 0 4.8 1.1 11.8 6.4 13.6 5.3-1.8 6.4-8.8 6.4-13.6 0-2.2 1.1-1.2 1.7 0a32.4 32.4 0 003.5 5.9c1.8 2.4 3.2 2 3.5-.9.3-2.8-.3-5-.5-6.4-.2-1.4.6-1 1.5-.1s1.3 1.5 3 2.6c1.9 1 2-.2 2.4-1.6.3-1.5-.2-4.8-.5-6.4-.2-1.7.8-.8.8-.8l2.1 2a6 6 0 003.4 1.2s.9-5-1.2-8c-2-3-2.9-4-2.9-4s-1.1 0-2-.4c-1-.3-1.8-1-1.8-1v2.8l3.1 3.1c.6.8 1.8 2 0 .8a50.5 50.5 0 01-3.1-2.4s-.4 2.5-1.1 3.2c-.7.6-1.8.7-2.2.5l-.4-.1-.2 1s1.6 3 1.8 4.1c.3 1.2 0 1-.8-.5-.7-1.5-2.2-3.5-2.8-4.5-.6-1.1-1.6-1.8-1.5-.5.1 1.4-.5 3.9-1 4.8-.4.9-.7 1.2-.7 1.2l1.1 4c.1.7 0 1.5-.5.6-.6-.8-2.1-4.2-2.1-4.2s-2.1 0-2.7-.7c-.6-.6-1.6-2.9-1.6-2.9s-.8 3-1.5 4c-.7.9-2.4 1.8-2.4 1.8l-.2 6c-.2 1-.2 1.3-.6 1.3s-.4-.4-.5-1.3l-.3-6s-1.6-1-2.3-1.9c-.7-1-1.6-3.9-1.6-3.9s-1 2.3-1.5 3c-.6.5-2.7.6-2.7.6s-1.6 3.4-2.2 4.2c-.5.9-.6.1-.5-.5l1.1-4.1s-.3-.3-.7-1.2c-.5-1-1-3.4-1-4.8.1-1.3-.8-.6-1.5.5s-2 3-2.8 4.5-1 1.7-.8.5c.2-1.2 1.8-4.1 1.8-4.1l-.1-1-.5.1c-.4.2-1.4.1-2.2-.5-.7-.6-1-3.2-1-3.2l-3.2 2.4c-1.8 1.2-.6 0 0-.8l3.2-3.1v-2.8s-1 .7-1.8 1c-1 .4-2.1.4-2.1.4l-2.9 4c-2 3-1.2 8-1.2 8s2 0 3.4-1.3zm25.8 33.5L320 373s-.4.8-1.8 2.4a43 43 0 01-4.5 4s.3 4.2 1.8 6.5c1.3 1.9 2.5 3.6 4.5 5 2-1.4 3.3-3.1 4.5-5 1.6-2.3 1.9-6.5 1.9-6.5s-3.2-2.4-4.6-4z"/>
+  <path fill="#b96b29" d="M319.4 380.6c0 1 0 3.4.6 3.4s.5-2.4.6-3.4l.2-3.3h-1.6s0 2.3.2 3.3z"/>
+  <path fill="#d4af3a" d="M320 151.3c-5.7.1-12.3-.7-16-2l-3.8.8a52 52 0 0019.8 3.3c8.8-.1 13.8-1 19.8-3.3l-4-.8a50.7 50.7 0 01-15.8 2zm20.5-4.7c-.4-.4-3-2.2-3.7-2.5-.6-.4-.1-1.3 0-1.6.1-.4 3-1.2 4.6-1.7 1.6-.4 1.4-.7 1.4-.7s-1-1.1-6.8-1.7c-5.8-.7-16-.5-16-.5s-10.2-.2-16 .5c-5.8.6-6.8 1.7-6.8 1.7s-.2.3 1.4.7a19 19 0 014.6 1.6c.1.4.6 1.3 0 1.6a45 45 0 00-3.7 2.6c-.5.4-.5 1 .2 1s.7 0 2.7-.4a94.4 94.4 0 0135.2 0c2 .4 2 .4 2.7.4.7 0 .7-.6.2-1z"/>
+  <path fill="#d4af3a" d="M333.9 149c-4-.4-6.5-1-13.9-.9-7.4.1-10 .5-13.9 1 2.5 1 6.6 1.5 13.9 1.5s11.4-.5 13.9-1.5zm-15-57.5l-.1 2.8 3-.2-.3-2.7 3.3.5.1-2.6-3.4.3.6-2.9h-3.8l.7 2.9-3.3-.3v2.6zm6.5 7.1h-4v-3.4a6 6 0 00-1.3-.2l-1 .1v3.5h-4.3a4.6 4.6 0 00-.2 2h11v-.6a5.4 5.4 0 00-.2-1.4z"/>
+  <path fill="#1d5e91" d="M320.1 105a5.5 5.5 0 005.2-3.4H315a5.5 5.5 0 005.2 3.5zm2.3-9.5v2.4h2.7a5.3 5.3 0 00-2.7-2.4zm-4.5 0a5.3 5.3 0 00-2.8 2.4h2.8v-2.4z"/>
+  <path fill="#b96b29" d="M323.3 140l-3.3-1.5-3.3 1.7c-1.2.5-1 .4-1.4 1.2-.3.9 0 1.2.6 1.4l4.1 2 4.6-2c.8-.4.7-.8.4-1.5-.2-.6-.7-.8-1.7-1.3z"/>
+  <path fill="#d4af3a" d="M320 139.3l-3.5 1.7 3.6 1.9 3.5-1.9zm0-12.3s-.3 1.2-.7 1.8c-.4.5-.7 1-.6 1.7 0 .6.8 1 1.3 1 .4 0 1.2-.4 1.3-1 0-.7-.2-1.2-.6-1.7-.4-.6-.7-1.8-.7-1.8z"/>
+  <circle cx="320" cy="132.8" r=".7" fill="#d4af3a"/>
+  <path fill="#d4af3a" d="M317.6 129.4s1.1-1.3 1.6-2.2l.8-1.5.8 1.5c.4.9 1.6 2.2 1.6 2.2s1.6-1 2.6-4c1-3.2-.3-6.6-.7-10.1a208 208 0 01-.8-9.8 7.3 7.3 0 01-3.5 1 7.3 7.3 0 01-3.6-1s-.3 6.2-.8 9.8c-.4 3.6-1.6 6.9-.6 10 1 3.2 2.6 4 2.6 4z"/>
+  <ellipse cx="320" cy="122.3" fill="#b96b29" rx="2.8" ry="2.7"/>
+  <ellipse cx="320" cy="115.8" fill="#b96b29" rx="2.7" ry="2.6"/>
+  <ellipse cx="320" cy="109.7" fill="#b96b29" rx="2.6" ry="2.5"/>
+  <ellipse cx="320" cy="121.8" fill="#d4af3a" rx="1.5" ry="1.4"/>
+  <circle cx="320" cy="115.4" r="1.4" fill="#d4af3a"/>
+  <ellipse cx="320" cy="109.2" fill="#d4af3a" rx="1.3" ry="1.2"/>
+  <path fill="#b96b29" d="M319.9 336c.2.1.2-.3.2-1.2l.4-4c.2-1.2-.3-1.1-.6-1-.3 0-.5.9-.5 1.4l.1 4.2c0 .6.2.6.4.7z"/>
+  <path fill="#d4af3a" d="M290.4 359.1l5.2-3.6a11.8 11.8 0 004-4h-1c-.6 0-1-.7-1.1-1.5 0-.8 0-2.3.2-4.1.2-1.8-.3-3.3-.3-3.3s-1.2 1.1-3 2c-2 1-2.7.6-2.7.6l-.4-1.9-2 3.7c-1.1 2-4.2 4.2-6.4 5.8a28.6 28.6 0 01-6.4 4c-1.8.7-.7 1.5-.7 1.5s1.8 1.8 6.5 2.7c4.6.8 6.9-1 8.1-1.9z"/>
+  <path fill="#d4af3a" d="M306.8 357.3c-1.7-.2-2.7-.8-3-2.6-.2-1.2 0-5.7 0-5.7l-1.1 1.2c-.7.8-2 1-2 1l-1 1.6a9.3 9.3 0 01-3 3.2 50.7 50.7 0 00-4.6 3.2 28.1 28.1 0 01-4.3 3.1 7 7 0 00-3.6 4.7c-.5 2.4 0 3.1 1.8 3 1.8-.1 2 0 5-.7 3-.8 7.3-4.1 10.4-6 3-2 5.4-6 5.4-6z"/>
+  <path fill="#d4af3a" d="M315 360s-1.2-1.6-1.7-3.4l-1.3-5.4-1.5 3.3c-1 2.1-2.7 2.7-2.7 2.7s0 .9-1.5 2.7a21 21 0 01-5.7 4.8c-2.1 1.2-5 3-6.4 5.1-1.5 2.2-1.7 4.4-1 5.4.8 1 1.8-.1 3.2-.9 1.4-.7 5.5-1.3 11.2-4.4 5.6-3 7.4-9.9 7.4-9.9z"/>
+  <path fill="#d4af3a" d="M317.5 372.7c1.5-2.4 1.8-8 1.8-8l-1.3-1c-.8-.7-2.2-2.9-2.2-2.9l-2 3.8c-1 1.8-1.5 2.4-3.6 4.3-2.1 2-5 3.9-6.2 6-1.2 2-.5 6.1.3 7.5.8 1.5 2 1 3-.1l3.7-3.3c2.1-1.8 5-4 6.5-6.3z"/>
+  <path fill="#b96b29" d="M299 325.3c.8-1.7 1.7-3.7 2.5-4.8a15 15 0 001.3-2.2s-2 1.8-2.8 3.1c-.8 1.4-1.3 2.6-1.7 4-.3 1.4-.2 1.6.7 0zm8 1.5l.5-1.9s.3-1 .1-1.1c-.2-.1-1 .6-1.6 2.5-.5 1.8-1.4 4.5-1.2 4.6.2 0 1.8-3 2.2-4.1zm6.3 5l.3-.8s.7-2 .7-2.5c0-.4-.2-1-.8.1s-.6 2.2-.7 2.6c0 .5-.7 2.1-.5 2.3.2.1.6-.9 1-1.7zM293.7 351l-.8-.5-1.3 1.5c-.7.7-1.5 1-2 1.7a8 8 0 01-2.7 2.3c-1.3.7-1.8 1-1.6 1.1.3.2 1.2-.3 1.2-.3s.3 0 1.9-1c1.6-.9 2-1.4 3-2.3 1-.9 2.3-2.5 2.3-2.5zm6.8 8.1c.6-.6 1.3-1 1-1.4-.4-.3-.8-.3-1.4.2l-2.8 2.6-2 1.5c-.7.6-2.3 1.4-3 1.8-.8.5-.1.5-.1.5l1.2-.5 2.5-1s.7-.3 1.6-1c1-.7 2.4-2 3-2.7zm7.9 5.5c.5-1 0-.8-.9-.4-.8.3-2.7 2.4-3.8 3.1-1.1.8-2 1.1-3 1.6-.9.4-.9.7-.8.9 0 .2.4.2.8 0l1.6-.9 1-.2c.6 0 1.3-.6 2.4-1.6 1.2-1 2.2-1.5 2.7-2.5zm3.7 7.2c-1.4.8-3.8 2.7-4.5 4-.6 1.2-1 2.1-.8 2.3.2.2.9-.2 1.2-.7l.9-1.2s2.4-2.4 3.3-3a8.3 8.3 0 002.6-3c.4-1 .1-1.4.1-1.4s-1.5 2.1-2.8 3z"/>
+  <path fill="#c52126" d="M275 170a22.3 22.3 0 00-8.3-2.6c-3.7-.3-6.5.2-9.5 1-2.2.6-4 .7-5.7.3-2.6-.7-4.6-3-5.3-6 0 0-2.4 3.1 0 6.5a7.2 7.2 0 004.4 2.9c5 1 10-2 14.3-2.4 4-.2 7.3 2.4 7.3 2.4s1 .8 2.3 0c1.4-.8 1.8-1.4.5-2.2z"/>
+  <path fill="#d4af3a" d="M260.3 317.5l-1.2-.2c-.7 0-2.2-.6-2.7-.8-.4-.2-1.1-.2-1.6.3-.4.5-4 2.7-4 2.7h6c2 0 3.5-2 3.5-2z"/>
+  <path fill="#d4af3a" d="M277.4 316.4v-.5l-.8-1.8s-1 .6-1.9 1.5c-1.2 1.3-2.4 3-3 3.7-1 1.3-2.4 2.5-1.2.5s1.6-3 2.6-4.4c1-1.3 1.7-2 1.5-2l-3.4-.5c-2.5-.3-4.1-1.3-5.3-2l-3.3-1.9s-4.3 1.9-5.9 2.3c-1.6.4-2.6.6-1 1.4 1.6.8 2.9 1 3.7 1.5a11 11 0 004.6 1.2c1.4 0 3.9 0 3 1-1 1.1-2.1 3-3.2 6a20.3 20.3 0 00-1 7v2.5s1.8-2 6.6-5 6.6-4 7.5-4.4c.9-.4 1.3-.4 1.1-1.5l-.6-4.6z"/>
+  <path fill="#d4af3a" d="M295.6 302a68.5 68.5 0 01-.9-.4 1 1 0 00-.2 0 15 15 0 00-4.6 4.2c-1.2 1.9-2.4 2-1.1 0a17.9 17.9 0 013.2-4.2 23.5 23.5 0 011-.8 53.3 53.3 0 01-7.3-4.2l-1.6 2.5c-1 1-3.3 2-3.3 2s1.8-2 2.4-3.3l.8-2.5a31.6 31.6 0 01-4.8-4.6 17.8 17.8 0 01-4.1 7.4c-3.8 4.2-11.3 6.3-11.3 6.3s-2.6.3-.5.9c2.2.5 3.7 1.5 7.8.8l5-1.1c.6-.2 2 0 0 .7-2 .8-6.9 1.5-8.7 1.4-1.9-.2-4.4-.6-1.8.8 2.7 1.4 3.8 2 5.4 2s2.3.5 3.9.5 2-.3 3-.5c1.2-.3 2 .1 2 .6 0 .4-1.6 1.7-1.5 4.7 0 3.1.3 5.1.5 6 .3 1 1 2.4 1.4 3.2.5.8.7 1.7 1.1-.1.5-1.8 1.5-4.4 1.9-6.1.3-1.7.6-1.8.7-2.7.2-.9 1.2-1.6.7 0a133.4 133.4 0 00-1.3 5.2c-.3 1.5-1.1 4.2.2 2 1.4-2 6.4-7.7 7.3-8.8l2-2.8c.7-.8 2.4-1.9 3.3-3.1a28.5 28.5 0 013.9-4l-4.5-2zm-69.5-129.2c0 3.1 3.5 9 5.5 12.2 1.9 3.1 2.4 4.4 2 4.6-.2.2-1-1.4-2.1-2.8s-3.2-4.7-5-7.2c-1.6-2.5-4.2-8.4-4.5-8.9-.4-.5-.5-.9-1.4-.2-.8.7-2.5 7.2-.5 11.6 2 4.4 5 7.6 6.3 9.2 1.3 1.5 3 4 2.7 4.1-.3.2-.8-.4-2.3-2L221 187a51.6 51.6 0 01-3.8-6c-.2-.5-.6-.4-.8-.2-.5.6-1.4 1.9-1 5.4a17 17 0 005.3 10.2c2.3 2.4 4.6 4.5 4.2 4.9-.3.3-2.7-1.8-4.3-3.3-1.6-1.6-5.5-5.4-6.4-6.5-.9-1-2.1-.5-2 3.7 0 4.3 4.7 8.5 6.6 10.9 2 2.3 4.4 3.7 4.2 4.2-.2.5-2.2-.7-3.4-1.6l-7-4.6c-1-.7-1.4.6-.2 4.6 1.2 4 4.7 7.2 6.8 8.7 2 1.5 5.4 3.3 5.2 3.8-.2.4-1.6-.2-3.6-1.1a39.4 39.4 0 00-6-2.3c-1.6-.5-1.6.7-1.6.7s-.3 3.5 2.2 6.2a13.3 13.3 0 008 4.3c2.6.5 3 .6 3 1-.1.4-.4.5-1 .5l-5.4.2c-2.2 0-3.4.6-3.4 1.6s-.1 2.3 3.3 4.6 7.2 2.6 8.8 3c1.6.3 1.7.4 1.4.9-.4.5-1.1.4-3.6.7-2.6.2-4.1 1.2-4.5 2-.3.6.2 2.6 2.3 4 2 1.4 4.8 1.9 8.8 1.6 4-.3 5-.3 5.1.3.2.7-1.2 1-3.2 1.2-2 .4-3.5.4-4.7 1.3-1.1 1-.2 2.9 1.7 4.3 2 1.4 6.8 1.4 8.8 1.3 2-.2 5-.9 5.3-.4.2.6-1.5 1.4-3.6 2.1-2 .8-2.7 1.2-3 2.1-.5.9-.1 1.7 2.3 2.6 2.5 1 6.1 1 8 0 1.9-.8 2.9-1.1 3.2-.8.4.3 0 .7-.4 1.1-.4.5-2 1.8-4 2.3-2.1.6-2.3.6-3 2.2-.8 1.7 1 3 4.8 3.2 3.8.1 8.8-1.4 10.4-2.3 1.6-1 2.2-1.1 2.5-.8.2.3.2.5-.6 1.1-.8.6-3.4 2.5-4.7 2.8-1.2.3-1.4 1.3-1.4 2.1 0 1-.3 2.6 3 3.5 3.4.8 7.3.2 11-2.4a8.3 8.3 0 002.2-2 28 28 0 01.2-8c-.7 0-2-.3-3.4-.9-2-.8-2.8-2.6-3.3-3.6-.4-1-1.1-1-2-.8-.7.3-1.5.6-2.6.6a7.9 7.9 0 01-5.3-2.8c-1.8-2-1.4-4-1.5-5 0-1-1.7-.3-2.5-.3s-3.1-.4-5.3-1.9c-2.1-1.4-2.1-3.4-2.3-4.3-.2-.8-1-1.3-1.7-1.6-.7-.2-1.8-.5-3.3-1.7a6.9 6.9 0 01-2-4.4c-.1-.8-1-.8-4-2.4-3-1.5-2.7-4.7-2.6-6 .1-1.3 1.5-2.3 1.5-2.8s-1-.6-2-1.2-3.5-1.6-3.6-5.4c0-3.7 2.4-4.1 2.4-4.1l-1.4-.8c-1-.6-3.8-2.5-3.8-4.7s1-3.2 1.8-3.8 2.7-1 2.7-1-1.3-.9-1.8-2.6c-.5-1.7-.7-3.9.5-5.4 1.3-1.6 3.4-1.6 4.6-1.6 1.1 0 2.1.6 2.5.3.4-.3.5-.6 0-1.5a6.6 6.6 0 010-3.7c.3-.8.4-2.2 3.2-3.2 2.9-.9 6 1 6.9 1.6.9.5.5-.8.5-1.7 0-1-2-3.3-4.2-6.6a73 73 0 01-5.6-10.2 65.7 65.7 0 01-4.5-13.4c-.3-1.6-1-.8-1-.8s-.6.2-2.2 4.1a25 25 0 00-1.6 10.5z"/>
+  <path fill="#d4af3a" d="M276.5 241.4c-1.7-.1-4-1-5.7-3.6-1.7-2.5-4.3-3-8.8-3-4.4.1-6.5-2-7.6-5.2-1.1-3 .1-6.6 4.7-8.9 4.6-2.2 6.7-4.7 6.8-8.6.2-3.9-4.5-8.7-9.3-14.1-4.7-5.5-8.4-13.2-8.4-13.2s-1.4 1.8-1.4 3.7c0 1.8.7 3.7 0 4.2s-1-.8-3.7-2c-2.8-1.2-5-1.4-6.7.6-1.8 2 0 5.4 1.5 7 1.6 1.7 2.9 3 2.4 3.5-.4.6-2.7-.9-3.5-1.4-.8-.5-2.6-2.5-5.3-2.3-2.6.3-3.6 1-3.8 3.3-.3 2.3 2.4 4.2 4.1 5.1 1.7.9 2.4 1.6 2 2-.5.3-.9 0-1.7-.3a8 8 0 00-4.3 0c-1.4.6-3.6 2.5-1.5 4.8s6.4 3.2 7.2 3.3c.9.2 1.3 0 1.4.6 0 .7-1.8.7-4.1.8-2.4.1-3 2.4-2.7 4 .3 1.8 4.2 3.7 6.4 4 2.1.4 2.9 0 3 .7.2.6-.2.8-1.4 1.2-1.2.3-3.5.6-4 2.5-.4 1.9-.5 2.7 1.3 4.4 1.8 1.6 4.8 1.4 5.6 1.2.9-.2 2-1.1 2.8-.3.9.9-.8 1.6-2.3 2.6-1.4 1-1.3 3 1.2 4.4 2.5 1.4 5 .9 6 .5 1-.3 2.4-2 3.1-1 .7 1.1-2.2 1.5-3.4 3-1.2 1.4-.7 3.8 1.7 5.3s6.4.4 7-.2c.7-.6 1.6-.8 2.1-.3s-.2 1.9-.8 3c-.5 1.3-1.4 4.8 2.2 6.2s6.9-1.7 7.5-2.3c.6-.6 1.2-.7 1.7-.5.5.3.3.8-.1 1.4-.5.6-1.4 3.2 1.2 5a6.3 6.3 0 004.7 1l2-7.2h-.6c-.3 0-.4.5-.4.7 0 .2 0 .4-.2.4-.3 0-.4.2-.8.5-.5.3-.9.7-1.1.5-.3-.2 1-.8 1.2-1.2.3-.4 1-1 1-1.4 0-.4.2-.6.9-1.1l.4-.6a100.5 100.5 0 001.7-12.7h-1.2zM203 187.6a37.3 37.3 0 009.3 12.1l-1-3.2c-.4-1.4-.2-2.9-.2-2.9s-1.3-1.7-3.8-5.6c-2.6-3.9-3.9-9.6-3.9-9.6s2.4 5.7 4.2 8.8c1.8 3 4 5.5 4 5.5s.6-2.7 1.2-2.8c.5-.2.9.2 1.3.8.5.6.9.6.9.6l-1.6-2.8-1.5-2.2c-1.5-2.3-4.6-6.6-6.1-10.9-1.6-4.3-5.1-15.1-5.7-18.3-.6-3.2-1.2-1.4-1.8.9a27.6 27.6 0 00-1 10.7 53.5 53.5 0 005.7 18.9zm5 21a135.9 135.9 0 003.5 2.5l-.6-1.7-.3-2.9-2.8-2.5a41.7 41.7 0 01-5.6-6c-3-3.6-.6-1.4 1.8 1.2s7 6.3 7 6.3v-.8a3.1 3.1 0 01.7-1.9c.4-.6.2-.6-2.4-2.6a74.5 74.5 0 01-17.6-24.4s-1.4 9 4 18.7c5.4 9.9 10.8 13 12.2 14.1zm28.5 56.3c3-1.2 2.1-4.1 2.1-4.1s-1.8.5-3.5 1.2c-1.7.6-5.8 1.8-7.4 1.8-1.7 0-1.7-.2-1.7-.4s1.2 0 3.6-.4a29 29 0 007.2-3.1c.7-.5.6-.6-.4-.7a4.5 4.5 0 01-2.4-.9c-.4-.3-1.5.1-4.2.8a50.8 50.8 0 01-21.5.7c-.6-.2-1.3.2.7 3.7 2.1 3.5 9.4 5.3 14.4 5.3s10.1-2.8 13-3.9zm-13.4-7.2c5.2 0 7.1-1.5 7.1-1.5l-.7-1.3c-.7-1-.6-2.9-.6-2.9l-3.4.6c-2.1.3-4.6.6-7.4.1-2.8-.5-1.6-.8.6-.5 2.2.2 6.4-.6 7.8-1 1.4-.5.8-1-.1-1.3-1-.3-3.5-1.9-3.5-1.9s-6.3.8-12.1.2c-6-.7-9.6-2.2-10.8-2.4-1.2-.2-1.2.3-1.2.3s-.3.6 1.8 3.7c2 3.2 6 5.3 9.3 6.3 3.4 1 8 1.6 13.2 1.6zm-1.4-12.2l-.5-1.3c-.3-1 .6-1.9.6-1.9s-1.2-.3-5.1-.8c-3.9-.5-4.1-.8-6.5-1.3-2.4-.6-4-1.3-4-1.5.1-.3.9 0 2.3.6 1.4.5 7.4 1.2 9.9 1.5 2.5.4 3.9.6 4.3.4.5-.3 2-.7 2-.7l-2.4-.5a8.4 8.4 0 01-3.2-1.3c-.7-.5-.9-.6-4-1-3.3-.3-5.8-1.3-11.5-3.4-5.7-2-10-4.6-11.1-5.5-1.2-1-1-.3-.8 1 .3 1.1.3 2.6 3.2 6 2.8 3.3 4.2 4.8 11.5 7.4 7.2 2.7 15.3 2.3 15.3 2.3zM200.2 228a40.6 40.6 0 0015.5 6.4c.4-.4-.4-2 0-2.8.4-1.1 1-1.1 2.6-1.2 1.6-.1.5-.4.2-.4l-3-.7c-2.6-.7-5.2-1.1-8.7-2.4-3.5-1.4-4.6-2.3-4.5-2.6.1-.3 1.6.8 5 2 3.2 1.3 7 1.8 9 2.3 2.1.4.3-.5-.7-1-1-.6-2.3-2.8-2.3-2.8s-2.3-.4-6-1.5a48.8 48.8 0 01-10-4.2c-1.1-.6-2.2-1.4-3.3-2.2l-5.1-3.7c-1.3-1-1-.2-.8.4s1 3.2 3 6.1c2 3 2.7 3.8 9.1 8.3zm-1-12.7c6.3 5 11.7 6.6 12.6 7 1 .4.9-.2.7-.7-.2-.5-.3-2.2-.3-2.2l-4.8-2.8a79.6 79.6 0 01-7.1-4.7c-1.9-1.3-.8-1.2-.2-.7.6.5 3.1 2 5.7 3.6l6.4 3.9s.1-.9.7-1.4c.5-.5 1.8-.4 1.8-.4l-1-1.3c-.4-.6-2.5-1.3-4.9-2.4a57.5 57.5 0 01-9.6-6.8c-3-2.6-9-9.1-9.5-9.7-.4-.5-.6-.4-.7.3 0 .6-.2 1 .4 4 .7 3 3.5 9.4 9.8 14.3zm22.3-47.2c.7 1.5 1.5 2.6 2 3.6a52 52 0 011.4 2.4s.2-.5 0-1.4c-.1-.8-.2-2 0-3.5l.3-2.3c0-.7-.4-1.4-.5-1.9l-1.5-7c-.5-2.7-1-6.4-.9-9.7 0-3.2.5-1.6.5 0a62.2 62.2 0 002.8 17.2s0-.9.5-2.1c.5-1.3 1.3-2.7 2-4.2.5-1.6.3-1.9.3-1.9s-2.2-10.6-2.8-15.6c-.6-5-1.5-18.1-1.5-18.1-3.3 3.2-5.7 11.8-6 20-.4 6 .6 11.7.9 14 .5 4.5 1.3 8 2.5 10.5zm-7.2 16.8c.1-2.4.7-4.3 2.2-4.8 0 0-1.3-2.4-2.5-5.8a45.7 45.7 0 01-1.9-7.7c-.8-5.6-1.5-11.5.2-2 1.7 9.7 3.7 13 3.7 13l2.5 4a17.3 17.3 0 01-.4-4.9c.1-1.9.4-4.5 1-6.5 0 0-3-6-4.9-13a82.2 82.2 0 01-3.2-22.7s-3 2.3-4 13.9a69 69 0 007.3 36.5zm33.3 88.6l-2-1.3c-1.4-.9-1-3.7-1-3.7l-1.4 1a19.2 19.2 0 01-3.7 2.2c-1.5.6-2.2 1-3 1.2-1 .3-.8 0 0-.5.8-.4 1-.7 3-1.4 1.9-.8 5.7-4.2 5.7-4.2l-2.5-.1c-1.6 0-3.6-.9-3.6-.9s-1.6 1.4-8 4.2a50 50 0 01-11.8 3.5s.7 3.2 3.8 4.3c2.5 1.1 6 1.8 12.9.2a43.5 43.5 0 0011.6-4.5zm8.4 6.5c.5-2.7-1-4.6-1-4.6l-1.3 1.1c-1 .9-2.4 2.5-5 3.9-2.8 1.3-3.7 1.2-1.1-.2s6.4-5.3 6.4-5.3l-1-.4c-1-.4-2.8.3-10 4.6s-11.4 4.5-11.4 4.5 3.2 3.9 12 3.6c8.7-.3 11.8-4.5 12.4-7.2zm16.5-3.1s-1 1.3-2.3 2.2c-1.3.9-4.7 1.4-4.7 1.4l-.8 1.2c-.7 1-2.2 3-3.7 4-1.6 1.2-4 2-4.1 1.6-.1-.3 1.4-.8 2.9-1.8 1.5-.9 2.8-2.6 3.8-3.7 1-1.2-.4-1-.4-1h-3.5c-1.7-.2-1.4 0-1.9.7l-2.4 3-4.4 5.1c-1 1.2-.2 1.5-.2 1.5s.4.7 4.3 1.2c2.4.2 5 0 7.8-1.6a23 23 0 005.2-4.5c4.6-5.1 4.4-9.3 4.4-9.3zm2 10.5l-1.4 1.8 1.2-3c.3-.6.7-1 1-1.4-.7-1.4-1.3-3-1.6-4.7-.5 1.4-1.8 5.5-3.4 8.1-2 3.2-3.8 4.4-2.7 5.3 1.2.8 3.4 1 6-.2 2.4-1.2 3.1-3.3 3.5-5a24.8 24.8 0 01-1.2-2.1 5 5 0 00-1.3 1.2z"/>
+  <ellipse cx="274" cy="158.6" fill="#d4af3a" rx="1.8" ry="1.6"/>
+  <path fill="#d4af3a" d="M270.3 155.5c1.6 0 2.4-.8 4.2-.6 2.2.2 5 1.4 8.6 3.3a14.6 14.6 0 009.8.9c1-.3 2-.9 2.9-1.4 4.2-2.4 3.2-7.1 3.2-7.1a16.7 16.7 0 01-10.7 3.2l1 .8c.5.6 1.7 1.4 1.3 1.7-.4.3-2-1.2-3.2-2.2a19.4 19.4 0 00-6.5-3.2c-3.3-1-7-1-9.5.4-2.5 1.3-2.7 3-2.3 3.7.2.4.6.5 1.1.5zm46.2 34.7c-.8-.2-2.1-.4-3.8-2a71.4 71.4 0 01-6.3-7c-.5-.8-.3-1.5.9-2 1.1-.5 2-2 2-2s-2.6-1-4.3-2.2a44 44 0 01-6.2-5.7c-.6-1-.3-1 .5-1.3.8-.3 1-.8 1-.8s-1.8-1.2-3.5-2.6a71 71 0 01-4-3.6c-2.6 1-6.7.6-8.9.2-3.8-.7-6.6-2.3-6.6-2.3l-.6 1.8c-.5 1.2-2.3 1.8-4 .7-1.8-1.2-1.4-3.7-1.4-3.7s-1.5-1-4.4-2c-3-1.1-5.4-1.3-7.8-.2-2.4 1.1-3.6 4.4-3.6 7 0 2.4 1.4 1.3 1.6 1 .3-.3.9-2.1 3.9-2.6s5.7 1 9.2 3.8c3.4 2.8 4.1 3 5.9 4.8 1.7 1.8.3 2.7-2.6 3.7-3 1-6.8-1-6.9-.9-.6.3 1.3 3 3.8 4 2.6 1 5.8.3 8.3-.8 1.7-.6 2 0 2.6.6a15 15 0 014 9 4 4 0 002.6-3c0-.6.2-1.8 1.2-1 1 1 1.7 6 1.7 8.2s-.7 5.3-.7 5.3h.7l2.3-1.2c1.1-.7 1.2 0 1.2 1.3s.4 3.6 2 7.8c1.7 4.2 4.1 5.5 4.1 5.5s.5-.8 1-2.5.8-4.8.8-7.7c0-2.8-.8-8.8-.8-8.8s3.5 4.2 7 5.2c3.6 1 7.2.4 8.7-1.3 1.5-1.7.1-2.5-.6-2.7z"/>
+  <path fill="#d4af3a" d="M293 201s-1 2.5-1.7 3.3l-.8 1s1 1 2.6 1.4l3 .8s-1.8-2.4-2.4-4.1l-.7-2.3zm21.4-1.3a71.6 71.6 0 00-.8-2.1 15 15 0 01-8.2-1.7s1.7 3.3 3.3 4.5l1.9 1.2s-1.7.3-3.9-2c-2.2-2-3.1-4.6-3.1-4.6s.5 5.8-.4 9.3l-1.1 4s4.6.9 9.8-.6c5.2-1.4 5.6-1.9 5.6-1.9s.6-.1-.2-1.2a28 28 0 01-2.9-5z"/>
+  <path fill="#b96b29" d="M305 187a11 11 0 01-1.8-2.3s-.5.5 0 1.3a15 15 0 004.3 3.7 11.1 11.1 0 003 1.2v-.4s-3.9-1.7-5.5-3.5zm-6.3 12l-.4-8.3c0-1-.7-.8-.7-.8l-.8.3 1.6 10.6c.1 1.2.7 1 1 1-.6-.3-.7-2.5-.7-2.8zm-9.8-31.4c-.6-.6-2-1-.7.4s3 3.2 3.5 4.7c.5 1.4.8 3.3 0 2.9-.9-.4-1.5-.4-2.4-1.2a15 15 0 00-3.2-2.1c-.7-.2-2 0-1 1a24.8 24.8 0 004 3.6c1.8 1.3 3 2 4 2.6a36.9 36.9 0 001.9 1.3s-.9-6-2.5-8.5a26.3 26.3 0 00-3.6-4.7zm-32 99.2a7 7 0 01-2.8 1.3s-.8 0-.8.2 1 0 1.8-.1a8 8 0 002.6-1.4c.5-.4 1.2-.8 1-1.4-.3-.6-.6.5-1.8 1.4zm10.3 5.5l-2.2 1.8-1.3.7c-.7.2-.9.6-.9.6s.2.2.9 0 2.7-1.7 3.4-2.3c.7-.6 1-.7.7-1s-.4 0-.6.2zM225.3 198c.4.4.8 1 1 .9.2-.2 0-.5-.5-1l-.8-.9-1.1-1.5c-.4-.4-1-.7-.3.3l1.7 2.2zm-3.2 7l1.4 1.3c.5.5.8 1.1 1.1.8.3-.3-.7-.9-1.2-1.5a7.5 7.5 0 00-1.4-1.4 10 10 0 00-1.2-.8l1.3 1.6zm1.2 11.2c.8.9 2 1.1 2.1.8.2-.4 0-.6-.7-1a24 24 0 01-2.3-1.4l-1.4-1.1c-.4-.4-.8-.7-1-.6-.1.1 1.1 1.5 1.5 1.7.4.2 1 .8 1.8 1.6zm2.3 9c0-.3 0-.5-.6-.5a26.9 26.9 0 01-1.6-.2s-1.3-.5-1.3-.2c-.1.3 1 .8 1.5.8l1.4.4c.3.2.6 0 .6-.3zm1 9.8c-1.4 0-2.6-.3-2.7 0-.1.1.6.5 1.3.7.8.3 2 .3 3 .4 1 0 1-.2 1-.6 0-.5-1.2-.5-2.6-.5zm11 10.8c-.2-.2-.7 0-1.5 0-.8.3-2 .5-2.8.5l-2.4-.1-.9.2c0 .2 1.2.2 3 .4 1.7.2 2.9-.2 3.7-.3.8-.2 1.1-.5 1-.7zm4.6 7.6a5.6 5.6 0 01-2.2.4l-2.2.3s-.8 0-.6.4c0 .3.3 0 1-.1h2.3c1.1 0 1.8-.4 2.5-.5.7-.1 1.5-.5 1.2-1-.4-.4-1.2.2-2 .5zm8.9 5.8l-2.4 1.8-1.2.6c-.7.4-.7.6-.6.8.2.2.6-.3 1-.5.5-.1 1.8-1 2.5-1.6.7-.6 1.6-1 1.5-1.5-.2-.4-.3-.1-.8.4zm-14.8-74.8l1.7 2.3c1.6 1.9.7.1.3-.4l-3.4-4.5c-.8-.9-.9-.5-.5 0l1.9 2.6zm-3.2 9.8c.2-.2-.3-.4-1.2-1.5l-2.6-3.3s-.5-1-.7-1c-.1.1.6 1.8 1.3 2.5.7.7 1.7 2 2.2 2.7.5.6.7.9 1 .6zm4.2 18.5c0-.5-1.7-.5-2.5-.6l-2.2-.5s-1.6-.3-1.7 0c0 .1.3.3 1.2.5l3.4.8c1 .1 1.8.3 1.8-.2zm-4.2-10c1.1 1 1.9 1.4 2.5 1.7.6.4 1 .8 1.4.5.3-.4-.3-.7-1.3-1.1-1-.5-1.4-.9-1.4-.9l-1-.5c-.6-.3-1.4-.6-.2.3zm9.9-6.5l-1.4-1s-.8-.8-1-.5c-.2.3 1 1 1.5 1.6.6.5 1.6 1.9 2 1.6.6-.3-.4-1.1-1.1-1.7zm-6.5 25.7l-1.6.4c-.6.2-.7.4.5.4 1.1 0 1.5-.3 2.7-.5 1-.2 1.5-.3 1.3-.7-.2-.3-.8-.2-1.2 0l-1.7.4zm1.7 9.3c0 .2.8 0 1.4-.2.6-.2 1.8-.9 2.5-1 .7-.3.7-.4.7-.8s-.8 0-1.7.2c-.9.3-2 1.2-2 1.2s-.8.4-.9.6zm12 5.6c.9-.5 1-.8.7-1-.3-.3-.5-.3-1.2.2a51 51 0 01-2 1.5l-1 .5c-.6.2-1.2.7-1 1 .1.1 1.2 0 1.7-.6s2-1 2.8-1.6zm5.7 7.5c.3-.3 1.3-.6 1.8-1 .4-.3.7-1.3.3-1.4-.3-.1-.5.4-1.3 1l-3.5 2.4-.7.3c-.8.2-.4.5.2.4.6-.1 1-.1 1.8-.7l1.4-1zm8.3 7.1a10 10 0 002.3-1.7c.5-.4 1.1-1 .7-1.3-.3-.3-.7.1-1.3.6l-2.1 2.2s-.3 0-1 .7c-1 .7 0 .5.2.3a3 3 0 011.2-.8z"/>
+  <path fill="#d4af3a" d="M295.2 143.5l3.2 1.4 3.4-2.4-4-1z"/>
+  <ellipse cx="309.2" cy="142.1" fill="#b96b29" rx="3.2" ry="3.1"/>
+  <circle cx="309.2" cy="141.4" r="1.9" fill="#d4af3a"/>
+  <path fill="#d4af3a" d="M302.4 131.4c.9.3 2 .2 2 .2s.3-1.4-.5-2.1l-2-1.7-.5-.6-.1 2c0 .8.3 1.9 1.2 2.2z"/>
+  <circle cx="304.2" cy="133" r=".6" fill="#d4af3a"/>
+  <path fill="#d4af3a" d="M299.8 132.4l-.8.9s.6 0 1.2.4c.5.4 1.2.7 1.8.6.7 0 1-.7.8-1-.1-.5-.4-1-1.5-1.3-1-.4-1.3 0-1.5.4zm2.2 3.7c-2 .2-4.7-2-4.7-2-.2 1.8-1.3 2.7-3 3l.1.1s1.6.8 3.5 1.1a7 7 0 002.5-.2c1-.2 2.3-.5 3-1 1.2-.7.8-2.6.8-2.6s-.2 1.5-2.2 1.6zm-7.9-2c-.8-.3-2-.9-2.6-1-.5 0-1.2 0-1.1.9.1 1 1.1 1.4 2 1.4 1 0 1.5-.3 2.1-.6.6-.3.5-.4-.4-.7zm-6.3-3.4c-.9-.7-1.7-.9-1.7-.9s-.6 1.6-.3 2.6c.4 1 1 1.2 2 1.2.8 0 2-.5 1.7-1.2a5 5 0 00-1.7-1.7z"/>
+  <ellipse cx="288.6" cy="135.1" fill="#d4af3a" rx=".7" ry=".5"/>
+  <path fill="#d4af3a" d="M290.6 127.3a11 11 0 012-9.3c2.5-3.6 7-5.1 7-5.1l1.5-1.8c1.4-1.5 4.2-3.4 4.2-3.4l-5.2 1.5a2.3 2.3 0 01-2.2 2.4c-.5 0-1-.2-1.3-.4-1 .1-4.4 2.2-5.3 2.9l.3 1.2a2.3 2.3 0 01-2.2 2.3c-.4 0-.7 0-1-.2a9.6 9.6 0 00-.3.5 23.4 23.4 0 00-1.7 3.7c.6.4 1 1.1 1 2 0 1.3-.9 2.3-2 2.3a7.9 7.9 0 000 1.5c.1.7.4 1.2 1.7 1.6 1.3.3 3.1 2.6 3.1 2.6.1 0 1-1.6.4-4.3z"/>
+  <path fill="#d4af3a" d="M298.6 110.3c.5-.4.6-1 .2-1.4-.4-.3-1-.3-1.5.1s-.6 1-.2 1.4c.3.3 1 .3 1.5-.1zm-8.5 5.7c.6-.5.7-1.3.3-1.7-.5-.4-1.2-.4-1.8.1s-.6 1.3-.2 1.7c.4.4 1.2.4 1.8-.1z"/>
+  <circle cx="285.1" cy="123.2" r="1.3" fill="#d4af3a"/>
+  <path fill="#d4af3a" d="M313.3 105c-.7.2-2 .6-3.8 1.6 1.3 0 2.3.8 2.3 1.9 0 1-1.1 2.2-2.4 2.2a2.2 2.2 0 01-2.2-2.2l.1-.7-1.7 1.2a17.6 17.6 0 00-7.2 8c-2 3.8-2.8 8-2 10.4 1 2.5 4.2 3 4.3 3 0 0-.4-.3-.5-.8l.3-1.6v-2.1s.8-.1 1.2.4l1.4 1.7 1.6 1.5s.6-1 .6-2.1-.7-2.3-.9-4.3c-.1-2 1-5.5 2.8-8 2-2.6 5.5-5 6.6-5.5a2.1 2.1 0 001.3-1.7l.3-2c0-1.2-1-1.1-2-.9z"/>
+  <path fill="#d4af3a" d="M309.2 109.5c.7 0 1.4-.7 1.4-1.3 0-.6-.6-1-1.3-1-.8 0-1.4.4-1.4 1s.6 1.3 1.3 1.3zm6.2 24.4c1 .4 2.1.1 2.6-.2.6-.4.7-1.3.1-1.8a2 2 0 00-2.1-.2l-2 1.3s.4.5 1.4.9z"/>
+  <path fill="#d4af3a" d="M318.6 135c-.4.6-.7.9-1.8 1-1 0-2.3 0-3-.8a7.7 7.7 0 01-1.3-1.7h-1.2s-.4 1.7-1 2.1c-.5.5-2.5.6-3.3 0-.9-.7-1.6-1.4-1.8-1.3-.1 0 0 .7.9 1.4s1.5 1.3 2.9 1.3h8s1.6 0 2-1c.5-.9.5-1.5.3-1.7-.2-.3-.4.1-.7.7z"/>
+  <path fill="#d4af3a" d="M306.4 133.7c1.2.6 1.9.2 2.3-.3l.6-.8-1.7-.7c-.6-.4-1-.7-1.5-.6l-.6.1s-.3 1.6 1 2.2z"/>
+  <ellipse cx="300.7" cy="121.9" fill="#b96b29" rx="2.7" ry="2.6"/>
+  <path fill="#b96b29" d="M305.3 112.7c-1-.7-2.6-.4-3.5.6-.9 1.1-.7 2.6.4 3.3 1 .7 2.6.4 3.5-.6.8-1.1.7-2.6-.4-3.3z"/>
+  <ellipse cx="300.6" cy="121.5" fill="#d4af3a" rx="1.6" ry="1.5"/>
+  <path fill="#d4af3a" d="M304.2 113a1.8 1.8 0 00-2 .8c-.3.6.1 1.2 1 1.4 1.7.3 2.5-1.8 1-2.2zm-40.7 206s-4.1 2-5.4 2.3l-1.6.4s-2.8 2.5-4.9 3.8a18.3 18.3 0 01-7.1 2.4c-3.2.4-12 .3-16 .1-4-.1-6.4.8-8.1 2.7-1.7 2-2.1 4.7 0 6.8 2.2 2.1 4.6 1 5.4-.2.8-1.3.4-3 0-3.7-.3-.8.7-1 1.8-1.1a24.3 24.3 0 0110.7 2.3c1.3.7.6.8-.3.7-1-.2-2-.5-3.5-1.1-1.6-.6-3-1-4-1s-.7.5-.5.9l1 1.6c.1.4-.3 1.9-.3 1.9l.5 1 .8-1.5c.2-.5-.1-1.5.1-2 .2-.4 1-.4 1.7.4a6.7 6.7 0 011.8 3.5c.3 2-.3 3.3-.3 3.3s.8.7 1 1.1l-.3 2.3s.6.3 1-.7c.6-1 1.2-3 1.3-3.6.2-.7.6-1.9 1.4-1 .8 1 1.4 2 1.5 2.6l.2 1s1.8-1.7 2.4-2.8a17 17 0 013.6-3.9c1.7-1.4 4.6-4.2 6-5.2 1.5-1 5.2-3 6.4-3.6 1.1-.7 1.3-.8 1.5-2.7.2-2 1.2-3.8 1.6-5.1l.6-1.9zm-65.8-73.7c0-.4-.7-1.5-.8-2.1-.2-.6-.8-.3-.8-.3s-1.3.8-2.3 1c-1 .3-1 0-1.2-.6l-.5-3.2c-.2-1-.4-1-.8-.8l-2.4 1c-.9.3-.6.7-.3 1.2l1.6 3.1c.5.7 0 1-.4 1.3l-2.3.6c-1 .4-1 .6-.8 1 0 .3.8 1.7 1.1 2.3.4.6.7.2.7.2s1.1-1 2-1.4c.9-.4 1-.3 1.2.4l1.5 4.8c.2.7.5.6 1 .4l1.6-.4c.5-.2.7-1.3.7-1.3l-2.5-4.4c-.5-1 0-1.1.4-1.2.4 0 1.6-.2 2.6-.5 1-.2.7-.8.7-1.2zm22.3 96.5c-.1-.8 0-1.7-.6-2.3a8.1 8.1 0 01-1.8-3c-.3-1 .3-1.6.2-2.2-.1-.6-1-.6-1.7 0-.8.7-1.9 1.3-1.9 3.2 0 2 .7 4.2 3.4 5 2.6.8 2.6.2 2.4-.6zm2.7-.9s-.5-.3-.8.2c-.2.5-.2.7.5 1.9.7 1 1.2 1.3 2 1.8s.2-.5.1-.8c0-.3 0-.7-.2-1s-.3-.5-.3-1.3-1.3-.8-1.3-.8z"/>
+  <path fill="#d4af3a" d="M226 350c.5-.8 1-1 2.1-1.5a15.3 15.3 0 014.2-1c.7 0 2.5-1.4 2.2-3-.3-1.4-1.4-2-2.3-2.2-1-.3-1.8-.3-2.1.2-.3.5-.9 1-2 1.4s-1.1.7-1.8 1c-.6.1-.1.5-.7 1-.5.4-1.3 0-2.1-.3-.9-.2-1-.4-1.9-.4l-3.4-.2h-.7c-.6 0-.6 0-.9.6s.1 2.1.7 2.9c.6.7 2.6 1 3.9 1.5l3 .8c1.2.1 1.3 0 1.8-.8zm12.2 1.2c1-.7.4-2 .2-2.7-.3-.7-1.7-.9-2.5-.9-.7 0-1.1 0-1.5.4-.4.3-1 .8-2 1.2-1.2.3-2 .7-3.6 1.3-1.5.6-2 1.6-2.6 2-.6.4-1.9 0-1.9 0s-.9-.2-1.2 0c-.3.3 0 .8.6 1.5.6.6 1.8.6 3 1 1.4.4 1.6 0 2.1-.3s1-1 1.8-1.6c1-.6 3-.7 3.9-.8 1-.1 2.6-.4 3.7-1.1zm0-4.6c.4.4 1 1 1.3.3.4-.6 1-2 .6-2.8-.4-.8-1-1.5-1-1.5l-1 3c-.4.5-.4.6 0 1zm-4-7c0-1.2-1-2.8-1-2.8s-.3 1.2-.9 2.2c-.5 1-1 1.6-1 1.6l1.7.4c.5 0 1.1 0 1.1-1.3zm-7.6 2.8c1.4-.2 2.1-.8 2.7-1.3.6-.5 1-1.9.6-2.6-.4-.7-1.4-1.4-1.8-1.4h-.8s-.4 1.3-1 2c-.5.6-1.1 1-1 1.9 0 .8-.1 1.7 1.3 1.4zm2.8-6.3a2.4 2.4 0 00-.6-1.9l-.8-.7-.2 1.6-.1.6.7.6c.4.1 1 .4 1-.2zm-17.3-35.7l1-6a39 39 0 00-6.3-15.4c-2.4-3.8-5-10-6-13.2a37.4 37.4 0 01-2-10c0-2.3 1-3.5 1-3.5s.5-.6.1-1-1 0-1.7.6a7.5 7.5 0 00-1.5 2.6l-.3 1.1s-1.2-.3-3.3-.1c-2 .2-3 .3-3 .8 0 .4.3.7 1.7 1.4 1.5.6 2.4.9 3.1 1.7.8.9 2.6 5.2 3.2 7.3.6 2.1 1.8 7.8 2.3 12.2a49 49 0 004 14.4c.8 1.5 4.5 8.5 7.7 7zm3.7 10.4c-1.4.8-1.3 6.4-.7 9.3.6 2.9 3.4 6.5 4.3 7.5.9 1 1 1 1.5.7l.7-.2s1.2-.5 2.1-1.2c1-.7.6-2.5.4-4-.1-1.6-1.4-4.8-3.6-8.5-2.2-3.6-3.3-4.4-4.7-3.6zm1.5-4.5c0-1.9-1.6-3.2-3.4-3.2-.9 0-1.6.2-2.1.6-1.9 1.7-.7 5.8 2 5.8.9 0 2-.1 2.7-.8.7-.6.8-1.6.8-2.4zm26.5 52.7a7 7 0 01-2.2-1.2 10 10 0 01-3.1-3c-.3-.7-.3-.7-1.4-.4-1 .4-2.5.3-3.6.4-1 0 .2 1.3 1 2.4.7 1.2.4 5.1.4 5.1l-.1.9c-.2.6 0 1 .2 1 .3.2.5 0 1.3-1 .8-.9 2.2-3.2 2.2-3.2l1.4.3c1.2.3 3.1.1 4.1-.2 1-.3.6-1-.2-1.1z"/>
+  <path fill="#d4af3a" d="M239.2 362c-.5 0-.7-.1-1 .2l-.6 1.4c-.1.3 0 .6.2.9l.8.5s.4.5.8.7c.5.2.5-.4.5-.9l.3-1.9c0-.6-.4-.8-1-.9z"/>
+  <path fill="#1d5e91" d="M435 324.2c-1.3-.3-1.9-.8-1.9-.8s-.5 0-1 .7c-.3.8-2 1.8-2 1.8s-2.2.6-2.5 2.2c-.3 1.5.8 2 1.8 1.9 1.1-.2 3.7-.7 4.9-2.1 1.1-1.4 1.3-2.2 1.5-2.7.2-.5.4-.7-.9-1zm3.5-12.4a15 15 0 00-7.4-9.9l-2.1 7.5c-.5 1.8-.5 1.7.9 2l6.7 1.6c.9.3 2.4 1 1.9-1.2zm-20.6-3.2c1 .1 1-.3 1.3-1.7l2.1-8.2s-4.5-.1-8.5 1.8c-3.9 1.9-5.6 5.4-5.6 5.4s1 .4 3.7 1 6 1.5 7 1.6zm-10.5 9.3l-2.2-.4s1 3.8 2.7 6c1.7 2.2 3.5 3.2 7 3.3 3.5 0 6-1.9 6.5-3.4.4-1.5 1.1-2.6 1.1-2.6s-6.2-.8-8.8-1.4l-6.3-1.5z"/>
+  <path fill="#d4af3a" d="M406.3 315.5l15.5 3c1 .3 2 .5 2.2.2.3-.3.5-.5 1.6-.9 1.2-.4 1.1-1.5 1.1-1.5l.4-2.2c.2-1 .8-1.4 2-.1 1.3 1.3 1.5 3.2 1.7 5 .3 2 3.2 2.4 4.4 2.6 1.1.2 1.6-.2 2.3-1.3.7-1 1-3.2 1.2-4.6.2-1.4 0-1.2-1.4-1.6l-9.3-2.2c-1.2-.2-1-1-.7-1.9.1-.8 2.8-9.2 2.8-9.2a18.9 18.9 0 00-7.7-2.3l-2.3 10c-.3 1.3-1.2 1.3-2.5 1-1.4-.2-11.3-2.5-11.3-2.5l-.8 1.8a15.5 15.5 0 00-1.1 5.2c0 1.2.4 1.2 1.9 1.5z"/>
+  <path fill="#d4af3a" d="M440.3 323.3c-1.3-.9-2.3-1.1-3 .5-.7 1.6-.7 4-2.4 5.6-1.8 1.7-4.2 3.4-6.6 3.2-2.4-.2-3.7-.7-3.2-3.5.6-2.7 4.3-3.6 5.1-5 .9-1.5.7-3.1-.6-4.2-1.3-1.1-3.1-1.3-3.6-1a8 8 0 00-2.8 3.7c-.7 2-1.2 3.7-2.8 5a12.2 12.2 0 01-9 2c-3.1-.8-4.3-1.8-5.5-5-1.2-3.1-2.6-8.3-3.2-9-.7-.5-1.5-1-2.8 0-1.4 1-1.5 2.4-1.7 3.6-.2 1.1 0 2.5 1.4 4.1 1.4 1.7 2.8 3.3 3.3 5 .5 1.8 2 4.4-.1 4.5-2.2.2-3.2.2-4.8-1.4-1.7-1.6-8.2-6-10-7.4a29 29 0 00-2.5-2c-3 0-6-1.2-9-3.3 0 0 1.8 4.4 2.1 6.1.4 1.7.3 2.6.3 2.6l9.1 4.6a168 168 0 0110.3 5.8c2.5 1.5 4.7 4 9.1 3 4.5-.9 13.5-3.6 16.5-4.5 2.9-.9 11-2.9 14-5 3-2 3.2-1.9 3.7-4 .5-2 0-3.1-1.3-4zm-17.2-31l2.2-.3c1.5-.1 1 1.3.7 1.9l-1.4 2.7c-.6 1 .2 1.2.6 1.4l2.3.6c1.3.3 1-.6 1-1l.3-3.8c.1-.9 1-.6 1.2-.5l1.7 1c.6.3 1 0 1-.4l.8-2c.2-1-.4-.8-1-.8h-2.4c-1 0-.4-1-.4-1l1.3-2.1c.6-.9.4-1-.2-1.2l-2.8-.7c-.5-.1-.7 0-.7.3l-.1 2.7c0 .7 0 1-1 1-.8.1-1.3-.4-2-1.1-.7-.8-1-.5-1-.2l-.8 3c-.2.7.1.6.6.6zm4.8 21.8s-.1 1.7-.3 2.3c-.2.7-.6 1.6.1 1.8.8.2 1.4.5 1.8.4.5-.1.3-1 0-1.7a6.4 6.4 0 00-1.1-2.2l-.5-.6zm10.5 7c.2.5.7.6 1 .7.4.1 1 .1 1-.5s0-1.5-.5-2.2c-.5-.8-.8-1.3-1.1-.2-.4 1-.6 1.6-.4 2.2zm-36.7-7l1.4.4s0-1.7.3-2.8c.2-1.2.7-2 .3-2-.4 0-.7.4-1 .9-.3.5-1.1.6-1.4 2-.3 1.3.1 1.4.4 1.4z"/>
+  <circle cx="408.9" cy="311.2" r="2.3" fill="#b96b29"/>
+  <circle cx="415.5" cy="312.8" r="2.4" fill="#b96b29"/>
+  <circle cx="434.6" cy="316.9" r="2.4" fill="#b96b29"/>
+  <circle cx="422.1" cy="314.4" r="2.4" fill="#b96b29"/>
+  <circle cx="423.8" cy="308.6" r="2.4" fill="#b96b29"/>
+  <circle cx="425.5" cy="302.9" r="2.4" fill="#b96b29"/>
+  <circle cx="409.1" cy="310.9" r="1.2" fill="#d4af3a"/>
+  <circle cx="415.6" cy="312.6" r="1.2" fill="#d4af3a"/>
+  <circle cx="434.8" cy="316.6" r="1.2" fill="#d4af3a"/>
+  <circle cx="422.2" cy="314.1" r="1.2" fill="#d4af3a"/>
+  <circle cx="424" cy="308.4" r="1.2" fill="#d4af3a"/>
+  <circle cx="425.7" cy="302.6" r="1.2" fill="#d4af3a"/>
+  <path fill="#d4af3a" d="M349.5 359.1l-5.2-3.6a11.8 11.8 0 01-3.9-4h1c.6 0 1-.7 1-1.5.1-.8 0-2.3-.2-4.1-.2-1.8.3-3.3.3-3.3s1.3 1.1 3.1 2c1.9 1 2.6.6 2.6.6l.5-1.9 2 3.7c1 2 4.1 4.2 6.3 5.8 2.2 1.7 4.6 3.4 6.4 4 1.8.7.8 1.5.8 1.5s-1.8 1.8-6.5 2.7c-4.7.8-7-1-8.2-1.9z"/>
+  <path fill="#d4af3a" d="M333.2 357.3c1.7-.2 2.7-.8 3-2.6.2-1.2-.1-5.7-.1-5.7l1.2 1.2c.6.8 2 1 2 1s.2.6.9 1.6a9.3 9.3 0 003 3.2c1.6 1 3.5 2.2 4.7 3.2a28.1 28.1 0 004.2 3.1 7 7 0 013.6 4.7c.6 2.4.1 3.1-1.7 3-1.9-.1-2 0-5-.7-3-.8-7.3-4.1-10.4-6-3.1-2-5.4-6-5.4-6z"/>
+  <path fill="#d4af3a" d="M325 360s1.2-1.6 1.6-3.4l1.4-5.4 1.4 3.3a4.9 4.9 0 002.8 2.7s0 .9 1.5 2.7a21 21 0 005.6 4.8c2.2 1.2 5 3 6.5 5.1 1.5 2.2 1.6 4.4 1 5.4-.8 1-1.8-.1-3.2-.9-1.5-.7-5.6-1.3-11.2-4.4-5.6-3-7.5-9.9-7.5-9.9z"/>
+  <path fill="#d4af3a" d="M322.5 372.7c-1.6-2.4-1.8-8-1.8-8l1.3-1c.7-.7 2.2-2.9 2.2-2.9l2 3.8c1 1.8 1.4 2.4 3.6 4.3 2 2 5 3.9 6.1 6 1.3 2 .6 6.1-.2 7.5-.8 1.5-2 1-3.1-.1L329 379c-2.1-1.7-5-4-6.5-6.3z"/>
+  <path fill="#b96b29" d="M341 325.3c-.8-1.7-1.8-3.7-2.5-4.8a15 15 0 01-1.3-2.2s2 1.8 2.8 3.1c.8 1.4 1.3 2.6 1.6 4 .4 1.4.2 1.6-.6 0zm-8 1.5l-.5-1.9s-.3-1-.2-1.1c.2-.1 1 .6 1.6 2.5.6 1.8 1.5 4.5 1.3 4.6-.2 0-1.9-3-2.2-4.1zm-6.3 5l-.4-.8s-.6-2-.6-2.5c0-.4.2-1 .7.1s.6 2.2.7 2.6c.1.5.7 2.1.5 2.3-.1.1-.5-.9-1-1.7zm19.5 19.2l.9-.5 1.2 1.5c.7.7 1.5 1 2 1.7a8 8 0 002.8 2.3c1.3.7 1.8 1 1.5 1.1-.2.2-1.1-.3-1.1-.3s-.4 0-2-1c-1.5-.9-1.9-1.4-2.9-2.3l-2.4-2.5zm-6.8 8.1c-.6-.6-1.2-1-.9-1.4.4-.3.8-.3 1.3.2l2.9 2.6 2 1.5c.7.6 2.3 1.4 3 1.8.8.5 0 .5 0 .5l-1.2-.5-2.4-1-1.7-1c-1-.7-2.4-2-3-2.7zm-7.8 5.5c-.5-1 0-.8.8-.4.9.3 2.8 2.4 3.9 3.1 1 .8 2 1.1 3 1.6.8.4.8.7.8.9 0 .2-.4.2-.8 0l-1.7-.9-1-.2c-.5 0-1.3-.6-2.4-1.6-1.1-1-2.1-1.5-2.6-2.5zm-3.7 7.2c1.4.8 3.8 2.7 4.4 4 .6 1.2 1 2.1.9 2.3-.3.2-1-.2-1.2-.7l-1-1.2s-2.4-2.4-3.2-3a8.3 8.3 0 01-2.7-3c-.3-1 0-1.4 0-1.4s1.4 2.1 2.8 3z"/>
+  <path fill="#c52126" d="M365 170a22.3 22.3 0 018.3-2.6c3.6-.3 6.4.2 9.5 1 2.1.6 3.9.7 5.6.3 2.6-.7 4.6-3 5.3-6 0 0 2.4 3.1 0 6.5a7.2 7.2 0 01-4.3 2.9c-5.1 1-10.1-2-14.3-2.4-4.1-.2-7.3 2.4-7.3 2.4s-1 .8-2.4 0c-1.3-.8-1.7-1.4-.4-2.2z"/>
+  <path fill="#d4af3a" d="M379.6 317.5l1.2-.2c.7 0 2.2-.6 2.7-.8.5-.2 1.2-.2 1.6.3.5.5 4.1 2.7 4.1 2.7h-6c-2.1 0-3.5-2-3.5-2z"/>
+  <path fill="#d4af3a" d="M362.6 316.4v-.5l.8-1.8s1 .6 1.8 1.5c1.2 1.3 2.5 3 3 3.7 1 1.3 2.5 2.5 1.3.5s-1.6-3-2.6-4.4l-1.6-2 3.4-.5c2.5-.3 4.2-1.3 5.3-2l3.3-1.9s4.3 1.9 6 2.3c1.6.4 2.5.6 1 1.4-1.6.8-3 1-3.7 1.5a12 12 0 01-4.6 1.2c-1.5 0-4 0-3 1a22 22 0 014.2 13l-.1 2.5s-1.8-2-6.6-5a71 71 0 00-7.4-4.4c-.9-.4-1.3-.4-1.2-1.5l.7-4.6z"/>
+  <path fill="#d4af3a" d="M344.4 302a68.5 68.5 0 00.8-.4h.3c.5.3 3.4 2.3 4.6 4.2 1.2 1.9 2.4 2 1 0a17.9 17.9 0 00-3.2-4.2 23.4 23.4 0 00-1-.8 53.3 53.3 0 007.3-4.2c.4.6 1 1.7 1.7 2.5 1 1 3.2 2 3.2 2s-1.8-2-2.4-3.3l-.8-2.5a31.7 31.7 0 004.8-4.6c.3 1.3 1.3 4.2 4.2 7.4 3.7 4.2 11.2 6.3 11.2 6.3s2.6.3.5.9c-2.1.5-3.6 1.5-7.8.8l-5-1.1c-.5-.2-2 0 0 .7 2.1.8 7 1.5 8.8 1.4 1.8-.2 4.4-.6 1.7.8-2.6 1.4-3.7 2-5.3 2s-2.3.5-4 .5c-1.5 0-2-.3-3-.5-1.2-.3-1.9.1-1.9.6 0 .4 1.5 1.7 1.5 4.7 0 3.1-.3 5.1-.6 6-.3 1-1 2.4-1.4 3.2-.4.8-.6 1.7-1-.1-.5-1.8-1.5-4.4-1.9-6.1l-.8-2.7c-.1-.9-1.1-1.6-.6 0a133.4 133.4 0 011.2 5.2c.4 1.5 1.1 4.2-.2 2-1.3-2-6.4-7.7-7.2-8.8l-2.1-2.8c-.7-.8-2.4-1.9-3.2-3.1a28.5 28.5 0 00-4-4l4.5-2zm69.5-129.2c-.1 3.1-3.5 9-5.5 12.2-2 3.1-2.5 4.4-2.1 4.6.3.2 1.1-1.4 2.2-2.8l4.9-7.2c1.7-2.5 4.2-8.4 4.6-8.9.3-.5.4-.9 1.3-.2s2.6 7.2.5 11.6c-2 4.4-5 7.6-6.2 9.2-1.3 1.5-3 4-2.7 4.1.3.2.7-.4 2.3-2a47.3 47.3 0 009.6-12.5c.2-.4.5-.3.8 0 .5.5 1.4 1.8 1 5.3a17 17 0 01-5.3 10.2c-2.3 2.4-4.6 4.5-4.3 4.9.4.3 2.7-1.8 4.3-3.3 1.6-1.6 5.6-5.4 6.4-6.5 1-1 2.2-.5 2.1 3.7 0 4.3-4.7 8.5-6.7 10.9-2 2.3-4.3 3.7-4.1 4.2.2.5 2.1-.7 3.4-1.6l7-4.6c.9-.7 1.3.6.1 4.6-1.2 4-4.6 7.2-6.7 8.7-2 1.5-5.4 3.3-5.2 3.8.2.4 1.6-.2 3.5-1.1 2-1 4.3-1.8 6-2.3 1.6-.5 1.6.7 1.6.7s.4 3.5-2.1 6.2a13.3 13.3 0 01-8 4.3c-2.6.5-3 .6-3 1s.4.5 1 .5l5.3.2c2.3 0 3.5.6 3.5 1.6s0 2.3-3.3 4.6c-3.5 2.3-7.3 2.6-8.9 3-1.6.3-1.6.4-1.3.9.3.5 1 .4 3.6.7 2.5.2 4 1.2 4.4 2 .3.6-.2 2.6-2.3 4-2 1.4-4.7 1.9-8.7 1.6-4-.3-5-.3-5.2.3-.1.7 1.2 1 3.2 1.2 2 .4 3.6.4 4.7 1.3 1.2 1 .3 2.9-1.7 4.3-1.9 1.4-6.7 1.4-8.7 1.3-2-.2-5.1-.9-5.3-.4-.2.6 1.5 1.4 3.5 2.1 2.1.8 2.7 1.2 3.1 2.1.4.9 0 1.7-2.4 2.6a12 12 0 01-8 0c-1.8-.8-2.8-1.1-3.2-.8-.3.3 0 .7.4 1.1.4.5 2 1.8 4.1 2.3 2 .6 2.3.6 3 2.2.8 1.7-1.1 3-4.9 3.2-3.7.1-8.7-1.4-10.3-2.3-1.6-1-2.2-1.1-2.5-.8-.3.3-.2.5.6 1.1.8.6 3.3 2.5 4.6 2.8 1.3.3 1.4 1.3 1.4 2.1 0 1 .4 2.6-3 3.5-3.3.8-7.3.2-10.9-2.4a8.3 8.3 0 01-2.2-2 28 28 0 00-.3-8c.7 0 2-.3 3.4-.9 2-.8 2.8-2.6 3.3-3.6s1.2-1 2-.8c.8.3 1.6.6 2.7.6a7.9 7.9 0 005.3-2.8c1.7-2 1.4-4 1.5-5 0-1 1.6-.3 2.4-.3.8 0 3.2-.4 5.3-1.9 2.2-1.4 2.2-3.4 2.4-4.3.2-.8 1-1.3 1.7-1.6.7-.2 1.7-.5 3.2-1.7 1.5-1.2 2-3.5 2-4.4.2-.8 1-.8 4-2.4 3-1.5 2.8-4.7 2.6-6 0-1.3-1.5-2.3-1.5-2.8s1-.6 2-1.2 3.6-1.6 3.6-5.4c0-3.7-2.4-4.1-2.4-4.1l1.5-.8c1-.6 3.7-2.5 3.7-4.7s-1-3.2-1.7-3.8c-.7-.5-2.7-1-2.7-1s1.2-.9 1.8-2.6c.5-1.7.7-3.9-.6-5.4-1.2-1.6-3.4-1.6-4.5-1.6-1.2 0-2.2.6-2.6.3-.4-.3-.4-.6 0-1.5.4-.8.4-3 .1-3.7-.3-.8-.4-2.2-3.3-3.2-2.9-.9-5.9 1-6.8 1.6-1 .5-.5-.8-.5-1.7 0-1 1.9-3.3 4.1-6.6 2.2-3.4 3.2-5.1 5.7-10.2A65.7 65.7 0 00409 159c.4-1.6 1-.8 1-.8s.7.2 2.2 4.1a25 25 0 011.7 10.5z"/>
+  <path fill="#d4af3a" d="M363.4 241.4c1.7-.1 4-1 5.7-3.6 1.7-2.5 4.3-3 8.8-3 4.5.1 6.6-2 7.7-5.2 1-3-.2-6.6-4.8-8.9-4.5-2.2-6.6-4.7-6.8-8.6-.1-3.9 4.6-8.7 9.3-14.1 4.8-5.5 8.5-13.2 8.5-13.2s1.4 1.8 1.4 3.7c0 1.8-.7 3.7 0 4.2s.9-.8 3.7-2c2.7-1.2 5-1.4 6.7.6 1.7 2 0 5.4-1.6 7-1.5 1.7-2.8 3-2.4 3.5.4.6 2.8-.9 3.5-1.4.8-.5 2.6-2.5 5.3-2.3 2.7.3 3.6 1 3.9 3.3.2 2.3-2.4 4.2-4.2 5.1-1.7.9-2.4 1.6-2 2 .5.3 1 0 1.7-.3a8 8 0 014.3 0c1.4.6 3.6 2.5 1.6 4.8-2.1 2.3-6.4 3.2-7.3 3.3-.8.2-1.3 0-1.4.6 0 .7 1.8.7 4.2.8 2.3.1 3 2.4 2.7 4-.4 1.8-4.3 3.7-6.4 4-2.2.4-3 0-3.1.7-.2.6.2.8 1.4 1.2 1.2.3 3.6.6 4 2.5.4 1.9.5 2.7-1.3 4.4-1.8 1.6-4.7 1.4-5.6 1.2-.9-.2-1.9-1.1-2.8-.3-.8.9.8 1.6 2.3 2.6 1.5 1 1.4 3-1.1 4.4-2.5 1.4-5 .9-6 .5-1-.3-2.5-2-3.2-1-.7 1.1 2.2 1.5 3.4 3 1.2 1.4.8 3.8-1.6 5.3-2.5 1.5-6.4.4-7.1-.2-.7-.6-1.6-.8-2-.3-.6.5.2 1.9.7 3 .5 1.3 1.5 4.8-2.2 6.2s-6.9-1.7-7.5-2.3c-.6-.6-1.2-.7-1.7-.5-.5.3-.2.8.2 1.4.4.6 1.4 3.2-1.2 5a6.3 6.3 0 01-4.7 1c-.6-2-1.3-4.2-2-7.2h.5c.4 0 .5.5.5.7 0 .2-.1.4.2.4.3 0 .3.2.8.5.4.3.8.7 1 .5.3-.2-.9-.8-1.2-1.2-.3-.4-1-1-1-1.4 0-.4-.2-.6-.8-1.1a2.4 2.4 0 01-.5-.6 97.9 97.9 0 01-1.2-7.2 57.1 57.1 0 01-.4-5.5h1.1zm73.7-53.8c-3.9 7.8-9.3 12.1-9.3 12.1l1-3.2c.3-1.4.1-2.9.1-2.9s1.4-1.7 3.9-5.6c2.5-3.9 3.8-9.6 3.8-9.6s-2.3 5.7-4.1 8.8c-1.9 3-4 5.5-4 5.5s-.7-2.7-1.2-2.8c-.5-.2-1 .2-1.4.8-.4.6-.8.6-.8.6l1.5-2.8 1.6-2.2c1.4-2.3 4.5-6.6 6-10.9a169 169 0 005.7-18.3c.7-3.2 1.3-1.4 1.9.9.6 2.3 1.4 5.7.9 10.7a53.5 53.5 0 01-5.6 18.9zm-5 21a135.9 135.9 0 01-3.5 2.5l.5-1.7.3-2.9 2.9-2.5a41.7 41.7 0 005.6-6c2.9-3.6.5-1.4-1.9 1.2-2.3 2.6-6.9 6.3-6.9 6.3v-.8a3.1 3.1 0 00-.7-1.9c-.4-.6-.2-.6 2.3-2.6a73.8 73.8 0 0017.6-24.4s1.5 9-4 18.7c-5.4 9.9-10.8 13-12.2 14.1zm-28.5 56.3c-3-1.2-2.2-4.1-2.2-4.1s1.8.5 3.5 1.2a36 36 0 007.5 1.8c1.6 0 1.6-.2 1.7-.4 0-.2-1.3 0-3.7-.4a29 29 0 01-7.2-3.1c-.7-.5-.6-.6.5-.7a4.5 4.5 0 002.3-.9c.4-.3 1.5.1 4.2.8a50.6 50.6 0 0021.5.7c.7-.2 1.4.2-.7 3.7-2 3.5-9.3 5.3-14.4 5.3-5 0-10-2.8-13-3.9zm13.4-7.2c-5.2 0-7.2-1.5-7.2-1.5l.7-1.3c.7-1.1.6-2.9.6-2.9l3.4.6c2.2.3 4.7.6 7.5.1s1.6-.8-.6-.5a29 29 0 01-7.8-1c-1.4-.5-.9-1 0-1.3 1-.3 3.5-1.9 3.5-1.9s6.3.8 12.2.2c5.9-.7 9.6-2.2 10.8-2.4 1.1-.2 1.1.3 1.1.3s.3.6-1.7 3.7c-2 3.2-6 5.3-9.4 6.3a50.3 50.3 0 01-13.1 1.6zm1.3-12.2l.6-1.3c.3-1-.6-1.9-.6-1.9s1.2-.3 5-.8c4-.5 4.2-.8 6.5-1.3 2.4-.6 4-1.3 4-1.5 0-.3-.8 0-2.2.6a94 94 0 01-14.3 1.9c-.4-.3-2-.7-2-.7l2.4-.5a8.4 8.4 0 003.2-1.3c.7-.5 1-.6 4.1-1 3.2-.3 5.8-1.3 11.5-3.4 5.6-2 10-4.6 11-5.5 1.2-1 1.1-.3.8 1-.3 1.1-.2 2.6-3.1 6-2.9 3.3-4.3 4.8-11.5 7.4-7.3 2.7-15.4 2.3-15.4 2.3zm21.4-17.6a40.5 40.5 0 01-15.5 6.4c-.3-.4.4-2 0-2.8-.3-1.1-1-1.1-2.6-1.2-1.5-.1-.5-.4-.1-.4l3-.7c2.5-.7 5.1-1.1 8.6-2.4 3.6-1.4 4.6-2.3 4.5-2.6 0-.3-1.6.8-4.9 2-3.2 1.3-7 1.8-9 2.3-2.2.4-.4-.5.6-1 1-.6 2.4-2.8 2.4-2.8s2.3-.4 6-1.5a48.8 48.8 0 0010-4.2l3.2-2.2 5.2-3.7c1.3-1 .9-.2.7.4s-1 3.2-3 6.1c-2 3-2.7 3.8-9 8.3zm1-12.7c-6.2 5-11.7 6.6-12.6 7-1 .4-.8-.2-.7-.7.2-.5.3-2.2.3-2.2l4.8-2.8c2.5-1.4 5.3-3.4 7.2-4.7 1.8-1.3.7-1.2.1-.7-.5.5-3.1 2-5.7 3.6l-6.4 3.9s0-.9-.6-1.4c-.5-.5-1.9-.4-1.9-.4l1-1.3c.5-.6 2.6-1.3 4.9-2.4 2.3-1 6.5-4.2 9.6-6.8 3.1-2.6 9.1-9.1 9.5-9.7.4-.5.7-.4.7.3 0 .6.3 1-.4 4s-3.4 9.4-9.7 14.3zM418.5 168c-.7 1.5-1.5 2.6-2 3.6L415 174v-1.4c.1-.8.3-2 0-3.5 0-.8-.3-1.6-.2-2.3 0-.7.3-1.4.4-1.9l1.6-7c.4-2.7.9-6.4.8-9.7 0-3.2-.5-1.6-.5 0s-.1 4-.6 7.8c-.5 3.7-2.1 9.4-2.1 9.4s-.1-.9-.6-2.1l-1.9-4.2c-.6-1.6-.4-1.9-.4-1.9s2.3-10.6 2.8-15.6c.6-5 1.6-18.1 1.6-18.1 3.2 3.2 5.6 11.8 6 20 .4 6-.6 11.7-1 14-.5 4.5-1.3 8-2.5 10.5zm7.2 16.8c0-2.4-.6-4.3-2.2-4.8 0 0 1.4-2.4 2.6-5.8a45 45 0 001.8-7.7c.9-5.6 1.6-11.5-.1-2-1.7 9.7-3.8 13-3.8 13l-2.4 4c.3-1.7.4-3 .3-4.9 0-1.9-.3-4.5-1-6.5 0 0 3-6 5-13a81.4 81.4 0 003.1-22.7s3 2.3 4 13.9a68.4 68.4 0 01-7.3 36.5zm-33.2 88.6l1.9-1.3c1.5-.9 1-3.7 1-3.7a48.7 48.7 0 005.2 3.2c1.4.6 2.1 1 3 1.2 1 .3.7 0 0-.5-.8-.4-1-.7-3-1.4-2-.8-5.8-4.2-5.8-4.2l2.5-.1c1.6 0 3.6-.9 3.6-.9s1.6 1.4 8 4.2a50 50 0 0011.8 3.5s-.6 3.2-3.7 4.3c-2.6 1.1-6 1.8-13 .2a43.5 43.5 0 01-11.5-4.5zm-8.4 6.5c-.6-2.7 1-4.6 1-4.6l1.3 1.1c1 .9 2.3 2.5 5 3.9 2.7 1.3 3.7 1.2 1-.2a39.3 39.3 0 01-6.3-5.3l1-.4c1-.4 2.7.3 10 4.6 7.1 4.3 11.4 4.5 11.4 4.5s-3.2 3.9-12 3.6c-8.7-.3-11.9-4.5-12.4-7.2zm-16.6-3.1s1 1.3 2.3 2.2c1.3.9 4.8 1.4 4.8 1.4l.8 1.2c.6 1 2.1 3 3.7 4 1.5 1.2 4 2 4 1.6.2-.3-1.3-.8-2.8-1.8-1.5-.9-2.9-2.6-3.9-3.7-1-1.2.5-1 .5-1h3.5c1.7-.2 1.3 0 1.8.7l2.4 3 4.4 5.1c1 1.2.3 1.5.3 1.5s-.5.7-4.4 1.2c-2.4.2-5 0-7.7-1.6a23.4 23.4 0 01-5.2-4.5c-4.7-5.1-4.5-9.3-4.5-9.3zm-2 10.5l1.5 1.8s-.7-2-1.3-3l-.9-1.4c.7-1.4 1.2-3 1.6-4.7.4 1.4 1.7 5.5 3.4 8.1 2 3.2 3.8 4.4 2.6 5.3-1.1.8-3.4 1-6-.2-2.4-1.2-3-3.3-3.4-5a24.8 24.8 0 001.2-2.1c.3.2.8.5 1.3 1.2z"/>
+  <ellipse cx="-365.9" cy="158.6" fill="#d4af3a" rx="1.8" ry="1.6" transform="scale(-1 1)"/>
+  <path fill="#d4af3a" d="M369.7 155.5c-1.6 0-2.5-.8-4.3-.6a26 26 0 00-8.5 3.3 14.6 14.6 0 01-9.8.9c-1-.3-2-.9-2.9-1.4-4.3-2.4-3.2-7.1-3.2-7.1a16.7 16.7 0 0010.6 3.2l-.9.8c-.6.6-1.7 1.4-1.4 1.7.4.3 2-1.2 3.3-2.2 1.3-1 3.2-2.2 6.5-3.2s7-1 9.4.4c2.5 1.3 2.7 3 2.4 3.7-.2.4-.7.5-1.2.5zm-46.2 34.7c.8-.2 2-.4 3.8-2a69 69 0 006.3-7c.5-.8.3-1.5-1-2-1-.5-1.9-2-1.9-2s2.5-1 4.3-2.2c1.7-1.2 5.6-4.8 6.2-5.7.5-1 .3-1-.5-1.3-.9-.3-1-.8-1-.8s1.8-1.2 3.5-2.6a71 71 0 004-3.6c2.6 1 6.6.6 8.8.2 3.8-.7 6.7-2.3 6.7-2.3l.6 1.8c.5 1.2 2.2 1.8 4 .7 1.8-1.2 1.4-3.7 1.4-3.7s1.4-1 4.4-2c3-1.1 5.3-1.3 7.7-.2 2.4 1.1 3.6 4.4 3.6 7 0 2.4-1.3 1.3-1.6 1-.3-.3-.8-2.1-3.8-2.6s-5.8 1-9.2 3.8c-3.4 2.8-4.2 3-6 4.8-1.6 1.8-.3 2.7 2.7 3.7s6.7-1 6.9-.9c.5.3-1.3 3-3.9 4-2.5 1-5.8.3-8.3-.8-1.7-.6-2 0-2.5.6a15 15 0 00-4 9 4 4 0 01-2.6-3c-.1-.6-.3-1.8-1.2-1-1 1-1.8 6-1.8 8.2s.7 5.3.7 5.3h-.7l-2.3-1.2c-1-.7-1.2 0-1.2 1.3s-.4 3.6-2 7.8c-1.7 4.2-4 5.5-4 5.5s-.5-.8-1-2.5a33 33 0 01-.8-7.7c0-2.8.7-8.8.7-8.8s-3.4 4.2-7 5.2-7.1.4-8.6-1.3c-1.5-1.7-.2-2.5.6-2.7z"/>
+  <path fill="#d4af3a" d="M347 201s1 2.5 1.6 3.3c.6.9.9 1 .9 1s-1.1 1-2.7 1.4a35.5 35.5 0 01-3 .8s1.8-2.4 2.4-4.1l.7-2.3zm-21.5-1.3a71.6 71.6 0 01.9-2.1 15 15 0 008.1-1.7s-1.6 3.3-3.3 4.5l-1.8 1.2s1.6.3 3.8-2c2.2-2 3.2-4.6 3.2-4.6s-.5 5.8.4 9.3l1 4s-4.6.9-9.8-.6c-5.2-1.4-5.6-1.9-5.6-1.9s-.6-.1.2-1.2a28 28 0 003-5z"/>
+  <path fill="#b96b29" d="M335 187l1.7-2.3s.6.5 0 1.3a16 16 0 01-4.2 3.7c-1.6.9-3.1 1.2-3.1 1.2v-.4s4-1.7 5.5-3.5zm6.3 12l.4-8.3c0-1 .6-.8.6-.8l.8.3-1.5 10.6c-.2 1.2-.7 1-1 1 .5-.3.6-2.5.7-2.8zm9.8-31.4c.6-.6 1.9-1 .6.4-1.3 1.4-3 3.2-3.4 4.7-.5 1.4-.8 3.3 0 2.9.8-.4 1.4-.4 2.3-1.2 1-.7 2.6-2 3.3-2.1.7-.2 2 0 1 1a24.8 24.8 0 01-4 3.6l-4 2.6a36.9 36.9 0 01-2 1.3s1-6 2.6-8.5a26.3 26.3 0 013.6-4.7zm32 99.2c1.2 1 2.8 1.3 2.8 1.3s.7 0 .7.2-.9 0-1.8-.1a8 8 0 01-2.6-1.4c-.4-.4-1.1-.8-.9-1.4.2-.6.6.5 1.8 1.4zm-10.4 5.5l2.3 1.8 1.3.7c.6.2.8.6.8.6s-.1.2-.8 0c-.7-.2-2.8-1.7-3.5-2.3-.6-.6-1-.7-.7-1 .3-.2.4 0 .6.2zm42-74.4c-.4.4-.9 1-1 .9-.3-.2 0-.5.4-1l.8-.9 1.1-1.5c.4-.4 1-.7.3.3l-1.7 2.2zm3.1 7l-1.3 1.3c-.5.5-.9 1.1-1.2.8-.3-.3.7-.9 1.2-1.5a7.5 7.5 0 011.4-1.4 10 10 0 011.3-.8l-1.4 1.6zm-1.2 11.2c-.8.9-2 1.1-2 .8-.2-.4 0-.6.7-1a24.4 24.4 0 004.6-3c.2 0-1 1.4-1.4 1.6-.4.2-1 .8-1.9 1.6zm-2.2 9c0-.3-.1-.5.5-.5l1.6-.2s1.3-.5 1.4-.2c0 .3-1 .8-1.6.8l-1.4.4c-.3.2-.5 0-.5-.3zm-1 9.8c1.4 0 2.6-.3 2.7 0 0 .1-.7.5-1.4.7-.7.3-2 .3-3 .4-.9 0-1-.2-1-.6 0-.5 1.3-.5 2.7-.5zm-11 10.8c.1-.2.6 0 1.4 0 .8.3 2.1.5 2.8.5l2.4-.1 1 .2c0 .2-1.3.2-3 .4-1.8.2-3-.2-3.8-.3-.8-.2-1-.5-.9-.7zm-4.6 7.6a6 6 0 002.1.4l2.3.3s.7 0 .6.4c-.1.3-.4 0-1-.1h-2.4c-1.2 0-1.8-.4-2.5-.5-.7-.1-1.5-.5-1.1-1 .4-.4 1.1.2 2 .5zm-9 5.8l2.5 1.8 1.1.6c.8.4.7.6.6.8-.1.2-.6-.3-1-.5a16.4 16.4 0 01-2.5-1.6c-.7-.6-1.6-1-1.4-1.5.1-.4.3-.1.8.4zm14.9-74.8l-1.7 2.3c-1.6 2-.7.1-.4-.4l3.4-4.5c.8-.9 1-.5.5 0l-1.8 2.6zm3.2 9.8c-.2-.2.3-.4 1.1-1.5l2.7-3.3.6-1c.2.1-.6 1.8-1.3 2.5-.7.7-1.6 2-2.1 2.7-.5.6-.8.9-1 .6zm-4.3 18.5c0-.5 1.8-.5 2.6-.6l2.2-.5s1.6-.3 1.6 0c0 .1-.3.3-1.2.5l-3.3.8c-1 .1-1.9.3-1.9-.2zm4.3-10a15.3 15.3 0 01-2.5 1.7c-.6.4-1.1.8-1.4.5-.4-.4.2-.7 1.2-1.1l1.5-.9 1-.5c.5-.3 1.3-.6.2.3zm-10-6.5l1.4-1s.9-.8 1-.5c.2.3-1 1-1.5 1.6-.5.5-1.5 1.9-2 1.6-.5-.3.5-1.1 1.2-1.7zm6.6 25.7l1.5.4c.7.2.7.4-.4.4s-1.6-.3-2.7-.5-1.5-.3-1.3-.7c.1-.3.7-.2 1.2 0l1.7.4zm-1.8 9.3c.1.2-.8 0-1.4-.2-.5-.2-1.7-.9-2.4-1-.7-.3-.7-.4-.7-.8s.7 0 1.6.2c1 .3 2 1.2 2 1.2l1 .6zm-12 5.6c-.8-.5-1-.8-.7-1 .3-.3.6-.3 1.2.2a51 51 0 002 1.5l1.1.5c.5.2 1.2.7 1 1-.2.1-1.2 0-1.7-.6s-2-1-2.9-1.6zm-5.6 7.5c-.4-.3-1.4-.6-1.8-1-.5-.3-.8-1.3-.4-1.4.4-.1.6.4 1.4 1l3.5 2.4.7.3c.7.2.4.5-.2.4-.7-.1-1-.1-1.8-.7l-1.4-1zm-8.4 7.1a9.2 9.2 0 01-2.2-1.7c-.5-.4-1.2-1-.8-1.3.4-.3.8.1 1.4.6l2.1 2.2s.2 0 1 .7c.9.7 0 .5-.3.3a3 3 0 00-1.2-.8z"/>
+  <path fill="#d4af3a" d="M338.2 142.5l4-1 2.5 2-3.1 1.4z"/>
+  <ellipse cx="-330.8" cy="142.1" fill="#b96b29" rx="3.2" ry="3.1" transform="scale(-1 1)"/>
+  <circle cx="-330.8" cy="141.4" r="1.9" fill="#d4af3a" transform="scale(-1 1)"/>
+  <path fill="#d4af3a" d="M337.5 131.4c-.8.3-1.9.2-1.9.2s-.3-1.4.5-2.1l2-1.7.5-.6v2c.1.8-.3 1.9-1.1 2.2z"/>
+  <circle cx="-335.8" cy="133" r=".6" fill="#d4af3a" transform="scale(-1 1)"/>
+  <path fill="#d4af3a" d="M340.2 132.4l.8.9s-.7 0-1.2.4c-.6.4-1.2.7-1.9.6a.9.9 0 01-.8-1c.2-.5.5-1 1.5-1.3 1-.4 1.3 0 1.6.4zm-2.2 3.7c2 .2 4.6-2 4.6-2 .3 1.8 1.4 2.7 3 3v.1s-1.7.8-3.5 1.1a7 7 0 01-2.5-.2 10.6 10.6 0 01-3-1c-1.2-.7-.9-2.6-.9-2.6s.2 1.5 2.2 1.6zm7.8-2c.8-.3 2-.9 2.6-1 .5 0 1.3 0 1.1.9 0 1-1 1.4-2 1.4s-1.5-.3-2-.6c-.6-.3-.5-.4.3-.7zm6.3-3.4c1-.7 1.7-.9 1.7-.9s.6 1.6.3 2.6-1 1.2-1.9 1.2c-.8 0-2.1-.5-1.8-1.2.4-.6.8-1 1.7-1.7z"/>
+  <ellipse cx="-351.3" cy="135.1" fill="#d4af3a" rx=".7" ry=".5" transform="scale(-1 1)"/>
+  <path fill="#d4af3a" d="M349.4 127.3c.5-2.7.4-5.6-2-9.3a16 16 0 00-7-5.1L339 111c-1.4-1.5-4.3-3.4-4.3-3.4l5.2 1.5a2.3 2.3 0 002.3 2.4c.4 0 .9-.2 1.3-.4 1 .1 4.4 2.2 5.2 2.9a2.3 2.3 0 00-.3 1.2 2.3 2.3 0 002.3 2.3c.3 0 .7 0 1-.2l.3.5a23.4 23.4 0 011.6 3.7c-.6.4-1 1.1-1 2 0 1.3 1 2.3 2 2.3v1.5c0 .7-.4 1.2-1.7 1.6-1.3.3-3 2.6-3 2.6-.2 0-1.1-1.6-.4-4.3z"/>
+  <path fill="#d4af3a" d="M341.3 110.3c-.4-.4-.5-1-.1-1.4.3-.3 1-.3 1.5.1s.6 1 .2 1.4c-.4.3-1 .3-1.6-.1zm8.5 5.7c-.5-.5-.6-1.3-.2-1.7.4-.4 1.2-.4 1.7.1.6.5.7 1.3.2 1.7-.4.4-1.2.4-1.7-.1z"/>
+  <circle cx="-354.8" cy="123.2" r="1.3" fill="#d4af3a" transform="scale(-1 1)"/>
+  <path fill="#d4af3a" d="M326.6 105c.7.2 2 .6 3.8 1.6-1.3 0-2.3.8-2.3 1.9 0 1 1.2 2.2 2.5 2.2s2.2-1.1 2.2-2.2c0-.2 0-.5-.2-.7l1.8 1.2c4.2 2.8 5.1 4.1 7.2 8 2 3.8 2.8 8 1.9 10.4-.9 2.5-4.2 3-4.2 3s.4-.3.4-.8l-.2-1.6c-.2-1 0-2.1 0-2.1s-.8-.1-1.2.4l-1.5 1.7-1.5 1.5s-.7-1-.7-2.1.8-2.3 1-4.3c0-2-1-5.5-2.9-8a22 22 0 00-6.6-5.5 2.1 2.1 0 01-1.3-1.7l-.2-2c-.1-1.2 1-1.1 2-.9z"/>
+  <path fill="#d4af3a" d="M330.8 109.5c-.8 0-1.4-.7-1.4-1.3 0-.6.5-1 1.3-1 .7 0 1.3.4 1.3 1s-.5 1.3-1.2 1.3zm-6.2 24.4c-1 .4-2.2.1-2.7-.2-.5-.4-.7-1.3 0-1.8a2 2 0 012-.2l2 1.3s-.3.5-1.3.9z"/>
+  <path fill="#d4af3a" d="M321.4 135c.3.6.6.9 1.7 1 1.1 0 2.3 0 3-.8a7.7 7.7 0 001.3-1.7h1.3s.4 1.7 1 2.1c.5.5 2.4.6 3.3 0 .8-.7 1.6-1.4 1.7-1.3.2 0 0 .7-.8 1.4s-1.5 1.3-3 1.3H323s-1.6 0-2-1c-.5-.9-.6-1.5-.3-1.7.2-.3.3.1.7.7z"/>
+  <path fill="#d4af3a" d="M333.5 133.7c-1.2.6-1.9.2-2.3-.3l-.5-.8 1.7-.7c.5-.4.9-.7 1.5-.6l.6.1s.2 1.6-1 2.2z"/>
+  <ellipse cx="-339.3" cy="121.9" fill="#b96b29" rx="2.7" ry="2.6" transform="scale(-1 1)"/>
+  <path fill="#b96b29" d="M334.7 112.7c1-.7 2.6-.4 3.5.6.8 1.1.7 2.6-.4 3.3-1 .7-2.6.4-3.5-.6-.9-1.1-.7-2.6.4-3.3z"/>
+  <ellipse cx="-339.4" cy="121.5" fill="#d4af3a" rx="1.6" ry="1.5" transform="scale(-1 1)"/>
+  <path fill="#d4af3a" d="M335.8 113c.7-.2 1.5.2 1.9.8.3.6 0 1.2-1 1.4-1.7.3-2.5-1.8-1-2.2z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mf.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mf.svg
new file mode 100644
index 0000000..bf46785
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mf.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mf" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h640v480H0z"/>
+    <path fill="#00267f" d="M0 0h213.3v480H0z"/>
+    <path fill="#f31830" d="M426.7 0H640v480H426.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mg.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mg.svg
new file mode 100644
index 0000000..76e84fc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mg.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mg" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#ff3319" d="M213.3 0H640v240H213.3z"/>
+    <path fill="#00cc28" d="M213.3 240H640v240H213.3z"/>
+    <path fill="#fff" d="M0 0h213.3v480H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mh.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mh.svg
new file mode 100644
index 0000000..f74e99d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mh.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mh" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="#3b5aa3" d="M0 0h639.9v480H0z"/>
+    <path fill="#e2ae57" d="M0 467L639.9 0v87L0 480v-13z"/>
+    <path fill="#fff" d="M22.4 480L640 179.2l-.1-95.5L0 480h22.4zm153-464.8L169 118l-27-65.6 10.4 69.8-41.9-56.4 27.5 64.3-55-42.6 42.8 53.6-62.1-27.6 54.4 41.2-67.7-9 64 25.4L14 180.3l100.6 6.7-63.7 26.2 67-9-54.3 40 63-27.6-43 54 54.6-41.3-27 62.9 43.6-54.7-11.8 68.1 27.5-63.7 6.2 100.7 9.7-100.4 23.7 64-9-69 43.4 54.8-28.6-64 54.6 44-43.4-54.9 64.9 27-57.4-41.9 69.9 11.8-67-25.7 104.1-6.5-104-9.7 68.5-22.8-71 9 58.6-41-66 26.5 45.6-55.3-55.6 43.4 26.7-66.4-43.1 56.4 9.3-70.4-25.7 66.5-9.6-102.8z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mk.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mk.svg
new file mode 100644
index 0000000..1f1eaf6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mk.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mk" viewBox="0 0 640 480">
+  <path fill="#d20000" d="M0 0h640v480H0z"/>
+  <path fill="#ffe600" d="M0 0h96l224 231.4L544 0h96L0 480h96l224-231.4L544 480h96zm640 192v96L0 192v96zM280 0l40 205.7L360 0zm0 480l40-205.7L360 480z"/>
+  <circle cx="320" cy="240" r="77.1" fill="#ffe600" stroke="#d20000" stroke-width="17.1"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ml.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ml.svg
new file mode 100644
index 0000000..66da1bb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ml.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ml" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="red" d="M425.8 0H640v480H425.7z"/>
+    <path fill="#009a00" d="M0 0h212.9v480H0z"/>
+    <path fill="#ff0" d="M212.9 0h214v480h-214z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mm.svg
new file mode 100644
index 0000000..c77927e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mm.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-mm" viewBox="0 0 640 480">
+  <defs>
+    <path id="a" fill="#fff" d="M0-.5l.2.5h-.4z" transform="scale(8.844)"/>
+    <g id="b">
+      <use width="18" height="12" transform="rotate(-144)" xlink:href="#a"/>
+      <use width="18" height="12" transform="rotate(-72)" xlink:href="#a"/>
+      <use width="18" height="12" xlink:href="#a"/>
+      <use width="18" height="12" transform="rotate(72)" xlink:href="#a"/>
+      <use width="18" height="12" transform="rotate(144)" xlink:href="#a"/>
+    </g>
+  </defs>
+  <path fill="#fecb00" d="M0-.1h640V160H0z"/>
+  <path fill="#ea2839" d="M0 320h640v160H0z"/>
+  <path fill="#34b233" d="M0 160h640v160H0z"/>
+  <use width="18" height="12" x="9" y="6.4" transform="matrix(40 0 0 40 -40 0)" xlink:href="#b"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mn.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mn.svg
new file mode 100644
index 0000000..6c62973
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mn.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mn" viewBox="0 0 640 480">
+  <path fill="#c4272f" d="M0 0h640v480H0z"/>
+  <path fill="#015197" d="M213.3 0h213.4v480H213.3z"/>
+  <circle cx="107" cy="189.1" r="35" fill="#f9cf02"/>
+  <circle cx="107" cy="173.2" r="38.2" fill="#c4272f"/>
+  <path fill="#f9cf02" fill-rule="evenodd" d="M91.1 131.8a15.9 15.9 0 0031.8 0c0-6.3-4-7.2-4-9.5 0-2.4 2.4-5.6-2.4-9.6 2.4 4-1.6 4.8-1.6 8.8 0 4 1.6 4 1.6 7.1a3.2 3.2 0 01-6.3 0c0-3.1 3.1-6.3 3.1-11 0-4.9-.7-6.5-3.1-10.4-2.4-4-6.4-7.2-3.2-10.4-4.8 1.6-2.4 8-2.4 12s-3.2 6.3-3.2 11 2.4 5.7 2.4 8.8a3.2 3.2 0 01-6.3 0c0-3.1 1.6-3.1 1.6-7.1s-4-4.8-1.6-8.8c-4.8 4-2.4 7.2-2.4 9.6 0 2.4-4 3.1-4 9.5z"/>
+  <circle cx="107" cy="179.5" r="25.4" fill="#f9cf02"/>
+  <path fill="#f9cf02" d="M37 230.4v152.7h31.8V230.4zm108.2 0v152.7H177V230.4zm-70 25.5v12.7h63.6v-12.7zm0 89v12.8h63.6V345zm0-114.5h63.6L107 249.5zm0 133.7h63.6L107 383z"/>
+  <circle cx="107" cy="306.8" r="33.7" fill="#f9cf02" stroke="#c4272f" stroke-width="3.8"/>
+  <path fill="none" stroke="#c4272f" stroke-width="3.8" d="M107 273a16.9 16.9 0 010 33.8 16.9 16.9 0 100 33.7"/>
+  <circle cx="107" cy="289.9" r="6.4" fill="#c4272f"/>
+  <circle cx="107" cy="323.6" r="6.4" fill="#c4272f"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mo.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mo.svg
new file mode 100644
index 0000000..30e9129
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mo.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-mo" viewBox="0 0 640 480">
+  <path fill="#00785e" d="M0 0h640v480H0z"/>
+  <path fill="#fbd116" d="M295 108.7l40.5 29.5L320 90.5l-15.5 47.7 40.6-29.5z"/>
+  <g id="mo">
+    <path fill="#fff" d="M320 331.6H217.5a146.3 146.3 0 01-3.8-4H320a2.1 2.1 0 011.4 2c0 .8-.5 1.7-1.4 2zm0-31.3a13 13 0 001.2-7.6 12.4 12.4 0 00-1.2-3.8 82 82 0 01-32.5 19 81 81 0 01-23.5 3.5h-63.1a144.4 144.4 0 005.8 8h61c20 0 38.2-7.2 52.3-19.1zm-109.6-24.7a32.3 32.3 0 01-9.7 2 81 81 0 0060.8 27.5 80.9 80.9 0 0058.5-25 441 441 0 004.5-58.8 441 441 0 00-4.5-67.7c-6.6 6-19 18.7-24.8 38.3A81 81 0 00292 215a80.7 80.7 0 0013.7 45 80.7 80.7 0 01-17-49.5c0-12.4 2.8-24.2 7.8-34.7a32.5 32.5 0 01-7.5-13 80.7 80.7 0 00-10.5 40c0 18 5.9 34.7 15.9 48.1a95 95 0 00-73.4-29.4 32.6 32.6 0 016.8 8.9 95 95 0 0168.6 29.4 95 95 0 00-61-22.2 95 95 0 00-36.7 7.3 81.2 81.2 0 0082.6 52.2c-4.7.8-9.5 1.3-14.4 1.3a80.8 80.8 0 01-56.4-22.8zM320 364.4h-53.1a143.5 143.5 0 0053.1 10.1 11 11 0 001.3-5 11 11 0 00-1.3-5.1zm0-24.5h-93.6a143.8 143.8 0 007.8 6.2H320a4.6 4.6 0 001.3-3.1 4 4 0 00-1.3-3.1zm0 12.5h-76.7a143.6 143.6 0 0014.4 8H320a7.6 7.6 0 001.2-4.2 7.5 7.5 0 00-1.2-3.8z"/>
+    <path fill="#fbd116" d="M200.5 174.8l25.4 23.6-6.7-34-14.6 31.4 30.3-16.8zm36.9-32l34.7.6-27.7-21 10.1 33.3 11.3-32.9z"/>
+  </g>
+  <use width="100%" height="100%" transform="matrix(-1 0 0 1 640 0)" xlink:href="#mo"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mp.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mp.svg
new file mode 100644
index 0000000..bf9ed63
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mp.svg
@@ -0,0 +1,86 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mp" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="mp-a">
+      <path fill-opacity=".7" d="M0 0h640v480H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#mp-a)">
+    <path fill="#0071bc" fill-rule="evenodd" d="M-160 0h960v480h-960z"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.9" d="M370 365.7s15.2-16.1 29.8-13c4.4-17 21-18.4 21-18.4s-1.7-18.7 19.5-22.8c.6-12.7 13.5-23.3 13.5-23.3s-2.6-19.7 10.8-24.3c-8.2-15.6 2.8-27 2.7-27.3-.2-.3-14-24.8-1.6-31.8-13-11-8.8-23.4-8.8-23.4s-14.2-3.7-9.1-20.7c-11.7-2-14-20.9-14-20.9s-18 3.7-20.2-12c-12 1.9-13.2-9.8-13.4-9.8-.1 0-23.5 6.3-28.2-11.4-9.1 4.7-13-3.7-13-3.7s-13 6.5-20.8-6c-15.5 9.7-24.2-.4-24.2-.4s-20.3 13.4-27 3c-12 12.2-22.8 7-22.8 7s-9 16-23.7 12c-3.3 14.9-20.2 15.2-20.2 15.2s1.8 13.1-18.4 16.7c-2.6 15.5-13.2 18-13.2 18s1 15.2-8.5 20c3.4 8.5-5.4 18.9-5.4 18.9s9.4 11.7-3.4 24.9c12.3 3.2 3.4 24.4 3.4 24.4s17 7.6 6.3 21.7c12.2 4 8.4 13.6 8.5 19.3 7.8 3.5 14.6 1.8 11.3 17.4 23.8 2.7 12.6 15.8 12.6 15.8s11 .5 6.7 9.3c20.3-.5 23.3 15.2 23.3 15.2s18.8-5 21.3 2.3-8.2 56.7-8.2 56.7-16 0-27.8-12.8c-27.8-.7-21.6-19-22-19-.5 0-9.3 3.4-13.8-11.9-18.6 3.8-18-11.8-18.2-12-.1-.1-8.3-3.8-5.3-11.5-19.1 1.7-17.7-17-17.7-17-4.2-1.7-5.7-5.6-5.1-9.5-2.5-.9-19.5-1.2-10.7-23.6-16.2-9.8-6.1-21-6.1-21s-22.4-11.6-5.1-25c-13-19 1-28.5 1-28.5s-17.9-18.1.3-31c-3-27.5 13.4-34.1 13.4-34.1s-8.6-22.4 14.8-31.8c1.5-22.7 17.9-23.3 17.9-23.3s.4-18 26.2-16.2c5-16.1 22.5-12.9 22.5-12.9s5.4-19.5 29.3-10.1c12.1-23.7 30.2-11.6 30.2-11.6s11.4-7.4 17-5c7.3-12.5 22.8-.6 32.7 1.9 3.7-1.5 16.6-11.2 26.5 1 13.2-8.5 24.5 7 24.5 7s18.1-9.2 26.6 11.8c38.5-3.5 33 21.7 33 21.7s30.2-6.9 23.6 23.3c27.6 1.9 24.8 20 24.8 20s17.4 13.2 9.8 25c15.5.8 9.8 15.7 9.8 15.7s11.9 4.6 2 23c22.7 18.1 4.4 36.2 4.3 36-.2-.1 12.1 14.6 1 31.6 3.4 27-10.2 33.8-10.2 33.8s3.5 17.5-11.7 22.4c-.3 20.5-19.7 23-19.7 23s5.2 9-14 18.3c-.8 13.7-20.8 14.8-20.8 14.8s-1.9 25.2-27.4 18.4c-6.1 20.2-36 14.2-36.6 14-.5-.3-5.7-43.4-5.7-43.5z"/>
+    <path fill="#217900" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="1.9" d="M185 124s6.4 5.6 5.2 14c-1.2 8.3-6 19.9-5 28.5.6 3.5.3 9.7.3 9.7s-5.7-8.2-5.8-17 6.2-17.1 6.2-23.6-1.1-11.7-1-11.5zm-3.2 2.6s-8.4 8-9.5 15.7c-.8 4-1 22.7-1.2 31-.2 2.5-1.2 12.5-1.4 16.2-.3 3.6 6.1-6.2 6.5-14.3-.2-8.3-.2-25.8.6-28.5.8-3.4.6-7.1 1.8-10.5l3.2-9.6z"/>
+    <g fill="#ffd200" fill-rule="evenodd" stroke="#ef8a10">
+      <path stroke-width="1.9" d="M366 100.5s10.8-5 14-14.4-9.5-9.4-11.1-6.4c-1.7 3 1.4 10.3.6 12.3-.8 2-5.2 6.6-3.5 8.4z"/>
+      <path stroke-width="2.5" d="M269.8 103.9s7-9.7 5.2-19.4c-1.9-9.6-12.8-3.6-12.8-.2s6.2 8.3 6.5 10.4c.3 2.1-1.3 8.4 1 9.1zm-19.1 5.7s7-9.7 5.2-19.3c-1.8-9.7-12.8-3.7-12.8-.3 0 3.4 6.3 8.4 6.6 10.5.2 2-1.3 8.3 1 9.1zm-21.1 6.5s7-9.6 5.2-19.3c-1.9-9.7-12.8-3.7-12.8-.3 0 3.4 6.2 8.4 6.5 10.5.3 2-1.3 8.3 1 9.1zm-15 14.9s7.1-9.7 5.3-19.3c-1.8-9.7-12.8-3.7-12.8-.3 0 3.4 6.3 8.4 6.5 10.5.3 2-1.3 8.3 1 9.1zM199 145.4s7-9.7 5.2-19.4-12.8-3.6-12.8-.2 6.3 8.3 6.6 10.4c.2 2.1-1.3 8.4 1 9.2z"/>
+      <path stroke-width="1.9" d="M235 61.7s-9.4 7.4-10.2 17.2c-.8 9.8 11.3 7 12.2 3.7 1-3.3-3.7-9.7-3.4-11.8.3-2 3.5-7.7 1.4-9zm31.3-9.6s-9.3 7.4-10.2 17.2c-.8 9.8 11.3 7 12.3 3.7.9-3.3-3.8-9.8-3.5-11.9.3-2 3.5-7.7 1.4-9zm-116.7 84.5s2 11.8 10.2 17.3c8.2 5.4 11.5-6.6 9.1-9s-10.3-1.4-12-2.6c-1.7-1.3-5-6.8-7.3-5.7zm-15.6 40s0 12 7.3 18.7c7.2 6.6 12.4-4.7 10.4-7.4s-10-3-11.4-4.5c-1.5-1.6-4-7.5-6.3-6.7zm36 44.8s-4.2-11.2-13.3-15c-9.1-3.6-10 8.8-7.2 10.7 2.9 1.8 10.4-.7 12.3.2 2 .9 6.3 5.6 8.3 4zm-7.4-19.4s7.2-9.5 5.6-19.1c-1.7-9.7-12.7-4-12.8-.6 0 3.4 6 8.5 6.3 10.6.2 2.1-1.5 8.3.9 9.2zm225.6-91.9s10.8-5 14-14.3-9.5-9.4-11.1-6.5c-1.7 3 1.4 10.4.6 12.3-.8 2-5.2 6.7-3.5 8.5zm32.8 16.4s6.4-10.1 3.9-19.6c-2.5-9.5-13-2.8-12.8.6.2 3.3 6.8 7.9 7.2 10 .4 2-.7 8.4 1.7 9zm89.6 93s-4.3-11.1-13.4-14.9c-9.1-3.7-10 8.8-7.2 10.6 2.9 1.9 10.5-.7 12.3.2 2 1 6.3 5.7 8.3 4.1zm-43.8 7s.2-12 7.5-18.6c7.3-6.6 12.4 4.9 10.4 7.6-2.1 2.7-10 2.8-11.6 4.3-1.4 1.5-4 7.4-6.3 6.6zm-7-126.8s-11.3-4.3-20 0c-9 4.4-.2 13.4 3 12.5 3.3-1 6.4-8.3 8.4-9.1 2-.8 8.4-1 8.5-3.4zM434 78.3s-11.1-4.3-20 0c-8.8 4.4-.1 13.4 3.2 12.5 3.2-1 6.4-8.3 8.3-9.1 2-.8 8.4-1 8.5-3.4zm-38-20.4s-9.5 7.3-10.4 17c-1 9.8 11.2 7.1 12.2 3.9 1-3.3-3.7-9.8-3.4-11.9.4-2 3.6-7.6 1.6-9zm-24.8-6s-4.4 11.1-.1 20c4.3 8.9 13.3.2 12.4-3-.9-3.3-8.2-6.5-9-8.4-.8-2-.9-8.5-3.3-8.6zm-70.5 43s7.7-9.2 6.6-19c-1.1-9.7-12.5-4.5-12.7-1.1-.3 3.4 5.6 8.8 5.7 10.9.1 2-1.9 8.2.4 9.1z"/>
+    </g>
+    <path fill="#8c8a8c" fill-rule="evenodd" stroke="#000" stroke-width="1.9" d="M342.8 114.4s18.5 1.2 19.4 11.8-4.4 17.1-4.4 17.1 2.3 23-15.8 29.7c-19.4 2.3-49.9.5-49.9.5s-9 2.2-12.6-16.3a305 305 0 01-4.6-31.6s1.8-10.4 14.9-11c13-.7 52.8 0 53-.2z"/>
+    <path fill="none" stroke="#000" stroke-linecap="round" stroke-width="1.9" d="M357.7 143.2s-10 12.4-9 17.5"/>
+    <path fill="#8c8a8c" fill-rule="evenodd" stroke="#000" stroke-width="1.9" d="M344.3 172.3c2.5 2.1 4.8 4.4 5.3 12l1 15.4 13 116.6 11.4 84.3.8 13s-2.7 9.7-10.4 10.5c-5.5 11.6-35.7 15-38.7 14.9-2.7-.2-12.3-4.2-18.1-3.7-5.9.5-16 4.4-20.5 3.8-4.5-.7-14.8-4.2-16.6-11.6-12.7-4-14.7-13.7-14.7-13.7l13.7-97.5 13.3-123.4s1.6-16.4 8.2-18.9c6.9-.6 42.4.7 52.3-1.7z"/>
+    <path fill="none" stroke="#000" stroke-width="1.9" d="M274.4 341.1l-2.7 86.3m86.5-74.9l7.6 71.2"/>
+    <path fill="none" stroke="#000" d="M136.6 296.3l-.3 1m358.7-4.1l.3 1"/>
+    <path fill="none" stroke="#6b18b5" stroke-linejoin="round" stroke-width="1.9" d="M127 179.8s5.6 7.9 6.7 12.4c1 4.5 2.9 13.4 5.3 17 2.5 3.7 16.6 23.9 17.4 32.3.1 5.6-5.9 15-14.7 15.2-5.6-.2-19.8-3.8-20.4-16-.6-12.3 4.3-12.5 5-20 .5-7.4.7-40.7.7-40.9z"/>
+    <path fill="none" stroke="#6b18b5" stroke-linejoin="round" d="M224.5 72.8s-6 .4-10.4 2.9c-3.5 2.1-9.5 5.3-13.6 11-10.6 8.2-26.5 12-31.5 19-3 4.6-2.8 15.7 4.7 20.5 4.8 2.7 19 7 25.8-3.1 6.8-10.2 2.7-13 6-19.6a117.4 117.4 0 0119-30.7zM367 58s-4.4-4-9.3-5.5c-4-1-10.6-.6-17.5-1.3-13.3-1.8-27-11.4-35.3-10.2-5.4 1-13.3 9-11.5 17.6 1.3 5.4 7.3 16.2 19.4 14.1 12-2.1 12-4.8 19-7 17.4-9.7 35-7.7 35.2-7.7zm141.4 137.4c1-2.3-.9-6.6-2.2-11.5-1.2-4-3.1-10-7.7-15.5-5.4-12.2-4.5-29-10-35.4-3.7-4-14.6-6.6-21-.4-3.9 4-11.4 16.6-3.2 25.7 8.2 9 11.8 5.7 17.4 10.5 13.5 9 20 25 26.7 26.6zM503.5 302c1.9-2.5 5.2-7.4 4.8-11.5-.3-3.2 1.5-13 1.7-17.3 1.2-13.3 9.5-24.2 7.2-35.7-1.3-5.4-9.2-13-17.8-10.8-5.2 1.6-17 8-14.3 20 2.7 12 6.6 11.7 9.1 18.7 7.3 14.5 2.7 31.7 9.3 36.6z"/>
+    <path fill="none" stroke="#000" stroke-width="1.9" d="M405.5 386.8s-2.3 4.4 6.8 8.2m11.3-18.4s10-2.5 16.8 0m13.2-25.4c0 .2-1.4 4.5 6.6 10.8m-.8-22s5.9 4.3 15.8 4m-75.4 8.6s.3 11.5-5.6 16.8m25.4-34.5s9.7 2.4 17.7-1.6m44.6-15.3s2.1 3 12.9 2.5m-54.9-9.3c.3.2 12.7 4.2 20.5.6m4.2-47.8s.5-.7 4.3 12.7m5.2-50.4s-.5 7.1-6.2 10.2m42.9-39.4s-8.4 6.8-6.8 9.5m-34.7-14.4s4.3 7.3-2.8 12.3M448.2 161s7.5-.3 10.8 6.1m-24.8-27.3h5.7m24-26c0 .1 1.5 1.5-1.4 4.5m-52-3.8s4 6.2 3.3 13.9m19.8-35.1c1.8-.2 7.7-2.8 7.7-2.8m-33.4-22c-.1 0-2.2 7.7 1.6 10.5m-11.1 25c0 8.4 6.6 6.3 2 14.3M382.2 97a57 57 0 00-10.4 9.4m-16.4-13.7s4.4 4.3 3.3 10.2m-16-13.7s-2.2 6.6-5.1 8.3m-18-10c-.1.3-3.6 7.8-6 9.1m-25.6-9c.2 0 3.5 7-.8 12m-6.5-48c.2.2.7 5.4-2.6 10m-28.7 1.9c0 .1 1.4 5.9-7.8 7.8m-9.9 45.2c.2.3 8.9 1.7 8.9 1.7M210 136.6c.2-.2 10.6-3.3 10.6-3.3m-27.4 16.3c.3 0 7.3 1.3 9 .4m-14 6s2.3 1.3.4 13m-34.2-43.5l4.2 6.2m-18.5 26c0-.2 4.2 6.2 9.8 7.4m23 25.2a49 49 0 008-2M170 213.8c.2 0-.1-4.3 5.2-7.3M163 224.7c0 .2 5 6.4 8.5 7.3m-11.5 4.7c.6-.2 6-4.9 12.2-4.5m-13.9 20.6s.2 5.4 16.2 4m-14.6 15c0-.2 4.7-10.8 14.2-14.8m-1.4 28.4s1.4-4.6 9.4-7.7m-.5 25.5s5.7-4.7 7.8-5.3m-.7 19.3s3.5 3.6 12.2-2.7m-54 5.6c1-.2 13.7-3.1 18 3.5m-13 7s13.4-1.8 15.1-.4m32.7 3.1s-1.8 3.7 14.7-2.4m5.8 9c-3 5 .7 9-3.2 11.3m-47-4.3c.5-.4 6-2.3 5.2-10.3m-.2 22.3c.7-.2 9.9-4.2 11.8-2.1m6.3 13.7s1.2-8.2 3.8-9m10 21.3s7.7-.1 11-2.6m3.8-25c.2.2 7.1 3.8 22 .2m-16.4 33s2 10.6 2 13"/>
+    <g fill="#de2010" fill-rule="evenodd" stroke="#000" stroke-width="1.5">
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(1.60885 -.2011 .2072 1.65762 94.8 75)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(1.60885 -.2011 .2072 1.65762 93.4 57.3)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(1.58497 -.3417 .35206 1.633 78 74)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(1.4455 -.73446 .7567 1.4893 55.9 163)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(1.4455 -.73446 .7567 1.4893 48.9 147.1)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(1.3781 -.85423 .88011 1.41987 40 167.4)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(1.28907 -.98346 1.01327 1.32812 33.8 193)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(1.1329 -1.15994 1.19508 1.16722 35.3 239)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(1.02138 -1.25922 1.29739 1.05234 34.3 262.7)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(.79817 -1.41132 1.45408 .82236 51.9 315)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(.66642 -1.4781 1.52289 .6866 56.8 337.4)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(.56582 -1.51945 1.5655 .58296 57.9 352.4)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(.4482 -1.5582 1.60543 .46178 63 370.4)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(.20288 -1.60864 1.65738 .20903 94.7 408.9)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(.06506 -1.62008 1.66918 .06703 106.3 427.4)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(.06506 -1.62008 1.66918 .06703 88.8 428)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-.36132 -1.5806 1.62852 -.37226 172.5 473.5)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-.49045 -1.54542 1.59227 -.50531 188.3 485.8)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-.67103 -1.476 1.52073 -.69138 221.9 499.1)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-.7945 -1.41337 1.4562 -.81858 241.4 508.3)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-.94339 -1.31867 1.35863 -.97197 271.6 515.4)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-1.05159 -1.2341 1.27151 -1.08344 292.4 520.2)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-1.13737 -1.15553 1.19056 -1.17183 308.9 526.1)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-1.2301 -1.05628 1.08829 -1.26738 331.4 529.6)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-1.33573 -.91908 .94693 -1.3762 362.5 526.1)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-1.47374 -.67597 .69645 -1.51841 415.9 504)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-1.52895 -.53958 .55593 -1.5753 438.7 497.5)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-1.61445 -.12005 .15429 -1.33344 500.5 406)"/>
+      <path d="M232.8 119c0-2-.8-4-2-5-1.4-1.1-3-1.1-4.2 0s-2.1 3-2.1 5c0 2.1.8 4 2 5.1 1.4 1.1 3 1.1 4.2 0s2.2-3 2.1-5z" transform="matrix(-1.58082 -.36035 .37125 -1.62873 468.4 480.8)"/>
+    </g>
+    <path fill="#ffe300" fill-rule="evenodd" d="M480 194.7c2.2-2.3 4.2-3 6.7-2.1-1-6.1-2.8-8.2-5.2-7.4-2.3.7-3.4 3.8-1.5 9.5zm3.3 18.2c2.3-2.1 4.3-2.6 6.8-1.6-.4-6-2.2-8.3-4.6-7.7-2.4.5-3.6 3.6-2.2 9.3zm-7.8-35c1.5-2.7 3.3-3.8 6-3.7-2.5-5.6-4.8-7.1-7-5.8-2 1.3-2.2 4.6 1 9.6zm-8.1-16.6c1.5-2.8 3.3-3.9 6-3.7-2.5-5.7-4.9-7.2-7-5.9-2 1.3-2.2 4.6 1 9.6zm-19.5-30.5c1-3 2.6-4.4 5.2-4.6-3.3-5.2-5.9-6.3-7.7-4.7s-1.5 5 2.5 9.3zM435 117.5c1-3 2.4-4.4 5-4.8-3.4-5-6-6-7.8-4.4-1.8 1.7-1.4 5 2.8 9.2zM408.3 95c0-3.2 1-5 3.3-6.2-4.8-3.7-7.7-3.8-8.8-1.7s.2 5.1 5.5 7.9zm14 10.5c.4-3.1 1.7-4.8 4.3-5.5-4.2-4.5-6.9-5.2-8.4-3.3-1.5 2-.7 5.1 4 8.8zm-30-19.3c-.3-3.1.5-5 2.7-6.5-5.2-3.2-8-3-9-.8-.9 2.3.8 5.1 6.4 7.3zM376.2 79c-.8-3-.3-5 1.7-6.8-5.6-2.4-8.4-1.9-9 .5-.6 2.4 1.5 4.9 7.3 6.3zm-17.5-5.4c-1.1-3-.8-5 1.1-7-5.8-1.9-8.5-1.1-9 1.3-.3 2.4 2 4.8 7.9 5.7zm-17.3-3.4c-1.2-2.8-1-5 .7-7-6-1.5-8.6-.5-8.8 2-.3 2.4 2.2 4.6 8.1 5zm-18.2-1.4c-1.6-2.7-1.6-4.8 0-7-6.1-.9-8.7.4-8.6 2.8 0 2.5 2.7 4.4 8.6 4.2zm-35.7 2.7c-2.2-2.2-2.7-4.3-1.8-6.8-6 .6-8.2 2.4-7.6 4.8.6 2.4 3.7 3.6 9.4 2zm17.6-2.3c-1.9-2.5-2.2-4.6-.9-7-6.1-.2-8.5 1.3-8.2 3.8.3 2.4 3.2 4 9 3.2zm-34.9 6c-2.4-1.9-3.3-3.8-2.7-6.4-6 1.5-7.8 3.6-6.9 5.8 1 2.3 4.2 3 9.6.6zm-33 15.2c-2.8-1.4-4-3.1-3.9-5.8-5.6 2.6-7 5-5.6 7 1.3 2 4.6 2.2 9.5-1.2zm16-8.1c-2.7-1.7-3.6-3.6-3.2-6.2-5.9 1.8-7.6 4-6.5 6.2 1.1 2.2 4.4 2.8 9.6 0zm-45.6 28.8c-3-.8-4.6-2.3-5-5-5 3.8-5.8 6.4-4.1 8.1 1.8 1.7 5 1.2 9-3.1zm14.1-11.6c-3-1-4.4-2.6-4.6-5.2-5.2 3.2-6.3 5.8-4.7 7.7 1.6 1.8 5 1.5 9.3-2.5zm-26.7 24c-3-.6-4.7-1.9-5.4-4.5-4.6 4.1-5.2 6.9-3.3 8.4 1.9 1.6 5 .7 8.7-4zM183.7 138c-3.2-.2-5-1.3-5.8-3.8-4.2 4.5-4.6 7.2-2.6 8.6 2 1.4 5.1.2 8.4-4.8zm-9.4 15c-3.2.2-5-.7-6.4-3-3.4 5.1-3.4 8-1.2 9s5.1-.6 7.6-6zm-8.3 16c-3 .6-5 0-6.7-2.2-2.7 5.5-2.3 8.3 0 9 2.3.8 5-1.2 6.7-6.9zm-6.6 16.3c-3 1.1-5 .8-7-1-1.8 5.8-1 8.5 1.5 8.9 2.4.3 4.7-2 5.5-8zm-4.5 18.2c-2.8 1.3-4.9 1.2-7-.5-1.4 6-.4 8.5 2 8.7 2.5.3 4.7-2.2 5-8.2zm-1.8 15.2c-2.6 1.4-4.7 1.6-7 .5-.7 4.9.6 6.8 3 6.6 2.4-.2 4.3-2.4 4-7.1zm307-72.2c1.1-3 2.7-4.4 5.3-4.6-3.2-5.2-5.7-6.3-7.6-4.8-1.9 1.6-1.6 5 2.3 9.4zm25.2 85c2.3-2.2 4.4-2.7 6.8-1.6-.4-6.1-2.2-8.3-4.6-7.8-2.3.6-3.6 3.6-2.2 9.4z"/>
+    <path fill="#217900" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="1.9" d="M461.3 132s-7 6.9-5.7 15.2c1.2 8.3 6.5 18.6 5.5 27.3-1 8.6-2.5 14.3-2.5 14.3s8-9.1 8-18c.2-8.7-5.4-20.3-5.4-26.7s.3-12.2.1-12zm12.7 28s-5.3 4-4.8 13c.5 9.1 10 25.8 10 25.8s6.8 14 6.5 17.7c-.2 3.7 1.3-3.5.6-11.5s-11-25.8-11-25.8-2.2-3.6-2-9.7c.2-6 .8-9.4.8-9.5z"/>
+    <path fill="#6b18b5" fill-rule="evenodd" d="M313 47.4c0-1.8-2.2-3.4-4.8-3.4s-4.7 1.6-4.7 3.4 2 3.4 4.7 3.4 4.7-1.5 4.7-3.4zm2 8c0-1.8-2.2-3.3-5-3.3-2.6 0-4.8 1.4-4.8 3.2s2.2 3.3 4.9 3.3 4.8-1.5 4.8-3.3zm6-9.4s-5.6 4.1-3.3 5.8c2.3 1.7 8.6-3.6 8.6-3.6L321 46zm163.3 95.4c0-1.2-.5-2.3-1.4-2.9a2.6 2.6 0 00-3 0c-.9.6-1.4 1.7-1.4 2.9s.5 2.3 1.4 2.9a2.6 2.6 0 003 0c.9-.6 1.4-1.7 1.4-2.9zm-2.1-8c0-2-1.4-3.5-3-3.5s-3.1 1.6-3.1 3.6 1.4 3.5 3 3.5 3.1-1.6 3.1-3.5zm1.5 16.2c0-1-.6-1.8-1.2-1.8s-1.2.8-1.2 1.8.5 1.9 1.2 1.9 1.2-.9 1.2-1.9zm4.9-14.4c0-1.2-.6-2.1-1.2-2.1-.7 0-1.2.9-1.2 2s.5 2.2 1.2 2.2c.6 0 1.2-1 1.2-2.1zm-13.4 1.4c0-1-.6-1.7-1.2-1.7s-1.2.8-1.2 1.7.5 1.8 1.2 1.8 1.2-.8 1.2-1.8zm2.1 11.4c0-1.5-1.1-2.7-2.5-2.7s-2.5 1.2-2.5 2.7c0 1.6 1 2.8 2.5 2.8s2.5-1.2 2.5-2.8zm-6.6-5c0-1.3-1-2.4-2.1-2.4-1.2 0-2.2 1-2.2 2.4s1 2.4 2.2 2.4c1.1 0 2-1 2-2.4zm-1-6.8a2 2 0 00-1-1.7 1.8 1.8 0 00-1.9 0 2 2 0 00-.9 1.7 2 2 0 001 1.8 1.8 1.8 0 001.8 0c.6-.4 1-1 1-1.8zm30.1 34.4c-2.7-3.6-7.1-5.1-9.8-3.4-2.6 1.7-2.6 6 .2 9.7 2.7 3.6 7 5.1 9.7 3.4 2.7-1.8 2.7-6 0-9.7zm7.8 66.7c.5-4.5-1.6-8.4-4.8-8.8-3.2-.3-6.2 3-6.8 7.4-.5 4.4 1.7 8.3 4.9 8.7 3.2.4 6.2-3 6.7-7.3zm1.6 38.8c1-4.4-.9-8.5-4-9.2-3.2-.6-6.5 2.4-7.4 6.8-.9 4.3 1 8.4 4 9 3.2.7 6.5-2.3 7.4-6.7zm7.5-36.4c0-1.7-1.2-3.1-2.6-3.1s-2.7 1.4-2.7 3.1c0 1.8 1.2 3.2 2.7 3.2s2.6-1.4 2.6-3.2zm-6.5 7.3l-5.4 6.2s-5.1.1-4.8 1.8c.2 1.6 7 6.6 7 8.6-.1 2 4.4-.5 4.4-.5l3.7-11.1s-.2-7.7-2.2-7.6c-2 .2-2.5 2.5-2.7 2.6zm-357.4-2.4a2.6 2.6 0 10-5.1 0 2.6 2.6 0 005.1 0zm2.5-8c0-1.4-1.2-2.6-2.6-2.6s-2.6 1.2-2.6 2.7 1.2 2.7 2.6 2.7a2.7 2.7 0 002.6-2.7zM134 199.2c-1-2.2-3-3.4-4.5-2.7-1.5.7-2 3-1 5.2s3 3.4 4.5 2.7c1.6-.7 2-3 1-5.2zm6.5 23.4c-1.4-2.8-4.1-4.4-6.2-3.5s-2.7 3.9-1.4 6.7 4 4.4 6.2 3.5 2.7-3.9 1.4-6.7zm6.8 17.2c.5-3.5-1-6.8-3.2-7.2-2.3-.5-4.4 2-4.9 5.5-.4 3.5 1 6.7 3.3 7.2 2.2.5 4.4-2 4.8-5.5zm-11 2.5c1.4-3.3.9-6.8-1.1-7.8s-4.8.7-6.2 4-.9 6.7 1.2 7.8 4.7-.7 6.1-4z"/>
+    <path fill="#6b18b5" fill-rule="evenodd" d="M131.3 234.8c0-1.7-1.3-3-2.9-3s-2.9 1.4-2.9 3 1.3 3 3 3 2.8-1.3 2.8-3zm-2.3-7.5c0-1.5-1.2-2.7-2.6-2.7a2.7 2.7 0 00-2.6 2.8c0 1.4 1.2 2.7 2.6 2.7s2.6-1.3 2.6-2.8zm2.4-14.3c0-2.6-1.1-4.6-2.5-4.6s-2.5 2-2.5 4.6c0 2.5 1.1 4.6 2.5 4.6s2.5-2 2.5-4.6zm7.8-1.1c.3-2.5-.5-4.7-2-5-1.3-.1-2.7 1.8-3 4.3-.4 2.5.5 4.7 1.9 4.9 1.3.2 2.7-1.7 3-4.2zm55-110c1.1-3.6 0-7.2-2.3-8-2.3-.9-5 1.3-6 4.9-1 3.6 0 7.2 2.3 8 2.3.9 5-1.3 6-4.9zm-10.4 15.9c3-2.7 4.4-6.3 3-8.1-1.5-1.9-5.2-1.2-8.3 1.4s-4.3 6.2-2.9 8c1.5 1.9 5.2 1.3 8.2-1.3zm-6-8.8c3-2.3 4.2-5.4 2.8-7s-5-1-8 1.2c-3.1 2.3-4.4 5.4-3 7s5 1 8.1-1.2zm23.5-15.5c2-1.6 2.9-3.8 2-4.9-1-1-3.5-.7-5.6.9s-2.9 3.7-1.9 4.8c1 1.1 3.4.7 5.5-.8z"/>
+    <path fill="#6b18b5" fill-rule="evenodd" d="M189 108.5c1.4-2.2 1.5-4.5.2-5.2-1.3-.7-3.5.4-4.9 2.6s-1.5 4.5-.2 5.2c1.3.7 3.5-.5 4.9-2.6zm17.7-9.3c2.2-1.9 3-4.3 2-5.5-1.2-1.2-4-.6-6.2 1.2s-3 4.3-1.9 5.5c1.2 1.2 3.9.6 6.1-1.2zm-32 21.6c2 0 3.6-1.1 3.4-2.3 0-1.1-1.9-2-4-1.9-2 .1-3.6 1.2-3.4 2.3.1 1.2 2 2 4 2zm38.7-33.1c1.4-2.2 1.5-4.5.2-5.2-1.2-.7-3.4.4-4.8 2.6s-1.5 4.5-.2 5.2c1.3.7 3.4-.4 4.8-2.6z"/>
+    <path fill="#ffd200" fill-rule="evenodd" stroke="#ef8a10" d="M446.8 153.4s6.4-10.1 4-19.7c-2.5-9.5-13-2.7-12.8.7.2 3.3 6.8 7.9 7.2 10 .4 2-.8 8.3 1.6 9z"/>
+    <path fill="#217900" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.3" d="M324.9 69.3s23 .9 23.1 15.8c0 2.3 0 5-.8 11.7 4.6-2.5 7.6-9.3 7-13.7.1-15.1-20.5-25.5-29.3-13.8z"/>
+    <path fill="#217900" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.3" d="M310.3 68.6s18.5-3.8 18.7 11c.1 15-6 17.3-6 17.3s14.3-3 14.4-18.1c0-15.2-18.3-21.9-27.1-10.2z"/>
+    <path fill="#f7df73" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.5" d="M373.3 390s86.8-24.6 113-131C471 368.1 376 403 376 403l-2.8-13z"/>
+    <path fill="#8c1800" fill-rule="evenodd" d="M382.2 396.6c2.7 0 9.3-7.4 13.1-8.2 3.8-.8 4.2-4.7-.1-4.8-4.4-.2-8.2 5-8.2 5s-3.8 3.2-7.8 3.6c-4 .4-1.4 5.4 3 4.4z"/>
+    <path fill="#8c1800" fill-rule="evenodd" stroke="#8c1800" stroke-width="2.5" d="M432.2 359.3s-9 5.2-7.8 6.5c1.3 1.3 9.3-5 9.5-5 .1-.2 3.4-4.2-1.7-1.5z"/>
+    <path fill="#8c1800" fill-rule="evenodd" d="M400.7 383s-2.7-1 4.2-3.6c7-2.7 6.5-5.8 8.8-7.1 2.2-1.3 7-4.7 8-2.7s-5 6-6.5 6.4c-1.4.4-8.3 6.8-10.3 7.3-2 .6-3.4.3-4.2-.3z"/>
+    <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="3" d="M445.6 346c-6 6.7-6 6.5-6 6.5"/>
+    <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="2.8" d="M454.5 335.2l-5.7 6.9"/>
+    <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="2.5" d="M463.4 321l-6.4 10.2"/>
+    <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="2.3" d="M470.9 306.6l-5.3 10.5m8.6-18l-1.6 3.6"/>
+    <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="1.4" d="M478 289l-1.4 4.4"/>
+    <path fill="#f7df73" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="1.5" d="M160.3 216s52-14.7 67.6-78.5c-9.1 65.5-66 86.2-66 86.2l-1.6-7.7z" transform="matrix(-1.65528 0 0 1.70062 524.8 20.4)"/>
+    <path fill="#8c1800" fill-rule="evenodd" d="M250.7 394.4c-2.7 0-9.2-7.5-13-8.3-3.8-.9-4.2-4.8.1-5 4.4 0 8.1 5.1 8.1 5.1s3.8 3.3 7.7 3.8c4 .4 1.4 5.4-2.9 4.4z"/>
+    <path fill="#8c1800" fill-rule="evenodd" stroke="#8c1800" stroke-width="1.5" d="M195.5 197.6s-5.4 3.2-4.6 4c.7.7 5.5-3 5.6-3.1.1-.1 2-2.5-1-.9z" transform="matrix(-1.65528 0 0 1.70062 524.8 20.4)"/>
+    <path fill="#8c1800" fill-rule="evenodd" d="M232.4 380.6s2.6-1-4.2-3.7-6.5-6-8.7-7.2c-2.2-1.3-7-4.7-8-2.7s5 6 6.5 6.4c1.4.5 8.2 7 10.2 7.5 2 .6 3.3.3 4.2-.3z"/>
+    <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="1.8" d="M203.5 189.7l-3.5 3.9" transform="matrix(-1.65528 0 0 1.70062 524.8 20.4)"/>
+    <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="1.7" d="M208.9 183.2l-3.4 4.1" transform="matrix(-1.65528 0 0 1.70062 524.8 20.4)"/>
+    <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="1.5" d="M214.2 174.7l-3.8 6.1" transform="matrix(-1.65528 0 0 1.70062 524.8 20.4)"/>
+    <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width="1.4" d="M218.7 166.1l-3.2 6.3m5.2-10.9l-1 2.2" transform="matrix(-1.65528 0 0 1.70062 524.8 20.4)"/>
+    <path fill="none" stroke="#8c1800" stroke-linecap="round" stroke-width=".8" d="M223 155.5l-.9 2.7" transform="matrix(-1.65528 0 0 1.70062 524.8 20.4)"/>
+    <path fill="#217900" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.3" d="M490.4 239.3c.5 6.7 7 13 4.4 24.7-3.2 13.3-14.8 44.7-12.8 50.2-3.4-4.7-2.8-9-3-15.6-.4-6.5 9.4-30.9 10.3-39.1 0-7.4.7-17.5 1.1-20.2z"/>
+    <path fill="#217900" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.3" d="M490.4 239.4s10.7 13.5 10.1 24.2c-.5 10.7-6.5 23.2-4.5 28.7a21.7 21.7 0 01-4.6-14.2c-.3-6.5 5.3-13.8 4.1-20.9-1.1-7-5.2-17.8-5-17.8zm-349.3 3c-.4 6.7-5.4 12.7-2.8 24.3 3.2 13.3 15 30 13 49.2 3.5-4.7 4.5-10 4.8-16.5.2-6.5-13-28.5-13.8-36.8 0-7.4-.8-17.5-1.2-20.2z"/>
+    <path fill="#217900" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.3" d="M141.1 242.6s-10.4 13-9.8 23.7c.1 7.1 13.2 36.8 11.2 42.4 3.5-4.7 4.4-4.1 4.3-11.2-3.8-18.3-10.7-29.9-9.5-37 1.1-7.1 4-18 3.8-18z"/>
+    <path fill="#fff" stroke="#000" stroke-dashoffset="1" stroke-linecap="square" stroke-linejoin="round" stroke-width="1.7" d="M100 125.8l22 68.2h72l-58 42.2 22.1 68.2-58-42.1-58 42.1 22-68.2L6 194h71.8z" transform="matrix(1.16516 0 0 1.16534 202 -23.6)"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mq.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mq.svg
new file mode 100644
index 0000000..b389d43
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mq.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mq" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h640v480H0z"/>
+    <path fill="#00267f" d="M0 0h213.3v480H0z"/>
+    <path fill="#f31830" d="M426.7 0H640v480H426.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mr.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mr.svg
new file mode 100644
index 0000000..b53ce61
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mr.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mr" viewBox="0 0 640 480">
+  <path fill="#cd2a3e" d="M0 0h640v480H0z"/>
+  <path fill="#006233" d="M0 72h640v336H0z"/>
+  <path fill="#ffc400" d="M470 154.6a150 150 0 01-300 0 154.9 154.9 0 00-5 39.2 155 155 0 10310 0 154.4 154.4 0 00-5-39.2z" class="st1"/>
+  <path fill="#ffc400" d="M320 93.8l-13.5 41.5H263l35.3 25.6-13.5 41.4 35.3-25.6 35.3 25.6-13.5-41.4 35.3-25.6h-43.6z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ms.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ms.svg
new file mode 100644
index 0000000..5796863
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ms.svg
@@ -0,0 +1,78 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ms" viewBox="0 0 640 480">
+  <path id="rect950" fill="#012169" stroke-width=".7" d="M0 0h640v480H0z" opacity="1" stop-opacity="1"/>
+  <path id="path962" fill="#fff" stroke-width=".8" d="M384.9 111h205.5l-.3 146.3c1.7 58.7-34.9 95.2-102.3 111.7-47.9-12-103-36.5-103.2-110l.3-148z" opacity="1" stop-opacity="1"/>
+  <path id="path964" fill="#00a2bd" stroke="#000" stroke-width="1.8" d="M389.4 115.4h196.4l-.2 140.2c1.6 56.3-33.4 91.2-97.8 107-45.8-11.4-98.5-35-98.6-105.4l.2-141.8z" opacity="1" stop-opacity="1"/>
+  <path id="path966" fill="#a53d08" stroke-width=".8" d="M584.3 272.2c-7.2 53.7-48.6 77.2-96.5 89.7-42.5-11.4-88.2-29.6-97-89.5l193.5-.2z" opacity="1" stop-opacity="1"/>
+  <path id="path968" fill="#000" stroke-width=".8" d="M480 141.5l-.3-17.6 14 .1.1 17.5H532l.1 13.7-38.3.2-.3 161.4-13.6.1-.2-161.7-38 .2v-14z" opacity="1" stop-opacity="1"/>
+  <path id="path970" fill="#ff9a08" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M449 278.8l35 36.3c12.1-13.3 3.7-63-12.2-72.1-1.9 5.9-5.1 13-8.6 15.2-7.5 5.2-26.1 11.2-19.9 15 1.4-1.9 5.1-3.7 6.9.6 2 6.9-7.8 7.3-7.8 7.3s-6.2-.8-7.3-7c-1-6.4 9.3-12.2 10.2-12.6.8-.3 14.3-4 16.6-15.9 2.9-11.8 5.8-10 6.3-10.2 17.7 1.7 29.2 33.3 29.9 55.5.6 22.2-9 37-10.8 38-1.7.9-42-47.9-42-47.9l3.8-2.2z" opacity="1" stop-opacity="1"/>
+  <path id="path972" fill="#ff9a08" stroke="#000" stroke-width=".8" d="M474.6 245l.2 65.5" opacity="1" stop-opacity="1"/>
+  <path id="path974" fill="#ff9a08" stroke="#000" stroke-width=".8" d="M470.6 246.3l.3 59.4" opacity="1" stop-opacity="1"/>
+  <path id="path976" fill="#ff9a08" stroke="#000" stroke-width=".8" d="M466.4 254.9l.2 47.2" opacity="1" stop-opacity="1"/>
+  <path id="path978" fill="#ff9a08" stroke="#000" stroke-width=".8" d="M462.9 258.2l.2 39.1" opacity="1" stop-opacity="1"/>
+  <path id="path980" fill="#ff9a08" stroke="#000" stroke-width=".8" d="M459.2 260v33" opacity="1" stop-opacity="1"/>
+  <path id="path982" fill="#ff9a08" stroke="#000" stroke-width=".8" d="M455.2 262.6v26.1" opacity="1" stop-opacity="1"/>
+  <path id="path984" fill="#ff9a08" stroke="#000" stroke-width=".8" d="M451.7 264.7v20" opacity="1" stop-opacity="1"/>
+  <g id="g994" fill="none" stroke="#ffdf00" stroke-linecap="round" stroke-width="1.8" opacity="1" transform="matrix(.8 0 0 .8 -230.7 -7)">
+    <path id="path986" stroke-width="1" d="M849 362.4l45.1 51.6"/>
+    <path id="path988" d="M896.3 329.9s20.4 44.7 1.5 81.4"/>
+    <path id="path990" d="M843.7 353s1.5-3.9 3.4-2.3"/>
+    <path id="path992" d="M840.2 341.6s-8.2 7.2-3.7 11.9"/>
+  </g>
+  <path id="path998" fill="#008021" stroke="#000" stroke-width=".3" d="M494 175.4c2.3-2 3.6-3.3 5.1-3 1.5.2 3.5 0 5-.4a31 31 0 0112-.4c1 .2 2.5.7 4.6 2.5 2.1 1.8 5.2 5 4.2 13.6s-.7 12.3-1.2 17.2c-.8 8.5-2.7 15.5-6 15 4.5 8 5 15 8 20.5s4.8 16.8 3.7 29c-1.2 12.3-4.4 39.7 5.3 58.2-1.6 1.1-5.5 0-9-3.7s-5-3.6-7.8-1.4c-8.8 6.7-17 14.8-29.1 6.7-2.8-1.8-3.6-4-1.6-9.7 5-14 7.5-33.4 6.7-42.4V175.4z" opacity="1" stop-opacity="1"/>
+  <g id="g1010" fill="#ffe1cf" stroke="#000" stroke-width=".4" opacity="1" transform="matrix(.8 0 0 .8 -230.7 -7)">
+    <path id="path1000" d="M916.2 217.2a12 12 0 01-.1 8.5c-1.3 3-1.6 6.4.6 10.6 3.4-5 8.3-4 11.2-6.8 2.9-2.9 3.5-5.6 5.6-6.2-2.1-1.9-5.4-4-4.7-9.4.7-5.5 8.3-10 1.4-18.3a10 10 0 00-16.7 1.5c-.4 1 .2 3-.9 4.3-.7 1-1.6 1.8-2.6 2.5-.6.5-1 1.1-.3 2 .3.3.8.3 1.3.5l-1 1.8c-.4.4-.2.8.2 1.2-.6 1.7.5 2-.2 3.2-.7 1.1-1.5 2.5.8 3.8.7.3 3.8 1 5.4.8z"/>
+    <path id="path1002" d="M888.1 246c-4 1-10.5-.8-15.4-.2-2.2.2-3.9-.9-3.6-3 .3-2.2.6-5.5.1-8.6a39.5 39.5 0 014.8-18.4 41.2 41.2 0 004.8-14.6c0-2.3.2-4.8 2.2-6.1 1.5-1 1.8-1.9 2.3-2.7 1.2-1.8 2.4-2.2 2.5-1.1.1.6-.1 1.2-.7 2 1.3-1 3.5-2.3 4-2.6.5-.4 3-2.2 3.2-.5 1-.5 1.7-.5 2 0 .2.7 0 .9-.4 1.3.7-.1 1.5 1.1 0 2.3.8-.3 1.6 1 .2 2.1-1.3 1.2-3 2-3.4 3-.5 1-4 3.6-5.3 4.1-1.4.6-1.5 1.4-1.5 3.4 0 22.2-2.6 20.4-2.6 25.8 0 1.4-.3 2.7 1.1 2.3 1.5-.5 3.6-1.1 5.7-1.1v12.5z"/>
+    <path id="path1004" d="M889 293.8c6.5-3.3 14-4.5 17.9-5.5a78 78 0 0013-5.6c3.1-1.6 5.6-3.8 7.3-4.3a8.1 8.1 0 004.8-4 63 63 0 008.6-27.3c0-5-1.3-10.7-6.2-6.7a37 37 0 00-11 16.5c-2 8-3.7 9.8-4.1 11.4-.5 1.6-2.1 1.6-4 2a33.4 33.4 0 00-17 8 170 170 0 01-17.8 11.5c-4.6 2.6-5.5 2.8-6.5 5-1 2-2 3.6-2.8 4.5-.9 1-1.1 2-1 3.2.2 1-.2 5.3-.3 6.7 0 1.5.3 1.8.9 1.9.5 0 1.3-.2 1.6-2-.3 1.8 2.1 1.2 2.2-.1 0 1.9 2.5.8 2.6-1 0 1.3 2 .4 2.1-.1.5-1.5.8-3 1.4-4.2.8-1.7 1.7-3.9 3.4-5 1.9-1.4 1-3 4.9-5z"/>
+    <path id="path1006" d="M935.7 411.9c.4 1.6 1.2 3.4 1.5 4.5.3 1-.2 1.4-.5 2a41 41 0 00-3.4 11c-.1 1.5-1.2 3-1.7 4-.6 1-.3 1.8 1 2.8.5.4 2.5-.2 2.7-1.2.8.7 2 .5 2.6-.6.7.6 1.8.2 2.5-.9.6.4 1.6-.4 2-1 1 .5 2-.1 2-2 0-.5.3-1.2.6-1.6.3-.5.4-1.4.4-2.2 0-.8.4-2.4 1.1-3.5.7-1.1 1.9-3.1 1.4-5-.5-1.7-1.2-1.6-1.9-4-1.6-1.7-3.7-4-6-4.2-2.2-.1-3.5 1.4-4.3 1.9z"/>
+    <path id="path1008" d="M894.7 424.3c2 2 6.5 2 9.7-1.3-1.1-.5-3.7-1.7-4.8-2.6-1.6 1.6-3.4 3.4-5 3.9z"/>
+  </g>
+  <path id="path1012" fill="#870f00" stroke="#000" stroke-width=".3" d="M501.4 149c.6-4 3.5-4 5.3-3.5.8.1 2.6.3 4.4-.2 3.4-.9 6 .3 5.6 3.6 1 .7 2 2.3 1.7 3.7-.1 1.4.2 2 1.4 2.1 1.3.2 4 1.8 2.2 4 1.7 1 3 3.7 2.1 5.4-.9 1.8-3.6 2.1-4.8.5-1.3.6-3.3.7-4.6-.6-.9 1-3 .9-3.5 0-.4-1-1-1.4-1.9-1.7-.9-.3-1-2.8.4-3.1-.1-.8 0-1.6.3-2 .3-.4 0-1.2-.8-1.8-.8-.7-1.5-3-.7-4.4-1.4.5-4.4-.9-5-1.8-.7-1-1.6-1-2.1-.2z" opacity="1" stop-opacity="1"/>
+  <g id="g1088" fill="none" stroke="#000" stroke-width=".4" opacity="1" transform="matrix(.8 0 0 .8 -230.7 -7)">
+    <path id="path1014" d="M916.2 217.2c2.8-.3 3.7-2 5.8-2"/>
+    <path id="path1016" d="M910.2 209.4l.7.4c.5.3 1.2.4 1.7.5"/>
+    <path id="path1018" d="M911 206.4l1.2.7"/>
+    <path id="path1020" d="M917.5 195c-1.6-1.6 2.8-4.8 7.5-.2 1 .9 3.1.9 3.8.7"/>
+    <path id="path1022" d="M924 197.5c2.2-.5 5.4-.5 6.4 2 1 2.4 2.8.8 4.3 3.7 1.5 2.9 3.9 6.1 6.2 3.9"/>
+    <path id="path1024" d="M931.7 213.7a5 5 0 01-.5-4c-.8-1-.5-3.1 0-4.1"/>
+    <path id="path1026" d="M925.5 207.7c.1.9 1.3 2.5 3 2.8"/>
+    <path id="path1028" d="M937.5 214.5c-1-1.3-.9-2.5-.6-4"/>
+    <path id="path1030" d="M927 200.1c0 1.3.7 3 2 3.6.4.8 1.8 2.8 4.7 2.5"/>
+    <path id="path1032" d="M934.3 194.9a13.6 13.6 0 00-6.6-3.1"/>
+    <path id="path1034" d="M916.7 236.3c-2.5 3.3-4 7.9-3 14.4 1.2 6.5 3.1 16-1.6 20.3"/>
+    <path id="path1036" d="M935.4 283.6c-3.3-.8-8-.8-10.7 1.1-2.5 1.9-6.9 2-9.8.6"/>
+    <path id="path1038" d="M928.4 283.3c-2.9.5-4.2 2.6-4.2 7.9 0 5.3-1.2 13.1-.2 20.8"/>
+    <path id="path1040" d="M923.2 285.6c-2 .5-3.9.5-3.5 5.6"/>
+    <path id="path1042" d="M913.4 291.3c.1-3 1.2-6 3.2-5.4"/>
+    <path id="path1044" d="M934.2 292c.1-7-1.4-8.9-3.4-8.8 2.7 0 4.6.4 5.8 11.6.8 8.4 2.6 11.3 4.6 17.9 5.2 17 2.6 43.2 5.2 52.5"/>
+    <path id="path1046" d="M930.2 294c5.5 15.8 8.4 33.4-.5 61.6 6 16.8 12 28.9 13.2 35.8"/>
+    <path id="path1048" d="M913 331.4c1-3.6-2.7-4 .5-16.7 1.4-5.5 1.6-8.8.7-10.5"/>
+    <path id="path1050" d="M914.2 311.7c-1.3 5.6 4.2 16.1 1.5 23.8"/>
+    <path id="path1052" d="M908.9 336.9c0 5 1.1 11.3.9 16.2-.3 4.9 1.7 7.1 4 11.8 8.4 16.7 14 28.6 13.3 44.4-.2 2.9.8 9-2.2 10.7"/>
+    <path id="path1054" d="M909.1 424.2c.9 0 1.8-.4 2.9-3a81 81 0 003-28.8"/>
+    <path id="path1056" d="M916.8 404.5c.4 3.3.4 10.1-1.7 15.5"/>
+    <path id="path1058" d="M922.3 394.6c1.3 7 1.1 13.4.1 17.9"/>
+    <path id="path1060" d="M919.4 412.5c.2 2.8 1.5 10-.7 10.6"/>
+    <path id="path1062" d="M930.2 379c5.4 8.4 9.5 29 14 33.3"/>
+    <path id="path1064" d="M934.8 409c-.1-2.3-.2-5.5-1.5-7"/>
+    <path id="path1066" d="M877.2 308c.1-1.5-.2-3 1.6-5.5"/>
+    <path id="path1068" d="M874.6 309c.3-5.5.2-6 1.8-7.6"/>
+    <path id="path1070" d="M872.4 309.1c0-4-.4-5.3 1.2-7.8"/>
+    <path id="path1072" d="M892.3 190.2l-5.7 4.3"/>
+    <path id="path1074" d="M893.9 191.5c-.7.1-2.7 1.8-6.2 4.5"/>
+    <path id="path1076" d="M894 193.8c-1.2.5-3.3 2.5-5.2 3.9"/>
+    <path id="path1078" d="M885.1 193.4l-2 2"/>
+    <path id="path1080" d="M935.3 435c-.3-.3-.3-1.6.3-3"/>
+    <path id="path1082" d="M938 434.4c-.5-.4 0-2.2.3-3.3"/>
+    <path id="path1084" d="M940.4 433.5c-.5-.2-.6-1.2 0-2.6"/>
+    <path id="path1086" d="M942.3 432.5c-.3-.1-.4-.7.1-2.2"/>
+  </g>
+  <g id="g1094" fill="#000" stroke="none" stroke-width=".4" opacity="1" transform="matrix(.8 0 0 .8 -230.7 -7)">
+    <path id="path1090" d="M914 199.6c1 1.3 2.1 1.2 2.3 2 .2 1 .3 1 .5 1.3.2.2-.5.2-.8 0h-1.7c-.5 0-1.1-.7-.8-.7.4-.1.4-.2.3-.5 0-.3.2-.7.4-.8l-.1-.4c-.2-.4-.4-1.2-.1-1z"/>
+    <path id="path1092" d="M914.6 198.3a8 8 0 014.3 2c.8 1 .1.7-.3.7s-1.3-.2-1.7-.8a5.8 5.8 0 00-2.4-1.4c-.4-.1-.8-.6.1-.5z"/>
+  </g>
+  <path id="path1746" fill="#012169" stroke-width=".5" d="M0 0h320v240H0z" opacity="1" stop-opacity="1"/>
+  <path id="path1748" fill="#FFF" stroke-width=".5" d="M37.5 0l122 90.5L281 0h39v31l-120 89.5 120 89V240h-40l-120-89.5L40.5 240H0v-30l119.5-89L0 32V0z" opacity="1" stop-opacity="1"/>
+  <path id="path1750" fill="#C8102E" stroke-width=".5" d="M212 140.5L320 220v20l-135.5-99.5zm-92 10l3 17.5-96 72H0zM320 0v1.5l-124.5 94 1-22L295 0zM0 0l119.5 88h-30L0 21z" opacity="1" stop-opacity="1"/>
+  <path id="path1752" fill="#FFF" stroke-width=".5" d="M120.5 0v240h80V0zM0 80v80h320V80z" opacity="1" stop-opacity="1"/>
+  <path id="path1754" fill="#C8102E" stroke-width=".5" d="M0 96.5v48h320v-48zM136.5 0v240h48V0z" opacity="1" stop-opacity="1"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mt.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mt.svg
new file mode 100644
index 0000000..93fe67b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mt.svg
@@ -0,0 +1,49 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mt" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#ce0000" d="M320 0h320v480H320z"/>
+    <path fill="#fff" d="M0 0h320v480H0z"/>
+  </g>
+  <g transform="translate(-12.4 -30.8) scale(1.5986)">
+    <path fill="#f1eeee" fill-rule="evenodd" d="M104.8 108c0 .9-.9 1.5-2 1.5-1.2 0-2-.6-2-1.4 0-.8.8-1.5 2-1.5 1.1 0 2 .7 2 1.5z"/>
+    <path fill="#c00" fill-rule="evenodd" d="M40.7 101v37.2H78c0 6.2 6.2 12.4 12.4 12.4v37.2h37.3v-37.2c6.2 0 12.4-6.2 12.4-12.4h37.2V101H140c0-6.2-6.2-12.4-12.4-12.4V51.4H90.4v37.2c-6.3 0-12.5 6.2-12.5 12.4H40.7z"/>
+    <path fill="#ffe600" fill-rule="evenodd" d="M42 102.2V137h37.2c0 6.2 6.2 12.4 12.4 12.4v37.2h34.7v-37.1c6.2 0 12.4-6.2 12.4-12.4H176v-34.8h-37.2c0-6.2-6.2-12.4-12.4-12.4V52.6H91.6v37.2c-6.2 0-12.4 6.2-12.4 12.4H42z"/>
+    <path fill="#707070" fill-rule="evenodd" d="M43.2 103.5v32.2h37.2c0 6.2 6.2 12.4 12.4 12.4v37.2h32.3v-37.2c6.2 0 12.4-6.2 12.4-12.4h37.2v-32.2h-37.2c0-6.2-6.2-12.4-12.4-12.4V53.9H92.8V91c-6.2 0-12.4 6.2-12.4 12.4H43.2z"/>
+    <path fill="#a0a0a0" fill-rule="evenodd" d="M44.5 104.7v29.8h37.2c0 6.2 6.2 12.4 12.4 12.4V184h29.7v-37.2c6.2 0 12.4-6.2 12.4-12.4h37.2v-29.8h-37.2c0-6.2-6.2-12.4-12.4-12.4V55.1H94.1v37.2c-6.2 0-12.4 6.2-12.4 12.4H44.4z"/>
+    <g fill-rule="evenodd">
+      <path fill="#d0d0d0" d="M94.4 89.2c2.1 2.2.4 7.5-4 11.9s-9.6 6-11.8 4c-2.2-2.3-.4-7.6 4-12s9.6-6 11.8-3.9z"/>
+      <path fill="gray" d="M91.7 91.8c2.2 2.2 1.6 6.3-1.3 9.3s-7 3.5-9.2 1.3c-2.2-2.2-1.6-6.3 1.3-9.2s7-3.5 9.2-1.4z"/>
+      <path fill="#d0d0d0" d="M80.8 98.4l.8-.8 3.5 1.7-1.7-3.5.9-.9 3.5 7-7-3.5zm5.2-5.2l1-1 5.2 5.4-.9.8z"/>
+    </g>
+    <g fill-rule="evenodd">
+      <path fill="#d0d0d0" d="M139.3 105c-2.2 2.2-7.5.4-11.8-4s-6.2-9.6-4-11.8c2.2-2.2 7.5-.4 11.9 4s6 9.6 4 11.8z"/>
+      <path fill="gray" d="M136.7 102.4c-2.2 2.2-6.3 1.6-9.2-1.3s-3.5-7-1.4-9.2c2.2-2.2 6.4-1.6 9.3 1.3s3.5 7 1.3 9.2z"/>
+      <path fill="#d0d0d0" d="M130.1 91.4l.9.9-1.8 3.5 3.5-1.8 1 1-7.1 3.4 3.5-7zm5.3 5.3l.8.8-5.2 5.3-.9-.9z"/>
+    </g>
+    <g fill-rule="evenodd">
+      <path fill="#d0d0d0" d="M123.5 150c-2.2-2.2-.4-7.5 4-11.9s9.6-6.1 11.8-4c2.2 2.2.4 7.5-4 11.9s-9.6 6.1-11.8 4z"/>
+      <path fill="gray" d="M126.2 147.3c-2.2-2.2-1.6-6.3 1.3-9.2s7-3.5 9.2-1.3c2.2 2.2 1.6 6.3-1.3 9.2s-7 3.5-9.3 1.3z"/>
+      <path fill="#d0d0d0" d="M137.1 140.7l-.9 1-3.5-1.8 1.8 3.5-.9.8-3.5-7 7 3.5zM132 146l-1 .9-5.2-5.3.9-.9z"/>
+    </g>
+    <g fill-rule="evenodd">
+      <path fill="#d0d0d0" d="M78.6 134.2c2.2-2.2 7.5-.4 11.8 3.9s6.1 9.7 4 11.8c-2.2 2.2-7.5.5-11.9-3.9s-6-9.7-4-11.8z"/>
+      <path fill="gray" d="M81.2 136.8c2.2-2.2 6.3-1.6 9.2 1.3s3.5 7 1.3 9.2c-2.1 2.2-6.3 1.6-9.2-1.3s-3.5-7-1.3-9.2z"/>
+      <path fill="#d0d0d0" d="M87.8 147.8l-.9-1 1.8-3.4-3.5 1.7-1-.9 7.1-3.5-3.5 7zm-5.3-5.3l-.8-.9 5.2-5.2.9.8z"/>
+    </g>
+    <path fill="none" stroke="#707070" stroke-width="1pt" d="M269.3 414.6c0 41-34.1 74.4-76.2 74.4S117 455.7 117 414.6s34.1-74.4 76.2-74.4 76.2 33.3 76.2 74.4z" transform="matrix(.34191 0 0 .35003 43 -25.5)"/>
+    <path fill="none" stroke="#707070" stroke-width="1pt" d="M269.3 414.6c0 41-34.1 74.4-76.2 74.4S117 455.7 117 414.6s34.1-74.4 76.2-74.4 76.2 33.3 76.2 74.4z" transform="matrix(.2605 0 0 .26669 58.6 9)"/>
+    <path fill="#d0d0d0" fill-rule="evenodd" d="M100.3 140.7a1.2 1.2 0 11-2.5 0 1.2 1.2 0 012.5 0zm19.8 0a1.2 1.2 0 11-2.5 0 1.2 1.2 0 012.5 0zm-12 0v1.3h-1.6c-1.7 0-1.7 1.3 0 1.3h1.6v1.2c0 1.4 1.5 1.5 1.6.1v-1.4h1.7c1.7 0 1.7-1.2 0-1.2h-1.6v-1.3c0-1.3-1.7-1.3-1.7 0z"/>
+    <path fill="#d0d0d0" fill-rule="evenodd" stroke="#707070" stroke-width=".1" d="M102.8 122.3v.8s-.4.5-2.9.7c-2.5.2-2.9 0-2.9 0 .1.7.6 1.9.4 3.3.1 1.7-.4 3.2-.4 3.2 0 .1-.3.2-.8.1.4-.4.4-1.4.4-3 0-1.4-1.5-3.7-1.2-4.3.3-.6 7.4-.8 7.4-.8zm9.8-2.6l6.5-.1s1 2 .9 3c0 1-.4 2-.8 1.5-.5-.5.2-.4.3-1.5 0-1.2-.8-2.3-.8-2.3s-1.8.7-4.4.6c-2.6-.2-1.4-1.2-1.7-1.2z"/>
+    <path fill="#d0d0d0" fill-rule="evenodd" stroke="#707070" stroke-width=".1" d="M113.4 121.6c2.4-.1 4 .2 4 .2s1 2 1 3c-.1 1-.4 2-.9 1.5-.4-.4.2-.3.3-1.5 0-1.1-.8-2.3-.8-2.3s-1.7.7-4.3.6c-2.6-.2-1.8-.3-2.1-.4-.3 0-.4.8-4.3.9-4 0-6-.9-6-.9s-.4.6-2.8.8h-3c.1.6.6 1.8.5 3.3 0 1.6-.5 3.2-.5 3.2h-.7c.4-.3.3-1.4.4-2.9 0-1.5-1.6-3.7-1.3-4.4.4-.6 2.2 0 2.5-.3.3-.4-1.6-2.7-1.2-4.8.3-2.1 2.4-1.5 4.9-1.5 2.5.1 8 .8 9.4 0 1.4-.7.8-3.4 2-5.1a4.1 4.1 0 013.3-1.5c.9 0 2 3 2 3.7l-.3.4h-.4v.3c-1 .1-1.1-.8-1.7-1.4-.2 1 .8 4.4.8 6.6 0 1.8-.7 2.6-.8 2.5z"/>
+    <path fill="#d0d0d0" fill-rule="evenodd" stroke="#707070" stroke-width=".1" d="M105.5 118.4c0 .7-3.1 2.4-3.4 3-.2.7.8 1 .5 1.4-.3.4-.6.2-.7.3l-1.2-2.5s3-1.4 2.9-2c-.1-.6-2.2-1-2.6-2.4s-.2-4.3-.5-4.9c-.3-.6-4-1.2-4-2 0-1 3.8-3.4 4.2-3.8.4-.4.8.4.4.7-.4.4-3.3 2.7-3.3 3 0 .4 2.4.8 3.2.8.9 0 1.3-.4 1.3-.8 0-.3-.9-.3-.9-1s.5-1.2 1.3-1.2c.4 0 1.2.5 1.2 1.1s-.7.7-.8 1.1c-.1.5.8.8 1.6.8s3.6 2.1 4 2.5c.5.3.9.3.5.7-.4.4-.2.8-.6.4a1.5 1.5 0 01-.4-.7c0-.3-3-1.8-3.5-1.5-.4.4 0 4.8 0 5.2 0 .7.9.7.8 1.8z"/>
+    <path fill="#a7a7a7" fill-rule="evenodd" d="M100.3 109.9h5v5.1h-5z"/>
+    <rect width="30.6" height=".4" x="138.6" y="-25.7" fill="gray" fill-rule="evenodd" rx=".5" ry=".2" transform="matrix(.55442 .83223 -.88237 .47055 0 0)"/>
+    <path fill="#d0d0d0" fill-rule="evenodd" stroke="#707070" stroke-width="1pt" d="M180.7 42.5a7 7 0 11-14.2 0 7 7 0 0114.2 0z" transform="matrix(.11563 0 0 .10345 80.7 101.5)"/>
+    <path fill="gray" fill-rule="evenodd" d="M115.9 112.5c0 .3-2 .7-4.1.7-2.2 0-4.1-.4-4.1-.7 0-.3 1.9.5 4 .5 2.3 0 4.2-.8 4.2-.5z"/>
+    <path fill="#a7a7a7" fill-rule="evenodd" d="M100.7 115h4.1v1.5h-4z"/>
+    <path fill="gray" fill-rule="evenodd" d="M114 111.4c-.4.8-.7 1.3-.8 1.2 0 0 .2-.8.6-1.5l.8-1.2c.1.1-.2.8-.6 1.5zm1 2l-.8.5a3.2 3.2 0 01.8-.9c.5-.4.9-.6.9-.5l-.8.8z"/>
+    <path fill="gray" fill-rule="evenodd" d="M114.6 112.4l.5 1.2-.8-1-.5-1.2.8 1zm-.4 3.2s-1.2.2-2.8.2-2.9-.1-2.9-.2l2.9-.2c1.6 0 2.8 0 2.8.2zm-9.4-.4c0 .1-.9.2-2 .2-1.2 0-2 0-2-.2 0 0 .8-.2 2-.2 1.1 0 2 .1 2 .2z"/>
+    <path fill="#d0d0d0" fill-rule="evenodd" stroke="gray" stroke-width=".1" d="M95.8 128s.7 1.6 3.6 1.6c2.8 0 3.8-.5 2.7-1.3s-3.4-.6-3 .1c.2.8-.9 1-1.1.5-.3-.5-1.3-2.1.5-2.2 1.9-.1 5.8-.7 6.8.4s-1.1 2 .5 2.3c1.5.2 1.8-.3 4.5-.4 2.7-.2 3.8.5 4.7.4 1 0 .8-1.7 0-2-.7-.5-2.1-.6-2.5-1-.3-.5-1.3 0-1.2-.6 0-.5 1.4.3 1.4.1l.2-.2h-.3l.1-.2-.2.1.1-.2s-.3.2-.3 0h-.2c.2-.2.1-.2 0-.3h-.3v-.3c-.2 0-.2 0-.3.2v-.5c0-.1.2-.2.5-.2.7 0 1 .8 1.3.8.2 0 .5-.8 1.4-.5l1.5.6c.5.3-.3.6 0 1s2.1 1.7 1.6 3.2c-.5 1.4-2 1.6-2 2.2-.2.6 4.3.4 5.4.6a3 3 0 011.9 1.2l-2 .1s-1-.5-3.5-.6c-2.5 0-3.4-1-4.4-1.2l-4 .2-3-.3c-.6-.1-4.2 1.6-4.2 2h-2.4s.3-.9 1.7-1c1.3-.2 2.7-.8 2.6-1.2l.4-2.6c0-.6.6-1 .5-1.2-.1-.4-1.7-.7-3.2-.7-1.5 0-3.1.1-3.4.4-.2.4 0 1.5.3 1.3.3 0-.1-.8.2-.9a6.8 6.8 0 012-.3c.8 0 2.1.7 2.1 1 0 .1.4.8-.2 1.1a8.2 8.2 0 01-3.1.4 7.5 7.5 0 01-3-.8c-.4-.3-.7-1-.7-1.1z"/>
+    <path fill-rule="evenodd" d="M114 125.5a.3.3 0 11-.6 0 .3.3 0 01.6 0z"/>
+    <path fill="#d0d0d0" d="M129.5 120.8l1.6.3 2.7-1.8-.2 1-1.4.9-.8.4.5.8.9 1.4-.2 1-1.7-2.9-1.6-.3.2-.8zm-2.7-11.8l3-1.4-.8-1.8.4-.2 2 4.4-.3.2-.9-1.9-3 1.5-.4-.8zm-4.8-5.8l2.8-2.6.6.6v4.4l2.2-2 .5.6-2.8 2.6-.6-.6v-4.4l-2.2 2-.5-.6zm-12.4-5l.5-3.8h.8l-.5 3.5 3 .3v.5l-3.8-.5zm-6.1.6l-.7-3.8.8-.2.6 3.4 3-.6v.5l-3.7.7zm-11.3 5.5l-.3-.3 2-1.6 1 1a5.7 5.7 0 01-.8 1.2 5.7 5.7 0 01-.9 1 5.2 5.2 0 01-1.4.8c-.5.1-1 .2-1.3 0a1.6 1.6 0 01-1-.5 1.7 1.7 0 01-.3-1c0-.4.1-.9.4-1.3.2-.4.6-.8 1-1.1a4.8 4.8 0 011.1-.7l.9-.2c.2 0 .5 0 .7.2l-.4.5a1.3 1.3 0 00-.6-.1l-.6.1a3.2 3.2 0 00-.7.5c-.3.2-.6.4-.7.7a2 2 0 00-.4.6v.5c0 .3.1.6.3.8l.7.5 1-.1a4.1 4.1 0 002.1-2l-.4-.6-1.4 1.1zm-.1 27.7l-3.2 2.3-2.4-3.4.4-.3 2 2.7.9-.7-1.6-2.3.3-.2 1.7 2.3 1.4-1 .5.6zm-4.7-5c.5-.1.8-.4 1-.9v-1.5a2.6 2.6 0 00-.9-1.3c-.3-.3-.8-.4-1.2-.3a1.4 1.4 0 00-.8.5c-.1.2-.3.5-.3.8l.1 1.1c.2.6.4 1 .8 1.4.3.3.8.4 1.3.2zm.3.8a1.7 1.7 0 01-1.7-.4 3.7 3.7 0 01-1.1-1.8c-.2-.6-.2-1-.2-1.6s.2-.8.4-1.1a1.6 1.6 0 011-.7 1.6 1.6 0 011 .1c.4.2.7.4 1 .8a4.5 4.5 0 01.8 3 2.3 2.3 0 01-.4 1.1c-.2.3-.5.5-.8.6zm.3-7.8h-4v-2.8l.2-1.2.4-.7a.8.8 0 01.6-.2c.3 0 .5.1.7.4.1.3.3.7.3 1.3a2.5 2.5 0 01.7-1.1l1.1-1v1l-.8.7-.6.6a1.7 1.7 0 00-.3.4 1.6 1.6 0 000 .4v.4l-.1 1H88v.8zm-2.2-.9v-1.7a4 4 0 000-.9 1 1 0 00-.2-.4.5.5 0 00-.3-.2c-.2 0-.4.1-.5.3l-.2 1v2h1.3zm10.7-16.9v-4.5l.8-.5 4.1 2-.8.5-1.2-.6-2.1 1.3v1.4l-.8.4zm.7-2.3l1.8-1-1-.6a8.3 8.3 0 01-.9-.5l.1.8v1.3zm18.6-1.2L120 97l.7.5-.3 4.6-.7-.6.1-1.3-2-1.5-1.3.5-.7-.5zm2.4-.2l1.7 1.2v-1.2a8.4 8.4 0 01.2-1 3.7 3.7 0 01-.7.5l-1.2.5zm10.3 14.3l3.8-.9.6 2.7.2 1.2-.2.7a.8.8 0 01-.5.4c-.3 0-.6 0-.8-.2a2.8 2.8 0 01-.7-1.2 2.5 2.5 0 010 .5l-.4.8-.8 1.2-.2-1 .6-1 .4-.6a1.6 1.6 0 00.2-.8 3.7 3.7 0 00-.1-.5l-.2-.9-1.7.4-.2-.8zm2.3.3l.4 1.7c0 .3.2.6.3.8 0 .2.2.3.3.4l.4.1c.1 0 .3-.2.3-.4a2.1 2.1 0 000-1l-.5-1.9-1.2.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mu.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mu.svg
new file mode 100644
index 0000000..102ed3b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mu.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mu" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="#00a04d" d="M0 360h640v120H0z"/>
+    <path fill="#151f6d" d="M0 120h640v120H0z"/>
+    <path fill="#ee2737" d="M0 0h640v120H0z"/>
+    <path fill="#ffcd00" d="M0 240h640v120H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mv.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mv.svg
new file mode 100644
index 0000000..2525c92
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mv.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mv" viewBox="0 0 640 480">
+  <path fill="#d21034" d="M0 0h640v480H0z"/>
+  <path fill="#007e3a" d="M120 120h400v240H120z"/>
+  <circle cx="350" cy="240" r="80" fill="#fff"/>
+  <circle cx="380" cy="240" r="80" fill="#007e3a"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mw.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mw.svg
new file mode 100644
index 0000000..5bd17f8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mw.svg
@@ -0,0 +1,10 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mw" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#f41408" d="M0 0h640v480H0z"/>
+    <path fill="#21873b" d="M0 320h640v160H0z"/>
+    <path d="M0 0h640v160H0z"/>
+    <path fill="#f31509" d="M220.5 141c22.3-49.2 84.5-72.8 138.8-52.5a98.4 98.4 0 0158 52.5H220.5zm-26 6.4a332.3 332.3 0 01-52.4-7.8c-4.1-1.3-4.3-3.6-3.8-5.3.5-1.7 3.1-3.6 6.2-3 5.6 1.4 28.8 7 50 16.1zm124.6-85.9c-4.2-21-5.2-44-4.8-48C314.7 9.6 317 9 319 9s4.7 1.8 4.7 4.7c0 5.3-.1 27-4.6 48zm11.6.5a249 249 0 01-.3-48.2c.8-3.9 3.2-4.4 5.1-4.2 2 .1 4.5 2.1 4.2 5-.5 5.3-2.6 26.9-9 47.4zm10.4 1.3c-.2-21.3 3-44.3 4.1-48 1.1-3.9 3.6-4.2 5.5-3.9 2 .3 4.3 2.5 3.8 5.3-1 5.3-5.2 26.6-13.4 46.6zm11 2.2c1.8-21.2 7.3-43.8 8.8-47.5 1.5-3.7 4-3.8 5.8-3.4 2 .5 4 2.8 3.3 5.6-1.6 5.1-7.7 26-17.8 45.3zm10.9 3.2c3.9-21 11.5-43.1 13.3-46.7 1.9-3.5 4.3-3.5 6.2-2.9 1.8.6 3.7 3.2 2.7 5.8A264 264 0 01363 68.7zm10.1 3.8c5.8-20.7 15.5-42 17.7-45.5 2.2-3.4 4.6-3.1 6.4-2.3 1.8.7 3.4 3.4 2.1 6-2.5 4.8-12.5 24.4-26.2 41.8zm10 4.7a262.9 262.9 0 0122-43.9c2.4-3.2 4.9-2.7 6.6-1.8a4.4 4.4 0 011.5 6.1c-3 4.6-14.9 23.4-30.1 39.6zm9.4 5.5c9.7-19.4 23.3-39 26.1-42 2.8-3 5.2-2.3 6.8-1.3a4.4 4.4 0 011 6.2c-3.5 4.4-17.2 22.1-34 37zm8.8 6.2c11.6-18.6 27-37 30.1-39.7 3-2.8 5.4-2 6.9-.8a4.3 4.3 0 01.3 6.2c-3.8 4.1-19.1 20.7-37.3 34.3zm8.3 6.9a284 284 0 0133.8-37.2c3.3-2.5 5.5-1.5 6.9-.3a4.3 4.3 0 01-.3 6.3c-4.1 3.8-21 19.1-40.4 31.2zm7.6 7.5A278.4 278.4 0 01454.4 69c3.6-2.3 5.7-1.1 7 .3 1.2 1.3 1.5 4.4-1 6.2a306 306 0 01-43.2 27.8zm6.5 7.8A297.1 297.1 0 01464 79.6c3.7-2 5.7-.6 6.8.9 1.2 1.4 1.1 4.5-1.4 6.1-4.8 3-24.3 15.6-45.7 24.5zm5.9 8.3a307 307 0 0143-28.1c4-1.7 5.9-.2 6.9 1.3 1 1.6.6 4.6-2 6a320.8 320.8 0 01-48 20.8zm5.4 9.6a313.4 313.4 0 0145.8-24.4c4.1-1.4 5.8.3 6.6 1.9.9 1.6.3 4.6-2.6 5.8-5.3 2.2-27 11.4-49.8 16.7zm4.2 9.2a320 320 0 0148-20.8c4.2-1 5.7.8 6.4 2.5.6 1.6-.3 4.6-3.2 5.5-5.5 1.9-28 9.3-51.2 12.8zm3.4 9.8a324.5 324.5 0 0149.8-16.9c4.2-.6 5.6 1.2 6.1 3 .5 1.7-.7 4.5-3.7 5.3-5.7 1.3-28.8 7-52.2 8.6zM307.8 62a252.4 252.4 0 01-9.7-47.4c0-3.9 2.3-4.8 4.2-5 2-.1 5 1.5 5.2 4.3.5 5.3 2.6 26.9.4 48.1zm-11 1.3a251 251 0 01-14.3-46.4c-.4-4 1.8-5 3.7-5.3 2-.3 5 1 5.6 3.8a263 263 0 015 47.9zm-11 2.2A259 259 0 01267 20.3c-.8-3.9 1.3-5.1 3.2-5.6 1.9-.4 5 .6 5.9 3.4 1.5 5.1 7.7 26 9.6 47.3zm-10.5 3A264 264 0 01252.5 25c-1.1-3.8.8-5.2 2.6-5.8 1.9-.6 5.1.2 6.2 2.8 2 5 10.2 25.4 14 46.4zM265.2 72a270.4 270.4 0 01-27-41.5c-1.4-3.7.4-5.3 2.2-6 1.8-.8 5-.2 6.4 2.4 2.5 4.8 12.5 24.5 18.4 45.1zm-10.3 5a275.6 275.6 0 01-31-39.2c-1.7-3.5-.1-5.2 1.6-6.1 1.7-.9 5-.6 6.6 1.9 3 4.6 15 23.3 22.8 43.4zm-9.4 5.4A285.2 285.2 0 01211 45.7c-2.1-3.4-.7-5.2 1-6.3 1.5-1 5-1 6.7 1.4 3.4 4.3 17.1 22 26.8 41.5zm-8.7 6a292.2 292.2 0 01-37.9-33.9c-2.4-3.2-1.1-5 .4-6.2a5.5 5.5 0 016.8.8c3.8 4 19.2 20.7 30.7 39.3zm-8.5 7a299 299 0 01-41-30.7c-2.8-3-1.7-5-.3-6.3a5.5 5.5 0 016.9.3c4.2 3.7 21 19 34.4 36.6zm-7.4 7A306.6 306.6 0 01177.2 75c-3-2.8-2.1-4.8-.8-6.2 1.2-1.4 4.5-2.1 6.9-.3a292 292 0 0137.6 34zm-7 8.2a313 313 0 01-46.2-23.8c-3.3-2.5-2.6-4.7-1.5-6.1 1.1-1.5 4.3-2.5 6.9-.9 4.8 3.1 24.3 15.5 40.8 30.8zm-6.3 8.8c-22.2-7-44.9-17.6-48.4-19.9-3.6-2.2-3-4.4-2.1-6s4-2.8 6.8-1.4c5 2.7 25.8 13.5 43.7 27.3zm-5.3 9c-22.8-5.3-46.3-14-50.1-16-3.7-2-3.5-4.2-2.6-5.8.8-1.6 3.7-3.1 6.6-2 5.3 2.3 27 11.4 46.1 23.8zm-4.2 9a328.5 328.5 0 01-51.4-12.2c-4-1.6-3.8-3.9-3.2-5.5.7-1.7 3.5-3.4 6.4-2.5 5.6 1.9 28 9.3 48.2 20.2z"/>
+    <path fill="#f31509" d="M194.5 147.4a332.4 332.4 0 01-52.4-7.8c-4.1-1.3-4.3-3.6-3.8-5.3.5-1.7 3.1-3.6 6.2-3 5.6 1.4 28.8 7 50 16.1z"/>
+    <path d="M129.4 141.5h381.2v12.6H129.4z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mx.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mx.svg
new file mode 100644
index 0000000..7de1b66
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mx.svg
@@ -0,0 +1,382 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-mx" viewBox="0 0 640 480">
+  <defs>
+    <radialGradient id="b" cx="842.3" cy="103.7" r="25.9" gradientTransform="matrix(.14152 .03595 -.03453 .14198 213.1 162.4)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <radialGradient id="c" cx="651.5" cy="550.5" r="25.9" gradientTransform="matrix(-.13441 -.05384 .04964 -.12489 397.9 -24.3)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <radialGradient id="d" cx="380.8" cy="740.4" r="25.9" gradientTransform="matrix(.07536 .00282 -.00343 .14804 412.4 -203.6)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="a">
+      <stop offset="0" stop-color="#fff"/>
+      <stop offset="1" stop-color="#f15770"/>
+    </linearGradient>
+  </defs>
+  <path fill="#ce1126" d="M426.7 0H640v480H426.7z"/>
+  <path fill="#fff" d="M213.3 0h213.4v480H213.3z"/>
+  <path fill="#006847" d="M0 0h213.3v480H0z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="M355.8 289.4l.2 4.5 1.7-1.1-1.3-3.7z"/>
+  <circle cx="355.6" cy="288.2" r="1.4" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="M361.1 296.4l-3.2-3.1-1.5 1.2 4.5 2.6z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M360.9 298.2c-.5-.6-.3-1.5.3-2 .7-.5 1.6-.4 2 .2.5.6.3 1.5-.3 2-.7.5-1.6.4-2-.2z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="M386.3 249.6l3.4 3.3.4-1.7-3.1-2z"/>
+  <circle cx="385.9" cy="248.7" r="1.4" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="M395.2 251.6L390 253l.5-1.7 4.4-.4z"/>
+  <circle cx="396" cy="250.8" r="1.4" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="M378 276.8l-3.2-4.8.5-.3 3.5 4.2z"/>
+  <circle cx="374.5" cy="270.8" r="1.4" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="M378.1 277l4 .7.1-.5-3.3-1.4z"/>
+  <circle cx="383.3" cy="277.7" r="1.4" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M284.6 288c0 .8-.5 1.2-1 1.2s-1-.5-1-1.2.5-1.3 1-1.3 1 .7 1 1.4z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="M284.6 290.3l1 5-1.3-.5-.4-4.3z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M285.7 288.6c.6.7-.4 1.9-1.4 2.2-1 .3-2.4-.2-2.4-1.2s1.6-.5 2-.6c.6-.2 1.2-1.2 1.8-.4z"/>
+  <ellipse cx="277" cy="296.3" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" rx="1.6" ry="1.1"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="M279.6 296l4.8-.2-.8-1-4 .4z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M280 295.4c.5 1.3.5 3-.9 2.7-1.4-.1-1-1.4-1.2-1.8-.2-.9-1-1.7-.2-2.5s2 .4 2.3 1.6z"/>
+  <ellipse cx="264.4" cy="269.2" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" rx=".9" ry="1.4"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="M264.4 272.4l.1 4.6-1.2-1v-3.8z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M266.2 271c.3 1-1.3 1.6-2.4 1.4-1-.2-1.9-.7-1.7-1.7.1-1 1.5-.8 2-.5.4.3 1.8-.8 2.1.7z"/>
+  <ellipse cx="256.2" cy="276.5" fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" rx="1.6" ry=".7"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="M259.1 276.5l3.6-.3 1.6 1.2-5.3-.2z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M257.8 274.5c1 0 1.6 1.1 1.5 2.3-.2 1.1-1 2-2 2-.9-.2-.8-1-.8-1.2 0-.3.5-.7.6-1 0-.4-.3-1.3-.1-1.6 0-.4.3-.5.8-.5zm-3-28.3c-.4.6-1.2 1.1-1.6.9-.4-.3-.2-1.2.2-1.8.4-.7 1-1 1.4-.8.4.3.4 1 0 1.7z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="M250.7 253.5l2-4.8-.2-.3-2.4 3.4z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M252.4 248.7c-1-.7-1.2-1.5-1-2.3.4-.7 1.2-.2 1.2-.2l.8.7c.4.2 1 0 1.4.6.5.6.2 1.2-.1 1.4-.4.1-1.5.4-2.3-.2zm-8.5-.6c.7.4 1.1 1 .9 1.5-.3.5-1 .5-1.8 0-.7-.3-1-1-.8-1.5.2-.4 1-.5 1.7 0z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="M246 250.2l3.8 2.2-.1 1.8-4.1-3.5z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M246 250.6c-.8 1-1.6 1-2.3.7-.7-.5-.1-1.2-.1-1.2l.8-.7c.2-.4 0-1 .7-1.4.7-.4 1.2 0 1.3.3.1.4.3 1.5-.4 2.3z"/>
+  <path fill="#aa8c30" d="M356.6 289.8l-.4.4-.3 1v-1.5l.5-.3.2.4zm.2-.9s-.3.5-1.1.5-1.2-.4-1.3-.8c-.1-.4-.1-.7.2-1.2.2-.5-.4.4-.4.4v1l.6.6.5.2h.4l.7-.2.4-.3v-.2zm4.2 7.3s-.4.2-.7.1c-1.9-.6-3.5-1.8-3.5-1.8l3.8 2.4.4-.7zm2.4 1.1s0 .7-.8 1c-.7.3-1.2.2-1.5-.1s-.4-.6-.4-1.2l-.1.6.4.8.8.4.5-.1.5-.2.4-.5.3-.5-.1-.2zm24.3-47.6l-.1.4v.7l-.9-1 .4-.5.6.4zm-.5-1.2c0 .7-.9 1.6-1.6 1.3-.7-.3-1.2-1-.9-1.8l-.2.3.1 1.1.7.6h.9l.6-.3.4-.7v-.5zm10 1.8s-.1-.4 0 0-.6 1.7-1.4 1.6c-.7-.1-1-.8-1-1.4 0-.6-.1.2-.1.2v.8l.5.4.6.4.6-.2.7-.3.2-.6v-.9z"/>
+  <path fill="#aa8c30" d="M393.8 251s0 .4-.4.7l-1.3.7 2.8-.8-.2-.7-.9.2zm-17.1 22.5l-.1.5v.8l-1.6-2.5.5-.3 1.2 1.5zm-.9-2.4c-.2.7-1.4 1-2 .8-.5-.4-1-1.6-.3-2l-.4.2-.1.7.2.7.6.7.5.1.8-.2.6-.4s.4-1.3.1-.6zm5.6 5.7s0 .3-.5.3h-1.6l2.6.6.2-.6-.7-.3z"/>
+  <path fill="#aa8c30" d="M384.6 277.5c.3.8-.5 1.7-1.5 1.4-1-.3-1.3-1.3-1-1.8l-.2.6.2.8.6.6h1.3l.6-.7.2-.7-.1-.2zm-99 11.1c.3.3-.1 1.5-1.2 2-1.2.4-1.7 0-2-.4-.3-.4-.3-.8-.3-.8l-.2.2.2.6.5.5 1 .2.8-.1.7-.5.4-.3.3-.5v-.6l-.1-.3z"/>
+  <path fill="#aa8c30" d="M284.6 291.1l-.3.4-.3.8v-1.4l.5-.3.1.5zm-3.8 4s0 .3.2.5l1 .3h-1.8l-.2-.7h.8zm-.6 1.2v.2a1.4 1.4 0 01-.1.5c-.2.5-.3 1-1 .9a1.2 1.2 0 01-1-1.1c0-.4-.2-.6-.2-.6v.6l.4 1 .7.3h.5l.5-.2.2-.6.1-.5v-.5zm-4.7-.1s.2.8 1.2.8 1.2-.2 1.2-.2v.3l-.2.2H276l-.3-.3-.3-.5v-.3zm-9.4-25.4v.4c-.1.3-.7 1-1.8 1-1 0-1.5-.3-1.8-.7-.3-.3-.4-.8-.4-.8v.5l.4.7 1.1.5h1l1-.3.5-.5.1-.6-.1-.2zm-1.7 2.3s-.4 0-.6.2a4 4 0 00-.4.4v-1.3h1v.7zm-4.7 3.4l.5.3c.5.3 3.1.5 3.1.5h-4.1l.1-.8h.4zm-.5 0l-.2.6c-.2.5-.7 1.6-1.6 1.4-.9-.1-.7-.8-.7-.8v-.4l-.2.7.2.4.4.2.7.1.4-.2.6-.5.2-.5.2-.6v-.3zm-2.2.2s0 .2-.7.2-1.7-.3-1.7-.3l.4.4.5.2h1.3l.2-.5zm-2-29s0 .5-.3.8c-.4.3-1.3.5-1.8.2s-1.5-1.3-1.5-1.3l.4.8.7.6 1 .3 1-.2.4-.4.2-.3-.2-.4z"/>
+  <path fill="#aa8c30" d="M252 249.1v.6l-.2 1.1.9-2-.4-.2-.3.5zm-5.4 1.5l.2.5c.2.5 2.3 2.6 2.3 2.6l-3.3-2.9.4-.5.4.3zm-1 .3s-.5.3-1 .3c-.3 0-1 0-1-.4-.1-.5.1-.7.1-.7l-.3.6.1.4.5.3h.7l.6-.3.2-.2zm-1.5-1.4h-.5c-.7 0-1.4-.8-1.4-.8l.5.8 1 .5.4-.5z"/>
+  <path fill="#9ca168" d="M399.9 240.2c-.3 3.8-4.1 5.8-6.1 7.2-2 1.4-3 3.2-3 3.2l-.6 2.2-.3 1.5-.1.5c.1.4.3 1 .3 2l-.1 4.3 2.7-1.9 1.9-.7.6-.1s-2.2 2.1-3 4.4c-.8 2.3-2.4 7.2-5.3 8.8-3 1.6-4.8 1-5.7 1.8-1 .8-1 1-1 1l-1.3 1.8-1 1.2-.9.7-.6.4a7.5 7.5 0 01-.2 1.7l-.7 2.4s.6-.4 1.3-.5h1.3s-.5.6-.7 1.3c-.2.6.1 4.6-3.6 7-3.8 2.3-13.4 2-13.4 2l-1.8.7-1.7 1.3-1.6 1.7v.4s-1.3 1.5-2.1 2l-2.8 1.9 2.2.1 3.5 1.5s-2.2 0-3.6.5c-1.5.6-8.2 4.4-11.4 4.3-3.3-.1-8-4.9-8-4.9l-2-1.4-3.5-.7-4.3-.2v-.6l.1-.7s1.5-.2 3.8.1c2 .2 2.7 1 4.4 1.1 1.7.2 3 0 3.5-.3.7-.3 5.9-4.7 5.9-4.7l5.8-2 2.3.3 1 .2.9.3-1 1a7.3 7.3 0 01-1.4 1.1l.7.6 3.7-.6 1.2.3.3.2c0-.3.2-.8.6-1.3.4-.6 2.5-2.3 3.4-2.9l1.4-1c.3-.3 1.5-3.3 1.5-3.3l.1-1.6 4.1-4 2.8-2.9 1.2-3.3-.2-.7s1 1 .9 3c-.2 2.2-.7 2.9-.7 2.9s2.8-2 4.3-2.6c1.2-.5 2-.5 2.4-.5.4-.2 1.5-.9 2.1-1.8.8-1.2 1-1.5 1-2l.2-2.8-.3-7 2.4-5.4 3.5-3.1.7-.4-.4 1.2v1.5s1.8-2.5 2.7-2.9l.5-.3a7 7 0 00.8-2l.3-3v-3l-.5-2.3-1.7-4.3v-5.8l-1.2-1.6s1.1 0 2.5 2a13.5 13.5 0 011.9 5l3.3-10.3s.9 1.2 1.5 3.3l.8 3.3 1.4-2.8.1 1c.2 1 2.3 2.1 2 6zm-67.3 65s-.7-1.6-3.9-3.2c-3.1-1.5-5.5-1.8-5.5-1.8v1.1l5 2.2 2.4 2 2-.3z"/>
+  <path fill="#717732" d="M355.4 295.6c.3-.4 3-2.8 4.4-3.5s3.2-.8 3.2-.8c1.9-.4 2.2-.1 6.6-2.5 4.3-2.4 5.3-5.2 6.2-5.9.8-.7 2.3-.8 2.3-.8l-3.4 3.9a28.5 28.5 0 01-5.8 4.5 17.8 17.8 0 01-7.6 1.8 7.7 7.7 0 00-4 2c-1.3 1-2 2.2-2 2.2s-.2-.5 0-.9zm12-12.7c-4 3.7-5.3 7.2-5.3 7.2l5.4-4.9c1.9-1.8 4.5-2.6 5.6-3.7 1.2-1.1 1.3-2 2-2.7l1.3-1s-1.8-1.4-9 5.1zm-8.5 8.6s1.7-.8 2.4-2.3c.5-1.2.2-1.5 1-2.8 0 0 4.2-4 5.7-5.8 2.6-3.1 1.4-5.7 1.4-5.7s.3 1.3-.8 2.7c-1 1.4-6.5 5-7.2 7.2-.6 2.2-.3 2.3-.6 3.4-.6 2.6-1.9 3.3-1.9 3.3zm-2.8 10.5s-2.1-1.4-4.5-1.3c-4.9.4-9 3.4-12.2 3.4-3.1.1-4.4-1.5-6.9-3.2-2.6-1.8-9.2-1.5-9.2-1.5v.3s4.4 0 6.4.6c3.6 1 5.6 4.8 9.7 4.6 5.5-.3 9.9-3.6 12-3.6 3.8 0 4.7.7 4.7.7zm-24-2.4s3.7.6 6.6-1.5c3-2.1 6.4-5 8.3-5.2 2 0 4 .4 4 .4s-2.5-1-4.4-1c-2 0-4 .2-5.8 1.3-1.8 1.1-2.7 3-4.6 4.3a12.8 12.8 0 01-4.1 1.7zm-.7 5c-.5 0-1.1.3-1.3.3-.2 0-1.3-1.2-3-2-1.6-1-4-1.4-4-1.4s-.3 0 .3.2l3.8 1.5a8.6 8.6 0 012.6 2.1c.1.3.6.9 1.5.8 1 0 1.3-.5 1.2-1 0-.3-.6-.5-1.1-.5zm2.6-3.6s1.5.8 4 .8c5.2-.2 8.6-3.8 12-5 3.4-1.4 5.2-.3 5.2-.3s.1-.2 0-.2a7 7 0 00-3.9-1.2c-5.7 0-11.2 3.7-13.5 4.7-2.3 1-3.8 1.2-3.8 1.2zm56-39.9c-1.8 1.9-4.5 7.7-5.6 9.3-1.2 1.6-2.7 2-3.3 2.7-.6.6-2.7 3.5-3.2 4.1-.5.7-.6.5-1 .8-.3.3-.5.3.1.2.6-.1.8-.5 1.6-1.5 1-1 .9-1.4 2.3-2.7 1.4-1.2 3.9-2.6 5.1-4.2 1.3-1.5 3.8-7.5 5.2-9 1.4-1.5 4-2.4 4-2.4s-2-.6-5.3 2.7zm-9 11.1s-.1-1 1.2-2.6 1.7-1.3 2.8-3.6c1-2.3 1.5-4.5 2.3-6.9.9-2.4 2.3-4.8 2.3-4.8s-1.3.2-2.7 2a34.5 34.5 0 00-4.8 8.7c-1.1 3.4-1.1 7.2-1.1 7.2zm-1.7 2.2s.5-.2.5-3.2c.1-2.9-.1-7 .7-9 .9-2 5.4-7 5.4-7s-1.9.5-4.5 2.5-3.7 4.7-3.6 6.7c.2 2 1.3 4.2 1.4 6.1l.1 4zm10.5-20.1s1.1-4 1.6-5 .5-1.5 2.7-4c1.3-1.5 2.6-2.4 3.1-4.4.6-2 .6-7.7.6-7.7s-.6.5-1.1 1.5c-.5 1-.1 4.7-1 6.4-.8 1.7-2.7 5.6-3.7 6.5 0 0-.2-2.9.2-5.7.3-3 1.3-3.8 1.7-5.7.4-1.9.2-6.7.2-6.7s-1.5 1.5-2.3 3.4c-.8 1.8-1.2 5-1.2 7.5s.5 4.5.6 5.9c.1 1.4.2 2-.4 3.6l-.6 2a34.8 34.8 0 01-.7 2.6l.3-.2zm-3.5-21.6s1.4 1.7 1.2 3.6c-.3 2-1 4.5-.2 6.5.7 2 1.9 2.2 2.2 3.4.3 1.2.3 3.4.3 3.4s.6-4.3.2-5.5c-.5-1.1-.7-.6-1.3-1.8s0-4.7-.4-6.7c-.5-2-2-2.9-2-2.9z"/>
+  <path fill="#9ca168" d="M306.7 304.8s.4-1 3.1-2.4a34 34 0 017.3-3c.3.3-.3 1.8-.3 1.8l-2.6.8-2.1 1.2-2.5 1.6h-2.9z"/>
+  <path fill="#9ca168" d="M313.6 297.7c-3.4.1-5.3 1-6 1-.2.1-.7.5-1.2.3a4.9 4.9 0 01-1.5-1.5l-.7-.7-.2 2.5-5-4.4-.6 3-.7 1.3-5-4.8.2 3.7-1.4.1-3.6-2.5-1 .4 1.2 2.2-4.6.3-1 .8a6.3 6.3 0 00-1 1v.4h1.9c.4-.2.6-.7.7-.5.2.2.3 1.2.9 1.1.6 0 2.7-1.7 4.2-1 1.7.8-2.2 2-1.8 3.1.4 1.2 3.2.7 4 .3.6-.3 2.7-3 3.6-2 1.2 1.4-2.5 2.5-1.8 3.9.6 1.3 2.7 1 3.7.4 1-.5 3.4-4.1 3.9-3.4.9 1.4-2 2.7-1.3 3.7.8 1 2.3 0 3.4-.8s1.5-2.5 3-3.3c1.4-.8 1.3-.5 1.7-.5.4 0 1.5-1.1 1.5-1.1l3.5-1.5 1.6.2.9.4 1.7.2.2-1.4s-2-1-3.3-1zm-27.4 0l.7-1.3-.4-.6s-1.2-.7-2.3-1.8a6.9 6.9 0 00-2-1.6L280 291l-.8-2.8-.5-.9-1.3.6-1.7-6.1-.3-1.1h-.7l-1.5 3.6-1.5-2.3-.4-5-1 1-1.3 1.4-2.3-4.6s-.1-.1-.3.3c0 .3-.3 1.8-.1 2.6a26.2 26.2 0 01-6-5.2l-1-2.5 1-2 .5-2.6-2.2.9-.4-5.7-.3-1.8-2.7 3.8-1-1.7v-3.6l-.7-.2-1 2s-1.1-2-1.6-2.5c.1-.8.2-2.9-.3-4.5-.6-2-1.3-3.1-1-4.8.2-1.6.9-1.8.8-2.5 0-.8-1.2.5-.8-.5.4-1 3.8-3.2 3.1-4.4-.7-1.1-4 1.9-3.3-.1.8-2 4-2 4.2-4.9.1-1.7-3 1.1-3.3.2-.3-.8 2-2.6 1.9-3.8 0-1 .4-1.2-.2-1.8-.6-.6-2.6 2.3-2.6 2.3l-2-.7-.8 3-.6 2.5-2.6-1.5.7 3.1.6 3-2.7-.7 1.4 2.6 1.9 2 1.1 1.5.9.4 1 1.1.5 1.7.6 1.9.1 1.8v2.4l-.1.4v1.1c-.5 0-1.4-.8-1.7-.3-.3.6 1.6 2 1.2 2.4-.3.4-3-.5-3.2.3-.2 1 .2 2.2 1.8 2.6s5.3 1.2 4.7 2c-.6.7-4.7-2.3-4.5-.1a3.8 3.8 0 002.6 3.4c1 .4 5.1 0 4.9 1-.3.9-3.3-.4-3.6 1-.3 1.4 2.1 1.6 2.6 1.6s2.2-.1 2.9.4l4.3 4.1a75.7 75.7 0 004.6 3.4c-.8 0-2.4-.3-2.6.3-.3.7 6 3 4.2 3.8-1.8.7-3.8-2-4.3-.4-.6 1.7 1.2 3 2.2 3.6 1 .6 6.7.1 5.6 1.4-1.1 1.3-5.3-.8-5.3.7s2.7 4 4.2 3.9c1.4 0 3-2.4 3.6-1.1.7 1.2-1 1.7.3 2 1.4.4 2.3-1.4 4-1 1.5.3 4 1.3 5.4 2.5a79 79 0 012.9 2.8z"/>
+  <path fill="#717732" d="M308.4 304.1c1 0 1 .6 1.2.6.1 0 1.8-1.5 3.3-2.3a17.5 17.5 0 014-1.4l.1.2s-2.8.7-4.2 1.7l-3 2.1c-.2.2-.8.7-1.7.7-1 0-1.4-.6-1.4-.9 0-.2.7-.7 1.7-.7zm8.5-4.3s-.9.1-1.3-.3a4.3 4.3 0 00-2.6-.8 7 7 0 00-4 1.8c0 .1-.3.6-1.4 1.3.4.1 1.1-.4 2-1a7.4 7.4 0 013.6-1.4c1-.2 1.7.4 2.2.7.5.4 1.4.3 1.4.3v-.6zm-50.5-20.6v-.7a16.1 16.1 0 01-2.2-1.1c-1.6-1-5-3.8-5-3.8l2.8 2.7c1.4 1.3 4 2.9 4 2.9h.4zm35.6 25.2l1.5-2.1c.9-1.5 1.7-2 1.9-2.2.1-.2-.4-.9-.7-1.4l-.2-1.2s.4.8 1 1.3a9.5 9.5 0 011.1 1s1.4-.2 1.4-.5c0-.2 0-.4-.2-.5-.3-.1-.5.2-1.1 0-1.3-.6-1.8-2.6-2.6-2.6-.8-.1-.2 2-.6 2-1.1.2-2-4.3-5-4.5-2 0-2.3.3-2.4.7 0 .5 2.5 3.1 1.6 3.5-.8.4-3.5-4.2-5.5-4.2-1.9 0-2 .7-2 1.1.2.4 2.2.8 1.8 2.2-.5 1.4-2.5-2-4.3-1.9-1.8.2-2 .3-2 .9-.1.5.6 1.2.3 1.4-.2.2-1.4.1-2.3.7-.9.7-2.1 2.4-2.1 2.4s1.2-1.7 2.7-1.9a50 50 0 015.6 0l-1.1-.8c-.6-.5-1.1-1.6-1.1-1.6l1.7 1.5c.8.7 1.9 1.2 1.9 1.2s1.7.2 1.8.4c.1.2 0 .6-.8 1.3l-1.7 1.7 2-1.6 1.5-1.2 1.4.2c.1 0 0-.5-.8-1.7l-1.6-2.5s1 .9 2 2.3c1.1 1.3 1 2 1.4 2 .4 0 1 .2 1.4.1.4 0 .3.6-.4 1.7s-1.2 2.5-1.2 2.5.8-1.2 1.6-2c.7-.8 1.1-1.7 1.5-1.8h1.5l-.8-1.6c-.6-1-.8-2.6-.8-2.6s.6 1.4 1.4 2.5l1.3 1.9 1.4-.1.3.1c0 .5-.2.7-.7 1.8a17.7 17.7 0 00-1 2.1zM280.5 292c1.2.5 1.7.5 1.7.5s-1.7-1-2.1-2.4c-.5-1.4 0-4.4-.8-4.3-.7 0-1.1 2.1-1.8 1.7-.8-.4.2-4.4-.6-6-.8-1.7-2.6-2.9-3-2.3-.4.6-.3 4.2-1.5 3.5-1.1-.8.1-4-.2-5.3-.4-1.5-1.2-2.5-1.9-2.1-.6.3.3 3-.7 3s-.9-1.9-1.3-2c-.5-.2-.6.3-.9 0-.2-.4 0-1.7-.6-1.6-.6.1-.5 1.2-.3 1.7.1.6.5 1.4.7 1.8.2.4 1 .9 1 1.2-.1.3-.5.6-1 .6h-1.9s1.4.4 1.9.4 1.4-.2 1.7.2c.2.5 1.4 2 1.4 2s.3-.8.4-2.2c.2-1.5 0-2.7 0-2.7s.5 1.6.4 2.7c0 1-.4 3-.4 3s1.1.8.8 1c-.3.3-1.5.3-2.8.3-1.4 0-3.3-.5-3.3-.5a13.7 13.7 0 006.7 1.3l1.8 2s.9-1.5 1-3v-3l.4 2.8c0 1.3-.4 3.6-.6 3.8a5 5 0 01-1.9 1l-3.5.5s2.2.3 3.8 0c1.5-.4 1.7-.9 2.2-.6l.8.7 1.3 1c.1.1-.7.4-1 .7l-1.5.7 2.2-.7a22.3 22.3 0 001.1-.4l.5.2-.1-1.2-.3-1.8s.5.8.7 1.6l.1 1.6s.2.2 1.4.6zm-31.1-35.6s.3-1.7.3-3.6a14.3 14.3 0 00-1.9-5.8l1-1.4-1.2 1-1.2-.5a3 3 0 01-.9-1l1.2.8c.6.2.7.1.7.1l-.5-2-1.9-1c-1.3-.6-2.5-1.8-2.5-1.8l2.8 1.5c1 .4 1.6.4 1.6.4l1.6-.6 1.7-1.1s-1 .6-1.8.7l-1.6.3-.3-2.4-1.1-1.1c-.9-1.2-1.6-2.9-1.6-2.9s1 1.2 1.7 1.7c.7.6 1.4 1.5 1.4 1.5l1.6-1 2.8-2-2.7 1.3-1.6.7s-.2-1 0-1.5c.3-.4.8-1.2.7-1.6 0-.5-.4-.3-.5-.7-.2-.3.4-2.6.4-2.6l.1 1.2c0 .5-.2 1 .4 1 .6 0 3.2-2.7 3.6-3.2.3-.5.8-1.8-.6-1.3-1.4.6-1 1.8-2.2 1.7-.4 0-.8-1.5-1.2-1.2-.4.4-1.4 1.3-1.6 2.4-.2 1 .2 2.6-.4 3.1-.6.5-1-1.8-2.2-1.5-1.2.3-1.5 2-1.3 2.6.2.6 2.7 3.5 2 4-.9.3-2.9-2.6-4-.6-1 1.9 3.4 4 4 4.4.5.5 0 .6.8 1.6s1.8 1.2 2.4 1.8a13 13 0 012.1 5.9l-.1 2.7zm11.7 17.1s-1-1.2-.7-3.3c.3-2 1.8-5.7 1.3-6.2s-2 2.2-2.4 1.6c-.4-.6.9-4.3.2-5.8-.6-1.5-.7-2.5-2-2.3-1.3.1-1.8 4.4-2.5 3.6-.6-.7.4-2.6 0-3.7-.5-1-.7-1.3-1.3-1.2-.7.2-1 2.2-1.4 2.1-.5 0-1.2-2.3-2.2-2-.9.3 2.3 4.5 2.3 4.5s.5-.5.8-1.2l.6-1.5s.3 1.3 0 1.9c-.2.5-.3 1.7-.3 1.7s-.8.3-2.1 0a8.8 8.8 0 01-2.3-.7s.8.6 2.1 1l2.7.7a44.9 44.9 0 002 2.7l.8-2.1 1.3-3.5-.6 3.9-.7 3s-1 0-2.6-.3l-3.6-.8 3.6 1.2 2.8.7 1.4 1.9 1-1.5 1-1.8s-.3 1.4-.7 2.3a27.4 27.4 0 01-.7 1.4l-1.8.2h-2.5a19.6 19.6 0 004.5.9s0 .5.7 1.3a4.6 4.6 0 001.3 1.3z"/>
+  <path fill="#fff" d="M314.4 310.8s-.6-.6-1.4-1c-.9-.5-1.2-.4-1.2-.4l-.4-.1.8-2 5.5-5.3.9-5.3h3.4v7.2l1 .5 6.2 3.7v1.6l-1 .4-.7.4-2.3.2-4-3-1.8-1.7-3 4-2 .8z"/>
+  <path fill="#016848" d="M318.8 296.7l-.1 1c0 .9 0 5.2-.2 5.8-.2.6-3.2 1.8-4.9 3.3-1.7 1.5-1.8 2.6-1.8 2.6s-.5 0-1.6.4c-1 .4-1.5 1-1.5 1s.6-2.6 3.4-5c2.7-2.6 4-2.8 4.4-3.2.3-.4 0-5 0-5.5.1-.4.5-.4.7-.4h1.6zm7 15.7l.8-1.1 1-.8-1.5-.8c-1.5-.6-2.3-.4-3.3-1.2a13.6 13.6 0 01-2.2-2l-1.5 1.2 1.7 2c.9.8 2.7 1.1 3.5 1.6a8.8 8.8 0 011.6 1.1z"/>
+  <path fill="#cd202a" d="M321.5 296.6s1.7 0 1.9.2l.2.6c0 .1 0 4-.2 5.3a8 8 0 01-1.4 3l-4 3.7c-1.2 1.2-2.4 2.8-2.4 2.8l-.8-1c-.3-.4-.7-.6-.6-.9a10 10 0 013.3-3.4c2-1.3 3.6-2.8 4-4.9.3-2 0-5.4 0-5.4z"/>
+  <path fill="#cd202a" d="M332.5 310s-.4-.4-1.8-.4l-1.5.1s-.8-1-2-1.7c-1.2-.8-2.1-.7-3.5-1.6-1.3-.8-2-2.1-2-2.1l1-2s1.2 1.5 2.4 2.4c1.1.9 3.7 1.7 4.6 2.4l2.8 2.9z"/>
+  <path fill="#30c2dc" stroke="#0872a7" stroke-width=".5" d="M345 286.4s-3.6-1.4-3.4-2.7c.3-1.2 8.3-3.3 8.3-3.3l.1-2.1s-1.2-.1-3.2.5c-2 .7-5.2 1.6-8.6 1.6a1735.4 1735.4 0 00-34.4-2.2c-3.7-.3-6-6-6-6l-1.8.4s.5 2.7-.4 3a65 65 0 01-13.9-6l-.6 2.6s7.3 4 7.1 5.5c-.2 1.4-2.4 1.3-2.4 1.3l1 1.8c.3 0 12 .6 12.3 4.1 0 1.5-3 2.3-3 2.3l1 1.2v.6s6.7 0 8.5 1c1.8 1 2.7 2.6 5 3.8 2.2 1.3 17.3 1 19.6.3 2.7-.7 4.3-3.7 8.7-5 4.3-1.4 5.7-1.4 5.7-1.4z"/>
+  <circle cx="284.5" cy="280.7" r="2.1" fill="#fff" stroke="#0872a7"/>
+  <circle cx="296.4" cy="270.9" r="2.1" fill="#fff" stroke="#0872a7"/>
+  <circle cx="346.5" cy="286.6" r="2.1" fill="#fff" stroke="#0872a7"/>
+  <path fill="#f8c83c" d="M275.1 267.8c-.7 1.6 2 4.6 4 5 1.8.2 2.8-.2 3.2-1.1a2.8 2.8 0 00-.4-2.5c-1.2-1.7-6-3-6.8-1.4z"/>
+  <path fill="#fff" d="M281 270.2c0-1-1.6-1.9-2.6-1.9s-2 0-1.8.5c.1.6 2.7 1.3 2.8 1.6 0 .3-.8.6-.4 1 .5.4 1 .1 1.4-.2.4-.3.7-.4.7-1z"/>
+  <path fill="#f8c83c" d="M297.7 288.3c.4 1.4-.7 2-2 2.7-1.5.6-4.3.2-5-.9-.6-1.1 1-3 2.8-3.4 1.7-.4 3.8.3 4.2 1.6z"/>
+  <path fill="#fff" d="M294.8 289c.5 0 .6 1 1 .8.5 0 1-.8.8-1.3-.1-.6-1-1.3-1.8-1.2-.8 0-3 2-2.8 2.5.2.5.8.5 1.2.3.4-.2 1-1 1.6-1z"/>
+  <path fill="#f8c83c" d="M349.2 281c1.3 1.7 3.6.2 4.2-.5.6-.6 2.4-1.7 1.7-2.8-.8-1.1-2-1-3-1-.8 0-2.6 1.4-2.9 2-.3.5-.6 1.6 0 2.4z"/>
+  <path fill="#fff" d="M349.6 280s.1-1.9 1.8-2c1 0 1 .3 1.8.7.7.4 1-.5 1-.5s0 1.3-1.1 1.3c-1.2 0-.8-.5-2-.7-1-.2-1.5 1.1-1.5 1.1z"/>
+  <path fill="#f9aa51" stroke="#953220" stroke-linecap="round" stroke-linejoin="round" stroke-width=".5" d="M321.9 276.4l-.9-.6h-2.8l-3.4.1 3.4 9.9 4 5.8 1.6.6 3.1-.2.6-1.6-1.2-9.5-4.4-4.5z"/>
+  <path fill="#f9aa51" stroke="#953220" stroke-linecap="round" stroke-linejoin="round" stroke-width=".5" d="M310.6 277l.2-1.1 1.8-.1a7.2 7.2 0 012.2.1s2.3 2.9 3.1 4.7c.8 1.8 1.7 4.8 2.7 6.6 1 1.9 3.2 5 3.2 5h-4l-2-.6-5.6-9-1.6-5.6z"/>
+  <path fill="#f9aa51" stroke="#953220" stroke-linecap="round" stroke-linejoin="round" stroke-width=".5" d="M308.2 275.8h2.6a14 14 0 013.9 5.4c1 2.8.5 3.2 1.8 6.2 1.4 2.9 3.2 4.9 3.2 4.9s-3.9.2-6-.2c-2.3-.4-3-.3-3.6-1a9.2 9.2 0 00-1.7-1.3h-2.2l.5-3.1-.6-6.9.1-3.5 2-.5zm23.4 1.8l-3.7-1.5-7-.4.6 3.6a30.2 30.2 0 002.6 7.7c1.1 2 2.2 4.4 2.8 5 .6.5 4.6-1.1 4.6-1.1l2.6-.4-.3-2.8-.4-1 .6-8-.6-1.2-1.8.1z"/>
+  <path fill="#f9aa51" stroke="#953220" stroke-linecap="round" stroke-linejoin="round" stroke-width=".5" d="M307.1 277.7c0 .8 1 .9 1.2.8.2 0 1-.3 1-1.5s-.7-2.1-2.2-2.2c-1.4 0-2.5 1.7-2.5 3 0 1.2 1.2 1.8 1.2 2.3 0 0-1.2 1.1-1.1 3.1 0 2 1.6 3.6 1.6 3.6s-1.7 1.3-1.7 2.7c0 1.4 1.3 2.3 2.6 2.3 1.2 0 2.8-.8 2.8-1.8s-1-1.7-1.7-1.7c-.8 0-1.1.5-1.1.8m25.6-10.9c0 .9-.6 1-1 1s-1.2-.4-1.2-1.5c0-1 1.4-1.6 2.4-1.6.9 0 2.4 1.2 2.4 2.7 0 1.5-1 2.6-1 2.6s.6.3.6 2.2c0 2-1.2 3.3-1.2 3.3s1.6.6 1.6 2.6-1.4 2.6-2.3 2.6c-1 0-2.6-.5-2.6-1.9 0-1.3.8-1.8 1.5-1.8.6 0 1.3.7 1.3 1.5"/>
+  <path fill="#953220" d="M309.5 288.6l.4.6c.2.4.3 1 .8 1.4.8.7 7.2 1 9.2 1 2 0 7.8.2 8.9-.4 1-.7 1.2-1.8 1.9-2.3l.9-.4-.9.7v1.4l.5.8s-.1.4-.8.8c-.7.4-1.3.5-2.3.6-1 .1-13.2.1-15.2-.2-2-.4-1.8-.3-2.4-.7a4.3 4.3 0 01-1-1l.3-.8-.3-1.4zm20-11.8l1 .5s-.9.3-1.6 2.3c-.7 2-.1 2.5-.6 2.7-.5.2-5.8 0-5.8 0l-1-2.1 8-3.3z"/>
+  <path fill="#231f20" d="M346.4 276s-.9-.3-1.3-1c-.4-.8-.8-1.7-.5-2 .4-.1 1 .5 1 1.1 0 .6.8 2 .8 2zm10.4-2.8s.7 1.2 1 1.3l1.2.6s-1.5 0-2-.4a8.3 8.3 0 01-1-1.5h.8z"/>
+  <path fill="#231f20" d="M360 274.2s-1 .5-1.6.2c-.8-.3-1.4-.7-1-1 .2-.4.4-.3.8.2.4.4 1.8.6 1.8.6zm5.3-4.5s-.8.6-1.3.6-1.5-.2-1.5-.4 1.3-.4 1.6-.3h1.2zm-8-10.5s-1.1.4-1.5 1c-.4.5-.3 1.2.2 1.2s.6-.7.6-1l.7-1.2zm-5.2 2.9s-.9.5-1 1c-.3.5-.5 1.6 0 1.6s.7-.8.7-1.2c0-.5.3-1.4.3-1.4z"/>
+  <path fill="#8cbebf" stroke="#04534e" stroke-width=".5" d="M342.8 268.4l-2.9 3s6.6 3.7 11.7 3.5c5-.1 10.8-4 11.2-5 .4-.7 0-4.3-.6-5.4-.7-1.1-4.2-3.8-5.5-3.7-1.3.1-3.7 1.9-5.8 4-2.2 2.1-2 3.9-5 3.7l-3.1-.1z"/>
+  <path fill="#0c8489" d="M342 269.6s7 1 9.1-.8c2-1.8 4.3-5.3 5.7-6 1.4-.9 2-.9 2-.9l1.6 1.1 1.8 1.5.6 3.4v1.8l-2.2 1.8-4 1.9-4 1.2-3.2-.1-6.7-2-1.7-1.1-.4-.4 1.4-1.4z"/>
+  <path fill="#04534e" d="M352.8 265.5c0-.6.4-.6 1-.6s1 .2 1 .8-.5 1.4-1 1.4c-.6 0-1-1-1-1.6zm2.8 1.8c0-.6.4-.8 1-.8.7 0 1.3.7 1.3 1.2s-.5 1-1.1 1c-.7 0-1.2-.9-1.2-1.4zm-1 4.2c0-.7.5-.8 1.1-.8.6 0 1 .3 1 1a1.2 1.2 0 01-1.1 1.2c-.7 0-1-.7-1-1.4zm-3.7-1.3c0-.7.7-1 1.3-1 .6 0 1 .7 1 1.4s-.4 1.3-1 1.3-1.3-1-1.3-1.7zm-5.9.7a1.4 1.4 0 113 0 1.4 1.4 0 01-3 0z"/>
+  <path fill="#8cbebf" d="M355.6 267.3c0-.5.7-.8 1-.8.5 0 .8.4.8.8s-.3 1-.7 1c-.4 0-1-.5-1-1zm-1 4c0-.5.6-.8 1.2-.8s1 .3 1 .8-.5 1-1 1c-.6 0-1.1-.4-1.1-1zm-3.7-1.2c0-.6 1-.9 1.5-.9.4 0 .3.4.3 1 0 .7-.3 1.2-.7 1.2s-1-.7-1-1.3zm1.8-4.7c0-.5.4-.5.8-.5s.6.1.6.7-.3 1-.6 1c-.4 0-.8-.6-.8-1.2zm-7.7 5.1c0-.6.6-1.3 1.4-1.3s1.7.3 1.7 1c0 .6-1 1.8-1.8 1.8-.9 0-1.3-.8-1.3-1.5z"/>
+  <path fill="#231f20" d="M347.7 269.4s-1 .1-1.5.6-.5 1-.3 1.2c.3.2.7-.3.8-.6 0-.2 1-1.2 1-1.2zm4.7-1s-1 .6-1 1.3c-.1.6 0 1 .2 1 .3 0 .5-.9.4-1.2-.1-.3.4-1.2.4-1.2z"/>
+  <path fill="#231f20" d="M353.2 269.3s-.6 0-1 .4c-.5.5-.9 1-.6 1 .3 0 .8-.2.8-.5 0-.2.8-.9.8-.9zm1-5.4l-.8.6c-.2.2-.5 1-.2 1 .3.2.5 0 .8-.5.2-.5.2-1.1.2-1.1zm3.5 2.3s-.9 0-1.2.5c-.3.4-.5.8 0 .8.3 0 .4-.2.6-.5.1-.4.6-.8.6-.8zm-.5 4.1s-.2.7-.8 1c-.5.3-.7.5-1 .1-.1-.4.2-.6.4-.7l1.4-.4z"/>
+  <path fill="#04534e" d="M362.8 267.5s.4 2-1.3 3c-1.7.9-6.4 4.2-10.9 3.8-4.5-.4-9.6-3-9.6-3l-.7.4 1.2.5 3.4 1.4 4 1.2 2.5.1 2.1-.2 4-1.3 3.3-1.7 1.8-1.4.4-.6v-1.9l-.2-.3z"/>
+  <path fill="#231f20" d="M274.9 242.2s1 .9 1 1.6c-.2.8-.4 1.1-.7 1-.3-.2-.3-1-.3-1.3v-1.3zm7.7 7.1s-.3 1.4-.9 1.5c-.5.1-.9-.4-.8-.7.1-.2.6 0 .8-.2l.9-.6zm-16.8 1s.4.8 1 1c.8 0 1-.4 1-.6-.1-.2-.4-.2-.8-.2l-1.2-.1zm3 6s.7.6 1.5.7a1.3 1.3 0 001.3-.7c0-.2-1-.2-1.3 0-.3.3-1.5 0-1.5 0zm5.3 4.4s1.4-.2 1.6-.6c.2-.4.6-1 .3-1.3-.3-.4-.5.5-.7.9-.1.3-1.2 1-1.2 1z"/>
+  <path fill="#8cbebf" stroke="#04534e" stroke-width=".5" d="M282.6 257.1s1-6-4-10.4c-5-4.3-8.1-3.2-9.8-1.6-1.7 1.6-3.2 6.7 2 11.3 5.3 4.5 11.7 3 11.7 3l.1-2.3z"/>
+  <path fill="#0c8489" d="M267.6 250.7s-.1-3.4 1.5-4.4c1.5-1 6.8-1.8 9.3 3.1 2.6 5 2.7 7.4 2 10h-2.7l-4.3-1.8-3.5-2.6-2.3-4.3z"/>
+  <path fill="#04534e" d="M282 258s-.9 1-2.7 1c-1.7-.2-10-2.3-12-9.8v1.7l.1.5.6 1.5 1.7 2.5 2.2 1.9 2.8 1.4 2 .6 2.5.4h1.5l1.3-1.7z"/>
+  <path fill="#04534e" d="M277.7 255.9c0-.7.3-.7.8-.7s1-.2 1 .4c0 .7-.4 1.6-1 1.6-.4 0-.8-.7-.8-1.3zm.3-4c0-.4.4-.8 1-.8.5 0 .9.4.9.9 0 .4-.4.8-1 .8-.5 0-.9-.4-.9-.8zm-3.7 4.4c0-.4.4-.7 1-.7s1 .3 1 .7c0 .3-1 .8-1.5.8-.6 0-.5-.5-.5-.8zm-.4-4.6c0-.6.3-.4.8-.4s1.2.1 1.2.7-.7 1.4-1.2 1.4-.8-1.2-.8-1.7zm-3.4.7c0-.5.3-1.1.9-1.1s1.3.6 1.3 1.1c0 .5-.5 1-1.1 1-.6 0-1.1-.5-1.1-1zm.6-4c0-.6.3-.5 1-.5.6 0 1.1.2 1.1.7 0 .5-.7 1.2-1.4 1.2-.6 0-.7-1-.7-1.5zm3.7-.5c0-.4.5-.3 1-.3.7 0 1.1.4 1.1 1s-.7 1-1.3 1c-.6 0-.8-1.2-.8-1.6z"/>
+  <path fill="#8cbebf" d="M271 248.3c.2-.4.4-.7.8-.7.5 0 .9.1.9.7 0 .4-.4.9-.8.9-.5 0-1-.5-.8-1zm-.6 4c0-.5.2-1 .7-1s1 0 1 .5-.5 1.1-1 1.1-.7-.1-.7-.6zm4.4-4.3c0-.4.3-.4.8-.4s.8 0 .8.5c0 .4-.4.7-.8.7s-.8-.4-.8-.8zm-.9 3.9c0 .5.5 1 1 1s1-.5 1-1c0-.6-.6-1-1-1s-1 .4-1 1zm4.3-.6c0 .5.4.9 1 .9.5 0 .9-.4.9-.9s-.5-.9-1-.9-1 .4-1 1zm-4.1 5c0-.5.5-.9.9-.9s.9.3.9.7c0 .4-.8 1-1.2 1-.5 0-.6-.4-.6-.9zm3.6-.7c0-.5.4-.6 1-.6.5 0 .8.1.8.6 0 .6-.5 1-1 1s-.8-.5-.8-1z"/>
+  <path fill="#231f20" d="M278.7 249.4s.5.7.6 1.3v1.2c-.3 0-.6-.4-.7-.9-.1-.5 0-1.6 0-1.6zm-3.2-3.3s.4.5.4 1 0 1-.3 1-.3-.4-.3-.8l.2-1.2zm-3.7.5s.4.5.4 1 0 1-.3 1-.3-.4-.3-.8l.2-1.2z"/>
+  <path fill="#231f20" d="M270.5 247.3l1 .4c.3.4.5.8.3 1-.1.2-.5-.1-.6-.4l-.7-1zm2.8 3.8s.7 0 1.1.5c.4.3.8.6.5.9-.2.2-.7-.2-1-.5l-.6-.9zm-3.4 0l1 .3c.3.2.4.7.2.8-.1.1-.4 0-.6-.4l-.6-.8zm8.3 2.5l.2 1.4c0 .5.1 1-.2 1s-.3-.7-.3-1c0-.5.3-1.4.3-1.4z"/>
+  <path fill="#231f20" d="M277.3 254.9l.8.5c.3.2.3.6.1.6l-.4-.5a9.2 9.2 0 01-.5-.6zm-3.7.2l.9.3c.2.2.3 1 .2 1.1 0 .1-.4 0-.6-.3l-.5-1z"/>
+  <path fill="#04534e" d="M272.1 243.8s-3.2.7-3.8 2.9c-.6 2-.7 4.4-.7 4.4l-.4-2.7.6-1.7 1-1.6 1.4-1 1.3-.4.6.1zm10.2 12.5s.4-.8-.6-3.4c-1-2.5-3-6-3-6l1.6 1.8 1.2 2 .6 1.8.5 1.7v1.6l-.3.6z"/>
+  <path fill="#231f20" d="M285.6 252.2s1.2.7 1.3 1.1c.1.4.2.6-.1.7-.3.1-.8-.4-1-.7a6.5 6.5 0 01-.2-1.1zm-4.8 12.8s.6-1 1.3-1.3c.7-.4 1.2-.4 1.4-.1.2.2-.4.7-1 .9l-1.7.6zm8.1 3.1s.8-.4 1.3-1c.5-.5.6-.9.4-1-.2-.3-.8 0-1.1.5-.3.4-.6 1.5-.6 1.5zm-.9-.7s.3-1 .6-1.4c.3-.3.6-.5 1-.3.2.2 0 .6-.2.9a7.8 7.8 0 01-1.4.8z"/>
+  <path fill="#8cbebf" stroke="#04534e" stroke-width=".5" d="M301.5 261.2s-5-7.2-12.8-7.6a7.4 7.4 0 00-8 7c.2 1.6 2.6 5.2 10.9 5.8 8.3.6 9.6-3.9 10-4.1.3-.2-.1-1-.1-1z"/>
+  <path fill="#0c8489" d="M295.6 256.3s2 1.5 3 2.8c.8 1.2 1 2.2.5 2.3-.5.2-5-4-8.8-4.9-3.7-.9-6.9 0-7.6 1.7s-.4 4.5 1.2 5.6c1.8 1 9.7 2.3 9.7 2.3l3.7-.5 2.3-1.3.5-1.3.6-1.6.2-.7-1.9-2-3.4-2.5z"/>
+  <path fill="#04534e" d="M289.2 257.3c0 .4-.5.7-1 .7s-.9-.3-.9-.7c0-.5.4-.9 1-.9s1 .4 1 .9zm-4.6 1.6c0-.5.6-.4 1-.4.6 0 1 .3 1 .8s-.8 1.1-1.3.9c-.6-.3-.7-.8-.7-1.3zm5 2.7c0-.6.4-1 1-1 .7 0 1.2.4 1.2 1s-.8 1.2-1.5 1.2-.7-.6-.7-1.2z"/>
+  <path fill="#8cbebf" d="M285.8 262.7c0-.5.6-.6 1-.6.5 0 1 .5 1 1s-.5.9-1 .9c-.4 0-1-.8-1-1.3z"/>
+  <path fill="#04534e" d="M292.5 264.5c0-.4.2-.8.7-.8.4 0 1 .3 1 .7 0 .4-.5.9-1 .9a.8.8 0 01-.7-.8zm3-2.3c0-.5.3-.4.8-.4s1 .2 1 .8-.6.8-1.1.8c-.5 0-.7-.6-.7-1.2z"/>
+  <path fill="#8cbebf" d="M289 256.9c0 .4-.2.6-.7.6s-.9-.2-.9-.6c0-.5.2-.6.6-.6s1 .1 1 .6zm-2.5 1.9c0 .5-.7.7-1 .7-.5 0-.8-.2-.8-.7 0-.5.3-.6.8-.6s1 .1 1 .6zm1 3.8c0 .4 0 .7-.5.7s-1-.3-1-.7c0-.4 0-.7.5-.7s1.1.3 1.1.7zm4-1.3c0 .4-.7 1-1.2 1-.4 0-.6-.9-.6-1.3s.4-.7.8-.7 1 .6 1 1zm5.8 1.3c0 .4-.7.4-1 .4-.5 0-.8-.5-.8-1 0-.4.1-.8 1-.7.5 0 .8.8.8 1.3zm-3.4 1.7c0 .5-.3.8-.7.8a.8.8 0 01-.8-.8c0-.4.4-.6.8-.6s.7.2.7.6z"/>
+  <path fill="#231f20" d="M294.4 262s.8-.3 1.5-.3c.6 0 .6.3.6.4 0 .1-.5.3-.7.2a86.2 86.2 0 01-1.4-.4zm-3.3 2.8s.6-.4 1.1-.5c.5-.1.9 0 .8.4 0 .3-.2.3-.6.3l-1.3-.2zm-2.2-5s1.4.6 1.7 1.1c.3.6.4.7.1.9-.3.2-.6-.2-.8-.5l-1-1.5z"/>
+  <path fill="#231f20" d="M288.5 261.6l1.6-.3c.5 0 .6 0 .7.2 0 .2-.1.3-.5.3l-1.8-.2zm-3.4 0s1.2.2 1.5.5c.3.3.3.6.1.7 0 .2-.6.1-.8 0l-.8-1.2z"/>
+  <path fill="#231f20" d="M285 263.3s.4-.7.8-.8 1-.1 1 .1c.1.2-.4.5-.7.6l-1.2.1zm-1-5.1l1.2.3c.4.3.5.6.4.7 0 .1-.5.2-.8 0-.5-.4-.7-1-.7-1zm2.6-3s1.2.4 1.6 1c.4.5.3.8.1.9l-.9-.4c-.3-.3-.8-1.4-.8-1.4z"/>
+  <path fill="#04534e" d="M300 263.7s-2.3 2-7.7 1.9c-5.5-.2-10.4-2.5-11.6-5l.5 1.2 1.2 1.6 3.8 2 4.3.9 3.3.2 3.2-.6 2.5-1.1.4-.7.2-.4zm.8-2.5s-.9-1.2-2.2-2.3c-1.2-1.2-6.2-4.4-6.2-4.4l4 1.8 2.7 2.2 1.8 2-.1.7z"/>
+  <path fill="#231f20" d="M301 256.4s1.4.5 1.6.8l.5.6s-.3 1-.6.6l-.8-.9-.7-1.1zm4-2.2s1.3.5 1.8 1.1c.5.7.4 1.2.2 1.3-.2 0-1-.7-1.2-1a47.3 47.3 0 00-.7-1.4z"/>
+  <path fill="#231f20" d="M306.4 254s1.2.8 1.4 1.2c.1.4.5 1 .1 1-.3.2-.9-.4-1-.8l-.6-1.5zm6.8 1.5s1 .4 1 1.2v1.3l-.7-.7v-.7l-.3-1zm1.8.7s.8.7.9 1.2c0 .5.2.8-.3 1-.4 0-.6-.5-.6-1v-1.2zm-12.3 15s.6.2 1.2 0c.5-.2 1-.7.9-1-.1-.4-.4-.7-.8-.2-.4.4-.2.6-.5.8l-.7.3zm6.8 1.8s.9-.2 1.5-.9c.6-.6.9-1 .5-1.2-.4-.2-1 0-1 .5l-1 1.6zm5.5.1l1.3-.9c.5-.4.7-.7.4-1-.3-.5-.6-.2-.8 0l-.2.7-.6 1.2z"/>
+  <path fill="#231f20" d="M316.7 273.1s.8-.9 1-1.4c.1-.5.2-1-.1-1-.4 0-.8.5-.8.9v1.5z"/>
+  <path fill="#8cbebf" stroke="#04534e" stroke-width=".5" d="M299.9 264.1c0-2.4 3.5-8 7.5-8 1.6 0 4.9 1 7.5 2.1 2.2 1 3 2 4.4 2.4 1.5.4 3.7.1 3.7.1l5-.5-4 5.7-1.4 1.2s-1.2 2.4-4.7 3.8c-3.6 1.4-9.5.4-12.2-.3-2.7-.7-6-3.2-5.8-6.5z"/>
+  <path fill="#04534e" d="M299.9 264.1h.2c0-.5.2-1.3.6-2.1a12.2 12.2 0 012.7-3.8c1.1-1 2.5-1.8 3.9-1.8.8 0 2 .2 3.4.6a29.4 29.4 0 014.1 1.4c1 .5 1.8 1 2.4 1.5.7.4 1.3.8 2 1a9 9 0 002 .2l1.8-.1 4.4-.5-3.6 5.2-1.4 1.2v.1a9 9 0 01-4.6 3.7c-1.3.4-2.8.6-4.5.6-2.8 0-5.9-.5-7.6-1a8.4 8.4 0 01-3.8-2.1 5.7 5.7 0 01-1.8-4h-.5c0 1.7.8 3.2 2 4.4a9 9 0 004 2.3c1.7.4 4.8 1 7.7 1a14 14 0 004.7-.7 9.4 9.4 0 004.9-4h-.3l.2.1 1.4-1.3 4.3-6.2-5.6.7h-.1a14.8 14.8 0 01-3.4-.1 5.5 5.5 0 01-1.9-1c-.6-.4-1.4-1-2.5-1.4a29 29 0 00-4.2-1.5c-1.3-.4-2.6-.6-3.4-.6h-.1c-1 0-2 .3-3 1a11.2 11.2 0 00-3.3 3.5 8.3 8.3 0 00-1.4 3.7h.3z"/>
+  <path fill="#0c8489" d="M324 264.9c-.4.3-1 .3-1.4.3-.5 0-11.6-6.7-15-6.4-3.5.3-6.8 1.7-6.9 5.3 0 3.5.8 3.5 1.5 4.5s7.5 2.5 7.5 2.5h4.1l3.3-.4 3-1.6 1.5-1.3 1.1-1.3 1.3-1.6z"/>
+  <path fill="#04534e" d="M306.5 263c0 .8-.3 1.3-1 1.3-.6 0-1.1-.3-1.1-1s.4-1 1-1c.7 0 1 .1 1 .8zm1.1-3c0-.6.6-.8 1.2-.8.7 0 1.2.2 1.2.8 0 .6-.5 1-1.2 1-.6 0-1.2-.4-1.2-1zm6.7 1.8c0-.5.4-.9 1-.9.5 0 .9.4.9 1s-.4.8-1 .8a1 1 0 01-1-.9zm1.3 4c0-.6.5-1 1-1 .6 0 1.2.2 1.2.8s-.2 1.3-.8 1.3c-.6 0-1.4-.4-1.4-1zm-3.2 2.7c0-.6.5-1 1-1 .7 0 1.2.4 1.2 1 0 .5-.5.9-1 .9-.7 0-1.2-.4-1.2-1zm-6-1c0-.6.3-1 .9-1a1 1 0 110 1.9 1 1 0 01-1-1z"/>
+  <path fill="#8cbebf" d="M306.4 263c0 .5-.4 1-1 1a1 1 0 01-1-1c0-.6.4-.8 1-.8s1 .2 1 .7zm3.3-3.2c0 .5-.2.9-.8.9-.5 0-1.3-.4-1.3-.9s.5-1 1-1c.6 0 1 .5 1 1zm6.4 1.7c0 .5-.4.9-1 .9s-.9-.4-.9-.9c0-.4.4-.8 1-.8s.9.4.9.8z"/>
+  <path fill="#04534e" d="M312.7 264.2c0 .7-.3 1.2-1 1.2-.6 0-1.1-.3-1.1-1s.3-1 1-1 1 .2 1 .8z"/>
+  <path fill="#8cbebf" d="M308 267.2c0 .5-.4 1-1 1s-1-.5-1-1 .6-.8 1.2-.8.8.3.8.8zm4.5-3a1 1 0 01-1 1 1 1 0 01-1-1 1 1 0 011-1 1 1 0 011 1zm5.2 1.3c0 .6-.3 1-1 1-.6 0-1.1-.4-1.1-1s.2-.8.8-.8c.6 0 1.3.2 1.3.8zm-3.3 2.7c0 .6-.4 1-1 1s-1.1-.4-1.1-1c0-.5.5-.8 1-.8.6 0 1 .3 1 .8z"/>
+  <path fill="#231f20" d="M314.8 265s1.6-.2 1.9 0c.3.4.3.8.1 1-.1 0-.8.1-1-.1 0-.3-1-1-1-1zm-1.7-5.4s1.3.3 1.8.9c.5.5.4 1 .4 1.1-.2.1-.6.2-1-.2l-1.2-1.8zm-3.7 2.6s1.5.8 1.8 1.3c.3.4.4.8.2 1-.1.2-.8 0-1-.3 0-.3-1-2-1-2z"/>
+  <path fill="#231f20" d="M308.7 263.3s1.7.2 2 .5c.5.4.8.4.8.6 0 .3-.3.4-.5.4a3.6 3.6 0 01-1.2-.5l-1-1zm-1.9-4.8s1.7.2 2 .5c.4.3.5 1 .1 1.2-.4.2-.8-.2-1-.5a8.2 8.2 0 00-1-1.2zm-3.6 2.5s1.5.8 2 1.4c.3.4.5.7 0 1-.4 0-.9-.7-.9-1a9 9 0 00-1.1-1.4z"/>
+  <path fill="#231f20" d="M302.8 263l1.5-.2c.5 0 1.2-.1 1.2.2 0 .4-.6.5-1 .4l-1.7-.4zm8.6 5.6s1.1-.7 1.7-.6c.5.1.7.1.7.4 0 .4-.7.3-.9.3l-1.5-.1zm-6-.9s.4-.6.9-.7c.4 0 .6 0 .7.2 0 .2-.4.6-.6.6h-1z"/>
+  <path fill="#04534e" d="M322.6 266.6s-1.6 2-4 3a14 14 0 01-7.2 1.1 15.2 15.2 0 01-11.2-5.2l.4 1.1 2 2.6 2.3 1 3.5 1 3.3.3h2.5l3-.5 1.9-.7 1.3-.8 1-.8 1.2-2zm-3-5.9s-1 .3-3-.9-4.3-2.8-8.8-2.8c-4.5 0-5.9 3-6.2 3.2l2-2.6 2-1.1 1.7-.3h1.5l2 .6 1.7.6 2.1.7 1.8 1 2.2 1.1 1 .5zm6 1.4h-3.4c-.8 0-.8.2-1 .4a4 4 0 01-.2.4l-.8-1.7 3.5-.5 2 .7-.2.6z"/>
+  <path fill="#0c8489" stroke="#04534e" stroke-width=".5" d="M320.7 280.4c.2.5.6 1 1.1 1h1.6l3.6-.3 1.2-1.4.8-3.2 1-1.2 3.3-1.9 2.8-.8 1.9-.2 2.5-.8 1.9-1 .8-1.2.8-1.8-.8-2.5-2-2.7-3.4-1.3H335l-3 1.1-5.5 1.3s-3 1.3-4.3 3.7c-1.3 2.3-1.2 3-1.5 6-.2 3.2 0 7.2 0 7.2z"/>
+  <path fill="#8cbebf" d="M322.2 279.2c1 0 .2-1.7 1.4-3.8 1.2-2 2.6-4.6 3-4.6s.4.4.9.3c.4-.2 1.2-.8 1.2-1 0-.2 0-1.3 1-2 .8-.8 2.1-1.9 2.7-2 .6-.1 1-.3 1 0 .1.3-.3.7.1.8.4.2 1.4.1 1.6-.5l.2-1s.6-.5 1.8-.3c1.2.3 1.3.2 1.4.7.1.4-.5.5-.4.8v.6c.2.2.4 1 1.2 1 .8-.1 1.1-.6 1.1-.6l.3-.4s.2-.5-.1-.7c-.3-.2-.2-.4 0-.3.4.1 1.6 1.8 2 1.1.4-.7.5-1.7.2-2a91.2 91.2 0 01-1.9-2.7l-3-1-4 .3-4 2.2-3.6 2s-.2 2.9-.8 2.3c-.7-.5-1.6-2-1.9-1.5-.3.5-.9 2.7-1.3 3.8-.3 1-1.4 4.4-1.3 5.6.1 1.2.8 2.9 1.2 2.9z"/>
+  <path fill="#8cbebf" d="M325.8 274.4c-.3 0-.7.3-.8.5-.2.2-.3.5-.2 1 0 .3.7.7.7.7h.5l1-.3.3-.8c0-.5-.3-.6-.4-.6a29 29 0 01-1.1-.5zm6.2-5c-.6-.3-.8.1-1 .3v.5s.2.8.4 1c.3 0 1.1.3 1.3 0 .3-.2.5-.4.5-.9s-.7-.7-.7-.7l-.5-.3zm5 1.1c0-.2-.5-.3-.9-.2-.3 0-.7.4-.6 1 .2.7.8.7 1.2.6.5-.1.4-.8.4-.9l-.1-.5zm-14.4 1c0 .3.5 1 1.2.9a1.3 1.3 0 001.2-1c0-.4-.4.3-1 .5s-.7.2-1 0c-.2-.4-.4-.4-.4-.4z"/>
+  <path fill="#04534e" d="M327.3 275.5s0 .6-.4 1c-.5.3-.8.3-1 .3-.3 0-.6 0-.8-.3l-.3-.7s.5.8 1.3.6a2 2 0 001.2-.9zm13.3-8.3s0 .6-.5.9c-.5.3-.7.3-1 .3-.2 0-.6-.1-.7-.4-.6-1-.3-1.5-.3-1.5s.4 1.6 1.3 1.5a2 2 0 001.2-.8zm-11.9 2.9s-.4 1.2-1.2 1.2c-.9 0-.8-.2-.7-.4 0-.1.3.2.7 0 .4 0 1.2-.8 1.2-.8zm2.3-.3s0 1 .2 1.2c.3.4.7.5 1 .5s.6 0 .9-.4.1-.8.1-.8l-.2.5c-.3.3-.5.3-.8.3s-.7 0-.8-.3l-.4-1zm4.3-4.3s.2.7-.3 1.2c-.5.6-1.5.2-1.5.2s.8.3 1.2-.2c.4-.4.6-1.2.6-1.2z"/>
+  <path fill="#04534e" d="M321.7 281.1s5.3 0 5.7-.8c.4-.7-.4-3.6 2.7-5.8 3.2-2.2 5.7-2.2 7.4-2.3 1.7-.2 5.3-1.3 6-4.5.3-2-2.3-2.2-3.3-4-1-2-3.6-1.2-3.8-1.2-.1 0-3 0-4.3 1.3-.9.8-.8 1.8-1.1 2.2-.4.5-4 0-4.3.6-.4.6.1 1.7-.2 2-.2.3-1-.8-1-.8l.2-2.8 4.5-2.6 5-2.8 3.5.1 3.5 1.8 1.7 2s.3.8.5 2.3a5.3 5.3 0 01-.2 2c-.8 2.8-3.7 4.8-6.7 5a14 14 0 00-7 2.5c-1.4 1-2.1 5.3-2.1 5.9 0 .5-6.6.1-6.6.1v-.2z"/>
+  <path fill="#231f20" d="M324 270.8c-.3.3-.7.2-.8 0-.2-1 .3-2.2.3-2.2v1.6c.1.2.4.1.5.3v.3zm3.2-.6c-.2-.1-.1-1 0-1.3.2-.3 1.7-1.4 1.7-1.4l-.6 1.5c-.2.4-.7 1.3-1 1.2zm-1.2 5.3c-.3 0-.3-.4-.3-1s1-1.6 1-1.6l-.4 1.2.2 1c0 .3-.3.4-.5.4z"/>
+  <path fill="#231f20" d="M328.4 274s-.5.6-1 .9c-.5.3-1.1.7-1.4.6-.4 0 .1-.8.3-.9l2.1-.6zm4.5-6.4s-.6.5-.9 1.2c-.3.7-.4 1.3-.1 1.4.3.2.7-.8.8-1.1l.2-1.5z"/>
+  <path fill="#231f20" d="M334.6 269.9s-.5-.4-1.2-.6c-.8-.2-1 0-1.2.2 0 .2-.6.5-.3.7.2.2.6-.3.8-.3.2-.1.5-.3.9-.2l1 .2zm-1-4.5c.3.3.7-.2 1-.6.4-.4.7-1.2.7-1.2l-1 .7c-.4.3-.9 1-.7 1.1zm6.9-.1s-1 .4-1.2.8c-.3.4-.7.8-.4 1 .3.3.6-.2.8-.5l.8-1.3zm-2 4.6s-.3.6-.9 1c-.5.4-1.2.5-1.3.3-.1-.2.1-.6.3-.7l.8-.2a7.3 7.3 0 001.1-.4z"/>
+  <ellipse cx="328.8" cy="207.4" fill="url(#b)" rx="2.9" ry="4.3" transform="rotate(8.7)"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="M295.4 247l-1.7 4.2 1.4-.2.7-3.8z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M296.1 245.1c-.6 0-1.1.4-1.2 1 0 .7.4 1.3 1 1.4.6 0 1.1-.4 1.2-1 0-.7-.3-1.3-1-1.4z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="M369.7 255.8l-4.2 4 1.7.4 2.9-3.8z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M371.6 254.1a1.5 1.5 0 00-2 .6c-.5.7-.3 1.5.4 2 .7.3 1.6 0 2-.7.4-.6.2-1.5-.4-1.9z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".3" d="M262.8 233l2.2 4.9 1-1.4-2.6-3.7z"/>
+  <path fill="#fcca3e" stroke="#aa8c30" stroke-width=".2" d="M261.9 230.9c-.6.4-.6 1.3-.1 1.9.4.6 1.3.7 1.8.2.6-.5.6-1.3.1-2a1.3 1.3 0 00-1.8-.1z"/>
+  <path fill="#aa8c30" d="M296.6 245.3s.3.1 0 0c-.5 0-1.4.4-1.4 1a1 1 0 001 1c.5 0-.2.2-.2.2l-.7-.2-.2-.4-.2-.5.1-.6.4-.5.5-.2h.3l.4.2z"/>
+  <path fill="#aa8c30" d="M295.6 248.1s-.3 0-.5.3a49.4 49.4 0 01-.7 1.1l1-2.3.4.2-.2.7zm76.4 6.4s.3.4-.1 0c-.4-.3-1.8-.2-2.1.5-.4.8 0 1.4.6 1.7.6.2-.2 0-.2 0l-.7-.5-.1-.6v-.7l.5-.6.7-.3h.7l.3.2.4.3z"/>
+  <path fill="#aa8c30" d="M369.4 257.3s-.3-.2-.8 0l-1.4.9 2.3-2.2.5.6-.6.7zm-107-26.7s.4-.1 0 .1c-.5.3-.8 1.4-.3 2 .6.5 1.3.4 1.7 0 .4-.5 0 .2 0 .2l-.7.4h-.6l-.6-.3-.4-.6v-.8l.2-.5.3-.3.3-.2z"/>
+  <path fill="#aa8c30" d="M264 233.8s-.3.1-.2.6l.3 1.5-1.2-2.7.7-.2.4.8z"/>
+  <ellipse cx="337.6" cy="-128.1" fill="url(#c)" rx="4.6" ry="3.1" transform="rotate(62.9)"/>
+  <path fill="#e92736" d="M262.6 241.2s1 .2 1.5 0 .6-.7.7-.8.3-.6.2-1a3.8 3.8 0 00-1-1.4l-1-.1c-.1-.1 0-.4-.2-.5-.3 0-1.7 1.6-1.5 1.8.3.3.4 0 .5.1v1.1c0 .3.8.8.8.8z"/>
+  <path fill="#e92736" d="M264 238.1c.1.3.7 1 .9 1 .2.2.8.2 1 0 .3 0 1-.7 1-1a1.5 1.5 0 00-.1-.7c-.2-.3-.1-1-.4-1.1-.2 0-.3-.1-.5-.3v-.7c-.3-.3-2.6 1.1-2.4 1.4.2.2.4 0 .5.1v1.3z"/>
+  <path fill="#e92736" d="M269.2 237.6c.2-.4.1-1.5-.1-1.8s-.6-.3-.7-.4c0-.1.3-.2.3-.5s-2.6.1-2.4.4c.2.3.6.1.6.3 0 .2-.4.4-.5.6l.3 1.1c0 .2 0 .4.2.5l.6.2h1.4c.1-.1.2-.1.3-.5zm22 12.8s.3.7.8 1h1l.6-.5c.2-.2.4-1.2.3-1.4 0-.2-.5-.6-.5-.8 0-.2.3-.2.2-.4-.1-.2-2-.2-2 .2 0 .3.3.2.2.3 0 .2-.5.5-.6.7-.2.1 0 1 0 1z"/>
+  <path fill="#e92736" d="M293.8 249.5c0 .2-.2 1 0 1.1 0 .2.3.7.5.8h1.2a1.2 1.2 0 00.4-.6c.1-.3.6-.7.5-.9-.1-.2-.2-.2-.1-.4 0-.2.3-.2.3-.5s-2.1-1-2.2-.7c0 .3.3.2.2.4 0 .2-.7.6-.8.8z"/>
+  <path fill="#e92736" d="M297.3 252.5c.3-.2 1-.9 1-1.1 0-.4-.3-.6-.2-.7l.5-.1c.1-.2-1.6-1.6-1.7-1.3 0 .3.3.4.2.5l-.7.1c-.1.1-.5.6-.5.8 0 .2-.3.2-.2.5l.2.4c.1.2.8.9 1 .9h.4zm66 5.5s0 .8.4 1.2c.3.3.6.3.8.4h.7a3 3 0 001-1c0-.3-.3-.8-.2-1s.3 0 .3-.2c0-.3-1.6-1.1-1.7-.8-.1.2.2.3 0 .4l-.8.2c-.2 0-.5.8-.5.8z"/>
+  <path fill="#e92736" d="M366 258.5l-.8.8c0 .2 0 .7.2.8 0 .2.7.6 1 .5.1 0 .3 0 .5-.2.2-.1.8-.2.8-.4l.1-.4c.1-.1.4 0 .6-.2.2-.2-1.2-1.7-1.4-1.5-.2.2 0 .3 0 .4-.2 0-.9 0-1 .2z"/>
+  <path fill="#e92736" d="M366.4 262.2h1.4l.4-.5c.1 0 .1.2.4.2.2 0 0-2-.3-1.8-.2.1-.1.5-.2.4-.2 0-.3-.3-.5-.3a2.4 2.4 0 00-1 .1s-.2 0-.3.2l-.2.4v1c.1.2 0 .2.3.3z"/>
+  <path fill="#f7e204" d="M264.2 239c.2.4-.1 1.2-.3 1.4-.1.2-1.3-.1-1.3-.3 0-.2-.1-.6 0-.8.2-.2.6-.7.9-.6.3 0 .6.3.7.4zm.3-1.3c-.2.3 0 .6.2.7.1.2 1 .4 1.2.3.2-.2.6-1.5.4-1.7-.2-.2-.6-.2-.7-.2-.2 0-1 .6-1.1.9zm2.7-1.3v.7c.2.1.7.5 1 .5.3 0 .5-1 .5-1.1 0-.2-.1-.3-.3-.4l-1.2.2zm26.1 13.7c0 .4-.7.7-.9.7-.2 0-.7-1-.6-1 .1-.2.3-.5.5-.5s.7 0 .9.2l.2.7zm1.1-.6c-.2.1-.3.4-.3.6 0 .2.3.8.5.9.2 0 1.2-.5 1.3-.7 0-.2-.2-.5-.4-.6l-1-.2zm2.4 1c-.2 0-.4.3-.4.5 0 0 0 .6.3.8.2.2.8-.2.9-.3v-.4c0-.2-.8-.6-.8-.6zm68.6 8.2c-.2.2-.9.2-1 0-.3 0-.3-1-.1-1 .1-.1.4-.3.6-.2.2 0 .6.3.6.6l-.1.6zm1 .1c-.3 0-.5.1-.6.3-.1.1-.2.7 0 .9.1.1 1.2.2 1.3 0v-.5l-.7-.7zm1 2h-.5c-.1 0-.4.4-.4.7 0 .2.7.3.8.3l.3-.2-.1-.8z"/>
+  <ellipse cx="438.6" cy="-93" fill="url(#d)" rx="2.2" ry="4.5" transform="rotate(47.9)"/>
+  <path fill="#a8ac71" d="M285.8 199.3s-3.8.3-6.5-.1-2-7.3-2.1-7.5c0-.2-1.6-1.8-1.4-3.3.3-1.5 5.2-5.5 5.8-5.8.5-.1 1.5.3 1.5.3s1.2-1.2 1.6-1.2c.4 0 .9.7.8 1-.2.3-1.9 1.3-2 2-.2.8 0 1.5-.5 2.3-.5.7-1.4 1.7-1.5 2.4-.1.6-.4 1.1 0 1.4.5.2 2.1 0 3.5-.6 1.4-.7 2-1.5 2.1-1.4.2 0-.8 1.7-2.3 2.4-1.5.6-2.5 1.3-3.3 1.2 0 0-.8 2 1.8 2.2 2.6 0 4-.6 4-.6l-1.5 5.3zm-15 16s2 .8 2 3-2.1 4.1-2 8c0 4 .6 4 5.8 8.3a5.7 5.7 0 011.6 2.5c.3 1.3 1.2 8.9 6.2 8.9s5.8-3.3 5.8-3.3l-2.2-3.1s-1.7.5-2.7.3a3.4 3.4 0 01-2.3-2.1c-.6-1.2-.7-4.1-1.6-5.4-2-3.2-5.8-3.7-5.9-7 0-3.4 2.3-3.7 1.7-7.7-.7-4-5.4-5.8-5.4-5.8l-1.9-.8-.7 4 1.6.2z"/>
+  <path fill="#f1a720" d="M284.7 187.6c1.7-.4.7-4.8.7-4.8l-1.2 1s.8 1 .8 2-.3 1.8-.3 1.8z"/>
+  <path fill="#a8ac71" d="M287.8 231.5l-.9-.7c-.6-.4-3.2-2.6-2.8-8.9.5-7.2 11-11 11.6-13.8.8-3.2 3.1-4.5-5.2-11l-2 2.2 3.5 2.6s.7-.4.8.6c0 1-1 1.7-1.2 2.5-.2.7-5.4 4.3-5.8 4.6l-3 2.4s-1.3 1.3-2.5 4.1c-1.3 2.8-.7 6.4-.7 6.4s0 7.6 8.2 9z"/>
+  <path fill="#78732e" d="M282.7 235.5l.6 2.7-1.7.6h-.7l-.5.2-1.3 1.2h-.3s-.2 0-.3-.8c0-.8-.2-1.5-.2-1.5l1.6.7h.6l.3-.1.7-1.5 1.2-1.5zm-4.8.5l-.8-1-1-.9 1.2-.6h1.2l-.2 1.5-.4 1zm2.7-4.3s.8.3 1 1l.6 1.2-2-.2-1.4-.4 1-1.4.8-.2zm-.7 11.9s-.4-.3-.7-.9l-.4-1.6 1.3-.3 1.5.7h.4l-.3.8-1.5 1.3h-.3zm5-4.1s-1-.4-1.2-1c-.2-.5-.4-.4-.4-.4l-.3 1.5-.5 1.5.2.2 1.1-.3.9-.9.3-.6zm-4.7 4.8l1.4.7c.8.5 1.2.5 1.2.5l.6-.6.7-1.3v-.1l-3 .3-.9.5zm4.4-1.2l2.7-1.6.1-1.4-.5-.4h-1.5l-.5 1.8-.3 1.6zm-1.8 2.5s1.8.8 5-.4c1.4-.5 1.7-1.2 1.7-1.2l-1.3-.5-1.2 1-4.2 1zm-2.5-20.3l-.4-1.4c-.2-.8-.1-1.1-.1-1.1l.9.5 1.3 1-1 .7-.7.3zm2.2 3.7l-.9-1a12.4 12.4 0 01-.6-1.2l1 .2 1.1.6-.5 1.4h-.1z"/>
+  <path fill="#c6c7a6" d="M276.6 187c-.2.7-.4 1.9.5 2 .4.2 2.3 0 4.5-2.4 1-1.2 1-2.4 1-2.4l.5-1.3s-.9-.6-2.2.2c-1.3.8-4.3 4-4.3 4z"/>
+  <circle cx="282.5" cy="183.6" r=".4" fill="#1c242f"/>
+  <path fill="#a8ac71" d="M279.7 184a17.7 17.7 0 00-1.7 1.7s1.4-.4 2.6-1.5c.6-.6 2-.8 2.6-.7.4.1.2-.4 0-.5-.3-.3-1.4-.4-1.6-.3l-1.9 1.3z"/>
+  <path fill="#78732e" d="M284.1 224.5v-2.2l-.9.8-.8 1.1 1.3.5.4-.2zm-4.5-2.6v-2.3c0-1 .5-3.1.5-3.1l.6 1.4 1.5 2.4.5.4-1.3 1-1.4.4-.4-.2zm4.5-.6l.3-1c.1-.6.5-1.4.5-1.4v.1a25 25 0 00-2 1.7l.8.7h.5m-3.7-6s.2-.6 1-1.5l1.3-1.8.6 2.4.4 2v.4l-.7.2c-.2 0-1.6 0-1.8-.3l-.8-1.3zm4.8 2.9l.8-.9 1-1-3.2.6.5 1 .8.3zm-2-6.7s.3 0 1.2-1c.8-.8 1.3-.7 1.3-.7l.3 3.4-1.6-.5-1.2-1.2z"/>
+  <path fill="#78732e" d="M287.3 216.2l2-2-3.3-1 .6 2.3zm1.4-5.2l.2-3.3s-.7.3-1.5 1l-1.2.9.4.6 1 .7h1zm2.8-3.2V205s-.5.8-1 1.2l-.9.8.9.6h1zm1.2 3.5l1.6-1.3a6.5 6.5 0 001.5-1.7l-4.2-.3.2 1.7 1 1.6zm-9.6-13.8l-.2 1.8h3.5l-.9-1.2-1-.6-1-1zm6.6 16.2c.2 0 1.1-.8 1.6-1.2.4-.5 1.2-1 1.2-1l-3.3-.3v2.2l.5.3zm6.3-5.9s.4-1.3.3-2.6c0-1.2-.2-1.8-.2-1.8l-2.5 1.7.4 1.2 1 1 1 .5z"/>
+  <path fill="#78732e" d="M291.8 204.8s.7-1 .8-1.4v-.4h2l1.1.2h.2l-.9 1.1-1.2.7-1.5.2-.5-.4zm4-2l-1.3-2c-.4-.7-.8-1-.8-1l-1 2.7v.3h3z"/>
+  <path fill="#fff" d="M271.6 222.2l-.3.8s1.3-.7 2.3-.7c1 0 2.1 1.3 2.1 1.3l.2-.9s-1.3-1.3-2.2-1.3c-.8-.1-2 .8-2 .8zm.7-5.8l.3.4c0 .1.1-1 1.4-1.5 1.4-.6 2-.1 2-.1s-.2-.8-.8-1c-.6-.1-1.1 0-1.8.5a3.7 3.7 0 00-1.1 1.7zm4.4 4.4s-.6-1.4-1.6-1.6c-1.1-.3-2.5.5-2.5.5l-.2.7s1.5-.8 2.5-.4c1.1.5 1.5 1.7 1.5 1.7l.3-1zm-5-5.1l.4.5s-.2-1.4.5-2.1a4.9 4.9 0 011.1-1l-.6-.3s-.9.5-1.2 1.1a3.2 3.2 0 00-.2 1.8zm-.5-2.3c.3-.8 1.2-1 1.2-1l-.3-.3h-.5s-.5.3-.9 1c-.3.9-.3 2-.3 2l.6.3s-.1-1.4.2-2zm7.8-19.2c.9-.4 1.5-.3 1.5-.3s-1.3 1.3-.7 2.9c-.7 1.3-.9 2.3-.9 2.3h.7l.4-1.8c.8 1.3 2 2 2 2h1s0-1.3.4-2.4h.1a5 5 0 002 1.5v-.4s-1.1-.6-1.7-1.5l-.1-.1a4.2 4.2 0 011.8-1.7l.7.6.2-.2-.5-.7h-.6l-1.8 1.7a9.2 9.2 0 01-.8-1.5l-.4-.2s-1.1.1-2 1.7c-.2-1.2 1.1-2.4 1.1-2.4v-.5l-2.4.6c-1 .3-1.7 1.2-1.7 1.2v.8s1-1.1 1.7-1.6zm1.5 2.2c.6-1 2-1.5 2-1.5s0 .7.7 1.7c-.5.9-.8 2.2-.8 2.2s-1-.6-1.9-2a1.6 1.6 0 01-.2-.3l.2-.1zm-7.6 21.1v.8s.8-.9 2-1c1.2 0 2.3 1 2.3 1s0-1-.2-1.2c-.1 0-1.1-.6-2-.6s-2.1 1-2.1 1zm21.4-11.2l-.5-1 .6-.3a12.5 12.5 0 001.7-1.6l-.4-.6h-1.6l-1.4-.1.5-1.7.6-1.4-.6-.5s.2.5-.8.6c-1 .1-2.8-.8-2.8-.8v.4l2.5.7c.6 0 1-.1 1.2-.3l-.5 1.3-.3 1 .2.2v.8l1.4.1 1.6.1s-.8 1-1.7 1.5a2.3 2.3 0 01-.3 0l-1-1.5-.1.5.7 1.2a5 5 0 01-1.5-.1l-.4.4v2.5l-1.8-.6-.3.3v-.1l-.4.4s-.4 1.4-.3 3.1v.1a4.9 4.9 0 01-2.4-1.3l-.4.3s-.3 1.4 0 3.2c-1.3-.3-2.5-1.5-2.5-1.5l-.5.5a60 60 0 00.7 4.7 4.9 4.9 0 01-.7 0c-1.4 0-2.3-1.3-2.3-1.3l-.4 1s.6 2.7 2 4l.4.2c-1.3 1-2.8 1.2-2.8 1.2v.9a44.7 44.7 0 002.2 1.5 4.8 4.8 0 01-1.6 1l.2.5 1.8-1.3 1.8.5v-.5l-1.5-.3.1-.1c.5-.4 1.4-1.8 1.4-1.8v-1s-.5 0-1.1-.6c1.8-1.2 1.9-1.8 1.9-1.8l.4-.6s-.7-.3-1.1-1.2l2.9-.7.2-.2s-.7-1.2-1-2.6l3 .6.4-.4-.5-2.4c1.8 0 3.2.2 3.2.2l.3-.3s-1-1.9-1-3a4.8 4.8 0 001 0h3l.3-.5s-1.4-1-1.7-1.5zm-10.5 15.5s-.5 1-1.4 2l-.2.2a4.6 4.6 0 01-.5-.2c-1.1-.6-1.4-1.3-1.4-1.3l2.5-1.6 1 .9zm.9-3.2l-2 2a4.1 4.1 0 01-.4-.5c-.8-1.2-2-2.1-1.8-3.8 0 0 .7 1.2 2.2 1a14 14 0 001-.1c.4 1 1 1.4 1 1.4zm2-2.5l-2.7.7a5.3 5.3 0 01-.1-.5c-.5-1.6-.5-4-.5-4s1 .8 2.6 1.2l.7 2.6zm-.5-3c-.2-1.4.1-2.9.1-2.9s.8.8 2.3 1c.1 1.5.3 2.1.3 2.1l-2.7-.1zm5.8-2.2s-1 .4-2.8.1a15.3 15.3 0 010-.5 23 23 0 010-3l2.3.7a10 10 0 00.5 2.7zm0-3.1h-.2V205s1 .3 1.7.2c.2.4 0 .5.5 1.2.4.7 1.1 1.3 1.1 1.3s-2.3.2-3.2 0zm-7.6 18.6l-.1-.5s-1 .7-1.2 1.4a1.6 1.6 0 01-.3-.1l-2-.8.2.4 1.8.8h.2l-.5 1.4.2.3.5-1.7 1.2.1-.2.8-.4 1.5.5.3h2l-.3-.4-.7-.1h-1.1l.3-1.2.3-.8-.3-.7-1 .2a3 3 0 01.9-.9zm-11.3-1.3c1.3 0 2.3.9 2.3.9v-.6s-1-1.4-2.1-1.4c-1.2 0-2.5 1.2-2.5 1.2v1.2s1-1.3 2.3-1.3zm13.3 19.4c-1.3.6-2.7.6-2.7.6l.8-1.5c2.5-.8 3-2.4 3-2.4l-.2-.7s-.6 1.6-2.6 2.4c.4-1.2.7-3.2.7-3.2l-.7-.2s-1 1.3-2 1.6a7.7 7.7 0 00.8-2.7l-.3-.5s-.7.6-1.7.8a1.8 1.8 0 01-.6 0c.6-.8 1.7-3.2 1.7-3.2l-.2-.5s-.8 2.1-1.7 3.2a10.6 10.6 0 01-.3.4c-1-.3-2.2-1-2.2-1l.1.3s.8.6 1.8 1a27.3 27.3 0 01-1.3 1.2v1l3 .4c-1 1.6-2 2.1-2 2.1l.5.7s1.3 0 3.7-.6c-.6 1.2-1.2 1.8-1.2 1.8s2.2.2 3.7-.6 2-1.6 2-1.6l-.4-.4s-.4 1-1.7 1.6zm-6.9-4l1.2-1.5c1.6.3 2-.1 2-.1s.3.8-.6 2.3c-1.1 0-2.6-.8-2.6-.8zm1.4 3l1.3-1.6.3-.3c1.5 0 2.3-1.3 2.3-1.3s.2 1.2-.5 2.7c-1.9.7-3.4.5-3.4.5zm-1.9-9.8c1.5 0 3.3.7 3.3.7l-.2-.7-2.9-.6a3.6 3.6 0 011.6-1.6l-.5-.3s-.6.1-1.4 1.5a4.1 4.1 0 00-.2.4 4 4 0 00-.3 0 5 5 0 00-2.4.7l.2.4s1.1-.5 2.3-.5a25.7 25.7 0 00-.7 2.4l.3.6 1-3zm-3-6.2l-.3-.7s-1.5-.6-2.7 0c-1.1.5-2 1.9-2 1.9l.5.9s.8-1.5 1.9-1.9c1-.3 2.6-.2 2.6-.2zm3 2.4l-1-.6s-1.7.5-2.2 1.1c-.6.6-1.1 2.1-1 2.5.2.5.7.7.7.7s.3-1.5 1.1-2.3c.8-.8 2.4-1.4 2.4-1.4zm-3.9-.5a4.5 4.5 0 012-1l-.7-.5s-1.5.2-2.2.9c-.8.7-1.8 2.1-1.8 2.1l.9.9s1.2-1.8 1.8-2.4zm5.2-44.7v-.1c.8-1 1.6-1 1.9-1h.6a9.3 9.3 0 00-.8 2.5c-.2 1-.7 1.2-1 1.9-.4.7-1.1 1.8-1.2 2.8 0 1 .3 1.6.5 1.7.3.1.8-.4.7-.7 0-.3-.3 0-.4 0-.2 0-.2-.3-.3-.9-.1-.6.7-2.2 1-2.8.3-.5 1-1.1 1-2l.7-2.5c0-.1-.4-.2-1.3-.3-.6 0-1.5.5-1.9 1.2-.4.6-1.7 1.1-1.7 1.1s1.4 0 2.2-1z"/>
+  <path fill="#78732e" d="M285.2 194.5h-2.5l.7 2zm-3-.1l-.5-.4a1.5 1.5 0 00-.3-.3l-.9.5-.5 1.9.3.3 2-2zm-.3 5l-1.8-2.7-1 2.2.5.2 1.2.2h1.1zm7.4 44.7a9 9 0 01-4.8 1.5 6.7 6.7 0 01-3.4-1 4 4 0 01-1.5-1.7c-.6-1.1-.8-2.5-1-4-.3-1.3-.5-2.6-1.1-3.6-.8-1.3-2.4-2.1-3.8-3.3a7.3 7.3 0 01-2.8-5.2 8.1 8.1 0 010-.8c0-1.7.5-3.2 1-4.5s1.2-2.5 1.2-3.5v-.5c-.3-.7-1-1.4-1.5-1.9s-1.2-.8-1.2-.8l-1-.2-.1.3 1 .2v-.1.1l1.3 1c.5.4 1 1 1.1 1.5a1.9 1.9 0 010 .4c0 1-.5 2-1 3.3a11.7 11.7 0 00-1.2 4.7v.8a7.7 7.7 0 003 5.5c1.5 1.1 3 2 3.7 3.2.8 1.2 1 3 1.3 5 .2.8.4 1.7.8 2.5s.9 1.5 1.6 2a7 7 0 003.7 1c2.7 0 4.9-1.6 4.9-1.6l-.2-.3z"/>
+  <path fill="#78732e" d="M287.2 239.2a2.6 2.6 0 01-1.3.4c-.5 0-1.1-.2-1.7-.8a4 4 0 01-1.2-2.3c-.2-.9-.3-2-1-3.3-.5-1.5-2-2.6-3.5-3.7-1.3-1.1-2.6-2.2-2.9-3.4a3.3 3.3 0 010-.7c0-1 .4-2 .8-3.1a10.8 10.8 0 00.9-4.8c-.2-2-1.7-3.5-3.2-4.5a14.1 14.1 0 00-2.8-1.4l-.1.3h.2c.5.3 1.8.9 3 1.8 1.3 1 2.4 2.2 2.6 3.8v.8c0 1.5-.4 2.7-.9 3.9s-.9 2.2-.9 3.2l.1.8c.3 1.3 1.6 2.4 3 3.6 1.5 1 3 2.2 3.5 3.5.6 1.3.7 2.4.9 3.2.2 1 .4 1.7 1.2 2.5.7.7 1.4.9 2 .9a2.8 2.8 0 001.4-.4l-.1-.3z"/>
+  <path fill="#a8ac71" d="M296.4 231.6s1.7.4 1.6 1.8a13.3 13.3 0 01-.8 3.4l-2.4-2.2 1.3-1.2.5-.7-.2-1.1z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M266.4 214.5s-1.7.6-2.1-.1c-.4-.8-.2-1.4-.2-1.5 0-.2-1-.3-1-1.3.1-1 1.4-.9 1.6-.9.3 0 .4-1.5 1.3-1.4.8 0 1.2 1 1.2 1l-.8 4.2z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M268.3 215s-1.5.8-2 0c-.4-.7 0-1.6-.1-1.8-.2-.1-1-.4-.9-1.3.2-.9 1.1-.6 1.4-.8.3-.1.6-1.4 1.5-1.2.9.3 1 1 1 1l-1 4.1z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M270.8 215.3s-.5 1-1.5.8c-1-.2-.7-1.7-.9-2-.1-.3-.9-.5-.8-1.4.2-1 1.1-.9 1.5-1 .3-.1.7-1.6 1.4-1.4.7.3 1.3 1.1 1.2 1.5 0 0-1.5.5-1.7 1.5-.2 1 .8 2 .8 2z"/>
+  <path fill="#af7029" d="M293.7 231.2l-2.2-2.6c-.9-1.3-2.3-2.7-2.3-2.7l-2.2-1.1-1.4-2.4-.2-2.8.6-1.6.8-1.2s-4.6 1.7-2.2 10.5c1 3.8 3.5 4.3 3.5 4.3l4.3-.3h1.3z"/>
+  <path fill="#816c2a" d="M291.6 201.7c.4 0 .6.2.8.4l.2.6v.4c-1.6 3.4-4.8 5-7.8 7a13.8 13.8 0 00-3.8 4 12 12 0 00-1.6 6.8c.1 5 2 7.8 4.2 9.3a9.7 9.7 0 005.2 1.5h.4l1.4-.1a35.8 35.8 0 013-.2l1.8.1.9.4a.8.8 0 01.2.5c0 .4-.3.8-.6 1.2l-1 .7.2.3a4 4 0 001-.8c.4-.4.7-.9.7-1.4 0-.2 0-.5-.3-.7-.2-.3-.6-.4-1.1-.5l-1.8-.1c-2 0-4.5.3-4.5.3v.2-.2a6.8 6.8 0 01-.3 0 9.4 9.4 0 01-5-1.5c-2.1-1.4-4-4-4-9v-.4c0-2.7.5-4.7 1.5-6.3 1.4-2.4 3.7-3.8 6-5.3a14 14 0 005.5-5.7v-.5c0-.2 0-.6-.2-.8-.2-.3-.5-.5-1-.5v.3z"/>
+  <path fill="#fff" d="M297.8 232.7s-1 2-1.4 2c-.2 0 1 .3 1.3.8l-.3.5s-1.2-.9-2-1v-.6l1.1-.7a4 4 0 00.9-1.7l.4.7z"/>
+  <path fill="#fcca3d" d="M302 234l-2.7.8-1.3-1s0-1-.5-1.5l-1.6-1c-.6-.2-2.5-.2-2.5-.2l-5-5.3 2 .2 2.8-.4 2.7-.2 1.4.2 1.6.4.8.7.8.8.8 1.3.6 1.6.2 1.7v1.9z"/>
+  <path fill="#af7029" d="M302.2 233.8s-1 .3-2.2.3c-1.3 0-2-.2-2-.2l-.2.9c-.2.9-.5 1.3-.5 1.3v3.2l2.6.5 1.4-.5.7-3.5.2-2z"/>
+  <path fill="#fcca3d" d="M301.5 232.5v1.2l.6.2v-1.2zm-2.5-30l-.3-2.1-.8-1.5-1.1-1.5-1.2-1.3-.6-.5-.3-.5-2.9.2-1.4 1.7s3.8 2.8 5.3 5.8a7 7 0 012.8 1.7l.1-.2.4-1.8z"/>
+  <path fill="#af7029" d="M296.3 205c0 2.2-.5 3.2-.8 3.7l1.8-2 1.2-2.2a7 7 0 00-2.8-1.7c.4.7.6 1.4.6 2.1z"/>
+  <path fill="#816c2a" d="M300.3 237.9l-1.4-1.6c-.6-.6-1.3-1-1.3-1l-.2.4h.1l1.2.8a17.6 17.6 0 011.3 1.6l.3-.2z"/>
+  <path fill="#6f5b24" d="M302 235.5s-.3 1-1.3 1.8c-1 1-2.2 1.5-2.2 1.5l2.8 1 1.9-1.7-1.2-2.6z"/>
+  <path fill="#404118" d="M302.4 237.8l-.2.3-.5.5-.4.5.6-3 .6 1v.4z"/>
+  <path fill="none" stroke="#78732e" stroke-width=".2" d="M285.8 199.3s-3.8.3-6.5-.1-2-7.3-2.1-7.5c0-.2-1.6-1.8-1.4-3.3.3-1.5 5.2-5.5 5.8-5.8.5-.1 1.5.3 1.5.3s1.2-1.2 1.6-1.2c.4 0 .9.7.8 1-.2.3-1.9 1.3-2 2-.2.8 0 1.5-.5 2.3-.5.7-1.4 1.7-1.5 2.4-.1.6-.4 1.1 0 1.4.5.2 2.1 0 3.5-.6 1.4-.7 2-1.5 2.1-1.4.2 0-.8 1.7-2.3 2.4-1.5.6-2.5 1.3-3.3 1.2 0 0-.8 2 1.8 2.2 2.6 0 4-.6 4-.6l-1.5 5.3z"/>
+  <path fill="#ab6d29" stroke="#4d2a15" stroke-width=".4" d="M318.7 170.6s-7-1.3-7 4.5c.1 1.9.5 2.5 2 3 1.5.3 4.4.5 7 2.7 2.5 2.3 2.7 4 2.7 5.3 0 1.4-.7 2.6-.7 2.6l1.6 7.7 1.6 5.7 4.8-2.7 2.8-8.5-3.6-15.2-11.2-5.1z"/>
+  <path fill="#4d2a15" d="M325.6 200s2.5-1 3-3c.3-.5-2.4-2.9-2.4-2.9-.1 0 1.3.7 2 1.3.6.6 1.1.9 1.3.8.2-.1 1.3-2.7.9-3.3-.4-.6-1.1-2-2.1-2.6-1-.7-2.4-.6-2.4-.6s1.9-.6 2.8 0c1 .5 1 1 1.1.9.1-.3-.2-2.9-.6-3.7-.4-1-.8-1.3-2-1.6-1.1-.2-2.3-.1-2.3-.1s1.6-.9 2.8-.6c1.3.3 1.3 1 1.4.8 0-.1-.6-2.4-1-3a6.7 6.7 0 00-2.1-1.8l-1.8-.2h-.6s1-.6 2.1-.5c1.2.1 1.3.5 1.4.4.2 0-.1-.2-.8-.7s-4.2-2-4.2-2h-3.3s0-.8 1-1c.9-.1 1.1.1 1-.1 0-.3-2.6-.8-2.6-.8H316l-3 .3s.2-.5.7-.9c.3-.3.9-.5 1.3-.6 1-.3-.6-1.1-.6-1.1l.9-1.3 3.9.3 8.2 4.8 3.9 3.3 2.4 6.2-.7 10.8-5.5 4.5-2.4.3.5-2.3z"/>
+  <path fill="#d2a567" d="M318.4 173.3s-.2-.7-.2-1.7.2-.9.2-.9-2.7-.3-4.6 1.2c-1.9 1.5-.8 4.1-.8 4.1s.8-.8 1.9-1.2c1-.4 3-.3 3-.3.2-.2-.4-1-1.1-1.1-.8-.2-2.1-.2-2.1-.2s.8-.5 2.2-.4c1.4.1 1.6.5 1.6.5z"/>
+  <path fill="#8f4620" d="M326.7 200.9l-1.8.6 1 7.5 7.2 12.1 3.7-.6 1.3-2.3 1 .5c.4.4 1.8 2.8 3 3.3 1.1.4 1.7.2 2.7 1 1 1 4.9 6.6 5 6.8.3.2-.1-2.4-.1-2.4l-1.2-3.4-1.4-2.4-.3-.6h2l1.2.8 2 1.5.9 1.2.5 1.2.2 1 .5 1.6 1 2.3 1.3 2.1.4-.9-.6-2.5-2-6-1-2 1.9 1.2c.4.1 1.8 2.2 1.8 2.2l.9 2.2.6 2 .4 1.7.7 1.9 1-.7-.1-1.3-1-4.2-.4-4.5s.6 0 1.2.7a9 9 0 011.2 2.3l.5 4.1.7 3.8 1.2 3.8 1.2 2.4.9 1.3v-2l-1.6-16 .2-.6s.2-.1.8.7c.5.7 1 1.9 1 1.9l.5 2.5.2 1.7.3 3.3.5 3.5 1.6 3.8.9 2 .5-2.4-.8-17.1.4-.5s.9.7 1.2 1.3l.8 1 .6 3.8.4 10.7.4 2.8 3.2-28.2 2-.4.2-.6-1.5-1-3.2-5-2.1-4.9-3.8-7-6.6-8-5.2-4.3a20 20 0 00-1.9-1.3l.4-1 1-1.7-.1-.1h-.9l-2.2.4-2.2-.7-4.4-3-4.6-2.3-2.8-1-6.6-1.6-6.6-1h-3l-2.6.5s-1.4.6-1.8 1.5c-.5.8-.5 1.4-.4 2.6.2 1.3 1 1.9 2.8 2.7 1.8.7 6.2 3.6 6.2 3.6l2 2.1.8 1 .2.8 1.4 11.1-2.8 6-2 1z"/>
+  <path fill="#ab6d29" d="M333.8 218.2s1.2 2 2.9.5c1.7-1.6-.8-6-.7-6.3 0-.3.7-.3.7-.3l1.3 2.2s.7 1.3.4 3.2c-.2 2-2.1 3.7-2.1 3.7l-2.2-.5-.3-2.5z"/>
+  <path fill="#4d2a15" d="M375.3 244.2l-1.6-4.5-.4-3.5c0-.6-.3-7.9-.5-9.3 0-1.4 0-3-.2-3.1l-1.6-2.2-.7-.7.5-.3s.6.6.7.3c.2-.4 0-2-.6-4.5-.7-2.5-3.9-8.3-3.9-8.3l.4.2.9 1 1.8 1.5 4.1 1.5 2.2.3 1.4 2.9s1 4.9 1 7.4c0 2.4-.2 4.5-1.2 7-1 2.4-1.2 10.3-1.3 11.5-.1 1.3-.6 2.5-.6 2.5l-.5.3z"/>
+  <path fill="#8f4620" d="M375.3 231.2s.8-1 1.2-2.4c.4-1.4.5-12.4-.8-13.7a10 10 0 00-4-2.3c-.2 0 1 3.5 1 3.5l.8 1.4.6 1.8c.1 1 .9 3.1 1 6l.2 5.7z"/>
+  <path fill="#4d2a15" d="M369.3 238s.5-5.1.3-9c-.3-3.7-.6-4.2-1-4.9a32.3 32.3 0 01-2.5-6.3c-.9-3.2-1.5-5.6-2-6.2-.6-.6-1.7-2-2-1.6-.3.3-.3 1.1-.3 1.1l-1.5-.4-.4-1 .5-1.6v-.7l-.3-1.1 2 1.6 4.2 2.8 2 8.6 2 5.3.2 9-.2 8-1-3.5zm2.4-24.7s1 1 1.7 1.4c.7.4 1.8 1.1 1.6 1.2a8 8 0 01-2-.8l-1.2-.8v-1z"/>
+  <path fill="#4d2a15" d="M363.7 236s.8-1.8.7-4.1a49 49 0 00-1.6-8.6c-.4-.7-2-1.7-3.5-4.8s-1.3-3.8-2.3-5c-1-1-2-2.4-2-2.4l.3-3.3 3.6 1.8 1.6.8 1.8 8.7 1.6 2.5.7 3.5.9 8 .4 6.6-.2.5-2-4.2zm-4.2-3.7s.1-2.5-.5-4.8c-.7-2.3-1.1-4-1.9-4.8-.7-.7-2.5-2.6-4.1-5-1.6-2.5-3.9-5-3.9-5v-3.3l2 1.5a57.1 57.1 0 012.4 1.2l1 3.7 1.2 2.7 1.8 2.4 1.2 1.1.7 4 .4 2.3 1 3.2-.4 1.7-.9-.9zm-3 0l-1-.9s.6-.6.3-2c-.3-1.2-.6-2.4-1.2-3.7-.6-1.2-.7-2-1-2.3a121 121 0 00-4.5-4c-1-1-2.7-2.6-3.7-3.3-1-.6-1.8-.8-1.8-.8l-.5-4s1.3 1.8 2.1 2a54.7 54.7 0 002.1.8l2.8 5 1 1.3 2.6 2 1 2.2.9 2.5 1 3.4.1 2-.2-.1zm-5.5-1s-1.7-2-2-3.2c-.2-1.2.2-1.2-.3-2.6-.5-1.4-2.3-3.5-3.7-4.6-1.4-1.2-3.4-2.8-3.3-3.8.1-.9.4-1 .4-1l.8.8 4.5 4.7 1.4 2.5 1 3.1.7 1.5.7 1.8-.2.7zm16-23.3s3.1 3.8 4 .3c.3-1.6-1.2-4.6-1.2-4.6s-2.8-5-3.8-6.2l-5.7-7.3-3.5-1.6 1.2 2s2.6 2.6 5.9 8.4c3.3 5.7 2.7 8.9 2.7 8.9h.5zm-17.8-23s6.1 5.2 10 10.8c4 5.7 5.5 9.4 4.7 10.2-1 .7-3.4-.4-4.4-2-1-1.6-1.8-4.4-5.5-8.6-3.7-4.2-5.5-4.8-5.5-4.8l-2.7-4.3 3.4-1.3zm-3.2 12.5s3.6 3 6 5.4a37.4 37.4 0 013.4 4.2l1.4 1.4s-.9-1.5-.4-2c.5-.6 1.1-.3 1.1-.3l-11.5-12v3.3zm-.7.3s1.2 2.3 3 4.1a464.6 464.6 0 004.1 4l.8 2.9s-5.2-4-5.2-3 1.2 3 1.2 3l-1.6-1-2.2-3.1-1.3-2.8-1.5-3.8 2.7-.3z"/>
+  <path fill="#4d2a15" d="M329.5 210.2s2.7 2.4 4.2 0c1.5-2.3.3-5 .3-5s3.9 5.6 5 .3c.2-1-2.4-4.6-2.4-4.6l1-.9 1.9 3.3s1.8-.8 1.8-3-1.9-5.3-1.9-5.3l1.8 2s3.6 0 3.7-2c0-2.2-3-4.5-3-4.5s2.4.1 2.4-1.3c0-1.4-3.4-2.4-3.4-3.3 0-.9 1-2.4 2.5-1.5 1.5.8 3.5 1.4 4.4-.2.8-1.6-.1-2-.1-2l-2.1-.4-3.4-1.8-2.7-1-2.8-.4 1 2 .8 5.8v2.6l.5 5.8-1.4 4.7-.7.9-.5.6-1.2 2.6-1.6 1.8-2.2 2.7-2 2.1z"/>
+  <path fill="#ab6d29" d="M348.8 220.9s-.7-1.7-2.2-2.9a7.8 7.8 0 00-3.8-1.2l4 4.2 2-.1zm5.6 1s-1.3-2.6-2.8-4.2c-1.5-1.6-2.5-3.6-3-3.6h-.6l.4 3.3 2.7 2.7s2.6 2 3.3 1.8zm4.6-.2s-.6-3-2.2-6c-1.5-2.8-3.1-4-3.1-4l.4 3 1.2 3 2 3 1.7 1zm3.8-1.7s1-6.2 0-8c-.9-1.6-2.7-2-2.7-2l-.6 1 .6 4.3 1.5 3.4 1.2 1.3zm3.7-10.3s.9.4 2 2.5a40 40 0 012.6 8.6c0 .3-.5.2-.7.2-.2-.1-3.9-6-3.9-6l-.6-5.4h.6z"/>
+  <path fill="#d2a567" d="M340.4 216.8s2-.4 2-1c0-.8-2.4-2.2-2.2-3.3 0-.5 2 .1 2.1-.3.1-.4-2-3.6-1.3-4.4.6-.8 2.4 3.5 2.4 3.5s1 2 .7 3.2c-1.2 3.6-3.7 2.3-3.7 2.3zm4.6-4.4c.1-.3 3.1.4 3.1.2.2-.7-2.7-3-2.7-3s-.6-1.2-.4-1.4c.2-.2 2 .2 2 0 .2-.3-2-3.2-2-3.7s.6 0 .6 0 1.7 1.7 2.6 3.2c1 1.4 1.8 2.6 1.5 4.9-.4 2.5-5 .6-4.7-.2zm13.6-4.6s-.5-2-.2-2.3l1.1-.5s-1.6-1-2.4-1c-.7 0-.8-.2-1 0-.2.4 1.3 2.4 1.3 2.4l1.2 1.4z"/>
+  <path fill="#d2a567" d="M349.4 209.4s4.7 1.2 4.9.8c.2-.3-3.7-4-3.7-4s-.3-.6-.2-.8c0-.2 1.7-.3 2.2.1s0 1.2.1 1.5c.2.3 1.7 2.5 2 2.1.2-.3-.4-3-.3-3.3.2-.2 1.8 1.6 2.3 1.9.4.3 3 2.3 3.3 1.4.3-1 .4-1.1.3-1.7 0-.6.9 2.6-.3 3-1.2.4-2.6-.4-2.6-.4l-1.1-.8-.6-.7s.7 2.5-.2 2.7c-.8.3-1.7.2-1.7.2l-2-.2-2.4-1.8zm10.7-3.2s5 3 5.4 2.5c.5-.5-1.2-7.5-1-8.2.3-.6 4 7.9 2.2 9-1.4 1-2 .3-2 .3l-2.5-1.3-2-2.3zm13.8 12.6l1 .5.7.2-1.4.2-.3-1zm-4.8-16.4l.7.3.7.3s-.4.3-.6.2h-.4l-.4-.8zm-1.4-2.5s.5.3 1.1-.2c.7-.4.7-.8.6-1 0-.2-1-.2-1.4-.5-.3-.2-.3-.6-.3-.6h-1.1l-.4.1 1.5 2.2zm4.3 14.4s1.5 1 2 1c.4 0 1.1.5 1 .6 0 .1-1.2.2-1.8-.1-.6-.3-.7-.1-.7-.1l-.5-1.4zm-8.1-22.5h.6c.3 0 .5-.2.6 0 .2.2 0 1.2-.3 1.5l-1 .5a48.4 48.4 0 01-1.6-2.2l1.7.2zm-7.1-6.4h1.5c.5 0 1 .3 1.5.6.4.3.9 3.3.6 3.8-.2.6-3.6-2-3.7-2.1 0-.3-1.5-2.5-1.5-2.5l1.6.2zm-3.2-1.4s2.5.2 2.2-1.3a3.2 3.2 0 00-1.3-2.3l-2.9 2.1 2 1.5zm-6.5-2.8s.7.4 1.4 0c.7-.2 2.6-2.7 4-3 1.4-.3 1.7-.3 2 0 .2.4 0 1.8-.2 2.2-.3.4-4.4 2-4.4 2l-1.5-.1a9.6 9.6 0 01-1.3-.5v-.6zm-.7-4.5c-.7-1.4-1.7-2-2.2-1.9-.4.1 1.4 1.5 1.7 3.5.3 2 .2 3.3.2 3.4l.8.1.2-.7.1-.5v-.5l-.1-1-.2-.9-.2-.6-.3-.9zm-5.8-2a15.4 15.4 0 00-5.5-3.7c-.2 0 4 2.5 5 4 .9 1.7.9 3.9 1.3 4.2.4.3.8-.2.9-.2 0 0 .3-.5.2-.7l-.2-1-.7-1-.4-.8-.6-.8zm-5.5-2.3c-2.4-2-6.6-3-10-3-3.5-.2-5.3.2-4.8 2s2 2.8 5 2.8c2.9 0 3.6-.3 5.2.2a9.7 9.7 0 013.6 2c.5.5-1.1-1.5-2.6-2.6-1.5-1.2-2.5-1.7-2.5-1.7s-.3-.7 1.7-.4c2 .3 4.7 1.6 5.5 3.3.7 1.7.6 2.6.6 3 0 .3.7-.2.7-.2l.3-.9s0-.6-.3-1.4c-.4-.7-.5-1-1.4-2-.9-1.1-1-1-1-1zm-9.6 28.5c1.5 0 4.8-2.8 5.2-6.7.5-4-1.9-11.9-2.5-12.7-.5-.9 1-.4 1.7.4a25 25 0 012.5 10.6c0 4.2-.8 5.3-3 7.5-2.2 2-4 1.8-4 1.8l.1-.9zm5.1 11.6s.7 1 1.6.6c1.5-.5 3.8-1.7 3.8-3.8 0-1.4-1.8-2.7-1.9-3.2v-1l1.6.4.5 2.2s.6.7 1.3.4c.6-.2 2.5-1.6 2.2-3-.3-1.2-2-2.9-2.2-3.5-.2-.7 0-1.2 0-1.2l1.6.2.4 2s.4.6 1.3.4c.8-.1 2.4-1.7 2-2.5l-1.5-2.6v-.9l.5.4s.6.2 1.8-.1c1.1-.4 2.3-1.2 2.3-2s-1-1.6-1-2v-.6h.8l1 1.2.1 1.4-.3 1.2-1.4 1.6-1.4.6h-.4l.8 1.4-.2 2-1.3 1.2-1.7 1-.1 1.9-1 2-2 1.2h-.7l-.2 1.2-1.4 2-2.3 1.5-1.7.3-1-1.4.1-.5z"/>
+  <path fill="#d2a567" d="M343.4 191.4s4 1.1 3.8-1.4c0-1.3-3.8-4.5-4-5-.3-.6-.2-1.3-.2-1.3l1.9 1.8s2.5.6 3.2-.9c.7-1.4.1-2.3 0-2.3l.6-.1 1.1.2-.1 2.2-1.3 5.5s.3 2.2-1.4 2.3c-1.7.2-3.6-1-3.6-1zm3.7 29.5s0-1.1-.8-2c-.9-.7-2.5-1.4-2.8-1.6a63 63 0 002.8 3.5h.8zm5.6.2s-2-2.4-2.3-3.3c-.5-.8-1.5-2.6-2.3-2.7-.8 0 .8 3 .8 3l3.2 2.9h.6zm5.4 0l-2.1-4.2c-.4-.9-1.3-3.4-2.3-4.1-1-.7.1 1.1.1 1.1l1.1 3.3 1.9 2.9 1.3 1zm3.9-2.4s-.1-2.7-.5-4.6c-.3-1.8-1.7-3.4-1.8-3.3v3.3l2.3 4.6zm8.1 2l-2-4.7c-.5-1.6-1.8-4.1-2-4.2l.4 3 1.7 4.7 2 1.2zm7-8.5s-1.2-1.2-3.9-2.3c-2.7-1-5.4-1.2-5.4-1.2l.3.4 1.3 1 2.8 1.5 3.7.9 1.3-.3z"/>
+  <path fill="#202020" d="M348.2 213.8s0 2.4 1.3 3.8c1.2 1.5 4 4 4.6 4.6.6.5 1 3.4 1.9 5.8.8 2.4 1 4.4 1.4 5.1.4.7 1.1 1.8.5 1.7-.5-.1-1-.8-1.4-1.7-.3-.9-.2-.9-.2-2 0-1.3-1.8-7.5-2.7-8.1-.9-.7-4.8-4-6.4-6.3-1.5-2.3-1.2-2.8-1.2-2.8h2.2z"/>
+  <path fill="#202020" d="M354.6 229.3c-.8-1.7-1-3.3-1.2-4.3a16 16 0 00-4.4-4.2c-.6-.3-1.9 0-2.4-.3l-3.7-4s-.5.5-.3.6c.1.1 3.4 3.7 4.6 4.8 1.2 1.2 1.9 3.7 2.7 5.7.9 2 .5 1.6.6 2.5.1 1 .7 1.5 1.3 1.5.6 0 .8-.2.6-.4a10.3 10.3 0 01-2.2-3.5c-.7-1.7-1.5-4.9-2.5-6l-.3-.3 1.3-.2c.8 0 4.1 3 4.4 4 .3.8 0 1.2 1.4 4.2s2 3.7 2 3.7h.2s-1.2-2-2-3.8zm-5.2-19.9s2.5 1.5 3.2 1.7a9.8 9.8 0 001.2.3s.4 4.4 2.1 6.8c1.8 2.5 3.2 3.4 3.2 3.4s0 4.8 1.4 8c1.3 3.3 1.5 7.3 1.2 8-.3.6-1.4-2-2-4.3l-2-6.2a13 13 0 00-2.5-4.4c-.8-.7-.2-.6.3-.2.4.4 1.7 2 2.5 4.5s1.1 5 1.5 5c.5 0 .8-.3.8-.9 0-.4-.6-1.8-1-4.1a17 17 0 00-1.2-4.7c-.4-.6-1-.7-2.4-3.4a20.3 20.3 0 01-2.5-5.3c-.2-1.2 0-1-.2-1.3-.2-.1-.4 0-1.6-.6-1.1-.6-2-2.3-2-2.3z"/>
+  <path fill="#202020" d="M355.7 208.5s1.4 1.2 2.3 1.5c.8.4 2 .4 2 .4s-.3 4.2 1.3 6.9 3.3 4.2 3.3 4.2.3 1 .8 6.8l.7 8.3c.1 2.3.2 10.6-.1 10.3-1.3-1-.2-5.4-.9-7.3-.6-1.8-1.6-2.1-2.8-7.4-1.2-5.2-.4-6.4-1.3-8.3-.9-2-2-2.2-2-2.2s1.6.4 2.3 2c.6 1.6.7 6 1.3 8.2 1.2 4.9 2.9 7.4 2.9 7.4s-.4-6.2-.8-9.7c-.5-3.5-.5-6.4-1.1-7.7-.7-1.4-2.1-2.4-3-4.2-.8-1.8-1.1-5.3-1.5-6.2-.4-.9-.6-.6-1.2-.8-2-.8-2.2-2.2-2.2-2.2z"/>
+  <path fill="#202020" d="M360.1 206.2s1.3 1.5 3.1 2.6c1.8 1 2.8.7 3 1 .3.2-.3 3.8 1.6 7.2 1.9 3.4 2.6 3.5 2.6 4l.6 13.9c.3 3.4.5 14.8-.9 14.8s-.1-8.5-.8-10.4c-.7-2-.7-1.4-1.3-3-.7-1.6-.7-7.8-1.8-11.5-.8-2.8-1.6-3.2-1.6-3.2s1.4.7 2 3c.6 2.2.8 10 1.5 11.1.8 1.3 1.8 2.8 2 4a157 157 0 00-.4-15.6c-.3-1-3.5-6.6-3.7-9.7-.3-3.2-.4-3.5-.7-3.7-.2-.3-1.1 0-2.6-1.5-1.5-1.4-2.6-3-2.6-3z"/>
+  <path fill="#202020" d="M367.3 208c0-.3 1 1.7 3.7 2.8 2.9 1.2 5.6 1 6 1.3.3.3 2 4.5 2.1 10.2.1 5.6-1 5.1-1.8 10-.9 4.9-1 14.8-1.5 16.3-.2.5-.5.8-.8 1.7-.3 1 .2 2.8-.7 2.8-.8 0-1-1.4-1-2.1 0-.8 1-3.5 1-6.2s-.6-3-1-6.2c-.4-3.3-.4-13.5-.8-14.5-.3-1-2.1-3.1-2.1-3.1s1.9 1.2 2.4 2.6c.4 1.3.5 12.7 1 15 .5 2.4.3-.5.5-1.8s.9-7 .8-10c-.1-3-1.4-9.4-2.4-10.5 0 0 .5.6 1.1 2 0 .1.4.5.8.7l1 .5s-.6 0-1-.3c-.4-.1-.6-.4-.6-.4a23.9 23.9 0 011.3 8c.1 5.2-.7 16.4.1 16.5.8.2.7-6 1.5-11.2.8-5 2-5.8 1.6-9.9-.3-4.1-1.4-8.6-2.3-9.2-.9-.5-3.4-.3-5.6-1.8-2.2-1.4-3.4-2.9-3.3-3.2zm-35.8 5.7s.8.4 1.7 0c1-.5 3.5-2.5 3.5-3.3v-1.6s0 .3.7.4c.8.1 2.8-1.4 3-2.4a8 8 0 00-.1-3.1c-.2-.4.6.3 1 0 .4-.4 2.4-1.7 2.4-3 0-1.4-1.1-2.6-1.1-2.6s1 .2 1.6 0c.5-.1 2.5-1.3 2.4-2.4 0-1.2-.7-3-2.3-3.2 0 0 1.2.3 2.3-.1 1-.4 1.5-1 1.5-2.3 0-1.2-2.3-4-2.6-4.2-.4-.2 2.4.8 3-.3.8-1.1.9-1.9.7-2.5-.2-.7-.8-.8-.8-.8s1.2.3 2.8-.5 3-2 3.8-1.9c.8 0-2.3 1.7-2.5 2.6 0 .4.9 1 2.3 2 0 .1 0 .2.2.3.7.3 3 .4 3.3.5.2.2-2.4.1-2.2.3a34.1 34.1 0 015.7 5.4c.1 0 .5.4 1 .5l1.3.3h-1.6a65.3 65.3 0 013.3 4.7c0 .1.4.6.9.8.5.2 1 .1 1.1.2.1.2-1.4 0-1.3.2a82 82 0 013.3 6s-3-5.3-6.7-9.5c-3.8-4.2-4.7-4.7-4.8-4.4-.2.4 2.7 4.1 4.3 6.7 1.6 2.6 3 5.9 3 5.9s-3.7-7.8-9-12.6c-5.2-4.8-5.8-5.5-6.3-5.4-.6.2-1 3.8-.7 4.5.3.7 4.2 3.6 7.4 7.5 3.3 3.8 7.5 10.4 7.5 10.4s-3-4.7-8-10-6.9-6.6-7.3-6.5c-.4 0-.4 1-1 1.8-.6.7-1.8.6-1.8 1s4.2 4.3 5 4.7c.9.5 1.4.3 2 .6l1.4 1-1.6-.5c-.6-.2-1.3-.3-1.3 0s3.5 4.3 4 4.6c.6.3 1 .1 1.7.4.8.3 2 1.1 2 1.1s-1.3-.7-2.1-.8c-.9-.2-1.2 0-1.2.2s2.6 3.6 2.5 3.6c-.1 0-4-4.6-7.3-7.5-3.3-3-4.8-3.6-5-3.5-.2.1 0 1-.9 1.3-.8.3-1.5.4-1.5.7 0 .3 3 3 5 5.4a149.4 149.4 0 014 4.5l-4.5-4.3c-2.3-2.2-3.5-3-3.8-3-.2.2-.2 1.3 0 1.6.2.3 4.6 5.4 4.4 5.5-.1.2-5-6-5.4-6-.3 0-.5.7-.8 1-.4.4-1.8.4-1.8 1 0 .4 7 7.3 6.9 7.5 0 0-5.8-5-6-4.7-.2.3 2.4 5 2.2 5.2-.1 0-3.4-5-3.7-5-.3 0-.2.6-1 1.3-1 .8-2 .4-2 .8 0 .3 4.8 5.7 4.7 5.8-.2.1-5-5.1-5-4.8-.1 0-.4.3-.2.7.3 1.3 1.4 3.6 1.3 3.8 0 0-1.6-3.2-2-3-.4 0-.4.7-1.2 1.1-.7.5-1.3.4-1.3.7 0 .3.8 1 1.2 1.7.4.7.7 2.4.7 2.4s-.5-1.4-1.1-2.3c-.7-.9-1.3-1.5-1.9-1.5s-.8.5-.8.5l-.5-1.2z"/>
+  <path fill="#202020" d="M377 212s1.5 0 1.7-.4c.2-.3-.6 0-2-1.6s-5-12.1-9-17.4c-6.6-8.7-12.7-12.7-12.7-12.7s7.3 4.2 13 12.4c5.6 8.4 7 14.9 8.6 16.6 1.6 1.7 3.2 2 3 2.5 0 .5-.3.8-.9 1l-2 .1.2-.4zm-48-2.2l.3.1c.3 0 2.3-1.9 2.2-2.5 0 0-1-.3-1.6-1-.7-.8-.9-1.9-.9-1.9s.7 1.3 1.2 1.6c.6.4 1.4.6 1.8.3.3-.2 3.2-2.4 3-3.2 0 0-.9 0-1.8-.6-.8-.6-1-2-1-2s.6 1.1 1.5 1.5c.8.4 1.7.3 2 0 .2-.3 2-3 1.8-3.7 0 0-1 0-1.8-.5-.9-.6-1.3-2.2-1.3-2.2s.6 1.3 1.7 1.5c1.1.3 2-.4 2.2-1.2.2-.8.8-3.7-.2-4.5 0 0-1.4.5-2.4 0-1-.6-1.4-1.9-1.4-1.9s.9 1.2 2 1.4c1.2.1 1.7-.5 1.9-1a5.9 5.9 0 00-.1-3c-.4-1-1.1-.8-1.3-2.2 0 0-.3.5-1.8.5s-2.3-1.6-2.3-1.6 1.2 1 2.4 1a1.9 1.9 0 001.6-1.9c0-.7-.6-1.4-1-2.1-.2-.8-.3-1.7-.5-1.6-.2 0-.5.8-2 .6-1.5-.3-1.8-1.3-1.8-1.3s1 .7 2 .7c.8 0 1.3-.5 1.3-1 0-.6-.3-1.7-2.2-3.3a58.1 58.1 0 00-3.5-2.7 21.8 21.8 0 006.6 5.3s1.7.6 2 0c.1-.6.1-1.4-.5-2.4-.5-1-2-2.6-2-2.6s1.6 1.3 2.3 2.7c.8 1.3.4 2.2.5 2.6 0 .3 3.3 1.6 4 1.1.8-.4.5-1.4-.2-2.3l-1-1.8s.7.8 1.2 1.8c.6 1 1 1.7.8 2.1-.2.5-.6.7-.6.9l2.3 1.3c1 .6 2.3 1 2.5.8.2-.4.3-1.1.2-2.2-.1-1-.7-2.7-.7-2.7s.7 1.6.8 2.7-.1 2 .1 2.4c.3.4 1.1.5 1.1.5s-.6.4-2 0c-1.5-.4-7.7-3.6-8-3.3-.3.4 2.9 2.3 4.3 3.7 1.5 1.3 2.2 2.8 2.2 2.8s-1.1-1-2.2-1.6c-1.1-.6-4.4-2.3-4.7-2-.2.2 1.3.5 1.4.7.1.3-1 1.3-1 1.8 0 .4 4.7 3.7 4.5 4-.1.4-1.2 1.3-1.4 1.2-.1 0-2.5-1.8-2.5-1.6s1.4 1.5 1.4 1.7c0 .3-1 .8-.8 1.4.2.6 2.6 2.6 2.6 3.3 0 .7-1.4 1.3-1.1 1.7l1.5 2s-1.4-.9-1.8-1.4c-.4-.4-1.3-1.5-1.5-1.3-.1.1-1 2-1 2.5.2.4 1.3 1 1.5 2.3.2 1.1-.2 2.4-.3 2.4 0 0-1.6-2-2-2.1-.2 0-.6.1-.9.6s-1.2 2.1-1 2.4c0 .3 1.6.7 1.6 1.9a3.4 3.4 0 01-1 2.3l-2.1-2.4c-.2 0-2.2 2.3-2.3 2.6 0 .2 1.4 1.3 1.2 1.7-.3.4-1.3-.2-1.8.1l-1.7.7c-.2 0-.5-.6-.5-.6z"/>
+  <path fill="#202020" d="M355 180l.5-1c.3-.3 1.5-1.7 1-2-.4-.2-2 .3-3 .2-1 0-1.7.2-4.6-2.3 0 0-9.3-6.4-23.6-7.3-4.6-.2-6.6 1.4-6.8 2.2 0 .2 1.2-1.8 5.7-1.7 2 0 16.5 1.1 24 7 .4.3 2.9 2.7 5.2 2.4 2.3-.2 2.8-.5 2.7-.2 0 .4-.7 1.2-.9 1.6a9.2 9.2 0 00-.3 1.1zm-25 2v-.2c-.2-.4-1.1-1.7-2.7-3.1a37.4 37.4 0 00-8-4.3c-.3-.1 6 2.9 7.7 4.5l3 3z"/>
+  <path fill="#d2a567" d="M330 192.2s-.4-.6-1.7-1.4a9.9 9.9 0 00-2.5-1.1l3 .7a4.8 4.8 0 011.1 1.8zm-.8-5.3s-.4-.6-2.1-1.2-2.2-.5-2.2-.5 1.6-.7 2.8 0a2.7 2.7 0 011.5 1.6zm-1-4.5s-.4-.8-2-1.3c-1.5-.6-2.6-.7-2.6-.7s1.6-.4 3.2.2c1.5.6 1.4 1.8 1.4 1.8zm-2-2.8s-.4-.6-3.3-1.3c-3-.7-4-.7-4-.7s4.1-.4 5.2.1c1.1.5 2.2 1.9 2.2 1.9zm-5.3-3s-1.8-.6-3.5-.7-4.4.1-4.4.1 5-.8 6.3-.5c1.4.3 1.6 1 1.6 1z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M304.5 238.4s.9 1.6 2.6 1.6c1.8.1 3.1 2.6 3.1 2.6l-1.9 1.9-4.6.2-1.5-2.4 2.3-3.9zm0-1.6c.2-.3-1.3-3.3-2.4-3.8-1-.5.4 1 .2 1.6-.3.6-.4 1.4-.3 1.5 0 0 .9 1.4.4 2-.4.5 2.2-1.3 2.2-1.3z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M303.8 241.4s.8.4 1.4.2c.7-.2 1.3-.9 1.3-.9m-3.6-.5s2.6-1.9 2.4-2.9c-.2-1-.7-1-1-.9a7 7 0 00-2.1 1.7c-.1.3.7 2.1.7 2.1z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M301 241.5s.6 1.3 1.4 1.3c.8 0 2-.7 2-1.2.1-.5-.8-1.5-1.3-1.7-.6-.3-1.9.4-1.9.4l-.1 1.2z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M303.4 239.8c0 .4-1.7 1.2-2.3 1.2-.5 0-1.6-1.3-1.2-1.5l1.5-.4c.4-.2.5-.8.7-.8.3 0 1 .1 1.1.5.2.5.4.6.2 1z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M301.8 240.9s-2.6 3.4-3.7 3.3c-1-.2.5-5 .5-5l1.2.6c.9.2 1.7.6 2 1z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M297.2 238.4s3.3.6 3.4 1.1c.2.6-1.5 1.3-2.5 1.3-.9 0-.9-2.4-.9-2.4z"/>
+  <path fill="#202220" d="M289 243.4s.5 1.6 1.9 1.7c1.4 0 2.8-1.5 2.8-1.5l-3.4-1.3-1.3 1.1z"/>
+  <path fill="#4b4139" d="M289 243.4l.4.9c.3.4.7.8 1.5.9h.1c1.4 0 2.7-1.6 2.7-1.6l-3.4-1.4-1.4 1.2h.1l1.3-1 3.3 1.3v-.1l-.2.2c-.4.4-1.4 1.2-2.4 1.2h-.1a1.8 1.8 0 01-1.4-.8 2.8 2.8 0 01-.3-.6v-.1l-.1-.1z"/>
+  <path fill="#202220" d="M290 243s.5 1.2 2.4 1.2 3.3-1.5 3.3-1.5l-3-2.3-2.7 2.6z"/>
+  <path fill="#4b4139" d="M290 243s.5 1.2 2.4 1.3c2 0 3.4-1.5 3.4-1.5l-3-2.5-3 2.7h.2l2.8-2.5 2.9 2.3v-.1a5 5 0 01-3.2 1.4 3 3 0 01-2-.6 2.2 2.2 0 01-.3-.4 1.1 1.1 0 01-.1-.1h-.1z"/>
+  <path fill="#4b4139" d="M290.2 243.3s.9.6 1.8.7c1 0 2.2-.3 2.2-.3l-1.1.4-.8.1-.8-.1-.6-.3-.6-.4v-.2z"/>
+  <path fill="#202220" d="M292.4 241.6s.8 2 2.6 1.8c1.7-.2 1.7-1.2 1.7-1.2l-2-2.8-2.3 2.2z"/>
+  <path fill="#4b4139" d="M292.4 241.6l.5 1c.4.4 1 1 1.8 1l.3-.1c.8-.1 1.3-.4 1.5-.7.3-.3.3-.6.3-.6l-2-3-2.5 2.4h.1l2.4-2.1 1.9 2.7c0 .2-.3 1-1.8 1.1h-.2a2.2 2.2 0 01-1.7-.8 4 4 0 01-.4-.6v-.2a1.5 1.5 0 01-.1-.1h-.1z"/>
+  <path fill="#4b4139" d="M292.6 242s1 1.3 2 1.3a3 3 0 001.5-.4v.1l-.5.3-.8.1h-.8l-.7-.5-.6-.9zm-3.2 2s.8.9 1.5.9a4.7 4.7 0 001.9-.6h.1l-.2.1-.8.4-.9.3-.7-.1-.6-.4-.3-.4v-.2z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M297 238.3c.8-.2 2.4 2 2.4 3.2s-.5 2.7-1.3 2.7-2.6-1.7-3-2.5c-.4-.9-.8-1.4-.5-1.9.3-.4 2.4-1.5 2.4-1.5zm-8 .2s-1.4-1-1.9-.5-.3 2.3 0 2.6c.4.4 2-.8 2-.8l-.2-1.3z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M288.8 239.7s-1.8.2-1.8 1 .9 1.6 1 1.8c.2.1 1.8-.7 1.8-.7l-1-2.1z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M289.5 241.1s-1.8.6-1.8 1.2.8 1.7 1.3 1.7 1-1 1.2-1.3c.3-.2-.7-1.6-.7-1.6zm.8-5.1s-.3-.5-1-.2c-.8.3-1.6 1-1.5 2.3.1 1.1.6 2 .6 2l2.7-1-.8-3.1z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M290.5 238s-2.2.8-2.3 1.7c-.1.9.5 1.7 1 2 .7 0 2.6-1.8 2.6-1.8l-1.3-1.8z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M292.5 241.7s-2.2 1.5-2.5 1.5c-.3 0-1.2-1.2-1-2 .2-.8 1.7-1.3 2.3-1.6.6-.2 1.2 2.1 1.2 2.1zm2-8.2s-.7-.6-2-.5c-1.4.1-2.4 2-2.6 2.8-.2.9 0 2.6.5 2.8.5.3 3.3-2 3.3-2l.8-3z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M291.8 240.3c-1-.1-1.8-1.5-1.7-2.3.2-.8 2-2.2 3-2 1 .1.8 2.5.8 2.5s-1.2 1.9-2.1 1.8z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M294.7 240s-.4 1.2-1.4 1.7c-1 .4-1.5 0-2-.7-.6-.8.2-1.2.6-1.6.5-.4 1.7-.7 1.7-.7l1.1 1.4z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M293.2 237.2s-1 .8-.4 1.8 1 1.4 1.8 1.5c.8.1 1.3-.2 1.9-.9.6-.7 1.5-1 1.4-2-.1-.9-.4-1.6-1-1.8-.5-.3-2.2 0-3.7 1.4z"/>
+  <path fill="#202220" d="M296.2 233s-1-.5-1.9 0c-.8.5-1.4 1.5-1.5 2.4l.2 2.3s1.2-.4 2-1c.7-.6 1-.8.8-1.1 0-.2-.4-.4-.4-1.2 0-1.4.8-1.5.8-1.5z"/>
+  <path fill="#4b4139" d="M296.2 233s-1.2-.3-1.9.1a3.2 3.2 0 00-1.3 1.9c-.3.8-.1 1-.1 1v-1.4c.4-.8 1-1.5 1.6-1.7.8-.3 1.7 0 1.7 0z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M328.8 257l1.6-.8 2-1.2.4 2.2-1.8 1.4h-1.5l-.9-.7.2-1z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M326.4 257.2h1c1.1 0 1.2-.3 1.4-.3.2.1.5 1.3.5 1.3l-.4.7-1.5.9-1.3-.8-.1-1.8h.4zm12.1-.8s-.3-.5-.9-1l-2.2-1.9v5l2.3-.1 1.1-1.5-.3-.5z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M326.4 257.2s-.4-.5-1.3-.4c-1 0-2 .9-2.1 1.5-.1.7 0 2.6.5 3 .5.4 1.2.5 2.2.3 1-.3 6.4-3.6 6.4-3.6l-1.4.3c-.7.2-1.4-.1-1.4-.1s-.7.8-1.6 1c-.8 0-1-.5-1.2-.9l-.1-1.1z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M330 258.9l-1.2.5-1.3.6.4 1.6 2.3.5 1.4-1.1v-1.6l-1.7-.5zm10.4-1.2l-.8-.8c-.4-.4-1-.5-1-.5l-1.3 1.5v1l1.2.7.9.2 1.1-.8-.1-1.3z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M332.6 257s-1 .4-1.5.8l-1.2 1c0 .2 1.1 1.4 1.1 1.4l1.2.1 2.5-1.7-.2-1.6h-1.9zm9.5 2l-.5-.7c-.4-.4-1-.6-1.2-.6-.3 0-1.3 1.5-1.3 1.5v.4l.8 1 1.6.5 1.1-1.2-.5-.9z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-linecap="round" stroke-linejoin="round" stroke-width=".3" d="M338 260.8l1.2.2s0 .3.3.5c.3.3.3 0 .3 0s.2 1.2 1.4 2c0 0 1.4.6 2 .2.8-.4.7 0 .7 0l2-2.4s0-.5-.5-.5c0 0 .4-1.6-1-2-1.2-.2-2.2.2-2.2.2s-1 1.8-1.6 1.6a2.4 2.4 0 01-.8-.5l-.7-.9s-.4.1-.9-.2c-.5-.3-.9-1.1-.9-1.1s-.7-.1-1-.4l-.5-.8-1.9 1.4s0 .5-1.1 1.3-1.7.8-1.7.8-.4 1.7-1.6 1.4c-1.2-.3-2-1.6-2-1.6s-.9-.2-1.4.6c-.6.7-.9 1-.9 1.7 0 .8.5 1.8 1 2.2.3.3 1.5 1.3 3 .6 1.4-.8.9-2 .9-2l.8-.5c.9-.6 1.8-1.5 2.5-1.7"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-width=".3" d="M335.8 250.8v3.2s.4 2.9-.2 3.7c-.6 1-2.9.7-3.2 0-.3-.8-.2-3.2-.2-3.2l3.6-3.7z"/>
+  <path fill="#f8c83c" stroke="#977c2e" stroke-linecap="round" stroke-linejoin="round" stroke-width=".3" d="M333.3 260.5s-.5.8 1 1c.4 0 .7-.2.9-.4.4-.4.3-.8.3-.8s-.2 1.2 1.2 1.2c1.4.1 1.3-1.3 1.3-1.3"/>
+  <path fill="#202220" d="M321.2 263.1s-.8-1.4.1-1.9c1-.5 1.5 0 2.1 0 .6 0 .4-1.4.3-1.7a3.7 3.7 0 00-.7-1.2c-.2-.2-3.5.2-3.4 2.3 0 2.1 1.6 2.5 1.6 2.5zm5 5.2s-1-1.5-.4-2.4c.5-.9 1-.3 1.2-.4.3 0 .4-.6 0-1.6-.5-1-1.1-1.4-1.4-1.5-.4 0-2.3 1.4-2 3.2a3.5 3.5 0 002.6 2.7zm18.2-1.8s3.5 1.5 3.7-2c.2-2-1.5-3.3-2-3.3-.4 0-.7.3-1.3 1-.7.8-1.1 1.3-.9 1.6.3.3 1.3-.3 1.8.8.7 2-1.3 1.9-1.3 1.9z"/>
+  <path fill="#4b4139" d="M326.2 268.3s-2.7-.6-2.7-3.3c0-1.8 2-2.6 2-2.6s-1.8 1-1.8 2.6c-.1 2.7 2.5 3.3 2.5 3.3zm-5-5.2s-1.6-.3-1.7-2.6c-.2-2.3 3.5-2.2 3.5-2.2s-3.5.2-3.4 2.4c.2 2.2 1.6 2.4 1.6 2.4zm23.2 3.4s.7.3 1.5.3 1.8-.3 2-1.6c.4-1.3.3-2-.6-3.1-.6-.9-1.2-.8-1.2-.8s.6 0 1 .8c.6.8 1.3 1.6.8 3.1s-2 1.5-2.5 1.5a5.5 5.5 0 01-1-.2z"/>
+  <path fill="#904720" d="M302.6 192.4l-.6-.2.4-1 1.9-.7 1.8-.1 2-.1.8.6 1 2.3-3.6 2.2-.6.2-.2-1-.6-1.4z"/>
+  <path fill="#202020" d="M337 245.5l-.3-5.5-14.8 4.6 5.8 5.5z"/>
+  <path fill="#d2a567" d="M309.4 235.9l-1.2-1-1.4-.8h-1.1l-.2.3.2.5 1.3 1.6 2.3 1.2.8.7.5.2-1.1-2.7zm-.3 2.3l.8.2.9 1 .5 1 .7 1.3.2.8-1.6-.3-4.8-1.5.4-1.2.8-.7.7-.3 1-.2z"/>
+  <path fill="#d2a567" d="M312.2 242.2h.8l.6-.5-.3-1.8.3-5.8-3.9-4.6-.8 2.6 1.1 4.7.9 2.8z"/>
+  <path fill="#ab6d29" d="M309.4 231.7s-.2.4.1 2c.3 1.5.9 4.9 2.2 7.2l-1.3-1.9s-2-4.6-1.7-8.2c.3-3.5.7.8.7.8zm2.9 2.9s-.9 1-1 1.9v2.2s0-1 .8-1.3c.9-.3.7 2.3.8 2.6l.5-4.7-1.1-.7zm.4 9.6l-4.4-1c-2.3-1-3.5-1.8-3.4-2.3 0-.6 4 .1 4.6.2l2.4 1h1l1.9-.8.2 2-2.3 1zm-7.3-.8s1 .8.5 1a4.4 4.4 0 01-2.3.3l4.2 1 .9-.7-3.3-1.6z"/>
+  <path fill="#d2a567" d="M304.2 242.2c.2-.2.3.7 1.8.8 1.5.2 2.2-.2 2.2-.2l.7.4.8.2-.7 1.1-2.8-.8-1.5-.8-.5-.7z"/>
+  <path fill="#ab6d29" d="M314 240.3l.8 1 .5-2.4v-2.5l-1.6-1z"/>
+  <path fill="#4d2a15" d="M309.7 236.1l-1.3-2.1-1.7-3.1 1-1.8 1.3 1.8s-.4 1.3-.1 2.5c.2 1.2.8 2.7.8 2.7z"/>
+  <path fill="#d2a567" d="M300.8 244s.6-.9 1.9-1a7.6 7.6 0 012.4.2l2.6 1.4.6.9-5-.7-2.5-.8z"/>
+  <path fill="#8f4620" d="M314 235l.2 4c0 1 .7 2 .6 2.3-.2.4-.4.6-1 .9-.6.2-2 0-2 0s1.3-.2 1.4-.5c0-.2-.4-1.4-.5-2.4 0-1 .1-2.2-.3-2.2-.3 0-.7.4-.8.6 0 0 .4-3.8.8-4.2.4-.4 1.6 1.6 1.6 1.6z"/>
+  <path fill="#ab6d29" d="M304.7 243s-.5-.4-.5-.8c0-.3.6 1.6 3.4 1.5 2.8 0 2.6-.2 2.6-.2h1.3s-.3 1.3-.5 1.4a61 61 0 00-2.2 1.4l-.7.4v-.2l-.3-2.1-2.4-1-.7-.4z"/>
+  <path fill="#8f4620" d="M309.7 236.1s-3.2-3.3-4.3-5.5c-1-2.2-.4-5.2-.4-5.2l3 4s-.4.7-.3 2c.2 1.2 2 4.7 2 4.7z"/>
+  <path fill="#ab6d29" d="M307.6 248.3c0-.3-.2-1 .4-1.8 2-2.4 6.8-4 6.8-4v2.8l-6.2 3h-1z"/>
+  <path fill="#8f4620" d="M308 246c.3-.1 1.4-1 1.4-1.3 0-.4-.7-.4-2.1-.7-1.5-.3-2.6-1-2.6-1s1.7 1.4 2.4 1.7c.7.2.6.5.5.7l.4.6zm8.3.7s-.9-1.3-1.2-2.1c-.3-.8-.3-2.1-.3-2.2l-1 .7-2 .7s2 0 2 .6c0 .7-3 1-3 1 0 .1 2.4-.4 2.3.1-.2.6-1.2.7-2.5 1.2l-2.3 1-.7.5s.6.4 1.5.3c.9 0 2.9-.5 2.9-.5l3.8-1.5.5.2z"/>
+  <path fill="#ab6d29" d="M316.3 246.7s-1-.3-1.8-4.8-.6-5.7-.6-5.7l1.8 1.3 1.7 3-1.1 6.2z"/>
+  <path fill="#8f4620" d="M316.9 239.3s-.9 2.5-.9 4c0 1.4-.1 2.4.3 3.4s1.8 2.3 1.8 2.3l.7-.6.3-2 .1-3.4-2.3-3.7z"/>
+  <path fill="#202020" d="M319.4 242.7s.4 6.3-1.2 6.5c-.7 0-1.9-2.4-1.9-2.5 0 0 1.4 2.3 2 2.1 1-.4.6-6.6.6-6.6l.5.5zm-3.1 4s-.3 0-.7-.8c-.4-.7 0 .6-3.4 1.8-3.4 1.2-4.6.5-4.6.5s1.1 1 4.5 0 3.1-1.3 3.6-1.4h.6z"/>
+  <path fill="#ab6d29" d="M310 238.7s.6.5 1.2 1.7a363.3 363.3 0 001 2h.2s-.4-1.3-1-2.2l-2.2-3.1.8 1.6z"/>
+  <path fill="#8f4620" d="M308 246.5s.3-1.1 0-1.4c-.3-.2-.7 0-3-.2a34 34 0 01-4.2-.9s1.6 1 3 1.4l3.5.8.5.1.2.2z"/>
+  <path fill="#202020" d="M308 246.5l-.2-.5c-.3-.3-.7.1-3.5-.7-2.8-.7-3.5-1.3-3.5-1.3s1 1 3.4 1.5l3.8 1z"/>
+  <path fill="#ab6d29" d="M309.3 238.2s-2.1.1-2.8.7c-.7.5-1.6 2-1.6 2l1.3.1s-.1-1.2.5-1.9c.7-.6 1.7-.7 2.6-.9z"/>
+  <path fill="#8f4620" d="M305.3 234.2s.8 1.2 1.7 1.5c.9.4 1.8.8 2.2 1.2.4.4.9 1.8.9 1.8s-3-1.3-3.7-2a9.6 9.6 0 01-1.1-2.5z"/>
+  <path fill="#8f4620" d="M308.2 235s-.3-.5-1.1-.9-1.4-.3-1.7-.1-.1.2-.1.2l1 1.7.7-.2s-1.6-1-1.3-1.3c.8-.7 2.5.5 2.5.5z"/>
+  <path fill="#202020" d="M316.3 231.1l17-8.7 8 11.1-14.7 4-7.7.6-3.8-2.7z"/>
+  <path fill="#4d2a15" d="M339 235.9l21 18.2-2.3 1.6-5-1.4-10.2-10.1-3.8-3.8z"/>
+  <path fill="#4d2a15" d="M366 250.5l-12-9.1-15.3-11.5.4 5.5 17.4 16 5.7 2.7 3-.8 1.4-1.6-.6-1.2z"/>
+  <path fill="#803f1d" d="M339 237.6s6 6.9 10.6 10.4 9 7.3 10 6.7c.8-.5.5-1 .5-1l-21.3-17.5.1 1.4z"/>
+  <path fill="#4d2a15" d="M353.8 255.1l-2.1 1.7-2.5-1-13-13.2.7-2.5 1.8.3z"/>
+  <path fill="#202020" d="M366 250.5s-1.6 3.8-5 2.9c-3.4-.9-22-18.5-22-18.5v1.8s18.8 17.3 22.5 18c3.6.7 6.6-2.5 6.2-2.8a43.7 43.7 0 00-1.7-1.4z"/>
+  <path fill="#803f1d" d="M336.9 240.4s6 7.7 9.1 10.5c3.2 2.9 6 5 7.2 4.8 1.3-.2-.7-1.7-.7-1.7l-9.1-9-4.7-4.6s-1.8-.7-1.8 0z"/>
+  <path fill="#202020" d="M338.4 240.4s15.2 15.5 16.4 15.9c2.5.7 6.2-2 6.2-2l-1.3-.7-.2.5s-.7 1.6-4 .9c-3.2-.7-16.6-15.1-16.6-15.1l-.5.5z"/>
+  <path fill="#4d2a15" d="M344 255.3l-5.5-6.4-1.2-2.1-.3-2.7 11 11.1-1.5 1-1.4-.4z"/>
+  <path fill="#202020" d="M354.1 255.5s-1.3 2-3.2 1.6a5.4 5.4 0 01-2.8-1.7L337.5 245l-.3-1.6s11.7 12.3 13.7 12.8c1.6.4 2.7-1.4 2.7-1.4l.5.7z"/>
+  <path fill="#202020" d="M348.2 255.1s-.5 1.6-2 1.4c-1.6-.3-2-.9-2-.9l-6.6-7.7-.1-2s6.8 9.3 8.3 9.8c1.6.5 2-1 2-1l.4.4z"/>
+  <path fill="#b07229" d="M341.3 234.9s6.3 5.4 6.8 5.6c.5.3 2.7.4 2.8.7.2.3-1.4 0-1.5.3-.1.4 3.2 3 3.7 3.1.5 0 3.2 0 3.1.4 0 .3-1.8 0-1.9.4 0 .4 2.9 2.7 3.4 2.8.5 0 3.9 0 3.9.4 0 .3-2.7 0-2.7.5.1.6 4.6 3.4 4.4 3.8-.2.4-5.4-3.5-5.5-3.3-.2.2-.4 1.4-.7 1.6-.3.2 0-1.6-.2-2.4-.3-.8-3.4-3.1-3.7-2.9-.3.3 0 1.7-.4 1.7s.1-1.7-.2-2.3a16 16 0 00-3.6-3c-.4 0-.1 1.3-.4 1.5-.3.2-.2-1.5-.6-2-.4-.5-7-6.5-6.7-7z"/>
+  <path fill="#4d2a15" d="M330.5 252.3s0 2.4-1 2.8c-1.1.3-3.1-4.4-3.1-4.4l-.5-4.4 3.1 3 1.5 3zm8.4-1.2V250c0-.6-.3-1.5-.3-1.5l-.2-2.4-.6-1.7-.4-1h-.7l-1.7 1.2-.5 1.6.8 3 .8 2.7 1.3.4 1.5-1z"/>
+  <path fill="#4d2a15" d="M336.8 255.3c.3-.1-.4-3.4-.4-3.4l-2-4.8-.5-1.7-1.5-.6-1 1.2.2 1.9s1.5 3.2 2.2 4.3c.8 1.1 2.3 3.3 3 3.1z"/>
+  <path fill="#202020" d="M335 245a6 6 0 011.4 2.6s1.3 3.6 1.1 4c-.2.3-1 .3-1 .3s1.8 1.8 2.3 1.6c.5-.2.3-2 .1-2.4-.1-.4-.7 0-1-.5-.1-.4-.8-2.7-.8-4.2v-2.7c.2-.3 1.5 3 1.5 4.7l.6.7-.6-3.2-.7-2.3c0-.2.3-.8.3-1.5v-1s.6.5.9.5c.3 0 .7-.4.8-2 .2-1.5-.1-6-.1-6l-6.8 9 2 2.5z"/>
+  <path fill="#202020" d="M335 244.3s-.3 2.4.6 4.8l1.3 3c.2.3.2 2.9-.1 3.2 0 0-1.8-4.4-2.4-6.6-.5-2.1-.7-3-1-3.2l-.8-.2 2.4-1z"/>
+  <path fill="#4d2a15" d="M334.4 257c.2 0 0-1 0-1l-.2-2.3-2.4-4.9-2.6-2.3-1.4-2-.2 4s2 4 3.1 5c1.3 1.2 3.3 3.6 3.7 3.5z"/>
+  <path fill="#202020" d="M324.7 246s.4 1.1.4 1.8v1.4l1.8 3.5c.9 1.5 1.7 3.1 2.4 2.8.7-.4 1-1.5 1-1.7.1-.1-.8 1.3-1.2 1.1a40 40 0 01-2.3-6.6l-1-.8a18.4 18.4 0 01-1.1-1.4zm7 5.5l-1.7-3.1c-.5-1-1.2-1.7-1.4-1.7-.2 0-.5-2-.5-2s.7 1.3 1.6 1.7c1 .5 1.5.8 2 .7l.2 2-.2 2.4z"/>
+  <path fill="#5c3a1d" d="M327.4 248.3s.5 1.4 1.4 2.7c.8 1.3 2.3 2.9 2.3 2.9s-1.6-1.6-2.5-2.8a14 14 0 01-1.4-2.8h.2z"/>
+  <path fill="#202020" d="M332 246.7s.5-1.2.8-1.3l1.2-.3s-.7-.1-1.2-.8l-1.3-1.3.4 2 .1 1.7zm-.4.4s2 4 2.4 5.5c.5 1.3.4 3.4.4 3.4s-.2-1.5-.6-2.7l-2.4-5c-.1-.3.2-1.2.2-1.2z"/>
+  <path fill="#4d2a15" d="M334.2 244.4l.5-6-.5-2.2-2.7-6s-.1.8-.8.8a6.2 6.2 0 01-3.1-1.8 9.2 9.2 0 00-.2 4.8l5.3 9.9 1.5.5z"/>
+  <path fill="#8b441f" d="M323.8 248.3s.8 1 1.3 1c.4-.2.3-2.1-.3-3.2-.6-1-7-9.6-8-10.1s7 12.3 7 12.3z"/>
+  <path fill="#8b441f" stroke="#5c3a1d" stroke-width=".1" d="M328.1 244.8c.2.4.6 3.1-.5 3.4-1.5.3-8.5-9.4-9.6-10.7 0 0-4.4-2.8-4.5-3.5-.1-.7 4.7 1 4.7 1l9.5 9 .5.8z"/>
+  <path fill="#202020" d="M323.8 248.3s-.8-1.3-.9-2.3c0-1-.4-1.5-.4-1.9 0-.3-5.2-7.7-5.7-8.2-.6-.5-2.3-1.4-2.3-1.4a15.5 15.5 0 00.3 2.4s1.6 3 4 5.7a458.4 458.4 0 005 5.8z"/>
+  <path fill="#4d2a15" d="M331.6 247c.7-.3.4-2.7.1-3.5a458.4 458.4 0 00-4.4-9.4l-1.3.4-2.3-1.8-1.4-1.5s.5 2.1.4 3.1v1.6l3.3 5.9 5.6 5.3zm4.7-5.2l1-1.3-.5-4.4-2.8-9.4s-.7.1-1.4-.3c-.6-.4-1.4-1.3-1.4-1.3l.7 5.7 2.9 8 .2 2.3 1.3.7z"/>
+  <path fill="#202020" d="M327.7 244s-2.8-3-3.7-4.5l-1.7-3s-.8.3-1.8 0c-1-.5-2.2-1.8-2.2-1.8s-.8 1.5 3.2 5.6c4.6 4.6 6.2 3.7 6.2 3.7z"/>
+  <path fill="#8b441f" d="M334.4 245c1.2-.4 1.1-5.4 0-8.7-1-3.3-2.9-6.2-2.9-6.2s2.3 5.4 2.8 7.5c.4 2.2 0 3.7-.4 3.6-.4-.1-.4-1.3-1.3-3.4-1-2-1.6-2.6-1.6-2.6s3.3 8.8 2.3 8.6c-.9-.2-5.3-9.9-5.5-10.2-.2-.2-.4.4-.4.4s4 12.2 7 11z"/>
+  <path fill="#4d2a15" d="M337 221.3l2 4.2.6 4.4.2 3.7s0 7.4-.8 7.6c-1 .1-1.4-.7-1.4-.9a2729 2729 0 01-1.7-8.3l-1.7-8.5.6-.6.2-1.2 1.3-.1.7-.3z"/>
+  <path fill="#8b441f" d="M331.6 247c.8 0 0-2 0-2s-.6 1-1.2.3c-.5-.7-1.3-3.1-1.3-3.1l-.5-1.5s-.6 1.6-1.3 1.6-4.6-6.4-4.6-6.4l-.4.6s5.4 11.1 9.3 10.6z"/>
+  <path fill="#202020" d="M329.1 242.2s.7-1.6.4-3c-.3-1.5-2.2-5.1-2.2-5.1s-.6.1-1.4-.2a9.6 9.6 0 01-2.2-1.2 38.3 38.3 0 005.4 9.5zm3.1-2.3s-.5-3.4-2-6.6c-1.6-3.1-2.6-4.1-2.6-4.1v3.5s1.5.5 2.6 2.4c1 2 2 4.8 2 4.8zm4.3-5.8s-.3-3.7-.8-5.8l-1.2-5s0-.2.3-.4h.6c.8.3 1.1 2.2 1.1 2.2l-.1-3.1-.3-.5h-1.4s.3 1-.1 1.3c-.3.3-.6-.2-.7-.3l-.2.4.4 2-.1 1.7s.5 2.2 1.2 3.5c.6 1.4 1.3 4 1.3 4zm3.3-.5s.6-5.3-.6-8.7c-1.2-3.4-2.2-4.2-2.2-4.2l-.6.6s1.8 3 2.4 5.6l1 6.7zm-5.4 2.7s-.6-4.1-1.3-6.8a82.8 82.8 0 01-1-3.6l-1.1-1s.7 2.7.6 3.6l-.1 1.4s.5 1.4 1.3 2.6a25.5 25.5 0 011.6 3.8z"/>
+  <path fill="#904720" d="M337.2 242.9c1 0 .1-6-.3-7.5-.4-1.6-3-8.8-3-8.8s3 10.3 2.8 10.8c-.3.8-1.5-3.1-1.7-3-.2 0 2.2 6.9 1.3 7-.8 0-1.3-1.5-1.3-1.5l.1 1.5s.6 1.4 2.1 1.5z"/>
+  <path fill="#904720" d="M338.5 239.9c.7 0-.2-5.7-.7-8.2l-2-7.5s1.5 3.5 2.3 7.5c.8 4 1.4 9 .6 9.2-.8 0-1.2-.8-1.2-.8v-.9s.3.7 1 .7z"/>
+  <path fill="#312317" d="M328.8 246.5c0 .4 0 2.4-1 2.2-1-.1-2.9-1.9-3.3-3 0 0 2.2 2.5 3 2.4.8 0 .8-2.5.6-3.2 0-.6.6 1.6.6 1.6z"/>
+  <path fill="#d2a567" d="M334.1 219.5s1.4.9 2.4.3a4 4 0 001.8-3c0-.8 0-1.5-.7-2.4-.7-.9 1 .7 1 2.3 0 1.6 0 4.3-2.5 5-2.5.5-1.4-.2-1.4-.2l-.6-2z"/>
+  <path fill="#8f4620" d="M332.1 214.7s1.6 2.6 2.2 5c.7 2.3.5 3.2.2 3.3-.4 0-.6-.3-.7-.9 0-.6-1.7-7.4-1.7-7.4z"/>
+  <path fill="#1e2121" d="M304.1 218l10.6 15.3 13.2-15-8.3-8.6z"/>
+  <path fill="#4d2a15" d="M317.5 208.5l-.6 2.4 1.3 4.1 2.2 2.3 2.5 1.7.6-2 .6-2.2.7-.2 1.6.6 1-1.5 1.8-3.1-.4-1.2-.4-.9-2.7-4.6-.9 1.7-.8.5-1.6-.8-1.8 2.4-2.3-1z"/>
+  <path fill="#5c3818" d="M323 219s.4-.3.6-1.6c.2-1.2.2-4.9-.1-6.4-.3-1.5-1.3-4.4-1.5-4.2-.2.3 1.5 3.3 1.3 7-.3 3.6-.2 4.6-1 5-.7.3.6.2.6.2z"/>
+  <path fill="#5c3818" d="M323.6 212.8s1.7 2.5 2.5 1.6c.9-.9.5-4 0-5.3l-1.2-3 .5-.6.9 3.4c.3 1.4 1.3 5.2.1 6-1.1.6-2.8-1.5-2.8-1.5v-.6z"/>
+  <path fill="#8f4620" d="M317.9 214.6s.6-1 1.4-1c.8 0 1 .3 1 .3l.6 2 1.2 2.2 1 1-.5.6-.9.2-2.5-1.4-.7-1-.6-3z"/>
+  <path fill="#d2a567" d="M322 236.3c-.8.5-2.7-.5-3.7-1.4l-6.8-6.7-.8-3.2 2.2.6 3.9-1.7.7-1.3 4.6-2.4 2.6-1.4 5.5-.1 1.4-2.7s1.8 3.2 2.1 4.5c.4 1.4.3 5.4-.2 5.7-.5.3-2.3-1.2-2.6-1.3-.2-.1 1.4 5.7 0 6-1.3.2-3.6-2.2-3.6-2.2s1 5.2-.2 5.2a10 10 0 01-5-2.6s1.3 4.3 0 5z"/>
+  <path fill="#8f4620" d="M321 229.6l1.1 1.7c.3.4 0 2.9-.2 3.4-.3.9-1.6-1.2-2.3-3l-2.2-3.8c0-.4 3.5 1.7 3.5 1.7zm10.8-12.9s2 8.1 1 8.4c-1 .3-3.6-2.6-4-3l-4-6.4-.8-.8.2-.4 1.7.6 6 1.6z"/>
+  <path fill="#8f4620" d="M317.9 232.3c-.4.3-1.3-1-1.7-1.4l-3-3.3a11.5 11.5 0 01-2.2-2.5c0-.3-.8-1.1-.8-1.1l.7-1h.9s5.4 4.2 5.7 5c.4.6.6 4.1.4 4.3zm8 0c-.2.3-3.7-2.3-5.2-4.4-1.5-2.2-3-4-3.5-5l-.6-1.9 1 .2s8.8 10.8 8.4 11.2zm1.3-3.7c-.2.3-1.7-.9-2.7-2.1-1-1.3-.4-2.9-.4-2.9s3.3 4.8 3.1 5zm2-.5c-.5.3-2.5-2.2-4.2-5-1.3-2-1.6-2.3-1.8-2.5-.5-.3-1.4-.4-1.4-.4l-.2-.3 1-.2.6-.8 1-1.3 4.3 8.5s1 1.9.7 2z"/>
+  <path fill="#ab6d29" d="M318.3 234.9c0 .3 0 .6-1.2.5a21 21 0 01-9.9-7.8l-3-5 1.1-1.4 9.6 11 3.4 2.7z"/>
+  <path fill="#8f4620" d="M318.3 234.9c0 .5-.5.6-1.1.5-.6-.2-3-1-6.9-5.3a33.3 33.3 0 01-5.3-7.4l-.2-1.8 1.2-.5 6.5 10 5.8 4.5z"/>
+  <path fill="#4d2a15" d="M324.6 230.6s-2-1.5-3.2-3a24 24 0 01-3.8-5.7c.1-.7 1.2-.7 1.2-.7v-1.8l.2-.6 1.9.8 2.3 2.9.9 1.1s1.5 3.7 1.2 4c-.3.3-2.4-2-2.7-1.7-.3.3 2.4 4.4 2 4.7zm-3.7-1s.7 1 .4 1.7c-.3.7-.5 1-1.5-.4a16 16 0 00-2.3-3c0 .1.1 2.3-.3 2.3-.5 0-2-1.9-3-3.3l-2.5-3.9v-2l-.1-2.5.3.9.4.7 3.6 4.2 1-.7 2.1 4 2 2zm-13.5-6.1s2.8 4.8 5.3 7.5a17.4 17.4 0 005.6 3.9l-8.4-9.9-2.5-1.5zm21.2 2.8a12 12 0 01-3-3.4c-1-1.6-1.9-4-1.8-5 0-1 .4-3.4.4-3.4s2.8 3 3.4 4.3c.5 1.4 1.7 3.3 1.4 3.5-.2.2-2.1-1.3-2.4-1-.2.4 2.3 4.8 2 5zm3.2-3c-.3.1-1.8-1.6-2.1-2.6a14.8 14.8 0 01-.6-3.2l-1.2-3v-3.3l1.4-.2 1.9 2.7s.7 1.5.7 3.7c0 2.3.3 5.6 0 5.8zm-22.5 8a41.8 41.8 0 01-4-6l-1-2.9.5.4s.8 3.2 4.7 7.1c4 4 4.9 4.2 4.9 4.2s.7 2.2.4 3c0 0-2.9-2.6-5.5-5.7z"/>
+  <path fill="#202020" d="M313.6 235.9s-3.4-3-6-6.4a46.6 46.6 0 01-4.4-6.6l1.2-1a46.3 46.3 0 009.2 14zm4.7-1l-6-6.1c-2-2.2-3-4.4-3-4.4l1.6.6s.7 1.7 2 3.5l5.4 6.4zm-.8-7s-2.1-2.6-3.1-4.2l-2-3.8s2.8 3.3 3.6 3.5c.9.2.9 0 .9 0s-.4 1.2-.1 2.2l.7 2.3zm.9-10.6s.3 1.9.1 3c-.2 1-.8 1-.8 1a15.7 15.7 0 004 4l-1.8-2.7c-.5-1-1.3-2-1-2.8.4-1 2.1.6 2.6 1l2.6 2.8s-.8-2.5-1.8-3.4a53.6 53.6 0 00-4-2.9z"/>
+  <path fill="#202020" d="M327 222.8l-1.7-4.2-1.6-5.2v2.8c-.1 1.2-.5 3-1 3.3-.6.2-.7.3-1.7 0-1-.2.7.5.7.5s1 0 1.4-.5c.4-.5.5-1.5 1-1.4.4.2 1 1.7 1.3 2.4l1.6 2.3z"/>
+  <path fill="#202020" d="M323.7 213.4s2 2.3 3 1.3c.8-1 .3-4 .3-4s1.2.5 1.6.2c.4-.4.2-1.5.2-1.5s2.3 3.2 3.3 5.3c1.1 2 1.6 5.8 1.6 5.8s-1.8-3-2.7-5.8c-.9-2.6-2.1-3.8-2.3-3.5a5.3 5.3 0 00-.3 3c.2 1 1 2.1 1.5 3.5l1.1 3.4-1.6-2.5c-.7-.8-1.3-1.2-1.7-1.6-.4-.4-1-1.2-1.7-1.4-.6-.3-1.8-.9-1.8-.4s-.3-1-.3-1l-.2-.8z"/>
+  <path fill="#171717" d="M316.8 223.3a27 27 0 004.2 6.3s-2-1.8-2.8-3a15.5 15.5 0 01-1.4-3.3z"/>
+  <path fill="#8f4620" d="M330.2 223.9c-.3 0-1.3-.3-1.4 0 0 .4.6 1.8 1.3 2.5.7.7 1 .7 1.1.6.2 0 0-.7-.2-1.4v-1.7c-.1-.3-.8 0-.8 0z"/>
+  <path fill="#d2a567" d="M306 209.4l-1.3.7-1.4 3 .4 5.3 2.1 3c.8 1.2 3.5 4.2 4.2 4 .7-.2 1.4-2.3 1.5-3.4l.2-3.2 1.8 2.3c1.1 1.3 2 2.4 2.6 2.3.5 0 2-3.2 2-3.6.1-.4-3.8-10-3.8-10l-1.8-1-6.6.6z"/>
+  <path fill="#ab6d29" d="M314.8 217.4l1 3.7c.5 1.2 0 2.3.3 2.3.2 0 2.3-2.7 2.3-4 0-1.2 0-2.5-.5-6.3s.2-5 .2-5l-1.2-1-2 4.2-.1 6.1zm-7-2.2l.7 5c.3 1.2 1 3.3 1.4 3.2.4 0 1.6-3.3 1.7-4.4 0 0-.9-1.6-.8-5.5 0-4-.4-4.4-.4-4.4l-2.6 6.1z"/>
+  <path fill="#45392d" d="M302.5 207.5s-3.1 4.6-3 7c0 2.5.4 2 1.1 4.2.7 2.3 1.1 5.6 1.2 5.9 0 .2.5-.2.5-.5l.2-16.6z"/>
+  <path fill="#ab6d29" d="M302.5 208s-2.7 4.3-2.5 6.6c.2 2.3.5 2.3 1.3 4.4.8 2 .8 5.4.8 5.4s1-.2 1.9-.9c1-.7 1.8-2.1 1.8-2.1l-1-2.1a8 8 0 01-.6-2l-.8-1 .2-4.1.7-3v-1l-1.8-.1z"/>
+  <path fill="#dbad6c" d="M317.2 215.3s-1.3-.3-1.9-.6c-.6-.3-.8-1.1-.8-1.1l.4-.8 2.3 2.5z"/>
+  <path fill="#d2a567" d="M303 208.5s-2 4.3-1.7 7.2 1.9 6.6 2 6.7c.2 0 0-.3.1-1v-8.7l.9-2.8v-1.5l-1.3.1z"/>
+  <path fill="#8f4620" d="M307.8 209.5s.3 1.2.1 1.8c-.2.5-1.2 1.2-1.6 2-.5.8-1 2.8-1 2.8s.4-1.1 1-1.8c.7-.7 1-1.2 1-.8.2.4.4 2 .3 2.3-.1.3-.7.8-1 2-.4 1.3 0 2.4 0 2.4l.5-2.2c.2-.6.7-1 .7-1l1 2.4s0-1.1.3-2c.1-.8 1-2 1.3-2 .3 0 .8-.1-.3-.7-.4-.2-.1-4.2.1-4.4.3-.2 1.9-.2 1.7-.8a11 11 0 00-1.6-2.2c-.1-.1-2.5 2.2-2.5 2.2z"/>
+  <path fill="#dbad6c" d="M317 218.1l-1.5-.3c-.5 0-.6-.6-.6-.6l.2-.6 1.2.7.7.8z"/>
+  <path fill="#8f4620" d="M304.4 218.6c0 .4-.3.9-.5 1.5-.3.7-.4 1.6-.4 1.6l-.4-3.3-.3-2.4c-.2 0-.7.7-.7.7s0-1.6.3-2.3c.3-.7.5-1.8.3-2-.3-.1-.8.3-1 .7a30.8 30.8 0 00-.8 1.3s.3-1.3.6-1.9c.3-.5 1.8-2.2 2-2.8.4-.7.4-1.4.4-1.4h1s1 .8 1 1.5c0 .4-1 .9-1 1 0 0-.8-.1-1 3.2-.2 3.4.6 3.2.5 4.6zm9.4-8.7s.2 1.8 0 2.4c-.2.6-.7 1-1.1 1.8-.4.7-.4 2.4-.4 2.4l.5-1.4.7-1c.1 0 .6.7.8 1.7l.8 2.5s-.2-1.2.1-1.2.5-.1.9.2l.9.8s0-.5-.7-1.1c-.6-.7-1-.6-1.1-1.5-.2-1-.3-1.8-.2-2.2 0-.3.5.3.9.7l1.5 1.4-.7-1v-3c0-1 0-1.9.4-2.1.3-.3.4-1.6.2-1.8-.1-.2-3.5 2.4-3.5 2.4z"/>
+  <path fill="#1e2121" d="M324.6 206.1a23.7 23.7 0 001.5 7.1s-1-2-1.6-3.6-.9-3.5-1.3-3.6c-.4-.2-1 .8-1 1.5s.5 3.3 1.1 4.2c.6 1-1-1.2-1.3-2.3l-.7-2.2s-.4 1-.3 2c.2 1.1 1.1 2.7 1.1 2.7l-1-1-.6-.7s0 1.5.4 2.1l1.2 1.7-1.3-1-.4-.8s.2 2.1.6 3.3l1.5 3s-1.2-1-2-2.9c-.8-1.8-1.2-7.3-1-8.1l1.1-1.9c.6-.8 1.3-4.7 1.3-4.7s.9 3.6 1.5 4.3c.6.7 1.2 1 1.2 1zm-8.6-1l.8 1.3.6 1s-1 1.1-2.3 2c-1.2 1-2.8 2-3.1 1.5-.4-.5-.4-1-.4-1s1.4-.8 2.4-1.8a6.6 6.6 0 001.6-2.2c.2-.6.5-.9.5-.9zm-10.9 3.5s.2 2.2 1.2 2.2c.9 0 3.7-2.9 3.9-3 .2-.1.4-.8.4-1l-.2-.8s-3 3-4 3.2c-.9 0-1.3-.6-1.3-.6zm.1-3l-.3 2c0 .5.2.9.2.9s-2.2.7-2.5 0c-.4-.6-.1-1.6-.1-1.6h1.5c.6-.2 1.2-1.3 1.2-1.3zm20.3-3.1l1.5 3.2 1.4 2.8s-1.4-1.7-1.9-2l-1.2-1 .2-1.1v-2z"/>
+  <path fill="#dbad6c" d="M302.1 207h1.3c.5 0 .8-.2.8-.2l.9-1.2s-.5 1.4-.2 2.5c.3 1 1 1.1 1.2 1.1a4 4 0 002.2-1.1c.9-1 2.1-1.9 2.1-1.9s-.3 1.3.2 2.7c.5 1.3 1.2 1.3 2.2.4 1-.8 2-2.2 2.6-2.8l.7-1 1.1-1 1-5.4-.5-.7-1.4.7-1.7-.7-.5-.7-1 1.7-1 .6-.5.1-1.2.3-.5-1.1-.3-.8-.6-.3-2.4 2.5-1.4-.1-1.3 2.2-1 1.3-1 2.4.2.5z"/>
+  <path fill="#8f4620" d="M313.9 201.5s.2 1.3-.5 3.6-1.6 3.9-1.6 3.9 2.4-1.5 3.6-4.2c1.1-2.6.9-5.7.9-5.7l-2.4 2.4zm3-2.5s.2.4 0 2.4l-.8 4 .6 1.2c.4.7 1.2 1.8 1.7 1.6.6-.2 1.6-.9 2.2-2.2.6-1.4 1.1-2.7 1.4-2.9.2-.2.3.1.4.2 0 .1.3 1.3.9 1.8.5.5 1.3 1.3 1.6 1 .4-.2.8-.9.7-1.2l-1.3-4-1.6-4-1-1.6-2.8.3-2 3.4z"/>
+  <path fill="#ab6d29" d="M321.7 195.3s.8 1.7.9 3.6c0 1.8-.4 3.8-.4 3.8s.2-2.3 0-3.7c-.3-1.4-.7-2.3-.7-2.7l.2-1z"/>
+  <path fill="#4d2a15" d="M325.6 202.6v2.3c-.2.8-1.3-.5-2-3-.6-2.5-.5-3-1-4.3l-.9-2.2 1.5-.3 2.4 7.5zm-7 4.6s2.8-1.5 3.1-6.2c.2-2.1-1.2-5.7-1.2-5.7s0 3.8-1 6.2a60.9 60.9 0 01-1.9 4s.7-.2 1-.6l.8-1.1s.1.7-.1 1.6l-.6 1.8zm-2.3-8.1s-.1 1-1.3 2c-1 .9-3.1 1.9-3.1 1.9s1.5-1.4 2-2.6c.6-1.2.1-2 .1-2s-.2.6-.8 1.1c-.6.5-1.6.6-1.6.6s0-.6.7-1.3c0-.1 0-.4.2-.7.3-1 1.1-2.3 1.1-2.3s.7 1.4 1.3 2l1.4 1.3z"/>
+  <path fill="#1e2121" d="M324.7 193.6a17.6 17.6 0 00.9 9s-1.4-2.2-1.7-3c-.4-1-.4-2.3-.7-3a3.2 3.2 0 00-1-1c-.3-.2-1-.1-1-.1s.8-.4.8-1.1v-1l1.4.3h1.3zm-6 9.8s1.4-2 1.8-4.6c.4-2.6 0-3.5 0-3.5s-.6 0-1.1-.5c-.5-.5-1.3-1.8-1.3-1.8s.2 1.4 0 3c-.4 1.6-1.8 3-1.8 3s.8.4 1.4 0c1.5-.9 1.4-2.5 1.4-2.5s.3.2.3 2.2-.7 4.7-.7 4.7z"/>
+  <path fill="#8f4620" d="M301.2 206.9c-.3 0 1-2 1.8-3.4l2.1-3.4s.3.3.8.3a3.6 3.6 0 002.4-1.7 7 7 0 001-2.5c0-.3-.1 1.8 1 3 1 1.1.9 1 1.3 1 0 0 0 1.4-.4 2.7l-.8 3.3s.2-2.5-.3-3.2c-.4-.8-.6 0-1 1-.3.9-1.1 1.5-1.1 1.5s.6-1.1 1-2.3c.4-1.2.2-1.2 0-1.2 0 0-.2-.1-.6.4-.5.5-.9.6-.9.6s.5-.4.7-1a6 6 0 011-1.8c.2-.3.4-.7.4-1 0-.2 0-.7-.2-.7s-.5.3-1.4 1.2l-1.3 1.3-.9 2.6a17 17 0 01-1 2.8l-.6.4.9-2.4 1-3.4c-.2-.3-.7-.3-.8 0l-2 2.8c-1 1.4-1 3.1-1.2 3.2l-1-.1z"/>
+  <path fill="#874f20" d="M325.7 192.1c0 .2 0 1.2-1 1.5a3.5 3.5 0 01-2.3-.2c-.2 0-.2-1.4-.2-1.4l3.5.1z"/>
+  <path fill="#b27129" d="M306 195.4s-.2.9-.8 2c-.5 1.2-1.4 2.2-1.3 2.4 0 .1.6.7 1.4.6.8 0 1.1-4.8 1.1-4.8l-.1-.2h-.3z"/>
+  <path fill="#dbad6c" d="M318.4 192.7s-.3 6.4-2.1 6.4-2.7-3.2-2.7-3.2-.1 4.3-2.4 4.3c-1 0-2.1-3.4-1.9-4 0 0-.4 2.3-1.5 3.2-2.2 1.7-3.5.9-3.6.6 0-.3 1.8-2 2-4.6 0 0 .4.1 1-.6s.7-1.6 1.3-1.5c.5.2 3-1 3-1l1.4-1.7s.2.5 1.2-.2a3.6 3.6 0 001.3-1.7l2.7 2.3.3 1.7z"/>
+  <path fill="#b27129" d="M311.4 186.6l2.7 3.8.6-.5c.4.5.6.9.4 1.2-.4 1-1.3 2.3-.5 3.7 0 0-.3-.8.1-1.8s.7-1.4 1-1.3c.2 0 .6 5.8 1 5.8.3 0 .9-2.7.9-4.5 0-1.8.3-.3.5 0 .2.4 1.8 3 3.1 2.6 1.4-.4 1.2-2.8 1.2-3.3 0-.6-1-3.7-1-3.7l-6.1-3.9-.5 1.6c-.3 1-3.4.3-3.4.3z"/>
+  <path fill="#8f4620" d="M320 186s.4.4 1 1.9.7 6.4-.1 6.4c-.8 0-2.3-1-2.6-1.6-.3-.7 0-3.1-.4-3.8a8.1 8.1 0 01-1.2-2.7l.1-2 1.4-.5 1.9 2.3z"/>
+  <path fill="#4d2a15" d="M319.6 184.5l2.6 3.9 2.3 3.3 1.2.4a2.5 2.5 0 01-3.2.5c-.9-.5-.4-2-1.5-4.5-1.2-2.5-3.2-3.6-3.2-3.6l.7-.7 1.1.7z"/>
+  <path fill="#1e2121" d="M318.2 182.4s2.3 1.5 3.1 3.2c.9 1.7 1.3 2.7 2.3 4.3 1 1.6 2.1 2.1 2 2.2 0 .1-.7.3-1.2 0a4.7 4.7 0 01-1.4-1.6 35 35 0 00-2.4-4.2c-.5-.7-2.3-2-2.3-1.9 0 .1.5.5 1.5 2.1a7 7 0 011.2 3.1l-1.1-2c-1-1.5-2.8-3.3-2.9-3-.1.2 1 1.9 1.5 2.9l1.3 3.3-1.8-3c-1-1.5-1.2-1.3-1.6-1.8l-1.4-1.8s1 .3 1.8-.3c1-.6 1.4-1.5 1.4-1.5z"/>
+  <path fill="#8f4620" d="M312.3 186.7s1.5.3 2.3.2h1.1s.5.6.5 1.4c0 .7-.5 2.1-.8 2.2-.2 0-.2-1.3-.5-1.8l-2.6-2z"/>
+  <path fill="#b27129" d="M313.1 190.6s.5 1.6.1 3.9c-.4 2.2-1.7 4.6-2 4.6-.3 0-.2-2.6-.4-4a38.8 38.8 0 000-.4l-.5 1.6.4-2.6-.1-.8 1.6-2 .9-.3z"/>
+  <path fill="#8f4620" d="M310.3 192.3c-.5.5-1.2.4-1.8.6-.6.2-.9 1-.9 1s.5-.3.7-.2c.3.1.5.1.1 1.2-.5 1.1-2.2 3-2.1 3 0 0 2-1.5 2.5-2.5.7-.9.6-1.4.8-1.8 0-.3.8-.7 1-.7.1 0 .5 0 .6.7l.6 2.6.8-2.6c.2-1 .2-2.9.2-2.9l-.6-.1c-.5-.1-1.5-1-1.5-1s.2 2-.5 2.7z"/>
+  <path fill="#dbad6c" d="M318.3 180.8s.6 1.5-.7 2.6c-.4.3-.7.5-1.4.6a4.5 4.5 0 01-1.7-.6l-4-1.6-2-.6-1-.3.2-1.1h3l3 1.2 1.3.5 1.1.2h.9l.7-.2.4-.3.2-.4z"/>
+  <path fill="#ab6d29" d="M318.3 180.8c0 .3-.3 1.1-.6 1.3-.3 0-.8.3-2 0-1.1-.2-2.3-1-3.6-1.3-1.3-.4-2.3-.7-3.3-.7s-.5-.4-.5-.4 2.3-.3 4.3.5c2 .7 2.9 1.2 4 1.2 1.4 0 1.7-.6 1.7-.6z"/>
+  <path fill="#4d2a15" d="M307.6 179.6h.9c.4 0 .7-.3.7-.3s0 .5-.2.7c-.3.2-1 .1-1.2.1l-.2-.5z"/>
+  <path fill="#dbad6c" d="M315.3 184.4s1.3 1.3 1 2.4l-2.7-1.2-4.2-1.7-2.3-.7-.3-.4.6-.8.2-.8 2.8.4 3 1 1.9 1.8z"/>
+  <path fill="#dbad6c" d="M312.4 186.3s2.4 3.1 1.8 4.1l-5.6-3.5-2 3.3-4.7-2.3s3.8-3 4.2-3.5l.5-.7 2 .4 3.4 1 .4 1.2z"/>
+  <path fill="#ab6d29" d="M311 181.6s2 .5 3.3 1.2c1.3.6 3 .8 3 .8s-.6.7-2 .8c-.4 0-1.4-.8-2-1.3-.7-.4-2.6-1-2.6-1l.3-.5z"/>
+  <path fill="#4d2a15" d="M307.6 180.6s1.4.3 2.2.7c1 .3 1 .2 1.2.1.3 0 .3-.2.3-.2s.2 1-.5 1-1-.3-1.8-.7c-1-.4-1.5 0-1.5 0v-1z"/>
+  <path fill="#ab6d29" d="M315.4 186s1 .7.9.9c-.2 0-.7.3-1.6.4a3.4 3.4 0 01-2-.4c-.6-.2-1-1.3-2.5-2a18 18 0 00-2.8-.9l-1.3-.2 1-.4 3.2.6 2.8.9 1.7.8.6.4zm-5.4 2l.6 2.6-.4 1.5-.8.6-.8-.3-.3-.5s.4-.6 0-1.1c-.3-.6-2-1.2-2-1.2s.7-1.3 1.4-1.6c.8-.3.4-1.2.4-1.2l1.9 1.2z"/>
+  <path fill="#4d2a15" d="M306.8 182.8s.5.4 1.5.5c.5 0 1.3.2 2.2.5l1-.3-.5.4c.9.2 2 .7 2.5.9a5.8 5.8 0 012 1.3l-2-1a17.4 17.4 0 00-3-.9c-2-.3-4-.2-4.3-.4-.4 0 .1-.1.4-.3.2-.2.2-.7.2-.7z"/>
+  <path fill="#ab6d29" d="M314 189.8s.7.7 0 .9c-.6.2-2.4.2-3.2-.7l-.6-1.2a14 14 0 00-2.4-1.7c-.7-.5.3-.5.3-.5l3.6 1.5a13 13 0 012.3 1.7z"/>
+  <path fill="#4d2a15" d="M314 189.9s-1.2-1.8-4.9-3.3l1.2-.2h-2a24 24 0 00-.8-.3c-2-.6-2-.6-2.2-.8-.1-.3-.4 0-.6.3l-.7 1a5 5 0 012.5-.1c1.1.3 1 .7 1 1-.1.5-1.4 2-1.3 2.1.2 0 1-1.5 2-1.3 1 .3 1.2.8 1.2.8s0-.6-.2-.8c-.2-.2-1.3-1.3-1-1.3.3 0 1.6.3 3.3 1.2 1.8.9 2 1.1 2.6 1.7z"/>
+  <path fill="#dbad6c" d="M308.1 187s2.8.8 2.7 3.8c-.1 3-2.3 2.4-2.5 1.3-.2-1 .3.5 1 .4.9-.2 1-1 1-2.2 0-1-.3-1.6-1-2.2a12 12 0 00-1.2-1z"/>
+  <path fill="#6c3f18" d="M296 179.9s.4.2-.4 2.3c-.8 2.1-1.3 2.8-2.5 4.2-2.2 2.4-3.2 2.5-3 3.5.3 1 1.1.8 1.3.8.2 0 4.3-6 4.3-6l.9-3.5-.2-1-.3-.3z"/>
+  <path fill="#dbad6c" d="M306.1 175.6s1.2 1.8.8 5c-.3 3.4-4.7 6.3-4.7 6.3l-6.4 4.4-2.7-.2h-.8c-.4-.1-.8-.5-.9-.5l-.5-1.2.9-1 2.3-2.3 1.4-2s.7-1.3.8-2.5c0-1.1-.2-1.7-.2-1.7l.5.8.3 1.8-.2 2 1.6-1.2 2.2-1s.7 0 1-1.3c.5-1.2.9-3 .9-3.8l-.1-1.8h.3c.2 0 .7 1.2.7 1.7l.4 2.8 1-1 1-1.5c.2-.5.4-1.3.4-1.8z"/>
+  <path fill="#904720" d="M306.8 192.2s.5.4.3 1.6c-.2 1.2-1.1 1.8-1.6 1.8V194l-1.4-1.2-1.5-.4.3-.3c.1-.2 1.7-.8 1.7-.8l2.2.9z"/>
+  <path fill="#ab6d29" d="M305.7 192.2s.5.4 1.2.3c.7-.2 1-1.3.6-1.8-.4-.4-.2 1-.7 1.3-.4.1-1-1.2-1.5-1.3-.7-.1-1.6.3-1.9.7-.2.4 1 0 1 0l.7.3h.5l.1.5z"/>
+  <path fill="#904720" d="M296.5 187.6s.8.3 1.7.1l3.1-1 1.8-1.3c.7-.7 3.1-2.2 3.4-5.1.2-3-.4-4.7-.4-4.7s3.5 3.8.5 8.2c-2 2.8-3.8 3.7-3.8 3.7s3.4-1 3.7-.2c.3.8-.1 2-.2 2.3 0 0 1.9.4 2.2 1.4.1.6-2.2-.7-4-.2-1.8.4-2.5 1.4-2.5 1.4s-.4-.5-2-.5c-1.5 0-2.2.7-3.1.7-1 0-3.7-.6-4.2-1.4l1.8-2.2c.8-1.6 2-1.2 2-1.2z"/>
+  <path fill="#ab6d29" d="M303.8 179.7s1.3-1.3 1.8-2.3c.4-1 .5-1.8.5-1.8s.2 1-.6 2.3-1.7 2-1.7 2v-.2z"/>
+  <path fill="#904720" d="M303.4 176.7s1.1 4.4 0 6.1c-1.3 1.8-6.5 4.1-6.5 4.1s4-2.1 5.2-4.6 1.1-4.5 1.1-4.5l.2-1z"/>
+  <path fill="#1e2121" d="M298.2 187.7s1.7 0 2.6-.6c1-.5 2.3-1.7 2.3-1.7s-1.2 1-1.6 1c-.3 0-.6-.5-.5-.9 0 0-.3.8-1 1.4-.8.5-1.8.8-1.8.8zm3.9-5.4s1.4-1.4 1.4-4.4c0-3-1.2-2.5-1.2-2.5s1 .7.7 3c-.2 2.3-1 4-1 4zm1.7.3s1.6-.3 2.1-1.3.6-2.7.6-2.7-.2 1.7-.7 2.3c-.4.6-2 1.7-2 1.7zm-1 9.5s.8-1.5 1.9-1.1c1 .4 1 1.2 1 1.2s-.4-.6-1.2-.7c-.7 0-1.6.6-1.6.6zm-2.9-2.7l3.7-1 3-1s-1.2 1.3-3 2.3c-1.6 1-3 1-3 1s3.2-1.4 3.4-2c0 0-3 .9-4 .7z"/>
+  <path fill="#fff" d="M296.2 185.8a2.6 2.7 67.8 01-3 4.4"/>
+  <path fill="#f16e16" d="M296.1 186.1a2.3 2.4 67.8 01-2.7 3.8"/>
+  <path d="M295 187.4a1 1 0 11-.8 1.4"/>
+  <path fill="#d5d3ca" d="M295.2 188.6a.3.3 0 11-.6-.1.3.3 0 01.3-.3.3.3 0 01.3.4z"/>
+  <path fill="#ab6d29" d="M296.8 184.2s1.6-1.5 1.9-3.5c.3-2 .1-3.2.1-3.2l.9 1 .3 1.4-.5 2.6 1.6-.8c.6-.8 1.5-4.2 1.2-6.3 0 0 .4 1-.2 3.8-.6 2.9-1 3.2-3.2 4.4a9.6 9.6 0 00-3.8 4.2 19 19 0 01-2.3 3l1.6-2.6c.8-1.8 1.7-2.8 1.7-2.8l.7-1.2z"/>
+  <path fill="#904720" d="M296.1 185.4s.7-2 .7-3.1-.7-2.4-.7-2.4 1-.1 1 2.2c.1 2.4-.4 2.6-1 3.3z"/>
+  <path fill="#4d2a15" d="M299.2 182.8s.7-1.7.7-3c0-1.1-1-2.3-1-2.3s1.1.3 1.2 2.4c.1 2.2-.2 2.2-1 3z"/>
+  <path fill="#ab6d29" d="M292.1 191s-.6-.8-.5-1.3c0-.6 0-.7 1.4-2.2a13 13 0 002.5-3c.3-.9 1.5-3 .6-4.6 0 0 .6 2.4-.8 4.3a15.7 15.7 0 01-3.3 3.7c-1.1.8-1.3 1.2-1.2 1.7 0 .5.1 1 .3 1 .4.3 1 .3 1 .3z"/>
+  <path fill="#6c4119" d="M305.5 195.6s.3 0 .5-.3.2-1-.3-1.6a3.3 3.3 0 00-1.7-1.1l-2-.4s.4.8 1.3 1.3c.4.2 1.2 0 1.6.4.5.4.6 1.7.6 1.7z"/>
+  <path fill="#6c4119" d="M305.5 195.6s1.5-.5 1.6-2l-.1-1.2s.2.5.8.7l.6-.2s-1 2.8-3 2.7z"/>
+  <path fill="#bf802d" d="M294.8 195.3l.8.8.9 1 3.7-1 1.2-1.2-1-1.6h-2.7l-3 2z"/>
+  <path fill="#f9c83a" stroke="#8f4620" stroke-width=".4" d="M303.8 194l-.7-.9-.7-.6c-.6-.3-2.8-.3-2.8-.3l-1.6.3s-.5.5-1.3.3a22 22 0 01-2.6-1l-1.9-.7s-1.3-.6-1.6-.5c-.3.1-1.5 1.3-1.5 1.3s-.2.7.3.7c.4 0-.7.2-.7.2s-2.8 1.6-3.2 4.4c-.5 2.7 4.6 6.8 6.5 4.7 0 0-2.8-2-2.2-3.7.5-1.7 1.8-2.8 4-3 2.1 0 2.3-.3 3.2-1 1-.6 2.7-1 4 .3 1.3 1.4-5 2.7-5 2.7l.7 1s7.7-2.7 7-4.1z"/>
+  <path fill="#fcf3d8" d="M289.4 200.7s-3.1-.8-2.9-3.7c.3-2.8 3-3.9 3.4-4 .4-.2.3-1.6.8-1.8a2.4 2.4 0 012 .5l1.4.8s-5.5 2.4-5.5 5.6c0 2.1.8 2.5.8 2.5z"/>
+  <path fill="#fdeaaf" d="M303.8 193.8s-.4.2-.5 0c-.6-1-2-1.4-3-1.3-1.5 0-2.4.5-3.4.5s-.7-.1-1.8-.2c-1.1 0-3.5-1.8-4-1.6-.6.2-.8.8-.8 1.1.1.4-1 .4-1 .1-.2-.2.7-1.7 1.7-1.7 2.6 0 4.6 1.7 5.8 1.7 1.3 0 1.7-.7 3.4-.7s3.5.8 3.6 2z"/>
+  <path fill="#513625" d="M295.2 195.8s1.3-.2 2.2-.6l2.2-.8-2 1.2-2 .5-.4-.3z"/>
+  <path fill="#f9c83a" d="M290.8 202.3c-.2 0-1.3 0-3-1.1-1.8-1.2-2.3-3.2-2.3-3.2s-.4-1.9 1.4-3.8c1.8-1.9 2.1-1.3 2.2-1.2.1 0 0 .1 0 .1l-1.7 1.3-.7 1.3-.7 1.2v1.4l.8 1.5 2.5 1.5 1.5 1z"/>
+  <path fill="#8b5122" d="M289.8 191.4v-.2.3-.3.3-.3l-.3.2h.2v-.2l-.2.2.2-.2h-.2a.3.3 0 000 .2l.2-.2h-.2.2-.2.2-.2.2l-.2-.1.2.1-.2-.1-.1.1a4.6 4.6 0 00-.4.5l-.2.6v.1c0 .3.2.5.4.6h1.4a.3.3 0 00.1-.4.3.3 0 00-.3-.2l-.7.1a.8.8 0 01-.3 0v-.2a.5.5 0 010-.2 3 3 0 01.3-.5l.2-.1v-.1l.1-.2a.3.3 0 00-.3-.2.3.3 0 00-.2.3.3.3 0 00.3.2z"/>
+  <path fill="#f9c83a" d="M295.1 194.1l-3.8 1.1c-.3.2 1.2 0 2.4 0l1.3.1.9-.2c1.4-.5 4.4-1.6 4.7-.3.2 1-4.1 2-4.1 2v.5l3.4-.9 1.9-1 .5-.9-1.7-1.2H298l-1.2.3-1.7.5z"/>
+  <path fill="#8f4620" d="M289.7 199.5c.3.8.9 2 1.6 2.3 0 0 .1 0 0 0 0 .1-.5.5-1.7.1-1.2-.3-3-.7-4.1-4v.7l.7 1.3 1.1 1.2 1.9 1.1 1.2.3 1-.2.6-.4-1.1-1-1.4-2.3.2 1z"/>
+  <path fill="#fcca3d" d="M302.1 232.6v1.2h-.7v-1.5zm-4.7-34.4l-1.2-1.4-.8.1 1.2 1.8z"/>
+  <path fill="#816c2a" d="M302 235.5l-1.7-1a10 10 0 00-2.4-.6v.3h.2l2.1.6a14.3 14.3 0 011.7 1l.1-.3zm0-3.1h-3a4 4 0 00-1.3.7l.1.2a3.8 3.8 0 012.6-.7 23 23 0 011.4.1v-.3zm-.4-2.7l-2.6 1.4-1.6 1.2.2.2.5-.4a16.5 16.5 0 012.6-1.6l1-.5-.1-.3zm-1.7-2.7s0 .7-.3 1.2a8.6 8.6 0 01-.6.8 86.3 86.3 0 01-2.5 2.6l.2.3a220.4 220.4 0 002.5-2.7l.7-.8c.3-.6.3-1.3.3-1.4h-.3zm-2.1-1.2a4.2 4.2 0 01-.2 2.2l-1 2.2-.4.9-.2.3.2.2s1.3-2.2 1.7-3.5c.2-.5.2-1 .2-1.5a4 4 0 000-.9h-.4zm-2.1-.3a8.7 8.7 0 000 1.2c0 .6 0 1.2-.2 1.7l-.7 1.8-.3 1 .3.1 1-2.8c.2-.5.2-1.2.2-1.8v-1.2h-.3zm-1.6 0v1.2l-.3 2a52.2 52.2 0 00-.5 2.5h.3l.2-.8.3-1.7c.3-1 .3-3.2.3-3.2h-.3zm-1.8.3a13 13 0 000 2.9 14 14 0 00-.4 2.5h.3a23.3 23.3 0 01.4-2.4l.1-1.4v-1.6h-.4zm-1.3.2v.2a9 9 0 01-.3 2.2l-.6 1.9-.2 1h.3l.8-2.9a8.9 8.9 0 00.3-2.2v-.2h-.3zm-1.6 0v.7c0 .6 0 1.4-.4 2a5.5 5.5 0 01-1.3 1.6 9.8 9.8 0 01-.7.4l-.2.2.1.3s1.7-1 2.4-2.3c.4-.7.5-1.6.5-2.2v-.7h-.4zm-.9-.3v.2a6.7 6.7 0 01-1 1.9c-.3.4-.9.8-1.3 1.1a12.1 12.1 0 01-.8.5l.2.3s1.4-.8 2.1-1.7a8 8 0 001.1-2.2h-.3zm-1.5-.7v.1a6.2 6.2 0 01-1 1.3c-.1.2-.5.4-.9.6l-.6.4.1.3.7-.4 1-.7.7-.9.3-.6-.3-.1zm-.7-1l-.3.3-.9 1a6.5 6.5 0 01-.5.4l-.4.3.1.3.7-.4c.7-.6 1.5-1.7 1.5-1.7l-.2-.2zm-.4-.6l-.2.2-.9.6a2 2 0 01-.8.3v.4l.6-.3c.7-.3 1.5-1 1.5-1l-.2-.2zm-.2-.7l-.8.4-.6.3a1.9 1.9 0 01-.4.2v.3c.2 0 .3 0 .5-.2l1.4-.7-.1-.3zm-.4-1.3l-.5.5-.9.3v.3a2 2 0 001.2-.5 3.8 3.8 0 00.5-.4l-.3-.2zm.1-2.2l-.6.5c-.3.3-.6.6-.7 1a.6.6 0 01-.1 0v.5l.2-.2a.8.8 0 00.2-.2c0-.2.4-.6.7-.9a7.9 7.9 0 01.5-.5l-.2-.2zm10.7-12.8h1.6l.1-.2v-.1h-.1v.3-.1h-.2.1-.1v-.2l.1.1v-.1.1-.1h-1.5v.3zm0-1h.2c.2 0 .4 0 .6-.2.4-.1.7-.4 1-.6l.5-.3a.8.8 0 01.3 0v-.4l-.6.2-1 .7-.8.3-.1.3zm0-1.5l.7-.2 1.2-.8c.4-.3.7-.4 1-.4v-.3c-.3 0-.5 0-.8.2l-1.2.7a3 3 0 01-1 .5v.3zm-.6-1.4l1.5-1 1.6-1.2-.1-.3-1.7 1.2c-.5.5-1.1.9-1.5 1l.2.4zm-1-1.5l3.2-2.3-.2-.3-3.2 2.3.1.3zm-1.5-1.6a20.7 20.7 0 013.4-2.3l-.2-.2-1.5 1-1.9 1.3.2.2zm-1-1a123.7 123.7 0 012.6-1.8l.8-.5-.1-.3a7.6 7.6 0 00-.8.5 113 113 0 00-2.7 2l.1.2z"/>
+  <path fill="#78732e" d="M294.5 195.4l.1.1a17.3 17.3 0 012.5 2.5c1 1.2 1.8 2.7 1.8 4.1v.5a9.5 9.5 0 01-2.5 5c-2 2.3-4.8 4.4-7 6.4a18 18 0 00-3 3.1 6.1 6.1 0 00-1.2 3.7 6.4 6.4 0 001.1 3.4 4.4 4.4 0 003.9 2c1.8 0 3.8-.7 5.6-.7 1.6 0 3 .4 4.4 1.9 1.3 1.4 1.7 3.6 1.7 5.7 0 1.6-.2 3-.4 4.2a25.6 25.6 0 01-.4 1.8h.3s.8-2.8.8-6c0-2.1-.4-4.5-1.8-6a5.8 5.8 0 00-4.6-1.9c-1.9 0-3.9.6-5.6.6a4 4 0 01-3.6-1.8 6 6 0 01-1-3.3v-.1c0-1.6.7-3 1.9-4.3 1.8-2 4.5-4 7-6.2 2.3-2.2 4.4-4.5 4.7-7.5v-.5c0-1.8-1.1-3.5-2.3-4.8a17.2 17.2 0 00-2.3-2.2l-.1.3z"/>
+  <path fill="#a8ac71" d="M292.1 198.4l-.4-.3-.3.1.6.5zm1 1l-.3-.3h-.1l.2.4z"/>
+  <path fill="#78732e" d="M294.5 201l-.2-.4-.2.2.3.3zm1 1.5l-.1-.3h-.3l.4.5zm.7 1.5l-.2-.4v.4zm0 1.5v-.4l-.2-.1v.5zm0 1v-.5l-.1-.1v.6zM284 221.1l.1-.7c.1-.3-.3.1-.3.1v.5l.2.1z"/>
+  <path fill="#fff" d="M284 222.1l-.3.1.1.5.1-.2v-.4z"/>
+  <path fill="#78732e" d="M284 223.9v-.4h-.2v.6z"/>
+  <path fill="#fff" d="M284 224.9v-.4h-.1v.4zm.3 1.4v-.4l-.2.1.1.4zm.4 1.4l-.1-.5h-.2l.2.6z"/>
+  <path fill="#a8ac71" d="M285.6 229.7l-.2-.3h-.2l.3.3zm1.5 1.4l-.5-.3c-.3-.3-.1.2-.1.2l.4.2h.2zm9.8.8l-.4-.3c-.2 0 0 0 .2.4.1.3.2-.1.2-.1z"/>
+  <path fill="#fff" d="M297.7 232.5l-.3-.3v.3h.2z"/>
+  <path fill="#a8ac71" d="M297.9 233c-.1-.2-.2.1-.2.1l.2.3v-.5zm0 1.3v-.5c0-.2-.1 0-.1 0v.5h.1z"/>
+  <path fill="#fff" d="M297.4 235.7l.2-.4h-.2v.4zm-14.8-52s.5-.2.1.4l.3-.5h-.5z"/>
+  <path fill="#f9c83a" d="M294.6 195l.4.3h-.5l.1-.3z"/>
+  <path fill="#8f4620" d="M295 195.3l-.7.1c-.2 0 .2-.2.2-.2l.4.1z"/>
+  <path fill="#977c2e" d="M301 239.1s.3 0 .5-.3-.1.4-.1.4l-.3.1-.2-.2z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/my.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/my.svg
new file mode 100644
index 0000000..a08f085
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/my.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-my" viewBox="0 0 640 480">
+  <path fill="#cc0001" d="M0 0h640v480H0z"/>
+  <path id="a" fill="#fff" d="M0 445.8h640V480H0z"/>
+  <use width="100%" height="100%" transform="translate(0 -68.6)" xlink:href="#a"/>
+  <use width="100%" height="100%" transform="translate(0 -137.2)" xlink:href="#a"/>
+  <use width="100%" height="100%" transform="translate(0 -205.8)" xlink:href="#a"/>
+  <use width="100%" height="100%" transform="translate(0 -274.3)" xlink:href="#a"/>
+  <use width="100%" height="100%" transform="translate(0 -343)" xlink:href="#a"/>
+  <use width="100%" height="100%" transform="translate(0 -411.5)" xlink:href="#a"/>
+  <path fill="#010066" d="M0 0h372.6v274.3H0z"/>
+  <g fill="#fc0">
+    <path d="M149.7 48.5c-49 0-88.9 39.7-88.9 88.6a88.8 88.8 0 0089 88.6 88.7 88.7 0 0048-14 78.9 78.9 0 01-25.8 4.2 78.7 78.7 0 01-78.8-78.5 78.7 78.7 0 01106.2-73.7 88.7 88.7 0 00-49.7-15.2z"/>
+    <path d="M297.1 183.2l-37.4-19.5 11 40-25-33.5-7.8 40.7-7.7-40.7-25.1 33.4 11.2-40-37.6 19.5 28-31.3-42.5 1.6 39-16.3-39-16.5 42.5 1.7L178.9 91l37.4 19.5-11-40 25 33.5 7.8-40.7 7.7 40.7 25.1-33.3-11.2 39.9 37.6-19.4-28 31.2 42.5-1.6-39 16.4 39 16.5-42.5-1.8z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mz.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mz.svg
new file mode 100644
index 0000000..2e98e99
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/mz.svg
@@ -0,0 +1,21 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-mz" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="mz-a">
+      <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#mz-a)" transform="scale(.9375)">
+    <path fill="#009a00" fill-rule="evenodd" d="M0 0h768v160H0z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M0 160h768v16H0z"/>
+    <path fill-rule="evenodd" d="M0 176h768v160H0z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M0 336h768v16H0z"/>
+    <path fill="#ffca00" fill-rule="evenodd" d="M0 352h768v160H0z"/>
+    <path fill="red" fill-rule="evenodd" d="M0 0v512l336-256L0 0z"/>
+    <path fill="#ffca00" fill-rule="evenodd" d="M198.5 333l-51.2-37.5L96.1 333l19.9-60.3-51.5-37.1 63.5.2 19.3-60.4 19.4 60.5 63.5-.3-51.5 37.1z"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.1" d="M102.8 290.9h37c3 3.3 9.5 4.7 15.8 0 11.6-6.4 34 0 34 0l4.4-4.7-10.7-35.2-3.9-4.2s-8.3-5-24-3.3c-15.7 1.7-21.2-.5-21.2-.5s-13.7 1.6-17.6 3.6l-4.4 4.4-9.4 39.9z"/>
+    <path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.1" d="M110.3 281.8s35.2-4.4 45.4 9.1c-5.7 4-10.8 4.3-16.2.3.8-1.5 12.6-13.8 42.7-9.7"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M148 246.6l-.3 38.8m31.7-38.3L186 278"/>
+    <path fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.1" d="M117 246.6l-3.7 16"/>
+    <path fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.1" d="M78.9 295.1l8.6 10.2c1 .6 2 .6 2.9 0l12.8-15.4 5.4-6.7c.9-1 1.1-2.1 1-3l10.4-9.3 2.2.2c-1-.2-1.7-.7-1-1.8l2.4-1.8 1.8 2.3s-2.6 3.4-2.9 3.4h-2.8l-5.4 4.9 2.4 2 3.5 9.8 4.4-3.1-2.8-10 6.1-6.7-2.3-3.6 1.6-2s21.3 13.4 29.6 9.8c.2 0 .5-9.6.5-9.6s-22.2-2.3-22.7-6.7 5-5 5-5l-2.4-3.2.5-1.8 3.9 4.8 8.7-7.4 51.5 58.6c2.8-1.1 3.4-1.8 3.6-4.6L155 241.5l3.8-4.1c.8-.9 1-1.2 1-2.6l6-5.1a7.3 7.3 0 013.8 3L186 219c.4.4 1.7.8 2.6.4l26.9-25.9-29.3 20.7-1-.7c0-.9 1-1 0-2.6-1.2-1.4-2.9 1.3-3.1 1.3-.3 0-4.3-1.4-5.2-3.2l-.2 4.7-7.5 7-5.7-.3-8.2 8-1 3 1.3 2.7s-4.4 3.8-4.4 3.6c0-.3-.9-1.2-1-1.3l3.8-3.4.5-2.3-1.2-2c-.4.3-5.2 5.4-5.5 4.8l-14-15.5.8-2.9-8.7-9.5c-3.2-1.1-8.3-1.3-9.3 5.7-.8 1.6-7.4.2-7.4.2l-3.6.8L85.2 241l11.3 13.6 23.2-29.3.7-8.3 4.8 5.4c1.7.2 3.2.3 4.7-.5l13.7 15.3-2.3 2.3 2 2.2 2.4-1.6.9 1.3c-1.1.6-2 1.5-3.1 2.1-1.8-1.2-3.6-2.7-3.5-5l-7.7 6.4-.3 1.2-22.9 19-2 .3-.5 6 14.9-12.4v-1.8l1.5 1.3 11.6-9.3s.8 1 .5 1-10.3 9.3-10.3 9.3l-.2 1-1.8 1.6-1-.8-14 12.4h-2l-7.7 7.7c-2 .2-3.7.4-5.4 1.5l-13.8 12.2z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/na.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/na.svg
new file mode 100644
index 0000000..f2f571f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/na.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-na" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="na-a">
+      <path fill-opacity=".7" d="M0 0h640v480H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#na-a)">
+    <path fill="#fff" d="M0 0h640v480H0z"/>
+    <path fill="#3662a2" d="M-26.4.2l.8 345.6L512.5 0-26.4.2z"/>
+    <path fill="#38a100" d="M666.4 479.6L665 120.3 122.3 479.8l544-.2z"/>
+    <path fill="#c70000" d="M-26 371.8l.4 108.2 117.5-.1L665.4 95.4l-.7-94.1-116-1L-26 371.7z"/>
+    <path fill="#ffe700" d="M219.6 172l-21.8-13.2-12.6 22.1-12.2-22.2-22 12.9.6-25.4-25.4.2 13.2-21.8-22.1-12.5 22.2-12.3-12.8-22 25.4.6-.1-25.5 21.7 13.2L186.3 44l12.2 22.2 22-12.9-.6 25.4 25.4-.2-13.2 21.8 22.1 12.5-22.2 12.3 12.8 22-25.4-.6z"/>
+    <path fill="#3662a2" d="M232.4 112.4c0 25.6-20.9 46.3-46.6 46.3s-46.6-20.7-46.6-46.3 20.8-46.2 46.6-46.2 46.6 20.7 46.6 46.2z"/>
+    <path fill="#ffe700" d="M222.3 112.4a36.5 36.5 0 11-73 0 36.5 36.5 0 0173 0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/nc.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/nc.svg
new file mode 100644
index 0000000..4a2ac30
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/nc.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-nc" viewBox="0 0 640 480">
+  <path fill="#009543" stroke-width=".9" d="M0 0h640v480H0z"/>
+  <path fill="#ed4135" stroke-width=".9" d="M0 0h640v320H0z"/>
+  <path fill="#0035ad" stroke-width=".9" d="M0 0h640v160H0z"/>
+  <circle cx="240" cy="240" r="157.3" fill="#fae600" stroke="#000" stroke-width="5.3"/>
+  <path stroke="#000" stroke-width="6.4" d="M213.3 263.5h53.3M213.3 224h53.3M240 83.2V352"/>
+  <path stroke-width="1.1" d="M176.6 384.4c64.2 26.3 124.4 1.7 124.4 1.7s-22.7-24.6-34.3-34.2c-11.4-9.4-44.8-9-56.2 0a488.7 488.7 0 00-33.9 32.5z"/>
+  <ellipse cx="240" cy="312.5" stroke-width="1.1" rx="17.6" ry="25.6"/>
+  <ellipse cx="240" cy="243.7" stroke-width="1.1" rx="21.3" ry="13.5"/>
+  <circle cx="240" cy="181.3" r="21.3" stroke-width="1.1"/>
+  <path stroke-width="1.1" d="M265.6 101.9s1.8 3-2 10c-18.6 33.5-37.3 34.2-40.8 37.1-4 3.2-5.6 3-5.6 3 .3-2.9.5-14.6.7-15.7 2.9-15.7 26.5-15.5 45-31.5 2.9-2.5 2.7-3 2.7-3z"/>
+  <path d="M265.5 163s4 11.2 4.5 22.5c1 18 18.2 18.5 30 18.5v-10c-8.9 0-16.6-1.3-23-14.5a115 115 0 00-11.5-16.5zm-.5 145s6.3-7.8 13.7-26c3.8-9.5 13-15 21.3-15v-14c-19 0-28.2 7-29.1 17.4-2 21.1-5.9 37.6-5.9 37.6z" transform="translate(-80) scale(1.06667)"/>
+  <use width="100%" height="100%" transform="matrix(-1 0 0 1 480 0)" xlink:href="#leaf"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ne.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ne.svg
new file mode 100644
index 0000000..f470907
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ne.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ne" viewBox="0 0 640 480">
+  <path fill="#0db02b" d="M0 0h640v480H0z"/>
+  <path fill="#fff" d="M0 0h640v320H0z"/>
+  <path fill="#e05206" d="M0 0h640v160H0z"/>
+  <circle cx="320" cy="240" r="68" fill="#e05206"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/nf.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/nf.svg
new file mode 100644
index 0000000..46d7e8f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/nf.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-nf" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="#fff" d="M194.8 0h250.4v480H194.8z"/>
+    <path fill="#198200" d="M0 0h194.8v480H0zm445.2 0H640v480H445.2z"/>
+    <path fill="#198200" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width=".7" d="M313.5 351.3v52.6l21.3.2s-6.8-45.8-3.1-52c3.7-6 7.2-5.2 7.2-5.2s13.9 4.2 15.4 3.5c1.5-.6-.2-5.2 7.2-4.6 2.4-.9 1.1-5 3.3-5.2 2.2-.3 44.5 11.8 53.7.4-2.4-6.4-10.7-.5-12.9-.2-2 0-10.3-4-15.1 0-4.4-3.3-24.4-5.5-24.4-5.5-2.6-2.6 47.6 1.3 50.5-.7 5.9-5.9-11-5.2-13.6-3.3a14.8 14.8 0 00-14.2-.6c-1.7-4.1-18-2.4-27-3.5-3-1.7-2.5-2.7-.5-3.8 19 .8 37.8 3.3 56.8 2.5 5.1-6.7-6.5-9.3-13.6-3.5-4.2-7-12.7-.3-18.4-1-5.7-.6-3-7.6 4.2-6.5 7.2 1 20.1-.4 22.5-3.7s-1.4-6.7-13.3-3.5c-4-4-13 0-17.1 1.3-5.6-3.1-18.5-.5-22.8.6-4.3-2.6 22.5-7 22.5-7 10.4-.2 16.3-2 19.5-2.8 15.7-8.4-.2-9.3-8.4-3.2-5.1-4-10 .3-14.6 1.8a38.2 38.2 0 01-13.4 2c0-.6 12.6-8.3 12.6-8.3s15.3-1.1 18.4-1.5c3-.5 18.8-8.5-2.7-3.1-7.4.6-11.8.2-14.7.4-16.5-1.7 1.6-3.3 1.6-3.3s23.4-2.1 23.7-3.3c.4-9-19.1-4.8-19.3-4.8 0-6.5-18.2.2-18.2 0-3.5-2 2-4.1 2-4.1 4.8-1.2 12-1.6 13.9-3.1 0 0 13.6-.1 15.2-3.7-3.3-9.3-28.8 1.6-32.2 3.2-4.6 0 3-7.4 3.3-7.6.2-.3 21-1.1 30.9-14.5.7-8.1-11.6 4.6-11.6 4.6-1-10.6-13.4.7-20.6 1.5-7.3 1-7.5-3.3-2.5-4 5-.6 10.8-.1 13.6-7.8 2.9-7.7 11.4.4 13-2.4 1.5-2.9-3.1-5.3-3.1-5.3s6.4-6.6-4-6.3c-10.2.2-23.6-1.4-23.6-1.4s10.7-4.1 20.8-4c10 .3 4.6-7.1-5-7.1-9.7 0-14.7-3.3-14.7-3.3l16.4-6.2-1-4.6s9.6-7.7-4-5.9l-15.2 2-27.4 4.1c-.2 0-7.4-2.2-.4-4s31.8-6.7 35.5-5.4c3.7 1.3-.4-9.2-13.6-10.5-13.1-1.3-21.3 3.3-21.3 3.3s-8.5-3.1-.6-5.7c7.9-2.7 20.4.9 20.4.9s14-4.2 2.4-6c-11.6-1.7-15.3 1.6-20.6 1.8-2.1-2.7 18.2-3.3 19.5-5.5-2.2-4-14.8 0-22.2 0-3-1.3-3.3-3.5.3-4.8 7.5-.3 14.6.1 22.1-.2-.2-4 0-8.7-.2-12.8-9.6-1.7-20.8 1.3-26.1 1 1.4-4.3 22-5.5 24.3-6.7 4.8-6-20.1 0-20.4 0-4.3-.6-4-3.4-1.3-5 6.4-.7 20.6 1 19.6-3.4-.8-4-10-1.9-13.6-1-3.8.9-9.3.2-9.3.2-2.3-3.2 21.5-1.9 21.3-4.4-.3-2.8-15.1-.8-20.2-.6-3.9-2.7 19-4.5 19.3-4.8.9-7.3-15.3 0-18.4 0-3 0-1.5-4.6-1.5-4.6s6.3-2.9 6.1-3.3a22 22 0 00-5.2-2c-.5 0 0-5 0-5s5.2-4 4.8-5.1c-.5-1.1-6.2.9-6.2.9v-4.4s4.2-.4 4.6-2.4c.5-2-5-2.2-5-2.2l-2.2-23-2 21.5-7.2 1s5 2.9 6 5.8c.8 2.8-6.2 2-6.2 2s5.7 4.8 6.1 6.5c.5 1.8-7.9 2.2-7.9 2.2s7 5 7.5 7.9c.4 2.8 0 4.4 0 4.4s-11.6-10.1-19-7.3c-4 2 8.8 3 17.2 10.3 0 1.7-20.5-5-21.2-.8.4 1.1 21.9 4.2 23.4 7-7.8.3-24-1.7-23.4.9-1.7 3 15.2 1.3 22.3 3.7 2.1 2.4 1.9 4.4-1.7 4.6-6.9-3.3-22.1-5.7-22.2-1.5.1 1 15.8.4 21.5 4.1-7.6 1.8-33.4-3.5-33.5-1 .7 1.3 4.8 6.5 11.8 6.3 7-.2 23.3 2.8 24.4 5 1 2.2-21.1-4.6-29.4-.6-8.4 4 23.9 1.5 29.1 6.3 5.3 4.9-10.5-.4-10.5-.4s-22-3-25.2-1.5c-3.3 1.5-7 5-7 5s2.2 4.4 4.4 3.5c2.2-.9-.7 2.7-.7 2.7s30.7 7.4 37.5 14c6.8 6.6-39-10.3-39-10.3s-18.5 6.8 1 7.2c-2.2 3.3 1.2 5.3 1.2 5.3s32.4 6.8 35.7 12c3.3 5.3-22.1-5-27.9-7.9-5.7-2.8-21.9 1.8-21.7 2.9.3 1 8 2.6 8.1 4.6.3 2-9.4 2.6-9.4 4.4 0 1.7 41 10.3 52 19.5s-32.2-11-32.2-11 2.4 3.3 0 4.2c-2.5.9-11-12.3-25-4.2-2.6 3.4 12.2 6 16 6.4-1.3 3.3-2.4 4.4 2.8 7.7s-10.3-4.8-10.3-4.4l1.1 5.7c-4.8-4-10.7-5.1-16.2-1.1 0 0-.2 4 5.5 6.4-3.1 6.3 3.5 4.3 14 10.3-15.6-4.1-16.9 3.5-5.7 5.2s41.9 2.9 49.1 12.3c7.3 9.4-10.3-3.6-12.3-4-.4.3-.8 4.9-.8 4.9-4.7-2.7-9-5.2-14.6-6.3-.5.9-.3 2.1-.8 3-5-3.7-9.5-6.2-16.9-6.6l-.9 3.5s-6.1-7.7-18.2 0c-6.7 4.9 25.5 1.8 30.7 7.5 5.3 5.7 1.1 6.6 1.1 6.6l-13.1-4.9s-15.6-2.8-20 .7 64 12 66 21.5c1.4 5-16-5.4-31.1-9.9l-1.8 5s-6-6-12.7-7c-.2 0 1.3 6 1.3 6s-16.8-8-25.4-3.8c-8.5 4.2 29.8 6.4 33.3 10.3 3.5 4-11.6-2.6-13 0-1.2 2.7-19.9-4.8-19.6-1.3.2 3.5 2.6 5.5 2.6 5.5s38.8 3.7 40.1 8.3c1.3 4.6-21.5-2.6-21.5-2.6s-2.2 3.3-.4 4.8c1.7 1.6-13.2-8.7-11.8-2-4.9-1.9-17.4-7.8-15.6-3.2 1.7 4.6 35.3 11.2 35.3 11.2s-14.7 1-14 4.8c-19-11.5-18.5-4.2-18-4 .4.2-24.4-6.1-5.7 4s10 8.3 10.3 8.5c.2.2 2 5 1.5 5-.4 0-12.7-6.5-16.9-7-4.1-.4-23.9 5.5-2.8 14.8s34-2.2 45.6-1c11.6 1.4 17 3.4 16 7-1.1 3.8-11.9-12.1-23.2 1.7-13-2.6-21.7-4-15 5.4-21-7.9-34 2.4-7.4 6.6 26 .8 42-6.4 42-6.4s4.5 8.1 10.8 2.4c6.4-5.7 6.6 2.2 6.8 2.2l6.2-2.6h1.5z"/>
+    <path fill="#fff" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width=".8" d="M316 320.2v-3.7s-8.2-1.5-12.3-.7c-2.3-1.3-4.6-3.1-7.5-1.6-.5 1.2 5.3 4.3 7.2 4.3a41.1 41.1 0 0012.7 1.7zm0 6s-8.3-3.1-11.6.4c.5 3.7 9.7 5.5 11.7 4.5 1.9-1 0-4.8-.1-5zm14 1.4v2.6s9.8 1.9 11.6-.2c1.7-2.1-8-3.5-11.7-2.4zm-.5-10.2l.3 2.9s8.6 1.9 11.9-2.8c3.3-4.7-7.5 0-12.2-.1zm.4-10v2s6.5 1 8-1.8c1.4-2.8-7.8 0-8-.2zm-13.4-6c-1-1.3-4.5-4.8-13.8-5.8-6.5 0 11.7 9.5 13.8 5.9zm13.2-9.7l-.2 2.7s22-6.6 27.1-6.1c4.6-1.3 5.6-4.5 5.4-4.5-4-2.9-22.9 2.3-32.3 7.9zm.5-7.8l-.3 2.6s15.5-3 19.7-6c4.1-3-19.2 3.5-19.4 3.4zm-.6-7.6v2.6s10.3-.4 12.5-2.4c1.3-2.1-9.2-.3-12.5-.2zm21.6 21.7s5.4.8 6.4-.8c-.2-2.8-6.4 1-6.4.8zM330 266.6l.1 5.7s24.9-7.9 26.5-9.3c1.5-1.5 5-6-26.6 3.6zm-.7-7.9v4.2s10-.8 14.6-4.5c4.6-3.8-14.6.4-14.6.3zm-12-9.3l.6 3.7-32.9-10.6c.1 0-1.6-5.4 32.3 6.9zm.5-13.3c0 .4 0 3.6-.2 3.5 0 0-22.8-9.5-23.7-8.7-3-7 24 5.4 24 5.2zm11.1 6l.4 3.1s14-2.9 14.8-4.3c.8-1.4-15.2 1.2-15.2 1.1zm.3 7.4c.2.7.4 3.3.4 3.3s5.6-.5 6.5-1.8c.8-1.3-6.9-1.5-6.9-1.5zm-.8-17v3s15.4-3 17-4.4c1.7-1.5-17.3 1.4-17 1.4zm0-8.5c0 .2-.5 3.1-.1 3.1s18.6-3 21.5-5.7c2.8-2.5-21 2.9-21.3 2.6zm-.2-14.9v3.3s11.8-2.5 14-5c2.2-2.5-14 2-14 1.7zm-2-21.6l.2 4.8s16-2.2 18.2-4.8c2.3-2.7-18.5 0-18.4 0zm-7.4-36.5v3s-7.5-.3-5.7-1.6 5.7-1.1 5.7-1.4zm7 4l.2 4.2s9.7-1 10.4-2.5c.8-1.5-10.4-1.6-10.6-1.6zm-.6 6s.2 2.6.4 2.6 3.9-.3 4.7-1.3c.8-1-4.7-1-5-1.3zm-8.2 11.8c0 .3.3 4 0 3.8s-21.2-6.1-23.2-6c-1.9 0-2.4-4.9 23.2 2.2zm1.7 6.9c0 .7.5 4.6-.3 4.4-.7-.2-14.3-4.5-12.9-5.8 1.4-1.3 13.2 1.7 13.2 1.4zm-1.2 29l.1 3.5s-23.7-7.2-24.5-8.4c-.8-1.2-3.1-6.8 24.4 4.9zm1 8.5v3.3l-32.2-11.3s-2.6-8.4 32.1 8z"/>
+    <path fill="#fff" stroke="#000" stroke-linejoin="round" stroke-width=".8" d="M280.3 328.7l-.2 3.5s-6.2-1.8-8.2-5.3c3.6-1 8.5 1.9 8.4 1.8z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ng.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ng.svg
new file mode 100644
index 0000000..42ee5ad
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ng.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ng" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h640v480H0z"/>
+    <path fill="#008753" d="M426.6 0H640v480H426.6zM0 0h213.3v480H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ni.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ni.svg
new file mode 100644
index 0000000..f77ed63
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ni.svg
@@ -0,0 +1,129 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-ni" viewBox="0 0 640 480">
+  <defs>
+    <linearGradient id="f" x1="498.7" x2="500.6" y1="289.1" y2="283.4" gradientUnits="userSpaceOnUse">
+      <stop offset="0" stop-color="#510000"/>
+      <stop offset=".3" stop-color="#8a0000"/>
+      <stop offset="1" stop-color="#a00"/>
+    </linearGradient>
+    <linearGradient id="g" x1="501.4" x2="502.9" y1="291.4" y2="287.4" gradientUnits="userSpaceOnUse">
+      <stop offset="0" stop-color="#ff2a2a"/>
+      <stop offset="1" stop-color="red"/>
+    </linearGradient>
+    <linearGradient id="b" x1="484.8" x2="484.8" y1="311.7" y2="317.6" gradientUnits="userSpaceOnUse">
+      <stop offset="0" stop-color="#F5F549"/>
+      <stop offset="1" stop-color="#97C924"/>
+    </linearGradient>
+    <linearGradient id="a">
+      <stop offset="0" stop-color="#025"/>
+      <stop offset=".5" stop-color="#04a"/>
+      <stop offset="1" stop-color="#025"/>
+    </linearGradient>
+    <linearGradient id="h" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="v" x1="484.8" x2="484.8" y1="311.7" y2="317.6" gradientUnits="userSpaceOnUse" xlink:href="#b"/>
+    <linearGradient id="o" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="p" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="q" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="r" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="u" x1="484.8" x2="484.8" y1="311.7" y2="317.6" gradientUnits="userSpaceOnUse" xlink:href="#b"/>
+    <linearGradient id="x" x1="98.9" x2="125" y1="1440.2" y2="1440.2" gradientTransform="scale(4.45715 .22436)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="j" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="l" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="m" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="i" x1="444.5" x2="634.4" y1="317.5" y2="317.5" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="s" x1="484.8" x2="484.8" y1="311.7" y2="317.6" gradientUnits="userSpaceOnUse" xlink:href="#b"/>
+    <linearGradient id="y" x1="47.9" x2="61.7" y1="3054.2" y2="3054.2" gradientTransform="scale(9.12405 .1096)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <clipPath id="ni-c">
+      <path d="M500 226.4l-63.7 110.3h127.4z"/>
+    </clipPath>
+  </defs>
+  <path fill="#0067c6" d="M0 0h640v480H0z"/>
+  <path fill="#fff" d="M0 160h640v160H0z"/>
+  <path fill="#c8a400" d="M248 239.5l8 .5v-1.2l-3-.2.2-3.8 3.3-2.4.1-1.5-3.5 2.5c-.1-.8-.6-1.7-1.4-2-.8-.2-1.6-.2-2.3.3-.8.6-1 1.6-1 2.5l-.4 5.3zm1.2-1.1l.3-4c.1-.6.2-1.4.8-1.8a1 1 0 011.5.5c.4 1 .2 2.1.1 3.2l-.1 2.2-2.6-.1zm-.2-11.2l7.8 1.8 1.8-7.6a198 198 0 01-1.1-.2l-1.5 6.4-2.4-.5 1.4-5.8-1.1-.3-1.4 5.8-2-.5 1.4-6.2-1.2-.2-1.7 7.3zm2.8-10.5l7.6 2.7.4-1.1-3-1 1.2-3.5c.2-1 .4-2-.1-3a2.5 2.5 0 00-2-1c-1 0-1.6.7-2 1.5-.6 1-1 2.2-1.3 3.4l-.8 2zm1.5-.7l1.2-3.4c.3-.6.6-1.3 1.3-1.5a1 1 0 011.2.9c.2 1-.3 2-.6 3l-.7 1.9-2.4-.9zm2.7-9l4.3 2.6c.8.4 1.8.6 2.7.2a6.5 6.5 0 002.4-3c.4-1 .8-2.2.2-3.2-.6-1-1.7-1.4-2.7-2l-2.7-1.6-.6 1 4 2.4c.7.4 1.2 1 1.1 1.9a6 6 0 01-1.2 2.5c-.4.6-1.2 1.1-2 1-.8-.2-1.5-.8-2.2-1.2l-2.7-1.5-.6 1zm5.8-9.3l6.3 4.8 3-3.8c.6-.9 1-2 .7-3a2.5 2.5 0 00-2-1.4c-.5 0-1 .3-1.2.4.2-.9-.5-1.7-1.2-1.9-1-.3-2 .3-2.6 1l-2 2.5-1 1.4zm1.6-.3c.7-1 1.4-2 2.2-2.8.4-.4 1-1 1.5-.6.5.2.7.9.4 1.3-.4.9-1 1.5-1.6 2.3l-.8 1.1-1.7-1.3zm2.6 2l2.3-3c.4-.4 1-1 1.6-.8.6.1 1 .7.8 1.3-.3 1-1.1 1.8-1.8 2.7l-1 1.3-2-1.5zm3-10.2l5.5 5.8 4.7-4.5-.8-.8-3.8 3.6h-.1l-4.7-5zm7-6.2l4.9 6.3 1-.7-5-6.3zm7.2-4.9a6.7 6.7 0 00-2 1.8 3.6 3.6 0 00-.1 4.2 4.1 4.1 0 001.6 1.5 3.6 3.6 0 002 .4 6.5 6.5 0 002.7-1 5.4 5.4 0 002-2c.4-.8.5-1.6.3-2.4l-1 .4c.2 1.6-.8 2.4-2 3-1.8 1.2-3.5 1.1-4.6-.5-1.1-1.9 0-3.4 1.6-4.4 1.1-.7 2.2-1.2 3.2-.5l.9-.8a3.2 3.2 0 00-2-.6c-.9 0-1.7.4-2.6 1zm9.5-4.7l-.9 9 1.3-.5.2-2.8 4-1.6 2.2 1.8 1.2-.5-6.8-5.9-1.2.5zm1 1l2.7 2.2-3 1.2.3-3.5zm16.5-6l.5 8 4.3-.2c1.2-.2 2.4-.4 3.1-1.4 1-1 1.2-2.7.7-4.1a3.5 3.5 0 00-2.7-2.4c-1.2-.2-2.4 0-3.6 0l-2.3.2zm1.2 1.1l3.5-.1a3 3 0 011.8.5c.8.6 1.3 1.5 1.2 2.5a2.7 2.7 0 01-2 2.4c-.6.2-1.3.2-1.9.3l-2.2.1-.4-5.7zm10-1.5l-.5 8 7.8.4v-1.1l-6.6-.4.1-2.4 6 .3v-1.1l-5.9-.3.1-2.2 6.4.4v-1.2l-7.5-.4zm20.8 3.3l-2.9 7.5 1 .4 2.4-6v-.2l.2.3 2.8 8 1.3.5 2.9-7.5-1-.4-2.3 6-.1.2-.2-.3-2.7-8zM353 176l-3.7 7-1-.5 3.6-7.1zm6 3.5a6.7 6.7 0 00-2.4-1 3.6 3.6 0 00-4 1.5 4.1 4.1 0 00-.6 2.1c0 .7.1 1.4.6 2.1.4.7 1 1.3 2 2a6 6 0 002.7 1 3.5 3.5 0 002.2-.7l-.8-.9c-1.4 1-2.5.3-3.6-.4-1.8-1.2-2.5-2.8-1.4-4.5 1.2-1.8 3.1-1.3 4.7-.3 1 .7 2 1.5 1.8 2.7l1 .4a3.2 3.2 0 00-.3-2c-.4-.8-1-1.4-1.9-2zm7.6 5.7l-8.3 3.4 1 .9 2.6-1 3.3 2.8-.7 2.7 1 .9 2.1-8.8-1-.9zm-.3 1.4l-.8 3.4-2.5-2 3.3-1.4zm6.4 4.2l-6.2 5 .7 1 2.5-2 2.4 3-.7 4 .9 1.1.8-4.2c.7.5 1.7.8 2.5.4.7-.4 1.4-1 1.4-1.8 0-1.1-.7-2-1.3-2.8l-3-3.7zm-.2 1.6l2.6 3.2c.4.6.9 1.4.4 2-.3.6-1.1.6-1.6.2-1-.7-1.6-1.7-2.4-2.6l-1-1.1 2-1.7zm9.5 11.1l-9 .4.7 1.2 2.8-.1 2.2 3.8-1.6 2.3.7 1.2 4.9-7.6-.7-1.2zm-.7 1.2l-2 3-1.5-2.8 3.5-.2zm5.9 9.4c-.5-1.3-1.3-2.7-2.7-3.4a3.8 3.8 0 00-4.5 1c-1 1-1 2.5-.7 3.9.3 1.5 1 3 2 4.1l-.6.2.4 1.1 3.8-1.3-1.5-4.1-.8.3 1 3-1.2.5a7 7 0 01-2.1-3.8c-.3-1.1-.3-2.4.5-3.2 1-1 2.6-1.3 3.7-.5s1.7 2.1 2 3.4c.3.9.2 1.9-.4 2.6-.2 0 0 .3.1.4l.3.5a2.8 2.8 0 001.1-2.2 7 7 0 00-.4-2.5zm2.3 6.3l-4.5.8a4.1 4.1 0 00-1.9.8 2.5 2.5 0 00-.8 1.5v2.4c.3 1 .6 1.7 1 2.3.3.6.7 1 1.2 1a4 4 0 002 0l4.5-.8-.2-1.1-4.4.8c-2 .4-2.6-.6-3-2.4-.3-1.8 0-3 1.9-3.3l4.4-.9-.2-1.1zm2.4 13.6l-8.3-3.6.1 1.4 2.6 1 .3 4.4-2.4 1.5.1 1.3 7.7-4.7-.1-1.3zm-1.2.7l-3 1.9-.2-3.2 3.2 1.3zm-136.5 20l-1.2.3 1.3 4.9 1.2-.3zm131.6 0l1.2.3-1.3 4.9-1.2-.3zm-119.2 20.5l-9 1 .8 1.1 2.8-.3 2.4 3.6-1.4 2.5.8 1 4.3-7.8-.7-1.1zm-.7 1.3l-1.7 3-1.8-2.6 3.5-.4zm4.1 3.6l-5.7 5.3.8.8 4.8-4.5-2.6 7 1 .9 6.8-2-4.7 4.3.8.8 5.7-5.3-1.2-1.2-7 2 2.6-6.7zm8.3 8.4l-4.8 6.5 6.2 4.6.7-.9-5.3-4 1.5-2 4.7 3.7.7-1-4.7-3.5 1.3-1.7 5 3.8.7-1-6-4.5zm7.8 5.8l-3.7 7 1 .6 1.5-2.8 3.4 1.8.8 4 1.3.7-.9-4.2c.9.3 2 .1 2.5-.6.5-.6.9-1.3.6-2.1-.2-1-1.3-1.6-2.1-2.1l-4.4-2.3zm.5 1.5l3.6 2c.6.4 1.3.9 1.2 1.6 0 .7-.7 1-1.3.9-1.2-.2-2.2-.9-3.2-1.4l-1.5-.8 1.2-2.3zm8.6 3.2l-3 7.4 1 .5 3-7.4zm7.2 2.5a6.7 6.7 0 00-2.6-.4 3.6 3.6 0 00-3.4 2.6 4.1 4.1 0 000 2.1c0 .8.4 1.4 1 2a6 6 0 002.4 1.3 5.4 5.4 0 002.9.2 3.4 3.4 0 002-1.2l-1-.6c-1 1.3-2.3 1-3.6.5-2-.7-3.1-2-2.5-4 .7-2 2.7-2 4.4-1.5 1.2.4 2.3 1 2.4 2.1l1.2.2a3.2 3.2 0 00-.9-2 5.4 5.4 0 00-2.3-1.3zm8 1.8l-5.2 7.3 1.3.2 1.6-2.3 4.4.7.9 2.6 1.3.2-3-8.5-1.3-.2zm.5 1.3l1.2 3.4-3.2-.5 2-2.9zm18.3-1.2c-1 .1-1.7.4-2.4.9a3.6 3.6 0 00-1.7 3.9c.1.7.4 1.3 1 2 .4.5 1 .8 1.8 1 .7.2 1.7.2 2.8 0 1-.2 2-.6 2.6-1.2a3.4 3.4 0 001.1-2h-1.2c-.3 1.6-1.5 2-2.8 2.2-2.1.4-3.7-.3-4.1-2.3-.4-2.1 1.3-3.1 3-3.5 1.3-.2 2.5-.3 3.2.7l1-.4a3.2 3.2 0 00-1.6-1.3 5.4 5.4 0 00-2.7 0zm5.3-1l2.3 7.7 7.5-2.2-.4-1.1-6.3 1.9-.7-2.4 5.7-1.7-.3-1-5.7 1.6-.6-2 6-1.8-.3-1.1-7.2 2.1zm8.7-2.7l3.3 7.3 1-.5-2.8-6 7.8 3.5h.5l1-.5-3.4-7.3-1 .5 2.8 6-8-3.6-1.2.6zm8.8-4.1l.6 1 2.8-2h.2l3.7 5.7 1-.7-3.7-5.6v-.1l2.9-2-.6-.9zm8-5.6l5.4 6 .9-.9-2.1-2.3 2.8-2.6 4 .6 1.2-1-4.3-.6c.5-.7.7-1.8.2-2.6-.4-.7-1-1.3-1.9-1.2-1 0-2 .8-2.7 1.4l-3.5 3.3zm1.6.1l3-2.8c.6-.4 1.4-.9 2-.5.7.3.7 1.1.3 1.6-.6 1-1.5 1.7-2.4 2.6l-1.1 1-1.8-2zm7.7-9.4l3.6 8.3.8-1-1-2.6 2.7-3.4 2.7.6.9-1-8.8-2-.9 1.1zm1.4.3l3.5.7-2 2.5-1.5-3.2zm2.1-4.8l6.7 4.3 3.5-5.4-1-.6-2.7 4.3-.1.2h-.1l-5.7-3.8z"/>
+  <g clip-path="url(#ni-c)" transform="matrix(.8 0 0 .8 -80 0)">
+    <path fill="#fff" d="M500 226.4l-31.5 54.5-15.4 26.7h93.8l-14.7-25.4-32.2-55.8z"/>
+    <g id="e">
+      <g id="d">
+        <path fill="#17c0eb" stroke="#17c0eb" stroke-width=".1" d="M500 226.4l-2.4 4 2.4 55 2.4-55z" opacity=".6"/>
+        <path fill="#fff" d="M500 277.5h-.1l.1 3 .1-3h-.1z"/>
+      </g>
+      <use width="100%" height="100%" transform="rotate(72 500 285.5)" xlink:href="#d"/>
+      <use width="100%" height="100%" transform="rotate(144 500 285.5)" xlink:href="#d"/>
+      <use width="100%" height="100%" transform="rotate(-144 500 285.5)" xlink:href="#d"/>
+      <use width="100%" height="100%" transform="rotate(-72 500 285.5)" xlink:href="#d"/>
+    </g>
+    <use width="100%" height="100%" transform="rotate(8 500 285.5)" xlink:href="#e"/>
+    <use width="100%" height="100%" transform="rotate(16 500 285.5)" xlink:href="#e"/>
+    <use width="100%" height="100%" transform="rotate(24 500 285.5)" xlink:href="#e"/>
+    <use width="100%" height="100%" transform="rotate(32 500 285.5)" xlink:href="#e"/>
+    <use width="100%" height="100%" transform="rotate(40 500 285.5)" xlink:href="#e"/>
+    <use width="100%" height="100%" transform="rotate(48 500 285.5)" xlink:href="#e"/>
+    <use width="100%" height="100%" transform="rotate(56 500 285.5)" xlink:href="#e"/>
+    <use width="100%" height="100%" transform="rotate(64 500 285.5)" xlink:href="#e"/>
+    <path fill="red" d="M500 265.8a44.2 44.2 0 00-29 10.8L456.4 302a45 45 0 00-.8 8.3h5a39.4 39.4 0 0178.7 0h5a45 45 0 00-.7-8.3L529 276.6a44.3 44.3 0 00-29-10.8z"/>
+    <path fill="#f60" d="M500 266.7a43.5 43.5 0 00-30.3 12.2l-12 20.9a43.6 43.6 0 00-1.3 10.4h4.3a39.4 39.4 0 0178.6 0h4.3a43.9 43.9 0 00-1.3-10.5l-12-20.8a43.5 43.5 0 00-30.3-12.2z"/>
+    <path fill="#ff0" d="M500 267.5a42.7 42.7 0 00-32 14.3l-8.7 15a42.7 42.7 0 00-2 13.5h3.3a39.4 39.4 0 0178.7 0h3.5c0-4.7-.8-9.2-2.1-13.4l-8.8-15.1a42.6 42.6 0 00-31.9-14.3z"/>
+    <path fill="#0f0" d="M500 268.3a42 42 0 00-34.9 18.6l-2.8 4.9a41.8 41.8 0 00-4.3 18.5h2.7a39.4 39.4 0 0178.6 0h2.7a41.8 41.8 0 00-4.3-18.5l-2.8-5a42 42 0 00-34.9-18.6z"/>
+    <path fill="#0cf" d="M500 269a41.2 41.2 0 00-41.2 41.3h1.9a39.4 39.4 0 0178.6 0h1.9A41.2 41.2 0 00500 269z"/>
+    <path fill="#00f" d="M500 269.8a40.4 40.4 0 00-40.4 40.4h1.4a39 39 0 1178 0h1.4A40.4 40.4 0 00500 270z"/>
+    <path fill="purple" d="M500 270.7a39.6 39.6 0 00-39.6 40.3h.8v-.8a38.8 38.8 0 1177.6.8h.8v-.8a39.6 39.6 0 00-39.6-39.6z"/>
+    <path fill="#510000" d="M500.4 288.1c-.7 0-1.2-.5-1.8-.6a2.2 2.2 0 00-.7 2.1c.3.1.3.4.9.9s.5.7.4 2c0 .4.1 1.5.6 1.6.5.1 1-.3 1.1-1.2.1-.7.4-1.2.7-1.6.3-1.9-.2-2.6-1.2-3.2z"/>
+    <path fill="red" d="M497.2 283.5c-.6 0-1.6 1-2 .5-.2-.3-.3-.9 0-1.4a4.8 4.8 0 012.2-2.3c2.3-1.4 3.9-1 5 1 1.1 1.8 2.2 3.8 2.3 5.4 0 .5.3 1.4-.2 1.9-1.3 1.4-4.6-1.5-6.5-1-.6.1-1.4.6-2 .2-.4-.3 0-1 .3-1.3.6-.5 1.5-2.4 1.4-3.2 0-.4 0 .2-.5.2z"/>
+    <path fill="url(#f)" d="M497 282.6c-1.2.4-1 1-1.6 1.5.2.1.8.3 1.4-.3.2-.2.5-.3.7-.3l-.7.7a5.2 5.2 0 00-1.4 1.8c-.3.8-.4 1.7-.3 1.8 0 0 .4.8 1.5 1.2 2 .8 2.4 2.5 4.5 2.5 1.6 0 1.4-1.1 2.7-.9 1 .2 1.7-.7.6-1.2a14 14 0 00-5.4 0c-.4-4 0-2.6-.1-4.4-.1-1.7-.7-1.8 0-3.3-.5 1-1.2.8-2 .8z"/>
+    <path fill="#ff2a2a" d="M501 279.8l-.1.6.3 1 .2 1c0 .3.4.4.7.6.4.3 0 1 .3 1.1.2 0 .5-1 .5-1.2v-.7a15.3 15.3 0 00-.5-.9 3.6 3.6 0 00-.2-.3 4.2 4.2 0 00-.8-.9 4 4 0 00-.3-.2l-.2-.1z"/>
+    <path fill="url(#g)" d="M501.3 287.4l-2-.7c-1.3-.4-2.6-1.2-3.5-.8-.3.1-.3.4-.4.9 0 .5-.5 1.3 0 1 .6-.4 2.4.8 3 1.1.3.2 1 .6 1.1 1 .2.6 0 1.8 0 2.4 0 .5.2 1.8.7 2 .6.1 1.1-.4 1.3-1.3.3-.9.4-1.4.8-1.9s.8-.8 1.3-.9c.6 0 1.4.5 1.4-.2 0-.4-.4-.8-.2-1.4.1-.5-.4-.4-.9-.6l-2.7-.6z"/>
+    <path fill="#910000" d="M498.4 288.9c-.4-.2-2.3-1.5-3-1-.3 0-.4 0-.4-.3l.2-.9c0-.3.2-.8.5-1 .7-.6 2.3.5 3.1.8l-.4 2.4z"/>
+    <path fill="#ff3a3a" d="M501.8 291.4c.9-1.6 1.5-1.4 2.6-1.4.4 0 .5-.3.4-.7-.3.6-1.7 0-2.5.3-1.5.7-1.2 3.7-2 4 .8.7 1.1-1.7 1.5-2.2z"/>
+    <g fill="url(#h)">
+      <path fill="#fff" d="M453.1 307.6l-10 17.3H557l-10-17.2h-93.8z"/>
+      <g id="n" fill="url(#i)">
+        <path id="k" fill="url(#j)" d="M449.7 321.4a36 36 0 00-4.7.3l-.5.9c2.4-.3 4.7-.7 7.2-.7 3.2 0 6.2.8 9.7.8h4.6c3.5 0 6.4-.8 9.7-.8 3.3 0 6.3.8 9.8.8h4.6c3.5 0 6.4-.8 9.7-.8 3.3 0 6.3.8 9.8.8h4.5c3.5 0 6.5-.8 9.8-.8 3.3 0 6.3.8 9.8.8h4.5c3.5 0 6.5-.8 9.8-.8 2.6 0 5 .5 7.5.7l-.5-1a38 38 0 00-4.4-.2h-4.5c-3.5 0-6.5.7-9.8.8-3.3 0-6.3-.8-9.8-.8H522c-3.5 0-6.5.7-9.8.8-3.3 0-6.3-.8-9.8-.8H498c-3.5 0-6.5.7-9.8.8-3.3 0-6.3-.8-9.8-.8h-4.5c-3.5 0-6.5.7-9.8.8-3.3 0-6.2-.8-9.7-.8h-4.6z"/>
+        <use width="100%" height="100%" y="-1.1" fill="url(#l)" xlink:href="#k"/>
+        <use width="100%" height="100%" y="-2.2" fill="url(#m)" xlink:href="#k"/>
+      </g>
+      <use width="100%" height="100%" y="-3.3" fill="url(#o)" xlink:href="#n"/>
+      <use width="100%" height="100%" y="-6.7" fill="url(#p)" xlink:href="#n"/>
+      <path fill="url(#q)" d="M453.2 307.5v.2h93.7l-.1-.2h-93.6zm-.2.3l-.1.3H547l-.1-.3h-94zm-.2.4l-.2.3h94.8l-.2-.3h-94.4zm-.3.5l-.3.5h95.6l-.3-.5h-95zm-.4.7l-.3.5h96.4l-.3-.5h-95.8zm-.4.7l-.2.4h97l-.2-.4h-96.6zm-.4.7l-.2.4H549l-.3-.4h-97.4zm-.4.7l-.3.6h98.8l-.3-.6H451z"/>
+      <path fill="url(#r)" d="M457.4 312.3c3.4.7 3.7 0 3.7 0zm81.5 0s.3.7 3.7 0z"/>
+    </g>
+    <g fill="#ccd11e">
+      <g id="t">
+        <path fill="url(#s)" d="M530.6 297c-1.7 0-2.2.9-2.2.9-2.7 10.6-11.8 21.3-22.6 21.3h-8V330h61.4l-6.2-11c-9.7-1.4-17.6-11.3-20.1-21.1 0 0-.6-.9-2.3-.9z"/>
+        <path fill="#97c924" d="M530.6 297.5c-.8 0-1.2.1-1.5.3l-.3.3a33.6 33.6 0 01-8.4 14.7c-4 4.1-9 6.9-14.6 6.9h-7.7v9.9H559l-5.7-10c-4.7-.7-9-3.2-12.4-6.8a33.6 33.6 0 01-8.4-14.7l-.3-.3a2.8 2.8 0 00-1.6-.3z"/>
+        <path fill="#ede71f" d="M530.6 297.5h.4v10.8a13 13 0 01-2 6.4c-.5 1.6-1 1-2.3 2.9a25.4 25.4 0 01-5.2 1.2c-2.5.4-8 .8-10.9.1a23 23 0 009.8-6 30.6 30.6 0 002.1-2.5 33.7 33.7 0 003-4.4l1-2a33.9 33.9 0 001.3-2.9 29.8 29.8 0 001-3l.3-.3.6-.2 1-.1z"/>
+        <path fill="#c6cb24" d="M530 298.9c-.5 6-2.3 13.2-6.7 17.8-1.6 1.3-3.7 2.6-5.6 2.3 6.7-5.5 10.8-14 12.2-20.1z"/>
+        <path fill="#9ecb34" d="M524.5 309.3c-1 2.7-4.8 6.7-8.8 10h-2.9c2.5-.2 8.3-5 11.7-10z"/>
+      </g>
+      <use width="100%" height="100%" x="-15.3" xlink:href="#t"/>
+      <g fill="#c6cb24">
+        <path fill="url(#u)" d="M502.2 298c2.8 10.5 11.8 21.2 22.6 21.2h8.1V330h-65.8v-10.8h8c10.8 0 19.9-10.7 22.6-21.3 0 0 .6-.8 2.3-.8 1.7 0 2.2.8 2.2.8z"/>
+        <path fill="#97c924" d="M500 297.5c.8 0 1.2.2 1.5.3l.3.3a33.6 33.6 0 008.4 14.7c4 4.1 9 6.9 14.6 6.9h7.7v9.9h-65v-10h7.7c5.5 0 10.6-2.7 14.6-6.8a33.6 33.6 0 008.3-14.7l.3-.3a3 3 0 011.6-.3z"/>
+        <path fill="#ede71f" d="M499.3 297.5a3.4 3.4 0 00-.3 0l-.6.3-.3.3a28.9 28.9 0 01-1 3 34.2 34.2 0 01-1.2 3 34.2 34.2 0 01-1 1.9 33.6 33.6 0 01-3 4.4 30.7 30.7 0 01-2.1 2.4 23 23 0 01-9.8 6.1c2.8.7 4 0 6.5-.4 2-.3 4.2-.6 6-1.2 1.5-2 1-1.3 1.5-2.9 1.2-2.2 3-4.2 3.4-6.7 1.6-3 1.9-8.6 1.9-10.2z"/>
+        <path d="M499.3 298.9c-.4 6-2.3 13.2-6.7 17.8-1.6 1.3-3.6 2.6-5.6 2.3 6.8-5.5 10.9-14 12.3-20.1z"/>
+        <path fill="#9ecb34" d="M493.8 309.3a31 31 0 01-8.8 10h-2.8c2.5-.2 8.2-5 11.6-10z"/>
+        <path fill="#ede71f" d="M501 297.6l.5.2.4.3a32.3 32.3 0 001 3 33.6 33.6 0 001.2 3l1 1.9a33.6 33.6 0 003 4.4 30.7 30.7 0 002.1 2.4 24 24 0 009.8 6.5c-7.3 0-10.4-.6-13-4a19 19 0 01-4.2-7c-.5-2-2-6.5-1.9-10.7z"/>
+        <path d="M501.5 298.9c.4 6 2.2 12 6.6 16.6 1.6 1.4 3.6 2.6 5.6 2.3a31.1 31.1 0 01-12.2-18.9z"/>
+      </g>
+      <g id="w">
+        <path fill="url(#v)" d="M484.8 297c-1.8 0-2.3.9-2.3.9-2.5 9.8-11.8 22.3-21.5 23.8l-4.8 8.3h49v-11.3c-8.8-2.4-15.9-11.7-18.2-20.8 0 0-.5-.8-2.3-.8z"/>
+        <path fill="#97c924" d="M484.8 297.5c-.8 0-1.3.2-1.6.3l-.3.3a43.4 43.4 0 01-8.1 15c-3.4 4.3-9.7 8.6-14 9l-4.3 7.5h48v-10.7a23.2 23.2 0 01-9.5-6 33.6 33.6 0 01-8.4-14.8l-.3-.3a2.9 2.9 0 00-1.5-.3z"/>
+        <path fill="#93bc30" d="M483.4 298.9c-.6 9-5.6 20.5-11.3 22.4-1.9.7-5.1.9-6.2 1a36 36 0 0017.6-23.4z"/>
+        <path fill="#ede71f" d="M484.8 297.5h-.5v10.8c0 2.3.9 4.2 2 6.4l.2.5c.5 1.1.8 1.5 2.3 2.7a22 22 0 0014.8 4c-1.1-.9-2.3-1.7-3.4-2.4l4.5-.5a23 23 0 01-9.7-6.2 30.5 30.5 0 01-1.4-1.5l-.6-.8a35 35 0 01-3.2-4.5 34.2 34.2 0 01-1-2 34 34 0 01-1.6-3.9 31.7 31.7 0 01-.6-2l-.3-.3a2.2 2.2 0 00-.6-.2 3.6 3.6 0 00-1-.1z"/>
+        <path d="M485.4 298.9c.5 6 2.3 13.2 6.7 17.8 1.6 1.3 3.6 2.6 5.6 2.3a38.5 38.5 0 01-12.3-20.1z"/>
+        <path fill="#9ecb34" d="M489.6 307.3a35 35 0 0014.6 14.9h2.5c-4.4-2.4-11.5-5.8-17-15z"/>
+      </g>
+      <use width="100%" height="100%" x="-15.4" fill="#c6cb24" xlink:href="#w"/>
+    </g>
+    <path fill="#fff" d="M556.5 324.7c-.6.2-4.4-.2-6.4 0l-1.3.3h-3.3c-3.6 0-6.7 1-10.1 1-3.4 0-6.5-1-10-1H522c-3.6 0-6.7 1-10.1 1-3.4 0-6.5-1-10-1h-3.4c-3.6 0-6.7 1-10 1-3.5 0-6.5-1-10.1-1H475c-3.6 0-6.6 1-10 1-3.5 0-6.5-1-10.1-1h-3.4c-2.8 0-6.2.6-8.9.8l-6.3 10.9h127.4z"/>
+    <path fill="url(#x)" d="M548 323.1h-.6c-3.2.1-5.6 1.1-11.2 1.1s-6.2-1-12.6-.8c-6 0-8.4 1.2-11.7 1.2-3.2 0-8.4-.7-12.5-.3-4 .4-8.8 1.3-12 1.3-3.9 0-7.8-.7-11.8-.3-4.1.4-6 1.5-11.1 1.5-4.4 0-9-.7-12.8-.7-3.4 0-7.2 1-10 1.4l-.9 1.5c2.3-.3 8.6-1.3 10.8-1.3 2.4 0 10.7.5 15.3.3 4.7-.1 5.2-1.2 10.7-1.2 3.8 0 6.6.4 10.5.4 2.5 0 4.7-1.2 8.4-1.2l2.8-.1c3.1-.5 8.4 0 12 .2 3.3.2 5.5-.6 9-.7l4.4-.1c3.5-.2 6.4.6 9.7.6 3.2-.2 6.4-1 9.8-1l4.5-.2c2.3 0 5.9 0 8.3.5l-.8-1.4c-2.4-.1-5.3-.7-8.2-.7z"/>
+    <g id="A">
+      <path id="z" fill="url(#y)" d="M450.3 334.8c-3.4 0-6.4.8-9.6.9a31.8 31.8 0 01-3.6-.3l-.5.8h6c3.5 0 6.4-.8 9.6-.9 3.3.1 6.2 1 9.7 1h4.5c3.4 0 6.4-.9 9.6-1 3.3.1 6.3 1 9.7 1h4.5c3.5 0 6.4-.9 9.7-1 3.2.1 6.1 1 9.6 1h4.5c3.4 0 6.4-.9 9.7-1 3.2.1 6.2 1 9.6 1h4.5c3.5 0 6.4-.9 9.6-1 3.3.1 6.2 1 9.7 1h4.5l1.8-.1-.5-.8c-1 .1-2.1.3-3.2.3-3.3 0-6.2-1-9.7-1h-4.5c-3.4 0-6.4 1-9.6 1-3.3-.1-6.2-1-9.7-1h-4.5c-3.4 0-6.4 1-9.6 1-3.3-.1-6.2-1-9.7-1h-4.5c-3.5 0-6.4 1-9.6 1-3.3-.1-6.2-1-9.7-1h-4.5c-3.4 0-6.4 1-9.6 1-3.3-.1-6.2-1-9.7-1h-4.5z"/>
+      <use width="100%" height="100%" y="-1.3" xlink:href="#z"/>
+      <use width="100%" height="100%" y="-2.6" xlink:href="#z"/>
+    </g>
+    <use width="100%" height="100%" y="-3.9" xlink:href="#A"/>
+    <use width="100%" height="100%" y="-7.7" xlink:href="#A"/>
+    <path fill="#97c924" d="M443.9 324.7l-2.5 4.2c2.9-.5 7.1-1.7 10.7-1.7 3.6 0 8 .9 12.4 1 5 0 7-1.2 11-1.6 4.1-.4 8 .5 12 .6 3.1 0 7.9-1.1 12-1.5 4-.5 7.7.3 12.5.3 4.9.1 5.7-1.2 11.6-1.3 6.4-.1 7 .9 12.6.9 4.2.2 7.9-.9 11.7-1.1 3.8-.3 5.5 0 8.3 0l-1.9-3.2-101.3 2.3z"/>
+    <path fill="#fff" d="M550 324.6l4 .3a91.4 91.4 0 002.9.3l-.4-.5c-.6.2-4.4-.2-6.4 0z"/>
+  </g>
+  <path fill="#c8a400" d="M320 179.9l-25.7 44.5L268 270h104l-25.7-44.6L320 180zm0 2.4l25.2 43.7 24.7 42.8h-99.8l25.2-43.8z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/nl.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/nl.svg
new file mode 100644
index 0000000..2026937
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/nl.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-nl" viewBox="0 0 640 480">
+  <path fill="#21468b" d="M0 0h640v480H0z"/>
+  <path fill="#fff" d="M0 0h640v320H0z"/>
+  <path fill="#ae1c28" d="M0 0h640v160H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/no.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/no.svg
new file mode 100644
index 0000000..56e78e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/no.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-no" viewBox="0 0 640 480">
+  <path fill="#ed2939" d="M0 0h640v480H0z"/>
+  <path fill="#fff" d="M180 0h120v480H180z"/>
+  <path fill="#fff" d="M0 180h640v120H0z"/>
+  <path fill="#002664" d="M210 0h60v480h-60z"/>
+  <path fill="#002664" d="M0 210h640v60H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/np.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/np.svg
new file mode 100644
index 0000000..4e151e4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/np.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-np" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="np-a">
+      <path fill-opacity=".7" d="M0-16h512v512H0z"/>
+    </clipPath>
+  </defs>
+  <path fill="#fff" d="M0 0h640v480H0z"/>
+  <g clip-path="url(#np-a)" transform="translate(0 15) scale(.9375)">
+    <g fill-rule="evenodd">
+      <path fill="#ce0000" stroke="#000063" stroke-width="13.8" d="M6.5 489.5h378.8L137.4 238.1l257.3.3L6.6-9.5v499z"/>
+      <path fill="#fff" d="M180.7 355.8l-27 9 21.2 19.8-28.5-1.8 11.7 26.2-25.5-12.3.5 28.6-18.8-20.9-10.7 26.6-9.2-26.3-20.3 20.6 1.8-27.7L49 409l12.6-25-29.3.6 21.5-18.3-27.3-10.5 27-9L32.2 327l28.4 1.8L49 302.6l25.6 12.3-.5-28.6 18.8 20.9 10.7-26.6 9.1 26.3 20.4-20.6-1.9 27.7 27-11.4-12.7 25 29.4-.6-21.5 18.3zm-32.4-184.7l-11.3 8.4 5.6 4.6a93.8 93.8 0 0030.7-36c1.8 21.3-17.7 69-68.7 69.5a70.6 70.6 0 01-71.5-70.3c10 18.2 16.2 27 32 36.5l4.7-4.4-10.6-8.9 13.7-3.6-7.4-12.4 14.4 1-1.8-14.4 12.6 7.4 4-13.5 9 10.8 8.5-10.3 4.6 14 11.8-8.2-1.5 14.3 14.2-1.7-6.7 13.2 13.7 4z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/nr.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/nr.svg
new file mode 100644
index 0000000..cfdc0d1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/nr.svg
@@ -0,0 +1,12 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-nr" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="nr-a">
+      <path fill-opacity=".7" d="M-54.7 0H628v512H-54.7z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#nr-a)" transform="translate(51.3) scale(.9375)">
+    <path fill="#002170" d="M-140 0H884v512H-140z"/>
+    <path fill="#ffb20d" d="M-140 234.1H884V278H-140z"/>
+    <path fill="#fff" d="M161.8 438l-33-33-10.5 45.4-12-45-31.9 34 12.1-45L42 407.9l33-33-45.4-10.6 45-12-34-31.8 45 12L72 288l33 33 10.6-45.4 12 45 31.8-34-12 45 44.5-13.5-33 33 45.4 10.5-45 12 34 32-45-12.2z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/nu.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/nu.svg
new file mode 100644
index 0000000..b38585e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/nu.svg
@@ -0,0 +1,26 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-nu" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="nu-a">
+      <path fill-opacity=".7" d="M0 0h496v372H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#nu-a)" transform="scale(1.2902)">
+    <path fill="#fff" fill-rule="evenodd" d="M0 0h499.6v248.1H0z"/>
+    <path fill="#c00" d="M0 0v18.6L119.2 80l44.9 1.3L0 0z"/>
+    <path fill="#006" d="M51 0l144.6 75.5V0H51z"/>
+    <path fill="#c00" d="M214.9 0v96.4H0v55h215v96.4h66v-96.4h215v-55H281V0h-66z"/>
+    <path fill="#006" d="M300.2 0v71.1L441.6.6 300.2 0z"/>
+    <path fill="#c00" d="M304.7 78.9l39.8-.3L498.9.6l-41 .6L304.8 79z"/>
+    <path fill="#006" d="M0 167.5v52.8L99.2 168 0 167.6z"/>
+    <path fill="#c00" d="M381.9 169.7l-41.4-.3 155.8 77.5-1-17.7-113.5-59.5zM38.7 248.3l146.1-76.8-38.3.3L0 248.1"/>
+    <path fill="#006" d="M497.9 21.8l-118 58.5 116.4.5v87.1h-99.1l98.2 53.3 1.4 27-52.4-.6-143.6-70.5v71.2H196V177L61.3 248l-60.9.2V496H992V.4L499 0M.6 28L0 79.4l104.4 1.3L.5 28z"/>
+    <g fill="#ffd900" fill-rule="evenodd" stroke-width="1pt">
+      <path d="M496 0h496.1v496h-496z"/>
+      <path d="M0 248h523.5v248H0z"/>
+    </g>
+    <g fill-rule="evenodd">
+      <path fill="#000067" d="M290.9 125.3a42.8 42.8 0 11-85.5 0 42.8 42.8 0 0185.5 0z"/>
+      <path fill="#fff40d" d="M240.2 114.3l8.2-24.6 8.2 24.6h26.7l-21.6 15.2L270 154l-21.6-15.3-21.6 15.2 8.3-24.5-21.6-15.2zm148.5 4l4.1-11.5 4 11.6h13.3l-10.7 7 4.1 11.5-10.7-7-10.7 7 4.1-11.5-10.7-7zM244.1 204l4-11.5 4.1 11.5h13.2l-10.7 7 4.1 11.6-10.7-7.1-10.7 7 4.1-11.4-10.7-7.1zm0-167l4-11.6 4.1 11.5h13.2L254.7 44l4.1 11.5-10.7-7-10.7 7 4.1-11.5-10.7-7zM98.9 118.2l4.1-11.5 4 11.5h13.3l-10.7 7.1 4.1 11.5-10.7-7-10.7 7 4.1-11.5-10.7-7z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/nz.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/nz.svg
new file mode 100644
index 0000000..ba7cac0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/nz.svg
@@ -0,0 +1,41 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-nz" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="nz-c">
+      <path d="M0 0h600v300H0z"/>
+    </clipPath>
+    <clipPath id="nz-d">
+      <path d="M0 0l300 150H0zm300 0h300L300 150zm0 150h300v150zm0 0v150H0z"/>
+    </clipPath>
+    <g id="b">
+      <g id="a">
+        <path d="M0 0v.5L1 0z" transform="translate(0 -.3)"/>
+        <path d="M0 0v-.5L1 0z" transform="rotate(-36 .5 -.2)"/>
+      </g>
+      <use transform="scale(-1 1)" xlink:href="#a"/>
+      <use transform="rotate(72 0 0)" xlink:href="#a"/>
+      <use transform="rotate(-72 0 0)" xlink:href="#a"/>
+      <use transform="scale(-1 1) rotate(72)" xlink:href="#a"/>
+    </g>
+  </defs>
+  <path fill="#00247d" fill-rule="evenodd" d="M0 0h640v480H0z"/>
+  <g transform="translate(-93 36.1) scale(.66825)">
+    <use width="100%" height="100%" fill="#fff" transform="matrix(45.4 0 0 45.4 900 120)" xlink:href="#b"/>
+    <use width="100%" height="100%" fill="#cc142b" transform="matrix(30 0 0 30 900 120)" xlink:href="#b"/>
+  </g>
+  <g transform="rotate(82 534.2 125) scale(.66825)">
+    <use width="100%" height="100%" fill="#fff" transform="rotate(-82 519 -457.7) scale(40.4)" xlink:href="#b"/>
+    <use width="100%" height="100%" fill="#cc142b" transform="rotate(-82 519 -457.7) scale(25)" xlink:href="#b"/>
+  </g>
+  <g transform="rotate(82 534.2 125) scale(.66825)">
+    <use width="100%" height="100%" fill="#fff" transform="rotate(-82 668.6 -327.7) scale(45.4)" xlink:href="#b"/>
+    <use width="100%" height="100%" fill="#cc142b" transform="rotate(-82 668.6 -327.7) scale(30)" xlink:href="#b"/>
+  </g>
+  <g transform="translate(-93 36.1) scale(.66825)">
+    <use width="100%" height="100%" fill="#fff" transform="matrix(50.4 0 0 50.4 900 480)" xlink:href="#b"/>
+    <use width="100%" height="100%" fill="#cc142b" transform="matrix(35 0 0 35 900 480)" xlink:href="#b"/>
+  </g>
+  <path stroke="#fff" stroke-width="60" d="M0 0l600 300M0 300L600 0" clip-path="url(#nz-c)" transform="scale(.60681 .73139)"/>
+  <path stroke="#cc142b" stroke-width="40" d="M0 0l600 300M0 300L600 0" clip-path="url(#nz-d)" transform="scale(.60681 .73139)"/>
+  <path fill="#fff" d="M151.7 0v79.4H0V140h151.7v79.4h60.7v-79.3H364V79.4H212.4V0z" clip-path="url(#nz-c)" color="#000" font-family="sans-serif" font-weight="400" overflow="visible" style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal"/>
+  <path fill="#cc142b" d="M163.8 0v91.5H0v36.4h163.8v91.5h36.4V128h163.9V91.5H200.2V0z" color="#000" font-family="sans-serif" font-weight="400" overflow="visible" style="line-height:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;block-progression:tb;isolation:auto;mix-blend-mode:normal"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/om.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/om.svg
new file mode 100644
index 0000000..68fe15d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/om.svg
@@ -0,0 +1,115 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-om" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="om-a">
+      <path fill-opacity=".7" d="M0 0h640v480H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#om-a)">
+    <path fill="#ef2d29" fill-rule="evenodd" d="M-3.3-21.6H699v553H-3.3z"/>
+    <path fill="#009025" fill-rule="evenodd" d="M174.6 317.3h535.7V525H174.6z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M174.6-35.4h564.9v190h-565z"/>
+    <g stroke="#ef2d28">
+      <g fill="#fff" fill-rule="evenodd" transform="matrix(.19848 0 0 .17744 111.3 -13.4)">
+        <rect width="138.2" height="85" x="17.7" y="467.7" stroke-width="1.4" rx="11.3" ry="11.8"/>
+        <rect width="131.1" height="78" x="21.3" y="471.3" stroke-width="1.3" rx="10.7" ry="10.9"/>
+        <path stroke-width="1.3" d="M65 396l9.7.5.4 5.8 8 5.3 6.2-6.7 7.5 5.3-7 5.8 1.7 8 8.8-.5V430l-7-.4-3.6 6.6 8 7.5-6.2 6.2-6.7-6.6-9.7 2.6.5 9.7-10.6 1-1.4-9.4-8.8-4.8-4.9 6.6-7.5-4.9 4.4-7.5-5.3-4.8H34l-.4-13.7 7.5.9 5.3-8-6.2-6.2 8-7 5.7 5.7 9.7-1.8L65 396z" transform="matrix(.68108 0 0 .5852 38 260.7)"/>
+        <ellipse cx="68.9" cy="426.8" stroke-width="1.3" rx="11.1" ry="9.9" transform="matrix(.65819 0 0 .70224 38.8 209.6)"/>
+        <path stroke-width="1.3" d="M39 474.8l-10.7 10.6m17.8-10.6l-10.7 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6L78 485.4m17.7-10.6L85 485.4m17.8-10.6L92 485.4m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m-17.7-10.6L78 485.4m46-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m0-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.7 10.6M85 474.8l10.6 10.6m-17.8-10.6l10.7 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6M85 474.8l10.6 10.6m-46-10.6l10.5 10.6m-17.7-10.6l10.7 10.6m-17.8-10.6L46 485.4m-17.8-10.6L39 485.4m0 49.6l-10.6 10.7M46 535l-10.7 10.7M53.2 535l-10.7 10.7M60.2 535l-10.6 10.7M67.3 535l-10.6 10.7M74.4 535l-10.6 10.7M81.5 535L71 545.7M88.6 535L78 545.7M95.7 535L85 545.7m17.7-10.7L92 545.7m18-10.7l-10.7 10.7M117 535l-10.6 10.7M88.6 535L78 545.7m46-10.7l-10.6 10.7m17.7-10.7l-10.6 10.7m17.7-10.7l-10.6 10.7m17.7-10.7l-10.6 10.7m0-10.7l10.6 10.7M127.6 535l10.6 10.7M120.5 535l10.6 10.7M113.4 535l10.6 10.7M106.3 535l10.6 10.7M99.2 535l10.7 10.7M92 535l10.7 10.7M85 535l10.6 10.7M78 535l10.6 10.7M70.9 535l10.6 10.7M63.8 535l10.6 10.7M56.7 535l10.6 10.7M85.1 535l10.6 10.7m-46-10.7l10.5 10.7M42.5 535l10.7 10.7M35.4 535l10.7 10.7M28.4 535L39 545.7"/>
+      </g>
+      <g fill="#fff" fill-rule="evenodd" transform="matrix(.19848 0 0 .17744 19.1 -14)">
+        <rect width="138.2" height="85" x="17.7" y="467.7" stroke-width="1.4" rx="11.3" ry="11.8"/>
+        <rect width="131.1" height="78" x="21.3" y="471.3" stroke-width="1.3" rx="10.7" ry="10.9"/>
+        <path stroke-width="1.3" d="M65 396l9.7.5.4 5.8 8 5.3 6.2-6.7 7.5 5.3-7 5.8 1.7 8 8.8-.5V430l-7-.4-3.6 6.6 8 7.5-6.2 6.2-6.7-6.6-9.7 2.6.5 9.7-10.6 1-1.4-9.4-8.8-4.8-4.9 6.6-7.5-4.9 4.4-7.5-5.3-4.8H34l-.4-13.7 7.5.9 5.3-8-6.2-6.2 8-7 5.7 5.7 9.7-1.8L65 396z" transform="matrix(.68108 0 0 .5852 38 260.7)"/>
+        <ellipse cx="68.9" cy="426.8" stroke-width="1.3" rx="11.1" ry="9.9" transform="matrix(.65819 0 0 .70224 38.8 209.6)"/>
+        <path stroke-width="1.3" d="M39 474.8l-10.7 10.6m17.8-10.6l-10.7 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6L78 485.4m17.7-10.6L85 485.4m17.8-10.6L92 485.4m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m-17.7-10.6L78 485.4m46-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m17.7-10.6l-10.6 10.6m0-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.7 10.6M85 474.8l10.6 10.6m-17.8-10.6l10.7 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6m-17.7-10.6l10.6 10.6M85 474.8l10.6 10.6m-46-10.6l10.5 10.6m-17.7-10.6l10.7 10.6m-17.8-10.6L46 485.4m-17.8-10.6L39 485.4m0 49.6l-10.6 10.7M46 535l-10.7 10.7M53.2 535l-10.7 10.7M60.2 535l-10.6 10.7M67.3 535l-10.6 10.7M74.4 535l-10.6 10.7M81.5 535L71 545.7M88.6 535L78 545.7M95.7 535L85 545.7m17.7-10.7L92 545.7m18-10.7l-10.7 10.7M117 535l-10.6 10.7M88.6 535L78 545.7m46-10.7l-10.6 10.7m17.7-10.7l-10.6 10.7m17.7-10.7l-10.6 10.7m17.7-10.7l-10.6 10.7m0-10.7l10.6 10.7M127.6 535l10.6 10.7M120.5 535l10.6 10.7M113.4 535l10.6 10.7M106.3 535l10.6 10.7M99.2 535l10.7 10.7M92 535l10.7 10.7M85 535l10.6 10.7M78 535l10.6 10.7M70.9 535l10.6 10.7M63.8 535l10.6 10.7M56.7 535l10.6 10.7M85.1 535l10.6 10.7m-46-10.7l10.5 10.7M42.5 535l10.7 10.7M35.4 535l10.7 10.7M28.4 535L39 545.7"/>
+      </g>
+      <path fill="#fff" fill-rule="evenodd" stroke-width="1.3" d="M538.6 531.5c1.7 166.6 24.8 202 3.5 202s-31.9-92.1-31.9-205.5 14.2-205.5 35.5-205.5-9 31.9-7.1 209z" transform="matrix(-.32136 -.12684 -.20158 .20221 345.9 61.4)"/>
+      <path fill="#fff" fill-rule="evenodd" stroke-width="1.2" d="M545.7 779.5l-60.3 17.7c56.7 60.3 120.5 85 138.2 74.4 17.7-10.6-31.9-35.4-78-92z" transform="matrix(-.19848 0 0 .17744 145.3 -13.4)"/>
+      <path fill="#fff" fill-rule="evenodd" stroke-width="1.3" d="M547.3 786.9l-51 14.7c56.7 60.3 112.8 77.4 127.3 70 14.6-7.3-30.3-28-76.3-84.7z" transform="matrix(-.19334 0 0 .17062 142.8 -8.1)"/>
+      <path fill="none" stroke-width="1.8" d="M353.1 634.2c.2 1.3.8 7.1 1.3 9.4 0 3.2.3 5.6.6 8.1.8 2.2.7 4.2 3.1 5a9.9 9.9 0 005 4.4 27.7 27.7 0 006.3 3.8 11.6 11.6 0 007.5.6c2.2-1.5 3.8-3.1 5.6-4.4.4-2 .8-4.9 1.3-6.9a32.6 32.6 0 00-1.3 8.2c.2 3 1.3 4.4 2.5 6.8" transform="matrix(-.13978 0 0 .12414 123 20.4)"/>
+      <path fill="none" stroke-width="1.8" d="M389.4 681.7l.6-.6c-1.5 1.5-.9.8 2.5-1.3 2.4-1.2 5-1.8 8.1-2.4h8.8c3.4 0 5.7.5 8.1 1.2 1.8 1.8 4.4 2.8 6.3 4.4a11 11 0 013.7 5c1.7 1.7 2.8 4.3 4.4 5.6.7 2.9 2.1 2.8 3.1 5-3 .2-5.3.6-6.9 2.5-2.6 1.3 2.2-1.3 3.2-2.5 2-.6 2.5-1.2 5.6-1.2 2.8-1 4.6.7 7.5 1.2 1.7 1 2.2 1.3 4.4 1.3" transform="matrix(-.13978 0 0 .12414 124.9 19.7)"/>
+      <path fill="none" stroke-width="1.8" d="M438.1 724.9c1.3 0 7.1 1.1 9.4 0 2.6-.7 4-2 5.6-4.4.8-1.7 0 3 0 5 .3 3.7 1.4 3.7 3.2 6.2 1.8 1.2 3.7 2.8 5.6 3.8a18 18 0 005.6 3.1c2 1 4.1 1.8 5.6 3.1 2.1 1.5 2 3.3 3.2 5.7-.3 3-.8 4.8-2.5 6.2-.8 2.1-2.4 4.2-3.8 5.6-1.5 3-3.3 4.3.6 5 2.2 1 3.4.2 5.7 0" transform="matrix(-.13978 0 0 .12414 127 18.2)"/>
+      <path fill="none" stroke-width="1.8" d="M480.6 771.7c1.6-.4 7-2.2 9.4-3.1h8.8c3.3.3 4 1.3 6.8 2.5 1.9 1.9 3.1 3.2 5.7 4.4 1.3 1.7 4 4.7 5 6.9a25.5 25.5 0 011.2 8c0 3.7-1 4.4-1.2 7.6a19.3 19.3 0 01-3.8 7.5c-.3.8-.5 1-1.2 1.2" transform="matrix(-.13978 0 0 .12414 127.4 17.8)"/>
+      <path fill="none" stroke-width="2.3" d="M538.1 818c.4 0 1.2 2 2.5 3.7 2.9 3 3.2 3.2 7.5 3.2 4-.2 3.5-1.6 6.3-2.5 1.3-2 2.9-3.6 4.4-6.3 1-1.6 1.9-4.1 3-5.6 1.2-1.9 2.6-3.3 3.8-5 1.2-.5 1.6-1 3.2-1.3-3.6.6-4 1.9-6.3 3.8a58.9 58.9 0 00-3.1 5.6c-.4 2.7-1.2 4.8-1.3 8.1 0 3.5 0 5.9 1.3 8.8 1.5 1.5 2.5 3.1 4.4 4.4a36.7 36.7 0 014.3 5l5.7 3.7c1.8 1.1 3.9 2.2 6.8 2.5 3.7-.3 4.8-1.3 7.5-2.5 2.4-1.7 4.2-2.8 6.3-4.4a21 21 0 004.4-5c3.3-.8 5.5-.5 7.5 1.3a16.5 16.5 0 014.3 4.4c1 .5 2.8 2 3.8 2.5" transform="matrix(-.09924 0 0 .09799 109.5 38.8)"/>
+      <path fill="none" stroke-width="1.9" d="M503.8 836.1c-.8.3-3.8 2.4-5 3.1-.8 2.7-2.1 4.1-2.5 7-.7 2.6-.7 5.6-.7 8.7.7 3.2 2 5.5 3.2 8 2 1.4 3 2.4 5.6 3.8 2.5.4 5 .7 8.1.7 2 .6 5.6.9 7.5 0 2.8-.4 4.9-1.5 6.9-2.5 2.3-1.3 3.7-2.6 6.2-3.8 1.3-1.8 3.2-3.5 5-5.6 1.6-2.1 2.7-3.3 3.8-5.6-1 2.6-2.3 5-3.1 7.5-1.5 2.6-2.3 3.6-2.5 6.8-1 2.6-.7 5.8-.7 8.8.3 2 .4 5.8 1.3 7.5v1.9" transform="matrix(-.12338 0 0 .12229 111.4 19.3)"/>
+      <path fill="none" stroke-width="1.2" d="M541.3 799.2v.7c0-1.7 0-.9-.7 2.5-1.1 1.4-4 1.8-6.2 1.2-2-1.7-2-3-5.6-3.7-3.6.2-5 1.2-7 2.5a9.5 9.5 0 00-5 4.3c-.7 2.1-1.1 3.6 1.3 4.4a15.2 15.2 0 007 2.5c2.8 0 4.9-.3 6.2 1.3 2 2 1.8 3.2 1.8 6.8.7 1.1.8 4.4 1.3 5.7a10.6 10.6 0 005.6 1.2c.7-2 1.4-5.4 1.9-7.5.5-2.2.6-5.4 1.9-6.9a16.6 16.6 0 014.3-4.4 8 8 0 013.8-2.4c-2.5 1.2-2.8 2.6-3.1 5.6 2.1 1 2.7 1.8 6.2 1.9 3.5-.3 4.3-1.2 5.6-3.2.3 3.2 1.3 4.2 2 7 1.2 1.8 1.7 3.7 3 6.2-.5 3-1.7 3.1-1.8 6.8-.8 2.5-.8 4.8-2.5 6.3-.8 1-1.4 1.1-3.2 1.2 3.6 0 5.8-.4 8.2-1.8 1.8-1.2 3.2-2.6 5-3.8a23.9 23.9 0 017.5-3.8c2.9 0 5-.3 6.2 1.3 1.8 1.3 3 3.5 3.8 6.3.5 3.2.8 5.4-.7 7.5-1 2.4-1.3 3.3 0 6.2 1.5 2 3.6 2.3 7 3.1 2.3-.1 4.6-.6 6.2-1.2" transform="matrix(-.19848 0 0 .17744 145.3 -13.4)"/>
+      <g fill-rule="evenodd" stroke-width="1.3" transform="matrix(-.19848 0 0 .17744 145.3 -13.4)">
+        <path fill="#fff" d="M531.5 359.6c0-165.2 8-299.4 17.7-299.4 9.8 0 17.7 134.2 17.7 299.4h-35.4z" transform="matrix(1.4216 -.73423 .46161 .89375 -716.8 541)"/>
+        <path fill="#fff" d="M531.5 359.6c0-165.2 8-299.4 17.7-299.4 9.8 0 17.7 134.2 17.7 299.4" transform="matrix(1.1373 -.58739 .44532 .86221 -554.8 471.8)"/>
+        <path fill="#fff" d="M563.4 301.2c.2 18.9 0 40.2 0 60.2H535c0-20-.2-41.3 0-60.2h28.4z" transform="matrix(1.4216 -.73423 .45889 .88849 -716.7 541.4)"/>
+        <path fill="#fff" d="M559.8 304.7c.2 19 0 33.1 0 53.2h-21.2c0-20-.2-34.3 0-53.2h21.2z" transform="matrix(1.4216 -.73423 .45889 .88849 -716.7 541.4)"/>
+        <path fill="#fff" d="M542.1 311.8h14.2v39h-14.2zm0 0l14.2 39m-14.2 0l14.2-39m-14.2-198.4h14.2" transform="matrix(1.4216 -.73423 .45889 .88849 -716.7 541.4)"/>
+        <circle cx="545.7" cy="92.1" r="3.5" fill="#ef0000" transform="matrix(1.6046 .45375 -.36215 1.5787 -734.9 -170.8)"/>
+      </g>
+      <path fill="#fff" fill-rule="evenodd" stroke-width="1.3" d="M538.6 531.5c1.7 166.6 24.8 202 3.5 202s-31.9-92.1-31.9-205.5 14.2-205.5 35.5-205.5-9 31.9-7.1 209z" transform="matrix(.32136 -.12684 .20158 .20221 -181.5 60.8)"/>
+      <path fill="#fff" fill-rule="evenodd" stroke-width="1.2" d="M545.7 779.5l-60.3 17.7c56.7 60.3 120.5 85 138.2 74.4 17.7-10.6-31.9-35.4-78-92z" transform="matrix(.19848 0 0 .17744 19.1 -14)"/>
+      <path fill="#fff" fill-rule="evenodd" stroke-width="1.3" d="M547.3 786.9l-51 14.7c56.7 60.3 112.8 77.4 127.3 70 14.6-7.3-30.3-28-76.3-84.7z" transform="matrix(.19334 0 0 .17062 21.6 -8.8)"/>
+      <path fill="none" stroke-width="1.8" d="M353.1 634.2c.2 1.3.8 7.1 1.3 9.4 0 3.2.3 5.6.6 8.1.8 2.2.7 4.2 3.1 5a9.9 9.9 0 005 4.4 27.7 27.7 0 006.3 3.8 11.6 11.6 0 007.5.6c2.2-1.5 3.8-3.1 5.6-4.4.4-2 .8-4.9 1.3-6.9a32.6 32.6 0 00-1.3 8.2c.2 3 1.3 4.4 2.5 6.8" transform="matrix(.13978 0 0 .12414 41.4 19.7)"/>
+      <path fill="none" stroke-width="1.8" d="M389.4 681.7l.6-.6c-1.5 1.5-.9.8 2.5-1.3 2.4-1.2 5-1.8 8.1-2.4h8.8c3.4 0 5.7.5 8.1 1.2 1.8 1.8 4.4 2.8 6.3 4.4a11 11 0 013.7 5c1.7 1.7 2.8 4.3 4.4 5.6.7 2.9 2.1 2.8 3.1 5-3 .2-5.3.6-6.9 2.5-2.6 1.3 2.2-1.3 3.2-2.5 2-.6 2.5-1.2 5.6-1.2 2.8-1 4.6.7 7.5 1.2 1.7 1 2.2 1.3 4.4 1.3" transform="matrix(.13978 0 0 .12414 39.5 19)"/>
+      <path fill="none" stroke-width="1.8" d="M438.1 724.9c1.3 0 7.1 1.1 9.4 0 2.6-.7 4-2 5.6-4.4.8-1.7 0 3 0 5 .3 3.7 1.4 3.7 3.2 6.2 1.8 1.2 3.7 2.8 5.6 3.8a18 18 0 005.6 3.1c2 1 4.1 1.8 5.6 3.1 2.1 1.5 2 3.3 3.2 5.7-.3 3-.8 4.8-2.5 6.2-.8 2.1-2.4 4.2-3.8 5.6-1.5 3-3.3 4.3.6 5 2.2 1 3.4.2 5.7 0" transform="matrix(.13978 0 0 .12414 37.4 17.6)"/>
+      <path fill="none" stroke-width="1.8" d="M480.6 771.7c1.6-.4 7-2.2 9.4-3.1h8.8c3.3.3 4 1.3 6.8 2.5 1.9 1.9 3.1 3.2 5.7 4.4 1.3 1.7 4 4.7 5 6.9a25.5 25.5 0 011.2 8c0 3.7-1 4.4-1.2 7.6a19.3 19.3 0 01-3.8 7.5c-.3.8-.5 1-1.2 1.2" transform="matrix(.13978 0 0 .12414 37 17.2)"/>
+      <path fill="none" stroke-width="2.3" d="M538.1 818c.4 0 1.2 2 2.5 3.7 2.9 3 3.2 3.2 7.5 3.2 4-.2 3.5-1.6 6.3-2.5 1.3-2 2.9-3.6 4.4-6.3 1-1.6 1.9-4.1 3-5.6 1.2-1.9 2.6-3.3 3.8-5 1.2-.5 1.6-1 3.2-1.3-3.6.6-4 1.9-6.3 3.8a58.9 58.9 0 00-3.1 5.6c-.4 2.7-1.2 4.8-1.3 8.1 0 3.5 0 5.9 1.3 8.8 1.5 1.5 2.5 3.1 4.4 4.4a36.7 36.7 0 014.3 5l5.7 3.7c1.8 1.1 3.9 2.2 6.8 2.5 3.7-.3 4.8-1.3 7.5-2.5 2.4-1.7 4.2-2.8 6.3-4.4a21 21 0 004.4-5c3.3-.8 5.5-.5 7.5 1.3a16.5 16.5 0 014.3 4.4c1 .5 2.8 2 3.8 2.5" transform="matrix(.09924 0 0 .09799 55 38.2)"/>
+      <path fill="none" stroke-width="1.9" d="M503.8 836.1c-.8.3-3.8 2.4-5 3.1-.8 2.7-2.1 4.1-2.5 7-.7 2.6-.7 5.6-.7 8.7.7 3.2 2 5.5 3.2 8 2 1.4 3 2.4 5.6 3.8 2.5.4 5 .7 8.1.7 2 .6 5.6.9 7.5 0 2.8-.4 4.9-1.5 6.9-2.5 2.3-1.3 3.7-2.6 6.2-3.8 1.3-1.8 3.2-3.5 5-5.6 1.6-2.1 2.7-3.3 3.8-5.6-1 2.6-2.3 5-3.1 7.5-1.5 2.6-2.3 3.6-2.5 6.8-1 2.6-.7 5.8-.7 8.8.3 2 .4 5.8 1.3 7.5v1.9" transform="matrix(.12338 0 0 .12229 53 18.6)"/>
+      <path fill="none" stroke-width="1.2" d="M541.3 799.2v.7c0-1.7 0-.9-.7 2.5-1.1 1.4-4 1.8-6.2 1.2-2-1.7-2-3-5.6-3.7-3.6.2-5 1.2-7 2.5a9.5 9.5 0 00-5 4.3c-.7 2.1-1.1 3.6 1.3 4.4a15.2 15.2 0 007 2.5c2.8 0 4.9-.3 6.2 1.3 2 2 1.8 3.2 1.8 6.8.7 1.1.8 4.4 1.3 5.7a10.6 10.6 0 005.6 1.2c.7-2 1.4-5.4 1.9-7.5.5-2.2.6-5.4 1.9-6.9a16.6 16.6 0 014.3-4.4 8 8 0 013.8-2.4c-2.5 1.2-2.8 2.6-3.1 5.6 2.1 1 2.7 1.8 6.2 1.9 3.5-.3 4.3-1.2 5.6-3.2.3 3.2 1.3 4.2 2 7 1.2 1.8 1.7 3.7 3 6.2-.5 3-1.7 3.1-1.8 6.8-.8 2.5-.8 4.8-2.5 6.3-.8 1-1.4 1.1-3.2 1.2 3.6 0 5.8-.4 8.2-1.8 1.8-1.2 3.2-2.6 5-3.8a23.9 23.9 0 017.5-3.8c2.9 0 5-.3 6.2 1.3 1.8 1.3 3 3.5 3.8 6.3.5 3.2.8 5.4-.7 7.5-1 2.4-1.3 3.3 0 6.2 1.5 2 3.6 2.3 7 3.1 2.3-.1 4.6-.6 6.2-1.2" transform="matrix(.19848 0 0 .17744 19.1 -14)"/>
+      <g fill-rule="evenodd" stroke-width="1.3" transform="matrix(.19848 0 0 .17744 19.1 -14)">
+        <path fill="#fff" d="M531.5 359.6c0-165.2 8-299.4 17.7-299.4 9.8 0 17.7 134.2 17.7 299.4h-35.4z" transform="matrix(1.4216 -.73423 .46161 .89375 -716.8 541)"/>
+        <path fill="#fff" d="M531.5 359.6c0-165.2 8-299.4 17.7-299.4 9.8 0 17.7 134.2 17.7 299.4" transform="matrix(1.1373 -.58739 .44532 .86221 -554.8 471.8)"/>
+        <path fill="#fff" d="M563.4 301.2c.2 18.9 0 40.2 0 60.2H535c0-20-.2-41.3 0-60.2h28.4z" transform="matrix(1.4216 -.73423 .45889 .88849 -716.7 541.4)"/>
+        <path fill="#fff" d="M559.8 304.7c.2 19 0 33.1 0 53.2h-21.2c0-20-.2-34.3 0-53.2h21.2z" transform="matrix(1.4216 -.73423 .45889 .88849 -716.7 541.4)"/>
+        <path fill="#fff" d="M542.1 311.8h14.2v39h-14.2zm0 0l14.2 39m-14.2 0l14.2-39m-14.2-198.4h14.2" transform="matrix(1.4216 -.73423 .45889 .88849 -716.7 541.4)"/>
+        <circle cx="545.7" cy="92.1" r="3.5" fill="#ef0000" transform="matrix(1.6046 .45375 -.36215 1.5787 -734.9 -170.8)"/>
+      </g>
+      <g fill="#fff" fill-rule="evenodd" transform="matrix(.19848 0 0 .17744 19.1 -14)">
+        <path stroke-width="1.3" d="M305.6 396.9c0 124 .5 170.7-5.6 177.1-5.8 6.9-167.1 0-167.1 35.4s132.8 71 172.7 71c53.2 0 79.7-35.5 79.7-106.4V397h-79.7z" transform="matrix(1.3333 0 0 1 -141.7 0)"/>
+        <path stroke-width="1.3" d="M265.8 396.9v17.7a321.1 321.1 0 00106.2 0v-17.7a321.1 321.1 0 01-106.2 0z" transform="matrix(1 0 0 .99999 0 35.4)"/>
+        <path stroke-width="1.3" d="M265.8 396.9v17.7a321.1 321.1 0 00106.2 0v-17.7a321.1 321.1 0 01-106.2 0z" transform="scale(1 .99999)"/>
+        <path stroke-width="1.3" d="M265.8 396.9v17.7a321.1 321.1 0 00106.2 0v-17.7a321.1 321.1 0 01-106.2 0z" transform="matrix(1 0 0 .99999 0 17.7)"/>
+        <path stroke-width="1.3" d="M265.8 396.9v17.7a321.1 321.1 0 00106.2 0v-17.7a321.1 321.1 0 01-106.2 0z" transform="matrix(1 0 0 .99999 0 53.1)"/>
+        <ellipse cx="256.9" cy="210.8" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 394.3)"/>
+        <ellipse cx="292.3" cy="246.3" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 391.1)"/>
+        <ellipse cx="327.8" cy="264" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 390.5)"/>
+        <ellipse cx="363.2" cy="264" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 390.5)"/>
+        <ellipse cx="398.6" cy="246.3" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 391.1)"/>
+        <ellipse cx="434.1" cy="210.8" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 394.3)"/>
+        <path stroke-width="1.3" d="M265.8 485.4L372 581.1m-95.6-95.7l95.7 85M290.5 489l81.6 70.9m-71-71l71 60.3M311.8 489l60.2 49.6M322.4 489l49.6 39m-39-39l39 28.3M343.8 489l28.4 21.2M354.3 489l17.8 14.2M365 489l7 7m-106.2 0L372 591.8m0-106.3L255 591.7m106.3-106.3l-102.7 92.2m88.6-88.6l-81.5 70.8m70.8-70.8l-70.8 60.2M326 489l-60.2 49.6m49.6-49.6l-49.6 39m39-39l-39 28.3M294 489l-28.3 21.2m17.7-21.2l-17.7 14.2m7-14.2l-7 7m106.3 0L255 602.5m117-95.7L255 613m117-95.7L255 623.6m117-95.7L255 634.4m117-95.7L255 644.9m117-95.7L255 655.5m117-95.7L255 666.1m117-95.6L255 676.8m117-95.7l-109.9 99.2M372 591.7l-99.2 88.6m95.6-74.4l-78 70.9M365 620l-63.8 56.7m56.7-39l-32 28.3m-60.1-159.4l102.7 92.1m-102.7-81.5l102.7 92.2M265.8 528l99.2 88.5m-99.2-78l99.2 88.7m-99.2-78l95.6 85m-99.2-77.9l95.7 85M262.2 567l88.6 78m-92.1-71l88.6 78M255 581l85 74.4m-85-63.8l81.5 70.9M255 602.3l71 63.7"/>
+        <path stroke-width="1.3" d="M265.8 396.9v17.7a321.1 321.1 0 00106.2 0v-17.7a321.1 321.1 0 01-106.2 0z" transform="matrix(1 0 0 .99999 0 70.9)"/>
+        <path stroke-width="1.3" d="M255.1 613l63.8 56.7m-63.8-46l56.7 49.5m-56.7-39l49.6 42.6m-49.6-32l35.5 32M255 655.5l28.4 24.8M255 666.1l17.7 14.2"/>
+        <ellipse cx="256.9" cy="210.8" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 447.5)"/>
+        <ellipse cx="292.3" cy="246.3" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 444.3)"/>
+        <ellipse cx="327.8" cy="264" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 443.6)"/>
+        <ellipse cx="363.2" cy="264" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 443.6)"/>
+        <ellipse cx="398.6" cy="246.3" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 444.3)"/>
+        <ellipse cx="434.1" cy="210.8" stroke-width="4.4" rx="8.9" ry="26.6" transform="matrix(.54545 0 0 .14383 130.5 447.5)"/>
+        <path stroke-width="1.3" d="M113.4 652l127.5-74.4m-134.6 70.8l120.5-70.8m-124 63.7l109.8-63.7M99.2 634.3l95.7-56.7M92 627.2l88.6-49.6m-85 39l60.2-35.5M92 609.4l46-28.3m-46 17.7l32-17.7m0 74.4l120.4-70.9M134.7 659L248 591.7m-102.7 70.9l106.3-63.8m-95.7 67.3l88.6-53.1M170 666.1l78-46m-67.4 49.6l67.3-39m-56.7 42.5l53.2-31.9m-39 32l42.5-24.9m-28.3 28.4L248 659m-14 17.8l17.7-10.6"/>
+        <path stroke-width="1.3" d="M265.8 396.9v17.7a321.1 321.1 0 00106.2 0v-17.7a321.1 321.1 0 01-106.2 0z" transform="matrix(0 1 -.99999 0 655.5 308.3)"/>
+        <path stroke-width="1.3" d="M49.6 623.6l42.5-35.4m-42.5 10.6l42.5 42.5"/>
+        <path stroke-width="1.3" d="M260.1 388l5.6 26.6c35.5 5.9 65.3 5.9 100.8 0l11.1-26.6c-35.4 5.9-82 5.9-117.5 0z" transform="matrix(0 .63333 -.8 0 423.8 416.3)"/>
+        <path stroke-width="1.3" d="M258.7 350.8v-17.9c-10.7.2-17.8-10.5-17.8-21.2l-35.4.1c0 10.6-7 21.3-17.7 21.3v17.7h70.9z" transform="matrix(1.4983 0 0 1 -15.6 53.1)"/>
+        <path stroke-width="1.4" d="M296 343.7h45.6V365H296zm3.9-21.3h37.9v21.3h-38zm0-21.2h37.9v21.2h-38zm3.8-28.4H334v28.4h-30.3zm-1.3-24.8h33v24.8h-33z"/>
+        <ellipse cx="237.4" cy="161.2" stroke-width="1.3" rx="42.5" ry="33.7" transform="matrix(1.0333 0 0 1 75.3 63.8)"/>
+        <path stroke-width="1.3" d="M258.7 159.4c0 9.3 10.6 24.8 10.6 24.8-7.7 6.2-20.2 10.7-31.9 10.7s-26.3-2.6-31.9-10.7c0 0 10.6-15.4 10.6-24.7s-10.6-21.3-10.6-21.3a54.6 54.6 0 0132-10.6c11.6 0 24 4.5 31.8 10.6 0 0-10.6 12-10.6 21.3z" transform="matrix(1.0333 0 0 1 75.3 63.8)"/>
+        <path stroke-width="1.3" d="M251.6 159.4c0 9.3 10.6 28.4 10.6 28.4-7.7 6-13 7-24.8 7s-19.2 1.1-24.8-7c0 0 10.6-19 10.6-28.4s-10.6-24.8-10.6-24.8c7.7-6 13-7 24.8-7 11.7 0 17.1 1 24.8 7 0 0-10.6 15.5-10.6 24.8z" transform="matrix(1.0333 0 0 1 75.3 63.8)"/>
+        <circle cx="194.9" cy="166.5" r="10.6" stroke-width="1.3" transform="matrix(1.0333 0 0 1 75.3 60.2)"/>
+        <circle cx="194.9" cy="166.5" r="10.6" stroke-width="1.3" transform="matrix(1.0333 0 0 1 163.2 60.2)"/>
+        <circle cx="194.9" cy="166.5" r="10.6" stroke-width="1.3" transform="matrix(1.0333 0 0 1 119.3 60.2)"/>
+        <circle cx="194.9" cy="166.5" r="10.6" stroke-width="1.3" transform="matrix(1.0333 0 0 1 119.3 24.8)"/>
+        <circle cx="194.9" cy="166.5" r="10.6" stroke-width="1.3" transform="matrix(1.0702 0 0 1 80 226.8)"/>
+        <circle cx="194.9" cy="166.5" r="10.6" stroke-width="1.3" transform="matrix(1.0702 0 0 1 140.6 226.8)"/>
+        <path stroke-width="1.3" d="M212.6 311.8h49.6l-24.8 31.9-24.8-31.9z" transform="matrix(1.0702 0 0 1 64.8 53.1)"/>
+        <circle cx="194.9" cy="166.5" r="10.6" stroke-width="1.3" transform="matrix(1.427 0 0 1.3333 40.7 167.7)"/>
+      </g>
+      <g fill="#fff" fill-rule="evenodd" transform="matrix(.19848 0 0 .17744 18.8 -19.1)">
+        <rect width="81.5" height="21.3" x="262.2" y="524.4" stroke-width="1.2" rx="4.3" ry="3.7"/>
+        <path stroke-width="1.2" d="M368.5 506.7c-9.8 0-17.7 8.3-17.7 18.5v16.1a18 18 0 0017.7 18.5 18 18 0 0017.7-18.5v-16a18 18 0 00-17.7-18.6zm0 7c-5.9 0-10.6 6.7-10.6 14.9v9.3c0 8.2 4.7 14.8 10.6 14.8 5.9 0 10.6-6.6 10.6-14.8v-9.3c0-8.2-4.7-14.8-10.6-14.8zm-92.1-3.5c-6 0-10.6 6.6-10.6 14.9v16.4c0 8.2 4.7 14.8 10.6 14.8 5.9 0 10.6-6.6 10.6-14.8V525c0-8.3-4.7-14.9-10.6-14.9zm0-7a18 18 0 00-17.7 18.5v23.2a18 18 0 0017.7 18.5c9.8 0 17.7-8.3 17.7-18.5v-23.2a18 18 0 00-17.7-18.6z"/>
+        <path stroke-width="1.2" d="M248 517.3c-5.9 0-10.6 6.6-10.6 14.8v3.9c0 8.2 4.7 14.8 10.6 14.8 6 0 10.7-6.6 10.7-14.8v-3.9c0-8.2-4.8-14.8-10.7-14.8zm0-7a18 18 0 00-17.7 18.5v10.6a18 18 0 0017.7 18.5c9.8 0 17.8-8.3 17.8-18.5v-10.6a18 18 0 00-17.8-18.6z"/>
+        <path stroke-width=".9" d="M478.4 237.4c-6 0-10.7 6.6-10.7 14.8v16.5c0 8.1 4.8 14.8 10.7 14.8 5.8 0 10.6-6.6 10.6-14.9v-16.4c0-8.2-4.8-14.8-10.6-14.8zm0-7a18 18 0 00-17.8 18.4V272a18 18 0 0017.7 18.6c9.9 0 17.8-8.3 17.8-18.6v-23.2a18 18 0 00-17.7-18.5z" transform="matrix(1.8 0 0 1.1176 -655.5 242.2)"/>
+        <path stroke-width=".9" d="M478.4 237.4c-6 0-10.7 6.6-10.7 14.8v16.5c0 8.1 4.8 14.8 10.7 14.8 5.8 0 10.6-6.6 10.6-14.9v-16.4c0-8.2-4.8-14.8-10.6-14.8zm0-7a18 18 0 00-17.8 18.4V272a18 18 0 0017.7 18.6c9.9 0 17.8-8.3 17.8-18.6v-23.2a18 18 0 00-17.7-18.5z" transform="matrix(1.8 0 0 1.1176 -425.2 245.7)"/>
+        <rect width="42.5" height="21.3" x="375.6" y="524.4" stroke-width="1.2" rx="2.3" ry="3.7"/>
+        <rect width="24.8" height="28.4" x="336.6" y="520.9" stroke-width="1.2" rx="1.3" ry="4.9"/>
+        <rect width="24.8" height="28.4" x="219.7" y="520.9" stroke-width="1.2" rx="1.3" ry="4.9"/>
+        <rect width="49.6" height="35.4" x="141.7" y="517.3" stroke-width="1.2" rx="2.6" ry="6.1"/>
+        <rect width="46.1" height="35.4" x="450" y="520.9" stroke-width="1.2" rx="2.5" ry="6.1"/>
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pa.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pa.svg
new file mode 100644
index 0000000..09b3e11
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pa.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-pa" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="pa-a">
+      <path fill-opacity=".7" d="M0 0h640v480H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#pa-a)">
+    <path fill="#fff" d="M0 0h640v480H0z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M92.5 0h477.2v480H92.4z"/>
+    <path fill="#db0000" fill-rule="evenodd" d="M323 3.6h358v221.7H323z"/>
+    <path fill="#0000ab" fill-rule="evenodd" d="M3.2 225.3h319.9V480H3.2zm211.6-47.6l-42-29.4-41.7 29.6 15.5-48L105 100l51.6-.4 16-48 16.3 47.9h51.6l-41.5 30 15.9 48z"/>
+    <path fill="#d80000" fill-rule="evenodd" d="M516.9 413.9l-42.4-27.7-42.1 28 15.6-45.6-42-28 52-.5 16.2-45.4 16.4 45.3h52l-41.8 28.5 16 45.4z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pe.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pe.svg
new file mode 100644
index 0000000..71a1be1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pe.svg
@@ -0,0 +1,244 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-pe" viewBox="0 0 640 480">
+  <path fill="#d91023" d="M0 0h640v480H0z"/>
+  <path fill="#fff" d="M213.3 0h213.4v480H213.3z"/>
+  <g fill="#00a854" stroke="#d4af37" stroke-width="2" transform="translate(245.3 154) scale(.17778)">
+    <g id="g" stroke-width="4.3" transform="matrix(.44722 -.20656 .2582 .35777 89.4 -67.3)">
+      <path d="M480.2 566.9c31.3 33 62.4 68.1 79 111.2 25.1 69.7 18.3 151.5-22.6 214a328.2 328.2 0 01-142 116.4 224.7 224.7 0 01-164.8 3.5c-20-7.4-38.9-18-57.5-28.3-8.4-1.4-13.9 8.6-7 13.3 62.4 40.6 130.9 42.2 202 28.2a273.1 273.1 0 0099-50.4c44.4-33.2 82.7-77.5 99.8-131 26.2-79 9.3-171.3-45.1-234.6a488.2 488.2 0 00-44.7-47.1l4 4.8z"/>
+      <path d="M170.6 983.3c-8.1-.8-12.2 11.8-5.1 13.6 4.2-1 10.7-12 5-13.6zm304.2-430.9c-4.5-5.6-14-2.9-17.7-7.3-4-4.7 2.9-6.5-.3-10-3-3.5-7.7-1.7-12-6.5-4.2-4.7-.4-8.8-4-12-3.7-3.4-4.2.8-8.4-3.8s-1.7-12.7-6.3-18.6c-4.5-5.7-3-12.5 2.5-11.2 3.6.8 5 4.4 10.4 5.7 5.4 1.4 7.6-2.5 11.2 1 3.5 3.4.3 9 4 14s5.9 1.2 8.6 5.5c2.7 4.4.5 6.6 2.2 11.7s8.4 3.1 10.9 10.8c2.5 7.6-1 20.7-1 20.7z"/>
+      <path d="M478.1 564.8c-5.5-26.2-27-57-52.6-79.5 15.3 12 44.9 40.5 54.4 79.3l-1.8.2z"/>
+      <path d="M460.2 524.4c-4.2-2.9-7.3-2.8-10.5-3.2 3-.2 5.9-.5 9.5 1.1l1 2.1zm-15.2-19c-4.5-1.4-7.4-.3-10.6.4 2.8-1.2 5.5-2.4 9.2-2l1.4 1.7zm4.4 3.5c-2.2-5.6-2.2-9.7-2.5-14-.1 3.9-.3 7.8.9 12.6l1.6 1.4zm13.5 18.1c-2.2-5.5-2.2-9.6-2.5-14-.1 4-.3 7.9 1 12.7l1.5 1.3zm92.3 155c-8.3-3.1-17.2 0-23.9-2.4-7.2-2.6 1.1-8.6-4.4-10.4-5.6-1.8-10.2 5.7-17.8 3.2-7.6-2.4-6.3-10-12.5-11.4-6.3-1.3-6.4 7.2-13.9 4.9-7.4-2.3-7.5-12.3-16-15.7-8.2-3.4-9-11.4-1.3-13.4 5.2-1.3 10.3 2 18 .2s7-8.7 13.1-7.1c6.1 1.5 4.4 10.4 11.4 13.2 7 2.8 11.4-4.9 16.7-2 5.3 3 .3 9.5 4.6 13.7 4.4 4.3 7.8-2.3 14.2 4.2 6.4 6.6 11.8 23 11.8 23z"/>
+      <path d="M563.5 691.6c-22.9-25.6-58.6-41.4-101.8-49.7 25 3.4 76.7 15 105.2 50l-3.4-.3z"/>
+      <path d="M524.3 661.5c-6.7-.6-10.8 1.3-15.2 2.8 3.8-2 7.5-4 13-4.4l2.2 1.6zm-27.9-10.9c-6.5 1.2-10 4-14 6.7 3.3-2.9 6.4-5.8 11.5-7.7l2.5 1zm7.2 1c-5.2-4.5-7-8.9-9.1-13.3 1.5 4.3 2.8 8.5 6.4 12.8l2.7.5zm25.3 11c-5.1-4.5-6.8-8.9-9-13.3a35 35 0 006.4 12.8l2.6.5zm25.8 223c7-5.4 9.2-15 14.7-19.4 5.8-4.7 6.2 5.9 10.6 2 4.4-3.7.9-12 6.9-17.2 6-5.2 11.4.2 15.8-4.4 4.3-4.7-2.4-9.7 3.4-14.8 5.8-5.2 13.9.5 21-5 7.1-5.3 14-1.4 11.5 6.4-1.7 5.3-7 7.9-9.7 15.6-2.6 7.8 3.2 11-1.2 15.5-4.5 4.4-10.7-2.2-16.7 2.3s-2 12.7-7.3 15.7c-5.1 3-7.6-5.1-13.4-3.8-5.7 1.4-2.2 8-10.9 10a67.8 67.8 0 01-24.7-2.9z"/>
+      <path d="M542.7 887.4c32.6-5.3 64.3-27.5 93.8-60.3-16 19.9-52.6 58.3-95.8 63.1l2-2.8z"/>
+      <path d="M587.6 870.5c4-5.6 4.7-10.2 5.8-15-.5 4.5-.8 9-3.3 14l-2.5 1zm23.5-18.1c2.5-6.4 2-11 2-16 .6 4.5 1.4 8.8.1 14.3l-2.1 1.6zm-4.6 5.7c6.4-2 10.8-1 15.5-.4-4.2-1.1-8.3-2.4-13.7-1.7l-1.8 2zm-22.2 15.8c6.3-2 10.7-1 15.4-.4-4.2-1.1-8.3-2.4-13.7-1.6l-1.7 2zm2.2-84c5.9-6.6 6.3-16.4 11-21.8 4.9-5.8 7.1 4.5 10.8 0 3.6-4.6-1.3-12.1 3.6-18.4 5-6.2 11.4-2 14.8-7.4 3.4-5.4-4-9 .7-15.2 4.8-6.2 13.7-2.1 19.9-8.9 6-6.6 13.4-4 12.3 4.2-.7 5.4-5.5 9-6.7 17.1-1.3 8.2 5.1 10.2 1.5 15.5-3.6 5.2-10.9-.1-16 5.5-5 5.6.3 12.9-4.3 16.8-4.6 3.9-8.5-3.6-13.9-1.2-5.4 2.5-.8 8.4-9 12s-24.7 1.8-24.7 1.8z"/>
+      <path d="M575 794c31.1-11.5 58.3-39.3 81.5-77.3-12.2 22.6-41.4 67.4-83 80.5l1.5-3.2z"/>
+      <path d="M616.1 768.7c3-6.2 2.8-10.8 3-15.7.4 4.4.9 8.8-.7 14.3l-2.2 1.4zm19.9-22.3c1.3-6.7 0-11.2-.9-16 1.4 4.2 3 8.4 2.7 14l-1.8 2zm-3.5 6.5c6-3.1 10.4-3 15.1-3.3-4.3-.3-8.5-.7-13.7 1l-1.4 2.3zm-19 19.8c5.8-3 10.3-3 15-3.3-4.3-.3-8.5-.7-13.7 1l-1.4 2.3zm-46.2-31.5c-7.9-5.6-18.3-4.8-24.7-9.3-6.9-4.6 3.6-8.6-1.8-12-5.4-3.4-12.4 3-19.8-1.6-7.4-4.7-3.8-12.4-10-15.5-6.3-3-9 5.7-16.2 1.2s-4.5-15-12.5-20.8c-7.9-5.8-6.4-14.4 2.4-14.3 5.8 0 10.4 4.9 19.1 5.2 8.7.2 5-4.4 11-1 6.2 3.2 5 12 11.6 17 6.7 4.8 15.2-4.7 20-.2s-2.4 10 1 15.6 9-.2 14 8.4 5.9 27.3 5.9 27.3z"/>
+      <path d="M573.4 753.5c-17-33.1-50.6-59.7-94.2-80.4 25.7 10.6 77.4 37 97.8 81.6l-3.6-1.2z"/>
+      <path d="M540.3 711c-7-2.4-11.9-1.6-17-1.2 4.6-1 9.2-2.1 15-1l2 2.2zm-26.6-19c-7.3-.7-11.8 1.4-16.7 3 4.2-2.1 8.3-4.3 14.3-4.8l2.4 1.7zm7.4 3c-4.3-6.2-4.8-11.3-6-16.4.4 4.8.7 9.6 3.3 15.1l2.7 1.2zm23.8 18.5c-4.2-6.2-4.8-11.2-5.9-16.4.4 4.9.6 9.6 3.3 15.2l2.6 1.2zm43.1 36.9c4.5-7.7 3-17.5 6.5-23.8 3.7-6.7 8 3 10.6-2.3 2.6-5.2-3.6-11.5 0-18.7s10.7-4.3 13-10.3c2.3-6-5.7-8-2.2-15 3.5-7.1 13-5 17.7-13 4.5-7.7 12.3-6.8 12.8 1.5.4 5.5-3.6 10-3.2 18.2.4 8.2 7 9 4.5 14.8-2.5 5.9-10.7 2.2-14.5 8.8-4 6.5 2.7 12.5-1 17.3-3.7 4.8-9-1.7-13.9 1.9-4.8 3.5 1 8.3-6.4 13.5s-23.9 7-23.9 7z"/>
+      <path d="M577.5 756.8C605.8 739 627 706 642.3 664c-7.6 24.7-27.4 74.7-65.6 96.3l.8-3.4z"/>
+      <path d="M613 723.3c1.6-6.6.5-11.2-.2-16 1.2 4.3 2.5 8.5 2 14.1l-1.9 2zm15-26c0-6.9-2.1-11-4-15.5 2.3 3.9 4.5 7.6 5.4 13.2l-1.4 2.3zm-2.1 7.1c5.2-4.3 9.6-5.1 14.1-6.5-4.3.7-8.5 1.1-13.2 4l-1 2.5zM611 727.8c5.1-4.3 9.6-5 14-6.4-4.2.6-8.4 1-13.2 3.9l-.8 2.5zM557.4 639c3.6-8.6.8-18.5 3.6-25.6 3-7.5 8.7 2 10.7-3.8 2.1-5.9-5.2-11.5-2.4-19.5s10.6-6 12.2-12.6c1.6-6.6-7-7.5-4.3-15.3 2.7-7.9 13-7.1 16.8-16 3.7-8.6 12-8.8 13.6-.3 1 5.7-2.5 11-1 19.5 1.4 8.4 8.4 8.2 6.6 14.7-1.9 6.5-10.8 3.8-14 11.2-3.2 7.3 4.4 12.6 1.2 18.2-3.2 5.5-9.6-.6-14.1 3.8-4.6 4.4 2 8.5-5 15-7 6.4-24 10.7-24 10.7z"/>
+      <path d="M547.3 647.1c27-22.6 44.8-59.9 55.3-105.8-4.6 26.8-18.8 81.6-55.7 109.5l.4-3.7z"/>
+      <path d="M579.8 607.3c.8-7.2-.9-11.7-2.2-16.7 1.8 4.3 3.7 8.5 4 14.4l-1.8 2.3zM592 578c-.9-7.2-3.7-11.1-6.1-15.6 2.7 3.7 5.6 7.3 7.2 13L592 578zm-1.3 7.7c4.8-5.2 9.3-6.7 13.9-8.7-4.4 1.2-8.7 2.3-13.3 5.9l-.6 2.8zm-12.4 26.4c4.8-5.2 9.3-6.7 13.9-8.7-4.4 1.3-8.7 2.4-13.3 6l-.6 2.7z"/>
+      <path d="M533.4 605.3c4.2-6.6-1-18.7 2.2-24 3.6-5.8 7.3 2.8 9.8-1.7 2.6-4.5-.4-10.3 3-16.4 3.6-6.2 8.6-1.7 10.9-6.9 2.2-5.2-2-5.3 1.3-11.4 3.4-6 12-3.9 16.5-10.6 4.4-6.6 11.5-5.5 11.8 1.9.2 4.8-2.9 7.1-2.7 14.4.1 7.2 4.6 9.5 2.2 14.6-2.5 5-9 1.5-12.6 7.1-3.8 5.6.3 7.8-3.2 11.8-3.5 4-6.4 1.5-10.9 4.4-4.5 3-.7 11.3-7.6 15.6s-20.7 1.2-20.7 1.2z"/>
+      <path d="M522.1 611.2c24.3-10.6 48.6-42.4 63.7-78.7-7.5 21.4-27.5 63.7-63 81l-.7-2.3z"/>
+      <path d="M556.9 582.6c1.7-5.8.8-9.8.3-14 1 3.8 2 7.5 1.5 12.5l-1.8 1.5zm14.4-22.2c.2-6-1.6-9.7-3.2-13.8 1.9 3.5 4 6.9 4.6 11.8l-1.4 2zm-2 6.2c4.8-3.6 8.9-4.1 13-5.1-3.9.4-7.8.6-12.2 2.8l-.9 2.3zm-14.2 20c4.8-3.6 8.9-4.2 13-5.2-3.8.4-7.7.6-12.2 2.9l-.8 2.2zm-173.3 425.7c3.6-9 1-19.7 3.7-27.1 2.9-7.9 8.4 2.5 10.4-3.6s-5-12.5-2.2-20.9c2.8-8.4 10.3-5.8 12-12.8 1.5-7-6.8-8.3-4.1-16.5 2.6-8.3 12.5-7 16.3-16.2 3.7-9 11.7-8.8 13.2.4 1 6-2.4 11.5-1 20.6 1.3 9.1 8.1 9.3 6.3 16-1.8 6.9-10.5 3.6-13.7 11.3-3.1 7.6 4.3 13.7 1.1 19.4-3.2 5.7-9.3-1-13.8 3.4-4.4 4.4 2 9.2-4.9 15.7-6.8 6.5-23.3 10.3-23.3 10.3z"/>
+      <path d="M375.2 1016.4c26.5-22.7 40.7-57.4 51.2-105.9-4.7 28.3-15.5 82-51.6 109.8l.4-3.9z"/>
+      <path d="M403.8 979.7c.8-7.6-.8-12.6-2-18 1.6 4.8 3.5 9.4 3.6 15.7l-1.6 2.3zm12-30.5c-.7-7.7-3.4-12-5.8-17 2.7 4.2 5.5 8.1 7 14.3l-1.1 2.7zm-1.2 8.1c4.7-5.3 9.1-6.6 13.5-8.6-4.2 1.1-8.5 2-13 5.7l-.5 3zM402.4 985c4.7-5.3 9.1-6.7 13.5-8.6-4.2 1.1-8.4 2-12.9 5.6l-.6 3zm158.7-152.7c-7.2-7.5-19.3-10.1-25.2-16-6.3-6.3 7-6.5 2-11.2-5-4.7-15.2-1.3-22-7.7-7-6.5-.4-12.1-6.5-16.8-6-4.7-12 2.2-18.7-4.1-6.8-6.3-.2-14.6-7.4-22.3-7-7.6-2.6-14.7 7.5-11.8 6.6 1.9 10.2 7.6 20 10.6 10 3 13.7-3 19.5 1.8 5.9 4.8-2 11.2 3.9 17.6 6 6.4 16 2.6 20 8.1 4 5.6-6 8-4 14 2 6.2 10.3 2.7 13.1 11.8 2.9 9.2-2.2 26-2.2 26z"/>
+      <path d="M540.3 797c-7.2-4.3-13-5.1-19-6.5 5.6.7 11.1 1.1 17.6 4l1.4 2.5zm-24-25.2c-8.2-2.9-14-2.5-20.2-2.6 5.6-.5 11-1.2 18 .3l2.1 2.3zm7.4 5c-2.8-6.8-1.8-11.4-1.4-16.3-1.1 4.4-2.5 8.6-1.3 14.3l2.7 2zm21 23.9c-2.7-6.8-1.7-11.4-1.3-16.3-1.1 4.4-2.5 8.7-1.3 14.4l2.6 1.9z"/>
+      <path d="M561.7 840c-8.5-34.5-35.7-63.7-78.5-95.8 25.8 17.5 73.7 52.4 82.2 98l-3.7-2.2z"/>
+      <g id="d">
+        <path d="M527.3 890.5c-3.4-8.8-19.8-13-22.7-20.1-3-7.6 9.1-5.3 6.6-11-2.6-5.7-13.4-4-17-11.8-3.4-7.8 5-12.3 1.3-18.2-3.6-5.9-11.8 0-15.4-7.5-3.5-7.6 6-14.8 2.7-24-3.2-9 4-15.4 11.8-10.6 5.3 3.2 6.2 9.6 13.9 14.4 7.7 4.9 13.7-.6 17 5.4 3.2 6-6.7 11-4 18.5 2.8 7.6 13.6 5.6 15 12 1.2 6.3-9 6.9-9.7 13.4-.7 6.5 8.3 4.5 7 14.3s-6.5 25.2-6.5 25.2z"/>
+        <path d="M520 853.1c-4.7-5.7-13-9-18-11.4a58 58 0 0117.8 8.5l.2 3zm-10-24.9c.4-7.3 3.2-11.8 5.7-16.7-2.9 4.2-5.9 8.3-7.2 14.3l1.6 2.4zm12.5 26c.3-7.3-.1-9.7 2.3-14.6-2.9 4.2-2.6 6.3-3.9 12.3l1.6 2.4z"/>
+        <path d="M525.2 906.6c6.8-36.5-12.8-78.4-38.3-118.7 16.1 22.4 52.2 73.9 40.7 121.6l-2.4-2.9z"/>
+        <path d="M505.4 821.9c-6.2-4.4-11.7-5.1-17.2-6.4 5.2.5 10.5.9 16.2 3.6l1 2.7z"/>
+      </g>
+      <path d="M493.6 566.1c-2-7-11.8-8.6-13.4-14.2-1.8-6 5.2-4.7 3.7-9.2-1.5-4.5-6.4-4.9-8.4-11s3-8.2 1-12.8c-2-4.6-4.2-1-6.2-7s3.4-12.3 1.5-19.6c-1.9-7 2.1-12.6 6.6-9.2 3 2.3 3 6.2 7.4 9.7 4.4 3.6 7.9.9 9.8 5.5 1.8 4.7-3.3 8.5-1.8 14.5 1.6 6 4.9 3.7 5.6 8.8.8 5-2.1 6.2-2.5 11.6-.4 5.3 6.4 6.4 5.7 14.4-.7 8-9 18.5-9 18.5z"/>
+      <path d="M491.7 578.8c5.2-26.2-2.3-63.4-17-94.8 9.3 17.3 25.2 56 18.7 95.4l-1.7-.6z"/>
+      <path d="M491.1 534.4c-2.7-4.4-5.5-5.7-8.3-7.5 2.8 1.1 5.5 2 8.2 5.1l.1 2.4zm-6.5-23.8c-3.5-3.2-6.6-3.5-9.8-4.2 3 .1 6 .1 9.3 2l.6 2.2zm2.7 5c.2-6 1.8-9.8 3.2-14-1.6 3.7-3.3 7.1-4.1 12l1 2zm5.3 22.3c.1-6 1.7-9.8 3.1-13.9-1.6 3.6-3.3 7-4 12l.9 1.9zm17 37.3c-.1-6.9-6.8-11.4-7.1-16.9-.3-5.8 14.6-4.3 14.2-8.8-.4-4.4-5.4-4.8-6-10.8s5.4-8 4.4-12.5-4.1-1-4.7-6.9c-.6-5.8 2-12.4 1.8-19.5-.1-7 5.6-12.4 9.4-9 2.6 2.2 1.5 6 5.2 9.5s8.4 1 11.3 4.5c3 3.5 2.3 6.4 2.4 12.3 0 6 4.1 3.6 3.6 8.6-.5 5-3.9 6.1-5.7 11.4-1.8 5.2 5.2 6.2 2.3 14.1-2.8 7.9-31 24-31 24z"/>
+      <path d="M499.2 585.6c24.4-21.6 36.5-63.2 18.3-94a68.8 68.8 0 018.1 50.3 92.1 92.1 0 01-24.8 44.3l-1.6-.6z"/>
+      <path d="M522.3 550.8a31.2 31.2 0 00-8.7-11.5c2.6 1 7.1 6.2 9.2 9.2l-.5 2.3zm4-26.8c-3-3.2-6.1-3.5-9.2-4.2 3 .1 6.2.1 9.2 2v2.2zm1.1.2c1.8-6 4.4-9.6 7-13.7-2.7 3.5-5.4 7-7.4 11.8l.4 1.9zm-4.2 27.5c1.7-5.9 7.8-3.8 12.4-5.2-3.5 0-10.8-1.5-13 3.3l.6 1.9zm-44.3 24.2c-6.5-4.6-4.6-15.7-9.7-19.5-5.5-4-6.7 3.8-10.8.6-4-3.2-2.7-8.6-8.2-13-5.6-4.4-9.5.2-13.5-3.6-4-3.9.5-4.8-4.9-9.2-5.4-4.3-13.9-.8-20.6-5.5-6.7-4.6-13.8-2.3-11.9 3.8 1.3 4 5.2 5.4 7.3 11.4 2 6-2 8.8 2.1 12.5 4.1 3.7 9.9-.5 15.5 3.4s2 6.5 7 9.2 7.1 0 12.7 1.5c5.7 1.5 4.2 9.2 12.7 11.4 8.5 2.1 22.3-3 22.3-3z"/>
+      <path d="M492.6 578.5c-28.8-4-64.1-25.6-91.1-52.7 14.5 16.3 48.3 47.3 91 54.8l.1-2z"/>
+      <path d="M447.2 561.7c-3.5-4.5-3.8-8-4.6-11.6.2 3.3.1 6.7 2.3 10.6l2.3 1zm-22-15.6c-2-5-1.1-8.4-.7-12-1 3.2-2 6.4-1.3 10.7l2 1.4zm4.1 4.7c-6.2-2-10.6-1.6-15.3-1.6 4.2-.5 8.4-1 13.7 0l1.6 1.6zm21 13.8c-6.2-2-10.6-1.7-15.3-1.7 4.2-.4 8.4-1 13.7 0l1.6 1.7zm50.2 41c-8-3.5-6.6-15.4-13-18.4-6.8-3-7.7 5.4-12.7 2.9-5.1-2.6-3.9-8.5-10.8-12-7-3.4-11.3 2.3-16.3-1-5-3.2.3-5-6.5-8.5s-16.5 2-25-1.6c-8.1-3.4-16.4.4-13.7 6.4 1.8 4 6.6 4.5 9.5 10.4 2.9 5.8-1.7 9.6 3.5 12.6s11.7-2.5 18.6.4c7 3 2.9 6.4 9 8.2 6 1.8 8.5-1.5 15.3-1 6.8.4 5.7 8.7 16 9.2 10.2.6 26.1-7.6 26.1-7.6z"/>
+      <path d="M517 605.6c-34.5 1.6-78.1-13.7-112.2-36.4 18.4 14 61 39.5 112.3 38.5l-.1-2.1z"/>
+      <path d="M461.8 597.2c-4.5-3.9-5.1-7.5-6.3-11.1.4 3.5.6 7 3.5 10.6l2.8.5zm-27.3-11.7c-2.8-4.8-2-8.5-1.8-12.4-.9 3.6-2 7.1-.6 11.4l2.4 1zm5.3 4c-7.5-.8-12.8.5-18.4 1.4 5-1.3 10-2.7 16.3-2.8l2 1.4zm26 10c-7.6-.8-12.8.5-18.4 1.5 5-1.4 9.9-2.8 16.3-2.8l2 1.4z"/>
+      <path d="M517.5 629.7c-8.3-3-7.6-15-14.2-17.5-7-2.7-7.3 5.9-12.6 3.7-5.2-2.2-4.3-8.2-11.5-11.2s-11.1 3-16.3 0c-5.2-2.9 0-5-7-8s-16.4 3-25 0c-8.5-3-16.5 1.4-13.4 7.2 2 3.9 7 4.1 10.2 9.7 3.2 5.7-1 9.7 4.3 12.4 5.3 2.7 11.5-3.2 18.6-.8 7.2 2.5 3.3 6.2 9.5 7.6 6.1 1.4 8.4-2 15.2-2 6.8 0 6.3 8.3 16.5 8.2 10.3-.2 25.7-9.3 25.7-9.3z"/>
+      <path d="M534 628.6c-34.4 3.9-79-8.6-114.4-29 19.3 12.7 63.4 35.4 114.6 31.1l-.3-2z"/>
+      <path d="M478.3 623.9c-4.8-3.7-5.6-7.2-7-10.8.6 3.5 1 7 4.1 10.4l3 .4zm-28-10c-3-4.6-2.6-8.4-2.7-12.3-.6 3.7-1.4 7.3.2 11.4l2.5 1zm5.5 3.7c-7.6-.4-12.7 1.3-18.3 2.6 5-1.7 9.8-3.4 16.2-3.9l2 1.3zm26.6 8.3c-7.6-.3-12.7 1.3-18.3 2.6 5-1.6 9.8-3.4 16.2-3.8l2 1.2z"/>
+      <g id="a">
+        <path d="M207.2 997.4c6.6-4.3 15.2-3.2 20.6-6.6 5.7-3.5-3-7 1.5-9.7 4.5-2.5 10.3 3 16.5-.5s3.3-9.9 8.5-12.1c5.2-2.3 7.3 5 13.4 1.5 6-3.3 3.8-12 10.6-16.4 6.6-4.4 5.5-11.4-1.8-11.7-4.9-.1-8.7 3.6-16 3.5-7.2 0-8-6-13.1-3.6-5 2.4-1.5 9.7-7.1 13.4-5.6 3.8-11.2-2-15.2 1.5s1.9 8-1 12.5-7.4-.5-11.6 6.3c-4.3 6.8-5.3 21.9-5.3 21.9z"/>
+        <path d="M202 1007c14.5-26 42.6-46.3 79-61.5-21.5 7.7-64.6 27.1-82 62.4l3-.8z"/>
+        <path d="M230 974c5.7-1.7 9.7-.9 14-.4a31 31 0 00-12.5-1.4l-1.6 1.8zm22.1-14.5c6.1-.2 9.8 1.6 13.9 3.1-3.5-1.8-7-3.8-11.9-4.4l-2 1.3zm-6.1 2.2c3.6-4.9 4.1-8.9 5.1-13-.4 3.8-.6 7.7-2.9 12l-2.2 1zm-20 14.1c3.6-4.8 4.1-8.9 5.1-13-.4 3.9-.6 7.7-2.8 12.1l-2.3 1z"/>
+      </g>
+      <g id="b">
+        <path d="M210.3 1024.5c9 3.6 19.3 0 26.7 2.7 7.8 3-1.9 9.7 4.2 11.8 6.2 2 11.9-6.4 20.2-3.7 8.4 2.8 6.5 11.5 13.4 13 6.9 1.4 7.6-8.2 15.8-5.6 8.2 2.6 7.6 14 17 17.8 9 3.8 9.4 12.9.6 15.1-5.9 1.5-11.5-2.1-20.2 0-8.8 2-8.4 9.7-15.2 8-6.8-1.7-4.2-11.8-12-15-7.6-3.2-13 5.6-18.8 2.3-5.8-3.4.3-10.7-4.3-15.6-4.6-4.8-8.8 2.7-15.7-4.7-6.8-7.4-11.7-26.1-11.7-26.1z"/>
+        <path d="M201.6 1013.7c24 29 63.2 46.9 111.1 56.2-27.9-3.8-85.2-16.8-115-56.5l3.9.3z"/>
+        <path d="M243.7 1047.8c7.5.6 12.2-1.5 17.3-3.3-4.5 2.2-8.8 4.6-15 5.1l-2.3-1.8zm30.6 12.2c7.4-1.3 11.5-4.6 16-7.6-3.7 3.3-7.4 6.7-13.3 8.8l-2.7-1.2zm-8-1c5.5 5.1 7.2 10 9.4 15-1.4-4.8-2.7-9.6-6.5-14.5l-3-.5zm-27.8-12.4c5.5 5 7.2 10 9.4 15-1.4-4.8-2.6-9.6-6.5-14.5l-2.9-.5z"/>
+      </g>
+      <use width="744.1" height="1052.4" transform="translate(44 17.4)" xlink:href="#a"/>
+      <use width="744.1" height="1052.4" transform="translate(59.3 11.2)" xlink:href="#b"/>
+      <g id="e">
+        <path d="M353.5 1034.1c9.8 1 18.8-5.3 26.7-4.7 8.4.6.7 9.8 7.2 10 6.4.3 9.9-9.3 18.7-9 8.8.4 9.2 9.2 16.3 8.7 7-.5 5.3-9.9 14-9.6s11 11.2 21 12.3c9.8 1.1 12.5 9.7 4.5 14.3-5.3 3-11.7 1-19.7 5.4s-5.7 11.7-12.7 12c-7 .1-7.1-10.2-15.5-11.2-8.3-.9-11.3 9-17.8 7.4-6.5-1.6-2.4-10.3-8.1-13.7-5.8-3.3-8 5-16.5-.2s-18-21.7-18-21.7z"/>
+        <path d="M342.3 1026.2c30.8 21 73.5 27.4 122.6 23.2-28.2 4-87.3 7.3-126.4-22.4l3.8-.8z"/>
+        <path d="M392 1047.2c7.4-1.4 11.5-4.8 16-7.9-3.8 3.4-7.4 6.8-13.2 9l-2.8-1zm33 3.3c6.8-3.3 10-7.6 13.6-11.7-2.8 4.2-5.5 8.4-10.7 12l-3-.3zm-8.1 1.2c6.6 3.4 9.5 7.6 13 11.7-2.7-4.1-5.1-8.4-10-12l-3 .3zm-30.3-4.2c6.7 3.3 9.6 7.6 13 11.7-2.6-4.2-5-8.4-10-12l-3 .3z"/>
+      </g>
+      <path d="M292.7 1024.5c5-5 13.2-6.2 17.3-10.2 4.4-4.3-4.5-5.2-1-8.4s10.2 0 15-4.4c4.8-4.3.5-8.8 4.7-12 4.3-3 8 2.4 12.7-1.8 4.8-4.2.5-10.7 5.6-16 5-5.2 2.1-10.7-4.7-9.2-4.5 1-7 5-13.8 6.6-6.7 1.7-9-3-13 .2-4.1 3.2 1 8.4-3.1 12.7-4.2 4.4-10.8 1-13.7 4.8-2.8 3.9 3.8 6.2 2.3 10.6-1.5 4.4-7 1.3-9 7.9-2.2 6.6.7 19.3.7 19.3z"/>
+      <path d="M292 1030.3c6.7-25 25.7-44.8 55.3-65.9-17.7 11.3-50.8 34.2-57.7 67.3l2.5-1.4z"/>
+      <path d="M307.6 1000c5-2.9 8.9-3.1 13-3.8-3.8.2-7.6.2-12 1.9l-1 1.8zm16.8-17.3c5.5-1.6 9.4-1 13.6-.7-3.7-.7-7.4-1.5-12-.8l-1.6 1.5zm-5.1 3.3c2-4.8 1.5-8.3 1.3-12 .7 3.4 1.5 6.6.5 10.7l-1.8 1.3zm-14.8 16.3c2-4.8 1.5-8.2 1.4-11.9.6 3.3 1.4 6.5.5 10.7l-1.9 1.2zm41 15c4-6.2 12-9.1 15.4-14.1 3.5-5.3-5.7-4.4-2.8-8.4 3-4 10.4-2.1 14.3-7.6 4-5.5-1.2-9.3 2.4-13.3 3.7-4.1 8.6.8 12.5-4.5 4-5.4-1.7-11.2 2.4-17.7 4-6.4 0-11.5-6.6-8.6-4.4 2-6.1 6.6-12.6 9.7-6.4 3-9.8-1.4-13.2 2.8-3.5 4.1 2.8 8.4-.6 13.8-3.3 5.4-10.7 3.2-12.8 7.7-2.1 4.6 5 5.7 4.4 10.5-.6 4.8-6.7 2.7-7.6 10-.8 7.2 4.7 19.7 4.7 19.7z"/>
+      <path d="M346 1023.4c1.6-27.1 16.9-51.5 42.6-79.3-15.7 15.3-44.6 45.6-45 81.3l2.3-2z"/>
+      <path d="M355.6 988.8c4.4-3.8 8.3-4.9 12.3-6.4-3.8 1-7.6 1.7-11.7 4.3l-.6 2.1zm13.5-21.1c5.3-2.8 9.3-3 13.6-3.5-4 0-7.8 0-12.4 1.6l-1.2 1.9zm-4.6 4.3c1.2-5.3-.1-8.8-1-12.5 1.3 3.2 2.8 6.4 2.6 10.9l-1.6 1.6zM353 992c1-5.4-.2-8.9-1-12.6 1.3 3.3 2.7 6.4 2.6 10.9L353 992z"/>
+      <g id="f">
+        <path d="M505.9 948.8c7.7-4.2 11.3-13.2 17.4-16.7 6.6-3.7 5.3 6.8 10.2 3.8 5-3 2.8-11.8 9.5-16 6.7-4 11.3 2.3 16.3-1.6s-.9-10 5.7-14c6.5-4.1 13.6 2.8 21.5-1.4 7.8-4 14 1 10.3 8.3-2.5 5-8.2 6.6-12 13.8-3.8 7.2 1.5 11.4-3.6 15-5.1 3.6-10.2-3.9-16.8-.5-6.6 3.5-4 12.2-9.6 14.3-5.6 2-6.8-6.4-12.7-6-5.9.3-3.5 7.6-12.3 8-8.8.3-24-7-24-7z" transform="translate(9.4 -7.9)"/>
+        <path d="M493.7 948.5c33 .2 67.7-16.3 102-43.7-18.9 17-61 48.6-104.4 46.2l2.4-2.5z" transform="translate(9.4 -7.9)"/>
+        <path d="M540.7 939.4c4.8-4.8 6.1-9.3 8-13.8-1.1 4.3-2.1 8.6-5.4 13.2l-2.6.6zm26-14c3.5-5.8 3.7-10.5 4.5-15.3-.1 4.5 0 8.9-2.2 14.1l-2.3 1.2zm-5.4 5c6.6-1 10.7.8 15.3 2.1-4-1.8-7.8-3.7-13.2-3.9l-2.1 1.7zm-24.4 11.8c6.5-.9 10.7.8 15.3 2.2-4-1.8-7.9-3.7-13.3-4l-2 1.8z" transform="translate(9.4 -7.9)"/>
+      </g>
+      <path d="M583 716.2c3.6-8.6.8-18.5 3.6-25.6 3-7.5 8.7 2 10.7-3.9s-5.2-11.5-2.3-19.4 10.5-6 12.1-12.6c1.6-6.6-7-7.5-4.3-15.4 2.8-7.8 13-7 16.8-15.9 3.7-8.6 12-8.8 13.6-.3 1 5.7-2.5 11-1 19.4 1.4 8.5 8.4 8.3 6.6 14.8-1.9 6.5-10.8 3.8-14 11.2-3.2 7.3 4.4 12.6 1.2 18.2-3.2 5.5-9.6-.6-14.1 3.8-4.6 4.4 2 8.5-5 15-7 6.4-24 10.7-24 10.7z"/>
+      <path d="M573 724.4c27-22.6 44.7-59.9 55.2-105.8-4.6 26.8-18.8 81.6-55.7 109.4l.4-3.6z"/>
+      <path d="M605.4 684.6c.9-7.2-.9-11.7-2.2-16.7 1.8 4.3 3.7 8.5 4 14.4l-1.8 2.3zm12.3-29.2c-.9-7.2-3.7-11.2-6.1-15.6 2.7 3.7 5.6 7.3 7.2 13l-1.1 2.6zm-1.3 7.7c4.8-5.2 9.3-6.7 13.9-8.8-4.4 1.3-8.7 2.4-13.3 6l-.6 2.8zM604 689.5c4.8-5.2 9.3-6.7 13.9-8.7-4.4 1.3-8.7 2.4-13.3 6l-.6 2.7z"/>
+      <path d="M572.3 672c4.4-7.6 3-17.3 6.4-23.6 3.7-6.7 8 3 10.6-2.3 2.7-5.3-3.6-11.6 0-18.8 3.7-7.1 10.8-4.3 13-10.3 2.4-6-5.7-8-2.2-15 3.5-7.1 13-5 17.7-13 4.6-7.6 12.4-6.8 12.9 1.5.4 5.5-3.6 10-3.2 18.2.3 8.2 7 9 4.5 14.8-2.6 6-10.7 2.3-14.6 8.8-3.9 6.5 2.7 12.6-1 17.4-3.7 4.8-9-1.8-13.8 1.8-4.8 3.5.9 8.3-6.4 13.5s-24 7-24 7z"/>
+      <path d="M561.8 678.5c28.2-17.8 49.4-50.8 64.8-92.9C619 610.3 599 660.3 561 682l.8-3.4z"/>
+      <path d="M597.2 645c1.6-6.6.5-11.2-.1-16 1.1 4.3 2.5 8.5 2 14.1l-2 2zm15-26c0-6.9-2-11-3.9-15.5 2.2 3.9 4.5 7.6 5.3 13.2l-1.4 2.3zm-2 7.1c5.1-4.3 9.5-5.1 14-6.5-4.2.7-8.4 1.1-13.2 4l-.9 2.5zm-14.9 23.5c5.2-4.4 9.6-5.2 14.1-6.5-4.2.6-8.5 1-13.2 3.9l-.9 2.6zm-28.6 126.3c-7.8-5.6-18.2-4.8-24.7-9.2-6.8-4.7 3.7-8.6-1.7-12-5.4-3.5-12.5 3-19.9-1.7-7.3-4.7-3.8-12.3-10-15.4-6.3-3.1-8.9 5.7-16.1 1.2-7.3-4.5-4.5-15-12.6-21-7.8-5.7-6.4-14.3 2.4-14.2 5.9 0 10.4 4.9 19.1 5.2 8.8.3 5-4.3 11.1-1s4.9 12 11.5 17c6.7 4.9 15.2-4.7 20-.1 5 4.5-2.3 9.9 1 15.6 3.5 5.7 9-.3 14 8.3 5 8.6 6 27.3 6 27.3z"/>
+      <path d="M572.9 788.2c-17-33.1-50.6-59.6-94.2-80.4 25.7 10.6 77.4 37 97.7 81.6l-3.5-1.2z"/>
+      <path d="M539.7 745.8c-7-2.5-11.8-1.6-17-1.3 4.7-1 9.2-2 15.2-1l1.8 2.3zm-26.5-19.1c-7.4-.6-11.8 1.4-16.8 3 4.3-2 8.4-4.3 14.4-4.8l2.4 1.8zm7.3 3c-4.2-6.2-4.8-11.2-5.9-16.4.4 4.8.6 9.6 3.3 15.1l2.6 1.2zm23.9 18.5c-4.2-6.1-4.8-11.1-6-16.3.5 4.8.7 9.6 3.3 15.1l2.7 1.2zm30.3 95.2c5.8-6.6 6.3-16.4 11-21.9 4.8-5.8 7.1 4.6 10.7 0 3.7-4.6-1.2-12 3.7-18.3 5-6.3 11.3-2 14.8-7.4 3.4-5.4-4-9 .7-15.2 4.8-6.2 13.7-2.2 19.8-9 6-6.5 13.5-4 12.4 4.2-.7 5.5-5.5 9-6.7 17.2-1.3 8.1 5 10.2 1.5 15.4-3.6 5.2-10.9 0-16 5.5s.2 12.9-4.3 16.8c-4.6 4-8.5-3.6-13.9-1.1-5.4 2.4-.8 8.3-9 11.9-8.1 3.5-24.7 1.9-24.7 1.9z"/>
+      <path d="M563.2 847.5c31.1-11.6 58.3-39.4 81.5-77.3-12.2 22.6-41.4 67.4-83 80.5l1.5-3.2z"/>
+      <path d="M604.3 822.2c3-6.2 2.8-10.9 3-15.8.4 4.5.9 8.9-.7 14.3l-2.3 1.5zm19.9-22.3c1.3-6.8 0-11.3-.9-16 1.4 4.2 3 8.3 2.7 14l-1.8 2zm-3.5 6.5c6-3.2 10.4-3 15.1-3.4-4.3-.3-8.5-.7-13.7 1l-1.4 2.4zm-19 19.8c5.8-3.1 10.3-3 15-3.4-4.3-.2-8.5-.7-13.7 1l-1.4 2.4z"/>
+      <use width="744.1" height="1052.4" transform="rotate(15 310 758.4)" xlink:href="#c"/>
+      <use id="c" width="744.1" height="1052.4" transform="rotate(5 93.2 577.1)" xlink:href="#d"/>
+      <use width="744.1" height="1052.4" transform="rotate(-10 275 690.3)" xlink:href="#e"/>
+      <use width="744.1" height="1052.4" transform="rotate(10 225.4 653.9)" xlink:href="#f"/>
+    </g>
+    <use width="1" height="1" transform="matrix(-1 0 0 1 840 .1)" xlink:href="#g"/>
+  </g>
+  <g stroke="#d4af37" stroke-width=".5">
+    <path fill="#007ea8" d="M291 195.6l-14 17.5a26.2 26.2 0 017.3 17.9 53.7 53.7 0 01-2.8 17.5v.2H320V196c-8.5 5.2-20.1 7.3-29-.4z"/>
+    <path fill="#fff" d="M349 195.6c-8.8 7.7-20.5 5.6-29 .4v52.7h38.5v-.2a53.7 53.7 0 01-2.8-17.5c0-6 2.7-13.5 7.3-17.9l-14-17.5z"/>
+    <path fill="#d91023" d="M281.5 248.7c-2.1 6.5-4.8 12.2-5.6 21.6-1.2 14 10 21.5 14.6 23.7 7.2 3.4 14.6 2.2 22.3 3.2 3.5.5 5.5 2.7 7.2 4.5 1.7-1.8 3.7-4 7.3-4.5 7.6-1 15 .2 22.2-3.2 4.6-2.2 15.8-9.8 14.6-23.7-.8-9.4-3.5-15.1-5.6-21.6h-77z"/>
+  </g>
+  <g stroke="#d4af37" stroke-width="3">
+    <g fill="#00a854" stroke-width="6.2" transform="matrix(.08444 0 0 .08889 232.8 247.5)">
+      <g id="j" stroke-width="3.1">
+        <path d="M1074.7-201.4s5.9-20.4 18-29.3c12-9 25.2-5.7 33.2-8.9-5.4 6.8-6 20.3-18 29.3s-33.2 8.9-33.2 8.9zm48.7-36.4c-8.3 2.3-13.5-.3-25 4m17.4 1.8c-8.4 2.2-14.1-1.4-25.4 3.4m16.2 3.4c-8 2.8-11.7-1.2-22.5 4m13.3 3c-8 2.7-9.6-1.8-17.5 4.2m9.3 1.8c-5.2 1.7-7.5-.2-12.2 5m46.4-30.5c-4.5 7.3-3.5 13-10.8 22.8m3.2-17.1c-4.5 7.3-2.8 13.9-10.5 23.3m1.3-16.5c-5 6.8-2.2 11.5-10.3 20.4m1-13.5c-4.9 6.8-1 9.7-9 15.6m.9-9.5c-3 4.5-2 7.3-8.3 10.2"/>
+        <path d="M1130.8-243.6l-24.2 18-31.6 24 32-23.5 24.2-18m-23-73.9s16.7 13 20.5 27.5c3.8 14.5-4 25.5-4 34.1-4.4-7.4-16.7-13-20.7-27.5s4.1-34.1 4.1-34.1zm15.6 58.7c1-8.6 5.3-12.4 5.7-24.6m-8.1 15.3c1-8.5 6.4-12.6 6.2-24.7m-9.2 13.7c.3-8.4 5.4-10.4 4.6-22.4m-7.6 11.3c.4-8.4 5.2-8.3 2.5-17.9m-5.1 8c.3-5.4 3-7-.2-13.2m11.2 54.5c-5.1-7-10.8-8.1-17.1-18.5m14.7 9.3c-5.2-7-12-7.8-17.8-18.4m14.8 7.3c-4.5-7.1-9.9-6.3-15.2-17.1m12.2 6c-4.5-7.1-8.6-4.6-11-14.2m8.4 4.3c-3-4.5-6-4.5-6.4-11.5"/>
+        <path d="M1126.6-249.3l-7.8-29.1-10.6-38.3 10 38.5a5074.4 5074.4 0 007.8 29"/>
+        <g id="h">
+          <path d="M1206.4-261.9s16.8 13 20.6 27.6c3.8 14.5-4 25.5-4 34-4.4-7.4-16.7-13-20.6-27.4-4-14.5 4-34.2 4-34.2zm15.7 58.7c1-8.5 5.4-12.4 5.7-24.6m-8.1 15.4c1-8.6 6.4-12.6 6.2-24.8m-9.2 13.7c.3-8.4 5.4-10.4 4.6-22.4m-7.6 11.3c.4-8.4 5.2-8.2 2.5-17.8m-5.1 8c.4-5.5 3-7-.2-13.2m11.2 54.4c-5.1-6.9-10.8-8-17.1-18.5m14.7 9.3c-5.2-6.9-12-7.7-17.8-18.3m14.8 7.2c-4.5-7-9.9-6.3-15.1-17m12.1 6c-4.5-7.2-8.6-4.7-11-14.3m8.4 4.4c-3-4.5-6-4.6-6.4-11.5"/>
+          <path d="M1224.9-194.1l-7.8-29.2-10.6-38.2 10 38.4a5155 5155 0 007.8 29.1m-53.8 57.3s2.9-21 13.5-31.6c10.7-10.6 24.2-9.2 31.6-13.5-4.3 7.4-3 20.9-13.5 31.6-10.6 10.6-31.6 13.5-31.6 13.5zm43-43c-8 3.4-13.4 1.7-24.2 7.5m17.4-.7c-8 3.4-14.2.7-24.6 7m16.5 1.1c-7.4 3.9-11.7.5-21.7 7.2m13.6 1c-7.5 3.8-9.7-.4-16.7 6.7m9.5.4c-5 2.4-7.5 1-11.3 6.8m41.5-37c-3.4 8-1.7 13.4-7.5 24.1m.7-17.3c-3.4 7.9-.7 14.1-7 24.6m-1.1-16.5c-3.9 7.4-.5 11.7-7.2 21.7m-1-13.6c-3.8 7.5.4 9.7-6.7 16.7m-.5-9.5c-2.4 5-.9 7.5-6.7 11.3"/>
+          <path d="M1219.9-186.6l-21.3 21.4-27.9 28.2s18.9-18.4 28.3-27.8a5074.4 5074.4 0 0021.4-21.3"/>
+        </g>
+        <path d="M1057-278.6s20.6-5.1 34.4.9c13.8 6 17.5 19 24.3 24.3-8.5-1.2-20.5 5-34.4-.9-13.8-5.8-24.2-24.3-24.2-24.3zm55.9 24c-6-6-6.5-11.8-15.9-19.6m7.1 15.8c-6-6-5.9-12.9-15.6-20.2m5 15.7c-6.3-5.5-4.7-10.7-14.7-17.4m4.2 12.9c-6.4-5.5-3.3-9.2-12.5-13m3.1 9c-4-3.7-3.6-6.7-10.4-8m49.7 24.8c-8.6-.2-13 3.5-25.2 2m16.4-5.8c-8.6-.2-13.4 4.6-25.4 2.6m14.9-7.1c-8.4-.9-11 3.9-22.8 1.3m12.2-5.8c-8.3-.9-8.9 3.9-18-.1m8.6-4c-5.4-.4-7.2 2-13-2"/>
+        <path d="M1121.7-251.2L1094-263l-36.6-15.4 36.3 16a5135.7 5135.7 0 0027.7 12M1072.3-384s14.7-15.3 29.5-17.5c14.9-2.3 25 6.7 33.5 7.6-7.8 3.5-14.7 15.2-29.5 17.6-14.9 2.4-33.5-7.7-33.5-7.7zm60-9.4c-8.4-2-11.8-6.6-23.9-8.2m14.5 9.7c-8.4-2-11.9-7.8-24-8.9m12.6 10.7c-8.3-1.3-9.7-6.5-21.7-7m10.4 8.7c-8.3-1.2-7.7-6-17.5-4.3m7.4 6c-5.4-1-6.6-3.8-13.1-1.3m55.3-5.4c-7.4 4.4-9.2 9.9-20.2 15.1m10.8-13.6c-7.4 4.4-9 11-20.2 15.7m8.8-14c-7.5 3.8-7.3 9.2-18.6 13.3m7.3-11.5c-7.5 3.7-5.5 8-15.3 9.5m5.2-7.9c-4.8 2.5-5.2 5.5-12.1 5.1"/>
+        <path d="M1141.6-395l-29.8 4.6c-13.1 2-39.2 6.4-39.2 6.4l39.3-5.8 29.8-4.6M1102-455s20 7 28.2 19.6c8.2 12.6 4.2 25.5 6.9 33.7-6.4-5.7-19.9-7.1-28.2-19.6-8.3-12.6-6.9-33.7-6.9-33.7zm33.4 50.8c-1.7-8.5 1.1-13.5-2.4-25.2m-2.8 17.2c-1.7-8.5 2.1-14-2-25.5m-4.3 15.9c-2.3-8 1.8-11.6-2.7-22.7m-3.7 13c-2.3-8 2.3-9.4-3.2-17.6m-2.4 9.2c-1.3-5.3.6-7.6-4.3-12.5m27.8 48.2c-7-5-12.8-4.4-22.1-12.2m16.9 4.2c-7.1-5-13.8-3.6-22.7-11.9m16.4 2.3c-6.5-5.3-11.4-2.9-19.8-11.5m13.4 1.9c-6.5-5.3-9.5-1.7-15-10m9.4 1.5c-4.3-3.4-7.1-2.4-9.6-9"/>
+        <path d="M1141-396.4l-16.6-25.2-22.1-33 21.6 33.3a5079.8 5079.8 0 0016.5 25.2"/>
+        <g id="i">
+          <path d="M1213.7-401.8s16.7 13 20.6 27.5c3.8 14.5-4.1 25.5-4.1 34.1-4.3-7.4-16.6-13-20.6-27.5s4-34.1 4-34.1zm15.7 58.7c1-8.6 5.3-12.4 5.6-24.6m-8 15.4c1-8.6 6.4-12.7 6.2-24.8m-9.2 13.7c.3-8.4 5.4-10.4 4.5-22.4m-7.5 11.3c.3-8.4 5.1-8.3 2.5-17.9m-5.2 8c.4-5.4 3-7-.2-13.1m11.3 54.4c-5.2-6.9-10.8-8.1-17.2-18.5m14.7 9.3c-5.2-7-11.9-7.7-17.8-18.4m14.9 7.3c-4.5-7.1-10-6.3-15.2-17.1m12.2 6c-4.5-7.1-8.6-4.6-11.1-14.2m8.4 4.3c-3-4.5-6-4.5-6.3-11.5"/>
+          <path d="M1232.1-334.1l-7.8-29.1-10.5-38.3s6.5 25.6 10 38.5a5074.4 5074.4 0 007.7 29m-64.4 39s8.2-19.5 21.3-27c13-7.4 25.7-2.6 34-4.8-6.1 6-8.3 19.4-21.3 27-13 7.6-34 4.9-34 4.9zm52.6-30.3c-8.5 1.2-13.4-1.9-25.2 1m17 3.8c-8.6 1.2-14-3-25.6.4m15.6 5.3c-8.2 1.9-11.4-2.5-22.8 1.4m12.9 4.4c-8.2 1.8-9.3-2.9-18 2.2m9.1 2.9c-5.3 1-7.4-1-12.6 3.6m49.6-25c-5.3 6.8-5 12.6-13.4 21.4m5.2-16.6c-5.4 6.8-4.4 13.5-13.2 22m3.2-16.3c-5.7 6.2-3.5 11.2-12.6 19m2.7-13.2c-5.7 6.1-2.2 9.4-10.9 14.3m2-9.2c-3.5 4-2.8 7-9.4 9.1"/>
+          <path d="M1227.7-330.3l-26 15.1-34.3 20.1 34.5-19.5a5074.4 5074.4 0 0026.1-15.1"/>
+        </g>
+        <path d="M1182.2-442s19.7-8 34.2-4c14.5 4 20 16.3 27.4 20.7-8.6 0-19.6 7.8-34.1 4-14.5-4-27.5-20.7-27.5-20.7zm58.7 15.9c-6.9-5.2-8.1-10.9-18.5-17.2m9.2 14.7c-6.8-5.2-7.6-12-18.2-17.9m7.2 14.9c-7.1-4.5-6.3-10-17-15.2m5.9 12.2c-7-4.5-4.6-8.6-14.2-11.1m4.3 8.4c-4.5-3-4.5-6-11.4-6.4m52.7 17.6c-8.6 1-12.5 5.2-24.6 5.5m15.4-8c-8.6 1-12.7 6.4-24.8 6.1m13.7-9.1c-8.4.3-10.4 5.4-22.4 4.5m11.3-7.5c-8.4.3-8.3 5-17.9 2.4m8-5c-5.4.2-7 2.8-13.1-.4"/>
+        <path d="M1250-424l-29-7.9-38.5-10 38.3 10.7a5074.4 5074.4 0 0029 7.8m-34.7-73.7s19.5 8.2 27 21.3c7.4 13 2.6 25.7 4.8 34-6-6.1-19.4-8.3-27-21.3-7.5-13-4.8-34-4.8-34zm30.3 52.7c-1.2-8.6 2-13.4-.9-25.3m-3.9 17c-1.2-8.6 3-13.9-.3-25.6m-5.4 15.6c-1.8-8.2 2.6-11.4-1.3-22.8m-4.4 12.8c-1.8-8.2 2.8-9.3-2.2-17.8m-2.9 9c-1-5.3 1-7.5-3.6-12.7m24.9 49.8c-6.8-5.4-12.6-5.1-21.4-13.5m16.6 5.2c-6.8-5.4-13.5-4.4-21.9-13.2m16.2 3.2c-6.2-5.7-11.2-3.5-19-12.6m13.3 2.7c-6.2-5.7-9.5-2.3-14.4-11m9.3 2c-4-3.5-7-2.7-9.1-9.4"/>
+        <path d="M1250.3-436.4l-15-26.2-20-34.3 19.5 34.6a5040.8 5040.8 0 0015 26.2"/>
+        <use width="744.1" height="1052.4" transform="translate(-32 -18)" xlink:href="#h"/>
+        <path d="M1142.4-297.9s16.8 13 20.6 27.6c3.8 14.5-4 25.5-4 34-4.4-7.4-16.7-13-20.6-27.4-4-14.5 4-34.2 4-34.2zm15.7 58.7c1-8.5 5.4-12.4 5.7-24.6m-8.1 15.4c1-8.6 6.4-12.6 6.2-24.8m-9.2 13.7c.3-8.4 5.4-10.4 4.6-22.4m-7.6 11.3c.4-8.4 5.2-8.2 2.5-17.8m-5.1 8c.4-5.5 3-7-.2-13.2m11.2 54.4c-5.1-6.9-10.8-8-17.1-18.5m14.7 9.3c-5.2-6.9-12-7.7-17.8-18.3m14.8 7.2c-4.5-7-9.9-6.3-15.1-17m12.1 6c-4.5-7.2-8.6-4.7-11-14.3m8.4 4.4c-3-4.5-6-4.6-6.4-11.5"/>
+        <path d="M1160.9-230.1l-7.8-29.2-10.6-38.2 10 38.4a5155 5155 0 007.8 29.1m-53.8 57.3s2.9-21 13.5-31.6c10.7-10.6 24.2-9.2 31.6-13.5-4.3 7.4-3 20.9-13.5 31.6-10.6 10.6-31.6 13.5-31.6 13.5zm43-43c-8 3.4-13.4 1.7-24.2 7.5m17.4-.7c-8 3.4-14.2.7-24.6 7m16.5 1.1c-7.4 3.9-11.7.5-21.7 7.2m13.6 1c-7.5 3.8-9.7-.4-16.7 6.7m9.5.4c-5 2.4-7.5 1-11.3 6.8m41.5-37c-3.4 8-1.7 13.4-7.5 24.1m.7-17.3c-3.4 7.9-.7 14.1-7 24.6m-1.1-16.5c-3.9 7.4-.5 11.7-7.2 21.7m-1-13.6c-3.8 7.5.4 9.7-6.7 16.7m-.5-9.5c-2.4 5-.9 7.5-6.7 11.3"/>
+        <path d="M1155.9-222.6l-21.3 21.4-27.9 28.2s18.9-18.4 28.3-27.8a5074.4 5074.4 0 0021.4-21.3"/>
+        <use width="744.1" height="1052.4" transform="translate(-62 -40)" xlink:href="#i"/>
+        <use width="744.1" height="1052.4" transform="translate(-31 -20)" xlink:href="#i"/>
+      </g>
+      <use width="744.1" height="1052.4" transform="matrix(-1 0 0 1 2501 0)" xlink:href="#j"/>
+      <path fill="#947245" d="M1250.5-437.1c-8.6 41.6-8.6 79.1-8.6 79.1-.5 14-7.4 23.7-13.8 20-54.9-31.7-60.3-37.5-89.1-59.6 24.3 26.4 31.2 38.2 86.7 70.2 10.7 6.2 12 16.4 11.6 29.5l-1.6 61.7c-.3 9 5.7 50.1-22.6 34.2-65.4-36.6-63.8-33.6-95.1-51.6 38 32.3 24.4 23.4 90.6 61.7 12 6.9 24.5 24.5 24.5 32.8 0 124.3 1.9 101.5-12.8 139.1h60.4c-14.7-37.6-12.8-14.8-12.8-139 0-8.4 12.6-26 24.5-33 66.2-38.2 51.5-29.3 89.6-61.6-31.3 18-28.7 15-94.1 51.6-28.3 15.9-22.3-25.2-22.6-34.2l-1.6-61.7c-.5-13.1.9-23.3 11.6-29.5 55.5-32 62.4-43.8 86.7-70.2-28.8 22-34.2 28-89.1 59.6-6.4 3.7-13.3-6-13.8-20 0 0 0-37.5-8.6-79.1z"/>
+    </g>
+    <g stroke-width="2.7">
+      <path fill="#e3e4e5" stroke-linecap="square" d="M264.4 424.6c-.2 1 1.6 12.4.6 15.7-.5 4.5-.6 5.2-1.7 11.1-1 5.9-2.4 17.3-4.4 24.2a37.3 37.3 0 00-.7 12.4l3.6 19.4s1.6 2 1.8 2.7c.3.8-.1 2 0 2.3 1 1.3 1.1 2.7 2.2 3.8.2.2 1 .1 1.1.4.2.2 1.5.3 1.8.4.8.8.6 1.3 1 2.4h-6.3c.2-2.8-2-3.9-2-3.9-.3-.3-2.9-1-3.2-2.7-.4-2.4 0-2.8 0-2.8s-2.2-9-3-11.4c-.6-1.7-.7-2.6-1-4-.7-4.3-1-6.2-3.2-12.5-.6-1-2-1.4-1.9-2.9l.7-1.4v-1.2l1.1-15.5a1.9 1.9 0 00.3-.7c.6-8.8-4.1-17-7.1-25-.6-1.4-.1-3-.7-4.4-3.2-1-5.4-6.4-6.6-9.8a23 23 0 01-.7-11.6 5 5 0 011-2.5m63.2 36.7a8.3 8.3 0 012.5-.4l1 1.5c1.5 2.8 3.4 15.4 4.4 21.2l1.5 7.9s-.4 2 .3 4.3l.6 2.1c.8 3 1.7 3.8 1.7 3.8.2.8 1.4 6.8 1.7 7.5a75.2 75.2 0 012.6 16.7c-.1 4.7-.1 4.2.3 4.6 1 1 1.5.4 3.8 6.1 0 .5.2-.2.5.2.2.6.7.5 1.1.6.8 0 .6.2 1.2.3a6.3 6.3 0 001.6 0h5.5a5.4 5.4 0 00-4.9-3.4c-.8-.5-1.8-1.2-2.1-2.3l-2.3-3.3c.1-.7-.4-1.7-.6-2.5l-2-23.2s.4-2.3.4-4.7c-.2-12.8.6-25.6 1-38.5.2-1 4-4.7 4-4.7" transform="matrix(.19494 0 0 .1962 242.4 142)"/>
+      <path fill="#fff" stroke-linecap="square" d="M356.8 323.8a7.3 7.3 0 00-5.5 2.5 22 22 0 00-3 10.6c-.1.8.2 1.4 0 2.2a83.3 83.3 0 00-1.7 5c-.7 4.2-.9 19.7-2 25.6-1 6-6 14.6-8 17.4a9.7 9.7 0 01-4.5 2.2c-.8.2-7.2-.5-7.2-.5-8.4-.6-21-5.2-29.5-6.4-8.4-1.1-18.7-.6-26.6-1.4 0 0-10-3.7-19.1-1-9 2.6-14.1 7.5-22 19.5 0 0-3.4 4.1-3.4 5.5a17 17 0 005.2 12.8c1.1 1 .8.1.7-.1.4.7.7 2.4 1.2 3a43.7 43.7 0 013.2 5.2c.8 1.5.4 3.3 1.1 4.8 3.9 8.3 2 16.8 2 26.5a2 2 0 01-.1.8c-.1 5.7-5.7 13.3-5.7 19v1.2l-.7 1.6c0 1.6-2.1 1.9-1.5 3 3 6.7 3.4 8.7 4.5 13.2.4 1.7.6 2.6 1.3 4.5 1 2.4 4 12 4 12s-.3.6.3 3.2c.4 1.8 3.3 2.3 3.6 2.6a6 6 0 002.7 4.7c0 .4 2.5.3 2.8.3l3-.2c0-1.3-.4-2-1.3-2.8-.3-.1-1.5-.5-1.7-.7l-.6-1c-1.3-1.1-1.5-2.6-2.6-4-.2-.2.1-1.6-.2-2.4-.3-.9-2.2-2.8-2.2-2.8l-5.2-20.9c-.7-4.7 2.8-7.4 3.2-11.3 0-.8 4.6-12.2 4.8-12.8 3.3-8.9 8.8-22.8 8.7-28.7-.1-6.6-.3 1.3.3-3.7.5-3.8-1.7-13.8-1.5-14.8 12.4 20.7 24.5 28.2 44.5 26.2a9 9 0 012.5 0s.5 1.1.5 1.6c.8 2.9-1 15.3-1.7 21.2l-.8 7.8s-1 2-1 4.2v2.1c-.1 3 .6 4 .6 4l-.5 7.4a60.9 60.9 0 01-2.3 15.4c-.2.6-.7 1.5-1.3 1.6-.6.5-1.5 1.4-1.6 2.2 0 .6 0 1.2.2 1.8 0 .5.5 1.2.8 1.6.4 1.8.2 3.6.2 5.4l.3 1.7c.1.5.6.5 1 .6.7.2.5.6 1 .8l1.6.1h5.4c-.1-2-2-3-3.5-4-.7-.6-.6-.8-.6-1.8l-.1-4c0-.7.3-1 .5-1.5.3-.7.1-1.7.1-2.5 1-6.9 2.2-14 4-20.6 1.5-2 2.1-4.3 2.5-6.7 0 0 1.2-3.2.8-5l5-30a3.9 3.9 0 012.4-2.3c6.1-2.7 12.3-4.6 18-8.6 6.4-4.4 10.2-11.6 14.7-18 1-2 2.1-3.6 3.2-5.4a93 93 0 0010-27.2c1.5-8.5 1-16.9 3.4-27 .5-2.1 2.4-3.8 2.8-6v-.5l1.2-.1 3.8-.5h3.2l1.8.1c.5 0 1.4.6 1.9.6s1-.1 1.3-.6c.7-.8.7-.5.9-1.3 0-.2.3 0 .4 0 .5-.2.9-.8 1.4-1 .4 0 .7-.2.8-.5v-1.6c0-.8 0-.8-.5-1h-.2c-.6-.2 0-1.4 0-2a3.8 3.8 0 00-.1-1.6 2.4 2.4 0 00-.9-1.1l-.9-1c-2.8-2.3-4-4.1-6-6 .3-.4.3-.6.2-1.3-1-2.7-2.7-3.2-5.6-5.4a25.6 25.6 0 00-10.1-3.7h-1.6a6.6 6.6 0 00-.4 0z" transform="matrix(.19494 0 0 .1962 242.4 142)"/>
+      <path fill="#d18219" stroke="none" d="M311.9 205.5a1.4 1.4 0 00-1 .5 4.6 4.6 0 00-.7 2v.5l-.3 1c-.1.8-.2 3.8-.4 5a10.9 10.9 0 01-1.5 3.4c-.2.3-.8.4-.9.4h-1.4c-1.6-.2-4.1-1-5.8-1.3-1.6-.2-3.6-.1-5.1-.3 0 0-2-.7-3.8-.2-1.7.5-2.7 1.5-4.3 3.8 0 0-.6.8-.6 1.1a3.4 3.4 0 001 2.5l.2.2c0-1.4.2-2 .2-2a5.7 5.7 0 00.4 2l.7 1.1c.3 1 .6 3.7.8 4.8 0 .6-.4 2.6-.7 3.5-.5 1.7-.8 3.2-.1 2 .3-.4 1.4-2.6 2-4.6.6-2 1.2-3.2 1-3.6l-.3-3.1a1.7 1.7 0 010-.2v-.3l.2-1.5c2.9 5.4 7.5 6 10.5 2.3a15.6 15.6 0 00-.4 4.7v.8l-.5 5.1v.1l-.2.6v.8l.1.1v.8-.1c.3-.2.4-.6.4-1v-.1l.2-.3v-.5l1-6a.6.6 0 010-.2l.8-.7c.1-.2.7-2.6.6-4-.2-3.5 4.3-4.5 5.8-2.8.6-.3 1-.7 1.5-1.2a7.8 7.8 0 001-1.8v-.4a11.7 11.7 0 00.2-.8 14.6 14.6 0 00.2-1.3l.1-1.3.1-1.3a14.8 14.8 0 01.3-1.4l.1-.3.2-.3.1-.3.1-.3v-.1h.2-1.7a2.1 2.1 0 01-.8-1l.3-1.7c.4-.8.8-.2 1.7 0a7.6 7.6 0 012.5 1.4h.9v-.3a1.7 1.7 0 000-.2v-.2a.5.5 0 00-.1-.1l-.2-.2-1.2-1.2v-.2c-.1-.6-.5-.7-1-1.1a5 5 0 00-2-.7h-.3a1.3 1.3 0 00-.1 0z"/>
+      <path fill="none" stroke-linecap="square" d="M356.8 323.8a7.3 7.3 0 00-5.5 2.5 22 22 0 00-3 10.6c-.1.8.2 1.4 0 2.2a83.3 83.3 0 00-1.7 5c-.7 4.2-.9 19.7-2 25.6-1 6-6 14.6-8 17.4a9.7 9.7 0 01-4.5 2.2c-.8.2-7.2-.5-7.2-.5-8.4-.6-21-5.2-29.5-6.4-8.4-1.1-18.7-.6-26.6-1.4 0 0-10-3.7-19.1-1-9 2.6-14.1 7.5-22 19.5 0 0-3.4 4.1-3.4 5.5a17 17 0 005.2 12.8c1.1 1 .8.1.7-.1.4.7.7 2.4 1.2 3a43.7 43.7 0 013.2 5.2c.8 1.5.4 3.3 1.1 4.8 3.9 8.3 2 16.8 2 26.5a2 2 0 01-.1.8c-.1 5.7-5.7 13.3-5.7 19v1.2l-.7 1.6c0 1.6-2.1 1.9-1.5 3 3 6.7 3.4 8.7 4.5 13.2.4 1.7.6 2.6 1.3 4.5 1 2.4 4 12 4 12s-.3.6.3 3.2c.4 1.8 3.3 2.3 3.6 2.6a6 6 0 002.7 4.7c0 .4 2.5.3 2.8.3l3-.2c0-1.3-.4-2-1.3-2.8-.3-.1-1.5-.5-1.7-.7l-.6-1c-1.3-1.1-1.5-2.6-2.6-4-.2-.2.1-1.6-.2-2.4-.3-.9-2.2-2.8-2.2-2.8l-5.2-20.9c-.7-4.7 2.8-7.4 3.2-11.3 0-.8 4.6-12.2 4.8-12.8 3.3-8.9 8.8-22.8 8.7-28.7-.1-6.6-.3 1.3.3-3.7.5-3.8-1.7-13.8-1.5-14.8 12.4 20.7 24.5 28.2 44.5 26.2a9 9 0 012.5 0s.5 1.1.5 1.6c.8 2.9-1 15.3-1.7 21.2l-.8 7.8s-1 2-1 4.2v2.1c-.1 3 .6 4 .6 4l-.5 7.4a60.9 60.9 0 01-2.3 15.4c-.2.6-.7 1.5-1.3 1.6-.6.5-1.5 1.4-1.6 2.2 0 .6 0 1.2.2 1.8 0 .5.5 1.2.8 1.6.4 1.8.2 3.6.2 5.4l.3 1.7c.1.5.6.5 1 .6.7.2.5.6 1 .8l1.6.1h5.4c-.1-2-2-3-3.5-4-.7-.6-.6-.8-.6-1.8l-.1-4c0-.7.3-1 .5-1.5.3-.7.1-1.7.1-2.5 1-6.9 2.2-14 4-20.6 1.5-2 2.1-4.3 2.5-6.7 0 0 1.2-3.2.8-5l5-30a3.9 3.9 0 012.4-2.3c6.1-2.7 12.3-4.6 18-8.6 6.4-4.4 10.2-11.6 14.7-18 1-2 2.1-3.6 3.2-5.4a93 93 0 0010-27.2c1.5-8.5 1-16.9 3.4-27 .5-2.1 2.4-3.8 2.8-6v-.5l1.2-.1 3.8-.5h3.2l1.8.1c.5 0 1.4.6 1.9.6s1-.1 1.3-.6c.7-.8.7-.5.9-1.3 0-.2.3 0 .4 0 .5-.2.9-.8 1.4-1 .4 0 .7-.2.8-.5v-1.6c0-.8 0-.8-.5-1h-.2c-.6-.2 0-1.4 0-2a3.8 3.8 0 00-.1-1.6 2.4 2.4 0 00-.9-1.1l-.9-1c-2.8-2.3-4-4.1-6-6 .3-.4.3-.6.2-1.3-1-2.7-2.7-3.2-5.6-5.4a25.6 25.6 0 00-10.1-3.7h-1.6a6.6 6.6 0 00-.4 0z" transform="matrix(.19494 0 0 .1962 242.4 142)"/>
+      <path fill="#d39044" stroke-linecap="square" d="M382.3 343.8l-.3 1.2v.2l.3-1.2v-.2z" transform="matrix(.19494 0 0 .1962 242.4 142)"/>
+      <path fill="#fff" fill-rule="evenodd" d="M335 432.9c-2.1 8.3-7.2 10-3.5 17 0 0-1.6 0-2.6-2.8a17 17 0 01-.7-6.3 46.8 46.8 0 011.2-8.5" transform="matrix(.19494 0 0 .1962 242.4 142)"/>
+      <path fill="#fff" fill-rule="evenodd" d="M338.8 429.4c-2.1 8.4-7.2 10-3.5 17.1 0 0-2 0-3-2.7a19 19 0 01-.8-5.4c0-1.7.4-4.7.8-6a31 31 0 011.2-3.2" transform="matrix(.19494 0 0 .1962 242.4 142)"/>
+      <path fill="#fff" fill-rule="evenodd" d="M345.8 418.4c-3 5.5-5.3 10.2-6.6 14.3-1.2 4-2 6.3.4 10.6 0 0-1.6-.8-3.7-4.6a13 13 0 01-.8-6.6 30.6 30.6 0 01.8-4.4 30 30 0 01.8-2.6" transform="matrix(.19494 0 0 .1962 242.4 142)"/>
+      <path fill="#fff" fill-rule="evenodd" d="M348.5 414.9c-1.8 2.8-2.4 5.5-3.4 7.7a29 29 0 00-3.1 10.5c0 2-.3 3.7 1.9 7.1 0 0-1-.1-1.7-.5a6.2 6.2 0 01-2.3-2.7 15 15 0 01-1.3-6.5c0-1.5.5-3.7.9-5.2s1.8-4.5 1.8-4.5" transform="matrix(.19494 0 0 .1962 242.4 142)"/>
+      <path fill="#d18219" fill-rule="evenodd" stroke-width="1.4" d="M353.3 334.5c0-.2-11.6-3.6-13.3-13.8 2.3-2.2 14.3 5.7 14.5 13" transform="matrix(.19494 0 0 .1962 242.4 142)"/>
+      <path fill-opacity=".5" fill-rule="evenodd" stroke-width="1.4" d="M340.4 320.8c.1.2 6.3.2 11.2 10.6-1.1-1.2-6 1.7-11.1-10.2" transform="matrix(.19494 0 0 .1962 242.4 142)"/>
+      <path fill-rule="evenodd" stroke-width="1.4" d="M368.7 335.6c.2-.2.4-.5.1-.8-5-3.2-4.8.7-8.4.7 1.7 0 1.7.2 2.3 1 2.3 2.4 4 2.2 6-.2" transform="matrix(.19494 0 0 .1962 242.4 142)"/>
+      <path fill="none" stroke-linecap="square" d="M381.2 349.8c-.6.6-2.5-.8-4-1" transform="matrix(.19494 0 0 .1962 242.4 142)"/>
+      <path fill-rule="evenodd" stroke-linecap="square" d="M382.3 346s-.5-.5-4.3-1c0 0 2.6-2.7 2.8.3" transform="matrix(.19494 0 0 .1962 242.4 142)"/>
+      <path fill="#fff" fill-rule="evenodd" d="M302.7 436.9a33.6 33.6 0 00-1 1.8c-1 2.3-1.4 4.5.5 8 0 0-1.6 0-2.6-2.8-.5-1.3-.8-3.3-.7-6.3l.2-2.4" transform="matrix(.19494 0 0 .1962 242.4 142)"/>
+      <path fill="none" d="M230.7 419.1s-1.5-6.2 2.1-13" transform="matrix(.19494 0 0 .1962 242.4 142)"/>
+    </g>
+    <g fill="#e7ca00" stroke-width="2.3">
+      <path d="M401.4 879.5c-2-1.6-4-6.3-3.2-8.9-2.7-2.2-9.7 2.2-6.3 8.6 3.3 6.4 8 5.8 9.5.3zm19.1 6c.6-3.6-.7-9.7-7-10.8-6.1-1-8 4.6-6.9 10.3 4.5-3.4 11.7-1.6 14 .5z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M407.4 882c1-4.7 5.9-6 10.6-5.6-3-3.3-6-8.8-10.3-5.6-3.3 2.5-5.6 6.2-.3 11.2z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M404.8 879.3c.5-3.6 2-8.4 5.9-10.4-3.4-3-11.7-2.1-12.3 4.1-.6 6.2 3 7.5 6.4 6.3zm-16 40c5.4 1 12.4-1.7 10.4-13.6-1.9-11.3-10.2-14-10.8-11.4 4.8 1.7 4.1 17.7.5 25.1z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M396.8 918.1c5.3 1 13.7-2.1 9.9-13.8-3.7-11.5-12.2-10-12.8-7.2 4.7 1.9 6.5 13 2.8 21z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M376.7 918.2c3.9 3.4 13.9 4.7 17-6.9 3-10.9.3-14.4-3.6-16.1 2 5.6-5 21.6-13.4 23zm25.5-1c3.2-1.8 10.6-5 5.8-16-4-9-10.1-5.2-11.8-3.7 4.3 1.8 8.1 11.5 6 19.7z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M409.2 914.6c3-2 10.7-7 4.6-17.8-6.1-10.5-14.2-3.5-14.2-.7 3.5 1 9.6 10 9.7 18.5z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M416.7 907.3c2-2.8 7.2-9.8-.7-16.8a6.7 6.7 0 00-12 4.3c3.2-.5 10.6 5.2 12.7 12.5z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M421.2 896.3c.5-3.6 2-12.6-7-14.7-9-2-9.6 8.6-8.1 10.4 2.4-2.2 10.5-1 15 4.3zm-50.3 18.6c3.4 4.2 13.4 7 18.7-4.1 5-10.7 2.7-14.7-1-17.2 1 6.1-9 21.3-17.7 21.3z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M360.9 906.7c3.2 6.6 19.2 14 25.5 2 5.9-11.6 1-22.2-4-26.2 2.4 11.8-12 29.7-21.6 24.2z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M352.4 898.4c7.8 17.2 24.1 14.2 29.6 1.7 5.2-11.8 3.8-18.8-2.2-24.4-4 15.2-12.2 23.7-27.5 22.7z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M342 884c5.9 21.5 27 19 36 6.6 6.4-8.7 4.2-15.1 1-19-7 8.3-19 15.6-37.1 12.4z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M338 871c.6 21.8 26 24.3 37.4 11.7 8-8.8 7.3-15.4 5.2-19.3-8.4 8.4-25.3 18.4-42.6 7.5z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M332.7 850.2c-3.9 28.4 29.1 37.6 43.5 20.7 7.7-9 7.3-15.4 5.2-19.3-14.3 10-39.2 11.2-48.7-1.4z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M329.5 823.5c-9.5 30.7 19.2 41.6 38 38.6 14.9-2.4 23.2-20 21.1-23.8-18.6 13.1-55.4 1.8-59.2-14.7z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M329 799.7c-12.6 29.9 15.4 47.4 38.6 45.7 15.3-1.2 27.8-7.1 27.2-19.6-22.7 8-58.2-5.4-65.8-26.1z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M330 775c-12.7 30.5 14.7 55.6 43.4 56.3 14.7.3 21.4-3.6 27.2-13.3-20.7 3.5-64.9-28-70.6-43z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M329.6 765.3c-11.4 35.9 80.3 80.4 85 33.7-22 11.5-81.8-20.7-85-33.7z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M327.5 755.6c-15.4 19.8 93 78.2 95.5 28.4-9.7 5-29.8.7-49.2-8.1-19.4-8.8-33.2-22.9-46.3-20.3z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M311 751.1c19.6.5 61.3 31 89.3 36 17.8 3.3 32.4-4.2 24.1-35.5-28.5 29.1-83-17.8-111.8-6.8-3-1.4.7 8.4-1.6 6.3z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M314.7 755.5c19-11.8 58.4 10.1 86.2 11.3 17 .7 38.4-18.6 24.4-47-21.9 37.6-82.9 7.5-108.6 27.3-2 4.3-.9 10-2 8.4z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M307.1 756.8c20.2-14.8 61.6-6.2 88-8.4 17.6-1.4 43.8-32 19.9-57.5-14.9 53.9-64.5 27.3-107.3 58.3-2.1 5.5.8 8.9-.6 7.5z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M314.4 752c16.7-15.7 57.6-14.7 82-27.1 16.2-8.3 32.8-43.6 4.3-61.4-3 56.7-55.2 39-87.5 81-.7 6 2.8 8.4 1.2 7.5z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M316.1 744.5c12.4-22.1 50.3-27.6 70.8-46 18.4-16.5 23.4-46.4-7.6-56-2.6 59.3-43.8 46.8-60.7 82.3-3.2 7.8-1.6 20.5-2.5 19.7z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <path d="M325.5 722c12.7-20.2 22.2-13.3 42.4-34 17.3-17.7 22.6-60.3-7.8-61.3 4.5 51.5-15.3 52-29.2 79.7.5 6.1-3.6 16-5.4 15.5z" transform="matrix(.01896 -.24347 .22029 .02096 145.1 340.8)"/>
+      <g stroke-width="3">
+        <path fill-rule="evenodd" d="M310.4 602.7l-10.5 5.6L250 762.1l18.1 40 17.2 2.6L306 803l30.7-138.4 8.7-56.5-21-12.4-14 6.9z" transform="matrix(.01291 -.19952 .15288 .02036 190.6 323)"/>
+        <path d="M309.3 597.5l1.3 6.1c9.8-6.8 20.4-.2 23.3 15.6 2.9 15.8-3 39-13.7 56.7a167.2 167.2 0 00-17 56.2c-1.8 18.8 1.9 41.7-2.2 62.6-2.6 10-7.9 9.1-18.2 8.5 4.1 6.8 9.3 10.6 16 10.3 14.4-3.2 24.7-16.1 28.5-44.8a106 106 0 019.8-72 85.9 85.9 0 0026.3-50 54 54 0 00-9.6-39.1c-11.5-17.4-20.8-18-29.6-16.4l-15 6.3z" transform="matrix(.01291 -.19952 .15288 .02036 190.6 323)"/>
+      </g>
+      <path fill-rule="evenodd" stroke-width=".5" d="M-325.7 629.7c0-3.1 2-5.6 4.5-5.6s4.5 2.5 4.5 5.6h-9z" transform="matrix(1.00994 .34063 .4261 -.98295 369.3 1013.3)"/>
+      <path d="M295.5 723c-3.8 7.3-11.3 10.6-16.7 7.5-5.4-3.2-6.7-11.7-3-19 3.8-7.3 11.3-10.6 16.8-7.4 5.4 3.1 6.7 11.7 2.9 19zm-19-82c-2.5-3.5-6.3-5.7-10.3-5a12 12 0 00-6.6 3.9l-.2-1c-1.4-7.7 4.8-16.8 11.4-18 3-.5 5.7.6 8 2.7a15.2 15.2 0 00-1.2 8.8 15.2 15.2 0 001 3.6 18.3 18.3 0 00-2 5z" transform="matrix(.01896 -.24408 .22029 .01391 146.3 342)"/>
+      <path d="M300.3 632.4c-2.9-3.6-6.7-5.8-11-5.2-4 .5-8 3.6-10.7 7.7a18.8 18.8 0 01-1.1-4.1c-1.4-9 6-19.1 13.7-20.2a9.8 9.8 0 015.6.8 15.6 15.6 0 000 4 18.3 18.3 0 005 10.2 18.6 18.6 0 00-1.5 6.8zm-42.3 45l-.4.6a14.5 14.5 0 01-8.5-4.7 13.4 13.4 0 009 4zm6.8-13.6a17 17 0 01-8.1-12.3c-1.4-8.7 5.8-18.6 13.3-19.6a9.1 9.1 0 012.2-.1 18.1 18.1 0 00-3.6 13c.4 2.8 1.5 5.4 3 7.6a20.8 20.8 0 00-6.8 11.3z" transform="matrix(.01896 -.24408 .22029 .01391 146.3 342)"/>
+      <path d="M258.3 689.2c-2 .6-4 .4-5.8-.8-4.4-2.9-5.6-10.5-2.6-17 3-6.3 9-9.2 13.3-6.3a9.3 9.3 0 013.6 5.1 7.5 7.5 0 00-5.4.4c-4.7 2.2-7.1 8.6-5.4 14.3a11 11 0 002.3 4.3z" transform="matrix(.01896 -.24408 .22029 .01391 146.3 342)"/>
+      <path d="M262.4 694c-3-1-5.8-3.5-7.4-7.3-3-7-.9-15.6 4.7-19.2a9.6 9.6 0 019-.9 17.5 17.5 0 001.1 9.7 12.7 12.7 0 006.2 6.7 9.6 9.6 0 00-7.7 1.3 14 14 0 00-5.9 9.6zm-5.1 49.4c-7-4.5-11.4-14-9.7-21.1 1.4-6 6.7-8.4 12.5-6.4a25.9 25.9 0 00-1.4 18.2 19 19 0 008 11.4c-2.7.7-6 0-9.4-2.1z" transform="matrix(.01896 -.24408 .22029 .01391 146.3 342)"/>
+      <path d="M251.7 770a12.3 12.3 0 01-1-1c-5.6-6.5-7-16.9-3.2-23 3.7-5.8 10.7-6 16.3-.7-3 6.5-2.3 15.4 1.6 22.2a11.9 11.9 0 00-10.3.2 14.1 14.1 0 00-3.4 2.2z" transform="matrix(.01896 -.24408 .22029 .01391 146.3 342)"/>
+      <path d="M268 783.8c-5.3-.3-10.6-6.3-12.4-14.5-2-9.1 1.3-17.6 7.3-18.9h.3c2.8 4.7 7.1 7.5 11.7 7.7v.2c-6.6 4.6-9.8 15.3-7 25l.2.5zm-2.8-66.2c-6.6 2-14.4-2.7-17.5-10.7-3-8 0-16.3 6.5-18.4 1.7-.5 3.5-.6 5.3-.3 1.5 4.7 4.3 8.4 7.6 10.5a26 26 0 001 17.5 10.8 10.8 0 01-2.9 1.4z" transform="matrix(.01896 -.24408 .22029 .01391 146.3 342)"/>
+      <path d="M270 727.9c-7-4.5-11.4-14-9.7-21.1 1.6-7.1 8.7-9.3 15.7-4.8a21.5 21.5 0 015.4 5 25 25 0 00-3 23.1c-2.6.4-5.5-.3-8.5-2.2z" transform="matrix(.01896 -.24408 .22029 .01391 146.3 342)"/>
+      <path d="M284.7 750.9c-3.7 7.6-11.2 10.5-16.7 6.3-5.5-4-7-13.7-3.3-21.3 3.7-7.7 11.2-10.5 16.7-6.4s7 13.7 3.3 21.4zm-9.3-47.8a12.2 12.2 0 01-11.2.4c-6.2-3.4-7.6-12.5-3.2-20.4a18 18 0 0113.4-9.4 9.7 9.7 0 007.9 2.6l.5.5c-8 3.4-12.2 13.3-9.4 22a16 16 0 002 4.3z" transform="matrix(.01896 -.24408 .22029 .01391 146.3 342)"/>
+      <path d="M284.2 666c1.2 8-4.1 15.3-10.5 16.2-6.3.9-12.4-4.8-13.7-12.8a17.6 17.6 0 015.8-15c2.7 4.3 7 6.9 11.4 6.3 1.6-.3 3.2-.9 4.6-1.9a23.1 23.1 0 012.4 7.2z" transform="matrix(.01896 -.24408 .22029 .01391 146.3 342)"/>
+      <path d="M287.2 705.7c-5.7 3-12.2-1.4-14.5-9.6-2.3-8.3.5-17.5 6.2-20.4a8 8 0 015.4-.8 25.5 25.5 0 00-1.7 3.6c-3.4 9-1.7 20 3.8 24.3.9.7 1.8 1.2 2.8 1.5a10 10 0 01-2 1.4z" transform="matrix(.01896 -.24408 .22029 .01391 146.3 342)"/>
+      <path d="M304.5 668a14 14 0 01-1 7.8c-5.3-3.2-12.2 0-16 7.3a15 15 0 01-8.3-11.6c-1.2-7.7 5-16.4 11.7-17.4v1c1.2 7.4 7.2 12.9 13.6 12.4v.4z" transform="matrix(.01896 -.24408 .22029 .01391 146.3 342)"/>
+      <path d="M303.5 696.7c-4.3 9.2-12.9 13.3-19.2 9.2-6.3-4.2-8-15.1-3.7-24.4 4.2-9.2 12.9-13.4 19.2-9.2 6.3 4.2 8 15.1 3.7 24.4zm-14.1-41.5a14.8 14.8 0 01-6.4 6.9c-6.3 3.1-14-.3-17-7.8-3.1-7.4 1-18.5 7.2-21.7a9.2 9.2 0 018.2 0l-.1.6c-1.7 9.7 2 19.1 8 22zm31.2-41a14 14 0 01-.9 7.4c-2.5-3.1-5.8-5-9.4-4.5-4.4.6-8.6 4.6-10.7 9.4a15.9 15.9 0 01-4.4-8.8c-1.2-7.8 5.2-16.6 11.9-17.6 6.6-.9 12.3 6.2 13.5 14z" transform="matrix(.01896 -.24408 .22029 .01391 146.3 342)"/>
+      <path d="M322.4 630.6c1 6.6-3.1 12.8-8.5 14.7-2.4-3.5-5.9-5.7-9.6-5.1a9.6 9.6 0 00-2.9.8 15.3 15.3 0 01-3-7c-1.1-7.3 5-15.7 11.3-16.6 6.3-.9 11.7 5.9 12.8 13.2z" transform="matrix(.01896 -.24408 .22029 .01391 146.3 342)"/>
+      <path d="M293.2 654.4a8.5 8.5 0 01-9.4.2c-5.1-3.4-6.5-12.3-3-19.8 3.4-7.4 10.4-10.8 15.5-7.4a12 12 0 014.8 9c-5.1 3.8-9 11.1-8 17.7l.1.3zm-36.7 144.3c-5.8 2-12.1-2.4-14.4-10.5-2.4-8.7.6-18.3 6.6-21.4 5.7-2.9 12.2 1 15 8.5-6.2 4.5-9.3 14.2-7.2 23.3z" transform="matrix(.01896 -.24408 .22029 .01391 146.3 342)"/>
+      <path d="M270.6 803.8c-6.3 2.8-13.2-1.1-15.5-8.8-2.3-7.7 1-16.3 7.3-19.2 5.4-2.5 11.4 0 14.4 5.7a21.6 21.6 0 00-6.2 22.3z" transform="matrix(.01896 -.24408 .22029 .01391 146.3 342)"/>
+      <path d="M267.6 818c-5.7 2.5-12-1-14-7.9a15.9 15.9 0 011.9-13.3c4 3.4 9 4.4 13.8 2.1a14.5 14.5 0 003-2 14.3 14.3 0 011.7 3.8c.8 2.4.9 4.9.5 7.2a20.6 20.6 0 00-4.6 8.5c-.7.6-1.5 1.1-2.3 1.5zm8.5 29.3c-6.4 2.9-13.5-1-15.8-8.8-2.3-7.8 1-16.5 7.3-19.4l1.5-.5a26.6 26.6 0 00.9 9.4c2 7.2 6.9 12 12.3 13a13.3 13.3 0 01-6.2 6.3z" transform="matrix(.01896 -.24408 .22029 .01391 146.3 342)"/>
+      <path d="M285.2 848.4c-6.2 2.8-13-1-15.2-8.4a17.7 17.7 0 010-10c4 3.6 9.2 4.7 14 2.4a16 16 0 006.6-6.2 16.6 16.6 0 011.6 3.6c2.3 7.4-.9 15.8-7 18.6z" transform="matrix(.01896 -.24408 .22029 .01391 146.3 342)"/>
+      <path d="M293.1 863.4c-6.1 2.8-13-1-15.2-8.5a17.8 17.8 0 01-.6-6.2c2.3.4 4.8 0 7.2-1a18 18 0 008.9-11.4c3 1.4 5.6 4.4 6.8 8.4 2.2 7.5-1 15.8-7 18.7zM273 786c-2.8-1.8-5-4.8-6.3-8.6-2.4-8.3 1-17.5 7.8-20.6 6.8-3.2 14.3 1 16.8 9.3 1.9 6.2.4 13-3.5 17.4a11 11 0 00-10.5-.8c-1.7.8-3.1 1.9-4.3 3.3zm46.8-134.5c1 6.6-5.5 17-12.1 18.4-6.7 1.4-11-1.9-14-6.2-3-4.4-4.3-10-2.6-15.2 1.7-5.2 6-10.4 10.4-12.3 4.4-2 7.4-1.2 11 1.7 3.5 3 6.3 7 7.3 13.6z" transform="matrix(.01896 -.24408 .22029 .01391 146.3 342)"/>
+      <path d="M285.2 808.6c-6.2 2.8-13-1-15.2-8.5-2.3-7.5.9-15.8 7-18.7 6.1-2.7 13 1 15.2 8.5 2.2 7.5-1 15.9-7 18.7z" transform="matrix(.01896 -.24408 .22029 .01391 146.3 342)"/>
+      <path d="M283.1 834.2c-6 2.7-12.8-1-15-8.4-2.2-7.3 1-15.6 7-18.4 6-2.8 12.8 1 15 8.4 2.2 7.3-.9 15.6-7 18.4z" transform="matrix(.01896 -.24408 .22029 .01391 146.3 342)"/>
+    </g>
+  </g>
+  <path fill="#e7ca00" stroke="#d4af37" stroke-width=".5" d="M291 194.8l-.4.5-14 17.5-.4.3.4.4a25.8 25.8 0 017.1 17.5 53.1 53.1 0 01-2.7 17.4c-2 6.5-4.8 12.3-5.6 21.9a22.5 22.5 0 005.2 16.6 29 29 0 009.7 7.6c7.3 3.5 14.8 2.3 22.4 3.2 3.3.5 5.2 2.6 7 4.4l.3.4.4-.4c1.7-1.8 3.6-4 7-4.4 7.4-1 15 .3 22.3-3.2a29.4 29.4 0 009.7-7.6c3.3-4 5.8-9.5 5.2-16.6-.8-9.6-3.5-15.4-5.6-22a53 53 0 01-2.7-17.3c0-5.9 2.6-13.2 7.1-17.5l.4-.4-.3-.3-14.1-17.5-.4-.5-.4.4a19.8 19.8 0 01-14.2 5c-5-.3-10-2.1-14.1-4.7l-.3-.2-.3.2a29.8 29.8 0 01-14 4.6 19.8 19.8 0 01-14.3-4.9l-.5-.4zm.1 1.5a21 21 0 0014.6 4.9 30.4 30.4 0 0013.8-4.3V248h-37.3a54 54 0 002.6-17.1c0-6-2.6-13.3-7.1-18l13.4-16.7zm57.8 0l13.4 16.8a26.9 26.9 0 00-7.1 17.9 54 54 0 002.6 17.1h-37.3V197a30.4 30.4 0 0013.8 4.3 21 21 0 0014.6-4.8zm-67 52.9H358c2.1 6.4 4.6 12 5.4 21.1a21.4 21.4 0 01-5 16 28.4 28.4 0 01-9.3 7.2c-7 3.3-14.3 2.2-22 3.2-3.5.4-5.6 2.5-7.2 4.3-1.7-1.8-3.7-3.9-7.2-4.3-7.7-1-15 .1-22-3.2-2.3-1-6.2-3.4-9.4-7.3s-5.6-9-5-15.9c.8-9.1 3.4-14.7 5.4-21.1z"/>
+  <g fill="#008f4c">
+    <path fill="#00a854" d="M373.3 171.4l-.1.1-.6 4.2-.5 3.6-2.4-1c-3.1-1.4-9.5-2.1-10-1.2-.1.6.6 4 1.7 8 .3.8 0 1-1.8 1.6-1.3.4-2.6 1-3.1 1.4-1 .6-.8.8 1.4 2.8l2.4 2.1-1.2 1c-1 .8-1 .8 2.8 4.5 4.3 4 6.5 5.2 9.4 5.2.9 0 1.9.2 2.6 0 1-.2 1.7-.5 4-.7 2.6.2 5 1.4 6 2l.6 1.4c-1.8-2-5.8-2.7-6.6-2.8-.8 0-1.2.2-2.1.5s-1.3.7-2.1 1.9c-.6 1.5.6 3.1 2 3.3 1.9.3 3.2-.7 3.2-2.4 0-1.3-.7-2.3-.1-2.3 2.2.2 5.6 2 6.2 4.2.8 2.8.6 3-.7 1a12.8 12.8 0 00-3.9-3.4c-.4 0-1.5 2.5-1.5 3.6 0 .8-.2 1-.8.7-.5-.3-1.6-.5-2.5-.6l-1.6-.3.4 2.5c.2 1.4.9 3.5 1.4 4.6l1.1 2-2.4-.7c-5.3-1.6-4.9-1.7-4.5 1 .1 1.4.4 3 .6 3.4.3.7 0 .9-1.8.9-1.1 0-2 .1-2 .3 0 1.1 4 6.6 6.1 8.2 2.5 2 7.2 4 9 4 .7 0 2.3.5 3.9 1l2.8 1v3.1c0 3.3-1 10-1.6 10-.1 0-1-1.4-2-3.2-2-3.8-2-3.7-2.5-2.8-.4.6-.5.5-.5-.3a17 17 0 00-3.8-7.3l-1.2-1.1-.7 1.3-.6 1.3-2.7-3c-1.5-1.6-3-2.9-3.1-2.7-.3 0-.6 1.4-.8 3-.5 4.3-.7 4.6-2.4 3l-1.4-1.4-.4 1.3a40 40 0 001.2 13.9 48.8 48.8 0 011.7 6.4c.6 3.8 2.8 8 5.5 10.8 1 1 1 1.4.5 1.4-.4 0-1.2.4-1.6.9-2 2.1-.2 5 2.8 4.4 1.5-.2 1.8-.1 2.3 1 .8 1.6.8 4.5.1 5.7-.5 1-3.5 2.2-4 1.7-.1-.1-.2-1.8-.2-3.7v-3.5l-2.5 1.4a29.7 29.7 0 00-12.9 18.4c-.4 2.2-1.7 2.4-3.3 5a20.1 20.1 0 00-4.5 3.6c-2.5 2.4-3.2 2.8-7 3.7-4.7 1.2-14.7 2.8-22.2 3.6-6.5.6-27.1 4-28.4 4.5a90 90 0 01-3 1.2 6.8 6.8 0 00-2.6 2c-.8 1.1-.8 1.5-.2 2.5 1.3 2.6 4 2.5 9.6-.2a31 31 0 017.8-2.5c2-.3 4.9-1 6.4-1.3 1.5-.4 5.8-1.1 9.4-1.7a199 199 0 0036.4-7.8c5.6-2 5.5-2 10.7-1.5 5.8.6 13-1.2 16-4 .7-.5 2.4-2.6 4-4.6 1.4-2 3.3-4 4-4.5 1.9-1.3.8-1.7-4.2-1.7h-4.2l1.5-3.1c1.6-3.6 3.3-8.4 3-8.7-.1-.1-1.6 0-3.2.5-1.7.3-3.1.6-3.2.5l.4-1.7c.4-1 1-1.7 1.9-1.9l2-.5a7 7 0 012.7.3c1.8.5 1.9.6 1.6 2.2-.2 2 .8 3.3 2.6 3.3 1.4 0 2.9-1.4 2.9-2.6 0-1.4-2-3-3.2-2.7a11 11 0 01-3.9-.6l-2.7-1 2.6-.5c4-.9 5.3-.7 6 .5.3.8 1 1.2 2 1.3 3.2.3 4.3-4.2 1.2-5.2-1.1-.3-3.6.9-3.6 1.8 0 .3-.8.5-1.8.5a17.3 17.3 0 00-6 1.1l3.9-1.9a60 60 0 006.7-2.5c4.6-2 9-7.3 10.7-12.3a54 54 0 002.2-13c-.3 0-2 .6-3.7 1.4-3.3 1.5-3.3 1.5-3.3.4 0-2 .9-8.1 1.2-9 .3-.5.2-.8-.3-.8a28 28 0 00-9.7 5.3c-3 2.5-3.4 2.6-3.4 1.6 0-.7.5-2 1-2.8 1-1.5 1.2-1.6 3-1.3 1.8.3 2 .1 2.8-1 1.1-1.6.5-3.6-1.2-4.1-1-.3-.9-.5 1-1.4a16 16 0 006.5-7l1.2-2-1.8.2c-1 0-1.8.2-1.8 0l.7-2.1c.4-1.2.8-3 .8-4.2 0-2-1.9-9.8-2.6-10.6-.3-.3-1.3.2-2.4 1.1l-2 1.6-1.9-4.1a58.7 58.7 0 00-2-4.3c-.2-.2-.8.3-1.6 1-1.5 1.4-1.6.6-.3-2.4 1.3-2.6 1.8-3 3.2-2 1.8 1 3.7 0 3.9-2 .1-1.3-.1-1.8-1-2.5-.7-.4-1.6-.6-2-.5-.5.2-1-.2-1.3-1.2a2.9 2.9 0 00-1.9-1.8c-2.6-.7-4.5 2.6-2.5 4.5.7.7.7 1.3.2 5-1 5.9-1.3 6.4-2 3.8-.8-3-.4-11.2.6-13.6 1.9-4.2.8-10.8-2.2-14.2a35.4 35.4 0 00-10.7-7.7zm-3.5 13.8a21 21 0 015.4 5.2c2.6 3 5.6 8.3 7.6 12.3-.7-.8-1.1-.9-3.2-3.7-1.6-2.3-4.4-7.4-7-10-2.3-2.4-3.2-3.8-2.9-3.8z"/>
+    <path d="M382.5 239c-.5 2-.9 2.3.1 3.8.5.7 1.3 1 2.2 1 1.4 0 2.1 1 3.3 4.6.1.6.3.6.3-.1 0-.6-.4-1.8-1-3-.6-1.1-.8-2-.5-2.2 1-.6.5-3.1-.6-4-1.6-1-2.1-.7-3.8 0z"/>
+  </g>
+  <path fill="#9eab05" d="M288.6 321.4c-1 .9-1.3 2.2-.5 3 1.1 1.2 5.1.1 5.6-1.4.5-2.2-2.9-3.3-5-1.6z"/>
+  <path fill="#75b52b" d="M374.5 175.6a27 27 0 004.7 9.7c.7 1 1.4 1.6 1.6 1.5 0-.2-1.3-3.2-3.2-6.7-2.6-5-3.4-6-3.1-4.5zm-17 13.5a27 27 0 008.2 2.3c0-.9-2.4-2-5.3-2.3-1.7-.2-3-.2-2.8 0zm3.2 6.1c.6.6 9.5 4.7 12 5.5 1.4.5 3.4.8 4.3.7 1.5-.2 1.3-.3-1.9-1.3a53 53 0 01-5.8-2.4c-3-1.5-9.5-3.4-8.6-2.5zm29 13a93 93 0 00-2.4 15c-.3 3.3-.2 4.4.4 5.1.6.9.8.5 1.3-4a194 194 0 001.4-17.7c-.1 0-.5.6-.8 1.5zm-8.6 4c.2 4.1 2 8.4 2.6 6.5a15 15 0 00-1.2-5.5l-1.6-4.4.2 3.5zm-5.7.2l1.8 2.3 1.2 1.5v-1.3a3 3 0 00-1.3-2.3c-1.6-1.3-2.6-1.4-1.7-.2zm-7.2 12.4a76 76 0 007.4 5.6c1.5 1 1.5 1-.4-1.3-2-2.3-5-4.5-6.3-4.5-.4 0-.7 0-.7.2zm2.8 10.8c1.4 5.6 2.4 8.8 3 9.1.3.2.6.4.7.3.2-.3-2.4-8-3.2-9.3l-.8-1.3.3 1.2zm5.9 4.4c0 .8.4 2.3 1 3.4.5 1.1.9 1.7.8 1.2l-.6-3.1c-.4-2.7-1.2-3.7-1.2-1.5zm-10.3 3.8c1 3.2 3.4 8.2 7 14 2.5 4.2 2.5 4.2 2.7 2.4 0-1.4-.4-2.6-2.3-5.8a534.9 534.9 0 01-5-8.6 22.5 22.5 0 00-2.9-4.6c-.2 0 0 1.2.5 2.6zm31.5.7a75.5 75.5 0 00-8.2 11.5c-.5 1-.6 2-.4 2.8.3 1.2 1 .3 6-7.7 3.1-5 5.5-9 5.3-9-.3 0-1.4 1.1-2.7 2.4zm-8 37.3a2 2 0 001.8 3c1.5 0 2.4-1.7 1.6-3.1-.6-1.2-2.8-1.1-3.4.1z"/>
+  <path fill="#d91023" d="M375.1 205.2c-1.9 1.3.1 4.7 2.2 3.5 1.2-.8 1.4-2.7.3-3.5a4.2 4.2 0 00-1.2-.7l-1.3.7zm13.3-10.9c-1.1.3-1.6 1.9-.8 3.2 1 1.8 3.5 1 3.5-1 0-1.6-1.2-2.5-2.6-2.2zm3.4 3.9c-.2.4-.2 1.2 0 1.9 0 .9.4 1.1 1.5 1.1 1.9 0 2.9-1.3 2-2.6-.7-1.1-3-1.4-3.5-.4zm-19 75c-2 1.5-.1 4.2 2.2 3.3 1-.4 1.5-1.6.9-2.7-.7-1.4-1.9-1.6-3.1-.6zm10.3-33.6c-.6.5-.4 2.4.2 3 1.6 1.6 3.8 0 3.3-2.1-.3-1-.7-1.3-1.8-1.3-.7 0-1.6.2-1.7.4zm9.4 0c-.4 1.4.5 2.7 1.8 2.7s2.2-1.2 2-2.6c-.1-1-.5-1.2-1.8-1.3-1.4-.2-1.7 0-2 1.1zm1.3 37c-.3 1.4.5 2.7 1.9 2.7 1.2 0 2.1-1.2 1.9-2.6-.1-.9-.5-1.2-1.8-1.3-1.4-.1-1.7 0-2 1.2zm-3 4.6c-2 1.5-.2 4.2 2.2 3.3 1-.4 1.4-1.6.8-2.7-.7-1.4-1.8-1.6-3-.6z"/>
+  <path fill="#75b52b" d="M369.7 185.6l2.2 2.6a59 59 0 016.2 8.5c2 3.2 4.5 6.4 4.5 5.8 0-.6-4.5-8.2-6.2-10.5-2.4-3.2-6.1-7-6.8-7-.2 0-.1.2.1.6z"/>
+  <path fill="#eac102" fill-opacity=".5" d="M382.7 249c0 .4-.6 3.8-.8 7.7a157.5 157.5 0 01-3 25.7l.1.9.9-1.2c.9-1.2 1.8-2.1 3.1-3a145.4 145.4 0 0017-19.4c5.2-6.8 6.4-8.6 6.3-8.7-.2-.2-1.8 1.4-8.2 9.3a244 244 0 01-6.6 7.7c-4.5 5-9.5 9.5-10.8 11.3l.4-2.1a93 93 0 001.8-20.6v-8.2l-.2.6zM370 282.2l-2.7 4.7a69 69 0 01-10.4 14.6c-1 1-.7 1.2-1 1.4-1.2 1.2 3.6 2 7.3 2.5 4.9.4 7.6-.5 20.7-7.5 3-1.6 3.9-2 3.3-2a35 35 0 00-8.8 3.4c-5.6 2.6-8 3.8-10.6 4.3-2 .5-4.8.5-6.5.1h-1.2l.6-.3c.6 0 1.3-.1 1.6-.3.3-.3 1.3-1 2.3-1.5a82.5 82.5 0 0016-14 39 39 0 00-5.5 4.3 46.9 46.9 0 01-15 10.1l-.9.2.8-.8 2.3-3.3a63.5 63.5 0 008.5-17l-.8 1.1zm.2-64.8a55 55 0 005.7 7.2c3.2 3.6 5 5 7.5 8.2 2.6 3.2 2.8 3.4 5.6 6 3.5-4.7 5.7-11 7.2-15 1.4-3.9 2.6-7.3 2.7-12.5-2 4.4-2.1 6-3.7 10.7-1.6 4.8-5 13-6.4 14.8-.1.2-7.4-8.8-10.6-12.5-3.4-4-8-7.3-8-6.9z"/>
+  <path fill="#cab313" fill-opacity=".5" d="M372.7 174.8l-.6 4.5-1.9-.9c-1.9-.9-6.9-2-9.3-2-1.3 0-1.4.2-1.1 1.7.3 1.6 1.6 6.2 2 7.2.1.3-.7.8-2 1.1a11 11 0 00-3 1.4c-1 .7-.8.8 1.1 2.5 2.3 2 2.5 2.7 1.2 3.6-.7.5-.4 1 3 4.2 2 2 4.6 4 5.6 4.6 2.6 1.3 7.7 1.3 10.4 0 1.9-1 2-1 3.2-.2 1.3.8 1.3.8.7 0a30 30 0 00-5.3-3.2 32 32 0 01-15.3-17c-1.2-3.5-1.2-5.3 0-5.3 2.2 0 6.6 1 9 2.2 3.8 1.7 10.4 8 12.3 11.7 1.3 2.6 1.4 3.5 1.5 7.3 0 4.5.7 6.3.8 2.3.2-5 .4-6.2 1.1-8.2 1.6-3.7.8-9.4-1.7-12.8a36 36 0 00-6-5.1 41 41 0 01-4.7-3.6c-.2-.3-.7 1.5-1 4zm6.5.8c3.4 2.3 4.4 3.3 5.5 5.5 1.6 3.4 2 7.5 1.2 10.5l-.7 2.2-1.4-2.8a27 27 0 00-5.7-7.1 30.5 30.5 0 00-5-4.4c-.5 0-.3-3.4.5-6.4.3-1.3 0-1.5 5.6 2.5zm-16.4 12.3a8 8 0 001.8 2c.5.4 1 1.1 1.1 1.7.3.9 0 1-2.3 1-2.4 0-2.8-.2-4.7-2-1-1.1-1.9-2.1-1.7-2.2.4-.4 3.7-1.8 4.3-1.9.4 0 1 .6 1.5 1.4zm6.8 7.8c3 2.7 3.8 3.3 7.4 4.7 1.9.8 2 .9 1.2 1.6-1.1 1.1-6.7 1.5-9.3.7-2.2-.7-10.1-7.9-9.3-8.4a14 14 0 015.4-1.2c1.4 0 2.3.5 4.6 2.6zm14.7 9.3c-.2.2 0 1.4.4 2.5 1 2.5 1 3.3 0 5a10 10 0 00-.8 3.5 12 12 0 01-.6 3.6l-.5 1.6-1.7-1a5 5 0 01-2-2.2c-.4-1.5-.2-4.7.4-7.8.5-2.1.8-2.7 1.5-2.7.8.1.8 0 .3-.6-.5-.7-.7-.7-1.3.1a7 7 0 00-1 2.5c-.3 1.7-.3 1.7-1.7 1-2.2-1.2-3-1-3 .7s.8 4.3 1.9 6c1.2 1.7 1.2 1 0-1.3-1.3-2.7-1.8-5.7-.9-5.7.4 0 1.2.4 1.9.8.9.6 1 1.2 1 4.2-.1 4-.5 4.2-5.3 2.6-1.5-.6-3-1-3.1-.8-.2.2.6 4.5 1.1 5.8.3.6-.1.8-2 .6l-2.4-.2 1.4 2.4a20 20 0 0014 10.1c2 .4 4.4 1.1 5.3 1.6 1.2.6 1.4.6 1 0-.3-.3-1.5-1-2.6-1.3-2.9-1-5.7-3.1-9.4-7s-5.5-7.1-5.5-9.6c0-1.4.2-1.7.8-1.4l3.9 1c4.3 1.2 5.4 1.8 8.1 4.7 3 3.1 3.9 5 4.8 9 .4 1.9.8 3.4 1 3.6.6.7.8-1.6.2-3.6-.9-3.3.5-9.8 3.4-15.5 1.3-2.5 5.2-6.3 5.8-5.6.2.2.9 2.4 1.5 4.8 1.4 5.1 1.2 6.6-1.2 11.7a18.5 18.5 0 01-6.1 7.7c-2 1.4-1.5 1.8 1.3 1.1 2.4-.6 6.4-4.2 8.5-7.7l1.1-2-2 .4-2 .3 1-2.7c1.2-3.4 1.2-4.7 0-8.8l-1.3-4.8-.3-1.4-1.7 1.1a9.4 9.4 0 00-1.9 1.6c-.6.9-1.3-.1-3-4l-2-3.7c-.3 0-1.1.6-1.9 1.4l-1.3 1.4.3-1.4c.3-1 .2-1.4-.2-1.1-.2 0-.5.8-.5 1.4 0 2.4-.9 2.4-1.6 0-.4-1.3-.9-2.2-1-2zm7.4 12.7a31.5 31.5 0 00-2.9 8.3l-.6 3.6-.8-2a17.6 17.6 0 00-2.2-3.7c-1.4-1.6-1.4-1.7-.8-5.3.9-5.7 2-8.7 4-11l1.9-2 1.8 3.7 2 3.7-2.4 4.7zm-19.3 8.3c6.2 6.5 8.4 9 7.3 8.6a17.4 17.4 0 01-10.3-7.5 19.5 19.5 0 01-1.8-3c0-.2.6-.3 1.4-.3.9 0 2 .7 3.4 2.2zm29 4c-2 3.2-3.3 4.4-5.5 5.5l-2 1 2-2.1a32.5 32.5 0 003.2-4.1c1-1.6 1.7-2.1 3.3-2.4.2 0-.2 1-1 2z"/>
+  <path fill="#005000" d="M382.9 209c.7 1.5 2 3 2 2.5 0-.3-.5-1.2-1.3-2-.7-.9-1-1-.7-.5z"/>
+  <path fill="#cab313" fill-opacity=".5" d="M369.4 235.3l-.8 3.8-.5 2-1.5-1.4-1.4-1.4-.4 2.4a32 32 0 001.5 12.8 52 52 0 011.6 6.4c.6 4.6 4.4 10 9.4 13.4.9.7 1.2 1.5 1.5 3.8l.4 3v-2.9a64.6 64.6 0 00-1.4-8.3c-1.6-7.3-1-10.4 2.6-17.8l2.6-5.4 2.7 5.4c3.6 7.2 4 9.7 2 15.6a33.4 33.4 0 01-1.8 4.8c-.3.4-.4.8-.3 1.1.2.2 0 .7-.2 1.1-.4.6-.5.6-.2-.2.2-.6-.5 0-1.7 1.2a13.6 13.6 0 00-2.3 3.3c-.3.9-.2.9.6-.1l1.8-2.4c.5-.7 1.1-1.2 1.3-1 .8.4 1.5-1 3.2-5.6a28 28 0 017-12.4 27 27 0 017.8-5.2l5-2.3c.5 0-1 8.8-2 11.4a26.1 26.1 0 01-5.8 9.4c-2.2 2-6.4 4-10.5 5.2-1.7.5-3.3 1-3.4 1.3-.3.4 3.7-.7 7.5-2 5.4-2 10.5-7.3 12.5-12.8 1-2.5 3-13 2.5-13.3 0 0-1.7.6-3.8 1.6l-3.6 1.7.3-3.4c.2-1.9.6-4.4 1-5.8.5-2.3.5-2.4-.5-2a32 32 0 00-10 6l-3 2.7.2-4.7c.2-3 0-4.3-.2-3.6-.3.6-.5 2-.5 3.3 0 2.5-1.2 7.5-1.7 7.5-.2 0-1-1.4-2-3.2-1.7-3.2-2.4-4-2.5-2.7 0 .3-.5-.7-1.2-2.4a22.5 22.5 0 00-2.6-5l-1.5-1.9-.8 1.6-.8 1.5-2-2.5c-1-1.4-2.4-2.7-2.9-3-.8-.5-1-.2-1.2 1.4zm3.5 1.5c2 2.4 6.2 10.4 6.7 12.7l.3 1.3-.9-1.3c-1.6-2.3-6-6.3-8.8-7.8-1.3-.8-1.3-1-1-2.7l.7-3.2c.2-.8.5-1.4.7-1.4a13 13 0 012.3 2.4zm7 5c1.5 3 1.8 5 1 6.2-.6 1-4.8-7.7-4.4-9.4.3-1 .5-1.2 1.2-.6.4.4 1.4 2 2.3 3.7zm-9 1.5a25 25 0 017.5 7.4c.4 1 .3 1.7-.5 3.3a24 24 0 00-1.6 11.8v2.9c-.7 0-4.4-4.7-6-7.6a38.3 38.3 0 01-5-19.8l.4-2 1 1c.7.6 2.6 2 4.3 3zm30.8 0a75.1 75.1 0 00-.7 5.2c-.3 2.7-.4 2.8-3.3 4.7a23.9 23.9 0 00-5.2 4.6c-1.2 1.5-2.3 2.7-2.5 2.5-.3 0-.6-1.3-.8-2.6a20.8 20.8 0 00-1-4c-.6-1.6-.6-2 .4-3.3 2.1-3 11.2-9.4 13.2-9.4.2 0 .1 1 0 2.3zM374.4 268c1.8 1.9 3 3.4 2.8 4 0 .7-.7.4-2.7-1.6a19 19 0 01-5.6-8.5c-.3-1.3-.1-1.2 1 .7a30 30 0 004.5 5.4z"/>
+  <path fill="#cab313" fill-opacity=".5" d="M369.4 280.5a31.6 31.6 0 00-11.6 17.4c0 1.6-1.8 3-1.5 2.8.2.7 1.8 0 2.5-2.5 1.3-4.7 5-13.2 9.9-16.6 1.4-1 3-1.8 3.2-1.8.2 0 .3 1.9.2 4.3 0 3.4-.4 5-1.4 6.9a28 28 0 01-8.5 9.3c-2.5 1.4-2.7 2-.4 1.1 2.5-1 8.4-7 10-10.3.8-1.7 1.4-3.3 1.4-3.7 0-.3.7-.9 1.5-1.2 1.8-.7 11-3 11.1-2.7.4.4-3.5 8.6-4.7 10.2-2 2.5-6.6 6-8.9 6.7-1 .3-3.4 1.6-5 1.9l-4.6.6-1.8 1 1.8-.3 5.3-.6c5.6-2 7.8-3.2 11.4-6l2.4-2 4.6.2 3.7.3-1.7 2.1a481.4 481.4 0 00-4 4.8 17.5 17.5 0 01-3.7 3.7 29.4 29.4 0 01-12.3 2.5c-4 0-4.2 0-6.2-1.8-2.1-1.8-3-2.2-3.2-1.4 0 .3-1.9 1-3.8 1.8-4 1.3-4.9 1-2.6-1.1.9-.8 1.8-.8 3.6-1 0 0 3.9 1 4 .1 0-.8-4-.7-4-.7-1.7.1-2.2 0-.7-1.8 1.6-1 2.3-3.1 1.4-2.7-2.2 2.7-3.7 3.8-7 7a18.3 18.3 0 01-8 3.6c-2.8.7-7.5 1.4-10.2 1.8-5.4.6-7.6 2-2.5 1 2.6-.5 6-.8 10.3-1.6 6.1-1.5 6.5-1.6 9.6-3.2 2.5-2.6 2.9-2.9 1.6-.8-.5 1.6.3 1.5 5.2-.3 3.8-1.5 4-1.5 5-.6.9 1 .8 1-1.1 1.8a124 124 0 01-20.4 5.6c-4.7 1-8.6 1.8-8.8 2-.4.4 5.6-.2 6.8-.8.6-.2 4.8-1.3 9.5-2.3 4.6-1.1 9.9-2.7 11.8-3.4 3.1-1.3 3.6-1.3 6.3-.8 3.4.6 9.1 0 13.2-1.3 3.2-1 5.4-2.9 8.6-7.4 1.3-1.9 3-3.8 3.7-4.3l1.3-1-4.4-.3c-2.5-.1-4.6-.4-4.7-.5a87 87 0 003-7.4l1.4-4.2-1.8.4-3.5.6-1.8.3.7-1.8c.4-1 .7-1.8.5-1.8l-1 1.7c-.8 2-1.8 2.4-1.5.6.2-.8 0-.6-.6.5a5.5 5.5 0 01-2.2 2.1l-2.2.8c-1 .5-1 .2-.8-3.4.1-2.4 0-3.9-.3-3.9s-1.7.8-3.1 1.8z"/>
+  <path fill="#cab313" fill-opacity=".5" d="M321.8 313.9c-3 .2-9 1.1-18.9 2.7l-10 1.6c-.4 0-.5.2-.4.4.1.2-.6.5-1.5.7-2.3.4-4.9 2.5-4.9 4 0 1.4 1.7 3 3 2.7.7-.2.7-.3-.2-.3-2.2-.1-3-2.8-1.4-4.3 1.5-1.3 8.2-3.3 12-3.6a212.6 212.6 0 0023.6-3.6c3.3-.5 2.7-.7-1.3-.3z"/>
+  <path fill="#cab313" fill-opacity=".5" d="M313.4 318.8a80.2 80.2 0 00-17.6 4.6c-3.6 1.8-3.1 2 .7.2a32 32 0 016.8-2l9.3-1.8 8.7-1.7 2.8-.4h-2.3c-1.3 0-5 .4-8.4 1z"/>
+  <path fill="#fff" d="M353.6 305.4c-1.7 1-3.3 2.8-1.5 2.6 1.4-.2 6.4-1.7 6.8-2.7-2 .2-3.5-.3-5.3 0z"/>
+  <g stroke="#d4af37" stroke-width=".9">
+    <path fill="#fff" d="M367.7 432.4c-1.5.5-2.5 1-9 .5-4.6-.3-10.3-1.1-13.2-1.2-5.6 0-5.6.3-15.5 7.1-7 4.8-16 4.4-22.7 3-4-2-5.8-2.3-5.2-1.3 1.1 1.8 9 4.4 13.4 4.4 7 0 12.2-1.8 20.7-7.1 6.6-4.2 9.5-4.5 18.5-2.5 10.6 2.1 12.2 1.2 20.9-2.7-2.6 0-3.2 0-4 .4 1.4-1.6 1.5-3.2 1.8-4.2.4-.6-.8.2-2.1 1.2l-3.6 2.4z" transform="matrix(.59548 0 0 .58466 141.4 62.9)"/>
+    <path fill="#d91023" d="M354 429.8c-4.9-.7-8.2-1.4-11.3-1-3.4.3-5.8 2-9.9 4.5-4 2.7-7.7 4.6-8.1 4.6-.6 0-5.8 1.2-9.8 1.2-1.8 0-5.9-1.3-8.6-2.3-5.7-2.1-7.8 1.4-1.8 3.9a33.4 33.4 0 0015.6 1.8c5-.8 9.6-3 13.4-5.8 7.7-5.6 3.2-3 6.2-4.2 3-1.3 5.9-.9 5.9-.9 4 .2 11.9 1.5 15.9 1.6 7.2-.7 6-.7 8.4-2 .8-.6 3.5-2.3 3.6-2.7.2-.4 1.4-2.7 1.2-2.8-7.5 5.1-11.2 5.1-20.7 4.1z" transform="matrix(.59548 0 0 .58466 141.4 62.9)"/>
+    <path fill="#d91023" d="M341 435.4l-7.1 4c-6.2 3.8-12 5.6-18.8 5.6-3 .5-13-3.6-11.5-3.1 1.6 3 4 3.4 9.6 4.5 4 .8 6.6.1 11.1-.8 5-.6 7-3 9-4.3a33.5 33.5 0 0114-5.4c1 0 4.7 2.1 8.9 3 4.1.9 6.1 1.1 10.4.4s8.7-4.2 12.8-6.9c-.6.2-2 .2-4 .3-6 3.5-16 4.8-21.2 2.4-5.4-1.3-10.5-1-13.2.3z" transform="matrix(.59548 0 0 .58466 141.4 62.9)"/>
+  </g>
+  <path fill="#00a854" d="M276.4 176.3a37.7 37.7 0 00-17.5 13.2c-1 1.2-1.8 2.2-1.9 2.1 0 0 .4-2.7 1.2-5.7.7-3 1.2-6.1 1.2-6.8 0-1.2-.1-1.1-2 1a41 41 0 00-7 13c-.7 2.2-1 4.7-1 9.3l.1 6.3-1.2-4.5c-1.3-4.7-2.6-8-4-9.6-.6-1-.8-1-1.3-.3-1 1.5-.3 7.8 1.4 12.4.1.6-.5-.2-1.4-1.7-1-1.6-2-2.7-2.3-2.6-.6.3-.6 5.3 0 7.4.4 1.4.4 1.4-1.3-.5-2.9-3.3-3.5-3.6-3.5-1.3 0 .9.3 2.4.7 3.4l.8 2-1.6.4c-2.3.4-3 1.1-3 3 0 2 1.4 6.8 2 7.2.9.5 1.1 0 1.8-3l.6-2.6 1.9 2.5a76.7 76.7 0 018.8 17.7c2.2 6.4 2.3 7.7.3 3.7a72 72 0 00-3.2-5.2c-2-2.8-12.6-13.9-13.3-13.9-.8 0 0 3.5 1.3 6.4.7 1.4 2.7 4.2 4.4 6.2l2.9 3.6c-.2 0-1.4-.8-2.7-1.7-2.6-2-5.3-3.5-5.6-3.2-.1.1.9 2.3 2.3 4.8l2.4 4.6-1.6-.3a6 6 0 00-2.8.3c-1 .6-1 1.1-1 3.5 0 3.3.8 6.7 1.5 6.7.8 0 2-3.2 2-4.9 0-1.3 0-1.3 2.6 1.1 3.7 3.6 8.6 9.6 13.4 16.6l4 6-4.7-3.6c-4.6-3.3-14-8.6-15.5-8.6-.4 0-.8.2-.8.5 0 .2 3 3.3 6.7 6.8l6.7 6.3-3.5-1.1a71 71 0 00-5.3-1.5c-1.7-.4-1.7-.3 2.2 3.3a68 68 0 008.7 6.7c2.6 1.6 4.3 2.8 3.7 2.7a35.1 35.1 0 00-11.5-1.9c0 .7 3.5 3.5 6 4.8 1.4.7 5 2 7.8 3 6 2.1 9.6 4 12.6 6.6l2 1.9-3.5-1.6c-4.1-1.8-15.3-5.5-16.5-5.5s3.8 5 8.8 8.7a80.2 80.2 0 0019.5 9.7c5.2 1.7 9.6 2.6 18 3.6 3.6.5 7 1 7.8 1.3.6.3 5 1 10 1.5a99.7 99.7 0 0130.7 7.2c1.7.8 3.5 1.1 7.2 1.3 5.5.3 5.8.1 4.2-2.9-1.3-2.5-3.7-3.9-8.7-4.8l-9.2-1.8a726.1 726.1 0 00-29-5c-14-2.3-20.1-4.7-26.7-10.7A43.3 43.3 0 01269 263c.4-3 .6-5.5.5-5.6-.5-.4-3.7 6.3-4.6 9.4l-1 3.3.3-5.4c.3-8.3 3.5-16.1 8.2-20.6 1-1 1.8-2 1.8-2.2 0-.2-1 0-2.1.2-1.6.4-3 1.3-5 3.2l-2.6 2.7 1.3-2.4a27 27 0 018.3-9.6l2.9-1.9-1.7-.1c-3.4-.4-9.5 4-12.9 9.3-2 3-2 2.1 0-2.6a41.8 41.8 0 018-12.5c1.9-1.8 2.2-2.5 1.5-2.5-2.7 0-7.2 3.5-11 8.4-1 1.5-1 1.4.2-1.5a40 40 0 016.1-9.7c1.6-1.9 1.2-2.1-1.5-1a26.4 26.4 0 00-8.6 9.7c-1 2-1.8 3-1.7 2.5a61 61 0 00.8-3.3 46.4 46.4 0 0112.8-22.7c2.4-2.2 3-3.2 2.3-3.2-2 0-6.5 2.6-9.5 5.5-3.1 3-3.2 3-2 .9a57 57 0 0118.3-18.6l4.3-3c0-.8-7.8 1.6-11.3 3.3a42.3 42.3 0 00-4.4 3.2c-2.5 2-2.7 2.1-1.8.8 1.7-2.4 7.6-7.7 10-8.9 1.7-.9 2-1.2 1-1.3-2.3-.4-8.9 3-14 7.4l-2.2 1.9 1.2-2a48 48 0 0114.7-15.6 60.5 60.5 0 014.4-2.6c.3-.1.5-.4.4-.5-.2-.2-2 .2-4 1zm77 145a6 6 0 011.4 1.9c0 .2-1.1.4-2.5.4-2.5 0-2.6 0-2.6-1.4 0-2.6 1.6-2.9 3.8-.8z"/>
+  <path fill="#9eab05" d="M350.3 320.5c-1.3 1.2-1 3 .3 3.4 2.2.6 5 .4 5-.4s-3.3-3.8-4.1-3.8c-.3 0-.8.3-1.2.8z"/>
+  <path fill="#cab313" fill-opacity=".5" d="M279 175.5a31.6 31.6 0 00-15 8.5c-.3.3-3 2.8-4.8 5.2-.8 1-2 2.5-2.5 3.5 0-1 .8-3.8 1.5-7 .9-4 1.2-7 1.1-7.2-.5-.5-4.2 4.4-6 8a30.9 30.9 0 00-3.6 16.7v6.4l-1.3-4.8c-1.3-5-3.6-10.3-4.7-10.6-.4-.1-.8.6-1 1.7-.3 1.6 0 3.3 2.1 12 .2.6-.4 0-1.2-1.6-2-3.4-2.7-4.1-3.2-3.8l1.4 2a44 44 0 013 6 85 85 0 015.7 19.1c-.1.1-.5-.3-.7-1l-1.6-4.2a74 74 0 00-3-6.7 38.2 38.2 0 01-4.6-12.7l-.3-2.5c-.7.6-.4 3.5.6 6.8l.9 3c-.1 0-1.3-1.3-2.6-3-1.8-2.4-2.6-3-3-2.5-.4.8-.1 2.3 1 5.2l.7 2H236c-1 0-2.1.2-2.7.6-.8.6-.9 1-.4 3.7.6 3.3 1.4 5.8 2 5.8 1.1 0 1-1 1.6-3.9l.6-1.8c.2.3.5.7 1 1.1a78 78 0 0110 19.4 111 111 0 013.8 16c0 .2-.7-1.7-1.3-4.2-2-8.7-5-13.8-14-22.6 0 0-3-3.7-5.5-5.2 0 2.1.4 2.5.4 2.5.7 3.1 2.2 5.9 7 11.4a43 43 0 013.8 5l-2.7-2.2c-2.7-2.4-7-5.1-7.3-4.7-.2.1.8 2.3 2.2 5 1.8 3.2 2.3 4.5 1.7 4.3-2-.8-2.7-.8-4 0-1.3.9-1.3 1-1 4.4.1 2 .6 4 .9 4.7.6 1 .6 1 1.2-.2.3-.7.8-2.1 1-3.2.2-1 .5-1.9.6-1.9a48 48 0 014 4 80.9 80.9 0 001.8 2.1 332 332 0 0113.6 17.8l1 1.8-1.7-1.3a74.7 74.7 0 00-19-11.7c-1-.3-1.2 0-.7.6 2.4 3.3 9.6 9.4 11.6 11 1.9 1.6 1.8 2.2 1.8 2.3-.1 0-1.4-.6-3.7-1.3-5.8-2-7.3-2.1-6.6-1.2a4 4 0 002.1.8 43 43 0 0115.8 6.8c3.4 2.3 11.5 10 12.6 12 .6 1.2.4 1.1-1.7-.6a43.7 43.7 0 00-11-6.2c-.3.1-2.1-.2-4-.7-2-.5-5-1.1-6.8-1.3l-3-.4 1.8 1.7c2.4 2.1 6.3 4 13 6.3a58.6 58.6 0 017.3 3c2.5 1.5 7.6 5.5 7.3 5.7a123.6 123.6 0 00-20-7.1c-1.2-.3-.8.2 2.3 3.3a75.9 75.9 0 007.9 6.3c10.9 7.2 20.8 10.3 39.2 12.5 3 .3 5.1.8 5 1-.2.3 4.4 1 9.4 1.5 13.4 1.6 21.8 3.4 29.4 6.5a23.4 23.4 0 008.9 2c3.4.2 4.5.2 4.5-.3 0-1.2-1.4-3.4-3.2-5-1.5-1.3-2.6-2-8.6-3.1-3.8-.6-7.3-1.4-7.7-1.7-.5-.3-8.1-1.3-16.8-2.7-19.1-3-25-4.5-30-7a40.3 40.3 0 01-22-34.7 56.1 56.1 0 01.3-9.2c.3-2 .5-3.6.4-3.7-.5-.5-4.4 7.3-5 10.3l-.3 2-.2-3.6a33.9 33.9 0 016.8-20.6s2.9-2.8 3.3-3.6v-.1c-2.1-.7-4.3 1-7.3 3.6-1.8 1.8-2 2.3-2.2 2.2.2-1.4 5.5-9.5 6.6-9.5.2 0 1.5-1.5 2-2 .6-1.5-3.2 2-5.9 5.7-6 8-7.4 16.1-7 26.9a36 36 0 01-.3 5.9c-.2 0-1.8-3.9-2.5-6.4-2-6.3 1-19.4 6.1-26.1l3.3-4.1c.8-1.4-3.5 3.4-5 5.7-.4.7-.8 1.2-1 1l.7-2.2a45.4 45.4 0 019.3-15.7c1.6-1.7 1.6-1.7.3-1.3-3 .9-5.8 3.2-8.7 6.6l-2.2 2.6c.3-1.3 3-7 5.2-10.1 1.4-1.9 2.7-3.2 2.7-3.6 0-.4-1.5 0-3.6 1.6a28 28 0 00-7.6 9c-1.3 2.6-1 1.9-1.5 2.3a43 43 0 0112.8-25.9c2.8-2.9 3.4-3.7 2.4-3.4-3 1-6.3 3-9.2 5.9-1.7 1.7-2.4 2.2-2.4 2s.8-1.7 2.5-4.3a53.8 53.8 0 0114.1-14.7c2.7-1.8 6.8-3.8 6.3-4a.5.5 0 00-.2-.1c.3-.5-1.1-.2-4.8 1a37.6 37.6 0 00-11.6 6.3c-1.5 1.4-1.2.3 2.6-3.5 2-2 5-4.5 6.6-5.3 2.6-1.6 2.4-2 .7-1.6a32 32 0 00-13.4 7.7l-.3.2c-1.2.7-2.3 2.3-2 1.6s.8-1.3 2.1-3.5a46.8 46.8 0 0116.8-15.8c1.7-1 1.8-1.6.6-1.4zm-38.8 27zm34.8-25.1h.2a73 73 0 00-12 11.6 60 60 0 00-7.3 13.2c-1 2.4-1.6 4-1.6 3.6a85.6 85.6 0 012.3-12l1.3-1.8a42 42 0 012.6-3.5c1.1-1.4 4.7-5.1 4.6-5.2l1.2-1c3.4-2.4 7.8-5 8.7-5zm-16.9 2.7h.1c.1.4-.5 4.8-1.7 10a230.5 230.5 0 00-4.6 25c-.4 3.7-.5 4-.8 2.4-.3-1-.6-6-.8-11-.3-10 0-12.8 2.6-18.4a29 29 0 015.2-8zm13.9 8.4l-3 3a57 57 0 00-15.9 27.3l-1 3.5.4-3.3a44.8 44.8 0 013.5-14.8c1.1-3 2.2-5.5 4.5-7.8.4-.5 1.5-1.4 1.7-1.8l2.8-2.1c2-1.7 6.2-4 7-4zm6 2.5c.3 0 .4 0 .4.2l-3 2.1a70 70 0 00-13.8 14 83.8 83.8 0 00-7.8 15.5c-1.5 4.2-1.4 2 .2-4a68.6 68.6 0 017.4-17.3l1.5-2c.7-.8.9-1.2 1.2-1 .2.1 1.4-.6 2.6-1.6 2.7-2.3 9.7-5.8 11.4-5.9zm-34.4 3.9c.1-.1.3.1.6.6a38 38 0 012.2 5.2A93.8 93.8 0 01251 226a82.5 82.5 0 00-2.8-9.6c-4.1-12.4-5.5-18.4-5-20.6l.4-1zm26.5 10.9s-1 1.2-2.5 2.6a49 49 0 00-13.1 27.7c-.5 2.8-1 5.3-1.3 5.5-.2.2-.6-1-.8-2.5a41.3 41.3 0 014.2-20.2l1.3-2.9c.4-.3.7-1 1.3-1.8 2.3-2.6 6.1-6.3 8.6-7.5l2.3-1zm-33.4 1.2l1 1.3a84.5 84.5 0 013.2 4.3c2.2 3.2 7.8 14.4 8.4 16.6.2.7-.5-.4-1.6-2.4a68.8 68.8 0 00-5.3-8c-4.2-5.6-5.7-8.2-5.7-10.2V207zm-1.1 7.4h.5c1.5 0 4.7 2.8 7.5 6.6a69 69 0 018.8 21.4c.9 4 2.4 14.2 2.4 16.5v1.6l-.9-1.5c-.4-.9-1.1-3.5-1.5-5.8a101.1 101.1 0 00-5.3-19c-2.3-5.8-7.1-14-9.3-16a2.5 2.5 0 00-.7-.6 7 7 0 00-1.5-1.5c-1.1-1-1.2-1.5 0-1.7zm-2.6.9l1.3.8c1.7 1.2 2.3 1.7 2 3.2-.3 1.5-.5 3-.8 3.4-.4.8-.8.2-1.2-1.4l-1-4-.3-2zm33.8 6.8c.2 0 .2.2 0 .6-.5.4-1.7 1.9-2.3 2.7a68.9 68.9 0 00-9 23.7c-.5 3.7-1.2 2-1.2-3a30.1 30.1 0 018.1-20.5c2-2.1 4-3.5 4.4-3.5zm-34.3 3.2c.5 0 2 1.5 5.4 5a72 72 0 017.6 8.7c1.9 3.3 4 8.2 4.5 10.7.2 1.4-.3.8-3.2-3.2a174.5 174.5 0 00-6.2-7.9c-5.5-6.4-7.6-9.5-8.2-12.7-.1-.4-.1-.7.1-.6zm38 1.3c.2 0-1 1.6-2.6 3.5a52.3 52.3 0 00-4.7 7c-2 4-5.1 13.3-6.2 19-1.1 6-1.2 5.9-1-.7.5-12.6 5-22.8 12-27.3l2.6-1.5zm-37.5 9.1l1.6.8c.9.5 3 2 4.6 3.3 1.7 1.5 3.2 2.4 3.4 2.2.3-.2.4-.1.2.2a16 16 0 003 4.8 68.3 68.3 0 019 16.5c.5 1.7 1 3 .8 3.2l-3.4-5.2a61.1 61.1 0 00-11.8-14.8 19.6 19.6 0 01-5-6.5l-2.4-4.5zm40.6 6.7c-.9.8-2.8 3-2.8 3a31.7 31.7 0 00-6.6 12.7 75 75 0 001.7 28.5 48 48 0 01-4-11c-.9-4.5-.8-14.9 0-18.4 1-4 3.2-8.6 5.2-10.8 1.7-2 5-4 6.5-4zm-39.4 1.8c.8 0 1.7.4 3.1 1.3 5.5 3.5 12.5 12.6 20.5 27 6.4 11.5 10.1 20.2 4.9 11.5a265.6 265.6 0 00-25.2-34.4l-.1-.2a20.3 20.3 0 00-3.6-3c-2-1.2-2.1-1.7-.4-2.1l.8-.1zm-2 2.3c.5 0 1 .3 1.4.7.6.8.3 4.7-.5 5.1-.6.4-.8-.1-1.3-3.1-.3-2.2-.2-2.7.5-2.7zm36.1 13.7v6a43 43 0 0014 34.7c5.9 5.2 12.5 8 23 9.8 3.5.6 6.7 1 7 1.3.5.1 5.3.6 5 1.1-.1.2.3.3 1 .2 2.1-.4 8.5 1 10.2 1a186 186 0 0123.7 5c1.4.6 4.4 4.1 4.4 5.2 0 .3-1.6.4-4.4.2a21 21 0 01-8.5-2.2c-6.7-3-16-5-27.2-6-5.8-.5-24.7-3.8-30.1-5a68.2 68.2 0 01-17.8-6 52 52 0 01-14.4-9.5l-3.3-3.2 2.8.8c8.3 2.4 15 5.4 23.4 10.7 6.7 4 8.9 5.2 12.5 6 3.3 1 4.3 1 4.3.4 0-.2-1.7-.9-3.8-1.5a37.2 37.2 0 01-24.6-41.3 54 54 0 012.8-7.7zM235 262l.7.2c3 .5 15.2 8.2 19.4 12.3a30.4 30.4 0 014.3 5.8l1.6 3-2.8-2.2a66.5 66.5 0 00-6.4-4.4 86 86 0 01-10-8.5L235 262zm8.4 21.4l1.1.2c1 .1 3.6.7 5.9 1.2 8 1.9 17.8 8 22.8 14.4l2.2 2.9-2.3-1.2c-1.2-.6-2.2-1.3-2-1.5.2-.5-5-4.8-7.7-6.2a92.8 92.8 0 00-8.8-3.6c-6.2-2.3-10-4.1-11.2-5.6-.3-.4-.4-.6 0-.6z"/>
+  <path fill="#cab313" fill-opacity=".5" d="M272.2 234.2c-1.1.4-2.9 2-4 2.9-2.2 1.6-2.5 2.2-.4.7 1.6-1 4.3-3 6.6-3.4.3 0-.9 1.2-1.5 1.8-.9 1-.6 1 1.3-.3l2.4-1.8c0-.4-2.4-.6-4.4.1zm-34.7 38c0 1.2 15.8 12.9 16.5 12.1.1 0-2-1.5-4.6-3.1a65 65 0 01-7.8-5.8c-1.7-1.6-3.9-4-4.1-3.3z"/>
+  <g stroke="#d4af37" stroke-width=".9">
+    <path fill="#fff" d="M246.2 432.3a31 31 0 01-16.4.7 21 21 0 00-6.2 0l2.8 1.8c1.3.8.8.6 3.1 1.7-.4.4-.6.6-2.4 1.3 2.4.5 5.4.8 8.3.6a37 37 0 008.7-1.4 47 47 0 019-1.8c1.2 0 5.4 1.3 9.4 3.4 8.6 4.7 14.6 6 20.6 6 4.1 0 8.4-1 13.3-4.2 3.6-2.3.6-2.2-3-.7-5 2-15.2 3-27-3.2a44.4 44.4 0 00-14.6-5.6c-.4 0-3 .6-5.6 1.4z" transform="matrix(.59548 0 0 .58466 141.4 62.9)"/>
+    <path fill="#d91023" d="M219.9 429.5c1.4 1.2 1.2 1.5 3.8 3.5 3.5.4 10.6 1.1 13.2 1.1 2.4 0 6.8-.4 10-1.2 6.2-1.3 9.2-1 20.5 4 13.1 6.8 20.5 5.6 27.3 2.3 9.4-3.6.2-2-3.2-3-1.1.3-2.5 1.8-5.2 2.7-3.8 1.4-5.8 1.4-10.3-1-2.9-1.4-5.4-2-8-3.5-2.5-1.5-3.1-1.3-7.3-2.7l-6.2-1.2-9.4-.5a44 44 0 01-21.5-1.3c-5.4-1.7-6.4-1.4-3.7.8z" transform="matrix(.59548 0 0 .58466 141.4 62.9)"/>
+    <path fill="#d91023" d="M244.3 436.8a35 35 0 01-17.2 1l-3.9 1.3c-5 1.7-5 1.8-2.9 2.4 1.3.4 6.3.7 11.3.6 8.5 0 9.3-.1 14-2.4a24 24 0 017-2.5c1 0 4.5 2 7.7 3.7 8.8 4.6 12.1 6 19.4 5.9 7.3 0 16.7-5.3 17.9-7a28 28 0 01-17.3 4.8 41 41 0 01-19.8-7c-5.8-3.1-7.8-3.2-16.1-.8z" transform="matrix(.59548 0 0 .58466 141.4 62.9)"/>
+    <g stroke-width=".8">
+      <path fill="#fff" d="M293.5 417.7c1.2-1.4.8-2-2.5-2.4a47.2 47.2 0 01-23.1-10.9c-2.2-2.3-3.1-2.5-3.1-.7 0 2 6.7 8.1 11.6 10.6a45.6 45.6 0 0014.5 4.7c.8 0 1.9-.5 2.6-1.3z" transform="matrix(-.20995 -.43098 -.90458 .22461 742 335.3)"/>
+      <path fill="#d91023" d="M290.7 421.4c.2-.4-.4-2.4-3.1-3a41.8 41.8 0 01-19-9.8c-3.6-3.5-5.3-3.9-4.1-.7 1.6 4.6 14.3 11 19.3 12.6 5 1.6 6.1 2 6.9.9z" transform="matrix(-.20995 -.43098 -.90458 .22461 742 335.3)"/>
+      <path fill="#ed1c24" d="M295.5 415.4l.8-1.4-4-2.6c-4.7-.6-13-3.6-18.6-6.7a21.5 21.5 0 00-6.1-2.6c-1.5 0-1.6 0 .1 1.9a44 44 0 0021.8 10.4c2.3.4 4.7 2 6 1z" transform="matrix(-.20995 -.43098 -.90458 .22461 742 335.3)"/>
+      <path fill="#fff" d="M293.5 417.7c1.2-1.4.8-2-2.5-2.4a47.2 47.2 0 01-23.1-10.9c-2.2-2.3-3.1-2.5-3.1-.7 0 2 6.7 8.1 11.6 10.6a45.6 45.6 0 0014.5 4.7c.8 0 1.9-.5 2.6-1.3z" transform="matrix(.23749 -.41683 .88814 .2813 -101.9 308.3)"/>
+      <path fill="#d91023" d="M289 420.6c0-.2 1.2-1.6-1.4-2.2a41.8 41.8 0 01-19-9.8c-4.2-4.6-6.3-5.6-4.1-.7 1.6 4.6 14.3 11 19.3 12.6 5 1.6 4.4 1.3 5.1.1z" transform="matrix(.23749 -.41683 .88814 .2813 -101.9 308.3)"/>
+      <path fill="#ed1c24" d="M295.5 415.4l.8-1.4-4-2.6c-4.7-.6-13-3.6-18.6-6.7a21.5 21.5 0 00-6.1-2.6c-1.5 0-1.6 0 .1 1.9a44 44 0 0021.8 10.4c2.3.4 4.7 2 6 1z" transform="matrix(.23749 -.41683 .88814 .2813 -101.9 308.3)"/>
+    </g>
+    <path fill="#fff" d="M319.7 402.7a30.7 30.7 0 00-16.7 13.1c-2 3-4 4.4-2.6 5 1.5.8 2.9-1.3 5.6-4 7-7 12.5-10 20-10h6l-1.8-2.5c-2.1-3-4.6-3.3-10.5-1.6zm-50.5 2.4c-1.2 1.4-.9 2 2.6 2.5A49.4 49.4 0 01296 419c2.3 2.4 3.3 2.6 3.3.7 0-2-7.1-8.5-12.2-11-4.4-2.4-12.2-5-15.1-5-1 0-2 .5-2.8 1.4z" transform="matrix(.59517 .01882 -.01898 .58436 150 60.3)"/>
+    <path fill="#d91023" d="M318.6 399.5a52 52 0 00-5.4 2.3 48 48 0 00-9.9 9.6l-3 4.2c-1.3 2-1.5 3.2-.8 3.3.6.2 2-.7 3.5-2.7 6-8.4 11.6-12.2 19.8-13.9 4.2-.8 4.8-.8 6.3.7 1.2 1-.3-.2-.6-1-.5-1.8-1.8-2.7-4.5-3.2a13.3 13.3 0 00-5.4.7z" transform="matrix(.59517 .01882 -.01898 .58436 150 60.3)"/>
+    <path fill="#d91023" d="M272 403.3c-.2.4 1.8 1.2 4.5 1.7a42 42 0 0119 9.9c3.5 3.5 5.3 3.8 4 .6-1.5-4.5-14.2-11-19.2-12.5-5-1.6-7.6-.8-8.3.3zm48.5 4A39.3 39.3 0 00307 416c-4 3.9-5.8 6.3-4.2 6.3.3 0 2.7-1.9 4.3-3.3 7-6 19.8-9.4 25.4-7.3 2.8 1 1.5-2-.4-4.8-1.1-1.7-8-.7-11.5.6zm-53-.2l-3.4 3.1 5 .9c5 .6 14.3 4 20.5 7.4 2.7 1.6 5.8 2.9 6.7 2.9 1.7 0 1.8 0-.1-2.1a48.7 48.7 0 00-24-11.6c-2.7-.4-3.4-1.8-4.8-.6z" transform="matrix(.59517 .01882 -.01898 .58436 150 60.3)"/>
+    <path fill="#d91023" d="M304.5 422.4a33.6 33.6 0 00-1 14.1c1.6-.2 2.7-.2 5.3-.7.3-2.2.7-4.7.6-7.4.3-3.7 0-1.8 2.1-4.8-2.3-1.5-3-1.6-7-1.2z" transform="matrix(.59548 0 0 .58466 140.8 64.7)"/>
+    <path fill="#fff" d="M296.2 428.6c0 4.2.3 5.2.3 7.2 2.3.3 7.4 1 7 .2v-8l1-5.5-3.7-.6-3.2.4-1.4 6.3z" transform="matrix(.59548 0 0 .58466 140.8 64.7)"/>
+    <path fill="#d91023" d="M291 428.8c.1 3.4-.5 4.5-.1 6.5 1 .3 5 .2 6.3.5-.2-4.3-.2-.5-.6-6.2l1.2-7.3-3.6.3s-2.2-.7-3.7-.7c1.3 2.3.5 7 .5 7z" transform="matrix(.59548 0 0 .58466 140.8 64.7)"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pf.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pf.svg
new file mode 100644
index 0000000..7a32556
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pf.svg
@@ -0,0 +1,19 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-pf" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="pf-a">
+      <path fill-opacity=".7" d="M0 0h640v480H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#pf-a)">
+    <path fill="#fff" d="M0 0h640v480H0z"/>
+    <path fill="#fff" d="M80 0h480v480H80z"/>
+    <path fill="#083d9c" fill-rule="evenodd" stroke="#083d9c" stroke-width="2pt" d="M277.3 340.8s10.8-8.8 21.4-8.8 13.4 7.3 20.8 7.9c7.3.6 13.4-7.3 22.5-7.6 9.1-.3 20.5 6.4 20.5 6.4l-39.8 12-45.4-10zm-22.9-13l135.4.7s-11.7-12.7-25.5-13c-13.8-.2-10 6-20.5 6.8-10.6.9-13.2-6.4-22.9-6.2-9.6.3-15.2 6.2-22.5 6.5-7.4.3-16.7-7.3-22.3-7-5.6.3-25.5 8.7-25.5 8.7l3.8 3.6zm-17.3-16l167 .5c2.7-3.8-8.2-12.9-18.1-13.7-8.2.3-14 8.5-20.8 8.8-6.8.3-14.4-8.5-22-8.2-7.6.3-15.5 8.2-23.1 8.2-7.7 0-13.2-8.5-22.9-8.5s-14 9.3-21.4 8.8c-7.3-.6-13.8-9.4-20.8-9.4s-18.7 10.5-21 10c-2.4-.7 2.9 4.3 3.1 3.4z"/>
+    <path fill="red" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.5" d="M301.3 218.9l38.4 10.2v-54.8c-17.6 1-32.2-33.4-1.2-35.7-30.5-4.4-34 3.5-37.5 12l.3 68.3z"/>
+    <path fill="#083d9c" fill-rule="evenodd" stroke="#083d9c" stroke-linecap="round" stroke-width="5" d="M277 258.7l86.7.3"/>
+    <path fill="none" stroke="#000" stroke-linecap="round" stroke-width="4" d="M281.1 238l10.3 13.7m-10.3 0l11.1-13.5M287 237l-.3 8.5m10.8-7.6l10.3 13.8m-10.3 0l11.1-13.5m-5.2-1.2l-.3 8.5m11.1-7.6l10.3 13.8m-10.3 0l11.1-13.5m-5.2-1.2l-.3 8.5m11.7-7.6l10.2 13.8m-10.2 0l11.1-13.5m-5.3-1.2l-.2 8.5m11-7.6l10.3 13.8m-10.2 0l11.1-13.5M354 237l-.3 8.5"/>
+    <path fill="#ef7d08" fill-rule="evenodd" d="M218.7 259.6l36.9.3v-23.1l-42.2-2.1 5.3 24.9zm-1.8-32l39.3 3.9-.3-16.4-38.4-15.3-.6 27.9zm8-32.7l30.1 14.6 4.3-4.5s-2.8-1.9-2.6-3.7c0-1.7 2.8-2 2.8-4 0-1.7-3-2-3.1-3.7-.2-2 2.4-4 2.4-4l-27.2-23.7-6.8 29zm198 65h-39l-.3-22.6 42.8-3.2-3.5 25.8zM384.2 232l46.3-5.6-10-26.7-36.6 15.6.3 16.7zm33.7-39.6L384.5 210c-.5-2-.9-3.8-3.2-5.3 0 0 2-1.2 2-3.2s-2.6-2.4-2.6-3.5 2.4-2.2 2.6-4.9c-.3-1.8-2.6-4.4-2.2-4.9l26-19.8 10.8 24zm-72.4 39.1l16.7-.7.3-6.7-17 7.4zm-51-.5l-17.5-.5v-7l17.6 7.5zm0-2l-17.5-9v-11.8s-2 .3-1.8-2c.1-4.9 12.9 8.9 19.4 13.4l-.1 9.4zm51-1.1v-7.7s15.8-14.2 19.1-16.9c0 3-1.8 5.2-1.8 5.2v11.2l-17.3 8.2zM243 163.8l17.8 19.7c.4-1.8 4.5-2.1 8.6-1.8 4 .3 7.3-.3 7.3 2.6s-2 2.5-2 4.6 3 1.9 3 4.5-2.2 2.1-2.2 4.1c0 1.7 2.4 1.8 2.4 1.8l16.6 16.1v-17.2l-34.2-53.7-17.3 19.3zm27.4-20.4l23.3 47.5s.2-43.8 4.1-46.1l-6.5-12-20.9 10.6zm101 1.9l-26 46.2V172s2.2-3.2-1.2-3c-3.4.3-7.5-.2-7.5-.2l10.4-36.6 24.3 13zM398 165c-.3.5-17.5 18-17.5 18-.8-2-6-1-11-1-4.9 0-5.6 1.6-5.3 2.9.5 3.3 2.2.8 2.2 4 0 3.1-2.4 2-2.7 4.2.3 2.7 3.8 2 1.7 4l-19.9 19.2v-18.2l37.1-57.6L398 165z"/>
+    <path fill="red" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width="2.5" d="M309.8 268.4c-8.3 13.8-30.6 9.7-35.9 0-1.5-.4-.6-59.5-.6-59.5s-2.5-1.1-2.6-3c-.1-1.8 3.4-2 3.4-4.3s-3.6-1.4-3.7-3.8c0-2.2 3.9-2 3.7-4-.2-2.4-4.3-2-4.5-4.2 0-1.7 3-3.2 3.8-4a61.3 61.3 0 01-2.8 0l-6.4.1c-4.6 0 0 1 0 3.6 0 1.7-2.3 2.9-2.5 4.3-.1 1.6 3.2 2.6 3.3 4.5 0 1.6-3.3 1.7-3.2 3.3.2 2.5 3 3.1 2.9 4.7 0 1.5-3.6 2.1-3.7 3.3.2 2.4.6 60.8.6 60.8 5.7 29.8 38.8 37.3 48.2-1.8zm21.9 0c8.3 13.8 30.6 9.7 35.8 0 1.6-.4.7-59.5.7-59.5s2.5-1.1 2.6-3c.1-1.8-3.2-2-3.2-4.3s3.4-1.4 3.4-3.8c0-2.2-3.5-2-3.3-4.2.2-2.3 3-2 3.1-4.2.1-1.9-1.7-3-2.6-3.8h2.7l6.4.1c4.5 0 0 1 0 3.6 0 1.7 2.3 2.9 2.5 4.3 0 1.6-3.2 2.6-3.3 4.5 0 1.6 3.3 1.7 3.2 3.3-.2 2.5-3 3.1-3 4.7.1 1.5 3.7 2.1 3.7 3.3l-.5 60.8c-5.7 29.8-38.9 37.3-48.2-1.8z"/>
+    <path fill="#083d9c" fill-rule="evenodd" stroke="#083d9c" stroke-width="2pt" d="M301.7 295.6H339c.3-.3-8.4-13-18.6-12-11.5.3-19.3 12-18.7 12zm118.9-1h-51s6.6-3.8 8.4-7.4c3.3 1.8 2.4 3.6 9 3.9 6.6.3 12.9-7.5 19.2-7.2 6.3.3 14.4 11 14.4 10.8zm-201 0h51s-6.6-3.8-8.4-7.4c-3.3 1.8-2.4 3.6-9 3.9-6.6.3-13-7.5-19.2-7.2-6.3.3-14.4 11-14.4 10.8zm3.8-16l36.3.3s-2.3-5-2.6-11.1c-9.4-3.2-17 7-23.8 7.3-6.7.3-13.7-7.3-13.7-7.3l3.8 10.8zm194 0l-36.4.3s2.3-5 2.6-11.1c9.4-3.2 17 7 23.8 7.3 6.7.3 13.7-7.3 13.7-7.3l-3.8 10.8zM311 279l18.4-.5s.3-5.6-9.3-5.6-8.8 6.4-9.1 6.1zm-11.2-7.9a17 17 0 008.2-7.6l-12.6.3s-5.8 3.5-8.7 7.3h13.1zm40.8 0a17 17 0 01-8.2-7.6l12.6.3s5.8 3.5 8.7 7.3h-13.1z"/>
+    <path fill="#de2010" fill-rule="evenodd" d="M-40 360h720v120H-40zm0-360h720v120H-40z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pg.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pg.svg
new file mode 100644
index 0000000..5fb0cd5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pg.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-pg" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path d="M1.6 0l-.5 480h640L1.6 0z"/>
+    <path fill="red" d="M640.6 480l.5-480H1.1l639.5 480z"/>
+  </g>
+  <path fill="#fc0" stroke="#fc0" stroke-width="1.1" d="M178 54l-3.8-.2c-1.2-2.8-4.5-3.8-6.6-2.6A333 333 0 01156 51l7.1 3.1C165 59 171 60 171 60c-.6 8.8-8.9-1.1-15.9 3.9-5 3-5 6.5-7.7 12.3-.9 1.6-4.4 5.8-4.4 5.8l5.9-.5L147 84l7-1-1.5 1.4c1 .2 8-1.7 8-1.7L160 85l8-2.9s1.6 1.3 3 1.9l1-4 4 1 1-4c6 8 8 16 19 18l-1-4a262.2 262.2 0 018.7 4l.9-1.7c4.8 3.4 8.7 3.3 11.4 3.7l-2-5 2 1-3-8 3 1-4-6 1.5-1-.5-3c6 2 14 5 15 12 1 11-11 14-19 13 6 5 17 3 22-2 2-2 3-5 4-8 1 3 3 7 3 11-1 9-13 12-21 13 9 5 25-1 26-14 0-11-7-16-10-21l-1-5.4 3 1.4s-1.8-3.3-2-4c0 0-3.1-8.5-4.2-10.4l2.2.4-8.2-10.3 2.3-.2S215.6 44 213 43l3-1c-6-3-13-1-19 3l1-3-1.8.2v-3.5L198 36l-3-1 2-5-3 1 1-5s-2.2 1-3.6.9a51.7 51.7 0 001.6-3.4c-1-1.5 0-4.5 0-4.5-7 1-8 2-12 8-6 11-4 16-3 27z" transform="matrix(2.21989 0 0 2.21194 1.1 0)"/>
+  <path fill="red" fill-rule="evenodd" stroke="red" stroke-width="1.4" d="M215.8 70.4c.5.9 6.2 3.6 10.4 6-1.1-4.6-9.4-5.6-10.4-6z" transform="matrix(2.21989 0 0 2.21194 1.1 0)"/>
+  <path fill="#fff" fill-rule="evenodd" d="M175 399l-14.2-9-19 9.1 4.3-16.2-14.5-15.1 16.7-1 10-18.4 6.1 15.5 20.7 3.8-13 10.6zm36.2-79l-6.6-3-6.3 3.6 1-7.2-5.4-4.9 7.1-1.3 3-6.6 3.5 6.4 7.2.8-5 5.2zm32-45.2l-14.5-7-13.9 7.8 2.3-15.7-11.8-10.8 15.7-2.8 6.6-14.4 7.6 14 15.8 1.8-11 11.5zm-65.8-63l-17-8.5-16.5 9.1 2.8-18.6-13.8-13 18.7-3 8-17 8.7 16.7 18.8 2.3-13.3 13.4zm-60.8 65.4l-17-10-17 10.3 4.3-19.3-15.1-13 19.7-1.8 7.7-18.3 7.9 18.2 19.8 1.6-14.9 13z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ph.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ph.svg
new file mode 100644
index 0000000..a0c37d8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ph.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ph" viewBox="0 0 640 480">
+  <path fill="#0038a8" d="M0 0h640v240H0z"/>
+  <path fill="#ce1126" d="M0 240h640v240H0z"/>
+  <path fill="#fff" d="M415.7 240L0 480V0"/>
+  <g fill="#fcd116">
+    <path stroke-width="1pt" d="M26.7 42.4L41 55l16.6-9.2-7.4 17.5 14 13-19-1.6-8.1 17.2-4.3-18.5L14 71l16.3-10zm323.8 172.3l.4 19 18 6.3-18 6.2-.4 19-11.5-15.1-18.2 5.5 10.8-15.6-10.8-15.6 18.2 5.5zM37.2 388.1l8 17.2 19-1.6-13.9 13 7.4 17.5-16.6-9.1-14.4 12.4 3.6-18.7L14 409l18.9-2.4z"/>
+    <path stroke-width="5.3" d="M151.4 139.1l-6.2 6.2 3.1 47-3 .3-5.7-42.9-5.1 5 7.6 38.4a47.5 47.5 0 00-17.2 7.1l-21.7-32.4H96l26.4 34.3a48 48 0 00-2.4 2l-31.1-35.5h-8.8v8.8l35.4 31-2 2.5-34.3-26.3v7.1l32.5 21.7c-3.4 5.2-5.9 11-7.1 17.2L66.3 223l-5.1 5 42.9 5.7c-.2 1-.3 2.1-.3 3.1l-47-3-6.2 6.2 6.2 6.2 47-3.1.3 3.1-42.9 5.7 5 5 38.4-7.6a47.5 47.5 0 007.1 17.2l-32.5 21.7v7.2l34.3-26.3a48 48 0 002 2.4l-35.4 31v8.8H89l31-35.4 2.5 2L96 312.2h7.2l21.7-32.5c5.1 3.4 11 5.9 17.2 7.1l-7.6 38.4 5 5 5.7-42.9c1 .2 2 .3 3.1.3l-3 47 6.1 6.2 6.3-6.2-3.1-47 3-.3 5.7 43 5.1-5.1-7.6-38.4a47.5 47.5 0 0017.2-7.1l21.7 32.5h7.2l-26.4-34.3a48 48 0 002.4-2l31.1 35.4h8.8v-8.8l-35.4-31 2-2.4 34.3 26.3v-7.2l-32.5-21.7c3.4-5.1 5.9-11 7.1-17.2l38.3 7.6 5.1-5-42.9-5.7c.2-1 .3-2 .3-3.1l47 3 6.2-6.1-6.2-6.2-47 3-.3-3 42.9-5.7-5-5-38.4 7.5a47.5 47.5 0 00-7.1-17.2l32.5-21.7v-7.1l-34.3 26.3a48 48 0 00-2-2.4l35.4-31v-8.9H214l-31 35.5a48 48 0 00-2.5-2l26.4-34.3h-7.2L178 200.2c-5.1-3.4-11-5.9-17.2-7.1l7.6-38.3-5-5-5.7 42.8-3.1-.3 3-47z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pk.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pk.svg
new file mode 100644
index 0000000..387265c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pk.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-pk" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="pk-a">
+      <path fill-opacity=".7" d="M-52.3 0h682.6v512H-52.3z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#pk-a)" transform="translate(49) scale(.9375)">
+    <path fill="#0c590b" d="M-95 0h768v512H-95z"/>
+    <path fill="#fff" d="M-95 0H97.5v512H-95z"/>
+    <g fill="#fff">
+      <path d="M403.7 225.4l-31.2-6.6-16.4 27.3-3.4-31.6-31-7.2 29-13-2.7-31.7 21.4 23.6 29.3-12.4-15.9 27.6 21 24z"/>
+      <path d="M415.4 306a121.2 121.2 0 01-161.3 59.4 122.1 122.1 0 01-59.5-162.1A118.6 118.6 0 01266 139a156.2 156.2 0 00-11.8 10.9A112.3 112.3 0 00415.5 306z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pl.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pl.svg
new file mode 100644
index 0000000..c00513a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pl.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-pl" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="#fff" d="M640 480H0V0h640z"/>
+    <path fill="#dc143c" d="M640 480H0V240h640z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pm.svg
new file mode 100644
index 0000000..07ea24c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pm.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-pm" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h640v480H0z"/>
+    <path fill="#00267f" d="M0 0h213.3v480H0z"/>
+    <path fill="#f31830" d="M426.7 0H640v480H426.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pn.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pn.svg
new file mode 100644
index 0000000..80682ab
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pn.svg
@@ -0,0 +1,62 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-pn" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="pn-a">
+      <path d="M-15-7.5h30v15h-30z"/>
+    </clipPath>
+  </defs>
+  <path fill="#00247d" d="M0 0h640v480H0z"/>
+  <g clip-path="url(#pn-a)" transform="translate(320 160) scale(21.33333)">
+    <circle r="20" fill="#00247d"/>
+    <path stroke="#fff" stroke-width="3" d="M-20-10l40 20m-40 0l40-20"/>
+    <path stroke="#cf142b" stroke-width="2" d="M-20-10l40 20m-40 0l40-20"/>
+    <path fill="#fff" d="M0 0l20 10h-3L-3 0m3 0l20-10h3L3 0M0 0l-20 10h-3L-3 0m3 0l-20-10h3L3 0"/>
+    <path stroke="#fff" stroke-width="5" d="M-20 0h40M0-10v20"/>
+    <path stroke="#cf142b" stroke-width="3" d="M-20 0h40M0-10v20"/>
+  </g>
+  <path fill="#f7e017" stroke="#000" stroke-width=".6" d="M410 310.4a59.7 59.7 0 00-20.1 29.3c-6 28.9-14 35.3-26.5 29 0 15.6 13.6 16.8 19.6 7.7 0 14.5 5.3 27.1 17.1 37.9 5 4.5 6 1.4 3.6-3.6s-2.4-21.2-7.1-30.5c7.6 5.5 18.8 2.4 17.8-12.6-9.7 5.7-19.5 5.5-20.5-8.1-1.2-16 5-39.1 16-49.1zm-11.6-114.8c.6-5.7-.6-11.6-4.8-15.2-8-7.2-16-4.8-21.9 1-8.8-4.8-13.5 12-23.5 9.2 1.7 5.5 4.3 7.8 9.3 6-5.2 4.7 0 10.4-6.2 16.2 11.2 3.5 17.2-2.7 16.7-13.4 4.3 3.8 11 3.6 14.5-.7-6-2-6-7.1-3.6-12 3.6-7 20.4-6.8 19.5 9z"/>
+  <path fill="#337321" stroke="#000" stroke-width=".6" d="M424.2 278.5c-12.6 6.7-35.7 3.8-37.9-12.6-2.1-16.4 13.8-23.8 18.1-26 6.7-3.3 12 2.6 9.8 9.5a10.8 10.8 0 005.5-16.2c9.7.7 18.8-6.6 22.6-17.1-3.4 3.3-12.8 1-20.5.5 2.4-2.6 2.4-7.7 1.7-10.3-8.1 8.3-19.8 4.5-35.3 28.6 2.4-8.3 7-25 9.6-36a27.1 27.1 0 00.6-3.3c.9-15.7-15.9-16-19.5-8.8 4 4.4 2 9.6.5 17.4-1.6 9.3-5.2 30.7-8.3 37.9-1-11.2-8.4-12-9.8-17.4-2.1 1.4-3.3 5.2-2.9 7.8-2.6-2.8-11.6.7-15-3.5-3.5 7.1 2.2 14.3 8.2 17.3-3.5.3-4.4 4.5-8.2 4.5a23.3 23.3 0 0016.5 8.8c6 .5 10.6 2.7 14.3 10.1 6 11.9 28.6 19.6 50 8.8z"/>
+  <path fill="#f7e017" stroke="#000" stroke-width=".6" d="M455.7 264c-7.2 19.7-26.7 33.8-35.6 36-15 3.6-45.6 18.4-53.8 26"/>
+  <path fill="#337321" stroke="#000" stroke-width=".6" d="M410 310.4c-11.4 9.6-17.3 33.1-16 49.1.3 4.4 1.5 7.5 3.4 9.3.8-9 7.1-32.4 23.2-42.9 13.6-8.8 34.8-28.6 42.7-51.2a18 18 0 00-8.4-9.8c-7.8 21.4-28.7 31.6-45 45.5z"/>
+  <path fill="#316d3a" stroke="#000" stroke-width=".6" d="M448.4 254.8c-4 6-13.2 14.4-22 17.8 1.9-2.2 2.5-5 2.6-7.2a80.8 80.8 0 01-42.7.5 58.2 58.2 0 0057.7-17.2c2 2.2 3.6 4 4.4 6.1z"/>
+  <path fill="#337321" stroke="#000" stroke-width=".6" d="M362.7 304.7c-18.2 17-6.2 32 1 35.3-2 11.9 9.3 10.4 9 20.4 4.6-2.6 5.8-9.5 5-15 5.8 6.2 20.3-.7 23.4 10.8 2-12.7-7.9-25.3-20-24.1 5-4.5 2.1-11.9-2.6-13.8-1 9.3-11.5 9.3-15.5 6.4-4-2.8-7.4-12.1-.3-20z"/>
+  <path fill="#f7e017" stroke="#000" stroke-width=".6" d="M402.2 413.1c-2 1.1-1.9 3.7-.6 5.3 2.5 3.4-1.8 11 6.3 12.6 2.4.5 4.2-1 5.1-3.7 2.5-7.5-5.5-8.4-6.2-12-.7-3.5-3-3.2-4.6-2.2z"/>
+  <path fill="#f7e017" stroke="#000" stroke-width=".6" d="M409 427.2c-2.7 1.2-5 3-4 11.5.5 3.6.2 12.2-2.8 12.3 1.9 1 6 2 7.6-.3 1.6 2.7 5.2 2 6.7-1.4 1.9 1.6 4.5-1 4.5-3.3 1.7 1 5-.5 4.1-5.6 2 .7 4.7-.7 5.7-2-3-.6-10.5-4.7-12.3-8-1.8-3.1-6.4-4.7-9.5-3.2z"/>
+  <path fill="none" stroke="#000" stroke-width=".6" d="M367.7 186.2a31.4 31.4 0 014-4.9m41.3 36.4c2.1-1.1 5.3-1.3 8.9-1m-12.1 234c-.8-1.1-1.1-6.2-.6-9.2m7.3 7.8"/>
+  <path fill="#f7e017" stroke="#000" stroke-width=".6" d="M535 305c29.3 24.5 31.2 44 26.7 55.4-2.4-10.7-14.5-27.3-27.2-31.6l.5-23.9z"/>
+  <path fill="#337321" stroke="#000" stroke-width=".6" d="M482.6 291.1h54.3v64.4c0 54.7-30.5 87.1-61.5 104.3A114.3 114.3 0 01414 355.5V291h38c0 3.4.4 8.4 4.3 13.4 9-1 19.2-7.7 26.2-13.4z"/>
+  <path fill="#006ec7" stroke="#000" stroke-width=".6" d="M536.9 291.1v64.4c0 16.5-2.8 31-7.5 43.6l-54-99-53.9 99"/>
+  <g fill="#f7e017" stroke="#000" stroke-width=".6">
+    <path d="M500 429.6l5.2 2.6a38.3 38.3 0 002.4-21c-3 7.9-13.6 7.6-16.4 12.4a34.6 34.6 0 014.8 3 55 55 0 01-16.7 11v-51c0-3.6-1.2-6.6-1.2-9.6v-10.5c0-2.4-.5-5.9-2.7-5.9-2.1 0-2.6 3.5-2.6 5.9V377c0 3-1.2 6.4-1.2 9.6v51c-2.6-7.6-12.9-5-17.6-12.6a13.5 13.5 0 015.7-.2c-3.5-12.2-13.3-13.1-15.2-16.7 0 5-2.1 16.7 1.2 21.7a13.3 13.3 0 013.2-2.6c4 8.8 22.3 8.8 26.5 23.3 3.5-5.3 15.9-11.5 24.6-20.9z"/>
+    <path d="M475.4 387.1c4 0 17-1.3 21.6-1.3 1.2 0 2.2-1.8 2.2-4s-1-4-2.2-4c-4.6 0-17.5-1.4-21.5-1.4s-17 1.3-21.6 1.3c-1.2 0-2.2 1.8-2.2 4s1 4.1 2.2 4.1c4.6 0 17.5 1.3 21.5 1.3zm-2.6-20.9"/>
+    <path d="M453.9 385.8c1.2 0 2.2-1.8 2.2-4s-1-4-2.2-4"/>
+    <path d="M455.7 385.8c1.2 0 2.2-1.8 2.2-4s-1-4-2.2-4m11.7 8.8c1.5 0 2.7-2.1 2.7-4.8 0-2.7-1.2-4.9-2.7-4.9m2.8 10c1.5 0 2.8-2.3 2.8-5.1s-1.3-5.1-2.8-5.1m9.1 10.2c1.6 0 2.8-2.3 2.8-5.1 0-2.9-1.2-5.2-2.8-5.2m3 10.2c1.4 0 2.7-2.3 2.7-5 0-2.8-1.3-5-2.8-5m12.8 9.1c1.2 0 2.2-1.8 2.2-4.1s-1-4.1-2.2-4.1m-46.2 49.5a18.1 18.1 0 015.2-2.2m43.4 2.6l-1.4-1m4 3c3.3-3.5 6-7.6 7.6-12.2"/>
+  </g>
+  <g stroke="#000" stroke-width=".6">
+    <path fill="#fff" d="M464.5 336.6c0-1.2 1-1.7 2.1-2.5 1.3-1 1.9-1.5 3.1-1.5h15.6c1.2 0 1.5.3 1.5 1.4v21.2c0 1.1-.3 1.4-1.5 1.4h-20.8v-20.2"/>
+    <path fill="#e5e5e5" d="M481.5 358.5c2 0 1.7 0 3-1.5 1.6-1.5 1.5-1.4 1.5-2.8v-19.4c0-1-.3-1.3-1.4-1.3h-14.4c-1.1 0-1.6.4-2.9 1.4-1 .8-1.9 1.3-1.9 2.3v21.3h16z"/>
+    <path fill="#fff" d="M483 358c0 1-.3 1.4-1.4 1.4h-15.7c-1.1 0-1.4-.3-1.4-1.4v-21.3c0-1 .3-1.3 1.4-1.3h15.7c1.1 0 1.4.3 1.4 1.4V358z"/>
+  </g>
+  <path fill="#96877d" stroke="#000" stroke-width=".6" d="M513.3 278.7a12 12 0 012.4 12.4h-4.5c1.9-5.7.7-11.2-7.4-11.9-12.1-1-26.2 22.4-47.4 25.3-6.2-7.4-5.9-21.5 2-28.1a86.7 86.7 0 00-18.6-30.2"/>
+  <path d="M460.5 285c-1-16-7.5-29-16.5-38a25 25 0 0019-3c8-5.3 28.4-14.5 35.9-10.5a11.7 11.7 0 01.5 6.1c-1.8-4.7-21.6 2.7-27.2 5-5.3 2.4-7.7 5.8-5.8 13.3-3.1-2.6-2-5.1-5.3-7a50 50 0 012.8 13.2c-1.2-3.2-3.4-10.1-8-14.2a78 78 0 015.9 36.8 30 30 0 0013.1-5.5c-2.5 3.6-9.7 6.1-14.3 7-2 2.6-3.5 9-3.4 12.6-.3-4.4 1-15.2 3.3-15.9zm52.8-6.3c-4-4.4-11.3-6.8-20.7-4.2a29.8 29.8 0 017.3-2.4c-.4-2.5-2.7-13.3-3-15.9l2.6-1a178 178 0 004 16.8c1 .2 2.8.6 4.5 1.4-.8-2.5-4.8-20.5-4.7-22.4l3.6-2c1.4 9.8 3.7 24 6.4 29.7z"/>
+  <path fill="#96877d" stroke="#000" stroke-width=".6" d="M511.2 291.1c1.9-5.7.7-11.2-7.4-11.9-6.3-.5-13 5.6-21.2 12h28.6zm-52.7-51.3"/>
+  <path fill="none" stroke="#000" stroke-width=".6" d="M458.4 276.4c1.3 3.8 2.2 7.4 2.3 10.7m-13.1-58.3c-2.2 3.2-4 6.6-4.7 9.4 4 1.4 12 2 15.6 1.6"/>
+  <path fill="none" stroke="#000" stroke-width=".6" d="M439.8 246.2l4.2.8a24.9 24.9 0 0019-3c6-4.3 22.2-17.7 40.6-19.1"/>
+  <path fill="none" stroke="#000" stroke-width=".6" d="M435 242c5.8 1.3 17.6 1.8 23.5-2.2a80.4 80.4 0 0140.5-15.6"/>
+  <path fill="#337321" stroke="#000" stroke-width=".6" d="M535 305c20 13.8 34.8 27.1 39 48.6 4.4 21.4 12.5 27.1 22.5 21.4-2.4 12.4-14.8 13.8-25.3 4.3 1 14.3-4.8 31.4-19.5 37.6-1-8.6 4.7-15.3 3-22.4-.6-3-.9-10.2 3.2-13.6-7.9 2.7-20.3-2.3-21.5-14 9 4.3 20.8 5 25.3-6.4 4.5-11.5 2.6-31-26.7-55.6zm25.3-111.5c6.1-16.3 22.4-14.6 27.8-7.7 16-9 18.1 11.5 31.7 7.4-.2 3.8-4.8 7.4-9.7 7.2 5.2 4.7-2.2 11.9 9 16.2-9.5 4.7-22.9-.3-26.5-13.4-3 6.2-14.3 6.2-18.8 1.2 9.8-2.6 9-11.7 3.6-15.2-5.5-3.6-15.3-2.2-17.1 4.2zM511.9 229a86.8 86.8 0 0023.6 36.8c11.4 10.5 28.7 7.8 38.3-2.2.3 20-20.4 21.5-31.9 15.3-5-2.8-9.2-1.3-4.3 3 7.4 6.7 23.6 11.7 42.7 15.8 33.3 7.1 21.4 33.6 11.6 33.4 2.9-.1 5.2-3 1.1-6.7-29-26-87.8-15.7-86.8-73.9-6.2 15.3-31.7 9.3-19.8-8.8 3.8 3.1 10.5 3.3 12.4-1.4 1.5-3.7.5-10.2-6.2-15.7 1.1-.1 3.5 0 3.2-2.7.3 1.6 1.8 4 5.5 3.2 1.1 1.6 2.2 2.8 3.8 2.2.3-.2 1.2-.6.8-2.3.3 3.1 4 4.3 6 4z"/>
+  <path fill="#f7e017" stroke="#000" stroke-width=".6" d="M542 279c13.7 9 29.3 9 43.7-7.6 4.6-5.3 11.7-9.8 16.7-10.3s4.8-5.2 8.6-6.2c-2.4-.7-3.3-3.5-6.9-3.2 9-3.1 6.3-10.2 10.7-13.7-3.6 1.3-9.1-4-14.3 2.8 1.3-3.2-.5-6.9-1.8-8.3.5 3.6-7 4.3-8.4 13.4-.8 5-3.6 4.7-4-3.1-.4-5.8-3.2-21.7-6.5-29.8-3.3-8.1-4.1-19.2.4-21m-33.5 234.4c3 1.5 5.5 3.5 3.9 13-.7 4-.8 13.6 2.7 13.9-2.2 1-6.8 1.9-8.5-.6-2 2.9-6 1.9-7.4-2-2.2 1.7-5-1.3-5-3.9-1.8 1.2-5.5-.7-4.3-6.4-2.3.7-5.2-1-6.2-2.5 3.3-.5 11.9-4.7 14-8.2 2.2-3.5 7.4-5 10.8-3.3z"/>
+  <path fill="none" stroke="#000" stroke-width=".6" d="M544.7 452.7c1-1.3 1.6-6.9 1-10.3m-8.4 8.4a15.7 15.7 0 005.1-8.2m-10 4.3c2-.8 6.7-6.5 7.8-10.2m-12.2 3.7a26 26 0 0012.1-9"/>
+  <path fill="#f7e017" stroke="#000" stroke-width=".6" d="M506.2 250.6c-.4 24.5 9.7 36.8 23.8 44.8-5.2-3-3-13.8-10-17.3 1.7 0 4.3 2.3 8.5 1.3-2-4.5-5.4-11.4-13.1-12.3 2-.3 6.4.4 9.2-.6-4-6.2-14.7-3.3-18.4-15.9zm-2.6-23.2c-.8-.3-1.6-1.1-2.3-2.3-3.7.8-5.2-1.5-5.5-3.2.2 2.8-2.1 2.7-3.2 2.8 6.7 5.5 7.7 12 6.2 15.7-2 4.7-8.6 4.5-12.4 1.4-.5 10.1 12.6 13.5 17.4.7 0 2.2 2.7 2 3.4 4.8 3.4-5.5.9-13.4-3.6-19.9z"/>
+  <path fill="#cf142b" stroke="#000" stroke-width=".6" d="M487 150.7c0-2.2 3.6-5 8.6-5 6 .2 10.7 5.6 15.5 5.1 4.8-.5 2.5 2.1 1.4 2.9-1 .7-1.6 1.8-1.2 3 .4 1.4-.3 2.2-2.2 1-4.3-2.7-8.6 1-14.3-1-4.9-1.8-7.7-2.8-7.8-6z"/>
+  <path fill="#96877d" stroke="#000" stroke-width=".6" d="M462.5 207a36.5 36.5 0 00-15.9-17.7l-.2-4a53 53 0 0010.7-8c17.9 8.5 42.2-3.6 53.4-16.3l4.3 2.7-2.2 2.8-2.2-1.2c-2.8 3.4-13 13-16.1 15a61 61 0 0011.4 1.7c10-7.1 17.9-13.6 21.7-14l3.2 4.2-2.9 2-2.2-1.2a114.6 114.6 0 00-27.7 41c-6.6-1.5-30.5-.5-35.3-7.1z"/>
+  <path fill="none" stroke="#000" stroke-width=".6" d="M463.4 204.3c-1.6-8.9 1-18.7 5.5-21.7a35.6 35.6 0 0036.8-.6"/>
+  <path fill="none" stroke="#000" stroke-width=".6" d="M463.4 199.6c7.6-.2 24.2 1.1 28.3 1.7 4 .6 10.8 2.3 9.8 4.3m-34.6-7.2l2.2-2.2-2.2-2.2-2.2 2.2 2.2 2.2z"/>
+  <path fill="#337321" stroke="#000" stroke-width=".6" d="M472.1 154c-2.7-3.8-10.3-5-11.9.1-.7 2.3-1.8 4.7-3.6 5.8-1.7 1-1.3 4.3-.6 5.7 2 3.4.3 6.7 4 9 0-2.7 4-5.6 7.5-6.3 3.4-.7 8.7-3.8 9.4-7.2.7-3.5 1.9-6.4-4.8-7z"/>
+  <path fill="#96877d" stroke="#000" stroke-width=".6" d="M455 188.3h.9v6.5l.6.3 5.6-3.2.5.9-5.7 3.2a1.7 1.7 0 010 .6l5.7 3.3-.5.8-5.7-3.2"/>
+  <path fill="#337321" stroke="#000" stroke-width=".6" d="M450.7 215c-.7-.8-2-3.1-2-4.8a6.2 6.2 0 014.1 1.6c-.1-1.2-.6-3.8-.3-5 1.3.5 4 2 5 3.8"/>
+  <path fill="#f7e017" d="M490.5 151.9c0-.9 2-2.9 5.5-2.8 4.2 0 8 3 11.4 2.9 3.4-.3 1.7.8 1 1.1-.7.3-1 .8-.8 1.3.2.5-.2.9-1.6.4-3-1.1-6 .4-10-.5-3.4-.7-5.4-1-5.5-2.4z"/>
+  <g stroke="#000" stroke-width=".6">
+    <path fill="#f7e017" d="M454.4 222.2c-3.6 4.2-7.2 3.5-7.9.8-.7-2.8 2-4 1-6.5-1-2.3 1.5-3.4 2.7-2.3 1.2 1 5-2.4 6.7 1.2 1.6 3.5 3 6 2 7.5-1 1.4-3.8.7-4.5-.7zm15.3-6.5c-.7-1.5 3-4.6 5-2.4 1.9 2.1 4.9-2.4 6.5 1 1.7 3.4 2.2 5.2 3 7.1.9 2-4.5 3-6.1 1.3.2 1.1-4.7 2-6-1.2l-2.4-5.8zm24.8 2c-.9-1.7 3.5-4 5.7-1 .6-1.3 5-1.5 5.2 2.1l.5 7.2c.1 1.5-2.6 2.8-4.5-.9-3.5.8-5.2-1.2-5.6-3.3a17 17 0 00-1.3-4.1z"/>
+    <path fill="#337321" d="M456.7 215.3c-.6-1.2 3-3.6 5.4-1.8 2.5 1.8 5.9-1.5 7.3 1.7 3 6.5 3.1 7 2.2 8.2-.9 1.3-4.7.8-5.6-1-.2 1.2-3.5 1-5.2.1-2-1-3.4-5-4.1-7.2zm25 .3c-.8-1.8 4.8-3.4 7.2-.2 1.3-1.2 4-1.2 5.6 2.3 1.5 3.5 1.8 5.5.6 6.4-.8.6-3.6 1-4.6-.5-1.3.8-5.4.1-6.3-2.1-.8-2.3-1.6-4.3-2.4-6zm23.8 3.5c-.2-1.6 2.9-2.4 4 0 1.1 2.5 4.8.3 5 4.3a9 9 0 01-1.5 5.2c-1.1 1.4-6.6 0-7-3"/>
+    <path fill="none" d="M454.4 222.2c-1.3-1.8-3.1-4.7-5.4-1.6m17 1.8"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pr.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pr.svg
new file mode 100644
index 0000000..191c56a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pr.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-pr" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="pr-a">
+      <path fill-opacity=".7" d="M-37.3 0h682.7v512H-37.3z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#pr-a)" transform="translate(35) scale(.9375)">
+    <path fill="#ed0000" d="M-37.3 0h768v512h-768z"/>
+    <path fill="#fff" d="M-37.3 102.4h768v102.4h-768zm0 204.8h768v102.4h-768z"/>
+    <path fill="#0050f0" d="M-37.3 0l440.7 255.7L-37.3 511V0z"/>
+    <path fill="#fff" d="M156.4 325.5L109 290l-47.2 35.8 17.6-58.1-47.2-36 58.3-.4 18.1-58 18.5 57.8 58.3.1-46.9 36.3 18 58z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ps.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ps.svg
new file mode 100644
index 0000000..a6dedf5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ps.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ps" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="ps-a">
+      <path fill-opacity=".7" d="M-118 0h682.7v512H-118z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#ps-a)" transform="translate(110.6) scale(.9375)">
+    <g fill-rule="evenodd" stroke-width="1pt">
+      <path d="M-246 0H778v170.7H-246z"/>
+      <path fill="#fff" d="M-246 170.7H778v170.6H-246z"/>
+      <path fill="#090" d="M-246 341.3H778V512H-246z"/>
+      <path fill="red" d="M-246 512l512-256L-246 0v512z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pt.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pt.svg
new file mode 100644
index 0000000..fa9621f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pt.svg
@@ -0,0 +1,57 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-pt" viewBox="0 0 640 480">
+  <path fill="red" d="M256 0h384v480H256z"/>
+  <path fill="#060" d="M0 0h256v480H0z"/>
+  <g fill="#ff0" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width=".6">
+    <path d="M339.5 306.2c-32.3-1-180-93.2-181-108l8.1-13.5c14.7 21.3 165.7 111 180.6 107.8l-7.7 13.7"/>
+    <path d="M164.9 182.8c-2.9 7.8 38.6 33.4 88.4 63.8 49.9 30.3 92.9 49 96 46.4l1.5-2.8c-.6 1-2 1.3-4.3.6-13.5-3.9-48.6-20-92.1-46.4-43.6-26.4-81.4-50.7-87.3-61a6.3 6.3 0 01-.6-3.1h-.2l-1.2 2.2-.2.3zm175.3 123.8c-.5 1-1.6 1-3.5.8-12-1.3-48.6-19.1-91.9-45-50.4-30.2-92-57.6-87.4-64.8l1.2-2.2.2.1c-4 12.2 82.1 61.4 87.2 64.6 49.8 30.8 91.8 48.9 95.5 44.2l-1.3 2.3z"/>
+    <path d="M256.2 207.2c32.2-.3 72-4.4 95-13.6l-5-8c-13.5 7.5-53.5 12.5-90.3 13.2-43.4-.4-74.1-4.5-89.5-14.8l-4.6 8.6c28.2 12 57.2 14.5 94.4 14.6"/>
+    <path d="M352.5 193.8c-.8 1.3-15.8 6.4-37.8 10.2a381.2 381.2 0 01-58.6 4.3 416.1 416.1 0 01-56.2-3.6c-23.1-3.6-35-8.6-39.5-10.4l1.1-2.2c12.7 5 24.7 8 38.7 10.2A411.5 411.5 0 00256 206a391.8 391.8 0 0058.3-4.3c22.5-3.7 34.8-8.4 36.6-10.5l1.6 2.7zm-4.4-8.1c-2.4 2-14.6 6.3-36 9.7a388.2 388.2 0 01-55.8 4c-22 0-40.1-1.6-53.8-3.6-21.8-2.8-33.4-8-37.6-9.4l1.3-2.2c3.3 1.7 14.4 6.2 36.5 9.3a385 385 0 0053.6 3.4 384 384 0 0055.4-4c21.5-3 33.1-8.4 34.9-9.8l1.5 2.6zM150.3 246c19.8 10.7 63.9 16 105.6 16.4 38 .1 87.4-5.8 105.9-15.6l-.5-10.7c-5.8 9-58.8 17.7-105.8 17.4-47-.4-90.7-7.6-105.3-17v9.5"/>
+    <path d="M362.8 244.5v2.5c-2.8 3.4-20.2 8.4-42 12a434 434 0 01-65.4 4.4 400 400 0 01-62-4.3 155 155 0 01-44.4-12v-2.9c9.7 6.4 35.9 11.2 44.7 12.6 15.8 2.4 36.1 4.2 61.7 4.2 26.9 0 48.4-1.9 65-4.4 15.7-2.3 38-8.2 42.4-12.1zm0-9v2.5c-2.8 3.3-20.2 8.3-42 11.9a434 434 0 01-65.4 4.5 414 414 0 01-62-4.3 155 155 0 01-44.4-12v-3c9.7 6.5 36 11.2 44.7 12.6a408 408 0 0061.7 4.3c26.9 0 48.5-2 65-4.5 15.7-2.2 38-8.1 42.4-12zm-107 68.8c-45.6-.2-84.7-12.4-93-14.4l6 9.4a249.8 249.8 0 0087.4 14.3c34.7-1 65-3.7 86.3-14.1l6.2-9.8c-14.5 6.9-64 14.6-93 14.6"/>
+    <path d="M344.9 297.3a143 143 0 01-2.8 4c-10 3.6-26 7.4-32.6 8.4a295.5 295.5 0 01-53.7 5c-40.4-.6-73.5-8.5-89-15.3l-1.3-2.1.2-.4 2.1.9a286.5 286.5 0 0088.2 14.5c18.8 0 37.5-2.1 52.6-4.8 23.2-4.7 32.6-8.2 35.5-9.8l.7-.4zm5.3-8.8a287.2 287.2 0 01-2 3.5c-5.4 2-20 6.2-41.3 9.2-14 1.9-22.7 3.8-50.6 4.3a347.4 347.4 0 01-94.2-14L161 289a390 390 0 0095.4 14c25.5-.5 36.4-2.4 50.3-4.3 24.8-3.8 37.3-8 41-9.1a2.9 2.9 0 000-.2l2.6-1z"/>
+    <path d="M350.8 237.6c.1 30-15.3 57-27.6 68.8a99.3 99.3 0 01-67.8 28.2c-30.3.5-58.8-19.2-66.5-27.9a101 101 0 01-27.5-67.4c1.8-32.8 14.7-55.6 33.3-71.3a99.6 99.6 0 0164.2-22.7 98.2 98.2 0 0171 35.6c12.5 15.2 18 31.7 20.9 56.7zM255.6 135a106 106 0 01106 105.2 105.6 105.6 0 11-211.4 0c-.1-58 47.3-105.2 105.4-105.2"/>
+    <path d="M255.9 134.5c58.2 0 105.6 47.4 105.6 105.6S314.1 345.7 256 345.7s-105.6-47.4-105.6-105.6c0-58.2 47.4-105.6 105.6-105.6zM152.6 240c0 56.8 46.7 103.3 103.3 103.3 56.6 0 103.3-46.5 103.3-103.3s-46.7-103.3-103.3-103.3S152.6 183.2 152.6 240z"/>
+    <path d="M256 143.3a97 97 0 0196.7 96.7 97.1 97.1 0 01-96.7 96.8c-53 0-96.7-43.6-96.7-96.8a97.1 97.1 0 0196.7-96.7zM161.6 240c0 52 42.6 94.4 94.4 94.4s94.4-42.5 94.4-94.4c0-52-42.6-94.4-94.4-94.4a94.8 94.8 0 00-94.4 94.4z"/>
+    <path d="M260.3 134h-9.1v212.3h9z"/>
+    <path d="M259.3 132.8h2.3v214.7h-2.2V132.8zm-9 0h2.4v214.7h-2.3V132.8z"/>
+    <path d="M361.6 244.2v-7.8l-6.4-6-36.3-9.6-52.2-5.3-63 3.2-44.8 10.6-9 6.7v7.9l22.9-10.3 54.4-8.5h52.3l38.4 4.2 26.6 6.4z"/>
+    <path d="M256 223.8c24.9 0 49 2.3 68.3 6 19.8 4 33.7 9 38.5 14.5v2.8c-5.8-7-24.5-12-39-15-19-3.6-43-6-67.9-6-26.1 0-50.5 2.6-69.3 6.2-15 3-35.1 9-37.6 14.8v-2.9c1.3-4 16.3-10 37.3-14.3 18.9-3.7 43.3-6.1 69.6-6.1zm0-9.1a383 383 0 0168.3 6c19.8 4 33.7 9 38.5 14.6v2.7c-5.8-6.9-24.5-12-39-14.9-19-3.7-43-6-67.9-6a376 376 0 00-69.2 6.2c-14.5 2.7-35.4 8.9-37.7 14.7v-2.8c1.4-4 16.6-10.3 37.3-14.3 19-3.7 43.3-6.2 69.7-6.2zm-.6-46.2c39.3-.2 73.6 5.5 89.3 13.5l5.7 10c-13.6-7.4-50.6-15-94.9-14-36.1.3-74.7 4-94 14.4l6.8-11.4c15.9-8.3 53.3-12.5 87.1-12.5"/>
+    <path d="M256 176.7a354 354 0 0161.3 4.3c16 3 31.3 7.4 33.5 9.8l1.7 3c-5.3-3.4-18.6-7.3-35.6-10.5s-38.7-4.3-61-4.2c-25.3-.1-45 1.2-61.8 4.2a108.9 108.9 0 00-33.3 10.3l1.7-3.1c6-3 15.3-6.7 31.1-9.6 17.5-3.2 37.4-4.1 62.4-4.2zm0-9c21.4-.2 42.6 1 59.1 4a96 96 0 0130.6 10l2.5 4c-4.2-4.7-20-9.2-34.1-11.6-16.4-2.9-36.7-4-58.1-4.2a361 361 0 00-59.5 4.4 97.3 97.3 0 00-29.6 9.1l2.2-3.3c5.8-3 15.2-5.8 27-8.1a357 357 0 0159.9-4.4zM308.4 284a276.4 276.4 0 00-52.5-4c-65.5.8-86.6 13.5-89.2 17.3l-5-8c16.8-12 52.4-18.8 94.6-18.2 21.9.4 40.8 1.9 56.6 5l-4.5 8"/>
+    <path d="M255.6 278.9c18.2.3 36 1 53.3 4.2l-1.2 2.2c-16-3-33.2-4-52-4-24.3-.2-48.7 2.1-70 8.2-6.7 1.9-17.8 6.2-19 9.8l-1.2-2c.4-2.2 7-6.6 19.6-10 24.4-7 47.2-8.3 70.5-8.4zm.8-9.2a327 327 0 0157.3 5l-1.3 2.3a299 299 0 00-56-4.9c-24.2 0-49.9 1.8-73.3 8.6-7.5 2.2-20.6 7-21 10.7l-1.2-2.2c.2-3.4 11.5-7.9 21.7-10.8 23.5-6.9 49.3-8.6 73.8-8.7z"/>
+    <path d="M349.4 290.5l-7.8 12.3-22.7-20.1-58.6-39.5-66.2-36.3-34.3-11.7 7.3-13.6 2.5-1.3 21.3 5.3 70.4 36.3 40.6 25.6L336 272l13.9 16z"/>
+    <path d="M158.6 195.5c6-4 50.2 15.6 96.6 43.6 46.1 28 90.3 59.6 86.3 65.5l-1.3 2.1-.6.5c.1-.1.8-1 0-3.1-2-6.5-33.4-31.5-85.3-62.9-50.7-30.1-92.9-48.3-97-43.1l1.3-2.6zM351 290.4c3.8-7.6-37.2-38.5-88.1-68.6-52-29.5-89.6-46.9-96.5-41.7L165 183c0 .1 0-.2.4-.5 1.2-1 3.3-1 4.2-1 11.8.2 45.5 15.7 92.8 42.8 20.8 12 87.6 55 87.3 67 0 1 .1 1.2-.3 1.8l1.7-2.6z"/>
+  </g>
+  <g transform="translate(0 26.7) scale(1.06667)">
+    <path fill="#fff" stroke="#000" stroke-width=".7" d="M180.6 211a58.7 58.7 0 0017.5 41.7 59 59 0 0041.8 17.6 59.4 59.4 0 0042-17.4 59 59 0 0017.4-41.8v-79.2l-118.7-.2V211z"/>
+    <path fill="red" stroke="#000" stroke-width=".5" d="M182.8 211.1a56.4 56.4 0 0016.8 40 57 57 0 0040.2 16.8 56.9 56.9 0 0040.2-16.6 56.4 56.4 0 0016.7-40v-77H183v76.8m91-53.7v48.9l-.1 5.1a33.2 33.2 0 01-10 24 34 34 0 01-24 10c-9.4 0-17.7-4-23.9-10.2a34 34 0 01-10-24v-54l68 .2z"/>
+    <g id="e">
+      <g id="d" fill="#ff0" stroke="#000" stroke-width=".5">
+        <path stroke="none" d="M190.2 154.4c.1-5.5 4-6.8 4-6.8.1 0 4.3 1.4 4.3 6.9h-8.3"/>
+        <path d="M186.8 147.7l-.7 6.3h4.2c0-5.2 4-6 4-6 .1 0 4 1.1 4.1 6h4.2l-.8-6.4h-15zm-1 6.4h17c.3 0 .6.3.6.7 0 .5-.3.8-.6.8h-17c-.3 0-.6-.3-.6-.8 0-.4.3-.7.7-.7z"/>
+        <path d="M192 154c0-3.3 2.3-4.2 2.3-4.2s2.3 1 2.3 4.2H192m-5.8-9h16.3c.3 0 .6.4.6.8 0 .3-.3.6-.6.6h-16.3c-.3 0-.6-.3-.6-.7 0-.3.3-.6.6-.6zm.4 1.5H202c.3 0 .6.3.6.7 0 .4-.3.7-.6.7h-15.5c-.4 0-.6-.3-.6-.7 0-.4.2-.7.6-.7zm5-10.6h1.2v.8h.9v-.8h1.3v.9h.9v-1h1.2v2c0 .4-.2.6-.5.6h-4.4c-.3 0-.6-.2-.6-.5v-2zm4.6 2.7l.3 6.4h-4.3l.3-6.5h3.7"/>
+        <path id="a" d="M191 141.6v3.4h-4v-3.4h4z"/>
+        <use width="100%" height="100%" x="10.6" xlink:href="#a"/>
+        <path id="b" d="M186.3 139h1.2v1h.9v-1h1.2v1h.9v-1h1.2v2c0 .4-.2.6-.5.6h-4.3a.6.6 0 01-.6-.6v-2z"/>
+        <use width="100%" height="100%" x="10.6" xlink:href="#b"/>
+        <path fill="#000" stroke="none" d="M193.9 140.6c0-.6.9-.6.9 0v1.6h-.9v-1.6"/>
+        <path id="c" fill="#000" stroke="none" d="M188.6 142.8c0-.6.8-.6.8 0v1.2h-.8v-1.2"/>
+        <use width="100%" height="100%" x="10.6" xlink:href="#c"/>
+      </g>
+      <use width="100%" height="100%" y="46.3" xlink:href="#d"/>
+      <use width="100%" height="100%" transform="rotate(-45.2 312.8 180)" xlink:href="#d"/>
+    </g>
+    <use width="100%" height="100%" x="45.7" xlink:href="#d"/>
+    <use width="100%" height="100%" transform="matrix(-1 0 0 1 479.8 0)" xlink:href="#e"/>
+    <g id="f" fill="#fff">
+      <path fill="#039" d="M232.6 202.4a8.3 8.3 0 002.2 5.7 7.2 7.2 0 005.3 2.4c2.1 0 4-1 5.3-2.4a8.3 8.3 0 002.2-5.7v-10.8h-15v10.8"/>
+      <circle cx="236.1" cy="195.7" r="1.5"/>
+      <circle cx="244.4" cy="195.7" r="1.5"/>
+      <circle cx="240.2" cy="199.7" r="1.5"/>
+      <circle cx="236.1" cy="203.9" r="1.5"/>
+      <circle cx="244.4" cy="203.9" r="1.5"/>
+    </g>
+    <use width="100%" height="100%" y="-26" xlink:href="#f"/>
+    <use width="100%" height="100%" x="-20.8" xlink:href="#f"/>
+    <use width="100%" height="100%" x="20.8" xlink:href="#f"/>
+    <use width="100%" height="100%" y="25.8" xlink:href="#f"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pw.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pw.svg
new file mode 100644
index 0000000..8127a2c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/pw.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-pw" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="pw-a">
+      <path fill-opacity=".7" d="M-70.3 0h640v480h-640z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#pw-a)" transform="translate(70.3)">
+    <path fill="#4aadd6" d="M-173.4 0h846.3v480h-846.3z"/>
+    <path fill="#ffde00" d="M335.6 232.1a135.9 130.1 0 11-271.7 0 135.9 130.1 0 11271.7 0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/py.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/py.svg
new file mode 100644
index 0000000..1402520
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/py.svg
@@ -0,0 +1,157 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-py" viewBox="0 0 640 480">
+  <path fill="#0038a8" d="M0 319.7h640V480H0z"/>
+  <path fill="#fff" d="M0 160h640v160H0z"/>
+  <path fill="#d52b1e" d="M0 0h640v160H0z"/>
+  <g fill="none" stroke="#000" transform="translate(-116.4) scale(1.45455)">
+    <circle cx="300" cy="165" r="42.2" stroke-width="1.1"/>
+    <circle cx="300" cy="165" r="34.7" stroke-width=".5"/>
+    <circle cx="300" cy="165" r="26.6" stroke-width=".4"/>
+  </g>
+  <path d="M287.3 263.7l-7.1 4.2-2.2-3.7a6.2 6.2 0 01-.7-1.6 2 2 0 01.1-1.3c.2-.4.5-.7 1-1 .4-.2.7-.3 1.1-.3a2.3 2.3 0 011.1.2l.8.6v-1.3l.3-.5 1.5-2.3 1.4 2.5-1.4 2.4-.3.8.1.6.1.2 3-1.7zm-5.5.3l-.6-1-.4-.5a.7.7 0 00-.5-.2.8.8 0 00-.5.1l-.4.6c0 .2.1.5.4.9l.5 1zm-6.7-5.5l-2.2-6.5 1.7-.6 1.3 4.1 1.3-.4-1.3-3.8 1.6-.5 1.3 3.7 1.5-.5-1.4-4.2 1.8-.5 2.2 6.6zm-2.9-9.7l-.4-4.2c-.2-1 0-1.6.4-2.1.4-.6 1-.9 1.8-1 .8 0 1.5.1 2 .6.5.4.8 1.2 1 2.2l.1 1.4 3-.4.4 2.6zm3.3-3l-.1-.6c0-.5-.2-.8-.4-1a.8.8 0 00-.7-.2 1 1 0 00-.6.4c-.2.1-.2.5-.2 1l.1.7zm-3.5-12.5l.3-2.6 4.8.6a4.2 4.2 0 011.4.4c.4.2.8.4 1 .8.4.3.5.7.6 1 .2.6.2 1.2.1 1.9l-.2 1.3c-.1.5-.3.8-.5 1.1a3 3 0 01-1.8 1.3h-1.4l-4.9-.5.3-2.5 5 .5c.4 0 .8 0 1-.2.4-.2.5-.6.6-1a1.4 1.4 0 00-.3-1c-.2-.4-.6-.5-1-.6zm1-6l1.7-4.6c.2-.8.6-1.3 1.1-1.5a2 2 0 011.6-.2c.5.2.8.5 1 .9.2.3.3.6.3 1 .3-.5.7-.8 1.1-1a2 2 0 011.4 0 2.2 2.2 0 011.5 1.8v1l-.3 1-1.5 4.2zm4-1.4l.4-1.1c0-.4.1-.7 0-.8 0-.2-.2-.4-.4-.5a.7.7 0 00-.6 0c-.2.2-.4.4-.5.8l-.4 1zm3 1l.5-1.2c.1-.4.2-.7 0-1a.8.8 0 00-.4-.4.7.7 0 00-.7 0l-.5.9-.4 1.2zm-3-9.6l1.3-2.2 5.4 3.2 2-3.4 1.8 1-3.4 5.6zm5-7.6l1.6-2 6.4 5.3-1.6 2zm11.1-4.3l2.2-1c.3.6.4 1.2.5 1.7a3.1 3.1 0 01-.3 1.5 4.5 4.5 0 01-1.2 1.5 4 4 0 01-2 1.1 3.5 3.5 0 01-2 0 4.7 4.7 0 01-2-1.6c-1-1-1.4-2-1.3-3.1a4.2 4.2 0 011.6-2.9 4.2 4.2 0 012.3-1c.7-.1 1.5 0 2.3.5l-1.4 1.9a1.9 1.9 0 00-.6-.3 1.5 1.5 0 00-.7 0 1.5 1.5 0 00-.6.4 1.5 1.5 0 00-.6 1.4c0 .4.4.9.8 1.4.6.7 1.1 1.1 1.6 1.2.4 0 .8 0 1.2-.4.4-.3.6-.6.6-1s-.1-.8-.4-1.3zm8.8-3.2l-2.5 1.4.3 1.4-2.3 1.2-1.2-8.7 2.5-1.3 6.6 5.8-2.4 1.3zm-1.3-1.3l-2.2-2.2.6 3zm7.8-8.5l3.8-.6a4.6 4.6 0 011.8 0c.5.1 1 .3 1.3.7s.7.7.9 1.2c.2.4.4 1 .4 1.5.2.9.2 1.6.1 2a3.4 3.4 0 01-.6 1.4 2.7 2.7 0 01-1 .9 6 6 0 01-1.5.5l-3.7.6zm2.9 1.4l.8 4.5.6-.1c.5-.1.9-.2 1-.4.3-.1.4-.4.5-.7v-1.4c-.2-.9-.5-1.4-.8-1.7-.3-.3-.8-.4-1.5-.3zm7.8-2.8l6.8.3v1.8l-4.3-.2-.1 1.3 4 .2-.1 1.7-4-.2v1.6l4.4.2-.1 1.9-7-.3zm10 .8l2.4.6-1.5 6 4 1-.6 2-6.3-1.6zm13.2 4.4l3.7 2.2c.8.4 1.3 1 1.4 1.6.2.6 0 1.3-.3 2a2.5 2.5 0 01-1.7 1.3c-.6.1-1.4 0-2.3-.6l-1.2-.7-1.6 2.6-2.2-1.3zm.4 4.4l.6.3 1 .3a.8.8 0 00.6-.4 1 1 0 000-.7c0-.3-.2-.5-.6-.8l-.6-.3zm7.2 9.6l-2.1-2-1.2.7-2-1.7 8-4 2 2-3.4 8.1-2-1.8zm.8-1.7l1.4-2.8-2.7 1.6zm1 5.5l6.9-4.7 2.3 3.5 1 1.7-.1 1.2a2.3 2.3 0 01-1 1.1c-.3.3-.7.4-1 .4a2.3 2.3 0 01-1.2-.2c-.2 0-.5-.3-.8-.5l.2.7-.2.6a3.3 3.3 0 01-.2.6l-1.3 2.3-1.6-2.3 1.3-2.6.3-.7a1 1 0 00-.2-.7l-.1-.2-2.8 2zm5.5-.6l.7.9.4.4c.2.2.3.2.5.2a.8.8 0 00.5-.1.8.8 0 00.3-.6c0-.2 0-.5-.3-.9l-.7-.9zm2.6 12.4l-1-2.8-1.5.2-1-2.5 8.9-.1 1 2.6-6.5 6-1-2.6zm1.5-1.2l2.4-2-3.1.3zm2.1 9l1.7-.2.6 3.9-3.5.5a8 8 0 01-1.3-1.8 6.8 6.8 0 01-.6-2 5 5 0 01.1-2.5 4 4 0 011.3-1.6 4.9 4.9 0 012.2-.9 5 5 0 012.4.2 3.6 3.6 0 011.7 1.4c.4.6.6 1.3.8 2.2v2a2.7 2.7 0 01-.6 1.3c-.3.4-.7.6-1.2.9l-.8-2.4c.3-.1.5-.3.7-.6s.1-.6 0-1a1.7 1.7 0 00-.7-1.2c-.4-.3-1-.4-2-.2a3 3 0 00-1.7.7c-.4.4-.5 1-.4 1.5 0 .3.1.6.3.8l.5.8h.8zm5.4 12l-.2 2.6-5-.4a4.2 4.2 0 01-1.3-.4 3 3 0 01-1-.8 3 3 0 01-.6-1.1 5.1 5.1 0 01-.2-1.8l.2-1.3.5-1.2a3 3 0 01.8-.8 2.6 2.6 0 011-.4 4.9 4.9 0 011.4-.2l5 .5-.3 2.5-5-.4c-.5 0-.9 0-1.1.3a1.4 1.4 0 00-.5 1c0 .4 0 .8.3 1 .2.3.5.5 1 .5zm-9.1 8.8l.9-2.8-1.2-.8.8-2.5 7 5.6-1 2.6-8.8.4.9-2.5zm1.9 0l3 .1-2.5-1.8zm3 6.8l-1.5 2.4h-3.3l1.5 2.9-1.4 2.4-2.5-5.2-3-1.8 1.4-2.2 3 1.8z"/>
+  <g fill="#009b3a" stroke="#000" stroke-width=".1">
+    <path d="M328.1 211.3s23.4 10.1 19.3 30.9c-4 20.8-17 20.6-22.2 23-5 2.2-8.6 5.5-10.6 5-2-.4-4.7-2-4.7-2s-.2 3.5 3.9 4c4.1.7 9.5-5.3 12-6 2.6-.6 18.5-2.4 22.4-23.5 4.5-22.6-20-30.7-20-31.4z"/>
+    <path d="M339.9 215.8a3.2.8 75.1 01-1.5 0 3.2.8 75.1 111.5 0z"/>
+    <path d="M339.1 216a3.3.7 63.3 11-1.4.5 3.3.7 63.3 011.4-.5zm-2.3 1.5a3.1.8 17 01-.2 1.6 3.1.8 17 01.2-1.6z"/>
+    <path d="M337.1 216.7a3.3.7 34.2 11-.7 1.3 3.3.7 34.2 11.7-1.3z"/>
+    <path d="M338.1 216.3a3.3.7 46.2 11-1 1 3.3.7 46.2 011-1z"/>
+    <path d="M339.7 219.2l-1 .6c-.3 0-.6-.3-1.2 0s-1 .9-1.1 1.2c-.1.3.2.5.9.1.7-.3.9-.9 1.2-1.1l1.3-.7.8-1.3c.3-.4 1.2-1 1.6-1.8.3-.6.2-1.1-.2-.9a3 3 0 00-1.2 1.3c-.2.4 0 1-.3 1.4l-.8 1.2zm7.3 2.4a1 4.8-1.6 11-2.2-.5 1 4.8-1.6 112.2.5z"/>
+    <path d="M345.8 221.5a5 1 77.5 11-2.2.1 5 1 77.5 112.1 0z"/>
+    <path d="M342 222.7a4.7 1.1 35 11-.7 2.2 4.7 1.1 35 11.7-2.2z"/>
+    <path d="M342.8 221.6a5 1 50.9 01-1.4 1.6 5 1 50.9 111.4-1.5z"/>
+    <path d="M344.3 221.5a5.1 1 61.8 11-1.8 1 5.1 1 61.8 111.8-1z"/>
+    <path d="M345.6 226.4l-1.8.4c-.3 0-.6-.7-1.5-.5-.9.2-1.7.8-2 1.2-.2.4.1.8 1.2.6 1.2-.2 1.6-1 2.2-1 .5-.2 1.4-.4 2-.4.2-.4 1-1.2 1.5-1.6.5-.5 2-1 2.7-1.8.7-.8.7-1.6 0-1.5a4.8 4.8 0 00-2 1.3c-.5.6-.4 1.5-.9 2l-1.4 1.3zm5.1 4.9a1 4.8 8.7 11-2-1 1 4.8 8.7 112 1z"/>
+    <path d="M349.6 231a1 5-2 11-2-.3 1 5-2 112 .3z"/>
+    <path d="M345.7 231.4a4.7 1.1 46 11-1 2 4.7 1.1 46 111-2z"/>
+    <path d="M346.7 230.5a5 1 61.8 11-1.7 1.3 5 1 61.8 111.7-1.3z"/>
+    <path d="M348.1 230.7a5.1 1 72.5 11-1.9.7 5.1 1 72.5 112-.7z"/>
+    <path d="M348.5 235.8h-1.7c-.3 0-.5-.8-1.4-.8a3.3 3.3 0 00-2.1.8c-.4.4-.1.8 1 .8s1.7-.5 2.3-.6h2l1.8-1.2c.6-.4 2.1-.6 3-1.3.7-.6.9-1.4.3-1.4a5 5 0 00-2.3.9c-.5.4-.6 1.3-1.2 1.7-.4.2-1.6 1.1-1.7 1m2.5 6.4a1 4.8 31.3 01-1.4-1.7 1 4.8 31.3 011.4 1.7"/>
+    <path d="M350.1 241.3a1 5 20.6 01-1.8-1.1 1 5 20.6 011.8 1.1m-3.7-1.2a4.8 1 70 01-1.8 1.5 4.8 1 70 011.8-1.5"/>
+    <path d="M347.6 239.7a1 5.1-4.9 01-2 .5 1 5.1-4.9 112-.5"/>
+    <path d="M349 240.4a1 5.2 5.5 11-2-.1 1 5.2 5.5 112 .1"/>
+    <path d="M347.3 245.3s-1.4-.5-1.6-.7c-.3-.2-.1-.8-1-1.3a3.1 3.1 0 00-2.2 0c-.5 0-.4.6.6 1 1 .6 1.8.2 2.3.4l1.8.9c.5-.2 1.6-.3 2.2-.4.6-.1 2.1.4 3.2 0 .9-.3 1.3-1 .7-1.2a4.5 4.5 0 00-2.3 0c-.7.1-1.1 1-1.8 1-.5 0-1.9.4-2 .3m1 7.7a1.3 5.5 48.5 11-1.1-2.4 1.3 5.5 48.5 111 2.4"/>
+    <path d="M347.3 251.9a1.2 5.8 37.5 11-1.5-2 1.2 5.8 37.5 111.5 2"/>
+    <path d="M343.7 249.2a1.3 5.5-3.5 11-2.4 1 1.3 5.5-3.5 112.4-1"/>
+    <path d="M345.1 249.2a1.2 5.9 11.6 01-2.3-.2 1.2 5.9 11.6 112.3.1"/>
+    <path d="M346.3 250.4a1.2 6 22.1 11-2.1-.8 1.2 6 22.1 112.1.8"/>
+    <path d="M343 255.3a16.3 16.3 0 01-1.6-1.4c-.2-.3.1-1-.7-1.8s-1.8-1-2.4-1c-.6.1-.6.7.3 1.6 1 1 2 .8 2.4 1.2.6.4 1.4 1.1 1.7 1.6l2.6.4c.7 0 2.2 1.1 3.5 1.1 1 0 1.8-.5 1.2-1a5.3 5.3 0 00-2.6-1c-.8 0-1.5.8-2.2.6l-2.3-.3m-2.3 7.3a1.4 6 79.8 11.3-2.9 1.4 6 79.8 11-.3 2.9"/>
+    <path d="M340.5 261a1.3 6.4 68.5 01-.5-2.6 1.3 6.4 68.5 01.5 2.7"/>
+    <path d="M338.4 256.4a1.4 6 26.2 01-2.8-.5 1.4 6 26.2 112.8.5"/>
+    <path d="M339.9 257.2a1.3 6.5 41.8 01-2.3-1.5 1.3 6.5 41.8 012.3 1.5"/>
+    <path d="M340.3 259.1a1.3 6.5 52.7 11-1.6-2 1.3 6.5 52.7 011.6 2"/>
+    <path d="M334.4 261.7a18.1 18.1 0 01-.7-2.2c-.1-.4.6-.8.3-2a4.3 4.3 0 00-1.9-2.3c-.5-.3-.9.2-.5 1.6.4 1.4 1.4 1.9 1.7 2.6l.8 2.4 2.2 1.9c.6.5 1.5 2.4 2.7 3.1 1 .7 2 .5 1.8-.2a6.2 6.2 0 00-2-2.4c-.7-.6-1.8-.3-2.5-.8-.4-.5-2-1.6-2-1.7"/>
+    <path d="M330.8 268a1.8 6.1 89 010-3.5 1.8 6.1 89 010 3.5"/>
+    <path d="M330 262.5a1.7 6.3 37.6 01-2.7-2.2 1.7 6.3 37.6 112.6 2.2"/>
+    <path d="M330.8 265.3a1.7 6.2 66.5 01-1.2-3.3 1.7 6.2 66.5 011.2 3.3m1.7-53.4a3.8.8 41.1 01-1.5.8 3.8.8 41.1 111.5-.8m-1.9 1.5a3.9.8 8.2 01.3 1.6 3.9.8 8.2 11-.3-1.6"/>
+    <path d="M331.4 212.4a4 .7 26.8 11-.8 1.3 4 .7 26.8 01.8-1.3M303.7 262s5.1 1.1 9.6 2.7c4.5 1.7 11.3 7.2 13.1 7.6 2 0 4.9-.7 6-3.6-3.2.8-5 2.1-8 .5-1.1-.4-4.6-3.6-8.5-5.3-3.8-1.7-11.5-3.6-11.5-3.6l-.7 1.7m5.5-46.5l5.9-3.1-6.5 1.7-.8 1.1 1.4.3"/>
+    <path d="M314.8 217c-2.3-.5-5.8-1.3-8-1.4 1.5-1.7 3.6-4.7 5-6.4-1 1.7-2.3 4-2.8 5.5 1.5.9 4 1.6 5.8 2.2"/>
+    <path d="M308.1 215.9a314.4 314.4 0 015.3-4.1l-6.1 2.7-.6 1.3h1.4"/>
+    <path d="M313.7 216.9c-2.3-.5-5.8-1.3-8-1.5 1.4-1.7 3.5-4.7 4.8-6.6-.8 1.8-2.2 4.1-2.7 5.8 1.6.9 4.1 1.6 6 2.3"/>
+    <path d="M307.3 216.2l6.1-2.6-6.6 1.1-.9 1 1.3.5"/>
+    <path d="M313 217c-2.3-.3-6-.7-8.2-.6 1.3-2 3-5.3 4.1-7.3-.6 1.9-1.7 4.4-2 6.1 1.7.8 4.3 1.2 6.1 1.7"/>
+    <path d="M306.6 216.2l4.2-5-5.3 3.9-.3 1.3 1.4-.2"/>
+    <path d="M313 217.3c-2.5 0-6.4-.3-8.8 0 1.2-2.3 2.7-6 3.6-8.3-.4 2.1-1.3 5-1.4 6.9 1.8.6 4.6 1 6.6 1.4"/>
+    <path d="M305.8 217.4l5-4.9-6.1 3.5-.4 1.4h1.5"/>
+    <path d="M311.9 217.4c-2.7 0-6.8-.1-9.5.2 1.8-2.5 4.2-6.6 5.6-9.1-1 2.3-2.4 5.4-3 7.5 1.9.7 4.8 1 6.9 1.4"/>
+    <path d="M304 217.8l6.6-5.5-7.4 3.9-.8 1.6h1.6"/>
+    <path d="M311 217.6c-2.7.4-6.9.8-9.4 1.5 1.3-2.7 3.1-7 4.2-9.7-.6 2.4-1.7 5.6-2 7.8 2 .4 5 .3 7.1.4"/>
+    <path d="M303.2 218.9l5-7-6.3 5.7-.3 1.7 1.6-.4"/>
+    <path d="M309.4 218.4c-2.6.3-6.8.5-9.4 1 1.5-2.6 3.5-6.8 4.8-9.4-.8 2.3-2 5.5-2.4 7.7 2 .5 5 .5 7 .7"/>
+    <path d="M302.3 219.6l6.4-5.5-7.3 3.9-.7 1.6h1.6"/>
+    <path d="M308.7 218.7c-2.7.6-6.9 1.3-9.4 2.1 1.2-2.7 2.8-7.1 3.8-9.8-.5 2.4-1.4 5.6-1.6 7.8 2 .3 5 0 7.2-.1"/>
+    <path d="M301.2 220l4-7.7-5.4 6.6-.1 1.7 1.5-.7"/>
+    <path d="M308.7 219.1c-3 .8-7.4 1.8-10 2.8 1-3.1 2.1-8 2.9-11.1-.3 2.7-.9 6.3-.8 8.8 2.3.2 5.5-.3 7.8-.5"/>
+    <path d="M300.4 221.7l5.2-7.6-6.6 6.1-.3 2 1.7-.5"/>
+    <path d="M307.5 220c-2.8.9-7.2 2.1-9.8 3.3.8-3.2 1.8-8.1 2.4-11.2-.1 2.7-.5 6.3-.3 8.7 2.2.1 5.4-.6 7.7-.8"/>
+    <path d="M299.4 222.8l3.9-8.4-5.6 7.2v2l1.7-.8"/>
+    <path d="M306.4 221.2c-2.8.6-7.3 1.5-10 2.4 1.1-3 2.5-8 3.4-11-.4 2.7-1.1 6.4-1.1 8.7 2.2.3 5.4-.1 7.7-.2"/>
+    <path d="M298.4 223.6l6.4-6.6-7.5 4.9-.6 1.8 1.7-.1"/>
+    <path d="M305.2 222.3c-2.9.4-7.3.8-10 1.5 1.3-3 3-7.8 4-10.8-.6 2.7-1.5 6.3-1.7 8.7 2.2.5 5.4.4 7.7.6"/>
+    <path d="M297.2 223l4.3-8.3-5.9 7v1.9l1.6-.7"/>
+    <path d="M305.5 221.3c-3 1.3-8 3-10.9 4.6 1-3.7 2-9.5 2.6-13.1 0 3.1-.5 7.4-.3 10.1 2.5 0 6-1.1 8.6-1.6"/>
+    <path d="M296.6 225.4l5.2-9.4-6.9 8-.2 2.2 1.9-.8"/>
+    <path d="M304.3 222.5c-3 1.4-7.8 3.4-10.6 5.1.8-3.6 1.5-9.5 2-13 0 3-.2 7.3.1 10 2.5-.3 6-1.5 8.5-2.1"/>
+    <path d="M295.5 226.8l3.8-10.1-5.7 9 .2 2.3 1.7-1.2"/>
+    <path d="M303 223.3c-3 1.5-7.8 3.5-10.6 5.3.7-3.7 1.4-9.5 1.9-13.1 0 3-.2 7.3.2 10 2.5-.3 6-1.6 8.5-2.2"/>
+    <path d="M294.7 228l5.8-8.9-7.4 7.3-.3 2.2 1.9-.6"/>
+    <path d="M302.7 222.8c-2.7 2.2-7 5.4-9.4 7.8 0-3.8-.5-9.5-.8-13 .6 2.9 1.3 7 2.3 9.5 2.4-.9 5.5-3 8-4.2"/>
+    <path d="M295 228.5l.6-10.7-2.8 10.4.8 2 1.4-1.7"/>
+    <path d="M302 223.8c-2.8 2.2-7 5.3-9.5 7.7 0-3.7-.5-9.5-.8-13 .7 3 1.3 7 2.3 9.5 2.4-.8 5.5-3 8-4.2"/>
+    <path d="M294.3 230.3l2.7-10.5-4.7 9.6.3 2.2 1.7-1.3"/>
+    <path d="M301.6 224c-2.5 2.6-6.6 6.4-8.9 9-.4-3.7-1.5-9.6-2.2-13.2 1 3 2.1 7.1 3.4 9.5 2.3-1.1 5.4-3.6 7.7-5.2"/>
+    <path d="M294.3 231.6l.5-11.1-2.7 10.8.8 2 1.4-1.7"/>
+    <path d="M300.8 226c-2.7 2.2-7 5.5-9.6 8 0-3.8-.7-9.8-1-13.5.7 3 1.5 7.3 2.5 9.9 2.5-1 5.7-3.1 8.1-4.5"/>
+    <path d="M293.5 232.9l3.8-10.5-5.8 9.3.2 2.3 1.8-1.1"/>
+    <path d="M300.8 226c-2.5 2.5-6.3 6.4-8.5 9.1-.4-3.8-1.5-9.8-2.1-13.4 1 3 2 7.2 3.2 9.6 2.3-1.2 5.1-3.7 7.4-5.3"/>
+    <path d="M293.6 233.4l-.4-11-1.8 11 1 1.9 1.2-1.9"/>
+    <path d="M299.6 226.8c-2.4 2.6-6.1 6.5-8.2 9.3-.5-4-1.8-9.8-2.5-13.5 1 3 2.3 7.2 3.5 9.6 2.2-1.2 5-3.8 7.2-5.4"/>
+    <path d="M293 234.5l1.2-11.2-3.3 10.6.7 2.2 1.4-1.6"/>
+    <path d="M299 227.2c-2 2.9-5.5 7-7.4 10-.8-3.8-2.5-9.5-3.5-13 1.3 2.8 2.8 6.8 4.2 9.1 2.1-1.4 4.7-4.2 6.8-6"/>
+    <path d="M293 235.6l-.8-11.3-1.4 11.2 1 2 1.1-2"/>
+    <path d="M298.9 227.9c-2 3-5.3 7.3-7 10.4-1-3.8-3-9.5-4.2-13 1.4 2.8 3.1 6.8 4.7 9 2-1.5 4.5-4.5 6.5-6.4"/>
+    <path d="M293.6 236.6l1.2-11.3-3.2 10.6.6 2.3 1.4-1.6"/>
+    <path d="M298.4 229c-1.7 3.1-4.5 8-6 11.3-1.3-3.6-3.8-9-5.3-12.4 1.7 2.6 3.7 6.3 5.5 8.4 1.9-1.8 4-5.2 5.8-7.4"/>
+    <path d="M293.3 237.6l-3.2-10.8 1 11.3 1.5 1.6.6-2.1"/>
+    <path d="M298.4 230.2c-1.8 3.2-4.8 8-6.3 11.3-1.3-3.6-3.8-9-5.4-12.3 1.7 2.6 3.8 6.3 5.6 8.3 2-1.8 4.2-5.1 6-7.3"/>
+    <path d="M293.4 239.6l-1.2-11.3-1 11.3 1.1 2 1.1-2"/>
+    <path d="M298.6 231.2c-1.9 3.1-5 7.9-6.5 11.1-1.3-3.6-3.7-9-5.2-12.4 1.7 2.6 3.7 6.4 5.5 8.4 2-1.7 4.3-5 6.2-7.1"/>
+    <path d="M293.3 240.5l-2.1-11-.1 11.2 1.3 1.8.9-2"/>
+    <path d="M297.8 232.8c-2 3-5.3 7.5-7 10.7-1.1-3.7-3.3-9.4-4.6-12.8 1.5 2.7 3.4 6.6 5 8.8 2.1-1.6 4.6-4.7 6.6-6.7"/>
+    <path d="M292.3 241.7l1-11.3-3.1 10.7.7 2.2 1.4-1.6"/>
+    <path d="M297.9 233c-1.7 3.3-4.6 8.3-6 11.6-1.4-3.5-4-8.8-5.7-12 1.8 2.4 4 6 5.8 8 2-1.9 4-5.3 5.9-7.5"/>
+    <path d="M292 242.7l-3.5-10.6 1.3 11.2 1.5 1.6.6-2.2"/>
+    <path d="M297.4 233.9c-1.2 3.6-3.2 9-4 12.7-2-3.2-5.5-7.8-7.6-10.7 2.1 2.1 4.9 5.2 7 6.7 1.6-2.3 3.2-6 4.6-8.7"/>
+    <path d="M295 243.5l-3.7-10.4 1.6 11.2 1.5 1.4.6-2.2"/>
+    <path d="M297.4 235c-1.2 3.6-3.2 9.1-4 12.7-2-3.2-5.4-7.7-7.6-10.5 2.1 2 4.9 5 7 6.6 1.6-2.3 3.2-6.1 4.6-8.8"/>
+    <path d="M295 245.3l-4.8-9.7 2.8 10.8 1.7 1.2.4-2.3"/>
+    <path d="M297 235.9c-.7 3.7-2 9.5-2.5 13.2-2.3-2.9-6.3-7-8.7-9.4 2.3 1.7 5.4 4.4 7.7 5.5 1.3-2.5 2.4-6.5 3.5-9.3"/>
+    <path d="M295.4 246.8l-2.6-10.9.4 11.3 1.4 1.7.8-2"/>
+    <path d="M297 237c-.4 3.9-1.2 9.8-1.2 13.5-2.6-2.5-6.9-6-9.5-8.1 2.4 1.4 5.7 3.6 8.1 4.4 1-2.6 1.8-6.8 2.6-9.7"/>
+    <path d="M295.5 247.6l-6.9-7.8 5.2 9.5 2 .6-.3-2.3"/>
+    <path d="M297.2 238.4c-.4 3.8-1.2 9.7-1.3 13.4-2.6-2.5-6.9-6-9.5-8.2 2.5 1.4 5.8 3.7 8.1 4.5 1.1-2.6 1.8-6.8 2.7-9.7"/>
+    <path d="M296.3 249.4L291 240l3.3 10.7 1.7 1.1.3-2.3"/>
+    <path d="M297.5 240c-.3 3.8-.8 9.7-.8 13.5a117 117 0 00-9.8-7.6c2.6 1.2 6 3.3 8.3 4 1-2.7 1.6-7 2.3-10"/>
+    <path d="M297 251.2l-6.6-8.3 4.8 9.8 1.8.8v-2.3"/>
+    <path d="M297.6 241.8c-.3 3.8-.8 9.7-.7 13.5-2.7-2.4-7.1-5.6-9.9-7.6 2.6 1.3 6 3.3 8.4 4 1-2.7 1.5-7 2.2-10"/>
+    <path d="M297.5 252.6l-4.5-10 2.5 11 1.6 1.3.4-2.3"/>
+    <path d="M297.7 242.9c.2 3.9.2 9.8.6 13.6a134 134 0 00-10.4-6.2c2.6.9 6.1 2.4 8.6 2.8.7-2.9.8-7.1 1.2-10.2"/>
+    <path d="M298.3 252.2l-8.3-5.7 7 7.8 2 .1-.7-2.2"/>
+    <path d="M298 243.3c.3 3.9.7 9.8 1.3 13.5-3-1.9-7.8-4.3-10.8-5.8 2.7.8 6.3 2.2 8.8 2.5.5-2.9.4-7.1.7-10.2"/>
+    <path d="M299.3 254.3l-7-8 5.3 9.6 1.9.7-.3-2.3"/>
+    <path d="M298.6 244.8c.5 3.8 1 9.7 1.9 13.4-3-1.7-8-3.8-11-5.1 2.7.6 6.4 1.8 8.8 2 .4-3 .2-7.2.3-10.3"/>
+    <path d="M300.6 255.7l-8.3-5.9 7 8 2 .1-.7-2.2"/>
+    <path d="M298.9 246.4c.7 3.8 1.7 9.7 2.7 13.3-3.1-1.5-8.2-3.1-11.3-4.1 2.8.3 6.5 1.2 9 1 .2-2.9-.3-7-.4-10.2"/>
+    <path d="M301.6 256.9l-7-8.2 5.2 9.7 2 .8-.2-2.3"/>
+    <path d="M299.3 247.4c1.1 3.7 2.6 9.5 4 13-3.3-1-8.4-2-11.6-2.6 2.8 0 6.5.3 9-.1 0-3-1-7.1-1.4-10.2"/>
+    <path d="M302 256.9l-9.7-2 9.1 4.5 1.9-.7-1.4-1.8"/>
+    <path d="M300 248.6c1 3.7 2.5 9.4 3.8 12.9-3.2-1-8.3-2-11.5-2.6 2.8 0 6.5.3 9 0 0-3-1-7.2-1.3-10.3"/>
+    <path d="M303.5 257.9l-9.2-4.5 8.2 6.7 2-.2-1-2"/>
+    <path d="M299.5 249.2c1.8 3.4 4.5 8.7 6.5 11.7-3.4-.2-8.6 0-11.8 0 2.7-.5 6.4-1 8.7-2-.7-2.9-2.4-6.7-3.4-9.7"/>
+    <path d="M305 258.9l-9.6-2.6 9 5 1.8-.5-1.3-2"/>
+    <path d="M300.4 250.7c1.9 3.3 4.6 8.6 6.7 11.6-3.4-.2-8.6 0-11.8.2 2.6-.7 6.4-1.2 8.6-2.2-.6-2.9-2.4-6.7-3.4-9.6"/>
+    <path d="M306.1 259.7l-8.9-5.3 7.8 7.4h2l-.9-2.1"/>
+    <path d="M301.2 251.5c2.1 3.1 5.3 8 7.6 10.9a90 90 0 00-11.6 1.7c2.6-1 6.2-2 8.4-3.3-1-2.8-3.1-6.5-4.4-9.3"/>
+    <path d="M306.8 260.5l-9.6-.3 9.5 2.9 1.7-1.1-1.6-1.5m5.6-46.6l6.9-1.1-6.9.1-1.2.6 1.2.4"/>
+    <path d="M316.2 215.4c-2-.6-5-1.6-7.1-2l7.4-3.5c-1.5 1-3.8 2.2-5 3.2 1.2.8 3.3 1.6 4.7 2.3"/>
+    <path d="M312 214.1l6.8-1.8-7 .9-1 .7 1.3.2"/>
+    <path d="M316.5 215.9c-2.4-.3-6-.7-8.3-.7 1.8-1.6 4.2-4.1 5.7-5.7-1 1.5-2.6 3.4-3.3 4.8 1.6.7 4.1 1.1 5.9 1.6"/>
+    <path d="M309.6 214.6l7-.8-6.8-.2-1.3.6 1 .4"/>
+    <path d="M314.7 216.1l-7.5-1.3 6.9-3.8c-1.4 1-3.4 2.4-4.4 3.4 1.3.6 3.5 1.2 5 1.7"/>
+    <path d="M309 214.6l6.1-2.7-6.7 1.8-.8.8h1.4"/>
+    <path d="M314.5 216.9c-1.7-.7-4.5-2-6.2-2.5l4.4-4.8c-.8 1.3-2 3-2.6 4.4 1.2 1 3 2 4.4 2.9"/>
+    <path d="M309.3 215l4.8-2-5.2.6-.6 1 1 .4m-4 44.6h-9.8l10 2.5 1.6-1-1.8-1.5"/>
+    <path d="M307.1 260.2l-10-2.3 9.6 4.7 2-.6-1.6-1.8"/>
+    <path d="M308.8 260.9l-10-.5 10 3 1.7-1-1.7-1.5"/>
+    <path d="M302.5 253.9c2.5 2.8 6.4 7.4 9.1 9.9-3.3.5-8.3 1.8-11.4 2.7 2.4-1.2 6-2.6 8-4-1.4-2.6-4-6-5.7-8.6"/>
+    <path d="M310.1 261.4l-10-3.3 9.4 5.6 2-.4-1.4-2"/>
+    <path d="M303.4 254.5c2.8 2.6 7 6.7 10 9-3.2.9-8 2.8-11 4 2.3-1.4 5.6-3.2 7.4-5-1.6-2.4-4.5-5.5-6.4-8"/>
+    <path d="M311 262l-9.5 1.9 10 .6 1.4-1.3-2-1.2"/>
+    <path d="M309 261.4l-9.8.8 10.1 1.7 1.6-1.2-2-1.3"/>
+    <path d="M310.8 262l-10.2-1.7 10 4 1.8-.7-1.6-1.7z"/>
+    <path d="M312.5 262.5l-10 .2 10.2 2.3 1.6-1.1-1.8-1.4z"/>
+    <path d="M305.7 256c2.8 2.6 7 6.8 9.9 9.2-3.3.7-8.3 2.4-11.3 3.4 2.4-1.3 5.8-2.9 7.7-4.5-1.6-2.5-4.4-5.7-6.3-8.2z"/>
+    <path d="M313.9 262.9l-10.2-2.6 9.8 5 1.9-.6-1.5-1.8z"/>
+    <path d="M306.6 256.5c3 2.4 7.6 6.2 10.7 8.2-3.2 1.1-7.8 3.5-10.6 4.9 2.2-1.7 5.3-3.7 7-5.5-1.8-2.4-5-5.3-7-7.6z"/>
+    <path d="M314.8 263.4l-9.3 2.6h10l1.3-1.5-2-1z"/>
+  </g>
+  <path fill="#fedf00" stroke="#000" stroke-width=".4" d="M327.6 249.5l-7.6-5.3-7.6 5.3 2.9-8.4-6.7-5.2h8.6l2.8-8.4 2.8 8.4h8.6l-6.7 5.2 2.9 8.4z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/qa.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/qa.svg
new file mode 100644
index 0000000..0f93a9d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/qa.svg
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-qa" viewBox="0 0 640 480">
+  <path fill="#8d1b3d" d="M0 0h640v480H0z"/>
+  <path fill="#fff" d="M0 0v480h158.4l97.8-26.7-97.8-26.6 97.7-26.7-97.7-26.7 97.7-26.6-97.7-26.7 97.8-26.7-97.8-26.6 97.7-26.7-97.7-26.7 97.7-26.6-97.7-26.7 97.8-26.7-97.8-26.6L256.1 80l-97.7-26.7 97.8-26.6L158.3 0H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/re.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/re.svg
new file mode 100644
index 0000000..827103b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/re.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-re" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h640v480H0z"/>
+    <path fill="#00267f" d="M0 0h213.3v480H0z"/>
+    <path fill="#f31830" d="M426.7 0H640v480H426.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ro.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ro.svg
new file mode 100644
index 0000000..d43c1e2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ro.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ro" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#00319c" d="M0 0h213.3v480H0z"/>
+    <path fill="#ffde00" d="M213.3 0h213.4v480H213.3z"/>
+    <path fill="#de2110" d="M426.7 0H640v480H426.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/rs.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/rs.svg
new file mode 100644
index 0000000..6469365
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/rs.svg
@@ -0,0 +1,292 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-rs" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="rs-a">
+      <path fill-rule="evenodd" d="M60 0h1200v900H60z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#rs-a)" transform="translate(-32) scale(.53333)">
+    <path fill="#fff" d="M0 0h1350v900H0z"/>
+    <path fill="#0c4076" d="M0 0h1350v600H0z"/>
+    <path fill="#c6363c" d="M0 0h1350v300H0z"/>
+    <g transform="matrix(1 0 0 1.00437 0 -.3)">
+      <path fill="#21231e" d="M473.4 259.4v-.2h1v.2l-.5.5-.6-.6zm1 0v.5h-.5l.4-.6zm-93 5.2l-1 .2.3-.6 4.2-.2 4-.3 4-.2 3.8-.3 4-.2 3.6-.3 3.7-.2 3.7-.2 3.5-.2h3.4l3.3-.3 3.2-.2 3.2-.2 3-.2h3l3-.2 3-.2 2.7-.2h2.8l2.7-.2 2.5-.2h2.5l2.4-.3h2.2l2.2-.2h2.2l2-.2h2l2-.2h5.3v1h-5.5l-1.8.2h-2l-2 .2h-2.2l-2.2.2-2.4.2h-2.4l-2.5.2-2.5.2H446l-2.8.3h-2.8l-3 .3-2.8.2h-3l-3 .3-3.3.2-3.3.2-3.3.2h-3.5l-3.5.3-3.6.2-3.5.3-3.8.2-3.8.2-4 .3-4 .2-4 .3-4.2.2.5-.6zm-1 .2l-.3-.5h.7l-.4.5zm6.4 31l-6.5-31 1-.2 6.5 31-.5.7-.5-.4zm.5.5h-.4l-.2-.4.5.3zm95-4l-.2 1h.2-5.8l-3 .2h-3l-2.8.2h-3l-3 .2h-6l-3 .2h-3l-3 .2h-3l-3 .2h-3.2l-3 .2h-3l-3 .2h-3l-3 .2h-3l-3 .2h-3l-3 .2h-3l-3 .2h-3l-2.8.2h-5.8l-2.7.2h-2.7v-1h5.8l2.7-.2h5.8l3-.2h3l2.8-.2h3l3-.2h3l3-.2h3l3-.2h3l3-.2h3l3-.2h3.2l3-.2h3l3-.2h3l3-.2h3l3-.2h3l3-.2h3l2.8-.2h3l2.8-.2h.2zm-.2 0h.2zm94.5 3.4l1 .2-.5.3h-2.8l-2.8-.2h-8.8l-2.8-.2h-3l-3-.2H551l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3.2-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2h-3l-3-.2H485l-3-.2.2-1h2.8l3 .2h3l2.8.2h3l3 .2h3l3 .2h3l3 .2h3l3 .2h3l3 .2h3l3 .2h3.2l3 .2h3l3 .2h3l3 .2h3l3 .2h3l3 .2h5.8l2.7.2h3l2.7.2h2.8l-.5.5zm1 .2v.3h-.5l.5-.4zm6.5-31.2l-6.5 31h-1l6.5-31.2.6-.4.4.6zm-.4-.6h.5v.6l-.4-.6zm-93.7-4.8h1l-.6-.5h5.4l2 .2h2l2 .2h2l2.4.2h2.4l2.4.3h5l2.6.3h2.7l3 .3 2.8.2h3l3 .3 3 .3 3.3.2 3.3.2 3.4.2h3.4l3.6.3 3.6.2 3.7.2 3.6.3 4 .2 3.8.3 4 .2 4 .3 4.2.2v1l-4.3-.2-4-.3-4-.2-4-.3-3.7-.2-3.8-.2-3.6-.3-3.6-.2-3.5-.2h-3.4l-3.3-.3-3.3-.2-3.2-.2-3-.2h-3l-3-.2-3-.2h-2.7l-2.6-.3h-2.6l-2.6-.3h-2.5l-2.4-.2-2.3-.2h-2.2l-2.2-.2h-2l-2-.2h-2l-1.8-.2h-3.3l-.5-.6zm.4.5h-.5v-.6l.4.5zm.5-.8v.2h-1v-.2l.3-.5.6.5zm-1 0v-.4h.3l-.4.4zm-8 .3l.2-1h8.8l.3.2v.8h-.5v.2h-.3l-.2-1h.2v.7h.2-8.2zm.2 0zm-8.3.2v-1l-.2 1h-.4l-.2-.2-.3-.3v-.5l.2-.2h9.4v1h-8.8l.2-.2v-.8h-.2.4v1zm0-1v1l-.6-.5.5-.5zm-.6.5v-.5h.5l-.6.5z"/>
+      <path fill="#edb92e" d="M583.5 264.2c3.2-6.6 6.7-13 11.2-18.7-11.7 8.8-18 7.5-18.7-4-.7-.2-1.7-.2-2.6-.2-9 14-17.7 12-26.2-5.8-11.5 18.4-21.4 18-29.2-1-13.3 16.6-24.5 16.7-33.6.2v-2c.5.2 0 .3-1 0l-.3-.3a69.3 69.3 0 01-1 .2c-.2 0-.5 0-.8-.2l-.2.4c-1.2.2-1.6 0-1 0v2c-9.2 16.4-20.4 16.3-33.7-.4-7.8 19-17.7 19.5-29.2 1-8.4 18-17 20-26 6-1 0-2 0-2.7.2-.8 11.4-7 12.7-18.8 4 4.6 5.5 8 12 11.3 18.6 34-1.4 67.6-3.2 101.3-5 34 1.8 67.6 3.6 101.5 5z"/>
+      <path fill="#21231e" d="M595 246l-.6-1 .7 1-.3.4-.4.5-.4.4-.5.6-.4.5-.3.6-.4.6-.4.6-.5.5-.3.6-.4.6-.4.4-.3.6-.3.6-.3.6-.4.6-.3.5-.3.6-.4.5-.3.6-.3.7-.4.6-.3.6-.3.5-.3.6-.2.8-.3.6-.4.6-.2.6-.3.6-.3.6-.3.6-1-.4.3-.6.3-.7.3-.6.2-.5.4-.6.3-.7.2-.6.3-.6.3-.6.4-.6.3-.6.3-.6.3-.6.5-.6.3-.6.4-.6.3-.6.4-.5.2-.5.4-.6.4-.7.3-.6.4-.5.4-.6.5-.6.4-.5.3-.6.4-.6.4-.6.5-.5.4-.6.4-.5.7.7zm-19.2-4l.3-1 .5.5v1l.2 1v1l.3.7.2.8.3.7.3.7.2.6.4.5.3.5.4.4.5.3.4.3.4.3.5.2h.4l.5.2h1.9l.7-.2.7-.2.8-.3.8-.3.8-.3 1-.5.8-.6 1-.5 1-.7 1-.7 1-.7 1-1 .7 1-1 .7-1 .8-1 .7-1 .6-1 .5-1 .5-1 .5-.8.4-1 .3-.7.3-.8.2h-.8l-.8.2h-2l-.7-.3-.5-.2-.6-.3-.5-.5-.6-.4-.5-.4-.5-.5-.3-.5-.4-.7-.3-.7-.2-.7-.3-.8-.2-1v-.8l-.2-1v-1l.2.3zm.3-1l.4.2v.3l-.3-.4zm-2.2.6l-.8-.6.4-.2h2v.2h.4l-.2 1h-1.2v-.2h-1.2l.4-.2zm-.8-.6v-.2h.4l-.4.2zm-25.3-5.2l-1-.6h1l.8 1.7.8 1.4.8 1.5.8 1.2.8 1.2.8 1.2.8 1 .8 1 .8.8.8.8.8.7.7.5 1 .4.7.3.8.3.7.3h2.3l.8-.2.8-.2.8-.3.8-.4.8-.6.8-.6.8-.7.8-.6 1-1 .7-1 .8-1 .8-1 1-1.4.8.6-.8 1.3-1 1-.7 1.2-1 1-.7 1-1 .7-.8.6-.8.6-1 .6-.7.4-1 .4-.8.2-1 .2h-3l-1-.4-.7-.3-1-.5-.7-.5-1-.6-.7-.7-1-.8-.8-1-.8-1-.8-1-.8-1.2-.8-1.3-.8-1.3-.8-1.5-.8-1.6-.8-1.7h1zm-1-.6l.6-.7.4.8h-1zm-28.3-.5l-.8-.6 1 .2.6 1.7.7 1.5.7 1.5.8 1.4.7 1.3.8 1.2.8 1 .8 1 .8.7.8.7.8.6 1 .5.7.4.8.2 1 .2h2.5l1-.3.8-.2 1-.4.8-.6 1-.7 1-.6 1-1 1-1 1-1 1-1.2 1-1.3 1-1.6 1-1.5 1.2-1.8 1 .6-1.2 1.7-1 1.5-1.2 1.5-1 1.3-1 1.3-1 1.2-1.2 1-1 1-1 .8-1 .7-1 .6-1 .4-1 .4-1 .4h-3l-1-.2-1-.3-.8-.6-1-.5-.8-.8-1-.8-.7-.8-1-1-.8-1-.8-1.3-.8-1.4-.8-1.5-.8-1.5-.7-1.7-.8-1.7h1zm-.8-.6l.5-.6.5.8h-1zm-33.8.7h1v-.2l.8 1.5 1 1.4.8 1.2 1 1.2.8 1 1 1 .8 1 1 .8.8.7 1 .6 1 .4 1 .4.8.3 1 .3 1 .2h2l1-.2 1-.3 1-.3 1.2-.4 1-.6 1.2-.6 1-.6 1.3-.8 1-1 1.3-1 1.2-1 1-1.3 1.4-1.3 1.2-1.4 1.2-1.5.8.7-1.3 1.5-1 1.5-1.3 1.3-1.2 1.3-1.2 1-1.2 1-1 1-1.3 1-1.2.7-1 .6-1.3.6-1 .5-1.3.3-1.2.3h-1l-1.2.2h-1l-1.2-.2-1-.2-1-.3-1-.4-1-.5-1-.7-1-.6-1-1-1-.8-1-1-1-1.2-.8-1.2-1-1.3-.8-1.5-1-1.5v-.3zm0 .3v-.3.3zm1-2.3v2h-1v-2l.8-.5.3.5zm-1 0v-.8l.8.2-.8.5zm-1 .3l1-.4-.4-.3h1l-.2.2v.4l.4-1h.2v.2l.2.2v.6h-1.8l-.5-.3zm.5.3h-.3v-.3l.3.3zm.3-1l.2.3-1 .4v-.4l.2-.7.6.2zm-.6-.4l.4-.2.2.4-.6-.3zm-1 1l.2-1h.8l.2 1h-1zm.2 0zm-.6-.4l-1-.4.7-.3h.8v1h-1l.4-.4zm-1-.4l.3-.4h.3l-.6.4zm0 .4v-.4l1 .4-.2.4-.4.3-.5-.7zm.8.4v.3h-.4l.4-.3zm-1-.3h-1l.7.4v.2h.2v-.8h-.2.2l.2-.2h.4l.2 1h-1.9v-.2h-.2v-.5h.2v-.2h.2l.8.4zm-.7-.5l.7-.3v.7l-.7-.5zm-.3 2.5v-2h1v2.3l-1-.3zm1 0v.2-.3zm-33.6 0l-1-.5h1l1 1.4 1.3 1.4 1.3 1.3 1.2 1.2 1.2 1 1.2 1.2 1 1 1.2.7 1 .7 1.2.7 1 .6 1.2.4 1 .3 1 .3h1l1 .2h1l1-.2 1-.2 1-.2 1-.4 1-.5 1-.7.8-.7 1-.8.8-1 1-1 .8-1 1-1.2.8-1.2.8-1.4 1-1.5.8.5-1 1.5-.8 1.4-1 1.2-.8 1.2-1 1.2-1 1-.8 1-1 .8-1 .7-1 .8-1 .5-1 .4-1 .4-1 .3-1.2.2h-2.2l-1-.2-1.3-.3-1-.3-1.2-.5-1-.6-1.2-.6-1.2-.8-1.2-.8-1.2-1-1.2-1-1.2-1-1.2-1.4-1.2-1.3-1.3-1.5-1-1.5h.8zm-1-.5l.3-.8.7.7-1 .2zm-28.3 1.5l-1-.4h1l1 1.6 1 1.4 1.2 1.5 1 1.2 1 1.2 1 1 1 1 1 1 1 .7 1 .8 1 .6.8.4 1 .3.8.4h2.8l.8-.2.8-.3.8-.5 1-.5.7-.6 1-.7.7-.8.8-1 .8-1 .8-1.3.8-1.3.8-1.4.8-1.5.7-1.6.8-1.8 1 .4-.8 1.7-.7 1.7-.8 1.5-.8 1.4-.8 1.3-1 1.2-.7 1-1 1-.7 1-1 .7-.8.7-1 .4-.8.5-1 .2-1 .2h-3l-1-.3-1-.3-1-.4-1-.6-1-.7-1-.8-1-1-1-1-1-1-1-1.4-1-1.3-1.2-1.5-1-1.5-1.2-1.7h1zm-1-.4l.5-.8.5.7h-1zm-25.6 6.5v-1l.3.2 1 1.3.7 1.2.8 1 .8 1 .8.8 1 .8.7.8 1 .6.7.5.7.3.8.3.8.2.8.2h2.3l.8-.4.8-.3.8-.4.7-.5 1-.6.7-.8.8-.8.8-.8.8-1 1-1 .7-1.2.7-1.2.8-1.3.8-1.6.8-1.5.8-1.7 1 .4-1 1.7-.7 1.5-1 1.4-.7 1.3-.8 1.3-.8 1.2-.8 1-1 1-.8 1-.8.8-.8.7-1 .6-.7.5-1 .5-1 .3-.7.3h-2.6l-1-.2-.8-.2-1-.4-.8-.4-1-.6-.8-.6-.8-.7-1-1-.7-.8-1-1-.8-1-1-1.3-.7-1.4.4.2zm0-1h.2v.2l-.3-.2zm-2.2.8h-1l.4-.5h1.2v-.2h1.5v1H389v.2h-.4l.2-.4zm-1 0v-.4h.4l-.4.3zm-18 3.6l-.6.7.6-1 1 1 1.2.6 1 .7 1 .6 1 .4.8.5 1 .4.7.3.8.3.8.3.8.2h.7l.7.2h1.7l.4-.2.5-.2.4-.3.4-.3.4-.3.4-.4.3-.5.2-.5.3-.6.3-.7.3-.7.3-.8v-.8l.3-1v-.8l.2-1h1v1l-.2 1-.2 1-.2 1-.2.7-.2.8-.3.8-.4.7-.2.6-.5.6-.4.5-.6.5-.5.4-.7.2-.6.2-.6.2h-3.3l-.8-.3-.8-.3-1-.3-.8-.4-1-.5-.8-.5-1-.5-1-.6-1-.7-1-.8-1.2-.8.7-.8zm11 18.5v1l-.4-.3-.3-.6-.2-.6-.3-.6-.3-.6-.4-.6-.3-.6-.3-.7-.3-.5-.4-.6-.4-.7-.3-.6-.4-.6-.3-.5-.4-.6-.4-.7-.4-.5-.3-.6-.4-.6-.4-.6-.4-.6-.3-.5-.4-.7-.3-.6-.3-.5-.4-.6-.4-.5-.4-.5-.4-.5-.4-.6-.4-.5-.4-.6-.4-.5.7-.8.4.5.4.6.4.5.4.6.4.5.4.5.4.5.4.6.4.6.4.5.3.6.4.6.4.5.4.6.4.6.3.6.5.6.3.6.3.6.5.6.3.6.3.6.5.6.3.7.3.7.4.6.3.6.4.5.4.6.3.7.3.7.3.6-.5-.3zm0 1h-.3v-.3l.4.3zm101.4-6v1l-3.2.2h-3.2l-3 .3h-3.3l-3 .3-3.3.2H460l-3 .3-3.3.3h-3.2l-3 .3H444l-3 .3h-3.3l-3.3.2-3 .2h-3.3l-3.2.3h-3l-3.3.3-3.3.2h-3l-3.3.3h-3.2l-3 .2-3.3.2h-3.3l-3.2.2h-3l-3.3.3H384l-3 .2-.2-1h3.2l3.2-.3h3l3.3-.2 3.2-.2h3l3.3-.3h3.2l3-.3h3.3l3.2-.3h3l3.3-.2h3.2l3-.3h3.3l3.2-.3 3-.2h3.3l3.2-.3h3l3.3-.3 3.2-.2h3l3.3-.3 3-.3h3.3l3.2-.3 3-.2h3.3l3.2-.3 3-.3h.2zm0 0zm101.2 5v1h-3l-3.3-.2-3-.2h-3.3l-3-.3h-3.3l-3.2-.3h-3l-3.3-.2-3.3-.2h-3l-3.3-.3-3.2-.2h-3l-3.3-.3h-3.3l-3-.3h-3.3l-3.2-.3-3-.3h-3.3l-3.3-.3h-3l-3.3-.3h-3l-3.3-.2-3-.2-3.2-.2h-3.2l-3.2-.3h-3l-3.3-.2.2-1h3l3.3.3 3.2.2 3 .2 3.3.2h3l3.3.3h3.2l3 .2 3.3.2 3.2.2h3l3.3.3h3l3.3.2 3.2.2h3l3.3.3h3.3l3 .3h3.3l3.2.3h3l3.3.3h3.3l3 .3h3.3l3.2.2h3.2l3 .2 3.3.2h3.2zm0 1zm0 0v-1l.5.7-.6.3zm.5-.3l-.2.3h-.4l.5-.3z"/>
+      <path fill="#edb92e" d="M459.4 276.2l22.7-11.5 23 11.5-23 11.4z"/>
+      <path fill="#edb92e" d="M474 259.2v.2c-17.6.7-48.6 2.5-93.2 5.3l6.5 31c29.6-.8 64.3-2 94.8-3 30.7 1 65.3 2.2 95 3l6.5-31c-44.6-2.8-75.6-4.6-93-5.3v-.2c1.7-.4-1-.4-8.4-.2-7-.2-10-.2-8 .2z"/>
+      <path fill="#edb92e" d="M597.3 236.7l-3.7-.6c-7 17.5-13.4 18-14.6 1.4 1.6-.6 1-3.3 2.8-2.2 1 .5 2-1 1.3-2-2-1.5-3.6-1.3-5.4.4-.8-2.7-3-4-5.4-2.8-1 .5-.7 2.5.4 2.4 1.8-.2 1 1.6 1.6 3-12.5 16.4-19 14.4-17.4-7.3-3-.7-6.5-1.3-9.6-2.4-11.5 23.3-19.7 24.3-26.4 3.4 1.4-1 1-3.8 3-3 1.3.6 2.3-1.5 1.2-2.4-2.4-2-5-1.3-6.8 1.3-1.4-3-4-4-6.6-2.2-1.2.7-.5 3 .8 2.6 2.3-.7 1.3 2.4 3 3.5-5 19.6-30.8 21-26.6-8.2-2.4 0-4.5 0-6.6.2l-6.7-.2c4.2 29-21.5 27.8-26.6 8 1.6-1 .6-4 3-3.4 1.2.3 2-2 .7-2.7-2.6-1.7-5.2-.7-6.6 2.2-1.7-2.7-4.3-3.4-6.7-1.4-1 1 0 3 1 2.5 2.2-.8 1.8 2 3.2 3-6.7 21-15 20-26.4-3.4-3 1-6.5 1.7-9.5 2.3 1.6 21.6-5 23.6-17.4 7 .6-1.2 0-3 1.7-2.8 1 0 1.5-2 .4-2.4-2.4-1-4.5 0-5.3 2.8-1.7-1.7-3.5-2-5.5-.4-.8 1 .4 2.5 1.3 2 1.8-1 1.2 1.6 2.8 2.2-1.2 16.5-7.6 16-14.6-1.3l-3.7.7c0 4 1.3 8.5 3.8 11.7 10.6 13.5 18.5 10.4 18.8-4.7 14 16.4 24.4 14.3 26.2-3 11.7 21.8 30.5 11.4 31-2 5 19.4 33.5 19.2 35.4-3 1.8 22.2 30.3 22.4 35.4 3 .4 13.4 19.2 23.8 31 2 1.7 17.3 12.3 19.4 26 3 .4 15 8.3 18.2 19 4.7 2.4-3.2 3.8-7.6 3.7-11.7z"/>
+      <path fill="#21231e" d="M593.7 235.6l3.7.6-.2 1-3.6-.6-.4-.7.5-.4zm-.5.3v-.4h.5l-.5.3zm-14.3 1l.2 1 .3-.6.2 1.4v1.4l.3 1.3.2 1.2.2 1 .3 1 .3 1 .3.7.3.7.3.6.3.5.3.5.4.2.3.2h1.3l.4-.3.4-.2.5-.4.4-.3.6-.6.5-.6.6-.7.7-1 .6-.8.7-1.2.6-1.2.6-1.3.7-1.3.5-1.5.7-1.6 1 .3-.8 1.6-.6 1.4-.7 1.4-.5 1.3-.7 1.3-.6 1-.6 1-.7 1-.7.8-.6.8-.6.6-.5.5-.6.3-.7.4-.5.2h-1.2l-.6-.2-.5-.2-.5-.4-.5-.4-.4-.6-.3-.6-.3-.8-.4-.8-.3-1-.2-1-.3-1-.2-1.3-.2-1.3-.2-1.5v-1.6l.3-.5zm-.5.4v-.4h.4l-.5.4zm3.5-2.7l-.5 1v-.2h-.4v.2h-.2v.2l-.2.2v.3l-.2.3-.2.3v.2h-.2v.3h-.3v.2h-.3l-.2.2-.3-1v-.2h.2v-.2h.2v-.2l.2-.2v-.5h.2v-.4l.2-.2v-.3l.2-.2.2-.2h.2l.2-.2h1l.2.2zm-.5 1zm1.3-2l.6-1v.2h.2l.2.3v1.6h-.2v.2h-.2v.2h-.2v.2h-.2v.2h-.5v.2h-.8l-.3-.2.5-1v.2h.4v-.2h.2v-.2h.2v-.8zm.6-1v.2-.2zm-6.3 1l1-.3-.8-.2h.2l.2-.3.2-.2.2-.2.3-.2h.2l.2-.2h.2v-.2h.4l.2-.2h2.3l.2.2h.2l.2.2h.2l.2.2h.2l.2.2.2.2-.6.8-.3-.2h-.2l-.2-.2-.2-.2h-.3l-.2-.2h-2.1v.2h-.3v.2h-.2l-.3.2v.2h-.3v.2l-.3.2-1-.3zm1 .3l-.7.5-.2-.8 1 .3zm-5.6-2.7l-.4-1h.5l.3-.2h2.1l.4.2h.4l.2.3h.2v.2l.3.2h.2l.2.2v.2l.2.2v.2l.2.2.2.2v.2l.2.3v.2l.2.2v.2l-1 .3v-.5h-.2v-.3l-.2-.2v-.2h-.3v-.3h-.2v-.4h-.3v-.2h-.3v-.2h-.6v-.2h-2l-.2.2h-.2zm0 1.4l.2 1h-.6v-.2h-.2l-.2-.2-.2-.2-.2-.2V231l.2-.2.2-.2.3-.2.4 1h-.2v1.2h.2zm2.2 3.7l-.8-.6v.5-.2h-.2v-1h-.2v-1l-.2-.2h-.7v-1.2h.6l.3.2.2.2h.2v.2l.2.3v.4h.2v1.5h.2v.8zm0-.5h.2l-.2.4v-.5zm-18-6.6l.3-1 .3.6v2l-.2 1.8v4.9l.3 1.4v1.3l.3 1 .2 1 .3 1 .4.8.3.8.4.5.5.5.4.3.4.3.5.2h1l.6-.2.7-.3.7-.4.8-.5 1-.4.7-.8 1-.8 1-1 1-1 1-1 1-1.4 1-1.4 1.3-1.4.8.6-1.2 1.5-1 1.3-1.2 1.3-1 1-1 1.2-1 1-1 .8-1 .8-.8.6-1 .5-.7.4-.8.3h-.8l-.8.2h-.7l-.7-.2-.6-.3-.6-.5-.5-.5-.4-.7-.5-.7-.4-1-.2-1-.2-1-.2-1.2-.2-1.3V229l.5.6zm.3-1h.3v.6l-.4-.6zm-9.3-1.6l-1-.4.7-.3.3.2h.3l.3.2h.3l.2.2h.3l.4.2h.6l.3.2h.3l.4.2h.6l.3.2h.5l.3.2h.7l.3.2h.6l.3.2h.5l.3.2h.8l.3.2h.3l-.3 1h-.8l-.2-.2h-.6l-.3-.2h-.8l-.3-.2h-.6l-.4-.2h-.7l-.4-.2h-.3l-.3-.2h-.6l-.3-.2h-.2l-.3-.2h-.6l-.4-.2h-.3l-.4-.2h-.4l-.3-.2h-.2l.7-.4zm-1-.4l.3-.4h.4l-.6.4zm-26.2 3.2l.6.8.3-.6.6 2 .5 1.7.7 1.6.6 1.6.7 1.4.7 1.2.6 1 .7 1 .7 1 .7.6.6.6.7.4.7.4.7.2h1.4l1-.2.6-.2.8-.4 1-.6.7-.6 1-.8 1-1 .8-1 1-1.2 1-1.3.8-1.4 1-1.6 1-1.7 1-1.8 1-2 1.2-2 1 .3-1.2 2.2-1 2-1 1.8-1 1.8-1 1.6-1 1.5-1 1.3-1 1.2-1 1-1 1-1 1-.8.7-1 .5-.8.4-1 .2-.8.2h-1.8l-.8-.3-.8-.3-.8-.5-.8-.6-.7-.8-.8-1-.7-1-.7-1-.7-1.4-.7-1.4-.7-1.5-.7-1.7-.6-1.7-.7-1.8.2-.6zm-.2.6v-.4l.2-.2-.2.5zm3.8-3.6l-.3 1h-.3l-.2-.2h-.2v.2h-.2v.2h-.2v.5h-.2v.4l-.2.3-.2.2v.2l-.2.3-.3.3-.2.3h-.2l-.5-.7.2-.2.2-.2v-.5h.2v-.4h.2v-.3l.2-.3v-.2l.2-.2.2-.3.2-.2h.2v-.2h.5v-.2h.7l.2.2zm.7-1.6l.6-.8.2.2.2.2v.2l.2.3v1.3l-.2.3v.2l-.2.2h-.2v.2h-.2v.2h-.2l-.2.2h-1.1l.4-1h.7v-.2h.2v-.6h.2v-.7h-.2v-.2zm-7 1l1-.3h-1l.2-.3v-.3h.3l.2-.3.2-.3.2-.2.3-.3.3-.3h.2l.2-.3h.3l.2-.2h.5l.2-.2h2.2l.3.2h.2l.3.2h.3l.3.3h.2l.3.3.3.2-.6.8-.2-.2h-.2l-.2-.3-.4-.2h-.2l-.2-.2H521v.2h-.5l-.2.3h-.2v.2h-.2l-.2.3-.2.2-.3.3v.2l-.2.3-.2.2h-1zm1 .2l-.6.7-.3-1 1 .2zm-7-2l-.4-1h.3l.2-.2h.3l.4-.2h.2l.3-.2h.4l.3-.2h1.6l.2.2h.2l.3.2h.2l.2.3.3.2.2.2v.2l.3.2.2.2.2.2v.2l.3.2.2.3.3.4v.3l-.8.4-.2-.4-.2-.2v-.2l-.3-.2v-.2l-.3-.2-.3-.3h-.2v-.2h-.3l-.3-.2h-.2l-.3-.2h-.4l-.2-.2h-1.2l-.2.2h-.5l-.2.2h-.2l-.2.2-.2.2zm.5 1.7l.3 1h-.5l-.2-.2h-.2l-.2-.2-.2-.2-.2-.2v-.2l-.2-.2V224l.2-.2.2-.3.3-.2.5 1h-.2v1.2h.2v.2h.4zm3.7 4l-1-.2.2.5h-.2l-.2-.2h-.2v-.3h-.2l-.2-.3v-.4l-.2-.2v-.3l-.2-.2v-.4l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2h-.6l-.4-1h1.1l.3.2h.2v.4h.2v.3l.2.2v.2h.2v.5l.2.3v.5h.2v.4h.2l.2.2.2.2.3.6zm-.3-.5l.3.2v.3l-.3-.5zm-27-7.2v-1l.6.5-.3 2.7-.2 2.4v2.2l.2 2 .3 2 .4 1.7.5 1.5.7 1.4.6 1 .8 1.2 1 1 1 .7 1 .6 1 .5 1 .4 1.3.3h2.4l1.3-.2 1.2-.3 1.2-.5 1.2-.5 1-.7 1.2-1 1-.8 1-1 1-1.3 1-1.3.8-1.3.8-1.5.6-1.7.5-1.7 1 .2-.6 2-.7 1.6-.8 1.6-1 1.5-1 1.4-1 1.3-1 1-1.2 1-1.2 1-1.2.8-1.3.7-1.2.5-1.3.3-1.4.2h-2.5l-1.2-.3-1.3-.4-1.2-.5-1-.7-1-1-1-1-1-1-.8-1.5-.7-1.5-.6-1.6-.4-1.8-.3-2-.2-2.2V227l.2-2.6.3-2.7.5.6zm0-1h.7v.5l-.6-.5zm-6.6 1.2l.2-1h4l.2-.2h2.1v1h-4.1l-.2.2h-2zm.2 0zm-6.2-.8h-1l.5-.4h5.1l.2.2h1.2v1h-4l-.3-.2h-2l.5-.6zm-1 0v-.5h.5l-.5.6zm-26.4 7.8l.5.8.3-.5.6 1.7.5 1.7.7 1.5 1 1.4.8 1.4 1 1.2 1 1 1 1 1.2 1 1.2.6 1.2.5 1.2.5 1.2.3 1.2.2h2.4l1.2-.3 1-.3 1.2-.4 1-.7 1-1 .8-.8 1-1 .6-1.3.6-1.5.6-1.6.4-1.8.3-2v-2l.2-2.3-.2-2.5-.3-2.7h1l.3 2.6.2 2.5v2.2l-.2 2.2-.3 2-.5 1.8-.5 1.6-.7 1.5-.8 1.4-1 1.2-1 1-1 .8-1 .7-1.2.5-1.3.4-1.3.3H463l-1.2-.2-1.3-.3-1.3-.5-1.3-.6-1.3-.7-1.2-1-1.2-1-1-1-1-1.2-1-1.3-1-1.5-.7-1.6-.7-1.7-.6-2 .2-.5zm-.2.5v-.3l.2-.2-.2.5zm3.7-4l-.2 1-.2-.2h-.7v.2l-.2.2v.4l-.2.2v.5l-.2.2v.2l-.2.3v.2l-.2.2v.2h-.2v.3h-.3l-.2.2h-.2l-.4-.7.2-.2.2-.2h.2v-.3l.2-.2v-.5l.2-.2v-.5l.2-.3v-.3l.2-.2.3-.3.2-.2h.2l.2-.2h1.1zm.4-1.8l.6-1v.2h.3v.3h.2v.2l.2.2v1.5l-.2.2v.2l-.2.2-.3.2-.2.2h-.9l.3-1h.4v-.4l.2-.2v-.8h-.2v-.2h-.2zm-6.7 2l.8-.6h-.8v-.2l.2-.3.3-.4v-.2l.3-.2.2-.2.2-.2.2-.2.2-.2.2-.2h.2l.3-.3.3-.2h.2l.3-.2h.5l.2-.2h1.6l.4.2h.2l.3.2h.2l.3.2.2.2h.3l-.6 1-.2-.2h-.2l-.2-.2h-.3l-.2-.2h-.5l-.2-.2h-1.3l-.2.2h-.3v.2h-.3l-.2.3-.2.2-.3.3-.3.3-.2.2v.2l-.2.2-.2.2v.3h-.2l-1 .2zm1 0l-.5.7-.5-.8h1zm-7-1.2l-.8-.8.2-.2.2-.2h.3l.2-.3h.2l.2-.2h.3l.3-.2h2.5l.3.2h.2l.3.2.2.2h.2l.2.3h.2l.2.2.2.2.2.3.2.2h.2v.4l.3.2-.8.6-.2-.2v-.3l-.3-.2-.2-.2-.3-.3-.2-.2h-.2l-.2-.2v-.2h-.2l-.2-.2h-.4l-.2-.2H441l-.2.2h-.2l-.2.2h-.2l-.2.3h-.2l-.2.3zm.5 1.6l.4 1h-1.3l-.2-.2-.3-.2h-.2v-.2l-.2-.3v-.2l-.2-.2v-1.6l.2-.2.2-.2v-.2l.8.8-.2.2v1l.2.2.2.2h.4zm3.8 3.6l-1-.4.2.6h-.2v-.3h-.3v-.2h-.2v-.3h-.2v-.5h-.2v-.6h-.2v-.5l-.2-.2-.2-.2h-.2v-.2h-.5v.2l-.5-1h.4l.2-.2h.6l.2.2.3.2h.2v.2l.2.2.2.3v.2l.2.2v.2l.2.3v.2l.2.2.2.2.2.2.2.2.2.6zm-.2-.6l.3.2v.4l-.2-.6zm-26.6-2.5l-.3-1 .5.4 1 2 1 2 1.2 2 1 1.6 1 1.6 1 1.5 1 1.4.8 1.2 1 1 .8 1 1 .8.7.6 1 .6.6.4.8.2.8.2h1.3l.7-.2.7-.4.7-.4.7-.6.7-.7.8-.7.6-1 .7-1 .8-1.3.6-1.4.7-1.5.7-1.5.7-1.8.6-2 1 .5-.7 2-.6 1.6-.7 1.7-.6 1.5-.7 1.4-.7 1.3-.7 1.2-.7 1-.8.8-.7.8-.7.6-.8.5-1 .4-.7.4H432l-1-.2-.7-.3-1-.5-1-.6-.8-.8-1-1-.8-1-1-1-1-1.2-1-1.3-1-1.5-1-1.6-1-1.8-1-1.8-1-2-1-2.2.5.3zm-.3-1h.3l.2.4-.6-.3zm-9 3h-1l.4-.6h.7l.3-.2h.6l.4-.2h.9l.3-.2h.5l.3-.2h.6l.4-.2h.3l.3-.2h.6l.3-.2h.5l.3-.2h.3l.4-.2h.3l.3-.2h.3l.3-.2h.3l.2 1h-.7l-.3.2h-.3l-.3.2h-.3l-.3.2h-.5l-.3.2h-.3l-.4.2h-.6l-.4.2h-.6l-.3.2h-.6l-.2.2h-.6l-.3.2h-.7l-.3.2h-.8v.2h-.4l.4-.5zm-1 0v-.5h.4l-.4.5zm-17.4 7l1 .3v-.5l1 1.4 1 1.4 1.2 1.3 1 1 1 1 1 1 1 .8.8.8 1 .6.6.4.8.4.7.3h.6l.6.2h.4l.5-.2.3-.2.5-.2.4-.5.3-.5.4-.7.2-.7.3-1 .2-1 .2-1v-2.7l.2-1.5v-5l-.2-1.8h1v2l.2 1.8v4.9l-.2 1.4v1.4l-.3 1.2-.3 1-.3 1-.2 1-.4.7-.4.7-.6.5-.5.5-.7.3-.7.2H402l-.6-.2-.8-.4-1-.5-.7-.5-1-.6-1-.8-1-.8-1-1-1-1-1-1.2-1-1.3-1.2-1.4-1-1.6-.2-.5zm0 .4v-.3.4zm2-3.7v1h-.6v.8l-.2.3v1h-.2v.3l-1-.4v-.4l.2-.2v-.9h.2v-.5l.2-.2v-.2h.4v-.2h1zm.3-1.4l.3-1 .2.2h.2v.2h.2v.7h.2v1.2l-.2.2v.3l-.2.2-.2.2h-.2l-.2.2h-.5v-1h.4v-.2h.2v-.8l-.2-.2zm-5.7 2.7l.7-.8-.8.2v-.2l.2-.3v-.3l.2-.3v-.2l.2-.2.2-.2v-.2l.3-.2v-.2l.3-.2h.2v-.3h.3l.3-.2.2-.2h.4v-.2h2.5l.3.2h.2l.3.2-.4 1-.3-.2h-.5l-.2-.2h-1.3l-.3.2h-.2v.2h-.2l-.2.2v.2h-.2l-.2.2v.2h-.2v.3l-.2.2v.2h-.2v.5l-.2.2-1 .3zm1-.3l-.4.8-.7-.5 1-.3zm-5.8-.2l-.7-.6v-.2l.3-.2h.3l.2-.2h.2l.2-.2.3-.2h.2l.2-.2h2.1l.2.2h.2l.2.2h.2l.2.2.3.2.2.2h.2l.2.3v.2l-.7.8v-.2h-.3v-.2l-.3-.2-.3-.2h-.3v-.2h-.2l-.2-.2h-2v.2h-.3l-.2.2-.2.2h-.2l-.2.2zm-.7-.6v-.2zm1.4 1.7l.6 1h-1.3l-.3-.2-.2-.2v-.2h-.2l-.2-.2v-.3l-.2-.2v-.8l.2-.3h.2l.7.5v.8h.2v.2h.2v.2h.2zm3.6 2.7h-1l.3.5v-.2h-.3v-.2h-.3v-.3h-.2v-.2h-.2v-.2l-.2-.2v-.3h-.2v-.2l-.2-.3v-.2h-.7l-.6-.8h.2l.2-.2h1.1l.3.2.2.2v.2h.2v.4l.2.2v.5h.2v.2l.2.2.2.2h.2l.4.6zm-.4-.5h.4v.4l-.4-.5zm-14.7-.4v-1l.4.3.8 1.5.6 1.5.7 1.3.7 1.3.6 1.2.6 1 .6 1 .6 1 .5.6.6.7.5.7.6.4.5.5.3.2.5.2h1.1l.3-.3.3-.2.4-.4.3-.4.4-.5.3-.6.3-.8.3-.8.2-1 .3-1 .3-1.3.2-1.3v-1.4l.2-1.4h1v1.5l-.2 1.4-.2 1.3-.2 1.2-.2 1-.2 1-.3 1-.4.8-.4.8-.4.6-.4.6-.5.4-.5.4-.5.2-.6.2h-1.1l-.6-.3-.7-.4-.6-.4-.5-.6-.6-.6-.7-.7-.7-.7-.6-1-.6-1-.6-1-.6-1.2-.6-1.2-.7-1.4-.7-1.5-.6-1.7.5.3zm0-1h.3v.3l-.4-.4zm-3.8.6l3.6-.6v1l-3.6.6-.5-.5.4-.5zm-.5.5v-.4h.4l-.5.4zm4.7 11.4l-.8.7-.3-.3v-.3l-.3-.3-.2-.3-.3-.3-.2-.3-.2-.3v-.4l-.3-.3-.2-.4-.2-.4v-.4l-.2-.4v-.4l-.3-.4v-.4l-.2-.3v-.4l-.2-.4v-.9l-.2-.3v-.8l-.2-.5V238l-.2-.5v-.7h1v1.9l.2.4v1.1l.2.5v.7l.2.3v.4l.2.4.2.3v.4l.2.5.2.3v.4l.2.3.2.4.2.2v.3l.3.4.2.2v.3l.3.3.2.4.2.3.2.3.2.3zm18.7-4.7l-.8.7 1-.3-.2 1.4v1.4l-.2 1.3-.2 1.2-.2 1-.3 1-.2 1-.3 1-.4.7-.4.8-.4.7-.6.6-.5.5-.5.4-.7.3-.6.3h-.7l-.8.2h-.7l-.8-.2-.8-.2-.8-.2-1-.4-.7-.5-1-.7-1-.6-.8-.8-1-1-1-1-1-1-.8-1-1-1.3.8-.6 1 1.3 1 1 .8 1 1 1 1 .8.7 1 1 .5.7.6.8.5.8.4.7.2h.7l.7.3h1.4l.6-.2.4-.2.6-.2.4-.3.5-.5.4-.5.4-.6.4-.7.3-.8.3-.8.3-1 .4-1 .2-1 .2-1.2v-1.2l.2-1.3v-1.3l1-.4zm-1 .4V242l1 1-1 .4zm27.3-3.2l-1 .4 1-.2-.2 1.6v1.5l-.4 1.3-.4 1.3-.4 1.2-.4 1.2-.5 1-.7 1-.6 1-.6.7-.6.7-.8.6-.7.5-1 .4h-.8l-1 .3h-2.8l-1-.3-1-.4-1.2-.4-1-.6-1.2-.6-1.2-.8-1-.8-1.3-1-1.2-1-1.3-1.2-1.2-1.3-1.3-1.5-1.3-1.5.7-.7 1.2 1.5 1.3 1.4 1.2 1.2 1.2 1.2 1 1 1.3 1 1 .8 1.2.7 1 .7 1 .6 1 .4 1 .3 1 .2h1l.8.2h.8l1-.2.7-.3.7-.4.7-.5.7-.4.6-.6.6-.7.5-.8.5-1 .4-1 .5-1 .2-1.2.4-1.3.3-1.3v-1.5l.3-1.6h1zm-1 0l.2-1.5.8 1.5h-1zm31.8-1.8l-.8.3h1v1l-.3 1.4-.4 1.2-.4 1.2-.5 1-.6 1.3-.6 1-.7 1-.8 1-1 1-1 .7-1 .7-1 .7-1 .6-1.2.5-1.2.4-1.2.3h-3.8l-1.3-.2-1.3-.4-1.4-.4-1.3-.7-1.3-1-1.3-.8-1.3-1.2-1.3-1.2-1-1.5-1.3-1.6-1.2-1.8-1-2 .8-.5 1 2 1.2 1.6 1.2 1.7 1.2 1.4 1 1.3 1.3 1 1.2 1 1.3.7 1.2.6 1.2.5 1.3.5 1.2.2h3.6l1.2-.3 1-.3 1-.3 1.2-.5 1-.6 1-.7.7-.8 1-1 .6-.7.6-1 .6-1 .6-1 .4-1 .4-1.2.3-1V239h1zm35.6-3l-1 .2h1l-.2 2-.4 2-.6 1.6-.6 1.7-.8 1.6-1 1.3-1 1.3-1 1-1.3 1-1.3 1-1.3.8-1.3.6-1.5.6-1.5.3-1.5.2h-1.5l-1.6.2-1.4-.2-1.6-.2-1.5-.3-1.5-.5-1.4-.6-1.4-.7-1.4-1-1.3-1-1.2-1-1-1.2-1-1.4-1-1.4-1-1.6-.6-1.6-.5-1.8 1-.3.5 1.7.6 1.6.8 1.5 1 1.3 1 1.3 1 1.2 1.2 1 1.2 1 1.3.8 1.3.7 1.4.5 1.4.5 1.4.3 1.5.2h4.4l1.5-.3 1.4-.4 1.3-.5 1.3-.5 1.3-.7 1-1 1.2-.8 1-1 1-1.3 1-1.4.6-1.4.7-1.7.5-1.7.4-1.8.2-2h1zm35.5 3l-1 .2h1l-.4 1.8-.7 1.6-1 1.6-1 1.4-1 1.4-1 1.2-1.3 1-1.2 1-1.4 1-1.3.6-1.5.6-1.4.5-1.6.3-1.5.2-1.5.2h-1.6l-1.5-.2-1.4-.3-1.5-.4-1.4-.6-1.4-.6-1.3-.8-1.4-1-1.2-1-1-1-1.2-1.3-1-1.4-.7-1.7-.7-1.7-.5-1.7-.4-2-.4-2 1-.2.3 2 .3 1.8.5 1.7.6 1.6.8 1.3 1 1.4.8 1.2 1 1 1.2 1 1.2.8 1.3.7 1.3.6 1.4.6 1.4.3 1.4.2h4.5l1.4-.2 1.5-.3 1.4-.5 1.3-.5 1.3-.7 1.3-.8 1-1 1.2-1 1-1 1-1.4 1-1.3.7-1.5.6-1.6.5-1.7h1zm31 2h-1l1 .2-1.2 2-1.2 1.7-1.2 1.6-1.2 1.5-1.3 1.2-1.4 1.2-1.3 1-1.3.7-1.3.6-1.3.5-1.4.5-1.3.2H530l-1.3-.3-1.2-.3-1.2-.4-1-.5-1-.6-1-.7-1-.8-1-1-.7-1-.8-1-.6-1-.6-1-.5-1.2-.3-1.2-.3-1.2-.2-1.3v-1l1-.2v1.2l.2 1.2.3 1 .4 1.2.5 1 .6 1 .7 1 .7 1 .7 1 1 .8.8.7 1 .6 1 .6 1 .5 1 .4 1 .4 1.3.2 1.2.2h2.4l1.2-.3 1.2-.4 1.3-.4 1.2-.6 1.3-.7 1.2-1 1.2-1 1.2-1.2 1.2-1.3 1.2-1.6 1-1.6 1.2-2 1 .2zm-1-.2l.8-1.5.2 1.6h-1zm27.2 3.2h-1l1 .3-1.4 1.5-1.3 1.4-1.2 1.2-1.3 1-1.2 1.2-1.2 1-1.2.8-1 .8-1.2.6-1 .6-1.2.4-1 .4-1 .2-1 .2h-2l-1-.3h-.8l-.8-.5-.8-.5-.7-.6-.8-.7-.6-.8-.6-1-.6-1-.5-1-.5-1-.4-1.4-.3-1.3-.3-1.4-.2-1.6-.3-1.6 1-.2.2 1.6.2 1.5.3 1.3.3 1.3.4 1.2.4 1 .5 1 .5 1 .6.8.6.7.6.6.6.5.7.6.6.3.8.2h.8l.8.2h.8l1-.2 1-.2.8-.3 1-.4 1-.6 1.2-.6 1-.6 1.2-.8 1.2-1 1-1 1.4-1.2 1.2-1.2 1.3-1.4 1.3-1.5 1 .4zm-1-.4l1-1v1.4l-1-.4zm19 4.8l.7.7-1 1.2-1 1-1 1-1 1-1 1-.8.7-1 .6-.8.6-.8.4-1 .4-.7.3-1 .3-.7.2h-1.5l-.7-.2-.6-.3-.6-.3-.6-.4-.6-.5-.5-.6-.4-.7-.4-.8-.4-.8-.3-1-.3-1-.3-1-.3-1-.2-1.3V246l-.2-1.3v-1.3h1v2.6l.2 1.3.2 1 .2 1.2v1l.4 1 .4.7.3.8.5.6.4.5.4.5.4.5.5.3.5.3.6.3h.6l.6.2h.6l.7-.2h.6l.7-.4.8-.5 1-.4.7-.5 1-.6.7-1 1-.7.8-1 1-1 1-1 1-1.2zm4-10.7v-1l.6.4v2.9l-.2.4v.7l-.2.4v.5l-.2.4v.3l-.2.4v.3l-.3.4v.4l-.2.4-.2.4v.3l-.3.3-.2.4-.2.3-.2.4-.2.3-.2.4-.2.4-.2.3-.2.4-.2.4-.3.3-1-.6.3-.2.3-.3.2-.3.2-.4.2-.3.2-.3.2-.3v-.5l.3-.3v-.3l.2-.5.2-.3v-.4l.3-.3v-.4l.2-.3v-.7l.2-.4v-.3l.2-.4v-.5l.2-.4v-1l.2-.4v-1.8l.5.5zm0-1h.6v.4l-.5-.5zm0 0v1-1zm0 1z"/>
+      <path fill="#edb92e" d="M482 263h-22.5l-1.3.2H451l-1.3.2h-4.4l-1.2.2h-2.3l-6.3.4h-.3c-3 0-6 .3-9 .4h-.8l-18.2 1.3h-.2a965 965 0 00-26.4 2.4c-5 .6-6-5.3 0-6a960.5 960.5 0 0126.3-2.2 983.7 983.7 0 0137-2.2h2.4l15.4-.5h16.8a1082.3 1082.3 0 017.2 0h16.6l15.2.5h3.3a984 984 0 0137 2.3 960.5 960.5 0 0126.2 2c5.8.7 5 6.6 0 6a965.6 965.6 0 00-26.4-2.3h-.3a978.4 978.4 0 00-18.3-1.2h-.6l-9.2-.5h-.3c-2.2 0-4.3-.2-6.4-.3h-2.3l-1.2-.2h-4.5l-1.3-.2H506l-1-.2h-23z"/>
+      <path fill="#0c4076" d="M482 105a17.3 17.3 0 01.1 34.7c-9.3 0-17-7.8-17-17.3 0-9.6 7.7-17.3 17-17.3z"/>
+      <path fill="#edb92e" d="M485.3 85c1.6-.2 3-1.5 3-3.2 0-1.7-1.4-3-3-3.2 0-1.7-1.4-3-3.2-3a3 3 0 00-3 3c-1.6 0-3 1.5-3 3.2a3 3 0 003 3v6.5h-5.5a3 3 0 00-3-3c-1.8 0-3 1.3-3.2 3a3 3 0 00-3 3c0 1.8 1.3 3.2 3 3.2a3 3 0 003 3c1.8 0 3.2-1.2 3.2-3h5.5V119h6.3V97.6h5.5a3 3 0 003 3c1.8 0 3-1.4 3.2-3 1.7 0 3-1.5 3-3.2a3 3 0 00-3-3c0-1.8-1.4-3.2-3-3.2-2 0-3.2 1.4-3.2 3h-5.5V85z"/>
+      <path fill="#21231e" d="M487.8 81.8h1v1h-.2v.5h-.2v.3l-.2.3-.2.2v.2h-.2l-.2.2-.2.2h-.2v.2h-.2l-.2.2h-.2v.2h-.8l-.2.2h-.3v-1h.7V84h.2l.3-.2h.2v-.2h.2v-.2l.2-.2V83h.2l.2-.2v-.4l.2-.2v-.4zm-3-3.2h1l-.5-.5h.2l.3.2h.4l.3.2h.3l.2.2.2.2h.2v.2h.2l.2.2.2.3.2.2v.2h.2v.4h.2v.5l.2.2v.7h-1V81h-.2v-.4l-.2-.2V80h-.4v-.2h-.2v-.2h-.2l-.3-.2h-.2V79h-.8l-.4-.6zm.4.5h-.4v-.4l.4.5zm-3-3v-1h.7l.2.2h.2l.3.2h.2l.2.2.2.2h.2v.3l.2.2.2.3.2.2v.2h.2v.4h.2v.8h.2v.3h-1V78h-.2v-.5h-.2v-.2l-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2l-.2-.2h-.4l-.3-.2h-.4zm-3.2 3v-1l-.5.6v-.8l.2-.2V77h.2v-.6h.2v-.2l.2-.2.2-.2.2-.2h.2v-.2h.3v-.2h.3l.3-.2h.4l.2-.2h.4v1h-.5v.2h-.3l-.2.2h-.2v.2h-.2v.2h-.2v.2l-.2.2v.2h-.2v.5h-.2v1l-.6.5zm.5-.4v.5h-.5l.5-.4zm-3 3.2h-1V81l.2-.3v-.5l.2-.2v-.2l.2-.2.2-.3.2-.2h.2l.2-.2h.2v-.2h.3v-.2h.5l.3-.2h.7v1h-.7l-.2.2h-.2l-.2.2-.2.2-.2.2-.2.2v.2h-.2v.4l-.2.2v.8zm3 3h-1l.5.6h-1V85h-.7v-.2h-.3v-.2h-.2l-.2-.2-.2-.2V84h-.2v-.2l-.2-.2-.2-.3v-.5h-.2v-1h1v1h.2v.4h.2v.2h.2v.2l.2.2h.2v.2h.2l.3.2h.7v.2h.2l.5.5zm-.5-.4h.5v.5l-.5-.6zm-.5 7V85h1v6.3l-.5.5-.5-.5zm1 0v.4h-.5l.5-.5zm-6-.6h5.5v1h-5.5l-.5-.5.5-.5zm0 1h-.5v-.5l.5.5zm-3-3v-1h1.2v.2h.3l.3.2.3.2.3.2v.2l.2.2.2.3.2.3.2.3v.4l.2.2v.8h-1v-.7l-.2-.2V90h-.2v-.2h-.2v-.2l-.2-.2-.2-.2h-.2V89h-.4l-.2-.2h-.8zm-3.2 3v-1l-.5.4v-.8l.2-.3V90l.2-.3v-.2h.2v-.2l.2-.2h.2v-.3h.2l.2-.2.2-.2h.2V88h.7v-.2h1.1v1h-1l-.2.2h-.2v.2h-.2v.2h-.2l-.2.2v.2h-.2v.4h-.2v.8l-.2.2v.3l-.5.5zm.5-.5v.5h-.5l.5-.5zm-3 3h-1V93h.2v-.2h.2v-.3l.2-.3.3-.3v-.2h.2v-.2h.2v-.2h.2l.2-.2h.2V91h.7l.2-.2h.8v1h-.7l-.2.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2v.2h-.2v.5h-.2v.7zm3 3.2h-1l.5.5h-1v-.2h-.5l-.2-.2h-.2v-.2h-.2l-.2-.2-.2-.2v-.2h-.3v-.2l-.2-.2V96h-.2v-.4l-.2-.3v-.8h1v.9h.2v.2l.2.3h.2v.2h.2v.2h.2v.2h.2l.2.2h.5v.2h.4l.6.5zm-.5-.5h.5v.5l-.5-.5zm3 3v1h-1l-.2-.2h-.3v-.2h-.3v-.2h-.2l-.2-.2-.2-.3v-.2h-.2v-.3h-.2V99h-.2v-.5l-.2-.2V98h-.2v-.5h1v.7h.2v.4h.2v.2l.2.2v.2h.2v.2h.2v.2h.2l.2.2h.2l.3.2h.6zm3.2-3v1l.5-.4v.8l-.2.2v.3h-.2v.3l-.2.3-.2.2-.2.2-.2.2-.3.2-.2.2h-.2l-.2.2h-.2l-.3.2h-.8v-1h.9v-.2h.2l.2-.2h.2v-.2h.2l.2-.2V99h.2v-.2l.2-.3v-.2l.2-.2v-.4l.5-.5zm-.5.6V97h.5l-.5.6zm6 .5h-5.5v-1h5.5l.5.6-.5.5zm0-1h.5v.6l-.5-.5zm-.5 22V97.6h1V119l-.5.5-.5-.5zm.5.5h-.5v-.5l.5.5zm6.3 0H479v-1h6.3l.5.5-.5.5zm.5-.5v.5h-.5l.5-.5zm0-21.4V119h-1V97.6l.5-.5.5.6zm-1 0V97h.5l-.5.6zm6 .5h-5.5v-1h5.5l.5.6-.5.5zm0-1h.4v.6l-.4-.5zm3 3v1h-1l-.3-.2h-.2l-.3-.2-.2-.2h-.2v-.2h-.2l-.2-.2v-.2h-.2v-.2l-.2-.2V99h-.2v-.2h-.2v-1l-.2-.2h1v.4l.2.2v.2l.2.3v.2h.2v.2h.2l.2.2v.2h.2l.3.2h.2v.2h1.1zm3.2-3v1l.5-.5v.7h-.2v.5l-.2.3v.4h-.2v.3h-.2v.2h-.2v.2h-.3v.2l-.3.2h-.3l-.2.2h-.3l-.2.2h-.8v-1h.9v-.2h.2v-.2h.2l.2-.2.2-.2V99h.2v-.2l.2-.2v-.2l.2-.2v-.6l.6-.6zm-.5.5V97h.5l-.5.5zm3-3h1v.9l-.2.3v.2h-.2v.6h-.2l-.2.2v.2h-.2v.2h-.3v.2h-.2v.2h-.3l-.3.2h-.2l-.3.2h-.7v-1h.8V97h.2v-.2h.2l.2-.2.2-.2h.2V96l.2-.3v-.2h.2v-.7l.2-.3zm-3-3.2h1l-.5-.6h.7l.2.2h.4l.3.2.3.2.3.2.2.2.2.3.2.2v.5h.2v.3h.2v.7l.2.3v.4h-1v-.6h-.2v-.4l-.2-.2-.2-.2v-.2h-.2l-.2-.2-.2-.2h-.2V92h-.5l-.2-.2h-.5l-.5-.5zm.5.5h-.5v-.5l.5.5zm-3-3v-1h1.1l.2.2h.4v.2h.3v.2l.3.2.2.3h.2v.3h.2v.4l.2.2v.4h.2v.7h-1v-.8h-.2V90l-.2-.2-.2-.2-.2-.2-.2-.2h-.2V89h-.5v-.2h-.6zm-3.2 3v-1l-.6.5v-.9l.2-.2V90l.2-.3.2-.3.2-.3h.2v-.2l.2-.2h.2v-.2h.2l.2-.2h.3l.2-.2h.3l.2-.2h1v1h-1l-.3.2h-.2v.2h-.2l-.2.2v.2l-.2.2-.2.2v.2l-.2.2v.7l-.7.6zm.5-.5v.5h-.6l.6-.5zm-6-.5h5.5v1h-5.5l-.5-.5.5-.5zm0 1h-.5v-.5l.5.5zm.5-7v6.5h-1V85l.4-.6.6.5zm-1 0v-.4h.4l-.4.5zm.5 0v-.4.5zm-.5 0v-.4h.4l-.4.5z"/>
+      <path fill="#21231e" d="M499.8 122.4h-1v-1.7l-.2-1v-.7l-.3-.8-.2-.8-.2-.8-.3-.8-.3-.7-.4-.6-.4-.7-.4-.7-.5-.7-.5-.6-.5-.6-.6-.5-.7-.6-.6-.6-.6-.5-.5-.6-.7-.4-.7-.4-.6-.4-.8-.3-.7-.4-1-.3-.7-.2h-.8l-.8-.2h-.8l-1-.2h-1v-1h2l.8.2h1l.8.3.8.4.8.2.8.4.8.3.8.4.7.4.7.6.7.5.7.6.6.6.6.6.6.6.6.6.5.7.5.7.5.7.4 1 .4.6.4.8.3.8.3 1 .3.7.2.8v1l.2.7v2zM482 140.2v-1h1.8l1-.2.7-.2.8-.2.8-.2 1-.3.6-.2.8-.3.7-.4.8-.3.7-.4.6-.5.7-.5.6-.5.6-.6.5-.5.5-.6.5-.6.5-.6.4-.7.4-.6.4-.8.3-.7.3-1 .3-.6.3-.8.2-.8v-1l.2-.7v-1.6h1v2.8l-.2.8-.2.8-.3 1-.3.7-.3.8-.3.8-.3 1-.4.6-.5.7-.5.7-.5.7-.6.6-.6.7-.6.6-.6.5-.7.6-.7.5-.7.6-.7.4-.8.4-.8.4-.8.3-.8.4-.8.2-1 .2-.8.2h-.8l-1 .2h-1zm-17.5-17.8h1v1.8l.2.7v.8l.3.8.2.8.3.7.3 1 .3.6.5.8.4.7.3.8.5.6.5.6.5.7.6.5.5.6.5.5.7.5.6.5.7.4.7.4.7.5.7.3.7.3.8.4.8.2.8.2.8.2h1.8l.7.2v1h-1.8l-.7-.2-1-.2-.8-.2-.8-.2-1-.3-.7-.2-.8-.4-.8-.4-.7-.4-.7-.5-.7-.4-.7-.5-.7-.4-.7-.6-.5-.7-.5-.6-.5-.7-.5-.7-.5-.7-.4-.7-.4-1-.3-.7-.5-.8-.2-.8-.3-1-.2-.7v-1l-.2-.8v-1.8zm17.6-17.8v1h-1.7l-.7.2h-.8l-.8.3-.8.3-.8.3-.7.3-.8.2-.8.4-.7.4-.7.4-.6.5-.7.4-.6.5-.6.5-.6.6-.5.7-.5.6-.5.7-.4.7-.5.7-.4.7-.2.8-.3.8-.3.8-.2.8-.2.8v.8l-.2 1v1.7h-1v-2.8l.2-1 .2-.8.3-1 .2-.8.4-.8.2-.8.4-.7.4-1 .5-.6.5-.7.5-.7.6-.6.6-.6.7-.6.6-.6.6-.5.7-.4.7-.5.7-.3.8-.4.8-.3.8-.4 1-.2.7-.3h1l.8-.2h.8l1-.2h.8z"/>
+      <path fill="#edb92e" d="M499 118.8a17.6 17.6 0 010 6c-5.5-.2-11.2-.3-17-.3-5.5 0-11.2 0-17 .3a17.5 17.5 0 01.3-6l16.8-.3c5.8 0 11.4.2 17 .3z"/>
+      <path fill="#21231e" d="M499.8 122.4h-1V120h-.2v-1l1-.2v1.7l.2.2v1.6zm-.7 3l.2-1-.6.3v-.8l.2-.2v-1.1h1v2.2h-.2l-.5.5zm.6-.5v.3h-.5l.6-.4zm-17.5 0v-1H494l.4.2h4.8v1h-10.6l-.5-.2h-6zm-17.4 0l1-.3-.5-.4h4.7l.4-.2H482v1h-11l-.5.2H465l-.5-.3zm.6.3h-.5v-.4l.5.3zm-.7-3h1v2.4l-1 .3v-2.6zm.8-4v1l.5-.3v.8l-.2.2v2.5h-1v-3h.2v-.4l.5-.5zm-.5.5v-.4h.5l-.5.4zm17.3-.8v1h-9.1l-.5.2H466l-.7.2v-1h2.5l.5-.2h9l.5-.2h4.2zm17.5.8l-1 .2.4.4h-3.6l-.5-.2h-10.3l-.5-.2h-2.1v-1h10l.5.2h6.1l.5.6zm-.5-.5h.4v.5l-.4-.5z"/>
+      <path fill="#edb92e" d="M468.8 133.2c-3.6-2.3-4.3 1.2-4.2 4.7.4 13.2 3 25.8-.6 42-1.4 6.4-3.7 10-1.5 11.3 5.7 3.2 8.3 6 7.4 7.7 1.5 3.2 5.7 2.6 12 1.6 6.6 1 10.7 1.6 12.4-1.6-1-1.6 1.7-4.5 7.4-7.7 2.2-1.2 0-5-1.5-11.3-3.5-16.2-1-28.8-.7-42 0-3.6-.5-7-4-4.8a28.6 28.6 0 01-26.8 0z"/>
+      <path fill="#21231e" d="M465 138h-1v-1.5l.2-.3v-1.6l.2-.3v-.3h.2v-.4l.2-.2v-.3h.2l.2-.3.2-.2.2-.2h.2l.2-.2h1.8l.4.2.4.2h.3l.4.3-.4 1-.4-.3h-.2l-.3-.2h-.3l-.2-.2h-1.2v.2h-.2v.2l-.2.2v.2l-.2.2v.4l-.2.3v.4l-.2.2v2.5zm-.5 42l-1-.2.3-1.5.3-1.4.3-1.6.2-1.4.2-1.5.2-1.4v-2.5l.2-1.4V154l-.2-1.2v-2.5l-.2-1.2V148l-.2-1.2v-1.2l-.2-1.3V142l-.2-1.3V138h1v3.5l.2 1.2v2.6l.2 1.2v1.3l.2 1.2v2.5l.2 1.2v1.3l.2 1.3v13.3l-.2 1.4v1.4l-.3 1.5-.2 1.4-.2 1.6-.2 1.4-.2 1.5-.3 1.6zm-1.8 11l-.4.8-.3-.2-.2-.2-.2-.2-.2-.2v-.2l-.2-.3V188l.2-.3v-.4l.2-.3v-.4l.2-.4v-.5l.3-.4.2-.4v-.5l.3-.3v-.5l.3-.5v-.6l.3-.4.2-.6v-.6l.3-.6 1 .3-.2.7v.6l-.3.5v.6l-.2.5-.2.4v.6l-.3.4v.5l-.3.4v.4l-.2.4v.4l-.2.4v.4l-.2.3v.4l-.2.4v1.9l.2.2.2.2zm7.6 7.8l-1 .4v-.4h.2v-1l-.2-.2v-.2l-.2-.2v-.4l-.3-.2-.2-.2-.2-.3h-.3l-.2-.4-.3-.2-.3-.3h-.3l-.4-.4-.4-.3-.3-.2-.5-.2-.4-.3-.3-.3-.5-.3-.5-.3-.4-.3-.5-.3-.6-.2.5-1 .6.4.5.3.5.3.4.3.5.4.4.3.5.3.5.2.3.3.4.3.4.3.3.4.2.2.3.3.3.2.2.2.2.3.3.2.2.2v.2l.3.3v.2l.3.2v.5l.2.2v1.1l-.2.3v-.5zm-1 .4v-.4.4zm13 1l-.2 1h.2-1.2l-.5.2h-1.2l-.6.2h-1l-.5.2h-4.7l-.4-.2h-.3l-.3-.2-.3-.2-.3-.2-.2-.2-.3-.2-.2-.2-.3-.3h-.2l-.2-.4-.2-.4 1-.4v.2l.2.3.2.2.2.2.2.2h.2l.2.2h.2l.3.2h.3l.3.2h.3l.2.2h4.3l.5-.2h1l.6-.2h1.1l.5-.2h.8zm-.2 0h.2zm12-1l1-.4v.4l-.3.4-.2.3h-.2l-.3.4-.2.2-.3.2-.3.2-.3.2-.4.2h-.3l-.3.2h-.4l-.4.2H486l-.6-.2h-.5l-.6-.2h-1.2l-.5-.2h-.6l.2-1h1.8l.5.2h.6l.6.2h1.1l.5.2h4.2l.3-.2h.3l.2-.2h.3l.2-.2.2-.2.3-.3.2-.2.2-.2v-.3l.3-.2v.5zm1-.4v.4-.4zm6.5-8l.5 1-.5.3-.5.4-.5.3-.4.2-.4.2-.4.3-.4.3-.4.3-.4.3-.3.3-.3.3h-.3l-.2.4-.3.2-.3.3h-.2l-.2.4-.2.2-.2.2v.2l-.3.2v.7h-.2v1.2l-.8.5v-.2l-.2-.2v-1.3l.2-.2v-.3l.3-.3v-.3l.3-.2.2-.3.2-.3.3-.3.2-.2.3-.3.3-.4.4-.2.3-.3.4-.2.4-.3.4-.3.4-.2.4-.3.5-.3.5-.3.5-.2.5-.3.5-.3.5-.3zm-1.7-10.7l1-.2v.6l.3.6.2.6.2.5v.7l.3.5v.5l.2.4v.6l.2.5.2.5v.4l.2.3v.4l.2.4v.5l.2.3v.7l.2.3v1.8l-.2.3v.2l-.3.3h-.2l-.2.3-.3.2-.5-1h.2l.2-.2v-.4h.2v-2.5l-.2-.3v-.3l-.2-.3v-.4l-.2-.4v-.4l-.2-.4v-.4l-.3-.5v-.6l-.2-.4v-.6l-.3-.5v-.6l-.3-.6v-.5l-.2-.6-.2-.6zm-.7-42h1v5.9l-.2 1.4v1.2l-.2 1.2v1.3l-.2 1.3v2.5l-.2 1.2v2.6l-.2 1.2v9.3l.2 1.4v1.4l.2 1.3.2 1.5.2 1.5.2 1.4.2 1.5.3 1.3.3 1.5-1 .3-.3-1.5-.3-1.5-.2-1.4-.2-1.5-.2-1.3-.2-1.5v-1.4l-.2-1.4V167l-.2-1.3v-10.3l.2-1.3v-2.5l.2-1.3V149l.2-1.2v-1.3l.2-1.2V143l.2-1.2V138zm-3.3-4.4l-.5-1h.4l.3-.2.2-.2h.3l.4-.2h1.2l.3.2h.2l.2.3v.2l.2.2h.2v.4l.2.2v.3h.2v.7l.2.3v1.5l.2.3v1.1h-1v-2.4l-.2-.3v-.8l-.2-.3v-.4l-.2-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-1.1l-.2.2h-.3l-.3.2-.3.2zm-27 0l.4-1 .8.5.7.5.7.4.7.2.7.3.8.2.8.3 1 .2.7.2 1 .2h.7l1 .2h.8l1 .2h4.6l.7-.2h1l.8-.3h.8l1-.3.7-.2.8-.3.8-.2.8-.3.7-.4.8-.3.7-.4.7-.3.5 1-.7.3-.7.4-.8.4-.7.3-1 .4-.7.3-.7.3-1 .2-.7.2-1 .2h-.8l-1 .2h-1l-.8.2h-4.6l-1-.2h-.8l-1-.2-.8-.2-1-.2-.7-.2-.8-.3-.8-.3-.8-.3-.8-.2-.8-.4-.7-.4-.7-.4z"/>
+      <g id="b">
+        <path fill="#edb92e" d="M363 212c-2-4-.3-9.8.3-11 .3-.8-.6-2.2-1-2.8-13-18.3-13.2-20-4.3-26.8 8-6 26.2-12 39.2-16.2 2.7-2 4.4-5 6.8-7.2-25 1.8-52 12-65.5 23.8-7.2 6.2 1.5 19 12.2 38 6.7 5 9.8 7 12.3 2.3z"/>
+        <path fill="#21231e" d="M362.8 200.7l1 .4v.2l-.2.2v.3l-.2.3v.5l-.2.2v.6l-.2.4v.7l-.2.3v1.6l-.2.4v2.5l.2.4v.4l.2.4v.4l.2.4v.3l.3.4-1 .3v-.4l-.3-.5v-.4l-.2-.4v-.4l-.2-.5v-.8l-.2-.6v-2.9l.2-.4v-1.2l.2-.3v-.4l.2-.2v-.6l.2-.3v-.6l.2-.2v-.2l.2-.2zm-1-2.2l1-.6v.2h.2v.4h.2v.4h.2v.2l.2.2v.4h.2v1.2l-1-.3v-.6l-.2-.2v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2zm-4-27.5l.5 1-.8.5-.7.6-.7.6-.5.6-.6.5-.6.5-.5.6-.5.5-.3.4-.3.5-.3.5v.5l-.3.5v1.7l.2.6.2.8.2.7.4.8.4.8.4 1 .5 1 .6 1 .7 1 .7 1.3 1 1.2.7 1.3 1 1.4 1 1.5 1 1.5 1.3 1.7-.8.5-1.3-1.7-1-1.5-1-1.5-1-1.4-1-1.3-.8-1.2-.8-1.2-.7-1-.6-1-.7-1-.4-1-.6-1-.3-.7-.2-1-.2-.7v-.7l-.2-.7v-1.4l.2-.6.2-.6.2-.6.3-.6.4-.6.5-.5.5-.5.5-.5.6-.6.7-.5.7-.7.7-.6.7-.7zm39-16.2l.7.8h-.2l-1.2.5-1.2.5-1.2.4-1.4.3-1.3.4-1.4.5-1.4.4-1.3.5-1.5.5-1.4.5-1.3.5-1.3.5-1.4.5-1.4.5-1.3.5-1.4.5-1.4.5-1.3.6-1.3.6-1.3.5-1.2.7-1.2.5-1.2.6-1 .5-1.2.6-1 .4-1 .6-1 .6-1 .5-1 .7-.7.6-.7.6-.6-1 .8-.5 1-.6.8-.7 1-.6 1-.6 1-.4 1-.6 1.2-.6 1.2-.5 1-.7 1.4-.6 1.3-.5 1.3-.6 1.3-.5 1.2-.4 1.4-.5 1.3-.5 1.3-.5 1.4-.5 1.3-.5 1.4-.5 1.4-.5 1.4-.4 1.4-.5 1.3-.4 1.3-.4 1.3-.4 1.3-.5 1.2-.4 1.3-.5 1.3-.4 1.2-.3zm.7.8h-.2.2zm6.6-7v-1l.4.8-.2.2-.3.2-.3.3-.2.3-.2.2-.2.2v.3l-.3.2-.2.2-.2.2-.2.3-.3.3-.2.3-.2.2-.2.3v.3l-.3.2-.2.3-.2.2-.3.2-.2.3-.2.2-.2.2h-.2l-.3.4-.3.2-.2.2-.3.2-.2.2-.3.2-.2.2-.6-.8v-.2l.3-.2.3-.2.2-.2.2-.2.2-.2.3-.2.2-.2.2-.2v-.2l.3-.3.2-.2.2-.2.2-.2v-.2l.3-.2.2-.2.2-.3.2-.3v-.3l.3-.2.2-.2.2-.3.2-.2v-.2l.4-.3.2-.2.2-.2.2-.3.2-.2h.3l.2-.3.4.8zm0-1l1.4-.2-1 1-.4-1zM338.8 172l-.7-.8 1.5-1 1.4-1.2 1.4-1 1.5-1.2 1.5-1 1.7-1 1.7-1 1.7-1 2-1 1.8-1 2-1 2-1 2-.8 2-1 2.2-.7 2-.8 2.3-.8 2.3-1 2.2-.6 2.3-.7 2.3-.6 2.4-.5 2.3-.6 2.4-.7 2.4-.5 2.4-.4 2.4-.4 2.4-.4 2.3-.3 2.3-.3 2.4-.3 2.3-.2v1l-2.3.2-2.3.3-2.3.3-2.3.3-2.4.4-2.3.4-2.4.4-2.3.5-2.3.6-2.3.5-2.3.6-2.3.7-2.2.7-2.2.7-2.2.8-2.2.8-2.2.8-2 1-2 .7-2.2 1-2 1-2 1-1.8.8-1.8 1-1.8 1-1.7 1-1.6 1-1.5 1-1.6 1-1.5 1.2-1.4 1-1.2 1.2zm12.2 37.3l-.5.8-.2-.2-1-1.6-1-1.8-1-1.7-1-1.7-.8-1.7-1-1.6-.8-1.5-.8-1.5-1-1.5-.7-1.5-.8-1.4-.7-1.3-.7-1.4-.5-1.3-.6-1.3-.6-1.2-.4-1.2-.5-1.2-.3-1-.3-1-.4-1.2v-1l-.2-1v-2.8l.3-.8.3-.8.4-.7.5-.8.5-.7.6-.6.8.8-.6.5-.5.6-.4.7-.3.6-.3.7-.2.8v4.5l.4 1v1l.5 1 .4 1 .4 1.3.5 1.2.4 1.2.6 1.3.7 1.3.7 1.4.7 1.4 1 1.4.7 1.5 1 1.5.8 1.5 1 1.6.8 1.7 1 1.7 1 1.7 1 2 1 1.6h-.3zm-.5.8l-.2-.2.2.3zm12.5 1.3v1l.5-.2-.3.4-.2.4-.3.4-.3.3-.3.2-.2.3-.3.2-.3.2h-.3l-.5.2h-2.1l-.4-.2-.5-.2-.4-.2-.3-.2-.5-.2-.4-.3-.5-.3-.5-.3-.4-.4-.6-.3-.5-.3-.5-.4-.6-.4-.5-.4-.6-.4-.5-.5.5-.8.7.4.5.3.6.5.6.3.5.5.4.4.5.2.4.3.4.3.5.3.4.3.4.2.5.2.4.2h.5l.3.2h1.5l.2-.2h.3l.2-.3.2-.2.3-.2.2-.3v-.3l.4-.4.2-.4.4-.4zm-.4.3v-.4h.4l-.4.3zm.4.6v-1l.5.3-.5.6zm.5-.7l.3.6h-.8l.5-.7z"/>
+        <path fill="#edb92e" d="M359 213.6a34 34 0 01-1-4.7c-.7-2.8-.4-5.7.5-8.3-3-4.2-6.4-8.8-8.8-13.3-1.7-3.3-3-7-2-10.6 1-4 4.5-6.6 7.6-9 3.7-2.8 8.6-5.3 13.6-7.5 11-4.6 20-7 26.5-7l-4.2 3.8c-12 4-26.4 9.2-33.3 14.5-9 6.8-8.6 8.4 4.3 26.7.4.6 1.3 2 1 2.7-.6 1.2-1.8 7.2 0 11.4-1 2-2.6 1-4.2 1.2z"/>
+        <path fill="#21231e" d="M357.4 209l1-.2v.7l.2.2v.7h.2v.8l.2.3v.3l.2.3v.7h.2v.6h.2l-1 .4v-.3l-.2-.3v-.2l-.2-.3v-.5l-.2-.3v-.6h-.2v-.5l-.2-.3v-.7l-.2-.3v-.2zm1-.2zm-.4-7.8l1-.6v.5l-.2.4v.2l-.2.2v1l-.2.2v.8l-.2.2v4.7l.2.3-1 .2v-.6l-.2-.2V203h.2v-1l.2-.2v-.5l.2-.2v-.2l.2-.3v.5zm1-.6v.5-.6zm-9.7-12.8l1-.5v.6l.3.4.3.4v.4l.4.5.2.4.3.4v.5l.4.4.3.4.2.4.2.4.3.4.2.4.3.5.3.4.3.3.3.4.2.4.2.5.3.5.3.4.3.4.3.4.3.4.2.4.3.4.2.4.3.4.3.4.3.4.3.4-1 .6-.2-.4-.3-.4-.3-.4-.3-.4-.4-.4-.3-.4-.2-.4-.2-.4-.3-.4-.3-.4-.3-.5-.4-.4-.3-.3-.3-.4-.2-.4-.3-.5-.3-.5-.3-.4-.4-.4-.3-.4-.2-.5-.2-.4-.3-.5-.2-.4-.3-.4-.3-.4-.2-.4-.3-.5-.2-.4-.2-.5-.3-.5-.2-.4zm-2-11l1 .4-.2.3v4.1l.2.4v.3l.2.3v.7l.3.3v.4l.2.4v.6l.3.3v.3l.3.3v.2l.3.3v.3l.2.3-1 .6v-.3l-.2-.3-.2-.3v-.3l-.3-.4v-.3l-.3-.3v-.3l-.3-.3-.2-.3v-.3l-.2-.2v-.4l-.2-.3v-.3l-.2-.3v-.7l-.2-.4V180l-.2-.4V178l.2-.2v-.7l.2-.3zm7.7-9.2l.6.8-.3.2-.3.3-.3.2h-.3l-.3.3-.2.3-.2.2-.3.3-.3.3-.3.2-.3.3-.2.2-.3.3-.4.3-.2.2-.3.3v.3l-.4.3-.2.3-.2.2-.3.3-.3.3-.2.3-.2.4v.3l-.3.3-.2.3v.3l-.3.3v.3l-.2.3v.4l-1-.3v-.4l.2-.4v-.4l.2-.4.2-.4v-.3l.3-.4.2-.2.2-.3.2-.3v-.3l.4-.5.2-.3.2-.2.3-.3.4-.3.2-.3.3-.2.2-.2.3-.3.2-.3.3-.2.3-.3.3-.2.3-.3.2-.2.3-.2.3-.3.3-.2h.4l.3-.4.3-.2zm13.7-7.5l.4.8-.4.2-.4.2-.5.2-.5.2-.4.2-.5.2-.4.3-.6.2-.5.2-.5.2h-.5l-.4.3-.5.3-.3.2-.4.2-.5.3-.4.2-.4.2-.4.3-.5.2-.3.2-.4.3-.4.2-.5.2-.4.2-.2.3-.4.2-.4.2-.4.2-.3.3-.4.3-.4.2-.6-.8.3-.3h.4l.4-.4.4-.3.4-.2.4-.2.4-.2.4-.3.4-.2.4-.2.4-.2.4-.3.5-.2.5-.2.4-.2.4-.2.4-.3h.4l.5-.3.4-.3.6-.2.4-.2.5-.2.5-.3.4-.2.5-.2h.4l.4-.3.5-.2.5-.2.4-.2h.5zm0 0zm27-6.4l-.6-.7.5.7H394l-.6.2h-1.8l-.7.2h-.8l-.7.2h-.7l-.8.3-.8.2h-.7l-.8.2-.8.2-1 .2-.8.2-.8.3-1 .3-.8.3-1 .3-.8.2-1 .3-.8.3-1 .3-1 .5-1 .3-.8.4-1 .4-1 .4-1 .4-1 .4-.5-1 1-.4 1-.4 1-.4 1-.4 1-.3 1-.5 1-.3 1-.4 1-.3.8-.3 1-.3.8-.4 1-.2.8-.3h1l.8-.4.8-.2.8-.2.8-.2h.8l.8-.3.8-.2h.7l.7-.2h.8l.7-.2h1.4l.5-.2h1.9l.4.8zm-.3-1h1.4l-1 1-.4-1zm-4.4 4l4-3.7.8.6-4 3.8-.3.2-.5-1zm.7.8l-.2.2.2-.2zM358.3 172l-.6-1 .7-.5.7-.5 1-.5.7-.5.8-.5 1-.5.8-.4 1-.5 1-.4.8-.5 1.2-.4 1-.5 1-.3 1-.5 1.2-.5 1-.4 1.3-.5 1-.4 1.2-.5 1-.5 1.3-.5 1-.4 1.3-.4 1.2-.5 1.2-.4 1.2-.4 1.2-.5 1-.4 1.3-.3 1.2-.4 1-.3 1.2-.4.3 1-1.2.3-1 .3-1.3.4-1 .4-1.3.5-1.2.4-1.2.3-1.2.4-1 .4-1.2.6-1.2.4-1 .4-1.3.5-1 .3-1.3.5-1 .4-1.2.5-1 .4-1 .6-1.2.5-1 .5-1 .5-1 .5-1 .5-.8.5-1 .4-.8.4-.8.5-.8.4-.7.5-.7.4-.7.5zm4.4 26l-.8.5-1.3-1.7-1-1.5-1-1.5-1-1.4-1-1.3-.8-1.2-.8-1.2-.7-1-.6-1-.7-1-.4-1-.5-1-.4-.7-.2-1-.2-.7v-.7l-.2-.7v-1.4l.2-.6.2-.6.2-.6.3-.6.4-.6.5-.5.5-.5.5-.5.6-.6.7-.5.7-.7.7-.6.7-.7.6 1-.8.5-.7.6-.7.6-.5.6-.6.5-.6.5-.5.6-.5.5-.3.4-.3.5-.3.5v.5l-.2.6v2.2l.3.8.3.7.4.8.4.8.4 1 .6 1 .5 1 .7 1 .7 1.3 1 1.2.7 1.3 1 1.4 1 1.5 1 1.5 1.3 1.7zm1 3l-1-.3v-1h-.2v-.2l-.2-.2v-.2h-.2v-.4l.7-.7.2.2v.4h.2v.2l.2.2v.2l.2.2v.4h.2v1.4zm.2 11.6l-1-.5v.6l-.2-.4-.2-.5v-.4l-.2-.4v-.6l-.2-.4v-.5l-.2-.4v-5.4l.2-.4v-.7l.2-.4v-.5l.2-.3v-.4l.2-.2 1 .3v.2l-.2.2v.6l-.2.2v.6l-.2.3v1.1l-.2.4v5.1l.2.4v.8l.3.4v.4l.2.4.2.4v.4zm0-.4v.4-.4zm-5 1v1-1h.2l.2-.2h1.4v.2h1.5l.2-.2h.2v-.2h.2v-.2l.2-.2.2-.3 1 .6-.2.2-.2.2v.2l-.2.2h-.2v.2l-.3.2h-.4l-.2.2h-.3v.2h-3v-1zm0 1v-1l.6.2-.5.7zm.6-.8l.2.7h-.7l.6-.6z"/>
+        <path fill="#edb92e" d="M468 132.2c.3-2.3 0-2-.3 1.6-.3-.7-.8-1-1.4-1-1 0-1.7 1.6-1.8 5.2l.2 2.8c-33-.7-52.7 4.3-57.7 14-4.2 7.8 3 21 13.6 36 1.3 1.8 1.2 1.6 0 3-1.8 2.3-3.8 6-2.3 9.2a24.3 24.3 0 01-21 1.5c-1-3-3.4-4.4-5.4-5.8-.5-.2-2-1-2-1.4l-10.2-31.6c-9.5-30.7 75.3-33.5 88.3-33.5z"/>
+        <path fill="#21231e" d="M467.3 134l1-.4-1 .2V132h.2v-1.2l.2-.2.6-.3.3.3v1.6h-1V131l.4.2h.6v-.2 1l-.2.2v1.8h-1zm1 0l-.2 1.6-.7-1.5h1zm-2-.7v-1h.7v.2h.4v.2h.2v.2h.2v.2h.2v.2h.2v.2l-1 .5v-.2h-.2v-.2h-.2v-.2h-.4zm0 0zM465 138h-1v-1.8l.2-.3v-.9l.2-.3v-.7h.2v-.3l.2-.3.2-.3.2-.2h.2v-.2h.2v-.2h.5v1h-.2v.2h-.2v.2l-.2.2v.3l-.2.3v.6l-.2.2v2l-.2.3v.4zm-1 0zm.7 3.3v-1l-.5.5v-2.3h-.2v-.4l1-.2v1.8l.2.2v1l-.5.5zm.5-.5v.5h-.5l.5-.5zM407.4 155l-1-.5.7-1 .7-.8.7-1 .8-.7 1-.8 1-.8 1-.8 1-.7 1.3-.7 1.2-.7 1.4-.6 1.6-.6 1.5-.5 1.7-.7 1.7-.5 1.8-.4 2-.5 1.8-.5 2-.3 2.2-.4 2.2-.3 2.2-.2 2.4-.3 2.4-.2 2.5-.2h2.5l2.7-.2h2.7l2.8-.2h9v1H453l-2.8.2h-2.6l-2.6.2-2.5.2-2.4.2-2.3.3-2.2.2-2.2.3-2 .4-2 .3-2 .4-1.8.4-1.8.4-1.7.5-1.6.5-1.5.6-1.5.5-1.3.5-1.3.7-1.2.6-1 .7-1 .7-1 .7-1 .7-.6.8-.7.8-.6.8-.6 1zm13.6 35.5l-.8.6-1-1.3-1-1.4-1-1.4-1-1.5-.8-1.3-.8-1.4-1-1.3-.7-1.3-.8-1.3-.8-1.4-.7-1.2-.7-1.3-.6-1-.6-1.3-.5-1.2-.5-1.2-.5-1.2-.4-1-.5-1-.3-1.2-.3-1-.3-1-.2-1.2v-1l-.2-1V158l.3-.8.3-1 .2-.7.3-.8 1 .5-.4.7-.2.7-.2.8-.2.8v4.5l.2 1 .3 1v1l.5 1 .3 1.2.4 1 .5 1.2.5 1 .5 1.2.6 1.2.6 1.2.6 1.3.7 1 .7 1.4.8 1.3.8 1.3.8 1.3 1 1.3.8 1.4 1 1.3.8 1.4 1 1.4 1 1.5zm0 3.8l-.8-.7.2-.3.2-.2h.2v-.2l.2-.2v-.4l-.2-.2v-.2h-.2v-.3h-.2v-.3h-.2l.8-.7.2.3.2.3v.2h.2v.4h.2v.2l.2.2v1l-.2.2v.2h-.2v.2l-.2.2-.2.2-.2.3zm-2.5 9l-.4-.8-.2.7v-.3l-.2-.5v-.3l-.2-.3v-3.5l.2-.3v-.3l.2-.4.2-.3v-.3l.2-.3.2-.3v-.3l.3-.2v-.3l.3-.2.2-.3v-.2l.3-.3.2-.2v-.3l.3-.2.2-.2.8.7-.2.2-.2.2v.2h-.3v.3l-.3.3-.2.2v.3l-.3.3v.3l-.2.2-.2.3v.7l-.2.2v.2l-.2.3v.6l-.2.4v2.7l.2.3.2.3-.3.6zm.3-.5v.4l-.3.2.3-.6zm-22 1.8l1-.3-.2-.3.6.2.7.3.5.2.6.2h.8l.6.2.6.2h.7l.6.2h5.7l.7-.2h.5l.7-.3h.6l.7-.2.6-.2.7-.2.7-.2.6-.2.6-.3.6-.3.6-.2.7-.4.6-.3.5 1-.6.2-.7.4-.6.4-.7.2-.6.3-.7.2-.6.2-.6.2-.7.2-.6.2h-.6l-.7.3h-.7l-.6.2h-.7l-.7.2h-5l-.7-.2h-.7l-.6-.3h-.7l-.7-.3-.6-.3-.7-.3-.6-.2-.8-.3-.3-.4zm.4.3l-.2-.2v-.2l.2.3zm-5.6-5.8l.6-1 .2.2.2.2h.2l.2.2.2.2h.2l.2.2v.2h.3v.3h.3l.2.3h.2l.2.3.3.3.2.2.2.2.2.2v.2l.3.2v.2l.3.2.2.2v.2l.3.3.2.2.2.2v.2l.3.3v.3l.2.3-1 .3-.2-.2v-.3h-.2v-.3l-.2-.3-.2-.2v-.2l-.2-.2-.2-.2v-.2l-.3-.2-.2-.2-.3-.3-.2-.2-.3-.3h-.2l-.2-.3v-.2l-.3-.2h-.2v-.3h-.3l-.2-.2h-.2l-.2-.2h-.2l-.2-.3h-.2l-.2-.2h-.2zm-2-1.7l.8-.3h.2v.2h.2l.2.2h.2v.2h.4v.2h.2l.2.2h.2l-.6 1-.2-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2zm-10.2-31.7l1-.3.2 1 .3 1 .2.8.3 1 .3 1 .3.8.4 1 .3 1 .3 1 .3 1 .3 1 .3.8.2 1 .4 1 .3 1 .2 1 .3 1 .3 1 .4 1 .3 1 .3 1 .3 1 .5 1 .3 1 .3 1 .5 1 .3 1 .3 1 .4 1.2.4 1 .3 1 .4 1.2-1 .3-.3-1-.2-1.2-.3-1-.4-1-.2-1-.3-1-.3-1.2-.4-1-.3-1-.3-1-.4-1-.3-1-.3-1-.3-1-.4-1-.4-1-.3-1-.4-1-.3-1-.3-.8-.3-1-.4-1-.3-1-.3-1-.3-.8-.3-1-.2-1-.3-1-.3-.8-.3-1-.4-.8-.2-1zm88.2-33.6h1l-.5.5h-5.4l-2.5.2h-2.8l-3 .2-3.3.2-3.5.2-3.7.3-3.8.3-4 .4-4 .5-4 .6-4.2.6-4 .7-4.2 1-4 .8-4 1-3.7 1-3.7 1.3-3.4 1.4-3.3 1.4-3 1.5-2.6 1.6-2.3 1.7-2 2-1.6 1.8-1.2 2.2-.8 2.2-.4 2.3v2.5l.7 2.7-1 .3-.6-2.8v-2.8l.3-2.6 1-2.4 1.2-2.2 1.8-2 2-2 2.5-2 2.7-1.6 3-1.5 3.3-1.6 3.5-1.3 3.6-1 4-1.2 3.8-1 4-1 4-.7 4.2-.6 4.2-.6 4-.6 4-.5 4-.4 4-.4 3.7-.4 3.5-.2 3.3-.2 3-.2h3l2.4-.2h5.4l-.6.4zm1 0v.5h-.5l.7-.5zm-.5 0h-.4.5zm.7 0v.5h-.6l.7-.5z"/>
+        <path fill="#fff" d="M405 190.2c3.5 0 6.4 2.8 6.4 6.4 0 3.5-3 6.4-6.4 6.4s-6.4-3-6.4-6.4c0-3.6 3-6.4 6.4-6.4z"/>
+        <path fill="#21231e" d="M412 196.6h-1a6 6 0 00-3.4-5.3 5.8 5.8 0 00-2.6-.6v-1c2.3 0 4.6 1.2 5.8 3.2a7 7 0 011 3.6zm-7 7v-1c2.2 0 4.3-1.4 5.2-3.4a6 6 0 00.7-2.6h1c0 2.3-1.4 4.6-3.4 6a7 7 0 01-3.6 1zm-7-7h1c0 2.2 1.4 4.3 3.4 5.3a5.8 5.8 0 002.6.5v1a7 7 0 01-5.8-3.3 7 7 0 01-1-3.6zm7-7v1a6 6 0 00-5.2 3.3 6 6 0 00-.7 2.6h-1c0-2.4 1.4-4.7 3.4-6a6.8 6.8 0 013.6-1z"/>
+        <path fill="#fff" d="M350.8 203.6c3.2 0 6 2.7 6 6s-2.8 6-6 6c-3.3 0-6-2.7-6-6s2.7-6 6-6z"/>
+        <path fill="#21231e" d="M357.2 209.6h-1c0-2-1-4-2.8-4.8a5.4 5.4 0 00-2.6-.7v-1a7 7 0 015.4 3 6.5 6.5 0 011 3.6zm-6.4 6.4v-1c2 0 4-1.2 4.8-3a5.5 5.5 0 00.6-2.4h1c0 2-1.2 4.3-3 5.4a6.4 6.4 0 01-3.4 1zm-6.5-6.4h1c0 2 1.2 4 3 4.8.8.4 1.6.6 2.5.6v1a6.6 6.6 0 01-5.5-3 6.5 6.5 0 01-1-3.4zm6.5-6.5v1c-2 0-4 1.3-5 3a5.5 5.5 0 00-.5 2.6h-1c0-2.2 1.2-4.4 3-5.5a6.4 6.4 0 013.5-1z"/>
+        <path fill="#fff" d="M345 192.7c3.4 0 6 2.7 6 6s-2.6 6-6 6c-3.2 0-5.8-2.7-5.8-6s2.6-6 6-6z"/>
+        <path fill="#21231e" d="M351.5 198.7h-1c0-2-1.2-4-3-5a5.3 5.3 0 00-2.4-.5v-1c2.3 0 4.4 1.2 5.5 3a6.5 6.5 0 011 3.5zM345 205v-1c2 0 4-1 4.8-2.7a5.5 5.5 0 00.7-2.6h1c0 2.2-1.2 4.3-3 5.5a6.4 6.4 0 01-3.4 1zm-6.3-6.3h1c0 2 1.2 4 3 4.8a5 5 0 002.4.6v1c-2 .2-4.2-1-5.3-3a6.5 6.5 0 01-1-3.3zm6.4-6.5v1c-1.8 0-3.7 1-4.6 2.8a5.5 5.5 0 00-.7 2.7h-1c0-2.2 1.2-4.4 3-5.5a6.4 6.4 0 013.4-1z"/>
+        <path fill="#fff" d="M339.8 181.7c3.3 0 6 2.7 6 6s-2.7 6-6 6-6-2.7-6-6 2.7-6 6-6z"/>
+        <path fill="#21231e" d="M346.2 187.7h-1c0-2-1.2-4-3-5a5.4 5.4 0 00-2.4-.5v-1c2.2 0 4.3 1.2 5.4 3a6.5 6.5 0 011 3.5zm-6.4 6.4v-1c2 0 3.8-1 4.7-2.7.5-.8.7-1.7.7-2.6h1c0 2-1 4.3-3 5.4a6.4 6.4 0 01-3.4 1zm-6.4-6.3h1c0 2 1 4 3 4.8.7.4 1.5.6 2.4.6v1a6 6 0 01-5.4-3 6.5 6.5 0 01-1-3.3zm6.4-6.5v1c-2 0-4 1.2-4.8 3a5.5 5.5 0 00-.6 2.5h-1c0-2.2 1-4.4 3-5.5a6.4 6.4 0 013.4-1z"/>
+        <path fill="#edb92e" d="M444.3 202.2c3.4-.3 2.5 5.8 2 7.2-1 1.8-1.8 1.8-3 .2-.8-1.3-2.4-7.2 1-7.5z"/>
+        <path fill="#21231e" d="M446.6 209.6l-1-.4h.2v-.7l.2-.3v-.5l.2-.3V204h-.2v-.3l-.2-.2v-.2l-.2-.2h-.2l-.3-.2h-.2l-.2-.2h-.3v-1h.7l.3.2h.3l.3.2v.2l.3.3.2.2.2.3v.2l.2.3v.7l.2.3v3.7l-.2.3v.5l-.2.3v.5h-.2zm-3.7.3l.8-.7.2.3v.2h.2v.2h.2v.2h.7l.2-.2v-.2h.2v-.2h.2v-.3l1 .3v.2l-.2.2v.3h-.2v.2l-.2.2-.2.2h-.4v.2H444v-.2h-.2v-.2h-.2v-.2h-.2v-.3h-.2v-.3h-.3zm1.2-8.4v1h-.4v.2h-.3v.2h-.3v.3l-.2.2v.4h-.2v3.2l.2.2v.6l.2.2v.3l.2.2v.2l.2.2v.2h.2l-1 .7v-.5l-.2-.2v-.2l-.2-.4v-.2l-.2-.3v-.2l-.2-.3v-.7l-.2-.3v-3l.2-.3v-.3l.3-.3.2-.2.2-.3h.2l.2-.3.3-.2h.4l.2-.2z"/>
+        <path fill="#fff" d="M444.5 205.5c8-.6 6 13.8 4.4 17-2 4.2-4 4.3-6.7.5-2-3-5.8-17 2.2-17.5z"/>
+        <path fill="#21231e" d="M449.4 222.7l-1-.4.2-.3.2-.4v-.4l.3-.5.2-.5v-.6l.2-.6.2-.7V217l.2-.7v-5.1l-.3-.7v-.6l-.3-.7-.3-.6-.3-.5-.3-.5-.3-.4-.3-.4-.4-.4-.5-.2-.5-.2-.5-.2h-1.4v-1h1.5l.6.2.7.2.5.4.6.4.4.4.4.5.4.7.3.6v.7l.3.6.2.7v.7l.3.8v6.3l-.3.7v.7l-.2.6v.6l-.3.6v.5l-.3.5v.4l-.3.3zm-7.5.5l.8-.5.2.3.2.3.3.3.2.3h.2v.4h.3l.2.3.2.2h.4l.2.2h1v-.2h.3l.2-.3v-.2l.2-.2.2-.2h.2l.2-.4v-.3l.3-.3.3-.3.2-.4 1 .4-.3.4-.2.5-.2.3-.2.4-.2.3-.2.3-.2.2-.2.2-.2.3-.3.2h-.2v.3h-.4l-.2.2H445l-.4-.2h-.2l-.3-.3v-.2l-.4-.2-.2-.2-.2-.2-.3-.2-.3-.3-.3-.4-.2-.4-.3-.4zm2.5-17.2v-1 1h-.6l-.7.2-.5.2-.5.3-.4.3-.5.4-.3.4-.3.4-.3.6-.2.5v.6l-.2.5v.7l-.2.7v.6l.2.7v1.4l.2.7v.8l.3.7v.6l.3.7.2.6.2.5.2.6.2.7.2.5.2.4.2.4.2.4.2.3-1 .5v-.3l-.3-.5-.2-.4-.2-.4v-.6l-.4-.5-.2-.7-.2-.6-.2-.7-.2-.7v-.7l-.3-.6v-.8l-.2-.7V213l-.2-.7v-.8l.2-.7v-.6l.2-.7v-.7l.4-.6.2-.6.4-.6.4-.5.4-.5.5-.4.6-.3.7-.3.7-.2h.8v1zm0-1v1-1z"/>
+        <path fill="#edb92e" d="M379.7 210.8c3.3-1 4 5 3.6 6.6-.4 2-1.2 2.2-2.7 1-1-1.2-4-6.5-1-7.6z"/>
+        <path fill="#21231e" d="M383.8 217.5l-1-.2v-2.8l-.2-.3v-.7l-.2-.3v-.3l-.2-.2v-.3l-.3-.2-.2-.2-.3-.3-.3-.3h-.3l-.3-.2h-.6l-.4-1h1.5l.2.2.3.2.2.2.3.2.2.3.2.2v.3l.3.3v.4l.2.3v.3l.2.3v.3l.2.4v.6l.2.3v2.5zm-3.5 1l.7-.6h.2v.2h.2l.2.2h.2v.2h.4l.2-.2v-.2h.2v-.6h.2v-.3l1 .2v.4h-.2v.4l-.2.3v.2h-.2l-.2.2-.2.2h-.2l-.2.2h-1v-.2h-.3l-.2-.2h-.2v-.2h-.2l-.2-.2v-.2zm-.7-8.2l.3 1h-.3l-.2.2h-.2v.2l-.2.2v.2l-.2.2v1.8l.2.4v.3l.2.3v.2l.2.3.2.3v.3l.2.3.2.3v.2l.3.2v.2l.2.2.3.3.2.2-.7.6h-.2v-.4l-.3-.2v-.2l-.3-.2v-.3l-.3-.2v-.2l-.2-.3v-.3l-.3-.3v-.4l-.2-.3v-.3l-.3-.3v-.7l-.2-.3V212l.3-.2.2-.3.2-.3.3-.2.2-.2h.2l.4-.3z"/>
+        <path fill="#fff" d="M380.7 214c7.7-2.5 9.2 12 8.4 15.5-1 4.5-2.8 5-6.2 2-2.6-2.4-9.7-15-2-17.5z"/>
+        <path fill="#21231e" d="M389.6 229.6l-1-.2v-.8l.2-.4v-2.9l-.2-.7V223l-.3-.7v-.7l-.3-.8-.2-.7-.2-.6-.2-.7-.3-.7-.2-.6-.3-.6-.3-.4-.4-.5-.3-.4-.4-.3-.4-.4-.4-.4-.5-.2h-.5l-.5-.2h-1.1l-.6.3-.4-1 .7-.2h2.2l.7.2.7.2.5.4.5.5.5.4.4.5.4.5.4.6.3.7.3.6.3.6.3.7.2.8.2.8.2.7v.8l.3.7v1.5l.2.7v4.4zm-7 2.3l.5-1 .5.4.2.2.3.3h.3l.3.3h.2l.3.3h.3l.2.2h1.4l.2-.2.2-.2.2-.3.3-.3v-.6l.2-.2v-.3l.2-.4v-.2l.2-.4 1 .2v.4l-.2.4v.4l-.2.4-.2.3v.3l-.2.3-.2.4v.3l-.3.2h-.2v.3l-.3.2h-.2l-.2.3h-.8l-.3.2h-.5l-.3-.2h-.2l-.3-.2h-.4l-.3-.3-.3-.2h-.3l-.3-.3-.3-.3-.2-.2-.3-.3zm-2-18.5l.3 1-.7.2-.6.3-.4.3-.4.4-.4.4-.3.5-.2.5v.5l-.2.6v2.5l.2.6.2.7.2.6.2.7.3.7v.7l.4.6.3.7.4.6.4.6.3.6.4.6.4.5.3.4.3.4.4.4.2.4.3.3-.5 1-.3-.4-.3-.3-.4-.4-.4-.5-.3-.5-.4-.5-.4-.6-.3-.7-.5-.6-.3-.6-.4-.6-.3-.6-.3-.7-.3-.7-.3-.7-.3-.7-.2-.8-.2-.8v-.7l-.2-.7V218l.2-.7.2-.6.2-.6.3-.5.4-.5.6-.5.6-.4.7-.2.6-.3zm0 .5v-.5.5z"/>
+        <path fill="#edb92e" d="M464.2 137.8c-17.2-1.6-35 .2-52.3 7-14.8 6-13.4 23.2 4.6 47-1.7 3-2.6 6.8-2.7 11h4.8c-1.3-2.8 0-6.4 1.8-9 1-1.5 1.3-1.2 0-3-10.7-15-17.8-28.2-13.6-36 5-9.7 24.6-14.7 57.7-14 0-1 0-1.8-.2-2.7 0 0-.2 0-.3-.2z"/>
+        <path fill="#21231e" d="M412 145.4l-.3-1 1.7-.6 1.6-.6 1.7-.6 1.6-.5 1.6-.4 1.6-.5 1.6-.4 1.7-.4 1.5-.4 1.7-.4 1.6-.4 1.7-.3 1.6-.3 1.8-.3h1.6l1.7-.3 1.7-.2 1.7-.2 1.6-.2h3.3l1.6-.2h11.5l1.6.2h1.6l1.6.3v1l-1.7-.2h-4.9l-1.6-.2h-9.7l-1.6.2H443l-1.5.3-1.7.2-1.6.2-1.6.2H435l-1.7.4-1.6.3-1.7.3-1.6.4-1.6.3-1.7.5-1.5.4-1.6.4-1.8.5-1.6.6-1.6.6-1.7.6-1.6.6-1.6.6zm5 46.7l-1-.4.2.5-1.7-2-1.5-2.3-1.5-2-1.3-2.2-1.3-2-1.2-2-1-2-1-2-1-2-.7-1.7-.6-1.8-.5-1.8-.6-1.7-.4-1.6-.3-1.7-.2-1.6v-4.4l.2-1.3.3-1.3.4-1.2.5-1.2.5-1.2.7-1 .8-1 .8-1 1-.7 1-.8 1.3-.8 1.4-.6 1.3-.5.4 1-1.2.5-1.2.6-1 .7-1 .8-1 1-1 .8-.6 1-.7 1-.5 1-.5 1-.3 1.2-.3 1.2-.2 1.2v3.8l.2 1.5.3 1.7.3 1.6.5 1.6.6 1.6.7 1.8.8 1.8 1 2 .8 1.8 1 2 1.2 2 1.2 2 1.4 2 1.4 2.2 1.5 2 1.7 2.3v.6zm0-.5l.2.3-.2.3v-.5zm-3 11v1l-.6-.6v-2.5l.2-.4v-1l.2-.4v-.7l.2-.5v-.4l.2-.2v-.4l.2-.3v-.3l.2-.3v-.4l.2-.3v-.3l.2-.3v-.3l.3-.3v-.3l.2-.2.2-.3v-.3l.3-.3v-.4l1 .5v.4l-.3.2v.3l-.2.2-.2.3v.3l-.2.3v.4l-.2.3v.3l-.2.4v.3l-.2.3v.3l-.2.4v.7l-.2.3v.8l-.2.4v.8l-.2.4v1.4l-.2.4v.7l-.5-.6zm0 1h-.6v-.6l.5.5zm4.3-.4l1-.4-.5.8h-4.6v-1h4.6l-.5.7zm1-.4l.3.7h-.8l.4-.7zm1-9l.7.6-.2.2v.3l-.2.2-.2.2v.2l-.3.3v.4l-.2.3-.2.2v.3l-.2.3v.2l-.2.3v.7l-.2.2v.5l-.2.3v2.2l.2.3v.4l.2.2-1 .5v-.5l-.2-.3v-.7l-.2-.3v-2.7l.2-.3v-.3l.2-.2v-.3l.2-.3v-.3l.2-.4v-.3l.2-.3.2-.3v-.2l.2-.3.2-.3v-.3l.3-.3v-.3h.3l.2-.3zm0-2.5l.7-.5.2.3.2.3v.2h.2v.4h.2v.4l.2.2v.5l-.2.2v.2h-.2v.2l-.2.2v.2h-.2v.3l-.2.2-.8-.6v-.2l.2-.2.2-.2v-.2h.2v-.4h.2v-.2h-.2v-.2l-.2-.2v-.3h-.2v-.3h-.2zm-13.8-36.5l1 .5-.4.7-.2.7-.2.8-.2.8v4.5l.2 1 .3 1v1l.5 1 .3 1.2.4 1 .5 1.2.5 1 .5 1.2.6 1.2.6 1.2.6 1.3.7 1 .7 1.4.8 1.3.8 1.3.8 1.3 1 1.3.8 1.4 1 1.3.8 1.4 1 1.4 1 1.5-.8.6-1-1.3-1-1.4-1-1.4-1-1.5-.8-1.3-.8-1.4-1-1.3-.7-1.3-.8-1.3-.8-1.4-.7-1.2-.7-1.3-.6-1-.6-1.3-.5-1.2-.5-1.2-.5-1.2-.4-1-.5-1-.3-1.2-.3-1-.3-1-.2-1.2v-1l-.2-1V158l.3-.8.3-1 .2-.7.3-.8zm57.7-13.7h1l-.5.5h-14.5l-2.6.2H445l-2.5.3-2.4.2-2.3.3-2.2.2-2.2.3-2 .4-2 .3-2 .4-1.8.4-1.8.4-1.7.5-1.6.5-1.5.6-1.5.5-1.3.5-1.3.7-1.3.6-1 .7-1 .7-1 .7-.8.7-.8.8-.7.8-.6.8-.6 1-1-.5.7-1 .7-.8.7-1 .8-.7 1-.8 1-.8 1-.8 1-.7 1.2-.7 1.3-.7 1.4-.6 1.6-.6 1.5-.5 1.7-.7 1.7-.5 1.8-.4 2-.5 1.8-.5 2-.3 2.2-.4 2.2-.3 2.2-.2 2.4-.3 2.4-.2 2.5-.2h2.5l2.7-.2h2.7l2.8-.2h9l-.6.6zm1 0v.5h-.5l.5-.5zm-1-2.3l.7-.7v1.9h.2v1h-1v-2.3l-.2-.2v-.4.3zm.7-.7v.3-.2zm-1.2-.4l.8.7v-.6.2h.2v.2l-.7.7v-.4h-.2v-.6zm0 .7l-.3-.2.3-.4v.7zm.8 0l-.8-.6h.4l.4.7zm-.4-.7h1l-.6.8-.4-.7z"/>
+        <path fill="#fff" d="M380.6 142.7c3.4 0 6 2.7 6 6s-2.6 6.3-6 6.3-6.2-2.7-6.2-6.2a6 6 0 016.2-6z"/>
+        <path fill="#21231e" d="M387.2 148.8h-1c0-2-1.2-4-3-5a5.6 5.6 0 00-2.6-.6v-1c2.2 0 4.5 1.2 5.6 3a6.7 6.7 0 011 3.6zm-6.6 6.7v-1c2 0 4-1.2 5-3a7 7 0 00.6-2.7h1a7 7 0 01-3 5.7 6.6 6.6 0 01-3.6 1zm-6.7-6.7h1c0 2 1.2 4.2 3 5a5.6 5.6 0 002.6.7v1a6.6 6.6 0 01-5.6-3 6.7 6.7 0 01-1-3.7zm6.6-6.7v1.2c-2 0-4 1.2-5 3a5.7 5.7 0 00-.6 2.6h-1c0-2.2 1-4.4 3-5.6a6.6 6.6 0 013.6-1z"/>
+        <path fill="#fff" d="M392.6 138.7c3.4 0 6.2 2.8 6.2 6.2 0 3.3-2.8 6-6.2 6a6 6 0 01-6-6c0-3.5 2.6-6.3 6-6.3z"/>
+        <path fill="#21231e" d="M399.3 145h-1c0-2.2-1.3-4.3-3.2-5.2a5.6 5.6 0 00-2.4-.6v-1a7 7 0 015.7 3 6.7 6.7 0 011 3.7zm-6.7 6.6v-1c2 0 4-1.3 5-3a5.7 5.7 0 00.7-2.7h1c0 2.2-1.2 4.4-3.2 5.6a6.6 6.6 0 01-3.4 1zM386 145h1c0 2 1.2 4 3 5a5.6 5.6 0 002.6.6v1a6.7 6.7 0 01-5.6-3.2 6.7 6.7 0 01-1-3.5zm6.6-6.8v1c-2 0-4 1.2-5 3a5.7 5.7 0 00-.6 2.7h-1c0-2.4 1.2-4.7 3.2-5.8a6.6 6.6 0 013.4-1z"/>
+        <path fill="#edb92e" d="M394.2 144a261.2 261.2 0 002 2.4c-9.8 5.4-14 11-13 16.7.2 1 3.2 11.5 9.8 31.7 4.5 3 7.8 6 10 8.4-.2.4.8 1.2.5 1.5.7 3-2.8 2.4-5 1.7-1.2-3-4.6-6-6.6-7.5-.5-.2-2-1-2-1.4l-10.2-31.6c-3-9.8 3.6-16.8 14.4-21.7z"/>
+        <path fill="#21231e" d="M396.3 147l-.5-1v.7h-.2v-.2h-.2v-.2l-.2-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2h-.2l.8-.7.2.2h.2v.4h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2h.2v.2l.2.2v1zm.2-1l.3.6-.5.3.2-1zm-12.7 17l-1 .2v-3.9l.2-.6.2-.5.2-.6.2-.5.3-.5.2-.5.3-.6.4-.5.3-.6.4-.6.5-.5.4-.6.6-.5.5-.5.6-.5.6-.6.5-.5.7-.4.7-.5.6-.5.8-.5.8-.5 1-.5.7-.5.8-.5.5 1-1 .4-.7.5-.8.4-.8.5-.8.4-.7.5-.7.4-.6.5-.7.4-.6.5-.6.4-.5.5-.6.4-.5.6-.5.5-.4.5-.3.5-.3.5-.3.5-.2.5-.2.5-.2.5-.2.5-.2.5v.5l-.2.5v3.1zm0 0zm9.5 31.3l-.6.8-.2-.2-.6-1.8-.7-1.8-.5-1.8-.6-1.7-.5-1.6-.5-1.5-.5-1.5-.5-1.5-.4-1.4-.4-1.2-.4-1.3-.4-1.3-.4-1-.3-1.3-.4-1-.3-1-.3-1-.3-1-.3-.8-.2-.8-.2-.8-.2-.6-.2-.7v-.5l-.3-.5v-.5l-.2-.4v-.8h-.2v-.3h1v.3l.2.3v.4l.2.3v.5l.2.5.2.6.2.7.2.7.2.7.2 1 .3.7.2 1 .2 1 .3 1 .3 1 .4 1 .4 1.2.3 1.2.3 1.3.5 1.3.4 1.4.5 1.5.4 1.5.7 1.6.5 1.6.5 1.7.6 2 .6 1.7.5 1.8-.2-.2zm-.6.8l-.2-.2.2.3zm10.7 8.4l-.7-.6v.6l-.2-.2-.2-.2-.3-.3-.2-.2-.2-.2-.3-.3-.2-.2-.2-.2-.2-.3-.3-.2-.3-.2-.2-.2-.3-.3-.3-.3-.3-.2-.4-.3-.3-.2-.4-.3-.4-.3-.3-.2-.4-.3-.4-.3-.4-.3-.3-.3-.5-.3-.4-.2-.3-.3-.4-.2-.4-.3-.5-.3-.4-.3-.3-.3.6-.7.4.3.4.3h.5l.4.4.3.3.4.3.4.3.5.3.3.2.4.3.3.4.4.3.2.2.4.2.3.3.2.2.3.3.3.3.3.2.4.3.3.2.3.3.3.3.2.2.3.3.3.3.3.3.2.2.3.2.2.3.2.2.2.3v.6zm0-.6l.3.3-.3.4v-.6zm.6 1.6l-1 .2.2-.5v.2h-.2v.2-.2l-.2-.2v-.2h-.2v-1.2l.8.6v-.2h.2v.2l.2.2v.2l.2.2v.7l-.2.2.2-.6zm-1 .2v-.3l.2-.2-.2.6zm-5 1.8l1-.4-.4-.3h.4l.2.2h.7l.4.2h2.3v-.2h.2v-1.4l1-.2v1.6l-.2.3v.2l-.2.2h-.2l-.2.2h-.4l-.2.2h-3l-.3-.2h-.5l-.3-.2h-.5l-.3-.4zm.2.3h-.2v-.3l.2.3zm-6.6-7.5l.6-1 .2.3h.2l.2.3h.2l.3.3.2.3.2.2.2.2.2.2h.2l.2.3.3.2v.3l.4.2.2.3.2.2.3.3.3.2.2.3.3.3.2.2.2.3.2.4.2.3.2.3.2.2.2.3v.3l.3.3v.4l.3.3v.3l-1 .4v-.3l-.2-.4-.2-.3v-.2l-.3-.2v-.3l-.2-.2-.2-.3-.2-.3-.2-.2-.2-.3-.2-.2-.2-.3-.3-.2-.2-.3v-.2l-.3-.3-.3-.2-.2-.2-.2-.2-.3-.2-.2-.2-.2-.2h-.2l-.2-.3h-.2l-.2-.3h-.2l-.2-.3h-.2l-.2-.2zm.6-1l.3.3-.3-.2zm-2.7-.7l1-.3.2.2h.2v.2h.2v.2h.4v.2h.2l.2.2h.2l-.6 1-.2-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2zm-10-31.7l.8-.3.3 1 .3 1 .2.8.3 1 .3 1 .3.8.4 1 .3 1 .3 1 .3 1 .3 1 .3.8.2 1 .4 1 .3 1 .2 1 .3 1 .3 1 .4 1 .3 1 .3 1 .3 1 .5 1 .3 1 .3 1 .5 1 .3 1 .3 1 .4 1.2.4 1 .3 1 .4 1.2-1 .3-.3-1-.2-1.2-.3-1-.4-1-.2-1-.3-1-.3-1.2-.4-1-.3-1-.3-1-.4-1-.3-1-.3-1-.3-1-.4-1-.4-1-.3-1-.4-1-.3-1-.3-.8-.3-1-.4-1-.3-1-.3-1-.3-.8-.3-1-.2-1-.3-1-.3-.8-.3-1-.4-.8-.2-1zm15-22l-.7.5h.6l-1 .6-1 .4-1 .5-.8.4-1 .5-.7.4-1 .5-.7.5-.8.5-.7.6-.7.6-.5.6-.7.6-.5.6-.6.7-.5.6-.4.7-.4.6-.4.7-.3.7-.3.7-.3.7v.8l-.2.7v.7l-.2.8v2.6l.3.8v1l.3.7-1 .3-.2-1v-.8l-.3-1V159l.2-1 .2-.7.2-.6.3-.8.4-.7.5-1 .4-.6.4-.7.6-.7.5-.7.6-.6.8-.6.6-.6.8-.6.7-.6.7-.5.8-.6 1-.5.7-.5 1-.5 1-.5.8-.5 1-.5 1-.5.6.2zm-.5-.3l.4-.2.2.4-.6-.2z"/>
+        <path fill="#edb92e" d="M356 217l-.4 2c-2.8.5-5.3.7-7.3.3 3.4-3.3 6-4 7.6-2.4z"/>
+        <path fill="#21231e" d="M355 218.8l.4-2 1 .2-.3 2-.3.4-.6-.6zm1 0v.5h-.3l.4-.4zm-8 .2l.7.7-.3-1 .2.2h4.1l.3-.2h1l.2-.2h.7l.2-.2h.3l.2 1h-.8l-.4.2h-.5l-.4.2h-1.3v.2h-3.7l-.4-1zm.2 1l-1-.3.8-.7.2 1zm8.2-3l-1-.2.2.5v-.2h-.6v-.2h-.6l-.2-.2H353v.2h-.6l-.2.3-.2.2h-.3l-.2.2-.3.2-.2.2-.3.2-.3.2-.2.2-.3.2-.4.3h-.3l-.3.4-.3.3-.7-.7.3-.3.3-.3.3-.3.2-.2.3-.2.3-.2.3-.3h.4l.3-.3h.3l.2-.3h.3l.3-.3h.6l.3-.2h.5l.4-.2h1.3l.2.2h.3l.2.2h.2l.2.2.3.3v.5zm0-.5v.5-.5zm-.5.4h.4-.5zm.3-.5l.2.2v.3l-.2-.5z"/>
+        <path fill="#edb92e" d="M355.6 212.3c1.8.4 2 .7 2.7 1 1 0 2.4 0 3.3-1 4-2.2 4 2 2.5 5-1 2.4-.5 5 .6 7 1.2 2.2 1 3.2 0 4l-1.6 1c-1 1.2-1.8 1-2-.6-3.8-1.6-5-5.3-6.2-8.6-1.7-4.7-7.8-5.8.8-7.7z"/>
+        <path fill="#21231e" d="M358.4 212.7v1h-.7v-.2h-.4l-.2-.2h-.4l-.2-.2h-.8l-.3-.2.2-1h.4l.2.2h.4l.2.2h.4v.2h.8v.2h.4zm3-.7l.5 1v-.2l-.2.2h-.3v.2h-.2l-.2.2h-.2l-.2.2h-2.1v-1h2.2l.2-.2h.2v-.2h.2l.2-.2zm0 0zm3 5.6l-.8-.4v-.3l.3-.4v-.5l.2-.2v-.6l.2-.3v-2.2h-.2v-.2h-.2v-.2h-1.2l-.3.2-.3.2-.3.2-.6-1 .4-.2.3-.2h.5l.3-.2h1.8l.2.2.2.2v.2l.2.3v.4l.2.3v2.4l-.2.3v.3l-.2.4v.3l-.2.3v.3l-.3.3zm.6 6.3l-1 .4v-.4l-.2-.2v-.4l-.2-.2v-.2l-.2-.2v-.5l-.2-.2v-.8l-.2-.2v-2.3l.2-.2v-.3l.2-.3v-.3l.2-.2 1 .4-.2.2v.4l-.2.2v.8l-.2.2v2l.2.2v.5l.2.2v.4h.2v.2l.2.2v.4h.2zm0 4.6l-.6-1h.2v-.2h.2v-1.6l-.2-.3v-.3l-.2-.2v-.2l-.2-.2v-.2l.8-.5v.2l.2.2v.2l.2.2v.2l.2.2v.2l.2.3v1.7l-.2.2v.2h-.2v.2h-.2v.2l-.2.2zm0 0zm-1.6 1l-.8-.7v-.2h.2l.2-.2h.2v-.2h.4v-.2h.2v-.2h.4v-.2h.2l.6.8h-.2v.2h-.4v.2h-.2l-.2.2h-.2v.2h-.2l-.2.2zm-.8-.7v-.2zm-1.8 0l.4-.8.3.4v.5h.2v.2h.4v-.2h.2v-.2h.2l.8.6-.2.2-.2.2-.3.2h-.2v.2h-1.1l-.2-.2v-.2l-.2-.2v-.4h-.2v-.7l.2.4zm.4-.8h.3v.4l-.3-.4zm-7-8l1-.3.2.2v.3l.2.3v.4l.2.3v.3l.3.3.2.4v.3l.2.3.2.3v.3l.3.3v.2l.2.3v.2l.3.3.2.3.2.2v.3l.3.2.2.3.2.2.2.2.2.2h.2l.3.3.3.2.3.2.3.2h.3l.2.2-.4 1-.3-.2-.4-.2-.2-.2-.4-.2-.3-.2-.2-.3-.3-.3-.2-.2-.3-.3-.3-.2-.2-.3-.2-.3-.2-.3-.3-.4-.2-.3-.2-.3-.2-.3v-.4l-.2-.3v-.3l-.3-.3v-.3l-.3-.2v-.3l-.2-.4v-.2l-.2-.3-.2-.3v-.3l-.2-.4v-.3zm1.4-8.4v1l-.6.2-.7.2h-.6l-.5.3h-.4l-.4.3h-.3v.3l-.2.2v.2h-.2v.2l.2.3.3.2.2.3.2.2.2.3.3.2v.3l.4.3.2.3.3.5.2.3.2.4.3.4.2.4v.5l.3.4-1 .3v-.4l-.3-.5-.2-.4-.2-.3-.3-.3-.2-.3v-.2l-.4-.3-.2-.3-.3-.3v-.4l-.3-.2-.3-.3-.3-.4v-.2l-.2-.3-.2-.4v-.6l.3-.3v-.2l.3-.3h.3l.4-.3.4-.3.5-.2h.4l.7-.3.8-.2.7-.2zm0 0zm0 1v-1 1zm0-1z"/>
+        <path fill="#edb92e" d="M357 212.5c3.5 1.2 4-.7 6-.6-.8 5-1.7 7.7-7 5-3-1.6-6.7.7-7.4 2.3-.3.6-2-.6-2.6-2-2.6-5.8 6.7-6.4 11-4.8z"/>
+        <path fill="#21231e" d="M363.6 212l-1-.2.5.6H362v.2h-.3l-.2.2h-.2l-.3.2h-.3v.2h-.7l-.2.2h-2l-.4-.2h-.3l-.3-.2.3-1h.3l.3.2h.4l.2.2h1.3l.2-.2h.2l.2-.2h.5l.2-.2h.2l.3-.2h.5l.2-.2h.4l.6.6zm-.5-.6h.7v.6l-.6-.6zm-7.2 6l.4-1 .5.4.5.2h.4l.4.3h.3l.4.2h1.7l.2-.2.3-.3.2-.3v-.2l.2-.2.2-.3v-.3l.2-.3v-.3l.2-.2v-.4l.2-.4v-.4l.2-.4v-.9l.2-.5 1 .2v.5l-.2.5v.8l-.2.5v.4l-.2.4v.4l-.3.4v.3l-.2.4-.2.4v.2l-.3.3-.2.3-.2.2-.3.2-.2.2h-.2l-.3.2h-.3l-.3.2h-1.6l-.4-.2-.4-.2h-.4l-.4-.3-.5-.3-.5-.3zm-6.8 2l-1-.3h.2v-.3h.3v-.3l.3-.2v-.2l.3-.2h.3l.2-.3.2-.2h.3l.2-.3h.3l.2-.3h.3l.3-.2h.3l.2-.2h.3l.4-.2h2.3l.3.2h.3l.3.2h.2l-.4 1h-.3l-.2-.2h-.5l-.3-.2h-1.8l-.3.2h-.3l-.3.2h-.3l-.2.3h-.2l-.3.2h-.2l-.2.2h-.2v.2l-.2.2h-.2v.3h-.2v.2h-.2v.2h-.2zm-3.5-2l1-.3v.4h.2v.4h.2v.2l.2.2h.2v.2l.2.2h.2v.2h.4v.2l.8.5v.2l-.3.2h-1v-.2h-.2l-.3-.2h-.2v-.2l-.2-.2-.2-.2h-.2v-.3h-.2v-.2h-.2v-.3h-.2v-.4h-.2v-.3zm11.8-5.4l-.3 1-.4-.2h-.5l-.3-.2h-.5l-.5-.2h-5l-.5.2-.4.2h-.4l-.4.3-.4.3-.3.2v.2l-.4.2-.2.2v.3l-.3.2v1.6l.3.4.2.5-1 .5-.2-.5-.2-.6V215l.2-.6.2-.4.2-.4.3-.3.2-.4.3-.3.4-.3.4-.2.4-.2.5-.2h.5l.5-.3h1.1l.5-.2h3.3l.6.2h.5l.4.2.5.2h.3zm0 .5v-.5.5z"/>
+        <path fill="#fff" d="M458.8 124.5c3.4 0 6.2 2.7 6.2 6 0 3.5-2.8 6.3-6.2 6.3s-6-2.8-6-6.2a6 6 0 016-6z"/>
+        <path fill="#21231e" d="M465.5 130.6h-1c0-2-1.3-4.2-3.3-5a5.5 5.5 0 00-2.4-.6v-1a7 7 0 015.7 3 6.7 6.7 0 011 3.6zm-6.7 6.7v-1c2 0 4-1.2 5-3a5.6 5.6 0 00.6-2.7h1c0 2.3-1 4.5-3 5.7a6.6 6.6 0 01-3.6 1zm-6.6-6.7h1c0 2 1.3 4.2 3.2 5a5.5 5.5 0 002.4.7v1a6.6 6.6 0 01-5.6-3.2 6.7 6.7 0 01-1-3.4zm6.6-6.6v1c-2 0-4 1.2-5 3a5.6 5.6 0 00-.6 2.6h-1c0-2.2 1.2-4.4 3.2-5.6a6.6 6.6 0 013.4-1z"/>
+        <path fill="#fff" d="M446.3 124.5a6 6 0 016 6c0 3.5-2.6 6.3-6 6.3s-6-2.8-6-6.2c0-3.4 2.6-6 6-6z"/>
+        <path fill="#21231e" d="M453 130.6h-1c0-2-1.3-4-3.2-5a5.5 5.5 0 00-2.5-.6v-1c2.3 0 4.5 1.2 5.6 3a6.7 6.7 0 011 3.6zm-6.7 6.7v-1c2 0 4-1.3 5-3a7 7 0 00.6-2.7h1c0 2.3-1.3 4.5-3.2 5.7a6.6 6.6 0 01-3.5 1zm-6.6-6.7h1c0 2 1.2 4.2 3 5a5.5 5.5 0 002.6.7v1a6.5 6.5 0 01-5.6-3.2 6.7 6.7 0 01-1-3.4zm6.6-6.6v1c-2 0-4 1.2-5 3a5.6 5.6 0 00-.6 2.6h-1a7 7 0 013-5.6 6.6 6.6 0 013.6-1z"/>
+        <path fill="#fff" d="M433.8 125.5a6 6 0 016 6c0 3.5-2.6 6.3-6 6.3s-6-2.8-6-6.2 2.6-6 6-6z"/>
+        <path fill="#21231e" d="M440.4 131.6h-1c0-2-1.2-4-3-5a5.5 5.5 0 00-2.6-.6v-1a7 7 0 015.6 3 6.7 6.7 0 011 3.6zm-6.6 6.7v-1c2 0 4-1.3 5-3a5.7 5.7 0 00.6-2.7h1a7 7 0 01-3 5.7 6.6 6.6 0 01-3.6 1zm-6.6-6.7h1c0 2.2 1.3 4.3 3.2 5.2a5.5 5.5 0 002.4.5v1a6.4 6.4 0 01-5.6-3.2 6.7 6.7 0 01-1-3.4zm6.6-6.6v1c-2 0-4 1.2-5 3a5.7 5.7 0 00-.6 2.6h-1c0-2.3 1.3-4.6 3.3-5.7a6.6 6.6 0 013.3-1z"/>
+        <path fill="#fff" d="M422.3 127.7c3.3 0 6 2.8 6 6.2 0 3.3-2.7 6-6 6s-6.2-2.7-6.2-6 3-6.3 6.3-6.3z"/>
+        <path fill="#21231e" d="M429 134h-1a6 6 0 00-3.3-5.2 5.5 5.5 0 00-2.4-.6v-1c2.2 0 4.4 1.2 5.6 3.2a6.7 6.7 0 011 3.5zm-6.7 6.5v-1c2 0 4-1.2 5-3 .4-1 .6-1.8.6-2.6h1c0 2-1.3 4.3-3.3 5.5a6.6 6.6 0 01-3.4 1zm-6.7-6.6h1c0 2 1.2 3.8 3 4.8a5 5 0 002.7.7v1a7 7 0 01-5.7-3 6.7 6.7 0 01-1-3.6zm6.7-6.8v1c-2 0-4.2 1.3-5 3.2a5.7 5.7 0 00-.7 2.5h-1c0-2.5 1.3-4.7 3.3-6a6.6 6.6 0 013.3-.8z"/>
+        <path fill="#fff" d="M346.3 159.4a6 6 0 016 6.2c0 3.4-2.6 6.2-6 6.2s-6-2.8-6-6.2a6 6 0 016-6.2z"/>
+        <path fill="#21231e" d="M353 165.6h-1c0-2-1.3-4-3.2-5a5.6 5.6 0 00-2.5-.7v-1c2.2 0 4.5 1 5.6 3a6.7 6.7 0 011 3.6zm-6.7 6.7v-1c2 0 4-1.2 5-3a7 7 0 00.6-2.7h1c0 2.3-1.3 4.5-3.2 5.7a6.6 6.6 0 01-3.5 1zm-6.7-6.7h1c0 2 1.3 4.2 3.2 5a5.6 5.6 0 002.5.7v1a7 7 0 01-5.6-3 6.7 6.7 0 01-1-3.7zm6.7-6.7v1c-2 0-4 1.2-5 3a5.7 5.7 0 00-.6 2.6h-1a7 7 0 013-5.7 6.6 6.6 0 013.6-1z"/>
+        <path fill="#fff" d="M356.8 152.8c3.4 0 6.2 2.7 6.2 6 0 3.6-2.8 6.3-6.2 6.3-3.4 0-6-2.6-6-6a6 6 0 016-6.2z"/>
+        <path fill="#21231e" d="M363.5 159h-1c0-2.2-1.3-4.2-3-5a5.6 5.6 0 00-2.7-.7v-1a7 7 0 015.7 3 6.7 6.7 0 011 3.6zm-6.7 6.6v-1a5.7 5.7 0 005.7-5.7h1a7 7 0 01-3 5.6 6.6 6.6 0 01-3.7 1zm-6.6-6.7h1c0 2 1.2 4 3 5a5.6 5.6 0 002.6.6v1a7 7 0 01-5.6-3 6.7 6.7 0 01-1-3.7zm6.6-6.8v1c-2 0-4 1.3-5 3.2a5.7 5.7 0 00-.6 2.5h-1c0-2.3 1.2-4.6 3-5.8a6.6 6.6 0 013.6-1z"/>
+        <path fill="#fff" d="M368.8 147c3.4 0 6 3 6 6.3 0 3.4-2.6 6.2-6 6.2s-6-2.8-6-6.2a6 6 0 016-6.2z"/>
+        <path fill="#21231e" d="M375.4 153.3h-1c0-2-1.2-4.2-3-5a5.6 5.6 0 00-2.6-.7v-1a7 7 0 015.6 3 6.7 6.7 0 011 3.7zm-6.6 6.7v-1c2 0 4-1.3 5-3a5.7 5.7 0 00.6-2.7h1a7 7 0 01-3 5.7 6.6 6.6 0 01-3.6 1zm-6.7-6.7h1c0 2 1.4 4 3.2 5a5.6 5.6 0 002.6.7v1a6.9 6.9 0 01-5.7-3.2 6.7 6.7 0 01-1-3.5zm6.8-6.7v1c-2 0-4 1.2-5 3a5.7 5.7 0 00-.6 2.7h-1c0-2.3 1-4.5 3-5.7a6.6 6.6 0 013.6-1z"/>
+        <path fill="#fff" d="M338.2 169.5a6 6 0 016 6.2c0 3.4-2.6 6.2-6 6.2s-6.2-3-6.2-6.3 2.8-6.2 6.2-6.2z"/>
+        <path fill="#21231e" d="M344.8 175.7h-1c0-2-1.3-4.2-3.2-5a5.6 5.6 0 00-2.4-.7v-1a7 7 0 015.6 3 6.7 6.7 0 011 3.7zm-6.6 6.7v-1c2 0 4-1.3 5-3a5.7 5.7 0 00.6-2.7h1c0 2.3-1.2 4.5-3.2 5.7a6.6 6.6 0 01-3.4 1zm-6.7-6.7h1c0 2 1.2 4 3 5a5.6 5.6 0 002.7.7v1a6.9 6.9 0 01-5.7-3.2 6.7 6.7 0 01-1-3.5zm6.7-6.7v1c-2 0-4 1.2-5 3a5.7 5.7 0 00-.7 2.7h-1c0-2.3 1.2-4.5 3.2-5.7a6.6 6.6 0 013.5-1z"/>
+        <path fill="#edb92e" d="M454.2 276.3l-22 12.8-23.4-10 22-12.8z"/>
+        <path fill="#21231e" d="M431 266.7l-22 12.8-.4-1 22-12.7h.5v1zm-.4-1h.5-.4zm23.5 11l-23.3-10 .4-1 23.4 10v1h-.3zm.4-1l1 .5-1 .5v-1zm-22.4 13l22-13 .5 1-22 12.8h-.5v-.8zm.5.8l-.2.2h-.3l.5-.2zm-23.4-11l23.4 10-.4 1-23.3-10v-1h.4zm-.3 1l-1-.4 1-.4v1z"/>
+        <path fill="#c6363c" d="M431 270.6c5.8-.3 10.5 2.5 10.8 6.3.2 3.7-4.2 7-9.8 7.4-5.7.3-10.4-2.5-10.7-6.3-.2-3.6 4.2-7 9.8-7.4z"/>
+        <path fill="#21231e" d="M442.3 277h-1v-.7l-.2-.3v-.6l-.3-.3v-.2l-.3-.2-.2-.3-.2-.3-.3-.2-.3-.3-.2-.2-.3-.2h-.5l-.3-.3-.3-.2-.5-.2-.4-.2h-.3l-.4-.2h-.4l-.5-.3h-.9l-.5-.2h-.8l-.5-.2h-1l-.5.2v-1h3.6l.4.2.5.2h.5l.4.2.5.2.5.2.4.2.3.2.4.2.4.2.4.2.4.3.3.3.4.3.3.3.3.3.2.4.2.3.2.3.2.4v.3l.3.4.2.4v.8zm-10.3 8v-1l.4-.2h.9l.5-.2h.4l.4-.2h.5l.4-.3h.5l.4-.2.4-.2.4-.2.3-.2.4-.2.4-.3.4-.2.3-.2.3-.3.3-.2.3-.3v-.3l.3-.3.2-.4.2-.2v-.3l.2-.2v-.6l.2-.3v-1.1l1-.2v1.6l-.2.4v.3l-.3.5v.3l-.3.4-.3.3v.3l-.4.4-.3.3-.3.3-.3.2-.3.3-.4.3-.4.2-.4.3-.4.3-.4.2-.4.2-.5.2h-.4l-.4.2-.5.2h-.4l-.5.2h-.4l-.5.2h-1zm-11.2-6.8h1v.5l.2.3v.3l.2.3.2.3v.2l.3.3.2.2v.3l.4.2.2.3.3.2.2.2.3.2.4.2.2.2h.4l.4.3h.4l.4.2.4.2h.4l.5.2h1l.4.2h2.3v1H428l-.5-.2h-.4l-.5-.3h-.6l-.4-.3h-.4l-.5-.3-.3-.2-.3-.3-.4-.2-.4-.2-.3-.3-.3-.2-.3-.3-.3-.3-.3-.3v-.3l-.3-.3-.2-.3-.2-.4-.2-.3v-1l-.2-.4zm10.3-8l.2 1h-1.5l-.5.2h-.5l-.5.2-.4.2h-.5l-.4.3-.5.2-.4.2-.3.2-.4.2-.3.2-.3.3-.4.2-.3.3-.3.2-.2.3-.3.2-.2.3-.2.3-.2.4-.2.3v.3l-.3.3v.8l-.2.3v.6l-1 .2V277l.2-.4v-.3l.2-.4v-.5l.3-.3.2-.4.3-.3.2-.3.3-.3.2-.4.4-.3.4-.3.3-.3.4-.3.5-.2.3-.3.5-.3.4-.2.4-.2.6-.2h.4l.5-.2h.5l.5-.3h.5l.5-.2h1.1l.5-.2z"/>
+        <path fill="#edb92e" d="M382.4 270l23.8 9-19.7 13c-5-1.6-9-19-4-22z"/>
+        <path fill="#21231e" d="M406 279.4l-23.8-9 .4-1 23.7 9v1h-.3zm.3-1l1 .4-1 .5v-1zm-20 13.3l19.6-13.2.4.8-19.6 13.3h-.4v-1zm.5 1h-.4.4zm-4.2-23.3l-.4 1h.5l-.4.2-.4.3-.4.4-.2.5-.2.4-.2.7-.2.8v1.5l-.2.8v2.8l.3.8v1l.2.8.2 1 .2 1 .3.7v1l.5 1 .3.7.3.7.5.8.4.6.3.6.4.6.4.5.5.4.4.2.3.3.4.2-.3 1-.6-.3-.5-.3-.5-.3-.5-.5-.4-.6-.6-.6-.4-.7-.4-.7-.4-.7-.4-1-.3-.8-.3-1-.3-.8-.4-1-.2-.8-.2-1-.2-1v-.8l-.3-1v-5.2l.3-.8.2-.7.3-.6.3-.6.4-.5.4-.5.5-.4h.6zm-.5 0h.6-.5zm.4.4l.2-.4-.2.5zm-.3-.4h.6-.5z"/>
+        <path fill="#0c4076" d="M382.8 274.3c5.7-.6 10.5 2 11 5.8.3 3.8-4 7.4-9.6 8-3.6.3-6-3-6.3-6.3-.5-3.4 1-7 4.8-7.4z"/>
+        <path fill="#21231e" d="M394.2 280h-1v-.5l-.2-.3v-.3l-.2-.4-.2-.3-.2-.2-.2-.2-.2-.3-.2-.2-.3-.3-.2-.2-.3-.2-.3-.2-.4-.2-.3-.2-.4-.2-.3-.2h-.4l-.5-.3h-.4l-.4-.2h-.8l-.5-.2h-3.6l-.2-1h3.8l.4.2h.5l.4.2.4.2h.4l.5.3.4.2h.5l.4.3.2.2.4.3.3.2.2.3.3.3.3.3.2.2.3.3.2.3.2.3v.5l.3.4v.2l.2.4v.4zm-10 8.4v-1h1l.5-.2h.4l.6-.2.5-.2h.5l.4-.3.4-.2h.4l.4-.3.3-.3.4-.2.2-.2.4-.3.3-.2.2-.3.3-.2.2-.3.3-.3.2-.3.2-.2.2-.3v-.4l.3-.3v-.8l.2-.4v-1h1v1.6l-.2.3v.3l-.2.4-.2.3-.2.4-.2.3-.2.4-.3.4-.2.3-.3.3-.3.3-.5.3-.3.3h-.4l-.4.4-.4.2-.4.3h-.4l-.4.3-.5.2h-.5l-.4.3-.5.2h-.6l-.5.2h-.7l-.5.2h-.5zm-6.8-6.7h1v.7l.2.3v.3l.2.4v.3l.2.2v.2l.2.3.2.2v.3l.3.2.2.3v.2l.2.2h.2l.2.3h.2l.2.3.2.2h.3l.2.2h.2l.2.2h.2l.3.2h1.4v1h-2.1l-.3-.2h-.4l-.3-.3-.3-.2-.3-.2-.3-.2-.2-.2-.3-.2-.3-.2-.2-.2-.3-.3-.2-.2v-.2l-.3-.3-.2-.3v-.2l-.3-.4v-.3l-.3-.3-.2-.3v-.3l-.2-.3v-.6l-.2-.3v-.3zm5.4-8v1h-.2l-.4.2h-.8l-.3.3-.3.2-.3.2-.2.2h-.2l-.2.2v.2l-.3.2v.3h-.3v.3l-.2.3-.2.2v.7l-.2.3v.4l-.2.3v2.2h-1V279l.2-.3v-.3l.2-.2v-.3l.2-.3.2-.3v-.4l.3-.3.2-.3.2-.2v-.3l.3-.2.3-.2h.2l.3-.3.4-.2.3-.2h.3l.3-.2h.7l.4-.2h.4z"/>
+        <path fill="#fff" d="M457.5 280.4c1.7 0 3.2 1.5 3.2 3.2 0 1.8-1.5 3.3-3.2 3.3-1.8 0-3.2-1.6-3.2-3.4 0-1.7 1.4-3.2 3.2-3.2z"/>
+        <path fill="#21231e" d="M461.2 283.6h-1v-.6l-.2-.2v-.2l-.2-.3v-.2h-.2v-.2h-.2v-.2h-.2l-.2-.2-.3-.2h-.2l-.2-.2h-.7v-1h1l.3.2.2.2h.2l.3.2v.2h.2v.2h.2v.3h.2v.2l.2.2v.2h.2v.2l.2.3v.5l.2.2v.2zm-3.7 3.8v-1h.4l.3-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2.2-.2v-.2l.2-.2v-1h1.2v.8l-.2.2v.3l-.2.2v.2l-.2.2-.2.3h-.2v.3h-.3l-.2.2-.3.2-.3.2h-.6v.2h-.6v.2h-.3zm-3.7-3.8h1v1h.2v.2l.2.2v.2l.2.2h.2v.2h.2v.2h.2l.2.2h.2v.2h1v1.2h-.7l-.2-.2h-.5v-.2h-.3l-.2-.2-.3-.2-.2-.2h-.2v-.3h-.2l-.2-.3-.2-.3v-.2l-.2-.3v-.3l-.2-.3v-.8zm3.7-3.7v1h-.9l-.2.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2l-.2.3v.5h-.2v.8h-1v-1.2l.2-.2v-.3h.2v-.3l.2-.2.2-.2v-.2h.4v-.2l.2-.2h.2v-.2h.5v-.2h.4v-.2h1z"/>
+        <path fill="#fff" d="M408.7 283c1.8 0 3.2 1.6 3.2 3.4 0 1.7-1.5 3.2-3.3 3.2a3.2 3.2 0 01-3.2-3.2c0-1.8 1.4-3.3 3.2-3.3z"/>
+        <path fill="#21231e" d="M412.4 286.4h-1v-.9l-.2-.2v-.2l-.2-.2v-.2l-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.4l-.2-.2h-.8v-1.2h.7v.2h.7v.2h.3v.2h.3v.2h.3l.2.2.2.3h.2l.2.3.2.3v.3h.2v.6l.2.2v.9zm-3.7 3.7v-1h1v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.3h.2v-.5l.2-.2v-.4h1v.8l-.2.2v.3l-.2.2v.3h-.2v.3h-.2l-.2.3h-.2v.2h-.3l-.2.2h-.2v.2h-.3v.2h-.5l-.2.2h-.8zm-3.7-3.6h1v.8h.2v.5h.2v.2h.2v.2h.2v.2h.2l.2.2h.2v.2h.5v.2h.7v1h-1.2v-.2h-.3v-.2h-.2l-.2-.2-.2-.2h-.2v-.2h-.2v-.3h-.3v-.3h-.2v-.3l-.2-.2v-.2l-.2-.3v-.8zm3.7-3.8v1h-.7v.2h-.5v.2h-.2l-.2.2v.2h-.2l-.2.2v.2l-.2.2v.2h-.2v.7l-.2.3v.4h-1v-1l.2-.2v-.3l.2-.3.2-.3v-.3h.3v-.3h.2l.2-.2.2-.2h.2v-.2h.6l.3-.2h.5l.3-.2h.2z"/>
+        <path fill="#fff" d="M407 268.3c1.8 0 3.2 1.4 3.2 3.2 0 1.8-1.4 3.2-3.2 3.2a3.2 3.2 0 01-3.2-3.2c0-1.8 1.4-3.2 3.2-3.2z"/>
+        <path fill="#21231e" d="M410.7 271.5h-1v-.7l-.2-.2v-.3l-.2-.2h-.2v-.4h-.2v-.2h-.2l-.2-.2h-.2l-.2-.2h-.5v-.2h-.4v-1h.8v.2h.3l.3.2h.2l.3.2h.2v.2l.3.2.2.2.3.3.2.3v.3h.2v.4l.2.2v1zm-3.7 3.7v-1h1v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2.2-.2v-.4h.2v-1h1v1.2l-.2.2-.2.3v.3h-.2l-.2.3h-.2v.3h-.3v.2h-.2v.2h-.2l-.2.2h-.5l-.3.2h-.7zm-3.7-3.7h1v.8l.2.2v.4h.2v.2l.2.2v.2h.2v.2h.2v.2h.2l.2.2h.5l.2.2h.5v1h-.9l-.3-.2h-.2l-.3-.2-.3-.2h-.2l-.2-.2-.2-.3h-.3v-.3l-.2-.3v-.3h-.2v-.4l-.2-.2v-.8zm3.7-3.7v1h-.8v.2h-.5l-.2.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2l-.2.2v.3l-.2.2v.7h-1v-1.2h.2v-.6h.2v-.3h.2v-.3h.3l.2-.2v-.2h.3v-.2h.3l.2-.2h.4v-.2h.5l.2-.2h.7z"/>
+        <path fill="#fff" d="M457.3 266.2c1.8 0 3.2 1.4 3.2 3.2 0 1.8-1.4 3.2-3.2 3.2a3.2 3.2 0 01-3.2-3.2c0-1.8 1.6-3.2 3.3-3.2z"/>
+        <path fill="#21231e" d="M461 269.4h-1v-.8h-.2v-.3l-.2-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2h-.2l-.2-.2h-.2l-.3-.2h-.7v-1h1.1l.2.2h.3l.3.2.3.2.2.3h.2v.2h.2v.2h.2v.3h.2v.3l.2.2v.5l.2.2v.7zm-3.7 3.7v-1h1.2v-.2h.2l.2-.2.2-.2v-.2h.2v-.2h.2v-.2l.2-.2v-.5h.2v-.8h1v1.1l-.2.2v.2l-.2.2-.2.3-.2.3-.2.2-.2.2-.2.2h-.2v.2h-.3v.2h-.4l-.2.2h-1zm-3.7-3.6h1v.5l.2.2v.3l.2.2v.2h.2l.2.2v.2h.2v.2h.2l.3.2h.2l.2.2h.7v1h-1l-.3-.2h-.3l-.3-.2-.3-.2v-.2l-.3-.2-.2-.2v-.2h-.2v-.3h-.2v-.6l-.2-.2v-.7l-.2-.2v-.2zm3.7-3.7v1h-.7v.2h-.4l-.2.2h-.2v.2h-.2v.2l-.2.2-.2.2v.4h-.2v.8h-1.2v-.5l.2-.3v-.4l.2-.2v-.2h.2v-.3h.2v-.3h.2v-.2h.3v-.3l.3-.2.3-.2h.3l.2-.2h1z"/>
+        <path fill="#edb92e" d="M371 237.4c2.3-.8 6 4.6 7 4.5 1.2-3-1.2-10.5-5.5-16.3-3-1-3.2-3-3.8-7.3-.2-1.3-2.7-.4-2.7 2 0 2.3-.3 3.6.3 5.6.2.8 0 1.6-.8 2.3 4.5 1.8 5.6 4 5.4 9z"/>
+        <path fill="#21231e" d="M377.6 241.8l1 .3-.5.4h-.4l-.3-.2-.2-.2-.3-.3-.2-.2-.2-.2-.2-.2-.3-.3-.3-.2-.2-.2-.2-.3-.3-.2-.2-.2-.3-.2-.2-.3h-.3l-.3-.3h-.2l-.3-.3-.3-.2h-.2l-.3-.2h-.4l-.2-.2h-.4l-.4-1h1.3l.3.2h.3l.3.2.2.2h.3l.3.3.2.2h.3l.3.3.3.3v.2l.4.2.2.3.3.2v.2l.4.3.2.2.2.2.2.2.2.2.2.2h.2v.2h.3v.2l-.4.3zm1 .3l-.2.4h-.3l.5-.3zm-6.3-15.8l.4-1 .2.2.3.5.4.5.4.6.4.7.4.5.3.6.5.6.3.6.3.6.4.6.3.6.2.6.2.6.2.5.2.6.2.7.2.5v.6l.3.5v.6l.2.4v.5l.2.4v3.3l-.2.3-1-.2v-.3l.2-.3v-3.6l-.3-.5v-.4l-.2-.5-.2-.5-.2-.5v-.5l-.4-.6-.2-.7-.2-.5-.3-.6-.2-.6-.3-.5-.3-.5-.4-.6-.3-.7-.4-.5-.4-.6-.4-.6-.3-.5-.5-.5-.4-.5.3.2zm.4-1l.2.2-.3-.2zm-4.5-6.7h1v.7l.2.3v1l.2.3v.5l.2.3v.5l.2.2v.4h.2v.3l.2.2v.2h.2v.3h.2l.2.2v.2h.2l.2.2h.2l.2.2h.2l.2.2h.2l.3.2-.4 1h-.2l-.2-.2-.3-.2h-.2l-.2-.2h-.2l-.2-.3-.2-.2h-.2v-.2l-.3-.2-.2-.2-.2-.2v-.2l-.2-.2v-.2l-.2-.3v-.2l-.2-.2v-.3l-.2-.2v-.9l-.2-.3v-.6l-.2-.3V219l-.2-.5zm-1.7 1.8h-1v-1l.2-.2.2-.2v-.4h.2l.2-.3h.2l.2-.2.3-.2h.2l.2-.2h1.2v.2h.2v.3l.2.2v.2h-1.6v.2h-.2v.2h-.2v.2h-.2v.3l-.2.2v.8zm.3 5.6l-1 .2v-.6l-.2-.2V224h-.2v-3.6h1v4.2l.2.2v.7l.2.2zm-1 2l-.5.8v-1l.2-.2v-.2h.2v-.4h.2v-.4l-.2-.2v-.2l1-.3v1.8h-.2v.4h-.2v.2h-.2v.2l-.2.2h-.2v-.7zm-.5.8l-.8-.3.7-.6v.8zm5 8.6h1-1v-.5l.2-.5v-2l-.2-.3v-.7l-.2-.3v-.6l-.2-.3v-.2l-.2-.3-.2-.3v-.2l-.3-.3v-.2l-.3-.2-.2-.2-.3-.2-.2-.2-.3-.2h-.3l-.3-.3-.2-.2-.3-.2-.4-.2h-.3l-.4-.2.4-1 .4.2.5.2.4.2.3.2.3.2.4.2.3.2.3.2.3.2v.2l.4.3.2.3.3.3v.2l.3.3v.4l.3.3v.3l.3.3v.7l.2.3v.7l.2.4v2.9h-1zm1 0h-1l.5-.5.6.4zm-1 0v-.4h.5l-.4.4z"/>
+        <path fill="#edb92e" d="M368.8 218.5c-.4 1-.6 1.8-.7 3.4 0 1 .5 2 1.2 3 .8 1 1.8 2 3 2.6.8.5 1.6 1.7 2.3 3 .7 1.4 1.2 3 1.2 4 0 3.5.8 6.7 2.4 7.3 1.2.3 1.6.2 2.4 0-.2-.6 0-1.5-.7-2.4a8 8 0 01-1.4-3.7c0-1-.5-1.6-.2-3.3.4-1.2 1-1.6 1-2.7-.3-2-2-6-4.3-6s-3.4-.3-4.6-3.4c-.3-1-1-1.6-1.2-2z"/>
+        <path fill="#21231e" d="M368.6 222l-1-.2v-1.2l.2-.2v-1h.2v-.7h.2v-.4l1 .3v.4h-.2v1l-.2.2v1.5l-.2.3zm1 2.8l-.8.6v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.4h-.2v-.5l-.2-.2v-.7l-.2-.2v-.7h1v1.1h.2v.7h.2v.4h.2v.4h.2v.2h.2v.2zm3 2.4l-.6 1v-.2h-.4v-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.3v-.2h-.2l-.2-.2v-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2-.2-.2.8-.6.2.2.2.2v.2h.2l.2.2v.2h.2l.2.2.2.2h.2v.2h.2v.2h.3l.2.2.2.2h.2v.2zm2.4 3.2l-1 .4v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2h-.2l-.2-.2h-.2l.5-1h.2v.2h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2h.2v.2l.2.2v.2l.2.2v.2h.2v.3h.2v.3h.2zm1.2 4.2h-1v-.8l-.2-.2v-.8h-.2v-.5h-.2v-.4h-.2v-.5h-.2v-.2l-.2-.2 1-.4v.4h.2v.4h.2v.5l.2.2v.3h.2v.6h.2v1h.2v.7zm-1 0zm3 6.8l-.3 1h-.3l-.2-.2-.3-.3v-.2l-.3-.2h-.2l-.2-.3v-.2h-.2v-.3l-.2-.2v-.3l-.2-.2v-.3l-.2-.2v-.5l-.2-.3v-.8l-.2-.3V236l-.2-.3v-1.5h1v2.1l.2.3v1.4l.2.2v.8l.2.2v.2l.2.2v.4l.2.2v.2l.2.2.2.2v.2h.2v.2h.2l.2.2zm1.7.8l1-.3-.5.5h-.4v.2h-1.4l-.2-.2h-.4l.3-1h.7v.2h1.2v-.2l-.3.7zm1-.3v.4h-.5l.4-.5zm-1.7-2l.8-.7h.2v.4h.2v.4h.2v.8l.2.2v1l-1 .4V241l-.2-.2v-.8h-.2v-.2zm-1.5-4h1v.8h.2v.8l.2.2v.2l.2.2v.2h.2v.5h.2v.2h.2v.2l-.7.7v-.2l-.2-.2v-.4h-.2v-.5h-.2v-.2l-.2-.3v-.2l-.2-.2v-.2l-.2-.3v-.4l-.2-.2v-.5zm1 0zm-1.2-3.4l1 .2v3l.2.2-1 .2v-.8l-.2-.2v-2.6zm1-2.5h1v.7h-.2v.6l-.2.2v.2l-.2.2v.2h-.2v.6h-.2v.2l-1-.2v-.4h.2v-.4l.2-.2v-.2l.2-.2v-.2l.2-.2v-.9zm-4-5.5v-1h1.1l.3.2h.2l.2.2h.3l.2.2.2.2v.2l.3.2v.2l.3.2.2.3v.2l.3.3.2.2.2.3v.2l.2.3v.2l.2.3v.3l.2.2v.3l.2.2v.5l.2.3v.8h-1v-1l-.2-.2v-.4l-.2-.3-.2-.4v-.2l-.2-.2v-.3l-.3-.3v-.2l-.2-.2v-.3l-.2-.2-.3-.3-.2-.2-.3-.3-.3-.2-.3-.2h-.8zm-5-3.7l1-.4v.3l.2.3v.2l.2.2v.2l.2.2v.2l.2.2.2.2v.2h.2v.2h.2v.2h.4v.2h.7v.2h1.7v1H373l-.3-.2h-.4v-.2h-.3v-.2h-.3v-.3h-.3v-.2l-.2-.2-.2-.3-.2-.2v-.2l-.2-.2-.2-.4-.2-.2v-.3l-.2-.2zm-.4-2l-1-.5h1.2v.4h.2v.2h.2v.2h.2v.4h.2v.2l.2.2v.2l.2.2-1 .4v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2h-.2v-.2h.8zm-1-.5l.5-1 .5 1h-1zm.6.2l.4.2-.4-.2zm-.5-.2l.4-1 .5 1h-1z"/>
+        <path fill="#edb92e" d="M360 227l2-1a6 6 0 014-.2c5.5 1.7 8 11.6 1.8 14-1.2.2-2.3-1-3.4-3.3a20.5 20.5 0 00-4-6.8c-1-1-1-2-.4-2.6z"/>
+        <path fill="#21231e" d="M362 225.5l.3 1h-.4v.2h-.4v.2h-.8v.2h-.2l-.2.2-.7-.7.2-.2v-.2h.4v-.2h.8v-.2h.4v-.2h.4zm4-.2l-.2 1h-.5v-.2h-2.1v.2h-.7l-.2.2-.5-1h.4l.3-.2h.8v-.2h1.6l.2.2h.4zm2 15l-.2-1h-.2l.5-.2h.6l.4-.4.4-.3.3-.4.3-.5.2-.4.2-.3.2-.5v-.5l.2-.5V232l-.3-.4-.2-.5-.2-.5v-.5l-.4-.4-.2-.5-.4-.3-.3-.5-.4-.3-.3-.5-.4-.3-.5-.3-.3-.4-.5-.2h-.4l.2-1h.6l.5.3.7.3.4.4.6.3.5.4.5.6.3.4.4.5.3.5.3.6.3.5.3.7.2.6v.6l.3.5v3.4l-.2.5-.2.6-.3.6-.2.5-.3.5-.4.5-.4.4-.4.3-.6.3-.6.3zm0 0zm-4-3.6l1-.4v.4l.2.2.2.3.2.3v.2h.2v.5h.2v.2l.2.2.2.2h.2v.2h.2l.2.2h.8v1.2h-.8v-.2h-.5l-.2-.2-.2-.2-.2-.2-.2-.2v-.2h-.2l-.2-.2v-.2h-.2v-.3l-.2-.2v-.2h-.2v-.2l-.2-.2v-.2l-.2-.3-.3-.3zm0 0zm-4-6.6l.7-.6.2.2v.2h.2l.2.3v.3h.2l.2.3v.2l.2.2h.2v.3l.3.2v.2l.2.2.2.2v.4l.2.2.2.3v.3l.2.2.2.3v.3l.2.3v.3l.3.3.2.4v.3l.3.3v.3l-1 .4v-.6l-.2-.2v-.3l-.3-.2v-.3l-.2-.2v-.5l-.3-.3v-.2l-.2-.2v-.3l-.3-.2-.2-.3v-.2l-.3-.2v-.2h-.2v-.3h-.3v-.3l-.2-.2-.3-.3v-.2l-.2-.2h-.2v-.2l-.2-.2zm0 0zm0-3.4v1l.3-.2v.2h-.2v.8h.2v.4l.2.2.2.2v.2l-.7.7h-.2v-.2l-.2-.2-.2-.2v-.3h-.2V227h.2v-.2h.2l.4-.2zm-.4 0h.4-.4zm.4 1v-1l.3 1h-.3zm.3 0h-.2.3z"/>
+        <path fill="#edb92e" d="M362.8 227.7c5.4-2 9.4 8.3 4.3 10.2-2.6 1-2.8-2.4-3.4-4.3-.7-2.5-6-4-.8-6z"/>
+        <path fill="#21231e" d="M367.3 238.4l-.4-1h.3l.3-.3.3-.2.2-.3.2-.3.2-.3v-.5l.2-.4v-2.7l-.2-.4-.2-.5-.2-.4-.2-.4-.3-.4-.3-.4-.2-.3-.4-.4-.3-.2-.3-.2-.4-.2-.4-.2h-.4l-.3-.2h-1.3l-.4.2-.4-1h.6l.5-.2h1.6l.5.3.5.2.4.2.4.4.5.4.4.4.3.4.3.5.2.4.3.6.3.5.2.6.2.6v.5l.2.5v1.6l-.2.5v.5l-.3.5-.2.4-.3.5-.4.3-.4.4-.4.2-.5.2zM363 234l1-.4.2.2v.6l.2.2v.8l.2.2v.4l.2.2v.2l.2.3.2.3v.2h.2v.2h.2l.2.2h1.2l.3.8h-.3l-.3.2h-1.2l-.2-.2h-.2v-.2l-.3-.2-.3-.3v-.2l-.2-.2v-.2h-.2v-.3l-.2-.2v-.4h-.2v-.8l-.2-.2v-.8l-.2-.2v-.2zm-.4-6.7l.4 1h-.5l-.3.3h-.4l-.2.3h-.2l-.2.2v.2h-.2v.4h.2v.3l.2.2v.2h.3v.3l.3.2h.2l.2.2.2.2.2.2.2.2.2.3.2.3.2.2v.3l.3.2v.6l-1 .3v-.7l-.2-.2h-.2v-.3l-.3-.2h-.2v-.3l-.3-.2-.2-.2-.2-.2-.2-.2v-.2l-.2-.2h-.2v-.3l-.3-.3v-.2l-.2-.2v-.8l.2-.3v-.3l.3-.2.2-.2.3-.3.3-.2h.4l.4-.3.6-.2z"/>
+        <path fill="#0c4076" d="M363.4 229.3c2.6-1 6.2 5 3 6.5-2.3 1-4-.3-4.8-2-.7-2 0-3.8 1.7-4.5z"/>
+        <path fill="#21231e" d="M366.5 236.3l-.4-1h.3l.2-.2h.2v-.2l.2-.2v-2l-.2-.3v-.3h-.2v-.4l-.3-.3-.2-.2-.3-.4-.2-.2-.2-.2h-.2v-.2l-.3-.2h-1.1l-.3-1h1.5l.4.3.3.2.2.3.2.2.3.2.2.2.2.3v.3l.3.3.2.4.2.3v.4l.2.4v2.6l-.2.3-.2.4-.2.3-.2.2h-.4l-.3.3zm-5.4-2.5l1-.3.2.3.2.3v.2l.2.3.2.2.2.2h.3v.2h.2l.3.2h.4v.2h1.3l.3-.2.5 1h-.7l-.2.2h-1.9l-.2-.2h-.2v-.2h-.3l-.2-.2-.3-.2-.3-.3-.3-.3h-.2v-.3l-.2-.3-.2-.3v-.2l-.2-.2v-.2zm2.2-5l.3 1h-.3l-.2.2-.2.2-.2.2-.2.2-.2.2v.2h-.2v.7l-.2.2v1.1l.2.2v.3l-1 .3v-.7l-.2-.3v-1.5l.2-.2v-.3l.2-.2.2-.3.2-.3v-.2l.3-.2v-.2h.3l.2-.2.3-.2h.2l.2-.2zm.2.5l-.2-.5.2.5z"/>
+        <path fill="#fff" d="M400 179.7c3.6 0 6.4 2.8 6.4 6.4 0 3.6-2.8 6.5-6.3 6.5s-6.3-3-6.3-6.4 3-6.3 6.4-6.3z"/>
+        <path fill="#21231e" d="M407 186h-1c0-2-1.4-4.3-3.3-5.2a5.8 5.8 0 00-2.6-.6v-1c2.4 0 4.7 1.2 6 3.2a7 7 0 011 3.7zm-7 7v-1a6 6 0 005.3-3.3 6 6 0 00.6-2.6h1c0 2.4-1.3 4.7-3.3 6a6.8 6.8 0 01-3.6 1zm-6.8-7h1a6 6 0 003.3 5.4 5.8 5.8 0 002.6.6v1a6.8 6.8 0 01-5.7-3.3 7 7 0 01-1-3.6zm7-7v1.2a5.9 5.9 0 00-5.3 3.2 6 6 0 00-.8 2.7h-1a7 7 0 013.3-5.8 6.8 6.8 0 013.6-1z"/>
+        <path fill="#fff" d="M395.4 169c3.5 0 6.4 3 6.4 6.4 0 3.6-3 6.4-6.4 6.4s-6.3-2.8-6.3-6.4c0-3.5 3-6.4 6.4-6.4z"/>
+        <path fill="#21231e" d="M402.3 175.4h-1c0-2.2-1.3-4.3-3.2-5.3a5.8 5.8 0 00-2.6-.5v-1c2.4 0 4.6 1.3 6 3.2a7 7 0 011 3.7zm-7 7v-1c2.3 0 4.4-1.4 5.4-3.3a6 6 0 00.6-2.6h1c0 2.4-1.2 4.7-3.2 6a6.8 6.8 0 01-3.6 1zm-6.7-7h1a6 6 0 003.2 5.3c.8.4 1.7.6 2.6.6v1a6.8 6.8 0 01-5.8-3.2 7 7 0 01-1-3.6zm6.8-7v1c-2 0-4.2 1.4-5.2 3.3a6 6 0 00-.6 2.7h-1c0-2.3 1.2-4.6 3.2-6a7 7 0 013.6-1z"/>
+        <path fill="#fff" d="M410.7 131.5c3.4 0 6 2.7 6 6s-2.6 6.3-6 6.3-6.2-2.7-6.2-6.2a6 6 0 016.2-6z"/>
+        <path fill="#21231e" d="M417.3 137.7h-1c0-2.2-1.2-4.2-3-5a5.6 5.6 0 00-2.6-.7v-1a7 7 0 015.6 3 6.7 6.7 0 011 3.7zm-6.6 6.6v-1c2 0 4-1.2 5-3 .4-1 .6-1.8.6-2.6h1c0 2.2-1.2 4.5-3 5.6a6.6 6.6 0 01-3.6 1zm-6.7-6.7h1c0 2.2 1.3 4.2 3.2 5a5.6 5.6 0 002.5.7v1a6.6 6.6 0 01-5.6-3 6.7 6.7 0 01-1-3.6zm6.7-6.6v1c-2 0-4 1.2-5 3a5.7 5.7 0 00-.7 2.6h-1a7 7 0 013-5.6 6.6 6.6 0 013.7-1z"/>
+        <path fill="#fff" d="M400.4 136.2c3.5 0 6.3 3 6.3 6.4 0 3.5-2.8 6.4-6.3 6.4s-6.4-3-6.4-6.4c0-3.5 2.8-6.4 6.4-6.4z"/>
+        <path fill="#21231e" d="M407.2 142.6h-1a6 6 0 00-3.3-5.3 5.8 5.8 0 00-2.6-.6v-1c2.3 0 4.6 1.2 5.8 3.2a7 7 0 011 3.6zm-6.8 7v-1c2 0 4.2-1.4 5.2-3.3a6 6 0 00.6-2.7h1c0 2.3-1.2 4.7-3.2 6a6.8 6.8 0 01-3.6 1zm-7-7h1c0 2.2 1.4 4.3 3.3 5.3a5.8 5.8 0 002.7.5v1a7.2 7.2 0 01-6-3.2 7 7 0 01-1-3.7zm7-7v1a6.2 6.2 0 00-5.3 3.3 6 6 0 00-.5 2.6h-1c0-2.4 1.2-4.7 3.2-6a6.8 6.8 0 013.7-1z"/>
+        <path fill="#fff" d="M392.8 145.3c3.5 0 6.3 2.8 6.3 6.4 0 3.5-2.7 6.4-6.2 6.4s-6.4-2.8-6.4-6.3c0-3.6 3-6.4 6.4-6.4z"/>
+        <path fill="#21231e" d="M399.6 151.7h-1a6 6 0 00-3.2-5.3 5.8 5.8 0 00-2.6-.6v-1c2.3 0 4.6 1.2 5.8 3.2a7 7 0 011 3.7zm-6.8 7v-1c2 0 4.2-1.4 5.2-3.4a6 6 0 00.6-2.6h1c0 2.3-1.2 4.6-3.2 6a6.8 6.8 0 01-3.6 1zm-7-7h1c0 2 1.4 4.3 3.3 5.2a5.8 5.8 0 002.8.6v1a7.4 7.4 0 01-6-3.3 7 7 0 01-1-3.6zm7-7v1a6 6 0 00-5.3 3.3 6 6 0 00-.6 2.7h-1c0-2.4 1-4.7 3.2-6a7 7 0 013.6-1z"/>
+        <path fill="#fff" d="M391.5 156.7c3.6 0 6.4 2.8 6.4 6.4s-3 6.5-6.5 6.5-6.3-3-6.3-6.4 2.8-6.3 6.3-6.3z"/>
+        <path fill="#21231e" d="M398.4 163h-1c0-2-1.3-4.2-3.2-5.2a5.8 5.8 0 00-2.7-.6v-1c2.4 0 4.7 1.2 6 3.2a7 7 0 011 3.7zm-7 7v-1a6 6 0 005.4-3.3 6 6 0 00.6-2.6h1c0 2.5-1.3 5-3.4 6a6.8 6.8 0 01-3.5 1zm-6.7-7h1c0 2.3 1.3 4.4 3.2 5.4.7.4 1.6.6 2.5.6v1a7 7 0 01-5.8-3.2 7 7 0 01-1-3.7zm6.8-6.8v1c-2 0-4.2 1.3-5.2 3.2a6 6 0 00-.6 2.7h-1c0-2.3 1.2-4.6 3.2-5.8a7 7 0 013.5-1z"/>
+        <path fill="#edb92e" d="M474.4 198c-2.7-5-5.6-8.2-8.6-9.6 4.2-13.2 5.2-30.2 2.7-51-.2-3.3-1-4.6-2.2-4.6-1 0-1.7 1.6-1.8 5.2.8 11.6 1.7 21.6 1.2 30.2-.5 7.6-2.3 14-4.2 21.2-.3 1 .4 1.7 3.8 3.7 2.6 1.5 4.2 3.3 4.7 5 .7-.2 1.2 0 1.5 0 2.5.8 3.6.6 3 0z"/>
+        <path fill="#21231e" d="M465.3 188.2l1 .3-.3-.6h.3l.3.2.3.2.2.2h.3l.3.3h.3l.4.4.2.2.3.2.2.3.3.3.3.3.3.3.3.2.3.3.3.3.2.3.2.5.3.3.3.4.2.3.3.4.3.3.2.4.3.4.3.5.2.5.3.4.3.4.3.5.3.5-1 .5-.3-.5-.2-.4-.3-.5-.2-.5-.3-.4-.3-.3-.2-.4-.3-.4-.3-.5-.3-.4-.2-.2-.3-.4-.4-.3-.2-.2-.3-.3v-.3l-.4-.3-.3-.4-.2-.3-.2-.2-.3-.2-.2-.2-.3-.2-.3-.2-.2-.2-.3-.2-.3-.2-.3-.2h-.3l-.3-.3-.4-.2-.3-.6zm.3.6h-.4v-.6l.4.6zm2.4-51.5h1l.2 2 .2 1.8.2 2 .2 2v1.8l.2 1.8v1.8l.2 1.8v15l-.3 1.5-.2 1.5v1.5l-.3 1.5-.2 1.5-.2 1.4-.2 1.5-.2 1.3-.3 1.4-.3 1.3-.3 1.4-.3 1.3-.4 1.3-.3 1.3-.4 1.2-1-.3.4-1.2.4-1.3.4-1.3.3-1.3.3-1.2.3-1.3.3-1.4.2-1.3.3-1.4.3-1.5.2-1.4V172l.3-1.6V169l.2-1.7v-1.6l.2-1.6v-13.6l-.2-1.8v-2l-.2-1.7-.2-2-.2-1.8-.2-2-.2-2zm0 0zm-1.7-4v-1h.6v.2h.3v.2h.2l.2.3h.2v.5h.2v.3l.2.2v.3l.2.2v.4l.2.4v.9l.2.3v.4h-1v-.9l-.2-.2v-.6l-.2-.2v-.5h-.2v-.5h-.2v-.2l-.2-.2h-.2v-.2h-.4zM465 138h-1v-1.7l.2-.3v-1l.2-.3v-.7h.2v-.3l.2-.3v-.3h.2l.2-.2.3-.2.2-.2h.5v1h-.2v.2h-.2v.2l-.2.2v.3l-.2.3v.6l-.2.2v1.6l-.2.4v.7zm-1 0zm2.2 30.2h-1V154l-.2-1v-2.8l-.2-1v-2l-.2-1v-1l-.2-1v-2l-.2-1V139l-.2-1 1-.2v1l.2 1.2v2l.2 1v2.2l.2 1v2l.2 1v2l.2 1v2.8l.2 1v12zm-4.3 21.3l-1-.3.2-.6v-.7l.3-.8.2-.6.2-.7v-.7l.2-.7.2-.6.2-.7v-.6l.3-.6v-.6l.2-.6.2-.7v-.5l.2-.6.2-.8v-.6l.2-.7.2-.7v-.7l.2-.6v-.7l.2-.6v-.7l.2-.7v-.7l.2-.6V169l.2-.8h1v1.5l-.2.7v1.5l-.2.6v.7l-.2.8v.7l-.2.6v.8l-.2.7-.2.6v.8l-.2.6-.2.7v.7l-.3.7v.6l-.3.7v.6l-.3.6-.2.6v.6l-.3.7-.2.5-.2.7v.6l-.3.7-.2.7-.2.6v.7zm3.6 3l-.5 1-.2-.2h-.3l-.3-.3-.3-.2h-.4l-.2-.3h-.2l-.3-.3h-.3v-.2l-.3-.2h-.2l-.2-.2-.2-.3h-.2v-.2h-.2l-.2-.2v-.2l-.2-.2v-1l1 .2v.5h.2v.2l.2.2h.2v.2h.2l.2.2.3.3h.2l.2.2.2.2h.2l.2.3h.3l.3.3.3.2h.3zm0 0zm4.2 5.2l.4 1-.7-.4v-.2l-.2-.2v-.3l-.2-.2v-.3l-.2-.3-.3-.3-.2-.3-.3-.2-.3-.3v-.2h-.3v-.2h-.3v-.2l-.3-.2h-.2v-.3h-.3l-.2-.2h-.3l-.2-.2-.2-.2h-.2l.6-1 .2.2h.2l.3.3.2.2.2.2h.2v.3h.4l.2.3.3.3.3.3.2.2.3.3v.3l.3.2h.2v.3l.3.2v.2h.2v.3l.2.2v.2l.2.3v.3l.2.2v.2l-.6-.3zm.4 1h-.5l-.2-.4.7.3zm1.4-1.2l-.3 1h-1l-.4-.8h.2l.2-.2h1.4zm3.3.5h-1l.7-.4.2.2v.8l-.2.2h-.2v.2h-1.8l-.2-.2h-.3l-.2-.2h-.5l.3-1h.7l.2.2h1v.2h.7v.4l.7-.4zm-1 0v-1l.7.6-.8.4zm0 0h1l-1 .3v-.3z"/>
+        <path fill="#edb92e" d="M458.4 214.6c1.6-1 2-.8 2.4-1.4.6-.8.6-2.2.4-3.5-.8-5.3 2.4-4.6 6-2.2 1.7 1 3.5 4 5 5.3s2.8 1.5 3.2 2v9.2c-.4.6-1.7.7-3.2 2-1.5 1.5-3.3 4.2-5 5.4-3.6 2.3-6.8 3-6-2.2.2-1.3.2-2.7-.4-3.5-.5-.7-.8-.4-2.4-1.4a7 7 0 01-2.3-2.2c-.4-.8 0-1.7 0-2.6 0-1-.4-1.8 0-2.6.6-.8 1.4-1.6 2.4-2.2z"/>
+        <path fill="#21231e" d="M460.4 213l.8.5-.2.2-.2.2h-.4v.2h-.4l-.2.2h-.2l-.2.2h-.2v.2h-.5v.2l-.7-1h.6v-.2h.2l.2-.2h.2l.2-.2h.4v-.2h.4v-.2h.2zm.3-3.2l1-.2v2.9l-.2.3v.2h-.2v.2l-1-.5v-.2h.2v-.4h.2v-2.6zm6.7-2.8l-.6 1-.3-.3-.3-.2-.3-.2-.4-.2h-.3l-.3-.2h-.3l-.3-.2h-.3v-.2h-.4l-.2-.2h-1.1v.2h-.2v.2l-.2.2v.6l-.2.3v2l-1 .2v-3l.2-.4v-.3l.3-.2.3-.2.2-.2h.2l.2-.2h.2l.2-.2h1.5v.2h.5l.3.2h.3l.4.3h.3l.3.2.4.2.3.2.3.2.4.2zm5 5.4l-.6.7-.3-.2-.3-.3-.3-.3-.2-.2-.2-.2-.3-.3-.2-.2v-.2h-.2v-.3l-.3-.2-.3-.3-.2-.2v-.2l-.3-.2v-.2h-.3l-.2-.3-.3-.2-.2-.2h-.2l-.2-.2v-.2h-.3v-.2h-.2l.6-1 .2.2.3.2v.2h.3v.3h.3l.2.2.2.2v.2l.3.2h.2v.3l.3.3.2.2v.2l.3.2.3.3h.2v.3l.3.2.2.2.2.2.3.3v.2h.3v.3h.3v.3h.2zm3.5 2.4h-1.2v.3h-.2l-.2-.2h-.2v-.2h-.4l-.2-.2h-.2v-.2h-.3v-.2h-.3v-.2l-.3-.2-.3-.2-.2-.3.7-.6h.2v.2h.2v.2h.2v.2h.2v.2h.3l.2.2.2.2h.2l.2.2h.2l.2.2h.2v.2h.4v.2l.2.2v.2zm-.2-.2v.2-.2zm0 4.8h-1v-4.5l1-.2v4.5zm-1 0zm0 0h1-1zm0 0zm1 5l-1-.7v.3-4.4h1v4.7zm0-.4v.2-.2zm-3.3 2.5l-.7-.8h.2v-.2l.3-.2.3-.2h.3v-.2h.3v-.2h.2l.2-.2h.2v-.2h.4v-.2h.4v-.2l1 .5-.2.2-.2.2h-.2v.2h-.4l-.2.2h-.2v.2h-.4v.2h-.3v.2h-.2l-.2.2-.2.2v.2h-.3zm-5 5.3l-.7-.8h.2v-.2l.3-.2.3-.2.2-.2.3-.3.2-.2.2-.2.2-.2v-.2h.3v-.3l.2-.3.2-.2v-.2l.3-.2.3-.2v-.2l.3-.2.2-.2v-.2h.3v-.3l.3-.2.2-.2h.2v-.3h.3v-.3l.8.8-.2.2-.2.2-.2.2v.2h-.3v.3l-.3.2-.3.2-.2.2-.2.2-.2.2v.2l-.3.2v.2l-.2.2h-.2v.3h-.3l-.2.3v.2h-.2l-.2.3-.2.2-.3.3-.3.3-.3.2zm-6.8-2.7l1 .3v2.6l.2.2v.2h.2v.2h1.7v-.2h.4l.3-.2h.3l.3-.3.3-.3h.3l.2-.3.3-.2.3-.2.6.8-.4.2-.3.3-.3.2h-.4l-.3.3-.3.2h-.3l-.2.3h-.4l-.3.2h-.4l-.3.2h-.9l-.3-.2h-.3l-.2-.3-.2-.2-.2-.2v-.3l-.2-.2v-.7l-.2-.3V229zm-.3-3l.8-.6v.2h.2v.4h.2v.6l.2.2v2.4l-1-.2v-2.5h-.2v-.4h-.2v-.2zm-2.3-1.3l.7-.8h.2l.2.2h.2l.2.2h.2l.2.2h.4v.2h.2v.2h.2l.2.2.2.2-.8.6-.2-.2h-.2v-.2h-.4l-.2-.2h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.3zm.7-.8l.5.2-.5-.3zm-3-1.7l.8-.5.2.2v.2h.2v.4h.2v.2h.2v.2h.2v.2h.2l.2.2.2.2h.2v.2h.2l-.5 1v-.2h-.2l-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2zm-.3-3h1v2.4l-.7.5v-.2h-.2v-.4l-.2-.2v-2.1zm.3-2.8l.8.6v.4l-.2.2v1.8h-1V217h.2v-.4h.2zm2.4-2.4l.7 1h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2-.2.2-.2.2v.2h-.2v.2h-.2v.2l-1-.5h.2v-.2l.2-.2.2-.2v-.2h.2l.2-.2v-.2h.2v-.2h.2l.2-.2h.2v-.2l.2-.2h.2v-.2h.2zm.7 1l.5-.3-.5.3z"/>
+        <path fill="#21231e" d="M475.5 220.2v1c-4 .4-7 2-9.7 4.3 1.8-2.7 5.7-4.7 9.7-5.3zm0-1.6v-.8c-4-.5-7-2-9.7-4.4 1.8 2.7 5.7 4.6 9.7 5.2z"/>
+        <path fill="#edb92e" d="M461.2 207.3c1 .4 2.3 1 3.4 2 1.6 1.5.6 4-1.5 6.6-.6.7-1 2-1 3.5 0 1.3.5 2.7 1 3.5 2.2 2.5 3.2 5 1.6 6.6-1 1-2.3 1.5-3.4 2v-2.4c.2-1.3.2-2.7-.4-3.5-.5-.7-.8-.4-2.4-1.4a7 7 0 01-2.3-2.2c-.4-.8 0-1.7 0-2.6 0-1-.4-1.8 0-2.6.6-.8 1.4-1.6 2.4-2.2 1.6-1 2-.8 2.4-1.4.6-.8.6-2.2.4-3.5v-2.4z"/>
+        <path fill="#21231e" d="M465 209l-.8.6-.2-.2-.2-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.4v-.2h-.5v-.2h-.2l-.2-.2h-.2l-.2-.2h-.2l.4-1h.2l.2.2h.2l.2.2h.3l.2.2h.2v.2h.3l.2.2h.2v.2h.3v.2h.2l.2.2.2.2.2.2zm-1.5 7.2l-.8-.6.2-.3v-.2h.2l.2-.3.2-.3v-.2l.3-.2v-.5l.2-.2v-.2h.2v-.3l.2-.2v-.4h.2v-1.6l-.2-.3-.2-.2-.2-.2.7-.7.3.3v.2l.2.2v.2h.2v.5l.2.2v1l-.2.2v.4l-.2.2v.5l-.2.3v.3l-.3.2v.5l-.3.2v.3l-.3.2-.2.3v.2l-.3.2-.3.3-.2.2zm-1 3.3h-1v-.7l.2-.2v-1.2h.2v-1h.2v-.4l.2-.2v-.2h.2v-.2l1 .6h-.2v.4h-.2v.2l-.2.2v.9h-.2v1.4h-.2v.5zm1 3.2l-.8.6v-.2h-.2v-.2h-.2v-.4h-.2v-1.1l-.2-.3V220h-.2v-.5h1v1.1l.2.2v.4l.2.2v.4l.2.2v.2h.2v.2zm1.5 7.3l-.8-.8h.2v-.2h.2v-.3l.2-.2v-1.9l-.2-.2v-.2l-.2-.2v-.2l-.2-.3v-.2l-.2-.2-.3-.3v-.3l-.3-.2-.2-.2v-.2l-.3-.3-.3-.2.8-.6.2.2h.2v.4l.2.2.2.3h.2v.3l.3.3v.5l.3.3v.3l.2.2v.5l.2.2v.5l.2.2v.7l-.2.4v.4l-.2.2v.2l-.2.2v.2l-.3.2v.2zm-4.3 1.7l1-.2-.7-.4h.7v-.2h.4l.2-.2h.2l.2-.2h.2v-.2h.4v-.2h.2l.2-.2.2-.2h.2v-.2h.2v-.2l.8.8h-.2v.2h-.2v.2h-.2l-.2.2-.2.2h-.2l-.2.2h-.2v.2h-.4v.2h-.4v.2h-.5v.2h-.2l-.2.2h-.2l-.7-.3zm.7.4l-.6.3v-.6l.6.4zm-.7-3l1 .3v2l-1 .3v-2.4zm-.3-3l.8-.6v.2h.2v.4h.2v.6l.2.2v2.4l-1-.2v-2.4h-.2v-.4h-.2v-.2zm-2.3-1.3l.7-.8h.2l.2.2h.2l.2.2h.2l.2.2h.4v.2h.2l.2.2.2.2.2.2-.8.6-.2-.2h-.2v-.2h-.4l-.2-.2h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.3zm0 0l-.3-.2.4.2zm-2.3-2.4l.8-.5.2.2v.2h.2v.4h.2v.2h.2v.2h.2v.2h.2l.2.2h.2v.2h.2v.2h.2l-.5 1v-.2h-.2l-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2zm0 0l.3.5-.3-.5zm-.3-3h1v2.4l-.7.5v-.2h-.2v-.4l-.2-.2v-2.2zm.3-2.8l.8.6v.4l-.2.2v1.8h-1V217h.2v-.4h.2zm2.4-2.4l.7 1h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2-.2.2-.2.2v.2h-.2v.2h-.2v.2l-1-.5h.2v-.2l.2-.2.2-.2v-.2h.2l.2-.2v-.2h.2v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2h.2zm2.4-1l.8.5-.2.2-.2.2h-.4v.2h-.4l-.2.2h-.2l-.2.2h-.2v.2h-.5v.2l-.7-1h.6v-.2h.2l.2-.2h.2l.2-.2h.4v-.2h.4v-.2h.2zm.3-3.2l1-.2v2.9l-.2.2v.2h-.2v.2l-1-.5v-.2h.2v-.4h.2V210zm.5-2v-1l.5.6v2.1l-1 .2V207l.5.6zm0-1h.6v.6l-.6-.6zm0 0v1h-.2l.2-1zM361 226.3l.7-.3c-1.6-2.2-2-4.2-1.3-6.3-1.3 1.6-1 4.2.6 6.6z"/>
+        <path fill="#edb92e" d="M410.7 200c1.4 1.6 1.2 2 2 2.5 1 .6 2 .4 3.3 0 5-2 5 2 3.5 6.4-.7 2-2.8 4.3-3.7 6.2-1 1.7-.7 3-1 3.5a95.4 95.4 0 01-4 .6l-4 .5c-.6-.3-1-1.6-2.6-3s-4.4-3-6-4.6c-3-3.5-4.6-6.8.2-6.7 1.2 0 2.4-.2 3-1 .4-.7 0-1 .4-3 .3-1.2.8-2.3 1.4-3 .6-.8 1.5-.6 2.3-.7 1-.2 1.6-.7 2.5-.2 1 .4 2 1.2 2.7 2.3z"/>
+        <path fill="#21231e" d="M413 202l-.6 1-.2-.2-.2-.2-.2-.2v-.2h-.2v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.3-.3-.3.8-.6.3.2.2.3v.2h.2v.4h.2v.4h.2v.2l.2.2v.2h.2v.2l.2.2zm-.6 1zm3.5-1l.2 1h-.5l-.2.2h-.8v.2h-1.2l-.3-.2h-.2l-.2-.2h-.2l.5-1v.2h.8v.2h1l.2-.2h.4l.2-.2h.3zm4 7l-1-.3v-.4l.2-.4v-.5l.2-.4v-.3l.2-.3v-.7l.2-.4v-1.7l-.2-.2v-.4h-.2l-.2-.3h-.2l-.3-.2H417l-.4.3h-.4l-.3-.8.3-.2h.5l.4-.2h1.8l.3.2h.3l.2.3.2.4v.2l.3.3.2.4v3.3l-.2.4v.4l-.2.4v.4l-.2.4v.4zm-3.7 6.4l-1-.5v-.2l.2-.2.2-.2v-.2l.2-.2v-.4l.2-.2.2-.2v-.2l.2-.2.2-.2.2-.3.2-.2.2-.3.2-.2v-.2l.2-.2h.2v-.3l.2-.2v-.2l.2-.2.2-.3v-.2l.2-.2v-.2l.2-.3 1 .3v.2l-.2.3v.2l-.2.2-.2.3v.2l-.2.2v.3l-.3.2-.2.2v.2l-.2.2-.2.2v.2l-.2.2-.2.2v.2l-.3.2v.2l-.2.2-.2.2v.2l-.2.2v.4h-.3v.3l-.2.2-.2.2v.2zm-1.5 3.8l-.2-1-.3.2v-.4h.2v-1l.2-.2v-.4l.2-.3v-.4l.2-.3v-.2h.2l1 .4-.2.2-.2.3v.3h-.2v.7h-.2v.9l-.2.2v.4l-.2.2v.2l-.4.2zm.3 0h-.2.3zm-4.3.6v-1h1.1v-.2h1.2v-.2h1.1l.3-.2.2 1h-.4l-.3.2h-.9l-.2.2h-1.3v.2h-.7zm0 0zm0 0v-1 .5-.5 1-.5.5zm0-1zm-4 1.5l.4-1h-.2 1.3l.3-.2h1.9l.2-.2.2 1h-.8v.2h-1.4v.2h-2zm.2 0h-.3.2zm-3-3l.5-1 .2.3.3.3h.2l.2.3.2.2.2.3.2.2v.2h.2v.2h.2v.2l.2.2v.2h.2v.2h.2v.2l-.4 1v-.2h-.2l-.2-.2-.2-.2v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.2-.2-.2-.2-.3v-.2h-.2v-.2h-.3v-.3zm-6-4.8l.7-.6.2.2.3.3.3.3h.2v.3l.3.2h.3l.2.3h.2l.2.3.3.3.2.2.2.2h.2v.2l.3.2h.2l.2.3.2.2.3.3h.2l.2.3.3.2.2.2h.2v.2l-.5.8h-.3v-.2l-.3-.2h-.2v-.2l-.3-.2h-.3l-.2-.2-.2-.2h-.2v-.2l-.3-.2h-.2l-.2-.3h-.2v-.2h-.3l-.2-.2-.2-.2h-.2v-.3h-.3l-.2-.3-.2-.2h-.2v-.3h-.3v-.3l-.3-.2h-.2v-.3l-.3-.2zm.4-7.5v1H397l-.2.2h-.4l-.2.2v.2h-.2v1.5l.2.3v.3l.2.2.2.3.2.4.2.3.2.3.2.3.2.3.3.3v.2l.4.3.3.4-.8.5-.4-.3-.3-.3-.2-.4-.2-.4-.2-.3-.3-.4-.2-.3v-.4l-.3-.4v-.3l-.3-.3v-.3l-.3-.3V206l.2-.2.2-.2.2-.2.3-.2h.2l.3-.2h.7l.4-.2h.8zm2.5-.8l.8.5-.2.2-.2.2h-.2v.2h-.2l-.2.2h-.2l-.2.2h-.5l-.2.2h-1.1v-1h1.4l.2-.2h.2l.2-.2h.2v-.2h.2v-.2zm0 0zm.4-2.8l1 .2v.4h-.2v2h-.2v.4l-.2.2-1-.4h.2v-1.4l.2-.3v-.8l.2-.2zm1.4-3.2l.8.6-.2.2v.2h-.2v.4h-.2v.4h-.2v.4l-.2.2v.4l-.2.2v.4l-1-.2v-.7l.2-.2v-.4l.2-.2v-.4h.2v-.4h.2v-.4h.2v-.2h.2v-.4h.2zm.8.6l.5-.7-.4.8zm1.8-1.5l.2 1H404v.2h-.4v.2h-.2l-.8-.5.2-.2.2-.2h.2v-.2h.4l.2-.2h1.4zm.2 1h-.7.6zm2.7-1.2l-.5 1H406l-.2.2h-.4l-.2-1h.8l.2-.2h2.1zm3 3h-1v.2-.2h-.2v-.2l-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2l-.2-.2-.2-.2h-.2l-.2-.2.5-1v.2h.2l.2.2h.2v.2h.2v.2h.2l.2.2.2.2.2.2h.2v.2h.2v.2l.2.2.2.2.2.2v.2l.3.3zm-.2-.4h.2v.3-.4zm-.8.3h1l-1 .2v-.3zm0 .2v-.3.2z"/>
+        <path fill="#21231e" d="M410 219.4h-.7c-1.4-3.8-3.5-7-6.3-9.5 2.8 1.4 5.5 5.3 7 9.4zm1.4-.2c.3 0 .5 0 .8-.2-.5-4 0-7.5 1.5-11-2 2.5-2.8 7-2.3 11.2z"/>
+        <path fill="#edb92e" d="M418.3 202c-.2 1.4-.4 3-1 4.3-1 2-3.8 1.3-6.6-.7-.8-.6-2.2-.8-3.4-.6-1.3.3-2.4.8-3 1.7-1.5 2.6-3.4 4-5.2 2.6-1-1-2-2.3-2.7-3.5.5-.2 1.2-.3 2-.3 1.3 0 2.5-.2 3-1 .5-.7 0-1 .6-3 0-1.2.6-2.3 1.2-3 .6-.8 1.5-.6 2.3-.7 1-.2 1.6-.7 2.5-.2 1 .4 2 1.2 2.7 2.3 1.4 1.6 1.2 2 2 2.5 1 .6 2.2.4 3.3 0 1-.4 1.7-.6 2.3-.5z"/>
+        <path fill="#21231e" d="M417.7 206.5l-1-.4.2-.2v-.5l.2-.2v-.4l.2-.2v-.9l.2-.2v-1.2h.2v-.4h1v1.1l-.2.3v1h-.2v.7h-.2v.7h-.2v.3l-.2.3v.2zm-7.2-.5l.5-.8.3.2h.2l.3.3h.2l.3.3h.2l.3.2.2.2h.2l.3.2h.4v.2h.7l.2.2h1v-.2h.2l.2-.2.2-.3.2-.2 1 .5-.2.2-.2.3-.3.3v.2h-.2l-.2.2h-.2l-.3.2h-2l-.2-.2h-.2l-.3-.2h-.2l-.2-.2h-.2l-.3-.2-.2-.2h-.2l-.3-.3-.2-.2h-.3l-.3-.3-.2-.2zm-3-.4l-.3-1h1.1v-.2h1.3v.2h.6v.2h.4v.2h.2l.2.2-.5.8h-.2v-.2h-.4v-.2h-2.4zm-2.7 1.3l-.8-.6v-.2h.2v-.2h.2v-.2l.2-.2h.2v-.2h.2l.2-.2h.2l.2-.2h.3v-.2h.8l.2-.2h.5l.2 1h-.7v.2h-.4v.2h-.4l-.2.2h-.2v.2h-.2v.2h-.2v.2h-.2zm-6 2.7l.6-.8h.3v.2h.5l.2.2h.5l.3-.2h.3v-.2h.3v-.2h.2v-.3h.3v-.3h.3v-.3l.3-.3.2-.2.2-.2v-.2h.3v-.4l.3-.2.8.5v.2l-.3.2v.3l-.3.2h-.2v.3l-.3.2-.2.2-.2.2-.3.3h-.2l-.2.3h-.2v.3h-.3l-.3.2h-.4l-.3.2h-1.2l-.2-.2h-.2l-.2-.2-.2-.2h-.2zm-2.7-4.4l.5 1 .3-.8v.3h.2v.2l.2.2v.2h.2v.2l.2.2v.2h.2v.2l.2.2.2.2.2.2v.2h.2v.2h.2v.2h.2v.2h.2v.2h.2l-.6 1-.2-.2-.2-.2-.2-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.3h-.2v-.2h-.2v-.2h-.2v-.3h-.2v-.2h-.2v-.4h-.2v-.2h-.2V205zm0 .8l-.4-.4.5-.3v.8zm2.4-1v1H397v.2h-.4l-.5-1h1.2v-.2h1.2zm2.5-.8l.8.5-.2.2-.2.2h-.2v.2h-.2l-.2.2h-.2l-.2.2h-.7l-.2.2h-1.2v-1h1.4l.2-.2h.4v-.2h.2v-.2h.2v-.2zm0 0zm.4-2.8l1 .3v.3l-.2.3v1.7h-.2v.7h-.2l-1-.4h.2v-1.4h.2v-1.3l.2-.2zm1.4-3.2l.8.6-.2.2v.2h-.2v.4h-.2v.4h-.2v.4l-.2.2v.7h-.2v.5l-1-.3v-.7l.2-.2v-.4l.2-.2v-.4h.2v-.4h.2v-.4h.2v-.2h.2v-.4h.2zm0 0l.4-.5-.4.5zm2.6-1l.2 1h-.6v.2h-1v.2h-.2l-.2.2-.8-.6.2-.2.2-.2h.2v-.2h.4l.2-.2h1.4zm0 0h.6-.6zm3 0l-.6.8H406v.2h-.5l-.2-1h.8v-.2h2.1zm-.6.8l.3.2-.2-.2zm3.3 1.6l-.6.6-.2-.2h-.2v-.2l-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.2l-.2-.2.5-1v.2h.2l.2.2h.2v.2h.2v.2h.2l.2.2.2.2.2.2h.2v.2h.2v.2l.2.2.2.2.2.2v.2zm2 2.5l-.6 1-.2-.2-.2-.2-.2-.2v-.2h-.2v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.3-.2-.3.7-.6.3.2.2.3v.2h.2v.2l.2.2v.4h.2v.2l.2.2v.2h.2v.2l.2.2zm-.6 1l-.2-.2h.2zm3.5-1l.2 1h-.5l-.2.2h-.8v.2h-1.3l-.2-.2h-.2l-.2-.2h-.2l.5-1v.2h.6l.2.2h1.1l.2-.2h.4l.2-.2h.2zm2.8 0h-1l.5.5h-1l-.2.2h-.4l-.2.2h-.2l-.3-1 .2-.2h.8v-.2h1.5l.5.4zm-.5-.5h.6l-.2.5-.5-.5z"/>
+        <path fill="#edb92e" d="M391.8 221.2c.7-1 1-.8 1.2-1.3.2-1-.3-2-1-3.2-2.2-4.6.3-4.2 3.6-2.4 1 .4 2 1.2 3 2 1 1 1.8 1.8 2.7 2.4 1.6 1.2 2.7 1.2 3 1.7 1 2 1.5 3.5 1.8 4.2.3.7 1 2.3 1.6 4.2 0 .4-1 .5-1.8 2-.7 1.2-1.2 3.5-2 4.7-1.4 1.6-2.5 2.6-3.4 2.4-1 0-1.6-1.3-1.8-4.2a4 4 0 00-1.5-3c-.5-.6-.6-.4-2-1.2a9.3 9.3 0 01-2.4-2c-.6-.6-.7-1.3-1-2-.3-1-.8-1.6-.7-2.4a3.8 3.8 0 01.8-2z"/>
+        <path fill="#21231e" d="M392.5 219.7l1 .3v.2l-.2.2v.2h-.2v.2h-.2v.2h-.2l-.2.2v.2h-.2l-.8-.5v-.2l.2-.2.2-.2.2-.2h.2v-.2h.2v-.2zm1 .3zm-1.8-3l1-.5v.4l.2.2v.4l.2.3v.2l.2.2v2l-1-.3v-1.2l-.2-.2v-.4h-.2v-.4h-.2v-.4zm4.2-3l-.6.8h-.3l-.2-.3h-.3l-.3-.3h-.3l-.3-.2h-.3l-.2-.2h-.5l-.2-.2h-.6v1.5l.3.4.2.3.2.4.2.5-1 .5v-.4l-.3-.4-.2-.4v-.7l-.2-.2v-1.5l.2-.2h.2l.2-.2h.2l.2-.2h1.2l.2.2h.6l.3.3.3.2h.3l.3.2.2.2.4.2h.3zm2.8 2l-.7 1v-.4h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.2l-.2-.2-.2-.2h-.2l-.2-.2.5-1v.2h.2v.2h.2l.2.2h.2v.2h.2l.2.2h.2v.2h.2v.2h.2l.2.2.2.2.2.2h.2v.2h.2zm2.8 2.4l-.6.8h-.2v-.2h-.2v-.2h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2l-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.2l.6-1v.2h.2l.2.2v.2h.2l.2.2.2.2h.2v.2h.2v.2h.2v.2h.2l.2.2.2.2h.2v.2h.2l.2.2zm3.3 2l-1 .3v.2-.2h-.2v-.2h-.4l-.2-.2h-.2l-.2-.2h-.3l-.2-.2h-.3v-.2h-.3v-.2h-.3v-.2h-.3v-.2l.6-.8.2.2h.2v.2h.3l.2.2h.2l.2.2h.2v.2h.4l.2.2h.4v.2h.2l.2.2h.2v.3zm-.2-.3v.2zm1.7 4.5l-1 .4v-.7l-.2-.2v-.4l-.2-.2v-.5h-.2v-.4l-.2-.3v-.3h-.2v-.5h-.2v-.5h-.2v-.3l1-.4v.4l.2.3v.2l.2.3v.2l.2.3v.3l.2.3v.4h.2v.4l.2.2v.4h.2v.4zm0 0zm0 0l-1 .4h.3l.3.2-.5-.5.6.5-.5-.5.6.5-.5-.5.2.4-.2-.3v.2l1-.5v.2-.4.4l-.4-.5.6.5-.5-.5.6.5-.5-.5h.4v.3zm0-.2v.2-.2zm1.6 4.7l-1-.2v.3-.5l-.2-.3v-.2l-.2-.3v-.3l-.2-.3v-.2l-.2-.2v-.4l-.2-.2v-.2l-.2-.2v-.4l-.2-.2 1-.5v.4h.2v.5h.2v.5l.2.2v.3l.2.3v.5l.2.2v.3l.2.2v.2l.2.2v.6zm0-.3v.3-.3zm-1.7 2.4l-1-.4.2-.2v-.2h.2v-.2l.2-.2v-.2h.2v-.2h.2l.2-.2h.2v-.2h.2v-.2l1 .2v.4h-.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2-.2.2v.2zm-2.2 5l-.7-.7.2-.3v-.2h.2v-.3l.2-.2v-.4l.2-.2v-.5h.2v-.4h.2v-.5h.2v-.2l.2-.3v-.2l.2-.3v-.2l.2-.2 1 .5-.2.2v.3h-.2v.4h-.2v.5l-.2.2v.3l-.2.2v.3l-.2.2v.3l-.2.2v.3l-.2.2v.3h-.2v.3h-.2v.3l-.2.2v.2zm-3.7 2.7l.2-1h.4v-.2h.2l.2-.2h.2v-.2h.2l.2-.2.2-.2.2-.2.2-.2.2-.3.2-.2v-.2h.2v-.3l1 .7h-.2v.3h-.3v.3h-.2v.3h-.4v.4h-.2v.2h-.2l-.2.2-.2.2-.2.2h-.3v.2h-.4v.2h-1zm-2.2-5h1v.3l.2.2v1.1h.2v.5l.2.2v.3l.2.2v.2h.2v.2h.2v.2h.2v1h-.8v-.2h-.2l-.2-.2-.2-.2v-.3h-.2v-.2l-.2-.2v-.3l-.2-.3v-.4h-.2v-1l-.2-.2v-1zm-1.2-2.6l.7-.6.2.2v.2h.2v.2l.2.2v.2h.2v.3l.2.2v.2h.2v.7h.2v.6l-1 .2v-1h-.2v-.4l-.2-.2v-.2h-.2v-.2h-.2v-.4h-.2v-.2h-.2zm-2-1l.4-.8h.3v.2h.4v.2h.4v.2h.4v.2h.4v.2h.2v.2l-.6.7h-.2l-.2-.2h-.4v-.2h-.4l-.2-.2h-.2l-.2-.2h-.3zm-2.5-2l.7-.6.2.2.2.2.2.2.2.2h.2v.2h.2v.2h.2l.2.2h.2v.2h.2l.2.2-.5 1v-.2h-.2v-.2h-.4v-.2l-.2-.2h-.2l-.2-.2-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2v-.2zm-1.2-2.3l1-.4v.2h.2v.4h.2v.5h.2v.4h.2v.2l.2.2-.7.7h-.2v-.4h-.2v-.4h-.2v-.4l-.2-.2v-.8h-.2v-.2zm-.6-2.5h1v.8h.2v.4l.2.2v.2l.2.2v.2l-1 .5v-1h-.2v-.4h-.2v-.6h-.2v-.8zm1 0v.2zm.4-1.5v-1l.3.8v.4h-.2v.2h-.2v.8h-.2v.2h-1v-.9l.2-.2v-.4l.2-.2v-.2h.2v-.4h.2v-.2h.2l.4.7zm0-1h1l-.7.8-.2-.8zm0 0v1l-.4-.8.4-.3zm0 1h-1l.6-.8.4.7z"/>
+        <path fill="#21231e" d="M406.5 226l.2 1c-1.4.4-2.6 1-3.6 1.8s-1.7 2-2.3 3.2c.2-1.4 1-2.7 2-3.7s2.3-1.8 3.8-2.2zm-.6-1.6l-.5-1c-1.6 0-3.2-.4-4.7-1-1.5-.7-3-1.6-4.4-2.8 1 1.3 2.6 2.4 4.3 3.3 1.6.7 3.5 1.3 5.2 1.5z"/>
+        <path fill="#edb92e" d="M391.4 213.8c1 .4 1.6.8 2.8 1.8.8.7 1.3 1.7 1.5 3 0 1 0 2.5-.3 3.8-.2.8 0 2.2.5 3.6.4 1.4 1 2.8 2 3.5 2.3 2.5 4 5 3.4 6.7a4 4 0 01-1.5 1.8c-.4-.6-1-1.2-1.4-2.2a8 8 0 00-1.5-3.5c-.5-.6-.7-1.3-2-2.2-1-.5-2-.3-2.6-1-1.2-1.6-3-5.5-1.3-7.2 1.7-1.7 2.3-2.7 1-5.6-.5-1-.5-1.8-.6-2.4z"/>
+        <path fill="#21231e" d="M394.5 215.2l-.7.8-.2-.2-.2-.2-.2-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2h-.2l-.2-.2h-.4l.3-1h.4v.2h.4v.2h.4v.2h.4v.2h.2v.2h.2l.2.2.2.2h.2v.2h.2v.2zm1.7 3.2l-1 .2v-.6h-.2v-.7h-.2v-.4l-.2-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2l.7-.8h.2v.2l.2.2v.2h.2v.2l.2.2v.2h.2v.4l.2.2v.4h.2v.8h.2v.2zm-.3 4h-1V221h.2v-2.4l1-.2v3.3l-.2.2v.5zm-1 0v-.3.3zm1.4 3.5l-1 .2v-.5l-.2-.3v-.4l-.2-.3v-.8h-.2v-1.4h1v1.9h.2v.7h.2v.7h.2v.3zm1.8 3.2l-.7.7v-.2l-.2-.2h-.2v-.4h-.2v-.2l-.2-.3v-.2h-.2v-.2l-.2-.3v-.2h-.2v-.5l-.2-.2-.2-.3v-.4h-.2l1-.4v.2l.2.2v.2l.2.3.2.2v.3l.2.2v.2h.2v.2h.2v.4h.2v.2h.2v.2h.2v.2zm3.6 7.2l-1-.4.2-.2v-1.3l-.2-.2v-.4l-.2-.2v-.2l-.2-.2-.2-.2v-.2l-.2-.2-.2-.2v-.2l-.3-.2-.2-.3v-.3l-.3-.2-.2-.2-.2-.3-.2-.2-.2-.2-.2-.2-.3-.3h-.2l.7-.8.3.2.2.2.2.3.3.4.3.2.2.2v.3l.3.3.3.2.2.3v.2l.3.2.2.3v.2l.2.2.2.2v.2l.2.2v.2l.2.3v.7l.2.2v1.2l-.2.2zm-2.4 1.8l1-.4-.8-.2.2-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.2l1 .4v.2l-.2.2v.2l-.2.2v.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2h-.2l-.2.2-.8-.2zm.8.2l-.5.3-.3-.5.8.2zm-2-2.5l1-.3v.4h.2v.4h.2v.2h.2v.2l.2.2v.2h.2v.4l-.8.4v-.2h-.2v-.2l-.2-.2v-.2h-.2v-.2h-.2v-.4l-.2-.2v-.2l-.2-.2v-.3zm-1.5-3.3l.8-.7v.2h.2v.2l.2.2v.2l.2.2v.2h.2v.5h.2v.4l.2.2v.4l.2.3v.7l-.8.2v-.4h-.2v-.5l-.2-.2v-.5h-.2v-.2l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2zm0 0zm-2-2.2l.4-1 .3.2.2.2h.2l.2.2.2.2.2.2v.2h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2l-.7.7-.2-.2v-.2h-.2v-.2h-.2v-.4h-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2zm-2.7-1.3l.8-.6h.2v.2h.2v.2h.9l.2.2h.4l.2.2h.2l.2.2-.4 1v-.2h-.4l-.2-.2h-.9v-.2h-.4l-.2-.2h-.2l-.2-.2-.2-.2-.2-.2zm-1.2-7.8l.7.7v.3h-.2v.3h-.2v2.2l.2.3v.5l.2.2v.2l.2.3v.2l.2.2v.2l.2.2v.2l.3.2v.2h.2v.3l.2.2-.7.7-.2-.3-.2-.3v-.2l-.2-.2v-.2h-.3v-.3l-.2-.3-.2-.4v-.2l-.2-.3v-.2l-.2-.2v-.6l-.2-.3v-2.1l.2-.3v-.2h.2l.2-.3.2-.3zm.7-5l1-.5v.5l.2.2v.3l.2.2v.7h.2v1.7l-.2.2v.2l-.2.2v.2h-.2v.3h-.2v.2l-.2.2-.3.3h-.2l-.2.3-.8-.6.2-.3h.2l.2-.3.2-.3.2-.2v-.3l.2-.2v-.2l.2-.3v-.7l-.2-.2v-.5l-.2-.2-.2-.4v-.2zm0-3v1l.4-.7v1.4h.2v1.1h.2l-1 .6v-.9h-.2v-.7l-.2-.2v-1l.4-.7zm-.6.5l-.3-.7h.7l-.5.6zm.4.3v-1 1zm0-1z"/>
+        <path fill="#edb92e" d="M434 226.2c-1.2 1-1.5 1-2 1.6-.3.8 0 2 .3 3.3 1.5 5-1.4 4.4-5 2.6-1.6-1-3.6-3.2-5.2-4.4-1.5-1-2.6-1-3-1.6a118.7 118.7 0 01-1-4.3c0-.7-.5-2.4-1-4.4.4-.7 1.4-1 2.5-2.5 1-1.7 2.2-4.7 3.6-6 3-3.2 6-4.5 6 1.3 0 1.4.3 3 1 3.6.6.6 1 .3 2.5 1 1 .6 2 1.3 2.6 2 .7 1 .5 2 .7 2.8 0 1 .5 1.7.2 2.6-.5 1-1 1.7-2 2.4z"/>
+        <path fill="#21231e" d="M432.6 228l-1-.5h.2v-.4h.4v-.2h.4v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.8.8-.2.2h-.2v.2h-.2l-.2.2-.2.2h-.2v.2h-.4v.2h-.2v.2zm-1-.5zm1 3.4l-.8.3v-.2l-.2-.2v-.7h-.2v-2.3h.2v-.2l1 .4v.2h-.2v2.1h.2v.7zm-5.4 3l.5-.8h.3l.3.3h.3l.3.3h.2l.3.2h.2l.3.2h.7l.2.2h.7v-.2h.2v-.4l.2-.3v-1.1l-.2-.3v-.3l-.2-.4 1-.4v.4l.2.4v.8l.2.3v1.1l-.2.4v.2l-.3.2-.2.2h-.2l-.2.2-.4.2h-1.2l-.3-.2h-.6l-.3-.3-.2-.2h-.3l-.3-.2-.4-.2-.3-.2h-.3zm-5.4-4.3l.6-1 .2.2.3.2.2.3h.2v.3h.3v.3l.3.2.2.2h.2v.3h.3l.2.3.2.3.2.2.3.3h.2v.2l.2.2h.2l.2.2v.2h.3v.2h.2l.2.2.3.2-.5 1-.2-.2h-.2v-.2l-.3-.2h-.2l-.2-.2-.2-.3h-.2l-.2-.2h-.2v-.3h-.3l-.3-.3h-.2v-.3l-.3-.3h-.2l-.2-.3-.3-.3h-.2v-.2h-.3l-.2-.3-.3-.3-.3-.2-.3-.2h-.2zm.6-1zm-4-1l1-.2v-.2h.2v.2h.4l.2.2h.4v.2h.7l.2.2h.2l.2.2.3.2h.2l.2.2-.6 1v-.2h-.3v-.2h-.2l-.2-.2-.2-.2h-.3l-.2-.2h-.2v-.2h-.4l-.2-.2h-.2l-.2-.2h-.2v-.2h-.2v-.3zm.2.3v-.3.3zm-.6-4.2v-1l.5.4v.4l.2.2v1h.2v1.3h.2v1h.2v.5l-1 .2v-.7l-.2-.3v-.7l-.2-.3v-.7h-.2v-.8l-.2-.2v-.6l.4.4zm0-1h.5v.4l-.5-.4zm-.5.6l1-.2v-.2l-.5-.2v1h-.3l-.2-.5zm1-.2zm-1.8-4.5l1 .4v-.2 1.1h.2v1.1l.2.3v.8l.2.2v.9l-1 .2V222l-.2-.2v-.8l-.2-.3v-.7h-.2v-.8l-.2-.2v-.3zm0 .3v-.3.3zm2.4-2.8l1 .5-.2.2-.2.2-.2.3-.2.2-.2.2h-.2v.2h-.2l-.2.2h-.2v.2h-.2v.2h-.2v.2h-.2l-1-.3h.2v-.4h.2v-.2h.4v-.2h.2l.2-.2.2-.2.2-.2h.2v-.2l.2-.2.2-.2v-.2h.2v-.2zm3.7-6.2l.8.7h-.2v.3h-.2v.3l-.3.3v.2l-.2.2v.2h-.2v.3l-.2.3v.4l-.3.2v.2l-.2.2v.2l-.2.2v.2l-.2.2v.3l-.2.3v.2l-.2.2v.2h-.2v.2l-.2.2-.2.2-1-.4.2-.2.2-.3v-.2h.2v-.3l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.3l.2-.2v-.2h.2l.2-.3v-.2l.2-.2v-.3l.2-.2v-.2l.3-.2v-.2l.2-.2.2-.3v-.2l.2-.2h.2v-.3zm6.8 1.8h-1v-1.4l-.2-.4v-.6l-.2-.2v-.4l-.2-.2h-.3v-.2h-1.2l-.3.2-.3.2h-.2l-.3.3-.2.3-.3.2-.2.2-.3.2-.2.2-.3.2-.2.3-.8-.7.3-.3.3-.3.3-.2.2-.3.3-.3.4-.2.3-.2.2-.2h.2l.3-.3h.2l.3-.2h.3l.2-.2h1.2l.3.2.3.3.2.2.2.2.2.3v.6l.2.5v.4l.2.3v1.5zm1 3.3l-.8.8-.2-.2v-.2h-.2v-.2l-.2-.2v-.6l-.2-.2v-.7l-.2-.2V212h1v2h.2v.3l.2.2v.2h.2v.2l.2.2zm0 0zm2.2 1l-.4 1-.3-.2h-.2l-.3-.2h-.4v-.2h-.9v-.2h-.4v-.2h-.2v-.2l.6-.7v.2h.4v.2h.8l.2.2h.4l.2.2h.2l.2.2zm2.8 2.2l-.8.6h-.2v-.2l-.2-.2h-.2v-.4h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2.3-1 .3.2h.2l.2.2.2.2h.2v.2h.2l.2.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2zm-.8.6l.4.5-.3-.5zm1.5 2.3l-1 .2V220l-.2-.2v-.8h-.2v-.4l.7-.6v.2l.2.2v.2l.2.2v2.2h.2v.2zm0 3l-.8-.4v-2.1l-.2-.2v-.4h1v1l.2.2v1.8zm-1.8 2.6l-.7-.8h.2v-.2l.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.2h.2v-.2l1 .4-.2.2v.2l-.2.2v.2h-.2v.4h-.2v.2h-.2v.2l-.2.2-.2.2v.2h-.2l-.2.2-.2.2zm-.7-.8z"/>
+        <path fill="#21231e" d="M418 222.6l-.2-1a14 14 0 007.8-5.3c-1.2 3-4.3 5.3-7.7 6.3zm.2 1.5c0 .4.2.7.3 1 3.4 0 6.4 1 9.2 3-2-2.3-5.8-3.8-9.5-4z"/>
+        <path fill="#edb92e" d="M432.7 233.3a11 11 0 01-3.4-1.5c-1.6-1.3-1.2-3.8.3-6.4.4-.8.5-2.2.2-3.5a6.3 6.3 0 00-1.4-3.5c-2.4-2.3-3.8-4.8-2.6-6.6.8-1.3 2-2 2.8-2.7.3.6.4 1.5.4 2.5 0 1.4.3 3 1 3.6.6.6 1 .3 2.5 1 1 .7 2 1.3 2.6 2 .7 1 .6 2 .7 2.8 0 1 .5 1.7.2 2.6-.5 1-1 1.7-2 2.4-1.2 1-1.5 1-2 1.6-.3.8 0 2 .3 3.3.3 1 .4 1.7.4 2.3z"/>
+        <path fill="#21231e" d="M429 232.2l.6-.8h.2v.2h.2l.2.2h.2l.2.2h.2l.2.2h.4v.2h.4l.2.2h.4l.2.2h.2l-.3 1h-.4v-.2h-.4l-.2-.2h-.3v-.2h-.4l-.2-.2h-.2l-.2-.2h-.2v-.2h-.2l-.3-.2h-.2v-.2zm0-7l1 .5v.2h-.2l-.2.4v.2l-.2.2v.2l-.2.3v.4l-.2.2v.5l-.2.2v1.5l.2.3v.2h.2v.3l.2.2.2.2-.6.8-.2-.2-.3-.3v-.2h-.2v-.3l-.2-.2v-.4l-.2-.3V228h.2v-.7l.2-.3.2-.3v-.3l.2-.2v-.3l.3-.3v-.5zm.3-3.3l1-.2v.8h.2v1.9l-.2.2v.7h-.2v.2l-1-.4h.2v-.6h.2V222zm-1.3-3.2l.7-.7v.2h.2v.4h.2v.2l.2.2v.2l.2.2v.2l.2.2v.5h.2v.7l.2.2v.8h-1v-1.2l-.2-.2v-.4h-.2v-.4h-.2v-.2l-.2-.2v-.2h-.2v-.2l-.2-.2zm0 0zm-2.7-7.2l1 .6h-.2v.7l-.2.2v.7l.2.2v.4l.2.2v.2l.2.2v.2l.2.2v.2l.3.2v.2l.2.2.2.2v.2l.3.3.2.3v.2l.3.2.2.2h.2l-.7.8-.2-.2-.2-.2-.3-.2-.2-.2v-.3l-.2-.2-.2-.2-.2-.2-.2-.2v-.2l-.3-.2-.2-.3h-.2v-.3l-.2-.2v-.3l-.2-.2v-.2l-.2-.3v-.4l-.2-.2v-1l.2-.3v-.2l.2-.2v-.2zm3.8-2.5l-.8.4.7.3h-.2l-.2.2h-.2l-.2.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2-.2.2v.2h-.2v.2l-.2.2-1-.6h.2v-.2l.2-.2.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2h.2l.2-.2.2-.2h.2v-.2h.2l.2-.2.2-.2h.2v-.2h1.1zm-.6 0l.5-.5v.6h-.6zm1 2.8h-1v-2.1h-.2v-.4l1-.3v1h.2v2zm1 3.3l-.7.8-.2-.2v-.2h-.2v-.2l-.2-.2v-.7l-.2-.2v-.7l-.2-.2V212h1v1.7h.2v.6l.2.2v.2h.2v.2l.2.2zm2.3 1l-.4 1-.3-.2h-.2l-.3-.2h-.4v-.2h-.9v-.2h-.4v-.2h-.2v-.2l.6-.7v.2h.4v.2h.8l.2.2h.4l.2.2h.2l.2.2zm2.8 2.2l-.8.6h-.2v-.2l-.2-.2h-.2v-.4h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2l-.2-.2.3-1 .3.2h.2l.2.2.2.2h.2v.2h.2l.2.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2zm-.8.6l.4.5-.3-.5zm1.5 2.3l-1 .2V220h-.2v-.8h-.2v-.4l.7-.6v.2l.2.2v.2l.2.2v2h.2v.2zm0 3l-.8-.4v-2.2l-.2-.2v-.4h1v1l.2.2v1.8zm-1.8 2.6l-.7-.8h.2v-.2l.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.2h.2v-.4h.2v-.2l1 .4-.2.2v.2l-.2.2v.2l-.2.2v.2h-.2v.2h-.2v.2l-.2.2-.2.2v.2h-.2l-.2.2-.2.2zm-.7-.8zm-1 2.2l-1-.5v-.2h.2v-.2h.2v-.2h.4v-.2h.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l.8.8-.2.2h-.2v.2h-.2l-.2.2-.2.2h-.2l-.2.2h-.2v.2h-.2v.2zm-1-.5zm1 3.4l-1 .3v-.7h-.2v-3h.2l1 .4h-.2v2.6h.2v.2zm-1 .3zm.8 2.5l.3-1-.6.5v-1h-.2v-.9l-.2-.2 1-.5v.9h.2v1h.2v.7l-.7.5zm.7-.5v.7l-.7-.2.7-.5zm-.5 0l-.2.5.2-.5zm.5 0v.7l-.7-.2.7-.5z"/>
+        <path fill="#edb92e" d="M410.6 216.4c4 0 8 3.4 8.4 7.7.6 4.4-2.2 7.7-6 7.8-4 0-7.5-3-8.3-7.3-.7-4 1.8-8 6-8z"/>
+        <path fill="#21231e" d="M419.5 224l-1 .2v-.8l-.2-.4v-.3l-.2-.4v-.3l-.2-.4-.2-.3-.2-.3-.2-.4-.2-.3-.2-.3-.3-.2-.2-.3-.3-.3-.2-.2-.3-.3-.3-.2-.3-.2-.4-.2h-.3l-.3-.3h-.4l-.3-.3h-.3l-.4-.2h-.3l-.3-.2h-1.5v-1h1.9l.4.2h.3l.4.3h.4l.4.3.4.2.3.2.5.2.3.3.3.2.4.2.3.3.3.3.3.3.3.4.2.3.2.4.3.4.2.4.2.4.2.4v.4l.2.4v.4l.2.4v.8zm-6.6 8.3v-1h.9l.2-.2h.6l.3-.2h.4l.2-.2.3-.2h.2l.2-.3h.2l.2-.3.3-.3.3-.2v-.2l.3-.3.2-.2v-.3l.3-.3.2-.4v-.3l.2-.3v-.7l.2-.3V224l1-.2v2.5l-.2.4v.8l-.3.4v.3l-.2.3v.4l-.3.3-.2.3-.3.3h-.2l-.2.4-.3.2-.3.3h-.3l-.3.3-.3.2h-.2l-.3.3h-.4l-.2.2h-.4l-.3.2H413zm-8.7-7.7l1-.2v.7l.2.5v.3l.3.4v.3l.3.3.2.4.2.3.2.3.2.3.2.3.3.3.2.3h.3l.2.3.3.3.2.2.3.2.3.2h.4l.3.3.3.2h.3l.3.2h.7l.3.2h1.2v1h-2l-.3-.2h-.4l-.4-.3h-.4l-.4-.3-.3-.2-.4-.2-.3-.2-.4-.2-.4-.2-.3-.3-.2-.2-.2-.2-.3-.3-.2-.3-.3-.3-.2-.4-.2-.3-.2-.3-.2-.4-.2-.3-.2-.4v-.4l-.2-.4-.2-.4v-.8zm6.2-8.7v1h-1l-.3.2h-.4l-.3.2h-.3l-.3.3h-.2l-.2.3-.3.2-.2.2v.2l-.3.2-.2.2-.2.3-.2.3v.2l-.2.3v.4l-.3.3v.6l-.2.3v.7l-.2.3v.7l.2.4v.8l-1 .2v-3.3l.2-.3v-.3l.2-.4v-.3l.3-.4v-.3l.3-.3.2-.3.2-.3.2-.3h.2l.2-.4.3-.2.3-.2.3-.2.3-.2.3-.2.3-.2h.3l.4-.2h.4l.3-.2h.9z"/>
+        <path fill="#edb92e" d="M411 218.6c2.8-.2 5.7 2.4 6 5.5.5 3.3-1.5 5.8-4.4 5.8-2.8 0-5.5-2.3-6-5.3s1.3-5.8 4.3-6z"/>
+        <path fill="#21231e" d="M417.6 224l-1 .2v-.6l-.2-.3v-.2l-.2-.3v-.4l-.2-.2v-.2l-.2-.3-.2-.3v-.2l-.3-.2-.2-.2-.2-.3-.2-.2-.2-.2h-.2l-.2-.3h-.2l-.3-.3h-.2l-.2-.2-.4-.2h-.5v-.2h-1.1v-1h1.1l.4.2h.3l.2.2h.2l.3.2h.3l.2.3h.3l.2.2.3.2h.2l.3.3.2.3.2.2.2.2v.2l.3.3h.2v.4l.3.3v.3l.3.2.2.3v.3l.2.3v.8l.2.3zm-5 6.3v-1h1.1l.2-.2h.4l.2-.2h.2v-.2l.3-.2h.3v-.2l.3-.2v-.2h.2l.2-.3v-.2l.2-.2.2-.3v-.7l.2-.2v-1.6h1v2.2l-.2.3v.2l-.2.3v.2l-.3.3-.2.2v.3l-.3.2-.2.2-.2.2-.3.2-.2.2-.2.2h-.2l-.2.2h-.2l-.3.2h-.2l-.2.2h-1.5zm0-1zm-6.5-4.8h1l.2.4.2.4v.2l.2.3.2.3v.3l.3.2.2.2.2.2v.2l.3.2.2.2.3.3.2.2.2.2h.2v.3h.3l.2.2h.7l.2.2h1.1v1H411l-.4-.2h-.2l-.3-.2h-.2l-.2-.3h-.3l-.2-.3-.4-.3-.2-.3-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.2-.3v-.2l-.3-.2-.2-.2-.2-.3v-.3l-.2-.3v-.3l-.2-.2v-.7zm1 0zm4-6.4v1h-.6l-.2.2h-.5l-.2.2h-.2l-.2.2-.2.2h-.2l-.2.3v.2l-.3.2-.2.3v.2h-.2v.3l-.2.2v.2l-.2.2v.7l-.2.2v1.7h-1V222h.2v-.4l.2-.3v-.2l.2-.2v-.2l.3-.3v-.2h.2l.2-.3.2-.2.2-.2.2-.2h.2l.2-.2h.3l.2-.3h.2l.2-.2h.6l.3-.2h.6z"/>
+        <path fill="#0c4076" d="M411.2 220.7c2 0 3.6 1.5 4 3.5.2 2-1 3.6-3 3.6a4 4 0 01-3.7-3.4c-.3-2 1-3.6 2.7-3.7z"/>
+        <path fill="#21231e" d="M415.6 224l-1 .3v-.4l-.2-.2v-.4h-.2v-.3l-.2-.2-.2-.3-.2-.2-.2-.2h-.2l-.2-.2-.2-.2h-.2l-.2-.2h-.6v-.2h-.6v-1h1l.2.2h.2l.3.2h.3v.2h.3l.2.3v.2h.3l.2.2.2.2.2.3.3.2v.4h.2v.3l.2.3v.4l.2.2zm-3.3 4.3v-1h.7l.2-.2h.4v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.5l.2-.2v-1.1l1-.3v2h-.2v.3l-.2.3-.2.3-.2.2h-.2v.2l-.2.2h-.2v.2h-.3l-.2.2h-.4v.2h-1zm-4.3-3.8l1-.2v.5l.2.3v.4h.2v.2l.2.2.2.2.2.3.2.2.2.2h.3v.2h.4l.3.2h.8v1h-1.3l-.2-.2h-.2l-.3-.2h-.2v-.2h-.2v-.2l-.3-.2-.3-.2v-.2h-.2v-.3h-.3v-.3l-.2-.2v-.2h-.2v-.5l-.2-.2v-.5zm2.7-3.8h1l-.5.5h-.7l-.2.2h-.2v.2h-.2l-.2.2-.2.2-.2.2v.2h-.2v.5h-.2v1.3l-1 .3v-1.8h.2v-.5h.2v-.3h.2v-.3h.3v-.3h.3v-.2h.3v-.2h.3v-.2h1l.2-.2h.4l-.5.5zm1 0v.5h-.5l.5-.5zm0 0h-1l.5-.5.5.5zm-1 0v-.5h.5l-.5.5z"/>
+      </g>
+      <path fill="#fff" d="M482 183c4 0 7 3 7 7s-3 6.7-7 6.7c-3.6 0-6.7-3-6.7-6.8 0-4 3-7 6.8-7z"/>
+      <path fill="#21231e" d="M489.5 189.8h-1c0-2.3-1.4-4.6-3.5-5.6a6.3 6.3 0 00-3-.7v-1c2.6 0 5 1.3 6.4 3.5a7.4 7.4 0 011 3.8zm-7.4 7.4v-1c2.5 0 4.7-1.4 5.8-3.4a6.4 6.4 0 00.7-3h1c0 2.6-1.5 5.2-3.7 6.5a7.3 7.3 0 01-3.7 1zM475 190h1a6.4 6.4 0 006.3 6.2v1a7.1 7.1 0 01-6-3.4 7.4 7.4 0 01-1.2-4zm7.3-7.5v1a6.3 6.3 0 00-5.5 3.5 6.4 6.4 0 00-.7 3h-1c0-2.7 1.4-5 3.5-6.4a7.3 7.3 0 013.8-1z"/>
+      <path fill="#fff" d="M482 171c4 0 7 3 7 7a6.8 6.8 0 11-13.7-.2c0-3.7 3-6.7 6.8-6.7z"/>
+      <path fill="#21231e" d="M489.5 178h-1c0-2.4-1.4-4.7-3.6-5.8a6.3 6.3 0 00-3-.6v-1c2.6 0 5 1.3 6.4 3.4a7.4 7.4 0 011 4zm-7.4 7.3v-1c2.5 0 4.7-1.4 5.8-3.4a6.4 6.4 0 00.7-3h1c0 2.5-1.5 5-3.7 6.4a7.3 7.3 0 01-3.7 1zM475 178h1a6.4 6.4 0 006.3 6.3v1a7.1 7.1 0 01-6-3.4 7.4 7.4 0 01-1.2-4zm7.3-7.4v1a6.3 6.3 0 00-5.5 3.5 6.4 6.4 0 00-.7 3h-1c0-2.6 1.4-5 3.5-6.3a7.3 7.3 0 013.8-1z"/>
+      <path fill="#fff" d="M482 159.6c4 0 7 3 7 7a6.8 6.8 0 11-13.7-.2c0-3.7 3-6.8 6.8-6.8z"/>
+      <path fill="#21231e" d="M489.5 166.5h-1c0-2.4-1.4-4.7-3.6-5.7a6.3 6.3 0 00-3-.7v-1c2.6 0 5 1.5 6.4 3.6a7.4 7.4 0 011 4zM482 174v-1c2.5 0 4.7-1.5 5.8-3.6.4-1 .7-2 .7-3h1c0 2.6-1.4 5-3.5 6.4a7.3 7.3 0 01-4 1zm-7.2-7.5h1c0 2.4 1.4 4.7 3.6 5.7a6.3 6.3 0 002.7.7v1a7.2 7.2 0 01-6-3.6 7.4 7.4 0 01-1.2-4zm7.3-7.4v1a6.4 6.4 0 00-5.5 3.6 6.4 6.4 0 00-.7 3h-1c0-2.6 1.4-5 3.5-6.4a7.3 7.3 0 013.8-1z"/>
+      <path fill="#fff" d="M482 127c4 0 7 3.2 7 7s-3 6.8-7 6.8a7 7 0 01.1-13.8z"/>
+      <path fill="#21231e" d="M489.5 134h-1c0-2.4-1.4-4.7-3.6-5.8a6.3 6.3 0 00-3-.6v-1c2.6 0 5 1.3 6.4 3.4a7.4 7.4 0 011 4zm-7.4 7.3v-1c2.5 0 4.7-1.4 5.8-3.4a6.4 6.4 0 00.7-3h1c0 2.5-1.5 5-3.7 6.3a7.3 7.3 0 01-3.7 1zM475 134h1c0 2.3 1.4 4.6 3.5 5.6a6.3 6.3 0 002.8.7v1a7.3 7.3 0 01-6-3.4 7.4 7.4 0 01-1.2-4zm7.3-7.4v1a6.3 6.3 0 00-5.5 3.5 6.4 6.4 0 00-.7 3h-1c0-2.6 1.4-5 3.5-6.3a7.3 7.3 0 013.8-1z"/>
+      <path fill="#fff" d="M482 137.2c4 0 7 3 7 6.8s-3 7-7 7c-3.6 0-6.7-3.2-6.7-7s3-6.8 6.8-6.8z"/>
+      <path fill="#21231e" d="M489.5 144h-1c0-2.3-1.4-4.6-3.5-5.7a6.3 6.3 0 00-3-.6v-1c2.7 0 5.2 1.4 6.5 3.6a7.4 7.4 0 011 3.7zm-7.4 7.4v-1c2.5 0 4.7-1.4 5.8-3.4a6.4 6.4 0 00.7-3h1c0 2.6-1.5 5-3.7 6.4a7.3 7.3 0 01-3.7 1zM475 144h1c0 2.4 1.4 4.7 3.5 5.7a6.3 6.3 0 002.8.7v1a7 7 0 01-6-3.5 7.4 7.4 0 01-1.2-4zm7.3-7.4v1a6.4 6.4 0 00-5.5 3.6c-.5 1-.7 2-.7 2.8h-1c0-2.5 1.4-5 3.5-6.2a7.3 7.3 0 013.8-1.2z"/>
+      <path fill="#fff" d="M482 148.2c4 0 7 3 7 6.8s-3 7-7 7c-3.6 0-6.7-3.2-6.7-7s3-6.8 6.8-6.8z"/>
+      <path fill="#21231e" d="M489.5 155h-1c0-2.3-1.4-4.6-3.6-5.7a6.3 6.3 0 00-3-.6v-1c2.6 0 5 1.3 6.4 3.4a7.4 7.4 0 011 4zm-7.4 7.4v-1c2.5 0 4.7-1.4 5.8-3.4a6.4 6.4 0 00.7-3h1c0 2.6-1.5 5-3.7 6.4a7.3 7.3 0 01-3.7 1zM475 155h1c0 2.4 1.4 4.7 3.5 5.7a6.3 6.3 0 002.8.7v1a7.3 7.3 0 01-6-3.4 7.4 7.4 0 01-1.2-4zm7.3-7.4v1a6.5 6.5 0 00-5.5 3.5 6.4 6.4 0 00-.7 3h-1c0-2.5 1.4-5 3.5-6.3a7.3 7.3 0 013.8-1z"/>
+      <path fill="#edb92e" d="M487 195.5c1 1.6.7 2 1.4 2.4.8.6 2 .6 3.4.4 5.3-1 4.5 2.3 2.2 6-1 1.7-3.8 3.5-5.2 5-1.4 1.5-1.6 2.8-2 3.2h-9.2c-.5-.4-.7-1.7-2-3.2-1.5-1.5-4.2-3.3-5.3-5-2.4-3.7-3-7 2.2-6 1.3.2 2.6.2 3.4-.5.6-.6.3-1 1.3-2.5a7 7 0 012.2-2.3c1-.5 1.8-.2 2.6-.2 1 0 2-.3 2.8.2a7 7 0 012.2 2.3z"/>
+      <path fill="#21231e" d="M488.7 197.5l-.7.8-.2-.2h-.2v-.4h-.2v-.4h-.2v-.4l-.2-.2v-.2l-.2-.2-.2-.3v-.2l.8-.6v.2h.2v.3l.2.2v.2h.2v.4h.2v.4h.2v.4h.2zm-.7.8l-.3-.3.3.3zm3.8-.4v1h-2.4l-.2-.2h-.2l-.2-.2h-.3l-.2-.2.7-1v.2h.2v.2h.8l.2.2h1.9zm2.6 6.6l-.8-.6.2-.3.2-.3.2-.4.2-.3v-.3l.3-.3v-.2l.2-.2v-.6l.2-.2v-1.3l-.2-.2h-.2v-.2h-.5l-.2-.2h-2l-.2-1h2.8l.3.2h.2l.2.2.2.2.2.2.2.2v.3l.2.3v1.7l-.2.3v.3l-.3.2v.4l-.3.3v.2l-.3.4v.3l-.3.2-.3.4zm-5.3 5.2l-.6-.7.3-.2v-.2h.3l.2-.3v-.2h.3l.2-.2h.2v-.3h.2l.2-.3.2-.2h.2l.2-.3h.2v-.3l.3-.2h.2l.2-.3v-.2l.2-.2.2-.2h.2v-.3h.3v-.4h.3v-.3h.2v-.3l1 .6-.2.2-.2.3v.3l-.2.2h-.2l-.2.3v.2l-.3.2-.3.3v.2h-.3l-.2.3-.2.2h-.2l-.2.3-.2.2-.3.3-.3.3h-.2v.3l-.3.2h-.2v.3l-.3.2h-.2v.3h-.2l-.2.3zm-2.3 3.3v-1l-.3.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2h.2v-.2l.2-.2.2-.3.3-.3.8.6v.2l-.2.2-.2.2-.2.3v.2h-.2v.2l-.2.2v.2l-.2.2v.2h-.2v.4h-.2v.2l-.2.2v.2h-.5zm.3 0h-.2.2zm-5 .2v-1h4.7v1h-4.5zm0-1h.2zm0 0v1-1zm0 0zm-4.7.8l.6-.8h-.4 4.2l.2 1h-4.7l-.3-.2zm.3 0h-.2.2zm-2.4-3.2l.7-.7v.2l.2.2.2.3.2.3.2.2v.2h.2v.4h.2v.4h.2v.4h.2v.4h.2v.2l-.5.8-.2-.2v-.2l-.2-.2v-.2h-.2v-.4h-.2v-.4l-.2-.2v-.2h-.2v-.2l-.2-.3-.2-.2-.2-.3-.2-.2zm-5.4-5.2l1-.6v.2l.2.3h.2v.3l.2.2h.2v.3h.3v.3l.2.2h.2l.2.3.2.2v.2l.3.2h.3l.2.3h.2l.2.2v.2h.2l.2.3h.2l.2.3h.2v.3l.3.2h.2v.3h.3v.3l-.6.8-.2-.2-.3-.3-.3-.2-.3-.2v-.2l-.2-.2h-.2l-.2-.3h-.2l-.2-.2h-.2v-.3l-.3-.2h-.2l-.2-.3v-.2h-.3l-.2-.3v-.2h-.3l-.2-.3v-.2l-.3-.2h-.2v-.3l-.3-.2-.2-.2-.2-.2zm2.7-6.7v1l-.6-.2h-2.1l-.2.2h-.2v.2h-.2v.4l-.2.2v1.1l.2.2v.3l.2.3v.2l.2.3.2.4v.3l.3.3.3.4.2.3.2.3-1 .6v-.4l-.3-.3-.2-.4-.2-.4v-.3l-.3-.4v-.4l-.3-.3v-.4l-.2-.3v-.6l-.2-.3v-1l.2-.2v-.2l.3-.2.2-.2.2-.2.4-.2h.3l.3-.2h2.5zm3-.5l.8.8-.2.2h-.2l-.2.2h-.4l-.2.2h-3v-1h2.5l.2-.2h.4v-.2h.2zm1.4-2.3l.7.6v.3l-.2.2v.2h-.2v.4h-.2v.8h-.2v.2h-.2v.2l-.2.2-.8-.7h.2v-.4h.2v-.4h.2v-.2l.2-.2v-.4h.2v-.3h.2v-.3zm0 0l.2-.4-.3.4zm2.3-2.4l.5.8-.2.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2v.2h-.2v.2l-.2.2-.2.2v.2l-1-.6.2-.2.2-.2v-.2h.2v-.2l.2-.2h.2v-.2l.2-.2.2-.2h.2v-.2l.2-.2h.2v-.2h.2l.2-.2zm2.8-.3v1h-2.4l-.5-.7h.2v-.2h.4l.2-.2h2zm3 .3l-.5.8h-.4v-.2H482v-1h2.5l.2.2h.2l.2.2zm0 0l.3.2-.3-.2zm2 3.2v-1l-.4.8-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.2v-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2v-.2l.4-.8h.2l.2.2.2.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2h.2v.2l-.4.8zm.4-.8l.5.8h-1l.4-.8zm-.4-.2v1l-.4-.2.4-.8zm-.4.8l-.5-.8h1l-.4.8z"/>
+      <path fill="#21231e" d="M481.4 212.8l-1-.2c-.4-3.7-2-7-4.3-9.6 2.8 1.8 4.8 5.7 5.4 9.8z"/>
+      <path fill="#edb92e" d="M494.2 198.3c-.5 1-1 2.4-2 3.5-1.5 1.6-4 .5-6.5-1.6-.8-.6-2.2-1-3.6-1a6 6 0 00-3.4 1c-2.5 2-5 3.2-6.6 1.6-1-1-1.5-2.4-2-3.5h2.5c1.3.3 2.6.3 3.4-.4.6-.6.3-1 1.3-2.5a7 7 0 012.2-2.3c1-.5 1.7-.2 2.6-.2 1 0 2-.3 2.8.2.8.5 1.5 1.3 2.2 2.3 1 1.6.7 2 1.3 2.4 1 .6 2.2.6 3.5.4 1-.2 1.8-.2 2.4 0z"/>
+      <path fill="#21231e" d="M492.6 202l-.7-.6v-.2l.2-.2.2-.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.2v-.2l.2-.3v-.4l1 .5v.4l-.2.2v.2l-.2.2v.4h-.2v.2l-.2.2v.3h-.2v.2h-.2v.2h-.2v.3l-.2.2-.2.2h-.2zm-7.3-1.4l.7-.7h.2l.2.2.3.2.2.2.3.3h.3l.2.2h.2l.2.2h.2l.2.2h.2l.2.2h.4l.2.2h1.6l.2-.2.2-.2h.2v-.2l.8.7-.2.3h-.2v.3h-.3l-.3.2h-.3l-.2.2h-1.9l-.3-.2h-.3l-.2-.2h-.3l-.2-.2h-.3l-.2-.2-.2-.2h-.3l-.2-.3h-.3l-.2-.3-.2-.2-.2-.2-.2-.2-.3-.2zm.7-.7l.5.3-.5-.4zm-4-.2v-1h2v.2h.7v.2h.4l.2.2h.2l.2.2h.2v.2h.2l-.7.8h-.2v-.2h-.2v-.2h-1v-.2h-1v-.2h-1zm-3 .8l-.7-.7v-.2h.2l.2-.2h.2v-.2h.2l.2-.2h.5v-.2h1.2v-.2h1v1h-1.5v.2h-.5l-.2.2h-.4v.2h-.2l-.2.2zm-7.3 1.5l.7-.6.3.2.2.2h.2v.2h1.7v-.2h.5l.2-.2h.2v-.2h.3l.2-.2.2-.2h.3l.2-.3h.2l.2-.3.3-.2v-.2h.3l.7.6-.3.2-.2.2-.3.2-.2.2-.2.2h-.3l-.2.3h-.3l-.2.2h-.2l-.3.2h-.2l-.2.2h-.2l-.2.2h-.3l-.3.2H473l-.4-.2h-.2l-.2-.2-.2-.2-.3-.3zm-1.7-4l.2 1 .3-.7v.2l.2.2v.3l.2.2v.4l.2.2v.2h.2v.4h.2v.4h.2v.2h.2v.2h.2v.2l.2.2-.7.7h-.2v-.2h-.2v-.2h-.2v-.5h-.2v-.2h-.2v-.3l-.2-.2v-.2h-.2v-.4h-.2v-.4l-.2-.2v-.4h-.2l.4-.8zm-.4.7l-.2-.6.6-.2-.4.7zm3-.6l-.2 1-.2-.2H470l-.2-1h2.4zm3-.5l.7.8-.2.2h-.2l-.2.2h-.4l-.2.2h-2.8v-1h2.3l.2-.2h.4v-.2h.2zm.7.8l-.5.4.5-.4zm.6-3l.7.5v.3l-.2.2v.2h-.2v.4h-.2v.8h-.2v.2h-.2v.2l-.2.2-.8-.7h.2v-.4h.2v-.4h.2v-.2l.2-.2v-.4h.2v-.3h.2v-.3zm2.3-2.5l.5.8-.2.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2v.2h-.2v.2l-.2.2-.2.2v.2l-1-.6.2-.2.2-.2v-.2h.2v-.2l.2-.2h.2v-.2l.2-.2.2-.2h.2v-.2l.2-.2h.2v-.2h.2l.2-.2zm2.8-.3v1h-2.3l-.5-.7h.2v-.2h.4l.2-.2h2zm3 .3l-.5.8h-.4v-.2H482v-1h2.5l.2.2h.2l.2.2zm0 0l.3.2-.3-.2zm2.4 2.4l-.8.6-.2-.2v-.2h-.2v-.2l-.2-.2-.2-.2-.2-.2v-.2h-.2v-.2h-.2v-.2h-.4v-.2h-.2v-.2l.4-.8h.2l.2.2.2.2h.2v.2h.2v.2h.2v.2h.2v.2h.2v.2l.2.2.2.2v.2h.2v.2h.2v.2zm1.3 2.3l-.7.8-.2-.2h-.2v-.4h-.2v-.4h-.2v-.4l-.2-.2v-.2l-.2-.2-.2-.3v-.2l.8-.6v.2h.2v.3l.2.2v.2h.2v.4h.2v.4h.2v.4h.2zm-.7.8l-.3-.3.3.3zm3.8-.4v1h-2.4l-.2-.2h-.2l-.2-.2h-.4v-.2h-.2l.7-1v.2h.2v.2h.8l.2.2h1.9zm3 .5l-1-.4.3.8H492l-.2-1h2.4l.5.7zm-.5-.7h.6l-.3.7-.4-.7zm0 .5l.4.2-.5-.2zm0-.5h.6l-.3.7-.4-.7z"/>
+      <path fill="#edb92e" d="M482 211.7c4.4 0 8 3.4 8 7.7s-3.6 7.8-8 7.8-7.6-3.5-7.6-7.8 3.5-7.8 7.7-7.8z"/>
+      <path fill="#21231e" d="M483 212.8l.8-.2c.5-3.7 2-7 4.3-9.6a14.7 14.7 0 00-5 9.8z"/>
+      <use width="1350" height="900" transform="matrix(-1 0 0 1 964.3 0)" xlink:href="#b"/>
+      <path fill="#edb92e" stroke="#21231e" d="M577 293.6c2 .3 3 1.5 3 2.8 0 1.3-1 2.6-3 3a8.7 8.7 0 01-1.6.2c-60.8 5.2-125.7 5.2-186.5 0a8.7 8.7 0 01-1.6-.3c-2-.3-3-1.6-3-3 0-1.2 1-2.4 3-2.7a8.6 8.6 0 011.5-.3c60.7-5.2 125.6-5.2 186.4 0 .6 0 1 .2 1.5.3z"/>
+      <path fill="#21231e" d="M412 298.4h-.2v-.2h-.2v-1h.4v-.2.2-.2h2.3l.7-.2h3l.7-.2h3l.7-.2h3l.8-.2h3.3l.7-.2h3.8l.7-.2h.8v1.2h-2.9l-.7.2H428l-.7.2h-2.7l-.8.2H421l.7.2h3.7l.7.2h2.9l.7.2h3.7l.7.2h1.5v1.2h-3.7l-.7-.2h-3.8l-.7-.2h-2.9l-.7-.2H420l-.6-.2h-2.9l-.7-.2H413l-1-.2v-.2.2zm.2-.7zm46.6-2.6v1.3H453l-.7.2h-6.6l-.7.2h-5l-1 .2h-3.5v-1.2h3.5l.8-.2h5.2l.7-.2h5.9l.7-.2h6.8zm23.3 0v1h-13.7l-.7.2h-8.8v-1h1.4l.8-.2H482zm23.5 0v1.3h-11.1l-.7-.2H482v-1h23.6zm23.3 1v1h-5.2l-.8-.2h-5.2l-.7-.2h-6.5l-.8-.2h-4.3V295h.7l.7.2h7.5l.8.2h5l.8.2h5.1l.6.2h2.3zm23.4 1v.2h.4v1h-.2l-.2.2h-3l-.7.2h-2.2l-.7.2h-3.8l-.8.2h-2.8l-.7.2H534l-.8.2h-3.6l-.8.2v-1.2h2.2l.7-.2h3.7l.8-.2h3.7l.7-.2h1.8-1.4l-.8-.2h-2.7l-.7-.2H533l-.6-.2h-3.6V296h6.5l.7.2h3l.8.2h2.8l.7.2h3l.7.2h3l.7.2h1.5zm0 .7zm-116.7.7h.2l.2.2v.8h-.2v.2h-.2v-1.2zm93.3 1.2h-.2l-.2-.2v-.2h-.2v-.8h.2v-.2h.4v1.2zm-50.3-36.2v-1h3.8v1h-4zm0-1zm-1.2 0h1.2v1h-1.2v-1zm0 1zm-.6-1h.6v1h-.6v-1zm-1 0h1v1h-1v-1zm0 0zm-.8 0h.6v1h-.7v-1zm0 1zm-.5-1h.4v1h-.5v-1zm0 0zm-.8 0h.8v1h-.8v-1zm0 0zm-1.2 0h1.2v1h-1.2v-1zm-1 0h1v1h-1v-1zm0 0zm-.2 0h.2v1h-.2v-1zm-1 0h1v1h-1v-1zm-2.5 1v-1h2.6v1h-2.5zm0-1zm-.3 0h.2v1h-.2v-1zm0 1zm-.2-1h.2v1h-.2v-1zm0 0zm-1 0h1v1h-1v-1zm0 1zm-.5-1h.4v1h-.4v-1zm0 0zm-.4 0h.4v1h-.4v-1zm0 1zm-1.2-1h1.2v1h-1.2v-1zm0 0zm0 0v1-1zm0 1h-.2.2zm-1.2-1h1.2v1l-1.2.2v-1zm-.4 0h.4v1.2h-.4v-1zm-.8.2h.8v1h-.8v-1zm0 0h.3-.2zm-.3 0h.3v1h-.3v-1zm0 1h-.5.5zm-1-1h1v1h-1v-1zm-1 0h1v1h-1v-1zm0 0zm-.2 0v1-1zm0 1zm-1-1h1v1h-1v-1zm-.6 0h.5v1h-.4v-1zm0 0zm0 0v1-1zm0 1zm-4.2.2v-1h3.5v-.2h.4v1h-2.7l-.2.2h-.8zm0-1zm-.6 0h.5v1h-.6v-1zm0 0zm-1.7 0h1.6v1h-1.7v-1zm0 1zm-.2-1h.3v1h-.2v-1zm0 0zm-1.3 0h1.4v1h-1.3v-1zm-1 0h1v1h-1v-1zm-.6 0h.7v1h-.6v-1zm0 0zm0 0v1.2-1zm0 1.2zm-1.6-1h1.5v1h-1.5v-1zm0 1zm0-1v1-1zm0 0zm-1.2 0h1.2v1h-1.2v-1zm0 0zm0 0v1-1zm0 1zm-1.2-1h1l.2 1H444v-1zm-.8 0h.8v1h-.7v-1zm0 0zm-1.6.2h1.6v1h-1.5v-1zm0 1zm0-1v1-1zm0 0zm-6.2 1.3v-1h1.7l.2-.2h3.9v1H436l-.2.2zm0 0zm-.4-1h.3v1h-.2v-1zm0 0zm-9 1.4v-1h1.3l.3-.2h3.2l.3-.2h3.5v1h-5.1l-.3.2H426zm0 0zm-.3-1h.2v1h-.3v-1zm0 0zm-.5 0h.5v1h-.4v-1zm-18.2 2.2v-1h1.8l.5-.2h1.7l.5-.2h2.4l.6-.2h2.6l.6-.2h2.2l.6-.2h2.8l.6-.2h1.2v1h-2.1l-.6.2h-2.7l-.6.2h-2.3l-.6.2h-2.8l-.6.2h-2.2l-.5.2H408l-.6.2h-.6zm0 0zm-.3-1h.3v1h-.2v-1zm0 0zm0 0v1-1zm0 1zm-26.3 2.4v-1h.7l1-.2h.8l.8-.2h1.6l.8-.2h1l.7-.2h1.6l.8-.2h1.8l.8-.2h.8l1-.2h1.7l.7-.2h1.7l.8-.2h1.8l.7-.2h1.6l1-.2h1.5l1-.2v1H405l-.7.2h-1.7l-.8.2H400l-.7.2h-.8l-1 .2H396l-.8.2h-1.7l-.8.2H391l-.8.2h-.8l-.8.2H387l-1 .2h-.7l-.8.2H383l-1 .2h-.8l-.8.2zm0 0zm0-7v1h-.5l-.5.2h-.5l-.3.2-.4.2-.3.2h-.2l-.3.3-.2.2-.3.3v.5l-.2.2v1.1h.2v.3l.2.2.2.2.3.3.3.2h.2l.3.2h.3l.4.2h1v1h-1.6l-.4-.2-.4-.2-.3-.2-.3-.2-.3-.2-.4-.2-.2-.3-.2-.2v-.3l-.3-.3-.2-.3v-1.6l.2-.3.2-.3.2-.4.2-.3.2-.3.4-.3.3-.2.4-.2.3-.2h.4l.5-.2h.6l.5-.2zm0 1zm26.3-3.3v1H405l-.7.2h-1.7l-.8.2H400l-.7.2H396l-.8.2h-1l-.7.2H392l-1 .2h-1.6l-.8.2h-.8l-.8.2h-1.7l-.8.2h-.8l-.8.2H381l-.8.2v-1h1.7l.8-.2h.8l.8-.2h.8l.8-.2h1.7l.8-.2h1.6l1-.2h.8l.8-.2h1.8l.7-.2h1.7l1-.2h.7l.8-.2h1.8l.7-.2h1.6l1-.2h2.5zm0 1zm0 0v-1 1zm0-1zm37-2.2v1.2H439l-1 .2h-2.3l-1.3.2H431l-1.2.2h-2.2l-1.3.2H424l-1.2.2h-2.3l-1 .2H417l-1.2.2h-1.2l-1 .2h-2.3l-1.3.2h-1l-1.2.2h-1.2v-1h2.2l1.2-.2h1l1.2-.2h2.2l1.3-.2h1l1.2-.2h2.3l1-.2h2.3l1.3-.2h2.4l1.2-.2h2.3l1-.2h3.5l1.2-.2h3.5l1-.2h2.5zm1 1l-1 .2v-1h1v1zm0 0zm.2 0h-.3v-1l.2 1zm-.2-1zm.4 1h-.3l-.2-1h.4v1zm1.2 0h-1.2v-1h1.2v1zm0 0zm0 0v-1 1zm0-1zm15.4-.4v1h-5.5l-.5.2h-6.5l-.4.2h-2.6v-1h5l.5-.2h7.7l.5-.2h1.8zm.8 1h-.8v-1h.8v1zm0 0zm0 0v-1 1zm0-1zm1.4 1h-1.4v-1h1.4v1zm0 0zm.2 0h-.2v-1h.2v1zm0 0h-.2.2zm0 0v-1 1zm0-1zm1.2 1h-1.2v-1h1.2v1zm.5 0h-.6v-1h.4v1zm-.2-1zm.8 1h-.7l-.2-1h.8v1zm1 0h-1v-1h1v1zm0 0zm.2 0h-.3v-1h.2v1zm0-1zm.4 1h-.4v-1h.4v1zm3-1l.2 1H468v-1h3.3zm1.2 1h-1v-1l1-.2v1zm0 0v-1.2 1zm0-1.2zm1.3 1h-1.2v-1h1.2v1zm3.5-1v1h-3.5v-1h3.5zm0 0zm0 1v-1 1zm0 0zm1.3 0h-1.2v-1h1.2v1zm3.6-1v1h-3.5v-1h3.7zm3.8 0v1H482v-1h3.8zm1 1h-1v-1h1.2v1zm.2 0zm0 0v-1 1zm0-1zm3.6 0v1H487v-1h4zm1 1h-1v-1h1.2v1zm.2-1zm0 1v-1 1zm1 0h-1v-1h1v1zm3.3-1v1H493v-1h3zm.5 1h-.4v-1h.5v1zm0-1zm.3 1h-.3v-1h.3v1zm0 0zm1 0h-1v-1h1v1zm.6 0h-.7v-1h.8v1zm0-1zm.5 1.2h-.6v-1h.5v1zm1 0h-1v-1h1v1zm0-1zm0 1v-1 1zm0 0h.3-.2zm.3 0h-.2v-1h.3v1zm0 0zm1.3 0h-1.3v-1h1.4v1zm0-1zm0 1v-1 1zm0 0h.2zm1 0h-1v-1h1v1zm15.2-.6v1h-6l-.4-.2H504l-.6-.2h-.9v-1h6l.4.2h6.6l.4.2h1.7zm0 0zm0 1v-1 1zm0 0zm1.3 0h-1v-1h1v1zm.4 0h-.3v-1h.5v1zm0-1zm.2 1h-.2v-1h.2v1zm0 0zm1 .2h-1v-1h1v1zm37 1v1h-2.3l-1.2-.2h-1l-1.2-.2h-2.2l-1.3-.2H546l-1-.2h-1.3l-1-.2h-2.3l-1.3-.2H537l-1-.2h-4l-1-.2h-2.6l-1-.2H524l-1-.2h-2.4v-1h4.7l1.2.2h3.3l1.3.2h2.3l1.3.2h2.3l1 .2h2.4l1 .2h2.3l1.3.2h2.3l1 .2h2.3l1.2.2h1.2l1 .2h1.3l1 .2h1.3zm0 0zm0 1v-1 1zm0 0zm26.4 1.4v1H582l-.8-.2h-.8l-.8-.2H578l-.7-.2h-.8l-.8-.2H574l-.8-.2h-.8l-.8-.2h-1.8l-.7-.2h-1.5l-.8-.2H565l-.8-.2h-1.7l-.8-.2H560l-.8-.2h-1.6v-1h3.5l.8.2h1.6l1 .2h1.7l.7.2h1.7l.8.2h1.8l.7.2h.8l.8.2h1.8l.8.2h.8l.8.2h1.8l.7.2h.7l.8.2h1.8l.7.2zm0 1zm0 6v-1h1.6l.3-.2h.3l.3-.2.2-.2.2-.2h.2v-.3l.2-.2v-.2h.2v-1.4l-.2-.3v-.2h-.3l-.2-.3-.3-.2h-.2l-.3-.3-.4-.2h-.4l-.4-.2h-.4l-.5-.2v-1h.5l.6.2h.5l.5.3.4.3.4.2.3.2.4.3.3.3.2.3v.3l.3.2v.3l.2.3v1.3l-.3.3v.3l-.3.3-.3.4-.3.2-.3.2-.2.2-.3.2-.4.2h-.3l-.4.2H584zm0 0zm-26.5-2.4v-1h1.8l.8.2h1.8l.8.2h1.8l.7.2h1.7l1 .2h.7l.8.2h1.8l.7.2h1.6l.8.2h1l.8.2h1.6l.8.2h1l.7.2h1.5l.8.2h1l.7.2v1h-1l-.8-.2h-1.6l-.8-.2h-.8l-.8-.2h-1.7l-.8-.2h-.8l-1-.2h-1.6l-.8-.2h-.8l-1-.2h-1.4l-.8-.2H566l-.7-.2h-1.6l-1-.2H561l-1-.2h-1.6l-.8-.2zm0 0zm0-1v1-1zm0 0zm-.2 0h.3v1h-.4v-1zm0 1zM539 265v-1h2.9l.5.2h3l.5.2h2.3l.6.2h2.2l.6.2h2.3l.5.2h2.4l.5.2v1h-1.7l-.5-.2h-2.3l-.6-.2H550l-.7-.2H547l-.6-.2h-2.9l-.6-.2H540l-.6-.2h-.6zm-.4-1h.5v1h-.4v-1zm0 0zm-.2 0h.2v1h-.2v-1zm0 1zm-9.2-.5v-1h4l.3.2h3.2l.3.2h1.3v1h-1.6l-.3-.2H533l-.4-.2h-3.3zm0-1zm-.3 0h.2v1h-.3v-1zm0 1zm-6.4-.3v-1h4.5l.2.2h1.7v1h-4.4l-.2-.2h-1.7zm0-1zm0 0v1-1zm0 1zm-1.5-1h1.7v1H521v-1zm0 0zm-.7 0h.8v1h-.7v-1zm-1-.2h1v1H519l.2-1zm-.2 1zm0-1h.2v1-1zm0 0zm-1 0h1v1h-1v-1zm0 0zm-.2 0v1-1zm0 1zm-1.4-1h1.4v1h-1.4v-1zm0 1zm-.2-1h.2v1h-.2v-1zm0 0zm-.6 0h.6v1h-.7v-1zm-1 0h1v1h-1v-1zm-1.4-.2h1.4v1h-1.4v-1zm0 0zm-.2 0h.2v1h-.2v-1zm0 1zm-1.6-1h1.6v1h-1.6v-1zm0 0zm-.6 0h.6v1h-.6v-1zm-4.2 1v-1.2h3.3l.2.2h.8v1h-4.3zm0 0zm0-1.2v1-1zm0 0zm-.5 0h.6v1h-.5v-1zm-1 0h1v1h-1v-1zm0 1zm0-1v1-1zm0 0zm-1.3 0h1.2v1h-1.3v-1zm-1 0h1v1h-1v-1zm0 1h.6-.6zm-.2-1h.3v1h-.3v-1zm0 0h-.3.3zm-.8 0h.8v1h-.8v-1zm-.4 0h.4v1h-.4v-1zm-1.2 0h1.3v1H500v-1zm0 1h.2zm0-1v1-1zm0 0zm-1 0h1v1h-1v-1zm0 1zm-.5-1h.4v1h-.6v-1zm0 0zm-.4 0h.5v1h-.4v-1zm0 1zm-1-1h1v1h-1v-1zm0 0zm-.2 0h.2v1h-.2v-1zm0 1zm-.3-1h.3v1h-.3v-1zm0 0zm-2.6.8v-1h2.3v1H494zm-1-1h1v1h-1v-1zm-.2 0h.2v1h-.2v-1zm0 0zm-1 0h1v1h-1v-1zm-1.2 0h1.2v1h-1.3v-1zm0 0zm-.8 0h.8v1h-.8v-1zm0 0zm-.4 0h.4v1h-.5v-1zm0 1zm-.7-1h.7v1h-.7v-1zm0 0zm-1 0h1v1h-1v-1zm-.7 0h.6v1h-.6v-1zm0 1zm-1.2-1h1.2v1H486v-1zm0 0zm-3.7 1v-1h3.9v1h-4.1zm.4 1.8L460 276.6l-.4-1 22.7-11.3h.4v1zm-.5-1h.4-.5zm22.7 12.4l-23-11.4.4-1 22.7 11.5v1h-.3zm.4-1l1 .6-1 .4v-1zm-23 11.6l22.7-11.5.4 1-22.6 11.4h-.5v-.8zm.4 1h-.3.4zM460 275.7l22.8 11.5-.5 1-22.8-11.6v-1h.4zm-.4 1l-1-.5 1-.5v1z"/>
+      <path fill="#0c4076" d="M482 269c5.8 0 10.4 3.2 10.4 7s-4.6 7-10.3 7-10-3.2-10-7 4.5-7 10-7z"/>
+      <path fill="#21231e" d="M493 276h-1v-.3l-.2-.3v-.5l-.2-.3v-.3l-.3-.3-.2-.4v-.3l-.3-.2-.2-.2-.2-.3-.3-.2-.3-.3-.3-.2-.3-.2-.2-.2-.4-.2-.4-.2-.3-.2-.4-.2h-.5l-.4-.3h-.4l-.5-.2h-.8l-.5-.2h-1.9v-1.2h1.7l.6.2h.5l.5.2h.5l.5.2h.4l.5.3.4.2.5.2h.5l.4.3.3.2.4.2.3.3.4.3.3.2.3.3.3.3.2.4.3.3.2.4.2.4.2.4v.3l.2.5v.4l.2.2v.8zm-11 7.4v-1h1.6l.5-.2h1.1l.5-.2h.5l.4-.3h.4l.5-.3h.4l.3-.3h.4l.4-.3.3-.2.4-.3.3-.2.3-.2.3-.3.2-.3.2-.2.3-.3v-.3l.3-.3h.2v-.4l.2-.3v-.7l.2-.3v-.3h1v.4l-.2.4v.4l-.2.4v.3l-.2.3-.2.3-.2.4-.2.3-.3.3-.2.3-.3.2-.3.3-.3.3-.4.3-.3.3-.4.2-.4.3-.5.2-.4.2-.4.2h-.4l-.5.3h-.4l-.5.3h-.5l-.5.2h-1.1l-.5.2H482zm-10.6-7.4h1v1l.2.3v.3l.2.2.2.3v.4l.3.3.2.3.3.2.2.3.3.3.3.2.3.2.2.3.3.2.4.2h.2l.4.3h.4l.4.3h.5l.3.3h.9l.5.2h1.5l.6.2h.5v1h-1.9l-.5-.2h-.5l-.5-.2-.5-.2h-.4l-.5-.3h-.4l-.4-.3-.4-.2-.4-.2-.4-.3-.4-.2-.3-.2-.4-.2-.4-.3-.3-.3-.3-.3-.2-.4-.3-.3-.2-.3-.2-.4v-.3l-.2-.4-.2-.4v-.8l-.2-.4v-.4zm10.7-7.4v1h-1.3l-.5.2h-.3l-.5.2h-.5l-.4.2h-.4l-.6.3h-.4l-.4.3-.4.2-.3.2-.5.2-.3.2-.3.2-.4.2-.3.3-.3.2-.2.3-.3.3-.2.3-.2.3v.3l-.2.2v.3l-.2.3v.7l-.2.3v.3h-1V275l.2-.5.2-.4v-.2l.3-.4.3-.3.2-.3.3-.3.2-.3.3-.2.3-.3.3-.2.3-.3.3-.3.4-.2.4-.2.4-.2h.4l.4-.3.5-.2.5-.2h.5l.5-.2h1l.5-.2h1.1l.6-.2h.5z"/>
+      <path fill="#edb92e" d="M482 211.7c4.4 0 8 3.4 8 7.7s-3.6 7.8-8 7.8-7.6-3.5-7.6-7.8 3.5-7.8 7.7-7.8z"/>
+      <path fill="#21231e" d="M490.4 219.4h-1v-1l-.2-.3v-.4l-.2-.3v-.4l-.2-.4v-.3l-.3-.3-.2-.3-.2-.3v-.3l-.3-.2-.2-.3-.2-.2-.3-.2-.3-.2-.2-.2-.3-.2-.3-.2-.4-.2h-.3l-.3-.3h-.4l-.3-.2h-.4l-.4-.2H482V211l.6.2h1.2l.4.2h.4l.4.2.3.2.4.2h.4l.4.3.3.3.4.2.4.2.3.3.3.3.2.3.3.2.2.3.3.3.2.3.2.5.2.3v.4l.3.4v.8l.2.4v.8l.2.4v.4zm-8.3 8.3v-1h1.5l.3-.2h.3l.3-.2.4-.2h.3l.3-.2h.3l.2-.3.3-.2.2-.2.3-.2.3-.2.2-.3.2-.2.2-.2v-.3l.3-.3.2-.3.2-.4v-.3l.2-.4v-.7l.2-.4v-.8l.2-.4v-.4h1v1.2l-.2.4v.5l-.2.4v.3l-.3.4v.3l-.3.4-.2.3-.2.4-.3.4-.2.3-.3.3-.2.3-.3.3-.3.2-.3.3-.3.3-.3.2-.3.2-.3.2h-.4l-.3.2-.4.2h-.4l-.4.2H482zm-8-8.3h1v1.8l.2.3.2.3v.3l.2.3.2.3.2.2.2.3.2.3.2.3.2.3.2.3.3.2.2.3.3.3.3.2.4.2h.3l.3.3h.3l.4.3h.3l.3.2h.7l.4.2h.7v1h-1.6l-.4-.2h-.3l-.4-.3h-.4l-.4-.3-.4-.3-.3-.2-.5-.2-.3-.2-.3-.2-.4-.2-.3-.3-.3-.3-.2-.3-.3-.3-.2-.3-.2-.3v-.3l-.3-.4v-.3l-.3-.4v-.4l-.2-.5v-.4l-.2-.3v-1.4zm8-8.3v1.2h-1.3l-.4.2h-.3l-.3.2h-.4l-.3.3h-.3l-.3.2-.3.2-.2.2-.3.2-.2.3-.3.3-.2.2-.2.3-.2.3-.2.4-.2.3-.2.3-.2.3v.3l-.2.3-.2.3v.7l-.2.3v1.1h-1v-1.6l.2-.4v-.4l.2-.4.2-.4v-.4l.3-.3v-.4l.3-.2.2-.3.3-.3.2-.3.3-.4.3-.3.3-.3.2-.2.3-.2.4-.3.2-.2h.4l.3-.2.3-.2h.4l.4-.2h.5l.4-.2h1.1z"/>
+      <path fill="#edb92e" d="M482 213.7c3.3 0 5.8 2.6 5.8 5.7 0 3.2-2.5 5.8-5.7 5.8-3 0-5.5-2.6-5.5-5.8 0-3 2.5-5.7 5.6-5.7z"/>
+      <path fill="#21231e" d="M488.3 219.4h-1V218h-.2v-.7l-.2-.2v-.2l-.2-.3-.2-.2v-.2l-.3-.2-.2-.2-.2-.2-.2-.2h-.2l-.2-.3h-.4l-.2-.3h-.2l-.3-.2h-.6l-.2-.2H482v-1h1.8l.3.2h.3l.2.2h.3l.3.3h.4l.2.3h.2l.3.3.3.2.2.2.2.2.2.3v.2l.3.3v.2l.3.3v.2l.2.3.2.3v.6l.2.2v1.3zm-6.2 6.3v-1h1.1l.2-.2h.3l.2-.2h.2l.2-.2h.4l.2-.2.2-.2h.2l.2-.3.2-.2h.2v-.2l.3-.2v-.2l.3-.3.2-.3v-.2l.2-.3v-.2l.2-.3v-1.3h1v2l-.2.3-.2.3-.2.4-.2.3v.2l-.3.2v.2l-.3.2-.2.3h-.2l-.2.3h-.2l-.2.3-.3.2h-.2l-.2.3-.3.2h-.2l-.3.2h-.3l-.3.2h-1.4zm-6-6.3h1v1.3l.2.3v.2l.2.3v.2l.2.2.2.4.2.2v.2h.3l.2.3.2.3v.2h.3l.2.3h.3l.2.2h.2v.2h.4l.2.2h.2l.3.2h.9v1h-1.5l-.3-.2h-.3l-.3-.2h-.2l-.3-.3-.3-.2-.3-.2-.3-.2h-.2l-.2-.3h-.2l-.2-.4-.2-.2-.2-.2-.2-.3-.2-.3v-.3l-.2-.3h-.2v-.4l-.2-.3v-.6l-.2-.3v-.9zm6-6.2v1H481l-.2.2h-.4l-.3.2-.3.3h-.5l-.2.3h-.2v.3l-.3.2h-.2l-.2.3v.3l-.2.2v.2l-.2.3v.2l-.2.2v.2l-.2.3v.4l-.2.2v.7h-1V218l.2-.4v-.3l.2-.3.2-.3v-.2l.2-.3.2-.2.2-.3.2-.2.2-.3.2-.2.2-.2.2-.2.2-.2h.3l.2-.3h.2l.3-.2h.2l.3-.2h.3l.3-.2h.5l.3-.2h.6z"/>
+      <path fill="#0c4076" d="M482 215.8c2 0 3.7 1.6 3.7 3.6S484 223 482 223c-1.8 0-3.4-1.6-3.4-3.6s1.6-3.6 3.5-3.6z"/>
+      <path fill="#21231e" d="M486.2 219.4h-1v-.8h-.2v-.3l-.2-.2v-.2l-.2-.2-.2-.2-.2-.3h-.2l-.3-.2h-.2l-.2-.2h-.2v-.2H482v-1h1.4v.2h.5v.2h.3v.2h.3v.3h.3v.2l.2.2.2.3.2.3v.2l.2.2.2.3v.4l.2.2v.6zm-4 4.2v-1h.6v-.2h.5l.3-.2h.2l.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2v-.2l.2-.2v-.4h.2v-1h1v1l-.2.2v.2l-.2.2v.2l-.2.2-.2.3-.2.2-.2.2-.3.2-.3.3h-.3l-.3.2-.3.2h-1l-.3.2zm-4-4.2h1v1.3l.2.2v.2l.2.2.2.2.2.2.2.2.2.2h.2v.2h.4l.2.2h.8v1.2h-.7l-.2-.2h-.3v-.2h-.5l-.2-.2-.3-.3h-.2v-.2l-.2-.2h-.2v-.2l-.2-.3-.2-.3v-.2l-.2-.2-.2-.3v-1.4zm4-4v1h-1l-.2.2h-.2l-.2.2h-.2v.2h-.2l-.2.3-.2.2-.2.2-.2.3v.4h-.2v1h-1V218l.2-.2.2-.3v-.2l.2-.2.2-.2.3-.3.2-.2.2-.2h.2l.2-.2h.2l.2-.2h.3l.3-.2h.9z"/>
+    </g>
+    <path fill="#c6363c" d="M314.6 301.2v271.3c0 48.5 18.8 92.6 49.2 124.6A162.9 162.9 0 00482 749a163 163 0 00118.5-51.7c30.4-32 49.2-76 49.2-124.5V301.2h-335z"/>
+    <path fill="#fff" d="M313.4 300v277l.2 4.6.3 4.5.3 4.6.5 4.4.5 4.5.7 4.3.8 4.4 1 4.3 1 4.2 1 4.3 1.2 4.2 1.3 4 1.4 4.2 1.4 4 1.7 4 1.6 4 1.8 4 2 3.8 1.8 3.8 2 3.7 2 3.7 2.2 3.6 2.2 3.6 2.4 3.5 2.4 3.6 2.4 3.4 2.6 3.3 2.6 3.2 2.7 3.2 2.8 3 3 3.2 1.6-1.7-2.8-3-2.7-3-2.6-3.3-2.5-3.2-2.7-3.3-2.4-3.3-2.5-3.4-2.2-3.5-2.3-3.5-2-3.6-2-3.6-2-3.7-2-4-1.8-3.7-1.7-3.8-1.6-4-1.7-4-1.4-4-1.5-4-1.2-4-1.2-4.2-1-4-1-4.3-.8-4.3-.8-4.3-.7-4.3-.6-4.2-.4-4.5-.4-4.4-.2-4.5-.2-4.5V302.5h332.7V577l-.2 4.5-.3 4.4-.3 4.3-.5 4.5-.6 4.3-.7 4.4-1 4.3-.8 4.3-1 4.2-1 4-1.2 4.3-1.3 4-1.3 4-1.4 4-1.6 4-1.6 4-1.7 3.8-1.7 3.8-2 4-2 3.6-2 3.6-2 3.6-2.3 3.5-2.3 3.5-2.3 3.4-2.5 3.3-2.6 3.3-2.6 3.2-2.6 3.2-2.7 3-2.8 3-3 3-2.8 3-3 2.7-3 2.6-3.3 2.6-3 2.6-3.4 2.4-3.3 2.5-3.3 2.3-3.4 2.2-3.5 2.2-3.5 2-3.5 2-3.6 2-3.7 1.7-3.7 1.8-3.8 1.7-3.8 1.5-3.8 1.4-4 1.3-3.8 1.3-4 1-4 1-4 1-4 1-4.2.6-4 .6-4.3.5-4 .4-4.3.4-4.3.2H482v2.4h4.5l4.3-.2 4.3-.3 4.4-.4 4.2-.4 4.2-.6 4.2-.8 4-.8 4.2-1 4-1 4-1.2 4-1.2 4-1.4 4-1.4 3.8-1.6 3.7-1.6 3.8-1.7 3.7-2 3.7-1.8 3.5-2 3.5-2 3.6-2.3 3.4-2.2 3.4-2.4 3.3-2.5 3.3-2.4 3.2-2.6 3.2-2.7 3-2.7 3-2.8 3-3 3-3 2.8-3 2.8-3 2.7-3.3 2.6-3.2 2.5-3.3 2.5-3.4 2.4-3.5 2.3-3.4 2.3-3.6 2-3.6 2.2-3.7 2-3.7 2-3.8 1.7-4 1.8-3.8 1.6-4 1.6-4 1.4-4 1.4-4 1.3-4.2 1.2-4.2 1-4.3 1-4.2 1-4.3.7-4.4.7-4.3.5-4.5.5-4.4.4-4.5.3-4.4V577l.2-4.5V300z"/>
+    <g fill="#fff" stroke="#21231e">
+      <path d="M483.7 734.8c1.4-.2 4 0 5.7-1.4 2.5-2 1.5-9.8 1.3-14.8-1-25.3-2.2-68-3.5-128-2-.2-3.6 0-5 .2a12 12 0 00-5 0c-1.4 59.8-2.5 102.5-3.6 127.8-.2 5-1.2 13 1.3 14.8 1.7 1.5 4.2 1 5.6 1.4h3z"/>
+      <path d="M499.6 734c-1.5 0-4 .5-6-.8-2.6-1.7-2.8-9.7-3-14.7a6148 6148 0 00-7.6-127.6c2-.6 3.6-.6 5-.5.3 0 .5 0 .7-.2 9.6 59.2 13.2 101.2 19.7 126.5 1 3.5 2.8 12.2-.2 15-1.7 1.7-4.2 1.6-5.6 2l-3 .3z"/>
+      <path d="M518.2 731.4c-1.5 0-3.8.8-6-.3-2.7-1.4-2.6-9.4-3.8-14.2-6.6-25.3-10.2-67.3-19.7-126.5 2-.7 3.6-.8 5-1h.2c15 57.6 19.6 98.2 31.4 123.2 1 3.5 4 12.7 1.2 16-1.5 1.7-4 1.8-5.4 2.3l-3 .6z"/>
+      <path d="M537 726c-1.5.3-4 1.6-6 .7-3-1.2-3.5-9.7-5.6-14.2-11.8-25-16.3-66-31.7-124 2-.8 3.5-1 5-1.3 1.3-.6 1-1 3-1.2 18 57.3 23.7 97 40.5 121.8 2.7 4 4.7 12 3 14.5-1.5 2-4 2.3-5.3 3l-3 .8zm-72.2 8c1.4 0 3.8.5 5.8-.8 2.7-1.7 3-9.7 3-14.7a7227 7227 0 017.7-127.6c-2-.6-3.6-.6-5-.5a25.4 25.4 0 00-.7-.2c-9.6 59.2-13.2 101.2-19.7 126.5-1 3.5-3 12.2 0 15 1.8 1.7 4.3 1.6 5.7 2l3 .3z"/>
+      <path d="M446 731.4c1.6 0 4 .8 6-.3 2.8-1.4 2.7-9.4 4-14.2 6.4-25.3 10-67.3 19.6-126.5-2-.7-3.6-.8-5-1h-.3c-15 57.6-19.6 98.2-31.4 123.2-1.2 3.5-4.2 12.7-1.3 16 1.5 1.7 4 1.8 5.4 2.3l3 .6z"/>
+      <path d="M427.3 726c1.5.3 4 1.6 6 .7 3-1.2 3.5-9.7 5.6-14.2 11.7-25 16.2-66 31.6-124-2-.8-3.5-1-5-1.3-1.3-.6-1-1-3-1.2-18 57.3-23.7 97-40.5 121.8-2.6 4-4.6 12-2.8 14.5 1.4 2 4 2.3 5.2 3l3 .8zm99.7-43c-1.3 0-3.3 1-5.4 0-2.8-1.4-4.6-9-6-14-12-23.5-23-65.3-40.8-123.4 1.8-.7 3-1 4.5-1 1-.5 2.4-1 4.3-1.2 19.3 57.5 28 99 46.7 122 3 3.8 5.4 12 4 14.4-1.2 1.8-3.4 2-4.6 2.6l-2.7.6z"/>
+      <path d="M512 685.8c-1.5 0-3.6.6-5.6-.5-2.6-1.6-3.5-9.4-4.5-14.3-5-25-13.7-67-26.3-126 1.8-.7 3.2-.8 4.5-.8 1.2-.4 2.6-.8 4.5-.8 15 58.7 18.3 102.6 32.4 125 2.6 4.2 4 12.5 2.3 14.8-1.3 1.7-3.5 1.7-4.8 2.2l-2.7.4z"/>
+      <path d="M496.4 687.6c-1.4-.2-3.5.3-5.4-1-2.4-1.7-2.4-9.6-2.8-14.6-2-25.3-6-68-11.6-127.6 2-.5 3.3-.4 4.6-.3 1.2-.2 2.6-.5 4.5-.4 8 59.6 12.8 102.8 18 127.2 1 5 2.4 12.6.4 14.8-1.4 1.5-3.6 1.4-5 1.8l-2.6.2z"/>
+      <path d="M437.2 682.8c1.4 0 3.4 1 5.5 0 2.8-1.4 4.6-9 6-14 12-23.5 23-65.3 40.8-123.4-1.8-.7-3-1-4.5-1-1-.5-2.4-1-4.3-1.2-19.3 57.5-28 99-46.7 122-3 3.8-5.4 12-4 14.4 1.2 1.8 3.4 2 4.6 2.6l2.6.6z"/>
+      <path d="M452.4 685.8c1.4 0 3.5.6 5.5-.5 2.5-1.6 3.4-9.4 4.4-14.3 4.8-25 13.6-67 26.2-126-1.8-.7-3.2-.8-4.5-.8a12 12 0 00-4.4-.8c-15 58.7-18.3 102.6-32.4 125-2.5 4.2-4 12.5-2.2 14.8 1.3 1.7 3.5 1.7 4.7 2.2l2.7.4z"/>
+      <path d="M468 687.6c1.3-.2 3.4.3 5.3-1 2.4-1.7 2.4-9.6 2.8-14.6 2-25.3 6-68 11.7-127.6-2-.5-3.3-.4-4.6-.3-1-.2-2.5-.5-4.4-.4-8 59.6-12.8 102.8-18 127.2-1 5-2.4 12.6-.4 14.8 1.5 1.5 3.7 1.4 5 1.8l2.7.2z"/>
+      <path d="M483.5 688c1.3 0 3.5.2 5.2-1.3 2.3-2 1.4-9.8 1.2-14.8-1.2-25.4-2-68-3.3-128a14 14 0 00-4.6 0c-1.2-.2-2.5-.3-4.4 0-1.2 60-2 102.6-3.2 128-.2 5-1 12.8 1.2 14.7 1.6 1.5 4 1 5.2 1.4h2.7z"/>
+      <path d="M516.5 648c-1 0-2.5 1-4 0-2.3-1.5-3.7-9.2-4.8-14-9.2-23.5-17.5-65.4-31.2-123.5 1.4-.7 2.4-1 3.4-1 .8-.5 1.8-1 3.3-1 14.7 57.4 21.3 99 35.7 121.8 2.4 3.8 4 12 3 14.5-.8 1.8-2.5 2-3.4 2.5l-2 .7z"/>
+      <path d="M505 651c-1 0-2.7.6-4.3-.6-2-1.5-2.7-9.4-3.4-14.3-3.7-25-10.5-67-20-126 1.3-.6 2.3-.7 3.4-.7 1-.4 2-.7 3.4-.8 11.5 58.7 14 102.6 25 125.2 2 4 3 12.4 1.6 14.6-1 1.7-2.7 1.8-3.6 2.2l-2 .5z"/>
+      <path d="M493 652.7c-1 0-2.6.4-4-1-2-1.7-2-9.6-2.2-14.5-1.5-25.4-4.5-68-9-127.7 1.5-.4 2.6-.4 3.6-.3 1-.3 2-.6 3.5-.4 6 59.6 9.7 102.7 13.6 127 .7 5 2 12.8.4 15-1.2 1.5-3 1.4-4 1.7l-2 .2z"/>
+      <path d="M447.8 648c1 0 2.5 1 4 0 2.3-1.5 3.7-9.2 4.8-14 9.2-23.5 17.5-65.4 31-123.5-1.2-.7-2.2-1-3.2-1-1-.5-2-1-3.4-1-14.7 57.4-21.3 99-35.7 121.8-2.4 3.8-4.2 12-3 14.5.8 1.8 2.5 2 3.4 2.5l2 .7z"/>
+      <path d="M459.4 651c1 0 2.6.6 4-.6 2.2-1.5 3-9.4 3.6-14.3 3.7-25 10.5-67 20-126a7.7 7.7 0 00-3.4-.7c-1-.4-2-.7-3.4-.8-11.4 58.7-14 102.6-24.8 125.2-2 4-3 12.4-1.7 14.6 1 1.7 2.7 1.8 3.6 2.2l2 .5z"/>
+      <path d="M471.3 652.7c1 0 2.6.4 4-1 2-1.7 2-9.6 2.2-14.5 1.5-25.4 4.5-68 9-127.7a9.5 9.5 0 00-3.6-.3c-1-.3-2-.6-3.6-.4-6.2 59.6-9.8 102.7-13.7 127-.7 5-2 12.8-.4 15 1.2 1.5 3 1.4 4 1.7l2 .2z"/>
+      <path d="M483.2 653.2c1-.2 2.7 0 4-1.4 1.7-2 1-9.7 1-14.7-1-25.3-1.6-68-2.5-128-1.5-.2-2.6 0-3.6.2-.8-.2-2-.4-3.4 0-1 59.8-1.6 102.5-2.4 128 0 5-.8 12.7 1 14.6 1.2 1.5 3 1.2 4 1.4h2z"/>
+      <path d="M475 559c-.2 4.4-.3 9-.3 14l-10.6 2.3c0 4.8 12 55.4 18 55.4 6.3 0 18.2-50.6 18.2-55.5l-10.6-2v-.2c0-5 0-9.6-.2-14-2.2 2-4.7 5.2-7.3 8-2.4-2.8-5-6-7-8z"/>
+    </g>
+    <g id="d">
+      <path fill="#edb92e" stroke="#21231e" d="M412 584.5c-3 .2-7 2-18.5 12-5 10.2-10 20.5-17 29.4-2.4 1.4-4.2 2.5-6 3.2a84 84 0 01-17-.5c-4.4-4-11.3-1.2-9 3.2-1.8 1.6 2.2 7.8 5.3 5.2 3-2.4 13-.2 16.4-1.4-1.3 3-10.4 5-16.8 5.5-5.8.2-5.4 6-3 10.5 2.7 1.8.5-.4 1.4.8 2.6 4 8.2 3.4 8.4-.4.2-4 13.8-9 15.8-12-2.5 6-8.2 11.5-11 17.3-3 3-5 3.7-1 10 4.4-.6 4.6-1.7 7.3.8 6-.6 7-2.4 6-7.2-1-5 3.2-14 4.6-16.6 1.2-2.4 1.5-4.8 2.8-6.3 2.2-2.5 12.6-7.7 15.2-6.3 5 2.7 8.7 1 9.3-3.7-1.6-1.2-.4-8-3.8-8.2-2.8-.3-4.4.6-7 2.7-4 3.2-6 5-7.4 4.6-3-.7 5.8-5 13.8-15.6 11-14.5 11.8-22 11.3-27z"/>
+      <use width="1350" height="900" transform="matrix(-1 0 0 1 801.6 0)" xlink:href="#c"/>
+      <path fill="#edb92e" stroke="#21231e" d="M345.2 634.5c-4-2.3-6.3-2.2-8-.5-.7 1-1.8.5-1.2-1 2.7-6.3 7-7 10.7-4.2l2.8 2.7c-.6 1-3.8 2.3-4.3 3zm57.4-5.6c4.3-3 8.3-3.6 10.5-2 1.3 1 2.5.3 1.4-1.2-4.4-6.2-9.6-6.5-13.5-3-1.2 1-2 2-2.8 3 1.3 1.6 4.3 3.2 4.4 3zM369 664.4c.2-.2-1-5.4-2.6-7-1.4 1-3 2-4.3 3.5-4.2 4.5-4 11 2.5 16.7 1.6 1.5 2.4 0 1.7-1.7-1-2.7.3-6.3 3-11.5zM352.6 651c-4 1.6-5.4 3.7-5.2 6.4 0 1.5-1 2-1.5.3-4.8-11.2.2-13.3 7.5-13 .4 2-.7 6.2-.8 6.2z"/>
+      <path fill="#21231e" d="M384 621.3l1 .6h-.2v1.8h.2v.4h.2v.2h.2l.2.3.3.2v.2h.4l.2.3h.2l-.6 1h-.2l-.3-.2h-.2l-.2-.2-.2-.2-.3-.3-.3-.3v-.2h-.2v-.3l-.2-.2v-.2h-.2v-.2l-.2-.2V622l.2-.3v-.2zm6.5.8l-.8 1-.2-.2-.3-.2-.2-.2-.2-.2h-.3l-.2-.3-.2-.3-.3-.2-.2-.2-.3-.2h-.7l-.2-.2h-.7v.2h-.2l-.2.2v.2h-.2v.3l-.2.2-1-.7v-.3l.2-.2.2-.2.2-.2.3-.3h.3l.2-.2h.4v-.2h.8l.2.2h.4l.2.2h.2l.2.2h.2l.2.3h.2l.2.3h.2l.3.3.2.3.2.2.3.2.2.2h.3z"/>
+      <path fill="#21231e" d="M387.3 617.6l1 .6v.4h-.2v.8l.2.2v.2l.2.2v.2l.2.2.2.3.3.2h.2l.2.2h.2l.2.2.2.2h.2l-.6 1h-.2l-.3-.2-.3-.3h-.2l-.2-.2-.2-.2-.2-.3v-.2h-.2l-.2-.2v-.2h-.2v-.5h-.2V618h.2v-.3zm6.5.8l-.7 1-.2-.3h-.2l-.2-.3-.3-.2-.3-.3h-.2l-.2-.3-.2-.2-.3-.2-.3-.2h-.3v-.2h-.8l-.2.2-.2.2-.2.2v.2l-.3.2-1-.6.2-.3v-.2h.3v-.3h.3l.3-.3h.2l.2-.2h.2v-.2h1.4l.2.2h.2v.2h.3l.3.3h.2l.2.2h.2l.2.3h.2l.3.3v.2l.3.2.3.2.2.2z"/>
+      <path fill="#21231e" d="M391 612.8l1 .6-.2.2v.6h-.2v1l.2.3v.3h.2v.4h.2l.2.3v.2h.2l.2.2.2.2.3.3.3.2h.2l.2.2-.6 1-.3-.2-.2-.2-.2-.2-.3-.2-.2-.2v-.2l-.3-.2v-.2l-.3-.2v-.2l-.3-.2v-.4l-.2-.3v-.2h-.2v-.7h-.2v-1l.2-.3v-.4l.2-.3v-.2zm7 1l-.8 1-.3-.3-.3-.2-.3-.3-.3-.2v-.2l-.3-.2-.3-.2-.2-.2-.2-.2-.2-.2h-.2l-.2-.2-.3-.2h-.2l-.2-.2h-.7l-.2.2-.2.2-.3.3v.2h-.2v.4l-1-.6v-.3l.2-.2.2-.3v-.2l.3-.2.2-.2v-.2h.3l.2-.2h.3l.2-.2h1.2l.2.2h.2l.2.2.3.2h.3l.2.3.2.2h.3l.2.3.3.2.2.2.3.2.2.2.3.2.2.3.3.2z"/>
+      <path fill="#21231e" d="M394.8 607.7l1 .5v.5l-.2.3v1.7l.2.2v.3l.2.2v.2l.2.2.3.3v.2l.3.2.2.2h.2l.2.3.2.2.3.2v.2l-.6.8-.3-.2v-.2l-.4-.2-.2-.3-.3-.3v-.2l-.3-.3-.2-.2v-.2l-.3-.3v-.2l-.3-.2-.2-.2v-.2l-.2-.2v-.3l-.2-.3v-2.1l.2-.2v-.2l.2-.3zm7.6 1.3l-1 .8-.2-.3-.3-.3-.3-.2-.3-.3-.3-.3v-.2l-.4-.2-.2-.2-.2-.2-.2-.2-.2-.2h-.2l-.2-.2h-.2l-.2-.2h-.3v-.2h-.7v.2l-.3.2-.2.3-.2.2v.2l-.3.2v.2l-1.2-.5.2-.3.2-.3v-.2l.3-.3.2-.2.2-.2.3-.2.3-.2h.5l.3-.2h.8l.3.2h.2l.3.2h.2l.2.3.3.3.2.2.3.2.2.2h.3l.2.3.3.3.2.2.3.3.3.4.3.3.4.3z"/>
+      <path fill="#21231e" d="M399 602.6l1.2.6v.2l-.2.2-.2.3v2.1l.2.2v.2l.2.2.2.2v.2l.2.2.2.2.2.2v.2l.3.2.2.2.2.2.3.2.2.2.3.2-.8 1-.3-.3-.2-.3-.3-.2-.3-.3-.2-.2-.3-.2-.2-.3v-.2l-.3-.2-.2-.2v-.2l-.3-.2v-.3h-.2v-.4l-.2-.2v-.2l-.2-.3v-2.6l.2-.2v-.2l.2-.2v-.2zm7.7 1.4l-1 .8-.2-.3-.3-.3-.2-.3-.3-.3-.3-.3-.2-.2-.2-.3-.3-.3-.2-.2h-.2l-.2-.3-.2-.2h-.2v-.2h-1.3l-.3.2v.2h-.2v.3l-.3.2-.2.3v.2l-1.2-.6.3-.3.2-.3.2-.2.2-.3v-.2l.4-.2h.2l.2-.2h.2l.2-.2h1.7l.2.2.2.2h.2l.2.3h.3l.3.3.2.3h.3l.2.3.3.3.2.2.3.3.3.4.4.3.3.3z"/>
+      <path fill="#fff" stroke="#21231e" d="M462.6 580.6l-9.5-5.4c-4 3-6.8 13.5 0 22.2 8.5 11 12 18.7 14 27.5 6.2-8 8.3-16.3 4.4-24.5-5.3-11-8.7-17-8.8-20z"/>
+      <path fill="#fff" stroke="#21231e" d="M470.4 573l-9.5-5.4c-4 3-12.5 13.2-5.6 22 8.5 10.8 17.3 19 19.4 27.7 6.2-8 8.8-16.2 5-24.4-5.4-11-9.4-17.2-9.4-20z"/>
+      <path fill="#fff" stroke="#21231e" d="M449.4 569.2l-9.5-5.4c-4 3-7 13.5-.2 22.2a65 65 0 0114 27.5c6.2-8 8.4-16.3 4.4-24.4-5.3-11-8.7-17-8.8-19.8z"/>
+      <path fill="#fff" d="M405.5 469c.2 8.7-1.4 66.5-1.8 74.7-.5 8.2-4 13.7-8 17-3.5-5-5.6-11.5-6-19.3-.4-4 .4-58.7.7-70 6.4-17 11.2-17.8 15-2.4z"/>
+      <path fill="#21231e" d="M404 543.8h-1l.2-1v-2.6l.2-1.7v-4l.2-2.3v-5l.2-2.7v-2.8l.2-3v-3l.2-3v-6.2l.2-3v-6.2l.2-3v-5.8l.2-2.7v-7.4l.2-2V469h1v11.7l-.2 2.5v8.3l-.2 2.8v6l-.2 3.2v3l-.2 3.2v6l-.2 3v3l-.2 2.8v5.3l-.2 2.5v2.3l-.2 2v3.6l-.2 1.5v2zm-8.7 17l.8-.5h-.6l.3-.4.4-.4.4-.3.4-.3.3-.4.5-.4.3-.3.3-.5.4-.4.4-.4.3-.4.4-.5.3-.4.2-.5.2-.5.3-.5.3-.5.2-.6.2-.5.3-.6.2-.5.2-.5v-.7l.3-.6v-.6l.3-.7v-.7l.2-.7v-.7l.2-.8v-1.5h1v2.3l-.2.7v.8l-.3.6v.8l-.3.7-.2.6-.2.8-.2.6-.2.6-.2.6-.3.6-.4.5-.2.6-.3.5-.2.5-.3.5-.3.5-.3.5-.4.4-.4.5-.3.4-.5.5-.3.4-.4.3-.3.4-.4.3-.2.4-.4.3-.4.3h-.7zm.7.2l-.4.3-.3-.4h.7zm-7-19.5h1v.6l.2.8v1.4l.2.7v.6l.2.7v.6l.3.6v1.5l.3.5v.7l.3.6.2.6.2.6.2.6.2.5.2.7.2.6.2.5.3.6.2.5.3.4.2.6.3.5.3.5.3.5.2.4.3.4.3.5.3.3-.7.6-.3-.6-.4-.4-.3-.5-.3-.5-.3-.5-.3-.6-.2-.6-.3-.5-.4-.7-.2-.5-.3-.6v-.6l-.3-.5-.3-.5-.2-.6-.2-.7-.2-.6v-.7l-.3-.6-.2-.6v-.7l-.3-.5v-.7l-.2-.7-.2-.6v-.6l-.2-.7v-1l-.2-.8v-1.5zm1-70.2l.8.3v8l-.2 2.3V492l-.2 2.7v11.6l-.2 3v19l-.2 2.2v11h-1v-20.9l.2-2.7v-14.6l.2-2.8V489l.2-2.6v-8.9l.2-2v-4.2zm0 0zm16-2.3h-1l-.4-1.3-.3-1.3-.4-1-.5-1.2-.4-1-.2-1-.4-.7-.4-.8-.4-.6-.4-.4-.4-.4-.4-.3-.3-.3h-.3l-.4-.2h-.7l-.4.3-.4.3-.5.5-.5.4-.5.5-.5.7-.5.7-.5.8-.5 1-.6 1-.5 1.2-.6 1.3-.6 1.3-.6 1.5-.6 1.6-1-.3.7-1.6.6-1.5.7-1.3.6-1.4.5-1.2.6-1 .5-1 .5-1 .5-.8.6-.7.5-.7.6-.6.6-.4.5-.4.6-.3.5-.2h1.1l.5.3.5.3.5.5.5.5.4.6.4.6.5.8.4.8.4 1 .5 1 .3 1 .4 1.4.4 1.3.4 1.4zm0 0z"/>
+      <path fill="#fff" d="M368 454.8l-2.6 79.6c-.8 7 8.4 49 13.5 57.4 12.3-5.3 15-33.8 12.6-61.6-2.4-27.8.4-51.8 2.3-56.8 0-6.3-1-12.8-1-19.3-8 .5-17.2.4-25 .8z"/>
+      <path fill="#21231e" d="M365 534.4l2.4-79.6h1l-2.5 79.6h-1zm1 0zm12.7 57l.3.8-.6-.2-.5-1-.6-1-.5-1.2-.7-1.4-.5-1.6-.6-1.6-.6-1.8-.6-2-.5-2-.6-2-.7-2.2-.6-2.2-.6-2.3-.4-2.3-.6-2.3-.5-2.3-.6-2.3-.6-2.3-.4-2.2-.5-2.2-.4-2.2-.3-2-.4-2.2-.3-2-.3-1.8-.3-1.7-.2-1.6v-1.4l-.3-1.3v-2.8h1v4.1l.2 1.5.2 1.6.3 1.7.3 1.8.3 2 .4 2 .4 2.2.5 2.2.4 2.2.4 2.3.5 2.2.4 2.3.6 2.3.5 2.4.6 2.3.7 2.2.5 2.2.6 2 .6 2.2.6 2 .6 2 .5 1.7.7 1.5.6 1.5.5 1.4.5 1.2.5 1 .5 1-.6-.3zm.3.8l-.4.2-.2-.4.6.2zm12-62h1l.3 2.5v2.7l.3 2.6v2.6l.2 2.6v12.5l-.3 2.4-.2 2.5-.2 2.3v2.3l-.4 2.3-.4 2.2-.3 2-.6 2-.4 2-.6 2-.5 1.7-.8 1.7-.6 1.5-.7 1.5-1 1.5-.7 1.3-1 1.2-1 1-1 1-1 1-1 .6-1.3.6-.3-1 1-.4 1-.7 1-.7 1-1 1-1 .7-1 .8-1.3.8-1.4.7-1.5.6-1.5.6-1.6.5-2 .5-1.7.5-2 .4-2 .3-2 .3-2 .3-2.3v-2.3l.4-2.3V558l.3-2.3V538l-.2-2.6-.2-2.6-.2-2.6zm2.4-56.8h1v.2l-.2.5-.2.7-.2.7-.2 1-.2.8-.2 1-.2 1.2v1.2l-.3 1.3-.2 1.3-.2 1.4v1.6l-.3 1.6v1.7l-.3 1.7v2l-.2 1.8v2l-.2 2V520l.2 2.5.2 2.5.2 2.6v2.5l-1 .2v-2.6l-.3-2.5-.2-2.5V520l-.2-2.5v-20.1l.2-2v-2l.3-2v-1.7l.2-1.7.2-1.8.2-1.6v-1.4l.3-1.5.2-1.3v-1.2l.3-1V477l.3-1 .2-.8.2-.7.2-.7.2-.5zm1 0v.2-.2zm-1.5-18.8v-1l.4.4v3.7l.2.6v2.5l.2.6v1.8l.2.6v2.4l.2.6v3.6l.2.6v2.4h-1V468l-.2-.5V465l-.2-.5v-1.9l-.2-.6v-1.7l-.2-.6v-3l-.2-.6V454l.5.6zm0-1h.4v.4l-.5-.4zm-24.6 1.2h-1l.4-.5h3.9l.8-.2h12.8l.8-.2h4.7l.8-.2h1.7v1h-4.1l-.7.2h-8l-.8.2h-7.1l-.8.2h-3.9l.4-.4zm-1 0v-.4h.4l-.4.4zm.5 0h.4-.5zm-.6 0v-.4h.4l-.4.4z"/>
+      <path fill="#fff" d="M353 468l1.8 79.5c-.4 7 11 48.5 16.4 56.5 12.6-9.8 10-49.8 8.2-62-4-24-3.2-52-2-56.5 0-6.3-.2-13.8-.6-20.4-8 1-15.8 2-23.7 2.8z"/>
+      <path fill="#21231e" d="M354.3 547.5l-1.7-79.6 1-.2 1.7 79.6h-1zm1 0zm15.6 56l.5 1-.7-.2-.5-1-.6-1-.6-1.2-.5-1.2-.7-1.6-.6-1.6-.7-1.8-.7-1.8-.7-2-.5-2-.7-2.2-.7-2.2-.6-2.2-.7-2.3-.7-2.2-.7-2.3-.6-2.3-.6-2.3-.5-2.3-.6-2.2-.6-2.2-.5-2-.6-2-.4-2-.4-2-.4-1.6-.3-1.6-.3-1.3-.2-1.3v-1.2l-.2-1v-.8h1v1.8l.2 1 .2 1.3.2 1.5.2 1.5.3 1.7.4 2 .4 1.8.4 2 .5 2 .6 2.2.4 2.2.6 2.3.7 2.3.6 2.3.7 2.2.6 2.3.7 2.3.7 2.3.7 2.2.7 2 .7 2.2.8 2 .7 1.8.6 1.7.8 1.7.6 1.4.6 1.3.6 1.2.5 1 .6.7h-.7zm.5 1l-.4.2-.2-.4h.7zM379 542l1-.2v1.2l.2 1.4.2 1.5.2 1.8.2 1.7v2l.3 2 .2 2v2l.2 2.3v12l-.2 2.4v2.3l-.3 2.4-.4 2.4-.3 2.4-.3 2.2-.4 2.2-.5 2.2-.4 2-.6 2-.7 2-.8 1.6-.8 1.7-1 1.5-1 1.3-1 1.4-1.2 1-.6-.8 1-1 1-1 1-1.4.8-1.4.8-1.6.8-1.7.6-1.8.6-2 .5-2 .6-2 .4-2.2.4-2.3.3-2.3.2-2.4v-2.3l.3-2.4V569l.2-2.2V560l-.2-2.3v-2.2l-.2-2v-2l-.2-2-.2-1.6-.2-1.8-.2-1.5v-1.3l-.3-1.2zm-2-56.7h1v.6l-.2.7-.2.7v1l-.2.8v2.4l-.2 1.3v2.8l-.2 1.6v15.2l.2 2v2.3l.3 2v2.4l.3 2.3v2.2l.3 2.2.4 2.3.2 2.4.3 2.2.2 2.3.3 2.2.4 2.3-1 .2-.5-2.3-.3-2.4-.3-2.3-.4-2.3-.2-2.4-.2-2.3-.2-2.3-.2-2.3-.2-2.2v-2.3l-.3-2.2V512l-.2-2v-16l.2-1.4v-1.3l.2-1.2v-2l.3-1v-.8l.2-.6v-.7.2zm1 0zm-1.2-20v-1l.5.6v3.4l.2.7v3.8l.2.6v6l.2.6v5.3h-1V480l-.2-.7v-5.7l-.2-.6v-4.5l-.2-.7v-2.4l.4.4zm0-1h.4v.6l-.5-.4zm-23.7 4v-1l.8-.2h.8l.7-.2h2.2l.7-.2h.8l.7-.2h.8l.7-.2h1.4l.7-.2h.8l.7-.2h.6l.8-.2h1.7l.6-.2h.7l.8-.2h.8l.7-.2h1.5l.8-.2h.7l.7-.2h.8l.7-.2v1h-.6l-.6.2h-.8l-.7.2h-1.6l-.7.2h-.8l-.8.2h-.8l-.7.2h-1.5l-.7.2h-.8l-.7.2h-.7l-.8.2H362l-.7.2h-.7l-.8.2h-.7l-.6.2H357l-1 .2h-.6l-.7.2h-.8l-.8.2zm.2 0zm0-1v1l-.6-.6.5-.6zm-.6.4v-.6h.5l-.4.5z"/>
+      <path fill="#fff" d="M342.2 486.7l21-.5c-2 8.6-.5 35.6 3.2 56.2 3.3 19.3 8 69.3-12 81.3-12.5-26.4-3-52-9.2-75-5-24.3-6-44.6-3-62z"/>
+      <path fill="#21231e" d="M363 486.7l-20.8.5v-1l21-.5.4.6-.5.4zm0-1h.7v.6l-.6-.6zm3.8 56.6l-1 .2-.3-2-.3-2-.3-2-.4-2-.3-2-.2-2-.2-2.2-.2-2-.2-2.2-.2-2-.2-2-.2-2-.2-2.2v-2l-.3-2v-2l-.2-2V499l-.2-1.7v-4.5l.2-1.4v-1.2l.2-1.2v-1l.3-1v-1l1 .3v.8l-.2 1v1l-.2 1.3v5.4l-.2 1.6v4.9l.2 1.8v4l.2 1.8v2l.3 2v2l.3 2 .2 2v2l.3 2.2.3 2 .2 2.2.3 2 .3 2 .3 2 .3 2.2.2 2 .3 2 .3 2zM354 624l.8-.6-.7-.2 2-1.2 1.5-1.4 1.5-1.6 1.4-1.8 1.3-2 1-2 1-2.3 1-2.6 1-2.5.6-2.8.6-2.7.4-2.8.4-3 .4-3 .3-3 .2-3v-3l.2-3v-6.2l-.2-3-.2-3v-3l-.4-3-.2-2.7-.3-2.7-.2-2.5-.4-2.5-.2-2.4-.3-2.2-.3-2-.3-2h.8l.4 1.8.3 2 .3 2.3.3 2.3.4 2.5.3 2.7.3 2.7.2 2.8.2 3 .2 2.8.2 3v15.5l-.3 3-.3 3.2-.4 3-.4 2.8-.5 3-.8 2.7-.7 2.7-.8 2.6-1 2.4-1 2.4-1.2 2.2-1.3 2-1.4 2-1.6 1.5-1.7 1.5-1.8 1.3h-.7zm.7 0l-.5.4-.3-.5h.7zm-10-75.2l1-.2.5 2.2.4 2.2.4 2.2.3 2.2.3 2.2.2 2.3v2l.2 2.4v25.4l.2 2.4v2.4l.3 2.4.3 2.4.3 2.4.5 2.4.4 2.4.5 2.4.7 2.5.7 2.4.8 2.5 1 2.5 1 2.4-.8.5-1.2-2.6-1-2.5-.8-2.6-.8-2.5-.7-2.5-.5-2.5-.5-2.4-.4-2.5-.2-2.3-.3-2.5-.2-2.4V594l-.2-2.4V564l-.2-2.3-.2-2.3-.2-2.2-.4-2.2-.3-2-.5-2.3-.5-2v-.2zm0 0zm-2.5-62.6v1l.5-.4-.3 1.6-.2 1.7-.2 1.7-.2 1.7-.2 1.7v1.8l-.3 1.8v3.5l-.2 2v7.3l.2 2v1.8l.2 2v2l.2 2 .2 2 .2 2 .2 2 .3 2 .2 2 .3 2.3.3 2 .3 2.2.4 2.2.4 2.2.4 2 .4 2.4.4 2.2-1 .2-.4-2.2-.4-2.3-.4-2.2-.4-2-.3-2.3-.4-2.2-.3-2-.3-2.2-.2-2-.3-2.2-.2-2-.2-2-.2-2v-2l-.2-2v-2l-.2-1.8v-13l.2-1.8v-1.8l.2-1.7.2-1.7.2-1.7.2-1.7.2-1.7.3-1.7.5-.4zm-.5.4v-.4h.5l-.5.4zm.5 0v-.4.5zm-.5 0v-.4h.5l-.5.4z"/>
+      <path fill="#fff" d="M422 454.4c0 8.7-3.2 66.5-4 74.6-.7 8-4.5 13.6-8.4 16.6-3.4-5-5.3-11.5-5.5-19.3 0-4 2.3-58.7 3-70 7-17 11.8-17.4 15-2z"/>
+      <path fill="#21231e" d="M418.5 529h-1v-1l.2-1v-1.5l.2-1.7v-2l.2-2v-2.3l.3-2.4v-2.5l.3-2.7.2-2.8v-3l.3-3 .2-3 .2-3v-3l.3-3.2.2-3 .2-3.2v-3l.3-3V474l.3-3v-2.5l.2-2.4V464l.2-2v-2l.2-1.8v-3.7h1v5.6l-.2 2v2l-.2 2.3v2.6l-.3 2.6-.2 2.7v2.8l-.3 3-.2 3v3l-.3 3-.2 3v3.2l-.3 3-.2 3.2-.2 3v3l-.2 2.7-.2 2.6v2.6l-.3 2.4v2.3l-.3 2v2l-.2 1.5v1.5l-.2 1.2v1zm-9.3 17l.8-.6-.7-.2.4-.2.3-.3.4-.4.3-.3.4-.3.4-.4.4-.3.3-.4.4-.4.4-.4.3-.5.4-.4.3-.6.3-.4.3-.5.3-.5.3-.5v-.5l.4-.6.2-.5.3-.7v-.6l.3-.6.2-.5.2-.7.2-.6V532l.3-.8v-.8l.2-.7v-.7h1v1.6l-.2.7-.2.7v.7l-.2.7-.2.7-.2.8-.2.6-.2.6-.2.6-.3.6-.2.6-.3.6-.3.5-.2.5-.3.5-.3.5-.5.5-.3.5-.3.4-.4.4-.4.4-.3.4-.5.4-.4.4-.2.4-.4.3-.4.4-.3.4-.4.3-.4.3h-.8zm.7 0l-.5.4-.3-.5h.7zm-6.4-19.7h1v2.8l.2.8v.7l.2.7v1.2l.3.6v.8l.2.6.2.7v.7l.3.6v.6l.3.5.2.6.2.6.2.6v.6l.3.5.3.6.2.4.2.5.3.5.3.5.2.5.3.4.4.4.3.5.3.4-.8.5-.3-.6-.4-.4-.3-.5-.3-.6-.3-.6-.3-.5-.3-.6v-.6l-.4-.5-.2-.6-.2-.6-.2-.4-.2-.6-.2-.6-.2-.6-.2-.6-.2-.7-.2-.6v-.7l-.3-.7v-.6l-.2-.7v-.6l-.2-.7v-1.4l-.2-.7v-1.5l-.2-.7v-1.5zm3-70l.8.3v-.2 2.6l-.2 1.6v2l-.2 2v2l-.2 2.4v2.5l-.2 2.6v2.8l-.3 2.8v2.8l-.2 3v2.8l-.2 3v3l-.2 2.8v3l-.3 2.7v2.7l-.2 2.7v7.3l-.2 2v3.8l-.2 1.6v3.3h-1v-6.8l.2-2V513l.2-2.4V508l.2-2.6.2-2.8v-2.8l.2-3V494l.2-3 .2-2.8v-3l.2-2.8v-3l.3-2.7V474l.2-2.5V469l.2-2.4v-4.2l.2-1.8V459l.2-1.5v-1.2zm-.2 0zm16.2-2h-1v.2l-.3-1.4-.3-1.2-.3-1.2-.4-1-.3-1-.4-1-.3-1-.4-.6-.5-.6-.4-.5-.2-.5-.4-.4h-.4l-.3-.2h-1.1l-.4.2-.5.2-.4.4-.5.5-.5.6-.6.7-.5.7-.5 1-.6.8-.5 1-.6 1.2-.7 1.2-.6 1.4-.6 1.4-.6 1.6-1-.4.7-1.6.8-1.4.6-1.4.6-1.2.6-1.2.6-1 .6-1 .6-1 .6-.7.5-.7.6-.6.6-.6.6-.4.5-.3h.6l.5-.3h1.2l.5.3.5.4.5.4.4.5.4.6.4.5.4.8.3 1 .4.8.3 1.2.3 1 .4 1.3.3 1.4.3 1.3zm0 0zm-.5 0h.6-.5zm.6 0z"/>
+      <path fill="#fff" d="M385 407.2c-.6 18.7-1 59-.8 62.6a51 51 0 006.7 22.6c4-3 7.7-8.5 8.4-16.6.6-6.7.8-39.5 1-56-4.3-2.6-8.7-6-12.2-9.7l-3.2-2.8z"/>
+      <path fill="#21231e" d="M384.7 469.8h-1v-23.4l.2-2.4v-19.6l.2-2.4v-9l.2-2v-3.8h1v7.8l-.2 2.4v9.4l-.2 2.5v12.5l-.2 2.4v25.4zm6 22.2l.5.8h-.7l-.3-.6-.3-.5-.4-.6-.4-.4-.3-.6-.4-.6-.3-.7-.3-.6-.2-.6-.3-.7-.3-.7-.3-.7-.3-.7-.3-.8-.2-.7-.3-.7-.3-.8-.2-.8-.2-.7-.2-.8v-.8l-.3-.8v-.8l-.3-.8v-.8l-.2-.8v-.8l-.2-.8v-.7l-.2-.7v-1.5h1v2.5l.2.8v.8l.3.7v.8l.2.8.2.8.2.8v.7l.2.7.3.8.2.7.2.8v.8l.4.7.2.7.3.7v.7l.4.6.3.7.3.7.2.6.3.6.3.5.3.6.4.6.3.6.3.5.3.4h-.7zm.5.8l-.4.3-.3-.3h.7zm7.7-17h1l-.2.8v.8l-.2.7v.8l-.3.7-.2.7v.7l-.2.5-.2.7-.2.6-.3.6v.6l-.4.6-.2.6-.3.5-.2.5-.3.6-.3.5-.3.5-.4.4-.4.5-.3.4-.5.6-.3.4-.4.4-.3.4-.4.4-.3.3-.3.4-.4.2-.4.3-.4.3-.6-.8.4-.3.3-.3.4-.3.4-.2.4-.4.4-.3.3-.3.4-.4.4-.4.3-.5.4-.4.3-.3.3-.5.3-.5.3-.4.3-.5.2-.6.3-.5.2-.5.3-.6.2-.6.2-.5.2-.6.2-.8.2-.6.2-.6v-.7l.3-.7v-.7l.2-.8v-.7l.2-.8zm1-55.5l.6-.8.2.4v18.8l-.2 2.2v14.6l-.2 2v8.9l-.2 1.5v4.3l-.2 1v2.6h-1V471l.2-1.5v-6.3l.2-1.8v-12l.2-2v-20.8l.2-1.7v-5.1l.2.3zm.6-.8h.2v.4l-.2-.5zm-12.4-9.8v1l.4-1 .3.4.2.5.4.3.3.3.3.5.3.3.4.3.3.4.4.4.3.3.4.4.4.3.4.3.3.3.4.3.3.4.4.3.4.3.5.3.3.2.4.2.4.3.4.3.4.3.4.3.4.3h.4l.4.4.4.3.4.2.4.2.4.3-.6.8-.4-.3-.4-.2-.4-.3-.4-.3-.4-.2-.4-.3-.4-.3-.4-.3-.4-.2-.4-.3-.4-.3-.4-.3-.4-.4-.3-.3-.4-.3-.3-.3-.4-.3-.4-.3-.5-.2-.4-.3-.2-.3-.4-.4-.4-.3-.3-.3-.4-.3-.4-.5-.4-.3-.4-.3-.3-.5-.5-.3-.3-.4-.3-.3.2-.8zm-.3.8l-1-.8h1.2l-.3.8zm-2.5-3.3h-1l1-.3.2.2.2.2v.2h.3v.3h.4v.2l.3.2.3.2v.2h.3v.2h.2v.2h.3l.2.2v.2h.2v.2l-.2.8v-1l-.3 1h-.2v-.2h-.2v-.2h-.2v-.2h-.2l-.2-.2v-.2h-.2l-.2-.2-.3-.3h-.3v-.3h-.3v-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2h-.2l1-.4zm-1 0v-1.4l1 1-1 .4z"/>
+      <path fill="#fff" d="M400 419.3c-.4 20-.2 51.7 0 54.3a34 34 0 005.4 19.3c4-3.2 8-8.8 8.8-17 .5-5 2-26.4 2-42.8-5.3-1.7-12-10.4-16.3-14z"/>
+      <path fill="#21231e" d="M400.4 473.5h-1v-12.9l-.2-1.7v-33.7l.2-2v-4h1v14.5l-.2 2v37.1l.2.5v.3zm4.7 19l.7.8h-.7l-.3-.6-.3-.5-.3-.5-.2-.5-.3-.5-.3-.5-.2-.6-.3-.5-.2-.5-.3-.5-.2-.6-.2-.6-.2-.6-.2-.6-.2-.6-.2-.6-.2-.6v-.6l-.3-.7v-.6l-.3-.8v-.6l-.2-.7v-.8l-.2-.6v-.7l-.2-.8v-1.5l-.2-.7v-1.4h1v2.8l.2.7v.7l.2.7v.7l.2.7v.7l.2.6v.7l.3.6v.6l.3.5v.6l.3.7.3.6.2.6.2.5.2.5v.6l.4.5.2.7.3.5v.5l.4.5.2.5.3.5.2.5.3.5.3.4h-.7zm.7.8l-.4.3-.3-.4h.7zm8-17.3h1v1.7l-.3.7v.7l-.3.8v.7l-.2.7-.2.7-.2.5-.3.7v.6l-.4.6-.2.6-.3.5-.2.6-.3.6-.4.6-.2.5-.3.5-.4.5-.2.4-.4.6-.3.4-.3.5-.3.4-.4.3-.4.3-.4.4-.3.3-.5.4-.4.3-.3.3-.6-.8.5-.3.3-.3.4-.4.4-.3.3-.4.3-.4.3-.4.4-.4.3-.4.4-.4.3-.5.3-.4.4-.4.3-.5.3-.3.3-.6.3-.4.2-.5.3-.5.2-.5.3-.6.2-.6.2-.6.2-.6.2-.7.2-.7.2-.7v-.7l.3-.8v-.7l.2-.7v-.8zm2.4-42.3l.4-1 .3.5v7.9l-.2 1.6v5.1l-.2 1.6v1.7l-.2 1.7v4.6l-.2 1.6v2.9l-.2 1.3v1.4l-.2 1.3v2.5l-.2 1v2.2l-.2 1v1.6l-.2.7v1.1h-1v-2l.2-.8v-1.8l.2-1v-2.2l.2-1.2v-2.7l.2-1.3v-1.5l.2-1.4V457l.2-1.6v-1.6l.2-1.6V449l.2-1.6V443l.2-1.6V433l.5.5zm.4-1h.3v.5l-.3-.5zm-16-13.4h-1l.8-.4.5.2.4.4.5.4.5.4.5.5.4.4.4.4.5.5.4.6.5.4.4.5.5.4.5.6.5.5.5.5.5.6.6.5.5.6.7.5.5.6.5.5.6.5.5.5.5.4.6.4.4.4.5.3.4.3.5.3.4.3.5.2.4.2-.3 1-.5-.2-.5-.3-.5-.2-.6-.3-.6-.4-.6-.3-.5-.4-.6-.4-.5-.4-.6-.5-.5-.5-.5-.5-.5-.5-.6-.5-.5-.5-.7-.5-.5-.6-.5-.5-.6-.5-.5-.6-.5-.4-.5-.5-.5-.5-.5-.5-.5-.5-.5-.4-.4-.4-.5-.4-.4-.5-.6-.4-.4-.3-.4-.4.8-.3zm-1 0v-1l.8.6-.8.2z"/>
+      <path fill="#fff" d="M387 405.6L373 385c-2.8 10.2-6.3 82.8-2.2 88.8a36 36 0 006.4 19.3c4-3 9.8-8.5 8-16.7-1.6-8.2.4-62.3 2-70.7z"/>
+      <path fill="#21231e" d="M373.3 384.7l14.2 20.6-.8.5-14.3-20.5v-.4l1-.3zm-1 .2l.4-1 .5.7-.8.2zm-1.2 88.7h-1l.2.3-.5-.8-.3-1.2-.3-1.5v-1.8l-.3-2-.2-2.5v-2.6l-.2-2.8v-20.3l.2-3.7V431l.2-4 .2-3.6v-3.8l.3-3.7.2-3.7.2-3.4.3-3.5.2-3.2.3-3 .2-3 .3-2.5.3-2.4.2-2 .3-2 .3-1.3.4-1 1 .2-.3 1-.2 1.5-.3 1.8-.3 2-.2 2.4-.3 2.5-.3 2.8-.2 3-.3 3.3-.3 3.3-.2 3.4-.2 3.6-.2 3.7v3.7l-.3 3.8v3.8l-.2 3.7v3.8l-.2 3.6v19.6l.2 2.6.2 2.3.2 2v1.8l.4 1.5.3 1 .3.7v.2zm0-.2v.2-.2zm5.7 19.2l.6.8-.7-.2-.3-.4-.3-.6-.3-.5-.3-.6-.3-.5-.2-.6-.3-.6-.3-.5-.3-.6-.4-.5-.2-.6-.3-.6v-.6l-.4-.6-.2-.6-.2-.6-.3-.6-.3-.6-.2-.7v-.6l-.3-.5-.2-.7v-.7l-.3-.6v-.6l-.2-.7v-.6l-.2-.7v-1.5l-.2-.7v-.7h1v1.4l.2.7v.6l.2.6v.7l.2.6v.7l.2.6.2.6v.6l.3.6.2.7.2.6.2.7v.6l.3.6.2.5.3.6.2.6.3.6.2.5.3.6.3.5.3.5.3.6.3.4.2.5.3.4.3.4.3.5.4.5h-.7zm.6.8l-.4.3-.4-.5.7.2zm7.4-17l1-.3v.8l.2.7v3l-.2.7-.2.7v.7l-.3.7-.2.6-.2.6-.2.6-.3.6-.3.5-.4.6-.3.4-.4.5-.5.4-.3.5-.4.4-.4.4-.4.4-.5.5-.4.4-.3.5-.4.3-.4.4-.5.3-.4.3-.3.4-.4.3-.6-.8.4-.3.5-.3.4-.2.3-.4.3-.3.4-.3.4-.4.4-.3.4-.4.4-.5.4-.3.4-.4.4-.5.3-.5.5-.5.3-.5.3-.5.4-.5.3-.5.2-.6v-.6l.3-.5.2-.5.2-.7v-.6l.2-.6v-3.1l-.2-.7v-.6zM387 406v-1l.6.7-.2 1-.2 1v1.4l-.3 1.7-.2 2-.2 2v2l-.3 2.4v2.5l-.3 2.6v2.8l-.2 2.7-.2 2.8v3l-.2 2.8v3l-.2 3v8.5l-.2 2.8v13.5l.2 2v1.5l.2 1.4v1l.2 1-1 .2v-1l-.2-1v-1.5l-.2-1.7v-4l-.2-2v-15.5l.2-3V441l.2-3v-2.8l.2-3 .2-2.7v-2.8l.2-2.7.2-2.5V419l.3-2.3v-2.2l.3-2v-2l.3-1.5.3-1.4v-1.2l.3-1 .5.7zm0-1h.7v.7l-.6-.6zm0 0v1l-.3-.2.4-.7zm0 1h-.2v-.2l.3.3z"/>
+      <path fill="#fff" d="M358 451.2c-.8 11.3-1.2 19-1 23 .2 7.6 2 14.2 5.5 19.2 4-3 9-8.5 8.4-16.6-2-31.5 1.4-61 5.4-89.6-3.4-2.5-9-5-12.5-7.6-6.8 38.3-9 62-6 71.6z"/>
+      <path fill="#21231e" d="M357.4 474h-1v-7.4l.2-.7V463l.2-.7V459l.2-1v-1.8l.2-1v-3l.2-1h1v2l-.2 1v2l-.2 1v2.8l-.2.7v3.2l-.2.7v4.2l-.2.6v4.3zm4.8 19l.6.8h-.7l-.3-.6-.3-.5-.3-.5-.2-.5-.2-.5-.3-.5-.3-.6-.2-.4-.3-.6-.2-.5-.3-.6-.2-.7-.2-.6-.2-.6-.2-.5-.2-.6v-.7l-.3-.6v-.7l-.3-.6v-.7l-.2-.6-.2-.6v-.7l-.2-.7v-1.4l-.2-.7v-1.5l-.2-.7v-.7h1v2.2l.2.7v1.2l.2.7v.6l.2.6v.7l.2.5.2.7v.6l.3.6v.6l.3.6.2.6.2.6.2.6.2.6.2.5.2.6.2.6.3.6.2.5.2.5.2.5.3.5.3.5.3.5.3.5.3.4h-.8zm.6.8l-.4.3-.3-.3h.8zm7.6-17h1v3.7l-.3.7v.6l-.2.7v.7l-.4.6-.2.6-.2.6-.3.6-.3.6-.3.5-.2.6-.3.5-.4.5-.2.5-.4.4-.4.5-.4.4-.3.6-.4.4-.5.4-.4.4-.3.4-.4.3-.4.3-.5.4-.4.3-.2.3-.6-.8.3-.3.4-.3.3-.3.3-.2.4-.4.4-.3.4-.3.4-.4.3-.4.4-.5.3-.4.3-.4.4-.4.3-.5.3-.5.3-.5.2-.5.3-.5.3-.5.2-.6.3-.6.2-.5.2-.6.2-.8v-.6l.2-.6v-.7l.2-.6v-3.1zm5.7-89.2l.7-.8.2.5-.5 2.6-.4 2.6-.3 2.7-.3 2.7-.4 2.7-.3 2.7-.3 2.7-.4 2.8-.3 2.8-.3 2.7-.3 2.8-.2 2.8-.2 2.8-.3 2.7-.2 2.8v3l-.3 2.7-.2 2.8-.2 2.8v2.8l-.2 3v8.5l-.2 3v8.6l.2 3v3l.2 2.8.2 3h-1l-.2-3v-3l-.2-2.8v-5.8l-.2-3V451l.2-2.8v-3l.2-2.7v-2.7l.3-3 .2-2.7.2-2.8V428l.3-2.7.3-2.8.3-2.8V417l.4-2.8.3-2.7.3-2.8.4-2.7.3-2.7.4-2.7.4-2.7.4-2.8.3-2.7.5-2.7.4-2.7v.6zm.7-.8l.2.2v.3l-.3-.5zm-12.3-7l-1-.3.8-.3.3.2.4.2.2.3h.3l.4.3.3.3.4.2.4.2.5.3.4.2.3.2.4.3.4.2.5.3.5.2.4.2.4.2.4.2.5.3.4.2.5.2.4.2.3.2.4.3h.4l.5.4.4.2.3.2.3.3.4.3.3.3.4.2-.6.8-.2-.2-.4-.3h-.3l-.3-.3-.3-.3-.4-.2-.4-.2-.4-.3-.4-.2-.4-.2-.4-.3-.4-.2-.4-.3-.5-.2-.4-.2-.4-.2-.5-.2-.5-.3-.4-.2-.4-.2-.4-.2-.4-.2-.4-.3h-.4l-.4-.4-.4-.2-.4-.2-.4-.3-.4-.3-.3-.3-.4-.2-.4-.2.8-.3zm-1-.3l.2-.8.6.5-.8.3zm-6 71.4l.8.6-.8-.2-.3-1v-1l-.3-1-.2-1.3v-1l-.2-1.4V443l-.2-1.6v-5l.2-1.8v-2l.2-2 .2-2 .2-2.3.2-2.3.2-2.5.3-2.4.3-2.5.3-2.6.4-2.8.4-2.8.4-3 .4-2.8.5-3 .6-3.2.5-3.2.6-3.3.6-3.5.6-3.5.6-3.5 1 .2-.6 3.5-.6 3.5-.6 3.4-.5 3.3-.4 3.3-.5 3-.4 3-.4 3-.4 3-.4 2.7-.3 2.7-.3 2.7-.3 2.5-.2 2.4-.3 2.4-.3 2.3v2.2l-.3 2v2l-.2 2v9.8l.2 1.4v1.2l.3 1 .2 1.2v1l.4 1-1-.3zm.8.6l-.5.6-.3-.8.8.2zm0 0l-.7-.7 1 .3-.3.3zm-.7-.7l1-1v1.3l-1-.4z"/>
+      <path fill="#fff" d="M343.6 471.8l4 14.7c.2 7.7 5 14 8.3 19 4-3 7.5-8 6.5-16-5.8-46.5-3.8-77.3 6-115-22 15-32.3 46.6-25 97.3z"/>
+      <path fill="#21231e" d="M347 486.6l-3.8-14.7 1-.3 3.8 14.6-1 .3zm1-.3zm7.6 19l.6.7h-.7l-.3-.6-.3-.5-.4-.5-.4-.5-.3-.5-.5-.6-.3-.6-.4-.5-.3-.7-.4-.5-.2-.6-.4-.5-.3-.6-.2-.5-.4-.6-.3-.7-.2-.6-.3-.6-.3-.5-.3-.7-.3-.6-.3-.7-.2-.7-.2-.6-.2-.7-.2-.7-.2-.7v-.6l-.2-.7v-.8l-.2-.8v-.7h1v1.4l.2.7v.7l.2.7.2.6v.6l.3.7v.5l.4.7.2.6.3.6v.6l.4.7.3.6.3.6.3.4.3.6.4.6.3.6.3.5.4.6.3.5.4.5.3.6.3.4.4.5.3.4.4.5.3.4.3.5.4.3h-.8zm.6.7l-.4.3-.3-.4h.8zm5.8-16.5h1v5.5l-.2.6v.7l-.3.6v.4l-.3.6-.2.6-.3.5-.2.6-.2.5-.3.6-.3.5-.3.6-.3.4-.2.4-.3.4-.4.5-.2.3-.3.4-.4.4-.3.3-.3.4-.4.4-.4.3-.3.3-.7-.8.4-.3.4-.4.3-.3.4-.3.4-.3.3-.4.4-.3.4-.4.3-.4.3-.4.3-.4.3-.4.3-.4v-.5l.4-.3.2-.5.2-.5.2-.5.2-.5.2-.5.2-.6v-.6l.2-.5v-.6l.2-.7v-5.1zm6.8-114.7l-.6-1 .8.7-1 3.5-.8 3.5-.8 3.4-.7 3.4-.7 3.4-.7 3.3-.6 3.5-.6 3.4-.4 3.2-.5 3.3-.3 3.4-.4 3.2-.4 3.4-.4 3.3-.2 3.3-.2 3.4-.2 3.4v3.6l-.2 3.5v14.7l.3 3.7.3 4 .2 3.8.3 4 .4 3.8.3 4 .5 4.2.4 4.3.6 4.4h-1l-.6-4.2-.4-4.3-.5-4.2-.3-4-.4-4-.3-4-.2-3.8-.2-3.8v-3.7l-.2-3.7v-14.3l.2-3.4.2-3.4.2-3.4.2-3.4.3-3.3.3-3.4.4-3.3.4-3.3.6-3.4.5-3.3.7-3.4.6-3.3.7-3.4.7-3.4.8-3.5.8-3.4.8-3.5 1-3.6.8.6zm-.6-1l1-.6-.2 1.3-.8-.6zm-24 98h-1l-.7-4.6-.5-4.6-.5-4.5-.3-4.3-.3-4.2-.2-4.2v-8l.2-3.8.2-3.7.3-3.7.4-3.4.5-3.4.6-3.3.8-3.3.7-3 1-3 1-3 1-2.8 1-2.8 1.2-2.5 1.3-2.5 1.4-2.4 1.5-2.3 1.4-2 1.6-2.2 1.7-2 1.7-2 2-1.6 1.8-1.7 2-1.6 2-1.5.6.8-2 1.4-2 1.6-1.8 1.6-1.8 1.7-1.8 2-1.6 2-1.6 2-1.5 2-1.4 2.3-1.4 2.4-1.4 2.4-1.2 2.6-1 2.7-1 2.7-1 3-1 3-.7 3-.7 3-.6 3.4-.5 3.3-.5 3.5-.3 3.6-.3 3.7-.2 3.8v12l.4 4.4.3 4.3.5 4.5.5 4.6.6 4.7zm-1 0zm.4 0h.5-.4zm-.4 0z"/>
+      <path fill="#fff" d="M344.8 486.2l-20.3-6.7c-2.5 20.2 1.4 45.6 7 79 4.6 29 2 51.6-1.5 66.2 21.6-3 30.7-30.7 20-83-3-13.7-5.8-31.3-5.2-55.5z"/>
+      <path fill="#21231e" d="M324.7 479l20.2 6.7-.4 1-20.2-6.7-.3-.6.7-.4zm-.6.4v-.6l.7.2-.6.4zm8 79l-1 .3-.6-3-.5-3.2-.6-3-.5-3-.5-3-.5-2.8-.4-3-.4-2.7-.4-2.7-.4-2.7-.4-2.7-.3-2.7-.4-2.6-.3-2.6-.3-2.4-.2-2.5-.3-2.3-.2-2.4-.2-2.4v-2.4l-.3-2.3V500l-.2-2v-10.7l.2-2 .2-2v-2l.4-2 1 .3-.2 2-.2 1.8v2l-.2 2v4l-.2 2v4.3l.2 2.3v2.3l.2 2.3.2 2.3.2 2.2.2 2.4.3 2.4.2 2.5.3 2.5.3 2.5.3 2.6.4 2.8.4 2.6.3 2.7.4 3 .6 2.7.4 2.8.4 3 .5 3 .4 2.8.5 3 .4 3 .5 3.2zm-2 65.8v1l-.5-.6.4-1.4.2-1.4.3-1.5.3-1.5.3-1.6.4-1.6.3-1.7.2-1.8.2-1.7.2-1.8.2-2 .2-1.8v-2l.3-2 .2-2v-2l.2-2v-13.4l-.2-2.3-.2-2.4-.2-2.4-.2-2.5-.3-2.5-.3-2.6-.3-2.6-.4-2.6-.4-2.7 1-.2.3 2.7.4 2.7.3 2.5.3 2.6.3 2.6.2 2.5.2 2.6v2.4l.3 2.4v6.8l.2 2.3v4.3l-.2 2v2l-.2 2v2l-.2 2-.2 2-.2 1.8-.3 1.8v1.8l-.4 1.7-.2 1.8-.3 1.6-.2 1.6-.3 1.5-.3 1.5-.4 1.5-.3 1.4-.5-.8zm0 1h-.6v-.6l.7.6zm19.4-83.5l1-.2 1 5 .8 4.6.7 4.6.5 4.5.5 4.3.4 4 .3 4 .2 4v7.2l-.2 3.4-.2 3.2-.4 3-.4 3-.6 3-.6 2.6-.7 2.6-1 2.4-1 2.3-1 2.2-1 2-1.2 1.8-1.3 1.7-1.4 1.5-1.4 1.4-1.5 1.3-1.5 1-1.8 1-1.8.7-2 .7-2 .5-2 .2v-1l2-.3 1.8-.6 1.8-.6 1.7-.8 1.6-1 1.5-1 1.5-1 1.4-1.5 1.3-1.5 1.3-1.6 1-1.8 1.2-2 1-2 1-2.2.7-2.3.6-2.4.7-2.7.5-3 .4-2.8.4-3 .2-3.3v-3.5l.2-3.5v-3.7l-.3-3.8-.3-4-.3-4-.4-4.3-.7-4.4-.8-4.5-.8-4.7-1-5zm-4.8-55l.3-1 .3.5V503l.2 2 .2 1.8v2l.2 1.8v1.8l.2 1.8.2 1.7.2 1.8.2 1.7.2 1.7.2 1.6.2 1.6.2 1.6.2 1.5.3 1.5.3 1.5.3 1.5.2 1.4.3 1.4.3 1.4.3 1.4.3 1.3v1.3l.4 1.2-1 .2-.2-1.3-.3-1.3-.4-1.2-.2-1.4-.3-1.4-.2-1.4-.2-1.4-.3-1.5-.2-1.5v-1.5l-.4-1.6-.2-1.5-.2-1.6-.2-1.7-.2-1.7-.2-1.7-.2-1.8-.2-1.8v-1.7l-.3-2-.2-1.7v-2l-.3-1.8v-4l-.2-2v-13l.3.5zm.3-1l.3.2v.2l-.4-.5z"/>
+      <path fill="#21231e" d="M343.6 584h1v.7h-.8v-.2h-.2v-.4zm-4.3-40l1-.4.4 1.2.2 1.2v1l.4 1.3.2 1.3.2 1.2.2 1.2.2 1.2.2 1.3.2 1.3.2 1.2.2 1.3.2 1.3.2 1.2.2 1.3v1.4l.3 1.3v2.6l.3 1.3v1.3l.2 1.2v2.6l.2 1.3v9.1h-1v-7.6l-.2-1.2v-2.7l-.2-1.3V570l-.2-1.3v-1.3l-.2-1.3v-1l-.3-1.4v-1.3l-.3-1.3-.2-1.3v-1.2l-.3-1.3-.2-1.3-.2-1.3-.2-1.3v-1.2l-.4-1.2-.2-1.2-.2-1.2-.2-1.2-.3-1.2-.2-1.2-.2-1.2zm-5.5-50.4h1.2v6.4l.2 1.5v3.3l.2 1.5v1.6l.2 1.5v1.6l.3 1.5v3.1l.3 1.5.2 1.7v1.5l.3 1.6.2 1.5.2 1.6.2 1.4.2 1.6.3 1.5v1.6l.4 1.6.2 1.6.3 1.6.2 1.5.3 1.6.3 1.5.3 1.5.4 1.6-1 .3-.5-1.7-.4-1.6-.3-1.6-.3-1.5-.3-1.5-.2-1.6-.3-1.6-.2-1.5-.3-1.6-.2-1.6-.2-1.4-.3-1.6-.2-1.5-.2-1.6v-1.7l-.3-1.5-.2-1.6v-1.5l-.2-1.6v-1.4l-.2-1.6-.2-1.6V508l-.2-1.7V503l-.2-1.4v-6.4l-.2-1.6zm1.2 0h-1.2v-.2h.2v-.2h.2v-.2h.8v.2h.2v.4z"/>
+      <path fill="#fff" d="M344 367.3l13.2 2.2-4.6 23.3c-5 24.3-8.2 53-4.5 84.2 1.5 11.7 4 21.2 7.6 28.5-14.6-1.6-24-15.8-22.7-40.6-2.6-29-1.5-52 3.2-69.4 1.4-5 5.8-24.2 7.8-28.3z"/>
+      <path fill="#21231e" d="M357 370l-13-2.3v-1l13.3 2.3.4.6-.6.4zm.3-1h.5v.6l-.5-.6zm-4.2 24l-1-.3.2-.3v-.4l.2-.5v-.6l.2-.7v-.6l.3-.7v-.8l.2-.8v-1l.3-.7.2-1 .2-1v-.8l.2-1 .2-1 .2-1 .2-1 .2-1 .2-.8v-1l.3-.7.2-1v-.7l.3-.7v-.7l.3-.6v-.6l.2-.5v-.4l.2-.3v-.3l1 .2v.6l-.2.5v.5l-.3.6v.5l-.2.7-.2.8-.2.8v1l-.3.7-.2 1v.8l-.2 1-.2 1-.2 1-.2.8-.2 1-.2 1v1l-.3 1-.2.7-.2 1v.7l-.2.7v1l-.2.5-.2.6v.7l-.2.5v.7zm-4.4 84h-1l-.3-2.8-.3-3-.3-3-.2-2.8v-2.8l-.3-3V457l-.2-3v-11l.2-2.7v-2.7l.2-2.7.2-2.8.2-2.6.2-2.6.3-2.6.2-2.6.3-2.6.3-2.5.4-2.5.4-2.5.4-2.5.3-2.4.4-2.4.3-2.4.5-2.4.4-2.3.5-2.3.4-2.3 1 .2-.4 2.2-.4 2.3-.5 2.3-.4 2.4-.4 2.4-.5 2.4-.4 2.4-.2 2.4-.4 2.5-.3 2.5-.2 2.5-.3 2.6-.3 2.5-.2 2.5-.2 2.7-.2 2.6-.2 2.6v2.6l-.2 2.7v2.7l-.2 2.7v11.5l.2 3v2.7l.3 3 .2 2.7.3 3 .3 2.8.3 3zm7 29v-1l-.4.8-.4-.7-.3-.6-.3-.8-.4-.7-.3-1-.3-.6-.3-.8-.4-.8-.3-.8-.2-.8-.2-.8-.3-1-.2-.7-.3-1-.2-.8-.3-1-.2-1-.2-.8v-1l-.3-1-.2-.8-.2-1-.2-1v-1l-.3-1-.2-1v-1l-.3-1-.2-1v-1l-.2-1.2-.2-1 1-.2v1l.3 1v1.2l.2 1v1l.3 1 .2 1 .2 1v1l.2 1 .2 1 .2 1 .2 1 .3.8.3 1 .2.8.2 1 .3.7.2 1 .3.7.2.8.3 1 .3.7.3.8.3.7v.8l.4.8.4.7.3.7.4.7.3.6.3.7-.5.7zm.4-.7l.4.8h-1l.6-.7zM332.4 465l1-.2v8.8l.2 2 .2 2 .3 2 .4 1.8.4 1.7.4 1.8.5 1.7.5 1.5.6 1.5.6 1.5.7 1.3.8 1.3.7 1.3.8 1 1 1 .8 1.2 1 1 1 .8 1 .8 1 .8 1 .7 1.2.6 1.2.4 1.2.5 1.2.3 1.2.3 1.3.3h1.4l-.2 1h-1.3l-1.4-.4-1.3-.4-1.3-.4-1.2-.5-1.2-.5-1.2-.7-1-.6-1.2-.8-1-.8-1-1-1-1-1-1-1-1.2-.7-1.2-.8-1.3-.8-1.2-.7-1.4-.7-1.5-.5-1.6-.6-1.6-.5-1.7-.4-1.6-.4-1.8-.3-2-.2-1.8-.2-2-.2-2v-8.9zm1-.2zm2.3-69.4l1 .3-.5 1.6-.4 1.7-.4 1.7-.3 1.7-.3 1.8-.3 1.8-.3 1.8-.2 2-.2 1.8-.3 2-.2 2v2l-.3 2v2l-.2 2-.2 2.3v4.3l-.2 2.2v9.6l.2 2.5v2.4l.2 2.5v2.5l.2 2.6.2 2.6.2 2.5.2 2.6.2 2.8h-1l-.2-2.6-.2-2.6-.2-2.7-.2-2.7v-2.5l-.2-2.6v-2.5l-.2-2.4v-18.5l.3-2v-2.2l.3-2v-2.2l.3-2 .3-2 .3-2 .2-1.8.3-2 .4-1.8.4-1.8.3-1.8.5-1.7.4-1.7.3-1.7.4-1.6zm8.3-28.6v1l.4-.3-.2.4-.2.4-.2.6-.2.6-.3.7-.2.8-.2 1-.2.8-.3 1-.3 1-.2 1-.3 1-.3 1-.3 1.2-.4 1-.3 1.2-.3 1-.2 1.2-.3 1-.3 1.2-.3 1-.3 1-.3 1-.2 1-.3 1-.3 1-.2.8-.2.8-.2.7v.6l-.2.6v.5l-1-.3v-.5l.2-.7.2-.6.2-.8v-1l.4-.7.2-1 .2-.8.3-1 .2-1 .3-1 .2-1.2.3-1 .3-1.2.3-1 .4-1 .2-1.2.3-1 .2-1.2.3-1 .3-1 .3-1 .4-1 .2-1 .3-1v-.8l.4-.8.2-.7.3-.7v-.6l.3-.5.2-.5.5-.2zm-.5.2l.2-.3h.3l-.5.3zm.5.3v-.5.5zm-.5-.3l.2-.3h.3l-.5.3z"/>
+      <path fill="#fff" d="M336 370.4l6.4 7.4c-1.8 1.4 1.3 7-.4 18-1 6.4-4.8 13.8-5.6 22-2.5 26.5-2.5 59.8 5.4 81-14.5-1.6-19.5-14.8-20-39.6-.4-20.6-.4-44.7 4.7-72.7 1-6.5 4.2-11.7 9.4-16z"/>
+      <path fill="#21231e" d="M342 378.2l-6.5-7.5.8-.6 6.5 7.5v.7h-.7zm.8-.7l.4.4-.5.2v-.7zm-.3 18.5h-1l.2-1.2v-1l.2-1V385l-.2-.6v-1.2l-.2-.6v-1l-.2-.4v-2.8l.2-.3.3-.4v-.2l.7.8v.2h-.2v.5h-.2v2.2l.2.4v1.1l.2.6v1.1l.2.7v8.1l-.2 1v1l-.3 1zm0 0zm-5.6 21.7h-1v-1.8l.2-.7.2-.7v-.7l.3-1v-.6l.3-.8.2-.7.2-.8.2-.7.2-.7.2-.7.2-.6.2-.7.2-.7.3-.7v-.7l.3-.6.2-.7.2-.7.2-.6v-.7l.3-.6.2-.6.2-.5.2-.7v-.6l.2-.6v-.6l.2-.6v-.5h1v1.2l-.3.6v.7l-.2.6v.7l-.3.7-.2.6-.2.6v.7l-.3.7-.2.6-.3.7-.2.6-.2.6-.2.7-.2.7-.2.7-.3.7-.3.7-.2.8-.2.7-.2.7v.7l-.2.6-.2.7v.7l-.3.8v.7l-.2.7v1.5zm4.8 81.6v-1l-.4.7-.8-2-.6-2-.7-2.3-.6-2.2-.5-2.3-.5-2.4-.5-2.4-.4-2.4-.4-2.5-.4-2.5-.3-2.5-.3-2.6-.2-2.7-.2-2.7-.2-2.6v-2.7l-.2-2.7V455l-.2-2.8v-10.9l.2-2.7V436l.2-2.8v-2.7l.3-2.6.3-2.7.2-2.6.2-2.6.2-2.4h1l-.3 2.6-.2 2.6-.2 2.5-.2 2.6v2.6l-.2 2.6v2.7l-.2 2.6v2.7l-.2 2.7V455l.2 2.7v2.7l.2 2.7.2 2.5.2 2.7.2 2.6.3 2.5.3 2.6.4 2.4.4 2.4.4 2.5.4 2.3.5 2.4.7 2.2.6 2.2.6 2.2.6 2 .7 2-.5.7zm.5-.6l.3.7h-.8l.5-.7zm-21-39.5h1v2.2l.2 2.3v2l.2 2.2.2 2v2l.3 1.7.3 1.8.3 1.8.2 1.6.4 1.5.4 1.6.4 1.5.5 1.4.4 1.2.6 1.3.6 1.2.6 1 .7 1 .6 1 .8 1 .8 1 .8.6 1 .7 1 .7 1 .6 1 .5 1 .4 1 .4 1.3.3 1.3.2 1.3.2-.2 1-1.4-.2-1.3-.3-1-.4-1.3-.4-1.2-.5-1-.6-1.2-.5-1-.7-1-.7-.8-.7-1-1-.7-1-.7-1-.6-1-.7-1.2-.6-1-.5-1.4-.5-1.3-.5-1.5-.5-1.5-.4-1.5-.3-1.7-.4-1.5-.4-1.8-.3-1.8-.2-2v-2l-.3-2v-2l-.2-2.3v-2.2l-.2-2.3zm4.7-72.8l1 .2-.5 2.6-.4 2.6-.3 2.5-.4 2.6-.3 2.4-.4 2.5-.3 2.4-.3 2.4-.2 2.4-.2 2.5-.3 2.3v2.4l-.3 2.4-.2 2.3v2.4l-.2 2.2v2.3l-.2 2v4.5l-.2 2.2V459h-1v-26.9l.2-2.2v-2l.2-2.4v-2.3l.2-2.3.2-2.3.2-2.4.2-2.3.2-2.4.2-2.5.3-2.3.3-2.4.3-2.5.4-2.5.3-2.6.4-2.5.4-2.6.6-2.6.4-2.6zm1 .2zm9.3-16.5l-.8.7h.7l-.4.5-.5.4-.5.4-.4.4-.4.5-.4.3-.4.4-.4.5-.4.4-.4.5-.3.5-.4.5-.3.5-.3.4-.3.4-.3.5-.2.4-.3.5-.2.4-.3.5-.2.4-.2.6-.2.5-.2.5-.2.6-.2.5-.2.7v.5l-.3.6v.6l-.2.6v.6l-1-.2v-.6l.2-.6.2-.6v-.6l.3-.6v-.6l.3-.5.2-.6.2-.6.2-.4.3-.6v-.5l.4-.5.2-.6.3-.5.2-.6.3-.5.3-.6.4-.5.3-.6.4-.5.2-.6.4-.4.4-.5.4-.4.4-.4.5-.4.4-.5.5-.4.4-.4.5-.6.6-.4h.7zm-.7 0l.4-.3.3.4h-.7z"/>
+      <path fill="#fff" d="M372.3 390l-13.4-1.6c-2.6 12.7-4.5 21.7-5 26.2-1 9 1.8 17 5 23 5-3 7.2-9.4 9.2-18.6 2-9.2 2.7-19.2 4-29z"/>
+      <path fill="#21231e" d="M359 388l13.3 1.5v1l-13.5-1.6-.4-.7.5-.4zm-.6.3v-.4h.5l-.6.3zm-4 26.4h-1l.2-.6v-.8l.2-.6v-1l.2-.6v-.7l.3-.6v-.7l.2-.7v-.7l.3-.7v-1l.2-.7.2-.8.2-1v-.7l.3-1 .2-.8v-1l.2-1 .2-1 .2-1 .2-1 .2-1 .3-1 .2-1 .2-1.2.2-1.2v-1l.4-1.3 1 .2-.3 1.2v1l-.3 1.3-.3 1-.2 1.2-.2 1-.2 1-.2 1-.2 1-.2 1-.2 1v1l-.3 1-.2.8-.2.8v1l-.3.7v.8l-.3.7v.8l-.2.7-.2.7v.6l-.2.7v1.3l-.2.5v1.1l-.2.5v.9zm4.3 22.6l.5.8h-.7l-.3-.7-.3-.6-.4-.6-.3-.5-.3-.6-.2-.7-.3-.7-.2-.6-.3-.7-.2-.7-.3-.7-.2-.8-.2-.7v-.7l-.3-.7-.2-.7-.2-.7v-.8l-.3-.7v-.7l-.2-.8v-.8l-.2-.7v-.8l-.2-.8v-6.1h1v6.6l.2 1v1.4l.3.7v1.6l.3.8.2.7v.8l.3.7.2.7.3.7.2.6.2.7.2.6.2.6.2.6.3.7.3.5.2.6.3.7.3.6.3.6.3.5-.7-.2zm.5.8l-.5.4-.2-.5h.7zm8.6-19h1l-.3 1-.2.8-.2 1v.7l-.3.8-.2.7-.2.8-.2.7v.8l-.4.7-.2.7-.3.6v.7l-.4.6-.2.7-.3.6-.2.5-.3.5-.3.6-.3.5-.4.7-.3.5-.4.5-.5.4-.3.6-.4.4-.4.4-.4.4-.5.3-.4.5-.4.3-.4.3-.5-.7.4-.3.5-.3.4-.3.3-.4.4-.3.4-.4.4-.4.4-.5.3-.4.4-.4.4-.5.3-.4.4-.5.2-.4.3-.6.2-.5.3-.6.2-.7.3-.7.2-.6.3-.7.2-.6.2-.7v-.8l.3-.7.3-.7.2-.8.2-.8.2-.8.2-.8.2-.8.2-1zm4.5-28.5v-1l.5.5v1l-.3 1v.8l-.2 1v1l-.2.8v1l-.2.8v1l-.2 1v.8l-.2 1v1l-.2.8v1l-.2.8v1l-.2.8v1l-.2 1-.2.8v1l-.2.8-.2 1v.8l-.2 1-.2.8-.2.8v1l-.3.8v1l-.3.7h-1l.3-1v-.8l.3-1 .2-.7v-1l.3-.8v-1l.3-.8.2-1v-1l.3-.8v-1l.2-.8v-1l.2-.8v-1.8l.2-1v-1l.2-.8v-1l.2-.8v-1l.3-1v-1.8l.2-1v-.8l.2-1v-.8l.3-1v-1l.6.7zm0-1h.6l-.2.5-.5-.5zm0 0v1-1zm0 1z"/>
+      <path fill="#fff" d="M407 418.6h-11.8c-.4 11-.7 18.5-.5 22.3.4 7.5 2.3 14 5.5 18.7 3.6-3 7-8.3 7.6-16.2.6-8-.6-16.5-.7-25z"/>
+      <path fill="#21231e" d="M395.2 418.2h12v1h-12l-.5-.5.5-.5zm-.5.5v-.5h.5l-.5.5zm.5 22.2h-1v-11.4l.2-.8v-4.4l.2-.8v-5h1v7.8l-.2.7v5.6l-.2.7v7.7zm4.7 18.4l.6.7h-.8l-.3-.5-.3-.4-.3-.4-.4-.5-.2-.4-.3-.5v-.4l-.4-.6-.2-.5-.3-.5v-.6l-.3-.6-.2-.5-.2-.6-.2-.6v-.5l-.2-.6-.2-.7-.2-.6v-.6l-.2-.6-.2-.6v-.7l-.2-.5v-.7l-.2-.7v-.5l-.2-.7v-2.6l-.2-.7h1v1.1l.2.7v1.4l.2.7v.7l.2.6v.7l.2.6v.6l.3.6v.7l.3.6v.7l.3.5v.6l.2.6.2.5.2.5.2.5.3.6.3.5.2.6.3.5.2.6.3.5.2.6.3.5.3.6.4.4.2.5h-.7zm.6.7l-.5.5-.2-.5h.8zm6.7-16.6h1v1.6l-.2.7v1.4l-.3.8v.6l-.3.7-.2.7-.2.6-.2.6-.2.5-.2.5-.3.6v.5l-.4.7-.2.5-.3.5-.2.5-.3.4-.3.5-.3.5-.4.4-.3.3-.4.4-.4.4-.3.5-.4.3-.4.4-.4.3-.3.3-.4.3-.7-.6.2-.3.4-.2.3-.3.2-.4.3-.2.4-.3.2-.4.3-.3.3-.4.3-.4.4-.5.3-.4.2-.4.2-.4.3-.5.2-.5.3-.5.2-.5.3-.5.2-.6.2-.4v-.6l.3-.6v-.6l.3-.6v-.7l.3-.6v-1.4l.2-.7V444zm0-24.3v-1l.4.6v5.6l.2 1v4.6l.2.8v2.8l.2.8v9.2h-1v-11.8l-.2-.8V429l-.2-1v-3l-.2-1v-5.3l.4.5zm0-1h.4v.6l-.5-.5z"/>
+      <path fill="#fff" d="M420 424.2l-12 .6c0 11 0 18.4.3 22.2a37 37 0 006.2 18.6c3.5-3 6.8-8.6 7-16.5.3-8-1-16.3-1.5-24.8z"/>
+      <path fill="#21231e" d="M408 424.3l12-.6v1l-12 .6-.4-.5.5-.5zm-.4.5v-.5h.5l-.4.5zm1.2 22.2h-1v-4l-.2-.6v-17.8h1V445l.2.4v1.6zm5.4 18.2l.6.8h-.7l-.2-.5-.3-.5-.3-.5-.3-.5-.4-.5-.3-.5-.3-.5-.2-.5-.3-.5-.3-.5-.2-.6-.2-.5-.3-.7-.2-.6-.2-.6v-.4l-.3-.6-.2-.6v-.7l-.3-.6-.2-.5v-.6l-.3-.8v-.6l-.2-.7v-.8l-.2-.6v-.7l-.2-.8v-2h.8v.7l.2.7v1.4l.2.7.2.7v.7l.2.7v.6l.3.6v.7l.2.6v.5l.3.6.2.7.2.5v.6l.3.6.2.5.2.5.2.5.2.5.2.6.2.6.3.5.2.6.2.4.3.5.3.5.3.4.3.5.3.3h-.8zm.6.8l-.4.4-.3-.5h.8zm6.2-17h1v2.3l-.2.7v.7l-.2.7-.2.6v.7l-.3.6v.6l-.2.5-.2.6-.2.7-.2.6-.3.5-.3.6-.3.5-.2.4-.3.5-.4.4-.3.4-.3.5-.3.4-.3.4-.3.5-.2.4-.3.3-.3.4-.4.3-.3.4-.3.3-.4.3-.6-.8.3-.3.3-.4.3-.3.4-.3.3-.4.4-.3.4-.4.2-.5.3-.4.2-.3.3-.4.3-.5.2-.4.3-.5.2-.6.3-.5.2-.6.2-.5.2-.6.2-.6.2-.6.2-.5.2-.6v-.5l.3-.7v-.6l.2-.7v-.6l.2-.8V449zm-1-25.3v1l.5-.5v2.4l.2.8v1.5l.2.7v3.4l.2.7v1.5l.2.8v.8l.2.8v2.5l.2.7v2.3l.2.8v5.3h-1v-7.4l-.2-.7v-1.6l-.2-.8V437l-.2-1v-1.5l-.2-.7v-1.6l-.2-.8v-1.6l-.2-.8v-1.6l-.2-.8v-2.2l.4-.6zm-.5.6v-.6h.5l-.5.6zm.5.4v-1 1z"/>
+      <path fill="#fff" d="M395 412.4l-12-.8c-1.2 11-2 18.2-2.2 22-.2 7.7 1 14.2 4 19.3 3.8-2.8 7.7-8 8.8-15.7 1.2-8 .8-16.4 1.4-25z"/>
+      <path fill="#21231e" d="M383 411l12 1v1l-12-1-.4-.5.5-.4zm-.4.5v-.5h.5l-.4.5zm-1.3 22.2h-1V431l.2-.4V429l.2-.6v-1.2l.2-.6v-2.2l.2-.7v-1.4l.2-.8v-.8l.2-.8v-1l.2-.8v-1l.2-.8v-1l.3-1v-1l.2-1v-1l1 .2v2l-.3 1v1l-.2 1v.8l-.2 1v.7l-.2 1v.8l-.2.8v.8l-.2.8v1.3l-.2.7v1.4l-.2.6v1.1l-.2.6v1.7l-.2.5v2.7zm3.2 18.8l.5.8-.7-.2-.2-.4-.2-.5-.2-.4-.3-.5-.2-.4v-.5l-.3-.5-.3-.5v-.6l-.3-.5v-.7l-.3-.6v-.6l-.3-.4v-.6l-.3-.7V443l-.2-.5v-.7l-.2-.6V440l-.2-.8v-5.5h1v6.8l.2.7v.7l.2.6v.6l.2.5v.6l.2.7.2.6v.6l.3.5v.5l.3.6.2.5.2.7.2.5.2.5.2.5.2.5.3.5.2.5.2.5.2.4h-.7zm.5.8l-.4.3-.3-.5.8.3zm8.2-16h1l-.2.8v.8l-.3.7v.7l-.3.7-.2.6-.2.6-.2.6-.3.6-.2.6-.3.6-.2.6-.3.5-.3.6-.3.5-.4.5-.3.5-.3.4-.3.5-.3.4-.4.6-.3.4-.4.4-.3.3-.4.4-.3.5-.4.3-.5.3-.3.4-.4.3-.4.3-.3.3-.5-.8.3-.3.4-.2.3-.3.4-.3.2-.3.4-.2.3-.4.3-.3.3-.3.3-.4.2-.4.4-.5.3-.4.2-.3.3-.5.3-.5.3-.4.4-.5.2-.5.3-.6v-.5l.4-.6.2-.5.2-.5.2-.6.2-.7.2-.7.2-.6.2-.7v-.7l.2-.7.2-.8zm1.8-24.4v-1l.5.5v1.5l-.2.8v5.6l-.2.7v9l-.2.8v2.2l-.2.8v.7l-.2.8v1l-.2.6v.8l-1-.2v-.7l.2-.8v-1.5l.2-.7V432l.2-.8V428l.2-.8V421l.2-.7v-4.8l.2-.8v-2.3l.6.5zm0-1h.5v.5l-.5-.6z"/>
+      <path fill="#fff" d="M384 399.6l-13.2-5.4c-2.2 8.8-5.2 37.8 0 50 4.5-3 9-8.4 10.3-17 1.6-9 2-18.2 3-27.6z"/>
+      <path fill="#21231e" d="M371 393.7l13 5.4-.3 1-13-5.4-.4-.6.7-.3zm-.7.3l.2-.5.5.2-.7.3zm.3 50l.6.7-.7-.2-.5-1.2-.5-1.3-.3-1.4-.4-1.5-.3-1.5-.3-1.6-.2-1.7-.2-1.7v-1.8l-.2-1.8v-3.6l-.2-2V418l.2-2v-1.8l.2-1.8.2-1.8V409l.3-1.8.2-1.7V404l.3-1.6.2-1.5.3-1.4.2-1.3.2-1.2.2-1v-1l.3-1 1 .3-.2 1v.8l-.3 1.2-.3 1.2-.2 1.3-.2 1.4-.2 1.5-.2 1.6-.2 1.6v1.7l-.3 1.7v1.7l-.2 1.8v1.8l-.2 1.8v3.8l-.2 2v5.4l.2 1.8v1.7l.2 1.8.2 1.7.2 1.6.3 1.6.3 1.5.3 1.3.5 1.4.4 1.2.4 1h-.8zm.6.7l-.5.3-.2-.5.7.2zm9.4-17.7h1v1l-.3.8-.2.8v.7l-.3.8-.2.8-.3.7-.2.7-.3.7-.3.5-.3.7-.2.6-.3.6-.3.6-.3.6-.5.5-.3.7-.4.5-.4.5-.3.5-.3.4-.4.5-.4.5-.5.4-.4.3-.3.4-.4.4-.4.4-.5.4-.5.3-.4.4-.4.3-.6-.8.4-.4.4-.3.4-.3.4-.3.4-.4.4-.3.4-.4.4-.4.4-.4.3-.4.4-.4.3-.5.3-.4.4-.4.3-.5.4-.4.3-.6.3-.5.3-.6.3-.6.2-.6.3-.7.3-.5.2-.6.3-.8.2-.7.2-.7.3-.7v-.7l.3-.7.2-.8v-.8zm3-27l.4-1 .4.6v1l-.2.8v1.7l-.2 1v1l-.2.8v1.8l-.2.8v1.7l-.2 1v1.7l-.2 1v1.6l-.2 1v.7l-.2 1v.8l-.2.8v1l-.2.7v.8l-.2 1v.8l-.2 1v.7l-.3.8v.8h-1v-.8l.2-1v-1.5l.2-.8v-1l.2-.8v-1l.2-.7v-1l.2-.7v-1l.2-.7v-1.6l.2-1v-.7l.2-1V410l.2-.8v-1.8l.2-.8v-1.8l.2-1v-1.5l.2-1v-.8l.2-1 .3.6zm.4-1l.4.3v.3l-.4-.5zm0 .6l-.3.4.2-.4zm0-.5l.4.3v.3l-.4-.5z"/>
+      <path id="c" fill="#edb92e" stroke="#21231e" d="M387.8 701.2c8 6.3 15.2-8.3 8-27.6-5-14.2-30.6-8.7-16.4 10.5.7 1 1.6.6 1.5-.4-1-4 1.6-6.3 5.5-5.5 10.5 2 11 22-.6 17.6-2.2-.2-.4 4 1.7 5.6z"/>
+      <path fill="#edb92e" stroke="#21231e" d="M400 639.2c-1 3.4-5 7.6-8 10.8-4.5 4.8-3.4 12.2-.2 16 3.5 4.4 5 9.2 5.8 13 .5 2.3 1.5 7.4.8 15.5-.4 4-2.7 6-5 7.7-1 1 .5 3 4.3 6 .4.2 1.5 1 2 3 .2.4 2 .4 2.2 0 .4-2 1.6-2.8 2-3 3.7-3 5.4-5 4.2-6-2.2-1.7-4.6-3.8-5-7.7-.6-8 .3-13.2.8-15.5.8-3.8 2.3-8.6 6-13 3-3.8 4.2-11.2-.5-16-3-3.2-7-7.4-8-10.7 0-.8-.3-1-.7-1-.3 0-.7.2-.7 1z"/>
+      <path fill="#edb92e" d="M395 685.5h11.6c2 0 3.6 1.6 3.6 3.5 0 2-1.6 3.5-3.6 3.5H395c-2 0-3.5-1.5-3.5-3.5s1.6-3.5 3.6-3.5z"/>
+      <path fill="#21231e" d="M406.6 686H395v-1h11.6v1zm4 3h-1v-1l-.2-.2v-.2l-.2-.2v-.2h-.2v-.2h-.2v-.2h-.3v-.2h-.2v-.2h-.3l-.2-.2h-.5v-.2h-.6v-1h1l.2.2h.4v.2h.3l.2.2h.2v.2h.2v.2l.3.2.2.2v.2l.3.2.2.3v.3l.2.3v.4l.2.2v.8zm-1 0h1-1zm-3 4v-1h.8l.3-.2h.2l.2-.2.2-.2h.3v-.2l.2-.2v-.2l.2-.2.2-.3v-.3l.2-.2v-.8h1v1.2l-.2.2v.4h-.2v.3l-.2.3h-.2v.3h-.2v.3h-.3l-.3.2v.2h-.3l-.2.2h-.2l-.3.2h-.4l-.2.2h-.8zm-11.5-1h11.6v1H395v-1zm-4-3h1v1l.2.2v.3h.2v.2h.2v.2h.2v.2h.2v.2h.2l.3.2h.2l.2.2.3.2h.6v1h-1.2v-.2h-.3l-.2-.2h-.2l-.2-.2-.2-.2-.3-.2-.3-.3-.2-.3-.2-.3-.2-.2v-.2l-.2-.2v-.4l-.2-.2v-.8zm1 0h-1 1zm3-4v1H394v.2h-.3l-.2.2h-.2v.2h-.2v.2l-.2.2-.2.2-.2.2v.2l-.2.2v.5h-.2v.6h-1v-1.2l.2-.2v-.2h.2v-.3h.2v-.2l.2-.2v-.2h.2l.2-.2v-.2h.3v-.2h.3v-.2h.3l.3-.2h.2l.2-.2h.5l.2-.2h.7z"/>
+      <path fill="#fff" d="M417 579.2l.5-11c-4.4-2.2-15.2 0-19.7 10.2a64.7 64.7 0 01-18 25.2c10 1.8 18.4-.2 23.7-7.4 7.3-9.8 11.2-15.7 13.6-17z"/>
+      <path fill="#21231e" d="M418 568.3l-.4 11h-1l.4-11 .7-.5.3.5zm-.3-.5l.3.2v.3l-.3-.5zm-19.5 10.8l-1-.4.6-1 .5-.8.5-1 .6-.7.5-.8.5-.8.7-.7.6-.6.7-.7.7-.5.7-.6.6-.4.7-.5.8-.4.8-.4.7-.3.8-.3.7-.2.7-.3h.7l.8-.3h1.2l.7-.2h2l.7.2h.5l.6.2.5.2.4.2-.4 1-.4-.3h-.5l-.5-.2h-.5l-.5-.2h-3l-.7.2h-.6l-.7.3-.7.2-.7.2-.7.2-.8.3-.7.3-.7.4-.7.4-.5.5-.7.5-.7.6-.5.6-.6.6-.7.7-.6.6-.5.7-.6.8-.5 1-.3.7-.5 1zM380 603l-.2 1-.2-.8.6-.6.6-.5.7-.5.6-.6.7-.6.6-.6.5-.6.6-.6.6-.7.6-.7.5-.6.7-.7.5-.7.6-.7.5-.7.6-.8.4-.8.5-.7.5-.8.5-1 .5-.8.6-.8.6-1 .5-.8.6-1 .6-1 .5-1 .5-1 .5-1 .6-1 .5-1.2.5-1.2 1 .4-.6 1.2-.5 1-.6 1.2-.5 1-.4 1-.6 1-.5 1-.5 1-.6 1-.5 1-.6.8-.6.8-.5.8-.5.8-.6.8-.5.8-.6.7-.4.7-.6.8-.6.6-.5.7-.7.7-.6.6-.6.7-.4.6-.6.5-.6.6-.7.7-.6.5-.5.6-.6.6-.8.5-.2-1zm-.2 1h-1l.8-.8.2.8zm23.4-8l.8.5-.6.7-.5.6-.7.6-.6.6-.6.6-.5.5-.6.6-.7.5-.7.5-.7.4-.8.3-.7.4-.7.3-.7.3-.7.2-.7.3-.8.2-.8.2h-.8l-.8.2h-.8l-1 .2h-6.1l-1-.2-.8-.2-1-.2.2-1 1 .2.8.2h1l.8.2h6.6l.8-.3h.8l.7-.3.8-.2.7-.2.7-.3.7-.2.7-.2.8-.4.6-.3.7-.3.7-.4.6-.5.6-.5.5-.5.5-.5.6-.5.5-.6.7-.6.5-.7zm13.4-16.8h1l-.2.4-.2.2h-.2l-.3.3-.2.3-.3.2-.2.3-.3.3-.3.4-.3.3-.2.4-.4.5-.3.4-.3.3-.4.5-.3.5-.4.5-.5.6-.3.5-.4.5-.5.7-.5.6-.5.7-.5.7-.5.7-.5.6-.6.8-.6.8-.5.8-.6 1-.7.7-.7 1-.6.8-.8-.6.6-1 .7-1 .6-.7.7-1 .6-.7.6-.8.5-.7.5-.7.5-.7.5-.7.5-.8.5-.6.5-.6.4-.6.4-.6.4-.6.4-.5.4-.5.3-.5.3-.4.4-.5.3-.4.3-.4.3-.3.4-.3.3-.3.2-.2.3-.3.3-.2.4-.2h.2l.3-.2-.4.4zm1 0v.3h-.2l.2-.3z"/>
+      <path fill="#fff" d="M425.2 580.6l-11.8-5c-5 10-8.2 16.6-9.5 20.2-2.8 7-3.5 13.8-2.3 19.5a22 22 0 0014-11.6c3.8-7 6-15.3 9.5-23z"/>
+      <path fill="#21231e" d="M413.6 575.2l11.7 5-.3 1-11.8-5-.3-.8.6-.2zm-.7.2v-.4l.6.2-.7.2zm-8.7 20.6l-1-.4.2-.3.2-.4.2-.5v-.4l.2-.3.2-.5.2-.4.2-.5.2-.5.3-.5.2-.5.3-.6.2-.5.3-.6.3-.5.3-.7.2-.6.3-.6.3-.7.4-.8.3-.7.4-.8.2-.7.4-.8.4-.8.4-.8.4-.8.4-.8.4-1 .4-.8.5-.8.4-1 .8.5-.4.8-.5 1-.5.8-.4.8-.3 1-.4.7-.4 1-.5.7-.4.7-.3.8-.3.7-.4.6-.3.7-.3.7-.3.6-.2.7-.3.6-.3.5-.3.6-.3.6-.3.6-.2.5-.3.5-.3.5-.2.5-.2.4-.2.5v.5l-.2.4-.2.3v.3l-.3.4zm-2.7 18.8l.2 1-.6-.4v-.5l-.2-.7v-.6l-.2-.5v-1.7l-.2-.5v-3.7l.2-.6v-1.2l.2-.7v-.6l.2-.5v-.7l.2-.6.2-.7v-.6l.3-.8v-.6l.3-.7.2-.7.2-.7.2-.7.2-.7.2-.7 1 .4-.3.6v.7l-.4.6-.2.6-.2.6-.2.7v.5l-.3.6v.8l-.3.6v.6l-.2.7v.6l-.2.6v.5l-.2.6v1.9l-.2.5v3.5l.2.5v1.2l.2.5v.7l.2.5-.6-.4zm.2 1h-.5v-.4l.5.4zm13.5-12.4l1 .5-.5.6-.3.6-.4.6-.3.6-.4.6-.4.5-.5.6-.5.6-.4.5-.4.6-.5.4-.4.5-.5.4-.5.3-.4.4-.6.4-.5.4-.5.4-.5.3-.5.4-.5.3-.4.2-.5.2-.4.2-.5.2-.4.3h-.4l-.5.2-.5.2h-.5l-.4.3h-.5l-.2-1h.9l.4-.3h.4l.4-.3h.5l.4-.3.5-.2.4-.2.5-.2.5-.2.5-.3.5-.3.4-.3.4-.4.4-.3.5-.4.4-.4.4-.4.6-.4.4-.5.4-.4.5-.6.3-.4.4-.5.4-.6.5-.6.4-.5.2-.7.4-.6.4-.6.3-.6zM425 581l.3-.8.3.6-.3.7-.3.8-.3.7-.3.7-.3.8-.2.7-.3.7-.2.7-.3.7-.3.8-.3.7-.2.6-.3.8-.4.7-.3 1-.2.6-.2.7-.3.8-.3.8-.2.7-.3.7-.3.8-.3.7-.2.7-.3.7-.3.8-.3.7-.5.7-.3.7-.3.6-.5.6-.3.7-1-.6.5-.6.3-.7.3-.6.3-.6.4-.7.3-.6.3-.7.3-.7.2-.7.3-.7.2-.7.3-1 .3-.6.3-.7.3-.7v-.8l.4-.7.3-.7.3-.8.2-.7.3-.7.3-.8.3-.7.3-.7.3-.7.3-.7.2-1 .3-.6.3-.8.3-.7.4-.8.3-.8.3.7zm.3-.8l.5.2-.2.4-.3-.6z"/>
+      <path fill="#fff" d="M428.6 580.6l-12.7-2c-2.4 10.8-4 18-4.4 22-1 7.5 0 14 2.7 19.4 4.3-2.3 8.8-7 10.7-14.7 2-7.8 2.2-16.3 3.6-24.7z"/>
+      <path fill="#21231e" d="M416 578.2l12.6 2v1l-12.8-2-.4-.6.6-.4zm-.6.4v-.5l.6.2-.6.4zm-3.3 22h-1l.2-.5V599l.2-.6v-.5l.2-.6v-.5l.2-.6v-.6l.2-.5v-.6l.2-.6v-.6l.2-.6.2-.7v-.6l.3-.7v-.7l.2-.8v-.8l.3-.8.2-.8v-.8l.3-1 .2-.7.2-1 .2-.8.2-1 .2-1 .2-1 .2-1 1 .3-.2 1-.2 1-.2 1-.2 1-.2.8-.2 1-.2.7-.2 1-.2.7v.8l-.3.8-.2.8v.8l-.2.7v.6l-.2.7-.2.7v.6l-.2.6-.2.7v.4l-.2.6v.6l-.2.5v1.1l-.2.6v.4l-.2.4v1.2zm2 19l.5.8-.7-.2-.2-.5-.3-.5-.2-.5v-.6l-.3-.4-.2-.5-.2-.5-.2-.6v-.6l-.2-.6v-.6l-.3-.6v-.6l-.2-.6v-.6l-.2-.6v-2.8l-.2-.6v-5.4l.2-.7v-1.5h1v3.1l-.2.7v5.1l.2.6v1.2l.2.6v.6l.2.6v.6l.3.6v.5l.2.6v.7l.3.5v.5l.3.6.2.5.2.5.2.5.3.5.2.5-.7-.2zm.5.8l-.5.3-.2-.5.7.2zm10-15.2l1 .2-.2.7-.2.8v.7l-.3.7-.3.7-.2.5-.3.6-.4.7-.3.6-.3.6-.3.4-.3.6-.4.5-.3.5-.4.5-.4.5-.4.4-.4.5-.4.3-.4.4-.4.4-.4.5-.4.3-.4.4-.4.3-.4.3-.4.3-.4.4-.5.3-.4.3-.4.2-.5.2-.5-.8.4-.2.4-.3h.4l.4-.4.4-.3.4-.3.4-.3.4-.3.4-.3.4-.3.3-.3.4-.4.4-.4.5-.4.3-.4.4-.5.3-.4.4-.6.2-.5.3-.6.3-.5.3-.6.4-.6.3-.5.3-.6.2-.6.3-.5.2-.6.3-.8.2-.7.2-.6.2-.8zm4-25v1l.5-.5v.8l-.2.8v.7l-.2.8v.8l-.2.8v.8l-.2.8v.7l-.2.8v.8l-.2.8v1.7l-.2.7v.8l-.2.8v.8l-.2.8v.7l-.2.8v1l-.2.6v.8l-.2.8-.2.7v.7l-.2.7-.2.8v.7l-.3.7-.2.7-1-.2.2-.8.2-.7v-.7l.2-.8v-.7l.3-.7v-.8l.2-.8v-.7l.2-.8v-1.5l.2-.8v-.7l.2-.8v-1l.2-.7v-.7l.2-.8v-1.6l.2-.8v-.8l.2-.7v-1l.2-.7v-.8l.2-.8v-.8l.2-1v-.7l.3-.8.5-.4zm-.4.3v-.4h.5l-.4.5zm.5.6v-1 1z"/>
+      <path fill="#fff" d="M430.4 563.4h7.6c4.4 2 9 12.2 3.7 22a65.8 65.8 0 00-9.5 29.2c-7.4-6.8-10.8-14.7-8.2-23.3 3.4-11.7 6.8-25.2 6.4-28z"/>
+      <path fill="#21231e" d="M438 564h-7.6v-1h7.8l-.2 1zm0-1h.2-.2zm4 22.5l-.8-.5.5-1 .4-.8.4-.8.3-1 .3-.8.2-1v-.7l.3-1V574l-.2-1v-.6l-.3-.8-.2-.7-.3-.8-.2-.7-.3-.6-.3-.7-.3-.6-.3-.6-.3-.4-.3-.5-.4-.3-.4-.4-.3-.4-.4-.4-.5-.3-.4-.3-.3-.2.5-1 .4.4.5.2.5.4.4.4.4.4.4.4.4.5.4.6.3.6.3.6.3.6.3.7.2.7.3.7.2.6.2.8v.7l.3 1v.8l.2.8v3.5l-.2 1v1l-.4.8-.3 1-.3 1-.4.8-.4 1-.5 1zM432 615l.5-.7-.8.3v-.8l.2-1v-2.3l.3-1v-.7l.2-.8.2-1 .2-.8v-1l.2-.7.3-1 .2-.8.2-1 .2-.7.3-1 .3-.8.3-1 .4-1 .4-.8.4-1 .4-1 .4-1 .4-1 .5-1 .4-1 .5-1 .5-1 .5-1.2.6-1 .6-1.2 1 .5-.7 1-.6 1.2-.7 1-.5 1-.5 1.2-.5 1-.4 1-.5 1-.5.8-.4 1-.3 1-.3 1-.4.8-.3 1-.3.8-.2.8-.3 1-.4.8-.2.8-.2 1-.2.7-.2 1v.7l-.3.8v1l-.3.7v.8l-.2.8v1l-.2.7v1.8l-1 .2zm.7-.3v1l-.8-.7.7-.3zm-9.2-23.6l1 .4-.3.8-.2.8v.8l-.2.7v.8l-.2.8v3l.2.8.2.8v.7l.3.7.3.7.2.8.3.7.4.7.4.6.3.7.5.7.4.7.4.7.5.6.4.7.5.7.4.6.6.7.6.6.6.7.7.6.5.7-.6.7-.8-.6-.7-.7-.6-.7-.7-.6-.6-.7-.6-.7-.4-.7-.6-.7-.4-.7-.5-.8-.3-.7-.5-.7-.3-.8-.5-.7-.3-.7-.3-.8-.4-.7-.2-.7-.2-.8-.2-.7v-.8l-.2-.8v-.8l-.2-.8v-2.5l.2-.8v-.8l.3-.8.3-1 .2-.7zm7-28v1l.4-.7v1.8l-.2.5v1.1l-.2.7-.2.7v.8l-.3.8v.8l-.2 1-.2.8-.2 1-.3 1v1l-.4 1-.2 1-.3 1-.2 1-.2 1-.3 1.2-.3 1-.3 1.2-.3 1-.3 1.2-.3 1.2-.3 1-.3 1.2-.2 1-.4 1.2-1-.3.4-1 .3-1 .5-1.2.3-1 .3-1.2.4-1.2.3-1 .3-1.2.3-1 .3-1.2.3-1 .2-1 .2-1 .3-1.2.2-1 .2-1 .2-1 .2-.8.2-1 .2-.8.2-.8v-.8l.3-.7v-.8l.2-.7v-.6l.2-.6v-2l.4-.6zm-.6.5v-.6h.4l-.5.5zm.4 0v-.6.4zm-.5 0v-.6h.4l-.5.5z"/>
+      <path fill="#fff" d="M433.8 558.2l-12-4.3c-4.3 10-7.2 16.8-8.4 20.5-2.3 7.3-2.6 14-1 19.6a21.3 21.3 0 0014-11.6c3.3-7.3 4.5-16.3 7.4-24.2z"/>
+      <path fill="#21231e" d="M422 553.4l12 4.3-.4 1-12-4.4-.3-.6.6-.3zm-.7.3l.2-.4h.4l-.7.4zm-7.4 21l-1-.3v-.4l.2-.4v-.4l.3-.4v-.4l.3-.5.2-.5v-.5l.3-.5.2-.5.2-.6.3-.6.2-.5.2-.6.3-.6.2-.6.2-.6.3-.7.3-.6.3-.7.4-.7.3-.8.3-.8.3-.7.4-.8.3-1 .4-.8.3-1 .4-.8.5-1 .4-.8.3-1 1 .5-.5 1-.4 1-.4.8-.3 1-.4.8-.4.8-.4.8-.3.8-.4.8-.4.8-.3.7-.3.8-.3.8-.3.7-.3.6v.8l-.4.6-.2.6-.3.6v.6l-.3.6-.2.5-.2.5-.2.5v.5l-.3.5-.2.4v.5l-.3.4v.3l-.2.3v.4zm-1.8 19l.3 1-.6-.4-.3-.6v-.5l-.2-.6v-.5l-.2-.5v-.6l-.2-.7V583l.2-.7V581l.3-.6v-.7l.2-.6v-.6l.3-.6.2-.7v-.6l.3-.7.2-.6.2-.6 1 .3-.3.6-.2.7-.2.7-.2.6v.7l-.2.6v.7l-.2.6-.2.6v.6l-.2.6v1l-.2.7v6.5l.2.6v1.1l.2.4.2.6v.5l.2.5-.6-.3zm.3 1h-.5v-.4l.5.3zM426 582l.8.6-.3.6-.4.7-.2.5-.4.6-.4.7-.4.6-.4.5-.4.5-.4.5-.5.5-.5.5-.5.4-.4.4-.5.4-.4.4-.4.4-.5.3-.5.5-.5.3-.5.3-.5.4-.4.2-.5.3h-.5l-.5.4-.5.2-.5.2-.5.2h-.4l-.6.3-.4.2h-.5l-.3-.8.4-.2h.5l.5-.3.5-.2h.4l.5-.3.4-.2.4-.3.5-.2.5-.2.5-.3.4-.3.5-.3.5-.4.4-.3.6-.3.4-.4.5-.3.4-.4.4-.5.4-.4.4-.4.4-.4.4-.5.4-.5.4-.5.4-.5.4-.6.3-.6.3-.6.3-.6.3-.7zm7.6-23.4l.4-1 .3.7-.3.8-.3.8-.2.8-.3.7-.2.8-.2 1-.2.6-.2.8-.3.8v.8l-.3.7-.2.8-.2.8-.2.8v1l-.3.6-.2.8-.2.8-.2.8v.7l-.3.8-.2.8-.3.7-.2.8-.2.7-.3.8-.3.7-.2.7-.3.8-.3.7-.3.7-.2.6-1-.5.4-.5.3-.7.3-.7.3-.6.3-.7.3-.8.2-.8.2-.7.3-.8.2-.7.2-.8.2-.7v-.8l.4-.8.2-.8.2-.8.2-.8.2-.8.2-.7.2-.7.2-.8.2-.8.2-.8.2-1 .2-.6.2-.8.3-.8.3-.8.2-.7.3-.8.3-.8.3-.7.3.6zm.4-1l.4.3v.3l-.4-.6zm-.2.6l-.2.4.2-.4zm.2-.5l.4.2v.3l-.4-.6z"/>
+      <path fill="#fff" d="M425.6 549.7l-2.6-16.4c-2.8-.7-6.5 5.8-10 9.5-1 1-2 1.7-2.6 2.8a23.3 23.3 0 00-3.4 8 62.3 62.3 0 01-13 27.6c10.2-.2 18-3.8 21.8-12 5-11 7.7-17.7 9.8-19.5z"/>
+      <path fill="#21231e" d="M423.4 533.3l2.7 16.4h-1l-2.5-16.3.6-.6.4.5zm-.3-.4h.4v.2l-.3-.4zm-9.7 10.2l-.8-.7.4-.4.2-.2.3-.4.4-.4.2-.4.3-.4.4-.4.2-.5.3-.4.4-.5.2-.4.3-.3.4-.5.2-.4.3-.4.4-.3.2-.3.3-.4.3-.3.4-.3.3-.4.3-.2.3-.2.4-.2.4-.3h.3l.4-.3h.3l.4-.2h1.1l-.2 1h-1l-.3.2-.2.2-.3.2-.3.2-.3.2-.3.3v.4l-.5.3-.3.3-.3.3-.4.4-.3.4-.3.5-.4.4-.3.3-.3.4-.3.4-.4.5-.3.5-.3.4-.4.4-.3.4-.4.4-.3.4-.4.4-.4.4-.3.4zm-2.5 2.7l-.8-.7v-.2h.2l.2-.2v-.2h.2v-.2h.2v-.2h.2v-.2h.2v-.2l.2-.2h.2v-.2l.2-.2h.2v-.2h.2v-.2h.2v-.2l1 .6h-.2l-.2.2v.2h-.2v.2h-.2l-.2.2v.2h-.2l-.2.2v.2h-.2v.2h-.2v.2h-.2v.2h-.2v.2l-.2.2v.2h-.2zm-3.3 7.7l-1-.2v-.6l.2-.4v-.3l.2-.3v-.8l.2-.3v-.3l.2-.3v-.3h.2v-.4l.2-.3v-.2l.2-.2v-.2l.3-.3v-.2l.2-.2v-.2l.3-.2v-.3h.2v-.3l.3-.3v-.2l.3-.2v-.2l.2-.3.2-.2.8.6-.3.3v.2l-.2.2-.2.2v.4l-.2.2-.2.2v.3l-.2.3v.2l-.2.3-.2.2v.2l-.2.3v.2l-.2.3v.2l-.2.3v.2l-.2.3v.5l-.2.3v.2l-.2.3v.5l-.2.3v.7zm-13.4 27v1l-.3-.8.5-.8.5-.7.5-.6.5-.8.5-.7.5-.7.4-.6.6-.7.4-.7.5-.8.4-.7.4-.7.4-.8.4-.7.4-.7.4-.8.4-.8.4-.8.4-1 .4-1 .3-.8.3-1 .3-.8.4-1 .3-1 .4-1 .3-1 .3-1.2.3-1 .3-1.3.2-1.3.3-1.2 1 .2-.3 1.2-.3 1-.4 1.3-.3 1.2-.4 1-.4 1-.3 1.2-.4 1-.4 1-.4 1-.3 1-.5.8-.4 1-.3.8-.4.8-.4 1-.5.8-.4.8-.3.7-.5.8-.4.8-.5.8-.4.7-.6.7-.5.7-.5.7-.5.7-.5.8-.5.7-.5.6-.5.8-.5.7-.4-.8zm0 1h-1l.7-.8.4.7zm21.3-12.8l1 .4-.5.7-.4 1-.4.6-.4.7-.5.7-.4.6-.5.6-.5.6-.5.6-.6.5-.6.4-.6.5-.7.4-.6.4-.8.4-.7.4-.7.4-.7.3-.7.3-.8.3-.8.2-.8.2-1 .2-.7.2-1 .2-.7.2h-1l-.8.2h-1l-.8.2h-2v-1h2.8l1-.2h.8l.8-.2 1-.2h.7l1-.3.7-.2.7-.3.8-.2.7-.3.7-.3.7-.3.6-.3.7-.3.6-.4.7-.5.6-.4.6-.4.5-.4.6-.6.5-.5.5-.4.5-.6.5-.6.4-.7.5-.6.4-.6.3-.7.3-.8zm9.8-19.2h1v.3l-.3.3v.2l-.3.2-.2.2-.2.2-.2.3-.3.4-.2.2-.2.4v.4l-.4.5-.2.5-.3.5-.2.5-.3.6-.2.6-.3.6-.3.6-.4.7-.3.8-.3.8-.4.7-.3.8-.4 1-.4.7-.4 1-.4.8-.4 1-.4 1-.5.8-.3 1-.5 1-1-.4.6-1 .4-1 .5-1 .4-1 .5-1 .4-.8.3-1 .4-.7.4-.8.4-.8.4-1 .3-.6.4-.7.4-.7.3-.6.4-.7.3-.6.2-.4.2-.6.3-.5.2-.5.3-.4.2-.5.3-.3.2-.4.2-.3.2-.4.2-.3.2-.3.2-.2.3-.2.3-.2-.2.4zm1 0v.3-.3z"/>
+    </g>
+    <use width="1350" height="900" transform="matrix(-1 0 0 1 964.3 0)" xlink:href="#d"/>
+    <path fill="#fff" stroke="#21231e" d="M536.4 415a38 38 0 004.8-1.5 66.2 66.2 0 01-21.4-22c-7.8-12 3.3-33 8-44.3a53 53 0 0021.2-31c1-7.3-19-4.7-33 2-17 8-19.3 5.7-25.4 7-2.2 10.5 2.4 11.4 6.7 11-9.4 15-13.3 29.8-15 51.4-2-21.6-6-36.5-15.3-51.5 4.3.6 9-.3 6.7-10.7-6-1.4-8.4.8-25.4-7.2-14-6.5-34-9-33-1.8 3 13.7 11.8 24 21.3 31 4.6 11.2 15.7 32.4 8 44.2a67.3 67.3 0 01-21.5 22c1.7.7 3.3 1.2 5 1.5-1.2 1.5-11 4.5-12.3 3.7-7.6-5.3-15-18-21.4-25.2-18.2-20.8-27.3-36.7-24-49.6 4.5-14 20.8-29.6-.8-27-21.7 2.8-39.6 32.5-45.4 68.3-2 13.2-3.3 24.4-4.7 33.5 11.8-4.3 17-8.5 20.2-13.7-1.4 5-2.5 9.7-3.2 14.2 9.7-1.7 16.7-6.4 19.2-15 1-3.6 2.3-6.5 3.6-9 3 1 7 1 11.6 0 1.7 4 15 19 22.2 30 8 12.2 20.2 21.6 24.2 22 2 .4 2.7-4 2.2-10.2 21 .2 42.3.3 63-.4 20.7.7 41.8.6 63 .4-.6 6 0 10.6 2 10.3 4-.5 16.2-10 24.3-22.2 7-10.8 20.5-25.7 22.2-30a20 20 0 0011.6.2c1.3 2.5 2.5 5.4 3.5 9 2.5 8.6 9.5 13.3 19.2 15-.7-4.5-1.8-9-3.2-14 3.2 5 8.4 9.3 20.2 13.6-1.4-9-2.7-20.3-4.8-33.5-5.8-35.8-23.7-65.5-45.4-68.2-21.6-2.6-5.3 13-.7 27 3.3 12.8-5.8 28.7-24 49.5-6.5 7.3-13.8 20-21.4 25.2-1.2.8-11-2.2-12.2-3.8z"/>
+    <g id="e">
+      <path fill="#edb92e" d="M440.6 356.8c-2 1.8-8.8 1.8-18 2.4-14.8.5-23.4-4-25.3-13.5 5.6 6.6 12.2 10 19.7 8 10.2-2.5 16-4.3 18.3-3.8 1.6.4 4 3.3 5.3 6.8z"/>
+      <path fill="#21231e" d="M422.6 359.7v-1h1.8l.7-.2h2.5l.8-.2h2.8l.8-.2h3l.5-.2h1l.4-.2h.5l.4-.2h.4l.5-.2h.3l.3-.2h.4l.3-.2h.2v-.3h.3l.6.7h-.3l-.3.3-.3.2h-.2l-.3.3h-.4l-.3.2h-.4l-.4.2h-.5l-.5.2h-1l-.5.2h-1.5l-.6.2H432l-.6.2h-2.8l-.8.2h-2.3l-1 .2H423zm0 0zm-25-14.3l-.7.6.8-.4.2 1 .2.7.3.8.3 1 .3.6.5.7.4.7.4.6.5.6.4.6.6.6.6.5.6.4.7.5.6.3.8.5.8.4.8.3 1 .4.8.2 1 .3 1 .2 1 .2h1l1 .3h1.2l1.2.3h6.6v1H416l-1-.2h-1.3l-1-.3h-1.2l-1-.3-1-.3-1-.3-1-.2-1-.4-.8-.3-.8-.4-1-.4-.7-.5-.7-.5-.7-.5-.7-.6-.6-.5-.6-.6-.4-.8-.5-.7-.3-.7-.4-.8-.4-.7-.4-1-.3-.7-.3-1-.2-.8 1-.4zm19.3 8l.2 1h-.8l-.7.2h-1.4l-.7.2h-2.8l-.6-.2-.7-.2h-.7l-.6-.3h-.7l-.6-.3-.8-.3-.6-.3-.6-.2-.6-.3-.6-.4-.6-.3-.6-.4-.6-.4-.6-.6-.6-.4-.6-.5-.5-.6-.6-.6-.4-.6-.6-.5-.5-.6-.6-.7.7-.6.5.6.5.6.6.6.5.5.5.5.6.5.4.5.6.5.6.4.5.5.7.4.6.3.6.3.4.3.6.2.6.3.6.2.7.2h.5l.6.3.7.2h.6l.7.2h4.7l.6-.3h.7zm18.5-4l-.3 1h-2.6l-.4.2h-.9l-.5.2-.5.2h-.5l-.6.2h-.5l-.6.3h-.5l-.7.3-.7.2h-.6l-.7.3-.7.2-.8.2-.8.2h-.8l-.8.3-1 .3-.8.2-1 .2-.8.3-.3-1 1-.2.8-.2 1-.2.7-.2 1-.2.7-.2.8-.2.7-.2.8-.2.7-.2.7-.2.6-.2h.6l.6-.3h.6l.6-.3h.6l.5-.2h.6l.5-.2h.6l.4-.2h.9l.3-.2h2zm0 0zm5.4 7.8l-.7-.8-.2.6v-.7l-.3-.3v-.3l-.3-.3v-.3l-.3-.2v-.3l-.2-.2-.2-.3v-.3l-.3-.2-.2-.3v-.2l-.2-.2-.2-.3v-.2l-.3-.2h-.2v-.3h-.2l-.2-.3v-.2h-.3l-.2-.2v-.2h-.2v-.2h-.4v-.2h-.2l.3-1h.2l.2.2.2.2h.2l.2.2.2.2h.2v.3l.3.2.2.2h.2l.2.3v.2l.2.2.2.2.2.2.2.2.2.3v.2l.3.2.2.3.2.3v.3l.3.4.2.3v.3l.3.3v.3l.3.3v.3l.2.3v.6zm0-.6l.2.3-.3.2v-.6zm-21.5-35.4v1.5h-.4v-.4h-.2v-.7l.2-.2h.2v-.2h.2zm15.3 4l-.5 1.3-.6-.2-.5-.2h-.6l-.5-.2-.4-.2-.5-.2-.4-.2-.5-.2-.4-.2h-.5l-.4-.3-.5-.2h-.4l-.4-.3h-.5l-.4-.3h-.5l-.4-.2h-.4l-.5-.2h-.4l-.3-.2h-1.3l-.4-.2H420v-2h2.9l.5.2h1l.4.2h.5l.3.2.5.2h.5l.4.2.5.2h.5l.4.3h.6l.5.3.6.2h.5l.6.3.5.2.6.2h.5l.6.3.6.2.5.2.6.2h.5zm9 2.5v1.5H442l-.3-.2h-.4l-.3-.2h-.3l-.4-.2h-.3l-.4-.2h-.4l-.3-.2h-.5l-.3-.2-.4-.2h-.3l-.4-.2h-.2l-.3-.2h-.3l-.3-.3h-.7l-.2-.2h-.4l-.2-.2.4-1.5h.2l.2.2h.2l.2.2h.3v.2h.4l.3.2h.3l.3.2h.4l.3.2.3.2h.4l.3.2h.4l.3.2h.4l.4.2h.3l.4.2h.4l.3.2h.6l.3.2h1zm0 1.5v-1.5h.4v.2h.2v.2h.2v.9h-.2v.2h-.2v.2h-.2zm23.4 7.5l.2-1.2h.2v.2h.2v.8h-.6zm-10-2l.4-1.2h.5l.3.2h.4l.3.2h1.1l.2.2h.6l.2.2h.6l.3.2h.7l.4.2h.8l.3.2h.9l.2.2h.9l.5.2h.8l-.2 1.3h-.9l-.4-.2h-.6l-.4-.2h-.7l-.4-.2h-1.4l-.3-.2h-.7l-.3-.2h-.6l-.3-.2h-.5l-.4-.2h-.5l-.3-.2h-.5l-.2-.2h-.5l-.2-.2zm.4-1.2l-.3 1h-.2v-.8h.8z"/>
+      <path fill="#21231e" d="M431.5 332l-.7 1.3-.4-.3-.4-.2-.4-.3-.3-.2-.4-.3-.4-.3-.3-.3-.4-.3-.4-.2-.3-.4-.3-.3-.2-.3-.3-.3-.3-.4-.2-.3-.3-.4-.2-.3-.3-.4-.2-.4-.2-.3-.3-.5-.2-.4-.2-.2v-.4l-.3-.4-.2-.3-.2-.4-.2-.3v-.4l-.2-.3-.2-.3-.2-.4 1.4-.7.2.2.2.4v.3l.3.2.2.4.2.3v.3l.3.3.2.4.2.3.2.4v.3l.3.4.3.3.2.4.2.4.2.4.3.3.2.4.3.4.2.3.3.4.3.3.3.3.3.2.3.3.3.3.2.2.4.3.3.2.2.2.3.2zm7.6-5.3l1.5.8-.2.4-.2.3-.2.4-.2.4-.3.5-.3.4-.2.2-.3.4-.3.3-.3.2-.3.3-.3.3-.3.3-.2.4-.3.2-.3.2-.4.2-.3.2-.3.2h-.3l-.5.2h-.3l-.3.2h-2.2l-.4-.2-.3-.2h-.2l.7-1.5h.5l.2.2h1.7l.3-.2h.2l.3-.2h.2l.3-.3.2-.2.3-.2h.2l.3-.3.2-.3.3-.2.2-.3.3-.4.2-.3.3-.3.2-.4.2-.3.3-.4.2-.5.2-.4v-.3z"/>
+      <path fill="#21231e" d="M429.6 331l-2.2-2.3c-1-1.3-.5-3 2-5.4 1.5.7 3 1.3 4.2 2-1 3-2.2 4.8-4 5.6zm-6.3 82l-.4 1h-.4v-1h.8zm23.8-3.6l1 1-.7.5-.6.4-.7.5-.6.4-.7.5-.7.3-.7.4-.7.4-.7.4-1 .3-.6.3-.8.2-.7.2-1 .2-.7.2h-.8l-.8.2h-5l-1-.2h-.8l-.8-.3h-1l-.8-.4h-1l-.7-.3-1-.3-.8-.3.3-1 .8.2 1 .3 1 .3.7.2 1 .2.7.2h.8l1 .2h.7l.7.2h4.8l.7-.2h1l.6-.3.7-.2h.7l.7-.4.7-.3.7-.3.8-.3.6-.4.7-.4.7-.5.6-.5.6-.5.5-.5.6-.6zm3-2.8l1 .8h-.2v.2h-.2l-.2.2v.2h-.2v.2h-.2v.2h-.2l-.2.2-.2.2v.2h-.2v.2h-.2l-.2.2-.2.2-.2.2-.2.2v.2h-.2l-1-.8h.2v-.2h.2v-.2h.2l.2-.2.2-.2.2-.2v-.2h.2v-.2h.2l.2-.2.2-.2.2-.2v-.2h.2l.2-.2.2-.2v-.2h.2zm1 .8l-1-.8.2-.2h.7v.2h.2v.8z"/>
+      <path fill="#21231e" d="M452.2 401.3l-1.2-.2v-.2h.2l.2-.2h.6v.4h.2v.2zm-5.5 16l.3 1-.7-.8.2-.4.2-.4.2-.5v-.4l.3-.4.2-.5.2-.5v-.5l.3-.4.2-.5.2-.5v-.5l.3-.5v-.5l.3-.5v-.5l.3-.5v-.5l.3-.5v-.5l.2-.5.2-.6v-.5l.2-.6v-.5l.2-.4v-.6l.2-.6v-.5l.2-.7v-.6l.2-.6 1.2.3v.6l-.2.5v.6l-.2.6v.6l-.2.6v.5l-.2.6-.2.4v.6l-.2.5v.6l-.3.6v.5l-.3.6v.6l-.3.5v.5l-.2.5-.2.5v.5l-.3.5-.2.5v.5l-.2.4-.2.5-.2.6-.2.5-.2.6-.2.5-.2.5-.2.5-.7-.8zm-.4.2l1 .5v.2h-.2v.2h-.4l-.2-.2v-.2h-.2v-.4zm15.2-9.5l1 .7-.3.4-.4.6-.3.4-.4.4-.2.4-.4.4-.4.4-.4.4-.4.3-.4.4-.5.3-.4.4-.6.3-.4.3-.5.3-.5.3-.5.3-.5.2-.5.3-.5.3-.6.2-.5.3-.7.2-.5.3-.6.2-.6.2-.6.2-.6.2-.6.2-.6.2-.6.2-.6.2-.3-1.2.6-.2h.6l.5-.3.6-.2.6-.2.6-.2h.6l.5-.3.6-.3.4-.2.5-.2.4-.3.5-.2.4-.3.5-.3.4-.4.5-.3.3-.3.5-.3.4-.3.4-.3.4-.2.4-.4.4-.3.4-.3.4-.3.3-.4.3-.4.3-.4.3-.4.2-.4.3-.4zm1 .7l-1-.7h.2v-.2h.7v.2h.2v.7z"/>
+      <path fill="#21231e" d="M461.3 400.2H460v-.2h.2v-.2h1v.4zm4.4 15.7l.7 1-.8-.3-.3-.4-.3-.4-.2-.5-.3-.5-.2-.4-.3-.4-.2-.5-.3-.5-.2-.4-.2-.5v-.5l-.3-.5-.2-.5-.2-.5-.2-.5v-.5l-.2-.5-.2-.5v-.6l-.3-.5v-.5l-.3-.6v-.4l-.2-.6v-.6l-.2-.5v-.7l-.2-.6v-.6l-.2-.5v-1.2h1v.5l.2.6v.6l.2.5v1.4l.2.5.2.6v.5l.2.5v.6l.3.5v.4l.2.5.2.4v.5l.2.4.2.5.2.4.2.5.2.4.2.4.2.5.2.4.2.5.3.4.3.4.2.4.3.5.2.3.3.4.3.3h-1zm0 .7l1-.7v.8l-.2.2h-.2v.2h-.4v-.2h-.2zm7.6-12.6l1 .4v.6l-.2.5v.5l-.2.5-.2.5-.2.5-.2.5-.2.5-.2.4-.2.4-.2.4-.3.5v.4l-.4.4-.2.5-.3.4v.3l-.4.3-.3.4-.3.4-.2.3-.3.3-.3.4-.3.3-.4.3-.3.3-.3.3-.3.2-.3.3-.3.4-.3.2-.3.3-.7-1 .3-.3.3-.2.3-.3.3-.2.2-.3.3-.3.2-.2.3-.3.3-.4.3-.3.2-.4.3-.4.4-.3.2-.4.3-.4v-.4l.4-.3.2-.5.3-.4v-.3l.3-.4.2-.4.2-.6.2-.4v-.5l.3-.4.2-.4.2-.5v-.4l.3-.5v-.4l.3-.5zm1 .4l-1-.3v-.2h.8v.2h.2v.4z"/>
+      <path fill="#edb92e" d="M406 317.8c-16.7 1.8-16 12.6-.4 28 3 3 4 3 4.6-.2 1.2-5.3 7-8.5 10.2-4.4 2 2.7 1.6 4.3 8.6 3.3 9 7.5 16.2 12.8 4.5 12.3-5-.2-9 2.8-15.7 2.5 2 4 2.3 4.3 3.4 4.6 6.5 1.2 13.3-2.8 19.8-1.6 14.3 2.6-23-38.6-22.4-40.3 1-4-9-11.5-12.7-4.2z"/>
+      <path fill="#21231e" d="M406 345.5l-.7.7-1.4-1.5-1.5-1.4-1.2-1.4-1.2-1.4-1-1.3-1-1.3-.8-1.3-.8-1.2-.8-1.2-.6-1.2-.5-1-.5-1.2-.3-1-.3-1v-1l-.2-1v-1l.2-1 .2-.8.4-.8.4-.8.6-.7.6-.7.8-.6.8-.6 1-.5 1-.5 1-.4 1.4-.4 1.3-.3 1.3-.2 1.6-.2v1l-1.5.2-1.4.2-1.2.3-1.2.3-1 .4-1 .5-1 .4-.6.5-.7.7-.6.6-.4.6-.4.6-.4.7-.2.8-.2 1v1.7l.2.8.2 1 .4 1 .4 1 .5 1 .5 1.3.7 1 .8 1.3 1 1.4.8 1.2 1 1.3 1.2 1.3 1.2 1.3 1.4 1.4 1.4 1.5zm3.8 0l1 .2v.3l-.2.3v.5l-.2.2v.2l-.2.2v.2l-.2.2-.3.3v.2h-.3l-.2.2H408l-.2-.2h-.2l-.2-.2h-.2l-.2-.3-.2-.2h-.2l-.3-.4h-.2l-.2-.3-.3-.3-.2-.2.7-.7.2.2.3.3.2.2.3.2.2.2.2.2h.2l.2.2.2.2h.3v.2h.6l.2-.2v-.2l.2-.2v-.2l.2-.4v-.4l.2-.3zm11-4.6l-.8.5-.3-.4h-.3l-.3-.4-.2-.2-.3-.2h-.3l-.3-.2h-.5l-.3-.2h-1.5l-.3.2-.4.2h-.2l-.4.3-.3.2-.2.2-.4.2-.3.2-.2.3-.3.3-.2.4-.3.3-.2.4-.3.5-.2.4-.2.3v.5l-.2.4v.5l-1-.2v-.5l.2-.5.2-.5.2-.5.3-.5.2-.4.2-.4.3-.4.3-.4.3-.4.4-.3.4-.3.4-.3.4-.2.3-.2.3-.2.5-.2h.4l.4-.2h.4l.4-.2h1l.4.2h.6l.4.3.4.3.3.2.4.3.4.5.4.4zm8.6 3.2l-.7.7h.4-.5l-.6.2h-4.5l-.2-.2h-.3l-.2-.2h-.2l-.2-.2-.2-.2-.2-.2h-.2v-.3l-.3-.3v-.2l-.3-.2v-.2h-.3l-.2-.3-.2-.3v-.2l-.3-.2v-.3l-.3-.2.8-.6h.2v.4l.3.2.2.3.3.3v.2l.2.2.2.2.2.2.2.2.2.2h.2v.2h.3l.2.2h.2l.2.2h5.4zm-.4 0l.2-.2.2.2h-.4zm4.5 13v-1h4.1l.5-.2h.4l.3-.3h.2v-1l-.2-.3-.2-.4-.3-.5-.4-.4-.5-.4-.4-.4-.4-.5-.6-.5-.6-.6-.6-.6-.7-.5-.6-.6-.7-.7-.7-.7-.8-.6-.8-.7-.8-.7-1-.7.8-.8.8.7.8.5.8.7.8.7.7.5.8.6.8.7.7.6.6.6.7.4.6.6.5.5.5.5.4.5.4.4.4.4.3.4.2.4v2.3l-.4.3-.3.2-.4.3-.6.2h-.6l-.7.2h-3.6zm-15.2 2l-1 .4.5-.8h3.4l.6-.2h.5l.5-.2h.5l.5-.2h.5l.4-.2h.5l.5-.2.4-.2h.6l.4-.2.5-.2h.4l.4-.2h.5l.3-.2h.5l.4-.2h.5l.5-.2h2.6v1H431l-.4.2h-.9l-.4.3h-.8l-.4.2h-.5l-.4.3h-.6l-.5.2h-.5l-.5.3h-.5l-.5.2h-.5l-.5.2h-.5l-.6.2h-.6l-.6.2h-3l.5-.7zm-1 .4l-.3-.8h.8l-.4.8zm4 4l-.2.8h-.4v-.2h-.2l-.2-.2h-.2v-.2h-.2v-.2h-.2v-.2l-.2-.3-.2-.2-.3-.3-.2-.2v-.2h-.2v-.4l-.3-.2v-.3h-.3v-.4l-.3-.3v-.4l-.3-.4 1-.5v.5l.2.3.2.3v.4l.3.3.2.2v.2l.3.2v.2l.2.2v.2h.2v.3l.2.2v.2l.2.2h.2v.2h.4v.2h.4zm-.2.8zm20-2.5v1l-.7-.2h-4.7l-.6.2h-.7l-.6.2h-.7l-.6.2-.6.2h-.6l-.6.2h-.7l-.7.3-.6.2h-.6l-.6.2h-.6l-.6.2h-4.6l-.6-.2.3-1 .6.2h4.8l.6-.2h.6l.5-.2h.6l.7-.2.7-.2h.6l.6-.2.6-.2h.7l.5-.2h.6l.7-.2h.7l.6-.2h4.9zm-23-40l1 .3.3.3.5.7.6.8.8 1.2 1 1.2 1 1.3 1 1.5 1.3 1.5 1.3 1.7 1.4 1.8 1.4 1.8 1.5 1.8 1.5 2 1.5 1.8 1.4 2 1.4 2 1.3 1.7 1.3 2 1.2 1.7 1 1.7 1 1.6.8 1.5.6 1.4.4 1.3.3 1.2v2l-.6.7-.8.5H441v-1h2l.4-.3.3-.4V360l-.3-1.2-.4-1.2-.6-1.3-.8-1.5-1-1.6-1-1.7-1-1.8-1.3-1.8-1.4-2-1.4-2-1.4-1.8-1.5-2-1.4-1.8-1.5-1.8-1.4-1.8-1.3-1.8-1.3-1.6-1.2-1.6-1-1.5-1.2-1.3-1-1.2-.7-1-.6-1-.5-.7-.3-.4v-.6zm-12-3.7v-1l-.5.2.4-.6.3-.7.5-.6.5-.4.5-.3.6-.3.5-.2.5-.2h2.6l.6.2.6.2.5.3.6.2.6.3.4.4.5.2.4.4.4.4.5.5.4.4.3.4.3.4.3.5.2.5.2.5v.5l.2.5v1l-1-.3v-1l-.2-.4v-.4l-.3-.4-.2-.4-.3-.4-.3-.4-.5-.4-.3-.4-.5-.4-.4-.4-.5-.3-.4-.3-.5-.3h-.7l-.5-.3-.5-.2h-.5l-.6-.2h-2l-.4.3-.5.2-.4.3-.5.5-.4.4-.3.4-.3.6-.4.3zm.4-.3l-.2.2h-.2l.4-.2zm-.5-.2v.5-.5zm.4.2l-.2.2h-.2l.4-.2z"/>
+      <path fill="#21231e" d="M407 317.2l-1.3.4v-.6h.2v-.2h.8v.2h.2v.2zm7.6 10.6l-.8 1-.4-.4-.3-.4-.3-.3-.3-.3-.4-.3-.3-.2-.3-.4-.3-.3-.2-.2-.3-.4-.3-.3-.3-.2-.4-.4-.3-.3-.2-.2-.2-.4-.2-.3-.3-.3-.2-.3v-.4l-.4-.3-.2-.4-.2-.4-.2-.4-.2-.4v-.4l-.3-.3-.2-.4v-.3l-.3-.3v-.4l-.3-.4 1.2-.4v.7l.3.3v.3l.3.4v.3l.3.4v.3l.3.4.2.3.2.3.2.4v.3l.3.3.2.4.3.3.2.3.3.4.2.3.3.3.3.3.4.4.2.3.3.3.2.3.3.3.4.2.2.3.3.3.4.4.2.3.4.3zm-.8 1l.8-1v.2h.2v.7h-.4v.2h-.7zm-9.5-4.6c.8 0 1.3.7 1.2 1.5s-.8 1.3-1.5 1.2c-.8-.2-1.3-.8-1.2-1.6s.8-1.3 1.5-1.2zm-45.9 38.4h.2v-.2h.4v.2h.2v.2l.2.2v.4h-.2l-.8-.8zm-22.7 56l.2-1V416l.4-1.5.3-1.5.4-1.7.6-1.8.5-2 .7-2 .6-2 .6-2 .6-2.2.8-2.2.7-2.2 1-2 .7-2.3 1-2.3.7-2.2 1-2.2.8-2 1-2.2.8-2 1-2 .8-2 1-1.7.8-1.5 1-1.6.7-1.5 1-1.3.7-1.2.8-1 .8-.8.8-.6.7 1-.6.5-.7.8-.7 1-.8 1-1 1.3-.7 1.5-1 1.5-.7 1.7-1 1.7-.8 2-1 1.8-.8 2-1 2-.8 2.3-1 2-.7 2.3-1 2.3-.7 2.3-.8 2.2-.7 2.2-.8 2.2-.6 2-.6 2-.6 2.2-.6 2-.5 1.8-.4 1.8-.4 1.6-.5 1.6-.2 1.4-.2 1.3v1H336zm5.6 80.5l-.7-2-.7-2-.7-2.2-.6-2.2-.6-2.2-.4-2.4-.4-2.3-.5-2.4-.4-2.5-.3-2.4-.3-2.5-.3-2.7-.2-2.6-.3-2.6-.2-2.5-.2-2.6v-3l-.2-2.7v-18.5l.3-2.7v-2.5l.2-2.6v-2.7l.3-2.6.2-2.5.2-2.5h1.2l-.3 2.6-.2 2.5-.2 2.6-.2 2.6v2.6l-.2 2.6v2.6l-.2 2.7v18.8l.2 2.6v2.6l.3 2.6.3 2.6.3 2.6.3 2.5.2 2.5.3 2.5.4 2.4.3 2.5.5 2.3.5 2.3.5 2.3.6 2.2.6 2 .7 2.2.7 2-1 .4zm1-.4v.8h-.8v-.2l1-.6z"/>
+    </g>
+    <use width="1350" height="900" transform="matrix(-1 0 0 1 964.3 0)" xlink:href="#e"/>
+    <path fill="#21231e" d="M473 398.4h-.2v.5h-.2v.8l.2.7v1.6l.2.8.2.8v.7l.3.8v.8l.3.7.2.8.3.7.2.7.2.7.3.7.3.8.3.7.3.7.2.7.3.6.4.6.2.7.4.5.4.7.4.7.4.5.5.6.4.8.5.6.4.6.5.6.6.6.2.2h.8v-.2l.6-.6.5-.6.5-.6.4-.6.5-.7.5-.5.4-.6.3-.8.4-.6.3-.7.4-.8.4-.6.3-.7.4-.8.3-.7.3-.7.3-.7.3-.6.2-.7.3-.7.3-.7.2-.8v-.7l.3-.7.2-.7v-.7l.3-.8v-1.4l.2-.8v-2.1h-1v.4l-.2 1v1.4l-.2.7v.7l-.2.7-.2.7v.8l-.3.7-.2.7-.2.7v.6l-.3.7-.3.7-.2.7-.3.7-.4.6-.2.7-.4.7-.3.6-.3.7-.4.6-.4.7-.3.6-.4.6-.5.6-.4.6-.4.7-.4.7-.4.6-.5.6h-.2l-.5-.7-.4-.6-.4-.6-.4-.6-.4-.6-.4-.6-.4-.6-.4-.6-.3-.7-.4-.6-.4-.7-.3-.6-.3-.7-.4-.7-.2-.6-.3-.7-.2-.7-.2-.7-.2-.7-.2-.7-.2-.8-.2-.7-.2-.7v-.7l-.3-.6v-.8l-.2-.7v-2.3l-.2-.8v-.4h-.2v-.2h-.5z"/>
+    <path fill="#c6363c" d="M549.2 422v108.6a72 72 0 01-19.7 49.8 65 65 0 01-94.7.1 72.9 72.9 0 01-19.7-49.8V422h134.2z"/>
+    <use width="1350" height="900" transform="matrix(-1 0 0 1 964.3 -90)" xlink:href="#f"/>
+    <path fill="#fff" stroke="#21231e" d="M549.2 488.6v28h-53v83a63.8 63.8 0 01-14 1.5 59 59 0 01-14-1.5v-83h-53v-28h53V422h28v66.6h53z"/>
+    <use width="1350" height="900" transform="translate(0 -90)" xlink:href="#f"/>
+    <path id="f" fill="#fff" stroke="#21231e" d="M459 567.3V528c-8.4-2.3-29.3-10.6-30.3 7.6-.5 8.4 10.4 14 13.3 6.5 1.4-3.4 0-6-2-6.7-2.4-.8-4.6 1-4 3.6-8.8-4.7 8-14.6 15.5-1.7 2.2 3.7-3.7 7.6-3.7 10.4 0 2.7 5.8 7 3.7 10.3-7.7 12.8-24.3 3-15.5-1.6-.6 2.7 1.6 4.5 4 3.6 2-.8 3.4-3.3 2-6.8-3-7.5-13.8-2-13.3 6.5 1 18.2 22 10 30.4 7.6z"/>
+    <use width="1350" height="900" transform="matrix(-1 0 0 1 964.3 0)" xlink:href="#f"/>
+    <path fill="#21231e" d="M414 421v113.3l.2 1.7v2l.4 1.7.2 1.8.3 1.7.4 1.8.3 1.8.4 1.7.6 1.7.5 1.7.6 1.5.6 1.7.5 1.6.7 1.6.7 1.6.7 1.6.8 1.6.8 1.5.8 1.5 1 1.5.8 1.5 1 1.4.8 1.4 1 1.4 1 1.4 1 1.3 1 1.5 1.2 1.2 1 1.3 1.2 1.2 1.2 1.2 1.2 1.2 1.2 1 1.3 1.3 1 1 1.4 1 1.3 1 1.4 1 1.5 1 1.4 1 1.3.8 1.4.8 1.5.8 1.4.8 1.6.7 1.5.6 1.5.7 1.5.6 1.6.5 1.6.5 1.5.5 1.6.5 1.8.4 1.6.4 1.7.4 1.8.2 1.7.3 1.7.2h1.7l1.6.2h8.9l1.7-.3 1.8-.3 1.7-.3 1.7-.2 1.7-.4 1.5-.4 1.7-.4 1.6-.5 1.6-.5 1.6-.5 1.5-.6 1.6-.7 1.6-.7 1.6-.7 1.5-.8 1.4-.8 1.6-.8 1.4-1 1.5-.7 1.4-1 1.2-1 1.4-1 1.3-1 1.2-1 1.3-1 1.2-1.3 1.2-1 1-1.3 1.3-1.2 1.2-1.2 1-1.3 1.2-1.2 1-1.4 1-1.2 1-1.4 1-1.4 1-1.4 1-1.4.7-1.5 1-1.5.7-1.5.8-1.5.8-1.6.7-1.6.6-1.6.6-1.6.6-1.6.5-1.7.5-1.6.5-1.8.4-1.7.6-1.7.3-1.8.2-1.8.3-1.7.3-1.8v-.9l.3-2 .2-1.7V421H414zm2.3 2.2H548V536l-.3 1.6-.2 1.8-.2 1.7-.3 1.8-.3 1.7-.4 1.7-.3 1.7-.5 1.5-.4 1.7-.4 1.6-.5 1.6-.5 1.6-.6 1.5-.8 1.6-.7 1.6-.7 1.5-.7 1.6-.7 1.4-.8 1.5-.8 1.4-1 1.3-.8 1.4-1 1.3-1 1.3-1 1.3-1 1.3-1 1.2-1.2 1.2-1 1.2-1.2 1-1.2 1.3-1.2 1-1.2 1-1.2 1-1.3 1-1.2 1-1.4 1-1.4 1-1.3.8-1.4 1-1.5.7-1.4.8-1.3.7-1.5.8-1.5.6-1.4.7-1.5.7-1.6.5-1.5.6-1.5.5-1.6.4-1.6.4-1.6.5-1.6.3-1.6.3-1.7.4H489l-1.8.3h-1.7l-1.6.2h-3.6l-1.6-.2H477l-1.6-.3h-1.6l-1.7-.4-1.5-.2-1.6-.3-1.7-.4-1.6-.3-1.6-.4-1.4-.5-1.6-.6-1.5-.5-1.5-.6-1.5-.6-1.4-.6-1.4-.8-1.4-.7-1.4-.8-1.4-.8-1.4-1-1.3-.7-1.4-1-1.3-1-1.2-1-1.3-1-1.2-1-1.2-1-1-1-1.3-1.3-1-1-1.2-1.3-1-1.2-1-1.3-1.2-1.4-1-1.3-1-1.3-1-1.3-.8-1.4-.8-1.4-1-1.5-.7-1.5-.8-1.4-.7-1.5-.8-1.4-.6-1.5-.6-1.5-.6-1.5-.5-1.6-.6-1.6-.5-1.6-.5-1.7-.4-1.6-.4-1.8-.4-1.7-.3-1.7-.3-1.7-.2-1.6-.2-1.8-.2-1.7v-5.4z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ru.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ru.svg
new file mode 100644
index 0000000..f56fddb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ru.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ru" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h640v480H0z"/>
+    <path fill="#0039a6" d="M0 160h640v320H0z"/>
+    <path fill="#d52b1e" d="M0 320h640v160H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/rw.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/rw.svg
new file mode 100644
index 0000000..afed4e3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/rw.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-rw" viewBox="0 0 640 480">
+  <path fill="#20603d" d="M0 0h640v480H0z"/>
+  <path fill="#fad201" d="M0 0h640v360H0z"/>
+  <path fill="#00a1de" d="M0 0h640v240H0z"/>
+  <g transform="translate(511 125.4) scale(.66667)">
+    <g id="b">
+      <path id="a" fill="#e5be01" d="M116.1 0L35.7 4.7l76.4 25.4-78.8-16.3L100.6 58l-72-36.2L82 82.1 21.9 28.6l36.2 72-44.3-67.3L30 112 4.7 35.7 0 116.1-1-1z"/>
+      <use width="100%" height="100%" transform="scale(1 -1)" xlink:href="#a"/>
+    </g>
+    <use width="100%" height="100%" transform="scale(-1 1)" xlink:href="#b"/>
+    <circle r="34.3" fill="#e5be01" stroke="#00a1de" stroke-width="3.4"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sa.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sa.svg
new file mode 100644
index 0000000..c9e8cca
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sa.svg
@@ -0,0 +1,26 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sa" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="sa-a">
+      <path fill-opacity=".7" d="M-85.3 0h682.6v512H-85.3z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#sa-a)" transform="translate(80) scale(.9375)">
+    <path fill="#199d00" d="M-128 0h768v512h-768z"/>
+    <path fill="#fff" d="M65.5 145.1c-.8 12-2 33 8.3 35.2 12.3 1.2 5.5-20.8 10-24.8.8-2 2.3-2 2.4.5v18.7c0 6 4 7.8 7 9 3.2-.2 5.4 0 6.6 3l1.6 32.3s7.4 2.2 7.8-18.1c.3-12-2.4-21.9-.8-24.2 0-2.3 3-2.4 5-1.3 3.2 2.2 4.6 5 9.6 4 7.6-2.2 12.2-5.9 12.3-11.7a47 47 0 00-3.5-16.6c.4-1-1.4-3.7-1-4.7 1.3 2.2 3.4 2 3.8 0-1.3-4.2-3.3-8.3-6.5-10-2.7-2.4-6.7-2-8 3-.8 5.7 2 12.4 6.1 18 .9 2.1 2.1 5.7 1.6 8.9-2.2 1.3-4.4.7-6.3-1.2 0 0-6-4.5-6-5.6 1.6-10.2.3-11.4-.6-14.3-.6-3.9-2.5-5.2-4-7.8-1.5-1.6-3.5-1.6-4.5 0-2.7 4.6-1.4 14.5.5 19 1.4 4.1 3.5 6.7 2.5 6.7-.8 2.3-2.5 1.7-3.8-1a66.6 66.6 0 01-2.1-17.4c-.5-4.6-1.1-14.4-4.2-17-1.8-2.4-4.5-1.2-5.5 1a82.4 82.4 0 00.3 13.4c2 7.4 2.7 14 3.7 21.5.3 10.1-5.8 4.4-5.5-.7a45 45 0 00-.3-19.4c-1-2.6-2.1-3.2-4.6-2.8-1.9 0-6.8 5.3-8.2 14.3 0 0-1.2 4.6-1.7 8.7-.7 4.6-3.7 8-5.9-.6-1.8-6.3-3-21.6-6-18z"/>
+    <path fill="#fff" d="M99 194.2l-32 15.4c.3-7.3 15.1-20.4 25.3-20.5 6.5.1 4.9 2.5 6.6 5.1z"/>
+    <path fill="#fff" d="M93.3 204.2c-16.8 43.5 39.5 49.6 45.8 1.8.6-2 3-3.9 3.4-.7-1.3 43.3-43.6 46.2-50.8 32.6a41.9 41.9 0 01-2.5-14.6c-1-8.5-5.5-5.2-6.2 3.2-.7 4.7-.5 6-.5 10.5 2.2 34.2 56.7 19.5 65.6-8.7 4.7-15.6-.8-27.1 1.7-27.1 5.4 5.8 13 .8 14.7-1.2.7-1 2.5-1.7 3.7-.4 4.2 3 11.6 1.6 13.2-3.7.9-5.3 1.6-10.7 1.8-16.2-3.5 1-6 1.7-6.3 3.2l-.7 4.6c-.3 1.5-3.2 1.5-3.4-.4-1.3-6-6.7-6.7-10 2.5-2.1 1.8-6.1 2.2-6.5-.5.5-6.2-2-7-7-4.1l-4.8-36.2c2 0 4 1.5 5.9-.9-2-6.5-6.5-19.7-9-20.7-1.1-1.4-2.1-.5-3.7-.1-2.6.8-5 3-4.2 7.4 3 18.8 5 33.1 8.1 52 .5 2.1-1.3 5-3.7 4.7-4-2.7-5-8.2-12-8-5 0-10.6 5.5-11.3 10.7-.9 4.2-1.2 8.7 0 12.3 3.5 4.2 7.7 3.8 11.4 2.9 3-1.3 5.5-4.3 6.6-3.6.7.9.1 10.9-14.3 18.5-8.7 4-15.7 4.8-19.4-2.3-2.3-4.5.2-21.4-5.6-17.5z"/>
+    <path fill="#fff" d="M165 160c3.3-1.2 19.3-19.6 19.3-19.6l-2.4-2c-.9-.7-.8-1.5 0-2.2 4-2.4 2.7-7.4.7-9.8a9.7 9.7 0 00-8.7.1c-2.8 2.7-3.4 7-1.2 9.6 2.1 1 4.2 3.2 2.8 4.4-6.6 7-24.5 19.1-22.4 19.5.4.6 11.5.6 11.8 0zm-97 65c-6 9.6-6.5 23.9-3.2 28.2 1.8 2 4.7 2.9 6.8 2.2 3.8-1.6 5.5-9.3 4.6-12-1.3-2-2.3-2.3-3.6-.7-2.6 5.4-3.7 1.7-4-1.3a70 70 0 01.8-15.2c.7-4.2 0-3-1.4-1.2zm257.1-15.3c-5.8-12.6-13.9-25-16.4-29.7a557.6 557.6 0 00-24.8-36c-6.2-7.4 10.2 3.1-2-11.7l-8.9-7.5c-2-1.4-6.8-4-7.6.2-.4 3.8-.2 5.8.4 8.9.5 2 3.5 5.5 5 7.5a565 565 0 0153.8 86.5c2.6-1.3 2-16.1.5-18.2z"/>
+    <path fill="#fff" d="M299.6 251.5c-1.2 1.3 2.8 6.8 8 6.8 8.6-1 16.2-5.8 23.2-18.6a33 33 0 005.3-14.2 317 317 0 00-5.8-72.4c-.3-2 0-4.4.2-5 .6-.7 2.5 0 3.5-1.7 1.5-1.5-4-14-7-18.7-1-2.2-1.5-3.6-3.3.2a27 27 0 00-3 13.6c4.1 28.5 5.4 53.4 8 81.9.3 2.8-.1 6.8-2 8.4a80.2 80.2 0 01-27.1 19.7zm116.5-.1c-6.2 3.6-6.2 7.7-1.2 7.8 8.6-1 18.8-1.7 25.8-12.3a41 41 0 004.2-16 303 303 0 00-4.7-71.4c-.2-2-1.1-6.7-.8-7.3.6-1.4 3.4.1 4.4-1.5 1.4-1.5-7.3-12.7-10.4-17.5-1-2.2-1.4-3.6-3.3.2a22.3 22.3 0 00-1.8 13.6c4.6 31 8 54.2 8.7 81.6-.4 2.6-.5 4-1.7 7.3-2.7 3.4-5.7 7.8-8.5 9.9-2.8 2-8.8 4-10.7 5.6z"/>
+    <path fill="#fff" d="M420.7 223.7c0-7.3.1-13.5-.1-19a34 34 0 00-3-13.5c-1.8-4.1-.7-7.4-1.6-11.8-.8-4.4-.6-11-1.8-16.1-.4-2-1.4-8.5-1.1-9.2.5-1.4 2.4 0 3.4-1.6 1.4-1.5-5-18-8.2-22.7-1.1-2.1-3.3-1.4-5.8 2-2.5 2.3-1.6 7.4-.6 12.3 6.1 32.3 10.8 61.6 9.8 92.3-.4 2.6 9-7.8 9-12.7zm-45.7-40c-3.9-.2-12-7.7-14.4-12a8 8 0 01.4-6.5c1.5-1 3.7-2 5.4-1 0 0 1.7 2.4 1.4 2.7 2 1 3 .5 3.2-.4.1-1.5-.6-2.4-.6-4 .9-4.6 6-5.3 8-2.4 1.4 1.8 2 5.5 2.1 8 0 1.3-2-.2-3.3 0-1.1.4-1.4 1.8-1.5 3-.2 3.3-.6 8.6-.7 12.5zm-71.8 48c1-9.8-.4-27.3-.5-33.1A477 477 0 00299 154c-1.2-8.4 3.4.9 2.8-4-1.5-8.3-6.1-14-11.6-21.5-1.7-2.5-1.7-3-4.4.6-3 6.7-.4 11.4.4 16.7 3.9 17.2 6.2 33 7.3 48.7a393.4 393.4 0 01.4 49c3 .1 7.6-4.7 9.3-11.8z"/>
+    <path fill="#fff" d="M434 216c-6.9-11.6-17.2-24-20-28.7a658 658 0 00-29.2-37.8c-8.5-9 4-1.5-1.6-8.5-4.7-5.1-6-6.8-10.1-9.9-2-1.3-3.2-3.8-4 .5a83 83 0 00-.2 11.2c0 1.7 1.8 5 3.4 7 20.7 25.5 43.4 51.5 61.6 84.2 2.6-1.3 1.7-16 0-18z"/>
+    <path fill="#1ba400" d="M122.6 194.7c-.5.9-1.6 2-1.2 3.1.7 1 1.4 1.3 2.6 1.3 1.1 0 2.7.3 3-.3.6-.7 1-2 .6-3.3-1.2-3-4.4-1.8-5-.8z"/>
+    <path fill="#fff" d="M354.2 362.5c9.2.4 15.2.5 23.3 1.4l9.6-1c10.6-1 11 15.1 11 15.1 0 9.5-3.7 10-8.4 11-2.7.4-4-1.6-5.5-3.6a14 14 0 01-7 .4c-3.9-.2-7.7-.2-11.5-.5-4-.3-6.2.5-10.3.1-.8 1.3-2 3.1-4.4 2.6-2-.3-4.5-6-3.8-10.5 1.5-3.2 1-2.1 1-3.5-37.6-1-75.5-2.7-112.3-2.2-28.8.1-57.2 1.3-85.7 2.5-15.2-.2-26.8-2.6-34.8-14.3.8 0 38.8 2.1 49.9 1.4 20.5-.2 39.3-1.9 60.2-2.5 41.2.7 82.1.7 123.3 3.6-4-2.7-4-9 2-10.6.5-.4.8 3.1 1.7 3 4.9-.3 2.7 6.3 1.7 7.6zM188.6 135.3c-6.2 17.8 3.6 37.4 10.4 35.5 5 2 8-7.4 10-17.6 1.5-2.9 2.5-3.2 3.2-1.7-.2 13.6 1 16.7 4.5 20.8 7.8 6 14.3.8 14.8.3l6-6.1c1.4-1.5 3.2-1.5 5.1-.3 1.9 1.7 1.6 4.6 5.6 6.6 3.4 1.4 10.5.4 12.2-2.5 2.2-3.9 2.8-5.2 3.8-6.6 1.6-2.1 4.3-1.2 4.3-.5-.3 1.2-1.9 2.3-.8 4.5 2 1.4 2.4.5 3.5.2 4-2 7-10.6 7-10.6.1-3.2-1.7-3-2.9-2.2l-3.1 2.1c-2 .3-5.7 1.6-7.6-1.3-1.9-3.4-1.9-8.3-3.3-11.8 0-.2-2.6-5.5-.2-5.8 1.2.2 3.7.9 4.1-1.2 1.2-2.1-2.6-8-5.3-11-2.3-2.5-5.5-2.8-8.6-.2-2.2 2-1.9 4.2-2.3 6.3a9.8 9.8 0 002 8.7c2.2 4.2 6.1 9.7 4.8 17.5 0 0-2.3 3.6-6.3 3.1-1.7-.3-4.4-1-5.8-11.8-1.1-8 .2-19.4-3.2-24.7-1.3-3.3-2.2-6.4-5.2-.9-.8 2.2-4.3 5.5-1.8 12.2a36 36 0 012 19c-1.5 2.2-1.8 2.9-3.7 5-2.6 3-5.5 2.2-7.7 1.1-2-1.3-3.6-2-4.6-6.5.2-7 .6-18.5-.7-20.9-1.9-3.8-5-2.4-6.3-1.2a47.7 47.7 0 00-11.5 23.5c-1.8 5.8-3.7 4.1-5 1.8-3.2-3-3.5-26.7-7.4-22.8z"/>
+    <path fill="#fff" d="M207.4 174.1c2.9-2 1.6-3.4 5.8.8a72 72 0 019.2 31.3c-.2 2.6 1.6 4.2 2.5 3.6.4-6 15.1-14.4 28.6-15.6 2-.5 1-4.4 1.3-6.4-.8-7.5 4.2-14.3 11.2-14.8 9.6 1.4 12.8 6.5 13 14.2-1.1 15-16.7 17.5-25.4 18.7-1.3.5-1.9 1.1 0 1.8l36.6.2 1.9 1c.2 1-.6.2-2 2.6a29.5 29.5 0 00-3.7 11.5c-10.9 3.6-22.2 5-33.6 6.5-4 2-6 4.7-5.2 7.7 1.4 3.3 10.2 6.7 10.2 6.8 1.7 1 3.6 3.5-.5 8.6-17.8-.8-31.7-8.4-36.5-19.1-1.4-1.1-3 0-4 1.4-7 9-13.8 17-25.7 21.4-7 1.8-14.3-1.1-17.7-5.7-2.3-2.7-2.2-5.6-3-6.2-3.9 1.7-36.9 15.7-32.7 9.1 8-8.5 22-14.9 34.2-23.3.9-2.9 2.5-12.5 7.3-15.6.3 0-.7 5.6-.6 8 0 2-.2 2.7.2 2.2.9-.5 15.7-12.2 17-15.8 1.4-2 .3-7.2.3-7.4-2.8-7.2-6.7-7.8-8.1-11.4-1.3-4.7-.7-10.1 2-11.7 2.4-2.1 5.2-1.9 7.9.5 3 2.7 5.6 8 6.4 11.9-.5 1.5-4-1-5-.3a16 16 0 013.7 7.8c2 8.2 1.4 11.4-.6 16.7-6.6 13.9-15 18-22.4 23.2-.2 0-.3 3.5 2.4 5.4 1 1 4.9 1.5 9.4 0a54.5 54.5 0 0022.3-23.3 51 51 0 00-2.4-22.2c-2.9-6.7-6.3-16.2-6.3-16.4-.1-4.2.2-5.6 2-7.7zm-95.8-38.6c4.2 2 12.2 1.1 11.8-5.7l-.2-3.1c-.8-2-3.2-1.5-3.7.5-.2.7.3 1.8-.3 2.1-.4.4-1.7.2-1.7-1.7 0-.6-.4-1.2-.7-1.6-.2-.2-.4-.2-.9-.2-.6 0-.6.1-.9.6-.1.5-.3 1-.3 1.6 0 .7-.4.9-.8 1-.6 0-.5 0-1-.2-.2-.3-.5-.4-.5-1l-.3-1.6c-.2-.3-.6-.5-1-.6-2.3 0-2.5 2.7-2.3 3.7-.2.2-.3 4.9 2.8 6.2z"/>
+    <path fill="#fff" d="M235.1 187.7c4.2 2 14.3.9 11.8-5.6l-.2-3.2c-.9-2-3.2-1.5-3.7.6-.2.6.3 1.7-.4 2-.3.4-1.7.2-1.6-1.6 0-.6-.4-1.3-.7-1.7-.3-.1-.4-.2-1-.2-.5 0-.5.2-.8.7-.2.5-.3 1-.3 1.6-.1.6-.4.8-.9 1-.5 0-.4 0-.8-.3-.3-.3-.6-.4-.6-.9l-.3-1.6c-.2-.3-.6-.5-1-.6-2.3 0-2.5 2.6-2.4 3.6-.1.2-.2 5 3 6.2zm72-21.6c4.2 2 12.1 1.1 11.8-5.6l-.2-3.2c-.9-2-3.2-1.5-3.7.5-.2.7.3 1.8-.4 2.2-.3.3-1.7.1-1.6-1.8 0-.6-.4-1.2-.7-1.6-.3-.2-.4-.2-1-.2-.5 0-.5.2-.8.7l-.3 1.5c-.1.7-.4 1-.9 1s-.4 0-.8-.2c-.3-.3-.6-.4-.6-.9s-.1-1.3-.3-1.7c-.2-.3-.6-.4-1-.5-2.3 0-2.5 2.6-2.4 3.6-.1.2-.2 4.9 3 6.2zm37.3 54.3c-7.3 8.3-4.1 22-2.4 25 2.4 4.8 4.3 7.9 9 10.3 4.3 3.1 7.7 1.2 9.5-1 4.3-4.5 4.4-16 6.4-18.2 1.4-4.2 5-3.5 6.7-1.6a16.5 16.5 0 006.2 5.3c4 3.5 8.8 4.2 13.6 1 3.2-1.9 5.3-4.2 7.2-8.9 2-5.6 1-31.6.5-47l-4.2-21.5c0-.2-.5-10.2-1-12.5 0-1-.3-1.3.7-1.2 1.1 1 1.2 1 2 1.3 1 .2 2-1.7 1.3-3.3l-10-18.6c-.8-.8-1.9-1.6-3.2.2a7.3 7.3 0 00-2.4 5.5c.3 4.4 1 8.9 1.3 13.3l4 22.6c1.3 16 1.6 29.2 2.9 45.3-.2 6.8-2.3 12.7-4.3 13.6 0 0-3 1.7-5-.2-1.5-.6-7.4-9.9-7.4-9.9-3-2.7-5-2-7.1 0-6 5.8-8.6 16.4-12.7 23.8-1 1.7-4 3-7.2-.1-8.2-11.3-3.4-27.3-4.4-23.2zM309 126.7c3.8 1.5 6.4 9.2 5.6 13-.8 4.5-2.8 9.5-4.2 8.9-1.6-.6 1-4.6-.5-8.8-.8-2.8-6-7.8-5.4-9.2-1-3.1 2.2-4.5 4.5-4z"/>
+    <path fill="#fff" d="M356.6 225c.7-9.2-.6-14.8-.8-20.2s-6.1-46.6-7.3-50.6c-1.5-7.8 5.7-1 4.9-5.6-2.5-5.6-8.6-13.9-10.5-18.8-1.2-2-.7-4-3.3-.5a42.3 42.3 0 00-2.3 19.2c6.2 32.3 12.5 59.1 11.5 89.8 3 0 6.3-6.7 7.8-13.3zm64.4-85.3c3.5 1.7 5.5 11.3 5.1 14-.7 5-2.5 10.4-3.8 9.7-1.5-.6.3-7.4-.4-9.5-.8-3-5.5-8.4-5-10-1-3.4 2-4.8 4.1-4.2zm-255.7 67.9c3.3 1.3 5.3 8.3 5 10.3-.8 3.7-2.5 7.7-3.8 7.1-1.3-.4.3-5.4-.3-7-.3-3.7-4.9-5.7-4.8-7.3-.8-3 2-3.5 4-3.1z"/>
+    <path fill="#1b9d00" d="M244.9 218.2c4.2.2 6.3 3.6 2.4 5-4 1.3-7.7 2.4-7.8 8 1.5 8-2 5.2-4 4.2-2.4-1.8-9.2-6-10.2-15-.1-2.1 1.6-4 4.3-4 4 1.1 10 1.2 15.3 1.8z"/>
+    <path fill="#fff" d="M77.4 124.4c4.8 1.4 5.1 8.6 4.8 10.7-.7 3.8-2.4 7.9-3.6 7.4-1.4-.5 0-5.7-.7-7.3-.7-2.2-4.8-6.4-4.4-7.6-.9-2.5 2-3.7 3.9-3.2zm95.9 33.6c-3.8 2-5.2 8-2.9 11.6 2.2 3 5.6 1.9 6 1.9 3.7.4 5.9-6.9 5.9-6.9s.1-2-4.2 1.9c-1.9.3-2-.4-2.5-1.4a9 9 0 01.5-5.7c.7-1.8-.7-2.6-2.8-1.4zm28-36.4c-2 1.3-5.7 5.2-5.8 9.6-.1 2.5-.6 2.5 1 4 1.3 1.8 2.4 1.7 4.8.4a5.1 5.1 0 002.3-3.4c.6-2.8-3 1.4-3.4-1.8-.8-3 1.5-4.2 3.7-7 0-2 0-3.3-2.7-1.8zm22.4 4a59.5 59.5 0 00-1.6 11.1c-.6 2.8 3 4 4.5.4 2.4-6.5 2.4-9.3 2.6-12-.7-4.3-3.6-4.2-5.5.5zm142 72.3c.4-.5 20-14.4 20-14.4 2-.7 1.5 7.2.6 7.1a77.8 77.8 0 01-20.7 14.3c-1 .7-1.9-5.3 0-7zm17.7-.2c3.5 1.7 4.9 11.8 4.5 14.5 0 5.4-3.3 9.6-4.7 9-1.4-.7.2-6.7-.5-8.8-.8-3-3.7-8.5-3.2-10.1-1-3.4 1.8-5.2 4-4.6zm-116 43.4a26 26 0 015.6-4.9c2-1 3.8.8 3.7.7.3 2-1.2 3.7-.7 6.3.4 1 .7 2.2 2.6 1.8 3.1-2.5 6-2.7 9-2.8 2.5.1 2.6 4.2 1 4.2-5.7 1.2-8.2 2.8-12.3 4.3-2 1.2-3.6-.3-3.6-.4s-1.1-1.1-.4-3.7c.2-2-.6-3.2-2.4-3-1.2.8-2.4 1.2-3-.3-.3-1-.4-1.6.5-2.2zm136.6 5.4c.8 1 1.4 2-.1 3.8l-3.7 3.2c-.6 1-1 2.8 1 3.3 3.6 1 12-4.5 12-4.6 1.4-1 1-3 .8-3-.8-.9-2.6-.3-3.8-.5-.6 0-2.5-.2-1.6-2a11.4 11.4 0 001.6-2.9c.5-1.2 0-2-2-2.7-2.1-.4-3-.2-5.3 0-1.2.2-1.6.8-1.9 2.3.1 2.3 1.5 2.2 3 3z"/>
+    <path fill="#259f00" d="M268.1 189.7c-.5 1-2.3 1-4 0s-2.7-2.6-2.1-3.5 2.3-.9 4 0 2.6 2.6 2.1 3.5zm-89-53.6c-1 .3-2.4-.6-3-2s-.3-2.6.7-2.9 2.3.7 3 2 .3 2.7-.8 3z"/>
+    <path fill="#209000" d="M355.2 375c9.4.4 18.2 0 27.5.5 1.7 1.5.5 5-.6 4.8l-7.8-.3c-.1-3-7.7-2.5-7.5.1-4.1.5-7.8-.1-12-.3-1.2-1.5-1-4.2.4-4.8z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sb.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sb.svg
new file mode 100644
index 0000000..b8e1f8e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sb.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sb" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="sb-a">
+      <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#sb-a)" transform="scale(.9375)">
+    <path fill="#0000d6" d="M0 507.2L987.4 0H0v507.2z"/>
+    <path fill="#006000" d="M1024 0L27.2 512H1024V0z"/>
+    <path fill="#fc0" d="M1024 0h-54.9L0 485.4V512h54.9L1024 27.6V0z"/>
+    <path fill="#fff" d="M71.4 9.1l11.8 34.5h38.5L90.6 64.7l11.9 34.4L71.4 78 40.3 99.2l11.9-34.4-31.1-21.3h38.4zm191.1 0l11.9 34.5h38.5l-31.2 21.2 12 34.4L262.4 78l-31 21.3 11.9-34.4-31.2-21.3h38.5zm0 144.5l11.9 34.5h38.5l-31.2 21.2 12 34.4-31.2-21.3-31 21.3 11.9-34.4-31.2-21.3h38.5zm-95-71.4l11.9 34.4h38.4l-31 21.3 11.8 34.4-31-21.3-31.2 21.3 12-34.4-31.2-21.3h38.5zm-96.1 71.4l11.8 34.5h38.5l-31.1 21.2 11.9 34.4-31.1-21.3-31.1 21.3 12-34.4L21 188h38.4z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sc.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sc.svg
new file mode 100644
index 0000000..2286e14
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sc.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sc" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="sc-a">
+      <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#sc-a)" transform="scale(.9375)">
+    <path fill="red" d="M0 0h992.1v512H0z"/>
+    <path fill="#090" d="M0 512l992.1-170.7V512H0z"/>
+    <path fill="#fff" d="M0 512l992.1-341.3v170.6L0 512z"/>
+    <path fill="#009" d="M0 512V0h330.7L0 512z"/>
+    <path fill="#ff0" d="M0 512L330.7 0h330.7L0 512z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sd.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sd.svg
new file mode 100644
index 0000000..9981494
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sd.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sd" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="sd-a">
+      <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#sd-a)" transform="scale(.9375)">
+    <path d="M0 341.3h1024V512H0z"/>
+    <path fill="#fff" d="M0 170.6h1024v170.7H0z"/>
+    <path fill="red" d="M0 0h1024.8v170.7H0z"/>
+    <path fill="#009a00" d="M0 0v512l341.3-256L0 0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/se.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/se.svg
new file mode 100644
index 0000000..e9977d7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/se.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-se" viewBox="0 0 640 480">
+  <path fill="#066aa7" d="M0 0h640v480H0z"/>
+  <path fill="#fecc00" d="M0 192h640v96H0z"/>
+  <path fill="#fecc00" d="M176 0h96v480h-96z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sg.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sg.svg
new file mode 100644
index 0000000..8931660
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sg.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sg" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="sg-a">
+      <path fill-opacity=".7" d="M0 0h640v480H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#sg-a)">
+    <path fill="#fff" d="M-20 0h720v480H-20z"/>
+    <path fill="#df0000" d="M-20 0h720v240H-20z"/>
+    <path fill="#fff" d="M146 40.2a84.4 84.4 0 00.8 165.2 86 86 0 01-106.6-59 86 86 0 0159-106c16-4.6 30.8-4.7 46.9-.2z"/>
+    <path fill="#fff" d="M133 110l4.9 15-13-9.2-12.8 9.4 4.7-15.2-12.8-9.3 15.9-.2 5-15 5 15h15.8zm17.5 52l5 15.1-13-9.2-12.9 9.3 4.8-15.1-12.8-9.4 15.9-.1 4.9-15.1 5 15h16zm58.5-.4l4.9 15.2-13-9.3-12.8 9.3 4.7-15.1-12.8-9.3 15.9-.2 5-15 5 15h15.8zm17.4-51.6l4.9 15.1-13-9.2-12.8 9.3 4.8-15.1-12.9-9.4 16-.1 4.8-15.1 5 15h16zm-46.3-34.3l5 15.2-13-9.3-12.9 9.4 4.8-15.2-12.8-9.4 15.8-.1 5-15.1 5 15h16z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sh.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sh.svg
new file mode 100644
index 0000000..a768813
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sh.svg
@@ -0,0 +1,74 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sh" viewBox="0 0 640 480">
+  <path fill="#006" d="M640 480V0H0v480h640z"/>
+  <path fill="#fff" d="M0 73.3h76L0 26.8V0h43.5l106.4 64.8V0h59.9v64.8L316 0h44v26.8l-76.4 46.5H360v73.4h-76.4l76.4 46.6V220h-44l-106.4-64.7V220H150v-64.7L43.4 220H0v-26.7l76-46.6H0V73.3z"/>
+  <path fill="#ce1126" d="M331.7 0L211.5 73.4h28.8L360 0h-28.3zM360 220l-119.8-73.3H269l90.9 55.9V220zM120.4 73.4L0 0v17.5l91.4 55.9h29zm-.3 73.3L0 220h28.7L149 146.7h-29z"/>
+  <path fill="#ce1126" d="M0 88.6h162.6V0h35.2v88.6H360v43H197.8V220h-35.2v-88.5H0v-43z"/>
+  <path fill="#8fc5ff" stroke="#fff" stroke-width="1.1" d="M399.7 640.8c0 16.3-2.6 33.9-23.8 42.3-21.1-8.4-23.7-26-23.8-42.3h47.6z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)"/>
+  <path fill="#366cc9" stroke="#000" stroke-width="1.1" d="M375.9 683a34.3 34.3 0 0018.8-16h-2c-.6-.1-20.3-2-22.7-3-2-.7-9.8.7-13.4 2a34 34 0 0019.3 17z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)"/>
+  <path fill="#5d3100" stroke="#000" stroke-width=".1" d="M361.1 673h1.2c.3 0 .3 0 .4-.3s.4-.2.6-.1.6 0 .8-.2c.2-.2.2-.2.4 0s.3.1.5 0c.1 0 .5-.2.6-.5s.4-.4.5-.2.3.2.5.2.2.1.2.4c0 .2 0 .3.5-.1.4.4.5.2.5-.2s0-2-.2-2.1-.3-.8-.4-1.3c0-1 0-1-1-1.5 0-.3-.2-.4-1-.4.1-.1 0-.4-.2-.5s-.2-.2 0-.6c.2 0 .6 0 .7-.3.2-.2.8-.2 1.2 0s.8.2 1.5 0l1.2-.6c.5-.3.6-.4.6-.8 0-1-.3-2-.5-2.5-.3-.5-.3-1-.7-1.9-.4-.8-.4-1-.8-1.5-.2-.2-.3-.3-.3-.6a1.5 1.5 0 00-.5-1c-.8-.7-1-3-1.4-4.7-.2-1 0-3.3-.4-3.7-.7-.5-1-.4-1.5-.6-.4-.5-.5-1.4-.9-2.3-.5.1-.8.6-1.1.8s-.4.2-.4.7c0 .4-.3 1-.7 1.8s-1.3.5-2 1.6c-1.4-1.7-1.4-2.2-1.5-2.7 0-.5-.3-.6-1.1-1.3v-1.5c-.7-.5-1.1-.4-1.4 0-.3.3-.5.8-1 1-.2.4-1 1.2-1.6 2.3.6 9 2.6 18 8.7 25.2z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)"/>
+  <path fill="#ff0" stroke="#fff" stroke-width="1.1" d="M399.7 640.8c0-6.2-.3-12.2-.2-17.4a63.6 63.6 0 00-23.6-4.3c-5.3 0-15.7.8-23.6 4.3.2 5.2-.2 11.2-.2 17.4h47.6z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)"/>
+  <path fill="#cf6200" d="M394.6 297.9c1.2 1.9 3.3 5 3.5 6.8.8-1.7 1.5-2.4 1.6-3.5s1.5-3 1-4.2-.8-2 .4-1.2c1.3.9 1 2.3.8 4.4-.8 5.7-3.1 6.8-3.5 10.7 3.4 8 .9 11 4.6 19 .6.3 2.1-.3 2.6-.2 2-1.4 3.5-1 6.3-.3 2.8.5 4.3 2.5 4.3 4.3s0 2.2.6 3.2 1.7 2.7 1.5 3.9c-.3 1.2.2 1.9.6 2.4s-.2 2-.5 2.7-.2 1.9 1.2 3.6c1.4 1.8 4.6 9.1 4.6 13.4 0 4.4.3 6.4 2 7.2 1.8.8 2.3 1.5 2.1 3.3s.8 11.6 1 13.1.9 1.2 1.6 2c.7.8 1.1 1.7 3.5 1.7s4.6-.3 6 0c2.2 2.9 3.5 6.8 4 9.3s.4 5.8 1.2 5.8 1.6 0 1.4-3-.5-3.4-1.5-5c-1.1-1.5-1.7-2.2-1.1-3.1s.7-2.4.5-3.6-.6-3 1.4-.6l3.1 3.7c.6.7.8 2.4.7 3.8-.1 1.4.1 2 1 1.2.8-.7 1.8.5 1.3 2s.2 2.5 1.6 3 2 .8 2.3 1.8 1.5 1.5 1.5-.6c0-2-.8-6.5-1.4-7.9-.6-1.4-1-4.4-1.2-6.2s-.4-2.2-1.2-2.5-1.6-1-1.7-1.8-.8-1.1-1.3-1.1-1-.4-1.3-1-.6-.6-1.2-.7-1.5.3-1.8-.6-.7-2.3-1.3-3-1-1-1.1-3.7c0-2.6-.1-3-1-3.9s-2.2-3.4-2.8-4.4c-.5-1-1.1-2.1-1.1.1s0 3.4 1.4 4.2c1.4.8 1.7.8 1.1 2s0 2 .3 2.8.7 1.6 0 2.4c-.7.8-1.4.6-1.3-.7a7.3 7.3 0 00-1-3.8c-.5-1-1-1.8-1.7-1.2s-1.3-.1-.8-.6.3-.8 0-1.1-.5-.7.1-1.4.6-1 .2-2.7c-.3-1.6-2.9-9.8-4-11.7s-1-3.2.4-1.4 2.8 3.5 3 5c0 1.6.4 2.5.9 3s.8.4 1-.9 1.2-.8-.4-3.2c-1.7-2.5-4.7-6.6-5.9-14s-1.6-12.1-2.8-14.1c-1.1-2-1.5-2.5-1.6-4.3s0-3.8-.8-5.2c-.8-1.4-1.4-1.6-1.5.5-.1 2 0 6.8.7 7.6s.2 2.9 0 4-1.9 2.4 2 4.7c1.5 1 1.2 2.2 1 3-.2.9-.5.8-1.3-.5s-1.6-2.4-2.4-3-1-1.2-.8-2.9.4-2.8 0-3.3c-.5-.6-.7-.2-1 .8-.2.9-.4 3.5-1 4.2s-.6.2-1-1.3.2-3.9 1-6.5 1.3-5.5.6-9c-.7-3.5-.4-4.6-3-7.5-2.7-2.9-5.8-5.7-7-9.3-1.3-3.6-1.6-6.8-3-8.4a19.4 19.4 0 00-4.6-4.3v-5.4c0-1.3-.6-2-2.1-1.8s-2.5 1.5-3.4 3.2c-1 1.8-1.6 1-3 4s-3 4.5-3 7.8z"/>
+  <path fill="#cf6200" d="M403 332c1 .7 1.9 1 3.3.3s3-2.7 5-.7c1.8 2 2.8 5.3 2.8 7.8 0 2.6 0 7.4 3 10 2.9 2.7 4.4 5.5 4.5 9a61 61 0 001.7 10.3c.4 1.4 1.2 3 2.1 4s1.7 3.6 1.8 6.4c.1 2.8-.4 4.7 0 6.1s0 2.6-1 2-1.3-1.1-2-2.3-1.2-1-.6.8 2.3 3.4 3.8 3.4 2 .2 3 1.2c.9.9 1 1.4 2.6 1.4s1.9 0 3.4.4 1.5.3 2.3 0 1.7.5 2.2 2 2 5.7 2 6.9 0 2.3.8 3.5.6 2.3-.3 1.6-1-.5-1.6-.3-1.2-.3-2.1-.9c-1-.5-.4-.4-1.3-1.8s-1.5-1.9-1.5-.8-.2 2.3-.9 1.7-1-.6-1.6 0-.8 1-1.5-.1-1.5-1.2-2.2-1.4-.7-.2-1-1.3c-.4-1-1.5-1.3-2.4-1.3s-1.4-.4-1.5-1.1c-.1-.7-.7-1.2-1.2-1.5s-.2-1.2-.3-2-.8-.5-1.3-.7-.8-.1-.8-1.3-.5-1.5-.8-2.3c-.4-.9 0-1.7.2-2.6.2-1 .1-1.5-.6-2.3-.7-.8-.1-1.7-2-3.3s-2.8-.2-3.4-4c-.5-4-1.7-11.9-2.8-13.1s-1.7-2.3-2.8-2.6-1.7-.1-1.8-2.3c-.1-2.2-.8-5-2.2-6.4l-2.7-2.5c-.7-.5-1-1.6 0-3.6s.6-4.7.5-6c-.2-1.2-.5-2.9-.3-4.3s.1-3.1-.2-4-.8-1.2-.2-2zm28.1-33a25.4 25.4 0 01-5.4 5.2c-2.2 1.6-5 2.8-3.4 5.4 1.5 2.7 2.8 3 3 5 .4 2 .9 3.8 2.4 4.2 1.6.5 2.2.2 2.2 3.4s0 4.6 1.4 5.8 1.2 2.5 1.8 5.4c.7 3 .7 9.4 2.5 13.7s6.1 12.6 5.6 14.3-1 3 .8 5c1.9 2 3.1 5 3.3 6.7.1 1.7.4 2.3 2.3 1.7a6.8 6.8 0 003.4-2c.6-.8 1.9-.6 3.6.3 1.7 1 4.4 1.8 6 1 1.5-1 2.2-2.4 3.6-2.4 2.2-1.6 3-4.8 3.5-5.8.4-.9.1-.9-.8-1.8s-.5-2.5-.6-4c-.2-1.6-.8-4-2.7-7.4-1.8-3.4-3-7.6-4.2-8.7-1.2-1-1.8-3.7-2-5-.1-1.2-1.5-2.3-2.5-3.2-1-1-1.8-2.4-3-7.8-1-5.4-1.8-9.3-1.8-10.3s-.2-1-1.1-1.4-1.4-1.8-1-2.6c.2-.8-.4-1.6-.7-2.5s0-2.6.6-3.6.5-3.5-.1-5.7-1.3-4-3.8-4.4c-2.4-.3-3-1-3.8-3-1-2-2-5.5-2.2-6.3-.3-.8-.8-1-2.7.6-1.8 1.6-2.5 2-2.5 5 0 1.9.4 2.5 1 3.6.6 1 .8 1.4 1.2 4.3s3.1 7.6-.3 10.3c-3.4 2.6-3 3.3-2.8 5.1.2 1.9-1 3.1-1.5.5-.7-2.7 0-4.2 1.8-5.5 1.9-1.2 3.6-2.8 2.4-4.5-1.3-1.7-1.8-5.7-2-7.6s-.4-2.5-1.5-1z"/>
+  <path fill="#00b800" d="M403.4 338.5c0 1.3.2 2.7.3 3.8.1 1.3.5 4-.5 6-.9 2-.7 3 0 3.6h.1c2-.6 2.2-2.7 1.7-3.7a3.7 3.7 0 01.2-3.5c.6-1.1.6-1.7.1-2.5-.6-.8-.6-.8 0-3 .6-1.9-.8-1.9-1.9-.7zm20 30.2c-.4-1.4-1.7-6.8-1.8-10.3-.1-3.5-1.7-6.3-4.6-9-2.2-2-2.7-5.4-2.9-8-1.7-1-2.4-.6-2.2 1.4.1 2 2.2 3 2 6.1-.4 3-.4 2.3 1 3.7s2 3 1.3 3.5c-.8.6-.8 1.7.2 2.1 1.1.4 1.2 1.6 1 2.7-.1 1 1 1.3 1.5 2 .7.8.7 2.7.1 3.8-.6 1-.7 2.8.4 1.9 1-1 1.6-.1 2.4 1.4.7 1.2 1.4.8 2.2.5a9.8 9.8 0 01-.7-1.8zm15 27.1c-.6 1.4-1.4 1-2.1.3s-1.5-.7-1.2-2 .2-1.5-.7-2.2l-.3-.3h-1c-1.7 0-1.8-.4-2.8-1.4a7.8 7.8 0 00-.6-.5v.9c0 1.3 0 1-1.2 1.4s-1-1.3-1.3-2.3a3.9 3.9 0 00-.2-.7c-1.4-.2-3-1.7-3.4-3.3-.6-1.8 0-2 .7-.8s.8 1.5 1.8 2.2 1.4-.5 1-1.9a6 6 0 010-1.5c-.3-.5-.6-.8-1-1-2-.9-1.4-1-1.3-2.6.2-1.5-.2-1.5-1.4-.7-1.1.8-1.2-.1-1.2-2.5s-1.6-2.3-1.9-.7c-.4 1.7-1 .6-1.6-1.7s-1.7-3-1.8-.7c0 1.9-.6 2.3-1.8 1.3l.5 3.6c.6 3.8 1.5 2.4 3.4 4s1.3 2.5 2 3.3c.7.9.8 1.4.6 2.4-.3.9-.6 1.7-.3 2.5.4.9.9 1.2.9 2.4s.3 1 .8 1.3l1 .1.8-1.2c1.4-1.4 3.5.1 4.2 1.9s1.5 2.2 2.6.8.7-1.2 1.9.1 1.6 1 1.6 1 1.2-.4 2 .3 1.3.6 2.8-1.6c1.5-2.3-.7-1.6-1.4-.2zm4.2-64c.5-3.4.2-6.8 1.6-8 1.4-1.3 3-3.8 3 1.5-.2 5.3-.4 5-1.5 6.2-1 1.3-2 1.6-1 3.6 1.2 2 1.3 2.2 1.2 5.3-.2 3.1-.2 4.4 1 6 1.3 1.5 1.6 1.6 2 3.3.2 1.7 1.3 4 2.7 5.3s3 4.8 3.1 7.3c.2 2.5 2.4 3.1 4.4 4.9 2 1.7-.5 2.9-2 2.1-1.6-.7-1 0-1.9 1.1-1 1.1-1.2 1.3-2-.6s-3.4-3.1-4.7-3.6-2.3-2.5-3.4-4.5a6 6 0 00-4.5-3.1c.5 1.3.7 2.3.6 2.8-.5 1.7-1 3 .8 5 1.9 2 3.1 5 3.3 6.7.1 1.7.4 2.3 2.3 1.7a8.3 8.3 0 003.4-2c.6-.8 1.9-.7 3.6.3 1.7.9 4.3 1.8 5.9.9 1.5-1 2.3-2.3 3.7-2.3 2.2-1.6 3-4.9 3.4-5.8.5-1 .2-1-.7-1.9s-.5-2.5-.7-4c-.1-1.6-.7-3.9-2.6-7.3s-3-7.6-4.2-8.7c-1.2-1.1-1.9-3.7-2-5-.2-1.2-1.6-2.3-2.5-3.3-1-.9-1.9-2.3-3-7.7-.8-4.3-1.5-7.6-1.7-9.3-1.1 1.8-1.9 2.3-2.3 1-.5-1.4-1-2.1-1.7-1.2-.6 1-.8-.8-.8-1.6s-.1-.9-1-.9 0-1.2-.4-3.6c-.3-2.3-.8-2.6-1 .2-.4 2.8-2 4.5-1.3 5.1.6.6.3 1.9-.3 3.7-.6 1.9-.3 3 .1 4.2s-.3 3.6-.6 5.6c-.3 2 1.3 4 1.7.7zM414.2 304c-1.1.1-2 1.1-1.3 4.7.5 2.2-1.2 1.7-1.8.6-.6-1.1-1.1-3.4-2.4-5.4-1.2-2-.6 1.3-.7 3.2-.2 1.9 1 1.9 2.1 3.4 1.1 1.6.2 2.2-1 2.2s-.7 2.5-.4 4.2-.3 2-1.2.6c-1-1.4-.3-3.5-.2-6.2.2-2.6.4-2-1.4-2.6-1.7-.7-1.4-1-.7-2.5.6-1.6 1.2-2.4.4-3.1-.7-.8-.6-1.3.7-1.4 1.2-.2.7-1.1 1.8-1.4 1.1-.3 1.6.1 1.7-1.9.2-1.7.7-2.7 2-2.2.8 2.6 1.7 6.6 2.4 7.8zm15.7 18.4c0 3.2 0 4.5 1.4 5.7s1.2 2.5 1.8 5.4c.7 3 .7 9.4 2.5 13.7l2.1 4.7a8.8 8.8 0 002.3-3c.4-1-1-3.2-2-5-1.1-2 .1-2.6 1.2-5 1.1-2.2-.1-2.4-1.9-3-1.7-.6-1.7-2.2-2.6-4.7s-.8-3.6-.2-5 .2-2.5-1-2.8c-1.3-.3-1-1.2-.5-2.8.5-1.5.8-1.8-1.1-1.4-1.4.4-1.8.7-2.2 1.2l.2 2z"/>
+  <path fill="#5d3100" d="M447.8 328.8c-.2 1.8-.2 2.8-.7 3.4-.4.6-.1 1.5.4 2.5s.7 2.1.3 3.9.3 3 1.2 3.5 1.4 0 1.1 2.2a6.7 6.7 0 002 5.5c1.1.9 1.9 2.4 1.7 3.4-.1.9.8 1.8 1.9 2.3 1.1.5 1 .6 1 1.2s.4.7 1.6 1 2.2 1 3.6 2.8 3.4 2.6 3.1.8 0-3.2-1.8-4c-1.9-1-3.3-5.5-4-8.6-.9-3.2-3.3-7.3-4.7-8.1-.2-2.2.1-3.3-1.3-4.4a4.5 4.5 0 01-1.9-3.6c0-1-.7-2.4-1.4-2.8-.6-.3-.9-1-.9-2s-1-.8-1.2 1z"/>
+  <path fill="#00d860" d="M439.5 412.2a45 45 0 0011.2-3.2c1.9 1.3 5.1 3 6.5 3-2.6.6-4.4.3-5-.2.3.8 1.2 2.1 1.8 2.2-2.6 0-5.5-.7-6.4-1.6-2.3 1-6 1.2-8-.2zm5 3.5c1 .3 6 1 6.6 1-1.6 1.5-.2 2.8 2.5 2.6-1.3.2-2.8.7-1.8.9a28 28 0 0010.2-2c-2.2 2.8-13 5.5-17.5-2.5zm4.5 7c1.3-.6 4.6-.4 6.2.3-1.7.7-5.2.7-6.2-.2z"/>
+  <path d="M454 422.7c2.4-.4 9.1 1.2 11.5-.3-.8 2.2-5 2.5-6.5 2-1.5-.4-2.9-1-3.9-1 .6-.3-.3-.3-1.1-.7z"/>
+  <path fill="#00d860" d="M456.4 426a35 35 0 0010.3-1.3c2 .7 6.2 1.8 7.2 1.7-2 1.2-5.8.5-7 0a12.5 12.5 0 01-10.5-.4z"/>
+  <path fill="#00d860" d="M459.5 427c2.6.6 4.8.2 7.4-.6.8.3 2.6.7 4.4.7 1.2.6 2.7 1.5 4.3 1.7a19 19 0 01-8.6-.7 22 22 0 00-9.1 1.7c0-.8.5-2 1.6-2.7z"/>
+  <path d="M456.4 414c2 .6 9.4.3 13-1.5 1.6-.7 2.5.5.8 1-6 2.2-10.9 3-14.3 1.1-1.4-.7-1.6-1.4.5-.7z"/>
+  <path fill="#00d860" d="M492.2 404c-9 4.2-14.9 5.5-27.4 1.6-1.1-.3-2 0-.7.8 1.3.9 8.2 2.7 9.8 2.9s1 .8 0 1.1-1.2 1 .1.5 8.9-.7 12 .9c1.3.7 1.6.5 1.5 0s.6-.9 1.6-1 1.6-.4.8-.7-.9-.5-.3-.8.7-.6-.2-.8-1.5-.4-.7-.8c.9-.4 2-.7 3-.8.2-.6-.2-2.3.5-2.9z"/>
+  <path d="M477.3 405c5.1.4 14.6-2 19.6-6.8 1.7 1 4.2 2.2 5.5 2.4s2.4 1.4.4 1.4-4.7-.8-6-1.4a33.8 33.8 0 01-19.4 5c-1.4 0-1.7-.6-.1-.5z"/>
+  <path fill="#00d860" d="M462.1 377c1.8 1.3 4.9 3.3 8.9 3a19.5 19.5 0 006.5 3.3c-2.7 1-5.6 2-6.4 2.9-1.2-1.2-2.8-1-3.2-1.6-1.2 1-1 1.5-.2 2s6.6 1.4 8 1 2 .8.7 1.3c-3.1 1-9.2 0-11.3-3.4-2.2-3.3-4-4.6-9.7-1.5-.6-1.7-.6-2-1.7-2s-3.2-1.5-1.6-1.5 6.2-.6 10-3.4z"/>
+  <path fill="#00d860" d="M463.5 384.6c-1 .2-3.7 1.7-4.7 1.8-1 .2-2.7 1.6-1 1.6 1.9 0 4.2-2 5.5-2s1.4-1.7.2-1.4zm5.7 5.9c-.7.1-3.7.8-4.5.8s-1.7.1-1.6.7.3 1-1 .8-2.2.4-2.5.7-.5.7.7.8 1.9.3 3.3-.4 2.7-1.6 4.2-1.7c1.5 0 3-2 1.4-1.7z"/>
+  <path d="M465 394c1.3 1 7.6 3 9.8 2.9s1.9.9.2 1.3a14 14 0 01-11-3.2c-1.4-1.1 0-1.6.9-1z"/>
+  <path fill="#00d860" d="M494.8 397.2c-4.8 1.5-9.7 1-11.7.4s-3.8-.6-2.4.7c1.3 1.3 5.6 2.1 8 1.5-8.6 2-10.9 1.8-13 1.5-2.2-.4-6.2-.3-8-.2-1.2.2-3 0-3.8-.5s-1-1.3 1.3-1c2.3.1 2.6-.3.6-.6s-4.7.5-2 2.2 8.5-.1 12.3 1a21.4 21.4 0 0019.1-4.3c.4-.3 1-1.2-.4-.7zm-23.7-7.1c.2.6.2 1.2 0 1.6s-.1 1 .6.4 1.2-1.3 2-.9 2.7.4 3.6.2c.8 0 1.1-.3-.2-.8-1.2-.5-2.5-.7-3.2-.6s-1.6-.1-2.2-.4-.7 0-.6.5z"/>
+  <path fill="#00d860" d="M483.6 392.3c-1 0-2.8-.6-3.7-1s-2.3-.4-1.3 1 5.3 2 6.8 1.4 1-1.4 2.4-.4c1.5.9 3.1 1.5 4.2 1.5s1.5 0 .3-.7-1.8-.8-2-1.4-.2-1 1-.6 2.3 1 3.2.5 2.5-1.5 4-1.5l.3-.9c-2.1-.1-3.5.5-4 .7s-1.7.4-2.8.2-2.5-.3-2.9-.6-.3-.5.6-.7 1.2-.8 0-.6-4.8.2-6.6-.4c-1.8-.6-2.6-.7-3.3-.4-.8.3-.7 1.1.4 1.2s3.7.3 4.5 1.1.8.9-.2.5-2.8-.2-1 1.1z"/>
+  <path fill="#00d860" d="M498.8 390.2l-.4.9c2.2 0 7.4.5 9.1 1.5 1.7-1.3 1.4-1.7 2.5-1.4s2.7.6 3.3.3 1.1-.3 1.8-.2 2.2-.2 3.1-.7 2.7-1.2 3.7-1.2 2.3-.3.4-.6-4.8.3-5.8.7c-1 .3-4 .6-5.7.6s-4.1.8-6.1.3-4.8-.2-6-.2z"/>
+  <path d="M525.8 389.2c-3.5 2.6-7.7 3.1-12.7 3.5-1.5.1-1 .5.2.6 5.3.6 11.3-1.4 13.3-3.5.6-.6.5-1.6-.8-.6z"/>
+  <path fill="#00d860" d="M502 395.2a54 54 0 018.4 2c1.3-.2 1.7-.5 1.4-1s-.4-1 2-.8h8.6c.9-.3 2.7-1.7 3.5-1.7-2.1 0-10.9.5-12 .4s-1.7 0-2.4.4-1 .6-2 .2-2.4-.8-3.3-.2c-.8.5-2.7 0-4.2.7z"/>
+  <path fill="#00d860" d="M522.4 395.4c.8-.3 2.6-1.7 3.5-1.8 1.5-.1 3.2.5 4 .7s1.7-.1 1.2-.7-.1-1.8 2.3-1.5c2.4.3 3.6.7 6 .5s3.3 1.5 7.7-.3c-.3 1.8.5 1.9 1.3 1.6s1.8-.3 3.2.8 9.9 1.1 11.9.8c2-.4 3 .7 1.5 1.2-1.5.4-1.9 1.1-1.5 1.6.3.5.7 1-1.2.8-1.9-.2-2.2.4-3.1 1s-1.2 1-3.8.5c-2.5-.4-3-.1-4.4.1s-1.8.3-3.2-.2-4.4-1-6.3-.3-3.2 1.1-4.9.7-1.7-.3-.7-1.3 1.3-1 3.3-1.2c2-.2 3.5-.8 2.1-1.6s-1.8-.7-3.7.2-2.8 1.5-5 .4c-2-1.2-3-1-4.5-.6s-3.7-.5-5.7-1.4zm7 3.5c-2.7.4-3.4-1.3-6.2-1-.9.2-2.5 1.3-.3 1.1 2.1-.1 4.5 1 6.6.9s1.2-1.1 0-1zm-3 2c1.3-.5 4.2.5 5.5.3s2.4.5 1 1-4.3-.8-5.7-.4-2.8-.2-.9-.9zm-28 7.6c2 0 9-.3 11.7-6 .2-.5.4-.7 1.2-.1s4.1 2.5 10.1 3c1.7.1 3.5 1 .1.8s-8.7-1.2-10.5-2.3c-3 4.8-8.5 5.3-12.5 5.2-2.5 0-1.9-.7 0-.6z"/>
+  <path fill="#00d860" d="M513.5 400.5c-1 1.3-4.2 3.5-5.6 3.7-1.5 0-5.9-.3-7-.7s-2.4-.3-.9.8 5.5 1.8 7 1.5c1.7-.4 3.5-.9 4.7-.1s3.5 2.2 4.8 1.9c1.4-.3 4.1-.3 5 .1.9.4 2.4 1.7.1 1s-4.1-.2-5.2-.6c1.2 1.6 3.8 4.2 6 4.2.6 0 1 1-.1 1.5 1 .5 3.6 1 5-.3-.4.5-.2.8.4 1s1.3.7.2.9-3.4.4-4.1 0c2.2 1.5 8.1 3.9 14.1 2.7 1.2-.2 1.8-.7 0-.6-4 0-4.2 0-4.9-.4-.7-.4-.5-.8.6-1.1 1-.3 3.9-.8 5-.8s2.4-.4 0-.4-5.3 0-6.5-.4-2-1-.8-1.8 2.5-.6 3-1.3c-3.8 0-8.5-2.1-5.9-4 .6-.4.4-.5-.5-.6s-4-1-5.2-1.6-.4-1.3.6-1.5c-2.3.4-6.8-.8-9.8-3zm34.1 0c-2 1.5-6 2.2-7.7 2.2s-2 .6-.6.7 2.8.4 3.4.2 1-.2 1.8.2c.9.4 2.7.6 4.4.1s4.3-.8 5.4-.7 2.3.1.1-.5-5.8-.2-6.7 0-3.3 0-2-.3 2.4-1 3-1.6l-1-.3zm-1 4.5a13.5 13.5 0 01-7.1 2.7c2.4.9 4.4 3.4 6 3.3-.8.5-1.7 1.2-2.7 1.3 1.6.4 4.1 0 6.2-1.2 3.5 1 8 .3 9.6-1-2.3 0-5-.8-6.3-1.9 1.1 0 2.2-.6 2.7-1.3-2.6.5-7-.8-8.4-2z"/>
+  <path fill="#00d860" d="M542.8 412.3c1-.1 2-.8 2.7-1.3a22 22 0 01-12.8-2.9c-2.5-2.2-2.5-.5-.8 1s4.9 4 11 3.2zm6.2 5.3c-1 .6-6 1-7.7.6s-2.3-.2-2 .5.7 1.2-.7 1-3.7.2-4.7.5-2.2 1.2-.1.9 4-.8 5.6-.4 7.1.5 8.2 0 .4-.4-.1-.4-.8-.3 0-.7 1.3-1.3 1.5-2zm-48.5-6.7c-2.1.9-9.1 2.8-11 2.9-2.3 1-4.2 1.6-5.3 1.6.8.7 4 1.4 5.2 1-.7.8-2.3 1.6-2.9 2 1.9-.3 4 .2 5 .3a14 14 0 01-7.6 1.6c.6.8 1.4 1.6 2.5 1.6a13 13 0 01-6.3.2c.6 1.1 1.1 1.8 2 2-1.9.2-4.2.5-6.2-.6 1.5 2 4.9 2.6 9.9 2 5-.5 9.2-2.7 10.4-3.7-2.1.3-5 .4-6.3.1a37 37 0 009.9-4.3 5.6 5.6 0 01-3.2-1 31 31 0 009.1-1 6.7 6.7 0 01-4-2.6 39.2 39.2 0 0019.5.6c1-.3 1-1.5-.8-1.3-3.2.2-9.5-.7-11.2-1.5a11.6 11.6 0 004.7 2c-3 .9-7.2 1.5-13.4-2z"/>
+  <path fill="#00d860" d="M486.5 418.4c.6-.4 2.2-1.2 2.9-2-1.3.4-4.4-.3-5.2-1 1.1 0 3-.5 5.3-1.6-4.2-.1-7-.1-8.6-1s-4.3-.5-5.4-.3-.7 2 3.8 1.5a15.4 15.4 0 01-8.8 1.3c.5 1.5.8 3 .4 3.9 2.4 1.4 8.8 3.1 12 2.9-2.8-1-4.3-2.2-2-2.5s3.6-.7 5.6-1.2z"/>
+  <path d="M479.3 426c5.5-.5 13-.6 19-5.7 1.5-1.2 2.5-.8 1 .5a33 33 0 01-18.4 6.8c-3 0-4.4-1.4-1.6-1.7z"/>
+  <path fill="#00d860" d="M521 416.7c-1.3.5-5.2 1.2-6.4 1-1.2-.2-2.9-.2-3.8.3s-1 1 .3 1l3.7.3a6.2 6.2 0 00-2 1.7c2-.4 5.4.4 6.4 1a3 3 0 01-2.3-.5c3.1 3.4 12.5 3.4 14 2.8-.7.5-1.4 1-2 1.2 2.6.5 5.6.4 8.6-1.3-1 .1-4-.1-4.8-.2a5.6 5.6 0 012.3-1.3c-1.2-.3-4.8-.2-5.7.3a4 4 0 011.7-1.9c-4.6 0-10.2 0-12.2-1.1 3.2.3 6.8-1.6 8.3-1.6-2.5 0-5.3-.6-6-1.7zm-11.6 2.5c-2.3.5-5.7 1.5-6.7 2s-1.9.8.1.8a125.5 125.5 0 01.7-.2c-.8 0-1.7 0-.2-.5s3.5-1.5 6-2zm-4.6 5.5c.8 0 4.3 0 5.7-1.2 1.5 1 4.3 2.6 6 2.6 1.9 0 1.7.5.1.7a12 12 0 01-6.2-2c-2.1.8-3.8.2-5.7-.1zm-27 15.7c3.6 1.4 8.3 2.4 11.8 1.3 2 1.7 6.1 1.8 8.3 1.4 2.2-.5 4.2-.7 6.7 0 2.4.9 7.4 1 8.8 2.1-1.3 0-4 0-4.7.2-.6.2-.3.6 1 1.2-4-.2-10.9 1.5-13 3.3a7.3 7.3 0 016.8-4.3c-2-.7-8.8-.8-11 .6a6.7 6.7 0 01-1.4-2.4c-3.6 2-10.6-.9-13.4-3.4zm-9.3-6.6a16 16 0 008.5-3.2c.8.7 4 1.4 7.4.3-.7.5-.8 1.5-.5 2a26.2 26.2 0 00-8 2c-1.5.7-5.8 1.3-7.2.5-1.4-.7-1.4-1.4-.2-1.6z"/>
+  <path fill="#00d860" d="M483.9 433a26.2 26.2 0 00-8 2l.5 2a51 51 0 0117.5-1.8c-1.8.1-5.1 2-7 2.1 4.6-.3 9 .6 10.2 1 1.1.2 1.4 1 .5 2s-1.3.8.6 1c1.8 0 5.7-.3 7.4-2-.7-.7-2.5-.4-3-1a8 8 0 003.1-1.9 29 29 0 01-5.3-.3c-1-.3-1.8-.6-.5-1.3a7.6 7.6 0 002.2-1.7c-2.2.6-5.8 1.2-8.8-1.2 1.1.3 3.8.1 4.7-.3a6 6 0 00-2.6-.9c2.4-1.2 7-2.2 13 .1 2.8-.2 6 0 8.2.5 1-1 2.9-3.2 4-3.7-7 .5-19.3-.7-19-4.4-2.3 3-7.4 4.6-9.6 4.1-.2 1 .7 2.4 1.5 3-2.3.5-6.3.9-8.2.5 1.1 1 3 2 4.2 1.9-2.4 0-3.7.5-5.6.3z"/>
+  <path fill="#00d860" d="M498.1 441.2c2 0 5.8-.2 7.5-1.9-.7-.7-2.5-.4-3-1a8 8 0 003.1-1.9c5-.4 9.3-.2 11.4-.8 2.1-.6 7.5-.3 8.5-.6-4.7.8-5.6 1.2-5.8 2s1.5 1.3 2.6 1.3c-2 0-4.7 2.1-5 3-2.8-1.6-4 .3-4.4 1-1.1-.5-5-.4-7 1.3-2.5-.8-4.2-1.2-6.8-.8 1.6-.3 1.3-1.4-1-1.6zm22.4-13.7c1.6 0 5 .2 6.3 0a7.5 7.5 0 00-2.1 1.5c4-.5 9.4-.8 11-.5-2-.3-4 1-5 1.6s-.4 1 1 1.2 3.1 1.2.7.9-7.3-.4-8.5-.2-1.8-.4 0-.7 2.8-.8 3.6-1.2c-1.4.3-4.1.3-5 0s-1.3-.6-.3-.9.3-.5-.7-.4-3.5 1.1-5 2.5c1.6-1.6 3-3 4-3.7z"/>
+  <path d="M502.8 430.2a10 10 0 007.8 3.5c.7 0 2.2 1 .3 1.1-4.9.2-7.3-1-9.5-4.1-.4-.7.4-1.6 1.4-.5zm29.2-40.8c2.6 1.2 7.7 2.3 11.8 2.1.7 0 2 .7.3.9a21 21 0 01-12.4-2.3c-1-.6-.7-1.2.3-.7z"/>
+  <path fill="#00d860" d="M534.6 389.4c4-.1 7 0 8.1 1 2.3-.6 6.4-1 7.3-.8s2-.3-.2-.8-7.1-.7-8.7-.4c-1.6.3-6.5.5-8 .3.6 0 1 .2 1.5.7zm15.4 1.5c1.8-1 7.2 0 8.8-.7-1.1 1.4 3.8 1.5 8 .4-1.6 1-5.1 1.2-6.6 1.9s-2.4.1-3.5-.4-4.2-1.6-6.7-1.2z"/>
+  <path fill="#00d860" d="M566.8 390.6c-4.2 1-9.1 1-8-.4-1.6.7-7-.3-8.8.7 2-1.1 3.4-.2 4.8-2.6.9.2 2.9.3 3.6-.6 1.2.3 3.4.8 4 1.4.6.7 1.6-.2.8-1.1 2-.7.7.8 5.2-.3 1-.3 3.2-.7 4-.7a27.6 27.6 0 01-5.6 3.6z"/>
+  <path fill="#ff0" stroke="#000" stroke-width=".1" d="M373.4 664.2l-.2-22.2c0-1-.5-.8-.5 0v22l.7.2zm7.2-23.4l.8 23.4-.1.2h-.5l-.5-23.6h.3zm6.8 19.8l-.4-19c0-.6-.5-.5-.5.1l.4 18.9h.5z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)"/>
+  <path fill="#fff" stroke="#000" stroke-width=".1" d="M376.6 644.7l-7-.1c-.3 1.4 1.4 1.3 2 1 .8.5 1.4.5 1.8 0 .6.5 1.4.4 1.7 0 .8.7 1.7 0 1.5-1zm.5 3.4h-7c-1.3 1.2.3 1.8 1.7 1 .2.4 1 .6 1.6.3.6.4 1.4.1 1.8-.3.7.3 1.6.4 2-1zm-.2 4.5h-6.8c-.1 1.1 1.3 1 1.8.7.5.8 1.7.6 2.1.1.7.5 1.3.4 1.6 0 .7.6 1.4-.2 1.3-.8zm.4 4.4l-7.7-.1c-.4 1.3.8 1.5 1.3 1.2.2.7 1.2.5 1.5 0 .4.3.9.1 1.1-.2.1.7 1 .8 1.7.2 1.4 1 2.7-.2 2-1.1zm6.7-1.8h-6.3c.3 1.2.9 1.5 1.9.8.8.8 2 .5 2.3.1 1.4 1.1 2.1-.2 2.1-1zm-.6-4.4l-6.2-.2c.1 1.6 1.6 1.5 2.4.9.5.7 1.5.5 2 0 .7.8 2 .3 1.8-.7zm.8-4.9h-6.6c0 1.1 1.5 1.7 2.6.7.3 1.3 1.5.9 2 .4.8 1 2.5-.2 2-1zm-.4-3.3l-6 .1c0 1 1.4 1.4 1.9.6.3.5 1.3.4 1.6 0 .4.7 1 .2 1.2 0 .7.5 1.4.2 1.3-.7zm6.9 2.2l-7.2-.1c0 .7.7 1 1.2.7 0 .8 1 1 1.7.4.4.7 1.7.8 2.2 0 1 .9 2.2.2 2-1zm-.1 5.9h-7c0 1 1.1 1.3 1.8.8.1.8 1 .9 1.5.4.7.7 1.7.8 2.3 0 .8.3 1.5-.4 1.4-1.2zm-.4 5.3h-5.6c0 1 1.2 1 1.7.5.6.7 1.4.7 1.9.2.7.6 1.9.4 2-.7z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)"/>
+  <path stroke="#000" stroke-width=".1" d="M381.3 664.4c-3 0-6.1 0-8.2-.2s-2.7-.6-4.2-1.5l-5.6-3.4c-.5-.2-1 .1-.3.5l5.6 3.7c1.5 1 2.5 1.9 3.4 3 1.2 1.3 2 1.3 2.6 1.1s1.4-.5 2.3-.3c.8.2 2 .3 2.6.2.5.5 1.8.4 2.5.2s1.2-.2 1.7-.1h1.7c.5 0 1.8-.3 2.7-.2 1 .2 1.9 0 2.5 0a5 5 0 012-.1c.6-.4.8-.9 1-1.4.6-.1.8-.2.9-.5l.6-1.6h.2v-.6l-.4-.6.2-1 .5-.2-.2-1-8.8.2a2 2 0 00-.6 1.1l-2.6.4c-.3.1-.6.1-.9.5l-1.2 1.8z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)"/>
+  <path stroke="#000" stroke-width=".1" d="M391.8 660.5l1.3-4.9c.2-.5-.3-.6-.5 0l-1.3 4.9h.5z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)"/>
+  <path fill="#fff" stroke="#000" stroke-width=".1" d="M396.9 655c-1.1.5-1.7.8-2.2.6-.5-.2-1.1-.3-1.5-.1a.5.5 0 010 .1 493.3 493.3 0 01-1.1 3.8c.8.3 2.2.3 2.5 0 .4-.4 1.3-.3 1.8-.3.3-.4.4-.9.3-1.1s0-.7 0-1 .4-1.4.2-2z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)"/>
+  <path fill="none" stroke="#000" stroke-width=".1" d="M371.7 645.6a53.2 53.2 0 01-8 14m2 1.2a54.5 54.5 0 0011.4-12.6m-7 4.3c-.3 2.7-1.1 7.5-1.5 10m2.6-4c-1 1-2.3 2.6-3.4 3.5m12.7-8.9c-.8.8-1.7 1.8-2.6 2m3.1-1.8a7 7 0 002.7 1.9m-3.2-6.2a8.5 8.5 0 01-3 1.7m3.4-1.6c.6.6 1.3 1.3 2.2 1.7m-5.4-4.9a7 7 0 002.7-1.5m.3 0c.7.7 2 1.4 2.7 1.6m-5.5-3.3a4 4 0 002.4-1.4m.3-.2c.7.6 2 1.4 2.7 1.5m3.2.8c-.4.5-1.5 1.3-2.2 1.3m2.7-1.3c.3.5 1.1 1.3 1.6 1.3m-4.8 6a7.2 7.2 0 002.8-1.9m.5.1a5.6 5.6 0 001.9 1.8m-4.1 5.2c.4 0 1.5-.6 1.8-1.3m.6-.3a7 7 0 002 1.7m-18.7.9c1.3-.4 3.8-2 5.1-3.5m-2.4 1.9c1 .7 2.3 1.5 3.2 1.7m-6.2-4.5a8 8 0 002.4-1.5m.5-.1c.3.4 2.4 1.7 3.3 1.7m-3.8-5.9a9.8 9.8 0 01-2.5 1.4m3-1.4c.7.5 2.2 1.4 3.1 1.4m-3.6-5.4c-.6.6-1.6 1.6-2.4 1.9m2.9-1.8c.4.7 1.6 1.7 2.4 1.8m8 2.6c1.9 3.3 5.3 7.4 8.7 9.6m-14.1-13.3c2.8 4 8.2 12.7 13.4 15.9m1-3.4a18.4 18.4 0 01-4.9 4.6m4.5-3.5c-1.7-2.8-2.6-6.3-4-11m-14 12.4l2 6m-2.4-6.1l1.9 6m-2.4-6.3l1.8 6.2m-2-6.1l1.4 6.1m0-.2h1.7m-.2-.6h-1.6m1.4-.5h-1.6m1.4-.5H374m1.3-.6H374m-.1-.5h1.3m-1.4-.4h1.3m-1.4-.5h1.2m-1.3-.4h1.1m-1.2-.5h1m-1.1-.4h1m-1.1-.3h1m-1-.4h.9m-2.6 0l-1.2 5m1.5-5l-1 5.2m1.3-5.4l-.8 5.5m1.2-5.6l-.6 5.8m.7-.4h-2m2-.5h-2.3m2.3-.6h-2.1m2-.5h-1.9m2-.5h-1.9m1.9-.6H371m1.7-.5H371m1.6-.5h-1.5m1.5-.5h-1.3m1.3-.5h-1.2m1.2-.3h-1.1m1 5.5v-5.9m6.5-2l-4 8.1m4.3-8.2l-3.4 8.3m3.6-8.4l-2.7 8.4m3-8.2l-2.2 8.2m.1-.3h-2.5m2.7-.8h-2.4m2.5-.6h-2m2.4-.6h-2m2.1-.6h-1.9m2.1-.6h-1.8m2-.7h-1.6m1.7-.5h-1.5m1.7-.6h-1.4m1.5-.4H378m1.4-.4H378m1.3-.4h-1m1-.3h-.9m1-.4h-.8m1-.4h-.8m.8-.3h-.7m3.4-.1l1.7 5.6m-1.4-5.5l2.1 5.4m-1.8-5.4l2.5 5.3m.6-.5l-2.8-4.9m2.8 5h-2m1.8-.8h-2m1.7-.6h-1.9m1.5-.7h-1.7m1.3-.6h-1.5m1.1-.7H383m1-.7h-1.2m.8-.6h-1m3.2.1L384 662m2.3-5.4l-1.6 5.3m.7-.1l1.2-5m.3.2l-1 4.7m-1.7-.3h1.7m-1.5-.6h1.7m-1.5-.7h1.6m-1.3-.6h1.5m-1.3-.7h1.4m-1.2-.6h1.3m-1-.7h1.2m-1-.6h1m.9.1l.8 3.6m-.5-3.8l1.1 3.7m-.7-3.7l1.2 3.7m-.7-3.5l1.3 3.5m-.1-.3h-1.7m1.5-.5h-1.6m1.4-.5h-1.5m1.3-.6H388m1.2-.5h-1.4m1.2-.5h-1.3m1.1-.5h-1.2" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)"/>
+  <path fill="#00b800" d="M479.6 380.3c3.6-2.3 9.8-1.9 13 .5 3.7-2.1 10.5-1.5 13.6 1.3 4.8-3.3 8.9-3.8 13.5-.6a12 12 0 0113.6.2c4.2-2 8.8-3.6 12.9.7a10.7 10.7 0 00-13 .8c-4-4-11.1-2.5-13.5.3a8.8 8.8 0 00-13.3.2c-4.2-3.5-10.4-3.6-13.8-1a15 15 0 00-13-2.4z"/>
+  <path fill="#cf6200" d="M543.3 375.3c-18.5 3.2-59 1-67.8-1.3-3-.7-2.2-1.8.4-1.2 10.2 2.3 32 2.3 44 1.7 2.3-3 6-8.3 7.1-9.8s1.6-1.6 4-2l10-1.7v1.4c-.2.3-.5.7-.8.8 0 2.4.5 8.2 1 10.3l1.3-.3c.8-.2 1.6 1.9.8 2.1z"/>
+  <path fill="#cf6200" d="M573.7 376.2h2.5c.7 0 1.8-.6 2.2-1.7l2.5-7.3-1.9-2.8 1-6.1 2.4-1c.1-.4-.1-1.9-.6-2.3l-36.2 1.2c-1.1 0-1.6 0-2 1.4a27 27 0 009.2 26.6c.6.5 1.4 0 .4-.8a29.8 29.8 0 01-5-6.5l6-.1c.4 2 1.9 6 2.2 6.8s1 .8.6-.3c-.8-2.4-1.2-5.2-1.5-6.6h6l.5 6c0 .8.7.8.7-.1v-6l5.5-.2-.5 6c-.1 1 .4 1.4.6 0l.8-6 3.8-.2c-.1 1.3-1.3 5-1.6 6s.2 1 .6.1a35 35 0 001.8-6z"/>
+  <path d="M547.2 375.3c-.6-1.3-2.6-5.9-2.8-9.2l8-.1c.3 2.5 1 7.9 1.5 9.1l-6.7.2zm6.6-9.4c.2 2 1.2 8.5 1.4 9.2l6.4-.1-.4-9.3-7.4.2zm-9-8.1a38 38 0 00-.3 6.8l7.7-.2-.6-6.8-6.8.2zm8.3-.2c0 1.6.4 5.6.5 6.8l7.6-.2-.4-6.9-7.7.3zm9.2-.3l.3 6.9c1.8 0 5.4 0 6.5-.2.1-1.5.3-5.9.2-7l-7 .3zm8.3-.3l-.2 7 7.1-.3c.3-1.5 1-5.4 1-7l-7.9.3zm7.2 8.3l-7.5.2-.7 9.2 7.2-.2a61.6 61.6 0 002.6-7c-.5-1-1-1.4-1.6-2.2zm-15.2.4l.2 9.2 5.5-.2.7-9.2-6.4.2zm-31-1.8l-3 .5a224.8 224.8 0 01-7.2 10.1l10.6-.3-.3-10.3zm1.4-.3l.4 10.5 6.4-.5-1-11-5.8 1z"/>
+  <path stroke="#000" stroke-width=".1" d="M377.3 657h-7.7v-.2l7.7.1zm6-6.2c.1 0 .1 0 0 0l-6-.1c-.1 0-.1 0 0 0h6zm-6.4 1.7c.1 0 .1.1 0 .1h-6.8c-.1 0 0-.1 0-.1h6.8zm.2-4.4c.1 0 .1.1 0 .1H370c-.1 0-.1-.1 0-.1h7.1zm-.5-3.5c.1 0 .1.1 0 .1h-6.9c-.1 0 0-.2 0-.2l7 .1z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)"/>
+  <path fill="#fff" stroke="#000" stroke-width=".1" d="M383.8 642.6l-6 .1 6-.1z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)"/>
+  <path stroke="#000" stroke-width=".1" d="M384.1 646c.1 0 .1 0 0 0h-6.5c-.1 0-.1 0 0 0h6.5zm6.5 4.6v.1h-7c-.2 0-.2 0 0 0h7zm0-5.9c.2 0 .2.1 0 .1h-7.1c-.1 0-.1-.1 0-.1h7.2zm-6.6 10.4c.1 0 .1.1 0 .1h-6.4v-.1h6.4zm6.2.9c.1 0 .1 0 0 0h-5.6 5.6z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)"/>
+  <path fill="#ef072d" stroke="#000" stroke-width=".1" d="M395.3 657a3 3 0 000-1.4 1.1 1.1 0 01-.6 0 3 3 0 00-.3-.2c0 .4-.2 1.5-.4 1.9-.3 0-1 0-1.3-.2l-.3 1a3.5 3.5 0 001.5 0c0 .6-.1 1.1-.4 1.5.5 0 1 0 1.1-.3.3-.4.3-1 .4-1.3l.5-.1.5-.2.7-.1v-.6l.2-.4-1.6.5z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)"/>
+  <path stroke="#000" stroke-width=".1" d="M370.5 623.2c-.8 0-2.6 0-3 .2-.3.2-.4.3.2.4s1.7.5 2.3.8c.6.4 1 1 1 2a6 6 0 003 6.3c.1.1.2.2.1.6l-.3 1.1c0 .2-.1.4.2.3a20 20 0 01-1 1.6c-1.6-.2-3 0-3 1.8 0 .2 0 .4.2 0 .3-.4.6-.8 1.3-1-.4.7-.6 1.3-.5 1.7 0 .3.2.5.4 0 .1-.4.5-.8.8-1.1.2-.1.2-.1.1.2s.1.9.3 1.1c.2.2.3.1.2-.2 0-.4 0-1.1.5-1.3.6-.4 1.2-.2 1.4.2.3.5.5 0 .2-.4s-.6-.9-1-.9l1-1.7c0-.2.2-.3.4-.2 0 .1.2.1.3-.2l.7-1.4.6-.2 1 1.5v.6c0 .4-.4 1.3-.5 1.6-1.2 0-1.8 0-2.2.7-.2.3.1.4.4.3a2 2 0 011-.3c.2 0 .3.2 0 .3-.7.3-1.2.8-1.2 1.5 0 .2.2.3.3 0 .3-.5.8-.9 1.3-1 0 .5.1 1.3.5 1.5.3.2.3 0 .2-.3-.2-.5 0-1 .3-1.3.5-.6 1.7.2 2 .4.2.2.4.3.2-.3-.1-.7-1.1-1-2-1.2l1.2-4.2c.5.3 1-.5 1.8-.2 1.4.6 3.5 1.9 3.8 2.2.4.3.5.2.7 0 .2-.1.5 0 .8 0 .2.1.4.2.1-.4a7.2 7.2 0 00-2.4-2.6c.8 0 1.8 0 1.8-.2s-1.2-.6-1.7-.6a3.3 3.3 0 001.6-.8c.2-.2 0-.3-.8-.3-2.1 0-3.2 0-4.3-.6-1.8-1-2.9-2.2-3.8-2.6-.4-.3-.7-.9-1-1.4-.5-1.5-.5-2.3-1.8-2.8s-3 .1-3.7.8z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)"/>
+  <path fill="#fff" stroke="#000" stroke-width=".1" d="M370.6 623.6h-1.7s-.2 0 0 0l1.5.4c.3 0 .2.3 0 .2s-.4 0-.2.2c1 .7 1.2 1 1 3.7l.5.4c.2 0 .1.2 0 .1s-.5 0-.2.2.5.2.2.2-.6.2 0 .1c.5 0 .8.2 0 .3-.6 0-.4.2 0 .2.7 0 .5.2.3.2s-.3.2.2.2h.7c.1 0 .2 0 0 .1-.2 0-.2.2.1.2s.5 0 .2.1c-.1 0-.3.1 0 .2.7 0 .8.2.6.3s-.3.1 0 .1.6.1.3.2c-.2 0-.3.2 0 .2s.5.2.3.3-.3.2 0 .2.4.1.2.2c-.2.2-.3.2-.5 0 0-.2-.2-.2-.2 0l-.2-.3c-.1-.3-.3-.3-.3 0s-.2.1-.4 0a3.3 3.3 0 004 .8c.1 0 .2 0 .3.3l.6 1.1c.1.2.3 0 .3-.2l.6-1.7c0-.3.4-.5.3.3.3-.2 1.5-.3 2.5 0a12.2 12.2 0 012.7 1.5.6.6 0 00.5.1c.3 0 .4 0-.1-.5s-.3-.7 0-.5c.3.2.5.1.2-.2l-1-.9c-.1 0-.1-.2-.6-.2h-1.5c-.2 0-.4 0 .2.2.6.2 1.7 1 2 1.2s.4.6-.1.2-2.4-1.5-3.6-2c-2.7.3-4.9.6-6.5-1.1-.8-.9-.8-2.8.5-3.6-.2-.2-.2-.4-.1-.4v-.6c-.2-.1-.4-.3-.4-.5-.3 0-.5-.5-1-.3s-.6 0-.8-.1c-.1-.2-.2-.2-.5-.2s-.5 0-.5-.2.2-.2.6 0c.7.3 1.3.5 1.8-.2.4-.6-.2-1.1-1-1.3-.9-.2-1.5.5-1.9.8z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)"/>
+  <path fill="#fff" stroke="#000" stroke-width=".1" d="M375 623.3a2.8 2.8 0 00-1-.6c-.3 0-.3.2-.2.3v.6c.2.1.3.3 0 .3-.2.2 0 .9.3.7h.2s0 .3.2.3 0 .2 0 .3h.2c.2 0 .1.4-.1.5.3 0 .4 0 .4.2.1.2.4.3.4.6s0 .3-.4.2-.4 0-.5.2-.2.3 0 .3.4.1.1.2-.6 0-.7.3c0 .3 0 .4.2.3l.7-.4.5.1c.2.1 0 .5-.2.3s-.4 0-.5.1l-.5.2c-.2 0-.4 0-.3.5 0 1.4 1.1 2.4 3.1 2.4h3.3c-.6-.4-1-.6-1.3-.6h-.3c.1-.1 0-.3-.1-.3s-.3-.2-.5 0l-1 .5c-.2 0-.5 0-.2-.2l.9-.4c.2 0 .1-.2.1-.2s0-.3.3-.2c.6.4 1.5.9 1.8.9s.4-.2.2-.3-.3-.3-.3-.4.1-.2.5 0c.4.3 1 .5 1.3.6s.5.1 0-.2l-2.3-1.7c-.3-.3-.3 0-.2.2s-.3.3-.5.1-.3-.3 0-.4.2-.2-.1-.5c-.4-.3-.5-.3-.4 0 .1.3.1.5-.2.4s-.6-.3-.3-.4c.2-.2.5-.3 0-.6s-.2 0-.3.2-.4.2-.5 0-.3-.3-.2-.4.1-.2.3 0 .4 0 .1-.3-.4-.2-.3 0-.2.4-.6 0c-.2-.1-.2-.3 0-.4.2 0 .2-.1 0-.3-.7-1.2-.4-2.1-1.2-3z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)"/>
+  <path fill="#cf6200" d="M491.6 188.4c-.3.5-.4.4-1 .8-.6.5-.8 1.8.4 1.7.8-.2 1.3-.6 1.6-1a10 10 0 00-1-1.5zm-3.6-2.9c-.9.9-1 1.3-.6 1.3.6 0 .3 0 0 .7-.5.6.7.9 1.2.4s.5-.6.8 0c.1.5 1 0 1.4-.4-.8-.8-1.9-1.5-2.8-2zm-1.6 5c-1.2.6-.8 3.7 1 2.8.6-.3 1-.1 1 .3-.1.3-.1.5 0 .8a5.4 5.4 0 002-1.4c1-1.3 0-1.2-1.6-1.2s-2-.3-.5-1.2c1.4-.9.4-1.4-1.5-1.2.3.4.2.8-.4 1.1zm6.7 6.9c-.9-1-.3-1.4.6-1.9a1.2 1.2 0 00.5-.4l-.8-3c-.4.2-1 1.3-1.2 1.8-.2.8-.4 1.2-1.2 1-.7-.2-1.4.6-1.5 1.4h.5c.3.1.4.6.3 1 2.1 0 2.5 1.4 2.9 2.4.4 1.1.8 1 1.1.3.3-.6-.4-1.7-1.2-2.6z"/>
+  <path fill="#ff0" d="M493.7 209.6c-.4.9-.4.8-1.7.8-1.2.1-2.8.3-3.5 1-.3.4-2.5.6-2.5 1.5 0 1 0 1.7 1 1.8.9 0 1 .2.7.9-.4.7-.6 1.8 1 2 1.6 0 2.8-.4 3.2.5.4 1 0 2.4.3 3s1.4.9 3.1 1.4c1.2.3 5.5.6 6.8.4 1.3-.2.8-1-.5-1-1.3-.2-2.3-.4-2.6-1.3-.3-1-.6-1.5.2-2.3.7-.9 1.4-1.5 1-2.9-.4-1.3-1.1-2.9-2.7-3.3-1.5-.5-1-2.6-2.6-2.8-.6 0-1 0-1.2.3z"/>
+  <path fill="#cf6200" d="M486.1 222.2c1.4.2 2.5.6 1.4.9-1 .3-1.7.9-.3 1 1.4.1 2.6.7 1.5 1s-1.2 1 .1 1 1.9.6 1 1.2c-1 .5-1.6.8-2.2-.1-.6-1-1-1.2-1.1-.5-.2.7-.6.2-1-.8s-1.4-1.4-1.1-.6-.8 1-1.8.6c1 1 2 2 3.3 2.7 1.4-.5 3 0 3.5 0 .6 0 2.4.5 3.4 1s1.7-.4 1.3-1.5c-.5-1-.5-.7-1 0-.6.5-.7-.3-.6-1.5 0-1-.7-.8-.9-.2s-.8-.4-.5-1 0-.9-.5-.7-.6 0-.7-1.2-.6-1-.7-.5-.7-.2-1.4-1.1c-.6-.8-1.3-.3-2.5.1l.8.2z"/>
+  <path fill="#ff0" d="M500.3 229.5c-6.4 2.5-11 1.4-14.4-.9 1.4-.5 3 0 3.6 0 .5 0 2.4.5 3.3 1s1.7-.4 1.3-1.5c.8 1.1 1.5 1.9 2.5 1.8 1 0 2.8-.2 3.7-.4zM486.7 200c-.4-1.3-.8-1.6-1.5-1.5-.7 0-1-.1-1.8-.4-.7-.3-1.7 0-1.9 1.5s-1 2-2.2 3c-1.1.8-1.8 1.5-1.8 2.9s-.3 1.7-1.1 2.8l-1.3 1.5 1.4.8c.9.4.6 1-.2.8s-1.7.2-.3.5 2 1 .7 1c-1.4-.2-3 1-.3.7 2.6-.3 3.6 1 .6 1-3.1 0-2 1-.3 1 2.9 0 2 .9 1.2.9-.7 0-1 1 .9.8l.7-1.1c.3-1 .6-3.7 1.7-4.4 1-.8 1.6-2 1.6-2.7s1.7-4.2 2.7-5 1.6-2.7 1.2-4z"/>
+  <path fill="#cf6200" d="M484.4 200.2c-1-.8-2.1-.3-2.1 1s-.8 1.8-1.7 2.3a4 4 0 00-2 2.7c0 1.1.2 1.8-.5 2.7-.8.8-.9 1.5-.4 2 .6.5.6.5.8 1.2.3.7 1.6 0 1.6-.8s.3-.8 1.1-1.3c.9-.4 2.3-2.7 2-3.3-.3-.6-1.1-1.2 0-2 1-.9 2-1 2-1.8 0-.9.3-1.2.6-1.5.3-.3-.7-.8-1.4-1.2z"/>
+  <path d="M484.4 199c-.7-.2-1.1 1.3-.1 1.5s1.1-1 .1-1.4zm-.1 2c-.8.1-1.7 1.1-.4 1s1.8-1.1.3-1zm-1.6 1.9c-.8.4-.6 1.5.6.7s1.4-1.7-.6-.7zm-1.2 1.6c-.8.4-.7 1.5.5.7 1.2-.7 1.5-1.7-.5-.7z"/>
+  <path d="M479.9 205.3c-.8.4-.3 1.4.8.7s1.1-1.7-.8-.7zm1 1c-.9.4-.4 1.4.8.7s1.1-1.7-.9-.7z"/>
+  <path d="M479.4 206.7c-.7.4-.2 1.4 1 .7s1-1.7-1-.7zm1 1.1c-.9.4-.4 1.4.8.7 1.2-.8 1.1-1.7-.9-.7z"/>
+  <path d="M479 208.5c-.8.4-.3 1.4.9.7s1-1.7-.9-.7z"/>
+  <path d="M479 209.5c-.7.4-.2 1.5 1 .7s1-1.7-1-.7z"/>
+  <path fill="#cf6200" d="M478.5 219.3c-.8.1-1.4 1.3-.4 1.5s1.3.3 1.3 1 .3 2 1.4 2c1 .1 2-1.1 1-1.5-.9-.4-1.7-.7-1.8-1.6 0-.8-1-1.4-1.5-1.4z"/>
+  <path fill="#ff0" d="M507 212.6l.6.6c.8.6 2.2 0 2-.5s-1-2.3 1-.9l10.6 7.4c2.2 1.6.8 1.8-.2 1.3s-4-1.7-5.7-2.7c-1.7-1-2-.6-2.2-.3-.2.3 0 1 .6 1.6-1 .1-2.7 0-3.2-1.2-.6-1.3-2-3-3-4.2-.4-.5-.5-.8-.4-1z"/>
+  <path fill="#00d860" d="M564.9 403.6c-1.4 1-3.4 2.8-2.1 5.2l.5-.2a142.4 142.4 0 0014.7-21.7l.1-.7a20.5 20.5 0 01-5.2 3.1c.7 1.9-2.6 4.3-4.3 5 .7 1.2.5 3-1 3.3.3 1-.9 1-2.3 1.6s-2 1-2.5 1.8c.7-.5 1.8-.8 2.3-.6s.7 1-.3 1.3-1.7.8-2.1 1.2c1.5-.5 3.7-.3 2.2.7z"/>
+  <path stroke="#000" stroke-width=".1" d="M376 628.4c-.4-.3-.5-.1-.4 0s0 .4-.3.5h-1c-.2 0-.5.4 0 .3l1.6-.3c.2 0 .4-.2 0-.5zm.7.6c-.3-.3-.4-.2-.3 0s-.1.3-.3.3l-1.4.4c-.4 0-.4.3.1.3s1.5-.5 1.6-.5.2-.3.3-.2.3 0 0-.3zm.3.8l-1 .5c-.3 0-.5.3 0 .3s1-.5 1.2-.6l.4-.2s.4-.1 0-.4-.8 0-.6.1 0 .3 0 .3z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)"/>
+  <path d="M482 187.5c-2.8-1.9-6 2-2.9 4.2 2.8 1.9 5.7-2.4 3-4.2z"/>
+  <path fill="#fff" d="M478.5 189.2h.8c-.1 1 .8 2.3 2 2-1 .8-3-.2-2.8-2zm11 42.5c.9.3 3.9.6 5 .6l-1.4 2.5c-.3.8-.4.9-.5-.3 0-1.2-.7-2-1.3-.7l-1.2 2.2c-.3.5-.8.7-.6-.6s.1-2.6 0-3.7z"/>
+  <path fill="none" stroke="#000" stroke-width=".3" d="M399.7 640.8c0 16.3-2.6 33.9-23.8 42.3-21.1-8.4-23.7-26-23.8-42.3h47.6zm0 0c0-6.2-.3-12.2-.2-17.4a63.6 63.6 0 00-23.6-4.3c-5.3 0-15.7.8-23.6 4.3.2 5.2-.2 11.2-.2 17.4h47.6z" transform="matrix(4.4862 0 0 4.4867 -1190.9 -2609)"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/si.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/si.svg
new file mode 100644
index 0000000..a83515b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/si.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-si" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="si-a">
+      <path fill-opacity=".7" d="M-15 0h682.6v512H-15.1z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#si-a)" transform="translate(14.1) scale(.9375)">
+    <path fill="#fff" d="M-62 0H962v512H-62z"/>
+    <path fill="#d50000" d="M-62 341.3H962V512H-62z"/>
+    <path fill="#0000bf" d="M-62 170.7H962v170.6H-62z"/>
+    <path fill="#d50000" d="M228.4 93c-4 61.6-6.4 95.4-15.7 111-10.2 16.8-20 29.1-59.7 44-39.6-14.9-49.4-27.2-59.6-44-9.4-15.6-11.7-49.4-15.7-111l5.8-2c11.8-3.6 20.6-6.5 27.1-7.8 9.3-2 17.3-4.2 42.3-4.7 25 .4 33 2.8 42.3 4.8 6.4 1.4 15.6 4 27.3 7.7l5.9 2z"/>
+    <path fill="#0000bf" d="M222.6 91c-3.8 61.5-7 89.7-12 103.2-9.6 23.2-24.8 35.9-57.6 48-32.8-12.1-48-24.8-57.7-48-5-13.6-8-41.7-11.8-103.3 11.6-3.6 20.6-6.4 27.1-7.7 9.3-2 17.3-4.3 42.3-4.7 25 .4 33 2.7 42.3 4.7a284 284 0 0127.4 7.7z"/>
+    <path fill="#ffdf00" d="M153 109.8l1.5 3.7 7 1-4.5 2.7 4.3 2.9-6.3 1-2 3.4-2-3.5-6-.8 4-3-4.2-2.7 6.7-1 1.5-3.7z"/>
+    <path fill="#fff" d="M208.3 179.6l-3.9-3-2.7-4.6-5.4-4.7-2.9-4.7-5.4-4.9-2.6-4.7-3-2.3-1.8-1.9-5 4.3-2.6 4.7-3.3 3-3.7-2.9-2.7-4.8-10.3-18.3-10.3 18.3-2.7 4.8-3.7 2.9-3.3-3-2.7-4.7-4.9-4.3-1.9 1.8-2.9 2.4-2.6 4.7-5.4 4.9-2.9 4.7-5.4 4.7-2.7 4.6-3.9 3a65.8 65.8 0 0018.6 36.3 107 107 0 0036.6 20.5 104.1 104.1 0 0036.8-20.5c5.8-6 16.6-19.3 18.6-36.3z"/>
+    <path fill="#ffdf00" d="M169.4 83.9l1.6 3.7 7 1-4.6 2.7 4.4 2.9-6.3 1-2 3.4-2-3.5-6-.8 4-3-4.2-2.7 6.6-1 1.6-3.7zm-33 0l1.6 3.7 7 .9-4.5 2.7 4.3 2.9-6.3 1-2 3.4-2-3.4-6-.9 4-3-4.2-2.7 6.7-1 1.5-3.7z"/>
+    <path fill="#0000bf" d="M199.7 203h-7.4l-7-.5-8.3-4h-9.4l-8.1 4-6.5.6-6.4-.6-8.1-4H129l-8.4 4-6.9.6-7.6-.1-3.6-6.2.1-.2 11.2 1.9 6.9-.5 8.3-4.1h9.4l8.2 4 6.4.6 6.5-.6 8.1-4h9.4l8.4 4 6.9.6 10.8-2 .2.4-3.7 6.1zm-86.4 9.5l7.4-.5 8.3-4h9.4l8.2 4 6.4.5 6.4-.5 8.2-4h9.4l8.3 4 7.5.5 4.8-6h-.1l-5.2 1.4-6.9-.5-8.3-4h-9.4l-8.2 4-6.4.6-6.5-.6-8.1-4H129l-8.4 4-6.9.6-5-1.3v.2l4.5 5.6z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sj.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sj.svg
new file mode 100644
index 0000000..8e5d104
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sj.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sj" viewBox="0 0 640 480">
+  <path fill="#ef2b2d" d="M0 0h640v480H0z"/>
+  <path fill="#fff" d="M180 0h120v480H180z"/>
+  <path fill="#fff" d="M0 180h640v120H0z"/>
+  <path fill="#002868" d="M210 0h60v480h-60z"/>
+  <path fill="#002868" d="M0 210h640v60H0z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sk.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sk.svg
new file mode 100644
index 0000000..3d9ea27
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sk.svg
@@ -0,0 +1,9 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sk" viewBox="0 0 640 480">
+  <path fill="#ee1c25" d="M0 0h640v480H0z"/>
+  <path fill="#0b4ea2" d="M0 0h640v320H0z"/>
+  <path fill="#fff" d="M0 0h640v160H0z"/>
+  <path fill="#fff" d="M233 370.8c-43-20.7-104.6-61.9-104.6-143.2 0-81.4 4-118.4 4-118.4h201.3s3.9 37 3.9 118.4S276 350 233 370.8z"/>
+  <path fill="#ee1c25" d="M233 360c-39.5-19-96-56.8-96-131.4s3.6-108.6 3.6-108.6h184.8s3.5 34 3.5 108.6C329 303.3 272.5 341 233 360z"/>
+  <path fill="#fff" d="M241.4 209c10.7.2 31.6.6 50.1-5.6 0 0-.4 6.7-.4 14.4s.5 14.4.5 14.4c-17-5.7-38.1-5.8-50.2-5.7v41.2h-16.8v-41.2c-12-.1-33.1 0-50.1 5.7 0 0 .5-6.7.5-14.4 0-7.8-.5-14.4-.5-14.4 18.5 6.2 39.4 5.8 50 5.6v-25.9c-9.7 0-23.7.4-39.6 5.7 0 0 .5-6.6.5-14.4 0-7.7-.5-14.4-.5-14.4 15.9 5.3 29.9 5.8 39.6 5.7-.5-16.4-5.3-37-5.3-37s9.9.7 13.8.7c4 0 13.8-.7 13.8-.7s-4.8 20.6-5.3 37c9.7.1 23.7-.4 39.6-5.7 0 0-.5 6.7-.5 14.4 0 7.8.5 14.4.5 14.4a119 119 0 00-39.7-5.7v26z"/>
+  <path fill="#0b4ea2" d="M233 263.3c-19.9 0-30.5 27.5-30.5 27.5s-6-13-22.2-13c-11 0-19 9.7-24.2 18.8 20 31.7 51.9 51.3 76.9 63.4 25-12 57-31.7 76.9-63.4-5.2-9-13.2-18.8-24.2-18.8-16.2 0-22.2 13-22.2 13S253 263.3 233 263.3z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sl.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sl.svg
new file mode 100644
index 0000000..51e2676
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sl.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sl" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="#0000cd" d="M0 320.3h640V480H0z"/>
+    <path fill="#fff" d="M0 160.7h640v159.6H0z"/>
+    <path fill="#00cd00" d="M0 0h640v160.7H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sm.svg
new file mode 100644
index 0000000..dbe605e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sm.svg
@@ -0,0 +1,91 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sm" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#19b6ef" d="M0 240h640v240H0z"/>
+    <path fill="#fff" d="M0 0h640v240H0z"/>
+  </g>
+  <path fill="#fd0" fill-rule="evenodd" stroke="#7d6c00" stroke-width="2.4" d="M317 339.2C369.6 300 426 220 359.9 177.8c-12.3-2.4-26-1.7-32.7 3.6-3.5-2-6.3-1.8-9.8 1.9-2.5-3-5-4.4-10-2.9a40.8 40.8 0 00-31.5-3C218 211.8 253.4 294 317 339.1z"/>
+  <g stroke="#3a9d4f">
+    <path fill="#4fd46b" fill-rule="evenodd" stroke-linejoin="round" stroke-width="2.4" d="M414 250.1s6-8 6.2-8c5.9-3.4 6.5-7.9 6.5-7.9 5.9-1.8 4-6.7 4.5-7.3a6.4 6.4 0 001.4-7.1c0-.8 2-8.4-.8-9.4.1-8-4.8-7.3-8.8-2-4.2 1.2-5.1 4.7-3.6 8.5-5.5 0-5.7 8-4.1 12.4-7.3-.2-3.3 8-3.5 8.4-2.4 1.2 1.9 12.8 2.3 12.4zm-46 68.2l3.6 2.2c.8 2.8 3.4 4.6 5.3 4.1 1 4.3 5.6 3.7 9 1.2 2.7 4 6 4 10.6 2.7 4 3 9.3 1.7 12.8-1.4 3.7 3 6.2.8 8.1-2.5 3 .8 5.2.3 6.3-2.6 5.7-.5 2.9-5.9-1.8-8.2 3.7-3.2 7.9-10 2-11-1.8-1.3-5.3-1-7.9.2-.7-3-4.8-3.7-9.4-.4-1.5-3.3-7-1.7-9.5.6-3.3-2.8-7.2-2.8-12.9.4L368 318.3zm0-8.7c.6-3.8-2-10.6 2-11.2-.7-6.3.3-13.3 7.5-12.7 1.2-5.9 1-11.4 7.8-12.2 0 0 5.5-19.1 11.2-5.9 2.2 3.9 1.8 10.2-2.7 9 .9 4.7-.7 8.9-5.9 8.7 2.3 3.4 1.6 7.9-1 10l-19 14.3zm33.1-23.9l6-1.2c6-4 8.5-5.7 11.5-1.2 5.1-1 10-.6 9.8 3.4 6 .5 6 4.3 5.3 7.4 1 5.3-1.4 12.3-5 3.8-11.9-7.2-18.6-6.2-37.3-2l9.7-10.2zm3.1-5.9c.2-.2 17.5-4.7 15.7-10 4.9-.8 5.9-5.7 6-5.7 10.3-3.2 9.7-9.1 9.7-9.1 2.9-3.1 8-6.3 6.9-11.8.3-6.3.9-10.2-7.6-6.1-6.3-.6-8.5 3-10.3 8.5-3-3.5-7.8 2.1-8.4 7.1 0 0-7.7 7.6-7.7 7.8l-6.5 12 2.2 7.3z"/>
+    <path fill="#4fd46b" fill-rule="evenodd" stroke-linejoin="round" stroke-width="2.4" d="M404.5 266.4c-4.1-3.1-6.4-6.9-5.7-10.6-2.7-3.7-4.6-5.9-2-9.2l-2-7.5c-5.4-2-3.1-6.5-1.7-8.1-2.5-3.5-2.6-7.2-.2-10.4 0-6.5 4.6-4 8.3 0 0 0 6.4 4.5 1.7 8.5 4.7 1.7 6 5.7 3.4 7.4 4.1 1.8 4.7 5.5 2.5 8 4.1 3.2 2.6 7.4 3.8 11.1l-8.1 10.8z"/>
+    <path fill="#4fd46b" fill-rule="evenodd" stroke-linejoin="round" stroke-width="2.4" d="M411.8 236c-.2-.1-6.9-8.7-5-9.3-.5-2.6-2.5-5.5-1.3-8.1-3.3-3.4-3.4-7.3-.8-10.4-2.2-3-1.2-7.1 1.8-9.8-1-5 2.6-6.2 5.7-7.1 2.3-8 6-6 8.2.2 3.2 2.8 2.7 7 1.6 10.2 3.8 2.5 1.5 5.7-.2 7l-10 27.4z"/>
+    <path fill="#4fd46b" fill-rule="evenodd" stroke-linejoin="round" stroke-width="2.4" d="M410.8 193.1l-5.7-5.7c1.5-3 2.7-8.3-1.6-10.8-2.4-5.7-14.2-12.9-16.1.8-1.8-4.1-5.6-8.2-8.3-3.4-6.2-5.3-9.5-3.7-6.3 3 0 0-2.9 4.5 4.6 8 .6.6-2.4 8.1 6.6 8.3-1.7 2.6 1 6.2 4.6 6-2.5 3.1 1.8 6.5 4.5 5.2-1.1 3.5-1 5.2 3.9 5.7l5.5 6.3 4.5 6.1 3.8-29.5z"/>
+    <path fill="none" stroke-linecap="round" stroke-width="2.2" d="M414.3 246.5c.3-.3 11-24.8 12.4-32.2M415.4 203s1.8 20-3.1 34.6m-29.7-54.7s21.9 21 24 29.7m-8.7-32s1.4 17.3 7.5 34.3m31 28.4S414.6 261.8 404 278m11.8 30s-28.8 4-41.4 4.3m32 8s-35.8-.8-38.4-3.4m20.5-43c0 .4-18.2 30.3-18.8 40"/>
+  </g>
+  <path fill="#65c7ff" fill-rule="evenodd" stroke="#7d6c00" stroke-width="2.4" d="M316.9 333.4c-37.8-35.6-76.5-102.4-38-136.2 6.8 3.8 14.9.4 26-4 3.4 3.7 7.7 4.6 12 1.8a9 9 0 0010.7-2.1c11 6.3 24.9 9.6 28.2 3.3 37.8 36-.6 103.2-39 137.3z"/>
+  <path fill="#8fc753" fill-rule="evenodd" d="M317 332.4a212.8 212.8 0 01-42.3-57.6c2-1.7 2.9-2.2 3.9-5 5.8.8 8.9 1 16.5-.4 1.6 5.8 1.9 10.6 5.5 15.4l7.7-15a33.6 33.6 0 0016.5 0c3.2 4.2 2 10.7 7.7 15.6 3.4-10 6.7-10.6 10.1-16 5 1.8 8.2 1 12.3-.3 2 2.5 1 2.4 5 6a193.7 193.7 0 01-42.8 57.3z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M272.6 164.3a3.4 3.4 0 11-6.7 0 3.4 3.4 0 016.8 0zm-3.5-7.7a3.4 3.4 0 11-6.6 0 3.4 3.4 0 016.7 0zm-4-7.1a3.4 3.4 0 11-6.7 0 3.4 3.4 0 016.7 0zm-2.8-7a3.4 3.4 0 11-6.7 0 3.4 3.4 0 016.7 0zm.5-7.6a3.4 3.4 0 11-6.7 0 3.4 3.4 0 016.7 0zm17.6-12.5a3.4 3.4 0 11-6.7 0 3.4 3.4 0 016.7 0z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M273.8 123.6a3.4 3.4 0 11-6.7 0 3.4 3.4 0 016.7 0zm-7.3 4.3a3.4 3.4 0 11-6.7 0 3.4 3.4 0 016.7 0zm22.4-5.4a3.4 3.4 0 11-6.6 0 3.4 3.4 0 016.6 0zm9.4.8a3.4 3.4 0 11-6.7 0 3.4 3.4 0 016.7 0zm8.2-.5a3.4 3.4 0 11-6.6 0 3.4 3.4 0 016.7 0z"/>
+  <path fill="#fd0" fill-rule="evenodd" stroke="#7d6c00" stroke-width="1.1" d="M325.9 117.5a8.6 8.6 0 11-17.2 0 8.6 8.6 0 0117.2 0z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M335 122.7a3.4 3.4 0 11-6.8 0 3.4 3.4 0 016.7 0zm8.6.7a3.4 3.4 0 11-6.6 0 3.4 3.4 0 016.7 0zm8.5-.4a3.4 3.4 0 11-6.7 0 3.4 3.4 0 016.7 0zm7.1-.3a3.4 3.4 0 11-6.7 0 3.4 3.4 0 016.7 0zm8.9 1a3.4 3.4 0 11-6.7 0 3.4 3.4 0 016.7 0zm7 4.4a3.4 3.4 0 11-6.7 0 3.4 3.4 0 016.7 0z"/>
+  <path fill="#e40000" fill-rule="evenodd" stroke="#ac0000" stroke-width="2.4" d="M269.4 151.7l8.6 16.5h79.2l9.2-15.9c-5.4-3.7-9-6.5-16.7-4.8-4.3-6.2-9-7.3-16-6.7-2.1-2.1-4-3.4-7.6-4l-16.6.5c-4.4.4-7.8 3.8-8 3.8-7-.9-13.5-.7-15.2 6.2-6.5-1.6-11 .2-16.9 4.4z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M378 135.3a3.4 3.4 0 11-6.7 0 3.4 3.4 0 016.7 0zm.6 8a3.4 3.4 0 11-6.7 0 3.4 3.4 0 016.7 0zm-2.5 7.2a3.4 3.4 0 11-6.7 0 3.4 3.4 0 016.7 0zm-3 6a3.4 3.4 0 11-6.8 0 3.4 3.4 0 016.7 0zm-3.7 7.5a3.4 3.4 0 11-6.7 0 3.4 3.4 0 016.7 0zm-46.8-9.6a5 5 0 11-10 0 5 5 0 0110 0z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M323.6 143a6 6 0 11-12 0 6 6 0 0112 0z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-width="1.1" d="M322.7 132a5.4 5.4 0 11-10.8 0 5.4 5.4 0 0110.8 0z"/>
+  <path fill="#fd0" fill-rule="evenodd" stroke="#7d6c00" stroke-width="1.1" d="M315.5 109v-4.2l-3.6-.1.2-3.2h3v-2.8h4.5v2.5h3.5l-.1 3.4h-3.6v4.5h-4z"/>
+  <path fill="none" stroke="#fd0" stroke-width="3.3" d="M277.6 168.2c-7.1-12-17.6-28.4-11-35.5 8.9-10.1 29.9-1 43.3-6.8 1 11.4-2.2 30.4 2.9 34.3l-4.8 4.2c-3-3.7-8.4-8.8-15.2.2-4-3.4-8.3-2.8-10.4 1.7-2 .3-1.9 1.1-4.8 1.9zm80-.5c7.2-12 17.6-28.3 11.1-35.4-9-10.1-30-1-43.3-6.9-1 11.5 2.2 30.5-3 34.4l4.8 4.2c4.7-6.5 10.4-6.7 15.3.2 3.9-3.4 7.9-3 10.4 1.7 2 .3 1.8 1 4.8 1.8z"/>
+  <path fill="#fd0" fill-rule="evenodd" stroke="#7d6c00" stroke-width="2.4" d="M277.3 177.1a437 437 0 0179.3 0l3.1-9c-27.7-5-46.8-5.6-83-.6l.6 9.6z"/>
+  <path fill="#c76e2e" fill-rule="evenodd" d="M314.1 329.4l.6-4.2c2.9.8 5 .5 7.4-.4l2.4-3.7-1.8-2.1c-1.6.3-3 1.8-4 3.1-1.6.1-3-.7-4.6-1l-1.5-6.4c-1.5-1.8-4.7-1.7-4 1.5l.3 2.5c.6 1.5.9 3.6 1.9 4.7v2.6l3.3 3.4zm1.2-18.3c-2 1-4.6-.8-7.3-1.9-2.5-.1-4.4 2-7.4 1.3.6-1.6 1.9-1.9 2.8-2.8-.7-4.1 1.5-5.5 2.1-5.5.6 0 3.1.6 3.1.6l2.4.3c1.5 2.7 3.5 5 4.3 8z"/>
+  <path fill="#ffe100" fill-rule="evenodd" stroke="#e9bf00" stroke-width="2.4" d="M300.8 366c7-11.4 56.2-34.4 102.4-84.2-47 45.3-76.4 56.4-114.8 84l12.4.3z"/>
+  <path fill="#9d4916" fill-rule="evenodd" stroke="#68300e" stroke-width="1.1" d="M368.4 313.2a3.6 3.6 0 11-7.2 0 3.6 3.6 0 017.2 0zm34.4-34.9a4 4 0 11-8.1 0 4 4 0 018 0zm11.4-29.6a3.6 3.6 0 11-7.1 0 3.6 3.6 0 017.1 0zM403 210.3a3.6 3.6 0 11-7.1 0 3.6 3.6 0 017.1 0z"/>
+  <path fill="#fff" fill-rule="evenodd" stroke="#a9a9a9" stroke-width="1.1" d="M279.1 269.6v-15.2l-1.5-1.2v-3.6l2.8-.3.5-17-1.8-1-.2-2.8s2 .8 2 .3l.5-3.4s-1.3-.2-1.3-.7 1.6-1.8 1.6-1.8-.8-.8-1-1.3l-.8-2.8.8-2.9-.5-1.5-1.3-2.3 1.8-1.8-.5-2.8a10 10 0 011.5-2.9c.3-.2 2.3-3 2.3-3l4.4-1 5.1.7 2.8 1.8.5 4.6s-.5 2.8-.7 2.8l-2.3 1s-2.6.3-2.9 0 .8 3.2.8 3.2v3l-.2 3.9s0 1.8-.3 2-.8 1-.8 1l-.2 4 4 1-.2 2.3-2.8.2.5 15.7 4.1.7v4.4l-1.8 1-.5 15.7h-14.4zm62.4.3v-15.2l-1.5-1.3v-3.6l2.8-.2.5-17-1.8-1-.2-2.8s2 .7 2 .2l.5-3.3s-1.3-.3-1.3-.8 1.6-1.8 1.6-1.8-.8-.7-1-1.3l-.8-2.8.8-2.8-.6-1.5-1.2-2.3 1.8-1.8-.6-2.9a10 10 0 011.6-2.8l2.3-3 4.4-1.1 5.1.8 2.8 1.8.5 4.6s-.5 2.8-.7 2.8l-2.3 1s-2.6.3-2.9 0 .8 3.1.8 3.1v3.1l-.3 3.9s0 1.7-.2 2l-.8 1-.2 3.9 4 1-.2 2.3-2.8.3.5 15.6 4.1.8v4.4l-1.8 1-.5 15.7h-14.4zm-31.6.5v-15.2l-1.5-1.2v-3.7l2.8-.2.5-17-1.8-1-.2-2.8s2 .8 2 .3l.5-3.4s-1.2-.2-1.2-.7 1.5-1.9 1.5-1.9-.8-.7-1-1.2l-.8-2.9.8-2.8-.5-1.5-1.3-2.3 1.8-1.8-.5-2.9a9 9 0 011.5-2.8c.3-.2 2.3-3 2.3-3l4.4-1 5.1.7 2.8 1.8.6 4.6s-.6 2.8-.8 2.8l-2.3 1s-2.6.3-2.8 0 .7 3.1.7 3.1v3.1l-.2 3.9s0 1.8-.3 2l-.8 1-.2 3.9 4 1-.2 2.3-2.8.3.5 15.7 4.1.7v4.4l-1.8 1-.5 15.7H310z"/>
+  <path fill-rule="evenodd" d="M283 269.5v-12h6.6V270l-6.7-.5zm31.4 1l.3-12.2h6v11.9l-6.3.2zm31-.3l-.4-11.5 6.5-.2v12l-6-.3zm-60.8-36h3.8v6.1h-3.8zm30.3.2h5.3v6h-5.3zm31 .5h4.6v5.7H346z"/>
+  <path fill="none" stroke="#a8a8a8" stroke-width="1.1" d="M286.6 207c4 4.6 4.3 4.6 4.3 4.6m26.2-4.6c.8 1.5 2 4.8 3.6 5.1m29.3-4.4s1.3 3.6 3 4.1"/>
+  <path fill="#b97700" fill-rule="evenodd" d="M282.2 194c12-3.9-2.8-11.6-5.3 0-3.8.7-4.3 3.5-12.7 2.3-20.4 33-5.3 86.5 54.1 141.8-106.4-90.6-63.2-157.6-33.7-155 16 1 8 21-2.4 11z"/>
+  <path fill="none" stroke="#7d6c00" stroke-width="2.4" d="M285.6 177s9.7 2.7 9.7 6.8m0-7.5s6.8 3 8.3 5.6m45.1-4.5s-8.6 1.2-10.5 3.8m-2.6-3s-5 4.1-4.5 5.3m3.4 12.7c-.8-.3-4.2-4.9-3.4-10.5m-29.8 7.5s2.3-2.6 2.3-7.5m13.5-1.9l.4 11m9.4-1.6c0-.7 3-7.9-.4-11.3m-20.3-1.5s-2.6 7.2-.7 13.2m20-6.8s-4.2 1.2-6 3m-11.8-1.9c0-.3 4.6-1 6 1.6"/>
+  <path fill="#c76e2e" fill-rule="evenodd" d="M300.6 301.9c.2 0 3.8-.7 3.8-2.4 1.8-1.2.5-4.5.5-4.5l-3.4-.6-4.6-5.2c-.2-1.6.3-3.1-.7-4.8-3.2.8-5 3.5-6 6.5.7 1 .8 2 2.3 2.9 1.5.2 2.5-.7 3.9-.4.7 1.3.5 2.4.8 3.6 1.9 1.3 2.3 3.2 3.4 4.9zm-4.1-22.2v-6.2l-4.4-.2c-.6 1-1.6 1.4-2.2 2.2l-3.1 1.6c1.3 1.5 2.9 2.4 3.8 3.2 2.3.6 4.1.6 5.9-.6zm-13.8 9.1l-2.4-4a7.2 7.2 0 014.7.3s1 2.5.3 3.4c-.4.9-2.7.5-2.6.3zm36.5 4.1a4.6 4.6 0 002.7-3.3l-4.5-5.1-4-.1c-1-1-2.4-1.2-3.6-1.2 0 0 1.2 2 2.8 2.3 1.2 2.6 6.2 7.4 6.6 7.4zm4.3.6c0-.1 4-1.4 6-1.3-.1-1.6 3-5.3 3-5.3l5.6 7.3c-1 .8-2.8.6-4.2.8 0 0-2.7 2.6-3 2.7s-5.2 1.3-7.6-.2c-1-2 .3-4.3.2-4zm3.2-12.8a14 14 0 000-7.6h-6.4l-4.2 2s1.3 4.2 3 3.8c.7 2.1 2.9 1.6 4 2.4l3.6-.6zm24.9-6.4c-1 2.7-1.4 5.5-.2 8 1.2.3 2.6 1 3.6.8l5.1-9.2c-3.5-1.1-6.4-1-8.6.4z"/>
+  <path fill="#b97700" fill-rule="evenodd" d="M353.1 193.2c-12-3.9 2.8-11.7 5.3 0 3.9.6 4.4 3.5 12.8 2.3 20.3 33 5.2 86.5-54.2 141.8 106.5-90.6 63.2-157.6 33.7-155.1-16 1-8 21 2.4 11z"/>
+  <path fill="#c76e2e" fill-rule="evenodd" d="M354.3 284.7c-.2 0-3 2-3 2l-4.2 1.7-4.4.1-1-3 3.4-3c-2.8-.5-5.7.7-8 2.8 0 0 0 3.3 2 5 1.1 1.4 4.5 4 4.5 4a7 7 0 005.4-1l5.3-8.6zm-23.2 30.1c1.4.4 11.3-12.7 11.3-12.7a10 10 0 00-4.9-5.4s-4.8 5.7-4.9 7.6c-.8 1.7-3 8.3-2 9.2-.1.2-.5 2.9.5 1.3z"/>
+  <path fill="#006800" fill-rule="evenodd" stroke="#004100" stroke-linejoin="round" stroke-width="2.4" d="M266.4 317.4c-14.8-12.9-34.8-20-62.7-10.3 7.5 3.2 15.6 4.3 22.5 7.9l40.2 2.4z"/>
+  <path fill="none" stroke="#00a400" stroke-linecap="round" stroke-width="2.2" d="M223.4 308.3c29.3.6 37.8 7.9 36.3 6.7"/>
+  <path fill="#006800" fill-rule="evenodd" stroke="#004100" stroke-linejoin="round" stroke-width="2.2" d="M267 319c-8.8 1.6-20.8 10-24.4 9.7-9.5-1.1-18.5-5-27.7-8-3.8-1.2-7.7 0-11.6 0 32.8-15.5 44-13.4 63.7-1.8z"/>
+  <path fill="#006800" fill-rule="evenodd" stroke="#004100" stroke-linejoin="round" stroke-width="2.4" d="M245.4 296s-11 1.6-15.9 1.9c-4.8-.3-12-4.8-19.8-13-4-4.6-13.4-4-13.4-4 20.6-4.4 36.7-.2 49 15.2zm-15-21.2c-14.9-1-33.5-14.3-37.7-30.2 0 .2 5.5 3.5 4.6 4.3 24.4 6.2 26 11.2 33.1 25.9zm25 25.5c2.1-13.5 2.7-22.4-3.6-30.4-5.3-6-6.6-9.7-10.4-18.3-1.1 17.8-5 32.5 14 48.7zM232 263c11-16.1 13-28.3 11.2-47.5-.3 1.5-4 11-4.2 11-16.5 10.3-9.2 26.5-7 36.5z"/>
+  <path fill="#006800" fill-rule="evenodd" stroke="#004100" stroke-linejoin="round" stroke-width="2.4" d="M222.2 185c11 16.1 9.4 31.3 7.6 50.5-.3-1.5-4-11-4.2-11-16.5-10.3-5.5-29.5-3.4-39.5z"/>
+  <path fill="#006800" fill-rule="evenodd" stroke="#004100" stroke-linejoin="round" stroke-width="2.4" d="M231.3 210c26.8-13.6 16.5-30.7 21.4-44-18.6 13.9-21 28.6-21.3 44z"/>
+  <path fill="none" stroke="#00a400" stroke-linecap="round" stroke-width="2.2" d="M235 206.6c3.4-9.5 10-25.6 10.7-25.6M227 226.4c-.6-6.7-4-24.7-4.3-26.5"/>
+  <path fill="#006800" fill-rule="evenodd" stroke="#004100" stroke-linejoin="round" stroke-width="2.4" d="M228.3 256.5c-15-1-31-21.3-35.3-37.1 0 .2 5.5 3.4 4.6 4.2 21.4 9.6 23.6 18.2 30.7 32.9zm-4.4-14c-11-16.1-13-28.3-11.3-47.5.3 1.5 4 11 4.3 11 16.4 10.3 9.1 26.5 7 36.5zm9.9-28.3c27.7-12.3 19.2-25.2 27.4-38.7-18.6 13.8-27.1 23.4-27.4 38.7z"/>
+  <path fill="none" stroke="#00a400" stroke-linecap="round" stroke-width="2.2" d="M235 211.4a70.7 70.7 0 0015.2-20.7"/>
+  <g fill-rule="evenodd">
+    <path fill="#ffe100" stroke="#e9bf00" stroke-width="2.4" d="M333.6 366.4l13.4.2c-44.7-42-130.5-60.2-118.6-137.4-12.3 83.7 70.1 91.5 105.2 137.2z"/>
+    <path fill="#9d4916" stroke="#68300e" stroke-width="1.1" d="M235.4 212.7a4.3 4.3 0 11-8.6 0 4.3 4.3 0 018.6 0zm-2.6 23.6a4 4 0 11-8.1 0 4 4 0 018 0zm3.8 33.7a3.6 3.6 0 11-7.2 0 3.6 3.6 0 017.2 0zm31.3 37.2a3.6 3.6 0 11-7.2 0 3.6 3.6 0 017.2 0zm4.5 10.7a3.6 3.6 0 11-7.2 0 3.6 3.6 0 017.2 0z"/>
+  </g>
+  <g fill="#fff" fill-rule="evenodd">
+    <g stroke="#000" stroke-width="1.1">
+      <path d="M288.2 349a15.5 15.5 0 01-4.8-5.8l-14-1.5-.2 8 19-.7z"/>
+      <path stroke-linejoin="round" d="M185.3 339.6c8.2 1.5 20.5-.8 24.5 4.5 4.8 5.4-15.1 13.9-12.3 18.6 6.2 6.5 12.5 3.8 19.4.2 1.7-3.5 3-9.8 3.8-11.7-2.5-5.7-9.3-8.6-7.5-17.3 11.3-4.2 33.2-3.9 35.6-2.2 1.8 3.6.1 5.2.5 8.1-1.9 3.7-6.7 9.8-6.7 13.1 12 4.2 15-.6 25.8-.4 12.6.2 20.2 3.6 23-1.4-2-4.4-13.5-.8-17.8-3.6-2.2-.7-3.6-2.5-5.5-4.4s-7.2-2-8-6.9c2.2-10.2 17-8.6 19.3-10.2l38.4 2.7c7-.2 11 12.3 1.5 16-9.4 3.8-37.1-5.5-49.2.9-.6-2.6-9.3-6.6-9.9-6.7-3.7 1-10.9.7-10.9.7-1.7 3.2-3.8 5.6-5.5 8.9-8-3.5-15.5 2.7-24.2.9l-13.6 1.5-8.6-.8-13.2 3.8 9.4-8.3-8.3-6z"/>
+      <path d="M184.7 338a3.6 3.6 0 11-7.2 0 3.6 3.6 0 017.2 0zm-1 18a3.6 3.6 0 11-7.2 0 3.6 3.6 0 017.3 0z"/>
+    </g>
+    <g stroke="#000" stroke-width="1.1">
+      <path d="M346.3 349.1c2.3-2.1 3.8-3.5 4.7-5.8l14-1.6.3 8-19-.6z"/>
+      <path stroke-linejoin="round" d="M449.1 339.6c-8.1 1.5-20.4-.7-24.4 4.5-4.9 5.5 15 14 12.2 18.6-6.2 6.6-12.5 3.9-19.4.3-1.6-3.5-2.9-9.8-3.8-11.7 2.6-5.8 9.3-8.6 7.6-17.3-11.4-4.3-33.3-4-35.6-2.3-1.9 3.7-.2 5.3-.6 8.2 2 3.6 6.8 9.8 6.8 13-12 4.3-15.1-.6-25.8-.3-12.6.2-20.3 3.5-23-1.5 1.9-4.3 13.4-.8 17.8-3.5 2.2-.8 3.6-2.5 5.5-4.5s7.2-2 8-6.8c-2.2-10.2-17-8.7-19.4-10.2l-38.4 2.6c-7-.2-10.9 12.3-1.5 16.1 9.4 3.8 37.2-5.6 49.2.8.7-2.6 9.3-6.5 10-6.7 3.6 1.1 10.8.7 10.8.7 1.8 3.3 3.8 5.7 5.6 9 8-3.6 15.5 2.7 24.2.8l13.5 1.5 8.7-.7 13.2 3.7-9.4-8.2 8.2-6z"/>
+      <path d="M449.7 338a3.6 3.6 0 107.3 0 3.6 3.6 0 00-7.3 0zm1 18a3.6 3.6 0 107.2 0 3.6 3.6 0 00-7.2 0z"/>
+    </g>
+    <path d="M317 329.3c-3.2-.6-4.4-.4-6.6-.6l-5.1 15.8c8 .7 15.3.7 15.3.7-4.8-1-3.7-15.8-3.6-15.9z"/>
+  </g>
+  <g font-family="Trebuchet MS" font-size="9" font-weight="bold">
+    <text x="448.6" y="344.3" transform="translate(-465 -233.3) scale(1.6657)">
+      <tspan x="448.6" y="344.3">L</tspan>
+    </text>
+    <text x="453.6" y="344.6" transform="translate(-465 -233.3) scale(1.6657)">
+      <tspan x="453.6" y="344.6">I</tspan>
+    </text>
+    <text x="456.7" y="345.1" transform="translate(-465 -233.3) scale(1.6657)">
+      <tspan x="456.7" y="345.1">B</tspan>
+    </text>
+    <text x="462.6" y="345.5" transform="translate(-465 -233.3) scale(1.6657)">
+      <tspan x="462.6" y="345.5">E</tspan>
+    </text>
+    <text x="468.3" y="345.6" transform="translate(-465 -233.3) scale(1.6657)">
+      <tspan x="468.3" y="345.6">R</tspan>
+    </text>
+    <text x="473.9" y="345.4" transform="translate(-465 -233.3) scale(1.6657)">
+      <tspan x="473.9" y="345.4">T</tspan>
+    </text>
+    <text x="479.3" y="344.5" transform="translate(-465 -233.3) scale(1.6657)">
+      <tspan x="479.3" y="344.5">A</tspan>
+    </text>
+    <text x="485.5" y="344.3" transform="translate(-465 -233.3) scale(1.6657)">
+      <tspan x="485.5" y="344.3">S</tspan>
+    </text>
+  </g>
+  <path fill="none" stroke="#00a400" stroke-linecap="round" stroke-width="2.2" d="M231.3 318.6c10.1 1.2 24.1.3 30.2 0M216 284.2c8.6 6.7 27.1 10.7 26.8 10.7m10.7 1.8c-2.8-14-5.8-17.4-8.3-26.2m-43.5-15.8c14.3 6.4 16.5 10.6 25.6 17m5.2-14c1.2-17.3 3.6-21.9 7.9-25.9m-38.7-2c5.2 5.7 22.2 23.7 22.2 23.7m-7-39.6c6.4 4.5 6.4 21 6.4 21"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sn.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sn.svg
new file mode 100644
index 0000000..c06616f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sn.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sn" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#0b7226" d="M0 0h213.3v480H0z"/>
+    <path fill="#ff0" d="M213.3 0h213.3v480H213.3z"/>
+    <path fill="#bc0000" d="M426.6 0H640v480H426.6z"/>
+  </g>
+  <path fill="#0b7226" d="M342 218.8h71.8l-56.6 43.6 20.7 69.3-56.6-43.6-56.6 41.6 20.7-67.3-56.6-43.6h69.8l22.7-71.3z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/so.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/so.svg
new file mode 100644
index 0000000..def9fa3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/so.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-so" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="so-a">
+      <path fill-opacity=".7" d="M-85.3 0h682.6v512H-85.3z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#so-a)" transform="translate(80) scale(.9375)">
+    <path fill="#40a6ff" d="M-128 0h768v512h-768z"/>
+    <path fill="#fff" d="M336.5 381.2L254 327.7l-82.1 54 30.5-87.7-82-54.2L222 239l31.4-87.5 32.1 87.3 101.4.1-81.5 54.7 31.2 87.6z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sr.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sr.svg
new file mode 100644
index 0000000..9a169fd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sr.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sr" viewBox="0 0 640 480">
+  <path fill="#377e3f" d="M.1 0h640v480H.1z"/>
+  <path fill="#fff" d="M.1 96h640v288H.1z"/>
+  <path fill="#b40a2d" d="M.1 144h640v192H.1z"/>
+  <path fill="#ecc81d" d="M320 153.2l56.4 173.6-147.7-107.3h182.6L263.6 326.8z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ss.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ss.svg
new file mode 100644
index 0000000..4efa598
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ss.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ss" viewBox="0 0 640 480">
+  <path fill="#078930" d="M0 336h640v144H0z"/>
+  <path fill="#fff" d="M0 144h640v192H0z"/>
+  <path d="M0 0h640v144H0z"/>
+  <path fill="#da121a" d="M0 168h640v144H0z"/>
+  <path fill="#0f47af" d="M0 0l415.7 240L0 480z"/>
+  <path fill="#fcdd09" d="M200.7 194.8L61.7 240l139 45.1L114.9 167v146z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/st.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/st.svg
new file mode 100644
index 0000000..a6bd218
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/st.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-st" viewBox="0 0 640 480">
+  <path fill="#12ad2b" d="M0 0h640v480H0z"/>
+  <path fill="#ffce00" d="M0 137.1h640V343H0z"/>
+  <path fill="#d21034" d="M0 0v480l240-240"/>
+  <g id="c" transform="translate(351.6 240) scale(.34286)">
+    <g id="b">
+      <path id="a" d="M0-200V0h100" transform="rotate(18 0 -200)"/>
+      <use width="100%" height="100%" transform="scale(-1 1)" xlink:href="#a"/>
+    </g>
+    <use width="100%" height="100%" transform="rotate(72)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(144)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(-144)" xlink:href="#b"/>
+    <use width="100%" height="100%" transform="rotate(-72)" xlink:href="#b"/>
+  </g>
+  <use width="100%" height="100%" x="700" transform="translate(-523.2)" xlink:href="#c"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sv.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sv.svg
new file mode 100644
index 0000000..e9977d7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sv.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-se" viewBox="0 0 640 480">
+  <path fill="#066aa7" d="M0 0h640v480H0z"/>
+  <path fill="#fecc00" d="M0 192h640v96H0z"/>
+  <path fill="#fecc00" d="M176 0h96v480h-96z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sx.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sx.svg
new file mode 100644
index 0000000..9ddaf0d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sx.svg
@@ -0,0 +1,56 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sx" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="sx-a">
+      <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#sx-a)" transform="scale(.9375)">
+    <path fill="#ed2939" fill-rule="evenodd" d="M0 0h768v256H341.3L0 0z"/>
+    <path fill="#002395" fill-rule="evenodd" d="M0 512h768V256H341.3L0 512z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M0 0l341.3 256L0 512V0z"/>
+    <path fill="#ff0" d="M172.3 193.2l.1-4s-2.1-3.4.4-7c0 0-5.3-2.8-4-7.2 0 0-4.8-1.2-4.5-6.4 0 0-5-.3-5.6-4.7 0 0-5.1.8-7.4-3.4 0 0-5 1-6.4-2.5 0 0-4.9 1.6-7.7-2.5 0 0-5.2 2.1-7.3-1.8-2.1 3.9-7.3 1.8-7.3 1.8-2.8 4.1-7.7 2.4-7.7 2.4-1.4 3.5-6.3 2.5-6.3 2.5-2.3 4.3-7.4 3.4-7.4 3.4-.5 4.4-5.6 4.8-5.6 4.8a6 6 0 01-4.4 6.4c1.3 4.3-4 7.1-4 7.1 2.6 3.7.5 7 .5 7l-.1 3.7 84.7.4"/>
+    <path fill="none" stroke="#000" stroke-width=".3" d="M377.2 843.1v-3.5s-1.8-3 .4-6c0 0-4.6-2.5-3.5-6.3 0 0-4.2-1-3.9-5.6 0 0-4.5-.3-5-4.1 0 0-4.4.7-6.3-3 0 0-4.4.8-5.6-2.2 0 0-4.3 1.5-6.8-2.1 0 0-4.5 1.8-6.3-1.6-1.9 3.4-6.4 1.6-6.4 1.6-2.4 3.5-6.7 2-6.7 2-1.2 3.1-5.5 2.3-5.5 2.3-2 3.7-6.5 3-6.5 3-.4 3.7-4.9 4-4.9 4a5.1 5.1 0 01-3.7 5.6c1 3.8-3.5 6.2-3.5 6.2 2.2 3.2.3 6.2.3 6.2v3.2l73.9.3z" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+    <path fill="red" d="M170.3 188.2c-13.3-1.3-28.6-4.5-40.4 2.2-8-4.7-19-4.4-28.4-3.5-5.1 1-11.1 1-16.5 1.8l-.8.1c-9.7.7-18.5-2.2-27-6 2.8 15.2 5.7 30.7 7.2 46.6C67.6 253 53.3 272.7 59 296c3.5 11.2 15.8 17.7 27 19a214.7 214.7 0 0132.2 4.5 32 32 0 015.5 1.9 19.7 19.7 0 016.6 4.7c6-6.3 15-8.1 23.7-9 15.8-1.9 35.3-.9 45-15.2v-.8c5.3-8 4.6-20 2.3-29-.2-3.1-1-5.9-1.5-8.9-9.6-25.5-1.3-54.2 2.8-80a61 61 0 01-16.4 5.5c-4.5.6-9.5.4-14 .1l-2-.5"/>
+    <path fill="#80cfe1" d="M190.2 261.5c0 1.6.9 3 1.2 4.5 1.9 11.2 3.6 26-7.8 32.9-12.8 8-29.4 4.6-44.1 8.9-3 .8-7 3.5-9 5.4-1.4-.9-2.7-2.2-4.4-3-12.1-6.4-27.9-4.3-41.5-7.8-6.9-2.1-14-7.5-15.8-14.5-4.4-18.4 6.2-34.1 5-52.4-.8-14-3.2-27.3-6.4-40.4 10.7 5 23 5.8 35 3.4A51.6 51.6 0 01130 201c4.6-2 10-2.9 15-3.4 9.3 1 19.4 2.6 29.1 2.6 6.5-.4 12.4-2.2 18-4.7-3.3 21.6-9.8 44.2-1.9 66"/>
+    <path fill="#fff" d="M171 265.8v-20.4h2.4l-31-20-.1-10.5h3l-15.6-11-15.4 11h3v10.5l-30.9 20h2.5v20.3H171"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M376 906.5v-17.8h2.1l-27-17.5-.1-9h2.6l-13.6-9.8-13.5 9.7h2.6l.1 9.1-27 17.5h2.2v17.7H376z" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+    <path fill="#fff" d="M180.6 292.5v6.3H80.5v-6.4h100"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M384.4 929.8v5.5H297v-5.6h87.4z" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+    <path fill="#fff" d="M87.1 292.1v-21.5h4l-.2 21.7.2-21.6-5.8-.1v-4.7l89.4.2v4.5h-5.4v21.8l-.1-21.8h4l.2 21.6"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M302.8 929.4v-18.8h3.5l-.2 19 .2-18.8-5-.2v-4l78 .1v4h-4.8l.1 19-.2-19h3.6l.1 18.8" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M319.6 924.8v-13.1H309v13l10.5.1" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M312 914.4v7.6h4.8v-7.6h-4.9m59 10.4l-.1-13h-10.4v13h10.5" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M363.2 914.5v7.6h4.8v-7.6h-4.8m7.6-11v-13h-10.5v13h10.5z" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M363.1 893.2v7.6h4.8v-7.6h-4.8m-43.6 10.3v-13.1H309v13h10.5z" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M311.9 893.1v7.6h4.8v-7.6h-4.8m26.6 10.4v-13.1H328v13h10.5" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M330.8 893.1v7.6h4.8v-7.6h-4.8m22.3 10.4v-13l-10.5-.1v13l10.5.1" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M345.4 893.1v7.6h4.9v-7.6h-4.9" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+    <path fill="#fff" d="M147.7 257.8l.2 34.6H113l-.1-34.6h34.7"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M355.7 899.5l.1 30.2h-30.3l-.1-30.2h30.3zm-30.5 8.6h30.6M329 929.7v-21.4m23.1 21.4v-21.3m14.7-21.8l-17-12.4h-19.3l-17 12.4h53.3M332 863.8v7.6h16.2v-7.6H332" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M336.4 865.7v3.8h7.4v-3.8h-7.4M340 855l9 6.4h-17.9l9-6.4" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+    <path fill="#fff" d="M171.4 202c2.9 0 3.6 12 3.6 18 2.6.8 8.1 4.3 10.6 7.4h-28.2c2.4-3.1 7.9-6.6 10.4-7.3 0-6 .6-18.2 3.6-18"/>
+    <path fill="none" stroke="#000" stroke-width="1.2" d="M376.3 850.8c2.6 0 3.2 10.5 3.2 15.8 2.2.6 7.1 3.7 9.2 6.4h-24.6c2.1-2.7 7-5.8 9.1-6.4 0-5.3.6-15.8 3.1-15.8m-49.5 49.5h2.2l-.6 1.2s1 1.4 0 3l.6 1h-2.2l.6-1s-1-1.8 0-3l-.6-1.2m4.5 0h2.2l-.6 1.2s1 1.4 0 3l.6 1h-2.2l.6-1s-1-1.8 0-3l-.6-1.2m5 0h2.1l-.6 1.2s1 1.4 0 3l.6 1h-2.1l.5-1s-1-1.8 0-3l-.6-1.2zm5.5 0h2.2l-.7 1.3s1.1 1.3 0 2.9l.6 1h-2.1l.6-1s-1-1.8 0-3l-.6-1.1zm4.9 0h2.2l-.7 1.3s1.1 1.3 0 2.9l.6 1h-2l.5-1s-1-1.8 0-3l-.6-1.1m4.9 0h2.2l-.7 1.2s1.1 1.3 0 2.9l.6 1h-2l.5-1s-1-1.8 0-3l-.6-1.1" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+    <path fill="#ff0" d="M130.5 336.8c13 0 29-2.7 36.5-6.5l16.5-1.5.4 20.1c-14 7.7-46.2 9.4-53.3 9.3-7.1 0-39.7-1.6-53.8-9.3l.2-20.2 16.5 1.5a98 98 0 0037 6.6"/>
+    <path fill="none" stroke="#000" stroke-width=".3" d="M340.7 968.4c11.4 0 25.3-2.3 31.9-5.7l14.3-1.2.3 17.5c-12.1 6.7-40.3 8.2-46.4 8.1-6.2 0-34.7-1.4-47-8.2l.2-17.5 14.4 1.3c6.6 3.4 21 5.7 32.3 5.7" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+    <path fill="#ff0" d="M34.4 251l14.5 4.6-4.4 23.5-13.7 2.2s-2.3-12.4 3.6-30.3"/>
+    <path fill="none" stroke="#000" stroke-width=".3" d="M256.9 893.6l12.6 4-3.8 20.5-12 1.9s-2-10.8 3.2-26.4z" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+    <path fill="#7e7e7e" d="M44.5 278.9l-13.7 2.4 8.7-12.4 5 10"/>
+    <path fill="none" stroke="#000" stroke-width=".3" d="M265.7 917.9l-12 2 7.6-10.7 4.4 8.7" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+    <path fill="#ff0" d="M25.7 268l14 1c.3 11.8 1.8 57 55.8 59.5L93.8 345c-65.7.6-70.7-55.5-68-77"/>
+    <path fill="none" stroke="#000" stroke-width=".3" d="M249.3 908.4l12.2.8c.3 10.4 1.5 49.8 48.7 52l-1.5 14.4c-57.4.6-61.7-48.4-59.4-67.2zm44.8 70.1l14.4-3.1" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+    <path fill="#ff0" d="M225.4 251.2l-14.4 4.6 4.6 23.4 13.8 2.2s2.2-12.3-4-30.2"/>
+    <path fill="none" stroke="#000" stroke-width=".3" d="M423.5 893.7l-12.6 4 4 20.5 12 2s2-10.8-3.4-26.5z" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+    <path fill="#7e7e7e" d="M215.6 279l13.7 2.5-8.8-12.4-5 9.9"/>
+    <path fill="none" stroke="#000" stroke-width=".3" d="M414.9 918l12 2.1-7.7-10.7-4.3 8.6" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+    <path fill="#ff0" d="M234.3 268.1l-14 1c-.2 11.8-1.3 57-55.3 59.5l2 16.4c65.7.8 70.2-55.4 67.4-76.9"/>
+    <path fill="none" stroke="#000" stroke-width=".3" d="M431.2 908.5l-12.2.8c-.2 10.4-1 49.9-48.2 52l1.6 14.3c57.4.7 61.3-48.3 58.8-67zm-44.2 70l-14.4-3" transform="matrix(1.1464 0 0 1.1461 -260 -773.1)"/>
+    <path fill="#009fc5" d="M121.8 346.7c-.4.2-1 .3-1.5.2l-2.6-.1.2-3.3 2.6.2c.5 0 1 .1 1.2.3.5.2.7.7.7 1.4 0 .6-.3 1-.7 1.3m-4.3 5l.2-3.9 3 .2c1 .1 1.8-.2 2.3-.7.5-.4.8-1 .8-1.8a2.5 2.5 0 00-.6-2 3.2 3.2 0 00-2-.9l-4.4-.3-.6 9.4h1.3m9.4-7.7h3.2l1.1.2c.5.3.7.7.7 1.4 0 .6-.1 1-.5 1.3a2.6 2.6 0 01-1.4.3h-3.1V344m0 8.2v-4l3 .1c.5 0 1 0 1.2.2.4.2.7.6.7 1.2v2.3l.2.3h1.6v-.2a.8.8 0 01-.4-.5 3.4 3.4 0 01-.1-.8v-1.3c0-.6-.2-1-.4-1.2a1.7 1.7 0 00-.8-.6c.4-.2.8-.5 1-.8.2-.4.4-.8.4-1.4 0-1-.5-1.8-1.4-2.2a4.7 4.7 0 00-1.8-.4h-4.5v9.4h1.3m10-2a4.5 4.5 0 01-1-2.6c0-1.3.2-2.3.8-3a3.1 3.1 0 012.4-1 3 3 0 012.4.8c.7.6 1 1.5 1.1 2.6a5 5 0 01-.6 2.8c-.5.8-1.3 1.3-2.5 1.3s-2-.2-2.7-.9m-1.5-5.9a6 6 0 00-.8 3.3c.1 1.4.5 2.6 1.4 3.4a4.6 4.6 0 003.6 1.3 4.4 4.4 0 003.5-1.8 6 6 0 001-3.6 5 5 0 00-1.2-3.1c-.9-1-2.2-1.5-3.9-1.4-1.6 0-2.8.7-3.6 1.9m44-13.5c1-.1 1.8-.1 2.5.1 1 .4 1.7 1.1 2.2 2.3l-1.3.2a2.4 2.4 0 00-1.2-1.3 3.5 3.5 0 00-2-.2 3 3 0 00-2 1.3c-.5.7-.7 1.7-.5 3a4.5 4.5 0 001.2 2.6c.6.6 1.5.8 2.6.7a3.2 3.2 0 002-1.1c.6-.6.7-1.4.5-2.5l-3 .5-.1-1 4.2-.7.8 5h-.9l-.5-1-1 1c-.5.5-1.2.7-2 .9a4.3 4.3 0 01-3.2-.7 5 5 0 01-1.9-3.4 5.1 5.1 0 01.7-4 4.1 4.1 0 013-1.7m9.4-.7l3-1.1c.4-.2.8-.2 1.1-.2.6 0 1 .4 1.2 1 .2.6.2 1.1 0 1.5-.3.3-.7.6-1.3.8l-2.8 1-1.2-3m3 7.7l-1.4-3.7 2.8-1a3 3 0 011.1-.3c.5.1.9.4 1.2 1l.6 1.4.3.7.2.3 1.5-.6v-.2c-.3 0-.5-.1-.6-.4-.2-.1-.3-.4-.4-.7l-.5-1.2c-.2-.5-.5-.8-.7-1a2.4 2.4 0 00-1-.2l.6-1.2c0-.4 0-.9-.2-1.4-.4-1-1-1.6-2-1.6a4.5 4.5 0 00-1.9.3l-4.2 1.5 3.4 8.8 1.2-.4m11-4.7l-5.3-7.8 5.8-3.8.7 1-4.8 3 1.6 2.4 4.5-2.8.6.9-4.5 2.8 1.8 2.7 5-3.2.6 1-6 3.8m4.7-13.8l1.5-1.7c.8-.8 1.5-1.1 2.3-1 .9 0 1.7.5 2.6 1.3a4.7 4.7 0 011.4 2c.2.6.1 1.1 0 1.6a4 4 0 01-.7 1l-1.5 1.6-5.6-4.8m8.1 3.6c1.1-1.2 1.3-2.4.7-4a6.7 6.7 0 00-1.7-2.1 5.2 5.2 0 00-3.1-1.4c-1.2-.1-2.2.3-3.1 1.3l-2.6 2.8 7.2 6.3 2.6-2.8m5.6-7.3l-8.3-5 .7-1 8.3 4.9-.7 1m3.3-5.6l-9-3.6 2.6-6.3 1.1.4-2.1 5.2 2.7 1 2-4.7 1 .4-2 4.8 3 1.2 2.3-5.2 1 .4-2.6 6.4m4-11l-9.4-2 .4-1.5 8.7-3-7.7-1.7.3-1.1 9.4 2-.3 1.4-8.7 3 7.7 1.7-.3 1.2m-.8-12l.1-1.2c.6 0 1 0 1.4-.2.7-.4 1-1.1 1.2-2.1a3.7 3.7 0 00-.1-1.4c-.2-.7-.6-1.2-1.3-1.2-.6-.1-1 0-1.2.3-.3.3-.5.8-.7 1.5l-.5 1.2c-.2.8-.5 1.4-.8 1.7-.4.6-1 .8-1.8.7a2.8 2.8 0 01-2-1c-.6-.6-.8-1.5-.7-2.6.1-1 .4-1.8 1-2.4.5-.6 1.3-1 2.4-.8l-.1 1.2c-.5 0-1 0-1.2.3-.6.3-.9 1-1 1.9 0 .7 0 1.2.4 1.6.3.4.6.6 1 .6.5 0 .9 0 1.1-.4l.7-1.7.4-1.3c.2-.6.5-1 .8-1.4.5-.5 1.2-.7 2-.7 1.1.1 1.9.6 2.2 1.4.4.8.6 1.6.5 2.7a3.9 3.9 0 01-1.2 2.6c-.7.6-1.5.8-2.6.7m-195.6-.6l.3 1.2c-.6.1-1 .3-1.3.6-.5.5-.7 1.3-.5 2.4a4 4 0 00.4 1.2c.4.7 1 1 1.7.9.5-.1.8-.3 1-.7l.3-1.6v-1.3c0-.8.2-1.5.3-1.8.3-.6.9-1 1.7-1.2.8-.1 1.6 0 2.2.6.7.4 1.1 1.2 1.3 2.2a4 4 0 01-.3 2.6c-.4.8-1 1.2-2.1 1.4l-.2-1.1a3 3 0 001-.6c.5-.5.6-1.2.5-2.1-.2-.8-.4-1.3-.8-1.5a1.5 1.5 0 00-1.2-.3 1 1 0 00-1 .7l-.1 1.8-.1 1.3a3.5 3.5 0 01-.4 1.6 2.2 2.2 0 01-1.7 1.2c-1 .2-2-.1-2.5-.8a5 5 0 01-1.2-2.4 3.8 3.8 0 01.5-2.9 3 3 0 012.2-1.3m-.6 12.3l9.3-2.8 2.1 6.5-1.1.4-1.8-5.3-2.8.8 1.7 5-1.1.3-1.6-5-3.2 1 1.8 5.4-1 .3-2.3-6.6m4.1 11.3l8.5-4.5 1 1.6-5.9 6.1 8.5-1.4.9 1.5-8.5 4.5-.6-1 5-2.7.9-.4 1.3-.7-8.5 1.5-.6-1.1 5.8-6.2-.3.2-1 .5a7 7 0 01-.9.5l-5 2.6-.6-1m15.8 12.5c-.4-.1-.8-.4-1.2-.8l-1.8-1.8 2.4-2.2 1.8 1.8a3 3 0 01.7 1c.2.5 0 1-.5 1.5-.5.4-1 .6-1.4.5m-6.8.8l3-2.7 2 2.1c.8.7 1.5 1 2.2 1a3 3 0 002-.8 3 3 0 00.8-2c0-.6-.3-1.3-.9-1.9l-3-3-7 6.4 1 1m8.4 7.5l5.1-8 6 3.6-.6 1-5-3-1.5 2.5 4.5 2.7-.5 1-4.6-2.8-1.7 2.7 5 3-.6 1-6.1-3.7m15-1.6l3.1 1 1 .5c.4.4.5.9.2 1.5-.2.6-.4 1-.9 1.1l-1.5-.1-2.9-1 1-3m-2.6 7.9l1.3-3.8 2.8.9c.5.1 1 .3 1.1.5.3.3.4.8.3 1.4l-.5 1.5-.1.7v.3l1.5.5v-.2l-.2-.7.2-.7.4-1.2c.1-.6.2-1 0-1.2 0-.3-.3-.6-.6-.9.5 0 1-.2 1.3-.5.3-.3.6-.7.7-1.2.4-1 .2-1.9-.6-2.5a5.2 5.2 0 00-1.6-.9l-4.3-1.3-3 8.9 1.3.4"/>
+    <path fill="#bc715f" d="M78.5 175.6c1-2.7 11.3-10 44.8-6.8 0 0 5.7 3.5 9 3 2-.2-1 .2-3.6-1.9-2.5-2-3-6.3 2.7-6.1 5.8.1 27.3 1.3 27.7 3.3.4 1.9-11.4 2.7-15.7 2.6-4.4-.1-4 2.1.4 2 13.7-.6 28.6-5.4 44.3 5.8 1.9 1.3-4.7 1.5-9.8-.6 0 0-14 .7-20-.3 0 0-4.5 3.8-10.6 3.4.8 2-2.2 9.2-21 3.7-3.2 1-14.5 2.9-13.3-.5-3 0-8.2 1-9-.7-.8-1.7 9.2-4.2 11-6 0 0-21.2.2-25.2-1.3 0 0-12.5 2.8-11.7.4"/>
+    <path fill="#008737" d="M85.3 205.2c.4-.6.6-1.8 1.6-1.7 2 .5 3.5 4.4 6 1.9 1-.2 1.3 1 2 1.2.5 2.1 2.3-.5 3.5-.3 2.8-1.2 6.1-1.5 9.4-1 0 2.2-1.6 4.5-3.6 5.7 0 2 2 3.4 1.9 5.5-.3.8 0 2-1.2 2.3-1.6-.3-3-.4-4.3-1.3-.2-.1-.3-.4-.6-.3-.2.7 1 1.4 1.4 2.1-.8 1.3-2 .1-3.1.1-.3.8 0 1.7-.8 2.2-1.3 0-1.6-1.5-2.4-2.2-.9.9.6 1.4.8 2.1-.6 2.8-.5 5.5-3.2 7.3l-1.9.9c-.5-1.4-.2-3.5-.5-5-1 1.8-2 3.4-3.5 4.9-2-.6-3-2.8-3.4-4.7a5.8 5.8 0 011.3-6.2c-.5-1-2.5-.8-2.8-2.4-3-2-4.5 3.3-6.4.6a8.6 8.6 0 012-7.6c-.5-1-1.9-.8-2.7-1.4-1.8-1.6-4.5-3.2-4.3-6a14 14 0 0114.7 3.3"/>
+    <path fill="#ff0" d="M87.9 204.9c-.1 2.3 1.5.6 2.8 2-1-.4-1.7 1.7-2.7.5l-.6.6c.4.8 1 .9.4 1.8-1 .4-1.3-1-1.8-1.5 0-.2.2-.6-.2-.8-.6.5-1.2.7-2 .6-.2-.4-.7-1-.2-1.4.8-1 2 .4 2.6-.3.1-.7-.5-1.5.3-2 .5.1 1.2-.2 1.4.5m6.2 1.9c.1.4-.2 1 .4 1.4.8-.4 1.6-.1 2 .6 0 .4.1 1-.4 1.2l-1.2-.3c.1-.2-.3-.3-.4-.6-.5-.1-.9.3-1.2.6.3.4 1 .7.8 1.2-.7.7-1-.6-1.8-.2-.6-.2.1-1.3-.7-1.7-1 0-.3 1.6-1.6 1-.4-.5-.8-1.2-.4-1.7a1.6 1.6 0 011.9.2c.8-.9.8-4.1 2.7-1.7m-7.8 3.3c.5.8-.2 1.8.5 2.6 1-2 2 .4 3.2.2.4.5.1 1.1.2 1.6-1.5.4-3.3.9-4.6-.3l-.4.4c.8.7 1.5 1.6.9 2.8-1.1.2-2.9.3-3.4-.9-.3-1 .7-1.6-.4-2.4-.7 1-.7 2.2-2.2 1.3a1.9 1.9 0 01-.8-2.5c1-1.6 2.8 0 3.8-.7.2-1.4-.3-2.6 1-3.3 1-.2 1.5.6 2.2 1.2"/>
+    <path fill="#fff" d="M90.6 211c-.5 2.3-2.2-.1-3-.2 1-2 1.7.6 3 .2m5.4 2.5c-1.2.3-1-1.2-1.6-1.8l.5-.4c.4.5.7 1.5 1.1 2.2"/>
+    <path fill="#ff0" d="M94.4 213c.3.8-.8 1.5.2 2l.8-.7c.9.2 1.8.4 2.4 1.2.6 1.7-1.1 1.7-2 2.2h-1c.2-.6-.5-.8-.6-1a1 1 0 00-1.1.3c.2 1 1.5 2 .2 2.9-1.2 0-3 .4-2.9-1.2-.4-1 1.2-2.3-.5-2.4-.6 1.3-1.2 2.4-2.7 1.3l.2-1.8c1.4 0 3.1.3 3.7-1.3.4-1.1-.7-2.2.3-3 1.5-.4 2.3.6 3 1.5"/>
+    <path d="M93.4 215.6c.3.9-.6 1-1.1 1.4-.6 0-1-.2-1.4-.6-.3-1 .5-1.2 1-1.6.7-.3 1 .5 1.5.8"/>
+    <path fill="#fff" d="M92.5 216.2c-.1.2-.4.1-.6.2l-.2-1c.5 0 1 .1.8.8"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sy.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sy.svg
new file mode 100644
index 0000000..b30a3ba
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sy.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sy" viewBox="0 0 640 480">
+  <rect width="640" height="160" y="160" fill="#fff" fill-rule="evenodd" rx="0" ry="0"/>
+  <rect width="640" height="160" y="320" fill-rule="evenodd" rx="0" ry="0"/>
+  <path fill="red" fill-rule="evenodd" d="M0 0h640v160H0z"/>
+  <path fill="#090" fill-rule="evenodd" d="M201.9 281l-28.8-20.9-28.7 21.1 10.7-34.2-28.7-21.2 35.4-.3 11-34.1 11.3 34h35.4L191 246.9l10.9 34.2zm307.6 0l-28.8-20.9-28.7 21.1 10.7-34.2-28.6-21.2 35.4-.3 11-34.1 11.2 34h35.4l-28.5 21.4 11 34.2z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sz.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sz.svg
new file mode 100644
index 0000000..4904c42
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/sz.svg
@@ -0,0 +1,45 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-sz" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="sz-a">
+      <path fill-opacity=".7" d="M-85.3 0h682.6v512H-85.3z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#sz-a)" transform="translate(80) scale(.9375)">
+    <path fill="#3e5eb9" fill-rule="evenodd" d="M-128 0h768v512h-768z"/>
+    <path fill="#ffd900" fill-rule="evenodd" d="M-128 91.4h768v329.2h-768z"/>
+    <path fill="#b10c0c" fill-rule="evenodd" d="M-128 128h768v256h-768z"/>
+    <rect width="621.7" height="11" x="-51.4" y="250.5" fill="#ffd900" fill-rule="evenodd" stroke="#000" stroke-width="1.5" rx="5.8" ry="5.8"/>
+    <g stroke="#000" transform="translate(-757 -25.6) scale(1.0321)">
+      <path fill="#fff" fill-rule="evenodd" stroke-width="4.2" d="M-106.3 265.8l-88.6 35.4 88.6 35.4 88.6-35.4-88.6-35.4z" transform="matrix(.34 0 0 .3 1256.8 136.4)"/>
+      <rect width="442.9" height="7.1" x="761.8" y="223.2" fill="#ffd900" fill-rule="evenodd" stroke-width="1.3" rx="4.1" ry="3.8"/>
+      <path fill="none" stroke-width="2.7" d="M1224.4 280c-3.5 0-7-3.6-7-7.2s3.5-7 7-7" transform="matrix(-.50001 0 0 .5 1806.3 90.3)"/>
+      <path fill="none" stroke-width="2.7" d="M1224.4 280c-3.5 0-7-3.6-7-7.2s3.5-7 7-7" transform="matrix(-.50001 0 0 .5 1802.8 90.3)"/>
+      <path fill="none" stroke-width="2.7" d="M1224.4 280c-3.5 0-7-3.6-7-7.2s3.5-7 7-7" transform="matrix(-.50001 0 0 .5 1799.2 90.4)"/>
+    </g>
+    <g stroke="#000" transform="translate(-786.3 -3.7) scale(1.0321)">
+      <path fill="#fff" fill-rule="evenodd" stroke-width="4.2" d="M-106.3 265.8l-88.6 35.4 88.6 35.4 88.6-35.4-88.6-35.4z" transform="matrix(.34 0 0 .3 1256.8 136.4)"/>
+      <rect width="442.9" height="7.1" x="761.8" y="223.2" fill="#ffd900" fill-rule="evenodd" stroke-width="1.3" rx="4.1" ry="3.8"/>
+      <path fill="none" stroke-width="2.7" d="M1224.4 280c-3.5 0-7-3.6-7-7.2s3.5-7 7-7" transform="matrix(-.50001 0 0 .5 1806.3 90.3)"/>
+      <path fill="none" stroke-width="2.7" d="M1224.4 280c-3.5 0-7-3.6-7-7.2s3.5-7 7-7" transform="matrix(-.50001 0 0 .5 1802.8 90.3)"/>
+      <path fill="none" stroke-width="2.7" d="M1224.4 280c-3.5 0-7-3.6-7-7.2s3.5-7 7-7" transform="matrix(-.50001 0 0 .5 1799.2 90.4)"/>
+    </g>
+    <g fill-rule="evenodd">
+      <path fill="#3d5da7" stroke="#000" stroke-width="1.4" d="M338-.4c-5.5 12.4 4.3-4.1 28.4 16.7 4.4 3.8 8.3 14 8.3 21.1-1.1-1-2-3-3.2-4.5-1.8 2.3 1.7 12.6 2.2 17.5-3.8-2.7-3.4-4-4.7-7.4.3 4-.6 15.2.9 19.4-3-1-2.8-4.1-4.3-4.8 1 4.9-1 10.1-.4 15.6-1.8-2.2-3.6-4-4.4-4.9-.1 2.6-3.3 9.4-3.4 11.9-1.5-1.2-1.9-3-2.1-4.2-1.8 3-8.3 14-8.7 17.2-5-5.7-17.8-19.5-19.5-26.9-1.5 4.2-3.6 5.6-7.8 8.7-1.7-11.7-8-24.8-4.6-34.8a84.4 84.4 0 00-6.6 5.9A67.9 67.9 0 01338-.4z" transform="matrix(.9944 0 0 .77118 190.4 252)"/>
+      <path fill="#a70000" d="M505.9 299.2c2.3-4.6 4.4-6 5.9-9 2.6-5.2 3-9.4 5.3-8.8 2.3.6 2.3 2.8-.7 7.9-3 5-4.4 6.2-10.5 9.9zm15.5 11c-.3-3.6.8-5 .6-7.3-.3-4-2-6.7.1-6.9 2.1-.2 3.1 1.2 3.1 5.2s-.6 5-3.8 9zm11.8 6.8c-.9-5-.2-7-.8-10.2-1-5.6-3-9.2-1-9.7 1.9-.5 3 1.3 3.8 6.9.7 5.6.3 7.2-2 13zm12.3-34.3c-2.9-2.1-4.6-2.3-6.4-3.7-3.3-2.5-5-5.1-6-3.8-1 1.3-.3 2.7 3.1 5 3.5 2.3 4.6 2.5 9.3 2.5zm-2 16.3c-1.5-3.2-3.1-4-4.1-6-1.8-3.6-1.8-6.7-3.6-5.9-2 .8-2 2.4 0 5.9 2 3.4 3 4 7.7 6z"/>
+    </g>
+    <g fill-rule="evenodd">
+      <path fill="#3d5da7" stroke="#000" stroke-width="1.4" d="M329.6 20.7c-.3-2.7.3-3-1.3-5 2.2 1 2.3 3.7 5 1.8 1-.6 1.4-.6.2-3.5 2.8 0 12 3.5 13.4 3.6 3.9.2 10.9-4.4 15.7 1.2 4.7 5.1 3.1 10.4 3.1 17.5-1.8-1-1-1.4-3-4 1.6 6.2 0 17.4 0 24-.8-1.6-.7-1-1.4-2.6-2 6-4.4 7.3-4.4 14.3-.7-2.7 0-2.2-.8-3.6-2 4.5-15 8.4-10 13-4.4-2.8-6.4-2.5-8.5-5.1-.9.6-1.6 1.8-2.4 3.4-8-4-5-12.5-11.3-18.2-1 2.4-.6 2-1.8 5.9-1.2-5.4-1.6-8.9-3-12.8-1.2 2.2-1 1.3-3.3 4.7-1-6.6-2.4-8.2-1.8-12.5-2.4 1.8-.8 1-3.2 3.3 2.2-17 11.9-29.4 18.8-25.4z" transform="matrix(1.1372 0 0 1.0495 -399.4 239.2)"/>
+      <path fill="#a70000" d="M-35.7 289.8c2.3-5.7 4.4-7.5 6-11.2 2.6-6.4 3-11.6 5.2-10.8 2.3.8 2.2 3.4-.8 9.8a25 25 0 01-10.4 12.2zm8.8 14.3c1-5.1 2.4-7 3-10.3 1-5.8.5-10.1 2.6-9.9 2 .3 2.5 2.4 1.1 8.2-1.4 5.8-2.3 7.1-6.7 12zm10.5 9.9c.3-5 1.5-6.9 1.6-10 .3-5.7-.7-9.7 1.2-9.7 2 0 2.7 2 2.1 7.6-.6 5.6-1.3 7-4.9 12zm22.7-32.4c-4.4-4.3-7-5.1-9.8-8-4.9-4.8-7.3-9.4-9-7.7-1.8 1.6-.7 4 4.5 8.7 5.2 4.6 7 5.2 14.3 7zm-2.7 16.6C.8 294-1.2 292.8-3 290c-3.2-4.9-4.3-9.1-6-8-2 1-1.5 3.2 2 8 3.4 4.7 4.8 5.5 10.7 8.2z"/>
+    </g>
+    <g fill-rule="evenodd">
+      <path fill="#fff" stroke="#000" stroke-width="2.1" d="M637.8 230.3c-53.1 59-124 177.2-265.8 177.2-124 0-212.6-118.1-265.7-177.2C159.4 171.3 248 53.2 372 53.2c141.8 0 212.6 118 265.8 177.1z" transform="matrix(.68807 0 0 .61926 0 113.4)"/>
+      <path d="M243.2 184.4c9.8 11 1.6 15.4 12 16.1 10.8.8 4.6 11.6 13.8 12 6.4.2-.7 25.7 5.5 34.2 6.3 8.7 11.5 2.5 11.6 8.9.1 6.5-17 5.9-17.3 26-.5 11.7-14.5 12.5-15.2 20-.8 7 27.5 11 27.2 17.3-.4 6.3-30.7 5.3-32 12.4-.6 6.5 41.6 11.8 45 30.4-6.3 2-24.3 4-37.8 4-85.3 0-146.3-73.1-182.9-109.7 36.6-36.6 97.6-109.7 182.9-109.7 0 0-25.3 23.1-12.8 38.2z"/>
+      <path fill="#fff" stroke-width="1pt" d="M141.4 217h8.9v29.2h-8.9zm0 48.8h8.9V295h-8.9zm17.7-48.8h8.9v29.2h-8.9zm0 48.8h8.9V295h-8.9zM177 217h8.8v29.2H177zm0 48.8h8.8V295H177zm17.7-48.8h8.9v29.2h-8.9zm0 48.8h8.9V295h-8.9zm17.7-48.8h8.9v29.2h-8.9zm0 48.8h8.9V295h-8.9zm17.8-48.8h8.8v29.2h-8.8zm0 48.8h8.8V295h-8.8z"/>
+      <path stroke-width="1pt" d="M275.5 217h8.9v29.2h-8.9zm0 48.8h8.9V295h-8.9zm17.7-48.8h8.9v29.2h-8.9zm0 48.8h8.9V295h-8.9zM311 217h8.8v29.2H311zm0 48.8h8.8V295H311zm17.7-48.8h8.9v29.2h-9zm0 48.8h8.9V295h-9zm17.7-48.8h8.9v29.2h-8.9zm0 48.8h8.9V295h-8.9zm17.8-48.8h8.8v29.2h-8.8zm0 48.8h8.8V295h-8.8z"/>
+    </g>
+    <g fill-rule="evenodd">
+      <path fill="#3d5da7" stroke="#000" stroke-width="1.4" d="M338-.4c-5.5 12.4 9.8-4.1 33.8 16.7a51.2 51.2 0 0110.9 26.2c-5.1-1.2-14.2-7-14.2-7s10.6 12.2 10.6 26.4c-3.7-2.7-5.6-2.3-6.8-5.6 0 4.5 3.3 7.5 3.3 14.6a49.8 49.8 0 00-7.3-5.7c3.5 7.1-6.5 20.9-1.5 25.5-8.7-1.5-17.7-8-21.2-15-1.9 1.4-2 3.7-2.2 6.2.3.2-13.3-11.7-12-16.3-1.9 3-2.1 4.6-2.5 8a44 44 0 01-11.3-18.8l-4.6 6.7c-1.6-11.7-1.6-11.3 1.7-21.3a84.4 84.4 0 00-6.6 5.9A67.8 67.8 0 01338-.4z" transform="matrix(.9094 0 0 .78749 -110.6 166.1)"/>
+      <path fill="#a70000" d="M184.4 213.6c.8-6.7 2.5-9.3 3-13.6 1-7.7-.1-13.2 2.6-13.1 2.7.1 3.5 3 2.2 10.6-1.4 7.6-2.5 9.5-7.8 16.1zm14.1 12.4c-.5-5.7.5-8.1.2-11.8-.6-6.4-2.6-10.8-.3-11.2 2.4-.4 3.6 1.7 3.8 8.3.3 6.5-.3 8.2-3.7 14.7zm22.1 10c-2.4-4.8-4.5-6.3-6-9.5-2.8-5.6-3.3-10.1-5.4-9.3-2.2.8-2 3.2 1 8.7 3 5.4 4.5 6.5 10.4 10.2zm7.6-44c-6-3.3-9.2-3.3-13.2-5.4-6.9-3.6-11-7.7-12.4-5.5-1.4 2.3.5 4.5 7.7 7.8 7.1 3.3 9.3 3.5 18 3zm2.3 18.4c-4.5-3.7-7.1-4.3-10-6.7-5-4.1-7.6-8.2-9.3-6.6-1.6 1.7-.5 3.9 4.8 7.8 5.3 4 7.1 4.5 14.5 5.5z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tc.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tc.svg
new file mode 100644
index 0000000..a78d1fe
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tc.svg
@@ -0,0 +1,67 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-tc" viewBox="0 0 640 480">
+  <path fill="#006" d="M640 480V0H0v480h640z"/>
+  <path fill="#006" fill-rule="evenodd" d="M0 0h373.7v232.2H0z"/>
+  <g stroke-width="1pt">
+    <path fill="#fff" d="M0 0v26l331.9 206.2h41.8v-26L41.7 0H0zm373.7 0v26l-332 206.2H0v-26L331.9 0h41.8z"/>
+    <path fill="#fff" d="M155.7 0v232.2H218V0h-62.3zM0 77.4v77.4h373.7V77.4H0z"/>
+    <path fill="#c00" d="M0 92.9v46.4h373.7V92.9H0zM168.2 0v232.2h37.3V0h-37.4zM0 232.2l124.6-77.4h27.8L27.8 232.2H0zM0 0l124.6 77.4H96.7L0 17.3V0zm221.3 77.4L345.8 0h27.9L249 77.4h-27.8zm152.4 154.8L249 154.8h28l96.7 60v17.4z"/>
+  </g>
+  <path fill="#fff" d="M612.5 212.4v80c0 65.6-25.7 125.6-102.2 162.1C434 418 408.1 358 408.1 292.3v-79.8h204.5z"/>
+  <path fill="#fdc300" d="M605.7 220.6V295c0 61.2-24 117.2-95.3 151.3-71.3-34-95.4-90-95.4-151.3v-74.5h190.7z"/>
+  <g stroke="#000" stroke-width=".1">
+    <path fill="#ff9e3d" d="M206 52.9a2 2 0 00-1.3-.5c.1-1.3-.8-1.8-1.5-2-.7-.3-1-.6-1-1.1-.1-.5-.5-.9-1.1-1-.6-.2-1.2-.8-1.4-1.1-.2-.3-.3-.3-.5.2s-.9 1.5-.2 1.5c-.5.4-.8.8-.5 1.4-.3.3-.5.7-.1.8l.6.4c-.4 0-.5.8.4 1-.2 0-.3.6.1.6-.5 0-1 .8-1.6.8-.7 0-1 .2-1 .5l-.6.8c.5 0 .8 0 1-.2s.7-.3 1 0c.3.2 1 .3 1.2.2-.6.5-1 1-1.1 1.6 0 .6-.5 1.2-1 1.4-.3.2-1 .6-1.1 1.2.5 1.4 1.3 1.7 2.1 2.1 1.4.6 2.3 1.1 2.9 1.8.6.6.8.1 1.7 1.3.9 1 1.7 3.2 2.6 3.5.9.4 2 .2 2.6-1 .7-1 1-12.4-2.2-14.3z" transform="matrix(3.909 0 0 3.9094 -339.1 46.6)"/>
+    <path fill="#ff927f" d="M207.5 48.1c-.9 1-2 1.8-1.7 3.4s.3 4.2-1.2 5c-1.4 1-2.1 3.2-.4 4.5 1.8 1.3 1.9 2.9 2.1 4.3.3 1.5 1.1 2.7 2.3 1.7 1.2.2 1.8-.3 1.8-1.3s0-1.4 1-1.7c.8-.3 1-.6 1.5-1.4.4-.8.6-1.2.4-1.6a3.7 3.7 0 01-.2-2.2c.2-.7-.2-1-.4-1.5a1.9 1.9 0 01-.2-1.4c0-.6-.2-1-.6-1.3-.4-.3-.6-.6-.5-1 0-.5-.3-.8-.8-1.2s-.7-.8-.7-1.5-1.4-2.3-2.4-2.8z" transform="matrix(3.909 0 0 3.9094 -339.1 46.6)"/>
+    <path fill="#ff9ee1" d="M207.8 67.3c2-.5 1.8-3.7 1.5-5-.3-1.4-1-3.3-.5-4.9.8-2.1-1-4.2-.5-5 .5-.9.4-1.3.3-1.6 0-.2-.5-.4-.5.1 0 .6-.2.8-.5 1.1s-.3 1.2 0 2c.2.9.8 2.2 0 3.9-1 1.7-.6 2.4-.3 3.2.6 1.3 1.8 5.6.5 6.2z" transform="matrix(3.909 0 0 3.9094 -339.1 46.6)"/>
+    <path fill="none" d="M199 48.9c.2 0 .6 0 .6.2m-1 1.2c.2-.2.7 0 1.1-.2m-.7 1.4c.3 0 .8 0 1.3-.4m-.9 1.4c.4 0 1-.2 1.1-.7m-1 1.3c.7 0 1.5.2 1.6 0m-1.5 2.1c.4-.4 1.4-.7 1.7-1m-.6-5.5c.7.2.4.7.8 1 .6.4 0 1 .6 1.1.5.2.5.3.3.9-.1.7.5.7.3 1.2m2-.5c-.3 0-1.2 0-1.5.8m-4.8 7.7c.4 0 .5-.1.6-.3.1-.2.2-.4.5-.4s.8-.1.9-.3c0-.3.4 0 .7-.7.4-.6.6-1.3 1.4-1.6" transform="matrix(3.909 0 0 3.9094 -339.1 46.6)"/>
+  </g>
+  <g stroke="#000" stroke-width=".1">
+    <path fill="#00a728" d="M221.8 73.8c.3.4 0 1 .5 1.2.7.2.1 1 .9 1.4.7.3 0 1 .7 1.5.7.3 0 1 .8 1.5 1 .5-.2 1.5.5 1.9.7.4-.2 1.4.6 1.8.7.4-.4 1.1.4 1.7.7.5-.2 1.4.5 1.9s-.4 1.2.3 1.9c.6.5-.2 1 .2 2 .3.5-.3 2.7-1.8 2.5-.6 1-2.7 1.8-3.5 1.5-.8.6-3.3 1.3-4.6.1-1.3 1.2-3.8.5-4.6 0-.8.2-3-.7-3.5-1.6-1.6.2-2.1-2-1.8-2.6.4-.8-.4-1.4.2-2 .7-.6-.5-1.3.3-1.8s-.2-1.4.5-2c.8-.5-.4-1.3.4-1.6.8-.4-.1-1.4.6-1.8.6-.4-.4-1.4.5-1.9.9-.4 0-1.2.8-1.5.7-.4 0-1.2.7-1.5.8-.3.2-1.2.9-1.4.6-.3.2-.8.5-1.3 1.7.7 6.8 1.2 9 0z" transform="matrix(3.909 0 0 3.9094 -339.1 46.6)"/>
+    <path fill="#fdc300" d="M213.5 76.7c0 .2 0 .5-.2.8-.5.6.2 1-.4 1.7-.5.7.1 1.2-.5 1.8-.6.6.1 1.2-.5 1.8-.6.7.1 1.2-.5 1.8-.6.6.1 1.3-.5 1.9-.6.6.1 1.4-.5 2-.7.8 0 1.4-.5 2-.5.5 0 1-.4 1.4.6-.5.6-1.3 1.1-1.6.5-.4-.1-1 .2-1.3s0-1.4.5-2 0-1.7.5-2 .1-1.6.7-2 0-1.3.4-1.8c.5-.5 0-1.3.5-2 .4-.5 0-1.1.3-1.6.2-.2.2-1.8-.2-1zm1.6.7c-.4.7.3.9-.2 1.6s.3 1.3-.3 2 .3 1.1-.2 1.8c-.5.8.2 1.2-.2 1.7-.5.6.3 1.1-.2 1.8-.6.7.2 1.2-.3 1.8-.4.6.2 1.3-.2 1.8s.3 1.2-.3 1.9.1 1-.2 1.5c.7-.2.4-1.1.7-1.3.2-.2-.1-1.5.3-1.8.4-.4-.3-1.4 0-1.8.7-.8.2-1.3.5-1.9.4-.6-.1-1.3.2-1.7.5-.7-.2-1.3.1-1.8.5-.7 0-1.2.3-1.7.5-.7 0-1.4.1-1.8.3-.3.6-1.9 0-2.1zm2.2.6c-.4 1 .3 1.3 0 2.1-.2.8.3 1.4 0 2.2-.3.9.4 1.5 0 2.6s.3 1.4 0 2.5c-.3 1.2.5 1.9 0 2.8-.6.9.6 1.2 0 2.1-.2.5 0 1.6.5.2.5-1.3-.3-1.5 0-2 .5-.6 0-2 .1-2.9.2-.7-.4-1.8 0-2.6.3-.9-.6-1.8-.2-2.5.3-.7-.2-1.6.2-2.2.3-.6-.3-1.4-.2-1.7.2-.3-.1-1.6-.4-.6z" transform="matrix(3.909 0 0 3.9094 -339.1 46.6)"/>
+    <path fill="#ef072d" d="M221.5 74.4c0-6.3-1-8.5-4.2-8.5-3.3 0-4.2 2.2-4.2 8.5h8.4z" transform="matrix(3.909 0 0 3.9094 -339.1 46.6)"/>
+    <path fill="none" d="M214.3 73.9c-.6.6.1 1-.5 1.8-.6.7 0 1.1-.5 1.8s.2 1-.4 1.7c-.5.7.2 1.2-.5 1.8-.6.6.1 1.2-.5 1.8-.6.7.1 1.2-.5 1.8-.6.6.1 1.2-.5 1.9-.6.6.1 1.4-.5 2-.7.8 0 1.4-.5 2s0 1-.4 1.4c-.4.4-.5 1-.3 1.2m6.3-19c-.6.8.3 1-.2 1.7-.5.6.2.8-.2 1.6s.3.9-.2 1.6.3 1.3-.3 2 .3 1.1-.2 1.8c-.5.8.2 1.2-.2 1.7-.5.6.3 1.1-.3 1.8-.5.7.3 1.2-.2 1.8-.4.6.2 1.3-.2 1.8s.3 1.2-.3 1.9.1 1-.2 1.5c-.3.5-.6 1.1-.3 1.3m4.6-19.8c-.3 1.2.4 2.2 0 3.2s.3 1.3 0 2.1c-.2.8.3 1.4 0 2.2-.3.9.4 1.5 0 2.6s.3 1.4 0 2.5c-.3 1.2.6 1.9 0 2.8-.6.9.5 1.1 0 2.1-.4 1 .3 1.4 0 2.4m3-20.8c.6.6-.2 1 .5 1.8.6.7 0 1.1.5 1.8s-.2 1 .3 1.7c.6.7 0 1.2.5 1.8.7.6 0 1.2.5 1.8.7.7 0 1.2.6 1.8.6.6-.2 1.2.5 1.9.6.6-.1 1.4.5 2 .7.8-.1 1.4.5 2 .5.5 0 1 .4 1.4.4.4.5 1 .3 1.2m-6.3-19c.5.8-.3 1 .2 1.7.5.6-.2.8.2 1.6.4.7-.3.9.2 1.6s-.3 1.3.3 2-.3 1.1.2 1.8c.5.8-.2 1.2.2 1.7.5.6-.3 1.1.2 1.8.6.7-.2 1.2.3 1.8.4.6-.2 1.3.2 1.8s-.3 1.2.3 1.9-.1 1 .2 1.5c.3.5.6 1.1.3 1.3" transform="matrix(3.909 0 0 3.9094 -339.1 46.6)"/>
+    <path d="M213.1 74.4c0-6.3 1-8.5 4.2-8.5-1.5 0-2.4 1.2-2.7 2s-.1.7.2.4.2.4 0 .7c-.3.4-.6 1.4-.2 1 .4-.2.7.1.2.7s-.7 2-.3 1.5c.4-.5.5.3.2.7-.2.4-.2.7 0 .6.3-.2.2.6 0 1h-1.6zm7.7-.3c0-5-.6-6.5-1.8-7-.7-.3-.7-.2-.4.3s.3 1 0 .6-.4-.5-.6-.3l.8 2c.3.6 0 1-.4.3s-.4-.1 0 .5c.5.7.4 2.9.4 3.8l2-.2z" transform="matrix(3.909 0 0 3.9094 -339.1 46.6)"/>
+    <path fill="#ef072d" d="M217.3 75.3c1.3 0 2.7-.2 3.7-.6 1.1-.4 1.2-.8.8-1.3-.3-.4-.9-.2-1.5.1a11.2 11.2 0 01-6 0c-.6-.2-1.2-.5-1.5-.1-.4.5-.4.9.8 1.3 1 .4 2.4.6 3.7.6z" transform="matrix(3.909 0 0 3.9094 -339.1 46.6)"/>
+  </g>
+  <g fill="#b95a1e" fill-rule="evenodd">
+    <path stroke="#000" stroke-width="6.4" d="M779.4 912.6v179.2c.1 75.7 19.8 105 54.3 103.6 34.4-1.3 41-58.8 34.5-92-6.6-33.3-53.2-199-53.2-199l-35.6 8.2z" transform="matrix(.053 -.03423 .03246 .0559 489 284.2)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.4 912.6v179.2c.1 75.7 19.8 105 54.3 103.6 34.4-1.3 41-58.8 34.5-92-6.6-33.3-53.2-199-53.2-199l-35.6 8.2z" transform="matrix(.0608 -.01361 .0129 .06412 500 261)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.4 912.6v179.2c.1 75.7 19.8 105 54.3 103.6 34.4-1.3 41-58.8 34.5-92-6.6-33.3-53.2-199-53.2-199l-35.6 8.2z" transform="matrix(.06216 0 0 .06555 509.3 249.3)"/>
+    <path stroke="#000" stroke-width="8.1" d="M779.5 255.1c159.6-1.4 177.2-35.4 177.2-35.4s35.4-70.9 17.7-88.6c-17.7-17.7-194.9-17.7-194.9-17.7V255z" transform="matrix(.03857 0 0 .06555 527.7 292.3)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.5 255.1c106.3 0 124-35.4 124-35.4s35.5-70.9 17.8-88.6c-17.7-17.7-141.8-17.7-141.8-17.7V255z" transform="matrix(.06216 0 0 .06555 509.3 287.7)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.5 255.1c88.6 0 141.8-35.4 141.8-35.4s35.4-70.9 17.7-88.6c-17.7-17.7-159.5-17.7-159.5-17.7v141.7z" transform="matrix(.06216 0 0 .06555 509.3 283)"/>
+    <path stroke="#000" stroke-width="5.7" d="M832.7 113.4s70.8-88.6 194.9-177.2c124-88.6 213.7-156.7 230.3-141.7 0 17.7-106.3 106.3-195 177.2-88.5 70.8-194.8 177.1-194.8 177.1l-35.4-35.4z" transform="matrix(.07714 0 0 .06555 497.2 249.5)"/>
+    <path stroke="#000" stroke-width="5.7" d="M832.7 113.4s70-52 204.4-124c132.2-64 318.9-53.2 318.9-35.5-17.8 17.8-177.2 17.8-283.5 70.9C971 75.5 868 148.8 868 148.8l-35.4-35.4z" transform="matrix(.07714 0 0 .06555 497.9 254.1)"/>
+    <path stroke="#000" stroke-width="5.7" d="M832.7 113.4s61.6-35 204.4-88.6c141.7-53.1 329.8-17.7 329.8 0-17.7 17.7-170.4 7-276.7 35.4-110 27.8-222 88.6-222 88.6l-35.5-35.4z" transform="matrix(.07714 0 0 .06555 498 262.1)"/>
+    <path stroke="#000" stroke-width="5.7" d="M832.7 113.4s71-71 222.4-88.6c152.3-17.7 276.3 88.6 276.3 106.3-17.7 17.7-159.5-78-265.7-64.3-112.6 13.7-197.6 82-197.6 82l-35.5-35.4z" transform="matrix(.07714 0 0 .06555 498.4 270.3)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.5 255.1c159.6-1.4 159.5-45.5 159.5-45.5s35.4-70.8 17.7-88.6c-17.7-17.7-177.2-7.6-177.2-7.6V255z" transform="matrix(.06216 0 0 .06555 509.3 277.2)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.5 255.1c159.6-1.4 177.2-35.4 177.2-35.4s35.4-70.9 17.7-88.6c-17.7-17.7-194.9-17.7-194.9-17.7V255z" transform="matrix(.06216 0 0 .06555 509.3 272.6)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.5 255.1c159.6-1.4 195-35.4 195-35.4s35.3-70.9 17.6-88.6c-17.7-17.7-212.6-17.7-212.6-17.7V255z" transform="matrix(.06216 0 0 .06555 509.3 266.8)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.5 255.1c159.6-1.4 212.6-35.4 212.6-35.4s17.7-70.9 0-88.6c-17.7-17.7-212.6-17.7-212.6-17.7V255z" transform="matrix(.06216 0 0 .06555 509.3 261)"/>
+    <path stroke="#000" stroke-width="5.7" d="M832.7 113.4S946.9 24.8 946.9-46.1c0-70.8-50.4-141.7-64.6-177.1 28.5 0 93.1 106.3 93.1 177.1 0 77.5-107.3 195-107.3 195l-35.4-35.5z" transform="matrix(.07714 0 0 .06555 495.7 244.7)"/>
+    <path stroke="#000" stroke-width="5.7" d="M832.7 113.4s-14.3-53.2-14.3-159.5a355 355 0 0185.7-230.3C910-249 847-152.4 847-46c0 77.5 21.1 195 21.1 195l-35.4-35.5z" transform="matrix(.07714 0 0 .06555 495.7 244.7)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.5 255.1c159.6-1.4 212.6-35.4 212.6-35.4s0-70.9-17.7-88.6c-17.7-17.7-194.9-17.7-194.9-17.7v141.7z" transform="matrix(.06216 0 0 .06555 509.3 255.2)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.5 255.1c159.6-1.4 195-35.4 195-35.4s0-70.9-17.8-88.6c-17.7-17.7-177.2-17.7-177.2-17.7V255z" transform="matrix(.06216 0 0 .06555 509.3 249.3)"/>
+    <path stroke="#fdc301" stroke-width="16.1" d="M318.9 1318.1c55-122.3 70.9-336.6 70.9-372 0-99.8-33-585.2-35.5-779.6s124-301.2 248-301.2c106.4 0 177.2 71 177.2 177.2h-53.1a121 121 0 00-124-124c-106.3 0-188 83.7-195 248-7.5 190 21.4 683 17.8 815S374 1231.2 318.9 1318z" transform="matrix(-.06216 0 0 .06555 606.2 249.3)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.4 912.6v179.2c.1 75.7 19.8 105 54.3 103.6 34.4-1.3 41-58.8 34.5-92-6.6-33.3-53.2-199-53.2-199l-35.6 8.2z" transform="matrix(-.053 -.03423 -.03246 .0559 626.5 284.2)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.5 32.9C903.7 33 957.3 135.3 957 133.2l-35.7 33.3c-19 17.8-141.8 17.8-140.2 17.7l-1.6-151.3z" transform="matrix(.06216 0 0 .06555 509.3 249.3)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.4 912.6v179.2c.1 75.7 19.8 105 54.3 103.6 34.4-1.3 41-58.8 34.5-92-6.6-33.3-53.2-199-53.2-199l-35.6 8.2z" transform="matrix(-.0608 -.01361 -.0129 .06412 615.5 261)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.4 912.6v179.2c.1 75.7 19.8 105 54.3 103.6 34.4-1.3 41-58.8 34.5-92-6.6-33.3-53.2-199-53.2-199l-35.6 8.2z" transform="matrix(-.06216 0 0 .06555 606.2 249.3)"/>
+    <path stroke="#000" stroke-width="8.1" d="M779.5 255.1c159.6-1.4 177.2-35.4 177.2-35.4s35.4-70.9 17.7-88.6c-17.7-17.7-194.9-17.7-194.9-17.7V255z" transform="matrix(-.03857 0 0 .06555 587.8 292.3)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.5 255.1c106.3 0 124-35.4 124-35.4s35.5-70.9 17.8-88.6c-17.7-17.7-141.8-17.7-141.8-17.7V255z" transform="matrix(-.06216 0 0 .06555 606.2 287.7)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.5 255.1c88.6 0 141.8-35.4 141.8-35.4s35.4-70.9 17.7-88.6c-17.7-17.7-159.5-17.7-159.5-17.7v141.7z" transform="matrix(-.06216 0 0 .06555 606.2 283)"/>
+    <path stroke="#000" stroke-width="5.7" d="M832.7 113.4s70.8-88.6 194.9-177.2c124-88.6 213.7-156.7 230.3-141.7 0 17.7-106.3 106.3-195 177.2-88.5 70.8-194.8 177.1-194.8 177.1l-35.4-35.4z" transform="matrix(-.07714 0 0 .06555 618.3 249.5)"/>
+    <path stroke="#000" stroke-width="5.7" d="M832.7 113.4s70-52 204.4-124c132.2-64 318.9-53.2 318.9-35.5-17.8 17.8-177.2 17.8-283.5 70.9C971 75.5 868 148.8 868 148.8l-35.4-35.4z" transform="matrix(-.07714 0 0 .06555 617.6 254.1)"/>
+    <path stroke="#000" stroke-width="5.7" d="M832.7 113.4s61.6-35 204.4-88.6c141.7-53.1 329.8-17.7 329.8 0-17.7 17.7-170.4 7-276.7 35.4-110 27.8-222 88.6-222 88.6l-35.5-35.4z" transform="matrix(-.07714 0 0 .06555 617.6 262.1)"/>
+    <path stroke="#000" stroke-width="5.7" d="M832.7 113.4s71-71 222.4-88.6c152.3-17.7 276.3 88.6 276.3 106.3-17.7 17.7-159.5-78-265.7-64.3-112.6 13.7-197.6 82-197.6 82l-35.5-35.4z" transform="matrix(-.07714 0 0 .06555 617 270.3)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.5 255.1c159.6-1.4 159.5-45.5 159.5-45.5s35.4-70.8 17.7-88.6c-17.7-17.7-177.2-7.6-177.2-7.6V255z" transform="matrix(-.06216 0 0 .06555 606.2 277.2)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.5 255.1c159.6-1.4 177.2-35.4 177.2-35.4s35.4-70.9 17.7-88.6c-17.7-17.7-194.9-17.7-194.9-17.7V255z" transform="matrix(-.06216 0 0 .06555 606.2 272.6)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.5 255.1c159.6-1.4 195-35.4 195-35.4s35.3-70.9 17.6-88.6c-17.7-17.7-212.6-17.7-212.6-17.7V255z" transform="matrix(-.06216 0 0 .06555 606.2 266.8)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.5 255.1c159.6-1.4 212.6-35.4 212.6-35.4s17.7-70.9 0-88.6c-17.7-17.7-212.6-17.7-212.6-17.7V255z" transform="matrix(-.06216 0 0 .06555 606.2 261)"/>
+    <path stroke="#000" stroke-width="5.7" d="M832.7 113.4S946.9 24.8 946.9-46.1c0-70.8-50.4-141.7-64.6-177.1 28.5 0 93.1 106.3 93.1 177.1 0 77.5-107.3 195-107.3 195l-35.4-35.5z" transform="matrix(-.07714 0 0 .06555 619.8 244.7)"/>
+    <path stroke="#000" stroke-width="5.7" d="M832.7 113.4s-14.3-53.2-14.3-159.5a355 355 0 0185.7-230.3C910-249 847-152.4 847-46c0 77.5 21.1 195 21.1 195l-35.4-35.5z" transform="matrix(-.07714 0 0 .06555 619.8 244.7)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.5 255.1c159.6-1.4 212.6-35.4 212.6-35.4s0-70.9-17.7-88.6c-17.7-17.7-194.9-17.7-194.9-17.7v141.7z" transform="matrix(-.06216 0 0 .06555 606.2 255.2)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.5 255.1c159.6-1.4 195-35.4 195-35.4s0-70.9-17.8-88.6c-17.7-17.7-177.2-17.7-177.2-17.7V255z" transform="matrix(-.06216 0 0 .06555 606.2 249.3)"/>
+    <path stroke="#fdc301" stroke-width="16.1" d="M318.9 1318.1c55-122.3 70.9-336.6 70.9-372 0-99.8-33-585.2-35.5-779.6s124-301.2 248-301.2c106.4 0 177.2 71 177.2 177.2h-53.1a121 121 0 00-124-124c-106.3 0-188 83.7-195 248-7.5 190 21.4 683 17.8 815S374 1231.2 318.9 1318z" transform="matrix(.06216 0 0 .06555 509.3 249.3)"/>
+    <path stroke="#000" stroke-width="6.4" d="M779.5 32.9C903.7 33 957.3 135.3 957 133.2l-35.7 33.3c-19 17.8-141.8 17.8-140.2 17.7l-1.6-151.3z" transform="matrix(-.06216 0 0 .06555 606.2 249.3)"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/td.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/td.svg
new file mode 100644
index 0000000..734473e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/td.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-td" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="#000067" d="M0 0h214v480H0z"/>
+    <path fill="red" d="M426 0h214v480H426z"/>
+    <path fill="#ff0" d="M214 0h212v480H214z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tf.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tf.svg
new file mode 100644
index 0000000..3913728
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tf.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-tf" viewBox="0 0 640 480">
+  <defs>
+    <path id="a" fill="#fff" d="M0-21l12.3 38L-20-6.5h40L-12.3 17z"/>
+  </defs>
+  <path fill="#002395" d="M0 0h640v480H0z"/>
+  <path fill="#fff" d="M0 0h292.8v196.8H0z"/>
+  <path fill="#002395" d="M0 0h96v192H0z"/>
+  <path fill="#ed2939" d="M192 0h96v192h-96z"/>
+  <path fill="#fff" d="M426 219.6l15.4 24.6h44V330l-33-51.6-44.4 70.8h21.6l22.8-40.8 46.8 84 46.8-84 22.8 40.8h21.6L546 278.4 513 330v-47.4h19.8l14.7-23.4H513v-15h44l15.4-24.6H426zm51.6 105h-48v16.8h48zm91.2 0h-48v16.8h48z"/>
+  <use width="100%" height="100%" x="416" y="362" transform="scale(1.2)" xlink:href="#a"/>
+  <use width="100%" height="100%" x="371" y="328" transform="scale(1.2)" xlink:href="#a"/>
+  <use width="100%" height="100%" x="461" y="328" transform="scale(1.2)" xlink:href="#a"/>
+  <use width="100%" height="100%" x="333" y="227" transform="scale(1.2)" xlink:href="#a"/>
+  <use width="100%" height="100%" x="499" y="227" transform="scale(1.2)" xlink:href="#a"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tg.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tg.svg
new file mode 100644
index 0000000..09ba198
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tg.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-tg" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="tg-a">
+      <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#tg-a)" transform="scale(.9375)">
+    <path fill="#ffe300" d="M0 0h767.6v512H0z"/>
+    <path fill="#118600" d="M0 208.1h767.6V311H0zM0 .2h767.6v102.9H0z"/>
+    <path fill="#d80000" d="M0 .3h306.5v310.6H0z"/>
+    <path fill="#fff" d="M134.4 128.4c0-.8 18.9-53 18.9-53l17 52.2s57.4 1.7 57.4.8-45.3 34.3-45.3 34.3 21.4 60 20.5 58.2c-.8-1.7-49.6-36-49.6-36s-49.7 34.3-48.8 34.3c.8 0 18.8-56.5 18.8-56.5l-44.5-33.4 55.6-.9z"/>
+    <path fill="#118600" d="M0 409.2h767.6V512H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/th.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/th.svg
new file mode 100644
index 0000000..66fcd8e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/th.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-th" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="#f4f5f8" d="M0 0h640v480H0z"/>
+    <path fill="#2d2a4a" d="M0 162.5h640v160H0z"/>
+    <path fill="#a51931" d="M0 0h640v82.5H0zm0 400h640v80H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tj.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tj.svg
new file mode 100644
index 0000000..92ac160
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tj.svg
@@ -0,0 +1,22 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-tj" viewBox="0 0 640 480">
+  <path fill="#060" d="M0 0h640v480H0z"/>
+  <path fill="#fff" d="M0 0h640v342.9H0z"/>
+  <path fill="#c00" d="M0 0h640v137.1H0z"/>
+  <path fill="#f8c300" d="M300.8 233.6a8.6 8.6 0 0116 4V272h6.4v-34.3a8.6 8.6 0 0116-4 20.2 20.2 0 10-38.4 0"/>
+  <path fill="#fff" d="M305.4 224.7a13.7 13.7 0 0114.6 6.5 13.7 13.7 0 0114.6-6.5 14.7 14.7 0 00-29.2 0"/>
+  <path id="a" fill="#f8c300" d="M316.8 258.3a26 26 0 01-43.8 16.6 27 27 0 01-41 12c2.5 25 40 19.9 42.8-4.4 11.7 20.7 37.6 14.7 45.2-10.6z"/>
+  <use width="100%" height="100%" fill="#f8c300" transform="matrix(-1 0 0 1 640 0)" xlink:href="#a"/>
+  <path id="b" fill="#f8c300" d="M291.8 302.6c-5.3 11.3-15.7 13.2-24.8 4.1 0 0 3.6-2.6 7.6-3.3-.8-3.1.7-7.5 2.9-9.8a15 15 0 016.1 8.1c5.5-.7 8.2 1 8.2 1z"/>
+  <use width="100%" height="100%" fill="#f8c300" transform="rotate(9.4 320 551.3)" xlink:href="#b"/>
+  <use width="100%" height="100%" fill="#f8c300" transform="rotate(18.7 320 551.3)" xlink:href="#b"/>
+  <path fill="none" stroke="#f8c300" stroke-width="11" d="M253.5 327.8a233.1 233.1 0 01133 0"/>
+  <g fill="#f8c300" transform="translate(320 164.6) scale(.68571)">
+    <path id="c" d="M301930 415571l-790463-574305h977066l-790463 574305L0-513674z" transform="scale(.00005)"/>
+  </g>
+  <g id="d" fill="#f8c300" transform="translate(320 260.6) scale(.68571)">
+    <use width="100%" height="100%" transform="translate(-70 -121.2)" xlink:href="#c"/>
+    <use width="100%" height="100%" transform="translate(-121.2 -70)" xlink:href="#c"/>
+    <use width="100%" height="100%" transform="translate(-140)" xlink:href="#c"/>
+  </g>
+  <use width="100%" height="100%" fill="#f8c300" transform="matrix(-1 0 0 1 640 0)" xlink:href="#d"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tk.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tk.svg
new file mode 100644
index 0000000..312e881
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tk.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-tk" viewBox="0 0 640 480">
+  <path fill="#00247d" d="M0 0h640v480H0z"/>
+  <path fill="#fed100" d="M108.1 354.6c-6.7-.1 62.8-37 120.9-84.4 76.2-62.1 240.3-161.4 288.6-177.6 5-1.7-10.3 8.6-12.3 11.9-51.5 61-10.4 176 54 233.9 19.4 14.8 18.4 15.6 54.3 17v3.4l-505.5-4.2zm-4.2 6.7s-4.9 3.5-4.9 6.1c0 2.9 5.5 6.7 5.5 6.7l498.5 5.5 9.2-6.1-12.8-7.9-495.5-4.3z"/>
+  <path fill="#fff" d="M106.8 109.1l-4 12.2 10.4-7.5 10.3 7.5-3.9-12.2 10.3-7.5h-12.8l-3.9-12.2-4 12.2H96.4zm78.1 57.4l8.6-6.3h-10.7l-3.3-10.1-3.3 10.1h-10.6l8.6 6.3-3.3 10.1 8.6-6.3 8.7 6.3zm-145.2 13l-4-12.2-3.9 12.2H19l10.3 7.5-3.9 12.2 10.3-7.5 10.4 7.5-4-12.2 10.4-7.5zm78.1 122.3l-4.6-14.2-4.6 14.2h-15l12.1 8.7-4.6 14.3 12.1-8.8 12.1 8.8-4.7-14.3 12.1-8.7z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tl.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tl.svg
new file mode 100644
index 0000000..94738dd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tl.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-tl" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="tl-a">
+      <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#tl-a)" transform="scale(.9375)">
+    <path fill="#cb000f" d="M0 0h1031.2v512H0z"/>
+    <path fill="#f8c00c" d="M0 0c3.2 0 512 256.7 512 256.7L0 512V0z"/>
+    <path d="M0 0c2.1 0 340.6 256.7 340.6 256.7L0 512V0z"/>
+    <path fill="#fff" d="M187.7 298.2L127 284.7l-31 52.8-5-59.7-60.7-13.3 54.9-24.9-3.3-59.3 40.2 43.4 55.4-25.3-28.9 54 39.2 45.8z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tm.svg
new file mode 100644
index 0000000..a0fadb6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tm.svg
@@ -0,0 +1,206 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-tm" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="tm-a">
+      <path fill-opacity=".7" d="M42.7 0h682.6v512H42.7z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#tm-a)" transform="translate(-40) scale(.9375)">
+    <path fill="#28ae66" d="M0 0h768v512H0z"/>
+    <g fill="#fff" stroke-width="1pt">
+      <path d="M263.3 137.5c27.9 13.4 61.1 0 73.1-18.6 12.4-17.4 13.9-46.5-7.4-73.2 33 27.4 40.4 58.5 23.9 84.1-22 29.3-70.6 28.4-89.6 7.7z"/>
+      <path d="M312.8 69.4l5.6.1L314 73l1.7 5.6-4.7-3.3-4.5 3.3 1.5-5.5-4.5-3.5 5.6-.1L311 64zm-27.7 34.8h5.6l-4.4 3.6 1.7 5.5-4.7-3.3-4.6 3.4 1.6-5.6-4.5-3.4 5.6-.2 1.8-5.5zm1.8-27.4h5.7l-4.5 3.6 1.7 5.5-4.6-3.3-4.6 3.4 1.6-5.6-4.5-3.5 5.6-.1 1.8-5.5zm0-27.5h5.7L288 53l1.7 5.5-4.6-3.2-4.6 3.3 1.6-5.5-4.5-3.5 5.6-.1L285 44zm-30.7 34.8h5.6l-4.5 3.6 1.7 5.5-4.6-3.3-4.6 3.4 1.6-5.6-4.5-3.4 5.6-.2 1.8-5.5z"/>
+    </g>
+    <path fill="#ca3745" d="M47.5 0h164.6v512H47.5z"/>
+    <g fill="#faae29" stroke-width="1pt">
+      <path d="M47.5 133.5v-3.7l6.8-9.1-1.3-1.9 4-5.4-1.3-1.9-2.7 3.7-1.4-1.8 9.6-12.8 1.4 1.8-1.4 1.8L64 108l6.8-9.2-6.9-8.9-2.7 3.4 1.4 1.9-1.4 1.8-9.6-12.8 1.4-1.8 2.7 3.6 1.4-1.8-4.1-5.5 1.3-1.8-6.8-9.2V64l9.6 12.8-1.4 1.8 4.1 5.5-2.7 3.7 2.7 3.6L64 86l9.7 13-9.7 12.6-4-5.5-2.8 3.7 2.7 3.7-4 5.4 1.3 1.9-9.6 12.8z"/>
+      <path d="M47.5 87.8l1.4 3.6V97H53l2.8 1.8-2.8 1.9h-4v5.4l-1.4 3.7v-22z"/>
+    </g>
+    <g fill="#faae29" stroke-width="1pt">
+      <path d="M47.5 221.3v-3.7l6.8-9.1-1.3-1.9 4-5.5-1.3-1.8L53 203l-1.4-1.9 9.6-12.8 1.4 1.9-1.4 1.8 2.8 3.7 6.8-9.2-6.9-8.9-2.7 3.4 1.4 1.9-1.4 1.8-9.6-12.8L53 170l2.7 3.6 1.4-1.8-4.1-5.5 1.3-1.8-6.8-9.2v-3.6l9.6 12.8-1.4 1.8 4.1 5.5-2.7 3.6 2.7 3.7 4.1-5.5 9.7 13-9.7 12.6-4-5.5-2.8 3.7 2.7 3.6-4 5.5 1.3 1.9-9.6 12.8z"/>
+      <path d="M47.5 175.5l1.4 3.7v5.5H53l2.8 1.8-2.8 1.8h-4v5.5l-1.4 3.7v-22z"/>
+    </g>
+    <g fill="#faae29" stroke-width="1pt">
+      <path d="M47.5 309v-3.6l6.8-9.2-1.3-1.8 4-5.5-1.3-1.8-2.7 3.6-1.4-1.8 9.6-12.8 1.4 1.8-1.4 1.9 2.8 3.7 6.8-9.2-6.9-9-2.7 3.5 1.4 1.8-1.4 1.8-9.6-12.8 1.4-1.8 2.7 3.7 1.4-1.9-4.1-5.4 1.3-1.9-6.8-9.1v-3.7l9.6 12.8-1.4 1.9 4.1 5.4-2.7 3.7 2.7 3.7 4.2-5.5 9.6 13-9.7 12.6-4-5.5-2.8 3.6 2.7 3.7-4 5.5 1.3 1.8-9.6 12.8z"/>
+      <path d="M47.5 263.3L49 267v5.5h4l2.8 1.8L53 276h-4v5.5l-1.4 3.7v-22z"/>
+    </g>
+    <g fill="#faae29" stroke-width="1pt">
+      <path d="M47.5 391.3v-3.7l6.8-9.1-1.3-1.8 4-5.5-1.3-1.8L53 373l-1.4-1.8 9.6-12.8 1.4 1.8-1.4 1.8 2.8 3.7 6.8-9.1-6.9-9-2.7 3.5 1.4 1.8-1.4 1.8-9.6-12.8 1.4-1.8 2.7 3.7 1.4-1.9-4.1-5.5 1.3-1.8-6.8-9.1v-3.7l9.6 12.8-1.4 1.8 4.1 5.5-2.7 3.7 2.7 3.6 4.2-5.4 9.6 13-9.7 12.6-4-5.5-2.8 3.6 2.7 3.7-4 5.5 1.3 1.8-9.6 12.8z"/>
+      <path d="M47.5 345.6l1.4 3.6v5.5H53l2.8 1.9-2.8 1.8h-4v5.5l-1.4 3.6v-22z"/>
+    </g>
+    <g fill="#faae29" stroke-width="1pt">
+      <path d="M212.1 133.5v-3.7l-6.8-9.1 1.4-1.9-4.1-5.4 1.3-1.9 2.8 3.7 1.4-1.8-9.6-12.8-1.4 1.8 1.4 1.8-2.9 3.7-6.7-9.2 6.8-8.9 2.8 3.4-1.4 1.9 1.3 1.8 9.6-12.8-1.3-1.8-2.8 3.6-1.3-1.8 4-5.5-1.3-1.8 6.8-9.2V64l-9.5 12.8 1.3 1.8-4 5.5 2.7 3.7-2.8 3.6-4.1-5.5-9.7 13 9.7 12.6 4.1-5.5 2.8 3.7-2.8 3.7 4.1 5.4-1.3 1.9 9.5 12.8z"/>
+      <path d="M212.1 87.8l-1.4 3.6V97h-4l-2.8 1.8 2.7 1.9h4.1v5.4l1.4 3.7v-22z"/>
+    </g>
+    <g fill="#faae29" stroke-width="1pt">
+      <path d="M212.6 221.3v-3.7l-6.8-9.1 1.3-1.9-4-5.5 1.3-1.8 2.7 3.7 1.4-1.9-9.6-12.8-1.4 1.9 1.4 1.8-2.8 3.7-6.8-9.2 6.9-8.9 2.7 3.4-1.4 1.8 1.4 1.9 9.6-12.8-1.4-1.9-2.7 3.7-1.4-1.8 4.1-5.5-1.3-1.8 6.8-9.2v-3.6l-9.6 12.8 1.4 1.8-4.1 5.5 2.7 3.6-2.7 3.7-4.1-5.5-9.7 13 9.7 12.6 4-5.5 2.8 3.7-2.7 3.6 4 5.5-1.3 1.8 9.6 12.8z"/>
+      <path d="M212.6 175.5l-1.4 3.7v5.5H207l-2.8 1.8 2.8 1.8h4v5.5l1.5 3.7v-22z"/>
+    </g>
+    <g fill="#faae29" stroke-width="1pt">
+      <path d="M212.1 309v-3.6l-6.8-9.2 1.4-1.8-4.1-5.5 1.3-1.8 2.8 3.6 1.4-1.8-9.6-12.8-1.4 1.8 1.4 1.9-2.9 3.7-6.7-9.2 6.8-9 2.8 3.5-1.4 1.8 1.3 1.8 9.6-12.8-1.3-1.8-2.8 3.7-1.3-1.9 4-5.4-1.3-1.9 6.8-9.1v-3.7l-9.5 12.8 1.3 1.9-4 5.4 2.7 3.7-2.8 3.7-4.1-5.5-9.7 13 9.7 12.6 4.1-5.5 2.8 3.6-2.8 3.7 4.1 5.5-1.3 1.8L212 309z"/>
+      <path d="M212.1 263.3l-1.4 3.7v5.5h-4l-2.8 1.8 2.7 1.8h4.1v5.5l1.4 3.7v-22z"/>
+    </g>
+    <g fill="#faae29" stroke-width="1pt">
+      <path d="M212.1 391.3v-3.7l-6.8-9.1 1.4-1.8-4.1-5.5 1.3-1.8 2.8 3.6 1.4-1.8-9.6-12.8-1.4 1.8 1.4 1.8-2.9 3.7-6.7-9.1 6.8-9 2.8 3.5-1.4 1.8 1.3 1.8L208 342l-1.3-1.8-2.8 3.7-1.3-1.9 4-5.5-1.3-1.8 6.8-9.1v-3.7l-9.5 12.8 1.3 1.8-4 5.5 2.7 3.7-2.8 3.6-4.1-5.4-9.7 13 9.7 12.6 4.1-5.5 2.8 3.6-2.8 3.7 4.1 5.5-1.3 1.8 9.5 12.8z"/>
+      <path d="M212.1 345.6l-1.4 3.6v5.5h-4l-2.8 1.9 2.7 1.8h4.1v5.5l1.4 3.6v-22z"/>
+    </g>
+    <path fill="#faae29" stroke-width="1pt" d="M47.5 34.7v-3.6l6.8-9.2-1.3-1.8 4-5.5-1.3-1.8-2.7 3.7-1.4-1.9 9.6-12.8 1.4 1.9-1.4 1.8L64 9.2 70.8 0h2.8L64 12.8l-4.2-5.5-2.7 3.7 2.7 3.6-4 5.5L57 22l-9.5 12.8zm0-34.7h8.3L53 1.8h-4v5.5L47.4 11V0zm164.6 34.7v-3.6l-6.8-9.2 1.4-1.8-4.1-5.5 1.3-1.8 2.8 3.7 1.3-1.9-9.6-12.8-1.3 1.9 1.3 1.8-2.8 3.7-6.8-9.2H186l9.7 12.8 4.1-5.5 2.8 3.7-2.8 3.6 4.1 5.5-1.3 1.8 9.5 12.8zm0-34.7h-8.2l2.7 1.8h4.1v5.5l1.4 3.7V0z"/>
+    <path fill="#faae29" d="M116.1 504.7s6-10.4 20.8-13.5c14.9-3.2 17.5 6.9 26 6.9s22-7 22-7-13.5 13.3-24 13c-10.3-.3-13.8-7-24.5-6-10.6 1-20.3 6.9-20.3 6.6z"/>
+    <path fill="#faae29" d="M144.8 504.7s-5.9-10.4-20.7-13.5c-15-3.2-17.5 6.9-26 6.9s-22-7-22-7 13.5 13.3 23.9 13c10.4-.3 14-7 24.5-6 10.7 1 20.3 6.9 20.3 6.6z"/>
+    <g fill="#faae29" stroke-width="1pt">
+      <path d="M96.2 487.5c-1.3-2.7-4.6-14.7-2.9-16.2 2.7-1 9.7 11.3 9 22.2-4.6 2.5-20-1-19.9-4.2 1.1-4.5 9.9-3 13.8-1.8z"/>
+      <path d="M86.8 477c-.8-3-2.2-15.6-.2-16.6 2.7-.2 7.6 13.7 5.3 24.2-4.9 1.2-19.5-6.5-18.8-9.6 1.8-4 10-.2 13.7 2z"/>
+      <path d="M79.2 465.4c-.6-3.2-.8-16 1.2-16.6 2.7.2 6.4 14.8 3.2 24.9-5 .4-18.8-9.6-17.8-12.5 2-3.8 10 1.3 13.4 4.2z"/>
+      <path d="M73.2 453c-.2-3.3 1-16 3.1-16.2 2.7.7 4.6 15.9.2 25.2-4.9-.6-17.4-13.3-16-16 2.4-3.3 9.7 3.4 12.7 7z"/>
+      <path d="M69 439.9c.2-3.3 2.8-15.5 4.9-15.4 2.5 1.3 2.8 16.6-2.5 25-4.8-1.6-15.9-16.5-14.3-19 2.9-2.8 9.3 5.3 12 9.4z"/>
+      <path d="M70.2 425c-.3 13-2.7 13.2-7 3.6-2-3.7-2.2-18.7-.5-19.3 2.5 0 7.4 10.7 7.5 15.7z"/>
+    </g>
+    <g fill="#faae29" stroke-width="1pt">
+      <path d="M164 489c1.3-2.8 4.6-14.8 2.9-16.3-2.7-1-9.6 11.2-9 22.2 4.6 2.5 20.1-1 19.9-4.2-1.1-4.5-9.8-3-13.8-1.8z"/>
+      <path d="M173.4 478.4c.9-3 2.2-15.6.3-16.6-2.7-.2-7.7 13.6-5.3 24.2 4.8 1.2 19.5-6.5 18.7-9.6-1.7-4.1-10-.2-13.7 2z"/>
+      <path d="M181 466.8c.6-3.2.8-16-1.2-16.6-2.7.2-6.4 14.7-3.1 24.8 5 .4 18.8-9.5 17.8-12.5-2.2-3.8-10 1.4-13.5 4.3z"/>
+      <path d="M187 454.3c.2-3.2-1-15.9-3.1-16.1-2.7.7-4.6 15.9-.2 25.2 5-.6 17.4-13.3 16.1-16-2.5-3.4-9.7 3.4-12.8 6.9z"/>
+      <path d="M191.2 441.2c-.1-3.2-2.8-15.5-4.8-15.3-2.6 1.2-2.9 16.6 2.5 25 4.8-1.6 15.8-16.5 14.2-19-2.9-2.8-9.3 5.3-12 9.3z"/>
+      <path d="M190 426.4c.4 13 2.7 13.1 7 3.5 2-3.6 2.2-18.7.5-19.2-2.5 0-7.4 10.7-7.5 15.7z"/>
+    </g>
+    <g transform="matrix(.99985 0 0 1.26515 188.3 -77)">
+      <path fill="#ca3745" stroke="#000" stroke-width=".1" d="M-3.5 290.6H-9v3.5h-5.3v3.5h-21.2l-3.6 3.6 1.8 1.8h8.9l1.7-1.8h-8.8l1.7-1.8h12.4l-5.3 5.3H-39l-3.5-1.7-3.6 1.7h-12.4l-5.3-5.3h12.4l1.8 1.8h-8.9l1.8 1.8h8.9l1.7-1.8-3.5-3.6h-19.5v-3.5h-5.3v-3.5h-5.3v-16h5.3v-3.5h5.3v-3.6h19.5l3.5-3.5-1.7-1.8h-8.9l-1.8 1.8h8.9l-1.8 1.7h-12.4l5.3-5.3H-46l3.6 1.8 3.5-1.8h12.4l5.3 5.3h-12.4l-1.7-1.7h8.8l-1.8-1.8h-8.8L-39 264l3.6 3.5h21.2v3.6h5.3v3.5h5.4v16z" transform="matrix(1.4884 0 0 1.24 3.5 -39.5)"/>
+      <path fill="#28ae66" stroke="#faae29" stroke-width="1.4" d="M375.6 499.7v24.8h10.6v7h10.6v7h35.5l14.2 10.7 14.1-10.6h39v-7l10.6-.1v-7H521v-24.9h-10.7v-7h-10.6v-7.2h-39l-14.1-10.6-14.2 10.6h-35.5v7.2h-10.6v7h-10.6z" transform="matrix(.74419 0 0 .62 -392 -6.5)"/>
+      <path fill="#ca3745" d="M-75.6 296.6l-15.8 11v-11h15.8zm31.6 0l15.9 11v-11H-44zm-31.6 28.6l-15.8-11v11h15.8zm31.6 0l15.9-11v11H-44zm5.3-22l-5.3 4.4h10.6l-5.3-4.4zm-42.2 0l-5.2 4.4h10.5l-5.3-4.4zm0 15.4l-5.2-4.4h10.5l-5.3 4.4zm42.2 0l-5.3-4.4h10.6l-5.3 4.4z"/>
+      <path fill="#faae29" d="M-59.8 329.6l-5.3-4.4h10.6l-5.3 4.4zm0-22l-5.3-4.4h10.6l-5.3 4.4zm0-15.4l-5.3 4.5h10.6l-5.3-4.5zm0 22l-5.3 4.4h10.6l-5.3-4.4z"/>
+      <path fill="#faae29" stroke="#000" stroke-width=".1" d="M467.7 506.7H482v3.5h-14.2z" transform="matrix(.74419 0 0 .62 -392 -6.5)"/>
+      <path fill="#c00" stroke="#000" stroke-width=".1" d="M414.6 510.2h7v3.6h-7zm56.7 0h7v3.6h-7z" transform="matrix(.74419 0 0 .62 -392 -6.5)"/>
+      <path fill="#900" stroke="#000" stroke-width=".1" d="M439.4 489h14.1v3.5h-14.1zm0 7h14.1v3.6h-14.1z" transform="matrix(.74419 0 0 .62 -392 -6.5)"/>
+      <path fill="#900" stroke="#000" stroke-width=".1" d="M435.8 492.5h21.3v3.6h-21.3zm3.6 32h14.1v3.4h-14.1zm0 7h14.1v3.5h-14.1zm-3.6-3.5h21.3v3.5h-21.3z" transform="matrix(.74419 0 0 .62 -392 -6.5)"/>
+      <path fill="#faae29" stroke="#000" stroke-width=".1" d="M467.7 513.8H482v3.5h-14.2zm-56.7-7.1h14.2v3.5H411zm0 7h14.2v3.6H411zm-3.5-3.5h7v3.6h-7zm14.2 0h7v3.6h-7zm42.5 0h7v3.6h-7zm14.2 0h7v3.6h-7z" transform="matrix(.74419 0 0 .62 -392 -6.5)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -374.1 -39)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -367.6 -39)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -361 -39)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -371.5 -41.1)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -363.7 -41.1)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -371.6 -36.8)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -363.7 -36.7)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -353.2 -50)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -346.6 -50)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -340 -50)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -350.5 -52.2)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -342.7 -52.2)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -350.6 -47.9)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -342.7 -47.8)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -374.2 -60.9)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -367.6 -60.9)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -361 -61)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -371.6 -63.1)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -363.7 -63.1)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -371.6 -58.8)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -363.7 -58.7)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -395.3 -49.8)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -388.7 -49.8)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -382.1 -49.9)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -392.6 -52)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -384.8 -52)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -392.7 -47.7)"/>
+      <circle cx="413.7" cy="582" r=".9" fill="#fff" transform="matrix(.74419 0 0 .62 -384.8 -47.6)"/>
+    </g>
+    <path fill="#fff" d="M138.9 255.8l4.5-2.2 4.6 2.2h-9.1zm-13.6 0l4.5-2.2 4.6 2.2h-9.1zm-13.6 0l4.5-2.2 4.6 2.2h-9.1zm27.2-49l4.5 2.2 4.6-2.1h-9.1zm-13.6 0l4.5 2.2 4.6-2.1h-9.1zm-13.6 0l4.5 2.2 4.6-2.1h-9.1z"/>
+    <path fill="#28ae66" d="M135.1 262.1l-5.3 4.3-5.3-4.3-5.3 4.3-5.3-4.3v2.2l3.6 2-1.8 2.2v2.1h1.8l1.7-2 1.8 2h1.8v-2l-1.8-2.2 3.5-2.1 3.6 2-1.8 2.2v2.1h1.8l1.7-2 1.8 2h1.7v-2l-1.7-2.2 3.5-2.1 3.5 2-1.7 2.2v2.1h1.7l1.8-2 1.8 2h1.7v-2l-1.7-2.2 3.5-2.1V262l-5.3 4.3-5.3-4.3zm0-61.6l-5.3-4.3-5.3 4.3-5.3-4.3-5.3 4.3v-2.1l3.6-2.2-1.8-2V192h1.8l1.7 2.1 1.8-2.1h1.8v2.1l-1.8 2.2 3.5 2 3.6-2-1.8-2.2V192h1.8l1.7 2.1 1.8-2.1h1.7v2.1l-1.7 2.2 3.5 2 3.5-2-1.7-2.2V192h1.7l1.8 2.1 1.8-2.1h1.7v2.1l-1.7 2.2 3.5 2v2.2l-5.3-4.3-5.3 4.3zm40 35.4l5.8-4.6-5.7-4.6 5.7-4.6-5.7-4.6h2.8l2.9 3 2.8-1.5h2.8v1.6l-2.8 1.5 2.8 1.5v1.6h-2.8l-2.8-1.6-2.9 3.1 2.9 3 2.8-1.4h2.8v1.5l-2.8 1.5 2.8 1.5v1.6h-2.8l-2.8-1.6-2.9 3.1 2.9 3 2.8-1.5h2.8v1.6l-2.8 1.5 2.8 1.6v1.5h-2.8l-2.8-1.5-2.9 3h-2.8l5.7-4.6-5.7-4.6zm-90.6 0l-5.7-4.6 5.7-4.6-5.7-4.6 5.7-4.6h-2.9l-2.8 3L76 219h-3v1.6l3 1.4-2.9 1.5v1.6H76l2.8-1.6 2.8 3.1-2.8 3-2.8-1.4h-3v1.5l2.9 1.5-2.9 1.5v1.6h3l2.8-1.6 2.8 3.1-2.8 3.1-2.8-1.5h-3v1.5l2.9 1.5L73 242v1.5h3l2.8-1.5 2.8 3h2.9l-5.7-4.6 5.7-4.6z"/>
+    <path fill="#28ae66" stroke="#000" stroke-width=".3" d="M-26.6 214.4h1.8v1.7h-1.8zm-1.8 1.7h1.8v1.8h-1.7zm-8.8 8.9h1.8v1.8h-1.8zm1.8-1.8h1.7v1.8h-1.7zm-58.5 0h1.8v1.8H-94zm-8.9-8.8h1.8v1.7h-1.8zm1.8 1.7h1.8v1.8h-1.8zm0-39h1.8v1.8h-1.8zm-1.8 1.8h1.8v1.8h-1.8zm10.7-10.6h1.7v1.8H-92zm-1.8 1.8h1.8v1.8H-94zm56.7-1.8h1.8v1.8h-1.8zm1.8 1.8h1.7v1.8h-1.7zm7 7h1.8v1.8h-1.7zm1.8 1.9h1.8v1.7h-1.8zM-92 225h1.7v1.8H-92z" transform="matrix(1.2798 0 0 1.1995 211.4 -5.6)"/>
+    <path fill="#fff" d="M122.9 231.3h-6.7v-4.2h4.5v-3.9h4.4v-3.6h4.5v4.5c-3.7 0-6.7 3-6.7 7.2z"/>
+    <path fill="#faae29" d="M136.3 231.3h6.7v-4.2h-4.5v-3.9H134v-3.6h-4.4v4.5c3.7 0 6.7 3 6.7 7.2z"/>
+    <path fill="#fff" d="M136.3 231.3h6.7v4.2h-4.5v3.9H134v3.6h-4.4v-4.5c3.7 0 6.7-3 6.7-7.2z"/>
+    <path fill="#faae29" d="M122.9 231.3h-6.7v4.2h4.5v3.9h4.4v3.6h4.5v-4.5c-3.7 0-6.7-3-6.7-7.2z"/>
+    <path fill="#28ae66" d="M136.3 231.3h-6.7v-7.2c3.7 0 6.7 3.3 6.7 7.2z"/>
+    <path fill="#ca3745" d="M136.3 231.3h-6.7v7.2c3.7 0 6.7-3.2 6.7-7.2z"/>
+    <path fill="#28ae66" d="M122.9 231.3h6.7v7.2c-3.7 0-6.7-3.2-6.7-7.2z"/>
+    <path fill="#ca3745" d="M122.9 231.3h6.7v-7.2c-3.7 0-6.7 3.3-6.7 7.2z"/>
+    <path fill="#28ae66" d="M136.6 257.9l-6.8-4.3-6.8 4.3-6.8-4.3-6.8 4.3v-2.1l4.5-2.2-2.2-2.1v-2.1h2.2l2.3 2.1 2.3-2.1h2.3v2.1l-2.3 2.1 4.5 2.2 4.6-2.2-2.3-2.1v-2.1h2.3l2.2 2.1 2.3-2.1h2.3v2.1l-2.3 2.1 4.5 2.2 4.6-2.2-2.3-2.1v-2.1h2.3l2.2 2.1 2.3-2.1h2.3v2.1l-2.3 2.1 4.5 2.2v2l-6.8-4.2-6.8 4.3zm0-53.1l-6.8 4.2-6.8-4.2-6.8 4.2-6.8-4.2v2l4.5 2.2-2.2 2.1v2.2h2.2l2.3-2.2 2.3 2.2h2.3V211l-2.3-2 4.5-2.2 4.6 2.1-2.3 2.1v2.2h2.3l2.2-2.2 2.3 2.2h2.3V211l-2.3-2 4.5-2.2 4.6 2.1-2.3 2.1v2.2h2.3l2.2-2.2 2.3 2.2h2.3V211l-2.3-2 4.5-2.2v-2.1l-6.8 4.2-6.8-4.2zm25 31.8l-3.4-5.3 3.4-5.3-3.4-5.3 3.4-5.3h-1.7l-1.7 3.5-1.7-1.8h-1.7v1.8l1.7 1.8-1.7 1.8v1.7h1.7l1.7-1.7 1.7 3.5-1.7 3.5-1.7-1.7h-1.7v1.7l1.7 1.8-1.7 1.8v1.8h1.7l1.7-1.8 1.7 3.5-1.7 3.6-1.7-1.8h-1.7v1.8l1.7 1.7-1.7 1.8v1.8h1.7l1.7-1.8 1.7 3.6h1.7l-3.4-5.4 3.4-5.3z"/>
+    <path fill="#28ae66" stroke="#000" stroke-width=".4" d="M-101 177.2l-7 7v26.6l7 7.1h32l7-7v-26.6l-7.1-7.1H-101zm-1.8-5.4l-17.7 17.8v16l17.8 17.6h35.4l17.7-17.7v-16l-17.7-17.7h-35.4z" transform="matrix(1.2798 0 0 1.1995 238.7 -5.6)"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".3" d="M-93.9 147l3.5 5.4 3.6-5.4H-94z" transform="matrix(1.02384 0 0 .79966 215 140.3)"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".3" d="M-93.9 147l3.5 5.4 3.6-5.4H-94z" transform="matrix(1.02384 0 0 -.79966 215 322.3)"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".3" d="M-93.9 147l3.5 5.4 3.6-5.4H-94z" transform="matrix(1.02384 0 0 -.79966 229.6 322.3)"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".3" d="M-93.9 147l3.5 5.4 3.6-5.4H-94z" transform="matrix(1.02384 0 0 .79966 229.6 140.3)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-93.9 147l3.5 5.4 3.6-5.4H-94z" transform="matrix(1.02384 0 0 -.79966 207.8 322.3)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-93.9 147l3.5 5.4 3.6-5.4H-94z" transform="matrix(1.02384 0 0 -.79966 222.3 322.3)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-93.9 147l3.5 5.4 3.6-5.4H-94z" transform="matrix(1.02384 0 0 -.79966 236.8 322.3)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-104.5 180.7l3.5-3.5h-3.5v3.5z" transform="matrix(1.9196 0 0 -1.7991 303.3 576.6)"/>
+    <path fill="#28ae66" d="M98 236.6l3.5-5.3L98 226l3.4-5.3-3.4-5.3h1.7l1.7 3.5 1.7-1.8h1.7v1.8l-1.7 1.8 1.7 1.8v1.7h-1.7l-1.7-1.7-1.7 3.5 1.7 3.5 1.7-1.7h1.7v1.7l-1.7 1.8 1.7 1.8v1.8h-1.7l-1.7-1.8-1.7 3.5 1.7 3.6 1.7-1.8h1.7v1.8l-1.7 1.7 1.7 1.8v1.8h-1.7l-1.7-1.8-1.7 3.6H98l3.4-5.4-3.4-5.3z"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-76.2 154.1h7.1l1.8 1.8-1.8 1.8h-7V154z" transform="matrix(1.2798 0 0 1.07958 261.3 59.2)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".4" d="M-99.2 180.7l-3.6 3.6v26.5l3.6 3.6h-5.3v-33.7h5.3z" transform="matrix(1.2798 0 0 1.1995 229.6 -5.6)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-93.9 147l3.5 5.4 3.6-5.4H-94z" transform="matrix(1.02384 0 0 .79966 207.8 140.3)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-93.9 147l3.5 5.4 3.6-5.4H-94z" transform="matrix(1.02384 0 0 .79966 222.3 140.3)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-93.9 147l3.5 5.4 3.6-5.4H-94z" transform="matrix(1.02384 0 0 .79966 236.8 140.3)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".4" d="M-99.2 180.7l-3.6 3.6v26.5l3.6 3.6h-5.3v-33.7h5.3z" transform="matrix(-1.2798 0 0 1.1995 30 -5.6)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-104.5 180.7l3.5-3.5h-3.5v3.5z" transform="matrix(-1.9196 0 0 -1.7991 -43.6 576.6)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-104.5 180.7l3.5-3.5h-3.5v3.5z" transform="matrix(-1.9196 0 0 1.7991 -43.6 -114)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-104.5 180.7l3.5-3.5h-3.5v3.5z" transform="matrix(1.9196 0 0 1.7991 303.3 -114)"/>
+    <path fill="#28ae66" stroke="#000" stroke-width=".4" d="M-101 177.2l-7 7v26.6l7 7.1h32l7-7v-26.6l-7.1-7.1H-101zm0-1.8l-8.8 8.8v26.6l8.8 8.9h32l8.8-8.9v-26.6l-8.9-8.8H-101z" transform="matrix(1.2798 0 0 1.1995 238.7 -5.6)"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".3" d="M-76.2 154.1h7.1l1.8 1.8-1.8 1.8h-7V154z" transform="matrix(1.2798 0 0 1.07965 261.3 63)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-76.2 154.1h7.1l1.8 1.8-1.8 1.8h-7V154z" transform="matrix(1.2798 0 0 1.07958 261.3 66.8)"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".3" d="M-76.2 154.1h7.1l1.8 1.8-1.8 1.8h-7V154z" transform="matrix(1.2798 0 0 1.07965 261.3 70.6)"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".3" d="M-76.2 154.1h7.1l1.8 1.8-1.8 1.8h-7V154z" transform="matrix(1.2798 0 0 1.07965 261.3 55.3)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-76.2 154.1h7.1l1.8 1.8-1.8 1.8h-7V154z" transform="matrix(-1.2798 0 0 1.07958 -1.7 59.2)"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".3" d="M-76.2 154.1h7.1l1.8 1.8-1.8 1.8h-7V154z" transform="matrix(-1.2798 0 0 1.07965 -1.7 63)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-76.2 154.1h7.1l1.8 1.8-1.8 1.8h-7V154z" transform="matrix(-1.2798 0 0 1.07958 -1.7 66.8)"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".3" d="M-76.2 154.1h7.1l1.8 1.8-1.8 1.8h-7V154z" transform="matrix(-1.2798 0 0 1.07965 -1.7 70.6)"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".3" d="M-76.2 154.1h7.1l1.8 1.8-1.8 1.8h-7V154z" transform="matrix(-1.2798 0 0 1.07965 -1.7 55.3)"/>
+    <path fill="#970000" stroke="#000" stroke-width=".3" d="M-101 179v37h8.9v8.9h56.7V216h8.8v-37h-8.8v-8.8h-56.7v8.8h-8.9zm1.8 1.7v33.7h8.8v8.8h53.2v-8.8h8.9v-33.7h-8.9V172h-53.2v8.8h-8.8z" transform="matrix(1.2798 0 0 1.1995 211.4 -5.6)"/>
+    <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M-28.4 69.1l-5.3-7.1v-5.3l-5.3-5.3h-10.6l-8.9-5.3h-28.3l-8.9 5.3h-10.6l-5.3 5.3V62l-5.3 7v14.3l5.3 7v5.4l5.3 5.3h10.6l8.9 5.3h28.3l8.9-5.3H-39l5.4-5.3v-5.3l5.3-7.1V69z" transform="matrix(1.2798 0 0 1.1535 222.8 -36.7)"/>
+    <path fill="#faae29" d="M75.4 51.2v6.1l6.8 8.2v6.1l6.8 6.2h13.6l11.4 6h15.8V51.3H75.4z"/>
+    <path fill="#ca3745" d="M110.7 65.5l-8.3 5.3h-5l1.7 1.7-3.3 3.5 1.7 1.8 5-1.8 1.6 1.8.7-4.7 9.2-5.6-3.3-2z"/>
+    <path fill="#ca3745" d="M101.6 61.4l-8.3 5.3h-4.9l1.6 1.7-3.2 3.5 1.6 1.8 5-1.8 1.6 1.8.8-4.7 9.1-5.5-3.3-2zm-4.5-8.2l-8.3 5.3h-5l1.7 1.8-3.3 3.5 1.7 1.7 5-1.8 1.6 1.8.7-4.7 9.2-5.5-3.3-2z"/>
+    <path fill="#faae29" d="M184.2 51.2v-6.1l-6.8-8.2v-6.1l-6.8-6.2H157l-11.3-6.1h-15.9v32.7h54.4z"/>
+    <path fill="#ca3745" d="M129.8 83.9h-4.2l-4.8-4.1H113l-4.2-2 2.1-2 4.2 2h4.2l4.2-6.2 6.3 2v4.2h-6.3l6.3 6z"/>
+    <path fill="#fff" d="M75.4 51.2v-6.1l6.8-8.2v-6.1l6.8-6.2h13.6l11.4-6.1h15.8v32.7H75.4z"/>
+    <path fill="#ca3745" d="M129.8 18.5h-4.2l-4.8 4H113l-4.2 2.1 2.1 2 4.2-2h4.2l4.2 6.2 6.3-2v-4.2h-6.3l6.3-6.1z"/>
+    <path fill="#ca3745" d="M129.8 18.5h4.2l4.9 4h7.7l4.2 2.1-2 2-4.3-2h-4.2l-4.2 6.2-6.3-2v-4.2h6.3l-6.3-6.1z"/>
+    <path fill="#fff" d="M184.2 51.2v6.1l-6.8 8.2v6.1l-6.8 6.2H157l-11.3 6h-15.9V51.3h54.4z"/>
+    <path fill="#ca3745" d="M129.8 83.9h4.2l4.9-4.1h7.7l4.2-2-2-2-4.3 2h-4.2l-4.2-6.2-6.3 2v4.2h6.3l-6.3 6zm-28.2-43l-8.3-5.2h-4.9L90 34l-3.2-3.5 1.6-1.8 5 1.8 1.6-1.8.8 4.7 9.1 5.5-3.3 2zm47.4-4l8.2-5.3h5l-1.7-1.7 3.3-3.5-1.6-1.8-5 1.8-1.6-1.8-.8 4.7-9.1 5.6 3.3 2z"/>
+    <path fill="#ca3745" d="M110.7 36.9l-8.3-5.3h-5l1.7-1.7-3.3-3.5 1.7-1.8 5 1.8 1.6-1.8.7 4.7 9.2 5.5-3.3 2zM97 49.2l-8.3-5.3h-5l1.7-1.8-3.3-3.5L84 37l5 1.8 1.6-1.8.7 4.7 9.2 5.5-3.3 2z"/>
+    <path fill="#fff" d="M79.5 51.2h2l2.1 2 2.1-2h44.1v28.6h-2l2 2V84l-6.3-6.1v-2h2.1v2h2.1v-2l-17-9H96.3v-9L90 53.4h-4.2l-2.1 2 2 2h-2l-4.2-6z"/>
+    <path fill="#faae29" d="M79.5 51.2h2l2.1-2 2.1 2h44.1V22.6h-2l2-2v-2.1l-6.3 6.1v2h2.1v-2h2.1v2l-17 9.1H96.3v8.9L90 49.2h-4.2l-2.1-2 2-2.1h-2l-4.2 6.1z"/>
+    <path fill="#28ae66" d="M89 51.2h40.8v24.5l-18.1-10.2H98.1v-8.2l-9-6.1z"/>
+    <path fill="#ca3745" d="M158 41l8.3-5.3h5l-1.7-1.7 3.3-3.5-1.6-1.8-5 1.8-1.6-1.8-.8 4.7-9.1 5.5 3.2 2zm4.6 8.2l8.3-5.3h4.9l-1.7-1.8 3.3-3.5-1.6-1.7-5 1.8-1.6-1.8-.8 4.7-9.1 5.5 3.3 2z"/>
+    <path fill="#fff" d="M180.2 51.2h-2.1l-2.1-2-2.1 2h-44.1V22.6h2.1l-2.1-2v-2.1l6.3 6.1v2H134v-2h-2.1v2l17 9.1h14.4v8.9l6.4 4.6h4.2l2-2-2-2.1h2l4.3 6.1z"/>
+    <path fill="#28ae66" d="M170.6 51.2h-40.8V26.7L148 36.9h13.6v8.2l9.1 6.1z"/>
+    <path fill="#ca3745" d="M149 65.5l8.2 5.3h5l-1.7 1.7 3.3 3.5-1.6 1.8-5-1.8-1.6 1.8-.8-4.7-9.1-5.6 3.3-2z"/>
+    <path fill="#ca3745" d="M158 61.4l8.3 5.3h5l-1.7 1.7 3.3 3.5-1.6 1.8-5-1.8-1.6 1.8-.8-4.7-9.1-5.5 3.2-2zm4.6-8.2l8.3 5.3h4.9l-1.7 1.7 3.3 3.5-1.6 1.8-5-1.8-1.6 1.8-.8-4.7-9.1-5.5 3.3-2z"/>
+    <path fill="#faae29" d="M180.2 51.2h-2.1l-2.1 2-2.1-2h-44.1v28.6h2.1l-2.1 2V84l6.3-6.1v-2H134v2h-2.1v-2l17-9h14.4v-9l6.4-4.5h4.2l2 2-2 2h2l4.3-6z"/>
+    <path fill="#ca3745" d="M170.6 51.2h-40.8v24.5L148 65.5h13.6v-8.2l9.1-6.1zm-81.6 0h40.8V26.7l-18.1 10.2H98.1v8.2l-9 6.1z"/>
+    <path fill="#ca3745" d="M134.3 51.2l11.4-6.1h6.8l-2.3-2 4.6-4.2-2.3-2-6.8 2-2.3-2-1 5.5-12.6 6.4 4.5 2.4zm-9 0L114 57.3h-6.8l2.2 2-4.5 4.2 2.3 2 6.8-2 2.2 2 1-5.5 12.6-6.4-4.5-2.4z"/>
+    <path fill="#28ae66" d="M125.3 51.2L114 45.1h-6.8l2.3-2-4.5-4.2 2.3-2 6.8 2 2.2-2 1 5.5 12.6 6.4-4.5 2.4zm9 0l11.4 6.1h6.8l-2.3 2 4.6 4.2-2.3 2-6.8-2-2.3 2-1-5.5-12.6-6.4 4.5-2.4z"/>
+    <path fill="#fff" d="M116.2 51.2L129.8 41l13.6 10.2-13.6 10.2-13.6-10.2z"/>
+    <path fill="#ca3745" d="M85.7 55.3l2.1 2-2 2h-2.2l-6.3-8.1h2.1l4.2 6.1h2.1l-2-2 2-2H90v2h-4.2z"/>
+    <path fill="#ca3745" d="M85.7 47.1l2.1-2-2-2h-2.2l-6.3 8.1h2.1l4.2-6.1h2.1l-2 2 2 2H90v-2h-4.2zm88.2 8.2l-2 2 2 2h2.1l6.3-8.1h-2l-4.3 6.1h-2l2-2-2-2h-4.3v2h4.2z"/>
+    <path fill="#ca3745" d="M174 47.1l-2.2-2 2.1-2h2.1l6.3 8.1h-2l-4.3-6.1h-2l2 2-2 2h-4.3v-2h4.2zm-46.3-4h4.2v16.3h-4.2z"/>
+    <path fill="#ca3745" d="M121.4 47.1h16.8v8.2h-16.8z"/>
+    <path fill="#28ae66" stroke="#000" stroke-width=".1" d="M333 170l-10.6 5.4v8.8l10.7 5.4h10.6l10.6-5.4v-8.8l-10.6-5.3h-10.6z" transform="matrix(3.555 0 0 3.847 -1073.2 -292.2)"/>
+    <path fill="#c00" d="M87.2 396.3h2.2V392H94v4.2h2.3v-9.8H94v4.2h-4.5v-4.2h-2.3v9.8zm57.9 32.6h2.3v-4.2h4.5v4.2h2.3V419H152v4.2h-4.6V419h-2.2v9.8zm-36.6-49h2.3v-4.1h4.6v4.2h2.2v-9.8h-2.2v4.2h-4.6v-4.2h-2.3v9.8zm33.5 0h2.3v-4.1h4.6v4.2h2.3v-9.8h-2.3v4.2h-4.6v-4.2H142v9.8zm21.4 16.4h2.2V392h4.6v4.2h2.3v-9.8h-2.3v4.2h-4.6v-4.2h-2.2v9.8zm0 16.3h2.2v-4.2h4.6v4.2h2.3v-9.8h-2.3v4.2h-4.6v-4.2h-2.2v9.8z"/>
+    <path fill="#faae29" d="M129.8 435.4v-35.9h54.9v16.3L148 435.4h-18.3zm0-71.7v35.8H75v-16.3l36.5-19.5h18.3z"/>
+    <path fill="#fff" d="M129.8 363.7v35.8h54.9v-16.3L148 363.7h-18.3zm0 71.7v-35.9H75v16.3l36.5 19.6h18.3z"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".1" d="M-177.2 368.5h21.3l-21.3-10.6v10.6zm24.8-1.8v17.7H-186v-14.1h-7.1l-8.9-5.3v-12.4l5.4-5.4h-7.1V365h-1.8v-19.5h17.7l35.4 21.2z" transform="matrix(1.0321 0 0 .92 342 45.9)"/>
+    <path fill="#ca3745" d="M111.5 388.1V411h5.5l12.8 6.6 12.8-6.6h5.5v-22.8h-5.5l-12.8-6.5-12.8 6.5h-5.5z"/>
+    <path fill="#faae29" stroke="#000" stroke-width=".1" d="M-177.2 368.5h21.3l-21.3-10.6v10.6zm24.8-1.8v17.7H-186v-14.1h-7.1l-8.9-5.3v-12.4l5.4-5.4h-7.1V365h-1.8v-19.5h17.7l35.4 21.2z" transform="matrix(-1.0321 0 0 -.92 -82.3 753.2)"/>
+    <path fill="#fff" stroke="#000" stroke-width=".1" d="M-177.2 368.5h21.3l-21.3-10.6v10.6zm24.8-1.8v17.7H-186v-14.1h-7.1l-8.9-5.3v-12.4l5.4-5.4h-7.1V365h-1.8v-19.5h17.7l35.4 21.2z" transform="matrix(-1.0321 0 0 .92 -82.3 45.9)"/>
+    <path fill="#fff" stroke="#000" stroke-width=".1" d="M-177.2 368.5h21.3l-21.3-10.6v10.6zm24.8-1.8v17.7H-186v-14.1h-7.1l-8.9-5.3v-12.4l5.4-5.4h-7.1V365h-1.8v-19.5h17.7l35.4 21.2z" transform="matrix(1.0321 0 0 -.92 342 753.2)"/>
+    <path fill="#ca3745" d="M86 412.6h2.2v-5h4.6v5h2.3v-11.4h-2.3v4.9h-4.6v-5H86v11.5zm21.9 16.3h2.3v-5h4.5v5h2.3v-11.4h-2.3v4.9h-4.5v-5h-2.3V429zm-22-42.4h2.3v4.9h4.6v-5h2.3V398h-2.3v-5h-4.6v4.9H86v-11.4zm22-16.3h2.3v4.9h4.5v-5h2.3v11.5h-2.3v-4.9h-4.5v5h-2.3v-11.5zm34.7 58.7h2.3v-5h4.6v5h2.3v-11.4h-2.3v4.9h-4.6v-5h-2.3V429zm22-31h2.3V393h4.5v5h2.3v-11.5h-2.3v4.9H167v-5h-2.3V398z"/>
+    <path fill="#ca3745" d="M142.6 428.9h2.3v-5h4.6v5h2.3v-11.4h-2.3v4.9h-4.6v-5h-2.3V429z"/>
+    <path fill="#ca3745" d="M142.6 428.9h2.3v-5h4.6v5h2.3v-11.4h-2.3v4.9h-4.6v-5h-2.3V429zm22-16.3h2.3v-5h4.5v5h2.3v-11.4h-2.3v4.8H167v-4.9h-2.3v11.5zm-22-31h2.3v-4.9h4.6v5h2.3v-11.5h-2.3v4.9h-4.6v-5h-2.3v11.5z"/>
+    <path fill="#fff" d="M131.7 399.5l7.3-6h3.6v3H139v1.5h5.5v-5.9H139v-4.5h-7.3v4.5h1.8v-3h3.6v3l-7.3 6-7.3-6v-3h3.7v3h1.8v-4.5h-7.3v4.5h-5.5v6h5.5v-1.5H117v-3h3.7l7.3 6-7.3 5.9H117v-3h3.7V401h-5.5v6h5.5v4.4h7.3V407h-1.8v3h-3.7v-3l7.3-6 7.3 6v3h-3.6v-3h-1.8v4.4h7.3V407h5.5v-6H139v1.5h3.6v3H139l-7.3-6z"/>
+    <g transform="matrix(1.0321 0 0 .95838 204.8 18.2)">
+      <path fill="#ca3745" d="M-122.3 134.3l3.4-3.8h20.6l15.4-16.7h20.6l15.4 16.8h20.6l3.4 3.7-3.4 3.7H-47l-15.4 16.8H-83L-98.3 138H-119l-3.4-3.7z"/>
+      <path fill="#ca3745" stroke="#000" stroke-width=".3" d="M372 391.5l2-2h22.8l17.1-19.4h19l17.2 19.5h22.8l1.9 2-1.9 1.9h-22.8L434.8 411H412l-15.2-17.5h-22.9l-1.9-2z" transform="matrix(.93104 0 0 .90908 -466.9 -221.3)"/>
+      <path fill="#faae29" d="M-64 136.2l6.8 7.4-3.4 3.7-1.8-1.8H-64v1.8l1.7 1.9h3.5l3.4-3.7v-3.8l-6.9-7.4 6.9-7.5v-3.7l-3.4-3.7h-3.5l-1.7 1.8v1.9h1.7l1.8-1.9 3.4 3.8-6.9 7.4-6.8-7.4 6.8-7.5v-1.9h-1.7l-6.8 7.5-6.9-7.5h-1.7v1.9l6.8 7.5-6.8 7.4-6.9-7.4 3.5-3.8 1.7 1.9h1.7v-1.9l-1.7-1.8h-3.5l-3.4 3.7v3.7l6.9 7.5-6.9 7.4v3.8l3.4 3.7h3.5l1.7-1.9v-1.8H-83l-1.7 1.8-3.5-3.7 6.9-7.4 6.8 7.4-6.8 7.5v1.8h1.7l6.9-7.4 6.8 7.4h1.7v-1.8l-6.8-7.5 6.8-7.4zm-8.6-9.4l-6.9 7.5 6.9 7.4 6.8-7.4-6.8-7.5zm-10.3 28v15l1.7-2 1.7 2 1.7-2 1.7 2 1.8-2 1.7 2 1.7-2 1.7 2 1.7-2 1.7 2 1.7-2 1.8 2v-15H-83zm20.6-41v-15l-1.8 2-1.7-2-1.7 2-1.7-2-1.7 2-1.7-2-1.8 2-1.7-2-1.7 2-1.7-2-1.7 2-1.7-2v15h20.6zm29 16.8v-15l-1.6 2-1.7-2-1.7 2-1.8-2-1.7 2-1.7-2-1.7 2-1.7-2v15h13.7zm-65 0v-15l-1.8 2-1.7-2-1.7 2-1.7-2-1.7 2-1.7-2-1.8 2-1.7-2v15h13.7zm65.1 7.4v15l-1.7-2-1.7 2-1.7-2-1.8 2-1.7-2-1.7 2-1.7-2-1.7 2v-15h13.7zm-65.2 0v15l-1.7-2-1.7 2-1.7-2-1.7 2-1.7-2-1.7 2-1.8-2-1.7 2v-15h13.7z"/>
+      <path fill="#28ae66" d="M-62.4 154.8v9.3l1.8-1.9 1.7 2 1.7-2 1.7 2 1.7-2 1.7 2 1.8-2 1.7 2 1.7-2V138l-15.5 16.8zm-20.5 0v9.3l-1.8-1.9-1.7 2-1.7-2-1.7 2-1.7-2-1.7 2-1.7-2-1.7 2-1.8-2V138l15.5 16.8zm0-41v-9.3l-1.8 1.8-1.7-1.8-1.7 1.8-1.7-1.8-1.7 1.8-1.7-1.8-1.7 1.8-1.7-1.8-1.8 1.8v24.3l15.5-16.8zm20.5 0v-9.3l1.8 1.8 1.7-1.8 1.7 1.8 1.7-1.8 1.7 1.8 1.7-1.8 1.7 1.8 1.8-1.8 1.7 1.8v24.3l-15.5-16.8zm-49.7 35.4l-1.7-1.9-1.7 2-1.7-2-1.7 2-1.7-2-1.8 2-1.7-2-1.7 2v-30l1.7 2 1.7-2 1.8 2 1.7-2 1.7 2 1.7-2 1.7 2 1.7-2v11.3h-6.8l-3.5 3.7 3.5 3.7h6.8v11.2zm78.9 0l1.7-1.9 1.7 2 1.7-2 1.8 2 1.7-2 1.7 2 1.7-2 1.7 2v-30l-1.7 2-1.7-2-1.7 2-1.7-2-1.8 2-1.7-2-1.7 2-1.7-2v11.3h6.9l3.4 3.7-3.4 3.7h-6.9v11.2z"/>
+      <path fill="#fff" d="M-91.4 156s-1.4 1.4-1.4 2.2c0 .7 1.5 2.2 2.2 2.2.8 0 2.1-1.5 2.1-2.2s-1.4-2.2-1.4-2.2v-3s3 5.1 3 2.9c0-1.6-3-4.3-3-4.3h-1.5s-3 3.2-3 4.3c0 2.2 3-2.9 3-2.9v3z"/>
+      <path fill="#ca3745" d="M-73.5 161.7s-1.7 2-1.7 3 1.8 3.2 2.6 3.2c1 0 2.5-2.1 2.5-3.1s-1.7-3.1-1.7-3.1v-4.2s3 6.8 3 3.7c0-2-3-5.7-3-5.7h-1.7s-3.5 4.6-3 5.7c0 3.1 3-3.7 3-3.7v4.2z"/>
+      <ellipse cx="403.9" cy="391.5" fill="#28ae66" rx="3.5" ry="1.8" transform="matrix(.96774 0 0 1.0526 -482.4 -277.9)"/>
+      <ellipse cx="403.9" cy="391.5" fill="#28ae66" rx="3.5" ry="1.8" transform="matrix(.96774 0 0 1.0526 -463.5 -277.9)"/>
+      <ellipse cx="403.9" cy="391.5" fill="#28ae66" rx="3.5" ry="1.8" transform="matrix(.96774 0 0 1.0526 -444.7 -277.9)"/>
+      <path fill="#fff" d="M-91.7 112.8s-1.4-1.5-1.4-2.2c0-.7 1.5-2.3 2.1-2.3.8 0 2.1 1.5 2.1 2.2 0 .8-1.4 2.3-1.4 2.3v3s3.1-5.2 3.1-3c0 1.6-3 4.4-3 4.4h-1.5s-3.1-3.2-3.1-4.3c0-2.2 3 2.8 3 2.8v-3z"/>
+      <path fill="#ca3745" d="M-73.9 107s-1.7-2-1.7-3 1.9-3.1 2.6-3.1c1 0 2.6 2 2.6 3s-1.7 3.2-1.7 3.2v4s3-6.7 3-3.6c0 2-3 5.8-3 5.8H-74s-3.5-4.7-3-5.8c0-3 3 3.7 3 3.7V107z"/>
+      <path fill="#fff" d="M-54.9 156s-1.4 1.4-1.4 2.2c0 .7 1.5 2.2 2.2 2.2.8 0 2.1-1.5 2.1-2.2s-1.4-2.2-1.4-2.2v-3s3 5.1 3 2.9c0-1.6-3-4.3-3-4.3H-55s-3 3.2-3 4.3c0 2.2 3-2.9 3-2.9v3zm-.3-43.2s-1.4-1.5-1.4-2.3c0-.6 1.5-2.2 2.1-2.2.8 0 2.1 1.5 2.1 2.2 0 .8-1.4 2.3-1.4 2.3v3s3.1-5.2 3.1-3c0 1.6-3 4.4-3 4.4h-1.5s-3.1-3.2-3.1-4.3c0-2.2 3 2.8 3 2.8v-3z"/>
+      <path fill="#ca3745" d="M-106.3 145.6s-1.9 1.4-1.9 2c0 .7 2 2.2 2.9 2.1 1 0 2.8-1.3 2.8-2s-1.9-2.1-1.9-2.1v-2.8s3.4 4.5 3.4 2.5c0-1.4-3.4-3.9-3.4-3.9h-1.9s-3.9 3.2-3.3 3.9c0 2 3.3-2.5 3.3-2.5v2.8zm-.4-21.1s-1.9-1.4-1.9-2.1c0-.7 2-2.1 2.9-2 1 0 2.8 1.3 2.8 2s-1.9 2-1.9 2v2.8s3.4-4.5 3.4-2.4c0 1.3-3.4 3.8-3.4 3.8h-1.9s-3.9-3.1-3.3-3.8c0-2 3.3 2.4 3.3 2.4v-2.7zm66.3 20.6s-2 1.4-2 2.1c0 .7 2.1 2.1 3 2.1 1 0 2.8-1.4 2.8-2 0-.8-2-2.2-2-2.2v-2.7s3.4 4.5 3.4 2.4c0-1.3-3.3-3.8-3.3-3.8h-2s-3.8 3.1-3.3 3.8c0 2.1 3.4-2.4 3.4-2.4v2.8zm-.4-21s-2-1.4-2-2.1c0-.7 2.1-2.1 3-2.1 1 0 2.8 1.4 2.8 2 0 .8-2 2.1-2 2.1v2.8s3.4-4.5 3.4-2.5c0 1.4-3.3 3.9-3.3 3.9h-2s-3.8-3.1-3.3-3.8c0-2.1 3.4 2.4 3.4 2.4V124z"/>
+      <path fill="#fff" d="M-120.3 145.4c-.6-1.3-.4-1.9-.4-2.6 0-.7 1.7-2 2.3-2 .8 0 2.1 1.4 2.1 2.2 0 .7 0 1.3-.3 2.6l-.8-2.1c-1.1 3-1.2 3-1.8-.1l-1 2zm0-21.5c-.5 1.3-.4 1.9-.4 2.6 0 .7 1.7 2 2.4 2 .8 0 2.1-1.4 2.1-2.2 0-.7 0-1.3-.3-2.6l-.9 2.1c-1-3-1.1-3-1.8.1l-1-2zm92.5 21.2c-.6-1.3-.5-1.9-.5-2.6 0-.7 1.8-2 2.4-2 .8 0 2.1 1.5 2.1 2.2 0 .7 0 1.4-.3 2.6l-.9-2.1c-1 3-1.1 3.1-1.8 0l-1 1.9zm0-21.4c-.6 1.2-.4 1.8-.4 2.6 0 .6 1.7 2 2.3 2 .8 0 2.2-1.5 2.2-2.2 0-.8 0-1.4-.3-2.7l-1 2.2c-1-3.1-1-3.2-1.7 0l-1-2z"/>
+      <path fill="#ca3745" stroke="#000" stroke-width=".1" d="M115.2 177.2v-5.4h-16v-10.6H85v-3.5H72.6v-32H85v-3.5h14.2v-10.6h16v-5.3h21.2v5.3h16v10.6h14.1v3.6H179v31.9h-12.4v3.5h-14.1v10.6h-16v5.3h-21.2zm-1.8 1.7v-5.3h-16V163H83.3v-3.6H70.9V124h12.4v-3.5h14.1v-10.7h16v-5.3h24.8v5.3h16v10.7h14.1v3.5h12.4v35.4h-12.4v3.6h-14.2v10.6h-16v5.3h-24.7z" transform="matrix(1 0 0 .99999 -198.4 -7)"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tn.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tn.svg
new file mode 100644
index 0000000..c6aaecb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tn.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-tn" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="tn-a">
+      <path fill-opacity=".7" d="M-85.3 0h682.6v512H-85.3z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#tn-a)" transform="translate(80) scale(.9375)">
+    <path fill="#e70013" d="M-128 0h768v512h-768z"/>
+    <path fill="#fff" d="M385.8 255.8a129.1 129.1 0 11-258.2 0 129.1 129.1 0 01258.2 0z"/>
+    <path fill="#e70013" d="M256.7 341.4a85.7 85.7 0 010-171.3c11.8 0 25.3 2.8 34.4 9.5-62.6 2.3-78.5 55.5-78.5 76.9s10.1 69.1 78.5 76.2c-7.8 5-22.6 8.7-34.4 8.7z"/>
+    <path fill="#e70013" d="M332.1 291.8l-38.9-14.2-25.7 32.4 1.5-41.3-38.8-14.5 39.8-11.4 1.7-41.3 23.2 34.3 39.8-11-25.5 32.5z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/to.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/to.svg
new file mode 100644
index 0000000..4dd38e4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/to.svg
@@ -0,0 +1,10 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-to" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#c10000" d="M0 0h640v480H0z"/>
+    <path fill="#fff" d="M0 0h250v200.3H0z"/>
+    <g fill="#c10000">
+      <path d="M102.8 31.2h39.9v139.6h-39.8z"/>
+      <path d="M192.6 81v40H53V81z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tr.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tr.svg
new file mode 100644
index 0000000..f1910ee
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tr.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-tr" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="#e30a17" d="M0 0h640v480H0z"/>
+    <path fill="#fff" d="M407 247.5c0 66.2-54.6 119.9-122 119.9s-122-53.7-122-120 54.6-119.8 122-119.8 122 53.7 122 119.9z"/>
+    <path fill="#e30a17" d="M413 247.5c0 53-43.6 95.9-97.5 95.9s-97.6-43-97.6-96 43.7-95.8 97.6-95.8 97.6 42.9 97.6 95.9z"/>
+    <path fill="#fff" d="M430.7 191.5l-1 44.3-41.3 11.2 40.8 14.5-1 40.7 26.5-31.8 40.2 14-23.2-34.1 28.3-33.9-43.5 12-25.8-37z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tt.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tt.svg
new file mode 100644
index 0000000..19add52
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tt.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-tt" viewBox="0 0 640 480">
+  <path fill="#fff" d="M0 0h640v480H0z"/>
+  <path fill="#e00000" fill-rule="evenodd" d="M463.7 480L0 1v478.8l463.7.2zM176.3 0L640 479V.2L176.3 0z"/>
+  <path fill-rule="evenodd" d="M27.7.2h118.6l468.2 479.3H492.2L27.7.2z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tv.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tv.svg
new file mode 100644
index 0000000..a63338d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tv.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-tv" viewBox="0 0 640 480">
+  <defs id="defs830">
+    <clipPath id="tv-a">
+      <path id="path827" fill-opacity=".7" d="M0 0h640v480H0z"/>
+    </clipPath>
+  </defs>
+  <path id="rect891" fill="#009fca" fill-opacity="1" stroke-width="11.8" d="M0 0h640v480H0z"/>
+  <path id="path862" fill="#fff40d" fill-rule="evenodd" stroke-width="1pt" d="M593.3 122.7H621l-22.3 15.2 8.5 24.7-22.3-15.3-22.2 15.3 8.5-24.7-22.3-15.2h27.5l8.5-24.7zm-69.2 196.8h27.6l-22.3 15.2 8.5 24.7-22.3-15.3-22.3 15.3 8.6-24.7-22.3-15.2H507l8.5-24.7zm69.2-44.6H621l-22.3 15.2 8.5 24.7-22.3-15.3-22.2 15.3 8.5-24.7-22.3-15.2h27.5l8.5-24.7zM295.8 417.7h27.6L301 432.8l8.6 24.6-22.3-15.2-22.3 15.2 8.6-24.6-22.4-15.3h27.6l8.5-24.6zm62.6-76.5h-27.6l22.3-15.3-8.5-24.6 22.3 15.2 22.3-15.2-8.6 24.6 22.3 15.3h-27.5l-8.5 24.6zm81.3-112.5H412l22.3-15.2-8.5-24.7 22.3 15.3 22.3-15.3-8.6 24.7 22.3 15.2h-27.5l-8.5 24.7zm68.3-23.3h-27.6l22.4-15.3-8.6-24.6 22.3 15.2 22.3-15.2-8.6 24.6 22.4 15.3H525l-8.5 24.6zM439.7 400H412l22.3-15.2L426 360l22.3 15.2 22.3-15.2-8.6 24.7 22.3 15.2h-27.5l-8.5 24.7zm-81.3 19.9h-27.6l22.3-15.2-8.5-24.7 22.3 15.2 22.3-15.2-8.6 24.6L403 420h-27.5l-8.5 24.7z" opacity="1" stop-opacity="1"/>
+  <g id="g1551" transform="scale(.5)">
+    <path id="path1529" fill="#012169" d="M0 0h640v480H0z"/>
+    <path id="path1531" fill="#FFF" d="M75 0l244 181L562 0h78v62L400 241l240 178v61h-80L320 301 81 480H0v-60l239-178L0 64V0z"/>
+    <path id="path1533" fill="#C8102E" d="M424 281l216 159v40L369 281zm-184 20l6 35L54 480H0zM640 0v3L391 191l2-44L590 0zM0 0l239 176h-60L0 42z"/>
+    <path id="path1535" fill="#FFF" d="M241 0v480h160V0zM0 160v160h640V160z"/>
+    <path id="path1537" fill="#C8102E" d="M0 193v96h640v-96zM273 0v480h96V0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tw.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tw.svg
new file mode 100644
index 0000000..b614e44
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tw.svg
@@ -0,0 +1,14 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-tw" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="tw-a">
+      <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#tw-a)" transform="scale(.9375)">
+    <path fill="#fe0000" d="M0 0h768v512H0z"/>
+    <path fill="#000095" d="M0 0h385.7v256H0z"/>
+    <path fill="#fff" d="M282.1 178.6l-47.3-9.8 10 47.3-36-32.1-15 46-15.2-45.9-36 32.4 9.8-47.4-47.2 10.1 32-36.1-46-15 46-15.2-32.4-35.8 47.3 9.7-10-47.3 36 32.1 15-46 15.2 45.9 35.9-32.4-9.7 47.4 47.2-10.1-32 36.1 45.9 15-45.9 15.2z"/>
+    <path fill="#000095" d="M238.5 175l-15 7.9-14.5 8.6-17-.6-16.9.2-14.3-9L146 174l-8-15-8.6-14.5.6-16.8-.2-17 9-14.2 8.3-14.8 14.9-7.9 14.6-8.6 16.9.6 17-.2 14.3 9 14.7 8.2 8 14.9 8.6 14.5-.6 16.9.2 16.9-9 14.3z"/>
+    <path fill="#fff" d="M244.6 128.3a51.9 51.9 0 11-103.7 0 51.9 51.9 0 01103.7 0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tz.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tz.svg
new file mode 100644
index 0000000..5c80173
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/tz.svg
@@ -0,0 +1,13 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-tz" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="tz-a">
+      <path fill-opacity=".7" d="M10 0h160v120H10z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" stroke-width="1pt" clip-path="url(#tz-a)" transform="matrix(4 0 0 4 -40 0)">
+    <path fill="#09f" d="M0 0h180v120H0z"/>
+    <path fill="#090" d="M0 0h180L0 120V0z"/>
+    <path d="M0 120h40l140-95V0h-40L0 95v25z"/>
+    <path fill="#ff0" d="M0 91.5L137.2 0h13.5L0 100.5v-9zM29.3 120L180 19.5v9L42.8 120H29.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ua.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ua.svg
new file mode 100644
index 0000000..a93d06d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ua.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ua" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#ffd500" d="M0 0h640v480H0z"/>
+    <path fill="#005bbb" d="M0 0h640v240H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ug.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ug.svg
new file mode 100644
index 0000000..c996cbd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ug.svg
@@ -0,0 +1,30 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ug" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="ug-a">
+      <path fill-opacity=".7" d="M-85.3 0h682.6v512H-85.3z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#ug-a)" transform="translate(80) scale(.9375)">
+    <path fill="#ffe700" fill-rule="evenodd" d="M-128 341.4h768v85.3h-768z"/>
+    <path fill-rule="evenodd" d="M-128 256h768v85.3h-768z"/>
+    <path fill="#de3908" fill-rule="evenodd" d="M-128 170.7h768V256h-768z"/>
+    <path fill="#ffe700" fill-rule="evenodd" d="M-128 85.4h768v85.3h-768z"/>
+    <path fill-rule="evenodd" d="M-128 0h768v85.3h-768z"/>
+    <path fill="#fffdff" fill-rule="evenodd" stroke="#000" d="M335.7 256a79.7 79.7 0 11-159.4 0 79.7 79.7 0 01159.4 0z"/>
+    <path fill="#de3108" fill-rule="evenodd" stroke="#000" d="M242 194.9l-5.2-9.5c2-2 5.3-3.6 10.7-3.6l-.6 10.5-5 2.6z"/>
+    <path fill="#ffe700" fill-rule="evenodd" stroke="#000" d="M247 192.3l.7-10.5s10.7-.6 16.5 6.4l-5.7 8.2-11.6-4z"/>
+    <path fill="#de3108" fill-rule="evenodd" stroke="#000" d="M258.6 196.3l5.3-8.2c3.5 3.7 5 6.3 5.5 10.3.1.1-8.3 2.1-8.3 2l-2.5-4.1z"/>
+    <path fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width=".9" d="M244.6 331.1s9.9-11.3 29.1-8.9c-2.9-4.7-12.3-4.1-12.3-4.1s-2.8-22-.6-23.2 12 .1 12 .1c1.2 0 3.4-3.4 1.6-5.6-1.7-2.2-6.8-10.5-4.7-12.2 2.1-1.6 13.4 1 13.4 1l-32-41s-3.3-15.5 3.3-23c7.9-6.5 7-13.6 6.8-13.5-1.1-7.2-12-12.3-19.4-5.7-4.3 5.2-1.4 9.2-1.4 9.2s-11.5 3.1-11.9 5.1c-.5 2 12.9-.3 12.9-.3l-1.3 9.1s-26 23.6-6 44l.6-.8s7 8.6 14.3 10.5c7 7 6.3 6 6.3 6s1.3 11.1 0 13.3c-1.7-.5-19.3-1.2-21.9-.2-2.4.8-11.4.3-9.2 15.1l3.3-7.5s-.3 5.3 1.9 7.2c-.4-5.6 2.1-9.4 2.1-9.4s.4 6.2 1.8 7c1.4 1 1.4-10 9-9 7.4.9 12.9.6 12.9.6s2.5 21.4 1.7 23.4c-5.4-1.3-18.4.5-19.2 3.8 7.6-.5 11.1.4 11.1.4s-6.1 5.5-4.2 8.6z"/>
+    <path fill="#9ca69c" fill-rule="evenodd" stroke="#9ca69c" stroke-linecap="round" stroke-linejoin="round" stroke-width=".9" d="M247.6 214.8s-18.9 20.8-10.7 36.7c.4-2.2.2-3.6.5-3.5-.5-.3 2.3 1.9 2.1 1.5 0-1.2-.8-3.7-.8-3.7l2.5.7-1.5-2.8 3.7.4s-1.3-3.4-.9-3.4l3 .2c-5.4-9.6-.3-17.6 2.1-26.2z"/>
+    <path fill="#9ca69c" fill-rule="evenodd" stroke="#9ca69c" d="M254.2 196.9s1 7.2-3 9.2c-.5.5-3 1.3-2.6 2.8.4 2 1.5 1.6 3 1.2 4.1-.7 8.9-9.4 2.6-13.2z"/>
+    <path fill="#fff" fill-rule="evenodd" d="M247.2 203a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0z"/>
+    <path fill="#de3108" fill-rule="evenodd" stroke="#000" d="M241.1 209c-1 .9-6.2 6.3-1 8.3 5.3-1.4 3.8-2.4 5-3.6 0-2.5-2.6-3.1-4-4.6z"/>
+    <path fill="#9ca69c" fill-rule="evenodd" stroke="#9ca69c" stroke-linecap="round" stroke-linejoin="round" stroke-width=".9" d="M252.6 260.5c-.3 1.2-1.5 5.6.1 9 4.6-2 6.7-1.4 8.2-.4-3.7-3-5.2-4.3-8.3-8.6z"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width=".9" d="M260.4 281.1l.2 10.2s3.6.6 5.2 0 0-7-5.4-10.2z"/>
+    <path fill="#9ca69c" fill-rule="evenodd" stroke="#000" d="M286 282.4s-6.5-15.8-23.2-19.8-14.5-21.8-13.2-22.9c.8-1.5 1.3-3.9 6.1-1.6s27 13.4 30.2 14 .4 30.7.2 30.3z"/>
+    <path fill="#de3108" fill-rule="evenodd" stroke="#000" stroke-linejoin="round" stroke-width=".9" d="M270.2 262.5c-.3.2 22.3 13.4 15.5 24.7 6.4-4.3 4.4-11.7 4.4-11.7s5.2 13.7-7.6 20.4c1.4 1.2 2.3 1 2.3 1l-2.2 2.1s-1 1.7 7.6-2.5c-2.3 1.9-2.5 3.3-2.5 3.3s.6 1.8 6.2-3.1c-4.5 4.9-5.5 7.4-5.5 7.3 12.3-1 39-41-8.4-52.7l2.1 2.2-12 9z"/>
+    <path fill="#fff" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width=".9" d="M271.2 258.6c3 2.2 4.1 3 4.5 4-2.8-.6-5.3-.4-5.3-.4s-6.1-5.8-7.2-6.3c-.8 0-5.6-3-5.6-3-2.3-1.2-4.5-9.3 4.2-7a93 93 0 0010.3 4.6l10.7 3.4 6.2 6.9s-11-5.4-12.4-5.5c3 2.4 4.7 5.8 4.7 5.8-3.5-1-6.5-2-10.1-2.5z"/>
+    <path fill="none" stroke="#fff" stroke-linecap="round" stroke-width=".9" d="M228.4 209.9s10.5-2.6 11.8-2.2"/>
+    <path fill="#de3908" fill-rule="evenodd" d="M-128 426.7h768V512h-768z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/um.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/um.svg
new file mode 100644
index 0000000..1aa1162
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/um.svg
@@ -0,0 +1,15 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-um" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="um-a">
+      <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#um-a)" transform="scale(.9375)">
+    <g stroke-width="1pt">
+      <path fill="#bd3d44" d="M0 0h972.8v39.4H0zm0 78.8h972.8v39.4H0zm0 78.7h972.8V197H0zm0 78.8h972.8v39.4H0zm0 78.8h972.8v39.4H0zm0 78.7h972.8v39.4H0zm0 78.8h972.8V512H0z"/>
+      <path fill="#fff" d="M0 39.4h972.8v39.4H0zm0 78.8h972.8v39.3H0zm0 78.7h972.8v39.4H0zm0 78.8h972.8v39.4H0zm0 78.8h972.8v39.4H0zm0 78.7h972.8v39.4H0z"/>
+    </g>
+    <path fill="#192f5d" d="M0 0h389.1v275.7H0z"/>
+    <path fill="#fff" d="M32.4 11.8L36 22.7h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7H29zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7h11.4zm64.8 0l3.6 10.9H177l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7h11.5zm64.9 0l3.5 10.9H242l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.4zm64.8 0l3.6 10.9h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.2-6.7h11.4zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.5zM64.9 39.4l3.5 10.9h11.5L70.6 57 74 67.9l-9-6.7-9.3 6.7L59 57l-9-6.7h11.4zm64.8 0l3.6 10.9h11.4l-9.3 6.7 3.6 10.9-9.3-6.7-9.3 6.7L124 57l-9.3-6.7h11.5zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 10.9-9.2-6.7-9.3 6.7 3.5-10.9-9.2-6.7H191zm64.8 0l3.6 10.9h11.4l-9.3 6.7 3.6 10.9-9.3-6.7-9.2 6.7 3.5-10.9-9.3-6.7H256zm64.9 0l3.5 10.9h11.5L330 57l3.5 10.9-9.2-6.7-9.3 6.7 3.5-10.9-9.2-6.7h11.4zM32.4 66.9L36 78h11.4l-9.2 6.7 3.5 10.9-9.3-6.8-9.2 6.8 3.5-11-9.3-6.7H29zm64.9 0l3.5 11h11.5l-9.3 6.7 3.5 10.9-9.2-6.8-9.3 6.8 3.5-11-9.2-6.7h11.4zm64.8 0l3.6 11H177l-9.2 6.7 3.5 10.9-9.3-6.8-9.2 6.8 3.5-11-9.3-6.7h11.5zm64.9 0l3.5 11H242l-9.3 6.7 3.6 10.9-9.3-6.8-9.3 6.8 3.6-11-9.3-6.7h11.4zm64.8 0l3.6 11h11.4l-9.2 6.7 3.5 10.9-9.3-6.8-9.2 6.8 3.5-11-9.2-6.7h11.4zm64.9 0l3.5 11h11.5l-9.3 6.7 3.6 10.9-9.3-6.8-9.3 6.8 3.6-11-9.3-6.7h11.5zM64.9 94.5l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7h11.4zm64.8 0l3.6 10.9h11.4l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.5zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7H191zm64.8 0l3.6 10.9h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7H256zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7h11.4zM32.4 122.1L36 133h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7H29zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 10.9-9.2-6.7-9.3 6.7 3.5-10.9-9.2-6.7h11.4zm64.8 0l3.6 10.9H177l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7h11.5zm64.9 0l3.5 10.9H242l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.4zm64.8 0l3.6 10.9h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.2-6.7h11.4zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.5zM64.9 149.7l3.5 10.9h11.5l-9.3 6.7 3.5 10.9-9.2-6.8-9.3 6.8 3.5-11-9.2-6.7h11.4zm64.8 0l3.6 10.9h11.4l-9.3 6.7 3.6 10.9-9.3-6.8-9.3 6.8 3.6-11-9.3-6.7h11.5zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 10.9-9.2-6.8-9.3 6.8 3.5-11-9.2-6.7H191zm64.8 0l3.6 10.9h11.4l-9.2 6.7 3.5 10.9-9.3-6.8-9.2 6.8 3.5-11-9.3-6.7H256zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 10.9-9.2-6.8-9.3 6.8 3.5-11-9.2-6.7h11.4zM32.4 177.2l3.6 11h11.4l-9.2 6.7 3.5 10.8-9.3-6.7-9.2 6.7 3.5-10.9-9.3-6.7H29zm64.9 0l3.5 11h11.5l-9.3 6.7 3.6 10.8-9.3-6.7-9.3 6.7 3.6-10.9-9.3-6.7h11.4zm64.8 0l3.6 11H177l-9.2 6.7 3.5 10.8-9.3-6.7-9.2 6.7 3.5-10.9-9.3-6.7h11.5zm64.9 0l3.5 11H242l-9.3 6.7 3.6 10.8-9.3-6.7-9.3 6.7 3.6-10.9-9.3-6.7h11.4zm64.8 0l3.6 11h11.4l-9.2 6.7 3.5 10.8-9.3-6.7-9.2 6.7 3.5-10.9-9.2-6.7h11.4zm64.9 0l3.5 11h11.5l-9.3 6.7 3.6 10.8-9.3-6.7-9.3 6.7 3.6-10.9-9.3-6.7h11.5zM64.9 204.8l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7h11.4zm64.8 0l3.6 10.9h11.4l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.5zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7H191zm64.8 0l3.6 10.9h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7H256zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7h11.4zM32.4 232.4l3.6 10.9h11.4l-9.2 6.7 3.5 10.9-9.3-6.7-9.2 6.7 3.5-11-9.3-6.7H29zm64.9 0l3.5 10.9h11.5L103 250l3.6 10.9-9.3-6.7-9.3 6.7 3.6-11-9.3-6.7h11.4zm64.8 0l3.6 10.9H177l-9 6.7 3.5 10.9-9.3-6.7-9.2 6.7 3.5-11-9.3-6.7h11.5zm64.9 0l3.5 10.9H242l-9.3 6.7 3.6 10.9-9.3-6.7-9.3 6.7 3.6-11-9.3-6.7h11.4zm64.8 0l3.6 10.9h11.4l-9.2 6.7 3.5 10.9-9.3-6.7-9.2 6.7 3.5-11-9.2-6.7h11.4zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.6 10.9-9.3-6.7-9.3 6.7 3.6-11-9.3-6.7h11.5z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/un.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/un.svg
new file mode 100644
index 0000000..b623650
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/un.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-un" viewBox="0 0 640 480">
+  <path fill="#4b92db" fill-rule="evenodd" d="M0 0h640v480H0z"/>
+  <g transform="matrix(.6 0 0 .6 -40.6 0)">
+    <path id="a" fill="#fff" d="M663.9 587a71 71 0 01-9.5 8.6c-21.2-22-46.2-46.2-69.9-46.2-14.7 0-25.2 11.2-37.6 19-17.1 11-40.6 17.2-60.7 9.1a66.2 66.2 0 01-29.2-20 63.6 63.6 0 0057.5 5c19.7-8.2 39.9-19.1 62.4-19.1 33.2 0 64.8 22.5 87 43.6zm-245.6-69c22 25 57.9 17 87.2 23.2 4.1 1 8 2.3 12.4 1.6-3.5-2.2-8.2-2.5-12.2-4-22.8-8.6-26.3-33-38.8-49.7 16 10.6 29.1 25 44 38.7a73.8 73.8 0 0036.7 16.2c-3.2 1.2-7.4 1-11 1.8-24 6-50.6 15.4-76.2 7a75.4 75.4 0 01-42-34.8zm-35.2-58c13.7 31.1 48.2 33.6 71 52.6a64 64 0 0013.5 9.2l.3-.2a99.5 99.5 0 01-15.1-16.5c-13.1-19-8.8-45-18.9-65.2a142 142 0 0123.1 34.9c8.5 20.2 11.4 43.3 30.5 58.7-20.7-6.8-44.5-5.5-63-17.6-19.6-12.8-37.7-33-41.4-55.8zm-14.7-62.8c2 27.4 31 42 45 64.5 3 4.8 6 9.8 10.3 13.6-.7-2.9-3-5.5-4.4-8.3a62.8 62.8 0 01-5.3-32.3c1.3-14 7.1-27 4.9-41.7 12 25.9 8.1 58.2 15 86.1 1.6 6.2 5.3 11.6 7.6 17.5-11.7-9-27.1-17-40-27a85.5 85.5 0 01-29-36.5 84.9 84.9 0 01-4.1-35.9zm.8-50.4c1.4-6.1 2.5-12.4 5.1-18-5 25.8 12.2 44.4 18 66.8 2.2 8.4 3 17.3 6.4 25.2.3.1.6-.2.8-.4-8.5-23.8 4-45.8 16-64.5a55 55 0 006.2-16.5c1.3 10.8-1 23.2-3 34.3-2.5 14.3-7.4 27.7-11.3 41.5a65 65 0 00-.5 27.4l-1.3-1c-9-16.6-26.8-29.6-32.1-47.8a102.6 102.6 0 01-4.3-47zm9.5-27.8a79 79 0 0119-50c.3-.2.6-.5 1-.4-12.6 19-1.1 43.2-2.8 64.9l-1.6 22.2c.2.2.2.9.8.6.8-2.5 1-5.1 1.4-7.7 3-18 18.8-30.4 32.1-43a28.5 28.5 0 007-10.4c-1.1 9-3.6 18.1-7.6 26.2-10.3 20.8-30.1 37.6-33.7 61.3-1.7-22.7-15.6-39.6-15.6-63.7zm33-65.9a46 46 0 0122-14.6c-16.5 11.3-15.6 31.4-20.6 48.2-1.8 6.1-4.5 11.9-6 18.2l.5.4a54 54 0 0113.5-19.9c11.5-10.8 28.8-17.4 34.5-33.3-.3 22.1-19.1 38.9-36.3 51.9a62.6 62.6 0 00-18.2 21.8c.6-6 1-11.2.4-17.1-1.8-19.3-3-41 10.3-55.6zm66.5-37.1c-12.1 10.7-20.2 24.4-29.6 36.7-7.7 10.3-18.4 16.6-27.5 25.2 5-10.2 5.8-22 12.1-31.9 10.7-17 28.5-23.6 45-30z"/>
+    <use width="100%" height="100%" transform="matrix(-1 0 0 1 1202.2 0)" xlink:href="#a"/>
+  </g>
+  <path fill="#fff" d="M409 262l-2.1-1.2a96.9 96.9 0 01-17.9 25.4l-12.5-12.6a78.7 78.7 0 0014.7-21.3l-2.1-1.2a76.5 76.5 0 01-14.4 20.8l-11.4-11.4a60 60 0 0011.6-17.1l-2.1-1.2a58 58 0 01-11.2 16.6l-12.5-12.5a39.8 39.8 0 008-12.6l-2.1-1.2a37.6 37.6 0 01-7.6 12l-11.5-11.4a21.2 21.2 0 005.4-13h16.2a37.3 37.3 0 01-2.5 12.4l2.1 1.2a39.8 39.8 0 002.8-13.6h17.8a57.4 57.4 0 01-5 22.1l2.2 1.2a60 60 0 005.2-23.3h16.2a75.8 75.8 0 01-7.2 31l2.1 1.2a78.3 78.3 0 007.4-32.2h17.9a95.9 95.9 0 01-9.6 40.7l2.1 1.2a98.5 98.5 0 0010-43 98.7 98.7 0 00-7.2-37.1l-2.2 1a96.3 96.3 0 017 34.9h-17.9a78.5 78.5 0 00-5.5-28l-2.2 1a76 76 0 015.4 27H380a60 60 0 00-4-20.6l-2.2 1a57.6 57.6 0 013.8 19.6H360a39.9 39.9 0 00-2.4-12.6l-2.2 1a37.5 37.5 0 012.2 11.6h-16.2a21.2 21.2 0 00-5.4-13l11.5-11.5a37.3 37.3 0 017.9 12.8l2.2-.9a39.7 39.7 0 00-8.4-13.6l12.6-12.6a57.5 57.5 0 0112.2 19.2l2.2-1a59.9 59.9 0 00-12.8-19.9l11.5-11.4a76 76 0 0116.1 25l2.2-1a78.5 78.5 0 00-16.7-25.7l12.6-12.6a96.2 96.2 0 0120.5 31.3l2.2-1a98.7 98.7 0 00-21.8-32.8 98.6 98.6 0 00-33-21.9l-.8 2.3a96.2 96.2 0 0131.3 20.4l-12.6 12.6a78.5 78.5 0 00-25.2-16.4l-1 2.2a76 76 0 0124.5 16l-11.4 11.4a60 60 0 00-19-12.4l-.8 2.2a57.6 57.6 0 0118 11.8l-12.5 12.6a39.8 39.8 0 00-12-7.8l-.9 2.3a37.4 37.4 0 0111.2 7.2L334.2 203a21.2 21.2 0 00-13-5.4v-16.2a37.4 37.4 0 0113.3 2.9l.9-2.2a39.8 39.8 0 00-14.2-3.1v-17.8a57.6 57.6 0 0120.7 4.2l.9-2.2a60 60 0 00-21.6-4.4v-16.2a76.1 76.1 0 0127.5 5.6l.8-2.2a78.5 78.5 0 00-28.3-5.7v-17.9a96.3 96.3 0 0134.9 7l.8-2.3a98.7 98.7 0 00-36.9-7 98.3 98.3 0 00-44.2 10.4l1 2a96 96 0 0142-10v17.8a78.1 78.1 0 00-33.7 8.1l1.1 2a75.9 75.9 0 0132.6-7.8v16.2a59.7 59.7 0 00-25 6l1 2.1a57.5 57.5 0 0124-5.7V179a39.7 39.7 0 00-15.7 3.8l1 2a37.4 37.4 0 0114.7-3.4v16.2a21.3 21.3 0 00-7 1.6l1 2a19 19 0 017.2-1.3 18.9 18.9 0 0113.4 5.5A18.9 18.9 0 01339 219a19 19 0 01-19 19 18.9 18.9 0 01-13.4-5.6A18.9 18.9 0 01301 219a18.9 18.9 0 015.6-13.5 19 19 0 016.2-4.1l-1.1-2.1a21.4 21.4 0 00-6 3.8l-11.4-11.5a37.5 37.5 0 019.9-6.7l-1.1-2a40 40 0 00-10.5 7L280 177.3a57.8 57.8 0 0114.8-10.3l-1-2a60.4 60.4 0 00-15.4 10.7L266.9 164a76.3 76.3 0 0119.3-13.6l-1-2a79 79 0 00-20 14l-12.6-12.7a96.6 96.6 0 0124.3-17.2l-1.1-2.1a99.5 99.5 0 00-44.5 44.8l2 1a96.6 96.6 0 0117.6-24.8l12.7 12.7a79 79 0 00-14.5 20.7l2 1.1a76.3 76.3 0 0114.1-20.2l11.5 11.4a60.3 60.3 0 00-11.3 16.5l2 1.1a57.6 57.6 0 0111-15.9l12.6 12.6a40 40 0 00-7.8 11.8l2.1 1.2a37.4 37.4 0 017.3-11.3l11.5 11.4a21.3 21.3 0 00-5.4 13.1h-16.2a37.5 37.5 0 012.8-13.2l-2-1.2a39.7 39.7 0 00-3.2 14.4h-17.8a57.5 57.5 0 015.2-22.9l-2-1a59.7 59.7 0 00-5.6 23.9h-16.2a76 76 0 017.5-31.7l-2.1-1.1a78.1 78.1 0 00-7.7 32.8h-17.9a96 96 0 019.9-41.3l-2.1-1.1a98.3 98.3 0 00-10.2 43.6 99.2 99.2 0 004 27.9l2.3-.6a96.8 96.8 0 01-3.9-26.1h17.9a78.8 78.8 0 003.3 21.7l2.3-.6a76.4 76.4 0 01-3.3-21.1H260a60.3 60.3 0 002.8 17.2l2.4-.6a57.8 57.8 0 01-2.8-16.6H280a40 40 0 002.3 12.2l2.3-.6a37.6 37.6 0 01-2.2-11.6h16.2a21.2 21.2 0 005.4 13l-11.5 11.5a37.4 37.4 0 01-7.9-12.9l-2.3.6a39.7 39.7 0 008.6 14l-12.7 12.6a57.5 57.5 0 01-13.2-22.2l-2.4.6a59.8 59.8 0 0014 23.3L265.2 272a75.8 75.8 0 01-18.1-30.8l-2.3.6a78.2 78.2 0 0018.7 31.9L251 286.3a96 96 0 01-23.5-40.1l-2.4.6a98.3 98.3 0 0025 42 99 99 0 0027.3 19.4l1.2-2.1a96.4 96.4 0 01-26-18.1l12.6-12.6a78.7 78.7 0 0022.1 15l1.2-2a76.3 76.3 0 01-21.6-14.7l11.4-11.4a60 60 0 0018.2 12l1.2-2.1a57.6 57.6 0 01-17.7-11.6l12.6-12.6a39.7 39.7 0 0014 8.5l1.1-2.1a37.4 37.4 0 01-13.4-8.1l11.5-11.5a21.2 21.2 0 0013 5.4v16.2a37.5 37.5 0 01-11-2l-1.3 2a39.8 39.8 0 0012.3 2.4v17.8a57.5 57.5 0 01-21.1-4.4l-1.2 2a60 60 0 0022.3 4.8v16.2a76 76 0 01-30.3-6.8l-1.2 2a78.4 78.4 0 0031.5 7.2v17.8a96 96 0 01-40.2-9.3l-1.2 2a98.5 98.5 0 0042.6 9.7c15.8 0 31-3.7 44.6-10.6l-1.2-2.2a95.8 95.8 0 01-42.2 10.4v-17.9a78.3 78.3 0 0034-8.3l-1-2.1a75.7 75.7 0 01-33 8v-16a59.8 59.8 0 0025.6-6.4l-1.1-2.1a57.4 57.4 0 01-24.5 6v-17.8a39.7 39.7 0 0016.3-4l-1-2.2a37.3 37.3 0 01-15.3 3.8v-16.2a21.2 21.2 0 0013-5.4l11.5 11.5a37.7 37.7 0 01-9.3 6.3l1.1 2.2a40 40 0 009.9-6.8l12.6 12.5a57.9 57.9 0 01-14.3 10.1l1 2.1a60.2 60.2 0 0015-10.5l11.4 11.4a76.5 76.5 0 01-19 13.5l1.2 2.1a78.7 78.7 0 0019.5-13.9l12.5 12.6a96.9 96.9 0 01-23.9 17.1l1.2 2.2a99 99 0 0025.3-18.4A99 99 0 00409 262z"/>
+  <path fill="#fff" d="M325.7 196h-.6v.7h.6zm-1.5-1h.8v.6h-.8zm-1.4-.2l.6.1.1-.6h-.7zm-.6-.2h-.7v-.7l.8.1zm-5.8-.8h.8v.6h-.8zm-1.7 1.2l.7.1v-.6h-.6zm0 1l-.7-.3v-.6l.9.3zm-1.4.7v-.6l.5-.1.1.6zm-78.6 61.6v-.5h-.5v1h.8v1.3h.6v-1.5zm7.5 9l-1-1-.9-1.1-.4-1-.7-1.8 1.5.8.5 1.4.7.5.7 1.5zm20.7 27.1l-.1-.9-.9-1.2 1.3.2 1.2 1.1.6 1.3-.8.4-.3-.6zm54-91.9h-1l-.3-2.2.6-.4v-1.1h-3.5v-1.1l.4-.3-.8-.3-.6.8-.2.9-1 .2v.5h-.7v1.3l-2.8 2.3-5.6-.2c-.3 1-1.3 0-1.3 0-.3-.7-1.6 0-1.6 0 0 1-2-.6-2-.6l-3.4-2.5c-2-1.8-5 .5-5.1 1 0 1.4-2.3.3-2.3.3s-2-.6-2.3.2c-.3.8-1.6.6-1.6.6l-.2.4-1 .2-.2.6-1.2.2h3c.8-.2-.3 1.7-.8 1.6H280l-.5.6h-1.3l-.6.8-1.9-.1s-1 .9-1 1.2c.1.3-.2 1.2-.5 1.2s-.9 1-.7 1.2c.2.3-.6 1.3-.6 1.3l-.2 1-.6.3v2.7l-1.2.8v1.2l-1.8 2 .2 1.5-1.5 1.7.2 1.6-.9.3-.2.7-.4 2.1 1 .1c.5-.2.4 1.3 0 1.6-.4.2-1.5.6-.9 1s-1.6.3-1.6-.3c0-.7-1.2-1.2-1.5-1-.3.2-.8-.9-.8-.9-1-1-4.4.1-4.4.1l-.5 1.7c-1.1.1-1.8 2-1.8 2-1 .3-1.6 1.4-1.3 1.7.3.3-.5.4-.5.4v2.2l-.5.7v2.5c.7 0 .6 1 .6 1-1 .2-.8 1.5-.8 1.5l-2.1.7-.4.6h-2.6l-.7.6-.7-.7h-5l-.2-.5-1-.2v-1.1h-1.6l-.3.7-1.6.1c.1 1-1.6 2.5-1.8 2.1-.2-.4-1.3-1.5-.8-1.7a13 13 0 011.8-.4v-.7l-3.7-.1-.4.6-1.5.1v1.6l-.7.2c-.5.3.1 1.4.1 1.4.7.7 0 1.9 0 1.9-.7.6.4 1.7.4 1.7.8.2-.5.8-.5.8.2 1 .8 1.3.8 1.3-.6 1 .4 1.5.4 1.5l.1 1.7.7.4v1.2l.4.7h1.6v-2.6c-1.5-1.6 1.1-2 1.2-1.4.1.6 1.2 1 1.2 1 .2 1.5 2 2.4 2.4.8.5-1.5 1-.6 1.2.1.3.8 2.2 2.5 2.2 2.5h1.5l.2 1.4c1.7-.1 2.2 0 2.9 2.4a4.4 4.4 0 002.6 3l1.4-.1c0-1.3 1.4.2 1.4.8 0 .6 2.7 2.9 2.7 2.9l2.7.6 2.5 2 1.9-.2h.8c.5-1.7 2.9.1 3 .7.2.6 1.8 1.7 2 1.2.2-.5 1.3-.2 1.5 1.3.2 1.5 1 1.2 1 1.2l5.6-.1 2-1.7 5.1-.1c2.6-.1 1-3.7.5-3.7-.9-.7.3-3.6.3-3.6l-7.3-6.8c-1.7 0-.2-2.4-.2-2.4 1.3-.8-.3-2.2-.3-2.2.2-1.2-.7-2.6-.7-2.6-1.8-1.2-1.3-3.5-1.3-3.5V245c-1.5-1.4.6-1.6.6-1.6.7-1.2-.5-2.1-.5-2.1V240l-1.7-.2-.2-4.8-3.6-5.1c-.7-.2-.2-1.5-.2-1.5 1-.5-.2-1.7-.2-1.7v-2.2l2-.2.5-.8h1v-2.6c.4-1.4 1.6-.7 1.6-.7l1.4.1.8-1.5.2-1.2h-1c-1.3-.8-.7-3.4-.7-3.4 2-2.9 4.1-1.2 4.1-1.2l1.4-.1c2.1 1.4.2 4 .2 4-.4.6-.2 2.5-.2 2.5l.5 3.3-1.3 1c-1 .7-1 2.1.1 2.4.8.1.5 2-.7.7-1.8 0 1 1.6.2 1.2 1.8 1 1.4-.8 1.4-.8l2.4-1.9c1-.7 2.5 1.5 2.5 1.8 0 .3 4 .1 4 .1 1 .7 1.5 2.6 1.5 2.6 1-1.5 3.4-.1 1.7.7 1.6 1 1.6 1.9 1.6 1.9 1.3-.4 1.3.6 1.3.9l.4-1.5c-1.5-1.1 2-1.5 1 .5l-.6.9 1 .8v2.3c2.3-.2 1.7-2.9 1.7-2.9l1-.2c0-1 .7-.4.7-.4-.7-3.4 1.6-4 1.6-4 1.3-.4 1.4-3.1 1.4-3.1-1-.4-.4-1.8.6-.6 1 1.2-.6-2.4-.6-2.4l-.8-.7-1.1-.1-.1-1.1h-1.8l-.3 1.4-.7.2-.2-.4-.3 1H296l-.1-1.1 1-.3.5-.6.3-1.7h1.3l1.7-.5c0-1.7 1-1.3 1-1.3l.6.5.9.7v.6l-.5.3-.1.8.3 1.2h.7c.3-1.7 2.4-1.7 3-.6l.6-1.5c-1.4-.7 0-1.8.4-1.3s1.3-1.3 1.3-1.3.7 1 0-.3c-.7-1.2.5-1.8.5-1.8-.2-1.2 1.3-1 1.3-1l.1-1.7h-1.4c-.3 1.4-1.5.1-.9-.2.6-.3 1.2-.9 1.2-.9v-1l.6-.2.1-1h1.5l1.3-.6.3-.5 1.4-.1 2-1.8-.2-.8c-1.2 0 0-1 0-1l.2-1.5z"/>
+  <path fill="#fff" d="M276.7 222.6l-1.8-.2.1.7h.5c.8 1.4.1 4.8.1 4.8s-1.2.1-1.4-.5c-.2-.6-.7 1.3-.3 1.7.4.3 1.8 0 2 1 0 1.2.8-.6.8-.6v-7z"/>
+  <path fill="#fff" d="M276.7 231.2l.6-.1.1-.7-1.5 1-1-.6v2.4l1.6 2.1.6-1.4.2-.9-.7-.3zm.8 6.4v-1h-.7v.9zm-.9 4.8v-.7l-.8.1v.7zm1.2-3.1a.4.4 0 000-.9.4.4 0 00-.4.5c0 .2.2.4.4.4z"/>
+  <circle cx="278.5" cy="241" r=".4" fill="#fff"/>
+  <circle cx="278.5" cy="229.4" r=".4" fill="#fff"/>
+  <path fill="#fff" d="M312.4 214.5l-1-.1-.3.5h-.5v.8h.5l.1.6-.4.4-.2.5-.8.2-1.8 1.7v.8l-.6.7-.6 1.6h-2l-.5 1.9.3 1.5 1.8.7.2-1 .6-.3.1-1 .4-.7.6-.7.2-.8 1-.6 1.2-.3.5-.6.2-1.2v-.9l.5-.6 1.2-.5v-2h-.6zm2.8 6.9v-1.5l-.2-1.3-1.5-.7-1 1-.3 1.4v1l-1 .2-.2 2.7-.8.3.1 1-1 .3-1.2.3-.2 1.3-.8.5-.4 1.3-.5 2.9s1 1.7 1.4.9c.5-.8 1.3-1 1.3-1l.3-.6h2.7c.2-1 1.5-.6 1.5-.1s1 0 1 0l.7-1h1.1l.1-1.3.5-.3V227c1.6-.5 1.4-2 1.4-2l.4-.5-.2-.7c-.8-.3-.4-1 .1-.8.5.2-.7-1-.7-1-.6.6-1-.5-1-.5h-1.6zm1.6 12.2c0 1.2-1.6 1.6-1.6 1.6l-1-.3-.7-.5V233l.8-.1.2.6 2.3.1zm5.4-6.5c.2 1 .2-1.4.6-1.3.4.1.1-1.4.1-1.4l-1.8 1.3c.9.1 1 1 1.1 1.4zm5.3-5.2c.4.9.3 2.2 1.8 3.2.5.3-.3 1-.8.7a15 15 0 01-2-2.5V222c.4-.8.8-.5 1-.1zm.3 31l.3.5.7-1-.6-.3-.7.5zM325 251v1.2m14.4-2.6l.8-.5-.3-.6-.8.5zm28.9 21l.9.5v1.7c1.3 1.2 5.2.2 5.2-.1l-.2-3.8-.5-.5-.1-2.5c.4-1.3-2-3.2-2.1-2.8-.2.4-1.5 0-1.5.5 0 .4-.8 2.4-.4 3.1.4.7-.3.7-.4 1.4-.1.7-1.1 2-1 2.6zm-2.2-4c-.2.8-1 1.2-1.3 1-.4-.4.5.4.7.8.2.4.8.4 1 0 .2-.4 0-1.3.3-1.7.2-.4-.6-.5-.7 0zm-4.7-18.6h.7v2h-.7zm10.4-19.4c-.5-.6 2-1.7 2.4-.4.4 1.2 0 1-.4.9-.4-.1-1.4.3-2-.5zm2.1-13.6v.6l1 .2.1-.6zm-4.5 1.6l.8.5h.3l.6-.4v.2l.6-.2-.2-.5v-.3l-.4.1-.7.5-.7-.5zM375 192h-1.5s.5.2-1-1.1c-1.3-1.3-2.2.3-2.2.3l-1.6.2v1.6l-.8.3v1h1.2s0 1.1.3.6c.3-.5 2.8.1 2.6 1.4-.1.5 2.5 1.8 2.2 3.4 1.3.2 1 1.5 1 1.5l1.7.2.5-1 .5.1v-.6l-1.1-.3-.2-3.3-.7-.5.2-.8-.8-.3.4-1.3-.7-1.4zm4.3 10.3h-.8l-1.8.2-1 2s.5.3 1 1c.3.7.5 4.8-.7 5.5-1.2.7.1.3.1.3l-.2 2.3c.3 1 .8.5 1.1 0 .3-.5.6-.6 1-1.1.4-.5 1-1.5 1.1-2.2.1-.7.6-1.8.3-2.1-.3-.3.3-1.7.3-1.7s.4-.8 0-1.6.1-1.8.4-2.2l-.8-.4zm1.2 4.2l.1-.8h.6v.8zm0 2.8l-.5-.3.3-.6.5.3zm-.9-8l-.4-1s0-.8.2-1.2c.2-.4-.4-.8-.7-1-.3 0-.2-.8-.3-1.2 0-.4-.8-.7-.8-.7l-.2-1.9c0-.3-.9-.7-.6-1l.8-.9c.3-.2-.3-1.6.2-1.3.5.3.5.8.7 1.2.2.4 0 1.8.4 2.1.5.3 0 1.4.7 1.4.8 0 .3 1.9.3 1.9s-.2 1.4.3 1.5c.5.1.2 2.5.2 2.5l-.8-.5zm-6.4-16.5c.3.4.9.7.9 1.1 0 .4-.2.7.4.8.6.1 1 0 1.2.4.2.5.2 1.4 0 1.8 0 .4.2 1 .7 1s.6 0 .6.4c0 .3.6-1.1.6-1.1-.5-.4-1-1.3-1-1.3l-.4-1.7c0-.2-.7-.4-1-.5-.3 0-.8-1-.8-1l-1.2.1zm1-.9c-.3-.4-.6-.7-1-.9-.4-.2-.7-.4-1.1-.4a.7.7 0 01-.6-1c.2-.4-.3-.6-.3-1s.3-.4.8-.1c.5.3.4.4.8.9s.6 1 1 .9c.4-.1.7.9 1 .6.5-.3.4.7.4.7l-1 .3zm-11.7 11.4c.5.6-3 .4-3 0s.3-1.8 1.2-1.5c.9.3 1-1.8 1-1.8s-.8.1-.1-.3c.7-.4 0-1-.3-1.3l-.6-.8h1.4c.6-.4.8-2.3.8-2.3 1.2.4 1.8-.5 1.8-.5l.6 1.2c.4.5-1 .7-.5 1 .5.3.7 1.2.5 1.5-.2.3-1.3 0-1.3-.3s-.4.5 0 1-.5 1.2-.7 1.2c-.2 0-1.5.2-.4.8 1 .6 2.3.3 2.3.3s.9 0 1.2.4c.3.5-.1.6-.6.6l-3-.2s-.6.7-.3 1zm-6.4 1c.5-.1 1.7-.2 2 0 .1.4-.8.8-.8.8l-1.2.2c-.4-.5-.5-1 0-1zm12.9-8.5c.8-.4 2.5-.4 2.4-1-.1-.7 1-.9 1-.9l.3 1.2.9.7v1l-.7.2c-1.1.3-.4.8-.4.8H370l-.3-1-.8-1zm-4-5.5c.7 0-.1 2.3 1.5 2.1 1.6-.2 0 .7 1.3.8 1.2.1.9-.9 1.3-1.6.4-.7.2-1.1-.5-1.3-.7-.2-.7-.2-1-1-.1-.8-1-1-1-1l-.2-1.2-1.3.8-1.3 1.7c0 1.3.7.7 1.3.7zm2.7 8.5l.3-.6.6.3-.3.6zm-1-1h.6v.8h-.6zm.5-13.4v.9h-.5l-.1-.8zm-1.7 9.4h.6v.5h-.6zm-1.6 0v-.6h1v.5zm-8.2 9.8l-.6-.3.3-.7.6.3zm-3.2-1.9v-.6h1v.5zm-17.3-.2l-2.2.1v.6h2.3zm-3.6.9l-.2-.9.6-.1.2.9zm-.4.6l-.2-.5.3-.1.2.5zm5-1.7l-.1.7 1 .1s.5.4.5.7c0 .3.7.6 1.1.6.4 0 1.5-.8 1.5-.8s.5-1.4.1-1.3c-.4.1-1.2.7-1.3.1 0-.6-1.3-.3-1.3-.3l-1.6.2zm5-1c0 .2-.3.6.3.7.6.1 1.7-.4 1.8.2.1.6.1 1 1 1.3a5 5 0 001.8.4l2-.2s1.3.3 1.6.5c1.1 1.2 1.8 1.5 2.1 1 .3-.5 0-1.7-.2-2 0-.5-1.5-2.4-2-2-.5.4-.6 0-1.5.3s-2.8.1-2.9-.3c0-.4-1.5-.6-1.5-1s-1-1-.9-.3c.1.6-.7.9-.9.7-.2-.2-.8.6-.8.6zm22.9-13l.7-2.3c-1-.2-.8-1.3-.8-1.3-.1-1-1.5-2-2-1.6-.5.3-.3-2.1-.3-2.1s.9-.6 1.3-.3-3.4-5.1-4.2-4.6c-.8.5-2.6-.5-2.5-1.4.1-1-3.6-4-3.6-4s-1.2-.8-1.4-.2c-.2.6-.6 1 0 1.4.6.3.5-.5 1.2.2s2 1.6 1.5 2.2c-.5.6-1 .8-1 .8l.6.8h1.1l.2 1.7s1.2.6 1.5 1.3c.3.7.3 1.1 0 1.6-.3.4-.9 1-.8 1.8.1.7 1 1 1 1h.7l.6.4v1.3c.8-.2 2.1 1 2 1.6 0 .7.2.3 1.2 1s.7.8 1.4 1.4c.7.5 1.3.2 1.6-.8z"/>
+  <path fill="#fff" d="M347.5 165.6c0-.4-.3-1.8.3-1.7.6 0 .2 0 1 .3s.7-.5.7-.5h1.1l1.4 1-.2 1h-1c-.5-.7-1.5-.4-1.3.3.2.7-.5 2-.9 2.1-.4.1-1.7.1-1.6-.5l.5-2zm-.8-2.7v-.9s0-.8-.6-.8-1.4-.6-1.2-1c.2-.4-1.7-.8-1.7-.8s-1.7-1.6-1-1.4c.5.2.2-.7.2-.7s-1.2.2-1.5 0c-.3 0-.2-1-.2-1s-1.2-.2-1.2 0 .4.4.6 1c.2.6.1 1.6 1 1.8 1 .2 1.1.4 1.2.8.1.4 1.2.5 1.2.5l.8.4 2.4 2zM336 152.5l-.3-.8-.8-.2v1zm-.3-4.2c-1-.8 1.4.6 1.4.6.8 0 1.3.6 1.3.9 0 .3 1 .2 1 .2l.1-.7-.8-1-.7-.5s-1-.1-1-.4c0-.3-1 1.2-1.4.9zm18.3.6c-.3.9-.4 2.1-.9 2.1s-.3 1.3-.3 1.3l1.7.1c.4.1.4 1.1.4 1.1 1.5 0 2.1 2 2 2.5-.3.5.5.5.5.5s0 1.6-.2 2c-.2.4 1.3.7 1.7 1.3.4.6-.2 2.6-.5 2.7-.3.2.8.5.7 1-.1.5.3 0 .4.8l.3 2.5 1.4.1c.2-1.3 2.8-1.4 3.2-1.2 1.7.6 3 3.2 3 3.8 0 .6-1.1.7-1.1.7l.2 3c1.7.5 3 3 2.9 3.3-.2.4 1.2.3 1.2.3.2-1.8 1.9-1.2 2-.6 0 .6.4 2 .4 2l.5.8.7.7h1l.4.6 1.2.2s1.1 1.2 1.2 1.5c.1.3 1.6.2 2 .3.4 0 1 .4 1.1.9.1.5.7 1.3.7 1.3s1.2.3 1.3.7l.6 1.3 1 .8.1 1h1.1l.3 1.3 1.8-.1 1-.7a6 6 0 002.3-2c.1-.5.3-2 1.3-1.7 1 .3.3-2.2.3-2.2s-1.4-1-1.3-1.5c.1-.5-1.4-1.5-1.3-2 .1-.3-1.3-1.2-1.2-1.6.1-.4-.7-1.5-.7-1.5L387 175l-.2-1h-1.2l-2.4-3 .1-.8h-.7V169l-.7-.4h-1l-2.3-2.5-.2-1.1h-1l.2-2.1c.7-1 .3-2.7.3-2.7s-1.4.7-2.1.4c-.7-.3.3-1 .3-1v-.8l-.6-.6s-1.7.2-1.8-.1l-.4-1.6-.1-1.7-.7-.3-.1-.7-1.1.1v-1.2l-.6-.2-.6-.3-.1-1.2-2.2-.1-.7-1-.8-1.2-2.5-.2-.6-.6-1-.2-.7-.3-.3.5h-2v.7c-1 .5-5 0-5 .4zm10.5-2.7c-.2-.7 2-1.5 2.5-.9s1.9.7 2 3.8c.1 1-1.7-1.1-1.7-1.1l-1.5-.5c-.8-.2-1.2-.7-1.3-1.2zm-29.3 1.3l-.5-.3.4-.9.5.3zm-5.1-10l-1.3-1.3v-1l-.4-.5-.4-1.4-1.3-.4-1.3.5-1.4.9-1.5.2-.8 1 3.2.2.6 1 2.3.2 1.5 1.5c1.3.5 1.6-.2.8-.9zm-.2-5c-.2-.8-1.5 1.2-.2 1.6 1.3.4 2.6 0 2.6 0l.3-.6 5 .1c.4-.4.6-1 .6-1s1.2-.4 1.7-.2 0-1.4-.4-1.2c-.5.2-1.5 0-1.5 0h-1.8c-.1-.6-1.7-.3-1.8 0-.1.5-.7.6-.7.6l-2.3.2c-.2.6-1.4 1-1.5.6zm-9.9 17.2c1.5.5 2.1 0 2.2-.3.1-.4.2-.5.8-.6.6-.1-.1-1.3-.7-1.2-.6 0-1.2-.2-1.3-.7-.1-.6-1.1-1.9-1.2-.9-.1 1-.7 1-.6 1.8.1.7.4 1.7.8 1.9zm-11.5 1.1c0-.4 2-.4 2.3-.1.3.3.1.8 1 .8s.5.6.4 1c0 .2-1 .1-1.2-.2 0-.3-1.6-.4-1.6-.4s-.8-.6-.9-1.1zm34-21.7l-.8.6-.5-.5-.5.5.7.7.2.2.2-.2 1-.8zm-5.5-1.8l-.7-.4-.3.5.8.5h.3l1.1-.7-.3-.5zm-3.3 20.8h-.1l-1-.1v.6h.8l.6 1 .5-.3-.7-1zm-33 28.2l.1 1.1h1.5c.6 0-.5-.7-.5-.7s-1.2.1-1-.4zm2 0l.3-.4.6.5-.4.4zm-18.2-18.9l.4-.4.6.6-.4.4zm29 130.3l-1-.5-.3.5.6.3-.2.2.4.5.5-.5.3-.3zm-7.8-7.3l-.4-.5-.6.5-.3.3.4.2.7.5.3-.5-.4-.3zm74.2-19.2c-.1-.5-.7-.7-.8-.8l-.2.6.2.1.1.5-.1.2.4.4c.4-.3.5-.7.4-1zm1-2h-1v-.9l1 .2zm23-7.8c.5-.3 1-.8 1 .4-.1 1.1-.6.7-1 1.1-.3.4-.6-1.1 0-1.5zm5.1-4.3a.8.8 0 010-.1 1.6 1.6 0 00-.2-.7l-.5.3.1.4c0 .2 0 .4.2.5.1.1.2.1.4 0l-.1-.5.1.1zm-1.3.5l.4 1.2.5-.2a11.9 11.9 0 01-.3-1.2l-.6.2zm-2.2 2.4h-.6c0 .4 0 1 .5 1l.2-.5-.1-.5zm-2.6-12a.6.6 0 00-.4-.5c-.4-.2-1.1.1-1.5.4l.3.5c.4-.3.9-.4 1-.4l.6-.1zm-27.7-32.4c-.4.4-1.3.6-1.3.6l-.3 1-.4.5v1c0 .7-1 1.1-1 1.1l-.4.5h-2.7c-1-.4-.3-1.6.3-1.5.6.1-.1-1.7-.1-1.7l.8-.1s0-1.8.4-1.8c.3 0-.1-.6-.5-1-.4-.3-1-1.3-1.3-1.2h-2l-.3.6-1.1.2-.1 1c-.6.8-3 2.3-2-.2l.4-.7v-.9h-1.8s-1-.4-1-.8v-.9l-2.1-2.3-2.5-.3-.2-.5-1.5-.2c-1.8-1-3.4-.1-3 1.4.2 1.5.7 2.1-.3 2.1s-1.2-.8-1.2-.8-.8-.3-.8.1-.3 1.2 0 1.6c.3.4-.4 1-.7.7-.3-.3-1-1.2-.9-1.5.2-.3-1.4-2.2.2-2.5 1.6-.3 0-1.2.5-1.4l.8-.4h.8l.5-.4-1.3-.2-.8-.1-1.5-.1a4.2 4.2 0 00-1.8 2.2c-.8 1.5-2.7-.6-2-1.4.7-.8-2.2-.1-2.7.3s-2 .2-2 .2c-.3.9-1.7-.1-1.3-.7.4-.6.4-1 .4-1l-.5-.2-.6 1.2c-1.3 0-1.7.8-1.5 1.3.3.5-.4-.1-.6.6-.1.7.2.7.7 1 .6.3-.3.3.1.8s1.6 0 1 .7c-.8.7-2.1.4-2.1.4-.1 1-2 .7-2.2.4l-1.7-2.1-2-.1c-.1-1.4 1-.7 1.4-1.8.4-1.1.6-3 .6-3s-1.6 0-1.7.4c-.1.5-1.1.9-1.1.9s-.8.3-.5.7c.3.4-.6.6-.6.6s.1.6-.1.9c-.8.8-2.8 0-3.1-.2l-1.2-.5-1.2-.8-1.4.6-.4.4h-1.5l-.1 1.2 2.7.3.2 2.5-1.1-.4h-.7l-.3-.6h-.6v2.1l.6.5.5.5 1 .1.2 1.3h2.5l.3.6h1.5l2.9 3-.2 1-.5.2c.2.7-1.3.3-1.3.3v.6l.7.1.7.4 1-1.7c1-.7 1.6.3 1.7 1 0 .5-.5.4-.5.4v1.5l.6.2c1 1.2-.4 1.9-.4 1.9l-.3 1c-.3.9-1.4.7-1.4.7l-.4.6-1.2.3 2.4.3c.2-.8.8-1 1-.6.4.4.4 1.1.4 1.1l.6.1-.1 1.1.6.2v3.3l.7.8c1.2-.5 1.2.3.6.7-.6.4-.2 2.2-.2 2.2l-.5.5v.8l-.6.4v1.2c-1-.5-2.2-.3-2.5 0-1-.6-2.8-.4-2.8 0 .6.9-.7 1-.7 1l-.7.9c.5 1-.5 1.1-.5 1.1v2l-1.2 1v2.7c0 .7 1.6.8 1.9.4.3-.4 1.5.8 1.5.8h.9l.2-1.8-.6-.3v-3l1-1c1.2-.5.8 2.5.8 2.8 0 1.2.6 1 1 .8 1-.4.3 1.2-.5 1-.8 0-.3 1-.3 1l.5.3-1 .7-.7.9-1-.3-1.2-.1-.4-.7-.7-.1-.1 1.4-.5.6-1.2 1.2c1.6 0-.2 1.1-.6 1.1.9.3-.1 1.2-2.4.5v.7l-.8.1.7.9h.8l-.3 1.8c0 1.3-3.3.4-3.6 0v2h-.7l.1 1.2v1.7l1-.2v.7l2.7.1 3.9-4.1 2.3-.5c.2-1 1.2.2 1.2.2 1-.1 1.2.6 1.2.6l1.3.2c1 .3.4.4.5.8 0 .6.6.4.6.4l.2-1.3.6.1-.6-.7-1.1-.5-1.2-.5c-.8-1.1.2-1 1-.8h1.3s1.5 2 1.5 2.5.7.6.7.6h.9l.3.6h.9l.3.6h1.8v-.9l-1.6-.3-.1-1-1.2-.3c-.4-1.7.3-2.2.8-1.4h.6l-.2-1.4.7-.2-.2-2.2-.6-.2v-.7l2.5.1c-.2-1.3 0-1.9 0-1.9h.8v.5l3.1.3 2.2-2.5c-.1-.2.2-.3 0-.5-.4-.3-.8 0-1.3-.3s0-2 0-2.5c-.2-.4 1.6-1 1.3 0-.3.8 0 1.3 0 1.3 1.3-1.3 2.4 0 2.3.4 0 .3.7.6 1.2.3s1.1.9 1 1.5c-.3.6-2 .5-2.2-.1 0-.6-.4-.4-.6-.1-.2.3-1 .5-1.6.2a.5.5 0 01-.1-.2l-2.2 2.5h.1c1.2.7.6 1.6.2 1.8-.4.2-1 .2-1 .2l-.3.4-2.6.2-.2 1c-1.2-.1-1.7 1.3-1.4 2 .3.7 0 1.3 0 1.3l1 .5 1.5-.4c.2-1 1-1.2 1.8-1.8.8-.6 2.1 1 1.7 1.9-.4.8-.4 1.1-.4 1.1l.1 1-1 .3-.8.4v.5h-2.8l-.4.5-1.3.1-.4.7h-1s-1.4.8-.8 1.6c.6.8-2.5.7-3.2-.4-.2 1-1.3 0-1.3 0l-1.1-.2-.1-1.5c-.2-1-2.1-1-2-.3 0 .7-3.6.3-3.6.3l-1.2.5-1.1.7-.1.5-1.8.2-.8.4-.3-.6h-.8l-.8 1c-2 .2-4 1.4-3.9 2 .2.4-.8 1-.8 1l-.9.2-.6 1-1.2.3-.2 2.2-.6.4v.9l-.7.2v.5h-1l.6 1.6.8.4c1.4.2.8 2 .8 2h.8l.4 1.1.8 1.7c.3 1.2 1.2.9 1.6.8.4-.1.8 1.2.8 1.2l4 .1s-.2.4.5.6c.7.2 5.3.4 5.5.1-.2-.9 2.5-1.1 3.6-.3 1 .8 2.6.3 2.6.3l1.5 1.8 1 2.3 1.7.5 1.2.3.4 1.7h.9l.3 1.2c1 .8-.3 2.5-.3 2.5v2.3l.8.4-.1.8 1.3 1.3h1.5l3.7 4.1 3 1 .5 1.6.8-.1.6-.5 2.4-.1 1.2-1.2 1.3-.2 11-9.4-1-.6v-2.2c1.9-1.3 2-3.7.3-3.9-1.3-.1-.7-1.5.5-1.7l.7-.3v-.9l2.3-2.1v-1.6l-5-4.2c-2.2-.8 0-5.7 1.5-5.6 1.5.1-.1-7.4-.1-7.4l-.8-.4.2-2.5h-1.1l-1.8 2.4-.5 1.6c-.2 2.1-6.4 1.7-6.7 1.4-.3-.3-2.4-1.2-2.4-1.2s-1.6-1.3-1.9-1c-.3.5-1.7-.4-1.7-.1 0 .3-1.3-.8-1.3-.8l-2-.7 1.5-.3-.3-1.2 2.6 1.3c.3.4 1.6.3 1.6.3l.4.5s.8 0 1.3.5c.5.7 3.1.2 3.1.2l.7.6 1.1.4h3.1l.1-1.9.6-.6v-1.2l.6-.6v-1l.6-.2.1-2.2.5-.1v-4.9l-1.5-1.4c-.1.5-1.7.5-1.7.5s-.4.7-.7.7c-.3 0 .4 1 .2 1.5-.2.6-1 .6-1 .6l-1.5.4-.4.5h-1.6l-.2-1.3 1.8-.5 1-.5.5-1c.1-1 1.3-.9 1.3-.9s2.3-2 2.4-2.8c.1-1 .9-3.5 2.3-3.5h2.6c1-.4.7-1.7.7-1.7l1.3-.2.2.7s1.8.2 2 0c.2-.4.6-1 1-.8.6.3 2.2-.7 2.2-.7 0-.7 2.6-.4 2.6-.4l.3-1s-1.7-2.3-2-2.3c-.3 0-2-1.4-2.1-.9-1.6-.4-1.5-2.6-1.5-2.6l-.6-1.4c0-.8-1.5-2.5-1.8-2.3a1.5 1.5 0 010-2.6c.4 0 1.4-1.5 1.4-1.5l.5-1.4 1.7-.5.2-1.3-1-.1s1-1.9 1.6-1.9 3.8 0 4-.2c.4-.2 1-1.8 1-2 0-.4.8-.5 1-.6.4 0 1-.9 1.3-1.3.2-.4-.5-3-1-2.5z"/>
+  <path fill="#fff" d="M320 242c.1 0 .3.5.6.4.3 0 .5.6.1.6-.2 0-.2.3-.2.5 0 .1 0 .5-.3.8-.2.2-.4 0-.7-.1-.3-.2-.5-.2-.9-.2-.3 0 0 .6 0 .6s-1.6 0-1.3-.3c.3-.2.6-.3.4-.4-.2-.2 0-.3 0-.6s.7-.2.5-.4c-.2-.2 0-1.1.4-.6l.2-.5c-.2-.3 0-.3-.5-.5s-.1-1-.1-1v-.7c.2-.7 1.7-.8 1.8-.1v1.1l.5.2s-.1.4-.5.4 0 .2-.2.5l.2.4zm-5 .8c.3-.4.8-2.4 1.4-1.8.6.6 1 0 1 0s.3.3.1 1c-.1.5-.3 1.1-.6 1.2-.4 0-.7.3-1.2.4-.4 0-.6-.8-.6-.8z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/us.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/us.svg
new file mode 100644
index 0000000..5b55267
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/us.svg
@@ -0,0 +1,10 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-us" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <g stroke-width="1pt">
+      <path fill="#bd3d44" d="M0 0h972.8v39.4H0zm0 78.8h972.8v39.4H0zm0 78.7h972.8V197H0zm0 78.8h972.8v39.4H0zm0 78.8h972.8v39.4H0zm0 78.7h972.8v39.4H0zm0 78.8h972.8V512H0z" transform="scale(.9375)"/>
+      <path fill="#fff" d="M0 39.4h972.8v39.4H0zm0 78.8h972.8v39.3H0zm0 78.7h972.8v39.4H0zm0 78.8h972.8v39.4H0zm0 78.8h972.8v39.4H0zm0 78.7h972.8v39.4H0z" transform="scale(.9375)"/>
+    </g>
+    <path fill="#192f5d" d="M0 0h389.1v275.7H0z" transform="scale(.9375)"/>
+    <path fill="#fff" d="M32.4 11.8L36 22.7h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7H29zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7h11.4zm64.8 0l3.6 10.9H177l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7h11.5zm64.9 0l3.5 10.9H242l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.4zm64.8 0l3.6 10.9h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.2-6.7h11.4zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.5zM64.9 39.4l3.5 10.9h11.5L70.6 57 74 67.9l-9-6.7-9.3 6.7L59 57l-9-6.7h11.4zm64.8 0l3.6 10.9h11.4l-9.3 6.7 3.6 10.9-9.3-6.7-9.3 6.7L124 57l-9.3-6.7h11.5zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 10.9-9.2-6.7-9.3 6.7 3.5-10.9-9.2-6.7H191zm64.8 0l3.6 10.9h11.4l-9.3 6.7 3.6 10.9-9.3-6.7-9.2 6.7 3.5-10.9-9.3-6.7H256zm64.9 0l3.5 10.9h11.5L330 57l3.5 10.9-9.2-6.7-9.3 6.7 3.5-10.9-9.2-6.7h11.4zM32.4 66.9L36 78h11.4l-9.2 6.7 3.5 10.9-9.3-6.8-9.2 6.8 3.5-11-9.3-6.7H29zm64.9 0l3.5 11h11.5l-9.3 6.7 3.5 10.9-9.2-6.8-9.3 6.8 3.5-11-9.2-6.7h11.4zm64.8 0l3.6 11H177l-9.2 6.7 3.5 10.9-9.3-6.8-9.2 6.8 3.5-11-9.3-6.7h11.5zm64.9 0l3.5 11H242l-9.3 6.7 3.6 10.9-9.3-6.8-9.3 6.8 3.6-11-9.3-6.7h11.4zm64.8 0l3.6 11h11.4l-9.2 6.7 3.5 10.9-9.3-6.8-9.2 6.8 3.5-11-9.2-6.7h11.4zm64.9 0l3.5 11h11.5l-9.3 6.7 3.6 10.9-9.3-6.8-9.3 6.8 3.6-11-9.3-6.7h11.5zM64.9 94.5l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7h11.4zm64.8 0l3.6 10.9h11.4l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.5zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7H191zm64.8 0l3.6 10.9h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7H256zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7h11.4zM32.4 122.1L36 133h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7H29zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 10.9-9.2-6.7-9.3 6.7 3.5-10.9-9.2-6.7h11.4zm64.8 0l3.6 10.9H177l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7h11.5zm64.9 0l3.5 10.9H242l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.4zm64.8 0l3.6 10.9h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.2-6.7h11.4zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.5zM64.9 149.7l3.5 10.9h11.5l-9.3 6.7 3.5 10.9-9.2-6.8-9.3 6.8 3.5-11-9.2-6.7h11.4zm64.8 0l3.6 10.9h11.4l-9.3 6.7 3.6 10.9-9.3-6.8-9.3 6.8 3.6-11-9.3-6.7h11.5zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 10.9-9.2-6.8-9.3 6.8 3.5-11-9.2-6.7H191zm64.8 0l3.6 10.9h11.4l-9.2 6.7 3.5 10.9-9.3-6.8-9.2 6.8 3.5-11-9.3-6.7H256zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 10.9-9.2-6.8-9.3 6.8 3.5-11-9.2-6.7h11.4zM32.4 177.2l3.6 11h11.4l-9.2 6.7 3.5 10.8-9.3-6.7-9.2 6.7 3.5-10.9-9.3-6.7H29zm64.9 0l3.5 11h11.5l-9.3 6.7 3.6 10.8-9.3-6.7-9.3 6.7 3.6-10.9-9.3-6.7h11.4zm64.8 0l3.6 11H177l-9.2 6.7 3.5 10.8-9.3-6.7-9.2 6.7 3.5-10.9-9.3-6.7h11.5zm64.9 0l3.5 11H242l-9.3 6.7 3.6 10.8-9.3-6.7-9.3 6.7 3.6-10.9-9.3-6.7h11.4zm64.8 0l3.6 11h11.4l-9.2 6.7 3.5 10.8-9.3-6.7-9.2 6.7 3.5-10.9-9.2-6.7h11.4zm64.9 0l3.5 11h11.5l-9.3 6.7 3.6 10.8-9.3-6.7-9.3 6.7 3.6-10.9-9.3-6.7h11.5zM64.9 204.8l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7h11.4zm64.8 0l3.6 10.9h11.4l-9.3 6.7 3.6 11-9.3-6.8-9.3 6.7 3.6-10.9-9.3-6.7h11.5zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7H191zm64.8 0l3.6 10.9h11.4l-9.2 6.7 3.5 11-9.3-6.8-9.2 6.7 3.5-10.9-9.3-6.7H256zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.5 11-9.2-6.8-9.3 6.7 3.5-10.9-9.2-6.7h11.4zM32.4 232.4l3.6 10.9h11.4l-9.2 6.7 3.5 10.9-9.3-6.7-9.2 6.7 3.5-11-9.3-6.7H29zm64.9 0l3.5 10.9h11.5L103 250l3.6 10.9-9.3-6.7-9.3 6.7 3.6-11-9.3-6.7h11.4zm64.8 0l3.6 10.9H177l-9 6.7 3.5 10.9-9.3-6.7-9.2 6.7 3.5-11-9.3-6.7h11.5zm64.9 0l3.5 10.9H242l-9.3 6.7 3.6 10.9-9.3-6.7-9.3 6.7 3.6-11-9.3-6.7h11.4zm64.8 0l3.6 10.9h11.4l-9.2 6.7 3.5 10.9-9.3-6.7-9.2 6.7 3.5-11-9.2-6.7h11.4zm64.9 0l3.5 10.9h11.5l-9.3 6.7 3.6 10.9-9.3-6.7-9.3 6.7 3.6-11-9.3-6.7h11.5z" transform="scale(.9375)"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/uy.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/uy.svg
new file mode 100644
index 0000000..bad58e5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/uy.svg
@@ -0,0 +1,28 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-uy" viewBox="0 0 640 480">
+  <path fill="#fff" d="M0 0h640v480H0z"/>
+  <path fill="#0038a8" d="M266 53.3h374v53.4H266zm0 106.7h374v53.3H266zM0 266.7h640V320H0zm0 106.6h640v53.4H0z"/>
+  <g fill="#fcd116" stroke="#000" stroke-miterlimit="20" stroke-width=".6" transform="translate(133.3 133.3) scale(2.93333)">
+    <g id="c">
+      <g id="b">
+        <g id="a">
+          <path stroke-linecap="square" d="M1.5 9L6 12c-8 13 1 15-6 21 3-7-3-5-3-17" transform="rotate(22.5)"/>
+          <path fill="none" d="M0 11c-2 13 4.5 17 0 22" transform="rotate(22.5)"/>
+          <path d="M0 0h6L0 33-6 0h6v33"/>
+        </g>
+        <use width="100%" height="100%" transform="rotate(45)" xlink:href="#a"/>
+      </g>
+      <use width="100%" height="100%" transform="rotate(90)" xlink:href="#b"/>
+    </g>
+    <use width="100%" height="100%" transform="scale(-1)" xlink:href="#c"/>
+    <circle r="11"/>
+  </g>
+  <g transform="translate(133.3 133.3) scale(.29333)">
+    <g id="d">
+      <path d="M81-44c-7 8-11-6-36-6S16-35 12-38s21-21 29-22 31 7 40 16m-29 9c7 6 1 19-6 19S26-28 32-36"/>
+      <path d="M19-26c1-12 11-14 27-14s23 12 29 15c-7 0-13-10-29-10s-16 0-27 10m3 2c4-6 9 6 20 6s17-3 24-8-10 12-21 12-26-6-23-10"/>
+      <path d="M56-17c13-7 5-17 0-19 2 2 10 12 0 19M0 43c6 0 8-2 16-2s27 11 38 7c-23 9-14 3-54 3h-5m63 6c-4-7-3-5-11-16 8 6 10 9 11 16M0 67c25 0 21-5 54-19-24 3-29 11-54 11h-5m5-29c7 0 9-5 17-5s19 3 24 7c1 1-3-8-11-9S25 9 16 7c0 4 3 3 4 9 0 5-9 5-11 0 2 8-4 8-9 8"/>
+    </g>
+    <use width="100%" height="100%" transform="scale(-1 1)" xlink:href="#d"/>
+    <path d="M0 76c-5 0-18 3 0 3s5-3 0-3"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/uz.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/uz.svg
new file mode 100644
index 0000000..3ede7f1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/uz.svg
@@ -0,0 +1,30 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-uz" viewBox="0 0 640 480">
+  <path fill="#1eb53a" d="M0 320h640v160H0z"/>
+  <path fill="#0099b5" d="M0 0h640v160H0z"/>
+  <path fill="#ce1126" d="M0 153.6h640v172.8H0z"/>
+  <path fill="#fff" d="M0 163.2h640v153.6H0z"/>
+  <circle cx="134.4" cy="76.8" r="57.6" fill="#fff"/>
+  <circle cx="153.6" cy="76.8" r="57.6" fill="#0099b5"/>
+  <g fill="#fff" transform="matrix(1.92 0 0 1.92 261.1 122.9)">
+    <g id="e">
+      <g id="d">
+        <g id="c">
+          <g id="b">
+            <path id="a" d="M0-6L-1.9-.3 1 .7"/>
+            <use width="100%" height="100%" transform="scale(-1 1)" xlink:href="#a"/>
+          </g>
+          <use width="100%" height="100%" transform="rotate(72)" xlink:href="#b"/>
+        </g>
+        <use width="100%" height="100%" transform="rotate(-72)" xlink:href="#b"/>
+        <use width="100%" height="100%" transform="rotate(144)" xlink:href="#c"/>
+      </g>
+      <use width="100%" height="100%" y="-24" xlink:href="#d"/>
+      <use width="100%" height="100%" y="-48" xlink:href="#d"/>
+    </g>
+    <use width="100%" height="100%" x="24" xlink:href="#e"/>
+    <use width="100%" height="100%" x="48" xlink:href="#e"/>
+    <use width="100%" height="100%" x="-48" xlink:href="#d"/>
+    <use width="100%" height="100%" x="-24" xlink:href="#d"/>
+    <use width="100%" height="100%" x="-24" y="-24" xlink:href="#d"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/va.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/va.svg
new file mode 100644
index 0000000..258cca9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/va.svg
@@ -0,0 +1,479 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-va" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="#fff" d="M320 0h320v480H320z"/>
+    <path fill="#fff" stroke="#000" stroke-width="1.2" d="M282.4-735.1c0 .6 56 222.8 118.2 300.5 69.4 87.3 113.2 87.4 113.2 87.4l70.9-17.8s-41.6 2.1-123.9-104.2c-83.4-107.7-109.4-286-108.1-282.8l-70.3 16.9z" transform="matrix(-.24 0 0 .1991 534 334.4)"/>
+    <path fill="#fff" stroke="#000" stroke-width="1.2" d="M285-727.6c-1.5-9.4 33.9 221 140.2 327.2 53.1 53.1 88.6 53.1 88.6 53.1l88.6-17.7s-51.7 3.8-134-102.5c-83.5-107.8-108.6-263.3-108-263.9l-75.4 3.8z" transform="matrix(.24 0 0 .1991 381.9 336.2)"/>
+    <path fill="#fff" stroke="#000" stroke-width="1.2" d="M282.4-735.1c0 .6 56 222.8 118.2 300.5 69.4 87.3 113.2 87.4 113.2 87.4l70.9-17.8s-41.6 2.1-123.9-104.2c-83.4-107.7-109.4-286-108.1-282.8l-70.3 16.9z" transform="matrix(.24 0 0 .1991 381.9 336.2)"/>
+    <path fill="#fff" stroke="#000" stroke-width="1.2" d="M285-727.6c-1.5-9.4 33.9 221 140.2 327.2 53.1 53.1 88.6 53.1 88.6 53.1l88.6-17.7s-51.7 3.8-134-102.5c-83.5-107.8-108.6-263.3-108-263.9l-75.4 3.8z" transform="matrix(-.24 0 0 .1991 534 334.4)"/>
+    <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M344.5-596.3l9.2 22.1s1.5-9.7 8.5-11.5l7-1.7s27 49.3 32.3 58.1c5.3 8.8-3.6 16.8-1.8 16.8s26.5-11.5 26.5-11.5-10.6.9-15-6.2-34.8-60-34.8-60 6.1-2.6 11.4-5.2c5.3-2.7 10.6 8 10.6 8L385.2-614s0 8.9-4.4 10.6c-4.4 1.8-8 3.6-8 3.6s-3.5-6.2-8-13.3c-4.4-7 4.5-14.1 4.5-14.1l-23 11.5s8 4.4 10.6 8.8l5.3 8.8s-3.2 1.8-8.2 3.5c-3.6 1.9-7.7 0-9.5-1.7z" transform="matrix(.23995 .00428 -.00516 .19905 380 342.3)"/>
+    <g fill="#b00" stroke="#000" stroke-width="12.8">
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01763 .00275 .01016 -.01162 411 329.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0173 .00313 .01036 -.0116 409.4 331)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01763 .00275 .01016 -.01162 407.3 332.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01789 -.0011 .00628 -.01341 429.5 312.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0177 -.00038 .0068 -.01331 428.4 313.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01791 -.00081 .0066 -.0133 426.8 315.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01769 .00056 .0078 -.01292 425.8 316.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01765 -.00269 .00455 -.0139 433.9 305.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0175 -.00223 .00475 -.01392 433 307.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01765 -.00269 .00455 -.0139 431.7 309.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01754 -.00195 .00507 -.01384 430.5 311.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01784 .00155 .009 -.01227 418 324)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01754 .00195 .0092 -.01225 416.4 325.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01784 .00155 .009 -.01227 414.5 327.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0173 .00313 .01036 -.0116 413.1 328)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01794 .00014 .00759 -.01293 424 318.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01769 .00056 .0078 -.01292 422.7 319.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01784 .00155 .009 -.01227 421.4 320.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01754 .00195 .0092 -.01225 419.9 322.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01668 -.00552 .00122 -.01437 443.6 284.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01707 -.00392 .00278 -.01429 443.6 284.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01715 -.00439 .00258 -.01424 442.7 287)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01707 -.00392 .00278 -.01429 442 288.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01664 -.00505 .0014 -.01443 445.7 277.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01668 -.00552 .00122 -.01437 445 280)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01664 -.00505 .0014 -.01443 444.4 282)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01752 -.00323 .00393 -.01402 438 298.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01738 -.00277 .00413 -.01406 437.1 300)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01752 -.00323 .00393 -.01402 436 302.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0175 -.00223 .00475 -.01392 435.2 303.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01715 -.00439 .00258 -.01424 441 291.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01738 -.00277 .00413 -.01406 441.3 292.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01752 -.00323 .00393 -.01402 440.1 294.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01738 -.00277 .00413 -.01406 439.2 296.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01541 -.00768 -.00154 -.01435 448.9 266.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01656 -.00577 .0009 -.01438 448.9 268)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01653 -.0053 .0011 -.01445 448.4 269.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01546 -.0072 -.00136 -.01443 449.6 259.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01541 -.00768 -.00154 -.01435 449.4 262.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01546 -.0072 -.00136 -.01443 449.1 264.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01656 -.00577 .0009 -.01438 447.7 272.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01664 -.00505 .0014 -.01443 447 273.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01668 -.00552 .00122 -.01437 446.3 275.8)"/>
+    </g>
+    <g fill="#b00" stroke="#000" stroke-width="12.8">
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01781 .00178 -.00923 -.01216 503.2 324)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0175 .00217 -.00943 -.01214 504.7 325.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01781 .00178 -.00923 -.01216 506.6 327.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01776 -.00209 -.00521 -.01373 486 305.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01762 -.00135 -.00574 -.01366 487.1 307.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0178 -.0018 -.00554 -.01364 488.5 309.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0177 -.00041 -.00676 -.01332 489.5 310)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0174 -.00365 -.00345 -.01411 482.2 299)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01728 -.00319 -.00365 -.01415 483 300.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0174 -.00365 -.00345 -.01411 484.1 303)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01735 -.0029 -.00398 -.01409 485.2 304.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01792 .00057 -.00802 -.01274 496.7 318)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01766 .00098 -.00823 -.01273 498.1 319.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01792 .00057 -.00802 -.01274 499.9 321.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0175 .00217 -.00943 -.01214 501.2 322.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0179 -.00085 -.00656 -.01332 491 312)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0177 -.00041 -.00676 -.01332 492.3 313.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01792 .00057 -.00802 -.01274 493.5 314.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01766 .00098 -.00823 -.01273 495 316.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01621 -.00642 -.00009 -.0144 474.2 276.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01672 -.00485 -.00165 -.01441 474.1 277.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01677 -.00532 -.00146 -.01435 475 279.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01672 -.00485 -.00165 -.01441 475.5 281.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0162 -.00595 -.00027 -.01447 472.6 270.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01621 -.00642 -.00009 -.0144 473.2 272.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0162 -.00595 -.00027 -.01447 473.6 274.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01723 -.00419 -.00282 -.01421 478.6 291.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01713 -.00372 -.00302 -.01425 479.4 293)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01723 -.00419 -.00282 -.01421 480.4 295.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01728 -.00319 -.00365 -.01415 481.1 296.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01677 -.00532 -.00146 -.01435 476.3 283.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01713 -.00372 -.00302 -.01425 475.9 285)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01723 -.00419 -.00282 -.01421 476.9 287.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01713 -.00372 -.00302 -.01425 477.6 289)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01478 -.0085 .00266 -.01423 470.4 259)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01607 -.00667 .00022 -.0144 470.2 260.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01608 -.0062 .00004 -.01448 470.6 262.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01486 -.00804 .00249 -.01433 470 252.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01478 -.0085 .00266 -.01423 470.2 254.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01486 -.00804 .00249 -.01433 470.3 256.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01607 -.00667 .00022 -.0144 471 264.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0162 -.00595 -.00027 -.01447 471.6 266)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01621 -.00642 -.00009 -.0144 472.2 268.4)"/>
+    </g>
+    <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M344.5-596.3l9.2 22.1s1.5-9.7 8.5-11.5l7-1.7s27 49.3 32.3 58.1c5.3 8.8-3.6 16.8-1.8 16.8s26.5-11.5 26.5-11.5-10.6.9-15-6.2-34.8-60-34.8-60 6.1-2.6 11.4-5.2c5.3-2.7 10.6 8 10.6 8L385.2-614s0 8.9-4.4 10.6c-4.4 1.8-8 3.6-8 3.6s-3.5-6.2-8-13.3c-4.4-7 4.5-14.1 4.5-14.1l-23 11.5s8 4.4 10.6 8.8l5.3 8.8s-3.2 1.8-8.2 3.5c-3.6 1.9-7.7 0-9.5-1.7z" transform="matrix(-.23995 .00428 .00516 .19905 536 340.5)"/>
+    <g transform="matrix(.14437 0 0 .12085 423.6 295.3)">
+      <path fill="silver" d="M324.6-255.4l-50.2 50.1L449.8-29.9l50.1-50z"/>
+      <circle cx="354.3" cy="-1428" r="35.4" fill="#fff133" stroke="#000" stroke-width="1.2" transform="scale(-1 1) rotate(45 -177.9 -1104.6)"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M-402-957l37.5 37.7-25 25-37.6-37.6c-12.5-12.5 12.5-37.5 25-25z"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M-346.6-926.5l-50.1 50a25 25 0 01-25-25c10.8-25.8 25-38.4 50-50a26.9 26.9 0 0125 25z"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M-352-931.9l37.7 37.6-50.2 50.1-37.5-37.5c5-20 30-45.1 50-50.1z"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M-309-889l-50.1 50.1a25.1 25.1 0 01-25-25c10.8-25.9 25-38.4 50-50.1a26.9 26.9 0 0125 25z"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M-314.4-894.3L28.4-551.5l-50 50.1-342.9-342.8c5-20 30.1-45 50.1-50z"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M49-531l-50.2 50.1a25.1 25.1 0 01-25-25c10.8-25.9 25-38.5 50-50.1A26.9 26.9 0 0149-531z"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M49-531l225.4 225.5-50 50.1L-1.3-480.9c5-20 30.1-45 50.1-50z"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M186.7-418.2l-75.1 75.1a25.1 25.1 0 01-25-25s0-25 25-50.1 50-25 50-25c11.7 1.5 21.5 12.4 25.1 25z"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M186.7-418.2l50.2 75.1-50.1 50.1-75.2-50c-2.8-2.5 0-25.1 25-50.2s49-24.4 50.1-25z"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M336.6-506.7c0-35.4 0-86.6 17.7-130C372-593.3 372-542 372-506.7h-35.4z" transform="rotate(135 434.8 18.7) scale(1 -.81782)"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M318.9-506.7h17.7V-550c0-43.3-35.4-65-35.4-65l17.7 108.3z" transform="rotate(-45 399.4 -194.2) scale(1 .81782)"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M318.9-506.7h17.7V-550c0-43.3-35.4-65-35.4-65l17.7 108.3z" transform="rotate(135 434.8 18.7) scale(1 -.81782)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M-314.4-894.3l37.6 37.6c25 25 112.8 137.8 112.8 137.8s117.3 92.3 142.3 117.3L16-564c-25-25-180-129.8-180-129.8S-71.7-551.5-34.1-514l-37.6-37.6c-25-25-117.3-142.3-117.3-142.3S-289.3-769-314.4-794.1l-50-50c25 25 175.3 125.2 175.3 125.2s-100.2-150.3-125.3-175.4z"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M299.5-230.3A907.4 907.4 0 00412.2-92.5a83 83 0 0050.1 25s0-25-25-50a899 899 0 00-137.8-112.8zm-62.6-112.8c87.6 87.7 187.9 137.8 250.5 200.5 50.1 50 15.4 88.4 1.4 100.6-14 12.1-52 50.3-101.6-.4C324.5-105 274.4-205.3 186.7-293c0-25 25.1-50 50.1-50z"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M218.3 257.9h23v73h-23z" transform="matrix(-1.2487 -1.4214 -1.3593 1.3175 1166.1 -102.6)"/>
+      <g fill="silver" stroke="#000">
+        <path stroke-width=".6" d="M301.2 396.9l17.7 17.7-17.7 17.7 8.8 8.8 17.7-17.7 35.5 35.5-17.7 17.7 8.8 8.8 17.7-17.7 17.8 17.7-53.2 53.2-35.4-35.4 17.7-17.8 8.9 8.9 8.8-8.9-35.4-35.4-8.9 8.9 8.9 8.8-17.7 17.7-17.7-17.7 8.8-8.8-8.8-8.9-35.5 35.4 8.9 8.9 8.8-8.9 17.8 17.8-17.8 17.7-8.8-8.9-8.9 8.9 35.5 35.4 8.8-8.9-8.8-8.8 17.7-17.7 35.4 35.4-53.1 53.1-17.8-17.7 17.8-17.7-9-8.8-17.6 17.7-35.5-35.5 17.8-17.7-8.9-8.8-17.7 17.7-17.7-17.7 124-124z" transform="matrix(-2.2946 0 0 2.2438 360.6 -1733.7)"/>
+        <path stroke-width="1.1" d="M318.9 786.6V822l88.6 88.6v-70.8L389.8 822h-35.5L319 786.6z" transform="matrix(-1.1473 0 0 1.1219 157.3 -1288.5)"/>
+        <path stroke-width="1.1" d="M230.4 698.8l70.4 70.4.8 35.2-71.2-71.3v-34.3z" transform="matrix(-1.1473 0 0 1.1219 157.4 -1288.5)"/>
+        <path stroke-width="1.1" d="M301.2 804.3l35.4-35.4v-35.4l-35.4 35.4v35.4z" transform="matrix(-1.1473 0 0 1.1219 157.3 -1288.5)"/>
+        <path stroke-width="1.1" d="M301.2 804.3l35.4-35.4v-35.4l-35.4 35.4v35.4z" transform="matrix(-1.1473 0 0 1.1219 259 -1387.9)"/>
+        <path stroke-width="1.1" d="M248 644.9v35.4l17.8-17.7-17.8-17.7z" transform="matrix(-1.1473 0 0 1.1219 157.3 -1288.5)"/>
+        <path stroke-width="1.1" d="M248 644.9v35.4l17.8-17.7-17.8-17.7z" transform="matrix(-1.1473 0 0 1.1219 55.7 -1189.1)"/>
+        <path stroke-width="1.1" d="M230.4 698.8l35.8 35.4v35.4l-35.8-36.5v-34.3z" transform="matrix(-1.1473 0 0 1.1219 218.8 -1349)"/>
+        <path stroke-width="1.1" d="M301.2 804.3l35.4-35.4v-35.4l-35.4 35.4v35.4z" transform="matrix(-1.1473 0 0 1.1219 55.7 -1507.1)"/>
+        <path stroke-width="1.1" d="M301.2 804.3l35.4-35.4v-35.4l-35.4 35.4v35.4z" transform="matrix(-1.1473 0 0 1.1219 137 -1427.6)"/>
+        <path stroke-width="1.1" d="M283.5 822l53.1-53.1v-35.4l-70.9 70.8 17.8 17.8z" transform="matrix(-1.1473 0 0 1.1219 137 -1546.9)"/>
+        <path stroke-width="1.1" d="M248 644.9v35.4l17.8-17.7-17.8-17.7z" transform="matrix(-1.1473 0 0 1.1219 35.4 -1447.5)"/>
+        <path stroke-width="1.1" d="M301.2 804.3L265.8 769v-35.4l35.4 35.4v35.4z" transform="matrix(-1.1473 0 0 1.1219 55.7 -1507.1)"/>
+        <path stroke-width="1.1" d="M389.8 822l-53.2-53v-35.4l70.9 70.8-17.7 17.8z" transform="matrix(-1.1473 0 0 1.1219 55.7 -1546.9)"/>
+        <path stroke-width="1.1" d="M230.4 698l70.9 71h35.4l17.7 17.6v70.9l-124-124.4v-35z" transform="matrix(-1.1473 0 0 1.1219 -66.2 -1387.9)"/>
+        <path stroke-width="1.1" d="M354.3 822l106.3-106.3h35.5L389.8 822h-35.5zm53.2 17.8l106.3-106.3-17.7-17.7L389.8 822l17.7 17.7z" transform="matrix(-1.1473 0 0 1.1219 157.3 -1288.5)"/>
+        <path stroke-width="1.1" d="M407.5 839.8v70.8l106.3-106.3v-70.8L407.5 839.8z" transform="matrix(-1.1473 0 0 1.1219 157.3 -1288.5)"/>
+        <path stroke-width="1.1" d="M354.3 822l106.3-106.3h35.5L389.8 822h-35.5zm53.2 17.8l106.3-106.3-17.7-17.7L389.8 822l17.7 17.7z" transform="matrix(-1.1473 0 0 1.1219 -5.3 -1447.5)"/>
+        <path stroke-width="1.1" d="M407.5 839.8v70.8l106.3-106.3v-70.8L407.5 839.8z" transform="matrix(-1.1473 0 0 1.1219 -5.3 -1447.5)"/>
+        <path stroke-width="1.1" d="M318.9 786.6l17.7-17.7v-35.4l-35.4 35.4 17.7 17.7z" transform="matrix(-1.1473 0 0 1.1219 -86.6 -1527)"/>
+        <path stroke-width="1.1" d="M318.9 786.6l17.7-17.7v-35.4l-35.4 35.4 17.7 17.7z" transform="matrix(-1.1473 0 0 1.1219 15 -1626.4)"/>
+        <path stroke-width="1.1" d="M265.8 768.9v-35.4l17.7 17.7-17.7 17.7z" transform="matrix(-1.1473 0 0 1.1219 55.7 -1348.1)"/>
+        <path stroke-width="1.1" d="M301.2 804.3L265.8 769l17.7-17.7 17.7 17.7v35.4z" transform="matrix(-1.1473 0 0 1.1219 137 -1427.6)"/>
+        <path stroke-width="1.1" d="M301.2 804.3l-17.7-17.7 17.7-17.7v35.4z" transform="matrix(-1.1473 0 0 1.1219 15 -1586.6)"/>
+      </g>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M196.5 254.2h25.2v80.2h-25.2z" transform="matrix(-1.2509 -1.4194 -1.3614 1.3153 1166.1 -102.6)"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M336.6 166.5c0 14.7 35.4 35.5 35.4-17.7h-35.4v17.7z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.6)"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M242.1 24.8c-147 0-113.1 164.2-100.4 124 9.4-29.5 35.5-70.8 65-80.2C246.9 55.8 233.4 78 248 78c14.7 0 1.2-22.2 41.4-9.4 29.5 9.4 55.6 50.7 65 80.2 12.7 40.3 53-124-112.3-124z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.6)"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M389.8 166.5a141.8 141.8 0 01-283.5 0v-17.7c0-29 35.4 124 141.7 124s141.8-124.7 141.8-124v17.7z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.6)"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M336.6 166.5c0 14.7 35.4 35.5 35.4-17.7h-35.4v17.7z" transform="matrix(1.8992 0 0 1.8865 224 -100.5)"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M389.8 148.8a141.8 141.8 0 11-283.6 0 141.8 141.8 0 01283.6 0zm-53.2 0c0 14.7 22.8 3 9.4 43a81 81 0 01-56.6 55c-40.2 12.7-26.7-9.4-41.4-9.4-14.6 0-1.1 22.1-41.3 9.4a80.2 80.2 0 01-56.6-56.6c-12.8-40.2 9.3-26.7 9.3-41.4s-22-1.1-9.3-41.3a80.2 80.2 0 0156.6-56.6c40.2-12.8 26.7 9.3 41.3 9.3 14.7 0 1.2-22 41.4-9.3a80.3 80.3 0 0156.6 56.6c12.7 40.2-9.4 26.6-9.4 41.3z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.6)"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M126.5 157.7c-20.2 0-1.9 67.6-9 51.7a126.5 126.5 0 010-103.4c7.1-16-11.2 51.7 9 51.7z" transform="matrix(-1.6618 0 0 1.7607 1107.2 -99.5)"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M372 140a88 88 0 01-9.7 44.8c-8 13.7 9.8-44.8-8-44.8 17.7 0 1.7-58.6 8-44.8a107.7 107.7 0 019.8 44.8z" transform="matrix(-1.8992 0 0 2.0316 1166.1 -106.2)"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M296.3 263a123.5 123.5 0 01-96.5 0c-14.9-6.2 48.2 9.8 48.2-7.9 0 17.7 63.1 1.7 48.3 8zM248 42.6c0-17.7-63-1.7-48.2-8a123 123 0 0196.5 0c14.8 6.3-48.3-9.7-48.3 8z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.6)"/>
+      <ellipse cx="82.1" cy="160.9" fill="#fff133" stroke="#000" stroke-width="1.2" rx="18.4" ry="20.1" transform="matrix(-1.2929 -1.3819 -1.3912 1.2842 1257.6 -120)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M276.6 287.7a142 142 0 01-57.1 0l-1.5 7a149 149 0 0060 0l-1.4-7z" transform="matrix(-1.2929 -1.3819 1.3912 -1.2842 808.9 712)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M276.6 287.7a142 142 0 01-57.1 0l-1.5 7a149 149 0 0060 0l-1.4-7z" transform="matrix(-1.2929 -1.3819 -1.3912 1.2842 1223.2 329.9)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M267.7 308.5c-9.2 1.9-20.2 1-30 1-9.7 0-19.3-2.7-28.5-4.6l8.8-10.3a149.3 149.3 0 0060 0l-10.3 14z" transform="matrix(-1.2929 -1.3819 -1.3912 1.2842 1223.2 329.9)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M276.6 287.7a142 142 0 01-57.1 0l-1.5 7a149 149 0 0060 0l-1.4-7z" transform="matrix(-1.3912 1.2842 1.2929 1.3819 847.4 -345.2)"/>
+      <ellipse cx="82.1" cy="160.9" fill="#fff133" stroke="#000" stroke-width="1.2" rx="18.4" ry="20.1" transform="matrix(-1.2929 -1.3819 -1.3912 1.2842 789.1 314.4)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M267.6 281.5c-9.2 1.9-17.1 3-26.9 3s-23-.8-32.3-2.7l9.6 12.8a149.5 149.5 0 0060 0l-10.4-13.1z" transform="matrix(-1.3912 1.2842 1.2929 1.3819 850.6 -315.2)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M174 271.8l-.9 14.8-3.2 4.5 1-15 3-4.3zm156.5-6.2l3.6 4.2 1 13.6-2.9-3-1.7-14.8z" transform="matrix(-1.8992 0 0 1.8865 1166.1 -102.6)"/>
+      <ellipse cx="82.1" cy="160.9" fill="#fff133" stroke="#000" stroke-width="1.2" rx="18.4" ry="20.1" transform="matrix(-1.2929 -1.3819 -1.3912 1.2842 1237.6 329.9)"/>
+    </g>
+    <path fill="#fff" stroke="#000" stroke-width="1.2" d="M513.8-790.2l35.4-17.7 35.4 17.7s-73.3 35.5-73.3 159.5c0 88.6 125.2 106.3 125.2 212.6 0 45.6-34.1 88.6-69.6 88.6s-88.6-17.7-141.7-70.9c35.4 17.7 76 37.3 106.3 36 19.6-.3 55-17.7 55-53 0-71-122.8-107-122.8-213.3 0-124 50-159.4 50-159.4z" transform="matrix(-.24 0 0 .1991 534 334.4)"/>
+    <path fill="#fff" stroke="#000" stroke-width="1.2" d="M520.3-790.2l46.6-17.7 10 17.7s-70.6 35.5-70.6 159.5c0 88.6 125.9 106.3 125.9 212.6 0 45.6-26.7 87.4-65.3 88.6-73.4 2.3-90.4-24-141.7-70.9 43.1 32.3 105 46.8 129 34.2 29.4-15.4 35-36 35-53.8 0-70.9-120.9-104.4-120.9-210.7 0-124 52-159.4 52-159.4z" transform="matrix(-.24 0 0 .1991 534 334.4)"/>
+    <path fill="#fff" stroke="#000" stroke-width="1.2" d="M513.3-789.7c7-2.4 36-18.2 71.3 17.3 17.8 17.7 17.8 53.1 17.8 70.8l53.1-53.1s-29-86.9-107.6-53.6a334.8 334.8 0 00-34.5 18.6z" transform="matrix(-.24 0 0 .1991 534 334.4)"/>
+    <path fill="#fff" stroke="#000" stroke-width="1.2" d="M523.8-796c8.8-2.8 36.7-6.3 64.6 18.6 17.7 17.7 19 42.9 19 60.6l40.6-38c3.4-3.1-24.8-81.2-99.2-54a154 154 0 00-25 12.9z" transform="matrix(-.24 0 0 .1991 534 334.4)"/>
+    <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M344.5-596.3l9.2 22.1s1.5-9.7 8.5-11.5l7-1.7s27 49.3 32.3 58.1c5.3 8.8-3.6 16.8-1.8 16.8s26.5-11.5 26.5-11.5-10.6.9-15-6.2-34.8-60-34.8-60 6.1-2.6 11.4-5.2c5.3-2.7 10.6 8 10.6 8L385.2-614s0 8.9-4.4 10.6c-4.4 1.8-8 3.6-8 3.6s-3.5-6.2-8-13.3c-4.4-7 4.5-14.1 4.5-14.1l-23 11.5s8 4.4 10.6 8.8l5.3 8.8s-3.2 1.8-8.2 3.5c-3.6 1.9-7.7 0-9.5-1.7z" transform="matrix(-.19534 -.02065 -.06668 .17315 439.6 337.1)"/>
+    <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M344.5-596.3l9.2 22.1s1.5-9.7 8.5-11.5l7-1.7s27 49.3 32.3 58.1c5.3 8.8-3.6 16.8-1.8 16.8s26.5-11.5 26.5-11.5-10.6.9-15-6.2-34.8-60-34.8-60 6.1-2.6 11.4-5.2c5.3-2.7 10.6 8 10.6 8L385.2-614s0 8.9-4.4 10.6c-4.4 1.8-8 3.6-8 3.6s-3.5-6.2-8-13.3c-4.4-7 4.5-14.1 4.5-14.1l-23 11.5s8 4.4 10.6 8.8l5.3 8.8s-3.2 1.8-8.2 3.5c-3.6 1.9-7.7 0-9.5-1.7z" transform="matrix(.17775 .02412 .0031 -.13262 320.6 95.2)"/>
+    <g transform="matrix(.14437 0 0 .12085 423.6 295.3)">
+      <g transform="rotate(45 478.1 -504.6)">
+        <circle cx="354.3" cy="-1428" r="35.4" fill="silver" stroke="#000" stroke-width="1.2" transform="translate(124 283.5)"/>
+        <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M460.6-1126.8v53.2h35.5v-53.2c0-17.7-35.5-17.7-35.5 0z"/>
+        <path fill="silver" stroke="#000" stroke-width="1.2" d="M443-1066h70.8a25.1 25.1 0 000-35.5c-26-10.6-44.9-9.5-70.9 0a27 27 0 000 35.4z"/>
+        <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M443-1073.6v53.1h70.8v-53.1c-17.7-10.6-53.2-10.6-70.9 0z"/>
+        <path fill="silver" stroke="#000" stroke-width="1.2" d="M443-1013h70.8a25.1 25.1 0 000-35.4c-26-10.6-44.9-9.5-70.9 0a27 27 0 000 35.5z"/>
+        <path fill="#fff133" d="M443-117h70.8v248.1h-70.9z"/>
+        <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M443-1020.5v484.8h70.8v-484.8c-17.7-10.6-53.2-10.6-70.9 0z"/>
+        <path fill="silver" stroke="#000" stroke-width="1.2" d="M443-506.7h70.8a25.1 25.1 0 000-35.4c-26-10.6-44.9-9.5-70.9 0a27 27 0 000 35.4z"/>
+        <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M443-506.7v318.9h70.8v-318.9c-17.7-10.6-53.2-10.6-70.9 0z"/>
+        <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M425.2-329.5h106.3a25 25 0 000-35.5s-17.7-17.7-53.2-17.7-53.1 17.7-53.1 17.7c-7.1 9.4-6.3 24 0 35.5z"/>
+        <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M425.2-329.5l17.7 88.6h70.9l17.7-88.6c.3-3.8-17.7-17.7-53.2-17.7s-51.9 17.3-53.1 17.7z"/>
+        <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M336.6-506.7c0-35.4 0-86.6 17.7-130C372-593.3 372-542 372-506.7h-35.4z" transform="matrix(1 0 0 .81782 124 173.4)"/>
+        <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M318.9-506.7h17.7V-550c0-43.3-35.4-65-35.4-65l17.7 108.3z" transform="matrix(-1 0 0 .81782 832.7 173.4)"/>
+        <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M318.9-506.7h17.7V-550c0-43.3-35.4-65-35.4-65l17.7 108.3z" transform="matrix(1 0 0 .81782 124 173.4)"/>
+        <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M478.3-117a908.6 908.6 0 0117.8 177.2 83 83 0 01-17.8 53.2s-17.7-17.7-17.7-53.2c0-17.7 0-88.6 17.7-177.1zM443-241c0 124-35.4 230.4-35.4 319 0 70.8 51.6 73.4 70 72.1 18.6-1.3 72.4-1.2 71.7-72.2 0-88.5-35.4-194.8-35.4-318.9-17.7-17.7-53.2-17.7-70.9 0z"/>
+        <path fill="silver" stroke="#000" stroke-width="1.2" d="M443-1020.5v53.2c0 35.4 17.6 177.1 17.6 177.1S443-642 443-606.6v53.2c0-35.4 35.4-219 35.4-219s35.5 165.9 35.5 219v-53.2c0-35.4-17.7-183.6-17.7-183.6s17.7-124 17.7-159.4v-70.9c0 35.4-35.4 212.6-35.4 212.6S443-985.1 443-1020.5z"/>
+      </g>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M218.3 257.9h23v73h-23z" transform="matrix(1.2487 -1.4214 1.3593 1.3175 -662.5 -102.6)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M336.6 166.5c0 14.7 35.4 35.5 35.4-17.7h-35.4v17.7z" transform="matrix(1.8992 0 0 1.8865 -662.5 -102.6)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M242.1 24.8c-147 0-113.1 164.2-100.4 124 9.4-29.5 35.5-70.8 65-80.2C246.9 55.8 233.4 78 248 78c14.7 0 1.2-22.2 41.4-9.4 29.5 9.4 55.6 50.7 65 80.2 12.7 40.3 53-124-112.3-124z" transform="matrix(1.8992 0 0 1.8865 -662.5 -102.6)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M389.8 166.5a141.8 141.8 0 01-283.5 0v-17.7c0-29 35.4 124 141.7 124s141.8-124.7 141.8-124v17.7z" transform="matrix(1.8992 0 0 1.8865 -662.5 -102.6)"/>
+      <ellipse cx="82.1" cy="160.9" fill="silver" stroke="#000" stroke-width="1.2" rx="18.4" ry="20.1" transform="matrix(1.2929 -1.3819 1.3912 1.2842 -753.9 -120)"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M196.5 254.2h25.2v80.2h-25.2z" transform="matrix(1.2509 -1.4194 1.3614 1.3153 -662.5 -102.6)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M336.6 166.5c0 14.7 35.4 35.5 35.4-17.7h-35.4v17.7z" transform="matrix(-1.8992 0 0 1.8865 279.7 -100.5)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M389.8 148.8a141.8 141.8 0 11-283.6 0 141.8 141.8 0 01283.6 0zm-53.2 0c0 14.7 22.8 3 9.4 43a81 81 0 01-56.6 55c-40.2 12.7-26.7-9.4-41.4-9.4-14.6 0-1.1 22.1-41.3 9.4a80.2 80.2 0 01-56.6-56.6c-12.8-40.2 9.3-26.7 9.3-41.4s-22-1.1-9.3-41.3a80.2 80.2 0 0156.6-56.6c40.2-12.8 26.7 9.3 41.3 9.3 14.7 0 1.2-22 41.4-9.3a80.3 80.3 0 0156.6 56.6c12.7 40.2-9.4 26.6-9.4 41.3z" transform="matrix(1.8992 0 0 1.8865 -662.5 -102.6)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M126.5 157.7c-20.2 0-1.9 67.6-9 51.7a126.5 126.5 0 010-103.4c7.1-16-11.2 51.7 9 51.7z" transform="matrix(1.6618 0 0 1.7607 -603.6 -99.5)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M372 140a88 88 0 01-9.7 44.8c-8 13.7 9.8-44.8-8-44.8 17.7 0 1.7-58.6 8-44.8a107.7 107.7 0 019.8 44.8z" transform="matrix(1.8992 0 0 2.0316 -662.5 -106.2)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M296.3 263a123.5 123.5 0 01-96.5 0c-14.9-6.2 48.2 9.8 48.2-7.9 0 17.7 63.1 1.7 48.3 8zM248 42.6c0-17.7-63-1.7-48.2-8a123 123 0 0196.5 0c14.8 6.3-48.3-9.7-48.3 8z" transform="matrix(1.8992 0 0 1.8865 -662.5 -102.6)"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M276.6 287.7a142 142 0 01-57.1 0l-1.5 7a149 149 0 0060 0l-1.4-7z" transform="matrix(1.2929 -1.3819 -1.3912 -1.2842 -305.2 712)"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M276.6 287.7a142 142 0 01-57.1 0l-1.5 7a149 149 0 0060 0l-1.4-7z" transform="matrix(1.2929 -1.3819 1.3912 1.2842 -719.6 329.9)"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M267.7 308.5c-9.2 1.9-20.2 1-30 1-9.7 0-19.3-2.7-28.5-4.6l8.8-10.3a149.3 149.3 0 0060 0l-10.3 14z" transform="matrix(1.2929 -1.3819 1.3912 1.2842 -719.6 329.9)"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M276.6 287.7a142 142 0 01-57.1 0l-1.5 7a149 149 0 0060 0l-1.4-7z" transform="matrix(1.3912 1.2842 -1.2929 1.3819 -343.8 -345.2)"/>
+      <ellipse cx="82.1" cy="160.9" fill="silver" stroke="#000" stroke-width="1.2" rx="18.4" ry="20.1" transform="matrix(1.2929 -1.3819 1.3912 1.2842 -285.5 314.4)"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M267.6 281.5c-9.2 1.9-17.1 3-26.9 3s-23-.8-32.3-2.7l9.6 12.8a149.5 149.5 0 0060 0l-10.4-13.1z" transform="matrix(1.3912 1.2842 -1.2929 1.3819 -347 -315.2)"/>
+      <path fill="silver" stroke="#000" stroke-width="1.2" d="M174 271.8l-.9 14.8-3.2 4.5 1-15 3-4.3zm156.5-6.2l3.6 4.2 1 13.6-2.9-3-1.7-14.8z" transform="matrix(1.8992 0 0 1.8865 -662.5 -102.6)"/>
+      <ellipse cx="82.1" cy="160.9" fill="silver" stroke="#000" stroke-width="1.2" rx="18.4" ry="20.1" transform="matrix(1.2929 -1.3819 1.3912 1.2842 -733.9 329.9)"/>
+      <g fill="#fff133" stroke="#000">
+        <path stroke-width=".6" d="M301.2 396.9l17.7 17.7-17.7 17.7 8.8 8.8 17.7-17.7 35.5 35.5-17.7 17.7 8.8 8.8 17.7-17.7 17.8 17.7-53.2 53.2-35.4-35.4 17.7-17.8 8.9 8.9 8.8-8.9-35.4-35.4-8.9 8.9 8.9 8.8-17.7 17.7-17.7-17.7 8.8-8.8-8.8-8.9-35.5 35.4 8.9 8.9 8.8-8.9 17.8 17.8-17.8 17.7-8.8-8.9-8.9 8.9 35.5 35.4 8.8-8.9-8.8-8.8 17.7-17.7 35.4 35.4-53.1 53.1-17.8-17.7 17.8-17.7-9-8.8-17.6 17.7-35.5-35.5 17.8-17.7-8.9-8.8-17.7 17.7-17.7-17.7 124-124z" transform="matrix(2.2946 0 0 2.2438 143.1 -1733.7)"/>
+        <path stroke-width="1.1" d="M318.9 786.6V822l88.6 88.6v-70.8L389.8 822h-35.5L319 786.6z" transform="matrix(1.1473 0 0 1.1219 346.4 -1288.5)"/>
+        <path stroke-width="1.1" d="M230.4 698.8l70.4 70.4.8 35.2-71.2-71.3v-34.3z" transform="matrix(1.1473 0 0 1.1219 346.3 -1288.5)"/>
+        <path stroke-width="1.1" d="M301.2 804.3l35.4-35.4v-35.4l-35.4 35.4v35.4z" transform="matrix(1.1473 0 0 1.1219 346.4 -1288.5)"/>
+        <path stroke-width="1.1" d="M301.2 804.3l35.4-35.4v-35.4l-35.4 35.4v35.4z" transform="matrix(1.1473 0 0 1.1219 244.7 -1387.9)"/>
+        <path stroke-width="1.1" d="M248 644.9v35.4l17.8-17.7-17.8-17.7z" transform="matrix(1.1473 0 0 1.1219 346.4 -1288.5)"/>
+        <path stroke-width="1.1" d="M248 644.9v35.4l17.8-17.7-17.8-17.7z" transform="matrix(1.1473 0 0 1.1219 448 -1189.1)"/>
+        <path stroke-width="1.1" d="M230.4 698.8l35.8 35.4v35.4l-35.8-36.5v-34.3z" transform="matrix(1.1473 0 0 1.1219 284.9 -1349)"/>
+        <path stroke-width="1.1" d="M301.2 804.3l35.4-35.4v-35.4l-35.4 35.4v35.4z" transform="matrix(1.1473 0 0 1.1219 448 -1507.1)"/>
+        <path stroke-width="1.1" d="M301.2 804.3l35.4-35.4v-35.4l-35.4 35.4v35.4z" transform="matrix(1.1473 0 0 1.1219 366.7 -1427.6)"/>
+        <path stroke-width="1.1" d="M283.5 822l53.1-53.1v-35.4l-70.9 70.8 17.8 17.8z" transform="matrix(1.1473 0 0 1.1219 366.7 -1546.9)"/>
+        <path stroke-width="1.1" d="M248 644.9v35.4l17.8-17.7-17.8-17.7z" transform="matrix(1.1473 0 0 1.1219 468.3 -1447.5)"/>
+        <path stroke-width="1.1" d="M301.2 804.3L265.8 769v-35.4l35.4 35.4v35.4z" transform="matrix(1.1473 0 0 1.1219 448 -1507.1)"/>
+        <path stroke-width="1.1" d="M389.8 822l-53.2-53v-35.4l70.9 70.8-17.7 17.8z" transform="matrix(1.1473 0 0 1.1219 448 -1546.9)"/>
+        <path stroke-width="1.1" d="M230.4 698l70.9 71h35.4l17.7 17.6v70.9l-124-124.4v-35z" transform="matrix(1.1473 0 0 1.1219 569.8 -1387.9)"/>
+        <path stroke-width="1.1" d="M354.3 822l106.3-106.3h35.5L389.8 822h-35.5zm53.2 17.8l106.3-106.3-17.7-17.7L389.8 822l17.7 17.7z" transform="matrix(1.1473 0 0 1.1219 346.4 -1288.5)"/>
+        <path stroke-width="1.1" d="M407.5 839.8v70.8l106.3-106.3v-70.8L407.5 839.8z" transform="matrix(1.1473 0 0 1.1219 346.4 -1288.5)"/>
+        <path stroke-width="1.1" d="M354.3 822l106.3-106.3h35.5L389.8 822h-35.5zm53.2 17.8l106.3-106.3-17.7-17.7L389.8 822l17.7 17.7z" transform="matrix(1.1473 0 0 1.1219 509 -1447.5)"/>
+        <path stroke-width="1.1" d="M407.5 839.8v70.8l106.3-106.3v-70.8L407.5 839.8z" transform="matrix(1.1473 0 0 1.1219 509 -1447.5)"/>
+        <path stroke-width="1.1" d="M318.9 786.6l17.7-17.7v-35.4l-35.4 35.4 17.7 17.7z" transform="matrix(1.1473 0 0 1.1219 590.3 -1527)"/>
+        <path stroke-width="1.1" d="M318.9 786.6l17.7-17.7v-35.4l-35.4 35.4 17.7 17.7z" transform="matrix(1.1473 0 0 1.1219 488.6 -1626.4)"/>
+        <path stroke-width="1.1" d="M265.8 768.9v-35.4l17.7 17.7-17.7 17.7z" transform="matrix(1.1473 0 0 1.1219 448 -1348.1)"/>
+        <path stroke-width="1.1" d="M301.2 804.3L265.8 769l17.7-17.7 17.7 17.7v35.4z" transform="matrix(1.1473 0 0 1.1219 366.7 -1427.6)"/>
+        <path stroke-width="1.1" d="M301.2 804.3l-17.7-17.7 17.7-17.7v35.4z" transform="matrix(1.1473 0 0 1.1219 488.6 -1586.6)"/>
+      </g>
+    </g>
+    <g fill="#b00" stroke="#000" stroke-width="18">
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 452 279.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 452.1 277.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 452.1 275)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 452.1 273.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 452 287.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 452 286)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 452 283.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 452 281.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 452.3 262.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 452.3 260.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 452.3 257.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 452.3 256)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 452.2 270.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 452.2 268.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 452.2 266.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 452.2 264.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 451.7 313.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 451.8 311.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 451.8 309.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 451.8 307.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 451.6 322.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 451.7 320.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 451.7 317.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 451.7 316)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 451.9 296.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 452 294.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 452 292.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 452 290.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 451.8 305)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 451.8 303)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 451.9 300.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 451.9 298.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 451.4 347.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 451.4 345.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 451.4 343.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 451.4 341.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 451.3 354.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 451.3 352)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 451.4 350.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 451.5 330.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 451.6 328.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 451.6 326.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 451.6 324.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 451.4 339.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 451.5 337.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 451.5 335)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 451.5 333)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 451.1 369.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 451.2 367.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 451.2 365)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 451.2 363.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 451 376)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 451.1 373.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 451.1 371.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 451.2 360.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01446 .00854 -.00318 .01423 451.3 358.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01435 .009 -.00335 .01413 451.3 356.5)"/>
+    </g>
+    <g fill="#b00" stroke="#000" stroke-width="18">
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455 279.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455 277.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455 275.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455 273.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455 288.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455 286.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455 283.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455 282)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455 262.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455 260.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455 258.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455 256.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455 271)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455 269)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455 266.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455 264.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455.1 313.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455.1 312)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455.1 309.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455.1 307.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455.1 322.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455.1 320.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455.1 318.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455.1 316.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455 296.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455 294.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455 292.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455 290.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455 305.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455.1 303.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455 301)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455 299)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455.2 348)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455.2 346.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455.2 343.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455.2 341.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455.3 354.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455.2 352.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455.3 350.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455.2 331)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455.2 329)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455.1 326.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455.2 324.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455.2 339.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455.2 337.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455.2 335.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455.2 333.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455.3 369.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455.3 367.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455.3 365.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455.3 363.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455.3 376.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455.3 373.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455.3 372)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455.3 361)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01457 .0084 -.003 .01426 455.3 359.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01447 .00887 -.00316 .01416 455.3 356.8)"/>
+    </g>
+    <g fill="#b00" stroke="#000" stroke-width="12.8">
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01804 .0045 .00258 .01426 466.7 266.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.00502 .01448 -.01369 .00945 463 262.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01316 .01078 -.0063 .01351 464.4 265)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.011 .01222 -.01787 -.00248 462.7 259.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0104 .0123 -.018 -.00234 465.1 259.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01155 .01189 -.01775 -.003 452.2 259)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01097 .01198 -.01788 -.00286 454.6 259.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01155 .01189 -.01775 -.003 457.6 259.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0104 .0123 -.018 -.00234 459.7 259.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01155 .01189 -.01775 -.003 448.7 258.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01268 .01087 -.01732 -.00452 450.4 258.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01676 .00696 -.01454 -.00862 449.5 257)"/>
+    </g>
+    <g fill="#b00" stroke="#000" stroke-width="12.8">
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01456 -.00876 -.0151 .00691 500.9 356.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01407 -.00899 -.01526 .0068 503 355.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01456 -.00876 -.0151 .00691 505.8 355)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01407 -.00899 -.01526 .0068 508 354.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01737 .00284 -.00405 .01407 524 347.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01147 .01155 .00717 .0131 526 341.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0175 .0033 -.00385 .01404 525.1 345.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0136 -.00978 -.01575 .0058 490.8 358.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0131 -.00997 -.0159 .00568 493 357.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01493 -.00832 -.0148 .00736 496.4 357.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01254 -.01046 -.0162 .00507 497.3 356.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01456 -.00876 -.0151 .00691 510.6 353.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01407 -.00899 -.01526 .0068 512.8 353)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01096 -.01188 -.01683 .003 458.7 360)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01041 -.01198 -.01695 .00287 461 360)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01096 -.01188 -.01683 .003 463.8 360)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01041 -.01198 -.01695 .00287 466.1 360)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01096 -.01188 -.01683 .003 448.5 360.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01041 -.01198 -.01695 .00287 450.8 360.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01096 -.01188 -.01683 .003 453.6 360.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01041 -.01198 -.01695 .00287 455.9 360.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01244 -.01081 -.01634 .00452 480 359.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01231 -.01064 -.0163 .00483 482.5 359.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01284 -.01048 -.01616 .00495 485.3 359)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0131 -.00997 -.0159 .00568 488 358.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01096 -.01188 -.01683 .003 469 359.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0113 -.0114 -.0167 .00377 471.6 359.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0125 -.01076 -.01631 .0046 474.8 359.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01107 -.01156 -.01677 .00353 476.6 359.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00824 -.01334 -.0172 .00043 416.7 358.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00768 -.01335 -.01729 .00028 419 358.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00983 -.01256 -.01706 .0019 422.4 359.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00927 -.01262 -.01717 .00176 424.6 359.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00768 -.01335 -.01729 .00028 408.8 357.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00824 -.01334 -.0172 .00043 411.6 357.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00768 -.01335 -.01729 .00028 413.9 357.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00983 -.01256 -.01706 .0019 437.7 359.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00927 -.01262 -.01717 .00176 440 360)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01096 -.01188 -.01683 .003 443.4 360.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01041 -.01198 -.01695 .00287 445.7 360.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00983 -.01256 -.01706 .0019 427.5 359.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00927 -.01262 -.01717 .00176 429.8 359.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00983 -.01256 -.01706 .0019 432.6 359.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00927 -.01262 -.01717 .00176 434.9 359.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01773 -.00226 .00503 -.01378 399.9 338.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0141 -.00895 -.00376 -.01413 397.1 342.6)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.00947 -.01275 -.00925 -.01215 397 346.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.00376 -.01448 -.01383 -.00869 397.7 350.2)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01766 .00094 .00819 -.01275 405.4 333)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01793 .00053 .00798 -.01276 403.7 334.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01757 -.0018 .00523 -.0138 401.2 336.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.001 -.01499 -.0159 -.0055 399.7 353.5)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00438 -.01435 -.01702 -.00258 402.7 355.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.00824 -.01334 -.0172 .00043 406.5 356.8)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0174 -.00361 -.01096 .0111 516.7 351.7)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.0168 -.00469 -.0118 .01058 516.9 352.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01764 -.00272 -.01013 .01164 521.7 349.4)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(-.01667 -.00498 -.01207 .01037 518.6 351)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01634 -.0062 .01318 .00926 511.5 341)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0159 -.0065 .01336 .00919 509.6 340)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01686 -.00512 .01228 .01009 506.4 338.9)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0159 -.0065 .01336 .00919 518.5 344.3)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.01634 -.0062 .01318 .00926 516 343.1)"/>
+      <path d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.0159 -.0065 .01336 .00919 514 342.2)"/>
+    </g>
+    <g transform="matrix(.08053 0 0 .0956 438.4 288)">
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M212.6-1995v53.2h-53.1v35.5h53.1v106.3H248v-106.3h53.2v-35.5H248v-53.1h-35.4z"/>
+      <ellipse cx="239.2" cy="-1813.5" fill="#fff133" stroke="#000" stroke-width="1.2" rx="62" ry="57.3" transform="matrix(.57143 0 0 .61816 93.6 -679)"/>
+      <path fill="#fff" stroke="#000" stroke-width="1.2" d="M602.4-1119.4c0 68.5-10.5 145.7-29.3 205-120-26.4-268-39.7-339-39.7-87.6 0-246.2 13.3-345.3 26.5a630.8 630.8 0 01-30.5-191.8c0-273.8 105.2-390.2 367.5-496 233.3 105.8 376.6 222.2 376.6 496z" transform="matrix(1.0576 0 0 1.3394 -5.8 363.7)"/>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M567-657.3c0-44-150.9-79.7-336.7-79.7s-336.6 35.7-336.6 79.7v26.6c0-44 150.8-70.9 336.6-70.9S567-657 567-613v-44.3z" transform="matrix(1.1715 0 0 .74463 -32.8 -634.9)"/>
+      <g fill="#fff133" stroke="#000" stroke-width="1.2">
+        <path d="M230.3-825.6l-53.1 53.2 35.4 35.4-17.7 17.7-35.5-35.4-53.1 53.1 53.1 53.2L195-684l17.7 17.8v53.1H248v-53.1l17.7-17.8 35.5 35.5 53.1-53.2-53.1-53.1-35.4 35.4L248-737l35.5-35.5-53.2-53.1z" transform="matrix(1.1725 0 0 .74463 -33 -766.8)"/>
+        <path d="M221-825.6l-8.4 53.2v35.4l-17.7 17.7v-35.4l-17.7 53.1 17.7 53.2V-684l17.7 17.8v53.1h17.7v-53.1L248-684v35.5l17.8-53.2-17.8-53.1v35.4L230.3-737v-35.4l-9.3-53.2z" transform="matrix(1.13516 -.18643 .29356 .72091 -190 -703.6)"/>
+        <path d="M221-825.6l-8.4 53.2v35.4l-17.7 17.7v-35.4l-17.7 53.1 17.7 53.2V-684l17.7 17.8v53.1h17.7v-53.1L248-684v35.5l17.8-53.2-17.8-53.1v35.4L230.3-737v-35.4l-9.3-53.2z" transform="matrix(1.1416 .16986 -.26746 .725 182.2 -778.4)"/>
+        <path d="M141.7-1020.5a38.1 38.1 0 0135.5-35.4c17.7 0 35.4 17.7 35.4 35.4s-17.7 35.4-17.7 35.4l70.8 70.9h-35.4l-53.1-53.1-53.2 53.1H88.6l70.9-70.9s-17.8-17.7-17.8-35.4z" transform="matrix(.92597 -.09509 .18717 .73508 28.8 -521.9)"/>
+        <path d="M141.7-1020.5a38.1 38.1 0 0135.5-35.4c17.7 0 35.4 17.7 35.4 35.4s-17.7 35.4-17.7 35.4l70.8 70.9h-35.4l-53.1-53.1-53.2 53.1H88.6l70.9-70.9s-17.8-17.7-17.8-35.4z" transform="matrix(.92699 .091 -.17909 .7359 124.8 -554)"/>
+        <path d="M567-657.3c0-44-150.9-79.7-336.7-79.7s-336.6 35.7-336.6 79.7v26.6c0-44 150.8-70.9 336.6-70.9S567-657 567-613v-44.3z" transform="matrix(1.1725 0 0 .74463 -33 -674.5)"/>
+      </g>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M567-657.3c0-44-150.9-79.7-336.7-79.7s-336.6 35.7-336.6 79.7v26.6c0-44 150.8-70.9 336.6-70.9S567-657 567-613v-44.3z" transform="matrix(1.0735 0 0 .74463 -9.3 -386.9)"/>
+      <g fill="#fff133" stroke="#000" stroke-width="1.2">
+        <path d="M230.3-825.6l-53.1 53.2 35.4 35.4-17.7 17.7-35.5-35.4-53.1 53.1 53.1 53.2L195-684l17.7 17.8v53.1H248v-53.1l17.7-17.8 35.5 35.5 53.1-53.2-53.1-53.1-35.4 35.4L248-737l35.5-35.5-53.2-53.1z" transform="matrix(1.1042 0 0 .74463 -12.9 -518.8)"/>
+        <path d="M221-825.6l-8.4 53.2v35.4l-17.7 17.7v-35.4l-17.7 53.1 17.7 53.2V-684l17.7 17.8v53.1h17.7v-53.1L248-684v35.5l17.8-53.2-17.8-53.1v35.4L230.3-737v-35.4l-9.3-53.2z" transform="matrix(1.06903 -.18643 .27645 .72092 -160.7 -455.6)"/>
+        <path d="M221-825.6l-8.4 53.2v35.4l-17.7 17.7v-35.4l-17.7 53.1 17.7 53.2V-684l17.7 17.8v53.1h17.7v-53.1L248-684v35.5l17.8-53.2-17.8-53.1v35.4L230.3-737v-35.4l-9.3-53.2z" transform="matrix(1.0751 .16986 -.25188 .725 189.8 -530.4)"/>
+        <path d="M141.7-1020.5a38.1 38.1 0 0135.5-35.4c17.7 0 35.4 17.7 35.4 35.4s-17.7 35.4-17.7 35.4l70.8 70.9h-35.4l-53.1-53.1-53.2 53.1H88.6l70.9-70.9s-17.8-17.7-17.8-35.4z" transform="matrix(.87203 -.09509 .17626 .73508 45.4 -273.9)"/>
+        <path d="M141.7-1020.5a38.1 38.1 0 0135.5-35.4c17.7 0 35.4 17.7 35.4 35.4s-17.7 35.4-17.7 35.4l70.8 70.9h-35.4l-53.1-53.1-53.2 53.1H88.6l70.9-70.9s-17.8-17.7-17.8-35.4z" transform="matrix(.873 .091 -.16866 .7359 135.8 -306)"/>
+        <path d="M567-657.3c0-44-150.9-79.7-336.7-79.7s-336.6 35.7-336.6 79.7v26.6c0-44 150.8-70.9 336.6-70.9S567-657 567-613v-44.3z" transform="matrix(1.1042 0 0 .74463 -12.9 -426.4)"/>
+      </g>
+      <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M567-657.3c0-44-150.9-79.7-336.7-79.7s-336.6 35.7-336.6 79.7v26.6c0-44 150.8-70.9 336.6-70.9S567-657 567-613v-44.3z" transform="matrix(1.105 0 0 .74463 -16.1 -865.2)"/>
+      <g fill="#fff133" stroke="#000" stroke-width="1.2">
+        <path d="M230.3-825.6l-53.1 53.2 35.4 35.4-17.7 17.7-35.5-35.4-53.1 53.1 53.1 53.2L195-684l17.7 17.8v53.1H248v-53.1l17.7-17.8 35.5 35.5 53.1-53.2-53.1-53.1-35.4 35.4L248-737l35.5-35.5-53.2-53.1z" transform="matrix(1.0799 0 0 .70238 -6.2 -1031.3)"/>
+        <path d="M221-825.6l-8.4 53.2v35.4l-17.7 17.7v-35.4l-17.7 53.1 17.7 53.2V-684l17.7 17.8v53.1h17.7v-53.1L248-684v35.5l17.8-53.2-17.8-53.1v35.4L230.3-737v-35.4l-9.3-53.2z" transform="matrix(1.0455 -.17585 .27037 .68 -150.8 -971.8)"/>
+        <path d="M221-825.6l-8.4 53.2v35.4l-17.7 17.7v-35.4l-17.7 53.1 17.7 53.2V-684l17.7 17.8v53.1h17.7v-53.1L248-684v35.5l17.8-53.2-17.8-53.1v35.4L230.3-737v-35.4l-9.3-53.2z" transform="matrix(1.05143 .16022 -.24634 .68386 192.1 -1042.3)"/>
+        <path d="M141.7-1020.5a38.1 38.1 0 0135.5-35.4c17.7 0 35.4 17.7 35.4 35.4s-17.7 35.4-17.7 35.4l70.8 70.9h-35.4l-53.1-53.1-53.2 53.1H88.6l70.9-70.9s-17.8-17.7-17.8-35.4z" transform="matrix(.85284 -.0897 .17238 .69338 50.8 -800.3)"/>
+        <path d="M141.7-1020.5a38.1 38.1 0 0135.5-35.4c17.7 0 35.4 17.7 35.4 35.4s-17.7 35.4-17.7 35.4l70.8 70.9h-35.4l-53.1-53.1-53.2 53.1H88.6l70.9-70.9s-17.8-17.7-17.8-35.4z" transform="matrix(.85378 .08583 -.16494 .69414 139.3 -830.7)"/>
+        <path d="M567-657.3c0-44-150.9-79.7-336.7-79.7s-336.6 35.7-336.6 79.7v26.6c0-44 150.8-70.9 336.6-70.9S567-657 567-613v-44.3z" transform="matrix(1.0799 0 0 .70238 -6.2 -944.2)"/>
+      </g>
+      <ellipse cx="234.1" cy="-822.1" fill="#b90000" rx="375.9" ry="120.5" transform="matrix(.96627 0 0 .41385 13 -517.5)"/>
+    </g>
+    <path fill="#fff" stroke="#000" stroke-width="1.2" d="M513.8-790.2l35.4-17.7 35.4 17.7s-73.3 35.5-73.3 159.5c0 88.6 125.2 106.3 125.2 212.6 0 45.6-34.1 88.6-69.6 88.6s-88.6-17.7-141.7-70.9c35.4 17.7 76 37.3 106.3 36 19.6-.3 55-17.7 55-53 0-71-122.8-107-122.8-213.3 0-124 50-159.4 50-159.4z" transform="matrix(.24 0 0 .1991 381.9 336.2)"/>
+    <path fill="#b00" stroke="#000" stroke-width="18" d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.02071 -.00148 .00948 .02238 454.4 384)"/>
+    <path fill="#fff" stroke="#000" stroke-width="1.2" d="M520.3-790.2l46.6-17.7 10 17.7s-70.6 35.5-70.6 159.5c0 88.6 125.9 106.3 125.9 212.6 0 45.6-26.7 87.4-65.3 88.6-73.4 2.3-90.4-24-141.7-70.9 43.1 32.3 105 46.8 129 34.2 29.4-15.4 35-36 35-53.8 0-70.9-120.9-104.4-120.9-210.7 0-124 52-159.4 52-159.4z" transform="matrix(.24 0 0 .1991 381.9 336.2)"/>
+    <path fill="#fff" stroke="#000" stroke-width="1.2" d="M513.3-789.7c7-2.4 36-18.2 71.3 17.3 17.8 17.7 17.8 53.1 17.8 70.8l53.1-53.1s-29-86.9-107.6-53.6a334.8 334.8 0 00-34.5 18.6z" transform="matrix(.24 0 0 .1991 381.9 336.2)"/>
+    <path fill="#fff" stroke="#000" stroke-width="1.2" d="M523.8-796c8.8-2.8 36.7-6.3 64.6 18.6 17.7 17.7 19 42.9 19 60.6l40.6-38c3.4-3.1-24.8-81.2-99.2-54a154 154 0 00-25 12.9z" transform="matrix(.24 0 0 .1991 381.9 336.2)"/>
+    <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M344.5-596.3l9.2 22.1s1.5-9.7 8.5-11.5l7-1.7s27 49.3 32.3 58.1c5.3 8.8-3.6 16.8-1.8 16.8s26.5-11.5 26.5-11.5-10.6.9-15-6.2-34.8-60-34.8-60 6.1-2.6 11.4-5.2c5.3-2.7 10.6 8 10.6 8L385.2-614s0 8.9-4.4 10.6c-4.4 1.8-8 3.6-8 3.6s-3.5-6.2-8-13.3c-4.4-7 4.5-14.1 4.5-14.1l-23 11.5s8 4.4 10.6 8.8l5.3 8.8s-3.2 1.8-8.2 3.5c-3.6 1.9-7.7 0-9.5-1.7z" transform="matrix(.19534 -.02065 .06668 .17315 476.4 339)"/>
+    <path fill="#fff133" stroke="#000" stroke-width="1.2" d="M344.5-596.3l9.2 22.1s1.5-9.7 8.5-11.5l7-1.7s27 49.3 32.3 58.1c5.3 8.8-3.6 16.8-1.8 16.8s26.5-11.5 26.5-11.5-10.6.9-15-6.2-34.8-60-34.8-60 6.1-2.6 11.4-5.2c5.3-2.7 10.6 8 10.6 8L385.2-614s0 8.9-4.4 10.6c-4.4 1.8-8 3.6-8 3.6s-3.5-6.2-8-13.3c-4.4-7 4.5-14.1 4.5-14.1l-23 11.5s8 4.4 10.6 8.8l5.3 8.8s-3.2 1.8-8.2 3.5c-3.6 1.9-7.7 0-9.5-1.7z" transform="matrix(-.17775 .02412 -.0031 -.13262 595.4 97)"/>
+    <path fill="#b00" stroke="#000" stroke-width="18" d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.02071 -.00148 .00948 .02238 457.9 383.8)"/>
+    <path fill="#b00" stroke="#000" stroke-width="18" d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.03487 -.00148 .01595 .02238 452.7 386.7)"/>
+    <path fill="#b00" stroke="#000" stroke-width="18" d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.03487 -.00148 .01595 .02238 456 386.5)"/>
+    <path fill="#b00" stroke="#000" stroke-width="18" d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.04323 -.00148 .01978 .02238 451.4 389.9)"/>
+    <path fill="#b00" stroke="#000" stroke-width="18" d="M212.6-453.5c-35.4 0-70.9 35.4-70.9 70.8s35.5 70.9 70.9 70.9h194.9c35.4 0 70.9-35.4 70.9-70.9 0-37-35.5-70.8-71-70.8H212.7z" transform="matrix(.04323 -.00148 .01978 .02238 455.4 389.6)"/>
+    <path fill="#ffe000" d="M0 0h320v480H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/vc.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/vc.svg
new file mode 100644
index 0000000..99ba90f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/vc.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-vc" viewBox="0 0 640 480">
+  <g fill-rule="evenodd">
+    <path fill="#f4f100" d="M0 0h640v480H0z"/>
+    <path fill="#199a00" d="M490 0h150v480H490z"/>
+    <path fill="#0058aa" d="M0 0h150v480H0z"/>
+    <path fill="#199a00" d="M259.3 130l-46.4 71.3 44.7 74.4 43.8-73.7-42.1-72zm121.2 0l-46.3 71.3 44.7 74.4 43.8-73.7-42.2-72zm-61.2 97.3l-46.4 71.4 44.8 74.4 43.8-73.7-42.2-72z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ve.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ve.svg
new file mode 100644
index 0000000..98ef473
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ve.svg
@@ -0,0 +1,26 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-ve" viewBox="0 0 640 480">
+  <defs>
+    <g id="d" transform="translate(0 -36)">
+      <g id="c">
+        <g id="b">
+          <path id="a" fill="#fff" d="M0-5L-1.5-.2l2.8.9z"/>
+          <use width="180" height="120" transform="scale(-1 1)" xlink:href="#a"/>
+        </g>
+        <use width="180" height="120" transform="rotate(72)" xlink:href="#b"/>
+      </g>
+      <use width="180" height="120" transform="rotate(-72)" xlink:href="#b"/>
+      <use width="180" height="120" transform="rotate(144)" xlink:href="#c"/>
+    </g>
+  </defs>
+  <path fill="#cf142b" d="M0 0h640v480H0z"/>
+  <path fill="#00247d" d="M0 0h640v320H0z"/>
+  <path fill="#fc0" d="M0 0h640v160H0z"/>
+  <g id="f" transform="matrix(4 0 0 4 320 336)">
+    <g id="e">
+      <use width="180" height="120" transform="rotate(10)" xlink:href="#d"/>
+      <use width="180" height="120" transform="rotate(30)" xlink:href="#d"/>
+    </g>
+    <use width="180" height="120" transform="rotate(40)" xlink:href="#e"/>
+  </g>
+  <use width="180" height="120" transform="rotate(-80 320 336)" xlink:href="#f"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/vg.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/vg.svg
new file mode 100644
index 0000000..2c69495
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/vg.svg
@@ -0,0 +1,127 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-vg" viewBox="0 0 640 480">
+  <defs>
+    <linearGradient id="a">
+      <stop offset="0" stop-color="red"/>
+      <stop offset="1" stop-color="#ff0"/>
+    </linearGradient>
+    <linearGradient id="c" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.64274 0 0 1.4534 -94.7 29.2)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="d" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.64274 0 0 1.4534 -94.7 30.2)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="e" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.64274 0 0 1.4534 -98 31)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="f" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.64274 0 0 1.4534 -94.7 32)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="g" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.64274 0 0 1.4534 -94.8 32.8)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="h" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.64274 0 0 1.4534 -94.8 33.8)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="i" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.64274 0 0 1.4534 -98 33.7)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="j" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.64274 0 0 1.4534 -98 32.8)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="k" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.64274 0 0 1.4534 -98 32)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="l" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.8281 0 0 1.8726 602.8 148.2)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="m" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.64274 0 0 1.4534 -98 30.1)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <linearGradient id="n" x1="103.1" x2="92.5" y1="111.3" y2="107.8" gradientTransform="matrix(.64274 0 0 1.4534 -95.3 31)" gradientUnits="userSpaceOnUse" xlink:href="#a"/>
+    <clipPath id="vg-b">
+      <path fill-opacity=".7" d="M0 0h640v480H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#vg-b)">
+    <path fill="#006" d="M0 0h960v480H0z"/>
+    <path fill="#006" fill-rule="evenodd" d="M0 0h350v175H0z"/>
+    <g stroke-width="1pt">
+      <path fill="#fff" d="M0 0v19.6L310.9 175H350v-19.6L39.1 0H0zm350 0v19.6L39.1 175H0v-19.6L310.9 0H350z"/>
+      <path fill="#fff" d="M145.8 0v175h58.4V0h-58.4zM0 58.3v58.4h350V58.3H0z"/>
+      <path fill="#c00" d="M0 70v35h350V70H0zM157.5 0v175h35V0h-35zM0 175l116.7-58.3h26L26.2 175H0zM0 0l116.7 58.3H90.6L0 13V0zm207.3 58.3L323.9 0H350L233.3 58.3h-26zM350 175l-116.7-58.3h26.1L350 162v13z"/>
+    </g>
+    <path fill="#fff" fill-rule="evenodd" d="M378.5 154.5l219.3-.9-.4 195.4s7.7 29.7-92 74.9c35.9-3.7 75-42 75-42s15.8-20.3 23.5-9a87 87 0 0020.8 21.7c5.7 4.4 10.2 16.6 1.6 25.6-8.5 9-22 10.2-25.6-.8-5.7 2.8-40.7 45.2-112.3 47.2A159 159 0 01375.6 419s-9.7 15.4-23.6 3.2c-13.4-15.8-3.2-26-3.2-26s11.4-6.5 14.6-11c5.3-6.1 7-14.2 15.9-14.2 10.6.8 14.7 9.3 14.7 9.3s36.6 38.7 76 43.5c-89-42.7-92.3-69.1-92-75.6l.5-193.7z"/>
+    <path fill="#006129" fill-rule="evenodd" stroke="#000" stroke-width="1.7" d="M383.8 159.7l209.1-1.2v188c.4 24.4-40.7 49.3-105 81-66.3-34.2-104.5-55-105-81.4l.9-186.4z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.7" d="M409 366.9l12.3-18.1 12.4 18.1"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M423.7 360.1a2.5 2.5 0 11-4.9 0 2.5 2.5 0 015 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M411.2 380.3h19.2s.3-2.4-2-4c10-1.3 7.4-10.2 15.8-10.7 1.6.3-4.4 3.8-4.4 3.8s-5 3.6-2.8 5.4c1.9 1.4 2.7-.9 3-2.7.2-1.7 8-2.8 7-7.9-2-4-13 2.8-13 2.8h-7.8c-.5-1-2.7-4.5-5-4.5-2.6.1-4.4 4.5-4.4 4.5H399s-.6 4.6 8.4 5.5c2 2.6 3.6 3.4 5.3 4-1.1 1-1.5 2.2-1.5 3.8z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M412.6 376.4h16m-23.3-9.4s1.3 7.5 7.2 9.2"/>
+    <path fill="url(#c)" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M66.3 170.5c.5-2.1 1.3-2.5 2.2-5.2.1-2.7-2.2-2.4-1.5-4.1 1.2-1.9.6-3.6-1.6-5 .4 2.4-3 4.7-3 6.7s1.8 1.6 1.6 4.6c0 1.8-.5 1.3-.6 3h3z" transform="translate(316.6 141.4) scale(1.3225)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M423.5 349.2a2.3 2.3 0 11-4.5 0 2.3 2.3 0 014.5 0z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.7" d="M408.2 329.6l12.4-18.2 12.4 18.2"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M423 322.8a2.5 2.5 0 11-4.9 0 2.5 2.5 0 015 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M410.5 343h19.2s.3-2.4-2-4c10-1.3 7.4-10.2 15.8-10.7 1.6.3-4.4 3.8-4.4 3.8s-5 3.5-2.8 5.4c1.9 1.4 2.7-1 3-2.7.2-1.7 8-2.9 7-7.9-2-4.1-13 2.8-13 2.8h-7.8c-.5-1-2.7-4.5-5-4.5-2.6.1-4.4 4.5-4.4 4.5h-17.8s-.6 4.6 8.4 5.4c2 2.7 3.6 3.4 5.3 4.1-1.1 1-1.5 2.2-1.5 3.8z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M412 339h15.9m-23.3-9.3s1.3 7.4 7.2 9.2"/>
+    <path fill="url(#d)" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M66.3 170.5c.5-2.1 1.3-2.5 2.2-5.2.1-2.7-2.2-2.4-1.5-4.1 1.2-1.9.6-3.6-1.6-5 .4 2.4-3 4.7-3 6.7s1.8 1.6 1.6 4.6c0 1.8-.5 1.3-.6 3h3z" transform="translate(316 104) scale(1.3225)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M422.8 311.9a2.3 2.3 0 11-4.5 0 2.3 2.3 0 014.5 0z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.7" d="M539.4 295.6l12.3-18 12.4 18"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M554.2 288.9a2.5 2.5 0 11-4.9 0 2.5 2.5 0 014.9 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M541.7 309l19.1.1s.3-2.5-2-4c10-1.4 7.5-10.2 15.9-10.7 1.6.2-4.4 3.8-4.4 3.8s-5 3.5-2.8 5.3c1.9 1.5 2.7-.8 2.9-2.6.3-1.8 8.2-2.9 7-7.9-1.9-4.1-12.9 2.8-12.9 2.8h-7.9c-.4-1-2.6-4.5-4.9-4.5-2.6 0-4.5 4.5-4.5 4.5h-17.8s-.6 4.5 8.4 5.4c2 2.7 3.6 3.4 5.4 4-1.2 1-1.5 2.3-1.5 3.8z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M543 305.2h16m-23.2-9.4s1.3 7.4 7.1 9.2"/>
+    <path fill="url(#e)" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M66.3 170.5c.5-2.1 1.3-2.5 2.2-5.2.1-2.7-2.2-2.4-1.5-4.1 1.2-1.9.6-3.6-1.6-5 .4 2.4-3 4.7-3 6.7s1.8 1.6 1.6 4.6c0 1.8-.5 1.3-.6 3h3z" transform="translate(447 70.1) scale(1.3225)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M554 278a2.3 2.3 0 11-4.5 0 2.3 2.3 0 014.5 0z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.7" d="M411.3 259.4l12.3-18.2 12.4 18.2"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M426.1 252.6a2.5 2.5 0 11-4.9 0 2.5 2.5 0 014.9 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M413.6 272.8h19.1s.3-2.5-2-4c10-1.4 7.5-10.2 15.9-10.7 1.6.3-4.4 3.8-4.4 3.8s-5.1 3.5-2.8 5.4c1.8 1.4 2.6-1 2.9-2.7.2-1.7 8.1-2.9 7-7.9-1.9-4.1-12.9 2.8-12.9 2.8h-7.9c-.5-1-2.6-4.5-4.9-4.5-2.6.1-4.5 4.5-4.5 4.5h-17.8s-.6 4.6 8.4 5.4c2 2.7 3.6 3.4 5.4 4.1-1.2 1-1.5 2.2-1.5 3.8z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M415 268.9h16m-23.3-9.4s1.3 7.4 7.1 9.2"/>
+    <path fill="url(#f)" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M66.3 170.5c.5-2.1 1.3-2.5 2.2-5.2.1-2.7-2.2-2.4-1.5-4.1 1.2-1.9.6-3.6-1.6-5 .4 2.4-3 4.7-3 6.7s1.8 1.6 1.6 4.6c0 1.8-.5 1.3-.6 3h3z" transform="translate(319 33.8) scale(1.3225)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M425.9 241.7a2.3 2.3 0 11-4.5 0 2.3 2.3 0 014.5 0z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.7" d="M411.6 223.7l12.3-18.1 12.4 18.2"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M426.4 217a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M413.9 237.1H433s.3-2.4-2-4c10-1.3 7.4-10.1 15.8-10.6 1.7.2-4.4 3.7-4.4 3.7s-5 3.6-2.7 5.4c1.8 1.4 2.6-.9 2.9-2.6.2-1.8 8.1-3 7-8-1.9-4-13 2.8-13 2.8h-7.8c-.5-.9-2.7-4.4-4.9-4.5-2.6.1-4.5 4.5-4.5 4.5h-17.8s-.6 4.6 8.4 5.5c2 2.6 3.6 3.4 5.4 4-1.2 1-1.5 2.2-1.5 3.8z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M415.3 233.2h15.9m-23.2-9.4s1.2 7.5 7.1 9.2"/>
+    <path fill="url(#g)" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M66.3 170.5c.5-2.1 1.3-2.5 2.2-5.2.1-2.7-2.2-2.4-1.5-4.1 1.2-1.9.6-3.6-1.6-5 .4 2.4-3 4.7-3 6.7s1.8 1.6 1.6 4.6c0 1.8-.5 1.3-.6 3h3z" transform="translate(319.3 -1.8) scale(1.3225)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M426.2 206a2.3 2.3 0 11-4.5 0 2.3 2.3 0 014.5 0z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.7" d="M412.2 187.5l12.4-18.1 12.4 18.2"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M427 180.8a2.5 2.5 0 11-4.8 0 2.5 2.5 0 014.9 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M414.6 201h19s.4-2.5-2-4c10.1-1.4 7.5-10.2 16-10.7 1.5.2-4.5 3.7-4.5 3.7s-5 3.6-2.7 5.4c1.8 1.5 2.6-.9 2.9-2.6.2-1.8 8-2.9 7-8-2-4-13 2.8-13 2.8h-7.8c-.5-.9-2.7-4.4-5-4.4-2.6 0-4.4 4.5-4.4 4.5h-17.8s-.6 4.5 8.4 5.4a10.8 10.8 0 005.4 4c-1.2 1-1.5 2.2-1.5 3.8z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M416 197h15.9m-23.3-9.4s1.3 7.5 7.2 9.3"/>
+    <path fill="url(#h)" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M66.3 170.5c.5-2.1 1.3-2.5 2.2-5.2.1-2.7-2.2-2.4-1.5-4.1 1.2-1.9.6-3.6-1.6-5 .4 2.4-3 4.7-3 6.7s1.8 1.6 1.6 4.6c0 1.8-.5 1.3-.6 3h3z" transform="translate(320 -38) scale(1.3225)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M426.9 169.9a2.3 2.3 0 11-4.5 0 2.3 2.3 0 014.5 0z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.7" d="M540.4 188.1l12.3-18.1 12.4 18.2"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M555.2 181.3a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M542.7 201.5h19.1s.3-2.4-2-4c10-1.3 7.4-10.1 15.8-10.6 1.7.2-4.4 3.7-4.4 3.7s-5 3.6-2.7 5.4c1.8 1.4 2.6-.9 2.9-2.6.2-1.8 8.1-3 7-8-1.9-4-13 2.8-13 2.8h-7.8c-.5-.9-2.6-4.4-4.9-4.4-2.6 0-4.5 4.4-4.5 4.4h-17.8s-.6 4.6 8.4 5.5a10.8 10.8 0 005.4 4c-1.2 1-1.5 2.2-1.5 3.8z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M544 197.6h16m-23.3-9.4s1.3 7.5 7.2 9.3"/>
+    <path fill="url(#i)" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M66.3 170.5c.5-2.1 1.3-2.5 2.2-5.2.1-2.7-2.2-2.4-1.5-4.1 1.2-1.9.6-3.6-1.6-5 .4 2.4-3 4.7-3 6.7s1.8 1.6 1.6 4.6c0 1.8-.5 1.3-.6 3h3z" transform="translate(448 -37.4) scale(1.3225)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M555 170.4a2.3 2.3 0 11-4.5 0 2.3 2.3 0 014.5 0z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.7" d="M539.2 223.6l12.3-18.1 12.4 18.2"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M554 216.8a2.5 2.5 0 11-4.9 0 2.5 2.5 0 015 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M541.5 237h19.1s.3-2.4-2-4c10-1.3 7.5-10.1 15.9-10.6 1.6.2-4.4 3.7-4.4 3.7s-5 3.6-2.8 5.4c1.9 1.5 2.7-.9 2.9-2.6.3-1.8 8.2-2.9 7-8-1.9-4-12.9 2.9-12.9 2.9h-7.8c-.5-1-2.7-4.5-5-4.5-2.6 0-4.5 4.4-4.5 4.4h-17.8s-.6 4.6 8.4 5.5c2 2.7 3.6 3.4 5.4 4-1.2 1-1.5 2.2-1.5 3.8z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M542.9 233.2l16-.1m-23.3-9.4s1.3 7.5 7.1 9.3"/>
+    <path fill="url(#j)" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M66.3 170.5c.5-2.1 1.3-2.5 2.2-5.2.1-2.7-2.2-2.4-1.5-4.1 1.2-1.9.6-3.6-1.6-5 .4 2.4-3 4.7-3 6.7s1.8 1.6 1.6 4.6c0 1.8-.5 1.3-.6 3h3z" transform="translate(446.9 -1.9) scale(1.3225)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M553.8 206a2.3 2.3 0 11-4.5 0 2.3 2.3 0 014.5 0z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.7" d="M537.6 260l12.4-18.2 12.4 18.2"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M552.4 253.2a2.5 2.5 0 11-4.9 0 2.5 2.5 0 015 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M540 273.3h19s.4-2.4-2-4c10.1-1.3 7.5-10.1 15.9-10.6 1.6.2-4.4 3.7-4.4 3.7s-5 3.6-2.8 5.4c1.9 1.5 2.7-.9 3-2.6s8-2.9 7-8c-2-4-13 2.8-13 2.8H555c-.5-.9-2.7-4.4-5-4.4-2.6 0-4.4 4.4-4.4 4.4h-17.8s-.6 4.6 8.4 5.5a10.8 10.8 0 005.3 4c-1.1 1-1.5 2.2-1.5 3.8z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M541.3 269.4h16M534 260s1.3 7.4 7.2 9.2"/>
+    <path fill="url(#k)" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M66.3 170.5c.5-2.1 1.3-2.5 2.2-5.2.1-2.7-2.2-2.4-1.5-4.1 1.2-1.9.6-3.6-1.6-5 .4 2.4-3 4.7-3 6.7s1.8 1.6 1.6 4.6c0 1.8-.5 1.3-.6 3h3z" transform="translate(445.3 34.4) scale(1.3225)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M552.2 242.3a2.3 2.3 0 11-4.5 0 2.3 2.3 0 014.5 0z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.3" d="M539.2 367.3l12.3-18.2 12.4 18.2"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M554 360.5a2.5 2.5 0 11-4.9 0 2.5 2.5 0 014.9 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M541.5 380.7h19.1s.3-2.5-2-4c10-1.3 7.5-10.2 15.9-10.7 1.6.3-4.4 3.8-4.4 3.8s-5 3.5-2.8 5.4c1.9 1.4 2.7-1 2.9-2.7.3-1.7 8.2-2.9 7-7.9-1.9-4.1-12.9 2.8-12.9 2.8h-7.9c-.4-1-2.6-4.5-4.9-4.5-2.6.1-4.5 4.5-4.5 4.5h-17.8s-.6 4.6 8.4 5.4c2 2.7 3.6 3.4 5.4 4.1-1.2 1-1.5 2.2-1.5 3.8z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M542.9 376.8h16m-23.3-9.4s1.3 7.4 7.1 9.2"/>
+    <path fill="url(#l)" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M814.5 330.3c.6-2.8 1.6-3.3 2.8-6.8.2-3.5-2.8-3-2-5.3 1.6-2.4.8-4.7-2-6.5.5 3.2-3.8 6.1-3.8 8.7 0 2.6 2.2 2 2 6 .1 2.2-.6 1.7-.8 3.9h3.8z" transform="translate(-301.5 28.3) scale(1.0265)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M553.8 349.6a2.3 2.3 0 11-4.5 0 2.3 2.3 0 014.5 0z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.7" d="M539 331.4l12.3-18.2 12.4 18.2"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M553.8 324.6a2.5 2.5 0 11-4.9 0 2.5 2.5 0 015 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M541.3 344.8h19.1s.3-2.5-2-4c10-1.4 7.5-10.2 15.9-10.7 1.6.2-4.4 3.8-4.4 3.8s-5 3.5-2.8 5.3c1.9 1.5 2.7-.8 3-2.6.2-1.7 8-2.9 7-7.9-2-4.1-13 2.8-13 2.8h-7.9c-.4-1-2.6-4.5-4.9-4.5-2.6 0-4.5 4.5-4.5 4.5H529s-.6 4.5 8.4 5.4c2 2.7 3.7 3.4 5.4 4.1-1.2 1-1.5 2.2-1.5 3.8z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M542.7 340.9h16m-23.3-9.4s1.3 7.4 7.2 9.2"/>
+    <path fill="url(#m)" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M66.3 170.5c.5-2.1 1.3-2.5 2.2-5.2.1-2.7-2.2-2.4-1.5-4.1 1.2-1.9.6-3.6-1.6-5 .4 2.4-3 4.7-3 6.7s1.8 1.6 1.6 4.6c0 1.8-.5 1.3-.6 3h3z" transform="translate(446.7 105.8) scale(1.3225)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M553.6 313.7a2.3 2.3 0 11-4.5 0 2.3 2.3 0 014.5 0z"/>
+    <path fill="none" stroke="#f7c600" stroke-width="1.7" d="M434.7 298l12.3-18.1 12.4 18.1"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M449.5 291.2a2.5 2.5 0 11-4.9 0 2.5 2.5 0 014.9 0z"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M437 311.4h19.1s.3-2.4-2-4c10-1.3 7.5-10.2 15.9-10.7 1.6.3-4.4 3.8-4.4 3.8s-5 3.6-2.8 5.4c1.8 1.4 2.6-1 2.9-2.7s8.1-2.8 7-7.9c-1.9-4-12.9 2.8-12.9 2.8H452c-.5-1-2.6-4.5-4.9-4.5-2.6.1-4.5 4.5-4.5 4.5h-17.8s-.6 4.6 8.4 5.4a10.8 10.8 0 005.4 4.1c-1.2 1-1.5 2.2-1.5 3.8z"/>
+    <path fill="none" stroke="#000" stroke-width=".8" d="M438.4 307.5h16M431 298s1.2 7.5 7.1 9.2"/>
+    <path fill="url(#n)" fill-rule="evenodd" stroke="#000" stroke-width=".6" d="M66.3 170.5c.5-2.1 1.3-2.5 2.2-5.2.1-2.7-2.2-2.4-1.5-4.1 1.2-1.9.6-3.6-1.6-5 .4 2.4-3 4.7-3 6.7s1.8 1.6 1.6 4.6c0 1.8-.5 1.3-.6 3h3z" transform="translate(342.4 72.5) scale(1.3225)"/>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width=".8" d="M449.3 280.3a2.3 2.3 0 11-4.5 0 2.3 2.3 0 014.5 0z"/>
+    <g stroke="#000">
+      <path fill="#f7c600" fill-rule="evenodd" stroke-width=".8" d="M500.7 384.2s5 11.5 10.7 4.4 3.6-10.1 3.6-10.1l-12.7-7-3.8 8 2.2 4.7z"/>
+      <path fill="#ffc6b5" fill-rule="evenodd" stroke-width=".8" d="M511.7 382.6s.8.2 1.5-1-1.5-1.9-2.5-3.3l-1 2.3 2 2zm-28.9-3l-11.2 6.1s-5.6 1.1-6 0c-.4-1.1.2-2 3-2.2 3-.2 10.9-7.4 10.9-7.4l3.3 3.5zm.2-199.7l.4 4c.1 1.4-2.2 4.4-2.4 4.2s-1.2.2-1 1 1.7 1.1 1.7 1.1-.7 3 0 3c.7.2-1.8 3.8 0 4.8s4.9 2.2 6.3 2c1.4-.4 0 5.3 0 5.3l-4 8.3 21.5-2.2-4.5-7s-2-1.4-1.5-5.5c.6-4-.3-22.2-.3-22.2l-15.2-2-1 5.2zm-4 31.7s-6.9 3.2-6.6 11.8c-1.8 8.3-2.7 16.6-2.7 16.6s-8.2 9.3-10.7 12.6-6.3 10.2-7.7 12-6.8 7.7-6.6 10c.1 2.2-1.3 12 4.1 13.1 1.4.6 5.9-11.3 5.9-11.3s.2-5.2-1.3-6.1 3.3-4.3 3.3-4.3l11.4-8.5c2.1-1.7 7.8-8 7.8-8l3.2-38z"/>
+      <path fill="#fff" fill-rule="evenodd" stroke-width=".8" d="M487 205s1.8 4.9 5.8 4c4-.8 8.8-4.5 8.8-4.5s3.7-.1 4.3.4c.5.6 10.1 9.9 9.8 12.8-.3 2.9-4.4 2-6 4s-4 6.8-3.3 10.4 2.8 8.3 2.5 10.1-1.8 2.4-1.8 3.4 1.3 2.6 1.3 4.4-1.7 4.4-1.4 6.3c.3 1.7.4 7 .4 7l-.4 24.4s1.4.9 1.5 2.3c.1 1.4 9.4 41.7 9.4 41.7s-.4 1.3-1.4 1.1 3.8 6.3 4 8 4.8 16 4.7 18c-.2 2-.9 6.2-1.3 6.4-.4.1 3 8.9 2.5 10.2-.6 1.4-6.2 1.3-6.2 1.3l-1.6-.3s.2 1.8-1 2-9.2-.5-9.2-.5-2.4 3.6-3.8 3.5c-1.4-.1-3.2-2.6-3.6-2.2-.4.4 1.3 2.8.8 3.5-.4.7-7.5 2.2-8.8-1.2-1.4-3.3.8-2.5.4-3.2-.4-.6-3.6-2.4-4.6-1.9s2.5 1.4 2.4 2.8c-.2 1.4-3 3.5-4.2 3.5s-3.8-5.2-7.6-4.6c-4 .5-6.4 1.5-6.4 1.5s-4.6 2-6.5 1.5c-2-.4-2.8-2-2.8-2.8 0-.8 1.4-4.4 1.2-5.5s-1.2-2.2-1.2-3.9c0-1.6 3.2-7.3 3.2-7.3l-.2-25.6s-2.9 0-3-1.8 4.4-40.4 5.1-42.9c.7-2.5 2.5-11.3 2.5-11.3s-2 1-2.2 0 6.2-23 6.2-23 1.1-11 1.1-14c0-2.9-.5-6.9-.5-6.9s-5.7-2.4-5.8-6c-.6-6 5.4-9.2 6-11.2l2.8-7.8s3.1-5.2 8.1-6z"/>
+      <path fill="#f7c600" fill-rule="evenodd" stroke-width=".8" d="M485 381.3s-13.5 7-15.5 7.6c-2 .6-3.2-2.4-1.2-3 2-.5 5-.8 5-.8s-4.6-3.6-4.5-3.7l6.4-2.4c.1 0 2 3.6 3.2 3.4s4.9-3 4.9-3l1.6 1.9z"/>
+      <path fill="#ffc6b5" fill-rule="evenodd" stroke-width=".8" d="M503.9 385.1c1.3 1.7 1.8 4.5 4.7 2.9s-1.5-4.8-1.5-4.8l-3.2 2zm5.3-.2s1.4 1 2.6-.2-2.5-3.9-2.5-3.9l-1.8 2.1 1.7 2z"/>
+      <path fill="none" stroke-width=".8" d="M505 210.5s-12.3 7.9-12 10.6m14.8-9.3L505 215m6.7.3s-6.1 5-5.2 8.2m-23.7-13.6s-1.8 3.7-1.4 5c.4 1.2 3.5 6 3.9 8.8.4 3 0 5 0 5m-5.7-11.9s.6 4.4 1.4 5.3c.8.8 3 4.6 3.3 6m-5.8 7.2s3.6 1.8 7-5.2m5.3-4.8c-.1 0-2.6 6.8 1.8 9.3s7.8 2.2 9.8 1.5c1.9-.7 4-2 4-2m-17.5-.5s.3 9.2 13.8 18.2m-13.2-9.6s-.2 8 5.1 11.7m-8-21.1s-4 11.9-7.1 13.1m6-4.4s-.2 8.6-1.3 11.7m-1.1 2s2.8 3.5 5.8 3.2c3-.2 4.3-3.9 6.4-3.3 2 .6 4 2.2 8.9 1.8m-7 3.6s0 7 1.3 7.8.7 7.2.7 7.2m-19-18.5s-.1 6.6-1 9c-.8 2.4-2.5 6.4-2.2 9.8m-5.3 4c.7-.3 3-2.4 3-2.4m1.3 1.5s-6 25.5-4.3 40.8m5.7-39.5s-3 19.1-1.6 22.7m.1-23.3l11.7.8m1.6-1.5s3.2 1.7 7.6 1.4m-9 7.9s-.5 32.7-1.4 40m18.5-32.5s3.6 28.7 5.7 31.3M498 299.4s2.2 25.4 3.4 27.6m-35 8.9s4.4-1.4 8.3-5.6c4.4 6 11.2.3 11.2.3s10.5 7.2 15.3-.8c7.2 4.7 10.8-.7 10.8-.7s2.6 4 4.6 3.6m-11.6 2.8s5.5 25.4 13.5 32.6m-41.3-35.3s.7 21.3 1.9 36.2m-3-12.2s-.6 14-1.4 14.9M468 373s1.5 6 9.2.4 7.7 2 8 3c.3.7 1.5 6.7 4.4 1.7m6.1-8.2s-1.2 12.4 9.8 3.3c11-9 12.7 0 13 2.7"/>
+      <path fill="#9c5100" fill-rule="evenodd" stroke-width=".8" d="M482.6 179.1s3 .4 4.7-.6c1.6-1 3.6-1.4 5 .6s2.3 1.8 2.3 1.8-2 5.1 0 5.7c2.1.6 3 .6 3.2 1.2.2.7-1.8 2.3-1.2 3 .5.6 1.5 1.5 1.6 2 .2.6-1.2 3-.8 3.5.4.6 1.7 2.8 2.5 2.8s.3 3.5 2.8 2.6 2.3-3 2.3-3 2.7-.4 3.4-2.8c.7-2.4 2.3-3 2.3-3s3.4-1.7-1-4.5c0-19.4-12.8-17.4-12.8-17.4s-1.6-3.4-4-3c-2.6.4-2.7 3.3-4.5 3-1.8-.2-2.2-1.5-2.4-1.3-.1.1-1.6 2.9-1.6 3.6 0 .7-4.9-1-4.5 2.6s2.8 3.5 2.7 3.2z"/>
+      <path fill="none" stroke-width=".8" d="M495.9 174.4s-1 6 5.5 5.5c-.8 3.4 1.7 4.5 1.7 4.5m4.8 3.7c.2 0 3 1.8 0 4m-9.4.9s1.4 1.6 3 1.2c1.5-.4 4 1.6 4 1.6s2 .7 2.3.2m-17.7 2.3s4.7 1.8 7.7-5.7m-16.5-2.3l2.8.2"/>
+      <path fill="none" stroke-linejoin="round" stroke-width=".8" d="M481.7 193.1h2.5l-2.2 1"/>
+      <path fill="none" stroke-linejoin="round" stroke-width="1.4" d="M485.2 185.3c.4 0 2-.5 2.2 0 .3.3-1.6.6-2.2 0z"/>
+      <path fill="#ffc6b5" fill-rule="evenodd" stroke-width=".8" d="M515.2 218.3c.1 0 4.5 13.7 5.1 17.2a112 112 0 011.7 19.3c-.7 2-7.8 11.2-8.6 13.6-.9 2.4-5.9 11.4-5.9 11.4s-1.2 8.9-1.8 9.3c-.5.4 1.5 2.6 1.3 3.3-.3.8-4 4.7-5.7 4.3-1.7-.4-4.3-2.4-4.4-4.2s0-7.7 1.3-9.3 7.8-16.9 8.2-17.9c.4-1 6-13 6.1-15 .2-2.2-1.7-7-3.7-8.7-4.3-12.9-2.6-20.6 6.4-23.3z"/>
+      <path fill="none" stroke-width=".8" d="M450.5 277.8l.2 6.1m-5.9-6.5s4 6.5 3.6 10"/>
+      <path fill="none" stroke-linejoin="round" stroke-width=".8" d="M497 291s3-.3 2.9 4.6c1.9-6 5.7-6.2 5.7-6.2"/>
+    </g>
+    <path fill="#f7c600" fill-rule="evenodd" stroke="#000" stroke-width="1.7" d="M487.1 430c58.6-1.7 96.5-44 96-44.4-.4-.4 7.8-11.8 14.3-10.2 6.5 1.6 15.9 20.8 27.3 24.8 5.7 9-1.7 17.1-4.1 18.8-2.5 1.6-13.4 6-15-.4-1.7-6.6-5-5.3-5-5.3s-52 50.8-112.3 48.8c-62.2.4-113.5-48.8-113.5-48.8l-4.5 4.8s-4.9 5.3-7.3 5c-2.4-.5-13-7.4-13.8-14.3-.8-7 6.5-11.4 6.5-11.4s17.9-13.8 20-21.2c4-4 11.7 2.9 11.7 2.9s47.2 54.1 99.7 50.8z"/>
+    <path fill="none" stroke="#000" stroke-width="1.7" d="M354.5 398.5s4.8-1.3 6.6.7c1.8 2 14 14 14 14"/>
+    <path fill="none" stroke="#000" stroke-width="1.7" d="M365.5 404.1l-4.8 3.6s12.2 2.5 9.4 10.5M620.3 398s-2.4-1.3-6.2 1.5a158.5 158.5 0 00-13.4 13.6"/>
+    <path fill="none" stroke="#000" stroke-width="1.7" d="M609.4 403.8l5.3 4s-11 .8-8.6 11.2"/>
+    <path d="M416.5 411.4l-.4.5a3.6 3.6 0 00-2.5-.2c-.7.2-2 .8-3.9 2l-16.1 9.3-.4-.3 4-18.8c.5-2.3.7-3.7.7-4.2s-.4-1-1-1.6l.3-.5 8.7 6.2-.3.5-.3-.2c-.8-.5-1.4-.8-1.8-.8a.8.8 0 00-.8.3 2.4 2.4 0 00-.3.7l-.5 2.3-2.6 11.7 9.3-5.4a26 26 0 002.2-1.4l.8-.8c.2-.2.3-.5.3-.8l-.3-1a5.2 5.2 0 00-1.4-1.3l.4-.5 5.9 4.3m5.8 28l-.3.5-10.2-5.6.3-.5.6.4c.6.3 1.1.4 1.6.4.3 0 .6-.1 1-.4l1-1.7 7-12.8c.6-1 1-1.7 1-2a1.6 1.6 0 00-.3-1 3 3 0 00-1.2-1l-.6-.4.3-.5 10.2 5.6-.3.5-.7-.3a3 3 0 00-1.5-.5c-.3 0-.6.1-1 .4a6.8 6.8 0 00-1.1 1.7l-7 12.9a7.3 7.3 0 00-1 2c0 .3.2.6.4 1 .2.3.6.7 1.1 1l.7.3m37.3-8.8L457 438l-.6-.2a10 10 0 00-1.5-5.7 7.8 7.8 0 00-4-3.2 6.2 6.2 0 00-4.3 0 7.5 7.5 0 00-3.5 2.9 19.4 19.4 0 00-2.4 4.6c-.7 2-1.1 3.8-1.2 5.5s.3 3.1 1.1 4.2a7 7 0 003.4 2.4 8.6 8.6 0 001.6.4l1.8.1 1.6-4.4.4-1.6c0-.3-.2-.6-.5-1a2.8 2.8 0 00-1.2-.7l-.5-.2.2-.6 10.2 3.7-.2.6c-.8-.3-1.4-.4-1.8-.3-.3 0-.7.2-1 .5l-.6 1.4-1.6 4.4c-1.5.1-3 0-4.6-.2a22.8 22.8 0 01-4.7-1 14.1 14.1 0 01-4.7-2.7 13.6 13.6 0 01-2.7-3.3 10.9 10.9 0 01-1.3-3.9 11 11 0 01.6-5.1 11.4 11.4 0 016.2-6.8 12 12 0 019.5-.3c1 .3 2 .8 2.8 1.2l2 1.5a10 10 0 001.5 1.2h1a3 3 0 001-1l.6.2m15.7 25.3v.6l-11.6-1.8.1-.6.8.1a3 3 0 001.6 0l.7-.7c.2-.3.3-1 .5-2l2.2-14.5c.2-1.2.2-1.9.1-2.2a1.6 1.6 0 00-.6-.8c-.3-.3-.8-.5-1.4-.6h-.7v-.7l11.6 1.8-.1.6-.7-.1a3 3 0 00-1.6 0l-.8.7a7 7 0 00-.5 2l-2.2 14.5a7.3 7.3 0 00-.1 2.2c0 .3.3.6.6.8.3.3.8.5 1.4.6h.7m30-7.2l-.5 7.9-19.8 1v-.6h.7a3 3 0 001.6-.5c.3-.2.5-.4.6-.8v-2l-.7-14.7a7.3 7.3 0 00-.3-2.1c-.1-.3-.4-.5-.7-.7-.4-.2-1-.3-1.5-.3h-.8v-.6l11.9-.6v.6l-1 .1a3 3 0 00-1.5.4c-.3.2-.5.5-.6.8-.2.3-.2 1-.1 2.1l.7 14.2c0 1.1.2 1.8.3 2.2.2.3.4.5.8.6h3.9a6.3 6.3 0 002.9-.8 5.5 5.5 0 002-2c.4-1 1-2.4 1.4-4.1h.6m21.6-3.8l-7.5 2.2-.3 2.4v1.8c.3.6.6 1 1.2 1.1.3.1 1 0 2.2-.2l.2.6-7.1 2-.2-.5a3.3 3.3 0 001.6-1.5c.4-.7.6-2 .9-3.8l2.5-19.3h.3l13 15.1c1.2 1.5 2 2.3 2.7 2.6.4.2 1 .3 1.7.1l.1.6-10.3 3.1-.2-.6.5-.1c.8-.3 1.4-.5 1.6-.9a.9.9 0 00.1-.8 2 2 0 00-.2-.6l-.8-1-2-2.3m-.9-1l-5.3-6.4-1.1 8.3 6.4-2m28.5-29l2.9 5.4-.6.3a9.3 9.3 0 00-2.4-2.1 4.5 4.5 0 00-2.2-.5 5 5 0 00-2.1.8l-1.5.8 8.2 15.1 1.1 1.8c.3.2.6.3 1 .3.5 0 1-.1 1.5-.4l.7-.4.3.6L551 442l-.3-.5.7-.4a3 3 0 001.2-1l.2-1c0-.3-.3-1-.8-2l-8.2-15-1.4.7c-1.3.7-2.1 1.5-2.4 2.4a6.3 6.3 0 00.2 4.2l-.6.3-2.8-5.4 17.6-9.4m13.4-8l5.4 7.3.4-.3c1.1-.8 1.7-1.8 1.6-2.9s-.5-2.4-1.4-3.9l.5-.3 7 9.3-.4.4a8.6 8.6 0 00-2.6-2 3.5 3.5 0 00-2.1-.4c-.7 0-1.4.4-2.2 1l3.7 5a9.6 9.6 0 001.5 1.8l.9.2c.3 0 .7-.3 1.3-.6l1-.8a8 8 0 003.1-4.2 8 8 0 00-.5-5.2l.5-.3 3.5 6.2-15.4 11.6-.3-.5.6-.4c.5-.4.8-.8 1-1.2v-1a6.8 6.8 0 00-1-1.8l-8.9-11.7-1.2-1.4a1.6 1.6 0 00-1-.4c-.5 0-1 .3-1.6.7l-.6.4-.4-.4 14.9-11.3 4 5.3-.6.4a7.8 7.8 0 00-3.1-2 5 5 0 00-2.9.2c-.6.2-1.6.9-3 1.9l-1.7 1.4"/>
+    <path fill="none" d="M380.5 413c72.8 59.1 144.2 60.2 214 0"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/vi.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/vi.svg
new file mode 100644
index 0000000..db0e62c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/vi.svg
@@ -0,0 +1,28 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-vi" viewBox="0 0 640 480">
+  <path fill="#fff" d="M0 0h640v480H0z"/>
+  <path fill="#369443" stroke="#010002" stroke-miterlimit="10" stroke-width="1.5" d="M204.3 315s-.5-3.6 6.2-6.1c6.6-2.6 7.2-12.2 5.8-18.6 0 0-3.4 6-7.7 8.1 0 0-6.8 3.6-7.2 10.4 0 0 0 2.5-.5 4.5-.3 1-3.4-8.6 2.4-15.8 6-7.3 7.6-13.3 2.9-25 0 0-.5 7-5.1 11.1-4.7 4-5.3 4.4-5.2 14 0 0 0 3.4-1.7 4.5 0 0-3.6-5.3-4.6-8.8-1-3.5-1.4-5 2.8-9 0 0 13.2-8.7 3.7-27.4 0 0-.3 6.4-5 10.2-4.5 3.9-4.2 6.4-4.4 13-.2 6.7-.6 6.2-1.1 7.2 0 0-8.5-15.6-2-23.8 6.5-8.3 10.2-10 3-25.4 0 0 .3 8-5.5 11.8-5.7 4-4.4 13-4.4 13s.4 3.5-.8 6c0 0-8.1-15.9-.4-24.4 6.6-7.3 7-12.4 3.5-22.6 0 0-.4 4.7-4 7.3-3.7 2.6-6.6 5.1-5.9 15 0 0 .3 7-.6 9 0 0-3.4-6.4-4.4-10.5-1-4.2-1.3-6.6 1.2-10.7s12.5-16 .6-33c0 0-.3 5.5-3.4 10.5-3 5-1.6 10.9-1 15.4.7 4.5-1.5 8.9-1.5 8.9s-5.2-9.5-4-20.4c1-11-3.4-20-13.5-26.4 0 0-7.3 17 2.7 25.7 0 0 8.5 8.4 10.7 18.6 0 0-6.5-.6-12.3-12-5.9-11.4-18-9.6-18.8-9.7 0 0 2 17.6 20.6 22.6 0 0 12 2 14.2 10.8 0 0 2 6 2.8 9.2 0 0-3.8-1.5-7.3-6.7-3.5-5-3-5.7-14.8-6.9 0 0-4.7-.5-7.2-3.9 0 0 5 18.6 17.7 18.5 0 0 11.6-1.3 18 14l-2.9-2c-1.7-1.1-6-3.3-14.5-2.3s-10.9-.4-13-1c0 0 8.6 15.7 20.7 11 12.2-4.7 18 12.4 18.2 12.7 0 0-1.7-1.2-3.8-3.3-2.2-2.1-6.6-4.7-15-2 0 0-6.1 2.3-12.3.4 0 0 6 11.5 19.8 9.5a15.1 15.1 0 0117.3 10.2s-1.8-1-3-2c-1.3-1-6-3.7-16-.8-10 3-13.6-.4-13.6-.4s5.5 10 16.2 11.3c0 0 6-.1 8.4-1 2.5-1 9.2-2.5 13.8 4.2 0 0-1.3.2-3.2-.7 0 0-7-2.5-12.5 2 0 0-4.8 4.9-11.6 4 0 0 8.8 8.5 22.8 1.3 0 0 4.7-3.4 8.2-.8 3.5 2.7 11.5-2.6 11.5-2.6z"/>
+  <g fill="#f4c53d" stroke="#010002" stroke-miterlimit="10" stroke-width="1.5">
+    <path d="M282.2 103.7s-1.6-14.5 10-16a38 38 0 0118 1.2l5.5 10.6-2 7.2-7.4 3.4s1.3-11-8.8-11.2c-2.6 0-4 1-8.1.3s-6.3 3.8-7.2 4.5z"/>
+    <path d="M363.8 139.6c-1.8 2.2-8.7 3-8.7 3s7.1 5.5 10.2 13.3c3 7.7-82.4 0-82.4 0s3.8-2.6 6.3-7.6c0 0-3.8 1.4-7.6-2.4 0 0 2.8 1 6.5-4.6 0 0 5.5-7 9.4-9 0 0-1.8 1.2-6.1-1.2 0 0 7.4-1 10-13.5 0 0 .5-2.8 3.3-7 2.8-4 2.2.9 7.4-5.4 0 0 2.4-4.4.3-7-2-2.8-4.3-1.8-8.6-4.4-4.4-2.6-6.3-4-4.8-8s5.3-3.4 5.9-3.4.8-3.5 5.5-5.9 17.4-1.3 19.2-.3c2 1 9.5 3.3 14 14.5 4.4 11.2-1.2 15.4 10.8 32.4 0 0-4.8 1-7.9 0 0 0 6.3 11.2 17.3 16.5z"/>
+    <path fill="none" d="M311 92.2c-10-.5-6.1-9.8-6.1-9.8"/>
+    <path d="M328 93.5s-1.7-.8-3.2-2.8c-2-2.7-6.7-4-9.1-1.4 0 0-2.5 2.8-4.8 3 0 0 2.6.7 4.3 2.3 1.7 1.6 3.5 2.8 6.1 2.4 2.6-.3 3-1.7 4.2-2.5 1.3-.8 2.5-1 2.5-1z"/>
+  </g>
+  <path fill="#369443" stroke="#010002" stroke-miterlimit="10" stroke-width="1.5" d="M202.8 336.5s-.2-6.4 7.8-6.8l23.5 32.7s-.9 2.1-11.5 1.9c0 0-1.2 0-1.8 1.2-.9 2-18-29-18-29z"/>
+  <g id="a" fill="#f4c53d" stroke="#010002" stroke-width="10" transform="translate(3.6 26.2) scale(.15055)">
+    <path d="M1495 1807.9s-49.9 85.6-110.2 87c0 0-103.7-12.6-133 14.5-20.5 18.9-41.4 34.5-50 82.8-8.4 48.3 16.5 58.7 22.4 60.8 0 0 4.6 34.5 38.7 25.5 0 0 2 36 62.2 18.7 60.3-17.3 85.3-11.8 97-71.8 11.9-60.1 22.8-59.1 33.5-66.3 14.4-9.7 41.5-18.8 61.6-30.4 18-10.4 87.2-45.6 110.8-48.3 23.6-2.8 18.4-82.2 18.4-82.2h-61l-29.5-43.5-61 53.2zm192-429.4s-61 49.7-112.2 0c0 0-20.6 24.8-62 17.6-41.2-7.3-48.1-29-52-41.4 0 0-35.8 20.8-66 4.3-30-16.4-30-41.3-30-41.3s-52.5 10.4-79.4-25.2c-26.9-35.5-10.5-70.7 4-74.9 0 0-56.7 14.9-72.2-33.8a56 56 0 0116.4-62.8s-119.4-.6-168.4-38c0 0-40.7-25.6-16.4-52.5 0 0-107.5-17.2-134.4-60 0 0-11.8-11.8-7.9-32.5 0 0 .7-11.7 12.5-12.4 0 0-122.6-19-158-59.4 0 0-17-18.6-8.5-43.5 0 0 1.8-6.5 4.7-11 0 0-111.6-23.5-166.6-73.2 0 0-31.8-28.3-15.4-66.3 0 0-186.5-51-143.3-133.2 0 0-87.2-28.3-59.6-107 0 0-72.1-36.6-40.7-94.6 30.1-55.5 122.6 9.7 232 40 0 0 296.4 93.2 442.3 118l414.6 617.3 241.9 93.2 24.5 172.6z"/>
+    <path d="M1689.9 923.9s-38.9-29.2-108.2 5.1c0 0-23.3 16.1-41.7-1.5a37.3 37.3 0 014.3-57.5c51.7-38.3 70.8-153.2-7.8-200.9 0 0-114-67.6-532.3-174 0 0-35-9.8-53.8-5.1a52 52 0 00-37.6 37.8S894 581.1 957 611.6c0 0 28.4 13 57.7 21.4 0 0-32.2-7-46 24.8-13 30.4 6 61.5 65 81.5 0 0 16 6.2 38.7 11.7 0 0-50.5 14.5-26.2 55.3 0 0 21.6 42.8 98 50.4 0 0-57 6.2-16.8 60.4 0 0 17.7 29.7 73.4 40.7 0 0-42.2 1.4-21 39.3 21.4 38 71.5 59.4 120.9 62.9 0 0 26.7 1.4 45.4-2.8 0 0-47 23.5-19.4 62.8 0 0 20.3 28 71.1 26.6 0 0-13.1 44 24.1 60.6 29 13 53.1-7.8 53.1-7.8s-9.8 47.1 32.5 63.7c0 0 21.1 10.9 52.6 0 0 0 24 53.9 109.6 16 85.6-37.7 20.2-355.1 20.2-355.1zm5 489.4s-12.5 67.4-112 152.2c0 0-76.8 67.7-74.9 145.7 2 79.5-13.7 88.4-43.9 115.3 0 0 62.3 4.9 92.4-36.6 0 0-1.3 69-10.5 75.3 0 0 19.6 1.2 47.9-29.7 0 0 17-18 32.8-24.9 0 0-18.4 47.7-4 91.9 0 0 4.6-17.3 28.9-24.9 0 0 44-9 61-72.5 0 0 11.1-42 80-79.4 0 0 78-29.4 76-67.8-2-38.5-173.6-244.6-173.6-244.6z"/>
+    <path stroke-miterlimit="10" d="M2056.5 2282.2s-17.9 78.8-80 72.5c0 0-43.9-4.2-40.6-77.4 0 0-64.9 34.6-75.4-51 0 0-59 13.7-58.3-66.3 0 0-55 9.6-48.5-61.5 0 0-59.7 16-59.7-51 0 0-139.6-23.2 151.4-288.6l259.6 154.6-48.5 368.7z"/>
+    <path d="M2085.4 1928.3s-43.3 38.4-74.1-19c0 0-42-2-48.5-33.8 0 0-34.1-3.4-40.7-35.9 0 0-46.5-4.8-45.2-44.1 0 0-84.6-6.6 0-102.4 84.6-95.8 228.1 159 228.1 159l-19.6 76.2zm48.2-23.8c42 0 89.5 262 77.2 419.9-4.5 57.3-35.2 104.1-77.2 104.1s-72.6-46.8-77-104.1c-12.4-157.9 35.1-419.9 77-419.9"/>
+    <ellipse cx="2133.6" cy="1902.5" rx="58" ry="86"/>
+    <path fill="none" stroke-miterlimit="10" d="M1935.9 2277.3s6.6-138.7 126.8-337.6m-202.2 286.6s-18.7-80.1 150.8-317c0 0-19.7-56.5 40.6-92.8M1802.2 2160s-5.3-86.7 160.6-284.5c0 0-14.7-51 45.4-91.8m-254.5 314.8s6.2-87.6 168.4-258.9c0 0-8-52.4 50-84.9m-278 292.8s11.7-100.1 182.8-252c0 0-5.9-39.4 51.1-79.4"/>
+    <path fill="none" d="M372.3 432s134.3 77.8 552.9 155.6M431.9 539S795.6 657.6 965 672.2m-389.9 0s213.4 67 463.3 109.3m-281.2 30.3s241 57.9 356.2 67.5M919 925.6s203.9 42.5 255.5 47.6m-125.7 57.3s148.8 22.6 208 21.4m-23.2 69s60.2-2.8 89.1-7.6m-33.4 104.3s51.2-13.8 81.3-33.1m-5.9 133.2s39.4-15.2 58.4-56.6m37.7 93.6s30.4-27.3 32.4-57.7m81.6 81.5s-11.4-9.9-3.6-52.7m-11.1-62.8s-6-12.2-4-31.6m-211-581.3s68.8 27.6 91.7 65.6c23 38 7.9 74.9 0 96-3.9 10.7-52.4 104.2 4.6 171.9M1346 1057s.4-.3 24.6-8m-169.8-91.4s41 8.2 81.3 8.6m-138-109.8s48.2 4.9 93.5 4.2m-165.2-109.8s69.5 13.8 106.8 14.5M1014.7 633s85.7 24.4 149.4 33.1m141.6 50.4s-61.6 57.3 12.5 110.5c0 0-30.8 48.3 30.8 98.7m-16.4 23.8s-9.2 92.2 103.6 92.2c0 0-21.7 82.1 87.2 79.4 0 0 12.4 65.6 91 52.4M1441.3 1895s-17.9 4-56.6 0m-108.8 48.3s-54.4-8.3-51.8 109.8m84.6-82.9s-49.2-6.2-46 108.4m520.7-384.5s-23.6 4.8-40 23.5c-16.3 18.6-47.8 15.1-47.8 15.1s17-13.8 23-48.3c5.8-34.5 24.9-44.9 24.9-44.9m-56.3-32.6s-23.6 4.8-40 23.4c-16.4 18.7-47.9 15.2-47.9 15.2s17-13.8 23-48.3c5.9-34.5 24.9-44.9 24.9-44.9m23.7 188.5s-20.6 4.3-34.9 20.5c-14.3 16.3-41.8 13.3-41.8 13.3s15-12 20-42.2c5.2-30.1 21.8-39.2 21.8-39.2"/>
+  </g>
+  <use width="100%" height="100%" stroke="#010002" stroke-width="10" transform="matrix(-1 0 0 1 647.2 0)" xlink:href="#a"/>
+  <path fill="#0081c6" stroke="#010002" stroke-miterlimit="10" stroke-width="1.5" d="M466 256l-14.3 61.7-5.9-4.2 14-59.2-9.8.2 23.1-42.3 1.5 48.7zm37 13l-43 50.8-4.6-5.2 42.8-50.2-8.7-4.6 39.2-26-20.3 43.8z"/>
+  <path fill="#0081c6" stroke="#010002" stroke-miterlimit="10" stroke-width="1.5" d="M492.6 242l-38.5 74-5.9-3.5 38.7-73.8-9.4-2.4 32.7-34.6-10.5 47.5zm-48 96.6l-2.9 11.7 8 8-11.2 47-10-13.3-14.6 6.8 11.1-47 10.4-3 2.6-11.7s3.2-1.2 6.6 1.5z"/>
+  <path fill="#0081c6" stroke="#010002" stroke-miterlimit="10" stroke-width="1.5" d="M447.3 330.8l-5.7 10.6 5.7 9.7-22.4 42.5-6.3-15.6-15.9 2.6 22.4-42.4h10.7l5.5-10.6s4 0 6 3.2z"/>
+  <path fill="#0081c6" stroke="#010002" stroke-miterlimit="10" stroke-width="1.5" d="M448.2 333.9l-15 19.2 3.4 10.8-30.9 36-2.8-16.6-16-1.2 30.8-36 10.4 2.5 16-20.4s4.4 2.2 4.1 5.7zm-382.7-45c3.6-1.5 6.2-2.9 6.2-6.7 0-1-.5-3-1.5-6.1L46 202a59 59 0 00-3-7.9c-1.1-2-3.2-2.9-6.1-4h30.7c-3.3 1.5-6.4 2.7-6.3 6.3 0 1.3.4 3.2 1.1 5.7l18.6 58 18.5-58a20 20 0 001.1-5.7c0-3.7-3.2-5-6.3-6.4h29.8c-2.7 1.1-5 2-6 4.1a63 63 0 00-3.1 8L90.8 276a37.9 37.9 0 00-1.5 6.1s-1.1 4.7 6.2 6.7h-30zm515.3-7.6v-83.7c0-1.4-.3-2.5-.8-3.3s-2.5-3-5.5-4.2h27.7a11.5 11.5 0 00-5.5 4.2c-.5.8-.7 1.9-.7 3.3v83.7c0 1.5.2 2.6.7 3.4.5.8 2.5 2.8 5.5 4.2h-27.7c3-1.4 5-3.4 5.5-4.2.5-.8.8-1.9.8-3.4z"/>
+  <path fill="#fff" stroke="#010002" stroke-width="1.5" d="M324.8 309.8S399 276.9 399.1 201H250.5c.2 76 74.3 108.8 74.3 108.8z"/>
+  <path fill="#a60032" stroke="#010002" stroke-width="1.5" d="M262 201v48.5s5.6 11.3 11.4 18.3V201H262zm22.8 0v80s7.2 7 11.4 10.4V201h-11.4zm22.9 0v98.9s8.1 5.2 11.4 7v-106h-11.4zm80 0v48.5s-5.7 11.3-11.5 18.3V201h11.5zm-22.9 0v80s-7.1 7-11.4 10.4V201h11.4zm-22.8 0v98.9s-8.2 5.2-11.5 7v-106H342z"/>
+  <path fill="#162667" stroke="#010002" stroke-miterlimit="10" stroke-width="1.5" d="M399.1 145.8s-36.4 19-74.3-1.6c-37.9 20.6-74.3 1.6-74.3 1.6V201h148.6v-55.2z"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/vn.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/vn.svg
new file mode 100644
index 0000000..3fc2279
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/vn.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-vn" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="vn-a">
+      <path fill-opacity=".7" d="M-85.3 0h682.6v512H-85.3z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#vn-a)" transform="translate(80) scale(.9375)">
+    <path fill="#ec0015" d="M-128 0h768v512h-768z"/>
+    <path fill="#ff0" d="M349.6 381L260 314.3l-89 67.3L204 272l-89-67.7 110.1-1 34.2-109.4L294 203l110.1.1-88.5 68.4 33.9 109.6z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/vu.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/vu.svg
new file mode 100644
index 0000000..a773285
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/vu.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-vu" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="vu-a">
+      <path fill-opacity=".7" d="M0 0h682.7v512H0z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#vu-a)" transform="scale(.9375)">
+    <g fill-rule="evenodd">
+      <path d="M0 0l347.4 219.4H768v73.2H347.4L0 512V0z"/>
+      <path fill="#ff0" d="M0 493.7L354.7 267H768v-22H354.7L0 18.3v32.9L332.8 256 0 460.8v32.9z"/>
+      <path fill="#40aa40" d="M0 512l354.7-226.7H768V512H0z"/>
+      <path fill="#ce0000" d="M0 0l354.7 226.7H768V0H0z"/>
+      <path fill="#ff0" d="M95.8 266.6c1.2.3 1.6.6 2.8-1.1.2-1 1-2.2 1.7-3.3.8-1.5 1.2-2 2-1 .6.7 2.8-.5 3.6.1 1.4 1 .6.8 1.7-.2.9-1.8.1-1.6-1-2.4-1-.6-3.1.6-4 0 .3-1.8.9-2 2-2.4.8.5 3.1-.4 3.8-.4 1 .2 2 .3 2.3-1.2.5-1 .3-.3-.2-1-.8-.7-3 .5-3.9 0-1-.9-.9-1.2-.2-2.6.8-.5 1.5-.3 2.6.4 1 .8 2.8-.7 3.8-.8.9-1 1.9-1.3 1.2-2.5-.3-1-.6-1-1.8-1.3-1.2-.8-2.8.7-3.3-.5 1-1.4 1.3-1.1 2.5-.3.8.2 3-1.1 3.8-1.2 1.1-.3.6 1 1.4-1.8-.3-1.2-2.3.7-3.4.4-1 .2-2-.2-2-1.4 0-1.5.8-1.6 1.9-1.4 1 .2 3.1-1 4-1 1 .6 1.5.4 2.4-1 .6-1.7-.1-1-1.3-2-.8-.5-3 .7-3.9.1.2-.6.5-1.4 1-1.7.9.2 1.6.2 2.7.8 1 .5 2.8-1.5 3.7-2.2-.2-1-2 .4-3-.3-.6-.5-1.5-1-1.7-1.5.6-1.7.3-1.6 2-1 .8-.3 2.3-.3 1.3-1.9-.2-.2-1-.2-1.8-.5-.9-.6-1.7-1.3-2.7-1.5-.7-.1-1.7-.4-2.2-.2 0 1 .2 1.6.1 2.8.5.7 1.3.7 1.5 1-.9.8-1.4.4-2.3.4-1.2-.7-.5-3.1-1.9-2.6.3.7.2 3.4.8 4 .6.4 1.4.8 1.5 1.3-1 1.5-1.3 1.4-2.5.7-1-.6-.6-2.8-1.5-2.7-1 .8-1 .7-.8 1.8 0 1.4-.5 3.4.7 4.2 1.3 1 1.5.8.4 2.7-.7.9-1.1.7-2 .3-.9-.6-.7-3-1.4-3.7-1.4-.8-.6-.8-1.7.2-.3 1.3 0 1.6.5 2.7.4.7.4 3 1.2 3.2 1.2.7 1.3.6-.2 2-1 0-1.6.3-2.4-.7-1-.8-.4-3.2-1.7-3.2-1.2.1-1.5.1-1.4 1.8.3 1.5-.3 3.8.9 4.7 1.1.5 1.8.4 2.2 1.1-.4.3-1 1.3-1.4 1.5-.8 0-1.6-.5-2.5-.7-1-.5-.5-1.4-1.4-2-1 .3-1-1-1.5.3.2 1.2-.2 2.6 1 3.4.8.5 1.5 1.7 2.4 2.3 1 1.2.6 1.4 0 3-.9.1-1.8-.5-2.7-1-.9-.7-.7-3-1.6-3.5-.7-.8-.5-1.4-1.7.2 0 1 .1 1.2.4 2 0 1-.2 3.2.8 3.9 1 .2 2.2.7 3 1 .8 1 .1.8-.8 2.2-.5 1.4-.5 1.7-1.4 2.4-.8 1-1 1.5-.4 2.8z"/>
+      <path fill="#ff0" d="M121 267.9c.7-1.2 1.1-1.4 0-3.4-.8-.7-1.6-2-2.4-3.1-1-1.6-1.3-2.2 0-2.7.8-.3.6-3 1.5-3.7 1.4-1.1 1-.3.5-1.9-1.4-1.7-1.5-.8-2.7.2-1 .7-.7 3.5-1.5 4.2-1.6-1-1.6-1.8-1.5-3 .9-.7.9-3.6 1.2-4.3.6-1 1-2-.2-2.9-.8-1-.2-.4-1-.3-1 .7-.7 3.5-1.6 4.2-1.2.8-1.4.5-2.4-.8-.1-1 .3-1.7 1.4-2.6 1.1-.8.5-3.3.8-4.3-.6-1.4-.5-2.6-1.8-2.4-1 0-1.2.3-2 1.5-1.2 1-.4 3.2-1.8 3.2-.9-1.6-.4-1.8.8-2.8.5-.7.2-3.7.4-4.5.2-1.2 1-.2-1.1-2-1.2-.3-.2 2.6-1 3.6-.3 1.2-1 2-2 1.6-1.5-.6-1.2-1.5-.6-2.5s.3-3.8.7-4.7c1-1 1-1.4 0-3-1.3-1.4-1-.3-2.2.6-1 .7-.7 3.5-1.6 4.2-.5-.5-1-1-1.1-1.8.5-.8.7-1.6 1.8-2.5.8-.9-.4-3.5-.6-4.8-1-.2-.4 2.2-1.5 3-.7.5-1.4 1.2-2 1.2-1.3-1.3-1.4-1-.2-2.5.1-1 .7-2.5-1.2-2-.3 0-.5 1-1.1 1.6-1 .7-1.9 1.3-2.5 2.2-.4.7-1 1.7-1 2.3.8.5 1.5.5 2.6 1 .8-.2 1.2-1 1.5-1.1.3 1.2-.2 1.6-.5 2.6-1.2 1-3.2-.7-3.2 1 .8-.1 3.2 1 4 .7.6-.5 1.3-1.2 1.8-1 1 1.5.8 1.9-.3 2.8-1 .8-3-.4-3.1.5.3 1.4.2 1.4 1.3 1.6 1.3.5 2.9 1.9 4 1 1.5-1 1.5-1.3 2.7.6.6 1.1.3 1.5-.5 2.2-.9.8-3-.4-4 0-1.2 1.2-.9.4-.4 2 1 .8 1.4.7 2.7.5.8-.2 3 .8 3.4 0 1.1-1 1-1.1 1.7 1-.4 1.2-.3 1.8-1.6 2.3-1.1.8-3-.9-3.6.5-.4 1.4-.5 1.7 1.1 2.2 1.5.3 3.4 1.8 4.7 1 .9-1 1-1.8 1.9-2 .1.6.7 1.6.7 2.1-.2.9-1 1.5-1.6 2.4-.8.9-1.5 0-2.3.7-.1 1.1-1.4.6-.3 1.7 1 .2 2.3 1.2 3.4.4.9-.7 2.3-1 3.1-1.7 1.5-.6 1.5 0 2.8 1.2-.3 1-1.2 1.7-2 2.4-1 .7-3-.4-3.9.3-1 .5-1.4 0-.5 1.9 1 .5 1.2.3 2 .3 1 .5 2.8 1.6 3.9.8.6-1 1.6-2 2.2-2.8 1.1-.4.7.2 1.6 1.7 1.1 1.2 1.4 1.3 1.7 2.5.6 1.2 1 1.7 2.4 1.5z"/>
+      <path fill="#ff0" d="M98 314.5c0-5.3-.8-10.6 0-10.6 46.8 0 58.5-32 58.5-53.2S140.3 208 109.7 208c-35 0-46.8 20.8-46.8 42.6A37 37 0 0098 287.9c23.4 0 29.3-5.3 46.8-26.6-5.8 26.6-35 37.2-46.8 37.2-23.4 0-46.8-16-46.8-47.8 0-26.6 17.5-53.2 58.5-53.2 35.1 0 58.5 26.6 58.5 53.2 0 37.2-29.2 63.8-70.2 63.8z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/wf.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/wf.svg
new file mode 100644
index 0000000..9d43586
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/wf.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-wf" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h640v480H0z"/>
+    <path fill="#00267f" d="M0 0h213.3v480H0z"/>
+    <path fill="#f31830" d="M426.7 0H640v480H426.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ws.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ws.svg
new file mode 100644
index 0000000..1b3ecf4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ws.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ws" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#ce1126" d="M0 0h640v480H0z"/>
+    <path fill="#002b7f" d="M0 0h320v240H0z"/>
+    <path fill="#fff" d="M180 229.3l-20.7-14-19.9 14.1 6.5-24.9-19-15.2 24.5-1.5 8.1-23.6 8.8 24 24 .7-19 16.3zm-3.6-165.6L159.8 53l-16 10.4 4.4-20-14.6-12.7 19.4-1.6 7.2-18.6 7.4 18.7 19.1 1.7L172 44.3zm-73 59.5l-16-11-16.7 11 5.2-19.4L60.8 91 80 90l7-19 6.8 18.9 19.6 1.1-15 12.5zM250 110l-15.4-10-15 10 4.4-18.3-14-11.8 18.3-1.5 6.3-17.2 7 17.4 17.7 1-13.7 12.3zm-43.1 43.4l-10.3-6.4-10.3 6.6 2.7-12.3-9.2-8.3 12-1 4.6-11.6 4.9 11.6 11.9 1-9.1 8.3z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/xk.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/xk.svg
new file mode 100644
index 0000000..7e41b1d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/xk.svg
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-xk" viewBox="0 0 640 480">
+  <path fill="#244AA5" d="M0 0h640v480H0z"/>
+  <path fill="#D0A650" d="M253 224.8s1.2-.8 1.6-.9c.5 0 2-.6 2-.6s1-.5 1.5-.5c.6 0 1.6.6 2 1.1.3.5 2 1.4 2 1.4s1.2.4 1.5 0c.2-.4.7-.7 1.3-.7.5 0 .6-.5.6-.9s.2-.9.6-1.4c.5-.5 1.3-.8 1.3-.8s1.2-.5 1.3-1.2c.2-.7 1.3-1.2 2-1.3.7 0 0-.4 1.8-.2 1.7.2 2-.4 2-.9.1-.5 0-1 1.1-1 1.1.2 1.6.2 1.6-.4 0-.6 1-1-.7-1.4-1.8-.5-1.6-.1-1.8-1 0-.7 0-.6-1.1-.7-1.2-.1-.6-.7-.7-1.3-.1-.6-.4-1-.6-1.3-.3-.4-.9-.4-.9-1s-.1-1-.7-1c-.7 0-1 0-1-.5 0-.6.2-1 .8-1 .7 0 1-.6 1-1.2-.2-.6-.2-1.9-.2-1.9l.9-1s2.6-2.1 2.8-2.5c.2-.4 1.1-.7 1.5.1.4.8.6 1 1 1.4.3.4 1.3.1 1.5-.3.2-.4.3-1.9.9-2.7.6-.7 1-1.1 1.1-1.8s.5-1.2 1.2-1.2c.6 0 1-.9 1-1.4 0-.5.4-1 1.2-1.2.8-.1 1.3-.6 1.6.2s.6.7 1.1 1c.6.3 1.4.6 1.8.3.5-.4.7-1 1.3-.7.6.4 1 0 1.2-.7l.3-1.9s.1-.5 1.1-.5.3-.6.8-1c.6-.4.6-.8 1.3-.6.7.3 1.8-.3 1.3-1-.6-.6-1.8-1.6-1.1-2.4.7-.8 1-2 .3-2.2-.7-.1-1.8.1-1.9-.6-.1-.8-.4-1.4.5-1.5.8-.1 2.2-.1 2.7-.5.4-.4 1.8-.7 1.8-1.8 0-1.2.4-1.3.6-2 .1-.6.1-2-.5-2.6-.6-.7-1.4-1.6-1.5-2-.2-.4-.7-1-1.6-1.3-.8-.2-1.6-.4-1.6-1 0-.7.6.1.6-1.6 0-1.7-1.1-2-1.1-2l-1.7-1s-3-.8-3.8-.8-1.8-.8-.9-1.4c1-.5 1.2-1.5.9-2.2-.4-.7-.6-1.3-1.9-1.6-1.3-.3-1.6-.6-1-1.4.5-.7.7-1.3 1.4-.7.6.5 1.8.7 2.7.3 1-.4 1.3-.8 1.8-.3.4.4 1 .8 1.7.2.7-.7 2-.8 2.6-.5.5.4 2 .3 2.4 0 .4-.2 1.4-1 1.4-1.3s.6-1.2 1.1-1.5c.6-.4 1.3-1.4 1.9-1.4.6 0 .8-.7.8-1 0-.5.5-1.4.6-1.7 0-.3 1.2-.8 2 0 .9.5 2 .8 2 .8s1 .2 1.7 0a2 2 0 012.1 0c.9.6 2 .6 2 .6l.3-1.3c0-.4.2-1.2-.3-1.5-.4-.3-1-.7-.1-1.4 1-.6 1-.5 1.9-.5l2.2.1c.7 0 1.8.7 1.8 1.3 0 .6.5 1 1 1.4.6.3 1.3.6 1 1.2-.1.5-.1 1 .6.8.7-.1.9.3.9.9 0 .5.2.8 1 1 .6.2 1 .7 1 1.2s-.2.9 0 1.4l1 1.4s1.3 1.5-.4.7c-1.6-.7-2-1-2.5-1l-1 .5-1.3.2c-.6 0-1.2 1.2-.2 1.4.9.2 1.2.4 1.2 1.2s-.3.5-.8 1c-.4.6-.8.2-1.6.2s-1 .7-1 1.3.3.6.6 1c.4.6 1 .7 1.6.2.5-.5 1-.9 1.3.1.4 1 .9 1 1.5 1 .7 0 1 0 1.6-.4.5-.3 1.2 0 1.3.9.2.8.7 1 1.3 1.3.6.3 1 .5 1 1 .2.6.5.8 1.1.5.6-.4 1.5-.6 1.9-.1l.9 1.2v1.1l2.3.8.2 1c0 .3.4.6 1 .4h1.6s.8-.3.8-1c0-.6.3-.8 1-.8.5 0 1.8.5 2.1-.2.4-.6 1.4-.8 2.2-.5l3 1.2s-.3 0 .4 1.1 2 1.1 2 1.1 0 1 .3 1.4c.2.4 1.3.6 1.8.2.6-.4 1.4-1 2.1-1s1.2 0 1.2-.4-.7-.7-.7-1.4.7-.6.8-1.3c.1-.6.8 0 1.3.4s1 .8 1 1.2c0 .5 1 2 1.5 2.2.6.2 2.1.3 2.6-.2.4-.6 1.6-.8 1.5.5-.1 1.3-.4 1.4.4 1.8.8.4 1 2 .3 2.4-.7.4-1 .5-1 1.2s-.2 1.6.4 2c.6.5 1 .8 1 1.2 0 .5.6 2.4.6 2.4s.4 1.9.2 2.3c0 .5-.3 1.2.7 1.1 1-.1 1.3-.1 1.3.7s.4 1.2-.2 1.5c-.6.4-1 1.4-.4 1.6.6.2 1 .6 1.2 1 .1.4 1 1.2 1.6.7.6-.4.7-.6 1.2-.7.4-.1.8-.4.3-1-.4-.5-.6-1-.1-1.4.5-.3.7-1.3.7-1.3s.7-1 1.5 0 1 .6 1.5.6.8.5.8 1c0 .6 1.2.5 1.2 1.3l.2 3s0 1.1.7 1.5c.7.5.6.6.2 1-.3.6-.2 1.5-.2 2s.2.5-.3 1c-.6.4-.9 1-.5 1.6.3.6.2 1 1.1 1.8 1 .7.9 1 .9 1.6 0 .5.9 1.3.9 1.8s.7 1.2 1.3 1.3 1.2 1 1.2 1.6l.1 1.9s0 .3.6.3c.7 0 1.2.8 1.4 0 .2-1 1-1 1.4-1.3s1.4-.6 1.9-.3 1 .3 1.5.3l2.6.1s.6 0 1 .8c.3.8 1.3 1.8.8 2.2-.6.5-.6 1.3 0 1.3s1.5 0 1.5.5c0 .6 0 1 .7.7.5-.3.9-.4 1.1 0 .3.4.7.4 1.3.7.6.4.8.1 1.2-.3.3-.4 1.7-.8 1.7-.8s1.8-.5 2.5-.3l1.7.7s.4 1 .2 1.7c-.2.6-.5.5-.2 1.5.2 1-.3 1-.7 1-.5-.2-1-.2-1 .7 0 .8-.4 1-.4 1.8s0 .6-.5 1c-.4.3-.6.8.1 1 .7 0 .5.8.5 1.2l-.1 1.4s0 .5-.7.5-1.5 0-1.6.5c-.2.5-1 1.3-.3 1.9.8.5.6.8.1 1-.4.3-.8 1.3.2 1.6.9.4.8.7.2 1.1-.6.4-1.7.8-1.7 1.4s-.3.6-1 .7c-.7.1-1 1-.2 2 .8 1.1 1 1 1.6 1 .6 0 .6-1 .6-1l2.5.2c.6 0 1.4 0 1.9-.3.5-.4 1.7-.9 1.7 0 0 1 .3 1 .8 1.3.6.5.7.1 1.2.8.5.6.6 0 1-.7.3-.7 1-1.4 1.6-.6.5.9.5.6 1.2.6s1 .4 1 .9.6.5 1.5.4c.8 0 .9.5 1.2 1s.5.4 1 .4c.4 0 .9 0 1.2-.4.4-.4.8-1 1.3-.3.5.6 1.4.5 1.6-.2.3-.8 1.3-1.4 1.9-.6.6.9 1 .9 1.6 1 .6 0 1.4 0 1.7.6.4.6 1.5 1.4.7 2-.8.7-1.7 1.5-1 1.8a3 3 0 011.6 1c.5.4 2 .7 2.7.8.7 0 1.2.2 2-.5.9-.6 1.7-.6 1.6.3-.1.8.3 1.8.3 1.8s.6 1.4.6 1.9-.1.6 1 1.3c1 .6.8 1 1.7.4.8-.6 1-1 1-1.5v-1.7s1.2-.2 1.6-.5c.5-.4 2.3-1.3 2.8-.9s1 .3 1.5.1c.5-.2 1.4-.2 1.9-.2.4 0 1.2.1 2.2-.6.9-.8.9-.6 1.5 0 .5.5.5 1.1.2 1.6-.4.4 0 1.3.8 1.3s1 .5 1 1l.3 1.7c0 .4 0 .7 1.4 1 1.2.3 1 1 1.2 1.6.3.5.3 1-.4 1s-1 .3-1 .8c-.2.5-1.2.7-1.2.7l-1-.2s-.8 0-1.1.4c-.4.5-1 1.3-.6 2 .5.8.5 1.2 0 1.6-.4.3-.7 1.9-1.1 1.6-.5-.4-1 0-1.5.3-.5.2-.4 1.7.5 2.2 1 .6 1.2 1.3 1.2 1.3l1 1.6s-.3.3-.5.9c-.3.5-1 1.6-.3 1.8.7.2.4 1.4-.3 1.4s-1.5-.4-1.6.5-.5.6-1.2.5c-.7 0-2.4-.5-2.9.3-.5.9-.6 1.2-1.4 1.1-.8 0-.5 1.3-.2 1.8l1 1.3s.7.5.7 1.6c0 1-.5 1-1 .2-.4-.7-1.3-.6-1.4.2-.1.9-.3 2.2-1 2.2-.9 0-1.2.2-1.6.6-.3.4-.9 1.2-.9 1.6s-.1.9-.7 1-.7 1.2-.7 1.2-1.4.3-1.5.8c-.1.5.1 1.4-1 1.5a3 3 0 00-2.2 1.4c-.4.5-.5 1 0 1.5s.8 2.2 1.4 2.5c.5.3 1 .5.9 1.3-.1.9-.8 1.5.1 1.5 1 0 1.5.2 1.2 1-.4.7-.4.8-1 1.1-.8.4-1.1.4-1.1 1.2s.2.9-.4 1.2-.6.7-.6 1.4-.2.4-.9 1.1c-.7.8-1.6.8-2.2.6s-.7-.2-.8-.9c-.1-.6-1.1-.6-1.7-.5-.6 0-1.4.7-1.4.7s-1 .7-.6 1.2c.5.5.2 1.4-.6 1.3-.8-.1-2.6.8-3.2-.1-.6-1-2.2-1.6-2.5-.3-.2 1.2.7 1.1.6 2.4 0 1.3-.3 1.3-.8 1.7-.4.4-.4.8-.6 1.3 0 .5-.2 1.7.6 2.1.8.5 1.2 1.6 1.2 2.3 0 .6 0 1.3.8 1.3s1.5-.2 1.6-.9c.1-.7 1.7-1.2 1.9.3 0 1.5 0 2.3.7 2.9.5.6 1 1.5 1.5 1.8.4.3 1.2 3 1.2 3-1.1.3-1.4 1.8-2.1 2-.4.2-.9 0-1.3.3-.2.3-.2.7-.6.8-.9.4-.7-.9-1.8-.4-.9.4-1 1.5-2.3 1-.7-.2-1.1-3-1.3-3.6l-1.1-1.8c-.8-1.2-2.3 0-2.8-.4-.8-.5-.5-1.4-1.7-1.5-2.4-.2-.7 1.5-1.7 1.8-2 .7-2-1.8-3.4-.6-.5.4 1 .7.6 1.4-.3.6-1.7 1.6-1.7 2.3.2 1 1.2 1.3 1.5 2 1 2.3-.5 3.8-2.7 2-1.2-.9-1.5-2.7-3.3-2.5-.5 0-.6.4-1 .5-.5 0-.8-.4-1.3-.3-.7.3 0 .8-.2 1.2 0 0-1 .7-1 1-.6.6-.4 1.2-1.2 1.8-.6.5-1.1.2-1.8 1-.7.7-.8 1.9-1.7 2.6-.5.4-.8-1.1-1.4-.1l-.2.4c-.2.3-.2.4 0 .7 1.2 2.4-1.4 3.2-2.2 4.9-.3.7.6 1.3.3 1.9l-1.5 1.7c0 .2-.2.8-.4 1-.2.2-1 0-1 .4s.8.7 1 .9c.2.3-.2.7 0 .8 1.2 1.3.5.9 1.1 2 .1.2.5-.1.7.3.1.4-.4.4-.2.8 0 .2 1 1.4 1 1.4 0 .4-1.8 1.2-2.2 1.2-1.1 0 1-2.2-.8-2.2-.8 0-.9 1.7-1 2h-1c-1.2 0-2 1.4-2.4 1.5-.3.1-1-.2-1.5 0-.4 0-1 .5-1.4.5-.3 0-.4-.2-.7-.4-.5-.3-1.5-.4-2-.6-.4 0-1 .4-1.2.3-.3-.2.3-1-.6-1.4l-.7-1.7c.3-1 .6-2 .5-3.1-.2-1.1-2-2-2.4-3-.3-.6-.6-2.4-1.3-2.8a6.2 6.2 0 01-1.8-2.2c0-.2.3-.6 0-1-.3-.3-.8-.5-1-1-.1-.4 0-1.8-.5-2.1-.5-.3-4-.8-5-.9-.4 0-.7 0-1-.3l-.6-.7-1 .2c-.3 0-.8-.2-1 0-1.1.7-1.4 1.7-2.5 2.6-1.1.8-2.3.8-3.4 1.7-.7.6-1.2 2.1-1.9 2.8-.3.3-.7 0-.8.1-.6.7-1.4 1.2-2 1.8-.1.2 0 .4-.2.5l-1.3.4h-1.2c-.5.2-.5.8-2.5 1.2l-.5.3-.6.5h-.9c-.5 0-.8.5-1.2.5-1 .2-2.8-.5-3.6-.1-.5.1-1.8 1.7-2.3 1.8-.3.1-.6 0-1-.1l-.6 2.2-2.4 2.1c-.3.3-.4.7-.8 1-.2.3-.6.5-1 .5s-1.1-.4-1.6-.4c-.8-.2-3.3-.3-4-.1-.9.1-.6 2.4-2.6 2.6l-3.3.4c-.1 0-.8-.4-1.5-.3-.3.1-1.1 1-1.1 1.2v.5l.2.4c-.4.5-1.4 1.3-1.7 2l-.4.4c-.2.2-1.6.7-1.7.9-.3.8 1 1.6.8 1.9-.3 1-1.7 2-2.2 3-.1.4.5 1.7.5 2.1-.2 1.3-.6 2.9-.5 4.1l.2 1.7.7.5 1.8 3.6c.3 2.2-3 1.4-1 3.6.2.4.4.7.8 1l2.8 2.3c0 .4-2 .7-2.3 1-1 1-1.7 2.6-2.6 3.6-.6.5-1-.1-1.8 1.3-.2.5 0 1.6-.3 2-.5.4-.8-.2-1.3 0-.2 0-.3.7-.5.8-.5.5-5.2 3-5.6 2.7-.2-.1-.5-.9-.5-1.1 0-.3-.4-.9-.6-1-1.2-1-3-1.3-4.2 0-.3.3-.3.8-.7 1l-2 1.6-.5.5c-.5 0-1.6-1.3-2-1.7-.4-.6-2-2-2.1-2.7 0-2.4-1.9-4.9-2.6-7.2h1.1c1.3-.9 1-3 3.3-2.2.3-.4.3-.8.8-1 .2-.2.6-.3.7-.5.8-1.2 1.7-5.8.9-7-.7-1-1.5-1-2-2.7-.2-.5 0-1 0-1.6l-1-3.1c-.2-.3-.7-.5-.7-.7l-.2-3.1c-.7-2.2-3.4-3.5-3.5-3.8l-1-1.7c-.4-.7-.4-1-.6-1.6-.1-.3-.6-.6-.6-.9 0-.6 1.6-1.7 1.5-2.7 0-.3-1-1.3-.8-1.8.2-.6 1.2-1.8 1.2-2.5 0-.8-1.6-2.6-1.8-3.4-.1-.5.6-.8.4-1.1-.2-.4-1.8-1.9-2-2.3-.3-.3.5-.7 0-1.3-.6-.5-.1-.4-.3-.8-.2-.5-.7-1-1-1.5-.2-.5-1.6-5.5-1.5-5.8-.3-.3-.7-.6-.9-1l-.4-1.2s-1.6-.5-1.9-1c-.2-.3-.3-1.6-.7-2.2-.2-.3-.5-.2-.7-.4-.2-.2-.2-.5-.3-.7-.5-.6-1.4 0-2-2.4-1-.6-1.7-1-2.4-1.8l-.4-.4c-.6-.2-1.5-.3-2-.7-.3 0-1.8 0-2-.2l-.4-.8c-.8-.1-2.2 0-2.9-.6-.5-.5-.6-2.8-1.6-2.5a.7.7 0 00-.4 0c-.7-1-2.9-1-3.8-1.6-.2-.1-1 0-1-.2l.1-1.3-1.1-1.4c-.9-.2-.6-.3-1-.6-1.5 0-1.7.2-2.6 1-.2.2-.7.3-1 .4-.5.3-.6 1.2-1.3.8l-.6-.5c-.4-.4-.6-.2-.8-.8-1.2-.7-4.5 1.5-5.2 0-.6-.3-1 0-1.5-.4-.2-.2.7-3-1.7-4l1.6-1.1c.2-.3 0-.8 0-1 0-.5.3-1.4.2-1.7 0-.3-.4-.6-.5-1-.2-.3 0-.8-.2-1.2l-.8-.4c-.6-.5-1.2-.8-1.7-1.4l-.4-.5c-.4-.3-1.8-.8-1.8-1.4 0-.2.4-.3.4-.5.1-.3 0-.6.3-.8.6-1 2.1-.5 1.9-2.2-.1-.8-.7-1.4-.8-2.2-.3-.2-.3-.5-.5-.7-1.5-.1-1.3-1.6-1.8-2-1.5-1-2.7-.4-1-2.4.2-.7-1.5-1.8-1.8-2.1-.6-.6-.3-1.9-.6-2.5 0-.3-1.1-.9-1.4-1.3l-.5-1v-.1c.3-.3.2-.8 0-1-.1-.3-.6-.2-.7-.4-1.4-1.2-3-1.8-4.9-2.5-.5-.2-.3-.6-.8-.8l-3-1.2c-.2 0-.4-1.1-.6-1.5l-.9-1c0-1-.6-1-1.4-1.6v-.6l.6-2.1c.1-.4.6-.8.5-1.2l-.4-2.3c-.8-2-1.7-1.8-1.2-4.5 0-.6-.1-.9.3-1.4l.2-.3 1.2-.9c.4-.6.7-1.9 1.2-2.3l1.8-1.2c.2-.2.4-.9.3-1.2-.4-.2-.8-.1-1.2-.2-.2 0-.7-.4-1.1-.4-.1-.2-.3-.3-.3-.5l-.2-.2c-.5 0-1-.3-1.4-.5-.5-.2-1.2-.2-1.7-.5-1-.5-2-2-2.9-2.2-1.2-.3-2 .1-3.2.2-.7 0-.7-.4-1.3-.6-.8-.3-.2.4-2-.2-.3-.2 0-.8 0-1h-1c-1.4-.4-.9-1.8-1.3-2.7-.1-.2-.8-.2-1-.2-.2 0-.2-.2-.2-.2l.2-.1c.2-.4-.7-1.4-.7-1.6.1-.3 2-.6 2.2-.6.1-.3-.1-.5-.2-.7 0-.5.3-1.2.5-1.7v-.2c-.6-.3-.7-.7-1.2-1 0-.3.3-.4.4-.7.9-2.5 2.3-.5 3.5-2.8.1-.2.5-.7.6-1.1h.2c.2 0 .6.2.8 0 .2-.2.5-.2.8-.3h.5c2.2-.4 1.7-1.2 3-2.1.4-.3 1.4-.4 1.8-.6.5.3 1.2 1 2.1 1.4.7.2 3 .7 3.4 1 .5.2.6.8 1 1 1.3.8.5-.4 1.8-.2 1.3.3 2.3 1.4 3.5 1.9l1-.1c.3-.1 2.3-.5 2.5-.4l.8.3c.3.1.5-.5.8-.5.8.2.8.5 2 .4 0 0 .6-3.3 1.2-3.4.3-.1 1.2.7 1.4.8.4.1 0-.7 0-.7-.2-.3-.8-2.3-.7-2.5 0 0 .5.2.8.1.6-.2 1.5-.4 2-.9l1-1.5c.1-.2-.2-.8 0-1l.9-.6c.4-.4.4-1 1-1.3 2-.2 2.7-1.8 4.6-2h.6l.4.6c0 .1 1.3.9 1.5.8.2 0 .3-.3.5-.4.3.1 1.4-.5 1.5-.9 0 0-.2-.3-.1-.6a12 12 0 011.6-1.2h1.4c.2.2.2.6.5.6h1.2c.2 0 .3-.5.7-.5z"/>
+  <g id="h" fill="#FFF">
+    <path id="star" d="M351.9 73.4L368 123l-42.2-30.7H378L335.8 123l16-49.6z"/>
+    <path id="star_1_" d="M414.7 84.5l16 49.6-42.1-30.7h52.1l-42.2 30.7 16.2-49.6z"/>
+    <path id="star_2_" d="M474.6 106.3l16 49.6-42.1-30.7h52.1L458.4 156l16.2-49.6z"/>
+  </g>
+  <g id="h_1_">
+    <path id="star_3_" fill="#FFF" d="M288.1 73.4L272 123l42.2-30.7H262l42.2 30.7-16-49.6z"/>
+    <path id="star_4_" fill="#FFF" d="M225.3 84.5l-16 49.6 42.1-30.7h-52.1l42.2 30.7-16.2-49.6z"/>
+    <g transform="scale(-1 1)">
+      <path id="star_5_" fill="#FFF" d="M-165.7 106.3l-16.2 49.6 42.2-30.7h-52.1l42.2 30.7-16.1-49.6z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ye.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ye.svg
new file mode 100644
index 0000000..1befdec
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/ye.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-ye" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h640v472.8H0z"/>
+    <path fill="#f10600" d="M0 0h640v157.4H0z"/>
+    <path d="M0 322.6h640V480H0z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/yt.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/yt.svg
new file mode 100644
index 0000000..f198fff
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/yt.svg
@@ -0,0 +1,7 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-yt" viewBox="0 0 640 480">
+  <g fill-rule="evenodd" stroke-width="1pt">
+    <path fill="#fff" d="M0 0h640v480H0z"/>
+    <path fill="#00267f" d="M0 0h213.3v480H0z"/>
+    <path fill="#f31830" d="M426.7 0H640v480H426.7z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/za.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/za.svg
new file mode 100644
index 0000000..7a420a0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/za.svg
@@ -0,0 +1,17 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-za" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="za-a">
+      <path fill-opacity=".7" d="M-71.9 0h682.7v512H-71.9z"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#za-a)" transform="translate(67.4) scale(.93748)">
+    <g fill-rule="evenodd" stroke-width="1pt">
+      <path d="M-71.9 407.8V104.4L154 256.1-72 407.8z"/>
+      <path fill="#00c" d="M82.2 512.1l253.6-170.6H696V512H82.2z"/>
+      <path fill="red" d="M66 0h630v170.8H335.7S69.3-1.7 66 0z"/>
+      <path fill="#fc0" d="M-71.9 64v40.4L154 256-72 407.8v40.3l284.5-192L-72 64z"/>
+      <path fill="#093" d="M-71.9 64V0h95l301.2 204h371.8v104.2H324.3L23 512h-94.9v-63.9l284.4-192L-71.8 64z"/>
+      <path fill="#fff" d="M23 0h59.2l253.6 170.7H696V204H324.3L23 .1zm0 512.1h59.2l253.6-170.6H696v-33.2H324.3L23 512z"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/zh.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/zh.svg
new file mode 100644
index 0000000..72080b6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/zh.svg
@@ -0,0 +1,11 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-cn" viewBox="0 0 640 480">
+  <defs>
+    <path id="a" fill="#ffde00" d="M-.6.8L0-1 .6.8-1-.3h2z"/>
+  </defs>
+  <path fill="#de2910" d="M0 0h640v480H0z"/>
+  <use width="30" height="20" transform="matrix(71.9991 0 0 72 120 120)" xlink:href="#a"/>
+  <use width="30" height="20" transform="matrix(-12.33562 -20.5871 20.58684 -12.33577 240.3 48)" xlink:href="#a"/>
+  <use width="30" height="20" transform="matrix(-3.38573 -23.75998 23.75968 -3.38578 288 95.8)" xlink:href="#a"/>
+  <use width="30" height="20" transform="matrix(6.5991 -23.0749 23.0746 6.59919 288 168)" xlink:href="#a"/>
+  <use width="30" height="20" transform="matrix(14.9991 -18.73557 18.73533 14.99929 240 216)" xlink:href="#a"/>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/zm.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/zm.svg
new file mode 100644
index 0000000..9e723c6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/zm.svg
@@ -0,0 +1,27 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="flag-icon-css-zm" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="zm-a">
+      <path fill-opacity=".7" d="M-170.7 0H512v512h-682.7z"/>
+    </clipPath>
+  </defs>
+  <g fill-rule="evenodd" clip-path="url(#zm-a)" transform="translate(160) scale(.9375)">
+    <path fill="#198a00" d="M-256 0h768v512h-768z"/>
+    <path fill="#ef7d00" d="M421.9 184H512v328h-90.1z"/>
+    <path d="M331.9 183.8h90v328h-90z"/>
+    <path fill="#de2010" d="M240 184h91.9v328h-92z"/>
+    <g fill="#ef7d00" stroke="#000">
+      <path stroke-linejoin="round" d="M451.6 65.6s34-14.5 37.2-17.5c1.5 1.8-13.6 20-42.9 26.7 26.6-6.2 49.3-26 54-25.4 1.3.3 1 19.3-60 35.8 42.2-11 66.7-31.4 66.4-29.2.3.5-4.2 16-41.1 28.1 10.3-2.4 38.3-19.4 38-16.1.9 1.3-27 37.2-77.6 25.5 40.4 10.5 66.5-14.8 70.2-14.3.8.1-7.4 22-58.2 23.4 24.3-2.5 17.3-.1 17.3-.1s-14.3 11.2-31.7 3.6c13.6 3.7 15.1 3.9 15.4 5-.9 1.6-12 3.8-22.9-2 8.7 3.6 16.5 4.2 16.6 5.5-.1.4-5.6 3.6-10.6 1.3-4.9-2.2-50.3-30.1-50.3-30.1l77.4-21.3 2.8 1zm-91 75.6c-6.8 0-7 6-7 6s-.5.5-.2 3.4l1.7-2.6c.8.1 3.9 1 8.8-2.8-4.5 4.7-1.8 6.4-1.8 6.4s-1 3.7 2.4 4.4c-1-1.5-.4-2.8-.4-2.8s4.8-.5 4.5-6.3c.1 5.3 3 6.6 3 6.6s0 2.9 3.1 3.2c-1.6-1.5-1.3-3.8-1.3-3.8s4-3 .7-8c2-1.2 3.7-4.5 3.7-4.5s-2.8-1.2-4.1-2.2c-.6-1.3 0-8.5 0-8.5l-1.8-9.3-4.8 14.5c.2-2 .3 6.3-6.5 6.3z"/>
+      <path stroke-linejoin="round" d="M394.2 120.3c.2.1 5.1 5.6 9.9 5.3 1.8-1.5-3.7-4.7-3.7-5.5 2 1.8 10.1 8.8 15.4 6.3 2-3-3.8-2.5-10.2-10.6 4.5 3 15.7 9.5 21 7 2.1-2.4-11.7-9.9-16.4-15.7l-12-6.1-16.2 13.3 12.3 6z"/>
+      <path stroke-linecap="round" stroke-linejoin="round" d="M375.9 74.8s5.5-3.2 27.6-1.6c2.4.3 15-4.3 19.1-5.7 6.4-1.2 27-5.6 32.4-9.8 4-.5-1 7.1-6 9-5.2 2.3-24.1 8.9-30.9 8 8.1.1 3.6 6.7-9.8 3.6 6.4 3.6 4 4.2 4 4.2s-11.3.6-14.3-2c7.6 2.9 4.4 4 4.4 4s-7.7.7-11.3-1c5.5 1.7 2.7 2.7 2.7 2.7s-4.5.8-8.2-.6c-3.8-1.3-9.4-10.7-9.7-10.7z"/>
+      <path stroke-linejoin="round" d="M384.7 123.4l.8 14.6-.8 1.2c-.3.4-10.3-1.6-9 6 0 3.2 0 4 2.2 5.7-.5-2-.4-3.5-.4-3.5s2.9 1.7 5.6-3c-1.9 4.6-.6 6.3-.1 6.4.4.8-.8 4.5 3 4.4-1.5-1.4-.8-3.4-.8-3.4s4-.6 2.6-7.7c1.4-1.4 2 0 2 0s.4 4.2 3.9 3.3c1.5.9-.3 3.2-.3 3.2s2.5 0 3.3-2c.7-2.2 1.6-6-2.5-7.6-.5-1.5 1.6-1.6 1.6-1.6s2.6.9 3.4 2.2.5-3.4-2.8-4c-4 0-4.2-.9-4.2-1l-1-13.7-6.5.5z"/>
+      <path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.1" d="M398.6 135.8c0-.7-6.8-9.9-5-11 1.7.3 4.5 4.5 6.9 3.1-.7-1.6-2.8-.7-5.1-4.9-2.4-4.8-2.7-11.9-11-19.6 5.4 8.2 17.4 13 18 10.6s-10.7-11.4-10.1-13.6c2.2 4.4 13.4 14.4 21.6 13.6.6-2-6.7-5.8-8.6-9.4-5.3-3.6-19.4-15.7-19.6-18.5a33.3 33.3 0 00-9.9-10.6 5 5 0 01-.8-1.7c-3.2-7.5 1-10 3.5-10.3 2-.3 2.6 0 4-.7l-5.1-2c2.3 1.7 8 .2 6.8 5 2.5-1 7.9-7.4-6.1-8.8-4.6-5.2-23.3-8.2-28 14.6.4.3.6.6 1.8 1.4-6-2.8-21.9-5-27.6-6-15.6-4.4-31.7-15.2-33.2-13.9-2 1 9.4 11.6 8.8 11.8a263 263 0 00-27.5-13.6c-6-2.2-11.9-7.4-12.5-6.4-2.2 4.5 9.5 15.9 11.7 17.2 2.2 1.3 19.3 9.3 19 9.4-25.8-11.7-30-13.9-31.4-15.2-2.3-.5-7.8-8-9.3-7.5-.9.8.8 12.6 13.1 18 2 1.4 26.4 10.1 26.2 10.8 0 .2-28-11.5-29-12-5.4-2-12-9.4-13.2-8.6-1.2.8 3 8.8 8.4 11.3 2.9 1.2 13.8 6.6 23.6 10 .6.3-17.7-6.9-26.5-10.5-4-2.2-5.8-5-6.4-4.4-1 .6 1.4 12.4 29.7 19 .7.4 10-2.1 9.5-1.8a113.3 113.3 0 01-15.8 2.8c-.3.8 1.8 5 16.4 4.2 1.8-.1 12-3.7 11.1-3a174 174 0 01-14.8 4.9c-.9 0-5.6.6-5.8 1-.2.8 3.5 3.8 11.3 4.2 7 .4 20.2-4.2 20-3.9-.4.3-12.8 4.6-13.1 4.8-.5.3-5 .5-5.2.9-.4.9 6.6 7.4 27.1.4-2 2.8-12 4.7-12 5.2 0 .4 2.2 2.5 5.7 3.3 1.7.4 4.1.3 6.3 0 4-.8 8-2.3 13.3-7.2.6 1.5-13.1 8.5-12.5 9.1 3 2.8 12.9-.3 13.5-.7.7-.3 19-10.7 19-12 .3 1.6-23.7 14.7-23.4 15.2 1.5 2.4 9.7-.1 10-.4l10.8-5.8c.3-.1-11.8 7-10.8 8.2-.5 4.7 19-3.2 20.5-4.2.7-.5-9.4 4.4-9.4 6.7 3.3 5.5 13.7 3.8 15.3 2.6.8-.6-1 4-.4 3.6a16 16 0 003-4.3c-.2 1.6-1.4 4-2 6.8-.7 2.7-.9 5.9-1.8 9.2-.2 1.4 6.4-2.9 5.4-13.2.6 5.4-2 15.4-1.3 16 1.3 1 5.2-5 5.6-9.1 1.1 2 3.5 6.3 5.6 7.3-.2-3.1 0-3-1-6 .6-4.1.7-9.7.8-16.1 5.6 10.7 7.9 15.3 6.3 23.5 1.7.7 4.3-5.8 4.1-9a13.3 13.3 0 0011.5 10.2z"/>
+      <path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.1" d="M305.4 67.7s-3.9 2.9-8.6 2.7c1.2 4.8 11 1.1 11 1.1s-4.7 5.3-8.1 6.1c2 1.7 10.6 1.1 12 .3 1.4-.9 4-4.2 4-4.2s-8.8 10.2-10 10.1c-.3 1.2 9.1.8 11-1 2-1.8 7-4.4 7-4.4s-13 9-13.5 9c4.8 1.2 14.5-1.6 20.7-5.4-9.2 6.1-10 7.2-14.7 9.3 4.2.9 6.3 3.7 20.3-2.4 8-3.8 12.6-10.8 12.6-10.8a81.7 81.7 0 01-21.6 18c-.5 1 9.4 5.2 21.9-7.9"/>
+      <path stroke-linecap="round" stroke-width="1.1" d="M373.4 96s.9 4 4.3 7 3.6 6 3.6 6m-9.5-39s1.1 3.7 4.6 6c3.6 2.2 9 9.4 9.3 10.7.4 1.5 2.5 12.6 2.3 13.8m-37.8-25c.2 1.5-5 8.3 2.2 16.4-6.6 8-6.6 9-6.6 9s3.7 2 10.2-3.6c10.8 13.2 7.2 19.2 7.2 19.2"/>
+      <path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.1" d="M362.3 107.2s-1-1.4.8-6.7c1.6 2 3.4 2.3 4.1 3 .8.9 9 2 9.4 7.5"/>
+      <path stroke-width="1.1" d="M371.9 57.5c0-.4-1.7-4-7.8.4 3.3.2 6.5 2.1 7.8-.4z"/>
+      <path stroke-linejoin="round" stroke-width="1.1" d="M430.1 73.5c.3.2 18.2 4 24.2 2.1-7.6 10.2-22.9 3.3-22.9 3.3 7.5 2.2 7.8 2 10.2 4.2.8 2-13.8 1-18.5-1.7 13.3 4.2 13.6 4 14 5.5.6 2.3-21.8-.6-23.7-3.5 6 4.6 9.2 5.5 12.5 7.6-4 1.8-11.5 3.6-25.2-6.1 18 16.4 34.3 15.4 36.9 18.3-6.3 9.3-30.7-5.5-41.9-13s24.5 18.1 27.8 17.7c-1.6 2.5-13.4.3-14.2-1"/>
+      <path stroke-linecap="round" stroke-width="1.1" d="M434.7 90.7c-2 .3-8.3.3-9.2.1"/>
+      <path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.1" d="M300.1 65s13.6 7.2 19.4 6.7a10 10 0 01-3.8 2c1.4.6 5.4 2.7 11.4 1.4l-3.3 3s5.2 2 11-1a46.4 46.4 0 00-2.8 3.7l4.1.3"/>
+    </g>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/zw.svg b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/zw.svg
new file mode 100644
index 0000000..1b18e84
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/css/flags/4x3/zw.svg
@@ -0,0 +1,21 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="flag-icon-css-zw" viewBox="0 0 640 480">
+  <defs>
+    <clipPath id="zw-a">
+      <rect width="546" height="420.1" x="1.9" y=".1" fill="#00f" fill-rule="evenodd" ry="0"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#zw-a)" transform="matrix(1.1722 0 0 1.1426 -2.3 -.1)">
+    <path fill="#006400" d="M0 0h840v420H0z"/>
+    <path fill="#ffd200" d="M0 60h840v300H0z"/>
+    <path fill="#d40000" d="M0 120h840v180H0z"/>
+    <path d="M0 180h840v60H0z"/>
+    <path stroke="#000" stroke-width="20" d="M0 0v420l280-210z"/>
+    <path fill="#fff" d="M0 0v420l280-210z"/>
+    <path fill="#d40000" d="M106.5 104.4L162 275.1 16.8 169.6h179.5L51 275.1z"/>
+    <path fill="#fc0" d="M82.8 253.7l9.8-1.8 18.1-.7 6.7.6 15 2.5 1.1-1.5V242l1.8-9.3 3-9.4 3.3-7.5 4.2-7.8 6.8 1.7h1.8l.2-1.3-14.4-12.3-15-11.5-21.7-16.2-2-.5-2.3-17-1.7-5.1-2.3-2-4.3-1.4-4.8.2-2.2 1.2-4.6 1-2.4.4-1.6 1.9-.2 2.4 6.7.2 1.7.7-.2.7-3.8.5-1.8.6 2.1 1.6 2.2.8 2.8 1 .6 2 .2 25.8-1.5 4-.5 7.5 2.2 9-5.6 6.4L77 216l-.6 3.5-1.7 3.5-.2 2.2 1.1 2.4 4.3 14.2 2.2 11.7z"/>
+    <path d="M88 142c-1.8 0-2.6.2-4.3 1.1a10.8 10.8 0 01-4.6 1.4c-2.5 0-4.5 1.8-4.5 4.1v1.5l3.6-.1c10.6.3 1 1.3.2 1.4-2.6.5.6 2.6 3.7 3.7 3.3 1 3.1.4 3.1 15 0 11.9 0 13.6-1 16.3-1.3 4-1.3 10 0 14 .6 1.6 1 3 1 3.3 0 .2-1.6 2.1-3.5 4.3-3.5 4-5.6 8.1-5.6 11a6 6 0 01-1 2.6c-1.3 1.7-1.3 4.6-.1 5.7 1.3 1.2 6.6 21.8 6.7 25.7 0 1.4.2 1.4 8.3-.2 6.6-1.3 22.1-1.6 30-.6 3.6.5 7.8 1.3 9.3 1.6 4.8 1.3 4.6 1.5 4.6-4.3a74 74 0 015.1-26.7 94.7 94.7 0 016.9-14s1.8.2 4 .8c4.1 1 5.3.9 5.3-1 0-1-4.3-4.6-25.4-21a432.2 432.2 0 00-26.3-19.9c-.6 0-1.2-.3-1.3-.7l-1.5-9.5c-.7-4.9-1.7-9.7-2.1-10.7-1.4-3-4.1-4.5-8.6-4.8a31.2 31.2 0 00-2 0zm.1 1h2c6.6.4 7.8 2.2 9.6 14a173 173 0 011.2 9.4c0 .8-.9 1.8-3.2 3.3a46.8 46.8 0 00-10 9.5l-1.3 1.8-.3-4.2V165c.3-8.7 0-9.5-2.8-10.5-2.3-.8-5.3-1.6-4.5-2.1 1-.6 2-.2 4.4-.9 1-.2.9-.1.7-.9-.2-1.3-1.6-2-5.3-1.8-3 .2-3.3.1-3.1-.7.4-1.6 2-2.6 4.5-2.9a13.4 13.4 0 004.4-1.3 7 7 0 013.7-1zm14.9 25.8h.4c1.7.3 50.8 38.7 50.8 39.8 0 .4-.4.7-1 .7-.4 0-12.9-3.5-27.7-7.8-23.6-7-27-8-28-9.3a5.1 5.1 0 01-.1-6.2 5 5 0 001-2c0-1.2-2.5 1.8-3 3.5-.5 2 .5 5.4 2 6.5.6.5 5.1 2 10 3.5 8.4 2.4 9 2.7 9.4 4.1 1 3.3-2.5 7.2-7.5 8.3a14.6 14.6 0 00-5.2 2.4 68.2 68.2 0 01-17.2 10.4c-.4.3-.9 1.9-1.2 3.4-.6 3.3-.8 3.8-1.8 3.8-.5 0-.6-.3-.2-1.4.7-2 .6-4.4-.1-4.4-.5 0-.7.7-.7 1.8 0 1-.3 2.2-.7 2.5-.5.6-.6.2-.4-2.3.2-1.7.1-3-.1-3-.5 0-1.4 2.5-1.7 4.7-.2 1.3-.2 1.3-.6-.3-.3-1.2-.2-2 .7-3.5a9 9 0 001-3.5c0-1.3 1-2.6 5.7-7.3 3-3.1 6.7-7 8-8.7 2.3-2.8 2.4-3 2.3-5.9 0-1.6-.2-3.1-.4-3.3-.6-.6-1.4 2.6-1 4.3.2 1.6 0 2.1-3.3 6a113.2 113.2 0 01-7.5 7.8c-3.9 3.6-5.3 5.6-5.3 7.4 0 .6-.4 2-1 3.3s-.8 2.6-.6 2.9c.2.3 0 .3-.3 0-.5-.5-.5-1.3-.1-3a7 7 0 00.2-2.6c-.5-1-1.2.2-1.5 2.7-.2 1.4-.5 2.5-.8 2.3-.7-.4-.5-3 .4-4.4.5-.7 1-2.3 1.3-3.6.7-3.7 2.3-6.7 5.8-10.7a57.5 57.5 0 003.2-3.8l-1-3.3a25 25 0 01-.2-13.7c1.3-3.8 3.9-7.6 8-11.7 4-3.9 7.9-6.3 10-6.4zm15 32.2a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm2.5.3a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm2.6.5a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm2.4.5a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm-6.3.6a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm2.4.4a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm5.2.2a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm-2.7 0a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm5 .6c.1 0 3.7.8 8 2l7.9 2.3-1.5 2.7a96.2 96.2 0 00-2.4 4.4c-1 2-1.2 2-6 .9-5.2-1.2-13.4-2.3-21.8-3l-8-.7 3-1.1a50.4 50.4 0 005.3-2.4c2-1.1 2.8-1.3 5.9-1 4.5.3 7.5-.6 8.7-2.4l1-1.7zm-8.8.6a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm5.6 0a.9.6 0 011 .6.9.6 0 01-1.6 0 .9.6 0 01.7-.6zm-8 0a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.5zm5.3.2a.9.6 0 011 .5.9.6 0 01-1.7 0 .9.6 0 01.7-.5zm-6.6 1.1a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm2.5 0a.9.6 0 011 .7.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm2.6.2a.9.6 0 011 .5.9.6 0 01-1.7 0 .9.6 0 01.7-.5zm2.8 0a.9.6 0 011 .6.9.6 0 01-1.7 0 .9.6 0 01.7-.6zm-20.3 8.1a191.2 191.2 0 0135.1 4.2c.1.1-.6 2.5-1.7 5.4l-2 6c-.1.5-.8.5-2.5.3-8.3-1.3-32.3-1.2-41.5.2-5.3.8-6 .7-5.6-.4l1-3.5.6-2.7L93 221a63.4 63.4 0 0010.2-6.5h.9zm-27 14.2c.3 0 .9.3 1.6.8 1 .6 2.2 1.1 2.7 1.1 2.6 0 4 3.7 6.2 16l.8 4.4c.2 1 0 1.2-2.3 1.7-2.8.6-3.5.7-3.5.3 0-1-2.8-13.7-4-18.2a96.9 96.9 0 01-1.6-6 .1.1 0 01.1 0zm28.6 2h2.9l-1 1c-1.7 2-2.5 2.1-3.7.8a5 5 0 01-1-1.5c0-.2 1.3-.4 2.8-.4zm6.1 0h5.4l-1.2 1.2c-1.4 1.6-1.5 1.6-3 0l-1.2-1.3zm8.2 0h1.3c.7 0 2 0 2.8.2l1.5.3-1.4 1.3c-.8.7-1.5 1.3-1.6 1.2l-1.4-1.6-1.2-1.5zm8.5.3l1.2.3c.7.2 2.2.3 3.3.4h2l-1.5 1.3a8.9 8.9 0 01-1.8 1.3c-.1 0-1-.8-1.7-1.7l-1.5-1.6zm-30.2.1h.2c.1.2-.3 1-1 1.7l-1 1.4-1.5-1.2-1.5-1.3 2.4-.3 2.4-.3zm2.3.2l1.6 1.4 1.6 1.5-3 .2-3 .1 1.4-1.5 1.4-1.7zm18 0c.3 0 .5.1.8.3a6.6 6.6 0 011.3 1.7c.4.8.3 1-1 1l-2.5-.5-1.2-.3 1.3-1.3c.6-.6 1-1 1.4-1zm-8.3 0c.5 0 1 .3 1.6 1.3.7 1.1.7 1.1-2 1.1h-2.7l1.4-1.3c.7-.7 1.3-1 1.7-1zm17 .2l1.2 1.2c1.4 1.3 1.6 2.1.6 2l-2.8-.3-2.2-.2 1.6-1.3 1.6-1.4zm-35.2.7c.2 0 1 .5 1.6 1.2l1.2 1.3-2.5.4-3.5.5c-.7.2-.5-.3 1-1.6 1-1 2-1.8 2.2-1.8zm-3.7 0h.4c.8.2.8.4-.6 1.8l-1.5 1.5-.5-1.3c-.4-1-.3-1.3.6-1.7a4.8 4.8 0 011.6-.3zm46 1.8c.2 0 .2.2 0 .6-.2.8-1.1 1-1.1.2 0-.2.3-.5.7-.7h.3zm-21.4 1.6c7.7 0 15.5.2 17.4.4 3.1.4 3.4.5 3.4 1.7 0 1.4-.4 1.5-4.6.8-1.2-.3-6.3-.7-11.2-1.1a149.6 149.6 0 00-28.5 1c-1.9.2-2.4 0-2.4-.6 0-1.3 10.2-2.2 25.9-2.2zm-10.3 2.9h5.4l-1.2 1.3c-1.5 1.6-1.6 1.6-3 0l-1.2-1.3zm7 0l1.4 1.4 1.4 1.6-2.9.1h-2.9l1.5-1.6 1.4-1.5zm2.1 0h5.4l-1.2 1.3c-1.4 1.6-1.5 1.6-3 0l-1.2-1.3zm-12.8 0c.2 0 0 .5-.7 1.5-.7.9-1.4 1.6-1.5 1.6-.2 0-.9-.6-1.5-1.3l-1.2-1.3H96a9 9 0 002.7-.4 1 1 0 01.4 0zm2 .5l1.3 1.2 1.5 1.3-2.6.2-2.9.2 1.4-1.5 1.3-1.4zm17.4 0l1.4 1.6c1.6 1.7 1.5 1.8-2.1 1.1l-1.7-.3 1.2-1.2 1.2-1.2zm2 0h2.4c2.6 0 2.9.4 1.4 1.8-1.2 1-1.2 1-2.6-.5l-1.2-1.3zm-30.6.5c1.2 0 1.1.1-.4 1.6-1.1 1.1-1.2 1.1-1.6.3-.3-1 .6-1.8 2-1.9zm38.8.2c.4 0 1.2 0 2 .2l2.3.4-1.3 1.2-1.2 1.2-1.1-1.4-1-1.6h.3zm-36 .5c.3 0 .6.2 1.1.7 1 1 1 1 .2 1.4a8 8 0 01-2.4.4H90l1.3-1.4c.7-.7 1-1 1.3-1.1zm34.1.3c.4 0 .7.2 1.2 1l.9 1.2h-2.1c-1.4 0-2-.2-2-.6.2-.4.7-1 1.3-1.3l.7-.3zm6.4 1.3c.2 0 .2.2.2.5 0 1-.9 1.7-1.3 1-.1-.3.1-.8.5-1.1l.6-.4zm-25.9 1.2c8.7 0 18.3.6 24 1.6l1.6.3v4.4c0 3.3-.2 4.4-.7 4.4l-5-1a126 126 0 00-35-1l-2.3.3-.6-3.7a21 21 0 01-.4-3.8s2.3-.5 5-.8c3.3-.5 8.2-.7 13.4-.7z"/>
+    <path id="b" d="M124.8 217.8c-3 0-5.1 2.1-5.1 5.2 0 4.8 5.4 7.2 8.6 3.8s1-9-3.5-9zm0 1.2a4 4 0 014 4c0 3-3.3 5-6 3.7-2.7-1.5-2.5-6.1.4-7.3a4.3 4.3 0 011.5-.4z"/>
+    <use width="100%" height="100%" x="-20.1" y="-.6" xlink:href="#b"/>
+    <path d="M88 145.3a1.7 1.8 0 00-1.6 1.7 1.7 1.8 0 103.5 0 1.7 1.8 0 00-1.9-1.7zm.1.6a1.2 1.1 0 011.2 1.1 1.2 1.1 0 11-2.4 0 1.2 1.1 0 011.2-1.1z"/>
+  </g>
+</svg>
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/site/admin.css b/mailcow/src/mailcow-dockerized/data/web/css/site/admin.css
index 37395a2..bff4f20 100644
--- a/mailcow/src/mailcow-dockerized/data/web/css/site/admin.css
+++ b/mailcow/src/mailcow-dockerized/data/web/css/site/admin.css
@@ -1,7 +1,3 @@
-table.footable>tbody>tr.footable-empty>td {

-  font-size:15px !important;

-  font-style:italic;

-}

 .pagination a {

   text-decoration: none !important;

 }

@@ -75,7 +71,7 @@
 }

 .regex-input {

   font-family: Consolas,monaco,monospace;

-  font-size: 14px;

+  font-size: 1rem;

 }

 .label-keys {

   font-size:100%;

@@ -85,4 +81,7 @@
 .key-action {

   font-weight:bold;

   color:white !important;

+}

+.dkim-label {

+  margin: 0 0 8px !important;

 }
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/css/site/debug.css b/mailcow/src/mailcow-dockerized/data/web/css/site/debug.css
index 2209462..39c3a86 100644
--- a/mailcow/src/mailcow-dockerized/data/web/css/site/debug.css
+++ b/mailcow/src/mailcow-dockerized/data/web/css/site/debug.css
@@ -1,7 +1,3 @@
-table.footable>tbody>tr.footable-empty>td {

-  font-size:15px !important;

-  font-style:italic;

-}

 .pagination a {

   text-decoration: none !important;

 }

@@ -38,10 +34,4 @@
 .table-lines {

   vertical-align: inherit;

 }

-tbody {

-  font-size:14px;

-}

-.status-indicator {

-  width: 15px;

-  height: 15px;

-}

+

diff --git a/mailcow/src/mailcow-dockerized/data/web/css/site/edit.css b/mailcow/src/mailcow-dockerized/data/web/css/site/edit.css
index ac3a430..e8fb819 100644
--- a/mailcow/src/mailcow-dockerized/data/web/css/site/edit.css
+++ b/mailcow/src/mailcow-dockerized/data/web/css/site/edit.css
@@ -1,7 +1,3 @@
-table.footable>tbody>tr.footable-empty>td {

-  font-size:15px !important;

-  font-style:italic;

-}

 .pagination a {

   text-decoration: none !important;

 }

@@ -40,4 +36,8 @@
   -moz-transform:rotateX(180deg);

   -webkit-transform:rotateX(180deg);

   transform:rotateX(180deg);

-}
\ No newline at end of file
+}

+#sender_acl_disabled {

+  display:none;

+  margin-top:10px;

+}

diff --git a/mailcow/src/mailcow-dockerized/data/web/css/site/index.css b/mailcow/src/mailcow-dockerized/data/web/css/site/index.css
index 10f7c0d..41438a8 100644
--- a/mailcow/src/mailcow-dockerized/data/web/css/site/index.css
+++ b/mailcow/src/mailcow-dockerized/data/web/css/site/index.css
@@ -2,4 +2,7 @@
   #top {

     padding-top: 15px !important;

   }

-}
\ No newline at end of file
+}

+.ui-announcement-alert {

+  margin: 10px 0px 10px 0px;

+}

diff --git a/mailcow/src/mailcow-dockerized/data/web/css/site/mailbox.css b/mailcow/src/mailcow-dockerized/data/web/css/site/mailbox.css
index 8b5bad6..4822a6f 100644
--- a/mailcow/src/mailcow-dockerized/data/web/css/site/mailbox.css
+++ b/mailcow/src/mailcow-dockerized/data/web/css/site/mailbox.css
@@ -1,7 +1,3 @@
-table.footable>tbody>tr.footable-empty>td {

-  font-size:15px !important;

-  font-style:italic;

-}

 .pagination a {

   text-decoration: none !important;

 }

@@ -26,6 +22,11 @@
 }

 @media (min-width: 992px) {

   .container {

+      width: 100%;

+  }

+}

+@media (min-width: 1920px) {

+  .container {

       width: 80%;

   }

 }

@@ -57,8 +58,13 @@
 table tbody tr td input[type="checkbox"] {

   cursor: pointer;

 }

+.label-last-login .bi {

+  font-size: 8pt !important;

+}

 .label-last-login {

-  line-height: 2.5;

+  line-height: 2.2;

   color: #4a4a4a!important;

+  padding: .2em .4em .3em !important;

   background-color: #ececec!important;

 }

+

diff --git a/mailcow/src/mailcow-dockerized/data/web/css/site/quarantine.css b/mailcow/src/mailcow-dockerized/data/web/css/site/quarantine.css
index 7a12749..3634696 100644
--- a/mailcow/src/mailcow-dockerized/data/web/css/site/quarantine.css
+++ b/mailcow/src/mailcow-dockerized/data/web/css/site/quarantine.css
@@ -1,8 +1,3 @@
-table.footable>tbody>tr.footable-empty>td {

-  font-size: 15px !important;

-  font-style: italic;

-}

-

 .pagination a {

   text-decoration: none !important;

 }

@@ -29,13 +24,18 @@
 

 @media (min-width: 992px) {

   .container {

-    width: 80%;

+    width: 100%;

+  }

+}

+@media (min-width: 1920px) {

+  .container {

+      width: 80%;

   }

 }

 

 .mass-actions-quarantine {

   user-select: none;

-  padding: 10px 0 10px 10px;

+  padding: 10px;

 }

 

 .inputMissingAttr {

@@ -100,3 +100,4 @@
   font-size:110%;

   margin:20px;

 }

+

diff --git a/mailcow/src/mailcow-dockerized/data/web/css/site/user.css b/mailcow/src/mailcow-dockerized/data/web/css/site/user.css
index 965562c..0ec07b7 100644
--- a/mailcow/src/mailcow-dockerized/data/web/css/site/user.css
+++ b/mailcow/src/mailcow-dockerized/data/web/css/site/user.css
@@ -1,7 +1,3 @@
-table.footable>tbody>tr.footable-empty>td {

-  font-size:15px !important;

-  font-style:italic;

-}

 .pagination a {

   text-decoration: none !important;

 }

@@ -47,17 +43,6 @@
 table tbody tr td input[type="checkbox"] {

   cursor: pointer;

 }

-.rotate {

-  -moz-transition: all 0.3s linear;

-  -webkit-transition: all 0.3s linear;

-  transition: all 0.3s linear;

-}

-.rotate.animation {

-  -ms-transform:rotateX(180deg);

-  -moz-transform:rotateX(180deg);

-  -webkit-transform:rotateX(180deg);

-  transform:rotateX(180deg);

-}

 .label-keys {

   font-size:100%;

   margin: 0px !important;

@@ -66,4 +51,79 @@
 .key-action {

   font-weight:bold;

   color:white !important;

-}
\ No newline at end of file
+}

+svg {

+  display: inline-block;

+  vertical-align: middle;

+}

+.c-1-color, .label-ham {

+  background: #28b62c;

+  background: -webkit-linear-gradient(to right, #28b62c, #fff233);

+  background: linear-gradient(to right, #28b62c, #fff233);

+  color: #000;

+}

+.c-2-color, .label-spam {

+  background: #fff233;

+  background: -webkit-linear-gradient(to right, #fff233, #ff4136);

+  background: linear-gradient(to right, #fff233, #ff4136);

+  color: #000;

+}

+.c-3-color, .label-reject{

+  background: #ff4136;

+  color: #fff;

+}

+#spam_score {

+  margin-bottom: 10px;

+}

+.noUi-handle {

+  border: 1px solid #e2e2e2;

+  border-radius: 0px;

+  background: #eee;

+  cursor: default;

+  box-shadow: none;

+  border-top-width: 0px;

+  border-right-width: 1px;

+  border-bottom-width: 4px;

+  border-left-width: 1px;

+}

+.noUi-handle:hover {

+  background-color: #eee;

+  border-color: #e2e2e2;

+  margin-top: 1px;

+border-bottom-width: 3px;

+}

+.noUi-handle::after, .noUi-handle::before {

+  background: #c6c6c6;

+  width: 2px;

+}

+.noUi-target {

+  background: transparent;

+  border-radius: 0px;

+  border: 1px solid #D3D3D3;

+  box-shadow: none;

+}

+.noUi-connects {

+  border-radius: 0px;

+}

+.label-ham,

+.label-spam,

+.label-reject {

+  padding: .1em .5em .1em;

+  font-size: inherit;

+  font-weight: 400;

+}

+.clear-last-logins {

+  cursor: pointer;

+  font-size:90%;

+  font-style: italic;

+  color: #158cba;

+  user-select:none;

+}

+.ip-location-flag {

+  border-radius: 4px;

+  top: 3px;

+}

+.recent-login-success {

+  margin-top:2px;

+  margin-right:10px;

+}

diff --git a/mailcow/src/mailcow-dockerized/data/web/debug.php b/mailcow/src/mailcow-dockerized/data/web/debug.php
index 6390be7..f8ad527 100644
--- a/mailcow/src/mailcow-dockerized/data/web/debug.php
+++ b/mailcow/src/mailcow-dockerized/data/web/debug.php
@@ -28,6 +28,7 @@
         <li role="presentation"><a href="#tab-rspamd-history" aria-controls="tab-rspamd-history" role="tab" data-toggle="tab">Rspamd</a></li>
         <li role="presentation"><span class="dropdown-desc"><?=$lang['debug']['static_logs'];?></span></li>
         <li role="presentation"><a href="#tab-ui" aria-controls="tab-ui" role="tab" data-toggle="tab">mailcow UI</a></li>
+        <li role="presentation"><a href="#tab-sasl" aria-controls="tab-sasl" role="tab" data-toggle="tab">SASL</a></li>
       </ul>
     </li>
   </ul>
@@ -48,7 +49,7 @@
             <div class="panel-body">
               <div class="row">
                 <div class="col-sm-3">
-                  <p>/var/vmail on <?=$vmail_df[0];?></p>
+                  <p><i class="bi bi-hdd-fill"></i> <?=$vmail_df[0];?></p>
                   <p><?=$vmail_df[2];?> / <?=$vmail_df[1];?> (<?=$vmail_df[4];?>)</p>
                 </div>
                 <div class="col-sm-9">
@@ -66,7 +67,7 @@
             <div class="panel-body">
               <div class="row">
                 <div class="col-sm-3">
-                  <p><img class="img-responsive" alt="Solr Logo" width="128px" src=" data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABlCAYAAAAI2qyuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAXEUAAFxFAbktYiwAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjEuNWRHWFIAABv7SURBVHhe7V0JuBxVlX4JMy6jM4qOC4rp6qWq+jW+ruoXkIjoS1d3EhYXRvNkFHFBYECUAXGAASEOyiLIrigOEpDoACIqwogLiwMSkIghYF4viSFhiUGWCAQIyXuZ/9w+3V3VdXtfee/+33e+16/uqXtv1T2n7j33nnvukIJCP7BjbOzvsgt0O5cyjsymzG9mU8YvcylzIucYT2Ydczt+7xDkGFuR/hf8XplxzHG6d20qauSSkfCSJUOzRWYKCtMBE3uZ/5hxjE9A4K+FEmwuKUFj9Nd1Y9brdwwNzco6xr10DXk8DAX77kTaXEQKx8UoKLz8AGE+D73BcxVC3zBl09HPUz6ZpOHI0kEboXhnrU3H5ogCFRQGHSvmzv17+stf/ZaVA71EppgXFO0Xcp4CYai2LZeKLs2m9BDxKygMHEg4Mynz+kzK2IP+X52KvlEmzI1SPml+kPLB8CyOXmJKxuMnYyvoG7l9Iv9E9yoo9B3Xjg/thC/8cegtnsffFyGcr6TrBWNcJsQNkGPeIjIHkO8yKU9teiSXiryfs1BQ6A8eWhTdBV/3W4qCid/3c9IQ9QAugW2YoGSTeSc6Snn8KTkcKAyf5Ly1iHudi9eNBV4lKqSg0Evk0tF5EN7HPILpmN/l5CEMdY71pDVKjnkFZ0HDqwulPE1QJmneM5E238ZZKih0H3ln+AB8oV/wC6TxOWYhBfmGP702offYknX0t9P9Dy6MvaE9I99Fjrk+50RiomIKCt0EBO7jENzyop6LVqNXYTbiu6YyvR5NpMz/4tuH8PvLMp6WyTFO5awVFLoDfIkXQ9CkygHatuL9c/+BWYfQwyyX8FQlKN1jGxfEX0P3blg879XoTTbJ+JolskUySeNEUae0PkxEvxUUOgoMfd4rZqkkQkgEAV/FrALgfVzGV41gb3yWbx3KYKgm42mWqKfLpqKHU54Fg9/cgHqtp8kFUZCCQidAK9UQrpoCD2H8HrMPUU9SbRhWhVZeOz6+E927A39h/K+R8DRHjrGVejzKM7dP5E3IM1NMQ92WF6ejFRTawoPjsVdA0O72CJ+E0AMcxbcMkVOhjEdGYgiUNlJ861DeMcdlfM2R8SyM8gWUHy0aQllWSPguFgUqKLSDfMrYRyJcPppImnvxLSTkSRmPlBzjRr5NAMr4eylfo+QYT2A4+C7Ki9ZAsk70NhmfUEw8myhUQaFV0PBKJmBuwvDlpXVjY6UFOVw7pJKnCm3LObHS9Cv1JBKeZuiRfHJ4N8qLPH2hbD+V8JTJMdY/OBZ7rShcQaEV7FgyNBtj9iekAsaE9AeYXSDjRJfI+CoJBvO3+BYBKNrNMr5GCHXIToyZGuVDjpIZx7xCxucjxzhbFK6g0CogSP/rEywXQThLBjoBw5fLZHxugnJsJuOZbxnKLtQtGvbIeOsRyr9vrfPOt1A+pBzoOc6V8ckIivRiUbEUFFoCBPcsmXAVKTvfPJpZBSCgv5bxecgxjmd2gXzKvErKV4egHLevTYdex9lQXZteYMykyi4yCgp1UXT3KAJC9JFKoXJTZoHxHmYVgPBnZXxFwlDqIbcTYatOidmkccNd83Z9NWczlEubR0BBpLy1iNZ31NqIQsOgIRL/FPgzBFgmWET4gm9fySvgBLFRSuqnVSYo4L8yuwAUqmmnxIxjXFncUEWgPFHupIy3EZpwzNM4KwWF6kBvEKRZqdtc+70L43q5oQ6h/BOzCZAtIOMrEgR7OeXH7IWNVU06JaJ+F7jzyM83F1GdZbyNEnqRh4uLlQoKVTGRLIzhK/d5QwApAolfuBzzSmYRoB2FUj4QlGkqM987HAP/KTJeGdH9EOST+VaBNRjeNatg1YjWbzhbBQU5MGQS0UMyaWNvviQAwTyzUqCIILReA72GvQJl+BGzCWyA/YB8G3JKLAyfyu70hDUpcwQK+pSMvxWinomzVlDwY82C0JsLgigE5iC+LABBXOwWpiKREyOzCOTmG8fL+cwXK4MqgLdBp0Rjaz41fCDfJiDcWRzjUTl/a4Q65jl7BQU/3EpQdBEvYt0iU3MLExG+uNsedbm4E6oZ3Og9zmEWAbJxoIx1nRIhtFvI3YVvE1i9KLpLxjHXyvjbIRrCqdkshapAb1BaYIOCeJz5eEX9abdAQaFWc3IJuH69h6dAIgAcswhAYQ6U8HkICviU28eLsGr/kZ0hyPfL+Nsmx9iu7BCFqoDg/colMDfx5RIgQN4FwLTXQCdgOOTznEW+HjuFAOWq45RoPDYBG4PZBWg6GUp6l5y/daLVdDzbpVBGk4tSUPAjk6RwOQWhwdf7Qb5cAoTobLdg5dLGMZwkUFgDqexlygHgiqgRKVEQ8siTjcHsAsLtPlnb5aVZwvANBr5x+rqx2Fu5mKHMmPHP/FNBoYyCa3h5oQ2/N7vXGgj5tPFRj4Alh9/HSQIUh9edhyDH/AAnl4BeoJZT4v3r9isLLKEwvDOvlvC2RJmU+TCGeF/c5PLkLYQwMi6nHoovKSiUwTv5HigKEQRyigSekwUecG2EQvp2t4ARMguNaDFd8KSMWyuVjALKkTHs5ivxO+Ydq/Ye2ZlZBUSv5JiXyPibJsdYlU1FP7XD1aPRPviC97HxLPFAQR7iJAUFL/BV9WyOyiZ1i5ME+EsuIrRDkLJ8uYTcgujC0r2pcgA4N6A0PyjyeMgxbnIHfSgCw7ivSvmbINTldjzLfm5lpWeBjXMInsMzVYz/NzOLgoIfEJDS8CefDIv4uG5gyPQbTv8hXyoBaUcU7804RikAXBHVnBJJacjGYLYSYKu0FnwOhOfYDrpudTpSCkVURGa+kULafbL7yGBnNgUFPwqr04WACxh6lPaZF4Gv8ddFGsbwfKkECPTXhKA5xnOVHsEEKMIFRUEsEuyBi+lrziwl4Iv/yWpDsVqEe15AOd9ekx7WOasSKOQP6nYjeKT3EikFeZkgEom8skixmP/r2k3Q/ggWljP4UgklQz0dHeNLJaAHuZLSMAzzecZWOiWSkIJKgeLcgPJ9CDxNub+jR3gyl4qevsoJio1TbhSimujfRHl184RyPcu3KQwq5u0679VG0NpWJF2z/8JJPYHwyHWMZyDwV/OlEvILYxHqYSoNeAKE9DbQY7J93rjn1LIQmpMQ2C9wkgf5VHg+0mu6y7sJ5a3HcO4YWZk0M4e0E4p2UyOEsh/m29vB+E6RyGjYDCY+YASsYwzN+oYRtJfi73X4eyPoZ3rQvhZ/L0cDnwOeY00t8UG6Z2hoiTpjrg4KCmLvKBIU5AlO6hkgVCeDlvO/JYjZLsdYwf96AIVam0uah/C/JRQiJRocV8t4CcryCU7yYCIZnYsy/1YptDJCfqvy6eGDZcew0TmGtFIPnnWye2tRNmn+gbNpDqY2YhqB+IkQ/JuhCJvdDdgMobGfMjT7el2zDo9G93gjZ6/gwiAoCPlY5R3DpyAECHgpCmIRPMP1e5k9AWE9UggfnSEyX9+fL3uQGTOiULCanr34uk9hCHQreoV9K6ePiyAvZFJs2f0N0vWcVX0EAmOvigTjn4Uwr3A3WKcIDb8VtAzkmU6c6RgEBSFMpMyDZLNLlQ6KBDLKi8Ha3Cg6JUJoN1d6/hbxwMLd3gHlWS8RVkFI2w7F+NFaPr1KBvIURjnXgqR5NEpQ5tM5y+oYw0OZocQR+NI/4m6oLtIkhOCqUCj+Zq7CjMagKAgNVXYc7nUTqYZqoTzFUCdl/qVyTaWI3N6RN6HnWC0TVtHjpMxLyO5hdh/W7z2yM5TvXFDVuMHNUDYZ/RhnLcdw2NpND1p/cDdQJWGYtR22xWr8vUYPJk6LBOJHmEF7cVSzFpphK4nr6TBsDj1gfRrDsRNwz6XohX6HfLdU5uUhzd5EeXBVZiwGRUHahVgFx5c/vzAsFXAy9KEcPqdFKMaTGMZ9dc2C6h9MWg0nQx+8NWN2NUu05ZiL8ANCPg7BlwoxhP5p/P0uGeaRyLtaOiSRpiuFAmn2+aQMlWUI0mjmxj6Ub5mRmC4KQj5VsvUQgvD9gj3hFk78/xB6jKNrRTskpYMNcgAUo2bklFYo45gbqtk2QwZsDTTGlLthBIlhlnXU3F384852QMoiytSsh31loh5kxDPrjMN0UZBqoJkwCGRp3wiU4n6yd9yBImQQs1wp8/bifR0nx7yUi/IirI18sDBscgupNUlTtPF4OaRLNxB/S/w1EIBzC+V5hGJ7JBj3eYLOBExnBSnMdhnfg6BTAIZbaLdg1a82Iw8jHsL7ffC3HNanESJ/LS6yDGNOPOiftrWep3ULZukJxJpK0H7OXQ8IxjM0vcwsMwbTWUHyKf0sCPo1E2Pm7nypKoSNkjK+Rsa6TKA7SajT47IZu1lQjl9VNMbWfhnKEc0eI+V01wdDvPt67WrRb0xXBaHTZnPJ3TwboWSgoVY+qR8GxdgoE+ZuEG035uLLMEKJlLshiCCk/87JfYEZtD/uqZNm5aPh0bmcPCMw3W2QWshgyAXFKO1L6RTxkG4T8qYtwT/OOcY55KKC3x9ZkzZ3l7nawzC3r/c2hEW7qfruCoJeYyno50bI3hf/zjjXlJmoIGsWRN8JO+MXbqFujjAMc8y1UIDb8HspeoTToACH0h4V2sjljgXcEDBseS2E8EV3Q0QGZw2iptE23TGTFOTBsdhbs0nzvyHYVc80LHz9yVvXXJlNGTeA//y8ox8HA//A1anou8m5kmbGOMumUHWCgBbz3I0AZSEvxhktmIOCmaAghYM+zZMg+M9guLMVtB49wB15x1iWSRtnkP8WzSpRz1I8HrpdkBLRPpGsE6VA17Sv5TcoV36ADnoLWuEuK0jQvpyTFPqMmaAgFPCBfLNoIXFFg+4szYCUgcL4YJj1CSjiebQoib+VnsJ/rRrFBC/+Ik8jBOPHcZJCnzGTjfRWQLNeHDDioGxKPx/KcHsxCEMtQg9V3e/KCFpXeBohYNd20poBGMdXJxqMG7QGZGr20REtfooesL5Cbv6RgPUZXUu8zzDmdj1uklKQ6qAYW3TwJ3qDT2N4dCGGSndimNZ0dHcM4f6Hs5QDNscyTyMEEh/mpBkFWsk3g9ZBeB8/9i+YSmkK9tsEhPZcnn7uuN3WDQWJBO3FyOvuIpG3NifVw6xhLRGIzME7ClrnmIWNcLdRHnrQuh3pXZtlJGWg6IprUvqncmnjIgj2negdOrFouJrOT+di5MADXgoqN7yWOJiTZgTItR7PfTaInDDL76FZ0ux7IsEEucR0TFG6oSAQ5s+788THoOa+B+opjVD8RJS9ynOfi5Dn80uWdGaHKLnLk0t8Nq0flqP94465HNT5FXTHeGJ1KmpwsdUBm+Msz8Nq9pc4aVpjLr5KRsg6XtesZ9zP3wG6VQ/sNszFtIV+Kkhh+t86A71F7a0JoHYURNgNwitXBIW7G387sp+jJlGk+Ipg2FUBAfm3igdeyknTFhhGDuM5a+11mYIwrscQ6ic0nMA7+rIRsk/EfafBLrkM/9+L9K2S+5isF0DHoqi2epN+KYgZsOaD7yEPXw3qQA8yi06yyiajH86n9K9AiG/CEGoj7Aq5gLdBUMAtFBOYy60PjEF39zysZq3H5Wm7DmIErAMg+M+6n7lEmrUBdsjJ4XCCNvbUfAf8hf0o7rsZ5N8eANJD9nXtbA/oh4IYwcQX/R7dLtJs2pawVOQTju+jByw7FprrOaatE6CFO/LZghH9IQyHTsVX/0YIeFs+WVC4pzNj3hOz6oK21eKBPeNvchbk5GmFQm/pdacnguD9FX8/R8MuZm0K4fDIKITql5X5EuH68tiu897ArE2hxwoyC/mf50ljwvWt+LBcYYZtGpb09eO5Hkoz4ZgfEEqTMn4GwX+EVtgrlcFHjpGjgHGcTXPAV2FpxQu5BZenVS8C5TgMz+b70uP6dZGI/SZmawez0GN8DArhM/YhlPe2svuylwqC3zRRUb5eTr+OtkKImwcTs2hLbjYV3R/Dp5PR0/wUfze4lQP//3T9/t5g2E1B10b3lLycabPdVQ/Y+0G4vMMGzdrWDY9lfc7uISjd/Z6yCnQz9dbM1hB6pSAUS8BzTVy3/6aHEp5zzF9OEEqT1PeDwizGv+1/7PFCbqh4SS/Qghgnv2yh67uH8CyerzoE+CU9EO/aeg/1FhjK3e4uU5QbtM9ilobQIwX5Fb0P9zXwPBoMjnpOdeoGyM7IJaMLs46xDMOkSzBkOoW23NKRzrR7sPLAnb6CDC28LM8CGRrkWSOQ8Byc+HICrYgbWvx3Fc9EW3g/wixdAxnxELzfu8sGTVKwCmapi54oSCVRRJlgvP76QAfB8XovhIJs9Q6NyLPXeAi/f5tPmVdRzN1M0jgy4xj75pxIjBb5KCQRZ9N90FcVL6linG5NRoLWOdTgzPaygVQYQtYJnNx1vDO451t41qdUPuqUp0B8zFITvVYQ6knYEO8LaOEOCnF9o9O7ZJzDvtgMRbor6+j/wtl0FzTNh5clmba0NqKHOb4XPkidQGzX2BtQ76fczwAB+AWSejr5wNuHPTNn5EHNyTXRawUxNevLzNZX5NKRMfQo98qUokjkdwXl+Dl+H7I2HXod39ob4GUdWjkuLRIaaSsU5SY0+rG0hjKoPYseTJxZUe9nIpGRXTm5p0AvcrG7LqCnGpnV6qmCaPYDzU4idBMU9YRc1KEo69BTPJ6lU3Md88pMKvrFtWljb1lghZ4iHEi8Gw2Slb5ML01BYTCMsH4LI/RqNMAluHY2rp2O31+BDXAKudCbgfghwjsWSsWhRbs2dhRGsmb9zVPPBr/a3UAgYL2ehNtdH12L13Xp6aWC4Lo0mHS/US8UUF9Bh7agUb6E3oQW0nwvtS0iAdbse4xg/DvkQt7JrzuU9ShvWfYm8tbl5L6AFNRTp6C1BpdrfiR6qCB/RNK0WvfqKchdAkpyGBr1LrxM30p0h4iiKN5LaxNkP3DRLQH5eGaPIBTSE4x6Ce5FPPG+jFC8pttDDxVkRod47SjMdyTeRsGoIYTfxstegb+d9oYFkQepdVEssIfnnOxGQHsWKvKa7IavUCvQtcRl7rrh3fljMLnQCwXB/1tM039KlELnMDsOm2JYi+8Z1uwPmSHr0xDKo0wtfjSdKBWhma+QvQSNcRFslGvQyHdiuLGBBNfdUDIC/7NmSKx2N2yvwNbxrApDAAbmQHg8jydABuo2wUlS9KQH0ezGD4pR6B12LTT+HjSkgsLcBPKEHvIQ0kOhuQ1N5UEIv+++Vw+OnMRJfUcsFnsFhNztSTxZa9q8Nwoi3w+iMGAYmTOys67FvwAh+LOnAYsUsFY2clQbeB903zdo7jIQyF+768dB8aRQCqLgg9jpR7NQ0n3h1l21VqHFvZ4geNakae41UONrPBcddFp+poB1DCf5oBREoSpEtPmgfZ+nMQv0HWbxgfeXl3ghUD09NrkRROhIO3cdQ/Z5nOSDUhCFmqCvv65Zd3gaNGhPVdvQJU7g9fBaKzlpYKCHhL9buY6avYyTfFAKolAXBdvEyrsbFYJyJyd7EAnEEx6+oJyvnzC1+CJ3HSl8Dif5oBREoSGE59h7oTErHCgTcU4uga55eDS7tcPguwgjYO/rrqNSEIWOAML+c3fDoqF9q+O6PkKbo8o8mvUoJw0MaFuuu46gqlFklIIoNAxDix/oadig9VtOKqGwk6/c00AYttN6CycPBMTCqes5UMczOckHpSAKDYPcTtwNC/viKU5yYzZdd/OR9zCnDQRQp8vd9cOQ60hO8kEpiEIzmI0hk3ttZErmQ0Q9i4sHZB3FSQMBDBU9C5kUpI2TfFAKotAUIOye2SxynOSkEiBEnthO6FF+wkl9R3TO6C6oU3kIqFkv1dpwphREoSlAQf7kblzy3OWkEiAA+7t5IFTPDYodEtWsw911A93NSVIoBVFoCmjcR92NKwv4Vti74t13Yc6xDuLkvgIK7gkFhN7tPzlJCqUgCg2DegE07rZy41ovVdtDjbQfuIUAgnUHJ/UNw2FrN9TFvZYzxTGAq0IpiELDoN137obF1zfDST4YoVHHzUsUDSfezcl9AQSzwg1fhHetCaUgAwLybepFJL12gF7hQk/D1j5slGa8POE/9WD8Vlzvy75rCLaF+ns2iOkhez9OrgqlIAOAsJY4WLiIa/amMIYBfHmgQF66EHjP1t560REjQXvczU+kB+I9jzUrojsW9vK760LGeV1lVQrSZ0ApTsVLKo+LNetx/N2DkwcFs1CvH5XqKMjaSLvzOL0aZlUKJglYr2NjkSHurgNoSg+OvpeTa0IpSJ8BBaG94uWXJcjaMkhRvSmmVmUdaZsuJ9cEHe4CgfAGZobBTuGMmKWrQC+2AALomlggsq7g5LpQCjIAwAs72fPCCkQnuH47Hu9vLCnagkt1cdcN9V3RTARA2UcAz3b1+ND4TszSFaCcPSB8nuB1KHcdhf9hlrpQCjIgwIv6LK3qel6ceHn2WjYme2rc0rZalF0ZrpME7MlIZDTMbA2BbAAI1m8q84po1g8bGKa1BD048l6UUXmQzgsQzncxS0PwKYjc/6wpKAVpETSNipfnWYgrkhCwOkHOOgU6bgGCMOGvh7Wl1TrQEWh4Nn+emvV/MneVNjArEkgcgfdVccCnNUneyMzTMArH49GBoKW8JqNvqx+4ohaUgrQBsae7Yt+Fl6zlaPxPxmJjHQ1YLcLhhOIfhmLcKS1XszbXcuprBBQ8Dvn7I6Zo1uN6wP4YWNrqJUX+/kOIQNakGUwcwmxNA3n80Z0fnuE4TmoJSkHaxyxDSxyMF1k1Hi/StuDFXodh2WF8fl3TwhWNju5iBu1x5EHHKlcvS7MfMAJzo3xbW9B16+0Q2JXScqCctB0WbE0F1aYeCHmeA3rel69mvdju1DIJsDtPvI9nYnPsGCdLEQvEqkakVArSIVBXjsb4ptQ2qaTC9PAvhd2gWSfga/8ZCP9iI2wdEC4clXwoBPAkPWR9C79vBs9jpXurEMreijy+3mlHQ3KRp22usjIFafYaPRj/uqmNLiqEPvUY87PI10vsfZ8jQhNRwDvpkcl4b+t1Lb4n39cywuHd34E6eYLq4V0+jWunGKFEKkrnj9BmMjFlb/0Q6WtBNLEhna5XCtJh0HFceKnfx8uvmK7sDqGsbaZmX9XtY8AovjDK82yukpP1PIT9cSjsJiGY9YN3k3AupWATXFTbQLmVaymNkDSkqFKQLoGGUpGgfTZe8EbPC+4UafFHIIhn9vLIYfIGpl6toV6yAcK7+Z0Rst7D2XcSs2nWTVZmdbIm9UDCdy64UpAug2ZWCt164gx06/fgBbtnWRomNNQTuPfXES1+SiQwOm9oaEnvDmOsQOEA08QZqJN0Fq8OPY8v/LUYVjZ8OGdrWDLbLCya+s5h95Nok7vRC7+fby5BKUiPQeE+zeDICPlGURhN9DJfZVvjcijQMnydL6PogRjSnGwER8gWSfPUal8cB2tjyWzy+kUdT4Lg3ADKg9zj/yk80yYMt+7E81xAdlavQ5vSDkTU6aOgM+g4BROE+pyH9/wfZO+R9wC1CbP7QDOVtE+/SDRxwUkKHgwN/T/fvy7K4dvMgwAAAABJRU5ErkJggg==" /></p>
+                  <p><img class="img-responsive" alt="Solr Logo" width="128px" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABlCAYAAAAI2qyuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAXEUAAFxFAbktYiwAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjEuNWRHWFIAABv7SURBVHhe7V0JuBxVlX4JMy6jM4qOC4rp6qWq+jW+ruoXkIjoS1d3EhYXRvNkFHFBYECUAXGAASEOyiLIrigOEpDoACIqwogLiwMSkIghYF4viSFhiUGWCAQIyXuZ/9w+3V3VdXtfee/+33e+16/uqXtv1T2n7j33nnvukIJCP7BjbOzvsgt0O5cyjsymzG9mU8YvcylzIucYT2Ydczt+7xDkGFuR/hf8XplxzHG6d20qauSSkfCSJUOzRWYKCtMBE3uZ/5hxjE9A4K+FEmwuKUFj9Nd1Y9brdwwNzco6xr10DXk8DAX77kTaXEQKx8UoKLz8AGE+D73BcxVC3zBl09HPUz6ZpOHI0kEboXhnrU3H5ogCFRQGHSvmzv17+stf/ZaVA71EppgXFO0Xcp4CYai2LZeKLs2m9BDxKygMHEg4Mynz+kzK2IP+X52KvlEmzI1SPml+kPLB8CyOXmJKxuMnYyvoG7l9Iv9E9yoo9B3Xjg/thC/8cegtnsffFyGcr6TrBWNcJsQNkGPeIjIHkO8yKU9teiSXiryfs1BQ6A8eWhTdBV/3W4qCid/3c9IQ9QAugW2YoGSTeSc6Snn8KTkcKAyf5Ly1iHudi9eNBV4lKqSg0Evk0tF5EN7HPILpmN/l5CEMdY71pDVKjnkFZ0HDqwulPE1QJmneM5E238ZZKih0H3ln+AB8oV/wC6TxOWYhBfmGP702offYknX0t9P9Dy6MvaE9I99Fjrk+50RiomIKCt0EBO7jENzyop6LVqNXYTbiu6YyvR5NpMz/4tuH8PvLMp6WyTFO5awVFLoDfIkXQ9CkygHatuL9c/+BWYfQwyyX8FQlKN1jGxfEX0P3blg879XoTTbJ+JolskUySeNEUae0PkxEvxUUOgoMfd4rZqkkQkgEAV/FrALgfVzGV41gb3yWbx3KYKgm42mWqKfLpqKHU54Fg9/cgHqtp8kFUZCCQidAK9UQrpoCD2H8HrMPUU9SbRhWhVZeOz6+E927A39h/K+R8DRHjrGVejzKM7dP5E3IM1NMQ92WF6ejFRTawoPjsVdA0O72CJ+E0AMcxbcMkVOhjEdGYgiUNlJ861DeMcdlfM2R8SyM8gWUHy0aQllWSPguFgUqKLSDfMrYRyJcPppImnvxLSTkSRmPlBzjRr5NAMr4eylfo+QYT2A4+C7Ki9ZAsk70NhmfUEw8myhUQaFV0PBKJmBuwvDlpXVjY6UFOVw7pJKnCm3LObHS9Cv1JBKeZuiRfHJ4N8qLPH2hbD+V8JTJMdY/OBZ7rShcQaEV7FgyNBtj9iekAsaE9AeYXSDjRJfI+CoJBvO3+BYBKNrNMr5GCHXIToyZGuVDjpIZx7xCxucjxzhbFK6g0CogSP/rEywXQThLBjoBw5fLZHxugnJsJuOZbxnKLtQtGvbIeOsRyr9vrfPOt1A+pBzoOc6V8ckIivRiUbEUFFoCBPcsmXAVKTvfPJpZBSCgv5bxecgxjmd2gXzKvErKV4egHLevTYdex9lQXZteYMykyi4yCgp1UXT3KAJC9JFKoXJTZoHxHmYVgPBnZXxFwlDqIbcTYatOidmkccNd83Z9NWczlEubR0BBpLy1iNZ31NqIQsOgIRL/FPgzBFgmWET4gm9fySvgBLFRSuqnVSYo4L8yuwAUqmmnxIxjXFncUEWgPFHupIy3EZpwzNM4KwWF6kBvEKRZqdtc+70L43q5oQ6h/BOzCZAtIOMrEgR7OeXH7IWNVU06JaJ+F7jzyM83F1GdZbyNEnqRh4uLlQoKVTGRLIzhK/d5QwApAolfuBzzSmYRoB2FUj4QlGkqM987HAP/KTJeGdH9EOST+VaBNRjeNatg1YjWbzhbBQU5MGQS0UMyaWNvviQAwTyzUqCIILReA72GvQJl+BGzCWyA/YB8G3JKLAyfyu70hDUpcwQK+pSMvxWinomzVlDwY82C0JsLgigE5iC+LABBXOwWpiKREyOzCOTmG8fL+cwXK4MqgLdBp0Rjaz41fCDfJiDcWRzjUTl/a4Q65jl7BQU/3EpQdBEvYt0iU3MLExG+uNsedbm4E6oZ3Og9zmEWAbJxoIx1nRIhtFvI3YVvE1i9KLpLxjHXyvjbIRrCqdkshapAb1BaYIOCeJz5eEX9abdAQaFWc3IJuH69h6dAIgAcswhAYQ6U8HkICviU28eLsGr/kZ0hyPfL+Nsmx9iu7BCFqoDg/colMDfx5RIgQN4FwLTXQCdgOOTznEW+HjuFAOWq45RoPDYBG4PZBWg6GUp6l5y/daLVdDzbpVBGk4tSUPAjk6RwOQWhwdf7Qb5cAoTobLdg5dLGMZwkUFgDqexlygHgiqgRKVEQ8siTjcHsAsLtPlnb5aVZwvANBr5x+rqx2Fu5mKHMmPHP/FNBoYyCa3h5oQ2/N7vXGgj5tPFRj4Alh9/HSQIUh9edhyDH/AAnl4BeoJZT4v3r9isLLKEwvDOvlvC2RJmU+TCGeF/c5PLkLYQwMi6nHoovKSiUwTv5HigKEQRyigSekwUecG2EQvp2t4ARMguNaDFd8KSMWyuVjALKkTHs5ivxO+Ydq/Ye2ZlZBUSv5JiXyPibJsdYlU1FP7XD1aPRPviC97HxLPFAQR7iJAUFL/BV9WyOyiZ1i5ME+EsuIrRDkLJ8uYTcgujC0r2pcgA4N6A0PyjyeMgxbnIHfSgCw7ivSvmbINTldjzLfm5lpWeBjXMInsMzVYz/NzOLgoIfEJDS8CefDIv4uG5gyPQbTv8hXyoBaUcU7804RikAXBHVnBJJacjGYLYSYKu0FnwOhOfYDrpudTpSCkVURGa+kULafbL7yGBnNgUFPwqr04WACxh6lPaZF4Gv8ddFGsbwfKkECPTXhKA5xnOVHsEEKMIFRUEsEuyBi+lrziwl4Iv/yWpDsVqEe15AOd9ekx7WOasSKOQP6nYjeKT3EikFeZkgEom8skixmP/r2k3Q/ggWljP4UgklQz0dHeNLJaAHuZLSMAzzecZWOiWSkIJKgeLcgPJ9CDxNub+jR3gyl4qevsoJio1TbhSimujfRHl184RyPcu3KQwq5u0679VG0NpWJF2z/8JJPYHwyHWMZyDwV/OlEvILYxHqYSoNeAKE9DbQY7J93rjn1LIQmpMQ2C9wkgf5VHg+0mu6y7sJ5a3HcO4YWZk0M4e0E4p2UyOEsh/m29vB+E6RyGjYDCY+YASsYwzN+oYRtJfi73X4eyPoZ3rQvhZ/L0cDnwOeY00t8UG6Z2hoiTpjrg4KCmLvKBIU5AlO6hkgVCeDlvO/JYjZLsdYwf96AIVam0uah/C/JRQiJRocV8t4CcryCU7yYCIZnYsy/1YptDJCfqvy6eGDZcew0TmGtFIPnnWye2tRNmn+gbNpDqY2YhqB+IkQ/JuhCJvdDdgMobGfMjT7el2zDo9G93gjZ6/gwiAoCPlY5R3DpyAECHgpCmIRPMP1e5k9AWE9UggfnSEyX9+fL3uQGTOiULCanr34uk9hCHQreoV9K6ePiyAvZFJs2f0N0vWcVX0EAmOvigTjn4Uwr3A3WKcIDb8VtAzkmU6c6RgEBSFMpMyDZLNLlQ6KBDLKi8Ha3Cg6JUJoN1d6/hbxwMLd3gHlWS8RVkFI2w7F+NFaPr1KBvIURjnXgqR5NEpQ5tM5y+oYw0OZocQR+NI/4m6oLtIkhOCqUCj+Zq7CjMagKAgNVXYc7nUTqYZqoTzFUCdl/qVyTaWI3N6RN6HnWC0TVtHjpMxLyO5hdh/W7z2yM5TvXFDVuMHNUDYZ/RhnLcdw2NpND1p/cDdQJWGYtR22xWr8vUYPJk6LBOJHmEF7cVSzFpphK4nr6TBsDj1gfRrDsRNwz6XohX6HfLdU5uUhzd5EeXBVZiwGRUHahVgFx5c/vzAsFXAy9KEcPqdFKMaTGMZ9dc2C6h9MWg0nQx+8NWN2NUu05ZiL8ANCPg7BlwoxhP5p/P0uGeaRyLtaOiSRpiuFAmn2+aQMlWUI0mjmxj6Ub5mRmC4KQj5VsvUQgvD9gj3hFk78/xB6jKNrRTskpYMNcgAUo2bklFYo45gbqtk2QwZsDTTGlLthBIlhlnXU3F384852QMoiytSsh31loh5kxDPrjMN0UZBqoJkwCGRp3wiU4n6yd9yBImQQs1wp8/bifR0nx7yUi/IirI18sDBscgupNUlTtPF4OaRLNxB/S/w1EIBzC+V5hGJ7JBj3eYLOBExnBSnMdhnfg6BTAIZbaLdg1a82Iw8jHsL7ffC3HNanESJ/LS6yDGNOPOiftrWep3ULZukJxJpK0H7OXQ8IxjM0vcwsMwbTWUHyKf0sCPo1E2Pm7nypKoSNkjK+Rsa6TKA7SajT47IZu1lQjl9VNMbWfhnKEc0eI+V01wdDvPt67WrRb0xXBaHTZnPJ3TwboWSgoVY+qR8GxdgoE+ZuEG035uLLMEKJlLshiCCk/87JfYEZtD/uqZNm5aPh0bmcPCMw3W2QWshgyAXFKO1L6RTxkG4T8qYtwT/OOcY55KKC3x9ZkzZ3l7nawzC3r/c2hEW7qfruCoJeYyno50bI3hf/zjjXlJmoIGsWRN8JO+MXbqFujjAMc8y1UIDb8HspeoTToACH0h4V2sjljgXcEDBseS2E8EV3Q0QGZw2iptE23TGTFOTBsdhbs0nzvyHYVc80LHz9yVvXXJlNGTeA//y8ox8HA//A1anou8m5kmbGOMumUHWCgBbz3I0AZSEvxhktmIOCmaAghYM+zZMg+M9guLMVtB49wB15x1iWSRtnkP8WzSpRz1I8HrpdkBLRPpGsE6VA17Sv5TcoV36ADnoLWuEuK0jQvpyTFPqMmaAgFPCBfLNoIXFFg+4szYCUgcL4YJj1CSjiebQoib+VnsJ/rRrFBC/+Ik8jBOPHcZJCnzGTjfRWQLNeHDDioGxKPx/KcHsxCEMtQg9V3e/KCFpXeBohYNd20poBGMdXJxqMG7QGZGr20REtfooesL5Cbv6RgPUZXUu8zzDmdj1uklKQ6qAYW3TwJ3qDT2N4dCGGSndimNZ0dHcM4f6Hs5QDNscyTyMEEh/mpBkFWsk3g9ZBeB8/9i+YSmkK9tsEhPZcnn7uuN3WDQWJBO3FyOvuIpG3NifVw6xhLRGIzME7ClrnmIWNcLdRHnrQuh3pXZtlJGWg6IprUvqncmnjIgj2negdOrFouJrOT+di5MADXgoqN7yWOJiTZgTItR7PfTaInDDL76FZ0ux7IsEEucR0TFG6oSAQ5s+788THoOa+B+opjVD8RJS9ynOfi5Dn80uWdGaHKLnLk0t8Nq0flqP94465HNT5FXTHeGJ1KmpwsdUBm+Msz8Nq9pc4aVpjLr5KRsg6XtesZ9zP3wG6VQ/sNszFtIV+Kkhh+t86A71F7a0JoHYURNgNwitXBIW7G387sp+jJlGk+Ipg2FUBAfm3igdeyknTFhhGDuM5a+11mYIwrscQ6ic0nMA7+rIRsk/EfafBLrkM/9+L9K2S+5isF0DHoqi2epN+KYgZsOaD7yEPXw3qQA8yi06yyiajH86n9K9AiG/CEGoj7Aq5gLdBUMAtFBOYy60PjEF39zysZq3H5Wm7DmIErAMg+M+6n7lEmrUBdsjJ4XCCNvbUfAf8hf0o7rsZ5N8eANJD9nXtbA/oh4IYwcQX/R7dLtJs2pawVOQTju+jByw7FprrOaatE6CFO/LZghH9IQyHTsVX/0YIeFs+WVC4pzNj3hOz6oK21eKBPeNvchbk5GmFQm/pdacnguD9FX8/R8MuZm0K4fDIKITql5X5EuH68tiu897ArE2hxwoyC/mf50ljwvWt+LBcYYZtGpb09eO5Hkoz4ZgfEEqTMn4GwX+EVtgrlcFHjpGjgHGcTXPAV2FpxQu5BZenVS8C5TgMz+b70uP6dZGI/SZmawez0GN8DArhM/YhlPe2svuylwqC3zRRUb5eTr+OtkKImwcTs2hLbjYV3R/Dp5PR0/wUfze4lQP//3T9/t5g2E1B10b3lLycabPdVQ/Y+0G4vMMGzdrWDY9lfc7uISjd/Z6yCnQz9dbM1hB6pSAUS8BzTVy3/6aHEp5zzF9OEEqT1PeDwizGv+1/7PFCbqh4SS/Qghgnv2yh67uH8CyerzoE+CU9EO/aeg/1FhjK3e4uU5QbtM9ilobQIwX5Fb0P9zXwPBoMjnpOdeoGyM7IJaMLs46xDMOkSzBkOoW23NKRzrR7sPLAnb6CDC28LM8CGRrkWSOQ8Byc+HICrYgbWvx3Fc9EW3g/wixdAxnxELzfu8sGTVKwCmapi54oSCVRRJlgvP76QAfB8XovhIJs9Q6NyLPXeAi/f5tPmVdRzN1M0jgy4xj75pxIjBb5KCQRZ9N90FcVL6linG5NRoLWOdTgzPaygVQYQtYJnNx1vDO451t41qdUPuqUp0B8zFITvVYQ6knYEO8LaOEOCnF9o9O7ZJzDvtgMRbor6+j/wtl0FzTNh5clmba0NqKHOb4XPkidQGzX2BtQ76fczwAB+AWSejr5wNuHPTNn5EHNyTXRawUxNevLzNZX5NKRMfQo98qUokjkdwXl+Dl+H7I2HXod39ob4GUdWjkuLRIaaSsU5SY0+rG0hjKoPYseTJxZUe9nIpGRXTm5p0AvcrG7LqCnGpnV6qmCaPYDzU4idBMU9YRc1KEo69BTPJ6lU3Md88pMKvrFtWljb1lghZ4iHEi8Gw2Slb5ML01BYTCMsH4LI/RqNMAluHY2rp2O31+BDXAKudCbgfghwjsWSsWhRbs2dhRGsmb9zVPPBr/a3UAgYL2ehNtdH12L13Xp6aWC4Lo0mHS/US8UUF9Bh7agUb6E3oQW0nwvtS0iAdbse4xg/DvkQt7JrzuU9ShvWfYm8tbl5L6AFNRTp6C1BpdrfiR6qCB/RNK0WvfqKchdAkpyGBr1LrxM30p0h4iiKN5LaxNkP3DRLQH5eGaPIBTSE4x6Ce5FPPG+jFC8pttDDxVkRod47SjMdyTeRsGoIYTfxstegb+d9oYFkQepdVEssIfnnOxGQHsWKvKa7IavUCvQtcRl7rrh3fljMLnQCwXB/1tM039KlELnMDsOm2JYi+8Z1uwPmSHr0xDKo0wtfjSdKBWhma+QvQSNcRFslGvQyHdiuLGBBNfdUDIC/7NmSKx2N2yvwNbxrApDAAbmQHg8jydABuo2wUlS9KQH0ezGD4pR6B12LTT+HjSkgsLcBPKEHvIQ0kOhuQ1N5UEIv+++Vw+OnMRJfUcsFnsFhNztSTxZa9q8Nwoi3w+iMGAYmTOys67FvwAh+LOnAYsUsFY2clQbeB903zdo7jIQyF+768dB8aRQCqLgg9jpR7NQ0n3h1l21VqHFvZ4geNakae41UONrPBcddFp+poB1DCf5oBREoSpEtPmgfZ+nMQv0HWbxgfeXl3ghUD09NrkRROhIO3cdQ/Z5nOSDUhCFmqCvv65Zd3gaNGhPVdvQJU7g9fBaKzlpYKCHhL9buY6avYyTfFAKolAXBdvEyrsbFYJyJyd7EAnEEx6+oJyvnzC1+CJ3HSl8Dif5oBREoSGE59h7oTErHCgTcU4uga55eDS7tcPguwgjYO/rrqNSEIWOAML+c3fDoqF9q+O6PkKbo8o8mvUoJw0MaFuuu46gqlFklIIoNAxDix/oadig9VtOKqGwk6/c00AYttN6CycPBMTCqes5UMczOckHpSAKDYPcTtwNC/viKU5yYzZdd/OR9zCnDQRQp8vd9cOQ60hO8kEpiEIzmI0hk3ttZErmQ0Q9i4sHZB3FSQMBDBU9C5kUpI2TfFAKotAUIOye2SxynOSkEiBEnthO6FF+wkl9R3TO6C6oU3kIqFkv1dpwphREoSlAQf7kblzy3OWkEiAA+7t5IFTPDYodEtWsw911A93NSVIoBVFoCmjcR92NKwv4Vti74t13Yc6xDuLkvgIK7gkFhN7tPzlJCqUgCg2DegE07rZy41ovVdtDjbQfuIUAgnUHJ/UNw2FrN9TFvZYzxTGAq0IpiELDoN137obF1zfDST4YoVHHzUsUDSfezcl9AQSzwg1fhHetCaUgAwLybepFJL12gF7hQk/D1j5slGa8POE/9WD8Vlzvy75rCLaF+ns2iOkhez9OrgqlIAOAsJY4WLiIa/amMIYBfHmgQF66EHjP1t560REjQXvczU+kB+I9jzUrojsW9vK760LGeV1lVQrSZ0ApTsVLKo+LNetx/N2DkwcFs1CvH5XqKMjaSLvzOL0aZlUKJglYr2NjkSHurgNoSg+OvpeTa0IpSJ8BBaG94uWXJcjaMkhRvSmmVmUdaZsuJ9cEHe4CgfAGZobBTuGMmKWrQC+2AALomlggsq7g5LpQCjIAwAs72fPCCkQnuH47Hu9vLCnagkt1cdcN9V3RTARA2UcAz3b1+ND4TszSFaCcPSB8nuB1KHcdhf9hlrpQCjIgwIv6LK3qel6ceHn2WjYme2rc0rZalF0ZrpME7MlIZDTMbA2BbAAI1m8q84po1g8bGKa1BD048l6UUXmQzgsQzncxS0PwKYjc/6wpKAVpETSNipfnWYgrkhCwOkHOOgU6bgGCMOGvh7Wl1TrQEWh4Nn+emvV/MneVNjArEkgcgfdVccCnNUneyMzTMArH49GBoKW8JqNvqx+4ohaUgrQBsae7Yt+Fl6zlaPxPxmJjHQ1YLcLhhOIfhmLcKS1XszbXcuprBBQ8Dvn7I6Zo1uN6wP4YWNrqJUX+/kOIQNakGUwcwmxNA3n80Z0fnuE4TmoJSkHaxyxDSxyMF1k1Hi/StuDFXodh2WF8fl3TwhWNju5iBu1x5EHHKlcvS7MfMAJzo3xbW9B16+0Q2JXScqCctB0WbE0F1aYeCHmeA3rel69mvdju1DIJsDtPvI9nYnPsGCdLEQvEqkakVArSIVBXjsb4ptQ2qaTC9PAvhd2gWSfga/8ZCP9iI2wdEC4clXwoBPAkPWR9C79vBs9jpXurEMreijy+3mlHQ3KRp22usjIFafYaPRj/uqmNLiqEPvUY87PI10vsfZ8jQhNRwDvpkcl4b+t1Lb4n39cywuHd34E6eYLq4V0+jWunGKFEKkrnj9BmMjFlb/0Q6WtBNLEhna5XCtJh0HFceKnfx8uvmK7sDqGsbaZmX9XtY8AovjDK82yukpP1PIT9cSjsJiGY9YN3k3AupWATXFTbQLmVaymNkDSkqFKQLoGGUpGgfTZe8EbPC+4UafFHIIhn9vLIYfIGpl6toV6yAcK7+Z0Rst7D2XcSs2nWTVZmdbIm9UDCdy64UpAug2ZWCt164gx06/fgBbtnWRomNNQTuPfXES1+SiQwOm9oaEnvDmOsQOEA08QZqJN0Fq8OPY8v/LUYVjZ8OGdrWDLbLCya+s5h95Nok7vRC7+fby5BKUiPQeE+zeDICPlGURhN9DJfZVvjcijQMnydL6PogRjSnGwER8gWSfPUal8cB2tjyWzy+kUdT4Lg3ADKg9zj/yk80yYMt+7E81xAdlavQ5vSDkTU6aOgM+g4BROE+pyH9/wfZO+R9wC1CbP7QDOVtE+/SDRxwUkKHgwN/T/fvy7K4dvMgwAAAABJRU5ErkJggg==" /></p>
                 </div>
                 <div class="col-sm-9">
                   <?php
@@ -75,14 +76,14 @@
                   <div class="progress">
                     <div class="progress-bar progress-bar-info" role="progressbar" style="width:<?=round($solr_status['jvm']['memory']['raw']['used%']);?>%"></div>
                   </div>
-                  <p><?=$lang['debug']['jvm_memory_solr'];?>: <?=$solr_status['jvm']['memory']['total'] - $solr_status['jvm']['memory']['free'];?> / <?=$solr_status['jvm']['memory']['total'];?>
+                  <p><?=$lang['debug']['jvm_memory_solr'];?>: <?=(int)$solr_status['jvm']['memory']['total'] - (int)$solr_status['jvm']['memory']['free'];?> / <?=$solr_status['jvm']['memory']['total'];?>
                     (<?=round($solr_status['jvm']['memory']['raw']['used%']);?>%)</p>
                   <hr>
-                  <p><?=$lang['debug']['solr_uptime'];?>: ~<?=round($solr_status['status']['dovecot-fts']['uptime'] / 1000 / 60 / 60);?>h</p>
-                  <p><?=$lang['debug']['solr_started_at'];?>: <?=$solr_status['status']['dovecot-fts']['startTime'];?></p>
-                  <p><?=$lang['debug']['solr_last_modified'];?>: <?=$solr_status['status']['dovecot-fts']['index']['lastModified'];?></p>
-                  <p><?=$lang['debug']['solr_size'];?>: <?=$solr_status['status']['dovecot-fts']['index']['size'];?></p>
-                  <p><?=$lang['debug']['solr_docs'];?>: <?=$solr_status['status']['dovecot-fts']['index']['numDocs'];?></p>
+                  <p><?=$lang['debug']['uptime'];?>: <?=round($solr_status['status']['dovecot-fts']['uptime'] / 1000 / 60 / 60);?>h</p>
+                  <p><?=$lang['debug']['started_at'];?>: <span class="parse_date"><?=$solr_status['status']['dovecot-fts']['startTime'];?></span></p>
+                  <p><?=$lang['debug']['last_modified'];?>: <span class="parse_date"><?=$solr_status['status']['dovecot-fts']['index']['lastModified'];?></span></p>
+                  <p><?=$lang['debug']['size'];?>: <?=$solr_status['status']['dovecot-fts']['index']['size'];?></p>
+                  <p><i class="bi bi-file-text"></i> <?=$lang['debug']['docs'];?>: <?=$solr_status['status']['dovecot-fts']['index']['numDocs'];?></p>
                   <?php
                   else:
                   ?>
@@ -129,9 +130,10 @@
                 $started = '?';
               }
               ?>
-              <small>(<?=$lang['debug']['started_on'];?> <?=$started;?>),
-              <a href data-toggle="modal" data-container="<?=$container;?>" data-target="#RestartContainer"><?=$lang['debug']['restart_container'];?></a></small>
-              <span class="pull-right status-indicator label label-<?=($container_info['State'] !== false && !empty($container_info['State'])) ? (($container_info['State']['Running'] == 1) ? 'success' : 'danger') : 'default'; ?>">&nbsp;</span>
+              <br class="visible-xs" />
+              <small>(<?=$lang['debug']['started_on'];?> <span class="parse_date"><?=$started;?></span>)</small>
+              <a href data-toggle="modal" data-container="<?=$container;?>" data-target="#RestartContainer" class="pull-right btn btn-xs btn-default"><?=$lang['debug']['restart_container'];?>
+              <i class="pull-right bi <?=($container_info['State'] !== false && !empty($container_info['State'])) ? (($container_info['State']['Running'] == 1) ? 'bi-record-fill text-success' : 'bi-record-fill text-danger') : 'default'; ?>"></i></a>
               </li>
               <?php
               }
@@ -142,12 +144,12 @@
         </div>
 
         <div role="tabpanel" class="tab-pane" id="tab-postfix-logs">
-          <div class="panel panel-default">
+          <div class="panel panel-xs-lg panel-default">
             <div class="panel-heading">Postfix <span class="badge badge-info table-lines"></span>
               <div class="btn-group pull-right">
-                <button class="btn btn-xs btn-default add_log_lines" data-post-process="general_syslog" data-table="postfix_log" data-log-url="postfix" data-nrows="100">+ 100</button>
-                <button class="btn btn-xs btn-default add_log_lines" data-post-process="general_syslog" data-table="postfix_log" data-log-url="postfix" data-nrows="1000">+ 1000</button>
-                <button class="btn btn-xs btn-default refresh_table" data-draw="draw_postfix_logs" data-table="postfix_log"><?=$lang['admin']['refresh'];?></button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="general_syslog" data-table="postfix_log" data-log-url="postfix" data-nrows="100">+ 100</button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="general_syslog" data-table="postfix_log" data-log-url="postfix" data-nrows="1000">+ 1000</button>
+                <button class="btn btn-xs btn-xs-lg btn-default refresh_table" data-draw="draw_postfix_logs" data-table="postfix_log"><?=$lang['admin']['refresh'];?></button>
               </div>
             </div>
             <div class="panel-body">
@@ -159,12 +161,12 @@
         </div>
 
         <div role="tabpanel" class="tab-pane" id="tab-ui">
-          <div class="panel panel-default">
+          <div class="panel panel-xs-lg panel-default">
             <div class="panel-heading">mailcow UI <span class="badge badge-info table-lines"></span>
               <div class="btn-group pull-right">
-                <button class="btn btn-xs btn-default add_log_lines" data-post-process="mailcow_ui" data-table="ui_logs" data-log-url="ui" data-nrows="1000">+ 1000</button>
-                <button class="btn btn-xs btn-default add_log_lines" data-post-process="mailcow_ui" data-table="ui_logs" data-log-url="ui" data-nrows="10000">+ 10000</button>
-                <button class="btn btn-xs btn-default refresh_table" data-draw="draw_ui_logs" data-table="ui_logs"><?=$lang['admin']['refresh'];?></button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="mailcow_ui" data-table="ui_logs" data-log-url="ui" data-nrows="1000">+ 1000</button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="mailcow_ui" data-table="ui_logs" data-log-url="ui" data-nrows="10000">+ 10000</button>
+                <button class="btn btn-xs btn-xs-lg btn-default refresh_table" data-draw="draw_ui_logs" data-table="ui_logs"><?=$lang['admin']['refresh'];?></button>
               </div>
             </div>
             <div class="panel-body">
@@ -175,13 +177,30 @@
           </div>
         </div>
 
+        <div role="tabpanel" class="tab-pane" id="tab-sasl">
+          <div class="panel panel-xs-lg panel-default">
+            <div class="panel-heading">SASL <span class="badge badge-info table-lines"></span>
+              <div class="btn-group pull-right">
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="sasl_log_table" data-table="sasl_logs" data-log-url="ui" data-nrows="1000">+ 1000</button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="sasl_log_table" data-table="sasl_logs" data-log-url="ui" data-nrows="10000">+ 10000</button>
+                <button class="btn btn-xs btn-xs-lg btn-default refresh_table" data-draw="draw_sasl_logs" data-table="sasl_logs"><?=$lang['admin']['refresh'];?></button>
+              </div>
+            </div>
+            <div class="panel-body">
+              <div class="table-responsive">
+                <table class="table table-striped table-condensed" id="sasl_logs"></table>
+              </div>
+            </div>
+          </div>
+        </div>
+
         <div role="tabpanel" class="tab-pane" id="tab-dovecot-logs">
-          <div class="panel panel-default">
+          <div class="panel panel-xs-lg panel-default">
             <div class="panel-heading">Dovecot <span class="badge badge-info table-lines"></span>
               <div class="btn-group pull-right">
-                <button class="btn btn-xs btn-default add_log_lines" data-post-process="general_syslog" data-table="dovecot_log" data-log-url="dovecot" data-nrows="100">+ 100</button>
-                <button class="btn btn-xs btn-default add_log_lines" data-post-process="general_syslog" data-table="dovecot_log" data-log-url="dovecot" data-nrows="1000">+ 1000</button>
-                <button class="btn btn-xs btn-default refresh_table" data-draw="draw_dovecot_logs" data-table="dovecot_log"><?=$lang['admin']['refresh'];?></button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="general_syslog" data-table="dovecot_log" data-log-url="dovecot" data-nrows="100">+ 100</button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="general_syslog" data-table="dovecot_log" data-log-url="dovecot" data-nrows="1000">+ 1000</button>
+                <button class="btn btn-xs btn-xs-lg btn-default refresh_table" data-draw="draw_dovecot_logs" data-table="dovecot_log"><?=$lang['admin']['refresh'];?></button>
               </div>
             </div>
             <div class="panel-body">
@@ -193,12 +212,12 @@
         </div>
 
         <div role="tabpanel" class="tab-pane" id="tab-sogo-logs">
-          <div class="panel panel-default">
+          <div class="panel panel-xs-lg panel-default">
             <div class="panel-heading">SOGo <span class="badge badge-info table-lines"></span>
               <div class="btn-group pull-right">
-                <button class="btn btn-xs btn-default add_log_lines" data-post-process="general_syslog" data-table="sogo_log" data-log-url="sogo" data-nrows="100">+ 100</button>
-                <button class="btn btn-xs btn-default add_log_lines" data-post-process="general_syslog" data-table="sogo_log" data-log-url="sogo" data-nrows="1000">+ 1000</button>
-                <button class="btn btn-xs btn-default refresh_table" data-draw="draw_sogo_logs" data-table="sogo_log"><?=$lang['admin']['refresh'];?></button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="general_syslog" data-table="sogo_log" data-log-url="sogo" data-nrows="100">+ 100</button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="general_syslog" data-table="sogo_log" data-log-url="sogo" data-nrows="1000">+ 1000</button>
+                <button class="btn btn-xs btn-xs-lg btn-default refresh_table" data-draw="draw_sogo_logs" data-table="sogo_log"><?=$lang['admin']['refresh'];?></button>
               </div>
             </div>
             <div class="panel-body">
@@ -210,12 +229,12 @@
         </div>
 
         <div role="tabpanel" class="tab-pane" id="tab-netfilter-logs">
-          <div class="panel panel-default">
+          <div class="panel panel-xs-lg panel-default">
             <div class="panel-heading">Netfilter <span class="badge badge-info table-lines"></span>
               <div class="btn-group pull-right">
-                <button class="btn btn-xs btn-default add_log_lines" data-post-process="general_syslog" data-table="netfilter_log" data-log-url="netfilter" data-nrows="100">+ 100</button>
-                <button class="btn btn-xs btn-default add_log_lines" data-post-process="general_syslog" data-table="netfilter_log" data-log-url="netfilter" data-nrows="1000">+ 1000</button>
-                <button class="btn btn-xs btn-default refresh_table" data-draw="draw_netfilter_logs" data-table="netfilter_log"><?=$lang['admin']['refresh'];?></button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="general_syslog" data-table="netfilter_log" data-log-url="netfilter" data-nrows="100">+ 100</button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="general_syslog" data-table="netfilter_log" data-log-url="netfilter" data-nrows="1000">+ 1000</button>
+                <button class="btn btn-xs btn-xs-lg btn-default refresh_table" data-draw="draw_netfilter_logs" data-table="netfilter_log"><?=$lang['admin']['refresh'];?></button>
               </div>
             </div>
             <div class="panel-body">
@@ -227,12 +246,12 @@
         </div>
 
         <div role="tabpanel" class="tab-pane" id="tab-rspamd-history">
-          <div class="panel panel-default">
+          <div class="panel panel-xs-lg panel-default">
             <div class="panel-heading">Rspamd history <span class="badge badge-info table-lines"></span>
               <div class="btn-group pull-right">
-                <button class="btn btn-xs btn-default add_log_lines" data-post-process="rspamd_history" data-table="rspamd_history" data-log-url="rspamd-history" data-nrows="100">+ 100</button>
-                <button class="btn btn-xs btn-default add_log_lines" data-post-process="rspamd_history" data-table="rspamd_history" data-log-url="rspamd-history" data-nrows="1000">+ 1000</button>
-                <button class="btn btn-xs btn-default refresh_table" data-draw="draw_rspamd_history" data-table="rspamd_history"><?=$lang['admin']['refresh'];?></button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="rspamd_history" data-table="rspamd_history" data-log-url="rspamd-history" data-nrows="100">+ 100</button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="rspamd_history" data-table="rspamd_history" data-log-url="rspamd-history" data-nrows="1000">+ 1000</button>
+                <button class="btn btn-xs btn-xs-lg btn-default refresh_table" data-draw="draw_rspamd_history" data-table="rspamd_history"><?=$lang['admin']['refresh'];?></button>
               </div>
             </div>
             <div class="panel-body">
@@ -249,12 +268,12 @@
         </div>
 
         <div role="tabpanel" class="tab-pane" id="tab-autodiscover-logs">
-          <div class="panel panel-default">
+          <div class="panel panel-xs-lg panel-default">
             <div class="panel-heading">Autodiscover <span class="badge badge-info table-lines"></span>
               <div class="btn-group pull-right">
-                <button class="btn btn-xs btn-default add_log_lines" data-post-process="autodiscover_log" data-table="autodiscover_log" data-log-url="autodiscover" data-nrows="100">+ 100</button>
-                <button class="btn btn-xs btn-default add_log_lines" data-post-process="autodiscover_log" data-table="autodiscover_log" data-log-url="autodiscover" data-nrows="1000">+ 1000</button>
-                <button class="btn btn-xs btn-default refresh_table" data-draw="draw_autodiscover_logs" data-table="autodiscover_log"><?=$lang['admin']['refresh'];?></button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="autodiscover_log" data-table="autodiscover_log" data-log-url="autodiscover" data-nrows="100">+ 100</button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="autodiscover_log" data-table="autodiscover_log" data-log-url="autodiscover" data-nrows="1000">+ 1000</button>
+                <button class="btn btn-xs btn-xs-lg btn-default refresh_table" data-draw="draw_autodiscover_logs" data-table="autodiscover_log"><?=$lang['admin']['refresh'];?></button>
               </div>
             </div>
             <div class="panel-body">
@@ -266,12 +285,12 @@
         </div>
 
         <div role="tabpanel" class="tab-pane" id="tab-watchdog-logs">
-          <div class="panel panel-default">
+          <div class="panel panel-xs-lg panel-default">
             <div class="panel-heading">Watchdog <span class="badge badge-info table-lines"></span>
               <div class="btn-group pull-right">
-                <button class="btn btn-xs btn-default add_log_lines" data-post-process="watchdog" data-table="watchdog_log" data-log-url="watchdog" data-nrows="100">+ 100</button>
-                <button class="btn btn-xs btn-default add_log_lines" data-post-process="watchdog" data-table="watchdog_log" data-log-url="watchdog" data-nrows="1000">+ 1000</button>
-                <button class="btn btn-xs btn-default refresh_table" data-draw="draw_watchdog_logs" data-table="watchdog_log"><?=$lang['admin']['refresh'];?></button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="watchdog" data-table="watchdog_log" data-log-url="watchdog" data-nrows="100">+ 100</button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="watchdog" data-table="watchdog_log" data-log-url="watchdog" data-nrows="1000">+ 1000</button>
+                <button class="btn btn-xs btn-xs-lg btn-default refresh_table" data-draw="draw_watchdog_logs" data-table="watchdog_log"><?=$lang['admin']['refresh'];?></button>
               </div>
             </div>
             <div class="panel-body">
@@ -283,12 +302,12 @@
         </div>
 
         <div role="tabpanel" class="tab-pane" id="tab-acme-logs">
-          <div class="panel panel-default">
+          <div class="panel panel-xs-lg panel-default">
             <div class="panel-heading">ACME <span class="badge badge-info table-lines"></span>
               <div class="btn-group pull-right">
-                <button class="btn btn-xs btn-default add_log_lines" data-post-process="general_syslog" data-table="acme_log" data-log-url="acme" data-nrows="100">+ 100</button>
-                <button class="btn btn-xs btn-default add_log_lines" data-post-process="general_syslog" data-table="acme_log" data-log-url="acme" data-nrows="1000">+ 1000</button>
-                <button class="btn btn-xs btn-default refresh_table" data-draw="draw_acme_logs" data-table="acme_log"><?=$lang['admin']['refresh'];?></button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="general_syslog" data-table="acme_log" data-log-url="acme" data-nrows="100">+ 100</button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="general_syslog" data-table="acme_log" data-log-url="acme" data-nrows="1000">+ 1000</button>
+                <button class="btn btn-xs btn-xs-lg btn-default refresh_table" data-draw="draw_acme_logs" data-table="acme_log"><?=$lang['admin']['refresh'];?></button>
               </div>
             </div>
             <div class="panel-body">
@@ -300,12 +319,12 @@
         </div>
 
         <div role="tabpanel" class="tab-pane" id="tab-api-logs">
-          <div class="panel panel-default">
+          <div class="panel panel-xs-lg panel-default">
             <div class="panel-heading">API <span class="badge badge-info table-lines"></span>
               <div class="btn-group pull-right">
-                <button class="btn btn-xs btn-default add_log_lines" data-post-process="apilog" data-table="api_log" data-log-url="api" data-nrows="100">+ 100</button>
-                <button class="btn btn-xs btn-default add_log_lines" data-post-process="apilog" data-table="api_log" data-log-url="api" data-nrows="1000">+ 1000</button>
-                <button class="btn btn-xs btn-default refresh_table" data-draw="draw_api_logs" data-table="api_log"><?=$lang['admin']['refresh'];?></button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="apilog" data-table="api_log" data-log-url="api" data-nrows="100">+ 100</button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="apilog" data-table="api_log" data-log-url="api" data-nrows="1000">+ 1000</button>
+                <button class="btn btn-xs btn-xs-lg btn-default refresh_table" data-draw="draw_api_logs" data-table="api_log"><?=$lang['admin']['refresh'];?></button>
               </div>
             </div>
             <div class="panel-body">
@@ -317,12 +336,12 @@
         </div>
 
         <div role="tabpanel" class="tab-pane" id="tab-api-rl">
-          <div class="panel panel-default">
+          <div class="panel panel-xs-lg panel-default">
             <div class="panel-heading">Ratelimits <span class="badge badge-info table-lines"></span>
               <div class="btn-group pull-right">
-                <button class="btn btn-xs btn-default add_log_lines" data-post-process="rllog" data-table="rl_log" data-log-url="ratelimited" data-nrows="100">+ 100</button>
-                <button class="btn btn-xs btn-default add_log_lines" data-post-process="rllog" data-table="rl_log" data-log-url="ratelimited" data-nrows="1000">+ 1000</button>
-                <button class="btn btn-xs btn-default refresh_table" data-draw="draw_rl_logs" data-table="rl_log"><?=$lang['admin']['refresh'];?></button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="rllog" data-table="rl_log" data-log-url="ratelimited" data-nrows="100">+ 100</button>
+                <button class="btn btn-xs btn-xs-lg btn-default add_log_lines" data-post-process="rllog" data-table="rl_log" data-log-url="ratelimited" data-nrows="1000">+ 1000</button>
+                <button class="btn btn-xs btn-xs-lg btn-default refresh_table" data-draw="draw_rl_logs" data-table="rl_log"><?=$lang['admin']['refresh'];?></button>
               </div>
             </div>
             <div class="panel-body">
diff --git a/mailcow/src/mailcow-dockerized/data/web/edit.php b/mailcow/src/mailcow-dockerized/data/web/edit.php
index 3a0bb04..30d584f 100644
--- a/mailcow/src/mailcow-dockerized/data/web/edit.php
+++ b/mailcow/src/mailcow-dockerized/data/web/edit.php
@@ -2,19 +2,19 @@
 require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/prerequisites.inc.php';

 $AuthUsers = array("admin", "domainadmin", "user");

 if (!isset($_SESSION['mailcow_cc_role']) OR !in_array($_SESSION['mailcow_cc_role'], $AuthUsers)) {

-	header('Location: /');

-	exit();

+  header('Location: /');

+  exit();

 }

 require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/header.inc.php';

 ?>

 <div class="container">

-	<div class="row">

-		<div class="col-md-12">

-			<div class="panel panel-default">

-				<div class="panel-heading">

-					<h3 class="panel-title"><?=$lang['edit']['title'];?></h3>

-				</div>

-				<div class="panel-body">

+  <div class="row">

+    <div class="col-md-12">

+      <div class="panel panel-default">

+        <div class="panel-heading">

+          <h3 class="panel-title"><?=$lang['edit']['title'];?></h3>

+        </div>

+        <div class="panel-body">

 <?php

 if (isset($_SESSION['mailcow_cc_role'])) {

   if ($_SESSION['mailcow_cc_role'] == "admin"  || $_SESSION['mailcow_cc_role'] == "domainadmin") {

@@ -82,7 +82,7 @@
             </div>

             <div class="form-group">

               <div class="col-sm-offset-2 col-sm-10">

-                <button class="btn btn-success" data-action="edit_selected" data-id="editalias" data-item="<?=htmlspecialchars($alias);?>" data-api-url='edit/alias' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

+                <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="editalias" data-item="<?=htmlspecialchars($alias);?>" data-api-url='edit/alias' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

               </div>

             </div>

           </form>

@@ -106,7 +106,8 @@
         <div class="form-group">

           <label class="control-label col-sm-2" for="username_new"><?=$lang['edit']['username'];?></label>

           <div class="col-sm-10">

-            <input class="form-control" type="text" name="username_new" value="<?=htmlspecialchars($domain_admin);?>" />

+            <input class="form-control" type="text" name="username_new" value="<?=htmlspecialchars($domain_admin);?>" required onkeyup="this.value = this.value.toLowerCase();" />

+            &rdsh; <kbd>a-z - _ .</kbd>

           </div>

         </div>

         <div class="form-group">

@@ -156,7 +157,7 @@
         </div>

         <div class="form-group">

           <div class="col-sm-offset-2 col-sm-10">

-            <button class="btn btn-success" data-action="edit_selected" data-api-reload-location="/admin" data-id="editdomainadmin" data-item="<?=$domain_admin;?>" data-api-url='edit/domain-admin' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

+            <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-api-reload-location="/admin" data-id="editdomainadmin" data-item="<?=$domain_admin;?>" data-api-url='edit/domain-admin' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

           </div>

         </div>

       </form>

@@ -167,7 +168,7 @@
           </div>

           <div class="col-sm-10">

             <div class="form-group">

-              <select id="da_acl" name="da_acl" size="10" multiple>

+              <select id="da_acl" name="da_acl" size="10" data-container="body" multiple>

               <?php

               $da_acls = acl('get', 'domainadmin', $domain_admin);

               foreach ($da_acls as $acl => $val):

@@ -179,7 +180,7 @@
               </select>

             </div>

             <div class="form-group">

-              <button class="btn btn-default" data-action="edit_selected" data-id="daacl" data-item="<?=htmlspecialchars($domain_admin);?>" data-api-url='edit/da-acl' data-api-attr='{}' href="#"><?=$lang['admin']['save'];?></button>

+              <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" data-action="edit_selected" data-id="daacl" data-item="<?=htmlspecialchars($domain_admin);?>" data-api-url='edit/da-acl' data-api-attr='{}' href="#"><?=$lang['admin']['save'];?></button>

             </div>

           </div>

         </div>

@@ -197,14 +198,15 @@
       $result = admin('details', $admin);

       if (!empty($result)) {

       ?>

-      <h4><?=$lang['edit']['domain_admin'];?></h4>

+      <h4><?=$lang['edit']['admin'];?></h4>

       <br>

       <form class="form-horizontal" data-id="editadmin" role="form" method="post" autocomplete="off">

         <input type="hidden" value="0" name="active">

         <div class="form-group">

           <label class="control-label col-sm-2" for="username_new"><?=$lang['edit']['username'];?></label>

           <div class="col-sm-10">

-            <input class="form-control" type="text" name="username_new" value="<?=htmlspecialchars($admin);?>" />

+            <input class="form-control" type="text" name="username_new" onkeyup="this.value = this.value.toLowerCase();" required value="<?=htmlspecialchars($admin);?>" />

+            &rdsh; <kbd>a-z - _ .</kbd>

           </div>

         </div>

         <div class="form-group">

@@ -235,7 +237,7 @@
         </div>

         <div class="form-group">

           <div class="col-sm-offset-2 col-sm-10">

-            <button class="btn btn-success" data-action="edit_selected" data-api-reload-location="/admin" data-id="editadmin" data-item="<?=$admin;?>" data-api-url='edit/admin' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

+            <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-api-reload-location="/admin" data-id="editadmin" data-item="<?=$admin;?>" data-api-url='edit/admin' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

           </div>

         </div>

       </form>

@@ -252,189 +254,233 @@
       !empty($_GET["domain"])) {

         $domain = $_GET["domain"];

         $result = mailbox('get', 'domain_details', $domain);

+        $quota_notification_bcc = quota_notification_bcc('get', $domain);

         $rl = ratelimit('get', 'domain', $domain);

         $rlyhosts = relayhost('get');

         if (!empty($result)) {

         ?>

-          <h4><?=$lang['edit']['domain'];?></h4>

-          <form data-id="editdomain" class="form-horizontal" role="form" method="post">

-            <input type="hidden" value="0" name="active">

-            <input type="hidden" value="0" name="backupmx">

-            <input type="hidden" value="0" name="gal">

-            <input type="hidden" value="0" name="relay_all_recipients">

-            <input type="hidden" value="0" name="relay_unknown_only">

-            <div class="form-group" data-acl="<?=$_SESSION['acl']['domain_desc'];?>">

-              <label class="control-label col-sm-2" for="description"><?=$lang['edit']['description'];?></label>

-              <div class="col-sm-10">

-                <input type="text" class="form-control" name="description" value="<?=htmlspecialchars($result['description']);?>">

-              </div>

-            </div>

-            <?php

-            if ($_SESSION['mailcow_cc_role'] == "admin") {

-            ?>

-            <div class="form-group">

-              <label class="control-label col-sm-2" for="aliases"><?=$lang['edit']['max_aliases'];?></label>

-              <div class="col-sm-10">

-                <input type="number" class="form-control" name="aliases" value="<?=intval($result['max_num_aliases_for_domain']);?>">

-              </div>

-            </div>

-            <div class="form-group">

-              <label class="control-label col-sm-2" for="mailboxes"><?=$lang['edit']['max_mailboxes'];?></label>

-              <div class="col-sm-10">

-                <input type="number" class="form-control" name="mailboxes" value="<?=intval($result['max_num_mboxes_for_domain']);?>">

-              </div>

-            </div>

-            <div class="form-group">

-                <label class="control-label col-sm-2" for="defquota"><?=$lang['edit']['mailbox_quota_def'];?></label>

+          <ul class="nav nav-tabs responsive-tabs" role="tablist">

+            <li class="active"><a data-toggle="tab" href="#dedit"><?=$lang['edit']['domain'];?></a></li>

+            <li><a data-toggle="tab" href="#dratelimit"><?=$lang['edit']['ratelimit'];?></a></li>

+            <li><a data-toggle="tab" href="#dspamfilter"><?=$lang['edit']['spam_filter'];?></a></li>

+            <li><a data-toggle="tab" href="#dqwbcc"><?=$lang['edit']['quota_warning_bcc'];?></a></li>

+          </ul>

+          <hr>

+          <div class="tab-content">

+            <div id="dedit" class="tab-pane in active">

+            <form data-id="editdomain" class="form-horizontal" role="form" method="post">

+              <input type="hidden" value="0" name="active">

+              <input type="hidden" value="0" name="backupmx">

+              <input type="hidden" value="0" name="gal">

+              <input type="hidden" value="0" name="relay_all_recipients">

+              <input type="hidden" value="0" name="relay_unknown_only">

+              <div class="form-group" data-acl="<?=$_SESSION['acl']['domain_desc'];?>">

+                <label class="control-label col-sm-2" for="description"><?=$lang['edit']['description'];?></label>

                 <div class="col-sm-10">

-                    <input type="number" class="form-control" name="defquota" value="<?=intval($result['def_quota_for_mbox'] / 1048576);?>">

+                  <input type="text" class="form-control" name="description" value="<?=htmlspecialchars($result['description']);?>">

                 </div>

-            </div>

-            <div class="form-group">

-              <label class="control-label col-sm-2" for="maxquota"><?=$lang['edit']['max_quota'];?></label>

-              <div class="col-sm-10">

-                <input type="number" class="form-control" name="maxquota" value="<?=intval($result['max_quota_for_mbox'] / 1048576);?>">

               </div>

-            </div>

-            <div class="form-group">

-              <label class="control-label col-sm-2" for="quota"><?=$lang['edit']['domain_quota'];?></label>

-              <div class="col-sm-10">

-                <input type="number" class="form-control" name="quota" value="<?=intval($result['max_quota_for_domain'] / 1048576);?>">

-              </div>

-            </div>

-            <div class="form-group">

-              <label class="control-label col-sm-2" for="quota"><?=$lang['edit']['relayhost'];?></label>

-              <div class="col-sm-10">

-                <select data-live-search="true" name="relayhost" class="form-control">

-                  <?php

-                  foreach ($rlyhosts as $rlyhost) {

-                  ?>

-                  <option value="<?=$rlyhost['id'];?>" <?=($result['relayhost'] == $rlyhost['id']) ? 'selected' : null;?>>ID <?=$rlyhost['id'];?>: <?=$rlyhost['hostname'];?> (<?=$rlyhost['username'];?>)</option>

-                  <?php

-                  }

-                  ?>

-                  <option value="" <?=($result['relayhost'] == "0") ? 'selected' : null;?>>None</option>

-                </select>

-              </div>

-            </div>

-            <div class="form-group">

-              <label class="control-label col-sm-2"><?=$lang['edit']['backup_mx_options'];?></label>

-              <div class="col-sm-10">

-                <div class="checkbox">

-                  <label><input type="checkbox" value="1" name="backupmx" <?=(isset($result['backupmx']) && $result['backupmx']=="1") ? "checked" : null;?>> <?=$lang['edit']['relay_domain'];?></label>

-                  <br>

-                  <label><input type="checkbox" value="1" name="relay_all_recipients" <?=(isset($result['relay_all_recipients']) && $result['relay_all_recipients']=="1") ? "checked" : null;?>> <?=$lang['edit']['relay_all'];?></label>

-                  <p><?=$lang['edit']['relay_all_info'];?></p>

-                  <label><input type="checkbox" value="1" name="relay_unknown_only" <?=(isset($result['relay_unknown_only']) && $result['relay_unknown_only']=="1") ? "checked" : null;?>> <?=$lang['edit']['relay_unknown_only'];?></label>

-                  <br>

-                  <p><?=$lang['edit']['relay_transport_info'];?></p>

-                  <hr style="margin:25px 0px 0px 0px">

+              <div class="form-group">

+                <label class="control-label col-sm-2" for="relayhost"><?=$lang['edit']['relayhost'];?></label>

+                <div class="col-sm-10">

+                  <select data-acl="<?=$_SESSION['acl']['domain_relayhost'];?>" data-live-search="true" id="relayhost" name="relayhost" class="form-control">

+                    <?php

+                    foreach ($rlyhosts as $rlyhost) {

+                    ?>

+                    <option class="<?=($rlyhost['active'] == 1) ? '' : 'background: #ff4136; color: #fff';?>" value="<?=$rlyhost['id'];?>" <?=($result['relayhost'] == $rlyhost['id']) ? 'selected' : null;?>>ID <?=$rlyhost['id'];?>: <?=$rlyhost['hostname'];?> (<?=$rlyhost['username'];?>)</option>

+                    <?php

+                    }

+                    ?>

+                    <option value="" <?=($result['relayhost'] == "0") ? 'selected' : null;?>><?=$lang['edit']['none_inherit'];?></option>

+                  </select>

                 </div>

               </div>

+              <?php

+              if ($_SESSION['mailcow_cc_role'] == "admin") {

+              ?>

+              <div class="form-group">

+                <label class="control-label col-sm-2" for="aliases"><?=$lang['edit']['max_aliases'];?></label>

+                <div class="col-sm-10">

+                  <input type="number" class="form-control" name="aliases" value="<?=intval($result['max_num_aliases_for_domain']);?>">

+                </div>

+              </div>

+              <div class="form-group">

+                <label class="control-label col-sm-2" for="mailboxes"><?=$lang['edit']['max_mailboxes'];?></label>

+                <div class="col-sm-10">

+                  <input type="number" class="form-control" name="mailboxes" value="<?=intval($result['max_num_mboxes_for_domain']);?>">

+                </div>

+              </div>

+              <div class="form-group">

+                  <label class="control-label col-sm-2" for="defquota"><?=$lang['edit']['mailbox_quota_def'];?></label>

+                  <div class="col-sm-10">

+                      <input type="number" class="form-control" name="defquota" value="<?=intval($result['def_quota_for_mbox'] / 1048576);?>">

+                  </div>

+              </div>

+              <div class="form-group">

+                <label class="control-label col-sm-2" for="maxquota"><?=$lang['edit']['max_quota'];?></label>

+                <div class="col-sm-10">

+                  <input type="number" class="form-control" name="maxquota" value="<?=intval($result['max_quota_for_mbox'] / 1048576);?>">

+                </div>

+              </div>

+              <div class="form-group">

+                <label class="control-label col-sm-2" for="quota"><?=$lang['edit']['domain_quota'];?></label>

+                <div class="col-sm-10">

+                  <input type="number" class="form-control" name="quota" value="<?=intval($result['max_quota_for_domain'] / 1048576);?>">

+                </div>

+              </div>

+              <div class="form-group">

+                <label class="control-label col-sm-2"><?=$lang['edit']['backup_mx_options'];?></label>

+                <div class="col-sm-10">

+                  <div class="checkbox">

+                    <label><input type="checkbox" value="1" name="backupmx" <?=(isset($result['backupmx']) && $result['backupmx']=="1") ? "checked" : null;?>> <?=$lang['edit']['relay_domain'];?></label>

+                    <br>

+                    <label><input type="checkbox" value="1" name="relay_all_recipients" <?=(isset($result['relay_all_recipients']) && $result['relay_all_recipients']=="1") ? "checked" : null;?>> <?=$lang['edit']['relay_all'];?></label>

+                    <p><?=$lang['edit']['relay_all_info'];?></p>

+                    <label><input type="checkbox" value="1" name="relay_unknown_only" <?=(isset($result['relay_unknown_only']) && $result['relay_unknown_only']=="1") ? "checked" : null;?>> <?=$lang['edit']['relay_unknown_only'];?></label>

+                    <br>

+                    <p><?=$lang['edit']['relay_transport_info'];?></p>

+                    <hr style="margin:25px 0px 0px 0px">

+                  </div>

+                </div>

+              </div>

+              <?php

+              }

+              ?>

+              <div class="form-group">

+                <div class="col-sm-offset-2 col-sm-10">

+                  <div class="checkbox">

+                    <label><input type="checkbox" value="1" name="gal" <?=(isset($result['gal']) && $result['gal']=="1") ? "checked" : null;?>> <?=$lang['edit']['gal'];?></label>

+                    <small class="help-block"><?=$lang['edit']['gal_info'];?></small>

+                  </div>

+                </div>

+              </div>

+              <hr>

+              <div class="form-group">

+                <div class="col-sm-offset-2 col-sm-10">

+                  <div class="checkbox">

+                    <label><input type="checkbox" value="1" name="active" <?=(isset($result['active']) && $result['active']=="1") ? "checked" : null;?> <?=($_SESSION['mailcow_cc_role'] == "admin") ? null : "disabled";?>> <?=$lang['edit']['active'];?></label>

+                  </div>

+                </div>

+              </div>

+              <div class="form-group">

+                <div class="col-sm-offset-2 col-sm-10">

+                  <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="editdomain" data-item="<?=$domain;?>" data-api-url='edit/domain' data-api-attr='{}' href="#"><?=$lang['admin']['save'];?></button>

+                </div>

+              </div>

+            </form>

+            <?php

+            if (!empty($dkim = dkim('details', $domain))) {

+            ?>

+            <hr>

+            <div class="row">

+              <div class="col-xs-12 col-sm-2">

+                <p>Domain: <strong><?=htmlspecialchars($result['domain_name']);?></strong> (<?=$dkim['dkim_selector'];?>._domainkey)</p>

+              </div>

+              <div class="col-xs-12 col-sm-10">

+                <pre><?=$dkim['dkim_txt'];?></pre>

+              </div>

             </div>

             <?php

             }

             ?>

-            <div class="form-group">

-              <div class="col-sm-offset-2 col-sm-10">

-                <div class="checkbox">

-                  <label><input type="checkbox" value="1" name="gal" <?=(isset($result['gal']) && $result['gal']=="1") ? "checked" : null;?>> <?=$lang['edit']['gal'];?></label>

-                  <small class="help-block"><?=$lang['edit']['gal_info'];?></small>

+            </div>

+            <div id="dratelimit" class="tab-pane">

+              <form data-id="domratelimit" class="form-inline well" method="post">

+                <div class="form-group">

+                  <label class="control-label"><?=$lang['edit']['ratelimit'];?></label>

+                  <input name="rl_value" type="number" value="<?=(!empty($rl['value'])) ? $rl['value'] : null;?>" autocomplete="off" class="form-control" placeholder="<?=$lang['ratelimit']['disabled']?>">

+                </div>

+                <div class="form-group">

+                  <select name="rl_frame" class="form-control">

+                    <option value="s" <?=(isset($rl['frame']) && $rl['frame'] == 's') ? 'selected' : null;?>><?=$lang['ratelimit']['second']?></option>

+                    <option value="m" <?=(isset($rl['frame']) && $rl['frame'] == 'm') ? 'selected' : null;?>><?=$lang['ratelimit']['minute']?></option>

+                    <option value="h" <?=(isset($rl['frame']) && $rl['frame'] == 'h') ? 'selected' : null;?>><?=$lang['ratelimit']['hour']?></option>

+                    <option value="d" <?=(isset($rl['frame']) && $rl['frame'] == 'd') ? 'selected' : null;?>><?=$lang['ratelimit']['day']?></option>

+                  </select>

+                </div>

+                <div class="form-group">

+                  <button data-acl="<?=$_SESSION['acl']['ratelimit'];?>" class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" data-action="edit_selected" data-id="domratelimit" data-item="<?=$domain;?>" data-api-url='edit/rl-domain' data-api-attr='{}' href="#"><?=$lang['admin']['save'];?></button>

+                </div>

+              </form>

+            </div>

+            <div id="dspamfilter" class="tab-pane">

+              <div class="row">

+                <div class="col-sm-6">

+                  <h4><?=$lang['user']['spamfilter_wl'];?></h4>

+                  <p><?=$lang['user']['spamfilter_wl_desc'];?></p>

+                  <form class="form-inline space20" data-id="add_wl_policy_domain">

+                    <div class="input-group" data-acl="<?=$_SESSION['acl']['spam_policy'];?>">

+                      <input type="text" class="form-control" name="object_from" placeholder="*@example.org" required>

+                      <span class="input-group-btn">

+                        <button class="btn btn-default" data-action="add_item" data-id="add_wl_policy_domain" data-api-url='add/domain-policy' data-api-attr='{"domain":"<?= $domain; ?>","object_list":"wl"}' href="#"><?=$lang['user']['spamfilter_table_add'];?></button>

+                      </span>

+                    </div>

+                  </form>

+                  <div class="table-responsive">

+                    <table class="table table-striped table-condensed" id="wl_policy_domain_table"></table>

+                  </div>

+                  <div class="mass-actions-user">

+                    <div class="btn-group" data-acl="<?=$_SESSION['acl']['spam_policy'];?>">

+                      <a class="btn btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-sm btn-default" id="toggle_multi_select_all" data-id="policy_wl_domain" href="#"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></a>

+                      <a class="btn btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-sm btn-danger" data-action="delete_selected" data-id="policy_wl_domain" data-api-url='delete/domain-policy' href="#"><?=$lang['mailbox']['remove'];?></a>

+                      <div class="clearfix visible-xs"></div>

+                    </div>

+                  </div>

+                </div>

+                <div class="col-sm-6">

+                  <h4><?=$lang['user']['spamfilter_bl'];?></h4>

+                  <p><?=$lang['user']['spamfilter_bl_desc'];?></p>

+                  <form class="form-inline space20" data-id="add_bl_policy_domain">

+                    <div class="input-group" data-acl="<?=$_SESSION['acl']['spam_policy'];?>">

+                      <input type="text" class="form-control" name="object_from" placeholder="*@example.org" required>

+                      <span class="input-group-btn">

+                        <button class="btn btn-default" data-action="add_item" data-id="add_bl_policy_domain" data-api-url='add/domain-policy' data-api-attr='{"domain":"<?= $domain; ?>","object_list":"bl"}' href="#"><?=$lang['user']['spamfilter_table_add'];?></button>

+                      </span>

+                    </div>

+                  </form>

+                  <div class="table-responsive">

+                    <table class="table table-striped table-condensed" id="bl_policy_domain_table"></table>

+                  </div>

+                  <div class="mass-actions-user">

+                    <div class="btn-group" data-acl="<?=$_SESSION['acl']['spam_policy'];?>">

+                      <a class="btn btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-sm btn-default" id="toggle_multi_select_all" data-id="policy_bl_domain" href="#"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></a>

+                      <a class="btn btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-sm btn-danger" data-action="delete_selected" data-id="policy_bl_domain" data-api-url='delete/domain-policy' href="#"><?=$lang['mailbox']['remove'];?></a></li>

+                    </div>

+                  </div>

                 </div>

               </div>

             </div>

-            <div class="form-group">

-              <div class="col-sm-offset-2 col-sm-10">

-                <div class="checkbox">

-                  <label><input type="checkbox" value="1" name="active" <?=(isset($result['active']) && $result['active']=="1") ? "checked" : null;?> <?=($_SESSION['mailcow_cc_role'] == "admin") ? null : "disabled";?>> <?=$lang['edit']['active'];?></label>

+            <div id="dqwbcc" class="tab-pane">

+              <div class="row">

+                <div class="col-sm-12">

+                  <h4><?=$lang['edit']['quota_warning_bcc'];?></h4>

+                  <p><?=$lang['edit']['quota_warning_bcc_info'];?></p>

+                  <form class="form-horizontal" data-id="quota_bcc">

+                    <input type="hidden" value="0" name="active">

+                    <div class="form-group">

+                      <label class="control-label col-sm-2" for="script_data"><?=$lang['edit']['target_address'];?>:</label>

+                      <div class="col-sm-10">

+                        <textarea spellcheck="false" autocorrect="off" autocapitalize="none" class="form-control" rows="10" id="bcc_rcpt" name="bcc_rcpt"><?=implode(PHP_EOL, (array)$quota_notification_bcc['bcc_rcpts']);?></textarea>

+                      </div>

+                    </div>

+                    <div class="form-group">

+                      <div class="col-sm-offset-2 col-sm-10">

+                        <div class="checkbox">

+                        <label><input type="checkbox" value="1" name="active" <?=($quota_notification_bcc['active']=="1") ? "checked" : "";?>> <?=$lang['edit']['active'];?></label>

+                        </div>

+                      </div>

+                    </div>

+                    <div class="form-group">

+                      <div class="col-sm-offset-2 col-sm-10">

+                        <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="quota_bcc" data-item="quota_bcc" data-api-url='edit/quota_notification_bcc' data-api-attr='{"domain":"<?=$domain;?>"}' href="#"><?=$lang['edit']['save'];?></button>

+                      </div>

+                    </div>

+                  </form>

                 </div>

               </div>

             </div>

-            <div class="form-group">

-              <div class="col-sm-offset-2 col-sm-10">

-                <button class="btn btn-success" data-action="edit_selected" data-id="editdomain" data-item="<?=$domain;?>" data-api-url='edit/domain' data-api-attr='{}' href="#"><?=$lang['admin']['save'];?></button>

-              </div>

-            </div>

-          </form>

-          <?php

-          if (!empty($dkim = dkim('details', $domain))) {

-          ?>

-          <hr>

-          <div class="row">

-            <div class="col-xs-2">

-              <p>Domain: <strong><?=htmlspecialchars($result['domain_name']);?></strong> (<?=$dkim['dkim_selector'];?>._domainkey)</p>

-            </div>

-            <div class="col-xs-10">

-              <pre><?=$dkim['dkim_txt'];?></pre>

-            </div>

           </div>

           <?php

-          }

-          ?>

-      <hr>

-      <form data-id="domratelimit" class="form-inline well" method="post">

-        <div class="form-group">

-          <label class="control-label"><?=$lang['acl']['ratelimit'];?></label>

-          <input name="rl_value" type="number" value="<?=(!empty($rl['value'])) ? $rl['value'] : null;?>" autocomplete="off" class="form-control" placeholder="disabled">

-        </div>

-        <div class="form-group">

-          <select name="rl_frame" class="form-control">

-            <option value="s" <?=(isset($rl['frame']) && $rl['frame'] == 's') ? 'selected' : null;?>>msgs / second</option>

-            <option value="m" <?=(isset($rl['frame']) && $rl['frame'] == 'm') ? 'selected' : null;?>>msgs / minute</option>

-            <option value="h" <?=(isset($rl['frame']) && $rl['frame'] == 'h') ? 'selected' : null;?>>msgs / hour</option>

-            <option value="d" <?=(isset($rl['frame']) && $rl['frame'] == 'd') ? 'selected' : null;?>>msgs / day</option>

-          </select>

-        </div>

-        <div class="form-group">

-          <button data-acl="<?=$_SESSION['acl']['ratelimit'];?>" class="btn btn-default" data-action="edit_selected" data-id="domratelimit" data-item="<?=$domain;?>" data-api-url='edit/rl-domain' data-api-attr='{}' href="#"><?=$lang['admin']['save'];?></button>

-        </div>

-      </form>

-      <hr>

-      <div class="row">

-        <div class="col-sm-6">

-          <h4><?=$lang['user']['spamfilter_wl'];?></h4>

-          <p><?=$lang['user']['spamfilter_wl_desc'];?></p>

-          <div class="table-responsive">

-            <table class="table table-striped table-condensed" id="wl_policy_domain_table"></table>

-          </div>

-          <div class="mass-actions-user">

-            <div class="btn-group" data-acl="<?=$_SESSION['acl']['spam_policy'];?>">

-              <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="policy_wl_domain" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>

-              <a class="btn btn-sm btn-danger" data-action="delete_selected" data-id="policy_wl_domain" data-api-url='delete/domain-policy' href="#"><?=$lang['mailbox']['remove'];?></a></li>

-            </div>

-          </div>

-          <form class="form-inline" data-id="add_wl_policy_domain">

-            <div class="input-group" data-acl="<?=$_SESSION['acl']['spam_policy'];?>">

-              <input type="text" class="form-control" name="object_from" placeholder="*@example.org" required>

-              <span class="input-group-btn">

-                <button class="btn btn-default" data-action="add_item" data-id="add_wl_policy_domain" data-api-url='add/domain-policy' data-api-attr='{"domain":"<?= $domain; ?>","object_list":"wl"}' href="#"><?=$lang['user']['spamfilter_table_add'];?></button>

-              </span>

-            </div>

-          </form>

-        </div>

-        <div class="col-sm-6">

-          <h4><?=$lang['user']['spamfilter_bl'];?></h4>

-          <p><?=$lang['user']['spamfilter_bl_desc'];?></p>

-          <div class="table-responsive">

-            <table class="table table-striped table-condensed" id="bl_policy_domain_table"></table>

-          </div>

-          <div class="mass-actions-user">

-            <div class="btn-group" data-acl="<?=$_SESSION['acl']['spam_policy'];?>">

-              <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="policy_bl_domain" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>

-              <a class="btn btn-sm btn-danger" data-action="delete_selected" data-id="policy_bl_domain" data-api-url='delete/domain-policy' href="#"><?=$lang['mailbox']['remove'];?></a></li>

-            </div>

-          </div>

-          <form class="form-inline" data-id="add_bl_policy_domain">

-            <div class="input-group" data-acl="<?=$_SESSION['acl']['spam_policy'];?>">

-              <input type="text" class="form-control" name="object_from" placeholder="*@example.org" required>

-              <span class="input-group-btn">

-                <button class="btn btn-default" data-action="add_item" data-id="add_bl_policy_domain" data-api-url='add/domain-policy' data-api-attr='{"domain":"<?= $domain; ?>","object_list":"bl"}' href="#"><?=$lang['user']['spamfilter_table_add'];?></button>

-              </span>

-            </div>

-          </form>

-        </div>

-      </div>

-          <?php

         }

         else {

         ?>

@@ -477,7 +523,7 @@
             </div>

             <div class="form-group">

               <div class="col-sm-offset-2 col-sm-10">

-                <button class="btn btn-default" data-action="edit_selected" data-id="oauth2client" data-item="<?=$oauth2client;?>" data-api-url='edit/oauth2-client' data-api-attr='{}' href="#"><?=$lang['admin']['save'];?></button>

+                <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" data-action="edit_selected" data-id="oauth2client" data-item="<?=$oauth2client;?>" data-api-url='edit/oauth2-client' data-api-attr='{}' href="#"><?=$lang['admin']['save'];?></button>

               </div>

             </div>

           </form>

@@ -523,7 +569,7 @@
             </div>

             <div class="form-group">

               <div class="col-sm-offset-2 col-sm-10">

-                <button class="btn btn-success" data-action="edit_selected" data-id="editaliasdomain" data-item="<?=$alias_domain;?>" data-api-url='edit/alias-domain' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

+                <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="editaliasdomain" data-item="<?=$alias_domain;?>" data-api-url='edit/alias-domain' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

               </div>

             </div>

           </form>

@@ -531,18 +577,18 @@
           <form data-id="domratelimit" class="form-inline well" method="post">

             <div class="form-group">

               <label class="control-label"><?=$lang['acl']['ratelimit'];?></label>

-              <input name="rl_value" type="number" value="<?=(!empty($rl['value'])) ? $rl['value'] : null;?>" autocomplete="off" class="form-control" placeholder="disabled">

+              <input name="rl_value" type="number" value="<?=(!empty($rl['value'])) ? $rl['value'] : null;?>" autocomplete="off" class="form-control" placeholder="<?=$lang['ratelimit']['disabled']?>">

             </div>

             <div class="form-group">

               <select name="rl_frame" class="form-control">

-                <option value="s" <?=(isset($rl['frame']) && $rl['frame'] == 's') ? 'selected' : null;?>>msgs / second</option>

-                <option value="m" <?=(isset($rl['frame']) && $rl['frame'] == 'm') ? 'selected' : null;?>>msgs / minute</option>

-                <option value="h" <?=(isset($rl['frame']) && $rl['frame'] == 'h') ? 'selected' : null;?>>msgs / hour</option>

-                <option value="d" <?=(isset($rl['frame']) && $rl['frame'] == 'd') ? 'selected' : null;?>>msgs / day</option>

+                <option value="s" <?=(isset($rl['frame']) && $rl['frame'] == 's') ? 'selected' : null;?>><?=$lang['ratelimit']['second']?></option>

+                <option value="m" <?=(isset($rl['frame']) && $rl['frame'] == 'm') ? 'selected' : null;?>><?=$lang['ratelimit']['minute']?></option>

+                <option value="h" <?=(isset($rl['frame']) && $rl['frame'] == 'h') ? 'selected' : null;?>><?=$lang['ratelimit']['hour']?></option>

+                <option value="d" <?=(isset($rl['frame']) && $rl['frame'] == 'd') ? 'selected' : null;?>><?=$lang['ratelimit']['day']?></option>

               </select>

             </div>

             <div class="form-group">

-              <button class="btn btn-default" data-action="edit_selected" data-id="domratelimit" data-item="<?=$alias_domain;?>" data-api-url='edit/rl-domain' data-api-attr='{}' href="#"><?=$lang['admin']['save'];?></button>

+              <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" data-action="edit_selected" data-id="domratelimit" data-item="<?=$alias_domain;?>" data-api-url='edit/rl-domain' data-api-attr='{}' href="#"><?=$lang['admin']['save'];?></button>

             </div>

           </form>

           <?php

@@ -550,10 +596,10 @@
           ?>

           <hr>

           <div class="row">

-            <div class="col-xs-2">

+            <div class="col-xs-12 col-sm-2">

               <p>Domain: <strong><?=htmlspecialchars($result['alias_domain']);?></strong> (<?=$dkim['dkim_selector'];?>._domainkey)</p>

             </div>

-            <div class="col-xs-10">

+            <div class="col-xs-12 col-sm-10">

             <pre><?=$dkim['dkim_txt'];?></pre>

             </div>

           </div>

@@ -574,366 +620,402 @@
       $quarantine_notification = mailbox('get', 'quarantine_notification', $mailbox);

       $quarantine_category = mailbox('get', 'quarantine_category', $mailbox);

       $get_tls_policy = mailbox('get', 'tls_policy', $mailbox);

+      $rlyhosts = relayhost('get');

       if (!empty($result)) {

         ?>

-        <h4><?=$lang['edit']['mailbox'];?></h4>

-        <form class="form-horizontal" data-id="editmailbox" role="form" method="post">

-          <input type="hidden" value="default" name="sender_acl">

-          <input type="hidden" value="0" name="force_pw_update">

-          <input type="hidden" value="0" name="sogo_access">

-          <input type="hidden" value="0" name="protocol_access">

-          <div class="form-group">

-            <label class="control-label col-sm-2" for="name"><?=$lang['edit']['full_name'];?></label>

-            <div class="col-sm-10">

-            <input type="text" class="form-control" name="name" value="<?=htmlspecialchars($result['name'], ENT_QUOTES, 'UTF-8');?>">

-            </div>

-          </div>

-          <div class="form-group">

-            <label class="control-label col-sm-2" for="quota"><?=$lang['edit']['quota_mb'];?>

-              <br><span id="quotaBadge" class="badge">max. <?=intval($result['max_new_quota'] / 1048576)?> MiB</span>

-            </label>

-            <div class="col-sm-10">

-              <input type="number" name="quota" style="width:100%" min="0" max="<?=intval($result['max_new_quota'] / 1048576);?>" value="<?=intval($result['quota']) / 1048576;?>" class="form-control">

-              <small class="help-block">0 = ∞</small>

-            </div>

-          </div>

-          <div class="form-group">

-            <label class="control-label col-sm-2" for="sender_acl"><?=$lang['edit']['sender_acl'];?></label>

-            <div class="col-sm-10">

-              <select data-live-search="true" data-width="100%" style="width:100%" id="editSelectSenderACL" name="sender_acl" size="10" multiple>

-              <?php

-              $sender_acl_handles = mailbox('get', 'sender_acl_handles', $mailbox);

-

-              foreach ($sender_acl_handles['sender_acl_domains']['ro'] as $domain):

-                ?>

-                <option data-subtext="Admin" value="<?=htmlspecialchars($domain);?>" disabled selected><?=htmlspecialchars(sprintf($lang['edit']['dont_check_sender_acl'], $domain));?></option>

-                <?php

-              endforeach;

-

-              foreach ($sender_acl_handles['sender_acl_addresses']['ro'] as $alias):

-                ?>

-              <option data-subtext="Admin" disabled selected><?=htmlspecialchars($alias);?></option>

-                <?php

-              endforeach;

-

-              foreach ($sender_acl_handles['fixed_sender_aliases'] as $alias):

-                ?>

-                <option data-subtext="Alias" disabled selected><?=htmlspecialchars($alias);?></option>

-                <?php

-              endforeach;

-

-              foreach ($sender_acl_handles['sender_acl_domains']['rw'] as $domain):

-                ?>

-                <option value="<?=htmlspecialchars($domain);?>" selected><?=htmlspecialchars(sprintf($lang['edit']['dont_check_sender_acl'], $domain));?></option>

-                <?php

-              endforeach;

-

-              foreach ($sender_acl_handles['sender_acl_domains']['selectable'] as $domain):

-                ?>

-                <option value="<?=htmlspecialchars($domain);?>"><?=htmlspecialchars(sprintf($lang['edit']['dont_check_sender_acl'], $domain));?></option>

-                <?php

-              endforeach;

-

-              foreach ($sender_acl_handles['sender_acl_addresses']['rw'] as $address):

-                ?>

-                  <option selected><?=htmlspecialchars($address);?></option>

-                <?php

-              endforeach;

-

-              foreach ($sender_acl_handles['sender_acl_addresses']['selectable'] as $address):

-                ?>

-                  <option><?=htmlspecialchars($address);?></option>

-                <?php

-              endforeach;

-

-              // Generated here, but used in extended_sender_acl

-              if (!empty($sender_acl_handles['external_sender_aliases'])) {

-                $ext_sender_acl = implode(', ', $sender_acl_handles['external_sender_aliases']);

-              }

-              else {

-                $ext_sender_acl = '';

-              }

-

-              ?>

-              </select>

-              <div style="display:none" id="sender_acl_disabled"><?=$lang['edit']['sender_acl_disabled'];?></div>

-              <small class="help-block"><?=$lang['edit']['sender_acl_info'];?></small>

-            </div>

-          </div>

-          <div class="form-group">

-            <label class="control-label col-sm-2"><?=$lang['user']['quarantine_notification'];?></label>

-            <div class="col-sm-10">

-            <div class="btn-group" data-acl="<?=$_SESSION['acl']['quarantine_notification'];?>">

-              <button type="button" class="btn btn-sm btn-default <?=($quarantine_notification == "never") ? "active" : null;?>"

-                data-action="edit_selected"

-                data-item="<?= htmlentities($mailbox); ?>"

-                data-id="quarantine_notification"

-                data-api-url='edit/quarantine_notification'

-                data-api-attr='{"quarantine_notification":"never"}'><?=$lang['user']['never'];?></button>

-              <button type="button" class="btn btn-sm btn-default <?=($quarantine_notification == "hourly") ? "active" : null;?>"

-                data-action="edit_selected"

-                data-item="<?= htmlentities($mailbox); ?>"

-                data-id="quarantine_notification"

-                data-api-url='edit/quarantine_notification'

-                data-api-attr='{"quarantine_notification":"hourly"}'><?=$lang['user']['hourly'];?></button>

-              <button type="button" class="btn btn-sm btn-default <?=($quarantine_notification == "daily") ? "active" : null;?>"

-                data-action="edit_selected"

-                data-item="<?= htmlentities($mailbox); ?>"

-                data-id="quarantine_notification"

-                data-api-url='edit/quarantine_notification'

-                data-api-attr='{"quarantine_notification":"daily"}'><?=$lang['user']['daily'];?></button>

-              <button type="button" class="btn btn-sm btn-default <?=($quarantine_notification == "weekly") ? "active" : null;?>"

-                data-action="edit_selected"

-                data-item="<?= htmlentities($mailbox); ?>"

-                data-id="quarantine_notification"

-                data-api-url='edit/quarantine_notification'

-                data-api-attr='{"quarantine_notification":"weekly"}'><?=$lang['user']['weekly'];?></button>

-            </div>

-            <p class="help-block"><small><?=$lang['user']['quarantine_notification_info'];?></small></p>

-            </div>

-          </div>

-          <div class="form-group">

-            <label class="control-label col-sm-2"><?=$lang['user']['quarantine_category'];?></label>

-            <div class="col-sm-10">

-            <div class="btn-group" data-acl="<?=$_SESSION['acl']['quarantine_category'];?>">

-              <button type="button" class="btn btn-sm btn-default <?=($quarantine_category == "reject") ? "active" : null;?>"

-                data-action="edit_selected"

-                data-item="<?= htmlentities($mailbox); ?>"

-                data-id="quarantine_category"

-                data-api-url='edit/quarantine_category'

-                data-api-attr='{"quarantine_category":"reject"}'><?=$lang['user']['q_reject'];?></button>

-              <button type="button" class="btn btn-sm btn-default <?=($quarantine_category == "add_header") ? "active" : null;?>"

-                data-action="edit_selected"

-                data-item="<?= htmlentities($mailbox); ?>"

-                data-id="quarantine_category"

-                data-api-url='edit/quarantine_category'

-                data-api-attr='{"quarantine_category":"add_header"}'><?=$lang['user']['q_add_header'];?></button>

-              <button type="button" class="btn btn-sm btn-default <?=($quarantine_category == "all") ? "active" : null;?>"

-                data-action="edit_selected"

-                data-item="<?= htmlentities($mailbox); ?>"

-                data-id="quarantine_category"

-                data-api-url='edit/quarantine_category'

-                data-api-attr='{"quarantine_category":"all"}'><?=$lang['user']['q_all'];?></button>

-            </div>

-            <p class="help-block"><small><?=$lang['user']['quarantine_category_info'];?></small></p>

-            </div>

-          </div>

-          <div class="form-group">

-            <label class="control-label col-sm-2" for="sender_acl"><?=$lang['user']['tls_policy'];?></label>

-            <div class="col-sm-10">

-              <div class="btn-group" data-acl="<?=$_SESSION['acl']['tls_policy'];?>">

-                <button type="button" class="btn btn-sm btn-default <?=($get_tls_policy['tls_enforce_in'] == "1") ? "active" : null;?>"

-                  data-action="edit_selected"

-                  data-item="<?= htmlentities($mailbox); ?>"

-                  data-id="tls_policy"

-                  data-api-url='edit/tls_policy'

-                  data-api-attr='{"tls_enforce_in":<?=($get_tls_policy['tls_enforce_in'] == "1") ? "0" : "1";?>}'><?=$lang['user']['tls_enforce_in'];?></button>

-                <button type="button" class="btn btn-sm btn-default <?=($get_tls_policy['tls_enforce_out'] == "1") ? "active" : null;?>"

-                  data-action="edit_selected"

-                  data-item="<?= htmlentities($mailbox); ?>"

-                  data-id="tls_policy"

-                  data-api-url='edit/tls_policy'

-                  data-api-attr='{"tls_enforce_out":<?=($get_tls_policy['tls_enforce_out'] == "1") ? "0" : "1";?>}'><?=$lang['user']['tls_enforce_out'];?></button>

-              </div>

-            </div>

-          </div>

-          <div class="form-group">

-            <label class="control-label col-sm-2" for="password"><?=$lang['edit']['password'];?> (<a href="#" class="generate_password"><?=$lang['edit']['generate'];?></a>)</label>

-            <div class="col-sm-10">

-            <input type="password" data-pwgen-field="true" data-hibp="true" class="form-control" name="password" placeholder="<?=$lang['edit']['unchanged_if_empty'];?>" autocomplete="new-password">

-            </div>

-          </div>

-          <div class="form-group">

-            <label class="control-label col-sm-2" for="password2"><?=$lang['edit']['password_repeat'];?></label>

-            <div class="col-sm-10">

-            <input type="password" data-pwgen-field="true" class="form-control" name="password2" autocomplete="new-password">

-            </div>

-          </div>

-          <div data-acl="<?=$_SESSION['acl']['extend_sender_acl'];?>" class="form-group">

-            <label class="control-label col-sm-2" for="extended_sender_acl"><?=$lang['edit']['extended_sender_acl'];?></label>

-            <div class="col-sm-10">

-            <input type="text" class="form-control" name="extended_sender_acl" value="<?=empty($ext_sender_acl) ? '' : $ext_sender_acl; ?>" placeholder="user1@example.com, user2@example.org, @example.com, ...">

-            <small class="help-block"><?=$lang['edit']['extended_sender_acl_info'];?></small>

-            </div>

-          </div>

-          <div class="form-group">

-            <label class="control-label col-sm-2" for="protocol_access"><?=$lang['edit']['allowed_protocols'];?></label>

-            <div class="col-sm-10">

-            <select data-acl="<?=$_SESSION['acl']['protocol_access'];?>" name="protocol_access" multiple class="form-control">

-              <option value="imap" <?=($result['attributes']['imap_access']=="1") ? 'selected' : null;?>>IMAP</option>

-              <option value="pop3" <?=($result['attributes']['pop3_access']=="1") ? 'selected' : null;?>>POP3</option>

-              <option value="smtp" <?=($result['attributes']['smtp_access']=="1") ? 'selected' : null;?>>SMTP</option>

-            </select>

-            </div>

-          </div>

-          <div hidden data-acl="<?=$_SESSION['acl']['smtp_ip_access'];?>" class="form-group">

-            <label class="control-label col-sm-2" for="allow_from_smtp"><?=$lang['edit']['allow_from_smtp'];?></label>

-            <div class="col-sm-10">

-            <input type="text" class="form-control" name="allow_from_smtp" value="<?=empty($allow_from_smtp) ? '' : $allow_from_smtp; ?>" placeholder="1.1.1.1, 10.2.0.0/24, ...">

-            <small class="help-block"><?=$lang['edit']['allow_from_smtp_info'];?></small>

-            </div>

-          </div>

-          <hr>

-          <div class="form-group">

-            <div class="col-sm-offset-2 col-sm-10">

-            <select name="active" class="form-control">

-              <option value="1" <?=($result['active']=="1") ? 'selected' : null;?>><?=$lang['edit']['active'];?></option>

-              <option value="2" <?=($result['active']=="2") ? 'selected' : null;?>><?=$lang['edit']['disable_login'];?></option>

-              <option value="0" <?=($result['active']=="0") ? 'selected' : null;?>><?=$lang['edit']['inactive'];?></option>

-            </select>

-            </div>

-          </div>

-          <div class="form-group">

-            <div class="col-sm-offset-2 col-sm-10">

-              <div class="checkbox">

-              <label><input type="checkbox" value="1" name="force_pw_update" <?=($result['attributes']['force_pw_update']=="1") ? "checked" : null;?>> <?=$lang['edit']['force_pw_update'];?></label>

-              <small class="help-block"><?=sprintf($lang['edit']['force_pw_update_info'], $UI_TEXTS['main_name']);?></small>

-              </div>

-            </div>

-          </div>

-          <?php if (getenv('SKIP_SOGO') != "y") { ?>

-          <div data-acl="<?=$_SESSION['acl']['sogo_access'];?>" class="form-group">

-            <div class="col-sm-offset-2 col-sm-10">

-              <div class="checkbox">

-              <label><input type="checkbox" value="1" name="sogo_access" <?=($result['attributes']['sogo_access']=="1") ? "checked" : null;?>> <?=$lang['edit']['sogo_access'];?></label>

-              <small class="help-block"><?=$lang['edit']['sogo_access_info'];?></small>

-              </div>

-            </div>

-          </div>

-          <?php } ?>

-          <div class="form-group">

-            <div class="col-sm-offset-2 col-sm-10">

-              <button class="btn btn-success" data-action="edit_selected" data-id="editmailbox" data-item="<?=htmlspecialchars($result['username']);?>" data-api-url='edit/mailbox' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

-            </div>

-          </div>

-        </form>

+        <ul class="nav nav-tabs responsive-tabs" role="tablist">

+          <li class="active"><a data-toggle="tab" href="#medit"><?=$lang['edit']['mailbox'];?></a></li>

+          <li><a data-toggle="tab" href="#mpushover"><?=$lang['edit']['pushover'];?></a></li>

+          <li><a data-toggle="tab" href="#macl"><?=$lang['edit']['acl'];?></a></li>

+          <li><a data-toggle="tab" href="#mrl"><?=$lang['edit']['ratelimit'];?></a></li>

+        </ul>

         <hr>

-        <form data-id="pushover" class="form well" method="post">

-          <input type="hidden" value="0" name="evaluate_x_prio">

-          <input type="hidden" value="0" name="only_x_prio">

-          <input type="hidden" value="0" name="active">

-          <div class="row">

-            <div class="col-sm-1">

-              <p class="help-block"><a href="https://pushover.net" target="_blank"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAACglBMVEUAAAAAAAEAAAAilecFGigAAAAAAAAAAAAAAAANj+c3n+Ypm+oeYI4KWI4MieAtkdQbleoJcLcjmeswmN4Rit4KgdMKUYQJKUAQSnILL0kMNlMSTngimOoNPF0hlOQBBgkNOlkRS3MHIjUhk+IPf8wKLUYsjM0AAAASTngAAAAAAAAPfckbdLIbdrYUWIgegsgce70knfEAAAAknfENOVkGHi8YaaIjnvEdgMUhkuAQSG8aca0hleQUh9YLjOM4nOEMgtMcbaYWa6YemO02ltkKhNktgLodYZEPXJEyi8kKesktfLUzj84cWYMiluckZ5YJXJYeW4Y0k9YKfs4yjs0pc6YHZaUviskLfMkqmugak+cqkNcViNcqeK4Iaq4XRmYGPmYMKDsFJTstgr0LdL0ti84CCQ4BCQ4Qgc8rlt8XjN8shcQsi8wZSGgEP2cRMEUDKkUAAAD///8dmvEamfExo/EXmPEWl/ERlvElnvEsofEjnfETl/Enn/Ezo/E4pvEvovEfm/E1pPEzpPEvofEOlfEpoPEamPEQlfEYmfE6p/EgnPEVlvEroPE3pfE2pfENk/Ern/E3pPEcmfEfmvEnnvBlufT6/P0soPAknPDd7/zs9vzo9PxBqfItofAqoPD9/f3B4/q43/mx2/l/xfZ6w/Vxv/VtvfVgt/RXtPNTsfNEq/L3+/31+v3a7fvR6vvH5fqs2vmc0/jx+P3v9/3h8fzW7PvV7PvL5/q13fmo1/mh1PiY0fiNy/aHyfZ2wfVou/Vdt/RPsPM3oeoQkuowmeAgjdgcgMQbeLrw9/3k8vy74Pm63/mX0PdYtfNNr/Ikm+4wnOchkuAVjOAfdrMVcrOdoJikAAAAcnRSTlMAIQ8IzzweFwf+/fvw8P79+/Xt7e3p6eji4d7U08y8qZyTiIWDgn53bWxqaWBKQ0JBOjUwMCkoJCEfHBkT/vz8/Pv7+vr69/b29PTy7ezm5ubm5N7e29vQ0M/Pv7+4uLW1pqaWloWDg3x7e21mUVFFRUXdPracAAAEbElEQVRIx4WUZbvaQBCFF+ru7u7u7u7u7t4mvVwSoBC0JIUCLRQolLq7u7vr/+nMLkmQyvlwyfPcd86e3ZldUqwyQ/p329J+XfutPQYOLUP+q55rFtQJRvY79+xxlZTUWbKpz7/xrrMr2+3BoNPpdLn2lJQ4HEeqLOr1d7z7XNkesQed4A848G63Oy4Gmg/6Mz542QvZbqe8C/Ig73CLYiYTrtLmT3zfqbIcAR7y4wIqH/B6M9Fo0+Ldb6sM9ph/v4ozPuz12mxRofaAAr7jCNkuoz/jNf9AGHibkBCm51fsGKvxsAGWx4H+jBcEi6V2birDpCL/9Klrd1KHbiSvPWP8V0tTnTfO03iXi57P6WNHOVUf44IFdFDRz6pV5fw8Zy5z3JVH5+R48OwxqDiGvKJIY9R+9JsCuJ5HPg74OVEMpz+nbdEPUHEWeEk6IDUnTC1l5r+f8uffc0cfxc8fS17kLso24SwUPFDA/6DE82xKDOPliJ7n/GGOOyWK9zD9CdjvOfg9Dv6AH+AX04LW9gj2i8W/APx1UbxwCAu+wPmcpgUKL/EHdvtq4uwaZwCuznPJVY5LHhED15G/isd5Hz4eKui/e/du02YoKFeD5mHzHIN/nxEDe25gQQwKorAid04CfyzwL4XutXvl1Pt1guMOwwKPkU8mYIFT8JHK+vv8prpDScUVL+j8s3lOctw1GIhbWHAS+HgKPk7xPM/4UtNAYmzizJkf6NgTb/gM8jePQLsewMdthS3g95tMpT1IhVm6v1s8fYmLeb13Odwp8Fh5KY048y/d14WUrwrb1e/X/rNp73nkD8kWS+wi/MZ4XuetG4mhKubJm3/WNEvi8SHwB56nPKjUam0LBdp9ARwupFemTYudvgN/L1+A/Ko/LGBuS8pPy+YR1fuCTWNKnUyoeUyYx2o2dyEVGmr5xTD42xzvkD16+Pb9WIIH6fmt1r3mbsTY7Bvw+n23naT8BUWh86bz6G/e259UXPUK3gfAxQDlo7Rpx3Geqb2e3wp83SGEdKpB7zvwYbzvT2n65xLwbH6YP+M9C8vA8E1wxLU8gkCbdhXGUyrMgwVrcbzLHonr78lzDvWM3q/C/HtDlXoSUIe3YkblhRPIX4E8Oo/9siLv8dRjV7SBlkdgTXvKS7nzsA/9AfeEuhKq9T8zWIDv1Sd6ETAP4D6/H/1V+1BojvruNa4SZXz4JhY84dV5MOF5agUvu5OsOo+KRpG30KalEnoeDccFlutPZYs38D5n3zcpr1/0fBhfb3DOY1z2tSAgLxWezz6zuoHhfUmOejf6blHQH/sFuJYfcMZX307ytKvRa3ifoV/586P5j+tICtS77BuJxzxYAPZsntX8k3eSIhlajK4p8b7iefCEKs03kD/I2LnxL9ovH+43y4fAv1YrI/mzDBsavAX/UppfzVOrZT/ydxk6lJ047MfLfVbcb6hS9ZEzWxekKQ5WrtPqZg3rV6tWrX6Tle3KQZj/q6KxQnmDoXwFY0VSrN9e8FRXBCTAvwAAAABJRU5ErkJggg==" class="img img-fluid"></a></p>

-            </div>

-            <div class="col-sm-10">

-              <p class="help-block"><?=sprintf($lang['edit']['pushover_info'], $mailbox);?></p>

-              <p class="help-block"><?=$lang['edit']['pushover_vars'];?>: <code>{SUBJECT}</code>, <code>{SENDER}</code></p>

+        <div class="tab-content">

+          <div id="medit" class="tab-pane in active">

+            <form class="form-horizontal" data-id="editmailbox" role="form" method="post">

+              <input type="hidden" value="default" name="sender_acl">

+              <input type="hidden" value="0" name="force_pw_update">

+              <input type="hidden" value="0" name="sogo_access">

+              <input type="hidden" value="0" name="protocol_access">

               <div class="form-group">

-                <div class="row">

-                  <div class="col-sm-6">

-                    <div class="form-group">

-                      <label for="token">API Token/Key (Application)</label>

-                      <input type="text" class="form-control" name="token" maxlength="30" value="<?=$pushover_data['token'];?>" required>

-                    </div>

+                <label class="control-label col-sm-2" for="name"><?=$lang['edit']['full_name'];?></label>

+                <div class="col-sm-10">

+                <input type="text" class="form-control" name="name" value="<?=htmlspecialchars($result['name'], ENT_QUOTES, 'UTF-8');?>">

+                </div>

+              </div>

+              <div class="form-group">

+                <label class="control-label col-sm-2" for="quota"><?=$lang['edit']['quota_mb'];?>

+                  <br><span id="quotaBadge" class="badge">max. <?=intval($result['max_new_quota'] / 1048576)?> MiB</span>

+                </label>

+                <div class="col-sm-10">

+                  <input type="number" name="quota" style="width:100%" min="0" max="<?=intval($result['max_new_quota'] / 1048576);?>" value="<?=intval($result['quota']) / 1048576;?>" class="form-control">

+                  <small class="help-block">0 = ∞</small>

+                </div>

+              </div>

+              <div class="form-group">

+                <label class="control-label col-sm-2" for="sender_acl"><?=$lang['edit']['sender_acl'];?></label>

+                <div class="col-sm-10">

+                  <select data-live-search="true" data-width="100%" style="width:100%" id="editSelectSenderACL" name="sender_acl" size="10" multiple>

+                  <?php

+                  $sender_acl_handles = mailbox('get', 'sender_acl_handles', $mailbox);

+

+                  foreach ($sender_acl_handles['sender_acl_domains']['ro'] as $domain):

+                    ?>

+                    <option data-subtext="Admin" value="<?=htmlspecialchars($domain);?>" disabled selected><?=htmlspecialchars(sprintf($lang['edit']['dont_check_sender_acl'], $domain));?></option>

+                    <?php

+                  endforeach;

+

+                  foreach ($sender_acl_handles['sender_acl_addresses']['ro'] as $alias):

+                    ?>

+                  <option data-subtext="Admin" disabled selected><?=htmlspecialchars($alias);?></option>

+                    <?php

+                  endforeach;

+

+                  foreach ($sender_acl_handles['fixed_sender_aliases'] as $alias):

+                    ?>

+                    <option data-subtext="Alias" disabled selected><?=htmlspecialchars($alias);?></option>

+                    <?php

+                  endforeach;

+

+                  foreach ($sender_acl_handles['sender_acl_domains']['rw'] as $domain):

+                    ?>

+                    <option value="<?=htmlspecialchars($domain);?>" selected><?=htmlspecialchars(sprintf($lang['edit']['dont_check_sender_acl'], $domain));?></option>

+                    <?php

+                  endforeach;

+

+                  foreach ($sender_acl_handles['sender_acl_domains']['selectable'] as $domain):

+                    ?>

+                    <option value="<?=htmlspecialchars($domain);?>"><?=htmlspecialchars(sprintf($lang['edit']['dont_check_sender_acl'], $domain));?></option>

+                    <?php

+                  endforeach;

+

+                  foreach ($sender_acl_handles['sender_acl_addresses']['rw'] as $address):

+                    ?>

+                      <option selected><?=htmlspecialchars($address);?></option>

+                    <?php

+                  endforeach;

+

+                  foreach ($sender_acl_handles['sender_acl_addresses']['selectable'] as $address):

+                    ?>

+                      <option><?=htmlspecialchars($address);?></option>

+                    <?php

+                  endforeach;

+

+                  // Generated here, but used in extended_sender_acl

+                  if (!empty($sender_acl_handles['external_sender_aliases'])) {

+                    $ext_sender_acl = implode(', ', $sender_acl_handles['external_sender_aliases']);

+                  }

+                  else {

+                    $ext_sender_acl = '';

+                  }

+

+                  ?>

+                  </select>

+                  <div id="sender_acl_disabled"><i class="bi bi-shield-exclamation"></i> <?=$lang['edit']['sender_acl_disabled'];?></div>

+                  <small class="help-block"><?=$lang['edit']['sender_acl_info'];?></small>

+                </div>

+              </div>

+              <div class="form-group">

+                <label class="control-label col-sm-2" for="relayhost"><?=$lang['edit']['relayhost'];?></label>

+                <div class="col-sm-10">

+                  <select data-acl="<?=$_SESSION['acl']['mailbox_relayhost'];?>" data-live-search="true" id="relayhost" name="relayhost" class="form-control space20">

+                    <?php

+                    foreach ($rlyhosts as $rlyhost) {

+                    ?>

+                        <option style="<?=($rlyhost['active'] == 1) ? '' : 'background: #ff4136; color: #fff';?>" value="<?=$rlyhost['id'];?>" <?=($result['attributes']['relayhost'] == $rlyhost['id']) ? 'selected' : null;?>>ID <?=$rlyhost['id'];?>: <?=$rlyhost['hostname'];?> (<?=$rlyhost['username'];?>)</option>

+                    <?php

+                    }

+                    ?>

+                    <option value="" <?=($result['attributes']['relayhost'] == "0" || empty($result['attributes']['relayhost'])) ? 'selected' : null;?>><?=$lang['edit']['none_inherit'];?></option>

+                  </select>

+                  <p class="visible-xs" style="margin: 0;padding: 0">&nbsp;</p>

+                  <small class="help-block"><?=$lang['edit']['mailbox_relayhost_info'];?></small>

+                </div>

+              </div>

+              <div class="form-group">

+                <label class="control-label col-sm-2"><?=$lang['user']['quarantine_notification'];?></label>

+                <div class="col-sm-10">

+                <div class="btn-group" data-acl="<?=$_SESSION['acl']['quarantine_notification'];?>">

+                  <button type="button" class="btn btn-sm btn-xs-quart visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default <?=($quarantine_notification == "never") ? "active" : null;?>"

+                    data-action="edit_selected"

+                    data-item="<?= htmlentities($mailbox); ?>"

+                    data-id="quarantine_notification"

+                    data-api-url='edit/quarantine_notification'

+                    data-api-attr='{"quarantine_notification":"never"}'><?=$lang['user']['never'];?></button>

+                  <button type="button" class="btn btn-sm btn-xs-quart visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default <?=($quarantine_notification == "hourly") ? "active" : null;?>"

+                    data-action="edit_selected"

+                    data-item="<?= htmlentities($mailbox); ?>"

+                    data-id="quarantine_notification"

+                    data-api-url='edit/quarantine_notification'

+                    data-api-attr='{"quarantine_notification":"hourly"}'><?=$lang['user']['hourly'];?></button>

+                  <button type="button" class="btn btn-sm btn-xs-quart visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default <?=($quarantine_notification == "daily") ? "active" : null;?>"

+                    data-action="edit_selected"

+                    data-item="<?= htmlentities($mailbox); ?>"

+                    data-id="quarantine_notification"

+                    data-api-url='edit/quarantine_notification'

+                    data-api-attr='{"quarantine_notification":"daily"}'><?=$lang['user']['daily'];?></button>

+                  <button type="button" class="btn btn-sm btn-xs-quart visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default <?=($quarantine_notification == "weekly") ? "active" : null;?>"

+                    data-action="edit_selected"

+                    data-item="<?= htmlentities($mailbox); ?>"

+                    data-id="quarantine_notification"

+                    data-api-url='edit/quarantine_notification'

+                    data-api-attr='{"quarantine_notification":"weekly"}'><?=$lang['user']['weekly'];?></button>

+                    <div class="clearfix visible-xs"></div>

+                </div>

+                <p class="help-block"><small><?=$lang['user']['quarantine_notification_info'];?></small></p>

+                </div>

+              </div>

+              <div class="form-group">

+                <label class="control-label col-sm-2"><?=$lang['user']['quarantine_category'];?></label>

+                <div class="col-sm-10">

+                <div class="btn-group" data-acl="<?=$_SESSION['acl']['quarantine_category'];?>">

+                  <button type="button" class="btn btn-sm btn-xs-third visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default <?=($quarantine_category == "reject") ? "active" : null;?>"

+                    data-action="edit_selected"

+                    data-item="<?= htmlentities($mailbox); ?>"

+                    data-id="quarantine_category"

+                    data-api-url='edit/quarantine_category'

+                    data-api-attr='{"quarantine_category":"reject"}'><?=$lang['user']['q_reject'];?></button>

+                  <button type="button" class="btn btn-sm btn-xs-third visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default <?=($quarantine_category == "add_header") ? "active" : null;?>"

+                    data-action="edit_selected"

+                    data-item="<?= htmlentities($mailbox); ?>"

+                    data-id="quarantine_category"

+                    data-api-url='edit/quarantine_category'

+                    data-api-attr='{"quarantine_category":"add_header"}'><?=$lang['user']['q_add_header'];?></button>

+                  <button type="button" class="btn btn-sm btn-xs-third visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default <?=($quarantine_category == "all") ? "active" : null;?>"

+                    data-action="edit_selected"

+                    data-item="<?= htmlentities($mailbox); ?>"

+                    data-id="quarantine_category"

+                    data-api-url='edit/quarantine_category'

+                    data-api-attr='{"quarantine_category":"all"}'><?=$lang['user']['q_all'];?></button>

+                    <div class="clearfix visible-xs"></div>

+                </div>

+                <p class="help-block"><small><?=$lang['user']['quarantine_category_info'];?></small></p>

+                </div>

+              </div>

+              <div class="form-group">

+                <label class="control-label col-sm-2" for="sender_acl"><?=$lang['user']['tls_policy'];?></label>

+                <div class="col-sm-10">

+                  <div class="btn-group" data-acl="<?=$_SESSION['acl']['tls_policy'];?>">

+                    <button type="button" class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default <?=($get_tls_policy['tls_enforce_in'] == "1") ? "active" : null;?>"

+                      data-action="edit_selected"

+                      data-item="<?= htmlentities($mailbox); ?>"

+                      data-id="tls_policy"

+                      data-api-url='edit/tls_policy'

+                      data-api-attr='{"tls_enforce_in":<?=($get_tls_policy['tls_enforce_in'] == "1") ? "0" : "1";?>}'><?=$lang['user']['tls_enforce_in'];?></button>

+                    <button type="button" class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default <?=($get_tls_policy['tls_enforce_out'] == "1") ? "active" : null;?>"

+                      data-action="edit_selected"

+                      data-item="<?= htmlentities($mailbox); ?>"

+                      data-id="tls_policy"

+                      data-api-url='edit/tls_policy'

+                      data-api-attr='{"tls_enforce_out":<?=($get_tls_policy['tls_enforce_out'] == "1") ? "0" : "1";?>}'><?=$lang['user']['tls_enforce_out'];?></button>

+                      <div class="clearfix visible-xs"></div>

                   </div>

-                  <div class="col-sm-6">

-                    <div class="form-group">

-                      <label for="key">User/Group Key</label>

-                      <input type="text" class="form-control" name="key" maxlength="30" value="<?=$pushover_data['key'];?>" required>

-                    </div>

+                </div>

+              </div>

+              <div class="form-group">

+                <label class="control-label col-sm-2" for="password"><?=$lang['edit']['password'];?> (<a href="#" class="generate_password"><?=$lang['edit']['generate'];?></a>)</label>

+                <div class="col-sm-10">

+                <input type="password" data-pwgen-field="true" data-hibp="true" class="form-control" name="password" placeholder="<?=$lang['edit']['unchanged_if_empty'];?>" autocomplete="new-password">

+                </div>

+              </div>

+              <div class="form-group">

+                <label class="control-label col-sm-2" for="password2"><?=$lang['edit']['password_repeat'];?></label>

+                <div class="col-sm-10">

+                <input type="password" data-pwgen-field="true" class="form-control" name="password2" autocomplete="new-password">

+                </div>

+              </div>

+              <div data-acl="<?=$_SESSION['acl']['extend_sender_acl'];?>" class="form-group">

+                <label class="control-label col-sm-2" for="extended_sender_acl"><?=$lang['edit']['extended_sender_acl'];?></label>

+                <div class="col-sm-10">

+                <input type="text" class="form-control" name="extended_sender_acl" value="<?=empty($ext_sender_acl) ? '' : $ext_sender_acl; ?>" placeholder="user1@example.com, user2@example.org, @example.com, ...">

+                <small class="help-block"><?=$lang['edit']['extended_sender_acl_info'];?></small>

+                </div>

+              </div>

+              <div class="form-group">

+                <label class="control-label col-sm-2" for="protocol_access"><?=$lang['edit']['allowed_protocols'];?></label>

+                <div class="col-sm-10">

+                <select data-acl="<?=$_SESSION['acl']['protocol_access'];?>" name="protocol_access" multiple class="form-control">

+                  <option value="imap" <?=($result['attributes']['imap_access']=="1") ? 'selected' : null;?>>IMAP</option>

+                  <option value="pop3" <?=($result['attributes']['pop3_access']=="1") ? 'selected' : null;?>>POP3</option>

+                  <option value="smtp" <?=($result['attributes']['smtp_access']=="1") ? 'selected' : null;?>>SMTP</option>

+                </select>

+                </div>

+              </div>

+              <div hidden data-acl="<?=$_SESSION['acl']['smtp_ip_access'];?>" class="form-group">

+                <label class="control-label col-sm-2" for="allow_from_smtp"><?=$lang['edit']['allow_from_smtp'];?></label>

+                <div class="col-sm-10">

+                <input type="text" class="form-control" name="allow_from_smtp" value="<?=empty($allow_from_smtp) ? '' : $allow_from_smtp; ?>" placeholder="1.1.1.1, 10.2.0.0/24, ...">

+                <small class="help-block"><?=$lang['edit']['allow_from_smtp_info'];?></small>

+                </div>

+              </div>

+              <hr>

+              <div class="form-group">

+                <div class="col-sm-offset-2 col-sm-10">

+                <select name="active" class="form-control">

+                  <option value="1" <?=($result['active']=="1") ? 'selected' : null;?>><?=$lang['edit']['active'];?></option>

+                  <option value="2" <?=($result['active']=="2") ? 'selected' : null;?>><?=$lang['edit']['disable_login'];?></option>

+                  <option value="0" <?=($result['active']=="0") ? 'selected' : null;?>><?=$lang['edit']['inactive'];?></option>

+                </select>

+                </div>

+              </div>

+              <div class="form-group">

+                <div class="col-sm-offset-2 col-sm-10">

+                  <div class="checkbox">

+                  <label><input type="checkbox" value="1" name="force_pw_update" <?=($result['attributes']['force_pw_update']=="1") ? "checked" : null;?>> <?=$lang['edit']['force_pw_update'];?></label>

+                  <small class="help-block"><?=sprintf($lang['edit']['force_pw_update_info'], $UI_TEXTS['main_name']);?></small>

                   </div>

-                  <div class="col-sm-6">

-                    <div class="form-group">

-                      <label for="title"><?=$lang['edit']['pushover_title'];?></label>

-                      <input type="text" class="form-control" name="title" value="<?=$pushover_data['title'];?>" placeholder="Mail">

-                    </div>

+                </div>

+              </div>

+              <?php if (getenv('SKIP_SOGO') != "y") { ?>

+              <div data-acl="<?=$_SESSION['acl']['sogo_access'];?>" class="form-group">

+                <div class="col-sm-offset-2 col-sm-10">

+                  <div class="checkbox">

+                  <label><input type="checkbox" value="1" name="sogo_access" <?=($result['attributes']['sogo_access']=="1") ? "checked" : null;?>> <?=$lang['edit']['sogo_access'];?></label>

+                  <small class="help-block"><?=$lang['edit']['sogo_access_info'];?></small>

                   </div>

-                  <div class="col-sm-6">

-                    <div class="form-group">

-                      <label for="text"><?=$lang['edit']['pushover_text'];?></label>

-                      <input type="text" class="form-control" name="text" value="<?=$pushover_data['text'];?>" placeholder="You've got mail 📧">

-                    </div>

-                  </div>

-                  <div class="col-sm-12">

-                    <div class="form-group">

-                      <label for="text"><?=$lang['edit']['pushover_sender_array'];?></label>

-                      <input type="text" class="form-control" name="senders" value="<?=$pushover_data['senders'];?>" placeholder="sender1@example.com, sender2@example.com">

-                    </div>

-                  </div>

-                  <div class="col-sm-12">

-                    <div class="checkbox">

-                    <label><input type="checkbox" value="1" name="active" <?=($pushover_data['active']=="1") ? "checked" : null;?>> <?=$lang['edit']['active'];?></label>

-                    </div>

-                  </div>

-                  <div class="col-sm-12">

-                    <legend style="cursor:pointer;margin-top:10px" data-target="#po_advanced" class="arrow-toggle" unselectable="on" data-toggle="collapse">

-                      <span style="font-size:12px" class="arrow rotate glyphicon glyphicon-menu-down"></span> <?=$lang['edit']['advanced_settings'];?>

-                    </legend>

-                  </div>

-                  <div class="col-sm-12">

-                    <div id="po_advanced" class="collapse">

-                      <div class="form-group">

-                        <label for="text"><?=$lang['edit']['pushover_sender_regex'];?></label>

-                        <input type="text" class="form-control" name="senders_regex" value="<?=$pushover_data['senders_regex'];?>" placeholder="/(.*@example\.org$|^foo@example\.com$)/i" regex="true">

-                        <div class="checkbox">

-                          <label><input type="checkbox" value="1" name="evaluate_x_prio" <?=($pushover_data['attributes']['evaluate_x_prio']=="1") ? "checked" : null;?>> <?=$lang['edit']['pushover_evaluate_x_prio'];?></label>

+                </div>

+              </div>

+              <?php } ?>

+              <div class="form-group">

+                <div class="col-sm-offset-2 col-sm-10">

+                  <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="editmailbox" data-item="<?=htmlspecialchars($result['username']);?>" data-api-url='edit/mailbox' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

+                </div>

+              </div>

+            </form>

+          </div>

+          <div id="mpushover" class="tab-pane">

+            <form data-id="pushover" class="form well" method="post">

+              <input type="hidden" value="0" name="evaluate_x_prio">

+              <input type="hidden" value="0" name="only_x_prio">

+              <input type="hidden" value="0" name="active">

+              <div class="row">

+                <div class="col-sm-1">

+                  <p class="help-block"><a href="https://pushover.net" target="_blank"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAACglBMVEUAAAAAAAEAAAAilecFGigAAAAAAAAAAAAAAAANj+c3n+Ypm+oeYI4KWI4MieAtkdQbleoJcLcjmeswmN4Rit4KgdMKUYQJKUAQSnILL0kMNlMSTngimOoNPF0hlOQBBgkNOlkRS3MHIjUhk+IPf8wKLUYsjM0AAAASTngAAAAAAAAPfckbdLIbdrYUWIgegsgce70knfEAAAAknfENOVkGHi8YaaIjnvEdgMUhkuAQSG8aca0hleQUh9YLjOM4nOEMgtMcbaYWa6YemO02ltkKhNktgLodYZEPXJEyi8kKesktfLUzj84cWYMiluckZ5YJXJYeW4Y0k9YKfs4yjs0pc6YHZaUviskLfMkqmugak+cqkNcViNcqeK4Iaq4XRmYGPmYMKDsFJTstgr0LdL0ti84CCQ4BCQ4Qgc8rlt8XjN8shcQsi8wZSGgEP2cRMEUDKkUAAAD///8dmvEamfExo/EXmPEWl/ERlvElnvEsofEjnfETl/Enn/Ezo/E4pvEvovEfm/E1pPEzpPEvofEOlfEpoPEamPEQlfEYmfE6p/EgnPEVlvEroPE3pfE2pfENk/Ern/E3pPEcmfEfmvEnnvBlufT6/P0soPAknPDd7/zs9vzo9PxBqfItofAqoPD9/f3B4/q43/mx2/l/xfZ6w/Vxv/VtvfVgt/RXtPNTsfNEq/L3+/31+v3a7fvR6vvH5fqs2vmc0/jx+P3v9/3h8fzW7PvV7PvL5/q13fmo1/mh1PiY0fiNy/aHyfZ2wfVou/Vdt/RPsPM3oeoQkuowmeAgjdgcgMQbeLrw9/3k8vy74Pm63/mX0PdYtfNNr/Ikm+4wnOchkuAVjOAfdrMVcrOdoJikAAAAcnRSTlMAIQ8IzzweFwf+/fvw8P79+/Xt7e3p6eji4d7U08y8qZyTiIWDgn53bWxqaWBKQ0JBOjUwMCkoJCEfHBkT/vz8/Pv7+vr69/b29PTy7ezm5ubm5N7e29vQ0M/Pv7+4uLW1pqaWloWDg3x7e21mUVFFRUXdPracAAAEbElEQVRIx4WUZbvaQBCFF+ru7u7u7u7u7t4mvVwSoBC0JIUCLRQolLq7u7vr/+nMLkmQyvlwyfPcd86e3ZldUqwyQ/p329J+XfutPQYOLUP+q55rFtQJRvY79+xxlZTUWbKpz7/xrrMr2+3BoNPpdLn2lJQ4HEeqLOr1d7z7XNkesQed4A848G63Oy4Gmg/6Mz542QvZbqe8C/Ig73CLYiYTrtLmT3zfqbIcAR7y4wIqH/B6M9Fo0+Ldb6sM9ph/v4ozPuz12mxRofaAAr7jCNkuoz/jNf9AGHibkBCm51fsGKvxsAGWx4H+jBcEi6V2birDpCL/9Klrd1KHbiSvPWP8V0tTnTfO03iXi57P6WNHOVUf44IFdFDRz6pV5fw8Zy5z3JVH5+R48OwxqDiGvKJIY9R+9JsCuJ5HPg74OVEMpz+nbdEPUHEWeEk6IDUnTC1l5r+f8uffc0cfxc8fS17kLso24SwUPFDA/6DE82xKDOPliJ7n/GGOOyWK9zD9CdjvOfg9Dv6AH+AX04LW9gj2i8W/APx1UbxwCAu+wPmcpgUKL/EHdvtq4uwaZwCuznPJVY5LHhED15G/isd5Hz4eKui/e/du02YoKFeD5mHzHIN/nxEDe25gQQwKorAid04CfyzwL4XutXvl1Pt1guMOwwKPkU8mYIFT8JHK+vv8prpDScUVL+j8s3lOctw1GIhbWHAS+HgKPk7xPM/4UtNAYmzizJkf6NgTb/gM8jePQLsewMdthS3g95tMpT1IhVm6v1s8fYmLeb13Odwp8Fh5KY048y/d14WUrwrb1e/X/rNp73nkD8kWS+wi/MZ4XuetG4mhKubJm3/WNEvi8SHwB56nPKjUam0LBdp9ARwupFemTYudvgN/L1+A/Ko/LGBuS8pPy+YR1fuCTWNKnUyoeUyYx2o2dyEVGmr5xTD42xzvkD16+Pb9WIIH6fmt1r3mbsTY7Bvw+n23naT8BUWh86bz6G/e259UXPUK3gfAxQDlo7Rpx3Geqb2e3wp83SGEdKpB7zvwYbzvT2n65xLwbH6YP+M9C8vA8E1wxLU8gkCbdhXGUyrMgwVrcbzLHonr78lzDvWM3q/C/HtDlXoSUIe3YkblhRPIX4E8Oo/9siLv8dRjV7SBlkdgTXvKS7nzsA/9AfeEuhKq9T8zWIDv1Sd6ETAP4D6/H/1V+1BojvruNa4SZXz4JhY84dV5MOF5agUvu5OsOo+KRpG30KalEnoeDccFlutPZYs38D5n3zcpr1/0fBhfb3DOY1z2tSAgLxWezz6zuoHhfUmOejf6blHQH/sFuJYfcMZX307ytKvRa3ifoV/586P5j+tICtS77BuJxzxYAPZsntX8k3eSIhlajK4p8b7iefCEKs03kD/I2LnxL9ovH+43y4fAv1YrI/mzDBsavAX/UppfzVOrZT/ydxk6lJ047MfLfVbcb6hS9ZEzWxekKQ5WrtPqZg3rV6tWrX6Tle3KQZj/q6KxQnmDoXwFY0VSrN9e8FRXBCTAvwAAAABJRU5ErkJggg==" class="img img-fluid"></a></p>

+                </div>

+                <div class="col-sm-10">

+                  <p class="help-block"><?=sprintf($lang['edit']['pushover_info'], $mailbox);?></p>

+                  <p class="help-block"><?=$lang['edit']['pushover_vars'];?>: <code>{SUBJECT}</code>, <code>{SENDER}</code></p>

+                  <div class="form-group">

+                    <div class="row">

+                      <div class="col-sm-6">

+                        <div class="form-group">

+                          <label for="token">API Token/Key (Application)</label>

+                          <input type="text" class="form-control" name="token" maxlength="30" value="<?=$pushover_data['token'];?>" required>

                         </div>

+                      </div>

+                      <div class="col-sm-6">

+                        <div class="form-group">

+                          <label for="key">User/Group Key</label>

+                          <input type="text" class="form-control" name="key" maxlength="30" value="<?=$pushover_data['key'];?>" required>

+                        </div>

+                      </div>

+                      <div class="col-sm-6">

+                        <div class="form-group">

+                          <label for="title"><?=$lang['edit']['pushover_title'];?></label>

+                          <input type="text" class="form-control" name="title" value="<?=$pushover_data['title'];?>" placeholder="Mail">

+                        </div>

+                      </div>

+                      <div class="col-sm-6">

+                        <div class="form-group">

+                          <label for="text"><?=$lang['edit']['pushover_text'];?></label>

+                          <input type="text" class="form-control" name="text" value="<?=$pushover_data['text'];?>" placeholder="You've got mail 📧">

+                        </div>

+                      </div>

+                      <div class="col-sm-12">

+                        <div class="form-group">

+                          <label for="text"><?=$lang['edit']['pushover_sender_array'];?></label>

+                          <input type="text" class="form-control" name="senders" value="<?=$pushover_data['senders'];?>" placeholder="sender1@example.com, sender2@example.com">

+                        </div>

+                      </div>

+                      <div class="col-sm-12">

                         <div class="checkbox">

-                          <label><input type="checkbox" value="1" name="only_x_prio" <?=($pushover_data['attributes']['only_x_prio']=="1") ? "checked" : null;?>> <?=$lang['edit']['pushover_only_x_prio'];?></label>

+                        <label><input type="checkbox" value="1" name="active" <?=($pushover_data['active']=="1") ? "checked" : null;?>> <?=$lang['edit']['active'];?></label>

+                        </div>

+                      </div>

+                      <div class="col-sm-12">

+                        <legend style="cursor:pointer;margin-top:10px" data-target="#po_advanced" unselectable="on" data-toggle="collapse">

+                          <i class="bi bi-plus"></i> <?=$lang['edit']['advanced_settings'];?>

+                        </legend>

+                      </div>

+                      <div class="col-sm-12">

+                        <div id="po_advanced" class="collapse">

+                          <div class="form-group">

+                            <label for="text"><?=$lang['edit']['pushover_sender_regex'];?></label>

+                            <input type="text" class="form-control" name="senders_regex" value="<?=$pushover_data['senders_regex'];?>" placeholder="/(.*@example\.org$|^foo@example\.com$)/i" regex="true">

+                            <div class="checkbox">

+                              <label><input type="checkbox" value="1" name="evaluate_x_prio" <?=($pushover_data['attributes']['evaluate_x_prio']=="1") ? "checked" : null;?>> <?=$lang['edit']['pushover_evaluate_x_prio'];?></label>

+                            </div>

+                            <div class="checkbox">

+                              <label><input type="checkbox" value="1" name="only_x_prio" <?=($pushover_data['attributes']['only_x_prio']=="1") ? "checked" : null;?>> <?=$lang['edit']['pushover_only_x_prio'];?></label>

+                            </div>

+                          </div>

                         </div>

                       </div>

                     </div>

                   </div>

+                  <div class="btn-group" data-acl="<?=$_SESSION['acl']['pushover'];?>">

+                      <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" data-action="edit_selected" data-id="pushover" data-item="<?=htmlspecialchars($mailbox);?>" data-api-url='edit/pushover' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></a>

+                      <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" data-action="edit_selected" data-id="pushover-test" data-item="<?=htmlspecialchars($mailbox);?>" data-api-url='edit/pushover-test' data-api-attr='{}' href="#"><i class="bi bi-check-lg"></i> <?=$lang['edit']['pushover_verify'];?></a>

+                      <div class="clearfix visible-xs"></div>

+                      <a id="pushover_delete" class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-danger" data-action="edit_selected" data-id="pushover-delete" data-item="<?=htmlspecialchars($mailbox);?>" data-api-url='edit/pushover' data-api-attr='{"delete":"true"}' href="#"><i class="bi bi-trash"></i> <?=$lang['edit']['remove'];?></a>

+                  </div>

                 </div>

               </div>

-              <div class="btn-group" data-acl="<?=$_SESSION['acl']['pushover'];?>">

-                  <a class="btn btn-sm btn-default" data-action="edit_selected" data-id="pushover" data-item="<?=htmlspecialchars($mailbox);?>" data-api-url='edit/pushover' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></a>

-                  <a class="btn btn-sm btn-default" data-action="edit_selected" data-id="pushover-test" data-item="<?=htmlspecialchars($mailbox);?>" data-api-url='edit/pushover-test' data-api-attr='{}' href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['edit']['pushover_verify'];?></a>

-                  <a id="pushover_delete" class="btn btn-sm btn-danger" data-action="edit_selected" data-id="pushover-delete" data-item="<?=htmlspecialchars($mailbox);?>" data-api-url='edit/pushover' data-api-attr='{"delete":"true"}' href="#"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span> <?=$lang['edit']['remove'];?></a>

-              </div>

-            </div>

+            </form>

           </div>

-        </form>

-        <hr>

-        <form data-id="mboxratelimit" class="form-inline well" method="post">

-          <div class="row">

-            <div class="col-sm-1">

-              <p class="help-block"><?=$lang['acl']['ratelimit'];?></p>

-            </div>

-            <div class="col-sm-10">

-              <div class="form-group">

-                <input name="rl_value" type="number" autocomplete="off" value="<?=(!empty($rl['value'])) ? $rl['value'] : null;?>" class="form-control" placeholder="disabled">

+          <div id="macl" class="tab-pane">

+            <form data-id="useracl" class="form-inline well" method="post">

+              <div class="row">

+                <div class="col-sm-1">

+                  <p class="help-block">ACL</p>

+                </div>

+                <div class="col-sm-10">

+                  <div class="form-group">

+                    <select id="user_acl" name="user_acl" size="10" multiple>

+                    <?php

+                    $user_acls = acl('get', 'user', $mailbox);

+                    foreach ($user_acls as $acl => $val):

+                      ?>

+                      <option value="<?=$acl;?>" <?=($val == 1) ? 'selected' : null;?>><?=$lang['acl'][$acl];?></option>

+                      <?php

+                    endforeach;

+                    ?>

+                    </select>

+                  </div>

+                  <div class="form-group">

+                    <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" data-action="edit_selected" data-id="useracl" data-item="<?=htmlspecialchars($mailbox);?>" data-api-url='edit/user-acl' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

+                  </div>

+                </div>

               </div>

-              <div class="form-group">

-                <select name="rl_frame" class="form-control">

-                  <option value="s" <?=(isset($rl['frame']) && $rl['frame'] == 's') ? 'selected' : null;?>>msgs / second</option>

-                  <option value="m" <?=(isset($rl['frame']) && $rl['frame'] == 'm') ? 'selected' : null;?>>msgs / minute</option>

-                  <option value="h" <?=(isset($rl['frame']) && $rl['frame'] == 'h') ? 'selected' : null;?>>msgs / hour</option>

-                  <option value="d" <?=(isset($rl['frame']) && $rl['frame'] == 'd') ? 'selected' : null;?>>msgs / day</option>

-                </select>

-              </div>

-              <div class="form-group">

-                <button class="btn btn-default" data-action="edit_selected" data-id="mboxratelimit" data-item="<?=htmlspecialchars($mailbox);?>" data-api-url='edit/rl-mbox' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

-              </div>

-              <p class="help-block"><?=$lang['edit']['mbox_rl_info'];?></p>

-            </div>

+            </form>

           </div>

-        </form>

-        <form data-id="useracl" class="form-inline well" method="post">

-          <div class="row">

-            <div class="col-sm-1">

-              <p class="help-block">ACL</p>

-            </div>

-            <div class="col-sm-10">

-              <div class="form-group">

-                <select id="user_acl" name="user_acl" size="10" multiple>

-                <?php

-                $user_acls = acl('get', 'user', $mailbox);

-                foreach ($user_acls as $acl => $val):

-                  ?>

-                  <option value="<?=$acl;?>" <?=($val == 1) ? 'selected' : null;?>><?=$lang['acl'][$acl];?></option>

-                  <?php

-                endforeach;

-                ?>

-                </select>

+          <div id="mrl" class="tab-pane">

+            <form data-id="mboxratelimit" class="form-inline well" method="post">

+              <div class="row">

+                <div class="col-sm-1">

+                  <p class="help-block"><?=$lang['acl']['ratelimit'];?></p>

+                </div>

+                <div class="col-sm-10">

+                  <div class="form-group">

+                    <input name="rl_value" type="number" autocomplete="off" value="<?=(!empty($rl['value'])) ? $rl['value'] : null;?>" class="form-control" placeholder="<?=$lang['ratelimit']['disabled']?>">

+                  </div>

+                  <div class="form-group">

+                    <select name="rl_frame" class="form-control">

+                      <option value="s" <?=(isset($rl['frame']) && $rl['frame'] == 's') ? 'selected' : null;?>><?=$lang['ratelimit']['second']?></option>

+                      <option value="m" <?=(isset($rl['frame']) && $rl['frame'] == 'm') ? 'selected' : null;?>><?=$lang['ratelimit']['minute']?></option>

+                      <option value="h" <?=(isset($rl['frame']) && $rl['frame'] == 'h') ? 'selected' : null;?>><?=$lang['ratelimit']['hour']?></option>

+                      <option value="d" <?=(isset($rl['frame']) && $rl['frame'] == 'd') ? 'selected' : null;?>><?=$lang['ratelimit']['day']?></option>

+                    </select>

+                  </div>

+                  <div class="form-group">

+                    <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" data-action="edit_selected" data-id="mboxratelimit" data-item="<?=htmlspecialchars($mailbox);?>" data-api-url='edit/rl-mbox' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

+                  </div>

+                  <p class="help-block"><?=$lang['edit']['mbox_rl_info'];?></p>

+                </div>

               </div>

-              <div class="form-group">

-                <button class="btn btn-default" data-action="edit_selected" data-id="useracl" data-item="<?=htmlspecialchars($mailbox);?>" data-api-url='edit/user-acl' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

-              </div>

-            </div>

+            </form>

           </div>

-        </form>

+        </div>

       <?php

       }

     }

@@ -973,7 +1055,7 @@
             </div>

             <div class="form-group">

               <div class="col-sm-offset-2 col-sm-10">

-                <button class="btn btn-success" data-action="edit_selected" data-id="editrelayhost" data-item="<?=htmlspecialchars($result['id']);?>" data-api-url='edit/relayhost' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

+                <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="editrelayhost" data-item="<?=htmlspecialchars($result['id']);?>" data-api-url='edit/relayhost' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

               </div>

             </div>

           </form>

@@ -993,6 +1075,7 @@
           <h4><?=$lang['edit']['resource'];?></h4>

           <form class="form-horizontal" role="form" method="post" data-id="edittransport">

             <input type="hidden" value="0" name="active">

+            <input type="hidden" value="0" name="is_mx_based">

             <div class="form-group">

               <label class="control-label col-sm-2" for="destination"><?=$lang['add']['destination'];?></label>

               <div class="col-sm-10">

@@ -1020,13 +1103,20 @@
             <div class="form-group">

               <div class="col-sm-offset-2 col-sm-10">

                 <div class="checkbox">

+                <label><input type="checkbox" value="1" name="is_mx_based" <?=($result['is_mx_based']=="1") ? "checked" : null;?>> <?=$lang['edit']['lookup_mx'];?></label>

+                </div>

+              </div>

+            </div>

+            <div class="form-group">

+              <div class="col-sm-offset-2 col-sm-10">

+                <div class="checkbox">

                 <label><input type="checkbox" value="1" name="active" <?=($result['active']=="1") ? "checked" : null;?>> <?=$lang['edit']['active'];?></label>

                 </div>

               </div>

             </div>

             <div class="form-group">

               <div class="col-sm-offset-2 col-sm-10">

-                <button class="btn btn-success" data-action="edit_selected" data-id="edittransport" data-item="<?=htmlspecialchars($result['id']);?>" data-api-url='edit/transport' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

+                <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="edittransport" data-item="<?=htmlspecialchars($result['id']);?>" data-api-url='edit/transport' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

               </div>

             </div>

           </form>

@@ -1086,7 +1176,7 @@
             </div>

             <div class="form-group">

               <div class="col-sm-offset-2 col-sm-10">

-                <button class="btn btn-success" data-action="edit_selected" data-id="editresource" data-item="<?=htmlspecialchars($result['name']);?>" data-api-url='edit/resource' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

+                <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="editresource" data-item="<?=htmlspecialchars($result['name']);?>" data-api-url='edit/resource' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

               </div>

             </div>

           </form>

@@ -1132,7 +1222,7 @@
             </div>

             <div class="form-group">

               <div class="col-sm-offset-2 col-sm-10">

-                <button class="btn btn-success" data-action="edit_selected" data-id="editbcc" data-item="<?=$bcc;?>" data-api-url='edit/bcc' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

+                <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="editbcc" data-item="<?=$bcc;?>" data-api-url='edit/bcc' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

               </div>

             </div>

           </form>

@@ -1181,7 +1271,7 @@
             </div>

             <div class="form-group">

               <div class="col-sm-offset-2 col-sm-10">

-                <button class="btn btn-success" data-action="edit_selected" data-id="edit_recipient_map" data-item="<?=$map;?>" data-api-url='edit/recipient_map' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

+                <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="edit_recipient_map" data-item="<?=$map;?>" data-api-url='edit/recipient_map' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

               </div>

             </div>

           </form>

@@ -1242,7 +1332,7 @@
             </div>

             <div class="form-group">

               <div class="col-sm-offset-2 col-sm-10">

-                <button class="btn btn-success" data-action="edit_selected" data-id="edit_tls_policy_maps" data-item="<?=$map;?>" data-api-url='edit/tls-policy-map' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

+                <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="edit_tls_policy_maps" data-item="<?=$map;?>" data-api-url='edit/tls-policy-map' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

               </div>

             </div>

           </form>

@@ -1410,7 +1500,7 @@
             </div>

             <div class="form-group">

               <div class="col-sm-offset-2 col-sm-10">

-                <button class="btn btn-success" data-action="edit_selected" data-id="editsyncjob" data-item="<?=htmlspecialchars($result['id']);?>" data-api-url='edit/syncjob' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

+                <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="editsyncjob" data-item="<?=htmlspecialchars($result['id']);?>" data-api-url='edit/syncjob' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

               </div>

             </div>

           </form>

@@ -1461,7 +1551,7 @@
             </div>

             <div class="form-group">

               <div class="col-sm-offset-2 col-sm-10">

-                <button class="btn btn-success" data-action="edit_selected" data-id="editfilter" data-item="<?=htmlspecialchars($result['id']);?>" data-api-url='edit/filter' data-api-attr='{}' href="#"><?=$lang['edit']['validate_save'];?></button>

+                <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="editfilter" data-item="<?=htmlspecialchars($result['id']);?>" data-api-url='edit/filter' data-api-attr='{}' href="#"><?=$lang['edit']['validate_save'];?></button>

               </div>

             </div>

           </form>

@@ -1509,7 +1599,7 @@
             </div>

             <div class="form-group">

               <div class="col-sm-offset-2 col-sm-10">

-                <button class="btn btn-success" data-action="edit_selected" data-id="editapp" data-item="<?=htmlspecialchars($result['id']);?>" data-api-url='edit/app-passwd' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

+                <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="editapp" data-item="<?=htmlspecialchars($result['id']);?>" data-api-url='edit/app-passwd' data-api-attr='{}' href="#"><?=$lang['edit']['save'];?></button>

               </div>

             </div>

           </form>

@@ -1525,14 +1615,14 @@
 }

 else {

 ?>

-	<div class="alert alert-danger" role="alert"><?=$lang['danger']['access_denied'];?></div>

+  <div class="alert alert-danger" role="alert"><?=$lang['danger']['access_denied'];?></div>

 <?php

 }

 ?>

-				</div>

-			</div>

-		</div>

-	</div>

+        </div>

+      </div>

+    </div>

+  </div>

 <a href="<?=$_SESSION['return_to'];?>">&#8592; <?=$lang['edit']['previous'];?></a>

 </div> <!-- /container -->

 <script type='text/javascript'>

diff --git a/mailcow/src/mailcow-dockerized/data/web/fonts/PTSans.txt b/mailcow/src/mailcow-dockerized/data/web/fonts/PTSans.txt
deleted file mode 100644
index 1e09546..0000000
--- a/mailcow/src/mailcow-dockerized/data/web/fonts/PTSans.txt
+++ /dev/null
@@ -1,94 +0,0 @@
-Copyright (c) 2010, ParaType Ltd. (http://www.paratype.com/public),

-with Reserved Font Names "PT Sans" and "ParaType".

-

-This Font Software is licensed under the SIL Open Font License, Version 1.1.

-This license is copied below, and is also available with a FAQ at:

-http://scripts.sil.org/OFL

-

-

------------------------------------------------------------

-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007

------------------------------------------------------------

-

-PREAMBLE

-The goals of the Open Font License (OFL) are to stimulate worldwide

-development of collaborative font projects, to support the font creation

-efforts of academic and linguistic communities, and to provide a free and

-open framework in which fonts may be shared and improved in partnership

-with others.

-

-The OFL allows the licensed fonts to be used, studied, modified and

-redistributed freely as long as they are not sold by themselves. The

-fonts, including any derivative works, can be bundled, embedded, 

-redistributed and/or sold with any software provided that any reserved

-names are not used by derivative works. The fonts and derivatives,

-however, cannot be released under any other type of license. The

-requirement for fonts to remain under this license does not apply

-to any document created using the fonts or their derivatives.

-

-DEFINITIONS

-"Font Software" refers to the set of files released by the Copyright

-Holder(s) under this license and clearly marked as such. This may

-include source files, build scripts and documentation.

-

-"Reserved Font Name" refers to any names specified as such after the

-copyright statement(s).

-

-"Original Version" refers to the collection of Font Software components as

-distributed by the Copyright Holder(s).

-

-"Modified Version" refers to any derivative made by adding to, deleting,

-or substituting -- in part or in whole -- any of the components of the

-Original Version, by changing formats or by porting the Font Software to a

-new environment.

-

-"Author" refers to any designer, engineer, programmer, technical

-writer or other person who contributed to the Font Software.

-

-PERMISSION & CONDITIONS

-Permission is hereby granted, free of charge, to any person obtaining

-a copy of the Font Software, to use, study, copy, merge, embed, modify,

-redistribute, and sell modified and unmodified copies of the Font

-Software, subject to the following conditions:

-

-1) Neither the Font Software nor any of its individual components,

-in Original or Modified Versions, may be sold by itself.

-

-2) Original or Modified Versions of the Font Software may be bundled,

-redistributed and/or sold with any software, provided that each copy

-contains the above copyright notice and this license. These can be

-included either as stand-alone text files, human-readable headers or

-in the appropriate machine-readable metadata fields within text or

-binary files as long as those fields can be easily viewed by the user.

-

-3) No Modified Version of the Font Software may use the Reserved Font

-Name(s) unless explicit written permission is granted by the corresponding

-Copyright Holder. This restriction only applies to the primary font name as

-presented to the users.

-

-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font

-Software shall not be used to promote, endorse or advertise any

-Modified Version, except to acknowledge the contribution(s) of the

-Copyright Holder(s) and the Author(s) or with their explicit written

-permission.

-

-5) The Font Software, modified or unmodified, in part or in whole,

-must be distributed entirely under this license, and must not be

-distributed under any other license. The requirement for fonts to

-remain under this license does not apply to any document created

-using the Font Software.

-

-TERMINATION

-This license becomes null and void if any of the above conditions are

-not met.

-

-DISCLAIMER

-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,

-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF

-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT

-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE

-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,

-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL

-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING

-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM

-OTHER DEALINGS IN THE FONT SOFTWARE.

diff --git a/mailcow/src/mailcow-dockerized/data/web/fonts/bootstrap-icons.woff b/mailcow/src/mailcow-dockerized/data/web/fonts/bootstrap-icons.woff
new file mode 100644
index 0000000..8cd8946
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/fonts/bootstrap-icons.woff
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/web/fonts/bootstrap-icons.woff2 b/mailcow/src/mailcow-dockerized/data/web/fonts/bootstrap-icons.woff2
new file mode 100644
index 0000000..3e587fd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/fonts/bootstrap-icons.woff2
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/web/fonts/glyphicons-halflings-regular.eot b/mailcow/src/mailcow-dockerized/data/web/fonts/glyphicons-halflings-regular.eot
deleted file mode 100644
index b93a495..0000000
--- a/mailcow/src/mailcow-dockerized/data/web/fonts/glyphicons-halflings-regular.eot
+++ /dev/null
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/web/fonts/glyphicons-halflings-regular.svg b/mailcow/src/mailcow-dockerized/data/web/fonts/glyphicons-halflings-regular.svg
deleted file mode 100644
index 94fb549..0000000
--- a/mailcow/src/mailcow-dockerized/data/web/fonts/glyphicons-halflings-regular.svg
+++ /dev/null
@@ -1,288 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
-<font-face units-per-em="1200" ascent="960" descent="-240" />
-<missing-glyph horiz-adv-x="500" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="400" />
-<glyph unicode=" " />
-<glyph unicode="*" d="M600 1100q15 0 34 -1.5t30 -3.5l11 -1q10 -2 17.5 -10.5t7.5 -18.5v-224l158 158q7 7 18 8t19 -6l106 -106q7 -8 6 -19t-8 -18l-158 -158h224q10 0 18.5 -7.5t10.5 -17.5q6 -41 6 -75q0 -15 -1.5 -34t-3.5 -30l-1 -11q-2 -10 -10.5 -17.5t-18.5 -7.5h-224l158 -158 q7 -7 8 -18t-6 -19l-106 -106q-8 -7 -19 -6t-18 8l-158 158v-224q0 -10 -7.5 -18.5t-17.5 -10.5q-41 -6 -75 -6q-15 0 -34 1.5t-30 3.5l-11 1q-10 2 -17.5 10.5t-7.5 18.5v224l-158 -158q-7 -7 -18 -8t-19 6l-106 106q-7 8 -6 19t8 18l158 158h-224q-10 0 -18.5 7.5 t-10.5 17.5q-6 41 -6 75q0 15 1.5 34t3.5 30l1 11q2 10 10.5 17.5t18.5 7.5h224l-158 158q-7 7 -8 18t6 19l106 106q8 7 19 6t18 -8l158 -158v224q0 10 7.5 18.5t17.5 10.5q41 6 75 6z" />
-<glyph unicode="+" d="M450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-350h350q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-350v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v350h-350q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5 h350v350q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xa0;" />
-<glyph unicode="&#xa5;" d="M825 1100h250q10 0 12.5 -5t-5.5 -13l-364 -364q-6 -6 -11 -18h268q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-100h275q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-174q0 -11 -7.5 -18.5t-18.5 -7.5h-148q-11 0 -18.5 7.5t-7.5 18.5v174 h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h125v100h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h118q-5 12 -11 18l-364 364q-8 8 -5.5 13t12.5 5h250q25 0 43 -18l164 -164q8 -8 18 -8t18 8l164 164q18 18 43 18z" />
-<glyph unicode="&#x2000;" horiz-adv-x="650" />
-<glyph unicode="&#x2001;" horiz-adv-x="1300" />
-<glyph unicode="&#x2002;" horiz-adv-x="650" />
-<glyph unicode="&#x2003;" horiz-adv-x="1300" />
-<glyph unicode="&#x2004;" horiz-adv-x="433" />
-<glyph unicode="&#x2005;" horiz-adv-x="325" />
-<glyph unicode="&#x2006;" horiz-adv-x="216" />
-<glyph unicode="&#x2007;" horiz-adv-x="216" />
-<glyph unicode="&#x2008;" horiz-adv-x="162" />
-<glyph unicode="&#x2009;" horiz-adv-x="260" />
-<glyph unicode="&#x200a;" horiz-adv-x="72" />
-<glyph unicode="&#x202f;" horiz-adv-x="260" />
-<glyph unicode="&#x205f;" horiz-adv-x="325" />
-<glyph unicode="&#x20ac;" d="M744 1198q242 0 354 -189q60 -104 66 -209h-181q0 45 -17.5 82.5t-43.5 61.5t-58 40.5t-60.5 24t-51.5 7.5q-19 0 -40.5 -5.5t-49.5 -20.5t-53 -38t-49 -62.5t-39 -89.5h379l-100 -100h-300q-6 -50 -6 -100h406l-100 -100h-300q9 -74 33 -132t52.5 -91t61.5 -54.5t59 -29 t47 -7.5q22 0 50.5 7.5t60.5 24.5t58 41t43.5 61t17.5 80h174q-30 -171 -128 -278q-107 -117 -274 -117q-206 0 -324 158q-36 48 -69 133t-45 204h-217l100 100h112q1 47 6 100h-218l100 100h134q20 87 51 153.5t62 103.5q117 141 297 141z" />
-<glyph unicode="&#x20bd;" d="M428 1200h350q67 0 120 -13t86 -31t57 -49.5t35 -56.5t17 -64.5t6.5 -60.5t0.5 -57v-16.5v-16.5q0 -36 -0.5 -57t-6.5 -61t-17 -65t-35 -57t-57 -50.5t-86 -31.5t-120 -13h-178l-2 -100h288q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-138v-175q0 -11 -5.5 -18 t-15.5 -7h-149q-10 0 -17.5 7.5t-7.5 17.5v175h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v100h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v475q0 10 7.5 17.5t17.5 7.5zM600 1000v-300h203q64 0 86.5 33t22.5 119q0 84 -22.5 116t-86.5 32h-203z" />
-<glyph unicode="&#x2212;" d="M250 700h800q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#x231b;" d="M1000 1200v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-50v-100q0 -91 -49.5 -165.5t-130.5 -109.5q81 -35 130.5 -109.5t49.5 -165.5v-150h50q21 0 35.5 -14.5t14.5 -35.5v-150h-800v150q0 21 14.5 35.5t35.5 14.5h50v150q0 91 49.5 165.5t130.5 109.5q-81 35 -130.5 109.5 t-49.5 165.5v100h-50q-21 0 -35.5 14.5t-14.5 35.5v150h800zM400 1000v-100q0 -60 32.5 -109.5t87.5 -73.5q28 -12 44 -37t16 -55t-16 -55t-44 -37q-55 -24 -87.5 -73.5t-32.5 -109.5v-150h400v150q0 60 -32.5 109.5t-87.5 73.5q-28 12 -44 37t-16 55t16 55t44 37 q55 24 87.5 73.5t32.5 109.5v100h-400z" />
-<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
-<glyph unicode="&#x2601;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -206.5q0 -121 -85 -207.5t-205 -86.5h-750q-79 0 -135.5 57t-56.5 137q0 69 42.5 122.5t108.5 67.5q-2 12 -2 37q0 153 108 260.5t260 107.5z" />
-<glyph unicode="&#x26fa;" d="M774 1193.5q16 -9.5 20.5 -27t-5.5 -33.5l-136 -187l467 -746h30q20 0 35 -18.5t15 -39.5v-42h-1200v42q0 21 15 39.5t35 18.5h30l468 746l-135 183q-10 16 -5.5 34t20.5 28t34 5.5t28 -20.5l111 -148l112 150q9 16 27 20.5t34 -5zM600 200h377l-182 112l-195 534v-646z " />
-<glyph unicode="&#x2709;" d="M25 1100h1150q10 0 12.5 -5t-5.5 -13l-564 -567q-8 -8 -18 -8t-18 8l-564 567q-8 8 -5.5 13t12.5 5zM18 882l264 -264q8 -8 8 -18t-8 -18l-264 -264q-8 -8 -13 -5.5t-5 12.5v550q0 10 5 12.5t13 -5.5zM918 618l264 264q8 8 13 5.5t5 -12.5v-550q0 -10 -5 -12.5t-13 5.5 l-264 264q-8 8 -8 18t8 18zM818 482l364 -364q8 -8 5.5 -13t-12.5 -5h-1150q-10 0 -12.5 5t5.5 13l364 364q8 8 18 8t18 -8l164 -164q8 -8 18 -8t18 8l164 164q8 8 18 8t18 -8z" />
-<glyph unicode="&#x270f;" d="M1011 1210q19 0 33 -13l153 -153q13 -14 13 -33t-13 -33l-99 -92l-214 214l95 96q13 14 32 14zM1013 800l-615 -614l-214 214l614 614zM317 96l-333 -112l110 335z" />
-<glyph unicode="&#xe001;" d="M700 650v-550h250q21 0 35.5 -14.5t14.5 -35.5v-50h-800v50q0 21 14.5 35.5t35.5 14.5h250v550l-500 550h1200z" />
-<glyph unicode="&#xe002;" d="M368 1017l645 163q39 15 63 0t24 -49v-831q0 -55 -41.5 -95.5t-111.5 -63.5q-79 -25 -147 -4.5t-86 75t25.5 111.5t122.5 82q72 24 138 8v521l-600 -155v-606q0 -42 -44 -90t-109 -69q-79 -26 -147 -5.5t-86 75.5t25.5 111.5t122.5 82.5q72 24 138 7v639q0 38 14.5 59 t53.5 34z" />
-<glyph unicode="&#xe003;" d="M500 1191q100 0 191 -39t156.5 -104.5t104.5 -156.5t39 -191l-1 -2l1 -5q0 -141 -78 -262l275 -274q23 -26 22.5 -44.5t-22.5 -42.5l-59 -58q-26 -20 -46.5 -20t-39.5 20l-275 274q-119 -77 -261 -77l-5 1l-2 -1q-100 0 -191 39t-156.5 104.5t-104.5 156.5t-39 191 t39 191t104.5 156.5t156.5 104.5t191 39zM500 1022q-88 0 -162 -43t-117 -117t-43 -162t43 -162t117 -117t162 -43t162 43t117 117t43 162t-43 162t-117 117t-162 43z" />
-<glyph unicode="&#xe005;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104z" />
-<glyph unicode="&#xe006;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429z" />
-<glyph unicode="&#xe007;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429zM477 700h-240l197 -142l-74 -226 l193 139l195 -140l-74 229l192 140h-234l-78 211z" />
-<glyph unicode="&#xe008;" d="M600 1200q124 0 212 -88t88 -212v-250q0 -46 -31 -98t-69 -52v-75q0 -10 6 -21.5t15 -17.5l358 -230q9 -5 15 -16.5t6 -21.5v-93q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v93q0 10 6 21.5t15 16.5l358 230q9 6 15 17.5t6 21.5v75q-38 0 -69 52 t-31 98v250q0 124 88 212t212 88z" />
-<glyph unicode="&#xe009;" d="M25 1100h1150q10 0 17.5 -7.5t7.5 -17.5v-1050q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v1050q0 10 7.5 17.5t17.5 7.5zM100 1000v-100h100v100h-100zM875 1000h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5t17.5 -7.5h550 q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM1000 1000v-100h100v100h-100zM100 800v-100h100v100h-100zM1000 800v-100h100v100h-100zM100 600v-100h100v100h-100zM1000 600v-100h100v100h-100zM875 500h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5 t17.5 -7.5h550q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM100 400v-100h100v100h-100zM1000 400v-100h100v100h-100zM100 200v-100h100v100h-100zM1000 200v-100h100v100h-100z" />
-<glyph unicode="&#xe010;" d="M50 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM50 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe011;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM850 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 700h200q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5 t35.5 14.5z" />
-<glyph unicode="&#xe012;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h700q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe013;" d="M465 477l571 571q8 8 18 8t17 -8l177 -177q8 -7 8 -17t-8 -18l-783 -784q-7 -8 -17.5 -8t-17.5 8l-384 384q-8 8 -8 18t8 17l177 177q7 8 17 8t18 -8l171 -171q7 -7 18 -7t18 7z" />
-<glyph unicode="&#xe014;" d="M904 1083l178 -179q8 -8 8 -18.5t-8 -17.5l-267 -268l267 -268q8 -7 8 -17.5t-8 -18.5l-178 -178q-8 -8 -18.5 -8t-17.5 8l-268 267l-268 -267q-7 -8 -17.5 -8t-18.5 8l-178 178q-8 8 -8 18.5t8 17.5l267 268l-267 268q-8 7 -8 17.5t8 18.5l178 178q8 8 18.5 8t17.5 -8 l268 -267l268 268q7 7 17.5 7t18.5 -7z" />
-<glyph unicode="&#xe015;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM425 900h150q10 0 17.5 -7.5t7.5 -17.5v-75h75q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5 t-17.5 -7.5h-75v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-75q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v75q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="&#xe016;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM325 800h350q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-350q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="&#xe017;" d="M550 1200h100q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM800 975v166q167 -62 272 -209.5t105 -331.5q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5 t-184.5 123t-123 184.5t-45.5 224q0 184 105 331.5t272 209.5v-166q-103 -55 -165 -155t-62 -220q0 -116 57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5q0 120 -62 220t-165 155z" />
-<glyph unicode="&#xe018;" d="M1025 1200h150q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM725 800h150q10 0 17.5 -7.5t7.5 -17.5v-750q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v750 q0 10 7.5 17.5t17.5 7.5zM425 500h150q10 0 17.5 -7.5t7.5 -17.5v-450q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v450q0 10 7.5 17.5t17.5 7.5zM125 300h150q10 0 17.5 -7.5t7.5 -17.5v-250q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5 v250q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="&#xe019;" d="M600 1174q33 0 74 -5l38 -152l5 -1q49 -14 94 -39l5 -2l134 80q61 -48 104 -105l-80 -134l3 -5q25 -44 39 -93l1 -6l152 -38q5 -43 5 -73q0 -34 -5 -74l-152 -38l-1 -6q-15 -49 -39 -93l-3 -5l80 -134q-48 -61 -104 -105l-134 81l-5 -3q-44 -25 -94 -39l-5 -2l-38 -151 q-43 -5 -74 -5q-33 0 -74 5l-38 151l-5 2q-49 14 -94 39l-5 3l-134 -81q-60 48 -104 105l80 134l-3 5q-25 45 -38 93l-2 6l-151 38q-6 42 -6 74q0 33 6 73l151 38l2 6q13 48 38 93l3 5l-80 134q47 61 105 105l133 -80l5 2q45 25 94 39l5 1l38 152q43 5 74 5zM600 815 q-89 0 -152 -63t-63 -151.5t63 -151.5t152 -63t152 63t63 151.5t-63 151.5t-152 63z" />
-<glyph unicode="&#xe020;" d="M500 1300h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-75h-1100v75q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5zM500 1200v-100h300v100h-300zM1100 900v-800q0 -41 -29.5 -70.5t-70.5 -29.5h-700q-41 0 -70.5 29.5t-29.5 70.5 v800h900zM300 800v-700h100v700h-100zM500 800v-700h100v700h-100zM700 800v-700h100v700h-100zM900 800v-700h100v700h-100z" />
-<glyph unicode="&#xe021;" d="M18 618l620 608q8 7 18.5 7t17.5 -7l608 -608q8 -8 5.5 -13t-12.5 -5h-175v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v375h-300v-375q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v575h-175q-10 0 -12.5 5t5.5 13z" />
-<glyph unicode="&#xe022;" d="M600 1200v-400q0 -41 29.5 -70.5t70.5 -29.5h300v-650q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5h450zM1000 800h-250q-21 0 -35.5 14.5t-14.5 35.5v250z" />
-<glyph unicode="&#xe023;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h50q10 0 17.5 -7.5t7.5 -17.5v-275h175q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="&#xe024;" d="M1300 0h-538l-41 400h-242l-41 -400h-538l431 1200h209l-21 -300h162l-20 300h208zM515 800l-27 -300h224l-27 300h-170z" />
-<glyph unicode="&#xe025;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-450h191q20 0 25.5 -11.5t-7.5 -27.5l-327 -400q-13 -16 -32 -16t-32 16l-327 400q-13 16 -7.5 27.5t25.5 11.5h191v450q0 21 14.5 35.5t35.5 14.5zM1125 400h50q10 0 17.5 -7.5t7.5 -17.5v-350q0 -10 -7.5 -17.5t-17.5 -7.5 h-1050q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h50q10 0 17.5 -7.5t7.5 -17.5v-175h900v175q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="&#xe026;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -275q-13 -16 -32 -16t-32 16l-223 275q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z " />
-<glyph unicode="&#xe027;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM632 914l223 -275q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5l223 275q13 16 32 16 t32 -16z" />
-<glyph unicode="&#xe028;" d="M225 1200h750q10 0 19.5 -7t12.5 -17l186 -652q7 -24 7 -49v-425q0 -12 -4 -27t-9 -17q-12 -6 -37 -6h-1100q-12 0 -27 4t-17 8q-6 13 -6 38l1 425q0 25 7 49l185 652q3 10 12.5 17t19.5 7zM878 1000h-556q-10 0 -19 -7t-11 -18l-87 -450q-2 -11 4 -18t16 -7h150 q10 0 19.5 -7t11.5 -17l38 -152q2 -10 11.5 -17t19.5 -7h250q10 0 19.5 7t11.5 17l38 152q2 10 11.5 17t19.5 7h150q10 0 16 7t4 18l-87 450q-2 11 -11 18t-19 7z" />
-<glyph unicode="&#xe029;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM540 820l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
-<glyph unicode="&#xe030;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-362q0 -10 -7.5 -17.5t-17.5 -7.5h-362q-11 0 -13 5.5t5 12.5l133 133q-109 76 -238 76q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5h150q0 -117 -45.5 -224 t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117z" />
-<glyph unicode="&#xe031;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-361q0 -11 -7.5 -18.5t-18.5 -7.5h-361q-11 0 -13 5.5t5 12.5l134 134q-110 75 -239 75q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5h-150q0 117 45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117zM1027 600h150 q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5q-192 0 -348 118l-134 -134q-7 -8 -12.5 -5.5t-5.5 12.5v360q0 11 7.5 18.5t18.5 7.5h360q10 0 12.5 -5.5t-5.5 -12.5l-133 -133q110 -76 240 -76q116 0 214.5 57t155.5 155.5t57 214.5z" />
-<glyph unicode="&#xe032;" d="M125 1200h1050q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-1050q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM1075 1000h-850q-10 0 -17.5 -7.5t-7.5 -17.5v-850q0 -10 7.5 -17.5t17.5 -7.5h850q10 0 17.5 7.5t7.5 17.5v850 q0 10 -7.5 17.5t-17.5 7.5zM325 900h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 900h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 700h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 700h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 500h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 500h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 300h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 300h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="&#xe033;" d="M900 800v200q0 83 -58.5 141.5t-141.5 58.5h-300q-82 0 -141 -59t-59 -141v-200h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h900q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-100zM400 800v150q0 21 15 35.5t35 14.5h200 q20 0 35 -14.5t15 -35.5v-150h-300z" />
-<glyph unicode="&#xe034;" d="M125 1100h50q10 0 17.5 -7.5t7.5 -17.5v-1075h-100v1075q0 10 7.5 17.5t17.5 7.5zM1075 1052q4 0 9 -2q16 -6 16 -23v-421q0 -6 -3 -12q-33 -59 -66.5 -99t-65.5 -58t-56.5 -24.5t-52.5 -6.5q-26 0 -57.5 6.5t-52.5 13.5t-60 21q-41 15 -63 22.5t-57.5 15t-65.5 7.5 q-85 0 -160 -57q-7 -5 -15 -5q-6 0 -11 3q-14 7 -14 22v438q22 55 82 98.5t119 46.5q23 2 43 0.5t43 -7t32.5 -8.5t38 -13t32.5 -11q41 -14 63.5 -21t57 -14t63.5 -7q103 0 183 87q7 8 18 8z" />
-<glyph unicode="&#xe035;" d="M600 1175q116 0 227 -49.5t192.5 -131t131 -192.5t49.5 -227v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v300q0 127 -70.5 231.5t-184.5 161.5t-245 57t-245 -57t-184.5 -161.5t-70.5 -231.5v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50 q-10 0 -17.5 7.5t-7.5 17.5v300q0 116 49.5 227t131 192.5t192.5 131t227 49.5zM220 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6zM820 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460 q0 8 6 14t14 6z" />
-<glyph unicode="&#xe036;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM900 668l120 120q7 7 17 7t17 -7l34 -34q7 -7 7 -17t-7 -17l-120 -120l120 -120q7 -7 7 -17 t-7 -17l-34 -34q-7 -7 -17 -7t-17 7l-120 119l-120 -119q-7 -7 -17 -7t-17 7l-34 34q-7 7 -7 17t7 17l119 120l-119 120q-7 7 -7 17t7 17l34 34q7 8 17 8t17 -8z" />
-<glyph unicode="&#xe037;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6 l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238q-6 8 -4.5 18t9.5 17l29 22q7 5 15 5z" />
-<glyph unicode="&#xe038;" d="M967 1004h3q11 -1 17 -10q135 -179 135 -396q0 -105 -34 -206.5t-98 -185.5q-7 -9 -17 -10h-3q-9 0 -16 6l-42 34q-8 6 -9 16t5 18q111 150 111 328q0 90 -29.5 176t-84.5 157q-6 9 -5 19t10 16l42 33q7 5 15 5zM321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5 t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238 q-6 8 -4.5 18.5t9.5 16.5l29 22q7 5 15 5z" />
-<glyph unicode="&#xe039;" d="M500 900h100v-100h-100v-100h-400v-100h-100v600h500v-300zM1200 700h-200v-100h200v-200h-300v300h-200v300h-100v200h600v-500zM100 1100v-300h300v300h-300zM800 1100v-300h300v300h-300zM300 900h-100v100h100v-100zM1000 900h-100v100h100v-100zM300 500h200v-500 h-500v500h200v100h100v-100zM800 300h200v-100h-100v-100h-200v100h-100v100h100v200h-200v100h300v-300zM100 400v-300h300v300h-300zM300 200h-100v100h100v-100zM1200 200h-100v100h100v-100zM700 0h-100v100h100v-100zM1200 0h-300v100h300v-100z" />
-<glyph unicode="&#xe040;" d="M100 200h-100v1000h100v-1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 200h-200v1000h200v-1000zM400 0h-300v100h300v-100zM600 0h-100v91h100v-91zM800 0h-100v91h100v-91zM1100 0h-200v91h200v-91z" />
-<glyph unicode="&#xe041;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
-<glyph unicode="&#xe042;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM800 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-56 56l424 426l-700 700h150zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5 t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
-<glyph unicode="&#xe043;" d="M300 1200h825q75 0 75 -75v-900q0 -25 -18 -43l-64 -64q-8 -8 -13 -5.5t-5 12.5v950q0 10 -7.5 17.5t-17.5 7.5h-700q-25 0 -43 -18l-64 -64q-8 -8 -5.5 -13t12.5 -5h700q10 0 17.5 -7.5t7.5 -17.5v-950q0 -10 -7.5 -17.5t-17.5 -7.5h-850q-10 0 -17.5 7.5t-7.5 17.5v975 q0 25 18 43l139 139q18 18 43 18z" />
-<glyph unicode="&#xe044;" d="M250 1200h800q21 0 35.5 -14.5t14.5 -35.5v-1150l-450 444l-450 -445v1151q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe045;" d="M822 1200h-444q-11 0 -19 -7.5t-9 -17.5l-78 -301q-7 -24 7 -45l57 -108q6 -9 17.5 -15t21.5 -6h450q10 0 21.5 6t17.5 15l62 108q14 21 7 45l-83 301q-1 10 -9 17.5t-19 7.5zM1175 800h-150q-10 0 -21 -6.5t-15 -15.5l-78 -156q-4 -9 -15 -15.5t-21 -6.5h-550 q-10 0 -21 6.5t-15 15.5l-78 156q-4 9 -15 15.5t-21 6.5h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-650q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h750q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5 t7.5 17.5v650q0 10 -7.5 17.5t-17.5 7.5zM850 200h-500q-10 0 -19.5 -7t-11.5 -17l-38 -152q-2 -10 3.5 -17t15.5 -7h600q10 0 15.5 7t3.5 17l-38 152q-2 10 -11.5 17t-19.5 7z" />
-<glyph unicode="&#xe046;" d="M500 1100h200q56 0 102.5 -20.5t72.5 -50t44 -59t25 -50.5l6 -20h150q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h150q2 8 6.5 21.5t24 48t45 61t72 48t102.5 21.5zM900 800v-100 h100v100h-100zM600 730q-95 0 -162.5 -67.5t-67.5 -162.5t67.5 -162.5t162.5 -67.5t162.5 67.5t67.5 162.5t-67.5 162.5t-162.5 67.5zM600 603q43 0 73 -30t30 -73t-30 -73t-73 -30t-73 30t-30 73t30 73t73 30z" />
-<glyph unicode="&#xe047;" d="M681 1199l385 -998q20 -50 60 -92q18 -19 36.5 -29.5t27.5 -11.5l10 -2v-66h-417v66q53 0 75 43.5t5 88.5l-82 222h-391q-58 -145 -92 -234q-11 -34 -6.5 -57t25.5 -37t46 -20t55 -6v-66h-365v66q56 24 84 52q12 12 25 30.5t20 31.5l7 13l399 1006h93zM416 521h340 l-162 457z" />
-<glyph unicode="&#xe048;" d="M753 641q5 -1 14.5 -4.5t36 -15.5t50.5 -26.5t53.5 -40t50.5 -54.5t35.5 -70t14.5 -87q0 -67 -27.5 -125.5t-71.5 -97.5t-98.5 -66.5t-108.5 -40.5t-102 -13h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 24 -0.5 34t-3.5 24t-8.5 19.5t-17 13.5t-28 12.5t-42.5 11.5v71 l471 -1q57 0 115.5 -20.5t108 -57t80.5 -94t31 -124.5q0 -51 -15.5 -96.5t-38 -74.5t-45 -50.5t-38.5 -30.5zM400 700h139q78 0 130.5 48.5t52.5 122.5q0 41 -8.5 70.5t-29.5 55.5t-62.5 39.5t-103.5 13.5h-118v-350zM400 200h216q80 0 121 50.5t41 130.5q0 90 -62.5 154.5 t-156.5 64.5h-159v-400z" />
-<glyph unicode="&#xe049;" d="M877 1200l2 -57q-83 -19 -116 -45.5t-40 -66.5l-132 -839q-9 -49 13 -69t96 -26v-97h-500v97q186 16 200 98l173 832q3 17 3 30t-1.5 22.5t-9 17.5t-13.5 12.5t-21.5 10t-26 8.5t-33.5 10q-13 3 -19 5v57h425z" />
-<glyph unicode="&#xe050;" d="M1300 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM175 1000h-75v-800h75l-125 -167l-125 167h75v800h-75l125 167z" />
-<glyph unicode="&#xe051;" d="M1100 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-650q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v650h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM1167 50l-167 -125v75h-800v-75l-167 125l167 125v-75h800v75z" />
-<glyph unicode="&#xe052;" d="M50 1100h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe053;" d="M250 1100h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM250 500h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe054;" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000 q-21 0 -35.5 14.5t-14.5 35.5zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5z" />
-<glyph unicode="&#xe055;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe056;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 1100h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 800h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 500h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 500h800q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 200h800 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe057;" d="M400 0h-100v1100h100v-1100zM550 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM267 550l-167 -125v75h-200v100h200v75zM550 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe058;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM900 0h-100v1100h100v-1100zM50 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM1100 600h200v-100h-200v-75l-167 125l167 125v-75zM50 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe059;" d="M75 1000h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22zM1200 300l-300 300l300 300v-600z" />
-<glyph unicode="&#xe060;" d="M44 1100h1112q18 0 31 -13t13 -31v-1012q0 -18 -13 -31t-31 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13zM100 1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500h-1000zM342 884q56 0 95 -39t39 -94.5t-39 -95t-95 -39.5t-95 39.5t-39 95t39 94.5 t95 39z" />
-<glyph unicode="&#xe062;" d="M648 1169q117 0 216 -60t156.5 -161t57.5 -218q0 -115 -70 -258q-69 -109 -158 -225.5t-143 -179.5l-54 -62q-9 8 -25.5 24.5t-63.5 67.5t-91 103t-98.5 128t-95.5 148q-60 132 -60 249q0 88 34 169.5t91.5 142t137 96.5t166.5 36zM652.5 974q-91.5 0 -156.5 -65 t-65 -157t65 -156.5t156.5 -64.5t156.5 64.5t65 156.5t-65 157t-156.5 65z" />
-<glyph unicode="&#xe063;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 173v854q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57z" />
-<glyph unicode="&#xe064;" d="M554 1295q21 -72 57.5 -143.5t76 -130t83 -118t82.5 -117t70 -116t49.5 -126t18.5 -136.5q0 -71 -25.5 -135t-68.5 -111t-99 -82t-118.5 -54t-125.5 -23q-84 5 -161.5 34t-139.5 78.5t-99 125t-37 164.5q0 69 18 136.5t49.5 126.5t69.5 116.5t81.5 117.5t83.5 119 t76.5 131t58.5 143zM344 710q-23 -33 -43.5 -70.5t-40.5 -102.5t-17 -123q1 -37 14.5 -69.5t30 -52t41 -37t38.5 -24.5t33 -15q21 -7 32 -1t13 22l6 34q2 10 -2.5 22t-13.5 19q-5 4 -14 12t-29.5 40.5t-32.5 73.5q-26 89 6 271q2 11 -6 11q-8 1 -15 -10z" />
-<glyph unicode="&#xe065;" d="M1000 1013l108 115q2 1 5 2t13 2t20.5 -1t25 -9.5t28.5 -21.5q22 -22 27 -43t0 -32l-6 -10l-108 -115zM350 1100h400q50 0 105 -13l-187 -187h-368q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v182l200 200v-332 q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM1009 803l-362 -362l-161 -50l55 170l355 355z" />
-<glyph unicode="&#xe066;" d="M350 1100h361q-164 -146 -216 -200h-195q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-103q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M824 1073l339 -301q8 -7 8 -17.5t-8 -17.5l-340 -306q-7 -6 -12.5 -4t-6.5 11v203q-26 1 -54.5 0t-78.5 -7.5t-92 -17.5t-86 -35t-70 -57q10 59 33 108t51.5 81.5t65 58.5t68.5 40.5t67 24.5t56 13.5t40 4.5v210q1 10 6.5 12.5t13.5 -4.5z" />
-<glyph unicode="&#xe067;" d="M350 1100h350q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-219q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M643 639l395 395q7 7 17.5 7t17.5 -7l101 -101q7 -7 7 -17.5t-7 -17.5l-531 -532q-7 -7 -17.5 -7t-17.5 7l-248 248q-7 7 -7 17.5t7 17.5l101 101q7 7 17.5 7t17.5 -7l111 -111q8 -7 18 -7t18 7z" />
-<glyph unicode="&#xe068;" d="M318 918l264 264q8 8 18 8t18 -8l260 -264q7 -8 4.5 -13t-12.5 -5h-170v-200h200v173q0 10 5 12t13 -5l264 -260q8 -7 8 -17.5t-8 -17.5l-264 -265q-8 -7 -13 -5t-5 12v173h-200v-200h170q10 0 12.5 -5t-4.5 -13l-260 -264q-8 -8 -18 -8t-18 8l-264 264q-8 8 -5.5 13 t12.5 5h175v200h-200v-173q0 -10 -5 -12t-13 5l-264 265q-8 7 -8 17.5t8 17.5l264 260q8 7 13 5t5 -12v-173h200v200h-175q-10 0 -12.5 5t5.5 13z" />
-<glyph unicode="&#xe069;" d="M250 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe070;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5 t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe071;" d="M1200 1050v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-492 480q-15 14 -15 35t15 35l492 480q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25z" />
-<glyph unicode="&#xe072;" d="M243 1074l814 -498q18 -11 18 -26t-18 -26l-814 -498q-18 -11 -30.5 -4t-12.5 28v1000q0 21 12.5 28t30.5 -4z" />
-<glyph unicode="&#xe073;" d="M250 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM650 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800 q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe074;" d="M1100 950v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5z" />
-<glyph unicode="&#xe075;" d="M500 612v438q0 21 10.5 25t25.5 -10l492 -480q15 -14 15 -35t-15 -35l-492 -480q-15 -14 -25.5 -10t-10.5 25v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10z" />
-<glyph unicode="&#xe076;" d="M1048 1102l100 1q20 0 35 -14.5t15 -35.5l5 -1000q0 -21 -14.5 -35.5t-35.5 -14.5l-100 -1q-21 0 -35.5 14.5t-14.5 35.5l-2 437l-463 -454q-14 -15 -24.5 -10.5t-10.5 25.5l-2 437l-462 -455q-15 -14 -25.5 -9.5t-10.5 24.5l-5 1000q0 21 10.5 25.5t25.5 -10.5l466 -450 l-2 438q0 20 10.5 24.5t25.5 -9.5l466 -451l-2 438q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe077;" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10l464 -453v438q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe078;" d="M686 1081l501 -540q15 -15 10.5 -26t-26.5 -11h-1042q-22 0 -26.5 11t10.5 26l501 540q15 15 36 15t36 -15zM150 400h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe079;" d="M885 900l-352 -353l352 -353l-197 -198l-552 552l552 550z" />
-<glyph unicode="&#xe080;" d="M1064 547l-551 -551l-198 198l353 353l-353 353l198 198z" />
-<glyph unicode="&#xe081;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM650 900h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-150 q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5h150v-150q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v150h150q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-150v150q0 21 -14.5 35.5t-35.5 14.5z" />
-<glyph unicode="&#xe082;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM850 700h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5 t35.5 -14.5h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5z" />
-<glyph unicode="&#xe083;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM741.5 913q-12.5 0 -21.5 -9l-120 -120l-120 120q-9 9 -21.5 9 t-21.5 -9l-141 -141q-9 -9 -9 -21.5t9 -21.5l120 -120l-120 -120q-9 -9 -9 -21.5t9 -21.5l141 -141q9 -9 21.5 -9t21.5 9l120 120l120 -120q9 -9 21.5 -9t21.5 9l141 141q9 9 9 21.5t-9 21.5l-120 120l120 120q9 9 9 21.5t-9 21.5l-141 141q-9 9 -21.5 9z" />
-<glyph unicode="&#xe084;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM546 623l-84 85q-7 7 -17.5 7t-18.5 -7l-139 -139q-7 -8 -7 -18t7 -18 l242 -241q7 -8 17.5 -8t17.5 8l375 375q7 7 7 17.5t-7 18.5l-139 139q-7 7 -17.5 7t-17.5 -7z" />
-<glyph unicode="&#xe085;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM588 941q-29 0 -59 -5.5t-63 -20.5t-58 -38.5t-41.5 -63t-16.5 -89.5 q0 -25 20 -25h131q30 -5 35 11q6 20 20.5 28t45.5 8q20 0 31.5 -10.5t11.5 -28.5q0 -23 -7 -34t-26 -18q-1 0 -13.5 -4t-19.5 -7.5t-20 -10.5t-22 -17t-18.5 -24t-15.5 -35t-8 -46q-1 -8 5.5 -16.5t20.5 -8.5h173q7 0 22 8t35 28t37.5 48t29.5 74t12 100q0 47 -17 83 t-42.5 57t-59.5 34.5t-64 18t-59 4.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
-<glyph unicode="&#xe086;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM675 1000h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5 t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5zM675 700h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h75v-200h-75q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h350q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5 t-17.5 7.5h-75v275q0 10 -7.5 17.5t-17.5 7.5z" />
-<glyph unicode="&#xe087;" d="M525 1200h150q10 0 17.5 -7.5t7.5 -17.5v-194q103 -27 178.5 -102.5t102.5 -178.5h194q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-194q-27 -103 -102.5 -178.5t-178.5 -102.5v-194q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v194 q-103 27 -178.5 102.5t-102.5 178.5h-194q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h194q27 103 102.5 178.5t178.5 102.5v194q0 10 7.5 17.5t17.5 7.5zM700 893v-168q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v168q-68 -23 -119 -74 t-74 -119h168q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-168q23 -68 74 -119t119 -74v168q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-168q68 23 119 74t74 119h-168q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h168 q-23 68 -74 119t-119 74z" />
-<glyph unicode="&#xe088;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM759 823l64 -64q7 -7 7 -17.5t-7 -17.5l-124 -124l124 -124q7 -7 7 -17.5t-7 -17.5l-64 -64q-7 -7 -17.5 -7t-17.5 7l-124 124l-124 -124q-7 -7 -17.5 -7t-17.5 7l-64 64 q-7 7 -7 17.5t7 17.5l124 124l-124 124q-7 7 -7 17.5t7 17.5l64 64q7 7 17.5 7t17.5 -7l124 -124l124 124q7 7 17.5 7t17.5 -7z" />
-<glyph unicode="&#xe089;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM782 788l106 -106q7 -7 7 -17.5t-7 -17.5l-320 -321q-8 -7 -18 -7t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l197 197q7 7 17.5 7t17.5 -7z" />
-<glyph unicode="&#xe090;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5q0 -120 65 -225 l587 587q-105 65 -225 65zM965 819l-584 -584q104 -62 219 -62q116 0 214.5 57t155.5 155.5t57 214.5q0 115 -62 219z" />
-<glyph unicode="&#xe091;" d="M39 582l522 427q16 13 27.5 8t11.5 -26v-291h550q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-550v-291q0 -21 -11.5 -26t-27.5 8l-522 427q-16 13 -16 32t16 32z" />
-<glyph unicode="&#xe092;" d="M639 1009l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291h-550q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h550v291q0 21 11.5 26t27.5 -8z" />
-<glyph unicode="&#xe093;" d="M682 1161l427 -522q13 -16 8 -27.5t-26 -11.5h-291v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v550h-291q-21 0 -26 11.5t8 27.5l427 522q13 16 32 16t32 -16z" />
-<glyph unicode="&#xe094;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-550h291q21 0 26 -11.5t-8 -27.5l-427 -522q-13 -16 -32 -16t-32 16l-427 522q-13 16 -8 27.5t26 11.5h291v550q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe095;" d="M639 1109l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291q-94 -2 -182 -20t-170.5 -52t-147 -92.5t-100.5 -135.5q5 105 27 193.5t67.5 167t113 135t167 91.5t225.5 42v262q0 21 11.5 26t27.5 -8z" />
-<glyph unicode="&#xe096;" d="M850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5zM350 0h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249 q8 7 18 7t18 -7l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5z" />
-<glyph unicode="&#xe097;" d="M1014 1120l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249q8 7 18 7t18 -7zM250 600h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5z" />
-<glyph unicode="&#xe101;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM704 900h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5 t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
-<glyph unicode="&#xe102;" d="M260 1200q9 0 19 -2t15 -4l5 -2q22 -10 44 -23l196 -118q21 -13 36 -24q29 -21 37 -12q11 13 49 35l196 118q22 13 45 23q17 7 38 7q23 0 47 -16.5t37 -33.5l13 -16q14 -21 18 -45l25 -123l8 -44q1 -9 8.5 -14.5t17.5 -5.5h61q10 0 17.5 -7.5t7.5 -17.5v-50 q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 -7.5t-7.5 -17.5v-175h-400v300h-200v-300h-400v175q0 10 -7.5 17.5t-17.5 7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5h61q11 0 18 3t7 8q0 4 9 52l25 128q5 25 19 45q2 3 5 7t13.5 15t21.5 19.5t26.5 15.5 t29.5 7zM915 1079l-166 -162q-7 -7 -5 -12t12 -5h219q10 0 15 7t2 17l-51 149q-3 10 -11 12t-15 -6zM463 917l-177 157q-8 7 -16 5t-11 -12l-51 -143q-3 -10 2 -17t15 -7h231q11 0 12.5 5t-5.5 12zM500 0h-375q-10 0 -17.5 7.5t-7.5 17.5v375h400v-400zM1100 400v-375 q0 -10 -7.5 -17.5t-17.5 -7.5h-375v400h400z" />
-<glyph unicode="&#xe103;" d="M1165 1190q8 3 21 -6.5t13 -17.5q-2 -178 -24.5 -323.5t-55.5 -245.5t-87 -174.5t-102.5 -118.5t-118 -68.5t-118.5 -33t-120 -4.5t-105 9.5t-90 16.5q-61 12 -78 11q-4 1 -12.5 0t-34 -14.5t-52.5 -40.5l-153 -153q-26 -24 -37 -14.5t-11 43.5q0 64 42 102q8 8 50.5 45 t66.5 58q19 17 35 47t13 61q-9 55 -10 102.5t7 111t37 130t78 129.5q39 51 80 88t89.5 63.5t94.5 45t113.5 36t129 31t157.5 37t182 47.5zM1116 1098q-8 9 -22.5 -3t-45.5 -50q-38 -47 -119 -103.5t-142 -89.5l-62 -33q-56 -30 -102 -57t-104 -68t-102.5 -80.5t-85.5 -91 t-64 -104.5q-24 -56 -31 -86t2 -32t31.5 17.5t55.5 59.5q25 30 94 75.5t125.5 77.5t147.5 81q70 37 118.5 69t102 79.5t99 111t86.5 148.5q22 50 24 60t-6 19z" />
-<glyph unicode="&#xe104;" d="M653 1231q-39 -67 -54.5 -131t-10.5 -114.5t24.5 -96.5t47.5 -80t63.5 -62.5t68.5 -46.5t65 -30q-4 7 -17.5 35t-18.5 39.5t-17 39.5t-17 43t-13 42t-9.5 44.5t-2 42t4 43t13.5 39t23 38.5q96 -42 165 -107.5t105 -138t52 -156t13 -159t-19 -149.5q-13 -55 -44 -106.5 t-68 -87t-78.5 -64.5t-72.5 -45t-53 -22q-72 -22 -127 -11q-31 6 -13 19q6 3 17 7q13 5 32.5 21t41 44t38.5 63.5t21.5 81.5t-6.5 94.5t-50 107t-104 115.5q10 -104 -0.5 -189t-37 -140.5t-65 -93t-84 -52t-93.5 -11t-95 24.5q-80 36 -131.5 114t-53.5 171q-2 23 0 49.5 t4.5 52.5t13.5 56t27.5 60t46 64.5t69.5 68.5q-8 -53 -5 -102.5t17.5 -90t34 -68.5t44.5 -39t49 -2q31 13 38.5 36t-4.5 55t-29 64.5t-36 75t-26 75.5q-15 85 2 161.5t53.5 128.5t85.5 92.5t93.5 61t81.5 25.5z" />
-<glyph unicode="&#xe105;" d="M600 1094q82 0 160.5 -22.5t140 -59t116.5 -82.5t94.5 -95t68 -95t42.5 -82.5t14 -57.5t-14 -57.5t-43 -82.5t-68.5 -95t-94.5 -95t-116.5 -82.5t-140 -59t-159.5 -22.5t-159.5 22.5t-140 59t-116.5 82.5t-94.5 95t-68.5 95t-43 82.5t-14 57.5t14 57.5t42.5 82.5t68 95 t94.5 95t116.5 82.5t140 59t160.5 22.5zM888 829q-15 15 -18 12t5 -22q25 -57 25 -119q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 59 23 114q8 19 4.5 22t-17.5 -12q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q22 -36 47 -71t70 -82t92.5 -81t113 -58.5t133.5 -24.5 t133.5 24t113 58.5t92.5 81.5t70 81.5t47 70.5q11 18 9 42.5t-14 41.5q-90 117 -163 189zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l35 34q14 15 12.5 33.5t-16.5 33.5q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
-<glyph unicode="&#xe106;" d="M592 0h-148l31 120q-91 20 -175.5 68.5t-143.5 106.5t-103.5 119t-66.5 110t-22 76q0 21 14 57.5t42.5 82.5t68 95t94.5 95t116.5 82.5t140 59t160.5 22.5q61 0 126 -15l32 121h148zM944 770l47 181q108 -85 176.5 -192t68.5 -159q0 -26 -19.5 -71t-59.5 -102t-93 -112 t-129 -104.5t-158 -75.5l46 173q77 49 136 117t97 131q11 18 9 42.5t-14 41.5q-54 70 -107 130zM310 824q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q18 -30 39 -60t57 -70.5t74 -73t90 -61t105 -41.5l41 154q-107 18 -178.5 101.5t-71.5 193.5q0 59 23 114q8 19 4.5 22 t-17.5 -12zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l12 11l22 86l-3 4q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
-<glyph unicode="&#xe107;" d="M-90 100l642 1066q20 31 48 28.5t48 -35.5l642 -1056q21 -32 7.5 -67.5t-50.5 -35.5h-1294q-37 0 -50.5 34t7.5 66zM155 200h345v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h345l-445 723zM496 700h208q20 0 32 -14.5t8 -34.5l-58 -252 q-4 -20 -21.5 -34.5t-37.5 -14.5h-54q-20 0 -37.5 14.5t-21.5 34.5l-58 252q-4 20 8 34.5t32 14.5z" />
-<glyph unicode="&#xe108;" d="M650 1200q62 0 106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -93 100 -113v-64q0 -21 -13 -29t-32 1l-205 128l-205 -128q-19 -9 -32 -1t-13 29v64q0 20 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41 q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44z" />
-<glyph unicode="&#xe109;" d="M850 1200h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-150h-1100v150q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-50h500v50q0 21 14.5 35.5t35.5 14.5zM1100 800v-750q0 -21 -14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v750h1100zM100 600v-100h100v100h-100zM300 600v-100h100v100h-100zM500 600v-100h100v100h-100zM700 600v-100h100v100h-100zM900 600v-100h100v100h-100zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400 v-100h100v100h-100zM700 400v-100h100v100h-100zM900 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100zM500 200v-100h100v100h-100zM700 200v-100h100v100h-100zM900 200v-100h100v100h-100z" />
-<glyph unicode="&#xe110;" d="M1135 1165l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-159l-600 -600h-291q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h209l600 600h241v150q0 21 10.5 25t24.5 -10zM522 819l-141 -141l-122 122h-209q-21 0 -35.5 14.5 t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h291zM1135 565l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-241l-181 181l141 141l122 -122h159v150q0 21 10.5 25t24.5 -10z" />
-<glyph unicode="&#xe111;" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" />
-<glyph unicode="&#xe112;" d="M150 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM850 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM1100 800v-300q0 -41 -3 -77.5t-15 -89.5t-32 -96t-58 -89t-89 -77t-129 -51t-174 -20t-174 20 t-129 51t-89 77t-58 89t-32 96t-15 89.5t-3 77.5v300h300v-250v-27v-42.5t1.5 -41t5 -38t10 -35t16.5 -30t25.5 -24.5t35 -19t46.5 -12t60 -4t60 4.5t46.5 12.5t35 19.5t25 25.5t17 30.5t10 35t5 38t2 40.5t-0.5 42v25v250h300z" />
-<glyph unicode="&#xe113;" d="M1100 411l-198 -199l-353 353l-353 -353l-197 199l551 551z" />
-<glyph unicode="&#xe114;" d="M1101 789l-550 -551l-551 551l198 199l353 -353l353 353z" />
-<glyph unicode="&#xe115;" d="M404 1000h746q21 0 35.5 -14.5t14.5 -35.5v-551h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v401h-381zM135 984l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-400h385l215 -200h-750q-21 0 -35.5 14.5 t-14.5 35.5v550h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
-<glyph unicode="&#xe116;" d="M56 1200h94q17 0 31 -11t18 -27l38 -162h896q24 0 39 -18.5t10 -42.5l-100 -475q-5 -21 -27 -42.5t-55 -21.5h-633l48 -200h535q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-50q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-300v-50 q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-31q-18 0 -32.5 10t-20.5 19l-5 10l-201 961h-54q-20 0 -35 14.5t-15 35.5t15 35.5t35 14.5z" />
-<glyph unicode="&#xe117;" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" />
-<glyph unicode="&#xe118;" d="M200 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q42 0 71 -29.5t29 -70.5h500v-200h-1000zM1500 700l-300 -700h-1200l300 700h1200z" />
-<glyph unicode="&#xe119;" d="M635 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-601h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v601h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
-<glyph unicode="&#xe120;" d="M936 864l249 -229q14 -15 14 -35.5t-14 -35.5l-249 -229q-15 -15 -25.5 -10.5t-10.5 24.5v151h-600v-151q0 -20 -10.5 -24.5t-25.5 10.5l-249 229q-14 15 -14 35.5t14 35.5l249 229q15 15 25.5 10.5t10.5 -25.5v-149h600v149q0 21 10.5 25.5t25.5 -10.5z" />
-<glyph unicode="&#xe121;" d="M1169 400l-172 732q-5 23 -23 45.5t-38 22.5h-672q-20 0 -38 -20t-23 -41l-172 -739h1138zM1100 300h-1000q-41 0 -70.5 -29.5t-29.5 -70.5v-100q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v100q0 41 -29.5 70.5t-70.5 29.5zM800 100v100h100v-100h-100 zM1000 100v100h100v-100h-100z" />
-<glyph unicode="&#xe122;" d="M1150 1100q21 0 35.5 -14.5t14.5 -35.5v-850q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v850q0 21 14.5 35.5t35.5 14.5zM1000 200l-675 200h-38l47 -276q3 -16 -5.5 -20t-29.5 -4h-7h-84q-20 0 -34.5 14t-18.5 35q-55 337 -55 351v250v6q0 16 1 23.5t6.5 14 t17.5 6.5h200l675 250v-850zM0 750v-250q-4 0 -11 0.5t-24 6t-30 15t-24 30t-11 48.5v50q0 26 10.5 46t25 30t29 16t25.5 7z" />
-<glyph unicode="&#xe123;" d="M553 1200h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q19 0 33 -14.5t14 -35t-13 -40.5t-31 -27q-8 -4 -23 -9.5t-65 -19.5t-103 -25t-132.5 -20t-158.5 -9q-57 0 -115 5t-104 12t-88.5 15.5t-73.5 17.5t-54.5 16t-35.5 12l-11 4 q-18 8 -31 28t-13 40.5t14 35t33 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3.5 32t28.5 13zM498 110q50 -6 102 -6q53 0 102 6q-12 -49 -39.5 -79.5t-62.5 -30.5t-63 30.5t-39 79.5z" />
-<glyph unicode="&#xe124;" d="M800 946l224 78l-78 -224l234 -45l-180 -155l180 -155l-234 -45l78 -224l-224 78l-45 -234l-155 180l-155 -180l-45 234l-224 -78l78 224l-234 45l180 155l-180 155l234 45l-78 224l224 -78l45 234l155 -180l155 180z" />
-<glyph unicode="&#xe125;" d="M650 1200h50q40 0 70 -40.5t30 -84.5v-150l-28 -125h328q40 0 70 -40.5t30 -84.5v-100q0 -45 -29 -74l-238 -344q-16 -24 -38 -40.5t-45 -16.5h-250q-7 0 -42 25t-66 50l-31 25h-61q-45 0 -72.5 18t-27.5 57v400q0 36 20 63l145 196l96 198q13 28 37.5 48t51.5 20z M650 1100l-100 -212l-150 -213v-375h100l136 -100h214l250 375v125h-450l50 225v175h-50zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe126;" d="M600 1100h250q23 0 45 -16.5t38 -40.5l238 -344q29 -29 29 -74v-100q0 -44 -30 -84.5t-70 -40.5h-328q28 -118 28 -125v-150q0 -44 -30 -84.5t-70 -40.5h-50q-27 0 -51.5 20t-37.5 48l-96 198l-145 196q-20 27 -20 63v400q0 39 27.5 57t72.5 18h61q124 100 139 100z M50 1000h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM636 1000l-136 -100h-100v-375l150 -213l100 -212h50v175l-50 225h450v125l-250 375h-214z" />
-<glyph unicode="&#xe127;" d="M356 873l363 230q31 16 53 -6l110 -112q13 -13 13.5 -32t-11.5 -34l-84 -121h302q84 0 138 -38t54 -110t-55 -111t-139 -39h-106l-131 -339q-6 -21 -19.5 -41t-28.5 -20h-342q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM400 792v-503l100 -89h293l131 339 q6 21 19.5 41t28.5 20h203q21 0 30.5 25t0.5 50t-31 25h-456h-7h-6h-5.5t-6 0.5t-5 1.5t-5 2t-4 2.5t-4 4t-2.5 4.5q-12 25 5 47l146 183l-86 83zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500 q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe128;" d="M475 1103l366 -230q2 -1 6 -3.5t14 -10.5t18 -16.5t14.5 -20t6.5 -22.5v-525q0 -13 -86 -94t-93 -81h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-85 0 -139.5 39t-54.5 111t54 110t138 38h302l-85 121q-11 15 -10.5 34t13.5 32l110 112q22 22 53 6zM370 945l146 -183 q17 -22 5 -47q-2 -2 -3.5 -4.5t-4 -4t-4 -2.5t-5 -2t-5 -1.5t-6 -0.5h-6h-6.5h-6h-475v-100h221q15 0 29 -20t20 -41l130 -339h294l106 89v503l-342 236zM1050 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5 v500q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe129;" d="M550 1294q72 0 111 -55t39 -139v-106l339 -131q21 -6 41 -19.5t20 -28.5v-342q0 -7 -81 -90t-94 -83h-525q-17 0 -35.5 14t-28.5 28l-9 14l-230 363q-16 31 6 53l112 110q13 13 32 13.5t34 -11.5l121 -84v302q0 84 38 138t110 54zM600 972v203q0 21 -25 30.5t-50 0.5 t-25 -31v-456v-7v-6v-5.5t-0.5 -6t-1.5 -5t-2 -5t-2.5 -4t-4 -4t-4.5 -2.5q-25 -12 -47 5l-183 146l-83 -86l236 -339h503l89 100v293l-339 131q-21 6 -41 19.5t-20 28.5zM450 200h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe130;" d="M350 1100h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5zM600 306v-106q0 -84 -39 -139t-111 -55t-110 54t-38 138v302l-121 -84q-15 -12 -34 -11.5t-32 13.5l-112 110 q-22 22 -6 53l230 363q1 2 3.5 6t10.5 13.5t16.5 17t20 13.5t22.5 6h525q13 0 94 -83t81 -90v-342q0 -15 -20 -28.5t-41 -19.5zM308 900l-236 -339l83 -86l183 146q22 17 47 5q2 -1 4.5 -2.5t4 -4t2.5 -4t2 -5t1.5 -5t0.5 -6v-5.5v-6v-7v-456q0 -22 25 -31t50 0.5t25 30.5 v203q0 15 20 28.5t41 19.5l339 131v293l-89 100h-503z" />
-<glyph unicode="&#xe131;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM914 632l-275 223q-16 13 -27.5 8t-11.5 -26v-137h-275 q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h275v-137q0 -21 11.5 -26t27.5 8l275 223q16 13 16 32t-16 32z" />
-<glyph unicode="&#xe132;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM561 855l-275 -223q-16 -13 -16 -32t16 -32l275 -223q16 -13 27.5 -8 t11.5 26v137h275q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5h-275v137q0 21 -11.5 26t-27.5 -8z" />
-<glyph unicode="&#xe133;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM855 639l-223 275q-13 16 -32 16t-32 -16l-223 -275q-13 -16 -8 -27.5 t26 -11.5h137v-275q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v275h137q21 0 26 11.5t-8 27.5z" />
-<glyph unicode="&#xe134;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM675 900h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-275h-137q-21 0 -26 -11.5 t8 -27.5l223 -275q13 -16 32 -16t32 16l223 275q13 16 8 27.5t-26 11.5h-137v275q0 10 -7.5 17.5t-17.5 7.5z" />
-<glyph unicode="&#xe135;" d="M600 1176q116 0 222.5 -46t184 -123.5t123.5 -184t46 -222.5t-46 -222.5t-123.5 -184t-184 -123.5t-222.5 -46t-222.5 46t-184 123.5t-123.5 184t-46 222.5t46 222.5t123.5 184t184 123.5t222.5 46zM627 1101q-15 -12 -36.5 -20.5t-35.5 -12t-43 -8t-39 -6.5 q-15 -3 -45.5 0t-45.5 -2q-20 -7 -51.5 -26.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79q-9 -34 5 -93t8 -87q0 -9 17 -44.5t16 -59.5q12 0 23 -5t23.5 -15t19.5 -14q16 -8 33 -15t40.5 -15t34.5 -12q21 -9 52.5 -32t60 -38t57.5 -11 q7 -15 -3 -34t-22.5 -40t-9.5 -38q13 -21 23 -34.5t27.5 -27.5t36.5 -18q0 -7 -3.5 -16t-3.5 -14t5 -17q104 -2 221 112q30 29 46.5 47t34.5 49t21 63q-13 8 -37 8.5t-36 7.5q-15 7 -49.5 15t-51.5 19q-18 0 -41 -0.5t-43 -1.5t-42 -6.5t-38 -16.5q-51 -35 -66 -12 q-4 1 -3.5 25.5t0.5 25.5q-6 13 -26.5 17.5t-24.5 6.5q1 15 -0.5 30.5t-7 28t-18.5 11.5t-31 -21q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q7 -12 18 -24t21.5 -20.5t20 -15t15.5 -10.5l5 -3q2 12 7.5 30.5t8 34.5t-0.5 32q-3 18 3.5 29 t18 22.5t15.5 24.5q6 14 10.5 35t8 31t15.5 22.5t34 22.5q-6 18 10 36q8 0 24 -1.5t24.5 -1.5t20 4.5t20.5 15.5q-10 23 -31 42.5t-37.5 29.5t-49 27t-43.5 23q0 1 2 8t3 11.5t1.5 10.5t-1 9.5t-4.5 4.5q31 -13 58.5 -14.5t38.5 2.5l12 5q5 28 -9.5 46t-36.5 24t-50 15 t-41 20q-18 -4 -37 0zM613 994q0 -17 8 -42t17 -45t9 -23q-8 1 -39.5 5.5t-52.5 10t-37 16.5q3 11 16 29.5t16 25.5q10 -10 19 -10t14 6t13.5 14.5t16.5 12.5z" />
-<glyph unicode="&#xe136;" d="M756 1157q164 92 306 -9l-259 -138l145 -232l251 126q6 -89 -34 -156.5t-117 -110.5q-60 -34 -127 -39.5t-126 16.5l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-34 101 5.5 201.5t135.5 154.5z" />
-<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " />
-<glyph unicode="&#xe138;" d="M150 1200h900q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM700 500v-300l-200 -200v500l-350 500h900z" />
-<glyph unicode="&#xe139;" d="M500 1200h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5zM500 1100v-100h200v100h-200zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" />
-<glyph unicode="&#xe140;" d="M50 1200h300q21 0 25 -10.5t-10 -24.5l-94 -94l199 -199q7 -8 7 -18t-7 -18l-106 -106q-8 -7 -18 -7t-18 7l-199 199l-94 -94q-14 -14 -24.5 -10t-10.5 25v300q0 21 14.5 35.5t35.5 14.5zM850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-199 -199q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l199 199l-94 94q-14 14 -10 24.5t25 10.5zM364 470l106 -106q7 -8 7 -18t-7 -18l-199 -199l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l199 199 q8 7 18 7t18 -7zM1071 271l94 94q14 14 24.5 10t10.5 -25v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -25 10.5t10 24.5l94 94l-199 199q-7 8 -7 18t7 18l106 106q8 7 18 7t18 -7z" />
-<glyph unicode="&#xe141;" d="M596 1192q121 0 231.5 -47.5t190 -127t127 -190t47.5 -231.5t-47.5 -231.5t-127 -190.5t-190 -127t-231.5 -47t-231.5 47t-190.5 127t-127 190.5t-47 231.5t47 231.5t127 190t190.5 127t231.5 47.5zM596 1010q-112 0 -207.5 -55.5t-151 -151t-55.5 -207.5t55.5 -207.5 t151 -151t207.5 -55.5t207.5 55.5t151 151t55.5 207.5t-55.5 207.5t-151 151t-207.5 55.5zM454.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38.5 -16.5t-38.5 16.5t-16 39t16 38.5t38.5 16zM754.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38 -16.5q-14 0 -29 10l-55 -145 q17 -23 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 23 16 39t38.5 16zM345.5 709q22.5 0 38.5 -16t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16zM854.5 709q22.5 0 38.5 -16 t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16z" />
-<glyph unicode="&#xe142;" d="M546 173l469 470q91 91 99 192q7 98 -52 175.5t-154 94.5q-22 4 -47 4q-34 0 -66.5 -10t-56.5 -23t-55.5 -38t-48 -41.5t-48.5 -47.5q-376 -375 -391 -390q-30 -27 -45 -41.5t-37.5 -41t-32 -46.5t-16 -47.5t-1.5 -56.5q9 -62 53.5 -95t99.5 -33q74 0 125 51l548 548 q36 36 20 75q-7 16 -21.5 26t-32.5 10q-26 0 -50 -23q-13 -12 -39 -38l-341 -338q-15 -15 -35.5 -15.5t-34.5 13.5t-14 34.5t14 34.5q327 333 361 367q35 35 67.5 51.5t78.5 16.5q14 0 29 -1q44 -8 74.5 -35.5t43.5 -68.5q14 -47 2 -96.5t-47 -84.5q-12 -11 -32 -32 t-79.5 -81t-114.5 -115t-124.5 -123.5t-123 -119.5t-96.5 -89t-57 -45q-56 -27 -120 -27q-70 0 -129 32t-93 89q-48 78 -35 173t81 163l511 511q71 72 111 96q91 55 198 55q80 0 152 -33q78 -36 129.5 -103t66.5 -154q17 -93 -11 -183.5t-94 -156.5l-482 -476 q-15 -15 -36 -16t-37 14t-17.5 34t14.5 35z" />
-<glyph unicode="&#xe143;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104zM896 972q-33 0 -64.5 -19t-56.5 -46t-47.5 -53.5t-43.5 -45.5t-37.5 -19t-36 19t-40 45.5t-43 53.5t-54 46t-65.5 19q-67 0 -122.5 -55.5t-55.5 -132.5q0 -23 13.5 -51t46 -65t57.5 -63t76 -75l22 -22q15 -14 44 -44t50.5 -51t46 -44t41 -35t23 -12 t23.5 12t42.5 36t46 44t52.5 52t44 43q4 4 12 13q43 41 63.5 62t52 55t46 55t26 46t11.5 44q0 79 -53 133.5t-120 54.5z" />
-<glyph unicode="&#xe144;" d="M776.5 1214q93.5 0 159.5 -66l141 -141q66 -66 66 -160q0 -42 -28 -95.5t-62 -87.5l-29 -29q-31 53 -77 99l-18 18l95 95l-247 248l-389 -389l212 -212l-105 -106l-19 18l-141 141q-66 66 -66 159t66 159l283 283q65 66 158.5 66zM600 706l105 105q10 -8 19 -17l141 -141 q66 -66 66 -159t-66 -159l-283 -283q-66 -66 -159 -66t-159 66l-141 141q-66 66 -66 159.5t66 159.5l55 55q29 -55 75 -102l18 -17l-95 -95l247 -248l389 389z" />
-<glyph unicode="&#xe145;" d="M603 1200q85 0 162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5v953q0 21 30 46.5t81 48t129 37.5t163 15zM300 1000v-700h600v700h-600zM600 254q-43 0 -73.5 -30.5t-30.5 -73.5t30.5 -73.5t73.5 -30.5t73.5 30.5 t30.5 73.5t-30.5 73.5t-73.5 30.5z" />
-<glyph unicode="&#xe146;" d="M902 1185l283 -282q15 -15 15 -36t-14.5 -35.5t-35.5 -14.5t-35 15l-36 35l-279 -267v-300l-212 210l-308 -307l-280 -203l203 280l307 308l-210 212h300l267 279l-35 36q-15 14 -15 35t14.5 35.5t35.5 14.5t35 -15z" />
-<glyph unicode="&#xe148;" d="M700 1248v-78q38 -5 72.5 -14.5t75.5 -31.5t71 -53.5t52 -84t24 -118.5h-159q-4 36 -10.5 59t-21 45t-40 35.5t-64.5 20.5v-307l64 -13q34 -7 64 -16.5t70 -32t67.5 -52.5t47.5 -80t20 -112q0 -139 -89 -224t-244 -97v-77h-100v79q-150 16 -237 103q-40 40 -52.5 93.5 t-15.5 139.5h139q5 -77 48.5 -126t117.5 -65v335l-27 8q-46 14 -79 26.5t-72 36t-63 52t-40 72.5t-16 98q0 70 25 126t67.5 92t94.5 57t110 27v77h100zM600 754v274q-29 -4 -50 -11t-42 -21.5t-31.5 -41.5t-10.5 -65q0 -29 7 -50.5t16.5 -34t28.5 -22.5t31.5 -14t37.5 -10 q9 -3 13 -4zM700 547v-310q22 2 42.5 6.5t45 15.5t41.5 27t29 42t12 59.5t-12.5 59.5t-38 44.5t-53 31t-66.5 24.5z" />
-<glyph unicode="&#xe149;" d="M561 1197q84 0 160.5 -40t123.5 -109.5t47 -147.5h-153q0 40 -19.5 71.5t-49.5 48.5t-59.5 26t-55.5 9q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -26 13.5 -63t26.5 -61t37 -66q6 -9 9 -14h241v-100h-197q8 -50 -2.5 -115t-31.5 -95q-45 -62 -99 -112 q34 10 83 17.5t71 7.5q32 1 102 -16t104 -17q83 0 136 30l50 -147q-31 -19 -58 -30.5t-55 -15.5t-42 -4.5t-46 -0.5q-23 0 -76 17t-111 32.5t-96 11.5q-39 -3 -82 -16t-67 -25l-23 -11l-55 145q4 3 16 11t15.5 10.5t13 9t15.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221v100h166q-23 47 -44 104q-7 20 -12 41.5t-6 55.5t6 66.5t29.5 70.5t58.5 71q97 88 263 88z" />
-<glyph unicode="&#xe150;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM935 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-900h-200v900h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
-<glyph unicode="&#xe151;" d="M1000 700h-100v100h-100v-100h-100v500h300v-500zM400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM801 1100v-200h100v200h-100zM1000 350l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150z " />
-<glyph unicode="&#xe152;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 1050l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150zM1000 0h-100v100h-100v-100h-100v500h300v-500zM801 400v-200h100v200h-100z " />
-<glyph unicode="&#xe153;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 700h-100v400h-100v100h200v-500zM1100 0h-100v100h-200v400h300v-500zM901 400v-200h100v200h-100z" />
-<glyph unicode="&#xe154;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1100 700h-100v100h-200v400h300v-500zM901 1100v-200h100v200h-100zM1000 0h-100v400h-100v100h200v-500z" />
-<glyph unicode="&#xe155;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" />
-<glyph unicode="&#xe156;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" />
-<glyph unicode="&#xe157;" d="M350 1100h400q162 0 256 -93.5t94 -256.5v-400q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5z" />
-<glyph unicode="&#xe158;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-163 0 -256.5 92.5t-93.5 257.5v400q0 163 94 256.5t256 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM440 770l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
-<glyph unicode="&#xe159;" d="M350 1100h400q163 0 256.5 -94t93.5 -256v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 163 92.5 256.5t257.5 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM350 700h400q21 0 26.5 -12t-6.5 -28l-190 -253q-12 -17 -30 -17t-30 17l-190 253q-12 16 -6.5 28t26.5 12z" />
-<glyph unicode="&#xe160;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -163 -92.5 -256.5t-257.5 -93.5h-400q-163 0 -256.5 94t-93.5 256v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM580 693l190 -253q12 -16 6.5 -28t-26.5 -12h-400q-21 0 -26.5 12t6.5 28l190 253q12 17 30 17t30 -17z" />
-<glyph unicode="&#xe161;" d="M550 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h450q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-450q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM338 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
-<glyph unicode="&#xe162;" d="M793 1182l9 -9q8 -10 5 -27q-3 -11 -79 -225.5t-78 -221.5l300 1q24 0 32.5 -17.5t-5.5 -35.5q-1 0 -133.5 -155t-267 -312.5t-138.5 -162.5q-12 -15 -26 -15h-9l-9 8q-9 11 -4 32q2 9 42 123.5t79 224.5l39 110h-302q-23 0 -31 19q-10 21 6 41q75 86 209.5 237.5 t228 257t98.5 111.5q9 16 25 16h9z" />
-<glyph unicode="&#xe163;" d="M350 1100h400q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-450q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h450q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400 q0 165 92.5 257.5t257.5 92.5zM938 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
-<glyph unicode="&#xe164;" d="M750 1200h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -10.5 -25t-24.5 10l-109 109l-312 -312q-15 -15 -35.5 -15t-35.5 15l-141 141q-15 15 -15 35.5t15 35.5l312 312l-109 109q-14 14 -10 24.5t25 10.5zM456 900h-156q-41 0 -70.5 -29.5t-29.5 -70.5v-500 q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v148l200 200v-298q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5h300z" />
-<glyph unicode="&#xe165;" d="M600 1186q119 0 227.5 -46.5t187 -125t125 -187t46.5 -227.5t-46.5 -227.5t-125 -187t-187 -125t-227.5 -46.5t-227.5 46.5t-187 125t-125 187t-46.5 227.5t46.5 227.5t125 187t187 125t227.5 46.5zM600 1022q-115 0 -212 -56.5t-153.5 -153.5t-56.5 -212t56.5 -212 t153.5 -153.5t212 -56.5t212 56.5t153.5 153.5t56.5 212t-56.5 212t-153.5 153.5t-212 56.5zM600 794q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" />
-<glyph unicode="&#xe166;" d="M450 1200h200q21 0 35.5 -14.5t14.5 -35.5v-350h245q20 0 25 -11t-9 -26l-383 -426q-14 -15 -33.5 -15t-32.5 15l-379 426q-13 15 -8.5 26t25.5 11h250v350q0 21 14.5 35.5t35.5 14.5zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
-<glyph unicode="&#xe167;" d="M583 1182l378 -435q14 -15 9 -31t-26 -16h-244v-250q0 -20 -17 -35t-39 -15h-200q-20 0 -32 14.5t-12 35.5v250h-250q-20 0 -25.5 16.5t8.5 31.5l383 431q14 16 33.5 17t33.5 -14zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
-<glyph unicode="&#xe168;" d="M396 723l369 369q7 7 17.5 7t17.5 -7l139 -139q7 -8 7 -18.5t-7 -17.5l-525 -525q-7 -8 -17.5 -8t-17.5 8l-292 291q-7 8 -7 18t7 18l139 139q8 7 18.5 7t17.5 -7zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50 h-100z" />
-<glyph unicode="&#xe169;" d="M135 1023l142 142q14 14 35 14t35 -14l77 -77l-212 -212l-77 76q-14 15 -14 36t14 35zM655 855l210 210q14 14 24.5 10t10.5 -25l-2 -599q-1 -20 -15.5 -35t-35.5 -15l-597 -1q-21 0 -25 10.5t10 24.5l208 208l-154 155l212 212zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5 v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
-<glyph unicode="&#xe170;" d="M350 1200l599 -2q20 -1 35 -15.5t15 -35.5l1 -597q0 -21 -10.5 -25t-24.5 10l-208 208l-155 -154l-212 212l155 154l-210 210q-14 14 -10 24.5t25 10.5zM524 512l-76 -77q-15 -14 -36 -14t-35 14l-142 142q-14 14 -14 35t14 35l77 77zM50 300h1000q21 0 35.5 -14.5 t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
-<glyph unicode="&#xe171;" d="M1200 103l-483 276l-314 -399v423h-399l1196 796v-1096zM483 424v-230l683 953z" />
-<glyph unicode="&#xe172;" d="M1100 1000v-850q0 -21 -14.5 -35.5t-35.5 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200z" />
-<glyph unicode="&#xe173;" d="M1100 1000l-2 -149l-299 -299l-95 95q-9 9 -21.5 9t-21.5 -9l-149 -147h-312v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1132 638l106 -106q7 -7 7 -17.5t-7 -17.5l-420 -421q-8 -7 -18 -7 t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l297 297q7 7 17.5 7t17.5 -7z" />
-<glyph unicode="&#xe174;" d="M1100 1000v-269l-103 -103l-134 134q-15 15 -33.5 16.5t-34.5 -12.5l-266 -266h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1202 572l70 -70q15 -15 15 -35.5t-15 -35.5l-131 -131 l131 -131q15 -15 15 -35.5t-15 -35.5l-70 -70q-15 -15 -35.5 -15t-35.5 15l-131 131l-131 -131q-15 -15 -35.5 -15t-35.5 15l-70 70q-15 15 -15 35.5t15 35.5l131 131l-131 131q-15 15 -15 35.5t15 35.5l70 70q15 15 35.5 15t35.5 -15l131 -131l131 131q15 15 35.5 15 t35.5 -15z" />
-<glyph unicode="&#xe175;" d="M1100 1000v-300h-350q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM850 600h100q21 0 35.5 -14.5t14.5 -35.5v-250h150q21 0 25 -10.5t-10 -24.5 l-230 -230q-14 -14 -35 -14t-35 14l-230 230q-14 14 -10 24.5t25 10.5h150v250q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe176;" d="M1100 1000v-400l-165 165q-14 15 -35 15t-35 -15l-263 -265h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM935 565l230 -229q14 -15 10 -25.5t-25 -10.5h-150v-250q0 -20 -14.5 -35 t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35v250h-150q-21 0 -25 10.5t10 25.5l230 229q14 15 35 15t35 -15z" />
-<glyph unicode="&#xe177;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-150h-1200v150q0 21 14.5 35.5t35.5 14.5zM1200 800v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v550h1200zM100 500v-200h400v200h-400z" />
-<glyph unicode="&#xe178;" d="M935 1165l248 -230q14 -14 14 -35t-14 -35l-248 -230q-14 -14 -24.5 -10t-10.5 25v150h-400v200h400v150q0 21 10.5 25t24.5 -10zM200 800h-50q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v-200zM400 800h-100v200h100v-200zM18 435l247 230 q14 14 24.5 10t10.5 -25v-150h400v-200h-400v-150q0 -21 -10.5 -25t-24.5 10l-247 230q-15 14 -15 35t15 35zM900 300h-100v200h100v-200zM1000 500h51q20 0 34.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-34.5 -14.5h-51v200z" />
-<glyph unicode="&#xe179;" d="M862 1073l276 116q25 18 43.5 8t18.5 -41v-1106q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v397q-4 1 -11 5t-24 17.5t-30 29t-24 42t-11 56.5v359q0 31 18.5 65t43.5 52zM550 1200q22 0 34.5 -12.5t14.5 -24.5l1 -13v-450q0 -28 -10.5 -59.5 t-25 -56t-29 -45t-25.5 -31.5l-10 -11v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447q-4 4 -11 11.5t-24 30.5t-30 46t-24 55t-11 60v450q0 2 0.5 5.5t4 12t8.5 15t14.5 12t22.5 5.5q20 0 32.5 -12.5t14.5 -24.5l3 -13v-350h100v350v5.5t2.5 12 t7 15t15 12t25.5 5.5q23 0 35.5 -12.5t13.5 -24.5l1 -13v-350h100v350q0 2 0.5 5.5t3 12t7 15t15 12t24.5 5.5z" />
-<glyph unicode="&#xe180;" d="M1200 1100v-56q-4 0 -11 -0.5t-24 -3t-30 -7.5t-24 -15t-11 -24v-888q0 -22 25 -34.5t50 -13.5l25 -2v-56h-400v56q75 0 87.5 6.5t12.5 43.5v394h-500v-394q0 -37 12.5 -43.5t87.5 -6.5v-56h-400v56q4 0 11 0.5t24 3t30 7.5t24 15t11 24v888q0 22 -25 34.5t-50 13.5 l-25 2v56h400v-56q-75 0 -87.5 -6.5t-12.5 -43.5v-394h500v394q0 37 -12.5 43.5t-87.5 6.5v56h400z" />
-<glyph unicode="&#xe181;" d="M675 1000h375q21 0 35.5 -14.5t14.5 -35.5v-150h-105l-295 -98v98l-200 200h-400l100 100h375zM100 900h300q41 0 70.5 -29.5t29.5 -70.5v-500q0 -41 -29.5 -70.5t-70.5 -29.5h-300q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5zM100 800v-200h300v200 h-300zM1100 535l-400 -133v163l400 133v-163zM100 500v-200h300v200h-300zM1100 398v-248q0 -21 -14.5 -35.5t-35.5 -14.5h-375l-100 -100h-375l-100 100h400l200 200h105z" />
-<glyph unicode="&#xe182;" d="M17 1007l162 162q17 17 40 14t37 -22l139 -194q14 -20 11 -44.5t-20 -41.5l-119 -118q102 -142 228 -268t267 -227l119 118q17 17 42.5 19t44.5 -12l192 -136q19 -14 22.5 -37.5t-13.5 -40.5l-163 -162q-3 -1 -9.5 -1t-29.5 2t-47.5 6t-62.5 14.5t-77.5 26.5t-90 42.5 t-101.5 60t-111 83t-119 108.5q-74 74 -133.5 150.5t-94.5 138.5t-60 119.5t-34.5 100t-15 74.5t-4.5 48z" />
-<glyph unicode="&#xe183;" d="M600 1100q92 0 175 -10.5t141.5 -27t108.5 -36.5t81.5 -40t53.5 -37t31 -27l9 -10v-200q0 -21 -14.5 -33t-34.5 -9l-202 34q-20 3 -34.5 20t-14.5 38v146q-141 24 -300 24t-300 -24v-146q0 -21 -14.5 -38t-34.5 -20l-202 -34q-20 -3 -34.5 9t-14.5 33v200q3 4 9.5 10.5 t31 26t54 37.5t80.5 39.5t109 37.5t141 26.5t175 10.5zM600 795q56 0 97 -9.5t60 -23.5t30 -28t12 -24l1 -10v-50l365 -303q14 -15 24.5 -40t10.5 -45v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45t24.5 40l365 303v50 q0 4 1 10.5t12 23t30 29t60 22.5t97 10z" />
-<glyph unicode="&#xe184;" d="M1100 700l-200 -200h-600l-200 200v500h200v-200h200v200h200v-200h200v200h200v-500zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5 t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe185;" d="M700 1100h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-1000h300v1000q0 41 -29.5 70.5t-70.5 29.5zM1100 800h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-700h300v700q0 41 -29.5 70.5t-70.5 29.5zM400 0h-300v400q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-400z " />
-<glyph unicode="&#xe186;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
-<glyph unicode="&#xe187;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 300h-100v200h-100v-200h-100v500h100v-200h100v200h100v-500zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
-<glyph unicode="&#xe188;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-300h200v-100h-300v500h300v-100zM900 700h-200v-300h200v-100h-300v500h300v-100z" />
-<glyph unicode="&#xe189;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 400l-300 150l300 150v-300zM900 550l-300 -150v300z" />
-<glyph unicode="&#xe190;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM900 300h-700v500h700v-500zM800 700h-130q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300zM300 700v-300 h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130z" />
-<glyph unicode="&#xe191;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 300h-100v400h-100v100h200v-500z M700 300h-100v100h100v-100z" />
-<glyph unicode="&#xe192;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM300 700h200v-400h-300v500h100v-100zM900 300h-100v400h-100v100h200v-500zM300 600v-200h100v200h-100z M700 300h-100v100h100v-100z" />
-<glyph unicode="&#xe193;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 500l-199 -200h-100v50l199 200v150h-200v100h300v-300zM900 300h-100v400h-100v100h200v-500zM701 300h-100 v100h100v-100z" />
-<glyph unicode="&#xe194;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700h-300v-200h300v-100h-300l-100 100v200l100 100h300v-100z" />
-<glyph unicode="&#xe195;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700v-100l-50 -50l100 -100v-50h-100l-100 100h-150v-100h-100v400h300zM500 700v-100h200v100h-200z" />
-<glyph unicode="&#xe197;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -207t-85 -207t-205 -86.5h-128v250q0 21 -14.5 35.5t-35.5 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-250h-222q-80 0 -136 57.5t-56 136.5q0 69 43 122.5t108 67.5q-2 19 -2 37q0 100 49 185 t134 134t185 49zM525 500h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -244q-13 -16 -32 -16t-32 16l-223 244q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="&#xe198;" d="M502 1089q110 0 201 -59.5t135 -156.5q43 15 89 15q121 0 206 -86.5t86 -206.5q0 -99 -60 -181t-150 -110l-378 360q-13 16 -31.5 16t-31.5 -16l-381 -365h-9q-79 0 -135.5 57.5t-56.5 136.5q0 69 43 122.5t108 67.5q-2 19 -2 38q0 100 49 184.5t133.5 134t184.5 49.5z M632 467l223 -228q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5q199 204 223 228q19 19 31.5 19t32.5 -19z" />
-<glyph unicode="&#xe199;" d="M700 100v100h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-100h-50q-21 0 -35.5 -14.5t-14.5 -35.5v-50h400v50q0 21 -14.5 35.5t-35.5 14.5h-50z" />
-<glyph unicode="&#xe200;" d="M600 1179q94 0 167.5 -56.5t99.5 -145.5q89 -6 150.5 -71.5t61.5 -155.5q0 -61 -29.5 -112.5t-79.5 -82.5q9 -29 9 -55q0 -74 -52.5 -126.5t-126.5 -52.5q-55 0 -100 30v-251q21 0 35.5 -14.5t14.5 -35.5v-50h-300v50q0 21 14.5 35.5t35.5 14.5v251q-45 -30 -100 -30 q-74 0 -126.5 52.5t-52.5 126.5q0 18 4 38q-47 21 -75.5 65t-28.5 97q0 74 52.5 126.5t126.5 52.5q5 0 23 -2q0 2 -1 10t-1 13q0 116 81.5 197.5t197.5 81.5z" />
-<glyph unicode="&#xe201;" d="M1010 1010q111 -111 150.5 -260.5t0 -299t-150.5 -260.5q-83 -83 -191.5 -126.5t-218.5 -43.5t-218.5 43.5t-191.5 126.5q-111 111 -150.5 260.5t0 299t150.5 260.5q83 83 191.5 126.5t218.5 43.5t218.5 -43.5t191.5 -126.5zM476 1065q-4 0 -8 -1q-121 -34 -209.5 -122.5 t-122.5 -209.5q-4 -12 2.5 -23t18.5 -14l36 -9q3 -1 7 -1q23 0 29 22q27 96 98 166q70 71 166 98q11 3 17.5 13.5t3.5 22.5l-9 35q-3 13 -14 19q-7 4 -15 4zM512 920q-4 0 -9 -2q-80 -24 -138.5 -82.5t-82.5 -138.5q-4 -13 2 -24t19 -14l34 -9q4 -1 8 -1q22 0 28 21 q18 58 58.5 98.5t97.5 58.5q12 3 18 13.5t3 21.5l-9 35q-3 12 -14 19q-7 4 -15 4zM719.5 719.5q-49.5 49.5 -119.5 49.5t-119.5 -49.5t-49.5 -119.5t49.5 -119.5t119.5 -49.5t119.5 49.5t49.5 119.5t-49.5 119.5zM855 551q-22 0 -28 -21q-18 -58 -58.5 -98.5t-98.5 -57.5 q-11 -4 -17 -14.5t-3 -21.5l9 -35q3 -12 14 -19q7 -4 15 -4q4 0 9 2q80 24 138.5 82.5t82.5 138.5q4 13 -2.5 24t-18.5 14l-34 9q-4 1 -8 1zM1000 515q-23 0 -29 -22q-27 -96 -98 -166q-70 -71 -166 -98q-11 -3 -17.5 -13.5t-3.5 -22.5l9 -35q3 -13 14 -19q7 -4 15 -4 q4 0 8 1q121 34 209.5 122.5t122.5 209.5q4 12 -2.5 23t-18.5 14l-36 9q-3 1 -7 1z" />
-<glyph unicode="&#xe202;" d="M700 800h300v-380h-180v200h-340v-200h-380v755q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM700 300h162l-212 -212l-212 212h162v200h100v-200zM520 0h-395q-10 0 -17.5 7.5t-7.5 17.5v395zM1000 220v-195q0 -10 -7.5 -17.5t-17.5 -7.5h-195z" />
-<glyph unicode="&#xe203;" d="M700 800h300v-520l-350 350l-550 -550v1095q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM862 200h-162v-200h-100v200h-162l212 212zM480 0h-355q-10 0 -17.5 7.5t-7.5 17.5v55h380v-80zM1000 80v-55q0 -10 -7.5 -17.5t-17.5 -7.5h-155v80h180z" />
-<glyph unicode="&#xe204;" d="M1162 800h-162v-200h100l100 -100h-300v300h-162l212 212zM200 800h200q27 0 40 -2t29.5 -10.5t23.5 -30t7 -57.5h300v-100h-600l-200 -350v450h100q0 36 7 57.5t23.5 30t29.5 10.5t40 2zM800 400h240l-240 -400h-800l300 500h500v-100z" />
-<glyph unicode="&#xe205;" d="M650 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM1000 850v150q41 0 70.5 -29.5t29.5 -70.5v-800 q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-1 0 -20 4l246 246l-326 326v324q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM412 250l-212 -212v162h-200v100h200v162z" />
-<glyph unicode="&#xe206;" d="M450 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM800 850v150q41 0 70.5 -29.5t29.5 -70.5v-500 h-200v-300h200q0 -36 -7 -57.5t-23.5 -30t-29.5 -10.5t-40 -2h-600q-41 0 -70.5 29.5t-29.5 70.5v800q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM1212 250l-212 -212v162h-200v100h200v162z" />
-<glyph unicode="&#xe209;" d="M658 1197l637 -1104q23 -38 7 -65.5t-60 -27.5h-1276q-44 0 -60 27.5t7 65.5l637 1104q22 39 54 39t54 -39zM704 800h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM500 300v-100h200 v100h-200z" />
-<glyph unicode="&#xe210;" d="M425 1100h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM825 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM25 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5zM425 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5 v150q0 10 7.5 17.5t17.5 7.5zM25 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="&#xe211;" d="M700 1200h100v-200h-100v-100h350q62 0 86.5 -39.5t-3.5 -94.5l-66 -132q-41 -83 -81 -134h-772q-40 51 -81 134l-66 132q-28 55 -3.5 94.5t86.5 39.5h350v100h-100v200h100v100h200v-100zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100 h-950l138 100h-13q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe212;" d="M600 1300q40 0 68.5 -29.5t28.5 -70.5h-194q0 41 28.5 70.5t68.5 29.5zM443 1100h314q18 -37 18 -75q0 -8 -3 -25h328q41 0 44.5 -16.5t-30.5 -38.5l-175 -145h-678l-178 145q-34 22 -29 38.5t46 16.5h328q-3 17 -3 25q0 38 18 75zM250 700h700q21 0 35.5 -14.5 t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-150v-200l275 -200h-950l275 200v200h-150q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe213;" d="M600 1181q75 0 128 -53t53 -128t-53 -128t-128 -53t-128 53t-53 128t53 128t128 53zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13 l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe214;" d="M600 1300q47 0 92.5 -53.5t71 -123t25.5 -123.5q0 -78 -55.5 -133.5t-133.5 -55.5t-133.5 55.5t-55.5 133.5q0 62 34 143l144 -143l111 111l-163 163q34 26 63 26zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45 zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe215;" d="M600 1200l300 -161v-139h-300q0 -57 18.5 -108t50 -91.5t63 -72t70 -67.5t57.5 -61h-530q-60 83 -90.5 177.5t-30.5 178.5t33 164.5t87.5 139.5t126 96.5t145.5 41.5v-98zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100 h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe216;" d="M600 1300q41 0 70.5 -29.5t29.5 -70.5v-78q46 -26 73 -72t27 -100v-50h-400v50q0 54 27 100t73 72v78q0 41 29.5 70.5t70.5 29.5zM400 800h400q54 0 100 -27t72 -73h-172v-100h200v-100h-200v-100h200v-100h-200v-100h200q0 -83 -58.5 -141.5t-141.5 -58.5h-400 q-83 0 -141.5 58.5t-58.5 141.5v400q0 83 58.5 141.5t141.5 58.5z" />
-<glyph unicode="&#xe218;" d="M150 1100h900q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM125 400h950q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-283l224 -224q13 -13 13 -31.5t-13 -32 t-31.5 -13.5t-31.5 13l-88 88h-524l-87 -88q-13 -13 -32 -13t-32 13.5t-13 32t13 31.5l224 224h-289q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM541 300l-100 -100h324l-100 100h-124z" />
-<glyph unicode="&#xe219;" d="M200 1100h800q83 0 141.5 -58.5t58.5 -141.5v-200h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100v200q0 83 58.5 141.5t141.5 58.5zM100 600h1000q41 0 70.5 -29.5 t29.5 -70.5v-300h-1200v300q0 41 29.5 70.5t70.5 29.5zM300 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200zM1100 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200z" />
-<glyph unicode="&#xe221;" d="M480 1165l682 -683q31 -31 31 -75.5t-31 -75.5l-131 -131h-481l-517 518q-32 31 -32 75.5t32 75.5l295 296q31 31 75.5 31t76.5 -31zM108 794l342 -342l303 304l-341 341zM250 100h800q21 0 35.5 -14.5t14.5 -35.5v-50h-900v50q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe223;" d="M1057 647l-189 506q-8 19 -27.5 33t-40.5 14h-400q-21 0 -40.5 -14t-27.5 -33l-189 -506q-8 -19 1.5 -33t30.5 -14h625v-150q0 -21 14.5 -35.5t35.5 -14.5t35.5 14.5t14.5 35.5v150h125q21 0 30.5 14t1.5 33zM897 0h-595v50q0 21 14.5 35.5t35.5 14.5h50v50 q0 21 14.5 35.5t35.5 14.5h48v300h200v-300h47q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-50z" />
-<glyph unicode="&#xe224;" d="M900 800h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-375v591l-300 300v84q0 10 7.5 17.5t17.5 7.5h375v-400zM1200 900h-200v200zM400 600h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-650q-10 0 -17.5 7.5t-7.5 17.5v950q0 10 7.5 17.5t17.5 7.5h375v-400zM700 700h-200v200z " />
-<glyph unicode="&#xe225;" d="M484 1095h195q75 0 146 -32.5t124 -86t89.5 -122.5t48.5 -142q18 -14 35 -20q31 -10 64.5 6.5t43.5 48.5q10 34 -15 71q-19 27 -9 43q5 8 12.5 11t19 -1t23.5 -16q41 -44 39 -105q-3 -63 -46 -106.5t-104 -43.5h-62q-7 -55 -35 -117t-56 -100l-39 -234q-3 -20 -20 -34.5 t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l12 70q-49 -14 -91 -14h-195q-24 0 -65 8l-11 -64q-3 -20 -20 -34.5t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l26 157q-84 74 -128 175l-159 53q-19 7 -33 26t-14 40v50q0 21 14.5 35.5t35.5 14.5h124q11 87 56 166l-111 95 q-16 14 -12.5 23.5t24.5 9.5h203q116 101 250 101zM675 1000h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h250q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5t-17.5 7.5z" />
-<glyph unicode="&#xe226;" d="M641 900l423 247q19 8 42 2.5t37 -21.5l32 -38q14 -15 12.5 -36t-17.5 -34l-139 -120h-390zM50 1100h106q67 0 103 -17t66 -71l102 -212h823q21 0 35.5 -14.5t14.5 -35.5v-50q0 -21 -14 -40t-33 -26l-737 -132q-23 -4 -40 6t-26 25q-42 67 -100 67h-300q-62 0 -106 44 t-44 106v200q0 62 44 106t106 44zM173 928h-80q-19 0 -28 -14t-9 -35v-56q0 -51 42 -51h134q16 0 21.5 8t5.5 24q0 11 -16 45t-27 51q-18 28 -43 28zM550 727q-32 0 -54.5 -22.5t-22.5 -54.5t22.5 -54.5t54.5 -22.5t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5zM130 389 l152 130q18 19 34 24t31 -3.5t24.5 -17.5t25.5 -28q28 -35 50.5 -51t48.5 -13l63 5l48 -179q13 -61 -3.5 -97.5t-67.5 -79.5l-80 -69q-47 -40 -109 -35.5t-103 51.5l-130 151q-40 47 -35.5 109.5t51.5 102.5zM380 377l-102 -88q-31 -27 2 -65l37 -43q13 -15 27.5 -19.5 t31.5 6.5l61 53q19 16 14 49q-2 20 -12 56t-17 45q-11 12 -19 14t-23 -8z" />
-<glyph unicode="&#xe227;" d="M625 1200h150q10 0 17.5 -7.5t7.5 -17.5v-109q79 -33 131 -87.5t53 -128.5q1 -46 -15 -84.5t-39 -61t-46 -38t-39 -21.5l-17 -6q6 0 15 -1.5t35 -9t50 -17.5t53 -30t50 -45t35.5 -64t14.5 -84q0 -59 -11.5 -105.5t-28.5 -76.5t-44 -51t-49.5 -31.5t-54.5 -16t-49.5 -6.5 t-43.5 -1v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-100v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-175q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v600h-75q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5h175v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h100v75q0 10 7.5 17.5t17.5 7.5zM400 900v-200h263q28 0 48.5 10.5t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-263zM400 500v-200h363q28 0 48.5 10.5 t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-363z" />
-<glyph unicode="&#xe230;" d="M212 1198h780q86 0 147 -61t61 -147v-416q0 -51 -18 -142.5t-36 -157.5l-18 -66q-29 -87 -93.5 -146.5t-146.5 -59.5h-572q-82 0 -147 59t-93 147q-8 28 -20 73t-32 143.5t-20 149.5v416q0 86 61 147t147 61zM600 1045q-70 0 -132.5 -11.5t-105.5 -30.5t-78.5 -41.5 t-57 -45t-36 -41t-20.5 -30.5l-6 -12l156 -243h560l156 243q-2 5 -6 12.5t-20 29.5t-36.5 42t-57 44.5t-79 42t-105 29.5t-132.5 12zM762 703h-157l195 261z" />
-<glyph unicode="&#xe231;" d="M475 1300h150q103 0 189 -86t86 -189v-500q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
-<glyph unicode="&#xe232;" d="M475 1300h96q0 -150 89.5 -239.5t239.5 -89.5v-446q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
-<glyph unicode="&#xe233;" d="M1294 767l-638 -283l-378 170l-78 -60v-224l100 -150v-199l-150 148l-150 -149v200l100 150v250q0 4 -0.5 10.5t0 9.5t1 8t3 8t6.5 6l47 40l-147 65l642 283zM1000 380l-350 -166l-350 166v147l350 -165l350 165v-147z" />
-<glyph unicode="&#xe234;" d="M250 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM650 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM1050 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
-<glyph unicode="&#xe235;" d="M550 1100q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 700q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 300q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
-<glyph unicode="&#xe236;" d="M125 1100h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM125 700h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM125 300h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
-<glyph unicode="&#xe237;" d="M350 1200h500q162 0 256 -93.5t94 -256.5v-500q0 -165 -93.5 -257.5t-256.5 -92.5h-500q-165 0 -257.5 92.5t-92.5 257.5v500q0 165 92.5 257.5t257.5 92.5zM900 1000h-600q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h600q41 0 70.5 29.5 t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5zM350 900h500q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-500q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 14.5 35.5t35.5 14.5zM400 800v-200h400v200h-400z" />
-<glyph unicode="&#xe238;" d="M150 1100h1000q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe239;" d="M650 1187q87 -67 118.5 -156t0 -178t-118.5 -155q-87 66 -118.5 155t0 178t118.5 156zM300 800q124 0 212 -88t88 -212q-124 0 -212 88t-88 212zM1000 800q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM300 500q124 0 212 -88t88 -212q-124 0 -212 88t-88 212z M1000 500q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM700 199v-144q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v142q40 -4 43 -4q17 0 57 6z" />
-<glyph unicode="&#xe240;" d="M745 878l69 19q25 6 45 -12l298 -295q11 -11 15 -26.5t-2 -30.5q-5 -14 -18 -23.5t-28 -9.5h-8q1 0 1 -13q0 -29 -2 -56t-8.5 -62t-20 -63t-33 -53t-51 -39t-72.5 -14h-146q-184 0 -184 288q0 24 10 47q-20 4 -62 4t-63 -4q11 -24 11 -47q0 -288 -184 -288h-142 q-48 0 -84.5 21t-56 51t-32 71.5t-16 75t-3.5 68.5q0 13 2 13h-7q-15 0 -27.5 9.5t-18.5 23.5q-6 15 -2 30.5t15 25.5l298 296q20 18 46 11l76 -19q20 -5 30.5 -22.5t5.5 -37.5t-22.5 -31t-37.5 -5l-51 12l-182 -193h891l-182 193l-44 -12q-20 -5 -37.5 6t-22.5 31t6 37.5 t31 22.5z" />
-<glyph unicode="&#xe241;" d="M1200 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM500 450h-25q0 15 -4 24.5t-9 14.5t-17 7.5t-20 3t-25 0.5h-100v-425q0 -11 12.5 -17.5t25.5 -7.5h12v-50h-200v50q50 0 50 25v425h-100q-17 0 -25 -0.5t-20 -3t-17 -7.5t-9 -14.5t-4 -24.5h-25v150h500v-150z" />
-<glyph unicode="&#xe242;" d="M1000 300v50q-25 0 -55 32q-14 14 -25 31t-16 27l-4 11l-289 747h-69l-300 -754q-18 -35 -39 -56q-9 -9 -24.5 -18.5t-26.5 -14.5l-11 -5v-50h273v50q-49 0 -78.5 21.5t-11.5 67.5l69 176h293l61 -166q13 -34 -3.5 -66.5t-55.5 -32.5v-50h312zM412 691l134 342l121 -342 h-255zM1100 150v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" />
-<glyph unicode="&#xe243;" d="M50 1200h1100q21 0 35.5 -14.5t14.5 -35.5v-1100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5zM611 1118h-70q-13 0 -18 -12l-299 -753q-17 -32 -35 -51q-18 -18 -56 -34q-12 -5 -12 -18v-50q0 -8 5.5 -14t14.5 -6 h273q8 0 14 6t6 14v50q0 8 -6 14t-14 6q-55 0 -71 23q-10 14 0 39l63 163h266l57 -153q11 -31 -6 -55q-12 -17 -36 -17q-8 0 -14 -6t-6 -14v-50q0 -8 6 -14t14 -6h313q8 0 14 6t6 14v50q0 7 -5.5 13t-13.5 7q-17 0 -42 25q-25 27 -40 63h-1l-288 748q-5 12 -19 12zM639 611 h-197l103 264z" />
-<glyph unicode="&#xe244;" d="M1200 1100h-1200v100h1200v-100zM50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 1000h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM700 900v-300h300v300h-300z" />
-<glyph unicode="&#xe245;" d="M50 1200h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 700h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM700 600v-300h300v300h-300zM1200 0h-1200v100h1200v-100z" />
-<glyph unicode="&#xe246;" d="M50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-350h100v150q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-150h100v-100h-100v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v150h-100v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM700 700v-300h300v300h-300z" />
-<glyph unicode="&#xe247;" d="M100 0h-100v1200h100v-1200zM250 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM300 1000v-300h300v300h-300zM250 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe248;" d="M600 1100h150q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-100h450q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h350v100h-150q-21 0 -35.5 14.5 t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h150v100h100v-100zM400 1000v-300h300v300h-300z" />
-<glyph unicode="&#xe249;" d="M1200 0h-100v1200h100v-1200zM550 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM600 1000v-300h300v300h-300zM50 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
-<glyph unicode="&#xe250;" d="M865 565l-494 -494q-23 -23 -41 -23q-14 0 -22 13.5t-8 38.5v1000q0 25 8 38.5t22 13.5q18 0 41 -23l494 -494q14 -14 14 -35t-14 -35z" />
-<glyph unicode="&#xe251;" d="M335 635l494 494q29 29 50 20.5t21 -49.5v-1000q0 -41 -21 -49.5t-50 20.5l-494 494q-14 14 -14 35t14 35z" />
-<glyph unicode="&#xe252;" d="M100 900h1000q41 0 49.5 -21t-20.5 -50l-494 -494q-14 -14 -35 -14t-35 14l-494 494q-29 29 -20.5 50t49.5 21z" />
-<glyph unicode="&#xe253;" d="M635 865l494 -494q29 -29 20.5 -50t-49.5 -21h-1000q-41 0 -49.5 21t20.5 50l494 494q14 14 35 14t35 -14z" />
-<glyph unicode="&#xe254;" d="M700 741v-182l-692 -323v221l413 193l-413 193v221zM1200 0h-800v200h800v-200z" />
-<glyph unicode="&#xe255;" d="M1200 900h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300zM0 700h50q0 21 4 37t9.5 26.5t18 17.5t22 11t28.5 5.5t31 2t37 0.5h100v-550q0 -22 -25 -34.5t-50 -13.5l-25 -2v-100h400v100q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v550h100q25 0 37 -0.5t31 -2 t28.5 -5.5t22 -11t18 -17.5t9.5 -26.5t4 -37h50v300h-800v-300z" />
-<glyph unicode="&#xe256;" d="M800 700h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-100v-550q0 -22 25 -34.5t50 -14.5l25 -1v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v550h-100q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h800v-300zM1100 200h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300z" />
-<glyph unicode="&#xe257;" d="M701 1098h160q16 0 21 -11t-7 -23l-464 -464l464 -464q12 -12 7 -23t-21 -11h-160q-13 0 -23 9l-471 471q-7 8 -7 18t7 18l471 471q10 9 23 9z" />
-<glyph unicode="&#xe258;" d="M339 1098h160q13 0 23 -9l471 -471q7 -8 7 -18t-7 -18l-471 -471q-10 -9 -23 -9h-160q-16 0 -21 11t7 23l464 464l-464 464q-12 12 -7 23t21 11z" />
-<glyph unicode="&#xe259;" d="M1087 882q11 -5 11 -21v-160q0 -13 -9 -23l-471 -471q-8 -7 -18 -7t-18 7l-471 471q-9 10 -9 23v160q0 16 11 21t23 -7l464 -464l464 464q12 12 23 7z" />
-<glyph unicode="&#xe260;" d="M618 993l471 -471q9 -10 9 -23v-160q0 -16 -11 -21t-23 7l-464 464l-464 -464q-12 -12 -23 -7t-11 21v160q0 13 9 23l471 471q8 7 18 7t18 -7z" />
-<glyph unicode="&#xf8ff;" d="M1000 1200q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM450 1000h100q21 0 40 -14t26 -33l79 -194q5 1 16 3q34 6 54 9.5t60 7t65.5 1t61 -10t56.5 -23t42.5 -42t29 -64t5 -92t-19.5 -121.5q-1 -7 -3 -19.5t-11 -50t-20.5 -73t-32.5 -81.5t-46.5 -83t-64 -70 t-82.5 -50q-13 -5 -42 -5t-65.5 2.5t-47.5 2.5q-14 0 -49.5 -3.5t-63 -3.5t-43.5 7q-57 25 -104.5 78.5t-75 111.5t-46.5 112t-26 90l-7 35q-15 63 -18 115t4.5 88.5t26 64t39.5 43.5t52 25.5t58.5 13t62.5 2t59.5 -4.5t55.5 -8l-147 192q-12 18 -5.5 30t27.5 12z" />
-<glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
-<glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
-</font>
-</defs></svg> 
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/fonts/glyphicons-halflings-regular.ttf b/mailcow/src/mailcow-dockerized/data/web/fonts/glyphicons-halflings-regular.ttf
deleted file mode 100644
index 1413fc6..0000000
--- a/mailcow/src/mailcow-dockerized/data/web/fonts/glyphicons-halflings-regular.ttf
+++ /dev/null
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/web/fonts/glyphicons-halflings-regular.woff b/mailcow/src/mailcow-dockerized/data/web/fonts/glyphicons-halflings-regular.woff
deleted file mode 100644
index 9e61285..0000000
--- a/mailcow/src/mailcow-dockerized/data/web/fonts/glyphicons-halflings-regular.woff
+++ /dev/null
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/web/fonts/glyphicons-halflings-regular.woff2 b/mailcow/src/mailcow-dockerized/data/web/fonts/glyphicons-halflings-regular.woff2
deleted file mode 100644
index 64539b5..0000000
--- a/mailcow/src/mailcow-dockerized/data/web/fonts/glyphicons-halflings-regular.woff2
+++ /dev/null
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-700.woff b/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-700.woff
new file mode 100644
index 0000000..386899f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-700.woff
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-700.woff2 b/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-700.woff2
new file mode 100644
index 0000000..ca64080
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-700.woff2
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-700italic.woff b/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-700italic.woff
new file mode 100644
index 0000000..62f4d77
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-700italic.woff
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-700italic.woff2 b/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-700italic.woff2
new file mode 100644
index 0000000..226210c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-700italic.woff2
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-italic.woff b/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-italic.woff
new file mode 100644
index 0000000..9d40dec
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-italic.woff
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-italic.woff2 b/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-italic.woff2
new file mode 100644
index 0000000..f43754d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-italic.woff2
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-regular.woff b/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-regular.woff
new file mode 100644
index 0000000..2b512bc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-regular.woff
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-regular.woff2 b/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-regular.woff2
new file mode 100644
index 0000000..1f1db1a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/fonts/noto-sans-v12-latin_greek_cyrillic-regular.woff2
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/web/fonts/pt-sans-v11-latin-ext_cyrillic_latin-700.woff b/mailcow/src/mailcow-dockerized/data/web/fonts/pt-sans-v11-latin-ext_cyrillic_latin-700.woff
deleted file mode 100644
index 534ef3e..0000000
--- a/mailcow/src/mailcow-dockerized/data/web/fonts/pt-sans-v11-latin-ext_cyrillic_latin-700.woff
+++ /dev/null
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/web/fonts/pt-sans-v11-latin-ext_cyrillic_latin-700.woff2 b/mailcow/src/mailcow-dockerized/data/web/fonts/pt-sans-v11-latin-ext_cyrillic_latin-700.woff2
deleted file mode 100644
index 6c8e609..0000000
--- a/mailcow/src/mailcow-dockerized/data/web/fonts/pt-sans-v11-latin-ext_cyrillic_latin-700.woff2
+++ /dev/null
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/web/fonts/pt-sans-v11-latin-ext_cyrillic_latin-italic.woff b/mailcow/src/mailcow-dockerized/data/web/fonts/pt-sans-v11-latin-ext_cyrillic_latin-italic.woff
deleted file mode 100644
index ab0a612..0000000
--- a/mailcow/src/mailcow-dockerized/data/web/fonts/pt-sans-v11-latin-ext_cyrillic_latin-italic.woff
+++ /dev/null
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/web/fonts/pt-sans-v11-latin-ext_cyrillic_latin-italic.woff2 b/mailcow/src/mailcow-dockerized/data/web/fonts/pt-sans-v11-latin-ext_cyrillic_latin-italic.woff2
deleted file mode 100644
index 11d1ccd..0000000
--- a/mailcow/src/mailcow-dockerized/data/web/fonts/pt-sans-v11-latin-ext_cyrillic_latin-italic.woff2
+++ /dev/null
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/web/fonts/pt-sans-v11-latin-ext_cyrillic_latin-regular.woff b/mailcow/src/mailcow-dockerized/data/web/fonts/pt-sans-v11-latin-ext_cyrillic_latin-regular.woff
deleted file mode 100644
index 0a39232..0000000
--- a/mailcow/src/mailcow-dockerized/data/web/fonts/pt-sans-v11-latin-ext_cyrillic_latin-regular.woff
+++ /dev/null
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/web/fonts/pt-sans-v11-latin-ext_cyrillic_latin-regular.woff2 b/mailcow/src/mailcow-dockerized/data/web/fonts/pt-sans-v11-latin-ext_cyrillic_latin-regular.woff2
deleted file mode 100644
index 2a9e8e8..0000000
--- a/mailcow/src/mailcow-dockerized/data/web/fonts/pt-sans-v11-latin-ext_cyrillic_latin-regular.woff2
+++ /dev/null
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/web/img/languages.png b/mailcow/src/mailcow-dockerized/data/web/img/languages.png
deleted file mode 100644
index 85d9a6e..0000000
--- a/mailcow/src/mailcow-dockerized/data/web/img/languages.png
+++ /dev/null
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/ajax/dns_diagnostics.php b/mailcow/src/mailcow-dockerized/data/web/inc/ajax/dns_diagnostics.php
index 928a4e4..a315680 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/ajax/dns_diagnostics.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/ajax/dns_diagnostics.php
@@ -2,479 +2,456 @@
 require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/prerequisites.inc.php';
 require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/spf.inc.php';
 
-define('state_good', '<span class="glyphicon glyphicon-ok text-success"></span>');
-define('state_missing', '<span class="glyphicon glyphicon-remove text-danger"></span>');
+define('state_good', '<i class="bi bi-check-lg text-success"></i>');
+define('state_missing', '<i class="bi bi-x-lg text-danger"></i>');
 define('state_nomatch', "?");
 define('state_optional', " <sup>2</sup>");
 
 if (isset($_SESSION['mailcow_cc_role']) && ($_SESSION['mailcow_cc_role'] == "admin"|| $_SESSION['mailcow_cc_role'] == "domainadmin")) {
 
-$domains = mailbox('get', 'domains');
-$alias_domains = array();
-foreach($domains as $dn) {
-  $alias_domains = array_merge($alias_domains, mailbox('get', 'alias_domains', $dn));
-}
-$domains = array_merge($domains, $alias_domains);
+  $alias_domains = array();
 
-if (isset($_GET['domain'])) {
-  if (is_valid_domain_name($_GET['domain'])) {
-    if (in_array($_GET['domain'], $domains)) {
+  if (isset($_GET['domain'])) {
+    $domain_details = mailbox('get', 'domain_details', $_GET['domain']);
+    if ($domain_details !== false) {
       $domain = $_GET['domain'];
+      $alias_domains = array_merge($alias_domains, mailbox('get', 'alias_domains', $domain));
     }
     else {
       echo "No such domain in context";
       exit();
     }
   }
-  else {
-    echo "Invalid domain name";
-    exit();
-  }
-}
 
-$ch = curl_init('http://ip4.mailcow.email');
-curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
-curl_setopt($ch, CURLOPT_VERBOSE, false);
-curl_setopt($ch, CURLOPT_HEADER, false);
-curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
-curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
-$ip = curl_exec($ch);
-curl_close($ch);
+  $ch = curl_init('http://ip4.mailcow.email');
+  curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
+  curl_setopt($ch, CURLOPT_VERBOSE, false);
+  curl_setopt($ch, CURLOPT_HEADER, false);
+  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
+  $ip = curl_exec($ch);
+  curl_close($ch);
 
-$ch = curl_init('http://ip6.mailcow.email');
-curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V6);
-curl_setopt($ch, CURLOPT_VERBOSE, false);
-curl_setopt($ch, CURLOPT_HEADER, false);
-curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
-curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
-$ip6 = curl_exec($ch);
-curl_close($ch);
+  $ch = curl_init('http://ip6.mailcow.email');
+  curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V6);
+  curl_setopt($ch, CURLOPT_VERBOSE, false);
+  curl_setopt($ch, CURLOPT_HEADER, false);
+  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
+  $ip6 = curl_exec($ch);
+  curl_close($ch);
 
-$ptr = implode('.', array_reverse(explode('.', $ip))) . '.in-addr.arpa';
-if (!empty($ip6)) {
-  $ip6_full = str_replace('::', str_repeat(':', 9-substr_count($ip6, ':')), $ip6);
-  $ip6_full = str_replace('::', ':0:', $ip6_full);
-  $ip6_full = str_replace('::', ':0:', $ip6_full);
-  $ptr6 = '';
-  foreach (explode(':', $ip6_full) as $part) {
-    $ptr6 .= str_pad($part, 4, '0', STR_PAD_LEFT);
-  }
-  $ptr6 = implode('.', array_reverse(str_split($ptr6, 1))) . '.ip6.arpa';
-}
-
-$https_port = strpos($_SERVER['HTTP_HOST'], ':');
-if ($https_port === FALSE) {
-  $https_port = 443;
-}
-else {
-  $https_port = substr($_SERVER['HTTP_HOST'], $https_port+1);
-}
-
-if (!isset($autodiscover_config['sieve'])) {
-  $autodiscover_config['sieve'] = array('server' => $mailcow_hostname, 'port' => array_pop(explode(':', getenv('SIEVE_PORT'))));
-}
-
-// Init records array
-$spf_link = '<a href="https://en.wikipedia.org/wiki/Sender_Policy_Framework" target="_blank">SPF Record Syntax</a><br />';
-$dmarc_link = '<a href="https://www.kitterman.com/dmarc/assistant.html" target="_blank">DMARC Assistant</a>';
-
-$records = array();
-if ($_SESSION['mailcow_cc_role'] == "admin") {
-  $records[] = array(
-    $mailcow_hostname,
-    'A',
-    $ip
-  );
-  $records[] = array(
-    $ptr,
-    'PTR',
-    $mailcow_hostname
-  );
+  $ptr = implode('.', array_reverse(explode('.', $ip))) . '.in-addr.arpa';
   if (!empty($ip6)) {
+    $ip6_full = str_replace('::', str_repeat(':', 9-substr_count($ip6, ':')), $ip6);
+    $ip6_full = str_replace('::', ':0:', $ip6_full);
+    $ip6_full = str_replace('::', ':0:', $ip6_full);
+    $ptr6 = '';
+    foreach (explode(':', $ip6_full) as $part) {
+      $ptr6 .= str_pad($part, 4, '0', STR_PAD_LEFT);
+    }
+    $ptr6 = implode('.', array_reverse(str_split($ptr6, 1))) . '.ip6.arpa';
+  }
+
+  $https_port = strpos($_SERVER['HTTP_HOST'], ':');
+  if ($https_port === FALSE) {
+    $https_port = 443;
+  }
+  else {
+    $https_port = substr($_SERVER['HTTP_HOST'], $https_port+1);
+  }
+
+  if (!isset($autodiscover_config['sieve'])) {
+    $autodiscover_config['sieve'] = array(
+      'server' => $mailcow_hostname,
+      'port' => array_pop(explode(':', getenv('SIEVE_PORT')))
+    );
+  }
+
+  // Init records array
+  $spf_link = '<a href="http://www.open-spf.org/SPF_Record_Syntax/" target="_blank">SPF Record Syntax</a><br />';
+  $dmarc_link = '<a href="https://www.kitterman.com/dmarc/assistant.html" target="_blank">DMARC Assistant</a>';
+
+  $records = array();
+
+  if ($_SESSION['mailcow_cc_role'] == "admin") {
     $records[] = array(
       $mailcow_hostname,
-      'AAAA',
-      expand_ipv6($ip6)
+      'A',
+      $ip
     );
     $records[] = array(
-      $ptr6,
+      $ptr,
       'PTR',
       $mailcow_hostname
     );
+    if (!empty($ip6)) {
+      $records[] = array(
+        $mailcow_hostname,
+        'AAAA',
+        expand_ipv6($ip6)
+      );
+      $records[] = array(
+        $ptr6,
+        'PTR',
+        $mailcow_hostname
+      );
+    }
+    $records[] = array(
+      '_25._tcp.' . $autodiscover_config['smtp']['server'],
+      'TLSA',
+      generate_tlsa_digest($autodiscover_config['smtp']['server'], 25, 1)
+    );
   }
+
   $records[] = array(
-    '_25._tcp.'.$autodiscover_config['smtp']['server'],
-    'TLSA',
-    generate_tlsa_digest($autodiscover_config['smtp']['server'], 25, 1)
+    $domain,
+    'MX',
+    $mailcow_hostname
   );
+
   if (!in_array($domain, $alias_domains)) {
     $records[] = array(
-      '_'.$https_port.
-      '._tcp.'.$mailcow_hostname,
-      'TLSA',
-      generate_tlsa_digest($mailcow_hostname, $https_port)
+      'autodiscover.' . $domain,
+      'CNAME',
+      $mailcow_hostname
     );
     $records[] = array(
-      '_'.$autodiscover_config['pop3']['tlsport'].
-      '._tcp.'.$autodiscover_config['pop3']['server'],
-      'TLSA',
-      generate_tlsa_digest($autodiscover_config['pop3']['server'], $autodiscover_config['pop3']['tlsport'], 1)
+      '_autodiscover._tcp.' . $domain,
+      'SRV',
+      $mailcow_hostname . ' ' . $https_port
     );
     $records[] = array(
-      '_'.$autodiscover_config['imap']['tlsport'].
-      '._tcp.'.$autodiscover_config['imap']['server'],
-      'TLSA',
-      generate_tlsa_digest($autodiscover_config['imap']['server'], $autodiscover_config['imap']['tlsport'], 1)
-    );
-    $records[] = array(
-      '_'.$autodiscover_config['smtp']['port'].
-      '._tcp.'.$autodiscover_config['smtp']['server'],
-      'TLSA',
-      generate_tlsa_digest($autodiscover_config['smtp']['server'], $autodiscover_config['smtp']['port'])
-    );
-    $records[] = array(
-      '_'.$autodiscover_config['smtp']['tlsport'].
-      '._tcp.'.$autodiscover_config['smtp']['server'],
-      'TLSA',
-      generate_tlsa_digest($autodiscover_config['smtp']['server'], $autodiscover_config['smtp']['tlsport'], 1)
-    );
-    $records[] = array(
-      '_'.$autodiscover_config['imap']['port'].
-      '._tcp.'.$autodiscover_config['imap']['server'],
-      'TLSA',
-      generate_tlsa_digest($autodiscover_config['imap']['server'], $autodiscover_config['imap']['port'])
-    );
-    $records[] = array(
-      '_'.$autodiscover_config['pop3']['port'].
-      '._tcp.'.$autodiscover_config['pop3']['server'],
-      'TLSA',
-      generate_tlsa_digest($autodiscover_config['pop3']['server'], $autodiscover_config['pop3']['port'])
-    );
-    $records[] = array(
-      '_'.$autodiscover_config['sieve']['port'].
-      '._tcp.'.$autodiscover_config['sieve']['server'],
-      'TLSA',
-      generate_tlsa_digest($autodiscover_config['sieve']['server'], $autodiscover_config['sieve']['port'], 1)
+      'autoconfig.' . $domain,
+      'CNAME',
+      $mailcow_hostname
     );
   }
-}
-$records[] = array(
-  $domain,
-  'MX',
-  $mailcow_hostname
-);
-if (!in_array($domain, $alias_domains)) {
-  $records[] = array(
-    'autodiscover.'.$domain,
-    'CNAME',
-    $mailcow_hostname
-  );
-  $records[] = array(
-    '_autodiscover._tcp.'.$domain,
-    'SRV',
-    $mailcow_hostname.
-    ' '.$https_port
-  );
-  $records[] = array(
-    'autoconfig.'.$domain,
-    'CNAME',
-    $mailcow_hostname
-  );
-}
-$records[] = array(
-  $domain,
-  'TXT',
-  $spf_link,
-  state_optional
-);
-$records[] = array(
-  '_dmarc.'.$domain,
-  'TXT',
-  $dmarc_link,
-  state_optional
-);
 
-if (!empty($dkim = dkim('details', $domain))) {
   $records[] = array(
-    $dkim['dkim_selector'] . '._domainkey.' . $domain,
+    $domain,
     'TXT',
-    $dkim['dkim_txt']
+    $spf_link,
+    state_optional
   );
-}
-if (!in_array($domain, $alias_domains)) {
-  $current_records = dns_get_record('_pop3._tcp.' . $domain, DNS_SRV);
-  if (count($current_records) == 0 || $current_records[0]['target'] != '') {
-    if ($autodiscover_config['pop3']['tlsport'] != '110') {
-      $records[] = array(
-        '_pop3._tcp.' . $domain,
-        'SRV',
-        $autodiscover_config['pop3']['server'] . ' ' . $autodiscover_config['pop3']['tlsport']
-      );
-    }
-  }
-  else {
-    $records[] = array(
-      '_pop3._tcp.' . $domain,
-      'SRV',
-      '. 0'
-    );
-  }
-  $current_records = dns_get_record('_pop3s._tcp.' . $domain, DNS_SRV);
-  if (count($current_records) == 0 || $current_records[0]['target'] != '') {
-    if ($autodiscover_config['pop3']['port'] != '995') {
-      $records[] = array(
-        '_pop3s._tcp.' . $domain,
-        'SRV',
-        $autodiscover_config['pop3']['server'] . ' ' . $autodiscover_config['pop3']['port']
-      );
-    }
-  }
-  else {
-    $records[] = array(
-      '_pop3s._tcp.' . $domain,
-      'SRV',
-      '. 0'
-    );
-  }
-  if ($autodiscover_config['imap']['tlsport'] != '143') {
-    $records[] = array(
-      '_imap._tcp.' . $domain,
-      'SRV',
-      $autodiscover_config['imap']['server'] . ' ' . $autodiscover_config['imap']['tlsport']
-    );
-  }
-  if ($autodiscover_config['imap']['port'] != '993') {
-    $records[] = array(
-      '_imaps._tcp.' . $domain,
-      'SRV',
-      $autodiscover_config['imap']['server'] . ' ' . $autodiscover_config['imap']['port']
-    );
-  }
-  if ($autodiscover_config['smtp']['tlsport'] != '587') {
-    $records[] = array(
-      '_submission._tcp.' . $domain,
-      'SRV',
-      $autodiscover_config['smtp']['server'] . ' ' . $autodiscover_config['smtp']['tlsport']
-    );
-  }
-  if ($autodiscover_config['smtp']['port'] != '465') {
-    $records[] = array(
-      '_smtps._tcp.' . $domain,
-      'SRV',
-      $autodiscover_config['smtp']['server'] . ' ' . $autodiscover_config['smtp']['port']
-    );
-  }
-  if ($autodiscover_config['sieve']['port'] != '4190') {
-    $records[] = array(
-      '_sieve._tcp.' . $domain,
-      'SRV',
-      $autodiscover_config['sieve']['server'] . ' ' . $autodiscover_config['sieve']['port']
-    );
-  }
-}
 
-$record_types = array(
-  'A' => DNS_A,
-  'AAAA' => DNS_AAAA,
-  'CNAME' => DNS_CNAME,
-  'MX' => DNS_MX,
-  'PTR' => DNS_PTR,
-  'SRV' => DNS_SRV,
-  'TXT' => DNS_TXT,
-);
-$data_field = array(
-  'A' => 'ip',
-  'AAAA' => 'ipv6',
-  'CNAME' => 'target',
-  'MX' => 'target',
-  'PTR' => 'target',
-  'SRV' => 'data',
-  'TLSA' => 'data',
-  'TXT' => 'txt',
-);
+  $records[] = array(
+    '_dmarc.' . $domain,
+    'TXT',
+    $dmarc_link,
+    state_optional
+  );
 
-?>
-<div class="table-responsive" id="dnstable">
-  <table class="table table-striped">
-    <tr>
-      <th><?=$lang['diagnostics']['dns_records_name'];?></th>
-      <th><?=$lang['diagnostics']['dns_records_type'];?></th>
-      <th><?=$lang['diagnostics']['dns_records_data'];?></th>
-      <th><?=$lang['diagnostics']['dns_records_status'];?></th>
-    </tr>
-<?php
-foreach ($records as &$record) {
-  $record[1] = strtoupper($record[1]);
-  $state = state_missing;
-  if ($record[1] == 'TLSA') {
-    $currents = dns_get_record($record[0], 52, $_, $_, TRUE);
-    foreach ($currents as &$current) {
-      $current['type'] = 'TLSA';
-      $current['cert_usage'] = hexdec(bin2hex($current['data']{0}));
-      $current['selector'] = hexdec(bin2hex($current['data']{1}));
-      $current['match_type'] = hexdec(bin2hex($current['data']{2}));
-      $current['cert_data'] = bin2hex(substr($current['data'], 3));
-      $current['data'] = $current['cert_usage'] . ' ' . $current['selector'] . ' ' . $current['match_type'] . ' ' . $current['cert_data'];
-    }
-    unset($current);
-  }
-  else {
-    $currents = dns_get_record($record[0], $record_types[$record[1]]);
-    if ($record[0] == $mailcow_hostname && ($record[1] == "A" || $record[1] == "AAAA")) {
-      if (!empty(dns_get_record($record[0], DNS_CNAME))) {
-        $currents[0]['ip'] = state_missing . ' <b>(CNAME)</b>';
-        $currents[0]['ipv6'] = state_missing . ' <b>(CNAME)</b>';
-      }
-    }
-    if ($record[1] == 'SRV') {
-      foreach ($currents as &$current) {
-        if ($current['target'] == '') {
-          $current['target'] = '.';
-          $current['port'] = '0';
-        }
-        $current['data'] = $current['target'] . ' ' . $current['port'];
-      }
-      unset($current);
-    }
-    elseif ($record[1] == 'TXT') {
-      foreach ($currents as &$current) {
-        unset($current);
-      }
-      unset($current);
-    }
-    elseif ($record[1] == 'AAAA') {
-      foreach ($currents as &$current) {
-        $current['ipv6'] = expand_ipv6($current['ipv6']);
-      }
-    }
+  if (!empty($dkim = dkim('details', $domain))) {
+    $records[] = array(
+      $dkim['dkim_selector'] . '._domainkey.' . $domain,
+      'TXT',
+      $dkim['dkim_txt']
+    );
   }
 
-  if ($record[1] == 'CNAME' && count($currents) == 0) {
-    // A and AAAA are also valid instead of CNAME
-    $a = dns_get_record($record[0], DNS_A);
-    $cname = dns_get_record($record[2], DNS_A);
-    if (count($a) > 0 && count($cname) > 0) {
-      if ($a[0]['ip'] == $cname[0]['ip']) {
-        $currents = array(array('host' => $record[0], 'class' => 'IN', 'type' => 'CNAME', 'target' => $record[2]));
-        $aaaa = dns_get_record($record[0], DNS_AAAA);
-        $cname = dns_get_record($record[2], DNS_AAAA);
-        if (count($aaaa) == 0 || count($cname) == 0 || expand_ipv6($aaaa[0]['ipv6']) != expand_ipv6($cname[0]['ipv6'])) {
-          $currents[0]['target'] = expand_ipv6($aaaa[0]['ipv6']) . ' <sup>1</sup>';
-        }
-      }
-      else {
-        $currents = array(array('host' => $record[0], 'class' => 'IN', 'type' => 'CNAME', 'target' => $a[0]['ip'] . ' <sup>1</sup>'));
-      }
-    }
-  }
-
-  foreach ($currents as &$current) {
-    if ($current['type'] == 'TXT' &&
-      stripos($current['txt'], 'v=dmarc') === 0 &&
-      $record[2] == $dmarc_link) {
-        $current['txt'] = str_replace(' ', '', $current['txt']);
-        $state = $current[$data_field[$current['type']]] . state_optional;
-    }
-    elseif ($current['type'] == 'TXT' &&
-      stripos($current['txt'], 'v=spf') === 0 &&
-      $record[2] == $spf_link) {
-        $state = state_nomatch;
-        $rslt = get_spf_allowed_hosts($record[0]);
-        if(in_array($ip, $rslt) && in_array(expand_ipv6($ip6), $rslt)){
-            $state = state_good;
-        }
-        $state .= '<br />' . $current[$data_field[$current['type']]].state_optional;
-    }
-    elseif ($current['type'] == 'TXT' &&
-      stripos($current['txt'], 'v=dkim') === 0 &&
-      stripos($record[2], 'v=dkim') === 0) {
-        preg_match('/v=DKIM1;.*k=rsa;.*p=([^;]*).*/i', $current[$data_field[$current['type']]], $dkim_matches_current);
-        preg_match('/v=DKIM1;.*k=rsa;.*p=([^;]*).*/i', $record[2], $dkim_matches_good);
-        if ($dkim_matches_current[1] == $dkim_matches_good[1]) {
-          $state = state_good;
-        }
-    }
-    elseif ($current['type'] != 'TXT' &&
-      isset($data_field[$current['type']]) && $state != state_good) {
-        $state = state_nomatch;
-        if ($current[$data_field[$current['type']]] == $record[2]) {
-          $state = state_good;
-        }
-    }
-  }
-  unset($current);
-
-  if (isset($record[3]) &&
-    $record[3] == state_optional &&
-    ($state == state_missing || $state == state_nomatch)) {
-      $state = state_optional;
-  }
-  
-  if ($state == state_nomatch) {
-    $state = array();
-    foreach ($currents as $current) {
-      $state[] = $current[$data_field[$current['type']]];
-    }
-    $state = implode('<br />', $state);
-  }
-  echo sprintf('<tr>
-    <td>%s</td>
-    <td>%s</td>
-    <td class="dns-found">%s</td>
-    <td class="dns-recommended">%s</td>
-  </tr>', $record[0], $record[1], $record[2], $state);
-  $record[3] = explode('<br />', $state);
-}
-unset($record);
-
-$dns_data = sprintf("\$ORIGIN %s.\n", $domain);
-foreach ($records as $record) {
-  if ($domain == substr($record[0], -strlen($domain))) {
-    $label = substr($record[0], 0, -strlen($domain)-1);
-    $val = $record[2];
-    if (strlen($label) == 0) {
-      $label = "@";
-    }
-    $vals = array();
-    if (strpos($val, "<a") !== FALSE) {
-      if(is_array($record[3]) && count($record[3]) == 1 && $record[3][0] == state_optional) {
-        $record[3][0] = "**TODO**";
-        $label = ';' . $label;
-      }
-      foreach ($record[3] as $val) {
-        $val = str_replace(state_optional, '', $val);
-        $val = str_replace(state_good, '', $val);
-        if (strlen($val) > 0) {
-          $vals[] = sprintf("%s\tIN\t%s\t%s\n", $label, $record[1], $val);
-        }
+  if (!in_array($domain, $alias_domains)) {
+    $current_records = dns_get_record('_pop3._tcp.' . $domain, DNS_SRV);
+    if (count($current_records) == 0 || $current_records[0]['target'] != '') {
+      if ($autodiscover_config['pop3']['tlsport'] != '110') {
+        $records[] = array(
+          '_pop3._tcp.' . $domain,
+          'SRV',
+          $autodiscover_config['pop3']['server'] . ' ' . $autodiscover_config['pop3']['tlsport']
+        );
       }
     }
     else {
-      $vals[] = sprintf("%s\tIN\t%s\t%s\n", $label, $record[1], $val);
+      $records[] = array(
+        '_pop3._tcp.' . $domain,
+        'SRV',
+        '. 0'
+      );
     }
-    foreach ($vals as $val) {
-      $dns_data .= str_replace($domain, $domain . '.', $val);
+
+    $current_records = dns_get_record('_pop3s._tcp.' . $domain, DNS_SRV);
+
+    if (count($current_records) == 0 || $current_records[0]['target'] != '') {
+      if ($autodiscover_config['pop3']['port'] != '995') {
+        $records[] = array(
+          '_pop3s._tcp.' . $domain,
+          'SRV',
+          $autodiscover_config['pop3']['server'] . ' ' . $autodiscover_config['pop3']['port']
+        );
+      }
+    }
+    else {
+      $records[] = array(
+        '_pop3s._tcp.' . $domain,
+        'SRV',
+        '. 0'
+      );
+    }
+
+    if ($autodiscover_config['imap']['tlsport'] != '143') {
+      $records[] = array(
+        '_imap._tcp.' . $domain,
+        'SRV',
+        $autodiscover_config['imap']['server'] . ' ' . $autodiscover_config['imap']['tlsport']
+      );
+    }
+
+    if ($autodiscover_config['imap']['port'] != '993') {
+      $records[] = array(
+        '_imaps._tcp.' . $domain,
+        'SRV',
+        $autodiscover_config['imap']['server'] . ' ' . $autodiscover_config['imap']['port']
+      );
+    }
+
+    if ($autodiscover_config['smtp']['tlsport'] != '587') {
+      $records[] = array(
+        '_submission._tcp.' . $domain,
+        'SRV',
+        $autodiscover_config['smtp']['server'] . ' ' . $autodiscover_config['smtp']['tlsport']
+      );
+    }
+
+    if ($autodiscover_config['smtp']['port'] != '465') {
+      $records[] = array(
+        '_smtps._tcp.' . $domain,
+        'SRV',
+        $autodiscover_config['smtp']['server'] . ' ' . $autodiscover_config['smtp']['port']
+      );
+    }
+
+    if ($autodiscover_config['sieve']['port'] != '4190') {
+      $records[] = array(
+        '_sieve._tcp.' . $domain,
+        'SRV',
+        $autodiscover_config['sieve']['server'] . ' ' . $autodiscover_config['sieve']['port']
+      );
     }
   }
-}
 
-?>
-  </table>
-  <a id='download-zonefile' data-zonefile="<?=base64_encode($dns_data);?>" download='<?=$_GET['domain'];?>.txt' type='text/csv'>Download</a>
-  <script>
+  $record_types = array(
+    'A' => DNS_A,
+    'AAAA' => DNS_AAAA,
+    'CNAME' => DNS_CNAME,
+    'MX' => DNS_MX,
+    'PTR' => DNS_PTR,
+    'SRV' => DNS_SRV,
+    'TXT' => DNS_TXT,
+  );
+
+  $data_field = array(
+    'A' => 'ip',
+    'AAAA' => 'ipv6',
+    'CNAME' => 'target',
+    'MX' => 'target',
+    'PTR' => 'target',
+    'SRV' => 'data',
+    'TLSA' => 'data',
+    'TXT' => 'txt',
+  );
+
+  ?>
+  <div class="table-responsive" id="dnstable">
+    <table class="table table-striped">
+      <tr>
+        <th><?=$lang['diagnostics']['dns_records_name'];?></th>
+        <th><?=$lang['diagnostics']['dns_records_type'];?></th>
+        <th><?=$lang['diagnostics']['dns_records_data'];?></th>
+        <th><?=$lang['diagnostics']['dns_records_status'];?></th>
+      </tr>
+      <?php
+      foreach ($records as &$record) {
+        $record[1] = strtoupper($record[1]);
+        $state = state_optional;
+
+        if ($record[1] == 'TLSA') {
+          $currents = dns_get_record($record[0], 52, $_, $_, TRUE);
+          foreach ($currents as &$current) {
+            $current['type'] = 'TLSA';
+            $current['cert_usage'] = hexdec(bin2hex($current['data'][0]));
+            $current['selector'] = hexdec(bin2hex($current['data'][1]));
+            $current['match_type'] = hexdec(bin2hex($current['data'][2]));
+            $current['cert_data'] = bin2hex(substr($current['data'], 3));
+            $current['data'] = $current['cert_usage'] . ' ' . $current['selector'] . ' ' . $current['match_type'] . ' ' . $current['cert_data'];
+          }
+          unset($current);
+        }
+        else {
+          $currents = dns_get_record($record[0], $record_types[$record[1]]);
+          if ($record[0] == $mailcow_hostname && ($record[1] == "A" || $record[1] == "AAAA")) {
+            if (!empty(dns_get_record($record[0], DNS_CNAME))) {
+              $currents[0]['ip'] = state_missing . ' <b>(CNAME)</b>';
+              $currents[0]['ipv6'] = state_missing . ' <b>(CNAME)</b>';
+            }
+          }
+          if ($record[1] == 'SRV') {
+            foreach ($currents as &$current) {
+              if ($current['target'] == '') {
+                $current['target'] = '.';
+                $current['port'] = '0';
+              }
+              $current['data'] = $current['target'] . ' ' . $current['port'];
+            }
+            unset($current);
+          }
+          elseif ($record[1] == 'TXT') {
+            foreach ($currents as &$current) {
+              unset($current);
+            }
+            unset($current);
+          }
+          elseif ($record[1] == 'AAAA') {
+            foreach ($currents as &$current) {
+              $current['ipv6'] = expand_ipv6($current['ipv6']);
+            }
+          }
+        }
+
+        if ($record[1] == 'CNAME' && count($currents) == 0) {
+          // A and AAAA are also valid instead of CNAME
+          $a = dns_get_record($record[0], DNS_A);
+          $cname = dns_get_record($record[2], DNS_A);
+          if (count($a) > 0 && count($cname) > 0) {
+            if ($a[0]['ip'] == $cname[0]['ip']) {
+              $currents = array(
+                array(
+                  'host' => $record[0],
+                  'class' => 'IN',
+                  'type' => 'CNAME',
+                  'target' => $record[2]
+                )
+              );
+              $aaaa = dns_get_record($record[0], DNS_AAAA);
+              $cname = dns_get_record($record[2], DNS_AAAA);
+              if (count($aaaa) == 0 || count($cname) == 0 || expand_ipv6($aaaa[0]['ipv6']) != expand_ipv6($cname[0]['ipv6'])) {
+                $currents[0]['target'] = expand_ipv6($aaaa[0]['ipv6']) . ' <sup>1</sup>';
+              }
+            }
+            else {
+              $currents = array(
+                array(
+                  'host' => $record[0],
+                  'class' => 'IN',
+                  'type' => 'CNAME',
+                  'target' => $a[0]['ip'] . ' <sup>1</sup>'
+                )
+              );
+            }
+          }
+        }
+
+        foreach ($currents as &$current) {
+          if ($current['type'] == 'TXT' &&
+          stripos($current['txt'], 'v=dmarc') === 0 &&
+          $record[2] == $dmarc_link) {
+            $current['txt'] = str_replace(' ', '', $current['txt']);
+            $state = $current[$data_field[$current['type']]] . state_optional;
+          }
+          elseif ($current['type'] == 'TXT' &&
+          stripos($current['txt'], 'v=spf') === 0 &&
+          $record[2] == $spf_link) {
+            $state = state_nomatch;
+            $rslt = get_spf_allowed_hosts($record[0], true);
+            if (in_array($ip, $rslt) && in_array(expand_ipv6($ip6), $rslt)) {
+              $state = state_good;
+            }
+            $state .= '<br />' . $current[$data_field[$current['type']]] . state_optional;
+          }
+          elseif ($current['type'] == 'TXT' &&
+          stripos($current['txt'], 'v=dkim') === 0 &&
+          stripos($record[2], 'v=dkim') === 0) {
+            preg_match('/v=DKIM1;.*k=rsa;.*p=([^;]*).*/i', $current[$data_field[$current['type']]], $dkim_matches_current);
+            preg_match('/v=DKIM1;.*k=rsa;.*p=([^;]*).*/i', $record[2], $dkim_matches_good);
+            if ($dkim_matches_current[1] == $dkim_matches_good[1]) {
+              $state = state_good;
+            }
+          }
+          elseif ($current['type'] != 'TXT' &&
+          isset($data_field[$current['type']]) && $state != state_good) {
+            $state = state_nomatch;
+            if ($current[$data_field[$current['type']]] == $record[2]) {
+              $state = state_good;
+            }
+          }
+        }
+        unset($current);
+
+        if (isset($record[3]) &&
+        $record[3] == state_optional &&
+        ($state == state_missing || $state == state_nomatch)) {
+          $state = state_optional;
+        }
+
+        if ($state == state_nomatch) {
+          $state = array();
+          foreach ($currents as $current) {
+            $state[] = $current[$data_field[$current['type']]];
+          }
+          $state = implode('<br />', $state);
+        }
+        echo sprintf('
+        <tr>
+          <td>%s</td>
+          <td>%s</td>
+          <td class="dns-found">%s</td>
+          <td class="dns-recommended">%s</td>
+        </tr>', $record[0], $record[1], $record[2], $state);
+        $record[3] = explode('<br />', $state);
+      }
+
+      unset($record);
+
+      $dns_data = sprintf("\$ORIGIN %s.\n", $domain);
+      foreach ($records as $record) {
+        if ($domain == substr($record[0], -strlen($domain))) {
+          $label = substr($record[0], 0, -strlen($domain)-1);
+          $val = $record[2];
+
+          if (strlen($label) == 0) {
+            $label = "@";
+          }
+
+          $vals = array();
+          if (strpos($val, "<a") !== FALSE) {
+            if (is_array($record[3]) && count($record[3]) == 1 && $record[3][0] == state_optional) {
+              $record[3][0] = "**TODO**";
+              $label = ';' . $label;
+            }
+            foreach ($record[3] as $val) {
+              $val = str_replace(state_optional, '', $val);
+              $val = str_replace(state_good, '', $val);
+              if (strlen($val) > 0) {
+                $vals[] = sprintf("%s\tIN\t%s\t%s\n", $label, $record[1], $val);
+              }
+            }
+          }
+          else {
+            $vals[] = sprintf("%s\tIN\t%s\t%s\n", $label, $record[1], $val);
+          }
+
+          foreach ($vals as $val) {
+            $dns_data .= str_replace($domain, $domain . '.', $val);
+          }
+        }
+      }
+      ?>
+    </table>
+    <a id='download-zonefile' class="btn btn-sm btn-default visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline" style="margin-top:10px" data-zonefile="<?=base64_encode($dns_data);?>" download='<?=$_GET['domain'];?>.txt' type='text/csv'>Download</a>
+    <script>
       var zonefile_dl_link = document.getElementById('download-zonefile');
       var zonefile = atob(zonefile_dl_link.getAttribute('data-zonefile'));
       var data = new Blob([zonefile]);
       var download_zonefile_link = document.getElementById('download-zonefile');
       download_zonefile_link.href = URL.createObjectURL(data);
-  </script>
-</div>
-<p class="help-block">
-<sup>1</sup> <?=$lang['diagnostics']['cname_from_a'];?><br />
-<sup>2</sup> <?=$lang['diagnostics']['optional'];?>
-</p>
-<?php
-} else {
+    </script>
+  </div>
+  <p class="help-block">
+    <sup>1</sup> <?=$lang['diagnostics']['cname_from_a'];?><br />
+    <sup>2</sup> <?=$lang['diagnostics']['optional'];?>
+  </p>
+  <?php
+}
+else {
   echo "Session invalid";
   exit();
 }
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/ajax/transport_check.php b/mailcow/src/mailcow-dockerized/data/web/inc/ajax/transport_check.php
index 7921687..aa429ed 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/ajax/transport_check.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/ajax/transport_check.php
@@ -15,6 +15,12 @@
   else {

     $mail_from = "relay@example.org";

   }

+  if (isset($_GET['mail_rcpt']) && filter_var($_GET['mail_rcpt'], FILTER_VALIDATE_EMAIL)) {

+    $mail_rcpt = $_GET['mail_rcpt'];

+  }

+  else {

+    $mail_rcpt = "null@hosted.mailcow.de";

+  }

   if ($transport_type == 'transport-map') {

     $transport_details = transport('details', $transport_id);

     $nexthop = $transport_details['nexthop'];

@@ -36,7 +42,7 @@
       $port = substr($hostname_w_port, strrpos($hostname_w_port, ':') + 1);

       $hostname = preg_replace('/'. preg_quote(':' . $port, '/') . '$/', '', $hostname_w_port);

       if (filter_var($hostname, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {

-        $hostname = '[' . $hostname . ']:';

+        $hostname = '[' . $hostname . ']';

       }

     }

     else {

@@ -130,7 +136,7 @@
     $mail->Port = $port;

     $mail->setFrom($mail_from, 'Mailer');

     $mail->Subject = 'A subject for a SMTP test';

-    $mail->addAddress($RELAY_TO, 'Joe Null');

+    $mail->addAddress($mail_rcpt, 'Joe Null');

     $mail->Body = 'This is our test body';

     $mail->send();

   }

diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/footer.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/footer.inc.php
index 8738cc6..f99c86d 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/footer.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/footer.inc.php
@@ -79,6 +79,7 @@
     foreach($alertbox_log_parser as $log) {
       $alerts[$log['type']][] = $log['msg'];
     }
+    $alerts = array_filter(array_unique($alerts));
     foreach($alerts as $alert_type => $alert_msg) {
   ?>
   mailcow_alert_box(<?=json_encode(implode('<hr class="alert-hr">', $alert_msg));?>, <?=$alert_type;?>);
@@ -93,7 +94,7 @@
     backdrop: 'static',
     keyboard: false
   });
-  $('#u2f_status_auth').html('<p><span class="glyphicon glyphicon-refresh glyphicon-spin"></span> ' + lang_tfa.init_u2f + '</p>');
+  $('#u2f_status_auth').html('<p><i class="bi bi-arrow-repeat icon-spin"></i> ' + lang_tfa.init_u2f + '</p>');
   $('#ConfirmTFAModal').on('shown.bs.modal', function(){
       $(this).find('input[name=token]').focus();
       // If U2F
@@ -235,7 +236,7 @@
       $("#start_u2f_register").click(function(){
         $('#u2f_return_code').html('');
         $('#u2f_return_code').hide();
-        $('#u2f_status_reg').html('<p><span class="glyphicon glyphicon-refresh glyphicon-spin"></span> ' + lang_tfa.init_u2f + '</p>');
+        $('#u2f_status_reg').html('<p><i class="bi bi-arrow-repeat icon-spin"></i> ' + lang_tfa.init_u2f + '</p>');
         $.ajax({
           type: "GET",
           cache: false,
@@ -304,5 +305,12 @@
 </body>
 </html>
 <?php
+if (isset($_SESSION['mailcow_cc_api'])) {
+  session_regenerate_id(true);
+  session_unset();
+  session_destroy();
+  session_write_close();
+  header("Location: /");
+}
 $stmt = null;
 $pdo = null;
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/functions.address_rewriting.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/functions.address_rewriting.inc.php
index 51cdd73..8193c05 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/functions.address_rewriting.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/functions.address_rewriting.inc.php
@@ -1,5 +1,5 @@
 <?php

-function bcc($_action, $_data = null, $attr = null) {

+function bcc($_action, $_data = null, $_attr = null) {

 	global $pdo;

 	global $lang;

   if ($_SESSION['mailcow_cc_role'] != "admin" && $_SESSION['mailcow_cc_role'] != "domainadmin") {

@@ -48,7 +48,8 @@
         $local_dest_sane = '@' . idn_to_ascii($local_dest, 0, INTL_IDNA_VARIANT_UTS46);

       }

       elseif (filter_var($local_dest, FILTER_VALIDATE_EMAIL)) {

-        if (!hasMailboxObjectAccess($_SESSION['mailcow_cc_username'], $_SESSION['mailcow_cc_role'], $local_dest)) {

+        $mailbox = mailbox('get', 'mailbox_details', $local_dest);

+        if ($mailbox === false && array_key_exists($local_dest, array_merge($direct_aliases, $shared_aliases)) === false) {

           $_SESSION['return'][] = array(

             'type' => 'danger',

             'log' => array(__FUNCTION__, $_action, $_data, $_attr),

@@ -56,10 +57,16 @@
           );

           return false;

         }

-        $domain = mailbox('get', 'mailbox_details', $local_dest)['domain'];

-        if (empty($domain)) {

-          return false;

+        if (!hasMailboxObjectAccess($_SESSION['mailcow_cc_username'], $_SESSION['mailcow_cc_role'], $local_dest) &&

+          !hasAliasObjectAccess($_SESSION['mailcow_cc_username'], $_SESSION['mailcow_cc_role'], $local_dest)) {

+            $_SESSION['return'][] = array(

+              'type' => 'danger',

+              'log' => array(__FUNCTION__, $_action, $_data, $_attr),

+              'msg' => 'access_denied'

+            );

+            return false;

         }

+        $domain = idn_to_ascii(substr(strstr($local_dest, '@'), 1), 0, INTL_IDNA_VARIANT_UTS46);

         $local_dest_sane = $local_dest;

       }

       else {

@@ -128,7 +135,6 @@
           );

           continue;

         }

-        $active = intval($_data['active']);

         if (!filter_var($bcc_dest, FILTER_VALIDATE_EMAIL)) {

           $_SESSION['return'][] = array(

             'type' => 'danger',

diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/functions.admin.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/functions.admin.inc.php
index bb0400e..af1474c 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/functions.admin.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/functions.admin.inc.php
@@ -48,40 +48,17 @@
           return false;

         }

       }

-      if (!empty($password) && !empty($password2)) {

-        if (!preg_match('/' . $GLOBALS['PASSWD_REGEP'] . '/', $password)) {

-          $_SESSION['return'][] = array(

-            'type' => 'danger',

-            'log' => array(__FUNCTION__, $_action, $_data_log),

-            'msg' => 'password_complexity'

-          );

-          return false;

-        }

-        if ($password != $password2) {

-          $_SESSION['return'][] = array(

-            'type' => 'danger',

-            'log' => array(__FUNCTION__, $_action, $_data_log),

-            'msg' => 'password_mismatch'

-          );

-          return false;

-        }

-        $password_hashed = hash_password($password);

-        $stmt = $pdo->prepare("INSERT INTO `admin` (`username`, `password`, `superadmin`, `active`)

-          VALUES (:username, :password_hashed, '1', :active)");

-        $stmt->execute(array(

-          ':username' => $username,

-          ':password_hashed' => $password_hashed,

-          ':active' => $active

-        ));

-      }

-      else {

-        $_SESSION['return'][] = array(

-          'type' => 'danger',

-          'log' => array(__FUNCTION__, $_action, $_data_log),

-          'msg' => 'password_empty'

-        );

+      if (password_check($password, $password2) !== true) {

         return false;

       }

+      $password_hashed = hash_password($password_new);

+      $stmt = $pdo->prepare("INSERT INTO `admin` (`username`, `password`, `superadmin`, `active`)

+        VALUES (:username, :password_hashed, '1', :active)");

+      $stmt->execute(array(

+        ':username' => $username,

+        ':password_hashed' => $password_hashed,

+        ':active' => $active

+      ));

       $_SESSION['return'][] = array(

         'type' => 'success',

         'log' => array(__FUNCTION__, $_action, $_data_log),

@@ -144,22 +121,9 @@
             continue;

           }

         }

-        if (!empty($password) && !empty($password2)) {

-          if (!preg_match('/' . $GLOBALS['PASSWD_REGEP'] . '/', $password)) {

-            $_SESSION['return'][] = array(

-              'type' => 'danger',

-              'log' => array(__FUNCTION__, $_action, $_data_log),

-              'msg' => 'password_complexity'

-            );

-            continue;

-          }

-          if ($password != $password2) {

-            $_SESSION['return'][] = array(

-              'type' => 'danger',

-              'log' => array(__FUNCTION__, $_action, $_data_log),

-              'msg' => 'password_mismatch'

-            );

-            continue;

+        if (!empty($password)) {

+          if (password_check($password, $password2) !== true) {

+            return false;

           }

           $password_hashed = hash_password($password);

           $stmt = $pdo->prepare("UPDATE `admin` SET `username` = :username_new, `active` = :active, `password` = :password_hashed WHERE `username` = :username");

diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/functions.app_passwd.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/functions.app_passwd.inc.php
index c4b0026..8c8ad18 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/functions.app_passwd.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/functions.app_passwd.inc.php
@@ -23,9 +23,9 @@
   }

   switch ($_action) {

     case 'add':

-      $app_name = trim($_data['app_name']);

-      $password     = $_data['app_passwd'];

-      $password2    = $_data['app_passwd2'];

+      $app_name = htmlspecialchars(trim($_data['app_name']));

+      $password = $_data['app_passwd'];

+      $password2 = $_data['app_passwd2'];

       $active = intval($_data['active']);

       $domain = mailbox('get', 'mailbox_details', $username)['domain'];

       if (empty($domain)) {

@@ -94,7 +94,7 @@
           );

           continue;

         }

-        $app_name = trim($app_name);

+        $app_name = htmlspecialchars(trim($app_name));

         if (!empty($password) && !empty($password2)) {

           if (!preg_match('/' . $GLOBALS['PASSWD_REGEP'] . '/', $password)) {

             $_SESSION['return'][] = array(

@@ -198,6 +198,7 @@
         $app_passwd_data = array();

         return false;

       }

+      $app_passwd_data['name'] = htmlspecialchars(trim($app_passwd_data['name']));

       return $app_passwd_data;

     break;

   }

diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/functions.customize.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/functions.customize.inc.php
index f4c74d8..d594822 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/functions.customize.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/functions.customize.inc.php
@@ -207,7 +207,7 @@
           try {

             $data['title_name'] = ($title_name = $redis->get('TITLE_NAME')) ? $title_name : 'mailcow UI';

             $data['main_name'] = ($main_name = $redis->get('MAIN_NAME')) ? $main_name : 'mailcow UI';

-            $data['apps_name'] = ($apps_name = $redis->get('APPS_NAME')) ? $apps_name : 'mailcow Apps';

+            $data['apps_name'] = ($apps_name = $redis->get('APPS_NAME')) ? $apps_name : $lang['header']['apps'];

             $data['help_text'] = ($help_text = $redis->get('HELP_TEXT')) ? $help_text : false;

             if (!empty($redis->get('UI_IMPRESS'))) {

               $redis->set('UI_FOOTER', $redis->get('UI_IMPRESS'));

diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/functions.dkim.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/functions.dkim.inc.php
index 2a19ff0..33ee49f 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/functions.dkim.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/functions.dkim.inc.php
@@ -1,8 +1,8 @@
 <?php

 

 function dkim($_action, $_data = null, $privkey = false) {

-	global $redis;

-	global $lang;

+  global $redis;

+  global $lang;

   switch ($_action) {

     case 'add':

       if ($_SESSION['mailcow_cc_role'] != "admin") {

@@ -13,7 +13,7 @@
         );

         return false;

       }

-      $key_length	= intval($_data['key_size']);

+      $key_length = intval($_data['key_size']);

       $dkim_selector = (isset($_data['dkim_selector'])) ? $_data['dkim_selector'] : 'dkim';

       $domains = array_map('trim', preg_split( "/( |,|;|\n)/", $_data['domains']));

       $domains = array_filter($domains);

@@ -21,7 +21,7 @@
         if (!is_valid_domain_name($domain) || !is_numeric($key_length)) {

           $_SESSION['return'][] = array(

             'type' => 'danger',

-            'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+            'log' => array(__FUNCTION__, $_action, $_data),

             'msg' => array('dkim_domain_or_sel_invalid', $domain)

           );

           continue;

@@ -29,7 +29,7 @@
         if ($redis->hGet('DKIM_PUB_KEYS', $domain)) {

           $_SESSION['return'][] = array(

             'type' => 'danger',

-            'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+            'log' => array(__FUNCTION__, $_action, $_data),

             'msg' => array('dkim_domain_or_sel_invalid', $domain)

           );

           continue;

@@ -37,7 +37,7 @@
         if (!ctype_alnum(str_replace(['-', '_'], '', $dkim_selector))) {

           $_SESSION['return'][] = array(

             'type' => 'danger',

-            'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+            'log' => array(__FUNCTION__, $_action, $_data),

             'msg' => array('dkim_domain_or_sel_invalid', $domain)

           );

           continue;

@@ -62,7 +62,7 @@
           catch (RedisException $e) {

             $_SESSION['return'][] = array(

               'type' => 'danger',

-              'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+              'log' => array(__FUNCTION__, $_action, $_data),

               'msg' => array('redis_error', $e)

             );

             continue;

@@ -76,7 +76,7 @@
             catch (RedisException $e) {

               $_SESSION['return'][] = array(

                 'type' => 'danger',

-                'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+                'log' => array(__FUNCTION__, $_action, $_data),

                 'msg' => array('redis_error', $e)

               );

               continue;

@@ -84,14 +84,14 @@
           }

           $_SESSION['return'][] = array(

             'type' => 'success',

-            'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+            'log' => array(__FUNCTION__, $_action, $_data),

             'msg' => array('dkim_added', $domain)

           );

         }

         else {

           $_SESSION['return'][] = array(

             'type' => 'danger',

-            'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+            'log' => array(__FUNCTION__, $_action, $_data),

             'msg' => array('dkim_domain_or_sel_invalid', $domain)

           );

           continue;

@@ -102,7 +102,7 @@
       if ($_SESSION['mailcow_cc_role'] != "admin") {

         $_SESSION['return'][] = array(

           'type' => 'danger',

-          'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+          'log' => array(__FUNCTION__, $_action, $_data),

           'msg' => 'access_denied'

         );

         return false;

@@ -112,7 +112,7 @@
       if (empty($from_domain_dkim)) {

         $_SESSION['return'][] = array(

           'type' => 'danger',

-          'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+          'log' => array(__FUNCTION__, $_action, $_data),

           'msg' => array('dkim_domain_or_sel_invalid', $from_domain)

         );

         continue;

@@ -128,14 +128,14 @@
         catch (RedisException $e) {

           $_SESSION['return'][] = array(

             'type' => 'danger',

-            'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+            'log' => array(__FUNCTION__, $_action, $_data),

             'msg' => array('redis_error', $e)

           );

           continue;

         }

         $_SESSION['return'][] = array(

           'type' => 'success',

-          'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+          'log' => array(__FUNCTION__, $_action, $_data),

           'msg' => array('dkim_duplicated', $from_domain, $to_domain)

         );

       }

@@ -144,7 +144,7 @@
       if ($_SESSION['mailcow_cc_role'] != "admin") {

         $_SESSION['return'][] = array(

           'type' => 'danger',

-          'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+          'log' => array(__FUNCTION__, $_action, $_data),

           'msg' => 'access_denied'

         );

         return false;

@@ -156,7 +156,7 @@
       if ($ssl_error = openssl_error_string()) {

         $_SESSION['return'][] = array(

           'type' => 'danger',

-          'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+          'log' => array(__FUNCTION__, $_action, $_data),

           'msg' => array('private_key_error', $ssl_error)

         );

         return false;

@@ -167,13 +167,13 @@
       array_shift($pem_public_key_array);

       array_pop($pem_public_key_array);

       // Implode as single string

-      $pem_public_key = implode('', $pem_public_key_array);

+      $pem_public_key = implode('', (array)$pem_public_key_array);

       $dkim_selector = (isset($_data['dkim_selector'])) ? $_data['dkim_selector'] : 'dkim';

-      $domain	= $_data['domain'];

+      $domain = $_data['domain'];

       if (!is_valid_domain_name($domain)) {

         $_SESSION['return'][] = array(

           'type' => 'danger',

-          'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+          'log' => array(__FUNCTION__, $_action, $_data),

           'msg' => array('dkim_domain_or_sel_invalid', $domain)

         );

         return false;

@@ -182,7 +182,7 @@
         if ($overwrite_existing == 0) {

           $_SESSION['return'][] = array(

             'type' => 'danger',

-            'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+            'log' => array(__FUNCTION__, $_action, $_data),

             'msg' => array('dkim_domain_or_sel_exists', $domain)

           );

           return false;

@@ -191,13 +191,13 @@
       if (!ctype_alnum($dkim_selector)) {

         $_SESSION['return'][] = array(

           'type' => 'danger',

-          'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+          'log' => array(__FUNCTION__, $_action, $_data),

           'msg' => array('dkim_domain_or_sel_invalid', $domain)

         );

         return false;

       }

       try {

-        dkim('delete', $domain);

+        dkim('delete', (array)$domain);

         $redis->hSet('DKIM_PUB_KEYS', $domain, $pem_public_key);

         $redis->hSet('DKIM_SELECTORS', $domain, $dkim_selector);

         $redis->hSet('DKIM_PRIV_KEYS', $dkim_selector . '.' . $domain, $private_key_normalized);

@@ -205,7 +205,7 @@
       catch (RedisException $e) {

         $_SESSION['return'][] = array(

           'type' => 'danger',

-          'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+          'log' => array(__FUNCTION__, $_action, $_data),

           'msg' => array('redis_error', $e)

         );

         return false;

@@ -218,14 +218,14 @@
       catch (RedisException $e) {

         $_SESSION['return'][] = array(

           'type' => 'danger',

-          'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+          'log' => array(__FUNCTION__, $_action, $_data),

           'msg' => array('redis_error', $e)

         );

         return false;

       }

       $_SESSION['return'][] = array(

         'type' => 'success',

-        'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+        'log' => array(__FUNCTION__, $_action, $_data),

         'msg' => array('dkim_added', $domain)

       );

       return true;

@@ -251,7 +251,7 @@
         }

         if ($GLOBALS['SPLIT_DKIM_255'] === true) {

           $dkim_txt_tmp = str_split('v=DKIM1;k=rsa;t=s;s=email;p=' . $redis_dkim_key_data, 255);

-          $dkimdata['dkim_txt'] = sprintf('"%s"', implode('" "', $dkim_txt_tmp ) );

+          $dkimdata['dkim_txt'] = sprintf('"%s"', implode('" "', (array)$dkim_txt_tmp ) );

         }

         else {

           $dkimdata['dkim_txt'] = 'v=DKIM1;k=rsa;t=s;s=email;p=' . $redis_dkim_key_data;

@@ -270,7 +270,7 @@
       if ($_SESSION['mailcow_cc_role'] != "admin") {

         $_SESSION['return'][] = array(

           'type' => 'danger',

-          'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+          'log' => array(__FUNCTION__, $_action, $_data),

           'msg' => 'access_denied'

         );

         return false;

@@ -286,7 +286,7 @@
       if ($_SESSION['mailcow_cc_role'] != "admin") {

         $_SESSION['return'][] = array(

           'type' => 'danger',

-          'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+          'log' => array(__FUNCTION__, $_action, $_data),

           'msg' => 'access_denied'

         );

         return false;

@@ -295,7 +295,7 @@
         if (!is_valid_domain_name($domain)) {

           $_SESSION['return'][] = array(

             'type' => 'danger',

-            'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+            'log' => array(__FUNCTION__, $_action, $_data),

             'msg' => array('dkim_domain_or_sel_invalid', $domain)

           );

           continue;

@@ -309,14 +309,14 @@
         catch (RedisException $e) {

           $_SESSION['return'][] = array(

             'type' => 'danger',

-            'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+            'log' => array(__FUNCTION__, $_action, $_data),

             'msg' => array('redis_error', $e)

           );

           continue;

         }

         $_SESSION['return'][] = array(

           'type' => 'success',

-          'log' => array(__FUNCTION__, $_action, $_data, $privkey),

+          'log' => array(__FUNCTION__, $_action, $_data),

           'msg' => array('dkim_removed', htmlspecialchars($domain))

         );

       }

diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/functions.domain_admin.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/functions.domain_admin.inc.php
index 206b371..804c0f8 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/functions.domain_admin.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/functions.domain_admin.inc.php
@@ -65,61 +65,38 @@
           return false;

         }

       }

-      if (!empty($password) && !empty($password2)) {

-        if (!preg_match('/' . $GLOBALS['PASSWD_REGEP'] . '/', $password)) {

-          $_SESSION['return'][] = array(

-            'type' => 'danger',

-            'log' => array(__FUNCTION__, $_action, $_data_log),

-            'msg' => 'password_complexity'

-          );

-          return false;

-        }

-        if ($password != $password2) {

-          $_SESSION['return'][] = array(

-            'type' => 'danger',

-            'log' => array(__FUNCTION__, $_action, $_data_log),

-            'msg' => 'password_mismatch'

-          );

-          return false;

-        }

-        $password_hashed = hash_password($password);

-        $valid_domains = 0;

-        foreach ($domains as $domain) {

-          if (!is_valid_domain_name($domain) || mailbox('get', 'domain_details', $domain) === false) {

-            $_SESSION['return'][] = array(

-              'type' => 'danger',

-              'log' => array(__FUNCTION__, $_action, $_data_log),

-              'msg' => array('domain_invalid', htmlspecialchars($domain))

-            );

-            continue;

-          }

-          $valid_domains++;

-          $stmt = $pdo->prepare("INSERT INTO `domain_admins` (`username`, `domain`, `created`, `active`)

-              VALUES (:username, :domain, :created, :active)");

-          $stmt->execute(array(

-            ':username' => $username,

-            ':domain' => $domain,

-            ':created' => date('Y-m-d H:i:s'),

-            ':active' => $active

-          ));

-        }

-        if ($valid_domains != 0) {

-          $stmt = $pdo->prepare("INSERT INTO `admin` (`username`, `password`, `superadmin`, `active`)

-            VALUES (:username, :password_hashed, '0', :active)");

-          $stmt->execute(array(

-            ':username' => $username,

-            ':password_hashed' => $password_hashed,

-            ':active' => $active

-          ));

-        }

+      if (password_check($password, $password2) !== true) {

+        continue;

       }

-      else {

-        $_SESSION['return'][] = array(

-          'type' => 'danger',

-          'log' => array(__FUNCTION__, $_action, $_data_log),

-          'msg' => 'password_empty'

-        );

-        return false;

+      $password_hashed = hash_password($password);

+      $valid_domains = 0;

+      foreach ($domains as $domain) {

+        if (!is_valid_domain_name($domain) || mailbox('get', 'domain_details', $domain) === false) {

+          $_SESSION['return'][] = array(

+            'type' => 'danger',

+            'log' => array(__FUNCTION__, $_action, $_data_log),

+            'msg' => array('domain_invalid', htmlspecialchars($domain))

+          );

+          continue;

+        }

+        $valid_domains++;

+        $stmt = $pdo->prepare("INSERT INTO `domain_admins` (`username`, `domain`, `created`, `active`)

+            VALUES (:username, :domain, :created, :active)");

+        $stmt->execute(array(

+          ':username' => $username,

+          ':domain' => $domain,

+          ':created' => date('Y-m-d H:i:s'),

+          ':active' => $active

+        ));

+      }

+      if ($valid_domains != 0) {

+        $stmt = $pdo->prepare("INSERT INTO `admin` (`username`, `password`, `superadmin`, `active`)

+          VALUES (:username, :password_hashed, '0', :active)");

+        $stmt->execute(array(

+          ':username' => $username,

+          ':password_hashed' => $password_hashed,

+          ':active' => $active

+        ));

       }

       $stmt = $pdo->prepare("INSERT INTO `da_acl` (`username`) VALUES (:username)");

       $stmt->execute(array(

@@ -218,22 +195,9 @@
               ));

             }

           }

-          if (!empty($password) && !empty($password2)) {

-            if (!preg_match('/' . $GLOBALS['PASSWD_REGEP'] . '/', $password)) {

-              $_SESSION['return'][] = array(

-                'type' => 'danger',

-                'log' => array(__FUNCTION__, $_action, $_data_log),

-                'msg' => 'password_complexity'

-              );

-              continue;

-            }

-            if ($password != $password2) {

-              $_SESSION['return'][] = array(

-                'type' => 'danger',

-                'log' => array(__FUNCTION__, $_action, $_data_log),

-                'msg' => 'password_mismatch'

-              );

-              continue;

+          if (!empty($password)) {

+            if (password_check($password, $password2) !== true) {

+              return false;

             }

             $password_hashed = hash_password($password);

             $stmt = $pdo->prepare("UPDATE `admin` SET `username` = :username_new, `active` = :active, `password` = :password_hashed WHERE `username` = :username");

@@ -296,30 +260,15 @@
           );

           return false;

         }

-        if (!empty($password_new2) && !empty($password_new)) {

-          if ($password_new2 != $password_new) {

-            $_SESSION['return'][] = array(

-              'type' => 'danger',

-              'log' => array(__FUNCTION__, $_action, $_data_log),

-              'msg' => 'password_mismatch'

-            );

-            return false;

-          }

-          if (!preg_match('/' . $GLOBALS['PASSWD_REGEP'] . '/', $password_new)) {

-            $_SESSION['return'][] = array(

-              'type' => 'danger',

-              'log' => array(__FUNCTION__, $_action, $_data_log),

-              'msg' => 'password_complexity'

-            );

-            return false;

-          }

-          $password_hashed = hash_password($password_new);

-          $stmt = $pdo->prepare("UPDATE `admin` SET `password` = :password_hashed WHERE `username` = :username");

-          $stmt->execute(array(

-            ':password_hashed' => $password_hashed,

-            ':username' => $username

-          ));

+        if (password_check($password_new, $password_new2) !== true) {

+          return false;

         }

+        $password_hashed = hash_password($password_new);

+        $stmt = $pdo->prepare("UPDATE `admin` SET `password` = :password_hashed WHERE `username` = :username");

+        $stmt->execute(array(

+          ':password_hashed' => $password_hashed,

+          ':username' => $username

+        ));

         $_SESSION['return'][] = array(

           'type' => 'success',

           'log' => array(__FUNCTION__, $_action, $_data_log),

diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/functions.fail2ban.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/functions.fail2ban.inc.php
index 6f6b024..2a7f11e 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/functions.fail2ban.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/functions.fail2ban.inc.php
@@ -18,7 +18,7 @@
           }

           if (isset($tmp_wl_data)) {

             natsort($tmp_wl_data);

-            $f2b_options['whitelist'] = implode(PHP_EOL, $tmp_wl_data);

+            $f2b_options['whitelist'] = implode(PHP_EOL, (array)$tmp_wl_data);

           }

           else {

             $f2b_options['whitelist'] = "";

@@ -34,7 +34,7 @@
           }

           if (isset($tmp_bl_data)) {

             natsort($tmp_bl_data);

-            $f2b_options['blacklist'] = implode(PHP_EOL, $tmp_bl_data);

+            $f2b_options['blacklist'] = implode(PHP_EOL, (array)$tmp_bl_data);

           }

           else {

             $f2b_options['blacklist'] = "";

@@ -46,7 +46,11 @@
         $pb = $redis->hGetAll('F2B_PERM_BANS');

         if (is_array($pb)) {

           foreach ($pb as $key => $value) {

-            $f2b_options['perm_bans'][] = $key;

+            $f2b_options['perm_bans'][] = array(

+                'network'=>$key,

+                'ip' => strtok($key,'/')

+            );

+

           }

         }

         else {

@@ -61,6 +65,7 @@
             $f2b_options['active_bans'][] = array(

               'queued_for_unban' => $queued_for_unban,

               'network' => $network,

+              'ip' => strtok($network,'/'),

               'banned_until' => sprintf('%02dh %02dm %02ds', ($difference/3600), ($difference/60%60), $difference%60)

             );

           }

@@ -133,14 +138,6 @@
               $redis->Set('F2B_REGEX', json_encode($regex_array, JSON_UNESCAPED_SLASHES));

             }

           }

-          else {

-            $_SESSION['return'][] = array(

-              'type' => 'success',

-              'log' => array(__FUNCTION__, $_action, $_data_log),

-              'msg' => print_r($_data, true)

-            );

-            return false;

-          }

           $_SESSION['return'][] = array(

             'type' => 'success',

             'log' => array(__FUNCTION__, $_action, $_data_log),

diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/functions.fwdhost.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/functions.fwdhost.inc.php
index 5c511f4..d7ac256 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/functions.fwdhost.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/functions.fwdhost.inc.php
@@ -1,8 +1,8 @@
 <?php

 function fwdhost($_action, $_data = null) {

   require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/spf.inc.php';

-	global $redis;

-	global $lang;

+  global $redis;

+  global $lang;

   $_data_log = $_data;

   switch ($_action) {

     case 'add':

@@ -57,7 +57,7 @@
       $_SESSION['return'][] = array(

         'type' => 'success',

         'log' => array(__FUNCTION__, $_action, $_data_log),

-        'msg' => array('forwarding_host_added', htmlspecialchars(implode(', ', $hosts)))

+        'msg' => array('forwarding_host_added', htmlspecialchars(implode(', ', (array)$hosts)))

       );

     break;

     case 'edit':

@@ -180,4 +180,4 @@
       return $fwdhostdetails;

     break;

   }

-}
\ No newline at end of file
+}

diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/functions.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/functions.inc.php
index e3f2882..142a9fe 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/functions.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/functions.inc.php
@@ -13,6 +13,17 @@
     return false;

   }

 }

+function readable_random_string($length = 8) {

+  $string = '';

+  $vowels = array('a', 'e', 'i', 'o', 'u');

+  $consonants = array('b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z');

+  $max = $length / 2;

+  for ($i = 1; $i <= $max; $i++) {

+    $string .= $consonants[rand(0,19)];

+    $string .= $vowels[rand(0,4)];

+  }

+  return $string;

+}

 // Validates ips and cidrs

 function valid_network($network) {

   if (filter_var($network, FILTER_VALIDATE_IP)) {

@@ -88,40 +99,253 @@
   // in case default pass scheme is not defined, falling back to BLF-CRYPT.

   global $default_pass_scheme;

   $pw_hash = NULL;

-  switch (strtoupper($default_pass_scheme)) {

-    case "SSHA":

-      $salt_str = bin2hex(openssl_random_pseudo_bytes(8));

-      $pw_hash = "{SSHA}".base64_encode(hash('sha1', $password . $salt_str, true) . $salt_str);

-      break;

-    case "SSHA256":

-      $salt_str = bin2hex(openssl_random_pseudo_bytes(8));

-      $pw_hash = "{SSHA256}".base64_encode(hash('sha256', $password . $salt_str, true) . $salt_str);

-      break;

-    case "SSHA512":

-      $salt_str = bin2hex(openssl_random_pseudo_bytes(8));

-      $pw_hash = "{SSHA512}".base64_encode(hash('sha512', $password . $salt_str, true) . $salt_str);

-      break;

-    case "BLF-CRYPT":

-    default:

-      $pw_hash = "{BLF-CRYPT}" . password_hash($password, PASSWORD_BCRYPT);

-      break;

+  // support pre-hashed passwords

+  if (preg_match('/^{(ARGON2I|ARGON2ID|BLF-CRYPT|CLEAR|CLEARTEXT|CRYPT|DES-CRYPT|LDAP-MD5|MD5|MD5-CRYPT|PBKDF2|PLAIN|PLAIN-MD4|PLAIN-MD5|PLAIN-TRUNC|PLAIN-TRUNC|SHA|SHA1|SHA256|SHA256-CRYPT|SHA512|SHA512-CRYPT|SMD5|SSHA|SSHA256|SSHA512)}/i', $password)) {

+    $pw_hash = $password;

+  }

+  else {

+    switch (strtoupper($default_pass_scheme)) {

+      case "SSHA":

+        $salt_str = bin2hex(openssl_random_pseudo_bytes(8));

+        $pw_hash = "{SSHA}".base64_encode(hash('sha1', $password . $salt_str, true) . $salt_str);

+        break;

+      case "SSHA256":

+        $salt_str = bin2hex(openssl_random_pseudo_bytes(8));

+        $pw_hash = "{SSHA256}".base64_encode(hash('sha256', $password . $salt_str, true) . $salt_str);

+        break;

+      case "SSHA512":

+        $salt_str = bin2hex(openssl_random_pseudo_bytes(8));

+        $pw_hash = "{SSHA512}".base64_encode(hash('sha512', $password . $salt_str, true) . $salt_str);

+        break;

+      case "BLF-CRYPT":

+      default:

+        $pw_hash = "{BLF-CRYPT}" . password_hash($password, PASSWORD_BCRYPT);

+        break;

+    }

   }

   return $pw_hash;

 }

-function last_login($user) {

-  global $pdo;

-  $stmt = $pdo->prepare('SELECT `remote`, `time` FROM `logs`

-    WHERE JSON_EXTRACT(`call`, "$[0]") = "check_login"

-      AND JSON_EXTRACT(`call`, "$[1]") = :user

-      AND `type` = "success" ORDER BY `time` DESC LIMIT 1');

-  $stmt->execute(array(':user' => $user));

-  $row = $stmt->fetch(PDO::FETCH_ASSOC);

-  if (!empty($row)) {

-    return $row;

+function password_complexity($_action, $_data = null) {

+  global $redis;

+  global $lang;

+  switch ($_action) {

+    case 'edit':

+      if ($_SESSION['mailcow_cc_role'] != "admin") {

+        $_SESSION['return'][] = array(

+          'type' => 'danger',

+          'log' => array(__FUNCTION__, $_action, $_data),

+          'msg' => 'access_denied'

+        );

+        return false;

+      }

+      $is_now = password_complexity('get');

+      if (!empty($is_now)) {

+        $length = (isset($_data['length']) && intval($_data['length']) >= 3) ? intval($_data['length']) : $is_now['length'];

+        $chars = (isset($_data['chars'])) ? intval($_data['chars']) : $is_now['chars'];

+        $lowerupper = (isset($_data['lowerupper'])) ? intval($_data['lowerupper']) : $is_now['lowerupper'];

+        $special_chars = (isset($_data['special_chars'])) ? intval($_data['special_chars']) : $is_now['special_chars'];

+        $numbers = (isset($_data['numbers'])) ? intval($_data['numbers']) : $is_now['numbers'];

+      }

+      try {

+        $redis->hMSet('PASSWD_POLICY', [

+          'length' => $length,

+          'chars' => $chars,

+          'special_chars' => $special_chars,

+          'lowerupper' => $lowerupper,

+          'numbers' => $numbers

+        ]);

+      }

+      catch (RedisException $e) {

+        $_SESSION['return'][] = array(

+          'type' => 'danger',

+          'log' => array(__FUNCTION__, $_action, $_data),

+          'msg' => array('redis_error', $e)

+        );

+        return false;

+      }

+      $_SESSION['return'][] = array(

+        'type' => 'success',

+        'log' => array(__FUNCTION__, $_action, $_data),

+        'msg' => 'password_policy_saved'

+      );

+    break;

+    case 'get':

+      try {

+        $length = $redis->hGet('PASSWD_POLICY', 'length');

+        $chars = $redis->hGet('PASSWD_POLICY', 'chars');

+        $special_chars = $redis->hGet('PASSWD_POLICY', 'special_chars');

+        $lowerupper = $redis->hGet('PASSWD_POLICY', 'lowerupper');

+        $numbers = $redis->hGet('PASSWD_POLICY', 'numbers');

+        return array(

+          'length' => $length,

+          'chars' => $chars,

+          'special_chars' => $special_chars,

+          'lowerupper' => $lowerupper,

+          'numbers' => $numbers

+        );

+      }

+      catch (RedisException $e) {

+        $_SESSION['return'][] = array(

+          'type' => 'danger',

+          'log' => array(__FUNCTION__, $_action, $_data),

+          'msg' => array('redis_error', $e)

+        );

+        return false;

+      }

+      return false;

+    break;

+    case 'html':

+      $policies = password_complexity('get');

+      foreach ($policies as $name => $value) {

+        if ($value != 0) {

+          $policy_text[] = sprintf($lang['admin']["password_policy_$name"], $value);

+        }

+      }

+      return '<p class="help-block small">- ' . implode('<br>- ', (array)$policy_text) . '</p>';

+    break;

   }

-  else {

+}

+function password_check($password1, $password2) {

+  $password_complexity = password_complexity('get');

+

+  if (empty($password1) || empty($password2)) {

+    $_SESSION['return'][] = array(

+      'type' => 'danger',

+      'log' => array(__FUNCTION__, $_action, $_type),

+      'msg' => 'password_complexity'

+    );

     return false;

   }

+

+  if ($password1 != $password2) {

+    $_SESSION['return'][] = array(

+      'type' => 'danger',

+      'log' => array(__FUNCTION__, $_action, $_type),

+      'msg' => 'password_mismatch'

+    );

+    return false;

+  }

+

+  $given_password['length'] = strlen($password1);

+  $given_password['special_chars'] = preg_match('/[^a-zA-Z\d]/', $password1);

+  $given_password['chars'] = preg_match('/[a-zA-Z]/',$password1);

+  $given_password['numbers'] = preg_match('/\d/', $password1);

+  $lower = strlen(preg_replace("/[^a-z]/", '', $password1));

+  $upper = strlen(preg_replace("/[^A-Z]/", '', $password1));

+  $given_password['lowerupper'] = ($lower > 0 && $upper > 0) ? true : false;

+

+  if (

+    ($given_password['length'] < $password_complexity['length']) ||

+    ($password_complexity['special_chars'] == 1 && (intval($given_password['special_chars']) != $password_complexity['special_chars'])) ||

+    ($password_complexity['chars'] == 1 && (intval($given_password['chars']) != $password_complexity['chars'])) ||

+    ($password_complexity['numbers'] == 1 && (intval($given_password['numbers']) != $password_complexity['numbers'])) ||

+    ($password_complexity['lowerupper'] == 1 && (intval($given_password['lowerupper']) != $password_complexity['lowerupper']))

+  ) {

+    $_SESSION['return'][] = array(

+      'type' => 'danger',

+      'log' => array(__FUNCTION__, $_action, $_type),

+      'msg' => 'password_complexity'

+    );

+    return false;

+  }

+

+  return true;

+}

+function last_login($action, $username, $sasl_limit_days = 7) {

+  global $pdo;

+  global $redis;

+  $sasl_limit_days = intval($sasl_limit_days);

+  switch ($action) {

+    case 'get':

+      if (filter_var($username, FILTER_VALIDATE_EMAIL) && hasMailboxObjectAccess($_SESSION['mailcow_cc_username'], $_SESSION['mailcow_cc_role'], $username)) {

+        $stmt = $pdo->prepare('SELECT `real_rip`, MAX(`datetime`) as `datetime`, `service`, `app_password` FROM `sasl_log`

+          LEFT OUTER JOIN `app_passwd` on `sasl_log`.`app_password` = `app_passwd`.`id`

+          WHERE `username` = :username

+            AND HOUR(TIMEDIFF(NOW(), `datetime`)) < :sasl_limit_days

+              GROUP BY `real_rip`, `service`, `app_password`

+              ORDER BY `datetime` DESC;');

+        $stmt->execute(array(':username' => $username, ':sasl_limit_days' => ($sasl_limit_days * 24)));

+        $sasl = $stmt->fetchAll(PDO::FETCH_ASSOC);

+        foreach ($sasl as $k => $v) {

+          if (!filter_var($sasl[$k]['real_rip'], FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {

+            $sasl[$k]['real_rip'] = 'Web/EAS/Internal (' . $sasl[$k]['real_rip'] . ')';

+          }

+          elseif (filter_var($sasl[$k]['real_rip'], FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {

+            try {

+              $sasl[$k]['location'] = $redis->hGet('IP_SHORTCOUNTRY', $sasl[$k]['real_rip']);

+            }

+            catch (RedisException $e) {

+              $_SESSION['return'][] = array(

+                'type' => 'danger',

+                'log' => array(__FUNCTION__, $_action, $_data_log),

+                'msg' => array('redis_error', $e)

+              );

+              return false;

+            }

+            if (!$sasl[$k]['location']) {

+              $curl = curl_init();

+              curl_setopt($curl, CURLOPT_URL,"https://dfdata.bella.network/lookup/" . $sasl[$k]['real_rip']);

+              curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

+              curl_setopt($curl, CURLOPT_USERAGENT, 'Moocow');

+              curl_setopt($curl, CURLOPT_TIMEOUT, 5);

+              $ip_data = curl_exec($curl);

+              if (!curl_errno($curl)) {

+                $ip_data_array = json_decode($ip_data, true);

+                if ($ip_data_array !== false and !empty($ip_data_array['location']['shortcountry'])) {

+                  $sasl[$k]['location'] = $ip_data_array['location']['shortcountry'];

+                    try {

+                      $redis->hSet('IP_SHORTCOUNTRY', $sasl[$k]['real_rip'], $ip_data_array['location']['shortcountry']);

+                    }

+                    catch (RedisException $e) {

+                      $_SESSION['return'][] = array(

+                        'type' => 'danger',

+                        'log' => array(__FUNCTION__, $_action, $_data_log),

+                        'msg' => array('redis_error', $e)

+                      );

+                      curl_close($curl);

+                      return false;

+                    }

+                }

+              }

+              curl_close($curl);

+            }

+          }

+        }

+      }

+      else {

+        $sasl = array();

+      }

+      if ($_SESSION['mailcow_cc_role'] == "admin" || $username == $_SESSION['mailcow_cc_username']) {

+        $stmt = $pdo->prepare('SELECT `remote`, `time` FROM `logs`

+          WHERE JSON_EXTRACT(`call`, "$[0]") = "check_login"

+            AND JSON_EXTRACT(`call`, "$[1]") = :username

+            AND `type` = "success" ORDER BY `time` DESC LIMIT 1 OFFSET 1');

+        $stmt->execute(array(':username' => $username));

+        $ui = $stmt->fetch(PDO::FETCH_ASSOC);

+      }

+      else {

+        $ui = array();

+      }

+

+      return array('ui' => $ui, 'sasl' => $sasl);

+    break;

+    case 'reset':

+      if (filter_var($username, FILTER_VALIDATE_EMAIL) && hasMailboxObjectAccess($_SESSION['mailcow_cc_username'], $_SESSION['mailcow_cc_role'], $username)) {

+        $stmt = $pdo->prepare('DELETE FROM `sasl_log`

+          WHERE `username` = :username');

+        $stmt->execute(array(':username' => $username));

+      }

+      if ($_SESSION['mailcow_cc_role'] == "admin" || $username == $_SESSION['mailcow_cc_username']) {

+        $stmt = $pdo->prepare('DELETE FROM `logs`

+          WHERE JSON_EXTRACT(`call`, "$[0]") = "check_login"

+            AND JSON_EXTRACT(`call`, "$[1]") = :username

+            AND `type` = "success"');

+        $stmt->execute(array(':username' => $username));

+      }

+      return true;

+    break;

+  }

+

 }

 function flush_memcached() {

   try {

@@ -135,13 +359,13 @@
 }

 function sys_mail($_data) {

   if ($_SESSION['mailcow_cc_role'] != "admin") {

-		$_SESSION['return'][] =  array(

-			'type' => 'danger',

+    $_SESSION['return'][] =  array(

+      'type' => 'danger',

       'log' => array(__FUNCTION__),

-			'msg' => 'access_denied'

-		);

-		return false;

-	}

+      'msg' => 'access_denied'

+    );

+    return false;

+  }

   $excludes = $_data['mass_exclude'];

   $includes = $_data['mass_include'];

   $mailboxes = array();

@@ -150,28 +374,28 @@
   $mass_html = $_data['mass_html'];

   $mass_subject = $_data['mass_subject'];

   if (!filter_var($mass_from, FILTER_VALIDATE_EMAIL)) {

-		$_SESSION['return'][] =  array(

-			'type' => 'danger',

+    $_SESSION['return'][] =  array(

+      'type' => 'danger',

       'log' => array(__FUNCTION__),

-			'msg' => 'from_invalid'

-		);

-		return false;

+      'msg' => 'from_invalid'

+    );

+    return false;

   }

   if (empty($mass_subject)) {

-		$_SESSION['return'][] =  array(

-			'type' => 'danger',

+    $_SESSION['return'][] =  array(

+      'type' => 'danger',

       'log' => array(__FUNCTION__),

-			'msg' => 'subject_empty'

-		);

-		return false;

+      'msg' => 'subject_empty'

+    );

+    return false;

   }

   if (empty($mass_text)) {

-		$_SESSION['return'][] =  array(

-			'type' => 'danger',

+    $_SESSION['return'][] =  array(

+      'type' => 'danger',

       'log' => array(__FUNCTION__),

-			'msg' => 'text_empty'

-		);

-		return false;

+      'msg' => 'text_empty'

+    );

+    return false;

   }

   $domains = array_merge(mailbox('get', 'domains'), mailbox('get', 'alias_domains'));

   foreach ($domains as $domain) {

@@ -265,8 +489,14 @@
     $task = substr(strtoupper(md5(uniqid(rand(), true))), 0, 6);

     foreach ($_data['return'] as $return) {

       $type = $return['type'];

-      $msg = json_encode($return['msg'], JSON_UNESCAPED_UNICODE);

-      $call = json_encode($return['log'], JSON_UNESCAPED_UNICODE);

+      $msg = null;

+      if (isset($return['msg'])) {

+        $msg = json_encode($return['msg'], JSON_UNESCAPED_UNICODE);

+      }

+      $call = null;

+      if (isset($return['log'])) {

+        $call = json_encode($return['log'], JSON_UNESCAPED_UNICODE);

+      }

       if (!empty($_SESSION["dual-login"]["username"])) {

         $user = $_SESSION["dual-login"]["username"] . ' => ' . $_SESSION['mailcow_cc_username'];

         $role = $_SESSION["dual-login"]["role"] . ' => ' . $_SESSION['mailcow_cc_role'];

@@ -303,16 +533,16 @@
   }

 }

 function hasDomainAccess($username, $role, $domain) {

-	global $pdo;

-	if (!filter_var($username, FILTER_VALIDATE_EMAIL) && !ctype_alnum(str_replace(array('_', '.', '-'), '', $username))) {

-		return false;

-	}

-	if (empty($domain) || !is_valid_domain_name($domain)) {

-		return false;

-	}

-	if ($role != 'admin' && $role != 'domainadmin') {

-		return false;

-	}

+  global $pdo;

+  if (!filter_var($username, FILTER_VALIDATE_EMAIL) && !ctype_alnum(str_replace(array('_', '.', '-'), '', $username))) {

+    return false;

+  }

+  if (empty($domain) || !is_valid_domain_name($domain)) {

+    return false;

+  }

+  if ($role != 'admin' && $role != 'domainadmin') {

+    return false;

+  }

   if ($role == 'admin') {

     $stmt = $pdo->prepare("SELECT `domain` FROM `domain`

       WHERE `domain` = :domain");

@@ -339,48 +569,49 @@
       return true;

     }

   }

-	return false;

+  return false;

 }

 function hasMailboxObjectAccess($username, $role, $object) {

-	global $pdo;

-	if (empty($username) || empty($role) || empty($object)) {

-		return false;

-	}

-	if (!filter_var(html_entity_decode(rawurldecode($username)), FILTER_VALIDATE_EMAIL) && !ctype_alnum(str_replace(array('_', '.', '-'), '', $username))) {

-		return false;

-	}

-	if ($role != 'admin' && $role != 'domainadmin' && $role != 'user') {

-		return false;

-	}

-	if ($username == $object) {

-		return true;

-	}

+  global $pdo;

+  if (empty($username) || empty($role) || empty($object)) {

+    return false;

+  }

+  if (!filter_var(html_entity_decode(rawurldecode($username)), FILTER_VALIDATE_EMAIL) && !ctype_alnum(str_replace(array('_', '.', '-'), '', $username))) {

+    return false;

+  }

+  if ($role != 'admin' && $role != 'domainadmin' && $role != 'user') {

+    return false;

+  }

+  if ($username == $object) {

+    return true;

+  }

   $stmt = $pdo->prepare("SELECT `domain` FROM `mailbox` WHERE `username` = :object");

   $stmt->execute(array(':object' => $object));

   $row = $stmt->fetch(PDO::FETCH_ASSOC);

   if (isset($row['domain']) && hasDomainAccess($username, $role, $row['domain'])) {

     return true;

   }

-	return false;

+  return false;

 }

+// does also verify mailboxes as a mailbox is a alias == goto

 function hasAliasObjectAccess($username, $role, $object) {

-	global $pdo;

-	if (!filter_var(html_entity_decode(rawurldecode($username)), FILTER_VALIDATE_EMAIL) && !ctype_alnum(str_replace(array('_', '.', '-'), '', $username))) {

-		return false;

-	}

-	if ($role != 'admin' && $role != 'domainadmin' && $role != 'user') {

-		return false;

-	}

-	if ($username == $object) {

-		return true;

-	}

+  global $pdo;

+  if (empty($username) || empty($role) || empty($object)) {

+    return false;

+  }

+  if (!filter_var(html_entity_decode(rawurldecode($username)), FILTER_VALIDATE_EMAIL) && !ctype_alnum(str_replace(array('_', '.', '-'), '', $username))) {

+    return false;

+  }

+  if ($role != 'admin' && $role != 'domainadmin' && $role != 'user') {

+    return false;

+  }

   $stmt = $pdo->prepare("SELECT `domain` FROM `alias` WHERE `address` = :object");

   $stmt->execute(array(':object' => $object));

   $row = $stmt->fetch(PDO::FETCH_ASSOC);

   if (isset($row['domain']) && hasDomainAccess($username, $role, $row['domain'])) {

     return true;

   }

-	return false;

+  return false;

 }

 function pem_to_der($pem_key) {

   // Need to remove BEGIN/END PUBLIC KEY

@@ -390,9 +621,9 @@
   return base64_decode(implode('', $lines));

 }

 function expand_ipv6($ip) {

-	$hex = unpack("H*hex", inet_pton($ip));

-	$ip = substr(preg_replace("/([A-f0-9]{4})/", "$1:", $hex['hex']), 0, -1);

-	return $ip;

+  $hex = unpack("H*hex", inet_pton($ip));

+  $ip = substr(preg_replace("/([A-f0-9]{4})/", "$1:", $hex['hex']), 0, -1);

+  return $ip;

 }

 function generate_tlsa_digest($hostname, $port, $starttls = null) {

   if (!is_valid_domain_name($hostname)) {

@@ -453,15 +684,20 @@
     return 'Error: Cannot read peer certificate';

   }

 }

-function alertbox_log_parser($_data){

+function alertbox_log_parser($_data) {

   global $lang;

   if (isset($_data['return'])) {

     foreach ($_data['return'] as $return) {

       // Get type

       $type = $return['type'];

       // If a lang[type][msg] string exists, use it as message

-      if (is_string($lang[$return['type']][$return['msg']])) {

-        $msg = $lang[$return['type']][$return['msg']];

+      if (isset($return['type']) && isset($return['msg']) && !is_array($return['msg'])) {

+        if (isset($lang[$return['type']][$return['msg']])) {

+          $msg = $lang[$return['type']][$return['msg']];

+        }

+        else {

+          $msg = $return['msg'];

+        }

       }

       // If msg is an array, use first element as language string and run printf on it with remaining array elements

       elseif (is_array($return['msg'])) {

@@ -471,9 +707,8 @@
           $return['msg']

         );

       }

-      // If none applies, use msg as returned message

       else {

-        $msg = $return['msg'];

+        $msg = '-';

       }

       $log_array[] = array('msg' => $msg, 'type' => json_encode($type));

     }

@@ -483,100 +718,116 @@
   }

   return false;

 }

+function verify_salted_hash($hash, $password, $algo, $salt_length) {

+  // Decode hash

+  $dhash = base64_decode($hash);

+  // Get first n bytes of binary which equals a SSHA hash

+  $ohash = substr($dhash, 0, $salt_length);

+  // Remove SSHA hash from decoded hash to get original salt string

+  $osalt = str_replace($ohash, '', $dhash);

+  // Check single salted SSHA hash against extracted hash

+  if (hash_equals(hash($algo, $password . $osalt, true), $ohash)) {

+    return true;

+  }

+  return false;

+}

 function verify_hash($hash, $password) {

-  if (preg_match('/^{SSHA256}/i', $hash)) {

-    // Remove tag if any

-    $hash = preg_replace('/^{SSHA256}/i', '', $hash);

-    // Decode hash

-    $dhash = base64_decode($hash);

-    // Get first 32 bytes of binary which equals a SHA256 hash

-    $ohash = substr($dhash, 0, 32);

-    // Remove SHA256 hash from decoded hash to get original salt string

-    $osalt = str_replace($ohash, '', $dhash);

-    // Check single salted SHA256 hash against extracted hash

-    if (hash_equals(hash('sha256', $password . $osalt, true), $ohash)) {

-      return true;

-    }

-  }

-  elseif (preg_match('/^{SSHA}/i', $hash)) {

-    // Remove tag if any

-    $hash = preg_replace('/^{SSHA}/i', '', $hash);

-    // Decode hash

-    $dhash = base64_decode($hash);

-    // Get first 20 bytes of binary which equals a SSHA hash

-    $ohash = substr($dhash, 0, 20);

-    // Remove SSHA hash from decoded hash to get original salt string

-    $osalt = str_replace($ohash, '', $dhash);

-    // Check single salted SSHA hash against extracted hash

-    if (hash_equals(hash('sha1', $password . $osalt, true), $ohash)) {

-      return true;

-    }

-  }

-  elseif (preg_match('/^{PLAIN-MD5}/i', $hash)) {

-    $hash = preg_replace('/^{PLAIN-MD5}/i', '', $hash);

-    if (md5($password) == $hash) {

-      return true;

-    }

-  }

-  elseif (preg_match('/^{SHA512-CRYPT}/i', $hash)) {

-    // Remove tag if any

-    $hash = preg_replace('/^{SHA512-CRYPT}/i', '', $hash);

-    // Decode hash

-    preg_match('/\\$6\\$(.*)\\$(.*)/i', $hash, $hash_array);

-    $osalt = $hash_array[1];

-    $ohash = $hash_array[2];

-    if (hash_equals(crypt($password, '$6$' . $osalt . '$'), $hash)) {

-      return true;

-    }

-  }

-  elseif (preg_match('/^{SSHA512}/i', $hash)) {

-    $hash = preg_replace('/^{SSHA512}/i', '', $hash);

-    // Decode hash

-    $dhash = base64_decode($hash);

-    // Get first 64 bytes of binary which equals a SHA512 hash

-    $ohash = substr($dhash, 0, 64);

-    // Remove SHA512 hash from decoded hash to get original salt string

-    $osalt = str_replace($ohash, '', $dhash);

-    // Check single salted SHA512 hash against extracted hash

-    if (hash_equals(hash('sha512', $password . $osalt, true), $ohash)) {

-      return true;

-    }

-  }

-  elseif (preg_match('/^{MD5-CRYPT}/i', $hash)) {

-    $hash = preg_replace('/^{MD5-CRYPT}/i', '', $hash);

-    if (password_verify($password, $hash)) {

-      return true;

-    }

-  } 

-  elseif (preg_match('/^{BLF-CRYPT}/i', $hash)) {

-    $hash = preg_replace('/^{BLF-CRYPT}/i', '', $hash);

-    if (password_verify($password, $hash)) {

-      return true;

+  if (preg_match('/^{(.+)}(.+)/i', $hash, $hash_array)) {

+    $scheme = strtoupper($hash_array[1]);

+    $hash = $hash_array[2];

+    switch ($scheme) {

+      case "ARGON2I":

+      case "ARGON2ID":

+      case "BLF-CRYPT":

+      case "CRYPT":

+      case "DES-CRYPT":

+      case "MD5-CRYPT":

+      case "MD5":

+      case "SHA256-CRYPT":

+      case "SHA512-CRYPT":

+        return password_verify($password, $hash);

+

+      case "CLEAR":

+      case "CLEARTEXT":

+      case "PLAIN":

+        return $password == $hash;

+

+      case "LDAP-MD5":

+        $hash = base64_decode($hash);

+        return hash_equals(hash('md5', $password, true), $hash);

+

+      case "PBKDF2":

+        $components = explode('$', $hash);

+        $salt = $components[2];

+        $rounds = $components[3];

+        $hash = $components[4];

+        return hash_equals(hash_pbkdf2('sha1', $password, $salt, $rounds), $hash);

+

+      case "PLAIN-MD4":

+        return hash_equals(hash('md4', $password), $hash);

+

+      case "PLAIN-MD5":

+        return md5($password) == $hash;

+

+      case "PLAIN-TRUNC":

+        $components = explode('-', $hash);

+        if (count($components) > 1) {

+          $trunc_len = $components[0];

+          $trunc_password = $components[1];

+

+          return substr($password, 0, $trunc_len) == $trunc_password;

+        } else {

+          return $password == $hash;

+        }

+

+      case "SHA":

+      case "SHA1":

+      case "SHA256":

+      case "SHA512":

+        // SHA is an alias for SHA1

+        $scheme = $scheme == "SHA" ? "sha1" : strtolower($scheme);

+        $hash = base64_decode($hash);

+        return hash_equals(hash($scheme, $password, true), $hash);

+

+      case "SMD5":

+        return verify_salted_hash($hash, $password, 'md5', 16);

+

+      case "SSHA":

+        return verify_salted_hash($hash, $password, 'sha1', 20);

+

+      case "SSHA256":

+        return verify_salted_hash($hash, $password, 'sha256', 32);

+

+      case "SSHA512":

+        return verify_salted_hash($hash, $password, 'sha512', 64);

+

+      default:

+        return false;

     }

   }

   return false;

 }

 function check_login($user, $pass) {

-	global $pdo;

-	global $redis;

-	global $imap_server;

-	if (!filter_var($user, FILTER_VALIDATE_EMAIL) && !ctype_alnum(str_replace(array('_', '.', '-'), '', $user))) {

+  global $pdo;

+  global $redis;

+  global $imap_server;

+  if (!filter_var($user, FILTER_VALIDATE_EMAIL) && !ctype_alnum(str_replace(array('_', '.', '-'), '', $user))) {

     $_SESSION['return'][] =  array(

       'type' => 'danger',

       'log' => array(__FUNCTION__, $user, '*'),

       'msg' => 'malformed_username'

     );

-		return false;

-	}

-	$user = strtolower(trim($user));

-	$stmt = $pdo->prepare("SELECT `password` FROM `admin`

-			WHERE `superadmin` = '1'

-			AND `active` = '1'

-			AND `username` = :user");

-	$stmt->execute(array(':user' => $user));

-	$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

-	foreach ($rows as $row) {

-		if (verify_hash($row['password'], $pass)) {

+    return false;

+  }

+  $user = strtolower(trim($user));

+  $stmt = $pdo->prepare("SELECT `password` FROM `admin`

+      WHERE `superadmin` = '1'

+      AND `active` = '1'

+      AND `username` = :user");

+  $stmt->execute(array(':user' => $user));

+  $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

+  foreach ($rows as $row) {

+    if (verify_hash($row['password'], $pass)) {

       if (get_tfa($user)['name'] != "none") {

         $_SESSION['pending_mailcow_cc_username'] = $user;

         $_SESSION['pending_mailcow_cc_role'] = "admin";

@@ -601,16 +852,16 @@
         );

         return "admin";

       }

-		}

-	}

-	$stmt = $pdo->prepare("SELECT `password` FROM `admin`

-			WHERE `superadmin` = '0'

-			AND `active`='1'

-			AND `username` = :user");

-	$stmt->execute(array(':user' => $user));

-	$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

-	foreach ($rows as $row) {

-		if (verify_hash($row['password'], $pass) !== false) {

+    }

+  }

+  $stmt = $pdo->prepare("SELECT `password` FROM `admin`

+      WHERE `superadmin` = '0'

+      AND `active`='1'

+      AND `username` = :user");

+  $stmt->execute(array(':user' => $user));

+  $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

+  foreach ($rows as $row) {

+    if (verify_hash($row['password'], $pass) !== false) {

       if (get_tfa($user)['name'] != "none") {

         $_SESSION['pending_mailcow_cc_username'] = $user;

         $_SESSION['pending_mailcow_cc_role'] = "domainadmin";

@@ -635,55 +886,55 @@
         );

         return "domainadmin";

       }

-		}

-	}

-	$stmt = $pdo->prepare("SELECT `password` FROM `mailbox`

+    }

+  }

+  $stmt = $pdo->prepare("SELECT `password` FROM `mailbox`

       INNER JOIN domain on mailbox.domain = domain.domain

-			WHERE `kind` NOT REGEXP 'location|thing|group'

+      WHERE `kind` NOT REGEXP 'location|thing|group'

         AND `mailbox`.`active`='1'

         AND `domain`.`active`='1'

         AND `username` = :user");

-	$stmt->execute(array(':user' => $user));

-	$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

-	foreach ($rows as $row) {

-		if (verify_hash($row['password'], $pass) !== false) {

-			unset($_SESSION['ldelay']);

+  $stmt->execute(array(':user' => $user));

+  $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

+  foreach ($rows as $row) {

+    if (verify_hash($row['password'], $pass) !== false) {

+      unset($_SESSION['ldelay']);

       $_SESSION['return'][] =  array(

         'type' => 'success',

         'log' => array(__FUNCTION__, $user, '*'),

         'msg' => array('logged_in_as', $user)

       );

-			return "user";

-		}

-	}

-	if (!isset($_SESSION['ldelay'])) {

-		$_SESSION['ldelay'] = "0";

+      return "user";

+    }

+  }

+  if (!isset($_SESSION['ldelay'])) {

+    $_SESSION['ldelay'] = "0";

     $redis->publish("F2B_CHANNEL", "mailcow UI: Invalid password for " . $user . " by " . $_SERVER['REMOTE_ADDR']);

     error_log("mailcow UI: Invalid password for " . $user . " by " . $_SERVER['REMOTE_ADDR']);

-	}

-	elseif (!isset($_SESSION['mailcow_cc_username'])) {

-		$_SESSION['ldelay'] = $_SESSION['ldelay']+0.5;

+  }

+  elseif (!isset($_SESSION['mailcow_cc_username'])) {

+    $_SESSION['ldelay'] = $_SESSION['ldelay']+0.5;

     $redis->publish("F2B_CHANNEL", "mailcow UI: Invalid password for " . $user . " by " . $_SERVER['REMOTE_ADDR']);

-		error_log("mailcow UI: Invalid password for " . $user . " by " . $_SERVER['REMOTE_ADDR']);

-	}

+    error_log("mailcow UI: Invalid password for " . $user . " by " . $_SERVER['REMOTE_ADDR']);

+  }

   $_SESSION['return'][] =  array(

     'type' => 'danger',

     'log' => array(__FUNCTION__, $user, '*'),

     'msg' => 'login_failed'

   );

-	sleep($_SESSION['ldelay']);

+  sleep($_SESSION['ldelay']);

   return false;

 }

 function formatBytes($size, $precision = 2) {

-	if(!is_numeric($size)) {

-		return "0";

-	}

-	$base = log($size, 1024);

-	$suffixes = array(' Byte', ' KiB', ' MiB', ' GiB', ' TiB');

-	if ($size == "0") {

-		return "0";

-	}

-	return round(pow(1024, $base - floor($base)), $precision) . $suffixes[floor($base)];

+  if(!is_numeric($size)) {

+    return "0";

+  }

+  $base = log($size, 1024);

+  $suffixes = array(' Byte', ' KiB', ' MiB', ' GiB', ' TiB');

+  if ($size == "0") {

+    return "0";

+  }

+  return round(pow(1024, $base - floor($base)), $precision) . $suffixes[floor($base)];

 }

 function update_sogo_static_view() {

   if (getenv('SKIP_SOGO') == "y") {

@@ -702,15 +953,15 @@
   flush_memcached();

 }

 function edit_user_account($_data) {

-	global $lang;

-	global $pdo;

+  global $lang;

+  global $pdo;

   $_data_log = $_data;

   !isset($_data_log['user_new_pass']) ?: $_data_log['user_new_pass'] = '*';

   !isset($_data_log['user_new_pass2']) ?: $_data_log['user_new_pass2'] = '*';

   !isset($_data_log['user_old_pass']) ?: $_data_log['user_old_pass'] = '*';

   $username = $_SESSION['mailcow_cc_username'];

   $role = $_SESSION['mailcow_cc_role'];

-	$password_old = $_data['user_old_pass'];

+  $password_old = $_data['user_old_pass'];

   if (filter_var($username, FILTER_VALIDATE_EMAIL === false) || $role != 'user') {

     $_SESSION['return'][] =  array(

       'type' => 'danger',

@@ -719,15 +970,11 @@
     );

     return false;

   }

-	if (isset($_data['user_new_pass']) && isset($_data['user_new_pass2'])) {

-		$password_new	= $_data['user_new_pass'];

-		$password_new2	= $_data['user_new_pass2'];

-	}

-	$stmt = $pdo->prepare("SELECT `password` FROM `mailbox`

-			WHERE `kind` NOT REGEXP 'location|thing|group'

+  $stmt = $pdo->prepare("SELECT `password` FROM `mailbox`

+      WHERE `kind` NOT REGEXP 'location|thing|group'

         AND `username` = :user");

-	$stmt->execute(array(':user' => $username));

-	$row = $stmt->fetch(PDO::FETCH_ASSOC);

+  $stmt->execute(array(':user' => $username));

+  $row = $stmt->fetch(PDO::FETCH_ASSOC);

   if (!verify_hash($row['password'], $password_old)) {

     $_SESSION['return'][] =  array(

       'type' => 'danger',

@@ -736,59 +983,43 @@
     );

     return false;

   }

-	if (isset($password_new) && isset($password_new2)) {

-		if (!empty($password_new2) && !empty($password_new)) {

-			if ($password_new2 != $password_new) {

-				$_SESSION['return'][] =  array(

-					'type' => 'danger',

-          'log' => array(__FUNCTION__, $_data_log),

-					'msg' => 'password_mismatch'

-				);

-				return false;

-			}

-			if (!preg_match('/' . $GLOBALS['PASSWD_REGEP'] . '/', $password_new)) {

-					$_SESSION['return'][] =  array(

-						'type' => 'danger',

-            'log' => array(__FUNCTION__, $_data_log),

-						'msg' => 'password_complexity'

-					);

-					return false;

-			}

-			$password_hashed = hash_password($password_new);

-			try {

-				$stmt = $pdo->prepare("UPDATE `mailbox` SET `password` = :password_hashed, `attributes` = JSON_SET(`attributes`, '$.force_pw_update', '0') WHERE `username` = :username");

-				$stmt->execute(array(

-					':password_hashed' => $password_hashed,

-					':username' => $username

-				));

-			}

-			catch (PDOException $e) {

-				$_SESSION['return'][] =  array(

-					'type' => 'danger',

-          'log' => array(__FUNCTION__, $_data_log),

-					'msg' => array('mysql_error', $e)

-				);

-				return false;

-			}

-		}

-	}

+  if (!empty($_data['user_new_pass']) && !empty($_data['user_new_pass2'])) {

+    $password_new = $_data['user_new_pass'];

+    $password_new2  = $_data['user_new_pass2'];

+    if (password_check($password_new, $password_new2) !== true) {

+      return false;

+    }

+    $password_hashed = hash_password($password_new);

+    $stmt = $pdo->prepare("UPDATE `mailbox` SET `password` = :password_hashed,

+      `attributes` = JSON_SET(`attributes`, '$.force_pw_update', '0'),

+      `attributes` = JSON_SET(`attributes`, '$.passwd_update', NOW())

+        WHERE `username` = :username");

+    $stmt->execute(array(

+      ':password_hashed' => $password_hashed,

+      ':username' => $username

+    ));

+  }

   update_sogo_static_view();

-	$_SESSION['return'][] =  array(

-		'type' => 'success',

+  $_SESSION['return'][] =  array(

+    'type' => 'success',

     'log' => array(__FUNCTION__, $_data_log),

-		'msg' => array('mailbox_modified', htmlspecialchars($username))

-	);

+    'msg' => array('mailbox_modified', htmlspecialchars($username))

+  );

 }

 function user_get_alias_details($username) {

-	global $pdo;

-  $data['direct_aliases'] = false;

-  $data['shared_aliases'] = false;

+  global $pdo;

+  global $lang;

+  $data['direct_aliases'] = array();

+  $data['shared_aliases'] = array();

   if ($_SESSION['mailcow_cc_role'] == "user") {

-    $username	= $_SESSION['mailcow_cc_username'];

+    $username = $_SESSION['mailcow_cc_username'];

   }

   if (!filter_var($username, FILTER_VALIDATE_EMAIL)) {

     return false;

   }

+  if (!hasMailboxObjectAccess($username, $_SESSION['mailcow_cc_role'], $username)) {

+    return false;

+  }

   $data['address'] = $username;

   $stmt = $pdo->prepare("SELECT `address` AS `shared_aliases`, `public_comment` FROM `alias`

     WHERE `goto` REGEXP :username_goto

@@ -803,7 +1034,6 @@
   $run = $stmt->fetchAll(PDO::FETCH_ASSOC);

   while ($row = array_shift($run)) {

     $data['shared_aliases'][$row['shared_aliases']]['public_comment'] = htmlspecialchars($row['public_comment']);

-

     //$data['shared_aliases'][] = $row['shared_aliases'];

   }

 

@@ -829,21 +1059,22 @@
     if (empty($row['ad_alias'])) {

       continue;

     }

-    $data['direct_aliases'][$row['ad_alias']]['public_comment'] = '↪ ' . $row['alias_domain'];

+    $data['direct_aliases'][$row['ad_alias']]['public_comment'] = $lang['add']['alias_domain'];

+    $data['alias_domains'][] = $row['alias_domain'];

   }

-  $stmt = $pdo->prepare("SELECT IFNULL(GROUP_CONCAT(`send_as` SEPARATOR ', '), '&#10008;') AS `send_as` FROM `sender_acl` WHERE `logged_in_as` = :username AND `send_as` NOT LIKE '@%';");

+  $stmt = $pdo->prepare("SELECT IFNULL(GROUP_CONCAT(`send_as` SEPARATOR ', '), '') AS `send_as` FROM `sender_acl` WHERE `logged_in_as` = :username AND `send_as` NOT LIKE '@%';");

   $stmt->execute(array(':username' => $username));

   $run = $stmt->fetchAll(PDO::FETCH_ASSOC);

   while ($row = array_shift($run)) {

     $data['aliases_also_send_as'] = $row['send_as'];

   }

-  $stmt = $pdo->prepare("SELECT CONCAT_WS(', ', IFNULL(GROUP_CONCAT(DISTINCT `send_as` SEPARATOR ', '), '&#10008;'), GROUP_CONCAT(DISTINCT CONCAT('@',`alias_domain`) SEPARATOR ', ')) AS `send_as` FROM `sender_acl` LEFT JOIN `alias_domain` ON `alias_domain`.`target_domain` =  TRIM(LEADING '@' FROM `send_as`) WHERE `logged_in_as` = :username AND `send_as` LIKE '@%';");

+  $stmt = $pdo->prepare("SELECT CONCAT_WS(', ', IFNULL(GROUP_CONCAT(DISTINCT `send_as` SEPARATOR ', '), ''), GROUP_CONCAT(DISTINCT CONCAT('@',`alias_domain`) SEPARATOR ', ')) AS `send_as` FROM `sender_acl` LEFT JOIN `alias_domain` ON `alias_domain`.`target_domain` =  TRIM(LEADING '@' FROM `send_as`) WHERE `logged_in_as` = :username AND `send_as` LIKE '@%';");

   $stmt->execute(array(':username' => $username));

   $run = $stmt->fetchAll(PDO::FETCH_ASSOC);

   while ($row = array_shift($run)) {

     $data['aliases_send_as_all'] = $row['send_as'];

   }

-  $stmt = $pdo->prepare("SELECT IFNULL(GROUP_CONCAT(`address` SEPARATOR ', '), '&#10008;') as `address` FROM `alias` WHERE `goto` REGEXP :username AND `address` LIKE '@%';");

+  $stmt = $pdo->prepare("SELECT IFNULL(GROUP_CONCAT(`address` SEPARATOR ', '), '') as `address` FROM `alias` WHERE `goto` REGEXP :username AND `address` LIKE '@%';");

   $stmt->execute(array(':username' => '(^|,)'.$username.'($|,)'));

   $run = $stmt->fetchAll(PDO::FETCH_ASSOC);

   while ($row = array_shift($run)) {

@@ -852,24 +1083,23 @@
   return $data;

 }

 function is_valid_domain_name($domain_name) {

-	if (empty($domain_name)) {

-		return false;

-	}

-	$domain_name = idn_to_ascii($domain_name, 0, INTL_IDNA_VARIANT_UTS46);

-	return (preg_match("/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i", $domain_name)

-		   && preg_match("/^.{1,253}$/", $domain_name)

-		   && preg_match("/^[^\.]{1,63}(\.[^\.]{1,63})*$/", $domain_name));

+  if (empty($domain_name)) {

+    return false;

+  }

+  $domain_name = idn_to_ascii($domain_name, 0, INTL_IDNA_VARIANT_UTS46);

+  return (preg_match("/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i", $domain_name)

+       && preg_match("/^.{1,253}$/", $domain_name)

+       && preg_match("/^[^\.]{1,63}(\.[^\.]{1,63})*$/", $domain_name));

 }

 function set_tfa($_data) {

-	global $pdo;

-	global $yubi;

-	global $u2f;

-	global $tfa;

+  global $pdo;

+  global $yubi;

+  global $u2f;

+  global $tfa;

   $_data_log = $_data;

   !isset($_data_log['confirm_password']) ?: $_data_log['confirm_password'] = '*';

   $username = $_SESSION['mailcow_cc_username'];

-  if ($_SESSION['mailcow_cc_role'] != "domainadmin" &&

-    $_SESSION['mailcow_cc_role'] != "admin") {

+  if (!isset($_SESSION['mailcow_cc_role']) || empty($username)) {

       $_SESSION['return'][] =  array(

         'type' => 'danger',

         'log' => array(__FUNCTION__, $_data_log),

@@ -878,20 +1108,37 @@
       return false;

   }

   $stmt = $pdo->prepare("SELECT `password` FROM `admin`

-      WHERE `username` = :user");

-  $stmt->execute(array(':user' => $username));

+      WHERE `username` = :username");

+  $stmt->execute(array(':username' => $username));

   $row = $stmt->fetch(PDO::FETCH_ASSOC);

-  if (!verify_hash($row['password'], $_data["confirm_password"])) {

-    $_SESSION['return'][] =  array(

-      'type' => 'danger',

-      'log' => array(__FUNCTION__, $_data_log),

-      'msg' => 'access_denied'

-    );

-    return false;

+  $num_results = count($stmt->fetchAll(PDO::FETCH_ASSOC));

+  if (!empty($num_results)) {

+    if (!verify_hash($row['password'], $_data["confirm_password"])) {

+      $_SESSION['return'][] =  array(

+        'type' => 'danger',

+        'log' => array(__FUNCTION__, $_data_log),

+        'msg' => 'access_denied'

+      );

+      return false;

+    }

   }

-

-	switch ($_data["tfa_method"]) {

-		case "yubi_otp":

+  $stmt = $pdo->prepare("SELECT `password` FROM `mailbox`

+      WHERE `username` = :username");

+  $stmt->execute(array(':username' => $username));

+  $row = $stmt->fetch(PDO::FETCH_ASSOC);

+  $num_results = count($stmt->fetchAll(PDO::FETCH_ASSOC));

+  if (!empty($num_results)) {

+    if (!verify_hash($row['password'], $_data["confirm_password"])) {

+      $_SESSION['return'][] =  array(

+        'type' => 'danger',

+        'log' => array(__FUNCTION__, $_data_log),

+        'msg' => 'access_denied'

+      );

+      return false;

+    }

+  }

+  switch ($_data["tfa_method"]) {

+    case "yubi_otp":

       $key_id = (!isset($_data["key_id"])) ? 'unidentified' : $_data["key_id"];

       $yubico_id = $_data['yubico_id'];

       $yubico_key = $_data['yubico_key'];

@@ -904,55 +1151,55 @@
         );

         return false;

       }

-			if (!ctype_alnum($_data["otp_token"]) || strlen($_data["otp_token"]) != 44) {

-				$_SESSION['return'][] =  array(

-					'type' => 'danger',

+      if (!ctype_alnum($_data["otp_token"]) || strlen($_data["otp_token"]) != 44) {

+        $_SESSION['return'][] =  array(

+          'type' => 'danger',

           'log' => array(__FUNCTION__, $_data_log),

-					'msg' => 'tfa_token_invalid'

-				);

-				return false;

-			}

+          'msg' => 'tfa_token_invalid'

+        );

+        return false;

+      }

       $yauth = $yubi->verify($_data["otp_token"]);

       if (PEAR::isError($yauth)) {

-				$_SESSION['return'][] =  array(

-					'type' => 'danger',

+        $_SESSION['return'][] =  array(

+          'type' => 'danger',

           'log' => array(__FUNCTION__, $_data_log),

           'msg' => array('yotp_verification_failed', $yauth->getMessage())

-				);

-				return false;

+        );

+        return false;

       }

-			try {

+      try {

         // We could also do a modhex translation here

         $yubico_modhex_id = substr($_data["otp_token"], 0, 12);

         $stmt = $pdo->prepare("DELETE FROM `tfa`

           WHERE `username` = :username

             AND (`authmech` != 'yubi_otp')

             OR (`authmech` = 'yubi_otp' AND `secret` LIKE :modhex)");

-				$stmt->execute(array(':username' => $username, ':modhex' => '%' . $yubico_modhex_id));

-				$stmt = $pdo->prepare("INSERT INTO `tfa` (`key_id`, `username`, `authmech`, `active`, `secret`) VALUES

-					(:key_id, :username, 'yubi_otp', '1', :secret)");

-				$stmt->execute(array(':key_id' => $key_id, ':username' => $username, ':secret' => $yubico_id . ':' . $yubico_key . ':' . $yubico_modhex_id));

-			}

-			catch (PDOException $e) {

-				$_SESSION['return'][] =  array(

-					'type' => 'danger',

+        $stmt->execute(array(':username' => $username, ':modhex' => '%' . $yubico_modhex_id));

+        $stmt = $pdo->prepare("INSERT INTO `tfa` (`key_id`, `username`, `authmech`, `active`, `secret`) VALUES

+          (:key_id, :username, 'yubi_otp', '1', :secret)");

+        $stmt->execute(array(':key_id' => $key_id, ':username' => $username, ':secret' => $yubico_id . ':' . $yubico_key . ':' . $yubico_modhex_id));

+      }

+      catch (PDOException $e) {

+        $_SESSION['return'][] =  array(

+          'type' => 'danger',

           'log' => array(__FUNCTION__, $_data_log),

-					'msg' => array('mysql_error', $e)

-				);

-				return false;

-			}

-			$_SESSION['return'][] =  array(

-				'type' => 'success',

+          'msg' => array('mysql_error', $e)

+        );

+        return false;

+      }

+      $_SESSION['return'][] =  array(

+        'type' => 'success',

         'log' => array(__FUNCTION__, $_data_log),

-				'msg' => array('object_modified', htmlspecialchars($username))

-			);

-		break;

-		case "u2f":

+        'msg' => array('object_modified', htmlspecialchars($username))

+      );

+    break;

+    case "u2f":

       $key_id = (!isset($_data["key_id"])) ? 'unidentified' : $_data["key_id"];

       try {

         $reg = $u2f->doRegister(json_decode($_SESSION['regReq']), json_decode($_data['token']));

         $stmt = $pdo->prepare("DELETE FROM `tfa` WHERE `username` = :username AND `authmech` != 'u2f'");

-				$stmt->execute(array(':username' => $username));

+        $stmt->execute(array(':username' => $username));

         $stmt = $pdo->prepare("INSERT INTO `tfa` (`username`, `key_id`, `authmech`, `keyHandle`, `publicKey`, `certificate`, `counter`, `active`) VALUES (?, ?, 'u2f', ?, ?, ?, ?, '1')");

         $stmt->execute(array($username, $key_id, $reg->keyHandle, $reg->publicKey, $reg->certificate, $reg->counter));

         $_SESSION['return'][] =  array(

@@ -971,8 +1218,8 @@
         $_SESSION['regReq'] = null;

         return false;

       }

-		break;

-		case "totp":

+    break;

+    case "totp":

       $key_id = (!isset($_data["key_id"])) ? 'unidentified' : $_data["key_id"];

       if ($tfa->verifyCode($_POST['totp_secret'], $_POST['totp_confirm_token']) === true) {

         $stmt = $pdo->prepare("DELETE FROM `tfa` WHERE `username` = :username");

@@ -992,28 +1239,27 @@
           'msg' => 'totp_verification_failed'

         );

       }

-		break;

-		case "none":

+    break;

+    case "none":

       $stmt = $pdo->prepare("DELETE FROM `tfa` WHERE `username` = :username");

       $stmt->execute(array(':username' => $username));

-			$_SESSION['return'][] =  array(

-				'type' => 'success',

+      $_SESSION['return'][] =  array(

+        'type' => 'success',

         'log' => array(__FUNCTION__, $_data_log),

-				'msg' => array('object_modified', htmlspecialchars($username))

-			);

-		break;

-	}

+        'msg' => array('object_modified', htmlspecialchars($username))

+      );

+    break;

+  }

 }

 function fido2($_data) {

-	global $pdo;

+  global $pdo;

   $_data_log = $_data;

   // Not logging registration data, only actions

   // Silent errors for "get" requests

-	switch ($_data["action"]) {

-		case "register":

+  switch ($_data["action"]) {

+    case "register":

       $username = $_SESSION['mailcow_cc_username'];

-      if ($_SESSION['mailcow_cc_role'] != "domainadmin" &&

-        $_SESSION['mailcow_cc_role'] != "admin") {

+      if (!isset($_SESSION['mailcow_cc_role']) || empty($username)) {

           $_SESSION['return'][] =  array(

             'type' => 'danger',

             'log' => array(__FUNCTION__, $_data["action"]),

@@ -1040,13 +1286,12 @@
         'log' => array(__FUNCTION__, $_data["action"]),

         'msg' => array('object_modified', $username)

       );

-		break;

-		case "get_user_cids":

+    break;

+    case "get_user_cids":

       // Used to exclude existing CredentialIds while registering

       $username = $_SESSION['mailcow_cc_username'];

-      if ($_SESSION['mailcow_cc_role'] != "domainadmin" &&

-        $_SESSION['mailcow_cc_role'] != "admin") {

-          return false;

+      if (!isset($_SESSION['mailcow_cc_role']) || empty($username)) {

+        return false;

       }

       $stmt = $pdo->prepare("SELECT `credentialId` FROM `fido2` WHERE `username` = :username");

       $stmt->execute(array(':username' => $username));

@@ -1055,8 +1300,8 @@
         $cids[] = $row['credentialId'];

       }

       return $cids;

-		break;

-		case "get_all_cids":

+    break;

+    case "get_all_cids":

       // Only needed when using fido2 with username

       $stmt = $pdo->query("SELECT `credentialId` FROM `fido2`");

       $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

@@ -1064,7 +1309,7 @@
         $cids[] = $row['credentialId'];

       }

       return $cids;

-		break;

+    break;

     case "get_by_b64cid":

       if (!isset($_data['cid']) || empty($_data['cid'])) {

         return false;

@@ -1080,12 +1325,11 @@
       $data['subject'] = $row['certificateSubject'];

       $data['cid'] = $row['cid'];

       return $data;

-		break;

-		case "get_friendly_names":

+    break;

+    case "get_friendly_names":

       $username = $_SESSION['mailcow_cc_username'];

-      if ($_SESSION['mailcow_cc_role'] != "domainadmin" &&

-        $_SESSION['mailcow_cc_role'] != "admin") {

-          return false;

+      if (!isset($_SESSION['mailcow_cc_role']) || empty($username)) {

+        return false;

       }

       $stmt = $pdo->prepare("SELECT SHA2(`credentialId`, 256) AS `cid`, `created`, `certificateSubject`, `friendlyName` FROM `fido2` WHERE `username` = :username");

       $stmt->execute(array(':username' => $username));

@@ -1098,39 +1342,37 @@
         );

       }

       return $fns;

-		break;

-		case "unset_fido2_key":

+    break;

+    case "unset_fido2_key":

       $username = $_SESSION['mailcow_cc_username'];

-      if ($_SESSION['mailcow_cc_role'] != "domainadmin" &&

-        $_SESSION['mailcow_cc_role'] != "admin") {

-          $_SESSION['return'][] =  array(

-            'type' => 'danger',

-            'log' => array(__FUNCTION__, $_data["action"]),

-            'msg' => 'access_denied'

-          );

-          return false;

+      if (!isset($_SESSION['mailcow_cc_role']) || empty($username)) {

+        $_SESSION['return'][] =  array(

+          'type' => 'danger',

+          'log' => array(__FUNCTION__, $_data["action"]),

+          'msg' => 'access_denied'

+        );

+        return false;

       }

       $stmt = $pdo->prepare("DELETE FROM `fido2` WHERE `username` = :username AND SHA2(`credentialId`, 256) = :cid");

       $stmt->execute(array(

         ':username' => $username,

         ':cid' => $_data['post_data']['unset_fido2_key']

       ));

-			$_SESSION['return'][] =  array(

-				'type' => 'success',

+      $_SESSION['return'][] =  array(

+        'type' => 'success',

         'log' => array(__FUNCTION__, $_data_log),

-				'msg' => array('object_modified', htmlspecialchars($username))

-			);

-		break;

+        'msg' => array('object_modified', htmlspecialchars($username))

+      );

+    break;

     case "edit_fn":

       $username = $_SESSION['mailcow_cc_username'];

-      if ($_SESSION['mailcow_cc_role'] != "domainadmin" &&

-        $_SESSION['mailcow_cc_role'] != "admin") {

-          $_SESSION['return'][] =  array(

-            'type' => 'danger',

-            'log' => array(__FUNCTION__, $_data["action"]),

-            'msg' => 'access_denied'

-          );

-          return false;

+      if (!isset($_SESSION['mailcow_cc_role']) || empty($username)) {

+        $_SESSION['return'][] =  array(

+          'type' => 'danger',

+          'log' => array(__FUNCTION__, $_data["action"]),

+          'msg' => 'access_denied'

+        );

+        return false;

       }

       $stmt = $pdo->prepare("UPDATE `fido2` SET `friendlyName` = :friendlyName WHERE SHA2(`credentialId`, 256) = :cid AND `username` = :username");

       $stmt->execute(array(

@@ -1138,13 +1380,13 @@
         ':friendlyName' => $_data['fido2_attrs']['fido2_fn'],

         ':cid' => $_data['fido2_attrs']['fido2_cid']

       ));

-			$_SESSION['return'][] =  array(

-				'type' => 'success',

+      $_SESSION['return'][] =  array(

+        'type' => 'success',

         'log' => array(__FUNCTION__, $_data_log),

-				'msg' => array('object_modified', htmlspecialchars($username))

-			);

-		break;

-	}

+        'msg' => array('object_modified', htmlspecialchars($username))

+      );

+    break;

+  }

 }

 function unset_tfa_key($_data) {

   // Can only unset own keys

@@ -1154,14 +1396,13 @@
   $_data_log = $_data;

   $id = intval($_data['unset_tfa_key']);

   $username = $_SESSION['mailcow_cc_username'];

-  if ($_SESSION['mailcow_cc_role'] != "domainadmin" &&

-    $_SESSION['mailcow_cc_role'] != "admin") {

-      $_SESSION['return'][] =  array(

-        'type' => 'danger',

-        'log' => array(__FUNCTION__, $_data_log),

-        'msg' => 'access_denied'

-      );

-      return false;

+  if (!isset($_SESSION['mailcow_cc_role']) || empty($username)) {

+    $_SESSION['return'][] =  array(

+      'type' => 'danger',

+      'log' => array(__FUNCTION__, $_data_log),

+      'msg' => 'access_denied'

+    );

+    return false;

   }

   try {

     if (!is_numeric($id)) {

@@ -1202,7 +1443,7 @@
   }

 }

 function get_tfa($username = null) {

-	global $pdo;

+  global $pdo;

   if (isset($_SESSION['mailcow_cc_username'])) {

     $username = $_SESSION['mailcow_cc_username'];

   }

@@ -1214,76 +1455,83 @@
   $stmt->execute(array(':username' => $username));

   $row = $stmt->fetch(PDO::FETCH_ASSOC);

 

-	switch ($row["authmech"]) {

-		case "yubi_otp":

-      $data['name'] = "yubi_otp";

-      $data['pretty'] = "Yubico OTP";

-      $stmt = $pdo->prepare("SELECT `id`, `key_id`, RIGHT(`secret`, 12) AS 'modhex' FROM `tfa` WHERE `authmech` = 'yubi_otp' AND `username` = :username");

-      $stmt->execute(array(

-        ':username' => $username,

-      ));

-      $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

-      while($row = array_shift($rows)) {

-        $data['additional'][] = $row;

-      }

-      return $data;

-    break;

-		case "u2f":

-      $data['name'] = "u2f";

-      $data['pretty'] = "Fido U2F";

-      $stmt = $pdo->prepare("SELECT `id`, `key_id` FROM `tfa` WHERE `authmech` = 'u2f' AND `username` = :username");

-      $stmt->execute(array(

-        ':username' => $username,

-      ));

-      $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

-      while($row = array_shift($rows)) {

-        $data['additional'][] = $row;

-      }

-      return $data;

-    break;

-		case "hotp":

-      $data['name'] = "hotp";

-      $data['pretty'] = "HMAC-based OTP";

-      return $data;

-		break;

- 		case "totp":

-      $data['name'] = "totp";

-      $data['pretty'] = "Time-based OTP";

-      $stmt = $pdo->prepare("SELECT `id`, `key_id`, `secret` FROM `tfa` WHERE `authmech` = 'totp' AND `username` = :username");

-      $stmt->execute(array(

-        ':username' => $username,

-      ));

-      $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

-      while($row = array_shift($rows)) {

-        $data['additional'][] = $row;

-      }

-      return $data;

+  if (isset($row["authmech"])) {

+    switch ($row["authmech"]) {

+      case "yubi_otp":

+        $data['name'] = "yubi_otp";

+        $data['pretty'] = "Yubico OTP";

+        $stmt = $pdo->prepare("SELECT `id`, `key_id`, RIGHT(`secret`, 12) AS 'modhex' FROM `tfa` WHERE `authmech` = 'yubi_otp' AND `username` = :username");

+        $stmt->execute(array(

+          ':username' => $username,

+        ));

+        $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

+        while($row = array_shift($rows)) {

+          $data['additional'][] = $row;

+        }

+        return $data;

       break;

-    default:

-      $data['name'] = 'none';

-      $data['pretty'] = "-";

-      return $data;

-    break;

-	}

+      case "u2f":

+        $data['name'] = "u2f";

+        $data['pretty'] = "Fido U2F";

+        $stmt = $pdo->prepare("SELECT `id`, `key_id` FROM `tfa` WHERE `authmech` = 'u2f' AND `username` = :username");

+        $stmt->execute(array(

+          ':username' => $username,

+        ));

+        $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

+        while($row = array_shift($rows)) {

+          $data['additional'][] = $row;

+        }

+        return $data;

+      break;

+      case "hotp":

+        $data['name'] = "hotp";

+        $data['pretty'] = "HMAC-based OTP";

+        return $data;

+      break;

+       case "totp":

+        $data['name'] = "totp";

+        $data['pretty'] = "Time-based OTP";

+        $stmt = $pdo->prepare("SELECT `id`, `key_id`, `secret` FROM `tfa` WHERE `authmech` = 'totp' AND `username` = :username");

+        $stmt->execute(array(

+          ':username' => $username,

+        ));

+        $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

+        while($row = array_shift($rows)) {

+          $data['additional'][] = $row;

+        }

+        return $data;

+        break;

+      default:

+        $data['name'] = 'none';

+        $data['pretty'] = "-";

+        return $data;

+      break;

+    }

+  }

+  else {

+    $data['name'] = 'none';

+    $data['pretty'] = "-";

+    return $data;

+  }

 }

 function verify_tfa_login($username, $token) {

-	global $pdo;

-	global $yubi;

-	global $u2f;

-	global $tfa;

+  global $pdo;

+  global $yubi;

+  global $u2f;

+  global $tfa;

   $stmt = $pdo->prepare("SELECT `authmech` FROM `tfa`

       WHERE `username` = :username AND `active` = '1'");

   $stmt->execute(array(':username' => $username));

   $row = $stmt->fetch(PDO::FETCH_ASSOC);

 

-	switch ($row["authmech"]) {

-		case "yubi_otp":

-			if (!ctype_alnum($token) || strlen($token) != 44) {

-				$_SESSION['return'][] =  array(

-					'type' => 'danger',

+  switch ($row["authmech"]) {

+    case "yubi_otp":

+      if (!ctype_alnum($token) || strlen($token) != 44) {

+        $_SESSION['return'][] =  array(

+          'type' => 'danger',

           'log' => array(__FUNCTION__, $username, '*'),

-					'msg' => array('yotp_verification_failed', 'token length error')

-				);

+          'msg' => array('yotp_verification_failed', 'token length error')

+        );

         return false;

       }

       $yubico_modhex_id = substr($token, 0, 12);

@@ -1298,20 +1546,20 @@
       $yubi = new Auth_Yubico($yubico_auth[0], $yubico_auth[1]);

       $yauth = $yubi->verify($token);

       if (PEAR::isError($yauth)) {

-				$_SESSION['return'][] =  array(

-					'type' => 'danger',

+        $_SESSION['return'][] =  array(

+          'type' => 'danger',

           'log' => array(__FUNCTION__, $username, '*'),

-					'msg' => array('yotp_verification_failed', $yauth->getMessage())

-				);

-				return false;

+          'msg' => array('yotp_verification_failed', $yauth->getMessage())

+        );

+        return false;

       }

       else {

         $_SESSION['tfa_id'] = $row['id'];

-				$_SESSION['return'][] =  array(

-					'type' => 'success',

+        $_SESSION['return'][] =  array(

+          'type' => 'success',

           'log' => array(__FUNCTION__, $username, '*'),

-					'msg' => 'verified_yotp_login'

-				);

+          'msg' => 'verified_yotp_login'

+        );

         return true;

       }

       $_SESSION['return'][] =  array(

@@ -1396,31 +1644,34 @@
     );

     return false;

   break;

-	}

+  }

   return false;

 }

 function admin_api($access, $action, $data = null) {

-	global $pdo;

-	if ($_SESSION['mailcow_cc_role'] != "admin") {

-		$_SESSION['return'][] =  array(

-			'type' => 'danger',

+  global $pdo;

+  if ($_SESSION['mailcow_cc_role'] != "admin") {

+    $_SESSION['return'][] =  array(

+      'type' => 'danger',

       'log' => array(__FUNCTION__),

-			'msg' => 'access_denied'

-		);

-		return false;

-	}

+      'msg' => 'access_denied'

+    );

+    return false;

+  }

   if ($access !== "ro" && $access !== "rw") {

-		$_SESSION['return'][] =  array(

-			'type' => 'danger',

+    $_SESSION['return'][] =  array(

+      'type' => 'danger',

       'log' => array(__FUNCTION__),

-			'msg' => 'invalid access type'

-		);

-		return false;

+      'msg' => 'invalid access type'

+    );

+    return false;

   }

   if ($action == "edit") {

     $active = (!empty($data['active'])) ? 1 : 0;

     $skip_ip_check = (isset($data['skip_ip_check'])) ? 1 : 0;

-    $allow_from = array_map('trim', preg_split( "/( |,|;|\n)/", $data['allow_from']));

+    $allow_from = array();

+    if (isset($data['allow_from'])) {

+      $allow_from = array_map('trim', preg_split( "/( |,|;|\n)/", $data['allow_from']));

+    }

     foreach ($allow_from as $key => $val) {

       if (empty($val)) {

         unset($allow_from[$key]);

@@ -1507,29 +1758,31 @@
   elseif ($action == "get") {

     $stmt = $pdo->query("SELECT * FROM `api` WHERE `access` = '" . $access . "'");

     $apidata = $stmt->fetch(PDO::FETCH_ASSOC);

-    $apidata['allow_from'] = str_replace(',', PHP_EOL, $apidata['allow_from']);

+    if ($apidata !== false) {

+      $apidata['allow_from'] = str_replace(',', PHP_EOL, $apidata['allow_from']);

+    }

     return $apidata;

   }

-	$_SESSION['return'][] =  array(

-		'type' => 'success',

+  $_SESSION['return'][] =  array(

+    'type' => 'success',

     'log' => array(__FUNCTION__, $data),

-		'msg' => 'admin_api_modified'

-	);

+    'msg' => 'admin_api_modified'

+  );

 }

 function license($action, $data = null) {

-	global $pdo;

-	global $redis;

-	global $lang;

-	if ($_SESSION['mailcow_cc_role'] != "admin") {

-		$_SESSION['return'][] =  array(

-			'type' => 'danger',

+  global $pdo;

+  global $redis;

+  global $lang;

+  if ($_SESSION['mailcow_cc_role'] != "admin") {

+    $_SESSION['return'][] =  array(

+      'type' => 'danger',

       'log' => array(__FUNCTION__),

-			'msg' => 'access_denied'

-		);

-		return false;

-	}

-	switch ($action) {

-		case "verify":

+      'msg' => 'access_denied'

+    );

+    return false;

+  }

+  switch ($action) {

+    case "verify":

       // Keep result until revalidate button is pressed or session expired

       $stmt = $pdo->query("SELECT `version` FROM `versions` WHERE `application` = 'GUID'");

       $versions = $stmt->fetch(PDO::FETCH_ASSOC);

@@ -1588,16 +1841,16 @@
   }

 }

 function rspamd_ui($action, $data = null) {

-	if ($_SESSION['mailcow_cc_role'] != "admin") {

-		$_SESSION['return'][] =  array(

-			'type' => 'danger',

+  if ($_SESSION['mailcow_cc_role'] != "admin") {

+    $_SESSION['return'][] =  array(

+      'type' => 'danger',

       'log' => array(__FUNCTION__),

-			'msg' => 'access_denied'

-		);

-		return false;

-	}

-	switch ($action) {

-		case "edit":

+      'msg' => 'access_denied'

+    );

+    return false;

+  }

+  switch ($action) {

+    case "edit":

       $rspamd_ui_pass = $data['rspamd_ui_pass'];

       $rspamd_ui_pass2 = $data['rspamd_ui_pass2'];

       if (empty($rspamd_ui_pass) || empty($rspamd_ui_pass2)) {

@@ -1673,11 +1926,11 @@
     $to = intval($to);

     if ($from < 1 || $to < $from) { return false; }

   }

-	global $redis;

-	global $pdo;

-	if ($_SESSION['mailcow_cc_role'] != "admin") {

-		return false;

-	}

+  global $redis;

+  global $pdo;

+  if ($_SESSION['mailcow_cc_role'] != "admin") {

+    return false;

+  }

   // SQL

   if ($application == "mailcow-ui") {

     if (isset($from) && isset($to)) {

@@ -1699,6 +1952,26 @@
       return $data;

     }

   }

+  if ($application == "sasl") {

+    if (isset($from) && isset($to)) {

+      $stmt = $pdo->prepare("SELECT * FROM `sasl_log` ORDER BY `datetime` DESC LIMIT :from, :to");

+      $stmt->execute(array(

+        ':from' => $from - 1,

+        ':to' => $to

+      ));

+      $data = $stmt->fetchAll(PDO::FETCH_ASSOC);

+    }

+    else {

+      $stmt = $pdo->prepare("SELECT * FROM `sasl_log` ORDER BY `datetime` DESC LIMIT :lines");

+      $stmt->execute(array(

+        ':lines' => $lines + 1,

+      ));

+      $data = $stmt->fetchAll(PDO::FETCH_ASSOC);

+    }

+    if (is_array($data)) {

+      return $data;

+    }

+  }

   // Redis

   if ($application == "dovecot-mailcow") {

     if (isset($from) && isset($to)) {

diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/functions.mailbox.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/functions.mailbox.inc.php
index fff4190..24e5dab 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/functions.mailbox.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/functions.mailbox.inc.php
@@ -35,7 +35,7 @@
           else {

             $username = $_SESSION['mailcow_cc_username'];

           }

-          if (!is_numeric($_data["validity"]) || $_data["validity"] > 672) {

+          if (isset($_data["validity"]) && !filter_var($_data["validity"], FILTER_VALIDATE_INT, array('options' => array('min_range' => 1, 'max_range' => 87600)))) {

             $_SESSION['return'][] = array(

               'type' => 'danger',

               'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),

@@ -43,8 +43,17 @@
             );

             return false;

           }

-          $domain = mailbox('get', 'mailbox_details', $username)['domain'];

-          if (!is_valid_domain_name($domain)) {

+          else {

+            // Default to 1 yr

+            $_data["validity"] = 8760;

+          }

+          $domain = $_data['domain'];

+          $valid_domains[] = mailbox('get', 'mailbox_details', $username)['domain'];

+          $valid_alias_domains = user_get_alias_details($username)['alias_domains'];

+          if (!empty($valid_alias_domains)) {

+            $valid_domains = array_merge($valid_domains, $valid_alias_domains);

+          }

+          if (!in_array($domain, $valid_domains)) {

             $_SESSION['return'][] = array(

               'type' => 'danger',

               'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),

@@ -52,13 +61,11 @@
             );

             return false;

           }

-          $validity = strtotime("+".$_data["validity"]." hour");

-          $letters = 'abcefghijklmnopqrstuvwxyz1234567890';

-          $random_name = substr(str_shuffle($letters), 0, 24);

+          $validity = strtotime("+" . $_data["validity"] . " hour");

           $stmt = $pdo->prepare("INSERT INTO `spamalias` (`address`, `goto`, `validity`) VALUES

             (:address, :goto, :validity)");

           $stmt->execute(array(

-            ':address' => $random_name . '@' . $domain,

+            ':address' => readable_random_string(rand(rand(3, 9), rand(3, 9))) . '.' . readable_random_string(rand(rand(3, 9), rand(3, 9))) . '@' . $domain,

             ':goto' => $username,

             ':validity' => $validity

           ));

@@ -441,17 +448,17 @@
             );

             return false;

           }

-          $domain				= idn_to_ascii(strtolower(trim($_data['domain'])), 0, INTL_IDNA_VARIANT_UTS46);

+          $domain       = idn_to_ascii(strtolower(trim($_data['domain'])), 0, INTL_IDNA_VARIANT_UTS46);

           $description  = $_data['description'];

           if (empty($description)) {

             $description = $domain;

           }

-          $aliases			= $_data['aliases'];

-          $mailboxes    = $_data['mailboxes'];

-          $defquota			= $_data['defquota'];

-          $maxquota			= $_data['maxquota'];

-          $restart_sogo = $_data['restart_sogo'];

-          $quota				= $_data['quota'];

+          $aliases      = (int)$_data['aliases'];

+          $mailboxes    = (int)$_data['mailboxes'];

+          $defquota     = (int)$_data['defquota'];

+          $maxquota     = (int)$_data['maxquota'];

+          $restart_sogo = (int)$_data['restart_sogo'];

+          $quota        = (int)$_data['quota'];

           if ($defquota > $maxquota) {

             $_SESSION['return'][] = array(

                 'type' => 'danger',

@@ -673,9 +680,10 @@
                 continue;

               }

             }

+            $gotos = array_unique($gotos);

             $gotos = array_filter($gotos);

             if (empty($gotos)) { return false; }

-            $goto = implode(",", $gotos);

+            $goto = implode(",", (array)$gotos);

           }

           foreach ($addresses as $address) {

             if (empty($address)) {

@@ -928,7 +936,7 @@
           $password     = $_data['password'];

           $password2    = $_data['password2'];

           $name         = ltrim(rtrim($_data['name'], '>'), '<');

-          $quota_m			= intval($_data['quota']);

+          $quota_m      = intval($_data['quota']);

           if ((!isset($_SESSION['acl']['unlimited_quota']) || $_SESSION['acl']['unlimited_quota'] != "1") && $quota_m === 0) {

             $_SESSION['return'][] = array(

               'type' => 'danger',

@@ -948,9 +956,10 @@
           $imap_access = (isset($_data['imap_access'])) ? intval($_data['imap_access']) : intval($MAILBOX_DEFAULT_ATTRIBUTES['imap_access']);

           $pop3_access = (isset($_data['pop3_access'])) ? intval($_data['pop3_access']) : intval($MAILBOX_DEFAULT_ATTRIBUTES['pop3_access']);

           $smtp_access = (isset($_data['smtp_access'])) ? intval($_data['smtp_access']) : intval($MAILBOX_DEFAULT_ATTRIBUTES['smtp_access']);

+          $relayhost = (isset($_data['relayhost'])) ? intval($_data['relayhost']) : 0;

           $quarantine_notification = (isset($_data['quarantine_notification'])) ? strval($_data['quarantine_notification']) : strval($MAILBOX_DEFAULT_ATTRIBUTES['quarantine_notification']);

           $quarantine_category = (isset($_data['quarantine_category'])) ? strval($_data['quarantine_category']) : strval($MAILBOX_DEFAULT_ATTRIBUTES['quarantine_category']);

-          $quota_b		= ($quota_m * 1048576);

+          $quota_b    = ($quota_m * 1048576);

           $mailbox_attrs = json_encode(

             array(

               'force_pw_update' => strval($force_pw_update),

@@ -960,6 +969,8 @@
               'imap_access' => strval($imap_access),

               'pop3_access' => strval($pop3_access),

               'smtp_access' => strval($smtp_access),

+              'relayhost' => strval($relayhost),

+              'passwd_update' => time(),

               'mailbox_format' => strval($MAILBOX_DEFAULT_ATTRIBUTES['mailbox_format']),

               'quarantine_notification' => strval($quarantine_notification),

               'quarantine_category' => strval($quarantine_category)

@@ -989,7 +1000,7 @@
             COUNT(*) as count,

             COALESCE(ROUND(SUM(`quota`)/1048576), 0) as `quota`

               FROM `mailbox`

-                WHERE `kind` NOT REGEXP 'location|thing|group'

+                WHERE (`kind` = '' OR `kind` = NULL)

                   AND `domain` = :domain");

           $stmt->execute(array(':domain' => $domain));

           $MailboxData = $stmt->fetch(PDO::FETCH_ASSOC);

@@ -1037,39 +1048,10 @@
             );

             return false;

           }

-          if (!empty($password) && !empty($password2)) {

-            if (!preg_match('/' . $GLOBALS['PASSWD_REGEP'] . '/', $password)) {

-              $_SESSION['return'][] = array(

-                'type' => 'danger',

-                'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),

-                'msg' => 'password_complexity'

-              );

-              return false;

-            }

-            if ($password != $password2) {

-              $_SESSION['return'][] = array(

-                'type' => 'danger',

-                'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),

-                'msg' => 'password_mismatch'

-              );

-              return false;

-            }

-            // support pre hashed passwords

-            if (preg_match('/^({SSHA256}|{SSHA}|{SHA512-CRYPT}|{SSHA512}|{MD5-CRYPT}|{PLAIN-MD5})/i', $password)) {

-              $password_hashed = $password;

-            }

-            else {

-              $password_hashed = hash_password($password);

-            }

-          }

-          else {

-            $_SESSION['return'][] = array(

-              'type' => 'danger',

-              'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),

-              'msg' => 'password_empty'

-            );

+          if (password_check($password, $password2) !== true) {

             return false;

           }

+          $password_hashed = hash_password($password);

           if ($MailboxData['count'] >= $DomainData['mailboxes']) {

             $_SESSION['return'][] = array(

               'type' => 'danger',

@@ -1107,6 +1089,12 @@
             ':mailbox_attrs' => $mailbox_attrs,

             ':active' => $active

           ));

+          $stmt = $pdo->prepare("UPDATE `mailbox` SET

+            `attributes` = JSON_SET(`attributes`, '$.passwd_update', NOW())

+              WHERE `username` = :username");

+          $stmt->execute(array(

+            ':username' => $username

+          ));

           $stmt = $pdo->prepare("INSERT INTO `quota2` (`username`, `bytes`, `messages`)

             VALUES (:username, '0', '0') ON DUPLICATE KEY UPDATE `bytes` = '0', `messages` = '0';");

           $stmt->execute(array(':username' => $username));

@@ -1506,8 +1494,8 @@
               );

               continue;

             }

-            $lowspamlevel	= explode(',', $_data['spam_score'])[0];

-            $highspamlevel	= explode(',', $_data['spam_score'])[1];

+            $lowspamlevel = explode(',', $_data['spam_score'])[0];

+            $highspamlevel  = explode(',', $_data['spam_score'])[1];

             if (!is_numeric($lowspamlevel) || !is_numeric($highspamlevel)) {

               $_SESSION['return'][] = array(

                 'type' => 'danger',

@@ -1516,6 +1504,9 @@
               );

               continue;

             }

+            if ($lowspamlevel == $highspamlevel) {

+              $highspamlevel = $highspamlevel + 0.1;

+            }

             $stmt = $pdo->prepare("DELETE FROM `filterconf` WHERE `object` = :username

               AND (`option` = 'lowspamlevel' OR `option` = 'highspamlevel')");

             $stmt->execute(array(

@@ -1581,7 +1572,7 @@
             $_SESSION['return'][] = array(

               'type' => 'success',

               'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),

-              'msg' => array('mailbox_modified', htmlspecialchars(implode(', ', $usernames)))

+              'msg' => array('mailbox_modified', htmlspecialchars(implode(', ', (array)$usernames)))

             );

           }

         break;

@@ -1932,6 +1923,52 @@
               );

               continue;

             }

+            if ($_data['expand_alias'] === true || $_data['expand_alias'] == 1) {

+              $stmt = $pdo->prepare("SELECT `address` FROM `alias`

+                WHERE `address` = :address

+                  AND `domain` NOT IN (

+                    SELECT `alias_domain` FROM `alias_domain`

+                  )");

+              $stmt->execute(array(

+                ':address' => $address,

+              ));

+              $num_results = count($stmt->fetchAll(PDO::FETCH_ASSOC));

+              if ($num_results == 0) {

+                $_SESSION['return'][] = array(

+                  'type' => 'warning',

+                  'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),

+                  'msg' => array('is_not_primary_alias', htmlspecialchars($address))

+                );

+                continue;

+              }

+              $stmt = $pdo->prepare("SELECT `goto`, GROUP_CONCAT(CONCAT(SUBSTRING(`alias`.`address`, 1, LOCATE('@', `alias`.`address`) - 1), '@', `alias_domain`.`alias_domain`)) AS `missing_alias`

+                FROM `alias` JOIN `alias_domain` ON `alias_domain`.`target_domain` = `alias`.`domain`

+                    WHERE CONCAT(SUBSTRING(`alias`.`address`, 1, LOCATE('@', `alias`.`address`) - 1), '@', `alias_domain`.`alias_domain`) NOT IN (

+                      SELECT `address` FROM `alias` WHERE `address` != `goto`

+                    )

+                    AND `alias`.`address` NOT IN (

+                      SELECT `address` FROM `alias` WHERE `address` = `goto`

+                    )

+                    AND `address` = :address ;");

+              $stmt->execute(array(

+                ':address' => $address

+              ));

+              $missing_aliases = $stmt->fetch(PDO::FETCH_ASSOC);

+              if (!empty($missing_aliases['missing_alias'])) {

+                mailbox('add', 'alias', array(

+                  'address' => $missing_aliases['missing_alias'],

+                  'goto' => $missing_aliases['goto'],

+                  'sogo_visible' => 1,

+                  'active' => 1

+                ));

+              }

+              $_SESSION['return'][] = array(

+                'type' => 'success',

+                'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),

+                'msg' => array('alias_modified', htmlspecialchars($address))

+              );

+              continue;

+            }

             $domain = idn_to_ascii(substr(strstr($address, '@'), 1), 0, INTL_IDNA_VARIANT_UTS46);

             if ($is_now['address'] != $address) {

               $local_part = strstr($address, '@', true);

@@ -2041,8 +2078,9 @@
                   ':address' => $address

                 ));

               }

+              $gotos = array_unique($gotos);

               $gotos = array_filter($gotos);

-              $goto = implode(",", $gotos);

+              $goto = implode(",", (array)$gotos);

             }

             if (!empty($goto)) {

               $stmt = $pdo->prepare("UPDATE `alias` SET

@@ -2096,6 +2134,7 @@
               if (!empty($is_now)) {

                 $gal                  = (isset($_data['gal'])) ? intval($_data['gal']) : $is_now['gal'];

                 $description          = (!empty($_data['description']) && isset($_SESSION['acl']['domain_desc']) && $_SESSION['acl']['domain_desc'] == "1") ? $_data['description'] : $is_now['description'];

+                (int)$relayhost       = (isset($_data['relayhost']) && isset($_SESSION['acl']['domain_relayhost']) && $_SESSION['acl']['domain_relayhost'] == "1") ? intval($_data['relayhost']) : intval($is_now['relayhost']);

               }

               else {

                 $_SESSION['return'][] = array(

@@ -2157,7 +2196,7 @@
                   MAX(COALESCE(ROUND(`quota`/1048576), 0)) AS `biggest_mailbox`,

                   COALESCE(ROUND(SUM(`quota`)/1048576), 0) AS `quota_all`

                     FROM `mailbox`

-                      WHERE `kind` NOT REGEXP 'location|thing|group'

+                      WHERE (`kind` = '' OR `kind` = NULL)

                         AND domain = :domain");

               $stmt->execute(array(':domain' => $domain));

               $MailboxData = $stmt->fetch(PDO::FETCH_ASSOC);

@@ -2300,6 +2339,7 @@
               (int)$imap_access = (isset($_data['imap_access']) && isset($_SESSION['acl']['protocol_access']) && $_SESSION['acl']['protocol_access'] == "1") ? intval($_data['imap_access']) : intval($is_now['attributes']['imap_access']);

               (int)$pop3_access = (isset($_data['pop3_access']) && isset($_SESSION['acl']['protocol_access']) && $_SESSION['acl']['protocol_access'] == "1") ? intval($_data['pop3_access']) : intval($is_now['attributes']['pop3_access']);

               (int)$smtp_access = (isset($_data['smtp_access']) && isset($_SESSION['acl']['protocol_access']) && $_SESSION['acl']['protocol_access'] == "1") ? intval($_data['smtp_access']) : intval($is_now['attributes']['smtp_access']);

+              (int)$relayhost = (isset($_data['relayhost']) && isset($_SESSION['acl']['mailbox_relayhost']) && $_SESSION['acl']['mailbox_relayhost'] == "1") ? intval($_data['relayhost']) : intval($is_now['attributes']['relayhost']);

               (int)$quota_m = (isset_has_content($_data['quota'])) ? intval($_data['quota']) : ($is_now['quota'] / 1048576);

               $name       = (!empty($_data['name'])) ? ltrim(rtrim($_data['name'], '>'), '<') : $is_now['name'];

               $domain     = $is_now['domain'];

@@ -2324,11 +2364,6 @@
               );

               return false;

             }

-            $stmt = $pdo->prepare("SELECT `quota`, `maxquota`

-              FROM `domain`

-                WHERE `domain` = :domain");

-            $stmt->execute(array(':domain' => $domain));

-            $DomainData = $stmt->fetch(PDO::FETCH_ASSOC);

             if (!hasDomainAccess($_SESSION['mailcow_cc_username'], $_SESSION['mailcow_cc_role'], $domain)) {

               $_SESSION['return'][] = array(

                 'type' => 'danger',

@@ -2337,15 +2372,8 @@
               );

               continue;

             }

-            if ($quota_m > $DomainData['maxquota']) {

-              $_SESSION['return'][] = array(

-                'type' => 'danger',

-                'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),

-                'msg' => array('mailbox_quota_exceeded', $DomainData['maxquota'])

-              );

-              continue;

-            }

-            if (((($is_now['quota_used'] / 1048576) - $quota_m) + $quota_m) > $DomainData['quota']) {

+            $DomainData = mailbox('get', 'domain_details', $domain);

+            if ($quota_m > ($is_now['max_new_quota'] / 1048576)) {

               $_SESSION['return'][] = array(

                 'type' => 'danger',

                 'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),

@@ -2353,6 +2381,14 @@
               );

               continue;

             }

+            if ($quota_m > $DomainData['max_quota_for_mbox']) {

+              $_SESSION['return'][] = array(

+                'type' => 'danger',

+                'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),

+                'msg' => array('mailbox_quota_exceeded', $DomainData['max_quota_for_mbox'])

+              );

+              continue;

+            }

             $extra_acls = array();

             if (isset($_data['extended_sender_acl'])) {

               if (!isset($_SESSION['acl']['extend_sender_acl']) || $_SESSION['acl']['extend_sender_acl'] != "1" ) {

@@ -2539,39 +2575,21 @@
                 ));

               }

             }

-            if (!empty($password) && !empty($password2)) {

-              if (!preg_match('/' . $GLOBALS['PASSWD_REGEP'] . '/', $password)) {

-                $_SESSION['return'][] = array(

-                  'type' => 'danger',

-                  'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),

-                  'msg' => 'password_complexity'

-                );

+            if (!empty($password)) {

+              if (password_check($password, $password2) !== true) {

                 continue;

               }

-              if ($password != $password2) {

-                $_SESSION['return'][] = array(

-                  'type' => 'danger',

-                  'log' => array(__FUNCTION__, $_action, $_type, $_data_log, $_attr),

-                  'msg' => 'password_mismatch'

-                );

-                continue;

-              }

-              // support pre hashed passwords

-              if (preg_match('/^({SSHA256}|{SSHA}|{SHA512-CRYPT}|{SSHA512}|{MD5-CRYPT}|{PLAIN-MD5})/i', $password)) {

-                $password_hashed = $password;

-              }

-              else {

-                $password_hashed = hash_password($password);

-              }

+              $password_hashed = hash_password($password);

               $stmt = $pdo->prepare("UPDATE `mailbox` SET

-                  `password` = :password_hashed

+                  `password` = :password_hashed,

+                  `attributes` = JSON_SET(`attributes`, '$.passwd_update', NOW())

                     WHERE `username` = :username");

               $stmt->execute(array(

                 ':password_hashed' => $password_hashed,

                 ':username' => $username

               ));

             }

-            // We could either set alias = 1 if alias = 2 or tune the Postfix alias table (that's what we did, TODO: to it the other way)

+            // We could either set alias = 1 if alias = 2 or tune the Postfix alias table (that's what we did, TODO: do it the other way)

             $stmt = $pdo->prepare("UPDATE `alias` SET

                 `active` = :active

                   WHERE `address` = :address");

@@ -2587,6 +2605,7 @@
                 `attributes` = JSON_SET(`attributes`, '$.sogo_access', :sogo_access),

                 `attributes` = JSON_SET(`attributes`, '$.imap_access', :imap_access),

                 `attributes` = JSON_SET(`attributes`, '$.pop3_access', :pop3_access),

+                `attributes` = JSON_SET(`attributes`, '$.relayhost', :relayhost),

                 `attributes` = JSON_SET(`attributes`, '$.smtp_access', :smtp_access)

                   WHERE `username` = :username");

             $stmt->execute(array(

@@ -2598,6 +2617,7 @@
               ':imap_access' => $imap_access,

               ':pop3_access' => $pop3_access,

               ':smtp_access' => $smtp_access,

+              ':relayhost' => $relayhost,

               ':username' => $username

             ));

             $_SESSION['return'][] = array(

@@ -2819,7 +2839,7 @@
             return false;

           }

           elseif (isset($_data) && hasDomainAccess($_SESSION['mailcow_cc_username'], $_SESSION['mailcow_cc_role'], $_data)) {

-            $stmt = $pdo->prepare("SELECT `username` FROM `mailbox` WHERE `kind` NOT REGEXP 'location|thing|group' AND `domain` = :domain");

+            $stmt = $pdo->prepare("SELECT `username` FROM `mailbox` WHERE (`kind` = '' OR `kind` = NULL) AND `domain` = :domain");

             $stmt->execute(array(

               ':domain' => $_data,

             ));

@@ -2829,7 +2849,7 @@
             }

           }

           else {

-            $stmt = $pdo->prepare("SELECT `username` FROM `mailbox` WHERE `kind` NOT REGEXP 'location|thing|group' AND (`domain` IN (SELECT `domain` FROM `domain_admins` WHERE `active` = '1' AND `username` = :username) OR 'admin' = :role)");

+            $stmt = $pdo->prepare("SELECT `username` FROM `mailbox` WHERE (`kind` = '' OR `kind` = NULL) AND (`domain` IN (SELECT `domain` FROM `domain_admins` WHERE `active` = '1' AND `username` = :username) OR 'admin' = :role)");

             $stmt->execute(array(

               ':username' => $_SESSION['mailcow_cc_username'],

               ':role' => $_SESSION['mailcow_cc_role'],

@@ -2982,7 +3002,7 @@
             while($field = array_shift($fields)) {

               $shown_fields[] = $field['Field'];

             }

-            $stmt = $pdo->prepare("SELECT " . implode(',', $shown_fields) . ",

+            $stmt = $pdo->prepare("SELECT " . implode(',', (array)$shown_fields) . ",

               `active`

                 FROM `imapsync` WHERE id = :id");

           }

@@ -2997,7 +3017,7 @@
             while($field = array_shift($fields)) {

               $shown_fields[] = $field['Field'];

             }

-            $stmt = $pdo->prepare("SELECT " . implode(',', $shown_fields) . ",

+            $stmt = $pdo->prepare("SELECT " . implode(',', (array)$shown_fields) . ",

               `active`

                 FROM `imapsync` WHERE id = :id");

           }

@@ -3113,7 +3133,9 @@
           }

           $stmt = $pdo->prepare("SELECT `address`,

             `goto`,

-            `validity`

+            `validity`,

+            `created`,

+            `modified`

               FROM `spamalias`

                 WHERE `goto` = :username

                   AND `validity` >= :unixnow");

@@ -3362,10 +3384,10 @@
           if (empty($row)) {

             return false;

           }

-          $stmt = $pdo->prepare("SELECT COUNT(*) AS `count`,

+          $stmt = $pdo->prepare("SELECT COUNT(`username`) AS `count`,

             COALESCE(SUM(`quota`), 0) AS `in_use`

               FROM `mailbox`

-                WHERE `kind` NOT REGEXP 'location|thing|group'

+                WHERE (`kind` = '' OR `kind` = NULL)

                   AND `domain` = :domain");

           $stmt->execute(array(':domain' => $row['domain']));

           $MailboxDataDomain = $stmt->fetch(PDO::FETCH_ASSOC);

@@ -3377,7 +3399,7 @@
           $stmt->execute(array(':domain' => $row['domain']));

           $SumQuotaInUse = $stmt->fetch(PDO::FETCH_ASSOC);

           $rl = ratelimit('get', 'domain', $_data);

-          $domaindata['max_new_mailbox_quota']	= ($row['quota'] * 1048576) - $MailboxDataDomain['in_use'];

+          $domaindata['max_new_mailbox_quota']  = ($row['quota'] * 1048576) - $MailboxDataDomain['in_use'];

           if ($domaindata['max_new_mailbox_quota'] > ($row['maxquota'] * 1048576)) {

             $domaindata['max_new_mailbox_quota'] = ($row['maxquota'] * 1048576);

           }

@@ -3399,7 +3421,7 @@
             $domaindata['msgs_total'] = 0;

           }

           $domaindata['mboxes_in_domain'] = $MailboxDataDomain['count'];

-          $domaindata['mboxes_left'] = $row['mailboxes']	- $MailboxDataDomain['count'];

+          $domaindata['mboxes_left'] = $row['mailboxes']  - $MailboxDataDomain['count'];

           $domaindata['domain_name'] = $row['domain'];

           $domaindata['description'] = $row['description'];

           $domaindata['max_num_aliases_for_domain'] = $row['aliases'];

@@ -3419,7 +3441,7 @@
           $domaindata['relay_all_recipients_int'] = $row['relay_all_recipients'];

           $domaindata['relay_unknown_only'] = $row['relay_unknown_only'];

           $domaindata['relay_unknown_only_int'] = $row['relay_unknown_only'];

-          $stmt = $pdo->prepare("SELECT COUNT(*) AS `alias_count` FROM `alias`

+          $stmt = $pdo->prepare("SELECT COUNT(`address`) AS `alias_count` FROM `alias`

             WHERE (`domain`= :domain OR `domain` IN (SELECT `alias_domain` FROM `alias_domain` WHERE `target_domain` = :domain2))

               AND `address` NOT IN (

                 SELECT `username` FROM `mailbox`

@@ -3430,7 +3452,7 @@
           ));

           $AliasDataDomain = $stmt->fetch(PDO::FETCH_ASSOC);

           (isset($AliasDataDomain['alias_count'])) ? $domaindata['aliases_in_domain'] = $AliasDataDomain['alias_count'] : $domaindata['aliases_in_domain'] = "0";

-          $domaindata['aliases_left'] = $row['aliases']	- $AliasDataDomain['alias_count'];

+          $domaindata['aliases_left'] = $row['aliases'] - $AliasDataDomain['alias_count'];

           if ($_SESSION['mailcow_cc_role'] == "admin")

           {

               $stmt = $pdo->prepare("SELECT GROUP_CONCAT(`username` SEPARATOR ', ') AS domain_admins FROM `domain_admins` WHERE `domain` = :domain");

@@ -3447,19 +3469,6 @@
             return false;

           }

           $mailboxdata = array();

-          $rl = ratelimit('get', 'mailbox', $_data);

-          $last_imap_login = $redis->Get('last-login/imap/' . $_data);

-          $last_smtp_login = $redis->Get('last-login/smtp/' . $_data);

-          $last_pop3_login = $redis->Get('last-login/pop3/' . $_data);

-          if ($last_imap_login === false || $GLOBALS['SHOW_LAST_LOGIN'] === false) {

-            $last_imap_login = '0';

-          }

-          if ($last_smtp_login === false || $GLOBALS['SHOW_LAST_LOGIN'] === false) {

-            $last_smtp_login = '0';

-          }

-          if ($last_pop3_login === false || $GLOBALS['SHOW_LAST_LOGIN'] === false) {

-            $last_pop3_login = '0';

-          }

           if (preg_match('/y|yes/i', getenv('MASTER'))) {

             $stmt = $pdo->prepare("SELECT

               `domain`.`backupmx`,

@@ -3473,7 +3482,10 @@
               `attributes`,

               `quota2`.`messages`

                 FROM `mailbox`, `quota2`, `domain`

-                  WHERE `mailbox`.`kind` NOT REGEXP 'location|thing|group' AND `mailbox`.`username` = `quota2`.`username` AND `domain`.`domain` = `mailbox`.`domain` AND `mailbox`.`username` = :mailbox");

+                  WHERE (`mailbox`.`kind` = '' OR `mailbox`.`kind` = NULL)

+                    AND `mailbox`.`username` = `quota2`.`username`

+                    AND `domain`.`domain` = `mailbox`.`domain`

+                    AND `mailbox`.`username` = :mailbox");

           }

           else {

             $stmt = $pdo->prepare("SELECT

@@ -3488,53 +3500,29 @@
               `attributes`,

               `quota2replica`.`messages`

                 FROM `mailbox`, `quota2replica`, `domain`

-                  WHERE `mailbox`.`kind` NOT REGEXP 'location|thing|group' AND `mailbox`.`username` = `quota2replica`.`username` AND `domain`.`domain` = `mailbox`.`domain` AND `mailbox`.`username` = :mailbox");

+                  WHERE (`mailbox`.`kind` = '' OR `mailbox`.`kind` = NULL)

+                    AND `mailbox`.`username` = `quota2replica`.`username`

+                    AND `domain`.`domain` = `mailbox`.`domain`

+                    AND `mailbox`.`username` = :mailbox");

           }

           $stmt->execute(array(

             ':mailbox' => $_data,

           ));

           $row = $stmt->fetch(PDO::FETCH_ASSOC);

-          $stmt = $pdo->prepare("SELECT `maxquota`, `quota` FROM  `domain` WHERE `domain` = :domain");

-          $stmt->execute(array(':domain' => $row['domain']));

-          $DomainQuota  = $stmt->fetch(PDO::FETCH_ASSOC);

-          $stmt = $pdo->prepare("SELECT IFNULL(COUNT(`active`), 0) AS `pushover_active` FROM `pushover` WHERE `username` = :username AND `active` = 1");

-          $stmt->execute(array(':username' => $_data));

-          $PushoverActive  = $stmt->fetch(PDO::FETCH_ASSOC);

-          $stmt = $pdo->prepare("SELECT COALESCE(SUM(`quota`), 0) as `in_use` FROM `mailbox` WHERE `kind` NOT REGEXP 'location|thing|group' AND `domain` = :domain AND `username` != :username");

-          $stmt->execute(array(':domain' => $row['domain'], ':username' => $_data));

-          $MailboxUsage	= $stmt->fetch(PDO::FETCH_ASSOC);

-          $stmt = $pdo->prepare("SELECT IFNULL(COUNT(`address`), 0) AS `sa_count` FROM `spamalias` WHERE `goto` = :address AND `validity` >= :unixnow");

-          $stmt->execute(array(':address' => $_data, ':unixnow' => time()));

-          $SpamaliasUsage	= $stmt->fetch(PDO::FETCH_ASSOC);

-          $mailboxdata['max_new_quota'] = ($DomainQuota['quota'] * 1048576) - $MailboxUsage['in_use'];

-          if ($mailboxdata['max_new_quota'] > ($DomainQuota['maxquota'] * 1048576)) {

-            $mailboxdata['max_new_quota'] = ($DomainQuota['maxquota'] * 1048576);

-          }

+

           $mailboxdata['username'] = $row['username'];

-          if (!empty($rl)) {

-            $mailboxdata['rl'] = $rl;

-            $mailboxdata['rl_scope'] = 'mailbox';

-          }

-          else {

-            $mailboxdata['rl'] = ratelimit('get', 'domain', $row['domain']);

-            $mailboxdata['rl_scope'] = 'domain';

-          }

-          $mailboxdata['is_relayed'] = $row['backupmx'];

-          $mailboxdata['name'] = $row['name'];

-          $mailboxdata['last_imap_login'] = $last_imap_login;

-          $mailboxdata['last_smtp_login'] = $last_smtp_login;

-          $mailboxdata['last_pop3_login'] = $last_pop3_login;

           $mailboxdata['active'] = $row['active'];

           $mailboxdata['active_int'] = $row['active'];

           $mailboxdata['domain'] = $row['domain'];

+          $mailboxdata['relayhost'] = $row['relayhost'];

+          $mailboxdata['name'] = $row['name'];

           $mailboxdata['local_part'] = $row['local_part'];

           $mailboxdata['quota'] = $row['quota'];

+          $mailboxdata['messages'] = $row['messages'];

           $mailboxdata['attributes'] = json_decode($row['attributes'], true);

           $mailboxdata['quota_used'] = intval($row['bytes']);

           $mailboxdata['percent_in_use'] = ($row['quota'] == 0) ? '- ' : round((intval($row['bytes']) / intval($row['quota'])) * 100);

-          $mailboxdata['messages'] = $row['messages'];

-          $mailboxdata['spam_aliases'] = $SpamaliasUsage['sa_count'];

-          $mailboxdata['pushover_active'] = ($PushoverActive['pushover_active'] == 1) ? 1 : 0;

+

           if ($mailboxdata['percent_in_use'] === '- ') {

             $mailboxdata['percent_class'] = "info";

           }

@@ -3547,6 +3535,69 @@
           else {

             $mailboxdata['percent_class'] = "success";

           }

+

+          // Determine last logins

+          $stmt = $pdo->prepare("SELECT MAX(`datetime`) AS `datetime`, `service` FROM `sasl_log`

+            WHERE `username` = :mailbox

+                GROUP BY `service` DESC");

+          $stmt->execute(array(':mailbox' => $_data));

+          $SaslLogsData  = $stmt->fetchAll(PDO::FETCH_ASSOC);

+          foreach ($SaslLogsData as $SaslLogs) {

+            if ($SaslLogs['service'] == 'imap') {

+              $last_imap_login = strtotime($SaslLogs['datetime']);

+            }

+            else if ($SaslLogs['service'] == 'smtp') {

+              $last_smtp_login = strtotime($SaslLogs['datetime']);

+            }

+            else if ($SaslLogs['service'] == 'pop3') {

+              $last_pop3_login = strtotime($SaslLogs['datetime']);

+            }

+          }

+          if (!isset($last_imap_login) || $GLOBALS['SHOW_LAST_LOGIN'] === false) {

+            $last_imap_login = 0;

+          }

+          if (!isset($last_smtp_login) || $GLOBALS['SHOW_LAST_LOGIN'] === false) {

+            $last_smtp_login = 0;

+          }

+          if (!isset($last_pop3_login) || $GLOBALS['SHOW_LAST_LOGIN'] === false) {

+            $last_pop3_login = 0;

+          }

+          $mailboxdata['last_imap_login'] = $last_imap_login;

+          $mailboxdata['last_smtp_login'] = $last_smtp_login;

+          $mailboxdata['last_pop3_login'] = $last_pop3_login;

+

+          if (!isset($_extra) || $_extra != 'reduced') {

+            $rl = ratelimit('get', 'mailbox', $_data);

+            $stmt = $pdo->prepare("SELECT `maxquota`, `quota` FROM  `domain` WHERE `domain` = :domain");

+            $stmt->execute(array(':domain' => $row['domain']));

+            $DomainQuota  = $stmt->fetch(PDO::FETCH_ASSOC);

+

+            $stmt = $pdo->prepare("SELECT IFNULL(COUNT(`active`), 0) AS `pushover_active` FROM `pushover` WHERE `username` = :username AND `active` = 1");

+            $stmt->execute(array(':username' => $_data));

+            $PushoverActive  = $stmt->fetch(PDO::FETCH_ASSOC);

+            $stmt = $pdo->prepare("SELECT COALESCE(SUM(`quota`), 0) as `in_use` FROM `mailbox` WHERE (`kind` = '' OR `kind` = NULL) AND `domain` = :domain AND `username` != :username");

+            $stmt->execute(array(':domain' => $row['domain'], ':username' => $_data));

+            $MailboxUsage = $stmt->fetch(PDO::FETCH_ASSOC);

+            $stmt = $pdo->prepare("SELECT IFNULL(COUNT(`address`), 0) AS `sa_count` FROM `spamalias` WHERE `goto` = :address AND `validity` >= :unixnow");

+            $stmt->execute(array(':address' => $_data, ':unixnow' => time()));

+            $SpamaliasUsage = $stmt->fetch(PDO::FETCH_ASSOC);

+            $mailboxdata['max_new_quota'] = ($DomainQuota['quota'] * 1048576) - $MailboxUsage['in_use'];

+            $mailboxdata['spam_aliases'] = $SpamaliasUsage['sa_count'];

+            $mailboxdata['pushover_active'] = ($PushoverActive['pushover_active'] == 1) ? 1 : 0;

+            if ($mailboxdata['max_new_quota'] > ($DomainQuota['maxquota'] * 1048576)) {

+              $mailboxdata['max_new_quota'] = ($DomainQuota['maxquota'] * 1048576);

+            }

+            if (!empty($rl)) {

+              $mailboxdata['rl'] = $rl;

+              $mailboxdata['rl_scope'] = 'mailbox';

+            }

+            else {

+              $mailboxdata['rl'] = ratelimit('get', 'domain', $row['domain']);

+              $mailboxdata['rl_scope'] = 'domain';

+            }

+            $mailboxdata['is_relayed'] = $row['backupmx'];

+          }

+

           return $mailboxdata;

         break;

         case 'resource_details':

@@ -3826,7 +3877,7 @@
               );

               continue;

             }

-            $domain	= idn_to_ascii(strtolower(trim($domain)), 0, INTL_IDNA_VARIANT_UTS46);

+            $domain = idn_to_ascii(strtolower(trim($domain)), 0, INTL_IDNA_VARIANT_UTS46);

             $stmt = $pdo->prepare("SELECT `username` FROM `mailbox`

               WHERE `domain` = :domain");

             $stmt->execute(array(':domain' => $domain));

@@ -4163,6 +4214,14 @@
             $stmt->execute(array(

               ':username' => $username

             ));

+            $stmt = $pdo->prepare("DELETE FROM `tfa` WHERE `username` = :username");

+            $stmt->execute(array(

+              ':username' => $username,

+            ));

+            $stmt = $pdo->prepare("DELETE FROM `fido2` WHERE `username` = :username");

+            $stmt->execute(array(

+              ':username' => $username,

+            ));

             $stmt = $pdo->prepare("SELECT `address`, `goto` FROM `alias`

                 WHERE `goto` REGEXP :username");

             $stmt->execute(array(':username' => '(^|,)'.$username.'($|,)'));

@@ -4172,7 +4231,7 @@
               if (($key = array_search($username, $goto_exploded)) !== false) {

                 unset($goto_exploded[$key]);

               }

-              $gotos_rebuild = implode(',', $goto_exploded);

+              $gotos_rebuild = implode(',', (array)$goto_exploded);

               $stmt = $pdo->prepare("UPDATE `alias` SET

                 `goto` = :goto

                   WHERE `address` = :address");

diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/functions.oauth2.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/functions.oauth2.inc.php
index 7bc7dea..7dc5602 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/functions.oauth2.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/functions.oauth2.inc.php
@@ -1,16 +1,16 @@
 <?php

 function oauth2($_action, $_type, $_data = null) {

-	global $pdo;

-	global $redis;

-	global $lang;

-	if ($_SESSION['mailcow_cc_role'] != "admin") {

-		$_SESSION['return'][] = array(

-			'type' => 'danger',

+  global $pdo;

+  global $redis;

+  global $lang;

+  if ($_SESSION['mailcow_cc_role'] != "admin") {

+    $_SESSION['return'][] = array(

+      'type' => 'danger',

       'log' => array(__FUNCTION__, $_action, $_type, $_data),

-			'msg' => 'access_denied'

-		);

-		return false;

-	}

+      'msg' => 'access_denied'

+    );

+    return false;

+  }

   switch ($_action) {

     case 'add':

       switch ($_type) {

@@ -188,7 +188,7 @@
           $_SESSION['return'][] = array(

             'type' => 'success',

             'log' => array(__FUNCTION__, $_action, $_type, $_data),

-            'msg' => sprintf($lang['success']['items_deleted'], implode(', ', $access_tokens))

+            'msg' => sprintf($lang['success']['items_deleted'], implode(', ', (array)$access_tokens))

           );

         break;

         case 'refresh_token':

@@ -210,7 +210,7 @@
           $_SESSION['return'][] = array(

             'type' => 'success',

             'log' => array(__FUNCTION__, $_action, $_type, $_data),

-            'msg' => sprintf($lang['success']['items_deleted'], implode(', ', $refresh_tokens))

+            'msg' => sprintf($lang['success']['items_deleted'], implode(', ', (array)$refresh_tokens))

           );

         break;

       }

@@ -239,4 +239,4 @@
       }

     break;

   }

-}
\ No newline at end of file
+}

diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/functions.policy.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/functions.policy.inc.php
index ad29bd2..498f991 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/functions.policy.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/functions.policy.inc.php
@@ -1,9 +1,9 @@
 <?php

 function policy($_action, $_scope, $_data = null) {

-	global $pdo;

-	global $redis;

-	global $lang;

-	$_data_log = $_data;

+  global $pdo;

+  global $redis;

+  global $lang;

+  $_data_log = $_data;

   switch ($_action) {

     case 'add':

       if (!isset($_SESSION['acl']['spam_policy']) || $_SESSION['acl']['spam_policy'] != "1" ) {

@@ -261,7 +261,7 @@
             $_SESSION['return'][] = array(

               'type' => 'success',

               'log' => array(__FUNCTION__, $_action, $_scope, $_data_log),

-              'msg' => array('items_deleted', implode(', ', $prefids))

+              'msg' => array('items_deleted', implode(', ', (array)$prefids))

             );

           }

         break;

@@ -317,4 +317,4 @@
       }

     break;

   }

-}
\ No newline at end of file
+}

diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/functions.pushover.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/functions.pushover.inc.php
index e8d4670..74e8bb1 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/functions.pushover.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/functions.pushover.inc.php
@@ -1,6 +1,6 @@
 <?php

 function pushover($_action, $_data = null) {

-	global $pdo;

+  global $pdo;

   switch ($_action) {

     case 'edit':

       if (!isset($_SESSION['acl']['pushover']) || $_SESSION['acl']['pushover'] != "1" ) {

@@ -81,7 +81,7 @@
         }

         $senders = array_filter($senders);

         if (empty($senders)) { $senders = ''; }

-        $senders = implode(",", $senders);

+        $senders = implode(",", (array)$senders);

         if (!ctype_alnum($key) || strlen($key) != 30) {

           $_SESSION['return'][] = array(

             'type' => 'danger',

diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/functions.quota_notification.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/functions.quota_notification.inc.php
index 9ca5a22..9f58bfb 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/functions.quota_notification.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/functions.quota_notification.inc.php
@@ -65,3 +65,86 @@
     break;

   }

 }

+function quota_notification_bcc($_action, $_data = null) {

+	global $redis;

+	$_data_log = $_data;

+  if ($_SESSION['mailcow_cc_role'] != "admin" && $_SESSION['mailcow_cc_role'] != "domainadmin") {

+    $_SESSION['return'][] = array(

+      'type' => 'danger',

+      'log' => array(__FUNCTION__, $_action, $_data_log),

+      'msg' => 'access_denied'

+    );

+    return false;

+  }

+  switch ($_action) {

+    case 'edit':

+      $domain = $_data['domain'];

+      if (!hasDomainAccess($_SESSION['mailcow_cc_username'], $_SESSION['mailcow_cc_role'], $domain)) {

+        $_SESSION['return'][] = array(

+          'type' => 'danger',

+          'log' => array(__FUNCTION__, $_action, $_data_log),

+          'msg' => 'access_denied'

+        );

+        return false;

+      }

+      $active = intval($_data['active']);

+      $bcc_rcpts = array_map('trim', preg_split( "/( |,|;|\n)/", $_data['bcc_rcpt']));

+      foreach ($bcc_rcpts as $i => &$rcpt) {

+        $rcpt = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $rcpt);

+          if (!empty($rcpt) && filter_var($rcpt, FILTER_VALIDATE_EMAIL) === false) {

+            $_SESSION['return'][] = array(

+              'type' => 'danger',

+              'log' => array(__FUNCTION__, $_action, $_data_log),

+              'msg' => array('goto_invalid', htmlspecialchars($rcpt))

+            );

+            unset($bcc_rcpts[$i]);

+            continue;

+          }

+      }

+      $bcc_rcpts = array_unique($bcc_rcpts);

+      $bcc_rcpts = array_filter($bcc_rcpts);

+      if (empty($bcc_rcpts)) {

+        $active = 0;

+        

+      }

+      try {

+        $redis->hSet('QW_BCC', $domain, json_encode(array('bcc_rcpts' => $bcc_rcpts, 'active' => $active)));

+      }

+      catch (RedisException $e) {

+        $_SESSION['return'][] = array(

+          'type' => 'danger',

+          'log' => array(__FUNCTION__, $_action, $_data_log),

+          'msg' => array('redis_error', $e)

+        );

+        return false;

+      }

+      $_SESSION['return'][] = array(

+        'type' => 'success',

+        'log' => array(__FUNCTION__, $_action, $_data_log),

+        'msg' => 'saved_settings'

+      );

+    break;

+    case 'get':

+      $domain = $_data;

+      if (!hasDomainAccess($_SESSION['mailcow_cc_username'], $_SESSION['mailcow_cc_role'], $domain)) {

+        $_SESSION['return'][] = array(

+          'type' => 'danger',

+          'log' => array(__FUNCTION__, $_action, $_data_log),

+          'msg' => 'access_denied'

+        );

+        return false;

+      }

+      try {

+        return json_decode($redis->hGet('QW_BCC', $domain), true);

+      }

+      catch (RedisException $e) {

+        $_SESSION['return'][] = array(

+          'type' => 'danger',

+          'log' => array(__FUNCTION__, $_action, $_data_log),

+          'msg' => array('redis_error', $e)

+        );

+        return false;

+      }

+    break;

+  }

+}

diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/functions.rspamd.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/functions.rspamd.inc.php
index b0ba1f5..bdc23b0 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/functions.rspamd.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/functions.rspamd.inc.php
@@ -137,7 +137,7 @@
       if ($_SESSION['mailcow_cc_role'] != "admin") {

         $_SESSION['return'][] = array(

           'type' => 'danger',

-          'log' => array(__FUNCTION__, $_action, $_data_log),

+          'log' => array(__FUNCTION__, $_action, '-'),

           'msg' => 'access_denied'

         );

         return false;

@@ -148,7 +148,7 @@
           if (!in_array($map, $rspamd_map_type)) {

             $_SESSION['return'][] = array(

               'type' => 'danger',

-              'log' => array(__FUNCTION__, $_action, $_data_log),

+              'log' => array(__FUNCTION__, $_action, '-'),

               'msg' => array('global_map_invalid', $map)

             );

             continue;

@@ -170,14 +170,14 @@
         catch (Exception $e) {

           $_SESSION['return'][] = array(

             'type' => 'danger',

-            'log' => array(__FUNCTION__, $_action, $_data_log),

+            'log' => array(__FUNCTION__, $_action, '-'),

             'msg' => array('global_map_write_error', htmlspecialchars($map), htmlspecialchars($e->getMessage()))

           );

           continue;

         }

         $_SESSION['return'][] = array(

           'type' => 'success',

-          'log' => array(__FUNCTION__, $_action, $_data_log),

+          'log' => array(__FUNCTION__, $_action, '-'),

           'msg' => array('object_modified', htmlspecialchars($map))

         );

       }

diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/functions.transports.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/functions.transports.inc.php
index 7d8031a..7b22917 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/functions.transports.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/functions.transports.inc.php
@@ -1,7 +1,7 @@
 <?php

 function relayhost($_action, $_data = null) {

-	global $pdo;

-	global $lang;

+  global $pdo;

+  global $lang;

   $_data_log = $_data;

   switch ($_action) {

     case 'add':

@@ -45,7 +45,7 @@
       $_SESSION['return'][] = array(

         'type' => 'success',

         'log' => array(__FUNCTION__, $_action, $_data_log),

-        'msg' => array('relayhost_added', htmlspecialchars(implode(', ', $hosts)))

+        'msg' => array('relayhost_added', htmlspecialchars(implode(', ', (array)$hosts)))

       );

     break;

     case 'edit':

@@ -100,7 +100,7 @@
         $_SESSION['return'][] = array(

           'type' => 'success',

           'log' => array(__FUNCTION__, $_action, $_data_log),

-          'msg' => array('object_modified', htmlspecialchars(implode(', ', $hostnames)))

+          'msg' => array('object_modified', htmlspecialchars(implode(', ', (array)$hostnames)))

         );

       }

     break;

@@ -137,11 +137,11 @@
       }

     break;

     case 'get':

-      if ($_SESSION['mailcow_cc_role'] != "admin") {

+      if ($_SESSION['mailcow_cc_role'] != "admin" && $_SESSION['mailcow_cc_role'] != "domainadmin") {

         return false;

       }

       $relayhosts = array();

-      $stmt = $pdo->query("SELECT `id`, `hostname`, `username` FROM `relayhosts`");

+      $stmt = $pdo->query("SELECT `id`, `hostname`, `username`, `active` FROM `relayhosts`");

       $relayhosts = $stmt->fetchAll(PDO::FETCH_ASSOC);

       return $relayhosts;

     break;

@@ -166,14 +166,19 @@
         $used_by_domains = $stmt->fetch(PDO::FETCH_ASSOC)['used_by_domains'];

         $used_by_domains = (empty($used_by_domains)) ? '' : $used_by_domains;

         $relayhostdata['used_by_domains'] = $used_by_domains;

+        $stmt = $pdo->prepare("SELECT GROUP_CONCAT(`username` SEPARATOR ', ') AS `used_by_mailboxes` FROM `mailbox` WHERE JSON_VALUE(`attributes`, '$.relayhost') = :id");

+        $stmt->execute(array(':id' => $_data));

+        $used_by_mailboxes = $stmt->fetch(PDO::FETCH_ASSOC)['used_by_mailboxes'];

+        $used_by_mailboxes = (empty($used_by_mailboxes)) ? '' : $used_by_mailboxes;

+        $relayhostdata['used_by_mailboxes'] = $used_by_mailboxes;

       }

       return $relayhostdata;

     break;

   }

 }

 function transport($_action, $_data = null) {

-	global $pdo;

-	global $lang;

+  global $pdo;

+  global $lang;

   $_data_log = $_data;

   switch ($_action) {

     case 'add':

@@ -187,7 +192,7 @@
       }

       $destinations  = array_map('trim', preg_split( "/( |,|;|\n)/", $_data['destination']));

       $active = intval($_data['active']);

-      $lookup_mx = intval($_data['lookup_mx']);

+      $is_mx_based = intval($_data['is_mx_based']);

       $nexthop = trim($_data['nexthop']);

       if (filter_var($nexthop, FILTER_VALIDATE_IP)) {

         $nexthop = '[' . $nexthop . ']';

@@ -233,7 +238,16 @@
               continue;

             }

             // ".domain" is a valid destination, "..domain" is not

-            if (empty($dest) || (is_valid_domain_name(preg_replace('/^' . preg_quote('.', '/') . '/', '', $dest)) === false && $dest != '*' && filter_var($dest, FILTER_VALIDATE_EMAIL) === false)) {

+            if ($is_mx_based == 0 && (empty($dest) || (is_valid_domain_name(preg_replace('/^' . preg_quote('.', '/') . '/', '', $dest)) === false && $dest != '*' && filter_var($dest, FILTER_VALIDATE_EMAIL) === false))) {

+              $_SESSION['return'][] = array(

+                'type' => 'danger',

+                'log' => array(__FUNCTION__, $_action, $_data_log),

+                'msg' => array('invalid_destination', $dest)

+              );

+              unset($destinations[$d_ix]);

+              continue;

+            }

+            if ($is_mx_based == 1 && (empty($dest) || @preg_match('/' . $dest . '/', null) === false)) {

               $_SESSION['return'][] = array(

                 'type' => 'danger',

                 'log' => array(__FUNCTION__, $_action, $_data_log),

@@ -270,14 +284,14 @@
         }

       }

       foreach ($destinations as $insert_dest) {

-        $stmt = $pdo->prepare("INSERT INTO `transports` (`nexthop`, `destination`, `username` , `password`,  `lookup_mx`, `active`)

-          VALUES (:nexthop, :destination, :username, :password, :lookup_mx, :active)");

+        $stmt = $pdo->prepare("INSERT INTO `transports` (`nexthop`, `destination`, `is_mx_based`, `username` , `password`,  `active`)

+          VALUES (:nexthop, :destination, :is_mx_based, :username, :password, :active)");

         $stmt->execute(array(

           ':nexthop' => $nexthop,

           ':destination' => $insert_dest,

+          ':is_mx_based' => $is_mx_based,

           ':username' => $username,

           ':password' => str_replace(':', '\:', $password),

-          ':lookup_mx' => $lookup_mx,

           ':active' => $active

         ));

       }

@@ -293,7 +307,7 @@
       $_SESSION['return'][] = array(

         'type' => 'success',

         'log' => array(__FUNCTION__, $_action, $_data_log),

-        'msg' => array('relayhost_added', htmlspecialchars(implode(', ', $hosts)))

+        'msg' => array('relayhost_added', htmlspecialchars(implode(', ', (array)$hosts)))

       );

     break;

     case 'edit':

@@ -313,7 +327,7 @@
           $nexthop = (!empty($_data['nexthop'])) ? trim($_data['nexthop']) : $is_now['nexthop'];

           $username = (isset($_data['username'])) ? trim($_data['username']) : $is_now['username'];

           $password = (isset($_data['password'])) ? trim($_data['password']) : $is_now['password'];

-          $lookup_mx   = (isset($_data['lookup_mx']) && $_data['lookup_mx'] != '') ? intval($_data['lookup_mx']) : $is_now['lookup_mx'];

+          $is_mx_based = (isset($_data['is_mx_based']) && $_data['is_mx_based'] != '') ? intval($_data['is_mx_based']) : $is_now['is_mx_based'];

           $active   = (isset($_data['active']) && $_data['active'] != '') ? intval($_data['active']) : $is_now['active'];

         }

         else {

@@ -348,6 +362,22 @@
             }

           }

         }

+        if ($is_mx_based == 0 && (empty($destination) || (is_valid_domain_name(preg_replace('/^' . preg_quote('.', '/') . '/', '', $destination)) === false && $destination != '*' && filter_var($destination, FILTER_VALIDATE_EMAIL) === false))) {

+          $_SESSION['return'][] = array(

+            'type' => 'danger',

+            'log' => array(__FUNCTION__, $_action, $_data_log),

+            'msg' => array('invalid_destination', $destination)

+          );

+          return false;

+        }

+        if ($is_mx_based == 1 && (empty($destination) || @preg_match('/' . $destination . '/', null) === false)) {

+          $_SESSION['return'][] = array(

+            'type' => 'danger',

+            'log' => array(__FUNCTION__, $_action, $_data_log),

+            'msg' => array('invalid_destination', $destination)

+          );

+          return false;

+        }

         if (isset($next_hop_matches[1])) {

           if (in_array($next_hop_clean, $existing_nh)) {

             $_SESSION['return'][] = array(

@@ -376,19 +406,19 @@
         try {

           $stmt = $pdo->prepare("UPDATE `transports` SET

             `destination` = :destination,

+            `is_mx_based` = :is_mx_based,

             `nexthop` = :nexthop,

             `username` = :username,

             `password` = :password,

-            `lookup_mx` = :lookup_mx,

             `active` = :active

               WHERE `id` = :id");

           $stmt->execute(array(

             ':id' => $id,

             ':destination' => $destination,

+            ':is_mx_based' => $is_mx_based,

             ':nexthop' => $nexthop,

             ':username' => $username,

             ':password' => $password,

-            ':lookup_mx' => $lookup_mx,

             ':active' => $active

           ));

           $stmt = $pdo->prepare("UPDATE `transports` SET

@@ -412,7 +442,7 @@
         $_SESSION['return'][] = array(

           'type' => 'success',

           'log' => array(__FUNCTION__, $_action, $_data_log),

-          'msg' => array('object_modified', htmlspecialchars(implode(', ', $hostnames)))

+          'msg' => array('object_modified', htmlspecialchars(implode(', ', (array)$hostnames)))

         );

       }

     break;

@@ -451,7 +481,7 @@
         return false;

       }

       $transports = array();

-      $stmt = $pdo->query("SELECT `id`, `destination`, `nexthop`, `username` FROM `transports`");

+      $stmt = $pdo->query("SELECT `id`, `is_mx_based`, `destination`, `nexthop`, `username` FROM `transports`");

       $transports = $stmt->fetchAll(PDO::FETCH_ASSOC);

       return $transports;

     break;

@@ -461,12 +491,12 @@
       }

       $transportdata = array();

       $stmt = $pdo->prepare("SELECT `id`,

+        `is_mx_based`,

         `destination`,

         `nexthop`,

         `username`,

         `password`,

         `active`,

-        `lookup_mx`,

         CONCAT(LEFT(`password`, 3), '...') AS `password_short`

           FROM `transports`

             WHERE `id` = :id");

@@ -475,4 +505,4 @@
       return $transportdata;

     break;

   }

-}
\ No newline at end of file
+}

diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/header.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/header.inc.php
index d2add25..d97a388 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/header.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/header.inc.php
@@ -62,12 +62,12 @@
           if (isset($_SESSION['mailcow_locale'])) {
           ?>
           <li class="dropdown<?=(isset($_SESSION['mailcow_locale']) && count($AVAILABLE_LANGUAGES) === 1) ? ' lang-link-disabled"' : '' ?>">
-            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><span class="lang-sm lang-lbl" lang="<?= $_SESSION['mailcow_locale']; ?>"></span><span class="caret"></span></a>
+            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><span class="flag-icon flag-icon-<?= $_SESSION['mailcow_locale']; ?>"></span><span class="caret"></span></a>
             <ul class="dropdown-menu" role="menu">
               <?php
-              foreach ($AVAILABLE_LANGUAGES as $language) {
+              foreach ($AVAILABLE_LANGUAGES as $c => $v) {
               ?>
-              <li<?= ($_SESSION['mailcow_locale'] == $language) ? ' class="active"' : ''; ?>><a href="?<?= http_build_query(array_merge($_GET, array('lang' => $language))); ?>"><span class="lang-xs lang-lbl-full" lang="<?= $language; ?>"></span></a></li>
+              <li<?= ($_SESSION['mailcow_locale'] == $c) ? ' class="active"' : ''; ?>><a href="?<?= http_build_query(array_merge($_GET, array('lang' => $c))); ?>"><span class="flag-icon flag-icon-<?=$c;?>"></span> <?=$v;?></a></li>
               <?php
               }
               ?>
@@ -100,17 +100,17 @@
             </ul>
           </li>
           <?php if (isset($_SESSION['mailcow_cc_role'])) { ?>
-          <li<?= (preg_match("/quarantine/i", $_SERVER['REQUEST_URI'])) ? ' class="active"' : ''; ?>><a href="/quarantine"><span class="glyphicon glyphicon-briefcase"></span> <?= $lang['header']['quarantine']; ?></a></li>
+          <li<?= (preg_match("/quarantine/i", $_SERVER['REQUEST_URI'])) ? ' class="active"' : ''; ?>><a href="/quarantine"><i class="bi bi-inbox-fill"></i> <?= $lang['header']['quarantine']; ?></a></li>
           <?php } if ($_SESSION['mailcow_cc_role'] == 'admin' && getenv('SKIP_SOGO') != "y") { ?>
-          <li><a href data-toggle="modal" data-container="sogo-mailcow" data-target="#RestartContainer"><span class="glyphicon glyphicon-refresh"></span> <?= $lang['header']['restart_sogo']; ?></a></li>
+          <li><a href data-toggle="modal" data-container="sogo-mailcow" data-target="#RestartContainer"><i class="bi bi-arrow-repeat"></i> <?= $lang['header']['restart_sogo']; ?></a></li>
           <?php } ?>
           <li class="dropdown">
-            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><span class="glyphicon glyphicon-link"></span> <?= $lang['header']['apps']; ?> <span class="caret"></span></a>
+            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><i class="bi bi-link-45deg"></i> <?=$UI_TEXTS['apps_name'];?> <span class="caret"></span></a>
             <ul class="dropdown-menu" role="menu">
             <?php foreach ($MAILCOW_APPS as $app) {
               if (getenv('SKIP_SOGO') == "y" && preg_match('/^\/SOGo/i', $app['link'])) { continue; }
             ?>
-              <li title="<?= htmlspecialchars($app['description']); ?>"><a href="<?= htmlspecialchars($app['link']); ?>"><?= htmlspecialchars($app['name']); ?></a></li>
+              <li title="<?=(isset($app['description'])) ? htmlspecialchars($app['description']) : '';?>"><a href="<?=(isset($app['link'])) ? htmlspecialchars($app['link']) : '';?>"><?=(isset($app['name'])) ? htmlspecialchars($app['name']) : '';?></a></li>
             <?php
             }
             $app_links = customize('get', 'app_links');
@@ -127,9 +127,9 @@
             </ul>
           </li>
           <?php } if (!isset($_SESSION['dual-login']) && isset($_SESSION['mailcow_cc_username'])) { ?>
-            <li class="logged-in-as"><a href="#" onclick="logout.submit()"><b class="username-lia"><?= htmlspecialchars($_SESSION['mailcow_cc_username']); ?></b> <span class="glyphicon glyphicon-log-out"></span></a></li>
+            <li class="logged-in-as"><a href="#" onclick="logout.submit()"><b class="username-lia"><?= htmlspecialchars($_SESSION['mailcow_cc_username']); ?></b> <i class="bi bi-power"></i></a></li>
           <?php } elseif (isset($_SESSION['dual-login'])) { ?>
-            <li class="logged-in-as"><a href="#" onclick="logout.submit()"><b class="username-lia"><?= htmlspecialchars($_SESSION['mailcow_cc_username']); ?> <span class="text-info">(<?= htmlspecialchars($_SESSION['dual-login']['username']); ?>)</span> </b><span class="glyphicon glyphicon-log-out"></span></a></li>
+            <li class="logged-in-as"><a href="#" onclick="logout.submit()"><b class="username-lia"><?= htmlspecialchars($_SESSION['mailcow_cc_username']); ?> <span class="text-info">(<?= htmlspecialchars($_SESSION['dual-login']['username']); ?>)</span> </b><i class="bi bi-power"></i></a></li>
           <?php } if (!preg_match('/y|yes/i', getenv('MASTER'))) { ?>
             <li class="text-warning slave-info">[ slave ]</li>
           <?php } ?>
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/init_db.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/init_db.inc.php
index 8010bbd..c43afbf 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/init_db.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/init_db.inc.php
@@ -3,7 +3,7 @@
   try {

     global $pdo;

 

-    $db_version = "28112020_1210";

+    $db_version = "01072021_0630";

 

     $stmt = $pdo->query("SHOW TABLES LIKE 'versions'");

     $num_results = count($stmt->fetchAll(PDO::FETCH_ASSOC));

@@ -152,9 +152,9 @@
           "id" => "INT NOT NULL AUTO_INCREMENT",

           "destination" => "VARCHAR(255) NOT NULL",

           "nexthop" => "VARCHAR(255) NOT NULL",

-          "username" => "VARCHAR(255) NOT NULL",

-          "password" => "VARCHAR(255) NOT NULL",

-          "lookup_mx" => "TINYINT(1) NOT NULL DEFAULT '1'",

+          "username" => "VARCHAR(255) NOT NULL DEFAULT ''",

+          "password" => "VARCHAR(255) NOT NULL DEFAULT ''",

+          "is_mx_based" => "TINYINT(1) NOT NULL DEFAULT '0'",

           "active" => "TINYINT(1) NOT NULL DEFAULT '1'"

         ),

         "keys" => array(

@@ -319,7 +319,8 @@
             "" => array("username")

           ),

           "key" => array(

-            "domain" => array("domain")

+            "domain" => array("domain"),

+            "kind" => array("kind")

           )

         ),

         "attr" => "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC"

@@ -442,7 +443,9 @@
         "cols" => array(

           "address" => "VARCHAR(255) NOT NULL",

           "goto" => "TEXT NOT NULL",

-          "validity" => "INT(11) NOT NULL"

+          "created" => "DATETIME(0) NOT NULL DEFAULT NOW(0)",

+          "modified" => "DATETIME ON UPDATE CURRENT_TIMESTAMP",

+          "validity" => "INT(11)"

         ),

         "keys" => array(

           "primary" => array(

@@ -505,6 +508,27 @@
         ),

         "attr" => "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC"

       ),

+      "sasl_log" => array(

+        "cols" => array(

+          "service" => "VARCHAR(32) NOT NULL DEFAULT ''",

+          "app_password" => "INT",

+          "username" => "VARCHAR(255) NOT NULL",

+          "real_rip" => "VARCHAR(64) NOT NULL",

+          "datetime" => "DATETIME(0) NOT NULL DEFAULT NOW(0)"

+        ),

+        "keys" => array(

+          "primary" => array(

+            "" => array("service", "real_rip", "username")

+          ),

+          "key" => array(

+            "username" => array("username"),

+            "service" => array("service"),

+            "datetime" => array("datetime"),

+            "real_rip" => array("real_rip")

+          )

+        ),

+        "attr" => "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC"

+      ),

       "quota2" => array(

         "cols" => array(

           "username" => "VARCHAR(255) NOT NULL",

@@ -567,6 +591,8 @@
           "protocol_access" => "TINYINT(1) NOT NULL DEFAULT '1'",

           "smtp_ip_access" => "TINYINT(1) NOT NULL DEFAULT '1'",

           "alias_domains" => "TINYINT(1) NOT NULL DEFAULT '0'",

+          "mailbox_relayhost" => "TINYINT(1) NOT NULL DEFAULT '1'",

+          "domain_relayhost" => "TINYINT(1) NOT NULL DEFAULT '1'",

           "domain_desc" => "TINYINT(1) NOT NULL DEFAULT '0'"

           ),

         "keys" => array(

@@ -972,6 +998,7 @@
           }

         }

       }

+

       // Migrate tls_enforce_* options

       if ($table == 'mailbox') {

         $stmt = $pdo->query("SHOW TABLES LIKE 'mailbox'");

@@ -988,6 +1015,7 @@
           }

         }

       }

+

       $stmt = $pdo->query("SHOW TABLES LIKE '" . $table . "'"); 

       $num_results = count($stmt->fetchAll(PDO::FETCH_ASSOC));

       if ($num_results != 0) {

@@ -1179,6 +1207,8 @@
     $pdo->query("UPDATE `pushover` SET `attributes` =  JSON_SET(`attributes`, '$.only_x_prio', \"0\") WHERE JSON_VALUE(`attributes`, '$.only_x_prio') IS NULL;");

     // mailbox

     $pdo->query("UPDATE `mailbox` SET `attributes` = '{}' WHERE `attributes` = '' OR `attributes` IS NULL;");

+    $pdo->query("UPDATE `mailbox` SET `attributes` =  JSON_SET(`attributes`, '$.passwd_update', \"0\") WHERE JSON_VALUE(`attributes`, '$.passwd_update') IS NULL;");

+    $pdo->query("UPDATE `mailbox` SET `attributes` =  JSON_SET(`attributes`, '$.relayhost', \"0\") WHERE JSON_VALUE(`attributes`, '$.relayhost') IS NULL;");

     $pdo->query("UPDATE `mailbox` SET `attributes` =  JSON_SET(`attributes`, '$.force_pw_update', \"0\") WHERE JSON_VALUE(`attributes`, '$.force_pw_update') IS NULL;");

     $pdo->query("UPDATE `mailbox` SET `attributes` =  JSON_SET(`attributes`, '$.sogo_access', \"1\") WHERE JSON_VALUE(`attributes`, '$.sogo_access') IS NULL;");

     $pdo->query("UPDATE `mailbox` SET `attributes` =  JSON_SET(`attributes`, '$.imap_access', \"1\") WHERE JSON_VALUE(`attributes`, '$.imap_access') IS NULL;");

@@ -1226,6 +1256,7 @@
 }

 if (php_sapi_name() == "cli") {

   include '/web/inc/vars.inc.php';

+  include '/web/inc/functions.docker.inc.php';

   // $now = new DateTime();

   // $mins = $now->getOffset() / 60;

   // $sgn = ($mins < 0 ? -1 : 1);

diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/WebAuthn/rootCertificates/bsi.pem b/mailcow/src/mailcow-dockerized/data/web/inc/lib/WebAuthn/rootCertificates/bsi.pem
new file mode 100644
index 0000000..2a6b40f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/WebAuthn/rootCertificates/bsi.pem
Binary files differ
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/WebAuthn/rootCertificates/trustkey.pem b/mailcow/src/mailcow-dockerized/data/web/inc/lib/WebAuthn/rootCertificates/trustkey.pem
new file mode 100644
index 0000000..f5a4df6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/WebAuthn/rootCertificates/trustkey.pem
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICpTCCAkqgAwIBAgIBATAKBggqhkjOPQQDAjCBrzELMAkGA1UEBhMCS1IxETAP
+BgNVBAgMCFNlb3VsLVNpMRMwEQYDVQQHDApHYW5nbmFtLUd1MRcwFQYDVQQKDA5l
+V0JNIENvLiwgTHRkLjEiMCAGA1UECwwZQXV0aGVudGljYXRvciBBdHRlc3RhdGlv
+bjEcMBoGA1UEAwwTZVdCTSBDQSBDZXJ0aWZpY2F0ZTEdMBsGCSqGSIb3DQEJARYO
+aW5mb0BlLXdibS5jb20wHhcNMTgwNzAyMDUzMTM5WhcNMjMwNzAxMDUzMTM5WjCB
+rzELMAkGA1UEBhMCS1IxETAPBgNVBAgMCFNlb3VsLVNpMRMwEQYDVQQHDApHYW5n
+bmFtLUd1MRcwFQYDVQQKDA5lV0JNIENvLiwgTHRkLjEiMCAGA1UECwwZQXV0aGVu
+dGljYXRvciBBdHRlc3RhdGlvbjEcMBoGA1UEAwwTZVdCTSBDQSBDZXJ0aWZpY2F0
+ZTEdMBsGCSqGSIb3DQEJARYOaW5mb0BlLXdibS5jb20wWTATBgcqhkjOPQIBBggq
+hkjOPQMBBwNCAAQIfqHisi0oO/eyOqSaDrr9itG2IymBkHnSDGQIIYmT+vqA8AgO
+81momc2Ld5PGpEN6muE54wPHQjvc/yCih8u2o1UwUzASBgNVHRMBAf8ECDAGAQH/
+AgEAMB0GA1UdDgQWBBS3J/fxiAv22irdBs98SODhF7kU/jALBgNVHQ8EBAMCAQYw
+EQYJYIZIAYb4QgEBBAQDAgAHMAoGCCqGSM49BAMCA0kAMEYCIQDc41LFK4LJCBU2
+VVKIz7Z6sxPhUEkh8nLSLK6IXdkP5wIhAIeKVOZchaVO5aF7fbdXoSrcyy1YYeUe
+PLojcKI9fX84
+-----END CERTIFICATE-----
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/composer.json b/mailcow/src/mailcow-dockerized/data/web/inc/lib/composer.json
index 17caa43..e7e6b68 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/composer.json
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/composer.json
@@ -3,11 +3,12 @@
         "robthree/twofactorauth": "^1.6",
         "yubico/u2flib-server": "^1.0",
         "phpmailer/phpmailer": "^6.1",
-        "php-mime-mail-parser/php-mime-mail-parser": "^5.0.5",
+        "php-mime-mail-parser/php-mime-mail-parser": "^7",
         "soundasleep/html2text": "^0.5.0",
         "ddeboer/imap": "^1.5",
         "matthiasmullie/minify": "^1.3",
         "bshaffer/oauth2-server-php": "^1.11",
-        "mustangostang/spyc": "^0.6.3"
+        "mustangostang/spyc": "^0.6.3",
+        "directorytree/ldaprecord": "^2.4"
     }
 }
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/composer.lock b/mailcow/src/mailcow-dockerized/data/web/inc/lib/composer.lock
index b00a75d..e2633cc 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/composer.lock
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "58d5d30b266f8b8015d7937e1a35ac5d",
+    "content-hash": "50acd623ff29bb513cd29819f4537aa0",
     "packages": [
         {
             "name": "bshaffer/oauth2-server-php",
@@ -70,31 +70,31 @@
         },
         {
             "name": "ddeboer/imap",
-            "version": "1.11.0",
+            "version": "1.12.1",
             "source": {
                 "type": "git",
                 "url": "https://github.com/ddeboer/imap.git",
-                "reference": "a089dfcb9d177f921eb5dadc8d4144a44dff22ee"
+                "reference": "dbed05ca67b93509345a820b2859de10c48948fb"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/ddeboer/imap/zipball/a089dfcb9d177f921eb5dadc8d4144a44dff22ee",
-                "reference": "a089dfcb9d177f921eb5dadc8d4144a44dff22ee",
+                "url": "https://api.github.com/repos/ddeboer/imap/zipball/dbed05ca67b93509345a820b2859de10c48948fb",
+                "reference": "dbed05ca67b93509345a820b2859de10c48948fb",
                 "shasum": ""
             },
             "require": {
                 "ext-iconv": "*",
                 "ext-imap": "*",
                 "ext-mbstring": "*",
-                "php": "^7.3 || ^8.0"
+                "php": "^7.4 || ^8.0"
             },
             "require-dev": {
-                "friendsofphp/php-cs-fixer": "^2.16.7",
-                "laminas/laminas-mail": "^2.12.3",
-                "phpstan/phpstan": "^0.12.57",
-                "phpstan/phpstan-phpunit": "^0.12.16",
-                "phpstan/phpstan-strict-rules": "^0.12.5",
-                "phpunit/phpunit": "^9.4.3"
+                "friendsofphp/php-cs-fixer": "^2.18.6",
+                "laminas/laminas-mail": "^2.14.0",
+                "phpstan/phpstan": "^0.12.84",
+                "phpstan/phpstan-phpunit": "^0.12.18",
+                "phpstan/phpstan-strict-rules": "^0.12.9",
+                "phpunit/phpunit": "^9.5.4"
             },
             "type": "library",
             "autoload": {
@@ -128,7 +128,7 @@
             ],
             "support": {
                 "issues": "https://github.com/ddeboer/imap/issues",
-                "source": "https://github.com/ddeboer/imap/tree/1.11.0"
+                "source": "https://github.com/ddeboer/imap/tree/1.12.1"
             },
             "funding": [
                 {
@@ -140,20 +140,141 @@
                     "type": "github"
                 }
             ],
-            "time": "2020-11-30T14:52:49+00:00"
+            "time": "2021-04-27T08:38:46+00:00"
         },
         {
-            "name": "matthiasmullie/minify",
-            "version": "1.3.65",
+            "name": "directorytree/ldaprecord",
+            "version": "v2.6.3",
             "source": {
                 "type": "git",
-                "url": "https://github.com/matthiasmullie/minify.git",
-                "reference": "227f19062451c55a797e0cc667ef983834e6580c"
+                "url": "https://github.com/DirectoryTree/LdapRecord.git",
+                "reference": "5c93ec6d1ef458290825a8b0a148946dce7c1e7a"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/227f19062451c55a797e0cc667ef983834e6580c",
-                "reference": "227f19062451c55a797e0cc667ef983834e6580c",
+                "url": "https://api.github.com/repos/DirectoryTree/LdapRecord/zipball/5c93ec6d1ef458290825a8b0a148946dce7c1e7a",
+                "reference": "5c93ec6d1ef458290825a8b0a148946dce7c1e7a",
+                "shasum": ""
+            },
+            "require": {
+                "ext-json": "*",
+                "ext-ldap": "*",
+                "illuminate/contracts": "^5.0|^6.0|^7.0|^8.0",
+                "nesbot/carbon": "^1.0|^2.0",
+                "php": ">=7.3",
+                "psr/log": "^1.0",
+                "psr/simple-cache": "^1.0",
+                "tightenco/collect": "^5.6|^6.0|^7.0|^8.0"
+            },
+            "require-dev": {
+                "mockery/mockery": "^1.0",
+                "phpunit/phpunit": "^8.0",
+                "spatie/ray": "^1.24"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "LdapRecord\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Steve Bauman",
+                    "email": "steven_bauman@outlook.com",
+                    "role": "Developer"
+                }
+            ],
+            "description": "A fully-featured LDAP ORM.",
+            "homepage": "https://www.ldaprecord.com",
+            "keywords": [
+                "active directory",
+                "ad",
+                "adLDAP",
+                "adldap2",
+                "directory",
+                "ldap",
+                "ldaprecord",
+                "orm",
+                "windows"
+            ],
+            "support": {
+                "docs": "https://ldaprecord.com",
+                "email": "steven_bauman@outlook.com",
+                "issues": "https://github.com/DirectoryTree/LdapRecord/issues",
+                "source": "https://github.com/DirectoryTree/LdapRecord"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/stevebauman",
+                    "type": "github"
+                }
+            ],
+            "time": "2021-08-05T21:52:43+00:00"
+        },
+        {
+            "name": "illuminate/contracts",
+            "version": "v8.53.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/illuminate/contracts.git",
+                "reference": "504a34286a1b4c5421c43087d6bd4e176138f6fb"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/illuminate/contracts/zipball/504a34286a1b4c5421c43087d6bd4e176138f6fb",
+                "reference": "504a34286a1b4c5421c43087d6bd4e176138f6fb",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.3|^8.0",
+                "psr/container": "^1.0",
+                "psr/simple-cache": "^1.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "8.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Illuminate\\Contracts\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylor@laravel.com"
+                }
+            ],
+            "description": "The Illuminate Contracts package.",
+            "homepage": "https://laravel.com",
+            "support": {
+                "issues": "https://github.com/laravel/framework/issues",
+                "source": "https://github.com/laravel/framework"
+            },
+            "time": "2021-08-03T14:03:47+00:00"
+        },
+        {
+            "name": "matthiasmullie/minify",
+            "version": "1.3.66",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/matthiasmullie/minify.git",
+                "reference": "45fd3b0f1dfa2c965857c6d4a470bea52adc31a6"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/45fd3b0f1dfa2c965857c6d4a470bea52adc31a6",
+                "reference": "45fd3b0f1dfa2c965857c6d4a470bea52adc31a6",
                 "shasum": ""
             },
             "require": {
@@ -163,8 +284,8 @@
             },
             "require-dev": {
                 "friendsofphp/php-cs-fixer": "~2.0",
-                "matthiasmullie/scrapbook": "~1.0",
-                "phpunit/phpunit": "~4.8"
+                "matthiasmullie/scrapbook": "dev-master",
+                "phpunit/phpunit": ">=4.8"
             },
             "suggest": {
                 "psr/cache-implementation": "Cache implementation to use with Minify::cache"
@@ -202,7 +323,7 @@
             ],
             "support": {
                 "issues": "https://github.com/matthiasmullie/minify/issues",
-                "source": "https://github.com/matthiasmullie/minify/tree/1.3.65"
+                "source": "https://github.com/matthiasmullie/minify/tree/1.3.66"
             },
             "funding": [
                 {
@@ -218,7 +339,7 @@
                     "type": "github"
                 }
             ],
-            "time": "2020-12-27T21:43:29+00:00"
+            "time": "2021-01-06T15:18:10+00:00"
         },
         {
             "name": "matthiasmullie/path-converter",
@@ -324,6 +445,100 @@
             "time": "2019-09-10T13:16:29+00:00"
         },
         {
+            "name": "nesbot/carbon",
+            "version": "2.51.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/briannesbitt/Carbon.git",
+                "reference": "8619c299d1e0d4b344e1f98ca07a1ce2cfbf1922"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/8619c299d1e0d4b344e1f98ca07a1ce2cfbf1922",
+                "reference": "8619c299d1e0d4b344e1f98ca07a1ce2cfbf1922",
+                "shasum": ""
+            },
+            "require": {
+                "ext-json": "*",
+                "php": "^7.1.8 || ^8.0",
+                "symfony/polyfill-mbstring": "^1.0",
+                "symfony/polyfill-php80": "^1.16",
+                "symfony/translation": "^3.4 || ^4.0 || ^5.0"
+            },
+            "require-dev": {
+                "doctrine/orm": "^2.7",
+                "friendsofphp/php-cs-fixer": "^2.14 || ^3.0",
+                "kylekatarnls/multi-tester": "^2.0",
+                "phpmd/phpmd": "^2.9",
+                "phpstan/extension-installer": "^1.0",
+                "phpstan/phpstan": "^0.12.54",
+                "phpunit/phpunit": "^7.5.20 || ^8.5.14",
+                "squizlabs/php_codesniffer": "^3.4"
+            },
+            "bin": [
+                "bin/carbon"
+            ],
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-3.x": "3.x-dev",
+                    "dev-master": "2.x-dev"
+                },
+                "laravel": {
+                    "providers": [
+                        "Carbon\\Laravel\\ServiceProvider"
+                    ]
+                },
+                "phpstan": {
+                    "includes": [
+                        "extension.neon"
+                    ]
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Carbon\\": "src/Carbon/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Brian Nesbitt",
+                    "email": "brian@nesbot.com",
+                    "homepage": "https://markido.com"
+                },
+                {
+                    "name": "kylekatarnls",
+                    "homepage": "https://github.com/kylekatarnls"
+                }
+            ],
+            "description": "An API extension for DateTime that supports 281 different languages.",
+            "homepage": "https://carbon.nesbot.com",
+            "keywords": [
+                "date",
+                "datetime",
+                "time"
+            ],
+            "support": {
+                "issues": "https://github.com/briannesbitt/Carbon/issues",
+                "source": "https://github.com/briannesbitt/Carbon"
+            },
+            "funding": [
+                {
+                    "url": "https://opencollective.com/Carbon",
+                    "type": "open_collective"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2021-07-28T13:16:28+00:00"
+        },
+        {
             "name": "paragonie/random_compat",
             "version": "v9.99.100",
             "source": {
@@ -375,31 +590,30 @@
         },
         {
             "name": "php-mime-mail-parser/php-mime-mail-parser",
-            "version": "5.0.5",
+            "version": "7.0.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/php-mime-mail-parser/php-mime-mail-parser.git",
-                "reference": "27983433aabeccee832573c3c56e6a4855e57745"
+                "reference": "9d09a017f3f103fec8456211a4a538b80e0eca0d"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/php-mime-mail-parser/php-mime-mail-parser/zipball/27983433aabeccee832573c3c56e6a4855e57745",
-                "reference": "27983433aabeccee832573c3c56e6a4855e57745",
+                "url": "https://api.github.com/repos/php-mime-mail-parser/php-mime-mail-parser/zipball/9d09a017f3f103fec8456211a4a538b80e0eca0d",
+                "reference": "9d09a017f3f103fec8456211a4a538b80e0eca0d",
                 "shasum": ""
             },
             "require": {
                 "ext-mailparse": "*",
-                "php": "^7.1"
+                "php": "^7.2|^8.0"
             },
             "replace": {
                 "exorus/php-mime-mail-parser": "*",
                 "messaged/php-mime-mail-parser": "*"
             },
             "require-dev": {
-                "php-coveralls/php-coveralls": "^2.1",
-                "phpunit/php-token-stream": "^3.0",
-                "phpunit/phpunit": "^7.0",
-                "squizlabs/php_codesniffer": "^3.4"
+                "php-coveralls/php-coveralls": "^2.2",
+                "phpunit/phpunit": "^8.0",
+                "squizlabs/php_codesniffer": "^3.5"
             },
             "type": "library",
             "autoload": {
@@ -443,7 +657,7 @@
                     "role": "Developer"
                 }
             ],
-            "description": "A fully tested email parser for PHP 7.1+ (mailparse extension wrapper).",
+            "description": "A fully tested email parser for PHP 7.2+ (mailparse extension wrapper).",
             "homepage": "https://github.com/php-mime-mail-parser/php-mime-mail-parser",
             "keywords": [
                 "MimeMailParser",
@@ -455,22 +669,28 @@
             ],
             "support": {
                 "issues": "https://github.com/php-mime-mail-parser/php-mime-mail-parser/issues",
-                "source": "https://github.com/php-mime-mail-parser/php-mime-mail-parser/tree/master"
+                "source": "https://github.com/php-mime-mail-parser/php-mime-mail-parser/tree/7.0.0"
             },
-            "time": "2019-09-23T11:57:58+00:00"
+            "funding": [
+                {
+                    "url": "https://github.com/eXorus",
+                    "type": "github"
+                }
+            ],
+            "time": "2021-02-25T17:21:57+00:00"
         },
         {
             "name": "phpmailer/phpmailer",
-            "version": "v6.2.0",
+            "version": "v6.5.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/PHPMailer/PHPMailer.git",
-                "reference": "e38888a75c070304ca5514197d4847a59a5c853f"
+                "reference": "a5b5c43e50b7fba655f793ad27303cd74c57363c"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/e38888a75c070304ca5514197d4847a59a5c853f",
-                "reference": "e38888a75c070304ca5514197d4847a59a5c853f",
+                "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/a5b5c43e50b7fba655f793ad27303cd74c57363c",
+                "reference": "a5b5c43e50b7fba655f793ad27303cd74c57363c",
                 "shasum": ""
             },
             "require": {
@@ -488,7 +708,7 @@
                 "yoast/phpunit-polyfills": "^0.2.0"
             },
             "suggest": {
-                "ext-mbstring": "Needed to send email in multibyte encoding charset",
+                "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses",
                 "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
                 "league/oauth2-google": "Needed for Google XOAUTH2 authentication",
                 "psr/log": "For optional PSR-3 debug logging",
@@ -525,7 +745,7 @@
             "description": "PHPMailer is a full-featured email creation and transfer class for PHP",
             "support": {
                 "issues": "https://github.com/PHPMailer/PHPMailer/issues",
-                "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.2.0"
+                "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.5.0"
             },
             "funding": [
                 {
@@ -533,28 +753,182 @@
                     "type": "github"
                 }
             ],
-            "time": "2020-11-25T15:24:57+00:00"
+            "time": "2021-06-16T14:33:43+00:00"
         },
         {
-            "name": "robthree/twofactorauth",
-            "version": "1.7.0",
+            "name": "psr/container",
+            "version": "1.1.1",
             "source": {
                 "type": "git",
-                "url": "https://github.com/RobThree/TwoFactorAuth.git",
-                "reference": "37983bf675c5baca09d19d6705170489d0df0002"
+                "url": "https://github.com/php-fig/container.git",
+                "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/RobThree/TwoFactorAuth/zipball/37983bf675c5baca09d19d6705170489d0df0002",
-                "reference": "37983bf675c5baca09d19d6705170489d0df0002",
+                "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
+                "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.2.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Psr\\Container\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "https://www.php-fig.org/"
+                }
+            ],
+            "description": "Common Container Interface (PHP FIG PSR-11)",
+            "homepage": "https://github.com/php-fig/container",
+            "keywords": [
+                "PSR-11",
+                "container",
+                "container-interface",
+                "container-interop",
+                "psr"
+            ],
+            "support": {
+                "issues": "https://github.com/php-fig/container/issues",
+                "source": "https://github.com/php-fig/container/tree/1.1.1"
+            },
+            "time": "2021-03-05T17:36:06+00:00"
+        },
+        {
+            "name": "psr/log",
+            "version": "1.1.4",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/log.git",
+                "reference": "d49695b909c3b7628b6289db5479a1c204601f11"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
+                "reference": "d49695b909c3b7628b6289db5479a1c204601f11",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.1.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Psr\\Log\\": "Psr/Log/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "https://www.php-fig.org/"
+                }
+            ],
+            "description": "Common interface for logging libraries",
+            "homepage": "https://github.com/php-fig/log",
+            "keywords": [
+                "log",
+                "psr",
+                "psr-3"
+            ],
+            "support": {
+                "source": "https://github.com/php-fig/log/tree/1.1.4"
+            },
+            "time": "2021-05-03T11:20:27+00:00"
+        },
+        {
+            "name": "psr/simple-cache",
+            "version": "1.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/simple-cache.git",
+                "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
+                "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Psr\\SimpleCache\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "http://www.php-fig.org/"
+                }
+            ],
+            "description": "Common interfaces for simple caching",
+            "keywords": [
+                "cache",
+                "caching",
+                "psr",
+                "psr-16",
+                "simple-cache"
+            ],
+            "support": {
+                "source": "https://github.com/php-fig/simple-cache/tree/master"
+            },
+            "time": "2017-10-23T01:57:42+00:00"
+        },
+        {
+            "name": "robthree/twofactorauth",
+            "version": "1.8.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/RobThree/TwoFactorAuth.git",
+                "reference": "30a38627ae1e7c9399dae67e265063cd6ec5276c"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/RobThree/TwoFactorAuth/zipball/30a38627ae1e7c9399dae67e265063cd6ec5276c",
+                "reference": "30a38627ae1e7c9399dae67e265063cd6ec5276c",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.6.0"
             },
             "require-dev": {
+                "php-parallel-lint/php-parallel-lint": "^1.2",
                 "phpunit/phpunit": "@stable"
             },
+            "suggest": {
+                "bacon/bacon-qr-code": "Needed for BaconQrCodeProvider provider",
+                "endroid/qr-code": "Needed for EndroidQrCodeProvider"
+            },
             "type": "library",
             "autoload": {
                 "psr-4": {
@@ -588,7 +962,17 @@
                 "issues": "https://github.com/RobThree/TwoFactorAuth/issues",
                 "source": "https://github.com/RobThree/TwoFactorAuth"
             },
-            "time": "2020-01-02T19:56:46+00:00"
+            "funding": [
+                {
+                    "url": "https://paypal.me/robiii",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/RobThree",
+                    "type": "github"
+                }
+            ],
+            "time": "2021-03-09T18:24:05+00:00"
         },
         {
             "name": "soundasleep/html2text",
@@ -646,6 +1030,551 @@
             "time": "2017-04-19T22:01:50+00:00"
         },
         {
+            "name": "symfony/deprecation-contracts",
+            "version": "v2.4.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/deprecation-contracts.git",
+                "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627",
+                "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "2.4-dev"
+                },
+                "thanks": {
+                    "name": "symfony/contracts",
+                    "url": "https://github.com/symfony/contracts"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "function.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "A generic function and convention to trigger deprecation notices",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/deprecation-contracts/tree/v2.4.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2021-03-23T23:28:01+00:00"
+        },
+        {
+            "name": "symfony/polyfill-mbstring",
+            "version": "v1.23.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-mbstring.git",
+                "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9174a3d80210dca8daa7f31fec659150bbeabfc6",
+                "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "suggest": {
+                "ext-mbstring": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "1.23-dev"
+                },
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Polyfill\\Mbstring\\": ""
+                },
+                "files": [
+                    "bootstrap.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill for the Mbstring extension",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "mbstring",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.1"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2021-05-27T12:26:48+00:00"
+        },
+        {
+            "name": "symfony/polyfill-php80",
+            "version": "v1.23.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-php80.git",
+                "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/1100343ed1a92e3a38f9ae122fc0eb21602547be",
+                "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "1.23-dev"
+                },
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Polyfill\\Php80\\": ""
+                },
+                "files": [
+                    "bootstrap.php"
+                ],
+                "classmap": [
+                    "Resources/stubs"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Ion Bazan",
+                    "email": "ion.bazan@gmail.com"
+                },
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-php80/tree/v1.23.1"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2021-07-28T13:41:28+00:00"
+        },
+        {
+            "name": "symfony/translation",
+            "version": "v5.3.4",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/translation.git",
+                "reference": "d89ad7292932c2699cbe4af98d72c5c6bbc504c1"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/translation/zipball/d89ad7292932c2699cbe4af98d72c5c6bbc504c1",
+                "reference": "d89ad7292932c2699cbe4af98d72c5c6bbc504c1",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.2.5",
+                "symfony/deprecation-contracts": "^2.1",
+                "symfony/polyfill-mbstring": "~1.0",
+                "symfony/polyfill-php80": "^1.16",
+                "symfony/translation-contracts": "^2.3"
+            },
+            "conflict": {
+                "symfony/config": "<4.4",
+                "symfony/dependency-injection": "<5.0",
+                "symfony/http-kernel": "<5.0",
+                "symfony/twig-bundle": "<5.0",
+                "symfony/yaml": "<4.4"
+            },
+            "provide": {
+                "symfony/translation-implementation": "2.3"
+            },
+            "require-dev": {
+                "psr/log": "^1|^2|^3",
+                "symfony/config": "^4.4|^5.0",
+                "symfony/console": "^4.4|^5.0",
+                "symfony/dependency-injection": "^5.0",
+                "symfony/finder": "^4.4|^5.0",
+                "symfony/http-kernel": "^5.0",
+                "symfony/intl": "^4.4|^5.0",
+                "symfony/polyfill-intl-icu": "^1.21",
+                "symfony/service-contracts": "^1.1.2|^2",
+                "symfony/yaml": "^4.4|^5.0"
+            },
+            "suggest": {
+                "psr/log-implementation": "To use logging capability in translator",
+                "symfony/config": "",
+                "symfony/yaml": ""
+            },
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "Resources/functions.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Component\\Translation\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Provides tools to internationalize your application",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/translation/tree/v5.3.4"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2021-07-25T09:39:16+00:00"
+        },
+        {
+            "name": "symfony/translation-contracts",
+            "version": "v2.4.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/translation-contracts.git",
+                "reference": "95c812666f3e91db75385749fe219c5e494c7f95"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/95c812666f3e91db75385749fe219c5e494c7f95",
+                "reference": "95c812666f3e91db75385749fe219c5e494c7f95",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.2.5"
+            },
+            "suggest": {
+                "symfony/translation-implementation": ""
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "2.4-dev"
+                },
+                "thanks": {
+                    "name": "symfony/contracts",
+                    "url": "https://github.com/symfony/contracts"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Contracts\\Translation\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Generic abstractions related to translation",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "abstractions",
+                "contracts",
+                "decoupling",
+                "interfaces",
+                "interoperability",
+                "standards"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/translation-contracts/tree/v2.4.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2021-03-23T23:28:01+00:00"
+        },
+        {
+            "name": "symfony/var-dumper",
+            "version": "v5.3.6",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/var-dumper.git",
+                "reference": "3dd8ddd1e260e58ecc61bb78da3b6584b3bfcba0"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/var-dumper/zipball/3dd8ddd1e260e58ecc61bb78da3b6584b3bfcba0",
+                "reference": "3dd8ddd1e260e58ecc61bb78da3b6584b3bfcba0",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.2.5",
+                "symfony/polyfill-mbstring": "~1.0",
+                "symfony/polyfill-php80": "^1.16"
+            },
+            "conflict": {
+                "phpunit/phpunit": "<5.4.3",
+                "symfony/console": "<4.4"
+            },
+            "require-dev": {
+                "ext-iconv": "*",
+                "symfony/console": "^4.4|^5.0",
+                "symfony/process": "^4.4|^5.0",
+                "twig/twig": "^2.13|^3.0.4"
+            },
+            "suggest": {
+                "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
+                "ext-intl": "To show region name in time zone dump",
+                "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
+            },
+            "bin": [
+                "Resources/bin/var-dump-server"
+            ],
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "Resources/functions/dump.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Component\\VarDumper\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Provides mechanisms for walking through any arbitrary PHP variable",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "debug",
+                "dump"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/var-dumper/tree/v5.3.6"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2021-07-27T01:56:02+00:00"
+        },
+        {
+            "name": "tightenco/collect",
+            "version": "v8.34.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/tighten/collect.git",
+                "reference": "b069783ab0c547bb894ebcf8e7f6024bb401f9d2"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/tighten/collect/zipball/b069783ab0c547bb894ebcf8e7f6024bb401f9d2",
+                "reference": "b069783ab0c547bb894ebcf8e7f6024bb401f9d2",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.2|^8.0",
+                "symfony/var-dumper": "^3.4 || ^4.0 || ^5.0"
+            },
+            "require-dev": {
+                "mockery/mockery": "^1.0",
+                "nesbot/carbon": "^2.23.0",
+                "phpunit/phpunit": "^8.3"
+            },
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "src/Collect/Support/helpers.php",
+                    "src/Collect/Support/alias.php"
+                ],
+                "psr-4": {
+                    "Tightenco\\Collect\\": "src/Collect"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylorotwell@gmail.com"
+                }
+            ],
+            "description": "Collect - Illuminate Collections as a separate package.",
+            "keywords": [
+                "collection",
+                "laravel"
+            ],
+            "support": {
+                "issues": "https://github.com/tighten/collect/issues",
+                "source": "https://github.com/tighten/collect/tree/v8.34.0"
+            },
+            "time": "2021-03-29T21:29:00+00:00"
+        },
+        {
             "name": "yubico/u2flib-server",
             "version": "1.0.2",
             "source": {
@@ -695,5 +1624,5 @@
     "prefer-lowest": false,
     "platform": [],
     "platform-dev": [],
-    "plugin-api-version": "2.0.0"
+    "plugin-api-version": "2.1.0"
 }
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/sieve/extensions/vnd.dovecot.execute.xml b/mailcow/src/mailcow-dockerized/data/web/inc/lib/sieve/extensions/vnd.dovecot.execute.xml
new file mode 100644
index 0000000..bce1ea9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/sieve/extensions/vnd.dovecot.execute.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' standalone='yes'?>
+
+<extension name="vnd.dovecot.execute">
+
+	<test name="execute">
+		<parameter type="tag" name="pipe" regex="pipe" occurrence="optional"/>
+		<parameter type="string" name="program-name"/>
+		<parameter type="stringlist" name="arguments" occurrence="optional"/>
+	</test>
+
+	<command name="execute">
+		<parameter type="tag" name="pipe" regex="pipe" occurrence="optional"/>
+		<parameter type="string" name="program-name"/>
+		<parameter type="stringlist" name="arguments" occurrence="optional"/>
+	</command>
+	
+</extension>
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/sieve/extensions/vnd.dovecot.filter.xml b/mailcow/src/mailcow-dockerized/data/web/inc/lib/sieve/extensions/vnd.dovecot.filter.xml
new file mode 100644
index 0000000..45bf236
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/sieve/extensions/vnd.dovecot.filter.xml
@@ -0,0 +1,15 @@
+<?xml version='1.0' standalone='yes'?>
+
+<extension name="vnd.dovecot.filter">
+
+	<test name="filter">
+		<parameter type="string" name="program-name"/>
+		<parameter type="stringlist" name="arguments" occurrence="optional"/>
+	</test>
+
+	<command name="filter">
+		<parameter type="string" name="program-name"/>
+		<parameter type="stringlist" name="arguments" occurrence="optional"/>
+	</command>
+
+</extension>
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/sieve/extensions/vnd.dovecot.pipe.xml b/mailcow/src/mailcow-dockerized/data/web/inc/lib/sieve/extensions/vnd.dovecot.pipe.xml
new file mode 100644
index 0000000..6bbcfc3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/sieve/extensions/vnd.dovecot.pipe.xml
@@ -0,0 +1,11 @@
+<?xml version='1.0' standalone='yes'?>
+
+<extension name="vnd.dovecot.pipe">
+
+	<command name="pipe">
+		<parameter type="tag" name="try" regex="try" occurrence="optional"/>
+		<parameter type="string" name="program-name"/>
+		<parameter type="stringlist" name="arguments" occurrence="optional"/>
+	</command>
+	
+</extension>
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/.gitattributes b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/.gitattributes
new file mode 100644
index 0000000..84b904d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/.gitattributes
@@ -0,0 +1,2 @@
+examples/ export-ignore
+tests/ export-ignore
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/.github/issue_template.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/.github/issue_template.md
new file mode 100644
index 0000000..f9aba6b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/.github/issue_template.md
@@ -0,0 +1,10 @@
+- Adldap2 Version: #.#
+- LDAP Type: <!-- Active Directory / OpenLDAP / FreeIPA / Sun Directory Server? -->
+- PHP Version: #.#
+
+<!-- **ISSUES WITHOUT THE ABOVE INFORMATION WILL BE CLOSED!** -->
+
+### Description:
+
+
+### Steps To Reproduce:
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/.gitignore b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/.gitignore
new file mode 100644
index 0000000..2130d09
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/.gitignore
@@ -0,0 +1,3 @@
+/.idea
+/vendor
+composer.lock
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/.scrutinizer.yml b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/.scrutinizer.yml
new file mode 100644
index 0000000..9dbf8c1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/.scrutinizer.yml
@@ -0,0 +1,10 @@
+filter:
+    excluded_paths:
+        - tests/*
+        - src/Schemas/*
+build:
+    nodes:
+        analysis:
+            tests:
+                override:
+                    - command: php-scrutinizer-run
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/.styleci.yml b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/.styleci.yml
new file mode 100644
index 0000000..8be488d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/.styleci.yml
@@ -0,0 +1,7 @@
+preset: recommended
+
+enabled:
+  - length_ordered_imports
+
+disabled:
+  - alpha_ordered_imports
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/.travis.yml b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/.travis.yml
new file mode 100644
index 0000000..2723d68
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/.travis.yml
@@ -0,0 +1,19 @@
+language: php
+
+php:
+  - 7.1
+  - 7.2
+  - 7.3
+  - 7.4
+
+before_script:
+  - travis_retry composer self-update
+  - travis_retry composer install --prefer-source --no-interaction
+
+script: ./vendor/bin/phpunit
+
+branches:
+  only:
+    - master
+    - v9.0
+    - v8.0
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/composer.json b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/composer.json
new file mode 100644
index 0000000..26c1534
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/composer.json
@@ -0,0 +1,57 @@
+{
+    "name": "adldap2/adldap2",
+    "type": "library",
+    "description": "A PHP LDAP Package for humans.",
+    "keywords": [
+        "active directory",
+        "directory",
+        "ad",
+        "ldap",
+        "windows",
+        "adldap",
+        "adldap2"
+    ],
+    "license": "MIT",
+    "support": {
+        "docs": "https://github.com/Adldap2/Adldap2/blob/master/readme.md",
+        "issues": "https://github.com/Adldap2/Adldap2/issues",
+        "source": "https://github.com/Adldap2/Adldap2",
+        "email": "steven_bauman@outlook.com"
+    },
+    "authors": [
+        {
+            "name": "Steve Bauman",
+            "email": "steven_bauman@outlook.com",
+            "role": "Developer"
+        }
+    ],
+    "require": {
+        "php": ">=7.0",
+        "ext-ldap": "*",
+        "ext-json": "*",
+        "psr/log": "~1.0",
+        "psr/simple-cache": "~1.0",
+        "tightenco/collect": "~5.0|~6.0|~7.0|~8.0",
+        "illuminate/contracts": "~5.0|~6.0|~7.0|~8.0"
+    },
+    "require-dev": {
+        "phpunit/phpunit": "~6.0|~7.0|~8.0",
+        "mockery/mockery": "~1.0"
+    },
+    "suggest": {
+        "ext-fileinfo": "fileinfo is required when retrieving user encoded thumbnails"
+    },
+    "archive": {
+        "exclude": ["/examples", "/tests"]
+    },
+    "autoload": {
+        "psr-4": {
+            "Adldap\\": "src/"
+        }
+    },
+    "autoload-dev": {
+        "psr-4": {
+            "Adldap\\Tests\\": "tests/"
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/phpunit.xml.tmppica b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/.nojekyll
similarity index 100%
rename from mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/phpunit.xml.tmppica
rename to mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/.nojekyll
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/_coverpage.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/_coverpage.md
new file mode 100644
index 0000000..fc8ec0b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/_coverpage.md
@@ -0,0 +1,16 @@
+<!-- _coverpage.md -->
+
+# Adldap2
+
+<p align="center">
+    <a href="https://travis-ci.org/Adldap2/Adldap2"><img src="https://img.shields.io/travis/Adldap2/Adldap2.svg?style=flat-square"/></a>
+    <a href="https://scrutinizer-ci.com/g/Adldap2/Adldap2/?branch=master"><img src="https://img.shields.io/scrutinizer/g/adLDAP2/adLDAP2/master.svg?style=flat-square"/></a>
+    <a href="https://packagist.org/packages/adldap2/adldap2"><img src="https://img.shields.io/packagist/dt/adldap2/adldap2.svg?style=flat-square"/></a>
+    <a href="https://packagist.org/packages/adldap2/adldap2"><img src="https://img.shields.io/packagist/v/adldap2/adldap2.svg?style=flat-square"/></a>
+    <a href="https://packagist.org/packages/adldap2/adldap2"><img src="https://img.shields.io/packagist/l/adldap2/adldap2.svg?style=flat-square"/></a>
+</p>
+
+> Working with LDAP doesn't need to be hard.
+
+<!-- background image -->
+![](media/bg.svg)
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/_sidebar.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/_sidebar.md
new file mode 100644
index 0000000..0284653
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/_sidebar.md
@@ -0,0 +1,27 @@
+<!-- _sidebar.md -->
+
+* Getting Started
+
+  * [Introduction](/)
+  * [Installation](installation.md)
+  * [Setup](setup.md)
+
+* Usage
+
+  * [Searching](searching.md)
+  * [Creating & Updating](models/model.md)
+  * [Events](events.md)
+  * [Logging](logging.md)
+  * [Working With Distiguished Names](distinguished-names.md)
+  * [Troubleshooting](troubleshooting.md)
+
+* Models
+  * [Model (Base)](models/model.md)
+  * [Computer](models/computer.md)
+  * [Contact](models/contact.md)
+  * [Container](models/container.md)
+  * [Group](models/group.md)
+  * [Organizational Unit](models/ou.md)
+  * [Printer](models/printer.md)
+  * [RootDse](models/root-dse.md)
+  * [User](models/user.md)
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/distinguished-names.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/distinguished-names.md
new file mode 100644
index 0000000..490b99b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/distinguished-names.md
@@ -0,0 +1,167 @@
+## Working With Distinguished Names
+
+Working with DN strings are a pain, but they're about to get easier. Adldap includes a DN builder for easily modifying and
+creating DN strings.
+
+> **Note**: All values inserted into DN methods are escaped. You do not need to escape **any** values before hand.
+
+#### Creating a New DN
+
+To create a new DN, construct a new `Adldap\Models\Attributes\DistinguishedName` instance:
+
+```php
+$dn = new Adldap\Models\Attributes\DistinguishedName();
+```
+    
+You can also pass in a current DN string and start modifying it:
+
+```php
+$currentDn = 'cn=John Doe,ou=Accounting,dc=corp,dc=acme,dc=org';
+
+$dn = new Adldap\Models\Attributes\DistinguishedName($currentDn);
+```
+    
+#### Adding / Removing a Domain Component
+
+```php
+// Add Domain Component
+$dn->addDc('corp');
+
+// Remove Domain Component
+$dn->removeDc('corp');
+```
+
+#### Adding / Removing an Organizational Unit
+
+```php
+// Add Organizational Unit
+$dn->addOu('Accounting');
+    
+// Remove Organizational Unit
+$dn->removeOu('Accounting');
+```
+
+#### Adding / Removing Common Names
+
+```php
+// Add Common Name
+$dn->addCn('John Doe');
+    
+// Remove Common Name
+$dn->removeCn('John Doe');   
+```
+
+#### Setting a base
+
+If you'd like to set the base DN, such as a domain component RDN, use the `setBase()` method:
+
+```php
+$base = 'dc=corp,dc=acme,dc=org';
+
+$dn->setBase($base);
+```
+
+#### Creating a DN From A Model
+
+When you're creating a new LDAP record, you'll need to create a distinguished name as well. Let's go through an example of
+creating a new user.
+
+```php
+$user = $provider->make()->user();
+
+$user->setCommonName('John Doe');
+$user->setFirstName('John');
+$user->setLastName('Doe');
+```
+
+So we've set the basic information on the user, but we run into trouble when we want to put the user into a certain container
+(such as 'Accounting') which is done through the DN. Let's go through this example:
+
+```php
+$dn = $user->getDnBuilder();
+
+$dn->addCn($user->getCommonName());
+$dn->addOu('Accounting');
+$dn->addDc('corp');
+$dn->addDc('acme');
+$dn->addDc('org');
+
+// Returns 'cn=John Doe,ou=Accounting,dc=corp,dc=acme,dc=org'
+echo $dn->get();
+
+// The DistinguishedName object also contains the __toString() magic method
+// so you can also just echo the object itself
+echo $dn;
+```
+    
+Now we've built a DN, and all we have to do is set it on the new user:    
+
+```php
+$user->setDn($dn);
+
+$user->save();
+```
+
+#### Modifying a DN From A Model
+
+When you've received a model from a search result, you can build and modify the models DN like so:
+
+```php
+$user = $ad->users()->find('jdoe');
+
+$dn = $user->getDnBuilder();
+
+$dn->addOu('Users');
+
+$user->setDn($dn)->save();
+```
+
+#### Retrieving the RDN components
+
+To retrieve all of the RDN components of a Distinguished Name, call `getComponents()`:
+
+```php
+$dn = new Adldap\Models\Attributes\DistinguishedName(
+    'cn=John Doe,ou=Accounting,dc=corp,dc=acme,dc=org'
+);
+
+$components = $dn->getComponents();
+
+var_dump($components);
+
+// Output:
+// array:5 [▼
+//   "cn" => array:1 [▼
+//     0 => "John Doe"
+//   ]
+//   "uid" => []
+//   "ou" => array:1 [▼
+//     0 => "Accounting"
+//   ]
+//   "dc" => array:3 [▼
+//     0 => "corp"
+//     1 => "acme"
+//     2 => "org"
+//   ]
+//   "o" => []
+// ]
+```
+
+You can also specify a component you would like returned by supplying it as an argument:
+
+```php
+$dn = new Adldap\Models\Attributes\DistinguishedName(
+    'cn=John Doe,ou=Accounting,dc=corp,dc=acme,dc=org'
+);
+
+$dcs = $dn->getComponents('dc');
+
+var_dump($dcs);
+
+// Output:
+// array:3 [▼
+//   0 => "corp"
+//   1 => "acme"
+//   2 => "org"
+// ]
+```
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/events.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/events.md
new file mode 100644
index 0000000..8175695
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/events.md
@@ -0,0 +1,175 @@
+# Events
+
+Adldap2 events provide a method of listening for certain LDAP actions
+that are called and execute tasks for that specific event.
+
+> **Note**: The Adldap2 event dispatcher was actually derived from the
+> [Laravel Framework](https://github.com/laravel/framework) with
+> Broadcasting & Queuing omitted to remove extra dependencies
+> that would be required with implementing those features.
+>
+> If you've utilized Laravel's events before, this will feel very familiar.
+
+## Registering Listeners
+
+> **Note**: Before we get to registering listeners, it's crucial to know that events throughout
+> Adldap2 are fired irrespective of the current connection or provider in use.
+>
+> This means that when using multiple LDAP connections, the same events will be fired.
+> 
+> This allows you to set listeners on events that occur for all LDAP connections you utilize.
+>
+> If you are required to determine which events are fired from alternate connections, see [below](#determining-the-connection).
+
+To register a listener on an event, retrieve the event dispatcher and call the `listen()` method:
+
+```php
+use Adldap\Auth\Events\Binding;
+
+$dispatcher = \Adldap\Adldap::getEventDispatcher();
+
+$dispatcher->listen(Binding::class, function (Binding $event) {
+    // Do something with the Binding event information:
+    
+    $event->connection; // Adldap\Connections\Ldap instance
+    $event->username; // 'jdoe@acme.org'
+    $event->password; // 'super-secret'
+});
+```
+
+The first argument is the event name you would like to listen for, and the
+second is either a closure or class name that should handle the event:
+
+Using a class:
+
+> **Note**: When using just a class name, the class must contain a public `handle()` method that will handle the event.
+
+```php
+use Adldap\Adldap;
+use Adldap\Auth\Events\Binding;
+
+$dispatcher = Adldap::getEventDispatcher();
+
+$dispatcher->listen(Binding::class, MyApp\BindingEventHandler::class);
+```
+
+```php
+namespace MyApp;
+
+use Adldap\Auth\Events\Binding;
+
+class BindingEventHandler
+{
+    public function handle(Binding $event)
+    {
+        // Handle the event...
+    }
+}
+```
+
+## Model Events
+
+Model events are handled the same way as authentication events.
+
+Simply call the event dispatcher `listen()` method with the model event you are wanting to listen for:
+
+```php
+use Adldap\Models\Events\Saving;
+
+$dispatcher = \Adldap\Adldap::getEventDispatcher();
+
+$dispatcher->listen(Saving::class, function (Saving $event) {
+    // Do something with the Saving event information:
+    
+    // Returns the model instance being saved eg. `Adldap\Models\Entry`
+    $event->getModel();
+});
+```
+
+## Wildcard Event Listeners
+
+You can register listeners using the `*` as a wildcard parameter to catch multiple events with the same listener.
+
+Wildcard listeners will receive the event name as their first argument, and the entire event data array as their second argument:
+
+```php
+$dispatcher = Adldap::getEventDispatcher();
+
+// Listen for all model events.
+$dispatcher->listen('Adldap\Models\Events\*', function ($eventName, array $data) {
+    echo $eventName; // Returns 'Adldap\Models\Events\Updating'
+    var_dump($data); // Returns [0] => (object) Adldap\Models\Events\Updating;
+});
+
+$user = $provider->search()->users()->find('jdoe');
+
+$user->setTelephoneNumber('555 555-5555');
+
+$user->save();
+```
+
+## Determining the Connection
+
+If you're using multiple LDAP connections and you require the ability to determine which events belong
+to a certain connection, you can do so by verifying the host of the LDAP connection.
+
+Here's an example:
+
+```php
+$dispatcher = Adldap::getEventDispatcher();
+
+$dispatcher->listen(\Adldap\Models\Events\Creating::class, function ($event) {
+    $connection = $event->model->getConnection();
+    
+    $host = $connection->getHost();
+    
+    echo $host; // Displays 'ldap://192.168.1.1:386'
+});
+```
+
+Another example with auth events:
+
+```php
+$dispatcher = Adldap::getEventDispatcher();
+
+$dispatcher->listen(\Adldap\Auth\Events\Binding::class, function ($event) {
+    $connection = $event->connection;
+    
+    $host = $connection->getHost();
+    
+    echo $host; // Displays 'ldap://192.168.1.1:386'
+});
+```
+
+## List of Events
+
+### Authentication Events
+
+There are several events that are fired during initial and subsequent binds to your configured LDAP server.
+
+Here is a list of all events that are fired:
+
+| Event| Description |
+|---|---|
+| Adldap\Auth\Events\Attempting | When any authentication attempt is called via: `$provider->auth()->attempt()` |
+| Adldap\Auth\Events\Passed | When any authentication attempts pass via: `$provider->auth()->attempt()` |
+| Adldap\Auth\Events\Failed | When any authentication attempts fail via: `$provider->auth()->attempt()` *Or* `$provider->auth()->bind()` |
+| Adldap\Auth\Events\Binding | When any LDAP bind attempts occur via: `$provider->auth()->attempt()` *Or* `$provider->auth()->bind()` |
+| Adldap\Auth\Events\Bound | When any LDAP bind attempts are successful via: `$provider->auth()->attempt()` *Or* `$provider->auth()->bind()` |
+
+### Model Events
+
+There are several events that are fired during the creation, updating and deleting of all models.
+
+Here is a list of all events that are fired:
+
+| Event | Description |
+|---|---|
+| Adldap\Models\Events\Saving | When a model is in the process of being saved via: `$model->save()` |
+| Adldap\Models\Events\Saved | When a model has been successfully saved via: `$model->save()` |
+| Adldap\Models\Events\Creating | When a model is being created via: `$model->save()` *Or* `$model->create()` |
+| Adldap\Models\Events\Created | When a model has been successfully created via: `$model->save()` *Or* `$model->create()` |
+| Adldap\Models\Events\Updating | When a model is being updated via: `$model->save()` *Or* `$model->update()` |
+| Adldap\Models\Events\Updated | When a model has been successfully updated via: `$model->save()` *Or* `$model->update()` |
+| Adldap\Models\Events\Deleting | When a model is being deleted via: `$model->delete()` |
+| Adldap\Models\Events\Deleted | When a model has been successfully deleted via: `$model->delete()` |
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/index.html b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/index.html
new file mode 100644
index 0000000..adf939b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/index.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html lang="en">
+    <head>
+        <meta charset="UTF-8">
+        <title>Adldap2 Documentation</title>
+        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+        <meta name="description" content="Adldap2 Documentation">
+        <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
+        <link rel="stylesheet" href="https://unpkg.com/docsify/lib/themes/vue.css">
+    </head>
+
+    <body>
+        <div id="app"></div>
+
+        <script>
+            window.$docsify = {
+                name: 'Adldap2',
+                repo: 'https://github.com/Adldap2/Adldap2',
+                autoHeader: true,
+                auto2top: true,
+                homepage: 'readme.md',
+                coverpage: true,
+                search: 'auto',
+                loadSidebar: true,
+                subMaxLevel: 3
+            }
+        </script>
+        
+
+        <script src="https://unpkg.com/docsify/lib/docsify.min.js"></script>
+        <script src="https://unpkg.com/prismjs/components/prism-php.min.js"></script>
+        <script src="https://unpkg.com/docsify/lib/plugins/search.min.js"></script>
+    </body>
+</html>
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/installation.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/installation.md
new file mode 100644
index 0000000..de21239
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/installation.md
@@ -0,0 +1,29 @@
+# Requirements
+
+Adldap2 requires the following:
+
+- PHP 7.0 or greater
+- LDAP extension enabled in PHP
+- An LDAP server (ActiveDirectory, OpenLDAP, FreeIPA etc.)
+
+# Composer
+
+Adldap2 uses [Composer](https://getcomposer.org) for installation.
+
+Once you have composer installed, run the following command in the root directory of your project:
+
+```bash
+composer require adldap2/adldap2
+```
+
+Then, if your application doesn't already require Composer's autoload, you will need to do it manually.
+
+Insert this line at the top of your projects PHP script (usually `index.php`):
+
+```php
+require __DIR__ . '/vendor/autoload.php';
+```
+
+You're all set!
+
+Now, head over to the [setup guide](setup.md) to get up and running.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/logging.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/logging.md
new file mode 100644
index 0000000..b49bcd3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/logging.md
@@ -0,0 +1,74 @@
+# Logging
+
+Adldap2 includes an implementation of PSR's widely supported [Logger](https://github.com/php-fig/log) interface.
+
+By default, all of Adldap2's [events](events.md) will call the logger you have set to utilize.
+
+> **Note**: Adldap2 does not include a file / text logger. You must implement your own.
+
+## Registering & Enabling a Logger
+
+To register a logger call `Adldap::setLogger()`. The logger must implement the `Psr\Log\LoggerInterface`.
+
+>**Note**: Be sure to set the logger prior to creating a new `Adldap` instance. This
+> ensures all events throughout the lifecycle of the request use your logger.
+
+```php
+use Adldap\Adldap;
+
+Adldap::setLogger($myLogger);
+
+$config = ['...'];
+
+$ad = new Adldap();
+
+$ad->addProvider($config);
+```
+
+## Disabling Logging
+
+If you need to disable the event logger after a certain set of operations, simply pass in `null` and logging will be disabled:
+
+```php
+use Adldap\Adldap;
+
+Adldap::setLogger($myLogger);
+
+$config = ['...'];
+
+$ad = new Adldap();
+
+$ad->addProvider($config);
+
+try {
+    $ad->connect();
+    
+    // Disable logging anything else.
+    Adldap::setLogger(null);
+} catch (\Adldap\Connections\BindException $e) {
+    //
+}
+```
+
+## Logged Information
+
+Here is a list of events that are logged along with the information included:
+
+| Authentication Events | Logged |
+|---|---|
+| `Adldap\Auth\Events\Attempting` | `LDAP (ldap://192.168.1.1:389) - Operation: Adldap\Auth\Events\Attempting - Username: CN=Steve Bauman,OU=Users,DC=corp,DC=acme,DC=org` | 
+| `Adldap\Auth\Events\Binding` |` LDAP (ldap://192.168.1.1:389) - Operation: Adldap\Auth\Events\Binding - Username: CN=Steve Bauman,OU=Users,DC=corp,DC=acme,DC=org` | 
+| `Adldap\Auth\Events\Bound` | `LDAP (ldap://192.168.1.1:389) - Operation: Adldap\Auth\Events\Bound - Username: CN=Steve Bauman,OU=Users,DC=corp,DC=acme,DC=org` | 
+| `Adldap\Auth\Events\Passed` | `LDAP (ldap://192.168.1.1:389) - Operation: Adldap\Auth\Events\Passed - Username: CN=Steve Bauman,OU=Users,DC=corp,DC=acme,DC=org` | 
+| `Adldap\Auth\Events\Failed` | `LDAP (ldap://192.168.1.1:389) - Operation: Adldap\Auth\Events\Failed - Username: CN=Steve Bauman,OU=Users,DC=corp,DC=acme,DC=org - Result: Invalid Credentials` |
+
+| Model Events | Logged |
+|---|---|
+| `Adldap\Models\Events\Saving` | `LDAP (ldap://192.168.1.1:389) - Operation: Saving - On: Adldap\Models\User - Distinguished Name: cn=John Doe,dc=acme,dc=org` | 
+| `Adldap\Models\Events\Saved` | `LDAP (ldap://192.168.1.1:389) - Operation: Saved - On: Adldap\Models\User - Distinguished Name: cn=John Doe,dc=acme,dc=org` | 
+| `Adldap\Models\Events\Creating` | `LDAP (ldap://192.168.1.1:389) - Operation: Creating - On: Adldap\Models\User - Distinguished Name: cn=John Doe,dc=acme,dc=org` | 
+| `Adldap\Models\Events\Created` | `LDAP (ldap://192.168.1.1:389) - Operation: Created - On: Adldap\Models\User - Distinguished Name: cn=John Doe,dc=acme,dc=org` | 
+| `Adldap\Models\Events\Updating` | `LDAP (ldap://192.168.1.1:389) - Operation: Updating - On: Adldap\Models\User - Distinguished Name: cn=John Doe,dc=acme,dc=org` | 
+| `Adldap\Models\Events\Updated` | `LDAP (ldap://192.168.1.1:389) - Operation: Updated - On: Adldap\Models\User - Distinguished Name: cn=John Doe,dc=acme,dc=org` | 
+| `Adldap\Models\Events\Deleting` | `LDAP (ldap://192.168.1.1:389) - Operation: Deleting - On: Adldap\Models\User - Distinguished Name: cn=John Doe,dc=acme,dc=org` | 
+| `Adldap\Models\Events\Deleted` | `LDAP (ldap://192.168.1.1:389) - Operation: Deleted - On: Adldap\Models\User - Distinguished Name: cn=John Doe,dc=acme,dc=org` | 
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/media/bg.svg b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/media/bg.svg
new file mode 100644
index 0000000..e70e863
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/media/bg.svg
@@ -0,0 +1 @@
+<svg xmlns='http://www.w3.org/2000/svg' width='100%' height='100%' viewBox='0 0 1600 800'><rect fill='#46ff55' width='1600' height='800'/><g ><path fill='#51ff76' d='M486 705.8c-109.3-21.8-223.4-32.2-335.3-19.4C99.5 692.1 49 703 0 719.8V800h843.8c-115.9-33.2-230.8-68.1-347.6-92.2C492.8 707.1 489.4 706.5 486 705.8z'/><path fill='#57ff94' d='M1600 0H0v719.8c49-16.8 99.5-27.8 150.7-33.5c111.9-12.7 226-2.4 335.3 19.4c3.4 0.7 6.8 1.4 10.2 2c116.8 24 231.7 59 347.6 92.2H1600V0z'/><path fill='#5affb1' d='M478.4 581c3.2 0.8 6.4 1.7 9.5 2.5c196.2 52.5 388.7 133.5 593.5 176.6c174.2 36.6 349.5 29.2 518.6-10.2V0H0v574.9c52.3-17.6 106.5-27.7 161.1-30.9C268.4 537.4 375.7 554.2 478.4 581z'/><path fill='#57ffcd' d='M0 0v429.4c55.6-18.4 113.5-27.3 171.4-27.7c102.8-0.8 203.2 22.7 299.3 54.5c3 1 5.9 2 8.9 3c183.6 62 365.7 146.1 562.4 192.1c186.7 43.7 376.3 34.4 557.9-12.6V0H0z'/><path fill='#50ffe8' d='M181.8 259.4c98.2 6 191.9 35.2 281.3 72.1c2.8 1.1 5.5 2.3 8.3 3.4c171 71.6 342.7 158.5 531.3 207.7c198.8 51.8 403.4 40.8 597.3-14.8V0H0v283.2C59 263.6 120.6 255.7 181.8 259.4z'/><path fill='#7dffe9' d='M1600 0H0v136.3c62.3-20.9 127.7-27.5 192.2-19.2c93.6 12.1 180.5 47.7 263.3 89.6c2.6 1.3 5.1 2.6 7.7 3.9c158.4 81.1 319.7 170.9 500.3 223.2c210.5 61 430.8 49 636.6-16.6V0z'/><path fill='#9effe9' d='M454.9 86.3C600.7 177 751.6 269.3 924.1 325c208.6 67.4 431.3 60.8 637.9-5.3c12.8-4.1 25.4-8.4 38.1-12.9V0H288.1c56 21.3 108.7 50.6 159.7 82C450.2 83.4 452.5 84.9 454.9 86.3z'/><path fill='#baffea' d='M1600 0H498c118.1 85.8 243.5 164.5 386.8 216.2c191.8 69.2 400 74.7 595 21.1c40.8-11.2 81.1-25.2 120.3-41.7V0z'/><path fill='#d2ffea' d='M1397.5 154.8c47.2-10.6 93.6-25.3 138.6-43.8c21.7-8.9 43-18.8 63.9-29.5V0H643.4c62.9 41.7 129.7 78.2 202.1 107.4C1020.4 178.1 1214.2 196.1 1397.5 154.8z'/><path fill='#e9ffeb' d='M1315.3 72.4c75.3-12.6 148.9-37.1 216.8-72.4h-723C966.8 71 1144.7 101 1315.3 72.4z'/></g></svg>
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/computer.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/computer.md
new file mode 100644
index 0000000..e3057ab
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/computer.md
@@ -0,0 +1,32 @@
+# The Computer Model
+
+> **Note**: This model contains the traits `HasDescription`, `HasLastLogonAndLogOff` & `HasCriticalSystemObject`.
+> For more information, visit the documentation:
+>
+> [HasDescription](/models/traits/has-description.md),
+> [HasLastLogonAndLogOff](/models/traits/has-last-login-last-logoff.md),
+> [HasCriticalSystemObject](/models/traits/has-critical-system-object.md)
+
+## Methods
+
+```php
+$computer = $provider->search()->computers()->find('ACME-EXCHANGE');
+
+// Returns 'Windows Server 2003'
+$computer->getOperatingSystem();
+
+// Returns '5.2 (3790)';
+$computer->getOperatingSystemVersion();
+
+// Returns 'Service Pack 1';
+$computer->getOperatingSystemServicePack();
+
+// Returns 'ACME-DESKTOP001.corp.acme.org'
+$computer->getDnsHostName();
+
+$computer->getLastLogOff();
+
+$computer->getLastLogon();
+
+$computer->getLastLogonTimestamp();
+```
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/contact.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/contact.md
new file mode 100644
index 0000000..e42c8f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/contact.md
@@ -0,0 +1,13 @@
+# The Contact Model
+
+The Contact model extends from the base `Adldap\Models\Model` class and contains
+no specific methods / attributes that are limited to it.
+
+## Creation
+
+```php
+// Adldap\Models\Contact
+$contact = $provider->make()->contact([
+    'cn' => 'Suzy Doe',
+]);
+```
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/container.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/container.md
new file mode 100644
index 0000000..132b549
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/container.md
@@ -0,0 +1,24 @@
+# The Container Model
+
+> **Note**: This model contains the trait `HasDescription` & `HasCriticalSystemObject`.
+> For more information, visit the documentation:
+> 
+> [HasDescription](/models/traits/has-description.md),
+> [HasCriticalSystemObject](/models/traits/has-critical-system-object.md),
+
+## Creation
+
+```php
+// Adldap\Models\Container
+$container = $provider->make()->container([
+    'cn' => 'VPN Users',
+]);
+```
+
+## Methods
+
+The `Container` model contains only one unique method.
+
+```php
+$flags = $container->getSystemFlags();
+```
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/group.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/group.md
new file mode 100644
index 0000000..cf7c6d4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/group.md
@@ -0,0 +1,253 @@
+# The Group Model
+
+> **Note**: This model contains the trait `HasMemberOf`.
+> For more information, visit the documentation:
+>
+> [HasMemberOf](/models/traits/has-member-of.md)
+
+## Creation
+
+```php
+// Adldap\Models\Group
+$group = $provider->make()->group([
+    'cn' => 'Managers',
+]);
+
+// Create group's DN through the DN Builder:
+$group = $provider->make()->group();
+
+$dn = $group->getDnBuilder();
+
+$dn->addOu('Workstation Computers');
+
+$dn->addCn("Managers");
+
+$group->setDn($dn);
+
+// Or set the DN manually:
+$ou->setDn('cn=Managers,ou=Workstation Computers,dc=test,dc=local,dc=com');
+
+$group->save();
+```
+
+## Getting a groups members
+
+When you receive a `Group` model instance, it will contain a `member`
+attribute which contains the distinguished names of all
+the members inside the group.
+
+```php
+$group = $provider->search()->groups()->first();
+
+foreach ($group->members as $member) {
+    echo $member; // 'cn=John Doe,dc=corp,dc=acme,dc=org'
+}
+```
+
+But this might not be useful, since we might actually want the models for each member.
+
+This can be easily done with the `getMembers()` method on the group.
+
+```php
+$group = $provider->search()->groups()->first();
+
+foreach ($group->getMembers() as $member) {
+    echo get_class($member); // Instance of `Adldap\Models\Model`
+
+    echo $member->getCommonName();
+}
+```
+
+> **Note**: You should be aware however, that calling the `getMembers()` method will
+> query your `AD` server for **every** member contained in the group to retrieve
+> its model. For larger group sets it may be worth paginating them.
+
+
+### Paginating Group Members
+
+The group you're looking for might contain hundreds / thousands of members.
+
+In this case, your server might only return you a portion of the groups members.
+
+To get around this limit, you need to ask your server to paginate the groups members through a select:
+
+```php
+$group = $provider->search()->groups()->select('member;range=0-500')->first();
+
+foreach ($group->members as $member) {
+    // We'll only have 500 members in this query.
+}
+```
+
+Now, when we have the group instance, we'll only have the first `500` members inside this group.
+However, calling the `getMembers()` method will automatically retrieve the rest of the members for you:
+
+```php
+$group = $provider->search()->groups()->select('member;range=0-500')->first();
+
+foreach ($group->getMembers() as $member) {
+    // Adldap will automatically retrieve the next 500
+    // records until it's retrieved all records.
+    $member->getCommonName();
+}
+```
+
+> **Note**: Groups containing large amounts of users (1000+) will require
+> more memory assigned to PHP. Your mileage will vary.
+
+#### Paginating large sets of Group Members
+
+When requesting group members from groups that contain a large amount of members
+(typically over 1000), you may receive PHP memory limit errors due to
+the large amount of the objects being created in the request.
+
+To resolve this, you will need to retrieve the members manually. However using
+this route you will only be able to retrieve the members distinguished names.
+
+```php
+$from = 0;
+$to = 500;
+$range = "member;range=$from-$to";
+
+// Retrieve the group.
+$group = $provider->search()->select($range)->raw()->find('Accounting');
+
+// Remove the count from the member array.
+unset($group[$range]['count']);
+
+// The array of group members distinguished names.
+$members = $group[$range];
+
+foreach ($members as $member) {
+    echo $member; // 'cn=John Doe,dc=acme,dc=org'
+}
+```
+
+You can then encapsulate the above example into a recursive function to retrieve the remaining group members.
+
+## Getting only a groups member names
+
+To retrieve only the names of the members contained in a group, call the `getMemberNames()` method:
+
+```php
+foreach ($group->getMemberNames() as $name) {
+    // Returns 'John Doe' 
+    echo $name;
+}
+```
+
+> **Note**: This method does not query your server for each member to retrieve its name. It
+> only parses the distinguished names from the groups `member` attribute. This means that
+> if you have paginated group members, you will need to perform another query yourself
+> to retrieve the rest of the member names (or just call the `getMembers()` method).
+
+## Setting Group Members
+
+To set members that are apart of the group, you can perform this in two ways:
+
+> **Note**: Remember, this will remove **all** pre-existing members, and set the new given members on the group.
+
+```php
+$members = [
+    'cn=John Doe,dc=corp,dc=acme,dc=org',
+    'cn=Jane Doe,dc=corp,dc=acme,dc=org',
+];
+
+$group->setMembers($members);
+
+$group->save();
+```
+
+Or manually:
+
+```php
+$group->member = [
+    'cn=John Doe,dc=corp,dc=acme,dc=org',
+    'cn=Jane Doe,dc=corp,dc=acme,dc=org',
+];
+
+$group->save();
+```
+
+## Adding One Member
+
+To add a single member to a group, use the `addMember()` method:
+
+> **Note**: You do not need to call the `save()` method after adding a
+> member. It's automatically called so you can determine
+> if the member was successfully added.
+
+```php
+// We can provide a model, or just a plain DN of the new member
+$user = $provider->search()->users()->first();
+
+if ($group->addMember($user)) {
+    // User was successfully added to the group!
+}
+
+// Or
+
+$user = 'cn=John Doe,dc=corp,dc=acme,dc=org';
+
+if ($group->addMember($user)) {
+    //
+}
+```
+
+## Adding Multiple Group Members
+
+To add multiple members to a group, use the `addMembers()` method:
+
+> **Note**: You do not need to call the `save()` method after adding
+> members. It's automatically called so you can determine
+> if the members were successfully added.
+
+```php
+$members = [
+    'cn=John Doe,dc=corp,dc=acme,dc=org',
+    'cn=Jane Doe,dc=corp,dc=acme,dc=org',
+];
+
+$group->addMembers($members);
+
+// Or
+
+$user = $provider->search()->users()->first();
+
+if ($group->addMembers($user)) {
+    //
+}
+```
+
+## Removing One Member
+
+To remove a single member to a group, use the `removeMember()` method:
+
+```php
+// We can provide a model, or just a plain DN of the existing member
+$group = $provider->search()->groups()->first();
+
+$member = $group->getMembers()->first();
+
+if ($group->removeMember($member)) {
+    // Member was successfully removed from the group!
+}
+
+// Or
+
+$user = 'cn=John Doe,dc=corp,dc=acme,dc=org';
+
+if ($group->removeMember($user)) {
+    //
+}
+```
+
+## Removing All Members
+
+To remove all members, use the `removeMembers()` method:
+
+```php
+if ($group->removeMembers()) {
+    // All members were successfully removed!
+}
+```
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/model.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/model.md
new file mode 100644
index 0000000..fbcecc8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/model.md
@@ -0,0 +1,655 @@
+# Creating / Updating
+
+## Introduction
+
+Adldap2 implements the [ActiveRecord](https://en.wikipedia.org/wiki/Active_record_pattern) pattern.
+This means that each LDAP record in your directory is represented as it's own model instance.
+
+## Creating
+
+Creating LDAP entries manually is always a pain, but Adldap2 makes it effortless. Let's get started.
+
+When you have a provider instance, call the `make()` method. This returns an `Adldap\Models\Factory` instance:
+
+```php
+$factory = $provider->make();
+```
+
+Or you can chain all methods if you'd prefer:
+
+```php
+$user = $provider->make()->user();
+```
+
+### Available Make Methods
+
+When calling a make method, all of them accept an `$attributes` parameter
+to fill the model with your specified attributes.
+
+```php
+// Adldap\Models\User
+$user = $provider->make()->user([
+    'cn' => 'John Doe',
+]);
+
+// Adldap\Models\Computer
+$computer = $provider->make()->computer([
+    'cn' => 'COMP-101',
+]);
+
+// Adldap\Models\Contact
+$contact = $provider->make()->contact([
+    'cn' => 'Suzy Doe',
+]);
+
+// Adldap\Models\Container
+$container = $provider->make()->container([
+    'cn' => 'VPN Users',
+]);
+
+// Adldap\Models\Group
+$group = $provider->make()->group([
+    'cn' => 'Managers',
+]);
+
+// Adldap\Models\OrganizationalUnit
+$ou = $provider->make()->ou([
+    'name' => 'Acme',
+]);
+```
+
+## Saving
+
+When you have any model instance, you can call the `save()` method to persist the
+changes to your server. This method returns a `boolean`. For example:
+
+```php
+$user = $provider->make()->user([
+    'cn' => 'New User',
+]);
+
+if ($user->save()) {
+    // User was saved.
+} else {
+    // There was an issue saving this user.
+}
+```
+
+> **Note**: When a model is saved successfully (whether created or updated), the
+> models attributes are re-synced in the background from your LDAP server.
+> 
+> This allows you to perform other operations during the same
+> request that require an existing model.
+
+### Creating (Manually)
+
+If you are sure the model **does not exist** already inside your LDAP directory, you can use the `create()` method:
+
+```php
+$user = $provider->make()->user([
+    'cn' => 'New User',
+]);
+
+if ($user->create()) {
+    // User was created.
+} else {
+    // There was an issue creating this user.
+}
+```
+
+> **Note**: When you call the create method, if the model does not have a
+> distinguished name, one will automatically be generated for you using your
+> `base_dn` set in your configuration and the models common name.
+
+### Updating (Manually)
+
+If you are sure the model **does exist** already inside your LDAP directory, you can use the `update()` method:
+
+```php
+$user = $provider->search()->whereEquals('cn', 'John Doe')->firstOrFail();
+
+$user->displayName = 'Suzy Doe';
+
+if ($user->update()) {
+    // User was updated.
+} else {
+    // There was an issue updating this user.
+}
+```
+
+## Checking Existence
+
+If you need to check the existence of a model, use the property `exists`.
+
+How does it know if the model exists in your LDAP directory? Well, when models are constructed from
+search results, the `exists` property on the model is set to `true`.
+
+```php
+$user = $provider->search()->find('jdoe');
+
+$user->exists; // Returns true.
+
+if ($user->delete()) {
+    $user->exists; // Returns false.
+}
+```
+
+If a model is created successfully, the `exists` property is set to `true`:
+
+```php
+$user = $provider->make()->user([
+    'cn' => 'John Doe',
+]);
+
+$user->exists; // Returns false.
+
+if ($user->save()) {
+    $user->exists; // Returns true.
+}
+```
+
+## Attributes
+
+Due to LDAPs multi-valued nature, all LDAP attributes inside a model have their own array.
+
+For example, a models attributes may contain the following:
+
+```php
+var_dump($user->getAttributes());
+
+// Returns:
+/*
+[
+    'cn' => [
+        0 => 'John Doe',
+    ],
+    'sn' => [
+        0 => 'Doe',
+    ],
+    'givenname' => [
+        0 => 'John'
+    ],
+    'useraccountcontrol' => [
+        0 => 512
+    ],
+    'mail' => [
+        0 => 'jdoe@acme.org',
+        1 => 'john-doe@acme.org',
+    ],
+    'memberof' => [
+        0 => 'cn=Accountants,ou=Groups,dc=acme,dc=org',
+        1 => 'cn=Employees,ou=Groups,dc=acme,dc=org',
+        2 => 'cn=Users,ou=Groups,dc=acme,dc=org',
+    ],
+]
+*/
+```
+
+You can notice in the above dumped array that each attribute contains
+its own array with a value assigned to the first key.
+
+Since all models extend from the base class `Adldap\Models\Model`, there
+are many useful methods that you can use on every model to easily
+retrieve these attributes you're looking for.
+
+### Getting Attributes
+
+You can get attributes in a few ways:
+
+```php
+// Returns an array all of the users attributes.
+$user->getAttributes();
+
+// Returns an array of all the users email addresses.
+// Returns `null` if non-existent.
+$user->getAttribute('mail');
+
+// Returns the users first email address.
+// Returns `null` if non-existent.
+$user->getAttribute('mail', 0);
+
+// Returns the users first email address.
+// Returns `null` if non-existent.
+$user->getFirstAttribute('mail');
+
+// Returns an array of all the users email addresses. 
+$user->mail;
+
+// Returns the users first email address.
+$user->mail[0];
+```
+
+#### Using a Getter
+
+Some attributes have methods for easier retrieval so you don't need to look up the LDAP attribute name.
+
+For example, to retrieve a users email address, use the method `getEmail()`:
+
+```php
+$user->getEmail();
+```
+
+##### Other Methods
+
+The following methods are available on all returned models:
+
+```php
+// Returns the model's 'name' attribute.
+$model->getName();
+
+// Returns the model's 'cn' attribute.
+$model->getCommonName();
+
+// Returns the model's 'displayname' attribute.
+$model->getDisplayName();
+
+// Returns the model's 'samaccountname' attriubte.
+$model->getAccountName();
+
+// Returns the model's 'samaccounttype` attribute.
+$model->getAccountType();
+
+// Returns the model's 'whencreated` attribute.
+$model->getCreatedAt();
+
+// Returns the model's 'whencreated` attribute in a MySQL timestamp format.
+$model->getCreatedAtDate();
+
+// Returns the model's 'whencreated' attribute in unix time.
+$model->getCreatedAtTimestamp();
+
+// Returns the model's 'whenchanged` attribute.
+$model->getUpdatedAt();
+
+// Returns the model's 'whenchanged` attribute in a MySQL timestamp format.
+$model->getUpdatedAtDate();
+
+// Returns the model's 'whenchanged` attribute in unix time.
+$model->getUpdatedAtTimestamp();
+
+// Returns the model's 'objectclass' attribute.
+$model->getObjectClass();
+
+// Returns the model's root object category string.
+$model->getObjectCategory();
+
+// Returns the model's object category in an array.
+$model->getObjectCategoryArray();
+
+// Returns the model's object category distinguished name.
+$model->getObjectCategoryDn();
+
+// Returns the model's SID in binary.
+$model->getObjectSid();
+
+// Returns the model's GUID in binary.
+$model->getObjectGuid();
+
+// Returns the model's SID in a string.
+$model->getConvertedSid();
+
+// Returns the model's GUID in a string.
+$model->getConvertedGuid();
+
+// Returns the model's primary group ID.
+$model->getPrimaryGroupId();
+
+// Returns the model's 'instancetype' attribute.
+$model->getInstanceType();
+
+// Returns the model's 'maxpwdage' attribute.
+$model->getMaxPasswordAge();
+```
+
+For more documentation on specific getters, please take a look at the relevant model documentation.
+
+#### Getting Dirty (Modified) Attributes
+
+You can get a models modified attributes using the `getDirty()` method:
+
+```php
+$user = $provider->search()->users()->find('john');
+
+// Returns array [0 => 'John Doe']
+var_dump($user->cn);
+
+$user->setAttribute('cn', 'Jane Doe');
+
+// Returns array ['cn' => [0 => 'Jane Doe']]
+var_dump($user->getDirty());
+
+// The attribute has been modified - returns array [0 => 'Jane Doe']
+var_dump($user->cn);
+```
+
+The method returns an array with the key being the modified attribute,
+and the array being the new values of the attribute.
+
+#### Getting Original (Unmodified) Attributes
+
+You can get a models original attributes using the `getOriginal()` method:
+
+```php
+$user = $provider->search()->users()->find('john');
+
+// Returns array [0 => 'John Doe']
+var_dump($user->cn);
+
+$user->setAttribute('cn', 'Jane Doe');
+
+// The attribute has been modified - returns array [0 => 'Jane Doe']
+var_dump($user->cn);
+
+// Retrieving the original value - returns array [0 => 'John Doe']
+var_dump($user->getOriginal()['cn']);
+```
+
+> **Note**: Keep in mind, when you `save()` a model, the models original
+> attributes will be re-synchronized to the models new attributes.
+
+### Setting Attributes
+
+Just like getting model attributes, there's multiple ways of setting attributes as well:
+
+```php
+// Setting via method:
+$user->setAttribute('cn', 'John Doe');
+
+// Specifying a subkey for overwriting specific attributes:
+$user->setAttribute('mail', 'other-mail@mail.com', 0);
+
+// Setting the first attribute:
+$user->setFirstAttribute('mail', 'jdoe@mail.com');
+
+// Setting via property:
+$user->cn = 'John Doe';
+
+// Mass setting attributes:
+$user->fill([
+    'cn' => 'John Doe',
+    'mail' => 'jdoe@mail.com',
+]);
+```
+
+#### Setting Boolean Attributes
+
+When setting boolean attribute values, you cannot use `0` / `1` / `true` / `false` as these
+are simply converted to integer values when saving and your LDAP server will
+likely return an error for doing so on certain attributes.
+
+You will need to use the string versions of the boolean (`'TRUE'` / `'FALSE'`) for the
+boolean attribute to be set properly on your LDAP server.
+
+Here's an example:
+
+```php
+$user->setFirstAttribute('msExchHideFromAddressLists', 'TRUE');
+
+$user->save();
+```
+
+### Creating Attributes
+
+To create an attribute that does not exist on the model, you can set it like a regular property:
+
+```php
+$user = $provider->search()->whereEquals('cn', 'John Doe')->firstOrFail();
+
+$user->new = 'New Attribute';
+
+$user->save();
+```
+
+If the set attribute does not exist on the model already,
+it will automatically be created when you call the `save()` method.
+
+If you'd like manually create new attributes individually, call the `createAttribute($attribute, $value)` method:
+
+```php
+if ($user->createAttribute('new', 'New Attribute')) {
+    // Attribute created.
+}
+```
+
+### Updating Attributes
+
+To modify an attribute you can either use a setter method, or by setting it manually:
+
+> **Note**: You can also utilize setters to create new attributes if your model does not already have the attribute.
+
+```php
+$user = $provider->search()->whereEquals('cn', 'John Doe')->firstOrFail();
+
+$user->cn = 'New Name';
+
+// Or use a setter:
+
+$user->setCommonName('New Name');
+
+$user->save();
+```
+
+If you'd like to update attributes individually, call the `updateAttribute($attribute, $value)` method:
+
+```php
+if ($user->updateAttribute('cn', 'New Name')) {
+    // Successfully updated attribute.
+}
+```
+
+### Removing Attributes
+
+To remove attributes, set the attribute to `NULL`:
+
+```php
+$user->cn = null;
+
+$user->save();
+```
+
+Or, you can call the `deleteAttribute($attribute)` method:
+
+```php
+if ($user->deleteAttribute('cn')) {
+    // Attribute has been deleted.
+}
+```
+
+### Checking Attributes
+
+#### Checking Existence of Attributes
+
+To see if a model contains an attribute, use the method `hasAttribute()`:
+
+```php
+// Checking if a base attribute exists:
+if ($user->hasAttribute('mail')) {
+    // This user contains an email address.
+}
+
+// Checking if a sub attribute exists, by key:
+if ($user->hasAttribute('mail', 1)) {
+    // This user contains a second email address.
+}
+```
+
+#### Counting the Models Attributes
+
+To retrieve the total number of attributes, use the method `countAttributes()`:
+
+```php
+$count = $user->countAttributes();
+
+var_dump($count); // Returns int
+```
+
+#### Checking if a Model is contained in an OU
+
+To check if a model is located inside an OU, use the `inOu()` method:
+
+```php
+if ($model->inOu('User Accounts')) {
+    // This model is inside the 'User Accounts' OU.
+}
+```
+
+You can also use an OU model instance:
+
+```php
+$serviceAccounts = $provider->search()->ous()->find('Service Accounts');
+
+if ($model->inOu($serviceAccounts)) {
+    // This model is inside the 'Service Accounts' OU.
+}
+```
+
+#### Checking if a Model is Writable
+
+To check if the model can be written to, use the method `isWritable()`:
+
+```php
+if ($model->isWritable()) {
+    // You can modify this model.
+}
+```
+
+### Force Re-Syncing A Models Attributes
+
+If you need to forcefully re-sync a models attributes, use the method `syncRaw()`:
+
+```php
+$user->syncRaw();
+```
+
+> **Note**: This will query your LDAP server for the current model, and re-synchronize
+> it's attributes. This is only recommended if your creating / updating / deleting
+> attributes manually through your LDAP connection.
+
+## Moving / Renaming
+
+To move a user from one DN or OU to another, use the `move()` method:
+
+> **Note**: The `move()` method is actually an alias for the `rename()` method.
+
+```php
+// New parent distiguished name.
+$newParentDn = 'OU=New Ou,DC=corp,DC=local';
+
+if ($user->move($newParentDn)) {
+    // User was successfully moved to the new OU.
+}
+```
+
+You can also provide a model to move the child model into:
+
+```php
+// New parent OU.
+$newParentOu = $provider->search()->ous()->find('Accounting');
+
+if ($user->move($newParentOu)) {
+    // User was successfully moved to the new OU.
+}
+```
+
+If you would like to keep the models old RDN along side their new RDN, pass in false in the second parameter:
+
+```php
+// New parent distiguished name.
+$newParentDn = 'OU=New Ou,DC=corp,DC=local';
+
+if ($user->move($newParentDn, $deleteOldRdn = false)) {
+    // User was successfully moved to the new OU,
+    // and their old RDN has been left in-tact.
+}
+```
+
+To rename a users DN, just pass in their new relative distinguished name in the `rename()` method:
+
+```php
+$newRdn = 'cn=New Name';
+
+if ($user->rename($newRdn)) {
+    // User was successfully renamed.
+}
+```
+
+## Deleting
+
+To delete a model, just call the `delete()` method:
+
+```php
+$user = $provider->search()->whereEquals('cn', 'John Doe')->firstOrFail();
+
+echo $user->exists; // Returns true.
+
+if ($user->delete()) {
+    // Successfully deleted user.
+
+    echo $user->exists; // Returns false.
+}
+```
+
+## Extending
+
+> **Note**: This feature was introduced in `v8.0.0`.
+
+To use your own models, you will need to create a new [Schema](../schema.md).
+
+Once you have created your own schema, you must insert it inside the construct of your provider.
+
+Let's walk through this process.
+
+First we'll create our model we'd like to extend / override:
+
+> **Note**: Your custom model **must** extend from an existing Adldap2 model.
+> This is due to methods and attributes that only exist on these classes.
+
+```php
+namespace App\Ldap\Models;
+
+use Adldap\Models\User as Model;
+
+class User extends Model
+{
+    public function getCommonName()
+    {
+        // Overriding model method.
+    }
+}
+```
+
+Now, we'll create our custom schema and return our models class name:
+
+```php
+namespace App\Ldap\Schemas;
+
+use App\Ldap\Models\User;
+
+class LdapSchema extends ActiveDirectory
+{
+    public function userModel()
+    {
+        return User::class;
+    }
+}
+```
+
+Finally, when we create a provider, we need to insert our Schema into the configuration:
+
+```php
+$config = [
+    'hosts' => ['...'],
+    
+    'username' => 'admin',
+    'password' => 'P@ssword',
+    
+    'schema' => MyApp\LdapSchema::class,
+];
+
+$ad = new Adldap($config);
+
+$provider = $ad->connect();
+
+// If `jdoe` exists, your custom model will be returned.
+$user = $provider->search()->users()->find('jdoe');
+```
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/organization.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/organization.md
new file mode 100644
index 0000000..57c00e3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/organization.md
@@ -0,0 +1,19 @@
+# The Organization Model
+
+The Organization model extends from the base `Adldap\Models\Model` class and contains
+no specific methods / attributes that are limited to it.
+
+## Creation
+
+```php
+// Adldap\Models\Organization
+$org = $provider->make()->organization([
+    'o' => 'Some Company',
+]);
+
+// Set the DN manually:
+
+$org->setDn('o=Some Company,dc=test,dc=local,dc=com');
+
+$org->save();
+```
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/ou.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/ou.md
new file mode 100644
index 0000000..ec473b1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/ou.md
@@ -0,0 +1,27 @@
+# The OrganizationalUnit Model
+
+The OrganizationalUnit model extends from the base `Adldap\Models\Model` class and contains
+no specific methods / attributes that are limited to it.
+
+## Creation
+
+```php
+// Adldap\Models\OrganizationalUnit
+$ou = $provider->make()->ou([
+    'name' => 'Workstation Computers',
+]);
+
+// Generate the OU's DN through the DN Builder:
+
+$dn = $ou->getDnBuilder();
+
+$dn->addOu('Workstation Computers');
+
+$ou->setDn($dn);
+
+// Or set the DN manually:
+
+$ou->setDn('ou=Workstation Computers,dc=test,dc=local,dc=com');
+
+$ou->save();
+```
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/printer.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/printer.md
new file mode 100644
index 0000000..4adc666
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/printer.md
@@ -0,0 +1,49 @@
+# The Printer Model
+
+## Methods
+
+```php
+$printer->getPrinterName();
+
+$printer->getPrinterShareName();
+
+$printer->getMemory();
+
+$printer->getUrl();
+
+$printer->getLocation();
+
+$printer->getServerName();
+
+$printer->getColorSupported();
+
+$printer->getDuplexSupported();
+
+$printer->getMediaSupported();
+
+$printer->getStaplingSupported();
+
+$printer->getPrintBinNames();
+
+$printer->getPrintMaxResolution();
+
+$printer->getPrintOrientations();
+
+$printer->getDriverName();
+
+$printer->getDriverVersion();
+
+$printer->getPriority();
+
+$printer->getPrintStartTime();
+
+$printer->getPrintEndTime();
+
+$printer->getPortName();
+
+$printer->getVersionNumber();
+
+$printer->getPrintRate();
+
+$printer->getPrintRateUnit();
+```
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/root-dse.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/root-dse.md
new file mode 100644
index 0000000..e798c0e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/root-dse.md
@@ -0,0 +1,33 @@
+# The RootDse Model
+
+## Getting the Root DSE
+
+To get the Root DSE of your LDAP server, call the `getRootDse()` method off a new search:
+
+```php
+$rootDse = $provider->search()->getRootDse();
+```
+
+## Getting the schema naming context
+
+To get the Root DSE schema naming context, call the `getSchemaNamingContext()`:
+
+```php
+$rootDse = $provider->search()->getRootDse();
+
+$context = $rootDse->getSchemaNamingContext();
+
+// Returns 'cn=Schema,cn=Configuration,dc=corp,dc=acme,dc=org'
+echo $context;
+```
+
+## Getting the root domain naming context
+
+To get the Root DSE domain naming context, call the `getRootDomainNamingContext()`:
+
+```php
+$context = $rootDse->getRootDomainNamingContext();
+
+// Returns 'dc=corp,dc=acme,dc=org'
+echo $context;
+```
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/traits/has-critical-system-object.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/traits/has-critical-system-object.md
new file mode 100644
index 0000000..095acad
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/traits/has-critical-system-object.md
@@ -0,0 +1,13 @@
+# HasCriticalSystemObject Trait
+
+Models that contain this trait, have the `isCriticalSystemObject` attribute.
+
+There is only one method that accompanies this trait:
+
+```php
+if ($model->isCriticalSystemObject()) {
+
+    //
+
+}
+```
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/traits/has-description.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/traits/has-description.md
new file mode 100644
index 0000000..5c26d02
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/traits/has-description.md
@@ -0,0 +1,11 @@
+# HasDescription Trait
+
+Models that contain this trait, have the `description` attribute.
+
+There are only two methods that accompany this trait:
+
+```php
+$model->getDescription();
+
+$model->setDescription('The models description');
+```
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/traits/has-last-login-last-logoff.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/traits/has-last-login-last-logoff.md
new file mode 100644
index 0000000..76078c5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/traits/has-last-login-last-logoff.md
@@ -0,0 +1,16 @@
+# HasLastLoginAndLastLogoff Trait
+
+Models that contain this trait have the `lastlogoff`, `lastlogon` and `lastlogontimestamp` attributes.
+
+## Methods
+
+```php
+// Returns the models's last log off attribute.
+$computer->getLastLogOff();
+
+//  Returns the models's last log on attribute.
+$computer->getLastLogon();
+
+// Returns the models's last log on timestamp attribute.
+$computer->getLastLogonTimestamp();
+```
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/traits/has-member-of.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/traits/has-member-of.md
new file mode 100644
index 0000000..d3063df
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/traits/has-member-of.md
@@ -0,0 +1,166 @@
+# HasMemberOf Trait
+
+Models that contain this trait, have the ability to be apart of a group.
+
+There's many helpful methods to assist you in all of the operations related to group membership, let's get started!
+
+## Retrieving Groups
+
+To retrieve the groups that a model is apart of, call the `getGroups()` method:
+
+```php
+$user = $provider->search()->users()->find('jdoe');
+
+$groups = $user->getGroups();
+
+foreach ($groups as $group) {
+
+    $group->getCommonName(); // ex. 'Accounting'
+
+}
+```
+
+We can also pass in specific fields we need from the returned groups to speed up our queries.
+
+For example, if we only need the groups common name:
+
+```php
+// Group models will be returned with only their common name.
+$groups = $user->getGroups(['cn']);
+```
+
+However, calling `getGroups()` will only retrieve the models immediate groups (non-recursive).
+
+To retrieve nested groups, pass in `true` into the second parameter:
+
+```php
+$groups = $user->getGroups([], $recursive = true);
+```
+
+## Retrieve Group Names
+
+If you only want the models group names, call the `getGroupNames()` method:
+
+```php
+$names = $user->getGroupNames();
+
+foreach ($names as $name) {
+
+    echo $name; // ex. 'Accounting'
+
+}
+```
+
+However, this method will also retrieve only the immediate groups names
+much like the `getGroups()` method. You'll need to pass in `true` in
+the first parameter to retrieve results recursively.
+
+```php
+$names = $user->getGroupNames($recursive = true);
+```
+
+## Checking if the Model is apart of a Group
+
+To check if a model is apart of a certain group, use the `inGroup()` method:
+
+```php
+$group = $provider->search()->groups()->find('Office');
+
+if ($user->inGroup($group)) {
+
+    //
+
+}
+```
+
+You can also check for multiple memberships by passing in an array of groups:
+
+```php
+$groups = $provider->search()->findManyBy('cn', ['Accounting', 'Office']));
+
+if ($user->inGroup($groups->toArray()) {
+    
+    // This user is apart of the 'Accounting' and 'Office' group!
+
+}
+```
+
+> **Note**: Much like the other methods above, you'll need to provide a `$recursive`
+> flag to the `inGroup()` method if you'd like recursive results included.
+
+We can also provide distinguished names instead of Group model instances:
+
+```php
+$dns = [
+    'cn=Accounting,ou=Groups,dc=acme,dc=org',
+    'cn=Office,ou=Groups,dc=acme,dc=org',
+];
+
+if ($user->inGroup($dns, $recursive = true)) {
+    
+    //
+
+}
+```
+
+Or, we can also just provide the name(s) of the group(s).
+
+```php
+$names = [
+    'Accounting',
+    'Office',
+];
+
+if ($user->inGroup($names, $recursive = true)) {
+    
+    //
+
+}
+```
+
+## Adding a Group
+
+To add the model to a specific group, call the `addGroup()` method:
+
+```php
+$group = $provider->search()->groups()->find('Accounting');
+
+// You can either provide a Group model:
+if ($user->addGroup($group)) {
+
+    //
+
+}
+
+// Or a Groups DN:
+if ($user->addGroup('cn=Accounting,ou=Groups,dc=acme,dc=org')) {
+
+    //
+
+}
+```
+
+> **Note**: You do not need to call the `save()` method for adding / removing groups.
+> This is done automatically so you can perform clean `if` statements on the method.
+
+## Removing a Group
+
+To remove the model from a specific group, call the `removeGroup()` method:
+
+```php
+$group = $user->getGroups()->first();
+
+// You can either provide a Group model:
+if ($user->removeGroup($group)) {
+
+    //
+
+}
+
+// Or the groups DN:
+if ($user->removeGroup('cn=Accounting,ou=Office Groups,dc=acme,dc=org')) {
+
+    //
+
+}
+```
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/user.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/user.md
new file mode 100644
index 0000000..65576e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/models/user.md
@@ -0,0 +1,180 @@
+# The User Model
+
+> **Note**: This model contains the trait `HasMemberOf`. For more information, visit the documentation:
+> [HasMemberOfTrait](/models/traits/has-member-of.md)
+
+## Creating
+
+> **Note**: If you need to create users with passwords, SSL or TLS **must** be enabled on your configured connection.
+> 
+> The password you enter for the user **must** also obey your LDAP servers password requirements,
+> otherwise you will receive a "Server is unwilling to perform" LDAP exception upon saving.
+
+```php
+// Construct a new User model instance.
+$user = $provider->make()->user();
+
+// Create the users distinguished name.
+// We're adding an OU onto the users base DN to have it be saved in the specified OU.
+$dn = $user->getDnBuilder()->addOu('Users'); // Built DN will be: "CN=John Doe,OU=Users,DC=acme,DC=org";
+
+// Set the users DN, account name.
+$user->setDn($dn);
+$user->setAccountName('jdoe');
+$user->setCommonName('John Doe');
+
+// Set the users password.
+// NOTE: This password must obey your AD servers password requirements
+// (including password history, length, special characters etc.)
+// otherwise saving will fail and you will receive an
+// "LDAP Server is unwilling to perform" message.
+$user->setPassword('correct-horse-battery-staple');
+
+// Get a new account control object for the user.
+$ac = $user->getUserAccountControlObject();
+
+// Mark the account as enabled (normal).
+$ac->accountIsNormal();
+
+// Set the account control on the user and save it.
+$user->setUserAccountControl($ac);
+
+// Save the user.
+$user->save();
+
+// All done! An enabled user will be created and is ready for use.
+```
+
+## Methods
+
+There's a ton of available methods for the User model. Below is a list for a quick reference.
+
+> **Note**: Don't see a method for an LDAP attribute? Create an issue and let us know!
+
+```php
+// Get the users display name.
+$user->getDisplayName();
+
+// Get the users first email address.
+$user->getEmail();
+
+// Get the users title.
+$user->getTitle();
+
+// Get the users department.
+$user->getDepartment();
+
+// Get the users first name.
+$user->getFirstName();
+
+// Get the users last name.
+$user->getLastName();
+
+// Get the users info.
+$user->getInfo();
+
+// Get the users initials.
+$user->getInitials();
+
+// Get the users country.
+$user->getCountry();
+
+// Get the users street address.
+$user->getStreetAddress();
+
+// Get the users postal code.
+$user->getPostalCode();
+
+// Get the users physical delivery office name.
+$user->getPhysicalDeliveryOfficeName();
+
+// Get the users phone number.
+$user->getTelephoneNumber();
+
+// Get the users locale.
+$user->getLocale();
+
+// Get the users company.
+$user->getCompany();
+
+// Get the users other email addresses.
+$user->getOtherMailbox();
+
+// Get the users home mailbox database location (stored as a distinguished name). 
+$user->getHomeMdb();
+
+// Get the users email nickname.
+$user->getMailNickname();
+
+// Get the users principal name.
+$user->getUserPrincipalName();
+
+// Get the users proxy email addresses.
+$user->getProxyAddresses();
+
+// Get the users failed login attempts.
+$user->getBadPasswordCount();
+
+// Get the users last failed login attempt timestamp.
+$user->getBadPasswordTime();
+
+// Get the users last password change timestamp.
+$user->getPasswordLastSet();
+
+// Get the users last password change timestamp in unix time.
+$user->getPasswordLastSetTimestamp();
+
+// Get the users last password change timestamp in MySQL date format.
+$user->getPasswordLastSetDate();
+
+// Get the users lockout time.
+$user->getLockoutTime();
+
+// Get the users user account control integer.
+$user->getUserAccountControl();
+
+// Get the users roaming profile path.
+$user->getProfilePath();
+
+// Get the users legacy exchange distinguished name.
+$user->getLegacyExchangeDn();
+
+// Get the users account expiry timestamp.
+$user->getAccountExpiry();
+
+// Get the boolean that determines whether to show this user in the global address book.
+$user->getShowInAddressBook();
+
+// Get the users thumbnail photo.
+$user->getThumbnail();
+
+// Get the users thumbnail photo (base64 encoded for HTML <img src=""> tags).
+$user->getThumbnailEncoded();
+
+// Get the users jpeg photo.
+$user->getJpegPhoto();
+
+// Get the users jpeg photo (base64 encoded for HTML <img src=""> tags).
+$user->getJpegPhotoEncoded();
+
+// Get the users manager.
+$user->getManager();
+
+// Get the users employee ID.
+$user->getEmployeeId();
+
+// Get the users employee number.
+$user->getEmployeeNumber();
+
+// Get the users employee type
+$user->getEmployeeType();
+
+// Get the users room number.
+$user->getRoomNumber();
+
+// Get the users department number.
+$user->getDepartmentNumber();
+
+// Get the users personal title.
+$user->getPersonalTitle();
+```
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/readme.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/readme.md
new file mode 100644
index 0000000..00eaab7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/readme.md
@@ -0,0 +1,115 @@
+# Introduction
+
+## What is Adldap2?
+
+Adldap2 is a PHP LDAP package that allows you to:
+
+1. Easily manage multiple LDAP connections at once
+2. Perform authentication
+3. Search your LDAP directory with a fluent and easy to use query builder
+4. Create / Update / Delete LDAP entities with ease
+5. And more
+
+## History of Adldap2
+
+Adldap2 was originally created as a fork of the original LDAP library [adLDAP](https://github.com/adldap/adLDAP) due to bugs, and it being completely abandoned.
+
+Adldap2 contains absolutely no similarities to the original repository, and was built to be as easily accessible as possible, with great documentation, and easily understandable syntax.
+
+Much of the API was constructed with Ruby's ActiveRecord and Laravel's Eloquent in mind, and to be an answer to the question:
+
+> _Why can't we use LDAP like we use a database?_
+
+## Why should you use Adldap2?
+
+Working with LDAP in PHP can be a messy and confusing endeavor, especially when using multiple connections, creating and managing entities, performing moves, resetting passwords, and performing ACL modifications to user accounts.
+
+Wrapper classes for LDAP are usually always created in PHP applications.
+
+Adldap2 allows you to easily manage the above problems without reinventing the wheel for every project.
+
+## Implementations
+
+- [Laravel](https://github.com/Adldap2/Adldap2-Laravel)
+
+## Quick Start
+
+Install the package via `composer`:
+
+```
+composer require adldap2/adldap2
+```
+
+Use Adldap2:
+
+```php
+// Construct new Adldap instance.
+$ad = new \Adldap\Adldap();
+
+// Create a configuration array.
+$config = [  
+  // An array of your LDAP hosts. You can use either
+  // the host name or the IP address of your host.
+  'hosts'    => ['ACME-DC01.corp.acme.org', '192.168.1.1'],
+
+  // The base distinguished name of your domain to perform searches upon.
+  'base_dn'  => 'dc=corp,dc=acme,dc=org',
+
+  // The account to use for querying / modifying LDAP records. This
+  // does not need to be an admin account. This can also
+  // be a full distinguished name of the user account.
+  'username' => 'admin@corp.acme.org',
+  'password' => 'password',
+];
+
+// Add a connection provider to Adldap.
+$ad->addProvider($config);
+
+try {
+    // If a successful connection is made to your server, the provider will be returned.
+    $provider = $ad->connect();
+
+    // Performing a query.
+    $results = $provider->search()->where('cn', '=', 'John Doe')->get();
+
+    // Finding a record.
+    $user = $provider->search()->find('jdoe');
+
+    // Creating a new LDAP entry. You can pass in attributes into the make methods.
+    $user =  $provider->make()->user([
+        'cn'          => 'John Doe',
+        'title'       => 'Accountant',
+        'description' => 'User Account',
+    ]);
+
+    // Setting a model's attribute.
+    $user->cn = 'John Doe';
+
+    // Saving the changes to your LDAP server.
+    if ($user->save()) {
+        // User was saved!
+    }
+} catch (\Adldap\Auth\BindException $e) {
+
+    // There was an issue binding / connecting to the server.
+
+}
+```
+
+## Versioning
+
+Adldap2 is versioned under the [Semantic Versioning](http://semver.org/) guidelines as much as possible.
+
+Releases will be numbered with the following format:
+
+`<major>.<minor>.<patch>`
+
+And constructed with the following guidelines:
+
+* Breaking backward compatibility bumps the major and resets the minor and patch.
+* New additions without breaking backward compatibility bumps the minor and resets the patch.
+* Bug fixes and misc changes bumps the patch.
+
+Minor versions are not maintained individually, and you're encouraged to upgrade through to the next minor version.
+
+Major versions are maintained individually through separate branches.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/searching.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/searching.md
new file mode 100644
index 0000000..2837767
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/searching.md
@@ -0,0 +1,662 @@
+# Searching
+
+## Introduction
+
+Using the Adldap2 query builder makes building LDAP queries feel effortless.
+
+It allows you to generate LDAP filters using a fluent and
+convenient interface, similar to Eloquent in Laravel.
+
+> **Note:** The Adldap2 query builder escapes all fields & values
+> given to its `where()` methods. There is no need to clean or
+> escape strings before passing them into the query builder.
+
+## Creating a new Query
+
+To create a new search query, call the `search()` method on your connection provider instance:
+
+```php
+$search = $provider->search();
+```
+
+Or you can chain all your methods if you'd prefer:
+
+```php
+$results = $provider->search()->where('cn', '=', 'John Doe')->get();
+```
+
+## Selects
+
+> **Note:** Fields are case in-sensitive. For example, you can
+> insert `CN`, `cn` or `cN`, they will return the same result.
+
+#### Selecting attributes
+
+Selecting only the LDAP attributes you need will increase the speed of your queries.
+
+```php
+// Passing in an array of attributes
+$search->select(['cn', 'samaccountname', 'telephone', 'mail']);
+
+// Passing in each attribute as an argument
+$search->select('cn', 'samaccountname', 'telephone', 'mail');
+```
+
+## Executing Searches
+
+#### Finding a specific record
+
+If you're trying to find a single record, but not sure what the record might be, use the `find()` method:
+
+```php
+$record = $search->find('John Doe');
+
+if ($record) {
+    // Record was found!    
+} else {
+    // Hmm, looks like we couldn't find anything...
+}
+```
+
+> **Note**: Using the `find()` method will search for LDAP records using ANR
+> (ambiguous name resolution) and return the first result.
+>
+> Since ActiveDirectory is the only LDAP distribution that supports ANR,
+> an equivalent query will be created for other LDAP distributions
+> that are not compatible.
+>
+> For a more fine-tuned search, use the `findBy()` method below.
+
+##### Finding a record (or failing)
+
+If you'd like to try and find a single record and throw an exception when it hasn't been
+found, use the `findOrFail()` method:
+
+```php
+try {
+
+    $record = $search->findOrFail('John Doe');
+
+} catch (Adldap\Models\ModelNotFoundException $e) {
+    // Record wasn't found!
+}
+```
+
+#### Finding a record by a specific attribute
+
+If you're looking for a single record with a specific attribute, use the `findBy()` method:
+
+```php
+// We're looking for a record with the 'samaccountname' of 'jdoe'.
+$record = $search->findBy('samaccountname', 'jdoe');
+```
+
+##### Finding a record by a specific attribute (or failing)
+
+If you'd like to try and find a single record by a specific attribute and throw
+an exception when it cannot be found, use the `findByOrFail()` method:
+
+```php
+try {
+
+    $record = $search->findByOrFail('samaccountname', 'jdoe');
+
+} catch (Adldap\Models\ModelNotFoundException $e) {
+    // Record wasn't found!
+}
+```
+
+#### Finding a record by its distinguished name
+
+If you're looking for a single record with a specific DN, use the `findByDn()` method:
+
+```php
+$record = $search->findByDn('cn=John Doe,dc=corp,dc=org');
+```
+
+###### Finding a record by its distinguished name (or failing)
+
+If you'd like to try and find a single record by a specific DN and throw
+an exception when it hasn't been found, use the `findByDnOrFail()` method:
+
+```php
+try {
+
+    $record = $search->findByDnOrFail('cn=John Doe,dc=corp,dc=org');
+
+} catch (Adldap\Models\ModelNotFoundException $e) {
+    // Record wasn't found!
+}
+```
+
+#### Retrieving results
+
+To get the results from a search, simply call the `get()` method:
+
+```php
+$results = $search->select(['cn', 'samaccountname'])->get();
+```
+
+> **Note**: Executed searches via the `get()` method will return them inside an
+> `Illuminate\Support\Collection` instance (a glorified array), with allows
+> you to utilize [some extremely handy methods](https://laravel.com/docs/collections).
+>
+> Executed searches via the `first()` method will return **a model instance only**.
+
+##### Retrieving the first record
+
+To retrieve the first record of a search, call the `first()` method:
+
+```php
+$record = $search->first();
+```
+
+> **Note**: If you are using `sortBy()`, calling `first()` will not take this into account. Sorts
+> are performed **after** retrieving query results. If you would like the first record of
+> a sorted result set, call `first()` on a `Collection` of returned models.
+
+###### Retrieving the first record (or failing)
+
+To retrieve the first record of a search or throw an exception when one isn't found, call the `firstOrFail()` method:
+
+```php
+try {
+
+    $record = $search->firstOrFail();
+
+} catch (Adldap\Models\ModelNotFoundException $e) {
+    // Record wasn't found!
+}
+```
+
+## Limit
+
+To limit the results records returned from your LDAP server and increase the
+speed of your queries, you can use the `limit()` method:
+
+```php
+// This will only return 5 records that contain the name of 'John':
+$records = $search->where('cn', 'contains', 'John')->limit(5)->get();
+```
+
+## Wheres
+
+To perform a where clause on the search object, use the `where()` function:
+
+```php
+$search->where('cn', '=', 'John Doe');
+```
+
+This query would look for a record with the common name of 'John Doe' and return the results.
+
+We can also perform a 'where equals' without including the operator:
+
+```php
+$search->whereEquals('cn', 'John Doe');
+```
+
+We can also supply an array of key - value pairs to quickly add multiple wheres:
+
+```php
+$wheres = [
+    'cn' => 'John Doe',
+    'samaccountname' => 'jdoe',
+];
+
+$search->where($wheres);
+```
+
+Or, if you require conditionals, you can quickly add multiple wheres with nested arrays:
+
+```php
+$search->where([
+   ['cn', '=', 'John Doe'],
+   ['manager', '!', 'Suzy Doe'],
+]);
+```
+
+#### Where Starts With
+
+We could also perform a search for all objects beginning with the common name of 'John' using the `starts_with` operator:
+
+```php
+$results = $provider->search()->where('cn', 'starts_with', 'John')->get();
+
+// Or use the method whereStartsWith($attribute, $value):
+
+$results = $provider->search()->whereStartsWith('cn', 'John')->get();
+```
+
+#### Where Ends With
+
+We can also search for all objects that end with the common name of `Doe` using the `ends_with` operator:
+
+```php
+$results = $provider->search()->where('cn', 'ends_with', 'Doe')->get();
+
+// Or use the method whereEndsWith($attribute, $value):
+
+$results = $provider->search()->whereEndsWith('cn', 'Doe')->get();
+```
+
+#### Where Between
+
+To search for records between two values, use the `whereBetween` method.
+
+For the example below, we'll retrieve all users who were created between two dates:
+
+```php
+$from = (new DateTime('October 1st 2016'))->format('YmdHis.0\Z');
+$to = (new DateTime('January 1st 2017'))->format('YmdHis.0\Z');
+
+$users = $provider->search()
+    ->users()
+    ->whereBetween('whencreated', [$from, $to])
+    ->get();
+```
+
+#### Where Contains
+
+We can also search for all objects with a common name that contains `John Doe` using the `contains` operator:
+
+```php
+$results = $provider->search()->where('cn', 'contains', 'John Doe')->get();
+
+// Or use the method whereContains($attribute, $value):
+
+$results = $provider->search()->whereContains('cn', 'John Doe')->get();
+```
+
+##### Where Not Contains
+
+You can use a 'where not contains' to perform the inverse of a 'where contains':
+
+```php
+$results = $provider->search()->where('cn', 'not_contains', 'John Doe')->get();
+
+// Or use the method whereNotContains($attribute, $value):
+
+$results = $provider->search()->whereNotContains('cn', 'John Doe');
+```
+
+#### Where Has
+
+Or we can retrieve all objects that have a common name attribute using the wildcard operator (`*`):
+
+```php
+$results = $provider->search()->where('cn', '*')->get();
+
+// Or use the method whereHas($field):
+
+$results = $provider->search()->whereHas('cn')->get();
+```
+
+This type of filter syntax allows you to clearly see what your searching for.
+
+##### Where Not Has
+
+You can use a 'where not has' to perform the inverse of a 'where has':
+
+```php
+$results = $provider->search->where('cn', '!*')->get();
+
+// Or use the method whereNotHas($field):
+
+$results = $provider->search()->whereNotHas($field)->get();
+```
+
+## Or Wheres
+
+To perform an `or where` clause on the search object, use the `orWhere()` method. However,
+please be aware this function performs differently than it would on a database.
+
+For example:
+
+```php
+$results = $search
+            ->where('cn', '=', 'John Doe')
+            ->orWhere('cn', '=', 'Suzy Doe')
+            ->get();
+```
+
+This query would return no results. Since we're already defining that the common name (`cn`) must equal `John Doe`, applying
+the `orWhere()` does not amount to 'Look for an object with the common name as "John Doe" OR "Suzy Doe"'. This query would
+actually amount to 'Look for an object with the common name that <b>equals</b> "John Doe" OR "Suzy Doe"
+
+To solve the above problem, we would use `orWhere()` for both fields. For example:
+
+```php
+$results = $search
+        ->orWhere('cn', '=', 'John Doe')
+        ->orWhere('cn', '=', 'Suzy Doe')
+        ->get();
+```
+
+Now, we'll retrieve both John and Suzy's LDAP records, because the common name can equal either.
+
+> **Note**: You can also use all `where` methods as an or where, for example:
+> `orWhereHas()`, `orWhereContains()`, `orWhereStartsWith()`, `orWhereEndsWith()`
+
+## Dynamic Wheres
+
+To perform a dynamic where, simply suffix a `where` with the field you're looking for.
+
+This feature was directly ported from Laravel's Eloquent.
+
+Here's an example:
+
+```php
+// This query:
+$result = $search->where('cn', '=', 'John Doe')->first();
+
+// Can be converted to:
+$result = $search->whereCn('John Doe')->first();
+```
+
+You can perform this on **any** attribute:
+
+```php
+$result = $search->whereTelephonenumber('555-555-5555')->first();
+```
+
+You can also chain them:
+
+```php
+$result = $search
+    ->whereTelephonenumber('555-555-5555')
+    ->whereGivenname('John Doe')
+    ->whereSn('Doe')
+    ->first();
+```
+
+You can even perform multiple dynamic wheres by separating your fields by an `And`:
+
+```php
+// This would perform a search for a user with the
+// first name of 'John' and last name of 'Doe'.
+$result = $search->whereGivennameAndSn('John', 'Doe')->first();
+```
+
+## Nested Filters
+
+By default, the Adldap2 query builder automatically wraps your queries in `and` / `or` filters for you.
+However, if any further complexity is required, nested filters allow you
+to construct any query fluently and easily.
+
+#### andFilter
+
+The `andFilter` method accepts a closure which allows you to construct a query inside of an `and` LDAP filter:
+
+```php
+$query = $provider->search()->newQuery();
+
+// Creates the filter: (&(givenname=John)(sn=Doe))
+$results = $query->andFilter(function (Adldap\Query\Builder $q) {
+
+    $q->where('givenname', '=', 'John')
+      ->where('sn', '=', 'Doe');
+
+})->get();
+```
+
+The above query would return records that contain the first name `John` **and** the last name `Doe`.
+
+#### orFilter
+
+The `orFilter` method accepts a closure which allows you to construct a query inside of an `or` LDAP filter:
+
+```php
+$query = $provider->search()->newQuery();
+
+
+// Creates the filter: (|(givenname=John)(sn=Doe))
+$results = $query->orFilter(function (Adldap\Query\Builder $q) {
+
+    $q->where('givenname', '=', 'John')
+      ->where('sn', '=', 'Doe');
+
+})->get();
+```
+
+The above query would return records that contain the first name `John` **or** the last name `Doe`.
+
+#### notFilter
+
+The `notFilter` method accepts a closure which allows you to construct a query inside a `not` LDAP filter:
+
+```php
+$query = $provider->search()->newQuery();
+
+// Creates the filter: (!(givenname=John)(sn=Doe))
+$results = $query->notFilter(function (Adldap\Query\Builder $q) {
+
+    $q->where('givenname', '=', 'John')
+      ->where('sn', '=', 'Doe');
+
+})->get();
+```
+
+The above query would return records that **do not** contain the first name `John` **or** the last name `Doe`.
+
+#### Complex Nesting
+
+The above methods `andFilter` / `orFilter` can be chained together and nested
+as many times as you'd like for larger complex queries:
+
+```php
+$query = $provider->search()->newQuery();
+
+$query = $query->orFilter(function (Adldap\Query\Builder $q) {
+    $q->where('givenname', '=', 'John')->where('sn', '=', 'Doe');
+})->andFilter(function (Adldap\Query\Builder $q) {
+    $q->where('department', '=', 'Accounting')->where('title', '=', 'Manager');
+})->getUnescapedQuery();
+
+echo $query; // Returns '(&(|(givenname=John)(sn=Doe))(&(department=Accounting)(title=Manager)))'
+```
+
+## Raw Filters
+
+> **Note**: Raw filters are not escaped. **Do not** accept user input into the raw filter method.
+
+Sometimes you might just want to add a raw filter without using the query builder.
+You can do so by using the `rawFilter()` method:
+
+```php
+$filter = '(samaccountname=jdoe)';
+
+$results = $search->rawFilter($filter)->get();
+
+// Or use an array
+$filters = [
+    '(samaccountname=jdoe)',
+    '(surname=Doe)',
+];
+
+$results = $search->rawFilter($filters)->get();
+
+// Or use multiple arguments
+$results = $search->rawFilter($filters[0], $filters[1])->get();
+
+// Multiple raw filters will be automatically wrapped into an `and` filter:
+$query = $search->getUnescapedQuery();
+
+echo $query; // Returns (&(samaccountname=jdoe)(surname=Doe))
+```
+
+## Sorting
+
+Sorting is really useful when your displaying tabular LDAP results. You can
+easily perform sorts on any LDAP attribute by using the `sortBy()` method:
+
+```php
+$results = $search->whereHas('cn')->sortBy('cn', 'asc')->get();
+```
+
+You can also sort paginated results:
+
+```php
+$results = $search->whereHas('cn')->sortBy('cn', 'asc')->paginate(25);
+```
+
+> **Note**: Sorting occurs *after* results are returned. This is due
+> to PHP not having the functionality of sorting records on
+> the server side before they are returned.
+
+## Paginating
+
+Paginating your search results will allow you to return more results than
+your LDAP cap (usually 1000) and display your results in pages.
+
+> **Note**: Calling `paginate()` will retrieve **all** records from your LDAP server for the current query.
+>
+> This **does not** operate the same way pagination occurs in a database. Pagination of
+> an LDAP query simply allows you to return a larger result set than your
+> LDAP servers configured maximum (usually 1000).
+>
+> The pagination object is simply a collection that allows you to iterate
+> through all the resulting records easily and intuitively.
+
+To perform this, call the `paginate()` method instead of the `get()` method:
+
+```php
+$recordsPerPage = 50;
+
+$currentPage = $_GET['page'];
+
+// This would retrieve all records from your LDAP server inside a new Adldap\Objects\Paginator instance.
+$paginator = $search->paginate($recordsPerPage, $currentPage);
+
+// Returns total number of pages, int
+$paginator->getPages();
+
+// Returns current page number, int
+$paginator->getCurrentPage();
+
+// Returns the amount of entries allowed per page, int
+$paginator->getPerPage();
+
+// Returns all of the results in the entire paginated result
+$paginator->getResults();
+
+// Returns the total amount of retrieved entries, int
+$paginator->count();
+
+// Iterate over the results like normal
+foreach($paginator as $result)
+{
+    echo $result->getCommonName();
+}
+```
+
+## Scopes
+
+Search scopes allow you to easily retrieve common models of a particular 'scope'.
+
+Each scope simply applies the required filters to the search object
+that (when executed) will only return the relevant models.
+
+Here is a list of all available scopes:
+
+```php
+// Retrieve all users (Adldap\Models\User).
+$results = $search->users()->get();
+
+// Retrieve all printers (Adldap\Models\Printer).
+$results = $search->printers()->get();
+
+// Retrieve all organizational units (Adldap\Models\OrganizationalUnit).
+$results = $search->ous()->get();
+
+// Retrieve all organizational units (Adldap\Models\OrganizationalUnit).
+$results = $search->organizations()->get();
+
+// Retrieve all groups (Adldap\Models\Group).
+$results = $search->groups()->get();
+
+// Retrieve all containers (Adldap\Models\Container).
+$results = $search->containers()->get();
+
+// Retrieve all contacts (Adldap\Models\Contact).
+$results = $search->contacts()->get();
+
+// Retrieve all computers (Adldap\Models\Computer).
+$results = $search->computers()->get();
+```
+
+## Base DN
+
+To set the base DN of your search you can use one of two methods:
+
+```php
+// Using the `in()` method:
+$results = $provider->search()->in('ou=Accounting,dc=acme,dc=org')->get();
+
+// Using the `setDn()` method:
+$results = $provider->search()->setDn('ou=Accounting,dc=acme,dc=org')->get();
+
+// You can also include `in()` with the scope
+$results = $provider->search()->organizations()->in('ou=Accounting,dc=acme,dc=org')->get()
+
+```
+
+Either option will return the same results. Use which ever method you prefer to be more readable.
+
+## Search Options
+
+#### Recursive
+
+By default, all searches performed are recursive.
+
+If you'd like to disable recursive search and perform a single level search, use the `listing()` method:
+
+```php
+$result = $provider->search()->listing()->get();
+```
+
+This would perform an `ldap_listing()` instead of an `ldap_search()`.
+
+#### Read
+
+If you'd like to perform a read instead of a listing or a recursive search, use the `read()` method:
+
+```php
+$result = $provider->search()->read()->where('objectClass', '*')->get();
+```
+
+This would perform an `ldap_read()` instead of an `ldap_listing()` or an `ldap_search()`.
+
+> **Note**: Performing a `read()` will always return *one* record in your result.
+
+#### Raw
+
+If you'd like to retrieve the raw LDAP results, use the `raw()` method:
+
+```php
+$rawResults = $provider->search()->raw()->where('cn', '=', 'John Doe')->get();
+
+var_dump($rawResults); // Returns an array
+```
+
+## Retrieving the ran query
+
+If you'd like to retrieve the current query to save or run it at another
+time, use the `getQuery()` method on the query builder.
+
+This will return the escaped filter.
+
+```php
+$query = $provider->search()->where('cn', '=', 'John Doe')->getQuery();
+
+echo $query; // Returns '(cn=\4a\6f\68\6e\20\44\6f\65)'
+```
+
+To retrieve the unescaped filter, call the `getUnescapedQuery()` method:
+
+```php
+$query = $provider->search()->where('cn', '=', 'John Doe')->getUnescapedQuery();
+
+echo $query; // Returns '(cn=John Doe)'
+```
+
+Now that you know how to search your directory, lets move onto [creating / modifying LDAP records](models/model.md).
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/setup.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/setup.md
new file mode 100644
index 0000000..312165c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/setup.md
@@ -0,0 +1,552 @@
+# Setup
+
+## Configuration
+
+To configure your LDAP connections, you can use two methods:
+
+1. Using an array
+2. Using a `Adldap\Configuration\DomainConfiguration` object
+
+Either or will produce the same results. Use whichever you feel most comfortable with.
+
+### Using an array
+
+```php
+$config = [
+    'hosts' => [
+        'DC-01.corp.acme.org',
+    ],
+    '...'
+];
+```
+
+### Using a `DomainConfiguration` object
+
+```php
+// Setting options via first argument:
+$config = new Adldap\Configuration\DomainConfiguration([
+    'hosts' => [
+        'DC-01.corp.acme.org',
+    ],
+]);
+
+// Setting via the `set()` method:
+$config->set('hosts', [
+    'DC-01.corp.acme.org',
+]);
+```
+
+### Options
+
+#### Array Example With All Options
+
+```php
+// Create the configuration array.
+$config = [
+    // Mandatory Configuration Options
+    'hosts'            => ['corp-dc1.corp.acme.org', 'corp-dc2.corp.acme.org'],
+    'base_dn'          => 'dc=corp,dc=acme,dc=org',
+    'username'         => 'admin',
+    'password'         => 'password',
+
+    // Optional Configuration Options
+    'schema'           => Adldap\Schemas\ActiveDirectory::class,
+    'account_prefix'   => 'ACME-',
+    'account_suffix'   => '@acme.org',
+    'port'             => 389,
+    'follow_referrals' => false,
+    'use_ssl'          => false,
+    'use_tls'          => false,
+    'version'          => 3,
+    'timeout'          => 5,
+
+    // Custom LDAP Options
+    'custom_options'   => [
+        // See: http://php.net/ldap_set_option
+        LDAP_OPT_X_TLS_REQUIRE_CERT => LDAP_OPT_X_TLS_HARD
+    ]
+];
+```
+
+#### Required Options
+
+##### Hosts
+
+The hosts option is an array of IP addresses or hostnames located
+on your network that serve Active Directory.
+
+You insert as many servers or as little as you'd like depending on your forest (with the minimum of one of course).
+
+> **Note:** Do not append your port to your IP addresses or hostnames. Use the `port` configuration option instead.
+
+##### Base Distinguished Name
+
+The base distinguished name is the base distinguished name you'd like to perform operations on.
+
+An example base DN would be `DC=corp,DC=acme,DC=org`.
+
+If one is not defined, you will not retrieve any search results.
+
+> **Note**: Your base DN is **case insensitive**. You do not need to worry about incorrect casing.
+
+##### Username & Password
+
+To connect to your LDAP server, a username and password is required to be able to query and run operations on your server(s).
+
+You can use any account that has these permissions.
+
+> **Note**: To run administration level operations, such as resetting passwords,
+> this account **must** have permissions to do so on your directory.
+
+#### Optional Options
+
+##### Schema
+
+The schema option allows you to configure which directory you're connecting to.
+
+This is a somewhat optional, however this **must** be changed if you're connecting
+to an alternate LDAP variant such as OpenLDAP or FreeIPA.
+
+Below are available schemas:
+
+- `Adldap\Schemas\ActiveDirectory`
+- `Adldap\Schemas\OpenLDAP`
+- `Adldap\Schemas\FreeIPA`
+
+By default, this option is set to the `Adldap\Schemas\ActiveDirectory` schema.
+
+##### Account Prefix
+
+The account prefix option is a string to *prepend* to all usernames that go through the `Guard::attempt()` method.
+
+This option is just for convenience.
+
+It is usually not needed (if utilizing the account suffix), however the functionality is
+in place if you would like to only allow certain users with the specified prefix
+to login, or add a domain so your users do not have to specify one.
+
+##### Account Suffix
+
+The account suffix option is a string to *append* to all usernames that go
+through the `Adldap\Auth\Guard::attempt()` method.
+
+This option is just for convenience.
+
+An example use case for this would be inserting your LDAP users `userPrincipalName` suffix so you don't need to append it manually.
+
+For example, with a `account_suffix` in your configuration set to `@corp.acme.org`:
+
+```php
+$username = 'jdoe';
+$password = 'password';
+
+// Here, an `ldap_bind()` will be called with a username of 'jdoe@corp.acme.org`
+$provider->auth()->attempt($username, $password);
+```
+
+##### Port
+
+The port option is used for authenticating and binding to your LDAP server.
+
+The default ports are already used for non SSL and SSL connections (389 and 636).
+
+Only insert a port if your LDAP server uses a unique port.
+
+##### Follow Referrals
+
+The follow referrals option is a boolean to tell active directory to follow a referral to another server on your network if the server queried knows the information your asking for exists, but does not yet contain a copy of it locally.
+
+This option is defaulted to false.
+
+Disable this option if you're experiencing search / connectivity issues.
+
+For more information, visit: https://technet.microsoft.com/en-us/library/cc978014.aspx
+
+##### SSL & TLS
+
+These Boolean options enable an SSL or TLS connection to your LDAP server.
+
+Only **one** can be set to `true`. You must chose either or.
+
+> **Note**: You **must** enable SSL or TLS to reset passwords in ActiveDirectory.
+
+These options are definitely recommended if you have the ability to connect to your server securely.
+
+> **Note**: TLS is recommended over SSL, as SSL is now labelled as a depreciated mechanism for securely running LDAP operations.
+
+##### Version
+
+The LDAP version to use for your connection.
+
+Must be an integer and can either be `2` or `3`.
+
+##### Timeout
+
+The timeout option allows you to configure the amount of seconds to wait until
+your application receives a response from your LDAP server.
+
+The default is 5 seconds.
+
+##### Custom Options
+
+Arbitrary options can be set for the connection to fine-tune TLS and connection behavior.
+
+Please note that `LDAP_OPT_PROTOCOL_VERSION`, `LDAP_OPT_NETWORK_TIMEOUT` and `LDAP_OPT_REFERRALS` will be ignored if set.
+
+These are set above with the `version`, `timeout` and `follow_referrals` keys respectively.
+
+Valid options are listed in the [PHP documentation for ldap_set_option](http://php.net/ldap_set_option).
+
+## Getting Started
+
+Each LDAP connection you have will be contained inside the `Adldap` instance as its own **connection provider**.
+
+There are a couple of ways you can easily add each of your LDAP connections. Let's walk through them:
+
+**Using a configuration array:**
+```php
+$config = ['...'];
+
+$ad = new Adldap\Adldap();
+
+$ad->addProvider($config);
+
+// You can also specify the name of the
+// connection as the second argument:
+$ad->addProvider($config, 'connection-one');
+```
+
+**Using a DomainConfiguration object:**
+```php
+$ad = new Adldap\Adldap();
+
+$config = new Adldap\Configuration\DomainConfiguration(['...']);
+
+$ad->addProvider($config, 'connection-one');
+```
+
+**Using the constructor:**
+
+> **Note**: When inserting your configuration into a new `Adldap` instance, you
+> need to set a key for each connection. **This will be its connection name**.
+
+```php
+$connections = [
+    'connection1' => [
+        'hosts' => ['...'],
+    ],
+    'connection2' => [
+        'hosts' => ['...'],
+    ],
+];
+
+$ad = new Adldap\Adldap($connections);
+```
+
+## Connecting
+
+The easiest way to get connected is to call the `connect($name)` method on your `Adldap` instance.
+
+Its first argument accepts the name of your configured connection.
+
+This method will return you a connected **connection provider** when
+successful, and throw an exception when unsuccessful:
+
+```php
+$ad = new Adldap\Adldap();
+
+$config = ['...'];
+
+$connectionName = 'my-connection';
+
+$ad->addProvider($config, $connectionName);
+
+try {
+    $provider = $ad->connect($connectionName);
+
+    // Great, we're connected!
+} catch (Adldap\Auth\BindException $e) {
+    // Failed to connect.
+}
+```
+
+### Using an alternate username / password
+
+If you'd like to connect to your configured connection using a different username and password than your configuration, then simply provide them in the second and third arguments:
+
+```php
+$username = 'server-admin';
+$password = 'my-super-secret-password';
+
+$provider = $ad->connect($connectionName, $username, $password);
+```
+
+### Dynamically Connecting
+
+If you're like me and like chainable (fluent) API's in PHP, then dynamically connecting is a nice option to have.
+
+To dynamically connect, simply call any connection provider method on your `Adldap` instance.
+
+> **Note**: Your default connection will be used when dynamically connecting.
+> More on this below.
+
+Here's an example:
+
+```php
+$ad = new Adldap\Adldap();
+
+$ad->addProvider($config = ['...']);
+
+try {
+    $users = $ad->search()->users()->get();
+} catch (Adldap\Auth\BindException $e) {
+    // Failed to connect.
+}
+```
+
+### Anonymously Binding
+
+If you'd like to anonymously bind, set your `username` and `password` configuration to `null`:
+
+```php
+$ad = new Adldap\Adldap();
+
+$config = [
+    'username' => null,
+    'password' => null,
+];
+
+$ad->addProvider($config);
+
+try {
+    $provider = $ad->connect();
+
+    // ...
+} catch (BindException $e) {
+    // Failed.
+}
+```
+
+Or, manually bind your provider and don't pass in a `username` or `password` parameter:
+
+```php
+$config = [
+    'hosts' => ['...'],
+];
+
+$ad->addProvider($config);
+
+$provider = $ad->getDefaultProvider();
+
+try {
+    $provider->auth()->bind();
+
+    // Successfully bound.
+} catch (BindException $e) {
+    // Failed.
+}
+```
+
+### Setting a Default Connection
+
+Setting a default LDAP connection is used for dynamically connecting.
+
+To set your default connection, call the `setDefaultProvider($name)` method:
+
+```php
+$ad->setDefaultProvider('my-connection');
+
+$computers = $ad->search()->computers()->get();
+```
+
+## Authenticating
+
+If you're looking to authenticate (bind) users using your LDAP connection, call
+the `auth()->attempt()` method on your provider instance:
+
+```php
+$username = 'jdoe';
+$password = 'Password@1';
+
+try {
+    if ($provider->auth()->attempt($username, $password)) {
+        // Passed.
+    } else {
+        // Failed.
+    }
+} catch (Adldap\Auth\UsernameRequiredException $e) {
+    // The user didn't supply a username.
+} catch (Adldap\Auth\PasswordRequiredException $e) {
+    // The user didn't supply a password.
+}
+```
+
+If you'd like all LDAP operations during the same request to be ran under the
+authenticated user, pass in `true` into the last paramter:
+
+```php
+if ($provider->auth()->attempt($username, $password, $bindAsUser = true)) {
+    // Passed.
+} else {
+    // Failed.
+}
+```
+
+---
+
+Now that you've learned the basics of configuration and
+getting yourself connected, continue on to learn
+[how to search your LDAP directory](searching.md).
+
+## Using Other LDAP Servers (OpenLDAP / FreeIPA / etc.)
+
+Alternate LDAP server variants such as OpenLDAP or FreeIPA contain
+some different attribute names than ActiveDirectory.
+
+The Adldap2 schema offers an attribute map for each available LDAP attribute, and
+is completely configurable and customizable.
+
+If you're using an alternate LDAP server variant such as OpenLDAP or FreeIPA, you **must** change the default schema inside your configuration array. If you do not, you won't receive the correct model instances for results, and you won't be
+able to utilize some standard methods available on these models.
+
+By default, Adldap2 is configured to be used with **Microsoft ActiveDirectory**.
+
+When creating your configuration array, set your schema using the `schema` key:
+
+
+**Using configuration array:**
+```php
+$ad = new Adldap\Adldap();
+
+$config = [
+    '...',
+    'schema' => Adldap\Schemas\OpenLDAP::class
+];
+
+$ad->addProvider($config);
+```
+
+**Using configuration object:**
+```php
+$ad = new Adldap\Adldap();
+
+$config = new Adldap\Configuration\DomainConfiguration();
+
+$config->set('schema', Adldap\Schemas\OpenLDAP::class);
+
+$ad->addProvider($config);
+```
+
+Once you've set the schema of your connection provider, you can use the same API interacting with different LDAP servers.
+
+Continue onto the [searching](searching.md) documentation to learn how to begin querying your LDAP server(s).
+
+## Using G-Suite Secure LDAP Service
+
+G-Suite LDAP service only uses client certificates and no username + password, make sure yo match base_dn with your domian.
+
+```php
+$ad = new \Adldap\Adldap();
+
+// Create a configuration array.
+$config = [  
+    'hosts'    => ['ldap.google.com'],
+    'base_dn'  => 'dc=your-domain,dc=com',
+    'use_tls' => true,
+    'version' => 3,
+    'schema' => Adldap\Schemas\GSuite::class,
+    'custom_options' => [
+        LDAP_OPT_X_TLS_CERTFILE => 'Google_2023_02_05_35779.crt',
+        LDAP_OPT_X_TLS_KEYFILE => 'Google_2023_02_05_35779.key', 
+    ]
+];
+
+$ad->addProvider($config);
+
+try {
+    $provider = $ad->connect();
+    
+    $results = $provider->search()->ous()->get();
+    
+    echo 'OUs:'."\r\n";
+    echo '==============='."\r\n";
+    foreach($results as $ou) {
+        echo $ou->getDn()."\r\n";
+    }
+    
+    echo "\r\n";
+    
+    $results = $provider->search()->users()->get();
+    
+    echo 'Users:'."\r\n";
+    echo '==============='."\r\n";
+    foreach($results as $user) {
+        
+        echo $user->getAccountName()."\r\n";
+    }
+    
+    echo "\r\n";
+    
+    $results = $provider->search()->groups()->get();
+    
+    echo 'Groups:'."\r\n";
+    echo '==============='."\r\n";
+    foreach($results as $group) {
+        echo $group->getCommonName().' | '.$group->getDisplayName()."\r\n";
+    }
+
+} catch (\Adldap\Auth\BindException $e) {
+
+    echo 'Error: '.$e->getMessage()."\r\n";
+}
+```
+
+## Raw Operations
+
+### Introduction
+
+If you want to connect to your LDAP server without utilizing Adldap's models (old fashion way), and want to get back the data in a raw format you can easily do so.
+
+If you call `getConnection()` on your connected provider instance, you can perform all LDAP functions on a container class that encapsulates all of PHP's LDAP methods.
+
+You can view all methods avaialble by browsing the LDAP class [here](https://github.com/Adldap2/Adldap2/blob/master/src/Connections/Ldap.php).
+
+Now for some examples:
+
+### Examples
+
+```php
+$ad = new Adldap\Adldap();
+
+$config = ['...'];
+
+$ad->addProvider($config);
+
+$provider = $ad->connect();
+
+$rawConnection = $provider->getConnection();
+
+// Performing a raw search.
+$result = $rawConnection->search($basedn = 'dc=corp,dc=acme,dc=org', $filter = "cn=johndoe", $selectedAttributes = ['cn', 'department']);
+
+$dn = "cn=John Smith,ou=Wizards,dc=example,dc=com";
+
+// Adding a new LDAP record.
+$result = $rawConnection->add($dn, $entry);
+
+// Batch modifying an LDAP record.
+$modifs = [
+    [
+        "attrib"  => "telephoneNumber",
+        "modtype" => LDAP_MODIFY_BATCH_ADD,
+        "values"  => ["+1 555 555 1717"],
+    ],
+];
+
+$result = $rawConnection->modifyBatch($dn, $modifs);
+
+// Deleting an LDAP record.
+$result = $rawConnection->delete($dn);
+
+// .. etc
+```
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/troubleshooting.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/troubleshooting.md
new file mode 100644
index 0000000..c1e9f2a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/docs/troubleshooting.md
@@ -0,0 +1,122 @@
+# Troubleshooting
+
+#### Creating and Setting a Users Password
+
+To set a users password when you've created a new one, you need to enable their account, **then** set their password.
+
+For example:
+
+```php
+// Construct a new user instance.
+$user = $provider->make()->user();
+
+// Set the user profile details.
+$user->setAccountName('jdoe');
+$user->setFirstName('John');
+$user->setLastName('Doe');
+$user->setCompany('ACME');
+$user->setEmail('jdoe@acme.com');
+
+// Save the new user.
+if ($user->save()) {
+    // Enable the new user (using user account control).
+    $user->setUserAccountControl(512);
+
+    // Set new user password
+    $user->setPassword('Password123');
+
+    // Save the user.
+    if($user->save()) {
+        // The password was saved successfully.
+    }
+}
+```
+
+#### Determining and Troubleshooting a Binding Failure
+
+> **Note**: The below guide is using ActiveDirectory. Your mileage will vary using other LDAP distributions.
+
+To determine the reason why a bind attempt failed, you can use the event dispatcher to listen for
+the `Failed` event, and retrieve the errors that were returned from your LDAP server:
+
+```php
+use Adldap\Adldap;
+use Adldap\Auth\Events\Failed;
+
+$d = Adldap::getEventDispatcher();
+
+$d->listen(Failed::class, function (Failed $event) {
+    $conn = $event->connection;
+    
+    echo $conn->getLastError(); // 'Invalid credentials'
+    echo $conn->getDiagnosticMessage(); // '80090308: LdapErr: DSID-0C09042A, comment: AcceptSecurityContext error, data 532, v3839'
+    
+    if ($error = $conn->getDetailedError()) {
+        $error->getErrorCode(); // 49
+        $error->getErrorMessage(); // 'Invalid credentials'
+        $error->getDiagnosticMessage(); // '80090308: LdapErr: DSID-0C09042A, comment: AcceptSecurityContext error, data 532, v3839'
+    }
+});
+```
+
+The above diagnostic message can be parsed down further if needed. The error code after the 'data' string
+in the above message indicates several things about the bind failure. Here is a list:
+
+- 525 - user not found
+- 52e - invalid credentials
+- 530 - not permitted to logon at this time
+- 531 - not permitted to logon at this workstation
+- 532 - password expired
+- 533 - account disabled
+- 701 - account expired
+- 773 - user must reset password
+- 775 - user account locked
+
+From the example above, you can see that the authenticating account has their password expired, due to "532" error code.
+
+#### Retrieving All Records Inside a Group
+
+To retrieve all records inside a particular group (including nested groups), use the `rawFilter()` method:
+
+```php
+// The `memberof:1.2.840.113556.1.4.1941:` string indicates
+// that we want all nested group records as well.
+$filter = '(memberof:1.2.840.113556.1.4.1941:=CN=MyGroup,DC=example,DC=com)';
+
+$users = $provider->search()->rawFilter($filter)->get();
+```
+
+#### I'm connected but not getting any search results!
+
+The first thing you need to ensure is your `base_dn` in your configuration.
+
+Your `base_dn` needs to identical to the base DN on your domain. Even one mistyped character will result in no search results.
+
+If you also include an `ou` in your base DN (ex. `ou=Accounting,dc=corp,dc=acme,dc=org`), you will only receive results inside the `Accounting` OU.
+
+Once you're connected to your LDAP server, retrieve the Root DSE record.
+
+Here's a full example:
+
+```php
+$providers = [
+    'default' => [
+        'base_dn' => '',
+        '...',
+    ]
+];
+
+$ad = new Adldap\Adldap($providers);
+
+try {
+    $provider = $ad->connect();
+    
+    $root = $provider->search()->getRootDse();
+    
+    // ex. Returns 'dc=corp,dc=acme,dc=org'
+    die($root->getRootDomainNamingContext());
+
+} catch (Adldap\Auth\BindException $e) {
+    //
+}
+```
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/license.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/license.md
new file mode 100644
index 0000000..c25dc60
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/license.md
@@ -0,0 +1,8 @@
+The MIT License (MIT)
+Copyright © Steve Bauman
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/phpunit.xml b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/phpunit.xml
new file mode 100644
index 0000000..4f327fa
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/phpunit.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phpunit backupGlobals="false"
+         backupStaticAttributes="false"
+         bootstrap="vendor/autoload.php"
+         colors="true"
+         convertErrorsToExceptions="true"
+         convertNoticesToExceptions="true"
+         convertWarningsToExceptions="true"
+         processIsolation="false"
+         stopOnFailure="false"
+        >
+    <testsuites>
+        <testsuite name="Adldap2 Test Suite">
+            <directory suffix="Test.php">./tests/</directory>
+        </testsuite>
+    </testsuites>
+    <filter>
+        <whitelist processUncoveredFilesFromWhitelist="true">
+            <directory suffix=".php">./src</directory>
+        </whitelist>
+    </filter>
+</phpunit>
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/readme.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/readme.md
new file mode 100644
index 0000000..1311332
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/readme.md
@@ -0,0 +1,47 @@
+<p align="center">
+<strong>:wave: Hey there! Looking for something even easier to use for LDAP integration in your PHP applications?</strong>
+</br>
+<h3 align="center">
+ 🎉 Introducing <a href="https://github.com/DirectoryTree/LdapRecord" target="_blank" title="LdapRecord GitHub Repository">LdapRecord</a> 🎉
+</h3>
+</p>
+
+<p align="center">
+    <strong>
+        <a href="https://ldaprecord.com">LdapRecord</a> is the successor to Adldap2 - and comes with a ton of new features.
+    </strong> </br> Adldap2 will continue to be supported with bug fixes, <i>but will not receive new features.</i>
+</p>
+
+<p align="center">
+ <strong>
+ <a href="https://stevebauman.ca/why-ldap-record/">Read Why</a>
+ </strong>
+</p>
+
+<hr/>
+
+<h1 align="center">Adldap2</h1>
+
+<p align="center">
+    <a href="https://travis-ci.org/Adldap2/Adldap2"><img src="https://img.shields.io/travis/Adldap2/Adldap2.svg?style=flat-square"/></a>
+    <a href="https://scrutinizer-ci.com/g/Adldap2/Adldap2/?branch=master"><img src="https://img.shields.io/scrutinizer/g/adLDAP2/adLDAP2/master.svg?style=flat-square"/></a>
+    <a href="https://packagist.org/packages/adldap2/adldap2"><img src="https://img.shields.io/packagist/dt/adldap2/adldap2.svg?style=flat-square"/></a>
+    <a href="https://packagist.org/packages/adldap2/adldap2"><img src="https://img.shields.io/packagist/v/adldap2/adldap2.svg?style=flat-square"/></a>
+    <a href="https://packagist.org/packages/adldap2/adldap2"><img src="https://img.shields.io/packagist/l/adldap2/adldap2.svg?style=flat-square"/></a>
+</p>
+
+<p align="center">
+    Adldap2 is a PHP package that provides LDAP authentication and directory management tools using the <a href="https://en.wikipedia.org/wiki/Active_record_pattern">Active Record pattern</a>.
+</p>
+
+<h4 align="center">
+    <a href="http://adldap2.github.io/Adldap2/#/?id=quick-start">Quickstart</a>
+    <span> · </span>
+    <a href="http://adldap2.github.io/Adldap2/">Documentation</a>
+</h4>
+
+- **Up and running in minutes.** Effortlessly connect to your LDAP servers and start running queries & operations in a matter of minutes.
+
+- **Fluent query builder.** Building LDAP queries has never been so easy. Find the records you're looking for in a couple lines or less with a fluent interface.
+
+- **Supercharged Active Record.** Create and modify LDAP records with ease. All LDAP records are individual models. Simply modify the attributes on the model and save it to persist the changes to your LDAP server.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Adldap.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Adldap.php
new file mode 100644
index 0000000..5e60697
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Adldap.php
@@ -0,0 +1,194 @@
+<?php
+
+namespace Adldap;
+
+use Adldap\Log\EventLogger;
+use Adldap\Connections\Ldap;
+use InvalidArgumentException;
+use Adldap\Log\LogsInformation;
+use Adldap\Connections\Provider;
+use Adldap\Events\DispatchesEvents;
+use Adldap\Connections\ProviderInterface;
+use Adldap\Connections\ConnectionInterface;
+use Adldap\Configuration\DomainConfiguration;
+
+class Adldap implements AdldapInterface
+{
+    use DispatchesEvents;
+    use LogsInformation;
+    /**
+     * The default provider name.
+     *
+     * @var string
+     */
+    protected $default = 'default';
+
+    /**
+     * The connection providers.
+     *
+     * @var array
+     */
+    protected $providers = [];
+
+    /**
+     * The events to register listeners for during initialization.
+     *
+     * @var array
+     */
+    protected $listen = [
+        'Adldap\Auth\Events\*',
+        'Adldap\Query\Events\*',
+        'Adldap\Models\Events\*',
+    ];
+
+    /**
+     * {@inheritdoc}
+     */
+    public function __construct(array $providers = [])
+    {
+        foreach ($providers as $name => $config) {
+            $this->addProvider($config, $name);
+        }
+
+        if ($default = key($providers)) {
+            $this->setDefaultProvider($default);
+        }
+
+        $this->initEventLogger();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function addProvider($config, $name = 'default', ConnectionInterface $connection = null)
+    {
+        if ($this->isValidConfig($config)) {
+            $config = new Provider($config, $connection ?? new Ldap($name));
+        }
+
+        if ($config instanceof ProviderInterface) {
+            $this->providers[$name] = $config;
+
+            return $this;
+        }
+
+        throw new InvalidArgumentException(
+            "You must provide a configuration array or an instance of Adldap\Connections\ProviderInterface."
+        );
+    }
+
+    /**
+     * Determines if the given config is valid.
+     *
+     * @param mixed $config
+     *
+     * @return bool
+     */
+    protected function isValidConfig($config)
+    {
+        return is_array($config) || $config instanceof DomainConfiguration;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getProviders()
+    {
+        return $this->providers;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getProvider($name)
+    {
+        if (array_key_exists($name, $this->providers)) {
+            return $this->providers[$name];
+        }
+
+        throw new AdldapException("The connection provider '$name' does not exist.");
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setDefaultProvider($name = 'default')
+    {
+        if ($this->getProvider($name) instanceof ProviderInterface) {
+            $this->default = $name;
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getDefaultProvider()
+    {
+        return $this->getProvider($this->default);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function removeProvider($name)
+    {
+        unset($this->providers[$name]);
+
+        return $this;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function connect($name = null, $username = null, $password = null)
+    {
+        $provider = $name ? $this->getProvider($name) : $this->getDefaultProvider();
+
+        return $provider->connect($username, $password);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function __call($method, $parameters)
+    {
+        $provider = $this->getDefaultProvider();
+        
+        if (! $provider->getConnection()->isBound()) {
+            $provider->connect();
+        }
+
+        return call_user_func_array([$provider, $method], $parameters);
+    }
+
+    /**
+     * Initializes the event logger.
+     *
+     * @return void
+     */
+    public function initEventLogger()
+    {
+        $dispatcher = static::getEventDispatcher();
+
+        $logger = $this->newEventLogger();
+
+        // We will go through each of our event wildcards and register their listener.
+        foreach ($this->listen as $event) {
+            $dispatcher->listen($event, function ($eventName, $events) use ($logger) {
+                foreach ($events as $event) {
+                    $logger->log($event);
+                }
+            });
+        }
+    }
+
+    /**
+     * Returns a new event logger instance.
+     *
+     * @return EventLogger
+     */
+    protected function newEventLogger()
+    {
+        return new EventLogger(static::getLogger());
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/AdldapException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/AdldapException.php
new file mode 100644
index 0000000..0939cac
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/AdldapException.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Adldap;
+
+class AdldapException extends \Exception
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/AdldapInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/AdldapInterface.php
new file mode 100644
index 0000000..9e1818f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/AdldapInterface.php
@@ -0,0 +1,91 @@
+<?php
+
+namespace Adldap;
+
+use Adldap\Connections\ProviderInterface;
+use Adldap\Connections\ConnectionInterface;
+
+interface AdldapInterface
+{
+    /**
+     * Add a provider by the specified name.
+     *
+     * @param mixed               $configuration
+     * @param string              $name
+     * @param ConnectionInterface $connection
+     *
+     * @throws \InvalidArgumentException When an invalid type is given as the configuration argument.
+     *
+     * @return $this
+     */
+    public function addProvider($configuration, $name, ConnectionInterface $connection = null);
+
+    /**
+     * Returns all of the connection providers.
+     *
+     * @return array
+     */
+    public function getProviders();
+
+    /**
+     * Retrieves a Provider using its specified name.
+     *
+     * @param string $name
+     *
+     * @throws AdldapException When the specified provider does not exist.
+     *
+     * @return ProviderInterface
+     */
+    public function getProvider($name);
+
+    /**
+     * Sets the default provider.
+     *
+     * @param string $name
+     *
+     * @throws AdldapException When the specified provider does not exist.
+     */
+    public function setDefaultProvider($name);
+
+    /**
+     * Retrieves the first default provider.
+     *
+     * @throws AdldapException When no default provider exists.
+     *
+     * @return ProviderInterface
+     */
+    public function getDefaultProvider();
+
+    /**
+     * Removes a provider by the specified name.
+     *
+     * @param string $name
+     *
+     * @return $this
+     */
+    public function removeProvider($name);
+
+    /**
+     * Connects to the specified provider.
+     *
+     * If no username and password is given, then the providers
+     * configured admin credentials are used.
+     *
+     * @param string|null $name
+     * @param string|null $username
+     * @param string|null $password
+     *
+     * @return ProviderInterface
+     */
+    public function connect($name = null, $username = null, $password = null);
+
+    /**
+     * Call methods upon the default provider dynamically.
+     *
+     * @param string $method
+     * @param array  $parameters
+     *
+     * @return mixed
+     */
+    public function __call($method, $parameters);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/BindException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/BindException.php
new file mode 100644
index 0000000..aeef08b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/BindException.php
@@ -0,0 +1,45 @@
+<?php
+
+namespace Adldap\Auth;
+
+use Adldap\AdldapException;
+use Adldap\Connections\DetailedError;
+
+/**
+ * Class BindException.
+ *
+ * Thrown when binding to an LDAP connection fails.
+ */
+class BindException extends AdldapException
+{
+    /**
+     * The detailed LDAP error.
+     *
+     * @var DetailedError
+     */
+    protected $detailedError;
+
+    /**
+     * Sets the detailed error.
+     *
+     * @param DetailedError|null $error
+     *
+     * @return $this
+     */
+    public function setDetailedError(DetailedError $error = null)
+    {
+        $this->detailedError = $error;
+
+        return $this;
+    }
+
+    /**
+     * Returns the detailed error.
+     *
+     * @return DetailedError|null
+     */
+    public function getDetailedError()
+    {
+        return $this->detailedError;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/Events/Attempting.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/Events/Attempting.php
new file mode 100644
index 0000000..06eb839
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/Events/Attempting.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Adldap\Auth\Events;
+
+class Attempting extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/Events/Binding.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/Events/Binding.php
new file mode 100644
index 0000000..aa52b4b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/Events/Binding.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Adldap\Auth\Events;
+
+class Binding extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/Events/Bound.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/Events/Bound.php
new file mode 100644
index 0000000..5fc835d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/Events/Bound.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Adldap\Auth\Events;
+
+class Bound extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/Events/Event.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/Events/Event.php
new file mode 100644
index 0000000..1dca6c7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/Events/Event.php
@@ -0,0 +1,73 @@
+<?php
+
+namespace Adldap\Auth\Events;
+
+use Adldap\Connections\ConnectionInterface;
+
+abstract class Event
+{
+    /**
+     * The connection that the username and password is being bound on.
+     *
+     * @var ConnectionInterface
+     */
+    protected $connection;
+
+    /**
+     * The username that is being used for binding.
+     *
+     * @var string
+     */
+    protected $username;
+
+    /**
+     * The password that is being used for binding.
+     *
+     * @var string
+     */
+    protected $password;
+
+    /**
+     * Constructor.
+     *
+     * @param ConnectionInterface $connection
+     * @param string              $username
+     * @param string              $password
+     */
+    public function __construct(ConnectionInterface $connection, $username, $password)
+    {
+        $this->connection = $connection;
+        $this->username = $username;
+        $this->password = $password;
+    }
+
+    /**
+     * Returns the events connection.
+     *
+     * @return ConnectionInterface
+     */
+    public function getConnection()
+    {
+        return $this->connection;
+    }
+
+    /**
+     * Returns the authentication events username.
+     *
+     * @return string
+     */
+    public function getUsername()
+    {
+        return $this->username;
+    }
+
+    /**
+     * Returns the authentication events password.
+     *
+     * @return string
+     */
+    public function getPassword()
+    {
+        return $this->password;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/Events/Failed.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/Events/Failed.php
new file mode 100644
index 0000000..e96746e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/Events/Failed.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Adldap\Auth\Events;
+
+class Failed extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/Events/Passed.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/Events/Passed.php
new file mode 100644
index 0000000..56ece18
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/Events/Passed.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Adldap\Auth\Events;
+
+class Passed extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/Guard.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/Guard.php
new file mode 100644
index 0000000..5a0ab4b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/Guard.php
@@ -0,0 +1,259 @@
+<?php
+
+namespace Adldap\Auth;
+
+use Exception;
+use Throwable;
+use Adldap\Auth\Events\Bound;
+use Adldap\Auth\Events\Failed;
+use Adldap\Auth\Events\Passed;
+use Adldap\Auth\Events\Binding;
+use Adldap\Auth\Events\Attempting;
+use Adldap\Events\DispatcherInterface;
+use Adldap\Connections\ConnectionInterface;
+use Adldap\Configuration\DomainConfiguration;
+
+/**
+ * Class Guard.
+ *
+ * Binds users to the current connection.
+ */
+class Guard implements GuardInterface
+{
+    /**
+     * The connection to bind to.
+     *
+     * @var ConnectionInterface
+     */
+    protected $connection;
+
+    /**
+     * The domain configuration to utilize.
+     *
+     * @var DomainConfiguration
+     */
+    protected $configuration;
+
+    /**
+     * The event dispatcher.
+     *
+     * @var DispatcherInterface
+     */
+    protected $events;
+
+    /**
+     * {@inheritdoc}
+     */
+    public function __construct(ConnectionInterface $connection, DomainConfiguration $configuration)
+    {
+        $this->connection = $connection;
+        $this->configuration = $configuration;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function attempt($username, $password, $bindAsUser = false)
+    {
+        $this->validateCredentials($username, $password);
+
+        $this->fireAttemptingEvent($username, $password);
+
+        try {
+            $this->bind(
+                $this->applyPrefixAndSuffix($username),
+                $password
+            );
+
+            $result = true;
+
+            $this->firePassedEvent($username, $password);
+        } catch (BindException $e) {
+            // We'll catch the BindException here to allow
+            // developers to use a simple if / else
+            // using the attempt method.
+            $result = false;
+        }
+
+        // If we're not allowed to bind as the user,
+        // we'll rebind as administrator.
+        if ($bindAsUser === false) {
+            // We won't catch any BindException here so we can
+            // catch rebind failures. However this shouldn't
+            // occur if our credentials are correct
+            // in the first place.
+            $this->bindAsAdministrator();
+        }
+
+        return $result;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function bind($username = null, $password = null)
+    {
+        $this->fireBindingEvent($username, $password);
+
+        try {
+            if (@$this->connection->bind($username, $password) === true) {
+                $this->fireBoundEvent($username, $password);
+            } else {
+                throw new Exception($this->connection->getLastError(), $this->connection->errNo());
+            }
+        } catch (Throwable $e) {
+            $this->fireFailedEvent($username, $password);
+
+            throw (new BindException($e->getMessage(), $e->getCode(), $e))
+                ->setDetailedError($this->connection->getDetailedError());
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function bindAsAdministrator()
+    {
+        $this->bind(
+            $this->configuration->get('username'),
+            $this->configuration->get('password')
+        );
+    }
+
+    /**
+     * Get the event dispatcher instance.
+     *
+     * @return DispatcherInterface
+     */
+    public function getDispatcher()
+    {
+        return $this->events;
+    }
+
+    /**
+     * Sets the event dispatcher instance.
+     *
+     * @param DispatcherInterface $dispatcher
+     *
+     * @return void
+     */
+    public function setDispatcher(DispatcherInterface $dispatcher)
+    {
+        $this->events = $dispatcher;
+    }
+
+    /**
+     * Applies the prefix and suffix to the given username.
+     *
+     * @param string $username
+     *
+     * @throws \Adldap\Configuration\ConfigurationException If account_suffix or account_prefix do not
+     *                                                      exist in the providers domain configuration
+     *
+     * @return string
+     */
+    protected function applyPrefixAndSuffix($username)
+    {
+        $prefix = $this->configuration->get('account_prefix');
+        $suffix = $this->configuration->get('account_suffix');
+
+        return $prefix.$username.$suffix;
+    }
+
+    /**
+     * Validates the specified username and password from being empty.
+     *
+     * @param string $username
+     * @param string $password
+     *
+     * @throws PasswordRequiredException When the given password is empty.
+     * @throws UsernameRequiredException When the given username is empty.
+     */
+    protected function validateCredentials($username, $password)
+    {
+        if (empty($username)) {
+            // Check for an empty username.
+            throw new UsernameRequiredException('A username must be specified.');
+        }
+
+        if (empty($password)) {
+            // Check for an empty password.
+            throw new PasswordRequiredException('A password must be specified.');
+        }
+    }
+
+    /**
+     * Fire the attempting event.
+     *
+     * @param string $username
+     * @param string $password
+     *
+     * @return void
+     */
+    protected function fireAttemptingEvent($username, $password)
+    {
+        if (isset($this->events)) {
+            $this->events->fire(new Attempting($this->connection, $username, $password));
+        }
+    }
+
+    /**
+     * Fire the passed event.
+     *
+     * @param string $username
+     * @param string $password
+     *
+     * @return void
+     */
+    protected function firePassedEvent($username, $password)
+    {
+        if (isset($this->events)) {
+            $this->events->fire(new Passed($this->connection, $username, $password));
+        }
+    }
+
+    /**
+     * Fire the failed event.
+     *
+     * @param string $username
+     * @param string $password
+     *
+     * @return void
+     */
+    protected function fireFailedEvent($username, $password)
+    {
+        if (isset($this->events)) {
+            $this->events->fire(new Failed($this->connection, $username, $password));
+        }
+    }
+
+    /**
+     * Fire the binding event.
+     *
+     * @param string $username
+     * @param string $password
+     *
+     * @return void
+     */
+    protected function fireBindingEvent($username, $password)
+    {
+        if (isset($this->events)) {
+            $this->events->fire(new Binding($this->connection, $username, $password));
+        }
+    }
+
+    /**
+     * Fire the bound event.
+     *
+     * @param string $username
+     * @param string $password
+     *
+     * @return void
+     */
+    protected function fireBoundEvent($username, $password)
+    {
+        if (isset($this->events)) {
+            $this->events->fire(new Bound($this->connection, $username, $password));
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/GuardInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/GuardInterface.php
new file mode 100644
index 0000000..e10da37
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/GuardInterface.php
@@ -0,0 +1,55 @@
+<?php
+
+namespace Adldap\Auth;
+
+use Adldap\Connections\ConnectionInterface;
+use Adldap\Configuration\DomainConfiguration;
+
+interface GuardInterface
+{
+    /**
+     * Constructor.
+     *
+     * @param ConnectionInterface $connection
+     * @param DomainConfiguration $configuration
+     */
+    public function __construct(ConnectionInterface $connection, DomainConfiguration $configuration);
+
+    /**
+     * Authenticates a user using the specified credentials.
+     *
+     * @param string $username   The users LDAP username.
+     * @param string $password   The users LDAP password.
+     * @param bool   $bindAsUser Whether or not to bind as the user.
+     *
+     * @throws \Adldap\Auth\BindException             When re-binding to your LDAP server fails.
+     * @throws \Adldap\Auth\UsernameRequiredException When username is empty.
+     * @throws \Adldap\Auth\PasswordRequiredException When password is empty.
+     *
+     * @return bool
+     */
+    public function attempt($username, $password, $bindAsUser = false);
+
+    /**
+     * Binds to the current connection using the inserted credentials.
+     *
+     * @param string|null $username
+     * @param string|null $password
+     *
+     * @throws \Adldap\Auth\BindException              If binding to the LDAP server fails.
+     * @throws \Adldap\Connections\ConnectionException If upgrading the connection to TLS fails
+     *
+     * @return void
+     */
+    public function bind($username = null, $password = null);
+
+    /**
+     * Binds to the current LDAP server using the
+     * configuration administrator credentials.
+     *
+     * @throws \Adldap\Auth\BindException When binding as your administrator account fails.
+     *
+     * @return void
+     */
+    public function bindAsAdministrator();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/PasswordRequiredException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/PasswordRequiredException.php
new file mode 100644
index 0000000..70a76b9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/PasswordRequiredException.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace Adldap\Auth;
+
+use Adldap\AdldapException;
+
+class PasswordRequiredException extends AdldapException
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/UsernameRequiredException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/UsernameRequiredException.php
new file mode 100644
index 0000000..4b48724
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Auth/UsernameRequiredException.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace Adldap\Auth;
+
+use Adldap\AdldapException;
+
+class UsernameRequiredException extends AdldapException
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/ConfigurationException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/ConfigurationException.php
new file mode 100644
index 0000000..af62ce4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/ConfigurationException.php
@@ -0,0 +1,16 @@
+<?php
+
+namespace Adldap\Configuration;
+
+use Adldap\AdldapException;
+
+/**
+ * Class ConfigurationException.
+ *
+ * Thrown when a configuration value does not exist, or a
+ * configuration value being set is not valid.
+ */
+class ConfigurationException extends AdldapException
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/DomainConfiguration.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/DomainConfiguration.php
new file mode 100644
index 0000000..f1e4fb6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/DomainConfiguration.php
@@ -0,0 +1,161 @@
+<?php
+
+namespace Adldap\Configuration;
+
+use Adldap\Schemas\ActiveDirectory;
+use Adldap\Connections\ConnectionInterface;
+
+/**
+ * Class DomainConfiguration.
+ *
+ * Contains an array of configuration options for a single LDAP connection.
+ */
+class DomainConfiguration
+{
+    /**
+     * The configuration options array.
+     *
+     * The default values for each key indicate the type of value it requires.
+     *
+     * @var array
+     */
+    protected $options = [
+        // An array of LDAP hosts.
+        'hosts' => [],
+
+        // The global LDAP operation timeout limit in seconds.
+        'timeout' => 5,
+
+        // The LDAP version to utilize.
+        'version' => 3,
+
+        // The port to use for connecting to your hosts.
+        'port' => ConnectionInterface::PORT,
+
+        // The schema to use for your LDAP connection.
+        'schema' => ActiveDirectory::class,
+
+        // The base distinguished name of your domain.
+        'base_dn' => '',
+
+        // The username to connect to your hosts with.
+        'username' => '',
+
+        // The password that is utilized with the above user.
+        'password' => '',
+
+        // The account prefix to use when authenticating users.
+        'account_prefix' => null,
+
+        // The account suffix to use when authenticating users.
+        'account_suffix' => null,
+
+        // Whether or not to use SSL when connecting to your hosts.
+        'use_ssl' => false,
+
+        // Whether or not to use TLS when connecting to your hosts.
+        'use_tls' => false,
+
+        // Whether or not follow referrals is enabled when performing LDAP operations.
+        'follow_referrals' => false,
+
+        // Custom LDAP options that you'd like to utilize.
+        'custom_options' => [],
+    ];
+
+    /**
+     * Constructor.
+     *
+     * @param array $options
+     *
+     * @throws ConfigurationException When an option value given is an invalid type.
+     */
+    public function __construct(array $options = [])
+    {
+        foreach ($options as $key => $value) {
+            $this->set($key, $value);
+        }
+    }
+
+    /**
+     * Sets a configuration option.
+     *
+     * Throws an exception if the specified option does
+     * not exist, or if it's an invalid type.
+     *
+     * @param string $key
+     * @param mixed  $value
+     *
+     * @throws ConfigurationException When an option value given is an invalid type.
+     */
+    public function set($key, $value)
+    {
+        if ($this->validate($key, $value)) {
+            $this->options[$key] = $value;
+        }
+    }
+
+    /**
+     * Returns the value for the specified configuration options.
+     *
+     * Throws an exception if the specified option does not exist.
+     *
+     * @param string $key
+     *
+     * @throws ConfigurationException When the option specified does not exist.
+     *
+     * @return mixed
+     */
+    public function get($key)
+    {
+        if ($this->has($key)) {
+            return $this->options[$key];
+        }
+
+        throw new ConfigurationException("Option {$key} does not exist.");
+    }
+
+    /**
+     * Checks if a configuration option exists.
+     *
+     * @param string $key
+     *
+     * @return bool
+     */
+    public function has($key)
+    {
+        return array_key_exists($key, $this->options);
+    }
+
+    /**
+     * Validates the new configuration option against its
+     * default value to ensure it's the correct type.
+     *
+     * If an invalid type is given, an exception is thrown.
+     *
+     * @param string $key
+     * @param mixed  $value
+     *
+     * @throws ConfigurationException When an option value given is an invalid type.
+     *
+     * @return bool
+     */
+    protected function validate($key, $value)
+    {
+        $default = $this->get($key);
+
+        if (is_array($default)) {
+            $validator = new Validators\ArrayValidator($key, $value);
+        } elseif (is_int($default)) {
+            $validator = new Validators\IntegerValidator($key, $value);
+        } elseif (is_bool($default)) {
+            $validator = new Validators\BooleanValidator($key, $value);
+        } elseif (class_exists($default)) {
+            $validator = new Validators\ClassValidator($key, $value);
+        } else {
+            $validator = new Validators\StringOrNullValidator($key, $value);
+        }
+
+        return $validator->validate();
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/Validators/ArrayValidator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/Validators/ArrayValidator.php
new file mode 100644
index 0000000..ec5bdb0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/Validators/ArrayValidator.php
@@ -0,0 +1,25 @@
+<?php
+
+namespace Adldap\Configuration\Validators;
+
+use Adldap\Configuration\ConfigurationException;
+
+/**
+ * Class ArrayValidator.
+ *
+ * Validates that the configuration value is an array.
+ */
+class ArrayValidator extends Validator
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function validate()
+    {
+        if (!is_array($this->value)) {
+            throw new ConfigurationException("Option {$this->key} must be an array.");
+        }
+
+        return true;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/Validators/BooleanValidator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/Validators/BooleanValidator.php
new file mode 100644
index 0000000..23b4846
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/Validators/BooleanValidator.php
@@ -0,0 +1,25 @@
+<?php
+
+namespace Adldap\Configuration\Validators;
+
+use Adldap\Configuration\ConfigurationException;
+
+/**
+ * Class BooleanValidator.
+ *
+ * Validates that the configuration value is a boolean.
+ */
+class BooleanValidator extends Validator
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function validate()
+    {
+        if (!is_bool($this->value)) {
+            throw new ConfigurationException("Option {$this->key} must be a boolean.");
+        }
+
+        return true;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/Validators/ClassValidator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/Validators/ClassValidator.php
new file mode 100644
index 0000000..924c35f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/Validators/ClassValidator.php
@@ -0,0 +1,24 @@
+<?php
+
+namespace Adldap\Configuration\Validators;
+
+use Adldap\Configuration\ConfigurationException;
+
+class ClassValidator extends Validator
+{
+    /**
+     * Validates the configuration value.
+     *
+     * @throws ConfigurationException When the value given fails validation.
+     *
+     * @return bool
+     */
+    public function validate()
+    {
+        if (!class_exists($this->value)) {
+            throw new ConfigurationException("Option {$this->key} must be a valid class.");
+        }
+
+        return true;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/Validators/IntegerValidator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/Validators/IntegerValidator.php
new file mode 100644
index 0000000..cd783c4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/Validators/IntegerValidator.php
@@ -0,0 +1,25 @@
+<?php
+
+namespace Adldap\Configuration\Validators;
+
+use Adldap\Configuration\ConfigurationException;
+
+/**
+ * Class IntegerValidator.
+ *
+ * Validates that the configuration value is an integer / number.
+ */
+class IntegerValidator extends Validator
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function validate()
+    {
+        if (!is_numeric($this->value)) {
+            throw new ConfigurationException("Option {$this->key} must be an integer.");
+        }
+
+        return true;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/Validators/StringOrNullValidator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/Validators/StringOrNullValidator.php
new file mode 100644
index 0000000..717c952
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/Validators/StringOrNullValidator.php
@@ -0,0 +1,25 @@
+<?php
+
+namespace Adldap\Configuration\Validators;
+
+use Adldap\Configuration\ConfigurationException;
+
+/**
+ * Class StringOrNullValidator.
+ *
+ * Validates that the configuration value is a string or null.
+ */
+class StringOrNullValidator extends Validator
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function validate()
+    {
+        if (is_string($this->value) || is_null($this->value)) {
+            return true;
+        }
+
+        throw new ConfigurationException("Option {$this->key} must be a string or null.");
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/Validators/Validator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/Validators/Validator.php
new file mode 100644
index 0000000..983c98c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Configuration/Validators/Validator.php
@@ -0,0 +1,46 @@
+<?php
+
+namespace Adldap\Configuration\Validators;
+
+/**
+ * Class Validator.
+ *
+ * Validates configuration values.
+ */
+abstract class Validator
+{
+    /**
+     * The configuration key under validation.
+     *
+     * @var string
+     */
+    protected $key;
+
+    /**
+     * The configuration value under validation.
+     *
+     * @var mixed
+     */
+    protected $value;
+
+    /**
+     * Constructor.
+     *
+     * @param string $key
+     * @param mixed  $value
+     */
+    public function __construct($key, $value)
+    {
+        $this->key = $key;
+        $this->value = $value;
+    }
+
+    /**
+     * Validates the configuration value.
+     *
+     * @throws \Adldap\Configuration\ConfigurationException When the value given fails validation.
+     *
+     * @return bool
+     */
+    abstract public function validate();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Connections/ConnectionException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Connections/ConnectionException.php
new file mode 100644
index 0000000..d8004e6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Connections/ConnectionException.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace Adldap\Connections;
+
+use Adldap\AdldapException;
+
+class ConnectionException extends AdldapException
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Connections/ConnectionInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Connections/ConnectionInterface.php
new file mode 100644
index 0000000..39ddc0e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Connections/ConnectionInterface.php
@@ -0,0 +1,539 @@
+<?php
+
+namespace Adldap\Connections;
+
+/**
+ * The Connection interface used for making connections. Implementing
+ * this interface on connection classes helps unit and functional
+ * test classes that require a connection.
+ *
+ * Interface ConnectionInterface
+ */
+interface ConnectionInterface
+{
+    /**
+     * The SSL LDAP protocol string.
+     *
+     * @var string
+     */
+    const PROTOCOL_SSL = 'ldaps://';
+
+    /**
+     * The standard LDAP protocol string.
+     *
+     * @var string
+     */
+    const PROTOCOL = 'ldap://';
+
+    /**
+     * The LDAP SSL port number.
+     *
+     * @var string
+     */
+    const PORT_SSL = 636;
+
+    /**
+     * The standard LDAP port number.
+     *
+     * @var string
+     */
+    const PORT = 389;
+
+    /**
+     * Constructor.
+     *
+     * @param string|null $name The connection name.
+     */
+    public function __construct($name = null);
+
+    /**
+     * Returns true / false if the current connection instance is using SSL.
+     *
+     * @return bool
+     */
+    public function isUsingSSL();
+
+    /**
+     * Returns true / false if the current connection instance is using TLS.
+     *
+     * @return bool
+     */
+    public function isUsingTLS();
+
+    /**
+     * Returns true / false if the current connection is able to modify passwords.
+     *
+     * @return bool
+     */
+    public function canChangePasswords();
+
+    /**
+     * Returns true / false if the current connection is bound.
+     *
+     * @return bool
+     */
+    public function isBound();
+
+    /**
+     * Sets the current connection to use SSL.
+     *
+     * @param bool $enabled
+     *
+     * @return ConnectionInterface
+     */
+    public function ssl($enabled = true);
+
+    /**
+     * Sets the current connection to use TLS.
+     *
+     * @param bool $enabled
+     *
+     * @return ConnectionInterface
+     */
+    public function tls($enabled = true);
+
+    /**
+     * Returns the full LDAP host URL.
+     *
+     * Ex: ldap://192.168.1.1:386
+     *
+     * @return string|null
+     */
+    public function getHost();
+
+    /**
+     * Returns the connections name.
+     *
+     * @return string|null
+     */
+    public function getName();
+
+    /**
+     * Get the current connection.
+     *
+     * @return mixed
+     */
+    public function getConnection();
+
+    /**
+     * Retrieve the entries from a search result.
+     *
+     * @link http://php.net/manual/en/function.ldap-get-entries.php
+     *
+     * @param $searchResult
+     *
+     * @return mixed
+     */
+    public function getEntries($searchResult);
+
+    /**
+     * Returns the number of entries from a search result.
+     *
+     * @link http://php.net/manual/en/function.ldap-count-entries.php
+     *
+     * @param $searchResult
+     *
+     * @return int
+     */
+    public function countEntries($searchResult);
+
+    /**
+     * Compare value of attribute found in entry specified with DN.
+     *
+     * @link http://php.net/manual/en/function.ldap-compare.php
+     *
+     * @param string $dn
+     * @param string $attribute
+     * @param string $value
+     *
+     * @return mixed
+     */
+    public function compare($dn, $attribute, $value);
+
+    /**
+     * Retrieves the first entry from a search result.
+     *
+     * @link http://php.net/manual/en/function.ldap-first-entry.php
+     *
+     * @param $searchResult
+     *
+     * @return mixed
+     */
+    public function getFirstEntry($searchResult);
+
+    /**
+     * Retrieves the next entry from a search result.
+     *
+     * @link http://php.net/manual/en/function.ldap-next-entry.php
+     *
+     * @param $entry
+     *
+     * @return mixed
+     */
+    public function getNextEntry($entry);
+
+    /**
+     * Retrieves the ldap entry's attributes.
+     *
+     * @link http://php.net/manual/en/function.ldap-get-attributes.php
+     *
+     * @param $entry
+     *
+     * @return mixed
+     */
+    public function getAttributes($entry);
+
+    /**
+     * Retrieve the last error on the current connection.
+     *
+     * @link http://php.net/manual/en/function.ldap-error.php
+     *
+     * @return string
+     */
+    public function getLastError();
+
+    /**
+     * Return detailed information about an error.
+     *
+     * Returns false when there was a successful last request.
+     *
+     * Returns DetailedError when there was an error.
+     *
+     * @return DetailedError|null
+     */
+    public function getDetailedError();
+
+    /**
+     * Get all binary values from the specified result entry.
+     *
+     * @link http://php.net/manual/en/function.ldap-get-values-len.php
+     *
+     * @param $entry
+     * @param $attribute
+     *
+     * @return array
+     */
+    public function getValuesLen($entry, $attribute);
+
+    /**
+     * Sets an option on the current connection.
+     *
+     * @link http://php.net/manual/en/function.ldap-set-option.php
+     *
+     * @param int   $option
+     * @param mixed $value
+     *
+     * @return mixed
+     */
+    public function setOption($option, $value);
+
+    /**
+     * Sets options on the current connection.
+     *
+     * @param array $options
+     *
+     * @return mixed
+     */
+    public function setOptions(array $options = []);
+
+    /**
+     * Set a callback function to do re-binds on referral chasing.
+     *
+     * @link http://php.net/manual/en/function.ldap-set-rebind-proc.php
+     *
+     * @param callable $callback
+     *
+     * @return bool
+     */
+    public function setRebindCallback(callable $callback);
+
+    /**
+     * Connects to the specified hostname using the specified port.
+     *
+     * @link http://php.net/manual/en/function.ldap-start-tls.php
+     *
+     * @param string|array $hostname
+     * @param int          $port
+     *
+     * @return mixed
+     */
+    public function connect($hostname = [], $port = 389);
+
+    /**
+     * Starts a connection using TLS.
+     *
+     * @link http://php.net/manual/en/function.ldap-start-tls.php
+     *
+     * @throws ConnectionException If starting TLS fails.
+     *
+     * @return mixed
+     */
+    public function startTLS();
+
+    /**
+     * Binds to the current connection using the specified username and password.
+     * If sasl is true, the current connection is bound using SASL.
+     *
+     * @link http://php.net/manual/en/function.ldap-bind.php
+     *
+     * @param string $username
+     * @param string $password
+     * @param bool   $sasl
+     *
+     * @throws ConnectionException If starting TLS fails.
+     *
+     * @return bool
+     */
+    public function bind($username, $password, $sasl = false);
+
+    /**
+     * Closes the current connection.
+     *
+     * Returns false if no connection is present.
+     *
+     * @link http://php.net/manual/en/function.ldap-close.php
+     *
+     * @return bool
+     */
+    public function close();
+
+    /**
+     * Performs a search on the current connection.
+     *
+     * @link http://php.net/manual/en/function.ldap-search.php
+     *
+     * @param string $dn
+     * @param string $filter
+     * @param array  $fields
+     * @param bool   $onlyAttributes
+     * @param int    $size
+     * @param int    $time
+     *
+     * @return mixed
+     */
+    public function search($dn, $filter, array $fields, $onlyAttributes = false, $size = 0, $time = 0);
+
+    /**
+     * Reads an entry on the current connection.
+     *
+     * @link http://php.net/manual/en/function.ldap-read.php
+     *
+     * @param string $dn
+     * @param $filter
+     * @param array $fields
+     * @param bool  $onlyAttributes
+     * @param int   $size
+     * @param int   $time
+     *
+     * @return mixed
+     */
+    public function read($dn, $filter, array $fields, $onlyAttributes = false, $size = 0, $time = 0);
+
+    /**
+     * Performs a single level search on the current connection.
+     *
+     * @link http://php.net/manual/en/function.ldap-list.php
+     *
+     * @param string $dn
+     * @param string $filter
+     * @param array  $attributes
+     * @param bool   $onlyAttributes
+     * @param int    $size
+     * @param int    $time
+     *
+     * @return mixed
+     */
+    public function listing($dn, $filter, array $attributes, $onlyAttributes = false, $size = 0, $time = 0);
+
+    /**
+     * Adds an entry to the current connection.
+     *
+     * @link http://php.net/manual/en/function.ldap-add.php
+     *
+     * @param string $dn
+     * @param array  $entry
+     *
+     * @return bool
+     */
+    public function add($dn, array $entry);
+
+    /**
+     * Deletes an entry on the current connection.
+     *
+     * @link http://php.net/manual/en/function.ldap-delete.php
+     *
+     * @param string $dn
+     *
+     * @return bool
+     */
+    public function delete($dn);
+
+    /**
+     * Modify the name of an entry on the current connection.
+     *
+     * @link http://php.net/manual/en/function.ldap-rename.php
+     *
+     * @param string $dn
+     * @param string $newRdn
+     * @param string $newParent
+     * @param bool   $deleteOldRdn
+     *
+     * @return bool
+     */
+    public function rename($dn, $newRdn, $newParent, $deleteOldRdn = false);
+
+    /**
+     * Modifies an existing entry on the current connection.
+     *
+     * @link http://php.net/manual/en/function.ldap-modify.php
+     *
+     * @param string $dn
+     * @param array  $entry
+     *
+     * @return bool
+     */
+    public function modify($dn, array $entry);
+
+    /**
+     * Batch modifies an existing entry on the current connection.
+     *
+     * @link http://php.net/manual/en/function.ldap-modify-batch.php
+     *
+     * @param string $dn
+     * @param array  $values
+     *
+     * @return mixed
+     */
+    public function modifyBatch($dn, array $values);
+
+    /**
+     * Add attribute values to current attributes.
+     *
+     * @link http://php.net/manual/en/function.ldap-mod-add.php
+     *
+     * @param string $dn
+     * @param array  $entry
+     *
+     * @return mixed
+     */
+    public function modAdd($dn, array $entry);
+
+    /**
+     * Replaces attribute values with new ones.
+     *
+     * @link http://php.net/manual/en/function.ldap-mod-replace.php
+     *
+     * @param string $dn
+     * @param array  $entry
+     *
+     * @return mixed
+     */
+    public function modReplace($dn, array $entry);
+
+    /**
+     * Delete attribute values from current attributes.
+     *
+     * @link http://php.net/manual/en/function.ldap-mod-del.php
+     *
+     * @param string $dn
+     * @param array  $entry
+     *
+     * @return mixed
+     */
+    public function modDelete($dn, array $entry);
+
+    /**
+     * Send LDAP pagination control.
+     *
+     * @link http://php.net/manual/en/function.ldap-control-paged-result.php
+     *
+     * @param int    $pageSize
+     * @param bool   $isCritical
+     * @param string $cookie
+     *
+     * @return mixed
+     */
+    public function controlPagedResult($pageSize = 1000, $isCritical = false, $cookie = '');
+
+    /**
+     * Retrieve the LDAP pagination cookie.
+     *
+     * @link http://php.net/manual/en/function.ldap-control-paged-result-response.php
+     *
+     * @param $result
+     * @param string $cookie
+     *
+     * @return mixed
+     */
+    public function controlPagedResultResponse($result, &$cookie);
+
+    /**
+     * Frees up the memory allocated internally to store the result.
+     *
+     * @link https://www.php.net/manual/en/function.ldap-free-result.php
+     *
+     * @param resource $result
+     *
+     * @return bool
+     */
+    public function freeResult($result);
+
+    /**
+     * Returns the error number of the last command
+     * executed on the current connection.
+     *
+     * @link http://php.net/manual/en/function.ldap-errno.php
+     *
+     * @return int
+     */
+    public function errNo();
+
+    /**
+     * Returns the extended error string of the last command.
+     *
+     * @return string
+     */
+    public function getExtendedError();
+
+    /**
+     * Returns the extended error hex code of the last command.
+     *
+     * @return string|null
+     */
+    public function getExtendedErrorHex();
+
+    /**
+     * Returns the extended error code of the last command.
+     *
+     * @return string
+     */
+    public function getExtendedErrorCode();
+
+    /**
+     * Returns the error string of the specified
+     * error number.
+     *
+     * @link http://php.net/manual/en/function.ldap-err2str.php
+     *
+     * @param int $number
+     *
+     * @return string
+     */
+    public function err2Str($number);
+
+    /**
+     * Return the diagnostic Message.
+     *
+     * @return string
+     */
+    public function getDiagnosticMessage();
+
+    /**
+     * Extract the diagnostic code from the message.
+     *
+     * @param string $message
+     *
+     * @return string|bool
+     */
+    public function extractDiagnosticCode($message);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Connections/DetailedError.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Connections/DetailedError.php
new file mode 100644
index 0000000..d7554c6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Connections/DetailedError.php
@@ -0,0 +1,71 @@
+<?php
+
+namespace Adldap\Connections;
+
+class DetailedError
+{
+    /**
+     * The error code from ldap_errno.
+     *
+     * @var int|null
+     */
+    protected $errorCode;
+
+    /**
+     * The error message from ldap_error.
+     *
+     * @var string|null
+     */
+    protected $errorMessage;
+
+    /**
+     * The diagnostic message when retrieved after an ldap_error.
+     *
+     * @var string|null
+     */
+    protected $diagnosticMessage;
+
+    /**
+     * Constructor.
+     *
+     * @param int    $errorCode
+     * @param string $errorMessage
+     * @param string $diagnosticMessage
+     */
+    public function __construct($errorCode, $errorMessage, $diagnosticMessage)
+    {
+        $this->errorCode = $errorCode;
+        $this->errorMessage = $errorMessage;
+        $this->diagnosticMessage = $diagnosticMessage;
+    }
+
+    /**
+     * Returns the LDAP error code.
+     *
+     * @return int
+     */
+    public function getErrorCode()
+    {
+        return $this->errorCode;
+    }
+
+    /**
+     * Returns the LDAP error message.
+     *
+     * @return string
+     */
+    public function getErrorMessage()
+    {
+        return $this->errorMessage;
+    }
+
+    /**
+     * Returns the LDAP diagnostic message.
+     *
+     * @return string
+     */
+    public function getDiagnosticMessage()
+    {
+        return $this->diagnosticMessage;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Connections/Ldap.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Connections/Ldap.php
new file mode 100644
index 0000000..2ce83fd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Connections/Ldap.php
@@ -0,0 +1,545 @@
+<?php
+
+namespace Adldap\Connections;
+
+/**
+ * Class Ldap.
+ *
+ * A class that abstracts PHP's LDAP functions and stores the bound connection.
+ */
+class Ldap implements ConnectionInterface
+{
+    /**
+     * The connection name.
+     *
+     * @var string|null
+     */
+    protected $name;
+
+    /**
+     * The LDAP host that is currently connected.
+     *
+     * @var string|null
+     */
+    protected $host;
+
+    /**
+     * The active LDAP connection.
+     *
+     * @var resource
+     */
+    protected $connection;
+
+    /**
+     * The bound status of the connection.
+     *
+     * @var bool
+     */
+    protected $bound = false;
+
+    /**
+     * Whether the connection must be bound over SSL.
+     *
+     * @var bool
+     */
+    protected $useSSL = false;
+
+    /**
+     * Whether the connection must be bound over TLS.
+     *
+     * @var bool
+     */
+    protected $useTLS = false;
+
+    /**
+     * {@inheritdoc}
+     */
+    public function __construct($name = null)
+    {
+        $this->name = $name;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isUsingSSL()
+    {
+        return $this->useSSL;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isUsingTLS()
+    {
+        return $this->useTLS;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isBound()
+    {
+        return $this->bound;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function canChangePasswords()
+    {
+        return $this->isUsingSSL() || $this->isUsingTLS();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function ssl($enabled = true)
+    {
+        $this->useSSL = $enabled;
+
+        return $this;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function tls($enabled = true)
+    {
+        $this->useTLS = $enabled;
+
+        return $this;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getHost()
+    {
+        return $this->host;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getName()
+    {
+        return $this->name;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getConnection()
+    {
+        return $this->connection;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getEntries($searchResults)
+    {
+        return ldap_get_entries($this->connection, $searchResults);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getFirstEntry($searchResults)
+    {
+        return ldap_first_entry($this->connection, $searchResults);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getNextEntry($entry)
+    {
+        return ldap_next_entry($this->connection, $entry);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getAttributes($entry)
+    {
+        return ldap_get_attributes($this->connection, $entry);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function countEntries($searchResults)
+    {
+        return ldap_count_entries($this->connection, $searchResults);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function compare($dn, $attribute, $value)
+    {
+        return ldap_compare($this->connection, $dn, $attribute, $value);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getLastError()
+    {
+        return ldap_error($this->connection);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getDetailedError()
+    {
+        // If the returned error number is zero, the last LDAP operation
+        // succeeded. We won't return a detailed error.
+        if ($number = $this->errNo()) {
+            ldap_get_option($this->connection, LDAP_OPT_DIAGNOSTIC_MESSAGE, $message);
+
+            return new DetailedError($number, $this->err2Str($number), $message);
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getValuesLen($entry, $attribute)
+    {
+        return ldap_get_values_len($this->connection, $entry, $attribute);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setOption($option, $value)
+    {
+        return ldap_set_option($this->connection, $option, $value);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setOptions(array $options = [])
+    {
+        foreach ($options as $option => $value) {
+            $this->setOption($option, $value);
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setRebindCallback(callable $callback)
+    {
+        return ldap_set_rebind_proc($this->connection, $callback);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function startTLS()
+    {
+        try {
+            return ldap_start_tls($this->connection);
+        } catch (\ErrorException $e) {
+            throw new ConnectionException($e->getMessage(), $e->getCode(), $e);
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function connect($hosts = [], $port = 389)
+    {
+        $this->host = $this->getConnectionString($hosts, $this->getProtocol(), $port);
+
+        // Reset the bound status if reinitializing the connection.
+        $this->bound = false;
+
+        return $this->connection = ldap_connect($this->host);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function close()
+    {
+        $connection = $this->connection;
+
+        $result = is_resource($connection) ? ldap_close($connection) : false;
+
+        $this->bound = false;
+
+        return $result;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function search($dn, $filter, array $fields, $onlyAttributes = false, $size = 0, $time = 0)
+    {
+        return ldap_search($this->connection, $dn, $filter, $fields, $onlyAttributes, $size, $time);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function listing($dn, $filter, array $fields, $onlyAttributes = false, $size = 0, $time = 0)
+    {
+        return ldap_list($this->connection, $dn, $filter, $fields, $onlyAttributes, $size, $time);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function read($dn, $filter, array $fields, $onlyAttributes = false, $size = 0, $time = 0)
+    {
+        return ldap_read($this->connection, $dn, $filter, $fields, $onlyAttributes, $size, $time);
+    }
+
+    /**
+     * Extract information from an LDAP result.
+     *
+     * @link https://www.php.net/manual/en/function.ldap-parse-result.php
+     *
+     * @param resource $result
+     * @param int      $errorCode
+     * @param string   $dn
+     * @param string   $errorMessage
+     * @param array    $referrals
+     * @param array    $serverControls
+     *
+     * @return bool
+     */
+    public function parseResult($result, &$errorCode, &$dn, &$errorMessage, &$referrals, &$serverControls = [])
+    {
+        return $this->supportsServerControlsInMethods() && !empty($serverControls) ?
+            ldap_parse_result($this->connection, $result, $errorCode, $dn, $errorMessage, $referrals, $serverControls) :
+            ldap_parse_result($this->connection, $result, $errorCode, $dn, $errorMessage, $referrals);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function bind($username, $password, $sasl = false)
+    {
+        // Prior to binding, we will upgrade our connectivity to TLS on our current
+        // connection and ensure we are not already bound before upgrading.
+        // This is to prevent subsequent upgrading on several binds.
+        if ($this->isUsingTLS() && !$this->isBound()) {
+            $this->startTLS();
+        }
+
+        if ($sasl) {
+            return $this->bound = ldap_sasl_bind($this->connection, null, null, 'GSSAPI');
+        }
+
+        return $this->bound = ldap_bind(
+            $this->connection,
+            $username,
+            html_entity_decode($password)
+        );
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function add($dn, array $entry)
+    {
+        return ldap_add($this->connection, $dn, $entry);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function delete($dn)
+    {
+        return ldap_delete($this->connection, $dn);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function rename($dn, $newRdn, $newParent, $deleteOldRdn = false)
+    {
+        return ldap_rename($this->connection, $dn, $newRdn, $newParent, $deleteOldRdn);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function modify($dn, array $entry)
+    {
+        return ldap_modify($this->connection, $dn, $entry);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function modifyBatch($dn, array $values)
+    {
+        return ldap_modify_batch($this->connection, $dn, $values);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function modAdd($dn, array $entry)
+    {
+        return ldap_mod_add($this->connection, $dn, $entry);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function modReplace($dn, array $entry)
+    {
+        return ldap_mod_replace($this->connection, $dn, $entry);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function modDelete($dn, array $entry)
+    {
+        return ldap_mod_del($this->connection, $dn, $entry);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function controlPagedResult($pageSize = 1000, $isCritical = false, $cookie = '')
+    {
+        return ldap_control_paged_result($this->connection, $pageSize, $isCritical, $cookie);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function controlPagedResultResponse($result, &$cookie)
+    {
+        return ldap_control_paged_result_response($this->connection, $result, $cookie);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function freeResult($result)
+    {
+        return ldap_free_result($result);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function errNo()
+    {
+        return ldap_errno($this->connection);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getExtendedError()
+    {
+        return $this->getDiagnosticMessage();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getExtendedErrorHex()
+    {
+        if (preg_match("/(?<=data\s).*?(?=\,)/", $this->getExtendedError(), $code)) {
+            return $code[0];
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getExtendedErrorCode()
+    {
+        return $this->extractDiagnosticCode($this->getExtendedError());
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function err2Str($number)
+    {
+        return ldap_err2str($number);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getDiagnosticMessage()
+    {
+        ldap_get_option($this->connection, LDAP_OPT_ERROR_STRING, $message);
+
+        return $message;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function extractDiagnosticCode($message)
+    {
+        preg_match('/^([\da-fA-F]+):/', $message, $matches);
+
+        return isset($matches[1]) ? $matches[1] : false;
+    }
+
+    /**
+     * Returns the LDAP protocol to utilize for the current connection.
+     *
+     * @return string
+     */
+    public function getProtocol()
+    {
+        return $this->isUsingSSL() ? $this::PROTOCOL_SSL : $this::PROTOCOL;
+    }
+
+    /**
+     * Determine if the current PHP version supports server controls.
+     *
+     * @return bool
+     */
+    public function supportsServerControlsInMethods()
+    {
+        return version_compare(PHP_VERSION, '7.3.0') >= 0;
+    }
+
+    /**
+     * Generates an LDAP connection string for each host given.
+     *
+     * @param string|array $hosts
+     * @param string       $protocol
+     * @param string       $port
+     *
+     * @return string
+     */
+    protected function getConnectionString($hosts, $protocol, $port)
+    {
+        // If we are using SSL and using the default port, we
+        // will override it to use the default SSL port.
+        if ($this->isUsingSSL() && $port == 389) {
+            $port = self::PORT_SSL;
+        }
+
+        // Normalize hosts into an array.
+        $hosts = is_array($hosts) ? $hosts : [$hosts];
+
+        $hosts = array_map(function ($host) use ($protocol, $port) {
+            return "{$protocol}{$host}:{$port}";
+        }, $hosts);
+
+        return implode(' ', $hosts);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Connections/Provider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Connections/Provider.php
new file mode 100644
index 0000000..c8db387
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Connections/Provider.php
@@ -0,0 +1,291 @@
+<?php
+
+namespace Adldap\Connections;
+
+use Adldap\Adldap;
+use Adldap\Auth\Guard;
+use Adldap\Query\Cache;
+use InvalidArgumentException;
+use Adldap\Auth\GuardInterface;
+use Adldap\Schemas\ActiveDirectory;
+use Adldap\Schemas\SchemaInterface;
+use Psr\SimpleCache\CacheInterface;
+use Adldap\Models\Factory as ModelFactory;
+use Adldap\Query\Factory as SearchFactory;
+use Adldap\Configuration\DomainConfiguration;
+
+/**
+ * Class Provider.
+ *
+ * Contains the LDAP connection and domain configuration to
+ * instantiate factories for retrieving and creating
+ * LDAP records as well as authentication (binding).
+ */
+class Provider implements ProviderInterface
+{
+    /**
+     * The providers connection.
+     *
+     * @var ConnectionInterface
+     */
+    protected $connection;
+
+    /**
+     * The providers configuration.
+     *
+     * @var DomainConfiguration
+     */
+    protected $configuration;
+
+    /**
+     * The providers schema.
+     *
+     * @var SchemaInterface
+     */
+    protected $schema;
+
+    /**
+     * The providers auth guard instance.
+     *
+     * @var GuardInterface
+     */
+    protected $guard;
+
+    /**
+     * The providers cache instance.
+     *
+     * @var Cache|null
+     */
+    protected $cache;
+
+    /**
+     * {@inheritdoc}
+     */
+    public function __construct($configuration = [], ConnectionInterface $connection = null)
+    {
+        $this->setConfiguration($configuration)
+            ->setConnection($connection);
+    }
+
+    /**
+     * Does nothing. Implemented in order to remain backwards compatible.
+     *
+     * @deprecated since v10.3.0
+     */
+    public function __destruct()
+    {
+        //
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setConfiguration($configuration = [])
+    {
+        if (is_array($configuration)) {
+            $configuration = new DomainConfiguration($configuration);
+        }
+
+        if ($configuration instanceof DomainConfiguration) {
+            $this->configuration = $configuration;
+
+            $schema = $configuration->get('schema');
+
+            // We will update our schema here when our configuration is set.
+            $this->setSchema(new $schema());
+
+            return $this;
+        }
+
+        $class = DomainConfiguration::class;
+
+        throw new InvalidArgumentException(
+            "Configuration must be array or instance of $class"
+        );
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setConnection(ConnectionInterface $connection = null)
+    {
+        // We will create a standard connection if one isn't given.
+        $this->connection = $connection ?: new Ldap();
+
+        // Prepare the connection.
+        $this->prepareConnection();
+
+        // Instantiate the LDAP connection.
+        $this->connection->connect(
+            $this->configuration->get('hosts'),
+            $this->configuration->get('port')
+        );
+
+        return $this;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setSchema(SchemaInterface $schema = null)
+    {
+        $this->schema = $schema ?: new ActiveDirectory();
+
+        return $this;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setGuard(GuardInterface $guard)
+    {
+        $this->guard = $guard;
+
+        return $this;
+    }
+
+    /**
+     * Sets the cache store.
+     *
+     * @param CacheInterface $store
+     *
+     * @return $this
+     */
+    public function setCache(CacheInterface $store)
+    {
+        $this->cache = new Cache($store);
+
+        return $this;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getConfiguration()
+    {
+        return $this->configuration;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getConnection()
+    {
+        return $this->connection;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getSchema()
+    {
+        return $this->schema;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getGuard()
+    {
+        if (!$this->guard instanceof GuardInterface) {
+            $this->setGuard($this->getDefaultGuard($this->connection, $this->configuration));
+        }
+
+        return $this->guard;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getDefaultGuard(ConnectionInterface $connection, DomainConfiguration $configuration)
+    {
+        $guard = new Guard($connection, $configuration);
+
+        $guard->setDispatcher(Adldap::getEventDispatcher());
+
+        return $guard;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function make()
+    {
+        return new ModelFactory(
+            $this->search()->newQuery()
+        );
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function search()
+    {
+        $factory = new SearchFactory(
+            $this->connection,
+            $this->schema,
+            $this->configuration->get('base_dn')
+        );
+
+        if ($this->cache) {
+            $factory->setCache($this->cache);
+        }
+
+        return $factory;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function auth()
+    {
+        return $this->getGuard();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function connect($username = null, $password = null)
+    {
+        // Get the default guard instance.
+        $guard = $this->getGuard();
+
+        if (is_null($username) && is_null($password)) {
+            // If both the username and password are null, we'll connect to the server
+            // using the configured administrator username and password.
+            $guard->bindAsAdministrator();
+        } else {
+            // Bind to the server with the specified username and password otherwise.
+            $guard->bind($username, $password);
+        }
+
+        return $this;
+    }
+
+    /**
+     * Prepares the connection by setting configured parameters.
+     *
+     * @throws \Adldap\Configuration\ConfigurationException When configuration options requested do not exist
+     *
+     * @return void
+     */
+    protected function prepareConnection()
+    {
+        if ($this->configuration->get('use_ssl')) {
+            $this->connection->ssl();
+        } elseif ($this->configuration->get('use_tls')) {
+            $this->connection->tls();
+        }
+
+        $options = array_replace(
+            $this->configuration->get('custom_options'),
+            [
+                LDAP_OPT_PROTOCOL_VERSION => $this->configuration->get('version'),
+                LDAP_OPT_NETWORK_TIMEOUT  => $this->configuration->get('timeout'),
+                LDAP_OPT_REFERRALS        => $this->configuration->get('follow_referrals'),
+            ]
+        );
+
+        $this->connection->setOptions($options);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Connections/ProviderInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Connections/ProviderInterface.php
new file mode 100644
index 0000000..20749a7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Connections/ProviderInterface.php
@@ -0,0 +1,129 @@
+<?php
+
+namespace Adldap\Connections;
+
+use Adldap\Auth\GuardInterface;
+use Adldap\Schemas\SchemaInterface;
+use Adldap\Configuration\DomainConfiguration;
+
+interface ProviderInterface
+{
+    /**
+     * Constructor.
+     *
+     * @param array|DomainConfiguration $configuration
+     * @param ConnectionInterface       $connection
+     */
+    public function __construct($configuration, ConnectionInterface $connection);
+
+    /**
+     * Returns the current connection instance.
+     *
+     * @return ConnectionInterface
+     */
+    public function getConnection();
+
+    /**
+     * Returns the current configuration instance.
+     *
+     * @return DomainConfiguration
+     */
+    public function getConfiguration();
+
+    /**
+     * Returns the current Guard instance.
+     *
+     * @return \Adldap\Auth\Guard
+     */
+    public function getGuard();
+
+    /**
+     * Returns a new default Guard instance.
+     *
+     * @param ConnectionInterface $connection
+     * @param DomainConfiguration $configuration
+     *
+     * @return \Adldap\Auth\Guard
+     */
+    public function getDefaultGuard(ConnectionInterface $connection, DomainConfiguration $configuration);
+
+    /**
+     * Sets the current connection.
+     *
+     * @param ConnectionInterface $connection
+     *
+     * @return $this
+     */
+    public function setConnection(ConnectionInterface $connection = null);
+
+    /**
+     * Sets the current configuration.
+     *
+     * @param DomainConfiguration|array $configuration
+     *
+     * @throws \Adldap\Configuration\ConfigurationException
+     */
+    public function setConfiguration($configuration = []);
+
+    /**
+     * Sets the current LDAP attribute schema.
+     *
+     * @param SchemaInterface|null $schema
+     *
+     * @return $this
+     */
+    public function setSchema(SchemaInterface $schema = null);
+
+    /**
+     * Returns the current LDAP attribute schema.
+     *
+     * @return SchemaInterface
+     */
+    public function getSchema();
+
+    /**
+     * Sets the current Guard instance.
+     *
+     * @param GuardInterface $guard
+     *
+     * @return $this
+     */
+    public function setGuard(GuardInterface $guard);
+
+    /**
+     * Returns a new Model factory instance.
+     *
+     * @return \Adldap\Models\Factory
+     */
+    public function make();
+
+    /**
+     * Returns a new Search factory instance.
+     *
+     * @return \Adldap\Query\Factory
+     */
+    public function search();
+
+    /**
+     * Returns a new Auth Guard instance.
+     *
+     * @return \Adldap\Auth\Guard
+     */
+    public function auth();
+
+    /**
+     * Connects and Binds to the Domain Controller.
+     *
+     * If no username or password is specified, then the
+     * configured administrator credentials are used.
+     *
+     * @param string|null $username
+     * @param string|null $password
+     *
+     * @throws \Adldap\Auth\BindException If binding to the LDAP server fails.
+     * @throws ConnectionException        If upgrading the connection to TLS fails
+     *
+     * @return ProviderInterface
+     */
+    public function connect($username = null, $password = null);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Events/Dispatcher.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Events/Dispatcher.php
new file mode 100644
index 0000000..f81f478
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Events/Dispatcher.php
@@ -0,0 +1,320 @@
+<?php
+
+namespace Adldap\Events;
+
+use Illuminate\Support\Arr;
+
+/**
+ * Class Dispatcher.
+ *
+ * Handles event listening and dispatching.
+ *
+ * This code was taken out of the Laravel Framework core
+ * with broadcasting and queuing omitted to remove
+ * an extra dependency that would be required.
+ *
+ * @author Taylor Otwell
+ *
+ * @see https://github.com/laravel/framework
+ */
+class Dispatcher implements DispatcherInterface
+{
+    /**
+     * The registered event listeners.
+     *
+     * @var array
+     */
+    protected $listeners = [];
+
+    /**
+     * The wildcard listeners.
+     *
+     * @var array
+     */
+    protected $wildcards = [];
+
+    /**
+     * The cached wildcard listeners.
+     *
+     * @var array
+     */
+    protected $wildcardsCache = [];
+
+    /**
+     * {@inheritdoc}
+     */
+    public function listen($events, $listener)
+    {
+        foreach ((array) $events as $event) {
+            if (strpos($event, '*') !== false) {
+                $this->setupWildcardListen($event, $listener);
+            } else {
+                $this->listeners[$event][] = $this->makeListener($listener);
+            }
+        }
+    }
+
+    /**
+     * Setup a wildcard listener callback.
+     *
+     * @param string $event
+     * @param mixed  $listener
+     *
+     * @return void
+     */
+    protected function setupWildcardListen($event, $listener)
+    {
+        $this->wildcards[$event][] = $this->makeListener($listener, true);
+
+        $this->wildcardsCache = [];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function hasListeners($eventName)
+    {
+        return isset($this->listeners[$eventName]) || isset($this->wildcards[$eventName]);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function until($event, $payload = [])
+    {
+        return $this->dispatch($event, $payload, true);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function fire($event, $payload = [], $halt = false)
+    {
+        return $this->dispatch($event, $payload, $halt);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function dispatch($event, $payload = [], $halt = false)
+    {
+        // When the given "event" is actually an object we will assume it is an event
+        // object and use the class as the event name and this event itself as the
+        // payload to the handler, which makes object based events quite simple.
+        list($event, $payload) = $this->parseEventAndPayload(
+            $event,
+            $payload
+        );
+
+        $responses = [];
+
+        foreach ($this->getListeners($event) as $listener) {
+            $response = $listener($event, $payload);
+
+            // If a response is returned from the listener and event halting is enabled
+            // we will just return this response, and not call the rest of the event
+            // listeners. Otherwise we will add the response on the response list.
+            if ($halt && !is_null($response)) {
+                return $response;
+            }
+
+            // If a boolean false is returned from a listener, we will stop propagating
+            // the event to any further listeners down in the chain, else we keep on
+            // looping through the listeners and firing every one in our sequence.
+            if ($response === false) {
+                break;
+            }
+
+            $responses[] = $response;
+        }
+
+        return $halt ? null : $responses;
+    }
+
+    /**
+     * Parse the given event and payload and prepare them for dispatching.
+     *
+     * @param mixed $event
+     * @param mixed $payload
+     *
+     * @return array
+     */
+    protected function parseEventAndPayload($event, $payload)
+    {
+        if (is_object($event)) {
+            list($payload, $event) = [[$event], get_class($event)];
+        }
+
+        return [$event, Arr::wrap($payload)];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getListeners($eventName)
+    {
+        $listeners = $this->listeners[$eventName] ?? [];
+
+        $listeners = array_merge(
+            $listeners,
+            $this->wildcardsCache[$eventName] ?? $this->getWildcardListeners($eventName)
+        );
+
+        return class_exists($eventName, false)
+            ? $this->addInterfaceListeners($eventName, $listeners)
+            : $listeners;
+    }
+
+    /**
+     * Get the wildcard listeners for the event.
+     *
+     * @param string $eventName
+     *
+     * @return array
+     */
+    protected function getWildcardListeners($eventName)
+    {
+        $wildcards = [];
+
+        foreach ($this->wildcards as $key => $listeners) {
+            if ($this->wildcardContainsEvent($key, $eventName)) {
+                $wildcards = array_merge($wildcards, $listeners);
+            }
+        }
+
+        return $this->wildcardsCache[$eventName] = $wildcards;
+    }
+
+    /**
+     * Determine if the wildcard matches or contains the given event.
+     *
+     * This function is a direct excerpt from Laravel's Str::is().
+     *
+     * @param string $wildcard
+     * @param string $eventName
+     *
+     * @return bool
+     */
+    protected function wildcardContainsEvent($wildcard, $eventName)
+    {
+        $patterns = Arr::wrap($wildcard);
+
+        if (empty($patterns)) {
+            return false;
+        }
+
+        foreach ($patterns as $pattern) {
+            // If the given event is an exact match we can of course return true right
+            // from the beginning. Otherwise, we will translate asterisks and do an
+            // actual pattern match against the two strings to see if they match.
+            if ($pattern == $eventName) {
+                return true;
+            }
+
+            $pattern = preg_quote($pattern, '#');
+
+            // Asterisks are translated into zero-or-more regular expression wildcards
+            // to make it convenient to check if the strings starts with the given
+            // pattern such as "library/*", making any string check convenient.
+            $pattern = str_replace('\*', '.*', $pattern);
+
+            if (preg_match('#^'.$pattern.'\z#u', $eventName) === 1) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * Add the listeners for the event's interfaces to the given array.
+     *
+     * @param string $eventName
+     * @param array  $listeners
+     *
+     * @return array
+     */
+    protected function addInterfaceListeners($eventName, array $listeners = [])
+    {
+        foreach (class_implements($eventName) as $interface) {
+            if (isset($this->listeners[$interface])) {
+                foreach ($this->listeners[$interface] as $names) {
+                    $listeners = array_merge($listeners, (array) $names);
+                }
+            }
+        }
+
+        return $listeners;
+    }
+
+    /**
+     * Register an event listener with the dispatcher.
+     *
+     * @param \Closure|string $listener
+     * @param bool            $wildcard
+     *
+     * @return \Closure
+     */
+    public function makeListener($listener, $wildcard = false)
+    {
+        if (is_string($listener)) {
+            return $this->createClassListener($listener, $wildcard);
+        }
+
+        return function ($event, $payload) use ($listener, $wildcard) {
+            if ($wildcard) {
+                return $listener($event, $payload);
+            }
+
+            return $listener(...array_values($payload));
+        };
+    }
+
+    /**
+     * Create a class based listener.
+     *
+     * @param string $listener
+     * @param bool   $wildcard
+     *
+     * @return \Closure
+     */
+    protected function createClassListener($listener, $wildcard = false)
+    {
+        return function ($event, $payload) use ($listener, $wildcard) {
+            if ($wildcard) {
+                return call_user_func($this->parseListenerCallback($listener), $event, $payload);
+            }
+
+            return call_user_func_array(
+                $this->parseListenerCallback($listener),
+                $payload
+            );
+        };
+    }
+
+    /**
+     * Parse the class listener into class and method.
+     *
+     * @param string $listener
+     *
+     * @return array
+     */
+    protected function parseListenerCallback($listener)
+    {
+        return strpos($listener, '@') !== false ?
+            explode('@', $listener, 2) :
+            [$listener, 'handle'];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function forget($event)
+    {
+        if (strpos($event, '*') !== false) {
+            unset($this->wildcards[$event]);
+        } else {
+            unset($this->listeners[$event]);
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Events/DispatcherInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Events/DispatcherInterface.php
new file mode 100644
index 0000000..e014543
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Events/DispatcherInterface.php
@@ -0,0 +1,75 @@
+<?php
+
+namespace Adldap\Events;
+
+interface DispatcherInterface
+{
+    /**
+     * Register an event listener with the dispatcher.
+     *
+     * @param string|array $events
+     * @param mixed        $listener
+     *
+     * @return void
+     */
+    public function listen($events, $listener);
+
+    /**
+     * Determine if a given event has listeners.
+     *
+     * @param string $eventName
+     *
+     * @return bool
+     */
+    public function hasListeners($eventName);
+
+    /**
+     * Fire an event until the first non-null response is returned.
+     *
+     * @param string|object $event
+     * @param mixed         $payload
+     *
+     * @return array|null
+     */
+    public function until($event, $payload = []);
+
+    /**
+     * Fire an event and call the listeners.
+     *
+     * @param string|object $event
+     * @param mixed         $payload
+     * @param bool          $halt
+     *
+     * @return mixed
+     */
+    public function fire($event, $payload = [], $halt = false);
+
+    /**
+     * Fire an event and call the listeners.
+     *
+     * @param string|object $event
+     * @param mixed         $payload
+     * @param bool          $halt
+     *
+     * @return array|null
+     */
+    public function dispatch($event, $payload = [], $halt = false);
+
+    /**
+     * Get all of the listeners for a given event name.
+     *
+     * @param string $eventName
+     *
+     * @return array
+     */
+    public function getListeners($eventName);
+
+    /**
+     * Remove a set of listeners from the dispatcher.
+     *
+     * @param string $event
+     *
+     * @return void
+     */
+    public function forget($event);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Events/DispatchesEvents.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Events/DispatchesEvents.php
new file mode 100644
index 0000000..f530ba4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Events/DispatchesEvents.php
@@ -0,0 +1,51 @@
+<?php
+
+namespace Adldap\Events;
+
+trait DispatchesEvents
+{
+    /**
+     * The event dispatcher instance.
+     *
+     * @var DispatcherInterface
+     */
+    protected static $dispatcher;
+
+    /**
+     * Get the event dispatcher instance.
+     *
+     * @return DispatcherInterface
+     */
+    public static function getEventDispatcher()
+    {
+        // If no event dispatcher has been set, well instantiate and
+        // set one here. This will be our singleton instance.
+        if (!isset(static::$dispatcher)) {
+            static::setEventDispatcher(new Dispatcher());
+        }
+
+        return static::$dispatcher;
+    }
+
+    /**
+     * Set the event dispatcher instance.
+     *
+     * @param DispatcherInterface $dispatcher
+     *
+     * @return void
+     */
+    public static function setEventDispatcher(DispatcherInterface $dispatcher)
+    {
+        static::$dispatcher = $dispatcher;
+    }
+
+    /**
+     * Unset the event dispatcher instance.
+     *
+     * @return void
+     */
+    public static function unsetEventDispatcher()
+    {
+        static::$dispatcher = null;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Log/EventLogger.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Log/EventLogger.php
new file mode 100644
index 0000000..37d36b8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Log/EventLogger.php
@@ -0,0 +1,141 @@
+<?php
+
+namespace Adldap\Log;
+
+use ReflectionClass;
+use Psr\Log\LoggerInterface;
+use Adldap\Auth\Events\Failed;
+use Adldap\Auth\Events\Event as AuthEvent;
+use Adldap\Models\Events\Event as ModelEvent;
+use Adldap\Query\Events\QueryExecuted as QueryEvent;
+
+class EventLogger
+{
+    /**
+     * The logger instance.
+     *
+     * @var LoggerInterface|null
+     */
+    protected $logger;
+
+    /**
+     * Constructor.
+     *
+     * @param LoggerInterface $logger
+     */
+    public function __construct(LoggerInterface $logger = null)
+    {
+        $this->logger = $logger;
+    }
+
+    /**
+     * Logs the given event.
+     *
+     * @param mixed $event
+     */
+    public function log($event)
+    {
+        if ($event instanceof AuthEvent) {
+            $this->auth($event);
+        } elseif ($event instanceof ModelEvent) {
+            $this->model($event);
+        } elseif ($event instanceof QueryEvent) {
+            $this->query($event);
+        }
+    }
+
+    /**
+     * Logs an authentication event.
+     *
+     * @param AuthEvent $event
+     *
+     * @return void
+     */
+    public function auth(AuthEvent $event)
+    {
+        if (isset($this->logger)) {
+            $connection = $event->getConnection();
+
+            $message = "LDAP ({$connection->getHost()})"
+                ." - Connection: {$connection->getName()}"
+                ." - Operation: {$this->getOperationName($event)}"
+                ." - Username: {$event->getUsername()}";
+
+            $result = null;
+            $type = 'info';
+
+            if (is_a($event, Failed::class)) {
+                $type = 'warning';
+                $result = " - Reason: {$connection->getLastError()}";
+            }
+
+            $this->logger->$type($message.$result);
+        }
+    }
+
+    /**
+     * Logs a model event.
+     *
+     * @param ModelEvent $event
+     *
+     * @return void
+     */
+    public function model(ModelEvent $event)
+    {
+        if (isset($this->logger)) {
+            $model = $event->getModel();
+
+            $on = get_class($model);
+
+            $connection = $model->getQuery()->getConnection();
+
+            $message = "LDAP ({$connection->getHost()})"
+                ." - Connection: {$connection->getName()}"
+                ." - Operation: {$this->getOperationName($event)}"
+                ." - On: {$on}"
+                ." - Distinguished Name: {$model->getDn()}";
+
+            $this->logger->info($message);
+        }
+    }
+
+    /**
+     * Logs a query event.
+     *
+     * @param QueryEvent $event
+     *
+     * @return void
+     */
+    public function query(QueryEvent $event)
+    {
+        if (isset($this->logger)) {
+            $query = $event->getQuery();
+
+            $connection = $query->getConnection();
+
+            $selected = implode(',', $query->getSelects());
+
+            $message = "LDAP ({$connection->getHost()})"
+                ." - Connection: {$connection->getName()}"
+                ." - Operation: {$this->getOperationName($event)}"
+                ." - Base DN: {$query->getDn()}"
+                ." - Filter: {$query->getUnescapedQuery()}"
+                ." - Selected: ({$selected})"
+                ." - Time Elapsed: {$event->getTime()}";
+
+            $this->logger->info($message);
+        }
+    }
+
+    /**
+     * Returns the operational name of the given event.
+     *
+     * @param mixed $event
+     *
+     * @return string
+     */
+    protected function getOperationName($event)
+    {
+        return (new ReflectionClass($event))->getShortName();
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Log/LogsInformation.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Log/LogsInformation.php
new file mode 100644
index 0000000..d6f5191
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Log/LogsInformation.php
@@ -0,0 +1,47 @@
+<?php
+
+namespace Adldap\Log;
+
+use Psr\Log\LoggerInterface;
+
+trait LogsInformation
+{
+    /**
+     * The logger instance.
+     *
+     * @var LoggerInterface|null
+     */
+    protected static $logger;
+
+    /**
+     * Get the logger instance.
+     *
+     * @return LoggerInterface|null
+     */
+    public static function getLogger()
+    {
+        return static::$logger;
+    }
+
+    /**
+     * Set the logger instance.
+     *
+     * @param LoggerInterface $logger
+     *
+     * @return void
+     */
+    public static function setLogger(LoggerInterface $logger)
+    {
+        static::$logger = $logger;
+    }
+
+    /**
+     * Unset the logger instance.
+     *
+     * @return void
+     */
+    public static function unsetLogger()
+    {
+        static::$logger = null;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Attributes/AccountControl.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Attributes/AccountControl.php
new file mode 100644
index 0000000..89fd8a4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Attributes/AccountControl.php
@@ -0,0 +1,458 @@
+<?php
+
+namespace Adldap\Models\Attributes;
+
+use ReflectionClass;
+
+/**
+ * The Account Control class.
+ *
+ * This class is for easily building a user account control value.
+ *
+ * @link https://support.microsoft.com/en-us/kb/305144
+ */
+class AccountControl
+{
+    const SCRIPT = 1;
+
+    const ACCOUNTDISABLE = 2;
+
+    const HOMEDIR_REQUIRED = 8;
+
+    const LOCKOUT = 16;
+
+    const PASSWD_NOTREQD = 32;
+
+    const ENCRYPTED_TEXT_PWD_ALLOWED = 128;
+
+    const TEMP_DUPLICATE_ACCOUNT = 256;
+
+    const NORMAL_ACCOUNT = 512;
+
+    const INTERDOMAIN_TRUST_ACCOUNT = 2048;
+
+    const WORKSTATION_TRUST_ACCOUNT = 4096;
+
+    const SERVER_TRUST_ACCOUNT = 8192;
+
+    const DONT_EXPIRE_PASSWORD = 65536;
+
+    const MNS_LOGON_ACCOUNT = 131072;
+
+    const SMARTCARD_REQUIRED = 262144;
+
+    const TRUSTED_FOR_DELEGATION = 524288;
+
+    const NOT_DELEGATED = 1048576;
+
+    const USE_DES_KEY_ONLY = 2097152;
+
+    const DONT_REQ_PREAUTH = 4194304;
+
+    const PASSWORD_EXPIRED = 8388608;
+
+    const TRUSTED_TO_AUTH_FOR_DELEGATION = 16777216;
+
+    const PARTIAL_SECRETS_ACCOUNT = 67108864;
+
+    /**
+     * Stores the values to be added together to
+     * build the user account control integer.
+     *
+     * @var array
+     */
+    protected $values = [];
+
+    /**
+     * Constructor.
+     *
+     * @param int $flag
+     */
+    public function __construct($flag = null)
+    {
+        if (!is_null($flag)) {
+            $this->apply($flag);
+        }
+    }
+
+    /**
+     * Get the value when casted to string.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return (string) $this->getValue();
+    }
+
+    /**
+     * Get the value when casted to int.
+     *
+     * @return int
+     */
+    public function __toInt()
+    {
+        return $this->getValue();
+    }
+
+    /**
+     * Add the value to the account control values.
+     *
+     * @param int $value
+     *
+     * @return AccountControl
+     */
+    public function add($value)
+    {
+        // Use the value as a key so if the same value
+        // is used, it will always be overwritten
+        $this->values[$value] = $value;
+
+        return $this;
+    }
+
+    /**
+     * Remove the value from the account control.
+     *
+     * @param int $value
+     *
+     * @return $this
+     */
+    public function remove($value)
+    {
+        unset($this->values[$value]);
+
+        return $this;
+    }
+
+    /**
+     * Extract and apply the flag.
+     *
+     * @param int $flag
+     */
+    public function apply($flag)
+    {
+        $this->setValues($this->extractFlags($flag));
+    }
+
+    /**
+     * Determine if the current AccountControl object contains the given UAC flag(s).
+     *
+     * @param int $flag
+     *
+     * @return bool
+     */
+    public function has($flag)
+    {
+        // We'll extract the given flag into an array of possible flags, and
+        // see if our AccountControl object contains any of them.
+        $flagsUsed = array_intersect($this->extractFlags($flag), $this->values);
+
+        return in_array($flag, $flagsUsed);
+    }
+
+    /**
+     * The logon script will be run.
+     *
+     * @return AccountControl
+     */
+    public function runLoginScript()
+    {
+        return $this->add(static::SCRIPT);
+    }
+
+    /**
+     * The user account is locked.
+     *
+     * @return AccountControl
+     */
+    public function accountIsLocked()
+    {
+        return $this->add(static::LOCKOUT);
+    }
+
+    /**
+     * The user account is disabled.
+     *
+     * @return AccountControl
+     */
+    public function accountIsDisabled()
+    {
+        return $this->add(static::ACCOUNTDISABLE);
+    }
+
+    /**
+     * This is an account for users whose primary account is in another domain.
+     *
+     * This account provides user access to this domain, but not to any domain that
+     * trusts this domain. This is sometimes referred to as a local user account.
+     *
+     * @return AccountControl
+     */
+    public function accountIsTemporary()
+    {
+        return $this->add(static::TEMP_DUPLICATE_ACCOUNT);
+    }
+
+    /**
+     * This is a default account type that represents a typical user.
+     *
+     * @return AccountControl
+     */
+    public function accountIsNormal()
+    {
+        return $this->add(static::NORMAL_ACCOUNT);
+    }
+
+    /**
+     * This is a permit to trust an account for a system domain that trusts other domains.
+     *
+     * @return AccountControl
+     */
+    public function accountIsForInterdomain()
+    {
+        return $this->add(static::INTERDOMAIN_TRUST_ACCOUNT);
+    }
+
+    /**
+     * This is a computer account for a computer that is running Microsoft
+     * Windows NT 4.0 Workstation, Microsoft Windows NT 4.0 Server, Microsoft
+     * Windows 2000 Professional, or Windows 2000 Server and is a member of this domain.
+     *
+     * @return AccountControl
+     */
+    public function accountIsForWorkstation()
+    {
+        return $this->add(static::WORKSTATION_TRUST_ACCOUNT);
+    }
+
+    /**
+     * This is a computer account for a domain controller that is a member of this domain.
+     *
+     * @return AccountControl
+     */
+    public function accountIsForServer()
+    {
+        return $this->add(static::SERVER_TRUST_ACCOUNT);
+    }
+
+    /**
+     * This is an MNS logon account.
+     *
+     * @return AccountControl
+     */
+    public function accountIsMnsLogon()
+    {
+        return $this->add(static::MNS_LOGON_ACCOUNT);
+    }
+
+    /**
+     * (Windows 2000/Windows Server 2003) This account does
+     * not require Kerberos pre-authentication for logging on.
+     *
+     * @return AccountControl
+     */
+    public function accountDoesNotRequirePreAuth()
+    {
+        return $this->add(static::DONT_REQ_PREAUTH);
+    }
+
+    /**
+     * When this flag is set, it forces the user to log on by using a smart card.
+     *
+     * @return AccountControl
+     */
+    public function accountRequiresSmartCard()
+    {
+        return $this->add(static::SMARTCARD_REQUIRED);
+    }
+
+    /**
+     * (Windows Server 2008/Windows Server 2008 R2) The account is a read-only domain controller (RODC).
+     *
+     * This is a security-sensitive setting. Removing this setting from an RODC compromises security on that server.
+     *
+     * @return AccountControl
+     */
+    public function accountIsReadOnly()
+    {
+        return $this->add(static::PARTIAL_SECRETS_ACCOUNT);
+    }
+
+    /**
+     * The home folder is required.
+     *
+     * @return AccountControl
+     */
+    public function homeFolderIsRequired()
+    {
+        return $this->add(static::HOMEDIR_REQUIRED);
+    }
+
+    /**
+     * No password is required.
+     *
+     * @return AccountControl
+     */
+    public function passwordIsNotRequired()
+    {
+        return $this->add(static::PASSWD_NOTREQD);
+    }
+
+    /**
+     * The user cannot change the password. This is a permission on the user's object.
+     *
+     * For information about how to programmatically set this permission, visit the following link:
+     *
+     * @link http://msdn2.microsoft.com/en-us/library/aa746398.aspx
+     *
+     * @return AccountControl
+     */
+    public function passwordCannotBeChanged()
+    {
+        return $this->add(static::PASSWD_NOTREQD);
+    }
+
+    /**
+     * Represents the password, which should never expire on the account.
+     *
+     * @return AccountControl
+     */
+    public function passwordDoesNotExpire()
+    {
+        return $this->add(static::DONT_EXPIRE_PASSWORD);
+    }
+
+    /**
+     * (Windows 2000/Windows Server 2003) The user's password has expired.
+     *
+     * @return AccountControl
+     */
+    public function passwordIsExpired()
+    {
+        return $this->add(static::PASSWORD_EXPIRED);
+    }
+
+    /**
+     * The user can send an encrypted password.
+     *
+     * @return AccountControl
+     */
+    public function allowEncryptedTextPassword()
+    {
+        return $this->add(static::ENCRYPTED_TEXT_PWD_ALLOWED);
+    }
+
+    /**
+     * When this flag is set, the service account (the user or computer account)
+     * under which a service runs is trusted for Kerberos delegation.
+     *
+     * Any such service can impersonate a client requesting the service.
+     *
+     * To enable a service for Kerberos delegation, you must set this
+     * flag on the userAccountControl property of the service account.
+     *
+     * @return AccountControl
+     */
+    public function trustForDelegation()
+    {
+        return $this->add(static::TRUSTED_FOR_DELEGATION);
+    }
+
+    /**
+     * (Windows 2000/Windows Server 2003) The account is enabled for delegation.
+     *
+     * This is a security-sensitive setting. Accounts that have this option enabled
+     * should be tightly controlled. This setting lets a service that runs under the
+     * account assume a client's identity and authenticate as that user to other remote
+     * servers on the network.
+     *
+     * @return AccountControl
+     */
+    public function trustToAuthForDelegation()
+    {
+        return $this->add(static::TRUSTED_TO_AUTH_FOR_DELEGATION);
+    }
+
+    /**
+     * When this flag is set, the security context of the user is not delegated to a
+     * service even if the service account is set as trusted for Kerberos delegation.
+     *
+     * @return AccountControl
+     */
+    public function doNotTrustForDelegation()
+    {
+        return $this->add(static::NOT_DELEGATED);
+    }
+
+    /**
+     * (Windows 2000/Windows Server 2003) Restrict this principal to
+     * use only Data Encryption Standard (DES) encryption types for keys.
+     *
+     * @return AccountControl
+     */
+    public function useDesKeyOnly()
+    {
+        return $this->add(static::USE_DES_KEY_ONLY);
+    }
+
+    /**
+     * Get the account control value.
+     *
+     * @return int
+     */
+    public function getValue()
+    {
+        return array_sum($this->values);
+    }
+
+    /**
+     * Get the account control flag values.
+     *
+     * @return array
+     */
+    public function getValues()
+    {
+        return $this->values;
+    }
+
+    /**
+     * Set the account control values.
+     *
+     * @param array $flags
+     */
+    public function setValues(array $flags)
+    {
+        $this->values = $flags;
+    }
+
+    /**
+     * Get all possible account control flags.
+     *
+     * @return array
+     */
+    public function getAllFlags()
+    {
+        return (new ReflectionClass(__CLASS__))->getConstants();
+    }
+
+    /**
+     * Extracts the given flag into an array of flags used.
+     *
+     * @param int $flag
+     *
+     * @return array
+     */
+    public function extractFlags($flag)
+    {
+        $flags = [];
+
+        for ($i = 0; $i <= 26; $i++) {
+            if ((int) $flag & (1 << $i)) {
+                $flags[1 << $i] = 1 << $i;
+            }
+        }
+
+        return $flags;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Attributes/DistinguishedName.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Attributes/DistinguishedName.php
new file mode 100644
index 0000000..e610dbf
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Attributes/DistinguishedName.php
@@ -0,0 +1,312 @@
+<?php
+
+namespace Adldap\Models\Attributes;
+
+use Adldap\Utilities;
+
+class DistinguishedName
+{
+    /**
+     * The distinguished name components (in order of assembly).
+     *
+     * @var array
+     */
+    protected $components = [
+        'cn'  => [],
+        'uid' => [],
+        'ou'  => [],
+        'dc'  => [],
+        'o'   => [],
+    ];
+
+    /**
+     * Constructor.
+     *
+     * @param mixed $baseDn
+     */
+    public function __construct($baseDn = null)
+    {
+        $this->setBase($baseDn);
+    }
+
+    /**
+     * Returns the complete distinguished name.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return $this->get();
+    }
+
+    /**
+     * Returns the complete distinguished name by assembling the RDN components.
+     *
+     * @return string
+     */
+    public function get()
+    {
+        $components = [];
+
+        // We'll go through each component type and assemble its RDN.
+        foreach ($this->components as $component => $values) {
+            array_map(function ($value) use ($component, &$components) {
+                // Assemble the component and escape the value.
+                $components[] = sprintf('%s=%s', $component, ldap_escape($value, '', 2));
+            }, $values);
+        }
+
+        return implode(',', $components);
+    }
+
+    /**
+     * Adds a domain component.
+     *
+     * @param string $dc
+     *
+     * @return DistinguishedName
+     */
+    public function addDc($dc)
+    {
+        $this->addComponent('dc', $dc);
+
+        return $this;
+    }
+
+    /**
+     * Removes a domain component.
+     *
+     * @param string $dc
+     *
+     * @return DistinguishedName
+     */
+    public function removeDc($dc)
+    {
+        $this->removeComponent('dc', $dc);
+
+        return $this;
+    }
+
+    /**
+     * Adds an organization name.
+     *
+     * @param string $o
+     *
+     * @return $this
+     */
+    public function addO($o)
+    {
+        $this->addComponent('o', $o);
+
+        return $this;
+    }
+
+    /**
+     * Removes an organization name.
+     *
+     * @param string $o
+     *
+     * @return DistinguishedName
+     */
+    public function removeO($o)
+    {
+        $this->removeComponent('o', $o);
+
+        return $this;
+    }
+
+    /**
+     * Add a user identifier.
+     *
+     * @param string $uid
+     *
+     * @return DistinguishedName
+     */
+    public function addUid($uid)
+    {
+        $this->addComponent('uid', $uid);
+
+        return $this;
+    }
+
+    /**
+     * Removes a user identifier.
+     *
+     * @param string $uid
+     *
+     * @return DistinguishedName
+     */
+    public function removeUid($uid)
+    {
+        $this->removeComponent('uid', $uid);
+
+        return $this;
+    }
+
+    /**
+     * Adds a common name.
+     *
+     * @param string $cn
+     *
+     * @return DistinguishedName
+     */
+    public function addCn($cn)
+    {
+        $this->addComponent('cn', $cn);
+
+        return $this;
+    }
+
+    /**
+     * Removes a common name.
+     *
+     * @param string $cn
+     *
+     * @return DistinguishedName
+     */
+    public function removeCn($cn)
+    {
+        $this->removeComponent('cn', $cn);
+
+        return $this;
+    }
+
+    /**
+     * Adds an organizational unit.
+     *
+     * @param string $ou
+     *
+     * @return DistinguishedName
+     */
+    public function addOu($ou)
+    {
+        $this->addComponent('ou', $ou);
+
+        return $this;
+    }
+
+    /**
+     * Removes an organizational unit.
+     *
+     * @param string $ou
+     *
+     * @return DistinguishedName
+     */
+    public function removeOu($ou)
+    {
+        $this->removeComponent('ou', $ou);
+
+        return $this;
+    }
+
+    /**
+     * Sets the base RDN of the distinguished name.
+     *
+     * @param string|DistinguishedName $base
+     *
+     * @return DistinguishedName
+     */
+    public function setBase($base)
+    {
+        // Typecast base to string in case we've been given
+        // an instance of the distinguished name object.
+        $base = (string) $base;
+
+        // If the base DN isn't null we'll try to explode it.
+        $base = Utilities::explodeDn($base, false) ?: [];
+
+        // Remove the count key from the exploded distinguished name.
+        unset($base['count']);
+
+        foreach ($base as $key => $rdn) {
+            // We'll break the RDN into pieces
+            $pieces = explode('=', $rdn) ?: [];
+
+            // If there's exactly 2 pieces, then we can work with it.
+            if (count($pieces) === 2) {
+                $attribute = ucfirst(strtolower($pieces[0]));
+
+                $method = 'add'.$attribute;
+
+                if (method_exists($this, $method)) {
+                    // We see what type of RDN it is and add each accordingly.
+                    call_user_func_array([$this, $method], [$pieces[1]]);
+                }
+            }
+        }
+
+        return $this;
+    }
+
+    /**
+     * Returns an array of all components in the distinguished name.
+     *
+     * If a component name is given ('cn', 'dc' for example) then
+     * the values of that component will be returned.
+     *
+     * @param string|null $component The component to retrieve values of
+     *
+     * @return array
+     */
+    public function getComponents($component = null)
+    {
+        if (is_null($component)) {
+            return $this->components;
+        }
+
+        $this->validateComponentExists($component);
+
+        return $this->components[$component];
+    }
+
+    /**
+     * Adds a component to the distinguished name.
+     *
+     * @param string $component
+     * @param string $value
+     *
+     * @throws \UnexpectedValueException When the given name does not exist.
+     */
+    protected function addComponent($component, $value)
+    {
+        $this->validateComponentExists($component);
+
+        // We need to make sure the value we're given isn't empty before adding it into our components.
+        if (!empty($value)) {
+            $this->components[$component][] = $value;
+        }
+    }
+
+    /**
+     * Removes the given value from the given component.
+     *
+     * @param string $component
+     * @param string $value
+     *
+     * @throws \UnexpectedValueException When the given component does not exist.
+     *
+     * @return void
+     */
+    protected function removeComponent($component, $value)
+    {
+        $this->validateComponentExists($component);
+
+        $this->components[$component] = array_diff($this->components[$component], [$value]);
+    }
+
+    /**
+     * Validates that the given component exists in the available components.
+     *
+     * @param string $component The name of the component to validate.
+     *
+     * @throws \UnexpectedValueException When the given component does not exist.
+     *
+     * @return void
+     */
+    protected function validateComponentExists($component)
+    {
+        if (!array_key_exists($component, $this->components)) {
+            throw new \UnexpectedValueException("The RDN component '$component' does not exist.");
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Attributes/Guid.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Attributes/Guid.php
new file mode 100644
index 0000000..6c6a600
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Attributes/Guid.php
@@ -0,0 +1,157 @@
+<?php
+
+namespace Adldap\Models\Attributes;
+
+use Adldap\Utilities;
+use InvalidArgumentException;
+
+class Guid
+{
+    /**
+     * The string GUID value.
+     *
+     * @var string
+     */
+    protected $value;
+
+    /**
+     * The guid structure in order by section to parse using substr().
+     *
+     * @author Chad Sikorra <Chad.Sikorra@gmail.com>
+     *
+     * @link https://github.com/ldaptools/ldaptools
+     *
+     * @var array
+     */
+    protected $guidSections = [
+        [[-26, 2], [-28, 2], [-30, 2], [-32, 2]],
+        [[-22, 2], [-24, 2]],
+        [[-18, 2], [-20, 2]],
+        [[-16, 4]],
+        [[-12, 12]],
+    ];
+
+    /**
+     * The hexadecimal octet order based on string position.
+     *
+     * @author Chad Sikorra <Chad.Sikorra@gmail.com>
+     *
+     * @link https://github.com/ldaptools/ldaptools
+     *
+     * @var array
+     */
+    protected $octetSections = [
+        [6, 4, 2, 0],
+        [10, 8],
+        [14, 12],
+        [16, 18, 20, 22, 24, 26, 28, 30],
+    ];
+
+    /**
+     * Determines if the specified GUID is valid.
+     *
+     * @param string $guid
+     *
+     * @return bool
+     */
+    public static function isValid($guid)
+    {
+        return Utilities::isValidGuid($guid);
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param mixed $value
+     *
+     * @throws InvalidArgumentException
+     */
+    public function __construct($value)
+    {
+        if (static::isValid($value)) {
+            $this->value = $value;
+        } elseif ($value = $this->binaryGuidToString($value)) {
+            $this->value = $value;
+        } else {
+            throw new InvalidArgumentException('Invalid Binary / String GUID.');
+        }
+    }
+
+    /**
+     * Returns the string value of the GUID.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return $this->getValue();
+    }
+
+    /**
+     * Returns the string value of the SID.
+     *
+     * @return string
+     */
+    public function getValue()
+    {
+        return $this->value;
+    }
+
+    /**
+     * Get the binary representation of the GUID string.
+     *
+     * @return string
+     */
+    public function getBinary()
+    {
+        $data = '';
+
+        $guid = str_replace('-', '', $this->value);
+
+        foreach ($this->octetSections as $section) {
+            $data .= $this->parseSection($guid, $section, true);
+        }
+
+        return hex2bin($data);
+    }
+
+    /**
+     * Returns the string variant of a binary GUID.
+     *
+     * @param string $binary
+     *
+     * @return string|null
+     */
+    protected function binaryGuidToString($binary)
+    {
+        return Utilities::binaryGuidToString($binary);
+    }
+
+    /**
+     * Return the specified section of the hexadecimal string.
+     *
+     * @author Chad Sikorra <Chad.Sikorra@gmail.com>
+     *
+     * @link https://github.com/ldaptools/ldaptools
+     *
+     * @param string $hex      The full hex string.
+     * @param array  $sections An array of start and length (unless octet is true, then length is always 2).
+     * @param bool   $octet    Whether this is for octet string form.
+     *
+     * @return string The concatenated sections in upper-case.
+     */
+    protected function parseSection($hex, array $sections, $octet = false)
+    {
+        $parsedString = '';
+
+        foreach ($sections as $section) {
+            $start = $octet ? $section : $section[0];
+
+            $length = $octet ? 2 : $section[1];
+
+            $parsedString .= substr($hex, $start, $length);
+        }
+
+        return $parsedString;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Attributes/MbString.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Attributes/MbString.php
new file mode 100644
index 0000000..54a0db8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Attributes/MbString.php
@@ -0,0 +1,80 @@
+<?php
+
+namespace Adldap\Models\Attributes;
+
+class MbString
+{
+    /**
+     * Get the integer value of a specific character.
+     *
+     * @param $string
+     *
+     * @return int
+     */
+    public static function ord($string)
+    {
+        if (self::isLoaded()) {
+            $result = unpack('N', mb_convert_encoding($string, 'UCS-4BE', 'UTF-8'));
+
+            if (is_array($result) === true) {
+                return $result[1];
+            }
+        }
+
+        return ord($string);
+    }
+
+    /**
+     * Get the character for a specific integer value.
+     *
+     * @param $int
+     *
+     * @return string
+     */
+    public static function chr($int)
+    {
+        if (self::isLoaded()) {
+            return mb_convert_encoding(pack('n', $int), 'UTF-8', 'UTF-16BE');
+        }
+
+        return chr($int);
+    }
+
+    /**
+     * Split a string into its individual characters and return it as an array.
+     *
+     * @param string $value
+     *
+     * @return string[]
+     */
+    public static function split($value)
+    {
+        return preg_split('/(?<!^)(?!$)/u', $value);
+    }
+
+    /**
+     * Detects if the given string is UTF 8.
+     *
+     * @param $string
+     *
+     * @return string|false
+     */
+    public static function isUtf8($string)
+    {
+        if (self::isLoaded()) {
+            return mb_detect_encoding($string, 'UTF-8', $strict = true);
+        }
+
+        return $string;
+    }
+
+    /**
+     * Checks if the mbstring extension is enabled in PHP.
+     *
+     * @return bool
+     */
+    public static function isLoaded()
+    {
+        return extension_loaded('mbstring');
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Attributes/Sid.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Attributes/Sid.php
new file mode 100644
index 0000000..a599e2c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Attributes/Sid.php
@@ -0,0 +1,101 @@
+<?php
+
+namespace Adldap\Models\Attributes;
+
+use Adldap\Utilities;
+use InvalidArgumentException;
+
+class Sid
+{
+    /**
+     * The string SID value.
+     *
+     * @var string
+     */
+    protected $value;
+
+    /**
+     * Determines if the specified SID is valid.
+     *
+     * @param string $sid
+     *
+     * @return bool
+     */
+    public static function isValid($sid)
+    {
+        return Utilities::isValidSid($sid);
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param mixed $value
+     *
+     * @throws InvalidArgumentException
+     */
+    public function __construct($value)
+    {
+        if (static::isValid($value)) {
+            $this->value = $value;
+        } elseif ($value = $this->binarySidToString($value)) {
+            $this->value = $value;
+        } else {
+            throw new InvalidArgumentException('Invalid Binary / String SID.');
+        }
+    }
+
+    /**
+     * Returns the string value of the SID.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return $this->getValue();
+    }
+
+    /**
+     * Returns the string value of the SID.
+     *
+     * @return string
+     */
+    public function getValue()
+    {
+        return $this->value;
+    }
+
+    /**
+     * Returns the binary variant of the SID.
+     *
+     * @return string
+     */
+    public function getBinary()
+    {
+        $sid = explode('-', ltrim($this->value, 'S-'));
+
+        $level = (int) array_shift($sid);
+
+        $authority = (int) array_shift($sid);
+
+        $subAuthorities = array_map('intval', $sid);
+
+        $params = array_merge(
+            ['C2xxNV*', $level, count($subAuthorities), $authority],
+            $subAuthorities
+        );
+
+        return call_user_func_array('pack', $params);
+    }
+
+    /**
+     * Returns the string variant of a binary SID.
+     *
+     * @param string $binary
+     *
+     * @return string|null
+     */
+    protected function binarySidToString($binary)
+    {
+        return Utilities::binarySidToString($binary);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Attributes/TSProperty.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Attributes/TSProperty.php
new file mode 100644
index 0000000..aa3d63c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Attributes/TSProperty.php
@@ -0,0 +1,396 @@
+<?php
+
+namespace Adldap\Models\Attributes;
+
+class TSProperty
+{
+    /**
+     * Nibble control values. The first value for each is if the nibble is <= 9, otherwise the second value is used.
+     */
+    const NIBBLE_CONTROL = [
+        'X' => ['001011', '011010'],
+        'Y' => ['001110', '011010'],
+    ];
+
+    /**
+     * The nibble header.
+     */
+    const NIBBLE_HEADER = '1110';
+
+    /**
+     * Conversion factor needed for time values in the TSPropertyArray (stored in microseconds).
+     */
+    const TIME_CONVERSION = 60 * 1000;
+
+    /**
+     * A simple map to help determine how the property needs to be decoded/encoded from/to its binary value.
+     *
+     * There are some names that are simple repeats but have 'W' at the end. Not sure as to what that signifies. I
+     * cannot find any information on them in Microsoft documentation. However, their values appear to stay in sync with
+     * their non 'W' counterparts. But not doing so when manipulating the data manually does not seem to affect anything.
+     * This probably needs more investigation.
+     *
+     * @var array
+     */
+    protected $propTypes = [
+        'string' => [
+            'CtxWFHomeDir',
+            'CtxWFHomeDirW',
+            'CtxWFHomeDirDrive',
+            'CtxWFHomeDirDriveW',
+            'CtxInitialProgram',
+            'CtxInitialProgramW',
+            'CtxWFProfilePath',
+            'CtxWFProfilePathW',
+            'CtxWorkDirectory',
+            'CtxWorkDirectoryW',
+            'CtxCallbackNumber',
+        ],
+        'time' => [
+            'CtxMaxDisconnectionTime',
+            'CtxMaxConnectionTime',
+            'CtxMaxIdleTime',
+        ],
+        'int' => [
+            'CtxCfgFlags1',
+            'CtxCfgPresent',
+            'CtxKeyboardLayout',
+            'CtxMinEncryptionLevel',
+            'CtxNWLogonServer',
+            'CtxShadow',
+        ],
+    ];
+
+    /**
+     * The property name.
+     *
+     * @var string
+     */
+    protected $name;
+
+    /**
+     * The property value.
+     *
+     * @var string|int
+     */
+    protected $value;
+
+    /**
+     * The property value type.
+     *
+     * @var int
+     */
+    protected $valueType = 1;
+
+    /**
+     * Pass binary TSProperty data to construct its object representation.
+     *
+     * @param string|null $value
+     */
+    public function __construct($value = null)
+    {
+        if ($value) {
+            $this->decode(bin2hex($value));
+        }
+    }
+
+    /**
+     * Set the name for the TSProperty.
+     *
+     * @param string $name
+     *
+     * @return TSProperty
+     */
+    public function setName($name)
+    {
+        $this->name = $name;
+
+        return $this;
+    }
+
+    /**
+     * Get the name for the TSProperty.
+     *
+     * @return string
+     */
+    public function getName()
+    {
+        return $this->name;
+    }
+
+    /**
+     * Set the value for the TSProperty.
+     *
+     * @param string|int $value
+     *
+     * @return TSProperty
+     */
+    public function setValue($value)
+    {
+        $this->value = $value;
+
+        return $this;
+    }
+
+    /**
+     * Get the value for the TSProperty.
+     *
+     * @return string|int
+     */
+    public function getValue()
+    {
+        return $this->value;
+    }
+
+    /**
+     * Convert the TSProperty name/value back to its binary
+     * representation for the userParameters blob.
+     *
+     * @return string
+     */
+    public function toBinary()
+    {
+        $name = bin2hex($this->name);
+
+        $binValue = $this->getEncodedValueForProp($this->name, $this->value);
+
+        $valueLen = strlen(bin2hex($binValue)) / 3;
+
+        $binary = hex2bin(
+            $this->dec2hex(strlen($name))
+            .$this->dec2hex($valueLen)
+            .$this->dec2hex($this->valueType)
+            .$name
+        );
+
+        return $binary.$binValue;
+    }
+
+    /**
+     * Given a TSProperty blob, decode the name/value/type/etc.
+     *
+     * @param string $tsProperty
+     */
+    protected function decode($tsProperty)
+    {
+        $nameLength = hexdec(substr($tsProperty, 0, 2));
+
+        // 1 data byte is 3 encoded bytes
+        $valueLength = hexdec(substr($tsProperty, 2, 2)) * 3;
+
+        $this->valueType = hexdec(substr($tsProperty, 4, 2));
+        $this->name = pack('H*', substr($tsProperty, 6, $nameLength));
+        $this->value = $this->getDecodedValueForProp($this->name, substr($tsProperty, 6 + $nameLength, $valueLength));
+    }
+
+    /**
+     * Based on the property name/value in question, get its encoded form.
+     *
+     * @param string     $propName
+     * @param string|int $propValue
+     *
+     * @return string
+     */
+    protected function getEncodedValueForProp($propName, $propValue)
+    {
+        if (in_array($propName, $this->propTypes['string'])) {
+            // Simple strings are null terminated. Unsure if this is
+            // needed or simply a product of how ADUC does stuff?
+            $value = $this->encodePropValue($propValue."\0", true);
+        } elseif (in_array($propName, $this->propTypes['time'])) {
+            // Needs to be in microseconds (assuming it is in minute format)...
+            $value = $this->encodePropValue($propValue * self::TIME_CONVERSION);
+        } else {
+            $value = $this->encodePropValue($propValue);
+        }
+
+        return $value;
+    }
+
+    /**
+     * Based on the property name in question, get its actual value from the binary blob value.
+     *
+     * @param string $propName
+     * @param string $propValue
+     *
+     * @return string|int
+     */
+    protected function getDecodedValueForProp($propName, $propValue)
+    {
+        if (in_array($propName, $this->propTypes['string'])) {
+            // Strip away null terminators. I think this should
+            // be desired, otherwise it just ends in confusion.
+            $value = str_replace("\0", '', $this->decodePropValue($propValue, true));
+        } elseif (in_array($propName, $this->propTypes['time'])) {
+            // Convert from microseconds to minutes (how ADUC displays
+            // it anyway, and seems the most practical).
+            $value = hexdec($this->decodePropValue($propValue)) / self::TIME_CONVERSION;
+        } elseif (in_array($propName, $this->propTypes['int'])) {
+            $value = hexdec($this->decodePropValue($propValue));
+        } else {
+            $value = $this->decodePropValue($propValue);
+        }
+
+        return $value;
+    }
+
+    /**
+     * Decode the property by inspecting the nibbles of each blob, checking
+     * the control, and adding up the results into a final value.
+     *
+     * @param string $hex
+     * @param bool   $string Whether or not this is simple string data.
+     *
+     * @return string
+     */
+    protected function decodePropValue($hex, $string = false)
+    {
+        $decodePropValue = '';
+
+        $blobs = str_split($hex, 6);
+
+        foreach ($blobs as $blob) {
+            $bin = decbin(hexdec($blob));
+
+            $controlY = substr($bin, 4, 6);
+            $nibbleY = substr($bin, 10, 4);
+            $controlX = substr($bin, 14, 6);
+            $nibbleX = substr($bin, 20, 4);
+
+            $byte = $this->nibbleControl($nibbleX, $controlX).$this->nibbleControl($nibbleY, $controlY);
+
+            if ($string) {
+                $decodePropValue .= MbString::chr(bindec($byte));
+            } else {
+                $decodePropValue = $this->dec2hex(bindec($byte)).$decodePropValue;
+            }
+        }
+
+        return $decodePropValue;
+    }
+
+    /**
+     * Get the encoded property value as a binary blob.
+     *
+     * @param string $value
+     * @param bool   $string
+     *
+     * @return string
+     */
+    protected function encodePropValue($value, $string = false)
+    {
+        // An int must be properly padded. (then split and reversed).
+        // For a string, we just split the chars. This seems
+        // to be the easiest way to handle UTF-8 characters
+        // instead of trying to work with their hex values.
+        $chars = $string ? MbString::split($value) : array_reverse(str_split($this->dec2hex($value, 8), 2));
+
+        $encoded = '';
+
+        foreach ($chars as $char) {
+            // Get the bits for the char. Using this method to ensure it is fully padded.
+            $bits = sprintf('%08b', $string ? MbString::ord($char) : hexdec($char));
+            $nibbleX = substr($bits, 0, 4);
+            $nibbleY = substr($bits, 4, 4);
+
+            // Construct the value with the header, high nibble, then low nibble.
+            $value = self::NIBBLE_HEADER;
+
+            foreach (['Y' => $nibbleY, 'X' => $nibbleX] as $nibbleType => $nibble) {
+                $value .= $this->getNibbleWithControl($nibbleType, $nibble);
+            }
+
+            // Convert it back to a binary bit stream
+            foreach ([0, 8, 16] as $start) {
+                $encoded .= $this->packBitString(substr($value, $start, 8), 8);
+            }
+        }
+
+        return $encoded;
+    }
+
+    /**
+     * PHP's pack() function has no 'b' or 'B' template. This is
+     * a workaround that turns a literal bit-string into a
+     * packed byte-string with 8 bits per byte.
+     *
+     * @param string $bits
+     * @param bool   $len
+     *
+     * @return string
+     */
+    protected function packBitString($bits, $len)
+    {
+        $bits = substr($bits, 0, $len);
+        // Pad input with zeros to next multiple of 4 above $len
+        $bits = str_pad($bits, 4 * (int) (($len + 3) / 4), '0');
+
+        // Split input into chunks of 4 bits, convert each to hex and pack them
+        $nibbles = str_split($bits, 4);
+        foreach ($nibbles as $i => $nibble) {
+            $nibbles[$i] = base_convert($nibble, 2, 16);
+        }
+
+        return pack('H*', implode('', $nibbles));
+    }
+
+    /**
+     * Based on the control, adjust the nibble accordingly.
+     *
+     * @param string $nibble
+     * @param string $control
+     *
+     * @return string
+     */
+    protected function nibbleControl($nibble, $control)
+    {
+        // This control stays constant for the low/high nibbles,
+        // so it doesn't matter which we compare to
+        if ($control == self::NIBBLE_CONTROL['X'][1]) {
+            $dec = bindec($nibble);
+            $dec += 9;
+            $nibble = str_pad(decbin($dec), 4, '0', STR_PAD_LEFT);
+        }
+
+        return $nibble;
+    }
+
+    /**
+     * Get the nibble value with the control prefixed.
+     *
+     * If the nibble dec is <= 9, the control X equals 001011 and Y equals 001110, otherwise if the nibble dec is > 9
+     * the control for X or Y equals 011010. Additionally, if the dec value of the nibble is > 9, then the nibble value
+     * must be subtracted by 9 before the final value is constructed.
+     *
+     * @param string $nibbleType Either X or Y
+     * @param string $nibble
+     *
+     * @return string
+     */
+    protected function getNibbleWithControl($nibbleType, $nibble)
+    {
+        $dec = bindec($nibble);
+
+        if ($dec > 9) {
+            $dec -= 9;
+            $control = self::NIBBLE_CONTROL[$nibbleType][1];
+        } else {
+            $control = self::NIBBLE_CONTROL[$nibbleType][0];
+        }
+
+        return $control.sprintf('%04d', decbin($dec));
+    }
+
+    /**
+     * Need to make sure hex values are always an even length, so pad as needed.
+     *
+     * @param int $int
+     * @param int $padLength The hex string must be padded to this length (with zeros).
+     *
+     * @return string
+     */
+    protected function dec2hex($int, $padLength = 2)
+    {
+        return str_pad(dechex($int), $padLength, 0, STR_PAD_LEFT);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Attributes/TSPropertyArray.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Attributes/TSPropertyArray.php
new file mode 100644
index 0000000..4eac74b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Attributes/TSPropertyArray.php
@@ -0,0 +1,295 @@
+<?php
+
+namespace Adldap\Models\Attributes;
+
+use InvalidArgumentException;
+
+class TSPropertyArray
+{
+    /**
+     * Represents that the TSPropertyArray data is valid.
+     */
+    const VALID_SIGNATURE = 'P';
+
+    /**
+     * The default values for the TSPropertyArray structure.
+     *
+     * @var array
+     */
+    const DEFAULTS = [
+        'CtxCfgPresent'           => 2953518677,
+        'CtxWFProfilePath'        => '',
+        'CtxWFProfilePathW'       => '',
+        'CtxWFHomeDir'            => '',
+        'CtxWFHomeDirW'           => '',
+        'CtxWFHomeDirDrive'       => '',
+        'CtxWFHomeDirDriveW'      => '',
+        'CtxShadow'               => 1,
+        'CtxMaxDisconnectionTime' => 0,
+        'CtxMaxConnectionTime'    => 0,
+        'CtxMaxIdleTime'          => 0,
+        'CtxWorkDirectory'        => '',
+        'CtxWorkDirectoryW'       => '',
+        'CtxCfgFlags1'            => 2418077696,
+        'CtxInitialProgram'       => '',
+        'CtxInitialProgramW'      => '',
+    ];
+
+    /**
+     * @var string The default data that occurs before the TSPropertyArray (CtxCfgPresent with a bunch of spaces...?)
+     */
+    protected $defaultPreBinary = '43747843666750726573656e742020202020202020202020202020202020202020202020202020202020202020202020';
+
+    /**
+     * @var TSProperty[]
+     */
+    protected $tsProperty = [];
+
+    /**
+     * @var string
+     */
+    protected $signature = self::VALID_SIGNATURE;
+
+    /**
+     * Binary data that occurs before the TSPropertyArray data in userParameters.
+     *
+     * @var string
+     */
+    protected $preBinary = '';
+
+    /**
+     * Binary data that occurs after the TSPropertyArray data in userParameters.
+     *
+     * @var string
+     */
+    protected $postBinary = '';
+
+    /**
+     * Construct in one of the following ways:.
+     *
+     *   - Pass an array of TSProperty key => value pairs (See DEFAULTS constant).
+     *   - Pass the userParameters binary value. The object representation of that will be decoded and constructed.
+     *   - Pass nothing and a default set of TSProperty key => value pairs will be used (See DEFAULTS constant).
+     *
+     * @param mixed $tsPropertyArray
+     */
+    public function __construct($tsPropertyArray = null)
+    {
+        $this->preBinary = hex2bin($this->defaultPreBinary);
+
+        if (is_null($tsPropertyArray) || is_array($tsPropertyArray)) {
+            $tsPropertyArray = $tsPropertyArray ?: self::DEFAULTS;
+
+            foreach ($tsPropertyArray as $key => $value) {
+                $tsProperty = new TSProperty();
+
+                $this->tsProperty[$key] = $tsProperty->setName($key)->setValue($value);
+            }
+        } else {
+            $this->decodeUserParameters($tsPropertyArray);
+        }
+    }
+
+    /**
+     * Check if a specific TSProperty exists by its property name.
+     *
+     * @param string $propName
+     *
+     * @return bool
+     */
+    public function has($propName)
+    {
+        return array_key_exists(strtolower($propName), array_change_key_case($this->tsProperty));
+    }
+
+    /**
+     * Get a TSProperty object by its property name (ie. CtxWFProfilePath).
+     *
+     * @param string $propName
+     *
+     * @return TSProperty
+     */
+    public function get($propName)
+    {
+        $this->validateProp($propName);
+
+        return $this->getTsPropObj($propName);
+    }
+
+    /**
+     * Add a TSProperty object. If it already exists, it will be overwritten.
+     *
+     * @param TSProperty $tsProperty
+     *
+     * @return $this
+     */
+    public function add(TSProperty $tsProperty)
+    {
+        $this->tsProperty[$tsProperty->getName()] = $tsProperty;
+
+        return $this;
+    }
+
+    /**
+     * Remove a TSProperty by its property name (ie. CtxMinEncryptionLevel).
+     *
+     * @param string $propName
+     *
+     * @return $this
+     */
+    public function remove($propName)
+    {
+        foreach (array_keys($this->tsProperty) as $property) {
+            if (strtolower($propName) == strtolower($property)) {
+                unset($this->tsProperty[$property]);
+            }
+        }
+
+        return $this;
+    }
+
+    /**
+     * Set the value for a specific TSProperty by its name.
+     *
+     * @param string $propName
+     * @param mixed  $propValue
+     *
+     * @return $this
+     */
+    public function set($propName, $propValue)
+    {
+        $this->validateProp($propName);
+
+        $this->getTsPropObj($propName)->setValue($propValue);
+
+        return $this;
+    }
+
+    /**
+     * Get the full binary representation of the userParameters containing the TSPropertyArray data.
+     *
+     * @return string
+     */
+    public function toBinary()
+    {
+        $binary = $this->preBinary;
+
+        $binary .= hex2bin(str_pad(dechex(MbString::ord($this->signature)), 2, 0, STR_PAD_LEFT));
+
+        $binary .= hex2bin(str_pad(dechex(count($this->tsProperty)), 2, 0, STR_PAD_LEFT));
+
+        foreach ($this->tsProperty as $tsProperty) {
+            $binary .= $tsProperty->toBinary();
+        }
+
+        return $binary.$this->postBinary;
+    }
+
+    /**
+     * Get a simple associative array containing of all TSProperty names and values.
+     *
+     * @return array
+     */
+    public function toArray()
+    {
+        $userParameters = [];
+
+        foreach ($this->tsProperty as $property => $tsPropObj) {
+            $userParameters[$property] = $tsPropObj->getValue();
+        }
+
+        return $userParameters;
+    }
+
+    /**
+     * Get all TSProperty objects.
+     *
+     * @return TSProperty[]
+     */
+    public function getTSProperties()
+    {
+        return $this->tsProperty;
+    }
+
+    /**
+     * Validates that the given property name exists.
+     *
+     * @param string $propName
+     */
+    protected function validateProp($propName)
+    {
+        if (!$this->has($propName)) {
+            throw new InvalidArgumentException(sprintf('TSProperty for "%s" does not exist.', $propName));
+        }
+    }
+
+    /**
+     * @param string $propName
+     *
+     * @return TSProperty
+     */
+    protected function getTsPropObj($propName)
+    {
+        return array_change_key_case($this->tsProperty)[strtolower($propName)];
+    }
+
+    /**
+     * Get an associative array with all of the userParameters property names and values.
+     *
+     * @param string $userParameters
+     *
+     * @return void
+     */
+    protected function decodeUserParameters($userParameters)
+    {
+        $userParameters = bin2hex($userParameters);
+
+        // Save the 96-byte array of reserved data, so as to not ruin anything that may be stored there.
+        $this->preBinary = hex2bin(substr($userParameters, 0, 96));
+        // The signature is a 2-byte unicode character at the front
+        $this->signature = MbString::chr(hexdec(substr($userParameters, 96, 2)));
+        // This asserts the validity of the tsPropertyArray data. For some reason 'P' means valid...
+        if ($this->signature != self::VALID_SIGNATURE) {
+            throw new InvalidArgumentException('Invalid TSPropertyArray data');
+        }
+
+        // The property count is a 2-byte unsigned integer indicating the number of elements for the tsPropertyArray
+        // It starts at position 98. The actual variable data begins at position 100.
+        $length = $this->addTSPropData(substr($userParameters, 100), hexdec(substr($userParameters, 98, 2)));
+
+        // Reserved data length + (count and sig length == 4) + the added lengths of the TSPropertyArray
+        // This saves anything after that variable TSPropertyArray data, so as to not squash anything stored there
+        if (strlen($userParameters) > (96 + 4 + $length)) {
+            $this->postBinary = hex2bin(substr($userParameters, (96 + 4 + $length)));
+        }
+    }
+
+    /**
+     * Given the start of TSPropertyArray hex data, and the count for the number
+     * of TSProperty structures in contains, parse and split out the
+     * individual TSProperty structures. Return the full length
+     * of the TSPropertyArray data.
+     *
+     * @param string $tsPropertyArray
+     * @param int    $tsPropCount
+     *
+     * @return int The length of the data in the TSPropertyArray
+     */
+    protected function addTSPropData($tsPropertyArray, $tsPropCount)
+    {
+        $length = 0;
+
+        for ($i = 0; $i < $tsPropCount; $i++) {
+            // Prop length = name length + value length + type length + the space for the length data.
+            $propLength = hexdec(substr($tsPropertyArray, $length, 2)) + (hexdec(substr($tsPropertyArray, $length + 2, 2)) * 3) + 6;
+
+            $tsProperty = new TSProperty(hex2bin(substr($tsPropertyArray, $length, $propLength)));
+
+            $this->tsProperty[$tsProperty->getName()] = $tsProperty;
+
+            $length += $propLength;
+        }
+
+        return $length;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/BatchModification.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/BatchModification.php
new file mode 100644
index 0000000..08ddca8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/BatchModification.php
@@ -0,0 +1,270 @@
+<?php
+
+namespace Adldap\Models;
+
+use InvalidArgumentException;
+
+/**
+ * Class BatchModification.
+ *
+ * A utility class to assist in the creation of LDAP
+ * batch modifications and ensure their validity.
+ */
+class BatchModification
+{
+    /**
+     * The array keys to be used in batch modifications.
+     */
+    const KEY_ATTRIB = 'attrib';
+    const KEY_MODTYPE = 'modtype';
+    const KEY_VALUES = 'values';
+
+    /**
+     * The original value of the attribute before modification.
+     *
+     * @var null
+     */
+    protected $original = null;
+
+    /**
+     * The attribute of the modification.
+     *
+     * @var int|string
+     */
+    protected $attribute;
+
+    /**
+     * The values of the modification.
+     *
+     * @var array
+     */
+    protected $values = [];
+
+    /**
+     * The modtype integer of the batch modification.
+     *
+     * @var int
+     */
+    protected $type;
+
+    /**
+     * Constructor.
+     *
+     * @param string|null     $attribute
+     * @param string|int|null $type
+     * @param array           $values
+     */
+    public function __construct($attribute = null, $type = null, $values = [])
+    {
+        $this->setAttribute($attribute)
+            ->setType($type)
+            ->setValues($values);
+    }
+
+    /**
+     * Sets the original value of the attribute before modification.
+     *
+     * @param mixed $original
+     *
+     * @return $this
+     */
+    public function setOriginal($original = null)
+    {
+        $this->original = $original;
+
+        return $this;
+    }
+
+    /**
+     * Returns the original value of the attribute before modification.
+     *
+     * @return mixed
+     */
+    public function getOriginal()
+    {
+        return $this->original;
+    }
+
+    /**
+     * Sets the attribute of the modification.
+     *
+     * @param string $attribute
+     *
+     * @return $this
+     */
+    public function setAttribute($attribute)
+    {
+        $this->attribute = $attribute;
+
+        return $this;
+    }
+
+    /**
+     * Returns the attribute of the modification.
+     *
+     * @return string
+     */
+    public function getAttribute()
+    {
+        return $this->attribute;
+    }
+
+    /**
+     * Sets the values of the modification.
+     *
+     * @param array $values
+     *
+     * @return $this
+     */
+    public function setValues(array $values = [])
+    {
+        $this->values = array_map(function ($value) {
+            // We need to make sure all values given to a batch modification are
+            // strings, otherwise we'll receive an LDAP exception when
+            // we try to process the modification.
+            return (string) $value;
+        }, $values);
+
+        return $this;
+    }
+
+    /**
+     * Returns the values of the modification.
+     *
+     * @return array
+     */
+    public function getValues()
+    {
+        return $this->values;
+    }
+
+    /**
+     * Sets the type of the modification.
+     *
+     * @param int|null $type
+     *
+     * @return $this
+     */
+    public function setType($type = null)
+    {
+        if (!is_null($type) && !$this->isValidType($type)) {
+            throw new InvalidArgumentException('Given batch modification type is invalid.');
+        }
+
+        $this->type = $type;
+
+        return $this;
+    }
+
+    /**
+     * Returns the type of the modification.
+     *
+     * @return int
+     */
+    public function getType()
+    {
+        return $this->type;
+    }
+
+    /**
+     * Determines if the batch modification
+     * is valid in its current state.
+     *
+     * @return bool
+     */
+    public function isValid()
+    {
+        return !is_null($this->get());
+    }
+
+    /**
+     * Builds the type of modification automatically
+     * based on the current and original values.
+     *
+     * @return $this
+     */
+    public function build()
+    {
+        $filtered = array_diff(
+            array_map('trim', $this->values),
+            ['']
+        );
+
+        if (is_null($this->original)) {
+            // If the original value is null, we'll assume
+            // that the attribute doesn't exist yet.
+            if (!empty($filtered)) {
+                // If the filtered array is not empty, we can
+                // assume we're looking to add values
+                // to the current attribute.
+                $this->setType(LDAP_MODIFY_BATCH_ADD);
+            }
+
+            // If the filtered array is empty and there is no original
+            // value, then we can ignore this attribute since
+            // we can't push null values to the server.
+        } else {
+            if (empty($filtered)) {
+                // If there's an original value and the array is
+                // empty then we can assume we are looking
+                // to completely remove all values
+                // of the current attribute.
+                $this->setType(LDAP_MODIFY_BATCH_REMOVE_ALL);
+            } else {
+                // If the array isn't empty then we can assume
+                // we're looking to replace all attributes.
+                $this->setType(LDAP_MODIFY_BATCH_REPLACE);
+            }
+        }
+
+        return $this;
+    }
+
+    /**
+     * Returns the built batch modification array.
+     *
+     * @return array|null
+     */
+    public function get()
+    {
+        switch ($this->type) {
+            case LDAP_MODIFY_BATCH_REMOVE_ALL:
+                // A values key cannot be provided when
+                // a remove all type is selected.
+                return [
+                    static::KEY_ATTRIB  => $this->attribute,
+                    static::KEY_MODTYPE => $this->type,
+                ];
+            case LDAP_MODIFY_BATCH_REMOVE:
+                // Fallthrough.
+            case LDAP_MODIFY_BATCH_ADD:
+                // Fallthrough.
+            case LDAP_MODIFY_BATCH_REPLACE:
+                return [
+                    static::KEY_ATTRIB  => $this->attribute,
+                    static::KEY_MODTYPE => $this->type,
+                    static::KEY_VALUES  => $this->values,
+                ];
+            default:
+                // If the modtype isn't recognized, we'll return null.
+                return;
+        }
+    }
+
+    /**
+     * Determines if the given modtype is valid.
+     *
+     * @param int $type
+     *
+     * @return bool
+     */
+    protected function isValidType($type)
+    {
+        return in_array($type, [
+            LDAP_MODIFY_BATCH_REMOVE_ALL,
+            LDAP_MODIFY_BATCH_REMOVE,
+            LDAP_MODIFY_BATCH_REPLACE,
+            LDAP_MODIFY_BATCH_ADD,
+        ]);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Computer.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Computer.php
new file mode 100644
index 0000000..e00f259
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Computer.php
@@ -0,0 +1,87 @@
+<?php
+
+namespace Adldap\Models;
+
+/**
+ * Class Computer.
+ *
+ * Represents an LDAP computer / server.
+ */
+class Computer extends Entry
+{
+    use Concerns\HasMemberOf;
+    use Concerns\HasDescription;
+    use Concerns\HasLastLogonAndLogOff;
+    use Concerns\HasUserAccountControl;
+    use Concerns\HasCriticalSystemObject;
+
+    /**
+     * Returns the computers operating system.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679076(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getOperatingSystem()
+    {
+        return $this->getFirstAttribute($this->schema->operatingSystem());
+    }
+
+    /**
+     * Returns the computers operating system version.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679079(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getOperatingSystemVersion()
+    {
+        return $this->getFirstAttribute($this->schema->operatingSystemVersion());
+    }
+
+    /**
+     * Returns the computers operating system service pack.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679078(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getOperatingSystemServicePack()
+    {
+        return $this->getFirstAttribute($this->schema->operatingSystemServicePack());
+    }
+
+    /**
+     * Returns the computers DNS host name.
+     *
+     * @return string
+     */
+    public function getDnsHostName()
+    {
+        return $this->getFirstAttribute($this->schema->dnsHostName());
+    }
+
+    /**
+     * Returns the computers bad password time.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675243(v=vs.85).aspx
+     *
+     * @return int
+     */
+    public function getBadPasswordTime()
+    {
+        return $this->getFirstAttribute($this->schema->badPasswordTime());
+    }
+
+    /**
+     * Returns the computers account expiry date.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675098(v=vs.85).aspx
+     *
+     * @return int
+     */
+    public function getAccountExpiry()
+    {
+        return $this->getFirstAttribute($this->schema->accountExpires());
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasAttributes.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasAttributes.php
new file mode 100644
index 0000000..2235bbe
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasAttributes.php
@@ -0,0 +1,345 @@
+<?php
+
+namespace Adldap\Models\Concerns;
+
+use Illuminate\Support\Arr;
+
+trait HasAttributes
+{
+    /**
+     * The default output date format for all time related methods.
+     *
+     * Default format is suited for MySQL timestamps.
+     *
+     * @var string
+     */
+    public $dateFormat = 'Y-m-d H:i:s';
+
+    /**
+     * The format that is used to convert timestamps to unix timestamps.
+     *
+     * Currently set for compatibility with Active Directory.
+     *
+     * @var string
+     */
+    protected $timestampFormat = 'YmdHis.0Z';
+
+    /**
+     * The models attributes.
+     *
+     * @var array
+     */
+    protected $attributes = [];
+
+    /**
+     * The models original attributes.
+     *
+     * @var array
+     */
+    protected $original = [];
+
+    /**
+     * Dynamically retrieve attributes on the object.
+     *
+     * @param mixed $key
+     *
+     * @return bool
+     */
+    public function __get($key)
+    {
+        return $this->getAttribute($key);
+    }
+
+    /**
+     * Dynamically set attributes on the object.
+     *
+     * @param mixed $key
+     * @param mixed $value
+     *
+     * @return $this
+     */
+    public function __set($key, $value)
+    {
+        return $this->setAttribute($key, $value);
+    }
+
+    /**
+     * Synchronizes the models original attributes
+     * with the model's current attributes.
+     *
+     * @return $this
+     */
+    public function syncOriginal()
+    {
+        $this->original = $this->attributes;
+
+        return $this;
+    }
+
+    /**
+     * Returns the models attribute with the specified key.
+     *
+     * If a sub-key is specified, it will try and
+     * retrieve it from the parent keys array.
+     *
+     * @param int|string $key
+     * @param int|string $subKey
+     *
+     * @return mixed
+     */
+    public function getAttribute($key, $subKey = null)
+    {
+        if (!$key) {
+            return;
+        }
+
+        // We'll normalize the given key to prevent case sensitivity issues.
+        $key = $this->normalizeAttributeKey($key);
+
+        if (is_null($subKey) && $this->hasAttribute($key)) {
+            return $this->attributes[$key];
+        } elseif ($this->hasAttribute($key, $subKey)) {
+            return $this->attributes[$key][$subKey];
+        }
+    }
+
+    /**
+     * Returns the first attribute by the specified key.
+     *
+     * @param string $key
+     *
+     * @return mixed
+     */
+    public function getFirstAttribute($key)
+    {
+        return $this->getAttribute($key, 0);
+    }
+
+    /**
+     * Returns all of the models attributes.
+     *
+     * @return array
+     */
+    public function getAttributes()
+    {
+        return $this->attributes;
+    }
+
+    /**
+     * Fills the entry with the supplied attributes.
+     *
+     * @param array $attributes
+     *
+     * @return $this
+     */
+    public function fill(array $attributes = [])
+    {
+        foreach ($attributes as $key => $value) {
+            $this->setAttribute($key, $value);
+        }
+
+        return $this;
+    }
+
+    /**
+     * Sets an attributes value by the specified key and sub-key.
+     *
+     * @param int|string $key
+     * @param mixed      $value
+     * @param int|string $subKey
+     *
+     * @return $this
+     */
+    public function setAttribute($key, $value, $subKey = null)
+    {
+        // Normalize key.
+        $key = $this->normalizeAttributeKey($key);
+
+        // If the key is equal to 'dn', we'll automatically
+        // change it to the full attribute name.
+        $key = ($key == 'dn' ? $this->schema->distinguishedName() : $key);
+
+        if (is_null($subKey)) {
+            // We need to ensure all attributes are set as arrays so all
+            // of our model methods retrieve attributes correctly.
+            $this->attributes[$key] = is_array($value) ? $value : [$value];
+        } else {
+            $this->attributes[$key][$subKey] = $value;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Sets the first attributes value by the specified key.
+     *
+     * @param int|string $key
+     * @param mixed      $value
+     *
+     * @return $this
+     */
+    public function setFirstAttribute($key, $value)
+    {
+        return $this->setAttribute($key, $value, 0);
+    }
+
+    /**
+     * Sets the attributes property.
+     *
+     * Used when constructing an existing LDAP record.
+     *
+     * @param array $attributes
+     *
+     * @return $this
+     */
+    public function setRawAttributes(array $attributes = [])
+    {
+        // We'll filter out those annoying 'count' keys returned with LDAP results,
+        // and lowercase all root array keys to prevent any casing issues.
+        $this->attributes = array_change_key_case($this->filterRawAttributes($attributes), CASE_LOWER);
+
+        // We'll pull out the distinguished name from our raw attributes
+        // and set it into our attributes array with the full attribute
+        // definition. This allows us to normalize distinguished
+        // names across different LDAP variants.
+        if ($dn = Arr::get($attributes, 'dn')) {
+            // In some LDAP variants, the distinguished
+            // name is returned as an array.
+            if (is_array($dn)) {
+                $dn = Arr::first($dn);
+            }
+
+            $this->setDistinguishedName($dn);
+        }
+
+        $this->syncOriginal();
+
+        // Set exists to true since raw attributes are only
+        // set in the case of attributes being loaded by
+        // query results.
+        $this->exists = true;
+
+        return $this;
+    }
+
+    /**
+     * Filters the count key recursively from raw LDAP attributes.
+     *
+     * @param array        $attributes
+     * @param array|string $keys
+     *
+     * @return array
+     */
+    public function filterRawAttributes(array $attributes = [], $keys = ['count', 'dn'])
+    {
+        $attributes = Arr::except($attributes, $keys);
+
+        array_walk($attributes, function (&$value) use ($keys) {
+            $value = is_array($value) ?
+                $this->filterRawAttributes($value, $keys) :
+                $value;
+        });
+
+        return $attributes;
+    }
+
+    /**
+     * Returns true / false if the specified attribute
+     * exists in the attributes array.
+     *
+     * @param int|string $key
+     * @param int|string $subKey
+     *
+     * @return bool
+     */
+    public function hasAttribute($key, $subKey = null)
+    {
+        // Normalize key.
+        $key = $this->normalizeAttributeKey($key);
+
+        if (is_null($subKey)) {
+            return Arr::has($this->attributes, $key);
+        }
+
+        return Arr::has($this->attributes, "$key.$subKey");
+    }
+
+    /**
+     * Returns the number of attributes inside
+     * the attributes property.
+     *
+     * @return int
+     */
+    public function countAttributes()
+    {
+        return count($this->getAttributes());
+    }
+
+    /**
+     * Returns the models original attributes.
+     *
+     * @return array
+     */
+    public function getOriginal()
+    {
+        return $this->original;
+    }
+
+    /**
+     * Get the attributes that have been changed since last sync.
+     *
+     * @return array
+     */
+    public function getDirty()
+    {
+        $dirty = [];
+
+        foreach ($this->attributes as $key => $value) {
+            if (!$this->originalIsEquivalent($key)) {
+                // We need to reset the array's indices using array_values due to
+                // LDAP requiring consecutive indices (0, 1, 2 etc.)
+                $dirty[$key] = array_values($value);
+            }
+        }
+
+        return $dirty;
+    }
+
+    /**
+     * Returns a normalized attribute key.
+     *
+     * @param string $key
+     *
+     * @return string
+     */
+    protected function normalizeAttributeKey($key)
+    {
+        return strtolower($key);
+    }
+
+    /**
+     * Determine if the new and old values for a given key are equivalent.
+     *
+     * @param string $key
+     *
+     * @return bool
+     */
+    protected function originalIsEquivalent($key)
+    {
+        if (!array_key_exists($key, $this->original)) {
+            return false;
+        }
+
+        $current = $this->attributes[$key];
+
+        $original = $this->original[$key];
+
+        if ($current === $original) {
+            return true;
+        }
+
+        return  is_numeric($current) &&
+                is_numeric($original) &&
+                strcmp((string) $current, (string) $original) === 0;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasCriticalSystemObject.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasCriticalSystemObject.php
new file mode 100644
index 0000000..e85cac1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasCriticalSystemObject.php
@@ -0,0 +1,18 @@
+<?php
+
+namespace Adldap\Models\Concerns;
+
+trait HasCriticalSystemObject
+{
+    /**
+     * Returns true / false if the entry is a critical system object.
+     *
+     * @return null|bool
+     */
+    public function isCriticalSystemObject()
+    {
+        $attribute = $this->getFirstAttribute($this->schema->isCriticalSystemObject());
+
+        return $this->convertStringToBool($attribute);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasDescription.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasDescription.php
new file mode 100644
index 0000000..dfc05ed
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasDescription.php
@@ -0,0 +1,30 @@
+<?php
+
+namespace Adldap\Models\Concerns;
+
+trait HasDescription
+{
+    /**
+     * Returns the models's description.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675492(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getDescription()
+    {
+        return $this->getFirstAttribute($this->schema->description());
+    }
+
+    /**
+     * Sets the models's description.
+     *
+     * @param string $description
+     *
+     * @return $this
+     */
+    public function setDescription($description)
+    {
+        return $this->setFirstAttribute($this->schema->description(), $description);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasEvents.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasEvents.php
new file mode 100644
index 0000000..37abb81
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasEvents.php
@@ -0,0 +1,21 @@
+<?php
+
+namespace Adldap\Models\Concerns;
+
+use Adldap\Adldap;
+use Adldap\Models\Events\Event;
+
+trait HasEvents
+{
+    /**
+     * Fires the specified model event.
+     *
+     * @param Event $event
+     *
+     * @return mixed
+     */
+    protected function fireModelEvent(Event $event)
+    {
+        return Adldap::getEventDispatcher()->fire($event);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasLastLogonAndLogOff.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasLastLogonAndLogOff.php
new file mode 100644
index 0000000..3aee2a5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasLastLogonAndLogOff.php
@@ -0,0 +1,42 @@
+<?php
+
+namespace Adldap\Models\Concerns;
+
+trait HasLastLogonAndLogOff
+{
+    /**
+     * Returns the models's last log off date.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676822(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getLastLogOff()
+    {
+        return $this->getFirstAttribute($this->schema->lastLogOff());
+    }
+
+    /**
+     * Returns the models's last log on date.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676823(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getLastLogon()
+    {
+        return $this->getFirstAttribute($this->schema->lastLogOn());
+    }
+
+    /**
+     * Returns the models's last log on timestamp.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676824(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getLastLogonTimestamp()
+    {
+        return $this->getFirstAttribute($this->schema->lastLogOnTimestamp());
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasMemberOf.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasMemberOf.php
new file mode 100644
index 0000000..3c1b85e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasMemberOf.php
@@ -0,0 +1,260 @@
+<?php
+
+namespace Adldap\Models\Concerns;
+
+use Adldap\Utilities;
+use Adldap\Models\User;
+use Adldap\Models\Group;
+use Adldap\Query\Collection;
+
+trait HasMemberOf
+{
+    /**
+     * Returns an array of distinguished names of groups that the current model belongs to.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms677099(v=vs.85).aspx
+     *
+     * @return array
+     */
+    public function getMemberOf()
+    {
+        $dns = $this->getAttribute($this->schema->memberOf());
+
+        // Normalize returned distinguished names if the attribute is null.
+        return is_array($dns) ? $dns : [];
+    }
+
+    /**
+     * Adds the current model to the specified group.
+     *
+     * @param string|Group $group
+     *
+     * @return bool
+     */
+    public function addGroup($group)
+    {
+        if (is_string($group)) {
+            // If the group is a string, we'll assume the dev is passing
+            // in a DN string of the group. We'll try to locate it.
+            $group = $this->query->newInstance()->findByDn($group);
+        }
+
+        if ($group instanceof Group) {
+            // If the group is Group model instance, we can
+            // add the current models DN to the group.
+            return $group->addMember($this->getDn());
+        }
+
+        return false;
+    }
+
+    /**
+     * Removes the current model from the specified group.
+     *
+     * @param string|Group $group
+     *
+     * @return bool
+     */
+    public function removeGroup($group)
+    {
+        if (is_string($group)) {
+            // If the group is a string, we'll assume the dev is passing
+            // in a DN string of the group. We'll try to locate it.
+            $group = $this->query->newInstance()->findByDn($group);
+        }
+
+        if ($group instanceof Group) {
+            // If the group is Group model instance, we can
+            // remove the current models DN from the group.
+            return $group->removeMember($this->getDn());
+        }
+
+        return false;
+    }
+
+    /**
+     * Removes the current model from all groups.
+     *
+     * @return array The group distinguished names that were successfully removed
+     */
+    public function removeAllGroups()
+    {
+        $removed = [];
+
+        foreach ($this->getMemberOf() as $group) {
+            if ($this->removeGroup($group)) {
+                $removed[] = $group;
+            }
+        }
+
+        return $removed;
+    }
+
+    /**
+     * Returns the models groups that it is apart of.
+     *
+     * If a recursive option is given, groups of groups
+     * are retrieved and then merged with
+     * the resulting collection.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms677099(v=vs.85).aspx
+     *
+     * @param array $fields
+     * @param bool  $recursive
+     * @param array $visited
+     *
+     * @return Collection
+     */
+    public function getGroups(array $fields = ['*'], $recursive = false, array $visited = [])
+    {
+        if (!in_array($this->schema->memberOf(), $fields)) {
+            // We want to make sure that we always select the memberof
+            // field in case developers want recursive members.
+            $fields = array_merge($fields, [$this->schema->memberOf()]);
+        }
+
+        $groups = $this->getGroupsByNames($this->getMemberOf(), $fields);
+
+        // We need to check if we're working with a User model. Only users
+        // contain a primary group. If we are, we'll merge the users
+        // primary group into the resulting collection.
+        if ($this instanceof User && $primary = $this->getPrimaryGroup()) {
+            $groups->push($primary);
+        }
+
+        // If recursive results are requested, we'll ask each group
+        // for their groups, and merge the resulting collection.
+        if ($recursive) {
+            /** @var Group $group */
+            foreach ($groups as $group) {
+                // We need to validate that we haven't already queried
+                // for this group's members so we don't allow
+                // infinite recursion in case of circular
+                // group dependencies in LDAP.
+                if (!in_array($group->getDn(), $visited)) {
+                    $visited[] = $group->getDn();
+
+                    $members = $group->getGroups($fields, $recursive, $visited);
+
+                    /** @var Group $member */
+                    foreach ($members as $member) {
+                        $visited[] = $member->getDn();
+                    }
+
+                    $groups = $groups->merge($members);
+                }
+            }
+        }
+
+        return $groups;
+    }
+
+    /**
+     * Returns the models groups names in a single dimension array.
+     *
+     * If a recursive option is given, groups of groups
+     * are retrieved and then merged with
+     * the resulting collection.
+     *
+     * @param bool $recursive
+     *
+     * @return array
+     */
+    public function getGroupNames($recursive = false)
+    {
+        $fields = [$this->schema->commonName(), $this->schema->memberOf()];
+
+        $names = $this->getGroups($fields, $recursive)->map(function (Group $group) {
+            return $group->getCommonName();
+        })->toArray();
+
+        return array_unique($names);
+    }
+
+    /**
+     * Determine if the current model is a member of the specified group(s).
+     *
+     * @param mixed $group
+     * @param bool  $recursive
+     *
+     * @return bool
+     */
+    public function inGroup($group, $recursive = false)
+    {
+        $memberOf = $this->getGroups(['cn'], $recursive);
+
+        if ($group instanceof Collection) {
+            // If we've been given a collection then we'll convert
+            // it to an array to normalize the value.
+            $group = $group->toArray();
+        }
+
+        $groups = is_array($group) ? $group : [$group];
+
+        foreach ($groups as $group) {
+            // We need to iterate through each given group that the
+            // model must be apart of, then go through the models
+            // actual groups and perform validation.
+            $exists = $memberOf->filter(function (Group $parent) use ($group) {
+                return $this->groupIsParent($group, $parent);
+            })->count() !== 0;
+
+            if (!$exists) {
+                // If the current group isn't at all contained
+                // in the memberOf collection, we'll
+                // return false here.
+                return false;
+            }
+        }
+
+        return true;
+    }
+
+    /**
+     * Retrieves groups by their distinguished name.
+     *
+     * @param array $dns
+     * @param array $fields
+     *
+     * @return Collection
+     */
+    protected function getGroupsByNames(array $dns = [], $fields = [])
+    {
+        $query = $this->query->newInstance();
+
+        return $query->newCollection($dns)->map(function ($dn) use ($query, $fields) {
+            return $query->select($fields)->clearFilters()->findByDn($dn);
+        })->filter(function ($group) {
+            return $group instanceof Group;
+        });
+    }
+
+    /**
+     * Validates if the specified group is the given parent instance.
+     *
+     * @param Group|string $group
+     * @param Group        $parent
+     *
+     * @return bool
+     */
+    protected function groupIsParent($group, Group $parent)
+    {
+        if ($group instanceof Group) {
+            // We've been given a group instance, we'll compare their DNs.
+            return $parent->getDn() === $group->getDn();
+        }
+
+        if (Utilities::explodeDn($group)) {
+            // We've been given a DN, we'll compare it to the parents.
+            return $parent->getDn() === $group;
+        }
+
+        if (!empty($group)) {
+            // We've been given just a string, we'll
+            // compare it to the parents name.
+            return $parent->getCommonName() === $group;
+        }
+
+        return false;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasUserAccountControl.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasUserAccountControl.php
new file mode 100644
index 0000000..857378b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasUserAccountControl.php
@@ -0,0 +1,60 @@
+<?php
+
+namespace Adldap\Models\Concerns;
+
+use Adldap\Models\Attributes\AccountControl;
+
+trait HasUserAccountControl
+{
+    /**
+     * Returns the users user account control integer.
+     *
+     * @return string
+     */
+    public function getUserAccountControl()
+    {
+        return $this->getFirstAttribute($this->schema->userAccountControl());
+    }
+
+    /**
+     * Returns the users user account control as an AccountControl object.
+     *
+     * @return AccountControl
+     */
+    public function getUserAccountControlObject()
+    {
+        return new AccountControl($this->getUserAccountControl());
+    }
+
+    /**
+     * Sets the users account control property.
+     *
+     * @param int|string|AccountControl $accountControl
+     *
+     * @return $this
+     */
+    public function setUserAccountControl($accountControl)
+    {
+        return $this->setAttribute($this->schema->userAccountControl(), (string) $accountControl);
+    }
+
+    /**
+     * Returns if the user is disabled.
+     *
+     * @return bool
+     */
+    public function isDisabled()
+    {
+        return ($this->getUserAccountControl() & AccountControl::ACCOUNTDISABLE) === AccountControl::ACCOUNTDISABLE;
+    }
+
+    /**
+     * Returns if the user is enabled.
+     *
+     * @return bool
+     */
+    public function isEnabled()
+    {
+        return $this->getUserAccountControl() === null ? false : !$this->isDisabled();
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasUserProperties.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasUserProperties.php
new file mode 100644
index 0000000..0d1c541
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Concerns/HasUserProperties.php
@@ -0,0 +1,453 @@
+<?php
+
+namespace Adldap\Models\Concerns;
+
+trait HasUserProperties
+{
+    /**
+     * Returns the users country.
+     *
+     * @return string|null
+     */
+    public function getCountry()
+    {
+        return $this->getFirstAttribute($this->schema->country());
+    }
+
+    /**
+     * Sets the users country.
+     *
+     * @param string $country
+     *
+     * @return $this
+     */
+    public function setCountry($country)
+    {
+        return $this->setFirstAttribute($this->schema->country(), $country);
+    }
+
+    /**
+     * Returns the users department.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675490(v=vs.85).aspx
+     *
+     * @return string|null
+     */
+    public function getDepartment()
+    {
+        return $this->getFirstAttribute($this->schema->department());
+    }
+
+    /**
+     * Sets the users department.
+     *
+     * @param string $department
+     *
+     * @return $this
+     */
+    public function setDepartment($department)
+    {
+        return $this->setFirstAttribute($this->schema->department(), $department);
+    }
+
+    /**
+     * Returns the users email address.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676855(v=vs.85).aspx
+     *
+     * @return string|null
+     */
+    public function getEmail()
+    {
+        return $this->getFirstAttribute($this->schema->email());
+    }
+
+    /**
+     * Sets the users email.
+     *
+     * Keep in mind this will remove all other
+     * email addresses the user currently has.
+     *
+     * @param string $email
+     *
+     * @return $this
+     */
+    public function setEmail($email)
+    {
+        return $this->setFirstAttribute($this->schema->email(), $email);
+    }
+
+    /**
+     * Returns the users facsimile number.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675675(v=vs.85).aspx
+     *
+     * @return string|null
+     */
+    public function getFacsimileNumber()
+    {
+        return $this->getFirstAttribute($this->schema->facsimile());
+    }
+
+    /**
+     * Sets the users facsimile number.
+     *
+     * @param string $number
+     *
+     * @return $this
+     */
+    public function setFacsimileNumber($number)
+    {
+        return $this->setFirstAttribute($this->schema->facsimile(), $number);
+    }
+
+    /**
+     * Returns the users first name.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675719(v=vs.85).aspx
+     *
+     * @return string|null
+     */
+    public function getFirstName()
+    {
+        return $this->getFirstAttribute($this->schema->firstName());
+    }
+
+    /**
+     * Sets the users first name.
+     *
+     * @param string $firstName
+     *
+     * @return $this
+     */
+    public function setFirstName($firstName)
+    {
+        return $this->setFirstAttribute($this->schema->firstName(), $firstName);
+    }
+
+    /**
+     * Returns the users initials.
+     *
+     * @return string|null
+     */
+    public function getInitials()
+    {
+        return $this->getFirstAttribute($this->schema->initials());
+    }
+
+    /**
+     * Sets the users initials.
+     *
+     * @param string $initials
+     *
+     * @return $this
+     */
+    public function setInitials($initials)
+    {
+        return $this->setFirstAttribute($this->schema->initials(), $initials);
+    }
+
+    /**
+     * Returns the users IP Phone.
+     *
+     * @return string|null
+     */
+    public function getIpPhone()
+    {
+        return $this->getFirstAttribute($this->schema->ipPhone());
+    }
+
+    /**
+     * Sets the users IP phone.
+     *
+     * @param string $ip
+     *
+     * @return $this
+     */
+    public function setIpPhone($ip)
+    {
+        return $this->setFirstAttribute($this->schema->ipPhone(), $ip);
+    }
+
+    /**
+     * Returns the users last name.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679872(v=vs.85).aspx
+     *
+     * @return string|null
+     */
+    public function getLastName()
+    {
+        return $this->getFirstAttribute($this->schema->lastName());
+    }
+
+    /**
+     * Sets the users last name.
+     *
+     * @param string $lastName
+     *
+     * @return $this
+     */
+    public function setLastName($lastName)
+    {
+        return $this->setFirstAttribute($this->schema->lastName(), $lastName);
+    }
+
+    /**
+     * Returns the users postal code.
+     *
+     * @return string|null
+     */
+    public function getPostalCode()
+    {
+        return $this->getFirstAttribute($this->schema->postalCode());
+    }
+
+    /**
+     * Sets the users postal code.
+     *
+     * @param string $postalCode
+     *
+     * @return $this
+     */
+    public function setPostalCode($postalCode)
+    {
+        return $this->setFirstAttribute($this->schema->postalCode(), $postalCode);
+    }
+
+    /**
+     * Get the users post office box.
+     *
+     * @return string|null
+     */
+    public function getPostOfficeBox()
+    {
+        return $this->getFirstAttribute($this->schema->postOfficeBox());
+    }
+
+    /**
+     * Sets the users post office box.
+     *
+     * @param string|int $box
+     *
+     * @return $this
+     */
+    public function setPostOfficeBox($box)
+    {
+        return $this->setFirstAttribute($this->schema->postOfficeBox(), $box);
+    }
+
+    /**
+     * Sets the users proxy addresses.
+     *
+     * This will remove all proxy addresses on the user and insert the specified addresses.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679424(v=vs.85).aspx
+     *
+     * @param array $addresses
+     *
+     * @return $this
+     */
+    public function setProxyAddresses(array $addresses = [])
+    {
+        return $this->setAttribute($this->schema->proxyAddresses(), $addresses);
+    }
+
+    /**
+     * Add's a single proxy address to the user.
+     *
+     * @param string $address
+     *
+     * @return $this
+     */
+    public function addProxyAddress($address)
+    {
+        $addresses = $this->getProxyAddresses();
+
+        $addresses[] = $address;
+
+        return $this->setAttribute($this->schema->proxyAddresses(), $addresses);
+    }
+
+    /**
+     * Returns the users proxy addresses.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679424(v=vs.85).aspx
+     *
+     * @return array
+     */
+    public function getProxyAddresses()
+    {
+        return $this->getAttribute($this->schema->proxyAddresses()) ?? [];
+    }
+
+    /**
+     * Returns the users street address.
+     *
+     * @return string|null
+     */
+    public function getStreetAddress()
+    {
+        return $this->getFirstAttribute($this->schema->streetAddress());
+    }
+
+    /**
+     * Sets the users street address.
+     *
+     * @param string $address
+     *
+     * @return $this
+     */
+    public function setStreetAddress($address)
+    {
+        return $this->setFirstAttribute($this->schema->streetAddress(), $address);
+    }
+
+    /**
+     * Returns the users title.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms680037(v=vs.85).aspx
+     *
+     * @return string|null
+     */
+    public function getTitle()
+    {
+        return $this->getFirstAttribute($this->schema->title());
+    }
+
+    /**
+     * Sets the users title.
+     *
+     * @param string $title
+     *
+     * @return $this
+     */
+    public function setTitle($title)
+    {
+        return $this->setFirstAttribute($this->schema->title(), $title);
+    }
+
+    /**
+     * Returns the users telephone number.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms680027(v=vs.85).aspx
+     *
+     * @return string|null
+     */
+    public function getTelephoneNumber()
+    {
+        return $this->getFirstAttribute($this->schema->telephone());
+    }
+
+    /**
+     * Sets the users telephone number.
+     *
+     * @param string $number
+     *
+     * @return $this
+     */
+    public function setTelephoneNumber($number)
+    {
+        return $this->setFirstAttribute($this->schema->telephone(), $number);
+    }
+
+    /**
+     * Returns the users primary mobile phone number.
+     *
+     * @return string|null
+     */
+    public function getMobileNumber()
+    {
+        return $this->getFirstAttribute($this->schema->mobile());
+    }
+
+    /**
+     * Sets the users primary mobile phone number.
+     *
+     * @param string $number
+     *
+     * @return $this
+     */
+    public function setMobileNumber($number)
+    {
+        return $this->setFirstAttribute($this->schema->mobile(), $number);
+    }
+
+    /**
+     * Returns the users secondary (other) mobile phone number.
+     *
+     * @return string|null
+     */
+    public function getOtherMobileNumber()
+    {
+        return $this->getFirstAttribute($this->schema->otherMobile());
+    }
+
+    /**
+     * Sets the users  secondary (other) mobile phone number.
+     *
+     * @param string $number
+     *
+     * @return $this
+     */
+    public function setOtherMobileNumber($number)
+    {
+        return $this->setFirstAttribute($this->schema->otherMobile(), $number);
+    }
+
+    /**
+     * Returns the users other mailbox attribute.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679091(v=vs.85).aspx
+     *
+     * @return array
+     */
+    public function getOtherMailbox()
+    {
+        return $this->getAttribute($this->schema->otherMailbox());
+    }
+
+    /**
+     * Sets the users other mailboxes.
+     *
+     * @param array $otherMailbox
+     *
+     * @return $this
+     */
+    public function setOtherMailbox($otherMailbox = [])
+    {
+        return $this->setAttribute($this->schema->otherMailbox(), $otherMailbox);
+    }
+
+    /**
+     * Returns the distinguished name of the user who is the user's manager.
+     *
+     * @return string|null
+     */
+    public function getManager()
+    {
+        return $this->getFirstAttribute($this->schema->manager());
+    }
+
+    /**
+     * Sets the distinguished name of the user who is the user's manager.
+     *
+     * @param string $managerDn
+     *
+     * @return $this
+     */
+    public function setManager($managerDn)
+    {
+        return $this->setFirstAttribute($this->schema->manager(), $managerDn);
+    }
+
+    /**
+     * Returns the users mail nickname.
+     *
+     * @return string|null
+     */
+    public function getMailNickname()
+    {
+        return $this->getFirstAttribute($this->schema->emailNickname());
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Contact.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Contact.php
new file mode 100644
index 0000000..517a35b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Contact.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace Adldap\Models;
+
+/**
+ * Class Contact.
+ *
+ * Represents an LDAP contact.
+ */
+class Contact extends Entry
+{
+    use Concerns\HasMemberOf;
+    use Concerns\HasUserProperties;
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Container.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Container.php
new file mode 100644
index 0000000..faaf1a1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Container.php
@@ -0,0 +1,28 @@
+<?php
+
+namespace Adldap\Models;
+
+/**
+ * Class Container.
+ *
+ * Represents an LDAP container.
+ */
+class Container extends Entry
+{
+    use Concerns\HasDescription;
+    use Concerns\HasCriticalSystemObject;
+
+    /**
+     * Returns the containers system flags integer.
+     *
+     * An integer value that contains flags that define additional properties of the class.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms680022(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getSystemFlags()
+    {
+        return $this->getFirstAttribute($this->schema->systemFlags());
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Entry.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Entry.php
new file mode 100644
index 0000000..be6ef1d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Entry.php
@@ -0,0 +1,13 @@
+<?php
+
+namespace Adldap\Models;
+
+/**
+ * Class Entry.
+ *
+ * Represents an LDAP record that could not be identified as another type of model.
+ */
+class Entry extends Model
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Created.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Created.php
new file mode 100644
index 0000000..7e98bc1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Created.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Adldap\Models\Events;
+
+class Created extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Creating.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Creating.php
new file mode 100644
index 0000000..8482da8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Creating.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Adldap\Models\Events;
+
+class Creating extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Deleted.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Deleted.php
new file mode 100644
index 0000000..6cfd954
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Deleted.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Adldap\Models\Events;
+
+class Deleted extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Deleting.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Deleting.php
new file mode 100644
index 0000000..2718376
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Deleting.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Adldap\Models\Events;
+
+class Deleting extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Event.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Event.php
new file mode 100644
index 0000000..821e391
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Event.php
@@ -0,0 +1,35 @@
+<?php
+
+namespace Adldap\Models\Events;
+
+use Adldap\Models\Model;
+
+abstract class Event
+{
+    /**
+     * The model that the event is being triggered on.
+     *
+     * @var Model
+     */
+    protected $model;
+
+    /**
+     * Constructor.
+     *
+     * @param Model $model
+     */
+    public function __construct(Model $model)
+    {
+        $this->model = $model;
+    }
+
+    /**
+     * Returns the model that generated the event.
+     *
+     * @return Model
+     */
+    public function getModel()
+    {
+        return $this->model;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Saved.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Saved.php
new file mode 100644
index 0000000..f775e2e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Saved.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Adldap\Models\Events;
+
+class Saved extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Saving.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Saving.php
new file mode 100644
index 0000000..b187294
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Saving.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Adldap\Models\Events;
+
+class Saving extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Updated.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Updated.php
new file mode 100644
index 0000000..ce0721f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Updated.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Adldap\Models\Events;
+
+class Updated extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Updating.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Updating.php
new file mode 100644
index 0000000..4f33e66
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Events/Updating.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Adldap\Models\Events;
+
+class Updating extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Factory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Factory.php
new file mode 100644
index 0000000..92ad91e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Factory.php
@@ -0,0 +1,209 @@
+<?php
+
+namespace Adldap\Models;
+
+use Adldap\Query\Builder;
+use Adldap\Schemas\ActiveDirectory;
+use Adldap\Schemas\SchemaInterface;
+
+/**
+ * Class Factory.
+ *
+ * Creates new LDAP models.
+ */
+class Factory
+{
+    /**
+     * The LDAP query builder.
+     *
+     * @var Builder
+     */
+    protected $query;
+
+    /**
+     * The LDAP schema.
+     *
+     * @var SchemaInterface
+     */
+    protected $schema;
+
+    /**
+     * Constructor.
+     *
+     * @param Builder $builder
+     */
+    public function __construct(Builder $builder)
+    {
+        $this->setQuery($builder)
+            ->setSchema($builder->getSchema());
+    }
+
+    /**
+     * Sets the current query builder.
+     *
+     * @param Builder $builder
+     *
+     * @return $this
+     */
+    public function setQuery(Builder $builder)
+    {
+        $this->query = $builder;
+
+        return $this;
+    }
+
+    /**
+     * Sets the current schema.
+     *
+     * If null is given, a default ActiveDirectory schema is set.
+     *
+     * @param SchemaInterface|null $schema
+     *
+     * @return $this
+     */
+    public function setSchema(SchemaInterface $schema = null)
+    {
+        $this->schema = $schema ?: new ActiveDirectory();
+
+        return $this;
+    }
+
+    /**
+     * Creates a new generic LDAP entry instance.
+     *
+     * @param array $attributes
+     *
+     * @return Entry
+     */
+    public function entry(array $attributes = [])
+    {
+        $model = $this->schema->entryModel();
+
+        return new $model($attributes, $this->query);
+    }
+
+    /**
+     * Creates a new user instance.
+     *
+     * @param array $attributes
+     *
+     * @return User
+     */
+    public function user(array $attributes = [])
+    {
+        $model = $this->schema->userModel();
+
+        return (new $model($attributes, $this->query))
+            ->setAttribute($this->schema->objectClass(), $this->schema->userObjectClasses());
+    }
+
+    /**
+     * Creates a new organizational unit instance.
+     *
+     * @param array $attributes
+     *
+     * @return OrganizationalUnit
+     */
+    public function ou(array $attributes = [])
+    {
+        $model = $this->schema->organizationalUnitModel();
+
+        return (new $model($attributes, $this->query))
+            ->setAttribute($this->schema->objectClass(), [
+                $this->schema->top(),
+                $this->schema->organizationalUnit(),
+            ]);
+    }
+
+    /**
+     * Creates a new organizational unit instance.
+     *
+     * @param array $attributes
+     *
+     * @return Organization
+     */
+    public function organization(array $attributes = [])
+    {
+        $model = $this->schema->organizationModel();
+
+        return (new $model($attributes, $this->query))
+            ->setAttribute($this->schema->objectClass(), [
+                $this->schema->top(),
+                $this->schema->organization(),
+            ]);
+    }
+
+    /**
+     * Creates a new group instance.
+     *
+     * @param array $attributes
+     *
+     * @return Group
+     */
+    public function group(array $attributes = [])
+    {
+        $model = $this->schema->groupModel();
+
+        return (new $model($attributes, $this->query))
+            ->setAttribute($this->schema->objectClass(), [
+                $this->schema->top(),
+                $this->schema->objectCategoryGroup(),
+            ]);
+    }
+
+    /**
+     * Creates a new organizational unit instance.
+     *
+     * @param array $attributes
+     *
+     * @return Container
+     */
+    public function container(array $attributes = [])
+    {
+        $model = $this->schema->containerModel();
+
+        return (new $model($attributes, $this->query))
+            ->setAttribute($this->schema->objectClass(), $this->schema->objectClassContainer());
+    }
+
+    /**
+     * Creates a new user instance as a contact.
+     *
+     * @param array $attributes
+     *
+     * @return User
+     */
+    public function contact(array $attributes = [])
+    {
+        $model = $this->schema->contactModel();
+
+        return (new $model($attributes, $this->query))
+            ->setAttribute($this->schema->objectClass(), [
+                $this->schema->top(),
+                $this->schema->person(),
+                $this->schema->organizationalPerson(),
+                $this->schema->contact(),
+            ]);
+    }
+
+    /**
+     * Creates a new computer instance.
+     *
+     * @param array $attributes
+     *
+     * @return Computer
+     */
+    public function computer(array $attributes = [])
+    {
+        $model = $this->schema->computerModel();
+
+        return (new $model($attributes, $this->query))
+            ->setAttribute($this->schema->objectClass(), [
+                $this->schema->top(),
+                $this->schema->person(),
+                $this->schema->organizationalPerson(),
+                $this->schema->user(),
+                $this->schema->computer(),
+            ]);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/ForeignSecurityPrincipal.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/ForeignSecurityPrincipal.php
new file mode 100644
index 0000000..b0d15d8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/ForeignSecurityPrincipal.php
@@ -0,0 +1,13 @@
+<?php
+
+namespace Adldap\Models;
+
+/**
+ * Class ForeignSecurityPrincipal.
+ *
+ * Represents an LDAP ForeignSecurityPrincipal.
+ */
+class ForeignSecurityPrincipal extends Entry
+{
+    use Concerns\HasMemberOf;
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Group.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Group.php
new file mode 100644
index 0000000..7a89457
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Group.php
@@ -0,0 +1,288 @@
+<?php
+
+namespace Adldap\Models;
+
+use Adldap\Utilities;
+use InvalidArgumentException;
+
+/**
+ * Class Group.
+ *
+ * Represents an LDAP group (security / distribution).
+ */
+class Group extends Entry
+{
+    use Concerns\HasMemberOf;
+    use Concerns\HasDescription;
+
+    /**
+     * Returns all users apart of the current group.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms677097(v=vs.85).aspx
+     *
+     * @return \Adldap\Query\Collection
+     */
+    public function getMembers()
+    {
+        $members = $this->getMembersFromAttribute($this->schema->member());
+
+        if (count($members) === 0) {
+            $members = $this->getPaginatedMembers();
+        }
+
+        return $this->newCollection($members);
+    }
+
+    /**
+     * Returns the group's member names only.
+     *
+     * @return array
+     */
+    public function getMemberNames()
+    {
+        $members = [];
+
+        $dns = $this->getAttribute($this->schema->member()) ?: [];
+
+        foreach ($dns as $dn) {
+            $exploded = Utilities::explodeDn($dn);
+
+            if (array_key_exists(0, $exploded)) {
+                $members[] = $exploded[0];
+            }
+        }
+
+        return $members;
+    }
+
+    /**
+     * Sets the groups members using an array of user DNs.
+     *
+     * @param array $entries
+     *
+     * @return $this
+     */
+    public function setMembers(array $entries)
+    {
+        return $this->setAttribute($this->schema->member(), $entries);
+    }
+
+    /**
+     * Adds multiple entries to the current group.
+     *
+     * @param array $members
+     *
+     * @return bool
+     */
+    public function addMembers(array $members)
+    {
+        $members = array_map(function ($member) {
+            return $member instanceof Model
+                ? $member->getDn()
+                : $member;
+        }, $members);
+
+        $mod = $this->newBatchModification(
+            $this->schema->member(),
+            LDAP_MODIFY_BATCH_ADD,
+            $members
+        );
+
+        return $this->addModification($mod)->save();
+    }
+
+    /**
+     * Adds an entry to the current group.
+     *
+     * @param string|Entry $member
+     *
+     * @throws InvalidArgumentException When the given entry is empty or contains no distinguished name.
+     *
+     * @return bool
+     */
+    public function addMember($member)
+    {
+        $member = ($member instanceof Model ? $member->getDn() : $member);
+
+        if (is_null($member)) {
+            throw new InvalidArgumentException(
+                'Cannot add member to group. The members distinguished name cannot be null.'
+            );
+        }
+
+        $mod = $this->newBatchModification(
+            $this->schema->member(),
+            LDAP_MODIFY_BATCH_ADD,
+            [$member]
+        );
+
+        return $this->addModification($mod)->save();
+    }
+
+    /**
+     * Removes an entry from the current group.
+     *
+     * @param string|Entry $member
+     *
+     * @throws InvalidArgumentException
+     *
+     * @return bool
+     */
+    public function removeMember($member)
+    {
+        $member = ($member instanceof Model ? $member->getDn() : $member);
+
+        if (is_null($member)) {
+            throw new InvalidArgumentException(
+                'Cannot remove member to group. The members distinguished name cannot be null.'
+            );
+        }
+
+        $mod = $this->newBatchModification(
+            $this->schema->member(),
+            LDAP_MODIFY_BATCH_REMOVE,
+            [$member]
+        );
+
+        return $this->addModification($mod)->save();
+    }
+
+    /**
+     * Removes all members from the current group.
+     *
+     * @return bool
+     */
+    public function removeMembers()
+    {
+        $mod = $this->newBatchModification(
+            $this->schema->member(),
+            LDAP_MODIFY_BATCH_REMOVE_ALL
+        );
+
+        return $this->addModification($mod)->save();
+    }
+
+    /**
+     * Returns the group type integer.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675935(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getGroupType()
+    {
+        return $this->getFirstAttribute($this->schema->groupType());
+    }
+
+    /**
+     * Retrieves group members by the specified model attribute.
+     *
+     * @param $attribute
+     *
+     * @return array
+     */
+    protected function getMembersFromAttribute($attribute)
+    {
+        $members = [];
+
+        $entries = $this->getAttribute($attribute) ?: [];
+
+        $query = $this->query->newInstance();
+
+        // Retrieving the member identifier to allow
+        // compatibility with LDAP variants.
+        $identifier = $this->schema->memberIdentifier();
+
+        foreach ($entries as $entry) {
+            // If our identifier is a distinguished name, then we need to
+            // use an alternate query method, as we can't locate records
+            // by distinguished names using an LDAP filter.
+            if ($identifier == 'dn' || $identifier == 'distinguishedname') {
+                $member = $query->findByDn($entry);
+            } else {
+                // We'll ensure we clear our filters when retrieving each member,
+                // so we can continue fetching the next one in line.
+                $member = $query->clearFilters()->findBy($identifier, $entry);
+            }
+
+            // We'll double check that we've received a model from
+            // our query before adding it into our results.
+            if ($member instanceof Model) {
+                $members[] = $member;
+            }
+        }
+
+        return $members;
+    }
+
+    /**
+     * Retrieves members that are contained in a member range.
+     *
+     * @return array
+     */
+    protected function getPaginatedMembers()
+    {
+        $members = [];
+
+        $keys = array_keys($this->attributes);
+
+        // We need to filter out the model attributes so
+        // we only retrieve the member range.
+        $attributes = array_values(array_filter($keys, function ($key) {
+            return strpos($key, 'member;range') !== false;
+        }));
+
+        // We'll grab the member range key so we can run a
+        // regex on it to determine the range.
+        $key = reset($attributes);
+
+        preg_match_all(
+            '/member;range\=([0-9]{1,4})-([0-9*]{1,4})/',
+            $key,
+            $matches
+        );
+
+        if ($key && count($matches) == 3) {
+            // Retrieve the ending range number.
+            $to = $matches[2][0];
+
+            // Retrieve the current groups members from the
+            // current range string (ex. 'member;0-50').
+            $members = $this->getMembersFromAttribute($key);
+
+            // If the query already included all member results (indicated
+            // by the '*'), then we can return here. Otherwise we need
+            // to continue on and retrieve the rest.
+            if ($to === '*') {
+                return $members;
+            }
+
+            // Determine the amount of members we're requesting per query.
+            $range = $to - $matches[1][0];
+
+            // Set our starting range to our last end range plus one.
+            $from = $to + 1;
+
+            // We'll determine the new end range by adding the
+            // total range to our new starting range.
+            $to = $from + $range;
+
+            // We'll need to query for the current model again but with
+            // a new range to retrieve the other members.
+            /** @var Group $group */
+            $group = $this->query->newInstance()->findByDn(
+                $this->getDn(),
+                [$this->query->getSchema()->memberRange($from, $to)]
+            );
+
+            // Finally, we'll merge our current members
+            // with the newly returned members.
+            $members = array_merge(
+                $members,
+                $group->getMembers()->toArray()
+            );
+        }
+
+        return $members;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Model.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Model.php
new file mode 100644
index 0000000..3bad2ea
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Model.php
@@ -0,0 +1,1266 @@
+<?php
+
+namespace Adldap\Models;
+
+use DateTime;
+use ArrayAccess;
+use Adldap\Utilities;
+use JsonSerializable;
+use Adldap\Query\Builder;
+use Illuminate\Support\Arr;
+use Adldap\Query\Collection;
+use InvalidArgumentException;
+use UnexpectedValueException;
+use Adldap\Models\Attributes\Sid;
+use Adldap\Models\Attributes\Guid;
+use Adldap\Schemas\SchemaInterface;
+use Adldap\Models\Attributes\MbString;
+use Adldap\Connections\ConnectionException;
+use Adldap\Models\Attributes\DistinguishedName;
+
+/**
+ * Class Model.
+ *
+ * Represents an LDAP record and provides the ability
+ * to modify / retrieve data from the record.
+ */
+abstract class Model implements ArrayAccess, JsonSerializable
+{
+    use Concerns\HasEvents;
+    use Concerns\HasAttributes;
+
+    /**
+     * Indicates if the model exists.
+     *
+     * @var bool
+     */
+    public $exists = false;
+
+    /**
+     * The current query builder instance.
+     *
+     * @var Builder
+     */
+    protected $query;
+
+    /**
+     * The current LDAP attribute schema.
+     *
+     * @var SchemaInterface
+     */
+    protected $schema;
+
+    /**
+     * Contains the models modifications.
+     *
+     * @var array
+     */
+    protected $modifications = [];
+
+    /**
+     * Constructor.
+     *
+     * @param array   $attributes
+     * @param Builder $builder
+     */
+    public function __construct(array $attributes, Builder $builder)
+    {
+        $this->setQuery($builder)
+            ->setSchema($builder->getSchema())
+            ->fill($attributes);
+    }
+
+    /**
+     * Returns the models distinguished name when the model is converted to a string.
+     *
+     * @return null|string
+     */
+    public function __toString()
+    {
+        return $this->getDn();
+    }
+
+    /**
+     * Sets the current query builder.
+     *
+     * @param Builder $builder
+     *
+     * @return $this
+     */
+    public function setQuery(Builder $builder)
+    {
+        $this->query = $builder;
+
+        return $this;
+    }
+
+    /**
+     * Returns the current query builder.
+     *
+     * @return Builder
+     */
+    public function getQuery()
+    {
+        return $this->query;
+    }
+
+    /**
+     * Returns a new query builder instance.
+     *
+     * @return Builder
+     */
+    public function newQuery()
+    {
+        return $this->query->newInstance();
+    }
+
+    /**
+     * Returns a new batch modification.
+     *
+     * @param string|null     $attribute
+     * @param string|int|null $type
+     * @param array           $values
+     *
+     * @return BatchModification
+     */
+    public function newBatchModification($attribute = null, $type = null, $values = [])
+    {
+        return new BatchModification($attribute, $type, $values);
+    }
+
+    /**
+     * Returns a new collection with the specified items.
+     *
+     * @param mixed $items
+     *
+     * @return Collection
+     */
+    public function newCollection($items = [])
+    {
+        return new Collection($items);
+    }
+
+    /**
+     * Sets the current model schema.
+     *
+     * @param SchemaInterface $schema
+     *
+     * @return $this
+     */
+    public function setSchema(SchemaInterface $schema)
+    {
+        $this->schema = $schema;
+
+        return $this;
+    }
+
+    /**
+     * Returns the current model schema.
+     *
+     * @return SchemaInterface
+     */
+    public function getSchema()
+    {
+        return $this->schema;
+    }
+
+    /**
+     * Determine if the given offset exists.
+     *
+     * @param string $offset
+     *
+     * @return bool
+     */
+    public function offsetExists($offset)
+    {
+        return !is_null($this->getAttribute($offset));
+    }
+
+    /**
+     * Get the value for a given offset.
+     *
+     * @param string $offset
+     *
+     * @return mixed
+     */
+    public function offsetGet($offset)
+    {
+        return $this->getAttribute($offset);
+    }
+
+    /**
+     * Set the value at the given offset.
+     *
+     * @param string $offset
+     * @param mixed  $value
+     *
+     * @return void
+     */
+    public function offsetSet($offset, $value)
+    {
+        $this->setAttribute($offset, $value);
+    }
+
+    /**
+     * Unset the value at the given offset.
+     *
+     * @param string $offset
+     *
+     * @return void
+     */
+    public function offsetUnset($offset)
+    {
+        unset($this->attributes[$offset]);
+    }
+
+    /**
+     * Determine if an attribute exists on the model.
+     *
+     * @param string $key
+     *
+     * @return bool
+     */
+    public function __isset($key)
+    {
+        return $this->offsetExists($key);
+    }
+
+    /**
+     * Convert the object into something JSON serializable.
+     *
+     * @return array
+     */
+    public function jsonSerialize()
+    {
+        $attributes = $this->getAttributes();
+
+        array_walk_recursive($attributes, function (&$val) {
+            if (MbString::isLoaded()) {
+                // If we're able to detect the attribute
+                // encoding, we'll encode only the
+                // attributes that need to be.
+                if (!MbString::isUtf8($val)) {
+                    $val = utf8_encode($val);
+                }
+            } else {
+                // If the mbstring extension is not loaded, we'll
+                // encode all attributes to make sure
+                // they are encoded properly.
+                $val = utf8_encode($val);
+            }
+        });
+
+        // We'll replace the binary GUID and SID with
+        // their string equivalents for convenience.
+        return array_replace($attributes, [
+            $this->schema->objectGuid() => $this->getConvertedGuid(),
+            $this->schema->objectSid()  => $this->getConvertedSid(),
+        ]);
+    }
+
+    /**
+     * Reload a fresh model instance from the directory.
+     *
+     * @return static|null
+     */
+    public function fresh()
+    {
+        $model = $this->query->newInstance()->findByDn($this->getDn());
+
+        return $model instanceof self ? $model : null;
+    }
+
+    /**
+     * Synchronizes the current models attributes with the directory values.
+     *
+     * @return bool
+     */
+    public function syncRaw()
+    {
+        if ($model = $this->fresh()) {
+            $this->setRawAttributes($model->getAttributes());
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Returns the models batch modifications to be processed.
+     *
+     * @return array
+     */
+    public function getModifications()
+    {
+        $this->buildModificationsFromDirty();
+
+        return $this->modifications;
+    }
+
+    /**
+     * Sets the models modifications array.
+     *
+     * @param array $modifications
+     *
+     * @return $this
+     */
+    public function setModifications(array $modifications = [])
+    {
+        $this->modifications = $modifications;
+
+        return $this;
+    }
+
+    /**
+     * Adds a batch modification to the models modifications array.
+     *
+     * @param array|BatchModification $mod
+     *
+     * @throws InvalidArgumentException
+     *
+     * @return $this
+     */
+    public function addModification($mod = [])
+    {
+        if ($mod instanceof BatchModification) {
+            $mod = $mod->get();
+        }
+
+        if ($this->isValidModification($mod)) {
+            $this->modifications[] = $mod;
+
+            return $this;
+        }
+
+        throw new InvalidArgumentException(
+            "The batch modification array does not include the mandatory 'attrib' or 'modtype' keys."
+        );
+    }
+
+    /**
+     * Returns the model's distinguished name string.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/aa366101(v=vs.85).aspx
+     *
+     * @return string|null
+     */
+    public function getDistinguishedName()
+    {
+        return $this->getFirstAttribute($this->schema->distinguishedName());
+    }
+
+    /**
+     * Sets the model's distinguished name attribute.
+     *
+     * @param string|DistinguishedName $dn
+     *
+     * @return $this
+     */
+    public function setDistinguishedName($dn)
+    {
+        $this->setFirstAttribute($this->schema->distinguishedName(), (string) $dn);
+
+        return $this;
+    }
+
+    /**
+     * Returns the model's distinguished name string.
+     *
+     * (Alias for getDistinguishedName())
+     *
+     * @link https://msdn.microsoft.com/en-us/library/aa366101(v=vs.85).aspx
+     *
+     * @return string|null
+     */
+    public function getDn()
+    {
+        return $this->getDistinguishedName();
+    }
+
+    /**
+     * Returns a DistinguishedName object for modifying the current models DN.
+     *
+     * @return DistinguishedName
+     */
+    public function getDnBuilder()
+    {
+        // If we currently don't have a distinguished name, we'll set
+        // it to our base, otherwise we'll use our query's base DN.
+        $dn = $this->getDistinguishedName() ?: $this->query->getDn();
+
+        return $this->getNewDnBuilder($dn);
+    }
+
+    /**
+     * Returns the models distinguished name components.
+     *
+     * @param bool $removeAttributePrefixes
+     *
+     * @return array
+     */
+    public function getDnComponents($removeAttributePrefixes = true)
+    {
+        if ($components = Utilities::explodeDn($this->getDn(), $removeAttributePrefixes)) {
+            unset($components['count']);
+
+            return $components;
+        }
+
+        return [];
+    }
+
+    /**
+     * Returns the distinguished name that the model is a leaf of.
+     *
+     * @return string
+     */
+    public function getDnRoot()
+    {
+        $components = $this->getDnComponents(false);
+
+        // Shift off the beginning of the array;
+        // This contains the models RDN.
+        array_shift($components);
+
+        return implode(',', $components);
+    }
+
+    /**
+     * Returns a new DistinguishedName object for building onto.
+     *
+     * @param string $baseDn
+     *
+     * @return DistinguishedName
+     */
+    public function getNewDnBuilder($baseDn = '')
+    {
+        return new DistinguishedName($baseDn);
+    }
+
+    /**
+     *  Sets the model's distinguished name attribute.
+     *
+     * (Alias for setDistinguishedName())
+     *
+     * @param string $dn
+     *
+     * @return $this
+     */
+    public function setDn($dn)
+    {
+        return $this->setDistinguishedName($dn);
+    }
+
+    /**
+     * Returns the model's hex object SID.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679024(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getObjectSid()
+    {
+        return $this->getFirstAttribute($this->schema->objectSid());
+    }
+
+    /**
+     * Returns the model's binary object GUID.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679021(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getObjectGuid()
+    {
+        return $this->getFirstAttribute($this->schema->objectGuid());
+    }
+
+    /**
+     * Returns the model's GUID.
+     *
+     * @return string|null
+     */
+    public function getConvertedGuid()
+    {
+        try {
+            return (string) new Guid($this->getObjectGuid());
+        } catch (InvalidArgumentException $e) {
+            return;
+        }
+    }
+
+    /**
+     * Returns the model's SID.
+     *
+     * @return string|null
+     */
+    public function getConvertedSid()
+    {
+        try {
+            return (string) new Sid($this->getObjectSid());
+        } catch (InvalidArgumentException $e) {
+            return;
+        }
+    }
+
+    /**
+     * Returns the model's common name.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675449(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getCommonName()
+    {
+        return $this->getFirstAttribute($this->schema->commonName());
+    }
+
+    /**
+     * Sets the model's common name.
+     *
+     * @param string $name
+     *
+     * @return $this
+     */
+    public function setCommonName($name)
+    {
+        return $this->setFirstAttribute($this->schema->commonName(), $name);
+    }
+
+    /**
+     * Returns the model's name. An LDAP alias for the CN attribute.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675449(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getName()
+    {
+        return $this->getFirstAttribute($this->schema->name());
+    }
+
+    /**
+     * Sets the model's name.
+     *
+     * @param string $name
+     *
+     * @return Model
+     */
+    public function setName($name)
+    {
+        return $this->setFirstAttribute($this->schema->name(), $name);
+    }
+
+    /**
+     * Returns the model's display name.
+     *
+     * @return string
+     */
+    public function getDisplayName()
+    {
+        return $this->getFirstAttribute($this->schema->displayName());
+    }
+
+    /**
+     * Sets the model's display name.
+     *
+     * @param string $displayName
+     *
+     * @return $this
+     */
+    public function setDisplayName($displayName)
+    {
+        return $this->setFirstAttribute($this->schema->displayName(), $displayName);
+    }
+
+    /**
+     * Returns the model's samaccountname.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679635(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getAccountName()
+    {
+        return $this->getFirstAttribute($this->schema->accountName());
+    }
+
+    /**
+     * Sets the model's samaccountname.
+     *
+     * @param string $accountName
+     *
+     * @return Model
+     */
+    public function setAccountName($accountName)
+    {
+        return $this->setFirstAttribute($this->schema->accountName(), $accountName);
+    }
+
+    /**
+     * Returns the model's userPrincipalName.
+     *
+     * @link https://docs.microsoft.com/en-us/windows/win32/adschema/a-userprincipalname
+     *
+     * @return string
+     */
+    public function getUserPrincipalName()
+    {
+        return $this->getFirstAttribute($this->schema->userPrincipalName());
+    }
+
+    /**
+     * Sets the model's userPrincipalName.
+     *
+     * @param string $upn
+     *
+     * @return Model
+     */
+    public function setUserPrincipalName($upn)
+    {
+        return $this->setFirstAttribute($this->schema->userPrincipalName(), $upn);
+    }
+
+    /**
+     * Returns the model's samaccounttype.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679637(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getAccountType()
+    {
+        return $this->getFirstAttribute($this->schema->accountType());
+    }
+
+    /**
+     * Returns the model's `whenCreated` time.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms680924(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getCreatedAt()
+    {
+        return $this->getFirstAttribute($this->schema->createdAt());
+    }
+
+    /**
+     * Returns the created at time in a mysql formatted date.
+     *
+     * @return string
+     */
+    public function getCreatedAtDate()
+    {
+        return (new DateTime())->setTimestamp($this->getCreatedAtTimestamp())->format($this->dateFormat);
+    }
+
+    /**
+     * Returns the created at time in a unix timestamp format.
+     *
+     * @return float
+     */
+    public function getCreatedAtTimestamp()
+    {
+        return DateTime::createFromFormat($this->timestampFormat, $this->getCreatedAt())->getTimestamp();
+    }
+
+    /**
+     * Returns the model's `whenChanged` time.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms680921(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getUpdatedAt()
+    {
+        return $this->getFirstAttribute($this->schema->updatedAt());
+    }
+
+    /**
+     * Returns the updated at time in a mysql formatted date.
+     *
+     * @return string
+     */
+    public function getUpdatedAtDate()
+    {
+        return (new DateTime())->setTimestamp($this->getUpdatedAtTimestamp())->format($this->dateFormat);
+    }
+
+    /**
+     * Returns the updated at time in a unix timestamp format.
+     *
+     * @return float
+     */
+    public function getUpdatedAtTimestamp()
+    {
+        return DateTime::createFromFormat($this->timestampFormat, $this->getUpdatedAt())->getTimestamp();
+    }
+
+    /**
+     * Returns the Container of the current Model.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679012(v=vs.85).aspx
+     *
+     * @return Container|Entry|bool
+     */
+    public function getObjectClass()
+    {
+        return $this->query->findByDn($this->getObjectCategoryDn());
+    }
+
+    /**
+     * Returns the CN of the model's object category.
+     *
+     * @return null|string
+     */
+    public function getObjectCategory()
+    {
+        $category = $this->getObjectCategoryArray();
+
+        if (is_array($category) && array_key_exists(0, $category)) {
+            return $category[0];
+        }
+    }
+
+    /**
+     * Returns the model's object category DN in an exploded array.
+     *
+     * @return array|false
+     */
+    public function getObjectCategoryArray()
+    {
+        return Utilities::explodeDn($this->getObjectCategoryDn());
+    }
+
+    /**
+     * Returns the model's object category DN string.
+     *
+     * @return null|string
+     */
+    public function getObjectCategoryDn()
+    {
+        return $this->getFirstAttribute($this->schema->objectCategory());
+    }
+
+    /**
+     * Returns the model's primary group ID.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679375(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getPrimaryGroupId()
+    {
+        return $this->getFirstAttribute($this->schema->primaryGroupId());
+    }
+
+    /**
+     * Returns the model's instance type.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676204(v=vs.85).aspx
+     *
+     * @return int
+     */
+    public function getInstanceType()
+    {
+        return $this->getFirstAttribute($this->schema->instanceType());
+    }
+
+    /**
+     * Returns the distinguished name of the user who is assigned to manage this object.
+     *
+     * @return string|null
+     */
+    public function getManagedBy()
+    {
+        return $this->getFirstAttribute($this->schema->managedBy());
+    }
+
+    /**
+     * Returns the user model of the user who is assigned to manage this object.
+     *
+     * Returns false otherwise.
+     *
+     * @return User|bool
+     */
+    public function getManagedByUser()
+    {
+        if ($dn = $this->getManagedBy()) {
+            return $this->query->newInstance()->findByDn($dn);
+        }
+
+        return false;
+    }
+
+    /**
+     * Sets the user who is assigned to managed this object.
+     *
+     * @param Model|string $dn
+     *
+     * @return $this
+     */
+    public function setManagedBy($dn)
+    {
+        if ($dn instanceof self) {
+            $dn = $dn->getDn();
+        }
+
+        return $this->setFirstAttribute($this->schema->managedBy(), $dn);
+    }
+
+    /**
+     * Returns the model's max password age.
+     *
+     * @return string
+     */
+    public function getMaxPasswordAge()
+    {
+        return $this->getFirstAttribute($this->schema->maxPasswordAge());
+    }
+
+    /**
+     * Returns the model's max password age in days.
+     *
+     * @return int
+     */
+    public function getMaxPasswordAgeDays()
+    {
+        $age = $this->getMaxPasswordAge();
+
+        return (int) (abs($age) / 10000000 / 60 / 60 / 24);
+    }
+
+    /**
+     * Determine if the current model is located inside the given OU.
+     *
+     * If a model instance is given, the strict parameter is ignored.
+     *
+     * @param Model|string $ou     The organizational unit to check.
+     * @param bool         $strict Whether the check is case-sensitive.
+     *
+     * @return bool
+     */
+    public function inOu($ou, $strict = false)
+    {
+        if ($ou instanceof self) {
+            // If we've been given an OU model, we can
+            // just check if the OU's DN is inside
+            // the current models DN.
+            return (bool) strpos($this->getDn(), $ou->getDn());
+        }
+
+        $suffix = $strict ? '' : 'i';
+
+        return (bool) preg_grep("/{$ou}/{$suffix}", $this->getDnBuilder()->getComponents('ou'));
+    }
+
+    /**
+     * Returns true / false if the current model is writable
+     * by checking its instance type integer.
+     *
+     * @return bool
+     */
+    public function isWritable()
+    {
+        return (int) $this->getInstanceType() === 4;
+    }
+
+    /**
+     * Saves the changes to LDAP and returns the results.
+     *
+     * @param array $attributes The attributes to update or create for the current entry.
+     *
+     * @return bool
+     */
+    public function save(array $attributes = [])
+    {
+        $this->fireModelEvent(new Events\Saving($this));
+
+        $saved = $this->exists ? $this->update($attributes) : $this->create($attributes);
+
+        if ($saved) {
+            $this->fireModelEvent(new Events\Saved($this));
+        }
+
+        return $saved;
+    }
+
+    /**
+     * Updates the model.
+     *
+     * @param array $attributes The attributes to update for the current entry.
+     *
+     * @return bool
+     */
+    public function update(array $attributes = [])
+    {
+        $this->fill($attributes);
+
+        $modifications = $this->getModifications();
+
+        if (count($modifications) > 0) {
+            $this->fireModelEvent(new Events\Updating($this));
+
+            // Push the update.
+            if ($this->query->getConnection()->modifyBatch($this->getDn(), $modifications)) {
+                // Re-sync attributes.
+                $this->syncRaw();
+
+                $this->fireModelEvent(new Events\Updated($this));
+
+                // Re-set the models modifications.
+                $this->modifications = [];
+
+                return true;
+            }
+
+            // Modification failed, return false.
+            return false;
+        }
+
+        // We need to return true here because modify batch will
+        // return false if no modifications are made
+        // but this may not always be the case.
+        return true;
+    }
+
+    /**
+     * Creates the entry in LDAP.
+     *
+     * @param array $attributes The attributes for the new entry.
+     *
+     * @throws UnexpectedValueException
+     *
+     * @return bool
+     */
+    public function create(array $attributes = [])
+    {
+        $this->fill($attributes);
+
+        if (empty($this->getDn())) {
+            // If the model doesn't currently have a distinguished
+            // name set, we'll create one automatically using
+            // the current query builders base DN.
+            $dn = $this->getCreatableDn();
+
+            // If the dn we receive is the same as our queries base DN, we need
+            // to throw an exception. The LDAP object must have a valid RDN.
+            if ($dn->get() == $this->query->getDn()) {
+                throw new UnexpectedValueException("An LDAP object must have a valid RDN to be created. '$dn' given.");
+            }
+
+            $this->setDn($dn);
+        }
+
+        $this->fireModelEvent(new Events\Creating($this));
+
+        // Create the entry.
+        $created = $this->query->getConnection()->add($this->getDn(), $this->getCreatableAttributes());
+
+        if ($created) {
+            // If the entry was created we'll re-sync
+            // the models attributes from the server.
+            $this->syncRaw();
+
+            $this->fireModelEvent(new Events\Created($this));
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Creates an attribute on the current model.
+     *
+     * @param string $attribute The attribute to create
+     * @param mixed  $value     The value of the new attribute
+     * @param bool   $sync      Whether to re-sync all attributes
+     *
+     * @return bool
+     */
+    public function createAttribute($attribute, $value, $sync = true)
+    {
+        if (
+            $this->exists &&
+            $this->query->getConnection()->modAdd($this->getDn(), [$attribute => $value])
+        ) {
+            if ($sync) {
+                $this->syncRaw();
+            }
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Updates the specified attribute with the specified value.
+     *
+     * @param string $attribute The attribute to modify
+     * @param mixed  $value     The new value for the attribute
+     * @param bool   $sync      Whether to re-sync all attributes
+     *
+     * @return bool
+     */
+    public function updateAttribute($attribute, $value, $sync = true)
+    {
+        if (
+            $this->exists &&
+            $this->query->getConnection()->modReplace($this->getDn(), [$attribute => $value])
+        ) {
+            if ($sync) {
+                $this->syncRaw();
+            }
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Deletes an attribute on the current entry.
+     *
+     * @param string|array $attributes The attribute(s) to delete
+     * @param bool         $sync       Whether to re-sync all attributes
+     *
+     * Delete specific values in attributes:
+     *
+     *     ["memberuid" => "username"]
+     *
+     * Delete an entire attribute:
+     *
+     *     ["memberuid" => []]
+     *
+     * @return bool
+     */
+    public function deleteAttribute($attributes, $sync = true)
+    {
+        // If we've been given a string, we'll assume we're removing a
+        // single attribute. Otherwise, we'll assume it's
+        // an array of attributes to remove.
+        $attributes = is_string($attributes) ? [$attributes => []] : $attributes;
+
+        if (
+            $this->exists &&
+            $this->query->getConnection()->modDelete($this->getDn(), $attributes)
+        ) {
+            if ($sync) {
+                $this->syncRaw();
+            }
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Deletes the current entry.
+     *
+     * Throws a ModelNotFoundException if the current model does
+     * not exist or does not contain a distinguished name.
+     *
+     * @param bool $recursive Whether to recursively delete leaf nodes (models that are children).
+     *
+     * @throws ModelDoesNotExistException
+     *
+     * @return bool
+     */
+    public function delete($recursive = false)
+    {
+        $dn = $this->getDn();
+
+        if ($this->exists === false || empty($dn)) {
+            // Make sure the record exists before we can delete it.
+            // Otherwise, we'll throw an exception.
+            throw (new ModelDoesNotExistException())->setModel(get_class($this));
+        }
+
+        $this->fireModelEvent(new Events\Deleting($this));
+
+        if ($recursive) {
+            // If recursive is requested, we'll retrieve all direct leaf nodes
+            // by executing a 'listing' and delete each resulting model.
+            $this->newQuery()->listing()->in($this->getDn())->get()->each(function (self $model) use ($recursive) {
+                $model->delete($recursive);
+            });
+        }
+
+        if ($this->query->getConnection()->delete($dn)) {
+            // If the deletion was successful, we'll mark the model
+            // as non-existing and fire the deleted event.
+            $this->exists = false;
+
+            $this->fireModelEvent(new Events\Deleted($this));
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Moves the current model into the given new parent.
+     *
+     * For example: $user->move($ou);
+     *
+     * @param Model|string $newParentDn  The new parent of the current model.
+     * @param bool         $deleteOldRdn Whether to delete the old models relative distinguished name once renamed / moved.
+     *
+     * @return bool
+     */
+    public function move($newParentDn, $deleteOldRdn = true)
+    {
+        // First we'll explode the current models distinguished name and keep their attributes prefixes.
+        $parts = Utilities::explodeDn($this->getDn(), $removeAttrPrefixes = false);
+
+        // If the current model has an empty RDN, we can't move it.
+        if ((int) Arr::first($parts) === 0) {
+            throw new UnexpectedValueException('Current model does not contain an RDN to move.');
+        }
+
+        // Looks like we have a DN. We'll retrieve the leftmost RDN (the identifier).
+        $rdn = Arr::get($parts, 0);
+
+        return $this->rename($rdn, $newParentDn, $deleteOldRdn);
+    }
+
+    /**
+     * Renames the current model to a new RDN and new parent.
+     *
+     * @param string            $rdn          The models new relative distinguished name. Example: "cn=JohnDoe"
+     * @param Model|string|null $newParentDn  The models new parent distinguished name (if moving). Leave this null if you are only renaming. Example: "ou=MovedUsers,dc=acme,dc=org"
+     * @param bool|true         $deleteOldRdn Whether to delete the old models relative distinguished name once renamed / moved.
+     *
+     * @return bool
+     */
+    public function rename($rdn, $newParentDn = null, $deleteOldRdn = true)
+    {
+        if ($newParentDn instanceof self) {
+            $newParentDn = $newParentDn->getDn();
+        }
+
+        $moved = $this->query->getConnection()->rename($this->getDn(), $rdn, $newParentDn, $deleteOldRdn);
+
+        if ($moved) {
+            // If the model was successfully moved, we'll set its
+            // new DN so we can sync it's attributes properly.
+            $this->setDn("{$rdn},{$newParentDn}");
+
+            $this->syncRaw();
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Constructs a new distinguished name that is creatable in the directory.
+     *
+     * @return DistinguishedName|string
+     */
+    protected function getCreatableDn()
+    {
+        return $this->getDnBuilder()->addCn($this->getCommonName());
+    }
+
+    /**
+     * Returns the models creatable attributes.
+     *
+     * @return mixed
+     */
+    protected function getCreatableAttributes()
+    {
+        return Arr::except($this->getAttributes(), [$this->schema->distinguishedName()]);
+    }
+
+    /**
+     * Determines if the given modification is valid.
+     *
+     * @param mixed $mod
+     *
+     * @return bool
+     */
+    protected function isValidModification($mod)
+    {
+        return is_array($mod) &&
+            array_key_exists(BatchModification::KEY_MODTYPE, $mod) &&
+            array_key_exists(BatchModification::KEY_ATTRIB, $mod);
+    }
+
+    /**
+     * Builds the models modifications from its dirty attributes.
+     *
+     * @return array
+     */
+    protected function buildModificationsFromDirty()
+    {
+        foreach ($this->getDirty() as $attribute => $values) {
+            // Make sure values is always an array.
+            $values = (is_array($values) ? $values : [$values]);
+
+            // Create a new modification.
+            $modification = $this->newBatchModification($attribute, null, $values);
+
+            if (array_key_exists($attribute, $this->original)) {
+                // If the attribute we're modifying has an original value, we'll give the
+                // BatchModification object its values to automatically determine
+                // which type of LDAP operation we need to perform.
+                $modification->setOriginal($this->original[$attribute]);
+            }
+
+            // Build the modification from its
+            // possible original values.
+            $modification->build();
+
+            if ($modification->isValid()) {
+                // Finally, we'll add the modification to the model.
+                $this->addModification($modification);
+            }
+        }
+
+        return $this->modifications;
+    }
+
+    /**
+     * Validates that the current LDAP connection is secure.
+     *
+     * @throws ConnectionException
+     *
+     * @return void
+     */
+    protected function validateSecureConnection()
+    {
+        if (!$this->query->getConnection()->canChangePasswords()) {
+            throw new ConnectionException(
+                'You must be connected to your LDAP server with TLS or SSL to perform this operation.'
+            );
+        }
+    }
+
+    /**
+     * Converts the inserted string boolean to a PHP boolean.
+     *
+     * @param string $bool
+     *
+     * @return null|bool
+     */
+    protected function convertStringToBool($bool)
+    {
+        $bool = strtoupper($bool);
+
+        if ($bool === strtoupper($this->schema->false())) {
+            return false;
+        } elseif ($bool === strtoupper($this->schema->true())) {
+            return true;
+        } else {
+            return;
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/ModelDoesNotExistException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/ModelDoesNotExistException.php
new file mode 100644
index 0000000..3935610
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/ModelDoesNotExistException.php
@@ -0,0 +1,36 @@
+<?php
+
+namespace Adldap\Models;
+
+use Adldap\AdldapException;
+
+/**
+ * Class ModelDoesNotExistException.
+ *
+ * Thrown when a model being saved / updated does not actually exist.
+ */
+class ModelDoesNotExistException extends AdldapException
+{
+    /**
+     * The class name of the model that does not exist.
+     *
+     * @var string
+     */
+    protected $model;
+
+    /**
+     * Sets the model that does not exist.
+     *
+     * @param string $model
+     *
+     * @return ModelDoesNotExistException
+     */
+    public function setModel($model)
+    {
+        $this->model = $model;
+
+        $this->message = "Model [{$model}] does not exist.";
+
+        return $this;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/ModelNotFoundException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/ModelNotFoundException.php
new file mode 100644
index 0000000..6cc3334
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/ModelNotFoundException.php
@@ -0,0 +1,45 @@
+<?php
+
+namespace Adldap\Models;
+
+use Adldap\AdldapException;
+
+/**
+ * Class ModelNotFoundException.
+ *
+ * Thrown when an LDAP record is not found.
+ */
+class ModelNotFoundException extends AdldapException
+{
+    /**
+     * The query filter that was used.
+     *
+     * @var string
+     */
+    protected $query;
+
+    /**
+     * The base DN of the query that was used.
+     *
+     * @var string
+     */
+    protected $baseDn;
+
+    /**
+     * Sets the query that was used.
+     *
+     * @param string $query
+     * @param string $baseDn
+     *
+     * @return ModelNotFoundException
+     */
+    public function setQuery($query, $baseDn)
+    {
+        $this->query = $query;
+        $this->baseDn = $baseDn;
+
+        $this->message = "No LDAP query results for filter: [{$query}] in: [{$baseDn}]";
+
+        return $this;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Organization.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Organization.php
new file mode 100644
index 0000000..88129d0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Organization.php
@@ -0,0 +1,31 @@
+<?php
+
+namespace Adldap\Models;
+
+/**
+ * Class Organization.
+ *
+ * Represents an LDAP organization.
+ */
+class Organization extends Entry
+{
+    use Concerns\HasDescription;
+
+    /**
+     * Retrieves the organization units OU attribute.
+     *
+     * @return string
+     */
+    public function getOrganization()
+    {
+        return $this->getFirstAttribute($this->schema->organizationName());
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function getCreatableDn()
+    {
+        return $this->getDnBuilder()->addO($this->getOrganization());
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/OrganizationalUnit.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/OrganizationalUnit.php
new file mode 100644
index 0000000..0571e4d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/OrganizationalUnit.php
@@ -0,0 +1,31 @@
+<?php
+
+namespace Adldap\Models;
+
+/**
+ * Class OrganizationalUnit.
+ *
+ * Represents an LDAP organizational unit.
+ */
+class OrganizationalUnit extends Entry
+{
+    use Concerns\HasDescription;
+
+    /**
+     * Retrieves the organization units OU attribute.
+     *
+     * @return string
+     */
+    public function getOu()
+    {
+        return $this->getFirstAttribute($this->schema->organizationalUnitShort());
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function getCreatableDn()
+    {
+        return $this->getDnBuilder()->addOU($this->getOu());
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Printer.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Printer.php
new file mode 100644
index 0000000..e055866
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/Printer.php
@@ -0,0 +1,286 @@
+<?php
+
+namespace Adldap\Models;
+
+/**
+ * Class Printer.
+ *
+ * Represents an LDAP printer.
+ */
+class Printer extends Entry
+{
+    /**
+     * Returns the printers name.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679385(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getPrinterName()
+    {
+        return $this->getFirstAttribute($this->schema->printerName());
+    }
+
+    /**
+     * Returns the printers share name.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679408(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getPrinterShareName()
+    {
+        return $this->getFirstAttribute($this->schema->printerShareName());
+    }
+
+    /**
+     * Returns the printers memory.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679396(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getMemory()
+    {
+        return $this->getFirstAttribute($this->schema->printerMemory());
+    }
+
+    /**
+     * Returns the printers URL.
+     *
+     * @return string
+     */
+    public function getUrl()
+    {
+        return $this->getFirstAttribute($this->schema->url());
+    }
+
+    /**
+     * Returns the printers location.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676839(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getLocation()
+    {
+        return $this->getFirstAttribute($this->schema->location());
+    }
+
+    /**
+     * Returns the server name that the
+     * current printer is connected to.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679772(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getServerName()
+    {
+        return $this->getFirstAttribute($this->schema->serverName());
+    }
+
+    /**
+     * Returns true / false if the printer can print in color.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679382(v=vs.85).aspx
+     *
+     * @return null|bool
+     */
+    public function getColorSupported()
+    {
+        return $this->convertStringToBool(
+            $this->getFirstAttribute(
+                $this->schema->printerColorSupported()
+            )
+        );
+    }
+
+    /**
+     * Returns true / false if the printer supports duplex printing.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679383(v=vs.85).aspx
+     *
+     * @return null|bool
+     */
+    public function getDuplexSupported()
+    {
+        return $this->convertStringToBool(
+            $this->getFirstAttribute(
+                $this->schema->printerDuplexSupported()
+            )
+        );
+    }
+
+    /**
+     * Returns an array of printer paper types that the printer supports.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679395(v=vs.85).aspx
+     *
+     * @return array
+     */
+    public function getMediaSupported()
+    {
+        return $this->getAttribute($this->schema->printerMediaSupported());
+    }
+
+    /**
+     * Returns true / false if the printer supports stapling.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679410(v=vs.85).aspx
+     *
+     * @return null|bool
+     */
+    public function getStaplingSupported()
+    {
+        return $this->convertStringToBool(
+            $this->getFirstAttribute(
+                $this->schema->printerStaplingSupported()
+            )
+        );
+    }
+
+    /**
+     * Returns an array of the printers bin names.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679380(v=vs.85).aspx
+     *
+     * @return array
+     */
+    public function getPrintBinNames()
+    {
+        return $this->getAttribute($this->schema->printerBinNames());
+    }
+
+    /**
+     * Returns the printers maximum resolution.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679391(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getPrintMaxResolution()
+    {
+        return $this->getFirstAttribute($this->schema->printerMaxResolutionSupported());
+    }
+
+    /**
+     * Returns the printers orientations supported.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679402(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getPrintOrientations()
+    {
+        return $this->getFirstAttribute($this->schema->printerOrientationSupported());
+    }
+
+    /**
+     * Returns the driver name of the printer.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675652(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getDriverName()
+    {
+        return $this->getFirstAttribute($this->schema->driverName());
+    }
+
+    /**
+     * Returns the printer drivers version number.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675653(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getDriverVersion()
+    {
+        return $this->getFirstAttribute($this->schema->driverVersion());
+    }
+
+    /**
+     * Returns the priority number of the printer.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679413(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getPriority()
+    {
+        return $this->getFirstAttribute($this->schema->priority());
+    }
+
+    /**
+     * Returns the printers start time.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679411(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getPrintStartTime()
+    {
+        return $this->getFirstAttribute($this->schema->printerStartTime());
+    }
+
+    /**
+     * Returns the printers end time.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679384(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getPrintEndTime()
+    {
+        return $this->getFirstAttribute($this->schema->printerEndTime());
+    }
+
+    /**
+     * Returns the port name of printer.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679131(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getPortName()
+    {
+        return $this->getFirstAttribute($this->schema->portName());
+    }
+
+    /**
+     * Returns the printers version number.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms680897(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getVersionNumber()
+    {
+        return $this->getFirstAttribute($this->schema->versionNumber());
+    }
+
+    /**
+     * Returns the print rate.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679405(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getPrintRate()
+    {
+        return $this->getFirstAttribute($this->schema->printerPrintRate());
+    }
+
+    /**
+     * Returns the print rate unit.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679406(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getPrintRateUnit()
+    {
+        return $this->getFirstAttribute($this->schema->printerPrintRateUnit());
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/RootDse.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/RootDse.php
new file mode 100644
index 0000000..31156c1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/RootDse.php
@@ -0,0 +1,85 @@
+<?php
+
+namespace Adldap\Models;
+
+use DateTime;
+
+/**
+ * Class RootDse.
+ *
+ * Represents the LDAP connections Root DSE record.
+ */
+class RootDse extends Model
+{
+    /**
+     * Returns the hosts current time in unix timestamp format.
+     *
+     * @return int
+     */
+    public function getCurrentTime()
+    {
+        $time = $this->getFirstAttribute($this->schema->currentTime());
+
+        return DateTime::createFromFormat($this->timestampFormat, $time)->getTimestamp();
+    }
+
+    /**
+     * Returns the hosts current time in the models date format.
+     *
+     * @return string
+     */
+    public function getCurrentTimeDate()
+    {
+        return (new DateTime())->setTimestamp($this->getCurrentTime())->format($this->dateFormat);
+    }
+
+    /**
+     * Returns the hosts configuration naming context.
+     *
+     * @return string
+     */
+    public function getConfigurationNamingContext()
+    {
+        return $this->getFirstAttribute($this->schema->configurationNamingContext());
+    }
+
+    /**
+     * Returns the hosts schema naming context.
+     *
+     * @return string
+     */
+    public function getSchemaNamingContext()
+    {
+        return $this->getFirstAttribute($this->schema->schemaNamingContext());
+    }
+
+    /**
+     * Returns the hosts DNS name.
+     *
+     * @return string
+     */
+    public function getDnsHostName()
+    {
+        return $this->getFirstAttribute($this->schema->dnsHostName());
+    }
+
+    /**
+     * Returns the current hosts server name.
+     *
+     * @return string
+     */
+    public function getServerName()
+    {
+        return $this->getFirstAttribute($this->schema->serverName());
+    }
+
+    /**
+     * Returns the DN of the root domain NC for this DC's forest.
+     *
+     * @return mixed
+     */
+    public function getRootDomainNamingContext()
+    {
+        return $this->getFirstAttribute($this->schema->rootDomainNamingContext());
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/User.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/User.php
new file mode 100644
index 0000000..14c3343
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/User.php
@@ -0,0 +1,1054 @@
+<?php
+
+namespace Adldap\Models;
+
+use DateTime;
+use Adldap\Utilities;
+use Adldap\AdldapException;
+use Adldap\Schemas\ActiveDirectory;
+use Adldap\Models\Attributes\AccountControl;
+use Adldap\Models\Attributes\TSPropertyArray;
+use Illuminate\Contracts\Auth\Authenticatable;
+
+/**
+ * Class User.
+ *
+ * Represents an LDAP user.
+ */
+class User extends Entry implements Authenticatable
+{
+    use Concerns\HasUserProperties;
+    use Concerns\HasDescription;
+    use Concerns\HasMemberOf;
+    use Concerns\HasLastLogonAndLogOff;
+    use Concerns\HasUserAccountControl;
+
+    /** @var callable|null */
+    private static $passwordStrategy;
+
+    /**
+     * Password will be processed using given callback before saving.
+     *
+     * @param callable $strategy
+     */
+    public static function usePasswordStrategy(callable $strategy)
+    {
+        static::$passwordStrategy = $strategy;
+    }
+
+    /**
+     * Will return user set password strategy or default one.
+     *
+     * @return callable
+     */
+    public static function getPasswordStrategy(): callable
+    {
+        return static::$passwordStrategy ?? function ($password) {
+            return Utilities::encodePassword($password);
+        };
+    }
+
+    /**
+     * Get the name of the unique identifier for the user.
+     *
+     * @return string
+     */
+    public function getAuthIdentifierName()
+    {
+        return $this->schema->objectGuid();
+    }
+
+    /**
+     * Get the unique identifier for the user.
+     *
+     * @return mixed
+     */
+    public function getAuthIdentifier()
+    {
+        return $this->getConvertedGuid();
+    }
+
+    /**
+     * Get the password for the user.
+     *
+     * @return string
+     */
+    public function getAuthPassword()
+    {
+    }
+
+    /**
+     * Get the token value for the "remember me" session.
+     *
+     * @return string
+     */
+    public function getRememberToken()
+    {
+    }
+
+    /**
+     * Set the token value for the "remember me" session.
+     *
+     * @param string $value
+     *
+     * @return void
+     */
+    public function setRememberToken($value)
+    {
+    }
+
+    /**
+     * Get the column name for the "remember me" token.
+     *
+     * @return string
+     */
+    public function getRememberTokenName()
+    {
+    }
+
+    /**
+     * Returns the department number.
+     *
+     * @return string
+     */
+    public function getDepartmentNumber()
+    {
+        return $this->getFirstAttribute($this->schema->departmentNumber());
+    }
+
+    /**
+     * Sets the department number.
+     *
+     * @param string $number
+     *
+     * @return $this
+     */
+    public function setDepartmentNumber($number)
+    {
+        return $this->setFirstAttribute($this->schema->departmentNumber(), $number);
+    }
+
+    /**
+     * Returns the users info.
+     *
+     * @return mixed
+     */
+    public function getInfo()
+    {
+        return $this->getFirstAttribute($this->schema->info());
+    }
+
+    /**
+     * Sets the users info.
+     *
+     * @param string $info
+     *
+     * @return $this
+     */
+    public function setInfo($info)
+    {
+        return $this->setFirstAttribute($this->schema->info(), $info);
+    }
+
+    /**
+     * Returns the users physical delivery office name.
+     *
+     * @return string
+     */
+    public function getPhysicalDeliveryOfficeName()
+    {
+        return $this->getFirstAttribute($this->schema->physicalDeliveryOfficeName());
+    }
+
+    /**
+     * Sets the users physical delivery office name.
+     *
+     * @param string $deliveryOffice
+     *
+     * @return $this
+     */
+    public function setPhysicalDeliveryOfficeName($deliveryOffice)
+    {
+        return $this->setFirstAttribute($this->schema->physicalDeliveryOfficeName(), $deliveryOffice);
+    }
+
+    /**
+     * Returns the users locale.
+     *
+     * @return string
+     */
+    public function getLocale()
+    {
+        return $this->getFirstAttribute($this->schema->locale());
+    }
+
+    /**
+     * Sets the users locale.
+     *
+     * @param string $locale
+     *
+     * @return $this
+     */
+    public function setLocale($locale)
+    {
+        return $this->setFirstAttribute($this->schema->locale(), $locale);
+    }
+
+    /**
+     * Returns the users company.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675457(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getCompany()
+    {
+        return $this->getFirstAttribute($this->schema->company());
+    }
+
+    /**
+     * Sets the users company.
+     *
+     * @param string $company
+     *
+     * @return $this
+     */
+    public function setCompany($company)
+    {
+        return $this->setFirstAttribute($this->schema->company(), $company);
+    }
+
+    /**
+     * Returns the users mailbox store DN.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/aa487565(v=exchg.65).aspx
+     *
+     * @return string
+     */
+    public function getHomeMdb()
+    {
+        return $this->getFirstAttribute($this->schema->homeMdb());
+    }
+
+    /**
+     * Sets the users home drive.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676191(v=vs.85).aspx
+     *
+     * @return $this
+     */
+    public function setHomeDrive($drive)
+    {
+        return $this->setAttribute($this->schema->homeDrive(), $drive);
+    }
+
+    /**
+     * Specifies the drive letter to which to map the UNC path specified by homeDirectory.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676191(v=vs.85).aspx
+     *
+     * @return string|null
+     */
+    public function getHomeDrive()
+    {
+        return $this->getFirstAttribute($this->schema->homeDrive());
+    }
+
+    /**
+     * Sets the users home directory.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676190(v=vs.85).aspx
+     *
+     * @param string $directory
+     *
+     * @return $this
+     */
+    public function setHomeDirectory($directory)
+    {
+        return $this->setAttribute($this->schema->homeDirectory(), $directory);
+    }
+
+    /**
+     * The home directory for the account.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676190(v=vs.85).aspx
+     *
+     * @return string|null
+     */
+    public function getHomeDirectory()
+    {
+        return $this->getFirstAttribute($this->schema->homeDirectory());
+    }
+
+    /**
+     * The user's main home phone number.
+     *
+     * @link https://docs.microsoft.com/en-us/windows/desktop/ADSchema/a-homephone
+     *
+     * @return string|null
+     */
+    public function getHomePhone()
+    {
+        return $this->getFirstAttribute($this->schema->homePhone());
+    }
+
+    /**
+     * Returns the users principal name.
+     *
+     * This is usually their email address.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms680857(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getUserPrincipalName()
+    {
+        return $this->getFirstAttribute($this->schema->userPrincipalName());
+    }
+
+    /**
+     * Sets the users user principal name.
+     *
+     * @param string $userPrincipalName
+     *
+     * @return $this
+     */
+    public function setUserPrincipalName($userPrincipalName)
+    {
+        return $this->setFirstAttribute($this->schema->userPrincipalName(), $userPrincipalName);
+    }
+
+    /**
+     * Returns an array of workstations the user is assigned to.
+     *
+     * @return array
+     */
+    public function getUserWorkstations()
+    {
+        $workstations = $this->getFirstAttribute($this->schema->userWorkstations());
+
+        return array_filter(explode(',', $workstations));
+    }
+
+    /**
+     * Sets the workstations the user can login to.
+     *
+     * @param string|array $workstations The names of the workstations the user can login to.
+     *                                   Must be an array of names, or a comma separated
+     *                                   list of names.
+     *
+     * @return $this
+     */
+    public function setUserWorkstations($workstations = [])
+    {
+        if (is_array($workstations)) {
+            $workstations = implode(',', $workstations);
+        }
+
+        return $this->setFirstAttribute($this->schema->userWorkstations(), $workstations);
+    }
+
+    /**
+     * Returns the users script path if the user has one.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679656(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getScriptPath()
+    {
+        return $this->getFirstAttribute($this->schema->scriptPath());
+    }
+
+    /**
+     * Sets the users script path.
+     *
+     * @param string $path
+     *
+     * @return $this
+     */
+    public function setScriptPath($path)
+    {
+        return $this->setFirstAttribute($this->schema->scriptPath(), $path);
+    }
+
+    /**
+     * Returns the users bad password count.
+     *
+     * @return string
+     */
+    public function getBadPasswordCount()
+    {
+        return $this->getFirstAttribute($this->schema->badPasswordCount());
+    }
+
+    /**
+     * Returns the users bad password time.
+     *
+     * @return string
+     */
+    public function getBadPasswordTime()
+    {
+        return $this->getFirstAttribute($this->schema->badPasswordTime());
+    }
+
+    /**
+     * Returns the bad password time unix timestamp.
+     *
+     * @return float|null
+     */
+    public function getBadPasswordTimestamp()
+    {
+        if ($time = $this->getBadPasswordTime()) {
+            return Utilities::convertWindowsTimeToUnixTime($time);
+        }
+    }
+
+    /**
+     * Returns the formatted timestamp of the bad password date.
+     *
+     * @throws \Exception
+     *
+     * @return string|null
+     */
+    public function getBadPasswordDate()
+    {
+        if ($timestamp = $this->getBadPasswordTimestamp()) {
+            return (new DateTime())->setTimestamp($timestamp)->format($this->dateFormat);
+        }
+    }
+
+    /**
+     * Returns the time when the users password was set last.
+     *
+     * @return string
+     */
+    public function getPasswordLastSet()
+    {
+        return $this->getFirstAttribute($this->schema->passwordLastSet());
+    }
+
+    /**
+     * Returns the password last set unix timestamp.
+     *
+     * @return float|null
+     */
+    public function getPasswordLastSetTimestamp()
+    {
+        if ($time = $this->getPasswordLastSet()) {
+            return Utilities::convertWindowsTimeToUnixTime($time);
+        }
+    }
+
+    /**
+     * Returns the formatted timestamp of the password last set date.
+     *
+     * @throws \Exception
+     *
+     * @return string|null
+     */
+    public function getPasswordLastSetDate()
+    {
+        if ($timestamp = $this->getPasswordLastSetTimestamp()) {
+            return (new DateTime())->setTimestamp($timestamp)->format($this->dateFormat);
+        }
+    }
+
+    /**
+     * Returns the users lockout time.
+     *
+     * @return string
+     */
+    public function getLockoutTime()
+    {
+        return $this->getFirstAttribute($this->schema->lockoutTime());
+    }
+
+    /**
+     * Returns the users lockout unix timestamp.
+     *
+     * @return float|null
+     */
+    public function getLockoutTimestamp()
+    {
+        if ($time = $this->getLockoutTime()) {
+            return Utilities::convertWindowsTimeToUnixTime($time);
+        }
+    }
+
+    /**
+     * Returns the formatted timestamp of the lockout date.
+     *
+     * @throws \Exception
+     *
+     * @return string|null
+     */
+    public function getLockoutDate()
+    {
+        if ($timestamp = $this->getLockoutTimestamp()) {
+            return (new DateTime())->setTimestamp($timestamp)->format($this->dateFormat);
+        }
+    }
+
+    /**
+     * Clears the accounts lockout time, unlocking the account.
+     *
+     * @return $this
+     */
+    public function setClearLockoutTime()
+    {
+        return $this->setFirstAttribute($this->schema->lockoutTime(), 0);
+    }
+
+    /**
+     * Returns the users profile file path.
+     *
+     * @return string
+     */
+    public function getProfilePath()
+    {
+        return $this->getFirstAttribute($this->schema->profilePath());
+    }
+
+    /**
+     * Sets the users profile path.
+     *
+     * @param string $path
+     *
+     * @return $this
+     */
+    public function setProfilePath($path)
+    {
+        return $this->setFirstAttribute($this->schema->profilePath(), $path);
+    }
+
+    /**
+     * Returns the users legacy exchange distinguished name.
+     *
+     * @return string
+     */
+    public function getLegacyExchangeDn()
+    {
+        return $this->getFirstAttribute($this->schema->legacyExchangeDn());
+    }
+
+    /**
+     * Sets the users account expiry date.
+     *
+     * If no expiry time is given, the account is set to never expire.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675098(v=vs.85).aspx
+     *
+     * @param float $expiryTime
+     *
+     * @return $this
+     */
+    public function setAccountExpiry($expiryTime)
+    {
+        $time = is_null($expiryTime) ? '9223372036854775807' : (string) Utilities::convertUnixTimeToWindowsTime($expiryTime);
+
+        return $this->setFirstAttribute($this->schema->accountExpires(), $time);
+    }
+
+    /**
+     * Returns an array of address book DNs
+     * that the user is listed to be shown in.
+     *
+     * @return array
+     */
+    public function getShowInAddressBook()
+    {
+        return $this->getAttribute($this->schema->showInAddressBook());
+    }
+
+    /**
+     * Returns the users thumbnail photo base 64 encoded.
+     *
+     * Suitable for inserting into an HTML image element.
+     *
+     * @return string|null
+     */
+    public function getThumbnailEncoded()
+    {
+        if ($data = base64_decode($this->getThumbnail(), $strict = true)) {
+            // In case we don't have the file info extension enabled,
+            // we'll set the jpeg mime type as default.
+            $mime = 'image/jpeg';
+
+            $image = base64_encode($data);
+
+            if (function_exists('finfo_open')) {
+                $finfo = finfo_open();
+
+                $mime = finfo_buffer($finfo, $data, FILEINFO_MIME_TYPE);
+
+                return "data:$mime;base64,$image";
+            }
+
+            return "data:$mime;base64,$image";
+        }
+    }
+
+    /**
+     * Returns the users thumbnail photo.
+     *
+     * @return mixed
+     */
+    public function getThumbnail()
+    {
+        return $this->getFirstAttribute($this->schema->thumbnail());
+    }
+
+    /**
+     * Sets the users thumbnail photo.
+     *
+     * @param string $data
+     * @param bool   $encode
+     *
+     * @return $this
+     */
+    public function setThumbnail($data, $encode = true)
+    {
+        if ($encode && !base64_decode($data, $strict = true)) {
+            // If the string we're given is not base 64 encoded, then
+            // we will encode it before setting it on the user.
+            $data = base64_encode($data);
+        }
+
+        return $this->setAttribute($this->schema->thumbnail(), $data);
+    }
+
+    /**
+     * Returns the users JPEG photo.
+     *
+     * @return null|string
+     */
+    public function getJpegPhotoEncoded()
+    {
+        $jpeg = $this->getJpegPhoto();
+
+        return is_null($jpeg) ? $jpeg : 'data:image/jpeg;base64,'.base64_encode($jpeg);
+    }
+
+    /**
+     * Returns the users JPEG photo.
+     *
+     * @return mixed
+     */
+    public function getJpegPhoto()
+    {
+        return $this->getFirstAttribute($this->schema->jpegPhoto());
+    }
+
+    /**
+     * Sets the users JPEG photo.
+     *
+     * @param string $string
+     *
+     * @return $this
+     */
+    public function setJpegPhoto($string)
+    {
+        if (!base64_decode($string, $strict = true)) {
+            $string = base64_encode($string);
+        }
+
+        return $this->setAttribute($this->schema->jpegPhoto(), $string);
+    }
+
+    /**
+     * Return the employee ID.
+     *
+     * @return string
+     */
+    public function getEmployeeId()
+    {
+        return $this->getFirstAttribute($this->schema->employeeId());
+    }
+
+    /**
+     * Sets the employee ID.
+     *
+     * @param string $employeeId
+     *
+     * @return $this
+     */
+    public function setEmployeeId($employeeId)
+    {
+        return $this->setFirstAttribute($this->schema->employeeId(), $employeeId);
+    }
+
+    /**
+     * Returns the employee type.
+     *
+     * @return string|null
+     */
+    public function getEmployeeType()
+    {
+        return $this->getFirstAttribute($this->schema->employeeType());
+    }
+
+    /**
+     * Sets the employee type.
+     *
+     * @param string $type
+     *
+     * @return $this
+     */
+    public function setEmployeeType($type)
+    {
+        return $this->setFirstAttribute($this->schema->employeeType(), $type);
+    }
+
+    /**
+     * Returns the employee number.
+     *
+     * @return string
+     */
+    public function getEmployeeNumber()
+    {
+        return $this->getFirstAttribute($this->schema->employeeNumber());
+    }
+
+    /**
+     * Sets the employee number.
+     *
+     * @param string $number
+     *
+     * @return $this
+     */
+    public function setEmployeeNumber($number)
+    {
+        return $this->setFirstAttribute($this->schema->employeeNumber(), $number);
+    }
+
+    /**
+     * Returns the room number.
+     *
+     * @return string
+     */
+    public function getRoomNumber()
+    {
+        return $this->getFirstAttribute($this->schema->roomNumber());
+    }
+
+    /**
+     * Sets the room number.
+     *
+     * @param string $number
+     *
+     * @return $this
+     */
+    public function setRoomNumber($number)
+    {
+        return $this->setFirstAttribute($this->schema->roomNumber(), $number);
+    }
+
+    /**
+     * Return the personal title.
+     *
+     * @return $this
+     */
+    public function getPersonalTitle()
+    {
+        return $this->getFirstAttribute($this->schema->personalTitle());
+    }
+
+    /**
+     * Sets the personal title.
+     *
+     * @param string $personalTitle
+     *
+     * @return $this
+     */
+    public function setPersonalTitle($personalTitle)
+    {
+        return $this->setFirstAttribute($this->schema->personalTitle(), $personalTitle);
+    }
+
+    /**
+     * Return the user parameters.
+     *
+     * @return TSPropertyArray
+     */
+    public function getUserParameters()
+    {
+        return new TSPropertyArray($this->getFirstAttribute('userparameters'));
+    }
+
+    /**
+     * Sets the user parameters.
+     *
+     * @param TSPropertyArray $userParameters
+     *
+     * @return $this
+     */
+    public function setUserParameters(TSPropertyArray $userParameters)
+    {
+        return $this->setFirstAttribute('userparameters', $userParameters->toBinary());
+    }
+
+    /**
+     * Retrieves the primary group of the current user.
+     *
+     * @return Model|bool
+     */
+    public function getPrimaryGroup()
+    {
+        $groupSid = preg_replace('/\d+$/', $this->getPrimaryGroupId(), $this->getConvertedSid());
+
+        return $this->query->newInstance()->findBySid($groupSid);
+    }
+
+    /**
+     * Sets the password on the current user.
+     *
+     * @param string $password
+     *
+     * @throws AdldapException When no SSL or TLS secured connection is present.
+     *
+     * @return $this
+     */
+    public function setPassword($password)
+    {
+        $this->validateSecureConnection();
+
+        $encodedPassword = call_user_func(static::getPasswordStrategy(), $password);
+
+        if ($this->exists) {
+            // If the record exists, we need to add a batch replace
+            // modification, otherwise we'll receive a "type or
+            // value" exists exception from our LDAP server.
+            return $this->addModification(
+                $this->newBatchModification(
+                    $this->schema->unicodePassword(),
+                    LDAP_MODIFY_BATCH_REPLACE,
+                    [$encodedPassword]
+                )
+            );
+        } else {
+            // Otherwise, we are creating a new record
+            // and we can set the attribute normally.
+            return $this->setFirstAttribute(
+                $this->schema->unicodePassword(),
+                $encodedPassword
+            );
+        }
+    }
+
+    /**
+     * Sets the option to force the password change at the next logon.
+     *
+     * Does not work if the "Password never expires" option is enabled.
+     *
+     * @return $this
+     */
+    public function setEnableForcePasswordChange()
+    {
+        return $this->setFirstAttribute($this->schema->passwordLastSet(), 0);
+    }
+
+    /**
+     * Sets the option to disable forcing a password change at the next logon.
+     *
+     * @return $this
+     */
+    public function setDisableForcePasswordChange()
+    {
+        return $this->setFirstAttribute($this->schema->passwordLastSet(), -1);
+    }
+
+    /**
+     * Change the password of the current user. This must be performed over SSL / TLS.
+     *
+     * Throws an exception on failure.
+     *
+     * @param string $oldPassword      The new password
+     * @param string $newPassword      The old password
+     * @param bool   $replaceNotRemove Alternative password change method. Set to true if you're receiving 'CONSTRAINT'
+     *                                 errors.
+     *
+     * @throws UserPasswordPolicyException    When the new password does not match your password policy.
+     * @throws UserPasswordIncorrectException When the old password is incorrect.
+     * @throws AdldapException                When an unknown cause of failure occurs.
+     *
+     * @return true
+     */
+    public function changePassword($oldPassword, $newPassword, $replaceNotRemove = false)
+    {
+        $this->validateSecureConnection();
+
+        $attribute = $this->schema->unicodePassword();
+
+        $modifications = [];
+
+        if ($replaceNotRemove) {
+            $modifications[] = $this->newBatchModification(
+                $attribute,
+                LDAP_MODIFY_BATCH_REPLACE,
+                [call_user_func(static::getPasswordStrategy(), $newPassword)]
+            );
+        } else {
+            // Create batch modification for removing the old password.
+            $modifications[] = $this->newBatchModification(
+                $attribute,
+                LDAP_MODIFY_BATCH_REMOVE,
+                [call_user_func(static::getPasswordStrategy(), $oldPassword)]
+            );
+
+            // Create batch modification for adding the new password.
+            $modifications[] = $this->newBatchModification(
+                $attribute,
+                LDAP_MODIFY_BATCH_ADD,
+                [call_user_func(static::getPasswordStrategy(), $newPassword)]
+            );
+        }
+
+        // Add the modifications.
+        foreach ($modifications as $modification) {
+            $this->addModification($modification);
+        }
+
+        $result = @$this->update();
+
+        if (!$result) {
+            // If the user failed to update, we'll see if we can
+            // figure out why by retrieving the extended error.
+            $error = $this->query->getConnection()->getExtendedError();
+            $code = $this->query->getConnection()->getExtendedErrorCode();
+
+            switch ($code) {
+                case '0000052D':
+                    throw new UserPasswordPolicyException(
+                        "Error: $code. Your new password does not match the password policy."
+                    );
+                case '00000056':
+                    throw new UserPasswordIncorrectException(
+                        "Error: $code. Your old password is incorrect."
+                    );
+                default:
+                    throw new AdldapException($error);
+            }
+        }
+
+        return $result;
+    }
+
+    /**
+     * Return true / false if LDAP User is active (enabled & not expired).
+     *
+     * @return bool
+     */
+    public function isActive()
+    {
+        return $this->isEnabled() && !$this->isExpired();
+    }
+
+    /**
+     * Return true / false if the LDAP User is expired.
+     *
+     * @param DateTime $date Optional date
+     *
+     * @return bool
+     */
+    public function isExpired(DateTime $date = null)
+    {
+        // Here we'll determine if the account expires by checking is expiration date.
+        if ($expirationDate = $this->expirationDate()) {
+            $date = $date ?: new DateTime();
+
+            return $expirationDate <= $date;
+        }
+
+        // The account has no expiry date.
+        return false;
+    }
+
+    /**
+     * Return the expiration date of the user account.
+     *
+     * @throws \Exception
+     *
+     * @return DateTime|null
+     */
+    public function expirationDate()
+    {
+        $accountExpiry = $this->getAccountExpiry();
+
+        // If the account expiry is zero or the expiry is equal to
+        // ActiveDirectory's 'never expire' value,
+        // then we'll return null here.
+        if ($accountExpiry == 0 || $accountExpiry == $this->getSchema()->neverExpiresDate()) {
+            return;
+        }
+
+        $unixTime = Utilities::convertWindowsTimeToUnixTime($accountExpiry);
+
+        return (new DateTime())->setTimestamp($unixTime);
+    }
+
+    /**
+     * Returns the users account expiry date.
+     *
+     * @return string
+     */
+    public function getAccountExpiry()
+    {
+        return $this->getFirstAttribute($this->schema->accountExpires());
+    }
+
+    /**
+     * Returns true / false if the users password is expired.
+     *
+     * @return bool
+     */
+    public function passwordExpired()
+    {
+        // First we'll check the users userAccountControl to see if
+        // it contains the 'password does not expire' flag.
+        if ($this->getUserAccountControlObject()->has(AccountControl::DONT_EXPIRE_PASSWORD)) {
+            return false;
+        }
+
+        $lastSet = (int) $this->getPasswordLastSet();
+
+        if ($lastSet === 0) {
+            // If the users last set time is zero, the password has
+            // been manually expired by an administrator.
+            return true;
+        }
+
+        // We'll check if we're using the ActiveDirectory schema to retrieve
+        // the max password age, as this is an AD-only feature.
+        if ($this->schema instanceof ActiveDirectory) {
+            $query = $this->query->newInstance();
+
+            // We need to get the root domain object to be able to
+            // retrieve the max password age on the domain.
+            $rootDomainObject = $query->select($this->schema->maxPasswordAge())
+                ->whereHas($this->schema->objectClass())
+                ->first();
+
+            $maxPasswordAge = $rootDomainObject->getMaxPasswordAge();
+
+            if (empty($maxPasswordAge)) {
+                // There is not a max password age set on the LDAP server.
+                return false;
+            }
+
+            // convert from 100 nanosecond ticks to seconds
+            $maxPasswordAgeSeconds = $maxPasswordAge / 10000000;
+
+            $lastSetUnixEpoch = Utilities::convertWindowsTimeToUnixTime($lastSet);
+            $passwordExpiryTime = $lastSetUnixEpoch - $maxPasswordAgeSeconds;
+
+            $expiresAt = (new DateTime())->setTimestamp($passwordExpiryTime);
+
+            // If our current time is greater than the users password
+            // expiry time, the users password has expired.
+            return (new DateTime())->getTimestamp() >= $expiresAt->getTimestamp();
+        }
+
+        return false;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/UserPasswordIncorrectException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/UserPasswordIncorrectException.php
new file mode 100644
index 0000000..44cb39b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/UserPasswordIncorrectException.php
@@ -0,0 +1,16 @@
+<?php
+
+namespace Adldap\Models;
+
+use Adldap\AdldapException;
+
+/**
+ * Class UserPasswordIncorrectException.
+ *
+ * Thrown when a users password is being changed
+ * and their current password given is incorrect.
+ */
+class UserPasswordIncorrectException extends AdldapException
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/UserPasswordPolicyException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/UserPasswordPolicyException.php
new file mode 100644
index 0000000..9a99faa
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Models/UserPasswordPolicyException.php
@@ -0,0 +1,16 @@
+<?php
+
+namespace Adldap\Models;
+
+use Adldap\AdldapException;
+
+/**
+ * Class UserPasswordPolicyException.
+ *
+ * Thrown when a users password is being changed but their new password
+ * does not conform to the LDAP servers password policy.
+ */
+class UserPasswordPolicyException extends AdldapException
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Builder.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Builder.php
new file mode 100644
index 0000000..48f253f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Builder.php
@@ -0,0 +1,1956 @@
+<?php
+
+namespace Adldap\Query;
+
+use Closure;
+use Adldap\Adldap;
+use Adldap\Utilities;
+use Adldap\Models\Model;
+use Illuminate\Support\Arr;
+use InvalidArgumentException;
+use Adldap\Schemas\ActiveDirectory;
+use Adldap\Schemas\SchemaInterface;
+use Adldap\Query\Events\QueryExecuted;
+use Adldap\Models\ModelNotFoundException;
+use Adldap\Connections\ConnectionInterface;
+
+class Builder
+{
+    /**
+     * The selected columns to retrieve on the query.
+     *
+     * @var array
+     */
+    public $columns = ['*'];
+
+    /**
+     * The query filters.
+     *
+     * @var array
+     */
+    public $filters = [
+        'and' => [],
+        'or'  => [],
+        'raw' => [],
+    ];
+
+    /**
+     * The size limit of the query.
+     *
+     * @var int
+     */
+    public $limit = 0;
+
+    /**
+     * Determines whether the current query is paginated.
+     *
+     * @var bool
+     */
+    public $paginated = false;
+
+    /**
+     * The field to sort search results by.
+     *
+     * @var string
+     */
+    protected $sortByField = '';
+
+    /**
+     * The direction to sort the results by.
+     *
+     * @var string
+     */
+    protected $sortByDirection = '';
+
+    /**
+     * The sort flags for sorting query results.
+     *
+     * @var int
+     */
+    protected $sortByFlags;
+
+    /**
+     * The distinguished name to perform searches upon.
+     *
+     * @var string|null
+     */
+    protected $dn;
+
+    /**
+     * The default query type.
+     *
+     * @var string
+     */
+    protected $type = 'search';
+
+    /**
+     * Determines whether or not to return LDAP results in their raw array format.
+     *
+     * @var bool
+     */
+    protected $raw = false;
+
+    /**
+     * Determines whether the query is nested.
+     *
+     * @var bool
+     */
+    protected $nested = false;
+
+    /**
+     * Determines whether the query should be cached.
+     *
+     * @var bool
+     */
+    protected $caching = false;
+
+    /**
+     * How long the query should be cached until.
+     *
+     * @var \DateTimeInterface|null
+     */
+    protected $cacheUntil = null;
+
+    /**
+     * Determines whether the query cache must be flushed.
+     *
+     * @var bool
+     */
+    protected $flushCache = false;
+
+    /**
+     * The current connection instance.
+     *
+     * @var ConnectionInterface
+     */
+    protected $connection;
+
+    /**
+     * The current grammar instance.
+     *
+     * @var Grammar
+     */
+    protected $grammar;
+
+    /**
+     * The current schema instance.
+     *
+     * @var SchemaInterface
+     */
+    protected $schema;
+
+    /**
+     * The current cache instance.
+     *
+     * @var Cache|null
+     */
+    protected $cache;
+
+    /**
+     * Constructor.
+     *
+     * @param ConnectionInterface  $connection
+     * @param Grammar|null         $grammar
+     * @param SchemaInterface|null $schema
+     */
+    public function __construct(ConnectionInterface $connection, Grammar $grammar = null, SchemaInterface $schema = null)
+    {
+        $this->setConnection($connection)
+            ->setGrammar($grammar)
+            ->setSchema($schema);
+    }
+
+    /**
+     * Sets the current connection.
+     *
+     * @param ConnectionInterface $connection
+     *
+     * @return Builder
+     */
+    public function setConnection(ConnectionInterface $connection)
+    {
+        $this->connection = $connection;
+
+        return $this;
+    }
+
+    /**
+     * Sets the current filter grammar.
+     *
+     * @param Grammar|null $grammar
+     *
+     * @return Builder
+     */
+    public function setGrammar(Grammar $grammar = null)
+    {
+        $this->grammar = $grammar ?: new Grammar();
+
+        return $this;
+    }
+
+    /**
+     * Sets the current schema.
+     *
+     * @param SchemaInterface|null $schema
+     *
+     * @return Builder
+     */
+    public function setSchema(SchemaInterface $schema = null)
+    {
+        $this->schema = $schema ?: new ActiveDirectory();
+
+        return $this;
+    }
+
+    /**
+     * Returns the current schema.
+     *
+     * @return SchemaInterface
+     */
+    public function getSchema()
+    {
+        return $this->schema;
+    }
+
+    /**
+     * Sets the cache to store query results.
+     *
+     * @param Cache|null $cache
+     */
+    public function setCache(Cache $cache = null)
+    {
+        $this->cache = $cache;
+
+        return $this;
+    }
+
+    /**
+     * Returns a new Query Builder instance.
+     *
+     * @param string $baseDn
+     *
+     * @return Builder
+     */
+    public function newInstance($baseDn = null)
+    {
+        // We'll set the base DN of the new Builder so
+        // developers don't need to do this manually.
+        $dn = is_null($baseDn) ? $this->getDn() : $baseDn;
+
+        return (new static($this->connection, $this->grammar, $this->schema))
+            ->setDn($dn);
+    }
+
+    /**
+     * Returns a new nested Query Builder instance.
+     *
+     * @param Closure|null $closure
+     *
+     * @return $this
+     */
+    public function newNestedInstance(Closure $closure = null)
+    {
+        $query = $this->newInstance()->nested();
+
+        if ($closure) {
+            call_user_func($closure, $query);
+        }
+
+        return $query;
+    }
+
+    /**
+     * Returns the current query.
+     *
+     * @return Collection|array
+     */
+    public function get()
+    {
+        // We'll mute any warnings / errors here. We just need to
+        // know if any query results were returned.
+        return @$this->query($this->getQuery());
+    }
+
+    /**
+     * Compiles and returns the current query string.
+     *
+     * @return string
+     */
+    public function getQuery()
+    {
+        // We need to ensure we have at least one filter, as
+        // no query results will be returned otherwise.
+        if (count(array_filter($this->filters)) === 0) {
+            $this->whereHas($this->schema->objectClass());
+        }
+
+        return $this->grammar->compile($this);
+    }
+
+    /**
+     * Returns the unescaped query.
+     *
+     * @return string
+     */
+    public function getUnescapedQuery()
+    {
+        return Utilities::unescape($this->getQuery());
+    }
+
+    /**
+     * Returns the current Grammar instance.
+     *
+     * @return Grammar
+     */
+    public function getGrammar()
+    {
+        return $this->grammar;
+    }
+
+    /**
+     * Returns the current Connection instance.
+     *
+     * @return ConnectionInterface
+     */
+    public function getConnection()
+    {
+        return $this->connection;
+    }
+
+    /**
+     * Returns the builders DN to perform searches upon.
+     *
+     * @return string
+     */
+    public function getDn()
+    {
+        return $this->dn;
+    }
+
+    /**
+     * Sets the DN to perform searches upon.
+     *
+     * @param string|Model|null $dn
+     *
+     * @return Builder
+     */
+    public function setDn($dn = null)
+    {
+        $this->dn = $dn instanceof Model ? $dn->getDn() : $dn;
+
+        return $this;
+    }
+
+    /**
+     * Alias for setting the base DN of the query.
+     *
+     * @param string|Model|null $dn
+     *
+     * @return Builder
+     */
+    public function in($dn = null)
+    {
+        return $this->setDn($dn);
+    }
+
+    /**
+     * Sets the size limit of the current query.
+     *
+     * @param int $limit
+     *
+     * @return Builder
+     */
+    public function limit($limit = 0)
+    {
+        $this->limit = $limit;
+
+        return $this;
+    }
+
+    /**
+     * Performs the specified query on the current LDAP connection.
+     *
+     * @param string $query
+     *
+     * @return \Adldap\Query\Collection|array
+     */
+    public function query($query)
+    {
+        $start = microtime(true);
+
+        // Here we will create the execution callback. This allows us
+        // to only execute an LDAP request if caching is disabled
+        // or if no cache of the given query exists yet.
+        $callback = function () use ($query) {
+            return $this->parse($this->run($query));
+        };
+
+        // If caching is enabled and we have a cache instance available,
+        // we will try to retrieve the cached results instead.
+        // Otherwise, we will simply execute the callback.
+        if ($this->caching && $this->cache) {
+            $results = $this->getCachedResponse($this->getCacheKey($query), $callback);
+        } else {
+            $results = $callback();
+        }
+
+        // Log the query.
+        $this->logQuery($this, $this->type, $this->getElapsedTime($start));
+
+        // Process & return the results.
+        return $this->newProcessor()->process($results);
+    }
+
+    /**
+     * Paginates the current LDAP query.
+     *
+     * @param int  $perPage
+     * @param int  $currentPage
+     * @param bool $isCritical
+     *
+     * @return Paginator
+     */
+    public function paginate($perPage = 1000, $currentPage = 0, $isCritical = true)
+    {
+        $this->paginated = true;
+
+        $start = microtime(true);
+
+        $query = $this->getQuery();
+
+        // Here we will create the pagination callback. This allows us
+        // to only execute an LDAP request if caching is disabled
+        // or if no cache of the given query exists yet.
+        $callback = function () use ($query, $perPage, $isCritical) {
+            return $this->runPaginate($query, $perPage, $isCritical);
+        };
+
+        // If caching is enabled and we have a cache instance available,
+        // we will try to retrieve the cached results instead.
+        if ($this->caching && $this->cache) {
+            $pages = $this->getCachedResponse($this->getCacheKey($query), $callback);
+        } else {
+            $pages = $callback();
+        }
+
+        // Log the query.
+        $this->logQuery($this, 'paginate', $this->getElapsedTime($start));
+
+        // Process & return the results.
+        return $this->newProcessor()->processPaginated($pages, $perPage, $currentPage);
+    }
+
+    /**
+     * Get the cached response or execute and cache the callback value.
+     *
+     * @param string  $key
+     * @param Closure $callback
+     *
+     * @return mixed
+     */
+    protected function getCachedResponse($key, Closure $callback)
+    {
+        if ($this->flushCache) {
+            $this->cache->delete($key);
+        }
+
+        return $this->cache->remember($key, $this->cacheUntil, $callback);
+    }
+
+    /**
+     * Runs the query operation with the given filter.
+     *
+     * @param string $filter
+     *
+     * @return resource
+     */
+    protected function run($filter)
+    {
+        return $this->connection->{$this->type}(
+            $this->getDn(),
+            $filter,
+            $this->getSelects(),
+            $onlyAttributes = false,
+            $this->limit
+        );
+    }
+
+    /**
+     * Runs the paginate operation with the given filter.
+     *
+     * @param string $filter
+     * @param int    $perPage
+     * @param bool   $isCritical
+     *
+     * @return array
+     */
+    protected function runPaginate($filter, $perPage, $isCritical)
+    {
+        return $this->connection->supportsServerControlsInMethods() ?
+            $this->compatiblePaginationCallback($filter, $perPage, $isCritical) :
+            $this->deprecatedPaginationCallback($filter, $perPage, $isCritical);
+    }
+
+    /**
+     * Create a deprecated pagination callback compatible with PHP 7.2.
+     *
+     * @param string $filter
+     * @param int    $perPage
+     * @param bool   $isCritical
+     *
+     * @return array
+     */
+    protected function deprecatedPaginationCallback($filter, $perPage, $isCritical)
+    {
+        $pages = [];
+
+        $cookie = '';
+
+        do {
+            $this->connection->controlPagedResult($perPage, $isCritical, $cookie);
+
+            if (! $resource = $this->run($filter)) {
+                break;
+            }
+
+            // If we have been given a valid resource, we will retrieve the next
+            // pagination cookie to send for our next pagination request.
+            $this->connection->controlPagedResultResponse($resource, $cookie);
+
+            $pages[] = $this->parse($resource);
+        } while (!empty($cookie));
+
+        // Reset paged result on the current connection. We won't pass in the current $perPage
+        // parameter since we want to reset the page size to the default '1000'. Sending '0'
+        // eliminates any further opportunity for running queries in the same request,
+        // even though that is supposed to be the correct usage.
+        $this->connection->controlPagedResult();
+
+        return $pages;
+    }
+
+    /**
+     * Create a compatible pagination callback compatible with PHP 7.3 and greater.
+     *
+     * @param string $filter
+     * @param int    $perPage
+     * @param bool   $isCritical
+     *
+     * @return array
+     */
+    protected function compatiblePaginationCallback($filter, $perPage, $isCritical)
+    {
+        $pages = [];
+
+        // Setup our paged results control.
+        $controls = [
+            LDAP_CONTROL_PAGEDRESULTS => [
+                'oid'        => LDAP_CONTROL_PAGEDRESULTS,
+                'isCritical' => $isCritical,
+                'value'      => [
+                    'size'   => $perPage,
+                    'cookie' => '',
+                ],
+            ],
+        ];
+
+        do {
+            // Update the server controls.
+            $this->connection->setOption(LDAP_OPT_SERVER_CONTROLS, $controls);
+
+            if (! $resource = $this->run($filter)) {
+                break;
+            }
+
+            $errorCode = $dn = $errorMessage = $refs = null;
+
+            // Update the server controls with the servers response.
+            $this->connection->parseResult($resource, $errorCode, $dn, $errorMessage, $refs, $controls);
+
+            $pages[] = $this->parse($resource);
+
+            // Reset paged result on the current connection. We won't pass in the current $perPage
+            // parameter since we want to reset the page size to the default '1000'. Sending '0'
+            // eliminates any further opportunity for running queries in the same request,
+            // even though that is supposed to be the correct usage.
+            $controls[LDAP_CONTROL_PAGEDRESULTS]['value']['size'] = $perPage;
+        } while (!empty($controls[LDAP_CONTROL_PAGEDRESULTS]['value']['cookie']));
+
+        // After running the query, we will clear the LDAP server controls. This
+        // allows the controls to be automatically reset before each new query
+        // that is conducted on the same connection during each request.
+        $this->connection->setOption(LDAP_OPT_SERVER_CONTROLS, []);
+
+        return $pages;
+    }
+
+    /**
+     * Parses the given LDAP resource by retrieving its entries.
+     *
+     * @param resource $resource
+     *
+     * @return array
+     */
+    protected function parse($resource)
+    {
+        // Normalize entries. Get entries returns false on failure.
+        // We'll always want an array in this situation.
+        $entries = $this->connection->getEntries($resource) ?: [];
+
+        // Free up memory.
+        if (is_resource($resource)) {
+            $this->connection->freeResult($resource);
+        }
+
+        return $entries;
+    }
+
+    /**
+     * Returns the cache key.
+     *
+     * @param string $query
+     *
+     * @return string
+     */
+    protected function getCacheKey($query)
+    {
+        $key = $this->connection->getHost()
+            .$this->type
+            .$this->getDn()
+            .$query
+            .implode('', $this->getSelects())
+            .$this->limit
+            .$this->paginated;
+
+        return md5($key);
+    }
+
+    /**
+     * Returns the first entry in a search result.
+     *
+     * @param array|string $columns
+     *
+     * @return Model|array|null
+     */
+    public function first($columns = [])
+    {
+        $results = $this->select($columns)->limit(1)->get();
+
+        // Since results may be returned inside an array if `raw()`
+        // is specified, then we'll use our array helper
+        // to retrieve the first result.
+        return Arr::get($results, 0);
+    }
+
+    /**
+     * Returns the first entry in a search result.
+     *
+     * If no entry is found, an exception is thrown.
+     *
+     * @param array|string $columns
+     *
+     * @throws ModelNotFoundException
+     *
+     * @return Model|array
+     */
+    public function firstOrFail($columns = [])
+    {
+        $record = $this->first($columns);
+
+        if (!$record) {
+            throw (new ModelNotFoundException())
+                ->setQuery($this->getUnescapedQuery(), $this->getDn());
+        }
+
+        return $record;
+    }
+
+    /**
+     * Finds a record by the specified attribute and value.
+     *
+     * @param string       $attribute
+     * @param string       $value
+     * @param array|string $columns
+     *
+     * @return Model|array|false
+     */
+    public function findBy($attribute, $value, $columns = [])
+    {
+        try {
+            return $this->findByOrFail($attribute, $value, $columns);
+        } catch (ModelNotFoundException $e) {
+            return;
+        }
+    }
+
+    /**
+     * Finds a record by the specified attribute and value.
+     *
+     * If no record is found an exception is thrown.
+     *
+     * @param string       $attribute
+     * @param string       $value
+     * @param array|string $columns
+     *
+     * @throws ModelNotFoundException
+     *
+     * @return Model|array
+     */
+    public function findByOrFail($attribute, $value, $columns = [])
+    {
+        return $this->whereEquals($attribute, $value)->firstOrFail($columns);
+    }
+
+    /**
+     * Finds a record using ambiguous name resolution.
+     *
+     * @param string|array $value
+     * @param array|string $columns
+     *
+     * @return Model|array|null
+     */
+    public function find($value, $columns = [])
+    {
+        if (is_array($value)) {
+            return $this->findMany($value, $columns);
+        }
+
+        // If we're not using ActiveDirectory, we can't use ANR. We'll make our own query.
+        if (!is_a($this->schema, ActiveDirectory::class)) {
+            return $this->prepareAnrEquivalentQuery($value)->first($columns);
+        }
+
+        return $this->findBy($this->schema->anr(), $value, $columns);
+    }
+
+    /**
+     * Finds multiple records using ambiguous name resolution.
+     *
+     * @param array $values
+     * @param array $columns
+     *
+     * @return \Adldap\Query\Collection|array
+     */
+    public function findMany(array $values = [], $columns = [])
+    {
+        $this->select($columns);
+
+        if (!is_a($this->schema, ActiveDirectory::class)) {
+            $query = $this;
+
+            foreach ($values as $value) {
+                $query->prepareAnrEquivalentQuery($value);
+            }
+
+            return $query->get();
+        }
+
+        return $this->findManyBy($this->schema->anr(), $values);
+    }
+
+    /**
+     * Creates an ANR equivalent query for LDAP distributions that do not support ANR.
+     *
+     * @param string $value
+     *
+     * @return Builder
+     */
+    protected function prepareAnrEquivalentQuery($value)
+    {
+        return $this->orFilter(function (self $query) use ($value) {
+            $locateBy = [
+                $this->schema->name(),
+                $this->schema->email(),
+                $this->schema->userId(),
+                $this->schema->lastName(),
+                $this->schema->firstName(),
+                $this->schema->commonName(),
+                $this->schema->displayName(),
+            ];
+
+            foreach ($locateBy as $attribute) {
+                $query->whereEquals($attribute, $value);
+            }
+        });
+    }
+
+    /**
+     * Finds many records by the specified attribute.
+     *
+     * @param string $attribute
+     * @param array  $values
+     * @param array  $columns
+     *
+     * @return \Adldap\Query\Collection|array
+     */
+    public function findManyBy($attribute, array $values = [], $columns = [])
+    {
+        $query = $this->select($columns);
+
+        foreach ($values as $value) {
+            $query->orWhere([$attribute => $value]);
+        }
+
+        return $query->get();
+    }
+
+    /**
+     * Finds a record using ambiguous name resolution.
+     *
+     * If a record is not found, an exception is thrown.
+     *
+     * @param string       $value
+     * @param array|string $columns
+     *
+     * @throws ModelNotFoundException
+     *
+     * @return Model|array
+     */
+    public function findOrFail($value, $columns = [])
+    {
+        $entry = $this->find($value, $columns);
+
+        // Make sure we check if the result is an entry or an array before
+        // we throw an exception in case the user wants raw results.
+        if (!$entry instanceof Model && !is_array($entry)) {
+            throw (new ModelNotFoundException())
+                ->setQuery($this->getUnescapedQuery(), $this->getDn());
+        }
+
+        return $entry;
+    }
+
+    /**
+     * Finds a record by its distinguished name.
+     *
+     * @param string       $dn
+     * @param array|string $columns
+     *
+     * @return bool|Model
+     */
+    public function findByDn($dn, $columns = [])
+    {
+        try {
+            return $this->findByDnOrFail($dn, $columns);
+        } catch (ModelNotFoundException $e) {
+            return;
+        }
+    }
+
+    /**
+     * Finds a record by its distinguished name.
+     *
+     * Fails upon no records returned.
+     *
+     * @param string       $dn
+     * @param array|string $columns
+     *
+     * @throws ModelNotFoundException
+     *
+     * @return Model|array
+     */
+    public function findByDnOrFail($dn, $columns = [])
+    {
+        // Since we're setting our base DN to be able to retrieve a model
+        // by its distinguished name, we need to set it back to
+        // our configured base so it is not overwritten.
+        $base = $this->getDn();
+
+        $model = $this->setDn($dn)
+            ->read()
+            ->whereHas($this->schema->objectClass())
+            ->firstOrFail($columns);
+
+        // Reset the models query builder (in case a model is returned).
+        // Otherwise, we must be requesting a raw result.
+        if ($model instanceof Model) {
+            $model->setQuery($this->in($base));
+        }
+
+        return $model;
+    }
+
+    /**
+     * Finds a record by its string GUID.
+     *
+     * @param string       $guid
+     * @param array|string $columns
+     *
+     * @return Model|array|false
+     */
+    public function findByGuid($guid, $columns = [])
+    {
+        try {
+            return $this->findByGuidOrFail($guid, $columns);
+        } catch (ModelNotFoundException $e) {
+            return;
+        }
+    }
+
+    /**
+     * Finds a record by its string GUID.
+     *
+     * Fails upon no records returned.
+     *
+     * @param string       $guid
+     * @param array|string $columns
+     *
+     * @throws ModelNotFoundException
+     *
+     * @return Model|array
+     */
+    public function findByGuidOrFail($guid, $columns = [])
+    {
+        if ($this->schema->objectGuidRequiresConversion()) {
+            $guid = Utilities::stringGuidToHex($guid);
+        }
+
+        return $this->select($columns)->whereRaw([
+            $this->schema->objectGuid() => $guid,
+        ])->firstOrFail();
+    }
+
+    /**
+     * Finds a record by its Object SID.
+     *
+     * @param string       $sid
+     * @param array|string $columns
+     *
+     * @return Model|array|false
+     */
+    public function findBySid($sid, $columns = [])
+    {
+        try {
+            return $this->findBySidOrFail($sid, $columns);
+        } catch (ModelNotFoundException $e) {
+            return;
+        }
+    }
+
+    /**
+     * Finds a record by its Object SID.
+     *
+     * Fails upon no records returned.
+     *
+     * @param string       $sid
+     * @param array|string $columns
+     *
+     * @throws ModelNotFoundException
+     *
+     * @return Model|array
+     */
+    public function findBySidOrFail($sid, $columns = [])
+    {
+        return $this->findByOrFail($this->schema->objectSid(), $sid, $columns);
+    }
+
+    /**
+     * Finds the Base DN of your domain controller.
+     *
+     * @return string|bool
+     */
+    public function findBaseDn()
+    {
+        $result = $this->setDn(null)
+            ->read()
+            ->raw()
+            ->whereHas($this->schema->objectClass())
+            ->first();
+
+        $key = $this->schema->defaultNamingContext();
+
+        if (is_array($result) && array_key_exists($key, $result)) {
+            if (array_key_exists(0, $result[$key])) {
+                return $result[$key][0];
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * Adds the inserted fields to query on the current LDAP connection.
+     *
+     * @param array|string $columns
+     *
+     * @return Builder
+     */
+    public function select($columns = [])
+    {
+        $columns = is_array($columns) ? $columns : func_get_args();
+
+        if (!empty($columns)) {
+            $this->columns = $columns;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Adds a raw filter to the current query.
+     *
+     * @param array|string $filters
+     *
+     * @return Builder
+     */
+    public function rawFilter($filters = [])
+    {
+        $filters = is_array($filters) ? $filters : func_get_args();
+
+        foreach ($filters as $filter) {
+            $this->filters['raw'][] = $filter;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Adds a nested 'and' filter to the current query.
+     *
+     * @param Closure $closure
+     *
+     * @return Builder
+     */
+    public function andFilter(Closure $closure)
+    {
+        $query = $this->newNestedInstance($closure);
+
+        $filter = $this->grammar->compileAnd($query->getQuery());
+
+        return $this->rawFilter($filter);
+    }
+
+    /**
+     * Adds a nested 'or' filter to the current query.
+     *
+     * @param Closure $closure
+     *
+     * @return Builder
+     */
+    public function orFilter(Closure $closure)
+    {
+        $query = $this->newNestedInstance($closure);
+
+        $filter = $this->grammar->compileOr($query->getQuery());
+
+        return $this->rawFilter($filter);
+    }
+
+    /**
+     * Adds a nested 'not' filter to the current query.
+     *
+     * @param Closure $closure
+     *
+     * @return Builder
+     */
+    public function notFilter(Closure $closure)
+    {
+        $query = $this->newNestedInstance($closure);
+
+        $filter = $this->grammar->compileNot($query->getQuery());
+
+        return $this->rawFilter($filter);
+    }
+
+    /**
+     * Adds a where clause to the current query.
+     *
+     * @param string|array $field
+     * @param string       $operator
+     * @param string       $value
+     * @param string       $boolean
+     * @param bool         $raw
+     *
+     * @throws InvalidArgumentException
+     *
+     * @return Builder
+     */
+    public function where($field, $operator = null, $value = null, $boolean = 'and', $raw = false)
+    {
+        if (is_array($field)) {
+            // If the column is an array, we will assume it is an array of
+            // key-value pairs and can add them each as a where clause.
+            return $this->addArrayOfWheres($field, $boolean, $raw);
+        }
+
+        // We'll bypass the 'has' and 'notHas' operator since they
+        // only require two arguments inside the where method.
+        $bypass = [Operator::$has, Operator::$notHas];
+
+        // Here we will make some assumptions about the operator. If only
+        // 2 values are passed to the method, we will assume that
+        // the operator is 'equals' and keep going.
+        if (func_num_args() === 2 && in_array($operator, $bypass) === false) {
+            list($value, $operator) = [$operator, '='];
+        }
+
+        if (!in_array($operator, Operator::all())) {
+            throw new InvalidArgumentException("Invalid where operator: {$operator}");
+        }
+
+        // We'll escape the value if raw isn't requested.
+        $value = $raw ? $value : $this->escape($value);
+
+        $field = $this->escape($field, $ignore = null, 3);
+
+        $this->addFilter($boolean, compact('field', 'operator', 'value'));
+
+        return $this;
+    }
+
+    /**
+     * Adds a raw where clause to the current query.
+     *
+     * Values given to this method are not escaped.
+     *
+     * @param string|array $field
+     * @param string       $operator
+     * @param string       $value
+     *
+     * @return Builder
+     */
+    public function whereRaw($field, $operator = null, $value = null)
+    {
+        return $this->where($field, $operator, $value, 'and', true);
+    }
+
+    /**
+     * Adds a 'where equals' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return Builder
+     */
+    public function whereEquals($field, $value)
+    {
+        return $this->where($field, Operator::$equals, $value);
+    }
+
+    /**
+     * Adds a 'where not equals' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return Builder
+     */
+    public function whereNotEquals($field, $value)
+    {
+        return $this->where($field, Operator::$doesNotEqual, $value);
+    }
+
+    /**
+     * Adds a 'where approximately equals' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return Builder
+     */
+    public function whereApproximatelyEquals($field, $value)
+    {
+        return $this->where($field, Operator::$approximatelyEquals, $value);
+    }
+
+    /**
+     * Adds a 'where has' clause to the current query.
+     *
+     * @param string $field
+     *
+     * @return Builder
+     */
+    public function whereHas($field)
+    {
+        return $this->where($field, Operator::$has);
+    }
+
+    /**
+     * Adds a 'where not has' clause to the current query.
+     *
+     * @param string $field
+     *
+     * @return Builder
+     */
+    public function whereNotHas($field)
+    {
+        return $this->where($field, Operator::$notHas);
+    }
+
+    /**
+     * Adds a 'where contains' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return Builder
+     */
+    public function whereContains($field, $value)
+    {
+        return $this->where($field, Operator::$contains, $value);
+    }
+
+    /**
+     * Adds a 'where contains' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return Builder
+     */
+    public function whereNotContains($field, $value)
+    {
+        return $this->where($field, Operator::$notContains, $value);
+    }
+
+    /**
+     * Query for entries that match any of the values provided for the given field.
+     *
+     * @param string $field
+     * @param array  $values
+     *
+     * @return Builder
+     */
+    public function whereIn($field, array $values)
+    {
+        return $this->orFilter(function (self $query) use ($field, $values) {
+            foreach ($values as $value) {
+                $query->whereEquals($field, $value);
+            }
+        });
+    }
+
+    /**
+     * Adds a 'between' clause to the current query.
+     *
+     * @param string $field
+     * @param array  $values
+     *
+     * @return Builder
+     */
+    public function whereBetween($field, array $values)
+    {
+        return $this->where([
+            [$field, '>=', $values[0]],
+            [$field, '<=', $values[1]],
+        ]);
+    }
+
+    /**
+     * Adds a 'where starts with' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return Builder
+     */
+    public function whereStartsWith($field, $value)
+    {
+        return $this->where($field, Operator::$startsWith, $value);
+    }
+
+    /**
+     * Adds a 'where *not* starts with' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return Builder
+     */
+    public function whereNotStartsWith($field, $value)
+    {
+        return $this->where($field, Operator::$notStartsWith, $value);
+    }
+
+    /**
+     * Adds a 'where ends with' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return Builder
+     */
+    public function whereEndsWith($field, $value)
+    {
+        return $this->where($field, Operator::$endsWith, $value);
+    }
+
+    /**
+     * Adds a 'where *not* ends with' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return Builder
+     */
+    public function whereNotEndsWith($field, $value)
+    {
+        return $this->where($field, Operator::$notEndsWith, $value);
+    }
+
+    /**
+     * Adds a enabled filter to the current query.
+     *
+     * @return Builder
+     */
+    public function whereEnabled()
+    {
+        return $this->rawFilter($this->schema->filterEnabled());
+    }
+
+    /**
+     * Adds a disabled filter to the current query.
+     *
+     * @return Builder
+     */
+    public function whereDisabled()
+    {
+        return $this->rawFilter($this->schema->filterDisabled());
+    }
+
+    /**
+     * Adds a 'member of' filter to the current query.
+     *
+     * @param string $dn
+     *
+     * @return Builder
+     */
+    public function whereMemberOf($dn)
+    {
+        return $this->whereEquals($this->schema->memberOfRecursive(), $dn);
+    }
+
+    /**
+     * Adds an 'or where' clause to the current query.
+     *
+     * @param array|string $field
+     * @param string|null  $operator
+     * @param string|null  $value
+     *
+     * @return Builder
+     */
+    public function orWhere($field, $operator = null, $value = null)
+    {
+        return $this->where($field, $operator, $value, 'or');
+    }
+
+    /**
+     * Adds a raw or where clause to the current query.
+     *
+     * Values given to this method are not escaped.
+     *
+     * @param string $field
+     * @param string $operator
+     * @param string $value
+     *
+     * @return Builder
+     */
+    public function orWhereRaw($field, $operator = null, $value = null)
+    {
+        return $this->where($field, $operator, $value, 'or', true);
+    }
+
+    /**
+     * Adds an 'or where has' clause to the current query.
+     *
+     * @param string $field
+     *
+     * @return Builder
+     */
+    public function orWhereHas($field)
+    {
+        return $this->orWhere($field, Operator::$has);
+    }
+
+    /**
+     * Adds a 'where not has' clause to the current query.
+     *
+     * @param string $field
+     *
+     * @return Builder
+     */
+    public function orWhereNotHas($field)
+    {
+        return $this->orWhere($field, Operator::$notHas);
+    }
+
+    /**
+     * Adds an 'or where equals' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return Builder
+     */
+    public function orWhereEquals($field, $value)
+    {
+        return $this->orWhere($field, Operator::$equals, $value);
+    }
+
+    /**
+     * Adds an 'or where not equals' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return Builder
+     */
+    public function orWhereNotEquals($field, $value)
+    {
+        return $this->orWhere($field, Operator::$doesNotEqual, $value);
+    }
+
+    /**
+     * Adds a 'or where approximately equals' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return Builder
+     */
+    public function orWhereApproximatelyEquals($field, $value)
+    {
+        return $this->orWhere($field, Operator::$approximatelyEquals, $value);
+    }
+
+    /**
+     * Adds an 'or where contains' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return Builder
+     */
+    public function orWhereContains($field, $value)
+    {
+        return $this->orWhere($field, Operator::$contains, $value);
+    }
+
+    /**
+     * Adds an 'or where *not* contains' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return Builder
+     */
+    public function orWhereNotContains($field, $value)
+    {
+        return $this->orWhere($field, Operator::$notContains, $value);
+    }
+
+    /**
+     * Adds an 'or where starts with' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return Builder
+     */
+    public function orWhereStartsWith($field, $value)
+    {
+        return $this->orWhere($field, Operator::$startsWith, $value);
+    }
+
+    /**
+     * Adds an 'or where *not* starts with' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return Builder
+     */
+    public function orWhereNotStartsWith($field, $value)
+    {
+        return $this->orWhere($field, Operator::$notStartsWith, $value);
+    }
+
+    /**
+     * Adds an 'or where ends with' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return Builder
+     */
+    public function orWhereEndsWith($field, $value)
+    {
+        return $this->orWhere($field, Operator::$endsWith, $value);
+    }
+
+    /**
+     * Adds an 'or where *not* ends with' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return Builder
+     */
+    public function orWhereNotEndsWith($field, $value)
+    {
+        return $this->orWhere($field, Operator::$notEndsWith, $value);
+    }
+
+    /**
+     * Adds an 'or where member of' filter to the current query.
+     *
+     * @param string $dn
+     *
+     * @return Builder
+     */
+    public function orWhereMemberOf($dn)
+    {
+        return $this->orWhereEquals($this->schema->memberOfRecursive(), $dn);
+    }
+
+    /**
+     * Adds a filter onto the current query.
+     *
+     * @param string $type     The type of filter to add.
+     * @param array  $bindings The bindings of the filter.
+     *
+     * @throws InvalidArgumentException
+     *
+     * @return $this
+     */
+    public function addFilter($type, array $bindings)
+    {
+        // Here we will ensure we have been given a proper filter type.
+        if (!array_key_exists($type, $this->filters)) {
+            throw new InvalidArgumentException("Invalid filter type: {$type}.");
+        }
+
+        // The required filter key bindings.
+        $required = ['field', 'operator', 'value'];
+
+        // Here we will ensure the proper key bindings are given.
+        if (count(array_intersect_key(array_flip($required), $bindings)) !== count($required)) {
+            // Retrieve the keys that are missing in the bindings array.
+            $missing = implode(', ', array_diff($required, array_flip($bindings)));
+
+            throw new InvalidArgumentException("Invalid filter bindings. Missing: {$missing} keys.");
+        }
+
+        $this->filters[$type][] = $bindings;
+
+        return $this;
+    }
+
+    /**
+     * Clear the query builders filters.
+     *
+     * @return $this
+     */
+    public function clearFilters()
+    {
+        foreach ($this->filters as $type => $filters) {
+            $this->filters[$type] = [];
+        }
+
+        return $this;
+    }
+
+    /**
+     * Returns true / false depending if the current object
+     * contains selects.
+     *
+     * @return bool
+     */
+    public function hasSelects()
+    {
+        return count($this->getSelects()) > 0;
+    }
+
+    /**
+     * Returns the current selected fields to retrieve.
+     *
+     * @return array
+     */
+    public function getSelects()
+    {
+        $selects = $this->columns;
+
+        // If the asterisk is not provided in the selected columns, we need to
+        // ensure we always select the object class and category, as these
+        // are used for constructing models. The asterisk indicates that
+        // we want all attributes returned for LDAP records.
+        if (!in_array('*', $selects)) {
+            $selects[] = $this->schema->objectCategory();
+            $selects[] = $this->schema->objectClass();
+        }
+
+        return $selects;
+    }
+
+    /**
+     * Sorts the LDAP search results by the specified field and direction.
+     *
+     * @param string   $field
+     * @param string   $direction
+     * @param int|null $flags
+     *
+     * @return Builder
+     */
+    public function sortBy($field, $direction = 'asc', $flags = null)
+    {
+        $this->sortByField = $field;
+
+        // Normalize direction.
+        $direction = strtolower($direction);
+
+        if ($direction === 'asc' || $direction === 'desc') {
+            $this->sortByDirection = $direction;
+        }
+
+        if (is_null($flags)) {
+            $this->sortByFlags = SORT_NATURAL + SORT_FLAG_CASE;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Set the query to search on the base distinguished name.
+     *
+     * This will result in one record being returned.
+     *
+     * @return Builder
+     */
+    public function read()
+    {
+        $this->type = 'read';
+
+        return $this;
+    }
+
+    /**
+     * Set the query to search one level on the base distinguished name.
+     *
+     * @return Builder
+     */
+    public function listing()
+    {
+        $this->type = 'listing';
+
+        return $this;
+    }
+
+    /**
+     * Sets the query to search the entire directory on the base distinguished name.
+     *
+     * @return Builder
+     */
+    public function recursive()
+    {
+        $this->type = 'search';
+
+        return $this;
+    }
+
+    /**
+     * Whether to return the LDAP results in their raw format.
+     *
+     * @param bool $raw
+     *
+     * @return Builder
+     */
+    public function raw($raw = true)
+    {
+        $this->raw = (bool) $raw;
+
+        return $this;
+    }
+
+    /**
+     * Whether the current query is nested.
+     *
+     * @param bool $nested
+     *
+     * @return Builder
+     */
+    public function nested($nested = true)
+    {
+        $this->nested = (bool) $nested;
+
+        return $this;
+    }
+
+    /**
+     * Enables caching on the current query until the given date.
+     *
+     * If flushing is enabled, the query cache will be flushed and then re-cached.
+     *
+     * @param \DateTimeInterface $until When to expire the query cache.
+     * @param bool               $flush Whether to force-flush the query cache.
+     *
+     * @return $this
+     */
+    public function cache(\DateTimeInterface $until = null, $flush = false)
+    {
+        $this->caching = true;
+        $this->cacheUntil = $until;
+        $this->flushCache = $flush;
+
+        return $this;
+    }
+
+    /**
+     * Returns an escaped string for use in an LDAP filter.
+     *
+     * @param string $value
+     * @param string $ignore
+     * @param int    $flags
+     *
+     * @return string
+     */
+    public function escape($value, $ignore = '', $flags = 0)
+    {
+        return ldap_escape($value, $ignore, $flags);
+    }
+
+    /**
+     * Returns the query builders sort by field.
+     *
+     * @return string
+     */
+    public function getSortByField()
+    {
+        return $this->sortByField;
+    }
+
+    /**
+     * Returns the query builders sort by direction.
+     *
+     * @return string
+     */
+    public function getSortByDirection()
+    {
+        return $this->sortByDirection;
+    }
+
+    /**
+     * Returns the query builders sort by flags.
+     *
+     * @return int
+     */
+    public function getSortByFlags()
+    {
+        return $this->sortByFlags;
+    }
+
+    /**
+     * Returns true / false if the current query is nested.
+     *
+     * @return bool
+     */
+    public function isNested()
+    {
+        return $this->nested === true;
+    }
+
+    /**
+     * Returns bool that determines whether the current
+     * query builder will return raw results.
+     *
+     * @return bool
+     */
+    public function isRaw()
+    {
+        return $this->raw;
+    }
+
+    /**
+     * Returns bool that determines whether the current
+     * query builder will return paginated results.
+     *
+     * @return bool
+     */
+    public function isPaginated()
+    {
+        return $this->paginated;
+    }
+
+    /**
+     * Returns bool that determines whether the current
+     * query builder will return sorted results.
+     *
+     * @return bool
+     */
+    public function isSorted()
+    {
+        return $this->sortByField ? true : false;
+    }
+
+    /**
+     * Handle dynamic method calls on the query builder object to be directed to the query processor.
+     *
+     * @param string $method
+     * @param array  $parameters
+     *
+     * @return mixed
+     */
+    public function __call($method, $parameters)
+    {
+        // We'll check if the beginning of the method being called contains
+        // 'where'. If so, we'll assume it's a dynamic 'where' clause.
+        if (substr($method, 0, 5) === 'where') {
+            return $this->dynamicWhere($method, $parameters);
+        }
+
+        return call_user_func_array([$this->newProcessor(), $method], $parameters);
+    }
+
+    /**
+     * Handles dynamic "where" clauses to the query.
+     *
+     * @param string $method
+     * @param array  $parameters
+     *
+     * @return Builder
+     */
+    public function dynamicWhere($method, $parameters)
+    {
+        $finder = substr($method, 5);
+
+        $segments = preg_split('/(And|Or)(?=[A-Z])/', $finder, -1, PREG_SPLIT_DELIM_CAPTURE);
+
+        // The connector variable will determine which connector will be used for the
+        // query condition. We will change it as we come across new boolean values
+        // in the dynamic method strings, which could contain a number of these.
+        $connector = 'and';
+
+        $index = 0;
+
+        foreach ($segments as $segment) {
+            // If the segment is not a boolean connector, we can assume it is a column's name
+            // and we will add it to the query as a new constraint as a where clause, then
+            // we can keep iterating through the dynamic method string's segments again.
+            if ($segment != 'And' && $segment != 'Or') {
+                $this->addDynamic($segment, $connector, $parameters, $index);
+
+                $index++;
+            }
+
+            // Otherwise, we will store the connector so we know how the next where clause we
+            // find in the query should be connected to the previous ones, meaning we will
+            // have the proper boolean connector to connect the next where clause found.
+            else {
+                $connector = $segment;
+            }
+        }
+
+        return $this;
+    }
+
+    /**
+     * Adds an array of wheres to the current query.
+     *
+     * @param array  $wheres
+     * @param string $boolean
+     * @param bool   $raw
+     *
+     * @return Builder
+     */
+    protected function addArrayOfWheres($wheres, $boolean, $raw)
+    {
+        foreach ($wheres as $key => $value) {
+            if (is_numeric($key) && is_array($value)) {
+                // If the key is numeric and the value is an array, we'll
+                // assume we've been given an array with conditionals.
+                list($field, $condition) = $value;
+
+                // Since a value is optional for some conditionals, we will
+                // try and retrieve the third parameter from the array,
+                // but is entirely optional.
+                $value = Arr::get($value, 2);
+
+                $this->where($field, $condition, $value, $boolean);
+            } else {
+                // If the value is not an array, we will assume an equals clause.
+                $this->where($key, Operator::$equals, $value, $boolean, $raw);
+            }
+        }
+
+        return $this;
+    }
+
+    /**
+     * Add a single dynamic where clause statement to the query.
+     *
+     * @param string $segment
+     * @param string $connector
+     * @param array  $parameters
+     * @param int    $index
+     *
+     * @return void
+     */
+    protected function addDynamic($segment, $connector, $parameters, $index)
+    {
+        // We'll format the 'where' boolean and field here to avoid casing issues.
+        $bool = strtolower($connector);
+        $field = strtolower($segment);
+
+        $this->where($field, '=', $parameters[$index], $bool);
+    }
+
+    /**
+     * Logs the given executed query information by firing its query event.
+     *
+     * @param Builder    $query
+     * @param string     $type
+     * @param null|float $time
+     */
+    protected function logQuery($query, $type, $time = null)
+    {
+        $args = [$query, $time];
+
+        switch ($type) {
+            case 'listing':
+                $event = new Events\Listing(...$args);
+                break;
+            case 'read':
+                $event = new Events\Read(...$args);
+                break;
+            case 'paginate':
+                $event = new Events\Paginate(...$args);
+                break;
+            default:
+                $event = new Events\Search(...$args);
+                break;
+        }
+
+        $this->fireQueryEvent($event);
+    }
+
+    /**
+     * Fires the given query event.
+     *
+     * @param QueryExecuted $event
+     */
+    protected function fireQueryEvent(QueryExecuted $event)
+    {
+        Adldap::getEventDispatcher()->fire($event);
+    }
+
+    /**
+     * Get the elapsed time since a given starting point.
+     *
+     * @param int $start
+     *
+     * @return float
+     */
+    protected function getElapsedTime($start)
+    {
+        return round((microtime(true) - $start) * 1000, 2);
+    }
+
+    /**
+     * Returns a new query Processor instance.
+     *
+     * @return Processor
+     */
+    protected function newProcessor()
+    {
+        return new Processor($this);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Cache.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Cache.php
new file mode 100644
index 0000000..9b0206a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Cache.php
@@ -0,0 +1,95 @@
+<?php
+
+namespace Adldap\Query;
+
+use Closure;
+use Psr\SimpleCache\CacheInterface;
+
+class Cache
+{
+    /**
+     * The cache driver.
+     *
+     * @var CacheInterface
+     */
+    protected $store;
+
+    /**
+     * Constructor.
+     *
+     * @param CacheInterface $store
+     */
+    public function __construct(CacheInterface $store)
+    {
+        $this->store = $store;
+    }
+
+    /**
+     * Get an item from the cache.
+     *
+     * @param string $key
+     *
+     * @throws \Psr\SimpleCache\InvalidArgumentException
+     *
+     * @return mixed
+     */
+    public function get($key)
+    {
+        return $this->store->get($key);
+    }
+
+    /**
+     * Store an item in the cache.
+     *
+     * @param string                                    $key
+     * @param mixed                                     $value
+     * @param \DateTimeInterface|\DateInterval|int|null $ttl
+     *
+     * @throws \Psr\SimpleCache\InvalidArgumentException
+     *
+     * @return bool
+     */
+    public function put($key, $value, $ttl = null)
+    {
+        return $this->store->set($key, $value, $ttl);
+    }
+
+    /**
+     * Get an item from the cache, or execute the given Closure and store the result.
+     *
+     * @param string                                    $key
+     * @param \DateTimeInterface|\DateInterval|int|null $ttl
+     * @param Closure                                   $callback
+     *
+     * @throws \Psr\SimpleCache\InvalidArgumentException
+     *
+     * @return mixed
+     */
+    public function remember($key, $ttl, Closure $callback)
+    {
+        $value = $this->get($key);
+
+        if (!is_null($value)) {
+            return $value;
+        }
+
+        $this->put($key, $value = $callback(), $ttl);
+
+        return $value;
+    }
+
+    /**
+     * Delete an item from the cache.
+     *
+     * @param string $key
+     *
+     * @throws \Psr\Cache\InvalidArgumentException
+     * @throws \Psr\SimpleCache\InvalidArgumentException
+     *
+     * @return bool
+     */
+    public function delete($key)
+    {
+        return $this->store->delete($key);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Collection.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Collection.php
new file mode 100644
index 0000000..b9b6616
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Collection.php
@@ -0,0 +1,27 @@
+<?php
+
+namespace Adldap\Query;
+
+use Adldap\Models\Model;
+use Illuminate\Support\Collection as BaseCollection;
+
+class Collection extends BaseCollection
+{
+    /**
+     * {@inheritdoc}
+     */
+    protected function valueRetriever($value)
+    {
+        if ($this->useAsCallable($value)) {
+            return $value;
+        }
+
+        return function ($item) use ($value) {
+            if ($item instanceof Model) {
+                return $item->getFirstAttribute($value);
+            }
+
+            return data_get($item, $value);
+        };
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Events/Listing.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Events/Listing.php
new file mode 100644
index 0000000..0ca05b7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Events/Listing.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Adldap\Query\Events;
+
+class Listing extends QueryExecuted
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Events/Paginate.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Events/Paginate.php
new file mode 100644
index 0000000..2a7666d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Events/Paginate.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Adldap\Query\Events;
+
+class Paginate extends QueryExecuted
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Events/QueryExecuted.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Events/QueryExecuted.php
new file mode 100644
index 0000000..3779276
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Events/QueryExecuted.php
@@ -0,0 +1,54 @@
+<?php
+
+namespace Adldap\Query\Events;
+
+use Adldap\Query\Builder;
+
+class QueryExecuted
+{
+    /**
+     * The LDAP filter that was used for the query.
+     *
+     * @var string
+     */
+    protected $query;
+
+    /**
+     * The number of milliseconds it took to execute the query.
+     *
+     * @var float
+     */
+    protected $time;
+
+    /**
+     * Constructor.
+     *
+     * @param Builder    $query
+     * @param null|float $time
+     */
+    public function __construct(Builder $query, $time = null)
+    {
+        $this->query = $query;
+        $this->time = $time;
+    }
+
+    /**
+     * Returns the LDAP filter that was used for the query.
+     *
+     * @return Builder
+     */
+    public function getQuery()
+    {
+        return $this->query;
+    }
+
+    /**
+     * Returns the number of milliseconds it took to execute the query.
+     *
+     * @return float|null
+     */
+    public function getTime()
+    {
+        return $this->time;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Events/Read.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Events/Read.php
new file mode 100644
index 0000000..4e0e65d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Events/Read.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Adldap\Query\Events;
+
+class Read extends QueryExecuted
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Events/Search.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Events/Search.php
new file mode 100644
index 0000000..35fe913
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Events/Search.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Adldap\Query\Events;
+
+class Search extends QueryExecuted
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Factory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Factory.php
new file mode 100644
index 0000000..199107e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Factory.php
@@ -0,0 +1,297 @@
+<?php
+
+namespace Adldap\Query;
+
+use Adldap\Models\RootDse;
+use Adldap\Schemas\ActiveDirectory;
+use Adldap\Schemas\SchemaInterface;
+use Adldap\Connections\ConnectionInterface;
+
+/**
+ * Adldap2 Search Factory.
+ *
+ * Constructs new LDAP queries.
+ *
+ *
+ * @mixin Builder
+ */
+class Factory
+{
+    /**
+     * @var ConnectionInterface
+     */
+    protected $connection;
+
+    /**
+     * Stores the current schema instance.
+     *
+     * @var SchemaInterface
+     */
+    protected $schema;
+
+    /**
+     * The base DN to use for the search.
+     *
+     * @var string|null
+     */
+    protected $base;
+
+    /**
+     * The query cache.
+     *
+     * @var Cache
+     */
+    protected $cache;
+
+    /**
+     * Constructor.
+     *
+     * @param ConnectionInterface  $connection The connection to use when constructing a new query.
+     * @param SchemaInterface|null $schema     The schema to use for the query and models located.
+     * @param string               $baseDn     The base DN to use for all searches.
+     */
+    public function __construct(ConnectionInterface $connection, SchemaInterface $schema = null, $baseDn = '')
+    {
+        $this->setConnection($connection)
+            ->setSchema($schema)
+            ->setBaseDn($baseDn);
+    }
+
+    /**
+     * Sets the connection property.
+     *
+     * @param ConnectionInterface $connection
+     *
+     * @return $this
+     */
+    public function setConnection(ConnectionInterface $connection)
+    {
+        $this->connection = $connection;
+
+        return $this;
+    }
+
+    /**
+     * Sets the schema property.
+     *
+     * @param SchemaInterface|null $schema
+     *
+     * @return $this
+     */
+    public function setSchema(SchemaInterface $schema = null)
+    {
+        $this->schema = $schema ?: new ActiveDirectory();
+
+        return $this;
+    }
+
+    /**
+     * Sets the base distinguished name to perform searches upon.
+     *
+     * @param string $base
+     *
+     * @return $this
+     */
+    public function setBaseDn($base = '')
+    {
+        $this->base = $base;
+
+        return $this;
+    }
+
+    /**
+     * Sets the cache for storing query results.
+     *
+     * @param Cache $cache
+     *
+     * @return $this
+     */
+    public function setCache(Cache $cache)
+    {
+        $this->cache = $cache;
+
+        return $this;
+    }
+
+    /**
+     * Returns a new query builder instance.
+     *
+     * @return Builder
+     */
+    public function newQuery()
+    {
+        return $this->newBuilder()->in($this->base);
+    }
+
+    /**
+     * Performs a global 'all' search query on the current
+     * connection by performing a search for all entries
+     * that contain a common name attribute.
+     *
+     * @return \Adldap\Query\Collection|array
+     */
+    public function get()
+    {
+        return $this->newQuery()->whereHas($this->schema->commonName())->get();
+    }
+
+    /**
+     * Returns a query builder scoped to users.
+     *
+     * @return Builder
+     */
+    public function users()
+    {
+        $wheres = [
+            [$this->schema->objectClass(), Operator::$equals, $this->schema->objectClassUser()],
+            [$this->schema->objectCategory(), Operator::$equals, $this->schema->objectCategoryPerson()],
+        ];
+
+        // OpenLDAP doesn't like specifying the omission of user objectclasses
+        // equal to `contact`. We'll make sure we're working with
+        // ActiveDirectory before adding this filter.
+        if (is_a($this->schema, ActiveDirectory::class)) {
+            $wheres[] = [$this->schema->objectClass(), Operator::$doesNotEqual, $this->schema->objectClassContact()];
+        }
+
+        return $this->where($wheres);
+    }
+
+    /**
+     * Returns a query builder scoped to printers.
+     *
+     * @return Builder
+     */
+    public function printers()
+    {
+        return $this->where([
+            $this->schema->objectClass() => $this->schema->objectClassPrinter(),
+        ]);
+    }
+
+    /**
+     * Returns a query builder scoped to organizational units.
+     *
+     * @return Builder
+     */
+    public function ous()
+    {
+        return $this->where([
+            $this->schema->objectClass() => $this->schema->objectClassOu(),
+        ]);
+    }
+
+    /**
+     * Returns a query builder scoped to organizations.
+     *
+     * @return Builder
+     */
+    public function organizations()
+    {
+        return $this->where([
+            $this->schema->objectClass() => $this->schema->objectClassOrganization(),
+        ]);
+    }
+
+    /**
+     * Returns a query builder scoped to groups.
+     *
+     * @return Builder
+     */
+    public function groups()
+    {
+        return $this->where([
+            $this->schema->objectClass() => $this->schema->objectClassGroup(),
+        ]);
+    }
+
+    /**
+     * Returns a query builder scoped to containers.
+     *
+     * @return Builder
+     */
+    public function containers()
+    {
+        return $this->where([
+            $this->schema->objectClass() => $this->schema->objectClassContainer(),
+        ]);
+    }
+
+    /**
+     * Returns a query builder scoped to contacts.
+     *
+     * @return Builder
+     */
+    public function contacts()
+    {
+        return $this->where([
+            $this->schema->objectClass() => $this->schema->objectClassContact(),
+        ]);
+    }
+
+    /**
+     * Returns a query builder scoped to computers.
+     *
+     * @return Builder
+     */
+    public function computers()
+    {
+        return $this->where([
+            $this->schema->objectClass() => $this->schema->objectClassComputer(),
+        ]);
+    }
+
+    /**
+     * Returns the root DSE record.
+     *
+     * @return RootDse|null
+     */
+    public function getRootDse()
+    {
+        $query = $this->newQuery();
+
+        $root = $query->in('')->read()->whereHas($this->schema->objectClass())->first();
+
+        if ($root) {
+            return (new RootDse([], $query))
+                ->setRawAttributes($root->getAttributes());
+        }
+    }
+
+    /**
+     * Handle dynamic method calls on the query builder object.
+     *
+     * @param string $method
+     * @param array  $parameters
+     *
+     * @return mixed
+     */
+    public function __call($method, $parameters)
+    {
+        return call_user_func_array([$this->newQuery(), $method], $parameters);
+    }
+
+    /**
+     * Returns a new query grammar instance.
+     *
+     * @return Grammar
+     */
+    protected function newGrammar()
+    {
+        return new Grammar();
+    }
+
+    /**
+     * Returns a new query builder instance.
+     *
+     * @return Builder
+     */
+    protected function newBuilder()
+    {
+        $builder = new Builder($this->connection, $this->newGrammar(), $this->schema);
+
+        $builder->setCache($this->cache);
+
+        return $builder;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Grammar.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Grammar.php
new file mode 100644
index 0000000..dcda3d7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Grammar.php
@@ -0,0 +1,390 @@
+<?php
+
+namespace Adldap\Query;
+
+class Grammar
+{
+    /**
+     * Wraps a query string in brackets.
+     *
+     * Produces: (query)
+     *
+     * @param string $query
+     * @param string $prefix
+     * @param string $suffix
+     *
+     * @return string
+     */
+    public function wrap($query, $prefix = '(', $suffix = ')')
+    {
+        return $prefix.$query.$suffix;
+    }
+
+    /**
+     * Compiles the Builder instance into an LDAP query string.
+     *
+     * @param Builder $builder
+     *
+     * @return string
+     */
+    public function compile(Builder $builder)
+    {
+        $ands = $builder->filters['and'];
+        $ors = $builder->filters['or'];
+        $raws = $builder->filters['raw'];
+
+        $query = $this->concatenate($raws);
+
+        $query = $this->compileWheres($ands, $query);
+
+        $query = $this->compileOrWheres($ors, $query);
+
+        // We need to check if the query is already nested, otherwise
+        // we'll nest it here and return the result.
+        if (!$builder->isNested()) {
+            $total = count($ands) + count($raws);
+
+            // Make sure we wrap the query in an 'and' if using
+            // multiple filters. We also need to check if only
+            // one where is used with multiple orWheres, that
+            // we wrap it in an `and` query.
+            if ($total > 1 || (count($ands) === 1 && count($ors) > 0)) {
+                $query = $this->compileAnd($query);
+            }
+        }
+
+        return $query;
+    }
+
+    /**
+     * Concatenates filters into a single string.
+     *
+     * @param array $bindings
+     *
+     * @return string
+     */
+    public function concatenate(array $bindings = [])
+    {
+        // Filter out empty query segments.
+        $bindings = array_filter($bindings, function ($value) {
+            return (string) $value !== '';
+        });
+
+        return implode('', $bindings);
+    }
+
+    /**
+     * Returns a query string for equals.
+     *
+     * Produces: (field=value)
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileEquals($field, $value)
+    {
+        return $this->wrap($field.Operator::$equals.$value);
+    }
+
+    /**
+     * Returns a query string for does not equal.
+     *
+     * Produces: (!(field=value))
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileDoesNotEqual($field, $value)
+    {
+        return $this->compileNot($this->compileEquals($field, $value));
+    }
+
+    /**
+     * Alias for does not equal operator (!=) operator.
+     *
+     * Produces: (!(field=value))
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileDoesNotEqualAlias($field, $value)
+    {
+        return $this->compileDoesNotEqual($field, $value);
+    }
+
+    /**
+     * Returns a query string for greater than or equals.
+     *
+     * Produces: (field>=value)
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileGreaterThanOrEquals($field, $value)
+    {
+        return $this->wrap($field.Operator::$greaterThanOrEquals.$value);
+    }
+
+    /**
+     * Returns a query string for less than or equals.
+     *
+     * Produces: (field<=value)
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileLessThanOrEquals($field, $value)
+    {
+        return $this->wrap($field.Operator::$lessThanOrEquals.$value);
+    }
+
+    /**
+     * Returns a query string for approximately equals.
+     *
+     * Produces: (field~=value)
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileApproximatelyEquals($field, $value)
+    {
+        return $this->wrap($field.Operator::$approximatelyEquals.$value);
+    }
+
+    /**
+     * Returns a query string for starts with.
+     *
+     * Produces: (field=value*)
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileStartsWith($field, $value)
+    {
+        return $this->wrap($field.Operator::$equals.$value.Operator::$has);
+    }
+
+    /**
+     * Returns a query string for does not start with.
+     *
+     * Produces: (!(field=*value))
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileNotStartsWith($field, $value)
+    {
+        return $this->compileNot($this->compileStartsWith($field, $value));
+    }
+
+    /**
+     * Returns a query string for ends with.
+     *
+     * Produces: (field=*value)
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileEndsWith($field, $value)
+    {
+        return $this->wrap($field.Operator::$equals.Operator::$has.$value);
+    }
+
+    /**
+     * Returns a query string for does not end with.
+     *
+     * Produces: (!(field=value*))
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileNotEndsWith($field, $value)
+    {
+        return $this->compileNot($this->compileEndsWith($field, $value));
+    }
+
+    /**
+     * Returns a query string for contains.
+     *
+     * Produces: (field=*value*)
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileContains($field, $value)
+    {
+        return $this->wrap($field.Operator::$equals.Operator::$has.$value.Operator::$has);
+    }
+
+    /**
+     * Returns a query string for does not contain.
+     *
+     * Produces: (!(field=*value*))
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileNotContains($field, $value)
+    {
+        return $this->compileNot($this->compileContains($field, $value));
+    }
+
+    /**
+     * Returns a query string for a where has.
+     *
+     * Produces: (field=*)
+     *
+     * @param string $field
+     *
+     * @return string
+     */
+    public function compileHas($field)
+    {
+        return $this->wrap($field.Operator::$equals.Operator::$has);
+    }
+
+    /**
+     * Returns a query string for a where does not have.
+     *
+     * Produces: (!(field=*))
+     *
+     * @param string $field
+     *
+     * @return string
+     */
+    public function compileNotHas($field)
+    {
+        return $this->compileNot($this->compileHas($field));
+    }
+
+    /**
+     * Wraps the inserted query inside an AND operator.
+     *
+     * Produces: (&query)
+     *
+     * @param string $query
+     *
+     * @return string
+     */
+    public function compileAnd($query)
+    {
+        return $query ? $this->wrap($query, '(&') : '';
+    }
+
+    /**
+     * Wraps the inserted query inside an OR operator.
+     *
+     * Produces: (|query)
+     *
+     * @param string $query
+     *
+     * @return string
+     */
+    public function compileOr($query)
+    {
+        return $query ? $this->wrap($query, '(|') : '';
+    }
+
+    /**
+     * Wraps the inserted query inside an NOT operator.
+     *
+     * @param string $query
+     *
+     * @return string
+     */
+    public function compileNot($query)
+    {
+        return $query ? $this->wrap($query, '(!') : '';
+    }
+
+    /**
+     * Assembles all where clauses in the current wheres property.
+     *
+     * @param array  $wheres
+     * @param string $query
+     *
+     * @return string
+     */
+    protected function compileWheres(array $wheres = [], $query = '')
+    {
+        foreach ($wheres as $where) {
+            $query .= $this->compileWhere($where);
+        }
+
+        return $query;
+    }
+
+    /**
+     * Assembles all or where clauses in the current orWheres property.
+     *
+     * @param array  $orWheres
+     * @param string $query
+     *
+     * @return string
+     */
+    protected function compileOrWheres(array $orWheres = [], $query = '')
+    {
+        $or = '';
+
+        foreach ($orWheres as $where) {
+            $or .= $this->compileWhere($where);
+        }
+
+        // Make sure we wrap the query in an 'or' if using multiple
+        // orWheres. For example (|(QUERY)(ORWHEREQUERY)).
+        if (($query && count($orWheres) > 0) || count($orWheres) > 1) {
+            $query .= $this->compileOr($or);
+        } else {
+            $query .= $or;
+        }
+
+        return $query;
+    }
+
+    /**
+     * Assembles a single where query based
+     * on its operator and returns it.
+     *
+     * @param array $where
+     *
+     * @return string|null
+     */
+    protected function compileWhere(array $where)
+    {
+        // Get the name of the operator.
+        if ($name = array_search($where['operator'], Operator::all())) {
+            // If the name was found we'll camel case it
+            // to run it through the compile method.
+            $method = 'compile'.ucfirst($name);
+
+            // Make sure the compile method exists for the operator.
+            if (method_exists($this, $method)) {
+                return $this->{$method}($where['field'], $where['value']);
+            }
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Operator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Operator.php
new file mode 100644
index 0000000..75b3289
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Operator.php
@@ -0,0 +1,116 @@
+<?php
+
+namespace Adldap\Query;
+
+use ReflectionClass;
+
+class Operator
+{
+    /**
+     * The 'has' wildcard operator.
+     *
+     * @var string
+     */
+    public static $has = '*';
+
+    /**
+     * The custom `notHas` operator.
+     *
+     * @var string
+     */
+    public static $notHas = '!*';
+
+    /**
+     * The equals operator.
+     *
+     * @var string
+     */
+    public static $equals = '=';
+
+    /**
+     * The does not equal operator.
+     *
+     * @var string
+     */
+    public static $doesNotEqual = '!';
+
+    /**
+     * The does not equal operator (alias).
+     *
+     * @var string
+     */
+    public static $doesNotEqualAlias = '!=';
+
+    /**
+     * The greater than or equal to operator.
+     *
+     * @var string
+     */
+    public static $greaterThanOrEquals = '>=';
+
+    /**
+     * The less than or equal to operator.
+     *
+     * @var string
+     */
+    public static $lessThanOrEquals = '<=';
+
+    /**
+     * The approximately equal to operator.
+     *
+     * @var string
+     */
+    public static $approximatelyEquals = '~=';
+
+    /**
+     * The custom starts with operator.
+     *
+     * @var string
+     */
+    public static $startsWith = 'starts_with';
+
+    /**
+     * The custom not starts with operator.
+     *
+     * @var string
+     */
+    public static $notStartsWith = 'not_starts_with';
+
+    /**
+     * The custom ends with operator.
+     *
+     * @var string
+     */
+    public static $endsWith = 'ends_with';
+
+    /**
+     * The custom not ends with operator.
+     *
+     * @var string
+     */
+    public static $notEndsWith = 'not_ends_with';
+
+    /**
+     * The custom contains operator.
+     *
+     * @var string
+     */
+    public static $contains = 'contains';
+
+    /**
+     * The custom not contains operator.
+     *
+     * @var string
+     */
+    public static $notContains = 'not_contains';
+
+    /**
+     * Returns all available operators.
+     *
+     * @return array
+     */
+    public static function all()
+    {
+        return (new ReflectionClass(new static()))->getStaticProperties();
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Paginator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Paginator.php
new file mode 100644
index 0000000..0f61fe2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Paginator.php
@@ -0,0 +1,206 @@
+<?php
+
+namespace Adldap\Query;
+
+use Countable;
+use ArrayIterator;
+use IteratorAggregate;
+
+class Paginator implements Countable, IteratorAggregate
+{
+    /**
+     * The complete results array.
+     *
+     * @var array
+     */
+    protected $results = [];
+
+    /**
+     * The total amount of pages.
+     *
+     * @var int
+     */
+    protected $pages;
+
+    /**
+     * The amount of entries per page.
+     *
+     * @var int
+     */
+    protected $perPage;
+
+    /**
+     * The current page number.
+     *
+     * @var int
+     */
+    protected $currentPage;
+
+    /**
+     * The current entry offset number.
+     *
+     * @var int
+     */
+    protected $currentOffset;
+
+    /**
+     * Constructor.
+     *
+     * @param array $results
+     * @param int   $perPage
+     * @param int   $currentPage
+     * @param int   $pages
+     */
+    public function __construct(array $results = [], $perPage = 50, $currentPage = 0, $pages = 0)
+    {
+        $this->setResults($results)
+            ->setPerPage($perPage)
+            ->setCurrentPage($currentPage)
+            ->setPages($pages)
+            ->setCurrentOffset(($this->getCurrentPage() * $this->getPerPage()));
+    }
+
+    /**
+     * Get an iterator for the entries.
+     *
+     * @return ArrayIterator
+     */
+    public function getIterator()
+    {
+        $entries = array_slice($this->getResults(), $this->getCurrentOffset(), $this->getPerPage(), true);
+
+        return new ArrayIterator($entries);
+    }
+
+    /**
+     * Returns the complete results array.
+     *
+     * @return array
+     */
+    public function getResults()
+    {
+        return $this->results;
+    }
+
+    /**
+     * Returns the total amount of pages
+     * in a paginated result.
+     *
+     * @return int
+     */
+    public function getPages()
+    {
+        return $this->pages;
+    }
+
+    /**
+     * Returns the total amount of entries
+     * allowed per page.
+     *
+     * @return int
+     */
+    public function getPerPage()
+    {
+        return $this->perPage;
+    }
+
+    /**
+     * Returns the current page number.
+     *
+     * @return int
+     */
+    public function getCurrentPage()
+    {
+        return $this->currentPage;
+    }
+
+    /**
+     * Returns the current offset number.
+     *
+     * @return int
+     */
+    public function getCurrentOffset()
+    {
+        return $this->currentOffset;
+    }
+
+    /**
+     * Returns the total amount of results.
+     *
+     * @return int
+     */
+    public function count()
+    {
+        return count($this->results);
+    }
+
+    /**
+     * Sets the results array property.
+     *
+     * @param array $results
+     *
+     * @return Paginator
+     */
+    protected function setResults(array $results)
+    {
+        $this->results = $results;
+
+        return $this;
+    }
+
+    /**
+     * Sets the total number of pages.
+     *
+     * @param int $pages
+     *
+     * @return Paginator
+     */
+    protected function setPages($pages = 0)
+    {
+        $this->pages = (int) $pages;
+
+        return $this;
+    }
+
+    /**
+     * Sets the number of entries per page.
+     *
+     * @param int $perPage
+     *
+     * @return Paginator
+     */
+    protected function setPerPage($perPage = 50)
+    {
+        $this->perPage = (int) $perPage;
+
+        return $this;
+    }
+
+    /**
+     * Sets the current page number.
+     *
+     * @param int $currentPage
+     *
+     * @return Paginator
+     */
+    protected function setCurrentPage($currentPage = 0)
+    {
+        $this->currentPage = (int) $currentPage;
+
+        return $this;
+    }
+
+    /**
+     * Sets the current offset number.
+     *
+     * @param int $offset
+     *
+     * @return Paginator
+     */
+    protected function setCurrentOffset($offset = 0)
+    {
+        $this->currentOffset = (int) $offset;
+
+        return $this;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Processor.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Processor.php
new file mode 100644
index 0000000..e4e5329
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Query/Processor.php
@@ -0,0 +1,211 @@
+<?php
+
+namespace Adldap\Query;
+
+use Adldap\Models\Entry;
+use Adldap\Models\Model;
+use InvalidArgumentException;
+use Adldap\Schemas\SchemaInterface;
+use Adldap\Connections\ConnectionInterface;
+
+class Processor
+{
+    /**
+     * @var Builder
+     */
+    protected $builder;
+
+    /**
+     * @var ConnectionInterface
+     */
+    protected $connection;
+
+    /**
+     * @var SchemaInterface
+     */
+    protected $schema;
+
+    /**
+     * Constructor.
+     *
+     * @param Builder $builder
+     */
+    public function __construct(Builder $builder)
+    {
+        $this->builder = $builder;
+        $this->schema = $builder->getSchema();
+        $this->connection = $builder->getConnection();
+    }
+
+    /**
+     * Processes LDAP search results and constructs their model instances.
+     *
+     * @param array $entries The LDAP entries to process.
+     *
+     * @return Collection|array
+     */
+    public function process($entries)
+    {
+        if ($this->builder->isRaw()) {
+            // If the builder is asking for a raw
+            // LDAP result, we can return here.
+            return $entries;
+        }
+
+        $models = [];
+
+        if (array_key_exists('count', $entries)) {
+            for ($i = 0; $i < $entries['count']; $i++) {
+                // We'll go through each entry and construct a new
+                // model instance with the raw LDAP attributes.
+                $models[] = $this->newLdapEntry($entries[$i]);
+            }
+        }
+
+        // If the query contains paginated results, we'll return them here.
+        if ($this->builder->isPaginated()) {
+            return $models;
+        }
+
+        // If the query is requested to be sorted, we'll perform
+        // that here and return the resulting collection.
+        if ($this->builder->isSorted()) {
+            return $this->processSort($models);
+        }
+
+        // Otherwise, we'll return a regular unsorted collection.
+        return $this->newCollection($models);
+    }
+
+    /**
+     * Processes paginated LDAP results.
+     *
+     * @param array $pages
+     * @param int   $perPage
+     * @param int   $currentPage
+     *
+     * @return Paginator
+     */
+    public function processPaginated(array $pages = [], $perPage = 50, $currentPage = 0)
+    {
+        $models = [];
+
+        foreach ($pages as $entries) {
+            // Go through each page and process the results into an objects array.
+            $models = array_merge($models, $this->process($entries));
+        }
+
+        $models = $this->processSort($models)->toArray();
+
+        return $this->newPaginator($models, $perPage, $currentPage, count($pages));
+    }
+
+    /**
+     * Returns a new LDAP Entry instance.
+     *
+     * @param array $attributes
+     *
+     * @return Entry
+     */
+    public function newLdapEntry(array $attributes = [])
+    {
+        $objectClass = $this->schema->objectClass();
+
+        // We need to ensure the record contains an object class to be able to
+        // determine its type. Otherwise, we create a default Entry model.
+        if (array_key_exists($objectClass, $attributes) && array_key_exists(0, $attributes[$objectClass])) {
+            // Retrieve all of the object classes from the LDAP
+            // entry and lowercase them for comparisons.
+            $classes = array_map('strtolower', $attributes[$objectClass]);
+
+            // Retrieve the model mapping.
+            $models = $this->schema->objectClassModelMap();
+
+            // Retrieve the object class mappings (with strtolower keys).
+            $mappings = array_map('strtolower', array_keys($models));
+
+            // Retrieve the model from the map using the entry's object class.
+            $map = array_intersect($mappings, $classes);
+
+            if (count($map) > 0) {
+                // Retrieve the model using the object class.
+                $model = $models[current($map)];
+
+                // Construct and return a new model.
+                return $this->newModel([], $model)
+                    ->setRawAttributes($attributes);
+            }
+        }
+
+        // A default entry model if the object class isn't found.
+        return $this->newModel()->setRawAttributes($attributes);
+    }
+
+    /**
+     * Creates a new model instance.
+     *
+     * @param array       $attributes
+     * @param string|null $model
+     *
+     * @throws InvalidArgumentException
+     *
+     * @return mixed|Entry
+     */
+    public function newModel($attributes = [], $model = null)
+    {
+        $model = (class_exists($model) ? $model : $this->schema->entryModel());
+
+        if (!is_subclass_of($model, $base = Model::class)) {
+            throw new InvalidArgumentException("The given model class '{$model}' must extend the base model class '{$base}'");
+        }
+
+        return new $model($attributes, $this->builder->newInstance());
+    }
+
+    /**
+     * Returns a new Paginator object instance.
+     *
+     * @param array $models
+     * @param int   $perPage
+     * @param int   $currentPage
+     * @param int   $pages
+     *
+     * @return Paginator
+     */
+    public function newPaginator(array $models = [], $perPage = 25, $currentPage = 0, $pages = 1)
+    {
+        return new Paginator($models, $perPage, $currentPage, $pages);
+    }
+
+    /**
+     * Returns a new collection instance.
+     *
+     * @param array $items
+     *
+     * @return Collection
+     */
+    public function newCollection(array $items = [])
+    {
+        return new Collection($items);
+    }
+
+    /**
+     * Sorts LDAP search results.
+     *
+     * @param array $models
+     *
+     * @return Collection
+     */
+    protected function processSort(array $models = [])
+    {
+        $field = $this->builder->getSortByField();
+
+        $flags = $this->builder->getSortByFlags();
+
+        $direction = $this->builder->getSortByDirection();
+
+        $desc = ($direction === 'desc' ? true : false);
+
+        return $this->newCollection($models)->sortBy($field, $flags, $desc);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Schemas/ActiveDirectory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Schemas/ActiveDirectory.php
new file mode 100644
index 0000000..09f0314
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Schemas/ActiveDirectory.php
@@ -0,0 +1,94 @@
+<?php
+
+namespace Adldap\Schemas;
+
+class ActiveDirectory extends Schema
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function distinguishedName()
+    {
+        return 'distinguishedname';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function distinguishedNameSubKey()
+    {
+        return 0;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function filterEnabled()
+    {
+        return '(!(UserAccountControl:1.2.840.113556.1.4.803:=2))';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function filterDisabled()
+    {
+        return '(UserAccountControl:1.2.840.113556.1.4.803:=2)';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function lockoutTime()
+    {
+        return 'lockouttime';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassGroup()
+    {
+        return 'group';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassOu()
+    {
+        return 'organizationalunit';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassPerson()
+    {
+        return 'person';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectGuid()
+    {
+        return 'objectguid';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectGuidRequiresConversion()
+    {
+        return true;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectCategory()
+    {
+        return 'objectcategory';
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Schemas/Directory389.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Schemas/Directory389.php
new file mode 100644
index 0000000..f51a8a4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Schemas/Directory389.php
@@ -0,0 +1,110 @@
+<?php
+
+namespace Adldap\Schemas;
+
+class Directory389 extends Schema
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function accountName()
+    {
+        return 'uid';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function distinguishedName()
+    {
+        return 'dn';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function distinguishedNameSubKey()
+    {
+        //
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function filterEnabled()
+    {
+        return sprintf('(!(%s=*))', $this->lockoutTime());
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function filterDisabled()
+    {
+        return sprintf('(%s=*)', $this->lockoutTime());
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function lockoutTime()
+    {
+        return 'pwdAccountLockedTime';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectCategory()
+    {
+        return 'objectclass';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassGroup()
+    {
+        return 'groupofnames';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassOu()
+    {
+        return 'organizationalUnit';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassPerson()
+    {
+        return 'inetorgperson';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassUser()
+    {
+        return 'inetorgperson';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectGuid()
+    {
+        return 'nsuniqueid';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectGuidRequiresConversion()
+    {
+        return false;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Schemas/EDirectory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Schemas/EDirectory.php
new file mode 100644
index 0000000..db31011
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Schemas/EDirectory.php
@@ -0,0 +1,110 @@
+<?php
+
+namespace Adldap\Schemas;
+
+class EDirectory extends Schema
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function accountName()
+    {
+        return 'uid';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function distinguishedName()
+    {
+        return 'dn';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function distinguishedNameSubKey()
+    {
+        //
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function filterEnabled()
+    {
+        return sprintf('(!(%s=*))', $this->lockoutTime());
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function filterDisabled()
+    {
+        return sprintf('(%s=*)', $this->lockoutTime());
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function lockoutTime()
+    {
+        return 'pwdAccountLockedTime';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectCategory()
+    {
+        return 'objectclass';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassGroup()
+    {
+        return 'groupofnames';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassOu()
+    {
+        return 'organizationalUnit';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassPerson()
+    {
+        return 'inetorgperson';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassUser()
+    {
+        return 'inetorgperson';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectGuid()
+    {
+        return 'guid';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectGuidRequiresConversion()
+    {
+        return false;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Schemas/FreeIPA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Schemas/FreeIPA.php
new file mode 100644
index 0000000..410f6f9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Schemas/FreeIPA.php
@@ -0,0 +1,126 @@
+<?php
+
+namespace Adldap\Schemas;
+
+class FreeIPA extends Schema
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function accountName()
+    {
+        return 'uid';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function distinguishedName()
+    {
+        return 'dn';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectCategory()
+    {
+        return 'objectclass';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassGroup()
+    {
+        return 'ipausergroup';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function userPrincipalName()
+    {
+        return 'krbCanonicalName';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function distinguishedNameSubKey()
+    {
+        return 0;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function filterEnabled()
+    {
+        return '(!(UserAccountControl:1.2.840.113556.1.4.803:=2))';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function filterDisabled()
+    {
+        return '(UserAccountControl:1.2.840.113556.1.4.803:=2)';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function lockoutTime()
+    {
+        return 'lockouttime';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function passwordLastSet()
+    {
+        return 'krbLastPwdChange';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassOu()
+    {
+        return 'organizationalunit';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassPerson()
+    {
+        return 'person';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassUser()
+    {
+        return 'organizationalPerson';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectGuid()
+    {
+        return 'ipaUniqueID';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectGuidRequiresConversion()
+    {
+        return false;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Schemas/OpenLDAP.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Schemas/OpenLDAP.php
new file mode 100644
index 0000000..d598617
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Schemas/OpenLDAP.php
@@ -0,0 +1,110 @@
+<?php
+
+namespace Adldap\Schemas;
+
+class OpenLDAP extends Schema
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function accountName()
+    {
+        return 'uid';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function distinguishedName()
+    {
+        return 'dn';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function distinguishedNameSubKey()
+    {
+        //
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function filterEnabled()
+    {
+        return sprintf('(!(%s=*))', $this->lockoutTime());
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function filterDisabled()
+    {
+        return sprintf('(%s=*)', $this->lockoutTime());
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function lockoutTime()
+    {
+        return 'pwdAccountLockedTime';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectCategory()
+    {
+        return 'objectclass';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassGroup()
+    {
+        return 'groupofnames';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassOu()
+    {
+        return 'organizationalUnit';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassPerson()
+    {
+        return 'inetorgperson';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassUser()
+    {
+        return 'inetorgperson';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectGuid()
+    {
+        return 'entryuuid';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectGuidRequiresConversion()
+    {
+        return false;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Schemas/Schema.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Schemas/Schema.php
new file mode 100644
index 0000000..ac76452
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Schemas/Schema.php
@@ -0,0 +1,1264 @@
+<?php
+
+namespace Adldap\Schemas;
+
+use Adldap\Models\User;
+use Adldap\Models\Entry;
+use Adldap\Models\Group;
+use Adldap\Models\Contact;
+use Adldap\Models\Printer;
+use Adldap\Models\Computer;
+use Adldap\Models\Container;
+use Adldap\Models\Organization;
+use Adldap\Models\OrganizationalUnit;
+use Adldap\Models\ForeignSecurityPrincipal;
+
+abstract class Schema implements SchemaInterface
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function accountExpires()
+    {
+        return 'accountexpires';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function accountName()
+    {
+        return 'samaccountname';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function accountType()
+    {
+        return 'samaccounttype';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function adminDisplayName()
+    {
+        return 'admindisplayname';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function anr()
+    {
+        return 'anr';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function badPasswordCount()
+    {
+        return 'badpwdcount';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function badPasswordTime()
+    {
+        return 'badpasswordtime';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function commonName()
+    {
+        return 'cn';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function company()
+    {
+        return 'company';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function computer()
+    {
+        return 'computer';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function computerModel()
+    {
+        return Computer::class;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function configurationNamingContext()
+    {
+        return 'configurationnamingcontext';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function contact()
+    {
+        return 'contact';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function contactModel()
+    {
+        return Contact::class;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function containerModel()
+    {
+        return Container::class;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function country()
+    {
+        return 'c';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function createdAt()
+    {
+        return 'whencreated';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function currentTime()
+    {
+        return 'currenttime';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function defaultNamingContext()
+    {
+        return 'defaultnamingcontext';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function department()
+    {
+        return 'department';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function departmentNumber()
+    {
+        return 'departmentnumber';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function description()
+    {
+        return 'description';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function displayName()
+    {
+        return 'displayname';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function dnsHostName()
+    {
+        return 'dnshostname';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function domainComponent()
+    {
+        return 'dc';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function driverName()
+    {
+        return 'drivername';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function driverVersion()
+    {
+        return 'driverversion';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function email()
+    {
+        return 'mail';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function emailNickname()
+    {
+        return 'mailnickname';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function employeeId()
+    {
+        return 'employeeid';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function employeeNumber()
+    {
+        return 'employeenumber';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function employeeType()
+    {
+        return 'employeetype';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function entryModel()
+    {
+        return Entry::class;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function false()
+    {
+        return 'FALSE';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function firstName()
+    {
+        return 'givenname';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function groupModel()
+    {
+        return Group::class;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function groupType()
+    {
+        return 'grouptype';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function homeAddress()
+    {
+        return 'homepostaladdress';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function homeMdb()
+    {
+        return 'homemdb';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function homeDrive()
+    {
+        return 'homedrive';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function homeDirectory()
+    {
+        return 'homedirectory';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function homePhone()
+    {
+        return 'homephone';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function info()
+    {
+        return 'info';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function initials()
+    {
+        return 'initials';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function instanceType()
+    {
+        return 'instancetype';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function ipPhone()
+    {
+        return 'ipphone';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isCriticalSystemObject()
+    {
+        return 'iscriticalsystemobject';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function jpegPhoto()
+    {
+        return 'jpegphoto';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function lastLogOff()
+    {
+        return 'lastlogoff';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function lastLogOn()
+    {
+        return 'lastlogon';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function lastLogOnTimestamp()
+    {
+        return 'lastlogontimestamp';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function lastName()
+    {
+        return 'sn';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function legacyExchangeDn()
+    {
+        return 'legacyexchangedn';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function locale()
+    {
+        return 'l';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function location()
+    {
+        return 'location';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function manager()
+    {
+        return 'manager';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function managedBy()
+    {
+        return 'managedby';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function maxPasswordAge()
+    {
+        return 'maxpwdage';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function member()
+    {
+        return 'member';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function memberIdentifier()
+    {
+        return 'distinguishedname';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function memberOf()
+    {
+        return 'memberof';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function memberOfRecursive()
+    {
+        return 'memberof:1.2.840.113556.1.4.1941:';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function memberRange($from, $to)
+    {
+        return $this->member().";range={$from}-{$to}";
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function messageTrackingEnabled()
+    {
+        return 'messagetrackingenabled';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function msExchangeServer()
+    {
+        return 'ms-exch-exchange-server';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function name()
+    {
+        return 'name';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function neverExpiresDate()
+    {
+        return '9223372036854775807';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectCategoryComputer()
+    {
+        return 'computer';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectCategoryContainer()
+    {
+        return 'container';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectCategoryExchangePrivateMdb()
+    {
+        return 'msexchprivatemdb';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectCategoryExchangeServer()
+    {
+        return 'msExchExchangeServer';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectCategoryExchangeStorageGroup()
+    {
+        return 'msExchStorageGroup';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectCategoryGroup()
+    {
+        return 'group';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectCategoryOrganizationalUnit()
+    {
+        return 'organizational-unit';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectCategoryPerson()
+    {
+        return 'person';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectCategoryPrinter()
+    {
+        return 'print-queue';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClass()
+    {
+        return 'objectclass';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassComputer()
+    {
+        return 'computer';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassContact()
+    {
+        return 'contact';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassContainer()
+    {
+        return 'container';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassOrganization()
+    {
+        return 'organization';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassPrinter()
+    {
+        return 'printqueue';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassUser()
+    {
+        return 'user';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassForeignSecurityPrincipal()
+    {
+        return 'foreignsecurityprincipal';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectClassModelMap()
+    {
+        return [
+            $this->objectClassComputer()                    => $this->computerModel(),
+            $this->objectClassContact()                     => $this->contactModel(),
+            $this->objectClassPerson()                      => $this->userModel(),
+            $this->objectClassGroup()                       => $this->groupModel(),
+            $this->objectClassContainer()                   => $this->containerModel(),
+            $this->objectClassPrinter()                     => $this->printerModel(),
+            $this->objectClassOrganization()                => $this->organizationModel(),
+            $this->objectClassOu()                          => $this->organizationalUnitModel(),
+            $this->objectClassForeignSecurityPrincipal()    => $this->foreignSecurityPrincipalModel(),
+        ];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectSid()
+    {
+        return 'objectsid';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function objectSidRequiresConversion()
+    {
+        return true;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function operatingSystem()
+    {
+        return 'operatingsystem';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function operatingSystemServicePack()
+    {
+        return 'operatingsystemservicepack';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function operatingSystemVersion()
+    {
+        return 'operatingsystemversion';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function organization()
+    {
+        return 'organization';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function organizationName()
+    {
+        return 'o';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function organizationalPerson()
+    {
+        return 'organizationalperson';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function organizationalUnit()
+    {
+        return 'organizationalunit';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function organizationalUnitModel()
+    {
+        return OrganizationalUnit::class;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function organizationModel()
+    {
+        return Organization::class;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function organizationalUnitShort()
+    {
+        return 'ou';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function otherMailbox()
+    {
+        return 'othermailbox';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function passwordLastSet()
+    {
+        return 'pwdlastset';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function person()
+    {
+        return 'person';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function personalTitle()
+    {
+        return 'personaltitle';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function physicalDeliveryOfficeName()
+    {
+        return 'physicaldeliveryofficename';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function portName()
+    {
+        return 'portname';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function postalCode()
+    {
+        return 'postalcode';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function postOfficeBox()
+    {
+        return 'postofficebox';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function primaryGroupId()
+    {
+        return 'primarygroupid';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function printerBinNames()
+    {
+        return 'printbinnames';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function printerColorSupported()
+    {
+        return 'printcolor';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function printerDuplexSupported()
+    {
+        return 'printduplexsupported';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function printerEndTime()
+    {
+        return 'printendtime';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function printerMaxResolutionSupported()
+    {
+        return 'printmaxresolutionsupported';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function printerMediaSupported()
+    {
+        return 'printmediasupported';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function printerMemory()
+    {
+        return 'printmemory';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function printerModel()
+    {
+        return Printer::class;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function printerName()
+    {
+        return 'printername';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function printerOrientationSupported()
+    {
+        return 'printorientationssupported';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function printerPrintRate()
+    {
+        return 'printrate';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function printerPrintRateUnit()
+    {
+        return 'printrateunit';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function printerShareName()
+    {
+        return 'printsharename';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function printerStaplingSupported()
+    {
+        return 'printstaplingsupported';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function printerStartTime()
+    {
+        return 'printstarttime';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function priority()
+    {
+        return 'priority';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function profilePath()
+    {
+        return 'profilepath';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function proxyAddresses()
+    {
+        return 'proxyaddresses';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function roomNumber()
+    {
+        return 'roomnumber';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function rootDomainNamingContext()
+    {
+        return 'rootdomainnamingcontext';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function schemaNamingContext()
+    {
+        return 'schemanamingcontext';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function scriptPath()
+    {
+        return 'scriptpath';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function serialNumber()
+    {
+        return 'serialnumber';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function serverName()
+    {
+        return 'servername';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function showInAddressBook()
+    {
+        return 'showinaddressbook';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function street()
+    {
+        return 'street';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function streetAddress()
+    {
+        return 'streetaddress';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function systemFlags()
+    {
+        return 'systemflags';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function telephone()
+    {
+        return 'telephonenumber';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function mobile()
+    {
+        return 'mobile';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function otherMobile()
+    {
+        return 'othermobile';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function facsimile()
+    {
+        return 'facsimiletelephonenumber';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function thumbnail()
+    {
+        return 'thumbnailphoto';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function title()
+    {
+        return 'title';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function top()
+    {
+        return 'top';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function true()
+    {
+        return 'TRUE';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function unicodePassword()
+    {
+        return 'unicodepwd';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function updatedAt()
+    {
+        return 'whenchanged';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function url()
+    {
+        return 'url';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function user()
+    {
+        return 'user';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function userAccountControl()
+    {
+        return 'useraccountcontrol';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function userId()
+    {
+        return 'uid';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function userModel()
+    {
+        return User::class;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function userObjectClasses(): array
+    {
+        return [
+            $this->top(),
+            $this->person(),
+            $this->organizationalPerson(),
+            $this->objectClassUser(),
+        ];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function userPrincipalName()
+    {
+        return 'userprincipalname';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function userWorkstations()
+    {
+        return 'userworkstations';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function versionNumber()
+    {
+        return 'versionnumber';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function foreignSecurityPrincipalModel()
+    {
+        return ForeignSecurityPrincipal::class;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Schemas/SchemaInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Schemas/SchemaInterface.php
new file mode 100644
index 0000000..023df74
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Schemas/SchemaInterface.php
@@ -0,0 +1,1421 @@
+<?php
+
+namespace Adldap\Schemas;
+
+interface SchemaInterface
+{
+    /**
+     * The date when the account expires. This value represents the number of 100-nanosecond
+     * intervals since January 1, 1601 (UTC). A value of 0 or 0x7FFFFFFFFFFFFFFF
+     * (9223372036854775807) indicates that the account never expires.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675098(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function accountExpires();
+
+    /**
+     * The logon name used to support clients and servers running earlier versions of the
+     * operating system, such as Windows NT 4.0, Windows 95, Windows 98,
+     * and LAN Manager. This attribute must be 20 characters or
+     * less to support earlier clients.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679635(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function accountName();
+
+    /**
+     * This attribute contains information about every account type object.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679637(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function accountType();
+
+    /**
+     * The name to be displayed on admin screens.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675214(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function adminDisplayName();
+
+    /**
+     * Ambiguous name resolution attribute to be used when choosing between objects.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675223(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function anr();
+
+    /**
+     * The number of times the user tried to log on to the account using
+     * an incorrect password. A value of 0 indicates that the
+     * value is unknown.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675244(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function badPasswordCount();
+
+    /**
+     * The last time and date that an attempt to log on to this
+     * account was made with a password that is not valid.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675243(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function badPasswordTime();
+
+    /**
+     * The name that represents an object.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675449(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function commonName();
+
+    /**
+     * The user's company name.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675457(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function company();
+
+    /**
+     * The object class computer string.
+     *
+     * Used when constructing new Computer models.
+     *
+     * @return string
+     */
+    public function computer();
+
+    /**
+     * The class name of the Computer model.
+     *
+     * @return string
+     */
+    public function computerModel();
+
+    /**
+     * DN enterprise configuration naming context.
+     *
+     * @link https://support.microsoft.com/en-us/kb/219005
+     *
+     * @return string
+     */
+    public function configurationNamingContext();
+
+    /**
+     * The object class contact string.
+     *
+     * Used when constructing new User models.
+     *
+     * @return string
+     */
+    public function contact();
+
+    /**
+     * The class name of the Contact model.
+     *
+     * @return string
+     */
+    public function contactModel();
+
+    /**
+     * The class name of the Container model.
+     *
+     * @return string
+     */
+    public function containerModel();
+
+    /**
+     * The entry's country attribute.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675432(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function country();
+
+    /**
+     * The entry's created at attribute.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms680924(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function createdAt();
+
+    /**
+     * The entry's current time attribute.
+     *
+     * This attribute is only available with the Root DSE record.
+     *
+     * @return string
+     */
+    public function currentTime();
+
+    /**
+     * This is the default NC for a particular server.
+     *
+     * By default, the DN for the domain of which this directory server is a member.
+     *
+     * @link https://support.microsoft.com/en-us/kb/219005
+     *
+     * @return string
+     */
+    public function defaultNamingContext();
+
+    /**
+     * Contains the name for the department in which the user works.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675490(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function department();
+
+    /**
+     * Identifies a department within an organization.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675491(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function departmentNumber();
+
+    /**
+     * Contains the description to display for an object. This value is restricted
+     * as single-valued for backward compatibility in some cases but
+     * is allowed to be multi-valued in others.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675492(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function description();
+
+    /**
+     * The display name for an object. This is usually the combination
+     * of the users first name, middle initial, and last name.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675514(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function displayName();
+
+    /**
+     * The LDAP API references an LDAP object by its distinguished name (DN).
+     *
+     * A DN is a sequence of relative distinguished names (RDN) connected by commas.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/aa366101(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function distinguishedName();
+
+    /**
+     * The LDAP API references an LDAP object by its distinguished name (DN).
+     *
+     * Different vendors expect the value of the distinguished name to be in
+     * different places. For example ActiveDirectory expects distinguishedname
+     * value to be the first element in an array, however OpenLDAP expects
+     * the dn attribute to contain the value, not an array.
+     *
+     * @deprecated since 10.0.0
+     *
+     * @return int|null
+     */
+    public function distinguishedNameSubKey();
+
+    /**
+     * Name of computer as registered in DNS.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675524(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function dnsHostName();
+
+    /**
+     * Domain Component located inside an RDN.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/aa366101(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function domainComponent();
+
+    /**
+     * The device driver name.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675652(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function driverName();
+
+    /**
+     * The Version number of device driver.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675653(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function driverVersion();
+
+    /**
+     * The list of email addresses for a contact.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676855(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function email();
+
+    /**
+     * The email nickname for the user.
+     *
+     * @return string
+     */
+    public function emailNickname();
+
+    /**
+     * The ID of an employee.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675662(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function employeeId();
+
+    /**
+     * The number assigned to an employee other than the ID.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675663(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function employeeNumber();
+
+    /**
+     * The job category for an employee.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675664(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function employeeType();
+
+    /**
+     * The class name of the Entry model.
+     *
+     * @return string
+     */
+    public function entryModel();
+
+    /**
+     * The LDAP `false` boolean in string form for conversion.
+     *
+     * @return string
+     */
+    public function false();
+
+    /**
+     * The LDAP filter to query for enabled users.
+     *
+     * @return mixed
+     */
+    public function filterEnabled();
+
+    /**
+     * The LDAP filter to query for disabled users.
+     *
+     * @return mixed
+     */
+    public function filterDisabled();
+
+    /**
+     * Contains the given name (first name) of the user.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675719(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function firstName();
+
+    /**
+     * The class name of the Group model.
+     *
+     * @return string
+     */
+    public function groupModel();
+
+    /**
+     * Contains a set of flags that define the type and scope of a group object.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms675935(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function groupType();
+
+    /**
+     * A user's home address.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676193(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function homeAddress();
+
+    /**
+     * The users mailbox database location.
+     *
+     * @return string
+     */
+    public function homeMdb();
+
+    /**
+     * Specifies the drive letter to which to map the UNC path specified by homeDirectory.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676191(v=vs.85).aspx
+     *
+     * @return string|null
+     */
+    public function homeDrive();
+
+    /**
+     * The home directory for the account.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676190(v=vs.85).aspx
+     *
+     * @return string|null
+     */
+    public function homeDirectory();
+
+    /**
+     * The user's main home phone number.
+     *
+     * @link https://docs.microsoft.com/en-us/windows/desktop/ADSchema/a-homephone
+     *
+     * @return string|null
+     */
+    public function homePhone();
+
+    /**
+     * The users extra notable information.
+     *
+     * @return string
+     */
+    public function info();
+
+    /**
+     * Contains the initials for parts of the user's full name.
+     *
+     * This may be used as the middle initial in the Windows Address Book.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676202(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function initials();
+
+    /**
+     * A bitfield that dictates how the object is instantiated on a particular server.
+     *
+     * The value of this attribute can differ on different replicas even if the replicas are in sync.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676204(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function instanceType();
+
+    /**
+     * Specifies the TCP/IP address for the phone. Used by telephony.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/cc221092.aspx
+     *
+     * @return string
+     */
+    public function ipPhone();
+
+    /**
+     * If TRUE, the object hosting this attribute must be replicated during installation of a new replica.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676798(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function isCriticalSystemObject();
+
+    /**
+     * Used to store one or more images of a person using the JPEG File Interchange Format [JFIF].
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676813(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function jpegPhoto();
+
+    /**
+     * This attribute is not used.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676822(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function lastLogOff();
+
+    /**
+     * The last time the user logged on. This value is stored as a large integer that
+     * represents the number of 100-nanosecond intervals since January 1, 1601 (UTC).
+     *
+     * A value of zero means that the last logon time is unknown.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676823(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function lastLogOn();
+
+    /**
+     * This is the time that the user last logged into the domain.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676824(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function lastLogOnTimestamp();
+
+    /**
+     * This attribute contains the family or last name for a user.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679872(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function lastName();
+
+    /**
+     * The distinguished name previously used by Exchange.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676830(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function legacyExchangeDn();
+
+    /**
+     * The users locale.
+     *
+     * @return string
+     */
+    public function locale();
+
+    /**
+     * The user's location, such as office number.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676839(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function location();
+
+    /**
+     * The date and time (UTC) that this account was locked out. This value is stored
+     * as a large integer that represents the number of 100-nanosecond intervals
+     * since January 1, 1601 (UTC). A value of zero means that the
+     * account is not currently locked out.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676843(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function lockoutTime();
+
+    /**
+     * Contains the distinguished name of the user who is the user's manager.
+     *
+     * The manager's user object contains a directReports property that
+     * contains references to all user objects that have their manager
+     * properties set to this distinguished name.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676859(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function manager();
+
+    /**
+     * The distinguished name of the user that is assigned to manage this object.
+     *
+     * @link https://docs.microsoft.com/en-us/windows/desktop/adschema/a-managedby
+     *
+     * @return string
+     */
+    public function managedBy();
+
+    /**
+     * The maximum amount of time, in 100-nanosecond intervals, a password is valid.
+     *
+     * This value is stored as a large integer that represents the number of
+     * 100-nanosecond intervals from the time the password was set
+     * before the password expires.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms676863(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function maxPasswordAge();
+
+    /**
+     * The list of users that belong to the group.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms677097(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function member();
+
+    /**
+     * The identifier of records that belong to a group.
+     *
+     * For example, in ActiveDirectory, the 'member' attribute on
+     * a group record contains a list of distinguished names,
+     * so `distinguishedname` would be the identifier.
+     *
+     * In other environments such as Sun Directory
+     * Server, this identifier would be `uid`.
+     *
+     * @return string
+     */
+    public function memberIdentifier();
+
+    /**
+     * The distinguished names of the groups to which this object belongs.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms677099(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function memberOf();
+
+    /**
+     * The distinguished names of the groups to which this object belongs.
+     *
+     * This string contains a rule OID indicating the inclusion of ancestral and child members.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms677099(v=vs.85).aspx
+     * @link https://msdn.microsoft.com/en-us/library/aa746475(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function memberOfRecursive();
+
+    /**
+     * The range limited list of users that belong to the group. See range limit in Active Directory
+     * (Range Retrieval of Attribute Values https://msdn.microsoft.com/en-us/library/cc223242.aspx)
+     * Issue #342.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms677097(v=vs.85).aspx
+     *
+     * @param string|int $from
+     * @param string|int $to
+     *
+     * @return string
+     */
+    public function memberRange($from, $to);
+
+    /**
+     * @link https://msdn.microsoft.com/en-us/library/ms981934(v=exchg.65).aspx
+     *
+     * @return string
+     */
+    public function messageTrackingEnabled();
+
+    /**
+     * The object category of an exchange server.
+     *
+     * @return string
+     */
+    public function msExchangeServer();
+
+    /**
+     * The general name of the entry.
+     *
+     * @return string
+     */
+    public function name();
+
+    /**
+     * Returns a string value indicating that an account does not expire.
+     *
+     * @return string
+     */
+    public function neverExpiresDate();
+
+    /**
+     * An object class name used to group objects of this or derived classes.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679011(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function objectCategory();
+
+    /**
+     * The computer object category.
+     *
+     * @return string
+     */
+    public function objectCategoryComputer();
+
+    /**
+     * The container object category.
+     *
+     * @return string
+     */
+    public function objectCategoryContainer();
+
+    /**
+     * The exchange private MDB category.
+     *
+     * @return string
+     */
+    public function objectCategoryExchangePrivateMdb();
+
+    /**
+     * The exchange server object category.
+     *
+     * @return string
+     */
+    public function objectCategoryExchangeServer();
+
+    /**
+     * The exchange storage group object category.
+     *
+     * @return string
+     */
+    public function objectCategoryExchangeStorageGroup();
+
+    /**
+     * The group object category.
+     *
+     * @return string
+     */
+    public function objectCategoryGroup();
+
+    /**
+     * The organizational unit category.
+     *
+     * @return string
+     */
+    public function objectCategoryOrganizationalUnit();
+
+    /**
+     * The person object category.
+     *
+     * @return string
+     */
+    public function objectCategoryPerson();
+
+    /**
+     * The printer object category.
+     *
+     * @return string
+     */
+    public function objectCategoryPrinter();
+
+    /**
+     * The list of classes from which this class is derived.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679012(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function objectClass();
+
+    /**
+     * The computer object class.
+     *
+     * @return string
+     */
+    public function objectClassComputer();
+
+    /**
+     * The contact object class.
+     *
+     * @return string
+     */
+    public function objectClassContact();
+
+    /**
+     * The container object class.
+     *
+     * @return string
+     */
+    public function objectClassContainer();
+
+    /**
+     * The group object class.
+     *
+     * @return string
+     */
+    public function objectClassGroup();
+
+    /**
+     * The ou object class.
+     *
+     * @return string
+     */
+    public function objectClassOu();
+
+    /**
+     * The person object class.
+     *
+     * Represents people who are associated with an organization in some way.
+     *
+     * @return string
+     */
+    public function objectClassPerson();
+
+    /**
+     * The printer object class.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms683911(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function objectClassPrinter();
+
+    /**
+     * The user object class.
+     *
+     * @return string
+     */
+    public function objectClassUser();
+
+    /**
+     * The object class model map.
+     *
+     * @return array
+     */
+    public function objectClassModelMap();
+
+    /**
+     * The unique identifier for an object.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679021(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function objectGuid();
+
+    /**
+     * Determine whether the object GUID requires conversion from binary.
+     *
+     * @return bool
+     */
+    public function objectGuidRequiresConversion();
+
+    /**
+     * A binary value that specifies the security identifier (SID) of the user.
+     *
+     * The SID is a unique value used to identify the user as a security principal.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679024(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function objectSid();
+
+    /**
+     * Determine whether the object SID requires conversion from binary.
+     *
+     * @return bool
+     */
+    public function objectSidRequiresConversion();
+
+    /**
+     * The Operating System name, for example, Windows Vista Enterprise.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679076(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function operatingSystem();
+
+    /**
+     * The operating system service pack ID string (for example, SP3).
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679078(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function operatingSystemServicePack();
+
+    /**
+     * The operating system version string, for example, 4.0.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679079(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function operatingSystemVersion();
+
+    /**
+     * The RDN version of organization name for use in distinguished names.
+     *
+     * @return mixed
+     */
+    public function organizationName();
+
+    /**
+     * This class is used for objects that contain organizational information about a user,
+     * such as the employee number, department, manager, title, office address, and so on.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms683883(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function organizationalPerson();
+
+    /**
+     * A container for storing users, computers, and other account objects.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms683886(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function organizationalUnit();
+
+    /**
+     * The class name of the Organizational Unit model.
+     *
+     * @return string
+     */
+    public function organizationalUnitModel();
+
+    /**
+     * The RDN version of organizational unit for use in distinguished names.
+     *
+     * @return string
+     */
+    public function organizationalUnitShort();
+
+    /**
+     * Contains other additional mail addresses in a form such as CCMAIL: JohnDoe.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679091(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function otherMailbox();
+
+    /**
+     * The date and time that the password for this account was last changed.
+     *
+     * This value is stored as a large integer that represents the number of 100 nanosecond intervals
+     * since January 1, 1601 (UTC). If this value is set to 0 and the User-Account-Control attribute
+     * does not contain the UF_DONT_EXPIRE_PASSWD flag, then the user must set the password at
+     * the next logon.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679430(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function passwordLastSet();
+
+    /**
+     * The person object class.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms683895(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function person();
+
+    /**
+     * The user's title.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679115(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function personalTitle();
+
+    /**
+     * Contains the office location in the user's place of business.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679117(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function physicalDeliveryOfficeName();
+
+    /**
+     * List of port names. For example, for printer ports or comm ports.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679131(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function portName();
+
+    /**
+     * The postal or zip code for mail delivery.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679366(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function postalCode();
+
+    /**
+     * The post office box number for this object.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679367(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function postOfficeBox();
+
+    /**
+     * Contains the relative identifier (RID) for the primary group of the user.
+     *
+     * By default, this is the RID for the Domain Users group.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679375(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function primaryGroupId();
+
+    /**
+     * A list of printer bin names.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679380(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function printerBinNames();
+
+    /**
+     * If a printer can print in color.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679382(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function printerColorSupported();
+
+    /**
+     * Indicates the type of duplex support a printer has.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679383(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function printerDuplexSupported();
+
+    /**
+     * The time a print queue stops servicing jobs.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679384(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function printerEndTime();
+
+    /**
+     * The maximum printer resolution.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679391(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function printerMaxResolutionSupported();
+
+    /**
+     * A list of media supported by a printer.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679395(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function printerMediaSupported();
+
+    /**
+     * The amount of memory installed in a printer.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679396(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function printerMemory();
+
+    /**
+     * The class name of the Printer model.
+     *
+     * @return string
+     */
+    public function printerModel();
+
+    /**
+     * The display name of an attached printer.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679385(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function printerName();
+
+    /**
+     * The page rotation for landscape printing.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679402(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function printerOrientationSupported();
+
+    /**
+     * Driver-supplied print rate.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679405(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function printerPrintRate();
+
+    /**
+     * Driver-supplied print rate unit.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679406(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function printerPrintRateUnit();
+
+    /**
+     * The printer's share name.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679408(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function printerShareName();
+
+    /**
+     * If the printer supports stapling. Supplied by the driver.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679410(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function printerStaplingSupported();
+
+    /**
+     * The time a print queue begins servicing jobs.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679411(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function printerStartTime();
+
+    /**
+     * The current priority (of a process, print job, and so on).
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679413(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function priority();
+
+    /**
+     * Specifies a path to the user's profile. This value can be a null
+     * string, a local absolute path, or a UNC path.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679422(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function profilePath();
+
+    /**
+     * A proxy address is the address by which a Microsoft Exchange Server recipient
+     * object is recognized in a foreign mail system. Proxy addresses are required
+     * for all recipient objects, such as custom recipients and distribution lists.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679424(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function proxyAddresses();
+
+    /**
+     * The room number of an object.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679615(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function roomNumber();
+
+    /**
+     * The DN of the root domain NC for this DC's forest.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/cc223262.aspx
+     *
+     * @return mixed
+     */
+    public function rootDomainNamingContext();
+
+    /**
+     * The attribute.
+     *
+     * @return mixed
+     */
+    public function schemaNamingContext();
+
+    /**
+     * This attribute specifies the path for the user's logon script. The string can be null.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679656(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function scriptPath();
+
+    /**
+     * Part of X.500 specification. Not used by Active Directory.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679771(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function serialNumber();
+
+    /**
+     * The name of a server.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679772(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function serverName();
+
+    /**
+     * This attribute is used to indicate in which MAPI address books an object will appear.
+     *
+     * It is usually maintained by the Exchange Recipient Update Service.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679822(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function showInAddressBook();
+
+    /**
+     * The street address.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679882(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function street();
+
+    /**
+     * The street address.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms679882(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function streetAddress();
+
+    /**
+     * An integer value that contains flags that define additional properties of the class.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms680022(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function systemFlags();
+
+    /**
+     * The primary telephone number.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms680027(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function telephone();
+
+    /**
+     * The primary mobile phone number.
+     *
+     * @link https://docs.microsoft.com/en-us/windows/desktop/adschema/a-mobile
+     *
+     * @return string
+     */
+    public function mobile();
+
+    /**
+     * The secondary mobile phone number.
+     *
+     * @link https://docs.microsoft.com/en-us/windows/desktop/ADSchema/a-othermobile
+     *
+     * @return string
+     */
+    public function otherMobile();
+
+    /**
+     * The users thumbnail photo path.
+     *
+     * @return string
+     */
+    public function thumbnail();
+
+    /**
+     * Contains the user's job title.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms680037(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function title();
+
+    /**
+     * The top level class from which all classes are derived.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms683975(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function top();
+
+    /**
+     * The LDAP `true` boolean in string form for conversion.
+     *
+     * @return string
+     */
+    public function true();
+
+    /**
+     * The password of the user in Windows NT one-way format (OWF). Windows 2000 uses the Windows NT OWF.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms680513(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function unicodePassword();
+
+    /**
+     * The date when this object was last changed.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms680921(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function updatedAt();
+
+    /**
+     * The entry's URL attribute.
+     *
+     * @return string
+     */
+    public function url();
+
+    /**
+     * The user object class.
+     *
+     * This class is used to store information about an employee or contractor who works for an organization.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms683980(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function user();
+
+    /**
+     * Flags that control the behavior of the user account.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms680832(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function userAccountControl();
+
+    /**
+     * The user ID attribute.
+     *
+     * @return string
+     */
+    public function userId();
+
+    /**
+     * The class name of the User model.
+     *
+     * @return string
+     */
+    public function userModel();
+
+    /**
+     * The object classes that User models must be constructed with.
+     *
+     * @return array
+     */
+    public function userObjectClasses(): array;
+
+    /**
+     * This attribute contains the UPN that is an Internet-style login name for
+     * a user based on the Internet standard RFC 822.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms680857(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function userPrincipalName();
+
+    /**
+     * Contains the NetBIOS or DNS names of the computers running Windows NT Workstation
+     * or Windows 2000 Professional from which the user can log on.
+     *
+     * Each NetBIOS name is separated by a comma.
+     *
+     * Multiple names should be separated by commas.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms680868(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function userWorkstations();
+
+    /**
+     * A general purpose version number.
+     *
+     * @link https://msdn.microsoft.com/en-us/library/ms680897(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function versionNumber();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Utilities.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Utilities.php
new file mode 100644
index 0000000..1c70e8c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/adldap2/adldap2/src/Utilities.php
@@ -0,0 +1,232 @@
+<?php
+
+namespace Adldap;
+
+class Utilities
+{
+    /**
+     * Converts a DN string into an array of RDNs.
+     *
+     * This will also decode hex characters into their true
+     * UTF-8 representation embedded inside the DN as well.
+     *
+     * @param string $dn
+     * @param bool   $removeAttributePrefixes
+     *
+     * @return array|false
+     */
+    public static function explodeDn($dn, $removeAttributePrefixes = true)
+    {
+        $dn = ldap_explode_dn($dn, ($removeAttributePrefixes ? 1 : 0));
+
+        if (is_array($dn) && array_key_exists('count', $dn)) {
+            foreach ($dn as $rdn => $value) {
+                $dn[$rdn] = self::unescape($value);
+            }
+        }
+
+        return $dn;
+    }
+
+    /**
+     * Un-escapes a hexadecimal string into
+     * its original string representation.
+     *
+     * @param string $value
+     *
+     * @return string
+     */
+    public static function unescape($value)
+    {
+        return preg_replace_callback('/\\\([0-9A-Fa-f]{2})/', function ($matches) {
+            return chr(hexdec($matches[1]));
+        }, $value);
+    }
+
+    /**
+     * Convert a binary SID to a string SID.
+     *
+     * @author Chad Sikorra
+     *
+     * @link https://github.com/ChadSikorra
+     * @link https://stackoverflow.com/questions/39533560/php-ldap-get-user-sid
+     *
+     * @param string $value The Binary SID
+     *
+     * @return string|null
+     */
+    public static function binarySidToString($value)
+    {
+        // Revision - 8bit unsigned int (C1)
+        // Count - 8bit unsigned int (C1)
+        // 2 null bytes
+        // ID - 32bit unsigned long, big-endian order
+        $sid = @unpack('C1rev/C1count/x2/N1id', $value);
+
+        if (!isset($sid['id']) || !isset($sid['rev'])) {
+            return;
+        }
+
+        $revisionLevel = $sid['rev'];
+
+        $identifierAuthority = $sid['id'];
+
+        $subs = isset($sid['count']) ? $sid['count'] : 0;
+
+        $sidHex = $subs ? bin2hex($value) : '';
+
+        $subAuthorities = [];
+
+        // The sub-authorities depend on the count, so only get as
+        // many as the count, regardless of data beyond it.
+        for ($i = 0; $i < $subs; $i++) {
+            $data = implode('', array_reverse(
+                str_split(
+                    substr($sidHex, 16 + ($i * 8), 8),
+                    2
+                )
+            ));
+
+            $subAuthorities[] = hexdec($data);
+        }
+
+        // Tack on the 'S-' and glue it all together...
+        return 'S-'.$revisionLevel.'-'.$identifierAuthority.implode(
+            preg_filter('/^/', '-', $subAuthorities)
+        );
+    }
+
+    /**
+     * Convert a binary GUID to a string GUID.
+     *
+     * @param string $binGuid
+     *
+     * @return string|null
+     */
+    public static function binaryGuidToString($binGuid)
+    {
+        if (trim($binGuid) == '' || is_null($binGuid)) {
+            return;
+        }
+
+        $hex = unpack('H*hex', $binGuid)['hex'];
+
+        $hex1 = substr($hex, -26, 2).substr($hex, -28, 2).substr($hex, -30, 2).substr($hex, -32, 2);
+        $hex2 = substr($hex, -22, 2).substr($hex, -24, 2);
+        $hex3 = substr($hex, -18, 2).substr($hex, -20, 2);
+        $hex4 = substr($hex, -16, 4);
+        $hex5 = substr($hex, -12, 12);
+
+        $guid = sprintf('%s-%s-%s-%s-%s', $hex1, $hex2, $hex3, $hex4, $hex5);
+
+        return $guid;
+    }
+
+    /**
+     * Converts a string GUID to it's hex variant.
+     *
+     * @param string $string
+     *
+     * @return string
+     */
+    public static function stringGuidToHex($string)
+    {
+        $hex = '\\'.substr($string, 6, 2).'\\'.substr($string, 4, 2).'\\'.substr($string, 2, 2).'\\'.substr($string, 0, 2);
+        $hex = $hex.'\\'.substr($string, 11, 2).'\\'.substr($string, 9, 2);
+        $hex = $hex.'\\'.substr($string, 16, 2).'\\'.substr($string, 14, 2);
+        $hex = $hex.'\\'.substr($string, 19, 2).'\\'.substr($string, 21, 2);
+        $hex = $hex.'\\'.substr($string, 24, 2).'\\'.substr($string, 26, 2).'\\'.substr($string, 28, 2).'\\'.substr($string, 30, 2).'\\'.substr($string, 32, 2).'\\'.substr($string, 34, 2);
+
+        return $hex;
+    }
+
+    /**
+     * Encode a password for transmission over LDAP.
+     *
+     * @param string $password The password to encode
+     *
+     * @return string
+     */
+    public static function encodePassword($password)
+    {
+        return iconv('UTF-8', 'UTF-16LE', '"'.$password.'"');
+    }
+
+    /**
+     * Salt and hash a password to make its SSHA OpenLDAP version.
+     *
+     * @param string $password The password to create
+     *
+     * @return string
+     */
+    public static function makeSSHAPassword($password)
+    {
+        mt_srand((float) microtime() * 1000000);
+        $salt = pack('CCCC', mt_rand(), mt_rand(), mt_rand(), mt_rand());
+
+        return '{SSHA}'.base64_encode(pack('H*', sha1($password.$salt)).$salt);
+    }
+
+    /**
+     * Round a Windows timestamp down to seconds and remove
+     * the seconds between 1601-01-01 and 1970-01-01.
+     *
+     * @param float $windowsTime
+     *
+     * @return float
+     */
+    public static function convertWindowsTimeToUnixTime($windowsTime)
+    {
+        return round($windowsTime / 10000000) - 11644473600;
+    }
+
+    /**
+     * Convert a Unix timestamp to Windows timestamp.
+     *
+     * @param float $unixTime
+     *
+     * @return float
+     */
+    public static function convertUnixTimeToWindowsTime($unixTime)
+    {
+        return ($unixTime + 11644473600) * 10000000;
+    }
+
+    /**
+     * Validates that the inserted string is an object SID.
+     *
+     * @param string $sid
+     *
+     * @return bool
+     */
+    public static function isValidSid($sid)
+    {
+        return (bool) preg_match("/^S-\d(-\d{1,10}){1,16}$/i", $sid);
+    }
+
+    /**
+     * Validates that the inserted string is an object GUID.
+     *
+     * @param string $guid
+     *
+     * @return bool
+     */
+    public static function isValidGuid($guid)
+    {
+        return (bool) preg_match('/^([0-9a-fA-F]){8}(-([0-9a-fA-F]){4}){3}-([0-9a-fA-F]){12}$|^([0-9a-fA-F]{8}-){3}[0-9a-fA-F]{8}$/', $guid);
+    }
+
+    /**
+     * Converts an ignore string into an array.
+     *
+     * @param string $ignore
+     *
+     * @return array
+     */
+    protected static function ignoreStrToArray($ignore)
+    {
+        $ignore = trim($ignore);
+
+        return $ignore ? str_split($ignore) : [];
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/bin/carbon b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/bin/carbon
new file mode 120000
index 0000000..0da4804
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/bin/carbon
@@ -0,0 +1 @@
+../nesbot/carbon/bin/carbon
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/bin/var-dump-server b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/bin/var-dump-server
new file mode 120000
index 0000000..6bd4e93
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/bin/var-dump-server
@@ -0,0 +1 @@
+../symfony/var-dumper/Resources/bin/var-dump-server
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/ClassLoader.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/ClassLoader.php
index 1a58957..6d0c3f2 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/ClassLoader.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/ClassLoader.php
@@ -42,6 +42,8 @@
  */
 class ClassLoader
 {
+    private $vendorDir;
+
     // PSR-4
     private $prefixLengthsPsr4 = array();
     private $prefixDirsPsr4 = array();
@@ -57,6 +59,13 @@
     private $missingClasses = array();
     private $apcuPrefix;
 
+    private static $registeredLoaders = array();
+
+    public function __construct($vendorDir = null)
+    {
+        $this->vendorDir = $vendorDir;
+    }
+
     public function getPrefixes()
     {
         if (!empty($this->prefixesPsr0)) {
@@ -300,6 +309,17 @@
     public function register($prepend = false)
     {
         spl_autoload_register(array($this, 'loadClass'), true, $prepend);
+
+        if (null === $this->vendorDir) {
+            return;
+        }
+
+        if ($prepend) {
+            self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
+        } else {
+            unset(self::$registeredLoaders[$this->vendorDir]);
+            self::$registeredLoaders[$this->vendorDir] = $this;
+        }
     }
 
     /**
@@ -308,13 +328,17 @@
     public function unregister()
     {
         spl_autoload_unregister(array($this, 'loadClass'));
+
+        if (null !== $this->vendorDir) {
+            unset(self::$registeredLoaders[$this->vendorDir]);
+        }
     }
 
     /**
      * Loads the given class or interface.
      *
      * @param  string    $class The name of the class
-     * @return bool|null True if loaded, null otherwise
+     * @return true|null True if loaded, null otherwise
      */
     public function loadClass($class)
     {
@@ -323,6 +347,8 @@
 
             return true;
         }
+
+        return null;
     }
 
     /**
@@ -367,6 +393,16 @@
         return $file;
     }
 
+    /**
+     * Returns the currently registered loaders indexed by their corresponding vendor directories.
+     *
+     * @return self[]
+     */
+    public static function getRegisteredLoaders()
+    {
+        return self::$registeredLoaders;
+    }
+
     private function findFileWithExtension($class, $ext)
     {
         // PSR-4 lookup
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/InstalledVersions.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/InstalledVersions.php
index 2d16727..b3a4e16 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/InstalledVersions.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/InstalledVersions.php
@@ -1,332 +1,337 @@
 <?php
 
-
-
-
-
-
-
-
-
-
+/*
+ * This file is part of Composer.
+ *
+ * (c) Nils Adermann <naderman@naderman.de>
+ *     Jordi Boggiano <j.boggiano@seld.be>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
 
 namespace Composer;
 
+use Composer\Autoload\ClassLoader;
 use Composer\Semver\VersionParser;
 
-
-
-
-
-
+/**
+ * This class is copied in every Composer installed project and available to all
+ *
+ * See also https://getcomposer.org/doc/07-runtime.md#installed-versions
+ *
+ * To require it's presence, you can require `composer-runtime-api ^2.0`
+ */
 class InstalledVersions
 {
-private static $installed = array (
-  'root' => 
-  array (
-    'pretty_version' => '1.0.0+no-version-set',
-    'version' => '1.0.0.0',
-    'aliases' => 
-    array (
-    ),
-    'reference' => NULL,
-    'name' => '__root__',
-  ),
-  'versions' => 
-  array (
-    '__root__' => 
-    array (
-      'pretty_version' => '1.0.0+no-version-set',
-      'version' => '1.0.0.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => NULL,
-    ),
-    'bshaffer/oauth2-server-php' => 
-    array (
-      'pretty_version' => 'v1.11.1',
-      'version' => '1.11.1.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => '5a0c8000d4763b276919e2106f54eddda6bc50fa',
-    ),
-    'ddeboer/imap' => 
-    array (
-      'pretty_version' => '1.11.0',
-      'version' => '1.11.0.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => 'a089dfcb9d177f921eb5dadc8d4144a44dff22ee',
-    ),
-    'exorus/php-mime-mail-parser' => 
-    array (
-      'replaced' => 
-      array (
-        0 => '*',
-      ),
-    ),
-    'matthiasmullie/minify' => 
-    array (
-      'pretty_version' => '1.3.65',
-      'version' => '1.3.65.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => '227f19062451c55a797e0cc667ef983834e6580c',
-    ),
-    'matthiasmullie/path-converter' => 
-    array (
-      'pretty_version' => '1.1.3',
-      'version' => '1.1.3.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => 'e7d13b2c7e2f2268e1424aaed02085518afa02d9',
-    ),
-    'messaged/php-mime-mail-parser' => 
-    array (
-      'replaced' => 
-      array (
-        0 => '*',
-      ),
-    ),
-    'mustangostang/spyc' => 
-    array (
-      'pretty_version' => '0.6.3',
-      'version' => '0.6.3.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => '4627c838b16550b666d15aeae1e5289dd5b77da0',
-    ),
-    'paragonie/random_compat' => 
-    array (
-      'pretty_version' => 'v9.99.100',
-      'version' => '9.99.100.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a',
-    ),
-    'php-mime-mail-parser/php-mime-mail-parser' => 
-    array (
-      'pretty_version' => '5.0.5',
-      'version' => '5.0.5.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => '27983433aabeccee832573c3c56e6a4855e57745',
-    ),
-    'phpmailer/phpmailer' => 
-    array (
-      'pretty_version' => 'v6.2.0',
-      'version' => '6.2.0.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => 'e38888a75c070304ca5514197d4847a59a5c853f',
-    ),
-    'robthree/twofactorauth' => 
-    array (
-      'pretty_version' => '1.7.0',
-      'version' => '1.7.0.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => '37983bf675c5baca09d19d6705170489d0df0002',
-    ),
-    'soundasleep/html2text' => 
-    array (
-      'pretty_version' => '0.5.0',
-      'version' => '0.5.0.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => 'cdb89f6ffa2c4cc78f8ed9ea6ee0594a9133ccad',
-    ),
-    'yubico/u2flib-server' => 
-    array (
-      'pretty_version' => '1.0.2',
-      'version' => '1.0.2.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => '55d813acf68212ad2cadecde07551600d6971939',
-    ),
-  ),
-);
+    private static $installed;
+    private static $canGetVendors;
+    private static $installedByVendor = array();
 
+    /**
+     * Returns a list of all package names which are present, either by being installed, replaced or provided
+     *
+     * @return string[]
+     * @psalm-return list<string>
+     */
+    public static function getInstalledPackages()
+    {
+        $packages = array();
+        foreach (self::getInstalled() as $installed) {
+            $packages[] = array_keys($installed['versions']);
+        }
 
+        if (1 === \count($packages)) {
+            return $packages[0];
+        }
 
+        return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
+    }
 
+    /**
+     * Returns a list of all package names with a specific type e.g. 'library'
+     *
+     * @param  string   $type
+     * @return string[]
+     * @psalm-return list<string>
+     */
+    public static function getInstalledPackagesByType($type)
+    {
+        $packagesByType = array();
 
+        foreach (self::getInstalled() as $installed) {
+            foreach ($installed['versions'] as $name => $package) {
+                if (isset($package['type']) && $package['type'] === $type) {
+                    $packagesByType[] = $name;
+                }
+            }
+        }
 
+        return $packagesByType;
+    }
 
-public static function getInstalledPackages()
-{
-return array_keys(self::$installed['versions']);
-}
+    /**
+     * Checks whether the given package is installed
+     *
+     * This also returns true if the package name is provided or replaced by another package
+     *
+     * @param  string $packageName
+     * @param  bool   $includeDevRequirements
+     * @return bool
+     */
+    public static function isInstalled($packageName, $includeDevRequirements = true)
+    {
+        foreach (self::getInstalled() as $installed) {
+            if (isset($installed['versions'][$packageName])) {
+                return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
+            }
+        }
 
+        return false;
+    }
 
+    /**
+     * Checks whether the given package satisfies a version constraint
+     *
+     * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
+     *
+     *   Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
+     *
+     * @param  VersionParser $parser      Install composer/semver to have access to this class and functionality
+     * @param  string        $packageName
+     * @param  string|null   $constraint  A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
+     * @return bool
+     */
+    public static function satisfies(VersionParser $parser, $packageName, $constraint)
+    {
+        $constraint = $parser->parseConstraints($constraint);
+        $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
 
+        return $provided->matches($constraint);
+    }
 
+    /**
+     * Returns a version constraint representing all the range(s) which are installed for a given package
+     *
+     * It is easier to use this via isInstalled() with the $constraint argument if you need to check
+     * whether a given version of a package is installed, and not just whether it exists
+     *
+     * @param  string $packageName
+     * @return string Version constraint usable with composer/semver
+     */
+    public static function getVersionRanges($packageName)
+    {
+        foreach (self::getInstalled() as $installed) {
+            if (!isset($installed['versions'][$packageName])) {
+                continue;
+            }
 
+            $ranges = array();
+            if (isset($installed['versions'][$packageName]['pretty_version'])) {
+                $ranges[] = $installed['versions'][$packageName]['pretty_version'];
+            }
+            if (array_key_exists('aliases', $installed['versions'][$packageName])) {
+                $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
+            }
+            if (array_key_exists('replaced', $installed['versions'][$packageName])) {
+                $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
+            }
+            if (array_key_exists('provided', $installed['versions'][$packageName])) {
+                $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
+            }
 
+            return implode(' || ', $ranges);
+        }
 
+        throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+    }
 
+    /**
+     * @param  string      $packageName
+     * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
+     */
+    public static function getVersion($packageName)
+    {
+        foreach (self::getInstalled() as $installed) {
+            if (!isset($installed['versions'][$packageName])) {
+                continue;
+            }
 
-public static function isInstalled($packageName)
-{
-return isset(self::$installed['versions'][$packageName]);
-}
+            if (!isset($installed['versions'][$packageName]['version'])) {
+                return null;
+            }
 
+            return $installed['versions'][$packageName]['version'];
+        }
 
-
-
-
-
-
-
-
-
-
-
-
-
-public static function satisfies(VersionParser $parser, $packageName, $constraint)
-{
-$constraint = $parser->parseConstraints($constraint);
-$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
-
-return $provided->matches($constraint);
-}
-
-
-
-
-
-
-
-
-
-
-public static function getVersionRanges($packageName)
-{
-if (!isset(self::$installed['versions'][$packageName])) {
-throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
-}
-
-$ranges = array();
-if (isset(self::$installed['versions'][$packageName]['pretty_version'])) {
-$ranges[] = self::$installed['versions'][$packageName]['pretty_version'];
-}
-if (array_key_exists('aliases', self::$installed['versions'][$packageName])) {
-$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['aliases']);
-}
-if (array_key_exists('replaced', self::$installed['versions'][$packageName])) {
-$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['replaced']);
-}
-if (array_key_exists('provided', self::$installed['versions'][$packageName])) {
-$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['provided']);
-}
-
-return implode(' || ', $ranges);
-}
-
-
-
-
-
-public static function getVersion($packageName)
-{
-if (!isset(self::$installed['versions'][$packageName])) {
-throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
-}
-
-if (!isset(self::$installed['versions'][$packageName]['version'])) {
-return null;
-}
-
-return self::$installed['versions'][$packageName]['version'];
-}
-
-
-
-
-
-public static function getPrettyVersion($packageName)
-{
-if (!isset(self::$installed['versions'][$packageName])) {
-throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
-}
-
-if (!isset(self::$installed['versions'][$packageName]['pretty_version'])) {
-return null;
-}
-
-return self::$installed['versions'][$packageName]['pretty_version'];
-}
-
-
-
-
-
-public static function getReference($packageName)
-{
-if (!isset(self::$installed['versions'][$packageName])) {
-throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
-}
-
-if (!isset(self::$installed['versions'][$packageName]['reference'])) {
-return null;
-}
-
-return self::$installed['versions'][$packageName]['reference'];
-}
-
-
-
-
-
-public static function getRootPackage()
-{
-return self::$installed['root'];
-}
-
-
-
+        throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+    }
 
+    /**
+     * @param  string      $packageName
+     * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
+     */
+    public static function getPrettyVersion($packageName)
+    {
+        foreach (self::getInstalled() as $installed) {
+            if (!isset($installed['versions'][$packageName])) {
+                continue;
+            }
 
+            if (!isset($installed['versions'][$packageName]['pretty_version'])) {
+                return null;
+            }
 
+            return $installed['versions'][$packageName]['pretty_version'];
+        }
 
-public static function getRawData()
-{
-return self::$installed;
-}
+        throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+    }
 
+    /**
+     * @param  string      $packageName
+     * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
+     */
+    public static function getReference($packageName)
+    {
+        foreach (self::getInstalled() as $installed) {
+            if (!isset($installed['versions'][$packageName])) {
+                continue;
+            }
 
+            if (!isset($installed['versions'][$packageName]['reference'])) {
+                return null;
+            }
 
+            return $installed['versions'][$packageName]['reference'];
+        }
 
+        throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+    }
 
+    /**
+     * @param  string      $packageName
+     * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
+     */
+    public static function getInstallPath($packageName)
+    {
+        foreach (self::getInstalled() as $installed) {
+            if (!isset($installed['versions'][$packageName])) {
+                continue;
+            }
 
+            return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
+        }
 
+        throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+    }
 
+    /**
+     * @return array
+     * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}
+     */
+    public static function getRootPackage()
+    {
+        $installed = self::getInstalled();
 
+        return $installed[0]['root'];
+    }
 
+    /**
+     * Returns the raw installed.php data for custom implementations
+     *
+     * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
+     * @return array[]
+     * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}
+     */
+    public static function getRawData()
+    {
+        @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
 
+        if (null === self::$installed) {
+            // only require the installed.php file if this file is loaded from its dumped location,
+            // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
+            if (substr(__DIR__, -8, 1) !== 'C') {
+                self::$installed = include __DIR__ . '/installed.php';
+            } else {
+                self::$installed = array();
+            }
+        }
 
+        return self::$installed;
+    }
 
+    /**
+     * Returns the raw data of all installed.php which are currently loaded for custom implementations
+     *
+     * @return array[]
+     * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
+     */
+    public static function getAllRawData()
+    {
+        return self::getInstalled();
+    }
 
+    /**
+     * Lets you reload the static array from another file
+     *
+     * This is only useful for complex integrations in which a project needs to use
+     * this class but then also needs to execute another project's autoloader in process,
+     * and wants to ensure both projects have access to their version of installed.php.
+     *
+     * A typical case would be PHPUnit, where it would need to make sure it reads all
+     * the data it needs from this class, then call reload() with
+     * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
+     * the project in which it runs can then also use this class safely, without
+     * interference between PHPUnit's dependencies and the project's dependencies.
+     *
+     * @param  array[] $data A vendor/composer/installed.php data set
+     * @return void
+     *
+     * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>} $data
+     */
+    public static function reload($data)
+    {
+        self::$installed = $data;
+        self::$installedByVendor = array();
+    }
 
+    /**
+     * @return array[]
+     * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
+     */
+    private static function getInstalled()
+    {
+        if (null === self::$canGetVendors) {
+            self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
+        }
 
+        $installed = array();
 
+        if (self::$canGetVendors) {
+            foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
+                if (isset(self::$installedByVendor[$vendorDir])) {
+                    $installed[] = self::$installedByVendor[$vendorDir];
+                } elseif (is_file($vendorDir.'/composer/installed.php')) {
+                    $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
+                    if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
+                        self::$installed = $installed[count($installed) - 1];
+                    }
+                }
+            }
+        }
 
+        if (null === self::$installed) {
+            // only require the installed.php file if this file is loaded from its dumped location,
+            // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
+            if (substr(__DIR__, -8, 1) !== 'C') {
+                self::$installed = require __DIR__ . '/installed.php';
+            } else {
+                self::$installed = array();
+            }
+        }
+        $installed[] = self::$installed;
 
-public static function reload($data)
-{
-self::$installed = $data;
-}
+        return $installed;
+    }
 }
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/autoload_classmap.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/autoload_classmap.php
index 827360c..1de2dba 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/autoload_classmap.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/autoload_classmap.php
@@ -6,7 +6,11 @@
 $baseDir = dirname($vendorDir);
 
 return array(
+    'Attribute' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
     'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
+    'Stringable' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Stringable.php',
+    'UnhandledMatchError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php',
+    'ValueError' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/ValueError.php',
     'u2flib_server\\Error' => $vendorDir . '/yubico/u2flib-server/src/u2flib_server/U2F.php',
     'u2flib_server\\RegisterRequest' => $vendorDir . '/yubico/u2flib-server/src/u2flib_server/U2F.php',
     'u2flib_server\\Registration' => $vendorDir . '/yubico/u2flib-server/src/u2flib_server/U2F.php',
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/autoload_files.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/autoload_files.php
index f2c5f70..fac18c7 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/autoload_files.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/autoload_files.php
@@ -6,5 +6,12 @@
 $baseDir = dirname($vendorDir);
 
 return array(
+    'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
+    '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
+    '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php',
+    'a1105708a18b76903365ca1c4aa61b02' => $vendorDir . '/symfony/translation/Resources/functions.php',
+    '667aeda72477189d0494fecd327c3641' => $vendorDir . '/symfony/var-dumper/Resources/functions/dump.php',
+    'fe62ba7e10580d903cc46d808b5961a4' => $vendorDir . '/tightenco/collect/src/Collect/Support/helpers.php',
+    'caf31cc6ec7cf2241cb6f12c226c3846' => $vendorDir . '/tightenco/collect/src/Collect/Support/alias.php',
     '04c6c5c2f7095ccf6c481d3e53e1776f' => $vendorDir . '/mustangostang/spyc/Spyc.php',
 );
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/autoload_psr4.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/autoload_psr4.php
index b1b7514..7c9542e 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/autoload_psr4.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/autoload_psr4.php
@@ -6,11 +6,23 @@
 $baseDir = dirname($vendorDir);
 
 return array(
+    'Tightenco\\Collect\\' => array($vendorDir . '/tightenco/collect/src/Collect'),
+    'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'),
+    'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
+    'Symfony\\Contracts\\Translation\\' => array($vendorDir . '/symfony/translation-contracts'),
+    'Symfony\\Component\\VarDumper\\' => array($vendorDir . '/symfony/var-dumper'),
+    'Symfony\\Component\\Translation\\' => array($vendorDir . '/symfony/translation'),
     'RobThree\\Auth\\' => array($vendorDir . '/robthree/twofactorauth/lib'),
+    'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'),
+    'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
+    'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
     'PhpMimeMailParser\\' => array($vendorDir . '/php-mime-mail-parser/php-mime-mail-parser/src'),
     'PHPMailer\\PHPMailer\\' => array($vendorDir . '/phpmailer/phpmailer/src'),
     'MatthiasMullie\\PathConverter\\' => array($vendorDir . '/matthiasmullie/path-converter/src'),
     'MatthiasMullie\\Minify\\' => array($vendorDir . '/matthiasmullie/minify/src'),
+    'LdapRecord\\' => array($vendorDir . '/directorytree/ldaprecord/src'),
+    'Illuminate\\Contracts\\' => array($vendorDir . '/illuminate/contracts'),
     'Html2Text\\' => array($vendorDir . '/soundasleep/html2text/src'),
     'Ddeboer\\Imap\\' => array($vendorDir . '/ddeboer/imap/src'),
+    'Carbon\\' => array($vendorDir . '/nesbot/carbon/src/Carbon'),
 );
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/autoload_real.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/autoload_real.php
index d380e48..8a7686a 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/autoload_real.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/autoload_real.php
@@ -25,7 +25,7 @@
         require __DIR__ . '/platform_check.php';
 
         spl_autoload_register(array('ComposerAutoloaderInit873464e4bd965a3168f133248b1b218b', 'loadClassLoader'), true, true);
-        self::$loader = $loader = new \Composer\Autoload\ClassLoader();
+        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
         spl_autoload_unregister(array('ComposerAutoloaderInit873464e4bd965a3168f133248b1b218b', 'loadClassLoader'));
 
         $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/autoload_static.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/autoload_static.php
index 94db388..4d3a5d4 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/autoload_static.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/autoload_static.php
@@ -7,16 +7,38 @@
 class ComposerStaticInit873464e4bd965a3168f133248b1b218b
 {
     public static $files = array (
+        'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
+        '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
+        '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php',
+        'a1105708a18b76903365ca1c4aa61b02' => __DIR__ . '/..' . '/symfony/translation/Resources/functions.php',
+        '667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php',
+        'fe62ba7e10580d903cc46d808b5961a4' => __DIR__ . '/..' . '/tightenco/collect/src/Collect/Support/helpers.php',
+        'caf31cc6ec7cf2241cb6f12c226c3846' => __DIR__ . '/..' . '/tightenco/collect/src/Collect/Support/alias.php',
         '04c6c5c2f7095ccf6c481d3e53e1776f' => __DIR__ . '/..' . '/mustangostang/spyc/Spyc.php',
     );
 
     public static $prefixLengthsPsr4 = array (
+        'T' => 
+        array (
+            'Tightenco\\Collect\\' => 18,
+        ),
+        'S' => 
+        array (
+            'Symfony\\Polyfill\\Php80\\' => 23,
+            'Symfony\\Polyfill\\Mbstring\\' => 26,
+            'Symfony\\Contracts\\Translation\\' => 30,
+            'Symfony\\Component\\VarDumper\\' => 28,
+            'Symfony\\Component\\Translation\\' => 30,
+        ),
         'R' => 
         array (
             'RobThree\\Auth\\' => 14,
         ),
         'P' => 
         array (
+            'Psr\\SimpleCache\\' => 16,
+            'Psr\\Log\\' => 8,
+            'Psr\\Container\\' => 14,
             'PhpMimeMailParser\\' => 18,
             'PHPMailer\\PHPMailer\\' => 20,
         ),
@@ -25,6 +47,14 @@
             'MatthiasMullie\\PathConverter\\' => 29,
             'MatthiasMullie\\Minify\\' => 22,
         ),
+        'L' => 
+        array (
+            'LdapRecord\\' => 11,
+        ),
+        'I' => 
+        array (
+            'Illuminate\\Contracts\\' => 21,
+        ),
         'H' => 
         array (
             'Html2Text\\' => 10,
@@ -33,13 +63,53 @@
         array (
             'Ddeboer\\Imap\\' => 13,
         ),
+        'C' => 
+        array (
+            'Carbon\\' => 7,
+        ),
     );
 
     public static $prefixDirsPsr4 = array (
+        'Tightenco\\Collect\\' => 
+        array (
+            0 => __DIR__ . '/..' . '/tightenco/collect/src/Collect',
+        ),
+        'Symfony\\Polyfill\\Php80\\' => 
+        array (
+            0 => __DIR__ . '/..' . '/symfony/polyfill-php80',
+        ),
+        'Symfony\\Polyfill\\Mbstring\\' => 
+        array (
+            0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring',
+        ),
+        'Symfony\\Contracts\\Translation\\' => 
+        array (
+            0 => __DIR__ . '/..' . '/symfony/translation-contracts',
+        ),
+        'Symfony\\Component\\VarDumper\\' => 
+        array (
+            0 => __DIR__ . '/..' . '/symfony/var-dumper',
+        ),
+        'Symfony\\Component\\Translation\\' => 
+        array (
+            0 => __DIR__ . '/..' . '/symfony/translation',
+        ),
         'RobThree\\Auth\\' => 
         array (
             0 => __DIR__ . '/..' . '/robthree/twofactorauth/lib',
         ),
+        'Psr\\SimpleCache\\' => 
+        array (
+            0 => __DIR__ . '/..' . '/psr/simple-cache/src',
+        ),
+        'Psr\\Log\\' => 
+        array (
+            0 => __DIR__ . '/..' . '/psr/log/Psr/Log',
+        ),
+        'Psr\\Container\\' => 
+        array (
+            0 => __DIR__ . '/..' . '/psr/container/src',
+        ),
         'PhpMimeMailParser\\' => 
         array (
             0 => __DIR__ . '/..' . '/php-mime-mail-parser/php-mime-mail-parser/src',
@@ -56,6 +126,14 @@
         array (
             0 => __DIR__ . '/..' . '/matthiasmullie/minify/src',
         ),
+        'LdapRecord\\' => 
+        array (
+            0 => __DIR__ . '/..' . '/directorytree/ldaprecord/src',
+        ),
+        'Illuminate\\Contracts\\' => 
+        array (
+            0 => __DIR__ . '/..' . '/illuminate/contracts',
+        ),
         'Html2Text\\' => 
         array (
             0 => __DIR__ . '/..' . '/soundasleep/html2text/src',
@@ -64,6 +142,10 @@
         array (
             0 => __DIR__ . '/..' . '/ddeboer/imap/src',
         ),
+        'Carbon\\' => 
+        array (
+            0 => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon',
+        ),
     );
 
     public static $prefixesPsr0 = array (
@@ -77,7 +159,11 @@
     );
 
     public static $classMap = array (
+        'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
         'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
+        'Stringable' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Stringable.php',
+        'UnhandledMatchError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php',
+        'ValueError' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/ValueError.php',
         'u2flib_server\\Error' => __DIR__ . '/..' . '/yubico/u2flib-server/src/u2flib_server/U2F.php',
         'u2flib_server\\RegisterRequest' => __DIR__ . '/..' . '/yubico/u2flib-server/src/u2flib_server/U2F.php',
         'u2flib_server\\Registration' => __DIR__ . '/..' . '/yubico/u2flib-server/src/u2flib_server/U2F.php',
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/installed.json b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/installed.json
index 72d1d8d..1ff198c 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/installed.json
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/installed.json
@@ -63,34 +63,34 @@
         },
         {
             "name": "ddeboer/imap",
-            "version": "1.11.0",
-            "version_normalized": "1.11.0.0",
+            "version": "1.12.1",
+            "version_normalized": "1.12.1.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/ddeboer/imap.git",
-                "reference": "a089dfcb9d177f921eb5dadc8d4144a44dff22ee"
+                "reference": "dbed05ca67b93509345a820b2859de10c48948fb"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/ddeboer/imap/zipball/a089dfcb9d177f921eb5dadc8d4144a44dff22ee",
-                "reference": "a089dfcb9d177f921eb5dadc8d4144a44dff22ee",
+                "url": "https://api.github.com/repos/ddeboer/imap/zipball/dbed05ca67b93509345a820b2859de10c48948fb",
+                "reference": "dbed05ca67b93509345a820b2859de10c48948fb",
                 "shasum": ""
             },
             "require": {
                 "ext-iconv": "*",
                 "ext-imap": "*",
                 "ext-mbstring": "*",
-                "php": "^7.3 || ^8.0"
+                "php": "^7.4 || ^8.0"
             },
             "require-dev": {
-                "friendsofphp/php-cs-fixer": "^2.16.7",
-                "laminas/laminas-mail": "^2.12.3",
-                "phpstan/phpstan": "^0.12.57",
-                "phpstan/phpstan-phpunit": "^0.12.16",
-                "phpstan/phpstan-strict-rules": "^0.12.5",
-                "phpunit/phpunit": "^9.4.3"
+                "friendsofphp/php-cs-fixer": "^2.18.6",
+                "laminas/laminas-mail": "^2.14.0",
+                "phpstan/phpstan": "^0.12.84",
+                "phpstan/phpstan-phpunit": "^0.12.18",
+                "phpstan/phpstan-strict-rules": "^0.12.9",
+                "phpunit/phpunit": "^9.5.4"
             },
-            "time": "2020-11-30T14:52:49+00:00",
+            "time": "2021-04-27T08:38:46+00:00",
             "type": "library",
             "installation-source": "dist",
             "autoload": {
@@ -124,7 +124,7 @@
             ],
             "support": {
                 "issues": "https://github.com/ddeboer/imap/issues",
-                "source": "https://github.com/ddeboer/imap/tree/1.11.0"
+                "source": "https://github.com/ddeboer/imap/tree/1.12.1"
             },
             "funding": [
                 {
@@ -139,18 +139,145 @@
             "install-path": "../ddeboer/imap"
         },
         {
-            "name": "matthiasmullie/minify",
-            "version": "1.3.65",
-            "version_normalized": "1.3.65.0",
+            "name": "directorytree/ldaprecord",
+            "version": "v2.6.3",
+            "version_normalized": "2.6.3.0",
             "source": {
                 "type": "git",
-                "url": "https://github.com/matthiasmullie/minify.git",
-                "reference": "227f19062451c55a797e0cc667ef983834e6580c"
+                "url": "https://github.com/DirectoryTree/LdapRecord.git",
+                "reference": "5c93ec6d1ef458290825a8b0a148946dce7c1e7a"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/227f19062451c55a797e0cc667ef983834e6580c",
-                "reference": "227f19062451c55a797e0cc667ef983834e6580c",
+                "url": "https://api.github.com/repos/DirectoryTree/LdapRecord/zipball/5c93ec6d1ef458290825a8b0a148946dce7c1e7a",
+                "reference": "5c93ec6d1ef458290825a8b0a148946dce7c1e7a",
+                "shasum": ""
+            },
+            "require": {
+                "ext-json": "*",
+                "ext-ldap": "*",
+                "illuminate/contracts": "^5.0|^6.0|^7.0|^8.0",
+                "nesbot/carbon": "^1.0|^2.0",
+                "php": ">=7.3",
+                "psr/log": "^1.0",
+                "psr/simple-cache": "^1.0",
+                "tightenco/collect": "^5.6|^6.0|^7.0|^8.0"
+            },
+            "require-dev": {
+                "mockery/mockery": "^1.0",
+                "phpunit/phpunit": "^8.0",
+                "spatie/ray": "^1.24"
+            },
+            "time": "2021-08-05T21:52:43+00:00",
+            "type": "library",
+            "installation-source": "dist",
+            "autoload": {
+                "psr-4": {
+                    "LdapRecord\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Steve Bauman",
+                    "email": "steven_bauman@outlook.com",
+                    "role": "Developer"
+                }
+            ],
+            "description": "A fully-featured LDAP ORM.",
+            "homepage": "https://www.ldaprecord.com",
+            "keywords": [
+                "active directory",
+                "ad",
+                "adLDAP",
+                "adldap2",
+                "directory",
+                "ldap",
+                "ldaprecord",
+                "orm",
+                "windows"
+            ],
+            "support": {
+                "docs": "https://ldaprecord.com",
+                "email": "steven_bauman@outlook.com",
+                "issues": "https://github.com/DirectoryTree/LdapRecord/issues",
+                "source": "https://github.com/DirectoryTree/LdapRecord"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/stevebauman",
+                    "type": "github"
+                }
+            ],
+            "install-path": "../directorytree/ldaprecord"
+        },
+        {
+            "name": "illuminate/contracts",
+            "version": "v8.53.1",
+            "version_normalized": "8.53.1.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/illuminate/contracts.git",
+                "reference": "504a34286a1b4c5421c43087d6bd4e176138f6fb"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/illuminate/contracts/zipball/504a34286a1b4c5421c43087d6bd4e176138f6fb",
+                "reference": "504a34286a1b4c5421c43087d6bd4e176138f6fb",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.3|^8.0",
+                "psr/container": "^1.0",
+                "psr/simple-cache": "^1.0"
+            },
+            "time": "2021-08-03T14:03:47+00:00",
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "8.x-dev"
+                }
+            },
+            "installation-source": "dist",
+            "autoload": {
+                "psr-4": {
+                    "Illuminate\\Contracts\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylor@laravel.com"
+                }
+            ],
+            "description": "The Illuminate Contracts package.",
+            "homepage": "https://laravel.com",
+            "support": {
+                "issues": "https://github.com/laravel/framework/issues",
+                "source": "https://github.com/laravel/framework"
+            },
+            "install-path": "../illuminate/contracts"
+        },
+        {
+            "name": "matthiasmullie/minify",
+            "version": "1.3.66",
+            "version_normalized": "1.3.66.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/matthiasmullie/minify.git",
+                "reference": "45fd3b0f1dfa2c965857c6d4a470bea52adc31a6"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/matthiasmullie/minify/zipball/45fd3b0f1dfa2c965857c6d4a470bea52adc31a6",
+                "reference": "45fd3b0f1dfa2c965857c6d4a470bea52adc31a6",
                 "shasum": ""
             },
             "require": {
@@ -160,13 +287,13 @@
             },
             "require-dev": {
                 "friendsofphp/php-cs-fixer": "~2.0",
-                "matthiasmullie/scrapbook": "~1.0",
-                "phpunit/phpunit": "~4.8"
+                "matthiasmullie/scrapbook": "dev-master",
+                "phpunit/phpunit": ">=4.8"
             },
             "suggest": {
                 "psr/cache-implementation": "Cache implementation to use with Minify::cache"
             },
-            "time": "2020-12-27T21:43:29+00:00",
+            "time": "2021-01-06T15:18:10+00:00",
             "bin": [
                 "bin/minifycss",
                 "bin/minifyjs"
@@ -201,7 +328,7 @@
             ],
             "support": {
                 "issues": "https://github.com/matthiasmullie/minify/issues",
-                "source": "https://github.com/matthiasmullie/minify/tree/1.3.65"
+                "source": "https://github.com/matthiasmullie/minify/tree/1.3.66"
             },
             "funding": [
                 {
@@ -325,6 +452,103 @@
             "install-path": "../mustangostang/spyc"
         },
         {
+            "name": "nesbot/carbon",
+            "version": "2.51.1",
+            "version_normalized": "2.51.1.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/briannesbitt/Carbon.git",
+                "reference": "8619c299d1e0d4b344e1f98ca07a1ce2cfbf1922"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/8619c299d1e0d4b344e1f98ca07a1ce2cfbf1922",
+                "reference": "8619c299d1e0d4b344e1f98ca07a1ce2cfbf1922",
+                "shasum": ""
+            },
+            "require": {
+                "ext-json": "*",
+                "php": "^7.1.8 || ^8.0",
+                "symfony/polyfill-mbstring": "^1.0",
+                "symfony/polyfill-php80": "^1.16",
+                "symfony/translation": "^3.4 || ^4.0 || ^5.0"
+            },
+            "require-dev": {
+                "doctrine/orm": "^2.7",
+                "friendsofphp/php-cs-fixer": "^2.14 || ^3.0",
+                "kylekatarnls/multi-tester": "^2.0",
+                "phpmd/phpmd": "^2.9",
+                "phpstan/extension-installer": "^1.0",
+                "phpstan/phpstan": "^0.12.54",
+                "phpunit/phpunit": "^7.5.20 || ^8.5.14",
+                "squizlabs/php_codesniffer": "^3.4"
+            },
+            "time": "2021-07-28T13:16:28+00:00",
+            "bin": [
+                "bin/carbon"
+            ],
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-3.x": "3.x-dev",
+                    "dev-master": "2.x-dev"
+                },
+                "laravel": {
+                    "providers": [
+                        "Carbon\\Laravel\\ServiceProvider"
+                    ]
+                },
+                "phpstan": {
+                    "includes": [
+                        "extension.neon"
+                    ]
+                }
+            },
+            "installation-source": "dist",
+            "autoload": {
+                "psr-4": {
+                    "Carbon\\": "src/Carbon/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Brian Nesbitt",
+                    "email": "brian@nesbot.com",
+                    "homepage": "https://markido.com"
+                },
+                {
+                    "name": "kylekatarnls",
+                    "homepage": "https://github.com/kylekatarnls"
+                }
+            ],
+            "description": "An API extension for DateTime that supports 281 different languages.",
+            "homepage": "https://carbon.nesbot.com",
+            "keywords": [
+                "date",
+                "datetime",
+                "time"
+            ],
+            "support": {
+                "issues": "https://github.com/briannesbitt/Carbon/issues",
+                "source": "https://github.com/briannesbitt/Carbon"
+            },
+            "funding": [
+                {
+                    "url": "https://opencollective.com/Carbon",
+                    "type": "open_collective"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
+                    "type": "tidelift"
+                }
+            ],
+            "install-path": "../nesbot/carbon"
+        },
+        {
             "name": "paragonie/random_compat",
             "version": "v9.99.100",
             "version_normalized": "9.99.100.0",
@@ -379,34 +603,33 @@
         },
         {
             "name": "php-mime-mail-parser/php-mime-mail-parser",
-            "version": "5.0.5",
-            "version_normalized": "5.0.5.0",
+            "version": "7.0.0",
+            "version_normalized": "7.0.0.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/php-mime-mail-parser/php-mime-mail-parser.git",
-                "reference": "27983433aabeccee832573c3c56e6a4855e57745"
+                "reference": "9d09a017f3f103fec8456211a4a538b80e0eca0d"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/php-mime-mail-parser/php-mime-mail-parser/zipball/27983433aabeccee832573c3c56e6a4855e57745",
-                "reference": "27983433aabeccee832573c3c56e6a4855e57745",
+                "url": "https://api.github.com/repos/php-mime-mail-parser/php-mime-mail-parser/zipball/9d09a017f3f103fec8456211a4a538b80e0eca0d",
+                "reference": "9d09a017f3f103fec8456211a4a538b80e0eca0d",
                 "shasum": ""
             },
             "require": {
                 "ext-mailparse": "*",
-                "php": "^7.1"
+                "php": "^7.2|^8.0"
             },
             "replace": {
                 "exorus/php-mime-mail-parser": "*",
                 "messaged/php-mime-mail-parser": "*"
             },
             "require-dev": {
-                "php-coveralls/php-coveralls": "^2.1",
-                "phpunit/php-token-stream": "^3.0",
-                "phpunit/phpunit": "^7.0",
-                "squizlabs/php_codesniffer": "^3.4"
+                "php-coveralls/php-coveralls": "^2.2",
+                "phpunit/phpunit": "^8.0",
+                "squizlabs/php_codesniffer": "^3.5"
             },
-            "time": "2019-09-23T11:57:58+00:00",
+            "time": "2021-02-25T17:21:57+00:00",
             "type": "library",
             "installation-source": "dist",
             "autoload": {
@@ -450,7 +673,7 @@
                     "role": "Developer"
                 }
             ],
-            "description": "A fully tested email parser for PHP 7.1+ (mailparse extension wrapper).",
+            "description": "A fully tested email parser for PHP 7.2+ (mailparse extension wrapper).",
             "homepage": "https://github.com/php-mime-mail-parser/php-mime-mail-parser",
             "keywords": [
                 "MimeMailParser",
@@ -460,21 +683,31 @@
                 "parser",
                 "php"
             ],
+            "support": {
+                "issues": "https://github.com/php-mime-mail-parser/php-mime-mail-parser/issues",
+                "source": "https://github.com/php-mime-mail-parser/php-mime-mail-parser/tree/7.0.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/eXorus",
+                    "type": "github"
+                }
+            ],
             "install-path": "../php-mime-mail-parser/php-mime-mail-parser"
         },
         {
             "name": "phpmailer/phpmailer",
-            "version": "v6.2.0",
-            "version_normalized": "6.2.0.0",
+            "version": "v6.5.0",
+            "version_normalized": "6.5.0.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/PHPMailer/PHPMailer.git",
-                "reference": "e38888a75c070304ca5514197d4847a59a5c853f"
+                "reference": "a5b5c43e50b7fba655f793ad27303cd74c57363c"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/e38888a75c070304ca5514197d4847a59a5c853f",
-                "reference": "e38888a75c070304ca5514197d4847a59a5c853f",
+                "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/a5b5c43e50b7fba655f793ad27303cd74c57363c",
+                "reference": "a5b5c43e50b7fba655f793ad27303cd74c57363c",
                 "shasum": ""
             },
             "require": {
@@ -492,14 +725,14 @@
                 "yoast/phpunit-polyfills": "^0.2.0"
             },
             "suggest": {
-                "ext-mbstring": "Needed to send email in multibyte encoding charset",
+                "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses",
                 "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
                 "league/oauth2-google": "Needed for Google XOAUTH2 authentication",
                 "psr/log": "For optional PSR-3 debug logging",
                 "stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication",
                 "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)"
             },
-            "time": "2020-11-25T15:24:57+00:00",
+            "time": "2021-06-16T14:33:43+00:00",
             "type": "library",
             "installation-source": "dist",
             "autoload": {
@@ -531,7 +764,7 @@
             "description": "PHPMailer is a full-featured email creation and transfer class for PHP",
             "support": {
                 "issues": "https://github.com/PHPMailer/PHPMailer/issues",
-                "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.2.0"
+                "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.5.0"
             },
             "funding": [
                 {
@@ -542,27 +775,190 @@
             "install-path": "../phpmailer/phpmailer"
         },
         {
-            "name": "robthree/twofactorauth",
-            "version": "1.7.0",
-            "version_normalized": "1.7.0.0",
+            "name": "psr/container",
+            "version": "1.1.1",
+            "version_normalized": "1.1.1.0",
             "source": {
                 "type": "git",
-                "url": "https://github.com/RobThree/TwoFactorAuth.git",
-                "reference": "37983bf675c5baca09d19d6705170489d0df0002"
+                "url": "https://github.com/php-fig/container.git",
+                "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/RobThree/TwoFactorAuth/zipball/37983bf675c5baca09d19d6705170489d0df0002",
-                "reference": "37983bf675c5baca09d19d6705170489d0df0002",
+                "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
+                "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.2.0"
+            },
+            "time": "2021-03-05T17:36:06+00:00",
+            "type": "library",
+            "installation-source": "dist",
+            "autoload": {
+                "psr-4": {
+                    "Psr\\Container\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "https://www.php-fig.org/"
+                }
+            ],
+            "description": "Common Container Interface (PHP FIG PSR-11)",
+            "homepage": "https://github.com/php-fig/container",
+            "keywords": [
+                "PSR-11",
+                "container",
+                "container-interface",
+                "container-interop",
+                "psr"
+            ],
+            "support": {
+                "issues": "https://github.com/php-fig/container/issues",
+                "source": "https://github.com/php-fig/container/tree/1.1.1"
+            },
+            "install-path": "../psr/container"
+        },
+        {
+            "name": "psr/log",
+            "version": "1.1.4",
+            "version_normalized": "1.1.4.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/log.git",
+                "reference": "d49695b909c3b7628b6289db5479a1c204601f11"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
+                "reference": "d49695b909c3b7628b6289db5479a1c204601f11",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.0"
+            },
+            "time": "2021-05-03T11:20:27+00:00",
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.1.x-dev"
+                }
+            },
+            "installation-source": "dist",
+            "autoload": {
+                "psr-4": {
+                    "Psr\\Log\\": "Psr/Log/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "https://www.php-fig.org/"
+                }
+            ],
+            "description": "Common interface for logging libraries",
+            "homepage": "https://github.com/php-fig/log",
+            "keywords": [
+                "log",
+                "psr",
+                "psr-3"
+            ],
+            "support": {
+                "source": "https://github.com/php-fig/log/tree/1.1.4"
+            },
+            "install-path": "../psr/log"
+        },
+        {
+            "name": "psr/simple-cache",
+            "version": "1.0.1",
+            "version_normalized": "1.0.1.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/simple-cache.git",
+                "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
+                "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.3.0"
+            },
+            "time": "2017-10-23T01:57:42+00:00",
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "installation-source": "dist",
+            "autoload": {
+                "psr-4": {
+                    "Psr\\SimpleCache\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "http://www.php-fig.org/"
+                }
+            ],
+            "description": "Common interfaces for simple caching",
+            "keywords": [
+                "cache",
+                "caching",
+                "psr",
+                "psr-16",
+                "simple-cache"
+            ],
+            "support": {
+                "source": "https://github.com/php-fig/simple-cache/tree/master"
+            },
+            "install-path": "../psr/simple-cache"
+        },
+        {
+            "name": "robthree/twofactorauth",
+            "version": "1.8.0",
+            "version_normalized": "1.8.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/RobThree/TwoFactorAuth.git",
+                "reference": "30a38627ae1e7c9399dae67e265063cd6ec5276c"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/RobThree/TwoFactorAuth/zipball/30a38627ae1e7c9399dae67e265063cd6ec5276c",
+                "reference": "30a38627ae1e7c9399dae67e265063cd6ec5276c",
                 "shasum": ""
             },
             "require": {
                 "php": ">=5.6.0"
             },
             "require-dev": {
+                "php-parallel-lint/php-parallel-lint": "^1.2",
                 "phpunit/phpunit": "@stable"
             },
-            "time": "2020-01-02T19:56:46+00:00",
+            "suggest": {
+                "bacon/bacon-qr-code": "Needed for BaconQrCodeProvider provider",
+                "endroid/qr-code": "Needed for EndroidQrCodeProvider"
+            },
+            "time": "2021-03-09T18:24:05+00:00",
             "type": "library",
             "installation-source": "dist",
             "autoload": {
@@ -593,6 +989,20 @@
                 "php",
                 "tfa"
             ],
+            "support": {
+                "issues": "https://github.com/RobThree/TwoFactorAuth/issues",
+                "source": "https://github.com/RobThree/TwoFactorAuth"
+            },
+            "funding": [
+                {
+                    "url": "https://paypal.me/robiii",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/RobThree",
+                    "type": "github"
+                }
+            ],
             "install-path": "../robthree/twofactorauth"
         },
         {
@@ -649,6 +1059,572 @@
             "install-path": "../soundasleep/html2text"
         },
         {
+            "name": "symfony/deprecation-contracts",
+            "version": "v2.4.0",
+            "version_normalized": "2.4.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/deprecation-contracts.git",
+                "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627",
+                "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "time": "2021-03-23T23:28:01+00:00",
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "2.4-dev"
+                },
+                "thanks": {
+                    "name": "symfony/contracts",
+                    "url": "https://github.com/symfony/contracts"
+                }
+            },
+            "installation-source": "dist",
+            "autoload": {
+                "files": [
+                    "function.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "A generic function and convention to trigger deprecation notices",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/deprecation-contracts/tree/v2.4.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "install-path": "../symfony/deprecation-contracts"
+        },
+        {
+            "name": "symfony/polyfill-mbstring",
+            "version": "v1.23.1",
+            "version_normalized": "1.23.1.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-mbstring.git",
+                "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9174a3d80210dca8daa7f31fec659150bbeabfc6",
+                "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "suggest": {
+                "ext-mbstring": "For best performance"
+            },
+            "time": "2021-05-27T12:26:48+00:00",
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "1.23-dev"
+                },
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "installation-source": "dist",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Polyfill\\Mbstring\\": ""
+                },
+                "files": [
+                    "bootstrap.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill for the Mbstring extension",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "mbstring",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.1"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "install-path": "../symfony/polyfill-mbstring"
+        },
+        {
+            "name": "symfony/polyfill-php80",
+            "version": "v1.23.1",
+            "version_normalized": "1.23.1.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-php80.git",
+                "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/1100343ed1a92e3a38f9ae122fc0eb21602547be",
+                "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "time": "2021-07-28T13:41:28+00:00",
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "1.23-dev"
+                },
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "installation-source": "dist",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Polyfill\\Php80\\": ""
+                },
+                "files": [
+                    "bootstrap.php"
+                ],
+                "classmap": [
+                    "Resources/stubs"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Ion Bazan",
+                    "email": "ion.bazan@gmail.com"
+                },
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-php80/tree/v1.23.1"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "install-path": "../symfony/polyfill-php80"
+        },
+        {
+            "name": "symfony/translation",
+            "version": "v5.3.4",
+            "version_normalized": "5.3.4.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/translation.git",
+                "reference": "d89ad7292932c2699cbe4af98d72c5c6bbc504c1"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/translation/zipball/d89ad7292932c2699cbe4af98d72c5c6bbc504c1",
+                "reference": "d89ad7292932c2699cbe4af98d72c5c6bbc504c1",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.2.5",
+                "symfony/deprecation-contracts": "^2.1",
+                "symfony/polyfill-mbstring": "~1.0",
+                "symfony/polyfill-php80": "^1.16",
+                "symfony/translation-contracts": "^2.3"
+            },
+            "conflict": {
+                "symfony/config": "<4.4",
+                "symfony/dependency-injection": "<5.0",
+                "symfony/http-kernel": "<5.0",
+                "symfony/twig-bundle": "<5.0",
+                "symfony/yaml": "<4.4"
+            },
+            "provide": {
+                "symfony/translation-implementation": "2.3"
+            },
+            "require-dev": {
+                "psr/log": "^1|^2|^3",
+                "symfony/config": "^4.4|^5.0",
+                "symfony/console": "^4.4|^5.0",
+                "symfony/dependency-injection": "^5.0",
+                "symfony/finder": "^4.4|^5.0",
+                "symfony/http-kernel": "^5.0",
+                "symfony/intl": "^4.4|^5.0",
+                "symfony/polyfill-intl-icu": "^1.21",
+                "symfony/service-contracts": "^1.1.2|^2",
+                "symfony/yaml": "^4.4|^5.0"
+            },
+            "suggest": {
+                "psr/log-implementation": "To use logging capability in translator",
+                "symfony/config": "",
+                "symfony/yaml": ""
+            },
+            "time": "2021-07-25T09:39:16+00:00",
+            "type": "library",
+            "installation-source": "dist",
+            "autoload": {
+                "files": [
+                    "Resources/functions.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Component\\Translation\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Provides tools to internationalize your application",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/translation/tree/v5.3.4"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "install-path": "../symfony/translation"
+        },
+        {
+            "name": "symfony/translation-contracts",
+            "version": "v2.4.0",
+            "version_normalized": "2.4.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/translation-contracts.git",
+                "reference": "95c812666f3e91db75385749fe219c5e494c7f95"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/95c812666f3e91db75385749fe219c5e494c7f95",
+                "reference": "95c812666f3e91db75385749fe219c5e494c7f95",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.2.5"
+            },
+            "suggest": {
+                "symfony/translation-implementation": ""
+            },
+            "time": "2021-03-23T23:28:01+00:00",
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "2.4-dev"
+                },
+                "thanks": {
+                    "name": "symfony/contracts",
+                    "url": "https://github.com/symfony/contracts"
+                }
+            },
+            "installation-source": "dist",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Contracts\\Translation\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Generic abstractions related to translation",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "abstractions",
+                "contracts",
+                "decoupling",
+                "interfaces",
+                "interoperability",
+                "standards"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/translation-contracts/tree/v2.4.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "install-path": "../symfony/translation-contracts"
+        },
+        {
+            "name": "symfony/var-dumper",
+            "version": "v5.3.6",
+            "version_normalized": "5.3.6.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/var-dumper.git",
+                "reference": "3dd8ddd1e260e58ecc61bb78da3b6584b3bfcba0"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/var-dumper/zipball/3dd8ddd1e260e58ecc61bb78da3b6584b3bfcba0",
+                "reference": "3dd8ddd1e260e58ecc61bb78da3b6584b3bfcba0",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.2.5",
+                "symfony/polyfill-mbstring": "~1.0",
+                "symfony/polyfill-php80": "^1.16"
+            },
+            "conflict": {
+                "phpunit/phpunit": "<5.4.3",
+                "symfony/console": "<4.4"
+            },
+            "require-dev": {
+                "ext-iconv": "*",
+                "symfony/console": "^4.4|^5.0",
+                "symfony/process": "^4.4|^5.0",
+                "twig/twig": "^2.13|^3.0.4"
+            },
+            "suggest": {
+                "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
+                "ext-intl": "To show region name in time zone dump",
+                "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
+            },
+            "time": "2021-07-27T01:56:02+00:00",
+            "bin": [
+                "Resources/bin/var-dump-server"
+            ],
+            "type": "library",
+            "installation-source": "dist",
+            "autoload": {
+                "files": [
+                    "Resources/functions/dump.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Component\\VarDumper\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Provides mechanisms for walking through any arbitrary PHP variable",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "debug",
+                "dump"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/var-dumper/tree/v5.3.6"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "install-path": "../symfony/var-dumper"
+        },
+        {
+            "name": "tightenco/collect",
+            "version": "v8.34.0",
+            "version_normalized": "8.34.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/tighten/collect.git",
+                "reference": "b069783ab0c547bb894ebcf8e7f6024bb401f9d2"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/tighten/collect/zipball/b069783ab0c547bb894ebcf8e7f6024bb401f9d2",
+                "reference": "b069783ab0c547bb894ebcf8e7f6024bb401f9d2",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.2|^8.0",
+                "symfony/var-dumper": "^3.4 || ^4.0 || ^5.0"
+            },
+            "require-dev": {
+                "mockery/mockery": "^1.0",
+                "nesbot/carbon": "^2.23.0",
+                "phpunit/phpunit": "^8.3"
+            },
+            "time": "2021-03-29T21:29:00+00:00",
+            "type": "library",
+            "installation-source": "dist",
+            "autoload": {
+                "files": [
+                    "src/Collect/Support/helpers.php",
+                    "src/Collect/Support/alias.php"
+                ],
+                "psr-4": {
+                    "Tightenco\\Collect\\": "src/Collect"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylorotwell@gmail.com"
+                }
+            ],
+            "description": "Collect - Illuminate Collections as a separate package.",
+            "keywords": [
+                "collection",
+                "laravel"
+            ],
+            "support": {
+                "issues": "https://github.com/tighten/collect/issues",
+                "source": "https://github.com/tighten/collect/tree/v8.34.0"
+            },
+            "install-path": "../tightenco/collect"
+        },
+        {
             "name": "yubico/u2flib-server",
             "version": "1.0.2",
             "version_normalized": "1.0.2.0",
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/installed.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/installed.php
index 189c9b7..2e6adce 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/installed.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/installed.php
@@ -1,137 +1,257 @@
-<?php return array (
-  'root' => 
-  array (
-    'pretty_version' => '1.0.0+no-version-set',
-    'version' => '1.0.0.0',
-    'aliases' => 
-    array (
+<?php return array(
+    'root' => array(
+        'pretty_version' => '1.0.0+no-version-set',
+        'version' => '1.0.0.0',
+        'type' => 'library',
+        'install_path' => __DIR__ . '/../../',
+        'aliases' => array(),
+        'reference' => NULL,
+        'name' => '__root__',
+        'dev' => true,
     ),
-    'reference' => NULL,
-    'name' => '__root__',
-  ),
-  'versions' => 
-  array (
-    '__root__' => 
-    array (
-      'pretty_version' => '1.0.0+no-version-set',
-      'version' => '1.0.0.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => NULL,
+    'versions' => array(
+        '__root__' => array(
+            'pretty_version' => '1.0.0+no-version-set',
+            'version' => '1.0.0.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../../',
+            'aliases' => array(),
+            'reference' => NULL,
+            'dev_requirement' => false,
+        ),
+        'bshaffer/oauth2-server-php' => array(
+            'pretty_version' => 'v1.11.1',
+            'version' => '1.11.1.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../bshaffer/oauth2-server-php',
+            'aliases' => array(),
+            'reference' => '5a0c8000d4763b276919e2106f54eddda6bc50fa',
+            'dev_requirement' => false,
+        ),
+        'ddeboer/imap' => array(
+            'pretty_version' => '1.12.1',
+            'version' => '1.12.1.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../ddeboer/imap',
+            'aliases' => array(),
+            'reference' => 'dbed05ca67b93509345a820b2859de10c48948fb',
+            'dev_requirement' => false,
+        ),
+        'directorytree/ldaprecord' => array(
+            'pretty_version' => 'v2.6.3',
+            'version' => '2.6.3.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../directorytree/ldaprecord',
+            'aliases' => array(),
+            'reference' => '5c93ec6d1ef458290825a8b0a148946dce7c1e7a',
+            'dev_requirement' => false,
+        ),
+        'exorus/php-mime-mail-parser' => array(
+            'dev_requirement' => false,
+            'replaced' => array(
+                0 => '*',
+            ),
+        ),
+        'illuminate/contracts' => array(
+            'pretty_version' => 'v8.53.1',
+            'version' => '8.53.1.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../illuminate/contracts',
+            'aliases' => array(),
+            'reference' => '504a34286a1b4c5421c43087d6bd4e176138f6fb',
+            'dev_requirement' => false,
+        ),
+        'matthiasmullie/minify' => array(
+            'pretty_version' => '1.3.66',
+            'version' => '1.3.66.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../matthiasmullie/minify',
+            'aliases' => array(),
+            'reference' => '45fd3b0f1dfa2c965857c6d4a470bea52adc31a6',
+            'dev_requirement' => false,
+        ),
+        'matthiasmullie/path-converter' => array(
+            'pretty_version' => '1.1.3',
+            'version' => '1.1.3.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../matthiasmullie/path-converter',
+            'aliases' => array(),
+            'reference' => 'e7d13b2c7e2f2268e1424aaed02085518afa02d9',
+            'dev_requirement' => false,
+        ),
+        'messaged/php-mime-mail-parser' => array(
+            'dev_requirement' => false,
+            'replaced' => array(
+                0 => '*',
+            ),
+        ),
+        'mustangostang/spyc' => array(
+            'pretty_version' => '0.6.3',
+            'version' => '0.6.3.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../mustangostang/spyc',
+            'aliases' => array(),
+            'reference' => '4627c838b16550b666d15aeae1e5289dd5b77da0',
+            'dev_requirement' => false,
+        ),
+        'nesbot/carbon' => array(
+            'pretty_version' => '2.51.1',
+            'version' => '2.51.1.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../nesbot/carbon',
+            'aliases' => array(),
+            'reference' => '8619c299d1e0d4b344e1f98ca07a1ce2cfbf1922',
+            'dev_requirement' => false,
+        ),
+        'paragonie/random_compat' => array(
+            'pretty_version' => 'v9.99.100',
+            'version' => '9.99.100.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../paragonie/random_compat',
+            'aliases' => array(),
+            'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a',
+            'dev_requirement' => false,
+        ),
+        'php-mime-mail-parser/php-mime-mail-parser' => array(
+            'pretty_version' => '7.0.0',
+            'version' => '7.0.0.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../php-mime-mail-parser/php-mime-mail-parser',
+            'aliases' => array(),
+            'reference' => '9d09a017f3f103fec8456211a4a538b80e0eca0d',
+            'dev_requirement' => false,
+        ),
+        'phpmailer/phpmailer' => array(
+            'pretty_version' => 'v6.5.0',
+            'version' => '6.5.0.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../phpmailer/phpmailer',
+            'aliases' => array(),
+            'reference' => 'a5b5c43e50b7fba655f793ad27303cd74c57363c',
+            'dev_requirement' => false,
+        ),
+        'psr/container' => array(
+            'pretty_version' => '1.1.1',
+            'version' => '1.1.1.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../psr/container',
+            'aliases' => array(),
+            'reference' => '8622567409010282b7aeebe4bb841fe98b58dcaf',
+            'dev_requirement' => false,
+        ),
+        'psr/log' => array(
+            'pretty_version' => '1.1.4',
+            'version' => '1.1.4.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../psr/log',
+            'aliases' => array(),
+            'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11',
+            'dev_requirement' => false,
+        ),
+        'psr/simple-cache' => array(
+            'pretty_version' => '1.0.1',
+            'version' => '1.0.1.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../psr/simple-cache',
+            'aliases' => array(),
+            'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b',
+            'dev_requirement' => false,
+        ),
+        'robthree/twofactorauth' => array(
+            'pretty_version' => '1.8.0',
+            'version' => '1.8.0.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../robthree/twofactorauth',
+            'aliases' => array(),
+            'reference' => '30a38627ae1e7c9399dae67e265063cd6ec5276c',
+            'dev_requirement' => false,
+        ),
+        'soundasleep/html2text' => array(
+            'pretty_version' => '0.5.0',
+            'version' => '0.5.0.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../soundasleep/html2text',
+            'aliases' => array(),
+            'reference' => 'cdb89f6ffa2c4cc78f8ed9ea6ee0594a9133ccad',
+            'dev_requirement' => false,
+        ),
+        'symfony/deprecation-contracts' => array(
+            'pretty_version' => 'v2.4.0',
+            'version' => '2.4.0.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../symfony/deprecation-contracts',
+            'aliases' => array(),
+            'reference' => '5f38c8804a9e97d23e0c8d63341088cd8a22d627',
+            'dev_requirement' => false,
+        ),
+        'symfony/polyfill-mbstring' => array(
+            'pretty_version' => 'v1.23.1',
+            'version' => '1.23.1.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../symfony/polyfill-mbstring',
+            'aliases' => array(),
+            'reference' => '9174a3d80210dca8daa7f31fec659150bbeabfc6',
+            'dev_requirement' => false,
+        ),
+        'symfony/polyfill-php80' => array(
+            'pretty_version' => 'v1.23.1',
+            'version' => '1.23.1.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../symfony/polyfill-php80',
+            'aliases' => array(),
+            'reference' => '1100343ed1a92e3a38f9ae122fc0eb21602547be',
+            'dev_requirement' => false,
+        ),
+        'symfony/translation' => array(
+            'pretty_version' => 'v5.3.4',
+            'version' => '5.3.4.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../symfony/translation',
+            'aliases' => array(),
+            'reference' => 'd89ad7292932c2699cbe4af98d72c5c6bbc504c1',
+            'dev_requirement' => false,
+        ),
+        'symfony/translation-contracts' => array(
+            'pretty_version' => 'v2.4.0',
+            'version' => '2.4.0.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../symfony/translation-contracts',
+            'aliases' => array(),
+            'reference' => '95c812666f3e91db75385749fe219c5e494c7f95',
+            'dev_requirement' => false,
+        ),
+        'symfony/translation-implementation' => array(
+            'dev_requirement' => false,
+            'provided' => array(
+                0 => '2.3',
+            ),
+        ),
+        'symfony/var-dumper' => array(
+            'pretty_version' => 'v5.3.6',
+            'version' => '5.3.6.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../symfony/var-dumper',
+            'aliases' => array(),
+            'reference' => '3dd8ddd1e260e58ecc61bb78da3b6584b3bfcba0',
+            'dev_requirement' => false,
+        ),
+        'tightenco/collect' => array(
+            'pretty_version' => 'v8.34.0',
+            'version' => '8.34.0.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../tightenco/collect',
+            'aliases' => array(),
+            'reference' => 'b069783ab0c547bb894ebcf8e7f6024bb401f9d2',
+            'dev_requirement' => false,
+        ),
+        'yubico/u2flib-server' => array(
+            'pretty_version' => '1.0.2',
+            'version' => '1.0.2.0',
+            'type' => 'library',
+            'install_path' => __DIR__ . '/../yubico/u2flib-server',
+            'aliases' => array(),
+            'reference' => '55d813acf68212ad2cadecde07551600d6971939',
+            'dev_requirement' => false,
+        ),
     ),
-    'bshaffer/oauth2-server-php' => 
-    array (
-      'pretty_version' => 'v1.11.1',
-      'version' => '1.11.1.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => '5a0c8000d4763b276919e2106f54eddda6bc50fa',
-    ),
-    'ddeboer/imap' => 
-    array (
-      'pretty_version' => '1.11.0',
-      'version' => '1.11.0.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => 'a089dfcb9d177f921eb5dadc8d4144a44dff22ee',
-    ),
-    'exorus/php-mime-mail-parser' => 
-    array (
-      'replaced' => 
-      array (
-        0 => '*',
-      ),
-    ),
-    'matthiasmullie/minify' => 
-    array (
-      'pretty_version' => '1.3.65',
-      'version' => '1.3.65.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => '227f19062451c55a797e0cc667ef983834e6580c',
-    ),
-    'matthiasmullie/path-converter' => 
-    array (
-      'pretty_version' => '1.1.3',
-      'version' => '1.1.3.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => 'e7d13b2c7e2f2268e1424aaed02085518afa02d9',
-    ),
-    'messaged/php-mime-mail-parser' => 
-    array (
-      'replaced' => 
-      array (
-        0 => '*',
-      ),
-    ),
-    'mustangostang/spyc' => 
-    array (
-      'pretty_version' => '0.6.3',
-      'version' => '0.6.3.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => '4627c838b16550b666d15aeae1e5289dd5b77da0',
-    ),
-    'paragonie/random_compat' => 
-    array (
-      'pretty_version' => 'v9.99.100',
-      'version' => '9.99.100.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => '996434e5492cb4c3edcb9168db6fbb1359ef965a',
-    ),
-    'php-mime-mail-parser/php-mime-mail-parser' => 
-    array (
-      'pretty_version' => '5.0.5',
-      'version' => '5.0.5.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => '27983433aabeccee832573c3c56e6a4855e57745',
-    ),
-    'phpmailer/phpmailer' => 
-    array (
-      'pretty_version' => 'v6.2.0',
-      'version' => '6.2.0.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => 'e38888a75c070304ca5514197d4847a59a5c853f',
-    ),
-    'robthree/twofactorauth' => 
-    array (
-      'pretty_version' => '1.7.0',
-      'version' => '1.7.0.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => '37983bf675c5baca09d19d6705170489d0df0002',
-    ),
-    'soundasleep/html2text' => 
-    array (
-      'pretty_version' => '0.5.0',
-      'version' => '0.5.0.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => 'cdb89f6ffa2c4cc78f8ed9ea6ee0594a9133ccad',
-    ),
-    'yubico/u2flib-server' => 
-    array (
-      'pretty_version' => '1.0.2',
-      'version' => '1.0.2.0',
-      'aliases' => 
-      array (
-      ),
-      'reference' => '55d813acf68212ad2cadecde07551600d6971939',
-    ),
-  ),
 );
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/platform_check.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/platform_check.php
index 92370c5..580fa96 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/platform_check.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/composer/platform_check.php
@@ -4,8 +4,8 @@
 
 $issues = array();
 
-if (!(PHP_VERSION_ID >= 70300)) {
-    $issues[] = 'Your Composer dependencies require a PHP version ">= 7.3.0". You are running ' . PHP_VERSION . '.';
+if (!(PHP_VERSION_ID >= 70400)) {
+    $issues[] = 'Your Composer dependencies require a PHP version ">= 7.4.0". You are running ' . PHP_VERSION . '.';
 }
 
 if ($issues) {
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/CHANGELOG.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/CHANGELOG.md
deleted file mode 100644
index 4ddae6e..0000000
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/CHANGELOG.md
+++ /dev/null
@@ -1,678 +0,0 @@
-# Changelog
-
-## [1.11.0](https://github.com/ddeboer/imap/tree/1.11.0) (2020-11-30)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.10.1...1.11.0)
-
-**Implemented enhancements:**
-
-- PHP 8 Compatibility [\#481](https://github.com/ddeboer/imap/issues/481)
-- \[GA\] PHP 8 compatibility fix [\#483](https://github.com/ddeboer/imap/pull/483) ([Slamdunk](https://github.com/Slamdunk))
-- Support PHP 8.0, require PHP 7.3 [\#482](https://github.com/ddeboer/imap/pull/482) ([Slamdunk](https://github.com/Slamdunk))
-
-**Fixed bugs:**
-
-- Fix: Outlook date format [\#480](https://github.com/ddeboer/imap/pull/480) ([gajosadrian](https://github.com/gajosadrian))
-
-**Closed issues:**
-
-- Closing Connection [\#479](https://github.com/ddeboer/imap/issues/479)
-- Problem with charset of message part / DataPartInfo [\#475](https://github.com/ddeboer/imap/issues/475)
-- Unsupported charset "X-UNKNOWN" [\#425](https://github.com/ddeboer/imap/issues/425)
-
-## [1.10.1](https://github.com/ddeboer/imap/tree/1.10.1) (2020-08-26)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.10.0...1.10.1)
-
-**Fixed bugs:**
-
-- getThread and getMessageSequence not using with the same id [\#469](https://github.com/ddeboer/imap/issues/469)
-- imap\_thread: use absolude ids [\#474](https://github.com/ddeboer/imap/pull/474) ([Slamdunk](https://github.com/Slamdunk))
-
-**Closed issues:**
-
-- How to get a message by Message-ID [\#472](https://github.com/ddeboer/imap/issues/472)
-- Mail with e-sign [\#467](https://github.com/ddeboer/imap/issues/467)
-- Duplicate method definition in MessageInterface [\#455](https://github.com/ddeboer/imap/issues/455)
-- Missed errors in search method [\#444](https://github.com/ddeboer/imap/issues/444)
-
-**Merged pull requests:**
-
-- Subtype not always present [\#473](https://github.com/ddeboer/imap/pull/473) ([Piskvor](https://github.com/Piskvor))
-- Improved error handling for message search method [\#445](https://github.com/ddeboer/imap/pull/445) ([ikarol](https://github.com/ikarol))
-
-## [1.10.0](https://github.com/ddeboer/imap/tree/1.10.0) (2020-01-24)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.9.0...1.10.0)
-
-**Implemented enhancements:**
-
-- Handle comments \(CFWS\) in Date header + not-valid formats [\#439](https://github.com/ddeboer/imap/pull/439) ([pupaxxo](https://github.com/pupaxxo))
-- Support PHP 7.4, require PHP 7.2 [\#433](https://github.com/ddeboer/imap/pull/433) ([Slamdunk](https://github.com/Slamdunk))
-
-**Closed issues:**
-
-- Invalid Date header when trying to fetching date on not RFC compliant emails [\#438](https://github.com/ddeboer/imap/issues/438)
-
-**Merged pull requests:**
-
-- Clear the last used mailbox cache when closing a connection [\#447](https://github.com/ddeboer/imap/pull/447) ([dhzavann](https://github.com/dhzavann))
-- README: update PHP version to match composer.json [\#441](https://github.com/ddeboer/imap/pull/441) ([Slamdunk](https://github.com/Slamdunk))
-- Typo [\#440](https://github.com/ddeboer/imap/pull/440) ([OskarStark](https://github.com/OskarStark))
-
-## [1.9.0](https://github.com/ddeboer/imap/tree/1.9.0) (2019-11-25)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.8.0...1.9.0)
-
-**Implemented enhancements:**
-
-- Quota: let's also test the numbers [\#431](https://github.com/ddeboer/imap/pull/431) ([Slamdunk](https://github.com/Slamdunk))
-- Add getQuota method using imap\_get\_quotaroot to Connection class [\#430](https://github.com/ddeboer/imap/pull/430) ([arkadiusjonczek](https://github.com/arkadiusjonczek))
-
-**Closed issues:**
-
-- markAsSeen\(\)  not work [\#415](https://github.com/ddeboer/imap/issues/415)
-
-**Merged pull requests:**
-
-- CS Fix: strip redundant php docs [\#428](https://github.com/ddeboer/imap/pull/428) ([Slamdunk](https://github.com/Slamdunk))
-- Fix: Variable name [\#412](https://github.com/ddeboer/imap/pull/412) ([localheinz](https://github.com/localheinz))
-
-## [1.8.0](https://github.com/ddeboer/imap/tree/1.8.0) (2019-04-15)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.7.2...1.8.0)
-
-**Implemented enhancements:**
-
-- Add phpstan-strict-rules, expose PartiInterface::getDescription\(\) [\#409](https://github.com/ddeboer/imap/pull/409) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.7.2](https://github.com/ddeboer/imap/tree/1.7.2) (2019-04-12)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.7.1...1.7.2)
-
-**Fixed bugs:**
-
-- Handle message/rfc822 when content-disposition is missing [\#410](https://github.com/ddeboer/imap/pull/410) ([Daredzik](https://github.com/Daredzik))
-
-## [1.7.1](https://github.com/ddeboer/imap/tree/1.7.1) (2019-03-18)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.7.0...1.7.1)
-
-**Fixed bugs:**
-
-- Encoding problem with 1.7 [\#405](https://github.com/ddeboer/imap/issues/405)
-- imap\_search/imap\_sort: default params must not be passed if unspecified [\#406](https://github.com/ddeboer/imap/pull/406) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.7.0](https://github.com/ddeboer/imap/tree/1.7.0) (2019-03-04)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.6.0...1.7.0)
-
-**Implemented enhancements:**
-
-- Docker and Travis differs in handling new message eols [\#404](https://github.com/ddeboer/imap/pull/404) ([Slamdunk](https://github.com/Slamdunk))
-- Update PHP-CS-Fixer rules [\#403](https://github.com/ddeboer/imap/pull/403) ([Slamdunk](https://github.com/Slamdunk))
-- Add charset for imap\_search or imap\_sort [\#402](https://github.com/ddeboer/imap/pull/402) ([Slamdunk](https://github.com/Slamdunk))
-- PHPStan clean ups [\#400](https://github.com/ddeboer/imap/pull/400) ([Slamdunk](https://github.com/Slamdunk))
-- Adding an undelete\(\) message method [\#386](https://github.com/ddeboer/imap/pull/386) ([C-Duv](https://github.com/C-Duv))
-
-**Closed issues:**
-
-- Convert from GBK \(X-GBK\) to UTF-8 Issue [\#395](https://github.com/ddeboer/imap/issues/395)
-
-**Merged pull requests:**
-
-- Add new ResourceCheckFailureException to handle imap\_check\(\) false [\#399](https://github.com/ddeboer/imap/pull/399) ([pyatnitsev](https://github.com/pyatnitsev))
-- Remove GBK -\> X-GBK Alias and add X-GBK -\> GBK [\#396](https://github.com/ddeboer/imap/pull/396) ([pyatnitsev](https://github.com/pyatnitsev))
-- Add Feature Requests to README.md [\#394](https://github.com/ddeboer/imap/pull/394) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.6.0](https://github.com/ddeboer/imap/tree/1.6.0) (2018-12-04)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.5.5...1.6.0)
-
-**Implemented enhancements:**
-
-- Require PHP ^7.1 [\#257](https://github.com/ddeboer/imap/issues/257)
-- Require PHP ^7.1 [\#383](https://github.com/ddeboer/imap/pull/383) ([Slamdunk](https://github.com/Slamdunk))
-- Add ability to pass options and retries to imap\_open [\#382](https://github.com/ddeboer/imap/pull/382) ([Slamdunk](https://github.com/Slamdunk))
-- Docker setup for running tests [\#374](https://github.com/ddeboer/imap/pull/374) ([LeadTechVisas](https://github.com/LeadTechVisas))
-- Get messages by UID sequence [\#373](https://github.com/ddeboer/imap/pull/373) ([LeadTechVisas](https://github.com/LeadTechVisas))
-
-**Fixed bugs:**
-
-- Undeliverable mail: attachment parsing error [\#334](https://github.com/ddeboer/imap/issues/334)
-- imap\_getmailboxes returns false; [\#134](https://github.com/ddeboer/imap/issues/134)
-- Fix mailbox name as only numbers [\#381](https://github.com/ddeboer/imap/pull/381) ([Slamdunk](https://github.com/Slamdunk))
-- Gracefully handle possible non-array return value of imap\_getmailboxes [\#372](https://github.com/ddeboer/imap/pull/372) ([Slamdunk](https://github.com/Slamdunk))
-
-**Closed issues:**
-
-- \[AUTHENTICATIONFAILED\] Authentication failed - Too many login failures [\#368](https://github.com/ddeboer/imap/issues/368)
-- last folder in list [\#353](https://github.com/ddeboer/imap/issues/353)
-- Caching IMAP server connections [\#88](https://github.com/ddeboer/imap/issues/88)
-
-## [1.5.5](https://github.com/ddeboer/imap/tree/1.5.5) (2018-08-21)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.5.4...1.5.5)
-
-**Fixed bugs:**
-
-- Plain text attachments are not identified as Attachment parts [\#341](https://github.com/ddeboer/imap/issues/341)
-- Handle plain/text attachments without Content-Type header [\#367](https://github.com/ddeboer/imap/pull/367) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.5.4](https://github.com/ddeboer/imap/tree/1.5.4) (2018-08-19)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.5.3...1.5.4)
-
-**Fixed bugs:**
-
-- Very long filename, result of getFilename\(\) = NULL? [\#365](https://github.com/ddeboer/imap/issues/365)
-- Support RFC2231 attachment filenames [\#366](https://github.com/ddeboer/imap/pull/366) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.5.3](https://github.com/ddeboer/imap/tree/1.5.3) (2018-07-20)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.5.2...1.5.3)
-
-**Fixed bugs:**
-
-- Dates: handle UT timezone [\#361](https://github.com/ddeboer/imap/pull/361) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.5.2](https://github.com/ddeboer/imap/tree/1.5.2) (2018-07-10)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.5.1...1.5.2)
-
-**Fixed bugs:**
-
-- Fails to load Message Headers [\#358](https://github.com/ddeboer/imap/issues/358)
-- Handle invalid headers [\#359](https://github.com/ddeboer/imap/pull/359) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.5.1](https://github.com/ddeboer/imap/tree/1.5.1) (2018-05-04)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.5.0...1.5.1)
-
-**Fixed bugs:**
-
-- getContent\(\) method returns wrong content part [\#342](https://github.com/ddeboer/imap/issues/342)
-- Fix handle of attachment messages with attachments [\#343](https://github.com/ddeboer/imap/pull/343) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.5.0](https://github.com/ddeboer/imap/tree/1.5.0) (2018-03-26)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.4.1...1.5.0)
-
-**Implemented enhancements:**
-
-- ImapResource: cache last opened mailbox [\#328](https://github.com/ddeboer/imap/pull/328) ([Slamdunk](https://github.com/Slamdunk))
-
-**Fixed bugs:**
-
-- AbstractPart::isAttachment\(\) handle unknown part type [\#302](https://github.com/ddeboer/imap/pull/302) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.4.1](https://github.com/ddeboer/imap/tree/1.4.1) (2018-03-22)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.4.0...1.4.1)
-
-**Fixed bugs:**
-
-- Return value of Ddeboer\\Imap\\Message\\AbstractPart::getDecodedContent\(\) must be of the type string, boolean returned [\#284](https://github.com/ddeboer/imap/issues/284)
-- base64\_decode may return false in PHP \< 7.1 [\#324](https://github.com/ddeboer/imap/pull/324) ([Slamdunk](https://github.com/Slamdunk))
-
-**Merged pull requests:**
-
-- Add entry in README about Mailbox::addMessage [\#325](https://github.com/ddeboer/imap/pull/325) ([soywod](https://github.com/soywod))
-
-## [1.4.0](https://github.com/ddeboer/imap/tree/1.4.0) (2018-03-19)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.3.1...1.4.0)
-
-**Implemented enhancements:**
-
-- Lazy load Message [\#320](https://github.com/ddeboer/imap/pull/320) ([Slamdunk](https://github.com/Slamdunk))
-
-**Fixed bugs:**
-
-- Invalid argument supplied for foreach\(\) in Parameters.php line 52 [\#317](https://github.com/ddeboer/imap/issues/317)
-- Message "11964" does not exist: imap\_fetchstructure\(\): Bad message number [\#310](https://github.com/ddeboer/imap/issues/310)
-- imap\_mime\_header\_decode may return false [\#322](https://github.com/ddeboer/imap/pull/322) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.3.1](https://github.com/ddeboer/imap/tree/1.3.1) (2018-03-09)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.3.0...1.3.1)
-
-**Implemented enhancements:**
-
-- Allow empty port [\#312](https://github.com/ddeboer/imap/pull/312) ([Slamdunk](https://github.com/Slamdunk))
-
-**Closed issues:**
-
-- getServerString\(\) with no port [\#311](https://github.com/ddeboer/imap/issues/311)
-
-## [1.3.0](https://github.com/ddeboer/imap/tree/1.3.0) (2018-02-28)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.2.3...1.3.0)
-
-**Implemented enhancements:**
-
-- Implement bulk-move [\#306](https://github.com/ddeboer/imap/pull/306) ([particleflux](https://github.com/particleflux))
-
-**Closed issues:**
-
-- feature: Bulk move [\#305](https://github.com/ddeboer/imap/issues/305)
-
-**Merged pull requests:**
-
-- README.md: add `Unknown search criterion: OR` note [\#304](https://github.com/ddeboer/imap/pull/304) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.2.3](https://github.com/ddeboer/imap/tree/1.2.3) (2018-02-09)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.2.2...1.2.3)
-
-**Fixed bugs:**
-
-- $part-\>type can be 9 [\#301](https://github.com/ddeboer/imap/issues/301)
-
-**Merged pull requests:**
-
-- README.md: code-coverage has higher priority than Scrutinizer [\#300](https://github.com/ddeboer/imap/pull/300) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.2.2](https://github.com/ddeboer/imap/tree/1.2.2) (2018-02-05)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.2.1...1.2.2)
-
-**Implemented enhancements:**
-
-- Allow PHPUnit ^7.0 [\#296](https://github.com/ddeboer/imap/pull/296) ([Slamdunk](https://github.com/Slamdunk))
-
-**Fixed bugs:**
-
-- Attachment-\>getFilename return null [\#297](https://github.com/ddeboer/imap/issues/297)
-- Don't handle multiplart as an attachment [\#298](https://github.com/ddeboer/imap/pull/298) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.2.1](https://github.com/ddeboer/imap/tree/1.2.1) (2018-01-29)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.2.0...1.2.1)
-
-**Implemented enhancements:**
-
-- Introduce strict comparison [\#289](https://github.com/ddeboer/imap/pull/289) ([Slamdunk](https://github.com/Slamdunk))
-
-**Fixed bugs:**
-
-- Invalid Date header found: "Thur, 04 Jan 2018 06:44:23 +0400" [\#293](https://github.com/ddeboer/imap/issues/293)
-- MessageIterator::current\(\) fails when there are no messages [\#288](https://github.com/ddeboer/imap/issues/288)
-- Remove weekday while parsing date header [\#294](https://github.com/ddeboer/imap/pull/294) ([Slamdunk](https://github.com/Slamdunk))
-- MessageIterator: forbid raw calls [\#290](https://github.com/ddeboer/imap/pull/290) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.2.0](https://github.com/ddeboer/imap/tree/1.2.0) (2018-01-15)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.1.2...1.2.0)
-
-**Implemented enhancements:**
-
-- Make imap\_append\(\) optional arguments reachable [\#280](https://github.com/ddeboer/imap/pull/280) ([Slamdunk](https://github.com/Slamdunk))
-- PHPStan: introduce static analysis [\#276](https://github.com/ddeboer/imap/pull/276) ([Slamdunk](https://github.com/Slamdunk))
-
-**Fixed bugs:**
-
-- getAttachments\(\) problem when mixin inline and attachment [\#281](https://github.com/ddeboer/imap/issues/281)
-- UnexpectedEncodingException: Cannot decode "5" [\#278](https://github.com/ddeboer/imap/issues/278)
-- Handle correctly multiple nested attachments [\#283](https://github.com/ddeboer/imap/pull/283) ([Slamdunk](https://github.com/Slamdunk))
-- Manageable UnexpectedEncodingException [\#282](https://github.com/ddeboer/imap/pull/282) ([Slamdunk](https://github.com/Slamdunk))
-
-**Closed issues:**
-
-- Appending mail with options [\#279](https://github.com/ddeboer/imap/issues/279)
-
-## [1.1.2](https://github.com/ddeboer/imap/tree/1.1.2) (2017-12-12)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.1.1...1.1.2)
-
-**Fixed bugs:**
-
-- Unsupported charset "134": mb\_convert\_encoding\(\): Illegal character encoding specified [\#270](https://github.com/ddeboer/imap/issues/270)
-- Support Microsoft charset values [\#271](https://github.com/ddeboer/imap/pull/271) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.1.1](https://github.com/ddeboer/imap/tree/1.1.1) (2017-11-10)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.1.0...1.1.1)
-
-**Implemented enhancements:**
-
-- Transcoder: expand charset aliases list [\#267](https://github.com/ddeboer/imap/pull/267) ([Slamdunk](https://github.com/Slamdunk))
-
-**Fixed bugs:**
-
-- Charset aliases: fix to lowercase search [\#266](https://github.com/ddeboer/imap/pull/266) ([Slamdunk](https://github.com/Slamdunk))
-
-**Merged pull requests:**
-
-- README.md: add timeout note [\#263](https://github.com/ddeboer/imap/pull/263) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.1.0](https://github.com/ddeboer/imap/tree/1.1.0) (2017-11-06)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.8...1.1.0)
-
-**Implemented enhancements:**
-
-- Deprecate MessageInterface::maskAsSeen\(\) in favour of MessageInterface::markAsSeen\(\) [\#255](https://github.com/ddeboer/imap/pull/255) ([Slamdunk](https://github.com/Slamdunk))
-- Lazy load structured Headers [\#250](https://github.com/ddeboer/imap/pull/250) ([Slamdunk](https://github.com/Slamdunk))
-- Implement imap\_thread [\#249](https://github.com/ddeboer/imap/pull/249) ([Slamdunk](https://github.com/Slamdunk))
-- Require ext-iconv [\#248](https://github.com/ddeboer/imap/pull/248) ([Slamdunk](https://github.com/Slamdunk))
-- Message Part: expose $partNumber [\#244](https://github.com/ddeboer/imap/pull/244) ([wujku](https://github.com/wujku))
-- Add Mockability helpers and documentation [\#236](https://github.com/ddeboer/imap/pull/236) ([Slamdunk](https://github.com/Slamdunk))
-- Add missing interface change for \#225 [\#233](https://github.com/ddeboer/imap/pull/233) ([Slamdunk](https://github.com/Slamdunk))
-- Connection: check if the connection is still active with `imap\_ping` [\#232](https://github.com/ddeboer/imap/pull/232) ([wujku](https://github.com/wujku))
-- Message: add `References` and `In-Reply-To` headers shortcuts [\#230](https://github.com/ddeboer/imap/pull/230) ([wujku](https://github.com/wujku))
-- Added bulk set / clear flags functionality for mailbox messages [\#225](https://github.com/ddeboer/imap/pull/225) ([wujku](https://github.com/wujku))
-
-**Merged pull requests:**
-
-- make docs more obvious [\#252](https://github.com/ddeboer/imap/pull/252) ([lgg](https://github.com/lgg))
-- README.md: add Table of Contents with Travis checker [\#234](https://github.com/ddeboer/imap/pull/234) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.0.8](https://github.com/ddeboer/imap/tree/1.0.8) (2017-10-27)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.7...1.0.8)
-
-**Implemented enhancements:**
-
-- Headers: no catchable exception [\#246](https://github.com/ddeboer/imap/issues/246)
-- imap\_thread [\#113](https://github.com/ddeboer/imap/issues/113)
-
-**Fixed bugs:**
-
-- \[TypeError\] Return value of Ddeboer\Imap\Message\AbstractMessage::getId\(\) must be of the type string, null returned [\#253](https://github.com/ddeboer/imap/issues/253)
-- BasicMessageInterface::getId\(\) can be null [\#254](https://github.com/ddeboer/imap/pull/254) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.0.7](https://github.com/ddeboer/imap/tree/1.0.7) (2017-10-16)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.6...1.0.7)
-
-**Fixed bugs:**
-
-- Problem with a IMAP resource stream [\#245](https://github.com/ddeboer/imap/issues/245)
-- IMAP resource must be checked at every call for mailbox context [\#247](https://github.com/ddeboer/imap/pull/247) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.0.6](https://github.com/ddeboer/imap/tree/1.0.6) (2017-10-12)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.5...1.0.6)
-
-**Fixed bugs:**
-
-- \[TypeError\] Return value of AbstractMessage::getFrom\(\) must be an instance of EmailAddress, null returned [\#241](https://github.com/ddeboer/imap/issues/241)
-- Message: Date header can be absent [\#243](https://github.com/ddeboer/imap/pull/243) ([Slamdunk](https://github.com/Slamdunk))
-- Message: From header can be absent [\#242](https://github.com/ddeboer/imap/pull/242) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.0.5](https://github.com/ddeboer/imap/tree/1.0.5) (2017-10-12)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.4...1.0.5)
-
-**Fixed bugs:**
-
-- Use set\_error\_handler with late exception [\#240](https://github.com/ddeboer/imap/pull/240) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.0.4](https://github.com/ddeboer/imap/tree/1.0.4) (2017-10-11)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.3...1.0.4)
-
-**Implemented enhancements:**
-
-- Avoid \(set|restor\)\_error\_handler [\#239](https://github.com/ddeboer/imap/pull/239) ([Slamdunk](https://github.com/Slamdunk))
-
-**Fixed bugs:**
-
-- Current Transcoder class does not support all charsets.  [\#237](https://github.com/ddeboer/imap/issues/237)
-- Relay also iconv during decoding [\#238](https://github.com/ddeboer/imap/pull/238) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.0.3](https://github.com/ddeboer/imap/tree/1.0.3) (2017-10-11)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.2...1.0.3)
-
-**Fixed bugs:**
-
-- Attachment::getFilename\(\) may be null on inline-att, widen return type [\#235](https://github.com/ddeboer/imap/pull/235) ([wujku](https://github.com/wujku))
-
-## [1.0.2](https://github.com/ddeboer/imap/tree/1.0.2) (2017-10-06)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.1...1.0.2)
-
-**Fixed bugs:**
-
-- Issue with saving XML attachments [\#228](https://github.com/ddeboer/imap/issues/228)
-- Do not charset-decode attachments [\#231](https://github.com/ddeboer/imap/pull/231) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.0.1](https://github.com/ddeboer/imap/tree/1.0.1) (2017-10-05)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.0...1.0.1)
-
-**Fixed bugs:**
-
-- Error with attachment charset [\#226](https://github.com/ddeboer/imap/issues/226)
-- If charset is not specified defaults to "us-ascii" [\#227](https://github.com/ddeboer/imap/pull/227) ([Slamdunk](https://github.com/Slamdunk))
-
-## [1.0.0](https://github.com/ddeboer/imap/tree/1.0.0) (2017-10-04)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/0.5.2...1.0.0)
-
-**Implemented enhancements:**
-
-- Need getAll for headers [\#200](https://github.com/ddeboer/imap/issues/200)
-- Tests: implement @covers to avoid false positive on code-coverage [\#188](https://github.com/ddeboer/imap/issues/188)
-- Remove commented code [\#174](https://github.com/ddeboer/imap/issues/174)
-- Regex in SearchExpressions [\#157](https://github.com/ddeboer/imap/issues/157)
-- How do I get unread messages count? [\#98](https://github.com/ddeboer/imap/issues/98)
-- Add mocking ability through Interfaces [\#221](https://github.com/ddeboer/imap/pull/221) ([Slamdunk](https://github.com/Slamdunk))
-- Wrap imap resource to periodically check its status [\#220](https://github.com/ddeboer/imap/pull/220) ([Slamdunk](https://github.com/Slamdunk))
-- Add more coding-standard rules [\#218](https://github.com/ddeboer/imap/pull/218) ([Slamdunk](https://github.com/Slamdunk))
-- Always keep unseen: remove keepUnseen, add markAsSeen [\#217](https://github.com/ddeboer/imap/pull/217) ([Slamdunk](https://github.com/Slamdunk))
-- Embedded messages: refactor \#106 [\#216](https://github.com/ddeboer/imap/pull/216) ([Slamdunk](https://github.com/Slamdunk))
-- Headers now extends \ArrayIterator [\#215](https://github.com/ddeboer/imap/pull/215) ([Slamdunk](https://github.com/Slamdunk))
-- Implement imap\_mail\_copy [\#214](https://github.com/ddeboer/imap/pull/214) ([Slamdunk](https://github.com/Slamdunk))
-- Imap sort [\#213](https://github.com/ddeboer/imap/pull/213) ([Slamdunk](https://github.com/Slamdunk))
-- Increased code-coverage [\#211](https://github.com/ddeboer/imap/pull/211) ([Slamdunk](https://github.com/Slamdunk))
-- Update to PHPUnit ^6.2 [\#209](https://github.com/ddeboer/imap/pull/209) ([Slamdunk](https://github.com/Slamdunk))
-- Use specific exceptions to ease user catches [\#208](https://github.com/ddeboer/imap/pull/208) ([Slamdunk](https://github.com/Slamdunk))
-- Wrap Exception on invalid Date header [\#205](https://github.com/ddeboer/imap/pull/205) ([Slamdunk](https://github.com/Slamdunk))
-- Add tests for \#144 set flags functionalities [\#203](https://github.com/ddeboer/imap/pull/203) ([Slamdunk](https://github.com/Slamdunk))
-- Add imap\_fetchheader\(\) functionality to get raw headers [\#202](https://github.com/ddeboer/imap/pull/202) ([Slamdunk](https://github.com/Slamdunk))
-- Parse all email type headers [\#199](https://github.com/ddeboer/imap/pull/199) ([Slamdunk](https://github.com/Slamdunk))
-- Test search conditions [\#198](https://github.com/ddeboer/imap/pull/198) ([Slamdunk](https://github.com/Slamdunk))
-- Mailbox: get status [\#192](https://github.com/ddeboer/imap/pull/192) ([Slamdunk](https://github.com/Slamdunk))
-- SearchExpression is a Search\ConditionInterface [\#191](https://github.com/ddeboer/imap/pull/191) ([Slamdunk](https://github.com/Slamdunk))
-- SearchCondition: \_\_toString\(\) -\> toString\(\) [\#187](https://github.com/ddeboer/imap/pull/187) ([Slamdunk](https://github.com/Slamdunk))
-- Retain imap\_getmailboxes\(\) results [\#184](https://github.com/ddeboer/imap/pull/184) ([Slamdunk](https://github.com/Slamdunk))
-- Add type hints and return types [\#183](https://github.com/ddeboer/imap/pull/183) ([Slamdunk](https://github.com/Slamdunk))
-- Exception: increase verbosity with imap\_alerts\(\) and imap\_errors\(\) [\#182](https://github.com/ddeboer/imap/pull/182) ([Slamdunk](https://github.com/Slamdunk))
-- Add coding-standards [\#181](https://github.com/ddeboer/imap/pull/181) ([Slamdunk](https://github.com/Slamdunk))
-- Travis: re-enable code-coverage on scrutinizer [\#177](https://github.com/ddeboer/imap/pull/177) ([Slamdunk](https://github.com/Slamdunk))
-- Add .gitattributes to remove from releases unneded files [\#173](https://github.com/ddeboer/imap/pull/173) ([Slamdunk](https://github.com/Slamdunk))
-- Travis: use local Dovecot installation [\#170](https://github.com/ddeboer/imap/pull/170) ([Slamdunk](https://github.com/Slamdunk))
-- Need all Headers in string format [\#149](https://github.com/ddeboer/imap/pull/149) ([FlashWS](https://github.com/FlashWS))
-- Get raw mail [\#146](https://github.com/ddeboer/imap/pull/146) ([styxit](https://github.com/styxit))
-- add getBcc\(\), Set, Clear Flag\(\Seen, \Answered, \Flagged, \Deleted, and \Draft\), getHeadersRaw\(\) [\#144](https://github.com/ddeboer/imap/pull/144) ([trungpv93](https://github.com/trungpv93))
-
-**Fixed bugs:**
-
-- Search\Condition needs charset escaping/indication [\#190](https://github.com/ddeboer/imap/issues/190)
-- imap\_utf7\_\(encode|decode\) -\> mb\_convert\_encoding [\#185](https://github.com/ddeboer/imap/issues/185)
-- España [\#176](https://github.com/ddeboer/imap/issues/176)
-- getHeaders\(\) decode broke information [\#171](https://github.com/ddeboer/imap/issues/171)
-- Date format for date search condition [\#168](https://github.com/ddeboer/imap/issues/168)
-- Error when trying fetch messages from container [\#167](https://github.com/ddeboer/imap/issues/167)
-- Attachment encoding error [\#158](https://github.com/ddeboer/imap/issues/158)
-- getFilename\(\) is empty and no attachment, even when there is an attachment. [\#142](https://github.com/ddeboer/imap/issues/142)
-- Encoding issues [\#136](https://github.com/ddeboer/imap/issues/136)
-- URGENT: The timezone could not be found in the database [\#135](https://github.com/ddeboer/imap/issues/135)
-- Incorrect transcoding of text attachments [\#132](https://github.com/ddeboer/imap/issues/132)
-- Undefined offset  [\#123](https://github.com/ddeboer/imap/issues/123)
-- ICS file not supported as attachment [\#120](https://github.com/ddeboer/imap/issues/120)
-- Should iconv be a requirement? [\#115](https://github.com/ddeboer/imap/issues/115)
-- KeepUnseen doen't work [\#92](https://github.com/ddeboer/imap/issues/92)
-- PHP Fatal error Failed to parse time string in ddeboer/imap/src/Message.php [\#89](https://github.com/ddeboer/imap/issues/89)
-- encoding issue [\#85](https://github.com/ddeboer/imap/issues/85)
-- keepUnseen not working correctly with Hotmail [\#84](https://github.com/ddeboer/imap/issues/84)
-- Iconv Exception [\#78](https://github.com/ddeboer/imap/issues/78)
-- $message-\>getAttachments\(\) doesn't recognize some attachments [\#74](https://github.com/ddeboer/imap/issues/74)
-- Message::move\(\) doesn't work. [\#73](https://github.com/ddeboer/imap/issues/73)
-- Message\Part: part number must distinguish original message [\#223](https://github.com/ddeboer/imap/pull/223) ([Slamdunk](https://github.com/Slamdunk))
-- Recursive Embedded email body bug [\#222](https://github.com/ddeboer/imap/pull/222) ([Slamdunk](https://github.com/Slamdunk))
-- Exclude HTML from allowed attachment subtype [\#212](https://github.com/ddeboer/imap/pull/212) ([Slamdunk](https://github.com/Slamdunk))
-- Fix imap\_mail\_move behaviour and test it [\#207](https://github.com/ddeboer/imap/pull/207) ([Slamdunk](https://github.com/Slamdunk))
-- Undefined encoding: throw exception [\#197](https://github.com/ddeboer/imap/pull/197) ([Slamdunk](https://github.com/Slamdunk))
-- Message charset: mb\_convert\_encoding + aliases [\#196](https://github.com/ddeboer/imap/pull/196) ([Slamdunk](https://github.com/Slamdunk))
-- Mailbox: only UTF-8 names [\#193](https://github.com/ddeboer/imap/pull/193) ([Slamdunk](https://github.com/Slamdunk))
-- Search\Date\AbstractDate: fix format to RFC-3501 [\#189](https://github.com/ddeboer/imap/pull/189) ([Slamdunk](https://github.com/Slamdunk))
-- Travis: fix failing tests [\#172](https://github.com/ddeboer/imap/pull/172) ([Slamdunk](https://github.com/Slamdunk))
-- Return body of single-part HTML message as HTML, not text [\#101](https://github.com/ddeboer/imap/pull/101) ([joker806](https://github.com/joker806))
-- Implement "undisclosed recipients" addresses [\#86](https://github.com/ddeboer/imap/pull/86) ([darit](https://github.com/darit))
-
-**Closed issues:**
-
-- Potential memory issue with attachments [\#195](https://github.com/ddeboer/imap/issues/195)
-- Explain Message::delete [\#175](https://github.com/ddeboer/imap/issues/175)
-- Get raw message [\#161](https://github.com/ddeboer/imap/issues/161)
-- Composer install problem [\#160](https://github.com/ddeboer/imap/issues/160)
-- Transcoder not exist [\#154](https://github.com/ddeboer/imap/issues/154)
-- The library doesn't support using sort by [\#151](https://github.com/ddeboer/imap/issues/151)
-- Office 365 - Array to string conversion error [\#131](https://github.com/ddeboer/imap/issues/131)
-- Is there a method to turn a seen message into an "unseen" one ? [\#130](https://github.com/ddeboer/imap/issues/130)
-- Create mailbox [\#126](https://github.com/ddeboer/imap/issues/126)
-- Move and Delete Message not working [\#112](https://github.com/ddeboer/imap/issues/112)
-- Problem on production server [\#111](https://github.com/ddeboer/imap/issues/111)
-- Authentication failed for a Gmail account [\#109](https://github.com/ddeboer/imap/issues/109)
-- A method to run IMAP commands? [\#83](https://github.com/ddeboer/imap/issues/83)
-
-**Merged pull requests:**
-
-- Update README.md to latest develop changes [\#224](https://github.com/ddeboer/imap/pull/224) ([Slamdunk](https://github.com/Slamdunk))
-- Add Filippo Tessarotto as an author of the package [\#219](https://github.com/ddeboer/imap/pull/219) ([Slamdunk](https://github.com/Slamdunk))
-- README.md: call Connection::expunge after move and delete [\#210](https://github.com/ddeboer/imap/pull/210) ([Slamdunk](https://github.com/Slamdunk))
-- Remove misleading Mailbox::expunge\(\) [\#206](https://github.com/ddeboer/imap/pull/206) ([Slamdunk](https://github.com/Slamdunk))
-- Add CHANGELOG.md [\#194](https://github.com/ddeboer/imap/pull/194) ([Slamdunk](https://github.com/Slamdunk))
-- README.md updates [\#178](https://github.com/ddeboer/imap/pull/178) ([Slamdunk](https://github.com/Slamdunk))
-
-## [0.5.2](https://github.com/ddeboer/imap/tree/0.5.2) (2015-12-03)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/0.5.1...0.5.2)
-
-**Closed issues:**
-
-- $message-\>getAttachments\(\) returns null if message has no attachments [\#80](https://github.com/ddeboer/imap/issues/80)
-- Email objects visibility [\#76](https://github.com/ddeboer/imap/issues/76)
-
-**Merged pull requests:**
-
-- Fixed the keepUnseen method [\#95](https://github.com/ddeboer/imap/pull/95) ([aeyoll](https://github.com/aeyoll))
-- Mark Mailbox as countable, fix doc comments [\#91](https://github.com/ddeboer/imap/pull/91) ([krzysiekpiasecki](https://github.com/krzysiekpiasecki))
-- Message::getAttachments confirm to signature [\#82](https://github.com/ddeboer/imap/pull/82) ([boekkooi](https://github.com/boekkooi))
-- Added hasMailbox to Connection [\#81](https://github.com/ddeboer/imap/pull/81) ([boekkooi](https://github.com/boekkooi))
-- Make sure imap connection are reopened [\#79](https://github.com/ddeboer/imap/pull/79) ([joserobleda](https://github.com/joserobleda))
-
-## [0.5.1](https://github.com/ddeboer/imap/tree/0.5.1) (2015-02-01)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/0.5.0...0.5.1)
-
-**Closed issues:**
-
-- imap\_open error  [\#72](https://github.com/ddeboer/imap/issues/72)
-- $message-\>getAttachments\(\) does not return anything, even though a message has at least one attachment [\#71](https://github.com/ddeboer/imap/issues/71)
-- Prepare docs for 1.0 [\#69](https://github.com/ddeboer/imap/issues/69)
-- "date" header is not reliable [\#63](https://github.com/ddeboer/imap/issues/63)
-- File Attachments don't show up [\#55](https://github.com/ddeboer/imap/issues/55)
-
-**Merged pull requests:**
-
-- Add support for attachments without content disposition [\#70](https://github.com/ddeboer/imap/pull/70) ([ddeboer](https://github.com/ddeboer))
-
-## [0.5.0](https://github.com/ddeboer/imap/tree/0.5.0) (2015-01-24)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/0.4.0...0.5.0)
-
-**Closed issues:**
-
-- Use utf8\_encode\(\) function to encode content [\#66](https://github.com/ddeboer/imap/issues/66)
-- Please add function order by date [\#59](https://github.com/ddeboer/imap/issues/59)
-- mb\_convert\_encoding breaks code [\#57](https://github.com/ddeboer/imap/issues/57)
-- How get I getMessages but newest first ... [\#11](https://github.com/ddeboer/imap/issues/11)
-
-## [0.4.0](https://github.com/ddeboer/imap/tree/0.4.0) (2015-01-04)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/0.3.1...0.4.0)
-
-**Closed issues:**
-
-- Please add 6th parameter to imap\_open call [\#62](https://github.com/ddeboer/imap/issues/62)
-- Should Message::delete\(\) use the Message UID? [\#46](https://github.com/ddeboer/imap/issues/46)
-- mb\_convert\_encoding\(\): Illegal character encoding specified [\#35](https://github.com/ddeboer/imap/issues/35)
-- Deleting a message isn't working [\#30](https://github.com/ddeboer/imap/issues/30)
-- imap\_header doesn't work with message uid [\#26](https://github.com/ddeboer/imap/issues/26)
-
-**Merged pull requests:**
-
-- Added basic requirement [\#61](https://github.com/ddeboer/imap/pull/61) ([nikoskip](https://github.com/nikoskip))
-- FIX: PHP error: "Cannot declare class Ddeboer\Imap\Search\Text\Text ..." [\#58](https://github.com/ddeboer/imap/pull/58) ([racztiborzoltan](https://github.com/racztiborzoltan))
-- Message::delete sets the FT\_UID flag.  Fixes \#30 Fixes \#46 [\#54](https://github.com/ddeboer/imap/pull/54) ([ctalbot](https://github.com/ctalbot))
-- Allow binary-encoded part content [\#48](https://github.com/ddeboer/imap/pull/48) ([joker806](https://github.com/joker806))
-- Fix CS [\#47](https://github.com/ddeboer/imap/pull/47) ([xelan](https://github.com/xelan))
-- fixed typo [\#45](https://github.com/ddeboer/imap/pull/45) ([xelan](https://github.com/xelan))
-
-## [0.3.1](https://github.com/ddeboer/imap/tree/0.3.1) (2014-08-11)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/0.3.0...0.3.1)
-
-**Merged pull requests:**
-
-- \imap\_header dosen't work with UID [\#44](https://github.com/ddeboer/imap/pull/44) ([ysramirez](https://github.com/ysramirez))
-
-## [0.3.0](https://github.com/ddeboer/imap/tree/0.3.0) (2014-08-10)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/0.2...0.3.0)
-
-**Closed issues:**
-
-- please remove useless wiki [\#42](https://github.com/ddeboer/imap/issues/42)
-- Travis tests allways fail? [\#40](https://github.com/ddeboer/imap/issues/40)
-- Garbled e-mail body encoding [\#27](https://github.com/ddeboer/imap/issues/27)
-- Improve docs [\#25](https://github.com/ddeboer/imap/issues/25)
-- "undisclosed-recipients" throws error [\#23](https://github.com/ddeboer/imap/issues/23)
-
-**Merged pull requests:**
-
-- correct minor typo [\#43](https://github.com/ddeboer/imap/pull/43) ([cordoval](https://github.com/cordoval))
-- Utf-8 encode body content. [\#39](https://github.com/ddeboer/imap/pull/39) ([cmoralesweb](https://github.com/cmoralesweb))
-- Fix regex parsing the date header \(allowing multiple brackets\) [\#38](https://github.com/ddeboer/imap/pull/38) ([joker806](https://github.com/joker806))
-- Allow empty connection flags [\#34](https://github.com/ddeboer/imap/pull/34) ([joker806](https://github.com/joker806))
-- Fixed typo [\#32](https://github.com/ddeboer/imap/pull/32) ([abhinavkumar940](https://github.com/abhinavkumar940))
-
-## [0.2](https://github.com/ddeboer/imap/tree/0.2) (2013-11-24)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/0.1...0.2)
-
-## [0.1](https://github.com/ddeboer/imap/tree/0.1) (2013-11-22)
-
-[Full Changelog](https://github.com/ddeboer/imap/compare/c02d49cdb9246901bb00d211a0f2aba208f6fab6...0.1)
-
-**Closed issues:**
-
-- Prevent setting SEEN flag [\#20](https://github.com/ddeboer/imap/issues/20)
-- Add tests [\#18](https://github.com/ddeboer/imap/issues/18)
-- delete messages [\#9](https://github.com/ddeboer/imap/issues/9)
-- README is missing basic usage [\#7](https://github.com/ddeboer/imap/issues/7)
-- Subject and other texts are decoded incorrectly  [\#3](https://github.com/ddeboer/imap/issues/3)
-
-**Merged pull requests:**
-
-- also fetch inline attachments [\#24](https://github.com/ddeboer/imap/pull/24) ([kaiserlos](https://github.com/kaiserlos))
-- since leading slash is always needed [\#22](https://github.com/ddeboer/imap/pull/22) ([huglester](https://github.com/huglester))
-- Added missed createMailbox\($name\) function [\#19](https://github.com/ddeboer/imap/pull/19) ([burci](https://github.com/burci))
-- Added move and delete function to message + expunge function [\#17](https://github.com/ddeboer/imap/pull/17) ([burci](https://github.com/burci))
-- Clean up some unused variable [\#16](https://github.com/ddeboer/imap/pull/16) ([burci](https://github.com/burci))
-- Fixed mailbox encoding [\#15](https://github.com/ddeboer/imap/pull/15) ([burci](https://github.com/burci))
-- Create new mailbox [\#14](https://github.com/ddeboer/imap/pull/14) ([burci](https://github.com/burci))
-- Fixed bug in getDecodedContent with 'format=flowed' email [\#13](https://github.com/ddeboer/imap/pull/13) ([burci](https://github.com/burci))
-- Fixed date parsing for some imap servers [\#12](https://github.com/ddeboer/imap/pull/12) ([thelfensdrfer](https://github.com/thelfensdrfer))
-- Add support for more complex search expressions. [\#10](https://github.com/ddeboer/imap/pull/10) ([jamesiarmes](https://github.com/jamesiarmes))
-- Allow user to change server connection flags [\#6](https://github.com/ddeboer/imap/pull/6) ([mvar](https://github.com/mvar))
-- Improvements in EmailAddress class [\#4](https://github.com/ddeboer/imap/pull/4) ([mvar](https://github.com/mvar))
-
-
-
-\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/README.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/README.md
index 6b16183..c57ab01 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/README.md
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/README.md
@@ -1,37 +1,15 @@
-# IMAP library
+# PHP IMAP library
 
 [![Latest Stable Version](https://img.shields.io/packagist/v/ddeboer/imap.svg)](https://packagist.org/packages/ddeboer/imap)
 [![Downloads](https://img.shields.io/packagist/dt/ddeboer/imap.svg)](https://packagist.org/packages/ddeboer/imap)
 [![Integrate](https://github.com/ddeboer/imap/workflows/Integrate/badge.svg?branch=master)](https://github.com/ddeboer/imap/actions)
 [![Code Coverage](https://codecov.io/gh/ddeboer/imap/coverage.svg?branch=master)](https://codecov.io/gh/ddeboer/imap?branch=master)
 
-A PHP 7.3+ library to read and process e-mails over IMAP.
+A PHP IMAP library to read and process e-mails over IMAP protocol, built with robust Object-Oriented architecture.
 
-This library requires [IMAP](https://secure.php.net/manual/en/book.imap.php),
-[iconv](https://secure.php.net/manual/en/book.iconv.php) and
-[Multibyte String](https://secure.php.net/manual/en/book.mbstring.php) extensions installed.
-
-## Table of Contents
-
-1. [Feature Requests](#feature-requests)
-1. [Installation](#installation)
-1. [Usage](#usage)
-    1. [Connect and Authenticate](#connect-and-authenticate)
-    1. [Mailboxes](#mailboxes)
-    1. [Messages](#messages)
-        1. [Searching for Messages](#searching-for-messages)
-        1. [Unknown search criterion: OR](#unknown-search-criterion-or)
-        1. [Message Properties and Operations](#message-properties-and-operations)
-    1. [Message Attachments](#message-attachments)
-    1. [Embedded Messages](#embedded-messages)
-    1. [Timeouts](#timeouts)
-1. [Mock the library](#mock-the-library)
-1. [Running the Tests](#running-the-tests)
-    1. [Running Tests using Docker](#running-tests-using-docker)
-
-## Feature Requests
-
-[![Feature Requests](https://feathub.com/ddeboer/imap?format=svg)](https://feathub.com/ddeboer/imap)
+This library requires PHP >= 7.4 with [IMAP](https://www.php.net/manual/en/book.imap.php),
+[iconv](https://www.php.net/manual/en/book.iconv.php) and
+[Multibyte String](https://www.php.net/manual/en/book.mbstring.php) extensions installed.
 
 ## Installation
 
@@ -236,7 +214,6 @@
 ```php
 $mailbox = $connection->getMailbox('another-mailbox');
 $message->move($mailbox);
-$connection->expunge();
 ```
 
 Deleting messages:
@@ -321,40 +298,10 @@
 ```
 
 You can also copy `phpunit.xml.dist` file to a custom `phpunit.xml` and put
-these environment variables in it:
-
-```xml
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit
-    bootstrap="./vendor/autoload.php"
-    colors="true"
-    verbose="true"
->
-    <testsuites>
-        <testsuite name="ddeboer/imap">
-            <directory>./tests/</directory>
-        </testsuite>
-    </testsuites>
-    <filter>
-        <whitelist>
-            <directory suffix=".php">./src</directory>
-        </whitelist>
-    </filter>
-    <php>
-        <env name="IMAP_SERVER_NAME" value="my.imap.server.com" />
-        <env name="IMAP_SERVER_PORT" value="60993" />
-        <env name="IMAP_USERNAME" value="johndoe" />
-        <env name="IMAP_PASSWORD" value="p4ssword" />
-    </php>
-</phpunit>
-```
+these environment variables in it.
 
 **WARNING** Tests create new mailboxes without removing them.
 
-### Running Tests using Docker
-
-If you have Docker installed you can run the tests locally with the following command:
-
 ```
 $ docker-compose run tests
 ```
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/composer.json b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/composer.json
index d56ea38..92b4a07 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/composer.json
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/composer.json
@@ -22,23 +22,18 @@
         }
     ],
     "require": {
-        "php": "^7.3 || ^8.0",
+        "php": "^7.4 || ^8.0",
         "ext-iconv": "*",
         "ext-imap": "*",
         "ext-mbstring": "*"
     },
     "require-dev": {
-        "friendsofphp/php-cs-fixer": "^2.16.7",
-        "laminas/laminas-mail": "^2.12.3",
-        "phpstan/phpstan": "^0.12.57",
-        "phpstan/phpstan-phpunit": "^0.12.16",
-        "phpstan/phpstan-strict-rules": "^0.12.5",
-        "phpunit/phpunit": "^9.4.3"
-    },
-    "config": {
-        "platform": {
-            "php": "7.3"
-        }
+        "friendsofphp/php-cs-fixer": "^2.18.6",
+        "laminas/laminas-mail": "^2.14.0",
+        "phpstan/phpstan": "^0.12.84",
+        "phpstan/phpstan-phpunit": "^0.12.18",
+        "phpstan/phpstan-strict-rules": "^0.12.9",
+        "phpunit/phpunit": "^9.5.4"
     },
     "autoload": {
         "psr-4": {
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Connection.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Connection.php
index 4f9f405..d9f2bb6 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Connection.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Connection.php
@@ -9,7 +9,6 @@
 use Ddeboer\Imap\Exception\ImapGetmailboxesException;
 use Ddeboer\Imap\Exception\ImapNumMsgException;
 use Ddeboer\Imap\Exception\ImapQuotaException;
-use Ddeboer\Imap\Exception\InvalidResourceException;
 use Ddeboer\Imap\Exception\MailboxDoesNotExistException;
 
 /**
@@ -17,25 +16,16 @@
  */
 final class Connection implements ConnectionInterface
 {
+    private ImapResourceInterface $resource;
+    private string $server;
     /**
-     * @var ImapResourceInterface
+     * @var null|MailboxInterface[]
      */
-    private $resource;
-
+    private ?array $mailboxes = null;
     /**
-     * @var string
+     * @var null|array<int|string, \stdClass>
      */
-    private $server;
-
-    /**
-     * @var null|array
-     */
-    private $mailboxes;
-
-    /**
-     * @var null|array
-     */
-    private $mailboxNames;
+    private ?array $mailboxNames = null;
 
     /**
      * Constructor.
@@ -48,25 +38,16 @@
         $this->server   = $server;
     }
 
-    /**
-     * Get IMAP resource.
-     */
     public function getResource(): ImapResourceInterface
     {
         return $this->resource;
     }
 
-    /**
-     * Delete all messages marked for deletion.
-     */
     public function expunge(): bool
     {
         return \imap_expunge($this->resource->getStream());
     }
 
-    /**
-     * Close connection.
-     */
     public function close(int $flag = 0): bool
     {
         $this->resource->clearLastMailboxUsedCache();
@@ -74,9 +55,6 @@
         return \imap_close($this->resource->getStream(), $flag);
     }
 
-    /**
-     * Get Mailbox quota.
-     */
     public function getQuota(string $root = 'INBOX'): array
     {
         $errorMessage = null;
@@ -106,14 +84,10 @@
         return $return;
     }
 
-    /**
-     * Get a list of mailboxes (also known as folders).
-     *
-     * @return MailboxInterface[]
-     */
     public function getMailboxes(): array
     {
         $this->initMailboxNames();
+        \assert(null !== $this->mailboxNames);
 
         if (null === $this->mailboxes) {
             $this->mailboxes = [];
@@ -125,39 +99,24 @@
         return $this->mailboxes;
     }
 
-    /**
-     * Check that a mailbox with the given name exists.
-     *
-     * @param string $name Mailbox name
-     */
     public function hasMailbox(string $name): bool
     {
         $this->initMailboxNames();
+        \assert(null !== $this->mailboxNames);
 
         return isset($this->mailboxNames[$name]);
     }
 
-    /**
-     * Get a mailbox by its name.
-     *
-     * @param string $name Mailbox name
-     *
-     * @throws MailboxDoesNotExistException If mailbox does not exist
-     */
     public function getMailbox(string $name): MailboxInterface
     {
         if (false === $this->hasMailbox($name)) {
             throw new MailboxDoesNotExistException(\sprintf('Mailbox name "%s" does not exist', $name));
         }
+        \assert(isset($this->mailboxNames[$name]));
 
         return new Mailbox($this->resource, $name, $this->mailboxNames[$name]);
     }
 
-    /**
-     * Count number of messages not in any mailbox.
-     *
-     * @return int
-     */
     public function count()
     {
         $return = \imap_num_msg($this->resource->getStream());
@@ -169,21 +128,11 @@
         return $return;
     }
 
-    /**
-     * Check if the connection is still active.
-     *
-     * @throws InvalidResourceException If connection was closed
-     */
     public function ping(): bool
     {
         return \imap_ping($this->resource->getStream());
     }
 
-    /**
-     * Create mailbox.
-     *
-     * @throws CreateMailboxException
-     */
     public function createMailbox(string $name): MailboxInterface
     {
         if (false === \imap_createmailbox($this->resource->getStream(), $this->server . \mb_convert_encoding($name, 'UTF7-IMAP', 'UTF-8'))) {
@@ -196,11 +145,6 @@
         return $this->getMailbox($name);
     }
 
-    /**
-     * Create mailbox.
-     *
-     * @throws DeleteMailboxException
-     */
     public function deleteMailbox(MailboxInterface $mailbox): void
     {
         if (false === \imap_deletemailbox($this->resource->getStream(), $mailbox->getFullEncodedName())) {
@@ -211,9 +155,6 @@
         $this->resource->clearLastMailboxUsedCache();
     }
 
-    /**
-     * Get mailbox names.
-     */
     private function initMailboxNames(): void
     {
         if (null !== $this->mailboxNames) {
@@ -227,8 +168,9 @@
         }
 
         foreach ($mailboxesInfo as $mailboxInfo) {
-            $name                      = \mb_convert_encoding(\str_replace($this->server, '', $mailboxInfo->name), 'UTF-8', 'UTF7-IMAP');
+            $name = \mb_convert_encoding(\str_replace($this->server, '', $mailboxInfo->name), 'UTF-8', 'UTF7-IMAP');
             \assert(\is_string($name));
+
             $this->mailboxNames[$name] = $mailboxInfo;
         }
     }
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/ConnectionInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/ConnectionInterface.php
index e76077f..6289339 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/ConnectionInterface.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/ConnectionInterface.php
@@ -4,6 +4,11 @@
 
 namespace Ddeboer\Imap;
 
+use Ddeboer\Imap\Exception\CreateMailboxException;
+use Ddeboer\Imap\Exception\DeleteMailboxException;
+use Ddeboer\Imap\Exception\InvalidResourceException;
+use Ddeboer\Imap\Exception\MailboxDoesNotExistException;
+
 /**
  * A connection to an IMAP server that is authenticated for a user.
  */
@@ -26,11 +31,15 @@
 
     /**
      * Check if the connection is still active.
+     *
+     * @throws InvalidResourceException If connection was closed
      */
     public function ping(): bool;
 
     /**
      * Get Mailbox quota.
+     *
+     * @return array<string, int>
      */
     public function getQuota(string $root = 'INBOX'): array;
 
@@ -52,16 +61,22 @@
      * Get a mailbox by its name.
      *
      * @param string $name Mailbox name
+     *
+     * @throws MailboxDoesNotExistException If mailbox does not exist
      */
     public function getMailbox(string $name): MailboxInterface;
 
     /**
      * Create mailbox.
+     *
+     * @throws CreateMailboxException
      */
     public function createMailbox(string $name): MailboxInterface;
 
     /**
      * Delete mailbox.
+     *
+     * @throws DeleteMailboxException
      */
     public function deleteMailbox(MailboxInterface $mailbox): void;
 }
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Exception/AbstractException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Exception/AbstractException.php
index 26c1e58..6537a05 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Exception/AbstractException.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Exception/AbstractException.php
@@ -6,10 +6,7 @@
 
 abstract class AbstractException extends \RuntimeException
 {
-    /**
-     * @var array
-     */
-    private static $errorLabels = [
+    private const ERROR_LABELS = [
         \E_ERROR                => 'E_ERROR',
         \E_WARNING              => 'E_WARNING',
         \E_PARSE                => 'E_PARSE',
@@ -27,16 +24,11 @@
         \E_USER_DEPRECATED      => 'E_USER_DEPRECATED',
     ];
 
-    /**
-     * @param string     $message  The exception message
-     * @param int        $code     The exception code
-     * @param \Throwable $previous The previous exception
-     */
     final public function __construct(string $message, int $code = 0, \Throwable $previous = null)
     {
         $errorType = '';
-        if (isset(self::$errorLabels[$code])) {
-            $errorType = \sprintf('[%s] ', self::$errorLabels[$code]);
+        if (isset(self::ERROR_LABELS[$code])) {
+            $errorType = \sprintf('[%s] ', self::ERROR_LABELS[$code]);
         }
 
         $joinString      = "\n- ";
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/ImapResource.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/ImapResource.php
index 60c1617..123ea23 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/ImapResource.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/ImapResource.php
@@ -13,19 +13,11 @@
 final class ImapResource implements ImapResourceInterface
 {
     /**
-     * @var mixed
+     * @var resource
      */
     private $resource;
-
-    /**
-     * @var null|MailboxInterface
-     */
-    private $mailbox;
-
-    /**
-     * @var null|string
-     */
-    private static $lastMailboxUsedCache;
+    private ?MailboxInterface $mailbox           = null;
+    private static ?string $lastMailboxUsedCache = null;
 
     /**
      * Constructor.
@@ -38,13 +30,6 @@
         $this->mailbox  = $mailbox;
     }
 
-    /**
-     * Get IMAP resource stream.
-     *
-     * @throws InvalidResourceException
-     *
-     * @return resource
-     */
     public function getStream()
     {
         if (false === \is_resource($this->resource) || 'imap' !== \get_resource_type($this->resource)) {
@@ -56,9 +41,6 @@
         return $this->resource;
     }
 
-    /**
-     * Clear last mailbox used cache.
-     */
     public function clearLastMailboxUsedCache(): void
     {
         self::$lastMailboxUsedCache = null;
@@ -85,7 +67,7 @@
     /**
      * Check whether the current mailbox is open.
      *
-     * @param mixed $resource
+     * @param resource $resource
      */
     private static function isMailboxOpen(MailboxInterface $mailbox, $resource): bool
     {
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/ImapResourceInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/ImapResourceInterface.php
index 03c16f7..cf49f6b 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/ImapResourceInterface.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/ImapResourceInterface.php
@@ -4,11 +4,15 @@
 
 namespace Ddeboer\Imap;
 
+use Ddeboer\Imap\Exception\InvalidResourceException;
+
 interface ImapResourceInterface
 {
     /**
      * Get IMAP resource stream.
      *
+     * @throws InvalidResourceException
+     *
      * @return resource
      */
     public function getStream();
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Mailbox.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Mailbox.php
index 1544aff..2f77799 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Mailbox.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Mailbox.php
@@ -18,20 +18,9 @@
  */
 final class Mailbox implements MailboxInterface
 {
-    /**
-     * @var ImapResourceInterface
-     */
-    private $resource;
-
-    /**
-     * @var string
-     */
-    private $name;
-
-    /**
-     * @var \stdClass
-     */
-    private $info;
+    private ImapResourceInterface $resource;
+    private string $name;
+    private \stdClass $info;
 
     /**
      * Constructor.
@@ -47,17 +36,11 @@
         $this->info     = $info;
     }
 
-    /**
-     * Get mailbox decoded name.
-     */
     public function getName(): string
     {
         return $this->name;
     }
 
-    /**
-     * Get mailbox encoded path.
-     */
     public function getEncodedName(): string
     {
         /** @var string $name */
@@ -66,35 +49,21 @@
         return (string) \preg_replace('/^{.+}/', '', $name);
     }
 
-    /**
-     * Get mailbox encoded full name.
-     */
     public function getFullEncodedName(): string
     {
         return $this->info->name;
     }
 
-    /**
-     * Get mailbox attributes.
-     */
     public function getAttributes(): int
     {
         return $this->info->attributes;
     }
 
-    /**
-     * Get mailbox delimiter.
-     */
     public function getDelimiter(): string
     {
         return $this->info->delimiter;
     }
 
-    /**
-     * Get number of messages in this mailbox.
-     *
-     * @return int
-     */
     public function count()
     {
         $return = \imap_num_msg($this->resource->getStream());
@@ -106,9 +75,6 @@
         return $return;
     }
 
-    /**
-     * Get Mailbox status.
-     */
     public function getStatus(int $flags = null): \stdClass
     {
         $return = \imap_status($this->resource->getStream(), $this->getFullEncodedName(), $flags ?? \SA_ALL);
@@ -120,33 +86,16 @@
         return $return;
     }
 
-    /**
-     * Bulk Set Flag for Messages.
-     *
-     * @param string                       $flag    \Seen, \Answered, \Flagged, \Deleted, and \Draft
-     * @param array|MessageIterator|string $numbers Message numbers
-     */
     public function setFlag(string $flag, $numbers): bool
     {
         return \imap_setflag_full($this->resource->getStream(), $this->prepareMessageIds($numbers), $flag, \ST_UID);
     }
 
-    /**
-     * Bulk Clear Flag for Messages.
-     *
-     * @param string                       $flag    \Seen, \Answered, \Flagged, \Deleted, and \Draft
-     * @param array|MessageIterator|string $numbers Message numbers
-     */
     public function clearFlag(string $flag, $numbers): bool
     {
         return \imap_clearflag_full($this->resource->getStream(), $this->prepareMessageIds($numbers), $flag, \ST_UID);
     }
 
-    /**
-     * Get message ids.
-     *
-     * @param ConditionInterface $search Search expression (optional)
-     */
     public function getMessages(ConditionInterface $search = null, int $sortCriteria = null, bool $descending = false, string $charset = null): MessageIteratorInterface
     {
         if (null === $search) {
@@ -199,11 +148,6 @@
         return new MessageIterator($this->resource, $messageNumbers);
     }
 
-    /**
-     * Get message iterator for a sequence.
-     *
-     * @param string $sequence Message numbers
-     */
     public function getMessageSequence(string $sequence): MessageIteratorInterface
     {
         \imap_errors();
@@ -223,54 +167,38 @@
         return new MessageIterator($this->resource, $messageNumbers);
     }
 
-    /**
-     * Get a message by message number.
-     *
-     * @param int $number Message number
-     */
     public function getMessage(int $number): MessageInterface
     {
         return new Message($this->resource, $number);
     }
 
-    /**
-     * Get messages in this mailbox.
-     */
     public function getIterator(): MessageIteratorInterface
     {
         return $this->getMessages();
     }
 
-    /**
-     * Add a message to the mailbox.
-     */
     public function addMessage(string $message, string $options = null, DateTimeInterface $internalDate = null): bool
     {
         $arguments = [
             $this->resource->getStream(),
             $this->getFullEncodedName(),
             $message,
+            $options ?? '',
         ];
-        if (null !== $options) {
-            $arguments[] = $options;
-            if (null !== $internalDate) {
-                $arguments[] = $internalDate->format('d-M-Y H:i:s O');
-            }
+        if (null !== $internalDate) {
+            $arguments[] = $internalDate->format('d-M-Y H:i:s O');
         }
 
         return \imap_append(...$arguments);
     }
 
-    /**
-     * Returns a tree of threaded message for the current Mailbox.
-     */
     public function getThread(): array
     {
         \set_error_handler(static function (): bool {
             return true;
         });
 
-        /** @var array|false $tree */
+        /** @var array<string, int>|false $tree */
         $tree = \imap_thread($this->resource->getStream(), \SE_UID);
 
         \restore_error_handler();
@@ -278,29 +206,13 @@
         return false !== $tree ? $tree : [];
     }
 
-    /**
-     * Bulk move messages.
-     *
-     * @param array|MessageIterator|string $numbers Message numbers
-     * @param MailboxInterface             $mailbox Destination Mailbox to move the messages to
-     *
-     * @throws \Ddeboer\Imap\Exception\MessageMoveException
-     */
     public function move($numbers, MailboxInterface $mailbox): void
     {
-        if (!\imap_mail_move($this->resource->getStream(), $this->prepareMessageIds($numbers), $mailbox->getEncodedName(), \CP_UID)) {
+        if (!\imap_mail_copy($this->resource->getStream(), $this->prepareMessageIds($numbers), $mailbox->getEncodedName(), \CP_UID | \CP_MOVE)) {
             throw new MessageMoveException(\sprintf('Messages cannot be moved to "%s"', $mailbox->getName()));
         }
     }
 
-    /**
-     * Bulk copy messages.
-     *
-     * @param array|MessageIterator|string $numbers Message numbers
-     * @param MailboxInterface             $mailbox Destination Mailbox to copy the messages to
-     *
-     * @throws \Ddeboer\Imap\Exception\MessageCopyException
-     */
     public function copy($numbers, MailboxInterface $mailbox): void
     {
         if (!\imap_mail_copy($this->resource->getStream(), $this->prepareMessageIds($numbers), $mailbox->getEncodedName(), \CP_UID)) {
@@ -311,7 +223,7 @@
     /**
      * Prepare message ids for the use with bulk functions.
      *
-     * @param array|MessageIterator|string $messageIds Message numbers
+     * @param array<int, int|string>|MessageIterator|string $messageIds Message numbers
      */
     private function prepareMessageIds($messageIds): string
     {
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/MailboxInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/MailboxInterface.php
index efe432d..067bdc2 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/MailboxInterface.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/MailboxInterface.php
@@ -5,10 +5,13 @@
 namespace Ddeboer\Imap;
 
 use DateTimeInterface;
+use Ddeboer\Imap\Message\PartInterface;
 use Ddeboer\Imap\Search\ConditionInterface;
 
 /**
  * An IMAP mailbox (commonly referred to as a 'folder').
+ *
+ * @extends \IteratorAggregate<int, MessageInterface>
  */
 interface MailboxInterface extends \Countable, \IteratorAggregate
 {
@@ -45,16 +48,16 @@
     /**
      * Bulk Set Flag for Messages.
      *
-     * @param string                       $flag    \Seen, \Answered, \Flagged, \Deleted, and \Draft
-     * @param array|MessageIterator|string $numbers Message numbers
+     * @param string                                        $flag    \Seen, \Answered, \Flagged, \Deleted, and \Draft
+     * @param array<int, int|string>|MessageIterator|string $numbers Message numbers
      */
     public function setFlag(string $flag, $numbers): bool;
 
     /**
      * Bulk Clear Flag for Messages.
      *
-     * @param string                       $flag    \Seen, \Answered, \Flagged, \Deleted, and \Draft
-     * @param array|MessageIterator|string $numbers Message numbers
+     * @param string                                        $flag    \Seen, \Answered, \Flagged, \Deleted, and \Draft
+     * @param array<int, int|string>|MessageIterator|string $numbers Message numbers
      */
     public function clearFlag(string $flag, $numbers): bool;
 
@@ -76,6 +79,8 @@
      * Get a message by message number.
      *
      * @param int $number Message number
+     *
+     * @return MessageInterface<PartInterface>
      */
     public function getMessage(int $number): MessageInterface;
 
@@ -91,14 +96,16 @@
 
     /**
      * Returns a tree of threaded message for the current Mailbox.
+     *
+     * @return array<string, int>
      */
     public function getThread(): array;
 
     /**
      * Bulk move messages.
      *
-     * @param array|MessageIterator|string $numbers Message numbers
-     * @param MailboxInterface             $mailbox Destination Mailbox to move the messages to
+     * @param array<int, int|string>|MessageIterator|string $numbers Message numbers
+     * @param MailboxInterface                              $mailbox Destination Mailbox to move the messages to
      *
      * @throws \Ddeboer\Imap\Exception\MessageMoveException
      */
@@ -107,8 +114,8 @@
     /**
      * Bulk copy messages.
      *
-     * @param array|MessageIterator|string $numbers Message numbers
-     * @param MailboxInterface             $mailbox Destination Mailbox to copy the messages to
+     * @param array<int, int|string>|MessageIterator|string $numbers Message numbers
+     * @param MailboxInterface                              $mailbox Destination Mailbox to copy the messages to
      *
      * @throws \Ddeboer\Imap\Exception\MessageCopyException
      */
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message.php
index 843ce61..1a9d16e 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message.php
@@ -18,35 +18,12 @@
  */
 final class Message extends Message\AbstractMessage implements MessageInterface
 {
-    /**
-     * @var bool
-     */
-    private $messageNumberVerified = false;
-
-    /**
-     * @var int
-     */
-    private $imapMsgNo = 0;
-
-    /**
-     * @var bool
-     */
-    private $structureLoaded = false;
-
-    /**
-     * @var null|Message\Headers
-     */
-    private $headers;
-
-    /**
-     * @var null|string
-     */
-    private $rawHeaders;
-
-    /**
-     * @var null|string
-     */
-    private $rawMessage;
+    private bool $messageNumberVerified = false;
+    private int $imapMsgNo              = 0;
+    private bool $structureLoaded       = false;
+    private ?Message\Headers $headers   = null;
+    private ?string $rawHeaders         = null;
+    private ?string $rawMessage         = null;
 
     /**
      * Constructor.
@@ -59,9 +36,6 @@
         parent::__construct($resource, $messageNumber, '1', new \stdClass());
     }
 
-    /**
-     * Lazy load structure.
-     */
     protected function lazyLoadStructure(): void
     {
         if (true === $this->structureLoaded) {
@@ -99,9 +73,6 @@
         $this->setStructure($structure);
     }
 
-    /**
-     * Ensure message exists.
-     */
     protected function assertMessageExists(int $messageNumber): void
     {
         if (true === $this->messageNumberVerified) {
@@ -138,9 +109,6 @@
         return $this->imapMsgNo;
     }
 
-    /**
-     * Get raw message headers.
-     */
     public function getRawHeaders(): string
     {
         if (null === $this->rawHeaders) {
@@ -156,11 +124,6 @@
         return $this->rawHeaders;
     }
 
-    /**
-     * Get the raw message, including all headers, parts, etc. unencoded and unparsed.
-     *
-     * @return string the raw message
-     */
     public function getRawMessage(): string
     {
         if (null === $this->rawMessage) {
@@ -170,9 +133,6 @@
         return $this->rawMessage;
     }
 
-    /**
-     * Get message headers.
-     */
     public function getHeaders(): Message\Headers
     {
         if (null === $this->headers) {
@@ -198,67 +158,44 @@
         $this->headers = null;
     }
 
-    /**
-     * Get message recent flag value (from headers).
-     */
     public function isRecent(): ?string
     {
-        return $this->getHeaders()->get('recent');
+        $recent = $this->getHeaders()->get('recent');
+        \assert(null === $recent || \is_string($recent));
+
+        return $recent;
     }
 
-    /**
-     * Get message unseen flag value (from headers).
-     */
     public function isUnseen(): bool
     {
         return 'U' === $this->getHeaders()->get('unseen');
     }
 
-    /**
-     * Get message flagged flag value (from headers).
-     */
     public function isFlagged(): bool
     {
         return 'F' === $this->getHeaders()->get('flagged');
     }
 
-    /**
-     * Get message answered flag value (from headers).
-     */
     public function isAnswered(): bool
     {
         return 'A' === $this->getHeaders()->get('answered');
     }
 
-    /**
-     * Get message deleted flag value (from headers).
-     */
     public function isDeleted(): bool
     {
         return 'D' === $this->getHeaders()->get('deleted');
     }
 
-    /**
-     * Get message draft flag value (from headers).
-     */
     public function isDraft(): bool
     {
         return 'X' === $this->getHeaders()->get('draft');
     }
 
-    /**
-     * Has the message been marked as read?
-     */
     public function isSeen(): bool
     {
         return 'N' !== $this->getHeaders()->get('recent') && 'U' !== $this->getHeaders()->get('unseen');
     }
 
-    /**
-     * Mark message as seen.
-     *
-     * @deprecated since version 1.1, to be removed in 2.0
-     */
     public function maskAsSeen(): bool
     {
         \trigger_error(\sprintf('%s is deprecated and will be removed in 2.0. Use %s::markAsSeen instead.', __METHOD__, __CLASS__), \E_USER_DEPRECATED);
@@ -266,19 +203,11 @@
         return $this->markAsSeen();
     }
 
-    /**
-     * Mark message as seen.
-     */
     public function markAsSeen(): bool
     {
         return $this->setFlag('\\Seen');
     }
 
-    /**
-     * Move message to another mailbox.
-     *
-     * @throws MessageCopyException
-     */
     public function copy(MailboxInterface $mailbox): void
     {
         // 'deleted' header changed, force to reload headers, would be better to set deleted flag to true on header
@@ -289,11 +218,6 @@
         }
     }
 
-    /**
-     * Move message to another mailbox.
-     *
-     * @throws MessageMoveException
-     */
     public function move(MailboxInterface $mailbox): void
     {
         // 'deleted' header changed, force to reload headers, would be better to set deleted flag to true on header
@@ -304,11 +228,6 @@
         }
     }
 
-    /**
-     * Delete message.
-     *
-     * @throws MessageDeleteException
-     */
     public function delete(): void
     {
         // 'deleted' header changed, force to reload headers, would be better to set deleted flag to true on header
@@ -319,11 +238,6 @@
         }
     }
 
-    /**
-     * Undelete message.
-     *
-     * @throws MessageUndeleteException
-     */
     public function undelete(): void
     {
         // 'deleted' header changed, force to reload headers, would be better to set deleted flag to false on header
@@ -333,11 +247,6 @@
         }
     }
 
-    /**
-     * Set Flag Message.
-     *
-     * @param string $flag \Seen, \Answered, \Flagged, \Deleted, and \Draft
-     */
     public function setFlag(string $flag): bool
     {
         $result = \imap_setflag_full($this->resource->getStream(), (string) $this->getNumber(), $flag, \ST_UID);
@@ -347,11 +256,6 @@
         return $result;
     }
 
-    /**
-     * Clear Flag Message.
-     *
-     * @param string $flag \Seen, \Answered, \Flagged, \Deleted, and \Draft
-     */
     public function clearFlag(string $flag): bool
     {
         $result = \imap_clearflag_full($this->resource->getStream(), (string) $this->getNumber(), $flag, \ST_UID);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/AbstractMessage.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/AbstractMessage.php
index 5d67e90..0f022cc 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/AbstractMessage.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/AbstractMessage.php
@@ -9,9 +9,9 @@
 abstract class AbstractMessage extends AbstractPart
 {
     /**
-     * @var null|array
+     * @var null|Attachment[]
      */
-    private $attachments;
+    private ?array $attachments = null;
 
     /**
      * Get message headers.
@@ -25,7 +25,10 @@
      */
     final public function getId(): ?string
     {
-        return $this->getHeaders()->get('message_id');
+        $messageId = $this->getHeaders()->get('message_id');
+        \assert(null === $messageId || \is_string($messageId));
+
+        return $messageId;
     }
 
     /**
@@ -34,6 +37,7 @@
     final public function getFrom(): ?EmailAddress
     {
         $from = $this->getHeaders()->get('from');
+        \assert(null === $from || \is_array($from));
 
         return null !== $from ? $this->decodeEmailAddress($from[0]) : null;
     }
@@ -45,7 +49,10 @@
      */
     final public function getTo(): array
     {
-        return $this->decodeEmailAddresses($this->getHeaders()->get('to') ?: []);
+        $emails = $this->getHeaders()->get('to');
+        \assert(null === $emails || \is_array($emails));
+
+        return $this->decodeEmailAddresses($emails ?? []);
     }
 
     /**
@@ -55,7 +62,10 @@
      */
     final public function getCc(): array
     {
-        return $this->decodeEmailAddresses($this->getHeaders()->get('cc') ?: []);
+        $emails = $this->getHeaders()->get('cc');
+        \assert(null === $emails || \is_array($emails));
+
+        return $this->decodeEmailAddresses($emails ?? []);
     }
 
     /**
@@ -65,7 +75,10 @@
      */
     final public function getBcc(): array
     {
-        return $this->decodeEmailAddresses($this->getHeaders()->get('bcc') ?: []);
+        $emails = $this->getHeaders()->get('bcc');
+        \assert(null === $emails || \is_array($emails));
+
+        return $this->decodeEmailAddresses($emails ?? []);
     }
 
     /**
@@ -75,7 +88,10 @@
      */
     final public function getReplyTo(): array
     {
-        return $this->decodeEmailAddresses($this->getHeaders()->get('reply_to') ?: []);
+        $emails = $this->getHeaders()->get('reply_to');
+        \assert(null === $emails || \is_array($emails));
+
+        return $this->decodeEmailAddresses($emails ?? []);
     }
 
     /**
@@ -85,7 +101,10 @@
      */
     final public function getSender(): array
     {
-        return $this->decodeEmailAddresses($this->getHeaders()->get('sender') ?: []);
+        $emails = $this->getHeaders()->get('sender');
+        \assert(null === $emails || \is_array($emails));
+
+        return $this->decodeEmailAddresses($emails ?? []);
     }
 
     /**
@@ -95,7 +114,10 @@
      */
     final public function getReturnPath(): array
     {
-        return $this->decodeEmailAddresses($this->getHeaders()->get('return_path') ?: []);
+        $emails = $this->getHeaders()->get('return_path');
+        \assert(null === $emails || \is_array($emails));
+
+        return $this->decodeEmailAddresses($emails ?? []);
     }
 
     /**
@@ -137,7 +159,10 @@
      */
     final public function getSize()
     {
-        return $this->getHeaders()->get('size');
+        $size = $this->getHeaders()->get('size');
+        \assert(null === $size || \is_int($size) || \is_string($size));
+
+        return $size;
     }
 
     /**
@@ -145,25 +170,34 @@
      */
     final public function getSubject(): ?string
     {
-        return $this->getHeaders()->get('subject');
+        $subject = $this->getHeaders()->get('subject');
+        \assert(null === $subject || \is_string($subject));
+
+        return $subject;
     }
 
     /**
      * Get message In-Reply-To (from headers).
+     *
+     * @return string[]
      */
     final public function getInReplyTo(): array
     {
         $inReplyTo = $this->getHeaders()->get('in_reply_to');
+        \assert(null === $inReplyTo || \is_string($inReplyTo));
 
         return null !== $inReplyTo ? \explode(' ', $inReplyTo) : [];
     }
 
     /**
      * Get message References (from headers).
+     *
+     * @return string[]
      */
     final public function getReferences(): array
     {
         $references = $this->getHeaders()->get('references');
+        \assert(null === $references || \is_string($references));
 
         return null !== $references ? \explode(' ', $references) : [];
     }
@@ -222,6 +256,11 @@
         return $this->attachments;
     }
 
+    /**
+     * @param PartInterface<PartInterface> $part
+     *
+     * @return Attachment[]
+     */
     private static function gatherAttachments(PartInterface $part): array
     {
         $attachments = [];
@@ -247,6 +286,8 @@
 
     /**
      * @param \stdClass[] $addresses
+     *
+     * @return EmailAddress[]
      */
     private function decodeEmailAddresses(array $addresses): array
     {
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/AbstractPart.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/AbstractPart.php
index ab13eb0..0ab0ca5 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/AbstractPart.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/AbstractPart.php
@@ -14,95 +14,7 @@
  */
 abstract class AbstractPart implements PartInterface
 {
-    /**
-     * @var ImapResourceInterface
-     */
-    protected $resource;
-
-    /**
-     * @var bool
-     */
-    private $structureParsed = false;
-
-    /**
-     * @var array
-     */
-    private $parts = [];
-
-    /**
-     * @var string
-     */
-    private $partNumber;
-
-    /**
-     * @var int
-     */
-    private $messageNumber;
-
-    /**
-     * @var \stdClass
-     */
-    private $structure;
-
-    /**
-     * @var Parameters
-     */
-    private $parameters;
-
-    /**
-     * @var null|string
-     */
-    private $type;
-
-    /**
-     * @var null|string
-     */
-    private $subtype;
-
-    /**
-     * @var null|string
-     */
-    private $encoding;
-
-    /**
-     * @var null|string
-     */
-    private $disposition;
-
-    /**
-     * @var null|string
-     */
-    private $description;
-
-    /**
-     * @var null|string
-     */
-    private $bytes;
-
-    /**
-     * @var null|string
-     */
-    private $lines;
-
-    /**
-     * @var null|string
-     */
-    private $content;
-
-    /**
-     * @var null|string
-     */
-    private $decodedContent;
-
-    /**
-     * @var int
-     */
-    private $key = 0;
-
-    /**
-     * @var array
-     */
-    private static $typesMap = [
+    private const TYPES_MAP = [
         \TYPETEXT        => self::TYPE_TEXT,
         \TYPEMULTIPART   => self::TYPE_MULTIPART,
         \TYPEMESSAGE     => self::TYPE_MESSAGE,
@@ -114,10 +26,7 @@
         \TYPEOTHER       => self::TYPE_OTHER,
     ];
 
-    /**
-     * @var array
-     */
-    private static $encodingsMap = [
+    private const ENCODINGS_MAP = [
         \ENC7BIT            => self::ENCODING_7BIT,
         \ENC8BIT            => self::ENCODING_8BIT,
         \ENCBINARY          => self::ENCODING_BINARY,
@@ -125,16 +34,35 @@
         \ENCQUOTEDPRINTABLE => self::ENCODING_QUOTED_PRINTABLE,
     ];
 
-    /**
-     * @var array
-     */
-    private static $attachmentKeys = [
+    private const ATTACHMENT_KEYS = [
         'name'      => true,
         'filename'  => true,
         'name*'     => true,
         'filename*' => true,
     ];
 
+    protected ImapResourceInterface $resource;
+    private bool $structureParsed = false;
+    /**
+     * @var AbstractPart[]
+     */
+    private array $parts = [];
+    private string $partNumber;
+    private int $messageNumber;
+    private \stdClass $structure;
+    private Parameters $parameters;
+    private ?string $type        = null;
+    private ?string $subtype     = null;
+    private ?string $encoding    = null;
+    private ?string $disposition = null;
+    private ?string $description = null;
+    /** @var null|int|string */
+    private $bytes;
+    private ?string $lines          = null;
+    private ?string $content        = null;
+    private ?string $decodedContent = null;
+    private int $key                = 0;
+
     /**
      * Constructor.
      *
@@ -155,9 +83,6 @@
         $this->setStructure($structure);
     }
 
-    /**
-     * Get message number (from headers).
-     */
     final public function getNumber(): int
     {
         $this->assertMessageExists($this->messageNumber);
@@ -180,9 +105,6 @@
         $this->structure = $structure;
     }
 
-    /**
-     * Part structure.
-     */
     final public function getStructure(): \stdClass
     {
         $this->lazyLoadStructure();
@@ -197,9 +119,6 @@
     {
     }
 
-    /**
-     * Part parameters.
-     */
     final public function getParameters(): Parameters
     {
         $this->lazyParseStructure();
@@ -207,19 +126,16 @@
         return $this->parameters;
     }
 
-    /**
-     * Part charset.
-     */
     final public function getCharset(): ?string
     {
         $this->lazyParseStructure();
 
-        return $this->parameters->get('charset') ?: null;
+        $charset = $this->parameters->get('charset');
+        \assert(null === $charset || \is_string($charset));
+
+        return '' !== $charset ? $charset : null;
     }
 
-    /**
-     * Part type.
-     */
     final public function getType(): ?string
     {
         $this->lazyParseStructure();
@@ -227,9 +143,6 @@
         return $this->type;
     }
 
-    /**
-     * Part subtype.
-     */
     final public function getSubtype(): ?string
     {
         $this->lazyParseStructure();
@@ -237,9 +150,6 @@
         return $this->subtype;
     }
 
-    /**
-     * Part encoding.
-     */
     final public function getEncoding(): ?string
     {
         $this->lazyParseStructure();
@@ -247,9 +157,6 @@
         return $this->encoding;
     }
 
-    /**
-     * Part disposition.
-     */
     final public function getDisposition(): ?string
     {
         $this->lazyParseStructure();
@@ -257,9 +164,6 @@
         return $this->disposition;
     }
 
-    /**
-     * Part description.
-     */
     final public function getDescription(): ?string
     {
         $this->lazyParseStructure();
@@ -267,11 +171,6 @@
         return $this->description;
     }
 
-    /**
-     * Part bytes.
-     *
-     * @return null|int|string
-     */
     final public function getBytes()
     {
         $this->lazyParseStructure();
@@ -279,9 +178,6 @@
         return $this->bytes;
     }
 
-    /**
-     * Part lines.
-     */
     final public function getLines(): ?string
     {
         $this->lazyParseStructure();
@@ -289,9 +185,6 @@
         return $this->lines;
     }
 
-    /**
-     * Get raw part content.
-     */
     final public function getContent(): string
     {
         if (null === $this->content) {
@@ -309,17 +202,11 @@
         return $this->partNumber;
     }
 
-    /**
-     * Get part number.
-     */
     final public function getPartNumber(): string
     {
         return $this->partNumber;
     }
 
-    /**
-     * Get decoded part content.
-     */
     final public function getDecodedContent(): string
     {
         if (null === $this->decodedContent) {
@@ -369,11 +256,6 @@
         return $return;
     }
 
-    /**
-     * Get an array of all parts for this message.
-     *
-     * @return PartInterface[]
-     */
     final public function getParts(): array
     {
         $this->lazyParseStructure();
@@ -393,21 +275,11 @@
         return $this->parts[$this->key];
     }
 
-    /**
-     * Get current child part.
-     *
-     * @return \RecursiveIterator
-     */
     final public function getChildren()
     {
         return $this->current();
     }
 
-    /**
-     * Get current child part.
-     *
-     * @return bool
-     */
     final public function hasChildren()
     {
         $this->lazyParseStructure();
@@ -416,8 +288,6 @@
     }
 
     /**
-     * Get current part key.
-     *
      * @return int
      */
     final public function key()
@@ -425,31 +295,16 @@
         return $this->key;
     }
 
-    /**
-     * Move to next part.
-     *
-     * @return void
-     */
     final public function next()
     {
         ++$this->key;
     }
 
-    /**
-     * Reset part key.
-     *
-     * @return void
-     */
     final public function rewind()
     {
         $this->key = 0;
     }
 
-    /**
-     * Check if current part is a valid one.
-     *
-     * @return bool
-     */
     final public function valid()
     {
         $this->lazyParseStructure();
@@ -469,10 +324,10 @@
 
         $this->lazyLoadStructure();
 
-        $this->type = self::$typesMap[$this->structure->type] ?? self::TYPE_UNKNOWN;
+        $this->type = self::TYPES_MAP[$this->structure->type] ?? self::TYPE_UNKNOWN;
 
         // In our context, \ENCOTHER is as useful as an unknown encoding
-        $this->encoding = self::$encodingsMap[$this->structure->encoding] ?? self::ENCODING_UNKNOWN;
+        $this->encoding = self::ENCODINGS_MAP[$this->structure->encoding] ?? self::ENCODING_UNKNOWN;
         if (isset($this->structure->subtype)) {
             $this->subtype = $this->structure->subtype;
         }
@@ -527,7 +382,7 @@
      */
     private static function isAttachment(\stdClass $part): bool
     {
-        if (isset(self::$typesMap[$part->type]) && self::TYPE_MULTIPART === self::$typesMap[$part->type]) {
+        if (isset(self::TYPES_MAP[$part->type]) && self::TYPE_MULTIPART === self::TYPES_MAP[$part->type]) {
             return false;
         }
 
@@ -549,7 +404,7 @@
         // Attachment without Content-Disposition header
         if ($part->ifparameters) {
             foreach ($part->parameters as $parameter) {
-                if (isset(self::$attachmentKeys[\strtolower($parameter->attribute)])) {
+                if (isset(self::ATTACHMENT_KEYS[\strtolower($parameter->attribute)])) {
                     return true;
                 }
             }
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/Attachment.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/Attachment.php
index bd76769..b134b8d 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/Attachment.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/Attachment.php
@@ -11,43 +11,33 @@
  */
 final class Attachment extends AbstractPart implements AttachmentInterface
 {
-    /**
-     * Get attachment filename.
-     */
     public function getFilename(): ?string
     {
-        return $this->getParameters()->get('filename')
-            ?: $this->getParameters()->get('name');
+        $filename = $this->getParameters()->get('filename');
+        if (null === $filename || '' === $filename) {
+            $filename = $this->getParameters()->get('name');
+        }
+        \assert(null === $filename || \is_string($filename));
+
+        return $filename;
     }
 
-    /**
-     * Get attachment file size.
-     *
-     * @return null|int Number of bytes
-     */
     public function getSize()
     {
         $size = $this->getParameters()->get('size');
         if (\is_numeric($size)) {
             $size = (int) $size;
         }
+        \assert(null === $size || \is_int($size));
 
         return $size;
     }
 
-    /**
-     * Is this attachment also an Embedded Message?
-     */
     public function isEmbeddedMessage(): bool
     {
         return self::TYPE_MESSAGE === $this->getType();
     }
 
-    /**
-     * Return embedded message.
-     *
-     * @throws NotEmbeddedMessageException
-     */
     public function getEmbeddedMessage(): EmbeddedMessageInterface
     {
         if (!$this->isEmbeddedMessage()) {
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/AttachmentInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/AttachmentInterface.php
index 0d20f44..286e188 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/AttachmentInterface.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/AttachmentInterface.php
@@ -4,6 +4,8 @@
 
 namespace Ddeboer\Imap\Message;
 
+use Ddeboer\Imap\Exception\NotEmbeddedMessageException;
+
 /**
  * An e-mail attachment.
  */
@@ -28,6 +30,10 @@
 
     /**
      * Return embedded message.
+     *
+     * @throws NotEmbeddedMessageException
+     *
+     * @return EmbeddedMessageInterface<PartInterface>
      */
     public function getEmbeddedMessage(): EmbeddedMessageInterface;
 }
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/BasicMessageInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/BasicMessageInterface.php
index 20e6b1a..83dbd17 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/BasicMessageInterface.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/BasicMessageInterface.php
@@ -96,11 +96,15 @@
 
     /**
      * Get message In-Reply-To (from headers).
+     *
+     * @return string[]
      */
     public function getInReplyTo(): array;
 
     /**
      * Get message References (from headers).
+     *
+     * @return string[]
      */
     public function getReferences(): array;
 
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/EmailAddress.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/EmailAddress.php
index b88e0f9..9f60fb1 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/EmailAddress.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/EmailAddress.php
@@ -9,25 +9,10 @@
  */
 final class EmailAddress
 {
-    /**
-     * @var string
-     */
-    private $mailbox;
-
-    /**
-     * @var null|string
-     */
-    private $hostname;
-
-    /**
-     * @var null|string
-     */
-    private $name;
-
-    /**
-     * @var null|string
-     */
-    private $address;
+    private string $mailbox;
+    private ?string $hostname;
+    private ?string $name;
+    private ?string $address;
 
     public function __construct(string $mailbox, string $hostname = null, string $name = null)
     {
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/EmbeddedMessage.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/EmbeddedMessage.php
index 243cff6..20d9715 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/EmbeddedMessage.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/EmbeddedMessage.php
@@ -6,24 +6,10 @@
 
 final class EmbeddedMessage extends AbstractMessage implements EmbeddedMessageInterface
 {
-    /**
-     * @var null|Headers
-     */
-    private $headers;
+    private ?Headers $headers   = null;
+    private ?string $rawHeaders = null;
+    private ?string $rawMessage = null;
 
-    /**
-     * @var null|string
-     */
-    private $rawHeaders;
-
-    /**
-     * @var null|string
-     */
-    private $rawMessage;
-
-    /**
-     * Get message headers.
-     */
     public function getHeaders(): Headers
     {
         if (null === $this->headers) {
@@ -33,9 +19,6 @@
         return $this->headers;
     }
 
-    /**
-     * Get raw message headers.
-     */
     public function getRawHeaders(): string
     {
         if (null === $this->rawHeaders) {
@@ -46,11 +29,6 @@
         return $this->rawHeaders;
     }
 
-    /**
-     * Get the raw message, including all headers, parts, etc. unencoded and unparsed.
-     *
-     * @return string the raw message
-     */
     public function getRawMessage(): string
     {
         if (null === $this->rawMessage) {
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/Headers.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/Headers.php
index f76fec3..0dc6352 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/Headers.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/Headers.php
@@ -4,14 +4,8 @@
 
 namespace Ddeboer\Imap\Message;
 
-/**
- * Collection of message headers.
- */
 final class Headers extends Parameters
 {
-    /**
-     * Constructor.
-     */
     public function __construct(\stdClass $headers)
     {
         parent::__construct();
@@ -27,7 +21,7 @@
     /**
      * Get header.
      *
-     * @return mixed
+     * @return null|int|\stdClass[]|string
      */
     public function get(string $key)
     {
@@ -37,14 +31,16 @@
     /**
      * Parse header.
      *
-     * @param mixed $value
+     * @param int|\stdClass[]|string $value
      *
-     * @return mixed
+     * @return int|\stdClass[]|string
      */
     private function parseHeader(string $key, $value)
     {
         switch ($key) {
             case 'msgno':
+                \assert(\is_string($value));
+
                 return (int) $value;
             case 'from':
             case 'to':
@@ -53,6 +49,7 @@
             case 'reply_to':
             case 'sender':
             case 'return_path':
+                \assert(\is_array($value));
                 /** @var \stdClass $address */
                 foreach ($value as $address) {
                     if (isset($address->mailbox)) {
@@ -64,6 +61,8 @@
                 return $value;
             case 'date':
             case 'subject':
+                \assert(\is_string($value));
+
                 return $this->decode($value);
         }
 
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/Parameters.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/Parameters.php
index 2f7d8a1..37ed816 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/Parameters.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/Parameters.php
@@ -4,23 +4,22 @@
 
 namespace Ddeboer\Imap\Message;
 
+/**
+ * @extends \ArrayIterator<int|string, int|string|\stdClass[]>
+ */
 class Parameters extends \ArrayIterator
 {
     /**
-     * @var array
+     * @var array<string, string>
      */
-    private static $attachmentCustomKeys = [
+    private static array $attachmentCustomKeys = [
         'name*'     => 'name',
         'filename*' => 'filename',
     ];
 
-    public function __construct(array $parameters = [])
-    {
-        parent::__construct();
-
-        $this->add($parameters);
-    }
-
+    /**
+     * @param \stdClass[] $parameters
+     */
     public function add(array $parameters = []): void
     {
         foreach ($parameters as $parameter) {
@@ -34,16 +33,13 @@
     }
 
     /**
-     * @return mixed
+     * @return null|int|\stdClass[]|string
      */
     public function get(string $key)
     {
         return $this[$key] ?? null;
     }
 
-    /**
-     * Decode value.
-     */
     final protected function decode(string $value): string
     {
         $parts = \imap_mime_header_decode($value);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/Transcoder.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/Transcoder.php
index ee02a15..bd439e0 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/Transcoder.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Message/Transcoder.php
@@ -9,14 +9,12 @@
 final class Transcoder
 {
     /**
-     * @var array
-     *
      * @see https://encoding.spec.whatwg.org/#encodings
      * @see https://dxr.mozilla.org/mozilla-central/source/dom/encoding/labelsencodings.properties
      * @see https://dxr.mozilla.org/mozilla1.9.1/source/intl/uconv/src/charsetalias.properties
      * @see https://msdn.microsoft.com/en-us/library/cc194829.aspx
      */
-    private static $charsetAliases = [
+    private const CHARSET_ALIASES = [
         '128'                       => 'Shift_JIS',
         '129'                       => 'EUC-KR',
         '134'                       => 'GB2312',
@@ -252,6 +250,7 @@
         'x-iso-10646-ucs-2-le'      => 'UTF-16LE',
         'x-iso-10646-ucs-4-be'      => 'UTF-32BE',
         'x-iso-10646-ucs-4-le'      => 'UTF-32LE',
+        'x-mac-ce'                  => 'windows-1250',
         'x-sjis'                    => 'Shift_JIS',
         'x-unicode-2-0-utf-7'       => 'UTF-7',
         'x-x-big5'                  => 'Big5',
@@ -282,8 +281,8 @@
 
         $originalFromCharset  = $fromCharset;
         $lowercaseFromCharset = \strtolower($fromCharset);
-        if (isset(self::$charsetAliases[$lowercaseFromCharset])) {
-            $fromCharset = self::$charsetAliases[$lowercaseFromCharset];
+        if (isset(self::CHARSET_ALIASES[$lowercaseFromCharset])) {
+            $fromCharset = self::CHARSET_ALIASES[$lowercaseFromCharset];
         }
 
         \set_error_handler(static function (): bool {
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/MessageInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/MessageInterface.php
index eda8ab6..e8fe5f7 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/MessageInterface.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/MessageInterface.php
@@ -4,6 +4,11 @@
 
 namespace Ddeboer\Imap;
 
+use Ddeboer\Imap\Exception\MessageCopyException;
+use Ddeboer\Imap\Exception\MessageDeleteException;
+use Ddeboer\Imap\Exception\MessageMoveException;
+use Ddeboer\Imap\Exception\MessageUndeleteException;
+
 /**
  * An IMAP message (e-mail).
  */
@@ -63,21 +68,29 @@
 
     /**
      * Move message to another mailbox.
+     *
+     * @throws MessageCopyException
      */
     public function copy(MailboxInterface $mailbox): void;
 
     /**
      * Move message to another mailbox.
+     *
+     * @throws MessageMoveException
      */
     public function move(MailboxInterface $mailbox): void;
 
     /**
      * Delete message.
+     *
+     * @throws MessageDeleteException
      */
     public function delete(): void;
 
     /**
      * Undelete message.
+     *
+     * @throws MessageUndeleteException
      */
     public function undelete(): void;
 
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/MessageIterator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/MessageIterator.php
index c617478..48d87ee 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/MessageIterator.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/MessageIterator.php
@@ -4,18 +4,20 @@
 
 namespace Ddeboer\Imap;
 
+use Ddeboer\Imap\Message\PartInterface;
+
+/**
+ * @extends \ArrayIterator<int, MessageInterface>
+ */
 final class MessageIterator extends \ArrayIterator implements MessageIteratorInterface
 {
-    /**
-     * @var ImapResourceInterface
-     */
-    private $resource;
+    private ImapResourceInterface $resource;
 
     /**
      * Constructor.
      *
      * @param ImapResourceInterface $resource       IMAP resource
-     * @param array                 $messageNumbers Array of message numbers
+     * @param int[]                 $messageNumbers Array of message numbers
      */
     public function __construct(ImapResourceInterface $resource, array $messageNumbers)
     {
@@ -26,6 +28,8 @@
 
     /**
      * Get current message.
+     *
+     * @return MessageInterface<PartInterface>
      */
     public function current(): MessageInterface
     {
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/MessageIteratorInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/MessageIteratorInterface.php
index a9d7988..36a7943 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/MessageIteratorInterface.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/MessageIteratorInterface.php
@@ -4,10 +4,17 @@
 
 namespace Ddeboer\Imap;
 
+use Ddeboer\Imap\Message\PartInterface;
+
+/**
+ * @extends \Iterator<MessageInterface>
+ */
 interface MessageIteratorInterface extends \Iterator
 {
     /**
      * Get current message.
+     *
+     * @return MessageInterface<PartInterface>
      */
     public function current(): MessageInterface;
 }
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Search/AbstractDate.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Search/AbstractDate.php
index cdd7312..61bd05e 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Search/AbstractDate.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Search/AbstractDate.php
@@ -13,17 +13,13 @@
 {
     /**
      * Format for dates to be sent to the IMAP server.
-     *
-     * @var string
      */
-    private $dateFormat;
+    private string $dateFormat;
 
     /**
      * The date to be used for the condition.
-     *
-     * @var DateTimeInterface
      */
-    private $date;
+    private DateTimeInterface $date;
 
     /**
      * Constructor.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Search/AbstractText.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Search/AbstractText.php
index 69b2516..8b605ce 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Search/AbstractText.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Search/AbstractText.php
@@ -12,10 +12,8 @@
 {
     /**
      * Text to be used for the condition.
-     *
-     * @var string
      */
-    private $text;
+    private string $text;
 
     /**
      * Constructor.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Search/LogicalOperator/OrConditions.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Search/LogicalOperator/OrConditions.php
index bfebddd..01e7d86 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Search/LogicalOperator/OrConditions.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Search/LogicalOperator/OrConditions.php
@@ -15,10 +15,13 @@
     /**
      * The conditions that together represent the expression.
      *
-     * @var array
+     * @var ConditionInterface[]
      */
-    private $conditions = [];
+    private array $conditions = [];
 
+    /**
+     * @param ConditionInterface[] $conditions
+     */
     public function __construct(array $conditions)
     {
         foreach ($conditions as $condition) {
@@ -30,6 +33,8 @@
      * Adds a new condition to the expression.
      *
      * @param ConditionInterface $condition the condition to be added
+     *
+     * @return void
      */
     private function addCondition(ConditionInterface $condition)
     {
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Search/RawExpression.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Search/RawExpression.php
index cc6a465..deda65d 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Search/RawExpression.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Search/RawExpression.php
@@ -11,10 +11,8 @@
 {
     /**
      * Text to be used for the condition.
-     *
-     * @var string
      */
-    private $expression;
+    private string $expression;
 
     /**
      * @param string $expression text for the condition
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/SearchExpression.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/SearchExpression.php
index e89d49e..db95531 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/SearchExpression.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/SearchExpression.php
@@ -14,9 +14,9 @@
     /**
      * The conditions that together represent the expression.
      *
-     * @var array
+     * @var ConditionInterface[]
      */
-    private $conditions = [];
+    private array $conditions = [];
 
     /**
      * Adds a new condition to the expression.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Server.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Server.php
index 7412f00..41a953d 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Server.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Server.php
@@ -12,46 +12,26 @@
  */
 final class Server implements ServerInterface
 {
+    private string $hostname;
+    private string $port;
+    private string $flags;
     /**
-     * @var string Internet domain name or bracketed IP address of server
+     * @var mixed[]
      */
-    private $hostname;
-
-    /**
-     * @var string TCP port number
-     */
-    private $port;
-
-    /**
-     * @var string Optional flags
-     */
-    private $flags;
-
-    /**
-     * @var array
-     */
-    private $parameters;
-
-    /**
-     * @var int Connection options
-     */
-    private $options;
-
-    /**
-     * @var int Retries number
-     */
-    private $retries;
+    private array $parameters;
+    private int $options;
+    private int $retries;
 
     /**
      * Constructor.
      *
-     * @param string $hostname   Internet domain name or bracketed IP address
-     *                           of server
-     * @param string $port       TCP port number
-     * @param string $flags      Optional flags
-     * @param array  $parameters Connection parameters
-     * @param int    $options    Connection options
-     * @param int    $retries    Retries number
+     * @param string  $hostname   Internet domain name or bracketed IP address
+     *                            of server
+     * @param string  $port       TCP port number
+     * @param string  $flags      Optional flags
+     * @param mixed[] $parameters Connection parameters
+     * @param int     $options    Connection options
+     * @param int     $retries    Retries number
      */
     public function __construct(
         string $hostname,
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Test/RawMessageIterator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Test/RawMessageIterator.php
index 08500b6..b895f8a 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Test/RawMessageIterator.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/ddeboer/imap/src/Test/RawMessageIterator.php
@@ -4,14 +4,20 @@
 
 namespace Ddeboer\Imap\Test;
 
+use Ddeboer\Imap\Message\PartInterface;
 use Ddeboer\Imap\MessageInterface;
 use Ddeboer\Imap\MessageIteratorInterface;
 
 /**
  * A MessageIterator to be used in a mocked environment.
+ *
+ * @extends \ArrayIterator<int, MessageInterface>
  */
 final class RawMessageIterator extends \ArrayIterator implements MessageIteratorInterface
 {
+    /**
+     * @return MessageInterface<PartInterface>
+     */
     public function current(): MessageInterface
     {
         return parent::current();
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.gitattributes b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.gitattributes
new file mode 100644
index 0000000..2a0e9d2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.gitattributes
@@ -0,0 +1 @@
+tests/ export-ignore
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.github/FUNDING.yml b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.github/FUNDING.yml
new file mode 100644
index 0000000..ad129a4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.github/FUNDING.yml
@@ -0,0 +1,3 @@
+# These are supported funding model platforms
+
+github: [stevebauman]
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.github/ISSUE_TEMPLATE/bug_report.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 0000000..a56a2af
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,15 @@
+---
+name: Bug report
+about: Create a report to help improve LdapRecord
+title: "[Bug]"
+labels: bug
+assignees: ''
+
+---
+
+<!-- Please update the below information with your environment. -->
+**Environment:**
+ - LDAP Server Type: [e.g. ActiveDirectory / OpenLDAP / FreeIPA]
+ - PHP Version: [e.g. 7.3 / 7.4 / 8.0]
+
+**Describe the bug:**
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.github/ISSUE_TEMPLATE/feature_request.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 0000000..68e5bcd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,10 @@
+---
+name: Feature request
+about: Suggest an idea for LdapRecord
+title: "[Feature]"
+labels: enhancement
+assignees: ''
+
+---
+
+**Describe the feature you'd like:**
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.github/ISSUE_TEMPLATE/support---help-request.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.github/ISSUE_TEMPLATE/support---help-request.md
new file mode 100644
index 0000000..230916c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.github/ISSUE_TEMPLATE/support---help-request.md
@@ -0,0 +1,17 @@
+---
+name: Support / help request
+about: Request help using LdapRecord (requires sponsorship)
+title: "[Support]"
+labels: question
+assignees: ''
+
+---
+
+<!-- ISSUE WILL BE CLOSED WITHOUT SPONSORSHIP: -->
+<!-- https://github.com/sponsors/stevebauman -->
+<!-- Thank you for your understanding. -->
+
+<!-- Please update the below information with your environment. -->
+**Environment:**
+ - LDAP Server Type: [e.g. ActiveDirectory / OpenLDAP / FreeIPA]
+ - PHP Version: [e.g. 7.3 / 7.4 / 8.0]
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.github/workflows/run-tests.yml b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.github/workflows/run-tests.yml
new file mode 100644
index 0000000..ba00218
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.github/workflows/run-tests.yml
@@ -0,0 +1,41 @@
+name: run-tests
+
+on:
+  push:
+  pull_request:
+  schedule:
+    - cron: "0 0 * * *"
+
+jobs:
+  run-tests:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [ubuntu-latest, windows-latest]
+        php: [8.0, 7.4, 7.3]
+
+    name: ${{ matrix.os }} - P${{ matrix.php }}
+
+    steps:
+      - name: Checkout code
+        uses: actions/checkout@v2
+
+      - name: Cache dependencies
+        uses: actions/cache@v2
+        with:
+          path: ~/.composer/cache/files
+          key: dependencies-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
+
+      - name: Setup PHP
+        uses: shivammathur/setup-php@v2
+        with:
+          php-version: ${{ matrix.php }}
+          extensions: ldap, json
+          coverage: none
+
+      - name: Install dependencies
+        run: composer update --prefer-dist --no-interaction
+
+      - name: Execute tests
+        run: vendor/bin/phpunit
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.gitignore b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.gitignore
new file mode 100644
index 0000000..d5389fd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.gitignore
@@ -0,0 +1,5 @@
+vendor
+composer.lock
+.php_cs.cache
+.phpunit.result.cache
+.php-cs-fixer.cache
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.scrutinizer.yml b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.scrutinizer.yml
new file mode 100644
index 0000000..b3f8f88
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.scrutinizer.yml
@@ -0,0 +1,9 @@
+filter:
+    excluded_paths:
+        - tests/*
+build:
+    nodes:
+        analysis:
+            tests:
+                override:
+                    - command: php-scrutinizer-run
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.styleci.yml b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.styleci.yml
new file mode 100644
index 0000000..c774021
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/.styleci.yml
@@ -0,0 +1,4 @@
+preset: laravel
+enabled:
+  - phpdoc_align
+  - unalign_double_arrow
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/composer.json b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/composer.json
new file mode 100644
index 0000000..2e995d9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/composer.json
@@ -0,0 +1,59 @@
+{
+    "name": "directorytree/ldaprecord",
+    "type": "library",
+    "description": "A fully-featured LDAP ORM.",
+    "homepage": "https://www.ldaprecord.com",
+    "keywords": [
+        "active directory",
+        "directory",
+        "ad",
+        "ldap",
+        "windows",
+        "adldap",
+        "adldap2",
+        "ldaprecord",
+        "orm"
+    ],
+    "license": "MIT",
+    "support": {
+        "docs": "https://ldaprecord.com",
+        "issues": "https://github.com/DirectoryTree/LdapRecord/issues",
+        "source": "https://github.com/DirectoryTree/LdapRecord",
+        "email": "steven_bauman@outlook.com"
+    },
+    "authors": [
+        {
+            "name": "Steve Bauman",
+            "email": "steven_bauman@outlook.com",
+            "role": "Developer"
+        }
+    ],
+    "require": {
+        "php": ">=7.3",
+        "ext-ldap": "*",
+        "ext-json": "*",
+        "psr/log": "^1.0",
+        "psr/simple-cache": "^1.0",
+        "nesbot/carbon": "^1.0|^2.0",
+        "tightenco/collect": "^5.6|^6.0|^7.0|^8.0",
+        "illuminate/contracts": "^5.0|^6.0|^7.0|^8.0"
+    },
+    "require-dev": {
+        "phpunit/phpunit": "^8.0",
+        "mockery/mockery": "^1.0",
+        "spatie/ray": "^1.24"
+    },
+    "archive": {
+        "exclude": ["/tests"]
+    },
+    "autoload": {
+        "psr-4": {
+            "LdapRecord\\": "src/"
+        }
+    },
+    "autoload-dev": {
+        "psr-4": {
+            "LdapRecord\\Tests\\": "tests/"
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/license.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/license.md
new file mode 100644
index 0000000..c25dc60
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/license.md
@@ -0,0 +1,8 @@
+The MIT License (MIT)
+Copyright © Steve Bauman
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/phpunit.xml b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/phpunit.xml
new file mode 100644
index 0000000..d03fdc2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/phpunit.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phpunit backupGlobals="false"
+         backupStaticAttributes="false"
+         bootstrap="vendor/autoload.php"
+         colors="true"
+         convertErrorsToExceptions="true"
+         convertNoticesToExceptions="true"
+         convertWarningsToExceptions="true"
+         processIsolation="false"
+         stopOnFailure="false"
+        >
+    <testsuites>
+        <testsuite name="LdapRecord Test Suite">
+            <directory suffix="Test.php">./tests/</directory>
+        </testsuite>
+    </testsuites>
+</phpunit>
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/psalm.xml b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/psalm.xml
new file mode 100644
index 0000000..7c0333d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/psalm.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<psalm
+    errorLevel="7"
+    resolveFromConfigFile="true"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns="https://getpsalm.org/schema/config"
+    xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
+>
+    <projectFiles>
+        <directory name="src" />
+        <ignoreFiles>
+            <directory name="vendor" />
+        </ignoreFiles>
+    </projectFiles>
+</psalm>
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/readme.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/readme.md
new file mode 100644
index 0000000..08ecd9e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/readme.md
@@ -0,0 +1,94 @@
+<!-- readme.md -->
+
+<p align="center">
+    <img src="https://ldaprecord.com/logo.svg" width="400">
+</p>
+
+<p align="center">
+    <a href="https://github.com/DirectoryTree/LdapRecord/actions">
+        <img src="https://img.shields.io/github/workflow/status/directorytree/ldaprecord/run-tests.svg?style=flat-square">
+    </a>
+    <a href="https://scrutinizer-ci.com/g/DirectoryTree/LdapRecord/?branch=master">
+        <img src="https://img.shields.io/scrutinizer/g/DirectoryTree/LdapRecord/master.svg?style=flat-square"/>
+    </a>
+    <a href="https://packagist.org/packages/DirectoryTree/LdapRecord">
+        <img src="https://img.shields.io/packagist/dt/DirectoryTree/LdapRecord.svg?style=flat-square"/>
+    </a>
+    <a href="https://packagist.org/packages/DirectoryTree/LdapRecord">
+        <img src="https://img.shields.io/packagist/v/DirectoryTree/LdapRecord.svg?style=flat-square"/>
+    </a>
+    <a href="https://packagist.org/packages/DirectoryTree/LdapRecord">
+        <img src="https://img.shields.io/github/license/DirectoryTree/LdapRecord.svg?style=flat-square"/>
+    </a>
+</p>
+
+<p align="center">
+    Working with LDAP doesn't need to be hard.
+</p>
+
+<p align="center">
+    LdapRecord is a fully-featured <a href="https://en.wikipedia.org/wiki/Active_record_pattern">Active Record</a>
+    ORM that makes working with LDAP directories a breeze 🍃
+</p>
+
+<h4 align="center">
+    <a href="https://ldaprecord.com/docs/core/v2/quickstart/">Quickstart</a>
+    <span> · </span>
+    <a href="https://ldaprecord.com/docs/core/v2/">Documentation</a>
+    <span> · </span>
+    <a href="https://github.com/DirectoryTree/LdapRecord-Laravel">Laravel Integration</a>
+    <span> · </span>
+    <a href="https://github.com/DirectoryTree/LdapRecord/discussions/new">Post a Question</a>
+</h4>
+
+---
+
+⏲ **Up and Running Fast**
+
+Connect to your LDAP servers and start running queries at lightning speed.
+
+💡 **Fluent Filter Builder**
+
+Find the LDAP objects you're looking for with a fluent LDAP filter builder.
+
+💼 **Multi-Domain Ready**
+
+Built-in connection management allows you to access multiple domains without breaking a sweat.
+
+🔥 **Supercharged Active Record**
+
+Create and modify LDAP objects with minimal code.
+
+---
+
+<h3 align="center">
+Active Directory Features
+</h3>
+
+🚪 **Enable / Disable Accounts**
+
+Detect and assign User Account Control values on accounts with the fluent [Account Control builder](https://ldaprecord.com/docs/core/v2/active-directory/users/#uac).
+
+🔑 **Reset / Change Passwords**
+
+Built-in support for [changing](https://ldaprecord.com/docs/core/v2/active-directory/users/#changing-passwords) and [resetting](https://ldaprecord.com/docs/core/v2/active-directory/users/#resetting-passwords) passwords on Active Directory accounts.
+
+🗑 **Restore Deleted Objects**
+
+We've all been there -- accidentally deleting a user or group in Active Directory. [Restore them](https://ldaprecord.com/docs/core/v2/models/#restoring-deleted-models) by seamlessly accessing your directory's recycle bin.
+
+---
+
+<h3 align="center">LdapRecord is Supportware™</h3>
+
+<p align="center">If you require support using LdapRecord, a <a href="https://github.com/sponsors/stevebauman">sponsorship</a> is required :pray:</p>
+
+<p align="center">Thank you for your understanding :heart:</p>
+
+--- 
+
+<h3 align="center">Security Vulnerabilities</h3>
+
+<p align="center">If you discover a security vulnerability within LdapRecord, please send an e-mail to Steve Bauman via <a href="mailto:steven_bauman@outlook.com">steven_bauman@outlook.com</a>.</p>
+
+<p align="center">All security vulnerabilities will be promptly addressed.</p>
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/BindException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/BindException.php
new file mode 100644
index 0000000..d87abc1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/BindException.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace LdapRecord\Auth;
+
+use LdapRecord\LdapRecordException;
+
+class BindException extends LdapRecordException
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/Events/Attempting.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/Events/Attempting.php
new file mode 100644
index 0000000..3776401
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/Events/Attempting.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Auth\Events;
+
+class Attempting extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/Events/Binding.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/Events/Binding.php
new file mode 100644
index 0000000..faffd85
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/Events/Binding.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Auth\Events;
+
+class Binding extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/Events/Bound.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/Events/Bound.php
new file mode 100644
index 0000000..65a3fae
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/Events/Bound.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Auth\Events;
+
+class Bound extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/Events/Event.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/Events/Event.php
new file mode 100644
index 0000000..83716b4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/Events/Event.php
@@ -0,0 +1,73 @@
+<?php
+
+namespace LdapRecord\Auth\Events;
+
+use LdapRecord\LdapInterface;
+
+abstract class Event
+{
+    /**
+     * The connection that the username and password is being bound on.
+     *
+     * @var LdapInterface
+     */
+    protected $connection;
+
+    /**
+     * The username that is being used for binding.
+     *
+     * @var string
+     */
+    protected $username;
+
+    /**
+     * The password that is being used for binding.
+     *
+     * @var string
+     */
+    protected $password;
+
+    /**
+     * Constructor.
+     *
+     * @param LdapInterface $connection
+     * @param string        $username
+     * @param string        $password
+     */
+    public function __construct(LdapInterface $connection, $username, $password)
+    {
+        $this->connection = $connection;
+        $this->username = $username;
+        $this->password = $password;
+    }
+
+    /**
+     * Returns the events connection.
+     *
+     * @return LdapInterface
+     */
+    public function getConnection()
+    {
+        return $this->connection;
+    }
+
+    /**
+     * Returns the authentication events username.
+     *
+     * @return string
+     */
+    public function getUsername()
+    {
+        return $this->username;
+    }
+
+    /**
+     * Returns the authentication events password.
+     *
+     * @return string
+     */
+    public function getPassword()
+    {
+        return $this->password;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/Events/Failed.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/Events/Failed.php
new file mode 100644
index 0000000..7133e43
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/Events/Failed.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Auth\Events;
+
+class Failed extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/Events/Passed.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/Events/Passed.php
new file mode 100644
index 0000000..2442f3e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/Events/Passed.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Auth\Events;
+
+class Passed extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/Guard.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/Guard.php
new file mode 100644
index 0000000..696cc40
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/Guard.php
@@ -0,0 +1,234 @@
+<?php
+
+namespace LdapRecord\Auth;
+
+use Exception;
+use LdapRecord\Auth\Events\Attempting;
+use LdapRecord\Auth\Events\Binding;
+use LdapRecord\Auth\Events\Bound;
+use LdapRecord\Auth\Events\Failed;
+use LdapRecord\Auth\Events\Passed;
+use LdapRecord\Configuration\DomainConfiguration;
+use LdapRecord\Events\DispatcherInterface;
+use LdapRecord\LdapInterface;
+
+class Guard
+{
+    /**
+     * The connection to bind to.
+     *
+     * @var LdapInterface
+     */
+    protected $connection;
+
+    /**
+     * The domain configuration to utilize.
+     *
+     * @var DomainConfiguration
+     */
+    protected $configuration;
+
+    /**
+     * The event dispatcher.
+     *
+     * @var DispatcherInterface
+     */
+    protected $events;
+
+    /**
+     * Constructor.
+     *
+     * @param LdapInterface       $connection
+     * @param DomainConfiguration $configuration
+     */
+    public function __construct(LdapInterface $connection, DomainConfiguration $configuration)
+    {
+        $this->connection = $connection;
+        $this->configuration = $configuration;
+    }
+
+    /**
+     * Attempt binding a user to the LDAP server.
+     *
+     * @param string $username
+     * @param string $password
+     * @param bool   $stayBound
+     *
+     * @throws UsernameRequiredException
+     * @throws PasswordRequiredException
+     *
+     * @return bool
+     */
+    public function attempt($username, $password, $stayBound = false)
+    {
+        switch (true) {
+            case empty($username):
+                throw new UsernameRequiredException('A username must be specified.');
+            case empty($password):
+                throw new PasswordRequiredException('A password must be specified.');
+        }
+
+        $this->fireAttemptingEvent($username, $password);
+
+        try {
+            $this->bind($username, $password);
+
+            $authenticated = true;
+
+            $this->firePassedEvent($username, $password);
+        } catch (BindException $e) {
+            $authenticated = false;
+        }
+
+        if (! $stayBound) {
+            $this->bindAsConfiguredUser();
+        }
+
+        return $authenticated;
+    }
+
+    /**
+     * Attempt binding a user to the LDAP server. Supports anonymous binding.
+     *
+     * @param string|null $username
+     * @param string|null $password
+     *
+     * @throws BindException
+     * @throws \LdapRecord\ConnectionException
+     */
+    public function bind($username = null, $password = null)
+    {
+        $this->fireBindingEvent($username, $password);
+
+        // Prior to binding, we will upgrade our connectivity to TLS on our current
+        // connection and ensure we are not already bound before upgrading.
+        // This is to prevent subsequent upgrading on several binds.
+        if ($this->connection->isUsingTLS() && ! $this->connection->isBound()) {
+            $this->connection->startTLS();
+        }
+
+        try {
+            if (! $this->connection->bind($username, $password)) {
+                throw new Exception($this->connection->getLastError(), $this->connection->errNo());
+            }
+
+            $this->fireBoundEvent($username, $password);
+        } catch (Exception $e) {
+            $this->fireFailedEvent($username, $password);
+
+            throw BindException::withDetailedError($e, $this->connection->getDetailedError());
+        }
+    }
+
+    /**
+     * Bind to the LDAP server using the configured username and password.
+     *
+     * @throws BindException
+     * @throws \LdapRecord\ConnectionException
+     * @throws \LdapRecord\Configuration\ConfigurationException
+     */
+    public function bindAsConfiguredUser()
+    {
+        $this->bind(
+            $this->configuration->get('username'),
+            $this->configuration->get('password')
+        );
+    }
+
+    /**
+     * Get the event dispatcher instance.
+     *
+     * @return DispatcherInterface
+     */
+    public function getDispatcher()
+    {
+        return $this->events;
+    }
+
+    /**
+     * Set the event dispatcher instance.
+     *
+     * @param DispatcherInterface $dispatcher
+     *
+     * @return void
+     */
+    public function setDispatcher(DispatcherInterface $dispatcher)
+    {
+        $this->events = $dispatcher;
+    }
+
+    /**
+     * Fire the attempting event.
+     *
+     * @param string $username
+     * @param string $password
+     *
+     * @return void
+     */
+    protected function fireAttemptingEvent($username, $password)
+    {
+        if (isset($this->events)) {
+            $this->events->fire(new Attempting($this->connection, $username, $password));
+        }
+    }
+
+    /**
+     * Fire the passed event.
+     *
+     * @param string $username
+     * @param string $password
+     *
+     * @return void
+     */
+    protected function firePassedEvent($username, $password)
+    {
+        if (isset($this->events)) {
+            $this->events->fire(new Passed($this->connection, $username, $password));
+        }
+    }
+
+    /**
+     * Fire the failed event.
+     *
+     * @param string $username
+     * @param string $password
+     *
+     * @return void
+     */
+    protected function fireFailedEvent($username, $password)
+    {
+        if (isset($this->events)) {
+            $this->events->fire(new Failed($this->connection, $username, $password));
+        }
+    }
+
+    /**
+     * Fire the binding event.
+     *
+     * @param string $username
+     * @param string $password
+     *
+     * @return void
+     */
+    protected function fireBindingEvent($username, $password)
+    {
+        if (isset($this->events)) {
+            $this->events->fire(new Binding($this->connection, $username, $password));
+        }
+    }
+
+    /**
+     * Fire the bound event.
+     *
+     * @param string $username
+     * @param string $password
+     *
+     * @return void
+     */
+    protected function fireBoundEvent($username, $password)
+    {
+        if (isset($this->events)) {
+            $this->events->fire(new Bound($this->connection, $username, $password));
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/PasswordRequiredException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/PasswordRequiredException.php
new file mode 100644
index 0000000..7b2bbd1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/PasswordRequiredException.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace LdapRecord\Auth;
+
+use LdapRecord\LdapRecordException;
+
+class PasswordRequiredException extends LdapRecordException
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/UsernameRequiredException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/UsernameRequiredException.php
new file mode 100644
index 0000000..838ae58
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Auth/UsernameRequiredException.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace LdapRecord\Auth;
+
+use LdapRecord\LdapRecordException;
+
+class UsernameRequiredException extends LdapRecordException
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Configuration/ConfigurationException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Configuration/ConfigurationException.php
new file mode 100644
index 0000000..6a93b12
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Configuration/ConfigurationException.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace LdapRecord\Configuration;
+
+use LdapRecord\LdapRecordException;
+
+class ConfigurationException extends LdapRecordException
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Configuration/DomainConfiguration.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Configuration/DomainConfiguration.php
new file mode 100644
index 0000000..1dcdd1a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Configuration/DomainConfiguration.php
@@ -0,0 +1,178 @@
+<?php
+
+namespace LdapRecord\Configuration;
+
+use LdapRecord\LdapInterface;
+
+class DomainConfiguration
+{
+    /**
+     * The extended configuration options.
+     *
+     * @var array
+     */
+    protected static $extended = [];
+
+    /**
+     * The configuration options array.
+     *
+     * The default values for each key indicate the type of value it requires.
+     *
+     * @var array
+     */
+    protected $options = [
+        // An array of LDAP hosts.
+        'hosts' => [],
+
+        // The global LDAP operation timeout limit in seconds.
+        'timeout' => 5,
+
+        // The LDAP version to utilize.
+        'version' => 3,
+
+        // The port to use for connecting to your hosts.
+        'port' => LdapInterface::PORT,
+
+        // The base distinguished name of your domain.
+        'base_dn' => '',
+
+        // The username to use for binding.
+        'username' => '',
+
+        // The password to use for binding.
+        'password' => '',
+
+        // Whether or not to use SSL when connecting.
+        'use_ssl' => false,
+
+        // Whether or not to use TLS when connecting.
+        'use_tls' => false,
+
+        // Whether or not follow referrals is enabled when performing LDAP operations.
+        'follow_referrals' => false,
+
+        // Custom LDAP options.
+        'options' => [],
+    ];
+
+    /**
+     * Constructor.
+     *
+     * @param array $options
+     *
+     * @throws ConfigurationException When an option value given is an invalid type.
+     */
+    public function __construct(array $options = [])
+    {
+        $this->options = array_merge($this->options, static::$extended);
+
+        foreach ($options as $key => $value) {
+            $this->set($key, $value);
+        }
+    }
+
+    /**
+     * Extend the configuration with a custom option, or override an existing.
+     *
+     * @param string $option
+     * @param mixed  $default
+     *
+     * @return void
+     */
+    public static function extend($option, $default = null)
+    {
+        static::$extended[$option] = $default;
+    }
+
+    /**
+     * Flush the extended configuration options.
+     *
+     * @return void
+     */
+    public static function flushExtended()
+    {
+        static::$extended = [];
+    }
+
+    /**
+     * Get all configuration options.
+     *
+     * @return array
+     */
+    public function all()
+    {
+        return $this->options;
+    }
+
+    /**
+     * Set a configuration option.
+     *
+     * @param string $key
+     * @param mixed  $value
+     *
+     * @throws ConfigurationException When an option value given is an invalid type.
+     */
+    public function set($key, $value)
+    {
+        if ($this->validate($key, $value)) {
+            $this->options[$key] = $value;
+        }
+    }
+
+    /**
+     * Returns the value for the specified configuration options.
+     *
+     * @param string $key
+     *
+     * @throws ConfigurationException When the option specified does not exist.
+     *
+     * @return mixed
+     */
+    public function get($key)
+    {
+        if (! $this->has($key)) {
+            throw new ConfigurationException("Option {$key} does not exist.");
+        }
+
+        return $this->options[$key];
+    }
+
+    /**
+     * Checks if a configuration option exists.
+     *
+     * @param string $key
+     *
+     * @return bool
+     */
+    public function has($key)
+    {
+        return array_key_exists($key, $this->options);
+    }
+
+    /**
+     * Validate the configuration option.
+     *
+     * @param string $key
+     * @param mixed  $value
+     *
+     * @throws ConfigurationException When an option value given is an invalid type.
+     *
+     * @return bool
+     */
+    protected function validate($key, $value)
+    {
+        $default = $this->get($key);
+
+        if (is_array($default)) {
+            $validator = new Validators\ArrayValidator($key, $value);
+        } elseif (is_int($default)) {
+            $validator = new Validators\IntegerValidator($key, $value);
+        } elseif (is_bool($default)) {
+            $validator = new Validators\BooleanValidator($key, $value);
+        } else {
+            $validator = new Validators\StringOrNullValidator($key, $value);
+        }
+
+        return $validator->validate();
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Configuration/Validators/ArrayValidator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Configuration/Validators/ArrayValidator.php
new file mode 100644
index 0000000..4aa43ed
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Configuration/Validators/ArrayValidator.php
@@ -0,0 +1,21 @@
+<?php
+
+namespace LdapRecord\Configuration\Validators;
+
+class ArrayValidator extends Validator
+{
+    /**
+     * The validation exception message.
+     *
+     * @var string
+     */
+    protected $message = 'Option [:option] must be an array.';
+
+    /**
+     * @inheritdoc
+     */
+    public function passes()
+    {
+        return is_array($this->value);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Configuration/Validators/BooleanValidator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Configuration/Validators/BooleanValidator.php
new file mode 100644
index 0000000..1d25a4b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Configuration/Validators/BooleanValidator.php
@@ -0,0 +1,21 @@
+<?php
+
+namespace LdapRecord\Configuration\Validators;
+
+class BooleanValidator extends Validator
+{
+    /**
+     * The validation exception message.
+     *
+     * @var string
+     */
+    protected $message = 'Option [:option] must be a boolean.';
+
+    /**
+     * @inheritdoc
+     */
+    public function passes()
+    {
+        return is_bool($this->value);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Configuration/Validators/IntegerValidator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Configuration/Validators/IntegerValidator.php
new file mode 100644
index 0000000..5c4f0f9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Configuration/Validators/IntegerValidator.php
@@ -0,0 +1,21 @@
+<?php
+
+namespace LdapRecord\Configuration\Validators;
+
+class IntegerValidator extends Validator
+{
+    /**
+     * The validation exception message.
+     *
+     * @var string
+     */
+    protected $message = 'Option [:option] must be an integer.';
+
+    /**
+     * @inheritdoc
+     */
+    public function passes()
+    {
+        return is_numeric($this->value);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Configuration/Validators/StringOrNullValidator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Configuration/Validators/StringOrNullValidator.php
new file mode 100644
index 0000000..bc23372
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Configuration/Validators/StringOrNullValidator.php
@@ -0,0 +1,21 @@
+<?php
+
+namespace LdapRecord\Configuration\Validators;
+
+class StringOrNullValidator extends Validator
+{
+    /**
+     * The validation exception message.
+     *
+     * @var string
+     */
+    protected $message = 'Option [:option] must be a string or null.';
+
+    /**
+     * @inheritdoc
+     */
+    public function passes()
+    {
+        return is_string($this->value) || is_null($this->value);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Configuration/Validators/Validator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Configuration/Validators/Validator.php
new file mode 100644
index 0000000..908a639
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Configuration/Validators/Validator.php
@@ -0,0 +1,78 @@
+<?php
+
+namespace LdapRecord\Configuration\Validators;
+
+use LdapRecord\Configuration\ConfigurationException;
+
+abstract class Validator
+{
+    /**
+     * The configuration key under validation.
+     *
+     * @var string
+     */
+    protected $key;
+
+    /**
+     * The configuration value under validation.
+     *
+     * @var mixed
+     */
+    protected $value;
+
+    /**
+     * The validation exception message.
+     *
+     * @var string
+     */
+    protected $message;
+
+    /**
+     * Constructor.
+     *
+     * @param string $key
+     * @param mixed  $value
+     */
+    public function __construct($key, $value)
+    {
+        $this->key = $key;
+        $this->value = $value;
+    }
+
+    /**
+     * Determine if the validation rule passes.
+     *
+     * @return bool
+     */
+    abstract public function passes();
+
+    /**
+     * Validate the configuration value.
+     *
+     * @throws ConfigurationException
+     *
+     * @return bool
+     */
+    public function validate()
+    {
+        if (! $this->passes()) {
+            $this->fail();
+        }
+
+        return true;
+    }
+
+    /**
+     * Throw a configuration exception.
+     *
+     * @throws ConfigurationException
+     *
+     * @return void
+     */
+    protected function fail()
+    {
+        throw new ConfigurationException(
+            str_replace(':option', $this->key, $this->message)
+        );
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Connection.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Connection.php
new file mode 100644
index 0000000..8ba0ef1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Connection.php
@@ -0,0 +1,511 @@
+<?php
+
+namespace LdapRecord;
+
+use Carbon\Carbon;
+use Closure;
+use LdapRecord\Auth\Guard;
+use LdapRecord\Configuration\DomainConfiguration;
+use LdapRecord\Events\DispatcherInterface;
+use LdapRecord\Query\Builder;
+use LdapRecord\Query\Cache;
+use Psr\SimpleCache\CacheInterface;
+
+class Connection
+{
+    use DetectsErrors;
+
+    /**
+     * The underlying LDAP connection.
+     *
+     * @var Ldap
+     */
+    protected $ldap;
+
+    /**
+     * The cache driver.
+     *
+     * @var Cache|null
+     */
+    protected $cache;
+
+    /**
+     * The domain configuration.
+     *
+     * @var DomainConfiguration
+     */
+    protected $configuration;
+
+    /**
+     * The event dispatcher;.
+     *
+     * @var DispatcherInterface|null
+     */
+    protected $dispatcher;
+
+    /**
+     * The current host connected to.
+     *
+     * @var string
+     */
+    protected $host;
+
+    /**
+     * The configured domain hosts.
+     *
+     * @var array
+     */
+    protected $hosts = [];
+
+    /**
+     * The attempted hosts that failed connecting to.
+     *
+     * @var array
+     */
+    protected $attempted = [];
+
+    /**
+     * The callback to execute upon total connection failure.
+     *
+     * @var Closure
+     */
+    protected $failed;
+
+    /**
+     * The authentication guard resolver.
+     *
+     * @var Closure
+     */
+    protected $authGuardResolver;
+
+    /**
+     * Whether the connection is retrying the initial connection attempt.
+     *
+     * @var bool
+     */
+    protected $retryingInitialConnection = false;
+
+    /**
+     * Constructor.
+     *
+     * @param array              $config
+     * @param LdapInterface|null $ldap
+     */
+    public function __construct($config = [], LdapInterface $ldap = null)
+    {
+        $this->setConfiguration($config);
+
+        $this->setLdapConnection($ldap ?? new Ldap());
+
+        $this->failed = function () {
+            $this->dispatch(new Events\ConnectionFailed($this));
+        };
+
+        $this->authGuardResolver = function () {
+            return new Guard($this->ldap, $this->configuration);
+        };
+    }
+
+    /**
+     * Set the connection configuration.
+     *
+     * @param array $config
+     *
+     * @throws Configuration\ConfigurationException
+     *
+     * @return $this
+     */
+    public function setConfiguration($config = [])
+    {
+        $this->configuration = new DomainConfiguration($config);
+
+        $this->hosts = $this->configuration->get('hosts');
+
+        $this->host = reset($this->hosts);
+
+        return $this;
+    }
+
+    /**
+     * Set the LDAP connection.
+     *
+     * @param LdapInterface $ldap
+     *
+     * @return $this
+     */
+    public function setLdapConnection(LdapInterface $ldap)
+    {
+        $this->ldap = $ldap;
+
+        return $this;
+    }
+
+    /**
+     * Set the event dispatcher.
+     *
+     * @param DispatcherInterface $dispatcher
+     *
+     * @return $this
+     */
+    public function setDispatcher(DispatcherInterface $dispatcher)
+    {
+        $this->dispatcher = $dispatcher;
+
+        return $this;
+    }
+
+    /**
+     * Initializes the LDAP connection.
+     *
+     * @return void
+     */
+    public function initialize()
+    {
+        $this->configure();
+
+        $this->ldap->connect($this->host, $this->configuration->get('port'));
+    }
+
+    /**
+     * Configure the LDAP connection.
+     *
+     * @return void
+     */
+    protected function configure()
+    {
+        if ($this->configuration->get('use_ssl')) {
+            $this->ldap->ssl();
+        } elseif ($this->configuration->get('use_tls')) {
+            $this->ldap->tls();
+        }
+
+        $this->ldap->setOptions(array_replace(
+            $this->configuration->get('options'),
+            [
+                LDAP_OPT_PROTOCOL_VERSION => $this->configuration->get('version'),
+                LDAP_OPT_NETWORK_TIMEOUT => $this->configuration->get('timeout'),
+                LDAP_OPT_REFERRALS => $this->configuration->get('follow_referrals'),
+            ]
+        ));
+    }
+
+    /**
+     * Set the cache store.
+     *
+     * @param CacheInterface $store
+     *
+     * @return $this
+     */
+    public function setCache(CacheInterface $store)
+    {
+        $this->cache = new Cache($store);
+
+        return $this;
+    }
+
+    /**
+     * Get the cache store.
+     *
+     * @return Cache|null
+     */
+    public function getCache()
+    {
+        return $this->cache;
+    }
+
+    /**
+     * Get the LDAP configuration instance.
+     *
+     * @return DomainConfiguration
+     */
+    public function getConfiguration()
+    {
+        return $this->configuration;
+    }
+
+    /**
+     * Get the LDAP connection instance.
+     *
+     * @return Ldap
+     */
+    public function getLdapConnection()
+    {
+        return $this->ldap;
+    }
+
+    /**
+     * Bind to the LDAP server.
+     *
+     * If no username or password is specified, then the configured credentials are used.
+     *
+     * @param string|null $username
+     * @param string|null $password
+     *
+     * @throws Auth\BindException
+     * @throws LdapRecordException
+     *
+     * @return Connection
+     */
+    public function connect($username = null, $password = null)
+    {
+        $attempt = function () use ($username, $password) {
+            $this->dispatch(new Events\Connecting($this));
+
+            is_null($username) && is_null($password)
+                ? $this->auth()->bindAsConfiguredUser()
+                : $this->auth()->bind($username, $password);
+
+            $this->dispatch(new Events\Connected($this));
+
+            $this->retryingInitialConnection = false;
+        };
+
+        try {
+            $this->runOperationCallback($attempt);
+        } catch (LdapRecordException $e) {
+            $this->retryingInitialConnection = true;
+
+            $this->retryOnNextHost($e, $attempt);
+        }
+
+        return $this;
+    }
+
+    /**
+     * Reconnect to the LDAP server.
+     *
+     * @throws Auth\BindException
+     * @throws ConnectionException
+     *
+     * @return void
+     */
+    public function reconnect()
+    {
+        $this->reinitialize();
+
+        $this->connect();
+    }
+
+    /**
+     * Reinitialize the connection.
+     *
+     * @return void
+     */
+    protected function reinitialize()
+    {
+        $this->disconnect();
+
+        $this->initialize();
+    }
+
+    /**
+     * Disconnect from the LDAP server.
+     *
+     * @return void
+     */
+    public function disconnect()
+    {
+        $this->ldap->close();
+    }
+
+    /**
+     * Dispatch an event.
+     *
+     * @param object $event
+     *
+     * @return void
+     */
+    public function dispatch($event)
+    {
+        if (isset($this->dispatcher)) {
+            $this->dispatcher->dispatch($event);
+        }
+    }
+
+    /**
+     * Get the attempted hosts that failed connecting to.
+     *
+     * @return array
+     */
+    public function attempted()
+    {
+        return $this->attempted;
+    }
+
+    /**
+     * Perform the operation on the LDAP connection.
+     *
+     * @param Closure $operation
+     *
+     * @return mixed
+     */
+    public function run(Closure $operation)
+    {
+        try {
+            // Before running the operation, we will check if the current
+            // connection is bound and connect if necessary. Otherwise
+            // some LDAP operations will not be executed properly.
+            if (! $this->isConnected()) {
+                $this->connect();
+            }
+
+            return $this->runOperationCallback($operation);
+        } catch (LdapRecordException $e) {
+            if ($exception = $this->getExceptionForCauseOfFailure($e)) {
+                throw $exception;
+            }
+
+            return $this->tryAgainIfCausedByLostConnection($e, $operation);
+        }
+    }
+
+    /**
+     * Attempt to get an exception for the cause of failure.
+     *
+     * @param LdapRecordException $e
+     *
+     * @return mixed
+     */
+    protected function getExceptionForCauseOfFailure(LdapRecordException $e)
+    {
+        switch (true) {
+            case $this->errorContainsMessage($e->getMessage(), 'Already exists'):
+                return Exceptions\AlreadyExistsException::withDetailedError($e, $e->getDetailedError());
+            case $this->errorContainsMessage($e->getMessage(), 'Insufficient access'):
+                return Exceptions\InsufficientAccessException::withDetailedError($e, $e->getDetailedError());
+            case $this->errorContainsMessage($e->getMessage(), 'Constraint violation'):
+                return Exceptions\ConstraintViolationException::withDetailedError($e, $e->getDetailedError());
+            default:
+                return;
+        }
+    }
+
+    /**
+     * Run the operation callback on the current LDAP connection.
+     *
+     * @param Closure $operation
+     *
+     * @throws LdapRecordException
+     *
+     * @return mixed
+     */
+    protected function runOperationCallback(Closure $operation)
+    {
+        return $operation($this->ldap);
+    }
+
+    /**
+     * Get a new auth guard instance.
+     *
+     * @return Auth\Guard
+     */
+    public function auth()
+    {
+        if (! $this->ldap->isConnected()) {
+            $this->initialize();
+        }
+
+        $guard = call_user_func($this->authGuardResolver);
+
+        $guard->setDispatcher(
+            Container::getInstance()->getEventDispatcher()
+        );
+
+        return $guard;
+    }
+
+    /**
+     * Get a new query builder for the connection.
+     *
+     * @return Query\Builder
+     */
+    public function query()
+    {
+        return (new Builder($this))
+            ->setCache($this->cache)
+            ->setBaseDn($this->configuration->get('base_dn'));
+    }
+
+    /**
+     * Determine if the LDAP connection is bound.
+     *
+     * @return bool
+     */
+    public function isConnected()
+    {
+        return $this->ldap->isBound();
+    }
+
+    /**
+     * Attempt to retry an LDAP operation if due to a lost connection.
+     *
+     * @param LdapRecordException $e
+     * @param Closure             $operation
+     *
+     * @throws LdapRecordException
+     *
+     * @return mixed
+     */
+    protected function tryAgainIfCausedByLostConnection(LdapRecordException $e, Closure $operation)
+    {
+        // If the operation failed due to a lost or failed connection,
+        // we'll attempt reconnecting and running the operation again
+        // underneath the same host, and then move onto the next.
+        if ($this->causedByLostConnection($e->getMessage())) {
+            return $this->retry($operation);
+        }
+
+        throw $e;
+    }
+
+    /**
+     * Retry the operation on the current host.
+     *
+     * @param Closure $operation
+     *
+     * @throws LdapRecordException
+     *
+     * @return mixed
+     */
+    protected function retry(Closure $operation)
+    {
+        try {
+            $this->retryingInitialConnection
+                ? $this->reinitialize()
+                : $this->reconnect();
+
+            return $this->runOperationCallback($operation);
+        } catch (LdapRecordException $e) {
+            return $this->retryOnNextHost($e, $operation);
+        }
+    }
+
+    /**
+     * Attempt the operation again on the next host.
+     *
+     * @param LdapRecordException $e
+     * @param Closure             $operation
+     *
+     * @throws LdapRecordException
+     *
+     * @return mixed
+     */
+    protected function retryOnNextHost(LdapRecordException $e, Closure $operation)
+    {
+        $this->attempted[$this->host] = Carbon::now();
+
+        if (($key = array_search($this->host, $this->hosts)) !== false) {
+            unset($this->hosts[$key]);
+        }
+
+        if ($next = reset($this->hosts)) {
+            $this->host = $next;
+
+            return $this->tryAgainIfCausedByLostConnection($e, $operation);
+        }
+
+        call_user_func($this->failed, $this->ldap);
+
+        throw $e;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/ConnectionException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/ConnectionException.php
new file mode 100644
index 0000000..81691bb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/ConnectionException.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord;
+
+class ConnectionException extends LdapRecordException
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/ConnectionManager.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/ConnectionManager.php
new file mode 100644
index 0000000..0eacbc3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/ConnectionManager.php
@@ -0,0 +1,320 @@
+<?php
+
+namespace LdapRecord;
+
+use BadMethodCallException;
+use LdapRecord\Events\Dispatcher;
+use LdapRecord\Events\DispatcherInterface;
+use LdapRecord\Events\Logger;
+use Psr\Log\LoggerInterface;
+
+class ConnectionManager
+{
+    /**
+     * The logger instance.
+     *
+     * @var LoggerInterface|null
+     */
+    protected $logger;
+
+    /**
+     * The event dispatcher instance.
+     *
+     * @var DispatcherInterface|null
+     */
+    protected $dispatcher;
+
+    /**
+     * The added LDAP connections.
+     *
+     * @var Connection[]
+     */
+    protected $connections = [];
+
+    /**
+     * The name of the default connection.
+     *
+     * @var string
+     */
+    protected $default = 'default';
+
+    /**
+     * The events to register listeners for during initialization.
+     *
+     * @var array
+     */
+    protected $listen = [
+        'LdapRecord\Auth\Events\*',
+        'LdapRecord\Query\Events\*',
+        'LdapRecord\Models\Events\*',
+    ];
+
+    /**
+     * The method calls to proxy for compatibility.
+     *
+     * To be removed in the next major version.
+     *
+     * @var array
+     */
+    protected $proxy = [
+        'reset' => 'flush',
+        'addConnection' => 'add',
+        'getConnection' => 'get',
+        'allConnections' => 'all',
+        'removeConnection' => 'remove',
+        'getDefaultConnection' => 'getDefault',
+        'setDefaultConnection' => 'setDefault',
+        'getEventDispatcher' => 'dispatcher',
+        'setEventDispatcher' => 'setDispatcher',
+    ];
+
+    /**
+     * Constructor.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        $this->dispatcher = new Dispatcher();
+    }
+
+    /**
+     * Forward missing method calls onto the instance.
+     *
+     * @param string $method
+     * @param mixed  $args
+     *
+     * @return mixed
+     */
+    public function __call($method, $args)
+    {
+        $method = $this->proxy[$method] ?? $method;
+
+        if (! method_exists($this, $method)) {
+            throw new BadMethodCallException(sprintf(
+                'Call to undefined method %s::%s()',
+                static::class,
+                $method
+            ));
+        }
+
+        return $this->{$method}(...$args);
+    }
+
+    /**
+     * Add a new connection.
+     *
+     * @param Connection  $connection
+     * @param string|null $name
+     *
+     * @return $this
+     */
+    public function add(Connection $connection, $name = null)
+    {
+        $this->connections[$name ?? $this->default] = $connection;
+
+        if ($this->dispatcher) {
+            $connection->setDispatcher($this->dispatcher);
+        }
+
+        return $this;
+    }
+
+    /**
+     * Remove a connection.
+     *
+     * @param $name
+     *
+     * @return $this
+     */
+    public function remove($name)
+    {
+        unset($this->connections[$name]);
+
+        return $this;
+    }
+
+    /**
+     * Get all of the connections.
+     *
+     * @return Connection[]
+     */
+    public function all()
+    {
+        return $this->connections;
+    }
+
+    /**
+     * Get a connection by name or return the default.
+     *
+     * @param string|null $name
+     *
+     * @throws ContainerException If the given connection does not exist.
+     *
+     * @return Connection
+     */
+    public function get($name = null)
+    {
+        if ($this->exists($name = $name ?? $this->default)) {
+            return $this->connections[$name];
+        }
+
+        throw new ContainerException("The LDAP connection [$name] does not exist.");
+    }
+
+    /**
+     * Return the default connection.
+     *
+     * @return Connection
+     */
+    public function getDefault()
+    {
+        return $this->get($this->default);
+    }
+
+    /**
+     * Get the default connection name.
+     *
+     * @return string
+     */
+    public function getDefaultConnectionName()
+    {
+        return $this->default;
+    }
+
+    /**
+     * Checks if the connection exists.
+     *
+     * @param string $name
+     *
+     * @return bool
+     */
+    public function exists($name)
+    {
+        return array_key_exists($name, $this->connections);
+    }
+
+    /**
+     * Set the default connection name.
+     *
+     * @param string $name
+     *
+     * @return $this
+     */
+    public function setDefault($name = null)
+    {
+        $this->default = $name;
+
+        return $this;
+    }
+
+    /**
+     * Flush the manager of all instances and connections.
+     *
+     * @return $this
+     */
+    public function flush()
+    {
+        $this->logger = null;
+
+        $this->connections = [];
+
+        $this->dispatcher = new Dispatcher();
+
+        return $this;
+    }
+
+    /**
+     * Get the logger instance.
+     *
+     * @return LoggerInterface|null
+     */
+    public function getLogger()
+    {
+        return $this->logger;
+    }
+
+    /**
+     * Set the event logger to use.
+     *
+     * @param LoggerInterface $logger
+     *
+     * @return void
+     */
+    public function setLogger(LoggerInterface $logger)
+    {
+        $this->logger = $logger;
+
+        $this->initEventLogger();
+    }
+
+    /**
+     * Initialize the event logger.
+     *
+     * @return void
+     */
+    public function initEventLogger()
+    {
+        $logger = $this->newEventLogger();
+
+        foreach ($this->listen as $event) {
+            $this->dispatcher->listen($event, function ($eventName, $events) use ($logger) {
+                foreach ($events as $event) {
+                    $logger->log($event);
+                }
+            });
+        }
+    }
+
+    /**
+     * Make a new event logger instance.
+     *
+     * @return Logger
+     */
+    protected function newEventLogger()
+    {
+        return new Logger($this->logger);
+    }
+
+    /**
+     * Unset the logger instance.
+     *
+     * @return void
+     */
+    public function unsetLogger()
+    {
+        $this->logger = null;
+    }
+
+    /**
+     * Get the event dispatcher.
+     *
+     * @return DispatcherInterface|null
+     */
+    public function dispatcher()
+    {
+        return $this->dispatcher;
+    }
+
+    /**
+     * Set the event dispatcher.
+     *
+     * @param DispatcherInterface $dispatcher
+     *
+     * @return void
+     */
+    public function setDispatcher(DispatcherInterface $dispatcher)
+    {
+        $this->dispatcher = $dispatcher;
+    }
+
+    /**
+     * Unset the event dispatcher.
+     *
+     * @return void
+     */
+    public function unsetEventDispatcher()
+    {
+        $this->dispatcher = null;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Container.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Container.php
new file mode 100644
index 0000000..f458951
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Container.php
@@ -0,0 +1,127 @@
+<?php
+
+namespace LdapRecord;
+
+/**
+ * @method static $this reset()
+ * @method static Connection[] all()
+ * @method static Connection[] allConnections()
+ * @method static Connection getDefaultConnection()
+ * @method static Connection get(string|null $name = null)
+ * @method static Connection getConnection(string|null $name = null)
+ * @method static bool exists(string $name)
+ * @method static $this remove(string|null $name = null)
+ * @method static $this removeConnection(string|null $name = null)
+ * @method static $this setDefault(string|null $name = null)
+ * @method static $this setDefaultConnection(string|null $name = null)
+ * @method static $this add(Connection $connection, string|null $name = null)
+ * @method static $this addConnection(Connection $connection, string|null $name = null)
+ */
+class Container
+{
+    /**
+     * The current container instance.
+     *
+     * @var Container
+     */
+    protected static $instance;
+
+    /**
+     * The connection manager instance.
+     *
+     * @var ConnectionManager
+     */
+    protected $manager;
+
+    /**
+     * The methods to passthru, for compatibility.
+     *
+     * @var array
+     */
+    protected $passthru = [
+        'reset', 'flush',
+        'add', 'addConnection',
+        'remove', 'removeConnection',
+        'setDefault', 'setDefaultConnection',
+    ];
+
+    /**
+     * Forward missing static calls onto the current instance.
+     *
+     * @param string $method
+     * @param mixed  $args
+     *
+     * @return mixed
+     */
+    public static function __callStatic($method, $args)
+    {
+        return static::getInstance()->{$method}(...$args);
+    }
+
+    /**
+     * Get or set the current instance of the container.
+     *
+     * @return Container
+     */
+    public static function getInstance()
+    {
+        return static::$instance ?? static::getNewInstance();
+    }
+
+    /**
+     * Set the container instance.
+     *
+     * @param Container|null $container
+     *
+     * @return Container|null
+     */
+    public static function setInstance(self $container = null)
+    {
+        return static::$instance = $container;
+    }
+
+    /**
+     * Set and get a new instance of the container.
+     *
+     * @return Container
+     */
+    public static function getNewInstance()
+    {
+        return static::setInstance(new static());
+    }
+
+    /**
+     * Constructor.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        $this->manager = new ConnectionManager();
+    }
+
+    /**
+     * Forward missing method calls onto the connection manager.
+     *
+     * @param string $method
+     * @param mixed  $args
+     *
+     * @return mixed
+     */
+    public function __call($method, $args)
+    {
+        $value = $this->manager->{$method}(...$args);
+
+        return in_array($method, $this->passthru) ? $this : $value;
+    }
+
+    /**
+     * Get the connection manager.
+     *
+     * @return ConnectionManager
+     */
+    public function manager()
+    {
+        return $this->manager;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/ContainerException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/ContainerException.php
new file mode 100644
index 0000000..0ab29cf
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/ContainerException.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord;
+
+class ContainerException extends LdapRecordException
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/DetailedError.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/DetailedError.php
new file mode 100644
index 0000000..d61159e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/DetailedError.php
@@ -0,0 +1,71 @@
+<?php
+
+namespace LdapRecord;
+
+class DetailedError
+{
+    /**
+     * The error code from ldap_errno.
+     *
+     * @var int|null
+     */
+    protected $errorCode;
+
+    /**
+     * The error message from ldap_error.
+     *
+     * @var string|null
+     */
+    protected $errorMessage;
+
+    /**
+     * The diagnostic message when retrieved after an ldap_error.
+     *
+     * @var string|null
+     */
+    protected $diagnosticMessage;
+
+    /**
+     * Constructor.
+     *
+     * @param int    $errorCode
+     * @param string $errorMessage
+     * @param string $diagnosticMessage
+     */
+    public function __construct($errorCode, $errorMessage, $diagnosticMessage)
+    {
+        $this->errorCode = $errorCode;
+        $this->errorMessage = $errorMessage;
+        $this->diagnosticMessage = $diagnosticMessage;
+    }
+
+    /**
+     * Returns the LDAP error code.
+     *
+     * @return int
+     */
+    public function getErrorCode()
+    {
+        return $this->errorCode;
+    }
+
+    /**
+     * Returns the LDAP error message.
+     *
+     * @return string
+     */
+    public function getErrorMessage()
+    {
+        return $this->errorMessage;
+    }
+
+    /**
+     * Returns the LDAP diagnostic message.
+     *
+     * @return string
+     */
+    public function getDiagnosticMessage()
+    {
+        return $this->diagnosticMessage;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/DetectsErrors.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/DetectsErrors.php
new file mode 100644
index 0000000..e8997a9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/DetectsErrors.php
@@ -0,0 +1,73 @@
+<?php
+
+namespace LdapRecord;
+
+trait DetectsErrors
+{
+    /**
+     * Determine if the error was caused by a lost connection.
+     *
+     * @param string $error
+     *
+     * @return bool
+     */
+    protected function causedByLostConnection($error)
+    {
+        return $this->errorContainsMessage($error, ["Can't contact LDAP server", 'Operations error']);
+    }
+
+    /**
+     * Determine if the error was caused by lack of pagination support.
+     *
+     * @param string $error
+     *
+     * @return bool
+     */
+    protected function causedByPaginationSupport($error)
+    {
+        return $this->errorContainsMessage($error, 'No server controls in result');
+    }
+
+    /**
+     * Determine if the error was caused by a size limit warning.
+     *
+     * @param $error
+     *
+     * @return bool
+     */
+    protected function causedBySizeLimit($error)
+    {
+        return $this->errorContainsMessage($error, ['Partial search results returned', 'Size limit exceeded']);
+    }
+
+    /**
+     * Determine if the error was caused by a "No such object" warning.
+     *
+     * @param string $error
+     *
+     * @return bool
+     */
+    protected function causedByNoSuchObject($error)
+    {
+        return $this->errorContainsMessage($error, ['No such object']);
+    }
+
+    /**
+     * Determine if the error contains the any of the messages.
+     *
+     * @param string       $error
+     * @param string|array $messages
+     *
+     * @return bool
+     */
+    protected function errorContainsMessage($error, $messages = [])
+    {
+        foreach ((array) $messages as $message) {
+            if (strpos($error, $message) !== false) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/EscapesValues.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/EscapesValues.php
new file mode 100644
index 0000000..acfc020
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/EscapesValues.php
@@ -0,0 +1,22 @@
+<?php
+
+namespace LdapRecord;
+
+use LdapRecord\Models\Attributes\EscapedValue;
+
+trait EscapesValues
+{
+    /**
+     * Prepare a value to be escaped.
+     *
+     * @param string $value
+     * @param string $ignore
+     * @param int    $flags
+     *
+     * @return EscapedValue
+     */
+    public function escape($value, $ignore = '', $flags = 0)
+    {
+        return new EscapedValue($value, $ignore, $flags);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Events/Connected.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Events/Connected.php
new file mode 100644
index 0000000..d9505da
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Events/Connected.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Events;
+
+class Connected extends ConnectionEvent
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Events/Connecting.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Events/Connecting.php
new file mode 100644
index 0000000..d2922ad
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Events/Connecting.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Events;
+
+class Connecting extends ConnectionEvent
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Events/ConnectionEvent.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Events/ConnectionEvent.php
new file mode 100644
index 0000000..e9c2c35
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Events/ConnectionEvent.php
@@ -0,0 +1,35 @@
+<?php
+
+namespace LdapRecord\Events;
+
+use LdapRecord\Connection;
+
+abstract class ConnectionEvent
+{
+    /**
+     * The LDAP connection.
+     *
+     * @var Connection
+     */
+    protected $connection;
+
+    /**
+     * Constructor.
+     *
+     * @param Connection $connection
+     */
+    public function __construct(Connection $connection)
+    {
+        $this->connection = $connection;
+    }
+
+    /**
+     * Get the connection pertaining to the event.
+     *
+     * @return Connection
+     */
+    public function getConnection()
+    {
+        return $this->connection;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Events/ConnectionFailed.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Events/ConnectionFailed.php
new file mode 100644
index 0000000..7e110c1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Events/ConnectionFailed.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Events;
+
+class ConnectionFailed extends ConnectionEvent
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Events/Dispatcher.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Events/Dispatcher.php
new file mode 100644
index 0000000..a4ae3de
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Events/Dispatcher.php
@@ -0,0 +1,334 @@
+<?php
+
+namespace LdapRecord\Events;
+
+use LdapRecord\Support\Arr;
+
+/**
+ * Class Dispatcher.
+ *
+ * Handles event listening and dispatching.
+ *
+ * This code was taken out of the Laravel Framework core
+ * with broadcasting and queuing omitted to remove
+ * an extra dependency that would be required.
+ *
+ * @author Taylor Otwell
+ *
+ * @see https://github.com/laravel/framework
+ */
+class Dispatcher implements DispatcherInterface
+{
+    /**
+     * The registered event listeners.
+     *
+     * @var array
+     */
+    protected $listeners = [];
+
+    /**
+     * The wildcard listeners.
+     *
+     * @var array
+     */
+    protected $wildcards = [];
+
+    /**
+     * The cached wildcard listeners.
+     *
+     * @var array
+     */
+    protected $wildcardsCache = [];
+
+    /**
+     * @inheritdoc
+     */
+    public function listen($events, $listener)
+    {
+        foreach ((array) $events as $event) {
+            if (strpos($event, '*') !== false) {
+                $this->setupWildcardListen($event, $listener);
+            } else {
+                $this->listeners[$event][] = $this->makeListener($listener);
+            }
+        }
+    }
+
+    /**
+     * Setup a wildcard listener callback.
+     *
+     * @param string $event
+     * @param mixed  $listener
+     *
+     * @return void
+     */
+    protected function setupWildcardListen($event, $listener)
+    {
+        $this->wildcards[$event][] = $this->makeListener($listener, true);
+
+        $this->wildcardsCache = [];
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function hasListeners($eventName)
+    {
+        return isset($this->listeners[$eventName]) || isset($this->wildcards[$eventName]);
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function until($event, $payload = [])
+    {
+        return $this->dispatch($event, $payload, true);
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function fire($event, $payload = [], $halt = false)
+    {
+        return $this->dispatch($event, $payload, $halt);
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function dispatch($event, $payload = [], $halt = false)
+    {
+        // When the given "event" is actually an object we will assume it is an event
+        // object and use the class as the event name and this event itself as the
+        // payload to the handler, which makes object based events quite simple.
+        [$event, $payload] = $this->parseEventAndPayload(
+            $event,
+            $payload
+        );
+
+        $responses = [];
+
+        foreach ($this->getListeners($event) as $listener) {
+            $response = $listener($event, $payload);
+
+            // If a response is returned from the listener and event halting is enabled
+            // we will just return this response, and not call the rest of the event
+            // listeners. Otherwise we will add the response on the response list.
+            if ($halt && ! is_null($response)) {
+                return $response;
+            }
+
+            // If a boolean false is returned from a listener, we will stop propagating
+            // the event to any further listeners down in the chain, else we keep on
+            // looping through the listeners and firing every one in our sequence.
+            if ($response === false) {
+                break;
+            }
+
+            $responses[] = $response;
+        }
+
+        return $halt ? null : $responses;
+    }
+
+    /**
+     * Parse the given event and payload and prepare them for dispatching.
+     *
+     * @param mixed $event
+     * @param mixed $payload
+     *
+     * @return array
+     */
+    protected function parseEventAndPayload($event, $payload)
+    {
+        if (is_object($event)) {
+            [$payload, $event] = [[$event], get_class($event)];
+        }
+
+        return [$event, Arr::wrap($payload)];
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function getListeners($eventName)
+    {
+        $listeners = $this->listeners[$eventName] ?? [];
+
+        $listeners = array_merge(
+            $listeners,
+            $this->wildcardsCache[$eventName] ?? $this->getWildcardListeners($eventName)
+        );
+
+        return class_exists($eventName, false)
+            ? $this->addInterfaceListeners($eventName, $listeners)
+            : $listeners;
+    }
+
+    /**
+     * Get the wildcard listeners for the event.
+     *
+     * @param string $eventName
+     *
+     * @return array
+     */
+    protected function getWildcardListeners($eventName)
+    {
+        $wildcards = [];
+
+        foreach ($this->wildcards as $key => $listeners) {
+            if ($this->wildcardContainsEvent($key, $eventName)) {
+                $wildcards = array_merge($wildcards, $listeners);
+            }
+        }
+
+        return $this->wildcardsCache[$eventName] = $wildcards;
+    }
+
+    /**
+     * Determine if the wildcard matches or contains the given event.
+     *
+     * This function is a direct excerpt from Laravel's Str::is().
+     *
+     * @param string $wildcard
+     * @param string $eventName
+     *
+     * @return bool
+     */
+    protected function wildcardContainsEvent($wildcard, $eventName)
+    {
+        $patterns = Arr::wrap($wildcard);
+
+        if (empty($patterns)) {
+            return false;
+        }
+
+        foreach ($patterns as $pattern) {
+            // If the given event is an exact match we can of course return true right
+            // from the beginning. Otherwise, we will translate asterisks and do an
+            // actual pattern match against the two strings to see if they match.
+            if ($pattern == $eventName) {
+                return true;
+            }
+
+            $pattern = preg_quote($pattern, '#');
+
+            // Asterisks are translated into zero-or-more regular expression wildcards
+            // to make it convenient to check if the strings starts with the given
+            // pattern such as "library/*", making any string check convenient.
+            $pattern = str_replace('\*', '.*', $pattern);
+
+            if (preg_match('#^'.$pattern.'\z#u', $eventName) === 1) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * Add the listeners for the event's interfaces to the given array.
+     *
+     * @param string $eventName
+     * @param array  $listeners
+     *
+     * @return array
+     */
+    protected function addInterfaceListeners($eventName, array $listeners = [])
+    {
+        foreach (class_implements($eventName) as $interface) {
+            if (isset($this->listeners[$interface])) {
+                foreach ($this->listeners[$interface] as $names) {
+                    $listeners = array_merge($listeners, (array) $names);
+                }
+            }
+        }
+
+        return $listeners;
+    }
+
+    /**
+     * Register an event listener with the dispatcher.
+     *
+     * @param \Closure|string $listener
+     * @param bool            $wildcard
+     *
+     * @return \Closure
+     */
+    public function makeListener($listener, $wildcard = false)
+    {
+        if (is_string($listener)) {
+            return $this->createClassListener($listener, $wildcard);
+        }
+
+        return function ($event, $payload) use ($listener, $wildcard) {
+            if ($wildcard) {
+                return $listener($event, $payload);
+            }
+
+            return $listener(...array_values($payload));
+        };
+    }
+
+    /**
+     * Create a class based listener.
+     *
+     * @param string $listener
+     * @param bool   $wildcard
+     *
+     * @return \Closure
+     */
+    protected function createClassListener($listener, $wildcard = false)
+    {
+        return function ($event, $payload) use ($listener, $wildcard) {
+            if ($wildcard) {
+                return call_user_func($this->createClassCallable($listener), $event, $payload);
+            }
+
+            return call_user_func_array(
+                $this->createClassCallable($listener),
+                $payload
+            );
+        };
+    }
+
+    /**
+     * Create the class based event callable.
+     *
+     * @param string $listener
+     *
+     * @return callable
+     */
+    protected function createClassCallable($listener)
+    {
+        [$class, $method] = $this->parseListenerCallback($listener);
+
+        return [new $class(), $method];
+    }
+
+    /**
+     * Parse the class listener into class and method.
+     *
+     * @param string $listener
+     *
+     * @return array
+     */
+    protected function parseListenerCallback($listener)
+    {
+        return strpos($listener, '@') !== false
+            ? explode('@', $listener, 2)
+            : [$listener, 'handle'];
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function forget($event)
+    {
+        if (strpos($event, '*') !== false) {
+            unset($this->wildcards[$event]);
+        } else {
+            unset($this->listeners[$event]);
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Events/DispatcherInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Events/DispatcherInterface.php
new file mode 100644
index 0000000..6b7cb10
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Events/DispatcherInterface.php
@@ -0,0 +1,75 @@
+<?php
+
+namespace LdapRecord\Events;
+
+interface DispatcherInterface
+{
+    /**
+     * Register an event listener with the dispatcher.
+     *
+     * @param string|array $events
+     * @param mixed        $listener
+     *
+     * @return void
+     */
+    public function listen($events, $listener);
+
+    /**
+     * Determine if a given event has listeners.
+     *
+     * @param string $eventName
+     *
+     * @return bool
+     */
+    public function hasListeners($eventName);
+
+    /**
+     * Fire an event until the first non-null response is returned.
+     *
+     * @param string|object $event
+     * @param mixed         $payload
+     *
+     * @return array|null
+     */
+    public function until($event, $payload = []);
+
+    /**
+     * Fire an event and call the listeners.
+     *
+     * @param string|object $event
+     * @param mixed         $payload
+     * @param bool          $halt
+     *
+     * @return mixed
+     */
+    public function fire($event, $payload = [], $halt = false);
+
+    /**
+     * Fire an event and call the listeners.
+     *
+     * @param string|object $event
+     * @param mixed         $payload
+     * @param bool          $halt
+     *
+     * @return array|null
+     */
+    public function dispatch($event, $payload = [], $halt = false);
+
+    /**
+     * Get all of the listeners for a given event name.
+     *
+     * @param string $eventName
+     *
+     * @return array
+     */
+    public function getListeners($eventName);
+
+    /**
+     * Remove a set of listeners from the dispatcher.
+     *
+     * @param string $event
+     *
+     * @return void
+     */
+    public function forget($event);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Events/Logger.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Events/Logger.php
new file mode 100644
index 0000000..f3840c2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Events/Logger.php
@@ -0,0 +1,141 @@
+<?php
+
+namespace LdapRecord\Events;
+
+use LdapRecord\Auth\Events\Event as AuthEvent;
+use LdapRecord\Auth\Events\Failed;
+use LdapRecord\Models\Events\Event as ModelEvent;
+use LdapRecord\Query\Events\QueryExecuted as QueryEvent;
+use Psr\Log\LoggerInterface;
+use ReflectionClass;
+
+class Logger
+{
+    /**
+     * The logger instance.
+     *
+     * @var LoggerInterface|null
+     */
+    protected $logger;
+
+    /**
+     * Constructor.
+     *
+     * @param LoggerInterface|null $logger
+     */
+    public function __construct(LoggerInterface $logger = null)
+    {
+        $this->logger = $logger;
+    }
+
+    /**
+     * Logs the given event.
+     *
+     * @param mixed $event
+     *
+     * @return void
+     */
+    public function log($event)
+    {
+        switch (true) {
+            case $event instanceof AuthEvent:
+                return $this->auth($event);
+            case $event instanceof ModelEvent:
+                return $this->model($event);
+            case $event instanceof QueryEvent:
+                return $this->query($event);
+        }
+    }
+
+    /**
+     * Logs an authentication event.
+     *
+     * @param AuthEvent $event
+     *
+     * @return void
+     */
+    public function auth(AuthEvent $event)
+    {
+        if (isset($this->logger)) {
+            $connection = $event->getConnection();
+
+            $message = "LDAP ({$connection->getHost()})"
+                ." - Operation: {$this->getOperationName($event)}"
+                ." - Username: {$event->getUsername()}";
+
+            $result = null;
+            $type = 'info';
+
+            if (is_a($event, Failed::class)) {
+                $type = 'warning';
+                $result = " - Reason: {$connection->getLastError()}";
+            }
+
+            $this->logger->$type($message.$result);
+        }
+    }
+
+    /**
+     * Logs a model event.
+     *
+     * @param ModelEvent $event
+     *
+     * @return void
+     */
+    public function model(ModelEvent $event)
+    {
+        if (isset($this->logger)) {
+            $model = $event->getModel();
+
+            $on = get_class($model);
+
+            $connection = $model->getConnection()->getLdapConnection();
+
+            $message = "LDAP ({$connection->getHost()})"
+                ." - Operation: {$this->getOperationName($event)}"
+                ." - On: {$on}"
+                ." - Distinguished Name: {$model->getDn()}";
+
+            $this->logger->info($message);
+        }
+    }
+
+    /**
+     * Logs a query event.
+     *
+     * @param QueryEvent $event
+     *
+     * @return void
+     */
+    public function query(QueryEvent $event)
+    {
+        if (isset($this->logger)) {
+            $query = $event->getQuery();
+
+            $connection = $query->getConnection()->getLdapConnection();
+
+            $selected = implode(',', $query->getSelects());
+
+            $message = "LDAP ({$connection->getHost()})"
+                ." - Operation: {$this->getOperationName($event)}"
+                ." - Base DN: {$query->getBaseDn()}"
+                ." - Filter: {$query->getQuery()}"
+                ." - Selected: ({$selected})"
+                ." - Time Elapsed: {$event->getTime()}";
+
+            $this->logger->info($message);
+        }
+    }
+
+    /**
+     * Returns the operational name of the given event.
+     *
+     * @param mixed $event
+     *
+     * @return string
+     */
+    protected function getOperationName($event)
+    {
+        return (new ReflectionClass($event))->getShortName();
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Exceptions/AlreadyExistsException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Exceptions/AlreadyExistsException.php
new file mode 100644
index 0000000..2298caf
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Exceptions/AlreadyExistsException.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace LdapRecord\Exceptions;
+
+use LdapRecord\LdapRecordException;
+
+class AlreadyExistsException extends LdapRecordException
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Exceptions/ConstraintViolationException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Exceptions/ConstraintViolationException.php
new file mode 100644
index 0000000..641843a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Exceptions/ConstraintViolationException.php
@@ -0,0 +1,35 @@
+<?php
+
+namespace LdapRecord\Exceptions;
+
+use LdapRecord\DetectsErrors;
+use LdapRecord\LdapRecordException;
+
+class ConstraintViolationException extends LdapRecordException
+{
+    use DetectsErrors;
+
+    /**
+     * Determine if the exception was generated due to the password policy.
+     *
+     * @return bool
+     */
+    public function causedByPasswordPolicy()
+    {
+        return isset($this->detailedError)
+                ? $this->errorContainsMessage($this->detailedError->getDiagnosticMessage(), '0000052D')
+                : false;
+    }
+
+    /**
+     * Determine if the exception was generated due to an incorrect password.
+     *
+     * @return bool
+     */
+    public function causedByIncorrectPassword()
+    {
+        return isset($this->detailedError)
+                ? $this->errorContainsMessage($this->detailedError->getDiagnosticMessage(), '00000056')
+                : false;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Exceptions/InsufficientAccessException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Exceptions/InsufficientAccessException.php
new file mode 100644
index 0000000..89c55fd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Exceptions/InsufficientAccessException.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace LdapRecord\Exceptions;
+
+use LdapRecord\LdapRecordException;
+
+class InsufficientAccessException extends LdapRecordException
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/HandlesConnection.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/HandlesConnection.php
new file mode 100644
index 0000000..41334b6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/HandlesConnection.php
@@ -0,0 +1,261 @@
+<?php
+
+namespace LdapRecord;
+
+use Closure;
+use ErrorException;
+use Exception;
+
+trait HandlesConnection
+{
+    /**
+     * The LDAP host that is currently connected.
+     *
+     * @var string|null
+     */
+    protected $host;
+
+    /**
+     * The LDAP connection resource.
+     *
+     * @var resource|null
+     */
+    protected $connection;
+
+    /**
+     * The bound status of the connection.
+     *
+     * @var bool
+     */
+    protected $bound = false;
+
+    /**
+     * Whether the connection must be bound over SSL.
+     *
+     * @var bool
+     */
+    protected $useSSL = false;
+
+    /**
+     * Whether the connection must be bound over TLS.
+     *
+     * @var bool
+     */
+    protected $useTLS = false;
+
+    /**
+     * @inheritdoc
+     */
+    public function isUsingSSL()
+    {
+        return $this->useSSL;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function isUsingTLS()
+    {
+        return $this->useTLS;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function isBound()
+    {
+        return $this->bound;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function isConnected()
+    {
+        return ! is_null($this->connection);
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function canChangePasswords()
+    {
+        return $this->isUsingSSL() || $this->isUsingTLS();
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function ssl($enabled = true)
+    {
+        $this->useSSL = $enabled;
+
+        return $this;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function tls($enabled = true)
+    {
+        $this->useTLS = $enabled;
+
+        return $this;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function setOptions(array $options = [])
+    {
+        foreach ($options as $option => $value) {
+            $this->setOption($option, $value);
+        }
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function getHost()
+    {
+        return $this->host;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function getConnection()
+    {
+        return $this->connection;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function getProtocol()
+    {
+        return $this->isUsingSSL() ? LdapInterface::PROTOCOL_SSL : LdapInterface::PROTOCOL;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function getExtendedError()
+    {
+        return $this->getDiagnosticMessage();
+    }
+
+    /**
+     * Convert warnings to exceptions for the given operation.
+     *
+     * @param Closure $operation
+     *
+     * @throws LdapRecordException
+     *
+     * @return mixed
+     */
+    protected function executeFailableOperation(Closure $operation)
+    {
+        // If some older versions of PHP, errors are reported instead of throwing
+        // exceptions, which could be a signifcant detriment to our application.
+        // Here, we will enforce these operations to throw exceptions instead.
+        set_error_handler(function ($severity, $message, $file, $line) {
+            if (! $this->shouldBypassError($message)) {
+                throw new ErrorException($message, $severity, $severity, $file, $line);
+            }
+        });
+
+        try {
+            if (($result = $operation()) !== false) {
+                return $result;
+            }
+
+            // If the failed query operation was a based on a query being executed
+            // -- such as a search, read, or listing, then we can safely return
+            // the failed response here and prevent throwning an exception.
+            if ($this->shouldBypassFailure($method = debug_backtrace()[1]['function'])) {
+                return $result;
+            }
+
+            throw new Exception("LDAP operation [$method] failed.");
+        } catch (ErrorException $e) {
+            throw LdapRecordException::withDetailedError($e, $this->getDetailedError());
+        } finally {
+            restore_error_handler();
+        }
+    }
+
+    /**
+     * Determine if the failed operation should be bypassed.
+     *
+     * @param string $method
+     *
+     * @return bool
+     */
+    protected function shouldBypassFailure($method)
+    {
+        return in_array($method, ['search', 'read', 'listing']);
+    }
+
+    /**
+     * Determine if the error should be bypassed.
+     *
+     * @param string $error
+     *
+     * @return bool
+     */
+    protected function shouldBypassError($error)
+    {
+        return $this->causedByPaginationSupport($error) || $this->causedBySizeLimit($error) || $this->causedByNoSuchObject($error);
+    }
+
+    /**
+     * Determine if the current PHP version supports server controls.
+     *
+     * @deprecated since v2.5.0
+     *
+     * @return bool
+     */
+    public function supportsServerControlsInMethods()
+    {
+        return version_compare(PHP_VERSION, '7.3.0') >= 0;
+    }
+
+    /**
+     * Generates an LDAP connection string for each host given.
+     *
+     * @param string|array $hosts
+     * @param string       $port
+     *
+     * @return string
+     */
+    protected function makeConnectionUris($hosts, $port)
+    {
+        // If an attempt to connect via SSL protocol is being performed,
+        // and we are still using the default port, we will swap it
+        // for the default SSL port, for developer convenience.
+        if ($this->isUsingSSL() && $port == LdapInterface::PORT) {
+            $port = LdapInterface::PORT_SSL;
+        }
+
+        // The blank space here is intentional. PHP's LDAP extension
+        // requires additional hosts to be seperated by a blank
+        // space, so that it can parse each individually.
+        return implode(' ', $this->assembleHostUris($hosts, $port));
+    }
+
+    /**
+     * Assemble the host URI strings.
+     *
+     * @param array|string $hosts
+     * @param string       $port
+     *
+     * @return array
+     */
+    protected function assembleHostUris($hosts, $port)
+    {
+        return array_map(function ($host) use ($port) {
+            return "{$this->getProtocol()}{$host}:{$port}";
+        }, (array) $hosts);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Ldap.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Ldap.php
new file mode 100644
index 0000000..6503cea
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Ldap.php
@@ -0,0 +1,480 @@
+<?php
+
+namespace LdapRecord;
+
+class Ldap implements LdapInterface
+{
+    use HandlesConnection, DetectsErrors;
+
+    /**
+     * @inheritdoc
+     */
+    public function getEntries($searchResults)
+    {
+        return $this->executeFailableOperation(function () use ($searchResults) {
+            return ldap_get_entries($this->connection, $searchResults);
+        });
+    }
+
+    /**
+     * Retrieves the first entry from a search result.
+     *
+     * @see http://php.net/manual/en/function.ldap-first-entry.php
+     *
+     * @param resource $searchResults
+     *
+     * @return resource
+     */
+    public function getFirstEntry($searchResults)
+    {
+        return $this->executeFailableOperation(function () use ($searchResults) {
+            return ldap_first_entry($this->connection, $searchResults);
+        });
+    }
+
+    /**
+     * Retrieves the next entry from a search result.
+     *
+     * @see http://php.net/manual/en/function.ldap-next-entry.php
+     *
+     * @param resource $entry
+     *
+     * @return resource
+     */
+    public function getNextEntry($entry)
+    {
+        return $this->executeFailableOperation(function () use ($entry) {
+            return ldap_next_entry($this->connection, $entry);
+        });
+    }
+
+    /**
+     * Retrieves the ldap entry's attributes.
+     *
+     * @see http://php.net/manual/en/function.ldap-get-attributes.php
+     *
+     * @param resource $entry
+     *
+     * @return array|false
+     */
+    public function getAttributes($entry)
+    {
+        return $this->executeFailableOperation(function () use ($entry) {
+            return ldap_get_attributes($this->connection, $entry);
+        });
+    }
+
+    /**
+     * Returns the number of entries from a search result.
+     *
+     * @see http://php.net/manual/en/function.ldap-count-entries.php
+     *
+     * @param resource $searchResults
+     *
+     * @return int
+     */
+    public function countEntries($searchResults)
+    {
+        return $this->executeFailableOperation(function () use ($searchResults) {
+            return ldap_count_entries($this->connection, $searchResults);
+        });
+    }
+
+    /**
+     * Compare value of attribute found in entry specified with DN.
+     *
+     * @see http://php.net/manual/en/function.ldap-compare.php
+     *
+     * @param string $dn
+     * @param string $attribute
+     * @param string $value
+     *
+     * @return mixed
+     */
+    public function compare($dn, $attribute, $value)
+    {
+        return $this->executeFailableOperation(function () use ($dn, $attribute, $value) {
+            return ldap_compare($this->connection, $dn, $attribute, $value);
+        });
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function getLastError()
+    {
+        if (! $this->connection) {
+            return;
+        }
+
+        return ldap_error($this->connection);
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function getDetailedError()
+    {
+        if (! $number = $this->errNo()) {
+            return;
+        }
+
+        $this->getOption(LDAP_OPT_DIAGNOSTIC_MESSAGE, $message);
+
+        return new DetailedError($number, $this->err2Str($number), $message);
+    }
+
+    /**
+     * Get all binary values from the specified result entry.
+     *
+     * @see http://php.net/manual/en/function.ldap-get-values-len.php
+     *
+     * @param $entry
+     * @param $attribute
+     *
+     * @return array
+     */
+    public function getValuesLen($entry, $attribute)
+    {
+        return $this->executeFailableOperation(function () use ($entry, $attribute) {
+            return ldap_get_values_len($this->connection, $entry, $attribute);
+        });
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function setOption($option, $value)
+    {
+        return ldap_set_option($this->connection, $option, $value);
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function getOption($option, &$value = null)
+    {
+        ldap_get_option($this->connection, $option, $value);
+
+        return $value;
+    }
+
+    /**
+     * Set a callback function to do re-binds on referral chasing.
+     *
+     * @see http://php.net/manual/en/function.ldap-set-rebind-proc.php
+     *
+     * @param callable $callback
+     *
+     * @return bool
+     */
+    public function setRebindCallback(callable $callback)
+    {
+        return ldap_set_rebind_proc($this->connection, $callback);
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function startTLS()
+    {
+        return $this->executeFailableOperation(function () {
+            return ldap_start_tls($this->connection);
+        });
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function connect($hosts = [], $port = 389)
+    {
+        $this->bound = false;
+
+        $this->host = $this->makeConnectionUris($hosts, $port);
+
+        return $this->connection = $this->executeFailableOperation(function () {
+            return ldap_connect($this->host);
+        });
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function close()
+    {
+        $result = is_resource($this->connection) ? @ldap_close($this->connection) : false;
+
+        $this->connection = null;
+        $this->bound = false;
+        $this->host = null;
+
+        return $result;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function search($dn, $filter, array $fields, $onlyAttributes = false, $size = 0, $time = 0, $deref = null, $serverControls = [])
+    {
+        return $this->executeFailableOperation(function () use (
+            $dn,
+            $filter,
+            $fields,
+            $onlyAttributes,
+            $size,
+            $time,
+            $deref,
+            $serverControls
+        ) {
+            return empty($serverControls)
+                ? ldap_search($this->connection, $dn, $filter, $fields, $onlyAttributes, $size, $time, $deref)
+                : ldap_search($this->connection, $dn, $filter, $fields, $onlyAttributes, $size, $time, $deref, $serverControls);
+        });
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function listing($dn, $filter, array $fields, $onlyAttributes = false, $size = 0, $time = 0, $deref = null, $serverControls = [])
+    {
+        return $this->executeFailableOperation(function () use (
+            $dn,
+            $filter,
+            $fields,
+            $onlyAttributes,
+            $size,
+            $time,
+            $deref,
+            $serverControls
+        ) {
+            return empty($serverControls)
+                ? ldap_list($this->connection, $dn, $filter, $fields, $onlyAttributes, $size, $time, $deref)
+                : ldap_list($this->connection, $dn, $filter, $fields, $onlyAttributes, $size, $time, $deref, $serverControls);
+        });
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function read($dn, $filter, array $fields, $onlyAttributes = false, $size = 0, $time = 0, $deref = null, $serverControls = [])
+    {
+        return $this->executeFailableOperation(function () use (
+            $dn,
+            $filter,
+            $fields,
+            $onlyAttributes,
+            $size,
+            $time,
+            $deref,
+            $serverControls
+        ) {
+            return empty($serverControls)
+                ? ldap_read($this->connection, $dn, $filter, $fields, $onlyAttributes, $size, $time, $deref)
+                : ldap_read($this->connection, $dn, $filter, $fields, $onlyAttributes, $size, $time, $deref, $serverControls);
+        });
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function parseResult($result, &$errorCode, &$dn, &$errorMessage, &$referrals, &$serverControls = [])
+    {
+        return $this->executeFailableOperation(function () use (
+            $result,
+            &$errorCode,
+            &$dn,
+            &$errorMessage,
+            &$referrals,
+            &$serverControls
+        ) {
+            return empty($serverControls)
+                ? ldap_parse_result($this->connection, $result, $errorCode, $dn, $errorMessage, $referrals)
+                : ldap_parse_result($this->connection, $result, $errorCode, $dn, $errorMessage, $referrals, $serverControls);
+        });
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function bind($username, $password)
+    {
+        return $this->bound = $this->executeFailableOperation(function () use ($username, $password) {
+            return ldap_bind($this->connection, $username, html_entity_decode($password));
+        });
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function add($dn, array $entry)
+    {
+        return $this->executeFailableOperation(function () use ($dn, $entry) {
+            return ldap_add($this->connection, $dn, $entry);
+        });
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function delete($dn)
+    {
+        return $this->executeFailableOperation(function () use ($dn) {
+            return ldap_delete($this->connection, $dn);
+        });
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function rename($dn, $newRdn, $newParent, $deleteOldRdn = false)
+    {
+        return $this->executeFailableOperation(function () use (
+            $dn,
+            $newRdn,
+            $newParent,
+            $deleteOldRdn
+        ) {
+            return ldap_rename($this->connection, $dn, $newRdn, $newParent, $deleteOldRdn);
+        });
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function modify($dn, array $entry)
+    {
+        return $this->executeFailableOperation(function () use ($dn, $entry) {
+            return ldap_modify($this->connection, $dn, $entry);
+        });
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function modifyBatch($dn, array $values)
+    {
+        return $this->executeFailableOperation(function () use ($dn, $values) {
+            return ldap_modify_batch($this->connection, $dn, $values);
+        });
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function modAdd($dn, array $entry)
+    {
+        return $this->executeFailableOperation(function () use ($dn, $entry) {
+            return ldap_mod_add($this->connection, $dn, $entry);
+        });
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function modReplace($dn, array $entry)
+    {
+        return $this->executeFailableOperation(function () use ($dn, $entry) {
+            return ldap_mod_replace($this->connection, $dn, $entry);
+        });
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function modDelete($dn, array $entry)
+    {
+        return $this->executeFailableOperation(function () use ($dn, $entry) {
+            return ldap_mod_del($this->connection, $dn, $entry);
+        });
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function controlPagedResult($pageSize = 1000, $isCritical = false, $cookie = '')
+    {
+        return $this->executeFailableOperation(function () use ($pageSize, $isCritical, $cookie) {
+            return ldap_control_paged_result($this->connection, $pageSize, $isCritical, $cookie);
+        });
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function controlPagedResultResponse($result, &$cookie, &$estimated = null)
+    {
+        return $this->executeFailableOperation(function () use ($result, &$cookie, &$estimated) {
+            return ldap_control_paged_result_response($this->connection, $result, $cookie, $estimated);
+        });
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function freeResult($result)
+    {
+        return ldap_free_result($result);
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function errNo()
+    {
+        return $this->connection ? ldap_errno($this->connection) : null;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function err2Str($number)
+    {
+        return ldap_err2str($number);
+    }
+
+    /**
+     * Returns the extended error hex code of the last command.
+     *
+     * @return string|null
+     */
+    public function getExtendedErrorHex()
+    {
+        if (preg_match("/(?<=data\s).*?(?=,)/", $this->getExtendedError(), $code)) {
+            return $code[0];
+        }
+    }
+
+    /**
+     * Returns the extended error code of the last command.
+     *
+     * @return bool|string
+     */
+    public function getExtendedErrorCode()
+    {
+        return $this->extractDiagnosticCode($this->getExtendedError());
+    }
+
+    /**
+     * Extract the diagnostic code from the message.
+     *
+     * @param string $message
+     *
+     * @return string|bool
+     */
+    public function extractDiagnosticCode($message)
+    {
+        preg_match('/^([\da-fA-F]+):/', $message, $matches);
+
+        return isset($matches[1]) ? $matches[1] : false;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function getDiagnosticMessage()
+    {
+        $this->getOption(LDAP_OPT_ERROR_STRING, $message);
+
+        return $message;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/LdapInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/LdapInterface.php
new file mode 100644
index 0000000..a1773ad
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/LdapInterface.php
@@ -0,0 +1,517 @@
+<?php
+
+namespace LdapRecord;
+
+interface LdapInterface
+{
+    /**
+     * The SSL LDAP protocol string.
+     *
+     * @var string
+     */
+    const PROTOCOL_SSL = 'ldaps://';
+
+    /**
+     * The standard LDAP protocol string.
+     *
+     * @var string
+     */
+    const PROTOCOL = 'ldap://';
+
+    /**
+     * The LDAP SSL port number.
+     *
+     * @var string
+     */
+    const PORT_SSL = 636;
+
+    /**
+     * The standard LDAP port number.
+     *
+     * @var string
+     */
+    const PORT = 389;
+
+    /**
+     * Various useful server control OID's.
+     *
+     * @see https://ldap.com/ldap-oid-reference-guide/
+     * @see http://msdn.microsoft.com/en-us/library/cc223359.aspx
+     */
+    const OID_SERVER_START_TLS = '1.3.6.1.4.1.1466.20037';
+    const OID_SERVER_PAGED_RESULTS = '1.2.840.113556.1.4.319';
+    const OID_SERVER_SHOW_DELETED = '1.2.840.113556.1.4.417';
+    const OID_SERVER_SORT = '1.2.840.113556.1.4.473';
+    const OID_SERVER_CROSSDOM_MOVE_TARGET = '1.2.840.113556.1.4.521';
+    const OID_SERVER_NOTIFICATION = '1.2.840.113556.1.4.528';
+    const OID_SERVER_EXTENDED_DN = '1.2.840.113556.1.4.529';
+    const OID_SERVER_LAZY_COMMIT = '1.2.840.113556.1.4.619';
+    const OID_SERVER_SD_FLAGS = '1.2.840.113556.1.4.801';
+    const OID_SERVER_TREE_DELETE = '1.2.840.113556.1.4.805';
+    const OID_SERVER_DIRSYNC = '1.2.840.113556.1.4.841';
+    const OID_SERVER_VERIFY_NAME = '1.2.840.113556.1.4.1338';
+    const OID_SERVER_DOMAIN_SCOPE = '1.2.840.113556.1.4.1339';
+    const OID_SERVER_SEARCH_OPTIONS = '1.2.840.113556.1.4.1340';
+    const OID_SERVER_PERMISSIVE_MODIFY = '1.2.840.113556.1.4.1413';
+    const OID_SERVER_ASQ = '1.2.840.113556.1.4.1504';
+    const OID_SERVER_FAST_BIND = '1.2.840.113556.1.4.1781';
+    const OID_SERVER_CONTROL_VLVREQUEST = '2.16.840.1.113730.3.4.9';
+
+    /**
+     * Query OID's.
+     *
+     * @see https://ldapwiki.com/wiki/LDAP_MATCHING_RULE_IN_CHAIN
+     */
+    const OID_MATCHING_RULE_IN_CHAIN = '1.2.840.113556.1.4.1941';
+
+    /**
+     * Set the current connection to use SSL.
+     *
+     * @param bool $enabled
+     *
+     * @return $this
+     */
+    public function ssl();
+
+    /**
+     * Determine if the current connection instance is using SSL.
+     *
+     * @return bool
+     */
+    public function isUsingSSL();
+
+    /**
+     * Set the current connection to use TLS.
+     *
+     * @param bool $enabled
+     *
+     * @return $this
+     */
+    public function tls();
+
+    /**
+     * Determine if the current connection instance is using TLS.
+     *
+     * @return bool
+     */
+    public function isUsingTLS();
+
+    /**
+     * Determine if the connection is bound.
+     *
+     * @return bool
+     */
+    public function isBound();
+
+    /**
+     * Determine if the connection has been created.
+     *
+     * @return bool
+     */
+    public function isConnected();
+
+    /**
+     * Determine the connection is able to modify passwords.
+     *
+     * @return bool
+     */
+    public function canChangePasswords();
+
+    /**
+     * Returns the full LDAP host URL.
+     *
+     * Ex: ldap://192.168.1.1:386
+     *
+     * @return string|null
+     */
+    public function getHost();
+
+    /**
+     * Get the underlying connection resource.
+     *
+     * @return resource|null
+     */
+    public function getConnection();
+
+    /**
+     * Retrieve the entries from a search result.
+     *
+     * @see http://php.net/manual/en/function.ldap-get-entries.php
+     *
+     * @param resource $searchResults
+     *
+     * @return array
+     */
+    public function getEntries($searchResults);
+
+    /**
+     * Retrieve the last error on the current connection.
+     *
+     * @see http://php.net/manual/en/function.ldap-error.php
+     *
+     * @return string|null
+     */
+    public function getLastError();
+
+    /**
+     * Return detailed information about an error.
+     *
+     * Returns false when there was a successful last request.
+     *
+     * Returns DetailedError when there was an error.
+     *
+     * @return DetailedError|null
+     */
+    public function getDetailedError();
+
+    /**
+     * Set an option on the current connection.
+     *
+     * @see http://php.net/manual/en/function.ldap-set-option.php
+     *
+     * @param int   $option
+     * @param mixed $value
+     *
+     * @return bool
+     */
+    public function setOption($option, $value);
+
+    /**
+     * Set options on the current connection.
+     *
+     * @param array $options
+     *
+     * @return void
+     */
+    public function setOptions(array $options = []);
+
+    /**
+     * Get the value for the LDAP option.
+     *
+     * @see https://www.php.net/manual/en/function.ldap-get-option.php
+     *
+     * @param int   $option
+     * @param mixed $value
+     *
+     * @return mixed
+     */
+    public function getOption($option, &$value = null);
+
+    /**
+     * Starts a connection using TLS.
+     *
+     * @see http://php.net/manual/en/function.ldap-start-tls.php
+     *
+     * @throws LdapRecordException
+     *
+     * @return bool
+     */
+    public function startTLS();
+
+    /**
+     * Connects to the specified hostname using the specified port.
+     *
+     * @see http://php.net/manual/en/function.ldap-start-tls.php
+     *
+     * @param string|array $hosts
+     * @param int          $port
+     *
+     * @return resource|false
+     */
+    public function connect($hosts = [], $port = 389);
+
+    /**
+     * Closes the current connection.
+     *
+     * Returns false if no connection is present.
+     *
+     * @see http://php.net/manual/en/function.ldap-close.php
+     *
+     * @return bool
+     */
+    public function close();
+
+    /**
+     * Performs a search on the current connection.
+     *
+     * @see http://php.net/manual/en/function.ldap-search.php
+     *
+     * @param string $dn
+     * @param string $filter
+     * @param array  $fields
+     * @param bool   $onlyAttributes
+     * @param int    $size
+     * @param int    $time
+     * @param int    $deref
+     * @param array  $serverControls
+     *
+     * @return resource
+     */
+    public function search($dn, $filter, array $fields, $onlyAttributes = false, $size = 0, $time = 0, $deref = null, $serverControls = []);
+
+    /**
+     * Performs a single level search on the current connection.
+     *
+     * @see http://php.net/manual/en/function.ldap-list.php
+     *
+     * @param string $dn
+     * @param string $filter
+     * @param array  $fields
+     * @param bool   $onlyAttributes
+     * @param int    $size
+     * @param int    $time
+     * @param int    $deref
+     * @param array  $serverControls
+     *
+     * @return resource
+     */
+    public function listing($dn, $filter, array $fields, $onlyAttributes = false, $size = 0, $time = 0, $deref = null, $serverControls = []);
+
+    /**
+     * Reads an entry on the current connection.
+     *
+     * @see http://php.net/manual/en/function.ldap-read.php
+     *
+     * @param string $dn
+     * @param string $filter
+     * @param array  $fields
+     * @param bool   $onlyAttributes
+     * @param int    $size
+     * @param int    $time
+     * @param int    $deref
+     * @param array  $serverControls
+     *
+     * @return resource
+     */
+    public function read($dn, $filter, array $fields, $onlyAttributes = false, $size = 0, $time = 0, $deref = null, $serverControls = []);
+
+    /**
+     * Extract information from an LDAP result.
+     *
+     * @see https://www.php.net/manual/en/function.ldap-parse-result.php
+     *
+     * @param resource $result
+     * @param int      $errorCode
+     * @param string   $dn
+     * @param string   $errorMessage
+     * @param array    $referrals
+     * @param array    $serverControls
+     *
+     * @return bool
+     */
+    public function parseResult($result, &$errorCode, &$dn, &$errorMessage, &$referrals, &$serverControls = []);
+
+    /**
+     * Binds to the current connection using the specified username and password.
+     * If sasl is true, the current connection is bound using SASL.
+     *
+     * @see http://php.net/manual/en/function.ldap-bind.php
+     *
+     * @param string $username
+     * @param string $password
+     *
+     * @throws LdapRecordException
+     *
+     * @return bool
+     */
+    public function bind($username, $password);
+
+    /**
+     * Adds an entry to the current connection.
+     *
+     * @see http://php.net/manual/en/function.ldap-add.php
+     *
+     * @param string $dn
+     * @param array  $entry
+     *
+     * @throws LdapRecordException
+     *
+     * @return bool
+     */
+    public function add($dn, array $entry);
+
+    /**
+     * Deletes an entry on the current connection.
+     *
+     * @see http://php.net/manual/en/function.ldap-delete.php
+     *
+     * @param string $dn
+     *
+     * @throws LdapRecordException
+     *
+     * @return bool
+     */
+    public function delete($dn);
+
+    /**
+     * Modify the name of an entry on the current connection.
+     *
+     * @see http://php.net/manual/en/function.ldap-rename.php
+     *
+     * @param string $dn
+     * @param string $newRdn
+     * @param string $newParent
+     * @param bool   $deleteOldRdn
+     *
+     * @throws LdapRecordException
+     *
+     * @return bool
+     */
+    public function rename($dn, $newRdn, $newParent, $deleteOldRdn = false);
+
+    /**
+     * Modifies an existing entry on the current connection.
+     *
+     * @see http://php.net/manual/en/function.ldap-modify.php
+     *
+     * @param string $dn
+     * @param array  $entry
+     *
+     * @throws LdapRecordException
+     *
+     * @return bool
+     */
+    public function modify($dn, array $entry);
+
+    /**
+     * Batch modifies an existing entry on the current connection.
+     *
+     * @see http://php.net/manual/en/function.ldap-modify-batch.php
+     *
+     * @param string $dn
+     * @param array  $values
+     *
+     * @throws LdapRecordException
+     *
+     * @return bool
+     */
+    public function modifyBatch($dn, array $values);
+
+    /**
+     * Add attribute values to current attributes.
+     *
+     * @see http://php.net/manual/en/function.ldap-mod-add.php
+     *
+     * @param string $dn
+     * @param array  $entry
+     *
+     * @throws LdapRecordException
+     *
+     * @return bool
+     */
+    public function modAdd($dn, array $entry);
+
+    /**
+     * Replaces attribute values with new ones.
+     *
+     * @see http://php.net/manual/en/function.ldap-mod-replace.php
+     *
+     * @param string $dn
+     * @param array  $entry
+     *
+     * @throws LdapRecordException
+     *
+     * @return bool
+     */
+    public function modReplace($dn, array $entry);
+
+    /**
+     * Delete attribute values from current attributes.
+     *
+     * @see http://php.net/manual/en/function.ldap-mod-del.php
+     *
+     * @param string $dn
+     * @param array  $entry
+     *
+     * @throws LdapRecordException
+     *
+     * @return bool
+     */
+    public function modDelete($dn, array $entry);
+
+    /**
+     * Send LDAP pagination control.
+     *
+     * @see http://php.net/manual/en/function.ldap-control-paged-result.php
+     *
+     * @param int    $pageSize
+     * @param bool   $isCritical
+     * @param string $cookie
+     *
+     * @return bool
+     */
+    public function controlPagedResult($pageSize = 1000, $isCritical = false, $cookie = '');
+
+    /**
+     * Retrieve the LDAP pagination cookie.
+     *
+     * @see http://php.net/manual/en/function.ldap-control-paged-result-response.php
+     *
+     * @param resource $result
+     * @param string   $cookie
+     *
+     * @return bool
+     */
+    public function controlPagedResultResponse($result, &$cookie);
+
+    /**
+     * Frees up the memory allocated internally to store the result.
+     *
+     * @see https://www.php.net/manual/en/function.ldap-free-result.php
+     *
+     * @param resource $result
+     *
+     * @return bool
+     */
+    public function freeResult($result);
+
+    /**
+     * Returns the error number of the last command executed.
+     *
+     * @see http://php.net/manual/en/function.ldap-errno.php
+     *
+     * @return int|null
+     */
+    public function errNo();
+
+    /**
+     * Returns the error string of the specified error number.
+     *
+     * @see http://php.net/manual/en/function.ldap-err2str.php
+     *
+     * @param int $number
+     *
+     * @return string
+     */
+    public function err2Str($number);
+
+    /**
+     * Returns the LDAP protocol to utilize for the current connection.
+     *
+     * @return string
+     */
+    public function getProtocol();
+
+    /**
+     * Returns the extended error code of the last command.
+     *
+     * @return string
+     */
+    public function getExtendedError();
+
+    /**
+     * Return the diagnostic Message.
+     *
+     * @return string
+     */
+    public function getDiagnosticMessage();
+
+    /**
+     * Determine if the current PHP version supports server controls.
+     *
+     * @deprecated since v2.5.0
+     *
+     * @return bool
+     */
+    public function supportsServerControlsInMethods();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/LdapRecordException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/LdapRecordException.php
new file mode 100644
index 0000000..b2439bf
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/LdapRecordException.php
@@ -0,0 +1,52 @@
+<?php
+
+namespace LdapRecord;
+
+use Exception;
+
+class LdapRecordException extends Exception
+{
+    /**
+     * The detailed LDAP error (if available).
+     *
+     * @var DetailedError|null
+     */
+    protected $detailedError;
+
+    /**
+     * Create a new Bind Exception with a detailed connection error.
+     *
+     * @param Exception          $e
+     * @param DetailedError|null $error
+     *
+     * @return $this
+     */
+    public static function withDetailedError(Exception $e, DetailedError $error = null)
+    {
+        return (new static($e->getMessage(), $e->getCode(), $e))->setDetailedError($error);
+    }
+
+    /**
+     * Set the detailed error.
+     *
+     * @param DetailedError|null $error
+     *
+     * @return $this
+     */
+    public function setDetailedError(DetailedError $error = null)
+    {
+        $this->detailedError = $error;
+
+        return $this;
+    }
+
+    /**
+     * Returns the detailed error.
+     *
+     * @return DetailedError|null
+     */
+    public function getDetailedError()
+    {
+        return $this->detailedError;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Computer.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Computer.php
new file mode 100644
index 0000000..72db0a0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Computer.php
@@ -0,0 +1,55 @@
+<?php
+
+namespace LdapRecord\Models\ActiveDirectory;
+
+use LdapRecord\Models\ActiveDirectory\Concerns\HasPrimaryGroup;
+
+class Computer extends Entry
+{
+    use HasPrimaryGroup;
+
+    /**
+     * The object classes of the LDAP model.
+     *
+     * @var array
+     */
+    public static $objectClasses = [
+        'top',
+        'person',
+        'organizationalperson',
+        'user',
+        'computer',
+    ];
+
+    /**
+     * The groups relationship.
+     *
+     * Retrieves groups that the current computer is apart of.
+     *
+     * @return \LdapRecord\Models\Relations\HasMany
+     */
+    public function groups()
+    {
+        return $this->hasMany(Group::class, 'member')->with($this->primaryGroup());
+    }
+
+    /**
+     * The primary group relationship.
+     *
+     * @return Relations\HasOnePrimaryGroup
+     */
+    public function primaryGroup()
+    {
+        return $this->hasOnePrimaryGroup(Group::class, 'primarygroupid');
+    }
+
+    /**
+     * The managed by relationship.
+     *
+     * @return \LdapRecord\Models\Relations\HasOne
+     */
+    public function managedBy()
+    {
+        return $this->hasOne([Contact::class, Group::class, User::class], 'managedby');
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Concerns/HasPrimaryGroup.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Concerns/HasPrimaryGroup.php
new file mode 100644
index 0000000..97fd3a1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Concerns/HasPrimaryGroup.php
@@ -0,0 +1,22 @@
+<?php
+
+namespace LdapRecord\Models\ActiveDirectory\Concerns;
+
+use LdapRecord\Models\ActiveDirectory\Relations\HasOnePrimaryGroup;
+
+trait HasPrimaryGroup
+{
+    /**
+     * Returns a new has one primary group relationship.
+     *
+     * @param mixed  $related
+     * @param string $relationKey
+     * @param string $foreignKey
+     *
+     * @return HasOnePrimaryGroup
+     */
+    public function hasOnePrimaryGroup($related, $relationKey, $foreignKey = 'primarygroupid')
+    {
+        return new HasOnePrimaryGroup($this->newQuery(), $this, $related, $relationKey, $foreignKey);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Contact.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Contact.php
new file mode 100644
index 0000000..52c451f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Contact.php
@@ -0,0 +1,30 @@
+<?php
+
+namespace LdapRecord\Models\ActiveDirectory;
+
+class Contact extends Entry
+{
+    /**
+     * The object classes of the LDAP model.
+     *
+     * @var array
+     */
+    public static $objectClasses = [
+        'top',
+        'person',
+        'organizationalperson',
+        'contact',
+    ];
+
+    /**
+     * The groups relationship.
+     *
+     * Retrieves groups that the current contact is apart of.
+     *
+     * @return \LdapRecord\Models\Relations\HasMany
+     */
+    public function groups()
+    {
+        return $this->hasMany(Group::class, 'member');
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Container.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Container.php
new file mode 100644
index 0000000..1636cf3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Container.php
@@ -0,0 +1,16 @@
+<?php
+
+namespace LdapRecord\Models\ActiveDirectory;
+
+class Container extends Entry
+{
+    /**
+     * The object classes of the LDAP model.
+     *
+     * @var array
+     */
+    public static $objectClasses = [
+        'top',
+        'container',
+    ];
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Entry.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Entry.php
new file mode 100644
index 0000000..79a9d63
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Entry.php
@@ -0,0 +1,167 @@
+<?php
+
+namespace LdapRecord\Models\ActiveDirectory;
+
+use InvalidArgumentException;
+use LdapRecord\Connection;
+use LdapRecord\Models\Attributes\Sid;
+use LdapRecord\Models\Entry as BaseEntry;
+use LdapRecord\Models\Events\Updated;
+use LdapRecord\Models\Types\ActiveDirectory;
+use LdapRecord\Query\Model\ActiveDirectoryBuilder;
+
+/** @mixin ActiveDirectoryBuilder */
+class Entry extends BaseEntry implements ActiveDirectory
+{
+    /**
+     * The default attributes that should be mutated to dates.
+     *
+     * @var array
+     */
+    protected $defaultDates = [
+        'whenchanged' => 'windows',
+        'whencreated' => 'windows',
+        'dscorepropagationdata' => 'windows',
+    ];
+
+    /**
+     * The attribute key that contains the Object SID.
+     *
+     * @var string
+     */
+    protected $sidKey = 'objectsid';
+
+    /**
+     * @inheritdoc
+     */
+    public function getObjectSidKey()
+    {
+        return $this->sidKey;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function getObjectSid()
+    {
+        return $this->getFirstAttribute($this->sidKey);
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function getConvertedSid()
+    {
+        try {
+            return (string) new Sid($this->getObjectSid());
+        } catch (InvalidArgumentException $e) {
+            return;
+        }
+    }
+
+    /**
+     * Create a new query builder.
+     *
+     * @param Connection $connection
+     *
+     * @return ActiveDirectoryBuilder
+     */
+    public function newQueryBuilder(Connection $connection)
+    {
+        return new ActiveDirectoryBuilder($connection);
+    }
+
+    /**
+     * Determine if the object is deleted.
+     *
+     * @return bool
+     */
+    public function isDeleted()
+    {
+        return strtoupper($this->getFirstAttribute('isDeleted')) === 'TRUE';
+    }
+
+    /**
+     * Restore a deleted object.
+     *
+     * @param string|null $newParentDn
+     *
+     * @throws \LdapRecord\LdapRecordException
+     *
+     * @return bool
+     */
+    public function restore($newParentDn = null)
+    {
+        if (! $this->isDeleted()) {
+            return false;
+        }
+
+        $root = $newParentDn ?? $this->getDefaultRestoreLocation();
+        $rdn = explode('\0A', $this->getDn(), 2)[0];
+        $newDn = implode(',', [$rdn, $root]);
+
+        // We will initialize a model listener for the "updated" event to set
+        // the models distinguished name so all attributes are synchronized
+        // properly after the model has been successfully restored.
+        $this->listenForModelEvent(Updated::class, function (Updated $event) use ($newDn) {
+            if ($this->is($event->getModel())) {
+                $this->setDn($newDn);
+            }
+        });
+
+        $this->save([
+            'isDeleted' => null,
+            'distinguishedName' => $newDn,
+        ]);
+    }
+
+    /**
+     * Get the RootDSE (AD schema) record from the directory.
+     *
+     * @param string|null $connection
+     *
+     * @throws \LdapRecord\Models\ModelNotFoundException
+     *
+     * @return static
+     */
+    public static function getRootDse($connection = null)
+    {
+        return static::on($connection ?? (new static())->getConnectionName())
+            ->in(null)
+            ->read()
+            ->whereHas('objectclass')
+            ->firstOrFail();
+    }
+
+    /**
+     * Get the objects restore location.
+     *
+     * @return string
+     */
+    protected function getDefaultRestoreLocation()
+    {
+        return $this->getFirstAttribute('lastKnownParent') ?? $this->getParentDn($this->getParentDn($this->getDn()));
+    }
+
+    /**
+     * Converts attributes for JSON serialization.
+     *
+     * @param array $attributes
+     *
+     * @return array
+     */
+    protected function convertAttributesForJson(array $attributes = [])
+    {
+        $attributes = parent::convertAttributesForJson($attributes);
+
+        if ($this->hasAttribute($this->sidKey)) {
+            // If the model has a SID set, we need to convert it due to it being in
+            // binary. Otherwise we will receive a JSON serialization exception.
+            return array_replace($attributes, [
+                $this->sidKey => [$this->getConvertedSid()],
+            ]);
+        }
+
+        return $attributes;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/ExchangeDatabase.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/ExchangeDatabase.php
new file mode 100644
index 0000000..77abbbc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/ExchangeDatabase.php
@@ -0,0 +1,21 @@
+<?php
+
+namespace LdapRecord\Models\ActiveDirectory;
+
+class ExchangeDatabase extends Entry
+{
+    /**
+     * @inheritdoc
+     */
+    public static $objectClasses = ['msExchMDB'];
+
+    /**
+     * @inheritdoc
+     */
+    public static function boot()
+    {
+        parent::boot();
+
+        static::addGlobalScope(new Scopes\InConfigurationContext());
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/ExchangeServer.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/ExchangeServer.php
new file mode 100644
index 0000000..d304876
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/ExchangeServer.php
@@ -0,0 +1,22 @@
+<?php
+
+namespace LdapRecord\Models\ActiveDirectory;
+
+class ExchangeServer extends Entry
+{
+    /**
+     * @inheritdoc
+     */
+    public static $objectClasses = ['msExchExchangeServer'];
+
+    /**
+     * @inheritdoc
+     */
+    public static function boot()
+    {
+        parent::boot();
+
+        static::addGlobalScope(new Scopes\HasServerRoleAttribute());
+        static::addGlobalScope(new Scopes\InConfigurationContext());
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/ForeignSecurityPrincipal.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/ForeignSecurityPrincipal.php
new file mode 100644
index 0000000..25287ae
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/ForeignSecurityPrincipal.php
@@ -0,0 +1,25 @@
+<?php
+
+namespace LdapRecord\Models\ActiveDirectory;
+
+class ForeignSecurityPrincipal extends Entry
+{
+    /**
+     * The object classes of the LDAP model.
+     *
+     * @var array
+     */
+    public static $objectClasses = ['foreignsecurityprincipal'];
+
+    /**
+     * The groups relationship.
+     *
+     * Retrieves groups that the current security principal is apart of.
+     *
+     * @return \LdapRecord\Models\Relations\HasMany
+     */
+    public function groups()
+    {
+        return $this->hasMany(Group::class, 'member');
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Group.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Group.php
new file mode 100644
index 0000000..6076f2f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Group.php
@@ -0,0 +1,70 @@
+<?php
+
+namespace LdapRecord\Models\ActiveDirectory;
+
+class Group extends Entry
+{
+    /**
+     * The object classes of the LDAP model.
+     *
+     * @var array
+     */
+    public static $objectClasses = [
+        'top',
+        'group',
+    ];
+
+    /**
+     * The groups relationship.
+     *
+     * Retrieves groups that the current group is apart of.
+     *
+     * @return \LdapRecord\Models\Relations\HasMany
+     */
+    public function groups()
+    {
+        return $this->hasMany(static::class, 'member');
+    }
+
+    /**
+     * The members relationship.
+     *
+     * Retrieves members that are apart of the group.
+     *
+     * @return \LdapRecord\Models\Relations\HasMany
+     */
+    public function members()
+    {
+        return $this->hasMany([
+            static::class, User::class, Contact::class, Computer::class,
+        ], 'memberof')
+            ->using($this, 'member')
+            ->with($this->primaryGroupMembers());
+    }
+
+    /**
+     * The primary group members relationship.
+     *
+     * Retrieves members that are apart the primary group.
+     *
+     * @return \LdapRecord\Models\Relations\HasMany
+     */
+    public function primaryGroupMembers()
+    {
+        return $this->hasMany([
+            static::class, User::class, Contact::class, Computer::class,
+        ], 'primarygroupid', 'rid');
+    }
+
+    /**
+     * Get the RID of the group.
+     *
+     * @return array
+     */
+    public function getRidAttribute()
+    {
+        $objectSidComponents = explode('-', $this->getConvertedSid());
+
+        return [end($objectSidComponents)];
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/OrganizationalUnit.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/OrganizationalUnit.php
new file mode 100644
index 0000000..80aae9f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/OrganizationalUnit.php
@@ -0,0 +1,26 @@
+<?php
+
+namespace LdapRecord\Models\ActiveDirectory;
+
+class OrganizationalUnit extends Entry
+{
+    /**
+     * The object classes of the LDAP model.
+     *
+     * @var array
+     */
+    public static $objectClasses = [
+        'top',
+        'organizationalunit',
+    ];
+
+    /**
+     * Get the creatable RDN attribute name.
+     *
+     * @return string
+     */
+    public function getCreatableRdnAttribute()
+    {
+        return 'ou';
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Printer.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Printer.php
new file mode 100644
index 0000000..df74216
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Printer.php
@@ -0,0 +1,13 @@
+<?php
+
+namespace LdapRecord\Models\ActiveDirectory;
+
+class Printer extends Entry
+{
+    /**
+     * The object classes of the LDAP model.
+     *
+     * @var array
+     */
+    public static $objectClasses = ['printqueue'];
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Relations/HasOnePrimaryGroup.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Relations/HasOnePrimaryGroup.php
new file mode 100644
index 0000000..540ec77
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Relations/HasOnePrimaryGroup.php
@@ -0,0 +1,53 @@
+<?php
+
+namespace LdapRecord\Models\ActiveDirectory\Relations;
+
+use LdapRecord\Models\Model;
+use LdapRecord\Models\Relations\HasOne;
+
+class HasOnePrimaryGroup extends HasOne
+{
+    /**
+     * Get the foreign model by the given value.
+     *
+     * @param string $value
+     *
+     * @return Model|null
+     */
+    protected function getForeignModelByValue($value)
+    {
+        return $this->query->findBySid(
+            $this->getParentModelObjectSid()
+        );
+    }
+
+    /**
+     * Get the foreign value from the given model.
+     *
+     * Retrieves the last RID from the models Object SID.
+     *
+     * @param Model $model
+     *
+     * @return string
+     */
+    protected function getForeignValueFromModel(Model $model)
+    {
+        $objectSidComponents = explode('-', $model->getConvertedSid());
+
+        return end($objectSidComponents);
+    }
+
+    /**
+     * Get the parent relationship models converted object sid.
+     *
+     * @return string
+     */
+    protected function getParentModelObjectSid()
+    {
+        return preg_replace(
+            '/\d+$/',
+            $this->parent->getFirstAttribute($this->relationKey),
+            $this->parent->getConvertedSid()
+        );
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Scopes/HasServerRoleAttribute.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Scopes/HasServerRoleAttribute.php
new file mode 100644
index 0000000..cd08648
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Scopes/HasServerRoleAttribute.php
@@ -0,0 +1,23 @@
+<?php
+
+namespace LdapRecord\Models\ActiveDirectory\Scopes;
+
+use LdapRecord\Models\Model;
+use LdapRecord\Models\Scope;
+use LdapRecord\Query\Model\Builder;
+
+class HasServerRoleAttribute implements Scope
+{
+    /**
+     * Includes condition of having a serverRole attribute.
+     *
+     * @param Builder $query
+     * @param Model   $model
+     *
+     * @return void
+     */
+    public function apply(Builder $query, Model $model)
+    {
+        $query->whereHas('serverRole');
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Scopes/InConfigurationContext.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Scopes/InConfigurationContext.php
new file mode 100644
index 0000000..2b1a177
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Scopes/InConfigurationContext.php
@@ -0,0 +1,41 @@
+<?php
+
+namespace LdapRecord\Models\ActiveDirectory\Scopes;
+
+use LdapRecord\Models\ActiveDirectory\Entry;
+use LdapRecord\Models\Model;
+use LdapRecord\Models\Scope;
+use LdapRecord\Query\Model\Builder;
+
+class InConfigurationContext implements Scope
+{
+    /**
+     * Refines the base dn to be inside the configuration context.
+     *
+     * @param Builder $query
+     * @param Model   $model
+     *
+     * @throws \LdapRecord\Models\ModelNotFoundException
+     *
+     * @return void
+     */
+    public function apply(Builder $query, Model $model)
+    {
+        $query->in($this->getConfigurationNamingContext($model));
+    }
+
+    /**
+     * Get the LDAP server configuration naming context distinguished name.
+     *
+     * @param Model $model
+     *
+     * @throws \LdapRecord\Models\ModelNotFoundException
+     *
+     * @return mixed
+     */
+    protected function getConfigurationNamingContext(Model $model)
+    {
+        return Entry::getRootDse($model->getConnectionName())
+            ->getFirstAttribute('configurationNamingContext');
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Scopes/RejectComputerObjectClass.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Scopes/RejectComputerObjectClass.php
new file mode 100644
index 0000000..a616db1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/Scopes/RejectComputerObjectClass.php
@@ -0,0 +1,23 @@
+<?php
+
+namespace LdapRecord\Models\ActiveDirectory\Scopes;
+
+use LdapRecord\Models\Model;
+use LdapRecord\Models\Scope;
+use LdapRecord\Query\Model\Builder;
+
+class RejectComputerObjectClass implements Scope
+{
+    /**
+     * Prevent computer objects from being included in results.
+     *
+     * @param Builder $query
+     * @param Model   $model
+     *
+     * @return void
+     */
+    public function apply(Builder $query, Model $model)
+    {
+        $query->where('objectclass', '!=', 'computer');
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/User.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/User.php
new file mode 100644
index 0000000..84dd74b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ActiveDirectory/User.php
@@ -0,0 +1,120 @@
+<?php
+
+namespace LdapRecord\Models\ActiveDirectory;
+
+use Illuminate\Contracts\Auth\Authenticatable;
+use LdapRecord\Models\ActiveDirectory\Concerns\HasPrimaryGroup;
+use LdapRecord\Models\ActiveDirectory\Scopes\RejectComputerObjectClass;
+use LdapRecord\Models\Concerns\CanAuthenticate;
+use LdapRecord\Models\Concerns\HasPassword;
+use LdapRecord\Query\Model\Builder;
+
+class User extends Entry implements Authenticatable
+{
+    use HasPassword;
+    use HasPrimaryGroup;
+    use CanAuthenticate;
+
+    /**
+     * The password's attribute name.
+     *
+     * @var string
+     */
+    protected $passwordAttribute = 'unicodepwd';
+
+    /**
+     * The password's hash method.
+     *
+     * @var string
+     */
+    protected $passwordHashMethod = 'encode';
+
+    /**
+     * The object classes of the LDAP model.
+     *
+     * @var array
+     */
+    public static $objectClasses = [
+        'top',
+        'person',
+        'organizationalperson',
+        'user',
+    ];
+
+    /**
+     * The attributes that should be mutated to dates.
+     *
+     * @var array
+     */
+    protected $dates = [
+        'lastlogon' => 'windows-int',
+        'lastlogoff' => 'windows-int',
+        'pwdlastset' => 'windows-int',
+        'lockouttime' => 'windows-int',
+        'accountexpires' => 'windows-int',
+        'badpasswordtime' => 'windows-int',
+        'lastlogontimestamp' => 'windows-int',
+    ];
+
+    /**
+     * @inheritdoc
+     */
+    protected static function boot()
+    {
+        parent::boot();
+
+        // Here we will add a global scope to reject the 'computer' object
+        // class. This is needed due to computer objects containing all
+        // of the ActiveDirectory 'user' object classes. Without
+        // this scope, they would be included in results.
+        static::addGlobalScope(new RejectComputerObjectClass());
+    }
+
+    /**
+     * The groups relationship.
+     *
+     * Retrieves groups that the user is apart of.
+     *
+     * @return \LdapRecord\Models\Relations\HasMany
+     */
+    public function groups()
+    {
+        return $this->hasMany(Group::class, 'member')->with($this->primaryGroup());
+    }
+
+    /**
+     * The manager relationship.
+     *
+     * Retrieves the manager of the user.
+     *
+     * @return \LdapRecord\Models\Relations\HasOne
+     */
+    public function manager()
+    {
+        return $this->hasOne(static::class, 'manager');
+    }
+
+    /**
+     * The primary group relationship of the current user.
+     *
+     * Retrieves the primary group the user is apart of.
+     *
+     * @return \LdapRecord\Models\Relations\HasOne
+     */
+    public function primaryGroup()
+    {
+        return $this->hasOnePrimaryGroup(Group::class, 'primarygroupid');
+    }
+
+    /**
+     * Scopes the query to exchange mailbox users.
+     *
+     * @param Builder $query
+     *
+     * @return Builder
+     */
+    public function scopeWhereHasMailbox(Builder $query)
+    {
+        return $query->whereHas('msExchMailboxGuid');
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/AccountControl.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/AccountControl.php
new file mode 100644
index 0000000..9c6240b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/AccountControl.php
@@ -0,0 +1,502 @@
+<?php
+
+namespace LdapRecord\Models\Attributes;
+
+use ReflectionClass;
+
+class AccountControl
+{
+    const SCRIPT = 1;
+
+    const ACCOUNTDISABLE = 2;
+
+    const HOMEDIR_REQUIRED = 8;
+
+    const LOCKOUT = 16;
+
+    const PASSWD_NOTREQD = 32;
+
+    const PASSWD_CANT_CHANGE = 64;
+
+    const ENCRYPTED_TEXT_PWD_ALLOWED = 128;
+
+    const TEMP_DUPLICATE_ACCOUNT = 256;
+
+    const NORMAL_ACCOUNT = 512;
+
+    const INTERDOMAIN_TRUST_ACCOUNT = 2048;
+
+    const WORKSTATION_TRUST_ACCOUNT = 4096;
+
+    const SERVER_TRUST_ACCOUNT = 8192;
+
+    const DONT_EXPIRE_PASSWORD = 65536;
+
+    const MNS_LOGON_ACCOUNT = 131072;
+
+    const SMARTCARD_REQUIRED = 262144;
+
+    const TRUSTED_FOR_DELEGATION = 524288;
+
+    const NOT_DELEGATED = 1048576;
+
+    const USE_DES_KEY_ONLY = 2097152;
+
+    const DONT_REQ_PREAUTH = 4194304;
+
+    const PASSWORD_EXPIRED = 8388608;
+
+    const TRUSTED_TO_AUTH_FOR_DELEGATION = 16777216;
+
+    const PARTIAL_SECRETS_ACCOUNT = 67108864;
+
+    /**
+     * The account control flag values.
+     *
+     * @var array
+     */
+    protected $values = [];
+
+    /**
+     * Constructor.
+     *
+     * @param int $flag
+     */
+    public function __construct($flag = null)
+    {
+        if (! is_null($flag)) {
+            $this->apply($flag);
+        }
+    }
+
+    /**
+     * Get the value when casted to string.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return (string) $this->getValue();
+    }
+
+    /**
+     * Get the value when casted to int.
+     *
+     * @return int
+     */
+    public function __toInt()
+    {
+        return $this->getValue();
+    }
+
+    /**
+     * Add the flag to the account control values.
+     *
+     * @param int $flag
+     *
+     * @return $this
+     */
+    public function add($flag)
+    {
+        // Use the value as a key so if the same value
+        // is used, it will always be overwritten
+        $this->values[$flag] = $flag;
+
+        return $this;
+    }
+
+    /**
+     * Remove the flag from the account control.
+     *
+     * @param int $flag
+     *
+     * @return $this
+     */
+    public function remove($flag)
+    {
+        unset($this->values[$flag]);
+
+        return $this;
+    }
+
+    /**
+     * Extract and apply the flag.
+     *
+     * @param int $flag
+     *
+     * @return void
+     */
+    public function apply($flag)
+    {
+        $this->setValues($this->extractFlags($flag));
+    }
+
+    /**
+     * Determine if the account control contains the given UAC flag(s).
+     *
+     * @param int $flag
+     *
+     * @return bool
+     */
+    public function has($flag)
+    {
+        // Here we will extract the given flag into an array
+        // of possible flags. This will allow us to see if
+        // our AccountControl object contains any of them.
+        $flagsUsed = array_intersect(
+            $this->extractFlags($flag),
+            $this->values
+        );
+
+        return in_array($flag, $flagsUsed);
+    }
+
+    /**
+     * Determine if the account control does not contain the given UAC flag(s).
+     *
+     * @param int $flag
+     *
+     * @return bool
+     */
+    public function doesntHave($flag)
+    {
+        return ! $this->has($flag);
+    }
+
+    /**
+     * Generate an LDAP filter based on the current value.
+     *
+     * @return string
+     */
+    public function filter()
+    {
+        return sprintf('(UserAccountControl:1.2.840.113556.1.4.803:=%s)', $this->getValue());
+    }
+
+    /**
+     * The logon script will be run.
+     *
+     * @return $this
+     */
+    public function runLoginScript()
+    {
+        return $this->add(static::SCRIPT);
+    }
+
+    /**
+     * The user account is locked.
+     *
+     * @return $this
+     */
+    public function accountIsLocked()
+    {
+        return $this->add(static::LOCKOUT);
+    }
+
+    /**
+     * The user account is disabled.
+     *
+     * @return $this
+     */
+    public function accountIsDisabled()
+    {
+        return $this->add(static::ACCOUNTDISABLE);
+    }
+
+    /**
+     * This is an account for users whose primary account is in another domain.
+     *
+     * This account provides user access to this domain, but not to any domain that
+     * trusts this domain. This is sometimes referred to as a local user account.
+     *
+     * @return $this
+     */
+    public function accountIsTemporary()
+    {
+        return $this->add(static::TEMP_DUPLICATE_ACCOUNT);
+    }
+
+    /**
+     * This is a default account type that represents a typical user.
+     *
+     * @return $this
+     */
+    public function accountIsNormal()
+    {
+        return $this->add(static::NORMAL_ACCOUNT);
+    }
+
+    /**
+     * This is a permit to trust an account for a system domain that trusts other domains.
+     *
+     * @return $this
+     */
+    public function accountIsForInterdomain()
+    {
+        return $this->add(static::INTERDOMAIN_TRUST_ACCOUNT);
+    }
+
+    /**
+     * This is a computer account for a computer that is running Microsoft
+     * Windows NT 4.0 Workstation, Microsoft Windows NT 4.0 Server, Microsoft
+     * Windows 2000 Professional, or Windows 2000 Server and is a member of this domain.
+     *
+     * @return $this
+     */
+    public function accountIsForWorkstation()
+    {
+        return $this->add(static::WORKSTATION_TRUST_ACCOUNT);
+    }
+
+    /**
+     * This is a computer account for a domain controller that is a member of this domain.
+     *
+     * @return $this
+     */
+    public function accountIsForServer()
+    {
+        return $this->add(static::SERVER_TRUST_ACCOUNT);
+    }
+
+    /**
+     * This is an MNS logon account.
+     *
+     * @return $this
+     */
+    public function accountIsMnsLogon()
+    {
+        return $this->add(static::MNS_LOGON_ACCOUNT);
+    }
+
+    /**
+     * (Windows 2000/Windows Server 2003) This account does
+     * not require Kerberos pre-authentication for logging on.
+     *
+     * @return $this
+     */
+    public function accountDoesNotRequirePreAuth()
+    {
+        return $this->add(static::DONT_REQ_PREAUTH);
+    }
+
+    /**
+     * When this flag is set, it forces the user to log on by using a smart card.
+     *
+     * @return $this
+     */
+    public function accountRequiresSmartCard()
+    {
+        return $this->add(static::SMARTCARD_REQUIRED);
+    }
+
+    /**
+     * (Windows Server 2008/Windows Server 2008 R2) The account is a read-only domain controller (RODC).
+     *
+     * This is a security-sensitive setting. Removing this setting from an RODC compromises security on that server.
+     *
+     * @return $this
+     */
+    public function accountIsReadOnly()
+    {
+        return $this->add(static::PARTIAL_SECRETS_ACCOUNT);
+    }
+
+    /**
+     * The home folder is required.
+     *
+     * @return $this
+     */
+    public function homeFolderIsRequired()
+    {
+        return $this->add(static::HOMEDIR_REQUIRED);
+    }
+
+    /**
+     * No password is required.
+     *
+     * @return $this
+     */
+    public function passwordIsNotRequired()
+    {
+        return $this->add(static::PASSWD_NOTREQD);
+    }
+
+    /**
+     * The user cannot change the password. This is a permission on the user's object.
+     *
+     * For information about how to programmatically set this permission, visit the following link:
+     *
+     * @see http://msdn2.microsoft.com/en-us/library/aa746398.aspx
+     *
+     * @return $this
+     */
+    public function passwordCannotBeChanged()
+    {
+        return $this->add(static::PASSWD_CANT_CHANGE);
+    }
+
+    /**
+     * Represents the password, which should never expire on the account.
+     *
+     * @return $this
+     */
+    public function passwordDoesNotExpire()
+    {
+        return $this->add(static::DONT_EXPIRE_PASSWORD);
+    }
+
+    /**
+     * (Windows 2000/Windows Server 2003) The user's password has expired.
+     *
+     * @return $this
+     */
+    public function passwordIsExpired()
+    {
+        return $this->add(static::PASSWORD_EXPIRED);
+    }
+
+    /**
+     * The user can send an encrypted password.
+     *
+     * @return $this
+     */
+    public function allowEncryptedTextPassword()
+    {
+        return $this->add(static::ENCRYPTED_TEXT_PWD_ALLOWED);
+    }
+
+    /**
+     * When this flag is set, the service account (the user or computer account)
+     * under which a service runs is trusted for Kerberos delegation.
+     *
+     * Any such service can impersonate a client requesting the service.
+     *
+     * To enable a service for Kerberos delegation, you must set this
+     * flag on the userAccountControl property of the service account.
+     *
+     * @return $this
+     */
+    public function trustForDelegation()
+    {
+        return $this->add(static::TRUSTED_FOR_DELEGATION);
+    }
+
+    /**
+     * (Windows 2000/Windows Server 2003) The account is enabled for delegation.
+     *
+     * This is a security-sensitive setting. Accounts that have this option enabled
+     * should be tightly controlled. This setting lets a service that runs under the
+     * account assume a client's identity and authenticate as that user to other remote
+     * servers on the network.
+     *
+     * @return $this
+     */
+    public function trustToAuthForDelegation()
+    {
+        return $this->add(static::TRUSTED_TO_AUTH_FOR_DELEGATION);
+    }
+
+    /**
+     * When this flag is set, the security context of the user is not delegated to a
+     * service even if the service account is set as trusted for Kerberos delegation.
+     *
+     * @return $this
+     */
+    public function doNotTrustForDelegation()
+    {
+        return $this->add(static::NOT_DELEGATED);
+    }
+
+    /**
+     * (Windows 2000/Windows Server 2003) Restrict this principal to
+     * use only Data Encryption Standard (DES) encryption types for keys.
+     *
+     * @return $this
+     */
+    public function useDesKeyOnly()
+    {
+        return $this->add(static::USE_DES_KEY_ONLY);
+    }
+
+    /**
+     * Get the account control value.
+     *
+     * @return int
+     */
+    public function getValue()
+    {
+        return array_sum($this->values);
+    }
+
+    /**
+     * Get the account control flag values.
+     *
+     * @return array
+     */
+    public function getValues()
+    {
+        return $this->values;
+    }
+
+    /**
+     * Set the account control values.
+     *
+     * @param array $flags
+     *
+     * @return void
+     */
+    public function setValues(array $flags)
+    {
+        $this->values = $flags;
+    }
+
+    /**
+     * Get all flags that are currently applied to the value.
+     *
+     * @return array
+     */
+    public function getAppliedFlags()
+    {
+        $flags = $this->getAllFlags();
+
+        $exists = [];
+
+        foreach ($flags as $name => $flag) {
+            if ($this->has($flag)) {
+                $exists[$name] = $flag;
+            }
+        }
+
+        return $exists;
+    }
+
+    /**
+     * Get all possible account control flags.
+     *
+     * @return array
+     */
+    public function getAllFlags()
+    {
+        return (new ReflectionClass(__CLASS__))->getConstants();
+    }
+
+    /**
+     * Extracts the given flag into an array of flags used.
+     *
+     * @param int $flag
+     *
+     * @return array
+     */
+    public function extractFlags($flag)
+    {
+        $flags = [];
+
+        for ($i = 0; $i <= 26; $i++) {
+            if ((int) $flag & (1 << $i)) {
+                $flags[1 << $i] = 1 << $i;
+            }
+        }
+
+        return $flags;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/DistinguishedName.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/DistinguishedName.php
new file mode 100644
index 0000000..c092173
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/DistinguishedName.php
@@ -0,0 +1,419 @@
+<?php
+
+namespace LdapRecord\Models\Attributes;
+
+use LdapRecord\EscapesValues;
+use LdapRecord\Support\Arr;
+
+class DistinguishedName
+{
+    use EscapesValues;
+
+    /**
+     * The underlying raw value.
+     *
+     * @var string|null
+     */
+    protected $value;
+
+    /**
+     * Constructor.
+     *
+     * @param string|null $value
+     */
+    public function __construct($value = null)
+    {
+        $this->value = trim($value);
+    }
+
+    /**
+     * Get the distinguished name value.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return (string) $this->value;
+    }
+
+    /**
+     * Alias of the "build" method.
+     *
+     * @param string|null $value
+     *
+     * @return DistinguishedNameBuilder
+     */
+    public static function of($value = null)
+    {
+        return static::build($value);
+    }
+
+    /**
+     * Get a new DN builder object from the given DN.
+     *
+     * @param string|null $value
+     *
+     * @return DistinguishedNameBuilder
+     */
+    public static function build($value = null)
+    {
+        return new DistinguishedNameBuilder($value);
+    }
+
+    /**
+     * Make a new distinguished name instance.
+     *
+     * @param string|null $value
+     *
+     * @return static
+     */
+    public static function make($value = null)
+    {
+        return new static($value);
+    }
+
+    /**
+     * Explode a distinguished name into relative distinguished names.
+     *
+     * @param string $dn
+     *
+     * @return array
+     */
+    public static function explode($dn)
+    {
+        $dn = ldap_explode_dn($dn, $withoutAttributes = false);
+
+        if (! is_array($dn)) {
+            return [];
+        }
+
+        if (! array_key_exists('count', $dn)) {
+            return [];
+        }
+
+        unset($dn['count']);
+
+        return $dn;
+    }
+
+    /**
+     * Un-escapes a hexadecimal string into its original string representation.
+     *
+     * @param string $value
+     *
+     * @return string
+     */
+    public static function unescape($value)
+    {
+        return preg_replace_callback('/\\\([0-9A-Fa-f]{2})/', function ($matches) {
+            return chr(hexdec($matches[1]));
+        }, $value);
+    }
+
+    /**
+     * Explode the RDN into an attribute and value.
+     *
+     * @param string $rdn
+     *
+     * @return array
+     */
+    public static function explodeRdn($rdn)
+    {
+        return explode('=', $rdn, $limit = 2);
+    }
+
+    /**
+     * Implode the component attribute and value into an RDN.
+     *
+     * @param string $rdn
+     *
+     * @return string
+     */
+    public static function makeRdn(array $component)
+    {
+        return implode('=', $component);
+    }
+
+    /**
+     * Get the underlying value.
+     *
+     * @return string|null
+     */
+    public function get()
+    {
+        return $this->value;
+    }
+
+    /**
+     * Set the underlying value.
+     *
+     * @param string|null $value
+     *
+     * @return $this
+     */
+    public function set($value)
+    {
+        $this->value = $value;
+
+        return $this;
+    }
+
+    /**
+     * Get the distinguished name values without attributes.
+     *
+     * @return array
+     */
+    public function values()
+    {
+        $values = [];
+
+        foreach ($this->multi() as [, $value]) {
+            $values[] = static::unescape($value);
+        }
+
+        return $values;
+    }
+
+    /**
+     * Get the distinguished name attributes without values.
+     *
+     * @return array
+     */
+    public function attributes()
+    {
+        $attributes = [];
+
+        foreach ($this->multi() as [$attribute]) {
+            $attributes[] = $attribute;
+        }
+
+        return $attributes;
+    }
+
+    /**
+     * Get the distinguished name components with attributes.
+     *
+     * @return array
+     */
+    public function components()
+    {
+        $components = [];
+
+        foreach ($this->multi() as [$attribute, $value]) {
+            // When a distinguished name is exploded, the values are automatically
+            // escaped. This cannot be opted out of. Here we will unescape
+            // the attribute value, then re-escape it to its original
+            // representation from the server using the "dn" flag.
+            $value = $this->escape(static::unescape($value))->dn();
+
+            $components[] = static::makeRdn([$attribute, $value]);
+        }
+
+        return $components;
+    }
+
+    /**
+     * Convert the distinguished name into an associative array.
+     *
+     * @return array
+     */
+    public function assoc()
+    {
+        $map = [];
+
+        foreach ($this->multi() as [$attribute, $value]) {
+            $attribute = $this->normalize($attribute);
+
+            array_key_exists($attribute, $map)
+                ? $map[$attribute][] = $value
+                : $map[$attribute] = [$value];
+        }
+
+        return $map;
+    }
+
+    /**
+     * Split the RDNs into a multi-dimensional array.
+     *
+     * @return array
+     */
+    public function multi()
+    {
+        return array_map(function ($rdn) {
+            return static::explodeRdn($rdn);
+        }, $this->rdns());
+    }
+
+    /**
+     * Split the distinguished name into an array of unescaped RDN's.
+     *
+     * @return array
+     */
+    public function rdns()
+    {
+        return static::explode($this->value);
+    }
+
+    /**
+     * Get the first RDNs value.
+     *
+     * @return string|null
+     */
+    public function name()
+    {
+        return Arr::first($this->values());
+    }
+
+    /**
+     * Get the first RDNs attribute.
+     *
+     * @return string|null
+     */
+    public function head()
+    {
+        return Arr::first($this->attributes());
+    }
+
+    /**
+     * Get the relative distinguished name.
+     *
+     * @return string|null
+     */
+    public function relative()
+    {
+        return Arr::first($this->components());
+    }
+
+    /**
+     * Alias of relative().
+     *
+     * Get the first RDN from the distinguished name.
+     *
+     * @return string|null
+     */
+    public function first()
+    {
+        return $this->relative();
+    }
+
+    /**
+     * Get the parent distinguished name.
+     *
+     * @return string|null
+     */
+    public function parent()
+    {
+        $components = $this->components();
+
+        array_shift($components);
+
+        return implode(',', $components) ?: null;
+    }
+
+    /**
+     * Determine if the current distinguished name is a parent of the given child.
+     *
+     * @param DistinguishedName $child
+     *
+     * @return bool
+     */
+    public function isParentOf(self $child)
+    {
+        return $child->isChildOf($this);
+    }
+
+    /**
+     * Determine if the current distinguished name is a child of the given parent.
+     *
+     * @param DistinguishedName $parent
+     *
+     * @return bool
+     */
+    public function isChildOf(self $parent)
+    {
+        if (
+            empty($components = $this->components()) ||
+            empty($parentComponents = $parent->components())
+        ) {
+            return false;
+        }
+
+        array_shift($components);
+
+        return $this->compare($components, $parentComponents);
+    }
+
+    /**
+     * Determine if the current distinguished name is an ancestor of the descendant.
+     *
+     * @param DistinguishedName $descendant
+     *
+     * @return bool
+     */
+    public function isAncestorOf(self $descendant)
+    {
+        return $descendant->isDescendantOf($this);
+    }
+
+    /**
+     * Determine if the current distinguished name is a descendant of the ancestor.
+     *
+     * @param DistinguishedName $ancestor
+     *
+     * @return bool
+     */
+    public function isDescendantOf(self $ancestor)
+    {
+        if (
+            empty($components = $this->components()) ||
+            empty($ancestorComponents = $ancestor->components())
+        ) {
+            return false;
+        }
+
+        if (! $length = count($components) - count($ancestorComponents)) {
+            return false;
+        }
+
+        array_splice($components, $offset = 0, $length);
+
+        return $this->compare($components, $ancestorComponents);
+    }
+
+    /**
+     * Compare whether the two distinguished name values are equal.
+     *
+     * @param array $values
+     * @param array $other
+     *
+     * @return bool
+     */
+    protected function compare(array $values, array $other)
+    {
+        return $this->recase($values) == $this->recase($other);
+    }
+
+    /**
+     * Recase the array values.
+     *
+     * @param array $values
+     *
+     * @return array
+     */
+    protected function recase(array $values)
+    {
+        return array_map([$this, 'normalize'], $values);
+    }
+
+    /**
+     * Normalize the string value.
+     *
+     * @param string $value
+     *
+     * @return string
+     */
+    protected function normalize($value)
+    {
+        return strtolower($value);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/DistinguishedNameBuilder.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/DistinguishedNameBuilder.php
new file mode 100644
index 0000000..83dfe71
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/DistinguishedNameBuilder.php
@@ -0,0 +1,251 @@
+<?php
+
+namespace LdapRecord\Models\Attributes;
+
+use LdapRecord\EscapesValues;
+use LdapRecord\Support\Arr;
+
+class DistinguishedNameBuilder
+{
+    use EscapesValues;
+
+    /**
+     * The components of the DN.
+     *
+     * @var array
+     */
+    protected $components = [];
+
+    /**
+     * Whether to output the DN in reverse.
+     *
+     * @var bool
+     */
+    protected $reverse = false;
+
+    /**
+     * Constructor.
+     *
+     * @param string|null $value
+     */
+    public function __construct($dn = null)
+    {
+        $this->components = array_map(function ($rdn) {
+            return DistinguishedName::explodeRdn($rdn);
+        }, DistinguishedName::make($dn)->components());
+    }
+
+    /**
+     * Forward missing method calls onto the Distinguished Name object.
+     *
+     * @param string $method
+     * @param array  $args
+     *
+     * @return mixed
+     */
+    public function __call($method, $args)
+    {
+        return $this->get()->{$method}(...$args);
+    }
+
+    /**
+     * Get the distinguished name value.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return (string) $this->get();
+    }
+
+    /**
+     * Prepend an RDN onto the DN.
+     *
+     * @param string|array $attribute
+     * @param string|null  $value
+     *
+     * @return $this
+     */
+    public function prepend($attribute, $value = null)
+    {
+        array_unshift(
+            $this->components,
+            ...$this->componentize($attribute, $value)
+        );
+
+        return $this;
+    }
+
+    /**
+     * Append an RDN onto the DN.
+     *
+     * @param string|array $attribute
+     * @param string|null  $value
+     *
+     * @return $this
+     */
+    public function append($attribute, $value = null)
+    {
+        array_push(
+            $this->components,
+            ...$this->componentize($attribute, $value)
+        );
+
+        return $this;
+    }
+
+    /**
+     * Componentize the attribute and value.
+     *
+     * @param string|array $attribute
+     * @param string|null  $value
+     *
+     * @return array
+     */
+    protected function componentize($attribute, $value = null)
+    {
+        // Here we will make the assumption that an array of
+        // RDN's have been given if the value is null, and
+        // attempt to break them into their components.
+        if (is_null($value)) {
+            $attributes = Arr::wrap($attribute);
+
+            $components = array_map([$this, 'makeComponentizedArray'], $attributes);
+        } else {
+            $components = [[$attribute, $value]];
+        }
+
+        return array_map(function ($component) {
+            [$attribute, $value] = $component;
+
+            return $this->makeAppendableComponent($attribute, $value);
+        }, $components);
+    }
+
+    /**
+     * Make a componentized array by exploding the value if it's a string.
+     *
+     * @param string $value
+     *
+     * @return array
+     */
+    protected function makeComponentizedArray($value)
+    {
+        return is_array($value) ? $value : DistinguishedName::explodeRdn($value);
+    }
+
+    /**
+     * Make an appendable component array from the attribute and value.
+     *
+     * @param string|array $attribute
+     * @param string|null  $value
+     *
+     * @return array
+     */
+    protected function makeAppendableComponent($attribute, $value = null)
+    {
+        return [trim($attribute), $this->escape(trim($value))->dn()];
+    }
+
+    /**
+     * Pop an RDN off of the end of the DN.
+     *
+     * @param int   $amount
+     * @param array $removed
+     *
+     * @return $this
+     */
+    public function pop($amount = 1, &$removed = [])
+    {
+        $removed = array_map(function ($component) {
+            return DistinguishedName::makeRdn($component);
+        }, array_splice($this->components, -$amount, $amount));
+
+        return $this;
+    }
+
+    /**
+     * Shift an RDN off of the beginning of the DN.
+     *
+     * @param int   $amount
+     * @param array $removed
+     *
+     * @return $this
+     */
+    public function shift($amount = 1, &$removed = [])
+    {
+        $removed = array_map(function ($component) {
+            return DistinguishedName::makeRdn($component);
+        }, array_splice($this->components, 0, $amount));
+
+        return $this;
+    }
+
+    /**
+     * Whether to output the DN in reverse.
+     *
+     * @return $this
+     */
+    public function reverse()
+    {
+        $this->reverse = true;
+
+        return $this;
+    }
+
+    /**
+     * Get the components of the DN.
+     *
+     * @param null|string $type
+     *
+     * @return array
+     */
+    public function components($type = null)
+    {
+        return is_null($type)
+            ? $this->components
+            : $this->componentsOfType($type);
+    }
+
+    /**
+     * Get the components of a particular type.
+     *
+     * @param string $type
+     *
+     * @return array
+     */
+    protected function componentsOfType($type)
+    {
+        $components = array_filter($this->components, function ($component) use ($type) {
+            return ([$name] = $component) && strtolower($name) === strtolower($type);
+        });
+
+        return array_values($components);
+    }
+
+    /**
+     * Get the fully qualified DN.
+     *
+     * @return DistinguishedName
+     */
+    public function get()
+    {
+        return new DistinguishedName($this->build());
+    }
+
+    /**
+     * Build the distinguished name from the components.
+     *
+     * @return $this
+     */
+    protected function build()
+    {
+        $components = $this->reverse
+            ? array_reverse($this->components)
+            : $this->components;
+
+        return implode(',', array_map(function ($component) {
+            return DistinguishedName::makeRdn($component);
+        }, $components));
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/EscapedValue.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/EscapedValue.php
new file mode 100644
index 0000000..cc04a67
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/EscapedValue.php
@@ -0,0 +1,111 @@
+<?php
+
+namespace LdapRecord\Models\Attributes;
+
+class EscapedValue
+{
+    /**
+     * The value to be escaped.
+     *
+     * @var string
+     */
+    protected $value;
+
+    /**
+     * The characters to ignore when escaping.
+     *
+     * @var string
+     */
+    protected $ignore;
+
+    /**
+     * The escape flags.
+     *
+     * @var int
+     */
+    protected $flags;
+
+    /**
+     * Constructor.
+     *
+     * @param string $value
+     * @param string $ignore
+     * @param int    $flags
+     */
+    public function __construct($value, $ignore = '', $flags = 0)
+    {
+        $this->value = $value;
+        $this->ignore = $ignore;
+        $this->flags = $flags;
+    }
+
+    /**
+     * Get the escaped value.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return (string) $this->get();
+    }
+
+    /**
+     * Get the escaped value.
+     *
+     * @return mixed
+     */
+    public function get()
+    {
+        return ldap_escape($this->value, $this->ignore, $this->flags);
+    }
+
+    /**
+     * Set the characters to exclude from being escaped.
+     *
+     * @param string $characters
+     *
+     * @return $this
+     */
+    public function ignore($characters)
+    {
+        $this->ignore = $characters;
+
+        return $this;
+    }
+
+    /**
+     * Prepare the value to be escaped for use in a distinguished name.
+     *
+     * @return $this
+     */
+    public function dn()
+    {
+        $this->flags = LDAP_ESCAPE_DN;
+
+        return $this;
+    }
+
+    /**
+     * Prepare the value to be escaped for use in a filter.
+     *
+     * @return $this
+     */
+    public function filter()
+    {
+        $this->flags = LDAP_ESCAPE_FILTER;
+
+        return $this;
+    }
+
+    /**
+     * Prepare the value to be escaped for use in a distinguished name and filter.
+     *
+     * @return $this
+     */
+    public function both()
+    {
+        $this->flags = LDAP_ESCAPE_FILTER + LDAP_ESCAPE_DN;
+
+        return $this;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/Guid.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/Guid.php
new file mode 100644
index 0000000..d139f5f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/Guid.php
@@ -0,0 +1,167 @@
+<?php
+
+namespace LdapRecord\Models\Attributes;
+
+use InvalidArgumentException;
+use LdapRecord\Utilities;
+
+class Guid
+{
+    /**
+     * The string GUID value.
+     *
+     * @var string
+     */
+    protected $value;
+
+    /**
+     * The guid structure in order by section to parse using substr().
+     *
+     * @author Chad Sikorra <Chad.Sikorra@gmail.com>
+     *
+     * @see https://github.com/ldaptools/ldaptools
+     *
+     * @var array
+     */
+    protected $guidSections = [
+        [[-26, 2], [-28, 2], [-30, 2], [-32, 2]],
+        [[-22, 2], [-24, 2]],
+        [[-18, 2], [-20, 2]],
+        [[-16, 4]],
+        [[-12, 12]],
+    ];
+
+    /**
+     * The hexadecimal octet order based on string position.
+     *
+     * @author Chad Sikorra <Chad.Sikorra@gmail.com>
+     *
+     * @see https://github.com/ldaptools/ldaptools
+     *
+     * @var array
+     */
+    protected $octetSections = [
+        [6, 4, 2, 0],
+        [10, 8],
+        [14, 12],
+        [16, 18, 20, 22, 24, 26, 28, 30],
+    ];
+
+    /**
+     * Determines if the specified GUID is valid.
+     *
+     * @param string $guid
+     *
+     * @return bool
+     */
+    public static function isValid($guid)
+    {
+        return Utilities::isValidGuid($guid);
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param mixed $value
+     *
+     * @throws InvalidArgumentException
+     */
+    public function __construct($value)
+    {
+        if (static::isValid($value)) {
+            $this->value = $value;
+        } elseif ($value = $this->binaryGuidToString($value)) {
+            $this->value = $value;
+        } else {
+            throw new InvalidArgumentException('Invalid Binary / String GUID.');
+        }
+    }
+
+    /**
+     * Returns the string value of the GUID.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return $this->getValue();
+    }
+
+    /**
+     * Returns the string value of the SID.
+     *
+     * @return string
+     */
+    public function getValue()
+    {
+        return $this->value;
+    }
+
+    /**
+     * Get the binary representation of the GUID string.
+     *
+     * @return string
+     */
+    public function getBinary()
+    {
+        return hex2bin($this->getHex());
+    }
+
+    /**
+     * Get the hexadecimal representation of the GUID string.
+     *
+     * @return string
+     */
+    public function getHex()
+    {
+        $data = '';
+
+        $guid = str_replace('-', '', $this->value);
+
+        foreach ($this->octetSections as $section) {
+            $data .= $this->parseSection($guid, $section, $octet = true);
+        }
+
+        return $data;
+    }
+
+    /**
+     * Returns the string variant of a binary GUID.
+     *
+     * @param string $binary
+     *
+     * @return string|null
+     */
+    protected function binaryGuidToString($binary)
+    {
+        return Utilities::binaryGuidToString($binary);
+    }
+
+    /**
+     * Return the specified section of the hexadecimal string.
+     *
+     * @author Chad Sikorra <Chad.Sikorra@gmail.com>
+     *
+     * @see https://github.com/ldaptools/ldaptools
+     *
+     * @param string $hex      The full hex string.
+     * @param array  $sections An array of start and length (unless octet is true, then length is always 2).
+     * @param bool   $octet    Whether this is for octet string form.
+     *
+     * @return string The concatenated sections in upper-case.
+     */
+    protected function parseSection($hex, array $sections, $octet = false)
+    {
+        $parsedString = '';
+
+        foreach ($sections as $section) {
+            $start = $octet ? $section : $section[0];
+
+            $length = $octet ? 2 : $section[1];
+
+            $parsedString .= substr($hex, $start, $length);
+        }
+
+        return $parsedString;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/MbString.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/MbString.php
new file mode 100644
index 0000000..672e60d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/MbString.php
@@ -0,0 +1,80 @@
+<?php
+
+namespace LdapRecord\Models\Attributes;
+
+class MbString
+{
+    /**
+     * Get the integer value of a specific character.
+     *
+     * @param $string
+     *
+     * @return int
+     */
+    public static function ord($string)
+    {
+        if (static::isLoaded()) {
+            $result = unpack('N', mb_convert_encoding($string, 'UCS-4BE', 'UTF-8'));
+
+            if (is_array($result)) {
+                return $result[1];
+            }
+        }
+
+        return ord($string);
+    }
+
+    /**
+     * Get the character for a specific integer value.
+     *
+     * @param $int
+     *
+     * @return string
+     */
+    public static function chr($int)
+    {
+        if (static::isLoaded()) {
+            return mb_convert_encoding(pack('n', $int), 'UTF-8', 'UTF-16BE');
+        }
+
+        return chr($int);
+    }
+
+    /**
+     * Split a string into its individual characters and return it as an array.
+     *
+     * @param string $value
+     *
+     * @return string[]
+     */
+    public static function split($value)
+    {
+        return preg_split('/(?<!^)(?!$)/u', $value);
+    }
+
+    /**
+     * Detects if the given string is UTF 8.
+     *
+     * @param $string
+     *
+     * @return string|false
+     */
+    public static function isUtf8($string)
+    {
+        if (static::isLoaded()) {
+            return mb_detect_encoding($string, 'UTF-8', $strict = true);
+        }
+
+        return $string;
+    }
+
+    /**
+     * Checks if the mbstring extension is enabled in PHP.
+     *
+     * @return bool
+     */
+    public static function isLoaded()
+    {
+        return extension_loaded('mbstring');
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/Password.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/Password.php
new file mode 100644
index 0000000..7f0b412
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/Password.php
@@ -0,0 +1,340 @@
+<?php
+
+namespace LdapRecord\Models\Attributes;
+
+use InvalidArgumentException;
+use LdapRecord\LdapRecordException;
+use ReflectionMethod;
+
+class Password
+{
+    const CRYPT_SALT_TYPE_MD5 = 1;
+    const CRYPT_SALT_TYPE_SHA256 = 5;
+    const CRYPT_SALT_TYPE_SHA512 = 6;
+
+    /**
+     * Make an encoded password for transmission over LDAP.
+     *
+     * @param string $password
+     *
+     * @return string
+     */
+    public static function encode($password)
+    {
+        return iconv('UTF-8', 'UTF-16LE', '"'.$password.'"');
+    }
+
+    /**
+     * Make a salted md5 password.
+     *
+     * @param string      $password
+     * @param null|string $salt
+     *
+     * @return string
+     */
+    public static function smd5($password, $salt = null)
+    {
+        return '{SMD5}'.static::makeHash($password, 'md5', null, $salt ?? random_bytes(4));
+    }
+
+    /**
+     * Make a salted SHA password.
+     *
+     * @param string      $password
+     * @param null|string $salt
+     *
+     * @return string
+     */
+    public static function ssha($password, $salt = null)
+    {
+        return '{SSHA}'.static::makeHash($password, 'sha1', null, $salt ?? random_bytes(4));
+    }
+
+    /**
+     * Make a salted SSHA256 password.
+     *
+     * @param string      $password
+     * @param null|string $salt
+     *
+     * @return string
+     */
+    public static function ssha256($password, $salt = null)
+    {
+        return '{SSHA256}'.static::makeHash($password, 'hash', 'sha256', $salt ?? random_bytes(4));
+    }
+
+    /**
+     * Make a salted SSHA384 password.
+     *
+     * @param string      $password
+     * @param null|string $salt
+     *
+     * @return string
+     */
+    public static function ssha384($password, $salt = null)
+    {
+        return '{SSHA384}'.static::makeHash($password, 'hash', 'sha384', $salt ?? random_bytes(4));
+    }
+
+    /**
+     * Make a salted SSHA512 password.
+     *
+     * @param string      $password
+     * @param null|string $salt
+     *
+     * @return string
+     */
+    public static function ssha512($password, $salt = null)
+    {
+        return '{SSHA512}'.static::makeHash($password, 'hash', 'sha512', $salt ?? random_bytes(4));
+    }
+
+    /**
+     * Make a non-salted SHA password.
+     *
+     * @param string $password
+     *
+     * @return string
+     */
+    public static function sha($password)
+    {
+        return '{SHA}'.static::makeHash($password, 'sha1');
+    }
+
+    /**
+     * Make a non-salted SHA256 password.
+     *
+     * @param string $password
+     *
+     * @return string
+     */
+    public static function sha256($password)
+    {
+        return '{SHA256}'.static::makeHash($password, 'hash', 'sha256');
+    }
+
+    /**
+     * Make a non-salted SHA384 password.
+     *
+     * @param string $password
+     *
+     * @return string
+     */
+    public static function sha384($password)
+    {
+        return '{SHA384}'.static::makeHash($password, 'hash', 'sha384');
+    }
+
+    /**
+     * Make a non-salted SHA512 password.
+     *
+     * @param string $password
+     *
+     * @return string
+     */
+    public static function sha512($password)
+    {
+        return '{SHA512}'.static::makeHash($password, 'hash', 'sha512');
+    }
+
+    /**
+     * Make a non-salted md5 password.
+     *
+     * @param string $password
+     *
+     * @return string
+     */
+    public static function md5($password)
+    {
+        return '{MD5}'.static::makeHash($password, 'md5');
+    }
+
+    /**
+     * Crypt password with an MD5 salt.
+     *
+     * @param string $password
+     * @param string $salt
+     *
+     * @return string
+     */
+    public static function md5Crypt($password, $salt = null)
+    {
+        return '{CRYPT}'.static::makeCrypt($password, static::CRYPT_SALT_TYPE_MD5, $salt);
+    }
+
+    /**
+     * Crypt password with a SHA256 salt.
+     *
+     * @param string $password
+     * @param string $salt
+     *
+     * @return string
+     */
+    public static function sha256Crypt($password, $salt = null)
+    {
+        return '{CRYPT}'.static::makeCrypt($password, static::CRYPT_SALT_TYPE_SHA256, $salt);
+    }
+
+    /**
+     * Crypt a password with a SHA512 salt.
+     *
+     * @param string $password
+     * @param string $salt
+     *
+     * @return string
+     */
+    public static function sha512Crypt($password, $salt = null)
+    {
+        return '{CRYPT}'.static::makeCrypt($password, static::CRYPT_SALT_TYPE_SHA512, $salt);
+    }
+
+    /**
+     * Make a new password hash.
+     *
+     * @param string      $password The password to make a hash of.
+     * @param string      $method   The hash function to use.
+     * @param string|null $algo     The algorithm to use for hashing.
+     * @param string|null $salt     The salt to append onto the hash.
+     *
+     * @return string
+     */
+    protected static function makeHash($password, $method, $algo = null, $salt = null)
+    {
+        $params = $algo ? [$algo, $password.$salt] : [$password.$salt];
+
+        return base64_encode(pack('H*', call_user_func($method, ...$params)).$salt);
+    }
+
+    /**
+     * Make a hashed password.
+     *
+     * @param string      $password
+     * @param int         $type
+     * @param null|string $salt
+     *
+     * @return string
+     */
+    protected static function makeCrypt($password, $type, $salt = null)
+    {
+        return crypt($password, $salt ?? static::makeCryptSalt($type));
+    }
+
+    /**
+     * Make a salt for the crypt() method using the given type.
+     *
+     * @param int $type
+     *
+     * @return string
+     */
+    protected static function makeCryptSalt($type)
+    {
+        [$prefix, $length] = static::makeCryptPrefixAndLength($type);
+
+        $chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
+
+        while (strlen($prefix) < $length) {
+            $prefix .= substr($chars, random_int(0, strlen($chars) - 1), 1);
+        }
+
+        return $prefix;
+    }
+
+    /**
+     * Determine the crypt prefix and length.
+     *
+     * @param int $type
+     *
+     * @throws InvalidArgumentException
+     *
+     * @return array
+     */
+    protected static function makeCryptPrefixAndLength($type)
+    {
+        switch ($type) {
+            case static::CRYPT_SALT_TYPE_MD5:
+                return ['$1$', 12];
+            case static::CRYPT_SALT_TYPE_SHA256:
+                return ['$5$', 16];
+            case static::CRYPT_SALT_TYPE_SHA512:
+                return ['$6$', 16];
+            default:
+                throw new InvalidArgumentException("Invalid crypt type [$type].");
+        }
+    }
+
+    /**
+     * Attempt to retrieve the hash method used for the password.
+     *
+     * @param string $password
+     *
+     * @return string|void
+     */
+    public static function getHashMethod($password)
+    {
+        if (! preg_match('/^\{(\w+)\}/', $password, $matches)) {
+            return;
+        }
+
+        return $matches[1];
+    }
+
+    /**
+     * Attempt to retrieve the hash method and algorithm used for the password.
+     *
+     * @param string $password
+     *
+     * @return array|void
+     */
+    public static function getHashMethodAndAlgo($password)
+    {
+        if (! preg_match('/^\{(\w+)\}\$([0-9a-z]{1})\$/', $password, $matches)) {
+            return;
+        }
+
+        return [$matches[1], $matches[2]];
+    }
+
+    /**
+     * Attempt to retrieve a salt from the encrypted password.
+     *
+     * @throws LdapRecordException
+     *
+     * @return string
+     */
+    public static function getSalt($encryptedPassword)
+    {
+        // crypt() methods.
+        if (preg_match('/^\{(\w+)\}(\$.*\$).*$/', $encryptedPassword, $matches)) {
+            return $matches[2];
+        }
+
+        // All other methods.
+        if (preg_match('/{([^}]+)}(.*)/', $encryptedPassword, $matches)) {
+            return substr(base64_decode($matches[2]), -4);
+        }
+
+        throw new LdapRecordException('Could not extract salt from encrypted password.');
+    }
+
+    /**
+     * Determine if the hash method requires a salt to be given.
+     *
+     * @param string $method
+     *
+     * @throws \ReflectionException
+     *
+     * @return bool
+     */
+    public static function hashMethodRequiresSalt($method): bool
+    {
+        $parameters = (new ReflectionMethod(static::class, $method))->getParameters();
+
+        foreach ($parameters as $parameter) {
+            if ($parameter->name === 'salt') {
+                return true;
+            }
+        }
+
+        return false;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/Sid.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/Sid.php
new file mode 100644
index 0000000..4ec46ea
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/Sid.php
@@ -0,0 +1,101 @@
+<?php
+
+namespace LdapRecord\Models\Attributes;
+
+use InvalidArgumentException;
+use LdapRecord\Utilities;
+
+class Sid
+{
+    /**
+     * The string SID value.
+     *
+     * @var string
+     */
+    protected $value;
+
+    /**
+     * Determines if the specified SID is valid.
+     *
+     * @param string $sid
+     *
+     * @return bool
+     */
+    public static function isValid($sid)
+    {
+        return Utilities::isValidSid($sid);
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param mixed $value
+     *
+     * @throws InvalidArgumentException
+     */
+    public function __construct($value)
+    {
+        if (static::isValid($value)) {
+            $this->value = $value;
+        } elseif ($value = $this->binarySidToString($value)) {
+            $this->value = $value;
+        } else {
+            throw new InvalidArgumentException('Invalid Binary / String SID.');
+        }
+    }
+
+    /**
+     * Returns the string value of the SID.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return $this->getValue();
+    }
+
+    /**
+     * Returns the string value of the SID.
+     *
+     * @return string
+     */
+    public function getValue()
+    {
+        return $this->value;
+    }
+
+    /**
+     * Returns the binary variant of the SID.
+     *
+     * @return string
+     */
+    public function getBinary()
+    {
+        $sid = explode('-', ltrim($this->value, 'S-'));
+
+        $level = (int) array_shift($sid);
+
+        $authority = (int) array_shift($sid);
+
+        $subAuthorities = array_map('intval', $sid);
+
+        $params = array_merge(
+            ['C2xxNV*', $level, count($subAuthorities), $authority],
+            $subAuthorities
+        );
+
+        return call_user_func_array('pack', $params);
+    }
+
+    /**
+     * Returns the string variant of a binary SID.
+     *
+     * @param string $binary
+     *
+     * @return string|null
+     */
+    protected function binarySidToString($binary)
+    {
+        return Utilities::binarySidToString($binary);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/TSProperty.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/TSProperty.php
new file mode 100644
index 0000000..ad56aa1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/TSProperty.php
@@ -0,0 +1,396 @@
+<?php
+
+namespace LdapRecord\Models\Attributes;
+
+class TSProperty
+{
+    /**
+     * Nibble control values. The first value for each is if the nibble is <= 9, otherwise the second value is used.
+     */
+    const NIBBLE_CONTROL = [
+        'X' => ['001011', '011010'],
+        'Y' => ['001110', '011010'],
+    ];
+
+    /**
+     * The nibble header.
+     */
+    const NIBBLE_HEADER = '1110';
+
+    /**
+     * Conversion factor needed for time values in the TSPropertyArray (stored in microseconds).
+     */
+    const TIME_CONVERSION = 60 * 1000;
+
+    /**
+     * A simple map to help determine how the property needs to be decoded/encoded from/to its binary value.
+     *
+     * There are some names that are simple repeats but have 'W' at the end. Not sure as to what that signifies. I
+     * cannot find any information on them in Microsoft documentation. However, their values appear to stay in sync with
+     * their non 'W' counterparts. But not doing so when manipulating the data manually does not seem to affect anything.
+     * This probably needs more investigation.
+     *
+     * @var array
+     */
+    protected $propTypes = [
+        'string' => [
+            'CtxWFHomeDir',
+            'CtxWFHomeDirW',
+            'CtxWFHomeDirDrive',
+            'CtxWFHomeDirDriveW',
+            'CtxInitialProgram',
+            'CtxInitialProgramW',
+            'CtxWFProfilePath',
+            'CtxWFProfilePathW',
+            'CtxWorkDirectory',
+            'CtxWorkDirectoryW',
+            'CtxCallbackNumber',
+        ],
+        'time' => [
+            'CtxMaxDisconnectionTime',
+            'CtxMaxConnectionTime',
+            'CtxMaxIdleTime',
+        ],
+        'int' => [
+            'CtxCfgFlags1',
+            'CtxCfgPresent',
+            'CtxKeyboardLayout',
+            'CtxMinEncryptionLevel',
+            'CtxNWLogonServer',
+            'CtxShadow',
+        ],
+    ];
+
+    /**
+     * The property name.
+     *
+     * @var string
+     */
+    protected $name;
+
+    /**
+     * The property value.
+     *
+     * @var string|int
+     */
+    protected $value;
+
+    /**
+     * The property value type.
+     *
+     * @var int
+     */
+    protected $valueType = 1;
+
+    /**
+     * Pass binary TSProperty data to construct its object representation.
+     *
+     * @param string|null $value
+     */
+    public function __construct($value = null)
+    {
+        if ($value) {
+            $this->decode(bin2hex($value));
+        }
+    }
+
+    /**
+     * Set the name for the TSProperty.
+     *
+     * @param string $name
+     *
+     * @return TSProperty
+     */
+    public function setName($name)
+    {
+        $this->name = $name;
+
+        return $this;
+    }
+
+    /**
+     * Get the name for the TSProperty.
+     *
+     * @return string
+     */
+    public function getName()
+    {
+        return $this->name;
+    }
+
+    /**
+     * Set the value for the TSProperty.
+     *
+     * @param string|int $value
+     *
+     * @return TSProperty
+     */
+    public function setValue($value)
+    {
+        $this->value = $value;
+
+        return $this;
+    }
+
+    /**
+     * Get the value for the TSProperty.
+     *
+     * @return string|int
+     */
+    public function getValue()
+    {
+        return $this->value;
+    }
+
+    /**
+     * Convert the TSProperty name/value back to its binary
+     * representation for the userParameters blob.
+     *
+     * @return string
+     */
+    public function toBinary()
+    {
+        $name = bin2hex($this->name);
+
+        $binValue = $this->getEncodedValueForProp($this->name, $this->value);
+
+        $valueLen = strlen(bin2hex($binValue)) / 3;
+
+        $binary = hex2bin(
+            $this->dec2hex(strlen($name))
+            .$this->dec2hex($valueLen)
+            .$this->dec2hex($this->valueType)
+            .$name
+        );
+
+        return $binary.$binValue;
+    }
+
+    /**
+     * Given a TSProperty blob, decode the name/value/type/etc.
+     *
+     * @param string $tsProperty
+     */
+    protected function decode($tsProperty)
+    {
+        $nameLength = hexdec(substr($tsProperty, 0, 2));
+
+        // 1 data byte is 3 encoded bytes
+        $valueLength = hexdec(substr($tsProperty, 2, 2)) * 3;
+
+        $this->valueType = hexdec(substr($tsProperty, 4, 2));
+        $this->name = pack('H*', substr($tsProperty, 6, $nameLength));
+        $this->value = $this->getDecodedValueForProp($this->name, substr($tsProperty, 6 + $nameLength, $valueLength));
+    }
+
+    /**
+     * Based on the property name/value in question, get its encoded form.
+     *
+     * @param string     $propName
+     * @param string|int $propValue
+     *
+     * @return string
+     */
+    protected function getEncodedValueForProp($propName, $propValue)
+    {
+        if (in_array($propName, $this->propTypes['string'])) {
+            // Simple strings are null terminated. Unsure if this is
+            // needed or simply a product of how ADUC does stuff?
+            $value = $this->encodePropValue($propValue."\0", true);
+        } elseif (in_array($propName, $this->propTypes['time'])) {
+            // Needs to be in microseconds (assuming it is in minute format)...
+            $value = $this->encodePropValue($propValue * self::TIME_CONVERSION);
+        } else {
+            $value = $this->encodePropValue($propValue);
+        }
+
+        return $value;
+    }
+
+    /**
+     * Based on the property name in question, get its actual value from the binary blob value.
+     *
+     * @param string $propName
+     * @param string $propValue
+     *
+     * @return string|int
+     */
+    protected function getDecodedValueForProp($propName, $propValue)
+    {
+        if (in_array($propName, $this->propTypes['string'])) {
+            // Strip away null terminators. I think this should
+            // be desired, otherwise it just ends in confusion.
+            $value = str_replace("\0", '', $this->decodePropValue($propValue, true));
+        } elseif (in_array($propName, $this->propTypes['time'])) {
+            // Convert from microseconds to minutes (how ADUC displays
+            // it anyway, and seems the most practical).
+            $value = hexdec($this->decodePropValue($propValue)) / self::TIME_CONVERSION;
+        } elseif (in_array($propName, $this->propTypes['int'])) {
+            $value = hexdec($this->decodePropValue($propValue));
+        } else {
+            $value = $this->decodePropValue($propValue);
+        }
+
+        return $value;
+    }
+
+    /**
+     * Decode the property by inspecting the nibbles of each blob, checking
+     * the control, and adding up the results into a final value.
+     *
+     * @param string $hex
+     * @param bool   $string Whether or not this is simple string data.
+     *
+     * @return string
+     */
+    protected function decodePropValue($hex, $string = false)
+    {
+        $decodePropValue = '';
+
+        $blobs = str_split($hex, 6);
+
+        foreach ($blobs as $blob) {
+            $bin = decbin(hexdec($blob));
+
+            $controlY = substr($bin, 4, 6);
+            $nibbleY = substr($bin, 10, 4);
+            $controlX = substr($bin, 14, 6);
+            $nibbleX = substr($bin, 20, 4);
+
+            $byte = $this->nibbleControl($nibbleX, $controlX).$this->nibbleControl($nibbleY, $controlY);
+
+            if ($string) {
+                $decodePropValue .= MbString::chr(bindec($byte));
+            } else {
+                $decodePropValue = $this->dec2hex(bindec($byte)).$decodePropValue;
+            }
+        }
+
+        return $decodePropValue;
+    }
+
+    /**
+     * Get the encoded property value as a binary blob.
+     *
+     * @param string $value
+     * @param bool   $string
+     *
+     * @return string
+     */
+    protected function encodePropValue($value, $string = false)
+    {
+        // An int must be properly padded. (then split and reversed).
+        // For a string, we just split the chars. This seems
+        // to be the easiest way to handle UTF-8 characters
+        // instead of trying to work with their hex values.
+        $chars = $string ? MbString::split($value) : array_reverse(str_split($this->dec2hex($value, 8), 2));
+
+        $encoded = '';
+
+        foreach ($chars as $char) {
+            // Get the bits for the char. Using this method to ensure it is fully padded.
+            $bits = sprintf('%08b', $string ? MbString::ord($char) : hexdec($char));
+            $nibbleX = substr($bits, 0, 4);
+            $nibbleY = substr($bits, 4, 4);
+
+            // Construct the value with the header, high nibble, then low nibble.
+            $value = self::NIBBLE_HEADER;
+
+            foreach (['Y' => $nibbleY, 'X' => $nibbleX] as $nibbleType => $nibble) {
+                $value .= $this->getNibbleWithControl($nibbleType, $nibble);
+            }
+
+            // Convert it back to a binary bit stream
+            foreach ([0, 8, 16] as $start) {
+                $encoded .= $this->packBitString(substr($value, $start, 8), 8);
+            }
+        }
+
+        return $encoded;
+    }
+
+    /**
+     * PHP's pack() function has no 'b' or 'B' template. This is
+     * a workaround that turns a literal bit-string into a
+     * packed byte-string with 8 bits per byte.
+     *
+     * @param string $bits
+     * @param bool   $len
+     *
+     * @return string
+     */
+    protected function packBitString($bits, $len)
+    {
+        $bits = substr($bits, 0, $len);
+        // Pad input with zeros to next multiple of 4 above $len
+        $bits = str_pad($bits, 4 * (int) (($len + 3) / 4), '0');
+
+        // Split input into chunks of 4 bits, convert each to hex and pack them
+        $nibbles = str_split($bits, 4);
+        foreach ($nibbles as $i => $nibble) {
+            $nibbles[$i] = base_convert($nibble, 2, 16);
+        }
+
+        return pack('H*', implode('', $nibbles));
+    }
+
+    /**
+     * Based on the control, adjust the nibble accordingly.
+     *
+     * @param string $nibble
+     * @param string $control
+     *
+     * @return string
+     */
+    protected function nibbleControl($nibble, $control)
+    {
+        // This control stays constant for the low/high nibbles,
+        // so it doesn't matter which we compare to
+        if ($control == self::NIBBLE_CONTROL['X'][1]) {
+            $dec = bindec($nibble);
+            $dec += 9;
+            $nibble = str_pad(decbin($dec), 4, '0', STR_PAD_LEFT);
+        }
+
+        return $nibble;
+    }
+
+    /**
+     * Get the nibble value with the control prefixed.
+     *
+     * If the nibble dec is <= 9, the control X equals 001011 and Y equals 001110, otherwise if the nibble dec is > 9
+     * the control for X or Y equals 011010. Additionally, if the dec value of the nibble is > 9, then the nibble value
+     * must be subtracted by 9 before the final value is constructed.
+     *
+     * @param string $nibbleType Either X or Y
+     * @param string $nibble
+     *
+     * @return string
+     */
+    protected function getNibbleWithControl($nibbleType, $nibble)
+    {
+        $dec = bindec($nibble);
+
+        if ($dec > 9) {
+            $dec -= 9;
+            $control = self::NIBBLE_CONTROL[$nibbleType][1];
+        } else {
+            $control = self::NIBBLE_CONTROL[$nibbleType][0];
+        }
+
+        return $control.sprintf('%04d', decbin($dec));
+    }
+
+    /**
+     * Need to make sure hex values are always an even length, so pad as needed.
+     *
+     * @param int $int
+     * @param int $padLength The hex string must be padded to this length (with zeros).
+     *
+     * @return string
+     */
+    protected function dec2hex($int, $padLength = 2)
+    {
+        return str_pad(dechex($int), $padLength, 0, STR_PAD_LEFT);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/TSPropertyArray.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/TSPropertyArray.php
new file mode 100644
index 0000000..1831688
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/TSPropertyArray.php
@@ -0,0 +1,295 @@
+<?php
+
+namespace LdapRecord\Models\Attributes;
+
+use InvalidArgumentException;
+
+class TSPropertyArray
+{
+    /**
+     * Represents that the TSPropertyArray data is valid.
+     */
+    const VALID_SIGNATURE = 'P';
+
+    /**
+     * The default values for the TSPropertyArray structure.
+     *
+     * @var array
+     */
+    const DEFAULTS = [
+        'CtxCfgPresent' => 2953518677,
+        'CtxWFProfilePath' => '',
+        'CtxWFProfilePathW' => '',
+        'CtxWFHomeDir' => '',
+        'CtxWFHomeDirW' => '',
+        'CtxWFHomeDirDrive' => '',
+        'CtxWFHomeDirDriveW' => '',
+        'CtxShadow' => 1,
+        'CtxMaxDisconnectionTime' => 0,
+        'CtxMaxConnectionTime' => 0,
+        'CtxMaxIdleTime' => 0,
+        'CtxWorkDirectory' => '',
+        'CtxWorkDirectoryW' => '',
+        'CtxCfgFlags1' => 2418077696,
+        'CtxInitialProgram' => '',
+        'CtxInitialProgramW' => '',
+    ];
+
+    /**
+     * @var string The default data that occurs before the TSPropertyArray (CtxCfgPresent with a bunch of spaces...?)
+     */
+    protected $defaultPreBinary = '43747843666750726573656e742020202020202020202020202020202020202020202020202020202020202020202020';
+
+    /**
+     * @var TSProperty[]
+     */
+    protected $tsProperty = [];
+
+    /**
+     * @var string
+     */
+    protected $signature = self::VALID_SIGNATURE;
+
+    /**
+     * Binary data that occurs before the TSPropertyArray data in userParameters.
+     *
+     * @var string
+     */
+    protected $preBinary = '';
+
+    /**
+     * Binary data that occurs after the TSPropertyArray data in userParameters.
+     *
+     * @var string
+     */
+    protected $postBinary = '';
+
+    /**
+     * Construct in one of the following ways:.
+     *
+     *   - Pass an array of TSProperty key => value pairs (See DEFAULTS constant).
+     *   - Pass the userParameters binary value. The object representation of that will be decoded and constructed.
+     *   - Pass nothing and a default set of TSProperty key => value pairs will be used (See DEFAULTS constant).
+     *
+     * @param mixed $tsPropertyArray
+     */
+    public function __construct($tsPropertyArray = null)
+    {
+        $this->preBinary = hex2bin($this->defaultPreBinary);
+
+        if (is_null($tsPropertyArray) || is_array($tsPropertyArray)) {
+            $tsPropertyArray = $tsPropertyArray ?: self::DEFAULTS;
+
+            foreach ($tsPropertyArray as $key => $value) {
+                $tsProperty = new TSProperty();
+
+                $this->tsProperty[$key] = $tsProperty->setName($key)->setValue($value);
+            }
+        } else {
+            $this->decodeUserParameters($tsPropertyArray);
+        }
+    }
+
+    /**
+     * Check if a specific TSProperty exists by its property name.
+     *
+     * @param string $propName
+     *
+     * @return bool
+     */
+    public function has($propName)
+    {
+        return array_key_exists(strtolower($propName), array_change_key_case($this->tsProperty));
+    }
+
+    /**
+     * Get a TSProperty object by its property name (ie. CtxWFProfilePath).
+     *
+     * @param string $propName
+     *
+     * @return TSProperty
+     */
+    public function get($propName)
+    {
+        $this->validateProp($propName);
+
+        return $this->getTsPropObj($propName);
+    }
+
+    /**
+     * Add a TSProperty object. If it already exists, it will be overwritten.
+     *
+     * @param TSProperty $tsProperty
+     *
+     * @return $this
+     */
+    public function add(TSProperty $tsProperty)
+    {
+        $this->tsProperty[$tsProperty->getName()] = $tsProperty;
+
+        return $this;
+    }
+
+    /**
+     * Remove a TSProperty by its property name (ie. CtxMinEncryptionLevel).
+     *
+     * @param string $propName
+     *
+     * @return $this
+     */
+    public function remove($propName)
+    {
+        foreach (array_keys($this->tsProperty) as $property) {
+            if (strtolower($propName) == strtolower($property)) {
+                unset($this->tsProperty[$property]);
+            }
+        }
+
+        return $this;
+    }
+
+    /**
+     * Set the value for a specific TSProperty by its name.
+     *
+     * @param string $propName
+     * @param mixed  $propValue
+     *
+     * @return $this
+     */
+    public function set($propName, $propValue)
+    {
+        $this->validateProp($propName);
+
+        $this->getTsPropObj($propName)->setValue($propValue);
+
+        return $this;
+    }
+
+    /**
+     * Get the full binary representation of the userParameters containing the TSPropertyArray data.
+     *
+     * @return string
+     */
+    public function toBinary()
+    {
+        $binary = $this->preBinary;
+
+        $binary .= hex2bin(str_pad(dechex(MbString::ord($this->signature)), 2, 0, STR_PAD_LEFT));
+
+        $binary .= hex2bin(str_pad(dechex(count($this->tsProperty)), 2, 0, STR_PAD_LEFT));
+
+        foreach ($this->tsProperty as $tsProperty) {
+            $binary .= $tsProperty->toBinary();
+        }
+
+        return $binary.$this->postBinary;
+    }
+
+    /**
+     * Get a simple associative array containing of all TSProperty names and values.
+     *
+     * @return array
+     */
+    public function toArray()
+    {
+        $userParameters = [];
+
+        foreach ($this->tsProperty as $property => $tsPropObj) {
+            $userParameters[$property] = $tsPropObj->getValue();
+        }
+
+        return $userParameters;
+    }
+
+    /**
+     * Get all TSProperty objects.
+     *
+     * @return TSProperty[]
+     */
+    public function getTSProperties()
+    {
+        return $this->tsProperty;
+    }
+
+    /**
+     * Validates that the given property name exists.
+     *
+     * @param string $propName
+     */
+    protected function validateProp($propName)
+    {
+        if (! $this->has($propName)) {
+            throw new InvalidArgumentException(sprintf('TSProperty for "%s" does not exist.', $propName));
+        }
+    }
+
+    /**
+     * @param string $propName
+     *
+     * @return TSProperty
+     */
+    protected function getTsPropObj($propName)
+    {
+        return array_change_key_case($this->tsProperty)[strtolower($propName)];
+    }
+
+    /**
+     * Get an associative array with all of the userParameters property names and values.
+     *
+     * @param string $userParameters
+     *
+     * @return void
+     */
+    protected function decodeUserParameters($userParameters)
+    {
+        $userParameters = bin2hex($userParameters);
+
+        // Save the 96-byte array of reserved data, so as to not ruin anything that may be stored there.
+        $this->preBinary = hex2bin(substr($userParameters, 0, 96));
+        // The signature is a 2-byte unicode character at the front
+        $this->signature = MbString::chr(hexdec(substr($userParameters, 96, 2)));
+        // This asserts the validity of the tsPropertyArray data. For some reason 'P' means valid...
+        if ($this->signature != self::VALID_SIGNATURE) {
+            throw new InvalidArgumentException('Invalid TSPropertyArray data');
+        }
+
+        // The property count is a 2-byte unsigned integer indicating the number of elements for the tsPropertyArray
+        // It starts at position 98. The actual variable data begins at position 100.
+        $length = $this->addTSPropData(substr($userParameters, 100), hexdec(substr($userParameters, 98, 2)));
+
+        // Reserved data length + (count and sig length == 4) + the added lengths of the TSPropertyArray
+        // This saves anything after that variable TSPropertyArray data, so as to not squash anything stored there
+        if (strlen($userParameters) > (96 + 4 + $length)) {
+            $this->postBinary = hex2bin(substr($userParameters, (96 + 4 + $length)));
+        }
+    }
+
+    /**
+     * Given the start of TSPropertyArray hex data, and the count for the number
+     * of TSProperty structures in contains, parse and split out the
+     * individual TSProperty structures. Return the full length
+     * of the TSPropertyArray data.
+     *
+     * @param string $tsPropertyArray
+     * @param int    $tsPropCount
+     *
+     * @return int The length of the data in the TSPropertyArray
+     */
+    protected function addTSPropData($tsPropertyArray, $tsPropCount)
+    {
+        $length = 0;
+
+        for ($i = 0; $i < $tsPropCount; $i++) {
+            // Prop length = name length + value length + type length + the space for the length data.
+            $propLength = hexdec(substr($tsPropertyArray, $length, 2)) + (hexdec(substr($tsPropertyArray, $length + 2, 2)) * 3) + 6;
+
+            $tsProperty = new TSProperty(hex2bin(substr($tsPropertyArray, $length, $propLength)));
+
+            $this->tsProperty[$tsProperty->getName()] = $tsProperty;
+
+            $length += $propLength;
+        }
+
+        return $length;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/Timestamp.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/Timestamp.php
new file mode 100644
index 0000000..abd656c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Attributes/Timestamp.php
@@ -0,0 +1,244 @@
+<?php
+
+namespace LdapRecord\Models\Attributes;
+
+use Carbon\Carbon;
+use Carbon\CarbonInterface;
+use DateTime;
+use LdapRecord\LdapRecordException;
+use LdapRecord\Utilities;
+
+class Timestamp
+{
+    /**
+     * The current timestamp type.
+     *
+     * @var string
+     */
+    protected $type;
+
+    /**
+     * The available timestamp types.
+     *
+     * @var array
+     */
+    protected $types = [
+        'ldap',
+        'windows',
+        'windows-int',
+    ];
+
+    /**
+     * Constructor.
+     *
+     * @param string $type
+     *
+     * @throws LdapRecordException
+     */
+    public function __construct($type)
+    {
+        $this->setType($type);
+    }
+
+    /**
+     * Set the type of timestamp to convert from / to.
+     *
+     * @param string $type
+     *
+     * @throws LdapRecordException
+     */
+    public function setType($type)
+    {
+        if (! in_array($type, $this->types)) {
+            throw new LdapRecordException("Unrecognized LDAP date type [$type]");
+        }
+
+        $this->type = $type;
+    }
+
+    /**
+     * Converts the value to an LDAP date string.
+     *
+     * @param mixed $value
+     *
+     * @throws LdapRecordException
+     *
+     * @return float|string
+     */
+    public function fromDateTime($value)
+    {
+        $value = is_array($value) ? reset($value) : $value;
+
+        // If the value is being converted to a windows integer format but it
+        // is already in that format, we will simply return the value back.
+        if ($this->type == 'windows-int' && $this->valueIsWindowsIntegerType($value)) {
+            return $value;
+        }
+        // If the value is numeric, we will assume it's a UNIX timestamp.
+        elseif (is_numeric($value)) {
+            $value = Carbon::createFromTimestamp($value);
+        }
+        // If a string is given, we will pass it into a new carbon instance.
+        elseif (is_string($value)) {
+            $value = Carbon::parse($value);
+        }
+        // If a date object is given, we will convert it to a carbon instance.
+        elseif ($value instanceof DateTime) {
+            $value = Carbon::instance($value);
+        }
+
+        switch ($this->type) {
+            case 'ldap':
+                $value = $this->convertDateTimeToLdapTime($value);
+                break;
+            case 'windows':
+                $value = $this->convertDateTimeToWindows($value);
+                break;
+            case 'windows-int':
+                $value = $this->convertDateTimeToWindowsInteger($value);
+                break;
+            default:
+                throw new LdapRecordException("Unrecognized date type [{$this->type}]");
+        }
+
+        return $value;
+    }
+
+    /**
+     * Determine if the value given is in Windows Integer (NTFS Filetime) format.
+     *
+     * @param int|string $value
+     *
+     * @return bool
+     */
+    protected function valueIsWindowsIntegerType($value)
+    {
+        return is_numeric($value) && strlen((string) $value) === 18;
+    }
+
+    /**
+     * Converts the LDAP timestamp value to a Carbon instance.
+     *
+     * @param mixed $value
+     *
+     * @throws LdapRecordException
+     *
+     * @return Carbon|false
+     */
+    public function toDateTime($value)
+    {
+        $value = is_array($value) ? reset($value) : $value;
+
+        if ($value instanceof CarbonInterface || $value instanceof DateTime) {
+            return Carbon::instance($value);
+        }
+
+        switch ($this->type) {
+            case 'ldap':
+                $value = $this->convertLdapTimeToDateTime($value);
+                break;
+            case 'windows':
+                $value = $this->convertWindowsTimeToDateTime($value);
+                break;
+            case 'windows-int':
+                $value = $this->convertWindowsIntegerTimeToDateTime($value);
+                break;
+            default:
+                throw new LdapRecordException("Unrecognized date type [{$this->type}]");
+        }
+
+        return $value instanceof DateTime ? Carbon::instance($value) : $value;
+    }
+
+    /**
+     * Converts standard LDAP timestamps to a date time object.
+     *
+     * @param string $value
+     *
+     * @return DateTime|bool
+     */
+    protected function convertLdapTimeToDateTime($value)
+    {
+        return DateTime::createFromFormat(
+            strpos($value, 'Z') !== false ? 'YmdHis\Z' : 'YmdHisT',
+            $value
+        );
+    }
+
+    /**
+     * Converts date objects to a standard LDAP timestamp.
+     *
+     * @param DateTime $date
+     *
+     * @return string
+     */
+    protected function convertDateTimeToLdapTime(DateTime $date)
+    {
+        return $date->format(
+            $date->getOffset() == 0 ? 'YmdHis\Z' : 'YmdHisO'
+        );
+    }
+
+    /**
+     * Converts standard windows timestamps to a date time object.
+     *
+     * @param string $value
+     *
+     * @return DateTime|bool
+     */
+    protected function convertWindowsTimeToDateTime($value)
+    {
+        return DateTime::createFromFormat(
+            strpos($value, '0Z') !== false ? 'YmdHis.0\Z' : 'YmdHis.0T',
+            $value
+        );
+    }
+
+    /**
+     * Converts date objects to a windows timestamp.
+     *
+     * @param DateTime $date
+     *
+     * @return string
+     */
+    protected function convertDateTimeToWindows(DateTime $date)
+    {
+        return $date->format(
+            $date->getOffset() == 0 ? 'YmdHis.0\Z' : 'YmdHis.0O'
+        );
+    }
+
+    /**
+     * Converts standard windows integer dates to a date time object.
+     *
+     * @param int $value
+     *
+     * @throws \Exception
+     *
+     * @return DateTime|bool
+     */
+    protected function convertWindowsIntegerTimeToDateTime($value)
+    {
+        // ActiveDirectory dates that contain integers may return
+        // "0" when they are not set. We will validate that here.
+        if (! $value) {
+            return false;
+        }
+
+        return (new DateTime())->setTimestamp(
+            Utilities::convertWindowsTimeToUnixTime($value)
+        );
+    }
+
+    /**
+     * Converts date objects to a windows integer timestamp.
+     *
+     * @param DateTime $date
+     *
+     * @return float
+     */
+    protected function convertDateTimeToWindowsInteger(DateTime $date)
+    {
+        return Utilities::convertUnixTimeToWindowsTime($date->getTimestamp());
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/BatchModification.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/BatchModification.php
new file mode 100644
index 0000000..37f0e87
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/BatchModification.php
@@ -0,0 +1,307 @@
+<?php
+
+namespace LdapRecord\Models;
+
+use InvalidArgumentException;
+
+class BatchModification
+{
+    use DetectsResetIntegers;
+
+    /**
+     * The array keys to be used in batch modifications.
+     */
+    const KEY_ATTRIB = 'attrib';
+    const KEY_MODTYPE = 'modtype';
+    const KEY_VALUES = 'values';
+
+    /**
+     * The attribute of the modification.
+     *
+     * @var string|null
+     */
+    protected $attribute;
+
+    /**
+     * The original value of the attribute before modification.
+     *
+     * @var array
+     */
+    protected $original = [];
+
+    /**
+     * The values of the modification.
+     *
+     * @var array
+     */
+    protected $values = [];
+
+    /**
+     * The modtype integer of the batch modification.
+     *
+     * @var int|null
+     */
+    protected $type;
+
+    /**
+     * Constructor.
+     *
+     * @param string|null     $attribute
+     * @param string|int|null $type
+     * @param array           $values
+     */
+    public function __construct($attribute = null, $type = null, array $values = [])
+    {
+        $this->setAttribute($attribute)
+            ->setType($type)
+            ->setValues($values);
+    }
+
+    /**
+     * Set the original value of the attribute before modification.
+     *
+     * @param array|string $original
+     *
+     * @return $this
+     */
+    public function setOriginal($original = [])
+    {
+        $this->original = $this->normalizeAttributeValues($original);
+
+        return $this;
+    }
+
+    /**
+     * Returns the original value of the attribute before modification.
+     *
+     * @return array
+     */
+    public function getOriginal()
+    {
+        return $this->original;
+    }
+
+    /**
+     * Set the attribute of the modification.
+     *
+     * @param string $attribute
+     *
+     * @return $this
+     */
+    public function setAttribute($attribute)
+    {
+        $this->attribute = $attribute;
+
+        return $this;
+    }
+
+    /**
+     * Returns the attribute of the modification.
+     *
+     * @return string
+     */
+    public function getAttribute()
+    {
+        return $this->attribute;
+    }
+
+    /**
+     * Set the values of the modification.
+     *
+     * @param array $values
+     *
+     * @return $this
+     */
+    public function setValues(array $values = [])
+    {
+        // Null and empty values must also not be added to a batch
+        // modification. Passing null or empty values will result
+        // in an exception when trying to save the modification.
+        $this->values = array_filter($this->normalizeAttributeValues($values), function ($value) {
+            return is_numeric($value) && $this->valueIsResetInteger((int) $value) ?: ! empty($value);
+        });
+
+        return $this;
+    }
+
+    /**
+     * Normalize all of the attribute values.
+     *
+     * @param array|string $values
+     *
+     * @return array
+     */
+    protected function normalizeAttributeValues($values = [])
+    {
+        // We must convert all of the values to strings. Only strings can
+        // be used in batch modifications, otherwise we will we will
+        // receive an LDAP exception while attempting to save.
+        return array_map('strval', (array) $values);
+    }
+
+    /**
+     * Returns the values of the modification.
+     *
+     * @return array
+     */
+    public function getValues()
+    {
+        return $this->values;
+    }
+
+    /**
+     * Set the type of the modification.
+     *
+     * @param int|null $type
+     *
+     * @return $this
+     */
+    public function setType($type = null)
+    {
+        if (is_null($type)) {
+            return $this;
+        }
+
+        if (! $this->isValidType($type)) {
+            throw new InvalidArgumentException('Given batch modification type is invalid.');
+        }
+
+        $this->type = $type;
+
+        return $this;
+    }
+
+    /**
+     * Returns the type of the modification.
+     *
+     * @return int
+     */
+    public function getType()
+    {
+        return $this->type;
+    }
+
+    /**
+     * Determines if the batch modification is valid in its current state.
+     *
+     * @return bool
+     */
+    public function isValid()
+    {
+        return ! is_null($this->get());
+    }
+
+    /**
+     * Builds the type of modification automatically
+     * based on the current and original values.
+     *
+     * @return $this
+     */
+    public function build()
+    {
+        switch (true) {
+            case empty($this->original) && empty($this->values):
+                return $this;
+            case ! empty($this->original) && empty($this->values):
+                return $this->setType(LDAP_MODIFY_BATCH_REMOVE_ALL);
+            case empty($this->original) && ! empty($this->values):
+                return $this->setType(LDAP_MODIFY_BATCH_ADD);
+            default:
+               return $this->determineBatchTypeFromOriginal();
+        }
+    }
+
+    /**
+     * Determine the batch modification type from the original values.
+     *
+     * @return $this
+     */
+    protected function determineBatchTypeFromOriginal()
+    {
+        $added = $this->getAddedValues();
+        $removed = $this->getRemovedValues();
+
+        switch (true) {
+            case ! empty($added) && ! empty($removed):
+                return $this->setType(LDAP_MODIFY_BATCH_REPLACE);
+            case ! empty($added):
+                return $this->setValues($added)->setType(LDAP_MODIFY_BATCH_ADD);
+            case ! empty($removed):
+                return $this->setValues($removed)->setType(LDAP_MODIFY_BATCH_REMOVE);
+            default:
+                return $this;
+        }
+    }
+
+    /**
+     * Get the values that were added to the attribute.
+     *
+     * @return array
+     */
+    protected function getAddedValues()
+    {
+        return array_values(
+            array_diff($this->values, $this->original)
+        );
+    }
+
+    /**
+     * Get the values that were removed from the attribute.
+     *
+     * @return array
+     */
+    protected function getRemovedValues()
+    {
+        return array_values(
+            array_diff($this->original, $this->values)
+        );
+    }
+
+    /**
+     * Returns the built batch modification array.
+     *
+     * @return array|null
+     */
+    public function get()
+    {
+        switch ($this->type) {
+            case LDAP_MODIFY_BATCH_REMOVE_ALL:
+                // A values key cannot be provided when
+                // a remove all type is selected.
+                return [
+                    static::KEY_ATTRIB => $this->attribute,
+                    static::KEY_MODTYPE => $this->type,
+                ];
+            case LDAP_MODIFY_BATCH_REMOVE:
+                // Fallthrough.
+            case LDAP_MODIFY_BATCH_ADD:
+                // Fallthrough.
+            case LDAP_MODIFY_BATCH_REPLACE:
+                return [
+                    static::KEY_ATTRIB => $this->attribute,
+                    static::KEY_MODTYPE => $this->type,
+                    static::KEY_VALUES => $this->values,
+                ];
+            default:
+                // If the modtype isn't recognized, we'll return null.
+                return;
+        }
+    }
+
+    /**
+     * Determines if the given modtype is valid.
+     *
+     * @param int $type
+     *
+     * @return bool
+     */
+    protected function isValidType($type)
+    {
+        return in_array($type, [
+            LDAP_MODIFY_BATCH_REMOVE_ALL,
+            LDAP_MODIFY_BATCH_REMOVE,
+            LDAP_MODIFY_BATCH_REPLACE,
+            LDAP_MODIFY_BATCH_ADD,
+        ]);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Collection.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Collection.php
new file mode 100644
index 0000000..850167b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Collection.php
@@ -0,0 +1,122 @@
+<?php
+
+namespace LdapRecord\Models;
+
+use Closure;
+use LdapRecord\Models\Attributes\DistinguishedName;
+use LdapRecord\Query\Collection as QueryCollection;
+use LdapRecord\Support\Arr;
+
+class Collection extends QueryCollection
+{
+    /**
+     * Determine if the collection contains all of the given models, or any models.
+     *
+     * @param mixed $models
+     *
+     * @return bool
+     */
+    public function exists($models = null)
+    {
+        $models = $this->getArrayableModels($models);
+
+        // If any arguments were given and the result set is
+        // empty, we can simply return false here. We can't
+        // verify the existence of models without results.
+        if (func_num_args() > 0 && empty(array_filter($models))) {
+            return false;
+        }
+
+        if (! $models) {
+            return parent::isNotEmpty();
+        }
+
+        foreach ($models as $model) {
+            $exists = parent::contains(function (Model $related) use ($model) {
+                return $this->compareModelWithRelated($model, $related);
+            });
+
+            if (! $exists) {
+                return false;
+            }
+        }
+
+        return true;
+    }
+
+    /**
+     * Determine if any of the given models are contained in the collection.
+     *
+     * @param mixed $key
+     * @param mixed $operator
+     * @param mixed $value
+     *
+     * @return bool
+     */
+    public function contains($key, $operator = null, $value = null)
+    {
+        if (func_num_args() > 1 || $key instanceof Closure) {
+            // If we are supplied with more than one argument, or
+            // we were passed a closure, we will utilize the
+            // parents contains method, for compatibility.
+            return parent::contains($key, $operator, $value);
+        }
+
+        foreach ($this->getArrayableModels($key) as $model) {
+            $exists = parent::contains(function (Model $related) use ($model) {
+                return $this->compareModelWithRelated($model, $related);
+            });
+
+            if ($exists) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * Get the provided models as an array.
+     *
+     * @param mixed $models
+     *
+     * @return array
+     */
+    protected function getArrayableModels($models = null)
+    {
+        return $models instanceof QueryCollection
+            ? $models->toArray()
+            : Arr::wrap($models);
+    }
+
+    /**
+     * Compare the related model with the given.
+     *
+     * @param Model|string $model
+     * @param Model        $related
+     *
+     * @return bool
+     */
+    protected function compareModelWithRelated($model, $related)
+    {
+        if (is_string($model)) {
+            return $this->isValidDn($model)
+                ? $related->getDn() == $model
+                : $related->getName() == $model;
+        }
+
+        return $related->is($model);
+    }
+
+    /**
+     * Determine if the given string is a valid distinguished name.
+     *
+     * @param string $dn
+     *
+     * @return bool
+     */
+    protected function isValidDn($dn)
+    {
+        return ! empty((new DistinguishedName($dn))->components());
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/CanAuthenticate.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/CanAuthenticate.php
new file mode 100644
index 0000000..f287454
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/CanAuthenticate.php
@@ -0,0 +1,64 @@
+<?php
+
+namespace LdapRecord\Models\Concerns;
+
+trait CanAuthenticate
+{
+    /**
+     * Get the name of the unique identifier for the user.
+     *
+     * @return string
+     */
+    public function getAuthIdentifierName()
+    {
+        return $this->guidKey;
+    }
+
+    /**
+     * Get the unique identifier for the user.
+     *
+     * @return mixed
+     */
+    public function getAuthIdentifier()
+    {
+        return $this->getConvertedGuid();
+    }
+
+    /**
+     * Get the password for the user.
+     *
+     * @return string
+     */
+    public function getAuthPassword()
+    {
+    }
+
+    /**
+     * Get the token value for the "remember me" session.
+     *
+     * @return string
+     */
+    public function getRememberToken()
+    {
+    }
+
+    /**
+     * Set the token value for the "remember me" session.
+     *
+     * @param string $value
+     *
+     * @return void
+     */
+    public function setRememberToken($value)
+    {
+    }
+
+    /**
+     * Get the column name for the "remember me" token.
+     *
+     * @return string
+     */
+    public function getRememberTokenName()
+    {
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/HasAttributes.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/HasAttributes.php
new file mode 100644
index 0000000..20fcec0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/HasAttributes.php
@@ -0,0 +1,1106 @@
+<?php
+
+namespace LdapRecord\Models\Concerns;
+
+use Carbon\Carbon;
+use DateTimeInterface;
+use Exception;
+use LdapRecord\LdapRecordException;
+use LdapRecord\Models\Attributes\MbString;
+use LdapRecord\Models\Attributes\Timestamp;
+use LdapRecord\Models\DetectsResetIntegers;
+use LdapRecord\Support\Arr;
+
+trait HasAttributes
+{
+    use DetectsResetIntegers;
+
+    /**
+     * The models original attributes.
+     *
+     * @var array
+     */
+    protected $original = [];
+
+    /**
+     * The models attributes.
+     *
+     * @var array
+     */
+    protected $attributes = [];
+
+    /**
+     * The attributes that should be mutated to dates.
+     *
+     * @var array
+     */
+    protected $dates = [];
+
+    /**
+     * The attributes that should be cast to their native types.
+     *
+     * @var array
+     */
+    protected $casts = [];
+
+    /**
+     * The accessors to append to the model's array form.
+     *
+     * @var array
+     */
+    protected $appends = [];
+
+    /**
+     * The format that dates must be output to for serialization.
+     *
+     * @var string
+     */
+    protected $dateFormat;
+
+    /**
+     * The default attributes that should be mutated to dates.
+     *
+     * @var array
+     */
+    protected $defaultDates = [
+        'createtimestamp' => 'ldap',
+        'modifytimestamp' => 'ldap',
+    ];
+
+    /**
+     * The cache of the mutated attributes for each class.
+     *
+     * @var array
+     */
+    protected static $mutatorCache = [];
+
+    /**
+     * Convert the model's attributes to an array.
+     *
+     * @return array
+     */
+    public function attributesToArray()
+    {
+        // Here we will replace our LDAP formatted dates with
+        // properly formatted ones, so dates do not need to
+        // be converted manually after being returned.
+        $attributes = $this->addDateAttributesToArray(
+            $attributes = $this->getArrayableAttributes()
+        );
+
+        $attributes = $this->addMutatedAttributesToArray(
+            $attributes,
+            $this->getMutatedAttributes()
+        );
+
+        // Before we go ahead and encode each value, we'll attempt
+        // converting any necessary attribute values to ensure
+        // they can be encoded, such as GUIDs and SIDs.
+        $attributes = $this->convertAttributesForJson($attributes);
+
+        // Here we will grab all of the appended, calculated attributes to this model
+        // as these attributes are not really in the attributes array, but are run
+        // when we need to array or JSON the model for convenience to the coder.
+        foreach ($this->getArrayableAppends() as $key) {
+            $attributes[$key] = $this->mutateAttributeForArray($key, null);
+        }
+
+        // Now we will go through each attribute to make sure it is
+        // properly encoded. If attributes aren't in UTF-8, we will
+        // encounter JSON encoding errors upon model serialization.
+        return $this->encodeAttributes($attributes);
+    }
+
+    /**
+     * Add the date attributes to the attributes array.
+     *
+     * @param array $attributes
+     *
+     * @return array
+     */
+    protected function addDateAttributesToArray(array $attributes)
+    {
+        foreach ($this->getDates() as $attribute => $type) {
+            if (! isset($attributes[$attribute])) {
+                continue;
+            }
+
+            $date = $this->asDateTime($attributes[$attribute], $type);
+
+            $attributes[$attribute] = $date instanceof Carbon
+                ? Arr::wrap($this->serializeDate($date))
+                : $attributes[$attribute];
+        }
+
+        return $attributes;
+    }
+
+    /**
+     * Prepare a date for array / JSON serialization.
+     *
+     * @param DateTimeInterface $date
+     *
+     * @return string
+     */
+    protected function serializeDate(DateTimeInterface $date)
+    {
+        return $date->format($this->getDateFormat());
+    }
+
+    /**
+     * Recursively UTF-8 encode the given attributes.
+     *
+     * @return array
+     */
+    public function encodeAttributes($attributes)
+    {
+        array_walk_recursive($attributes, function (&$value) {
+            $value = $this->encodeValue($value);
+        });
+
+        return $attributes;
+    }
+
+    /**
+     * Encode the given value for proper serialization.
+     *
+     * @param string $value
+     *
+     * @return string
+     */
+    protected function encodeValue($value)
+    {
+        // If we are able to detect the encoding, we will
+        // encode only the attributes that need to be,
+        // so that we do not double encode values.
+        return MbString::isLoaded() && MbString::isUtf8($value) ? $value : utf8_encode($value);
+    }
+
+    /**
+     * Add the mutated attributes to the attributes array.
+     *
+     * @param array $attributes
+     * @param array $mutatedAttributes
+     *
+     * @return array
+     */
+    protected function addMutatedAttributesToArray(array $attributes, array $mutatedAttributes)
+    {
+        foreach ($mutatedAttributes as $key) {
+            // We want to spin through all the mutated attributes for this model and call
+            // the mutator for the attribute. We cache off every mutated attributes so
+            // we don't have to constantly check on attributes that actually change.
+            if (! Arr::exists($attributes, $key)) {
+                continue;
+            }
+
+            // Next, we will call the mutator for this attribute so that we can get these
+            // mutated attribute's actual values. After we finish mutating each of the
+            // attributes we will return this final array of the mutated attributes.
+            $attributes[$key] = $this->mutateAttributeForArray(
+                $key,
+                $attributes[$key]
+            );
+        }
+
+        return $attributes;
+    }
+
+    /**
+     * Set the model's original attributes with the model's current attributes.
+     *
+     * @return $this
+     */
+    public function syncOriginal()
+    {
+        $this->original = $this->attributes;
+
+        return $this;
+    }
+
+    /**
+     * Fills the entry with the supplied attributes.
+     *
+     * @param array $attributes
+     *
+     * @return $this
+     */
+    public function fill(array $attributes = [])
+    {
+        foreach ($attributes as $key => $value) {
+            $this->setAttribute($key, $value);
+        }
+
+        return $this;
+    }
+
+    /**
+     * Returns the models attribute by its key.
+     *
+     * @param int|string $key
+     *
+     * @return mixed
+     */
+    public function getAttribute($key)
+    {
+        if (! $key) {
+            return;
+        }
+
+        return $this->getAttributeValue($key);
+    }
+
+    /**
+     * Get an attributes value.
+     *
+     * @param string $key
+     *
+     * @return mixed
+     */
+    public function getAttributeValue($key)
+    {
+        $key = $this->normalizeAttributeKey($key);
+        $value = $this->getAttributeFromArray($key);
+
+        if ($this->hasGetMutator($key)) {
+            return $this->getMutatedAttributeValue($key, $value);
+        }
+
+        if ($this->isDateAttribute($key) && ! is_null($value)) {
+            return $this->asDateTime(Arr::first($value), $this->getDates()[$key]);
+        }
+
+        if ($this->isCastedAttribute($key) && ! is_null($value)) {
+            return $this->castAttribute($key, $value);
+        }
+
+        return $value;
+    }
+
+    /**
+     * Determine if the given attribute is a date.
+     *
+     * @param string $key
+     *
+     * @return bool
+     */
+    public function isDateAttribute($key)
+    {
+        return array_key_exists($key, $this->getDates());
+    }
+
+    /**
+     * Get the attributes that should be mutated to dates.
+     *
+     * @return array
+     */
+    public function getDates()
+    {
+        // Since array string keys can be unique depending
+        // on casing differences, we need to normalize the
+        // array key case so they are merged properly.
+        return array_merge(
+            array_change_key_case($this->defaultDates, CASE_LOWER),
+            array_change_key_case($this->dates, CASE_LOWER)
+        );
+    }
+
+    /**
+     * Convert the given date value to an LDAP compatible value.
+     *
+     * @param string $type
+     * @param mixed  $value
+     *
+     * @throws LdapRecordException
+     *
+     * @return float|string
+     */
+    public function fromDateTime($type, $value)
+    {
+        return (new Timestamp($type))->fromDateTime($value);
+    }
+
+    /**
+     * Convert the given LDAP date value to a Carbon instance.
+     *
+     * @param mixed  $value
+     * @param string $type
+     *
+     * @throws LdapRecordException
+     *
+     * @return Carbon|false
+     */
+    public function asDateTime($value, $type)
+    {
+        return (new Timestamp($type))->toDateTime($value);
+    }
+
+    /**
+     * Determine whether an attribute should be cast to a native type.
+     *
+     * @param string            $key
+     * @param array|string|null $types
+     *
+     * @return bool
+     */
+    public function hasCast($key, $types = null)
+    {
+        if (array_key_exists($key, $this->getCasts())) {
+            return $types ? in_array($this->getCastType($key), (array) $types, true) : true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Get the attributes that should be cast to their native types.
+     *
+     * @return array
+     */
+    protected function getCasts()
+    {
+        return array_change_key_case($this->casts, CASE_LOWER);
+    }
+
+    /**
+     * Determine whether a value is JSON castable for inbound manipulation.
+     *
+     * @param string $key
+     *
+     * @return bool
+     */
+    protected function isJsonCastable($key)
+    {
+        return $this->hasCast($key, ['array', 'json', 'object', 'collection']);
+    }
+
+    /**
+     * Get the type of cast for a model attribute.
+     *
+     * @param string $key
+     *
+     * @return string
+     */
+    protected function getCastType($key)
+    {
+        if ($this->isDecimalCast($this->getCasts()[$key])) {
+            return 'decimal';
+        }
+
+        if ($this->isDateTimeCast($this->getCasts()[$key])) {
+            return 'datetime';
+        }
+
+        return trim(strtolower($this->getCasts()[$key]));
+    }
+
+    /**
+     * Determine if the cast is a decimal.
+     *
+     * @param string $cast
+     *
+     * @return bool
+     */
+    protected function isDecimalCast($cast)
+    {
+        return strncmp($cast, 'decimal:', 8) === 0;
+    }
+
+    /**
+     * Determine if the cast is a datetime.
+     *
+     * @param string $cast
+     *
+     * @return bool
+     */
+    protected function isDateTimeCast($cast)
+    {
+        return strncmp($cast, 'datetime:', 8) === 0;
+    }
+
+    /**
+     * Determine if the given attribute must be casted.
+     *
+     * @param string $key
+     *
+     * @return bool
+     */
+    protected function isCastedAttribute($key)
+    {
+        return array_key_exists($key, array_change_key_case($this->casts, CASE_LOWER));
+    }
+
+    /**
+     * Cast an attribute to a native PHP type.
+     *
+     * @param string     $key
+     * @param array|null $value
+     *
+     * @return mixed
+     */
+    protected function castAttribute($key, $value)
+    {
+        $value = $this->castRequiresArrayValue($key) ? $value : Arr::first($value);
+
+        if (is_null($value)) {
+            return $value;
+        }
+
+        switch ($this->getCastType($key)) {
+            case 'int':
+            case 'integer':
+                return (int) $value;
+            case 'real':
+            case 'float':
+            case 'double':
+                return $this->fromFloat($value);
+            case 'decimal':
+                return $this->asDecimal($value, explode(':', $this->getCasts()[$key], 2)[1]);
+            case 'string':
+                return (string) $value;
+            case 'bool':
+            case 'boolean':
+                return $this->asBoolean($value);
+            case 'object':
+                return $this->fromJson($value, $asObject = true);
+            case 'array':
+            case 'json':
+                return $this->fromJson($value);
+            case 'collection':
+                return $this->newCollection($value);
+            case 'datetime':
+                return $this->asDateTime($value, explode(':', $this->getCasts()[$key], 2)[1]);
+            default:
+                return $value;
+        }
+    }
+
+    /**
+     * Determine if the cast type requires the first attribute value.
+     *
+     * @return bool
+     */
+    protected function castRequiresArrayValue($key)
+    {
+        return in_array($this->getCastType($key), ['collection']);
+    }
+
+    /**
+     * Cast the given attribute to JSON.
+     *
+     * @param string $key
+     * @param mixed  $value
+     *
+     * @return string
+     */
+    protected function castAttributeAsJson($key, $value)
+    {
+        $value = $this->asJson($value);
+
+        if ($value === false) {
+            $class = get_class($this);
+            $message = json_last_error_msg();
+
+            throw new Exception("Unable to encode attribute [{$key}] for model [{$class}] to JSON: {$message}.");
+        }
+
+        return $value;
+    }
+
+    /**
+     * Convert the model to its JSON representation.
+     *
+     * @return string
+     */
+    public function toJson()
+    {
+        return json_encode($this);
+    }
+
+    /**
+     * Encode the given value as JSON.
+     *
+     * @param mixed $value
+     *
+     * @return string
+     */
+    protected function asJson($value)
+    {
+        return json_encode($value);
+    }
+
+    /**
+     * Decode the given JSON back into an array or object.
+     *
+     * @param string $value
+     * @param bool   $asObject
+     *
+     * @return mixed
+     */
+    public function fromJson($value, $asObject = false)
+    {
+        return json_decode($value, ! $asObject);
+    }
+
+    /**
+     * Decode the given float.
+     *
+     * @param mixed $value
+     *
+     * @return mixed
+     */
+    public function fromFloat($value)
+    {
+        switch ((string) $value) {
+            case 'Infinity':
+                return INF;
+            case '-Infinity':
+                return -INF;
+            case 'NaN':
+                return NAN;
+            default:
+                return (float) $value;
+        }
+    }
+
+    /**
+     * Cast the value to a boolean.
+     *
+     * @param mixed $value
+     *
+     * @return bool
+     */
+    protected function asBoolean($value)
+    {
+        $map = ['true' => true, 'false' => false];
+
+        return $map[strtolower($value)] ?? (bool) $value;
+    }
+
+    /**
+     * Cast a decimal value as a string.
+     *
+     * @param float $value
+     * @param int   $decimals
+     *
+     * @return string
+     */
+    protected function asDecimal($value, $decimals)
+    {
+        return number_format($value, $decimals, '.', '');
+    }
+
+    /**
+     * Get an attribute array of all arrayable attributes.
+     *
+     * @return array
+     */
+    protected function getArrayableAttributes()
+    {
+        return $this->getArrayableItems($this->attributes);
+    }
+
+    /**
+     * Get an attribute array of all arrayable values.
+     *
+     * @param array $values
+     *
+     * @return array
+     */
+    protected function getArrayableItems(array $values)
+    {
+        if (count($visible = $this->getVisible()) > 0) {
+            $values = array_intersect_key($values, array_flip($visible));
+        }
+
+        if (count($hidden = $this->getHidden()) > 0) {
+            $values = array_diff_key($values, array_flip($hidden));
+        }
+
+        return $values;
+    }
+
+    /**
+     * Get all of the appendable values that are arrayable.
+     *
+     * @return array
+     */
+    protected function getArrayableAppends()
+    {
+        if (empty($this->appends)) {
+            return [];
+        }
+
+        return $this->getArrayableItems(
+            array_combine($this->appends, $this->appends)
+        );
+    }
+
+    /**
+     * Get the format for date serialization.
+     *
+     * @return string
+     */
+    public function getDateFormat()
+    {
+        return $this->dateFormat ?: DateTimeInterface::ISO8601;
+    }
+
+    /**
+     * Set the date format used by the model for serialization.
+     *
+     * @param string $format
+     *
+     * @return $this
+     */
+    public function setDateFormat($format)
+    {
+        $this->dateFormat = $format;
+
+        return $this;
+    }
+
+    /**
+     * Get an attribute from the $attributes array.
+     *
+     * @param string $key
+     *
+     * @return mixed
+     */
+    protected function getAttributeFromArray($key)
+    {
+        return $this->getNormalizedAttributes()[$key] ?? null;
+    }
+
+    /**
+     * Get the attributes with their keys normalized.
+     *
+     * @return array
+     */
+    protected function getNormalizedAttributes()
+    {
+        return array_change_key_case($this->attributes, CASE_LOWER);
+    }
+
+    /**
+     * Returns the first attribute by the specified key.
+     *
+     * @param string $key
+     *
+     * @return mixed
+     */
+    public function getFirstAttribute($key)
+    {
+        return Arr::first(
+            Arr::wrap($this->getAttribute($key))
+        );
+    }
+
+    /**
+     * Returns all of the models attributes.
+     *
+     * @return array
+     */
+    public function getAttributes()
+    {
+        return $this->attributes;
+    }
+
+    /**
+     * Set an attribute value by the specified key and sub-key.
+     *
+     * @param mixed $key
+     * @param mixed $value
+     *
+     * @return $this
+     */
+    public function setAttribute($key, $value)
+    {
+        $key = $this->normalizeAttributeKey($key);
+
+        if ($this->hasSetMutator($key)) {
+            return $this->setMutatedAttributeValue($key, $value);
+        } elseif (
+            $value &&
+            $this->isDateAttribute($key) &&
+            ! $this->valueIsResetInteger($value)
+        ) {
+            $value = $this->fromDateTime($this->getDates()[$key], $value);
+        }
+
+        if ($this->isJsonCastable($key) && ! is_null($value)) {
+            $value = $this->castAttributeAsJson($key, $value);
+        }
+
+        $this->attributes[$key] = Arr::wrap($value);
+
+        return $this;
+    }
+
+    /**
+     * Set the models first attribute value.
+     *
+     * @param string $key
+     * @param mixed  $value
+     *
+     * @return $this
+     */
+    public function setFirstAttribute($key, $value)
+    {
+        return $this->setAttribute($key, Arr::wrap($value));
+    }
+
+    /**
+     * Add a unique value to the given attribute.
+     *
+     * @param string $key
+     * @param mixed  $value
+     *
+     * @return $this
+     */
+    public function addAttributeValue($key, $value)
+    {
+        return $this->setAttribute($key, array_unique(
+            array_merge(
+                Arr::wrap($this->getAttribute($key)),
+                Arr::wrap($value)
+            )
+        ));
+    }
+
+    /**
+     * Determine if a get mutator exists for an attribute.
+     *
+     * @param string $key
+     *
+     * @return bool
+     */
+    public function hasGetMutator($key)
+    {
+        return method_exists($this, 'get'.$this->getMutatorMethodName($key).'Attribute');
+    }
+
+    /**
+     * Determine if a set mutator exists for an attribute.
+     *
+     * @param string $key
+     *
+     * @return bool
+     */
+    public function hasSetMutator($key)
+    {
+        return method_exists($this, 'set'.$this->getMutatorMethodName($key).'Attribute');
+    }
+
+    /**
+     * Set the value of an attribute using its mutator.
+     *
+     * @param string $key
+     * @param mixed  $value
+     *
+     * @return mixed
+     */
+    protected function setMutatedAttributeValue($key, $value)
+    {
+        return $this->{'set'.$this->getMutatorMethodName($key).'Attribute'}($value);
+    }
+
+    /**
+     * Get the value of an attribute using its mutator.
+     *
+     * @param string $key
+     * @param mixed  $value
+     *
+     * @return mixed
+     */
+    protected function getMutatedAttributeValue($key, $value)
+    {
+        return $this->{'get'.$this->getMutatorMethodName($key).'Attribute'}($value);
+    }
+
+    /**
+     * Get the mutator attribute method name.
+     *
+     * Hyphenated attributes will use pascal cased methods.
+     *
+     * @param string $key
+     *
+     * @return mixed
+     */
+    protected function getMutatorMethodName($key)
+    {
+        $key = ucwords(str_replace('-', ' ', $key));
+
+        return str_replace(' ', '', $key);
+    }
+
+    /**
+     * Get the value of an attribute using its mutator for array conversion.
+     *
+     * @param string $key
+     * @param mixed  $value
+     *
+     * @return array
+     */
+    protected function mutateAttributeForArray($key, $value)
+    {
+        return Arr::wrap(
+            $this->getMutatedAttributeValue($key, $value)
+        );
+    }
+
+    /**
+     * Set the attributes property.
+     *
+     * Used when constructing an existing LDAP record.
+     *
+     * @param array $attributes
+     *
+     * @return $this
+     */
+    public function setRawAttributes(array $attributes = [])
+    {
+        // We will filter out those annoying 'count' keys
+        // returned with LDAP results and lowercase all
+        // root array keys to prevent any casing issues.
+        $raw = array_change_key_case($this->filterRawAttributes($attributes), CASE_LOWER);
+
+        // Before setting the models attributes, we will filter
+        // out the attributes that contain an integer key. LDAP
+        // search results will contain integer keys that have
+        // attribute names as values. We don't need these.
+        $this->attributes = array_filter($raw, function ($key) {
+            return ! is_int($key);
+        }, ARRAY_FILTER_USE_KEY);
+
+        // LDAP search results will contain the distinguished
+        // name inside of the `dn` key. We will retrieve this,
+        // and then set it on the model for accessibility.
+        if (Arr::exists($attributes, 'dn')) {
+            $this->dn = Arr::accessible($attributes['dn'])
+                ? Arr::first($attributes['dn'])
+                : $attributes['dn'];
+        }
+
+        $this->syncOriginal();
+
+        // Here we will set the exists attribute to true,
+        // since raw attributes are only set in the case
+        // of attributes being loaded by query results.
+        $this->exists = true;
+
+        return $this;
+    }
+
+    /**
+     * Filters the count key recursively from raw LDAP attributes.
+     *
+     * @param array $attributes
+     * @param array $keys
+     *
+     * @return array
+     */
+    public function filterRawAttributes(array $attributes = [], array $keys = ['count', 'dn'])
+    {
+        foreach ($keys as $key) {
+            unset($attributes[$key]);
+        }
+
+        foreach ($attributes as $key => $value) {
+            $attributes[$key] = is_array($value)
+                ? $this->filterRawAttributes($value, $keys)
+                : $value;
+        }
+
+        return $attributes;
+    }
+
+    /**
+     * Determine if the model has the given attribute.
+     *
+     * @param int|string $key
+     *
+     * @return bool
+     */
+    public function hasAttribute($key)
+    {
+        return [] !== ($this->attributes[$this->normalizeAttributeKey($key)] ?? []);
+    }
+
+    /**
+     * Returns the number of attributes.
+     *
+     * @return int
+     */
+    public function countAttributes()
+    {
+        return count($this->getAttributes());
+    }
+
+    /**
+     * Returns the models original attributes.
+     *
+     * @return array
+     */
+    public function getOriginal()
+    {
+        return $this->original;
+    }
+
+    /**
+     * Get the attributes that have been changed since last sync.
+     *
+     * @return array
+     */
+    public function getDirty()
+    {
+        $dirty = [];
+
+        foreach ($this->attributes as $key => $value) {
+            if ($this->isDirty($key)) {
+                // We need to reset the array using array_values due to
+                // LDAP requiring consecutive indices (0, 1, 2 etc.).
+                // We would receive an exception otherwise.
+                $dirty[$key] = array_values($value);
+            }
+        }
+
+        return $dirty;
+    }
+
+    /**
+     * Determine if the given attribute is dirty.
+     *
+     * @param string $key
+     *
+     * @return bool
+     */
+    public function isDirty($key)
+    {
+        return ! $this->originalIsEquivalent($key);
+    }
+
+    /**
+     * Get the accessors being appended to the models array form.
+     *
+     * @return array
+     */
+    public function getAppends()
+    {
+        return $this->appends;
+    }
+
+    /**
+     * Set the accessors to append to model arrays.
+     *
+     * @param array $appends
+     *
+     * @return $this
+     */
+    public function setAppends(array $appends)
+    {
+        $this->appends = $appends;
+
+        return $this;
+    }
+
+    /**
+     * Return whether the accessor attribute has been appended.
+     *
+     * @param string $attribute
+     *
+     * @return bool
+     */
+    public function hasAppended($attribute)
+    {
+        return in_array($attribute, $this->appends);
+    }
+
+    /**
+     * Returns a normalized attribute key.
+     *
+     * @param string $key
+     *
+     * @return string
+     */
+    public function normalizeAttributeKey($key)
+    {
+        // Since LDAP supports hyphens in attribute names,
+        // we'll convert attributes being retrieved by
+        // underscores into hyphens for convenience.
+        return strtolower(
+            str_replace('_', '-', $key)
+        );
+    }
+
+    /**
+     * Determine if the new and old values for a given key are equivalent.
+     *
+     * @param string $key
+     *
+     * @return bool
+     */
+    protected function originalIsEquivalent($key)
+    {
+        if (! array_key_exists($key, $this->original)) {
+            return false;
+        }
+
+        $current = $this->attributes[$key];
+        $original = $this->original[$key];
+
+        if ($current === $original) {
+            return true;
+        }
+
+        return  is_numeric($current) &&
+                is_numeric($original) &&
+                strcmp((string) $current, (string) $original) === 0;
+    }
+
+    /**
+     * Get the mutated attributes for a given instance.
+     *
+     * @return array
+     */
+    public function getMutatedAttributes()
+    {
+        $class = static::class;
+
+        if (! isset(static::$mutatorCache[$class])) {
+            static::cacheMutatedAttributes($class);
+        }
+
+        return static::$mutatorCache[$class];
+    }
+
+    /**
+     * Extract and cache all the mutated attributes of a class.
+     *
+     * @param string $class
+     *
+     * @return void
+     */
+    public static function cacheMutatedAttributes($class)
+    {
+        static::$mutatorCache[$class] = collect(static::getMutatorMethods($class))->reject(function ($match) {
+            return $match === 'First';
+        })->map(function ($match) {
+            return lcfirst($match);
+        })->all();
+    }
+
+    /**
+     * Get all of the attribute mutator methods.
+     *
+     * @param mixed $class
+     *
+     * @return array
+     */
+    protected static function getMutatorMethods($class)
+    {
+        preg_match_all('/(?<=^|;)get([^;]+?)Attribute(;|$)/', implode(';', get_class_methods($class)), $matches);
+
+        return $matches[1];
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/HasEvents.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/HasEvents.php
new file mode 100644
index 0000000..1bc76d0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/HasEvents.php
@@ -0,0 +1,34 @@
+<?php
+
+namespace LdapRecord\Models\Concerns;
+
+use Closure;
+use LdapRecord\Models\Events\Event;
+
+trait HasEvents
+{
+    /**
+     * Fires the specified model event.
+     *
+     * @param Event $event
+     *
+     * @return mixed
+     */
+    protected function fireModelEvent(Event $event)
+    {
+        return static::getConnectionContainer()->getEventDispatcher()->fire($event);
+    }
+
+    /**
+     * Listens to a model event.
+     *
+     * @param string  $event
+     * @param Closure $listener
+     *
+     * @return mixed
+     */
+    protected function listenForModelEvent($event, Closure $listener)
+    {
+        return static::getConnectionContainer()->getEventDispatcher()->listen($event, $listener);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/HasGlobalScopes.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/HasGlobalScopes.php
new file mode 100644
index 0000000..c14abad
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/HasGlobalScopes.php
@@ -0,0 +1,75 @@
+<?php
+
+namespace LdapRecord\Models\Concerns;
+
+use Closure;
+use InvalidArgumentException;
+use LdapRecord\Models\Scope;
+
+trait HasGlobalScopes
+{
+    /**
+     * Register a new global scope on the model.
+     *
+     * @param Scope|Closure|string $scope
+     * @param Closure|null         $implementation
+     *
+     * @throws InvalidArgumentException
+     *
+     * @return mixed
+     */
+    public static function addGlobalScope($scope, Closure $implementation = null)
+    {
+        if (is_string($scope) && ! is_null($implementation)) {
+            return static::$globalScopes[static::class][$scope] = $implementation;
+        } elseif ($scope instanceof Closure) {
+            return static::$globalScopes[static::class][spl_object_hash($scope)] = $scope;
+        } elseif ($scope instanceof Scope) {
+            return static::$globalScopes[static::class][get_class($scope)] = $scope;
+        }
+
+        throw new InvalidArgumentException('Global scope must be an instance of Closure or Scope.');
+    }
+
+    /**
+     * Determine if a model has a global scope.
+     *
+     * @param Scope|string $scope
+     *
+     * @return bool
+     */
+    public static function hasGlobalScope($scope)
+    {
+        return ! is_null(static::getGlobalScope($scope));
+    }
+
+    /**
+     * Get a global scope registered with the model.
+     *
+     * @param Scope|string $scope
+     *
+     * @return Scope|Closure|null
+     */
+    public static function getGlobalScope($scope)
+    {
+        if (array_key_exists(static::class, static::$globalScopes)) {
+            $scopeName = is_string($scope) ? $scope : get_class($scope);
+
+            return array_key_exists($scopeName, static::$globalScopes[static::class])
+                ? static::$globalScopes[static::class][$scopeName]
+                : null;
+        }
+    }
+
+    /**
+     * Get the global scopes for this class instance.
+     *
+     * @return array
+     */
+    public function getGlobalScopes()
+    {
+        return array_key_exists(static::class, static::$globalScopes)
+            ? static::$globalScopes[static::class]
+            : [];
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/HasPassword.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/HasPassword.php
new file mode 100644
index 0000000..9822456
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/HasPassword.php
@@ -0,0 +1,251 @@
+<?php
+
+namespace LdapRecord\Models\Concerns;
+
+use LdapRecord\ConnectionException;
+use LdapRecord\LdapRecordException;
+use LdapRecord\Models\Attributes\Password;
+
+trait HasPassword
+{
+    /**
+     * Set the password on the user.
+     *
+     * @param string|array $password
+     *
+     * @throws ConnectionException
+     */
+    public function setPasswordAttribute($password)
+    {
+        $this->validateSecureConnection();
+
+        // Here we will attempt to determine the password hash method in use
+        // by parsing the users hashed password (if it as available). If a
+        // method is determined, we will override the default here.
+        if (! ($method = $this->determinePasswordHashMethod())) {
+            $method = $this->getPasswordHashMethod();
+        }
+
+        // If the password given is an array, we can assume we
+        // are changing the password for the current user.
+        if (is_array($password)) {
+            $this->setChangedPassword(
+                $this->getHashedPassword($method, $password[0], $this->getPasswordSalt($method)),
+                $this->getHashedPassword($method, $password[1]),
+                $this->getPasswordAttributeName()
+            );
+        }
+        // Otherwise, we will assume the password is being
+        // reset, overwriting the one currently in place.
+        else {
+            $this->setPassword(
+                $this->getHashedPassword($method, $password),
+                $this->getPasswordAttributeName()
+            );
+        }
+    }
+
+    /**
+     * Alias for setting the password on the user.
+     *
+     * @param string|array $password
+     *
+     * @throws ConnectionException
+     */
+    public function setUnicodepwdAttribute($password)
+    {
+        $this->setPasswordAttribute($password);
+    }
+
+    /**
+     * An accessor for retrieving the user's hashed password value.
+     *
+     * @return string|null
+     */
+    public function getPasswordAttribute()
+    {
+        return $this->getAttribute($this->getPasswordAttributeName())[0] ?? null;
+    }
+
+    /**
+     * Get the name of the attribute that contains the user's password.
+     *
+     * @return string
+     */
+    public function getPasswordAttributeName()
+    {
+        if (property_exists($this, 'passwordAttribute')) {
+            return $this->passwordAttribute;
+        }
+
+        if (method_exists($this, 'passwordAttribute')) {
+            return $this->passwordAttribute();
+        }
+
+        return 'unicodepwd';
+    }
+
+    /**
+     * Get the name of the method to use for hashing the user's password.
+     *
+     * @return string
+     */
+    public function getPasswordHashMethod()
+    {
+        if (property_exists($this, 'passwordHashMethod')) {
+            return $this->passwordHashMethod;
+        }
+
+        if (method_exists($this, 'passwordHashMethod')) {
+            return $this->passwordHashMethod();
+        }
+
+        return 'encode';
+    }
+
+    /**
+     * Set the changed password.
+     *
+     * @param string $oldPassword
+     * @param string $newPassword
+     * @param string $attribute
+     *
+     * @return void
+     */
+    protected function setChangedPassword($oldPassword, $newPassword, $attribute)
+    {
+        // Create batch modification for removing the old password.
+        $this->addModification(
+            $this->newBatchModification(
+                $attribute,
+                LDAP_MODIFY_BATCH_REMOVE,
+                [$oldPassword]
+            )
+        );
+
+        // Create batch modification for adding the new password.
+        $this->addModification(
+            $this->newBatchModification(
+                $attribute,
+                LDAP_MODIFY_BATCH_ADD,
+                [$newPassword]
+            )
+        );
+    }
+
+    /**
+     * Set the password on the model.
+     *
+     * @param string $password
+     * @param string $attribute
+     *
+     * @return void
+     */
+    protected function setPassword($password, $attribute)
+    {
+        $this->addModification(
+            $this->newBatchModification(
+                $attribute,
+                LDAP_MODIFY_BATCH_REPLACE,
+                [$password]
+            )
+        );
+    }
+
+    /**
+     * Encode / hash the given password.
+     *
+     * @param string $method
+     * @param string $password
+     * @param string $salt
+     *
+     * @throws LdapRecordException
+     *
+     * @return string
+     */
+    protected function getHashedPassword($method, $password, $salt = null)
+    {
+        if (! method_exists(Password::class, $method)) {
+            throw new LdapRecordException("Password hashing method [{$method}] does not exist.");
+        }
+
+        if (Password::hashMethodRequiresSalt($method)) {
+            return Password::{$method}($password, $salt);
+        }
+
+        return Password::{$method}($password);
+    }
+
+    /**
+     * Validates that the current LDAP connection is secure.
+     *
+     * @throws ConnectionException
+     *
+     * @return void
+     */
+    protected function validateSecureConnection()
+    {
+        $connection = $this->getConnection();
+
+        if ($connection->isConnected()) {
+            $secure = $connection->getLdapConnection()->canChangePasswords();
+        } else {
+            $secure = $connection->getConfiguration()->get('use_ssl') || $connection->getConfiguration()->get('use_tls');
+        }
+
+        if (! $secure) {
+            throw new ConnectionException(
+                'You must be connected to your LDAP server with TLS or SSL to perform this operation.'
+            );
+        }
+    }
+
+    /**
+     * Attempt to retrieve the password's salt.
+     *
+     * @param string $method
+     *
+     * @return string|null
+     */
+    public function getPasswordSalt($method)
+    {
+        if (! Password::hashMethodRequiresSalt($method)) {
+            return;
+        }
+
+        return Password::getSalt($this->password);
+    }
+
+    /**
+     * Determine the password hash method to use from the users current password.
+     *
+     * @return string|void
+     */
+    public function determinePasswordHashMethod()
+    {
+        if (! $password = $this->password) {
+            return;
+        }
+
+        if (! $method = Password::getHashMethod($password)) {
+            return;
+        }
+
+        [,$algo] = array_pad(
+            Password::getHashMethodAndAlgo($password) ?? [],
+            $length = 2,
+            $value = null
+        );
+
+        switch ($algo) {
+            case Password::CRYPT_SALT_TYPE_MD5:
+                return 'md5'.$method;
+            case Password::CRYPT_SALT_TYPE_SHA256:
+                return 'sha256'.$method;
+            case Password::CRYPT_SALT_TYPE_SHA512:
+                return 'sha512'.$method;
+            default:
+                return $method;
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/HasRelationships.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/HasRelationships.php
new file mode 100644
index 0000000..a8a5cac
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/HasRelationships.php
@@ -0,0 +1,63 @@
+<?php
+
+namespace LdapRecord\Models\Concerns;
+
+use LdapRecord\Models\Relations\HasMany;
+use LdapRecord\Models\Relations\HasManyIn;
+use LdapRecord\Models\Relations\HasOne;
+use LdapRecord\Support\Arr;
+
+trait HasRelationships
+{
+    /**
+     * Returns a new has one relationship.
+     *
+     * @param mixed  $related
+     * @param string $relationKey
+     * @param string $foreignKey
+     *
+     * @return HasOne
+     */
+    public function hasOne($related, $relationKey, $foreignKey = 'dn')
+    {
+        return new HasOne($this->newQuery(), $this, $related, $relationKey, $foreignKey);
+    }
+
+    /**
+     * Returns a new has many relationship.
+     *
+     * @param mixed  $related
+     * @param string $relationKey
+     * @param string $foreignKey
+     *
+     * @return HasMany
+     */
+    public function hasMany($related, $relationKey, $foreignKey = 'dn')
+    {
+        return new HasMany($this->newQuery(), $this, $related, $relationKey, $foreignKey, $this->guessRelationshipName());
+    }
+
+    /**
+     * Returns a new has many in relationship.
+     *
+     * @param mixed  $related
+     * @param string $relationKey
+     * @param string $foreignKey
+     *
+     * @return HasManyIn
+     */
+    public function hasManyIn($related, $relationKey, $foreignKey = 'dn')
+    {
+        return new HasManyIn($this->newQuery(), $this, $related, $relationKey, $foreignKey, $this->guessRelationshipName());
+    }
+
+    /**
+     * Get the relationships name.
+     *
+     * @return string|null
+     */
+    protected function guessRelationshipName()
+    {
+        return Arr::last(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 3))['function'];
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/HasScopes.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/HasScopes.php
new file mode 100644
index 0000000..6c97cf9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/HasScopes.php
@@ -0,0 +1,38 @@
+<?php
+
+namespace LdapRecord\Models\Concerns;
+
+trait HasScopes
+{
+    /**
+     * Begin querying the direct descendants of the model.
+     *
+     * @return \LdapRecord\Query\Model\Builder
+     */
+    public function descendants()
+    {
+        return $this->in($this->getDn())->listing();
+    }
+
+    /**
+     * Begin querying the direct ancestors of the model.
+     *
+     * @return \LdapRecord\Query\Model\Builder
+     */
+    public function ancestors()
+    {
+        $parent = $this->getParentDn($this->getDn());
+
+        return $this->in($this->getParentDn($parent))->listing();
+    }
+
+    /**
+     * Begin querying the direct siblings of the model.
+     *
+     * @return \LdapRecord\Query\Model\Builder
+     */
+    public function siblings()
+    {
+        return $this->in($this->getParentDn($this->getDn()))->listing();
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/HidesAttributes.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/HidesAttributes.php
new file mode 100644
index 0000000..9cc2100
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Concerns/HidesAttributes.php
@@ -0,0 +1,143 @@
+<?php
+
+namespace LdapRecord\Models\Concerns;
+
+/**
+ * @author Taylor Otwell
+ *
+ * @see https://laravel.com
+ */
+trait HidesAttributes
+{
+    /**
+     * The attributes that should be hidden for serialization.
+     *
+     * @var array
+     */
+    protected $hidden = [];
+
+    /**
+     * The attributes that should be visible in serialization.
+     *
+     * @var array
+     */
+    protected $visible = [];
+
+    /**
+     * Get the hidden attributes for the model.
+     *
+     * @return array
+     */
+    public function getHidden()
+    {
+        return array_map(function ($key) {
+            return $this->normalizeAttributeKey($key);
+        }, $this->hidden);
+    }
+
+    /**
+     * Set the hidden attributes for the model.
+     *
+     * @param array $hidden
+     *
+     * @return $this
+     */
+    public function setHidden(array $hidden)
+    {
+        $this->hidden = $hidden;
+
+        return $this;
+    }
+
+    /**
+     * Add hidden attributes for the model.
+     *
+     * @param array|string|null $attributes
+     *
+     * @return void
+     */
+    public function addHidden($attributes = null)
+    {
+        $this->hidden = array_merge(
+            $this->hidden,
+            is_array($attributes) ? $attributes : func_get_args()
+        );
+    }
+
+    /**
+     * Get the visible attributes for the model.
+     *
+     * @return array
+     */
+    public function getVisible()
+    {
+        return array_map(function ($key) {
+            return $this->normalizeAttributeKey($key);
+        }, $this->visible);
+    }
+
+    /**
+     * Set the visible attributes for the model.
+     *
+     * @param array $visible
+     *
+     * @return $this
+     */
+    public function setVisible(array $visible)
+    {
+        $this->visible = $visible;
+
+        return $this;
+    }
+
+    /**
+     * Add visible attributes for the model.
+     *
+     * @param array|string|null $attributes
+     *
+     * @return void
+     */
+    public function addVisible($attributes = null)
+    {
+        $this->visible = array_merge(
+            $this->visible,
+            is_array($attributes) ? $attributes : func_get_args()
+        );
+    }
+
+    /**
+     * Make the given, typically hidden, attributes visible.
+     *
+     * @param array|string $attributes
+     *
+     * @return $this
+     */
+    public function makeVisible($attributes)
+    {
+        $this->hidden = array_diff($this->hidden, (array) $attributes);
+
+        if (! empty($this->visible)) {
+            $this->addVisible($attributes);
+        }
+
+        return $this;
+    }
+
+    /**
+     * Make the given, typically visible, attributes hidden.
+     *
+     * @param array|string $attributes
+     *
+     * @return $this
+     */
+    public function makeHidden($attributes)
+    {
+        $attributes = (array) $attributes;
+
+        $this->visible = array_diff($this->visible, $attributes);
+
+        $this->hidden = array_unique(array_merge($this->hidden, $attributes));
+
+        return $this;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/DetectsResetIntegers.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/DetectsResetIntegers.php
new file mode 100644
index 0000000..8712ef7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/DetectsResetIntegers.php
@@ -0,0 +1,22 @@
+<?php
+
+namespace LdapRecord\Models;
+
+trait DetectsResetIntegers
+{
+    /**
+     * Determine if the given value is an LDAP reset integer.
+     *
+     * The integer values '0' and '-1' can be used on certain
+     * LDAP attributes to instruct the server to reset the
+     * value to an 'unset' or 'cleared' state.
+     *
+     * @param mixed $value
+     *
+     * @return bool
+     */
+    protected function valueIsResetInteger($value)
+    {
+        return in_array($value, [0, -1], $strict = true);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/DirectoryServer/Entry.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/DirectoryServer/Entry.php
new file mode 100644
index 0000000..1bf8325
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/DirectoryServer/Entry.php
@@ -0,0 +1,15 @@
+<?php
+
+namespace LdapRecord\Models\DirectoryServer;
+
+use LdapRecord\Models\Model;
+
+class Entry extends Model
+{
+    /**
+     * The attribute key that contains the models object GUID.
+     *
+     * @var string
+     */
+    protected $guidKey = 'gidNumber';
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/DirectoryServer/Group.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/DirectoryServer/Group.php
new file mode 100644
index 0000000..49a6e0a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/DirectoryServer/Group.php
@@ -0,0 +1,17 @@
+<?php
+
+namespace LdapRecord\Models\DirectoryServer;
+
+class Group extends Entry
+{
+    /**
+     * The object classes of the LDAP model.
+     *
+     * @var array
+     */
+    public static $objectClasses = [
+        'top',
+        'groupOfUniqueNames',
+        'posixGroup',
+    ];
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/DirectoryServer/User.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/DirectoryServer/User.php
new file mode 100644
index 0000000..430588b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/DirectoryServer/User.php
@@ -0,0 +1,19 @@
+<?php
+
+namespace LdapRecord\Models\DirectoryServer;
+
+class User extends Entry
+{
+    /**
+     * The object classes of the LDAP model.
+     *
+     * @var array
+     */
+    public static $objectClasses = [
+        'top',
+        'nsPerson',
+        'nsAccount',
+        'nsOrgPerson',
+        'posixAccount',
+    ];
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Entry.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Entry.php
new file mode 100644
index 0000000..dcfda57
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Entry.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Models;
+
+class Entry extends Model
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Created.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Created.php
new file mode 100644
index 0000000..c101235
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Created.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Models\Events;
+
+class Created extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Creating.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Creating.php
new file mode 100644
index 0000000..c4e6ad7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Creating.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Models\Events;
+
+class Creating extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Deleted.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Deleted.php
new file mode 100644
index 0000000..7852659
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Deleted.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Models\Events;
+
+class Deleted extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Deleting.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Deleting.php
new file mode 100644
index 0000000..9a0810d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Deleting.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Models\Events;
+
+class Deleting extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Event.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Event.php
new file mode 100644
index 0000000..20de0b7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Event.php
@@ -0,0 +1,35 @@
+<?php
+
+namespace LdapRecord\Models\Events;
+
+use LdapRecord\Models\Model;
+
+abstract class Event
+{
+    /**
+     * The model that the event is being triggered on.
+     *
+     * @var Model
+     */
+    protected $model;
+
+    /**
+     * Constructor.
+     *
+     * @param Model $model
+     */
+    public function __construct(Model $model)
+    {
+        $this->model = $model;
+    }
+
+    /**
+     * Returns the model that generated the event.
+     *
+     * @return Model
+     */
+    public function getModel()
+    {
+        return $this->model;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Renamed.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Renamed.php
new file mode 100644
index 0000000..0f02b6d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Renamed.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Models\Events;
+
+class Renamed extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Renaming.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Renaming.php
new file mode 100644
index 0000000..83427ca
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Renaming.php
@@ -0,0 +1,57 @@
+<?php
+
+namespace LdapRecord\Models\Events;
+
+use LdapRecord\Models\Model;
+
+class Renaming extends Event
+{
+    /**
+     * The models RDN.
+     *
+     * @var string
+     */
+    protected $rdn;
+
+    /**
+     * The models new parent DN.
+     *
+     * @var string
+     */
+    protected $newParentDn;
+
+    /**
+     * Constructor.
+     *
+     * @param Model  $model
+     * @param string $rdn
+     * @param string $newParentDn
+     */
+    public function __construct(Model $model, $rdn, $newParentDn)
+    {
+        parent::__construct($model);
+
+        $this->rdn = $rdn;
+        $this->newParentDn = $newParentDn;
+    }
+
+    /**
+     * Get the models RDN.
+     *
+     * @return string
+     */
+    public function getRdn()
+    {
+        return $this->rdn;
+    }
+
+    /**
+     * Get the models parent DN.
+     *
+     * @return string
+     */
+    public function getNewParentDn()
+    {
+        return $this->newParentDn;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Saved.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Saved.php
new file mode 100644
index 0000000..cf9c5ad
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Saved.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Models\Events;
+
+class Saved extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Saving.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Saving.php
new file mode 100644
index 0000000..0c99403
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Saving.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Models\Events;
+
+class Saving extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Updated.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Updated.php
new file mode 100644
index 0000000..b0dd611
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Updated.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Models\Events;
+
+class Updated extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Updating.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Updating.php
new file mode 100644
index 0000000..20ae60c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Events/Updating.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Models\Events;
+
+class Updating extends Event
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/FreeIPA/Entry.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/FreeIPA/Entry.php
new file mode 100644
index 0000000..7fdda9c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/FreeIPA/Entry.php
@@ -0,0 +1,55 @@
+<?php
+
+namespace LdapRecord\Models\FreeIPA;
+
+use LdapRecord\Connection;
+use LdapRecord\Models\Entry as BaseEntry;
+use LdapRecord\Models\FreeIPA\Scopes\AddEntryUuidToSelects;
+use LdapRecord\Models\Types\FreeIPA;
+use LdapRecord\Query\Model\FreeIpaBuilder;
+
+/** @mixin FreeIpaBuilder */
+class Entry extends BaseEntry implements FreeIPA
+{
+    /**
+     * The attribute key that contains the models object GUID.
+     *
+     * @var string
+     */
+    protected $guidKey = 'ipauniqueid';
+
+    /**
+     * The default attributes that should be mutated to dates.
+     *
+     * @var array
+     */
+    protected $defaultDates = [
+        'krblastpwdchange' => 'ldap',
+        'krbpasswordexpiration' => 'ldap',
+    ];
+
+    /**
+     * @inheritdoc
+     */
+    protected static function boot()
+    {
+        parent::boot();
+
+        // Here we'll add a global scope to all FreeIPA models to ensure the
+        // Entry UUID is always selected on each query. This attribute is
+        // virtual, so it must be manually selected to be included.
+        static::addGlobalScope(new AddEntryUuidToSelects());
+    }
+
+    /**
+     * Create a new query builder.
+     *
+     * @param Connection $connection
+     *
+     * @return FreeIpaBuilder
+     */
+    public function newQueryBuilder(Connection $connection)
+    {
+        return new FreeIpaBuilder($connection);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/FreeIPA/Group.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/FreeIPA/Group.php
new file mode 100644
index 0000000..10fd934
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/FreeIPA/Group.php
@@ -0,0 +1,41 @@
+<?php
+
+namespace LdapRecord\Models\FreeIPA;
+
+class Group extends Entry
+{
+    /**
+     * The object classes of the LDAP model.
+     *
+     * @var array
+     */
+    public static $objectClasses = [
+        'top',
+        'groupofnames',
+        'nestedgroup',
+        'ipausergroup',
+        'posixgroup',
+    ];
+
+    /**
+     * The groups relationship.
+     *
+     * Retrieves groups that the current group is apart of.
+     *
+     * @return \LdapRecord\Models\Relations\HasMany
+     */
+    public function groups()
+    {
+        return $this->hasMany(self::class, 'member');
+    }
+
+    /**
+     * Retrieve the members of the group.
+     *
+     * @return \LdapRecord\Models\Relations\HasMany
+     */
+    public function members()
+    {
+        return $this->hasMany(User::class, 'memberof')->using($this, 'member');
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/FreeIPA/Scopes/AddEntryUuidToSelects.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/FreeIPA/Scopes/AddEntryUuidToSelects.php
new file mode 100644
index 0000000..039c05e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/FreeIPA/Scopes/AddEntryUuidToSelects.php
@@ -0,0 +1,25 @@
+<?php
+
+namespace LdapRecord\Models\FreeIPA\Scopes;
+
+use LdapRecord\Models\Model;
+use LdapRecord\Models\Scope;
+use LdapRecord\Query\Model\Builder;
+
+class AddEntryUuidToSelects implements Scope
+{
+    /**
+     * Add the entry UUID to the selected attributes.
+     *
+     * @param Builder $query
+     * @param Model   $model
+     *
+     * @return void
+     */
+    public function apply(Builder $query, Model $model)
+    {
+        empty($query->columns)
+            ? $query->addSelect(['*', $model->getGuidKey()])
+            : $query->addSelect($model->getGuidKey());
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/FreeIPA/User.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/FreeIPA/User.php
new file mode 100644
index 0000000..24c7f3b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/FreeIPA/User.php
@@ -0,0 +1,28 @@
+<?php
+
+namespace LdapRecord\Models\FreeIPA;
+
+class User extends Entry
+{
+    /**
+     * The object classes of the LDAP model.
+     *
+     * @var array
+     */
+    public static $objectClasses = [
+        'top',
+        'person',
+        'inetorgperson',
+        'organizationalperson',
+    ];
+
+    /**
+     * Retrieve groups that the current user is apart of.
+     *
+     * @return \LdapRecord\Models\Relations\HasMany
+     */
+    public function groups()
+    {
+        return $this->hasMany(Group::class, 'member');
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Model.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Model.php
new file mode 100644
index 0000000..6ba24b4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Model.php
@@ -0,0 +1,1441 @@
+<?php
+
+namespace LdapRecord\Models;
+
+use ArrayAccess;
+use InvalidArgumentException;
+use JsonSerializable;
+use LdapRecord\Connection;
+use LdapRecord\Container;
+use LdapRecord\EscapesValues;
+use LdapRecord\Models\Attributes\DistinguishedName;
+use LdapRecord\Models\Attributes\Guid;
+use LdapRecord\Models\Events\Renamed;
+use LdapRecord\Models\Events\Renaming;
+use LdapRecord\Query\Model\Builder;
+use LdapRecord\Support\Arr;
+use UnexpectedValueException;
+
+/** @mixin Builder */
+abstract class Model implements ArrayAccess, JsonSerializable
+{
+    use EscapesValues;
+    use Concerns\HasEvents;
+    use Concerns\HasScopes;
+    use Concerns\HasAttributes;
+    use Concerns\HasGlobalScopes;
+    use Concerns\HidesAttributes;
+    use Concerns\HasRelationships;
+
+    /**
+     * Indicates if the model exists in the LDAP directory.
+     *
+     * @var bool
+     */
+    public $exists = false;
+
+    /**
+     * Indicates whether the model was created during the current request lifecycle.
+     *
+     * @var bool
+     */
+    public $wasRecentlyCreated = false;
+
+    /**
+     * Indicates whether the model was renamed during the current request lifecycle.
+     *
+     * @var bool
+     */
+    public $wasRecentlyRenamed = false;
+
+    /**
+     * The models distinguished name.
+     *
+     * @var string|null
+     */
+    protected $dn;
+
+    /**
+     * The base DN of where the model should be created in.
+     *
+     * @var string|null
+     */
+    protected $in;
+
+    /**
+     * The object classes of the LDAP model.
+     *
+     * @var array
+     */
+    public static $objectClasses = [];
+
+    /**
+     * The connection container instance.
+     *
+     * @var Container
+     */
+    protected static $container;
+
+    /**
+     * The LDAP connection name for the model.
+     *
+     * @var string|null
+     */
+    protected $connection;
+
+    /**
+     * The attribute key that contains the models object GUID.
+     *
+     * @var string
+     */
+    protected $guidKey = 'objectguid';
+
+    /**
+     * Contains the models modifications.
+     *
+     * @var array
+     */
+    protected $modifications = [];
+
+    /**
+     * The array of global scopes on the model.
+     *
+     * @var array
+     */
+    protected static $globalScopes = [];
+
+    /**
+     * The array of booted models.
+     *
+     * @var array
+     */
+    protected static $booted = [];
+
+    /**
+     * Constructor.
+     *
+     * @param array $attributes
+     */
+    public function __construct(array $attributes = [])
+    {
+        $this->bootIfNotBooted();
+
+        $this->fill($attributes);
+    }
+
+    /**
+     * Check if the model needs to be booted and if so, do it.
+     *
+     * @return void
+     */
+    protected function bootIfNotBooted()
+    {
+        if (! isset(static::$booted[static::class])) {
+            static::$booted[static::class] = true;
+
+            static::boot();
+        }
+    }
+
+    /**
+     * The "booting" method of the model.
+     *
+     * @return void
+     */
+    protected static function boot()
+    {
+        //
+    }
+
+    /**
+     * Clear the list of booted models so they will be re-booted.
+     *
+     * @return void
+     */
+    public static function clearBootedModels()
+    {
+        static::$booted = [];
+
+        static::$globalScopes = [];
+    }
+
+    /**
+     * Handle dynamic method calls into the model.
+     *
+     * @param string $method
+     * @param array  $parameters
+     *
+     * @return mixed
+     */
+    public function __call($method, $parameters)
+    {
+        if (method_exists($this, $method)) {
+            return $this->$method(...$parameters);
+        }
+
+        return $this->newQuery()->$method(...$parameters);
+    }
+
+    /**
+     * Handle dynamic static method calls into the method.
+     *
+     * @param string $method
+     * @param array  $parameters
+     *
+     * @return mixed
+     */
+    public static function __callStatic($method, $parameters)
+    {
+        return (new static())->$method(...$parameters);
+    }
+
+    /**
+     * Returns the models distinguished name.
+     *
+     * @return string|null
+     */
+    public function getDn()
+    {
+        return $this->dn;
+    }
+
+    /**
+     * Set the models distinguished name.
+     *
+     * @param string $dn
+     *
+     * @return static
+     */
+    public function setDn($dn)
+    {
+        $this->dn = (string) $dn;
+
+        return $this;
+    }
+
+    /**
+     * Get the LDAP connection for the model.
+     *
+     * @return Connection
+     */
+    public function getConnection()
+    {
+        return static::resolveConnection($this->getConnectionName());
+    }
+
+    /**
+     * Get the current connection name for the model.
+     *
+     * @return string
+     */
+    public function getConnectionName()
+    {
+        return $this->connection;
+    }
+
+    /**
+     * Set the connection associated with the model.
+     *
+     * @param string $name
+     *
+     * @return $this
+     */
+    public function setConnection($name)
+    {
+        $this->connection = $name;
+
+        return $this;
+    }
+
+    /**
+     * Begin querying the model on a given connection.
+     *
+     * @param string|null $connection
+     *
+     * @return Builder
+     */
+    public static function on($connection = null)
+    {
+        $instance = new static();
+
+        $instance->setConnection($connection);
+
+        return $instance->newQuery();
+    }
+
+    /**
+     * Get all the models from the directory.
+     *
+     * @param array|mixed $attributes
+     *
+     * @return Collection|static[]
+     */
+    public static function all($attributes = ['*'])
+    {
+        return static::query()->select($attributes)->paginate();
+    }
+
+    /**
+     * Begin querying the model.
+     *
+     * @return Builder
+     */
+    public static function query()
+    {
+        return (new static())->newQuery();
+    }
+
+    /**
+     * Get a new query for builder filtered by the current models object classes.
+     *
+     * @return Builder
+     */
+    public function newQuery()
+    {
+        return $this->registerModelScopes(
+            $this->newQueryWithoutScopes()
+        );
+    }
+
+    /**
+     * Get a new query builder that doesn't have any global scopes.
+     *
+     * @return Builder
+     */
+    public function newQueryWithoutScopes()
+    {
+        return static::resolveConnection(
+            $this->getConnectionName()
+        )->query()->model($this);
+    }
+
+    /**
+     * Create a new query builder.
+     *
+     * @param Connection $connection
+     *
+     * @return Builder
+     */
+    public function newQueryBuilder(Connection $connection)
+    {
+        return new Builder($connection);
+    }
+
+    /**
+     * Create a new model instance.
+     *
+     * @param array $attributes
+     *
+     * @return static
+     */
+    public function newInstance(array $attributes = [])
+    {
+        return (new static($attributes))->setConnection($this->getConnectionName());
+    }
+
+    /**
+     * Resolve a connection instance.
+     *
+     * @param string|null $connection
+     *
+     * @return Connection
+     */
+    public static function resolveConnection($connection = null)
+    {
+        return static::getConnectionContainer()->get($connection);
+    }
+
+    /**
+     * Get the connection container.
+     *
+     * @return Container
+     */
+    public static function getConnectionContainer()
+    {
+        return static::$container ?? static::getDefaultConnectionContainer();
+    }
+
+    /**
+     * Get the default singleton container instance.
+     *
+     * @return Container
+     */
+    public static function getDefaultConnectionContainer()
+    {
+        return Container::getInstance();
+    }
+
+    /**
+     * Set the connection container.
+     *
+     * @param Container $container
+     *
+     * @return void
+     */
+    public static function setConnectionContainer(Container $container)
+    {
+        static::$container = $container;
+    }
+
+    /**
+     * Unset the connection container.
+     *
+     * @return void
+     */
+    public static function unsetConnectionContainer()
+    {
+        static::$container = null;
+    }
+
+    /**
+     * Register the query scopes for this builder instance.
+     *
+     * @param Builder $builder
+     *
+     * @return Builder
+     */
+    public function registerModelScopes($builder)
+    {
+        $this->applyObjectClassScopes($builder);
+
+        $this->registerGlobalScopes($builder);
+
+        return $builder;
+    }
+
+    /**
+     * Register the global model scopes.
+     *
+     * @param Builder $builder
+     *
+     * @return Builder
+     */
+    public function registerGlobalScopes($builder)
+    {
+        foreach ($this->getGlobalScopes() as $identifier => $scope) {
+            $builder->withGlobalScope($identifier, $scope);
+        }
+
+        return $builder;
+    }
+
+    /**
+     * Apply the model object class scopes to the given builder instance.
+     *
+     * @param Builder $query
+     *
+     * @return void
+     */
+    public function applyObjectClassScopes(Builder $query)
+    {
+        foreach (static::$objectClasses as $objectClass) {
+            $query->where('objectclass', '=', $objectClass);
+        }
+    }
+
+    /**
+     * Returns the models distinguished name when the model is converted to a string.
+     *
+     * @return null|string
+     */
+    public function __toString()
+    {
+        return $this->getDn();
+    }
+
+    /**
+     * Returns a new batch modification.
+     *
+     * @param string|null     $attribute
+     * @param string|int|null $type
+     * @param array           $values
+     *
+     * @return BatchModification
+     */
+    public function newBatchModification($attribute = null, $type = null, $values = [])
+    {
+        return new BatchModification($attribute, $type, $values);
+    }
+
+    /**
+     * Returns a new collection with the specified items.
+     *
+     * @param mixed $items
+     *
+     * @return Collection
+     */
+    public function newCollection($items = [])
+    {
+        return new Collection($items);
+    }
+
+    /**
+     * Dynamically retrieve attributes on the object.
+     *
+     * @param mixed $key
+     *
+     * @return bool
+     */
+    public function __get($key)
+    {
+        return $this->getAttribute($key);
+    }
+
+    /**
+     * Dynamically set attributes on the object.
+     *
+     * @param mixed $key
+     * @param mixed $value
+     *
+     * @return $this
+     */
+    public function __set($key, $value)
+    {
+        return $this->setAttribute($key, $value);
+    }
+
+    /**
+     * Determine if the given offset exists.
+     *
+     * @param string $offset
+     *
+     * @return bool
+     */
+    public function offsetExists($offset)
+    {
+        return ! is_null($this->getAttribute($offset));
+    }
+
+    /**
+     * Get the value for a given offset.
+     *
+     * @param string $offset
+     *
+     * @return mixed
+     */
+    public function offsetGet($offset)
+    {
+        return $this->getAttribute($offset);
+    }
+
+    /**
+     * Set the value at the given offset.
+     *
+     * @param string $offset
+     * @param mixed  $value
+     *
+     * @return void
+     */
+    public function offsetSet($offset, $value)
+    {
+        $this->setAttribute($offset, $value);
+    }
+
+    /**
+     * Unset the value at the given offset.
+     *
+     * @param string $offset
+     *
+     * @return void
+     */
+    public function offsetUnset($offset)
+    {
+        unset($this->attributes[$offset]);
+    }
+
+    /**
+     * Determine if an attribute exists on the model.
+     *
+     * @param string $key
+     *
+     * @return bool
+     */
+    public function __isset($key)
+    {
+        return $this->offsetExists($key);
+    }
+
+    /**
+     * Unset an attribute on the model.
+     *
+     * @param string $key
+     *
+     * @return void
+     */
+    public function __unset($key)
+    {
+        $this->offsetUnset($key);
+    }
+
+    /**
+     * Convert the object into something JSON serializable.
+     *
+     * @return array
+     */
+    public function jsonSerialize()
+    {
+        return $this->attributesToArray();
+    }
+
+    /**
+     * Converts extra attributes for JSON serialization.
+     *
+     * @param array $attributes
+     *
+     * @return array
+     */
+    protected function convertAttributesForJson(array $attributes = [])
+    {
+        // If the model has a GUID set, we need to convert
+        // it due to it being in binary. Otherwise we'll
+        // receive a JSON serialization exception.
+        if ($this->hasAttribute($this->guidKey)) {
+            return array_replace($attributes, [
+                $this->guidKey => [$this->getConvertedGuid()],
+            ]);
+        }
+
+        return $attributes;
+    }
+
+    /**
+     * Reload a fresh model instance from the directory.
+     *
+     * @return static|false
+     */
+    public function fresh()
+    {
+        if (! $this->exists) {
+            return false;
+        }
+
+        return $this->newQuery()->find($this->dn);
+    }
+
+    /**
+     * Determine if two models have the same distinguished name and belong to the same connection.
+     *
+     * @param static $model
+     *
+     * @return bool
+     */
+    public function is(self $model)
+    {
+        return $this->dn == $model->getDn() && $this->getConnectionName() == $model->getConnectionName();
+    }
+
+    /**
+     * Hydrate a new collection of models from LDAP search results.
+     *
+     * @param array $records
+     *
+     * @return Collection
+     */
+    public function hydrate($records)
+    {
+        return $this->newCollection($records)->transform(function ($attributes) {
+            return $attributes instanceof static
+                ? $attributes
+                : static::newInstance()->setRawAttributes($attributes);
+        });
+    }
+
+    /**
+     * Converts the current model into the given model.
+     *
+     * @param Model $into
+     *
+     * @return Model
+     */
+    public function convert(self $into)
+    {
+        $into->setDn($this->getDn());
+        $into->setConnection($this->getConnectionName());
+
+        $this->exists
+            ? $into->setRawAttributes($this->getAttributes())
+            : $into->fill($this->getAttributes());
+
+        return $into;
+    }
+
+    /**
+     * Refreshes the current models attributes with the directory values.
+     *
+     * @return bool
+     */
+    public function refresh()
+    {
+        if ($model = $this->fresh()) {
+            $this->setRawAttributes($model->getAttributes());
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Get the model's batch modifications to be processed.
+     *
+     * @return array
+     */
+    public function getModifications()
+    {
+        $builtModifications = [];
+
+        foreach ($this->buildModificationsFromDirty() as $modification) {
+            $builtModifications[] = $modification->get();
+        }
+
+        return array_merge($this->modifications, $builtModifications);
+    }
+
+    /**
+     * Set the models batch modifications.
+     *
+     * @param array $modifications
+     *
+     * @return $this
+     */
+    public function setModifications(array $modifications = [])
+    {
+        $this->modifications = [];
+
+        foreach ($modifications as $modification) {
+            $this->addModification($modification);
+        }
+
+        return $this;
+    }
+
+    /**
+     * Adds a batch modification to the model.
+     *
+     * @param array|BatchModification $mod
+     *
+     * @throws InvalidArgumentException
+     *
+     * @return $this
+     */
+    public function addModification($mod = [])
+    {
+        if ($mod instanceof BatchModification) {
+            $mod = $mod->get();
+        }
+
+        if ($this->isValidModification($mod)) {
+            $this->modifications[] = $mod;
+
+            return $this;
+        }
+
+        throw new InvalidArgumentException(
+            "The batch modification array does not include the mandatory 'attrib' or 'modtype' keys."
+        );
+    }
+
+    /**
+     * Get the model's guid attribute key name.
+     *
+     * @return string
+     */
+    public function getGuidKey()
+    {
+        return $this->guidKey;
+    }
+
+    /**
+     * Get the model's ANR attributes for querying when incompatible with ANR.
+     *
+     * @return array
+     */
+    public function getAnrAttributes()
+    {
+        return ['cn', 'sn', 'uid', 'name', 'mail', 'givenname', 'displayname'];
+    }
+
+    /**
+     * Get the name of the model, or the given DN.
+     *
+     * @param string|null $dn
+     *
+     * @return string|null
+     */
+    public function getName($dn = null)
+    {
+        return $this->newDn($dn ?? $this->dn)->name();
+    }
+
+    /**
+     * Get the head attribute of the model, or the given DN.
+     *
+     * @param string|null $dn
+     *
+     * @return string|null
+     */
+    public function getHead($dn = null)
+    {
+        return $this->newDn($dn ?? $this->dn)->head();
+    }
+
+    /**
+     * Get the RDN of the model, of the given DN.
+     *
+     * @param string|null
+     *
+     * @return string|null
+     */
+    public function getRdn($dn = null)
+    {
+        return $this->newDn($dn ?? $this->dn)->relative();
+    }
+
+    /**
+     * Get the parent distinguished name of the model, or the given DN.
+     *
+     * @param string|null
+     *
+     * @return string|null
+     */
+    public function getParentDn($dn = null)
+    {
+        return $this->newDn($dn ?? $this->dn)->parent();
+    }
+
+    /**
+     * Create a new Distinguished Name object.
+     *
+     * @param string|null $dn
+     *
+     * @return DistinguishedName
+     */
+    public function newDn($dn = null)
+    {
+        return new DistinguishedName($dn);
+    }
+
+    /**
+     * Get the model's object GUID key.
+     *
+     * @return void
+     */
+    public function getObjectGuidKey()
+    {
+        return $this->guidKey;
+    }
+
+    /**
+     * Get the model's binary object GUID.
+     *
+     * @see https://msdn.microsoft.com/en-us/library/ms679021(v=vs.85).aspx
+     *
+     * @return string|null
+     */
+    public function getObjectGuid()
+    {
+        return $this->getFirstAttribute($this->guidKey);
+    }
+
+    /**
+     * Get the model's object classes.
+     *
+     * @return array
+     */
+    public function getObjectClasses()
+    {
+        return $this->getAttribute('objectclass') ?: [];
+    }
+
+    /**
+     * Get the model's string GUID.
+     *
+     * @return string|null
+     */
+    public function getConvertedGuid()
+    {
+        try {
+            return (string) new Guid($this->getObjectGuid());
+        } catch (InvalidArgumentException $e) {
+            return;
+        }
+    }
+
+    /**
+     * Determine if the current model is a direct descendant of the given.
+     *
+     * @param static|string $parent
+     *
+     * @return bool
+     */
+    public function isChildOf($parent)
+    {
+        return $this->newDn($this->getDn())->isChildOf(
+            $this->newDn((string) $parent)
+        );
+    }
+
+    /**
+     * Determine if the current model is a direct ascendant of the given.
+     *
+     * @param static|string $child
+     *
+     * @return bool
+     */
+    public function isParentOf($child)
+    {
+        return $this->newDn($this->getDn())->isParentOf(
+            $this->newDn((string) $child)
+        );
+    }
+
+    /**
+     * Determine if the current model is a descendant of the given.
+     *
+     * @param static|string $model
+     *
+     * @return bool
+     */
+    public function isDescendantOf($model)
+    {
+        return $this->dnIsInside($this->getDn(), $model);
+    }
+
+    /**
+     * Determine if the current model is a ancestor of the given.
+     *
+     * @param static|string $model
+     *
+     * @return bool
+     */
+    public function isAncestorOf($model)
+    {
+        return $this->dnIsInside($model, $this->getDn());
+    }
+
+    /**
+     * Determines if the DN is inside of the parent DN.
+     *
+     * @param static|string $dn
+     * @param static|string $parentDn
+     *
+     * @return bool
+     */
+    protected function dnIsInside($dn, $parentDn)
+    {
+        return $this->newDn((string) $dn)->isDescendantOf(
+            $this->newDn($parentDn)
+        );
+    }
+
+    /**
+     * Set the base DN of where the model should be created in.
+     *
+     * @param static|string $dn
+     *
+     * @return $this
+     */
+    public function inside($dn)
+    {
+        $this->in = $dn instanceof self ? $dn->getDn() : $dn;
+
+        return $this;
+    }
+
+    /**
+     * Save the model to the directory.
+     *
+     * @param array $attributes The attributes to update or create for the current entry.
+     *
+     * @throws \LdapRecord\LdapRecordException
+     *
+     * @return void
+     */
+    public function save(array $attributes = [])
+    {
+        $this->fill($attributes);
+
+        $this->fireModelEvent(new Events\Saving($this));
+
+        $this->exists ? $this->performUpdate() : $this->performInsert();
+
+        $this->fireModelEvent(new Events\Saved($this));
+
+        $this->in = null;
+    }
+
+    /**
+     * Inserts the model into the directory.
+     *
+     * @throws \LdapRecord\LdapRecordException
+     *
+     * @return void
+     */
+    protected function performInsert()
+    {
+        // Here we will populate the models object classes if it
+        // does not already have any set. An LDAP object cannot
+        // be successfully created in the server without them.
+        if (! $this->hasAttribute('objectclass')) {
+            $this->setAttribute('objectclass', static::$objectClasses);
+        }
+
+        $query = $this->newQuery();
+
+        // If the model does not currently have a distinguished
+        // name, we will attempt to generate one automatically
+        // using the current query builder's DN as the base.
+        if (empty($this->getDn())) {
+            $this->setDn($this->getCreatableDn());
+        }
+
+        $this->fireModelEvent(new Events\Creating($this));
+
+        // Here we perform the insert of new object in the directory,
+        // but filter out any empty attributes before sending them
+        // to the server. LDAP servers will throw an exception if
+        // attributes have been given empty or null values.
+        $query->insert($this->getDn(), array_filter($this->getAttributes()));
+
+        $this->fireModelEvent(new Events\Created($this));
+
+        $this->syncOriginal();
+
+        $this->exists = true;
+
+        $this->wasRecentlyCreated = true;
+    }
+
+    /**
+     * Updates the model in the directory.
+     *
+     * @throws \LdapRecord\LdapRecordException
+     *
+     * @return void
+     */
+    protected function performUpdate()
+    {
+        if (! count($modifications = $this->getModifications())) {
+            return;
+        }
+
+        $this->fireModelEvent(new Events\Updating($this));
+
+        $this->newQuery()->update($this->dn, $modifications);
+
+        $this->fireModelEvent(new Events\Updated($this));
+
+        $this->syncOriginal();
+
+        $this->modifications = [];
+    }
+
+    /**
+     * Create the model in the directory.
+     *
+     * @param array $attributes The attributes for the new entry.
+     *
+     * @throws \LdapRecord\LdapRecordException
+     *
+     * @return Model
+     */
+    public static function create(array $attributes = [])
+    {
+        $instance = new static($attributes);
+
+        $instance->save();
+
+        return $instance;
+    }
+
+    /**
+     * Create an attribute on the model.
+     *
+     * @param string $attribute The attribute to create
+     * @param mixed  $value     The value of the new attribute
+     *
+     * @throws ModelDoesNotExistException
+     * @throws \LdapRecord\LdapRecordException
+     *
+     * @return void
+     */
+    public function createAttribute($attribute, $value)
+    {
+        $this->validateExistence();
+
+        $this->newQuery()->insertAttributes($this->dn, [$attribute => (array) $value]);
+
+        $this->addAttributeValue($attribute, $value);
+    }
+
+    /**
+     * Update the model.
+     *
+     * @param array $attributes The attributes to update for the current entry.
+     *
+     * @throws ModelDoesNotExistException
+     * @throws \LdapRecord\LdapRecordException
+     *
+     * @return void
+     */
+    public function update(array $attributes = [])
+    {
+        $this->validateExistence();
+
+        $this->save($attributes);
+    }
+
+    /**
+     * Update the model attribute with the specified value.
+     *
+     * @param string $attribute The attribute to modify
+     * @param mixed  $value     The new value for the attribute
+     *
+     * @throws ModelDoesNotExistException
+     * @throws \LdapRecord\LdapRecordException
+     *
+     * @return void
+     */
+    public function updateAttribute($attribute, $value)
+    {
+        $this->validateExistence();
+
+        $this->newQuery()->updateAttributes($this->dn, [$attribute => (array) $value]);
+
+        $this->addAttributeValue($attribute, $value);
+    }
+
+    /**
+     * Destroy the models for the given distinguished names.
+     *
+     * @param Collection|array|string $dns
+     * @param bool                    $recursive
+     *
+     * @throws \LdapRecord\LdapRecordException
+     *
+     * @return int
+     */
+    public static function destroy($dns, $recursive = false)
+    {
+        $count = 0;
+
+        $dns = is_string($dns) ? (array) $dns : $dns;
+
+        $instance = new static();
+
+        foreach ($dns as $dn) {
+            if (! $model = $instance->find($dn)) {
+                continue;
+            }
+
+            $model->delete($recursive);
+
+            $count++;
+        }
+
+        return $count;
+    }
+
+    /**
+     * Delete the model from the directory.
+     *
+     * Throws a ModelNotFoundException if the current model does
+     * not exist or does not contain a distinguished name.
+     *
+     * @param bool $recursive Whether to recursively delete leaf nodes (models that are children).
+     *
+     * @throws ModelDoesNotExistException
+     * @throws \LdapRecord\LdapRecordException
+     *
+     * @return void
+     */
+    public function delete($recursive = false)
+    {
+        $this->validateExistence();
+
+        $this->fireModelEvent(new Events\Deleting($this));
+
+        if ($recursive) {
+            $this->deleteLeafNodes();
+        }
+
+        $this->newQuery()->delete($this->dn);
+
+        // If the deletion is successful, we will mark the model
+        // as non-existing, and then fire the deleted event so
+        // developers can hook in and run further operations.
+        $this->exists = false;
+
+        $this->fireModelEvent(new Events\Deleted($this));
+    }
+
+    /**
+     * Deletes leaf nodes that are attached to the model.
+     *
+     * @throws \LdapRecord\LdapRecordException
+     *
+     * @return Collection
+     */
+    protected function deleteLeafNodes()
+    {
+        return $this->newQueryWithoutScopes()
+            ->in($this->dn)
+            ->listing()
+            ->paginate()
+            ->each(function (self $model) {
+                $model->delete($recursive = true);
+            });
+    }
+
+    /**
+     * Delete an attribute on the model.
+     *
+     * @param string|array $attributes The attribute(s) to delete
+     *
+     * Delete specific values in attributes:
+     *
+     *     ["memberuid" => "jdoe"]
+     *
+     * Delete an entire attribute:
+     *
+     *     ["memberuid" => []]
+     *
+     * @throws ModelDoesNotExistException
+     * @throws \LdapRecord\LdapRecordException
+     *
+     * @return void
+     */
+    public function deleteAttribute($attributes)
+    {
+        $this->validateExistence();
+
+        $attributes = $this->makeDeletableAttributes($attributes);
+
+        $this->newQuery()->deleteAttributes($this->dn, $attributes);
+
+        foreach ($attributes as $attribute => $value) {
+            // If the attribute value is empty, we can assume the
+            // attribute was completely deleted from the model.
+            // We will pull the attribute out and continue on.
+            if (empty($value)) {
+                unset($this->attributes[$attribute]);
+            }
+            // Otherwise, only specific attribute values have been
+            // removed. We will determine which ones have been
+            // removed and update the attributes value.
+            elseif (Arr::exists($this->attributes, $attribute)) {
+                $this->attributes[$attribute] = array_values(
+                    array_diff($this->attributes[$attribute], (array) $value)
+                );
+            }
+        }
+
+        $this->syncOriginal();
+    }
+
+    /**
+     * Make a deletable attribute array.
+     *
+     * @param string|array $attributes
+     *
+     * @return array
+     */
+    protected function makeDeletableAttributes($attributes)
+    {
+        $delete = [];
+
+        foreach (Arr::wrap($attributes) as $key => $value) {
+            is_int($key)
+                ? $delete[$value] = []
+                : $delete[$key] = Arr::wrap($value);
+        }
+
+        return $delete;
+    }
+
+    /**
+     * Move the model into the given new parent.
+     *
+     * For example: $user->move($ou);
+     *
+     * @param static|string $newParentDn  The new parent of the current model.
+     * @param bool          $deleteOldRdn Whether to delete the old models relative distinguished name once renamed / moved.
+     *
+     * @throws UnexpectedValueException
+     * @throws ModelDoesNotExistException
+     * @throws \LdapRecord\LdapRecordException
+     *
+     * @return void
+     */
+    public function move($newParentDn, $deleteOldRdn = true)
+    {
+        $this->validateExistence();
+
+        if (! $rdn = $this->getRdn()) {
+            throw new UnexpectedValueException('Current model does not contain an RDN to move.');
+        }
+
+        $this->rename($rdn, $newParentDn, $deleteOldRdn);
+    }
+
+    /**
+     * Rename the model to a new RDN and new parent.
+     *
+     * @param string             $rdn          The models new relative distinguished name. Example: "cn=JohnDoe"
+     * @param static|string|null $newParentDn  The models new parent distinguished name (if moving). Leave this null if you are only renaming. Example: "ou=MovedUsers,dc=acme,dc=org"
+     * @param bool|true          $deleteOldRdn Whether to delete the old models relative distinguished name once renamed / moved.
+     *
+     * @throws ModelDoesNotExistException
+     * @throws \LdapRecord\LdapRecordException
+     *
+     * @return void
+     */
+    public function rename($rdn, $newParentDn = null, $deleteOldRdn = true)
+    {
+        $this->validateExistence();
+
+        if ($newParentDn instanceof self) {
+            $newParentDn = $newParentDn->getDn();
+        }
+
+        if (is_null($newParentDn)) {
+            $newParentDn = $this->getParentDn($this->dn);
+        }
+
+        // If the RDN and the new parent DN are the same as the current,
+        // we will simply return here to prevent a rename operation
+        // being sent, which would fail anyway in such case.
+        if (
+            $rdn === $this->getRdn()
+         && $newParentDn === $this->getParentDn()
+        ) {
+            return;
+        }
+
+        $this->fireModelEvent(new Renaming($this, $rdn, $newParentDn));
+
+        $this->newQuery()->rename($this->dn, $rdn, $newParentDn, $deleteOldRdn);
+
+        // If the model was successfully renamed, we will set
+        // its new DN so any further updates to the model
+        // can be performed without any issues.
+        $this->dn = implode(',', [$rdn, $newParentDn]);
+
+        $map = $this->newDn($this->dn)->assoc();
+
+        // Here we'll populate the models new primary
+        // RDN attribute on the model so we do not
+        // have to re-synchronize with the server.
+        $modelNameAttribute = key($map);
+
+        $this->attributes[$modelNameAttribute]
+            = $this->original[$modelNameAttribute]
+            = [reset($map[$modelNameAttribute])];
+
+        $this->fireModelEvent(new Renamed($this));
+
+        $this->wasRecentlyRenamed = true;
+    }
+
+    /**
+     * Get a distinguished name that is creatable for the model.
+     *
+     * @param string|null $name
+     * @param string|null $attribute
+     *
+     * @return string
+     */
+    public function getCreatableDn($name = null, $attribute = null)
+    {
+        return implode(',', [
+            $this->getCreatableRdn($name, $attribute),
+            $this->in ?? $this->newQuery()->getbaseDn(),
+        ]);
+    }
+
+    /**
+     * Get a creatable (escaped) RDN for the model.
+     *
+     * @param string|null $name
+     * @param string|null $attribute
+     *
+     * @return string
+     */
+    public function getCreatableRdn($name = null, $attribute = null)
+    {
+        $attribute = $attribute ?? $this->getCreatableRdnAttribute();
+
+        $name = $this->escape(
+            $name ?? $this->getFirstAttribute($attribute)
+        )->dn();
+
+        return "$attribute=$name";
+    }
+
+    /**
+     * Get the creatable RDN attribute name.
+     *
+     * @return string
+     */
+    protected function getCreatableRdnAttribute()
+    {
+        return 'cn';
+    }
+
+    /**
+     * Determines if the given modification is valid.
+     *
+     * @param mixed $mod
+     *
+     * @return bool
+     */
+    protected function isValidModification($mod)
+    {
+        return Arr::accessible($mod)
+            && Arr::exists($mod, BatchModification::KEY_MODTYPE)
+            && Arr::exists($mod, BatchModification::KEY_ATTRIB);
+    }
+
+    /**
+     * Builds the models modifications from its dirty attributes.
+     *
+     * @return BatchModification[]
+     */
+    protected function buildModificationsFromDirty()
+    {
+        $modifications = [];
+
+        foreach ($this->getDirty() as $attribute => $values) {
+            $modification = $this->newBatchModification($attribute, null, (array) $values);
+
+            if (Arr::exists($this->original, $attribute)) {
+                // If the attribute we're modifying has an original value, we will
+                // give the BatchModification object its values to automatically
+                // determine which type of LDAP operation we need to perform.
+                $modification->setOriginal($this->original[$attribute]);
+            }
+
+            if (! $modification->build()->isValid()) {
+                continue;
+            }
+
+            $modifications[] = $modification;
+        }
+
+        return $modifications;
+    }
+
+    /**
+     * Validates that the current model exists.
+     *
+     * @throws ModelDoesNotExistException
+     *
+     * @return void
+     */
+    protected function validateExistence()
+    {
+        if (! $this->exists || is_null($this->dn)) {
+            throw ModelDoesNotExistException::forModel($this);
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ModelDoesNotExistException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ModelDoesNotExistException.php
new file mode 100644
index 0000000..2dd2ba9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ModelDoesNotExistException.php
@@ -0,0 +1,45 @@
+<?php
+
+namespace LdapRecord\Models;
+
+use LdapRecord\LdapRecordException;
+
+class ModelDoesNotExistException extends LdapRecordException
+{
+    /**
+     * The class name of the model that does not exist.
+     *
+     * @var Model
+     */
+    protected $model;
+
+    /**
+     * Create a new exception for the given model.
+     *
+     * @param Model $model
+     *
+     * @return ModelDoesNotExistException
+     */
+    public static function forModel(Model $model)
+    {
+        return (new static())->setModel($model);
+    }
+
+    /**
+     * Set the model that does not exist.
+     *
+     * @param Model $model
+     *
+     * @return ModelDoesNotExistException
+     */
+    public function setModel(Model $model)
+    {
+        $this->model = $model;
+
+        $class = get_class($model);
+
+        $this->message = "Model [{$class}] does not exist.";
+
+        return $this;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ModelNotFoundException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ModelNotFoundException.php
new file mode 100644
index 0000000..be88bab
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/ModelNotFoundException.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace LdapRecord\Models;
+
+use LdapRecord\Query\ObjectNotFoundException;
+
+class ModelNotFoundException extends ObjectNotFoundException
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/OpenLDAP/Entry.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/OpenLDAP/Entry.php
new file mode 100644
index 0000000..b7ad37a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/OpenLDAP/Entry.php
@@ -0,0 +1,45 @@
+<?php
+
+namespace LdapRecord\Models\OpenLDAP;
+
+use LdapRecord\Connection;
+use LdapRecord\Models\Entry as BaseEntry;
+use LdapRecord\Models\OpenLDAP\Scopes\AddEntryUuidToSelects;
+use LdapRecord\Models\Types\OpenLDAP;
+use LdapRecord\Query\Model\OpenLdapBuilder;
+
+/** @mixin OpenLdapBuilder */
+class Entry extends BaseEntry implements OpenLDAP
+{
+    /**
+     * The attribute key that contains the models object GUID.
+     *
+     * @var string
+     */
+    protected $guidKey = 'entryuuid';
+
+    /**
+     * @inheritdoc
+     */
+    protected static function boot()
+    {
+        parent::boot();
+
+        // Here we'll add a global scope to all OpenLDAP models to ensure the
+        // Entry UUID is always selected on each query. This attribute is
+        // virtual, so it must be manually selected to be included.
+        static::addGlobalScope(new AddEntryUuidToSelects());
+    }
+
+    /**
+     * Create a new query builder.
+     *
+     * @param Connection $connection
+     *
+     * @return OpenLdapBuilder
+     */
+    public function newQueryBuilder(Connection $connection)
+    {
+        return new OpenLdapBuilder($connection);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/OpenLDAP/Group.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/OpenLDAP/Group.php
new file mode 100644
index 0000000..2d8d94e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/OpenLDAP/Group.php
@@ -0,0 +1,16 @@
+<?php
+
+namespace LdapRecord\Models\OpenLDAP;
+
+class Group extends Entry
+{
+    /**
+     * The object classes of the LDAP model.
+     *
+     * @var array
+     */
+    public static $objectClasses = [
+        'top',
+        'groupofuniquenames',
+    ];
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/OpenLDAP/OrganizationalUnit.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/OpenLDAP/OrganizationalUnit.php
new file mode 100644
index 0000000..7ae0a37
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/OpenLDAP/OrganizationalUnit.php
@@ -0,0 +1,26 @@
+<?php
+
+namespace LdapRecord\Models\OpenLDAP;
+
+class OrganizationalUnit extends Entry
+{
+    /**
+     * The object classes of the LDAP model.
+     *
+     * @var array
+     */
+    public static $objectClasses = [
+        'top',
+        'organizationalunit',
+    ];
+
+    /**
+     * Get the creatable RDN attribute name.
+     *
+     * @return string
+     */
+    public function getCreatableRdnAttribute()
+    {
+        return 'ou';
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/OpenLDAP/Scopes/AddEntryUuidToSelects.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/OpenLDAP/Scopes/AddEntryUuidToSelects.php
new file mode 100644
index 0000000..54376c2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/OpenLDAP/Scopes/AddEntryUuidToSelects.php
@@ -0,0 +1,25 @@
+<?php
+
+namespace LdapRecord\Models\OpenLDAP\Scopes;
+
+use LdapRecord\Models\Model;
+use LdapRecord\Models\Scope;
+use LdapRecord\Query\Model\Builder;
+
+class AddEntryUuidToSelects implements Scope
+{
+    /**
+     * Add the entry UUID to the selected attributes.
+     *
+     * @param Builder $query
+     * @param Model   $model
+     *
+     * @return void
+     */
+    public function apply(Builder $query, Model $model)
+    {
+        empty($query->columns)
+            ? $query->addSelect(['*', $model->getGuidKey()])
+            : $query->addSelect($model->getGuidKey());
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/OpenLDAP/User.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/OpenLDAP/User.php
new file mode 100644
index 0000000..b37f390
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/OpenLDAP/User.php
@@ -0,0 +1,51 @@
+<?php
+
+namespace LdapRecord\Models\OpenLDAP;
+
+use Illuminate\Contracts\Auth\Authenticatable;
+use LdapRecord\Models\Concerns\CanAuthenticate;
+use LdapRecord\Models\Concerns\HasPassword;
+
+class User extends Entry implements Authenticatable
+{
+    use HasPassword;
+    use CanAuthenticate;
+
+    /**
+     * The password's attribute name.
+     *
+     * @var string
+     */
+    protected $passwordAttribute = 'userpassword';
+
+    /**
+     * The password's hash method.
+     *
+     * @var string
+     */
+    protected $passwordHashMethod = 'ssha';
+
+    /**
+     * The object classes of the LDAP model.
+     *
+     * @var array
+     */
+    public static $objectClasses = [
+        'top',
+        'person',
+        'organizationalperson',
+        'inetorgperson',
+    ];
+
+    /**
+     * The groups relationship.
+     *
+     * Retrieves groups that the user is apart of.
+     *
+     * @return \LdapRecord\Models\Relations\HasMany
+     */
+    public function groups()
+    {
+        return $this->hasMany(Group::class, 'memberuid', 'uid');
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Relations/HasMany.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Relations/HasMany.php
new file mode 100644
index 0000000..d8dfa08
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Relations/HasMany.php
@@ -0,0 +1,344 @@
+<?php
+
+namespace LdapRecord\Models\Relations;
+
+use Closure;
+use LdapRecord\DetectsErrors;
+use LdapRecord\LdapRecordException;
+use LdapRecord\Models\Model;
+use LdapRecord\Models\ModelNotFoundException;
+use LdapRecord\Query\Collection;
+
+class HasMany extends OneToMany
+{
+    use DetectsErrors;
+
+    /**
+     * The model to use for attaching / detaching.
+     *
+     * @var Model
+     */
+    protected $using;
+
+    /**
+     * The attribute key to use for attaching / detaching.
+     *
+     * @var string
+     */
+    protected $usingKey;
+
+    /**
+     * The pagination page size.
+     *
+     * @var int
+     */
+    protected $pageSize = 1000;
+
+    /**
+     * The exceptions to bypass for each relation operation.
+     *
+     * @var array
+     */
+    protected $bypass = [
+        'attach' => [
+            'Already exists', 'Type or value exists',
+        ],
+        'detach' => [
+            'No such attribute', 'Server is unwilling to perform',
+        ],
+    ];
+
+    /**
+     * Set the model and attribute to use for attaching / detaching.
+     *
+     * @param Model  $using
+     * @param string $usingKey
+     *
+     * @return $this
+     */
+    public function using(Model $using, $usingKey)
+    {
+        $this->using = $using;
+        $this->usingKey = $usingKey;
+
+        return $this;
+    }
+
+    /**
+     * Set the pagination page size of the relation query.
+     *
+     * @param int $pageSize
+     *
+     * @return $this
+     */
+    public function setPageSize($pageSize)
+    {
+        $this->pageSize = $pageSize;
+
+        return $this;
+    }
+
+    /**
+     * Paginate the relation using the given page size.
+     *
+     * @param int $pageSize
+     *
+     * @return Collection
+     */
+    public function paginate($pageSize = 1000)
+    {
+        return $this->paginateOnceUsing($pageSize);
+    }
+
+    /**
+     * Paginate the relation using the page size once.
+     *
+     * @param int $pageSize
+     *
+     * @return Collection
+     */
+    protected function paginateOnceUsing($pageSize)
+    {
+        $size = $this->pageSize;
+
+        $result = $this->setPageSize($pageSize)->get();
+
+        $this->pageSize = $size;
+
+        return $result;
+    }
+
+    /**
+     * Chunk the relation results using the given callback.
+     *
+     * @param int     $pageSize
+     * @param Closure $callback
+     *
+     * @return void
+     */
+    public function chunk($pageSize, Closure $callback)
+    {
+        $this->getRelationQuery()->chunk($pageSize, function ($entries) use ($callback) {
+            $callback($this->transformResults($entries));
+        });
+    }
+
+    /**
+     * Get the relationships results.
+     *
+     * @return Collection
+     */
+    public function getRelationResults()
+    {
+        return $this->transformResults(
+            $this->getRelationQuery()->paginate($this->pageSize)
+        );
+    }
+
+    /**
+     * Get the prepared relationship query.
+     *
+     * @return \LdapRecord\Query\Model\Builder
+     */
+    public function getRelationQuery()
+    {
+        $columns = $this->query->getSelects();
+
+        // We need to select the proper key to be able to retrieve its
+        // value from LDAP results. If we don't, we won't be able
+        // to properly attach / detach models from relation
+        // query results as the attribute will not exist.
+        $key = $this->using ? $this->usingKey : $this->relationKey;
+
+        // If the * character is missing from the attributes to select,
+        // we will add the key to the attributes to select and also
+        // validate that the key isn't already being selected
+        // to prevent stacking on multiple relation calls.
+        if (! in_array('*', $columns) && ! in_array($key, $columns)) {
+            $this->query->addSelect($key);
+        }
+
+        return $this->query->whereRaw(
+            $this->relationKey,
+            '=',
+            $this->getEscapedForeignValueFromModel($this->parent)
+        );
+    }
+
+    /**
+     * Attach a model to the relation.
+     *
+     * @param Model|string $model
+     *
+     * @return Model|string|false
+     */
+    public function attach($model)
+    {
+        return $this->attemptFailableOperation(
+            $this->buildAttachCallback($model),
+            $this->bypass['attach'],
+            $model
+        );
+    }
+
+    /**
+     * Build the attach callback.
+     *
+     * @param Model|string $model
+     *
+     * @return \Closure
+     */
+    protected function buildAttachCallback($model)
+    {
+        return function () use ($model) {
+            $foreign = $this->getAttachableForeignValue($model);
+
+            if ($this->using) {
+                return $this->using->createAttribute($this->usingKey, $foreign);
+            }
+
+            if (! $model instanceof Model) {
+                $model = $this->getForeignModelByValueOrFail($model);
+            }
+
+            return $model->createAttribute($this->relationKey, $foreign);
+        };
+    }
+
+    /**
+     * Attach a collection of models to the parent instance.
+     *
+     * @param iterable $models
+     *
+     * @return iterable
+     */
+    public function attachMany($models)
+    {
+        foreach ($models as $model) {
+            $this->attach($model);
+        }
+
+        return $models;
+    }
+
+    /**
+     * Detach the model from the relation.
+     *
+     * @param Model|string $model
+     *
+     * @return Model|string|false
+     */
+    public function detach($model)
+    {
+        return $this->attemptFailableOperation(
+            $this->buildDetachCallback($model),
+            $this->bypass['detach'],
+            $model
+        );
+    }
+
+    /**
+     * Build the detach callback.
+     *
+     * @param Model|string $model
+     *
+     * @return \Closure
+     */
+    protected function buildDetachCallback($model)
+    {
+        return function () use ($model) {
+            $foreign = $this->getAttachableForeignValue($model);
+
+            if ($this->using) {
+                return $this->using->deleteAttribute([$this->usingKey => $foreign]);
+            }
+
+            if (! $model instanceof Model) {
+                $model = $this->getForeignModelByValueOrFail($model);
+            }
+
+            return $model->deleteAttribute([$this->relationKey => $foreign]);
+        };
+    }
+
+    /**
+     * Get the attachable foreign value from the model.
+     *
+     * @param Model|string $model
+     *
+     * @return string
+     */
+    protected function getAttachableForeignValue($model)
+    {
+        if ($model instanceof Model) {
+            return $this->using
+                ? $this->getForeignValueFromModel($model)
+                : $this->getParentForeignValue();
+        }
+
+        return $this->using ? $model : $this->getParentForeignValue();
+    }
+
+    /**
+     * Get the foreign model by the given value, or fail.
+     *
+     * @param string $model
+     *
+     * @throws ModelNotFoundException
+     *
+     * @return Model
+     */
+    protected function getForeignModelByValueOrFail($model)
+    {
+        if (! is_null($model = $this->getForeignModelByValue($model))) {
+            return $model;
+        }
+
+        throw ModelNotFoundException::forQuery(
+            $this->query->getUnescapedQuery(),
+            $this->query->getDn()
+        );
+    }
+
+    /**
+     * Attempt a failable operation and return the value if successful.
+     *
+     * If a bypassable exception is encountered, the value will be returned.
+     *
+     * @param callable     $operation
+     * @param string|array $bypass
+     * @param mixed        $value
+     *
+     * @throws LdapRecordException
+     *
+     * @return mixed
+     */
+    protected function attemptFailableOperation($operation, $bypass, $value)
+    {
+        try {
+            $operation();
+
+            return $value;
+        } catch (LdapRecordException $e) {
+            if ($this->errorContainsMessage($e->getMessage(), $bypass)) {
+                return $value;
+            }
+
+            throw $e;
+        }
+    }
+
+    /**
+     * Detach all relation models.
+     *
+     * @return Collection
+     */
+    public function detachAll()
+    {
+        return $this->onceWithoutMerging(function () {
+            return $this->get()->each(function (Model $model) {
+                $this->detach($model);
+            });
+        });
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Relations/HasManyIn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Relations/HasManyIn.php
new file mode 100644
index 0000000..303a144
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Relations/HasManyIn.php
@@ -0,0 +1,26 @@
+<?php
+
+namespace LdapRecord\Models\Relations;
+
+use LdapRecord\Query\Collection;
+
+class HasManyIn extends OneToMany
+{
+    /**
+     * Get the relationships results.
+     *
+     * @return Collection
+     */
+    public function getRelationResults()
+    {
+        $results = $this->parent->newCollection();
+
+        foreach ((array) $this->parent->getAttribute($this->relationKey) as $value) {
+            if ($foreign = $this->getForeignModelByValue($value)) {
+                $results->push($foreign);
+            }
+        }
+
+        return $this->transformResults($results);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Relations/HasOne.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Relations/HasOne.php
new file mode 100644
index 0000000..9a9b2f9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Relations/HasOne.php
@@ -0,0 +1,56 @@
+<?php
+
+namespace LdapRecord\Models\Relations;
+
+use LdapRecord\Models\Model;
+
+class HasOne extends Relation
+{
+    /**
+     * Get the results of the relationship.
+     *
+     * @return \LdapRecord\Query\Collection
+     */
+    public function getResults()
+    {
+        $model = $this->getForeignModelByValue(
+            $this->getFirstAttributeValue($this->parent, $this->relationKey)
+        );
+
+        return $this->transformResults(
+            $this->parent->newCollection($model ? [$model] : null)
+        );
+    }
+
+    /**
+     * Attach a model instance to the parent model.
+     *
+     * @param Model|string $model
+     *
+     * @throws \LdapRecord\LdapRecordException
+     *
+     * @return Model|string
+     */
+    public function attach($model)
+    {
+        $foreign = $model instanceof Model
+            ? $this->getForeignValueFromModel($model)
+            : $model;
+
+        $this->parent->setAttribute($this->relationKey, $foreign)->save();
+
+        return $model;
+    }
+
+    /**
+     * Detach the related model from the parent.
+     *
+     * @throws \LdapRecord\LdapRecordException
+     *
+     * @return void
+     */
+    public function detach()
+    {
+        $this->parent->setAttribute($this->relationKey, null)->save();
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Relations/OneToMany.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Relations/OneToMany.php
new file mode 100644
index 0000000..d0a407c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Relations/OneToMany.php
@@ -0,0 +1,186 @@
+<?php
+
+namespace LdapRecord\Models\Relations;
+
+use LdapRecord\Models\Model;
+use LdapRecord\Query\Collection;
+use LdapRecord\Query\Model\Builder;
+
+abstract class OneToMany extends Relation
+{
+    /**
+     * The relation to merge results with.
+     *
+     * @var OneToMany|null
+     */
+    protected $with;
+
+    /**
+     * The name of the relationship.
+     *
+     * @var string
+     */
+    protected $relationName;
+
+    /**
+     * Whether to include recursive results.
+     *
+     * @var bool
+     */
+    protected $recursive = false;
+
+    /**
+     * Constructor.
+     *
+     * @param Builder $query
+     * @param Model   $parent
+     * @param string  $related
+     * @param string  $relationKey
+     * @param string  $foreignKey
+     * @param string  $relationName
+     */
+    public function __construct(Builder $query, Model $parent, $related, $relationKey, $foreignKey, $relationName)
+    {
+        $this->relationName = $relationName;
+
+        parent::__construct($query, $parent, $related, $relationKey, $foreignKey);
+    }
+
+    /**
+     * Set the relation to load with its parent.
+     *
+     * @param OneToMany $relation
+     *
+     * @return $this
+     */
+    public function with(Relation $relation)
+    {
+        $this->with = $relation;
+
+        return $this;
+    }
+
+    /**
+     * Whether to include recursive results.
+     *
+     * @param bool $enable
+     *
+     * @return $this
+     */
+    public function recursive($enable = true)
+    {
+        $this->recursive = $enable;
+
+        return $this;
+    }
+
+    /**
+     * Get the immediate relationships results.
+     *
+     * @return Collection
+     */
+    abstract public function getRelationResults();
+
+    /**
+     * Get the results of the relationship.
+     *
+     * @return Collection
+     */
+    public function getResults()
+    {
+        $results = $this->recursive
+            ? $this->getRecursiveResults()
+            : $this->getRelationResults();
+
+        return $results->merge(
+            $this->getMergingRelationResults()
+        );
+    }
+
+    /**
+     * Execute the callback excluding the merged query result.
+     *
+     * @param callable $callback
+     *
+     * @return mixed
+     */
+    protected function onceWithoutMerging($callback)
+    {
+        $merging = $this->with;
+
+        $this->with = null;
+
+        $result = $callback();
+
+        $this->with = $merging;
+
+        return $result;
+    }
+
+    /**
+     * Get the relation name.
+     *
+     * @return string
+     */
+    public function getRelationName()
+    {
+        return $this->relationName;
+    }
+
+    /**
+     * Get the results of the merging 'with' relation.
+     *
+     * @return Collection
+     */
+    protected function getMergingRelationResults()
+    {
+        return $this->with
+            ? $this->with->recursive($this->recursive)->get()
+            : $this->parent->newCollection();
+    }
+
+    /**
+     * Get the results for the models relation recursively.
+     *
+     * @param string[] $loaded The distinguished names of models already loaded
+     *
+     * @return Collection
+     */
+    protected function getRecursiveResults(array $loaded = [])
+    {
+        $results = $this->getRelationResults()->reject(function (Model $model) use ($loaded) {
+            // Here we will exclude the models that we have already
+            // loaded the recursive results for so we don't run
+            // into issues with circular relations in LDAP.
+            return in_array($model->getDn(), $loaded);
+        });
+
+        foreach ($results as $model) {
+            $loaded[] = $model->getDn();
+
+            // Finally, we will fetch the related models relations,
+            // passing along our loaded models, to ensure we do
+            // not attempt fetching already loaded relations.
+            $results = $results->merge(
+                $this->getRecursiveRelationResults($model, $loaded)
+            );
+        }
+
+        return $results;
+    }
+
+    /**
+     * Get the recursive relation results for given model.
+     *
+     * @param Model $model
+     * @param array $loaded
+     *
+     * @return Collection
+     */
+    protected function getRecursiveRelationResults(Model $model, array $loaded)
+    {
+        return method_exists($model, $this->relationName)
+            ? $model->{$this->relationName}()->getRecursiveResults($loaded)
+            : $model->newCollection();
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Relations/Relation.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Relations/Relation.php
new file mode 100644
index 0000000..1b108fd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Relations/Relation.php
@@ -0,0 +1,368 @@
+<?php
+
+namespace LdapRecord\Models\Relations;
+
+use LdapRecord\Models\Entry;
+use LdapRecord\Models\Model;
+use LdapRecord\Query\Collection;
+use LdapRecord\Query\Model\Builder;
+
+/**
+ * @method bool exists($models = null) Determine if the relation contains all of the given models, or any models
+ * @method bool contains($models)      Determine if any of the given models are contained in the relation
+ */
+abstract class Relation
+{
+    /**
+     * The underlying LDAP query.
+     *
+     * @var Builder
+     */
+    protected $query;
+
+    /**
+     * The parent model instance.
+     *
+     * @var Model
+     */
+    protected $parent;
+
+    /**
+     * The related models.
+     *
+     * @var array
+     */
+    protected $related;
+
+    /**
+     * The relation key.
+     *
+     * @var string
+     */
+    protected $relationKey;
+
+    /**
+     * The foreign key.
+     *
+     * @var string
+     */
+    protected $foreignKey;
+
+    /**
+     * The default relation model.
+     *
+     * @var string
+     */
+    protected $default = Entry::class;
+
+    /**
+     * Constructor.
+     *
+     * @param Builder $query
+     * @param Model   $parent
+     * @param mixed   $related
+     * @param string  $relationKey
+     * @param string  $foreignKey
+     */
+    public function __construct(Builder $query, Model $parent, $related, $relationKey, $foreignKey)
+    {
+        $this->query = $query;
+        $this->parent = $parent;
+        $this->related = (array) $related;
+        $this->relationKey = $relationKey;
+        $this->foreignKey = $foreignKey;
+
+        $this->initRelation();
+    }
+
+    /**
+     * Handle dynamic method calls to the relationship.
+     *
+     * @param string $method
+     * @param array  $parameters
+     *
+     * @return mixed
+     */
+    public function __call($method, $parameters)
+    {
+        if (in_array($method, ['exists', 'contains'])) {
+            return $this->get('objectclass')->$method(...$parameters);
+        }
+
+        $result = $this->query->$method(...$parameters);
+
+        if ($result === $this->query) {
+            return $this;
+        }
+
+        return $result;
+    }
+
+    /**
+     * Get the results of the relationship.
+     *
+     * @return Collection
+     */
+    abstract public function getResults();
+
+    /**
+     * Execute the relationship query.
+     *
+     * @param array|string $columns
+     *
+     * @return Collection
+     */
+    public function get($columns = ['*'])
+    {
+        return $this->getResultsWithColumns($columns);
+    }
+
+    /**
+     * Get the results of the relationship while selecting the given columns.
+     *
+     * If the query columns are empty, the given columns are applied.
+     *
+     * @param array $columns
+     *
+     * @return Collection
+     */
+    protected function getResultsWithColumns($columns)
+    {
+        if (is_null($this->query->columns)) {
+            $this->query->select($columns);
+        }
+
+        return $this->getResults();
+    }
+
+    /**
+     * Get the first result of the relationship.
+     *
+     * @param array|string $columns
+     *
+     * @return Model|null
+     */
+    public function first($columns = ['*'])
+    {
+        return $this->get($columns)->first();
+    }
+
+    /**
+     * Prepare the relation query.
+     *
+     * @return static
+     */
+    public function initRelation()
+    {
+        $this->query
+            ->clearFilters()
+            ->withoutGlobalScopes()
+            ->setModel($this->getNewDefaultModel());
+
+        return $this;
+    }
+
+    /**
+     * Get the underlying query for the relation.
+     *
+     * @return Builder
+     */
+    public function getQuery()
+    {
+        return $this->query;
+    }
+
+    /**
+     * Get the parent model of the relation.
+     *
+     * @return Model
+     */
+    public function getParent()
+    {
+        return $this->parent;
+    }
+
+    /**
+     * Get the relation attribute key.
+     *
+     * @return string
+     */
+    public function getRelationKey()
+    {
+        return $this->relationKey;
+    }
+
+    /**
+     * Get the related model classes for the relation.
+     *
+     * @return array
+     */
+    public function getRelated()
+    {
+        return $this->related;
+    }
+
+    /**
+     * Get the relation foreign attribute key.
+     *
+     * @return string
+     */
+    public function getForeignKey()
+    {
+        return $this->foreignKey;
+    }
+
+    /**
+     * Get the class name of the default model.
+     *
+     * @return string
+     */
+    public function getDefaultModel()
+    {
+        return $this->default;
+    }
+
+    /**
+     * Get a new instance of the default model on the relation.
+     *
+     * @return Model
+     */
+    public function getNewDefaultModel()
+    {
+        $model = new $this->default();
+
+        $model->setConnection($this->parent->getConnectionName());
+
+        return $model;
+    }
+
+    /**
+     * Get the foreign model by the given value.
+     *
+     * @param string $value
+     *
+     * @return Model|null
+     */
+    protected function getForeignModelByValue($value)
+    {
+        return $this->foreignKeyIsDistinguishedName()
+            ? $this->query->find($value)
+            : $this->query->findBy($this->foreignKey, $value);
+    }
+
+    /**
+     * Returns the escaped foreign key value for use in an LDAP filter from the model.
+     *
+     * @param Model $model
+     *
+     * @return string
+     */
+    protected function getEscapedForeignValueFromModel(Model $model)
+    {
+        return $this->query->escape(
+            $this->getForeignValueFromModel($model)
+        )->both();
+    }
+
+    /**
+     * Get the relation parents foreign value.
+     *
+     * @return string
+     */
+    protected function getParentForeignValue()
+    {
+        return $this->getForeignValueFromModel($this->parent);
+    }
+
+    /**
+     * Get the foreign key value from the model.
+     *
+     * @param Model $model
+     *
+     * @return string
+     */
+    protected function getForeignValueFromModel(Model $model)
+    {
+        return $this->foreignKeyIsDistinguishedName()
+                ? $model->getDn()
+                : $this->getFirstAttributeValue($model, $this->foreignKey);
+    }
+
+    /**
+     * Get the first attribute value from the model.
+     *
+     * @param Model  $model
+     * @param string $attribute
+     *
+     * @return string|null
+     */
+    protected function getFirstAttributeValue(Model $model, $attribute)
+    {
+        return $model->getFirstAttribute($attribute);
+    }
+
+    /**
+     * Transforms the results by converting the models into their related.
+     *
+     * @param Collection $results
+     *
+     * @return Collection
+     */
+    protected function transformResults(Collection $results)
+    {
+        $related = [];
+
+        foreach ($this->related as $relation) {
+            $related[$relation] = $relation::$objectClasses;
+        }
+
+        return $results->transform(function (Model $entry) use ($related) {
+            $model = $this->determineModelFromRelated($entry, $related);
+
+            return class_exists($model) ? $entry->convert(new $model()) : $entry;
+        });
+    }
+
+    /**
+     * Determines if the foreign key is a distinguished name.
+     *
+     * @return bool
+     */
+    protected function foreignKeyIsDistinguishedName()
+    {
+        return in_array($this->foreignKey, ['dn', 'distinguishedname']);
+    }
+
+    /**
+     * Determines the model from the given relations.
+     *
+     * @param Model $model
+     * @param array $related
+     *
+     * @return string|bool
+     */
+    protected function determineModelFromRelated(Model $model, array $related)
+    {
+        // We must normalize all the related models object class
+        // names to the same case so we are able to properly
+        // determine the owning model from search results.
+        return array_search(
+            $this->normalizeObjectClasses($model->getObjectClasses()),
+            array_map([$this, 'normalizeObjectClasses'], $related)
+        );
+    }
+
+    /**
+     * Sort and normalize the object classes.
+     *
+     * @param array $classes
+     *
+     * @return array
+     */
+    protected function normalizeObjectClasses($classes)
+    {
+        sort($classes);
+
+        return array_map('strtolower', $classes);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Scope.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Scope.php
new file mode 100644
index 0000000..321cae3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Scope.php
@@ -0,0 +1,18 @@
+<?php
+
+namespace LdapRecord\Models;
+
+use LdapRecord\Query\Model\Builder;
+
+interface Scope
+{
+    /**
+     * Apply the scope to the given query.
+     *
+     * @param Builder $query
+     * @param Model   $model
+     *
+     * @return void
+     */
+    public function apply(Builder $query, Model $model);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Types/ActiveDirectory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Types/ActiveDirectory.php
new file mode 100644
index 0000000..61d21ef
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Types/ActiveDirectory.php
@@ -0,0 +1,29 @@
+<?php
+
+namespace LdapRecord\Models\Types;
+
+interface ActiveDirectory extends TypeInterface
+{
+    /**
+     * Returns the models object SID key.
+     *
+     * @return string
+     */
+    public function getObjectSidKey();
+
+    /**
+     * Returns the model's hex object SID.
+     *
+     * @see https://msdn.microsoft.com/en-us/library/ms679024(v=vs.85).aspx
+     *
+     * @return string
+     */
+    public function getObjectSid();
+
+    /**
+     * Returns the model's SID.
+     *
+     * @return string|null
+     */
+    public function getConvertedSid();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Types/FreeIPA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Types/FreeIPA.php
new file mode 100644
index 0000000..6831318
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Types/FreeIPA.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Models\Types;
+
+interface FreeIPA extends TypeInterface
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Types/OpenLDAP.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Types/OpenLDAP.php
new file mode 100644
index 0000000..e63076e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Types/OpenLDAP.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Models\Types;
+
+interface OpenLDAP extends TypeInterface
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Types/TypeInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Types/TypeInterface.php
new file mode 100644
index 0000000..8a45f32
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Models/Types/TypeInterface.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Models\Types;
+
+interface TypeInterface
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/ArrayCacheStore.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/ArrayCacheStore.php
new file mode 100644
index 0000000..d7480a7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/ArrayCacheStore.php
@@ -0,0 +1,142 @@
+<?php
+
+namespace LdapRecord\Query;
+
+use Psr\SimpleCache\CacheInterface;
+
+class ArrayCacheStore implements CacheInterface
+{
+    use InteractsWithTime;
+
+    /**
+     * An array of stored values.
+     *
+     * @var array
+     */
+    protected $storage = [];
+
+    /**
+     * @inheritdoc
+     */
+    public function get($key, $default = null)
+    {
+        if (! isset($this->storage[$key])) {
+            return $default;
+        }
+
+        $item = $this->storage[$key];
+
+        $expiresAt = $item['expiresAt'] ?? 0;
+
+        if ($expiresAt !== 0 && $this->currentTime() > $expiresAt) {
+            $this->delete($key);
+
+            return $default;
+        }
+
+        return $item['value'];
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function set($key, $value, $ttl = null)
+    {
+        $this->storage[$key] = [
+            'value' => $value,
+            'expiresAt' => $this->calculateExpiration($ttl),
+        ];
+
+        return true;
+    }
+
+    /**
+     * Get the expiration time of the key.
+     *
+     * @param int $seconds
+     *
+     * @return int
+     */
+    protected function calculateExpiration($seconds)
+    {
+        return $this->toTimestamp($seconds);
+    }
+
+    /**
+     * Get the UNIX timestamp for the given number of seconds.
+     *
+     * @param int $seconds
+     *
+     * @return int
+     */
+    protected function toTimestamp($seconds)
+    {
+        return $seconds > 0 ? $this->availableAt($seconds) : 0;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function delete($key)
+    {
+        unset($this->storage[$key]);
+
+        return true;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function clear()
+    {
+        $this->storage = [];
+
+        return true;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function getMultiple($keys, $default = null)
+    {
+        $values = [];
+
+        foreach ($keys as $key) {
+            $values[$key] = $this->get($key, $default);
+        }
+
+        return $values;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function setMultiple($values, $ttl = null)
+    {
+        foreach ($values as $key => $value) {
+            $this->set($key, $value, $ttl);
+        }
+
+        return true;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function deleteMultiple($keys)
+    {
+        foreach ($keys as $key) {
+            $this->delete($key);
+        }
+
+        return true;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function has($key)
+    {
+        return isset($this->storage[$key]);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Builder.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Builder.php
new file mode 100644
index 0000000..c75afa2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Builder.php
@@ -0,0 +1,1903 @@
+<?php
+
+namespace LdapRecord\Query;
+
+use BadMethodCallException;
+use Closure;
+use DateTimeInterface;
+use InvalidArgumentException;
+use LdapRecord\Connection;
+use LdapRecord\Container;
+use LdapRecord\EscapesValues;
+use LdapRecord\LdapInterface;
+use LdapRecord\LdapRecordException;
+use LdapRecord\Models\Model;
+use LdapRecord\Query\Events\QueryExecuted;
+use LdapRecord\Query\Model\Builder as ModelBuilder;
+use LdapRecord\Query\Pagination\LazyPaginator;
+use LdapRecord\Query\Pagination\Paginator;
+use LdapRecord\Support\Arr;
+use LdapRecord\Utilities;
+
+class Builder
+{
+    use EscapesValues;
+
+    /**
+     * The selected columns to retrieve on the query.
+     *
+     * @var array
+     */
+    public $columns;
+
+    /**
+     * The query filters.
+     *
+     * @var array
+     */
+    public $filters = [
+        'and' => [],
+        'or' => [],
+        'raw' => [],
+    ];
+
+    /**
+     * The LDAP server controls to be sent.
+     *
+     * @var array
+     */
+    public $controls = [];
+
+    /**
+     * The size limit of the query.
+     *
+     * @var int
+     */
+    public $limit = 0;
+
+    /**
+     * Determines whether the current query is paginated.
+     *
+     * @var bool
+     */
+    public $paginated = false;
+
+    /**
+     * The distinguished name to perform searches upon.
+     *
+     * @var string|null
+     */
+    protected $dn;
+
+    /**
+     * The base distinguished name to perform searches inside.
+     *
+     * @var string|null
+     */
+    protected $baseDn;
+
+    /**
+     * The default query type.
+     *
+     * @var string
+     */
+    protected $type = 'search';
+
+    /**
+     * Determines whether the query is nested.
+     *
+     * @var bool
+     */
+    protected $nested = false;
+
+    /**
+     * Determines whether the query should be cached.
+     *
+     * @var bool
+     */
+    protected $caching = false;
+
+    /**
+     * How long the query should be cached until.
+     *
+     * @var DateTimeInterface|null
+     */
+    protected $cacheUntil = null;
+
+    /**
+     * Determines whether the query cache must be flushed.
+     *
+     * @var bool
+     */
+    protected $flushCache = false;
+
+    /**
+     * The current connection instance.
+     *
+     * @var Connection
+     */
+    protected $connection;
+
+    /**
+     * The current grammar instance.
+     *
+     * @var Grammar
+     */
+    protected $grammar;
+
+    /**
+     * The current cache instance.
+     *
+     * @var Cache|null
+     */
+    protected $cache;
+
+    /**
+     * Constructor.
+     *
+     * @param Connection $connection
+     */
+    public function __construct(Connection $connection)
+    {
+        $this->connection = $connection;
+        $this->grammar = new Grammar();
+    }
+
+    /**
+     * Set the current connection.
+     *
+     * @param Connection $connection
+     *
+     * @return $this
+     */
+    public function setConnection(Connection $connection)
+    {
+        $this->connection = $connection;
+
+        return $this;
+    }
+
+    /**
+     * Set the current filter grammar.
+     *
+     * @param Grammar $grammar
+     *
+     * @return $this
+     */
+    public function setGrammar(Grammar $grammar)
+    {
+        $this->grammar = $grammar;
+
+        return $this;
+    }
+
+    /**
+     * Set the cache to store query results.
+     *
+     * @param Cache|null $cache
+     *
+     * @return $this
+     */
+    public function setCache(Cache $cache = null)
+    {
+        $this->cache = $cache;
+
+        return $this;
+    }
+
+    /**
+     * Returns a new Query Builder instance.
+     *
+     * @param string $baseDn
+     *
+     * @return $this
+     */
+    public function newInstance($baseDn = null)
+    {
+        // We'll set the base DN of the new Builder so
+        // developers don't need to do this manually.
+        $dn = is_null($baseDn) ? $this->getDn() : $baseDn;
+
+        return (new static($this->connection))->setDn($dn);
+    }
+
+    /**
+     * Returns a new nested Query Builder instance.
+     *
+     * @param Closure|null $closure
+     *
+     * @return $this
+     */
+    public function newNestedInstance(Closure $closure = null)
+    {
+        $query = $this->newInstance()->nested();
+
+        if ($closure) {
+            $closure($query);
+        }
+
+        return $query;
+    }
+
+    /**
+     * Executes the LDAP query.
+     *
+     * @param string|array $columns
+     *
+     * @return Collection|array
+     */
+    public function get($columns = ['*'])
+    {
+        return $this->onceWithColumns(Arr::wrap($columns), function () {
+            return $this->query($this->getQuery());
+        });
+    }
+
+    /**
+     * Execute the given callback while selecting the given columns.
+     *
+     * After running the callback, the columns are reset to the original value.
+     *
+     * @param array    $columns
+     * @param callable $callback
+     *
+     * @return mixed
+     */
+    protected function onceWithColumns($columns, $callback)
+    {
+        $original = $this->columns;
+
+        if (is_null($original)) {
+            $this->columns = $columns;
+        }
+
+        $result = $callback();
+
+        $this->columns = $original;
+
+        return $result;
+    }
+
+    /**
+     * Compiles and returns the current query string.
+     *
+     * @return string
+     */
+    public function getQuery()
+    {
+        // We need to ensure we have at least one filter, as
+        // no query results will be returned otherwise.
+        if (count(array_filter($this->filters)) === 0) {
+            $this->whereHas('objectclass');
+        }
+
+        return $this->grammar->compile($this);
+    }
+
+    /**
+     * Returns the unescaped query.
+     *
+     * @return string
+     */
+    public function getUnescapedQuery()
+    {
+        return Utilities::unescape($this->getQuery());
+    }
+
+    /**
+     * Returns the current Grammar instance.
+     *
+     * @return Grammar
+     */
+    public function getGrammar()
+    {
+        return $this->grammar;
+    }
+
+    /**
+     * Returns the current Cache instance.
+     *
+     * @return Cache|null
+     */
+    public function getCache()
+    {
+        return $this->cache;
+    }
+
+    /**
+     * Returns the current Connection instance.
+     *
+     * @return Connection
+     */
+    public function getConnection()
+    {
+        return $this->connection;
+    }
+
+    /**
+     * Returns the query type.
+     *
+     * @return string
+     */
+    public function getType()
+    {
+        return $this->type;
+    }
+
+    /**
+     * Set the base distinguished name of the query.
+     *
+     * @param Model|string $dn
+     *
+     * @return $this
+     */
+    public function setBaseDn($dn)
+    {
+        $this->baseDn = $this->substituteBaseInDn($dn);
+
+        return $this;
+    }
+
+    /**
+     * Get the base distinguished name of the query.
+     *
+     * @return string|null
+     */
+    public function getBaseDn()
+    {
+        return $this->baseDn;
+    }
+
+    /**
+     * Get the distinguished name of the query.
+     *
+     * @return string
+     */
+    public function getDn()
+    {
+        return $this->dn;
+    }
+
+    /**
+     * Set the distinguished name for the query.
+     *
+     * @param string|Model|null $dn
+     *
+     * @return $this
+     */
+    public function setDn($dn = null)
+    {
+        $this->dn = $this->substituteBaseInDn($dn);
+
+        return $this;
+    }
+
+    /**
+     * Substitute the base DN string template for the current base.
+     *
+     * @param Model|string $dn
+     *
+     * @return string
+     */
+    protected function substituteBaseInDn($dn)
+    {
+        return str_replace(
+            '{base}',
+            $this->baseDn,
+            $dn instanceof Model ? $dn->getDn() : $dn
+        );
+    }
+
+    /**
+     * Alias for setting the distinguished name for the query.
+     *
+     * @param string|Model|null $dn
+     *
+     * @return $this
+     */
+    public function in($dn = null)
+    {
+        return $this->setDn($dn);
+    }
+
+    /**
+     * Set the size limit of the current query.
+     *
+     * @param int $limit
+     *
+     * @return $this
+     */
+    public function limit($limit = 0)
+    {
+        $this->limit = $limit;
+
+        return $this;
+    }
+
+    /**
+     * Returns a new query for the given model.
+     *
+     * @param Model $model
+     *
+     * @return ModelBuilder
+     */
+    public function model(Model $model)
+    {
+        return $model->newQueryBuilder($this->connection)
+            ->setCache($this->connection->getCache())
+            ->setBaseDn($this->baseDn)
+            ->setModel($model);
+    }
+
+    /**
+     * Performs the specified query on the current LDAP connection.
+     *
+     * @param string $query
+     *
+     * @return Collection|array
+     */
+    public function query($query)
+    {
+        $start = microtime(true);
+
+        // Here we will create the execution callback. This allows us
+        // to only execute an LDAP request if caching is disabled
+        // or if no cache of the given query exists yet.
+        $callback = function () use ($query) {
+            return $this->parse($this->run($query));
+        };
+
+        $results = $this->getCachedResponse($query, $callback);
+
+        $this->logQuery($this, $this->type, $this->getElapsedTime($start));
+
+        return $this->process($results);
+    }
+
+    /**
+     * Paginates the current LDAP query.
+     *
+     * @param int  $pageSize
+     * @param bool $isCritical
+     *
+     * @return Collection|array
+     */
+    public function paginate($pageSize = 1000, $isCritical = false)
+    {
+        $this->paginated = true;
+
+        $start = microtime(true);
+
+        $query = $this->getQuery();
+
+        // Here we will create the pagination callback. This allows us
+        // to only execute an LDAP request if caching is disabled
+        // or if no cache of the given query exists yet.
+        $callback = function () use ($query, $pageSize, $isCritical) {
+            return $this->runPaginate($query, $pageSize, $isCritical);
+        };
+
+        $pages = $this->getCachedResponse($query, $callback);
+
+        $this->logQuery($this, 'paginate', $this->getElapsedTime($start));
+
+        return $this->process($pages);
+    }
+
+    /**
+     * Runs the paginate operation with the given filter.
+     *
+     * @param string $filter
+     * @param int    $perPage
+     * @param bool   $isCritical
+     *
+     * @return array
+     */
+    protected function runPaginate($filter, $perPage, $isCritical)
+    {
+        return $this->connection->run(function (LdapInterface $ldap) use ($filter, $perPage, $isCritical) {
+            return (new Paginator($this, $filter, $perPage, $isCritical))->execute($ldap);
+        });
+    }
+
+    /**
+     * Chunk the results of a paginated LDAP query.
+     *
+     * @param int     $pageSize
+     * @param Closure $callback
+     * @param bool    $isCritical
+     *
+     * @return void
+     */
+    public function chunk($pageSize, Closure $callback, $isCritical = false)
+    {
+        $start = microtime(true);
+
+        $query = $this->getQuery();
+
+        foreach ($this->runChunk($query, $pageSize, $isCritical) as $chunk) {
+            $callback($this->process($chunk));
+        }
+
+        $this->logQuery($this, 'chunk', $this->getElapsedTime($start));
+    }
+
+    /**
+     * Runs the chunk operation with the given filter.
+     *
+     * @param string $filter
+     * @param int    $perPage
+     * @param bool   $isCritical
+     *
+     * @return array
+     */
+    protected function runChunk($filter, $perPage, $isCritical)
+    {
+        return $this->connection->run(function (LdapInterface $ldap) use ($filter, $perPage, $isCritical) {
+            return (new LazyPaginator($this, $filter, $perPage, $isCritical))->execute($ldap);
+        });
+    }
+
+    /**
+     * Processes and converts the given LDAP results into models.
+     *
+     * @param array $results
+     *
+     * @return array
+     */
+    protected function process(array $results)
+    {
+        unset($results['count']);
+
+        return $this->paginated ? $this->flattenPages($results) : $results;
+    }
+
+    /**
+     * Flattens LDAP paged results into a single array.
+     *
+     * @param array $pages
+     *
+     * @return array
+     */
+    protected function flattenPages(array $pages)
+    {
+        $records = [];
+
+        foreach ($pages as $page) {
+            unset($page['count']);
+
+            $records = array_merge($records, $page);
+        }
+
+        return $records;
+    }
+
+    /**
+     * Get the cached response or execute and cache the callback value.
+     *
+     * @param string  $query
+     * @param Closure $callback
+     *
+     * @return mixed
+     */
+    protected function getCachedResponse($query, Closure $callback)
+    {
+        // If caching is enabled and we have a cache instance available,
+        // we will try to retrieve the cached results instead.
+        if ($this->caching && $this->cache) {
+            $key = $this->getCacheKey($query);
+
+            if ($this->flushCache) {
+                $this->cache->delete($key);
+            }
+
+            return $this->cache->remember($key, $this->cacheUntil, $callback);
+        }
+
+        // Otherwise, we will simply execute the callback.
+        return $callback();
+    }
+
+    /**
+     * Runs the query operation with the given filter.
+     *
+     * @param string $filter
+     *
+     * @return resource
+     */
+    public function run($filter)
+    {
+        return $this->connection->run(function (LdapInterface $ldap) use ($filter) {
+            // We will avoid setting the controls during any pagination
+            // requests as it will clear the cookie we need to send
+            // to the server upon retrieving every page.
+            if (! $this->paginated) {
+                // Before running the query, we will set the LDAP server controls. This
+                // allows the controls to be automatically reset upon each new query
+                // that is conducted on the same connection during each request.
+                $ldap->setOption(LDAP_OPT_SERVER_CONTROLS, $this->controls);
+            }
+
+            return $ldap->{$this->type}(
+                $this->dn ?? $this->baseDn,
+                $filter,
+                $this->getSelects(),
+                $onlyAttributes = false,
+                $this->limit
+            );
+        });
+    }
+
+    /**
+     * Parses the given LDAP resource by retrieving its entries.
+     *
+     * @param resource $resource
+     *
+     * @return array
+     */
+    public function parse($resource)
+    {
+        if (! $resource) {
+            return [];
+        }
+
+        return $this->connection->run(function (LdapInterface $ldap) use ($resource) {
+            $entries = $ldap->getEntries($resource);
+
+            // Free up memory.
+            if (is_resource($resource)) {
+                $ldap->freeResult($resource);
+            }
+
+            return $entries;
+        });
+    }
+
+    /**
+     * Returns the cache key.
+     *
+     * @param string $query
+     *
+     * @return string
+     */
+    protected function getCacheKey($query)
+    {
+        $host = $this->connection->getLdapConnection()->getHost();
+
+        $key = $host
+            .$this->type
+            .$this->getDn()
+            .$query
+            .implode($this->getSelects())
+            .$this->limit
+            .$this->paginated;
+
+        return md5($key);
+    }
+
+    /**
+     * Returns the first entry in a search result.
+     *
+     * @param array|string $columns
+     *
+     * @return Model|null
+     */
+    public function first($columns = ['*'])
+    {
+        return Arr::get($this->limit(1)->get($columns), 0);
+    }
+
+    /**
+     * Returns the first entry in a search result.
+     *
+     * If no entry is found, an exception is thrown.
+     *
+     * @param array|string $columns
+     *
+     * @throws ObjectNotFoundException
+     *
+     * @return Model|static
+     */
+    public function firstOrFail($columns = ['*'])
+    {
+        if (! $record = $this->first($columns)) {
+            $this->throwNotFoundException($this->getUnescapedQuery(), $this->dn);
+        }
+
+        return $record;
+    }
+
+    /**
+     * Throws a not found exception.
+     *
+     * @param string $query
+     * @param string $dn
+     *
+     * @throws ObjectNotFoundException
+     */
+    protected function throwNotFoundException($query, $dn)
+    {
+        throw ObjectNotFoundException::forQuery($query, $dn);
+    }
+
+    /**
+     * Finds a record by the specified attribute and value.
+     *
+     * @param string       $attribute
+     * @param string       $value
+     * @param array|string $columns
+     *
+     * @return Model|static|null
+     */
+    public function findBy($attribute, $value, $columns = ['*'])
+    {
+        try {
+            return $this->findByOrFail($attribute, $value, $columns);
+        } catch (ObjectNotFoundException $e) {
+            return;
+        }
+    }
+
+    /**
+     * Finds a record by the specified attribute and value.
+     *
+     * If no record is found an exception is thrown.
+     *
+     * @param string       $attribute
+     * @param string       $value
+     * @param array|string $columns
+     *
+     * @throws ObjectNotFoundException
+     *
+     * @return Model
+     */
+    public function findByOrFail($attribute, $value, $columns = ['*'])
+    {
+        return $this->whereEquals($attribute, $value)->firstOrFail($columns);
+    }
+
+    /**
+     * Find many records by distinguished name.
+     *
+     * @param array $dns
+     * @param array $columns
+     *
+     * @return array|Collection
+     */
+    public function findMany($dns, $columns = ['*'])
+    {
+        if (empty($dns)) {
+            return $this->process([]);
+        }
+
+        $objects = [];
+
+        foreach ($dns as $dn) {
+            if (! is_null($object = $this->find($dn, $columns))) {
+                $objects[] = $object;
+            }
+        }
+
+        return $this->process($objects);
+    }
+
+    /**
+     * Finds many records by the specified attribute.
+     *
+     * @param string $attribute
+     * @param array  $values
+     * @param array  $columns
+     *
+     * @return Collection
+     */
+    public function findManyBy($attribute, array $values = [], $columns = ['*'])
+    {
+        $query = $this->select($columns);
+
+        foreach ($values as $value) {
+            $query->orWhere([$attribute => $value]);
+        }
+
+        return $query->get();
+    }
+
+    /**
+     * Finds a record by its distinguished name.
+     *
+     * @param string|array $dn
+     * @param array|string $columns
+     *
+     * @return Model|static|array|Collection|null
+     */
+    public function find($dn, $columns = ['*'])
+    {
+        if (is_array($dn)) {
+            return $this->findMany($dn, $columns);
+        }
+
+        try {
+            return $this->findOrFail($dn, $columns);
+        } catch (ObjectNotFoundException $e) {
+            return;
+        }
+    }
+
+    /**
+     * Finds a record by its distinguished name.
+     *
+     * Fails upon no records returned.
+     *
+     * @param string       $dn
+     * @param array|string $columns
+     *
+     * @throws ObjectNotFoundException
+     *
+     * @return Model|static
+     */
+    public function findOrFail($dn, $columns = ['*'])
+    {
+        return $this->setDn($dn)
+            ->read()
+            ->whereHas('objectclass')
+            ->firstOrFail($columns);
+    }
+
+    /**
+     * Adds the inserted fields to query on the current LDAP connection.
+     *
+     * @param array|string $columns
+     *
+     * @return $this
+     */
+    public function select($columns = ['*'])
+    {
+        $columns = is_array($columns) ? $columns : func_get_args();
+
+        if (! empty($columns)) {
+            $this->columns = $columns;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Add a new select column to the query.
+     *
+     * @param array|mixed $column
+     *
+     * @return $this
+     */
+    public function addSelect($column)
+    {
+        $column = is_array($column) ? $column : func_get_args();
+
+        $this->columns = array_merge((array) $this->columns, $column);
+
+        return $this;
+    }
+
+    /**
+     * Adds a raw filter to the current query.
+     *
+     * @param array|string $filters
+     *
+     * @return $this
+     */
+    public function rawFilter($filters = [])
+    {
+        $filters = is_array($filters) ? $filters : func_get_args();
+
+        foreach ($filters as $filter) {
+            $this->filters['raw'][] = $filter;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Adds a nested 'and' filter to the current query.
+     *
+     * @param Closure $closure
+     *
+     * @return $this
+     */
+    public function andFilter(Closure $closure)
+    {
+        $query = $this->newNestedInstance($closure);
+
+        return $this->rawFilter(
+            $this->grammar->compileAnd($query->getQuery())
+        );
+    }
+
+    /**
+     * Adds a nested 'or' filter to the current query.
+     *
+     * @param Closure $closure
+     *
+     * @return $this
+     */
+    public function orFilter(Closure $closure)
+    {
+        $query = $this->newNestedInstance($closure);
+
+        return $this->rawFilter(
+            $this->grammar->compileOr($query->getQuery())
+        );
+    }
+
+    /**
+     * Adds a nested 'not' filter to the current query.
+     *
+     * @param Closure $closure
+     *
+     * @return $this
+     */
+    public function notFilter(Closure $closure)
+    {
+        $query = $this->newNestedInstance($closure);
+
+        return $this->rawFilter(
+            $this->grammar->compileNot($query->getQuery())
+        );
+    }
+
+    /**
+     * Adds a where clause to the current query.
+     *
+     * @param string|array $field
+     * @param string       $operator
+     * @param string       $value
+     * @param string       $boolean
+     * @param bool         $raw
+     *
+     * @throws InvalidArgumentException
+     *
+     * @return $this
+     */
+    public function where($field, $operator = null, $value = null, $boolean = 'and', $raw = false)
+    {
+        if (is_array($field)) {
+            // If the field is an array, we will assume we have been
+            // provided with an array of key-value pairs and can
+            // add them each as their own seperate where clause.
+            return $this->addArrayOfWheres($field, $boolean, $raw);
+        }
+
+        // If we have been provided with two arguments not a "has" or
+        // "not has" operator, we'll assume the developer is creating
+        // an "equals" clause and set the proper operator in place.
+        if (func_num_args() === 2 && ! in_array($operator, ['*', '!*'])) {
+            [$value, $operator] = [$operator, '='];
+        }
+
+        if (! in_array($operator, $this->grammar->getOperators())) {
+            throw new InvalidArgumentException("Invalid LDAP filter operator [$operator]");
+        }
+
+        // We'll escape the value if raw isn't requested.
+        $value = $this->prepareWhereValue($field, $value, $raw);
+
+        $field = $this->escape($field)->both()->get();
+
+        $this->addFilter($boolean, compact('field', 'operator', 'value'));
+
+        return $this;
+    }
+
+    /**
+     * Prepare the value for being queried.
+     *
+     * @param string $field
+     * @param string $value
+     * @param bool   $raw
+     *
+     * @return string
+     */
+    protected function prepareWhereValue($field, $value, $raw = false)
+    {
+        return $raw ? $value : $this->escape($value);
+    }
+
+    /**
+     * Adds a raw where clause to the current query.
+     *
+     * Values given to this method are not escaped.
+     *
+     * @param string|array $field
+     * @param string       $operator
+     * @param string       $value
+     *
+     * @return $this
+     */
+    public function whereRaw($field, $operator = null, $value = null)
+    {
+        return $this->where($field, $operator, $value, 'and', true);
+    }
+
+    /**
+     * Adds a 'where equals' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function whereEquals($field, $value)
+    {
+        return $this->where($field, '=', $value);
+    }
+
+    /**
+     * Adds a 'where not equals' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function whereNotEquals($field, $value)
+    {
+        return $this->where($field, '!', $value);
+    }
+
+    /**
+     * Adds a 'where approximately equals' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function whereApproximatelyEquals($field, $value)
+    {
+        return $this->where($field, '~=', $value);
+    }
+
+    /**
+     * Adds a 'where has' clause to the current query.
+     *
+     * @param string $field
+     *
+     * @return $this
+     */
+    public function whereHas($field)
+    {
+        return $this->where($field, '*');
+    }
+
+    /**
+     * Adds a 'where not has' clause to the current query.
+     *
+     * @param string $field
+     *
+     * @return $this
+     */
+    public function whereNotHas($field)
+    {
+        return $this->where($field, '!*');
+    }
+
+    /**
+     * Adds a 'where contains' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function whereContains($field, $value)
+    {
+        return $this->where($field, 'contains', $value);
+    }
+
+    /**
+     * Adds a 'where contains' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function whereNotContains($field, $value)
+    {
+        return $this->where($field, 'not_contains', $value);
+    }
+
+    /**
+     * Query for entries that match any of the values provided for the given field.
+     *
+     * @param string $field
+     * @param array  $values
+     *
+     * @return $this
+     */
+    public function whereIn($field, array $values)
+    {
+        return $this->orFilter(function (self $query) use ($field, $values) {
+            foreach ($values as $value) {
+                $query->whereEquals($field, $value);
+            }
+        });
+    }
+
+    /**
+     * Adds a 'between' clause to the current query.
+     *
+     * @param string $field
+     * @param array  $values
+     *
+     * @return $this
+     */
+    public function whereBetween($field, array $values)
+    {
+        return $this->where([
+            [$field, '>=', $values[0]],
+            [$field, '<=', $values[1]],
+        ]);
+    }
+
+    /**
+     * Adds a 'where starts with' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function whereStartsWith($field, $value)
+    {
+        return $this->where($field, 'starts_with', $value);
+    }
+
+    /**
+     * Adds a 'where *not* starts with' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function whereNotStartsWith($field, $value)
+    {
+        return $this->where($field, 'not_starts_with', $value);
+    }
+
+    /**
+     * Adds a 'where ends with' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function whereEndsWith($field, $value)
+    {
+        return $this->where($field, 'ends_with', $value);
+    }
+
+    /**
+     * Adds a 'where *not* ends with' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function whereNotEndsWith($field, $value)
+    {
+        return $this->where($field, 'not_ends_with', $value);
+    }
+
+    /**
+     * Only include deleted models in the results.
+     *
+     * @return $this
+     */
+    public function whereDeleted()
+    {
+        return $this->withDeleted()->whereEquals('isDeleted', 'TRUE');
+    }
+
+    /**
+     * Set the LDAP control option to include deleted LDAP models.
+     *
+     * @return $this
+     */
+    public function withDeleted()
+    {
+        return $this->addControl(LdapInterface::OID_SERVER_SHOW_DELETED, $isCritical = true);
+    }
+
+    /**
+     * Add a server control to the query.
+     *
+     * @param string $oid
+     * @param bool   $isCritical
+     * @param mixed  $value
+     *
+     * @return $this
+     */
+    public function addControl($oid, $isCritical = false, $value = null)
+    {
+        $this->controls[$oid] = compact('oid', 'isCritical', 'value');
+
+        return $this;
+    }
+
+    /**
+     * Determine if the server control exists on the query.
+     *
+     * @param string $oid
+     *
+     * @return bool
+     */
+    public function hasControl($oid)
+    {
+        return array_key_exists($oid, $this->controls);
+    }
+
+    /**
+     * Adds an 'or where' clause to the current query.
+     *
+     * @param array|string $field
+     * @param string|null  $operator
+     * @param string|null  $value
+     *
+     * @return $this
+     */
+    public function orWhere($field, $operator = null, $value = null)
+    {
+        return $this->where($field, $operator, $value, 'or');
+    }
+
+    /**
+     * Adds a raw or where clause to the current query.
+     *
+     * Values given to this method are not escaped.
+     *
+     * @param string $field
+     * @param string $operator
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function orWhereRaw($field, $operator = null, $value = null)
+    {
+        return $this->where($field, $operator, $value, 'or', true);
+    }
+
+    /**
+     * Adds an 'or where has' clause to the current query.
+     *
+     * @param string $field
+     *
+     * @return $this
+     */
+    public function orWhereHas($field)
+    {
+        return $this->orWhere($field, '*');
+    }
+
+    /**
+     * Adds a 'where not has' clause to the current query.
+     *
+     * @param string $field
+     *
+     * @return $this
+     */
+    public function orWhereNotHas($field)
+    {
+        return $this->orWhere($field, '!*');
+    }
+
+    /**
+     * Adds an 'or where equals' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function orWhereEquals($field, $value)
+    {
+        return $this->orWhere($field, '=', $value);
+    }
+
+    /**
+     * Adds an 'or where not equals' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function orWhereNotEquals($field, $value)
+    {
+        return $this->orWhere($field, '!', $value);
+    }
+
+    /**
+     * Adds a 'or where approximately equals' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function orWhereApproximatelyEquals($field, $value)
+    {
+        return $this->orWhere($field, '~=', $value);
+    }
+
+    /**
+     * Adds an 'or where contains' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function orWhereContains($field, $value)
+    {
+        return $this->orWhere($field, 'contains', $value);
+    }
+
+    /**
+     * Adds an 'or where *not* contains' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function orWhereNotContains($field, $value)
+    {
+        return $this->orWhere($field, 'not_contains', $value);
+    }
+
+    /**
+     * Adds an 'or where starts with' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function orWhereStartsWith($field, $value)
+    {
+        return $this->orWhere($field, 'starts_with', $value);
+    }
+
+    /**
+     * Adds an 'or where *not* starts with' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function orWhereNotStartsWith($field, $value)
+    {
+        return $this->orWhere($field, 'not_starts_with', $value);
+    }
+
+    /**
+     * Adds an 'or where ends with' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function orWhereEndsWith($field, $value)
+    {
+        return $this->orWhere($field, 'ends_with', $value);
+    }
+
+    /**
+     * Adds an 'or where *not* ends with' clause to the current query.
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return $this
+     */
+    public function orWhereNotEndsWith($field, $value)
+    {
+        return $this->orWhere($field, 'not_ends_with', $value);
+    }
+
+    /**
+     * Adds a filter binding onto the current query.
+     *
+     * @param string $type     The type of filter to add.
+     * @param array  $bindings The bindings of the filter.
+     *
+     * @throws InvalidArgumentException
+     *
+     * @return $this
+     */
+    public function addFilter($type, array $bindings)
+    {
+        if (! array_key_exists($type, $this->filters)) {
+            throw new InvalidArgumentException("Filter type: [$type] is invalid.");
+        }
+
+        // Each filter clause require key bindings to be set. We
+        // will validate this here to ensure all of them have
+        // been provided, or throw an exception otherwise.
+        if ($missing = $this->missingBindingKeys($bindings)) {
+            $keys = implode(', ', $missing);
+
+            throw new InvalidArgumentException("Invalid filter bindings. Missing: [$keys] keys.");
+        }
+
+        $this->filters[$type][] = $bindings;
+
+        return $this;
+    }
+
+    /**
+     * Extract any missing required binding keys.
+     *
+     * @param array $bindings
+     *
+     * @return array
+     */
+    protected function missingBindingKeys($bindings)
+    {
+        $required = array_flip(['field', 'operator', 'value']);
+
+        $existing = array_intersect_key($required, $bindings);
+
+        return array_keys(array_diff_key($required, $existing));
+    }
+
+    /**
+     * Get all the filters on the query.
+     *
+     * @return array
+     */
+    public function getFilters()
+    {
+        return $this->filters;
+    }
+
+    /**
+     * Clear the query filters.
+     *
+     * @return $this
+     */
+    public function clearFilters()
+    {
+        foreach (array_keys($this->filters) as $type) {
+            $this->filters[$type] = [];
+        }
+
+        return $this;
+    }
+
+    /**
+     * Determine if the query has attributes selected.
+     *
+     * @return bool
+     */
+    public function hasSelects()
+    {
+        return count($this->columns) > 0;
+    }
+
+    /**
+     * Get the attributes to select on the search.
+     *
+     * @return array
+     */
+    public function getSelects()
+    {
+        $selects = $this->columns ?? ['*'];
+
+        if (in_array('*', $selects)) {
+            return $selects;
+        }
+
+        if (in_array('objectclass', $selects)) {
+            return $selects;
+        }
+
+        // If the * character is not provided in the selected columns,
+        // we need to ensure we always select the object class, as
+        // this is used for constructing models properly.
+        $selects[] = 'objectclass';
+
+        return $selects;
+    }
+
+    /**
+     * Set the query to search on the base distinguished name.
+     *
+     * This will result in one record being returned.
+     *
+     * @return $this
+     */
+    public function read()
+    {
+        $this->type = 'read';
+
+        return $this;
+    }
+
+    /**
+     * Set the query to search one level on the base distinguished name.
+     *
+     * @return $this
+     */
+    public function listing()
+    {
+        $this->type = 'listing';
+
+        return $this;
+    }
+
+    /**
+     * Set the query to search the entire directory on the base distinguished name.
+     *
+     * @return $this
+     */
+    public function recursive()
+    {
+        $this->type = 'search';
+
+        return $this;
+    }
+
+    /**
+     * Whether to mark the current query as nested.
+     *
+     * @param bool $nested
+     *
+     * @return $this
+     */
+    public function nested($nested = true)
+    {
+        $this->nested = (bool) $nested;
+
+        return $this;
+    }
+
+    /**
+     * Enables caching on the current query until the given date.
+     *
+     * If flushing is enabled, the query cache will be flushed and then re-cached.
+     *
+     * @param DateTimeInterface $until When to expire the query cache.
+     * @param bool              $flush Whether to force-flush the query cache.
+     *
+     * @return $this
+     */
+    public function cache(DateTimeInterface $until = null, $flush = false)
+    {
+        $this->caching = true;
+        $this->cacheUntil = $until;
+        $this->flushCache = $flush;
+
+        return $this;
+    }
+
+    /**
+     * Determine if the query is nested.
+     *
+     * @return bool
+     */
+    public function isNested()
+    {
+        return $this->nested === true;
+    }
+
+    /**
+     * Determine whether the query is paginated.
+     *
+     * @return bool
+     */
+    public function isPaginated()
+    {
+        return $this->paginated;
+    }
+
+    /**
+     * Insert an entry into the directory.
+     *
+     * @param string $dn
+     * @param array  $attributes
+     *
+     * @throws LdapRecordException
+     *
+     * @return bool
+     */
+    public function insert($dn, array $attributes)
+    {
+        if (empty($dn)) {
+            throw new LdapRecordException('A new LDAP object must have a distinguished name (dn).');
+        }
+
+        if (! array_key_exists('objectclass', $attributes)) {
+            throw new LdapRecordException(
+                'A new LDAP object must contain at least one object class (objectclass) to be created.'
+            );
+        }
+
+        return $this->connection->run(function (LdapInterface $ldap) use ($dn, $attributes) {
+            return $ldap->add($dn, $attributes);
+        });
+    }
+
+    /**
+     * Create attributes on the entry in the directory.
+     *
+     * @param string $dn
+     * @param array  $attributes
+     *
+     * @return bool
+     */
+    public function insertAttributes($dn, array $attributes)
+    {
+        return $this->connection->run(function (LdapInterface $ldap) use ($dn, $attributes) {
+            return $ldap->modAdd($dn, $attributes);
+        });
+    }
+
+    /**
+     * Update the entry with the given modifications.
+     *
+     * @param string $dn
+     * @param array  $modifications
+     *
+     * @return bool
+     */
+    public function update($dn, array $modifications)
+    {
+        return $this->connection->run(function (LdapInterface $ldap) use ($dn, $modifications) {
+            return $ldap->modifyBatch($dn, $modifications);
+        });
+    }
+
+    /**
+     * Update an entries attribute in the directory.
+     *
+     * @param string $dn
+     * @param array  $attributes
+     *
+     * @return bool
+     */
+    public function updateAttributes($dn, array $attributes)
+    {
+        return $this->connection->run(function (LdapInterface $ldap) use ($dn, $attributes) {
+            return $ldap->modReplace($dn, $attributes);
+        });
+    }
+
+    /**
+     * Delete an entry from the directory.
+     *
+     * @param string $dn
+     *
+     * @return bool
+     */
+    public function delete($dn)
+    {
+        return $this->connection->run(function (LdapInterface $ldap) use ($dn) {
+            return $ldap->delete($dn);
+        });
+    }
+
+    /**
+     * Delete attributes on the entry in the directory.
+     *
+     * @param string $dn
+     * @param array  $attributes
+     *
+     * @return bool
+     */
+    public function deleteAttributes($dn, array $attributes)
+    {
+        return $this->connection->run(function (LdapInterface $ldap) use ($dn, $attributes) {
+            return $ldap->modDelete($dn, $attributes);
+        });
+    }
+
+    /**
+     * Rename an entry in the directory.
+     *
+     * @param string $dn
+     * @param string $rdn
+     * @param string $newParentDn
+     * @param bool   $deleteOldRdn
+     *
+     * @return bool
+     */
+    public function rename($dn, $rdn, $newParentDn, $deleteOldRdn = true)
+    {
+        return $this->connection->run(function (LdapInterface $ldap) use ($dn, $rdn, $newParentDn, $deleteOldRdn) {
+            return $ldap->rename($dn, $rdn, $newParentDn, $deleteOldRdn);
+        });
+    }
+
+    /**
+     * Handle dynamic method calls on the query builder.
+     *
+     * @param string $method
+     * @param array  $parameters
+     *
+     * @throws BadMethodCallException
+     *
+     * @return mixed
+     */
+    public function __call($method, $parameters)
+    {
+        // If the beginning of the method being called contains
+        // 'where', we will assume a dynamic 'where' clause is
+        // being performed and pass the parameters to it.
+        if (substr($method, 0, 5) === 'where') {
+            return $this->dynamicWhere($method, $parameters);
+        }
+
+        throw new BadMethodCallException(sprintf(
+            'Call to undefined method %s::%s()',
+            static::class,
+            $method
+        ));
+    }
+
+    /**
+     * Handles dynamic "where" clauses to the query.
+     *
+     * @param string $method
+     * @param array  $parameters
+     *
+     * @return $this
+     */
+    public function dynamicWhere($method, $parameters)
+    {
+        $finder = substr($method, 5);
+
+        $segments = preg_split('/(And|Or)(?=[A-Z])/', $finder, -1, PREG_SPLIT_DELIM_CAPTURE);
+
+        // The connector variable will determine which connector will be used for the
+        // query condition. We will change it as we come across new boolean values
+        // in the dynamic method strings, which could contain a number of these.
+        $connector = 'and';
+
+        $index = 0;
+
+        foreach ($segments as $segment) {
+            // If the segment is not a boolean connector, we can assume it is a column's name
+            // and we will add it to the query as a new constraint as a where clause, then
+            // we can keep iterating through the dynamic method string's segments again.
+            if ($segment != 'And' && $segment != 'Or') {
+                $this->addDynamic($segment, $connector, $parameters, $index);
+
+                $index++;
+            }
+
+            // Otherwise, we will store the connector so we know how the next where clause we
+            // find in the query should be connected to the previous ones, meaning we will
+            // have the proper boolean connector to connect the next where clause found.
+            else {
+                $connector = $segment;
+            }
+        }
+
+        return $this;
+    }
+
+    /**
+     * Adds an array of wheres to the current query.
+     *
+     * @param array  $wheres
+     * @param string $boolean
+     * @param bool   $raw
+     *
+     * @return $this
+     */
+    protected function addArrayOfWheres($wheres, $boolean, $raw)
+    {
+        foreach ($wheres as $key => $value) {
+            if (is_numeric($key) && is_array($value)) {
+                // If the key is numeric and the value is an array, we'll
+                // assume we've been given an array with conditionals.
+                [$field, $condition] = $value;
+
+                // Since a value is optional for some conditionals, we will
+                // try and retrieve the third parameter from the array,
+                // but is entirely optional.
+                $value = Arr::get($value, 2);
+
+                $this->where($field, $condition, $value, $boolean);
+            } else {
+                // If the value is not an array, we will assume an equals clause.
+                $this->where($key, '=', $value, $boolean, $raw);
+            }
+        }
+
+        return $this;
+    }
+
+    /**
+     * Add a single dynamic where clause statement to the query.
+     *
+     * @param string $segment
+     * @param string $connector
+     * @param array  $parameters
+     * @param int    $index
+     *
+     * @return void
+     */
+    protected function addDynamic($segment, $connector, $parameters, $index)
+    {
+        // If no parameters were given to the dynamic where clause,
+        // we can assume a "has" attribute filter is being added.
+        if (count($parameters) === 0) {
+            $this->where(strtolower($segment), '*', null, strtolower($connector));
+        } else {
+            $this->where(strtolower($segment), '=', $parameters[$index], strtolower($connector));
+        }
+    }
+
+    /**
+     * Logs the given executed query information by firing its query event.
+     *
+     * @param Builder    $query
+     * @param string     $type
+     * @param null|float $time
+     *
+     * @return void
+     */
+    protected function logQuery($query, $type, $time = null)
+    {
+        $args = [$query, $time];
+
+        switch ($type) {
+            case 'listing':
+                $event = new Events\Listing(...$args);
+                break;
+            case 'read':
+                $event = new Events\Read(...$args);
+                break;
+            case 'chunk':
+                $event = new Events\Chunk(...$args);
+                break;
+            case 'paginate':
+                $event = new Events\Paginate(...$args);
+                break;
+            default:
+                $event = new Events\Search(...$args);
+                break;
+        }
+
+        $this->fireQueryEvent($event);
+    }
+
+    /**
+     * Fires the given query event.
+     *
+     * @param QueryExecuted $event
+     *
+     * @return void
+     */
+    protected function fireQueryEvent(QueryExecuted $event)
+    {
+        Container::getInstance()->getEventDispatcher()->fire($event);
+    }
+
+    /**
+     * Get the elapsed time since a given starting point.
+     *
+     * @param int $start
+     *
+     * @return float
+     */
+    protected function getElapsedTime($start)
+    {
+        return round((microtime(true) - $start) * 1000, 2);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Cache.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Cache.php
new file mode 100644
index 0000000..dfbf8cd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Cache.php
@@ -0,0 +1,106 @@
+<?php
+
+namespace LdapRecord\Query;
+
+use Closure;
+use DateInterval;
+use DateTimeInterface;
+use Psr\SimpleCache\CacheInterface;
+
+class Cache
+{
+    use InteractsWithTime;
+
+    /**
+     * The cache driver.
+     *
+     * @var CacheInterface
+     */
+    protected $store;
+
+    /**
+     * Constructor.
+     *
+     * @param CacheInterface $store
+     */
+    public function __construct(CacheInterface $store)
+    {
+        $this->store = $store;
+    }
+
+    /**
+     * Get an item from the cache.
+     *
+     * @param string $key
+     *
+     * @return mixed
+     */
+    public function get($key)
+    {
+        return $this->store->get($key);
+    }
+
+    /**
+     * Store an item in the cache.
+     *
+     * @param string                                  $key
+     * @param mixed                                   $value
+     * @param DateTimeInterface|DateInterval|int|null $ttl
+     *
+     * @return bool
+     */
+    public function put($key, $value, $ttl = null)
+    {
+        $seconds = $this->secondsUntil($ttl);
+
+        if ($seconds <= 0) {
+            return $this->delete($key);
+        }
+
+        return $this->store->set($key, $value, $seconds);
+    }
+
+    /**
+     * Get an item from the cache, or execute the given Closure and store the result.
+     *
+     * @param string                                  $key
+     * @param DateTimeInterface|DateInterval|int|null $ttl
+     * @param Closure                                 $callback
+     *
+     * @return mixed
+     */
+    public function remember($key, $ttl, Closure $callback)
+    {
+        $value = $this->get($key);
+
+        if (! is_null($value)) {
+            return $value;
+        }
+
+        $this->put($key, $value = $callback(), $ttl);
+
+        return $value;
+    }
+
+    /**
+     * Delete an item from the cache.
+     *
+     * @param string $key
+     *
+     * @return bool
+     */
+    public function delete($key)
+    {
+        return $this->store->delete($key);
+    }
+
+    /**
+     * Get the underlying cache store.
+     *
+     * @return CacheInterface
+     */
+    public function store()
+    {
+        return $this->store;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Collection.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Collection.php
new file mode 100644
index 0000000..a02146d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Collection.php
@@ -0,0 +1,25 @@
+<?php
+
+namespace LdapRecord\Query;
+
+use LdapRecord\Models\Model;
+use Tightenco\Collect\Support\Collection as BaseCollection;
+
+class Collection extends BaseCollection
+{
+    /**
+     * @inheritdoc
+     */
+    protected function valueRetriever($value)
+    {
+        if ($this->useAsCallable($value)) {
+            return $value;
+        }
+
+        return function ($item) use ($value) {
+            return $item instanceof Model
+                ? $item->getFirstAttribute($value)
+                : data_get($item, $value);
+        };
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Events/Chunk.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Events/Chunk.php
new file mode 100644
index 0000000..3cd36d8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Events/Chunk.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Query\Events;
+
+class Chunk extends QueryExecuted
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Events/Listing.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Events/Listing.php
new file mode 100644
index 0000000..2b88ad9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Events/Listing.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Query\Events;
+
+class Listing extends QueryExecuted
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Events/Paginate.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Events/Paginate.php
new file mode 100644
index 0000000..6f8f262
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Events/Paginate.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Query\Events;
+
+class Paginate extends QueryExecuted
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Events/QueryExecuted.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Events/QueryExecuted.php
new file mode 100644
index 0000000..f13ddeb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Events/QueryExecuted.php
@@ -0,0 +1,54 @@
+<?php
+
+namespace LdapRecord\Query\Events;
+
+use LdapRecord\Query\Builder;
+
+class QueryExecuted
+{
+    /**
+     * The LDAP filter that was used for the query.
+     *
+     * @var string
+     */
+    protected $query;
+
+    /**
+     * The number of milliseconds it took to execute the query.
+     *
+     * @var float
+     */
+    protected $time;
+
+    /**
+     * Constructor.
+     *
+     * @param Builder    $query
+     * @param null|float $time
+     */
+    public function __construct(Builder $query, $time = null)
+    {
+        $this->query = $query;
+        $this->time = $time;
+    }
+
+    /**
+     * Returns the LDAP filter that was used for the query.
+     *
+     * @return Builder
+     */
+    public function getQuery()
+    {
+        return $this->query;
+    }
+
+    /**
+     * Returns the number of milliseconds it took to execute the query.
+     *
+     * @return float|null
+     */
+    public function getTime()
+    {
+        return $this->time;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Events/Read.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Events/Read.php
new file mode 100644
index 0000000..510c4ca
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Events/Read.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Query\Events;
+
+class Read extends QueryExecuted
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Events/Search.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Events/Search.php
new file mode 100644
index 0000000..5132316
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Events/Search.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace LdapRecord\Query\Events;
+
+class Search extends QueryExecuted
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Grammar.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Grammar.php
new file mode 100644
index 0000000..3217173
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Grammar.php
@@ -0,0 +1,549 @@
+<?php
+
+namespace LdapRecord\Query;
+
+use UnexpectedValueException;
+
+class Grammar
+{
+    /**
+     * The query operators and their method names.
+     *
+     * @var array
+     */
+    public $operators = [
+        '*' => 'has',
+        '!*' => 'notHas',
+        '=' => 'equals',
+        '!' => 'doesNotEqual',
+        '!=' => 'doesNotEqual',
+        '>=' => 'greaterThanOrEquals',
+        '<=' => 'lessThanOrEquals',
+        '~=' => 'approximatelyEquals',
+        'starts_with' => 'startsWith',
+        'not_starts_with' => 'notStartsWith',
+        'ends_with' => 'endsWith',
+        'not_ends_with' => 'notEndsWith',
+        'contains' => 'contains',
+        'not_contains' => 'notContains',
+    ];
+
+    /**
+     * The query wrapper.
+     *
+     * @var string|null
+     */
+    protected $wrapper;
+
+    /**
+     * Get all the available operators.
+     *
+     * @return array
+     */
+    public function getOperators()
+    {
+        return array_keys($this->operators);
+    }
+
+    /**
+     * Wraps a query string in brackets.
+     *
+     * Produces: (query)
+     *
+     * @param string $query
+     * @param string $prefix
+     * @param string $suffix
+     *
+     * @return string
+     */
+    public function wrap($query, $prefix = '(', $suffix = ')')
+    {
+        return $prefix.$query.$suffix;
+    }
+
+    /**
+     * Compiles the Builder instance into an LDAP query string.
+     *
+     * @param Builder $query
+     *
+     * @return string
+     */
+    public function compile(Builder $query)
+    {
+        if ($this->queryMustBeWrapped($query)) {
+            $this->wrapper = 'and';
+        }
+
+        $filter = $this->compileRaws($query)
+            .$this->compileWheres($query)
+            .$this->compileOrWheres($query);
+
+        switch ($this->wrapper) {
+            case 'and':
+                return $this->compileAnd($filter);
+            case 'or':
+                return $this->compileOr($filter);
+            default:
+                return $filter;
+        }
+    }
+
+    /**
+     * Determine if the query must be wrapped in an encapsulating statement.
+     *
+     * @param Builder $query
+     *
+     * @return bool
+     */
+    protected function queryMustBeWrapped(Builder $query)
+    {
+        return ! $query->isNested() && $this->hasMultipleFilters($query);
+    }
+
+    /**
+     * Assembles all of the "raw" filters on the query.
+     *
+     * @param Builder $builder
+     *
+     * @return string
+     */
+    protected function compileRaws(Builder $builder)
+    {
+        return $this->concatenate($builder->filters['raw']);
+    }
+
+    /**
+     * Assembles all where clauses in the current wheres property.
+     *
+     * @param Builder $builder
+     * @param string  $type
+     *
+     * @return string
+     */
+    protected function compileWheres(Builder $builder, $type = 'and')
+    {
+        $filter = '';
+
+        foreach ($builder->filters[$type] as $where) {
+            $filter .= $this->compileWhere($where);
+        }
+
+        return $filter;
+    }
+
+    /**
+     * Assembles all or where clauses in the current orWheres property.
+     *
+     * @param Builder $query
+     *
+     * @return string
+     */
+    protected function compileOrWheres(Builder $query)
+    {
+        $filter = $this->compileWheres($query, 'or');
+
+        if (! $this->hasMultipleFilters($query)) {
+            return $filter;
+        }
+
+        // Here we will detect whether the entire query can be
+        // wrapped inside of an "or" statement by checking
+        // how many filter statements exist for each type.
+        if ($this->queryCanBeWrappedInSingleOrStatement($query)) {
+            $this->wrapper = 'or';
+        } else {
+            $filter = $this->compileOr($filter);
+        }
+
+        return $filter;
+    }
+
+    /**
+     * Determine if the query can be wrapped in a single or statement.
+     *
+     * @param Builder $query
+     *
+     * @return bool
+     */
+    protected function queryCanBeWrappedInSingleOrStatement(Builder $query)
+    {
+        return $this->has($query, 'or', '>=', 1) &&
+            $this->has($query, 'and', '<=', 1) &&
+            $this->has($query, 'raw', '=', 0);
+    }
+
+    /**
+     * Concatenates filters into a single string.
+     *
+     * @param array $bindings
+     *
+     * @return string
+     */
+    public function concatenate(array $bindings = [])
+    {
+        // Filter out empty query segments.
+        return implode(
+            array_filter($bindings, [$this, 'bindingValueIsNotEmpty'])
+        );
+    }
+
+    /**
+     * Determine if the binding value is not empty.
+     *
+     * @param string $value
+     *
+     * @return bool
+     */
+    protected function bindingValueIsNotEmpty($value)
+    {
+        return ! empty($value);
+    }
+
+    /**
+     * Determine if the query is using multiple filters.
+     *
+     * @param Builder $query
+     *
+     * @return bool
+     */
+    protected function hasMultipleFilters(Builder $query)
+    {
+        return $this->has($query, ['and', 'or', 'raw'], '>', 1);
+    }
+
+    /**
+     * Determine if the query contains the given filter statement type.
+     *
+     * @param Builder      $query
+     * @param string|array $type
+     * @param string       $operator
+     * @param int          $count
+     *
+     * @return bool
+     */
+    protected function has(Builder $query, $type, $operator = '>=', $count = 1)
+    {
+        $types = (array) $type;
+
+        $filters = 0;
+
+        foreach ($types as $type) {
+            $filters += count($query->filters[$type]);
+        }
+
+        switch ($operator) {
+            case '>':
+                return $filters > $count;
+            case '>=':
+                return $filters >= $count;
+            case '<':
+                return $filters < $count;
+            case '<=':
+                return $filters <= $count;
+            default:
+                return $filters == $count;
+        }
+    }
+
+    /**
+     * Returns a query string for equals.
+     *
+     * Produces: (field=value)
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileEquals($field, $value)
+    {
+        return $this->wrap($field.'='.$value);
+    }
+
+    /**
+     * Returns a query string for does not equal.
+     *
+     * Produces: (!(field=value))
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileDoesNotEqual($field, $value)
+    {
+        return $this->compileNot(
+            $this->compileEquals($field, $value)
+        );
+    }
+
+    /**
+     * Alias for does not equal operator (!=) operator.
+     *
+     * Produces: (!(field=value))
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileDoesNotEqualAlias($field, $value)
+    {
+        return $this->compileDoesNotEqual($field, $value);
+    }
+
+    /**
+     * Returns a query string for greater than or equals.
+     *
+     * Produces: (field>=value)
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileGreaterThanOrEquals($field, $value)
+    {
+        return $this->wrap("$field>=$value");
+    }
+
+    /**
+     * Returns a query string for less than or equals.
+     *
+     * Produces: (field<=value)
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileLessThanOrEquals($field, $value)
+    {
+        return $this->wrap("$field<=$value");
+    }
+
+    /**
+     * Returns a query string for approximately equals.
+     *
+     * Produces: (field~=value)
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileApproximatelyEquals($field, $value)
+    {
+        return $this->wrap("$field~=$value");
+    }
+
+    /**
+     * Returns a query string for starts with.
+     *
+     * Produces: (field=value*)
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileStartsWith($field, $value)
+    {
+        return $this->wrap("$field=$value*");
+    }
+
+    /**
+     * Returns a query string for does not start with.
+     *
+     * Produces: (!(field=*value))
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileNotStartsWith($field, $value)
+    {
+        return $this->compileNot(
+            $this->compileStartsWith($field, $value)
+        );
+    }
+
+    /**
+     * Returns a query string for ends with.
+     *
+     * Produces: (field=*value)
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileEndsWith($field, $value)
+    {
+        return $this->wrap("$field=*$value");
+    }
+
+    /**
+     * Returns a query string for does not end with.
+     *
+     * Produces: (!(field=value*))
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileNotEndsWith($field, $value)
+    {
+        return $this->compileNot($this->compileEndsWith($field, $value));
+    }
+
+    /**
+     * Returns a query string for contains.
+     *
+     * Produces: (field=*value*)
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileContains($field, $value)
+    {
+        return $this->wrap("$field=*$value*");
+    }
+
+    /**
+     * Returns a query string for does not contain.
+     *
+     * Produces: (!(field=*value*))
+     *
+     * @param string $field
+     * @param string $value
+     *
+     * @return string
+     */
+    public function compileNotContains($field, $value)
+    {
+        return $this->compileNot(
+            $this->compileContains($field, $value)
+        );
+    }
+
+    /**
+     * Returns a query string for a where has.
+     *
+     * Produces: (field=*)
+     *
+     * @param string $field
+     *
+     * @return string
+     */
+    public function compileHas($field)
+    {
+        return $this->wrap("$field=*");
+    }
+
+    /**
+     * Returns a query string for a where does not have.
+     *
+     * Produces: (!(field=*))
+     *
+     * @param string $field
+     *
+     * @return string
+     */
+    public function compileNotHas($field)
+    {
+        return $this->compileNot(
+            $this->compileHas($field)
+        );
+    }
+
+    /**
+     * Wraps the inserted query inside an AND operator.
+     *
+     * Produces: (&query)
+     *
+     * @param string $query
+     *
+     * @return string
+     */
+    public function compileAnd($query)
+    {
+        return $query ? $this->wrap($query, '(&') : '';
+    }
+
+    /**
+     * Wraps the inserted query inside an OR operator.
+     *
+     * Produces: (|query)
+     *
+     * @param string $query
+     *
+     * @return string
+     */
+    public function compileOr($query)
+    {
+        return $query ? $this->wrap($query, '(|') : '';
+    }
+
+    /**
+     * Wraps the inserted query inside an NOT operator.
+     *
+     * @param string $query
+     *
+     * @return string
+     */
+    public function compileNot($query)
+    {
+        return $query ? $this->wrap($query, '(!') : '';
+    }
+
+    /**
+     * Assembles a single where query.
+     *
+     * @param array $where
+     *
+     * @throws UnexpectedValueException
+     *
+     * @return string
+     */
+    protected function compileWhere(array $where)
+    {
+        $method = $this->makeCompileMethod($where['operator']);
+
+        return $this->{$method}($where['field'], $where['value']);
+    }
+
+    /**
+     * Make the compile method name for the operator.
+     *
+     * @param string $operator
+     *
+     * @throws UnexpectedValueException
+     *
+     * @return string
+     */
+    protected function makeCompileMethod($operator)
+    {
+        if (! $this->operatorExists($operator)) {
+            throw new UnexpectedValueException("Invalid LDAP filter operator ['$operator']");
+        }
+
+        return 'compile'.ucfirst($this->operators[$operator]);
+    }
+
+    /**
+     * Determine if the operator exists.
+     *
+     * @param string $operator
+     *
+     * @return bool
+     */
+    protected function operatorExists($operator)
+    {
+        return array_key_exists($operator, $this->operators);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/InteractsWithTime.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/InteractsWithTime.php
new file mode 100644
index 0000000..1562ec0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/InteractsWithTime.php
@@ -0,0 +1,73 @@
+<?php
+
+namespace LdapRecord\Query;
+
+use Carbon\Carbon;
+use DateInterval;
+use DateTimeInterface;
+
+/**
+ * @author Taylor Otwell
+ *
+ * @see https://laravel.com
+ */
+trait InteractsWithTime
+{
+    /**
+     * Get the number of seconds until the given DateTime.
+     *
+     * @param DateTimeInterface|DateInterval|int $delay
+     *
+     * @return int
+     */
+    protected function secondsUntil($delay)
+    {
+        $delay = $this->parseDateInterval($delay);
+
+        return $delay instanceof DateTimeInterface
+            ? max(0, $delay->getTimestamp() - $this->currentTime())
+            : (int) $delay;
+    }
+
+    /**
+     * Get the "available at" UNIX timestamp.
+     *
+     * @param DateTimeInterface|DateInterval|int $delay
+     *
+     * @return int
+     */
+    protected function availableAt($delay = 0)
+    {
+        $delay = $this->parseDateInterval($delay);
+
+        return $delay instanceof DateTimeInterface
+            ? $delay->getTimestamp()
+            : Carbon::now()->addRealSeconds($delay)->getTimestamp();
+    }
+
+    /**
+     * If the given value is an interval, convert it to a DateTime instance.
+     *
+     * @param DateTimeInterface|DateInterval|int $delay
+     *
+     * @return DateTimeInterface|int
+     */
+    protected function parseDateInterval($delay)
+    {
+        if ($delay instanceof DateInterval) {
+            $delay = Carbon::now()->add($delay);
+        }
+
+        return $delay;
+    }
+
+    /**
+     * Get the current system time as a UNIX timestamp.
+     *
+     * @return int
+     */
+    protected function currentTime()
+    {
+        return Carbon::now()->getTimestamp();
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Model/ActiveDirectoryBuilder.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Model/ActiveDirectoryBuilder.php
new file mode 100644
index 0000000..8923015
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Model/ActiveDirectoryBuilder.php
@@ -0,0 +1,247 @@
+<?php
+
+namespace LdapRecord\Query\Model;
+
+use Closure;
+use LdapRecord\LdapInterface;
+use LdapRecord\Models\Attributes\AccountControl;
+use LdapRecord\Models\ModelNotFoundException;
+
+class ActiveDirectoryBuilder extends Builder
+{
+    /**
+     * Finds a record by its Object SID.
+     *
+     * @param string       $sid
+     * @param array|string $columns
+     *
+     * @return \LdapRecord\Models\ActiveDirectory\Entry|static|null
+     */
+    public function findBySid($sid, $columns = [])
+    {
+        try {
+            return $this->findBySidOrFail($sid, $columns);
+        } catch (ModelNotFoundException $e) {
+            return;
+        }
+    }
+
+    /**
+     * Finds a record by its Object SID.
+     *
+     * Fails upon no records returned.
+     *
+     * @param string       $sid
+     * @param array|string $columns
+     *
+     * @throws ModelNotFoundException
+     *
+     * @return \LdapRecord\Models\ActiveDirectory\Entry|static
+     */
+    public function findBySidOrFail($sid, $columns = [])
+    {
+        return $this->findByOrFail('objectsid', $sid, $columns);
+    }
+
+    /**
+     * Adds a enabled filter to the current query.
+     *
+     * @return $this
+     */
+    public function whereEnabled()
+    {
+        return $this->notFilter(function ($query) {
+            return $query->whereDisabled();
+        });
+    }
+
+    /**
+     * Adds a disabled filter to the current query.
+     *
+     * @return $this
+     */
+    public function whereDisabled()
+    {
+        return $this->rawFilter(
+            (new AccountControl())->accountIsDisabled()->filter()
+        );
+    }
+
+    /**
+     * Adds a 'where member' filter to the current query.
+     *
+     * @param string $dn
+     * @param bool   $nested
+     *
+     * @return $this
+     */
+    public function whereMember($dn, $nested = false)
+    {
+        return $this->nestedMatchQuery(function ($attribute) use ($dn) {
+            return $this->whereEquals($attribute, $dn);
+        }, 'member', $nested);
+    }
+
+    /**
+     * Adds an 'or where member' filter to the current query.
+     *
+     * @param string $dn
+     * @param bool   $nested
+     *
+     * @return $this
+     */
+    public function orWhereMember($dn, $nested = false)
+    {
+        return $this->nestedMatchQuery(function ($attribute) use ($dn) {
+            return $this->orWhereEquals($attribute, $dn);
+        }, 'member', $nested);
+    }
+
+    /**
+     * Adds a 'where member of' filter to the current query.
+     *
+     * @param string $dn
+     * @param bool   $nested
+     *
+     * @return $this
+     */
+    public function whereMemberOf($dn, $nested = false)
+    {
+        return $this->nestedMatchQuery(function ($attribute) use ($dn) {
+            return $this->whereEquals($attribute, $dn);
+        }, 'memberof', $nested);
+    }
+
+    /**
+     * Adds a 'where not member of' filter to the current query.
+     *
+     * @param string $dn
+     * @param bool   $nested
+     *
+     * @return $this
+     */
+    public function whereNotMemberof($dn, $nested = false)
+    {
+        return $this->nestedMatchQuery(function ($attribute) use ($dn) {
+            return $this->whereNotEquals($attribute, $dn);
+        }, 'memberof', $nested);
+    }
+
+    /**
+     * Adds an 'or where member of' filter to the current query.
+     *
+     * @param string $dn
+     * @param bool   $nested
+     *
+     * @return $this
+     */
+    public function orWhereMemberOf($dn, $nested = false)
+    {
+        return $this->nestedMatchQuery(function ($attribute) use ($dn) {
+            return $this->orWhereEquals($attribute, $dn);
+        }, 'memberof', $nested);
+    }
+
+    /**
+     * Adds a 'or where not member of' filter to the current query.
+     *
+     * @param string $dn
+     * @param bool   $nested
+     *
+     * @return $this
+     */
+    public function orWhereNotMemberof($dn, $nested = false)
+    {
+        return $this->nestedMatchQuery(function ($attribute) use ($dn) {
+            return $this->orWhereNotEquals($attribute, $dn);
+        }, 'memberof', $nested);
+    }
+
+    /**
+     * Adds a 'where manager' filter to the current query.
+     *
+     * @param string $dn
+     * @param bool   $nested
+     *
+     * @return $this
+     */
+    public function whereManager($dn, $nested = false)
+    {
+        return $this->nestedMatchQuery(function ($attribute) use ($dn) {
+            return $this->whereEquals($attribute, $dn);
+        }, 'manager', $nested);
+    }
+
+    /**
+     * Adds a 'where not manager' filter to the current query.
+     *
+     * @param string $dn
+     * @param bool   $nested
+     *
+     * @return $this
+     */
+    public function whereNotManager($dn, $nested = false)
+    {
+        return $this->nestedMatchQuery(function ($attribute) use ($dn) {
+            return $this->whereNotEquals($attribute, $dn);
+        }, 'manager', $nested);
+    }
+
+    /**
+     * Adds an 'or where manager' filter to the current query.
+     *
+     * @param string $dn
+     * @param bool   $nested
+     *
+     * @return $this
+     */
+    public function orWhereManager($dn, $nested = false)
+    {
+        return $this->nestedMatchQuery(function ($attribute) use ($dn) {
+            return $this->orWhereEquals($attribute, $dn);
+        }, 'manager', $nested);
+    }
+
+    /**
+     * Adds an 'or where not manager' filter to the current query.
+     *
+     * @param string $dn
+     * @param bool   $nested
+     *
+     * @return $this
+     */
+    public function orWhereNotManager($dn, $nested = false)
+    {
+        return $this->nestedMatchQuery(function ($attribute) use ($dn) {
+            return $this->orWhereNotEquals($attribute, $dn);
+        }, 'manager', $nested);
+    }
+
+    /**
+     * Execute the callback with a nested match attribute.
+     *
+     * @param Closure $callback
+     * @param string  $attribute
+     * @param bool    $nested
+     *
+     * @return $this
+     */
+    protected function nestedMatchQuery(Closure $callback, $attribute, $nested = false)
+    {
+        return $callback(
+            $nested ? $this->makeNestedMatchAttribute($attribute) : $attribute
+        );
+    }
+
+    /**
+     * Make a "nested match" filter attribute for querying descendants.
+     *
+     * @param string $attribute
+     *
+     * @return string
+     */
+    protected function makeNestedMatchAttribute($attribute)
+    {
+        return sprintf('%s:%s:', $attribute, LdapInterface::OID_MATCHING_RULE_IN_CHAIN);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Model/Builder.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Model/Builder.php
new file mode 100644
index 0000000..eed5e91
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Model/Builder.php
@@ -0,0 +1,446 @@
+<?php
+
+namespace LdapRecord\Query\Model;
+
+use Closure;
+use DateTime;
+use LdapRecord\Models\Model;
+use LdapRecord\Models\ModelNotFoundException;
+use LdapRecord\Models\Scope;
+use LdapRecord\Models\Types\ActiveDirectory;
+use LdapRecord\Query\Builder as BaseBuilder;
+use LdapRecord\Utilities;
+
+class Builder extends BaseBuilder
+{
+    /**
+     * The model being queried.
+     *
+     * @var Model
+     */
+    protected $model;
+
+    /**
+     * The global scopes to be applied.
+     *
+     * @var array
+     */
+    protected $scopes = [];
+
+    /**
+     * The removed global scopes.
+     *
+     * @var array
+     */
+    protected $removedScopes = [];
+
+    /**
+     * The applied global scopes.
+     *
+     * @var array
+     */
+    protected $appliedScopes = [];
+
+    /**
+     * Dynamically handle calls into the query instance.
+     *
+     * @param string $method
+     * @param array  $parameters
+     *
+     * @return mixed
+     */
+    public function __call($method, $parameters)
+    {
+        if (method_exists($this->model, $scope = 'scope'.ucfirst($method))) {
+            return $this->callScope([$this->model, $scope], $parameters);
+        }
+
+        return parent::__call($method, $parameters);
+    }
+
+    /**
+     * Apply the given scope on the current builder instance.
+     *
+     * @param callable $scope
+     * @param array    $parameters
+     *
+     * @return mixed
+     */
+    protected function callScope(callable $scope, $parameters = [])
+    {
+        array_unshift($parameters, $this);
+
+        return $scope(...array_values($parameters)) ?? $this;
+    }
+
+    /**
+     * Get the attributes to select on the search.
+     *
+     * @return array
+     */
+    public function getSelects()
+    {
+        // Here we will ensure the models GUID attribute is always
+        // selected. In some LDAP directories, the attribute is
+        // virtual and must be requested for specifically.
+        return array_values(array_unique(
+            array_merge([$this->model->getGuidKey()], parent::getSelects())
+        ));
+    }
+
+    /**
+     * Set the model instance for the model being queried.
+     *
+     * @param Model $model
+     *
+     * @return $this
+     */
+    public function setModel(Model $model)
+    {
+        $this->model = $model;
+
+        return $this;
+    }
+
+    /**
+     * Returns the model being queried for.
+     *
+     * @return Model
+     */
+    public function getModel()
+    {
+        return $this->model;
+    }
+
+    /**
+     * Get a new model query builder instance.
+     *
+     * @param string|null $baseDn
+     *
+     * @return static
+     */
+    public function newInstance($baseDn = null)
+    {
+        return parent::newInstance($baseDn)->model($this->model);
+    }
+
+    /**
+     * Finds a model by its distinguished name.
+     *
+     * @param array|string          $dn
+     * @param array|string|string[] $columns
+     *
+     * @return Model|\LdapRecord\Query\Collection|static|null
+     */
+    public function find($dn, $columns = ['*'])
+    {
+        return $this->afterScopes(function () use ($dn, $columns) {
+            return parent::find($dn, $columns);
+        });
+    }
+
+    /**
+     * Finds a record using ambiguous name resolution.
+     *
+     * @param string|array $value
+     * @param array|string $columns
+     *
+     * @return Model|\LdapRecord\Query\Collection|static|null
+     */
+    public function findByAnr($value, $columns = ['*'])
+    {
+        if (is_array($value)) {
+            return $this->findManyByAnr($value, $columns);
+        }
+
+        // If the model is not compatible with ANR filters,
+        // we must construct an equivalent filter that
+        // the current LDAP server does support.
+        if (! $this->modelIsCompatibleWithAnr()) {
+            return $this->prepareAnrEquivalentQuery($value)->first($columns);
+        }
+
+        return $this->findBy('anr', $value, $columns);
+    }
+
+    /**
+     * Determine if the current model is compatible with ANR filters.
+     *
+     * @return bool
+     */
+    protected function modelIsCompatibleWithAnr()
+    {
+        return $this->model instanceof ActiveDirectory;
+    }
+
+    /**
+     * Finds a record using ambiguous name resolution.
+     *
+     * If a record is not found, an exception is thrown.
+     *
+     * @param string       $value
+     * @param array|string $columns
+     *
+     * @throws ModelNotFoundException
+     *
+     * @return Model
+     */
+    public function findByAnrOrFail($value, $columns = ['*'])
+    {
+        if (! $entry = $this->findByAnr($value, $columns)) {
+            $this->throwNotFoundException($this->getUnescapedQuery(), $this->dn);
+        }
+
+        return $entry;
+    }
+
+    /**
+     * Throws a not found exception.
+     *
+     * @param string $query
+     * @param string $dn
+     *
+     * @throws ModelNotFoundException
+     */
+    protected function throwNotFoundException($query, $dn)
+    {
+        throw ModelNotFoundException::forQuery($query, $dn);
+    }
+
+    /**
+     * Finds multiple records using ambiguous name resolution.
+     *
+     * @param array $values
+     * @param array $columns
+     *
+     * @return \LdapRecord\Query\Collection
+     */
+    public function findManyByAnr(array $values = [], $columns = ['*'])
+    {
+        $this->select($columns);
+
+        if (! $this->modelIsCompatibleWithAnr()) {
+            foreach ($values as $value) {
+                $this->prepareAnrEquivalentQuery($value);
+            }
+
+            return $this->get($columns);
+        }
+
+        return $this->findManyBy('anr', $values);
+    }
+
+    /**
+     * Creates an ANR equivalent query for LDAP distributions that do not support ANR.
+     *
+     * @param string $value
+     *
+     * @return $this
+     */
+    protected function prepareAnrEquivalentQuery($value)
+    {
+        return $this->orFilter(function (self $query) use ($value) {
+            foreach ($this->model->getAnrAttributes() as $attribute) {
+                $query->whereEquals($attribute, $value);
+            }
+        });
+    }
+
+    /**
+     * Finds a record by its string GUID.
+     *
+     * @param string       $guid
+     * @param array|string $columns
+     *
+     * @return Model|static|null
+     */
+    public function findByGuid($guid, $columns = ['*'])
+    {
+        try {
+            return $this->findByGuidOrFail($guid, $columns);
+        } catch (ModelNotFoundException $e) {
+            return;
+        }
+    }
+
+    /**
+     * Finds a record by its string GUID.
+     *
+     * Fails upon no records returned.
+     *
+     * @param string       $guid
+     * @param array|string $columns
+     *
+     * @throws ModelNotFoundException
+     *
+     * @return Model|static
+     */
+    public function findByGuidOrFail($guid, $columns = ['*'])
+    {
+        if ($this->model instanceof ActiveDirectory) {
+            $guid = Utilities::stringGuidToHex($guid);
+        }
+
+        return $this->whereRaw([
+            $this->model->getGuidKey() => $guid,
+        ])->firstOrFail($columns);
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function getQuery()
+    {
+        return $this->afterScopes(function () {
+            return parent::getQuery();
+        });
+    }
+
+    /**
+     * Apply the query scopes and execute the callback.
+     *
+     * @param Closure $callback
+     *
+     * @return mixed
+     */
+    protected function afterScopes(Closure $callback)
+    {
+        $this->applyScopes();
+
+        return $callback();
+    }
+
+    /**
+     * Apply the global query scopes.
+     *
+     * @return $this
+     */
+    public function applyScopes()
+    {
+        if (! $this->scopes) {
+            return $this;
+        }
+
+        foreach ($this->scopes as $identifier => $scope) {
+            if (isset($this->appliedScopes[$identifier])) {
+                continue;
+            }
+
+            $scope instanceof Scope
+                ? $scope->apply($this, $this->getModel())
+                : $scope($this);
+
+            $this->appliedScopes[$identifier] = $scope;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Register a new global scope.
+     *
+     * @param string         $identifier
+     * @param Scope|\Closure $scope
+     *
+     * @return $this
+     */
+    public function withGlobalScope($identifier, $scope)
+    {
+        $this->scopes[$identifier] = $scope;
+
+        return $this;
+    }
+
+    /**
+     * Remove a registered global scope.
+     *
+     * @param Scope|string $scope
+     *
+     * @return $this
+     */
+    public function withoutGlobalScope($scope)
+    {
+        if (! is_string($scope)) {
+            $scope = get_class($scope);
+        }
+
+        unset($this->scopes[$scope]);
+
+        $this->removedScopes[] = $scope;
+
+        return $this;
+    }
+
+    /**
+     * Remove all or passed registered global scopes.
+     *
+     * @param array|null $scopes
+     *
+     * @return $this
+     */
+    public function withoutGlobalScopes(array $scopes = null)
+    {
+        if (! is_array($scopes)) {
+            $scopes = array_keys($this->scopes);
+        }
+
+        foreach ($scopes as $scope) {
+            $this->withoutGlobalScope($scope);
+        }
+
+        return $this;
+    }
+
+    /**
+     * Get an array of global scopes that were removed from the query.
+     *
+     * @return array
+     */
+    public function removedScopes()
+    {
+        return $this->removedScopes;
+    }
+
+    /**
+     * Get an array of the global scopes that were applied to the query.
+     *
+     * @return array
+     */
+    public function appliedScopes()
+    {
+        return $this->appliedScopes;
+    }
+
+    /**
+     * Processes and converts the given LDAP results into models.
+     *
+     * @param array $results
+     *
+     * @return \LdapRecord\Query\Collection
+     */
+    protected function process(array $results)
+    {
+        return $this->model->hydrate(parent::process($results));
+    }
+
+    /**
+     * @inheritdoc
+     */
+    protected function prepareWhereValue($field, $value, $raw = false)
+    {
+        if ($value instanceof DateTime) {
+            $field = $this->model->normalizeAttributeKey($field);
+
+            if (! $this->model->isDateAttribute($field)) {
+                throw new \UnexpectedValueException(
+                    "Cannot convert field [$field] to an LDAP timestamp. You must add this field as a model date."
+                    .' Refer to https://ldaprecord.com/docs/model-mutators/#date-mutators'
+                );
+            }
+
+            $value = $this->model->fromDateTime($this->model->getDates()[$field], $value);
+        }
+
+        return parent::prepareWhereValue($field, $value, $raw);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Model/FreeIpaBuilder.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Model/FreeIpaBuilder.php
new file mode 100644
index 0000000..5e3d43f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Model/FreeIpaBuilder.php
@@ -0,0 +1,26 @@
+<?php
+
+namespace LdapRecord\Query\Model;
+
+class FreeIpaBuilder extends Builder
+{
+    /**
+     * Adds a enabled filter to the current query.
+     *
+     * @return $this
+     */
+    public function whereEnabled()
+    {
+        return $this->rawFilter('(!(pwdAccountLockedTime=*))');
+    }
+
+    /**
+     * Adds a disabled filter to the current query.
+     *
+     * @return $this
+     */
+    public function whereDisabled()
+    {
+        return $this->rawFilter('(pwdAccountLockedTime=*)');
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Model/OpenLdapBuilder.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Model/OpenLdapBuilder.php
new file mode 100644
index 0000000..dd41344
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Model/OpenLdapBuilder.php
@@ -0,0 +1,26 @@
+<?php
+
+namespace LdapRecord\Query\Model;
+
+class OpenLdapBuilder extends Builder
+{
+    /**
+     * Adds a enabled filter to the current query.
+     *
+     * @return $this
+     */
+    public function whereEnabled()
+    {
+        return $this->rawFilter('(!(pwdAccountLockedTime=*))');
+    }
+
+    /**
+     * Adds a disabled filter to the current query.
+     *
+     * @return $this
+     */
+    public function whereDisabled()
+    {
+        return $this->rawFilter('(pwdAccountLockedTime=*)');
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/ObjectNotFoundException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/ObjectNotFoundException.php
new file mode 100644
index 0000000..b2dec28
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/ObjectNotFoundException.php
@@ -0,0 +1,52 @@
+<?php
+
+namespace LdapRecord\Query;
+
+use LdapRecord\LdapRecordException;
+
+class ObjectNotFoundException extends LdapRecordException
+{
+    /**
+     * The query filter that was used.
+     *
+     * @var string
+     */
+    protected $query;
+
+    /**
+     * The base DN of the query that was used.
+     *
+     * @var string
+     */
+    protected $baseDn;
+
+    /**
+     * Create a new exception for the executed filter.
+     *
+     * @param string $query
+     * @param null   $baseDn
+     *
+     * @return static
+     */
+    public static function forQuery($query, $baseDn = null)
+    {
+        return (new static())->setQuery($query, $baseDn);
+    }
+
+    /**
+     * Set the query that was used.
+     *
+     * @param string      $query
+     * @param string|null $baseDn
+     *
+     * @return $this
+     */
+    public function setQuery($query, $baseDn = null)
+    {
+        $this->query = $query;
+        $this->baseDn = $baseDn;
+        $this->message = "No LDAP query results for filter: [$query] in: [$baseDn]";
+
+        return $this;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Pagination/AbstractPaginator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Pagination/AbstractPaginator.php
new file mode 100644
index 0000000..3dfd3f1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Pagination/AbstractPaginator.php
@@ -0,0 +1,122 @@
+<?php
+
+namespace LdapRecord\Query\Pagination;
+
+use LdapRecord\LdapInterface;
+use LdapRecord\Query\Builder;
+
+abstract class AbstractPaginator
+{
+    /**
+     * The query builder instance.
+     *
+     * @var Builder
+     */
+    protected $query;
+
+    /**
+     * The filter to execute.
+     *
+     * @var string
+     */
+    protected $filter;
+
+    /**
+     * The amount of objects to fetch per page.
+     *
+     * @var int
+     */
+    protected $perPage;
+
+    /**
+     * Whether the operation is critical.
+     *
+     * @var bool
+     */
+    protected $isCritical;
+
+    /**
+     * Constructor.
+     *
+     * @param Builder $query
+     */
+    public function __construct(Builder $query, $filter, $perPage, $isCritical)
+    {
+        $this->query = $query;
+        $this->filter = $filter;
+        $this->perPage = $perPage;
+        $this->isCritical = $isCritical;
+    }
+
+    /**
+     * Execute the pagination request.
+     *
+     * @param LdapInterface $ldap
+     *
+     * @return array
+     */
+    public function execute(LdapInterface $ldap)
+    {
+        $pages = [];
+
+        $this->prepareServerControls();
+
+        do {
+            $this->applyServerControls($ldap);
+
+            if (! $resource = $this->query->run($this->filter)) {
+                break;
+            }
+
+            $this->updateServerControls($ldap, $resource);
+
+            $pages[] = $this->query->parse($resource);
+        } while (! empty($this->fetchCookie()));
+
+        $this->resetServerControls($ldap);
+
+        return $pages;
+    }
+
+    /**
+     * Fetch the pagination cookie.
+     *
+     * @return string
+     */
+    abstract protected function fetchCookie();
+
+    /**
+     * Prepare the server controls before executing the pagination request.
+     *
+     * @return void
+     */
+    abstract protected function prepareServerControls();
+
+    /**
+     * Apply the server controls.
+     *
+     * @param LdapInterface $ldap
+     *
+     * @return void
+     */
+    abstract protected function applyServerControls(LdapInterface $ldap);
+
+    /**
+     * Reset the server controls.
+     *
+     * @param LdapInterface $ldap
+     *
+     * @return mixed
+     */
+    abstract protected function resetServerControls(LdapInterface $ldap);
+
+    /**
+     * Update the server controls.
+     *
+     * @param LdapInterface $ldap
+     * @param resource      $resource
+     *
+     * @return void
+     */
+    abstract protected function updateServerControls(LdapInterface $ldap, $resource);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Pagination/DeprecatedPaginator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Pagination/DeprecatedPaginator.php
new file mode 100644
index 0000000..b4a7f8d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Pagination/DeprecatedPaginator.php
@@ -0,0 +1,58 @@
+<?php
+
+namespace LdapRecord\Query\Pagination;
+
+use LdapRecord\LdapInterface;
+
+/**
+ * @deprecated since v2.5.0
+ */
+class DeprecatedPaginator extends AbstractPaginator
+{
+    /**
+     * The pagination cookie.
+     *
+     * @var string
+     */
+    protected $cookie = '';
+
+    /**
+     * @inheritdoc
+     */
+    protected function fetchCookie()
+    {
+        return $this->cookie;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    protected function prepareServerControls()
+    {
+        $this->cookie = '';
+    }
+
+    /**
+     * @inheritdoc
+     */
+    protected function applyServerControls(LdapInterface $ldap)
+    {
+        $ldap->controlPagedResult($this->perPage, $this->isCritical, $this->cookie);
+    }
+
+    /**
+     * @inheritdoc
+     */
+    protected function updateServerControls(LdapInterface $ldap, $resource)
+    {
+        $ldap->controlPagedResultResponse($resource, $this->cookie);
+    }
+
+    /**
+     * @inheritdoc
+     */
+    protected function resetServerControls(LdapInterface $ldap)
+    {
+        $ldap->controlPagedResult();
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Pagination/LazyPaginator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Pagination/LazyPaginator.php
new file mode 100644
index 0000000..2974b8f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Pagination/LazyPaginator.php
@@ -0,0 +1,34 @@
+<?php
+
+namespace LdapRecord\Query\Pagination;
+
+use LdapRecord\LdapInterface;
+
+class LazyPaginator extends Paginator
+{
+    /**
+     * Execute the pagination request.
+     *
+     * @param LdapInterface $ldap
+     *
+     * @return Generator
+     */
+    public function execute(LdapInterface $ldap)
+    {
+        $this->prepareServerControls();
+
+        do {
+            $this->applyServerControls($ldap);
+
+            if (! $resource = $this->query->run($this->filter)) {
+                break;
+            }
+
+            $this->updateServerControls($ldap, $resource);
+
+            yield $this->query->parse($resource);
+        } while (! empty($this->fetchCookie()));
+
+        $this->resetServerControls($ldap);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Pagination/Paginator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Pagination/Paginator.php
new file mode 100644
index 0000000..9ab6e67
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Query/Pagination/Paginator.php
@@ -0,0 +1,71 @@
+<?php
+
+namespace LdapRecord\Query\Pagination;
+
+use LdapRecord\LdapInterface;
+
+class Paginator extends AbstractPaginator
+{
+    /**
+     * @inheritdoc
+     */
+    protected function fetchCookie()
+    {
+        return $this->query->controls[LDAP_CONTROL_PAGEDRESULTS]['value']['cookie'] ?? null;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    protected function prepareServerControls()
+    {
+        $this->query->addControl(LDAP_CONTROL_PAGEDRESULTS, $this->isCritical, [
+            'size' => $this->perPage, 'cookie' => '',
+        ]);
+    }
+
+    /**
+     * @inheritdoc
+     */
+    protected function applyServerControls(LdapInterface $ldap)
+    {
+        $ldap->setOption(LDAP_OPT_SERVER_CONTROLS, $this->query->controls);
+    }
+
+    /**
+     * @inheritdoc
+     */
+    protected function updateServerControls(LdapInterface $ldap, $resource)
+    {
+        $errorCode = $dn = $errorMessage = $refs = null;
+
+        $ldap->parseResult(
+            $resource,
+            $errorCode,
+            $dn,
+            $errorMessage,
+            $refs,
+            $this->query->controls
+        );
+
+        $this->resetPageSize();
+    }
+
+    /**
+     * Reset the page control page size.
+     *
+     * @return void
+     */
+    protected function resetPageSize()
+    {
+        $this->query->controls[LDAP_CONTROL_PAGEDRESULTS]['value']['size'] = $this->perPage;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    protected function resetServerControls(LdapInterface $ldap)
+    {
+        $this->query->controls = [];
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Support/Arr.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Support/Arr.php
new file mode 100644
index 0000000..8fa87a2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Support/Arr.php
@@ -0,0 +1,139 @@
+<?php
+
+namespace LdapRecord\Support;
+
+use ArrayAccess;
+
+class Arr
+{
+    /**
+     * Determine whether the given value is array accessible.
+     *
+     * @param mixed $value
+     *
+     * @return bool
+     */
+    public static function accessible($value)
+    {
+        return is_array($value) || $value instanceof ArrayAccess;
+    }
+
+    /**
+     * Determine if the given key exists in the provided array.
+     *
+     * @param \ArrayAccess|array $array
+     * @param string|int         $key
+     *
+     * @return bool
+     */
+    public static function exists($array, $key)
+    {
+        if ($array instanceof ArrayAccess) {
+            return $array->offsetExists($key);
+        }
+
+        return array_key_exists($key, $array);
+    }
+
+    /**
+     * If the given value is not an array and not null, wrap it in one.
+     *
+     * @param mixed $value
+     *
+     * @return array
+     */
+    public static function wrap($value)
+    {
+        if (is_null($value)) {
+            return [];
+        }
+
+        return is_array($value) ? $value : [$value];
+    }
+
+    /**
+     * Return the first element in an array passing a given truth test.
+     *
+     * @param iterable      $array
+     * @param callable|null $callback
+     * @param mixed         $default
+     *
+     * @return mixed
+     */
+    public static function first($array, callable $callback = null, $default = null)
+    {
+        if (is_null($callback)) {
+            if (empty($array)) {
+                return Helpers::value($default);
+            }
+
+            foreach ($array as $item) {
+                return $item;
+            }
+        }
+
+        foreach ($array as $key => $value) {
+            if ($callback($value, $key)) {
+                return $value;
+            }
+        }
+
+        return Helpers::value($default);
+    }
+
+    /**
+     * Return the last element in an array passing a given truth test.
+     *
+     * @param array         $array
+     * @param callable|null $callback
+     * @param mixed         $default
+     *
+     * @return mixed
+     */
+    public static function last($array, callable $callback = null, $default = null)
+    {
+        if (is_null($callback)) {
+            return empty($array) ? Helpers::value($default) : end($array);
+        }
+
+        return static::first(array_reverse($array, true), $callback, $default);
+    }
+
+    /**
+     * Get an item from an array using "dot" notation.
+     *
+     * @param ArrayAccess|array $array
+     * @param string|int|null   $key
+     * @param mixed             $default
+     *
+     * @return mixed
+     */
+    public static function get($array, $key, $default = null)
+    {
+        if (! static::accessible($array)) {
+            return Helpers::value($default);
+        }
+
+        if (is_null($key)) {
+            return $array;
+        }
+
+        if (static::exists($array, $key)) {
+            return $array[$key];
+        }
+
+        if (strpos($key, '.') === false) {
+            return $array[$key] ?? Helpers::value($default);
+        }
+
+        foreach (explode('.', $key) as $segment) {
+            if (static::accessible($array) && static::exists($array, $segment)) {
+                $array = $array[$segment];
+            } else {
+                return Helpers::value($default);
+            }
+        }
+
+        return $array;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Support/Helpers.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Support/Helpers.php
new file mode 100644
index 0000000..a55d1d2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Support/Helpers.php
@@ -0,0 +1,20 @@
+<?php
+
+namespace LdapRecord\Support;
+
+use Closure;
+
+class Helpers
+{
+    /**
+     * Return the default value of the given value.
+     *
+     * @param mixed $value
+     *
+     * @return mixed
+     */
+    public static function value($value)
+    {
+        return $value instanceof Closure ? $value() : $value;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Testing/AuthGuardFake.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Testing/AuthGuardFake.php
new file mode 100644
index 0000000..4a69150
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Testing/AuthGuardFake.php
@@ -0,0 +1,18 @@
+<?php
+
+namespace LdapRecord\Testing;
+
+use LdapRecord\Auth\Guard;
+
+class AuthGuardFake extends Guard
+{
+    /**
+     * Always allow binding as configured user.
+     *
+     * @return bool
+     */
+    public function bindAsConfiguredUser()
+    {
+        return true;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Testing/ConnectionFake.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Testing/ConnectionFake.php
new file mode 100644
index 0000000..0aa12a1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Testing/ConnectionFake.php
@@ -0,0 +1,97 @@
+<?php
+
+namespace LdapRecord\Testing;
+
+use LdapRecord\Auth\Guard;
+use LdapRecord\Connection;
+use LdapRecord\Models\Model;
+
+class ConnectionFake extends Connection
+{
+    /**
+     * The underlying fake LDAP connection.
+     *
+     * @var LdapFake
+     */
+    protected $ldap;
+
+    /**
+     * Whether the fake is connected.
+     *
+     * @var bool
+     */
+    protected $connected = false;
+
+    /**
+     * Make a new fake LDAP connection instance.
+     *
+     * @param array  $config
+     * @param string $ldap
+     *
+     * @return static
+     */
+    public static function make(array $config = [], $ldap = LdapFake::class)
+    {
+        $connection = new static($config, new $ldap());
+
+        $connection->configure();
+
+        return $connection;
+    }
+
+    /**
+     * Set the user to authenticate as.
+     *
+     * @param Model|string $user
+     *
+     * @return $this
+     */
+    public function actingAs($user)
+    {
+        $this->ldap->shouldAuthenticateWith(
+            $user instanceof Model ? $user->getDn() : $user
+        );
+
+        return $this;
+    }
+
+    /**
+     * Set the connection to bypass bind attempts as the configured user.
+     *
+     * @return $this
+     */
+    public function shouldBeConnected()
+    {
+        $this->connected = true;
+
+        $this->authGuardResolver = function () {
+            return new AuthGuardFake($this->ldap, $this->configuration);
+        };
+
+        return $this;
+    }
+
+    /**
+     * Set the connection to attempt binding as the configured user.
+     *
+     * @return $this
+     */
+    public function shouldNotBeConnected()
+    {
+        $this->connected = false;
+
+        $this->authGuardResolver = function () {
+            return new Guard($this->ldap, $this->configuration);
+        };
+
+        return $this;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function isConnected()
+    {
+        return $this->connected ?: parent::isConnected();
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Testing/DirectoryFake.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Testing/DirectoryFake.php
new file mode 100644
index 0000000..70640af
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Testing/DirectoryFake.php
@@ -0,0 +1,53 @@
+<?php
+
+namespace LdapRecord\Testing;
+
+use LdapRecord\Container;
+
+class DirectoryFake
+{
+    /**
+     * Setup the fake connection.
+     *
+     * @param string|null $name
+     *
+     * @throws \LdapRecord\ContainerException
+     *
+     * @return ConnectionFake
+     */
+    public static function setup($name = null)
+    {
+        $connection = Container::getConnection($name);
+
+        $fake = static::makeConnectionFake(
+            $connection->getConfiguration()->all()
+        );
+
+        // Replace the connection with a fake.
+        Container::addConnection($fake, $name);
+
+        return $fake;
+    }
+
+    /**
+     * Reset the container.
+     *
+     * @return void
+     */
+    public static function tearDown()
+    {
+        Container::reset();
+    }
+
+    /**
+     * Make a connection fake.
+     *
+     * @param array $config
+     *
+     * @return ConnectionFake
+     */
+    public static function makeConnectionFake(array $config = [])
+    {
+        return ConnectionFake::make($config)->shouldBeConnected();
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Testing/LdapExpectation.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Testing/LdapExpectation.php
new file mode 100644
index 0000000..90a5fa2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Testing/LdapExpectation.php
@@ -0,0 +1,303 @@
+<?php
+
+namespace LdapRecord\Testing;
+
+use LdapRecord\LdapRecordException;
+use PHPUnit\Framework\Constraint\Constraint;
+use PHPUnit\Framework\Constraint\IsEqual;
+use UnexpectedValueException;
+
+class LdapExpectation
+{
+    /**
+     * The value to return from the expectation.
+     *
+     * @var mixed
+     */
+    protected $value;
+
+    /**
+     * The exception to throw from the expectation.
+     *
+     * @var null|LdapRecordException|\Exception
+     */
+    protected $exception;
+
+    /**
+     * The amount of times the expectation should be called.
+     *
+     * @var int
+     */
+    protected $count = 1;
+
+    /**
+     * The method that the expectation belongs to.
+     *
+     * @var string
+     */
+    protected $method;
+
+    /**
+     * The methods argument's.
+     *
+     * @var array
+     */
+    protected $args = [];
+
+    /**
+     * Whether the same expectation should be returned indefinitely.
+     *
+     * @var bool
+     */
+    protected $indefinitely = true;
+
+    /**
+     * Whether the expectation should return errors.
+     *
+     * @var bool
+     */
+    protected $errors = false;
+
+    /**
+     * The error number to return.
+     *
+     * @var int
+     */
+    protected $errorCode = 1;
+
+    /**
+     * The last error string to return.
+     *
+     * @var string
+     */
+    protected $errorMessage = '';
+
+    /**
+     * The diagnostic message string to return.
+     *
+     * @var string
+     */
+    protected $errorDiagnosticMessage = '';
+
+    /**
+     * Constructor.
+     *
+     * @param string $method
+     */
+    public function __construct($method)
+    {
+        $this->method = $method;
+    }
+
+    /**
+     * Set the arguments that the operation should receive.
+     *
+     * @param mixed $args
+     *
+     * @return $this
+     */
+    public function with($args)
+    {
+        $args = is_array($args) ? $args : func_get_args();
+
+        foreach ($args as $key => $arg) {
+            if (! $arg instanceof Constraint) {
+                $args[$key] = new IsEqual($arg);
+            }
+        }
+
+        $this->args = $args;
+
+        return $this;
+    }
+
+    /**
+     * Set the expected value to return.
+     *
+     * @param mixed $value
+     *
+     * @return $this
+     */
+    public function andReturn($value)
+    {
+        $this->value = $value;
+
+        return $this;
+    }
+
+    /**
+     * The error message to return from the expectation.
+     *
+     * @param int    $code
+     * @param string $error
+     * @param string $diagnosticMessage
+     *
+     * @return $this
+     */
+    public function andReturnError($code = 1, $error = '', $diagnosticMessage = '')
+    {
+        $this->errors = true;
+
+        $this->errorCode = $code;
+        $this->errorMessage = $error;
+        $this->errorDiagnosticMessage = $diagnosticMessage;
+
+        return $this;
+    }
+
+    /**
+     * Set the expected exception to throw.
+     *
+     * @param string|\Exception|LdapRecordException $exception
+     *
+     * @return $this
+     */
+    public function andThrow($exception)
+    {
+        if (is_string($exception)) {
+            $exception = new LdapRecordException($exception);
+        }
+
+        $this->exception = $exception;
+
+        return $this;
+    }
+
+    /**
+     * Set the expectation to be only called once.
+     *
+     * @return $this
+     */
+    public function once()
+    {
+        return $this->times(1);
+    }
+
+    /**
+     * Set the expectation to be only called twice.
+     *
+     * @return $this
+     */
+    public function twice()
+    {
+        return $this->times(2);
+    }
+
+    /**
+     * Set the expectation to be called the given number of times.
+     *
+     * @param int $count
+     *
+     * @return $this
+     */
+    public function times($count = 1)
+    {
+        $this->indefinitely = false;
+
+        $this->count = $count;
+
+        return $this;
+    }
+
+    /**
+     * Get the method the expectation belongs to.
+     *
+     * @return string
+     */
+    public function getMethod()
+    {
+        if (is_null($this->method)) {
+            throw new UnexpectedValueException('An expectation must have a method.');
+        }
+
+        return $this->method;
+    }
+
+    /**
+     * Get the expected call count.
+     *
+     * @return int
+     */
+    public function getExpectedCount()
+    {
+        return $this->count;
+    }
+
+    /**
+     * Get the expected arguments.
+     *
+     * @return Constraint[]
+     */
+    public function getExpectedArgs()
+    {
+        return $this->args;
+    }
+
+    /**
+     * Get the expected exception.
+     *
+     * @return null|\Exception|LdapRecordException
+     */
+    public function getExpectedException()
+    {
+        return $this->exception;
+    }
+
+    /**
+     * Get the expected value.
+     *
+     * @return mixed
+     */
+    public function getExpectedValue()
+    {
+        return $this->value;
+    }
+
+    /**
+     * Determine whether the expectation is returning an error.
+     *
+     * @return bool
+     */
+    public function isReturningError()
+    {
+        return $this->errors;
+    }
+
+    /**
+     * @return int
+     */
+    public function getExpectedErrorCode()
+    {
+        return $this->errorCode;
+    }
+
+    /**
+     * @return string
+     */
+    public function getExpectedErrorMessage()
+    {
+        return $this->errorMessage;
+    }
+
+    /**
+     * @return string
+     */
+    public function getExpectedErrorDiagnosticMessage()
+    {
+        return $this->errorDiagnosticMessage;
+    }
+
+    /**
+     * Decrement the call count of the expectation.
+     *
+     * @return $this
+     */
+    public function decrementCallCount()
+    {
+        if (! $this->indefinitely) {
+            $this->count -= 1;
+        }
+
+        return $this;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Testing/LdapFake.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Testing/LdapFake.php
new file mode 100644
index 0000000..7ba0e15
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Testing/LdapFake.php
@@ -0,0 +1,525 @@
+<?php
+
+namespace LdapRecord\Testing;
+
+use Exception;
+use LdapRecord\DetailedError;
+use LdapRecord\DetectsErrors;
+use LdapRecord\HandlesConnection;
+use LdapRecord\LdapInterface;
+use LdapRecord\Support\Arr;
+use PHPUnit\Framework\Assert as PHPUnit;
+use PHPUnit\Framework\Constraint\Constraint;
+
+class LdapFake implements LdapInterface
+{
+    use HandlesConnection, DetectsErrors;
+
+    /**
+     * The expectations of the LDAP fake.
+     *
+     * @var array
+     */
+    protected $expectations = [];
+
+    /**
+     * The default fake error number.
+     *
+     * @var int
+     */
+    protected $errNo = 1;
+
+    /**
+     * The default fake last error string.
+     *
+     * @var string
+     */
+    protected $lastError = '';
+
+    /**
+     * The default fake diagnostic message string.
+     *
+     * @var string
+     */
+    protected $diagnosticMessage = '';
+
+    /**
+     * Create a new expected operation.
+     *
+     * @param string $method
+     *
+     * @return LdapExpectation
+     */
+    public static function operation($method)
+    {
+        return new LdapExpectation($method);
+    }
+
+    /**
+     * Set the user that will pass binding.
+     *
+     * @param string $dn
+     *
+     * @return $this
+     */
+    public function shouldAuthenticateWith($dn)
+    {
+        return $this->expect(
+            static::operation('bind')->with($dn, PHPUnit::anything())->andReturn(true)
+        );
+    }
+
+    /**
+     * Add an LDAP method expectation.
+     *
+     * @param LdapExpectation|array $expectations
+     *
+     * @return $this
+     */
+    public function expect($expectations = [])
+    {
+        $expectations = Arr::wrap($expectations);
+
+        foreach ($expectations as $key => $expectation) {
+            // If the key is non-numeric, we will assume
+            // that the string is the method name and
+            // the expectation is the return value.
+            if (! is_numeric($key)) {
+                $expectation = static::operation($key)->andReturn($expectation);
+            }
+
+            if (! $expectation instanceof LdapExpectation) {
+                $expectation = static::operation($expectation);
+            }
+
+            $this->expectations[$expectation->getMethod()][] = $expectation;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Determine if the method has any expectations.
+     *
+     * @param string $method
+     *
+     * @return bool
+     */
+    public function hasExpectations($method)
+    {
+        return count($this->getExpectations($method)) > 0;
+    }
+
+    /**
+     * Get expectations by method.
+     *
+     * @param string $method
+     *
+     * @return LdapExpectation[]|mixed
+     */
+    public function getExpectations($method)
+    {
+        return $this->expectations[$method] ?? [];
+    }
+
+    /**
+     * Remove an expectation by method and key.
+     *
+     * @param string $method
+     * @param int    $key
+     *
+     * @return void
+     */
+    public function removeExpectation($method, $key)
+    {
+        unset($this->expectations[$method][$key]);
+    }
+
+    /**
+     * Set the error number of a failed bind attempt.
+     *
+     * @param int $number
+     *
+     * @return $this
+     */
+    public function shouldReturnErrorNumber($number = 1)
+    {
+        $this->errNo = $number;
+
+        return $this;
+    }
+
+    /**
+     * Set the last error of a failed bind attempt.
+     *
+     * @param string $message
+     *
+     * @return $this
+     */
+    public function shouldReturnError($message = '')
+    {
+        $this->lastError = $message;
+
+        return $this;
+    }
+
+    /**
+     * Set the diagnostic message of a failed bind attempt.
+     *
+     * @param string $message
+     *
+     * @return $this
+     */
+    public function shouldReturnDiagnosticMessage($message = '')
+    {
+        $this->diagnosticMessage = $message;
+
+        return $this;
+    }
+
+    /**
+     * Return a fake error number.
+     *
+     * @return int
+     */
+    public function errNo()
+    {
+        return $this->errNo;
+    }
+
+    /**
+     * Return a fake error.
+     *
+     * @return string
+     */
+    public function getLastError()
+    {
+        return $this->lastError;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function getDiagnosticMessage()
+    {
+        return $this->diagnosticMessage;
+    }
+
+    /**
+     * Return a fake detailed error.
+     *
+     * @return DetailedError
+     */
+    public function getDetailedError()
+    {
+        return new DetailedError(
+            $this->errNo(),
+            $this->getLastError(),
+            $this->getDiagnosticMessage()
+        );
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function getEntries($searchResults)
+    {
+        return $searchResults;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function isUsingSSL()
+    {
+        return $this->hasExpectations('isUsingSSL')
+            ? $this->resolveExpectation('isUsingSSL')
+            : $this->useSSL;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function isUsingTLS()
+    {
+        return $this->hasExpectations('isUsingTLS')
+            ? $this->resolveExpectation('isUsingTLS')
+            : $this->useTLS;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function isBound()
+    {
+        return $this->hasExpectations('isBound')
+            ? $this->resolveExpectation('isBound')
+            : $this->bound;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function setOption($option, $value)
+    {
+        return $this->hasExpectations('setOption')
+            ? $this->resolveExpectation('setOption', func_get_args())
+            : true;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function getOption($option, &$value = null)
+    {
+        return $this->resolveExpectation('getOption', func_get_args());
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function startTLS()
+    {
+        return $this->resolveExpectation('startTLS', func_get_args());
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function connect($hosts = [], $port = 389)
+    {
+        $this->bound = false;
+
+        $this->host = $this->makeConnectionUris($hosts, $port);
+
+        return $this->connection = $this->hasExpectations('connect')
+            ? $this->resolveExpectation('connect', func_get_args())
+            : true;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function close()
+    {
+        $this->connection = null;
+        $this->bound = false;
+        $this->host = null;
+
+        return $this->hasExpectations('close')
+            ? $this->resolveExpectation('close')
+            : true;
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function bind($username, $password)
+    {
+        return $this->bound = $this->resolveExpectation('bind', func_get_args());
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function search($dn, $filter, array $fields, $onlyAttributes = false, $size = 0, $time = 0, $deref = null, $serverControls = [])
+    {
+        return $this->resolveExpectation('search', func_get_args());
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function listing($dn, $filter, array $fields, $onlyAttributes = false, $size = 0, $time = 0, $deref = null, $serverControls = [])
+    {
+        return $this->resolveExpectation('listing', func_get_args());
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function read($dn, $filter, array $fields, $onlyAttributes = false, $size = 0, $time = 0, $deref = null, $serverControls = [])
+    {
+        return $this->resolveExpectation('read', func_get_args());
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function parseResult($result, &$errorCode, &$dn, &$errorMessage, &$referrals, &$serverControls = [])
+    {
+        return $this->resolveExpectation('parseResult', func_get_args());
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function add($dn, array $entry)
+    {
+        return $this->resolveExpectation('add', func_get_args());
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function delete($dn)
+    {
+        return $this->resolveExpectation('delete', func_get_args());
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function rename($dn, $newRdn, $newParent, $deleteOldRdn = false)
+    {
+        return $this->resolveExpectation('rename', func_get_args());
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function modify($dn, array $entry)
+    {
+        return $this->resolveExpectation('modify', func_get_args());
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function modifyBatch($dn, array $values)
+    {
+        return $this->resolveExpectation('modifyBatch', func_get_args());
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function modAdd($dn, array $entry)
+    {
+        return $this->resolveExpectation('modAdd', func_get_args());
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function modReplace($dn, array $entry)
+    {
+        return $this->resolveExpectation('modReplace', func_get_args());
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function modDelete($dn, array $entry)
+    {
+        return $this->resolveExpectation('modDelete', func_get_args());
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function controlPagedResult($pageSize = 1000, $isCritical = false, $cookie = '')
+    {
+        return $this->resolveExpectation('controlPagedResult', func_get_args());
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function controlPagedResultResponse($result, &$cookie)
+    {
+        return $this->resolveExpectation('controlPagedResultResponse', func_get_args());
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function freeResult($result)
+    {
+        return $this->resolveExpectation('freeResult', func_get_args());
+    }
+
+    /**
+     * @inheritdoc
+     */
+    public function err2Str($number)
+    {
+        return $this->resolveExpectation('err2Str', func_get_args());
+    }
+
+    /**
+     * Resolve the methods expectations.
+     *
+     * @param string $method
+     * @param array  $args
+     *
+     * @throws Exception
+     *
+     * @return mixed
+     */
+    protected function resolveExpectation($method, array $args = [])
+    {
+        foreach ($this->getExpectations($method) as $key => $expectation) {
+            $this->assertMethodArgumentsMatch($method, $expectation->getExpectedArgs(), $args);
+
+            $expectation->decrementCallCount();
+
+            if ($expectation->getExpectedCount() === 0) {
+                $this->removeExpectation($method, $key);
+            }
+
+            if (! is_null($exception = $expectation->getExpectedException())) {
+                throw $exception;
+            }
+
+            if ($expectation->isReturningError()) {
+                $this->applyExpectationError($expectation);
+            }
+
+            return $expectation->getExpectedValue();
+        }
+
+        throw new Exception("LDAP method [$method] was unexpected.");
+    }
+
+    /**
+     * Apply the expectation error to the fake.
+     *
+     * @param LdapExpectation $expectation
+     *
+     * @return void
+     */
+    protected function applyExpectationError(LdapExpectation $expectation)
+    {
+        $this->shouldReturnError($expectation->getExpectedErrorMessage());
+        $this->shouldReturnErrorNumber($expectation->getExpectedErrorCode());
+        $this->shouldReturnDiagnosticMessage($expectation->getExpectedErrorDiagnosticMessage());
+    }
+
+    /**
+     * Assert that the expected arguments match the operations arguments.
+     *
+     * @param string       $method
+     * @param Constraint[] $expectedArgs
+     * @param array        $methodArgs
+     *
+     * @return void
+     */
+    protected function assertMethodArgumentsMatch($method, array $expectedArgs = [], array $methodArgs = [])
+    {
+        foreach ($expectedArgs as $key => $constraint) {
+            $argNumber = $key + 1;
+
+            PHPUnit::assertArrayHasKey(
+                $key,
+                $methodArgs,
+                "LDAP method [$method] argument #{$argNumber} does not exist."
+            );
+
+            $constraint->evaluate(
+                $methodArgs[$key],
+                "LDAP method [$method] expectation failed."
+            );
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Utilities.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Utilities.php
new file mode 100644
index 0000000..0f0ca3c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/directorytree/ldaprecord/src/Utilities.php
@@ -0,0 +1,196 @@
+<?php
+
+namespace LdapRecord;
+
+class Utilities
+{
+    /**
+     * Converts a DN string into an array of RDNs.
+     *
+     * This will also decode hex characters into their true
+     * UTF-8 representation embedded inside the DN as well.
+     *
+     * @param string $dn
+     * @param bool   $removeAttributePrefixes
+     *
+     * @return array|false
+     */
+    public static function explodeDn($dn, $removeAttributePrefixes = true)
+    {
+        $dn = ldap_explode_dn($dn, ($removeAttributePrefixes ? 1 : 0));
+
+        if (! is_array($dn)) {
+            return false;
+        }
+
+        if (! array_key_exists('count', $dn)) {
+            return false;
+        }
+
+        unset($dn['count']);
+
+        foreach ($dn as $rdn => $value) {
+            $dn[$rdn] = static::unescape($value);
+        }
+
+        return $dn;
+    }
+
+    /**
+     * Un-escapes a hexadecimal string into its original string representation.
+     *
+     * @param string $value
+     *
+     * @return string
+     */
+    public static function unescape($value)
+    {
+        return preg_replace_callback('/\\\([0-9A-Fa-f]{2})/', function ($matches) {
+            return chr(hexdec($matches[1]));
+        }, $value);
+    }
+
+    /**
+     * Convert a binary SID to a string SID.
+     *
+     * @author Chad Sikorra
+     *
+     * @see https://github.com/ChadSikorra
+     * @see https://stackoverflow.com/questions/39533560/php-ldap-get-user-sid
+     *
+     * @param string $value The Binary SID
+     *
+     * @return string|null
+     */
+    public static function binarySidToString($value)
+    {
+        // Revision - 8bit unsigned int (C1)
+        // Count - 8bit unsigned int (C1)
+        // 2 null bytes
+        // ID - 32bit unsigned long, big-endian order
+        $sid = @unpack('C1rev/C1count/x2/N1id', $value);
+
+        if (! isset($sid['id']) || ! isset($sid['rev'])) {
+            return;
+        }
+
+        $revisionLevel = $sid['rev'];
+
+        $identifierAuthority = $sid['id'];
+
+        $subs = isset($sid['count']) ? $sid['count'] : 0;
+
+        $sidHex = $subs ? bin2hex($value) : '';
+
+        $subAuthorities = [];
+
+        // The sub-authorities depend on the count, so only get as
+        // many as the count, regardless of data beyond it.
+        for ($i = 0; $i < $subs; $i++) {
+            $data = implode(array_reverse(
+                str_split(
+                    substr($sidHex, 16 + ($i * 8), 8),
+                    2
+                )
+            ));
+
+            $subAuthorities[] = hexdec($data);
+        }
+
+        // Tack on the 'S-' and glue it all together...
+        return 'S-'.$revisionLevel.'-'.$identifierAuthority.implode(
+            preg_filter('/^/', '-', $subAuthorities)
+        );
+    }
+
+    /**
+     * Convert a binary GUID to a string GUID.
+     *
+     * @param string $binGuid
+     *
+     * @return string|null
+     */
+    public static function binaryGuidToString($binGuid)
+    {
+        if (trim($binGuid) == '' || is_null($binGuid)) {
+            return;
+        }
+
+        $hex = unpack('H*hex', $binGuid)['hex'];
+
+        $hex1 = substr($hex, -26, 2).substr($hex, -28, 2).substr($hex, -30, 2).substr($hex, -32, 2);
+        $hex2 = substr($hex, -22, 2).substr($hex, -24, 2);
+        $hex3 = substr($hex, -18, 2).substr($hex, -20, 2);
+        $hex4 = substr($hex, -16, 4);
+        $hex5 = substr($hex, -12, 12);
+
+        return sprintf('%s-%s-%s-%s-%s', $hex1, $hex2, $hex3, $hex4, $hex5);
+    }
+
+    /**
+     * Converts a string GUID to it's hex variant.
+     *
+     * @param string $string
+     *
+     * @return string
+     */
+    public static function stringGuidToHex($string)
+    {
+        $hex = '\\'.substr($string, 6, 2).'\\'.substr($string, 4, 2).'\\'.substr($string, 2, 2).'\\'.substr($string, 0, 2);
+        $hex = $hex.'\\'.substr($string, 11, 2).'\\'.substr($string, 9, 2);
+        $hex = $hex.'\\'.substr($string, 16, 2).'\\'.substr($string, 14, 2);
+        $hex = $hex.'\\'.substr($string, 19, 2).'\\'.substr($string, 21, 2);
+        $hex = $hex.'\\'.substr($string, 24, 2).'\\'.substr($string, 26, 2).'\\'.substr($string, 28, 2).'\\'.substr($string, 30, 2).'\\'.substr($string, 32, 2).'\\'.substr($string, 34, 2);
+
+        return $hex;
+    }
+
+    /**
+     * Round a Windows timestamp down to seconds and remove
+     * the seconds between 1601-01-01 and 1970-01-01.
+     *
+     * @param float $windowsTime
+     *
+     * @return float
+     */
+    public static function convertWindowsTimeToUnixTime($windowsTime)
+    {
+        return round($windowsTime / 10000000) - 11644473600;
+    }
+
+    /**
+     * Convert a Unix timestamp to Windows timestamp.
+     *
+     * @param float $unixTime
+     *
+     * @return float
+     */
+    public static function convertUnixTimeToWindowsTime($unixTime)
+    {
+        return ($unixTime + 11644473600) * 10000000;
+    }
+
+    /**
+     * Validates that the inserted string is an object SID.
+     *
+     * @param string $sid
+     *
+     * @return bool
+     */
+    public static function isValidSid($sid)
+    {
+        return (bool) preg_match("/^S-\d(-\d{1,10}){1,16}$/i", $sid);
+    }
+
+    /**
+     * Validates that the inserted string is an object GUID.
+     *
+     * @param string $guid
+     *
+     * @return bool
+     */
+    public static function isValidGuid($guid)
+    {
+        return (bool) preg_match('/^([0-9a-fA-F]){8}(-([0-9a-fA-F]){4}){3}-([0-9a-fA-F]){12}$/', $guid);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/Access/Authorizable.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/Access/Authorizable.php
new file mode 100644
index 0000000..cedeb6e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/Access/Authorizable.php
@@ -0,0 +1,15 @@
+<?php
+
+namespace Illuminate\Contracts\Auth\Access;
+
+interface Authorizable
+{
+    /**
+     * Determine if the entity has a given ability.
+     *
+     * @param  iterable|string  $abilities
+     * @param  array|mixed  $arguments
+     * @return bool
+     */
+    public function can($abilities, $arguments = []);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/Access/Gate.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/Access/Gate.php
new file mode 100644
index 0000000..b88ab17
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/Access/Gate.php
@@ -0,0 +1,150 @@
+<?php
+
+namespace Illuminate\Contracts\Auth\Access;
+
+interface Gate
+{
+    /**
+     * Determine if a given ability has been defined.
+     *
+     * @param  string  $ability
+     * @return bool
+     */
+    public function has($ability);
+
+    /**
+     * Define a new ability.
+     *
+     * @param  string  $ability
+     * @param  callable|string  $callback
+     * @return $this
+     */
+    public function define($ability, $callback);
+
+    /**
+     * Define abilities for a resource.
+     *
+     * @param  string  $name
+     * @param  string  $class
+     * @param  array|null  $abilities
+     * @return $this
+     */
+    public function resource($name, $class, array $abilities = null);
+
+    /**
+     * Define a policy class for a given class type.
+     *
+     * @param  string  $class
+     * @param  string  $policy
+     * @return $this
+     */
+    public function policy($class, $policy);
+
+    /**
+     * Register a callback to run before all Gate checks.
+     *
+     * @param  callable  $callback
+     * @return $this
+     */
+    public function before(callable $callback);
+
+    /**
+     * Register a callback to run after all Gate checks.
+     *
+     * @param  callable  $callback
+     * @return $this
+     */
+    public function after(callable $callback);
+
+    /**
+     * Determine if the given ability should be granted for the current user.
+     *
+     * @param  string  $ability
+     * @param  array|mixed  $arguments
+     * @return bool
+     */
+    public function allows($ability, $arguments = []);
+
+    /**
+     * Determine if the given ability should be denied for the current user.
+     *
+     * @param  string  $ability
+     * @param  array|mixed  $arguments
+     * @return bool
+     */
+    public function denies($ability, $arguments = []);
+
+    /**
+     * Determine if all of the given abilities should be granted for the current user.
+     *
+     * @param  iterable|string  $abilities
+     * @param  array|mixed  $arguments
+     * @return bool
+     */
+    public function check($abilities, $arguments = []);
+
+    /**
+     * Determine if any one of the given abilities should be granted for the current user.
+     *
+     * @param  iterable|string  $abilities
+     * @param  array|mixed  $arguments
+     * @return bool
+     */
+    public function any($abilities, $arguments = []);
+
+    /**
+     * Determine if the given ability should be granted for the current user.
+     *
+     * @param  string  $ability
+     * @param  array|mixed  $arguments
+     * @return \Illuminate\Auth\Access\Response
+     *
+     * @throws \Illuminate\Auth\Access\AuthorizationException
+     */
+    public function authorize($ability, $arguments = []);
+
+    /**
+     * Inspect the user for the given ability.
+     *
+     * @param  string  $ability
+     * @param  array|mixed  $arguments
+     * @return \Illuminate\Auth\Access\Response
+     */
+    public function inspect($ability, $arguments = []);
+
+    /**
+     * Get the raw result from the authorization callback.
+     *
+     * @param  string  $ability
+     * @param  array|mixed  $arguments
+     * @return mixed
+     *
+     * @throws \Illuminate\Auth\Access\AuthorizationException
+     */
+    public function raw($ability, $arguments = []);
+
+    /**
+     * Get a policy instance for a given class.
+     *
+     * @param  object|string  $class
+     * @return mixed
+     *
+     * @throws \InvalidArgumentException
+     */
+    public function getPolicyFor($class);
+
+    /**
+     * Get a guard instance for the given user.
+     *
+     * @param  \Illuminate\Contracts\Auth\Authenticatable|mixed  $user
+     * @return static
+     */
+    public function forUser($user);
+
+    /**
+     * Get all of the defined abilities.
+     *
+     * @return array
+     */
+    public function abilities();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/Authenticatable.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/Authenticatable.php
new file mode 100644
index 0000000..ac4ed88
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/Authenticatable.php
@@ -0,0 +1,49 @@
+<?php
+
+namespace Illuminate\Contracts\Auth;
+
+interface Authenticatable
+{
+    /**
+     * Get the name of the unique identifier for the user.
+     *
+     * @return string
+     */
+    public function getAuthIdentifierName();
+
+    /**
+     * Get the unique identifier for the user.
+     *
+     * @return mixed
+     */
+    public function getAuthIdentifier();
+
+    /**
+     * Get the password for the user.
+     *
+     * @return string
+     */
+    public function getAuthPassword();
+
+    /**
+     * Get the token value for the "remember me" session.
+     *
+     * @return string
+     */
+    public function getRememberToken();
+
+    /**
+     * Set the token value for the "remember me" session.
+     *
+     * @param  string  $value
+     * @return void
+     */
+    public function setRememberToken($value);
+
+    /**
+     * Get the column name for the "remember me" token.
+     *
+     * @return string
+     */
+    public function getRememberTokenName();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/CanResetPassword.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/CanResetPassword.php
new file mode 100644
index 0000000..3a67707
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/CanResetPassword.php
@@ -0,0 +1,21 @@
+<?php
+
+namespace Illuminate\Contracts\Auth;
+
+interface CanResetPassword
+{
+    /**
+     * Get the e-mail address where password reset links are sent.
+     *
+     * @return string
+     */
+    public function getEmailForPasswordReset();
+
+    /**
+     * Send the password reset notification.
+     *
+     * @param  string  $token
+     * @return void
+     */
+    public function sendPasswordResetNotification($token);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/Factory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/Factory.php
new file mode 100644
index 0000000..d76ee76
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/Factory.php
@@ -0,0 +1,22 @@
+<?php
+
+namespace Illuminate\Contracts\Auth;
+
+interface Factory
+{
+    /**
+     * Get a guard instance by name.
+     *
+     * @param  string|null  $name
+     * @return \Illuminate\Contracts\Auth\Guard|\Illuminate\Contracts\Auth\StatefulGuard
+     */
+    public function guard($name = null);
+
+    /**
+     * Set the default guard the factory should serve.
+     *
+     * @param  string  $name
+     * @return void
+     */
+    public function shouldUse($name);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/Guard.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/Guard.php
new file mode 100644
index 0000000..2a27fb5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/Guard.php
@@ -0,0 +1,50 @@
+<?php
+
+namespace Illuminate\Contracts\Auth;
+
+interface Guard
+{
+    /**
+     * Determine if the current user is authenticated.
+     *
+     * @return bool
+     */
+    public function check();
+
+    /**
+     * Determine if the current user is a guest.
+     *
+     * @return bool
+     */
+    public function guest();
+
+    /**
+     * Get the currently authenticated user.
+     *
+     * @return \Illuminate\Contracts\Auth\Authenticatable|null
+     */
+    public function user();
+
+    /**
+     * Get the ID for the currently authenticated user.
+     *
+     * @return int|string|null
+     */
+    public function id();
+
+    /**
+     * Validate a user's credentials.
+     *
+     * @param  array  $credentials
+     * @return bool
+     */
+    public function validate(array $credentials = []);
+
+    /**
+     * Set the current user.
+     *
+     * @param  \Illuminate\Contracts\Auth\Authenticatable  $user
+     * @return void
+     */
+    public function setUser(Authenticatable $user);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php
new file mode 100644
index 0000000..b782761
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/Middleware/AuthenticatesRequests.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Illuminate\Contracts\Auth\Middleware;
+
+interface AuthenticatesRequests
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/MustVerifyEmail.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/MustVerifyEmail.php
new file mode 100644
index 0000000..5b8b105
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/MustVerifyEmail.php
@@ -0,0 +1,34 @@
+<?php
+
+namespace Illuminate\Contracts\Auth;
+
+interface MustVerifyEmail
+{
+    /**
+     * Determine if the user has verified their email address.
+     *
+     * @return bool
+     */
+    public function hasVerifiedEmail();
+
+    /**
+     * Mark the given user's email as verified.
+     *
+     * @return bool
+     */
+    public function markEmailAsVerified();
+
+    /**
+     * Send the email verification notification.
+     *
+     * @return void
+     */
+    public function sendEmailVerificationNotification();
+
+    /**
+     * Get the email address that should be used for verification.
+     *
+     * @return string
+     */
+    public function getEmailForVerification();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/PasswordBroker.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/PasswordBroker.php
new file mode 100644
index 0000000..bbbe9b5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/PasswordBroker.php
@@ -0,0 +1,61 @@
+<?php
+
+namespace Illuminate\Contracts\Auth;
+
+use Closure;
+
+interface PasswordBroker
+{
+    /**
+     * Constant representing a successfully sent reminder.
+     *
+     * @var string
+     */
+    const RESET_LINK_SENT = 'passwords.sent';
+
+    /**
+     * Constant representing a successfully reset password.
+     *
+     * @var string
+     */
+    const PASSWORD_RESET = 'passwords.reset';
+
+    /**
+     * Constant representing the user not found response.
+     *
+     * @var string
+     */
+    const INVALID_USER = 'passwords.user';
+
+    /**
+     * Constant representing an invalid token.
+     *
+     * @var string
+     */
+    const INVALID_TOKEN = 'passwords.token';
+
+    /**
+     * Constant representing a throttled reset attempt.
+     *
+     * @var string
+     */
+    const RESET_THROTTLED = 'passwords.throttled';
+
+    /**
+     * Send a password reset link to a user.
+     *
+     * @param  array  $credentials
+     * @param  \Closure|null  $callback
+     * @return string
+     */
+    public function sendResetLink(array $credentials, Closure $callback = null);
+
+    /**
+     * Reset the password for the given token.
+     *
+     * @param  array  $credentials
+     * @param  \Closure  $callback
+     * @return mixed
+     */
+    public function reset(array $credentials, Closure $callback);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/PasswordBrokerFactory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/PasswordBrokerFactory.php
new file mode 100644
index 0000000..47b1c08
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/PasswordBrokerFactory.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace Illuminate\Contracts\Auth;
+
+interface PasswordBrokerFactory
+{
+    /**
+     * Get a password broker instance by name.
+     *
+     * @param  string|null  $name
+     * @return mixed
+     */
+    public function broker($name = null);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/StatefulGuard.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/StatefulGuard.php
new file mode 100644
index 0000000..faf1497
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/StatefulGuard.php
@@ -0,0 +1,63 @@
+<?php
+
+namespace Illuminate\Contracts\Auth;
+
+interface StatefulGuard extends Guard
+{
+    /**
+     * Attempt to authenticate a user using the given credentials.
+     *
+     * @param  array  $credentials
+     * @param  bool  $remember
+     * @return bool
+     */
+    public function attempt(array $credentials = [], $remember = false);
+
+    /**
+     * Log a user into the application without sessions or cookies.
+     *
+     * @param  array  $credentials
+     * @return bool
+     */
+    public function once(array $credentials = []);
+
+    /**
+     * Log a user into the application.
+     *
+     * @param  \Illuminate\Contracts\Auth\Authenticatable  $user
+     * @param  bool  $remember
+     * @return void
+     */
+    public function login(Authenticatable $user, $remember = false);
+
+    /**
+     * Log the given user ID into the application.
+     *
+     * @param  mixed  $id
+     * @param  bool  $remember
+     * @return \Illuminate\Contracts\Auth\Authenticatable|bool
+     */
+    public function loginUsingId($id, $remember = false);
+
+    /**
+     * Log the given user ID into the application without sessions or cookies.
+     *
+     * @param  mixed  $id
+     * @return \Illuminate\Contracts\Auth\Authenticatable|bool
+     */
+    public function onceUsingId($id);
+
+    /**
+     * Determine if the user was authenticated via "remember me" cookie.
+     *
+     * @return bool
+     */
+    public function viaRemember();
+
+    /**
+     * Log the user out of the application.
+     *
+     * @return void
+     */
+    public function logout();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/SupportsBasicAuth.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/SupportsBasicAuth.php
new file mode 100644
index 0000000..9c54591
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/SupportsBasicAuth.php
@@ -0,0 +1,24 @@
+<?php
+
+namespace Illuminate\Contracts\Auth;
+
+interface SupportsBasicAuth
+{
+    /**
+     * Attempt to authenticate using HTTP Basic Auth.
+     *
+     * @param  string  $field
+     * @param  array  $extraConditions
+     * @return \Symfony\Component\HttpFoundation\Response|null
+     */
+    public function basic($field = 'email', $extraConditions = []);
+
+    /**
+     * Perform a stateless HTTP Basic login attempt.
+     *
+     * @param  string  $field
+     * @param  array  $extraConditions
+     * @return \Symfony\Component\HttpFoundation\Response|null
+     */
+    public function onceBasic($field = 'email', $extraConditions = []);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/UserProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/UserProvider.php
new file mode 100644
index 0000000..a2ab122
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Auth/UserProvider.php
@@ -0,0 +1,49 @@
+<?php
+
+namespace Illuminate\Contracts\Auth;
+
+interface UserProvider
+{
+    /**
+     * Retrieve a user by their unique identifier.
+     *
+     * @param  mixed  $identifier
+     * @return \Illuminate\Contracts\Auth\Authenticatable|null
+     */
+    public function retrieveById($identifier);
+
+    /**
+     * Retrieve a user by their unique identifier and "remember me" token.
+     *
+     * @param  mixed  $identifier
+     * @param  string  $token
+     * @return \Illuminate\Contracts\Auth\Authenticatable|null
+     */
+    public function retrieveByToken($identifier, $token);
+
+    /**
+     * Update the "remember me" token for the given user in storage.
+     *
+     * @param  \Illuminate\Contracts\Auth\Authenticatable  $user
+     * @param  string  $token
+     * @return void
+     */
+    public function updateRememberToken(Authenticatable $user, $token);
+
+    /**
+     * Retrieve a user by the given credentials.
+     *
+     * @param  array  $credentials
+     * @return \Illuminate\Contracts\Auth\Authenticatable|null
+     */
+    public function retrieveByCredentials(array $credentials);
+
+    /**
+     * Validate a user against the given credentials.
+     *
+     * @param  \Illuminate\Contracts\Auth\Authenticatable  $user
+     * @param  array  $credentials
+     * @return bool
+     */
+    public function validateCredentials(Authenticatable $user, array $credentials);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Broadcasting/Broadcaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Broadcasting/Broadcaster.php
new file mode 100644
index 0000000..1034e44
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Broadcasting/Broadcaster.php
@@ -0,0 +1,33 @@
+<?php
+
+namespace Illuminate\Contracts\Broadcasting;
+
+interface Broadcaster
+{
+    /**
+     * Authenticate the incoming request for a given channel.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return mixed
+     */
+    public function auth($request);
+
+    /**
+     * Return the valid authentication response.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  mixed  $result
+     * @return mixed
+     */
+    public function validAuthenticationResponse($request, $result);
+
+    /**
+     * Broadcast the given event.
+     *
+     * @param  array  $channels
+     * @param  string  $event
+     * @param  array  $payload
+     * @return void
+     */
+    public function broadcast(array $channels, $event, array $payload = []);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Broadcasting/Factory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Broadcasting/Factory.php
new file mode 100644
index 0000000..1a4f48f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Broadcasting/Factory.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace Illuminate\Contracts\Broadcasting;
+
+interface Factory
+{
+    /**
+     * Get a broadcaster implementation by name.
+     *
+     * @param  string|null  $name
+     * @return \Illuminate\Contracts\Broadcasting\Broadcaster
+     */
+    public function connection($name = null);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Broadcasting/HasBroadcastChannel.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Broadcasting/HasBroadcastChannel.php
new file mode 100644
index 0000000..3b2c401
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Broadcasting/HasBroadcastChannel.php
@@ -0,0 +1,20 @@
+<?php
+
+namespace Illuminate\Contracts\Broadcasting;
+
+interface HasBroadcastChannel
+{
+    /**
+     * Get the broadcast channel route definition that is associated with the given entity.
+     *
+     * @return string
+     */
+    public function broadcastChannelRoute();
+
+    /**
+     * Get the broadcast channel name that is associated with the given entity.
+     *
+     * @return string
+     */
+    public function broadcastChannel();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Broadcasting/ShouldBroadcast.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Broadcasting/ShouldBroadcast.php
new file mode 100644
index 0000000..a4802fe
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Broadcasting/ShouldBroadcast.php
@@ -0,0 +1,13 @@
+<?php
+
+namespace Illuminate\Contracts\Broadcasting;
+
+interface ShouldBroadcast
+{
+    /**
+     * Get the channels the event should broadcast on.
+     *
+     * @return \Illuminate\Broadcasting\Channel|\Illuminate\Broadcasting\Channel[]
+     */
+    public function broadcastOn();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php
new file mode 100644
index 0000000..eba3584
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Broadcasting/ShouldBroadcastNow.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Illuminate\Contracts\Broadcasting;
+
+interface ShouldBroadcastNow extends ShouldBroadcast
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Bus/Dispatcher.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Bus/Dispatcher.php
new file mode 100644
index 0000000..5cbbd92
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Bus/Dispatcher.php
@@ -0,0 +1,66 @@
+<?php
+
+namespace Illuminate\Contracts\Bus;
+
+interface Dispatcher
+{
+    /**
+     * Dispatch a command to its appropriate handler.
+     *
+     * @param  mixed  $command
+     * @return mixed
+     */
+    public function dispatch($command);
+
+    /**
+     * Dispatch a command to its appropriate handler in the current process.
+     *
+     * Queueable jobs will be dispatched to the "sync" queue.
+     *
+     * @param  mixed  $command
+     * @param  mixed  $handler
+     * @return mixed
+     */
+    public function dispatchSync($command, $handler = null);
+
+    /**
+     * Dispatch a command to its appropriate handler in the current process.
+     *
+     * @param  mixed  $command
+     * @param  mixed  $handler
+     * @return mixed
+     */
+    public function dispatchNow($command, $handler = null);
+
+    /**
+     * Determine if the given command has a handler.
+     *
+     * @param  mixed  $command
+     * @return bool
+     */
+    public function hasCommandHandler($command);
+
+    /**
+     * Retrieve the handler for a command.
+     *
+     * @param  mixed  $command
+     * @return bool|mixed
+     */
+    public function getCommandHandler($command);
+
+    /**
+     * Set the pipes commands should be piped through before dispatching.
+     *
+     * @param  array  $pipes
+     * @return $this
+     */
+    public function pipeThrough(array $pipes);
+
+    /**
+     * Map a command to a handler.
+     *
+     * @param  array  $map
+     * @return $this
+     */
+    public function map(array $map);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Bus/QueueingDispatcher.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Bus/QueueingDispatcher.php
new file mode 100644
index 0000000..ff84e27
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Bus/QueueingDispatcher.php
@@ -0,0 +1,30 @@
+<?php
+
+namespace Illuminate\Contracts\Bus;
+
+interface QueueingDispatcher extends Dispatcher
+{
+    /**
+     * Attempt to find the batch with the given ID.
+     *
+     * @param  string  $batchId
+     * @return \Illuminate\Bus\Batch|null
+     */
+    public function findBatch(string $batchId);
+
+    /**
+     * Create a new batch of queueable jobs.
+     *
+     * @param  \Illuminate\Support\Collection|array  $jobs
+     * @return \Illuminate\Bus\PendingBatch
+     */
+    public function batch($jobs);
+
+    /**
+     * Dispatch a command to its appropriate handler behind a queue.
+     *
+     * @param  mixed  $command
+     * @return mixed
+     */
+    public function dispatchToQueue($command);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cache/Factory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cache/Factory.php
new file mode 100644
index 0000000..3924662
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cache/Factory.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace Illuminate\Contracts\Cache;
+
+interface Factory
+{
+    /**
+     * Get a cache store instance by name.
+     *
+     * @param  string|null  $name
+     * @return \Illuminate\Contracts\Cache\Repository
+     */
+    public function store($name = null);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cache/Lock.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cache/Lock.php
new file mode 100644
index 0000000..03f633a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cache/Lock.php
@@ -0,0 +1,44 @@
+<?php
+
+namespace Illuminate\Contracts\Cache;
+
+interface Lock
+{
+    /**
+     * Attempt to acquire the lock.
+     *
+     * @param  callable|null  $callback
+     * @return mixed
+     */
+    public function get($callback = null);
+
+    /**
+     * Attempt to acquire the lock for the given number of seconds.
+     *
+     * @param  int  $seconds
+     * @param  callable|null  $callback
+     * @return mixed
+     */
+    public function block($seconds, $callback = null);
+
+    /**
+     * Release the lock.
+     *
+     * @return bool
+     */
+    public function release();
+
+    /**
+     * Returns the current owner of the lock.
+     *
+     * @return string
+     */
+    public function owner();
+
+    /**
+     * Releases this lock in disregard of ownership.
+     *
+     * @return void
+     */
+    public function forceRelease();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cache/LockProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cache/LockProvider.php
new file mode 100644
index 0000000..37d4ef6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cache/LockProvider.php
@@ -0,0 +1,25 @@
+<?php
+
+namespace Illuminate\Contracts\Cache;
+
+interface LockProvider
+{
+    /**
+     * Get a lock instance.
+     *
+     * @param  string  $name
+     * @param  int  $seconds
+     * @param  string|null  $owner
+     * @return \Illuminate\Contracts\Cache\Lock
+     */
+    public function lock($name, $seconds = 0, $owner = null);
+
+    /**
+     * Restore a lock instance using the owner identifier.
+     *
+     * @param  string  $name
+     * @param  string  $owner
+     * @return \Illuminate\Contracts\Cache\Lock
+     */
+    public function restoreLock($name, $owner);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cache/LockTimeoutException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cache/LockTimeoutException.php
new file mode 100644
index 0000000..53327e2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cache/LockTimeoutException.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace Illuminate\Contracts\Cache;
+
+use Exception;
+
+class LockTimeoutException extends Exception
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cache/Repository.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cache/Repository.php
new file mode 100644
index 0000000..5b78af5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cache/Repository.php
@@ -0,0 +1,108 @@
+<?php
+
+namespace Illuminate\Contracts\Cache;
+
+use Closure;
+use Psr\SimpleCache\CacheInterface;
+
+interface Repository extends CacheInterface
+{
+    /**
+     * Retrieve an item from the cache and delete it.
+     *
+     * @param  string  $key
+     * @param  mixed  $default
+     * @return mixed
+     */
+    public function pull($key, $default = null);
+
+    /**
+     * Store an item in the cache.
+     *
+     * @param  string  $key
+     * @param  mixed  $value
+     * @param  \DateTimeInterface|\DateInterval|int|null  $ttl
+     * @return bool
+     */
+    public function put($key, $value, $ttl = null);
+
+    /**
+     * Store an item in the cache if the key does not exist.
+     *
+     * @param  string  $key
+     * @param  mixed  $value
+     * @param  \DateTimeInterface|\DateInterval|int|null  $ttl
+     * @return bool
+     */
+    public function add($key, $value, $ttl = null);
+
+    /**
+     * Increment the value of an item in the cache.
+     *
+     * @param  string  $key
+     * @param  mixed  $value
+     * @return int|bool
+     */
+    public function increment($key, $value = 1);
+
+    /**
+     * Decrement the value of an item in the cache.
+     *
+     * @param  string  $key
+     * @param  mixed  $value
+     * @return int|bool
+     */
+    public function decrement($key, $value = 1);
+
+    /**
+     * Store an item in the cache indefinitely.
+     *
+     * @param  string  $key
+     * @param  mixed  $value
+     * @return bool
+     */
+    public function forever($key, $value);
+
+    /**
+     * Get an item from the cache, or execute the given Closure and store the result.
+     *
+     * @param  string  $key
+     * @param  \DateTimeInterface|\DateInterval|int|null  $ttl
+     * @param  \Closure  $callback
+     * @return mixed
+     */
+    public function remember($key, $ttl, Closure $callback);
+
+    /**
+     * Get an item from the cache, or execute the given Closure and store the result forever.
+     *
+     * @param  string  $key
+     * @param  \Closure  $callback
+     * @return mixed
+     */
+    public function sear($key, Closure $callback);
+
+    /**
+     * Get an item from the cache, or execute the given Closure and store the result forever.
+     *
+     * @param  string  $key
+     * @param  \Closure  $callback
+     * @return mixed
+     */
+    public function rememberForever($key, Closure $callback);
+
+    /**
+     * Remove an item from the cache.
+     *
+     * @param  string  $key
+     * @return bool
+     */
+    public function forget($key);
+
+    /**
+     * Get the cache store implementation.
+     *
+     * @return \Illuminate\Contracts\Cache\Store
+     */
+    public function getStore();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cache/Store.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cache/Store.php
new file mode 100644
index 0000000..133bc43
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cache/Store.php
@@ -0,0 +1,92 @@
+<?php
+
+namespace Illuminate\Contracts\Cache;
+
+interface Store
+{
+    /**
+     * Retrieve an item from the cache by key.
+     *
+     * @param  string|array  $key
+     * @return mixed
+     */
+    public function get($key);
+
+    /**
+     * Retrieve multiple items from the cache by key.
+     *
+     * Items not found in the cache will have a null value.
+     *
+     * @param  array  $keys
+     * @return array
+     */
+    public function many(array $keys);
+
+    /**
+     * Store an item in the cache for a given number of seconds.
+     *
+     * @param  string  $key
+     * @param  mixed  $value
+     * @param  int  $seconds
+     * @return bool
+     */
+    public function put($key, $value, $seconds);
+
+    /**
+     * Store multiple items in the cache for a given number of seconds.
+     *
+     * @param  array  $values
+     * @param  int  $seconds
+     * @return bool
+     */
+    public function putMany(array $values, $seconds);
+
+    /**
+     * Increment the value of an item in the cache.
+     *
+     * @param  string  $key
+     * @param  mixed  $value
+     * @return int|bool
+     */
+    public function increment($key, $value = 1);
+
+    /**
+     * Decrement the value of an item in the cache.
+     *
+     * @param  string  $key
+     * @param  mixed  $value
+     * @return int|bool
+     */
+    public function decrement($key, $value = 1);
+
+    /**
+     * Store an item in the cache indefinitely.
+     *
+     * @param  string  $key
+     * @param  mixed  $value
+     * @return bool
+     */
+    public function forever($key, $value);
+
+    /**
+     * Remove an item from the cache.
+     *
+     * @param  string  $key
+     * @return bool
+     */
+    public function forget($key);
+
+    /**
+     * Remove all items from the cache.
+     *
+     * @return bool
+     */
+    public function flush();
+
+    /**
+     * Get the cache key prefix.
+     *
+     * @return string
+     */
+    public function getPrefix();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Config/Repository.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Config/Repository.php
new file mode 100644
index 0000000..a4f0ac8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Config/Repository.php
@@ -0,0 +1,57 @@
+<?php
+
+namespace Illuminate\Contracts\Config;
+
+interface Repository
+{
+    /**
+     * Determine if the given configuration value exists.
+     *
+     * @param  string  $key
+     * @return bool
+     */
+    public function has($key);
+
+    /**
+     * Get the specified configuration value.
+     *
+     * @param  array|string  $key
+     * @param  mixed  $default
+     * @return mixed
+     */
+    public function get($key, $default = null);
+
+    /**
+     * Get all of the configuration items for the application.
+     *
+     * @return array
+     */
+    public function all();
+
+    /**
+     * Set a given configuration value.
+     *
+     * @param  array|string  $key
+     * @param  mixed  $value
+     * @return void
+     */
+    public function set($key, $value = null);
+
+    /**
+     * Prepend a value onto an array configuration value.
+     *
+     * @param  string  $key
+     * @param  mixed  $value
+     * @return void
+     */
+    public function prepend($key, $value);
+
+    /**
+     * Push a value onto an array configuration value.
+     *
+     * @param  string  $key
+     * @param  mixed  $value
+     * @return void
+     */
+    public function push($key, $value);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Console/Application.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Console/Application.php
new file mode 100644
index 0000000..ba628c9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Console/Application.php
@@ -0,0 +1,23 @@
+<?php
+
+namespace Illuminate\Contracts\Console;
+
+interface Application
+{
+    /**
+     * Run an Artisan console command by name.
+     *
+     * @param  string  $command
+     * @param  array  $parameters
+     * @param  \Symfony\Component\Console\Output\OutputInterface|null  $outputBuffer
+     * @return int
+     */
+    public function call($command, array $parameters = [], $outputBuffer = null);
+
+    /**
+     * Get the output from the last command.
+     *
+     * @return string
+     */
+    public function output();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Console/Kernel.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Console/Kernel.php
new file mode 100644
index 0000000..842f5a6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Console/Kernel.php
@@ -0,0 +1,64 @@
+<?php
+
+namespace Illuminate\Contracts\Console;
+
+interface Kernel
+{
+    /**
+     * Bootstrap the application for artisan commands.
+     *
+     * @return void
+     */
+    public function bootstrap();
+
+    /**
+     * Handle an incoming console command.
+     *
+     * @param  \Symfony\Component\Console\Input\InputInterface  $input
+     * @param  \Symfony\Component\Console\Output\OutputInterface|null  $output
+     * @return int
+     */
+    public function handle($input, $output = null);
+
+    /**
+     * Run an Artisan console command by name.
+     *
+     * @param  string  $command
+     * @param  array  $parameters
+     * @param  \Symfony\Component\Console\Output\OutputInterface|null  $outputBuffer
+     * @return int
+     */
+    public function call($command, array $parameters = [], $outputBuffer = null);
+
+    /**
+     * Queue an Artisan console command by name.
+     *
+     * @param  string  $command
+     * @param  array  $parameters
+     * @return \Illuminate\Foundation\Bus\PendingDispatch
+     */
+    public function queue($command, array $parameters = []);
+
+    /**
+     * Get all of the commands registered with the console.
+     *
+     * @return array
+     */
+    public function all();
+
+    /**
+     * Get the output for the last run command.
+     *
+     * @return string
+     */
+    public function output();
+
+    /**
+     * Terminate the application.
+     *
+     * @param  \Symfony\Component\Console\Input\InputInterface  $input
+     * @param  int  $status
+     * @return void
+     */
+    public function terminate($input, $status);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Container/BindingResolutionException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Container/BindingResolutionException.php
new file mode 100644
index 0000000..a69c24c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Container/BindingResolutionException.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Illuminate\Contracts\Container;
+
+use Exception;
+use Psr\Container\ContainerExceptionInterface;
+
+class BindingResolutionException extends Exception implements ContainerExceptionInterface
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Container/CircularDependencyException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Container/CircularDependencyException.php
new file mode 100644
index 0000000..6c90381
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Container/CircularDependencyException.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace Illuminate\Contracts\Container;
+
+use Exception;
+use Psr\Container\ContainerExceptionInterface;
+
+class CircularDependencyException extends Exception implements ContainerExceptionInterface
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Container/Container.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Container/Container.php
new file mode 100644
index 0000000..1b8bb64
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Container/Container.php
@@ -0,0 +1,183 @@
+<?php
+
+namespace Illuminate\Contracts\Container;
+
+use Closure;
+use Psr\Container\ContainerInterface;
+
+interface Container extends ContainerInterface
+{
+    /**
+     * Determine if the given abstract type has been bound.
+     *
+     * @param  string  $abstract
+     * @return bool
+     */
+    public function bound($abstract);
+
+    /**
+     * Alias a type to a different name.
+     *
+     * @param  string  $abstract
+     * @param  string  $alias
+     * @return void
+     *
+     * @throws \LogicException
+     */
+    public function alias($abstract, $alias);
+
+    /**
+     * Assign a set of tags to a given binding.
+     *
+     * @param  array|string  $abstracts
+     * @param  array|mixed  ...$tags
+     * @return void
+     */
+    public function tag($abstracts, $tags);
+
+    /**
+     * Resolve all of the bindings for a given tag.
+     *
+     * @param  string  $tag
+     * @return iterable
+     */
+    public function tagged($tag);
+
+    /**
+     * Register a binding with the container.
+     *
+     * @param  string  $abstract
+     * @param  \Closure|string|null  $concrete
+     * @param  bool  $shared
+     * @return void
+     */
+    public function bind($abstract, $concrete = null, $shared = false);
+
+    /**
+     * Register a binding if it hasn't already been registered.
+     *
+     * @param  string  $abstract
+     * @param  \Closure|string|null  $concrete
+     * @param  bool  $shared
+     * @return void
+     */
+    public function bindIf($abstract, $concrete = null, $shared = false);
+
+    /**
+     * Register a shared binding in the container.
+     *
+     * @param  string  $abstract
+     * @param  \Closure|string|null  $concrete
+     * @return void
+     */
+    public function singleton($abstract, $concrete = null);
+
+    /**
+     * Register a shared binding if it hasn't already been registered.
+     *
+     * @param  string  $abstract
+     * @param  \Closure|string|null  $concrete
+     * @return void
+     */
+    public function singletonIf($abstract, $concrete = null);
+
+    /**
+     * "Extend" an abstract type in the container.
+     *
+     * @param  string  $abstract
+     * @param  \Closure  $closure
+     * @return void
+     *
+     * @throws \InvalidArgumentException
+     */
+    public function extend($abstract, Closure $closure);
+
+    /**
+     * Register an existing instance as shared in the container.
+     *
+     * @param  string  $abstract
+     * @param  mixed  $instance
+     * @return mixed
+     */
+    public function instance($abstract, $instance);
+
+    /**
+     * Add a contextual binding to the container.
+     *
+     * @param  string  $concrete
+     * @param  string  $abstract
+     * @param  \Closure|string  $implementation
+     * @return void
+     */
+    public function addContextualBinding($concrete, $abstract, $implementation);
+
+    /**
+     * Define a contextual binding.
+     *
+     * @param  string|array  $concrete
+     * @return \Illuminate\Contracts\Container\ContextualBindingBuilder
+     */
+    public function when($concrete);
+
+    /**
+     * Get a closure to resolve the given type from the container.
+     *
+     * @param  string  $abstract
+     * @return \Closure
+     */
+    public function factory($abstract);
+
+    /**
+     * Flush the container of all bindings and resolved instances.
+     *
+     * @return void
+     */
+    public function flush();
+
+    /**
+     * Resolve the given type from the container.
+     *
+     * @param  string  $abstract
+     * @param  array  $parameters
+     * @return mixed
+     *
+     * @throws \Illuminate\Contracts\Container\BindingResolutionException
+     */
+    public function make($abstract, array $parameters = []);
+
+    /**
+     * Call the given Closure / class@method and inject its dependencies.
+     *
+     * @param  callable|string  $callback
+     * @param  array  $parameters
+     * @param  string|null  $defaultMethod
+     * @return mixed
+     */
+    public function call($callback, array $parameters = [], $defaultMethod = null);
+
+    /**
+     * Determine if the given abstract type has been resolved.
+     *
+     * @param  string  $abstract
+     * @return bool
+     */
+    public function resolved($abstract);
+
+    /**
+     * Register a new resolving callback.
+     *
+     * @param  \Closure|string  $abstract
+     * @param  \Closure|null  $callback
+     * @return void
+     */
+    public function resolving($abstract, Closure $callback = null);
+
+    /**
+     * Register a new after resolving callback.
+     *
+     * @param  \Closure|string  $abstract
+     * @param  \Closure|null  $callback
+     * @return void
+     */
+    public function afterResolving($abstract, Closure $callback = null);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Container/ContextualBindingBuilder.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Container/ContextualBindingBuilder.php
new file mode 100644
index 0000000..05e3625
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Container/ContextualBindingBuilder.php
@@ -0,0 +1,30 @@
+<?php
+
+namespace Illuminate\Contracts\Container;
+
+interface ContextualBindingBuilder
+{
+    /**
+     * Define the abstract target that depends on the context.
+     *
+     * @param  string  $abstract
+     * @return $this
+     */
+    public function needs($abstract);
+
+    /**
+     * Define the implementation for the contextual binding.
+     *
+     * @param  \Closure|string  $implementation
+     * @return void
+     */
+    public function give($implementation);
+
+    /**
+     * Define tagged services to be used as the implementation for the contextual binding.
+     *
+     * @param  string  $tag
+     * @return void
+     */
+    public function giveTagged($tag);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cookie/Factory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cookie/Factory.php
new file mode 100644
index 0000000..6f95021
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cookie/Factory.php
@@ -0,0 +1,47 @@
+<?php
+
+namespace Illuminate\Contracts\Cookie;
+
+interface Factory
+{
+    /**
+     * Create a new cookie instance.
+     *
+     * @param  string  $name
+     * @param  string  $value
+     * @param  int  $minutes
+     * @param  string|null  $path
+     * @param  string|null  $domain
+     * @param  bool|null  $secure
+     * @param  bool  $httpOnly
+     * @param  bool  $raw
+     * @param  string|null  $sameSite
+     * @return \Symfony\Component\HttpFoundation\Cookie
+     */
+    public function make($name, $value, $minutes = 0, $path = null, $domain = null, $secure = null, $httpOnly = true, $raw = false, $sameSite = null);
+
+    /**
+     * Create a cookie that lasts "forever" (five years).
+     *
+     * @param  string  $name
+     * @param  string  $value
+     * @param  string|null  $path
+     * @param  string|null  $domain
+     * @param  bool|null  $secure
+     * @param  bool  $httpOnly
+     * @param  bool  $raw
+     * @param  string|null  $sameSite
+     * @return \Symfony\Component\HttpFoundation\Cookie
+     */
+    public function forever($name, $value, $path = null, $domain = null, $secure = null, $httpOnly = true, $raw = false, $sameSite = null);
+
+    /**
+     * Expire the given cookie.
+     *
+     * @param  string  $name
+     * @param  string|null  $path
+     * @param  string|null  $domain
+     * @return \Symfony\Component\HttpFoundation\Cookie
+     */
+    public function forget($name, $path = null, $domain = null);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cookie/QueueingFactory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cookie/QueueingFactory.php
new file mode 100644
index 0000000..d6c74b8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Cookie/QueueingFactory.php
@@ -0,0 +1,30 @@
+<?php
+
+namespace Illuminate\Contracts\Cookie;
+
+interface QueueingFactory extends Factory
+{
+    /**
+     * Queue a cookie to send with the next response.
+     *
+     * @param  array  $parameters
+     * @return void
+     */
+    public function queue(...$parameters);
+
+    /**
+     * Remove a cookie from the queue.
+     *
+     * @param  string  $name
+     * @param  string|null  $path
+     * @return void
+     */
+    public function unqueue($name, $path = null);
+
+    /**
+     * Get the cookies which have been queued for the next request.
+     *
+     * @return array
+     */
+    public function getQueuedCookies();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/Eloquent/Castable.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/Eloquent/Castable.php
new file mode 100644
index 0000000..911b1cf
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/Eloquent/Castable.php
@@ -0,0 +1,15 @@
+<?php
+
+namespace Illuminate\Contracts\Database\Eloquent;
+
+interface Castable
+{
+    /**
+     * Get the name of the caster class to use when casting from / to this cast target.
+     *
+     * @param  array  $arguments
+     * @return string
+     * @return string|\Illuminate\Contracts\Database\Eloquent\CastsAttributes|\Illuminate\Contracts\Database\Eloquent\CastsInboundAttributes
+     */
+    public static function castUsing(array $arguments);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/Eloquent/CastsAttributes.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/Eloquent/CastsAttributes.php
new file mode 100644
index 0000000..808d005
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/Eloquent/CastsAttributes.php
@@ -0,0 +1,28 @@
+<?php
+
+namespace Illuminate\Contracts\Database\Eloquent;
+
+interface CastsAttributes
+{
+    /**
+     * Transform the attribute from the underlying model values.
+     *
+     * @param  \Illuminate\Database\Eloquent\Model  $model
+     * @param  string  $key
+     * @param  mixed  $value
+     * @param  array  $attributes
+     * @return mixed
+     */
+    public function get($model, string $key, $value, array $attributes);
+
+    /**
+     * Transform the attribute to its underlying model values.
+     *
+     * @param  \Illuminate\Database\Eloquent\Model  $model
+     * @param  string  $key
+     * @param  mixed  $value
+     * @param  array  $attributes
+     * @return mixed
+     */
+    public function set($model, string $key, $value, array $attributes);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php
new file mode 100644
index 0000000..4c7801b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/Eloquent/CastsInboundAttributes.php
@@ -0,0 +1,17 @@
+<?php
+
+namespace Illuminate\Contracts\Database\Eloquent;
+
+interface CastsInboundAttributes
+{
+    /**
+     * Transform the attribute to its underlying model values.
+     *
+     * @param  \Illuminate\Database\Eloquent\Model  $model
+     * @param  string  $key
+     * @param  mixed  $value
+     * @param  array  $attributes
+     * @return mixed
+     */
+    public function set($model, string $key, $value, array $attributes);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/Eloquent/DeviatesCastableAttributes.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/Eloquent/DeviatesCastableAttributes.php
new file mode 100644
index 0000000..48ba73a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/Eloquent/DeviatesCastableAttributes.php
@@ -0,0 +1,28 @@
+<?php
+
+namespace Illuminate\Contracts\Database\Eloquent;
+
+interface DeviatesCastableAttributes
+{
+    /**
+     * Increment the attribute.
+     *
+     * @param  \Illuminate\Database\Eloquent\Model  $model
+     * @param  string  $key
+     * @param  mixed  $value
+     * @param  array  $attributes
+     * @return mixed
+     */
+    public function increment($model, string $key, $value, array $attributes);
+
+    /**
+     * Decrement the attribute.
+     *
+     * @param  \Illuminate\Database\Eloquent\Model  $model
+     * @param  string  $key
+     * @param  mixed  $value
+     * @param  array  $attributes
+     * @return mixed
+     */
+    public function decrement($model, string $key, $value, array $attributes);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/Eloquent/SerializesCastableAttributes.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/Eloquent/SerializesCastableAttributes.php
new file mode 100644
index 0000000..a89f910
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/Eloquent/SerializesCastableAttributes.php
@@ -0,0 +1,17 @@
+<?php
+
+namespace Illuminate\Contracts\Database\Eloquent;
+
+interface SerializesCastableAttributes
+{
+    /**
+     * Serialize the attribute when converting the model to an array.
+     *
+     * @param  \Illuminate\Database\Eloquent\Model  $model
+     * @param  string  $key
+     * @param  mixed  $value
+     * @param  array  $attributes
+     * @return mixed
+     */
+    public function serialize($model, string $key, $value, array $attributes);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php
new file mode 100644
index 0000000..c82125a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/Eloquent/SupportsPartialRelations.php
@@ -0,0 +1,30 @@
+<?php
+
+namespace Illuminate\Contracts\Database\Eloquent;
+
+interface SupportsPartialRelations
+{
+    /**
+     * Indicate that the relation is a single result of a larger one-to-many relationship.
+     *
+     * @param  string|null  $column
+     * @param  string|\Closure|null  $aggregate
+     * @param  string  $relation
+     * @return $this
+     */
+    public function ofMany($column = 'id', $aggregate = 'MAX', $relation = null);
+
+    /**
+     * Determine whether the relationship is a one-of-many relationship.
+     *
+     * @return bool
+     */
+    public function isOneOfMany();
+
+    /**
+     * Get the one of many inner join subselect query builder instance.
+     *
+     * @return \Illuminate\Database\Eloquent\Builder|void
+     */
+    public function getOneOfManySubQuery();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/Events/MigrationEvent.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/Events/MigrationEvent.php
new file mode 100644
index 0000000..2da155f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/Events/MigrationEvent.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Illuminate\Contracts\Database\Events;
+
+interface MigrationEvent
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/ModelIdentifier.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/ModelIdentifier.php
new file mode 100644
index 0000000..9893d28
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Database/ModelIdentifier.php
@@ -0,0 +1,53 @@
+<?php
+
+namespace Illuminate\Contracts\Database;
+
+class ModelIdentifier
+{
+    /**
+     * The class name of the model.
+     *
+     * @var string
+     */
+    public $class;
+
+    /**
+     * The unique identifier of the model.
+     *
+     * This may be either a single ID or an array of IDs.
+     *
+     * @var mixed
+     */
+    public $id;
+
+    /**
+     * The relationships loaded on the model.
+     *
+     * @var array
+     */
+    public $relations;
+
+    /**
+     * The connection name of the model.
+     *
+     * @var string|null
+     */
+    public $connection;
+
+    /**
+     * Create a new model identifier.
+     *
+     * @param  string  $class
+     * @param  mixed  $id
+     * @param  array  $relations
+     * @param  mixed  $connection
+     * @return void
+     */
+    public function __construct($class, $id, array $relations, $connection)
+    {
+        $this->id = $id;
+        $this->class = $class;
+        $this->relations = $relations;
+        $this->connection = $connection;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Debug/ExceptionHandler.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Debug/ExceptionHandler.php
new file mode 100644
index 0000000..54381a1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Debug/ExceptionHandler.php
@@ -0,0 +1,46 @@
+<?php
+
+namespace Illuminate\Contracts\Debug;
+
+use Throwable;
+
+interface ExceptionHandler
+{
+    /**
+     * Report or log an exception.
+     *
+     * @param  \Throwable  $e
+     * @return void
+     *
+     * @throws \Throwable
+     */
+    public function report(Throwable $e);
+
+    /**
+     * Determine if the exception should be reported.
+     *
+     * @param  \Throwable  $e
+     * @return bool
+     */
+    public function shouldReport(Throwable $e);
+
+    /**
+     * Render an exception into an HTTP response.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  \Throwable  $e
+     * @return \Symfony\Component\HttpFoundation\Response
+     *
+     * @throws \Throwable
+     */
+    public function render($request, Throwable $e);
+
+    /**
+     * Render an exception to the console.
+     *
+     * @param  \Symfony\Component\Console\Output\OutputInterface  $output
+     * @param  \Throwable  $e
+     * @return void
+     */
+    public function renderForConsole($output, Throwable $e);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Encryption/DecryptException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Encryption/DecryptException.php
new file mode 100644
index 0000000..7edebc9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Encryption/DecryptException.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace Illuminate\Contracts\Encryption;
+
+use RuntimeException;
+
+class DecryptException extends RuntimeException
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Encryption/EncryptException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Encryption/EncryptException.php
new file mode 100644
index 0000000..2146ee0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Encryption/EncryptException.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace Illuminate\Contracts\Encryption;
+
+use RuntimeException;
+
+class EncryptException extends RuntimeException
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Encryption/Encrypter.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Encryption/Encrypter.php
new file mode 100644
index 0000000..4747b68
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Encryption/Encrypter.php
@@ -0,0 +1,28 @@
+<?php
+
+namespace Illuminate\Contracts\Encryption;
+
+interface Encrypter
+{
+    /**
+     * Encrypt the given value.
+     *
+     * @param  mixed  $value
+     * @param  bool  $serialize
+     * @return string
+     *
+     * @throws \Illuminate\Contracts\Encryption\EncryptException
+     */
+    public function encrypt($value, $serialize = true);
+
+    /**
+     * Decrypt the given value.
+     *
+     * @param  string  $payload
+     * @param  bool  $unserialize
+     * @return mixed
+     *
+     * @throws \Illuminate\Contracts\Encryption\DecryptException
+     */
+    public function decrypt($payload, $unserialize = true);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Encryption/StringEncrypter.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Encryption/StringEncrypter.php
new file mode 100644
index 0000000..1e6938c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Encryption/StringEncrypter.php
@@ -0,0 +1,26 @@
+<?php
+
+namespace Illuminate\Contracts\Encryption;
+
+interface StringEncrypter
+{
+    /**
+     * Encrypt a string without serialization.
+     *
+     * @param  string  $value
+     * @return string
+     *
+     * @throws \Illuminate\Contracts\Encryption\EncryptException
+     */
+    public function encryptString($value);
+
+    /**
+     * Decrypt the given string without unserialization.
+     *
+     * @param  string  $payload
+     * @return string
+     *
+     * @throws \Illuminate\Contracts\Encryption\DecryptException
+     */
+    public function decryptString($payload);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Events/Dispatcher.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Events/Dispatcher.php
new file mode 100644
index 0000000..6386106
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Events/Dispatcher.php
@@ -0,0 +1,82 @@
+<?php
+
+namespace Illuminate\Contracts\Events;
+
+interface Dispatcher
+{
+    /**
+     * Register an event listener with the dispatcher.
+     *
+     * @param  \Closure|string|array  $events
+     * @param  \Closure|string|array|null  $listener
+     * @return void
+     */
+    public function listen($events, $listener = null);
+
+    /**
+     * Determine if a given event has listeners.
+     *
+     * @param  string  $eventName
+     * @return bool
+     */
+    public function hasListeners($eventName);
+
+    /**
+     * Register an event subscriber with the dispatcher.
+     *
+     * @param  object|string  $subscriber
+     * @return void
+     */
+    public function subscribe($subscriber);
+
+    /**
+     * Dispatch an event until the first non-null response is returned.
+     *
+     * @param  string|object  $event
+     * @param  mixed  $payload
+     * @return array|null
+     */
+    public function until($event, $payload = []);
+
+    /**
+     * Dispatch an event and call the listeners.
+     *
+     * @param  string|object  $event
+     * @param  mixed  $payload
+     * @param  bool  $halt
+     * @return array|null
+     */
+    public function dispatch($event, $payload = [], $halt = false);
+
+    /**
+     * Register an event and payload to be fired later.
+     *
+     * @param  string  $event
+     * @param  array  $payload
+     * @return void
+     */
+    public function push($event, $payload = []);
+
+    /**
+     * Flush a set of pushed events.
+     *
+     * @param  string  $event
+     * @return void
+     */
+    public function flush($event);
+
+    /**
+     * Remove a set of listeners from the dispatcher.
+     *
+     * @param  string  $event
+     * @return void
+     */
+    public function forget($event);
+
+    /**
+     * Forget all of the queued listeners.
+     *
+     * @return void
+     */
+    public function forgetPushed();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Filesystem/Cloud.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Filesystem/Cloud.php
new file mode 100644
index 0000000..86bea26
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Filesystem/Cloud.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace Illuminate\Contracts\Filesystem;
+
+interface Cloud extends Filesystem
+{
+    /**
+     * Get the URL for the file at the given path.
+     *
+     * @param  string  $path
+     * @return string
+     */
+    public function url($path);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Filesystem/Factory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Filesystem/Factory.php
new file mode 100644
index 0000000..d0f9cd2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Filesystem/Factory.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace Illuminate\Contracts\Filesystem;
+
+interface Factory
+{
+    /**
+     * Get a filesystem implementation.
+     *
+     * @param  string|null  $name
+     * @return \Illuminate\Contracts\Filesystem\Filesystem
+     */
+    public function disk($name = null);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Filesystem/FileExistsException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Filesystem/FileExistsException.php
new file mode 100644
index 0000000..9027892
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Filesystem/FileExistsException.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace Illuminate\Contracts\Filesystem;
+
+use Exception;
+
+class FileExistsException extends Exception
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Filesystem/FileNotFoundException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Filesystem/FileNotFoundException.php
new file mode 100644
index 0000000..37b7930
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Filesystem/FileNotFoundException.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace Illuminate\Contracts\Filesystem;
+
+use Exception;
+
+class FileNotFoundException extends Exception
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Filesystem/Filesystem.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Filesystem/Filesystem.php
new file mode 100644
index 0000000..e8b0dd4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Filesystem/Filesystem.php
@@ -0,0 +1,198 @@
+<?php
+
+namespace Illuminate\Contracts\Filesystem;
+
+interface Filesystem
+{
+    /**
+     * The public visibility setting.
+     *
+     * @var string
+     */
+    const VISIBILITY_PUBLIC = 'public';
+
+    /**
+     * The private visibility setting.
+     *
+     * @var string
+     */
+    const VISIBILITY_PRIVATE = 'private';
+
+    /**
+     * Determine if a file exists.
+     *
+     * @param  string  $path
+     * @return bool
+     */
+    public function exists($path);
+
+    /**
+     * Get the contents of a file.
+     *
+     * @param  string  $path
+     * @return string
+     *
+     * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException
+     */
+    public function get($path);
+
+    /**
+     * Get a resource to read the file.
+     *
+     * @param  string  $path
+     * @return resource|null The path resource or null on failure.
+     *
+     * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException
+     */
+    public function readStream($path);
+
+    /**
+     * Write the contents of a file.
+     *
+     * @param  string  $path
+     * @param  string|resource  $contents
+     * @param  mixed  $options
+     * @return bool
+     */
+    public function put($path, $contents, $options = []);
+
+    /**
+     * Write a new file using a stream.
+     *
+     * @param  string  $path
+     * @param  resource  $resource
+     * @param  array  $options
+     * @return bool
+     *
+     * @throws \InvalidArgumentException If $resource is not a file handle.
+     * @throws \Illuminate\Contracts\Filesystem\FileExistsException
+     */
+    public function writeStream($path, $resource, array $options = []);
+
+    /**
+     * Get the visibility for the given path.
+     *
+     * @param  string  $path
+     * @return string
+     */
+    public function getVisibility($path);
+
+    /**
+     * Set the visibility for the given path.
+     *
+     * @param  string  $path
+     * @param  string  $visibility
+     * @return bool
+     */
+    public function setVisibility($path, $visibility);
+
+    /**
+     * Prepend to a file.
+     *
+     * @param  string  $path
+     * @param  string  $data
+     * @return bool
+     */
+    public function prepend($path, $data);
+
+    /**
+     * Append to a file.
+     *
+     * @param  string  $path
+     * @param  string  $data
+     * @return bool
+     */
+    public function append($path, $data);
+
+    /**
+     * Delete the file at a given path.
+     *
+     * @param  string|array  $paths
+     * @return bool
+     */
+    public function delete($paths);
+
+    /**
+     * Copy a file to a new location.
+     *
+     * @param  string  $from
+     * @param  string  $to
+     * @return bool
+     */
+    public function copy($from, $to);
+
+    /**
+     * Move a file to a new location.
+     *
+     * @param  string  $from
+     * @param  string  $to
+     * @return bool
+     */
+    public function move($from, $to);
+
+    /**
+     * Get the file size of a given file.
+     *
+     * @param  string  $path
+     * @return int
+     */
+    public function size($path);
+
+    /**
+     * Get the file's last modification time.
+     *
+     * @param  string  $path
+     * @return int
+     */
+    public function lastModified($path);
+
+    /**
+     * Get an array of all files in a directory.
+     *
+     * @param  string|null  $directory
+     * @param  bool  $recursive
+     * @return array
+     */
+    public function files($directory = null, $recursive = false);
+
+    /**
+     * Get all of the files from the given directory (recursive).
+     *
+     * @param  string|null  $directory
+     * @return array
+     */
+    public function allFiles($directory = null);
+
+    /**
+     * Get all of the directories within a given directory.
+     *
+     * @param  string|null  $directory
+     * @param  bool  $recursive
+     * @return array
+     */
+    public function directories($directory = null, $recursive = false);
+
+    /**
+     * Get all (recursive) of the directories within a given directory.
+     *
+     * @param  string|null  $directory
+     * @return array
+     */
+    public function allDirectories($directory = null);
+
+    /**
+     * Create a directory.
+     *
+     * @param  string  $path
+     * @return bool
+     */
+    public function makeDirectory($path);
+
+    /**
+     * Recursively delete a directory.
+     *
+     * @param  string  $directory
+     * @return bool
+     */
+    public function deleteDirectory($directory);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Filesystem/LockTimeoutException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Filesystem/LockTimeoutException.php
new file mode 100644
index 0000000..f03f5c4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Filesystem/LockTimeoutException.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace Illuminate\Contracts\Filesystem;
+
+use Exception;
+
+class LockTimeoutException extends Exception
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Foundation/Application.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Foundation/Application.php
new file mode 100644
index 0000000..8ae0a31
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Foundation/Application.php
@@ -0,0 +1,215 @@
+<?php
+
+namespace Illuminate\Contracts\Foundation;
+
+use Illuminate\Contracts\Container\Container;
+
+interface Application extends Container
+{
+    /**
+     * Get the version number of the application.
+     *
+     * @return string
+     */
+    public function version();
+
+    /**
+     * Get the base path of the Laravel installation.
+     *
+     * @param  string  $path
+     * @return string
+     */
+    public function basePath($path = '');
+
+    /**
+     * Get the path to the bootstrap directory.
+     *
+     * @param  string  $path Optionally, a path to append to the bootstrap path
+     * @return string
+     */
+    public function bootstrapPath($path = '');
+
+    /**
+     * Get the path to the application configuration files.
+     *
+     * @param  string  $path Optionally, a path to append to the config path
+     * @return string
+     */
+    public function configPath($path = '');
+
+    /**
+     * Get the path to the database directory.
+     *
+     * @param  string  $path Optionally, a path to append to the database path
+     * @return string
+     */
+    public function databasePath($path = '');
+
+    /**
+     * Get the path to the resources directory.
+     *
+     * @param  string  $path
+     * @return string
+     */
+    public function resourcePath($path = '');
+
+    /**
+     * Get the path to the storage directory.
+     *
+     * @return string
+     */
+    public function storagePath();
+
+    /**
+     * Get or check the current application environment.
+     *
+     * @param  string|array  $environments
+     * @return string|bool
+     */
+    public function environment(...$environments);
+
+    /**
+     * Determine if the application is running in the console.
+     *
+     * @return bool
+     */
+    public function runningInConsole();
+
+    /**
+     * Determine if the application is running unit tests.
+     *
+     * @return bool
+     */
+    public function runningUnitTests();
+
+    /**
+     * Determine if the application is currently down for maintenance.
+     *
+     * @return bool
+     */
+    public function isDownForMaintenance();
+
+    /**
+     * Register all of the configured providers.
+     *
+     * @return void
+     */
+    public function registerConfiguredProviders();
+
+    /**
+     * Register a service provider with the application.
+     *
+     * @param  \Illuminate\Support\ServiceProvider|string  $provider
+     * @param  bool  $force
+     * @return \Illuminate\Support\ServiceProvider
+     */
+    public function register($provider, $force = false);
+
+    /**
+     * Register a deferred provider and service.
+     *
+     * @param  string  $provider
+     * @param  string|null  $service
+     * @return void
+     */
+    public function registerDeferredProvider($provider, $service = null);
+
+    /**
+     * Resolve a service provider instance from the class name.
+     *
+     * @param  string  $provider
+     * @return \Illuminate\Support\ServiceProvider
+     */
+    public function resolveProvider($provider);
+
+    /**
+     * Boot the application's service providers.
+     *
+     * @return void
+     */
+    public function boot();
+
+    /**
+     * Register a new boot listener.
+     *
+     * @param  callable  $callback
+     * @return void
+     */
+    public function booting($callback);
+
+    /**
+     * Register a new "booted" listener.
+     *
+     * @param  callable  $callback
+     * @return void
+     */
+    public function booted($callback);
+
+    /**
+     * Run the given array of bootstrap classes.
+     *
+     * @param  array  $bootstrappers
+     * @return void
+     */
+    public function bootstrapWith(array $bootstrappers);
+
+    /**
+     * Get the current application locale.
+     *
+     * @return string
+     */
+    public function getLocale();
+
+    /**
+     * Get the application namespace.
+     *
+     * @return string
+     *
+     * @throws \RuntimeException
+     */
+    public function getNamespace();
+
+    /**
+     * Get the registered service provider instances if any exist.
+     *
+     * @param  \Illuminate\Support\ServiceProvider|string  $provider
+     * @return array
+     */
+    public function getProviders($provider);
+
+    /**
+     * Determine if the application has been bootstrapped before.
+     *
+     * @return bool
+     */
+    public function hasBeenBootstrapped();
+
+    /**
+     * Load and boot all of the remaining deferred providers.
+     *
+     * @return void
+     */
+    public function loadDeferredProviders();
+
+    /**
+     * Set the current application locale.
+     *
+     * @param  string  $locale
+     * @return void
+     */
+    public function setLocale($locale);
+
+    /**
+     * Determine if middleware has been disabled for the application.
+     *
+     * @return bool
+     */
+    public function shouldSkipMiddleware();
+
+    /**
+     * Terminate the application.
+     *
+     * @return void
+     */
+    public function terminate();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Foundation/CachesConfiguration.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Foundation/CachesConfiguration.php
new file mode 100644
index 0000000..08ebdaf
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Foundation/CachesConfiguration.php
@@ -0,0 +1,27 @@
+<?php
+
+namespace Illuminate\Contracts\Foundation;
+
+interface CachesConfiguration
+{
+    /**
+     * Determine if the application configuration is cached.
+     *
+     * @return bool
+     */
+    public function configurationIsCached();
+
+    /**
+     * Get the path to the configuration cache file.
+     *
+     * @return string
+     */
+    public function getCachedConfigPath();
+
+    /**
+     * Get the path to the cached services.php file.
+     *
+     * @return string
+     */
+    public function getCachedServicesPath();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Foundation/CachesRoutes.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Foundation/CachesRoutes.php
new file mode 100644
index 0000000..a5c3455
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Foundation/CachesRoutes.php
@@ -0,0 +1,20 @@
+<?php
+
+namespace Illuminate\Contracts\Foundation;
+
+interface CachesRoutes
+{
+    /**
+     * Determine if the application routes are cached.
+     *
+     * @return bool
+     */
+    public function routesAreCached();
+
+    /**
+     * Get the path to the routes cache file.
+     *
+     * @return string
+     */
+    public function getCachedRoutesPath();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Hashing/Hasher.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Hashing/Hasher.php
new file mode 100644
index 0000000..b5e4d4c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Hashing/Hasher.php
@@ -0,0 +1,42 @@
+<?php
+
+namespace Illuminate\Contracts\Hashing;
+
+interface Hasher
+{
+    /**
+     * Get information about the given hashed value.
+     *
+     * @param  string  $hashedValue
+     * @return array
+     */
+    public function info($hashedValue);
+
+    /**
+     * Hash the given value.
+     *
+     * @param  string  $value
+     * @param  array  $options
+     * @return string
+     */
+    public function make($value, array $options = []);
+
+    /**
+     * Check the given plain value against a hash.
+     *
+     * @param  string  $value
+     * @param  string  $hashedValue
+     * @param  array  $options
+     * @return bool
+     */
+    public function check($value, $hashedValue, array $options = []);
+
+    /**
+     * Check if the given hash has been hashed using the given options.
+     *
+     * @param  string  $hashedValue
+     * @param  array  $options
+     * @return bool
+     */
+    public function needsRehash($hashedValue, array $options = []);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Http/Kernel.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Http/Kernel.php
new file mode 100644
index 0000000..6eab6e6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Http/Kernel.php
@@ -0,0 +1,37 @@
+<?php
+
+namespace Illuminate\Contracts\Http;
+
+interface Kernel
+{
+    /**
+     * Bootstrap the application for HTTP requests.
+     *
+     * @return void
+     */
+    public function bootstrap();
+
+    /**
+     * Handle an incoming HTTP request.
+     *
+     * @param  \Symfony\Component\HttpFoundation\Request  $request
+     * @return \Symfony\Component\HttpFoundation\Response
+     */
+    public function handle($request);
+
+    /**
+     * Perform any final actions for the request lifecycle.
+     *
+     * @param  \Symfony\Component\HttpFoundation\Request  $request
+     * @param  \Symfony\Component\HttpFoundation\Response  $response
+     * @return void
+     */
+    public function terminate($request, $response);
+
+    /**
+     * Get the Laravel application instance.
+     *
+     * @return \Illuminate\Contracts\Foundation\Application
+     */
+    public function getApplication();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/LICENSE.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/LICENSE.md
new file mode 100644
index 0000000..79810c8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/LICENSE.md
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Taylor Otwell
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Mail/Factory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Mail/Factory.php
new file mode 100644
index 0000000..fe45a2f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Mail/Factory.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace Illuminate\Contracts\Mail;
+
+interface Factory
+{
+    /**
+     * Get a mailer instance by name.
+     *
+     * @param  string|null  $name
+     * @return \Illuminate\Contracts\Mail\Mailer
+     */
+    public function mailer($name = null);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Mail/MailQueue.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Mail/MailQueue.php
new file mode 100644
index 0000000..d0d90b8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Mail/MailQueue.php
@@ -0,0 +1,25 @@
+<?php
+
+namespace Illuminate\Contracts\Mail;
+
+interface MailQueue
+{
+    /**
+     * Queue a new e-mail message for sending.
+     *
+     * @param  \Illuminate\Contracts\Mail\Mailable|string|array  $view
+     * @param  string|null  $queue
+     * @return mixed
+     */
+    public function queue($view, $queue = null);
+
+    /**
+     * Queue a new e-mail message for sending after (n) seconds.
+     *
+     * @param  \DateTimeInterface|\DateInterval|int  $delay
+     * @param  \Illuminate\Contracts\Mail\Mailable|string|array  $view
+     * @param  string|null  $queue
+     * @return mixed
+     */
+    public function later($delay, $view, $queue = null);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Mail/Mailable.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Mail/Mailable.php
new file mode 100644
index 0000000..bfdf4ef
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Mail/Mailable.php
@@ -0,0 +1,76 @@
+<?php
+
+namespace Illuminate\Contracts\Mail;
+
+use Illuminate\Contracts\Queue\Factory as Queue;
+
+interface Mailable
+{
+    /**
+     * Send the message using the given mailer.
+     *
+     * @param  \Illuminate\Contracts\Mail\Factory|\Illuminate\Contracts\Mail\Mailer  $mailer
+     * @return void
+     */
+    public function send($mailer);
+
+    /**
+     * Queue the given message.
+     *
+     * @param  \Illuminate\Contracts\Queue\Factory  $queue
+     * @return mixed
+     */
+    public function queue(Queue $queue);
+
+    /**
+     * Deliver the queued message after the given delay.
+     *
+     * @param  \DateTimeInterface|\DateInterval|int  $delay
+     * @param  \Illuminate\Contracts\Queue\Factory  $queue
+     * @return mixed
+     */
+    public function later($delay, Queue $queue);
+
+    /**
+     * Set the recipients of the message.
+     *
+     * @param  object|array|string  $address
+     * @param  string|null  $name
+     * @return self
+     */
+    public function cc($address, $name = null);
+
+    /**
+     * Set the recipients of the message.
+     *
+     * @param  object|array|string  $address
+     * @param  string|null  $name
+     * @return $this
+     */
+    public function bcc($address, $name = null);
+
+    /**
+     * Set the recipients of the message.
+     *
+     * @param  object|array|string  $address
+     * @param  string|null  $name
+     * @return $this
+     */
+    public function to($address, $name = null);
+
+    /**
+     * Set the locale of the message.
+     *
+     * @param  string  $locale
+     * @return $this
+     */
+    public function locale($locale);
+
+    /**
+     * Set the name of the mailer that should be used to send the message.
+     *
+     * @param  string  $mailer
+     * @return $this
+     */
+    public function mailer($mailer);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Mail/Mailer.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Mail/Mailer.php
new file mode 100644
index 0000000..255b678
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Mail/Mailer.php
@@ -0,0 +1,48 @@
+<?php
+
+namespace Illuminate\Contracts\Mail;
+
+interface Mailer
+{
+    /**
+     * Begin the process of mailing a mailable class instance.
+     *
+     * @param  mixed  $users
+     * @return \Illuminate\Mail\PendingMail
+     */
+    public function to($users);
+
+    /**
+     * Begin the process of mailing a mailable class instance.
+     *
+     * @param  mixed  $users
+     * @return \Illuminate\Mail\PendingMail
+     */
+    public function bcc($users);
+
+    /**
+     * Send a new message with only a raw text part.
+     *
+     * @param  string  $text
+     * @param  mixed  $callback
+     * @return void
+     */
+    public function raw($text, $callback);
+
+    /**
+     * Send a new message using a view.
+     *
+     * @param  \Illuminate\Contracts\Mail\Mailable|string|array  $view
+     * @param  array  $data
+     * @param  \Closure|string|null  $callback
+     * @return void
+     */
+    public function send($view, array $data = [], $callback = null);
+
+    /**
+     * Get the array of failed recipients.
+     *
+     * @return array
+     */
+    public function failures();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Notifications/Dispatcher.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Notifications/Dispatcher.php
new file mode 100644
index 0000000..a483ca2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Notifications/Dispatcher.php
@@ -0,0 +1,24 @@
+<?php
+
+namespace Illuminate\Contracts\Notifications;
+
+interface Dispatcher
+{
+    /**
+     * Send the given notification to the given notifiable entities.
+     *
+     * @param  \Illuminate\Support\Collection|array|mixed  $notifiables
+     * @param  mixed  $notification
+     * @return void
+     */
+    public function send($notifiables, $notification);
+
+    /**
+     * Send the given notification immediately.
+     *
+     * @param  \Illuminate\Support\Collection|array|mixed  $notifiables
+     * @param  mixed  $notification
+     * @return void
+     */
+    public function sendNow($notifiables, $notification);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Notifications/Factory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Notifications/Factory.php
new file mode 100644
index 0000000..7705678
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Notifications/Factory.php
@@ -0,0 +1,32 @@
+<?php
+
+namespace Illuminate\Contracts\Notifications;
+
+interface Factory
+{
+    /**
+     * Get a channel instance by name.
+     *
+     * @param  string|null  $name
+     * @return mixed
+     */
+    public function channel($name = null);
+
+    /**
+     * Send the given notification to the given notifiable entities.
+     *
+     * @param  \Illuminate\Support\Collection|array|mixed  $notifiables
+     * @param  mixed  $notification
+     * @return void
+     */
+    public function send($notifiables, $notification);
+
+    /**
+     * Send the given notification immediately.
+     *
+     * @param  \Illuminate\Support\Collection|array|mixed  $notifiables
+     * @param  mixed  $notification
+     * @return void
+     */
+    public function sendNow($notifiables, $notification);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Pagination/CursorPaginator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Pagination/CursorPaginator.php
new file mode 100644
index 0000000..2d62d3a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Pagination/CursorPaginator.php
@@ -0,0 +1,117 @@
+<?php
+
+namespace Illuminate\Contracts\Pagination;
+
+interface CursorPaginator
+{
+    /**
+     * Get the URL for a given cursor.
+     *
+     * @param  \Illuminate\Pagination\Cursor|null  $cursor
+     * @return string
+     */
+    public function url($cursor);
+
+    /**
+     * Add a set of query string values to the paginator.
+     *
+     * @param  array|string|null  $key
+     * @param  string|null  $value
+     * @return $this
+     */
+    public function appends($key, $value = null);
+
+    /**
+     * Get / set the URL fragment to be appended to URLs.
+     *
+     * @param  string|null  $fragment
+     * @return $this|string|null
+     */
+    public function fragment($fragment = null);
+
+    /**
+     * Get the URL for the previous page, or null.
+     *
+     * @return string|null
+     */
+    public function previousPageUrl();
+
+    /**
+     * The URL for the next page, or null.
+     *
+     * @return string|null
+     */
+    public function nextPageUrl();
+
+    /**
+     * Get all of the items being paginated.
+     *
+     * @return array
+     */
+    public function items();
+
+    /**
+     * Get the "cursor" of the previous set of items.
+     *
+     * @return \Illuminate\Pagination\Cursor|null
+     */
+    public function previousCursor();
+
+    /**
+     * Get the "cursor" of the next set of items.
+     *
+     * @return \Illuminate\Pagination\Cursor|null
+     */
+    public function nextCursor();
+
+    /**
+     * Determine how many items are being shown per page.
+     *
+     * @return int
+     */
+    public function perPage();
+
+    /**
+     * Get the current cursor being paginated.
+     *
+     * @return \Illuminate\Pagination\Cursor|null
+     */
+    public function cursor();
+
+    /**
+     * Determine if there are enough items to split into multiple pages.
+     *
+     * @return bool
+     */
+    public function hasPages();
+
+    /**
+     * Get the base path for paginator generated URLs.
+     *
+     * @return string|null
+     */
+    public function path();
+
+    /**
+     * Determine if the list of items is empty or not.
+     *
+     * @return bool
+     */
+    public function isEmpty();
+
+    /**
+     * Determine if the list of items is not empty.
+     *
+     * @return bool
+     */
+    public function isNotEmpty();
+
+    /**
+     * Render the paginator using a given view.
+     *
+     * @param  string|null  $view
+     * @param  array  $data
+     * @return string
+     */
+    public function render($view = null, $data = []);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Pagination/LengthAwarePaginator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Pagination/LengthAwarePaginator.php
new file mode 100644
index 0000000..4e6ef71
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Pagination/LengthAwarePaginator.php
@@ -0,0 +1,29 @@
+<?php
+
+namespace Illuminate\Contracts\Pagination;
+
+interface LengthAwarePaginator extends Paginator
+{
+    /**
+     * Create a range of pagination URLs.
+     *
+     * @param  int  $start
+     * @param  int  $end
+     * @return array
+     */
+    public function getUrlRange($start, $end);
+
+    /**
+     * Determine the total number of items in the data store.
+     *
+     * @return int
+     */
+    public function total();
+
+    /**
+     * Get the page number of the last available page.
+     *
+     * @return int
+     */
+    public function lastPage();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Pagination/Paginator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Pagination/Paginator.php
new file mode 100644
index 0000000..49bafaa
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Pagination/Paginator.php
@@ -0,0 +1,124 @@
+<?php
+
+namespace Illuminate\Contracts\Pagination;
+
+interface Paginator
+{
+    /**
+     * Get the URL for a given page.
+     *
+     * @param  int  $page
+     * @return string
+     */
+    public function url($page);
+
+    /**
+     * Add a set of query string values to the paginator.
+     *
+     * @param  array|string  $key
+     * @param  string|null  $value
+     * @return $this
+     */
+    public function appends($key, $value = null);
+
+    /**
+     * Get / set the URL fragment to be appended to URLs.
+     *
+     * @param  string|null  $fragment
+     * @return $this|string
+     */
+    public function fragment($fragment = null);
+
+    /**
+     * The URL for the next page, or null.
+     *
+     * @return string|null
+     */
+    public function nextPageUrl();
+
+    /**
+     * Get the URL for the previous page, or null.
+     *
+     * @return string|null
+     */
+    public function previousPageUrl();
+
+    /**
+     * Get all of the items being paginated.
+     *
+     * @return array
+     */
+    public function items();
+
+    /**
+     * Get the "index" of the first item being paginated.
+     *
+     * @return int
+     */
+    public function firstItem();
+
+    /**
+     * Get the "index" of the last item being paginated.
+     *
+     * @return int
+     */
+    public function lastItem();
+
+    /**
+     * Determine how many items are being shown per page.
+     *
+     * @return int
+     */
+    public function perPage();
+
+    /**
+     * Determine the current page being paginated.
+     *
+     * @return int
+     */
+    public function currentPage();
+
+    /**
+     * Determine if there are enough items to split into multiple pages.
+     *
+     * @return bool
+     */
+    public function hasPages();
+
+    /**
+     * Determine if there are more items in the data store.
+     *
+     * @return bool
+     */
+    public function hasMorePages();
+
+    /**
+     * Get the base path for paginator generated URLs.
+     *
+     * @return string|null
+     */
+    public function path();
+
+    /**
+     * Determine if the list of items is empty or not.
+     *
+     * @return bool
+     */
+    public function isEmpty();
+
+    /**
+     * Determine if the list of items is not empty.
+     *
+     * @return bool
+     */
+    public function isNotEmpty();
+
+    /**
+     * Render the paginator using a given view.
+     *
+     * @param  string|null  $view
+     * @param  array  $data
+     * @return string
+     */
+    public function render($view = null, $data = []);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Pipeline/Hub.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Pipeline/Hub.php
new file mode 100644
index 0000000..1ae675f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Pipeline/Hub.php
@@ -0,0 +1,15 @@
+<?php
+
+namespace Illuminate\Contracts\Pipeline;
+
+interface Hub
+{
+    /**
+     * Send an object through one of the available pipelines.
+     *
+     * @param  mixed  $object
+     * @param  string|null  $pipeline
+     * @return mixed
+     */
+    public function pipe($object, $pipeline = null);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Pipeline/Pipeline.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Pipeline/Pipeline.php
new file mode 100644
index 0000000..226081c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Pipeline/Pipeline.php
@@ -0,0 +1,40 @@
+<?php
+
+namespace Illuminate\Contracts\Pipeline;
+
+use Closure;
+
+interface Pipeline
+{
+    /**
+     * Set the traveler object being sent on the pipeline.
+     *
+     * @param  mixed  $traveler
+     * @return $this
+     */
+    public function send($traveler);
+
+    /**
+     * Set the stops of the pipeline.
+     *
+     * @param  dynamic|array  $stops
+     * @return $this
+     */
+    public function through($stops);
+
+    /**
+     * Set the method to call on the stops.
+     *
+     * @param  string  $method
+     * @return $this
+     */
+    public function via($method);
+
+    /**
+     * Run the pipeline with a final destination callback.
+     *
+     * @param  \Closure  $destination
+     * @return mixed
+     */
+    public function then(Closure $destination);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/ClearableQueue.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/ClearableQueue.php
new file mode 100644
index 0000000..427f61b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/ClearableQueue.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace Illuminate\Contracts\Queue;
+
+interface ClearableQueue
+{
+    /**
+     * Delete all of the jobs from the queue.
+     *
+     * @param  string  $queue
+     * @return int
+     */
+    public function clear($queue);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/EntityNotFoundException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/EntityNotFoundException.php
new file mode 100644
index 0000000..079250d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/EntityNotFoundException.php
@@ -0,0 +1,22 @@
+<?php
+
+namespace Illuminate\Contracts\Queue;
+
+use InvalidArgumentException;
+
+class EntityNotFoundException extends InvalidArgumentException
+{
+    /**
+     * Create a new exception instance.
+     *
+     * @param  string  $type
+     * @param  mixed  $id
+     * @return void
+     */
+    public function __construct($type, $id)
+    {
+        $id = (string) $id;
+
+        parent::__construct("Queueable entity [{$type}] not found for ID [{$id}].");
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/EntityResolver.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/EntityResolver.php
new file mode 100644
index 0000000..aad97a1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/EntityResolver.php
@@ -0,0 +1,15 @@
+<?php
+
+namespace Illuminate\Contracts\Queue;
+
+interface EntityResolver
+{
+    /**
+     * Resolve the entity for the given ID.
+     *
+     * @param  string  $type
+     * @param  mixed  $id
+     * @return mixed
+     */
+    public function resolve($type, $id);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/Factory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/Factory.php
new file mode 100644
index 0000000..9a0bdeb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/Factory.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace Illuminate\Contracts\Queue;
+
+interface Factory
+{
+    /**
+     * Resolve a queue connection instance.
+     *
+     * @param  string|null  $name
+     * @return \Illuminate\Contracts\Queue\Queue
+     */
+    public function connection($name = null);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/Job.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/Job.php
new file mode 100644
index 0000000..c856215
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/Job.php
@@ -0,0 +1,166 @@
+<?php
+
+namespace Illuminate\Contracts\Queue;
+
+interface Job
+{
+    /**
+     * Get the UUID of the job.
+     *
+     * @return string|null
+     */
+    public function uuid();
+
+    /**
+     * Get the job identifier.
+     *
+     * @return string
+     */
+    public function getJobId();
+
+    /**
+     * Get the decoded body of the job.
+     *
+     * @return array
+     */
+    public function payload();
+
+    /**
+     * Fire the job.
+     *
+     * @return void
+     */
+    public function fire();
+
+    /**
+     * Release the job back into the queue.
+     *
+     * Accepts a delay specified in seconds.
+     *
+     * @param  int  $delay
+     * @return void
+     */
+    public function release($delay = 0);
+
+    /**
+     * Determine if the job was released back into the queue.
+     *
+     * @return bool
+     */
+    public function isReleased();
+
+    /**
+     * Delete the job from the queue.
+     *
+     * @return void
+     */
+    public function delete();
+
+    /**
+     * Determine if the job has been deleted.
+     *
+     * @return bool
+     */
+    public function isDeleted();
+
+    /**
+     * Determine if the job has been deleted or released.
+     *
+     * @return bool
+     */
+    public function isDeletedOrReleased();
+
+    /**
+     * Get the number of times the job has been attempted.
+     *
+     * @return int
+     */
+    public function attempts();
+
+    /**
+     * Determine if the job has been marked as a failure.
+     *
+     * @return bool
+     */
+    public function hasFailed();
+
+    /**
+     * Mark the job as "failed".
+     *
+     * @return void
+     */
+    public function markAsFailed();
+
+    /**
+     * Delete the job, call the "failed" method, and raise the failed job event.
+     *
+     * @param  \Throwable|null  $e
+     * @return void
+     */
+    public function fail($e = null);
+
+    /**
+     * Get the number of times to attempt a job.
+     *
+     * @return int|null
+     */
+    public function maxTries();
+
+    /**
+     * Get the maximum number of exceptions allowed, regardless of attempts.
+     *
+     * @return int|null
+     */
+    public function maxExceptions();
+
+    /**
+     * Get the number of seconds the job can run.
+     *
+     * @return int|null
+     */
+    public function timeout();
+
+    /**
+     * Get the timestamp indicating when the job should timeout.
+     *
+     * @return int|null
+     */
+    public function retryUntil();
+
+    /**
+     * Get the name of the queued job class.
+     *
+     * @return string
+     */
+    public function getName();
+
+    /**
+     * Get the resolved name of the queued job class.
+     *
+     * Resolves the name of "wrapped" jobs such as class-based handlers.
+     *
+     * @return string
+     */
+    public function resolveName();
+
+    /**
+     * Get the name of the connection the job belongs to.
+     *
+     * @return string
+     */
+    public function getConnectionName();
+
+    /**
+     * Get the name of the queue the job belongs to.
+     *
+     * @return string
+     */
+    public function getQueue();
+
+    /**
+     * Get the raw body string for the job.
+     *
+     * @return string
+     */
+    public function getRawBody();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/Monitor.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/Monitor.php
new file mode 100644
index 0000000..7da62d3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/Monitor.php
@@ -0,0 +1,30 @@
+<?php
+
+namespace Illuminate\Contracts\Queue;
+
+interface Monitor
+{
+    /**
+     * Register a callback to be executed on every iteration through the queue loop.
+     *
+     * @param  mixed  $callback
+     * @return void
+     */
+    public function looping($callback);
+
+    /**
+     * Register a callback to be executed when a job fails after the maximum amount of retries.
+     *
+     * @param  mixed  $callback
+     * @return void
+     */
+    public function failing($callback);
+
+    /**
+     * Register a callback to be executed when a daemon queue is stopping.
+     *
+     * @param  mixed  $callback
+     * @return void
+     */
+    public function stopping($callback);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/Queue.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/Queue.php
new file mode 100644
index 0000000..073b3c1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/Queue.php
@@ -0,0 +1,99 @@
+<?php
+
+namespace Illuminate\Contracts\Queue;
+
+interface Queue
+{
+    /**
+     * Get the size of the queue.
+     *
+     * @param  string|null  $queue
+     * @return int
+     */
+    public function size($queue = null);
+
+    /**
+     * Push a new job onto the queue.
+     *
+     * @param  string|object  $job
+     * @param  mixed  $data
+     * @param  string|null  $queue
+     * @return mixed
+     */
+    public function push($job, $data = '', $queue = null);
+
+    /**
+     * Push a new job onto the queue.
+     *
+     * @param  string  $queue
+     * @param  string|object  $job
+     * @param  mixed  $data
+     * @return mixed
+     */
+    public function pushOn($queue, $job, $data = '');
+
+    /**
+     * Push a raw payload onto the queue.
+     *
+     * @param  string  $payload
+     * @param  string|null  $queue
+     * @param  array  $options
+     * @return mixed
+     */
+    public function pushRaw($payload, $queue = null, array $options = []);
+
+    /**
+     * Push a new job onto the queue after a delay.
+     *
+     * @param  \DateTimeInterface|\DateInterval|int  $delay
+     * @param  string|object  $job
+     * @param  mixed  $data
+     * @param  string|null  $queue
+     * @return mixed
+     */
+    public function later($delay, $job, $data = '', $queue = null);
+
+    /**
+     * Push a new job onto the queue after a delay.
+     *
+     * @param  string  $queue
+     * @param  \DateTimeInterface|\DateInterval|int  $delay
+     * @param  string|object  $job
+     * @param  mixed  $data
+     * @return mixed
+     */
+    public function laterOn($queue, $delay, $job, $data = '');
+
+    /**
+     * Push an array of jobs onto the queue.
+     *
+     * @param  array  $jobs
+     * @param  mixed  $data
+     * @param  string|null  $queue
+     * @return mixed
+     */
+    public function bulk($jobs, $data = '', $queue = null);
+
+    /**
+     * Pop the next job off of the queue.
+     *
+     * @param  string|null  $queue
+     * @return \Illuminate\Contracts\Queue\Job|null
+     */
+    public function pop($queue = null);
+
+    /**
+     * Get the connection name for the queue.
+     *
+     * @return string
+     */
+    public function getConnectionName();
+
+    /**
+     * Set the connection name for the queue.
+     *
+     * @param  string  $name
+     * @return $this
+     */
+    public function setConnectionName($name);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/QueueableCollection.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/QueueableCollection.php
new file mode 100644
index 0000000..7f1ea19
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/QueueableCollection.php
@@ -0,0 +1,34 @@
+<?php
+
+namespace Illuminate\Contracts\Queue;
+
+interface QueueableCollection
+{
+    /**
+     * Get the type of the entities being queued.
+     *
+     * @return string|null
+     */
+    public function getQueueableClass();
+
+    /**
+     * Get the identifiers for all of the entities.
+     *
+     * @return array
+     */
+    public function getQueueableIds();
+
+    /**
+     * Get the relationships of the entities being queued.
+     *
+     * @return array
+     */
+    public function getQueueableRelations();
+
+    /**
+     * Get the connection of the entities being queued.
+     *
+     * @return string|null
+     */
+    public function getQueueableConnection();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/QueueableEntity.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/QueueableEntity.php
new file mode 100644
index 0000000..366f0c8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/QueueableEntity.php
@@ -0,0 +1,27 @@
+<?php
+
+namespace Illuminate\Contracts\Queue;
+
+interface QueueableEntity
+{
+    /**
+     * Get the queueable identity for the entity.
+     *
+     * @return mixed
+     */
+    public function getQueueableId();
+
+    /**
+     * Get the relationships for the entity.
+     *
+     * @return array
+     */
+    public function getQueueableRelations();
+
+    /**
+     * Get the connection of the entity.
+     *
+     * @return string|null
+     */
+    public function getQueueableConnection();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/ShouldBeEncrypted.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/ShouldBeEncrypted.php
new file mode 100644
index 0000000..374df89
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/ShouldBeEncrypted.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Illuminate\Contracts\Queue;
+
+interface ShouldBeEncrypted
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/ShouldBeUnique.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/ShouldBeUnique.php
new file mode 100644
index 0000000..b216434
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/ShouldBeUnique.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Illuminate\Contracts\Queue;
+
+interface ShouldBeUnique
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php
new file mode 100644
index 0000000..510cab9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/ShouldBeUniqueUntilProcessing.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Illuminate\Contracts\Queue;
+
+interface ShouldBeUniqueUntilProcessing extends ShouldBeUnique
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/ShouldQueue.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/ShouldQueue.php
new file mode 100644
index 0000000..0e99652
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Queue/ShouldQueue.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Illuminate\Contracts\Queue;
+
+interface ShouldQueue
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Redis/Connection.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Redis/Connection.php
new file mode 100644
index 0000000..74a8832
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Redis/Connection.php
@@ -0,0 +1,35 @@
+<?php
+
+namespace Illuminate\Contracts\Redis;
+
+use Closure;
+
+interface Connection
+{
+    /**
+     * Subscribe to a set of given channels for messages.
+     *
+     * @param  array|string  $channels
+     * @param  \Closure  $callback
+     * @return void
+     */
+    public function subscribe($channels, Closure $callback);
+
+    /**
+     * Subscribe to a set of given channels with wildcards.
+     *
+     * @param  array|string  $channels
+     * @param  \Closure  $callback
+     * @return void
+     */
+    public function psubscribe($channels, Closure $callback);
+
+    /**
+     * Run a command against the Redis database.
+     *
+     * @param  string  $method
+     * @param  array  $parameters
+     * @return mixed
+     */
+    public function command($method, array $parameters = []);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Redis/Connector.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Redis/Connector.php
new file mode 100644
index 0000000..e2669f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Redis/Connector.php
@@ -0,0 +1,25 @@
+<?php
+
+namespace Illuminate\Contracts\Redis;
+
+interface Connector
+{
+    /**
+     * Create a connection to a Redis cluster.
+     *
+     * @param  array  $config
+     * @param  array  $options
+     * @return \Illuminate\Redis\Connections\Connection
+     */
+    public function connect(array $config, array $options);
+
+    /**
+     * Create a connection to a Redis instance.
+     *
+     * @param  array  $config
+     * @param  array  $clusterOptions
+     * @param  array  $options
+     * @return \Illuminate\Redis\Connections\Connection
+     */
+    public function connectToCluster(array $config, array $clusterOptions, array $options);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Redis/Factory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Redis/Factory.php
new file mode 100644
index 0000000..c2bfe81
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Redis/Factory.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace Illuminate\Contracts\Redis;
+
+interface Factory
+{
+    /**
+     * Get a Redis connection by name.
+     *
+     * @param  string|null  $name
+     * @return \Illuminate\Redis\Connections\Connection
+     */
+    public function connection($name = null);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Redis/LimiterTimeoutException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Redis/LimiterTimeoutException.php
new file mode 100644
index 0000000..651bf90
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Redis/LimiterTimeoutException.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace Illuminate\Contracts\Redis;
+
+use Exception;
+
+class LimiterTimeoutException extends Exception
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Routing/BindingRegistrar.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Routing/BindingRegistrar.php
new file mode 100644
index 0000000..6ed5079
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Routing/BindingRegistrar.php
@@ -0,0 +1,23 @@
+<?php
+
+namespace Illuminate\Contracts\Routing;
+
+interface BindingRegistrar
+{
+    /**
+     * Add a new route parameter binder.
+     *
+     * @param  string  $key
+     * @param  string|callable  $binder
+     * @return void
+     */
+    public function bind($key, $binder);
+
+    /**
+     * Get the binding callback for a given binding.
+     *
+     * @param  string  $key
+     * @return \Closure
+     */
+    public function getBindingCallback($key);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Routing/Registrar.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Routing/Registrar.php
new file mode 100644
index 0000000..57e3272
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Routing/Registrar.php
@@ -0,0 +1,105 @@
+<?php
+
+namespace Illuminate\Contracts\Routing;
+
+interface Registrar
+{
+    /**
+     * Register a new GET route with the router.
+     *
+     * @param  string  $uri
+     * @param  array|string|callable  $action
+     * @return \Illuminate\Routing\Route
+     */
+    public function get($uri, $action);
+
+    /**
+     * Register a new POST route with the router.
+     *
+     * @param  string  $uri
+     * @param  array|string|callable  $action
+     * @return \Illuminate\Routing\Route
+     */
+    public function post($uri, $action);
+
+    /**
+     * Register a new PUT route with the router.
+     *
+     * @param  string  $uri
+     * @param  array|string|callable  $action
+     * @return \Illuminate\Routing\Route
+     */
+    public function put($uri, $action);
+
+    /**
+     * Register a new DELETE route with the router.
+     *
+     * @param  string  $uri
+     * @param  array|string|callable  $action
+     * @return \Illuminate\Routing\Route
+     */
+    public function delete($uri, $action);
+
+    /**
+     * Register a new PATCH route with the router.
+     *
+     * @param  string  $uri
+     * @param  array|string|callable  $action
+     * @return \Illuminate\Routing\Route
+     */
+    public function patch($uri, $action);
+
+    /**
+     * Register a new OPTIONS route with the router.
+     *
+     * @param  string  $uri
+     * @param  array|string|callable  $action
+     * @return \Illuminate\Routing\Route
+     */
+    public function options($uri, $action);
+
+    /**
+     * Register a new route with the given verbs.
+     *
+     * @param  array|string  $methods
+     * @param  string  $uri
+     * @param  array|string|callable  $action
+     * @return \Illuminate\Routing\Route
+     */
+    public function match($methods, $uri, $action);
+
+    /**
+     * Route a resource to a controller.
+     *
+     * @param  string  $name
+     * @param  string  $controller
+     * @param  array  $options
+     * @return \Illuminate\Routing\PendingResourceRegistration
+     */
+    public function resource($name, $controller, array $options = []);
+
+    /**
+     * Create a route group with shared attributes.
+     *
+     * @param  array  $attributes
+     * @param  \Closure|string  $routes
+     * @return void
+     */
+    public function group(array $attributes, $routes);
+
+    /**
+     * Substitute the route bindings onto the route.
+     *
+     * @param  \Illuminate\Routing\Route  $route
+     * @return \Illuminate\Routing\Route
+     */
+    public function substituteBindings($route);
+
+    /**
+     * Substitute the implicit Eloquent model bindings for the route.
+     *
+     * @param  \Illuminate\Routing\Route  $route
+     * @return void
+     */
+    public function substituteImplicitBindings($route);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Routing/ResponseFactory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Routing/ResponseFactory.php
new file mode 100644
index 0000000..2cd928d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Routing/ResponseFactory.php
@@ -0,0 +1,155 @@
+<?php
+
+namespace Illuminate\Contracts\Routing;
+
+interface ResponseFactory
+{
+    /**
+     * Create a new response instance.
+     *
+     * @param  string  $content
+     * @param  int  $status
+     * @param  array  $headers
+     * @return \Illuminate\Http\Response
+     */
+    public function make($content = '', $status = 200, array $headers = []);
+
+    /**
+     * Create a new "no content" response.
+     *
+     * @param  int  $status
+     * @param  array  $headers
+     * @return \Illuminate\Http\Response
+     */
+    public function noContent($status = 204, array $headers = []);
+
+    /**
+     * Create a new response for a given view.
+     *
+     * @param  string|array  $view
+     * @param  array  $data
+     * @param  int  $status
+     * @param  array  $headers
+     * @return \Illuminate\Http\Response
+     */
+    public function view($view, $data = [], $status = 200, array $headers = []);
+
+    /**
+     * Create a new JSON response instance.
+     *
+     * @param  mixed  $data
+     * @param  int  $status
+     * @param  array  $headers
+     * @param  int  $options
+     * @return \Illuminate\Http\JsonResponse
+     */
+    public function json($data = [], $status = 200, array $headers = [], $options = 0);
+
+    /**
+     * Create a new JSONP response instance.
+     *
+     * @param  string  $callback
+     * @param  mixed  $data
+     * @param  int  $status
+     * @param  array  $headers
+     * @param  int  $options
+     * @return \Illuminate\Http\JsonResponse
+     */
+    public function jsonp($callback, $data = [], $status = 200, array $headers = [], $options = 0);
+
+    /**
+     * Create a new streamed response instance.
+     *
+     * @param  \Closure  $callback
+     * @param  int  $status
+     * @param  array  $headers
+     * @return \Symfony\Component\HttpFoundation\StreamedResponse
+     */
+    public function stream($callback, $status = 200, array $headers = []);
+
+    /**
+     * Create a new streamed response instance as a file download.
+     *
+     * @param  \Closure  $callback
+     * @param  string|null  $name
+     * @param  array  $headers
+     * @param  string|null  $disposition
+     * @return \Symfony\Component\HttpFoundation\StreamedResponse
+     */
+    public function streamDownload($callback, $name = null, array $headers = [], $disposition = 'attachment');
+
+    /**
+     * Create a new file download response.
+     *
+     * @param  \SplFileInfo|string  $file
+     * @param  string|null  $name
+     * @param  array  $headers
+     * @param  string|null  $disposition
+     * @return \Symfony\Component\HttpFoundation\BinaryFileResponse
+     */
+    public function download($file, $name = null, array $headers = [], $disposition = 'attachment');
+
+    /**
+     * Return the raw contents of a binary file.
+     *
+     * @param  \SplFileInfo|string  $file
+     * @param  array  $headers
+     * @return \Symfony\Component\HttpFoundation\BinaryFileResponse
+     */
+    public function file($file, array $headers = []);
+
+    /**
+     * Create a new redirect response to the given path.
+     *
+     * @param  string  $path
+     * @param  int  $status
+     * @param  array  $headers
+     * @param  bool|null  $secure
+     * @return \Illuminate\Http\RedirectResponse
+     */
+    public function redirectTo($path, $status = 302, $headers = [], $secure = null);
+
+    /**
+     * Create a new redirect response to a named route.
+     *
+     * @param  string  $route
+     * @param  mixed  $parameters
+     * @param  int  $status
+     * @param  array  $headers
+     * @return \Illuminate\Http\RedirectResponse
+     */
+    public function redirectToRoute($route, $parameters = [], $status = 302, $headers = []);
+
+    /**
+     * Create a new redirect response to a controller action.
+     *
+     * @param  string  $action
+     * @param  mixed  $parameters
+     * @param  int  $status
+     * @param  array  $headers
+     * @return \Illuminate\Http\RedirectResponse
+     */
+    public function redirectToAction($action, $parameters = [], $status = 302, $headers = []);
+
+    /**
+     * Create a new redirect response, while putting the current URL in the session.
+     *
+     * @param  string  $path
+     * @param  int  $status
+     * @param  array  $headers
+     * @param  bool|null  $secure
+     * @return \Illuminate\Http\RedirectResponse
+     */
+    public function redirectGuest($path, $status = 302, $headers = [], $secure = null);
+
+    /**
+     * Create a new redirect response to the previously intended location.
+     *
+     * @param  string  $default
+     * @param  int  $status
+     * @param  array  $headers
+     * @param  bool|null  $secure
+     * @return \Illuminate\Http\RedirectResponse
+     */
+    public function redirectToIntended($default = '/', $status = 302, $headers = [], $secure = null);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Routing/UrlGenerator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Routing/UrlGenerator.php
new file mode 100644
index 0000000..e576dda
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Routing/UrlGenerator.php
@@ -0,0 +1,79 @@
+<?php
+
+namespace Illuminate\Contracts\Routing;
+
+interface UrlGenerator
+{
+    /**
+     * Get the current URL for the request.
+     *
+     * @return string
+     */
+    public function current();
+
+    /**
+     * Get the URL for the previous request.
+     *
+     * @param  mixed  $fallback
+     * @return string
+     */
+    public function previous($fallback = false);
+
+    /**
+     * Generate an absolute URL to the given path.
+     *
+     * @param  string  $path
+     * @param  mixed  $extra
+     * @param  bool|null  $secure
+     * @return string
+     */
+    public function to($path, $extra = [], $secure = null);
+
+    /**
+     * Generate a secure, absolute URL to the given path.
+     *
+     * @param  string  $path
+     * @param  array  $parameters
+     * @return string
+     */
+    public function secure($path, $parameters = []);
+
+    /**
+     * Generate the URL to an application asset.
+     *
+     * @param  string  $path
+     * @param  bool|null  $secure
+     * @return string
+     */
+    public function asset($path, $secure = null);
+
+    /**
+     * Get the URL to a named route.
+     *
+     * @param  string  $name
+     * @param  mixed  $parameters
+     * @param  bool  $absolute
+     * @return string
+     *
+     * @throws \InvalidArgumentException
+     */
+    public function route($name, $parameters = [], $absolute = true);
+
+    /**
+     * Get the URL to a controller action.
+     *
+     * @param  string|array  $action
+     * @param  mixed  $parameters
+     * @param  bool  $absolute
+     * @return string
+     */
+    public function action($action, $parameters = [], $absolute = true);
+
+    /**
+     * Set the root controller namespace.
+     *
+     * @param  string  $rootNamespace
+     * @return $this
+     */
+    public function setRootControllerNamespace($rootNamespace);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Routing/UrlRoutable.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Routing/UrlRoutable.php
new file mode 100644
index 0000000..48c3d72
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Routing/UrlRoutable.php
@@ -0,0 +1,39 @@
+<?php
+
+namespace Illuminate\Contracts\Routing;
+
+interface UrlRoutable
+{
+    /**
+     * Get the value of the model's route key.
+     *
+     * @return mixed
+     */
+    public function getRouteKey();
+
+    /**
+     * Get the route key for the model.
+     *
+     * @return string
+     */
+    public function getRouteKeyName();
+
+    /**
+     * Retrieve the model for a bound value.
+     *
+     * @param  mixed  $value
+     * @param  string|null  $field
+     * @return \Illuminate\Database\Eloquent\Model|null
+     */
+    public function resolveRouteBinding($value, $field = null);
+
+    /**
+     * Retrieve the child model for a bound value.
+     *
+     * @param  string  $childType
+     * @param  mixed  $value
+     * @param  string|null  $field
+     * @return \Illuminate\Database\Eloquent\Model|null
+     */
+    public function resolveChildRouteBinding($childType, $value, $field);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Session/Session.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Session/Session.php
new file mode 100644
index 0000000..1bf025a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Session/Session.php
@@ -0,0 +1,204 @@
+<?php
+
+namespace Illuminate\Contracts\Session;
+
+interface Session
+{
+    /**
+     * Get the name of the session.
+     *
+     * @return string
+     */
+    public function getName();
+
+    /**
+     * Set the name of the session.
+     *
+     * @param  string  $name
+     * @return void
+     */
+    public function setName($name);
+
+    /**
+     * Get the current session ID.
+     *
+     * @return string
+     */
+    public function getId();
+
+    /**
+     * Set the session ID.
+     *
+     * @param  string  $id
+     * @return void
+     */
+    public function setId($id);
+
+    /**
+     * Start the session, reading the data from a handler.
+     *
+     * @return bool
+     */
+    public function start();
+
+    /**
+     * Save the session data to storage.
+     *
+     * @return void
+     */
+    public function save();
+
+    /**
+     * Get all of the session data.
+     *
+     * @return array
+     */
+    public function all();
+
+    /**
+     * Checks if a key exists.
+     *
+     * @param  string|array  $key
+     * @return bool
+     */
+    public function exists($key);
+
+    /**
+     * Checks if a key is present and not null.
+     *
+     * @param  string|array  $key
+     * @return bool
+     */
+    public function has($key);
+
+    /**
+     * Get an item from the session.
+     *
+     * @param  string  $key
+     * @param  mixed  $default
+     * @return mixed
+     */
+    public function get($key, $default = null);
+
+    /**
+     * Get the value of a given key and then forget it.
+     *
+     * @param  string  $key
+     * @param  mixed  $default
+     * @return mixed
+     */
+    public function pull($key, $default = null);
+
+    /**
+     * Put a key / value pair or array of key / value pairs in the session.
+     *
+     * @param  string|array  $key
+     * @param  mixed  $value
+     * @return void
+     */
+    public function put($key, $value = null);
+
+    /**
+     * Get the CSRF token value.
+     *
+     * @return string
+     */
+    public function token();
+
+    /**
+     * Regenerate the CSRF token value.
+     *
+     * @return void
+     */
+    public function regenerateToken();
+
+    /**
+     * Remove an item from the session, returning its value.
+     *
+     * @param  string  $key
+     * @return mixed
+     */
+    public function remove($key);
+
+    /**
+     * Remove one or many items from the session.
+     *
+     * @param  string|array  $keys
+     * @return void
+     */
+    public function forget($keys);
+
+    /**
+     * Remove all of the items from the session.
+     *
+     * @return void
+     */
+    public function flush();
+
+    /**
+     * Flush the session data and regenerate the ID.
+     *
+     * @return bool
+     */
+    public function invalidate();
+
+    /**
+     * Generate a new session identifier.
+     *
+     * @param  bool  $destroy
+     * @return bool
+     */
+    public function regenerate($destroy = false);
+
+    /**
+     * Generate a new session ID for the session.
+     *
+     * @param  bool  $destroy
+     * @return bool
+     */
+    public function migrate($destroy = false);
+
+    /**
+     * Determine if the session has been started.
+     *
+     * @return bool
+     */
+    public function isStarted();
+
+    /**
+     * Get the previous URL from the session.
+     *
+     * @return string|null
+     */
+    public function previousUrl();
+
+    /**
+     * Set the "previous" URL in the session.
+     *
+     * @param  string  $url
+     * @return void
+     */
+    public function setPreviousUrl($url);
+
+    /**
+     * Get the session handler instance.
+     *
+     * @return \SessionHandlerInterface
+     */
+    public function getHandler();
+
+    /**
+     * Determine if the session handler needs a request.
+     *
+     * @return bool
+     */
+    public function handlerNeedsRequest();
+
+    /**
+     * Set the request on the handler instance.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return void
+     */
+    public function setRequestOnHandler($request);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/Arrayable.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/Arrayable.php
new file mode 100755
index 0000000..5ad93b7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/Arrayable.php
@@ -0,0 +1,13 @@
+<?php
+
+namespace Illuminate\Contracts\Support;
+
+interface Arrayable
+{
+    /**
+     * Get the instance as an array.
+     *
+     * @return array
+     */
+    public function toArray();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/DeferrableProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/DeferrableProvider.php
new file mode 100644
index 0000000..cfecf8b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/DeferrableProvider.php
@@ -0,0 +1,13 @@
+<?php
+
+namespace Illuminate\Contracts\Support;
+
+interface DeferrableProvider
+{
+    /**
+     * Get the services provided by the provider.
+     *
+     * @return array
+     */
+    public function provides();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/DeferringDisplayableValue.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/DeferringDisplayableValue.php
new file mode 100644
index 0000000..ac21d7e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/DeferringDisplayableValue.php
@@ -0,0 +1,13 @@
+<?php
+
+namespace Illuminate\Contracts\Support;
+
+interface DeferringDisplayableValue
+{
+    /**
+     * Resolve the displayable value that the class is deferring.
+     *
+     * @return \Illuminate\Contracts\Support\Htmlable|string
+     */
+    public function resolveDisplayableValue();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/Htmlable.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/Htmlable.php
new file mode 100644
index 0000000..32f643a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/Htmlable.php
@@ -0,0 +1,13 @@
+<?php
+
+namespace Illuminate\Contracts\Support;
+
+interface Htmlable
+{
+    /**
+     * Get content as a string of HTML.
+     *
+     * @return string
+     */
+    public function toHtml();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/Jsonable.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/Jsonable.php
new file mode 100755
index 0000000..f5641c3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/Jsonable.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace Illuminate\Contracts\Support;
+
+interface Jsonable
+{
+    /**
+     * Convert the object to its JSON representation.
+     *
+     * @param  int  $options
+     * @return string
+     */
+    public function toJson($options = 0);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/MessageBag.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/MessageBag.php
new file mode 100644
index 0000000..7f708ac
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/MessageBag.php
@@ -0,0 +1,102 @@
+<?php
+
+namespace Illuminate\Contracts\Support;
+
+use Countable;
+
+interface MessageBag extends Arrayable, Countable
+{
+    /**
+     * Get the keys present in the message bag.
+     *
+     * @return array
+     */
+    public function keys();
+
+    /**
+     * Add a message to the bag.
+     *
+     * @param  string  $key
+     * @param  string  $message
+     * @return $this
+     */
+    public function add($key, $message);
+
+    /**
+     * Merge a new array of messages into the bag.
+     *
+     * @param  \Illuminate\Contracts\Support\MessageProvider|array  $messages
+     * @return $this
+     */
+    public function merge($messages);
+
+    /**
+     * Determine if messages exist for a given key.
+     *
+     * @param  string|array  $key
+     * @return bool
+     */
+    public function has($key);
+
+    /**
+     * Get the first message from the bag for a given key.
+     *
+     * @param  string|null  $key
+     * @param  string|null  $format
+     * @return string
+     */
+    public function first($key = null, $format = null);
+
+    /**
+     * Get all of the messages from the bag for a given key.
+     *
+     * @param  string  $key
+     * @param  string|null  $format
+     * @return array
+     */
+    public function get($key, $format = null);
+
+    /**
+     * Get all of the messages for every key in the bag.
+     *
+     * @param  string|null  $format
+     * @return array
+     */
+    public function all($format = null);
+
+    /**
+     * Get the raw messages in the container.
+     *
+     * @return array
+     */
+    public function getMessages();
+
+    /**
+     * Get the default message format.
+     *
+     * @return string
+     */
+    public function getFormat();
+
+    /**
+     * Set the default message format.
+     *
+     * @param  string  $format
+     * @return $this
+     */
+    public function setFormat($format = ':message');
+
+    /**
+     * Determine if the message bag has any messages.
+     *
+     * @return bool
+     */
+    public function isEmpty();
+
+    /**
+     * Determine if the message bag has any messages.
+     *
+     * @return bool
+     */
+    public function isNotEmpty();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/MessageProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/MessageProvider.php
new file mode 100755
index 0000000..f15ce73
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/MessageProvider.php
@@ -0,0 +1,13 @@
+<?php
+
+namespace Illuminate\Contracts\Support;
+
+interface MessageProvider
+{
+    /**
+     * Get the messages for the instance.
+     *
+     * @return \Illuminate\Contracts\Support\MessageBag
+     */
+    public function getMessageBag();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/Renderable.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/Renderable.php
new file mode 100755
index 0000000..25c181e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/Renderable.php
@@ -0,0 +1,13 @@
+<?php
+
+namespace Illuminate\Contracts\Support;
+
+interface Renderable
+{
+    /**
+     * Get the evaluated contents of the object.
+     *
+     * @return string
+     */
+    public function render();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/Responsable.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/Responsable.php
new file mode 100644
index 0000000..1738ec0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Support/Responsable.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace Illuminate\Contracts\Support;
+
+interface Responsable
+{
+    /**
+     * Create an HTTP response that represents the object.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return \Symfony\Component\HttpFoundation\Response
+     */
+    public function toResponse($request);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Translation/HasLocalePreference.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Translation/HasLocalePreference.php
new file mode 100644
index 0000000..1b1f16d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Translation/HasLocalePreference.php
@@ -0,0 +1,13 @@
+<?php
+
+namespace Illuminate\Contracts\Translation;
+
+interface HasLocalePreference
+{
+    /**
+     * Get the preferred locale of the entity.
+     *
+     * @return string|null
+     */
+    public function preferredLocale();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Translation/Loader.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Translation/Loader.php
new file mode 100755
index 0000000..b08418d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Translation/Loader.php
@@ -0,0 +1,40 @@
+<?php
+
+namespace Illuminate\Contracts\Translation;
+
+interface Loader
+{
+    /**
+     * Load the messages for the given locale.
+     *
+     * @param  string  $locale
+     * @param  string  $group
+     * @param  string|null  $namespace
+     * @return array
+     */
+    public function load($locale, $group, $namespace = null);
+
+    /**
+     * Add a new namespace to the loader.
+     *
+     * @param  string  $namespace
+     * @param  string  $hint
+     * @return void
+     */
+    public function addNamespace($namespace, $hint);
+
+    /**
+     * Add a new JSON path to the loader.
+     *
+     * @param  string  $path
+     * @return void
+     */
+    public function addJsonPath($path);
+
+    /**
+     * Get an array of all the registered namespaces.
+     *
+     * @return array
+     */
+    public function namespaces();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Translation/Translator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Translation/Translator.php
new file mode 100644
index 0000000..6eae491
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Translation/Translator.php
@@ -0,0 +1,42 @@
+<?php
+
+namespace Illuminate\Contracts\Translation;
+
+interface Translator
+{
+    /**
+     * Get the translation for a given key.
+     *
+     * @param  string  $key
+     * @param  array  $replace
+     * @param  string|null  $locale
+     * @return mixed
+     */
+    public function get($key, array $replace = [], $locale = null);
+
+    /**
+     * Get a translation according to an integer value.
+     *
+     * @param  string  $key
+     * @param  \Countable|int|array  $number
+     * @param  array  $replace
+     * @param  string|null  $locale
+     * @return string
+     */
+    public function choice($key, $number, array $replace = [], $locale = null);
+
+    /**
+     * Get the default locale being used.
+     *
+     * @return string
+     */
+    public function getLocale();
+
+    /**
+     * Set the default locale.
+     *
+     * @param  string  $locale
+     * @return void
+     */
+    public function setLocale($locale);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/DataAwareRule.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/DataAwareRule.php
new file mode 100644
index 0000000..7ec7ab5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/DataAwareRule.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace Illuminate\Contracts\Validation;
+
+interface DataAwareRule
+{
+    /**
+     * Set the data under validation.
+     *
+     * @param  array  $data
+     * @return $this
+     */
+    public function setData($data);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/Factory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/Factory.php
new file mode 100644
index 0000000..104675a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/Factory.php
@@ -0,0 +1,46 @@
+<?php
+
+namespace Illuminate\Contracts\Validation;
+
+interface Factory
+{
+    /**
+     * Create a new Validator instance.
+     *
+     * @param  array  $data
+     * @param  array  $rules
+     * @param  array  $messages
+     * @param  array  $customAttributes
+     * @return \Illuminate\Contracts\Validation\Validator
+     */
+    public function make(array $data, array $rules, array $messages = [], array $customAttributes = []);
+
+    /**
+     * Register a custom validator extension.
+     *
+     * @param  string  $rule
+     * @param  \Closure|string  $extension
+     * @param  string|null  $message
+     * @return void
+     */
+    public function extend($rule, $extension, $message = null);
+
+    /**
+     * Register a custom implicit validator extension.
+     *
+     * @param  string  $rule
+     * @param  \Closure|string  $extension
+     * @param  string|null  $message
+     * @return void
+     */
+    public function extendImplicit($rule, $extension, $message = null);
+
+    /**
+     * Register a custom implicit validator message replacer.
+     *
+     * @param  string  $rule
+     * @param  \Closure|string  $replacer
+     * @return void
+     */
+    public function replacer($rule, $replacer);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/ImplicitRule.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/ImplicitRule.php
new file mode 100644
index 0000000..bbc64f4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/ImplicitRule.php
@@ -0,0 +1,8 @@
+<?php
+
+namespace Illuminate\Contracts\Validation;
+
+interface ImplicitRule extends Rule
+{
+    //
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/Rule.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/Rule.php
new file mode 100644
index 0000000..cc03777
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/Rule.php
@@ -0,0 +1,22 @@
+<?php
+
+namespace Illuminate\Contracts\Validation;
+
+interface Rule
+{
+    /**
+     * Determine if the validation rule passes.
+     *
+     * @param  string  $attribute
+     * @param  mixed  $value
+     * @return bool
+     */
+    public function passes($attribute, $value);
+
+    /**
+     * Get the validation error message.
+     *
+     * @return string|array
+     */
+    public function message();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/UncompromisedVerifier.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/UncompromisedVerifier.php
new file mode 100644
index 0000000..d4bd597
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/UncompromisedVerifier.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace Illuminate\Contracts\Validation;
+
+interface UncompromisedVerifier
+{
+    /**
+     * Verify that the given data has not been compromised in data leaks.
+     *
+     * @param  array  $data
+     * @return bool
+     */
+    public function verify($data);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/ValidatesWhenResolved.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/ValidatesWhenResolved.php
new file mode 100644
index 0000000..4e6b757
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/ValidatesWhenResolved.php
@@ -0,0 +1,13 @@
+<?php
+
+namespace Illuminate\Contracts\Validation;
+
+interface ValidatesWhenResolved
+{
+    /**
+     * Validate the given class instance.
+     *
+     * @return void
+     */
+    public function validateResolved();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/Validator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/Validator.php
new file mode 100644
index 0000000..f68498d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/Validator.php
@@ -0,0 +1,65 @@
+<?php
+
+namespace Illuminate\Contracts\Validation;
+
+use Illuminate\Contracts\Support\MessageProvider;
+
+interface Validator extends MessageProvider
+{
+    /**
+     * Run the validator's rules against its data.
+     *
+     * @return array
+     *
+     * @throws \Illuminate\Validation\ValidationException
+     */
+    public function validate();
+
+    /**
+     * Get the attributes and values that were validated.
+     *
+     * @return array
+     *
+     * @throws \Illuminate\Validation\ValidationException
+     */
+    public function validated();
+
+    /**
+     * Determine if the data fails the validation rules.
+     *
+     * @return bool
+     */
+    public function fails();
+
+    /**
+     * Get the failed validation rules.
+     *
+     * @return array
+     */
+    public function failed();
+
+    /**
+     * Add conditions to a given field based on a Closure.
+     *
+     * @param  string|array  $attribute
+     * @param  string|array  $rules
+     * @param  callable  $callback
+     * @return $this
+     */
+    public function sometimes($attribute, $rules, callable $callback);
+
+    /**
+     * Add an after validation callback.
+     *
+     * @param  callable|string  $callback
+     * @return $this
+     */
+    public function after($callback);
+
+    /**
+     * Get all of the validation error messages.
+     *
+     * @return \Illuminate\Support\MessageBag
+     */
+    public function errors();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/ValidatorAwareRule.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/ValidatorAwareRule.php
new file mode 100644
index 0000000..053f4fa
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/Validation/ValidatorAwareRule.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace Illuminate\Contracts\Validation;
+
+interface ValidatorAwareRule
+{
+    /**
+     * Set the current validator.
+     *
+     * @param  \Illuminate\Validation\Validator  $validator
+     * @return $this
+     */
+    public function setValidator($validator);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/View/Engine.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/View/Engine.php
new file mode 100755
index 0000000..be4795d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/View/Engine.php
@@ -0,0 +1,15 @@
+<?php
+
+namespace Illuminate\Contracts\View;
+
+interface Engine
+{
+    /**
+     * Get the evaluated contents of the view.
+     *
+     * @param  string  $path
+     * @param  array  $data
+     * @return string
+     */
+    public function get($path, array $data = []);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/View/Factory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/View/Factory.php
new file mode 100644
index 0000000..562ee79
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/View/Factory.php
@@ -0,0 +1,79 @@
+<?php
+
+namespace Illuminate\Contracts\View;
+
+interface Factory
+{
+    /**
+     * Determine if a given view exists.
+     *
+     * @param  string  $view
+     * @return bool
+     */
+    public function exists($view);
+
+    /**
+     * Get the evaluated view contents for the given path.
+     *
+     * @param  string  $path
+     * @param  \Illuminate\Contracts\Support\Arrayable|array  $data
+     * @param  array  $mergeData
+     * @return \Illuminate\Contracts\View\View
+     */
+    public function file($path, $data = [], $mergeData = []);
+
+    /**
+     * Get the evaluated view contents for the given view.
+     *
+     * @param  string  $view
+     * @param  \Illuminate\Contracts\Support\Arrayable|array  $data
+     * @param  array  $mergeData
+     * @return \Illuminate\Contracts\View\View
+     */
+    public function make($view, $data = [], $mergeData = []);
+
+    /**
+     * Add a piece of shared data to the environment.
+     *
+     * @param  array|string  $key
+     * @param  mixed  $value
+     * @return mixed
+     */
+    public function share($key, $value = null);
+
+    /**
+     * Register a view composer event.
+     *
+     * @param  array|string  $views
+     * @param  \Closure|string  $callback
+     * @return array
+     */
+    public function composer($views, $callback);
+
+    /**
+     * Register a view creator event.
+     *
+     * @param  array|string  $views
+     * @param  \Closure|string  $callback
+     * @return array
+     */
+    public function creator($views, $callback);
+
+    /**
+     * Add a new namespace to the loader.
+     *
+     * @param  string  $namespace
+     * @param  string|array  $hints
+     * @return $this
+     */
+    public function addNamespace($namespace, $hints);
+
+    /**
+     * Replace the namespace hints for the given namespace.
+     *
+     * @param  string  $namespace
+     * @param  string|array  $hints
+     * @return $this
+     */
+    public function replaceNamespace($namespace, $hints);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/View/View.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/View/View.php
new file mode 100644
index 0000000..4b0b7f9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/View/View.php
@@ -0,0 +1,31 @@
+<?php
+
+namespace Illuminate\Contracts\View;
+
+use Illuminate\Contracts\Support\Renderable;
+
+interface View extends Renderable
+{
+    /**
+     * Get the name of the view.
+     *
+     * @return string
+     */
+    public function name();
+
+    /**
+     * Add a piece of data to the view.
+     *
+     * @param  string|array  $key
+     * @param  mixed  $value
+     * @return $this
+     */
+    public function with($key, $value = null);
+
+    /**
+     * Get the array of view data.
+     *
+     * @return array
+     */
+    public function getData();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/composer.json b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/composer.json
new file mode 100644
index 0000000..c9b4667
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/illuminate/contracts/composer.json
@@ -0,0 +1,35 @@
+{
+    "name": "illuminate/contracts",
+    "description": "The Illuminate Contracts package.",
+    "license": "MIT",
+    "homepage": "https://laravel.com",
+    "support": {
+        "issues": "https://github.com/laravel/framework/issues",
+        "source": "https://github.com/laravel/framework"
+    },
+    "authors": [
+        {
+            "name": "Taylor Otwell",
+            "email": "taylor@laravel.com"
+        }
+    ],
+    "require": {
+        "php": "^7.3|^8.0",
+        "psr/container": "^1.0",
+        "psr/simple-cache": "^1.0"
+    },
+    "autoload": {
+        "psr-4": {
+            "Illuminate\\Contracts\\": ""
+        }
+    },
+    "extra": {
+        "branch-alias": {
+            "dev-master": "8.x-dev"
+        }
+    },
+    "config": {
+        "sort-packages": true
+    },
+    "minimum-stability": "dev"
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/matthiasmullie/minify/Dockerfile b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/matthiasmullie/minify/Dockerfile
index fc36a81..5917e05 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/matthiasmullie/minify/Dockerfile
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/matthiasmullie/minify/Dockerfile
@@ -5,8 +5,8 @@
 WORKDIR /var/www
 
 RUN apt-get update
-RUN apt-get install -y zip unzip zlib1g-dev
-RUN if [[ `php-config --vernum` -ge 73000 ]]; then docker-php-ext-install zip; fi
+RUN apt-get install -y zip unzip libzip-dev git
+RUN docker-php-ext-install zip
 RUN docker-php-ext-install pcntl
 RUN curl -sS https://getcomposer.org/installer | php
 RUN mv composer.phar /usr/local/bin/composer
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/matthiasmullie/minify/composer.json b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/matthiasmullie/minify/composer.json
index 6d81b4f..a6dd4ab 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/matthiasmullie/minify/composer.json
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/matthiasmullie/minify/composer.json
@@ -19,8 +19,8 @@
         "matthiasmullie/path-converter": "~1.1"
     },
     "require-dev": {
-        "matthiasmullie/scrapbook": "~1.0",
-        "phpunit/phpunit": "~4.8",
+        "matthiasmullie/scrapbook": "dev-master",
+        "phpunit/phpunit": ">=4.8",
         "friendsofphp/php-cs-fixer": "~2.0"
     },
     "suggest": {
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/matthiasmullie/minify/src/CSS.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/matthiasmullie/minify/src/CSS.php
index ea8e8cd..eb98e52 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/matthiasmullie/minify/src/CSS.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/matthiasmullie/minify/src/CSS.php
@@ -685,7 +685,7 @@
     protected function extractMath()
     {
         $functions = array('calc', 'clamp', 'min', 'max');
-        $pattern = '/('. implode('|', $functions) .')(\(.+?)(?=$|;|})/m';
+        $pattern = '/\b('. implode('|', $functions) .')(\(.+?)(?=$|;|})/m';
 
         // PHP only supports $this inside anonymous functions since 5.4
         $minifier = $this;
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/matthiasmullie/minify/src/JS.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/matthiasmullie/minify/src/JS.php
index 92389cd..a0fa649 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/matthiasmullie/minify/src/JS.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/matthiasmullie/minify/src/JS.php
@@ -254,7 +254,7 @@
         // of the RegExp methods (a `\` followed by a variable or value is
         // likely part of a division, not a regex)
         $keywords = array('do', 'in', 'new', 'else', 'throw', 'yield', 'delete', 'return',  'typeof');
-        $before = '([=:,;\+\-\*\/\}\(\{\[&\|!]|^|'.implode('|', $keywords).')\s*';
+        $before = '(^|[=:,;\+\-\*\/\}\(\{\[&\|!]|'.implode('|', $keywords).')\s*';
         $propertiesAndMethods = array(
             // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#Properties_2
             'constructor',
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/matthiasmullie/minify/src/Minify.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/matthiasmullie/minify/src/Minify.php
index 3f40bc1..4d8dcf4 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/matthiasmullie/minify/src/Minify.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/matthiasmullie/minify/src/Minify.php
@@ -105,7 +105,7 @@
      * @param string|string[] $data
      *
      * @return static
-     * 
+     *
      * @throws IOException
      */
     public function addFile($data /* $data = null, ... */)
@@ -472,7 +472,7 @@
      */
     protected function openFileForWriting($path)
     {
-        if (($handler = @fopen($path, 'w')) === false) {
+        if ($path === '' || ($handler = @fopen($path, 'w')) === false) {
             throw new IOException('The file "'.$path.'" could not be opened for writing. Check if PHP has enough permissions.');
         }
 
@@ -490,7 +490,11 @@
      */
     protected function writeToFile($handler, $content, $path = '')
     {
-        if (($result = @fwrite($handler, $content)) === false || ($result < strlen($content))) {
+        if (
+            !is_resource($handler) ||
+            ($result = @fwrite($handler, $content)) === false ||
+            ($result < strlen($content))
+        ) {
             throw new IOException('The file "'.$path.'" could not be written to. Check your disk space and file permissions.');
         }
     }
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/LICENSE b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/LICENSE
new file mode 100644
index 0000000..6de45eb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/LICENSE
@@ -0,0 +1,19 @@
+Copyright (C) Brian Nesbitt
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/bin/carbon b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/bin/carbon
new file mode 100755
index 0000000..fdcbb5c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/bin/carbon
@@ -0,0 +1,21 @@
+#!/usr/bin/env php
+<?php
+
+$dir = __DIR__.'/..';
+
+if (!file_exists($dir.'/autoload.php')) {
+    $dir = __DIR__.'/../vendor';
+}
+
+if (!file_exists($dir.'/autoload.php')) {
+    $dir = __DIR__.'/../../..';
+}
+
+if (!file_exists($dir.'/autoload.php')) {
+    echo 'Autoload not found.';
+    exit(1);
+}
+
+require $dir.'/autoload.php';
+
+exit((new \Carbon\Cli\Invoker())(...$argv) ? 0 : 1);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/bin/carbon.bat b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/bin/carbon.bat
new file mode 100644
index 0000000..84599d3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/bin/carbon.bat
@@ -0,0 +1,4 @@
+@ECHO OFF
+setlocal DISABLEDELAYEDEXPANSION
+SET BIN_TARGET=%~dp0/carbon
+php "%BIN_TARGET%" %*
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/composer.json b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/composer.json
new file mode 100644
index 0000000..d0cadc9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/composer.json
@@ -0,0 +1,98 @@
+{
+    "name": "nesbot/carbon",
+    "type": "library",
+    "description": "An API extension for DateTime that supports 281 different languages.",
+    "keywords": [
+        "date",
+        "time",
+        "DateTime"
+    ],
+    "homepage": "https://carbon.nesbot.com",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Brian Nesbitt",
+            "email": "brian@nesbot.com",
+            "homepage": "https://markido.com"
+        },
+        {
+            "name": "kylekatarnls",
+            "homepage": "https://github.com/kylekatarnls"
+        }
+    ],
+    "require": {
+        "php": "^7.1.8 || ^8.0",
+        "ext-json": "*",
+        "symfony/polyfill-mbstring": "^1.0",
+        "symfony/polyfill-php80": "^1.16",
+        "symfony/translation": "^3.4 || ^4.0 || ^5.0"
+    },
+    "require-dev": {
+        "doctrine/orm": "^2.7",
+        "friendsofphp/php-cs-fixer": "^2.14 || ^3.0",
+        "kylekatarnls/multi-tester": "^2.0",
+        "phpmd/phpmd": "^2.9",
+        "phpstan/extension-installer": "^1.0",
+        "phpstan/phpstan": "^0.12.54",
+        "phpunit/phpunit": "^7.5.20 || ^8.5.14",
+        "squizlabs/php_codesniffer": "^3.4"
+    },
+    "config": {
+        "process-timeout": 0,
+        "sort-packages": true
+    },
+    "extra": {
+        "branch-alias": {
+            "dev-3.x": "3.x-dev",
+            "dev-master": "2.x-dev"
+        },
+        "laravel": {
+            "providers": [
+                "Carbon\\Laravel\\ServiceProvider"
+            ]
+        },
+        "phpstan": {
+            "includes": [
+                "extension.neon"
+            ]
+        }
+    },
+    "autoload": {
+        "psr-4": {
+            "Carbon\\": "src/Carbon/"
+        }
+    },
+    "autoload-dev": {
+        "psr-4": {
+            "Tests\\": "tests/"
+        },
+        "files": [
+            "tests/Laravel/ServiceProvider.php"
+        ]
+    },
+    "minimum-stability": "dev",
+    "prefer-stable": true,
+    "bin": [
+        "bin/carbon"
+    ],
+    "scripts": {
+        "phpcs": "php-cs-fixer fix -v --diff --dry-run",
+        "phpdoc": "php phpdoc.php",
+        "phpmd": "phpmd src text /phpmd.xml",
+        "phpstan": "phpstan analyse --configuration phpstan.neon",
+        "phpunit": "phpunit --verbose",
+        "style-check": [
+            "@phpcs",
+            "@phpstan",
+            "@phpmd"
+        ],
+        "test": [
+            "@phpunit",
+            "@style-check"
+        ]
+    },
+    "support": {
+        "issues": "https://github.com/briannesbitt/Carbon/issues",
+        "source": "https://github.com/briannesbitt/Carbon"
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/extension.neon b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/extension.neon
new file mode 100644
index 0000000..33bf794
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/extension.neon
@@ -0,0 +1,5 @@
+services:
+    -
+        class: Carbon\PHPStan\MacroExtension
+        tags:
+            - phpstan.broker.methodsClassReflectionExtension
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/readme.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/readme.md
new file mode 100644
index 0000000..70279c1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/readme.md
@@ -0,0 +1,146 @@
+# Carbon
+
+[![Latest Stable Version](https://img.shields.io/packagist/v/nesbot/carbon.svg?style=flat-square)](https://packagist.org/packages/nesbot/carbon)
+[![Total Downloads](https://img.shields.io/packagist/dt/nesbot/carbon.svg?style=flat-square)](https://packagist.org/packages/nesbot/carbon)
+[![GitHub Actions](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fbriannesbitt%2FCarbon%2Fbadge&style=flat-square&label=Build&logo=none)](https://actions-badge.atrox.dev/briannesbitt/Carbon/goto)
+[![StyleCI](https://github.styleci.io/repos/5724990/shield?style=flat-square)](https://github.styleci.io/repos/5724990)
+[![codecov.io](https://img.shields.io/codecov/c/github/briannesbitt/Carbon.svg?style=flat-square)](https://codecov.io/github/briannesbitt/Carbon?branch=master)
+[![PHPStan](https://img.shields.io/badge/PHPStan-enabled-44CC11.svg?longCache=true&style=flat-square)](https://github.com/phpstan/phpstan)
+[![Tidelift](https://tidelift.com/badges/github/briannesbitt/Carbon)](https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme)
+
+An international PHP extension for DateTime. [https://carbon.nesbot.com](https://carbon.nesbot.com)
+
+```php
+<?php
+
+use Carbon\Carbon;
+
+printf("Right now is %s", Carbon::now()->toDateTimeString());
+printf("Right now in Vancouver is %s", Carbon::now('America/Vancouver'));  //implicit __toString()
+$tomorrow = Carbon::now()->addDay();
+$lastWeek = Carbon::now()->subWeek();
+$nextSummerOlympics = Carbon::createFromDate(2016)->addYears(4);
+
+$officialDate = Carbon::now()->toRfc2822String();
+
+$howOldAmI = Carbon::createFromDate(1975, 5, 21)->age;
+
+$noonTodayLondonTime = Carbon::createFromTime(12, 0, 0, 'Europe/London');
+
+$internetWillBlowUpOn = Carbon::create(2038, 01, 19, 3, 14, 7, 'GMT');
+
+// Don't really want this to happen so mock now
+Carbon::setTestNow(Carbon::createFromDate(2000, 1, 1));
+
+// comparisons are always done in UTC
+if (Carbon::now()->gte($internetWillBlowUpOn)) {
+    die();
+}
+
+// Phew! Return to normal behaviour
+Carbon::setTestNow();
+
+if (Carbon::now()->isWeekend()) {
+    echo 'Party!';
+}
+// Over 200 languages (and over 500 regional variants) supported:
+echo Carbon::now()->subMinutes(2)->diffForHumans(); // '2 minutes ago'
+echo Carbon::now()->subMinutes(2)->locale('zh_CN')->diffForHumans(); // '2分钟前'
+echo Carbon::parse('2019-07-23 14:51')->isoFormat('LLLL'); // 'Tuesday, July 23, 2019 2:51 PM'
+echo Carbon::parse('2019-07-23 14:51')->locale('fr_FR')->isoFormat('LLLL'); // 'mardi 23 juillet 2019 14:51'
+
+// ... but also does 'from now', 'after' and 'before'
+// rolling up to seconds, minutes, hours, days, months, years
+
+$daysSinceEpoch = Carbon::createFromTimestamp(0)->diffInDays();
+```
+
+[Get supported nesbot/carbon with the Tidelift Subscription](https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme)
+
+## Installation
+
+### With Composer
+
+```
+$ composer require nesbot/carbon
+```
+
+```json
+{
+    "require": {
+        "nesbot/carbon": "^2.16"
+    }
+}
+```
+
+```php
+<?php
+require 'vendor/autoload.php';
+
+use Carbon\Carbon;
+
+printf("Now: %s", Carbon::now());
+```
+
+### Without Composer
+
+Why are you not using [composer](https://getcomposer.org/)? Download the Carbon [latest release](https://github.com/briannesbitt/Carbon/releases) and put the contents of the ZIP archive into a directory in your project. Then require the file `autoload.php` to get all classes and dependencies loaded on need.
+
+```php
+<?php
+require 'path-to-Carbon-directory/autoload.php';
+
+use Carbon\Carbon;
+
+printf("Now: %s", Carbon::now());
+```
+
+## Docs
+
+[https://carbon.nesbot.com/docs](https://carbon.nesbot.com/docs)
+
+## Security contact information
+
+To report a security vulnerability, please use the
+[Tidelift security contact](https://tidelift.com/security).
+Tidelift will coordinate the fix and disclosure.
+
+## Credits
+
+### Contributors
+
+This project exists thanks to all the people who contribute. 
+
+<a href="https://github.com/briannesbitt/Carbon/graphs/contributors" target="_blank"><img src="https://opencollective.com/Carbon/contributors.svg?width=890&button=false" /></a>
+
+### Translators
+
+[Thanks to people helping us to translate Carbon in so many languages](https://carbon.nesbot.com/contribute/translators/)
+
+### Sponsors
+
+Support this project by becoming a sponsor. Your logo will show up here with a link to your website.
+
+<a href="https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme" target="_blank"><img src="https://carbon.nesbot.com/tidelift-brand.png" width="256" height="64"></a>
+<a href="https://onlinecasinohex.ca/?utm_source=opencollective&amp;utm_medium=github&amp;utm_campaign=Carbon" target="_blank"><img src="https://images.opencollective.com/hexcasinoca/2da3af2/logo/256.png" width="85" height="64"></a>
+<a href="https://opencollective.com/Carbon/sponsor/0/website" target="_blank"><img src="https://opencollective.com/Carbon/sponsor/0/avatar.svg"></a>
+<a href="https://opencollective.com/Carbon/sponsor/1/website" target="_blank"><img src="https://opencollective.com/Carbon/sponsor/1/avatar.svg"></a>
+<a href="https://opencollective.com/Carbon/sponsor/2/website" target="_blank"><img src="https://opencollective.com/Carbon/sponsor/2/avatar.svg"></a>
+<a href="https://opencollective.com/Carbon/sponsor/3/website" target="_blank"><img src="https://opencollective.com/Carbon/sponsor/3/avatar.svg"></a>
+<a href="https://opencollective.com/Carbon/sponsor/4/website" target="_blank"><img src="https://opencollective.com/Carbon/sponsor/4/avatar.svg"></a>
+
+[[Become a sponsor](https://opencollective.com/Carbon#sponsor)]
+
+### Backers
+
+Thank you to all our backers! 🙏
+
+<a href="https://opencollective.com/Carbon#backers" target="_blank"><img src="https://opencollective.com/Carbon/backers.svg?width=890"></a>
+
+[[Become a backer](https://opencollective.com/Carbon#backer)]
+
+## Carbon for enterprise
+
+Available as part of the Tidelift Subscription.
+
+The maintainers of ``Carbon`` and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Carbon.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Carbon.php
new file mode 100644
index 0000000..3b68759
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Carbon.php
@@ -0,0 +1,523 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon;
+
+use Carbon\Traits\Date;
+use DateTime;
+use DateTimeInterface;
+use DateTimeZone;
+
+/**
+ * A simple API extension for DateTime.
+ *
+ * <autodoc generated by `composer phpdoc`>
+ *
+ * @property      int                 $year
+ * @property      int                 $yearIso
+ * @property      int                 $month
+ * @property      int                 $day
+ * @property      int                 $hour
+ * @property      int                 $minute
+ * @property      int                 $second
+ * @property      int                 $micro
+ * @property      int                 $microsecond
+ * @property      int|float|string    $timestamp                                                                           seconds since the Unix Epoch
+ * @property      string              $englishDayOfWeek                                                                    the day of week in English
+ * @property      string              $shortEnglishDayOfWeek                                                               the abbreviated day of week in English
+ * @property      string              $englishMonth                                                                        the month in English
+ * @property      string              $shortEnglishMonth                                                                   the abbreviated month in English
+ * @property      string              $localeDayOfWeek                                                                     the day of week in current locale LC_TIME
+ * @property      string              $shortLocaleDayOfWeek                                                                the abbreviated day of week in current locale LC_TIME
+ * @property      string              $localeMonth                                                                         the month in current locale LC_TIME
+ * @property      string              $shortLocaleMonth                                                                    the abbreviated month in current locale LC_TIME
+ * @property      int                 $milliseconds
+ * @property      int                 $millisecond
+ * @property      int                 $milli
+ * @property      int                 $week                                                                                1 through 53
+ * @property      int                 $isoWeek                                                                             1 through 53
+ * @property      int                 $weekYear                                                                            year according to week format
+ * @property      int                 $isoWeekYear                                                                         year according to ISO week format
+ * @property      int                 $dayOfYear                                                                           1 through 366
+ * @property      int                 $age                                                                                 does a diffInYears() with default parameters
+ * @property      int                 $offset                                                                              the timezone offset in seconds from UTC
+ * @property      int                 $offsetMinutes                                                                       the timezone offset in minutes from UTC
+ * @property      int                 $offsetHours                                                                         the timezone offset in hours from UTC
+ * @property      CarbonTimeZone      $timezone                                                                            the current timezone
+ * @property      CarbonTimeZone      $tz                                                                                  alias of $timezone
+ * @property-read int                 $dayOfWeek                                                                           0 (for Sunday) through 6 (for Saturday)
+ * @property-read int                 $dayOfWeekIso                                                                        1 (for Monday) through 7 (for Sunday)
+ * @property-read int                 $weekOfYear                                                                          ISO-8601 week number of year, weeks starting on Monday
+ * @property-read int                 $daysInMonth                                                                         number of days in the given month
+ * @property-read string              $latinMeridiem                                                                       "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark)
+ * @property-read string              $latinUpperMeridiem                                                                  "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark)
+ * @property-read string              $timezoneAbbreviatedName                                                             the current timezone abbreviated name
+ * @property-read string              $tzAbbrName                                                                          alias of $timezoneAbbreviatedName
+ * @property-read string              $dayName                                                                             long name of weekday translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string              $shortDayName                                                                        short name of weekday translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string              $minDayName                                                                          very short name of weekday translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string              $monthName                                                                           long name of month translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string              $shortMonthName                                                                      short name of month translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string              $meridiem                                                                            lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language
+ * @property-read string              $upperMeridiem                                                                       uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language
+ * @property-read int                 $noZeroHour                                                                          current hour from 1 to 24
+ * @property-read int                 $weeksInYear                                                                         51 through 53
+ * @property-read int                 $isoWeeksInYear                                                                      51 through 53
+ * @property-read int                 $weekOfMonth                                                                         1 through 5
+ * @property-read int                 $weekNumberInMonth                                                                   1 through 5
+ * @property-read int                 $firstWeekDay                                                                        0 through 6
+ * @property-read int                 $lastWeekDay                                                                         0 through 6
+ * @property-read int                 $daysInYear                                                                          365 or 366
+ * @property-read int                 $quarter                                                                             the quarter of this instance, 1 - 4
+ * @property-read int                 $decade                                                                              the decade of this instance
+ * @property-read int                 $century                                                                             the century of this instance
+ * @property-read int                 $millennium                                                                          the millennium of this instance
+ * @property-read bool                $dst                                                                                 daylight savings time indicator, true if DST, false otherwise
+ * @property-read bool                $local                                                                               checks if the timezone is local, true if local, false otherwise
+ * @property-read bool                $utc                                                                                 checks if the timezone is UTC, true if UTC, false otherwise
+ * @property-read string              $timezoneName                                                                        the current timezone name
+ * @property-read string              $tzName                                                                              alias of $timezoneName
+ * @property-read string              $locale                                                                              locale of the current instance
+ *
+ * @method        bool                isUtc()                                                                              Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.)
+ * @method        bool                isLocal()                                                                            Check if the current instance has non-UTC timezone.
+ * @method        bool                isValid()                                                                            Check if the current instance is a valid date.
+ * @method        bool                isDST()                                                                              Check if the current instance is in a daylight saving time.
+ * @method        bool                isSunday()                                                                           Checks if the instance day is sunday.
+ * @method        bool                isMonday()                                                                           Checks if the instance day is monday.
+ * @method        bool                isTuesday()                                                                          Checks if the instance day is tuesday.
+ * @method        bool                isWednesday()                                                                        Checks if the instance day is wednesday.
+ * @method        bool                isThursday()                                                                         Checks if the instance day is thursday.
+ * @method        bool                isFriday()                                                                           Checks if the instance day is friday.
+ * @method        bool                isSaturday()                                                                         Checks if the instance day is saturday.
+ * @method        bool                isSameYear(Carbon|DateTimeInterface|string|null $date = null)                        Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool                isCurrentYear()                                                                      Checks if the instance is in the same year as the current moment.
+ * @method        bool                isNextYear()                                                                         Checks if the instance is in the same year as the current moment next year.
+ * @method        bool                isLastYear()                                                                         Checks if the instance is in the same year as the current moment last year.
+ * @method        bool                isSameWeek(Carbon|DateTimeInterface|string|null $date = null)                        Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool                isCurrentWeek()                                                                      Checks if the instance is in the same week as the current moment.
+ * @method        bool                isNextWeek()                                                                         Checks if the instance is in the same week as the current moment next week.
+ * @method        bool                isLastWeek()                                                                         Checks if the instance is in the same week as the current moment last week.
+ * @method        bool                isSameDay(Carbon|DateTimeInterface|string|null $date = null)                         Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool                isCurrentDay()                                                                       Checks if the instance is in the same day as the current moment.
+ * @method        bool                isNextDay()                                                                          Checks if the instance is in the same day as the current moment next day.
+ * @method        bool                isLastDay()                                                                          Checks if the instance is in the same day as the current moment last day.
+ * @method        bool                isSameHour(Carbon|DateTimeInterface|string|null $date = null)                        Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool                isCurrentHour()                                                                      Checks if the instance is in the same hour as the current moment.
+ * @method        bool                isNextHour()                                                                         Checks if the instance is in the same hour as the current moment next hour.
+ * @method        bool                isLastHour()                                                                         Checks if the instance is in the same hour as the current moment last hour.
+ * @method        bool                isSameMinute(Carbon|DateTimeInterface|string|null $date = null)                      Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool                isCurrentMinute()                                                                    Checks if the instance is in the same minute as the current moment.
+ * @method        bool                isNextMinute()                                                                       Checks if the instance is in the same minute as the current moment next minute.
+ * @method        bool                isLastMinute()                                                                       Checks if the instance is in the same minute as the current moment last minute.
+ * @method        bool                isSameSecond(Carbon|DateTimeInterface|string|null $date = null)                      Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool                isCurrentSecond()                                                                    Checks if the instance is in the same second as the current moment.
+ * @method        bool                isNextSecond()                                                                       Checks if the instance is in the same second as the current moment next second.
+ * @method        bool                isLastSecond()                                                                       Checks if the instance is in the same second as the current moment last second.
+ * @method        bool                isSameMicro(Carbon|DateTimeInterface|string|null $date = null)                       Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool                isCurrentMicro()                                                                     Checks if the instance is in the same microsecond as the current moment.
+ * @method        bool                isNextMicro()                                                                        Checks if the instance is in the same microsecond as the current moment next microsecond.
+ * @method        bool                isLastMicro()                                                                        Checks if the instance is in the same microsecond as the current moment last microsecond.
+ * @method        bool                isSameMicrosecond(Carbon|DateTimeInterface|string|null $date = null)                 Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool                isCurrentMicrosecond()                                                               Checks if the instance is in the same microsecond as the current moment.
+ * @method        bool                isNextMicrosecond()                                                                  Checks if the instance is in the same microsecond as the current moment next microsecond.
+ * @method        bool                isLastMicrosecond()                                                                  Checks if the instance is in the same microsecond as the current moment last microsecond.
+ * @method        bool                isCurrentMonth()                                                                     Checks if the instance is in the same month as the current moment.
+ * @method        bool                isNextMonth()                                                                        Checks if the instance is in the same month as the current moment next month.
+ * @method        bool                isLastMonth()                                                                        Checks if the instance is in the same month as the current moment last month.
+ * @method        bool                isCurrentQuarter()                                                                   Checks if the instance is in the same quarter as the current moment.
+ * @method        bool                isNextQuarter()                                                                      Checks if the instance is in the same quarter as the current moment next quarter.
+ * @method        bool                isLastQuarter()                                                                      Checks if the instance is in the same quarter as the current moment last quarter.
+ * @method        bool                isSameDecade(Carbon|DateTimeInterface|string|null $date = null)                      Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool                isCurrentDecade()                                                                    Checks if the instance is in the same decade as the current moment.
+ * @method        bool                isNextDecade()                                                                       Checks if the instance is in the same decade as the current moment next decade.
+ * @method        bool                isLastDecade()                                                                       Checks if the instance is in the same decade as the current moment last decade.
+ * @method        bool                isSameCentury(Carbon|DateTimeInterface|string|null $date = null)                     Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool                isCurrentCentury()                                                                   Checks if the instance is in the same century as the current moment.
+ * @method        bool                isNextCentury()                                                                      Checks if the instance is in the same century as the current moment next century.
+ * @method        bool                isLastCentury()                                                                      Checks if the instance is in the same century as the current moment last century.
+ * @method        bool                isSameMillennium(Carbon|DateTimeInterface|string|null $date = null)                  Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool                isCurrentMillennium()                                                                Checks if the instance is in the same millennium as the current moment.
+ * @method        bool                isNextMillennium()                                                                   Checks if the instance is in the same millennium as the current moment next millennium.
+ * @method        bool                isLastMillennium()                                                                   Checks if the instance is in the same millennium as the current moment last millennium.
+ * @method        $this               years(int $value)                                                                    Set current instance year to the given value.
+ * @method        $this               year(int $value)                                                                     Set current instance year to the given value.
+ * @method        $this               setYears(int $value)                                                                 Set current instance year to the given value.
+ * @method        $this               setYear(int $value)                                                                  Set current instance year to the given value.
+ * @method        $this               months(int $value)                                                                   Set current instance month to the given value.
+ * @method        $this               month(int $value)                                                                    Set current instance month to the given value.
+ * @method        $this               setMonths(int $value)                                                                Set current instance month to the given value.
+ * @method        $this               setMonth(int $value)                                                                 Set current instance month to the given value.
+ * @method        $this               days(int $value)                                                                     Set current instance day to the given value.
+ * @method        $this               day(int $value)                                                                      Set current instance day to the given value.
+ * @method        $this               setDays(int $value)                                                                  Set current instance day to the given value.
+ * @method        $this               setDay(int $value)                                                                   Set current instance day to the given value.
+ * @method        $this               hours(int $value)                                                                    Set current instance hour to the given value.
+ * @method        $this               hour(int $value)                                                                     Set current instance hour to the given value.
+ * @method        $this               setHours(int $value)                                                                 Set current instance hour to the given value.
+ * @method        $this               setHour(int $value)                                                                  Set current instance hour to the given value.
+ * @method        $this               minutes(int $value)                                                                  Set current instance minute to the given value.
+ * @method        $this               minute(int $value)                                                                   Set current instance minute to the given value.
+ * @method        $this               setMinutes(int $value)                                                               Set current instance minute to the given value.
+ * @method        $this               setMinute(int $value)                                                                Set current instance minute to the given value.
+ * @method        $this               seconds(int $value)                                                                  Set current instance second to the given value.
+ * @method        $this               second(int $value)                                                                   Set current instance second to the given value.
+ * @method        $this               setSeconds(int $value)                                                               Set current instance second to the given value.
+ * @method        $this               setSecond(int $value)                                                                Set current instance second to the given value.
+ * @method        $this               millis(int $value)                                                                   Set current instance millisecond to the given value.
+ * @method        $this               milli(int $value)                                                                    Set current instance millisecond to the given value.
+ * @method        $this               setMillis(int $value)                                                                Set current instance millisecond to the given value.
+ * @method        $this               setMilli(int $value)                                                                 Set current instance millisecond to the given value.
+ * @method        $this               milliseconds(int $value)                                                             Set current instance millisecond to the given value.
+ * @method        $this               millisecond(int $value)                                                              Set current instance millisecond to the given value.
+ * @method        $this               setMilliseconds(int $value)                                                          Set current instance millisecond to the given value.
+ * @method        $this               setMillisecond(int $value)                                                           Set current instance millisecond to the given value.
+ * @method        $this               micros(int $value)                                                                   Set current instance microsecond to the given value.
+ * @method        $this               micro(int $value)                                                                    Set current instance microsecond to the given value.
+ * @method        $this               setMicros(int $value)                                                                Set current instance microsecond to the given value.
+ * @method        $this               setMicro(int $value)                                                                 Set current instance microsecond to the given value.
+ * @method        $this               microseconds(int $value)                                                             Set current instance microsecond to the given value.
+ * @method        $this               microsecond(int $value)                                                              Set current instance microsecond to the given value.
+ * @method        $this               setMicroseconds(int $value)                                                          Set current instance microsecond to the given value.
+ * @method        $this               setMicrosecond(int $value)                                                           Set current instance microsecond to the given value.
+ * @method        $this               addYears(int $value = 1)                                                             Add years (the $value count passed in) to the instance (using date interval).
+ * @method        $this               addYear()                                                                            Add one year to the instance (using date interval).
+ * @method        $this               subYears(int $value = 1)                                                             Sub years (the $value count passed in) to the instance (using date interval).
+ * @method        $this               subYear()                                                                            Sub one year to the instance (using date interval).
+ * @method        $this               addYearsWithOverflow(int $value = 1)                                                 Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               addYearWithOverflow()                                                                Add one year to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               subYearsWithOverflow(int $value = 1)                                                 Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               subYearWithOverflow()                                                                Sub one year to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               addYearsWithoutOverflow(int $value = 1)                                              Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addYearWithoutOverflow()                                                             Add one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subYearsWithoutOverflow(int $value = 1)                                              Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subYearWithoutOverflow()                                                             Sub one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addYearsWithNoOverflow(int $value = 1)                                               Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addYearWithNoOverflow()                                                              Add one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subYearsWithNoOverflow(int $value = 1)                                               Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subYearWithNoOverflow()                                                              Sub one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addYearsNoOverflow(int $value = 1)                                                   Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addYearNoOverflow()                                                                  Add one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subYearsNoOverflow(int $value = 1)                                                   Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subYearNoOverflow()                                                                  Sub one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addMonths(int $value = 1)                                                            Add months (the $value count passed in) to the instance (using date interval).
+ * @method        $this               addMonth()                                                                           Add one month to the instance (using date interval).
+ * @method        $this               subMonths(int $value = 1)                                                            Sub months (the $value count passed in) to the instance (using date interval).
+ * @method        $this               subMonth()                                                                           Sub one month to the instance (using date interval).
+ * @method        $this               addMonthsWithOverflow(int $value = 1)                                                Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               addMonthWithOverflow()                                                               Add one month to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               subMonthsWithOverflow(int $value = 1)                                                Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               subMonthWithOverflow()                                                               Sub one month to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               addMonthsWithoutOverflow(int $value = 1)                                             Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addMonthWithoutOverflow()                                                            Add one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subMonthsWithoutOverflow(int $value = 1)                                             Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subMonthWithoutOverflow()                                                            Sub one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addMonthsWithNoOverflow(int $value = 1)                                              Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addMonthWithNoOverflow()                                                             Add one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subMonthsWithNoOverflow(int $value = 1)                                              Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subMonthWithNoOverflow()                                                             Sub one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addMonthsNoOverflow(int $value = 1)                                                  Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addMonthNoOverflow()                                                                 Add one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subMonthsNoOverflow(int $value = 1)                                                  Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subMonthNoOverflow()                                                                 Sub one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addDays(int $value = 1)                                                              Add days (the $value count passed in) to the instance (using date interval).
+ * @method        $this               addDay()                                                                             Add one day to the instance (using date interval).
+ * @method        $this               subDays(int $value = 1)                                                              Sub days (the $value count passed in) to the instance (using date interval).
+ * @method        $this               subDay()                                                                             Sub one day to the instance (using date interval).
+ * @method        $this               addHours(int $value = 1)                                                             Add hours (the $value count passed in) to the instance (using date interval).
+ * @method        $this               addHour()                                                                            Add one hour to the instance (using date interval).
+ * @method        $this               subHours(int $value = 1)                                                             Sub hours (the $value count passed in) to the instance (using date interval).
+ * @method        $this               subHour()                                                                            Sub one hour to the instance (using date interval).
+ * @method        $this               addMinutes(int $value = 1)                                                           Add minutes (the $value count passed in) to the instance (using date interval).
+ * @method        $this               addMinute()                                                                          Add one minute to the instance (using date interval).
+ * @method        $this               subMinutes(int $value = 1)                                                           Sub minutes (the $value count passed in) to the instance (using date interval).
+ * @method        $this               subMinute()                                                                          Sub one minute to the instance (using date interval).
+ * @method        $this               addSeconds(int $value = 1)                                                           Add seconds (the $value count passed in) to the instance (using date interval).
+ * @method        $this               addSecond()                                                                          Add one second to the instance (using date interval).
+ * @method        $this               subSeconds(int $value = 1)                                                           Sub seconds (the $value count passed in) to the instance (using date interval).
+ * @method        $this               subSecond()                                                                          Sub one second to the instance (using date interval).
+ * @method        $this               addMillis(int $value = 1)                                                            Add milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method        $this               addMilli()                                                                           Add one millisecond to the instance (using date interval).
+ * @method        $this               subMillis(int $value = 1)                                                            Sub milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method        $this               subMilli()                                                                           Sub one millisecond to the instance (using date interval).
+ * @method        $this               addMilliseconds(int $value = 1)                                                      Add milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method        $this               addMillisecond()                                                                     Add one millisecond to the instance (using date interval).
+ * @method        $this               subMilliseconds(int $value = 1)                                                      Sub milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method        $this               subMillisecond()                                                                     Sub one millisecond to the instance (using date interval).
+ * @method        $this               addMicros(int $value = 1)                                                            Add microseconds (the $value count passed in) to the instance (using date interval).
+ * @method        $this               addMicro()                                                                           Add one microsecond to the instance (using date interval).
+ * @method        $this               subMicros(int $value = 1)                                                            Sub microseconds (the $value count passed in) to the instance (using date interval).
+ * @method        $this               subMicro()                                                                           Sub one microsecond to the instance (using date interval).
+ * @method        $this               addMicroseconds(int $value = 1)                                                      Add microseconds (the $value count passed in) to the instance (using date interval).
+ * @method        $this               addMicrosecond()                                                                     Add one microsecond to the instance (using date interval).
+ * @method        $this               subMicroseconds(int $value = 1)                                                      Sub microseconds (the $value count passed in) to the instance (using date interval).
+ * @method        $this               subMicrosecond()                                                                     Sub one microsecond to the instance (using date interval).
+ * @method        $this               addMillennia(int $value = 1)                                                         Add millennia (the $value count passed in) to the instance (using date interval).
+ * @method        $this               addMillennium()                                                                      Add one millennium to the instance (using date interval).
+ * @method        $this               subMillennia(int $value = 1)                                                         Sub millennia (the $value count passed in) to the instance (using date interval).
+ * @method        $this               subMillennium()                                                                      Sub one millennium to the instance (using date interval).
+ * @method        $this               addMillenniaWithOverflow(int $value = 1)                                             Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               addMillenniumWithOverflow()                                                          Add one millennium to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               subMillenniaWithOverflow(int $value = 1)                                             Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               subMillenniumWithOverflow()                                                          Sub one millennium to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               addMillenniaWithoutOverflow(int $value = 1)                                          Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addMillenniumWithoutOverflow()                                                       Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subMillenniaWithoutOverflow(int $value = 1)                                          Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subMillenniumWithoutOverflow()                                                       Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addMillenniaWithNoOverflow(int $value = 1)                                           Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addMillenniumWithNoOverflow()                                                        Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subMillenniaWithNoOverflow(int $value = 1)                                           Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subMillenniumWithNoOverflow()                                                        Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addMillenniaNoOverflow(int $value = 1)                                               Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addMillenniumNoOverflow()                                                            Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subMillenniaNoOverflow(int $value = 1)                                               Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subMillenniumNoOverflow()                                                            Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addCenturies(int $value = 1)                                                         Add centuries (the $value count passed in) to the instance (using date interval).
+ * @method        $this               addCentury()                                                                         Add one century to the instance (using date interval).
+ * @method        $this               subCenturies(int $value = 1)                                                         Sub centuries (the $value count passed in) to the instance (using date interval).
+ * @method        $this               subCentury()                                                                         Sub one century to the instance (using date interval).
+ * @method        $this               addCenturiesWithOverflow(int $value = 1)                                             Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               addCenturyWithOverflow()                                                             Add one century to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               subCenturiesWithOverflow(int $value = 1)                                             Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               subCenturyWithOverflow()                                                             Sub one century to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               addCenturiesWithoutOverflow(int $value = 1)                                          Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addCenturyWithoutOverflow()                                                          Add one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subCenturiesWithoutOverflow(int $value = 1)                                          Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subCenturyWithoutOverflow()                                                          Sub one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addCenturiesWithNoOverflow(int $value = 1)                                           Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addCenturyWithNoOverflow()                                                           Add one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subCenturiesWithNoOverflow(int $value = 1)                                           Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subCenturyWithNoOverflow()                                                           Sub one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addCenturiesNoOverflow(int $value = 1)                                               Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addCenturyNoOverflow()                                                               Add one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subCenturiesNoOverflow(int $value = 1)                                               Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subCenturyNoOverflow()                                                               Sub one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addDecades(int $value = 1)                                                           Add decades (the $value count passed in) to the instance (using date interval).
+ * @method        $this               addDecade()                                                                          Add one decade to the instance (using date interval).
+ * @method        $this               subDecades(int $value = 1)                                                           Sub decades (the $value count passed in) to the instance (using date interval).
+ * @method        $this               subDecade()                                                                          Sub one decade to the instance (using date interval).
+ * @method        $this               addDecadesWithOverflow(int $value = 1)                                               Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               addDecadeWithOverflow()                                                              Add one decade to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               subDecadesWithOverflow(int $value = 1)                                               Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               subDecadeWithOverflow()                                                              Sub one decade to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               addDecadesWithoutOverflow(int $value = 1)                                            Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addDecadeWithoutOverflow()                                                           Add one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subDecadesWithoutOverflow(int $value = 1)                                            Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subDecadeWithoutOverflow()                                                           Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addDecadesWithNoOverflow(int $value = 1)                                             Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addDecadeWithNoOverflow()                                                            Add one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subDecadesWithNoOverflow(int $value = 1)                                             Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subDecadeWithNoOverflow()                                                            Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addDecadesNoOverflow(int $value = 1)                                                 Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addDecadeNoOverflow()                                                                Add one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subDecadesNoOverflow(int $value = 1)                                                 Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subDecadeNoOverflow()                                                                Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addQuarters(int $value = 1)                                                          Add quarters (the $value count passed in) to the instance (using date interval).
+ * @method        $this               addQuarter()                                                                         Add one quarter to the instance (using date interval).
+ * @method        $this               subQuarters(int $value = 1)                                                          Sub quarters (the $value count passed in) to the instance (using date interval).
+ * @method        $this               subQuarter()                                                                         Sub one quarter to the instance (using date interval).
+ * @method        $this               addQuartersWithOverflow(int $value = 1)                                              Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               addQuarterWithOverflow()                                                             Add one quarter to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               subQuartersWithOverflow(int $value = 1)                                              Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               subQuarterWithOverflow()                                                             Sub one quarter to the instance (using date interval) with overflow explicitly allowed.
+ * @method        $this               addQuartersWithoutOverflow(int $value = 1)                                           Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addQuarterWithoutOverflow()                                                          Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subQuartersWithoutOverflow(int $value = 1)                                           Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subQuarterWithoutOverflow()                                                          Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addQuartersWithNoOverflow(int $value = 1)                                            Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addQuarterWithNoOverflow()                                                           Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subQuartersWithNoOverflow(int $value = 1)                                            Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subQuarterWithNoOverflow()                                                           Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addQuartersNoOverflow(int $value = 1)                                                Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addQuarterNoOverflow()                                                               Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subQuartersNoOverflow(int $value = 1)                                                Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               subQuarterNoOverflow()                                                               Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        $this               addWeeks(int $value = 1)                                                             Add weeks (the $value count passed in) to the instance (using date interval).
+ * @method        $this               addWeek()                                                                            Add one week to the instance (using date interval).
+ * @method        $this               subWeeks(int $value = 1)                                                             Sub weeks (the $value count passed in) to the instance (using date interval).
+ * @method        $this               subWeek()                                                                            Sub one week to the instance (using date interval).
+ * @method        $this               addWeekdays(int $value = 1)                                                          Add weekdays (the $value count passed in) to the instance (using date interval).
+ * @method        $this               addWeekday()                                                                         Add one weekday to the instance (using date interval).
+ * @method        $this               subWeekdays(int $value = 1)                                                          Sub weekdays (the $value count passed in) to the instance (using date interval).
+ * @method        $this               subWeekday()                                                                         Sub one weekday to the instance (using date interval).
+ * @method        $this               addRealMicros(int $value = 1)                                                        Add microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               addRealMicro()                                                                       Add one microsecond to the instance (using timestamp).
+ * @method        $this               subRealMicros(int $value = 1)                                                        Sub microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               subRealMicro()                                                                       Sub one microsecond to the instance (using timestamp).
+ * @method        CarbonPeriod        microsUntil($endDate = null, int $factor = 1)                                        Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.
+ * @method        $this               addRealMicroseconds(int $value = 1)                                                  Add microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               addRealMicrosecond()                                                                 Add one microsecond to the instance (using timestamp).
+ * @method        $this               subRealMicroseconds(int $value = 1)                                                  Sub microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               subRealMicrosecond()                                                                 Sub one microsecond to the instance (using timestamp).
+ * @method        CarbonPeriod        microsecondsUntil($endDate = null, int $factor = 1)                                  Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.
+ * @method        $this               addRealMillis(int $value = 1)                                                        Add milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               addRealMilli()                                                                       Add one millisecond to the instance (using timestamp).
+ * @method        $this               subRealMillis(int $value = 1)                                                        Sub milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               subRealMilli()                                                                       Sub one millisecond to the instance (using timestamp).
+ * @method        CarbonPeriod        millisUntil($endDate = null, int $factor = 1)                                        Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.
+ * @method        $this               addRealMilliseconds(int $value = 1)                                                  Add milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               addRealMillisecond()                                                                 Add one millisecond to the instance (using timestamp).
+ * @method        $this               subRealMilliseconds(int $value = 1)                                                  Sub milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               subRealMillisecond()                                                                 Sub one millisecond to the instance (using timestamp).
+ * @method        CarbonPeriod        millisecondsUntil($endDate = null, int $factor = 1)                                  Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.
+ * @method        $this               addRealSeconds(int $value = 1)                                                       Add seconds (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               addRealSecond()                                                                      Add one second to the instance (using timestamp).
+ * @method        $this               subRealSeconds(int $value = 1)                                                       Sub seconds (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               subRealSecond()                                                                      Sub one second to the instance (using timestamp).
+ * @method        CarbonPeriod        secondsUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given.
+ * @method        $this               addRealMinutes(int $value = 1)                                                       Add minutes (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               addRealMinute()                                                                      Add one minute to the instance (using timestamp).
+ * @method        $this               subRealMinutes(int $value = 1)                                                       Sub minutes (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               subRealMinute()                                                                      Sub one minute to the instance (using timestamp).
+ * @method        CarbonPeriod        minutesUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given.
+ * @method        $this               addRealHours(int $value = 1)                                                         Add hours (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               addRealHour()                                                                        Add one hour to the instance (using timestamp).
+ * @method        $this               subRealHours(int $value = 1)                                                         Sub hours (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               subRealHour()                                                                        Sub one hour to the instance (using timestamp).
+ * @method        CarbonPeriod        hoursUntil($endDate = null, int $factor = 1)                                         Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given.
+ * @method        $this               addRealDays(int $value = 1)                                                          Add days (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               addRealDay()                                                                         Add one day to the instance (using timestamp).
+ * @method        $this               subRealDays(int $value = 1)                                                          Sub days (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               subRealDay()                                                                         Sub one day to the instance (using timestamp).
+ * @method        CarbonPeriod        daysUntil($endDate = null, int $factor = 1)                                          Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given.
+ * @method        $this               addRealWeeks(int $value = 1)                                                         Add weeks (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               addRealWeek()                                                                        Add one week to the instance (using timestamp).
+ * @method        $this               subRealWeeks(int $value = 1)                                                         Sub weeks (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               subRealWeek()                                                                        Sub one week to the instance (using timestamp).
+ * @method        CarbonPeriod        weeksUntil($endDate = null, int $factor = 1)                                         Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given.
+ * @method        $this               addRealMonths(int $value = 1)                                                        Add months (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               addRealMonth()                                                                       Add one month to the instance (using timestamp).
+ * @method        $this               subRealMonths(int $value = 1)                                                        Sub months (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               subRealMonth()                                                                       Sub one month to the instance (using timestamp).
+ * @method        CarbonPeriod        monthsUntil($endDate = null, int $factor = 1)                                        Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given.
+ * @method        $this               addRealQuarters(int $value = 1)                                                      Add quarters (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               addRealQuarter()                                                                     Add one quarter to the instance (using timestamp).
+ * @method        $this               subRealQuarters(int $value = 1)                                                      Sub quarters (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               subRealQuarter()                                                                     Sub one quarter to the instance (using timestamp).
+ * @method        CarbonPeriod        quartersUntil($endDate = null, int $factor = 1)                                      Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given.
+ * @method        $this               addRealYears(int $value = 1)                                                         Add years (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               addRealYear()                                                                        Add one year to the instance (using timestamp).
+ * @method        $this               subRealYears(int $value = 1)                                                         Sub years (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               subRealYear()                                                                        Sub one year to the instance (using timestamp).
+ * @method        CarbonPeriod        yearsUntil($endDate = null, int $factor = 1)                                         Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given.
+ * @method        $this               addRealDecades(int $value = 1)                                                       Add decades (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               addRealDecade()                                                                      Add one decade to the instance (using timestamp).
+ * @method        $this               subRealDecades(int $value = 1)                                                       Sub decades (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               subRealDecade()                                                                      Sub one decade to the instance (using timestamp).
+ * @method        CarbonPeriod        decadesUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given.
+ * @method        $this               addRealCenturies(int $value = 1)                                                     Add centuries (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               addRealCentury()                                                                     Add one century to the instance (using timestamp).
+ * @method        $this               subRealCenturies(int $value = 1)                                                     Sub centuries (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               subRealCentury()                                                                     Sub one century to the instance (using timestamp).
+ * @method        CarbonPeriod        centuriesUntil($endDate = null, int $factor = 1)                                     Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given.
+ * @method        $this               addRealMillennia(int $value = 1)                                                     Add millennia (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               addRealMillennium()                                                                  Add one millennium to the instance (using timestamp).
+ * @method        $this               subRealMillennia(int $value = 1)                                                     Sub millennia (the $value count passed in) to the instance (using timestamp).
+ * @method        $this               subRealMillennium()                                                                  Sub one millennium to the instance (using timestamp).
+ * @method        CarbonPeriod        millenniaUntil($endDate = null, int $factor = 1)                                     Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given.
+ * @method        $this               roundYear(float $precision = 1, string $function = "round")                          Round the current instance year with given precision using the given function.
+ * @method        $this               roundYears(float $precision = 1, string $function = "round")                         Round the current instance year with given precision using the given function.
+ * @method        $this               floorYear(float $precision = 1)                                                      Truncate the current instance year with given precision.
+ * @method        $this               floorYears(float $precision = 1)                                                     Truncate the current instance year with given precision.
+ * @method        $this               ceilYear(float $precision = 1)                                                       Ceil the current instance year with given precision.
+ * @method        $this               ceilYears(float $precision = 1)                                                      Ceil the current instance year with given precision.
+ * @method        $this               roundMonth(float $precision = 1, string $function = "round")                         Round the current instance month with given precision using the given function.
+ * @method        $this               roundMonths(float $precision = 1, string $function = "round")                        Round the current instance month with given precision using the given function.
+ * @method        $this               floorMonth(float $precision = 1)                                                     Truncate the current instance month with given precision.
+ * @method        $this               floorMonths(float $precision = 1)                                                    Truncate the current instance month with given precision.
+ * @method        $this               ceilMonth(float $precision = 1)                                                      Ceil the current instance month with given precision.
+ * @method        $this               ceilMonths(float $precision = 1)                                                     Ceil the current instance month with given precision.
+ * @method        $this               roundDay(float $precision = 1, string $function = "round")                           Round the current instance day with given precision using the given function.
+ * @method        $this               roundDays(float $precision = 1, string $function = "round")                          Round the current instance day with given precision using the given function.
+ * @method        $this               floorDay(float $precision = 1)                                                       Truncate the current instance day with given precision.
+ * @method        $this               floorDays(float $precision = 1)                                                      Truncate the current instance day with given precision.
+ * @method        $this               ceilDay(float $precision = 1)                                                        Ceil the current instance day with given precision.
+ * @method        $this               ceilDays(float $precision = 1)                                                       Ceil the current instance day with given precision.
+ * @method        $this               roundHour(float $precision = 1, string $function = "round")                          Round the current instance hour with given precision using the given function.
+ * @method        $this               roundHours(float $precision = 1, string $function = "round")                         Round the current instance hour with given precision using the given function.
+ * @method        $this               floorHour(float $precision = 1)                                                      Truncate the current instance hour with given precision.
+ * @method        $this               floorHours(float $precision = 1)                                                     Truncate the current instance hour with given precision.
+ * @method        $this               ceilHour(float $precision = 1)                                                       Ceil the current instance hour with given precision.
+ * @method        $this               ceilHours(float $precision = 1)                                                      Ceil the current instance hour with given precision.
+ * @method        $this               roundMinute(float $precision = 1, string $function = "round")                        Round the current instance minute with given precision using the given function.
+ * @method        $this               roundMinutes(float $precision = 1, string $function = "round")                       Round the current instance minute with given precision using the given function.
+ * @method        $this               floorMinute(float $precision = 1)                                                    Truncate the current instance minute with given precision.
+ * @method        $this               floorMinutes(float $precision = 1)                                                   Truncate the current instance minute with given precision.
+ * @method        $this               ceilMinute(float $precision = 1)                                                     Ceil the current instance minute with given precision.
+ * @method        $this               ceilMinutes(float $precision = 1)                                                    Ceil the current instance minute with given precision.
+ * @method        $this               roundSecond(float $precision = 1, string $function = "round")                        Round the current instance second with given precision using the given function.
+ * @method        $this               roundSeconds(float $precision = 1, string $function = "round")                       Round the current instance second with given precision using the given function.
+ * @method        $this               floorSecond(float $precision = 1)                                                    Truncate the current instance second with given precision.
+ * @method        $this               floorSeconds(float $precision = 1)                                                   Truncate the current instance second with given precision.
+ * @method        $this               ceilSecond(float $precision = 1)                                                     Ceil the current instance second with given precision.
+ * @method        $this               ceilSeconds(float $precision = 1)                                                    Ceil the current instance second with given precision.
+ * @method        $this               roundMillennium(float $precision = 1, string $function = "round")                    Round the current instance millennium with given precision using the given function.
+ * @method        $this               roundMillennia(float $precision = 1, string $function = "round")                     Round the current instance millennium with given precision using the given function.
+ * @method        $this               floorMillennium(float $precision = 1)                                                Truncate the current instance millennium with given precision.
+ * @method        $this               floorMillennia(float $precision = 1)                                                 Truncate the current instance millennium with given precision.
+ * @method        $this               ceilMillennium(float $precision = 1)                                                 Ceil the current instance millennium with given precision.
+ * @method        $this               ceilMillennia(float $precision = 1)                                                  Ceil the current instance millennium with given precision.
+ * @method        $this               roundCentury(float $precision = 1, string $function = "round")                       Round the current instance century with given precision using the given function.
+ * @method        $this               roundCenturies(float $precision = 1, string $function = "round")                     Round the current instance century with given precision using the given function.
+ * @method        $this               floorCentury(float $precision = 1)                                                   Truncate the current instance century with given precision.
+ * @method        $this               floorCenturies(float $precision = 1)                                                 Truncate the current instance century with given precision.
+ * @method        $this               ceilCentury(float $precision = 1)                                                    Ceil the current instance century with given precision.
+ * @method        $this               ceilCenturies(float $precision = 1)                                                  Ceil the current instance century with given precision.
+ * @method        $this               roundDecade(float $precision = 1, string $function = "round")                        Round the current instance decade with given precision using the given function.
+ * @method        $this               roundDecades(float $precision = 1, string $function = "round")                       Round the current instance decade with given precision using the given function.
+ * @method        $this               floorDecade(float $precision = 1)                                                    Truncate the current instance decade with given precision.
+ * @method        $this               floorDecades(float $precision = 1)                                                   Truncate the current instance decade with given precision.
+ * @method        $this               ceilDecade(float $precision = 1)                                                     Ceil the current instance decade with given precision.
+ * @method        $this               ceilDecades(float $precision = 1)                                                    Ceil the current instance decade with given precision.
+ * @method        $this               roundQuarter(float $precision = 1, string $function = "round")                       Round the current instance quarter with given precision using the given function.
+ * @method        $this               roundQuarters(float $precision = 1, string $function = "round")                      Round the current instance quarter with given precision using the given function.
+ * @method        $this               floorQuarter(float $precision = 1)                                                   Truncate the current instance quarter with given precision.
+ * @method        $this               floorQuarters(float $precision = 1)                                                  Truncate the current instance quarter with given precision.
+ * @method        $this               ceilQuarter(float $precision = 1)                                                    Ceil the current instance quarter with given precision.
+ * @method        $this               ceilQuarters(float $precision = 1)                                                   Ceil the current instance quarter with given precision.
+ * @method        $this               roundMillisecond(float $precision = 1, string $function = "round")                   Round the current instance millisecond with given precision using the given function.
+ * @method        $this               roundMilliseconds(float $precision = 1, string $function = "round")                  Round the current instance millisecond with given precision using the given function.
+ * @method        $this               floorMillisecond(float $precision = 1)                                               Truncate the current instance millisecond with given precision.
+ * @method        $this               floorMilliseconds(float $precision = 1)                                              Truncate the current instance millisecond with given precision.
+ * @method        $this               ceilMillisecond(float $precision = 1)                                                Ceil the current instance millisecond with given precision.
+ * @method        $this               ceilMilliseconds(float $precision = 1)                                               Ceil the current instance millisecond with given precision.
+ * @method        $this               roundMicrosecond(float $precision = 1, string $function = "round")                   Round the current instance microsecond with given precision using the given function.
+ * @method        $this               roundMicroseconds(float $precision = 1, string $function = "round")                  Round the current instance microsecond with given precision using the given function.
+ * @method        $this               floorMicrosecond(float $precision = 1)                                               Truncate the current instance microsecond with given precision.
+ * @method        $this               floorMicroseconds(float $precision = 1)                                              Truncate the current instance microsecond with given precision.
+ * @method        $this               ceilMicrosecond(float $precision = 1)                                                Ceil the current instance microsecond with given precision.
+ * @method        $this               ceilMicroseconds(float $precision = 1)                                               Ceil the current instance microsecond with given precision.
+ * @method        string              shortAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1)          Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string              longAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1)           Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string              shortRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1)          Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string              longRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1)           Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string              shortRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1)     Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string              longRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1)      Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string              shortRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1)   Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string              longRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1)    Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        static Carbon|false createFromFormat(string $format, string $time, string|DateTimeZone $timezone = null) Parse a string into a new Carbon object according to the specified format.
+ * @method        static Carbon       __set_state(array $array)                                                            https://php.net/manual/en/datetime.set-state.php
+ *
+ * </autodoc>
+ */
+class Carbon extends DateTime implements CarbonInterface
+{
+    use Date;
+
+    /**
+     * Returns true if the current class/instance is mutable.
+     *
+     * @return bool
+     */
+    public static function isMutable()
+    {
+        return true;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/CarbonConverterInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/CarbonConverterInterface.php
new file mode 100644
index 0000000..eb0a709
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/CarbonConverterInterface.php
@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon;
+
+use DateTimeInterface;
+
+interface CarbonConverterInterface
+{
+    public function convertDate(DateTimeInterface $dateTime, bool $negated = false): CarbonInterface;
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/CarbonImmutable.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/CarbonImmutable.php
new file mode 100644
index 0000000..cb1c498
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/CarbonImmutable.php
@@ -0,0 +1,582 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon;
+
+use Carbon\Traits\Date;
+use DateTimeImmutable;
+use DateTimeInterface;
+use DateTimeZone;
+
+/**
+ * A simple API extension for DateTimeImmutable.
+ *
+ * <autodoc generated by `composer phpdoc`>
+ *
+ * @property      int                          $year
+ * @property      int                          $yearIso
+ * @property      int                          $month
+ * @property      int                          $day
+ * @property      int                          $hour
+ * @property      int                          $minute
+ * @property      int                          $second
+ * @property      int                          $micro
+ * @property      int                          $microsecond
+ * @property      int|float|string             $timestamp                                                                           seconds since the Unix Epoch
+ * @property      string                       $englishDayOfWeek                                                                    the day of week in English
+ * @property      string                       $shortEnglishDayOfWeek                                                               the abbreviated day of week in English
+ * @property      string                       $englishMonth                                                                        the month in English
+ * @property      string                       $shortEnglishMonth                                                                   the abbreviated month in English
+ * @property      string                       $localeDayOfWeek                                                                     the day of week in current locale LC_TIME
+ * @property      string                       $shortLocaleDayOfWeek                                                                the abbreviated day of week in current locale LC_TIME
+ * @property      string                       $localeMonth                                                                         the month in current locale LC_TIME
+ * @property      string                       $shortLocaleMonth                                                                    the abbreviated month in current locale LC_TIME
+ * @property      int                          $milliseconds
+ * @property      int                          $millisecond
+ * @property      int                          $milli
+ * @property      int                          $week                                                                                1 through 53
+ * @property      int                          $isoWeek                                                                             1 through 53
+ * @property      int                          $weekYear                                                                            year according to week format
+ * @property      int                          $isoWeekYear                                                                         year according to ISO week format
+ * @property      int                          $dayOfYear                                                                           1 through 366
+ * @property      int                          $age                                                                                 does a diffInYears() with default parameters
+ * @property      int                          $offset                                                                              the timezone offset in seconds from UTC
+ * @property      int                          $offsetMinutes                                                                       the timezone offset in minutes from UTC
+ * @property      int                          $offsetHours                                                                         the timezone offset in hours from UTC
+ * @property      CarbonTimeZone               $timezone                                                                            the current timezone
+ * @property      CarbonTimeZone               $tz                                                                                  alias of $timezone
+ * @property-read int                          $dayOfWeek                                                                           0 (for Sunday) through 6 (for Saturday)
+ * @property-read int                          $dayOfWeekIso                                                                        1 (for Monday) through 7 (for Sunday)
+ * @property-read int                          $weekOfYear                                                                          ISO-8601 week number of year, weeks starting on Monday
+ * @property-read int                          $daysInMonth                                                                         number of days in the given month
+ * @property-read string                       $latinMeridiem                                                                       "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark)
+ * @property-read string                       $latinUpperMeridiem                                                                  "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark)
+ * @property-read string                       $timezoneAbbreviatedName                                                             the current timezone abbreviated name
+ * @property-read string                       $tzAbbrName                                                                          alias of $timezoneAbbreviatedName
+ * @property-read string                       $dayName                                                                             long name of weekday translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string                       $shortDayName                                                                        short name of weekday translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string                       $minDayName                                                                          very short name of weekday translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string                       $monthName                                                                           long name of month translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string                       $shortMonthName                                                                      short name of month translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string                       $meridiem                                                                            lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language
+ * @property-read string                       $upperMeridiem                                                                       uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language
+ * @property-read int                          $noZeroHour                                                                          current hour from 1 to 24
+ * @property-read int                          $weeksInYear                                                                         51 through 53
+ * @property-read int                          $isoWeeksInYear                                                                      51 through 53
+ * @property-read int                          $weekOfMonth                                                                         1 through 5
+ * @property-read int                          $weekNumberInMonth                                                                   1 through 5
+ * @property-read int                          $firstWeekDay                                                                        0 through 6
+ * @property-read int                          $lastWeekDay                                                                         0 through 6
+ * @property-read int                          $daysInYear                                                                          365 or 366
+ * @property-read int                          $quarter                                                                             the quarter of this instance, 1 - 4
+ * @property-read int                          $decade                                                                              the decade of this instance
+ * @property-read int                          $century                                                                             the century of this instance
+ * @property-read int                          $millennium                                                                          the millennium of this instance
+ * @property-read bool                         $dst                                                                                 daylight savings time indicator, true if DST, false otherwise
+ * @property-read bool                         $local                                                                               checks if the timezone is local, true if local, false otherwise
+ * @property-read bool                         $utc                                                                                 checks if the timezone is UTC, true if UTC, false otherwise
+ * @property-read string                       $timezoneName                                                                        the current timezone name
+ * @property-read string                       $tzName                                                                              alias of $timezoneName
+ * @property-read string                       $locale                                                                              locale of the current instance
+ *
+ * @method        bool                         isUtc()                                                                              Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.)
+ * @method        bool                         isLocal()                                                                            Check if the current instance has non-UTC timezone.
+ * @method        bool                         isValid()                                                                            Check if the current instance is a valid date.
+ * @method        bool                         isDST()                                                                              Check if the current instance is in a daylight saving time.
+ * @method        bool                         isSunday()                                                                           Checks if the instance day is sunday.
+ * @method        bool                         isMonday()                                                                           Checks if the instance day is monday.
+ * @method        bool                         isTuesday()                                                                          Checks if the instance day is tuesday.
+ * @method        bool                         isWednesday()                                                                        Checks if the instance day is wednesday.
+ * @method        bool                         isThursday()                                                                         Checks if the instance day is thursday.
+ * @method        bool                         isFriday()                                                                           Checks if the instance day is friday.
+ * @method        bool                         isSaturday()                                                                         Checks if the instance day is saturday.
+ * @method        bool                         isSameYear(Carbon|DateTimeInterface|string|null $date = null)                        Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool                         isCurrentYear()                                                                      Checks if the instance is in the same year as the current moment.
+ * @method        bool                         isNextYear()                                                                         Checks if the instance is in the same year as the current moment next year.
+ * @method        bool                         isLastYear()                                                                         Checks if the instance is in the same year as the current moment last year.
+ * @method        bool                         isSameWeek(Carbon|DateTimeInterface|string|null $date = null)                        Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool                         isCurrentWeek()                                                                      Checks if the instance is in the same week as the current moment.
+ * @method        bool                         isNextWeek()                                                                         Checks if the instance is in the same week as the current moment next week.
+ * @method        bool                         isLastWeek()                                                                         Checks if the instance is in the same week as the current moment last week.
+ * @method        bool                         isSameDay(Carbon|DateTimeInterface|string|null $date = null)                         Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool                         isCurrentDay()                                                                       Checks if the instance is in the same day as the current moment.
+ * @method        bool                         isNextDay()                                                                          Checks if the instance is in the same day as the current moment next day.
+ * @method        bool                         isLastDay()                                                                          Checks if the instance is in the same day as the current moment last day.
+ * @method        bool                         isSameHour(Carbon|DateTimeInterface|string|null $date = null)                        Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool                         isCurrentHour()                                                                      Checks if the instance is in the same hour as the current moment.
+ * @method        bool                         isNextHour()                                                                         Checks if the instance is in the same hour as the current moment next hour.
+ * @method        bool                         isLastHour()                                                                         Checks if the instance is in the same hour as the current moment last hour.
+ * @method        bool                         isSameMinute(Carbon|DateTimeInterface|string|null $date = null)                      Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool                         isCurrentMinute()                                                                    Checks if the instance is in the same minute as the current moment.
+ * @method        bool                         isNextMinute()                                                                       Checks if the instance is in the same minute as the current moment next minute.
+ * @method        bool                         isLastMinute()                                                                       Checks if the instance is in the same minute as the current moment last minute.
+ * @method        bool                         isSameSecond(Carbon|DateTimeInterface|string|null $date = null)                      Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool                         isCurrentSecond()                                                                    Checks if the instance is in the same second as the current moment.
+ * @method        bool                         isNextSecond()                                                                       Checks if the instance is in the same second as the current moment next second.
+ * @method        bool                         isLastSecond()                                                                       Checks if the instance is in the same second as the current moment last second.
+ * @method        bool                         isSameMicro(Carbon|DateTimeInterface|string|null $date = null)                       Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool                         isCurrentMicro()                                                                     Checks if the instance is in the same microsecond as the current moment.
+ * @method        bool                         isNextMicro()                                                                        Checks if the instance is in the same microsecond as the current moment next microsecond.
+ * @method        bool                         isLastMicro()                                                                        Checks if the instance is in the same microsecond as the current moment last microsecond.
+ * @method        bool                         isSameMicrosecond(Carbon|DateTimeInterface|string|null $date = null)                 Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool                         isCurrentMicrosecond()                                                               Checks if the instance is in the same microsecond as the current moment.
+ * @method        bool                         isNextMicrosecond()                                                                  Checks if the instance is in the same microsecond as the current moment next microsecond.
+ * @method        bool                         isLastMicrosecond()                                                                  Checks if the instance is in the same microsecond as the current moment last microsecond.
+ * @method        bool                         isCurrentMonth()                                                                     Checks if the instance is in the same month as the current moment.
+ * @method        bool                         isNextMonth()                                                                        Checks if the instance is in the same month as the current moment next month.
+ * @method        bool                         isLastMonth()                                                                        Checks if the instance is in the same month as the current moment last month.
+ * @method        bool                         isCurrentQuarter()                                                                   Checks if the instance is in the same quarter as the current moment.
+ * @method        bool                         isNextQuarter()                                                                      Checks if the instance is in the same quarter as the current moment next quarter.
+ * @method        bool                         isLastQuarter()                                                                      Checks if the instance is in the same quarter as the current moment last quarter.
+ * @method        bool                         isSameDecade(Carbon|DateTimeInterface|string|null $date = null)                      Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool                         isCurrentDecade()                                                                    Checks if the instance is in the same decade as the current moment.
+ * @method        bool                         isNextDecade()                                                                       Checks if the instance is in the same decade as the current moment next decade.
+ * @method        bool                         isLastDecade()                                                                       Checks if the instance is in the same decade as the current moment last decade.
+ * @method        bool                         isSameCentury(Carbon|DateTimeInterface|string|null $date = null)                     Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool                         isCurrentCentury()                                                                   Checks if the instance is in the same century as the current moment.
+ * @method        bool                         isNextCentury()                                                                      Checks if the instance is in the same century as the current moment next century.
+ * @method        bool                         isLastCentury()                                                                      Checks if the instance is in the same century as the current moment last century.
+ * @method        bool                         isSameMillennium(Carbon|DateTimeInterface|string|null $date = null)                  Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool                         isCurrentMillennium()                                                                Checks if the instance is in the same millennium as the current moment.
+ * @method        bool                         isNextMillennium()                                                                   Checks if the instance is in the same millennium as the current moment next millennium.
+ * @method        bool                         isLastMillennium()                                                                   Checks if the instance is in the same millennium as the current moment last millennium.
+ * @method        CarbonImmutable              years(int $value)                                                                    Set current instance year to the given value.
+ * @method        CarbonImmutable              year(int $value)                                                                     Set current instance year to the given value.
+ * @method        CarbonImmutable              setYears(int $value)                                                                 Set current instance year to the given value.
+ * @method        CarbonImmutable              setYear(int $value)                                                                  Set current instance year to the given value.
+ * @method        CarbonImmutable              months(int $value)                                                                   Set current instance month to the given value.
+ * @method        CarbonImmutable              month(int $value)                                                                    Set current instance month to the given value.
+ * @method        CarbonImmutable              setMonths(int $value)                                                                Set current instance month to the given value.
+ * @method        CarbonImmutable              setMonth(int $value)                                                                 Set current instance month to the given value.
+ * @method        CarbonImmutable              days(int $value)                                                                     Set current instance day to the given value.
+ * @method        CarbonImmutable              day(int $value)                                                                      Set current instance day to the given value.
+ * @method        CarbonImmutable              setDays(int $value)                                                                  Set current instance day to the given value.
+ * @method        CarbonImmutable              setDay(int $value)                                                                   Set current instance day to the given value.
+ * @method        CarbonImmutable              hours(int $value)                                                                    Set current instance hour to the given value.
+ * @method        CarbonImmutable              hour(int $value)                                                                     Set current instance hour to the given value.
+ * @method        CarbonImmutable              setHours(int $value)                                                                 Set current instance hour to the given value.
+ * @method        CarbonImmutable              setHour(int $value)                                                                  Set current instance hour to the given value.
+ * @method        CarbonImmutable              minutes(int $value)                                                                  Set current instance minute to the given value.
+ * @method        CarbonImmutable              minute(int $value)                                                                   Set current instance minute to the given value.
+ * @method        CarbonImmutable              setMinutes(int $value)                                                               Set current instance minute to the given value.
+ * @method        CarbonImmutable              setMinute(int $value)                                                                Set current instance minute to the given value.
+ * @method        CarbonImmutable              seconds(int $value)                                                                  Set current instance second to the given value.
+ * @method        CarbonImmutable              second(int $value)                                                                   Set current instance second to the given value.
+ * @method        CarbonImmutable              setSeconds(int $value)                                                               Set current instance second to the given value.
+ * @method        CarbonImmutable              setSecond(int $value)                                                                Set current instance second to the given value.
+ * @method        CarbonImmutable              millis(int $value)                                                                   Set current instance millisecond to the given value.
+ * @method        CarbonImmutable              milli(int $value)                                                                    Set current instance millisecond to the given value.
+ * @method        CarbonImmutable              setMillis(int $value)                                                                Set current instance millisecond to the given value.
+ * @method        CarbonImmutable              setMilli(int $value)                                                                 Set current instance millisecond to the given value.
+ * @method        CarbonImmutable              milliseconds(int $value)                                                             Set current instance millisecond to the given value.
+ * @method        CarbonImmutable              millisecond(int $value)                                                              Set current instance millisecond to the given value.
+ * @method        CarbonImmutable              setMilliseconds(int $value)                                                          Set current instance millisecond to the given value.
+ * @method        CarbonImmutable              setMillisecond(int $value)                                                           Set current instance millisecond to the given value.
+ * @method        CarbonImmutable              micros(int $value)                                                                   Set current instance microsecond to the given value.
+ * @method        CarbonImmutable              micro(int $value)                                                                    Set current instance microsecond to the given value.
+ * @method        CarbonImmutable              setMicros(int $value)                                                                Set current instance microsecond to the given value.
+ * @method        CarbonImmutable              setMicro(int $value)                                                                 Set current instance microsecond to the given value.
+ * @method        CarbonImmutable              microseconds(int $value)                                                             Set current instance microsecond to the given value.
+ * @method        CarbonImmutable              microsecond(int $value)                                                              Set current instance microsecond to the given value.
+ * @method        CarbonImmutable              setMicroseconds(int $value)                                                          Set current instance microsecond to the given value.
+ * @method        CarbonImmutable              setMicrosecond(int $value)                                                           Set current instance microsecond to the given value.
+ * @method        CarbonImmutable              addYears(int $value = 1)                                                             Add years (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              addYear()                                                                            Add one year to the instance (using date interval).
+ * @method        CarbonImmutable              subYears(int $value = 1)                                                             Sub years (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              subYear()                                                                            Sub one year to the instance (using date interval).
+ * @method        CarbonImmutable              addYearsWithOverflow(int $value = 1)                                                 Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              addYearWithOverflow()                                                                Add one year to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              subYearsWithOverflow(int $value = 1)                                                 Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              subYearWithOverflow()                                                                Sub one year to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              addYearsWithoutOverflow(int $value = 1)                                              Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addYearWithoutOverflow()                                                             Add one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subYearsWithoutOverflow(int $value = 1)                                              Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subYearWithoutOverflow()                                                             Sub one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addYearsWithNoOverflow(int $value = 1)                                               Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addYearWithNoOverflow()                                                              Add one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subYearsWithNoOverflow(int $value = 1)                                               Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subYearWithNoOverflow()                                                              Sub one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addYearsNoOverflow(int $value = 1)                                                   Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addYearNoOverflow()                                                                  Add one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subYearsNoOverflow(int $value = 1)                                                   Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subYearNoOverflow()                                                                  Sub one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addMonths(int $value = 1)                                                            Add months (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              addMonth()                                                                           Add one month to the instance (using date interval).
+ * @method        CarbonImmutable              subMonths(int $value = 1)                                                            Sub months (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              subMonth()                                                                           Sub one month to the instance (using date interval).
+ * @method        CarbonImmutable              addMonthsWithOverflow(int $value = 1)                                                Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              addMonthWithOverflow()                                                               Add one month to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              subMonthsWithOverflow(int $value = 1)                                                Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              subMonthWithOverflow()                                                               Sub one month to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              addMonthsWithoutOverflow(int $value = 1)                                             Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addMonthWithoutOverflow()                                                            Add one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subMonthsWithoutOverflow(int $value = 1)                                             Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subMonthWithoutOverflow()                                                            Sub one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addMonthsWithNoOverflow(int $value = 1)                                              Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addMonthWithNoOverflow()                                                             Add one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subMonthsWithNoOverflow(int $value = 1)                                              Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subMonthWithNoOverflow()                                                             Sub one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addMonthsNoOverflow(int $value = 1)                                                  Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addMonthNoOverflow()                                                                 Add one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subMonthsNoOverflow(int $value = 1)                                                  Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subMonthNoOverflow()                                                                 Sub one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addDays(int $value = 1)                                                              Add days (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              addDay()                                                                             Add one day to the instance (using date interval).
+ * @method        CarbonImmutable              subDays(int $value = 1)                                                              Sub days (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              subDay()                                                                             Sub one day to the instance (using date interval).
+ * @method        CarbonImmutable              addHours(int $value = 1)                                                             Add hours (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              addHour()                                                                            Add one hour to the instance (using date interval).
+ * @method        CarbonImmutable              subHours(int $value = 1)                                                             Sub hours (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              subHour()                                                                            Sub one hour to the instance (using date interval).
+ * @method        CarbonImmutable              addMinutes(int $value = 1)                                                           Add minutes (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              addMinute()                                                                          Add one minute to the instance (using date interval).
+ * @method        CarbonImmutable              subMinutes(int $value = 1)                                                           Sub minutes (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              subMinute()                                                                          Sub one minute to the instance (using date interval).
+ * @method        CarbonImmutable              addSeconds(int $value = 1)                                                           Add seconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              addSecond()                                                                          Add one second to the instance (using date interval).
+ * @method        CarbonImmutable              subSeconds(int $value = 1)                                                           Sub seconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              subSecond()                                                                          Sub one second to the instance (using date interval).
+ * @method        CarbonImmutable              addMillis(int $value = 1)                                                            Add milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              addMilli()                                                                           Add one millisecond to the instance (using date interval).
+ * @method        CarbonImmutable              subMillis(int $value = 1)                                                            Sub milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              subMilli()                                                                           Sub one millisecond to the instance (using date interval).
+ * @method        CarbonImmutable              addMilliseconds(int $value = 1)                                                      Add milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              addMillisecond()                                                                     Add one millisecond to the instance (using date interval).
+ * @method        CarbonImmutable              subMilliseconds(int $value = 1)                                                      Sub milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              subMillisecond()                                                                     Sub one millisecond to the instance (using date interval).
+ * @method        CarbonImmutable              addMicros(int $value = 1)                                                            Add microseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              addMicro()                                                                           Add one microsecond to the instance (using date interval).
+ * @method        CarbonImmutable              subMicros(int $value = 1)                                                            Sub microseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              subMicro()                                                                           Sub one microsecond to the instance (using date interval).
+ * @method        CarbonImmutable              addMicroseconds(int $value = 1)                                                      Add microseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              addMicrosecond()                                                                     Add one microsecond to the instance (using date interval).
+ * @method        CarbonImmutable              subMicroseconds(int $value = 1)                                                      Sub microseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              subMicrosecond()                                                                     Sub one microsecond to the instance (using date interval).
+ * @method        CarbonImmutable              addMillennia(int $value = 1)                                                         Add millennia (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              addMillennium()                                                                      Add one millennium to the instance (using date interval).
+ * @method        CarbonImmutable              subMillennia(int $value = 1)                                                         Sub millennia (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              subMillennium()                                                                      Sub one millennium to the instance (using date interval).
+ * @method        CarbonImmutable              addMillenniaWithOverflow(int $value = 1)                                             Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              addMillenniumWithOverflow()                                                          Add one millennium to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              subMillenniaWithOverflow(int $value = 1)                                             Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              subMillenniumWithOverflow()                                                          Sub one millennium to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              addMillenniaWithoutOverflow(int $value = 1)                                          Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addMillenniumWithoutOverflow()                                                       Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subMillenniaWithoutOverflow(int $value = 1)                                          Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subMillenniumWithoutOverflow()                                                       Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addMillenniaWithNoOverflow(int $value = 1)                                           Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addMillenniumWithNoOverflow()                                                        Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subMillenniaWithNoOverflow(int $value = 1)                                           Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subMillenniumWithNoOverflow()                                                        Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addMillenniaNoOverflow(int $value = 1)                                               Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addMillenniumNoOverflow()                                                            Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subMillenniaNoOverflow(int $value = 1)                                               Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subMillenniumNoOverflow()                                                            Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addCenturies(int $value = 1)                                                         Add centuries (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              addCentury()                                                                         Add one century to the instance (using date interval).
+ * @method        CarbonImmutable              subCenturies(int $value = 1)                                                         Sub centuries (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              subCentury()                                                                         Sub one century to the instance (using date interval).
+ * @method        CarbonImmutable              addCenturiesWithOverflow(int $value = 1)                                             Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              addCenturyWithOverflow()                                                             Add one century to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              subCenturiesWithOverflow(int $value = 1)                                             Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              subCenturyWithOverflow()                                                             Sub one century to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              addCenturiesWithoutOverflow(int $value = 1)                                          Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addCenturyWithoutOverflow()                                                          Add one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subCenturiesWithoutOverflow(int $value = 1)                                          Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subCenturyWithoutOverflow()                                                          Sub one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addCenturiesWithNoOverflow(int $value = 1)                                           Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addCenturyWithNoOverflow()                                                           Add one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subCenturiesWithNoOverflow(int $value = 1)                                           Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subCenturyWithNoOverflow()                                                           Sub one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addCenturiesNoOverflow(int $value = 1)                                               Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addCenturyNoOverflow()                                                               Add one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subCenturiesNoOverflow(int $value = 1)                                               Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subCenturyNoOverflow()                                                               Sub one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addDecades(int $value = 1)                                                           Add decades (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              addDecade()                                                                          Add one decade to the instance (using date interval).
+ * @method        CarbonImmutable              subDecades(int $value = 1)                                                           Sub decades (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              subDecade()                                                                          Sub one decade to the instance (using date interval).
+ * @method        CarbonImmutable              addDecadesWithOverflow(int $value = 1)                                               Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              addDecadeWithOverflow()                                                              Add one decade to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              subDecadesWithOverflow(int $value = 1)                                               Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              subDecadeWithOverflow()                                                              Sub one decade to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              addDecadesWithoutOverflow(int $value = 1)                                            Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addDecadeWithoutOverflow()                                                           Add one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subDecadesWithoutOverflow(int $value = 1)                                            Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subDecadeWithoutOverflow()                                                           Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addDecadesWithNoOverflow(int $value = 1)                                             Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addDecadeWithNoOverflow()                                                            Add one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subDecadesWithNoOverflow(int $value = 1)                                             Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subDecadeWithNoOverflow()                                                            Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addDecadesNoOverflow(int $value = 1)                                                 Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addDecadeNoOverflow()                                                                Add one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subDecadesNoOverflow(int $value = 1)                                                 Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subDecadeNoOverflow()                                                                Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addQuarters(int $value = 1)                                                          Add quarters (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              addQuarter()                                                                         Add one quarter to the instance (using date interval).
+ * @method        CarbonImmutable              subQuarters(int $value = 1)                                                          Sub quarters (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              subQuarter()                                                                         Sub one quarter to the instance (using date interval).
+ * @method        CarbonImmutable              addQuartersWithOverflow(int $value = 1)                                              Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              addQuarterWithOverflow()                                                             Add one quarter to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              subQuartersWithOverflow(int $value = 1)                                              Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              subQuarterWithOverflow()                                                             Sub one quarter to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonImmutable              addQuartersWithoutOverflow(int $value = 1)                                           Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addQuarterWithoutOverflow()                                                          Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subQuartersWithoutOverflow(int $value = 1)                                           Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subQuarterWithoutOverflow()                                                          Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addQuartersWithNoOverflow(int $value = 1)                                            Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addQuarterWithNoOverflow()                                                           Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subQuartersWithNoOverflow(int $value = 1)                                            Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subQuarterWithNoOverflow()                                                           Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addQuartersNoOverflow(int $value = 1)                                                Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addQuarterNoOverflow()                                                               Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subQuartersNoOverflow(int $value = 1)                                                Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              subQuarterNoOverflow()                                                               Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonImmutable              addWeeks(int $value = 1)                                                             Add weeks (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              addWeek()                                                                            Add one week to the instance (using date interval).
+ * @method        CarbonImmutable              subWeeks(int $value = 1)                                                             Sub weeks (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              subWeek()                                                                            Sub one week to the instance (using date interval).
+ * @method        CarbonImmutable              addWeekdays(int $value = 1)                                                          Add weekdays (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              addWeekday()                                                                         Add one weekday to the instance (using date interval).
+ * @method        CarbonImmutable              subWeekdays(int $value = 1)                                                          Sub weekdays (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonImmutable              subWeekday()                                                                         Sub one weekday to the instance (using date interval).
+ * @method        CarbonImmutable              addRealMicros(int $value = 1)                                                        Add microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              addRealMicro()                                                                       Add one microsecond to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealMicros(int $value = 1)                                                        Sub microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealMicro()                                                                       Sub one microsecond to the instance (using timestamp).
+ * @method        CarbonPeriod                 microsUntil($endDate = null, int $factor = 1)                                        Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.
+ * @method        CarbonImmutable              addRealMicroseconds(int $value = 1)                                                  Add microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              addRealMicrosecond()                                                                 Add one microsecond to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealMicroseconds(int $value = 1)                                                  Sub microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealMicrosecond()                                                                 Sub one microsecond to the instance (using timestamp).
+ * @method        CarbonPeriod                 microsecondsUntil($endDate = null, int $factor = 1)                                  Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.
+ * @method        CarbonImmutable              addRealMillis(int $value = 1)                                                        Add milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              addRealMilli()                                                                       Add one millisecond to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealMillis(int $value = 1)                                                        Sub milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealMilli()                                                                       Sub one millisecond to the instance (using timestamp).
+ * @method        CarbonPeriod                 millisUntil($endDate = null, int $factor = 1)                                        Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.
+ * @method        CarbonImmutable              addRealMilliseconds(int $value = 1)                                                  Add milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              addRealMillisecond()                                                                 Add one millisecond to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealMilliseconds(int $value = 1)                                                  Sub milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealMillisecond()                                                                 Sub one millisecond to the instance (using timestamp).
+ * @method        CarbonPeriod                 millisecondsUntil($endDate = null, int $factor = 1)                                  Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.
+ * @method        CarbonImmutable              addRealSeconds(int $value = 1)                                                       Add seconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              addRealSecond()                                                                      Add one second to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealSeconds(int $value = 1)                                                       Sub seconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealSecond()                                                                      Sub one second to the instance (using timestamp).
+ * @method        CarbonPeriod                 secondsUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given.
+ * @method        CarbonImmutable              addRealMinutes(int $value = 1)                                                       Add minutes (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              addRealMinute()                                                                      Add one minute to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealMinutes(int $value = 1)                                                       Sub minutes (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealMinute()                                                                      Sub one minute to the instance (using timestamp).
+ * @method        CarbonPeriod                 minutesUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given.
+ * @method        CarbonImmutable              addRealHours(int $value = 1)                                                         Add hours (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              addRealHour()                                                                        Add one hour to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealHours(int $value = 1)                                                         Sub hours (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealHour()                                                                        Sub one hour to the instance (using timestamp).
+ * @method        CarbonPeriod                 hoursUntil($endDate = null, int $factor = 1)                                         Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given.
+ * @method        CarbonImmutable              addRealDays(int $value = 1)                                                          Add days (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              addRealDay()                                                                         Add one day to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealDays(int $value = 1)                                                          Sub days (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealDay()                                                                         Sub one day to the instance (using timestamp).
+ * @method        CarbonPeriod                 daysUntil($endDate = null, int $factor = 1)                                          Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given.
+ * @method        CarbonImmutable              addRealWeeks(int $value = 1)                                                         Add weeks (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              addRealWeek()                                                                        Add one week to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealWeeks(int $value = 1)                                                         Sub weeks (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealWeek()                                                                        Sub one week to the instance (using timestamp).
+ * @method        CarbonPeriod                 weeksUntil($endDate = null, int $factor = 1)                                         Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given.
+ * @method        CarbonImmutable              addRealMonths(int $value = 1)                                                        Add months (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              addRealMonth()                                                                       Add one month to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealMonths(int $value = 1)                                                        Sub months (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealMonth()                                                                       Sub one month to the instance (using timestamp).
+ * @method        CarbonPeriod                 monthsUntil($endDate = null, int $factor = 1)                                        Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given.
+ * @method        CarbonImmutable              addRealQuarters(int $value = 1)                                                      Add quarters (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              addRealQuarter()                                                                     Add one quarter to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealQuarters(int $value = 1)                                                      Sub quarters (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealQuarter()                                                                     Sub one quarter to the instance (using timestamp).
+ * @method        CarbonPeriod                 quartersUntil($endDate = null, int $factor = 1)                                      Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given.
+ * @method        CarbonImmutable              addRealYears(int $value = 1)                                                         Add years (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              addRealYear()                                                                        Add one year to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealYears(int $value = 1)                                                         Sub years (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealYear()                                                                        Sub one year to the instance (using timestamp).
+ * @method        CarbonPeriod                 yearsUntil($endDate = null, int $factor = 1)                                         Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given.
+ * @method        CarbonImmutable              addRealDecades(int $value = 1)                                                       Add decades (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              addRealDecade()                                                                      Add one decade to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealDecades(int $value = 1)                                                       Sub decades (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealDecade()                                                                      Sub one decade to the instance (using timestamp).
+ * @method        CarbonPeriod                 decadesUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given.
+ * @method        CarbonImmutable              addRealCenturies(int $value = 1)                                                     Add centuries (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              addRealCentury()                                                                     Add one century to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealCenturies(int $value = 1)                                                     Sub centuries (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealCentury()                                                                     Sub one century to the instance (using timestamp).
+ * @method        CarbonPeriod                 centuriesUntil($endDate = null, int $factor = 1)                                     Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given.
+ * @method        CarbonImmutable              addRealMillennia(int $value = 1)                                                     Add millennia (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              addRealMillennium()                                                                  Add one millennium to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealMillennia(int $value = 1)                                                     Sub millennia (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonImmutable              subRealMillennium()                                                                  Sub one millennium to the instance (using timestamp).
+ * @method        CarbonPeriod                 millenniaUntil($endDate = null, int $factor = 1)                                     Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given.
+ * @method        CarbonImmutable              roundYear(float $precision = 1, string $function = "round")                          Round the current instance year with given precision using the given function.
+ * @method        CarbonImmutable              roundYears(float $precision = 1, string $function = "round")                         Round the current instance year with given precision using the given function.
+ * @method        CarbonImmutable              floorYear(float $precision = 1)                                                      Truncate the current instance year with given precision.
+ * @method        CarbonImmutable              floorYears(float $precision = 1)                                                     Truncate the current instance year with given precision.
+ * @method        CarbonImmutable              ceilYear(float $precision = 1)                                                       Ceil the current instance year with given precision.
+ * @method        CarbonImmutable              ceilYears(float $precision = 1)                                                      Ceil the current instance year with given precision.
+ * @method        CarbonImmutable              roundMonth(float $precision = 1, string $function = "round")                         Round the current instance month with given precision using the given function.
+ * @method        CarbonImmutable              roundMonths(float $precision = 1, string $function = "round")                        Round the current instance month with given precision using the given function.
+ * @method        CarbonImmutable              floorMonth(float $precision = 1)                                                     Truncate the current instance month with given precision.
+ * @method        CarbonImmutable              floorMonths(float $precision = 1)                                                    Truncate the current instance month with given precision.
+ * @method        CarbonImmutable              ceilMonth(float $precision = 1)                                                      Ceil the current instance month with given precision.
+ * @method        CarbonImmutable              ceilMonths(float $precision = 1)                                                     Ceil the current instance month with given precision.
+ * @method        CarbonImmutable              roundDay(float $precision = 1, string $function = "round")                           Round the current instance day with given precision using the given function.
+ * @method        CarbonImmutable              roundDays(float $precision = 1, string $function = "round")                          Round the current instance day with given precision using the given function.
+ * @method        CarbonImmutable              floorDay(float $precision = 1)                                                       Truncate the current instance day with given precision.
+ * @method        CarbonImmutable              floorDays(float $precision = 1)                                                      Truncate the current instance day with given precision.
+ * @method        CarbonImmutable              ceilDay(float $precision = 1)                                                        Ceil the current instance day with given precision.
+ * @method        CarbonImmutable              ceilDays(float $precision = 1)                                                       Ceil the current instance day with given precision.
+ * @method        CarbonImmutable              roundHour(float $precision = 1, string $function = "round")                          Round the current instance hour with given precision using the given function.
+ * @method        CarbonImmutable              roundHours(float $precision = 1, string $function = "round")                         Round the current instance hour with given precision using the given function.
+ * @method        CarbonImmutable              floorHour(float $precision = 1)                                                      Truncate the current instance hour with given precision.
+ * @method        CarbonImmutable              floorHours(float $precision = 1)                                                     Truncate the current instance hour with given precision.
+ * @method        CarbonImmutable              ceilHour(float $precision = 1)                                                       Ceil the current instance hour with given precision.
+ * @method        CarbonImmutable              ceilHours(float $precision = 1)                                                      Ceil the current instance hour with given precision.
+ * @method        CarbonImmutable              roundMinute(float $precision = 1, string $function = "round")                        Round the current instance minute with given precision using the given function.
+ * @method        CarbonImmutable              roundMinutes(float $precision = 1, string $function = "round")                       Round the current instance minute with given precision using the given function.
+ * @method        CarbonImmutable              floorMinute(float $precision = 1)                                                    Truncate the current instance minute with given precision.
+ * @method        CarbonImmutable              floorMinutes(float $precision = 1)                                                   Truncate the current instance minute with given precision.
+ * @method        CarbonImmutable              ceilMinute(float $precision = 1)                                                     Ceil the current instance minute with given precision.
+ * @method        CarbonImmutable              ceilMinutes(float $precision = 1)                                                    Ceil the current instance minute with given precision.
+ * @method        CarbonImmutable              roundSecond(float $precision = 1, string $function = "round")                        Round the current instance second with given precision using the given function.
+ * @method        CarbonImmutable              roundSeconds(float $precision = 1, string $function = "round")                       Round the current instance second with given precision using the given function.
+ * @method        CarbonImmutable              floorSecond(float $precision = 1)                                                    Truncate the current instance second with given precision.
+ * @method        CarbonImmutable              floorSeconds(float $precision = 1)                                                   Truncate the current instance second with given precision.
+ * @method        CarbonImmutable              ceilSecond(float $precision = 1)                                                     Ceil the current instance second with given precision.
+ * @method        CarbonImmutable              ceilSeconds(float $precision = 1)                                                    Ceil the current instance second with given precision.
+ * @method        CarbonImmutable              roundMillennium(float $precision = 1, string $function = "round")                    Round the current instance millennium with given precision using the given function.
+ * @method        CarbonImmutable              roundMillennia(float $precision = 1, string $function = "round")                     Round the current instance millennium with given precision using the given function.
+ * @method        CarbonImmutable              floorMillennium(float $precision = 1)                                                Truncate the current instance millennium with given precision.
+ * @method        CarbonImmutable              floorMillennia(float $precision = 1)                                                 Truncate the current instance millennium with given precision.
+ * @method        CarbonImmutable              ceilMillennium(float $precision = 1)                                                 Ceil the current instance millennium with given precision.
+ * @method        CarbonImmutable              ceilMillennia(float $precision = 1)                                                  Ceil the current instance millennium with given precision.
+ * @method        CarbonImmutable              roundCentury(float $precision = 1, string $function = "round")                       Round the current instance century with given precision using the given function.
+ * @method        CarbonImmutable              roundCenturies(float $precision = 1, string $function = "round")                     Round the current instance century with given precision using the given function.
+ * @method        CarbonImmutable              floorCentury(float $precision = 1)                                                   Truncate the current instance century with given precision.
+ * @method        CarbonImmutable              floorCenturies(float $precision = 1)                                                 Truncate the current instance century with given precision.
+ * @method        CarbonImmutable              ceilCentury(float $precision = 1)                                                    Ceil the current instance century with given precision.
+ * @method        CarbonImmutable              ceilCenturies(float $precision = 1)                                                  Ceil the current instance century with given precision.
+ * @method        CarbonImmutable              roundDecade(float $precision = 1, string $function = "round")                        Round the current instance decade with given precision using the given function.
+ * @method        CarbonImmutable              roundDecades(float $precision = 1, string $function = "round")                       Round the current instance decade with given precision using the given function.
+ * @method        CarbonImmutable              floorDecade(float $precision = 1)                                                    Truncate the current instance decade with given precision.
+ * @method        CarbonImmutable              floorDecades(float $precision = 1)                                                   Truncate the current instance decade with given precision.
+ * @method        CarbonImmutable              ceilDecade(float $precision = 1)                                                     Ceil the current instance decade with given precision.
+ * @method        CarbonImmutable              ceilDecades(float $precision = 1)                                                    Ceil the current instance decade with given precision.
+ * @method        CarbonImmutable              roundQuarter(float $precision = 1, string $function = "round")                       Round the current instance quarter with given precision using the given function.
+ * @method        CarbonImmutable              roundQuarters(float $precision = 1, string $function = "round")                      Round the current instance quarter with given precision using the given function.
+ * @method        CarbonImmutable              floorQuarter(float $precision = 1)                                                   Truncate the current instance quarter with given precision.
+ * @method        CarbonImmutable              floorQuarters(float $precision = 1)                                                  Truncate the current instance quarter with given precision.
+ * @method        CarbonImmutable              ceilQuarter(float $precision = 1)                                                    Ceil the current instance quarter with given precision.
+ * @method        CarbonImmutable              ceilQuarters(float $precision = 1)                                                   Ceil the current instance quarter with given precision.
+ * @method        CarbonImmutable              roundMillisecond(float $precision = 1, string $function = "round")                   Round the current instance millisecond with given precision using the given function.
+ * @method        CarbonImmutable              roundMilliseconds(float $precision = 1, string $function = "round")                  Round the current instance millisecond with given precision using the given function.
+ * @method        CarbonImmutable              floorMillisecond(float $precision = 1)                                               Truncate the current instance millisecond with given precision.
+ * @method        CarbonImmutable              floorMilliseconds(float $precision = 1)                                              Truncate the current instance millisecond with given precision.
+ * @method        CarbonImmutable              ceilMillisecond(float $precision = 1)                                                Ceil the current instance millisecond with given precision.
+ * @method        CarbonImmutable              ceilMilliseconds(float $precision = 1)                                               Ceil the current instance millisecond with given precision.
+ * @method        CarbonImmutable              roundMicrosecond(float $precision = 1, string $function = "round")                   Round the current instance microsecond with given precision using the given function.
+ * @method        CarbonImmutable              roundMicroseconds(float $precision = 1, string $function = "round")                  Round the current instance microsecond with given precision using the given function.
+ * @method        CarbonImmutable              floorMicrosecond(float $precision = 1)                                               Truncate the current instance microsecond with given precision.
+ * @method        CarbonImmutable              floorMicroseconds(float $precision = 1)                                              Truncate the current instance microsecond with given precision.
+ * @method        CarbonImmutable              ceilMicrosecond(float $precision = 1)                                                Ceil the current instance microsecond with given precision.
+ * @method        CarbonImmutable              ceilMicroseconds(float $precision = 1)                                               Ceil the current instance microsecond with given precision.
+ * @method        string                       shortAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1)          Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string                       longAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1)           Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string                       shortRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1)          Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string                       longRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1)           Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string                       shortRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1)     Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string                       longRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1)      Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string                       shortRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1)   Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string                       longRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1)    Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        static CarbonImmutable|false createFromFormat(string $format, string $time, string|DateTimeZone $timezone = null) Parse a string into a new CarbonImmutable object according to the specified format.
+ * @method        static CarbonImmutable       __set_state(array $array)                                                            https://php.net/manual/en/datetime.set-state.php
+ *
+ * </autodoc>
+ */
+class CarbonImmutable extends DateTimeImmutable implements CarbonInterface
+{
+    use Date {
+        __clone as dateTraitClone;
+    }
+
+    public function __clone()
+    {
+        $this->dateTraitClone();
+        $this->endOfTime = false;
+        $this->startOfTime = false;
+    }
+
+    /**
+     * Create a very old date representing start of time.
+     *
+     * @return static
+     */
+    public static function startOfTime(): self
+    {
+        $date = static::parse('0001-01-01')->years(self::getStartOfTimeYear());
+        $date->startOfTime = true;
+
+        return $date;
+    }
+
+    /**
+     * Create a very far date representing end of time.
+     *
+     * @return static
+     */
+    public static function endOfTime(): self
+    {
+        $date = static::parse('9999-12-31 23:59:59.999999')->years(self::getEndOfTimeYear());
+        $date->endOfTime = true;
+
+        return $date;
+    }
+
+    /**
+     * @codeCoverageIgnore
+     */
+    private static function getEndOfTimeYear(): int
+    {
+        if (version_compare(PHP_VERSION, '7.3.0-dev', '<')) {
+            return 145261681241552;
+        }
+
+        // Remove if https://bugs.php.net/bug.php?id=81107 is fixed
+        if (version_compare(PHP_VERSION, '8.1.0-dev', '>=')) {
+            return 1118290769066902787;
+        }
+
+        return PHP_INT_MAX;
+    }
+
+    /**
+     * @codeCoverageIgnore
+     */
+    private static function getStartOfTimeYear(): int
+    {
+        if (version_compare(PHP_VERSION, '7.3.0-dev', '<')) {
+            return -135908816449551;
+        }
+
+        // Remove if https://bugs.php.net/bug.php?id=81107 is fixed
+        if (version_compare(PHP_VERSION, '8.1.0-dev', '>=')) {
+            return -1118290769066898816;
+        }
+
+        return max(PHP_INT_MIN, -9223372036854773760);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/CarbonInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/CarbonInterface.php
new file mode 100644
index 0000000..8f09507
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/CarbonInterface.php
@@ -0,0 +1,5032 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon;
+
+use BadMethodCallException;
+use Carbon\Exceptions\BadComparisonUnitException;
+use Carbon\Exceptions\ImmutableException;
+use Carbon\Exceptions\InvalidDateException;
+use Carbon\Exceptions\InvalidFormatException;
+use Carbon\Exceptions\UnknownGetterException;
+use Carbon\Exceptions\UnknownMethodException;
+use Carbon\Exceptions\UnknownSetterException;
+use Closure;
+use DateInterval;
+use DateTime;
+use DateTimeImmutable;
+use DateTimeInterface;
+use DateTimeZone;
+use JsonSerializable;
+use ReflectionException;
+use ReturnTypeWillChange;
+use Throwable;
+
+/**
+ * Common interface for Carbon and CarbonImmutable.
+ *
+ * <autodoc generated by `composer phpdoc`>
+ *
+ * @property      int              $year
+ * @property      int              $yearIso
+ * @property      int              $month
+ * @property      int              $day
+ * @property      int              $hour
+ * @property      int              $minute
+ * @property      int              $second
+ * @property      int              $micro
+ * @property      int              $microsecond
+ * @property      int|float|string $timestamp                                                                         seconds since the Unix Epoch
+ * @property      string           $englishDayOfWeek                                                                  the day of week in English
+ * @property      string           $shortEnglishDayOfWeek                                                             the abbreviated day of week in English
+ * @property      string           $englishMonth                                                                      the month in English
+ * @property      string           $shortEnglishMonth                                                                 the abbreviated month in English
+ * @property      string           $localeDayOfWeek                                                                   the day of week in current locale LC_TIME
+ * @property      string           $shortLocaleDayOfWeek                                                              the abbreviated day of week in current locale LC_TIME
+ * @property      string           $localeMonth                                                                       the month in current locale LC_TIME
+ * @property      string           $shortLocaleMonth                                                                  the abbreviated month in current locale LC_TIME
+ * @property      int              $milliseconds
+ * @property      int              $millisecond
+ * @property      int              $milli
+ * @property      int              $week                                                                              1 through 53
+ * @property      int              $isoWeek                                                                           1 through 53
+ * @property      int              $weekYear                                                                          year according to week format
+ * @property      int              $isoWeekYear                                                                       year according to ISO week format
+ * @property      int              $dayOfYear                                                                         1 through 366
+ * @property      int              $age                                                                               does a diffInYears() with default parameters
+ * @property      int              $offset                                                                            the timezone offset in seconds from UTC
+ * @property      int              $offsetMinutes                                                                     the timezone offset in minutes from UTC
+ * @property      int              $offsetHours                                                                       the timezone offset in hours from UTC
+ * @property      CarbonTimeZone   $timezone                                                                          the current timezone
+ * @property      CarbonTimeZone   $tz                                                                                alias of $timezone
+ * @property-read int              $dayOfWeek                                                                         0 (for Sunday) through 6 (for Saturday)
+ * @property-read int              $dayOfWeekIso                                                                      1 (for Monday) through 7 (for Sunday)
+ * @property-read int              $weekOfYear                                                                        ISO-8601 week number of year, weeks starting on Monday
+ * @property-read int              $daysInMonth                                                                       number of days in the given month
+ * @property-read string           $latinMeridiem                                                                     "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark)
+ * @property-read string           $latinUpperMeridiem                                                                "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark)
+ * @property-read string           $timezoneAbbreviatedName                                                           the current timezone abbreviated name
+ * @property-read string           $tzAbbrName                                                                        alias of $timezoneAbbreviatedName
+ * @property-read string           $dayName                                                                           long name of weekday translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string           $shortDayName                                                                      short name of weekday translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string           $minDayName                                                                        very short name of weekday translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string           $monthName                                                                         long name of month translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string           $shortMonthName                                                                    short name of month translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string           $meridiem                                                                          lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language
+ * @property-read string           $upperMeridiem                                                                     uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language
+ * @property-read int              $noZeroHour                                                                        current hour from 1 to 24
+ * @property-read int              $weeksInYear                                                                       51 through 53
+ * @property-read int              $isoWeeksInYear                                                                    51 through 53
+ * @property-read int              $weekOfMonth                                                                       1 through 5
+ * @property-read int              $weekNumberInMonth                                                                 1 through 5
+ * @property-read int              $firstWeekDay                                                                      0 through 6
+ * @property-read int              $lastWeekDay                                                                       0 through 6
+ * @property-read int              $daysInYear                                                                        365 or 366
+ * @property-read int              $quarter                                                                           the quarter of this instance, 1 - 4
+ * @property-read int              $decade                                                                            the decade of this instance
+ * @property-read int              $century                                                                           the century of this instance
+ * @property-read int              $millennium                                                                        the millennium of this instance
+ * @property-read bool             $dst                                                                               daylight savings time indicator, true if DST, false otherwise
+ * @property-read bool             $local                                                                             checks if the timezone is local, true if local, false otherwise
+ * @property-read bool             $utc                                                                               checks if the timezone is UTC, true if UTC, false otherwise
+ * @property-read string           $timezoneName                                                                      the current timezone name
+ * @property-read string           $tzName                                                                            alias of $timezoneName
+ * @property-read string           $locale                                                                            locale of the current instance
+ *
+ * @method        bool             isUtc()                                                                            Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.)
+ * @method        bool             isLocal()                                                                          Check if the current instance has non-UTC timezone.
+ * @method        bool             isValid()                                                                          Check if the current instance is a valid date.
+ * @method        bool             isDST()                                                                            Check if the current instance is in a daylight saving time.
+ * @method        bool             isSunday()                                                                         Checks if the instance day is sunday.
+ * @method        bool             isMonday()                                                                         Checks if the instance day is monday.
+ * @method        bool             isTuesday()                                                                        Checks if the instance day is tuesday.
+ * @method        bool             isWednesday()                                                                      Checks if the instance day is wednesday.
+ * @method        bool             isThursday()                                                                       Checks if the instance day is thursday.
+ * @method        bool             isFriday()                                                                         Checks if the instance day is friday.
+ * @method        bool             isSaturday()                                                                       Checks if the instance day is saturday.
+ * @method        bool             isSameYear(Carbon|DateTimeInterface|string|null $date = null)                      Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool             isCurrentYear()                                                                    Checks if the instance is in the same year as the current moment.
+ * @method        bool             isNextYear()                                                                       Checks if the instance is in the same year as the current moment next year.
+ * @method        bool             isLastYear()                                                                       Checks if the instance is in the same year as the current moment last year.
+ * @method        bool             isSameWeek(Carbon|DateTimeInterface|string|null $date = null)                      Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool             isCurrentWeek()                                                                    Checks if the instance is in the same week as the current moment.
+ * @method        bool             isNextWeek()                                                                       Checks if the instance is in the same week as the current moment next week.
+ * @method        bool             isLastWeek()                                                                       Checks if the instance is in the same week as the current moment last week.
+ * @method        bool             isSameDay(Carbon|DateTimeInterface|string|null $date = null)                       Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool             isCurrentDay()                                                                     Checks if the instance is in the same day as the current moment.
+ * @method        bool             isNextDay()                                                                        Checks if the instance is in the same day as the current moment next day.
+ * @method        bool             isLastDay()                                                                        Checks if the instance is in the same day as the current moment last day.
+ * @method        bool             isSameHour(Carbon|DateTimeInterface|string|null $date = null)                      Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool             isCurrentHour()                                                                    Checks if the instance is in the same hour as the current moment.
+ * @method        bool             isNextHour()                                                                       Checks if the instance is in the same hour as the current moment next hour.
+ * @method        bool             isLastHour()                                                                       Checks if the instance is in the same hour as the current moment last hour.
+ * @method        bool             isSameMinute(Carbon|DateTimeInterface|string|null $date = null)                    Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool             isCurrentMinute()                                                                  Checks if the instance is in the same minute as the current moment.
+ * @method        bool             isNextMinute()                                                                     Checks if the instance is in the same minute as the current moment next minute.
+ * @method        bool             isLastMinute()                                                                     Checks if the instance is in the same minute as the current moment last minute.
+ * @method        bool             isSameSecond(Carbon|DateTimeInterface|string|null $date = null)                    Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool             isCurrentSecond()                                                                  Checks if the instance is in the same second as the current moment.
+ * @method        bool             isNextSecond()                                                                     Checks if the instance is in the same second as the current moment next second.
+ * @method        bool             isLastSecond()                                                                     Checks if the instance is in the same second as the current moment last second.
+ * @method        bool             isSameMicro(Carbon|DateTimeInterface|string|null $date = null)                     Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool             isCurrentMicro()                                                                   Checks if the instance is in the same microsecond as the current moment.
+ * @method        bool             isNextMicro()                                                                      Checks if the instance is in the same microsecond as the current moment next microsecond.
+ * @method        bool             isLastMicro()                                                                      Checks if the instance is in the same microsecond as the current moment last microsecond.
+ * @method        bool             isSameMicrosecond(Carbon|DateTimeInterface|string|null $date = null)               Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool             isCurrentMicrosecond()                                                             Checks if the instance is in the same microsecond as the current moment.
+ * @method        bool             isNextMicrosecond()                                                                Checks if the instance is in the same microsecond as the current moment next microsecond.
+ * @method        bool             isLastMicrosecond()                                                                Checks if the instance is in the same microsecond as the current moment last microsecond.
+ * @method        bool             isCurrentMonth()                                                                   Checks if the instance is in the same month as the current moment.
+ * @method        bool             isNextMonth()                                                                      Checks if the instance is in the same month as the current moment next month.
+ * @method        bool             isLastMonth()                                                                      Checks if the instance is in the same month as the current moment last month.
+ * @method        bool             isCurrentQuarter()                                                                 Checks if the instance is in the same quarter as the current moment.
+ * @method        bool             isNextQuarter()                                                                    Checks if the instance is in the same quarter as the current moment next quarter.
+ * @method        bool             isLastQuarter()                                                                    Checks if the instance is in the same quarter as the current moment last quarter.
+ * @method        bool             isSameDecade(Carbon|DateTimeInterface|string|null $date = null)                    Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool             isCurrentDecade()                                                                  Checks if the instance is in the same decade as the current moment.
+ * @method        bool             isNextDecade()                                                                     Checks if the instance is in the same decade as the current moment next decade.
+ * @method        bool             isLastDecade()                                                                     Checks if the instance is in the same decade as the current moment last decade.
+ * @method        bool             isSameCentury(Carbon|DateTimeInterface|string|null $date = null)                   Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool             isCurrentCentury()                                                                 Checks if the instance is in the same century as the current moment.
+ * @method        bool             isNextCentury()                                                                    Checks if the instance is in the same century as the current moment next century.
+ * @method        bool             isLastCentury()                                                                    Checks if the instance is in the same century as the current moment last century.
+ * @method        bool             isSameMillennium(Carbon|DateTimeInterface|string|null $date = null)                Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool             isCurrentMillennium()                                                              Checks if the instance is in the same millennium as the current moment.
+ * @method        bool             isNextMillennium()                                                                 Checks if the instance is in the same millennium as the current moment next millennium.
+ * @method        bool             isLastMillennium()                                                                 Checks if the instance is in the same millennium as the current moment last millennium.
+ * @method        CarbonInterface  years(int $value)                                                                  Set current instance year to the given value.
+ * @method        CarbonInterface  year(int $value)                                                                   Set current instance year to the given value.
+ * @method        CarbonInterface  setYears(int $value)                                                               Set current instance year to the given value.
+ * @method        CarbonInterface  setYear(int $value)                                                                Set current instance year to the given value.
+ * @method        CarbonInterface  months(int $value)                                                                 Set current instance month to the given value.
+ * @method        CarbonInterface  month(int $value)                                                                  Set current instance month to the given value.
+ * @method        CarbonInterface  setMonths(int $value)                                                              Set current instance month to the given value.
+ * @method        CarbonInterface  setMonth(int $value)                                                               Set current instance month to the given value.
+ * @method        CarbonInterface  days(int $value)                                                                   Set current instance day to the given value.
+ * @method        CarbonInterface  day(int $value)                                                                    Set current instance day to the given value.
+ * @method        CarbonInterface  setDays(int $value)                                                                Set current instance day to the given value.
+ * @method        CarbonInterface  setDay(int $value)                                                                 Set current instance day to the given value.
+ * @method        CarbonInterface  hours(int $value)                                                                  Set current instance hour to the given value.
+ * @method        CarbonInterface  hour(int $value)                                                                   Set current instance hour to the given value.
+ * @method        CarbonInterface  setHours(int $value)                                                               Set current instance hour to the given value.
+ * @method        CarbonInterface  setHour(int $value)                                                                Set current instance hour to the given value.
+ * @method        CarbonInterface  minutes(int $value)                                                                Set current instance minute to the given value.
+ * @method        CarbonInterface  minute(int $value)                                                                 Set current instance minute to the given value.
+ * @method        CarbonInterface  setMinutes(int $value)                                                             Set current instance minute to the given value.
+ * @method        CarbonInterface  setMinute(int $value)                                                              Set current instance minute to the given value.
+ * @method        CarbonInterface  seconds(int $value)                                                                Set current instance second to the given value.
+ * @method        CarbonInterface  second(int $value)                                                                 Set current instance second to the given value.
+ * @method        CarbonInterface  setSeconds(int $value)                                                             Set current instance second to the given value.
+ * @method        CarbonInterface  setSecond(int $value)                                                              Set current instance second to the given value.
+ * @method        CarbonInterface  millis(int $value)                                                                 Set current instance millisecond to the given value.
+ * @method        CarbonInterface  milli(int $value)                                                                  Set current instance millisecond to the given value.
+ * @method        CarbonInterface  setMillis(int $value)                                                              Set current instance millisecond to the given value.
+ * @method        CarbonInterface  setMilli(int $value)                                                               Set current instance millisecond to the given value.
+ * @method        CarbonInterface  milliseconds(int $value)                                                           Set current instance millisecond to the given value.
+ * @method        CarbonInterface  millisecond(int $value)                                                            Set current instance millisecond to the given value.
+ * @method        CarbonInterface  setMilliseconds(int $value)                                                        Set current instance millisecond to the given value.
+ * @method        CarbonInterface  setMillisecond(int $value)                                                         Set current instance millisecond to the given value.
+ * @method        CarbonInterface  micros(int $value)                                                                 Set current instance microsecond to the given value.
+ * @method        CarbonInterface  micro(int $value)                                                                  Set current instance microsecond to the given value.
+ * @method        CarbonInterface  setMicros(int $value)                                                              Set current instance microsecond to the given value.
+ * @method        CarbonInterface  setMicro(int $value)                                                               Set current instance microsecond to the given value.
+ * @method        CarbonInterface  microseconds(int $value)                                                           Set current instance microsecond to the given value.
+ * @method        CarbonInterface  microsecond(int $value)                                                            Set current instance microsecond to the given value.
+ * @method        CarbonInterface  setMicroseconds(int $value)                                                        Set current instance microsecond to the given value.
+ * @method        CarbonInterface  setMicrosecond(int $value)                                                         Set current instance microsecond to the given value.
+ * @method        CarbonInterface  addYears(int $value = 1)                                                           Add years (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addYear()                                                                          Add one year to the instance (using date interval).
+ * @method        CarbonInterface  subYears(int $value = 1)                                                           Sub years (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subYear()                                                                          Sub one year to the instance (using date interval).
+ * @method        CarbonInterface  addYearsWithOverflow(int $value = 1)                                               Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addYearWithOverflow()                                                              Add one year to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subYearsWithOverflow(int $value = 1)                                               Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subYearWithOverflow()                                                              Sub one year to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addYearsWithoutOverflow(int $value = 1)                                            Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addYearWithoutOverflow()                                                           Add one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subYearsWithoutOverflow(int $value = 1)                                            Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subYearWithoutOverflow()                                                           Sub one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addYearsWithNoOverflow(int $value = 1)                                             Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addYearWithNoOverflow()                                                            Add one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subYearsWithNoOverflow(int $value = 1)                                             Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subYearWithNoOverflow()                                                            Sub one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addYearsNoOverflow(int $value = 1)                                                 Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addYearNoOverflow()                                                                Add one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subYearsNoOverflow(int $value = 1)                                                 Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subYearNoOverflow()                                                                Sub one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addMonths(int $value = 1)                                                          Add months (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addMonth()                                                                         Add one month to the instance (using date interval).
+ * @method        CarbonInterface  subMonths(int $value = 1)                                                          Sub months (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subMonth()                                                                         Sub one month to the instance (using date interval).
+ * @method        CarbonInterface  addMonthsWithOverflow(int $value = 1)                                              Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addMonthWithOverflow()                                                             Add one month to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subMonthsWithOverflow(int $value = 1)                                              Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subMonthWithOverflow()                                                             Sub one month to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addMonthsWithoutOverflow(int $value = 1)                                           Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addMonthWithoutOverflow()                                                          Add one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMonthsWithoutOverflow(int $value = 1)                                           Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMonthWithoutOverflow()                                                          Sub one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addMonthsWithNoOverflow(int $value = 1)                                            Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addMonthWithNoOverflow()                                                           Add one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMonthsWithNoOverflow(int $value = 1)                                            Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMonthWithNoOverflow()                                                           Sub one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addMonthsNoOverflow(int $value = 1)                                                Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addMonthNoOverflow()                                                               Add one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMonthsNoOverflow(int $value = 1)                                                Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMonthNoOverflow()                                                               Sub one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addDays(int $value = 1)                                                            Add days (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addDay()                                                                           Add one day to the instance (using date interval).
+ * @method        CarbonInterface  subDays(int $value = 1)                                                            Sub days (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subDay()                                                                           Sub one day to the instance (using date interval).
+ * @method        CarbonInterface  addHours(int $value = 1)                                                           Add hours (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addHour()                                                                          Add one hour to the instance (using date interval).
+ * @method        CarbonInterface  subHours(int $value = 1)                                                           Sub hours (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subHour()                                                                          Sub one hour to the instance (using date interval).
+ * @method        CarbonInterface  addMinutes(int $value = 1)                                                         Add minutes (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addMinute()                                                                        Add one minute to the instance (using date interval).
+ * @method        CarbonInterface  subMinutes(int $value = 1)                                                         Sub minutes (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subMinute()                                                                        Sub one minute to the instance (using date interval).
+ * @method        CarbonInterface  addSeconds(int $value = 1)                                                         Add seconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addSecond()                                                                        Add one second to the instance (using date interval).
+ * @method        CarbonInterface  subSeconds(int $value = 1)                                                         Sub seconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subSecond()                                                                        Sub one second to the instance (using date interval).
+ * @method        CarbonInterface  addMillis(int $value = 1)                                                          Add milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addMilli()                                                                         Add one millisecond to the instance (using date interval).
+ * @method        CarbonInterface  subMillis(int $value = 1)                                                          Sub milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subMilli()                                                                         Sub one millisecond to the instance (using date interval).
+ * @method        CarbonInterface  addMilliseconds(int $value = 1)                                                    Add milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addMillisecond()                                                                   Add one millisecond to the instance (using date interval).
+ * @method        CarbonInterface  subMilliseconds(int $value = 1)                                                    Sub milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subMillisecond()                                                                   Sub one millisecond to the instance (using date interval).
+ * @method        CarbonInterface  addMicros(int $value = 1)                                                          Add microseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addMicro()                                                                         Add one microsecond to the instance (using date interval).
+ * @method        CarbonInterface  subMicros(int $value = 1)                                                          Sub microseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subMicro()                                                                         Sub one microsecond to the instance (using date interval).
+ * @method        CarbonInterface  addMicroseconds(int $value = 1)                                                    Add microseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addMicrosecond()                                                                   Add one microsecond to the instance (using date interval).
+ * @method        CarbonInterface  subMicroseconds(int $value = 1)                                                    Sub microseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subMicrosecond()                                                                   Sub one microsecond to the instance (using date interval).
+ * @method        CarbonInterface  addMillennia(int $value = 1)                                                       Add millennia (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addMillennium()                                                                    Add one millennium to the instance (using date interval).
+ * @method        CarbonInterface  subMillennia(int $value = 1)                                                       Sub millennia (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subMillennium()                                                                    Sub one millennium to the instance (using date interval).
+ * @method        CarbonInterface  addMillenniaWithOverflow(int $value = 1)                                           Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addMillenniumWithOverflow()                                                        Add one millennium to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subMillenniaWithOverflow(int $value = 1)                                           Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subMillenniumWithOverflow()                                                        Sub one millennium to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addMillenniaWithoutOverflow(int $value = 1)                                        Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addMillenniumWithoutOverflow()                                                     Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMillenniaWithoutOverflow(int $value = 1)                                        Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMillenniumWithoutOverflow()                                                     Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addMillenniaWithNoOverflow(int $value = 1)                                         Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addMillenniumWithNoOverflow()                                                      Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMillenniaWithNoOverflow(int $value = 1)                                         Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMillenniumWithNoOverflow()                                                      Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addMillenniaNoOverflow(int $value = 1)                                             Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addMillenniumNoOverflow()                                                          Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMillenniaNoOverflow(int $value = 1)                                             Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMillenniumNoOverflow()                                                          Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addCenturies(int $value = 1)                                                       Add centuries (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addCentury()                                                                       Add one century to the instance (using date interval).
+ * @method        CarbonInterface  subCenturies(int $value = 1)                                                       Sub centuries (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subCentury()                                                                       Sub one century to the instance (using date interval).
+ * @method        CarbonInterface  addCenturiesWithOverflow(int $value = 1)                                           Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addCenturyWithOverflow()                                                           Add one century to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subCenturiesWithOverflow(int $value = 1)                                           Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subCenturyWithOverflow()                                                           Sub one century to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addCenturiesWithoutOverflow(int $value = 1)                                        Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addCenturyWithoutOverflow()                                                        Add one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subCenturiesWithoutOverflow(int $value = 1)                                        Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subCenturyWithoutOverflow()                                                        Sub one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addCenturiesWithNoOverflow(int $value = 1)                                         Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addCenturyWithNoOverflow()                                                         Add one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subCenturiesWithNoOverflow(int $value = 1)                                         Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subCenturyWithNoOverflow()                                                         Sub one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addCenturiesNoOverflow(int $value = 1)                                             Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addCenturyNoOverflow()                                                             Add one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subCenturiesNoOverflow(int $value = 1)                                             Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subCenturyNoOverflow()                                                             Sub one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addDecades(int $value = 1)                                                         Add decades (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addDecade()                                                                        Add one decade to the instance (using date interval).
+ * @method        CarbonInterface  subDecades(int $value = 1)                                                         Sub decades (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subDecade()                                                                        Sub one decade to the instance (using date interval).
+ * @method        CarbonInterface  addDecadesWithOverflow(int $value = 1)                                             Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addDecadeWithOverflow()                                                            Add one decade to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subDecadesWithOverflow(int $value = 1)                                             Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subDecadeWithOverflow()                                                            Sub one decade to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addDecadesWithoutOverflow(int $value = 1)                                          Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addDecadeWithoutOverflow()                                                         Add one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subDecadesWithoutOverflow(int $value = 1)                                          Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subDecadeWithoutOverflow()                                                         Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addDecadesWithNoOverflow(int $value = 1)                                           Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addDecadeWithNoOverflow()                                                          Add one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subDecadesWithNoOverflow(int $value = 1)                                           Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subDecadeWithNoOverflow()                                                          Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addDecadesNoOverflow(int $value = 1)                                               Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addDecadeNoOverflow()                                                              Add one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subDecadesNoOverflow(int $value = 1)                                               Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subDecadeNoOverflow()                                                              Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addQuarters(int $value = 1)                                                        Add quarters (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addQuarter()                                                                       Add one quarter to the instance (using date interval).
+ * @method        CarbonInterface  subQuarters(int $value = 1)                                                        Sub quarters (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subQuarter()                                                                       Sub one quarter to the instance (using date interval).
+ * @method        CarbonInterface  addQuartersWithOverflow(int $value = 1)                                            Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addQuarterWithOverflow()                                                           Add one quarter to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subQuartersWithOverflow(int $value = 1)                                            Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subQuarterWithOverflow()                                                           Sub one quarter to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addQuartersWithoutOverflow(int $value = 1)                                         Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addQuarterWithoutOverflow()                                                        Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subQuartersWithoutOverflow(int $value = 1)                                         Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subQuarterWithoutOverflow()                                                        Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addQuartersWithNoOverflow(int $value = 1)                                          Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addQuarterWithNoOverflow()                                                         Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subQuartersWithNoOverflow(int $value = 1)                                          Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subQuarterWithNoOverflow()                                                         Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addQuartersNoOverflow(int $value = 1)                                              Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addQuarterNoOverflow()                                                             Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subQuartersNoOverflow(int $value = 1)                                              Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subQuarterNoOverflow()                                                             Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addWeeks(int $value = 1)                                                           Add weeks (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addWeek()                                                                          Add one week to the instance (using date interval).
+ * @method        CarbonInterface  subWeeks(int $value = 1)                                                           Sub weeks (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subWeek()                                                                          Sub one week to the instance (using date interval).
+ * @method        CarbonInterface  addWeekdays(int $value = 1)                                                        Add weekdays (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addWeekday()                                                                       Add one weekday to the instance (using date interval).
+ * @method        CarbonInterface  subWeekdays(int $value = 1)                                                        Sub weekdays (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subWeekday()                                                                       Sub one weekday to the instance (using date interval).
+ * @method        CarbonInterface  addRealMicros(int $value = 1)                                                      Add microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealMicro()                                                                     Add one microsecond to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMicros(int $value = 1)                                                      Sub microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMicro()                                                                     Sub one microsecond to the instance (using timestamp).
+ * @method        CarbonPeriod     microsUntil($endDate = null, int $factor = 1)                                      Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.
+ * @method        CarbonInterface  addRealMicroseconds(int $value = 1)                                                Add microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealMicrosecond()                                                               Add one microsecond to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMicroseconds(int $value = 1)                                                Sub microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMicrosecond()                                                               Sub one microsecond to the instance (using timestamp).
+ * @method        CarbonPeriod     microsecondsUntil($endDate = null, int $factor = 1)                                Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.
+ * @method        CarbonInterface  addRealMillis(int $value = 1)                                                      Add milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealMilli()                                                                     Add one millisecond to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMillis(int $value = 1)                                                      Sub milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMilli()                                                                     Sub one millisecond to the instance (using timestamp).
+ * @method        CarbonPeriod     millisUntil($endDate = null, int $factor = 1)                                      Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.
+ * @method        CarbonInterface  addRealMilliseconds(int $value = 1)                                                Add milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealMillisecond()                                                               Add one millisecond to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMilliseconds(int $value = 1)                                                Sub milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMillisecond()                                                               Sub one millisecond to the instance (using timestamp).
+ * @method        CarbonPeriod     millisecondsUntil($endDate = null, int $factor = 1)                                Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.
+ * @method        CarbonInterface  addRealSeconds(int $value = 1)                                                     Add seconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealSecond()                                                                    Add one second to the instance (using timestamp).
+ * @method        CarbonInterface  subRealSeconds(int $value = 1)                                                     Sub seconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealSecond()                                                                    Sub one second to the instance (using timestamp).
+ * @method        CarbonPeriod     secondsUntil($endDate = null, int $factor = 1)                                     Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given.
+ * @method        CarbonInterface  addRealMinutes(int $value = 1)                                                     Add minutes (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealMinute()                                                                    Add one minute to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMinutes(int $value = 1)                                                     Sub minutes (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMinute()                                                                    Sub one minute to the instance (using timestamp).
+ * @method        CarbonPeriod     minutesUntil($endDate = null, int $factor = 1)                                     Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given.
+ * @method        CarbonInterface  addRealHours(int $value = 1)                                                       Add hours (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealHour()                                                                      Add one hour to the instance (using timestamp).
+ * @method        CarbonInterface  subRealHours(int $value = 1)                                                       Sub hours (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealHour()                                                                      Sub one hour to the instance (using timestamp).
+ * @method        CarbonPeriod     hoursUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given.
+ * @method        CarbonInterface  addRealDays(int $value = 1)                                                        Add days (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealDay()                                                                       Add one day to the instance (using timestamp).
+ * @method        CarbonInterface  subRealDays(int $value = 1)                                                        Sub days (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealDay()                                                                       Sub one day to the instance (using timestamp).
+ * @method        CarbonPeriod     daysUntil($endDate = null, int $factor = 1)                                        Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given.
+ * @method        CarbonInterface  addRealWeeks(int $value = 1)                                                       Add weeks (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealWeek()                                                                      Add one week to the instance (using timestamp).
+ * @method        CarbonInterface  subRealWeeks(int $value = 1)                                                       Sub weeks (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealWeek()                                                                      Sub one week to the instance (using timestamp).
+ * @method        CarbonPeriod     weeksUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given.
+ * @method        CarbonInterface  addRealMonths(int $value = 1)                                                      Add months (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealMonth()                                                                     Add one month to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMonths(int $value = 1)                                                      Sub months (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMonth()                                                                     Sub one month to the instance (using timestamp).
+ * @method        CarbonPeriod     monthsUntil($endDate = null, int $factor = 1)                                      Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given.
+ * @method        CarbonInterface  addRealQuarters(int $value = 1)                                                    Add quarters (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealQuarter()                                                                   Add one quarter to the instance (using timestamp).
+ * @method        CarbonInterface  subRealQuarters(int $value = 1)                                                    Sub quarters (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealQuarter()                                                                   Sub one quarter to the instance (using timestamp).
+ * @method        CarbonPeriod     quartersUntil($endDate = null, int $factor = 1)                                    Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given.
+ * @method        CarbonInterface  addRealYears(int $value = 1)                                                       Add years (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealYear()                                                                      Add one year to the instance (using timestamp).
+ * @method        CarbonInterface  subRealYears(int $value = 1)                                                       Sub years (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealYear()                                                                      Sub one year to the instance (using timestamp).
+ * @method        CarbonPeriod     yearsUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given.
+ * @method        CarbonInterface  addRealDecades(int $value = 1)                                                     Add decades (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealDecade()                                                                    Add one decade to the instance (using timestamp).
+ * @method        CarbonInterface  subRealDecades(int $value = 1)                                                     Sub decades (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealDecade()                                                                    Sub one decade to the instance (using timestamp).
+ * @method        CarbonPeriod     decadesUntil($endDate = null, int $factor = 1)                                     Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given.
+ * @method        CarbonInterface  addRealCenturies(int $value = 1)                                                   Add centuries (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealCentury()                                                                   Add one century to the instance (using timestamp).
+ * @method        CarbonInterface  subRealCenturies(int $value = 1)                                                   Sub centuries (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealCentury()                                                                   Sub one century to the instance (using timestamp).
+ * @method        CarbonPeriod     centuriesUntil($endDate = null, int $factor = 1)                                   Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given.
+ * @method        CarbonInterface  addRealMillennia(int $value = 1)                                                   Add millennia (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealMillennium()                                                                Add one millennium to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMillennia(int $value = 1)                                                   Sub millennia (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMillennium()                                                                Sub one millennium to the instance (using timestamp).
+ * @method        CarbonPeriod     millenniaUntil($endDate = null, int $factor = 1)                                   Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given.
+ * @method        CarbonInterface  roundYear(float $precision = 1, string $function = "round")                        Round the current instance year with given precision using the given function.
+ * @method        CarbonInterface  roundYears(float $precision = 1, string $function = "round")                       Round the current instance year with given precision using the given function.
+ * @method        CarbonInterface  floorYear(float $precision = 1)                                                    Truncate the current instance year with given precision.
+ * @method        CarbonInterface  floorYears(float $precision = 1)                                                   Truncate the current instance year with given precision.
+ * @method        CarbonInterface  ceilYear(float $precision = 1)                                                     Ceil the current instance year with given precision.
+ * @method        CarbonInterface  ceilYears(float $precision = 1)                                                    Ceil the current instance year with given precision.
+ * @method        CarbonInterface  roundMonth(float $precision = 1, string $function = "round")                       Round the current instance month with given precision using the given function.
+ * @method        CarbonInterface  roundMonths(float $precision = 1, string $function = "round")                      Round the current instance month with given precision using the given function.
+ * @method        CarbonInterface  floorMonth(float $precision = 1)                                                   Truncate the current instance month with given precision.
+ * @method        CarbonInterface  floorMonths(float $precision = 1)                                                  Truncate the current instance month with given precision.
+ * @method        CarbonInterface  ceilMonth(float $precision = 1)                                                    Ceil the current instance month with given precision.
+ * @method        CarbonInterface  ceilMonths(float $precision = 1)                                                   Ceil the current instance month with given precision.
+ * @method        CarbonInterface  roundDay(float $precision = 1, string $function = "round")                         Round the current instance day with given precision using the given function.
+ * @method        CarbonInterface  roundDays(float $precision = 1, string $function = "round")                        Round the current instance day with given precision using the given function.
+ * @method        CarbonInterface  floorDay(float $precision = 1)                                                     Truncate the current instance day with given precision.
+ * @method        CarbonInterface  floorDays(float $precision = 1)                                                    Truncate the current instance day with given precision.
+ * @method        CarbonInterface  ceilDay(float $precision = 1)                                                      Ceil the current instance day with given precision.
+ * @method        CarbonInterface  ceilDays(float $precision = 1)                                                     Ceil the current instance day with given precision.
+ * @method        CarbonInterface  roundHour(float $precision = 1, string $function = "round")                        Round the current instance hour with given precision using the given function.
+ * @method        CarbonInterface  roundHours(float $precision = 1, string $function = "round")                       Round the current instance hour with given precision using the given function.
+ * @method        CarbonInterface  floorHour(float $precision = 1)                                                    Truncate the current instance hour with given precision.
+ * @method        CarbonInterface  floorHours(float $precision = 1)                                                   Truncate the current instance hour with given precision.
+ * @method        CarbonInterface  ceilHour(float $precision = 1)                                                     Ceil the current instance hour with given precision.
+ * @method        CarbonInterface  ceilHours(float $precision = 1)                                                    Ceil the current instance hour with given precision.
+ * @method        CarbonInterface  roundMinute(float $precision = 1, string $function = "round")                      Round the current instance minute with given precision using the given function.
+ * @method        CarbonInterface  roundMinutes(float $precision = 1, string $function = "round")                     Round the current instance minute with given precision using the given function.
+ * @method        CarbonInterface  floorMinute(float $precision = 1)                                                  Truncate the current instance minute with given precision.
+ * @method        CarbonInterface  floorMinutes(float $precision = 1)                                                 Truncate the current instance minute with given precision.
+ * @method        CarbonInterface  ceilMinute(float $precision = 1)                                                   Ceil the current instance minute with given precision.
+ * @method        CarbonInterface  ceilMinutes(float $precision = 1)                                                  Ceil the current instance minute with given precision.
+ * @method        CarbonInterface  roundSecond(float $precision = 1, string $function = "round")                      Round the current instance second with given precision using the given function.
+ * @method        CarbonInterface  roundSeconds(float $precision = 1, string $function = "round")                     Round the current instance second with given precision using the given function.
+ * @method        CarbonInterface  floorSecond(float $precision = 1)                                                  Truncate the current instance second with given precision.
+ * @method        CarbonInterface  floorSeconds(float $precision = 1)                                                 Truncate the current instance second with given precision.
+ * @method        CarbonInterface  ceilSecond(float $precision = 1)                                                   Ceil the current instance second with given precision.
+ * @method        CarbonInterface  ceilSeconds(float $precision = 1)                                                  Ceil the current instance second with given precision.
+ * @method        CarbonInterface  roundMillennium(float $precision = 1, string $function = "round")                  Round the current instance millennium with given precision using the given function.
+ * @method        CarbonInterface  roundMillennia(float $precision = 1, string $function = "round")                   Round the current instance millennium with given precision using the given function.
+ * @method        CarbonInterface  floorMillennium(float $precision = 1)                                              Truncate the current instance millennium with given precision.
+ * @method        CarbonInterface  floorMillennia(float $precision = 1)                                               Truncate the current instance millennium with given precision.
+ * @method        CarbonInterface  ceilMillennium(float $precision = 1)                                               Ceil the current instance millennium with given precision.
+ * @method        CarbonInterface  ceilMillennia(float $precision = 1)                                                Ceil the current instance millennium with given precision.
+ * @method        CarbonInterface  roundCentury(float $precision = 1, string $function = "round")                     Round the current instance century with given precision using the given function.
+ * @method        CarbonInterface  roundCenturies(float $precision = 1, string $function = "round")                   Round the current instance century with given precision using the given function.
+ * @method        CarbonInterface  floorCentury(float $precision = 1)                                                 Truncate the current instance century with given precision.
+ * @method        CarbonInterface  floorCenturies(float $precision = 1)                                               Truncate the current instance century with given precision.
+ * @method        CarbonInterface  ceilCentury(float $precision = 1)                                                  Ceil the current instance century with given precision.
+ * @method        CarbonInterface  ceilCenturies(float $precision = 1)                                                Ceil the current instance century with given precision.
+ * @method        CarbonInterface  roundDecade(float $precision = 1, string $function = "round")                      Round the current instance decade with given precision using the given function.
+ * @method        CarbonInterface  roundDecades(float $precision = 1, string $function = "round")                     Round the current instance decade with given precision using the given function.
+ * @method        CarbonInterface  floorDecade(float $precision = 1)                                                  Truncate the current instance decade with given precision.
+ * @method        CarbonInterface  floorDecades(float $precision = 1)                                                 Truncate the current instance decade with given precision.
+ * @method        CarbonInterface  ceilDecade(float $precision = 1)                                                   Ceil the current instance decade with given precision.
+ * @method        CarbonInterface  ceilDecades(float $precision = 1)                                                  Ceil the current instance decade with given precision.
+ * @method        CarbonInterface  roundQuarter(float $precision = 1, string $function = "round")                     Round the current instance quarter with given precision using the given function.
+ * @method        CarbonInterface  roundQuarters(float $precision = 1, string $function = "round")                    Round the current instance quarter with given precision using the given function.
+ * @method        CarbonInterface  floorQuarter(float $precision = 1)                                                 Truncate the current instance quarter with given precision.
+ * @method        CarbonInterface  floorQuarters(float $precision = 1)                                                Truncate the current instance quarter with given precision.
+ * @method        CarbonInterface  ceilQuarter(float $precision = 1)                                                  Ceil the current instance quarter with given precision.
+ * @method        CarbonInterface  ceilQuarters(float $precision = 1)                                                 Ceil the current instance quarter with given precision.
+ * @method        CarbonInterface  roundMillisecond(float $precision = 1, string $function = "round")                 Round the current instance millisecond with given precision using the given function.
+ * @method        CarbonInterface  roundMilliseconds(float $precision = 1, string $function = "round")                Round the current instance millisecond with given precision using the given function.
+ * @method        CarbonInterface  floorMillisecond(float $precision = 1)                                             Truncate the current instance millisecond with given precision.
+ * @method        CarbonInterface  floorMilliseconds(float $precision = 1)                                            Truncate the current instance millisecond with given precision.
+ * @method        CarbonInterface  ceilMillisecond(float $precision = 1)                                              Ceil the current instance millisecond with given precision.
+ * @method        CarbonInterface  ceilMilliseconds(float $precision = 1)                                             Ceil the current instance millisecond with given precision.
+ * @method        CarbonInterface  roundMicrosecond(float $precision = 1, string $function = "round")                 Round the current instance microsecond with given precision using the given function.
+ * @method        CarbonInterface  roundMicroseconds(float $precision = 1, string $function = "round")                Round the current instance microsecond with given precision using the given function.
+ * @method        CarbonInterface  floorMicrosecond(float $precision = 1)                                             Truncate the current instance microsecond with given precision.
+ * @method        CarbonInterface  floorMicroseconds(float $precision = 1)                                            Truncate the current instance microsecond with given precision.
+ * @method        CarbonInterface  ceilMicrosecond(float $precision = 1)                                              Ceil the current instance microsecond with given precision.
+ * @method        CarbonInterface  ceilMicroseconds(float $precision = 1)                                             Ceil the current instance microsecond with given precision.
+ * @method        string           shortAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1)        Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string           longAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1)         Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string           shortRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1)        Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string           longRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1)         Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string           shortRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1)   Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string           longRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1)    Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string           shortRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string           longRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1)  Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ *
+ * </autodoc>
+ */
+interface CarbonInterface extends DateTimeInterface, JsonSerializable
+{
+    /**
+     * Diff wording options(expressed in octal).
+     */
+    public const NO_ZERO_DIFF = 01;
+    public const JUST_NOW = 02;
+    public const ONE_DAY_WORDS = 04;
+    public const TWO_DAY_WORDS = 010;
+    public const SEQUENTIAL_PARTS_ONLY = 020;
+    public const ROUND = 040;
+    public const FLOOR = 0100;
+    public const CEIL = 0200;
+
+    /**
+     * Diff syntax options.
+     */
+    public const DIFF_ABSOLUTE = 1; // backward compatibility with true
+    public const DIFF_RELATIVE_AUTO = 0; // backward compatibility with false
+    public const DIFF_RELATIVE_TO_NOW = 2;
+    public const DIFF_RELATIVE_TO_OTHER = 3;
+
+    /**
+     * Translate string options.
+     */
+    public const TRANSLATE_MONTHS = 1;
+    public const TRANSLATE_DAYS = 2;
+    public const TRANSLATE_UNITS = 4;
+    public const TRANSLATE_MERIDIEM = 8;
+    public const TRANSLATE_DIFF = 0x10;
+    public const TRANSLATE_ALL = self::TRANSLATE_MONTHS | self::TRANSLATE_DAYS | self::TRANSLATE_UNITS | self::TRANSLATE_MERIDIEM | self::TRANSLATE_DIFF;
+
+    /**
+     * The day constants.
+     */
+    public const SUNDAY = 0;
+    public const MONDAY = 1;
+    public const TUESDAY = 2;
+    public const WEDNESDAY = 3;
+    public const THURSDAY = 4;
+    public const FRIDAY = 5;
+    public const SATURDAY = 6;
+
+    /**
+     * The month constants.
+     * These aren't used by Carbon itself but exist for
+     * convenience sake alone.
+     */
+    public const JANUARY = 1;
+    public const FEBRUARY = 2;
+    public const MARCH = 3;
+    public const APRIL = 4;
+    public const MAY = 5;
+    public const JUNE = 6;
+    public const JULY = 7;
+    public const AUGUST = 8;
+    public const SEPTEMBER = 9;
+    public const OCTOBER = 10;
+    public const NOVEMBER = 11;
+    public const DECEMBER = 12;
+
+    /**
+     * Number of X in Y.
+     */
+    public const YEARS_PER_MILLENNIUM = 1000;
+    public const YEARS_PER_CENTURY = 100;
+    public const YEARS_PER_DECADE = 10;
+    public const MONTHS_PER_YEAR = 12;
+    public const MONTHS_PER_QUARTER = 3;
+    public const WEEKS_PER_YEAR = 52;
+    public const WEEKS_PER_MONTH = 4;
+    public const DAYS_PER_YEAR = 365;
+    public const DAYS_PER_WEEK = 7;
+    public const HOURS_PER_DAY = 24;
+    public const MINUTES_PER_HOUR = 60;
+    public const SECONDS_PER_MINUTE = 60;
+    public const MILLISECONDS_PER_SECOND = 1000;
+    public const MICROSECONDS_PER_MILLISECOND = 1000;
+    public const MICROSECONDS_PER_SECOND = 1000000;
+
+    /**
+     * Special settings to get the start of week from current locale culture.
+     */
+    public const WEEK_DAY_AUTO = 'auto';
+
+    /**
+     * RFC7231 DateTime format.
+     *
+     * @var string
+     */
+    public const RFC7231_FORMAT = 'D, d M Y H:i:s \G\M\T';
+
+    /**
+     * Default format to use for __toString method when type juggling occurs.
+     *
+     * @var string
+     */
+    public const DEFAULT_TO_STRING_FORMAT = 'Y-m-d H:i:s';
+
+    /**
+     * Format for converting mocked time, includes microseconds.
+     *
+     * @var string
+     */
+    public const MOCK_DATETIME_FORMAT = 'Y-m-d H:i:s.u';
+
+    /**
+     * Pattern detection for ->isoFormat and ::createFromIsoFormat.
+     *
+     * @var string
+     */
+    public const ISO_FORMAT_REGEXP = '(O[YMDHhms]|[Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY?|g{1,5}|G{1,5}|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?)';
+
+    // <methods>
+
+    /**
+     * Dynamically handle calls to the class.
+     *
+     * @param string $method     magic method name called
+     * @param array  $parameters parameters list
+     *
+     * @throws UnknownMethodException|BadMethodCallException|ReflectionException|Throwable
+     *
+     * @return mixed
+     */
+    public function __call($method, $parameters);
+
+    /**
+     * Dynamically handle calls to the class.
+     *
+     * @param string $method     magic method name called
+     * @param array  $parameters parameters list
+     *
+     * @throws BadMethodCallException
+     *
+     * @return mixed
+     */
+    public static function __callStatic($method, $parameters);
+
+    /**
+     * Update constructedObjectId on cloned.
+     */
+    public function __clone();
+
+    /**
+     * Create a new Carbon instance.
+     *
+     * Please see the testing aids section (specifically static::setTestNow())
+     * for more on the possibility of this constructor returning a test instance.
+     *
+     * @param DateTimeInterface|string|null $time
+     * @param DateTimeZone|string|null      $tz
+     *
+     * @throws InvalidFormatException
+     */
+    public function __construct($time = null, $tz = null);
+
+    /**
+     * Show truthy properties on var_dump().
+     *
+     * @return array
+     */
+    public function __debugInfo();
+
+    /**
+     * Get a part of the Carbon object
+     *
+     * @param string $name
+     *
+     * @throws UnknownGetterException
+     *
+     * @return string|int|bool|DateTimeZone|null
+     */
+    public function __get($name);
+
+    /**
+     * Check if an attribute exists on the object
+     *
+     * @param string $name
+     *
+     * @return bool
+     */
+    public function __isset($name);
+
+    /**
+     * Set a part of the Carbon object
+     *
+     * @param string                  $name
+     * @param string|int|DateTimeZone $value
+     *
+     * @throws UnknownSetterException|ReflectionException
+     *
+     * @return void
+     */
+    public function __set($name, $value);
+
+    /**
+     * The __set_state handler.
+     *
+     * @param string|array $dump
+     *
+     * @return static
+     */
+    #[ReturnTypeWillChange]
+    public static function __set_state($dump);
+
+    /**
+     * Returns the list of properties to dump on serialize() called on.
+     *
+     * @return array
+     */
+    public function __sleep();
+
+    /**
+     * Format the instance as a string using the set format
+     *
+     * @example
+     * ```
+     * echo Carbon::now(); // Carbon instances can be casted to string
+     * ```
+     *
+     * @return string
+     */
+    public function __toString();
+
+    /**
+     * Add given units or interval to the current instance.
+     *
+     * @example $date->add('hour', 3)
+     * @example $date->add(15, 'days')
+     * @example $date->add(CarbonInterval::days(4))
+     *
+     * @param string|DateInterval|Closure|CarbonConverterInterface $unit
+     * @param int                                                  $value
+     * @param bool|null                                            $overflow
+     *
+     * @return static
+     */
+    #[ReturnTypeWillChange]
+    public function add($unit, $value = 1, $overflow = null);
+
+    /**
+     * Add seconds to the instance using timestamp. Positive $value travels
+     * forward while negative $value travels into the past.
+     *
+     * @param string $unit
+     * @param int    $value
+     *
+     * @return static
+     */
+    public function addRealUnit($unit, $value = 1);
+
+    /**
+     * Add given units to the current instance.
+     *
+     * @param string    $unit
+     * @param int       $value
+     * @param bool|null $overflow
+     *
+     * @return static
+     */
+    public function addUnit($unit, $value = 1, $overflow = null);
+
+    /**
+     * Add any unit to a new value without overflowing current other unit given.
+     *
+     * @param string $valueUnit    unit name to modify
+     * @param int    $value        amount to add to the input unit
+     * @param string $overflowUnit unit name to not overflow
+     *
+     * @return static
+     */
+    public function addUnitNoOverflow($valueUnit, $value, $overflowUnit);
+
+    /**
+     * Get the difference in a human readable format in the current locale from an other
+     * instance given to now
+     *
+     * @param int|array $syntax  if array passed, parameters will be extracted from it, the array may contains:
+     *                           - 'syntax' entry (see below)
+     *                           - 'short' entry (see below)
+     *                           - 'parts' entry (see below)
+     *                           - 'options' entry (see below)
+     *                           - 'join' entry determines how to join multiple parts of the string
+     *                           `  - if $join is a string, it's used as a joiner glue
+     *                           `  - if $join is a callable/closure, it get the list of string and should return a string
+     *                           `  - if $join is an array, the first item will be the default glue, and the second item
+     *                           `    will be used instead of the glue for the last item
+     *                           `  - if $join is true, it will be guessed from the locale ('list' translation file entry)
+     *                           `  - if $join is missing, a space will be used as glue
+     *                           if int passed, it add modifiers:
+     *                           Possible values:
+     *                           - CarbonInterface::DIFF_ABSOLUTE          no modifiers
+     *                           - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier
+     *                           - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier
+     *                           Default value: CarbonInterface::DIFF_ABSOLUTE
+     * @param bool      $short   displays short format of time units
+     * @param int       $parts   maximum number of parts to display (default value: 1: single part)
+     * @param int       $options human diff options
+     *
+     * @return string
+     */
+    public function ago($syntax = null, $short = false, $parts = 1, $options = null);
+
+    /**
+     * Modify the current instance to the average of a given instance (default now) and the current instance
+     * (second-precision).
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|null $date
+     *
+     * @return static
+     */
+    public function average($date = null);
+
+    /**
+     * Clone the current instance if it's mutable.
+     *
+     * This method is convenient to ensure you don't mutate the initial object
+     * but avoid to make a useless copy of it if it's already immutable.
+     *
+     * @return static
+     */
+    public function avoidMutation();
+
+    /**
+     * Determines if the instance is between two others.
+     *
+     * The third argument allow you to specify if bounds are included or not (true by default)
+     * but for when you including/excluding bounds may produce different results in your application,
+     * we recommend to use the explicit methods ->betweenIncluded() or ->betweenExcluded() instead.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25')->between('2018-07-14', '2018-08-01'); // true
+     * Carbon::parse('2018-07-25')->between('2018-08-01', '2018-08-20'); // false
+     * Carbon::parse('2018-07-25')->between('2018-07-25', '2018-08-01'); // true
+     * Carbon::parse('2018-07-25')->between('2018-07-25', '2018-08-01', false); // false
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2
+     * @param bool                                    $equal Indicates if an equal to comparison should be done
+     *
+     * @return bool
+     */
+    public function between($date1, $date2, $equal = true): bool;
+
+    /**
+     * Determines if the instance is between two others, bounds excluded.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25')->betweenExcluded('2018-07-14', '2018-08-01'); // true
+     * Carbon::parse('2018-07-25')->betweenExcluded('2018-08-01', '2018-08-20'); // false
+     * Carbon::parse('2018-07-25')->betweenExcluded('2018-07-25', '2018-08-01'); // false
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2
+     *
+     * @return bool
+     */
+    public function betweenExcluded($date1, $date2): bool;
+
+    /**
+     * Determines if the instance is between two others, bounds included.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25')->betweenIncluded('2018-07-14', '2018-08-01'); // true
+     * Carbon::parse('2018-07-25')->betweenIncluded('2018-08-01', '2018-08-20'); // false
+     * Carbon::parse('2018-07-25')->betweenIncluded('2018-07-25', '2018-08-01'); // true
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2
+     *
+     * @return bool
+     */
+    public function betweenIncluded($date1, $date2): bool;
+
+    /**
+     * Returns either day of week + time (e.g. "Last Friday at 3:30 PM") if reference time is within 7 days,
+     * or a calendar date (e.g. "10/29/2017") otherwise.
+     *
+     * Language, date and time formats will change according to the current locale.
+     *
+     * @param Carbon|\DateTimeInterface|string|null $referenceTime
+     * @param array                                 $formats
+     *
+     * @return string
+     */
+    public function calendar($referenceTime = null, array $formats = []);
+
+    /**
+     * Checks if the (date)time string is in a given format and valid to create a
+     * new instance.
+     *
+     * @example
+     * ```
+     * Carbon::canBeCreatedFromFormat('11:12:45', 'h:i:s'); // true
+     * Carbon::canBeCreatedFromFormat('13:12:45', 'h:i:s'); // false
+     * ```
+     *
+     * @param string $date
+     * @param string $format
+     *
+     * @return bool
+     */
+    public static function canBeCreatedFromFormat($date, $format);
+
+    /**
+     * Return the Carbon instance passed through, a now instance in the same timezone
+     * if null given or parse the input if string given.
+     *
+     * @param Carbon|\Carbon\CarbonPeriod|\Carbon\CarbonInterval|\DateInterval|\DatePeriod|DateTimeInterface|string|null $date
+     *
+     * @return static
+     */
+    public function carbonize($date = null);
+
+    /**
+     * Cast the current instance into the given class.
+     *
+     * @param string $className The $className::instance() method will be called to cast the current object.
+     *
+     * @return DateTimeInterface
+     */
+    public function cast(string $className);
+
+    /**
+     * Ceil the current instance second with given precision if specified.
+     *
+     * @param float|int|string|\DateInterval|null $precision
+     *
+     * @return CarbonInterface
+     */
+    public function ceil($precision = 1);
+
+    /**
+     * Ceil the current instance at the given unit with given precision if specified.
+     *
+     * @param string    $unit
+     * @param float|int $precision
+     *
+     * @return CarbonInterface
+     */
+    public function ceilUnit($unit, $precision = 1);
+
+    /**
+     * Ceil the current instance week.
+     *
+     * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week
+     *
+     * @return CarbonInterface
+     */
+    public function ceilWeek($weekStartsAt = null);
+
+    /**
+     * Similar to native modify() method of DateTime but can handle more grammars.
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->change('next 2pm');
+     * ```
+     *
+     * @link https://php.net/manual/en/datetime.modify.php
+     *
+     * @param string $modifier
+     *
+     * @return static
+     */
+    public function change($modifier);
+
+    /**
+     * Cleanup properties attached to the public scope of DateTime when a dump of the date is requested.
+     * foreach ($date as $_) {}
+     * serializer($date)
+     * var_export($date)
+     * get_object_vars($date)
+     */
+    public function cleanupDumpProperties();
+
+    /**
+     * @alias copy
+     *
+     * Get a copy of the instance.
+     *
+     * @return static
+     */
+    public function clone();
+
+    /**
+     * Get the closest date from the instance (second-precision).
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2
+     *
+     * @return static
+     */
+    public function closest($date1, $date2);
+
+    /**
+     * Get a copy of the instance.
+     *
+     * @return static
+     */
+    public function copy();
+
+    /**
+     * Create a new Carbon instance from a specific date and time.
+     *
+     * If any of $year, $month or $day are set to null their now() values will
+     * be used.
+     *
+     * If $hour is null it will be set to its now() value and the default
+     * values for $minute and $second will be their now() values.
+     *
+     * If $hour is not null then the default values for $minute and $second
+     * will be 0.
+     *
+     * @param int|null                 $year
+     * @param int|null                 $month
+     * @param int|null                 $day
+     * @param int|null                 $hour
+     * @param int|null                 $minute
+     * @param int|null                 $second
+     * @param DateTimeZone|string|null $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static|false
+     */
+    public static function create($year = 0, $month = 1, $day = 1, $hour = 0, $minute = 0, $second = 0, $tz = null);
+
+    /**
+     * Create a Carbon instance from just a date. The time portion is set to now.
+     *
+     * @param int|null                 $year
+     * @param int|null                 $month
+     * @param int|null                 $day
+     * @param DateTimeZone|string|null $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static
+     */
+    public static function createFromDate($year = null, $month = null, $day = null, $tz = null);
+
+    /**
+     * Create a Carbon instance from a specific format.
+     *
+     * @param string                         $format Datetime format
+     * @param string                         $time
+     * @param DateTimeZone|string|false|null $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static|false
+     */
+    #[ReturnTypeWillChange]
+    public static function createFromFormat($format, $time, $tz = null);
+
+    /**
+     * Create a Carbon instance from a specific ISO format (same replacements as ->isoFormat()).
+     *
+     * @param string                                             $format     Datetime format
+     * @param string                                             $time
+     * @param DateTimeZone|string|false|null                     $tz         optional timezone
+     * @param string|null                                        $locale     locale to be used for LTS, LT, LL, LLL, etc. macro-formats (en by fault, unneeded if no such macro-format in use)
+     * @param \Symfony\Component\Translation\TranslatorInterface $translator optional custom translator to use for macro-formats
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static|false
+     */
+    public static function createFromIsoFormat($format, $time, $tz = null, $locale = 'en', $translator = null);
+
+    /**
+     * Create a Carbon instance from a specific format and a string in a given language.
+     *
+     * @param string                         $format Datetime format
+     * @param string                         $locale
+     * @param string                         $time
+     * @param DateTimeZone|string|false|null $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static|false
+     */
+    public static function createFromLocaleFormat($format, $locale, $time, $tz = null);
+
+    /**
+     * Create a Carbon instance from a specific ISO format and a string in a given language.
+     *
+     * @param string                         $format Datetime ISO format
+     * @param string                         $locale
+     * @param string                         $time
+     * @param DateTimeZone|string|false|null $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static|false
+     */
+    public static function createFromLocaleIsoFormat($format, $locale, $time, $tz = null);
+
+    /**
+     * Create a Carbon instance from just a time. The date portion is set to today.
+     *
+     * @param int|null                 $hour
+     * @param int|null                 $minute
+     * @param int|null                 $second
+     * @param DateTimeZone|string|null $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static
+     */
+    public static function createFromTime($hour = 0, $minute = 0, $second = 0, $tz = null);
+
+    /**
+     * Create a Carbon instance from a time string. The date portion is set to today.
+     *
+     * @param string                   $time
+     * @param DateTimeZone|string|null $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static
+     */
+    public static function createFromTimeString($time, $tz = null);
+
+    /**
+     * Create a Carbon instance from a timestamp and set the timezone (use default one if not specified).
+     *
+     * Timestamp input can be given as int, float or a string containing one or more numbers.
+     *
+     * @param float|int|string          $timestamp
+     * @param \DateTimeZone|string|null $tz
+     *
+     * @return static
+     */
+    public static function createFromTimestamp($timestamp, $tz = null);
+
+    /**
+     * Create a Carbon instance from a timestamp in milliseconds.
+     *
+     * Timestamp input can be given as int, float or a string containing one or more numbers.
+     *
+     * @param float|int|string          $timestamp
+     * @param \DateTimeZone|string|null $tz
+     *
+     * @return static
+     */
+    public static function createFromTimestampMs($timestamp, $tz = null);
+
+    /**
+     * Create a Carbon instance from a timestamp in milliseconds.
+     *
+     * Timestamp input can be given as int, float or a string containing one or more numbers.
+     *
+     * @param float|int|string $timestamp
+     *
+     * @return static
+     */
+    public static function createFromTimestampMsUTC($timestamp);
+
+    /**
+     * Create a Carbon instance from an timestamp keeping the timezone to UTC.
+     *
+     * Timestamp input can be given as int, float or a string containing one or more numbers.
+     *
+     * @param float|int|string $timestamp
+     *
+     * @return static
+     */
+    public static function createFromTimestampUTC($timestamp);
+
+    /**
+     * Create a Carbon instance from just a date. The time portion is set to midnight.
+     *
+     * @param int|null                 $year
+     * @param int|null                 $month
+     * @param int|null                 $day
+     * @param DateTimeZone|string|null $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static
+     */
+    public static function createMidnightDate($year = null, $month = null, $day = null, $tz = null);
+
+    /**
+     * Create a new safe Carbon instance from a specific date and time.
+     *
+     * If any of $year, $month or $day are set to null their now() values will
+     * be used.
+     *
+     * If $hour is null it will be set to its now() value and the default
+     * values for $minute and $second will be their now() values.
+     *
+     * If $hour is not null then the default values for $minute and $second
+     * will be 0.
+     *
+     * If one of the set values is not valid, an InvalidDateException
+     * will be thrown.
+     *
+     * @param int|null                 $year
+     * @param int|null                 $month
+     * @param int|null                 $day
+     * @param int|null                 $hour
+     * @param int|null                 $minute
+     * @param int|null                 $second
+     * @param DateTimeZone|string|null $tz
+     *
+     * @throws InvalidDateException
+     *
+     * @return static|false
+     */
+    public static function createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null);
+
+    /**
+     * Create a new Carbon instance from a specific date and time using strict validation.
+     *
+     * @see create()
+     *
+     * @param int|null                 $year
+     * @param int|null                 $month
+     * @param int|null                 $day
+     * @param int|null                 $hour
+     * @param int|null                 $minute
+     * @param int|null                 $second
+     * @param DateTimeZone|string|null $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static
+     */
+    public static function createStrict(?int $year = 0, ?int $month = 1, ?int $day = 1, ?int $hour = 0, ?int $minute = 0, ?int $second = 0, $tz = null);
+
+    /**
+     * Get/set the day of year.
+     *
+     * @param int|null $value new value for day of year if using as setter.
+     *
+     * @return static|int
+     */
+    public function dayOfYear($value = null);
+
+    /**
+     * Get the difference as a CarbonInterval instance.
+     * Return absolute interval (always positive) unless you pass false to the second argument.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return CarbonInterval
+     */
+    public function diffAsCarbonInterval($date = null, $absolute = true);
+
+    /**
+     * Get the difference by the given interval using a filter closure.
+     *
+     * @param CarbonInterval                                         $ci       An interval to traverse by
+     * @param Closure                                                $callback
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffFiltered(CarbonInterval $ci, Closure $callback, $date = null, $absolute = true);
+
+    /**
+     * Get the difference in a human readable format in the current locale from current instance to an other
+     * instance given (or now if null given).
+     *
+     * @example
+     * ```
+     * echo Carbon::tomorrow()->diffForHumans() . "\n";
+     * echo Carbon::tomorrow()->diffForHumans(['parts' => 2]) . "\n";
+     * echo Carbon::tomorrow()->diffForHumans(['parts' => 3, 'join' => true]) . "\n";
+     * echo Carbon::tomorrow()->diffForHumans(Carbon::yesterday()) . "\n";
+     * echo Carbon::tomorrow()->diffForHumans(Carbon::yesterday(), ['short' => true]) . "\n";
+     * ```
+     *
+     * @param Carbon|\DateTimeInterface|string|array|null $other   if array passed, will be used as parameters array, see $syntax below;
+     *                                                             if null passed, now will be used as comparison reference;
+     *                                                             if any other type, it will be converted to date and used as reference.
+     * @param int|array                                   $syntax  if array passed, parameters will be extracted from it, the array may contains:
+     *                                                             - 'syntax' entry (see below)
+     *                                                             - 'short' entry (see below)
+     *                                                             - 'parts' entry (see below)
+     *                                                             - 'options' entry (see below)
+     *                                                             - 'join' entry determines how to join multiple parts of the string
+     *                                                             `  - if $join is a string, it's used as a joiner glue
+     *                                                             `  - if $join is a callable/closure, it get the list of string and should return a string
+     *                                                             `  - if $join is an array, the first item will be the default glue, and the second item
+     *                                                             `    will be used instead of the glue for the last item
+     *                                                             `  - if $join is true, it will be guessed from the locale ('list' translation file entry)
+     *                                                             `  - if $join is missing, a space will be used as glue
+     *                                                             - 'other' entry (see above)
+     *                                                             if int passed, it add modifiers:
+     *                                                             Possible values:
+     *                                                             - CarbonInterface::DIFF_ABSOLUTE          no modifiers
+     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier
+     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier
+     *                                                             Default value: CarbonInterface::DIFF_ABSOLUTE
+     * @param bool                                        $short   displays short format of time units
+     * @param int                                         $parts   maximum number of parts to display (default value: 1: single unit)
+     * @param int                                         $options human diff options
+     *
+     * @return string
+     */
+    public function diffForHumans($other = null, $syntax = null, $short = false, $parts = 1, $options = null);
+
+    /**
+     * Get the difference in days rounded down.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInDays($date = null, $absolute = true);
+
+    /**
+     * Get the difference in days using a filter closure rounded down.
+     *
+     * @param Closure                                                $callback
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInDaysFiltered(Closure $callback, $date = null, $absolute = true);
+
+    /**
+     * Get the difference in hours rounded down.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInHours($date = null, $absolute = true);
+
+    /**
+     * Get the difference in hours using a filter closure rounded down.
+     *
+     * @param Closure                                                $callback
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInHoursFiltered(Closure $callback, $date = null, $absolute = true);
+
+    /**
+     * Get the difference in microseconds.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInMicroseconds($date = null, $absolute = true);
+
+    /**
+     * Get the difference in milliseconds rounded down.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInMilliseconds($date = null, $absolute = true);
+
+    /**
+     * Get the difference in minutes rounded down.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInMinutes($date = null, $absolute = true);
+
+    /**
+     * Get the difference in months rounded down.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInMonths($date = null, $absolute = true);
+
+    /**
+     * Get the difference in quarters rounded down.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInQuarters($date = null, $absolute = true);
+
+    /**
+     * Get the difference in hours rounded down using timestamps.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInRealHours($date = null, $absolute = true);
+
+    /**
+     * Get the difference in microseconds using timestamps.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInRealMicroseconds($date = null, $absolute = true);
+
+    /**
+     * Get the difference in milliseconds rounded down using timestamps.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInRealMilliseconds($date = null, $absolute = true);
+
+    /**
+     * Get the difference in minutes rounded down using timestamps.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInRealMinutes($date = null, $absolute = true);
+
+    /**
+     * Get the difference in seconds using timestamps.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInRealSeconds($date = null, $absolute = true);
+
+    /**
+     * Get the difference in seconds rounded down.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInSeconds($date = null, $absolute = true);
+
+    /**
+     * Get the difference in weekdays rounded down.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInWeekdays($date = null, $absolute = true);
+
+    /**
+     * Get the difference in weekend days using a filter rounded down.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInWeekendDays($date = null, $absolute = true);
+
+    /**
+     * Get the difference in weeks rounded down.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInWeeks($date = null, $absolute = true);
+
+    /**
+     * Get the difference in years
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInYears($date = null, $absolute = true);
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather use the ->settings() method.
+     * @see settings
+     *
+     * @param int $humanDiffOption
+     */
+    public static function disableHumanDiffOption($humanDiffOption);
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather use the ->settings() method.
+     * @see settings
+     *
+     * @param int $humanDiffOption
+     */
+    public static function enableHumanDiffOption($humanDiffOption);
+
+    /**
+     * Modify to end of current given unit.
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16.334455')
+     *   ->startOf('month')
+     *   ->endOf('week', Carbon::FRIDAY);
+     * ```
+     *
+     * @param string            $unit
+     * @param array<int, mixed> $params
+     *
+     * @return static
+     */
+    public function endOf($unit, ...$params);
+
+    /**
+     * Resets the date to end of the century and time to 23:59:59.999999
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->endOfCentury();
+     * ```
+     *
+     * @return static
+     */
+    public function endOfCentury();
+
+    /**
+     * Resets the time to 23:59:59.999999 end of day
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->endOfDay();
+     * ```
+     *
+     * @return static
+     */
+    public function endOfDay();
+
+    /**
+     * Resets the date to end of the decade and time to 23:59:59.999999
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->endOfDecade();
+     * ```
+     *
+     * @return static
+     */
+    public function endOfDecade();
+
+    /**
+     * Modify to end of current hour, minutes and seconds become 59
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->endOfHour();
+     * ```
+     *
+     * @return static
+     */
+    public function endOfHour();
+
+    /**
+     * Resets the date to end of the millennium and time to 23:59:59.999999
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->endOfMillennium();
+     * ```
+     *
+     * @return static
+     */
+    public function endOfMillennium();
+
+    /**
+     * Modify to end of current minute, seconds become 59
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->endOfMinute();
+     * ```
+     *
+     * @return static
+     */
+    public function endOfMinute();
+
+    /**
+     * Resets the date to end of the month and time to 23:59:59.999999
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->endOfMonth();
+     * ```
+     *
+     * @return static
+     */
+    public function endOfMonth();
+
+    /**
+     * Resets the date to end of the quarter and time to 23:59:59.999999
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->endOfQuarter();
+     * ```
+     *
+     * @return static
+     */
+    public function endOfQuarter();
+
+    /**
+     * Modify to end of current second, microseconds become 999999
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16.334455')
+     *   ->endOfSecond()
+     *   ->format('H:i:s.u');
+     * ```
+     *
+     * @return static
+     */
+    public function endOfSecond();
+
+    /**
+     * Resets the date to end of week (defined in $weekEndsAt) and time to 23:59:59.999999
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->endOfWeek() . "\n";
+     * echo Carbon::parse('2018-07-25 12:45:16')->locale('ar')->endOfWeek() . "\n";
+     * echo Carbon::parse('2018-07-25 12:45:16')->endOfWeek(Carbon::SATURDAY) . "\n";
+     * ```
+     *
+     * @param int $weekEndsAt optional start allow you to specify the day of week to use to end the week
+     *
+     * @return static
+     */
+    public function endOfWeek($weekEndsAt = null);
+
+    /**
+     * Resets the date to end of the year and time to 23:59:59.999999
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->endOfYear();
+     * ```
+     *
+     * @return static
+     */
+    public function endOfYear();
+
+    /**
+     * Determines if the instance is equal to another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->eq('2018-07-25 12:45:16'); // true
+     * Carbon::parse('2018-07-25 12:45:16')->eq(Carbon::parse('2018-07-25 12:45:16')); // true
+     * Carbon::parse('2018-07-25 12:45:16')->eq('2018-07-25 12:45:17'); // false
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @see equalTo()
+     *
+     * @return bool
+     */
+    public function eq($date): bool;
+
+    /**
+     * Determines if the instance is equal to another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->equalTo('2018-07-25 12:45:16'); // true
+     * Carbon::parse('2018-07-25 12:45:16')->equalTo(Carbon::parse('2018-07-25 12:45:16')); // true
+     * Carbon::parse('2018-07-25 12:45:16')->equalTo('2018-07-25 12:45:17'); // false
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @return bool
+     */
+    public function equalTo($date): bool;
+
+    /**
+     * Set the current locale to the given, execute the passed function, reset the locale to previous one,
+     * then return the result of the closure (or null if the closure was void).
+     *
+     * @param string   $locale locale ex. en
+     * @param callable $func
+     *
+     * @return mixed
+     */
+    public static function executeWithLocale($locale, $func);
+
+    /**
+     * Get the farthest date from the instance (second-precision).
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2
+     *
+     * @return static
+     */
+    public function farthest($date1, $date2);
+
+    /**
+     * Modify to the first occurrence of a given day of the week
+     * in the current month. If no dayOfWeek is provided, modify to the
+     * first day of the current month.  Use the supplied constants
+     * to indicate the desired dayOfWeek, ex. static::MONDAY.
+     *
+     * @param int|null $dayOfWeek
+     *
+     * @return static
+     */
+    public function firstOfMonth($dayOfWeek = null);
+
+    /**
+     * Modify to the first occurrence of a given day of the week
+     * in the current quarter. If no dayOfWeek is provided, modify to the
+     * first day of the current quarter.  Use the supplied constants
+     * to indicate the desired dayOfWeek, ex. static::MONDAY.
+     *
+     * @param int|null $dayOfWeek day of the week default null
+     *
+     * @return static
+     */
+    public function firstOfQuarter($dayOfWeek = null);
+
+    /**
+     * Modify to the first occurrence of a given day of the week
+     * in the current year. If no dayOfWeek is provided, modify to the
+     * first day of the current year.  Use the supplied constants
+     * to indicate the desired dayOfWeek, ex. static::MONDAY.
+     *
+     * @param int|null $dayOfWeek day of the week default null
+     *
+     * @return static
+     */
+    public function firstOfYear($dayOfWeek = null);
+
+    /**
+     * Get the difference in days as float (microsecond-precision).
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInDays($date = null, $absolute = true);
+
+    /**
+     * Get the difference in hours as float (microsecond-precision).
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInHours($date = null, $absolute = true);
+
+    /**
+     * Get the difference in minutes as float (microsecond-precision).
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInMinutes($date = null, $absolute = true);
+
+    /**
+     * Get the difference in months as float (microsecond-precision).
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInMonths($date = null, $absolute = true);
+
+    /**
+     * Get the difference in days as float (microsecond-precision).
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInRealDays($date = null, $absolute = true);
+
+    /**
+     * Get the difference in hours as float (microsecond-precision) using timestamps.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInRealHours($date = null, $absolute = true);
+
+    /**
+     * Get the difference in minutes as float (microsecond-precision) using timestamps.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInRealMinutes($date = null, $absolute = true);
+
+    /**
+     * Get the difference in months as float (microsecond-precision) using timestamps.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInRealMonths($date = null, $absolute = true);
+
+    /**
+     * Get the difference in seconds as float (microsecond-precision) using timestamps.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInRealSeconds($date = null, $absolute = true);
+
+    /**
+     * Get the difference in weeks as float (microsecond-precision).
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInRealWeeks($date = null, $absolute = true);
+
+    /**
+     * Get the difference in year as float (microsecond-precision) using timestamps.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInRealYears($date = null, $absolute = true);
+
+    /**
+     * Get the difference in seconds as float (microsecond-precision).
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInSeconds($date = null, $absolute = true);
+
+    /**
+     * Get the difference in weeks as float (microsecond-precision).
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInWeeks($date = null, $absolute = true);
+
+    /**
+     * Get the difference in year as float (microsecond-precision).
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInYears($date = null, $absolute = true);
+
+    /**
+     * Round the current instance second with given precision if specified.
+     *
+     * @param float|int|string|\DateInterval|null $precision
+     *
+     * @return CarbonInterface
+     */
+    public function floor($precision = 1);
+
+    /**
+     * Truncate the current instance at the given unit with given precision if specified.
+     *
+     * @param string    $unit
+     * @param float|int $precision
+     *
+     * @return CarbonInterface
+     */
+    public function floorUnit($unit, $precision = 1);
+
+    /**
+     * Truncate the current instance week.
+     *
+     * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week
+     *
+     * @return CarbonInterface
+     */
+    public function floorWeek($weekStartsAt = null);
+
+    /**
+     * Format the instance with the current locale.  You can set the current
+     * locale using setlocale() https://php.net/setlocale.
+     *
+     * @param string $format
+     *
+     * @return string
+     */
+    public function formatLocalized($format);
+
+    /**
+     * @alias diffForHumans
+     *
+     * Get the difference in a human readable format in the current locale from current instance to an other
+     * instance given (or now if null given).
+     *
+     * @param Carbon|\DateTimeInterface|string|array|null $other   if array passed, will be used as parameters array, see $syntax below;
+     *                                                             if null passed, now will be used as comparison reference;
+     *                                                             if any other type, it will be converted to date and used as reference.
+     * @param int|array                                   $syntax  if array passed, parameters will be extracted from it, the array may contains:
+     *                                                             - 'syntax' entry (see below)
+     *                                                             - 'short' entry (see below)
+     *                                                             - 'parts' entry (see below)
+     *                                                             - 'options' entry (see below)
+     *                                                             - 'join' entry determines how to join multiple parts of the string
+     *                                                             `  - if $join is a string, it's used as a joiner glue
+     *                                                             `  - if $join is a callable/closure, it get the list of string and should return a string
+     *                                                             `  - if $join is an array, the first item will be the default glue, and the second item
+     *                                                             `    will be used instead of the glue for the last item
+     *                                                             `  - if $join is true, it will be guessed from the locale ('list' translation file entry)
+     *                                                             `  - if $join is missing, a space will be used as glue
+     *                                                             - 'other' entry (see above)
+     *                                                             if int passed, it add modifiers:
+     *                                                             Possible values:
+     *                                                             - CarbonInterface::DIFF_ABSOLUTE          no modifiers
+     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier
+     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier
+     *                                                             Default value: CarbonInterface::DIFF_ABSOLUTE
+     * @param bool                                        $short   displays short format of time units
+     * @param int                                         $parts   maximum number of parts to display (default value: 1: single unit)
+     * @param int                                         $options human diff options
+     *
+     * @return string
+     */
+    public function from($other = null, $syntax = null, $short = false, $parts = 1, $options = null);
+
+    /**
+     * Get the difference in a human readable format in the current locale from current
+     * instance to now.
+     *
+     * @param int|array $syntax  if array passed, parameters will be extracted from it, the array may contains:
+     *                           - 'syntax' entry (see below)
+     *                           - 'short' entry (see below)
+     *                           - 'parts' entry (see below)
+     *                           - 'options' entry (see below)
+     *                           - 'join' entry determines how to join multiple parts of the string
+     *                           `  - if $join is a string, it's used as a joiner glue
+     *                           `  - if $join is a callable/closure, it get the list of string and should return a string
+     *                           `  - if $join is an array, the first item will be the default glue, and the second item
+     *                           `    will be used instead of the glue for the last item
+     *                           `  - if $join is true, it will be guessed from the locale ('list' translation file entry)
+     *                           `  - if $join is missing, a space will be used as glue
+     *                           if int passed, it add modifiers:
+     *                           Possible values:
+     *                           - CarbonInterface::DIFF_ABSOLUTE          no modifiers
+     *                           - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier
+     *                           - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier
+     *                           Default value: CarbonInterface::DIFF_ABSOLUTE
+     * @param bool      $short   displays short format of time units
+     * @param int       $parts   maximum number of parts to display (default value: 1: single unit)
+     * @param int       $options human diff options
+     *
+     * @return string
+     */
+    public function fromNow($syntax = null, $short = false, $parts = 1, $options = null);
+
+    /**
+     * Create an instance from a serialized string.
+     *
+     * @param string $value
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static
+     */
+    public static function fromSerialized($value);
+
+    /**
+     * Register a custom macro.
+     *
+     * @param object|callable $macro
+     * @param int             $priority marco with higher priority is tried first
+     *
+     * @return void
+     */
+    public static function genericMacro($macro, $priority = 0);
+
+    /**
+     * Get a part of the Carbon object
+     *
+     * @param string $name
+     *
+     * @throws UnknownGetterException
+     *
+     * @return string|int|bool|DateTimeZone|null
+     */
+    public function get($name);
+
+    /**
+     * Returns the alternative number for a given date property if available in the current locale.
+     *
+     * @param string $key date property
+     *
+     * @return string
+     */
+    public function getAltNumber(string $key): string;
+
+    /**
+     * Returns the list of internally available locales and already loaded custom locales.
+     * (It will ignore custom translator dynamic loading.)
+     *
+     * @return array
+     */
+    public static function getAvailableLocales();
+
+    /**
+     * Returns list of Language object for each available locale. This object allow you to get the ISO name, native
+     * name, region and variant of the locale.
+     *
+     * @return Language[]
+     */
+    public static function getAvailableLocalesInfo();
+
+    /**
+     * Returns list of calendar formats for ISO formatting.
+     *
+     * @param string|null $locale current locale used if null
+     *
+     * @return array
+     */
+    public function getCalendarFormats($locale = null);
+
+    /**
+     * Get the days of the week
+     *
+     * @return array
+     */
+    public static function getDays();
+
+    /**
+     * Get the fallback locale.
+     *
+     * @see https://symfony.com/doc/current/components/translation.html#fallback-locales
+     *
+     * @return string|null
+     */
+    public static function getFallbackLocale();
+
+    /**
+     * List of replacements from date() format to isoFormat().
+     *
+     * @return array
+     */
+    public static function getFormatsToIsoReplacements();
+
+    /**
+     * Return default humanDiff() options (merged flags as integer).
+     *
+     * @return int
+     */
+    public static function getHumanDiffOptions();
+
+    /**
+     * Returns list of locale formats for ISO formatting.
+     *
+     * @param string|null $locale current locale used if null
+     *
+     * @return array
+     */
+    public function getIsoFormats($locale = null);
+
+    /**
+     * Returns list of locale units for ISO formatting.
+     *
+     * @return array
+     */
+    public static function getIsoUnits();
+
+    /**
+     * {@inheritdoc}
+     */
+    #[ReturnTypeWillChange]
+    public static function getLastErrors();
+
+    /**
+     * Get the raw callable macro registered globally or locally for a given name.
+     *
+     * @param string $name
+     *
+     * @return callable|null
+     */
+    public function getLocalMacro($name);
+
+    /**
+     * Get the translator of the current instance or the default if none set.
+     *
+     * @return \Symfony\Component\Translation\TranslatorInterface
+     */
+    public function getLocalTranslator();
+
+    /**
+     * Get the current translator locale.
+     *
+     * @return string
+     */
+    public static function getLocale();
+
+    /**
+     * Get the raw callable macro registered globally for a given name.
+     *
+     * @param string $name
+     *
+     * @return callable|null
+     */
+    public static function getMacro($name);
+
+    /**
+     * get midday/noon hour
+     *
+     * @return int
+     */
+    public static function getMidDayAt();
+
+    /**
+     * Returns the offset hour and minute formatted with +/- and a given separator (":" by default).
+     * For example, if the time zone is 9 hours 30 minutes, you'll get "+09:30", with "@@" as first
+     * argument, "+09@@30", with "" as first argument, "+0930". Negative offset will return something
+     * like "-12:00".
+     *
+     * @param string $separator string to place between hours and minutes (":" by default)
+     *
+     * @return string
+     */
+    public function getOffsetString($separator = ':');
+
+    /**
+     * Returns a unit of the instance padded with 0 by default or any other string if specified.
+     *
+     * @param string $unit      Carbon unit name
+     * @param int    $length    Length of the output (2 by default)
+     * @param string $padString String to use for padding ("0" by default)
+     * @param int    $padType   Side(s) to pad (STR_PAD_LEFT by default)
+     *
+     * @return string
+     */
+    public function getPaddedUnit($unit, $length = 2, $padString = '0', $padType = 0);
+
+    /**
+     * Returns a timestamp rounded with the given precision (6 by default).
+     *
+     * @example getPreciseTimestamp()   1532087464437474 (microsecond maximum precision)
+     * @example getPreciseTimestamp(6)  1532087464437474
+     * @example getPreciseTimestamp(5)  153208746443747  (1/100000 second precision)
+     * @example getPreciseTimestamp(4)  15320874644375   (1/10000 second precision)
+     * @example getPreciseTimestamp(3)  1532087464437    (millisecond precision)
+     * @example getPreciseTimestamp(2)  153208746444     (1/100 second precision)
+     * @example getPreciseTimestamp(1)  15320874644      (1/10 second precision)
+     * @example getPreciseTimestamp(0)  1532087464       (second precision)
+     * @example getPreciseTimestamp(-1) 153208746        (10 second precision)
+     * @example getPreciseTimestamp(-2) 15320875         (100 second precision)
+     *
+     * @param int $precision
+     *
+     * @return float
+     */
+    public function getPreciseTimestamp($precision = 6);
+
+    /**
+     * Returns current local settings.
+     *
+     * @return array
+     */
+    public function getSettings();
+
+    /**
+     * Get the Carbon instance (real or mock) to be returned when a "now"
+     * instance is created.
+     *
+     * @return Closure|static the current instance used for testing
+     */
+    public static function getTestNow();
+
+    /**
+     * Return a format from H:i to H:i:s.u according to given unit precision.
+     *
+     * @param string $unitPrecision "minute", "second", "millisecond" or "microsecond"
+     *
+     * @return string
+     */
+    public static function getTimeFormatByPrecision($unitPrecision);
+
+    /**
+     * Get the translation of the current week day name (with context for languages with multiple forms).
+     *
+     * @param string|null $context      whole format string
+     * @param string      $keySuffix    "", "_short" or "_min"
+     * @param string|null $defaultValue default value if translation missing
+     *
+     * @return string
+     */
+    public function getTranslatedDayName($context = null, $keySuffix = '', $defaultValue = null);
+
+    /**
+     * Get the translation of the current abbreviated week day name (with context for languages with multiple forms).
+     *
+     * @param string|null $context whole format string
+     *
+     * @return string
+     */
+    public function getTranslatedMinDayName($context = null);
+
+    /**
+     * Get the translation of the current month day name (with context for languages with multiple forms).
+     *
+     * @param string|null $context      whole format string
+     * @param string      $keySuffix    "" or "_short"
+     * @param string|null $defaultValue default value if translation missing
+     *
+     * @return string
+     */
+    public function getTranslatedMonthName($context = null, $keySuffix = '', $defaultValue = null);
+
+    /**
+     * Get the translation of the current short week day name (with context for languages with multiple forms).
+     *
+     * @param string|null $context whole format string
+     *
+     * @return string
+     */
+    public function getTranslatedShortDayName($context = null);
+
+    /**
+     * Get the translation of the current short month day name (with context for languages with multiple forms).
+     *
+     * @param string|null $context whole format string
+     *
+     * @return string
+     */
+    public function getTranslatedShortMonthName($context = null);
+
+    /**
+     * Returns raw translation message for a given key.
+     *
+     * @param string                                             $key        key to find
+     * @param string|null                                        $locale     current locale used if null
+     * @param string|null                                        $default    default value if translation returns the key
+     * @param \Symfony\Component\Translation\TranslatorInterface $translator an optional translator to use
+     *
+     * @return string
+     */
+    public function getTranslationMessage(string $key, ?string $locale = null, ?string $default = null, $translator = null);
+
+    /**
+     * Returns raw translation message for a given key.
+     *
+     * @param \Symfony\Component\Translation\TranslatorInterface $translator the translator to use
+     * @param string                                             $key        key to find
+     * @param string|null                                        $locale     current locale used if null
+     * @param string|null                                        $default    default value if translation returns the key
+     *
+     * @return string
+     */
+    public static function getTranslationMessageWith($translator, string $key, ?string $locale = null, ?string $default = null);
+
+    /**
+     * Get the default translator instance in use.
+     *
+     * @return \Symfony\Component\Translation\TranslatorInterface
+     */
+    public static function getTranslator();
+
+    /**
+     * Get the last day of week
+     *
+     * @return int
+     */
+    public static function getWeekEndsAt();
+
+    /**
+     * Get the first day of week
+     *
+     * @return int
+     */
+    public static function getWeekStartsAt();
+
+    /**
+     * Get weekend days
+     *
+     * @return array
+     */
+    public static function getWeekendDays();
+
+    /**
+     * Determines if the instance is greater (after) than another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->greaterThan('2018-07-25 12:45:15'); // true
+     * Carbon::parse('2018-07-25 12:45:16')->greaterThan('2018-07-25 12:45:16'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->greaterThan('2018-07-25 12:45:17'); // false
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @return bool
+     */
+    public function greaterThan($date): bool;
+
+    /**
+     * Determines if the instance is greater (after) than or equal to another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->greaterThanOrEqualTo('2018-07-25 12:45:15'); // true
+     * Carbon::parse('2018-07-25 12:45:16')->greaterThanOrEqualTo('2018-07-25 12:45:16'); // true
+     * Carbon::parse('2018-07-25 12:45:16')->greaterThanOrEqualTo('2018-07-25 12:45:17'); // false
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @return bool
+     */
+    public function greaterThanOrEqualTo($date): bool;
+
+    /**
+     * Determines if the instance is greater (after) than another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->gt('2018-07-25 12:45:15'); // true
+     * Carbon::parse('2018-07-25 12:45:16')->gt('2018-07-25 12:45:16'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->gt('2018-07-25 12:45:17'); // false
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @see greaterThan()
+     *
+     * @return bool
+     */
+    public function gt($date): bool;
+
+    /**
+     * Determines if the instance is greater (after) than or equal to another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->gte('2018-07-25 12:45:15'); // true
+     * Carbon::parse('2018-07-25 12:45:16')->gte('2018-07-25 12:45:16'); // true
+     * Carbon::parse('2018-07-25 12:45:16')->gte('2018-07-25 12:45:17'); // false
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @see greaterThanOrEqualTo()
+     *
+     * @return bool
+     */
+    public function gte($date): bool;
+
+    /**
+     * Checks if the (date)time string is in a given format.
+     *
+     * @example
+     * ```
+     * Carbon::hasFormat('11:12:45', 'h:i:s'); // true
+     * Carbon::hasFormat('13:12:45', 'h:i:s'); // false
+     * ```
+     *
+     * @param string $date
+     * @param string $format
+     *
+     * @return bool
+     */
+    public static function hasFormat($date, $format);
+
+    /**
+     * Checks if the (date)time string is in a given format.
+     *
+     * @example
+     * ```
+     * Carbon::hasFormatWithModifiers('31/08/2015', 'd#m#Y'); // true
+     * Carbon::hasFormatWithModifiers('31/08/2015', 'm#d#Y'); // false
+     * ```
+     *
+     * @param string $date
+     * @param string $format
+     *
+     * @return bool
+     */
+    public static function hasFormatWithModifiers($date, $format): bool;
+
+    /**
+     * Checks if macro is registered globally or locally.
+     *
+     * @param string $name
+     *
+     * @return bool
+     */
+    public function hasLocalMacro($name);
+
+    /**
+     * Return true if the current instance has its own translator.
+     *
+     * @return bool
+     */
+    public function hasLocalTranslator();
+
+    /**
+     * Checks if macro is registered globally.
+     *
+     * @param string $name
+     *
+     * @return bool
+     */
+    public static function hasMacro($name);
+
+    /**
+     * Determine if a time string will produce a relative date.
+     *
+     * @param string $time
+     *
+     * @return bool true if time match a relative date, false if absolute or invalid time string
+     */
+    public static function hasRelativeKeywords($time);
+
+    /**
+     * Determine if there is a valid test instance set. A valid test instance
+     * is anything that is not null.
+     *
+     * @return bool true if there is a test instance, otherwise false
+     */
+    public static function hasTestNow();
+
+    /**
+     * Create a Carbon instance from a DateTime one.
+     *
+     * @param DateTimeInterface $date
+     *
+     * @return static
+     */
+    public static function instance($date);
+
+    /**
+     * Returns true if the current date matches the given string.
+     *
+     * @example
+     * ```
+     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019')); // true
+     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2018')); // false
+     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019-06')); // true
+     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('06-02')); // true
+     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019-06-02')); // true
+     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('Sunday')); // true
+     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('June')); // true
+     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23')); // true
+     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23:45')); // true
+     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23:00')); // false
+     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12h')); // true
+     * var_dump(Carbon::parse('2019-06-02 15:23:45')->is('3pm')); // true
+     * var_dump(Carbon::parse('2019-06-02 15:23:45')->is('3am')); // false
+     * ```
+     *
+     * @param string $tester day name, month name, hour, date, etc. as string
+     *
+     * @return bool
+     */
+    public function is(string $tester);
+
+    /**
+     * Determines if the instance is greater (after) than another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->isAfter('2018-07-25 12:45:15'); // true
+     * Carbon::parse('2018-07-25 12:45:16')->isAfter('2018-07-25 12:45:16'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->isAfter('2018-07-25 12:45:17'); // false
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @see greaterThan()
+     *
+     * @return bool
+     */
+    public function isAfter($date): bool;
+
+    /**
+     * Determines if the instance is less (before) than another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->isBefore('2018-07-25 12:45:15'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->isBefore('2018-07-25 12:45:16'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->isBefore('2018-07-25 12:45:17'); // true
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @see lessThan()
+     *
+     * @return bool
+     */
+    public function isBefore($date): bool;
+
+    /**
+     * Determines if the instance is between two others
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25')->isBetween('2018-07-14', '2018-08-01'); // true
+     * Carbon::parse('2018-07-25')->isBetween('2018-08-01', '2018-08-20'); // false
+     * Carbon::parse('2018-07-25')->isBetween('2018-07-25', '2018-08-01'); // true
+     * Carbon::parse('2018-07-25')->isBetween('2018-07-25', '2018-08-01', false); // false
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2
+     * @param bool                                    $equal Indicates if an equal to comparison should be done
+     *
+     * @return bool
+     */
+    public function isBetween($date1, $date2, $equal = true): bool;
+
+    /**
+     * Check if its the birthday. Compares the date/month values of the two dates.
+     *
+     * @example
+     * ```
+     * Carbon::now()->subYears(5)->isBirthday(); // true
+     * Carbon::now()->subYears(5)->subDay()->isBirthday(); // false
+     * Carbon::parse('2019-06-05')->isBirthday(Carbon::parse('2001-06-05')); // true
+     * Carbon::parse('2019-06-05')->isBirthday(Carbon::parse('2001-06-06')); // false
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|null $date The instance to compare with or null to use current day.
+     *
+     * @return bool
+     */
+    public function isBirthday($date = null);
+
+    /**
+     * Determines if the instance is in the current unit given.
+     *
+     * @example
+     * ```
+     * Carbon::now()->isCurrentUnit('hour'); // true
+     * Carbon::now()->subHours(2)->isCurrentUnit('hour'); // false
+     * ```
+     *
+     * @param string $unit The unit to test.
+     *
+     * @throws BadMethodCallException
+     *
+     * @return bool
+     */
+    public function isCurrentUnit($unit);
+
+    /**
+     * Checks if this day is a specific day of the week.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-07-17')->isDayOfWeek(Carbon::WEDNESDAY); // true
+     * Carbon::parse('2019-07-17')->isDayOfWeek(Carbon::FRIDAY); // false
+     * Carbon::parse('2019-07-17')->isDayOfWeek('Wednesday'); // true
+     * Carbon::parse('2019-07-17')->isDayOfWeek('Friday'); // false
+     * ```
+     *
+     * @param int $dayOfWeek
+     *
+     * @return bool
+     */
+    public function isDayOfWeek($dayOfWeek);
+
+    /**
+     * Check if the instance is end of day.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-02-28 23:59:59.999999')->isEndOfDay(); // true
+     * Carbon::parse('2019-02-28 23:59:59.123456')->isEndOfDay(); // true
+     * Carbon::parse('2019-02-28 23:59:59')->isEndOfDay(); // true
+     * Carbon::parse('2019-02-28 23:59:58.999999')->isEndOfDay(); // false
+     * Carbon::parse('2019-02-28 23:59:59.999999')->isEndOfDay(true); // true
+     * Carbon::parse('2019-02-28 23:59:59.123456')->isEndOfDay(true); // false
+     * Carbon::parse('2019-02-28 23:59:59')->isEndOfDay(true); // false
+     * ```
+     *
+     * @param bool $checkMicroseconds check time at microseconds precision
+     *
+     * @return bool
+     */
+    public function isEndOfDay($checkMicroseconds = false);
+
+    /**
+     * Returns true if the date was created using CarbonImmutable::endOfTime()
+     *
+     * @return bool
+     */
+    public function isEndOfTime(): bool;
+
+    /**
+     * Determines if the instance is in the future, ie. greater (after) than now.
+     *
+     * @example
+     * ```
+     * Carbon::now()->addHours(5)->isFuture(); // true
+     * Carbon::now()->subHours(5)->isFuture(); // false
+     * ```
+     *
+     * @return bool
+     */
+    public function isFuture();
+
+    /**
+     * Returns true if the current class/instance is immutable.
+     *
+     * @return bool
+     */
+    public static function isImmutable();
+
+    /**
+     * Check if today is the last day of the Month
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-02-28')->isLastOfMonth(); // true
+     * Carbon::parse('2019-03-28')->isLastOfMonth(); // false
+     * Carbon::parse('2019-03-30')->isLastOfMonth(); // false
+     * Carbon::parse('2019-03-31')->isLastOfMonth(); // true
+     * Carbon::parse('2019-04-30')->isLastOfMonth(); // true
+     * ```
+     *
+     * @return bool
+     */
+    public function isLastOfMonth();
+
+    /**
+     * Determines if the instance is a leap year.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2020-01-01')->isLeapYear(); // true
+     * Carbon::parse('2019-01-01')->isLeapYear(); // false
+     * ```
+     *
+     * @return bool
+     */
+    public function isLeapYear();
+
+    /**
+     * Determines if the instance is a long year
+     *
+     * @example
+     * ```
+     * Carbon::parse('2015-01-01')->isLongYear(); // true
+     * Carbon::parse('2016-01-01')->isLongYear(); // false
+     * ```
+     *
+     * @see https://en.wikipedia.org/wiki/ISO_8601#Week_dates
+     *
+     * @return bool
+     */
+    public function isLongYear();
+
+    /**
+     * Check if the instance is midday.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-02-28 11:59:59.999999')->isMidday(); // false
+     * Carbon::parse('2019-02-28 12:00:00')->isMidday(); // true
+     * Carbon::parse('2019-02-28 12:00:00.999999')->isMidday(); // true
+     * Carbon::parse('2019-02-28 12:00:01')->isMidday(); // false
+     * ```
+     *
+     * @return bool
+     */
+    public function isMidday();
+
+    /**
+     * Check if the instance is start of day / midnight.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-02-28 00:00:00')->isMidnight(); // true
+     * Carbon::parse('2019-02-28 00:00:00.999999')->isMidnight(); // true
+     * Carbon::parse('2019-02-28 00:00:01')->isMidnight(); // false
+     * ```
+     *
+     * @return bool
+     */
+    public function isMidnight();
+
+    /**
+     * Returns true if a property can be changed via setter.
+     *
+     * @param string $unit
+     *
+     * @return bool
+     */
+    public static function isModifiableUnit($unit);
+
+    /**
+     * Returns true if the current class/instance is mutable.
+     *
+     * @return bool
+     */
+    public static function isMutable();
+
+    /**
+     * Determines if the instance is in the past, ie. less (before) than now.
+     *
+     * @example
+     * ```
+     * Carbon::now()->subHours(5)->isPast(); // true
+     * Carbon::now()->addHours(5)->isPast(); // false
+     * ```
+     *
+     * @return bool
+     */
+    public function isPast();
+
+    /**
+     * Compares the formatted values of the two dates.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-06-13')->isSameAs('Y-d', Carbon::parse('2019-12-13')); // true
+     * Carbon::parse('2019-06-13')->isSameAs('Y-d', Carbon::parse('2019-06-14')); // false
+     * ```
+     *
+     * @param string                                        $format date formats to compare.
+     * @param \Carbon\Carbon|\DateTimeInterface|string|null $date   instance to compare with or null to use current day.
+     *
+     * @return bool
+     */
+    public function isSameAs($format, $date = null);
+
+    /**
+     * Checks if the passed in date is in the same month as the instance´s month.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2019-01-01')); // true
+     * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2019-02-01')); // false
+     * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2018-01-01')); // false
+     * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2018-01-01'), false); // true
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|null $date       The instance to compare with or null to use the current date.
+     * @param bool                                   $ofSameYear Check if it is the same month in the same year.
+     *
+     * @return bool
+     */
+    public function isSameMonth($date = null, $ofSameYear = true);
+
+    /**
+     * Checks if the passed in date is in the same quarter as the instance quarter (and year if needed).
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2019-03-01')); // true
+     * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2019-04-01')); // false
+     * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2018-03-01')); // false
+     * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2018-03-01'), false); // true
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|string|null $date       The instance to compare with or null to use current day.
+     * @param bool                                          $ofSameYear Check if it is the same month in the same year.
+     *
+     * @return bool
+     */
+    public function isSameQuarter($date = null, $ofSameYear = true);
+
+    /**
+     * Determines if the instance is in the current unit given.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-01-13')->isSameUnit('year', Carbon::parse('2019-12-25')); // true
+     * Carbon::parse('2018-12-13')->isSameUnit('year', Carbon::parse('2019-12-25')); // false
+     * ```
+     *
+     * @param string                                 $unit singular unit string
+     * @param \Carbon\Carbon|\DateTimeInterface|null $date instance to compare with or null to use current day.
+     *
+     * @throws BadComparisonUnitException
+     *
+     * @return bool
+     */
+    public function isSameUnit($unit, $date = null);
+
+    /**
+     * Check if the instance is start of day / midnight.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-02-28 00:00:00')->isStartOfDay(); // true
+     * Carbon::parse('2019-02-28 00:00:00.999999')->isStartOfDay(); // true
+     * Carbon::parse('2019-02-28 00:00:01')->isStartOfDay(); // false
+     * Carbon::parse('2019-02-28 00:00:00.000000')->isStartOfDay(true); // true
+     * Carbon::parse('2019-02-28 00:00:00.000012')->isStartOfDay(true); // false
+     * ```
+     *
+     * @param bool $checkMicroseconds check time at microseconds precision
+     *
+     * @return bool
+     */
+    public function isStartOfDay($checkMicroseconds = false);
+
+    /**
+     * Returns true if the date was created using CarbonImmutable::startOfTime()
+     *
+     * @return bool
+     */
+    public function isStartOfTime(): bool;
+
+    /**
+     * Returns true if the strict mode is globally in use, false else.
+     * (It can be overridden in specific instances.)
+     *
+     * @return bool
+     */
+    public static function isStrictModeEnabled();
+
+    /**
+     * Determines if the instance is today.
+     *
+     * @example
+     * ```
+     * Carbon::today()->isToday(); // true
+     * Carbon::tomorrow()->isToday(); // false
+     * ```
+     *
+     * @return bool
+     */
+    public function isToday();
+
+    /**
+     * Determines if the instance is tomorrow.
+     *
+     * @example
+     * ```
+     * Carbon::tomorrow()->isTomorrow(); // true
+     * Carbon::yesterday()->isTomorrow(); // false
+     * ```
+     *
+     * @return bool
+     */
+    public function isTomorrow();
+
+    /**
+     * Determines if the instance is a weekday.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-07-14')->isWeekday(); // false
+     * Carbon::parse('2019-07-15')->isWeekday(); // true
+     * ```
+     *
+     * @return bool
+     */
+    public function isWeekday();
+
+    /**
+     * Determines if the instance is a weekend day.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-07-14')->isWeekend(); // true
+     * Carbon::parse('2019-07-15')->isWeekend(); // false
+     * ```
+     *
+     * @return bool
+     */
+    public function isWeekend();
+
+    /**
+     * Determines if the instance is yesterday.
+     *
+     * @example
+     * ```
+     * Carbon::yesterday()->isYesterday(); // true
+     * Carbon::tomorrow()->isYesterday(); // false
+     * ```
+     *
+     * @return bool
+     */
+    public function isYesterday();
+
+    /**
+     * Format in the current language using ISO replacement patterns.
+     *
+     * @param string      $format
+     * @param string|null $originalFormat provide context if a chunk has been passed alone
+     *
+     * @return string
+     */
+    public function isoFormat(string $format, ?string $originalFormat = null): string;
+
+    /**
+     * Get/set the week number using given first day of week and first
+     * day of year included in the first week. Or use ISO format if no settings
+     * given.
+     *
+     * @param int|null $week
+     * @param int|null $dayOfWeek
+     * @param int|null $dayOfYear
+     *
+     * @return int|static
+     */
+    public function isoWeek($week = null, $dayOfWeek = null, $dayOfYear = null);
+
+    /**
+     * Set/get the week number of year using given first day of week and first
+     * day of year included in the first week. Or use ISO format if no settings
+     * given.
+     *
+     * @param int|null $year      if null, act as a getter, if not null, set the year and return current instance.
+     * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday)
+     * @param int|null $dayOfYear first day of year included in the week #1
+     *
+     * @return int|static
+     */
+    public function isoWeekYear($year = null, $dayOfWeek = null, $dayOfYear = null);
+
+    /**
+     * Get/set the ISO weekday from 1 (Monday) to 7 (Sunday).
+     *
+     * @param int|null $value new value for weekday if using as setter.
+     *
+     * @return static|int
+     */
+    public function isoWeekday($value = null);
+
+    /**
+     * Get the number of weeks of the current week-year using given first day of week and first
+     * day of year included in the first week. Or use ISO format if no settings
+     * given.
+     *
+     * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday)
+     * @param int|null $dayOfYear first day of year included in the week #1
+     *
+     * @return int
+     */
+    public function isoWeeksInYear($dayOfWeek = null, $dayOfYear = null);
+
+    /**
+     * Prepare the object for JSON serialization.
+     *
+     * @return array|string
+     */
+    #[ReturnTypeWillChange]
+    public function jsonSerialize();
+
+    /**
+     * Modify to the last occurrence of a given day of the week
+     * in the current month. If no dayOfWeek is provided, modify to the
+     * last day of the current month.  Use the supplied constants
+     * to indicate the desired dayOfWeek, ex. static::MONDAY.
+     *
+     * @param int|null $dayOfWeek
+     *
+     * @return static
+     */
+    public function lastOfMonth($dayOfWeek = null);
+
+    /**
+     * Modify to the last occurrence of a given day of the week
+     * in the current quarter. If no dayOfWeek is provided, modify to the
+     * last day of the current quarter.  Use the supplied constants
+     * to indicate the desired dayOfWeek, ex. static::MONDAY.
+     *
+     * @param int|null $dayOfWeek day of the week default null
+     *
+     * @return static
+     */
+    public function lastOfQuarter($dayOfWeek = null);
+
+    /**
+     * Modify to the last occurrence of a given day of the week
+     * in the current year. If no dayOfWeek is provided, modify to the
+     * last day of the current year.  Use the supplied constants
+     * to indicate the desired dayOfWeek, ex. static::MONDAY.
+     *
+     * @param int|null $dayOfWeek day of the week default null
+     *
+     * @return static
+     */
+    public function lastOfYear($dayOfWeek = null);
+
+    /**
+     * Determines if the instance is less (before) than another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->lessThan('2018-07-25 12:45:15'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->lessThan('2018-07-25 12:45:16'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->lessThan('2018-07-25 12:45:17'); // true
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @return bool
+     */
+    public function lessThan($date): bool;
+
+    /**
+     * Determines if the instance is less (before) or equal to another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->lessThanOrEqualTo('2018-07-25 12:45:15'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->lessThanOrEqualTo('2018-07-25 12:45:16'); // true
+     * Carbon::parse('2018-07-25 12:45:16')->lessThanOrEqualTo('2018-07-25 12:45:17'); // true
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @return bool
+     */
+    public function lessThanOrEqualTo($date): bool;
+
+    /**
+     * Get/set the locale for the current instance.
+     *
+     * @param string|null $locale
+     * @param string      ...$fallbackLocales
+     *
+     * @return $this|string
+     */
+    public function locale(?string $locale = null, ...$fallbackLocales);
+
+    /**
+     * Returns true if the given locale is internally supported and has words for 1-day diff (just now, yesterday, tomorrow).
+     * Support is considered enabled if the 3 words are translated in the given locale.
+     *
+     * @param string $locale locale ex. en
+     *
+     * @return bool
+     */
+    public static function localeHasDiffOneDayWords($locale);
+
+    /**
+     * Returns true if the given locale is internally supported and has diff syntax support (ago, from now, before, after).
+     * Support is considered enabled if the 4 sentences are translated in the given locale.
+     *
+     * @param string $locale locale ex. en
+     *
+     * @return bool
+     */
+    public static function localeHasDiffSyntax($locale);
+
+    /**
+     * Returns true if the given locale is internally supported and has words for 2-days diff (before yesterday, after tomorrow).
+     * Support is considered enabled if the 2 words are translated in the given locale.
+     *
+     * @param string $locale locale ex. en
+     *
+     * @return bool
+     */
+    public static function localeHasDiffTwoDayWords($locale);
+
+    /**
+     * Returns true if the given locale is internally supported and has period syntax support (X times, every X, from X, to X).
+     * Support is considered enabled if the 4 sentences are translated in the given locale.
+     *
+     * @param string $locale locale ex. en
+     *
+     * @return bool
+     */
+    public static function localeHasPeriodSyntax($locale);
+
+    /**
+     * Returns true if the given locale is internally supported and has short-units support.
+     * Support is considered enabled if either year, day or hour has a short variant translated.
+     *
+     * @param string $locale locale ex. en
+     *
+     * @return bool
+     */
+    public static function localeHasShortUnits($locale);
+
+    /**
+     * Determines if the instance is less (before) than another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->lt('2018-07-25 12:45:15'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->lt('2018-07-25 12:45:16'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->lt('2018-07-25 12:45:17'); // true
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @see lessThan()
+     *
+     * @return bool
+     */
+    public function lt($date): bool;
+
+    /**
+     * Determines if the instance is less (before) or equal to another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->lte('2018-07-25 12:45:15'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->lte('2018-07-25 12:45:16'); // true
+     * Carbon::parse('2018-07-25 12:45:16')->lte('2018-07-25 12:45:17'); // true
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @see lessThanOrEqualTo()
+     *
+     * @return bool
+     */
+    public function lte($date): bool;
+
+    /**
+     * Register a custom macro.
+     *
+     * @example
+     * ```
+     * $userSettings = [
+     *   'locale' => 'pt',
+     *   'timezone' => 'America/Sao_Paulo',
+     * ];
+     * Carbon::macro('userFormat', function () use ($userSettings) {
+     *   return $this->copy()->locale($userSettings['locale'])->tz($userSettings['timezone'])->calendar();
+     * });
+     * echo Carbon::yesterday()->hours(11)->userFormat();
+     * ```
+     *
+     * @param string          $name
+     * @param object|callable $macro
+     *
+     * @return void
+     */
+    public static function macro($name, $macro);
+
+    /**
+     * Make a Carbon instance from given variable if possible.
+     *
+     * Always return a new instance. Parse only strings and only these likely to be dates (skip intervals
+     * and recurrences). Throw an exception for invalid format, but otherwise return null.
+     *
+     * @param mixed $var
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static|null
+     */
+    public static function make($var);
+
+    /**
+     * Get the maximum instance between a given instance (default now) and the current instance.
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @return static
+     */
+    public function max($date = null);
+
+    /**
+     * Create a Carbon instance for the greatest supported date.
+     *
+     * @return static
+     */
+    public static function maxValue();
+
+    /**
+     * Get the maximum instance between a given instance (default now) and the current instance.
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @see max()
+     *
+     * @return static
+     */
+    public function maximum($date = null);
+
+    /**
+     * Return the meridiem of the current time in the current locale.
+     *
+     * @param bool $isLower if true, returns lowercase variant if available in the current locale.
+     *
+     * @return string
+     */
+    public function meridiem(bool $isLower = false): string;
+
+    /**
+     * Modify to midday, default to self::$midDayAt
+     *
+     * @return static
+     */
+    public function midDay();
+
+    /**
+     * Get the minimum instance between a given instance (default now) and the current instance.
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @return static
+     */
+    public function min($date = null);
+
+    /**
+     * Create a Carbon instance for the lowest supported date.
+     *
+     * @return static
+     */
+    public static function minValue();
+
+    /**
+     * Get the minimum instance between a given instance (default now) and the current instance.
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @see min()
+     *
+     * @return static
+     */
+    public function minimum($date = null);
+
+    /**
+     * Mix another object into the class.
+     *
+     * @example
+     * ```
+     * Carbon::mixin(new class {
+     *   public function addMoon() {
+     *     return function () {
+     *       return $this->addDays(30);
+     *     };
+     *   }
+     *   public function subMoon() {
+     *     return function () {
+     *       return $this->subDays(30);
+     *     };
+     *   }
+     * });
+     * $fullMoon = Carbon::create('2018-12-22');
+     * $nextFullMoon = $fullMoon->addMoon();
+     * $blackMoon = Carbon::create('2019-01-06');
+     * $previousBlackMoon = $blackMoon->subMoon();
+     * echo "$nextFullMoon\n";
+     * echo "$previousBlackMoon\n";
+     * ```
+     *
+     * @param object|string $mixin
+     *
+     * @throws ReflectionException
+     *
+     * @return void
+     */
+    public static function mixin($mixin);
+
+    /**
+     * Calls \DateTime::modify if mutable or \DateTimeImmutable::modify else.
+     *
+     * @see https://php.net/manual/en/datetime.modify.php
+     */
+    #[ReturnTypeWillChange]
+    public function modify($modify);
+
+    /**
+     * Determines if the instance is not equal to another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->ne('2018-07-25 12:45:16'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->ne(Carbon::parse('2018-07-25 12:45:16')); // false
+     * Carbon::parse('2018-07-25 12:45:16')->ne('2018-07-25 12:45:17'); // true
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @see notEqualTo()
+     *
+     * @return bool
+     */
+    public function ne($date): bool;
+
+    /**
+     * Modify to the next occurrence of a given modifier such as a day of
+     * the week. If no modifier is provided, modify to the next occurrence
+     * of the current day of the week. Use the supplied constants
+     * to indicate the desired dayOfWeek, ex. static::MONDAY.
+     *
+     * @param string|int|null $modifier
+     *
+     * @return static
+     */
+    public function next($modifier = null);
+
+    /**
+     * Go forward to the next weekday.
+     *
+     * @return static
+     */
+    public function nextWeekday();
+
+    /**
+     * Go forward to the next weekend day.
+     *
+     * @return static
+     */
+    public function nextWeekendDay();
+
+    /**
+     * Determines if the instance is not equal to another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->notEqualTo('2018-07-25 12:45:16'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->notEqualTo(Carbon::parse('2018-07-25 12:45:16')); // false
+     * Carbon::parse('2018-07-25 12:45:16')->notEqualTo('2018-07-25 12:45:17'); // true
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @return bool
+     */
+    public function notEqualTo($date): bool;
+
+    /**
+     * Get a Carbon instance for the current date and time.
+     *
+     * @param DateTimeZone|string|null $tz
+     *
+     * @return static
+     */
+    public static function now($tz = null);
+
+    /**
+     * Returns a present instance in the same timezone.
+     *
+     * @return static
+     */
+    public function nowWithSameTz();
+
+    /**
+     * Modify to the given occurrence of a given day of the week
+     * in the current month. If the calculated occurrence is outside the scope
+     * of the current month, then return false and no modifications are made.
+     * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY.
+     *
+     * @param int $nth
+     * @param int $dayOfWeek
+     *
+     * @return mixed
+     */
+    public function nthOfMonth($nth, $dayOfWeek);
+
+    /**
+     * Modify to the given occurrence of a given day of the week
+     * in the current quarter. If the calculated occurrence is outside the scope
+     * of the current quarter, then return false and no modifications are made.
+     * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY.
+     *
+     * @param int $nth
+     * @param int $dayOfWeek
+     *
+     * @return mixed
+     */
+    public function nthOfQuarter($nth, $dayOfWeek);
+
+    /**
+     * Modify to the given occurrence of a given day of the week
+     * in the current year. If the calculated occurrence is outside the scope
+     * of the current year, then return false and no modifications are made.
+     * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY.
+     *
+     * @param int $nth
+     * @param int $dayOfWeek
+     *
+     * @return mixed
+     */
+    public function nthOfYear($nth, $dayOfWeek);
+
+    /**
+     * Return a property with its ordinal.
+     *
+     * @param string      $key
+     * @param string|null $period
+     *
+     * @return string
+     */
+    public function ordinal(string $key, ?string $period = null): string;
+
+    /**
+     * Create a carbon instance from a string.
+     *
+     * This is an alias for the constructor that allows better fluent syntax
+     * as it allows you to do Carbon::parse('Monday next week')->fn() rather
+     * than (new Carbon('Monday next week'))->fn().
+     *
+     * @param string|DateTimeInterface|null $time
+     * @param DateTimeZone|string|null      $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static
+     */
+    public static function parse($time = null, $tz = null);
+
+    /**
+     * Create a carbon instance from a localized string (in French, Japanese, Arabic, etc.).
+     *
+     * @param string                   $time   date/time string in the given language (may also contain English).
+     * @param string|null              $locale if locale is null or not specified, current global locale will be
+     *                                         used instead.
+     * @param DateTimeZone|string|null $tz     optional timezone for the new instance.
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static
+     */
+    public static function parseFromLocale($time, $locale = null, $tz = null);
+
+    /**
+     * Returns standardized plural of a given singular/plural unit name (in English).
+     *
+     * @param string $unit
+     *
+     * @return string
+     */
+    public static function pluralUnit(string $unit): string;
+
+    /**
+     * Modify to the previous occurrence of a given modifier such as a day of
+     * the week. If no dayOfWeek is provided, modify to the previous occurrence
+     * of the current day of the week. Use the supplied constants
+     * to indicate the desired dayOfWeek, ex. static::MONDAY.
+     *
+     * @param string|int|null $modifier
+     *
+     * @return static
+     */
+    public function previous($modifier = null);
+
+    /**
+     * Go backward to the previous weekday.
+     *
+     * @return static
+     */
+    public function previousWeekday();
+
+    /**
+     * Go backward to the previous weekend day.
+     *
+     * @return static
+     */
+    public function previousWeekendDay();
+
+    /**
+     * Create a iterable CarbonPeriod object from current date to a given end date (and optional interval).
+     *
+     * @param \DateTimeInterface|Carbon|CarbonImmutable|null $end      period end date
+     * @param int|\DateInterval|string|null                  $interval period default interval or number of the given $unit
+     * @param string|null                                    $unit     if specified, $interval must be an integer
+     *
+     * @return CarbonPeriod
+     */
+    public function range($end = null, $interval = null, $unit = null);
+
+    /**
+     * Call native PHP DateTime/DateTimeImmutable add() method.
+     *
+     * @param DateInterval $interval
+     *
+     * @return static
+     */
+    public function rawAdd(DateInterval $interval);
+
+    /**
+     * Create a Carbon instance from a specific format.
+     *
+     * @param string                         $format Datetime format
+     * @param string                         $time
+     * @param DateTimeZone|string|false|null $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static|false
+     */
+    public static function rawCreateFromFormat($format, $time, $tz = null);
+
+    /**
+     * @see https://php.net/manual/en/datetime.format.php
+     *
+     * @param string $format
+     *
+     * @return string
+     */
+    public function rawFormat($format);
+
+    /**
+     * Create a carbon instance from a string.
+     *
+     * This is an alias for the constructor that allows better fluent syntax
+     * as it allows you to do Carbon::parse('Monday next week')->fn() rather
+     * than (new Carbon('Monday next week'))->fn().
+     *
+     * @param string|DateTimeInterface|null $time
+     * @param DateTimeZone|string|null      $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static
+     */
+    public static function rawParse($time = null, $tz = null);
+
+    /**
+     * Call native PHP DateTime/DateTimeImmutable sub() method.
+     *
+     * @param DateInterval $interval
+     *
+     * @return static
+     */
+    public function rawSub(DateInterval $interval);
+
+    /**
+     * Remove all macros and generic macros.
+     */
+    public static function resetMacros();
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather use the ->settings() method.
+     *             Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants
+     *             are available for quarters, years, decade, centuries, millennia (singular and plural forms).
+     * @see settings
+     *
+     * Reset the month overflow behavior.
+     *
+     * @return void
+     */
+    public static function resetMonthsOverflow();
+
+    /**
+     * Reset the format used to the default when type juggling a Carbon instance to a string
+     *
+     * @return void
+     */
+    public static function resetToStringFormat();
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather use the ->settings() method.
+     *             Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants
+     *             are available for quarters, years, decade, centuries, millennia (singular and plural forms).
+     * @see settings
+     *
+     * Reset the month overflow behavior.
+     *
+     * @return void
+     */
+    public static function resetYearsOverflow();
+
+    /**
+     * Round the current instance second with given precision if specified.
+     *
+     * @param float|int|string|\DateInterval|null $precision
+     * @param string                              $function
+     *
+     * @return CarbonInterface
+     */
+    public function round($precision = 1, $function = 'round');
+
+    /**
+     * Round the current instance at the given unit with given precision if specified and the given function.
+     *
+     * @param string    $unit
+     * @param float|int $precision
+     * @param string    $function
+     *
+     * @return CarbonInterface
+     */
+    public function roundUnit($unit, $precision = 1, $function = 'round');
+
+    /**
+     * Round the current instance week.
+     *
+     * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week
+     *
+     * @return CarbonInterface
+     */
+    public function roundWeek($weekStartsAt = null);
+
+    /**
+     * The number of seconds since midnight.
+     *
+     * @return int
+     */
+    public function secondsSinceMidnight();
+
+    /**
+     * The number of seconds until 23:59:59.
+     *
+     * @return int
+     */
+    public function secondsUntilEndOfDay();
+
+    /**
+     * Return a serialized string of the instance.
+     *
+     * @return string
+     */
+    public function serialize();
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather transform Carbon object before the serialization.
+     *
+     * JSON serialize all Carbon instances using the given callback.
+     *
+     * @param callable $callback
+     *
+     * @return void
+     */
+    public static function serializeUsing($callback);
+
+    /**
+     * Set a part of the Carbon object
+     *
+     * @param string|array            $name
+     * @param string|int|DateTimeZone $value
+     *
+     * @throws ImmutableException|UnknownSetterException
+     *
+     * @return $this
+     */
+    public function set($name, $value = null);
+
+    /**
+     * Set the date with gregorian year, month and day numbers.
+     *
+     * @see https://php.net/manual/en/datetime.setdate.php
+     *
+     * @param int $year
+     * @param int $month
+     * @param int $day
+     *
+     * @return static
+     */
+    #[ReturnTypeWillChange]
+    public function setDate($year, $month, $day);
+
+    /**
+     * Set the year, month, and date for this instance to that of the passed instance.
+     *
+     * @param Carbon|DateTimeInterface $date now if null
+     *
+     * @return static
+     */
+    public function setDateFrom($date = null);
+
+    /**
+     * Set the date and time all together.
+     *
+     * @param int $year
+     * @param int $month
+     * @param int $day
+     * @param int $hour
+     * @param int $minute
+     * @param int $second
+     * @param int $microseconds
+     *
+     * @return static
+     */
+    public function setDateTime($year, $month, $day, $hour, $minute, $second = 0, $microseconds = 0);
+
+    /**
+     * Set the date and time for this instance to that of the passed instance.
+     *
+     * @param Carbon|DateTimeInterface $date
+     *
+     * @return static
+     */
+    public function setDateTimeFrom($date = null);
+
+    /**
+     * Set the fallback locale.
+     *
+     * @see https://symfony.com/doc/current/components/translation.html#fallback-locales
+     *
+     * @param string $locale
+     */
+    public static function setFallbackLocale($locale);
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather use the ->settings() method.
+     * @see settings
+     *
+     * @param int $humanDiffOptions
+     */
+    public static function setHumanDiffOptions($humanDiffOptions);
+
+    /**
+     * Set a date according to the ISO 8601 standard - using weeks and day offsets rather than specific dates.
+     *
+     * @see https://php.net/manual/en/datetime.setisodate.php
+     *
+     * @param int $year
+     * @param int $week
+     * @param int $day
+     *
+     * @return static
+     */
+    #[ReturnTypeWillChange]
+    public function setISODate($year, $week, $day = 1);
+
+    /**
+     * Set the translator for the current instance.
+     *
+     * @param \Symfony\Component\Translation\TranslatorInterface $translator
+     *
+     * @return $this
+     */
+    public function setLocalTranslator(\Symfony\Component\Translation\TranslatorInterface $translator);
+
+    /**
+     * Set the current translator locale and indicate if the source locale file exists.
+     * Pass 'auto' as locale to use closest language from the current LC_TIME locale.
+     *
+     * @param string $locale locale ex. en
+     *
+     * @return bool
+     */
+    public static function setLocale($locale);
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather consider mid-day is always 12pm, then if you need to test if it's an other
+     *             hour, test it explicitly:
+     *                 $date->format('G') == 13
+     *             or to set explicitly to a given hour:
+     *                 $date->setTime(13, 0, 0, 0)
+     *
+     * Set midday/noon hour
+     *
+     * @param int $hour midday hour
+     *
+     * @return void
+     */
+    public static function setMidDayAt($hour);
+
+    /**
+     * Set a Carbon instance (real or mock) to be returned when a "now"
+     * instance is created.  The provided instance will be returned
+     * specifically under the following conditions:
+     *   - A call to the static now() method, ex. Carbon::now()
+     *   - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null)
+     *   - When the string "now" is passed to the constructor or parse(), ex. new Carbon('now')
+     *   - When a string containing the desired time is passed to Carbon::parse().
+     *
+     * Note the timezone parameter was left out of the examples above and
+     * has no affect as the mock value will be returned regardless of its value.
+     *
+     * To clear the test instance call this method using the default
+     * parameter of null.
+     *
+     * /!\ Use this method for unit tests only.
+     *
+     * @param Closure|static|string|false|null $testNow real or mock Carbon instance
+     */
+    public static function setTestNow($testNow = null);
+
+    /**
+     * Resets the current time of the DateTime object to a different time.
+     *
+     * @see https://php.net/manual/en/datetime.settime.php
+     *
+     * @param int $hour
+     * @param int $minute
+     * @param int $second
+     * @param int $microseconds
+     *
+     * @return static
+     */
+    #[ReturnTypeWillChange]
+    public function setTime($hour, $minute, $second = 0, $microseconds = 0);
+
+    /**
+     * Set the hour, minute, second and microseconds for this instance to that of the passed instance.
+     *
+     * @param Carbon|DateTimeInterface $date now if null
+     *
+     * @return static
+     */
+    public function setTimeFrom($date = null);
+
+    /**
+     * Set the time by time string.
+     *
+     * @param string $time
+     *
+     * @return static
+     */
+    public function setTimeFromTimeString($time);
+
+    /**
+     * Set the instance's timestamp.
+     *
+     * Timestamp input can be given as int, float or a string containing one or more numbers.
+     *
+     * @param float|int|string $unixTimestamp
+     *
+     * @return static
+     */
+    #[ReturnTypeWillChange]
+    public function setTimestamp($unixTimestamp);
+
+    /**
+     * Set the instance's timezone from a string or object.
+     *
+     * @param DateTimeZone|string $value
+     *
+     * @return static
+     */
+    #[ReturnTypeWillChange]
+    public function setTimezone($value);
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather let Carbon object being casted to string with DEFAULT_TO_STRING_FORMAT, and
+     *             use other method or custom format passed to format() method if you need to dump an other string
+     *             format.
+     *
+     * Set the default format used when type juggling a Carbon instance to a string
+     *
+     * @param string|Closure|null $format
+     *
+     * @return void
+     */
+    public static function setToStringFormat($format);
+
+    /**
+     * Set the default translator instance to use.
+     *
+     * @param \Symfony\Component\Translation\TranslatorInterface $translator
+     *
+     * @return void
+     */
+    public static function setTranslator(\Symfony\Component\Translation\TranslatorInterface $translator);
+
+    /**
+     * Set specified unit to new given value.
+     *
+     * @param string $unit  year, month, day, hour, minute, second or microsecond
+     * @param int    $value new value for given unit
+     *
+     * @return static
+     */
+    public function setUnit($unit, $value = null);
+
+    /**
+     * Set any unit to a new value without overflowing current other unit given.
+     *
+     * @param string $valueUnit    unit name to modify
+     * @param int    $value        new value for the input unit
+     * @param string $overflowUnit unit name to not overflow
+     *
+     * @return static
+     */
+    public function setUnitNoOverflow($valueUnit, $value, $overflowUnit);
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather use UTF-8 language packages on every machine.
+     *
+     * Set if UTF8 will be used for localized date/time.
+     *
+     * @param bool $utf8
+     */
+    public static function setUtf8($utf8);
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             Use $weekStartsAt optional parameter instead when using startOfWeek, floorWeek, ceilWeek
+     *             or roundWeek method. You can also use the 'first_day_of_week' locale setting to change the
+     *             start of week according to current locale selected and implicitly the end of week.
+     *
+     * Set the last day of week
+     *
+     * @param int|string $day week end day (or 'auto' to get the day before the first day of week
+     *                        from Carbon::getLocale() culture).
+     *
+     * @return void
+     */
+    public static function setWeekEndsAt($day);
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             Use $weekEndsAt optional parameter instead when using endOfWeek method. You can also use the
+     *             'first_day_of_week' locale setting to change the start of week according to current locale
+     *             selected and implicitly the end of week.
+     *
+     * Set the first day of week
+     *
+     * @param int|string $day week start day (or 'auto' to get the first day of week from Carbon::getLocale() culture).
+     *
+     * @return void
+     */
+    public static function setWeekStartsAt($day);
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather consider week-end is always saturday and sunday, and if you have some custom
+     *             week-end days to handle, give to those days an other name and create a macro for them:
+     *
+     *             ```
+     *             Carbon::macro('isDayOff', function ($date) {
+     *                 return $date->isSunday() || $date->isMonday();
+     *             });
+     *             Carbon::macro('isNotDayOff', function ($date) {
+     *                 return !$date->isDayOff();
+     *             });
+     *             if ($someDate->isDayOff()) ...
+     *             if ($someDate->isNotDayOff()) ...
+     *             // Add 5 not-off days
+     *             $count = 5;
+     *             while ($someDate->isDayOff() || ($count-- > 0)) {
+     *                 $someDate->addDay();
+     *             }
+     *             ```
+     *
+     * Set weekend days
+     *
+     * @param array $days
+     *
+     * @return void
+     */
+    public static function setWeekendDays($days);
+
+    /**
+     * Set specific options.
+     *  - strictMode: true|false|null
+     *  - monthOverflow: true|false|null
+     *  - yearOverflow: true|false|null
+     *  - humanDiffOptions: int|null
+     *  - toStringFormat: string|Closure|null
+     *  - toJsonFormat: string|Closure|null
+     *  - locale: string|null
+     *  - timezone: \DateTimeZone|string|int|null
+     *  - macros: array|null
+     *  - genericMacros: array|null
+     *
+     * @param array $settings
+     *
+     * @return $this|static
+     */
+    public function settings(array $settings);
+
+    /**
+     * Set the instance's timezone from a string or object and add/subtract the offset difference.
+     *
+     * @param DateTimeZone|string $value
+     *
+     * @return static
+     */
+    public function shiftTimezone($value);
+
+    /**
+     * Get the month overflow global behavior (can be overridden in specific instances).
+     *
+     * @return bool
+     */
+    public static function shouldOverflowMonths();
+
+    /**
+     * Get the month overflow global behavior (can be overridden in specific instances).
+     *
+     * @return bool
+     */
+    public static function shouldOverflowYears();
+
+    /**
+     * @alias diffForHumans
+     *
+     * Get the difference in a human readable format in the current locale from current instance to an other
+     * instance given (or now if null given).
+     */
+    public function since($other = null, $syntax = null, $short = false, $parts = 1, $options = null);
+
+    /**
+     * Returns standardized singular of a given singular/plural unit name (in English).
+     *
+     * @param string $unit
+     *
+     * @return string
+     */
+    public static function singularUnit(string $unit): string;
+
+    /**
+     * Modify to start of current given unit.
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16.334455')
+     *   ->startOf('month')
+     *   ->endOf('week', Carbon::FRIDAY);
+     * ```
+     *
+     * @param string            $unit
+     * @param array<int, mixed> $params
+     *
+     * @return static
+     */
+    public function startOf($unit, ...$params);
+
+    /**
+     * Resets the date to the first day of the century and the time to 00:00:00
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->startOfCentury();
+     * ```
+     *
+     * @return static
+     */
+    public function startOfCentury();
+
+    /**
+     * Resets the time to 00:00:00 start of day
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->startOfDay();
+     * ```
+     *
+     * @return static
+     */
+    public function startOfDay();
+
+    /**
+     * Resets the date to the first day of the decade and the time to 00:00:00
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->startOfDecade();
+     * ```
+     *
+     * @return static
+     */
+    public function startOfDecade();
+
+    /**
+     * Modify to start of current hour, minutes and seconds become 0
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->startOfHour();
+     * ```
+     *
+     * @return static
+     */
+    public function startOfHour();
+
+    /**
+     * Resets the date to the first day of the millennium and the time to 00:00:00
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->startOfMillennium();
+     * ```
+     *
+     * @return static
+     */
+    public function startOfMillennium();
+
+    /**
+     * Modify to start of current minute, seconds become 0
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->startOfMinute();
+     * ```
+     *
+     * @return static
+     */
+    public function startOfMinute();
+
+    /**
+     * Resets the date to the first day of the month and the time to 00:00:00
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->startOfMonth();
+     * ```
+     *
+     * @return static
+     */
+    public function startOfMonth();
+
+    /**
+     * Resets the date to the first day of the quarter and the time to 00:00:00
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->startOfQuarter();
+     * ```
+     *
+     * @return static
+     */
+    public function startOfQuarter();
+
+    /**
+     * Modify to start of current second, microseconds become 0
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16.334455')
+     *   ->startOfSecond()
+     *   ->format('H:i:s.u');
+     * ```
+     *
+     * @return static
+     */
+    public function startOfSecond();
+
+    /**
+     * Resets the date to the first day of week (defined in $weekStartsAt) and the time to 00:00:00
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->startOfWeek() . "\n";
+     * echo Carbon::parse('2018-07-25 12:45:16')->locale('ar')->startOfWeek() . "\n";
+     * echo Carbon::parse('2018-07-25 12:45:16')->startOfWeek(Carbon::SUNDAY) . "\n";
+     * ```
+     *
+     * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week
+     *
+     * @return static
+     */
+    public function startOfWeek($weekStartsAt = null);
+
+    /**
+     * Resets the date to the first day of the year and the time to 00:00:00
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->startOfYear();
+     * ```
+     *
+     * @return static
+     */
+    public function startOfYear();
+
+    /**
+     * Subtract given units or interval to the current instance.
+     *
+     * @example $date->sub('hour', 3)
+     * @example $date->sub(15, 'days')
+     * @example $date->sub(CarbonInterval::days(4))
+     *
+     * @param string|DateInterval|Closure|CarbonConverterInterface $unit
+     * @param int                                                  $value
+     * @param bool|null                                            $overflow
+     *
+     * @return static
+     */
+    #[ReturnTypeWillChange]
+    public function sub($unit, $value = 1, $overflow = null);
+
+    public function subRealUnit($unit, $value = 1);
+
+    /**
+     * Subtract given units to the current instance.
+     *
+     * @param string    $unit
+     * @param int       $value
+     * @param bool|null $overflow
+     *
+     * @return static
+     */
+    public function subUnit($unit, $value = 1, $overflow = null);
+
+    /**
+     * Subtract any unit to a new value without overflowing current other unit given.
+     *
+     * @param string $valueUnit    unit name to modify
+     * @param int    $value        amount to subtract to the input unit
+     * @param string $overflowUnit unit name to not overflow
+     *
+     * @return static
+     */
+    public function subUnitNoOverflow($valueUnit, $value, $overflowUnit);
+
+    /**
+     * Subtract given units or interval to the current instance.
+     *
+     * @see sub()
+     *
+     * @param string|DateInterval $unit
+     * @param int                 $value
+     * @param bool|null           $overflow
+     *
+     * @return static
+     */
+    public function subtract($unit, $value = 1, $overflow = null);
+
+    /**
+     * Get the difference in a human readable format in the current locale from current instance to an other
+     * instance given (or now if null given).
+     *
+     * @return string
+     */
+    public function timespan($other = null, $timezone = null);
+
+    /**
+     * Set the instance's timestamp.
+     *
+     * Timestamp input can be given as int, float or a string containing one or more numbers.
+     *
+     * @param float|int|string $unixTimestamp
+     *
+     * @return static
+     */
+    public function timestamp($unixTimestamp);
+
+    /**
+     * @alias setTimezone
+     *
+     * @param DateTimeZone|string $value
+     *
+     * @return static
+     */
+    public function timezone($value);
+
+    /**
+     * Get the difference in a human readable format in the current locale from an other
+     * instance given (or now if null given) to current instance.
+     *
+     * When comparing a value in the past to default now:
+     * 1 hour from now
+     * 5 months from now
+     *
+     * When comparing a value in the future to default now:
+     * 1 hour ago
+     * 5 months ago
+     *
+     * When comparing a value in the past to another value:
+     * 1 hour after
+     * 5 months after
+     *
+     * When comparing a value in the future to another value:
+     * 1 hour before
+     * 5 months before
+     *
+     * @param Carbon|\DateTimeInterface|string|array|null $other   if array passed, will be used as parameters array, see $syntax below;
+     *                                                             if null passed, now will be used as comparison reference;
+     *                                                             if any other type, it will be converted to date and used as reference.
+     * @param int|array                                   $syntax  if array passed, parameters will be extracted from it, the array may contains:
+     *                                                             - 'syntax' entry (see below)
+     *                                                             - 'short' entry (see below)
+     *                                                             - 'parts' entry (see below)
+     *                                                             - 'options' entry (see below)
+     *                                                             - 'join' entry determines how to join multiple parts of the string
+     *                                                             `  - if $join is a string, it's used as a joiner glue
+     *                                                             `  - if $join is a callable/closure, it get the list of string and should return a string
+     *                                                             `  - if $join is an array, the first item will be the default glue, and the second item
+     *                                                             `    will be used instead of the glue for the last item
+     *                                                             `  - if $join is true, it will be guessed from the locale ('list' translation file entry)
+     *                                                             `  - if $join is missing, a space will be used as glue
+     *                                                             - 'other' entry (see above)
+     *                                                             if int passed, it add modifiers:
+     *                                                             Possible values:
+     *                                                             - CarbonInterface::DIFF_ABSOLUTE          no modifiers
+     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier
+     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier
+     *                                                             Default value: CarbonInterface::DIFF_ABSOLUTE
+     * @param bool                                        $short   displays short format of time units
+     * @param int                                         $parts   maximum number of parts to display (default value: 1: single unit)
+     * @param int                                         $options human diff options
+     *
+     * @return string
+     */
+    public function to($other = null, $syntax = null, $short = false, $parts = 1, $options = null);
+
+    /**
+     * Get default array representation.
+     *
+     * @example
+     * ```
+     * var_dump(Carbon::now()->toArray());
+     * ```
+     *
+     * @return array
+     */
+    public function toArray();
+
+    /**
+     * Format the instance as ATOM
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toAtomString();
+     * ```
+     *
+     * @return string
+     */
+    public function toAtomString();
+
+    /**
+     * Format the instance as COOKIE
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toCookieString();
+     * ```
+     *
+     * @return string
+     */
+    public function toCookieString();
+
+    /**
+     * @alias toDateTime
+     *
+     * Return native DateTime PHP object matching the current instance.
+     *
+     * @example
+     * ```
+     * var_dump(Carbon::now()->toDate());
+     * ```
+     *
+     * @return DateTime
+     */
+    public function toDate();
+
+    /**
+     * Format the instance as date
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toDateString();
+     * ```
+     *
+     * @return string
+     */
+    public function toDateString();
+
+    /**
+     * Return native DateTime PHP object matching the current instance.
+     *
+     * @example
+     * ```
+     * var_dump(Carbon::now()->toDateTime());
+     * ```
+     *
+     * @return DateTime
+     */
+    public function toDateTime();
+
+    /**
+     * Return native toDateTimeImmutable PHP object matching the current instance.
+     *
+     * @example
+     * ```
+     * var_dump(Carbon::now()->toDateTimeImmutable());
+     * ```
+     *
+     * @return DateTimeImmutable
+     */
+    public function toDateTimeImmutable();
+
+    /**
+     * Format the instance as date and time T-separated with no timezone
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toDateTimeLocalString();
+     * echo "\n";
+     * echo Carbon::now()->toDateTimeLocalString('minute'); // You can specify precision among: minute, second, millisecond and microsecond
+     * ```
+     *
+     * @param string $unitPrecision
+     *
+     * @return string
+     */
+    public function toDateTimeLocalString($unitPrecision = 'second');
+
+    /**
+     * Format the instance as date and time
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toDateTimeString();
+     * ```
+     *
+     * @param string $unitPrecision
+     *
+     * @return string
+     */
+    public function toDateTimeString($unitPrecision = 'second');
+
+    /**
+     * Format the instance with day, date and time
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toDayDateTimeString();
+     * ```
+     *
+     * @return string
+     */
+    public function toDayDateTimeString();
+
+    /**
+     * Format the instance as a readable date
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toFormattedDateString();
+     * ```
+     *
+     * @return string
+     */
+    public function toFormattedDateString();
+
+    /**
+     * Return the ISO-8601 string (ex: 1977-04-22T06:00:00Z, if $keepOffset truthy, offset will be kept:
+     * 1977-04-22T01:00:00-05:00).
+     *
+     * @example
+     * ```
+     * echo Carbon::now('America/Toronto')->toISOString() . "\n";
+     * echo Carbon::now('America/Toronto')->toISOString(true) . "\n";
+     * ```
+     *
+     * @param bool $keepOffset Pass true to keep the date offset. Else forced to UTC.
+     *
+     * @return null|string
+     */
+    public function toISOString($keepOffset = false);
+
+    /**
+     * Return a immutable copy of the instance.
+     *
+     * @return CarbonImmutable
+     */
+    public function toImmutable();
+
+    /**
+     * Format the instance as ISO8601
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toIso8601String();
+     * ```
+     *
+     * @return string
+     */
+    public function toIso8601String();
+
+    /**
+     * Convert the instance to UTC and return as Zulu ISO8601
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toIso8601ZuluString();
+     * ```
+     *
+     * @param string $unitPrecision
+     *
+     * @return string
+     */
+    public function toIso8601ZuluString($unitPrecision = 'second');
+
+    /**
+     * Return the ISO-8601 string (ex: 1977-04-22T06:00:00Z) with UTC timezone.
+     *
+     * @example
+     * ```
+     * echo Carbon::now('America/Toronto')->toJSON();
+     * ```
+     *
+     * @return null|string
+     */
+    public function toJSON();
+
+    /**
+     * Return a mutable copy of the instance.
+     *
+     * @return Carbon
+     */
+    public function toMutable();
+
+    /**
+     * Get the difference in a human readable format in the current locale from an other
+     * instance given to now
+     *
+     * @param int|array $syntax  if array passed, parameters will be extracted from it, the array may contains:
+     *                           - 'syntax' entry (see below)
+     *                           - 'short' entry (see below)
+     *                           - 'parts' entry (see below)
+     *                           - 'options' entry (see below)
+     *                           - 'join' entry determines how to join multiple parts of the string
+     *                           `  - if $join is a string, it's used as a joiner glue
+     *                           `  - if $join is a callable/closure, it get the list of string and should return a string
+     *                           `  - if $join is an array, the first item will be the default glue, and the second item
+     *                           `    will be used instead of the glue for the last item
+     *                           `  - if $join is true, it will be guessed from the locale ('list' translation file entry)
+     *                           `  - if $join is missing, a space will be used as glue
+     *                           if int passed, it add modifiers:
+     *                           Possible values:
+     *                           - CarbonInterface::DIFF_ABSOLUTE          no modifiers
+     *                           - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier
+     *                           - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier
+     *                           Default value: CarbonInterface::DIFF_ABSOLUTE
+     * @param bool      $short   displays short format of time units
+     * @param int       $parts   maximum number of parts to display (default value: 1: single part)
+     * @param int       $options human diff options
+     *
+     * @return string
+     */
+    public function toNow($syntax = null, $short = false, $parts = 1, $options = null);
+
+    /**
+     * Get default object representation.
+     *
+     * @example
+     * ```
+     * var_dump(Carbon::now()->toObject());
+     * ```
+     *
+     * @return object
+     */
+    public function toObject();
+
+    /**
+     * Create a iterable CarbonPeriod object from current date to a given end date (and optional interval).
+     *
+     * @param \DateTimeInterface|Carbon|CarbonImmutable|int|null $end      period end date or recurrences count if int
+     * @param int|\DateInterval|string|null                      $interval period default interval or number of the given $unit
+     * @param string|null                                        $unit     if specified, $interval must be an integer
+     *
+     * @return CarbonPeriod
+     */
+    public function toPeriod($end = null, $interval = null, $unit = null);
+
+    /**
+     * Format the instance as RFC1036
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toRfc1036String();
+     * ```
+     *
+     * @return string
+     */
+    public function toRfc1036String();
+
+    /**
+     * Format the instance as RFC1123
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toRfc1123String();
+     * ```
+     *
+     * @return string
+     */
+    public function toRfc1123String();
+
+    /**
+     * Format the instance as RFC2822
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toRfc2822String();
+     * ```
+     *
+     * @return string
+     */
+    public function toRfc2822String();
+
+    /**
+     * Format the instance as RFC3339
+     *
+     * @param bool $extended
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toRfc3339String() . "\n";
+     * echo Carbon::now()->toRfc3339String(true) . "\n";
+     * ```
+     *
+     * @return string
+     */
+    public function toRfc3339String($extended = false);
+
+    /**
+     * Format the instance as RFC7231
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toRfc7231String();
+     * ```
+     *
+     * @return string
+     */
+    public function toRfc7231String();
+
+    /**
+     * Format the instance as RFC822
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toRfc822String();
+     * ```
+     *
+     * @return string
+     */
+    public function toRfc822String();
+
+    /**
+     * Format the instance as RFC850
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toRfc850String();
+     * ```
+     *
+     * @return string
+     */
+    public function toRfc850String();
+
+    /**
+     * Format the instance as RSS
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toRssString();
+     * ```
+     *
+     * @return string
+     */
+    public function toRssString();
+
+    /**
+     * Returns english human readable complete date string.
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toString();
+     * ```
+     *
+     * @return string
+     */
+    public function toString();
+
+    /**
+     * Format the instance as time
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toTimeString();
+     * ```
+     *
+     * @param string $unitPrecision
+     *
+     * @return string
+     */
+    public function toTimeString($unitPrecision = 'second');
+
+    /**
+     * Format the instance as W3C
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toW3cString();
+     * ```
+     *
+     * @return string
+     */
+    public function toW3cString();
+
+    /**
+     * Create a Carbon instance for today.
+     *
+     * @param DateTimeZone|string|null $tz
+     *
+     * @return static
+     */
+    public static function today($tz = null);
+
+    /**
+     * Create a Carbon instance for tomorrow.
+     *
+     * @param DateTimeZone|string|null $tz
+     *
+     * @return static
+     */
+    public static function tomorrow($tz = null);
+
+    /**
+     * Translate using translation string or callback available.
+     *
+     * @param string                                             $key
+     * @param array                                              $parameters
+     * @param string|int|float|null                              $number
+     * @param \Symfony\Component\Translation\TranslatorInterface $translator
+     *
+     * @return string
+     */
+    public function translate(string $key, array $parameters = [], $number = null, ?\Symfony\Component\Translation\TranslatorInterface $translator = null, bool $altNumbers = false): string;
+
+    /**
+     * Returns the alternative number for a given integer if available in the current locale.
+     *
+     * @param int $number
+     *
+     * @return string
+     */
+    public function translateNumber(int $number): string;
+
+    /**
+     * Translate a time string from a locale to an other.
+     *
+     * @param string      $timeString date/time/duration string to translate (may also contain English)
+     * @param string|null $from       input locale of the $timeString parameter (`Carbon::getLocale()` by default)
+     * @param string|null $to         output locale of the result returned (`"en"` by default)
+     * @param int         $mode       specify what to translate with options:
+     *                                - self::TRANSLATE_ALL (default)
+     *                                - CarbonInterface::TRANSLATE_MONTHS
+     *                                - CarbonInterface::TRANSLATE_DAYS
+     *                                - CarbonInterface::TRANSLATE_UNITS
+     *                                - CarbonInterface::TRANSLATE_MERIDIEM
+     *                                You can use pipe to group: CarbonInterface::TRANSLATE_MONTHS | CarbonInterface::TRANSLATE_DAYS
+     *
+     * @return string
+     */
+    public static function translateTimeString($timeString, $from = null, $to = null, $mode = self::TRANSLATE_ALL);
+
+    /**
+     * Translate a time string from the current locale (`$date->locale()`) to an other.
+     *
+     * @param string      $timeString time string to translate
+     * @param string|null $to         output locale of the result returned ("en" by default)
+     *
+     * @return string
+     */
+    public function translateTimeStringTo($timeString, $to = null);
+
+    /**
+     * Translate using translation string or callback available.
+     *
+     * @param \Symfony\Component\Translation\TranslatorInterface $translator
+     * @param string                                             $key
+     * @param array                                              $parameters
+     * @param null                                               $number
+     *
+     * @return string
+     */
+    public static function translateWith(\Symfony\Component\Translation\TranslatorInterface $translator, string $key, array $parameters = [], $number = null): string;
+
+    /**
+     * Format as ->format() do (using date replacements patterns from https://php.net/manual/en/function.date.php)
+     * but translate words whenever possible (months, day names, etc.) using the current locale.
+     *
+     * @param string $format
+     *
+     * @return string
+     */
+    public function translatedFormat(string $format): string;
+
+    /**
+     * Set the timezone or returns the timezone name if no arguments passed.
+     *
+     * @param DateTimeZone|string $value
+     *
+     * @return static|string
+     */
+    public function tz($value = null);
+
+    /**
+     * @alias getTimestamp
+     *
+     * Returns the UNIX timestamp for the current date.
+     *
+     * @return int
+     */
+    public function unix();
+
+    /**
+     * @alias to
+     *
+     * Get the difference in a human readable format in the current locale from an other
+     * instance given (or now if null given) to current instance.
+     *
+     * @param Carbon|\DateTimeInterface|string|array|null $other   if array passed, will be used as parameters array, see $syntax below;
+     *                                                             if null passed, now will be used as comparison reference;
+     *                                                             if any other type, it will be converted to date and used as reference.
+     * @param int|array                                   $syntax  if array passed, parameters will be extracted from it, the array may contains:
+     *                                                             - 'syntax' entry (see below)
+     *                                                             - 'short' entry (see below)
+     *                                                             - 'parts' entry (see below)
+     *                                                             - 'options' entry (see below)
+     *                                                             - 'join' entry determines how to join multiple parts of the string
+     *                                                             `  - if $join is a string, it's used as a joiner glue
+     *                                                             `  - if $join is a callable/closure, it get the list of string and should return a string
+     *                                                             `  - if $join is an array, the first item will be the default glue, and the second item
+     *                                                             `    will be used instead of the glue for the last item
+     *                                                             `  - if $join is true, it will be guessed from the locale ('list' translation file entry)
+     *                                                             `  - if $join is missing, a space will be used as glue
+     *                                                             - 'other' entry (see above)
+     *                                                             if int passed, it add modifiers:
+     *                                                             Possible values:
+     *                                                             - CarbonInterface::DIFF_ABSOLUTE          no modifiers
+     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier
+     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier
+     *                                                             Default value: CarbonInterface::DIFF_ABSOLUTE
+     * @param bool                                        $short   displays short format of time units
+     * @param int                                         $parts   maximum number of parts to display (default value: 1: single unit)
+     * @param int                                         $options human diff options
+     *
+     * @return string
+     */
+    public function until($other = null, $syntax = null, $short = false, $parts = 1, $options = null);
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather use the ->settings() method.
+     *             Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants
+     *             are available for quarters, years, decade, centuries, millennia (singular and plural forms).
+     * @see settings
+     *
+     * Indicates if months should be calculated with overflow.
+     *
+     * @param bool $monthsOverflow
+     *
+     * @return void
+     */
+    public static function useMonthsOverflow($monthsOverflow = true);
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather use the ->settings() method.
+     * @see settings
+     *
+     * Enable the strict mode (or disable with passing false).
+     *
+     * @param bool $strictModeEnabled
+     */
+    public static function useStrictMode($strictModeEnabled = true);
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather use the ->settings() method.
+     *             Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants
+     *             are available for quarters, years, decade, centuries, millennia (singular and plural forms).
+     * @see settings
+     *
+     * Indicates if years should be calculated with overflow.
+     *
+     * @param bool $yearsOverflow
+     *
+     * @return void
+     */
+    public static function useYearsOverflow($yearsOverflow = true);
+
+    /**
+     * Set the instance's timezone to UTC.
+     *
+     * @return static
+     */
+    public function utc();
+
+    /**
+     * Returns the minutes offset to UTC if no arguments passed, else set the timezone with given minutes shift passed.
+     *
+     * @param int|null $minuteOffset
+     *
+     * @return int|static
+     */
+    public function utcOffset(?int $minuteOffset = null);
+
+    /**
+     * Returns the milliseconds timestamps used amongst other by Date javascript objects.
+     *
+     * @return float
+     */
+    public function valueOf();
+
+    /**
+     * Get/set the week number using given first day of week and first
+     * day of year included in the first week. Or use US format if no settings
+     * given (Sunday / Jan 6).
+     *
+     * @param int|null $week
+     * @param int|null $dayOfWeek
+     * @param int|null $dayOfYear
+     *
+     * @return int|static
+     */
+    public function week($week = null, $dayOfWeek = null, $dayOfYear = null);
+
+    /**
+     * Set/get the week number of year using given first day of week and first
+     * day of year included in the first week. Or use US format if no settings
+     * given (Sunday / Jan 6).
+     *
+     * @param int|null $year      if null, act as a getter, if not null, set the year and return current instance.
+     * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday)
+     * @param int|null $dayOfYear first day of year included in the week #1
+     *
+     * @return int|static
+     */
+    public function weekYear($year = null, $dayOfWeek = null, $dayOfYear = null);
+
+    /**
+     * Get/set the weekday from 0 (Sunday) to 6 (Saturday).
+     *
+     * @param int|null $value new value for weekday if using as setter.
+     *
+     * @return static|int
+     */
+    public function weekday($value = null);
+
+    /**
+     * Get the number of weeks of the current week-year using given first day of week and first
+     * day of year included in the first week. Or use US format if no settings
+     * given (Sunday / Jan 6).
+     *
+     * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday)
+     * @param int|null $dayOfYear first day of year included in the week #1
+     *
+     * @return int
+     */
+    public function weeksInYear($dayOfWeek = null, $dayOfYear = null);
+
+    /**
+     * Temporarily sets a static date to be used within the callback.
+     * Using setTestNow to set the date, executing the callback, then
+     * clearing the test instance.
+     *
+     * /!\ Use this method for unit tests only.
+     *
+     * @param Closure|static|string|false|null $testNow real or mock Carbon instance
+     * @param Closure|null $callback
+     *
+     * @return mixed
+     */
+    public static function withTestNow($testNow = null, $callback = null);
+
+    /**
+     * Create a Carbon instance for yesterday.
+     *
+     * @param DateTimeZone|string|null $tz
+     *
+     * @return static
+     */
+    public static function yesterday($tz = null);
+
+    // </methods>
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php
new file mode 100644
index 0000000..7168fa4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/CarbonInterval.php
@@ -0,0 +1,2667 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon;
+
+use Carbon\Exceptions\BadFluentConstructorException;
+use Carbon\Exceptions\BadFluentSetterException;
+use Carbon\Exceptions\InvalidCastException;
+use Carbon\Exceptions\InvalidIntervalException;
+use Carbon\Exceptions\ParseErrorException;
+use Carbon\Exceptions\UnitNotConfiguredException;
+use Carbon\Exceptions\UnknownGetterException;
+use Carbon\Exceptions\UnknownSetterException;
+use Carbon\Exceptions\UnknownUnitException;
+use Carbon\Traits\IntervalRounding;
+use Carbon\Traits\IntervalStep;
+use Carbon\Traits\Mixin;
+use Carbon\Traits\Options;
+use Closure;
+use DateInterval;
+use Exception;
+use ReflectionException;
+use ReturnTypeWillChange;
+use Throwable;
+
+/**
+ * A simple API extension for DateInterval.
+ * The implementation provides helpers to handle weeks but only days are saved.
+ * Weeks are calculated based on the total days of the current instance.
+ *
+ * @property int $years Total years of the current interval.
+ * @property int $months Total months of the current interval.
+ * @property int $weeks Total weeks of the current interval calculated from the days.
+ * @property int $dayz Total days of the current interval (weeks * 7 + days).
+ * @property int $hours Total hours of the current interval.
+ * @property int $minutes Total minutes of the current interval.
+ * @property int $seconds Total seconds of the current interval.
+ * @property int $microseconds Total microseconds of the current interval.
+ * @property int $milliseconds Total microseconds of the current interval.
+ * @property int $microExcludeMilli Remaining microseconds without the milliseconds.
+ * @property int $dayzExcludeWeeks Total days remaining in the final week of the current instance (days % 7).
+ * @property int $daysExcludeWeeks alias of dayzExcludeWeeks
+ * @property-read float $totalYears Number of years equivalent to the interval.
+ * @property-read float $totalMonths Number of months equivalent to the interval.
+ * @property-read float $totalWeeks Number of weeks equivalent to the interval.
+ * @property-read float $totalDays Number of days equivalent to the interval.
+ * @property-read float $totalDayz Alias for totalDays.
+ * @property-read float $totalHours Number of hours equivalent to the interval.
+ * @property-read float $totalMinutes Number of minutes equivalent to the interval.
+ * @property-read float $totalSeconds Number of seconds equivalent to the interval.
+ * @property-read float $totalMilliseconds Number of milliseconds equivalent to the interval.
+ * @property-read float $totalMicroseconds Number of microseconds equivalent to the interval.
+ * @property-read string $locale locale of the current instance
+ *
+ * @method static CarbonInterval years($years = 1) Create instance specifying a number of years or modify the number of years if called on an instance.
+ * @method static CarbonInterval year($years = 1) Alias for years()
+ * @method static CarbonInterval months($months = 1) Create instance specifying a number of months or modify the number of months if called on an instance.
+ * @method static CarbonInterval month($months = 1) Alias for months()
+ * @method static CarbonInterval weeks($weeks = 1) Create instance specifying a number of weeks or modify the number of weeks if called on an instance.
+ * @method static CarbonInterval week($weeks = 1) Alias for weeks()
+ * @method static CarbonInterval days($days = 1) Create instance specifying a number of days or modify the number of days if called on an instance.
+ * @method static CarbonInterval dayz($days = 1) Alias for days()
+ * @method static CarbonInterval daysExcludeWeeks($days = 1) Create instance specifying a number of days or modify the number of days (keeping the current number of weeks) if called on an instance.
+ * @method static CarbonInterval dayzExcludeWeeks($days = 1) Alias for daysExcludeWeeks()
+ * @method static CarbonInterval day($days = 1) Alias for days()
+ * @method static CarbonInterval hours($hours = 1) Create instance specifying a number of hours or modify the number of hours if called on an instance.
+ * @method static CarbonInterval hour($hours = 1) Alias for hours()
+ * @method static CarbonInterval minutes($minutes = 1) Create instance specifying a number of minutes or modify the number of minutes if called on an instance.
+ * @method static CarbonInterval minute($minutes = 1) Alias for minutes()
+ * @method static CarbonInterval seconds($seconds = 1) Create instance specifying a number of seconds or modify the number of seconds if called on an instance.
+ * @method static CarbonInterval second($seconds = 1) Alias for seconds()
+ * @method static CarbonInterval milliseconds($milliseconds = 1) Create instance specifying a number of milliseconds or modify the number of milliseconds if called on an instance.
+ * @method static CarbonInterval millisecond($milliseconds = 1) Alias for milliseconds()
+ * @method static CarbonInterval microseconds($microseconds = 1) Create instance specifying a number of microseconds or modify the number of microseconds if called on an instance.
+ * @method static CarbonInterval microsecond($microseconds = 1) Alias for microseconds()
+ * @method $this addYears(int $years) Add given number of years to the current interval
+ * @method $this subYears(int $years) Subtract given number of years to the current interval
+ * @method $this addMonths(int $months) Add given number of months to the current interval
+ * @method $this subMonths(int $months) Subtract given number of months to the current interval
+ * @method $this addWeeks(int|float $weeks) Add given number of weeks to the current interval
+ * @method $this subWeeks(int|float $weeks) Subtract given number of weeks to the current interval
+ * @method $this addDays(int|float $days) Add given number of days to the current interval
+ * @method $this subDays(int|float $days) Subtract given number of days to the current interval
+ * @method $this addHours(int|float $hours) Add given number of hours to the current interval
+ * @method $this subHours(int|float $hours) Subtract given number of hours to the current interval
+ * @method $this addMinutes(int|float $minutes) Add given number of minutes to the current interval
+ * @method $this subMinutes(int|float $minutes) Subtract given number of minutes to the current interval
+ * @method $this addSeconds(int|float $seconds) Add given number of seconds to the current interval
+ * @method $this subSeconds(int|float $seconds) Subtract given number of seconds to the current interval
+ * @method $this addMilliseconds(int|float $milliseconds) Add given number of milliseconds to the current interval
+ * @method $this subMilliseconds(int|float $milliseconds) Subtract given number of milliseconds to the current interval
+ * @method $this addMicroseconds(int|float $microseconds) Add given number of microseconds to the current interval
+ * @method $this subMicroseconds(int|float $microseconds) Subtract given number of microseconds to the current interval
+ * @method $this roundYear(int|float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function.
+ * @method $this roundYears(int|float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function.
+ * @method $this floorYear(int|float $precision = 1) Truncate the current instance year with given precision.
+ * @method $this floorYears(int|float $precision = 1) Truncate the current instance year with given precision.
+ * @method $this ceilYear(int|float $precision = 1) Ceil the current instance year with given precision.
+ * @method $this ceilYears(int|float $precision = 1) Ceil the current instance year with given precision.
+ * @method $this roundMonth(int|float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function.
+ * @method $this roundMonths(int|float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function.
+ * @method $this floorMonth(int|float $precision = 1) Truncate the current instance month with given precision.
+ * @method $this floorMonths(int|float $precision = 1) Truncate the current instance month with given precision.
+ * @method $this ceilMonth(int|float $precision = 1) Ceil the current instance month with given precision.
+ * @method $this ceilMonths(int|float $precision = 1) Ceil the current instance month with given precision.
+ * @method $this roundWeek(int|float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function.
+ * @method $this roundWeeks(int|float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function.
+ * @method $this floorWeek(int|float $precision = 1) Truncate the current instance day with given precision.
+ * @method $this floorWeeks(int|float $precision = 1) Truncate the current instance day with given precision.
+ * @method $this ceilWeek(int|float $precision = 1) Ceil the current instance day with given precision.
+ * @method $this ceilWeeks(int|float $precision = 1) Ceil the current instance day with given precision.
+ * @method $this roundDay(int|float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function.
+ * @method $this roundDays(int|float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function.
+ * @method $this floorDay(int|float $precision = 1) Truncate the current instance day with given precision.
+ * @method $this floorDays(int|float $precision = 1) Truncate the current instance day with given precision.
+ * @method $this ceilDay(int|float $precision = 1) Ceil the current instance day with given precision.
+ * @method $this ceilDays(int|float $precision = 1) Ceil the current instance day with given precision.
+ * @method $this roundHour(int|float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function.
+ * @method $this roundHours(int|float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function.
+ * @method $this floorHour(int|float $precision = 1) Truncate the current instance hour with given precision.
+ * @method $this floorHours(int|float $precision = 1) Truncate the current instance hour with given precision.
+ * @method $this ceilHour(int|float $precision = 1) Ceil the current instance hour with given precision.
+ * @method $this ceilHours(int|float $precision = 1) Ceil the current instance hour with given precision.
+ * @method $this roundMinute(int|float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function.
+ * @method $this roundMinutes(int|float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function.
+ * @method $this floorMinute(int|float $precision = 1) Truncate the current instance minute with given precision.
+ * @method $this floorMinutes(int|float $precision = 1) Truncate the current instance minute with given precision.
+ * @method $this ceilMinute(int|float $precision = 1) Ceil the current instance minute with given precision.
+ * @method $this ceilMinutes(int|float $precision = 1) Ceil the current instance minute with given precision.
+ * @method $this roundSecond(int|float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function.
+ * @method $this roundSeconds(int|float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function.
+ * @method $this floorSecond(int|float $precision = 1) Truncate the current instance second with given precision.
+ * @method $this floorSeconds(int|float $precision = 1) Truncate the current instance second with given precision.
+ * @method $this ceilSecond(int|float $precision = 1) Ceil the current instance second with given precision.
+ * @method $this ceilSeconds(int|float $precision = 1) Ceil the current instance second with given precision.
+ * @method $this roundMillennium(int|float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function.
+ * @method $this roundMillennia(int|float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function.
+ * @method $this floorMillennium(int|float $precision = 1) Truncate the current instance millennium with given precision.
+ * @method $this floorMillennia(int|float $precision = 1) Truncate the current instance millennium with given precision.
+ * @method $this ceilMillennium(int|float $precision = 1) Ceil the current instance millennium with given precision.
+ * @method $this ceilMillennia(int|float $precision = 1) Ceil the current instance millennium with given precision.
+ * @method $this roundCentury(int|float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function.
+ * @method $this roundCenturies(int|float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function.
+ * @method $this floorCentury(int|float $precision = 1) Truncate the current instance century with given precision.
+ * @method $this floorCenturies(int|float $precision = 1) Truncate the current instance century with given precision.
+ * @method $this ceilCentury(int|float $precision = 1) Ceil the current instance century with given precision.
+ * @method $this ceilCenturies(int|float $precision = 1) Ceil the current instance century with given precision.
+ * @method $this roundDecade(int|float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function.
+ * @method $this roundDecades(int|float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function.
+ * @method $this floorDecade(int|float $precision = 1) Truncate the current instance decade with given precision.
+ * @method $this floorDecades(int|float $precision = 1) Truncate the current instance decade with given precision.
+ * @method $this ceilDecade(int|float $precision = 1) Ceil the current instance decade with given precision.
+ * @method $this ceilDecades(int|float $precision = 1) Ceil the current instance decade with given precision.
+ * @method $this roundQuarter(int|float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function.
+ * @method $this roundQuarters(int|float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function.
+ * @method $this floorQuarter(int|float $precision = 1) Truncate the current instance quarter with given precision.
+ * @method $this floorQuarters(int|float $precision = 1) Truncate the current instance quarter with given precision.
+ * @method $this ceilQuarter(int|float $precision = 1) Ceil the current instance quarter with given precision.
+ * @method $this ceilQuarters(int|float $precision = 1) Ceil the current instance quarter with given precision.
+ * @method $this roundMillisecond(int|float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function.
+ * @method $this roundMilliseconds(int|float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function.
+ * @method $this floorMillisecond(int|float $precision = 1) Truncate the current instance millisecond with given precision.
+ * @method $this floorMilliseconds(int|float $precision = 1) Truncate the current instance millisecond with given precision.
+ * @method $this ceilMillisecond(int|float $precision = 1) Ceil the current instance millisecond with given precision.
+ * @method $this ceilMilliseconds(int|float $precision = 1) Ceil the current instance millisecond with given precision.
+ * @method $this roundMicrosecond(int|float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function.
+ * @method $this roundMicroseconds(int|float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function.
+ * @method $this floorMicrosecond(int|float $precision = 1) Truncate the current instance microsecond with given precision.
+ * @method $this floorMicroseconds(int|float $precision = 1) Truncate the current instance microsecond with given precision.
+ * @method $this ceilMicrosecond(int|float $precision = 1) Ceil the current instance microsecond with given precision.
+ * @method $this ceilMicroseconds(int|float $precision = 1) Ceil the current instance microsecond with given precision.
+ */
+class CarbonInterval extends DateInterval implements CarbonConverterInterface
+{
+    use IntervalRounding;
+    use IntervalStep;
+    use Mixin {
+        Mixin::mixin as baseMixin;
+    }
+    use Options;
+
+    /**
+     * Interval spec period designators
+     */
+    const PERIOD_PREFIX = 'P';
+    const PERIOD_YEARS = 'Y';
+    const PERIOD_MONTHS = 'M';
+    const PERIOD_DAYS = 'D';
+    const PERIOD_TIME_PREFIX = 'T';
+    const PERIOD_HOURS = 'H';
+    const PERIOD_MINUTES = 'M';
+    const PERIOD_SECONDS = 'S';
+
+    /**
+     * A translator to ... er ... translate stuff
+     *
+     * @var \Symfony\Component\Translation\TranslatorInterface
+     */
+    protected static $translator;
+
+    /**
+     * @var array|null
+     */
+    protected static $cascadeFactors;
+
+    /**
+     * @var array
+     */
+    protected static $formats = [
+        'y' => 'y',
+        'Y' => 'y',
+        'o' => 'y',
+        'm' => 'm',
+        'n' => 'm',
+        'W' => 'weeks',
+        'd' => 'd',
+        'j' => 'd',
+        'z' => 'd',
+        'h' => 'h',
+        'g' => 'h',
+        'H' => 'h',
+        'G' => 'h',
+        'i' => 'i',
+        's' => 's',
+        'u' => 'micro',
+        'v' => 'milli',
+    ];
+
+    /**
+     * @var array|null
+     */
+    private static $flipCascadeFactors;
+
+    /**
+     * The registered macros.
+     *
+     * @var array
+     */
+    protected static $macros = [];
+
+    /**
+     * Timezone handler for settings() method.
+     *
+     * @var mixed
+     */
+    protected $tzName;
+
+    /**
+     * Set the instance's timezone from a string or object and add/subtract the offset difference.
+     *
+     * @param \DateTimeZone|string $tzName
+     *
+     * @return static
+     */
+    public function shiftTimezone($tzName)
+    {
+        $this->tzName = $tzName;
+
+        return $this;
+    }
+
+    /**
+     * Mapping of units and factors for cascading.
+     *
+     * Should only be modified by changing the factors or referenced constants.
+     *
+     * @return array
+     */
+    public static function getCascadeFactors()
+    {
+        return static::$cascadeFactors ?: [
+            'milliseconds' => [Carbon::MICROSECONDS_PER_MILLISECOND, 'microseconds'],
+            'seconds' => [Carbon::MILLISECONDS_PER_SECOND, 'milliseconds'],
+            'minutes' => [Carbon::SECONDS_PER_MINUTE, 'seconds'],
+            'hours' => [Carbon::MINUTES_PER_HOUR, 'minutes'],
+            'dayz' => [Carbon::HOURS_PER_DAY, 'hours'],
+            'weeks' => [Carbon::DAYS_PER_WEEK, 'dayz'],
+            'months' => [Carbon::WEEKS_PER_MONTH, 'weeks'],
+            'years' => [Carbon::MONTHS_PER_YEAR, 'months'],
+        ];
+    }
+
+    private static function standardizeUnit($unit)
+    {
+        $unit = rtrim($unit, 'sz').'s';
+
+        return $unit === 'days' ? 'dayz' : $unit;
+    }
+
+    private static function getFlipCascadeFactors()
+    {
+        if (!self::$flipCascadeFactors) {
+            self::$flipCascadeFactors = [];
+
+            foreach (static::getCascadeFactors() as $to => [$factor, $from]) {
+                self::$flipCascadeFactors[self::standardizeUnit($from)] = [self::standardizeUnit($to), $factor];
+            }
+        }
+
+        return self::$flipCascadeFactors;
+    }
+
+    /**
+     * Set default cascading factors for ->cascade() method.
+     *
+     * @param array $cascadeFactors
+     */
+    public static function setCascadeFactors(array $cascadeFactors)
+    {
+        self::$flipCascadeFactors = null;
+        static::$cascadeFactors = $cascadeFactors;
+    }
+
+    ///////////////////////////////////////////////////////////////////
+    //////////////////////////// CONSTRUCTORS /////////////////////////
+    ///////////////////////////////////////////////////////////////////
+
+    /**
+     * Create a new CarbonInterval instance.
+     *
+     * @param int|null $years
+     * @param int|null $months
+     * @param int|null $weeks
+     * @param int|null $days
+     * @param int|null $hours
+     * @param int|null $minutes
+     * @param int|null $seconds
+     * @param int|null $microseconds
+     *
+     * @throws Exception when the interval_spec (passed as $years) cannot be parsed as an interval.
+     */
+    public function __construct($years = 1, $months = null, $weeks = null, $days = null, $hours = null, $minutes = null, $seconds = null, $microseconds = null)
+    {
+        if ($years instanceof Closure) {
+            $this->step = $years;
+            $years = null;
+        }
+
+        if ($years instanceof DateInterval) {
+            parent::__construct(static::getDateIntervalSpec($years));
+            $this->f = $years->f;
+            static::copyNegativeUnits($years, $this);
+
+            return;
+        }
+
+        $spec = $years;
+
+        if (!\is_string($spec) || (float) $years || preg_match('/^[0-9.]/', $years)) {
+            $spec = static::PERIOD_PREFIX;
+
+            $spec .= $years > 0 ? $years.static::PERIOD_YEARS : '';
+            $spec .= $months > 0 ? $months.static::PERIOD_MONTHS : '';
+
+            $specDays = 0;
+            $specDays += $weeks > 0 ? $weeks * static::getDaysPerWeek() : 0;
+            $specDays += $days > 0 ? $days : 0;
+
+            $spec .= $specDays > 0 ? $specDays.static::PERIOD_DAYS : '';
+
+            if ($hours > 0 || $minutes > 0 || $seconds > 0) {
+                $spec .= static::PERIOD_TIME_PREFIX;
+                $spec .= $hours > 0 ? $hours.static::PERIOD_HOURS : '';
+                $spec .= $minutes > 0 ? $minutes.static::PERIOD_MINUTES : '';
+                $spec .= $seconds > 0 ? $seconds.static::PERIOD_SECONDS : '';
+            }
+
+            if ($spec === static::PERIOD_PREFIX) {
+                // Allow the zero interval.
+                $spec .= '0'.static::PERIOD_YEARS;
+            }
+        }
+
+        parent::__construct($spec);
+
+        if ($microseconds !== null) {
+            $this->f = $microseconds / Carbon::MICROSECONDS_PER_SECOND;
+        }
+    }
+
+    /**
+     * Returns the factor for a given source-to-target couple.
+     *
+     * @param string $source
+     * @param string $target
+     *
+     * @return int|null
+     */
+    public static function getFactor($source, $target)
+    {
+        $source = self::standardizeUnit($source);
+        $target = self::standardizeUnit($target);
+        $factors = static::getFlipCascadeFactors();
+
+        if (isset($factors[$source])) {
+            [$to, $factor] = $factors[$source];
+
+            if ($to === $target) {
+                return $factor;
+            }
+
+            return $factor * static::getFactor($to, $target);
+        }
+
+        return null;
+    }
+
+    /**
+     * Returns current config for days per week.
+     *
+     * @return int
+     */
+    public static function getDaysPerWeek()
+    {
+        return static::getFactor('dayz', 'weeks') ?: Carbon::DAYS_PER_WEEK;
+    }
+
+    /**
+     * Returns current config for hours per day.
+     *
+     * @return int
+     */
+    public static function getHoursPerDay()
+    {
+        return static::getFactor('hours', 'dayz') ?: Carbon::HOURS_PER_DAY;
+    }
+
+    /**
+     * Returns current config for minutes per hour.
+     *
+     * @return int
+     */
+    public static function getMinutesPerHour()
+    {
+        return static::getFactor('minutes', 'hours') ?: Carbon::MINUTES_PER_HOUR;
+    }
+
+    /**
+     * Returns current config for seconds per minute.
+     *
+     * @return int
+     */
+    public static function getSecondsPerMinute()
+    {
+        return static::getFactor('seconds', 'minutes') ?: Carbon::SECONDS_PER_MINUTE;
+    }
+
+    /**
+     * Returns current config for microseconds per second.
+     *
+     * @return int
+     */
+    public static function getMillisecondsPerSecond()
+    {
+        return static::getFactor('milliseconds', 'seconds') ?: Carbon::MILLISECONDS_PER_SECOND;
+    }
+
+    /**
+     * Returns current config for microseconds per second.
+     *
+     * @return int
+     */
+    public static function getMicrosecondsPerMillisecond()
+    {
+        return static::getFactor('microseconds', 'milliseconds') ?: Carbon::MICROSECONDS_PER_MILLISECOND;
+    }
+
+    /**
+     * Create a new CarbonInterval instance from specific values.
+     * This is an alias for the constructor that allows better fluent
+     * syntax as it allows you to do CarbonInterval::create(1)->fn() rather than
+     * (new CarbonInterval(1))->fn().
+     *
+     * @param int $years
+     * @param int $months
+     * @param int $weeks
+     * @param int $days
+     * @param int $hours
+     * @param int $minutes
+     * @param int $seconds
+     * @param int $microseconds
+     *
+     * @throws Exception when the interval_spec (passed as $years) cannot be parsed as an interval.
+     *
+     * @return static
+     */
+    public static function create($years = 1, $months = null, $weeks = null, $days = null, $hours = null, $minutes = null, $seconds = null, $microseconds = null)
+    {
+        return new static($years, $months, $weeks, $days, $hours, $minutes, $seconds, $microseconds);
+    }
+
+    /**
+     * Parse a string into a new CarbonInterval object according to the specified format.
+     *
+     * @example
+     * ```
+     * echo Carboninterval::createFromFormat('H:i', '1:30');
+     * ```
+     *
+     * @param string $format   Format of the $interval input string
+     * @param string $interval Input string to convert into an interval
+     *
+     * @throws Exception when the $interval cannot be parsed as an interval.
+     *
+     * @return static
+     */
+    public static function createFromFormat(string $format, ?string $interval)
+    {
+        $instance = new static(0);
+        $length = mb_strlen($format);
+
+        if (preg_match('/s([,.])([uv])$/', $format, $match)) {
+            $interval = explode($match[1], $interval);
+            $index = \count($interval) - 1;
+            $interval[$index] = str_pad($interval[$index], $match[2] === 'v' ? 3 : 6, '0');
+            $interval = implode($match[1], $interval);
+        }
+
+        $interval = $interval ?? '';
+
+        for ($index = 0; $index < $length; $index++) {
+            $expected = mb_substr($format, $index, 1);
+            $nextCharacter = mb_substr($interval, 0, 1);
+            $unit = static::$formats[$expected] ?? null;
+
+            if ($unit) {
+                if (!preg_match('/^-?\d+/', $interval, $match)) {
+                    throw new ParseErrorException('number', $nextCharacter);
+                }
+
+                $interval = mb_substr($interval, mb_strlen($match[0]));
+                $instance->$unit += (int) ($match[0]);
+
+                continue;
+            }
+
+            if ($nextCharacter !== $expected) {
+                throw new ParseErrorException(
+                    "'$expected'",
+                    $nextCharacter,
+                    'Allowed substitutes for interval formats are '.implode(', ', array_keys(static::$formats))."\n".
+                    'See https://php.net/manual/en/function.date.php for their meaning'
+                );
+            }
+
+            $interval = mb_substr($interval, 1);
+        }
+
+        if ($interval !== '') {
+            throw new ParseErrorException(
+                'end of string',
+                $interval
+            );
+        }
+
+        return $instance;
+    }
+
+    /**
+     * Get a copy of the instance.
+     *
+     * @return static
+     */
+    public function copy()
+    {
+        $date = new static(0);
+        $date->copyProperties($this);
+        $date->step = $this->step;
+
+        return $date;
+    }
+
+    /**
+     * Get a copy of the instance.
+     *
+     * @return static
+     */
+    public function clone()
+    {
+        return $this->copy();
+    }
+
+    /**
+     * Provide static helpers to create instances.  Allows CarbonInterval::years(3).
+     *
+     * Note: This is done using the magic method to allow static and instance methods to
+     *       have the same names.
+     *
+     * @param string $method     magic method name called
+     * @param array  $parameters parameters list
+     *
+     * @return static|null
+     */
+    public static function __callStatic($method, $parameters)
+    {
+        try {
+            $interval = new static(0);
+            $localStrictModeEnabled = $interval->localStrictModeEnabled;
+            $interval->localStrictModeEnabled = true;
+
+            $result = static::hasMacro($method)
+                ? static::bindMacroContext(null, function () use (&$method, &$parameters, &$interval) {
+                    return $interval->callMacro($method, $parameters);
+                })
+                : $interval->$method(...$parameters);
+
+            $interval->localStrictModeEnabled = $localStrictModeEnabled;
+
+            return $result;
+        } catch (BadFluentSetterException $exception) {
+            if (Carbon::isStrictModeEnabled()) {
+                throw new BadFluentConstructorException($method, 0, $exception);
+            }
+
+            return null;
+        }
+    }
+
+    /**
+     * Return the current context from inside a macro callee or a new one if static.
+     *
+     * @return static
+     */
+    protected static function this()
+    {
+        return end(static::$macroContextStack) ?: new static(0);
+    }
+
+    /**
+     * Creates a CarbonInterval from string.
+     *
+     * Format:
+     *
+     * Suffix | Unit    | Example | DateInterval expression
+     * -------|---------|---------|------------------------
+     * y      | years   |   1y    | P1Y
+     * mo     | months  |   3mo   | P3M
+     * w      | weeks   |   2w    | P2W
+     * d      | days    |  28d    | P28D
+     * h      | hours   |   4h    | PT4H
+     * m      | minutes |  12m    | PT12M
+     * s      | seconds |  59s    | PT59S
+     *
+     * e. g. `1w 3d 4h 32m 23s` is converted to 10 days 4 hours 32 minutes and 23 seconds.
+     *
+     * Special cases:
+     *  - An empty string will return a zero interval
+     *  - Fractions are allowed for weeks, days, hours and minutes and will be converted
+     *    and rounded to the next smaller value (caution: 0.5w = 4d)
+     *
+     * @param string $intervalDefinition
+     *
+     * @return static
+     */
+    public static function fromString($intervalDefinition)
+    {
+        if (empty($intervalDefinition)) {
+            return new static(0);
+        }
+
+        $years = 0;
+        $months = 0;
+        $weeks = 0;
+        $days = 0;
+        $hours = 0;
+        $minutes = 0;
+        $seconds = 0;
+        $milliseconds = 0;
+        $microseconds = 0;
+
+        $pattern = '/(\d+(?:\.\d+)?)\h*([^\d\h]*)/i';
+        preg_match_all($pattern, $intervalDefinition, $parts, PREG_SET_ORDER);
+
+        while ([$part, $value, $unit] = array_shift($parts)) {
+            $intValue = (int) $value;
+            $fraction = (float) $value - $intValue;
+
+            // Fix calculation precision
+            switch (round($fraction, 6)) {
+                case 1:
+                    $fraction = 0;
+                    $intValue++;
+
+                    break;
+                case 0:
+                    $fraction = 0;
+
+                    break;
+            }
+
+            switch ($unit === 'µs' ? 'µs' : strtolower($unit)) {
+                case 'millennia':
+                case 'millennium':
+                    $years += $intValue * CarbonInterface::YEARS_PER_MILLENNIUM;
+
+                    break;
+
+                case 'century':
+                case 'centuries':
+                    $years += $intValue * CarbonInterface::YEARS_PER_CENTURY;
+
+                    break;
+
+                case 'decade':
+                case 'decades':
+                    $years += $intValue * CarbonInterface::YEARS_PER_DECADE;
+
+                    break;
+
+                case 'year':
+                case 'years':
+                case 'y':
+                    $years += $intValue;
+
+                    break;
+
+                case 'quarter':
+                case 'quarters':
+                    $months += $intValue * CarbonInterface::MONTHS_PER_QUARTER;
+
+                    break;
+
+                case 'month':
+                case 'months':
+                case 'mo':
+                    $months += $intValue;
+
+                    break;
+
+                case 'week':
+                case 'weeks':
+                case 'w':
+                    $weeks += $intValue;
+
+                    if ($fraction) {
+                        $parts[] = [null, $fraction * static::getDaysPerWeek(), 'd'];
+                    }
+
+                    break;
+
+                case 'day':
+                case 'days':
+                case 'd':
+                    $days += $intValue;
+
+                    if ($fraction) {
+                        $parts[] = [null, $fraction * static::getHoursPerDay(), 'h'];
+                    }
+
+                    break;
+
+                case 'hour':
+                case 'hours':
+                case 'h':
+                    $hours += $intValue;
+
+                    if ($fraction) {
+                        $parts[] = [null, $fraction * static::getMinutesPerHour(), 'm'];
+                    }
+
+                    break;
+
+                case 'minute':
+                case 'minutes':
+                case 'm':
+                    $minutes += $intValue;
+
+                    if ($fraction) {
+                        $parts[] = [null, $fraction * static::getSecondsPerMinute(), 's'];
+                    }
+
+                    break;
+
+                case 'second':
+                case 'seconds':
+                case 's':
+                    $seconds += $intValue;
+
+                    if ($fraction) {
+                        $parts[] = [null, $fraction * static::getMillisecondsPerSecond(), 'ms'];
+                    }
+
+                    break;
+
+                case 'millisecond':
+                case 'milliseconds':
+                case 'milli':
+                case 'ms':
+                    $milliseconds += $intValue;
+
+                    if ($fraction) {
+                        $microseconds += round($fraction * static::getMicrosecondsPerMillisecond());
+                    }
+
+                    break;
+
+                case 'microsecond':
+                case 'microseconds':
+                case 'micro':
+                case 'µs':
+                    $microseconds += $intValue;
+
+                    break;
+
+                default:
+                    throw new InvalidIntervalException(
+                        sprintf('Invalid part %s in definition %s', $part, $intervalDefinition)
+                    );
+            }
+        }
+
+        return new static($years, $months, $weeks, $days, $hours, $minutes, $seconds, $milliseconds * Carbon::MICROSECONDS_PER_MILLISECOND + $microseconds);
+    }
+
+    /**
+     * Creates a CarbonInterval from string using a different locale.
+     *
+     * @param string      $interval interval string in the given language (may also contain English).
+     * @param string|null $locale   if locale is null or not specified, current global locale will be used instead.
+     *
+     * @return static
+     */
+    public static function parseFromLocale($interval, $locale = null)
+    {
+        return static::fromString(Carbon::translateTimeString($interval, $locale ?: static::getLocale(), 'en'));
+    }
+
+    private static function castIntervalToClass(DateInterval $interval, string $className)
+    {
+        $mainClass = DateInterval::class;
+
+        if (!is_a($className, $mainClass, true)) {
+            throw new InvalidCastException("$className is not a sub-class of $mainClass.");
+        }
+
+        $microseconds = $interval->f;
+        $instance = new $className(static::getDateIntervalSpec($interval));
+
+        if ($microseconds) {
+            $instance->f = $microseconds;
+        }
+
+        if ($interval instanceof self && is_a($className, self::class, true)) {
+            static::copyStep($interval, $instance);
+        }
+
+        static::copyNegativeUnits($interval, $instance);
+
+        return $instance;
+    }
+
+    private static function copyNegativeUnits(DateInterval $from, DateInterval $to): void
+    {
+        $to->invert = $from->invert;
+
+        foreach (['y', 'm', 'd', 'h', 'i', 's'] as $unit) {
+            if ($from->$unit < 0) {
+                $to->$unit *= -1;
+            }
+        }
+    }
+
+    private static function copyStep(self $from, self $to): void
+    {
+        $to->setStep($from->getStep());
+    }
+
+    /**
+     * Cast the current instance into the given class.
+     *
+     * @param string $className The $className::instance() method will be called to cast the current object.
+     *
+     * @return DateInterval
+     */
+    public function cast(string $className)
+    {
+        return self::castIntervalToClass($this, $className);
+    }
+
+    /**
+     * Create a CarbonInterval instance from a DateInterval one.  Can not instance
+     * DateInterval objects created from DateTime::diff() as you can't externally
+     * set the $days field.
+     *
+     * @param DateInterval $interval
+     *
+     * @return static
+     */
+    public static function instance(DateInterval $interval)
+    {
+        return self::castIntervalToClass($interval, static::class);
+    }
+
+    /**
+     * Make a CarbonInterval instance from given variable if possible.
+     *
+     * Always return a new instance. Parse only strings and only these likely to be intervals (skip dates
+     * and recurrences). Throw an exception for invalid format, but otherwise return null.
+     *
+     * @param mixed|int|DateInterval|string|Closure|null $interval interval or number of the given $unit
+     * @param string|null                                $unit     if specified, $interval must be an integer
+     *
+     * @return static|null
+     */
+    public static function make($interval, $unit = null)
+    {
+        if ($unit) {
+            $interval = "$interval ".Carbon::pluralUnit($unit);
+        }
+
+        if ($interval instanceof DateInterval) {
+            return static::instance($interval);
+        }
+
+        if ($interval instanceof Closure) {
+            return new static($interval);
+        }
+
+        if (!\is_string($interval)) {
+            return null;
+        }
+
+        return static::makeFromString($interval);
+    }
+
+    protected static function makeFromString(string $interval)
+    {
+        $interval = preg_replace('/\s+/', ' ', trim($interval));
+
+        if (preg_match('/^P[T0-9]/', $interval)) {
+            return new static($interval);
+        }
+
+        if (preg_match('/^(?:\h*\d+(?:\.\d+)?\h*[a-z]+)+$/i', $interval)) {
+            return static::fromString($interval);
+        }
+
+        /** @var static $interval */
+        $interval = static::createFromDateString($interval);
+
+        return !$interval || $interval->isEmpty() ? null : $interval;
+    }
+
+    protected function resolveInterval($interval)
+    {
+        if (!($interval instanceof self)) {
+            return self::make($interval);
+        }
+
+        return $interval;
+    }
+
+    /**
+     * Sets up a DateInterval from the relative parts of the string.
+     *
+     * @param string $time
+     *
+     * @return static
+     *
+     * @link https://php.net/manual/en/dateinterval.createfromdatestring.php
+     */
+    #[ReturnTypeWillChange]
+    public static function createFromDateString($time)
+    {
+        $interval = @parent::createFromDateString(strtr($time, [
+            ',' => ' ',
+            ' and ' => ' ',
+        ]));
+
+        if ($interval instanceof DateInterval) {
+            $interval = static::instance($interval);
+        }
+
+        return $interval;
+    }
+
+    ///////////////////////////////////////////////////////////////////
+    ///////////////////////// GETTERS AND SETTERS /////////////////////
+    ///////////////////////////////////////////////////////////////////
+
+    /**
+     * Get a part of the CarbonInterval object.
+     *
+     * @param string $name
+     *
+     * @throws UnknownGetterException
+     *
+     * @return int|float|string
+     */
+    public function get($name)
+    {
+        if (str_starts_with($name, 'total')) {
+            return $this->total(substr($name, 5));
+        }
+
+        switch ($name) {
+            case 'years':
+                return $this->y;
+
+            case 'months':
+                return $this->m;
+
+            case 'dayz':
+                return $this->d;
+
+            case 'hours':
+                return $this->h;
+
+            case 'minutes':
+                return $this->i;
+
+            case 'seconds':
+                return $this->s;
+
+            case 'milli':
+            case 'milliseconds':
+                return (int) (round($this->f * Carbon::MICROSECONDS_PER_SECOND) / Carbon::MICROSECONDS_PER_MILLISECOND);
+
+            case 'micro':
+            case 'microseconds':
+                return (int) round($this->f * Carbon::MICROSECONDS_PER_SECOND);
+
+            case 'microExcludeMilli':
+                return (int) round($this->f * Carbon::MICROSECONDS_PER_SECOND) % Carbon::MICROSECONDS_PER_MILLISECOND;
+
+            case 'weeks':
+                return (int) ($this->d / static::getDaysPerWeek());
+
+            case 'daysExcludeWeeks':
+            case 'dayzExcludeWeeks':
+                return $this->d % static::getDaysPerWeek();
+
+            case 'locale':
+                return $this->getTranslatorLocale();
+
+            default:
+                throw new UnknownGetterException($name);
+        }
+    }
+
+    /**
+     * Get a part of the CarbonInterval object.
+     *
+     * @param string $name
+     *
+     * @throws UnknownGetterException
+     *
+     * @return int|float|string
+     */
+    public function __get($name)
+    {
+        return $this->get($name);
+    }
+
+    /**
+     * Set a part of the CarbonInterval object.
+     *
+     * @param string|array $name
+     * @param int          $value
+     *
+     * @throws UnknownSetterException
+     *
+     * @return $this
+     */
+    public function set($name, $value = null)
+    {
+        $properties = \is_array($name) ? $name : [$name => $value];
+
+        foreach ($properties as $key => $value) {
+            switch (Carbon::singularUnit(rtrim($key, 'z'))) {
+                case 'year':
+                    $this->y = $value;
+
+                    break;
+
+                case 'month':
+                    $this->m = $value;
+
+                    break;
+
+                case 'week':
+                    $this->d = $value * static::getDaysPerWeek();
+
+                    break;
+
+                case 'day':
+                    $this->d = $value;
+
+                    break;
+
+                case 'daysexcludeweek':
+                case 'dayzexcludeweek':
+                    $this->d = $this->weeks * static::getDaysPerWeek() + $value;
+
+                    break;
+
+                case 'hour':
+                    $this->h = $value;
+
+                    break;
+
+                case 'minute':
+                    $this->i = $value;
+
+                    break;
+
+                case 'second':
+                    $this->s = $value;
+
+                    break;
+
+                case 'milli':
+                case 'millisecond':
+                    $this->microseconds = $value * Carbon::MICROSECONDS_PER_MILLISECOND + $this->microseconds % Carbon::MICROSECONDS_PER_MILLISECOND;
+
+                    break;
+
+                case 'micro':
+                case 'microsecond':
+                    $this->f = $value / Carbon::MICROSECONDS_PER_SECOND;
+
+                    break;
+
+                default:
+                    if ($this->localStrictModeEnabled ?? Carbon::isStrictModeEnabled()) {
+                        throw new UnknownSetterException($key);
+                    }
+
+                    $this->$key = $value;
+            }
+        }
+
+        return $this;
+    }
+
+    /**
+     * Set a part of the CarbonInterval object.
+     *
+     * @param string $name
+     * @param int    $value
+     *
+     * @throws UnknownSetterException
+     */
+    public function __set($name, $value)
+    {
+        $this->set($name, $value);
+    }
+
+    /**
+     * Allow setting of weeks and days to be cumulative.
+     *
+     * @param int $weeks Number of weeks to set
+     * @param int $days  Number of days to set
+     *
+     * @return static
+     */
+    public function weeksAndDays($weeks, $days)
+    {
+        $this->dayz = ($weeks * static::getDaysPerWeek()) + $days;
+
+        return $this;
+    }
+
+    /**
+     * Returns true if the interval is empty for each unit.
+     *
+     * @return bool
+     */
+    public function isEmpty()
+    {
+        return $this->years === 0 &&
+            $this->months === 0 &&
+            $this->dayz === 0 &&
+            !$this->days &&
+            $this->hours === 0 &&
+            $this->minutes === 0 &&
+            $this->seconds === 0 &&
+            $this->microseconds === 0;
+    }
+
+    /**
+     * Register a custom macro.
+     *
+     * @example
+     * ```
+     * CarbonInterval::macro('twice', function () {
+     *   return $this->times(2);
+     * });
+     * echo CarbonInterval::hours(2)->twice();
+     * ```
+     *
+     * @param string          $name
+     * @param object|callable $macro
+     *
+     * @return void
+     */
+    public static function macro($name, $macro)
+    {
+        static::$macros[$name] = $macro;
+    }
+
+    /**
+     * Register macros from a mixin object.
+     *
+     * @example
+     * ```
+     * CarbonInterval::mixin(new class {
+     *   public function daysToHours() {
+     *     return function () {
+     *       $this->hours += $this->days;
+     *       $this->days = 0;
+     *
+     *       return $this;
+     *     };
+     *   }
+     *   public function hoursToDays() {
+     *     return function () {
+     *       $this->days += $this->hours;
+     *       $this->hours = 0;
+     *
+     *       return $this;
+     *     };
+     *   }
+     * });
+     * echo CarbonInterval::hours(5)->hoursToDays() . "\n";
+     * echo CarbonInterval::days(5)->daysToHours() . "\n";
+     * ```
+     *
+     * @param object|string $mixin
+     *
+     * @throws ReflectionException
+     *
+     * @return void
+     */
+    public static function mixin($mixin)
+    {
+        static::baseMixin($mixin);
+    }
+
+    /**
+     * Check if macro is registered.
+     *
+     * @param string $name
+     *
+     * @return bool
+     */
+    public static function hasMacro($name)
+    {
+        return isset(static::$macros[$name]);
+    }
+
+    /**
+     * Call given macro.
+     *
+     * @param string $name
+     * @param array  $parameters
+     *
+     * @return mixed
+     */
+    protected function callMacro($name, $parameters)
+    {
+        $macro = static::$macros[$name];
+
+        if ($macro instanceof Closure) {
+            $boundMacro = @$macro->bindTo($this, static::class) ?: @$macro->bindTo(null, static::class);
+
+            return ($boundMacro ?: $macro)(...$parameters);
+        }
+
+        return $macro(...$parameters);
+    }
+
+    /**
+     * Allow fluent calls on the setters... CarbonInterval::years(3)->months(5)->day().
+     *
+     * Note: This is done using the magic method to allow static and instance methods to
+     *       have the same names.
+     *
+     * @param string $method     magic method name called
+     * @param array  $parameters parameters list
+     *
+     * @throws BadFluentSetterException|Throwable
+     *
+     * @return static
+     */
+    public function __call($method, $parameters)
+    {
+        if (static::hasMacro($method)) {
+            return static::bindMacroContext($this, function () use (&$method, &$parameters) {
+                return $this->callMacro($method, $parameters);
+            });
+        }
+
+        $roundedValue = $this->callRoundMethod($method, $parameters);
+
+        if ($roundedValue !== null) {
+            return $roundedValue;
+        }
+
+        if (preg_match('/^(?<method>add|sub)(?<unit>[A-Z].*)$/', $method, $match)) {
+            return $this->{$match['method']}($parameters[0], $match['unit']);
+        }
+
+        try {
+            $this->set($method, \count($parameters) === 0 ? 1 : $parameters[0]);
+        } catch (UnknownSetterException $exception) {
+            if ($this->localStrictModeEnabled ?? Carbon::isStrictModeEnabled()) {
+                throw new BadFluentSetterException($method, 0, $exception);
+            }
+        }
+
+        return $this;
+    }
+
+    protected function getForHumansInitialVariables($syntax, $short)
+    {
+        if (\is_array($syntax)) {
+            return $syntax;
+        }
+
+        if (\is_int($short)) {
+            return [
+                'parts' => $short,
+                'short' => false,
+            ];
+        }
+
+        if (\is_bool($syntax)) {
+            return [
+                'short' => $syntax,
+                'syntax' => CarbonInterface::DIFF_ABSOLUTE,
+            ];
+        }
+
+        return [];
+    }
+
+    /**
+     * @param mixed $syntax
+     * @param mixed $short
+     * @param mixed $parts
+     * @param mixed $options
+     *
+     * @return array
+     */
+    protected function getForHumansParameters($syntax = null, $short = false, $parts = -1, $options = null)
+    {
+        $optionalSpace = ' ';
+        $default = $this->getTranslationMessage('list.0') ?? $this->getTranslationMessage('list') ?? ' ';
+        $join = $default === '' ? '' : ' ';
+        $altNumbers = false;
+        $aUnit = false;
+        $minimumUnit = 's';
+        extract($this->getForHumansInitialVariables($syntax, $short));
+
+        if ($syntax === null) {
+            $syntax = CarbonInterface::DIFF_ABSOLUTE;
+        }
+
+        if ($parts === -1) {
+            $parts = INF;
+        }
+
+        if ($options === null) {
+            $options = static::getHumanDiffOptions();
+        }
+
+        if ($join === false) {
+            $join = ' ';
+        } elseif ($join === true) {
+            $join = [
+                $default,
+                $this->getTranslationMessage('list.1') ?? $default,
+            ];
+        }
+
+        if ($altNumbers) {
+            if ($altNumbers !== true) {
+                $language = new Language($this->locale);
+                $altNumbers = \in_array($language->getCode(), (array) $altNumbers);
+            }
+        }
+
+        if (\is_array($join)) {
+            [$default, $last] = $join;
+
+            if ($default !== ' ') {
+                $optionalSpace = '';
+            }
+
+            $join = function ($list) use ($default, $last) {
+                if (\count($list) < 2) {
+                    return implode('', $list);
+                }
+
+                $end = array_pop($list);
+
+                return implode($default, $list).$last.$end;
+            };
+        }
+
+        if (\is_string($join)) {
+            if ($join !== ' ') {
+                $optionalSpace = '';
+            }
+
+            $glue = $join;
+            $join = function ($list) use ($glue) {
+                return implode($glue, $list);
+            };
+        }
+
+        $interpolations = [
+            ':optional-space' => $optionalSpace,
+        ];
+
+        return [$syntax, $short, $parts, $options, $join, $aUnit, $altNumbers, $interpolations, $minimumUnit];
+    }
+
+    protected static function getRoundingMethodFromOptions(int $options): ?string
+    {
+        if ($options & CarbonInterface::ROUND) {
+            return 'round';
+        }
+
+        if ($options & CarbonInterface::CEIL) {
+            return 'ceil';
+        }
+
+        if ($options & CarbonInterface::FLOOR) {
+            return 'floor';
+        }
+
+        return null;
+    }
+
+    /**
+     * Returns interval values as an array where key are the unit names and values the counts.
+     *
+     * @return int[]
+     */
+    public function toArray()
+    {
+        return [
+            'years' => $this->years,
+            'months' => $this->months,
+            'weeks' => $this->weeks,
+            'days' => $this->daysExcludeWeeks,
+            'hours' => $this->hours,
+            'minutes' => $this->minutes,
+            'seconds' => $this->seconds,
+            'microseconds' => $this->microseconds,
+        ];
+    }
+
+    /**
+     * Returns interval non-zero values as an array where key are the unit names and values the counts.
+     *
+     * @return int[]
+     */
+    public function getNonZeroValues()
+    {
+        return array_filter($this->toArray(), 'intval');
+    }
+
+    /**
+     * Returns interval values as an array where key are the unit names and values the counts
+     * from the biggest non-zero one the the smallest non-zero one.
+     *
+     * @return int[]
+     */
+    public function getValuesSequence()
+    {
+        $nonZeroValues = $this->getNonZeroValues();
+
+        if ($nonZeroValues === []) {
+            return [];
+        }
+
+        $keys = array_keys($nonZeroValues);
+        $firstKey = $keys[0];
+        $lastKey = $keys[\count($keys) - 1];
+        $values = [];
+        $record = false;
+
+        foreach ($this->toArray() as $unit => $count) {
+            if ($unit === $firstKey) {
+                $record = true;
+            }
+
+            if ($record) {
+                $values[$unit] = $count;
+            }
+
+            if ($unit === $lastKey) {
+                $record = false;
+            }
+        }
+
+        return $values;
+    }
+
+    /**
+     * Get the current interval in a human readable format in the current locale.
+     *
+     * @example
+     * ```
+     * echo CarbonInterval::fromString('4d 3h 40m')->forHumans() . "\n";
+     * echo CarbonInterval::fromString('4d 3h 40m')->forHumans(['parts' => 2]) . "\n";
+     * echo CarbonInterval::fromString('4d 3h 40m')->forHumans(['parts' => 3, 'join' => true]) . "\n";
+     * echo CarbonInterval::fromString('4d 3h 40m')->forHumans(['short' => true]) . "\n";
+     * echo CarbonInterval::fromString('1d 24h')->forHumans(['join' => ' or ']) . "\n";
+     * echo CarbonInterval::fromString('1d 24h')->forHumans(['minimumUnit' => 'hour']) . "\n";
+     * ```
+     *
+     * @param int|array $syntax  if array passed, parameters will be extracted from it, the array may contains:
+     *                           - 'syntax' entry (see below)
+     *                           - 'short' entry (see below)
+     *                           - 'parts' entry (see below)
+     *                           - 'options' entry (see below)
+     *                           - 'aUnit' entry, prefer "an hour" over "1 hour" if true
+     *                           - 'join' entry determines how to join multiple parts of the string
+     *                           `  - if $join is a string, it's used as a joiner glue
+     *                           `  - if $join is a callable/closure, it get the list of string and should return a string
+     *                           `  - if $join is an array, the first item will be the default glue, and the second item
+     *                           `    will be used instead of the glue for the last item
+     *                           `  - if $join is true, it will be guessed from the locale ('list' translation file entry)
+     *                           `  - if $join is missing, a space will be used as glue
+     *                           - 'minimumUnit' entry determines the smallest unit of time to display can be long or
+     *                           `  short form of the units, e.g. 'hour' or 'h' (default value: s)
+     *                           if int passed, it add modifiers:
+     *                           Possible values:
+     *                           - CarbonInterface::DIFF_ABSOLUTE          no modifiers
+     *                           - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier
+     *                           - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier
+     *                           Default value: CarbonInterface::DIFF_ABSOLUTE
+     * @param bool      $short   displays short format of time units
+     * @param int       $parts   maximum number of parts to display (default value: -1: no limits)
+     * @param int       $options human diff options
+     *
+     * @throws Exception
+     *
+     * @return string
+     */
+    public function forHumans($syntax = null, $short = false, $parts = -1, $options = null)
+    {
+        [$syntax, $short, $parts, $options, $join, $aUnit, $altNumbers, $interpolations, $minimumUnit] = $this->getForHumansParameters($syntax, $short, $parts, $options);
+
+        $interval = [];
+
+        $syntax = (int) ($syntax === null ? CarbonInterface::DIFF_ABSOLUTE : $syntax);
+        $absolute = $syntax === CarbonInterface::DIFF_ABSOLUTE;
+        $relativeToNow = $syntax === CarbonInterface::DIFF_RELATIVE_TO_NOW;
+        $count = 1;
+        $unit = $short ? 's' : 'second';
+        $isFuture = $this->invert === 1;
+        $transId = $relativeToNow ? ($isFuture ? 'from_now' : 'ago') : ($isFuture ? 'after' : 'before');
+
+        /** @var \Symfony\Component\Translation\Translator $translator */
+        $translator = $this->getLocalTranslator();
+
+        $handleDeclensions = function ($unit, $count) use ($interpolations, $transId, $translator, $altNumbers, $absolute) {
+            if (!$absolute) {
+                // Some languages have special pluralization for past and future tense.
+                $key = $unit.'_'.$transId;
+                $result = $this->translate($key, $interpolations, $count, $translator, $altNumbers);
+
+                if ($result !== $key) {
+                    return $result;
+                }
+            }
+
+            $result = $this->translate($unit, $interpolations, $count, $translator, $altNumbers);
+
+            if ($result !== $unit) {
+                return $result;
+            }
+
+            return null;
+        };
+
+        $intervalValues = $this;
+        $method = static::getRoundingMethodFromOptions($options);
+
+        if ($method) {
+            $previousCount = INF;
+
+            while (
+                \count($intervalValues->getNonZeroValues()) > $parts &&
+                ($count = \count($keys = array_keys($intervalValues->getValuesSequence()))) > 1
+            ) {
+                $intervalValues = $this->copy()->roundUnit(
+                    $keys[min($count, $previousCount - 1) - 2],
+                    1,
+                    $method
+                );
+                $previousCount = $count;
+            }
+        }
+
+        $diffIntervalArray = [
+            ['value' => $intervalValues->years,             'unit' => 'year',        'unitShort' => 'y'],
+            ['value' => $intervalValues->months,            'unit' => 'month',       'unitShort' => 'm'],
+            ['value' => $intervalValues->weeks,             'unit' => 'week',        'unitShort' => 'w'],
+            ['value' => $intervalValues->daysExcludeWeeks,  'unit' => 'day',         'unitShort' => 'd'],
+            ['value' => $intervalValues->hours,             'unit' => 'hour',        'unitShort' => 'h'],
+            ['value' => $intervalValues->minutes,           'unit' => 'minute',      'unitShort' => 'min'],
+            ['value' => $intervalValues->seconds,           'unit' => 'second',      'unitShort' => 's'],
+            ['value' => $intervalValues->milliseconds,      'unit' => 'millisecond', 'unitShort' => 'ms'],
+            ['value' => $intervalValues->microExcludeMilli, 'unit' => 'microsecond', 'unitShort' => 'µs'],
+        ];
+
+        $transChoice = function ($short, $unitData) use ($absolute, $handleDeclensions, $translator, $aUnit, $altNumbers, $interpolations) {
+            $count = $unitData['value'];
+
+            if ($short) {
+                $result = $handleDeclensions($unitData['unitShort'], $count);
+
+                if ($result !== null) {
+                    return $result;
+                }
+            } elseif ($aUnit) {
+                $result = $handleDeclensions('a_'.$unitData['unit'], $count);
+
+                if ($result !== null) {
+                    return $result;
+                }
+            }
+
+            if (!$absolute) {
+                return $handleDeclensions($unitData['unit'], $count);
+            }
+
+            return $this->translate($unitData['unit'], $interpolations, $count, $translator, $altNumbers);
+        };
+
+        $fallbackUnit = ['second', 's'];
+        foreach ($diffIntervalArray as $diffIntervalData) {
+            if ($diffIntervalData['value'] > 0) {
+                $unit = $short ? $diffIntervalData['unitShort'] : $diffIntervalData['unit'];
+                $count = $diffIntervalData['value'];
+                $interval[] = $transChoice($short, $diffIntervalData);
+            } elseif ($options & CarbonInterface::SEQUENTIAL_PARTS_ONLY && \count($interval) > 0) {
+                break;
+            }
+
+            // break the loop after we get the required number of parts in array
+            if (\count($interval) >= $parts) {
+                break;
+            }
+
+            // break the loop after we have reached the minimum unit
+            if (\in_array($minimumUnit, [$diffIntervalData['unit'], $diffIntervalData['unitShort']])) {
+                $fallbackUnit = [$diffIntervalData['unit'], $diffIntervalData['unitShort']];
+
+                break;
+            }
+        }
+
+        if (\count($interval) === 0) {
+            if ($relativeToNow && $options & CarbonInterface::JUST_NOW) {
+                $key = 'diff_now';
+                $translation = $this->translate($key, $interpolations, null, $translator);
+
+                if ($translation !== $key) {
+                    return $translation;
+                }
+            }
+
+            $count = $options & CarbonInterface::NO_ZERO_DIFF ? 1 : 0;
+            $unit = $fallbackUnit[$short ? 1 : 0];
+            $interval[] = $this->translate($unit, $interpolations, $count, $translator, $altNumbers);
+        }
+
+        // join the interval parts by a space
+        $time = $join($interval);
+
+        unset($diffIntervalArray, $interval);
+
+        if ($absolute) {
+            return $time;
+        }
+
+        $isFuture = $this->invert === 1;
+
+        $transId = $relativeToNow ? ($isFuture ? 'from_now' : 'ago') : ($isFuture ? 'after' : 'before');
+
+        if ($parts === 1) {
+            if ($relativeToNow && $unit === 'day') {
+                if ($count === 1 && $options & CarbonInterface::ONE_DAY_WORDS) {
+                    $key = $isFuture ? 'diff_tomorrow' : 'diff_yesterday';
+                    $translation = $this->translate($key, $interpolations, null, $translator);
+
+                    if ($translation !== $key) {
+                        return $translation;
+                    }
+                }
+
+                if ($count === 2 && $options & CarbonInterface::TWO_DAY_WORDS) {
+                    $key = $isFuture ? 'diff_after_tomorrow' : 'diff_before_yesterday';
+                    $translation = $this->translate($key, $interpolations, null, $translator);
+
+                    if ($translation !== $key) {
+                        return $translation;
+                    }
+                }
+            }
+
+            $aTime = $aUnit ? $handleDeclensions('a_'.$unit, $count) : null;
+
+            $time = $aTime ?: $handleDeclensions($unit, $count) ?: $time;
+        }
+
+        $time = [':time' => $time];
+
+        return $this->translate($transId, array_merge($time, $interpolations, $time), null, $translator);
+    }
+
+    /**
+     * Format the instance as a string using the forHumans() function.
+     *
+     * @throws Exception
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        $format = $this->localToStringFormat;
+
+        if ($format) {
+            if ($format instanceof Closure) {
+                return $format($this);
+            }
+
+            return $this->format($format);
+        }
+
+        return $this->forHumans();
+    }
+
+    /**
+     * Return native DateInterval PHP object matching the current instance.
+     *
+     * @example
+     * ```
+     * var_dump(CarbonInterval::hours(2)->toDateInterval());
+     * ```
+     *
+     * @return DateInterval
+     */
+    public function toDateInterval()
+    {
+        return self::castIntervalToClass($this, DateInterval::class);
+    }
+
+    /**
+     * Convert the interval to a CarbonPeriod.
+     *
+     * @param array ...$params Start date, [end date or recurrences] and optional settings.
+     *
+     * @return CarbonPeriod
+     */
+    public function toPeriod(...$params)
+    {
+        return CarbonPeriod::create($this, ...$params);
+    }
+
+    /**
+     * Invert the interval.
+     *
+     * @param bool|int $inverted if a parameter is passed, the passed value casted as 1 or 0 is used
+     *                           as the new value of the ->invert property.
+     *
+     * @return $this
+     */
+    public function invert($inverted = null)
+    {
+        $this->invert = (\func_num_args() === 0 ? !$this->invert : $inverted) ? 1 : 0;
+
+        return $this;
+    }
+
+    protected function solveNegativeInterval()
+    {
+        if (!$this->isEmpty() && $this->years <= 0 && $this->months <= 0 && $this->dayz <= 0 && $this->hours <= 0 && $this->minutes <= 0 && $this->seconds <= 0 && $this->microseconds <= 0) {
+            $this->years *= -1;
+            $this->months *= -1;
+            $this->dayz *= -1;
+            $this->hours *= -1;
+            $this->minutes *= -1;
+            $this->seconds *= -1;
+            $this->microseconds *= -1;
+            $this->invert();
+        }
+
+        return $this;
+    }
+
+    /**
+     * Add the passed interval to the current instance.
+     *
+     * @param string|DateInterval $unit
+     * @param int|float           $value
+     *
+     * @return $this
+     */
+    public function add($unit, $value = 1)
+    {
+        if (is_numeric($unit)) {
+            [$value, $unit] = [$unit, $value];
+        }
+
+        if (\is_string($unit) && !preg_match('/^\s*\d/', $unit)) {
+            $unit = "$value $unit";
+            $value = 1;
+        }
+
+        $interval = static::make($unit);
+
+        if (!$interval) {
+            throw new InvalidIntervalException('This type of data cannot be added/subtracted.');
+        }
+
+        if ($value !== 1) {
+            $interval->times($value);
+        }
+
+        $sign = ($this->invert === 1) !== ($interval->invert === 1) ? -1 : 1;
+        $this->years += $interval->y * $sign;
+        $this->months += $interval->m * $sign;
+        $this->dayz += ($interval->days === false ? $interval->d : $interval->days) * $sign;
+        $this->hours += $interval->h * $sign;
+        $this->minutes += $interval->i * $sign;
+        $this->seconds += $interval->s * $sign;
+        $this->microseconds += $interval->microseconds * $sign;
+
+        $this->solveNegativeInterval();
+
+        return $this;
+    }
+
+    /**
+     * Subtract the passed interval to the current instance.
+     *
+     * @param string|DateInterval $unit
+     * @param int|float           $value
+     *
+     * @return $this
+     */
+    public function sub($unit, $value = 1)
+    {
+        if (is_numeric($unit)) {
+            [$value, $unit] = [$unit, $value];
+        }
+
+        return $this->add($unit, -(float) $value);
+    }
+
+    /**
+     * Subtract the passed interval to the current instance.
+     *
+     * @param string|DateInterval $unit
+     * @param int|float           $value
+     *
+     * @return $this
+     */
+    public function subtract($unit, $value = 1)
+    {
+        return $this->sub($unit, $value);
+    }
+
+    /**
+     * Add given parameters to the current interval.
+     *
+     * @param int $years
+     * @param int $months
+     * @param int|float $weeks
+     * @param int|float $days
+     * @param int|float $hours
+     * @param int|float $minutes
+     * @param int|float $seconds
+     * @param int|float $microseconds
+     *
+     * @return $this
+     */
+    public function plus(
+        $years = 0,
+        $months = 0,
+        $weeks = 0,
+        $days = 0,
+        $hours = 0,
+        $minutes = 0,
+        $seconds = 0,
+        $microseconds = 0
+    ): self {
+        return $this->add("
+            $years years $months months $weeks weeks $days days
+            $hours hours $minutes minutes $seconds seconds $microseconds microseconds
+        ");
+    }
+
+    /**
+     * Add given parameters to the current interval.
+     *
+     * @param int $years
+     * @param int $months
+     * @param int|float $weeks
+     * @param int|float $days
+     * @param int|float $hours
+     * @param int|float $minutes
+     * @param int|float $seconds
+     * @param int|float $microseconds
+     *
+     * @return $this
+     */
+    public function minus(
+        $years = 0,
+        $months = 0,
+        $weeks = 0,
+        $days = 0,
+        $hours = 0,
+        $minutes = 0,
+        $seconds = 0,
+        $microseconds = 0
+    ): self {
+        return $this->sub("
+            $years years $months months $weeks weeks $days days
+            $hours hours $minutes minutes $seconds seconds $microseconds microseconds
+        ");
+    }
+
+    /**
+     * Multiply current instance given number of times. times() is naive, it multiplies each unit
+     * (so day can be greater than 31, hour can be greater than 23, etc.) and the result is rounded
+     * separately for each unit.
+     *
+     * Use times() when you want a fast and approximated calculation that does not cascade units.
+     *
+     * For a precise and cascaded calculation,
+     *
+     * @see multiply()
+     *
+     * @param float|int $factor
+     *
+     * @return $this
+     */
+    public function times($factor)
+    {
+        if ($factor < 0) {
+            $this->invert = $this->invert ? 0 : 1;
+            $factor = -$factor;
+        }
+
+        $this->years = (int) round($this->years * $factor);
+        $this->months = (int) round($this->months * $factor);
+        $this->dayz = (int) round($this->dayz * $factor);
+        $this->hours = (int) round($this->hours * $factor);
+        $this->minutes = (int) round($this->minutes * $factor);
+        $this->seconds = (int) round($this->seconds * $factor);
+        $this->microseconds = (int) round($this->microseconds * $factor);
+
+        return $this;
+    }
+
+    /**
+     * Divide current instance by a given divider. shares() is naive, it divides each unit separately
+     * and the result is rounded for each unit. So 5 hours and 20 minutes shared by 3 becomes 2 hours
+     * and 7 minutes.
+     *
+     * Use shares() when you want a fast and approximated calculation that does not cascade units.
+     *
+     * For a precise and cascaded calculation,
+     *
+     * @see divide()
+     *
+     * @param float|int $divider
+     *
+     * @return $this
+     */
+    public function shares($divider)
+    {
+        return $this->times(1 / $divider);
+    }
+
+    protected function copyProperties(self $interval, $ignoreSign = false)
+    {
+        $this->years = $interval->years;
+        $this->months = $interval->months;
+        $this->dayz = $interval->dayz;
+        $this->hours = $interval->hours;
+        $this->minutes = $interval->minutes;
+        $this->seconds = $interval->seconds;
+        $this->microseconds = $interval->microseconds;
+
+        if (!$ignoreSign) {
+            $this->invert = $interval->invert;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Multiply and cascade current instance by a given factor.
+     *
+     * @param float|int $factor
+     *
+     * @return $this
+     */
+    public function multiply($factor)
+    {
+        if ($factor < 0) {
+            $this->invert = $this->invert ? 0 : 1;
+            $factor = -$factor;
+        }
+
+        $yearPart = (int) floor($this->years * $factor); // Split calculation to prevent imprecision
+
+        if ($yearPart) {
+            $this->years -= $yearPart / $factor;
+        }
+
+        return $this->copyProperties(
+            static::create($yearPart)
+                ->microseconds(abs($this->totalMicroseconds) * $factor)
+                ->cascade(),
+            true
+        );
+    }
+
+    /**
+     * Divide and cascade current instance by a given divider.
+     *
+     * @param float|int $divider
+     *
+     * @return $this
+     */
+    public function divide($divider)
+    {
+        return $this->multiply(1 / $divider);
+    }
+
+    /**
+     * Get the interval_spec string of a date interval.
+     *
+     * @param DateInterval $interval
+     *
+     * @return string
+     */
+    public static function getDateIntervalSpec(DateInterval $interval)
+    {
+        $date = array_filter([
+            static::PERIOD_YEARS => abs($interval->y),
+            static::PERIOD_MONTHS => abs($interval->m),
+            static::PERIOD_DAYS => abs($interval->d),
+        ]);
+
+        $time = array_filter([
+            static::PERIOD_HOURS => abs($interval->h),
+            static::PERIOD_MINUTES => abs($interval->i),
+            static::PERIOD_SECONDS => abs($interval->s),
+        ]);
+
+        $specString = static::PERIOD_PREFIX;
+
+        foreach ($date as $key => $value) {
+            $specString .= $value.$key;
+        }
+
+        if (\count($time) > 0) {
+            $specString .= static::PERIOD_TIME_PREFIX;
+            foreach ($time as $key => $value) {
+                $specString .= $value.$key;
+            }
+        }
+
+        return $specString === static::PERIOD_PREFIX ? 'PT0S' : $specString;
+    }
+
+    /**
+     * Get the interval_spec string.
+     *
+     * @return string
+     */
+    public function spec()
+    {
+        return static::getDateIntervalSpec($this);
+    }
+
+    /**
+     * Comparing 2 date intervals.
+     *
+     * @param DateInterval $first
+     * @param DateInterval $second
+     *
+     * @return int
+     */
+    public static function compareDateIntervals(DateInterval $first, DateInterval $second)
+    {
+        $current = Carbon::now();
+        $passed = $current->avoidMutation()->add($second);
+        $current->add($first);
+
+        if ($current < $passed) {
+            return -1;
+        }
+        if ($current > $passed) {
+            return 1;
+        }
+
+        return 0;
+    }
+
+    /**
+     * Comparing with passed interval.
+     *
+     * @param DateInterval $interval
+     *
+     * @return int
+     */
+    public function compare(DateInterval $interval)
+    {
+        return static::compareDateIntervals($this, $interval);
+    }
+
+    private function invertCascade(array $values)
+    {
+        return $this->set(array_map(function ($value) {
+            return -$value;
+        }, $values))->doCascade(true)->invert();
+    }
+
+    private function doCascade(bool $deep)
+    {
+        $originalData = $this->toArray();
+        $originalData['milliseconds'] = (int) ($originalData['microseconds'] / static::getMicrosecondsPerMillisecond());
+        $originalData['microseconds'] = $originalData['microseconds'] % static::getMicrosecondsPerMillisecond();
+        $originalData['daysExcludeWeeks'] = $originalData['days'];
+        unset($originalData['days']);
+        $newData = $originalData;
+
+        foreach (static::getFlipCascadeFactors() as $source => [$target, $factor]) {
+            foreach (['source', 'target'] as $key) {
+                if ($$key === 'dayz') {
+                    $$key = 'daysExcludeWeeks';
+                }
+            }
+
+            $value = $newData[$source];
+            $modulo = ($factor + ($value % $factor)) % $factor;
+            $newData[$source] = $modulo;
+            $newData[$target] += ($value - $modulo) / $factor;
+        }
+
+        $positive = null;
+
+        if (!$deep) {
+            foreach ($newData as $value) {
+                if ($value) {
+                    if ($positive === null) {
+                        $positive = ($value > 0);
+
+                        continue;
+                    }
+
+                    if (($value > 0) !== $positive) {
+                        return $this->invertCascade($originalData)
+                            ->solveNegativeInterval();
+                    }
+                }
+            }
+        }
+
+        return $this->set($newData)
+            ->solveNegativeInterval();
+    }
+
+    /**
+     * Convert overflowed values into bigger units.
+     *
+     * @return $this
+     */
+    public function cascade()
+    {
+        return $this->doCascade(false);
+    }
+
+    public function hasNegativeValues(): bool
+    {
+        foreach ($this->toArray() as $value) {
+            if ($value < 0) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    public function hasPositiveValues(): bool
+    {
+        foreach ($this->toArray() as $value) {
+            if ($value > 0) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * Get amount of given unit equivalent to the interval.
+     *
+     * @param string $unit
+     *
+     * @throws UnknownUnitException|UnitNotConfiguredException
+     *
+     * @return float
+     */
+    public function total($unit)
+    {
+        $realUnit = $unit = strtolower($unit);
+
+        if (\in_array($unit, ['days', 'weeks'])) {
+            $realUnit = 'dayz';
+        } elseif (!\in_array($unit, ['microseconds', 'milliseconds', 'seconds', 'minutes', 'hours', 'dayz', 'months', 'years'])) {
+            throw new UnknownUnitException($unit);
+        }
+
+        $result = 0;
+        $cumulativeFactor = 0;
+        $unitFound = false;
+        $factors = static::getFlipCascadeFactors();
+        $daysPerWeek = static::getDaysPerWeek();
+
+        $values = [
+            'years' => $this->years,
+            'months' => $this->months,
+            'weeks' => (int) ($this->d / $daysPerWeek),
+            'dayz' => $this->d % $daysPerWeek,
+            'hours' => $this->hours,
+            'minutes' => $this->minutes,
+            'seconds' => $this->seconds,
+            'milliseconds' => (int) ($this->microseconds / Carbon::MICROSECONDS_PER_MILLISECOND),
+            'microseconds' => $this->microseconds % Carbon::MICROSECONDS_PER_MILLISECOND,
+        ];
+
+        if (isset($factors['dayz']) && $factors['dayz'][0] !== 'weeks') {
+            $values['dayz'] += $values['weeks'] * $daysPerWeek;
+            $values['weeks'] = 0;
+        }
+
+        foreach ($factors as $source => [$target, $factor]) {
+            if ($source === $realUnit) {
+                $unitFound = true;
+                $value = $values[$source];
+                $result += $value;
+                $cumulativeFactor = 1;
+            }
+
+            if ($factor === false) {
+                if ($unitFound) {
+                    break;
+                }
+
+                $result = 0;
+                $cumulativeFactor = 0;
+
+                continue;
+            }
+
+            if ($target === $realUnit) {
+                $unitFound = true;
+            }
+
+            if ($cumulativeFactor) {
+                $cumulativeFactor *= $factor;
+                $result += $values[$target] * $cumulativeFactor;
+
+                continue;
+            }
+
+            $value = $values[$source];
+
+            $result = ($result + $value) / $factor;
+        }
+
+        if (isset($target) && !$cumulativeFactor) {
+            $result += $values[$target];
+        }
+
+        if (!$unitFound) {
+            throw new UnitNotConfiguredException($unit);
+        }
+
+        if ($this->invert) {
+            $result *= -1;
+        }
+
+        if ($unit === 'weeks') {
+            return $result / $daysPerWeek;
+        }
+
+        return $result;
+    }
+
+    /**
+     * Determines if the instance is equal to another
+     *
+     * @param CarbonInterval|DateInterval|mixed $interval
+     *
+     * @see equalTo()
+     *
+     * @return bool
+     */
+    public function eq($interval): bool
+    {
+        return $this->equalTo($interval);
+    }
+
+    /**
+     * Determines if the instance is equal to another
+     *
+     * @param CarbonInterval|DateInterval|mixed $interval
+     *
+     * @return bool
+     */
+    public function equalTo($interval): bool
+    {
+        $interval = $this->resolveInterval($interval);
+
+        return $interval !== null && $this->totalMicroseconds === $interval->totalMicroseconds;
+    }
+
+    /**
+     * Determines if the instance is not equal to another
+     *
+     * @param CarbonInterval|DateInterval|mixed $interval
+     *
+     * @see notEqualTo()
+     *
+     * @return bool
+     */
+    public function ne($interval): bool
+    {
+        return $this->notEqualTo($interval);
+    }
+
+    /**
+     * Determines if the instance is not equal to another
+     *
+     * @param CarbonInterval|DateInterval|mixed $interval
+     *
+     * @return bool
+     */
+    public function notEqualTo($interval): bool
+    {
+        return !$this->eq($interval);
+    }
+
+    /**
+     * Determines if the instance is greater (longer) than another
+     *
+     * @param CarbonInterval|DateInterval|mixed $interval
+     *
+     * @see greaterThan()
+     *
+     * @return bool
+     */
+    public function gt($interval): bool
+    {
+        return $this->greaterThan($interval);
+    }
+
+    /**
+     * Determines if the instance is greater (longer) than another
+     *
+     * @param CarbonInterval|DateInterval|mixed $interval
+     *
+     * @return bool
+     */
+    public function greaterThan($interval): bool
+    {
+        $interval = $this->resolveInterval($interval);
+
+        return $interval === null || $this->totalMicroseconds > $interval->totalMicroseconds;
+    }
+
+    /**
+     * Determines if the instance is greater (longer) than or equal to another
+     *
+     * @param CarbonInterval|DateInterval|mixed $interval
+     *
+     * @see greaterThanOrEqualTo()
+     *
+     * @return bool
+     */
+    public function gte($interval): bool
+    {
+        return $this->greaterThanOrEqualTo($interval);
+    }
+
+    /**
+     * Determines if the instance is greater (longer) than or equal to another
+     *
+     * @param CarbonInterval|DateInterval|mixed $interval
+     *
+     * @return bool
+     */
+    public function greaterThanOrEqualTo($interval): bool
+    {
+        return $this->greaterThan($interval) || $this->equalTo($interval);
+    }
+
+    /**
+     * Determines if the instance is less (shorter) than another
+     *
+     * @param CarbonInterval|DateInterval|mixed $interval
+     *
+     * @see lessThan()
+     *
+     * @return bool
+     */
+    public function lt($interval): bool
+    {
+        return $this->lessThan($interval);
+    }
+
+    /**
+     * Determines if the instance is less (shorter) than another
+     *
+     * @param CarbonInterval|DateInterval|mixed $interval
+     *
+     * @return bool
+     */
+    public function lessThan($interval): bool
+    {
+        $interval = $this->resolveInterval($interval);
+
+        return $interval !== null && $this->totalMicroseconds < $interval->totalMicroseconds;
+    }
+
+    /**
+     * Determines if the instance is less (shorter) than or equal to another
+     *
+     * @param CarbonInterval|DateInterval|mixed $interval
+     *
+     * @see lessThanOrEqualTo()
+     *
+     * @return bool
+     */
+    public function lte($interval): bool
+    {
+        return $this->lessThanOrEqualTo($interval);
+    }
+
+    /**
+     * Determines if the instance is less (shorter) than or equal to another
+     *
+     * @param CarbonInterval|DateInterval|mixed $interval
+     *
+     * @return bool
+     */
+    public function lessThanOrEqualTo($interval): bool
+    {
+        return $this->lessThan($interval) || $this->equalTo($interval);
+    }
+
+    /**
+     * Determines if the instance is between two others.
+     *
+     * The third argument allow you to specify if bounds are included or not (true by default)
+     * but for when you including/excluding bounds may produce different results in your application,
+     * we recommend to use the explicit methods ->betweenIncluded() or ->betweenExcluded() instead.
+     *
+     * @example
+     * ```
+     * CarbonInterval::hours(48)->between(CarbonInterval::day(), CarbonInterval::days(3)); // true
+     * CarbonInterval::hours(48)->between(CarbonInterval::day(), CarbonInterval::hours(36)); // false
+     * CarbonInterval::hours(48)->between(CarbonInterval::day(), CarbonInterval::days(2)); // true
+     * CarbonInterval::hours(48)->between(CarbonInterval::day(), CarbonInterval::days(2), false); // false
+     * ```
+     *
+     * @param CarbonInterval|DateInterval|mixed $interval1
+     * @param CarbonInterval|DateInterval|mixed $interval2
+     * @param bool                              $equal     Indicates if an equal to comparison should be done
+     *
+     * @return bool
+     */
+    public function between($interval1, $interval2, $equal = true): bool
+    {
+        return $equal
+            ? $this->greaterThanOrEqualTo($interval1) && $this->lessThanOrEqualTo($interval2)
+            : $this->greaterThan($interval1) && $this->lessThan($interval2);
+    }
+
+    /**
+     * Determines if the instance is between two others, bounds excluded.
+     *
+     * @example
+     * ```
+     * CarbonInterval::hours(48)->betweenExcluded(CarbonInterval::day(), CarbonInterval::days(3)); // true
+     * CarbonInterval::hours(48)->betweenExcluded(CarbonInterval::day(), CarbonInterval::hours(36)); // false
+     * CarbonInterval::hours(48)->betweenExcluded(CarbonInterval::day(), CarbonInterval::days(2)); // true
+     * ```
+     *
+     * @param CarbonInterval|DateInterval|mixed $interval1
+     * @param CarbonInterval|DateInterval|mixed $interval2
+     *
+     * @return bool
+     */
+    public function betweenIncluded($interval1, $interval2): bool
+    {
+        return $this->between($interval1, $interval2, true);
+    }
+
+    /**
+     * Determines if the instance is between two others, bounds excluded.
+     *
+     * @example
+     * ```
+     * CarbonInterval::hours(48)->betweenExcluded(CarbonInterval::day(), CarbonInterval::days(3)); // true
+     * CarbonInterval::hours(48)->betweenExcluded(CarbonInterval::day(), CarbonInterval::hours(36)); // false
+     * CarbonInterval::hours(48)->betweenExcluded(CarbonInterval::day(), CarbonInterval::days(2)); // false
+     * ```
+     *
+     * @param CarbonInterval|DateInterval|mixed $interval1
+     * @param CarbonInterval|DateInterval|mixed $interval2
+     *
+     * @return bool
+     */
+    public function betweenExcluded($interval1, $interval2): bool
+    {
+        return $this->between($interval1, $interval2, false);
+    }
+
+    /**
+     * Determines if the instance is between two others
+     *
+     * @example
+     * ```
+     * CarbonInterval::hours(48)->isBetween(CarbonInterval::day(), CarbonInterval::days(3)); // true
+     * CarbonInterval::hours(48)->isBetween(CarbonInterval::day(), CarbonInterval::hours(36)); // false
+     * CarbonInterval::hours(48)->isBetween(CarbonInterval::day(), CarbonInterval::days(2)); // true
+     * CarbonInterval::hours(48)->isBetween(CarbonInterval::day(), CarbonInterval::days(2), false); // false
+     * ```
+     *
+     * @param CarbonInterval|DateInterval|mixed $interval1
+     * @param CarbonInterval|DateInterval|mixed $interval2
+     * @param bool                              $equal     Indicates if an equal to comparison should be done
+     *
+     * @return bool
+     */
+    public function isBetween($interval1, $interval2, $equal = true): bool
+    {
+        return $this->between($interval1, $interval2, $equal);
+    }
+
+    /**
+     * Round the current instance at the given unit with given precision if specified and the given function.
+     *
+     * @param string                             $unit
+     * @param float|int|string|DateInterval|null $precision
+     * @param string                             $function
+     *
+     * @throws Exception
+     *
+     * @return $this
+     */
+    public function roundUnit($unit, $precision = 1, $function = 'round')
+    {
+        $base = CarbonImmutable::parse('2000-01-01 00:00:00', 'UTC')
+            ->roundUnit($unit, $precision, $function);
+        $next = $base->add($this);
+        $inverted = $next < $base;
+
+        if ($inverted) {
+            $next = $base->sub($this);
+        }
+
+        $this->copyProperties(
+            $next
+                ->roundUnit($unit, $precision, $function)
+                ->diffAsCarbonInterval($base)
+        );
+
+        return $this->invert($inverted);
+    }
+
+    /**
+     * Truncate the current instance at the given unit with given precision if specified.
+     *
+     * @param string                             $unit
+     * @param float|int|string|DateInterval|null $precision
+     *
+     * @throws Exception
+     *
+     * @return $this
+     */
+    public function floorUnit($unit, $precision = 1)
+    {
+        return $this->roundUnit($unit, $precision, 'floor');
+    }
+
+    /**
+     * Ceil the current instance at the given unit with given precision if specified.
+     *
+     * @param string                             $unit
+     * @param float|int|string|DateInterval|null $precision
+     *
+     * @throws Exception
+     *
+     * @return $this
+     */
+    public function ceilUnit($unit, $precision = 1)
+    {
+        return $this->roundUnit($unit, $precision, 'ceil');
+    }
+
+    /**
+     * Round the current instance second with given precision if specified.
+     *
+     * @param float|int|string|DateInterval|null $precision
+     * @param string                             $function
+     *
+     * @throws Exception
+     *
+     * @return $this
+     */
+    public function round($precision = 1, $function = 'round')
+    {
+        return $this->roundWith($precision, $function);
+    }
+
+    /**
+     * Round the current instance second with given precision if specified.
+     *
+     * @param float|int|string|DateInterval|null $precision
+     *
+     * @throws Exception
+     *
+     * @return $this
+     */
+    public function floor($precision = 1)
+    {
+        return $this->round($precision, 'floor');
+    }
+
+    /**
+     * Ceil the current instance second with given precision if specified.
+     *
+     * @param float|int|string|DateInterval|null $precision
+     *
+     * @throws Exception
+     *
+     * @return $this
+     */
+    public function ceil($precision = 1)
+    {
+        return $this->round($precision, 'ceil');
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/CarbonPeriod.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/CarbonPeriod.php
new file mode 100644
index 0000000..70e6ba4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/CarbonPeriod.php
@@ -0,0 +1,2498 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon;
+
+use Carbon\Exceptions\InvalidCastException;
+use Carbon\Exceptions\InvalidIntervalException;
+use Carbon\Exceptions\InvalidPeriodDateException;
+use Carbon\Exceptions\InvalidPeriodParameterException;
+use Carbon\Exceptions\NotACarbonClassException;
+use Carbon\Exceptions\NotAPeriodException;
+use Carbon\Exceptions\UnknownGetterException;
+use Carbon\Exceptions\UnknownMethodException;
+use Carbon\Exceptions\UnreachableException;
+use Carbon\Traits\IntervalRounding;
+use Carbon\Traits\Mixin;
+use Carbon\Traits\Options;
+use Closure;
+use Countable;
+use DateInterval;
+use DatePeriod;
+use DateTime;
+use DateTimeInterface;
+use InvalidArgumentException;
+use Iterator;
+use JsonSerializable;
+use ReflectionException;
+use ReturnTypeWillChange;
+use RuntimeException;
+
+/**
+ * Substitution of DatePeriod with some modifications and many more features.
+ *
+ * @property-read int|float $recurrences number of recurrences (if end not set).
+ * @property-read bool $include_start_date rather the start date is included in the iteration.
+ * @property-read bool $include_end_date rather the end date is included in the iteration (if recurrences not set).
+ * @property-read CarbonInterface $start Period start date.
+ * @property-read CarbonInterface $current Current date from the iteration.
+ * @property-read CarbonInterface $end Period end date.
+ * @property-read CarbonInterval $interval Underlying date interval instance. Always present, one day by default.
+ *
+ * @method static CarbonPeriod start($date, $inclusive = null) Create instance specifying start date or modify the start date if called on an instance.
+ * @method static CarbonPeriod since($date, $inclusive = null) Alias for start().
+ * @method static CarbonPeriod sinceNow($inclusive = null) Create instance with start date set to now or set the start date to now if called on an instance.
+ * @method static CarbonPeriod end($date = null, $inclusive = null) Create instance specifying end date or modify the end date if called on an instance.
+ * @method static CarbonPeriod until($date = null, $inclusive = null) Alias for end().
+ * @method static CarbonPeriod untilNow($inclusive = null) Create instance with end date set to now or set the end date to now if called on an instance.
+ * @method static CarbonPeriod dates($start, $end = null) Create instance with start and end dates or modify the start and end dates if called on an instance.
+ * @method static CarbonPeriod between($start, $end = null) Create instance with start and end dates or modify the start and end dates if called on an instance.
+ * @method static CarbonPeriod recurrences($recurrences = null) Create instance with maximum number of recurrences or modify the number of recurrences if called on an instance.
+ * @method static CarbonPeriod times($recurrences = null) Alias for recurrences().
+ * @method static CarbonPeriod options($options = null) Create instance with options or modify the options if called on an instance.
+ * @method static CarbonPeriod toggle($options, $state = null) Create instance with options toggled on or off, or toggle options if called on an instance.
+ * @method static CarbonPeriod filter($callback, $name = null) Create instance with filter added to the stack or append a filter if called on an instance.
+ * @method static CarbonPeriod push($callback, $name = null) Alias for filter().
+ * @method static CarbonPeriod prepend($callback, $name = null) Create instance with filter prepended to the stack or prepend a filter if called on an instance.
+ * @method static CarbonPeriod filters(array $filters = []) Create instance with filters stack or replace the whole filters stack if called on an instance.
+ * @method static CarbonPeriod interval($interval) Create instance with given date interval or modify the interval if called on an instance.
+ * @method static CarbonPeriod each($interval) Create instance with given date interval or modify the interval if called on an instance.
+ * @method static CarbonPeriod every($interval) Create instance with given date interval or modify the interval if called on an instance.
+ * @method static CarbonPeriod step($interval) Create instance with given date interval or modify the interval if called on an instance.
+ * @method static CarbonPeriod stepBy($interval) Create instance with given date interval or modify the interval if called on an instance.
+ * @method static CarbonPeriod invert() Create instance with inverted date interval or invert the interval if called on an instance.
+ * @method static CarbonPeriod years($years = 1) Create instance specifying a number of years for date interval or replace the interval by the given a number of years if called on an instance.
+ * @method static CarbonPeriod year($years = 1) Alias for years().
+ * @method static CarbonPeriod months($months = 1) Create instance specifying a number of months for date interval or replace the interval by the given a number of months if called on an instance.
+ * @method static CarbonPeriod month($months = 1) Alias for months().
+ * @method static CarbonPeriod weeks($weeks = 1) Create instance specifying a number of weeks for date interval or replace the interval by the given a number of weeks if called on an instance.
+ * @method static CarbonPeriod week($weeks = 1) Alias for weeks().
+ * @method static CarbonPeriod days($days = 1) Create instance specifying a number of days for date interval or replace the interval by the given a number of days if called on an instance.
+ * @method static CarbonPeriod dayz($days = 1) Alias for days().
+ * @method static CarbonPeriod day($days = 1) Alias for days().
+ * @method static CarbonPeriod hours($hours = 1) Create instance specifying a number of hours for date interval or replace the interval by the given a number of hours if called on an instance.
+ * @method static CarbonPeriod hour($hours = 1) Alias for hours().
+ * @method static CarbonPeriod minutes($minutes = 1) Create instance specifying a number of minutes for date interval or replace the interval by the given a number of minutes if called on an instance.
+ * @method static CarbonPeriod minute($minutes = 1) Alias for minutes().
+ * @method static CarbonPeriod seconds($seconds = 1) Create instance specifying a number of seconds for date interval or replace the interval by the given a number of seconds if called on an instance.
+ * @method static CarbonPeriod second($seconds = 1) Alias for seconds().
+ * @method $this roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function.
+ * @method $this roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function.
+ * @method $this floorYear(float $precision = 1) Truncate the current instance year with given precision.
+ * @method $this floorYears(float $precision = 1) Truncate the current instance year with given precision.
+ * @method $this ceilYear(float $precision = 1) Ceil the current instance year with given precision.
+ * @method $this ceilYears(float $precision = 1) Ceil the current instance year with given precision.
+ * @method $this roundMonth(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function.
+ * @method $this roundMonths(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function.
+ * @method $this floorMonth(float $precision = 1) Truncate the current instance month with given precision.
+ * @method $this floorMonths(float $precision = 1) Truncate the current instance month with given precision.
+ * @method $this ceilMonth(float $precision = 1) Ceil the current instance month with given precision.
+ * @method $this ceilMonths(float $precision = 1) Ceil the current instance month with given precision.
+ * @method $this roundWeek(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function.
+ * @method $this roundWeeks(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function.
+ * @method $this floorWeek(float $precision = 1) Truncate the current instance day with given precision.
+ * @method $this floorWeeks(float $precision = 1) Truncate the current instance day with given precision.
+ * @method $this ceilWeek(float $precision = 1) Ceil the current instance day with given precision.
+ * @method $this ceilWeeks(float $precision = 1) Ceil the current instance day with given precision.
+ * @method $this roundDay(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function.
+ * @method $this roundDays(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function.
+ * @method $this floorDay(float $precision = 1) Truncate the current instance day with given precision.
+ * @method $this floorDays(float $precision = 1) Truncate the current instance day with given precision.
+ * @method $this ceilDay(float $precision = 1) Ceil the current instance day with given precision.
+ * @method $this ceilDays(float $precision = 1) Ceil the current instance day with given precision.
+ * @method $this roundHour(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function.
+ * @method $this roundHours(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function.
+ * @method $this floorHour(float $precision = 1) Truncate the current instance hour with given precision.
+ * @method $this floorHours(float $precision = 1) Truncate the current instance hour with given precision.
+ * @method $this ceilHour(float $precision = 1) Ceil the current instance hour with given precision.
+ * @method $this ceilHours(float $precision = 1) Ceil the current instance hour with given precision.
+ * @method $this roundMinute(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function.
+ * @method $this roundMinutes(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function.
+ * @method $this floorMinute(float $precision = 1) Truncate the current instance minute with given precision.
+ * @method $this floorMinutes(float $precision = 1) Truncate the current instance minute with given precision.
+ * @method $this ceilMinute(float $precision = 1) Ceil the current instance minute with given precision.
+ * @method $this ceilMinutes(float $precision = 1) Ceil the current instance minute with given precision.
+ * @method $this roundSecond(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function.
+ * @method $this roundSeconds(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function.
+ * @method $this floorSecond(float $precision = 1) Truncate the current instance second with given precision.
+ * @method $this floorSeconds(float $precision = 1) Truncate the current instance second with given precision.
+ * @method $this ceilSecond(float $precision = 1) Ceil the current instance second with given precision.
+ * @method $this ceilSeconds(float $precision = 1) Ceil the current instance second with given precision.
+ * @method $this roundMillennium(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function.
+ * @method $this roundMillennia(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function.
+ * @method $this floorMillennium(float $precision = 1) Truncate the current instance millennium with given precision.
+ * @method $this floorMillennia(float $precision = 1) Truncate the current instance millennium with given precision.
+ * @method $this ceilMillennium(float $precision = 1) Ceil the current instance millennium with given precision.
+ * @method $this ceilMillennia(float $precision = 1) Ceil the current instance millennium with given precision.
+ * @method $this roundCentury(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function.
+ * @method $this roundCenturies(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function.
+ * @method $this floorCentury(float $precision = 1) Truncate the current instance century with given precision.
+ * @method $this floorCenturies(float $precision = 1) Truncate the current instance century with given precision.
+ * @method $this ceilCentury(float $precision = 1) Ceil the current instance century with given precision.
+ * @method $this ceilCenturies(float $precision = 1) Ceil the current instance century with given precision.
+ * @method $this roundDecade(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function.
+ * @method $this roundDecades(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function.
+ * @method $this floorDecade(float $precision = 1) Truncate the current instance decade with given precision.
+ * @method $this floorDecades(float $precision = 1) Truncate the current instance decade with given precision.
+ * @method $this ceilDecade(float $precision = 1) Ceil the current instance decade with given precision.
+ * @method $this ceilDecades(float $precision = 1) Ceil the current instance decade with given precision.
+ * @method $this roundQuarter(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function.
+ * @method $this roundQuarters(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function.
+ * @method $this floorQuarter(float $precision = 1) Truncate the current instance quarter with given precision.
+ * @method $this floorQuarters(float $precision = 1) Truncate the current instance quarter with given precision.
+ * @method $this ceilQuarter(float $precision = 1) Ceil the current instance quarter with given precision.
+ * @method $this ceilQuarters(float $precision = 1) Ceil the current instance quarter with given precision.
+ * @method $this roundMillisecond(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function.
+ * @method $this roundMilliseconds(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function.
+ * @method $this floorMillisecond(float $precision = 1) Truncate the current instance millisecond with given precision.
+ * @method $this floorMilliseconds(float $precision = 1) Truncate the current instance millisecond with given precision.
+ * @method $this ceilMillisecond(float $precision = 1) Ceil the current instance millisecond with given precision.
+ * @method $this ceilMilliseconds(float $precision = 1) Ceil the current instance millisecond with given precision.
+ * @method $this roundMicrosecond(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function.
+ * @method $this roundMicroseconds(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function.
+ * @method $this floorMicrosecond(float $precision = 1) Truncate the current instance microsecond with given precision.
+ * @method $this floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision.
+ * @method $this ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision.
+ * @method $this ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision.
+ */
+class CarbonPeriod implements Iterator, Countable, JsonSerializable
+{
+    use IntervalRounding;
+    use Mixin {
+        Mixin::mixin as baseMixin;
+    }
+    use Options;
+
+    /**
+     * Built-in filters.
+     *
+     * @var string
+     */
+    public const RECURRENCES_FILTER = [self::class, 'filterRecurrences'];
+    public const END_DATE_FILTER = [self::class, 'filterEndDate'];
+
+    /**
+     * Special value which can be returned by filters to end iteration. Also a filter.
+     *
+     * @var string
+     */
+    public const END_ITERATION = [self::class, 'endIteration'];
+
+    /**
+     * Exclude start date from iteration.
+     *
+     * @var int
+     */
+    public const EXCLUDE_START_DATE = 1;
+
+    /**
+     * Exclude end date from iteration.
+     *
+     * @var int
+     */
+    public const EXCLUDE_END_DATE = 2;
+
+    /**
+     * Yield CarbonImmutable instances.
+     *
+     * @var int
+     */
+    public const IMMUTABLE = 4;
+
+    /**
+     * Number of maximum attempts before giving up on finding next valid date.
+     *
+     * @var int
+     */
+    public const NEXT_MAX_ATTEMPTS = 1000;
+
+    /**
+     * Number of maximum attempts before giving up on finding end date.
+     *
+     * @var int
+     */
+    public const END_MAX_ATTEMPTS = 10000;
+
+    /**
+     * The registered macros.
+     *
+     * @var array
+     */
+    protected static $macros = [];
+
+    /**
+     * Date class of iteration items.
+     *
+     * @var string
+     */
+    protected $dateClass = Carbon::class;
+
+    /**
+     * Underlying date interval instance. Always present, one day by default.
+     *
+     * @var CarbonInterval
+     */
+    protected $dateInterval;
+
+    /**
+     * Whether current date interval was set by default.
+     *
+     * @var bool
+     */
+    protected $isDefaultInterval;
+
+    /**
+     * The filters stack.
+     *
+     * @var array
+     */
+    protected $filters = [];
+
+    /**
+     * Period start date. Applied on rewind. Always present, now by default.
+     *
+     * @var CarbonInterface
+     */
+    protected $startDate;
+
+    /**
+     * Period end date. For inverted interval should be before the start date. Applied via a filter.
+     *
+     * @var CarbonInterface|null
+     */
+    protected $endDate;
+
+    /**
+     * Limit for number of recurrences. Applied via a filter.
+     *
+     * @var int|null
+     */
+    protected $recurrences;
+
+    /**
+     * Iteration options.
+     *
+     * @var int
+     */
+    protected $options;
+
+    /**
+     * Index of current date. Always sequential, even if some dates are skipped by filters.
+     * Equal to null only before the first iteration.
+     *
+     * @var int
+     */
+    protected $key;
+
+    /**
+     * Current date. May temporarily hold unaccepted value when looking for a next valid date.
+     * Equal to null only before the first iteration.
+     *
+     * @var CarbonInterface
+     */
+    protected $current;
+
+    /**
+     * Timezone of current date. Taken from the start date.
+     *
+     * @var \DateTimeZone|null
+     */
+    protected $timezone;
+
+    /**
+     * The cached validation result for current date.
+     *
+     * @var bool|string|null
+     */
+    protected $validationResult;
+
+    /**
+     * Timezone handler for settings() method.
+     *
+     * @var mixed
+     */
+    protected $tzName;
+
+    /**
+     * Make a CarbonPeriod instance from given variable if possible.
+     *
+     * @param mixed $var
+     *
+     * @return static|null
+     */
+    public static function make($var)
+    {
+        try {
+            return static::instance($var);
+        } catch (NotAPeriodException $e) {
+            return static::create($var);
+        }
+    }
+
+    /**
+     * Create a new instance from a DatePeriod or CarbonPeriod object.
+     *
+     * @param CarbonPeriod|DatePeriod $period
+     *
+     * @return static
+     */
+    public static function instance($period)
+    {
+        if ($period instanceof static) {
+            return $period->copy();
+        }
+
+        if ($period instanceof self) {
+            return new static(
+                $period->getStartDate(),
+                $period->getEndDate() ?: $period->getRecurrences(),
+                $period->getDateInterval(),
+                $period->getOptions()
+            );
+        }
+
+        if ($period instanceof DatePeriod) {
+            return new static(
+                $period->start,
+                $period->end ?: ($period->recurrences - 1),
+                $period->interval,
+                $period->include_start_date ? 0 : static::EXCLUDE_START_DATE
+            );
+        }
+
+        $class = \get_called_class();
+        $type = \gettype($period);
+
+        throw new NotAPeriodException(
+            'Argument 1 passed to '.$class.'::'.__METHOD__.'() '.
+            'must be an instance of DatePeriod or '.$class.', '.
+            ($type === 'object' ? 'instance of '.\get_class($period) : $type).' given.'
+        );
+    }
+
+    /**
+     * Create a new instance.
+     *
+     * @return static
+     */
+    public static function create(...$params)
+    {
+        return static::createFromArray($params);
+    }
+
+    /**
+     * Create a new instance from an array of parameters.
+     *
+     * @param array $params
+     *
+     * @return static
+     */
+    public static function createFromArray(array $params)
+    {
+        return new static(...$params);
+    }
+
+    /**
+     * Create CarbonPeriod from ISO 8601 string.
+     *
+     * @param string   $iso
+     * @param int|null $options
+     *
+     * @return static
+     */
+    public static function createFromIso($iso, $options = null)
+    {
+        $params = static::parseIso8601($iso);
+
+        $instance = static::createFromArray($params);
+
+        if ($options !== null) {
+            $instance->setOptions($options);
+        }
+
+        return $instance;
+    }
+
+    /**
+     * Return whether given interval contains non zero value of any time unit.
+     *
+     * @param \DateInterval $interval
+     *
+     * @return bool
+     */
+    protected static function intervalHasTime(DateInterval $interval)
+    {
+        return $interval->h || $interval->i || $interval->s || $interval->f;
+    }
+
+    /**
+     * Return whether given variable is an ISO 8601 specification.
+     *
+     * Note: Check is very basic, as actual validation will be done later when parsing.
+     * We just want to ensure that variable is not any other type of a valid parameter.
+     *
+     * @param mixed $var
+     *
+     * @return bool
+     */
+    protected static function isIso8601($var)
+    {
+        if (!\is_string($var)) {
+            return false;
+        }
+
+        // Match slash but not within a timezone name.
+        $part = '[a-z]+(?:[_-][a-z]+)*';
+
+        preg_match("#\b$part/$part\b|(/)#i", $var, $match);
+
+        return isset($match[1]);
+    }
+
+    /**
+     * Parse given ISO 8601 string into an array of arguments.
+     *
+     * @SuppressWarnings(PHPMD.ElseExpression)
+     *
+     * @param string $iso
+     *
+     * @return array
+     */
+    protected static function parseIso8601($iso)
+    {
+        $result = [];
+
+        $interval = null;
+        $start = null;
+        $end = null;
+
+        foreach (explode('/', $iso) as $key => $part) {
+            if ($key === 0 && preg_match('/^R([0-9]*)$/', $part, $match)) {
+                $parsed = \strlen($match[1]) ? (int) $match[1] : null;
+            } elseif ($interval === null && $parsed = CarbonInterval::make($part)) {
+                $interval = $part;
+            } elseif ($start === null && $parsed = Carbon::make($part)) {
+                $start = $part;
+            } elseif ($end === null && $parsed = Carbon::make(static::addMissingParts($start ?? '', $part))) {
+                $end = $part;
+            } else {
+                throw new InvalidPeriodParameterException("Invalid ISO 8601 specification: $iso.");
+            }
+
+            $result[] = $parsed;
+        }
+
+        return $result;
+    }
+
+    /**
+     * Add missing parts of the target date from the soure date.
+     *
+     * @param string $source
+     * @param string $target
+     *
+     * @return string
+     */
+    protected static function addMissingParts($source, $target)
+    {
+        $pattern = '/'.preg_replace('/[0-9]+/', '[0-9]+', preg_quote($target, '/')).'$/';
+
+        $result = preg_replace($pattern, $target, $source, 1, $count);
+
+        return $count ? $result : $target;
+    }
+
+    /**
+     * Register a custom macro.
+     *
+     * @example
+     * ```
+     * CarbonPeriod::macro('middle', function () {
+     *   return $this->getStartDate()->average($this->getEndDate());
+     * });
+     * echo CarbonPeriod::since('2011-05-12')->until('2011-06-03')->middle();
+     * ```
+     *
+     * @param string          $name
+     * @param object|callable $macro
+     *
+     * @return void
+     */
+    public static function macro($name, $macro)
+    {
+        static::$macros[$name] = $macro;
+    }
+
+    /**
+     * Register macros from a mixin object.
+     *
+     * @example
+     * ```
+     * CarbonPeriod::mixin(new class {
+     *   public function addDays() {
+     *     return function ($count = 1) {
+     *       return $this->setStartDate(
+     *         $this->getStartDate()->addDays($count)
+     *       )->setEndDate(
+     *         $this->getEndDate()->addDays($count)
+     *       );
+     *     };
+     *   }
+     *   public function subDays() {
+     *     return function ($count = 1) {
+     *       return $this->setStartDate(
+     *         $this->getStartDate()->subDays($count)
+     *       )->setEndDate(
+     *         $this->getEndDate()->subDays($count)
+     *       );
+     *     };
+     *   }
+     * });
+     * echo CarbonPeriod::create('2000-01-01', '2000-02-01')->addDays(5)->subDays(3);
+     * ```
+     *
+     * @param object|string $mixin
+     *
+     * @throws ReflectionException
+     *
+     * @return void
+     */
+    public static function mixin($mixin)
+    {
+        static::baseMixin($mixin);
+    }
+
+    /**
+     * Check if macro is registered.
+     *
+     * @param string $name
+     *
+     * @return bool
+     */
+    public static function hasMacro($name)
+    {
+        return isset(static::$macros[$name]);
+    }
+
+    /**
+     * Provide static proxy for instance aliases.
+     *
+     * @param string $method
+     * @param array  $parameters
+     *
+     * @return mixed
+     */
+    public static function __callStatic($method, $parameters)
+    {
+        $date = new static();
+
+        if (static::hasMacro($method)) {
+            return static::bindMacroContext(null, function () use (&$method, &$parameters, &$date) {
+                return $date->callMacro($method, $parameters);
+            });
+        }
+
+        return $date->$method(...$parameters);
+    }
+
+    /**
+     * CarbonPeriod constructor.
+     *
+     * @SuppressWarnings(PHPMD.ElseExpression)
+     *
+     * @throws InvalidArgumentException
+     */
+    public function __construct(...$arguments)
+    {
+        // Parse and assign arguments one by one. First argument may be an ISO 8601 spec,
+        // which will be first parsed into parts and then processed the same way.
+
+        $argumentsCount = \count($arguments);
+
+        if ($argumentsCount && static::isIso8601($iso = $arguments[0])) {
+            array_splice($arguments, 0, 1, static::parseIso8601($iso));
+        }
+
+        if ($argumentsCount === 1) {
+            if ($arguments[0] instanceof DatePeriod) {
+                $arguments = [
+                    $arguments[0]->start,
+                    $arguments[0]->end ?: ($arguments[0]->recurrences - 1),
+                    $arguments[0]->interval,
+                    $arguments[0]->include_start_date ? 0 : static::EXCLUDE_START_DATE,
+                ];
+            } elseif ($arguments[0] instanceof self) {
+                $arguments = [
+                    $arguments[0]->getStartDate(),
+                    $arguments[0]->getEndDate() ?: $arguments[0]->getRecurrences(),
+                    $arguments[0]->getDateInterval(),
+                    $arguments[0]->getOptions(),
+                ];
+            }
+        }
+
+        foreach ($arguments as $argument) {
+            if ($this->dateInterval === null &&
+                (
+                    \is_string($argument) && preg_match(
+                        '/^(-?\d(\d(?![\/-])|[^\d\/-]([\/-])?)*|P[T0-9].*|(?:\h*\d+(?:\.\d+)?\h*[a-z]+)+)$/i',
+                        $argument
+                    ) ||
+                    $argument instanceof DateInterval ||
+                    $argument instanceof Closure
+                ) &&
+                $parsed = @CarbonInterval::make($argument)
+            ) {
+                $this->setDateInterval($parsed);
+            } elseif ($this->startDate === null && $parsed = Carbon::make($argument)) {
+                $this->setStartDate($parsed);
+            } elseif ($this->endDate === null && $parsed = Carbon::make($argument)) {
+                $this->setEndDate($parsed);
+            } elseif ($this->recurrences === null && $this->endDate === null && is_numeric($argument)) {
+                $this->setRecurrences($argument);
+            } elseif ($this->options === null && (\is_int($argument) || $argument === null)) {
+                $this->setOptions($argument);
+            } else {
+                throw new InvalidPeriodParameterException('Invalid constructor parameters.');
+            }
+        }
+
+        if ($this->startDate === null) {
+            $this->setStartDate(Carbon::now());
+        }
+
+        if ($this->dateInterval === null) {
+            $this->setDateInterval(CarbonInterval::day());
+
+            $this->isDefaultInterval = true;
+        }
+
+        if ($this->options === null) {
+            $this->setOptions(0);
+        }
+    }
+
+    /**
+     * Get a copy of the instance.
+     *
+     * @return static
+     */
+    public function copy()
+    {
+        return clone $this;
+    }
+
+    /**
+     * Get the getter for a property allowing both `DatePeriod` snakeCase and camelCase names.
+     *
+     * @param string $name
+     *
+     * @return callable|null
+     */
+    protected function getGetter(string $name)
+    {
+        switch (strtolower(preg_replace('/[A-Z]/', '_$0', $name))) {
+            case 'start':
+            case 'start_date':
+                return [$this, 'getStartDate'];
+            case 'end':
+            case 'end_date':
+                return [$this, 'getEndDate'];
+            case 'interval':
+            case 'date_interval':
+                return [$this, 'getDateInterval'];
+            case 'recurrences':
+                return [$this, 'getRecurrences'];
+            case 'include_start_date':
+                return [$this, 'isStartIncluded'];
+            case 'include_end_date':
+                return [$this, 'isEndIncluded'];
+            case 'current':
+                return [$this, 'current'];
+            default:
+                return null;
+        }
+    }
+
+    /**
+     * Get a property allowing both `DatePeriod` snakeCase and camelCase names.
+     *
+     * @param string $name
+     *
+     * @return bool|CarbonInterface|CarbonInterval|int|null
+     */
+    public function get(string $name)
+    {
+        $getter = $this->getGetter($name);
+
+        if ($getter) {
+            return $getter();
+        }
+
+        throw new UnknownGetterException($name);
+    }
+
+    /**
+     * Get a property allowing both `DatePeriod` snakeCase and camelCase names.
+     *
+     * @param string $name
+     *
+     * @return bool|CarbonInterface|CarbonInterval|int|null
+     */
+    public function __get(string $name)
+    {
+        return $this->get($name);
+    }
+
+    /**
+     * Check if an attribute exists on the object
+     *
+     * @param string $name
+     *
+     * @return bool
+     */
+    public function __isset(string $name): bool
+    {
+        return $this->getGetter($name) !== null;
+    }
+
+    /**
+     * @alias copy
+     *
+     * Get a copy of the instance.
+     *
+     * @return static
+     */
+    public function clone()
+    {
+        return clone $this;
+    }
+
+    /**
+     * Set the iteration item class.
+     *
+     * @param string $dateClass
+     *
+     * @return $this
+     */
+    public function setDateClass(string $dateClass)
+    {
+        if (!is_a($dateClass, CarbonInterface::class, true)) {
+            throw new NotACarbonClassException($dateClass);
+        }
+
+        $this->dateClass = $dateClass;
+
+        if (is_a($dateClass, Carbon::class, true)) {
+            $this->toggleOptions(static::IMMUTABLE, false);
+        } elseif (is_a($dateClass, CarbonImmutable::class, true)) {
+            $this->toggleOptions(static::IMMUTABLE, true);
+        }
+
+        return $this;
+    }
+
+    /**
+     * Returns iteration item date class.
+     *
+     * @return string
+     */
+    public function getDateClass(): string
+    {
+        return $this->dateClass;
+    }
+
+    /**
+     * Change the period date interval.
+     *
+     * @param DateInterval|string $interval
+     *
+     * @throws InvalidIntervalException
+     *
+     * @return $this
+     */
+    public function setDateInterval($interval)
+    {
+        if (!$interval = CarbonInterval::make($interval)) {
+            throw new InvalidIntervalException('Invalid interval.');
+        }
+
+        if ($interval->spec() === 'PT0S' && !$interval->f && !$interval->getStep()) {
+            throw new InvalidIntervalException('Empty interval is not accepted.');
+        }
+
+        $this->dateInterval = $interval;
+
+        $this->isDefaultInterval = false;
+
+        $this->handleChangedParameters();
+
+        return $this;
+    }
+
+    /**
+     * Invert the period date interval.
+     *
+     * @return $this
+     */
+    public function invertDateInterval()
+    {
+        $interval = $this->dateInterval->invert();
+
+        return $this->setDateInterval($interval);
+    }
+
+    /**
+     * Set start and end date.
+     *
+     * @param DateTime|DateTimeInterface|string      $start
+     * @param DateTime|DateTimeInterface|string|null $end
+     *
+     * @return $this
+     */
+    public function setDates($start, $end)
+    {
+        $this->setStartDate($start);
+        $this->setEndDate($end);
+
+        return $this;
+    }
+
+    /**
+     * Change the period options.
+     *
+     * @param int|null $options
+     *
+     * @throws InvalidArgumentException
+     *
+     * @return $this
+     */
+    public function setOptions($options)
+    {
+        if (!\is_int($options) && $options !== null) {
+            throw new InvalidPeriodParameterException('Invalid options.');
+        }
+
+        $this->options = $options ?: 0;
+
+        $this->handleChangedParameters();
+
+        return $this;
+    }
+
+    /**
+     * Get the period options.
+     *
+     * @return int
+     */
+    public function getOptions()
+    {
+        return $this->options;
+    }
+
+    /**
+     * Toggle given options on or off.
+     *
+     * @param int       $options
+     * @param bool|null $state
+     *
+     * @throws \InvalidArgumentException
+     *
+     * @return $this
+     */
+    public function toggleOptions($options, $state = null)
+    {
+        if ($state === null) {
+            $state = ($this->options & $options) !== $options;
+        }
+
+        return $this->setOptions(
+            $state ?
+            $this->options | $options :
+            $this->options & ~$options
+        );
+    }
+
+    /**
+     * Toggle EXCLUDE_START_DATE option.
+     *
+     * @param bool $state
+     *
+     * @return $this
+     */
+    public function excludeStartDate($state = true)
+    {
+        return $this->toggleOptions(static::EXCLUDE_START_DATE, $state);
+    }
+
+    /**
+     * Toggle EXCLUDE_END_DATE option.
+     *
+     * @param bool $state
+     *
+     * @return $this
+     */
+    public function excludeEndDate($state = true)
+    {
+        return $this->toggleOptions(static::EXCLUDE_END_DATE, $state);
+    }
+
+    /**
+     * Get the underlying date interval.
+     *
+     * @return CarbonInterval
+     */
+    public function getDateInterval()
+    {
+        return $this->dateInterval->copy();
+    }
+
+    /**
+     * Get start date of the period.
+     *
+     * @param string|null $rounding Optional rounding 'floor', 'ceil', 'round' using the period interval.
+     *
+     * @return CarbonInterface
+     */
+    public function getStartDate(string $rounding = null)
+    {
+        $date = $this->startDate->avoidMutation();
+
+        return $rounding ? $date->round($this->getDateInterval(), $rounding) : $date;
+    }
+
+    /**
+     * Get end date of the period.
+     *
+     * @param string|null $rounding Optional rounding 'floor', 'ceil', 'round' using the period interval.
+     *
+     * @return CarbonInterface|null
+     */
+    public function getEndDate(string $rounding = null)
+    {
+        if (!$this->endDate) {
+            return null;
+        }
+
+        $date = $this->endDate->avoidMutation();
+
+        return $rounding ? $date->round($this->getDateInterval(), $rounding) : $date;
+    }
+
+    /**
+     * Get number of recurrences.
+     *
+     * @return int|float|null
+     */
+    public function getRecurrences()
+    {
+        return $this->recurrences;
+    }
+
+    /**
+     * Returns true if the start date should be excluded.
+     *
+     * @return bool
+     */
+    public function isStartExcluded()
+    {
+        return ($this->options & static::EXCLUDE_START_DATE) !== 0;
+    }
+
+    /**
+     * Returns true if the end date should be excluded.
+     *
+     * @return bool
+     */
+    public function isEndExcluded()
+    {
+        return ($this->options & static::EXCLUDE_END_DATE) !== 0;
+    }
+
+    /**
+     * Returns true if the start date should be included.
+     *
+     * @return bool
+     */
+    public function isStartIncluded()
+    {
+        return !$this->isStartExcluded();
+    }
+
+    /**
+     * Returns true if the end date should be included.
+     *
+     * @return bool
+     */
+    public function isEndIncluded()
+    {
+        return !$this->isEndExcluded();
+    }
+
+    /**
+     * Return the start if it's included by option, else return the start + 1 period interval.
+     *
+     * @return CarbonInterface
+     */
+    public function getIncludedStartDate()
+    {
+        $start = $this->getStartDate();
+
+        if ($this->isStartExcluded()) {
+            return $start->add($this->getDateInterval());
+        }
+
+        return $start;
+    }
+
+    /**
+     * Return the end if it's included by option, else return the end - 1 period interval.
+     * Warning: if the period has no fixed end, this method will iterate the period to calculate it.
+     *
+     * @return CarbonInterface
+     */
+    public function getIncludedEndDate()
+    {
+        $end = $this->getEndDate();
+
+        if (!$end) {
+            return $this->calculateEnd();
+        }
+
+        if ($this->isEndExcluded()) {
+            return $end->sub($this->getDateInterval());
+        }
+
+        return $end;
+    }
+
+    /**
+     * Add a filter to the stack.
+     *
+     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
+     *
+     * @param callable $callback
+     * @param string   $name
+     *
+     * @return $this
+     */
+    public function addFilter($callback, $name = null)
+    {
+        $tuple = $this->createFilterTuple(\func_get_args());
+
+        $this->filters[] = $tuple;
+
+        $this->handleChangedParameters();
+
+        return $this;
+    }
+
+    /**
+     * Prepend a filter to the stack.
+     *
+     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
+     *
+     * @param callable $callback
+     * @param string   $name
+     *
+     * @return $this
+     */
+    public function prependFilter($callback, $name = null)
+    {
+        $tuple = $this->createFilterTuple(\func_get_args());
+
+        array_unshift($this->filters, $tuple);
+
+        $this->handleChangedParameters();
+
+        return $this;
+    }
+
+    /**
+     * Remove a filter by instance or name.
+     *
+     * @param callable|string $filter
+     *
+     * @return $this
+     */
+    public function removeFilter($filter)
+    {
+        $key = \is_callable($filter) ? 0 : 1;
+
+        $this->filters = array_values(array_filter(
+            $this->filters,
+            function ($tuple) use ($key, $filter) {
+                return $tuple[$key] !== $filter;
+            }
+        ));
+
+        $this->updateInternalState();
+
+        $this->handleChangedParameters();
+
+        return $this;
+    }
+
+    /**
+     * Return whether given instance or name is in the filter stack.
+     *
+     * @param callable|string $filter
+     *
+     * @return bool
+     */
+    public function hasFilter($filter)
+    {
+        $key = \is_callable($filter) ? 0 : 1;
+
+        foreach ($this->filters as $tuple) {
+            if ($tuple[$key] === $filter) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * Get filters stack.
+     *
+     * @return array
+     */
+    public function getFilters()
+    {
+        return $this->filters;
+    }
+
+    /**
+     * Set filters stack.
+     *
+     * @param array $filters
+     *
+     * @return $this
+     */
+    public function setFilters(array $filters)
+    {
+        $this->filters = $filters;
+
+        $this->updateInternalState();
+
+        $this->handleChangedParameters();
+
+        return $this;
+    }
+
+    /**
+     * Reset filters stack.
+     *
+     * @return $this
+     */
+    public function resetFilters()
+    {
+        $this->filters = [];
+
+        if ($this->endDate !== null) {
+            $this->filters[] = [static::END_DATE_FILTER, null];
+        }
+
+        if ($this->recurrences !== null) {
+            $this->filters[] = [static::RECURRENCES_FILTER, null];
+        }
+
+        $this->handleChangedParameters();
+
+        return $this;
+    }
+
+    /**
+     * Add a recurrences filter (set maximum number of recurrences).
+     *
+     * @param int|float|null $recurrences
+     *
+     * @throws InvalidArgumentException
+     *
+     * @return $this
+     */
+    public function setRecurrences($recurrences)
+    {
+        if (!is_numeric($recurrences) && $recurrences !== null || $recurrences < 0) {
+            throw new InvalidPeriodParameterException('Invalid number of recurrences.');
+        }
+
+        if ($recurrences === null) {
+            return $this->removeFilter(static::RECURRENCES_FILTER);
+        }
+
+        $this->recurrences = $recurrences === INF ? INF : (int) $recurrences;
+
+        if (!$this->hasFilter(static::RECURRENCES_FILTER)) {
+            return $this->addFilter(static::RECURRENCES_FILTER);
+        }
+
+        $this->handleChangedParameters();
+
+        return $this;
+    }
+
+    /**
+     * Change the period start date.
+     *
+     * @param DateTime|DateTimeInterface|string $date
+     * @param bool|null                         $inclusive
+     *
+     * @throws InvalidPeriodDateException
+     *
+     * @return $this
+     */
+    public function setStartDate($date, $inclusive = null)
+    {
+        if (!$date = ([$this->dateClass, 'make'])($date)) {
+            throw new InvalidPeriodDateException('Invalid start date.');
+        }
+
+        $this->startDate = $date;
+
+        if ($inclusive !== null) {
+            $this->toggleOptions(static::EXCLUDE_START_DATE, !$inclusive);
+        }
+
+        return $this;
+    }
+
+    /**
+     * Change the period end date.
+     *
+     * @param DateTime|DateTimeInterface|string|null $date
+     * @param bool|null                              $inclusive
+     *
+     * @throws \InvalidArgumentException
+     *
+     * @return $this
+     */
+    public function setEndDate($date, $inclusive = null)
+    {
+        if ($date !== null && !$date = ([$this->dateClass, 'make'])($date)) {
+            throw new InvalidPeriodDateException('Invalid end date.');
+        }
+
+        if (!$date) {
+            return $this->removeFilter(static::END_DATE_FILTER);
+        }
+
+        $this->endDate = $date;
+
+        if ($inclusive !== null) {
+            $this->toggleOptions(static::EXCLUDE_END_DATE, !$inclusive);
+        }
+
+        if (!$this->hasFilter(static::END_DATE_FILTER)) {
+            return $this->addFilter(static::END_DATE_FILTER);
+        }
+
+        $this->handleChangedParameters();
+
+        return $this;
+    }
+
+    /**
+     * Check if the current position is valid.
+     *
+     * @return bool
+     */
+    public function valid()
+    {
+        return $this->validateCurrentDate() === true;
+    }
+
+    /**
+     * Return the current key.
+     *
+     * @return int|null
+     */
+    public function key()
+    {
+        return $this->valid()
+            ? $this->key
+            : null;
+    }
+
+    /**
+     * Return the current date.
+     *
+     * @return CarbonInterface|null
+     */
+    public function current()
+    {
+        return $this->valid()
+            ? $this->prepareForReturn($this->current)
+            : null;
+    }
+
+    /**
+     * Move forward to the next date.
+     *
+     * @throws RuntimeException
+     *
+     * @return void
+     */
+    public function next()
+    {
+        if ($this->current === null) {
+            $this->rewind();
+        }
+
+        if ($this->validationResult !== static::END_ITERATION) {
+            $this->key++;
+
+            $this->incrementCurrentDateUntilValid();
+        }
+    }
+
+    /**
+     * Rewind to the start date.
+     *
+     * Iterating over a date in the UTC timezone avoids bug during backward DST change.
+     *
+     * @see https://bugs.php.net/bug.php?id=72255
+     * @see https://bugs.php.net/bug.php?id=74274
+     * @see https://wiki.php.net/rfc/datetime_and_daylight_saving_time
+     *
+     * @throws RuntimeException
+     *
+     * @return void
+     */
+    public function rewind()
+    {
+        $this->key = 0;
+        $this->current = ([$this->dateClass, 'make'])($this->startDate);
+        $settings = $this->getSettings();
+
+        if ($this->hasLocalTranslator()) {
+            $settings['locale'] = $this->getTranslatorLocale();
+        }
+
+        $this->current->settings($settings);
+        $this->timezone = static::intervalHasTime($this->dateInterval) ? $this->current->getTimezone() : null;
+
+        if ($this->timezone) {
+            $this->current = $this->current->utc();
+        }
+
+        $this->validationResult = null;
+
+        if ($this->isStartExcluded() || $this->validateCurrentDate() === false) {
+            $this->incrementCurrentDateUntilValid();
+        }
+    }
+
+    /**
+     * Skip iterations and returns iteration state (false if ended, true if still valid).
+     *
+     * @param int $count steps number to skip (1 by default)
+     *
+     * @return bool
+     */
+    public function skip($count = 1)
+    {
+        for ($i = $count; $this->valid() && $i > 0; $i--) {
+            $this->next();
+        }
+
+        return $this->valid();
+    }
+
+    /**
+     * Format the date period as ISO 8601.
+     *
+     * @return string
+     */
+    public function toIso8601String()
+    {
+        $parts = [];
+
+        if ($this->recurrences !== null) {
+            $parts[] = 'R'.$this->recurrences;
+        }
+
+        $parts[] = $this->startDate->toIso8601String();
+
+        $parts[] = $this->dateInterval->spec();
+
+        if ($this->endDate !== null) {
+            $parts[] = $this->endDate->toIso8601String();
+        }
+
+        return implode('/', $parts);
+    }
+
+    /**
+     * Convert the date period into a string.
+     *
+     * @return string
+     */
+    public function toString()
+    {
+        $translator = ([$this->dateClass, 'getTranslator'])();
+
+        $parts = [];
+
+        $format = !$this->startDate->isStartOfDay() || $this->endDate && !$this->endDate->isStartOfDay()
+            ? 'Y-m-d H:i:s'
+            : 'Y-m-d';
+
+        if ($this->recurrences !== null) {
+            $parts[] = $this->translate('period_recurrences', [], $this->recurrences, $translator);
+        }
+
+        $parts[] = $this->translate('period_interval', [':interval' => $this->dateInterval->forHumans([
+            'join' => true,
+        ])], null, $translator);
+
+        $parts[] = $this->translate('period_start_date', [':date' => $this->startDate->rawFormat($format)], null, $translator);
+
+        if ($this->endDate !== null) {
+            $parts[] = $this->translate('period_end_date', [':date' => $this->endDate->rawFormat($format)], null, $translator);
+        }
+
+        $result = implode(' ', $parts);
+
+        return mb_strtoupper(mb_substr($result, 0, 1)).mb_substr($result, 1);
+    }
+
+    /**
+     * Format the date period as ISO 8601.
+     *
+     * @return string
+     */
+    public function spec()
+    {
+        return $this->toIso8601String();
+    }
+
+    /**
+     * Cast the current instance into the given class.
+     *
+     * @param string $className The $className::instance() method will be called to cast the current object.
+     *
+     * @return DatePeriod
+     */
+    public function cast(string $className)
+    {
+        if (!method_exists($className, 'instance')) {
+            if (is_a($className, DatePeriod::class, true)) {
+                return new $className(
+                    $this->getStartDate(),
+                    $this->getDateInterval(),
+                    $this->getEndDate() ? $this->getIncludedEndDate() : $this->getRecurrences(),
+                    $this->isStartExcluded() ? DatePeriod::EXCLUDE_START_DATE : 0
+                );
+            }
+
+            throw new InvalidCastException("$className has not the instance() method needed to cast the date.");
+        }
+
+        return $className::instance($this);
+    }
+
+    /**
+     * Return native DatePeriod PHP object matching the current instance.
+     *
+     * @example
+     * ```
+     * var_dump(CarbonPeriod::create('2021-01-05', '2021-02-15')->toDatePeriod());
+     * ```
+     *
+     * @return DatePeriod
+     */
+    public function toDatePeriod()
+    {
+        return $this->cast(DatePeriod::class);
+    }
+
+    /**
+     * Convert the date period into an array without changing current iteration state.
+     *
+     * @return CarbonInterface[]
+     */
+    public function toArray()
+    {
+        $state = [
+            $this->key,
+            $this->current ? $this->current->avoidMutation() : null,
+            $this->validationResult,
+        ];
+
+        $result = iterator_to_array($this);
+
+        [$this->key, $this->current, $this->validationResult] = $state;
+
+        return $result;
+    }
+
+    /**
+     * Count dates in the date period.
+     *
+     * @return int
+     */
+    public function count()
+    {
+        return \count($this->toArray());
+    }
+
+    /**
+     * Return the first date in the date period.
+     *
+     * @return CarbonInterface|null
+     */
+    public function first()
+    {
+        return ($this->toArray() ?: [])[0] ?? null;
+    }
+
+    /**
+     * Return the last date in the date period.
+     *
+     * @return CarbonInterface|null
+     */
+    public function last()
+    {
+        $array = $this->toArray();
+
+        return $array ? $array[\count($array) - 1] : null;
+    }
+
+    /**
+     * Convert the date period into a string.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return $this->toString();
+    }
+
+    /**
+     * Add aliases for setters.
+     *
+     * CarbonPeriod::days(3)->hours(5)->invert()
+     *     ->sinceNow()->until('2010-01-10')
+     *     ->filter(...)
+     *     ->count()
+     *
+     * Note: We use magic method to let static and instance aliases with the same names.
+     *
+     * @param string $method
+     * @param array  $parameters
+     *
+     * @return mixed
+     */
+    public function __call($method, $parameters)
+    {
+        if (static::hasMacro($method)) {
+            return static::bindMacroContext($this, function () use (&$method, &$parameters) {
+                return $this->callMacro($method, $parameters);
+            });
+        }
+
+        $roundedValue = $this->callRoundMethod($method, $parameters);
+
+        if ($roundedValue !== null) {
+            return $roundedValue;
+        }
+
+        $first = \count($parameters) >= 1 ? $parameters[0] : null;
+        $second = \count($parameters) >= 2 ? $parameters[1] : null;
+
+        switch ($method) {
+            case 'start':
+            case 'since':
+                return $this->setStartDate($first, $second);
+
+            case 'sinceNow':
+                return $this->setStartDate(new Carbon, $first);
+
+            case 'end':
+            case 'until':
+                return $this->setEndDate($first, $second);
+
+            case 'untilNow':
+                return $this->setEndDate(new Carbon, $first);
+
+            case 'dates':
+            case 'between':
+                return $this->setDates($first, $second);
+
+            case 'recurrences':
+            case 'times':
+                return $this->setRecurrences($first);
+
+            case 'options':
+                return $this->setOptions($first);
+
+            case 'toggle':
+                return $this->toggleOptions($first, $second);
+
+            case 'filter':
+            case 'push':
+                return $this->addFilter($first, $second);
+
+            case 'prepend':
+                return $this->prependFilter($first, $second);
+
+            case 'filters':
+                return $this->setFilters($first ?: []);
+
+            case 'interval':
+            case 'each':
+            case 'every':
+            case 'step':
+            case 'stepBy':
+                return $this->setDateInterval($first);
+
+            case 'invert':
+                return $this->invertDateInterval();
+
+            case 'years':
+            case 'year':
+            case 'months':
+            case 'month':
+            case 'weeks':
+            case 'week':
+            case 'days':
+            case 'dayz':
+            case 'day':
+            case 'hours':
+            case 'hour':
+            case 'minutes':
+            case 'minute':
+            case 'seconds':
+            case 'second':
+                return $this->setDateInterval((
+                    // Override default P1D when instantiating via fluent setters.
+                    [$this->isDefaultInterval ? new CarbonInterval('PT0S') : $this->dateInterval, $method]
+                )(
+                    \count($parameters) === 0 ? 1 : $first
+                ));
+        }
+
+        if ($this->localStrictModeEnabled ?? Carbon::isStrictModeEnabled()) {
+            throw new UnknownMethodException($method);
+        }
+
+        return $this;
+    }
+
+    /**
+     * Set the instance's timezone from a string or object and add/subtract the offset difference.
+     *
+     * @param \DateTimeZone|string $timezone
+     *
+     * @return static
+     */
+    public function shiftTimezone($timezone)
+    {
+        $this->tzName = $timezone;
+        $this->timezone = $timezone;
+
+        return $this;
+    }
+
+    /**
+     * Returns the end is set, else calculated from start an recurrences.
+     *
+     * @param string|null $rounding Optional rounding 'floor', 'ceil', 'round' using the period interval.
+     *
+     * @return CarbonInterface
+     */
+    public function calculateEnd(string $rounding = null)
+    {
+        if ($end = $this->getEndDate($rounding)) {
+            return $end;
+        }
+
+        if ($this->dateInterval->isEmpty()) {
+            return $this->getStartDate($rounding);
+        }
+
+        $date = $this->getEndFromRecurrences() ?? $this->iterateUntilEnd();
+
+        if ($date && $rounding) {
+            $date = $date->avoidMutation()->round($this->getDateInterval(), $rounding);
+        }
+
+        return $date;
+    }
+
+    /**
+     * @return CarbonInterface|null
+     */
+    private function getEndFromRecurrences()
+    {
+        if ($this->recurrences === null) {
+            throw new UnreachableException(
+                "Could not calculate period end without either explicit end or recurrences.\n".
+                "If you're looking for a forever-period, use ->setRecurrences(INF)."
+            );
+        }
+
+        if ($this->recurrences === INF) {
+            $start = $this->getStartDate();
+
+            return $start < $start->avoidMutation()->add($this->getDateInterval())
+                ? CarbonImmutable::endOfTime()
+                : CarbonImmutable::startOfTime();
+        }
+
+        if ($this->filters === [[static::RECURRENCES_FILTER, null]]) {
+            return $this->getStartDate()->avoidMutation()->add(
+                $this->getDateInterval()->times(
+                    $this->recurrences - ($this->isStartExcluded() ? 0 : 1)
+                )
+            );
+        }
+
+        return null;
+    }
+
+    /**
+     * @return CarbonInterface|null
+     */
+    private function iterateUntilEnd()
+    {
+        $attempts = 0;
+        $date = null;
+
+        foreach ($this as $date) {
+            if (++$attempts > static::END_MAX_ATTEMPTS) {
+                throw new UnreachableException(
+                    'Could not calculate period end after iterating '.static::END_MAX_ATTEMPTS.' times.'
+                );
+            }
+        }
+
+        return $date;
+    }
+
+    /**
+     * Returns true if the current period overlaps the given one (if 1 parameter passed)
+     * or the period between 2 dates (if 2 parameters passed).
+     *
+     * @param CarbonPeriod|\DateTimeInterface|Carbon|CarbonImmutable|string $rangeOrRangeStart
+     * @param \DateTimeInterface|Carbon|CarbonImmutable|string|null         $rangeEnd
+     *
+     * @return bool
+     */
+    public function overlaps($rangeOrRangeStart, $rangeEnd = null)
+    {
+        $range = $rangeEnd ? static::create($rangeOrRangeStart, $rangeEnd) : $rangeOrRangeStart;
+
+        if (!($range instanceof self)) {
+            $range = static::create($range);
+        }
+
+        [$start, $end] = $this->orderCouple($this->getStartDate(), $this->calculateEnd());
+        [$rangeStart, $rangeEnd] = $this->orderCouple($range->getStartDate(), $range->calculateEnd());
+
+        return $end > $rangeStart && $rangeEnd > $start;
+    }
+
+    /**
+     * Execute a given function on each date of the period.
+     *
+     * @example
+     * ```
+     * Carbon::create('2020-11-29')->daysUntil('2020-12-24')->forEach(function (Carbon $date) {
+     *   echo $date->diffInDays('2020-12-25')." days before Christmas!\n";
+     * });
+     * ```
+     *
+     * @param callable $callback
+     */
+    public function forEach(callable $callback)
+    {
+        foreach ($this as $date) {
+            $callback($date);
+        }
+    }
+
+    /**
+     * Execute a given function on each date of the period and yield the result of this function.
+     *
+     * @example
+     * ```
+     * $period = Carbon::create('2020-11-29')->daysUntil('2020-12-24');
+     * echo implode("\n", iterator_to_array($period->map(function (Carbon $date) {
+     *   return $date->diffInDays('2020-12-25').' days before Christmas!';
+     * })));
+     * ```
+     *
+     * @param callable $callback
+     *
+     * @return \Generator
+     */
+    public function map(callable $callback)
+    {
+        foreach ($this as $date) {
+            yield $callback($date);
+        }
+    }
+
+    /**
+     * Determines if the instance is equal to another.
+     * Warning: if options differ, instances wil never be equal.
+     *
+     * @param mixed $period
+     *
+     * @see equalTo()
+     *
+     * @return bool
+     */
+    public function eq($period): bool
+    {
+        return $this->equalTo($period);
+    }
+
+    /**
+     * Determines if the instance is equal to another.
+     * Warning: if options differ, instances wil never be equal.
+     *
+     * @param mixed $period
+     *
+     * @return bool
+     */
+    public function equalTo($period): bool
+    {
+        if (!($period instanceof self)) {
+            $period = self::make($period);
+        }
+
+        $end = $this->getEndDate();
+
+        return $period !== null
+            && $this->getDateInterval()->eq($period->getDateInterval())
+            && $this->getStartDate()->eq($period->getStartDate())
+            && ($end ? $end->eq($period->getEndDate()) : $this->getRecurrences() === $period->getRecurrences())
+            && ($this->getOptions() & (~static::IMMUTABLE)) === ($period->getOptions() & (~static::IMMUTABLE));
+    }
+
+    /**
+     * Determines if the instance is not equal to another.
+     * Warning: if options differ, instances wil never be equal.
+     *
+     * @param mixed $period
+     *
+     * @see notEqualTo()
+     *
+     * @return bool
+     */
+    public function ne($period): bool
+    {
+        return $this->notEqualTo($period);
+    }
+
+    /**
+     * Determines if the instance is not equal to another.
+     * Warning: if options differ, instances wil never be equal.
+     *
+     * @param mixed $period
+     *
+     * @return bool
+     */
+    public function notEqualTo($period): bool
+    {
+        return !$this->eq($period);
+    }
+
+    /**
+     * Determines if the start date is before an other given date.
+     * (Rather start/end are included by options is ignored.)
+     *
+     * @param mixed $date
+     *
+     * @return bool
+     */
+    public function startsBefore($date = null): bool
+    {
+        return $this->getStartDate()->lessThan($this->resolveCarbon($date));
+    }
+
+    /**
+     * Determines if the start date is before or the same as a given date.
+     * (Rather start/end are included by options is ignored.)
+     *
+     * @param mixed $date
+     *
+     * @return bool
+     */
+    public function startsBeforeOrAt($date = null): bool
+    {
+        return $this->getStartDate()->lessThanOrEqualTo($this->resolveCarbon($date));
+    }
+
+    /**
+     * Determines if the start date is after an other given date.
+     * (Rather start/end are included by options is ignored.)
+     *
+     * @param mixed $date
+     *
+     * @return bool
+     */
+    public function startsAfter($date = null): bool
+    {
+        return $this->getStartDate()->greaterThan($this->resolveCarbon($date));
+    }
+
+    /**
+     * Determines if the start date is after or the same as a given date.
+     * (Rather start/end are included by options is ignored.)
+     *
+     * @param mixed $date
+     *
+     * @return bool
+     */
+    public function startsAfterOrAt($date = null): bool
+    {
+        return $this->getStartDate()->greaterThanOrEqualTo($this->resolveCarbon($date));
+    }
+
+    /**
+     * Determines if the start date is the same as a given date.
+     * (Rather start/end are included by options is ignored.)
+     *
+     * @param mixed $date
+     *
+     * @return bool
+     */
+    public function startsAt($date = null): bool
+    {
+        return $this->getStartDate()->equalTo($this->resolveCarbon($date));
+    }
+
+    /**
+     * Determines if the end date is before an other given date.
+     * (Rather start/end are included by options is ignored.)
+     *
+     * @param mixed $date
+     *
+     * @return bool
+     */
+    public function endsBefore($date = null): bool
+    {
+        return $this->calculateEnd()->lessThan($this->resolveCarbon($date));
+    }
+
+    /**
+     * Determines if the end date is before or the same as a given date.
+     * (Rather start/end are included by options is ignored.)
+     *
+     * @param mixed $date
+     *
+     * @return bool
+     */
+    public function endsBeforeOrAt($date = null): bool
+    {
+        return $this->calculateEnd()->lessThanOrEqualTo($this->resolveCarbon($date));
+    }
+
+    /**
+     * Determines if the end date is after an other given date.
+     * (Rather start/end are included by options is ignored.)
+     *
+     * @param mixed $date
+     *
+     * @return bool
+     */
+    public function endsAfter($date = null): bool
+    {
+        return $this->calculateEnd()->greaterThan($this->resolveCarbon($date));
+    }
+
+    /**
+     * Determines if the end date is after or the same as a given date.
+     * (Rather start/end are included by options is ignored.)
+     *
+     * @param mixed $date
+     *
+     * @return bool
+     */
+    public function endsAfterOrAt($date = null): bool
+    {
+        return $this->calculateEnd()->greaterThanOrEqualTo($this->resolveCarbon($date));
+    }
+
+    /**
+     * Determines if the end date is the same as a given date.
+     * (Rather start/end are included by options is ignored.)
+     *
+     * @param mixed $date
+     *
+     * @return bool
+     */
+    public function endsAt($date = null): bool
+    {
+        return $this->calculateEnd()->equalTo($this->resolveCarbon($date));
+    }
+
+    /**
+     * Return true if start date is now or later.
+     * (Rather start/end are included by options is ignored.)
+     *
+     * @return bool
+     */
+    public function isStarted(): bool
+    {
+        return $this->startsBeforeOrAt();
+    }
+
+    /**
+     * Return true if end date is now or later.
+     * (Rather start/end are included by options is ignored.)
+     *
+     * @return bool
+     */
+    public function isEnded(): bool
+    {
+        return $this->endsBeforeOrAt();
+    }
+
+    /**
+     * Return true if now is between start date (included) and end date (excluded).
+     * (Rather start/end are included by options is ignored.)
+     *
+     * @return bool
+     */
+    public function isInProgress(): bool
+    {
+        return $this->isStarted() && !$this->isEnded();
+    }
+
+    /**
+     * Round the current instance at the given unit with given precision if specified and the given function.
+     *
+     * @param string                              $unit
+     * @param float|int|string|\DateInterval|null $precision
+     * @param string                              $function
+     *
+     * @return $this
+     */
+    public function roundUnit($unit, $precision = 1, $function = 'round')
+    {
+        $this->setStartDate($this->getStartDate()->roundUnit($unit, $precision, $function));
+
+        if ($this->endDate) {
+            $this->setEndDate($this->getEndDate()->roundUnit($unit, $precision, $function));
+        }
+
+        $this->setDateInterval($this->getDateInterval()->roundUnit($unit, $precision, $function));
+
+        return $this;
+    }
+
+    /**
+     * Truncate the current instance at the given unit with given precision if specified.
+     *
+     * @param string                              $unit
+     * @param float|int|string|\DateInterval|null $precision
+     *
+     * @return $this
+     */
+    public function floorUnit($unit, $precision = 1)
+    {
+        return $this->roundUnit($unit, $precision, 'floor');
+    }
+
+    /**
+     * Ceil the current instance at the given unit with given precision if specified.
+     *
+     * @param string                              $unit
+     * @param float|int|string|\DateInterval|null $precision
+     *
+     * @return $this
+     */
+    public function ceilUnit($unit, $precision = 1)
+    {
+        return $this->roundUnit($unit, $precision, 'ceil');
+    }
+
+    /**
+     * Round the current instance second with given precision if specified (else period interval is used).
+     *
+     * @param float|int|string|\DateInterval|null $precision
+     * @param string                              $function
+     *
+     * @return $this
+     */
+    public function round($precision = null, $function = 'round')
+    {
+        return $this->roundWith($precision ?? (string) $this->getDateInterval(), $function);
+    }
+
+    /**
+     * Round the current instance second with given precision if specified (else period interval is used).
+     *
+     * @param float|int|string|\DateInterval|null $precision
+     *
+     * @return $this
+     */
+    public function floor($precision = null)
+    {
+        return $this->round($precision, 'floor');
+    }
+
+    /**
+     * Ceil the current instance second with given precision if specified (else period interval is used).
+     *
+     * @param float|int|string|\DateInterval|null $precision
+     *
+     * @return $this
+     */
+    public function ceil($precision = null)
+    {
+        return $this->round($precision, 'ceil');
+    }
+
+    /**
+     * Specify data which should be serialized to JSON.
+     *
+     * @link https://php.net/manual/en/jsonserializable.jsonserialize.php
+     *
+     * @return CarbonInterface[]
+     */
+    #[ReturnTypeWillChange]
+    public function jsonSerialize()
+    {
+        return $this->toArray();
+    }
+
+    /**
+     * Return true if the given date is between start and end.
+     *
+     * @param \Carbon\Carbon|\Carbon\CarbonPeriod|\Carbon\CarbonInterval|\DateInterval|\DatePeriod|\DateTimeInterface|string|null $date
+     *
+     * @return bool
+     */
+    public function contains($date = null): bool
+    {
+        $startMethod = 'startsBefore'.($this->isStartIncluded() ? 'OrAt' : '');
+        $endMethod = 'endsAfter'.($this->isEndIncluded() ? 'OrAt' : '');
+
+        return $this->$startMethod($date) && $this->$endMethod($date);
+    }
+
+    /**
+     * Return true if the current period follows a given other period (with no overlap).
+     * For instance, [2019-08-01 -> 2019-08-12] follows [2019-07-29 -> 2019-07-31]
+     * Note than in this example, follows() would be false if 2019-08-01 or 2019-07-31 was excluded by options.
+     *
+     * @param \Carbon\CarbonPeriod|\DatePeriod|string $period
+     *
+     * @return bool
+     */
+    public function follows($period, ...$arguments): bool
+    {
+        $period = $this->resolveCarbonPeriod($period, ...$arguments);
+
+        return $this->getIncludedStartDate()->equalTo($period->getIncludedEndDate()->add($period->getDateInterval()));
+    }
+
+    /**
+     * Return true if the given other period follows the current one (with no overlap).
+     * For instance, [2019-07-29 -> 2019-07-31] is followed by [2019-08-01 -> 2019-08-12]
+     * Note than in this example, isFollowedBy() would be false if 2019-08-01 or 2019-07-31 was excluded by options.
+     *
+     * @param \Carbon\CarbonPeriod|\DatePeriod|string $period
+     *
+     * @return bool
+     */
+    public function isFollowedBy($period, ...$arguments): bool
+    {
+        $period = $this->resolveCarbonPeriod($period, ...$arguments);
+
+        return $period->follows($this);
+    }
+
+    /**
+     * Return true if the given period either follows or is followed by the current one.
+     *
+     * @see follows()
+     * @see isFollowedBy()
+     *
+     * @param \Carbon\CarbonPeriod|\DatePeriod|string $period
+     *
+     * @return bool
+     */
+    public function isConsecutiveWith($period, ...$arguments): bool
+    {
+        return $this->follows($period, ...$arguments) || $this->isFollowedBy($period, ...$arguments);
+    }
+
+    /**
+     * Update properties after removing built-in filters.
+     *
+     * @return void
+     */
+    protected function updateInternalState()
+    {
+        if (!$this->hasFilter(static::END_DATE_FILTER)) {
+            $this->endDate = null;
+        }
+
+        if (!$this->hasFilter(static::RECURRENCES_FILTER)) {
+            $this->recurrences = null;
+        }
+    }
+
+    /**
+     * Create a filter tuple from raw parameters.
+     *
+     * Will create an automatic filter callback for one of Carbon's is* methods.
+     *
+     * @param array $parameters
+     *
+     * @return array
+     */
+    protected function createFilterTuple(array $parameters)
+    {
+        $method = array_shift($parameters);
+
+        if (!$this->isCarbonPredicateMethod($method)) {
+            return [$method, array_shift($parameters)];
+        }
+
+        return [function ($date) use ($method, $parameters) {
+            return ([$date, $method])(...$parameters);
+        }, $method];
+    }
+
+    /**
+     * Return whether given callable is a string pointing to one of Carbon's is* methods
+     * and should be automatically converted to a filter callback.
+     *
+     * @param callable $callable
+     *
+     * @return bool
+     */
+    protected function isCarbonPredicateMethod($callable)
+    {
+        return \is_string($callable) && str_starts_with($callable, 'is') &&
+            (method_exists($this->dateClass, $callable) || ([$this->dateClass, 'hasMacro'])($callable));
+    }
+
+    /**
+     * Recurrences filter callback (limits number of recurrences).
+     *
+     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
+     *
+     * @param \Carbon\Carbon $current
+     * @param int            $key
+     *
+     * @return bool|string
+     */
+    protected function filterRecurrences($current, $key)
+    {
+        if ($key < $this->recurrences) {
+            return true;
+        }
+
+        return static::END_ITERATION;
+    }
+
+    /**
+     * End date filter callback.
+     *
+     * @param \Carbon\Carbon $current
+     *
+     * @return bool|string
+     */
+    protected function filterEndDate($current)
+    {
+        if (!$this->isEndExcluded() && $current == $this->endDate) {
+            return true;
+        }
+
+        if ($this->dateInterval->invert ? $current > $this->endDate : $current < $this->endDate) {
+            return true;
+        }
+
+        return static::END_ITERATION;
+    }
+
+    /**
+     * End iteration filter callback.
+     *
+     * @return string
+     */
+    protected function endIteration()
+    {
+        return static::END_ITERATION;
+    }
+
+    /**
+     * Handle change of the parameters.
+     */
+    protected function handleChangedParameters()
+    {
+        if (($this->getOptions() & static::IMMUTABLE) && $this->dateClass === Carbon::class) {
+            $this->setDateClass(CarbonImmutable::class);
+        } elseif (!($this->getOptions() & static::IMMUTABLE) && $this->dateClass === CarbonImmutable::class) {
+            $this->setDateClass(Carbon::class);
+        }
+
+        $this->validationResult = null;
+    }
+
+    /**
+     * Validate current date and stop iteration when necessary.
+     *
+     * Returns true when current date is valid, false if it is not, or static::END_ITERATION
+     * when iteration should be stopped.
+     *
+     * @return bool|string
+     */
+    protected function validateCurrentDate()
+    {
+        if ($this->current === null) {
+            $this->rewind();
+        }
+
+        // Check after the first rewind to avoid repeating the initial validation.
+        if ($this->validationResult !== null) {
+            return $this->validationResult;
+        }
+
+        return $this->validationResult = $this->checkFilters();
+    }
+
+    /**
+     * Check whether current value and key pass all the filters.
+     *
+     * @return bool|string
+     */
+    protected function checkFilters()
+    {
+        $current = $this->prepareForReturn($this->current);
+
+        foreach ($this->filters as $tuple) {
+            $result = \call_user_func(
+                $tuple[0],
+                $current->avoidMutation(),
+                $this->key,
+                $this
+            );
+
+            if ($result === static::END_ITERATION) {
+                return static::END_ITERATION;
+            }
+
+            if (!$result) {
+                return false;
+            }
+        }
+
+        return true;
+    }
+
+    /**
+     * Prepare given date to be returned to the external logic.
+     *
+     * @param CarbonInterface $date
+     *
+     * @return CarbonInterface
+     */
+    protected function prepareForReturn(CarbonInterface $date)
+    {
+        $date = ([$this->dateClass, 'make'])($date);
+
+        if ($this->timezone) {
+            $date = $date->setTimezone($this->timezone);
+        }
+
+        return $date;
+    }
+
+    /**
+     * Keep incrementing the current date until a valid date is found or the iteration is ended.
+     *
+     * @throws RuntimeException
+     *
+     * @return void
+     */
+    protected function incrementCurrentDateUntilValid()
+    {
+        $attempts = 0;
+
+        do {
+            $this->current = $this->current->add($this->dateInterval);
+
+            $this->validationResult = null;
+
+            if (++$attempts > static::NEXT_MAX_ATTEMPTS) {
+                throw new UnreachableException('Could not find next valid date.');
+            }
+        } while ($this->validateCurrentDate() === false);
+    }
+
+    /**
+     * Call given macro.
+     *
+     * @param string $name
+     * @param array  $parameters
+     *
+     * @return mixed
+     */
+    protected function callMacro($name, $parameters)
+    {
+        $macro = static::$macros[$name];
+
+        if ($macro instanceof Closure) {
+            $boundMacro = @$macro->bindTo($this, static::class) ?: @$macro->bindTo(null, static::class);
+
+            return ($boundMacro ?: $macro)(...$parameters);
+        }
+
+        return $macro(...$parameters);
+    }
+
+    /**
+     * Return the Carbon instance passed through, a now instance in the same timezone
+     * if null given or parse the input if string given.
+     *
+     * @param \Carbon\Carbon|\Carbon\CarbonPeriod|\Carbon\CarbonInterval|\DateInterval|\DatePeriod|\DateTimeInterface|string|null $date
+     *
+     * @return \Carbon\CarbonInterface
+     */
+    protected function resolveCarbon($date = null)
+    {
+        return $this->getStartDate()->nowWithSameTz()->carbonize($date);
+    }
+
+    /**
+     * Resolve passed arguments or DatePeriod to a CarbonPeriod object.
+     *
+     * @param mixed $period
+     * @param mixed ...$arguments
+     *
+     * @return static
+     */
+    protected function resolveCarbonPeriod($period, ...$arguments)
+    {
+        if ($period instanceof self) {
+            return $period;
+        }
+
+        return $period instanceof DatePeriod
+            ? static::instance($period)
+            : static::create($period, ...$arguments);
+    }
+
+    private function orderCouple($first, $second): array
+    {
+        return $first > $second ? [$second, $first] : [$first, $second];
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/CarbonTimeZone.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/CarbonTimeZone.php
new file mode 100644
index 0000000..2bd36c4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/CarbonTimeZone.php
@@ -0,0 +1,306 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon;
+
+use Carbon\Exceptions\InvalidCastException;
+use Carbon\Exceptions\InvalidTimeZoneException;
+use DateTimeInterface;
+use DateTimeZone;
+
+class CarbonTimeZone extends DateTimeZone
+{
+    public function __construct($timezone = null)
+    {
+        parent::__construct(static::getDateTimeZoneNameFromMixed($timezone));
+    }
+
+    protected static function parseNumericTimezone($timezone)
+    {
+        if ($timezone <= -100 || $timezone >= 100) {
+            throw new InvalidTimeZoneException('Absolute timezone offset cannot be greater than 100.');
+        }
+
+        return ($timezone >= 0 ? '+' : '').$timezone.':00';
+    }
+
+    protected static function getDateTimeZoneNameFromMixed($timezone)
+    {
+        if ($timezone === null) {
+            return date_default_timezone_get();
+        }
+
+        if (\is_string($timezone)) {
+            $timezone = preg_replace('/^\s*([+-]\d+)(\d{2})\s*$/', '$1:$2', $timezone);
+        }
+
+        if (is_numeric($timezone)) {
+            return static::parseNumericTimezone($timezone);
+        }
+
+        return $timezone;
+    }
+
+    protected static function getDateTimeZoneFromName(&$name)
+    {
+        return @timezone_open($name = (string) static::getDateTimeZoneNameFromMixed($name));
+    }
+
+    /**
+     * Cast the current instance into the given class.
+     *
+     * @param string $className The $className::instance() method will be called to cast the current object.
+     *
+     * @return DateTimeZone
+     */
+    public function cast(string $className)
+    {
+        if (!method_exists($className, 'instance')) {
+            if (is_a($className, DateTimeZone::class, true)) {
+                return new $className($this->getName());
+            }
+
+            throw new InvalidCastException("$className has not the instance() method needed to cast the date.");
+        }
+
+        return $className::instance($this);
+    }
+
+    /**
+     * Create a CarbonTimeZone from mixed input.
+     *
+     * @param DateTimeZone|string|int|null $object     original value to get CarbonTimeZone from it.
+     * @param DateTimeZone|string|int|null $objectDump dump of the object for error messages.
+     *
+     * @throws InvalidTimeZoneException
+     *
+     * @return false|static
+     */
+    public static function instance($object = null, $objectDump = null)
+    {
+        $tz = $object;
+
+        if ($tz instanceof static) {
+            return $tz;
+        }
+
+        if ($tz === null) {
+            return new static();
+        }
+
+        if (!$tz instanceof DateTimeZone) {
+            $tz = static::getDateTimeZoneFromName($object);
+        }
+
+        if ($tz === false) {
+            if (Carbon::isStrictModeEnabled()) {
+                throw new InvalidTimeZoneException('Unknown or bad timezone ('.($objectDump ?: $object).')');
+            }
+
+            return false;
+        }
+
+        return new static($tz->getName());
+    }
+
+    /**
+     * Returns abbreviated name of the current timezone according to DST setting.
+     *
+     * @param bool $dst
+     *
+     * @return string
+     */
+    public function getAbbreviatedName($dst = false)
+    {
+        $name = $this->getName();
+
+        foreach ($this->listAbbreviations() as $abbreviation => $zones) {
+            foreach ($zones as $zone) {
+                if ($zone['timezone_id'] === $name && $zone['dst'] == $dst) {
+                    return $abbreviation;
+                }
+            }
+        }
+
+        return 'unknown';
+    }
+
+    /**
+     * @alias getAbbreviatedName
+     *
+     * Returns abbreviated name of the current timezone according to DST setting.
+     *
+     * @param bool $dst
+     *
+     * @return string
+     */
+    public function getAbbr($dst = false)
+    {
+        return $this->getAbbreviatedName($dst);
+    }
+
+    /**
+     * Get the offset as string "sHH:MM" (such as "+00:00" or "-12:30").
+     *
+     * @param DateTimeInterface|null $date
+     *
+     * @return string
+     */
+    public function toOffsetName(DateTimeInterface $date = null)
+    {
+        return static::getOffsetNameFromMinuteOffset(
+            $this->getOffset($date ?: Carbon::now($this)) / 60
+        );
+    }
+
+    /**
+     * Returns a new CarbonTimeZone object using the offset string instead of region string.
+     *
+     * @param DateTimeInterface|null $date
+     *
+     * @return CarbonTimeZone
+     */
+    public function toOffsetTimeZone(DateTimeInterface $date = null)
+    {
+        return new static($this->toOffsetName($date));
+    }
+
+    /**
+     * Returns the first region string (such as "America/Toronto") that matches the current timezone or
+     * false if no match is found.
+     *
+     * @see timezone_name_from_abbr native PHP function.
+     *
+     * @param DateTimeInterface|null $date
+     * @param int                    $isDst
+     *
+     * @return string|false
+     */
+    public function toRegionName(DateTimeInterface $date = null, $isDst = 1)
+    {
+        $name = $this->getName();
+        $firstChar = substr($name, 0, 1);
+
+        if ($firstChar !== '+' && $firstChar !== '-') {
+            return $name;
+        }
+
+        $date = $date ?: Carbon::now($this);
+
+        // Integer construction no longer supported since PHP 8
+        // @codeCoverageIgnoreStart
+        try {
+            $offset = @$this->getOffset($date) ?: 0;
+        } catch (\Throwable $e) {
+            $offset = 0;
+        }
+        // @codeCoverageIgnoreEnd
+
+        $name = @timezone_name_from_abbr('', $offset, $isDst);
+
+        if ($name) {
+            return $name;
+        }
+
+        foreach (timezone_identifiers_list() as $timezone) {
+            if (Carbon::instance($date)->tz($timezone)->getOffset() === $offset) {
+                return $timezone;
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * Returns a new CarbonTimeZone object using the region string instead of offset string.
+     *
+     * @param DateTimeInterface|null $date
+     *
+     * @return CarbonTimeZone|false
+     */
+    public function toRegionTimeZone(DateTimeInterface $date = null)
+    {
+        $tz = $this->toRegionName($date);
+
+        if ($tz === false) {
+            if (Carbon::isStrictModeEnabled()) {
+                throw new InvalidTimeZoneException('Unknown timezone for offset '.$this->getOffset($date ?: Carbon::now($this)).' seconds.');
+            }
+
+            return false;
+        }
+
+        return new static($tz);
+    }
+
+    /**
+     * Cast to string (get timezone name).
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return $this->getName();
+    }
+
+    /**
+     * Create a CarbonTimeZone from mixed input.
+     *
+     * @param DateTimeZone|string|int|null $object
+     *
+     * @return false|static
+     */
+    public static function create($object = null)
+    {
+        return static::instance($object);
+    }
+
+    /**
+     * Create a CarbonTimeZone from int/float hour offset.
+     *
+     * @param float $hourOffset number of hour of the timezone shift (can be decimal).
+     *
+     * @return false|static
+     */
+    public static function createFromHourOffset(float $hourOffset)
+    {
+        return static::createFromMinuteOffset($hourOffset * Carbon::MINUTES_PER_HOUR);
+    }
+
+    /**
+     * Create a CarbonTimeZone from int/float minute offset.
+     *
+     * @param float $minuteOffset number of total minutes of the timezone shift.
+     *
+     * @return false|static
+     */
+    public static function createFromMinuteOffset(float $minuteOffset)
+    {
+        return static::instance(static::getOffsetNameFromMinuteOffset($minuteOffset));
+    }
+
+    /**
+     * Convert a total minutes offset into a standardized timezone offset string.
+     *
+     * @param float $minutes number of total minutes of the timezone shift.
+     *
+     * @return string
+     */
+    public static function getOffsetNameFromMinuteOffset(float $minutes): string
+    {
+        $minutes = round($minutes);
+        $unsignedMinutes = abs($minutes);
+
+        return ($minutes < 0 ? '-' : '+').
+            str_pad((string) floor($unsignedMinutes / 60), 2, '0', STR_PAD_LEFT).
+            ':'.
+            str_pad((string) ($unsignedMinutes % 60), 2, '0', STR_PAD_LEFT);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Cli/Invoker.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Cli/Invoker.php
new file mode 100644
index 0000000..d53b1f4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Cli/Invoker.php
@@ -0,0 +1,29 @@
+<?php
+
+namespace Carbon\Cli;
+
+class Invoker
+{
+    public const CLI_CLASS_NAME = 'Carbon\\Cli';
+
+    protected function runWithCli(string $className, array $parameters): bool
+    {
+        $cli = new $className();
+
+        return $cli(...$parameters);
+    }
+
+    public function __invoke(...$parameters): bool
+    {
+        if (class_exists(self::CLI_CLASS_NAME)) {
+            return $this->runWithCli(self::CLI_CLASS_NAME, $parameters);
+        }
+
+        $function = (($parameters[1] ?? '') === 'install' ? ($parameters[2] ?? null) : null) ?: 'shell_exec';
+        $function('composer require carbon-cli/carbon-cli --no-interaction');
+
+        echo 'Installation succeeded.';
+
+        return true;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonDoctrineType.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonDoctrineType.php
new file mode 100644
index 0000000..35c5558
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonDoctrineType.php
@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * Thanks to https://github.com/flaushi for his suggestion:
+ * https://github.com/doctrine/dbal/issues/2873#issuecomment-534956358
+ */
+namespace Carbon\Doctrine;
+
+use Doctrine\DBAL\Platforms\AbstractPlatform;
+
+interface CarbonDoctrineType
+{
+    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform);
+
+    public function convertToPHPValue($value, AbstractPlatform $platform);
+
+    public function convertToDatabaseValue($value, AbstractPlatform $platform);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonImmutableType.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonImmutableType.php
new file mode 100644
index 0000000..3239743
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonImmutableType.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * Thanks to https://github.com/flaushi for his suggestion:
+ * https://github.com/doctrine/dbal/issues/2873#issuecomment-534956358
+ */
+namespace Carbon\Doctrine;
+
+use Doctrine\DBAL\Platforms\AbstractPlatform;
+
+class CarbonImmutableType extends DateTimeImmutableType implements CarbonDoctrineType
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function getName()
+    {
+        return 'carbon_immutable';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function requiresSQLCommentHint(AbstractPlatform $platform)
+    {
+        return true;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonType.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonType.php
new file mode 100644
index 0000000..e5f52c7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonType.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * Thanks to https://github.com/flaushi for his suggestion:
+ * https://github.com/doctrine/dbal/issues/2873#issuecomment-534956358
+ */
+namespace Carbon\Doctrine;
+
+use Doctrine\DBAL\Platforms\AbstractPlatform;
+
+class CarbonType extends DateTimeType implements CarbonDoctrineType
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function getName()
+    {
+        return 'carbon';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function requiresSQLCommentHint(AbstractPlatform $platform)
+    {
+        return true;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonTypeConverter.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonTypeConverter.php
new file mode 100644
index 0000000..fa0d5b0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Doctrine/CarbonTypeConverter.php
@@ -0,0 +1,108 @@
+<?php
+
+/**
+ * Thanks to https://github.com/flaushi for his suggestion:
+ * https://github.com/doctrine/dbal/issues/2873#issuecomment-534956358
+ */
+namespace Carbon\Doctrine;
+
+use Carbon\Carbon;
+use Carbon\CarbonInterface;
+use DateTimeInterface;
+use Doctrine\DBAL\Platforms\AbstractPlatform;
+use Doctrine\DBAL\Types\ConversionException;
+use Exception;
+
+/**
+ * @template T of CarbonInterface
+ */
+trait CarbonTypeConverter
+{
+    /**
+     * @return class-string<T>
+     */
+    protected function getCarbonClassName(): string
+    {
+        return Carbon::class;
+    }
+
+    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)
+    {
+        $precision = ($fieldDeclaration['precision'] ?: 10) === 10
+            ? DateTimeDefaultPrecision::get()
+            : $fieldDeclaration['precision'];
+        $type = parent::getSQLDeclaration($fieldDeclaration, $platform);
+
+        if (!$precision) {
+            return $type;
+        }
+
+        if (str_contains($type, '(')) {
+            return preg_replace('/\(\d+\)/', "($precision)", $type);
+        }
+
+        [$before, $after] = explode(' ', "$type ");
+
+        return trim("$before($precision) $after");
+    }
+
+    /**
+     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
+     *
+     * @return T|null
+     */
+    public function convertToPHPValue($value, AbstractPlatform $platform)
+    {
+        $class = $this->getCarbonClassName();
+
+        if ($value === null || is_a($value, $class)) {
+            return $value;
+        }
+
+        if ($value instanceof DateTimeInterface) {
+            return $class::instance($value);
+        }
+
+        $date = null;
+        $error = null;
+
+        try {
+            $date = $class::parse($value);
+        } catch (Exception $exception) {
+            $error = $exception;
+        }
+
+        if (!$date) {
+            throw ConversionException::conversionFailedFormat(
+                $value,
+                $this->getName(),
+                'Y-m-d H:i:s.u or any format supported by '.$class.'::parse()',
+                $error
+            );
+        }
+
+        return $date;
+    }
+
+    /**
+     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
+     *
+     * @return string|null
+     */
+    public function convertToDatabaseValue($value, AbstractPlatform $platform)
+    {
+        if ($value === null) {
+            return $value;
+        }
+
+        if ($value instanceof DateTimeInterface) {
+            return $value->format('Y-m-d H:i:s.u');
+        }
+
+        throw ConversionException::conversionFailedInvalidType(
+            $value,
+            $this->getName(),
+            ['null', 'DateTime', 'Carbon']
+        );
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeDefaultPrecision.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeDefaultPrecision.php
new file mode 100644
index 0000000..f9744b8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeDefaultPrecision.php
@@ -0,0 +1,32 @@
+<?php
+
+/**
+ * Thanks to https://github.com/flaushi for his suggestion:
+ * https://github.com/doctrine/dbal/issues/2873#issuecomment-534956358
+ */
+namespace Carbon\Doctrine;
+
+class DateTimeDefaultPrecision
+{
+    private static $precision = 6;
+
+    /**
+     * Change the default Doctrine datetime and datetime_immutable precision.
+     *
+     * @param int $precision
+     */
+    public static function set(int $precision): void
+    {
+        self::$precision = $precision;
+    }
+
+    /**
+     * Get the default Doctrine datetime and datetime_immutable precision.
+     *
+     * @return int
+     */
+    public static function get(): int
+    {
+        return self::$precision;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeImmutableType.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeImmutableType.php
new file mode 100644
index 0000000..4992710
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeImmutableType.php
@@ -0,0 +1,24 @@
+<?php
+
+/**
+ * Thanks to https://github.com/flaushi for his suggestion:
+ * https://github.com/doctrine/dbal/issues/2873#issuecomment-534956358
+ */
+namespace Carbon\Doctrine;
+
+use Carbon\CarbonImmutable;
+use Doctrine\DBAL\Types\VarDateTimeImmutableType;
+
+class DateTimeImmutableType extends VarDateTimeImmutableType implements CarbonDoctrineType
+{
+    /** @use CarbonTypeConverter<CarbonImmutable> */
+    use CarbonTypeConverter;
+
+    /**
+     * @return class-string<CarbonImmutable>
+     */
+    protected function getCarbonClassName(): string
+    {
+        return CarbonImmutable::class;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeType.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeType.php
new file mode 100644
index 0000000..29b0bb9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Doctrine/DateTimeType.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * Thanks to https://github.com/flaushi for his suggestion:
+ * https://github.com/doctrine/dbal/issues/2873#issuecomment-534956358
+ */
+namespace Carbon\Doctrine;
+
+use Carbon\Carbon;
+use Doctrine\DBAL\Types\VarDateTimeType;
+
+class DateTimeType extends VarDateTimeType implements CarbonDoctrineType
+{
+    /** @use CarbonTypeConverter<Carbon> */
+    use CarbonTypeConverter;
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/BadComparisonUnitException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/BadComparisonUnitException.php
new file mode 100644
index 0000000..bc2aa79
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/BadComparisonUnitException.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use Exception;
+
+class BadComparisonUnitException extends UnitException
+{
+    /**
+     * Constructor.
+     *
+     * @param string         $unit
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($unit, $code = 0, Exception $previous = null)
+    {
+        parent::__construct("Bad comparison unit: '$unit'", $code, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentConstructorException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentConstructorException.php
new file mode 100644
index 0000000..a9f453e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentConstructorException.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use BadMethodCallException as BaseBadMethodCallException;
+use Exception;
+
+class BadFluentConstructorException extends BaseBadMethodCallException implements BadMethodCallException
+{
+    /**
+     * Constructor.
+     *
+     * @param string         $method
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($method, $code = 0, Exception $previous = null)
+    {
+        parent::__construct(sprintf("Unknown fluent constructor '%s'.", $method), $code, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentSetterException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentSetterException.php
new file mode 100644
index 0000000..7a28f39
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/BadFluentSetterException.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use BadMethodCallException as BaseBadMethodCallException;
+use Exception;
+
+class BadFluentSetterException extends BaseBadMethodCallException implements BadMethodCallException
+{
+    /**
+     * Constructor.
+     *
+     * @param string         $method
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($method, $code = 0, Exception $previous = null)
+    {
+        parent::__construct(sprintf("Unknown fluent setter '%s'", $method), $code, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/BadMethodCallException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/BadMethodCallException.php
new file mode 100644
index 0000000..307a4ee
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/BadMethodCallException.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+interface BadMethodCallException extends Exception
+{
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/Exception.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/Exception.php
new file mode 100644
index 0000000..86e8a15
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/Exception.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+interface Exception
+{
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/ImmutableException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/ImmutableException.php
new file mode 100644
index 0000000..5fb1c68
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/ImmutableException.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use Exception;
+use RuntimeException as BaseRuntimeException;
+
+class ImmutableException extends BaseRuntimeException implements RuntimeException
+{
+    /**
+     * Constructor.
+     *
+     * @param string         $value    the immutable type/value
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($value, $code = 0, Exception $previous = null)
+    {
+        parent::__construct("$value is immutable.", $code, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidArgumentException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidArgumentException.php
new file mode 100644
index 0000000..60ed740
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidArgumentException.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+interface InvalidArgumentException extends Exception
+{
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidCastException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidCastException.php
new file mode 100644
index 0000000..77466c7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidCastException.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use Exception;
+use InvalidArgumentException as BaseInvalidArgumentException;
+
+class InvalidCastException extends BaseInvalidArgumentException implements InvalidArgumentException
+{
+    /**
+     * Constructor.
+     *
+     * @param string         $message
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($message, $code = 0, Exception $previous = null)
+    {
+        parent::__construct($message, $code, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php
new file mode 100644
index 0000000..f5dbfe2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidDateException.php
@@ -0,0 +1,66 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use Exception;
+use InvalidArgumentException as BaseInvalidArgumentException;
+
+class InvalidDateException extends BaseInvalidArgumentException implements InvalidArgumentException
+{
+    /**
+     * The invalid field.
+     *
+     * @var string
+     */
+    private $field;
+
+    /**
+     * The invalid value.
+     *
+     * @var mixed
+     */
+    private $value;
+
+    /**
+     * Constructor.
+     *
+     * @param string         $field
+     * @param mixed          $value
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($field, $value, $code = 0, Exception $previous = null)
+    {
+        $this->field = $field;
+        $this->value = $value;
+        parent::__construct($field.' : '.$value.' is not a valid value.', $code, $previous);
+    }
+
+    /**
+     * Get the invalid field.
+     *
+     * @return string
+     */
+    public function getField()
+    {
+        return $this->field;
+    }
+
+    /**
+     * Get the invalid value.
+     *
+     * @return mixed
+     */
+    public function getValue()
+    {
+        return $this->value;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidFormatException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidFormatException.php
new file mode 100644
index 0000000..dd26a90
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidFormatException.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use Exception;
+use InvalidArgumentException as BaseInvalidArgumentException;
+
+class InvalidFormatException extends BaseInvalidArgumentException implements InvalidArgumentException
+{
+    /**
+     * Constructor.
+     *
+     * @param string         $message
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($message, $code = 0, Exception $previous = null)
+    {
+        parent::__construct($message, $code, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidIntervalException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidIntervalException.php
new file mode 100644
index 0000000..b4c76dc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidIntervalException.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use Exception;
+use InvalidArgumentException as BaseInvalidArgumentException;
+
+class InvalidIntervalException extends BaseInvalidArgumentException implements InvalidArgumentException
+{
+    /**
+     * Constructor.
+     *
+     * @param string         $message
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($message, $code = 0, Exception $previous = null)
+    {
+        parent::__construct($message, $code, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodDateException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodDateException.php
new file mode 100644
index 0000000..abe1aef
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodDateException.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use Exception;
+use InvalidArgumentException as BaseInvalidArgumentException;
+
+class InvalidPeriodDateException extends BaseInvalidArgumentException implements InvalidArgumentException
+{
+    /**
+     * Constructor.
+     *
+     * @param string         $message
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($message, $code = 0, Exception $previous = null)
+    {
+        parent::__construct($message, $code, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodParameterException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodParameterException.php
new file mode 100644
index 0000000..b061ef1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidPeriodParameterException.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use Exception;
+use InvalidArgumentException as BaseInvalidArgumentException;
+
+class InvalidPeriodParameterException extends BaseInvalidArgumentException implements InvalidArgumentException
+{
+    /**
+     * Constructor.
+     *
+     * @param string         $message
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($message, $code = 0, Exception $previous = null)
+    {
+        parent::__construct($message, $code, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTimeZoneException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTimeZoneException.php
new file mode 100644
index 0000000..03bd8ac
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTimeZoneException.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use Exception;
+use InvalidArgumentException as BaseInvalidArgumentException;
+
+class InvalidTimeZoneException extends BaseInvalidArgumentException implements InvalidArgumentException
+{
+    /**
+     * Constructor.
+     *
+     * @param string         $message
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($message, $code = 0, Exception $previous = null)
+    {
+        parent::__construct($message, $code, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTypeException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTypeException.php
new file mode 100644
index 0000000..bc124a6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/InvalidTypeException.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use Exception;
+use InvalidArgumentException as BaseInvalidArgumentException;
+
+class InvalidTypeException extends BaseInvalidArgumentException implements InvalidArgumentException
+{
+    /**
+     * Constructor.
+     *
+     * @param string         $message
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($message, $code = 0, Exception $previous = null)
+    {
+        parent::__construct($message, $code, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/NotACarbonClassException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/NotACarbonClassException.php
new file mode 100644
index 0000000..78ce939
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/NotACarbonClassException.php
@@ -0,0 +1,34 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use Carbon\CarbonInterface;
+use Exception;
+use InvalidArgumentException as BaseInvalidArgumentException;
+
+class NotACarbonClassException extends BaseInvalidArgumentException implements InvalidArgumentException
+{
+    /**
+     * Constructor.
+     *
+     * @param string         $className
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($className, $code = 0, Exception $previous = null)
+    {
+        parent::__construct(sprintf(
+            'Given class does not implement %s: %s',
+            CarbonInterface::class,
+            $className
+        ), $code, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/NotAPeriodException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/NotAPeriodException.php
new file mode 100644
index 0000000..8bdda85
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/NotAPeriodException.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use Exception;
+use InvalidArgumentException as BaseInvalidArgumentException;
+
+class NotAPeriodException extends BaseInvalidArgumentException implements InvalidArgumentException
+{
+    /**
+     * Constructor.
+     *
+     * @param string         $message
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($message, $code = 0, Exception $previous = null)
+    {
+        parent::__construct($message, $code, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/NotLocaleAwareException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/NotLocaleAwareException.php
new file mode 100644
index 0000000..8aab192
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/NotLocaleAwareException.php
@@ -0,0 +1,31 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use Exception;
+use InvalidArgumentException as BaseInvalidArgumentException;
+
+class NotLocaleAwareException extends BaseInvalidArgumentException implements InvalidArgumentException
+{
+    /**
+     * Constructor.
+     *
+     * @param mixed          $object
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($object, $code = 0, Exception $previous = null)
+    {
+        $dump = \is_object($object) ? \get_class($object) : \gettype($object);
+
+        parent::__construct("$dump does neither implements Symfony\Contracts\Translation\LocaleAwareInterface nor getLocale() method.", $code, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/OutOfRangeException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/OutOfRangeException.php
new file mode 100644
index 0000000..33cd1b5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/OutOfRangeException.php
@@ -0,0 +1,100 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use Exception;
+use InvalidArgumentException as BaseInvalidArgumentException;
+
+// This will extends OutOfRangeException instead of InvalidArgumentException since 3.0.0
+// use OutOfRangeException as BaseOutOfRangeException;
+
+class OutOfRangeException extends BaseInvalidArgumentException implements InvalidArgumentException
+{
+    /**
+     * The unit or name of the value.
+     *
+     * @var string
+     */
+    private $unit;
+
+    /**
+     * The range minimum.
+     *
+     * @var mixed
+     */
+    private $min;
+
+    /**
+     * The range maximum.
+     *
+     * @var mixed
+     */
+    private $max;
+
+    /**
+     * The invalid value.
+     *
+     * @var mixed
+     */
+    private $value;
+
+    /**
+     * Constructor.
+     *
+     * @param string         $unit
+     * @param mixed          $min
+     * @param mixed          $max
+     * @param mixed          $value
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($unit, $min, $max, $value, $code = 0, Exception $previous = null)
+    {
+        $this->unit = $unit;
+        $this->min = $min;
+        $this->max = $max;
+        $this->value = $value;
+
+        parent::__construct("$unit must be between $min and $max, $value given", $code, $previous);
+    }
+
+    /**
+     * @return mixed
+     */
+    public function getMax()
+    {
+        return $this->max;
+    }
+
+    /**
+     * @return mixed
+     */
+    public function getMin()
+    {
+        return $this->min;
+    }
+
+    /**
+     * @return mixed
+     */
+    public function getUnit()
+    {
+        return $this->unit;
+    }
+
+    /**
+     * @return mixed
+     */
+    public function getValue()
+    {
+        return $this->value;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/ParseErrorException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/ParseErrorException.php
new file mode 100644
index 0000000..3510b40
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/ParseErrorException.php
@@ -0,0 +1,32 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use Exception;
+use InvalidArgumentException as BaseInvalidArgumentException;
+
+class ParseErrorException extends BaseInvalidArgumentException implements InvalidArgumentException
+{
+    /**
+     * Constructor.
+     *
+     * @param string         $expected
+     * @param string         $actual
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($expected, $actual, $help = '', $code = 0, Exception $previous = null)
+    {
+        $actual = $actual === '' ? 'data is missing' : "get '$actual'";
+
+        parent::__construct(trim("Format expected $expected but $actual\n$help"), $code, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/RuntimeException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/RuntimeException.php
new file mode 100644
index 0000000..6ca5f5f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/RuntimeException.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+interface RuntimeException extends Exception
+{
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitException.php
new file mode 100644
index 0000000..838847b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitException.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use Exception;
+use InvalidArgumentException as BaseInvalidArgumentException;
+
+class UnitException extends BaseInvalidArgumentException implements InvalidArgumentException
+{
+    /**
+     * Constructor.
+     *
+     * @param string         $message
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($message, $code = 0, Exception $previous = null)
+    {
+        parent::__construct($message, $code, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitNotConfiguredException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitNotConfiguredException.php
new file mode 100644
index 0000000..7f8ec9e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/UnitNotConfiguredException.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use Exception;
+
+class UnitNotConfiguredException extends UnitException
+{
+    /**
+     * Constructor.
+     *
+     * @param string         $unit
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($unit, $code = 0, Exception $previous = null)
+    {
+        parent::__construct("Unit $unit have no configuration to get total from other units.", $code, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownGetterException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownGetterException.php
new file mode 100644
index 0000000..4591d35
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownGetterException.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use Exception;
+use InvalidArgumentException as BaseInvalidArgumentException;
+
+class UnknownGetterException extends BaseInvalidArgumentException implements InvalidArgumentException
+{
+    /**
+     * Constructor.
+     *
+     * @param string         $name     getter name
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($name, $code = 0, Exception $previous = null)
+    {
+        parent::__construct("Unknown getter '$name'", $code, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownMethodException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownMethodException.php
new file mode 100644
index 0000000..3646872
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownMethodException.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use BadMethodCallException as BaseBadMethodCallException;
+use Exception;
+
+class UnknownMethodException extends BaseBadMethodCallException implements BadMethodCallException
+{
+    /**
+     * Constructor.
+     *
+     * @param string         $method
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($method, $code = 0, Exception $previous = null)
+    {
+        parent::__construct("Method $method does not exist.", $code, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownSetterException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownSetterException.php
new file mode 100644
index 0000000..5020369
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownSetterException.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use Exception;
+use InvalidArgumentException as BaseInvalidArgumentException;
+
+class UnknownSetterException extends BaseInvalidArgumentException implements BadMethodCallException
+{
+    /**
+     * Constructor.
+     *
+     * @param string         $name     setter name
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($name, $code = 0, Exception $previous = null)
+    {
+        parent::__construct("Unknown setter '$name'", $code, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownUnitException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownUnitException.php
new file mode 100644
index 0000000..d2f76ee
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/UnknownUnitException.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use Exception;
+
+class UnknownUnitException extends UnitException
+{
+    /**
+     * Constructor.
+     *
+     * @param string         $unit
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($unit, $code = 0, Exception $previous = null)
+    {
+        parent::__construct("Unknown unit '$unit'.", $code, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/UnreachableException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/UnreachableException.php
new file mode 100644
index 0000000..b38ae12
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Exceptions/UnreachableException.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Exceptions;
+
+use Exception;
+use RuntimeException as BaseRuntimeException;
+
+class UnreachableException extends BaseRuntimeException implements RuntimeException
+{
+    /**
+     * Constructor.
+     *
+     * @param string         $message
+     * @param int            $code
+     * @param Exception|null $previous
+     */
+    public function __construct($message, $code = 0, Exception $previous = null)
+    {
+        parent::__construct($message, $code, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Factory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Factory.php
new file mode 100644
index 0000000..e1d747f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Factory.php
@@ -0,0 +1,304 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon;
+
+use Closure;
+use ReflectionMethod;
+
+/**
+ * A factory to generate Carbon instances with common settings.
+ *
+ * <autodoc generated by `composer phpdoc`>
+ *
+ * @method bool                                               canBeCreatedFromFormat($date, $format)                                                                                             Checks if the (date)time string is in a given format and valid to create a
+ *                                                                                                                                                                                               new instance.
+ * @method Carbon|false                                       create($year = 0, $month = 1, $day = 1, $hour = 0, $minute = 0, $second = 0, $tz = null)                                           Create a new Carbon instance from a specific date and time.
+ *                                                                                                                                                                                               If any of $year, $month or $day are set to null their now() values will
+ *                                                                                                                                                                                               be used.
+ *                                                                                                                                                                                               If $hour is null it will be set to its now() value and the default
+ *                                                                                                                                                                                               values for $minute and $second will be their now() values.
+ *                                                                                                                                                                                               If $hour is not null then the default values for $minute and $second
+ *                                                                                                                                                                                               will be 0.
+ * @method Carbon                                             createFromDate($year = null, $month = null, $day = null, $tz = null)                                                               Create a Carbon instance from just a date. The time portion is set to now.
+ * @method Carbon|false                                       createFromFormat($format, $time, $tz = null)                                                                                       Create a Carbon instance from a specific format.
+ * @method Carbon|false                                       createFromIsoFormat($format, $time, $tz = null, $locale = 'en', $translator = null)                                                Create a Carbon instance from a specific ISO format (same replacements as ->isoFormat()).
+ * @method Carbon|false                                       createFromLocaleFormat($format, $locale, $time, $tz = null)                                                                        Create a Carbon instance from a specific format and a string in a given language.
+ * @method Carbon|false                                       createFromLocaleIsoFormat($format, $locale, $time, $tz = null)                                                                     Create a Carbon instance from a specific ISO format and a string in a given language.
+ * @method Carbon                                             createFromTime($hour = 0, $minute = 0, $second = 0, $tz = null)                                                                    Create a Carbon instance from just a time. The date portion is set to today.
+ * @method Carbon                                             createFromTimeString($time, $tz = null)                                                                                            Create a Carbon instance from a time string. The date portion is set to today.
+ * @method Carbon                                             createFromTimestamp($timestamp, $tz = null)                                                                                        Create a Carbon instance from a timestamp and set the timezone (use default one if not specified).
+ *                                                                                                                                                                                               Timestamp input can be given as int, float or a string containing one or more numbers.
+ * @method Carbon                                             createFromTimestampMs($timestamp, $tz = null)                                                                                      Create a Carbon instance from a timestamp in milliseconds.
+ *                                                                                                                                                                                               Timestamp input can be given as int, float or a string containing one or more numbers.
+ * @method Carbon                                             createFromTimestampMsUTC($timestamp)                                                                                               Create a Carbon instance from a timestamp in milliseconds.
+ *                                                                                                                                                                                               Timestamp input can be given as int, float or a string containing one or more numbers.
+ * @method Carbon                                             createFromTimestampUTC($timestamp)                                                                                                 Create a Carbon instance from an timestamp keeping the timezone to UTC.
+ *                                                                                                                                                                                               Timestamp input can be given as int, float or a string containing one or more numbers.
+ * @method Carbon                                             createMidnightDate($year = null, $month = null, $day = null, $tz = null)                                                           Create a Carbon instance from just a date. The time portion is set to midnight.
+ * @method Carbon|false                                       createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null)                     Create a new safe Carbon instance from a specific date and time.
+ *                                                                                                                                                                                               If any of $year, $month or $day are set to null their now() values will
+ *                                                                                                                                                                                               be used.
+ *                                                                                                                                                                                               If $hour is null it will be set to its now() value and the default
+ *                                                                                                                                                                                               values for $minute and $second will be their now() values.
+ *                                                                                                                                                                                               If $hour is not null then the default values for $minute and $second
+ *                                                                                                                                                                                               will be 0.
+ *                                                                                                                                                                                               If one of the set values is not valid, an InvalidDateException
+ *                                                                                                                                                                                               will be thrown.
+ * @method CarbonInterface                                    createStrict(?int $year = 0, ?int $month = 1, ?int $day = 1, ?int $hour = 0, ?int $minute = 0, ?int $second = 0, $tz = null)       Create a new Carbon instance from a specific date and time using strict validation.
+ * @method Carbon                                             disableHumanDiffOption($humanDiffOption)                                                                                           @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather use the ->settings() method.
+ * @method Carbon                                             enableHumanDiffOption($humanDiffOption)                                                                                            @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather use the ->settings() method.
+ * @method mixed                                              executeWithLocale($locale, $func)                                                                                                  Set the current locale to the given, execute the passed function, reset the locale to previous one,
+ *                                                                                                                                                                                               then return the result of the closure (or null if the closure was void).
+ * @method Carbon                                             fromSerialized($value)                                                                                                             Create an instance from a serialized string.
+ * @method void                                               genericMacro($macro, $priority = 0)                                                                                                Register a custom macro.
+ * @method array                                              getAvailableLocales()                                                                                                              Returns the list of internally available locales and already loaded custom locales.
+ *                                                                                                                                                                                               (It will ignore custom translator dynamic loading.)
+ * @method Language[]                                         getAvailableLocalesInfo()                                                                                                          Returns list of Language object for each available locale. This object allow you to get the ISO name, native
+ *                                                                                                                                                                                               name, region and variant of the locale.
+ * @method array                                              getDays()                                                                                                                          Get the days of the week
+ * @method string|null                                        getFallbackLocale()                                                                                                                Get the fallback locale.
+ * @method array                                              getFormatsToIsoReplacements()                                                                                                      List of replacements from date() format to isoFormat().
+ * @method int                                                getHumanDiffOptions()                                                                                                              Return default humanDiff() options (merged flags as integer).
+ * @method array                                              getIsoUnits()                                                                                                                      Returns list of locale units for ISO formatting.
+ * @method Carbon                                             getLastErrors()                                                                                                                    {@inheritdoc}
+ * @method string                                             getLocale()                                                                                                                        Get the current translator locale.
+ * @method callable|null                                      getMacro($name)                                                                                                                    Get the raw callable macro registered globally for a given name.
+ * @method int                                                getMidDayAt()                                                                                                                      get midday/noon hour
+ * @method Closure|Carbon                                     getTestNow()                                                                                                                       Get the Carbon instance (real or mock) to be returned when a "now"
+ *                                                                                                                                                                                               instance is created.
+ * @method string                                             getTimeFormatByPrecision($unitPrecision)                                                                                           Return a format from H:i to H:i:s.u according to given unit precision.
+ * @method string                                             getTranslationMessageWith($translator, string $key, ?string $locale = null, ?string $default = null)                               Returns raw translation message for a given key.
+ * @method \Symfony\Component\Translation\TranslatorInterface getTranslator()                                                                                                                    Get the default translator instance in use.
+ * @method int                                                getWeekEndsAt()                                                                                                                    Get the last day of week
+ * @method int                                                getWeekStartsAt()                                                                                                                  Get the first day of week
+ * @method array                                              getWeekendDays()                                                                                                                   Get weekend days
+ * @method bool                                               hasFormat($date, $format)                                                                                                          Checks if the (date)time string is in a given format.
+ * @method bool                                               hasFormatWithModifiers($date, $format)                                                                                             Checks if the (date)time string is in a given format.
+ * @method bool                                               hasMacro($name)                                                                                                                    Checks if macro is registered globally.
+ * @method bool                                               hasRelativeKeywords($time)                                                                                                         Determine if a time string will produce a relative date.
+ * @method bool                                               hasTestNow()                                                                                                                       Determine if there is a valid test instance set. A valid test instance
+ *                                                                                                                                                                                               is anything that is not null.
+ * @method Carbon                                             instance($date)                                                                                                                    Create a Carbon instance from a DateTime one.
+ * @method bool                                               isImmutable()                                                                                                                      Returns true if the current class/instance is immutable.
+ * @method bool                                               isModifiableUnit($unit)                                                                                                            Returns true if a property can be changed via setter.
+ * @method bool                                               isMutable()                                                                                                                        Returns true if the current class/instance is mutable.
+ * @method bool                                               isStrictModeEnabled()                                                                                                              Returns true if the strict mode is globally in use, false else.
+ *                                                                                                                                                                                               (It can be overridden in specific instances.)
+ * @method bool                                               localeHasDiffOneDayWords($locale)                                                                                                  Returns true if the given locale is internally supported and has words for 1-day diff (just now, yesterday, tomorrow).
+ *                                                                                                                                                                                               Support is considered enabled if the 3 words are translated in the given locale.
+ * @method bool                                               localeHasDiffSyntax($locale)                                                                                                       Returns true if the given locale is internally supported and has diff syntax support (ago, from now, before, after).
+ *                                                                                                                                                                                               Support is considered enabled if the 4 sentences are translated in the given locale.
+ * @method bool                                               localeHasDiffTwoDayWords($locale)                                                                                                  Returns true if the given locale is internally supported and has words for 2-days diff (before yesterday, after tomorrow).
+ *                                                                                                                                                                                               Support is considered enabled if the 2 words are translated in the given locale.
+ * @method bool                                               localeHasPeriodSyntax($locale)                                                                                                     Returns true if the given locale is internally supported and has period syntax support (X times, every X, from X, to X).
+ *                                                                                                                                                                                               Support is considered enabled if the 4 sentences are translated in the given locale.
+ * @method bool                                               localeHasShortUnits($locale)                                                                                                       Returns true if the given locale is internally supported and has short-units support.
+ *                                                                                                                                                                                               Support is considered enabled if either year, day or hour has a short variant translated.
+ * @method void                                               macro($name, $macro)                                                                                                               Register a custom macro.
+ * @method Carbon|null                                        make($var)                                                                                                                         Make a Carbon instance from given variable if possible.
+ *                                                                                                                                                                                               Always return a new instance. Parse only strings and only these likely to be dates (skip intervals
+ *                                                                                                                                                                                               and recurrences). Throw an exception for invalid format, but otherwise return null.
+ * @method Carbon                                             maxValue()                                                                                                                         Create a Carbon instance for the greatest supported date.
+ * @method Carbon                                             minValue()                                                                                                                         Create a Carbon instance for the lowest supported date.
+ * @method void                                               mixin($mixin)                                                                                                                      Mix another object into the class.
+ * @method Carbon                                             now($tz = null)                                                                                                                    Get a Carbon instance for the current date and time.
+ * @method Carbon                                             parse($time = null, $tz = null)                                                                                                    Create a carbon instance from a string.
+ *                                                                                                                                                                                               This is an alias for the constructor that allows better fluent syntax
+ *                                                                                                                                                                                               as it allows you to do Carbon::parse('Monday next week')->fn() rather
+ *                                                                                                                                                                                               than (new Carbon('Monday next week'))->fn().
+ * @method Carbon                                             parseFromLocale($time, $locale = null, $tz = null)                                                                                 Create a carbon instance from a localized string (in French, Japanese, Arabic, etc.).
+ * @method string                                             pluralUnit(string $unit)                                                                                                           Returns standardized plural of a given singular/plural unit name (in English).
+ * @method Carbon|false                                       rawCreateFromFormat($format, $time, $tz = null)                                                                                    Create a Carbon instance from a specific format.
+ * @method Carbon                                             rawParse($time = null, $tz = null)                                                                                                 Create a carbon instance from a string.
+ *                                                                                                                                                                                               This is an alias for the constructor that allows better fluent syntax
+ *                                                                                                                                                                                               as it allows you to do Carbon::parse('Monday next week')->fn() rather
+ *                                                                                                                                                                                               than (new Carbon('Monday next week'))->fn().
+ * @method Carbon                                             resetMacros()                                                                                                                      Remove all macros and generic macros.
+ * @method void                                               resetMonthsOverflow()                                                                                                              @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather use the ->settings() method.
+ *                                                                                                                                                                                                           Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants
+ *                                                                                                                                                                                                           are available for quarters, years, decade, centuries, millennia (singular and plural forms).
+ * @method void                                               resetToStringFormat()                                                                                                              Reset the format used to the default when type juggling a Carbon instance to a string
+ * @method void                                               resetYearsOverflow()                                                                                                               @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather use the ->settings() method.
+ *                                                                                                                                                                                                           Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants
+ *                                                                                                                                                                                                           are available for quarters, years, decade, centuries, millennia (singular and plural forms).
+ * @method void                                               serializeUsing($callback)                                                                                                          @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather transform Carbon object before the serialization.
+ *                                                                                                                                                                                               JSON serialize all Carbon instances using the given callback.
+ * @method Carbon                                             setFallbackLocale($locale)                                                                                                         Set the fallback locale.
+ * @method Carbon                                             setHumanDiffOptions($humanDiffOptions)                                                                                             @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather use the ->settings() method.
+ * @method bool                                               setLocale($locale)                                                                                                                 Set the current translator locale and indicate if the source locale file exists.
+ *                                                                                                                                                                                               Pass 'auto' as locale to use closest language from the current LC_TIME locale.
+ * @method void                                               setMidDayAt($hour)                                                                                                                 @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather consider mid-day is always 12pm, then if you need to test if it's an other
+ *                                                                                                                                                                                                           hour, test it explicitly:
+ *                                                                                                                                                                                                               $date->format('G') == 13
+ *                                                                                                                                                                                                           or to set explicitly to a given hour:
+ *                                                                                                                                                                                                               $date->setTime(13, 0, 0, 0)
+ *                                                                                                                                                                                               Set midday/noon hour
+ * @method Carbon                                             setTestNow($testNow = null)                                                                                                        Set a Carbon instance (real or mock) to be returned when a "now"
+ *                                                                                                                                                                                               instance is created.  The provided instance will be returned
+ *                                                                                                                                                                                               specifically under the following conditions:
+ *                                                                                                                                                                                                 - A call to the static now() method, ex. Carbon::now()
+ *                                                                                                                                                                                                 - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null)
+ *                                                                                                                                                                                                 - When the string "now" is passed to the constructor or parse(), ex. new Carbon('now')
+ *                                                                                                                                                                                                 - When a string containing the desired time is passed to Carbon::parse().
+ *                                                                                                                                                                                               Note the timezone parameter was left out of the examples above and
+ *                                                                                                                                                                                               has no affect as the mock value will be returned regardless of its value.
+ *                                                                                                                                                                                               To clear the test instance call this method using the default
+ *                                                                                                                                                                                               parameter of null.
+ *                                                                                                                                                                                               /!\ Use this method for unit tests only.
+ * @method void                                               setToStringFormat($format)                                                                                                         @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather let Carbon object being casted to string with DEFAULT_TO_STRING_FORMAT, and
+ *                                                                                                                                                                                                           use other method or custom format passed to format() method if you need to dump an other string
+ *                                                                                                                                                                                                           format.
+ *                                                                                                                                                                                               Set the default format used when type juggling a Carbon instance to a string
+ * @method void                                               setTranslator(\Symfony\Component\Translation\TranslatorInterface $translator)                                                      Set the default translator instance to use.
+ * @method Carbon                                             setUtf8($utf8)                                                                                                                     @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather use UTF-8 language packages on every machine.
+ *                                                                                                                                                                                               Set if UTF8 will be used for localized date/time.
+ * @method void                                               setWeekEndsAt($day)                                                                                                                @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           Use $weekStartsAt optional parameter instead when using startOfWeek, floorWeek, ceilWeek
+ *                                                                                                                                                                                                           or roundWeek method. You can also use the 'first_day_of_week' locale setting to change the
+ *                                                                                                                                                                                                           start of week according to current locale selected and implicitly the end of week.
+ *                                                                                                                                                                                               Set the last day of week
+ * @method void                                               setWeekStartsAt($day)                                                                                                              @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           Use $weekEndsAt optional parameter instead when using endOfWeek method. You can also use the
+ *                                                                                                                                                                                                           'first_day_of_week' locale setting to change the start of week according to current locale
+ *                                                                                                                                                                                                           selected and implicitly the end of week.
+ *                                                                                                                                                                                               Set the first day of week
+ * @method void                                               setWeekendDays($days)                                                                                                              @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather consider week-end is always saturday and sunday, and if you have some custom
+ *                                                                                                                                                                                                           week-end days to handle, give to those days an other name and create a macro for them:
+ *                                                                                                                                                                                                           ```
+ *                                                                                                                                                                                                           Carbon::macro('isDayOff', function ($date) {
+ *                                                                                                                                                                                                               return $date->isSunday() || $date->isMonday();
+ *                                                                                                                                                                                                           });
+ *                                                                                                                                                                                                           Carbon::macro('isNotDayOff', function ($date) {
+ *                                                                                                                                                                                                               return !$date->isDayOff();
+ *                                                                                                                                                                                                           });
+ *                                                                                                                                                                                                           if ($someDate->isDayOff()) ...
+ *                                                                                                                                                                                                           if ($someDate->isNotDayOff()) ...
+ *                                                                                                                                                                                                           // Add 5 not-off days
+ *                                                                                                                                                                                                           $count = 5;
+ *                                                                                                                                                                                                           while ($someDate->isDayOff() || ($count-- > 0)) {
+ *                                                                                                                                                                                                               $someDate->addDay();
+ *                                                                                                                                                                                                           }
+ *                                                                                                                                                                                                           ```
+ *                                                                                                                                                                                               Set weekend days
+ * @method bool                                               shouldOverflowMonths()                                                                                                             Get the month overflow global behavior (can be overridden in specific instances).
+ * @method bool                                               shouldOverflowYears()                                                                                                              Get the month overflow global behavior (can be overridden in specific instances).
+ * @method string                                             singularUnit(string $unit)                                                                                                         Returns standardized singular of a given singular/plural unit name (in English).
+ * @method Carbon                                             today($tz = null)                                                                                                                  Create a Carbon instance for today.
+ * @method Carbon                                             tomorrow($tz = null)                                                                                                               Create a Carbon instance for tomorrow.
+ * @method string                                             translateTimeString($timeString, $from = null, $to = null, $mode = CarbonInterface::TRANSLATE_ALL)                                 Translate a time string from a locale to an other.
+ * @method string                                             translateWith(\Symfony\Component\Translation\TranslatorInterface $translator, string $key, array $parameters = [], $number = null) Translate using translation string or callback available.
+ * @method void                                               useMonthsOverflow($monthsOverflow = true)                                                                                          @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather use the ->settings() method.
+ *                                                                                                                                                                                                           Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants
+ *                                                                                                                                                                                                           are available for quarters, years, decade, centuries, millennia (singular and plural forms).
+ * @method Carbon                                             useStrictMode($strictModeEnabled = true)                                                                                           @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather use the ->settings() method.
+ * @method void                                               useYearsOverflow($yearsOverflow = true)                                                                                            @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather use the ->settings() method.
+ *                                                                                                                                                                                                           Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants
+ *                                                                                                                                                                                                           are available for quarters, years, decade, centuries, millennia (singular and plural forms).
+ * @method mixed                                              withTestNow($testNow = null, $callback = null)                                                                                     Temporarily sets a static date to be used within the callback.
+ *                                                                                                                                                                                               Using setTestNow to set the date, executing the callback, then
+ *                                                                                                                                                                                               clearing the test instance.
+ *                                                                                                                                                                                               /!\ Use this method for unit tests only.
+ * @method Carbon                                             yesterday($tz = null)                                                                                                              Create a Carbon instance for yesterday.
+ *
+ * </autodoc>
+ */
+class Factory
+{
+    protected $className = Carbon::class;
+
+    protected $settings = [];
+
+    public function __construct(array $settings = [], ?string $className = null)
+    {
+        if ($className) {
+            $this->className = $className;
+        }
+
+        $this->settings = $settings;
+    }
+
+    public function getClassName()
+    {
+        return $this->className;
+    }
+
+    public function setClassName(string $className)
+    {
+        $this->className = $className;
+
+        return $this;
+    }
+
+    public function className(string $className = null)
+    {
+        return $className === null ? $this->getClassName() : $this->setClassName($className);
+    }
+
+    public function getSettings()
+    {
+        return $this->settings;
+    }
+
+    public function setSettings(array $settings)
+    {
+        $this->settings = $settings;
+
+        return $this;
+    }
+
+    public function settings(array $settings = null)
+    {
+        return $settings === null ? $this->getSettings() : $this->setSettings($settings);
+    }
+
+    public function mergeSettings(array $settings)
+    {
+        $this->settings = array_merge($this->settings, $settings);
+
+        return $this;
+    }
+
+    public function __call($name, $arguments)
+    {
+        $method = new ReflectionMethod($this->className, $name);
+        $settings = $this->settings;
+
+        if ($settings && isset($settings['timezone'])) {
+            $tzParameters = array_filter($method->getParameters(), function ($parameter) {
+                return \in_array($parameter->getName(), ['tz', 'timezone'], true);
+            });
+
+            if (\count($tzParameters)) {
+                array_splice($arguments, key($tzParameters), 0, [$settings['timezone']]);
+                unset($settings['timezone']);
+            }
+        }
+
+        $result = $this->className::$name(...$arguments);
+
+        return $result instanceof CarbonInterface && !empty($settings)
+            ? $result->settings($settings)
+            : $result;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/FactoryImmutable.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/FactoryImmutable.php
new file mode 100644
index 0000000..3aa286c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/FactoryImmutable.php
@@ -0,0 +1,228 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon;
+
+use Closure;
+
+/**
+ * A factory to generate CarbonImmutable instances with common settings.
+ *
+ * <autodoc generated by `composer phpdoc`>
+ *
+ * @method bool                                               canBeCreatedFromFormat($date, $format)                                                                                             Checks if the (date)time string is in a given format and valid to create a
+ *                                                                                                                                                                                               new instance.
+ * @method CarbonImmutable|false                              create($year = 0, $month = 1, $day = 1, $hour = 0, $minute = 0, $second = 0, $tz = null)                                           Create a new Carbon instance from a specific date and time.
+ *                                                                                                                                                                                               If any of $year, $month or $day are set to null their now() values will
+ *                                                                                                                                                                                               be used.
+ *                                                                                                                                                                                               If $hour is null it will be set to its now() value and the default
+ *                                                                                                                                                                                               values for $minute and $second will be their now() values.
+ *                                                                                                                                                                                               If $hour is not null then the default values for $minute and $second
+ *                                                                                                                                                                                               will be 0.
+ * @method CarbonImmutable                                    createFromDate($year = null, $month = null, $day = null, $tz = null)                                                               Create a Carbon instance from just a date. The time portion is set to now.
+ * @method CarbonImmutable|false                              createFromFormat($format, $time, $tz = null)                                                                                       Create a Carbon instance from a specific format.
+ * @method CarbonImmutable|false                              createFromIsoFormat($format, $time, $tz = null, $locale = 'en', $translator = null)                                                Create a Carbon instance from a specific ISO format (same replacements as ->isoFormat()).
+ * @method CarbonImmutable|false                              createFromLocaleFormat($format, $locale, $time, $tz = null)                                                                        Create a Carbon instance from a specific format and a string in a given language.
+ * @method CarbonImmutable|false                              createFromLocaleIsoFormat($format, $locale, $time, $tz = null)                                                                     Create a Carbon instance from a specific ISO format and a string in a given language.
+ * @method CarbonImmutable                                    createFromTime($hour = 0, $minute = 0, $second = 0, $tz = null)                                                                    Create a Carbon instance from just a time. The date portion is set to today.
+ * @method CarbonImmutable                                    createFromTimeString($time, $tz = null)                                                                                            Create a Carbon instance from a time string. The date portion is set to today.
+ * @method CarbonImmutable                                    createFromTimestamp($timestamp, $tz = null)                                                                                        Create a Carbon instance from a timestamp and set the timezone (use default one if not specified).
+ *                                                                                                                                                                                               Timestamp input can be given as int, float or a string containing one or more numbers.
+ * @method CarbonImmutable                                    createFromTimestampMs($timestamp, $tz = null)                                                                                      Create a Carbon instance from a timestamp in milliseconds.
+ *                                                                                                                                                                                               Timestamp input can be given as int, float or a string containing one or more numbers.
+ * @method CarbonImmutable                                    createFromTimestampMsUTC($timestamp)                                                                                               Create a Carbon instance from a timestamp in milliseconds.
+ *                                                                                                                                                                                               Timestamp input can be given as int, float or a string containing one or more numbers.
+ * @method CarbonImmutable                                    createFromTimestampUTC($timestamp)                                                                                                 Create a Carbon instance from an timestamp keeping the timezone to UTC.
+ *                                                                                                                                                                                               Timestamp input can be given as int, float or a string containing one or more numbers.
+ * @method CarbonImmutable                                    createMidnightDate($year = null, $month = null, $day = null, $tz = null)                                                           Create a Carbon instance from just a date. The time portion is set to midnight.
+ * @method CarbonImmutable|false                              createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null)                     Create a new safe Carbon instance from a specific date and time.
+ *                                                                                                                                                                                               If any of $year, $month or $day are set to null their now() values will
+ *                                                                                                                                                                                               be used.
+ *                                                                                                                                                                                               If $hour is null it will be set to its now() value and the default
+ *                                                                                                                                                                                               values for $minute and $second will be their now() values.
+ *                                                                                                                                                                                               If $hour is not null then the default values for $minute and $second
+ *                                                                                                                                                                                               will be 0.
+ *                                                                                                                                                                                               If one of the set values is not valid, an InvalidDateException
+ *                                                                                                                                                                                               will be thrown.
+ * @method CarbonInterface                                    createStrict(?int $year = 0, ?int $month = 1, ?int $day = 1, ?int $hour = 0, ?int $minute = 0, ?int $second = 0, $tz = null)       Create a new Carbon instance from a specific date and time using strict validation.
+ * @method CarbonImmutable                                    disableHumanDiffOption($humanDiffOption)                                                                                           @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather use the ->settings() method.
+ * @method CarbonImmutable                                    enableHumanDiffOption($humanDiffOption)                                                                                            @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather use the ->settings() method.
+ * @method mixed                                              executeWithLocale($locale, $func)                                                                                                  Set the current locale to the given, execute the passed function, reset the locale to previous one,
+ *                                                                                                                                                                                               then return the result of the closure (or null if the closure was void).
+ * @method CarbonImmutable                                    fromSerialized($value)                                                                                                             Create an instance from a serialized string.
+ * @method void                                               genericMacro($macro, $priority = 0)                                                                                                Register a custom macro.
+ * @method array                                              getAvailableLocales()                                                                                                              Returns the list of internally available locales and already loaded custom locales.
+ *                                                                                                                                                                                               (It will ignore custom translator dynamic loading.)
+ * @method Language[]                                         getAvailableLocalesInfo()                                                                                                          Returns list of Language object for each available locale. This object allow you to get the ISO name, native
+ *                                                                                                                                                                                               name, region and variant of the locale.
+ * @method array                                              getDays()                                                                                                                          Get the days of the week
+ * @method string|null                                        getFallbackLocale()                                                                                                                Get the fallback locale.
+ * @method array                                              getFormatsToIsoReplacements()                                                                                                      List of replacements from date() format to isoFormat().
+ * @method int                                                getHumanDiffOptions()                                                                                                              Return default humanDiff() options (merged flags as integer).
+ * @method array                                              getIsoUnits()                                                                                                                      Returns list of locale units for ISO formatting.
+ * @method CarbonImmutable                                    getLastErrors()                                                                                                                    {@inheritdoc}
+ * @method string                                             getLocale()                                                                                                                        Get the current translator locale.
+ * @method callable|null                                      getMacro($name)                                                                                                                    Get the raw callable macro registered globally for a given name.
+ * @method int                                                getMidDayAt()                                                                                                                      get midday/noon hour
+ * @method Closure|CarbonImmutable                            getTestNow()                                                                                                                       Get the Carbon instance (real or mock) to be returned when a "now"
+ *                                                                                                                                                                                               instance is created.
+ * @method string                                             getTimeFormatByPrecision($unitPrecision)                                                                                           Return a format from H:i to H:i:s.u according to given unit precision.
+ * @method string                                             getTranslationMessageWith($translator, string $key, ?string $locale = null, ?string $default = null)                               Returns raw translation message for a given key.
+ * @method \Symfony\Component\Translation\TranslatorInterface getTranslator()                                                                                                                    Get the default translator instance in use.
+ * @method int                                                getWeekEndsAt()                                                                                                                    Get the last day of week
+ * @method int                                                getWeekStartsAt()                                                                                                                  Get the first day of week
+ * @method array                                              getWeekendDays()                                                                                                                   Get weekend days
+ * @method bool                                               hasFormat($date, $format)                                                                                                          Checks if the (date)time string is in a given format.
+ * @method bool                                               hasFormatWithModifiers($date, $format)                                                                                             Checks if the (date)time string is in a given format.
+ * @method bool                                               hasMacro($name)                                                                                                                    Checks if macro is registered globally.
+ * @method bool                                               hasRelativeKeywords($time)                                                                                                         Determine if a time string will produce a relative date.
+ * @method bool                                               hasTestNow()                                                                                                                       Determine if there is a valid test instance set. A valid test instance
+ *                                                                                                                                                                                               is anything that is not null.
+ * @method CarbonImmutable                                    instance($date)                                                                                                                    Create a Carbon instance from a DateTime one.
+ * @method bool                                               isImmutable()                                                                                                                      Returns true if the current class/instance is immutable.
+ * @method bool                                               isModifiableUnit($unit)                                                                                                            Returns true if a property can be changed via setter.
+ * @method bool                                               isMutable()                                                                                                                        Returns true if the current class/instance is mutable.
+ * @method bool                                               isStrictModeEnabled()                                                                                                              Returns true if the strict mode is globally in use, false else.
+ *                                                                                                                                                                                               (It can be overridden in specific instances.)
+ * @method bool                                               localeHasDiffOneDayWords($locale)                                                                                                  Returns true if the given locale is internally supported and has words for 1-day diff (just now, yesterday, tomorrow).
+ *                                                                                                                                                                                               Support is considered enabled if the 3 words are translated in the given locale.
+ * @method bool                                               localeHasDiffSyntax($locale)                                                                                                       Returns true if the given locale is internally supported and has diff syntax support (ago, from now, before, after).
+ *                                                                                                                                                                                               Support is considered enabled if the 4 sentences are translated in the given locale.
+ * @method bool                                               localeHasDiffTwoDayWords($locale)                                                                                                  Returns true if the given locale is internally supported and has words for 2-days diff (before yesterday, after tomorrow).
+ *                                                                                                                                                                                               Support is considered enabled if the 2 words are translated in the given locale.
+ * @method bool                                               localeHasPeriodSyntax($locale)                                                                                                     Returns true if the given locale is internally supported and has period syntax support (X times, every X, from X, to X).
+ *                                                                                                                                                                                               Support is considered enabled if the 4 sentences are translated in the given locale.
+ * @method bool                                               localeHasShortUnits($locale)                                                                                                       Returns true if the given locale is internally supported and has short-units support.
+ *                                                                                                                                                                                               Support is considered enabled if either year, day or hour has a short variant translated.
+ * @method void                                               macro($name, $macro)                                                                                                               Register a custom macro.
+ * @method CarbonImmutable|null                               make($var)                                                                                                                         Make a Carbon instance from given variable if possible.
+ *                                                                                                                                                                                               Always return a new instance. Parse only strings and only these likely to be dates (skip intervals
+ *                                                                                                                                                                                               and recurrences). Throw an exception for invalid format, but otherwise return null.
+ * @method CarbonImmutable                                    maxValue()                                                                                                                         Create a Carbon instance for the greatest supported date.
+ * @method CarbonImmutable                                    minValue()                                                                                                                         Create a Carbon instance for the lowest supported date.
+ * @method void                                               mixin($mixin)                                                                                                                      Mix another object into the class.
+ * @method CarbonImmutable                                    now($tz = null)                                                                                                                    Get a Carbon instance for the current date and time.
+ * @method CarbonImmutable                                    parse($time = null, $tz = null)                                                                                                    Create a carbon instance from a string.
+ *                                                                                                                                                                                               This is an alias for the constructor that allows better fluent syntax
+ *                                                                                                                                                                                               as it allows you to do Carbon::parse('Monday next week')->fn() rather
+ *                                                                                                                                                                                               than (new Carbon('Monday next week'))->fn().
+ * @method CarbonImmutable                                    parseFromLocale($time, $locale = null, $tz = null)                                                                                 Create a carbon instance from a localized string (in French, Japanese, Arabic, etc.).
+ * @method string                                             pluralUnit(string $unit)                                                                                                           Returns standardized plural of a given singular/plural unit name (in English).
+ * @method CarbonImmutable|false                              rawCreateFromFormat($format, $time, $tz = null)                                                                                    Create a Carbon instance from a specific format.
+ * @method CarbonImmutable                                    rawParse($time = null, $tz = null)                                                                                                 Create a carbon instance from a string.
+ *                                                                                                                                                                                               This is an alias for the constructor that allows better fluent syntax
+ *                                                                                                                                                                                               as it allows you to do Carbon::parse('Monday next week')->fn() rather
+ *                                                                                                                                                                                               than (new Carbon('Monday next week'))->fn().
+ * @method CarbonImmutable                                    resetMacros()                                                                                                                      Remove all macros and generic macros.
+ * @method void                                               resetMonthsOverflow()                                                                                                              @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather use the ->settings() method.
+ *                                                                                                                                                                                                           Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants
+ *                                                                                                                                                                                                           are available for quarters, years, decade, centuries, millennia (singular and plural forms).
+ * @method void                                               resetToStringFormat()                                                                                                              Reset the format used to the default when type juggling a Carbon instance to a string
+ * @method void                                               resetYearsOverflow()                                                                                                               @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather use the ->settings() method.
+ *                                                                                                                                                                                                           Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants
+ *                                                                                                                                                                                                           are available for quarters, years, decade, centuries, millennia (singular and plural forms).
+ * @method void                                               serializeUsing($callback)                                                                                                          @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather transform Carbon object before the serialization.
+ *                                                                                                                                                                                               JSON serialize all Carbon instances using the given callback.
+ * @method CarbonImmutable                                    setFallbackLocale($locale)                                                                                                         Set the fallback locale.
+ * @method CarbonImmutable                                    setHumanDiffOptions($humanDiffOptions)                                                                                             @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather use the ->settings() method.
+ * @method bool                                               setLocale($locale)                                                                                                                 Set the current translator locale and indicate if the source locale file exists.
+ *                                                                                                                                                                                               Pass 'auto' as locale to use closest language from the current LC_TIME locale.
+ * @method void                                               setMidDayAt($hour)                                                                                                                 @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather consider mid-day is always 12pm, then if you need to test if it's an other
+ *                                                                                                                                                                                                           hour, test it explicitly:
+ *                                                                                                                                                                                                               $date->format('G') == 13
+ *                                                                                                                                                                                                           or to set explicitly to a given hour:
+ *                                                                                                                                                                                                               $date->setTime(13, 0, 0, 0)
+ *                                                                                                                                                                                               Set midday/noon hour
+ * @method CarbonImmutable                                    setTestNow($testNow = null)                                                                                                        Set a Carbon instance (real or mock) to be returned when a "now"
+ *                                                                                                                                                                                               instance is created.  The provided instance will be returned
+ *                                                                                                                                                                                               specifically under the following conditions:
+ *                                                                                                                                                                                                 - A call to the static now() method, ex. Carbon::now()
+ *                                                                                                                                                                                                 - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null)
+ *                                                                                                                                                                                                 - When the string "now" is passed to the constructor or parse(), ex. new Carbon('now')
+ *                                                                                                                                                                                                 - When a string containing the desired time is passed to Carbon::parse().
+ *                                                                                                                                                                                               Note the timezone parameter was left out of the examples above and
+ *                                                                                                                                                                                               has no affect as the mock value will be returned regardless of its value.
+ *                                                                                                                                                                                               To clear the test instance call this method using the default
+ *                                                                                                                                                                                               parameter of null.
+ *                                                                                                                                                                                               /!\ Use this method for unit tests only.
+ * @method void                                               setToStringFormat($format)                                                                                                         @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather let Carbon object being casted to string with DEFAULT_TO_STRING_FORMAT, and
+ *                                                                                                                                                                                                           use other method or custom format passed to format() method if you need to dump an other string
+ *                                                                                                                                                                                                           format.
+ *                                                                                                                                                                                               Set the default format used when type juggling a Carbon instance to a string
+ * @method void                                               setTranslator(\Symfony\Component\Translation\TranslatorInterface $translator)                                                      Set the default translator instance to use.
+ * @method CarbonImmutable                                    setUtf8($utf8)                                                                                                                     @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather use UTF-8 language packages on every machine.
+ *                                                                                                                                                                                               Set if UTF8 will be used for localized date/time.
+ * @method void                                               setWeekEndsAt($day)                                                                                                                @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           Use $weekStartsAt optional parameter instead when using startOfWeek, floorWeek, ceilWeek
+ *                                                                                                                                                                                                           or roundWeek method. You can also use the 'first_day_of_week' locale setting to change the
+ *                                                                                                                                                                                                           start of week according to current locale selected and implicitly the end of week.
+ *                                                                                                                                                                                               Set the last day of week
+ * @method void                                               setWeekStartsAt($day)                                                                                                              @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           Use $weekEndsAt optional parameter instead when using endOfWeek method. You can also use the
+ *                                                                                                                                                                                                           'first_day_of_week' locale setting to change the start of week according to current locale
+ *                                                                                                                                                                                                           selected and implicitly the end of week.
+ *                                                                                                                                                                                               Set the first day of week
+ * @method void                                               setWeekendDays($days)                                                                                                              @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather consider week-end is always saturday and sunday, and if you have some custom
+ *                                                                                                                                                                                                           week-end days to handle, give to those days an other name and create a macro for them:
+ *                                                                                                                                                                                                           ```
+ *                                                                                                                                                                                                           Carbon::macro('isDayOff', function ($date) {
+ *                                                                                                                                                                                                               return $date->isSunday() || $date->isMonday();
+ *                                                                                                                                                                                                           });
+ *                                                                                                                                                                                                           Carbon::macro('isNotDayOff', function ($date) {
+ *                                                                                                                                                                                                               return !$date->isDayOff();
+ *                                                                                                                                                                                                           });
+ *                                                                                                                                                                                                           if ($someDate->isDayOff()) ...
+ *                                                                                                                                                                                                           if ($someDate->isNotDayOff()) ...
+ *                                                                                                                                                                                                           // Add 5 not-off days
+ *                                                                                                                                                                                                           $count = 5;
+ *                                                                                                                                                                                                           while ($someDate->isDayOff() || ($count-- > 0)) {
+ *                                                                                                                                                                                                               $someDate->addDay();
+ *                                                                                                                                                                                                           }
+ *                                                                                                                                                                                                           ```
+ *                                                                                                                                                                                               Set weekend days
+ * @method bool                                               shouldOverflowMonths()                                                                                                             Get the month overflow global behavior (can be overridden in specific instances).
+ * @method bool                                               shouldOverflowYears()                                                                                                              Get the month overflow global behavior (can be overridden in specific instances).
+ * @method string                                             singularUnit(string $unit)                                                                                                         Returns standardized singular of a given singular/plural unit name (in English).
+ * @method CarbonImmutable                                    today($tz = null)                                                                                                                  Create a Carbon instance for today.
+ * @method CarbonImmutable                                    tomorrow($tz = null)                                                                                                               Create a Carbon instance for tomorrow.
+ * @method string                                             translateTimeString($timeString, $from = null, $to = null, $mode = CarbonInterface::TRANSLATE_ALL)                                 Translate a time string from a locale to an other.
+ * @method string                                             translateWith(\Symfony\Component\Translation\TranslatorInterface $translator, string $key, array $parameters = [], $number = null) Translate using translation string or callback available.
+ * @method void                                               useMonthsOverflow($monthsOverflow = true)                                                                                          @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather use the ->settings() method.
+ *                                                                                                                                                                                                           Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants
+ *                                                                                                                                                                                                           are available for quarters, years, decade, centuries, millennia (singular and plural forms).
+ * @method CarbonImmutable                                    useStrictMode($strictModeEnabled = true)                                                                                           @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather use the ->settings() method.
+ * @method void                                               useYearsOverflow($yearsOverflow = true)                                                                                            @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+ *                                                                                                                                                                                                           You should rather use the ->settings() method.
+ *                                                                                                                                                                                                           Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants
+ *                                                                                                                                                                                                           are available for quarters, years, decade, centuries, millennia (singular and plural forms).
+ * @method mixed                                              withTestNow($testNow = null, $callback = null)                                                                                     Temporarily sets a static date to be used within the callback.
+ *                                                                                                                                                                                               Using setTestNow to set the date, executing the callback, then
+ *                                                                                                                                                                                               clearing the test instance.
+ *                                                                                                                                                                                               /!\ Use this method for unit tests only.
+ * @method CarbonImmutable                                    yesterday($tz = null)                                                                                                              Create a Carbon instance for yesterday.
+ *
+ * </autodoc>
+ */
+class FactoryImmutable extends Factory
+{
+    protected $className = CarbonImmutable::class;
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/aa.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/aa.php
new file mode 100644
index 0000000..f3431e4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/aa.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/aa_DJ.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/aa_DJ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/aa_DJ.php
new file mode 100644
index 0000000..c6e23c0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/aa_DJ.php
@@ -0,0 +1,44 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ge'ez Frontier Foundation    locales@geez.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD.MM.YYYY',
+    ],
+    'months' => ['Qunxa Garablu', 'Kudo', 'Ciggilta Kudo', 'Agda Baxisso', 'Caxah Alsa', 'Qasa Dirri', 'Qado Dirri', 'Liiqen', 'Waysu', 'Diteli', 'Ximoli', 'Kaxxa Garablu'],
+    'months_short' => ['qun', 'nah', 'cig', 'agd', 'cax', 'qas', 'qad', 'leq', 'way', 'dit', 'xim', 'kax'],
+    'weekdays' => ['Acaada', 'Etleeni', 'Talaata', 'Arbaqa', 'Kamiisi', 'Gumqata', 'Sabti'],
+    'weekdays_short' => ['aca', 'etl', 'tal', 'arb', 'kam', 'gum', 'sab'],
+    'weekdays_min' => ['aca', 'etl', 'tal', 'arb', 'kam', 'gum', 'sab'],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['saaku', 'carra'],
+
+    'year' => ':count gaqambo', // less reliable
+    'y' => ':count gaqambo', // less reliable
+    'a_year' => ':count gaqambo', // less reliable
+
+    'month' => ':count àlsa',
+    'm' => ':count àlsa',
+    'a_month' => ':count àlsa',
+
+    'day' => ':count saaku', // less reliable
+    'd' => ':count saaku', // less reliable
+    'a_day' => ':count saaku', // less reliable
+
+    'hour' => ':count ayti', // less reliable
+    'h' => ':count ayti', // less reliable
+    'a_hour' => ':count ayti', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/aa_ER.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/aa_ER.php
new file mode 100644
index 0000000..f8f395b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/aa_ER.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ge'ez Frontier Foundation    locales@geez.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['Qunxa Garablu', 'Naharsi Kudo', 'Ciggilta Kudo', 'Agda Baxisso', 'Caxah Alsa', 'Qasa Dirri', 'Qado Dirri', 'Leqeeni', 'Waysu', 'Diteli', 'Ximoli', 'Kaxxa Garablu'],
+    'months_short' => ['Qun', 'Nah', 'Cig', 'Agd', 'Cax', 'Qas', 'Qad', 'Leq', 'Way', 'Dit', 'Xim', 'Kax'],
+    'weekdays' => ['Acaada', 'Etleeni', 'Talaata', 'Arbaqa', 'Kamiisi', 'Gumqata', 'Sabti'],
+    'weekdays_short' => ['Aca', 'Etl', 'Tal', 'Arb', 'Kam', 'Gum', 'Sab'],
+    'weekdays_min' => ['Aca', 'Etl', 'Tal', 'Arb', 'Kam', 'Gum', 'Sab'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['saaku', 'carra'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/aa_ER@saaho.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/aa_ER@saaho.php
new file mode 100644
index 0000000..6461225
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/aa_ER@saaho.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ge'ez Frontier Foundation    locales@geez.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['Qunxa Garablu', 'Naharsi Kudo', 'Ciggilta Kudo', 'Agda Baxisso', 'Caxah Alsa', 'Qasa Dirri', 'Qado Dirri', 'Leqeeni', 'Waysu', 'Diteli', 'Ximoli', 'Kaxxa Garablu'],
+    'months_short' => ['Qun', 'Nah', 'Cig', 'Agd', 'Cax', 'Qas', 'Qad', 'Leq', 'Way', 'Dit', 'Xim', 'Kax'],
+    'weekdays' => ['Naba Sambat', 'Sani', 'Salus', 'Rabuq', 'Camus', 'Jumqata', 'Qunxa Sambat'],
+    'weekdays_short' => ['Nab', 'San', 'Sal', 'Rab', 'Cam', 'Jum', 'Qun'],
+    'weekdays_min' => ['Nab', 'San', 'Sal', 'Rab', 'Cam', 'Jum', 'Qun'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['saaku', 'carra'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/aa_ET.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/aa_ET.php
new file mode 100644
index 0000000..e55e591
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/aa_ET.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ge'ez Frontier Foundation    locales@geez.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['Qunxa Garablu', 'Kudo', 'Ciggilta Kudo', 'Agda Baxisso', 'Caxah Alsa', 'Qasa Dirri', 'Qado Dirri', 'Liiqen', 'Waysu', 'Diteli', 'Ximoli', 'Kaxxa Garablu'],
+    'months_short' => ['Qun', 'Kud', 'Cig', 'Agd', 'Cax', 'Qas', 'Qad', 'Leq', 'Way', 'Dit', 'Xim', 'Kax'],
+    'weekdays' => ['Acaada', 'Etleeni', 'Talaata', 'Arbaqa', 'Kamiisi', 'Gumqata', 'Sabti'],
+    'weekdays_short' => ['Aca', 'Etl', 'Tal', 'Arb', 'Kam', 'Gum', 'Sab'],
+    'weekdays_min' => ['Aca', 'Etl', 'Tal', 'Arb', 'Kam', 'Gum', 'Sab'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['saaku', 'carra'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/af.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/af.php
new file mode 100644
index 0000000..27771d7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/af.php
@@ -0,0 +1,79 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - François B
+ * - JD Isaacks
+ * - Pierre du Plessis
+ */
+return [
+    'year' => ':count jaar',
+    'a_year' => '\'n jaar|:count jaar',
+    'y' => ':count j.',
+    'month' => ':count maand|:count maande',
+    'a_month' => '\'n maand|:count maande',
+    'm' => ':count maa.',
+    'week' => ':count week|:count weke',
+    'a_week' => '\'n week|:count weke',
+    'w' => ':count w.',
+    'day' => ':count dag|:count dae',
+    'a_day' => '\'n dag|:count dae',
+    'd' => ':count d.',
+    'hour' => ':count uur',
+    'a_hour' => '\'n uur|:count uur',
+    'h' => ':count u.',
+    'minute' => ':count minuut|:count minute',
+    'a_minute' => '\'n minuut|:count minute',
+    'min' => ':count min.',
+    'second' => ':count sekond|:count sekondes',
+    'a_second' => '\'n paar sekondes|:count sekondes',
+    's' => ':count s.',
+    'ago' => ':time gelede',
+    'from_now' => 'oor :time',
+    'after' => ':time na',
+    'before' => ':time voor',
+    'diff_now' => 'Nou',
+    'diff_today' => 'Vandag',
+    'diff_today_regexp' => 'Vandag(?:\\s+om)?',
+    'diff_yesterday' => 'Gister',
+    'diff_yesterday_regexp' => 'Gister(?:\\s+om)?',
+    'diff_tomorrow' => 'Môre',
+    'diff_tomorrow_regexp' => 'Môre(?:\\s+om)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Vandag om] LT',
+        'nextDay' => '[Môre om] LT',
+        'nextWeek' => 'dddd [om] LT',
+        'lastDay' => '[Gister om] LT',
+        'lastWeek' => '[Laas] dddd [om] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number) {
+        return $number.(($number === 1 || $number === 8 || $number >= 20) ? 'ste' : 'de');
+    },
+    'meridiem' => ['VM', 'NM'],
+    'months' => ['Januarie', 'Februarie', 'Maart', 'April', 'Mei', 'Junie', 'Julie', 'Augustus', 'September', 'Oktober', 'November', 'Desember'],
+    'months_short' => ['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'],
+    'weekdays' => ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag'],
+    'weekdays_short' => ['Son', 'Maa', 'Din', 'Woe', 'Don', 'Vry', 'Sat'],
+    'weekdays_min' => ['So', 'Ma', 'Di', 'Wo', 'Do', 'Vr', 'Sa'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' en '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/af_NA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/af_NA.php
new file mode 100644
index 0000000..40d8d86
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/af_NA.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/af.php', [
+    'meridiem' => ['v', 'n'],
+    'weekdays' => ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag'],
+    'weekdays_short' => ['So.', 'Ma.', 'Di.', 'Wo.', 'Do.', 'Vr.', 'Sa.'],
+    'weekdays_min' => ['So.', 'Ma.', 'Di.', 'Wo.', 'Do.', 'Vr.', 'Sa.'],
+    'months' => ['Januarie', 'Februarie', 'Maart', 'April', 'Mei', 'Junie', 'Julie', 'Augustus', 'September', 'Oktober', 'November', 'Desember'],
+    'months_short' => ['Jan.', 'Feb.', 'Mrt.', 'Apr.', 'Mei', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Okt.', 'Nov.', 'Des.'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'YYYY-MM-DD',
+        'LL' => 'DD MMM YYYY',
+        'LLL' => 'DD MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, DD MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/af_ZA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/af_ZA.php
new file mode 100644
index 0000000..93f4c83
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/af_ZA.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/af.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/agq.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/agq.php
new file mode 100644
index 0000000..58c7a11
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/agq.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['a.g', 'a.k'],
+    'weekdays' => ['tsuʔntsɨ', 'tsuʔukpà', 'tsuʔughɔe', 'tsuʔutɔ̀mlò', 'tsuʔumè', 'tsuʔughɨ̂m', 'tsuʔndzɨkɔʔɔ'],
+    'weekdays_short' => ['nts', 'kpa', 'ghɔ', 'tɔm', 'ume', 'ghɨ', 'dzk'],
+    'weekdays_min' => ['nts', 'kpa', 'ghɔ', 'tɔm', 'ume', 'ghɨ', 'dzk'],
+    'months' => ['ndzɔ̀ŋɔ̀nùm', 'ndzɔ̀ŋɔ̀kƗ̀zùʔ', 'ndzɔ̀ŋɔ̀tƗ̀dʉ̀ghà', 'ndzɔ̀ŋɔ̀tǎafʉ̄ghā', 'ndzɔ̀ŋèsèe', 'ndzɔ̀ŋɔ̀nzùghò', 'ndzɔ̀ŋɔ̀dùmlo', 'ndzɔ̀ŋɔ̀kwîfɔ̀e', 'ndzɔ̀ŋɔ̀tƗ̀fʉ̀ghàdzughù', 'ndzɔ̀ŋɔ̀ghǔuwelɔ̀m', 'ndzɔ̀ŋɔ̀chwaʔàkaa wo', 'ndzɔ̀ŋèfwòo'],
+    'months_short' => ['nùm', 'kɨz', 'tɨd', 'taa', 'see', 'nzu', 'dum', 'fɔe', 'dzu', 'lɔm', 'kaa', 'fwo'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM, YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/agr.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/agr.php
new file mode 100644
index 0000000..8f036ae
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/agr.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/agr_PE.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/agr_PE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/agr_PE.php
new file mode 100644
index 0000000..54a326a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/agr_PE.php
@@ -0,0 +1,44 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - somosazucar.org    libc-alpha@sourceware.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YY',
+    ],
+    'months' => ['Petsatin', 'Kupitin', 'Uyaitin', 'Tayutin', 'Kegketin', 'Tegmatin', 'Kuntutin', 'Yagkujutin', 'Daiktatin', 'Ipamtatin', 'Shinutin', 'Sakamtin'],
+    'months_short' => ['Pet', 'Kup', 'Uya', 'Tay', 'Keg', 'Teg', 'Kun', 'Yag', 'Dait', 'Ipam', 'Shin', 'Sak'],
+    'weekdays' => ['Tuntuamtin', 'Achutin', 'Kugkuktin', 'Saketin', 'Shimpitin', 'Imaptin', 'Bataetin'],
+    'weekdays_short' => ['Tun', 'Ach', 'Kug', 'Sak', 'Shim', 'Im', 'Bat'],
+    'weekdays_min' => ['Tun', 'Ach', 'Kug', 'Sak', 'Shim', 'Im', 'Bat'],
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 7,
+    'meridiem' => ['VM', 'NM'],
+
+    'year' => ':count yaya', // less reliable
+    'y' => ':count yaya', // less reliable
+    'a_year' => ':count yaya', // less reliable
+
+    'month' => ':count nantu', // less reliable
+    'm' => ':count nantu', // less reliable
+    'a_month' => ':count nantu', // less reliable
+
+    'day' => ':count nayaim', // less reliable
+    'd' => ':count nayaim', // less reliable
+    'a_day' => ':count nayaim', // less reliable
+
+    'hour' => ':count kuwiš', // less reliable
+    'h' => ':count kuwiš', // less reliable
+    'a_hour' => ':count kuwiš', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ak.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ak.php
new file mode 100644
index 0000000..5a64be3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ak.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/ak_GH.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ak_GH.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ak_GH.php
new file mode 100644
index 0000000..1381946
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ak_GH.php
@@ -0,0 +1,40 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Sugar Labs // OLPC sugarlabs.org libc-alpha@sourceware.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'YYYY/MM/DD',
+    ],
+    'months' => ['Sanda-Ɔpɛpɔn', 'Kwakwar-Ɔgyefuo', 'Ebɔw-Ɔbenem', 'Ebɔbira-Oforisuo', 'Esusow Aketseaba-Kɔtɔnimba', 'Obirade-Ayɛwohomumu', 'Ayɛwoho-Kitawonsa', 'Difuu-Ɔsandaa', 'Fankwa-Ɛbɔ', 'Ɔbɛsɛ-Ahinime', 'Ɔberɛfɛw-Obubuo', 'Mumu-Ɔpɛnimba'],
+    'months_short' => ['S-Ɔ', 'K-Ɔ', 'E-Ɔ', 'E-O', 'E-K', 'O-A', 'A-K', 'D-Ɔ', 'F-Ɛ', 'Ɔ-A', 'Ɔ-O', 'M-Ɔ'],
+    'weekdays' => ['Kwesida', 'Dwowda', 'Benada', 'Wukuda', 'Yawda', 'Fida', 'Memeneda'],
+    'weekdays_short' => ['Kwe', 'Dwo', 'Ben', 'Wuk', 'Yaw', 'Fia', 'Mem'],
+    'weekdays_min' => ['Kwe', 'Dwo', 'Ben', 'Wuk', 'Yaw', 'Fia', 'Mem'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['AN', 'EW'],
+
+    'year' => ':count afe',
+    'y' => ':count afe',
+    'a_year' => ':count afe',
+
+    'month' => ':count bosume',
+    'm' => ':count bosume',
+    'a_month' => ':count bosume',
+
+    'day' => ':count ɛda',
+    'd' => ':count ɛda',
+    'a_day' => ':count ɛda',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/am.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/am.php
new file mode 100644
index 0000000..63bf72d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/am.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/am_ET.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/am_ET.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/am_ET.php
new file mode 100644
index 0000000..ece8062
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/am_ET.php
@@ -0,0 +1,58 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ge'ez Frontier Foundation    locales@geez.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', 'ኤፕሪል', 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', 'ሴፕቴምበር', 'ኦክቶበር', 'ኖቬምበር', 'ዲሴምበር'],
+    'months_short' => ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕረ', 'ሜይ ', 'ጁን ', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', 'ኖቬም', 'ዲሴም'],
+    'weekdays' => ['እሑድ', 'ሰኞ', 'ማክሰኞ', 'ረቡዕ', 'ሐሙስ', 'ዓርብ', 'ቅዳሜ'],
+    'weekdays_short' => ['እሑድ', 'ሰኞ ', 'ማክሰ', 'ረቡዕ', 'ሐሙስ', 'ዓርብ', 'ቅዳሜ'],
+    'weekdays_min' => ['እሑድ', 'ሰኞ ', 'ማክሰ', 'ረቡዕ', 'ሐሙስ', 'ዓርብ', 'ቅዳሜ'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['ጡዋት', 'ከሰዓት'],
+
+    'year' => ':count አመት',
+    'y' => ':count አመት',
+    'a_year' => ':count አመት',
+
+    'month' => ':count ወር',
+    'm' => ':count ወር',
+    'a_month' => ':count ወር',
+
+    'week' => ':count ሳምንት',
+    'w' => ':count ሳምንት',
+    'a_week' => ':count ሳምንት',
+
+    'day' => ':count ቀን',
+    'd' => ':count ቀን',
+    'a_day' => ':count ቀን',
+
+    'hour' => ':count ሰዓት',
+    'h' => ':count ሰዓት',
+    'a_hour' => ':count ሰዓት',
+
+    'minute' => ':count ደቂቃ',
+    'min' => ':count ደቂቃ',
+    'a_minute' => ':count ደቂቃ',
+
+    'second' => ':count ሴኮንድ',
+    's' => ':count ሴኮንድ',
+    'a_second' => ':count ሴኮንድ',
+
+    'ago' => 'ከ:time በፊት',
+    'from_now' => 'በ:time ውስጥ',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/an.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/an.php
new file mode 100644
index 0000000..565abf2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/an.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/an_ES.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/an_ES.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/an_ES.php
new file mode 100644
index 0000000..faf8ae0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/an_ES.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Softaragones Jordi Mallach Pérez, Juan Pablo Martínez bug-glibc-locales@gnu.org, softaragones@softaragones.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['chinero', 'febrero', 'marzo', 'abril', 'mayo', 'chunyo', 'chuliol', 'agosto', 'setiembre', 'octubre', 'noviembre', 'aviento'],
+    'months_short' => ['chi', 'feb', 'mar', 'abr', 'may', 'chn', 'chl', 'ago', 'set', 'oct', 'nov', 'avi'],
+    'weekdays' => ['domingo', 'luns', 'martes', 'mierques', 'chueves', 'viernes', 'sabado'],
+    'weekdays_short' => ['dom', 'lun', 'mar', 'mie', 'chu', 'vie', 'sab'],
+    'weekdays_min' => ['dom', 'lun', 'mar', 'mie', 'chu', 'vie', 'sab'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+
+    'year' => ':count año',
+    'y' => ':count año',
+    'a_year' => ':count año',
+
+    'month' => ':count mes',
+    'm' => ':count mes',
+    'a_month' => ':count mes',
+
+    'week' => ':count semana',
+    'w' => ':count semana',
+    'a_week' => ':count semana',
+
+    'day' => ':count día',
+    'd' => ':count día',
+    'a_day' => ':count día',
+
+    'hour' => ':count reloch', // less reliable
+    'h' => ':count reloch', // less reliable
+    'a_hour' => ':count reloch', // less reliable
+
+    'minute' => ':count minuto',
+    'min' => ':count minuto',
+    'a_minute' => ':count minuto',
+
+    'second' => ':count segundo',
+    's' => ':count segundo',
+    'a_second' => ':count segundo',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/anp.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/anp.php
new file mode 100644
index 0000000..b56c67b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/anp.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/anp_IN.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/anp_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/anp_IN.php
new file mode 100644
index 0000000..11069be
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/anp_IN.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - bhashaghar@googlegroups.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'D/M/YY',
+    ],
+    'months' => ['जनवरी', 'फरवरी', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितंबर', 'अक्टूबर', 'नवंबर', 'दिसंबर"'],
+    'months_short' => ['जनवरी', 'फरवरी', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितंबर', 'अक्टूबर', 'नवंबर', 'दिसंबर'],
+    'weekdays' => ['रविवार', 'सोमवार', 'मंगलवार', 'बुधवार', 'बृहस्पतिवार', 'शुक्रवार', 'शनिवार'],
+    'weekdays_short' => ['रवि', 'सोम', 'मंगल', 'बुध', 'बृहस्पति', 'शुक्र', 'शनि'],
+    'weekdays_min' => ['रवि', 'सोम', 'मंगल', 'बुध', 'बृहस्पति', 'शुक्र', 'शनि'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['पूर्वाह्न', 'अपराह्न'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar.php
new file mode 100644
index 0000000..5f73f63
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar.php
@@ -0,0 +1,93 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Atef Ben Ali (atefBB)
+ * - Ibrahim AshShohail
+ * - MLTDev
+ * - Mohamed Sabil (mohamedsabil83)
+ * - Yazan Alnugnugh (yazan-alnugnugh)
+ */
+$months = [
+    'يناير',
+    'فبراير',
+    'مارس',
+    'أبريل',
+    'مايو',
+    'يونيو',
+    'يوليو',
+    'أغسطس',
+    'سبتمبر',
+    'أكتوبر',
+    'نوفمبر',
+    'ديسمبر',
+];
+
+return [
+    'year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']),
+    'a_year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']),
+    'month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']),
+    'a_month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']),
+    'week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']),
+    'a_week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']),
+    'day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']),
+    'a_day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']),
+    'hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']),
+    'a_hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']),
+    'minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']),
+    'a_minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']),
+    'second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']),
+    'a_second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']),
+    'ago' => 'منذ :time',
+    'from_now' => ':time من الآن',
+    'after' => 'بعد :time',
+    'before' => 'قبل :time',
+    'diff_now' => 'الآن',
+    'diff_today' => 'اليوم',
+    'diff_today_regexp' => 'اليوم(?:\\s+عند)?(?:\\s+الساعة)?',
+    'diff_yesterday' => 'أمس',
+    'diff_yesterday_regexp' => 'أمس(?:\\s+عند)?(?:\\s+الساعة)?',
+    'diff_tomorrow' => 'غداً',
+    'diff_tomorrow_regexp' => 'غدًا(?:\\s+عند)?(?:\\s+الساعة)?',
+    'diff_before_yesterday' => 'قبل الأمس',
+    'diff_after_tomorrow' => 'بعد غد',
+    'period_recurrences' => implode('|', ['{0}مرة', '{1}مرة', '{2}:count مرتين', ']2,11[:count مرات', ']10,Inf[:count مرة']),
+    'period_interval' => 'كل :interval',
+    'period_start_date' => 'من :date',
+    'period_end_date' => 'إلى :date',
+    'months' => $months,
+    'months_short' => $months,
+    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+    'weekdays_short' => ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],
+    'weekdays_min' => ['ح', 'اث', 'ثل', 'أر', 'خم', 'ج', 'س'],
+    'list' => ['، ', ' و '],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[اليوم عند الساعة] LT',
+        'nextDay' => '[غدًا عند الساعة] LT',
+        'nextWeek' => 'dddd [عند الساعة] LT',
+        'lastDay' => '[أمس عند الساعة] LT',
+        'lastWeek' => 'dddd [عند الساعة] LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => ['ص', 'م'],
+    'weekend' => [5, 6],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_AE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_AE.php
new file mode 100644
index 0000000..75fe47f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_AE.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/ar.php', [
+    'formats' => [
+        'L' => 'DD MMM, YYYY',
+    ],
+    'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],
+    'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'],
+    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت '],
+    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_BH.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_BH.php
new file mode 100644
index 0000000..362009e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_BH.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/ar.php', [
+    'formats' => [
+        'L' => 'DD MMM, YYYY',
+    ],
+    'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],
+    'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'],
+    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_DJ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_DJ.php
new file mode 100644
index 0000000..8d377ad
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_DJ.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ar.php', [
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_DZ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_DZ.php
new file mode 100644
index 0000000..aea4eee
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_DZ.php
@@ -0,0 +1,92 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Authors:
+ * - Josh Soref
+ * - Noureddine LOUAHEDJ
+ * - JD Isaacks
+ * - Atef Ben Ali (atefBB)
+ * - Mohamed Sabil (mohamedsabil83)
+ */
+$months = [
+    'جانفي',
+    'فيفري',
+    'مارس',
+    'أفريل',
+    'ماي',
+    'جوان',
+    'جويلية',
+    'أوت',
+    'سبتمبر',
+    'أكتوبر',
+    'نوفمبر',
+    'ديسمبر',
+];
+
+return [
+    'year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']),
+    'a_year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']),
+    'month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']),
+    'a_month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']),
+    'week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']),
+    'a_week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']),
+    'day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']),
+    'a_day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']),
+    'hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']),
+    'a_hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']),
+    'minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']),
+    'a_minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']),
+    'second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']),
+    'a_second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']),
+    'ago' => 'منذ :time',
+    'from_now' => 'في :time',
+    'after' => 'بعد :time',
+    'before' => 'قبل :time',
+    'diff_now' => 'الآن',
+    'diff_today' => 'اليوم',
+    'diff_today_regexp' => 'اليوم(?:\\s+على)?(?:\\s+الساعة)?',
+    'diff_yesterday' => 'أمس',
+    'diff_yesterday_regexp' => 'أمس(?:\\s+على)?(?:\\s+الساعة)?',
+    'diff_tomorrow' => 'غداً',
+    'diff_tomorrow_regexp' => 'غدا(?:\\s+على)?(?:\\s+الساعة)?',
+    'diff_before_yesterday' => 'قبل الأمس',
+    'diff_after_tomorrow' => 'بعد غد',
+    'period_recurrences' => implode('|', ['{0}مرة', '{1}مرة', '{2}:count مرتين', ']2,11[:count مرات', ']10,Inf[:count مرة']),
+    'period_interval' => 'كل :interval',
+    'period_start_date' => 'من :date',
+    'period_end_date' => 'إلى :date',
+    'months' => $months,
+    'months_short' => $months,
+    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+    'weekdays_short' => ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],
+    'weekdays_min' => ['أح', 'إث', 'ثلا', 'أر', 'خم', 'جم', 'سب'],
+    'list' => ['، ', ' و '],
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 4,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[اليوم على الساعة] LT',
+        'nextDay' => '[غدا على الساعة] LT',
+        'nextWeek' => 'dddd [على الساعة] LT',
+        'lastDay' => '[أمس على الساعة] LT',
+        'lastWeek' => 'dddd [على الساعة] LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => ['ص', 'م'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_EG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_EG.php
new file mode 100644
index 0000000..362009e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_EG.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/ar.php', [
+    'formats' => [
+        'L' => 'DD MMM, YYYY',
+    ],
+    'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],
+    'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'],
+    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_EH.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_EH.php
new file mode 100644
index 0000000..8d377ad
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_EH.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ar.php', [
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_ER.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_ER.php
new file mode 100644
index 0000000..8d377ad
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_ER.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ar.php', [
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_IL.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_IL.php
new file mode 100644
index 0000000..8d377ad
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_IL.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ar.php', [
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_IN.php
new file mode 100644
index 0000000..5fecf70
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_IN.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/ar.php', [
+    'formats' => [
+        'L' => 'D/M/YY',
+    ],
+    'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],
+    'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'],
+    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_IQ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_IQ.php
new file mode 100644
index 0000000..0ac0995
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_IQ.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/ar.php', [
+    'formats' => [
+        'L' => 'DD MMM, YYYY',
+    ],
+    'months' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],
+    'months_short' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],
+    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_JO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_JO.php
new file mode 100644
index 0000000..0ac0995
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_JO.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/ar.php', [
+    'formats' => [
+        'L' => 'DD MMM, YYYY',
+    ],
+    'months' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],
+    'months_short' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],
+    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_KM.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_KM.php
new file mode 100644
index 0000000..8d377ad
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_KM.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ar.php', [
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_KW.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_KW.php
new file mode 100644
index 0000000..e6f0531
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_KW.php
@@ -0,0 +1,93 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Authors:
+ * - Josh Soref
+ * - Nusret Parlak
+ * - JD Isaacks
+ * - Atef Ben Ali (atefBB)
+ * - Mohamed Sabil (mohamedsabil83)
+ */
+$months = [
+    'يناير',
+    'فبراير',
+    'مارس',
+    'أبريل',
+    'ماي',
+    'يونيو',
+    'يوليوز',
+    'غشت',
+    'شتنبر',
+    'أكتوبر',
+    'نونبر',
+    'دجنبر',
+];
+
+return [
+    'year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']),
+    'a_year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']),
+    'month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']),
+    'a_month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']),
+    'week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']),
+    'a_week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']),
+    'day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']),
+    'a_day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']),
+    'hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']),
+    'a_hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']),
+    'minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']),
+    'a_minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']),
+    'second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']),
+    'a_second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']),
+    'ago' => 'منذ :time',
+    'from_now' => 'في :time',
+    'after' => 'بعد :time',
+    'before' => 'قبل :time',
+    'diff_now' => 'الآن',
+    'diff_today' => 'اليوم',
+    'diff_today_regexp' => 'اليوم(?:\\s+على)?(?:\\s+الساعة)?',
+    'diff_yesterday' => 'أمس',
+    'diff_yesterday_regexp' => 'أمس(?:\\s+على)?(?:\\s+الساعة)?',
+    'diff_tomorrow' => 'غداً',
+    'diff_tomorrow_regexp' => 'غدا(?:\\s+على)?(?:\\s+الساعة)?',
+    'diff_before_yesterday' => 'قبل الأمس',
+    'diff_after_tomorrow' => 'بعد غد',
+    'period_recurrences' => implode('|', ['{0}مرة', '{1}مرة', '{2}:count مرتين', ']2,11[:count مرات', ']10,Inf[:count مرة']),
+    'period_interval' => 'كل :interval',
+    'period_start_date' => 'من :date',
+    'period_end_date' => 'إلى :date',
+    'months' => $months,
+    'months_short' => $months,
+    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+    'weekdays_short' => ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],
+    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'list' => ['، ', ' و '],
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[اليوم على الساعة] LT',
+        'nextDay' => '[غدا على الساعة] LT',
+        'nextWeek' => 'dddd [على الساعة] LT',
+        'lastDay' => '[أمس على الساعة] LT',
+        'lastWeek' => 'dddd [على الساعة] LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => ['ص', 'م'],
+    'weekend' => [5, 6],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_LB.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_LB.php
new file mode 100644
index 0000000..55bb10c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_LB.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/ar.php', [
+    'formats' => [
+        'L' => 'DD MMM, YYYY',
+    ],
+    'months' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],
+    'months_short' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],
+    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_LY.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_LY.php
new file mode 100644
index 0000000..1f0af49
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_LY.php
@@ -0,0 +1,92 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Atef Ben Ali (atefBB)
+ * - Ibrahim AshShohail
+ * - MLTDev
+ */
+
+$months = [
+    'يناير',
+    'فبراير',
+    'مارس',
+    'أبريل',
+    'مايو',
+    'يونيو',
+    'يوليو',
+    'أغسطس',
+    'سبتمبر',
+    'أكتوبر',
+    'نوفمبر',
+    'ديسمبر',
+];
+
+return [
+    'year' => implode('|', [':count سنة', 'سنة', 'سنتين', ':count سنوات', ':count سنة']),
+    'a_year' => implode('|', [':count سنة', 'سنة', 'سنتين', ':count سنوات', ':count سنة']),
+    'month' => implode('|', [':count شهر', 'شهر', 'شهرين', ':count أشهر', ':count شهر']),
+    'a_month' => implode('|', [':count شهر', 'شهر', 'شهرين', ':count أشهر', ':count شهر']),
+    'week' => implode('|', [':count أسبوع', 'أسبوع', 'أسبوعين', ':count أسابيع', ':count أسبوع']),
+    'a_week' => implode('|', [':count أسبوع', 'أسبوع', 'أسبوعين', ':count أسابيع', ':count أسبوع']),
+    'day' => implode('|', [':count يوم', 'يوم', 'يومين', ':count أيام', ':count يوم']),
+    'a_day' => implode('|', [':count يوم', 'يوم', 'يومين', ':count أيام', ':count يوم']),
+    'hour' => implode('|', [':count ساعة', 'ساعة', 'ساعتين', ':count ساعات', ':count ساعة']),
+    'a_hour' => implode('|', [':count ساعة', 'ساعة', 'ساعتين', ':count ساعات', ':count ساعة']),
+    'minute' => implode('|', [':count دقيقة', 'دقيقة', 'دقيقتين', ':count دقائق', ':count دقيقة']),
+    'a_minute' => implode('|', [':count دقيقة', 'دقيقة', 'دقيقتين', ':count دقائق', ':count دقيقة']),
+    'second' => implode('|', [':count ثانية', 'ثانية', 'ثانيتين', ':count ثواني', ':count ثانية']),
+    'a_second' => implode('|', [':count ثانية', 'ثانية', 'ثانيتين', ':count ثواني', ':count ثانية']),
+    'ago' => 'منذ :time',
+    'from_now' => ':time من الآن',
+    'after' => 'بعد :time',
+    'before' => 'قبل :time',
+    'diff_now' => 'الآن',
+    'diff_today' => 'اليوم',
+    'diff_today_regexp' => 'اليوم(?:\\s+عند)?(?:\\s+الساعة)?',
+    'diff_yesterday' => 'أمس',
+    'diff_yesterday_regexp' => 'أمس(?:\\s+عند)?(?:\\s+الساعة)?',
+    'diff_tomorrow' => 'غداً',
+    'diff_tomorrow_regexp' => 'غدًا(?:\\s+عند)?(?:\\s+الساعة)?',
+    'diff_before_yesterday' => 'قبل الأمس',
+    'diff_after_tomorrow' => 'بعد غد',
+    'period_recurrences' => implode('|', ['مرة', 'مرة', ':count مرتين', ':count مرات', ':count مرة']),
+    'period_interval' => 'كل :interval',
+    'period_start_date' => 'من :date',
+    'period_end_date' => 'إلى :date',
+    'months' => $months,
+    'months_short' => $months,
+    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+    'weekdays_short' => ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],
+    'weekdays_min' => ['ح', 'اث', 'ثل', 'أر', 'خم', 'ج', 'س'],
+    'list' => ['، ', ' و '],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[اليوم عند الساعة] LT',
+        'nextDay' => '[غدًا عند الساعة] LT',
+        'nextWeek' => 'dddd [عند الساعة] LT',
+        'lastDay' => '[أمس عند الساعة] LT',
+        'lastWeek' => 'dddd [عند الساعة] LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => ['ص', 'م'],
+    'weekend' => [5, 6],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_MA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_MA.php
new file mode 100644
index 0000000..047ae05
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_MA.php
@@ -0,0 +1,92 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Authors:
+ * - Josh Soref
+ * - JD Isaacks
+ * - Atef Ben Ali (atefBB)
+ * - Mohamed Sabil (mohamedsabil83)
+ */
+$months = [
+    'يناير',
+    'فبراير',
+    'مارس',
+    'أبريل',
+    'ماي',
+    'يونيو',
+    'يوليوز',
+    'غشت',
+    'شتنبر',
+    'أكتوبر',
+    'نونبر',
+    'دجنبر',
+];
+
+return [
+    'year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']),
+    'a_year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']),
+    'month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']),
+    'a_month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']),
+    'week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']),
+    'a_week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']),
+    'day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']),
+    'a_day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']),
+    'hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']),
+    'a_hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']),
+    'minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']),
+    'a_minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']),
+    'second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']),
+    'a_second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']),
+    'ago' => 'منذ :time',
+    'from_now' => 'في :time',
+    'after' => 'بعد :time',
+    'before' => 'قبل :time',
+    'diff_now' => 'الآن',
+    'diff_today' => 'اليوم',
+    'diff_today_regexp' => 'اليوم(?:\\s+على)?(?:\\s+الساعة)?',
+    'diff_yesterday' => 'أمس',
+    'diff_yesterday_regexp' => 'أمس(?:\\s+على)?(?:\\s+الساعة)?',
+    'diff_tomorrow' => 'غداً',
+    'diff_tomorrow_regexp' => 'غدا(?:\\s+على)?(?:\\s+الساعة)?',
+    'diff_before_yesterday' => 'قبل الأمس',
+    'diff_after_tomorrow' => 'بعد غد',
+    'period_recurrences' => implode('|', ['{0}مرة', '{1}مرة', '{2}:count مرتين', ']2,11[:count مرات', ']10,Inf[:count مرة']),
+    'period_interval' => 'كل :interval',
+    'period_start_date' => 'من :date',
+    'period_end_date' => 'إلى :date',
+    'months' => $months,
+    'months_short' => $months,
+    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+    'weekdays_short' => ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],
+    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'list' => ['، ', ' و '],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[اليوم على الساعة] LT',
+        'nextDay' => '[غدا على الساعة] LT',
+        'nextWeek' => 'dddd [على الساعة] LT',
+        'lastDay' => '[أمس على الساعة] LT',
+        'lastWeek' => 'dddd [على الساعة] LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => ['ص', 'م'],
+    'weekend' => [5, 6],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_MR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_MR.php
new file mode 100644
index 0000000..8d377ad
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_MR.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ar.php', [
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_OM.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_OM.php
new file mode 100644
index 0000000..362009e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_OM.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/ar.php', [
+    'formats' => [
+        'L' => 'DD MMM, YYYY',
+    ],
+    'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],
+    'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'],
+    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_PS.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_PS.php
new file mode 100644
index 0000000..8d377ad
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_PS.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ar.php', [
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_QA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_QA.php
new file mode 100644
index 0000000..362009e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_QA.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/ar.php', [
+    'formats' => [
+        'L' => 'DD MMM, YYYY',
+    ],
+    'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],
+    'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'],
+    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_SA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_SA.php
new file mode 100644
index 0000000..10aaa2e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_SA.php
@@ -0,0 +1,92 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Authors:
+ * - Josh Soref
+ * - JD Isaacks
+ * - Atef Ben Ali (atefBB)
+ * - Mohamed Sabil (mohamedsabil83)
+ */
+$months = [
+    'يناير',
+    'فبراير',
+    'مارس',
+    'أبريل',
+    'مايو',
+    'يونيو',
+    'يوليو',
+    'أغسطس',
+    'سبتمبر',
+    'أكتوبر',
+    'نوفمبر',
+    'ديسمبر',
+];
+
+return [
+    'year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']),
+    'a_year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']),
+    'month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']),
+    'a_month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']),
+    'week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']),
+    'a_week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']),
+    'day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']),
+    'a_day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']),
+    'hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']),
+    'a_hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']),
+    'minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']),
+    'a_minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']),
+    'second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']),
+    'a_second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']),
+    'ago' => 'منذ :time',
+    'from_now' => 'في :time',
+    'after' => 'بعد :time',
+    'before' => 'قبل :time',
+    'diff_now' => 'الآن',
+    'diff_today' => 'اليوم',
+    'diff_today_regexp' => 'اليوم(?:\\s+على)?(?:\\s+الساعة)?',
+    'diff_yesterday' => 'أمس',
+    'diff_yesterday_regexp' => 'أمس(?:\\s+على)?(?:\\s+الساعة)?',
+    'diff_tomorrow' => 'غداً',
+    'diff_tomorrow_regexp' => 'غدا(?:\\s+على)?(?:\\s+الساعة)?',
+    'diff_before_yesterday' => 'قبل الأمس',
+    'diff_after_tomorrow' => 'بعد غد',
+    'period_recurrences' => implode('|', ['{0}مرة', '{1}مرة', '{2}:count مرتين', ']2,11[:count مرات', ']10,Inf[:count مرة']),
+    'period_interval' => 'كل :interval',
+    'period_start_date' => 'من :date',
+    'period_end_date' => 'إلى :date',
+    'months' => $months,
+    'months_short' => $months,
+    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+    'weekdays_short' => ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],
+    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'list' => ['، ', ' و '],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[اليوم على الساعة] LT',
+        'nextDay' => '[غدا على الساعة] LT',
+        'nextWeek' => 'dddd [على الساعة] LT',
+        'lastDay' => '[أمس على الساعة] LT',
+        'lastWeek' => 'dddd [على الساعة] LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => ['ص', 'م'],
+    'weekend' => [5, 6],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_SD.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_SD.php
new file mode 100644
index 0000000..362009e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_SD.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/ar.php', [
+    'formats' => [
+        'L' => 'DD MMM, YYYY',
+    ],
+    'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],
+    'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'],
+    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_SO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_SO.php
new file mode 100644
index 0000000..8d377ad
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_SO.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ar.php', [
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_SS.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_SS.php
new file mode 100644
index 0000000..32f3282
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_SS.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/ar.php', [
+    'formats' => [
+        'L' => 'DD MMM, YYYY',
+    ],
+    'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],
+    'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'],
+    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_SY.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_SY.php
new file mode 100644
index 0000000..0ac0995
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_SY.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/ar.php', [
+    'formats' => [
+        'L' => 'DD MMM, YYYY',
+    ],
+    'months' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],
+    'months_short' => ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],
+    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_Shakl.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_Shakl.php
new file mode 100644
index 0000000..c2d4b43
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_Shakl.php
@@ -0,0 +1,95 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Abdellah Chadidi
+ * - Atef Ben Ali (atefBB)
+ * - Mohamed Sabil (mohamedsabil83)
+ */
+// Same for long and short
+$months = [
+    // @TODO add shakl to months
+    'يناير',
+    'فبراير',
+    'مارس',
+    'أبريل',
+    'مايو',
+    'يونيو',
+    'يوليو',
+    'أغسطس',
+    'سبتمبر',
+    'أكتوبر',
+    'نوفمبر',
+    'ديسمبر',
+];
+
+return [
+    'year' => implode('|', ['{0}:count سَنَة', '{1}سَنَة', '{2}سَنَتَيْن', ']2,11[:count سَنَوَات', ']10,Inf[:count سَنَة']),
+    'a_year' => implode('|', ['{0}:count سَنَة', '{1}سَنَة', '{2}سَنَتَيْن', ']2,11[:count سَنَوَات', ']10,Inf[:count سَنَة']),
+    'month' => implode('|', ['{0}:count شَهْرَ', '{1}شَهْرَ', '{2}شَهْرَيْن', ']2,11[:count أَشْهُر', ']10,Inf[:count شَهْرَ']),
+    'a_month' => implode('|', ['{0}:count شَهْرَ', '{1}شَهْرَ', '{2}شَهْرَيْن', ']2,11[:count أَشْهُر', ']10,Inf[:count شَهْرَ']),
+    'week' => implode('|', ['{0}:count أُسْبُوع', '{1}أُسْبُوع', '{2}أُسْبُوعَيْن', ']2,11[:count أَسَابِيع', ']10,Inf[:count أُسْبُوع']),
+    'a_week' => implode('|', ['{0}:count أُسْبُوع', '{1}أُسْبُوع', '{2}أُسْبُوعَيْن', ']2,11[:count أَسَابِيع', ']10,Inf[:count أُسْبُوع']),
+    'day' => implode('|', ['{0}:count يَوْم', '{1}يَوْم', '{2}يَوْمَيْن', ']2,11[:count أَيَّام', ']10,Inf[:count يَوْم']),
+    'a_day' => implode('|', ['{0}:count يَوْم', '{1}يَوْم', '{2}يَوْمَيْن', ']2,11[:count أَيَّام', ']10,Inf[:count يَوْم']),
+    'hour' => implode('|', ['{0}:count سَاعَة', '{1}سَاعَة', '{2}سَاعَتَيْن', ']2,11[:count سَاعَات', ']10,Inf[:count سَاعَة']),
+    'a_hour' => implode('|', ['{0}:count سَاعَة', '{1}سَاعَة', '{2}سَاعَتَيْن', ']2,11[:count سَاعَات', ']10,Inf[:count سَاعَة']),
+    'minute' => implode('|', ['{0}:count دَقِيقَة', '{1}دَقِيقَة', '{2}دَقِيقَتَيْن', ']2,11[:count دَقَائِق', ']10,Inf[:count دَقِيقَة']),
+    'a_minute' => implode('|', ['{0}:count دَقِيقَة', '{1}دَقِيقَة', '{2}دَقِيقَتَيْن', ']2,11[:count دَقَائِق', ']10,Inf[:count دَقِيقَة']),
+    'second' => implode('|', ['{0}:count ثَانِيَة', '{1}ثَانِيَة', '{2}ثَانِيَتَيْن', ']2,11[:count ثَوَان', ']10,Inf[:count ثَانِيَة']),
+    'a_second' => implode('|', ['{0}:count ثَانِيَة', '{1}ثَانِيَة', '{2}ثَانِيَتَيْن', ']2,11[:count ثَوَان', ']10,Inf[:count ثَانِيَة']),
+    'ago' => 'مُنْذُ :time',
+    'from_now' => 'مِنَ الْآن :time',
+    'after' => 'بَعْدَ :time',
+    'before' => 'قَبْلَ :time',
+
+    // @TODO add shakl to translations below
+    'diff_now' => 'الآن',
+    'diff_today' => 'اليوم',
+    'diff_today_regexp' => 'اليوم(?:\\s+عند)?(?:\\s+الساعة)?',
+    'diff_yesterday' => 'أمس',
+    'diff_yesterday_regexp' => 'أمس(?:\\s+عند)?(?:\\s+الساعة)?',
+    'diff_tomorrow' => 'غداً',
+    'diff_tomorrow_regexp' => 'غدًا(?:\\s+عند)?(?:\\s+الساعة)?',
+    'diff_before_yesterday' => 'قبل الأمس',
+    'diff_after_tomorrow' => 'بعد غد',
+    'period_recurrences' => implode('|', ['{0}مرة', '{1}مرة', '{2}:count مرتين', ']2,11[:count مرات', ']10,Inf[:count مرة']),
+    'period_interval' => 'كل :interval',
+    'period_start_date' => 'من :date',
+    'period_end_date' => 'إلى :date',
+    'months' => $months,
+    'months_short' => $months,
+    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+    'weekdays_short' => ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],
+    'weekdays_min' => ['ح', 'اث', 'ثل', 'أر', 'خم', 'ج', 'س'],
+    'list' => ['، ', ' و '],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[اليوم عند الساعة] LT',
+        'nextDay' => '[غدًا عند الساعة] LT',
+        'nextWeek' => 'dddd [عند الساعة] LT',
+        'lastDay' => '[أمس عند الساعة] LT',
+        'lastWeek' => 'dddd [عند الساعة] LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => ['ص', 'م'],
+    'weekend' => [5, 6],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_TD.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_TD.php
new file mode 100644
index 0000000..8d377ad
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_TD.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ar.php', [
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_TN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_TN.php
new file mode 100644
index 0000000..f096678
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_TN.php
@@ -0,0 +1,91 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Authors:
+ * - JD Isaacks
+ * - Atef Ben Ali (atefBB)
+ * - Mohamed Sabil (mohamedsabil83)
+ */
+$months = [
+    'جانفي',
+    'فيفري',
+    'مارس',
+    'أفريل',
+    'ماي',
+    'جوان',
+    'جويلية',
+    'أوت',
+    'سبتمبر',
+    'أكتوبر',
+    'نوفمبر',
+    'ديسمبر',
+];
+
+return [
+    'year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']),
+    'a_year' => implode('|', ['{0}:count سنة', '{1}سنة', '{2}سنتين', ']2,11[:count سنوات', ']10,Inf[:count سنة']),
+    'month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']),
+    'a_month' => implode('|', ['{0}:count شهر', '{1}شهر', '{2}شهرين', ']2,11[:count أشهر', ']10,Inf[:count شهر']),
+    'week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']),
+    'a_week' => implode('|', ['{0}:count أسبوع', '{1}أسبوع', '{2}أسبوعين', ']2,11[:count أسابيع', ']10,Inf[:count أسبوع']),
+    'day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']),
+    'a_day' => implode('|', ['{0}:count يوم', '{1}يوم', '{2}يومين', ']2,11[:count أيام', ']10,Inf[:count يوم']),
+    'hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']),
+    'a_hour' => implode('|', ['{0}:count ساعة', '{1}ساعة', '{2}ساعتين', ']2,11[:count ساعات', ']10,Inf[:count ساعة']),
+    'minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']),
+    'a_minute' => implode('|', ['{0}:count دقيقة', '{1}دقيقة', '{2}دقيقتين', ']2,11[:count دقائق', ']10,Inf[:count دقيقة']),
+    'second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']),
+    'a_second' => implode('|', ['{0}:count ثانية', '{1}ثانية', '{2}ثانيتين', ']2,11[:count ثواني', ']10,Inf[:count ثانية']),
+    'ago' => 'منذ :time',
+    'from_now' => 'في :time',
+    'after' => 'بعد :time',
+    'before' => 'قبل :time',
+    'diff_now' => 'الآن',
+    'diff_today' => 'اليوم',
+    'diff_today_regexp' => 'اليوم(?:\\s+على)?(?:\\s+الساعة)?',
+    'diff_yesterday' => 'أمس',
+    'diff_yesterday_regexp' => 'أمس(?:\\s+على)?(?:\\s+الساعة)?',
+    'diff_tomorrow' => 'غداً',
+    'diff_tomorrow_regexp' => 'غدا(?:\\s+على)?(?:\\s+الساعة)?',
+    'diff_before_yesterday' => 'قبل الأمس',
+    'diff_after_tomorrow' => 'بعد غد',
+    'period_recurrences' => implode('|', ['{0}مرة', '{1}مرة', '{2}:count مرتين', ']2,11[:count مرات', ']10,Inf[:count مرة']),
+    'period_interval' => 'كل :interval',
+    'period_start_date' => 'من :date',
+    'period_end_date' => 'إلى :date',
+    'months' => $months,
+    'months_short' => $months,
+    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+    'weekdays_short' => ['أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة', 'سبت'],
+    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'list' => ['، ', ' و '],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[اليوم على الساعة] LT',
+        'nextDay' => '[غدا على الساعة] LT',
+        'nextWeek' => 'dddd [على الساعة] LT',
+        'lastDay' => '[أمس على الساعة] LT',
+        'lastWeek' => 'dddd [على الساعة] LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => ['ص', 'م'],
+    'weekend' => [5, 6],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_YE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_YE.php
new file mode 100644
index 0000000..5dc2938
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ar_YE.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/ar.php', [
+    'formats' => [
+        'L' => 'DD MMM, YYYY',
+    ],
+    'months' => ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],
+    'months_short' => ['ينا', 'فبر', 'مار', 'أبر', 'ماي', 'يون', 'يول', 'أغس', 'سبت', 'أكت', 'نوف', 'ديس'],
+    'weekdays' => ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+    'weekdays_short' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'weekdays_min' => ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/as.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/as.php
new file mode 100644
index 0000000..04bc3df
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/as.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/as_IN.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/as_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/as_IN.php
new file mode 100644
index 0000000..5fbc3db
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/as_IN.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Amitakhya Phukan, Red Hat    bug-glibc@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'D-MM-YYYY',
+    ],
+    'months' => ['জানুৱাৰী', 'ফেব্ৰুৱাৰী', 'মাৰ্চ', 'এপ্ৰিল', 'মে', 'জুন', 'জুলাই', 'আগষ্ট', 'ছেপ্তেম্বৰ', 'অক্টোবৰ', 'নৱেম্বৰ', 'ডিচেম্বৰ'],
+    'months_short' => ['জানু', 'ফেব্ৰু', 'মাৰ্চ', 'এপ্ৰিল', 'মে', 'জুন', 'জুলাই', 'আগ', 'সেপ্ট', 'অক্টো', 'নভে', 'ডিসে'],
+    'weekdays' => ['দেওবাৰ', 'সোমবাৰ', 'মঙ্গলবাৰ', 'বুধবাৰ', 'বৃহষ্পতিবাৰ', 'শুক্ৰবাৰ', 'শনিবাৰ'],
+    'weekdays_short' => ['দেও', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহষ্পতি', 'শুক্ৰ', 'শনি'],
+    'weekdays_min' => ['দেও', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহষ্পতি', 'শুক্ৰ', 'শনি'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['পূৰ্ব্বাহ্ন', 'অপৰাহ্ন'],
+
+    'year' => ':count বছৰ',
+    'y' => ':count বছৰ',
+    'a_year' => ':count বছৰ',
+
+    'month' => ':count মাহ',
+    'm' => ':count মাহ',
+    'a_month' => ':count মাহ',
+
+    'week' => ':count সপ্তাহ',
+    'w' => ':count সপ্তাহ',
+    'a_week' => ':count সপ্তাহ',
+
+    'day' => ':count বাৰ',
+    'd' => ':count বাৰ',
+    'a_day' => ':count বাৰ',
+
+    'hour' => ':count ঘণ্টা',
+    'h' => ':count ঘণ্টা',
+    'a_hour' => ':count ঘণ্টা',
+
+    'minute' => ':count মিনিট',
+    'min' => ':count মিনিট',
+    'a_minute' => ':count মিনিট',
+
+    'second' => ':count দ্বিতীয়',
+    's' => ':count দ্বিতীয়',
+    'a_second' => ':count দ্বিতীয়',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/asa.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/asa.php
new file mode 100644
index 0000000..8389757
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/asa.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['icheheavo', 'ichamthi'],
+    'weekdays' => ['Jumapili', 'Jumatatu', 'Jumanne', 'Jumatano', 'Alhamisi', 'Ijumaa', 'Jumamosi'],
+    'weekdays_short' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Ijm', 'Jmo'],
+    'weekdays_min' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Ijm', 'Jmo'],
+    'months' => ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'],
+    'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Dec'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ast.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ast.php
new file mode 100644
index 0000000..d9bdebe
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ast.php
@@ -0,0 +1,59 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Jordi Mallach jordi@gnu.org
+ * - Adolfo Jayme-Barrientos (fitojb)
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'formats' => [
+        'L' => 'DD/MM/YY',
+    ],
+    'months' => ['de xineru', 'de febreru', 'de marzu', 'd’abril', 'de mayu', 'de xunu', 'de xunetu', 'd’agostu', 'de setiembre', 'd’ochobre', 'de payares', 'd’avientu'],
+    'months_short' => ['xin', 'feb', 'mar', 'abr', 'may', 'xun', 'xnt', 'ago', 'set', 'och', 'pay', 'avi'],
+    'weekdays' => ['domingu', 'llunes', 'martes', 'miércoles', 'xueves', 'vienres', 'sábadu'],
+    'weekdays_short' => ['dom', 'llu', 'mar', 'mié', 'xue', 'vie', 'sáb'],
+    'weekdays_min' => ['dom', 'llu', 'mar', 'mié', 'xue', 'vie', 'sáb'],
+
+    'year' => ':count añu|:count años',
+    'y' => ':count añu|:count años',
+    'a_year' => 'un añu|:count años',
+
+    'month' => ':count mes',
+    'm' => ':count mes',
+    'a_month' => 'un mes|:count mes',
+
+    'week' => ':count selmana|:count selmanes',
+    'w' => ':count selmana|:count selmanes',
+    'a_week' => 'una selmana|:count selmanes',
+
+    'day' => ':count día|:count díes',
+    'd' => ':count día|:count díes',
+    'a_day' => 'un día|:count díes',
+
+    'hour' => ':count hora|:count hores',
+    'h' => ':count hora|:count hores',
+    'a_hour' => 'una hora|:count hores',
+
+    'minute' => ':count minutu|:count minutos',
+    'min' => ':count minutu|:count minutos',
+    'a_minute' => 'un minutu|:count minutos',
+
+    'second' => ':count segundu|:count segundos',
+    's' => ':count segundu|:count segundos',
+    'a_second' => 'un segundu|:count segundos',
+
+    'ago' => 'hai :time',
+    'from_now' => 'en :time',
+    'after' => ':time dempués',
+    'before' => ':time enantes',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ast_ES.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ast_ES.php
new file mode 100644
index 0000000..04d7562
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ast_ES.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+return require __DIR__.'/ast.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ayc.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ayc.php
new file mode 100644
index 0000000..d6a6f63
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ayc.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/ayc_PE.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ayc_PE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ayc_PE.php
new file mode 100644
index 0000000..ff18504
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ayc_PE.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - runasimipi.org    libc-alpha@sourceware.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YY',
+    ],
+    'months' => ['inïru', 'phiwriru', 'marsu', 'awrila', 'mayu', 'junyu', 'julyu', 'awustu', 'sitimri', 'uktuwri', 'nuwimri', 'risimri'],
+    'months_short' => ['ini', 'phi', 'mar', 'awr', 'may', 'jun', 'jul', 'awu', 'sit', 'ukt', 'nuw', 'ris'],
+    'weekdays' => ['tuminku', 'lunisa', 'martisa', 'mirkulisa', 'juywisa', 'wirnisa', 'sawäru'],
+    'weekdays_short' => ['tum', 'lun', 'mar', 'mir', 'juy', 'wir', 'saw'],
+    'weekdays_min' => ['tum', 'lun', 'mar', 'mir', 'juy', 'wir', 'saw'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['VM', 'NM'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/az.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/az.php
new file mode 100644
index 0000000..1e92106
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/az.php
@@ -0,0 +1,128 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - Kunal Marwaha
+ * - François B
+ * - JD Isaacks
+ * - Orxan
+ * - Şəhriyar İmanov
+ * - Baran Şengül
+ */
+return [
+    'year' => ':count il',
+    'a_year' => '{1}bir il|]1,Inf[:count il',
+    'y' => ':count il',
+    'month' => ':count ay',
+    'a_month' => '{1}bir ay|]1,Inf[:count ay',
+    'm' => ':count ay',
+    'week' => ':count həftə',
+    'a_week' => '{1}bir həftə|]1,Inf[:count həftə',
+    'w' => ':count h.',
+    'day' => ':count gün',
+    'a_day' => '{1}bir gün|]1,Inf[:count gün',
+    'd' => ':count g.',
+    'hour' => ':count saat',
+    'a_hour' => '{1}bir saat|]1,Inf[:count saat',
+    'h' => ':count saat',
+    'minute' => ':count d.',
+    'a_minute' => '{1}bir dəqiqə|]1,Inf[:count dəqiqə',
+    'min' => ':count dəqiqə',
+    'second' => ':count san.',
+    'a_second' => '{1}birneçə saniyə|]1,Inf[:count saniyə',
+    's' => ':count saniyə',
+    'ago' => ':time əvvəl',
+    'from_now' => ':time sonra',
+    'after' => ':time sonra',
+    'before' => ':time əvvəl',
+    'diff_now' => 'indi',
+    'diff_today' => 'bugün',
+    'diff_today_regexp' => 'bugün(?:\\s+saat)?',
+    'diff_yesterday' => 'dünən',
+    'diff_tomorrow' => 'sabah',
+    'diff_tomorrow_regexp' => 'sabah(?:\\s+saat)?',
+    'diff_before_yesterday' => 'srağagün',
+    'diff_after_tomorrow' => 'birisi gün',
+    'period_recurrences' => ':count dəfədən bir',
+    'period_interval' => 'hər :interval',
+    'period_start_date' => ':date tarixindən başlayaraq',
+    'period_end_date' => ':date tarixinədək',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[bugün saat] LT',
+        'nextDay' => '[sabah saat] LT',
+        'nextWeek' => '[gələn həftə] dddd [saat] LT',
+        'lastDay' => '[dünən] LT',
+        'lastWeek' => '[keçən həftə] dddd [saat] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number) {
+        if ($number === 0) { // special case for zero
+            return "$number-ıncı";
+        }
+
+        static $suffixes = [
+            1 => '-inci',
+            5 => '-inci',
+            8 => '-inci',
+            70 => '-inci',
+            80 => '-inci',
+            2 => '-nci',
+            7 => '-nci',
+            20 => '-nci',
+            50 => '-nci',
+            3 => '-üncü',
+            4 => '-üncü',
+            100 => '-üncü',
+            6 => '-ncı',
+            9 => '-uncu',
+            10 => '-uncu',
+            30 => '-uncu',
+            60 => '-ıncı',
+            90 => '-ıncı',
+        ];
+
+        $lastDigit = $number % 10;
+
+        return $number.($suffixes[$lastDigit] ?? $suffixes[$number % 100 - $lastDigit] ?? $suffixes[$number >= 100 ? 100 : -1] ?? '');
+    },
+    'meridiem' => function ($hour) {
+        if ($hour < 4) {
+            return 'gecə';
+        }
+        if ($hour < 12) {
+            return 'səhər';
+        }
+        if ($hour < 17) {
+            return 'gündüz';
+        }
+
+        return 'axşam';
+    },
+    'months' => ['yanvar', 'fevral', 'mart', 'aprel', 'may', 'iyun', 'iyul', 'avqust', 'sentyabr', 'oktyabr', 'noyabr', 'dekabr'],
+    'months_short' => ['yan', 'fev', 'mar', 'apr', 'may', 'iyn', 'iyl', 'avq', 'sen', 'okt', 'noy', 'dek'],
+    'months_standalone' => ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'İyun', 'İyul', 'Avqust', 'Sentyabr', 'Oktyabr', 'Noyabr', 'Dekabr'],
+    'weekdays' => ['bazar', 'bazar ertəsi', 'çərşənbə axşamı', 'çərşənbə', 'cümə axşamı', 'cümə', 'şənbə'],
+    'weekdays_short' => ['baz', 'bze', 'çax', 'çər', 'cax', 'cüm', 'şən'],
+    'weekdays_min' => ['bz', 'be', 'ça', 'çə', 'ca', 'cü', 'şə'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' və '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/az_AZ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/az_AZ.php
new file mode 100644
index 0000000..2acf881
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/az_AZ.php
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Pablo Saratxaga pablo@mandrakesoft.com
+ */
+return array_replace_recursive(require __DIR__.'/az.php', [
+    'months_short' => ['Yan', 'Fev', 'Mar', 'Apr', 'May', 'İyn', 'İyl', 'Avq', 'Sen', 'Okt', 'Noy', 'Dek'],
+    'weekdays' => ['bazar günü', 'bazar ertəsi', 'çərşənbə axşamı', 'çərşənbə', 'cümə axşamı', 'cümə', 'şənbə'],
+    'weekdays_short' => ['baz', 'ber', 'çax', 'çər', 'cax', 'cüm', 'şnb'],
+    'weekdays_min' => ['baz', 'ber', 'çax', 'çər', 'cax', 'cüm', 'şnb'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/az_Cyrl.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/az_Cyrl.php
new file mode 100644
index 0000000..d697918
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/az_Cyrl.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/az.php', [
+    'weekdays' => ['базар', 'базар ертәси', 'чәршәнбә ахшамы', 'чәршәнбә', 'ҹүмә ахшамы', 'ҹүмә', 'шәнбә'],
+    'weekdays_short' => ['Б.', 'Б.Е.', 'Ч.А.', 'Ч.', 'Ҹ.А.', 'Ҹ.', 'Ш.'],
+    'weekdays_min' => ['Б.', 'Б.Е.', 'Ч.А.', 'Ч.', 'Ҹ.А.', 'Ҹ.', 'Ш.'],
+    'months' => ['јанвар', 'феврал', 'март', 'апрел', 'май', 'ијун', 'ијул', 'август', 'сентјабр', 'октјабр', 'нојабр', 'декабр'],
+    'months_short' => ['јан', 'фев', 'мар', 'апр', 'май', 'ијн', 'ијл', 'авг', 'сен', 'окт', 'ној', 'дек'],
+    'months_standalone' => ['Јанвар', 'Феврал', 'Март', 'Апрел', 'Май', 'Ијун', 'Ијул', 'Август', 'Сентјабр', 'Октјабр', 'Нојабр', 'Декабр'],
+    'meridiem' => ['а', 'п'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/az_IR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/az_IR.php
new file mode 100644
index 0000000..991a0ef
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/az_IR.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Mousa Moradi mousamk@gmail.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'OY/OM/OD',
+    ],
+    'months' => ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مئی', 'ژوئن', 'جولای', 'آقۇست', 'سپتامبر', 'اوْکتوْبر', 'نوْوامبر', 'دسامبر'],
+    'months_short' => ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مئی', 'ژوئن', 'جولای', 'آقۇست', 'سپتامبر', 'اوْکتوْبر', 'نوْوامبر', 'دسامبر'],
+    'weekdays' => ['یکشنبه', 'دوشنبه', 'سه‌شنبه', 'چارشنبه', 'جۆمعه آخشامی', 'جۆمعه', 'شنبه'],
+    'weekdays_short' => ['یکشنبه', 'دوشنبه', 'سه‌شنبه', 'چارشنبه', 'جۆمعه آخشامی', 'جۆمعه', 'شنبه'],
+    'weekdays_min' => ['یکشنبه', 'دوشنبه', 'سه‌شنبه', 'چارشنبه', 'جۆمعه آخشامی', 'جۆمعه', 'شنبه'],
+    'first_day_of_week' => 6,
+    'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰۴', '۰۵', '۰۶', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱۴', '۱۵', '۱۶', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲۴', '۲۵', '۲۶', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳۴', '۳۵', '۳۶', '۳۷', '۳۸', '۳۹', '۴۰', '۴۱', '۴۲', '۴۳', '۴۴', '۴۵', '۴۶', '۴۷', '۴۸', '۴۹', '۵۰', '۵۱', '۵۲', '۵۳', '۵۴', '۵۵', '۵۶', '۵۷', '۵۸', '۵۹', '۶۰', '۶۱', '۶۲', '۶۳', '۶۴', '۶۵', '۶۶', '۶۷', '۶۸', '۶۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷۴', '۷۵', '۷۶', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸۴', '۸۵', '۸۶', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹۴', '۹۵', '۹۶', '۹۷', '۹۸', '۹۹'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/az_Latn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/az_Latn.php
new file mode 100644
index 0000000..8346a5d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/az_Latn.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/az.php', [
+    'meridiem' => ['a', 'p'],
+    'weekdays' => ['bazar', 'bazar ertəsi', 'çərşənbə axşamı', 'çərşənbə', 'cümə axşamı', 'cümə', 'şənbə'],
+    'weekdays_short' => ['B.', 'B.E.', 'Ç.A.', 'Ç.', 'C.A.', 'C.', 'Ş.'],
+    'weekdays_min' => ['B.', 'B.E.', 'Ç.A.', 'Ç.', 'C.A.', 'C.', 'Ş.'],
+    'months' => ['yanvar', 'fevral', 'mart', 'aprel', 'may', 'iyun', 'iyul', 'avqust', 'sentyabr', 'oktyabr', 'noyabr', 'dekabr'],
+    'months_short' => ['yan', 'fev', 'mar', 'apr', 'may', 'iyn', 'iyl', 'avq', 'sen', 'okt', 'noy', 'dek'],
+    'months_standalone' => ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'İyun', 'İyul', 'Avqust', 'Sentyabr', 'Oktyabr', 'Noyabr', 'Dekabr'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'D MMMM YYYY, dddd HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bas.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bas.php
new file mode 100644
index 0000000..1b342bb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bas.php
@@ -0,0 +1,31 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['I bikɛ̂glà', 'I ɓugajɔp'],
+    'weekdays' => ['ŋgwà nɔ̂y', 'ŋgwà njaŋgumba', 'ŋgwà ûm', 'ŋgwà ŋgê', 'ŋgwà mbɔk', 'ŋgwà kɔɔ', 'ŋgwà jôn'],
+    'weekdays_short' => ['nɔy', 'nja', 'uum', 'ŋge', 'mbɔ', 'kɔɔ', 'jon'],
+    'weekdays_min' => ['nɔy', 'nja', 'uum', 'ŋge', 'mbɔ', 'kɔɔ', 'jon'],
+    'months' => ['Kɔndɔŋ', 'Màcɛ̂l', 'Màtùmb', 'Màtop', 'M̀puyɛ', 'Hìlòndɛ̀', 'Njèbà', 'Hìkaŋ', 'Dìpɔ̀s', 'Bìòôm', 'Màyɛsèp', 'Lìbuy li ńyèe'],
+    'months_short' => ['kɔn', 'mac', 'mat', 'mto', 'mpu', 'hil', 'nje', 'hik', 'dip', 'bio', 'may', 'liɓ'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM, YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+
+    'second' => ':count móndî', // less reliable
+    's' => ':count móndî', // less reliable
+    'a_second' => ':count móndî', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/be.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/be.php
new file mode 100644
index 0000000..ce8dbe8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/be.php
@@ -0,0 +1,168 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+// @codeCoverageIgnoreStart
+if (class_exists('Symfony\\Component\\Translation\\PluralizationRules')) {
+    \Symfony\Component\Translation\PluralizationRules::set(function ($number) {
+        return (($number % 10 == 1) && ($number % 100 != 11)) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2);
+    }, 'be');
+}
+// @codeCoverageIgnoreEnd
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - SobakaSlava
+ * - François B
+ * - Serhan Apaydın
+ * - JD Isaacks
+ * - AbadonnaAbbys
+ * - Siomkin Alexander
+ */
+return [
+    'year' => ':count год|:count гады|:count гадоў',
+    'a_year' => '{1}год|:count год|:count гады|:count гадоў',
+    'y' => ':count год|:count гады|:count гадоў',
+    'month' => ':count месяц|:count месяцы|:count месяцаў',
+    'a_month' => '{1}месяц|:count месяц|:count месяцы|:count месяцаў',
+    'm' => ':count месяц|:count месяцы|:count месяцаў',
+    'week' => ':count тыдзень|:count тыдні|:count тыдняў',
+    'a_week' => '{1}тыдзень|:count тыдзень|:count тыдні|:count тыдняў',
+    'w' => ':count тыдзень|:count тыдні|:count тыдняў',
+    'day' => ':count дзень|:count дні|:count дзён',
+    'a_day' => '{1}дзень|:count дзень|:count дні|:count дзён',
+    'd' => ':count дн',
+    'hour' => ':count гадзіну|:count гадзіны|:count гадзін',
+    'a_hour' => '{1}гадзіна|:count гадзіна|:count гадзіны|:count гадзін',
+    'h' => ':count гадзіна|:count гадзіны|:count гадзін',
+    'minute' => ':count хвіліна|:count хвіліны|:count хвілін',
+    'a_minute' => '{1}хвіліна|:count хвіліна|:count хвіліны|:count хвілін',
+    'min' => ':count хв',
+    'second' => ':count секунда|:count секунды|:count секунд',
+    'a_second' => '{1}некалькі секунд|:count секунда|:count секунды|:count секунд',
+    's' => ':count сек',
+
+    'hour_ago' => ':count гадзіну|:count гадзіны|:count гадзін',
+    'a_hour_ago' => '{1}гадзіну|:count гадзіну|:count гадзіны|:count гадзін',
+    'h_ago' => ':count гадзіну|:count гадзіны|:count гадзін',
+    'minute_ago' => ':count хвіліну|:count хвіліны|:count хвілін',
+    'a_minute_ago' => '{1}хвіліну|:count хвіліну|:count хвіліны|:count хвілін',
+    'min_ago' => ':count хвіліну|:count хвіліны|:count хвілін',
+    'second_ago' => ':count секунду|:count секунды|:count секунд',
+    'a_second_ago' => '{1}некалькі секунд|:count секунду|:count секунды|:count секунд',
+    's_ago' => ':count секунду|:count секунды|:count секунд',
+
+    'hour_from_now' => ':count гадзіну|:count гадзіны|:count гадзін',
+    'a_hour_from_now' => '{1}гадзіну|:count гадзіну|:count гадзіны|:count гадзін',
+    'h_from_now' => ':count гадзіну|:count гадзіны|:count гадзін',
+    'minute_from_now' => ':count хвіліну|:count хвіліны|:count хвілін',
+    'a_minute_from_now' => '{1}хвіліну|:count хвіліну|:count хвіліны|:count хвілін',
+    'min_from_now' => ':count хвіліну|:count хвіліны|:count хвілін',
+    'second_from_now' => ':count секунду|:count секунды|:count секунд',
+    'a_second_from_now' => '{1}некалькі секунд|:count секунду|:count секунды|:count секунд',
+    's_from_now' => ':count секунду|:count секунды|:count секунд',
+
+    'hour_after' => ':count гадзіну|:count гадзіны|:count гадзін',
+    'a_hour_after' => '{1}гадзіну|:count гадзіну|:count гадзіны|:count гадзін',
+    'h_after' => ':count гадзіну|:count гадзіны|:count гадзін',
+    'minute_after' => ':count хвіліну|:count хвіліны|:count хвілін',
+    'a_minute_after' => '{1}хвіліну|:count хвіліну|:count хвіліны|:count хвілін',
+    'min_after' => ':count хвіліну|:count хвіліны|:count хвілін',
+    'second_after' => ':count секунду|:count секунды|:count секунд',
+    'a_second_after' => '{1}некалькі секунд|:count секунду|:count секунды|:count секунд',
+    's_after' => ':count секунду|:count секунды|:count секунд',
+
+    'hour_before' => ':count гадзіну|:count гадзіны|:count гадзін',
+    'a_hour_before' => '{1}гадзіну|:count гадзіну|:count гадзіны|:count гадзін',
+    'h_before' => ':count гадзіну|:count гадзіны|:count гадзін',
+    'minute_before' => ':count хвіліну|:count хвіліны|:count хвілін',
+    'a_minute_before' => '{1}хвіліну|:count хвіліну|:count хвіліны|:count хвілін',
+    'min_before' => ':count хвіліну|:count хвіліны|:count хвілін',
+    'second_before' => ':count секунду|:count секунды|:count секунд',
+    'a_second_before' => '{1}некалькі секунд|:count секунду|:count секунды|:count секунд',
+    's_before' => ':count секунду|:count секунды|:count секунд',
+
+    'ago' => ':time таму',
+    'from_now' => 'праз :time',
+    'after' => ':time пасля',
+    'before' => ':time да',
+    'diff_now' => 'цяпер',
+    'diff_today' => 'Сёння',
+    'diff_today_regexp' => 'Сёння(?:\\s+ў)?',
+    'diff_yesterday' => 'учора',
+    'diff_yesterday_regexp' => 'Учора(?:\\s+ў)?',
+    'diff_tomorrow' => 'заўтра',
+    'diff_tomorrow_regexp' => 'Заўтра(?:\\s+ў)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D MMMM YYYY г.',
+        'LLL' => 'D MMMM YYYY г., HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY г., HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Сёння ў] LT',
+        'nextDay' => '[Заўтра ў] LT',
+        'nextWeek' => '[У] dddd [ў] LT',
+        'lastDay' => '[Учора ў] LT',
+        'lastWeek' => function (\Carbon\CarbonInterface $current) {
+            switch ($current->dayOfWeek) {
+                case 1:
+                case 2:
+                case 4:
+                    return '[У мінулы] dddd [ў] LT';
+                default:
+                    return '[У мінулую] dddd [ў] LT';
+            }
+        },
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number, $period) {
+        switch ($period) {
+            case 'M':
+            case 'd':
+            case 'DDD':
+            case 'w':
+            case 'W':
+                return ($number % 10 === 2 || $number % 10 === 3) && ($number % 100 !== 12 && $number % 100 !== 13) ? $number.'-і' : $number.'-ы';
+            case 'D':
+                return $number.'-га';
+            default:
+                return $number;
+        }
+    },
+    'meridiem' => function ($hour) {
+        if ($hour < 4) {
+            return 'ночы';
+        }
+        if ($hour < 12) {
+            return 'раніцы';
+        }
+        if ($hour < 17) {
+            return 'дня';
+        }
+
+        return 'вечара';
+    },
+    'months' => ['студзеня', 'лютага', 'сакавіка', 'красавіка', 'траўня', 'чэрвеня', 'ліпеня', 'жніўня', 'верасня', 'кастрычніка', 'лістапада', 'снежня'],
+    'months_standalone' => ['студзень', 'люты', 'сакавік', 'красавік', 'травень', 'чэрвень', 'ліпень', 'жнівень', 'верасень', 'кастрычнік', 'лістапад', 'снежань'],
+    'months_short' => ['студ', 'лют', 'сак', 'крас', 'трав', 'чэрв', 'ліп', 'жнів', 'вер', 'каст', 'ліст', 'снеж'],
+    'months_regexp' => '/(DD?o?\.?(\[[^\[\]]*\]|\s)+MMMM?|L{2,4}|l{2,4})/',
+    'weekdays' => ['нядзелю', 'панядзелак', 'аўторак', 'сераду', 'чацвер', 'пятніцу', 'суботу'],
+    'weekdays_standalone' => ['нядзеля', 'панядзелак', 'аўторак', 'серада', 'чацвер', 'пятніца', 'субота'],
+    'weekdays_short' => ['нд', 'пн', 'ат', 'ср', 'чц', 'пт', 'сб'],
+    'weekdays_min' => ['нд', 'пн', 'ат', 'ср', 'чц', 'пт', 'сб'],
+    'weekdays_regexp' => '/\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/',
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' і '],
+    'months_short_standalone' => ['сту', 'лют', 'сак', 'кра', 'май', 'чэр', 'ліп', 'жні', 'вер', 'кас', 'ліс', 'сне'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/be_BY.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/be_BY.php
new file mode 100644
index 0000000..26684b4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/be_BY.php
@@ -0,0 +1,22 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/be.php', [
+    'months' => ['студзеня', 'лютага', 'сакавіка', 'красавіка', 'мая', 'чэрвеня', 'ліпеня', 'жніўня', 'верасня', 'кастрычніка', 'лістапада', 'снежня'],
+    'months_short' => ['сту', 'лют', 'сак', 'кра', 'мая', 'чэр', 'ліп', 'жні', 'вер', 'кас', 'ліс', 'сне'],
+    'weekdays' => ['Нядзеля', 'Панядзелак', 'Аўторак', 'Серада', 'Чацвер', 'Пятніца', 'Субота'],
+    'weekdays_short' => ['Няд', 'Пан', 'Аўт', 'Срд', 'Чцв', 'Пят', 'Суб'],
+    'weekdays_min' => ['Няд', 'Пан', 'Аўт', 'Срд', 'Чцв', 'Пят', 'Суб'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/be_BY@latin.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/be_BY@latin.php
new file mode 100644
index 0000000..517ce83
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/be_BY@latin.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD.MM.YYYY',
+    ],
+    'months' => ['studzienia', 'lutaha', 'sakavika', 'krasavika', 'maja', 'červienia', 'lipienia', 'žniŭnia', 'vieraśnia', 'kastryčnika', 'listapada', 'śniežnia'],
+    'months_short' => ['Stu', 'Lut', 'Sak', 'Kra', 'Maj', 'Čer', 'Lip', 'Žni', 'Vie', 'Kas', 'Lis', 'Śni'],
+    'weekdays' => ['Niadziela', 'Paniadziełak', 'Aŭtorak', 'Sierada', 'Čaćvier', 'Piatnica', 'Subota'],
+    'weekdays_short' => ['Nia', 'Pan', 'Aŭt', 'Sie', 'Čać', 'Pia', 'Sub'],
+    'weekdays_min' => ['Nia', 'Pan', 'Aŭt', 'Sie', 'Čać', 'Pia', 'Sub'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bem.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bem.php
new file mode 100644
index 0000000..1c3ef03
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bem.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/bem_ZM.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bem_ZM.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bem_ZM.php
new file mode 100644
index 0000000..620b579
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bem_ZM.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - ANLoc Martin Benjamin locales@africanlocalization.net
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'MM/DD/YYYY',
+    ],
+    'months' => ['Januari', 'Februari', 'Machi', 'Epreo', 'Mei', 'Juni', 'Julai', 'Ogasti', 'Septemba', 'Oktoba', 'Novemba', 'Disemba'],
+    'months_short' => ['Jan', 'Feb', 'Mac', 'Epr', 'Mei', 'Jun', 'Jul', 'Oga', 'Sep', 'Okt', 'Nov', 'Dis'],
+    'weekdays' => ['Pa Mulungu', 'Palichimo', 'Palichibuli', 'Palichitatu', 'Palichine', 'Palichisano', 'Pachibelushi'],
+    'weekdays_short' => ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
+    'weekdays_min' => ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['uluchelo', 'akasuba'],
+
+    'year' => 'myaka :count',
+    'y' => 'myaka :count',
+    'a_year' => 'myaka :count',
+
+    'month' => 'myeshi :count',
+    'm' => 'myeshi :count',
+    'a_month' => 'myeshi :count',
+
+    'week' => 'umulungu :count',
+    'w' => 'umulungu :count',
+    'a_week' => 'umulungu :count',
+
+    'day' => 'inshiku :count',
+    'd' => 'inshiku :count',
+    'a_day' => 'inshiku :count',
+
+    'hour' => 'awala :count',
+    'h' => 'awala :count',
+    'a_hour' => 'awala :count',
+
+    'minute' => 'miniti :count',
+    'min' => 'miniti :count',
+    'a_minute' => 'miniti :count',
+
+    'second' => 'sekondi :count',
+    's' => 'sekondi :count',
+    'a_second' => 'sekondi :count',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ber.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ber.php
new file mode 100644
index 0000000..685603c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ber.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/ber_DZ.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ber_DZ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ber_DZ.php
new file mode 100644
index 0000000..38de10a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ber_DZ.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Pablo Saratxaga pablo@mandrakesoft.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD.MM.YYYY',
+    ],
+    'months' => ['yanvar', 'fevral', 'mart', 'aprel', 'may', 'iyun', 'iyul', 'avqust', 'sentyabr', 'oktyabr', 'noyabr', 'dekabr'],
+    'months_short' => ['Yan', 'Fev', 'Mar', 'Apr', 'May', 'İyn', 'İyl', 'Avq', 'Sen', 'Okt', 'Noy', 'Dek'],
+    'weekdays' => ['bazar günü', 'birinci gün', 'ikinci gün', 'üçüncü gün', 'dördüncü gün', 'beşinci gün', 'altıncı gün'],
+    'weekdays_short' => ['baz', 'bir', 'iki', 'üçü', 'dör', 'beş', 'alt'],
+    'weekdays_min' => ['baz', 'bir', 'iki', 'üçü', 'dör', 'beş', 'alt'],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ber_MA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ber_MA.php
new file mode 100644
index 0000000..38de10a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ber_MA.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Pablo Saratxaga pablo@mandrakesoft.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD.MM.YYYY',
+    ],
+    'months' => ['yanvar', 'fevral', 'mart', 'aprel', 'may', 'iyun', 'iyul', 'avqust', 'sentyabr', 'oktyabr', 'noyabr', 'dekabr'],
+    'months_short' => ['Yan', 'Fev', 'Mar', 'Apr', 'May', 'İyn', 'İyl', 'Avq', 'Sen', 'Okt', 'Noy', 'Dek'],
+    'weekdays' => ['bazar günü', 'birinci gün', 'ikinci gün', 'üçüncü gün', 'dördüncü gün', 'beşinci gün', 'altıncı gün'],
+    'weekdays_short' => ['baz', 'bir', 'iki', 'üçü', 'dör', 'beş', 'alt'],
+    'weekdays_min' => ['baz', 'bir', 'iki', 'üçü', 'dör', 'beş', 'alt'],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bez.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bez.php
new file mode 100644
index 0000000..1facc9d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bez.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['pamilau', 'pamunyi'],
+    'weekdays' => ['pa mulungu', 'pa shahuviluha', 'pa hivili', 'pa hidatu', 'pa hitayi', 'pa hihanu', 'pa shahulembela'],
+    'weekdays_short' => ['Mul', 'Vil', 'Hiv', 'Hid', 'Hit', 'Hih', 'Lem'],
+    'weekdays_min' => ['Mul', 'Vil', 'Hiv', 'Hid', 'Hit', 'Hih', 'Lem'],
+    'months' => ['pa mwedzi gwa hutala', 'pa mwedzi gwa wuvili', 'pa mwedzi gwa wudatu', 'pa mwedzi gwa wutai', 'pa mwedzi gwa wuhanu', 'pa mwedzi gwa sita', 'pa mwedzi gwa saba', 'pa mwedzi gwa nane', 'pa mwedzi gwa tisa', 'pa mwedzi gwa kumi', 'pa mwedzi gwa kumi na moja', 'pa mwedzi gwa kumi na mbili'],
+    'months_short' => ['Hut', 'Vil', 'Dat', 'Tai', 'Han', 'Sit', 'Sab', 'Nan', 'Tis', 'Kum', 'Kmj', 'Kmb'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bg.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bg.php
new file mode 100644
index 0000000..0e17673
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bg.php
@@ -0,0 +1,111 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - François B
+ * - Serhan Apaydın
+ * - JD Isaacks
+ * - Glavić
+ */
+return [
+    'year' => ':count година|:count години',
+    'a_year' => 'година|:count години',
+    'y' => ':count година|:count години',
+    'month' => ':count месец|:count месеца',
+    'a_month' => 'месец|:count месеца',
+    'm' => ':count месец|:count месеца',
+    'week' => ':count седмица|:count седмици',
+    'a_week' => 'седмица|:count седмици',
+    'w' => ':count седмица|:count седмици',
+    'day' => ':count ден|:count дни',
+    'a_day' => 'ден|:count дни',
+    'd' => ':count ден|:count дни',
+    'hour' => ':count час|:count часа',
+    'a_hour' => 'час|:count часа',
+    'h' => ':count час|:count часа',
+    'minute' => ':count минута|:count минути',
+    'a_minute' => 'минута|:count минути',
+    'min' => ':count минута|:count минути',
+    'second' => ':count секунда|:count секунди',
+    'a_second' => 'няколко секунди|:count секунди',
+    's' => ':count секунда|:count секунди',
+    'ago' => 'преди :time',
+    'from_now' => 'след :time',
+    'after' => 'след :time',
+    'before' => 'преди :time',
+    'diff_now' => 'сега',
+    'diff_today' => 'Днес',
+    'diff_today_regexp' => 'Днес(?:\\s+в)?',
+    'diff_yesterday' => 'вчера',
+    'diff_yesterday_regexp' => 'Вчера(?:\\s+в)?',
+    'diff_tomorrow' => 'утре',
+    'diff_tomorrow_regexp' => 'Утре(?:\\s+в)?',
+    'formats' => [
+        'LT' => 'H:mm',
+        'LTS' => 'H:mm:ss',
+        'L' => 'D.MM.YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY H:mm',
+        'LLLL' => 'dddd, D MMMM YYYY H:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Днес в] LT',
+        'nextDay' => '[Утре в] LT',
+        'nextWeek' => 'dddd [в] LT',
+        'lastDay' => '[Вчера в] LT',
+        'lastWeek' => function (\Carbon\CarbonInterface $current) {
+            switch ($current->dayOfWeek) {
+                case 0:
+                case 3:
+                case 6:
+                    return '[В изминалата] dddd [в] LT';
+                default:
+                    return '[В изминалия] dddd [в] LT';
+            }
+        },
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number) {
+        $lastDigit = $number % 10;
+        $last2Digits = $number % 100;
+        if ($number === 0) {
+            return "$number-ев";
+        }
+        if ($last2Digits === 0) {
+            return "$number-ен";
+        }
+        if ($last2Digits > 10 && $last2Digits < 20) {
+            return "$number-ти";
+        }
+        if ($lastDigit === 1) {
+            return "$number-ви";
+        }
+        if ($lastDigit === 2) {
+            return "$number-ри";
+        }
+        if ($lastDigit === 7 || $lastDigit === 8) {
+            return "$number-ми";
+        }
+
+        return "$number-ти";
+    },
+    'months' => ['януари', 'февруари', 'март', 'април', 'май', 'юни', 'юли', 'август', 'септември', 'октомври', 'ноември', 'декември'],
+    'months_short' => ['яну', 'фев', 'мар', 'апр', 'май', 'юни', 'юли', 'авг', 'сеп', 'окт', 'ное', 'дек'],
+    'weekdays' => ['неделя', 'понеделник', 'вторник', 'сряда', 'четвъртък', 'петък', 'събота'],
+    'weekdays_short' => ['нед', 'пон', 'вто', 'сря', 'чет', 'пет', 'съб'],
+    'weekdays_min' => ['нд', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' и '],
+    'meridiem' => ['преди обяд', 'следобед'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bg_BG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bg_BG.php
new file mode 100644
index 0000000..85c0783
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bg_BG.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/bg.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bhb.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bhb.php
new file mode 100644
index 0000000..49f0803
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bhb.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/bhb_IN.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bhb_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bhb_IN.php
new file mode 100644
index 0000000..ab557cb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bhb_IN.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Samsung Electronics Co., Ltd.    alexey.merzlyakov@samsung.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'D/M/YY',
+    ],
+    'months' => ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
+    'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
+    'weekdays' => ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
+    'weekdays_short' => ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
+    'weekdays_min' => ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bho.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bho.php
new file mode 100644
index 0000000..e9ed0b6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bho.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/bho_IN.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bho_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bho_IN.php
new file mode 100644
index 0000000..bc54f36
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bho_IN.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - bhashaghar@googlegroups.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'D/M/YY',
+    ],
+    'months' => ['जनवरी', 'फरवरी', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर"'],
+    'months_short' => ['जनवरी', 'फरवरी', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर"'],
+    'weekdays' => ['रविवार', 'सोमवार', 'मंगलवार', 'बुधवार', 'गुरुवार', 'शुक्रवार', 'शनिवार'],
+    'weekdays_short' => ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरु', 'शुक्र', 'शनि'],
+    'weekdays_min' => ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरु', 'शुक्र', 'शनि'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['पूर्वाह्न', 'अपराह्न'],
+
+    'hour' => ':count मौसम',
+    'h' => ':count मौसम',
+    'a_hour' => ':count मौसम',
+
+    'minute' => ':count कला',
+    'min' => ':count कला',
+    'a_minute' => ':count कला',
+
+    'second' => ':count सोमार',
+    's' => ':count सोमार',
+    'a_second' => ':count सोमार',
+
+    'year' => ':count साल',
+    'y' => ':count साल',
+    'a_year' => ':count साल',
+
+    'month' => ':count महिना',
+    'm' => ':count महिना',
+    'a_month' => ':count महिना',
+
+    'week' => ':count सप्ताह',
+    'w' => ':count सप्ताह',
+    'a_week' => ':count सप्ताह',
+
+    'day' => ':count दिन',
+    'd' => ':count दिन',
+    'a_day' => ':count दिन',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bi.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bi.php
new file mode 100644
index 0000000..dd08128
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bi.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/bi_VU.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bi_VU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bi_VU.php
new file mode 100644
index 0000000..1fe7770
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bi_VU.php
@@ -0,0 +1,53 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Samsung Electronics Co., Ltd.    akhilesh.k@samsung.com & maninder1.s@samsung.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'dddd DD MMM YYYY',
+    ],
+    'months' => ['jenuware', 'febwari', 'maj', 'epril', 'mei', 'jun', 'julae', 'ogis', 'septemba', 'oktoba', 'novemba', 'disemba'],
+    'months_short' => ['jen', 'feb', 'maj', 'epr', 'mei', 'jun', 'jul', 'ogi', 'sep', 'okt', 'nov', 'dis'],
+    'weekdays' => ['sande', 'mande', 'maj', 'wota', 'fraede', 'sarede'],
+    'weekdays_short' => ['san', 'man', 'maj', 'wot', 'fra', 'sar'],
+    'weekdays_min' => ['san', 'man', 'maj', 'wot', 'fra', 'sar'],
+
+    'year' => ':count seven', // less reliable
+    'y' => ':count seven', // less reliable
+    'a_year' => ':count seven', // less reliable
+
+    'month' => ':count mi', // less reliable
+    'm' => ':count mi', // less reliable
+    'a_month' => ':count mi', // less reliable
+
+    'week' => ':count sarede', // less reliable
+    'w' => ':count sarede', // less reliable
+    'a_week' => ':count sarede', // less reliable
+
+    'day' => ':count betde', // less reliable
+    'd' => ':count betde', // less reliable
+    'a_day' => ':count betde', // less reliable
+
+    'hour' => ':count klok', // less reliable
+    'h' => ':count klok', // less reliable
+    'a_hour' => ':count klok', // less reliable
+
+    'minute' => ':count smol', // less reliable
+    'min' => ':count smol', // less reliable
+    'a_minute' => ':count smol', // less reliable
+
+    'second' => ':count tu', // less reliable
+    's' => ':count tu', // less reliable
+    'a_second' => ':count tu', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bm.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bm.php
new file mode 100644
index 0000000..92822d2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bm.php
@@ -0,0 +1,70 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Estelle Comment
+ */
+return [
+    'year' => 'san :count',
+    'a_year' => '{1}san kelen|san :count',
+    'y' => 'san :count',
+    'month' => 'kalo :count',
+    'a_month' => '{1}kalo kelen|kalo :count',
+    'm' => 'k. :count',
+    'week' => 'dɔgɔkun :count',
+    'a_week' => 'dɔgɔkun kelen',
+    'w' => 'd. :count',
+    'day' => 'tile :count',
+    'd' => 't. :count',
+    'a_day' => '{1}tile kelen|tile :count',
+    'hour' => 'lɛrɛ :count',
+    'a_hour' => '{1}lɛrɛ kelen|lɛrɛ :count',
+    'h' => 'l. :count',
+    'minute' => 'miniti :count',
+    'a_minute' => '{1}miniti kelen|miniti :count',
+    'min' => 'm. :count',
+    'second' => 'sekondi :count',
+    'a_second' => '{1}sanga dama dama|sekondi :count',
+    's' => 'sek. :count',
+    'ago' => 'a bɛ :time bɔ',
+    'from_now' => ':time kɔnɔ',
+    'diff_today' => 'Bi',
+    'diff_yesterday' => 'Kunu',
+    'diff_yesterday_regexp' => 'Kunu(?:\\s+lɛrɛ)?',
+    'diff_tomorrow' => 'Sini',
+    'diff_tomorrow_regexp' => 'Sini(?:\\s+lɛrɛ)?',
+    'diff_today_regexp' => 'Bi(?:\\s+lɛrɛ)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'MMMM [tile] D [san] YYYY',
+        'LLL' => 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
+        'LLLL' => 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Bi lɛrɛ] LT',
+        'nextDay' => '[Sini lɛrɛ] LT',
+        'nextWeek' => 'dddd [don lɛrɛ] LT',
+        'lastDay' => '[Kunu lɛrɛ] LT',
+        'lastWeek' => 'dddd [tɛmɛnen lɛrɛ] LT',
+        'sameElse' => 'L',
+    ],
+    'months' => ['Zanwuyekalo', 'Fewuruyekalo', 'Marisikalo', 'Awirilikalo', 'Mɛkalo', 'Zuwɛnkalo', 'Zuluyekalo', 'Utikalo', 'Sɛtanburukalo', 'ɔkutɔburukalo', 'Nowanburukalo', 'Desanburukalo'],
+    'months_short' => ['Zan', 'Few', 'Mar', 'Awi', 'Mɛ', 'Zuw', 'Zul', 'Uti', 'Sɛt', 'ɔku', 'Now', 'Des'],
+    'weekdays' => ['Kari', 'Ntɛnɛn', 'Tarata', 'Araba', 'Alamisa', 'Juma', 'Sibiri'],
+    'weekdays_short' => ['Kar', 'Ntɛ', 'Tar', 'Ara', 'Ala', 'Jum', 'Sib'],
+    'weekdays_min' => ['Ka', 'Nt', 'Ta', 'Ar', 'Al', 'Ju', 'Si'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' ni '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bn.php
new file mode 100644
index 0000000..8e14789
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bn.php
@@ -0,0 +1,100 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - Shakib Hossain
+ * - Raju
+ * - Aniruddha Adhikary
+ * - JD Isaacks
+ * - Saiful Islam
+ * - Faisal Islam
+ */
+return [
+    'year' => ':count বছর',
+    'a_year' => 'এক বছর|:count বছর',
+    'y' => '১ বছর|:count বছর',
+    'month' => ':count মাস',
+    'a_month' => 'এক মাস|:count মাস',
+    'm' => '১ মাস|:count মাস',
+    'week' => ':count সপ্তাহ',
+    'a_week' => '১ সপ্তাহ|:count সপ্তাহ',
+    'w' => '১ সপ্তাহ|:count সপ্তাহ',
+    'day' => ':count দিন',
+    'a_day' => 'এক দিন|:count দিন',
+    'd' => '১ দিন|:count দিন',
+    'hour' => ':count ঘন্টা',
+    'a_hour' => 'এক ঘন্টা|:count ঘন্টা',
+    'h' => '১ ঘন্টা|:count ঘন্টা',
+    'minute' => ':count মিনিট',
+    'a_minute' => 'এক মিনিট|:count মিনিট',
+    'min' => '১ মিনিট|:count মিনিট',
+    'second' => ':count সেকেন্ড',
+    'a_second' => 'কয়েক সেকেন্ড|:count সেকেন্ড',
+    's' => '১ সেকেন্ড|:count সেকেন্ড',
+    'ago' => ':time আগে',
+    'from_now' => ':time পরে',
+    'after' => ':time পরে',
+    'before' => ':time আগে',
+    'diff_now' => 'এখন',
+    'diff_today' => 'আজ',
+    'diff_yesterday' => 'গতকাল',
+    'diff_tomorrow' => 'আগামীকাল',
+    'period_recurrences' => ':count বার|:count বার',
+    'period_interval' => 'প্রতি :interval',
+    'period_start_date' => ':date থেকে',
+    'period_end_date' => ':date পর্যন্ত',
+    'formats' => [
+        'LT' => 'A Oh:Om সময়',
+        'LTS' => 'A Oh:Om:Os সময়',
+        'L' => 'OD/OM/OY',
+        'LL' => 'OD MMMM OY',
+        'LLL' => 'OD MMMM OY, A Oh:Om সময়',
+        'LLLL' => 'dddd, OD MMMM OY, A Oh:Om সময়',
+    ],
+    'calendar' => [
+        'sameDay' => '[আজ] LT',
+        'nextDay' => '[আগামীকাল] LT',
+        'nextWeek' => 'dddd, LT',
+        'lastDay' => '[গতকাল] LT',
+        'lastWeek' => '[গত] dddd, LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => function ($hour) {
+        if ($hour < 4) {
+            return 'রাত';
+        }
+        if ($hour < 10) {
+            return 'সকাল';
+        }
+        if ($hour < 17) {
+            return 'দুপুর';
+        }
+        if ($hour < 20) {
+            return 'বিকাল';
+        }
+
+        return 'রাত';
+    },
+    'months' => ['জানুয়ারী', 'ফেব্রুয়ারি', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর'],
+    'months_short' => ['জানু', 'ফেব', 'মার্চ', 'এপ্র', 'মে', 'জুন', 'জুল', 'আগ', 'সেপ্ট', 'অক্টো', 'নভে', 'ডিসে'],
+    'weekdays' => ['রবিবার', 'সোমবার', 'মঙ্গলবার', 'বুধবার', 'বৃহস্পতিবার', 'শুক্রবার', 'শনিবার'],
+    'weekdays_short' => ['রবি', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহস্পতি', 'শুক্র', 'শনি'],
+    'weekdays_min' => ['রবি', 'সোম', 'মঙ্গ', 'বুধ', 'বৃহঃ', 'শুক্র', 'শনি'],
+    'list' => [', ', ' এবং '],
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+    'weekdays_standalone' => ['রবিবার', 'সোমবার', 'মঙ্গলবার', 'বুধবার', 'বৃহষ্পতিবার', 'শুক্রবার', 'শনিবার'],
+    'weekdays_min_standalone' => ['রঃ', 'সোঃ', 'মঃ', 'বুঃ', 'বৃঃ', 'শুঃ', 'শনি'],
+    'months_short_standalone' => ['জানুয়ারী', 'ফেব্রুয়ারী', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর'],
+    'alt_numbers' => ['০', '১', '২', '৩', '৪', '৫', '৬', '৭', '৮', '৯'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bn_BD.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bn_BD.php
new file mode 100644
index 0000000..b5b28dd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bn_BD.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ankur Group, Taneem Ahmed, Jamil Ahmed
+ */
+return array_replace_recursive(require __DIR__.'/bn.php', [
+    'formats' => [
+        'L' => 'D/M/YY',
+    ],
+    'months' => ['জানুয়ারী', 'ফেব্রুয়ারী', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর'],
+    'months_short' => ['জানু', 'ফেব', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর'],
+    'weekdays' => ['রবিবার', 'সোমবার', 'মঙ্গলবার', 'বুধবার', 'বৃহস্পতিবার', 'শুক্রবার', 'শনিবার'],
+    'weekdays_short' => ['রবি', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহঃ', 'শুক্র', 'শনি'],
+    'weekdays_min' => ['রবি', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহঃ', 'শুক্র', 'শনি'],
+    'first_day_of_week' => 5,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bn_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bn_IN.php
new file mode 100644
index 0000000..8b3a50e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bn_IN.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/bn.php', [
+    'formats' => [
+        'L' => 'D/M/YY',
+    ],
+    'months' => ['জানুয়ারী', 'ফেব্রুয়ারী', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর'],
+    'months_short' => ['জানু', 'ফেব', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগস্ট', 'সেপ্টেম্বর', 'অক্টোবর', 'নভেম্বর', 'ডিসেম্বর'],
+    'weekdays' => ['রবিবার', 'সোমবার', 'মঙ্গলবার', 'বুধবার', 'বৃহস্পতিবার', 'শুক্রবার', 'শনিবার'],
+    'weekdays_short' => ['রবি', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহস্পতি', 'শুক্র', 'শনি'],
+    'weekdays_min' => ['রবি', 'সোম', 'মঙ্গল', 'বুধ', 'বৃহস্পতি', 'শুক্র', 'শনি'],
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bo.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bo.php
new file mode 100644
index 0000000..99e1bf4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bo.php
@@ -0,0 +1,71 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - JD Isaacks
+ */
+return [
+    'year' => '{1}ལོ་གཅིག|]1,Inf[:count ལོ',
+    'month' => '{1}ཟླ་བ་གཅིག|]1,Inf[:count ཟླ་བ',
+    'week' => ':count བདུན་ཕྲག',
+    'day' => '{1}ཉིན་གཅིག|]1,Inf[:count ཉིན་',
+    'hour' => '{1}ཆུ་ཚོད་གཅིག|]1,Inf[:count ཆུ་ཚོད',
+    'minute' => '{1}སྐར་མ་གཅིག|]1,Inf[:count སྐར་མ',
+    'second' => '{1}ལམ་སང|]1,Inf[:count སྐར་ཆ།',
+    'ago' => ':time སྔན་ལ',
+    'from_now' => ':time ལ་',
+    'diff_yesterday' => 'ཁ་སང',
+    'diff_today' => 'དི་རིང',
+    'diff_tomorrow' => 'སང་ཉིན',
+    'formats' => [
+        'LT' => 'A h:mm',
+        'LTS' => 'A h:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY, A h:mm',
+        'LLLL' => 'dddd, D MMMM YYYY, A h:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[དི་རིང] LT',
+        'nextDay' => '[སང་ཉིན] LT',
+        'nextWeek' => '[བདུན་ཕྲག་རྗེས་མ], LT',
+        'lastDay' => '[ཁ་སང] LT',
+        'lastWeek' => '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => function ($hour) {
+        if ($hour < 4) {
+            return 'མཚན་མོ';
+        }
+        if ($hour < 10) {
+            return 'ཞོགས་ཀས';
+        }
+        if ($hour < 17) {
+            return 'ཉིན་གུང';
+        }
+        if ($hour < 20) {
+            return 'དགོང་དག';
+        }
+
+        return 'མཚན་མོ';
+    },
+    'months' => ['ཟླ་བ་དང་པོ', 'ཟླ་བ་གཉིས་པ', 'ཟླ་བ་གསུམ་པ', 'ཟླ་བ་བཞི་པ', 'ཟླ་བ་ལྔ་པ', 'ཟླ་བ་དྲུག་པ', 'ཟླ་བ་བདུན་པ', 'ཟླ་བ་བརྒྱད་པ', 'ཟླ་བ་དགུ་པ', 'ཟླ་བ་བཅུ་པ', 'ཟླ་བ་བཅུ་གཅིག་པ', 'ཟླ་བ་བཅུ་གཉིས་པ'],
+    'months_short' => ['ཟླ་བ་དང་པོ', 'ཟླ་བ་གཉིས་པ', 'ཟླ་བ་གསུམ་པ', 'ཟླ་བ་བཞི་པ', 'ཟླ་བ་ལྔ་པ', 'ཟླ་བ་དྲུག་པ', 'ཟླ་བ་བདུན་པ', 'ཟླ་བ་བརྒྱད་པ', 'ཟླ་བ་དགུ་པ', 'ཟླ་བ་བཅུ་པ', 'ཟླ་བ་བཅུ་གཅིག་པ', 'ཟླ་བ་བཅུ་གཉིས་པ'],
+    'weekdays' => ['གཟའ་ཉི་མ་', 'གཟའ་ཟླ་བ་', 'གཟའ་མིག་དམར་', 'གཟའ་ལྷག་པ་', 'གཟའ་ཕུར་བུ', 'གཟའ་པ་སངས་', 'གཟའ་སྤེན་པ་'],
+    'weekdays_short' => ['ཉི་མ་', 'ཟླ་བ་', 'མིག་དམར་', 'ལྷག་པ་', 'ཕུར་བུ', 'པ་སངས་', 'སྤེན་པ་'],
+    'weekdays_min' => ['ཉི་མ་', 'ཟླ་བ་', 'མིག་དམར་', 'ལྷག་པ་', 'ཕུར་བུ', 'པ་སངས་', 'སྤེན་པ་'],
+    'list' => [', ', ' ཨནད་ '],
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+    'months_standalone' => ['ཟླ་བ་དང་པོ་', 'ཟླ་བ་གཉིས་པ་', 'ཟླ་བ་གསུམ་པ་', 'ཟླ་བ་བཞི་པ་', 'ཟླ་བ་ལྔ་པ་', 'ཟླ་བ་དྲུག་པ་', 'ཟླ་བ་བདུན་པ་', 'ཟླ་བ་བརྒྱད་པ་', 'ཟླ་བ་དགུ་པ་', 'ཟླ་བ་བཅུ་པ་', 'ཟླ་བ་བཅུ་གཅིག་པ་', 'ཟླ་བ་བཅུ་གཉིས་པ་'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bo_CN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bo_CN.php
new file mode 100644
index 0000000..c3d9d8b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bo_CN.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/bo.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bo_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bo_IN.php
new file mode 100644
index 0000000..a377fb5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bo_IN.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/bo.php', [
+    'meridiem' => ['སྔ་དྲོ་', 'ཕྱི་དྲོ་'],
+    'weekdays' => ['གཟའ་ཉི་མ་', 'གཟའ་ཟླ་བ་', 'གཟའ་མིག་དམར་', 'གཟའ་ལྷག་པ་', 'གཟའ་ཕུར་བུ་', 'གཟའ་པ་སངས་', 'གཟའ་སྤེན་པ་'],
+    'weekdays_short' => ['ཉི་མ་', 'ཟླ་བ་', 'མིག་དམར་', 'ལྷག་པ་', 'ཕུར་བུ་', 'པ་སངས་', 'སྤེན་པ་'],
+    'weekdays_min' => ['ཉི་མ་', 'ཟླ་བ་', 'མིག་དམར་', 'ལྷག་པ་', 'ཕུར་བུ་', 'པ་སངས་', 'སྤེན་པ་'],
+    'months' => ['ཟླ་བ་དང་པོ', 'ཟླ་བ་གཉིས་པ', 'ཟླ་བ་གསུམ་པ', 'ཟླ་བ་བཞི་པ', 'ཟླ་བ་ལྔ་པ', 'ཟླ་བ་དྲུག་པ', 'ཟླ་བ་བདུན་པ', 'ཟླ་བ་བརྒྱད་པ', 'ཟླ་བ་དགུ་པ', 'ཟླ་བ་བཅུ་པ', 'ཟླ་བ་བཅུ་གཅིག་པ', 'ཟླ་བ་བཅུ་གཉིས་པ'],
+    'months_short' => ['ཟླ་༡', 'ཟླ་༢', 'ཟླ་༣', 'ཟླ་༤', 'ཟླ་༥', 'ཟླ་༦', 'ཟླ་༧', 'ཟླ་༨', 'ཟླ་༩', 'ཟླ་༡༠', 'ཟླ་༡༡', 'ཟླ་༡༢'],
+    'months_standalone' => ['ཟླ་བ་དང་པོ་', 'ཟླ་བ་གཉིས་པ་', 'ཟླ་བ་གསུམ་པ་', 'ཟླ་བ་བཞི་པ་', 'ཟླ་བ་ལྔ་པ་', 'ཟླ་བ་དྲུག་པ་', 'ཟླ་བ་བདུན་པ་', 'ཟླ་བ་བརྒྱད་པ་', 'ཟླ་བ་དགུ་པ་', 'ཟླ་བ་བཅུ་པ་', 'ཟླ་བ་བཅུ་གཅིག་པ་', 'ཟླ་བ་བཅུ་གཉིས་པ་'],
+    'weekend' => [0, 0],
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'YYYY-MM-DD',
+        'LL' => 'YYYY ལོའི་MMMཚེས་D',
+        'LLL' => 'སྤྱི་ལོ་YYYY MMMMའི་ཚེས་D h:mm a',
+        'LLLL' => 'YYYY MMMMའི་ཚེས་D, dddd h:mm a',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/br.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/br.php
new file mode 100644
index 0000000..583472f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/br.php
@@ -0,0 +1,76 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - François B
+ * - Serhan Apaydın
+ * - JD Isaacks
+ */
+return [
+    'year' => '{1}:count bloaz|{3,4,5,9}:count bloaz|[0,Inf[:count vloaz',
+    'a_year' => '{1}ur bloaz|{3,4,5,9}:count bloaz|[0,Inf[:count vloaz',
+    'month' => '{1}:count miz|{2}:count viz|[0,Inf[:count miz',
+    'a_month' => '{1}ur miz|{2}:count viz|[0,Inf[:count miz',
+    'week' => ':count sizhun',
+    'a_week' => '{1}ur sizhun|:count sizhun',
+    'day' => '{1}:count devezh|{2}:count zevezh|[0,Inf[:count devezh',
+    'a_day' => '{1}un devezh|{2}:count zevezh|[0,Inf[:count devezh',
+    'hour' => ':count eur',
+    'a_hour' => '{1}un eur|:count eur',
+    'minute' => '{1}:count vunutenn|{2}:count vunutenn|[0,Inf[:count munutenn',
+    'a_minute' => '{1}ur vunutenn|{2}:count vunutenn|[0,Inf[:count munutenn',
+    'second' => ':count eilenn',
+    'a_second' => '{1}un nebeud segondennoù|[0,Inf[:count eilenn',
+    'ago' => ':time \'zo',
+    'from_now' => 'a-benn :time',
+    'diff_now' => 'bremañ',
+    'diff_today' => 'Hiziv',
+    'diff_today_regexp' => 'Hiziv(?:\\s+da)?',
+    'diff_yesterday' => 'decʼh',
+    'diff_yesterday_regexp' => 'Dec\'h(?:\\s+da)?',
+    'diff_tomorrow' => 'warcʼhoazh',
+    'diff_tomorrow_regexp' => 'Warc\'hoazh(?:\\s+da)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D [a viz] MMMM YYYY',
+        'LLL' => 'D [a viz] MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D [a viz] MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Hiziv da] LT',
+        'nextDay' => '[Warc\'hoazh da] LT',
+        'nextWeek' => 'dddd [da] LT',
+        'lastDay' => '[Dec\'h da] LT',
+        'lastWeek' => 'dddd [paset da] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number) {
+        return $number.($number === 1 ? 'añ' : 'vet');
+    },
+    'months' => ['Genver', 'C\'hwevrer', 'Meurzh', 'Ebrel', 'Mae', 'Mezheven', 'Gouere', 'Eost', 'Gwengolo', 'Here', 'Du', 'Kerzu'],
+    'months_short' => ['Gen', 'C\'hwe', 'Meu', 'Ebr', 'Mae', 'Eve', 'Gou', 'Eos', 'Gwe', 'Her', 'Du', 'Ker'],
+    'weekdays' => ['Sul', 'Lun', 'Meurzh', 'Merc\'her', 'Yaou', 'Gwener', 'Sadorn'],
+    'weekdays_short' => ['Sul', 'Lun', 'Meu', 'Mer', 'Yao', 'Gwe', 'Sad'],
+    'weekdays_min' => ['Su', 'Lu', 'Me', 'Mer', 'Ya', 'Gw', 'Sa'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' hag '],
+    'meridiem' => ['A.M.', 'G.M.'],
+
+    'y' => ':count bl.',
+    'd' => ':count d',
+    'h' => ':count e',
+    'min' => ':count min',
+    's' => ':count s',
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/br_FR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/br_FR.php
new file mode 100644
index 0000000..9d939fd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/br_FR.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/br.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/brx.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/brx.php
new file mode 100644
index 0000000..a0a7bf9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/brx.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/brx_IN.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/brx_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/brx_IN.php
new file mode 100644
index 0000000..2d80ced
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/brx_IN.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Red Hat Pune    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'M/D/YY',
+    ],
+    'months' => ['जानुवारी', 'फेब्रुवारी', 'मार्स', 'एफ्रिल', 'मे', 'जुन', 'जुलाइ', 'आगस्थ', 'सेबथेज्ब़र', 'अखथबर', 'नबेज्ब़र', 'दिसेज्ब़र'],
+    'months_short' => ['जानुवारी', 'फेब्रुवारी', 'मार्स', 'एप्रिल', 'मे', 'जुन', 'जुलाइ', 'आगस्थ', 'सेबथेज्ब़र', 'अखथबर', 'नबेज्ब़र', 'दिसेज्ब़र'],
+    'weekdays' => ['रबिबार', 'सोबार', 'मंगलबार', 'बुदबार', 'बिसथिबार', 'सुखुरबार', 'सुनिबार'],
+    'weekdays_short' => ['रबि', 'सम', 'मंगल', 'बुद', 'बिसथि', 'सुखुर', 'सुनि'],
+    'weekdays_min' => ['रबि', 'सम', 'मंगल', 'बुद', 'बिसथि', 'सुखुर', 'सुनि'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['फुं.', 'बेलासे.'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bs.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bs.php
new file mode 100644
index 0000000..d2fc5aa
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bs.php
@@ -0,0 +1,94 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - bokideckonja
+ * - Josh Soref
+ * - François B
+ * - shaishavgandhi05
+ * - Serhan Apaydın
+ * - JD Isaacks
+ */
+return [
+    'year' => ':count godina|:count godine|:count godina',
+    'y' => ':count godina|:count godine|:count godina',
+    'month' => ':count mjesec|:count mjeseca|:count mjeseci',
+    'm' => ':count mjesec|:count mjeseca|:count mjeseci',
+    'week' => ':count sedmice|:count sedmicu|:count sedmica',
+    'w' => ':count sedmice|:count sedmicu|:count sedmica',
+    'day' => ':count dan|:count dana|:count dana',
+    'd' => ':count dan|:count dana|:count dana',
+    'hour' => ':count sat|:count sata|:count sati',
+    'h' => ':count sat|:count sata|:count sati',
+    'minute' => ':count minut|:count minuta|:count minuta',
+    'min' => ':count minut|:count minuta|:count minuta',
+    'second' => ':count sekund|:count sekunda|:count sekundi',
+    's' => ':count sekund|:count sekunda|:count sekundi',
+    'ago' => 'prije :time',
+    'from_now' => 'za :time',
+    'after' => 'nakon :time',
+    'before' => ':time ranije',
+    'diff_now' => 'sada',
+    'diff_today' => 'danas',
+    'diff_today_regexp' => 'danas(?:\\s+u)?',
+    'diff_yesterday' => 'jučer',
+    'diff_yesterday_regexp' => 'jučer(?:\\s+u)?',
+    'diff_tomorrow' => 'sutra',
+    'diff_tomorrow_regexp' => 'sutra(?:\\s+u)?',
+    'formats' => [
+        'LT' => 'H:mm',
+        'LTS' => 'H:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D. MMMM YYYY',
+        'LLL' => 'D. MMMM YYYY H:mm',
+        'LLLL' => 'dddd, D. MMMM YYYY H:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[danas u] LT',
+        'nextDay' => '[sutra u] LT',
+        'nextWeek' => function (\Carbon\CarbonInterface $current) {
+            switch ($current->dayOfWeek) {
+                case 0:
+                    return '[u] [nedjelju] [u] LT';
+                case 3:
+                    return '[u] [srijedu] [u] LT';
+                case 6:
+                    return '[u] [subotu] [u] LT';
+                default:
+                    return '[u] dddd [u] LT';
+            }
+        },
+        'lastDay' => '[jučer u] LT',
+        'lastWeek' => function (\Carbon\CarbonInterface $current) {
+            switch ($current->dayOfWeek) {
+                case 0:
+                case 3:
+                    return '[prošlu] dddd [u] LT';
+                case 6:
+                    return '[prošle] [subote] [u] LT';
+                default:
+                    return '[prošli] dddd [u] LT';
+            }
+        },
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':number.',
+    'months' => ['januar', 'februar', 'mart', 'april', 'maj', 'juni', 'juli', 'august', 'septembar', 'oktobar', 'novembar', 'decembar'],
+    'months_short' => ['jan.', 'feb.', 'mar.', 'apr.', 'maj.', 'jun.', 'jul.', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.'],
+    'weekdays' => ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', 'petak', 'subota'],
+    'weekdays_short' => ['ned.', 'pon.', 'uto.', 'sri.', 'čet.', 'pet.', 'sub.'],
+    'weekdays_min' => ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' i '],
+    'meridiem' => ['prijepodne', 'popodne'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bs_BA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bs_BA.php
new file mode 100644
index 0000000..4dd21ba
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bs_BA.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/bs.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bs_Cyrl.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bs_Cyrl.php
new file mode 100644
index 0000000..09221e0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bs_Cyrl.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/bs.php', [
+    'meridiem' => ['пре подне', 'поподне'],
+    'weekdays' => ['недјеља', 'понедјељак', 'уторак', 'сриједа', 'четвртак', 'петак', 'субота'],
+    'weekdays_short' => ['нед', 'пон', 'уто', 'сри', 'чет', 'пет', 'суб'],
+    'weekdays_min' => ['нед', 'пон', 'уто', 'сри', 'чет', 'пет', 'суб'],
+    'months' => ['јануар', 'фебруар', 'март', 'април', 'мај', 'јуни', 'јули', 'аугуст', 'септембар', 'октобар', 'новембар', 'децембар'],
+    'months_short' => ['јан', 'феб', 'мар', 'апр', 'мај', 'јун', 'јул', 'ауг', 'сеп', 'окт', 'нов', 'дец'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D.M.YYYY.',
+        'LL' => 'DD.MM.YYYY.',
+        'LLL' => 'DD. MMMM YYYY. HH:mm',
+        'LLLL' => 'dddd, DD. MMMM YYYY. HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bs_Latn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bs_Latn.php
new file mode 100644
index 0000000..91ed1cc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/bs_Latn.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/bs.php', [
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/byn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/byn.php
new file mode 100644
index 0000000..7125f3d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/byn.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/byn_ER.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/byn_ER.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/byn_ER.php
new file mode 100644
index 0000000..ad67533
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/byn_ER.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ge'ez Frontier Foundation    locales@geez.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['ልደትሪ', 'ካብኽብቲ', 'ክብላ', 'ፋጅኺሪ', 'ክቢቅሪ', 'ምኪኤል ትጓ̅ኒሪ', 'ኰርኩ', 'ማርያም ትሪ', 'ያኸኒ መሳቅለሪ', 'መተሉ', 'ምኪኤል መሽወሪ', 'ተሕሳስሪ'],
+    'months_short' => ['ልደት', 'ካብኽ', 'ክብላ', 'ፋጅኺ', 'ክቢቅ', 'ም/ት', 'ኰር', 'ማርያ', 'ያኸኒ', 'መተሉ', 'ም/ም', 'ተሕሳ'],
+    'weekdays' => ['ሰንበር ቅዳዅ', 'ሰኑ', 'ሰሊጝ', 'ለጓ ወሪ ለብዋ', 'ኣምድ', 'ኣርብ', 'ሰንበር ሽጓዅ'],
+    'weekdays_short' => ['ሰ/ቅ', 'ሰኑ', 'ሰሊጝ', 'ለጓ', 'ኣምድ', 'ኣርብ', 'ሰ/ሽ'],
+    'weekdays_min' => ['ሰ/ቅ', 'ሰኑ', 'ሰሊጝ', 'ለጓ', 'ኣምድ', 'ኣርብ', 'ሰ/ሽ'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['ፋዱስ ጃብ', 'ፋዱስ ደምቢ'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ca.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ca.php
new file mode 100644
index 0000000..5c91439
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ca.php
@@ -0,0 +1,114 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - mestremuten
+ * - François B
+ * - Marc Ordinas i Llopis
+ * - Pere Orga
+ * - JD Isaacks
+ * - Quentí
+ * - Víctor Díaz
+ * - Xavi
+ * - qcardona
+ */
+return [
+    'year' => ':count any|:count anys',
+    'a_year' => 'un any|:count anys',
+    'y' => ':count any|:count anys',
+    'month' => ':count mes|:count mesos',
+    'a_month' => 'un mes|:count mesos',
+    'm' => ':count mes|:count mesos',
+    'week' => ':count setmana|:count setmanes',
+    'a_week' => 'una setmana|:count setmanes',
+    'w' => ':count setmana|:count setmanes',
+    'day' => ':count dia|:count dies',
+    'a_day' => 'un dia|:count dies',
+    'd' => ':count d',
+    'hour' => ':count hora|:count hores',
+    'a_hour' => 'una hora|:count hores',
+    'h' => ':count h',
+    'minute' => ':count minut|:count minuts',
+    'a_minute' => 'un minut|:count minuts',
+    'min' => ':count min',
+    'second' => ':count segon|:count segons',
+    'a_second' => 'uns segons|:count segons',
+    's' => ':count s',
+    'ago' => 'fa :time',
+    'from_now' => 'd\'aquí a :time',
+    'after' => ':time després',
+    'before' => ':time abans',
+    'diff_now' => 'ara mateix',
+    'diff_today' => 'avui',
+    'diff_today_regexp' => 'avui(?:\\s+a)?(?:\\s+les)?',
+    'diff_yesterday' => 'ahir',
+    'diff_yesterday_regexp' => 'ahir(?:\\s+a)?(?:\\s+les)?',
+    'diff_tomorrow' => 'demà',
+    'diff_tomorrow_regexp' => 'demà(?:\\s+a)?(?:\\s+les)?',
+    'diff_before_yesterday' => 'abans d\'ahir',
+    'diff_after_tomorrow' => 'demà passat',
+    'period_recurrences' => ':count cop|:count cops',
+    'period_interval' => 'cada :interval',
+    'period_start_date' => 'de :date',
+    'period_end_date' => 'fins a :date',
+    'formats' => [
+        'LT' => 'H:mm',
+        'LTS' => 'H:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM [de] YYYY',
+        'LLL' => 'D MMMM [de] YYYY [a les] H:mm',
+        'LLLL' => 'dddd D MMMM [de] YYYY [a les] H:mm',
+    ],
+    'calendar' => [
+        'sameDay' => function (\Carbon\CarbonInterface $current) {
+            return '[avui a '.($current->hour !== 1 ? 'les' : 'la').'] LT';
+        },
+        'nextDay' => function (\Carbon\CarbonInterface $current) {
+            return '[demà a '.($current->hour !== 1 ? 'les' : 'la').'] LT';
+        },
+        'nextWeek' => function (\Carbon\CarbonInterface $current) {
+            return 'dddd [a '.($current->hour !== 1 ? 'les' : 'la').'] LT';
+        },
+        'lastDay' => function (\Carbon\CarbonInterface $current) {
+            return '[ahir a '.($current->hour !== 1 ? 'les' : 'la').'] LT';
+        },
+        'lastWeek' => function (\Carbon\CarbonInterface $current) {
+            return '[el] dddd [passat a '.($current->hour !== 1 ? 'les' : 'la').'] LT';
+        },
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number, $period) {
+        return $number.(
+            ($period === 'w' || $period === 'W') ? 'a' : (
+                ($number === 1) ? 'r' : (
+                    ($number === 2) ? 'n' : (
+                        ($number === 3) ? 'r' : (
+                            ($number === 4) ? 't' : 'è'
+                        )
+                    )
+                )
+            )
+        );
+    },
+    'months' => ['de gener', 'de febrer', 'de març', 'd\'abril', 'de maig', 'de juny', 'de juliol', 'd\'agost', 'de setembre', 'd\'octubre', 'de novembre', 'de desembre'],
+    'months_standalone' => ['gener', 'febrer', 'març', 'abril', 'maig', 'juny', 'juliol', 'agost', 'setembre', 'octubre', 'novembre', 'desembre'],
+    'months_short' => ['de gen.', 'de febr.', 'de març', 'd\'abr.', 'de maig', 'de juny', 'de jul.', 'd\'ag.', 'de set.', 'd\'oct.', 'de nov.', 'de des.'],
+    'months_short_standalone' => ['gen.', 'febr.', 'març', 'abr.', 'maig', 'juny', 'jul.', 'ag.', 'set.', 'oct.', 'nov.', 'des.'],
+    'months_regexp' => '/(D[oD]?[\s,]+MMMM?|L{2,4}|l{2,4})/',
+    'weekdays' => ['diumenge', 'dilluns', 'dimarts', 'dimecres', 'dijous', 'divendres', 'dissabte'],
+    'weekdays_short' => ['dg.', 'dl.', 'dt.', 'dc.', 'dj.', 'dv.', 'ds.'],
+    'weekdays_min' => ['dg', 'dl', 'dt', 'dc', 'dj', 'dv', 'ds'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' i '],
+    'meridiem' => ['a. m.', 'p. m.'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ca_AD.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ca_AD.php
new file mode 100644
index 0000000..f5718c3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ca_AD.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ca.php', [
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ca_ES.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ca_ES.php
new file mode 100644
index 0000000..8423606
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ca_ES.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ca.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ca_ES_Valencia.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ca_ES_Valencia.php
new file mode 100644
index 0000000..f5718c3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ca_ES_Valencia.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ca.php', [
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ca_FR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ca_FR.php
new file mode 100644
index 0000000..f5718c3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ca_FR.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ca.php', [
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ca_IT.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ca_IT.php
new file mode 100644
index 0000000..f5718c3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ca_IT.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ca.php', [
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ccp.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ccp.php
new file mode 100644
index 0000000..ec616a7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ccp.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'weekdays' => ['𑄢𑄧𑄝𑄨𑄝𑄢𑄴', '𑄥𑄧𑄟𑄴𑄝𑄢𑄴', '𑄟𑄧𑄁𑄉𑄧𑄣𑄴𑄝𑄢𑄴', '𑄝𑄪𑄖𑄴𑄝𑄢𑄴', '𑄝𑄳𑄢𑄨𑄥𑄪𑄛𑄴𑄝𑄢𑄴', '𑄥𑄪𑄇𑄴𑄇𑄮𑄢𑄴𑄝𑄢𑄴', '𑄥𑄧𑄚𑄨𑄝𑄢𑄴'],
+    'weekdays_short' => ['𑄢𑄧𑄝𑄨', '𑄥𑄧𑄟𑄴', '𑄟𑄧𑄁𑄉𑄧𑄣𑄴', '𑄝𑄪𑄖𑄴', '𑄝𑄳𑄢𑄨𑄥𑄪𑄛𑄴', '𑄥𑄪𑄇𑄴𑄇𑄮𑄢𑄴', '𑄥𑄧𑄚𑄨'],
+    'weekdays_min' => ['𑄢𑄧𑄝𑄨', '𑄥𑄧𑄟𑄴', '𑄟𑄧𑄁𑄉𑄧𑄣𑄴', '𑄝𑄪𑄖𑄴', '𑄝𑄳𑄢𑄨𑄥𑄪𑄛𑄴', '𑄥𑄪𑄇𑄴𑄇𑄮𑄢𑄴', '𑄥𑄧𑄚𑄨'],
+    'months' => ['𑄎𑄚𑄪𑄠𑄢𑄨', '𑄜𑄬𑄛𑄴𑄝𑄳𑄢𑄪𑄠𑄢𑄨', '𑄟𑄢𑄴𑄌𑄧', '𑄃𑄬𑄛𑄳𑄢𑄨𑄣𑄴', '𑄟𑄬', '𑄎𑄪𑄚𑄴', '𑄎𑄪𑄣𑄭', '𑄃𑄉𑄧𑄌𑄴𑄑𑄴', '𑄥𑄬𑄛𑄴𑄑𑄬𑄟𑄴𑄝𑄧𑄢𑄴', '𑄃𑄧𑄇𑄴𑄑𑄬𑄝𑄧𑄢𑄴', '𑄚𑄧𑄞𑄬𑄟𑄴𑄝𑄧𑄢𑄴', '𑄓𑄨𑄥𑄬𑄟𑄴𑄝𑄧𑄢𑄴'],
+    'months_short' => ['𑄎𑄚𑄪', '𑄜𑄬𑄛𑄴', '𑄟𑄢𑄴𑄌𑄧', '𑄃𑄬𑄛𑄳𑄢𑄨𑄣𑄴', '𑄟𑄬', '𑄎𑄪𑄚𑄴', '𑄎𑄪𑄣𑄭', '𑄃𑄉𑄧𑄌𑄴𑄑𑄴', '𑄥𑄬𑄛𑄴𑄑𑄬𑄟𑄴𑄝𑄧𑄢𑄴', '𑄃𑄧𑄇𑄴𑄑𑄮𑄝𑄧𑄢𑄴', '𑄚𑄧𑄞𑄬𑄟𑄴𑄝𑄧𑄢𑄴', '𑄓𑄨𑄥𑄬𑄟𑄴𑄝𑄢𑄴'],
+    'months_short_standalone' => ['𑄎𑄚𑄪𑄠𑄢𑄨', '𑄜𑄬𑄛𑄴𑄝𑄳𑄢𑄪𑄠𑄢𑄨', '𑄟𑄢𑄴𑄌𑄧', '𑄃𑄬𑄛𑄳𑄢𑄨𑄣𑄴', '𑄟𑄬', '𑄎𑄪𑄚𑄴', '𑄎𑄪𑄣𑄭', '𑄃𑄉𑄧𑄌𑄴𑄑𑄴', '𑄥𑄬𑄛𑄴𑄑𑄬𑄟𑄴𑄝𑄧𑄢𑄴', '𑄃𑄧𑄇𑄴𑄑𑄮𑄝𑄧𑄢𑄴', '𑄚𑄧𑄞𑄬𑄟𑄴𑄝𑄧𑄢𑄴', '𑄓𑄨𑄥𑄬𑄟𑄴𑄝𑄧𑄢𑄴'],
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM, YYYY',
+        'LLL' => 'D MMMM, YYYY h:mm a',
+        'LLLL' => 'dddd, D MMMM, YYYY h:mm a',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ccp_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ccp_IN.php
new file mode 100644
index 0000000..18bd122
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ccp_IN.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ccp.php', [
+    'weekend' => [0, 0],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ce.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ce.php
new file mode 100644
index 0000000..f99f6ff
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ce.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/ce_RU.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ce_RU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ce_RU.php
new file mode 100644
index 0000000..f769856
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ce_RU.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - ANCHR
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'YYYY.DD.MM',
+    ],
+    'months' => ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
+    'months_short' => ['янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'],
+    'weekdays' => ['КӀиранан де', 'Оршотан де', 'Шинарин де', 'Кхаарин де', 'Еарин де', 'ПӀераскан де', 'Шот де'],
+    'weekdays_short' => ['КӀ', 'Ор', 'Ши', 'Кх', 'Еа', 'ПӀ', 'Шо'],
+    'weekdays_min' => ['КӀ', 'Ор', 'Ши', 'Кх', 'Еа', 'ПӀ', 'Шо'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+
+    'year' => ':count шо',
+    'y' => ':count шо',
+    'a_year' => ':count шо',
+
+    'month' => ':count бутт',
+    'm' => ':count бутт',
+    'a_month' => ':count бутт',
+
+    'week' => ':count кӏира',
+    'w' => ':count кӏира',
+    'a_week' => ':count кӏира',
+
+    'day' => ':count де',
+    'd' => ':count де',
+    'a_day' => ':count де',
+
+    'hour' => ':count сахьт',
+    'h' => ':count сахьт',
+    'a_hour' => ':count сахьт',
+
+    'minute' => ':count минот',
+    'min' => ':count минот',
+    'a_minute' => ':count минот',
+
+    'second' => ':count секунд',
+    's' => ':count секунд',
+    'a_second' => ':count секунд',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cgg.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cgg.php
new file mode 100644
index 0000000..e424408
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cgg.php
@@ -0,0 +1,30 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'weekdays' => ['Sande', 'Orwokubanza', 'Orwakabiri', 'Orwakashatu', 'Orwakana', 'Orwakataano', 'Orwamukaaga'],
+    'weekdays_short' => ['SAN', 'ORK', 'OKB', 'OKS', 'OKN', 'OKT', 'OMK'],
+    'weekdays_min' => ['SAN', 'ORK', 'OKB', 'OKS', 'OKN', 'OKT', 'OMK'],
+    'months' => ['Okwokubanza', 'Okwakabiri', 'Okwakashatu', 'Okwakana', 'Okwakataana', 'Okwamukaaga', 'Okwamushanju', 'Okwamunaana', 'Okwamwenda', 'Okwaikumi', 'Okwaikumi na kumwe', 'Okwaikumi na ibiri'],
+    'months_short' => ['KBZ', 'KBR', 'KST', 'KKN', 'KTN', 'KMK', 'KMS', 'KMN', 'KMW', 'KKM', 'KNK', 'KNB'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+
+    'day' => ':count ruhanga', // less reliable
+    'd' => ':count ruhanga', // less reliable
+    'a_day' => ':count ruhanga', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/chr.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/chr.php
new file mode 100644
index 0000000..e26190f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/chr.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/chr_US.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/chr_US.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/chr_US.php
new file mode 100644
index 0000000..371353e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/chr_US.php
@@ -0,0 +1,58 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Cherokee Nation Joseph Erb josepherb7@gmail.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'MM/DD/YYYY',
+    ],
+    'months' => ['ᎤᏃᎸᏔᏅ', 'ᎧᎦᎵ', 'ᎠᏅᏱ', 'ᎧᏬᏂ', 'ᎠᏂᏍᎬᏘ', 'ᏕᎭᎷᏱ', 'ᎫᏰᏉᏂ', 'ᎦᎶᏂ', 'ᏚᎵᏍᏗ', 'ᏚᏂᏅᏗ', 'ᏅᏓᏕᏆ', 'ᎥᏍᎩᏱ'],
+    'months_short' => ['ᎤᏃ', 'ᎧᎦ', 'ᎠᏅ', 'ᎧᏬ', 'ᎠᏂ', 'ᏕᎭ', 'ᎫᏰ', 'ᎦᎶ', 'ᏚᎵ', 'ᏚᏂ', 'ᏅᏓ', 'ᎥᏍ'],
+    'weekdays' => ['ᎤᎾᏙᏓᏆᏍᎬ', 'ᎤᎾᏙᏓᏉᏅᎯ', 'ᏔᎵᏁᎢᎦ', 'ᏦᎢᏁᎢᎦ', 'ᏅᎩᏁᎢᎦ', 'ᏧᎾᎩᎶᏍᏗ', 'ᎤᎾᏙᏓᏈᏕᎾ'],
+    'weekdays_short' => ['ᏆᏍᎬ', 'ᏉᏅᎯ', 'ᏔᎵᏁ', 'ᏦᎢᏁ', 'ᏅᎩᏁ', 'ᏧᎾᎩ', 'ᏈᏕᎾ'],
+    'weekdays_min' => ['ᏆᏍᎬ', 'ᏉᏅᎯ', 'ᏔᎵᏁ', 'ᏦᎢᏁ', 'ᏅᎩᏁ', 'ᏧᎾᎩ', 'ᏈᏕᎾ'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['ᏌᎾᎴ', 'ᏒᎯᏱᎢᏗᏢ', 'ꮜꮎꮄ', 'ꮢꭿᏹꭲꮧꮲ'],
+
+    'second' => ':count ᏐᎢ', // less reliable
+    's' => ':count ᏐᎢ', // less reliable
+    'a_second' => ':count ᏐᎢ', // less reliable
+
+    'year' => ':count ᏑᏕᏘᏴᏓ',
+    'y' => ':count ᏑᏕᏘᏴᏓ',
+    'a_year' => ':count ᏑᏕᏘᏴᏓ',
+
+    'month' => ':count ᏏᏅᏙ',
+    'm' => ':count ᏏᏅᏙ',
+    'a_month' => ':count ᏏᏅᏙ',
+
+    'week' => ':count ᏑᎾᏙᏓᏆᏍᏗ',
+    'w' => ':count ᏑᎾᏙᏓᏆᏍᏗ',
+    'a_week' => ':count ᏑᎾᏙᏓᏆᏍᏗ',
+
+    'day' => ':count ᎢᎦ',
+    'd' => ':count ᎢᎦ',
+    'a_day' => ':count ᎢᎦ',
+
+    'hour' => ':count ᏑᏟᎶᏛ',
+    'h' => ':count ᏑᏟᎶᏛ',
+    'a_hour' => ':count ᏑᏟᎶᏛ',
+
+    'minute' => ':count ᎢᏯᏔᏬᏍᏔᏅ',
+    'min' => ':count ᎢᏯᏔᏬᏍᏔᏅ',
+    'a_minute' => ':count ᎢᏯᏔᏬᏍᏔᏅ',
+
+    'ago' => ':time ᏥᎨᏒ',
+    'from_now' => 'ᎾᎿ :time',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cmn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cmn.php
new file mode 100644
index 0000000..80b1d69
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cmn.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/cmn_TW.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cmn_TW.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cmn_TW.php
new file mode 100644
index 0000000..7e43f9d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cmn_TW.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'YYYY年MM月DD號',
+    ],
+    'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
+    'months_short' => [' 1月', ' 2月', ' 3月', ' 4月', ' 5月', ' 6月', ' 7月', ' 8月', ' 9月', '10月', '11月', '12月'],
+    'weekdays' => ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
+    'weekdays_short' => ['日', '一', '二', '三', '四', '五', '六'],
+    'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'],
+    'meridiem' => ['上午', '下午'],
+
+    'year' => ':count 年',
+    'y' => ':count 年',
+    'a_year' => ':count 年',
+
+    'month' => ':count 月',
+    'm' => ':count 月',
+    'a_month' => ':count 月',
+
+    'week' => ':count 周',
+    'w' => ':count 周',
+    'a_week' => ':count 周',
+
+    'day' => ':count 白天',
+    'd' => ':count 白天',
+    'a_day' => ':count 白天',
+
+    'hour' => ':count 小时',
+    'h' => ':count 小时',
+    'a_hour' => ':count 小时',
+
+    'minute' => ':count 分钟',
+    'min' => ':count 分钟',
+    'a_minute' => ':count 分钟',
+
+    'second' => ':count 秒',
+    's' => ':count 秒',
+    'a_second' => ':count 秒',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/crh.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/crh.php
new file mode 100644
index 0000000..a1d7ce6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/crh.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/crh_UA.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/crh_UA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/crh_UA.php
new file mode 100644
index 0000000..0513933
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/crh_UA.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Reşat SABIQ tilde.birlik@gmail.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD.MM.YYYY',
+    ],
+    'months' => ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'Mayıs', 'İyun', 'İyul', 'Avgust', 'Sentâbr', 'Oktâbr', 'Noyabr', 'Dekabr'],
+    'months_short' => ['Yan', 'Fev', 'Mar', 'Apr', 'May', 'İyn', 'İyl', 'Avg', 'Sen', 'Okt', 'Noy', 'Dek'],
+    'weekdays' => ['Bazar', 'Bazarertesi', 'Salı', 'Çarşembe', 'Cumaaqşamı', 'Cuma', 'Cumaertesi'],
+    'weekdays_short' => ['Baz', 'Ber', 'Sal', 'Çar', 'Caq', 'Cum', 'Cer'],
+    'weekdays_min' => ['Baz', 'Ber', 'Sal', 'Çar', 'Caq', 'Cum', 'Cer'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['ÜE', 'ÜS'],
+
+    'year' => ':count yıl',
+    'y' => ':count yıl',
+    'a_year' => ':count yıl',
+
+    'month' => ':count ay',
+    'm' => ':count ay',
+    'a_month' => ':count ay',
+
+    'week' => ':count afta',
+    'w' => ':count afta',
+    'a_week' => ':count afta',
+
+    'day' => ':count kün',
+    'd' => ':count kün',
+    'a_day' => ':count kün',
+
+    'hour' => ':count saat',
+    'h' => ':count saat',
+    'a_hour' => ':count saat',
+
+    'minute' => ':count daqqa',
+    'min' => ':count daqqa',
+    'a_minute' => ':count daqqa',
+
+    'second' => ':count ekinci',
+    's' => ':count ekinci',
+    'a_second' => ':count ekinci',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cs.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cs.php
new file mode 100644
index 0000000..8cff9a0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cs.php
@@ -0,0 +1,122 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Philippe Vaucher
+ * - Jakub Tesinsky
+ * - Martin Suja
+ * - Nikos Timiopulos
+ * - Bohuslav Blín
+ * - Tsutomu Kuroda
+ * - tjku
+ * - Lukas Svoboda
+ * - Max Melentiev
+ * - Juanito Fatas
+ * - Akira Matsuda
+ * - Christopher Dell
+ * - Václav Pávek
+ * - CodeSkills
+ * - Tlapi
+ * - newman101
+ * - Petr Kadlec
+ * - tommaskraus
+ * - Karel Sommer (calvera)
+ */
+$za = function ($time) {
+    return 'za '.strtr($time, [
+        'hodina' => 'hodinu',
+        'minuta' => 'minutu',
+        'sekunda' => 'sekundu',
+    ]);
+};
+
+$pred = function ($time) {
+    $time = strtr($time, [
+        'hodina' => 'hodinou',
+        'minuta' => 'minutou',
+        'sekunda' => 'sekundou',
+    ]);
+    $time = preg_replace('/hodiny?(?!\w)/', 'hodinami', $time);
+    $time = preg_replace('/minuty?(?!\w)/', 'minutami', $time);
+    $time = preg_replace('/sekundy?(?!\w)/', 'sekundami', $time);
+
+    return "před $time";
+};
+
+return [
+    'year' => ':count rok|:count roky|:count let',
+    'y' => ':count rok|:count roky|:count let',
+    'a_year' => 'rok|:count roky|:count let',
+    'month' => ':count měsíc|:count měsíce|:count měsíců',
+    'm' => ':count měs.',
+    'a_month' => 'měsíc|:count měsíce|:count měsíců',
+    'week' => ':count týden|:count týdny|:count týdnů',
+    'w' => ':count týd.',
+    'a_week' => 'týden|:count týdny|:count týdnů',
+    'day' => ':count den|:count dny|:count dní',
+    'd' => ':count den|:count dny|:count dní',
+    'a_day' => 'den|:count dny|:count dní',
+    'hour' => ':count hodina|:count hodiny|:count hodin',
+    'h' => ':count hod.',
+    'a_hour' => 'hodina|:count hodiny|:count hodin',
+    'minute' => ':count minuta|:count minuty|:count minut',
+    'min' => ':count min.',
+    'a_minute' => 'minuta|:count minuty|:count minut',
+    'second' => ':count sekunda|:count sekundy|:count sekund',
+    's' => ':count sek.',
+    'a_second' => 'pár sekund|:count sekundy|:count sekund',
+
+    'month_ago' => ':count měsícem|:count měsíci|:count měsíci',
+    'a_month_ago' => 'měsícem|:count měsíci|:count měsíci',
+    'day_ago' => ':count dnem|:count dny|:count dny',
+    'a_day_ago' => 'dnem|:count dny|:count dny',
+    'week_ago' => ':count týdnem|:count týdny|:count týdny',
+    'a_week_ago' => 'týdnem|:count týdny|:count týdny',
+    'year_ago' => ':count rokem|:count roky|:count lety',
+    'y_ago' => ':count rok.|:count rok.|:count let.',
+    'a_year_ago' => 'rokem|:count roky|:count lety',
+
+    'month_before' => ':count měsícem|:count měsíci|:count měsíci',
+    'a_month_before' => 'měsícem|:count měsíci|:count měsíci',
+    'day_before' => ':count dnem|:count dny|:count dny',
+    'a_day_before' => 'dnem|:count dny|:count dny',
+    'week_before' => ':count týdnem|:count týdny|:count týdny',
+    'a_week_before' => 'týdnem|:count týdny|:count týdny',
+    'year_before' => ':count rokem|:count roky|:count lety',
+    'y_before' => ':count rok.|:count rok.|:count let.',
+    'a_year_before' => 'rokem|:count roky|:count lety',
+
+    'ago' => $pred,
+    'from_now' => $za,
+    'before' => $pred,
+    'after' => $za,
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'months' => ['leden', 'únor', 'březen', 'duben', 'květen', 'červen', 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec'],
+    'months_short' => ['led', 'úno', 'bře', 'dub', 'kvě', 'čvn', 'čvc', 'srp', 'zář', 'říj', 'lis', 'pro'],
+    'weekdays' => ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'],
+    'weekdays_short' => ['ned', 'pon', 'úte', 'stř', 'čtv', 'pát', 'sob'],
+    'weekdays_min' => ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],
+    'list' => [', ', ' a '],
+    'diff_now' => 'nyní',
+    'diff_yesterday' => 'včera',
+    'diff_tomorrow' => 'zítra',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD. MM. YYYY',
+        'LL' => 'D. MMMM YYYY',
+        'LLL' => 'D. MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D. MMMM YYYY HH:mm',
+    ],
+    'meridiem' => ['dopoledne', 'odpoledne'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cs_CZ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cs_CZ.php
new file mode 100644
index 0000000..a16a346
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cs_CZ.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/cs.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/csb.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/csb.php
new file mode 100644
index 0000000..a35d281
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/csb.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/csb_PL.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/csb_PL.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/csb_PL.php
new file mode 100644
index 0000000..25e0ca8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/csb_PL.php
@@ -0,0 +1,41 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - csb_PL locale Michal Ostrowski bug-glibc-locales@gnu.org
+ */
+return [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'YYYY-MM-DD',
+        'LL' => 'MMMM DD, YYYY',
+        'LLL' => 'DD MMM HH:mm',
+        'LLLL' => 'MMMM DD, YYYY HH:mm',
+    ],
+    'months' => ['stëcznika', 'gromicznika', 'strëmiannika', 'łżëkwiata', 'maja', 'czerwińca', 'lëpińca', 'zélnika', 'séwnika', 'rujana', 'lëstopadnika', 'gòdnika'],
+    'months_short' => ['stë', 'gro', 'str', 'łżë', 'maj', 'cze', 'lëp', 'zél', 'séw', 'ruj', 'lës', 'gòd'],
+    'weekdays' => ['niedzela', 'pòniedzôłk', 'wtórk', 'strzoda', 'czwiôrtk', 'piątk', 'sobòta'],
+    'weekdays_short' => ['nie', 'pòn', 'wtó', 'str', 'czw', 'pią', 'sob'],
+    'weekdays_min' => ['nie', 'pòn', 'wtó', 'str', 'czw', 'pią', 'sob'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' a téż '],
+    'two_words_connector' => ' a téż ',
+    'year' => ':count rok',
+    'month' => ':count miesiąc',
+    'week' => ':count tidzéń',
+    'day' => ':count dzéń',
+    'hour' => ':count gòdzëna',
+    'minute' => ':count minuta',
+    'second' => ':count sekunda',
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cu.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cu.php
new file mode 100644
index 0000000..02c983a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cu.php
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'months' => ['M01', 'M02', 'M03', 'M04', 'M05', 'M06', 'M07', 'M08', 'M09', 'M10', 'M11', 'M12'],
+    'months_short' => ['M01', 'M02', 'M03', 'M04', 'M05', 'M06', 'M07', 'M08', 'M09', 'M10', 'M11', 'M12'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'YYYY-MM-DD',
+        'LL' => 'YYYY MMM D',
+        'LLL' => 'YYYY MMMM D HH:mm',
+        'LLLL' => 'YYYY MMMM D, dddd HH:mm',
+    ],
+
+    'year' => ':count лѣто',
+    'y' => ':count лѣто',
+    'a_year' => ':count лѣто',
+
+    'month' => ':count мѣсѧць',
+    'm' => ':count мѣсѧць',
+    'a_month' => ':count мѣсѧць',
+
+    'week' => ':count сєдмица',
+    'w' => ':count сєдмица',
+    'a_week' => ':count сєдмица',
+
+    'day' => ':count дьнь',
+    'd' => ':count дьнь',
+    'a_day' => ':count дьнь',
+
+    'hour' => ':count година',
+    'h' => ':count година',
+    'a_hour' => ':count година',
+
+    'minute' => ':count малъ', // less reliable
+    'min' => ':count малъ', // less reliable
+    'a_minute' => ':count малъ', // less reliable
+
+    'second' => ':count въторъ',
+    's' => ':count въторъ',
+    'a_second' => ':count въторъ',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cv.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cv.php
new file mode 100644
index 0000000..cec1fc9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cv.php
@@ -0,0 +1,65 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - François B
+ * - JD Isaacks
+ */
+return [
+    'year' => ':count ҫул',
+    'a_year' => '{1}пӗр ҫул|:count ҫул',
+    'month' => ':count уйӑх',
+    'a_month' => '{1}пӗр уйӑх|:count уйӑх',
+    'week' => ':count эрне',
+    'a_week' => '{1}пӗр эрне|:count эрне',
+    'day' => ':count кун',
+    'a_day' => '{1}пӗр кун|:count кун',
+    'hour' => ':count сехет',
+    'a_hour' => '{1}пӗр сехет|:count сехет',
+    'minute' => ':count минут',
+    'a_minute' => '{1}пӗр минут|:count минут',
+    'second' => ':count ҫеккунт',
+    'a_second' => '{1}пӗр-ик ҫеккунт|:count ҫеккунт',
+    'ago' => ':time каялла',
+    'from_now' => function ($time) {
+        return $time.(preg_match('/сехет$/', $time) ? 'рен' : (preg_match('/ҫул/', $time) ? 'тан' : 'ран'));
+    },
+    'diff_yesterday' => 'Ӗнер',
+    'diff_today' => 'Паян',
+    'diff_tomorrow' => 'Ыран',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD-MM-YYYY',
+        'LL' => 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',
+        'LLL' => 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
+        'LLLL' => 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Паян] LT [сехетре]',
+        'nextDay' => '[Ыран] LT [сехетре]',
+        'nextWeek' => '[Ҫитес] dddd LT [сехетре]',
+        'lastDay' => '[Ӗнер] LT [сехетре]',
+        'lastWeek' => '[Иртнӗ] dddd LT [сехетре]',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':number-мӗш',
+    'months' => ['кӑрлач', 'нарӑс', 'пуш', 'ака', 'май', 'ҫӗртме', 'утӑ', 'ҫурла', 'авӑн', 'юпа', 'чӳк', 'раштав'],
+    'months_short' => ['кӑр', 'нар', 'пуш', 'ака', 'май', 'ҫӗр', 'утӑ', 'ҫур', 'авн', 'юпа', 'чӳк', 'раш'],
+    'weekdays' => ['вырсарникун', 'тунтикун', 'ытларикун', 'юнкун', 'кӗҫнерникун', 'эрнекун', 'шӑматкун'],
+    'weekdays_short' => ['выр', 'тун', 'ытл', 'юн', 'кӗҫ', 'эрн', 'шӑм'],
+    'weekdays_min' => ['вр', 'тн', 'ыт', 'юн', 'кҫ', 'эр', 'шм'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' тата '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cv_RU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cv_RU.php
new file mode 100644
index 0000000..ddff893
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cv_RU.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/cv.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cy.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cy.php
new file mode 100644
index 0000000..ab7c45a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cy.php
@@ -0,0 +1,79 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - François B
+ * - JD Isaacks
+ * - Daniel Monaghan
+ */
+return [
+    'year' => '{1}blwyddyn|]1,Inf[:count flynedd',
+    'y' => ':countbl',
+    'month' => '{1}mis|]1,Inf[:count mis',
+    'm' => ':countmi',
+    'week' => ':count wythnos',
+    'w' => ':countw',
+    'day' => '{1}diwrnod|]1,Inf[:count diwrnod',
+    'd' => ':countd',
+    'hour' => '{1}awr|]1,Inf[:count awr',
+    'h' => ':counth',
+    'minute' => '{1}munud|]1,Inf[:count munud',
+    'min' => ':countm',
+    'second' => '{1}ychydig eiliadau|]1,Inf[:count eiliad',
+    's' => ':counts',
+    'ago' => ':time yn ôl',
+    'from_now' => 'mewn :time',
+    'after' => ':time ar ôl',
+    'before' => ':time o\'r blaen',
+    'diff_now' => 'nawr',
+    'diff_today' => 'Heddiw',
+    'diff_today_regexp' => 'Heddiw(?:\\s+am)?',
+    'diff_yesterday' => 'ddoe',
+    'diff_yesterday_regexp' => 'Ddoe(?:\\s+am)?',
+    'diff_tomorrow' => 'yfory',
+    'diff_tomorrow_regexp' => 'Yfory(?:\\s+am)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Heddiw am] LT',
+        'nextDay' => '[Yfory am] LT',
+        'nextWeek' => 'dddd [am] LT',
+        'lastDay' => '[Ddoe am] LT',
+        'lastWeek' => 'dddd [diwethaf am] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number) {
+        return $number.(
+            $number > 20
+                ? (\in_array($number, [40, 50, 60, 80, 100]) ? 'fed' : 'ain')
+                : ([
+                    '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed
+                    'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed', // 11eg to 20fed
+                ])[$number] ?? ''
+        );
+    },
+    'months' => ['Ionawr', 'Chwefror', 'Mawrth', 'Ebrill', 'Mai', 'Mehefin', 'Gorffennaf', 'Awst', 'Medi', 'Hydref', 'Tachwedd', 'Rhagfyr'],
+    'months_short' => ['Ion', 'Chwe', 'Maw', 'Ebr', 'Mai', 'Meh', 'Gor', 'Aws', 'Med', 'Hyd', 'Tach', 'Rhag'],
+    'weekdays' => ['Dydd Sul', 'Dydd Llun', 'Dydd Mawrth', 'Dydd Mercher', 'Dydd Iau', 'Dydd Gwener', 'Dydd Sadwrn'],
+    'weekdays_short' => ['Sul', 'Llun', 'Maw', 'Mer', 'Iau', 'Gwe', 'Sad'],
+    'weekdays_min' => ['Su', 'Ll', 'Ma', 'Me', 'Ia', 'Gw', 'Sa'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' a '],
+    'meridiem' => ['yb', 'yh'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cy_GB.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cy_GB.php
new file mode 100644
index 0000000..541127c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/cy_GB.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/cy.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/da.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/da.php
new file mode 100644
index 0000000..4e6640a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/da.php
@@ -0,0 +1,80 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Rune Mønnike
+ * - François B
+ * - codenhagen
+ * - JD Isaacks
+ * - Jens Herlevsen
+ * - Ulrik McArdle (mcardle)
+ * - Frederik Sauer (FrittenKeeZ)
+ */
+return [
+    'year' => ':count år|:count år',
+    'a_year' => 'et år|:count år',
+    'y' => ':count år|:count år',
+    'month' => ':count måned|:count måneder',
+    'a_month' => 'en måned|:count måneder',
+    'm' => ':count mdr.',
+    'week' => ':count uge|:count uger',
+    'a_week' => 'en uge|:count uger',
+    'w' => ':count u.',
+    'day' => ':count dag|:count dage',
+    'a_day' => ':count dag|:count dage',
+    'd' => ':count d.',
+    'hour' => ':count time|:count timer',
+    'a_hour' => 'en time|:count timer',
+    'h' => ':count t.',
+    'minute' => ':count minut|:count minutter',
+    'a_minute' => 'et minut|:count minutter',
+    'min' => ':count min.',
+    'second' => ':count sekund|:count sekunder',
+    'a_second' => 'få sekunder|:count sekunder',
+    's' => ':count s.',
+    'ago' => ':time siden',
+    'from_now' => 'om :time',
+    'after' => ':time efter',
+    'before' => ':time før',
+    'diff_now' => 'nu',
+    'diff_today' => 'i dag',
+    'diff_today_regexp' => 'i dag(?:\\s+kl.)?',
+    'diff_yesterday' => 'i går',
+    'diff_yesterday_regexp' => 'i går(?:\\s+kl.)?',
+    'diff_tomorrow' => 'i morgen',
+    'diff_tomorrow_regexp' => 'i morgen(?:\\s+kl.)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D. MMMM YYYY',
+        'LLL' => 'D. MMMM YYYY HH:mm',
+        'LLLL' => 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[i dag kl.] LT',
+        'nextDay' => '[i morgen kl.] LT',
+        'nextWeek' => 'på dddd [kl.] LT',
+        'lastDay' => '[i går kl.] LT',
+        'lastWeek' => '[i] dddd[s kl.] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':number.',
+    'months' => ['januar', 'februar', 'marts', 'april', 'maj', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'december'],
+    'months_short' => ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
+    'weekdays' => ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag'],
+    'weekdays_short' => ['søn', 'man', 'tir', 'ons', 'tor', 'fre', 'lør'],
+    'weekdays_min' => ['sø', 'ma', 'ti', 'on', 'to', 'fr', 'lø'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' og '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/da_DK.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/da_DK.php
new file mode 100644
index 0000000..b3bac1a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/da_DK.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/da.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/da_GL.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/da_GL.php
new file mode 100644
index 0000000..b2ba81f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/da_GL.php
@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/da.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D. MMM YYYY',
+        'LLL' => 'D. MMMM YYYY HH.mm',
+        'LLLL' => 'dddd [den] D. MMMM YYYY HH.mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dav.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dav.php
new file mode 100644
index 0000000..79f021e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dav.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['Luma lwa K', 'luma lwa p'],
+    'weekdays' => ['Ituku ja jumwa', 'Kuramuka jimweri', 'Kuramuka kawi', 'Kuramuka kadadu', 'Kuramuka kana', 'Kuramuka kasanu', 'Kifula nguwo'],
+    'weekdays_short' => ['Jum', 'Jim', 'Kaw', 'Kad', 'Kan', 'Kas', 'Ngu'],
+    'weekdays_min' => ['Jum', 'Jim', 'Kaw', 'Kad', 'Kan', 'Kas', 'Ngu'],
+    'months' => ['Mori ghwa imbiri', 'Mori ghwa kawi', 'Mori ghwa kadadu', 'Mori ghwa kana', 'Mori ghwa kasanu', 'Mori ghwa karandadu', 'Mori ghwa mfungade', 'Mori ghwa wunyanya', 'Mori ghwa ikenda', 'Mori ghwa ikumi', 'Mori ghwa ikumi na imweri', 'Mori ghwa ikumi na iwi'],
+    'months_short' => ['Imb', 'Kaw', 'Kad', 'Kan', 'Kas', 'Kar', 'Mfu', 'Wun', 'Ike', 'Iku', 'Imw', 'Iwi'],
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de.php
new file mode 100644
index 0000000..ff00c97
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de.php
@@ -0,0 +1,108 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Michael Hohl
+ * - sheriffmarley
+ * - dennisoderwald
+ * - Timo
+ * - Karag2006
+ * - Pete Scopes (pdscopes)
+ */
+return [
+    'year' => ':count Jahr|:count Jahre',
+    'a_year' => 'ein Jahr|:count Jahre',
+    'y' => ':count J.',
+    'month' => ':count Monat|:count Monate',
+    'a_month' => 'ein Monat|:count Monate',
+    'm' => ':count Mon.',
+    'week' => ':count Woche|:count Wochen',
+    'a_week' => 'eine Woche|:count Wochen',
+    'w' => ':count Wo.',
+    'day' => ':count Tag|:count Tage',
+    'a_day' => 'ein Tag|:count Tage',
+    'd' => ':count Tg.',
+    'hour' => ':count Stunde|:count Stunden',
+    'a_hour' => 'eine Stunde|:count Stunden',
+    'h' => ':count Std.',
+    'minute' => ':count Minute|:count Minuten',
+    'a_minute' => 'eine Minute|:count Minuten',
+    'min' => ':count Min.',
+    'second' => ':count Sekunde|:count Sekunden',
+    'a_second' => 'ein paar Sekunden|:count Sekunden',
+    's' => ':count Sek.',
+    'millisecond' => ':count Millisekunde|:count Millisekunden',
+    'a_millisecond' => 'eine Millisekunde|:count Millisekunden',
+    'ms' => ':countms',
+    'microsecond' => ':count Mikrosekunde|:count Mikrosekunden',
+    'a_microsecond' => 'eine Mikrosekunde|:count Mikrosekunden',
+    'µs' => ':countµs',
+    'ago' => 'vor :time',
+    'from_now' => 'in :time',
+    'after' => ':time später',
+    'before' => ':time zuvor',
+
+    'year_from_now' => ':count Jahr|:count Jahren',
+    'month_from_now' => ':count Monat|:count Monaten',
+    'week_from_now' => ':count Woche|:count Wochen',
+    'day_from_now' => ':count Tag|:count Tagen',
+    'year_ago' => ':count Jahr|:count Jahren',
+    'month_ago' => ':count Monat|:count Monaten',
+    'week_ago' => ':count Woche|:count Wochen',
+    'day_ago' => ':count Tag|:count Tagen',
+    'a_year_from_now' => 'ein Jahr|:count Jahren',
+    'a_month_from_now' => 'ein Monat|:count Monaten',
+    'a_week_from_now' => 'eine Woche|:count Wochen',
+    'a_day_from_now' => 'ein Tag|:count Tagen',
+    'a_year_ago' => 'ein Jahr|:count Jahren',
+    'a_month_ago' => 'ein Monat|:count Monaten',
+    'a_week_ago' => 'eine Woche|:count Wochen',
+    'a_day_ago' => 'ein Tag|:count Tagen',
+
+    'diff_now' => 'Gerade eben',
+    'diff_today' => 'heute',
+    'diff_today_regexp' => 'heute(?:\\s+um)?',
+    'diff_yesterday' => 'Gestern',
+    'diff_yesterday_regexp' => 'gestern(?:\\s+um)?',
+    'diff_tomorrow' => 'Morgen',
+    'diff_tomorrow_regexp' => 'morgen(?:\\s+um)?',
+    'diff_before_yesterday' => 'Vorgestern',
+    'diff_after_tomorrow' => 'Übermorgen',
+
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D. MMMM YYYY',
+        'LLL' => 'D. MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D. MMMM YYYY HH:mm',
+    ],
+
+    'calendar' => [
+        'sameDay' => '[heute um] LT [Uhr]',
+        'nextDay' => '[morgen um] LT [Uhr]',
+        'nextWeek' => 'dddd [um] LT [Uhr]',
+        'lastDay' => '[gestern um] LT [Uhr]',
+        'lastWeek' => '[letzten] dddd [um] LT [Uhr]',
+        'sameElse' => 'L',
+    ],
+
+    'months' => ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
+    'months_short' => ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],
+    'weekdays' => ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],
+    'weekdays_short' => ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'],
+    'weekdays_min' => ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
+    'ordinal' => ':number.',
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' und '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de_AT.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de_AT.php
new file mode 100644
index 0000000..a2ea4c0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de_AT.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - sheriffmarley
+ * - Timo
+ * - Michael Hohl
+ * - Namoshek
+ * - Bernhard Baumrock (BernhardBaumrock)
+ */
+return array_replace_recursive(require __DIR__.'/de.php', [
+    'months' => [
+        0 => 'Jänner',
+    ],
+    'months_short' => [
+        0 => 'Jän',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de_BE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de_BE.php
new file mode 100644
index 0000000..8ed8dc6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de_BE.php
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/de.php', [
+    'formats' => [
+        'L' => 'YYYY-MM-DD',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de_CH.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de_CH.php
new file mode 100644
index 0000000..a869ab4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de_CH.php
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - sheriffmarley
+ * - Timo
+ * - Michael Hohl
+ */
+return array_replace_recursive(require __DIR__.'/de.php', [
+    'weekdays_short' => ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de_DE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de_DE.php
new file mode 100644
index 0000000..fb1209d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de_DE.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Free Software Foundation, Inc.    bug-glibc-locales@gnu.org
+ */
+return require __DIR__.'/de.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de_IT.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de_IT.php
new file mode 100644
index 0000000..604a856
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de_IT.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Matthias Dieter Wallno:fer libc-locales@sourceware.org
+ */
+return require __DIR__.'/de.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de_LI.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de_LI.php
new file mode 100644
index 0000000..82edfa1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de_LI.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/de.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de_LU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de_LU.php
new file mode 100644
index 0000000..8ed8dc6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/de_LU.php
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/de.php', [
+    'formats' => [
+        'L' => 'YYYY-MM-DD',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dje.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dje.php
new file mode 100644
index 0000000..08ddbf1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dje.php
@@ -0,0 +1,39 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['Subbaahi', 'Zaarikay b'],
+    'weekdays' => ['Alhadi', 'Atinni', 'Atalaata', 'Alarba', 'Alhamisi', 'Alzuma', 'Asibti'],
+    'weekdays_short' => ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alz', 'Asi'],
+    'weekdays_min' => ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alz', 'Asi'],
+    'months' => ['Žanwiye', 'Feewiriye', 'Marsi', 'Awiril', 'Me', 'Žuweŋ', 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', 'Deesanbur'],
+    'months_short' => ['Žan', 'Fee', 'Mar', 'Awi', 'Me', 'Žuw', 'Žuy', 'Ut', 'Sek', 'Okt', 'Noo', 'Dee'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM, YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+
+    'year' => ':count hari', // less reliable
+    'y' => ':count hari', // less reliable
+    'a_year' => ':count hari', // less reliable
+
+    'week' => ':count alzuma', // less reliable
+    'w' => ':count alzuma', // less reliable
+    'a_week' => ':count alzuma', // less reliable
+
+    'second' => ':count atinni', // less reliable
+    's' => ':count atinni', // less reliable
+    'a_second' => ':count atinni', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/doi.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/doi.php
new file mode 100644
index 0000000..cb679c5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/doi.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/doi_IN.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/doi_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/doi_IN.php
new file mode 100644
index 0000000..d359721
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/doi_IN.php
@@ -0,0 +1,31 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Red Hat Pune    libc-alpha@sourceware.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'D/M/YY',
+    ],
+    'months' => ['जनवरी', 'फरवरी', 'मार्च', 'एप्रैल', 'मेई', 'जून', 'जूलै', 'अगस्त', 'सितंबर', 'अक्तूबर', 'नवंबर', 'दिसंबर'],
+    'months_short' => ['जनवरी', 'फरवरी', 'मार्च', 'एप्रैल', 'मेई', 'जून', 'जूलै', 'अगस्त', 'सितंबर', 'अक्तूबर', 'नवंबर', 'दिसंबर'],
+    'weekdays' => ['ऐतबार', 'सोमबार', 'मंगलबर', 'बुधबार', 'बीरबार', 'शुक्करबार', 'श्नीचरबार'],
+    'weekdays_short' => ['ऐत', 'सोम', 'मंगल', 'बुध', 'बीर', 'शुक्कर', 'श्नीचर'],
+    'weekdays_min' => ['ऐत', 'सोम', 'मंगल', 'बुध', 'बीर', 'शुक्कर', 'श्नीचर'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['सञं', 'सबेर'],
+
+    'second' => ':count सङार', // less reliable
+    's' => ':count सङार', // less reliable
+    'a_second' => ':count सङार', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dsb.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dsb.php
new file mode 100644
index 0000000..1d214d5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dsb.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/dsb_DE.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dsb_DE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dsb_DE.php
new file mode 100644
index 0000000..1b94187
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dsb_DE.php
@@ -0,0 +1,60 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Information from Michael Wolf    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'DD. MMMM YYYY',
+        'LLL' => 'DD. MMMM, HH:mm [góź.]',
+        'LLLL' => 'dddd, DD. MMMM YYYY, HH:mm [góź.]',
+    ],
+    'months' => ['januara', 'februara', 'měrca', 'apryla', 'maja', 'junija', 'julija', 'awgusta', 'septembra', 'oktobra', 'nowembra', 'decembra'],
+    'months_short' => ['Jan', 'Feb', 'Měr', 'Apr', 'Maj', 'Jun', 'Jul', 'Awg', 'Sep', 'Okt', 'Now', 'Dec'],
+    'weekdays' => ['Njeźela', 'Pónjeźele', 'Wałtora', 'Srjoda', 'Stwórtk', 'Pětk', 'Sobota'],
+    'weekdays_short' => ['Nj', 'Pó', 'Wa', 'Sr', 'St', 'Pě', 'So'],
+    'weekdays_min' => ['Nj', 'Pó', 'Wa', 'Sr', 'St', 'Pě', 'So'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+
+    'year' => ':count lěto',
+    'y' => ':count lěto',
+    'a_year' => ':count lěto',
+
+    'month' => ':count mjasec',
+    'm' => ':count mjasec',
+    'a_month' => ':count mjasec',
+
+    'week' => ':count tyźeń',
+    'w' => ':count tyźeń',
+    'a_week' => ':count tyźeń',
+
+    'day' => ':count źeń',
+    'd' => ':count źeń',
+    'a_day' => ':count źeń',
+
+    'hour' => ':count góźina',
+    'h' => ':count góźina',
+    'a_hour' => ':count góźina',
+
+    'minute' => ':count minuta',
+    'min' => ':count minuta',
+    'a_minute' => ':count minuta',
+
+    'second' => ':count drugi',
+    's' => ':count drugi',
+    'a_second' => ':count drugi',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dua.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dua.php
new file mode 100644
index 0000000..65d712f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dua.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['idiɓa', 'ebyámu'],
+    'weekdays' => ['éti', 'mɔ́sú', 'kwasú', 'mukɔ́sú', 'ŋgisú', 'ɗónɛsú', 'esaɓasú'],
+    'weekdays_short' => ['ét', 'mɔ́s', 'kwa', 'muk', 'ŋgi', 'ɗón', 'esa'],
+    'weekdays_min' => ['ét', 'mɔ́s', 'kwa', 'muk', 'ŋgi', 'ɗón', 'esa'],
+    'months' => ['dimɔ́di', 'ŋgɔndɛ', 'sɔŋɛ', 'diɓáɓá', 'emiasele', 'esɔpɛsɔpɛ', 'madiɓɛ́díɓɛ́', 'diŋgindi', 'nyɛtɛki', 'mayésɛ́', 'tiníní', 'eláŋgɛ́'],
+    'months_short' => ['di', 'ŋgɔn', 'sɔŋ', 'diɓ', 'emi', 'esɔ', 'mad', 'diŋ', 'nyɛt', 'may', 'tin', 'elá'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+
+    'year' => ':count ma mbu', // less reliable
+    'y' => ':count ma mbu', // less reliable
+    'a_year' => ':count ma mbu', // less reliable
+
+    'month' => ':count myo̱di', // less reliable
+    'm' => ':count myo̱di', // less reliable
+    'a_month' => ':count myo̱di', // less reliable
+
+    'week' => ':count woki', // less reliable
+    'w' => ':count woki', // less reliable
+    'a_week' => ':count woki', // less reliable
+
+    'day' => ':count buńa', // less reliable
+    'd' => ':count buńa', // less reliable
+    'a_day' => ':count buńa', // less reliable
+
+    'hour' => ':count ma awa', // less reliable
+    'h' => ':count ma awa', // less reliable
+    'a_hour' => ':count ma awa', // less reliable
+
+    'minute' => ':count minuti', // less reliable
+    'min' => ':count minuti', // less reliable
+    'a_minute' => ':count minuti', // less reliable
+
+    'second' => ':count maba', // less reliable
+    's' => ':count maba', // less reliable
+    'a_second' => ':count maba', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dv.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dv.php
new file mode 100644
index 0000000..a2b60df
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dv.php
@@ -0,0 +1,88 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+$months = [
+    'ޖެނުއަރީ',
+    'ފެބްރުއަރީ',
+    'މާރިޗު',
+    'އޭޕްރީލު',
+    'މޭ',
+    'ޖޫން',
+    'ޖުލައި',
+    'އޯގަސްޓު',
+    'ސެޕްޓެމްބަރު',
+    'އޮކްޓޯބަރު',
+    'ނޮވެމްބަރު',
+    'ޑިސެމްބަރު',
+];
+
+$weekdays = [
+    'އާދިއްތަ',
+    'ހޯމަ',
+    'އަންގާރަ',
+    'ބުދަ',
+    'ބުރާސްފަތި',
+    'ހުކުރު',
+    'ހޮނިހިރު',
+];
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - Jawish Hameed
+ */
+return [
+    'year' => ':count '.'އަހަރު',
+    'a_year' => '{1}'.'އަހަރެއް'.'|:count '.'އަހަރު',
+    'month' => ':count '.'މަސް',
+    'a_month' => '{1}'.'މަހެއް'.'|:count '.'މަސް',
+    'week' => ':count '.'ހަފްތާ',
+    'a_week' => '{1}'.'ސިކުންތުކޮޅެއް'.'|:count '.'ހަފްތާ',
+    'day' => ':count '.'ދުވަސް',
+    'a_day' => '{1}'.'ދުވަހެއް'.'|:count '.'ދުވަސް',
+    'hour' => ':count '.'ގަޑިއިރު',
+    'a_hour' => '{1}'.'ގަޑިއިރެއް'.'|:count '.'ގަޑިއިރު',
+    'minute' => ':count '.'މިނިޓު',
+    'a_minute' => '{1}'.'މިނިޓެއް'.'|:count '.'މިނިޓު',
+    'second' => ':count '.'ސިކުންތު',
+    'a_second' => '{1}'.'ސިކުންތުކޮޅެއް'.'|:count '.'ސިކުންތު',
+    'ago' => 'ކުރިން :time',
+    'from_now' => 'ތެރޭގައި :time',
+    'after' => ':time ފަހުން',
+    'before' => ':time ކުރި',
+    'diff_yesterday' => 'އިއްޔެ',
+    'diff_today' => 'މިއަދު',
+    'diff_tomorrow' => 'މާދަމާ',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[މިއަދު] LT',
+        'nextDay' => '[މާދަމާ] LT',
+        'nextWeek' => 'dddd LT',
+        'lastDay' => '[އިއްޔެ] LT',
+        'lastWeek' => '[ފާއިތުވި] dddd LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => ['މކ', 'މފ'],
+    'months' => $months,
+    'months_short' => $months,
+    'weekdays' => $weekdays,
+    'weekdays_short' => $weekdays,
+    'weekdays_min' => ['އާދި', 'ހޯމަ', 'އަން', 'ބުދަ', 'ބުރާ', 'ހުކު', 'ހޮނި'],
+    'list' => [', ', ' އަދި '],
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dv_MV.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dv_MV.php
new file mode 100644
index 0000000..208fb5a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dv_MV.php
@@ -0,0 +1,87 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Ahmed Ali <ajaaibu@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ahmed Ali
+ */
+
+$months = [
+    'ޖެނުއަރީ',
+    'ފެބްރުއަރީ',
+    'މާރިޗު',
+    'އޭޕްރީލު',
+    'މޭ',
+    'ޖޫން',
+    'ޖުލައި',
+    'އޯގަސްޓު',
+    'ސެޕްޓެމްބަރު',
+    'އޮކްޓޯބަރު',
+    'ނޮވެމްބަރު',
+    'ޑިސެމްބަރު',
+];
+
+$weekdays = [
+    'އާދިއްތަ',
+    'ހޯމަ',
+    'އަންގާރަ',
+    'ބުދަ',
+    'ބުރާސްފަތި',
+    'ހުކުރު',
+    'ހޮނިހިރު',
+];
+
+return [
+    'year' => '{0}އަހަރެއް|[1,Inf]:count އަހަރު',
+    'y' => '{0}އަހަރެއް|[1,Inf]:count އަހަރު',
+    'month' => '{0}މައްސަރެއް|[1,Inf]:count މަސް',
+    'm' => '{0}މައްސަރެއް|[1,Inf]:count މަސް',
+    'week' => '{0}ހަފްތާއެއް|[1,Inf]:count ހަފްތާ',
+    'w' => '{0}ހަފްތާއެއް|[1,Inf]:count ހަފްތާ',
+    'day' => '{0}ދުވަސް|[1,Inf]:count ދުވަސް',
+    'd' => '{0}ދުވަސް|[1,Inf]:count ދުވަސް',
+    'hour' => '{0}ގަޑިއިރެއް|[1,Inf]:count ގަޑި',
+    'h' => '{0}ގަޑިއިރެއް|[1,Inf]:count ގަޑި',
+    'minute' => '{0}މިނެޓެއް|[1,Inf]:count މިނެޓް',
+    'min' => '{0}މިނެޓެއް|[1,Inf]:count މިނެޓް',
+    'second' => '{0}ސިކުންތެއް|[1,Inf]:count ސިކުންތު',
+    's' => '{0}ސިކުންތެއް|[1,Inf]:count ސިކުންތު',
+    'ago' => ':time ކުރިން',
+    'from_now' => ':time ފަހުން',
+    'after' => ':time ފަހުން',
+    'before' => ':time ކުރި',
+    'diff_yesterday' => 'އިއްޔެ',
+    'diff_today' => 'މިއަދު',
+    'diff_tomorrow' => 'މާދަމާ',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[މިއަދު] LT',
+        'nextDay' => '[މާދަމާ] LT',
+        'nextWeek' => 'dddd LT',
+        'lastDay' => '[އިއްޔެ] LT',
+        'lastWeek' => '[ފާއިތުވި] dddd LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => ['މކ', 'މފ'],
+    'months' => $months,
+    'months_short' => $months,
+    'weekdays' => $weekdays,
+    'weekdays_short' => $weekdays,
+    'weekdays_min' => ['އާދި', 'ހޯމަ', 'އަން', 'ބުދަ', 'ބުރާ', 'ހުކު', 'ހޮނި'],
+    'list' => [', ', ' އަދި '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dyo.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dyo.php
new file mode 100644
index 0000000..ecb649b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dyo.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'weekdays' => ['Dimas', 'Teneŋ', 'Talata', 'Alarbay', 'Aramisay', 'Arjuma', 'Sibiti'],
+    'weekdays_short' => ['Dim', 'Ten', 'Tal', 'Ala', 'Ara', 'Arj', 'Sib'],
+    'weekdays_min' => ['Dim', 'Ten', 'Tal', 'Ala', 'Ara', 'Arj', 'Sib'],
+    'months' => ['Sanvie', 'Fébirie', 'Mars', 'Aburil', 'Mee', 'Sueŋ', 'Súuyee', 'Ut', 'Settembar', 'Oktobar', 'Novembar', 'Disambar'],
+    'months_short' => ['Sa', 'Fe', 'Ma', 'Ab', 'Me', 'Su', 'Sú', 'Ut', 'Se', 'Ok', 'No', 'De'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dz.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dz.php
new file mode 100644
index 0000000..cc17e69
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dz.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/dz_BT.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dz_BT.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dz_BT.php
new file mode 100644
index 0000000..bfbcaf4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/dz_BT.php
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Sherubtse College    bug-glibc@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'པསྱི་ལོYYཟལMMཚེསDD',
+    ],
+    'months' => ['ཟླ་བ་དང་པ་', 'ཟླ་བ་གཉིས་པ་', 'ཟླ་བ་གསུམ་པ་', 'ཟླ་བ་བཞི་པ་', 'ཟླ་བ་ལྔ་ཕ་', 'ཟླ་བ་དྲུག་པ་', 'ཟླ་བ་བདུནཔ་', 'ཟླ་བ་བརྒྱད་པ་', 'ཟླ་བ་དགུ་པ་', 'ཟླ་བ་བཅུ་པ་', 'ཟླ་བ་བཅུ་གཅིག་པ་', 'ཟླ་བ་བཅུ་གཉིས་པ་'],
+    'months_short' => ['ཟླ་༡', 'ཟླ་༢', 'ཟླ་༣', 'ཟླ་༤', 'ཟླ་༥', 'ཟླ་༦', 'ཟླ་༧', 'ཟླ་༨', 'ཟླ་༩', 'ཟླ་༡༠', 'ཟླ་༡༡', 'ཟླ་༡༢'],
+    'weekdays' => ['གཟའ་ཟླ་བ་', 'གཟའ་མིག་དམར་', 'གཟའ་ལྷག་ཕ་', 'གཟའ་པུར་བུ་', 'གཟའ་པ་སངས་', 'གཟའ་སྤེན་ཕ་', 'གཟའ་ཉི་མ་'],
+    'weekdays_short' => ['ཟླ་', 'མིར་', 'ལྷག་', 'པུར་', 'སངས་', 'སྤེན་', 'ཉི་'],
+    'weekdays_min' => ['ཟླ་', 'མིར་', 'ལྷག་', 'པུར་', 'སངས་', 'སྤེན་', 'ཉི་'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['ངས་ཆ', 'ཕྱི་ཆ'],
+
+    'year' => ':count ཆརཔ', // less reliable
+    'y' => ':count ཆརཔ', // less reliable
+    'a_year' => ':count ཆརཔ', // less reliable
+
+    'month' => ':count ཟླ་བ', // less reliable
+    'm' => ':count ཟླ་བ', // less reliable
+    'a_month' => ':count ཟླ་བ', // less reliable
+
+    'day' => ':count ཉི', // less reliable
+    'd' => ':count ཉི', // less reliable
+    'a_day' => ':count ཉི', // less reliable
+
+    'second' => ':count ཆ', // less reliable
+    's' => ':count ཆ', // less reliable
+    'a_second' => ':count ཆ', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ebu.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ebu.php
new file mode 100644
index 0000000..5aab48d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ebu.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['KI', 'UT'],
+    'weekdays' => ['Kiumia', 'Njumatatu', 'Njumaine', 'Njumatano', 'Aramithi', 'Njumaa', 'NJumamothii'],
+    'weekdays_short' => ['Kma', 'Tat', 'Ine', 'Tan', 'Arm', 'Maa', 'NMM'],
+    'weekdays_min' => ['Kma', 'Tat', 'Ine', 'Tan', 'Arm', 'Maa', 'NMM'],
+    'months' => ['Mweri wa mbere', 'Mweri wa kaĩri', 'Mweri wa kathatũ', 'Mweri wa kana', 'Mweri wa gatano', 'Mweri wa gatantatũ', 'Mweri wa mũgwanja', 'Mweri wa kanana', 'Mweri wa kenda', 'Mweri wa ikũmi', 'Mweri wa ikũmi na ũmwe', 'Mweri wa ikũmi na Kaĩrĩ'],
+    'months_short' => ['Mbe', 'Kai', 'Kat', 'Kan', 'Gat', 'Gan', 'Mug', 'Knn', 'Ken', 'Iku', 'Imw', 'Igi'],
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ee.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ee.php
new file mode 100644
index 0000000..2fd9dcd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ee.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['ŋ', 'ɣ'],
+    'weekdays' => ['kɔsiɖa', 'dzoɖa', 'blaɖa', 'kuɖa', 'yawoɖa', 'fiɖa', 'memleɖa'],
+    'weekdays_short' => ['kɔs', 'dzo', 'bla', 'kuɖ', 'yaw', 'fiɖ', 'mem'],
+    'weekdays_min' => ['kɔs', 'dzo', 'bla', 'kuɖ', 'yaw', 'fiɖ', 'mem'],
+    'months' => ['dzove', 'dzodze', 'tedoxe', 'afɔfĩe', 'dama', 'masa', 'siamlɔm', 'deasiamime', 'anyɔnyɔ', 'kele', 'adeɛmekpɔxe', 'dzome'],
+    'months_short' => ['dzv', 'dzd', 'ted', 'afɔ', 'dam', 'mas', 'sia', 'dea', 'any', 'kel', 'ade', 'dzm'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'a [ga] h:mm',
+        'LTS' => 'a [ga] h:mm:ss',
+        'L' => 'M/D/YYYY',
+        'LL' => 'MMM D [lia], YYYY',
+        'LLL' => 'a [ga] h:mm MMMM D [lia] YYYY',
+        'LLLL' => 'a [ga] h:mm dddd, MMMM D [lia] YYYY',
+    ],
+
+    'year' => 'ƒe :count',
+    'y' => 'ƒe :count',
+    'a_year' => 'ƒe :count',
+
+    'month' => 'ɣleti :count',
+    'm' => 'ɣleti :count',
+    'a_month' => 'ɣleti :count',
+
+    'week' => 'kwasiɖa :count',
+    'w' => 'kwasiɖa :count',
+    'a_week' => 'kwasiɖa :count',
+
+    'day' => 'ŋkeke :count',
+    'd' => 'ŋkeke :count',
+    'a_day' => 'ŋkeke :count',
+
+    'hour' => 'gaƒoƒo :count',
+    'h' => 'gaƒoƒo :count',
+    'a_hour' => 'gaƒoƒo :count',
+
+    'minute' => 'miniti :count', // less reliable
+    'min' => 'miniti :count', // less reliable
+    'a_minute' => 'miniti :count', // less reliable
+
+    'second' => 'sɛkɛnd :count', // less reliable
+    's' => 'sɛkɛnd :count', // less reliable
+    'a_second' => 'sɛkɛnd :count', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ee_TG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ee_TG.php
new file mode 100644
index 0000000..02d77e6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ee_TG.php
@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ee.php', [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'LLL' => 'HH:mm MMMM D [lia] YYYY',
+        'LLLL' => 'HH:mm dddd, MMMM D [lia] YYYY',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/el.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/el.php
new file mode 100644
index 0000000..09cf7e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/el.php
@@ -0,0 +1,90 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Alessandro Di Felice
+ * - François B
+ * - Tim Fish
+ * - Gabriel Monteagudo
+ * - JD Isaacks
+ * - yiannisdesp
+ * - Ilias Kasmeridis (iliaskasm)
+ */
+return [
+    'year' => ':count χρόνος|:count χρόνια',
+    'a_year' => 'ένας χρόνος|:count χρόνια',
+    'y' => ':count χρ.',
+    'month' => ':count μήνας|:count μήνες',
+    'a_month' => 'ένας μήνας|:count μήνες',
+    'm' => ':count μήν.',
+    'week' => ':count εβδομάδα|:count εβδομάδες',
+    'a_week' => 'μια εβδομάδα|:count εβδομάδες',
+    'w' => ':count εβδ.',
+    'day' => ':count μέρα|:count μέρες',
+    'a_day' => 'μία μέρα|:count μέρες',
+    'd' => ':count μέρ.',
+    'hour' => ':count ώρα|:count ώρες',
+    'a_hour' => 'μία ώρα|:count ώρες',
+    'h' => ':count ώρα|:count ώρες',
+    'minute' => ':count λεπτό|:count λεπτά',
+    'a_minute' => 'ένα λεπτό|:count λεπτά',
+    'min' => ':count λεπ.',
+    'second' => ':count δευτερόλεπτο|:count δευτερόλεπτα',
+    'a_second' => 'λίγα δευτερόλεπτα|:count δευτερόλεπτα',
+    's' => ':count δευ.',
+    'ago' => 'πριν :time',
+    'from_now' => 'σε :time',
+    'after' => ':time μετά',
+    'before' => ':time πριν',
+    'diff_now' => 'τώρα',
+    'diff_today' => 'Σήμερα',
+    'diff_today_regexp' => 'Σήμερα(?:\\s+{})?',
+    'diff_yesterday' => 'χθες',
+    'diff_yesterday_regexp' => 'Χθες(?:\\s+{})?',
+    'diff_tomorrow' => 'αύριο',
+    'diff_tomorrow_regexp' => 'Αύριο(?:\\s+{})?',
+    'formats' => [
+        'LT' => 'h:mm A',
+        'LTS' => 'h:mm:ss A',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY h:mm A',
+        'LLLL' => 'dddd, D MMMM YYYY h:mm A',
+    ],
+    'calendar' => [
+        'sameDay' => '[Σήμερα {}] LT',
+        'nextDay' => '[Αύριο {}] LT',
+        'nextWeek' => 'dddd [{}] LT',
+        'lastDay' => '[Χθες {}] LT',
+        'lastWeek' => function (\Carbon\CarbonInterface $current) {
+            switch ($current->dayOfWeek) {
+                case 6:
+                    return '[το προηγούμενο] dddd [{}] LT';
+                default:
+                    return '[την προηγούμενη] dddd [{}] LT';
+            }
+        },
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':numberη',
+    'meridiem' => ['ΠΜ', 'ΜΜ', 'πμ', 'μμ'],
+    'months' => ['Ιανουαρίου', 'Φεβρουαρίου', 'Μαρτίου', 'Απριλίου', 'Μαΐου', 'Ιουνίου', 'Ιουλίου', 'Αυγούστου', 'Σεπτεμβρίου', 'Οκτωβρίου', 'Νοεμβρίου', 'Δεκεμβρίου'],
+    'months_standalone' => ['Ιανουάριος', 'Φεβρουάριος', 'Μάρτιος', 'Απρίλιος', 'Μάιος', 'Ιούνιος', 'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος'],
+    'months_regexp' => '/(D[oD]?[\s,]+MMMM|L{2,4}|l{2,4})/',
+    'months_short' => ['Ιαν', 'Φεβ', 'Μαρ', 'Απρ', 'Μαϊ', 'Ιουν', 'Ιουλ', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοε', 'Δεκ'],
+    'weekdays' => ['Κυριακή', 'Δευτέρα', 'Τρίτη', 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο'],
+    'weekdays_short' => ['Κυρ', 'Δευ', 'Τρι', 'Τετ', 'Πεμ', 'Παρ', 'Σαβ'],
+    'weekdays_min' => ['Κυ', 'Δε', 'Τρ', 'Τε', 'Πε', 'Πα', 'Σα'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' και '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/el_CY.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/el_CY.php
new file mode 100644
index 0000000..8a693c1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/el_CY.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Greek Debian Translation Team    bug-glibc@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/el.php', [
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/el_GR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/el_GR.php
new file mode 100644
index 0000000..df196af
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/el_GR.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/el.php', [
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en.php
new file mode 100644
index 0000000..a8633fe
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en.php
@@ -0,0 +1,87 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Milos Sakovic
+ * - Paul
+ * - Pete Scopes (pdscopes)
+ */
+return [
+    /*
+     * {1}, {0} and ]1,Inf[ are not needed as it's the default for English pluralization.
+     * But as some languages are using en.php as a fallback, it's better to specify it
+     * explicitly so those languages also fallback to English pluralization when a unit
+     * is missing.
+     */
+    'year' => '{1}:count year|{0}:count years|]1,Inf[:count years',
+    'a_year' => '{1}a year|{0}:count years|]1,Inf[:count years',
+    'y' => '{1}:countyr|{0}:countyrs|]1,Inf[:countyrs',
+    'month' => '{1}:count month|{0}:count months|]1,Inf[:count months',
+    'a_month' => '{1}a month|{0}:count months|]1,Inf[:count months',
+    'm' => '{1}:countmo|{0}:countmos|]1,Inf[:countmos',
+    'week' => '{1}:count week|{0}:count weeks|]1,Inf[:count weeks',
+    'a_week' => '{1}a week|{0}:count weeks|]1,Inf[:count weeks',
+    'w' => ':countw',
+    'day' => '{1}:count day|{0}:count days|]1,Inf[:count days',
+    'a_day' => '{1}a day|{0}:count days|]1,Inf[:count days',
+    'd' => ':countd',
+    'hour' => '{1}:count hour|{0}:count hours|]1,Inf[:count hours',
+    'a_hour' => '{1}an hour|{0}:count hours|]1,Inf[:count hours',
+    'h' => ':counth',
+    'minute' => '{1}:count minute|{0}:count minutes|]1,Inf[:count minutes',
+    'a_minute' => '{1}a minute|{0}:count minutes|]1,Inf[:count minutes',
+    'min' => ':countm',
+    'second' => '{1}:count second|{0}:count seconds|]1,Inf[:count seconds',
+    'a_second' => '{1}a few seconds|{0}:count seconds|]1,Inf[:count seconds',
+    's' => ':counts',
+    'millisecond' => '{1}:count millisecond|{0}:count milliseconds|]1,Inf[:count milliseconds',
+    'a_millisecond' => '{1}a millisecond|{0}:count milliseconds|]1,Inf[:count milliseconds',
+    'ms' => ':countms',
+    'microsecond' => '{1}:count microsecond|{0}:count microseconds|]1,Inf[:count microseconds',
+    'a_microsecond' => '{1}a microsecond|{0}:count microseconds|]1,Inf[:count microseconds',
+    'µs' => ':countµs',
+    'ago' => ':time ago',
+    'from_now' => ':time from now',
+    'after' => ':time after',
+    'before' => ':time before',
+    'diff_now' => 'just now',
+    'diff_today' => 'today',
+    'diff_yesterday' => 'yesterday',
+    'diff_tomorrow' => 'tomorrow',
+    'diff_before_yesterday' => 'before yesterday',
+    'diff_after_tomorrow' => 'after tomorrow',
+    'period_recurrences' => '{1}once|{0}:count times|]1,Inf[:count times',
+    'period_interval' => 'every :interval',
+    'period_start_date' => 'from :date',
+    'period_end_date' => 'to :date',
+    'months' => ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
+    'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
+    'weekdays' => ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
+    'weekdays_short' => ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
+    'weekdays_min' => ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
+    'ordinal' => function ($number) {
+        $lastDigit = $number % 10;
+
+        return $number.(
+            (~~($number % 100 / 10) === 1) ? 'th' : (
+                ($lastDigit === 1) ? 'st' : (
+                    ($lastDigit === 2) ? 'nd' : (
+                        ($lastDigit === 3) ? 'rd' : 'th'
+                    )
+                )
+            )
+        );
+    },
+    'list' => [', ', ' and '],
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_001.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_001.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_001.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_150.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_150.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_150.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_AG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_AG.php
new file mode 100644
index 0000000..2c1c64f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_AG.php
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Free Software Foundation, Inc.  bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YY',
+    ],
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_AI.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_AI.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_AI.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_AS.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_AS.php
new file mode 100644
index 0000000..31f60e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_AS.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/en.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_AT.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_AT.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_AT.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_AU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_AU.php
new file mode 100644
index 0000000..f16bd4f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_AU.php
@@ -0,0 +1,31 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Kunal Marwaha
+ * - François B
+ * - Mayank Badola
+ * - JD Isaacks
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'from_now' => 'in :time',
+    'formats' => [
+        'LT' => 'h:mm A',
+        'LTS' => 'h:mm:ss A',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY h:mm A',
+        'LLLL' => 'dddd, D MMMM YYYY h:mm A',
+    ],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_BB.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_BB.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_BB.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_BE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_BE.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_BE.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_BI.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_BI.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_BI.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_BM.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_BM.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_BM.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_BS.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_BS.php
new file mode 100644
index 0000000..31f60e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_BS.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/en.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_BW.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_BW.php
new file mode 100644
index 0000000..31f60e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_BW.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/en.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_BZ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_BZ.php
new file mode 100644
index 0000000..31f60e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_BZ.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/en.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_CA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_CA.php
new file mode 100644
index 0000000..e656086
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_CA.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - François B
+ * - Zhan Tong Zhang
+ * - Mayank Badola
+ * - JD Isaacks
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'from_now' => 'in :time',
+    'formats' => [
+        'LT' => 'h:mm A',
+        'LTS' => 'h:mm:ss A',
+        'L' => 'YYYY-MM-DD',
+        'LL' => 'MMMM D, YYYY',
+        'LLL' => 'MMMM D, YYYY h:mm A',
+        'LLLL' => 'dddd, MMMM D, YYYY h:mm A',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_CC.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_CC.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_CC.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_CH.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_CH.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_CH.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_CK.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_CK.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_CK.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_CM.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_CM.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_CM.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_CX.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_CX.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_CX.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_CY.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_CY.php
new file mode 100644
index 0000000..a44c350
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_CY.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - NehaGautam
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'from_now' => 'in :time',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD-MM-YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_DE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_DE.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_DE.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_DG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_DG.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_DG.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_DK.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_DK.php
new file mode 100644
index 0000000..9e8a8c6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_DK.php
@@ -0,0 +1,22 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Danish Standards Association  bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'YYYY-MM-DD',
+    ],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_DM.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_DM.php
new file mode 100644
index 0000000..31f60e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_DM.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/en.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_ER.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_ER.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_ER.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_FI.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_FI.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_FI.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_FJ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_FJ.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_FJ.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_FK.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_FK.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_FK.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_FM.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_FM.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_FM.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GB.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GB.php
new file mode 100644
index 0000000..67d9fd6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GB.php
@@ -0,0 +1,30 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - François B
+ * - Mayank Badola
+ * - JD Isaacks
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'from_now' => 'in :time',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GD.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GD.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GD.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GG.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GG.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GH.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GH.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GH.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GI.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GI.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GI.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GM.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GM.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GM.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GU.php
new file mode 100644
index 0000000..31f60e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GU.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/en.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GY.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GY.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_GY.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_HK.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_HK.php
new file mode 100644
index 0000000..34aae98
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_HK.php
@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - IBM Globalization Center of Competency, Yamato Software Laboratory  bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_IE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_IE.php
new file mode 100644
index 0000000..c8d3c2f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_IE.php
@@ -0,0 +1,31 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Martin McWhorter
+ * - François B
+ * - Chris Cartlidge
+ * - JD Isaacks
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'from_now' => 'in :time',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD-MM-YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_IL.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_IL.php
new file mode 100644
index 0000000..e607924
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_IL.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Yoav Amit
+ * - François B
+ * - Mayank Badola
+ * - JD Isaacks
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'from_now' => 'in :time',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_IM.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_IM.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_IM.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_IN.php
new file mode 100644
index 0000000..00414e9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_IN.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - IBM Globalization Center of Competency, Yamato Software Laboratory  bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YY',
+        'LL' => 'MMMM DD, YYYY',
+        'LLL' => 'DD MMM HH:mm',
+        'LLLL' => 'MMMM DD, YYYY HH:mm',
+    ],
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_IO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_IO.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_IO.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_ISO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_ISO.php
new file mode 100644
index 0000000..6ae11c9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_ISO.php
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'YYYY-MM-dd',
+        'LL' => 'YYYY MMM D',
+        'LLL' => 'YYYY MMMM D HH:mm',
+        'LLLL' => 'dddd, YYYY MMMM DD HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_JE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_JE.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_JE.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_JM.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_JM.php
new file mode 100644
index 0000000..31f60e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_JM.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/en.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_KE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_KE.php
new file mode 100644
index 0000000..31f60e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_KE.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/en.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_KI.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_KI.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_KI.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_KN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_KN.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_KN.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_KY.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_KY.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_KY.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_LC.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_LC.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_LC.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_LR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_LR.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_LR.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_LS.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_LS.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_LS.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MG.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MG.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MH.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MH.php
new file mode 100644
index 0000000..31f60e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MH.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/en.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MO.php
new file mode 100644
index 0000000..31f60e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MO.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/en.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MP.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MP.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MP.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MS.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MS.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MS.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MT.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MT.php
new file mode 100644
index 0000000..31f60e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MT.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/en.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MU.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MU.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MW.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MW.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MW.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MY.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MY.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_MY.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_NA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_NA.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_NA.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_NF.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_NF.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_NF.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_NG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_NG.php
new file mode 100644
index 0000000..1d0d34f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_NG.php
@@ -0,0 +1,17 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YY',
+    ],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_NL.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_NL.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_NL.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_NR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_NR.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_NR.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_NU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_NU.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_NU.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_NZ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_NZ.php
new file mode 100644
index 0000000..6a206a0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_NZ.php
@@ -0,0 +1,31 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - François B
+ * - Mayank Badola
+ * - Luke McGregor
+ * - JD Isaacks
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'from_now' => 'in :time',
+    'formats' => [
+        'LT' => 'h:mm A',
+        'LTS' => 'h:mm:ss A',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY h:mm A',
+        'LLLL' => 'dddd, D MMMM YYYY h:mm A',
+    ],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_PG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_PG.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_PG.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_PH.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_PH.php
new file mode 100644
index 0000000..34aae98
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_PH.php
@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - IBM Globalization Center of Competency, Yamato Software Laboratory  bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_PK.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_PK.php
new file mode 100644
index 0000000..31f60e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_PK.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/en.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_PN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_PN.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_PN.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_PR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_PR.php
new file mode 100644
index 0000000..31f60e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_PR.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/en.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_PW.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_PW.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_PW.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_RW.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_RW.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_RW.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SB.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SB.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SB.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SC.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SC.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SC.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SD.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SD.php
new file mode 100644
index 0000000..ce4780c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SD.php
@@ -0,0 +1,14 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 6,
+    'weekend' => [5, 6],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SE.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SE.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SG.php
new file mode 100644
index 0000000..ed0b3f9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SG.php
@@ -0,0 +1,23 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'from_now' => 'in :time',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SH.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SH.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SH.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SI.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SI.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SI.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SL.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SL.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SL.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SS.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SS.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SS.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SX.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SX.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SX.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SZ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SZ.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_SZ.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_TC.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_TC.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_TC.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_TK.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_TK.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_TK.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_TO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_TO.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_TO.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_TT.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_TT.php
new file mode 100644
index 0000000..31f60e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_TT.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/en.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_TV.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_TV.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_TV.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_TZ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_TZ.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_TZ.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_UG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_UG.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_UG.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_UM.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_UM.php
new file mode 100644
index 0000000..31f60e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_UM.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/en.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_US.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_US.php
new file mode 100644
index 0000000..31f60e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_US.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/en.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_US_Posix.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_US_Posix.php
new file mode 100644
index 0000000..31f60e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_US_Posix.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/en.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_VC.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_VC.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_VC.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_VG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_VG.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_VG.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_VI.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_VI.php
new file mode 100644
index 0000000..31f60e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_VI.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/en.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_VU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_VU.php
new file mode 100644
index 0000000..9f2a3f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_VU.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_WS.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_WS.php
new file mode 100644
index 0000000..31f60e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_WS.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/en.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_ZA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_ZA.php
new file mode 100644
index 0000000..48ea947
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_ZA.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YY',
+        'LL' => 'MMMM DD, YYYY',
+        'LLL' => 'DD MMM HH:mm',
+        'LLLL' => 'MMMM DD, YYYY HH:mm',
+    ],
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_ZM.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_ZM.php
new file mode 100644
index 0000000..d8a8cb5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_ZM.php
@@ -0,0 +1,22 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - ANLoc Martin Benjamin locales@africanlocalization.net
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YY',
+    ],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_ZW.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_ZW.php
new file mode 100644
index 0000000..31f60e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/en_ZW.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/en.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/eo.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/eo.php
new file mode 100644
index 0000000..7c2efba
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/eo.php
@@ -0,0 +1,77 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - François B
+ * - Mia Nordentoft
+ * - JD Isaacks
+ */
+return [
+    'year' => ':count jaro|:count jaroj',
+    'a_year' => 'jaro|:count jaroj',
+    'y' => ':count j.',
+    'month' => ':count monato|:count monatoj',
+    'a_month' => 'monato|:count monatoj',
+    'm' => ':count mo.',
+    'week' => ':count semajno|:count semajnoj',
+    'a_week' => 'semajno|:count semajnoj',
+    'w' => ':count sem.',
+    'day' => ':count tago|:count tagoj',
+    'a_day' => 'tago|:count tagoj',
+    'd' => ':count t.',
+    'hour' => ':count horo|:count horoj',
+    'a_hour' => 'horo|:count horoj',
+    'h' => ':count h.',
+    'minute' => ':count minuto|:count minutoj',
+    'a_minute' => 'minuto|:count minutoj',
+    'min' => ':count min.',
+    'second' => ':count sekundo|:count sekundoj',
+    'a_second' => 'sekundoj|:count sekundoj',
+    's' => ':count sek.',
+    'ago' => 'antaŭ :time',
+    'from_now' => 'post :time',
+    'after' => ':time poste',
+    'before' => ':time antaŭe',
+    'diff_yesterday' => 'Hieraŭ',
+    'diff_yesterday_regexp' => 'Hieraŭ(?:\\s+je)?',
+    'diff_today' => 'Hodiaŭ',
+    'diff_today_regexp' => 'Hodiaŭ(?:\\s+je)?',
+    'diff_tomorrow' => 'Morgaŭ',
+    'diff_tomorrow_regexp' => 'Morgaŭ(?:\\s+je)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'YYYY-MM-DD',
+        'LL' => 'D[-a de] MMMM, YYYY',
+        'LLL' => 'D[-a de] MMMM, YYYY HH:mm',
+        'LLLL' => 'dddd, [la] D[-a de] MMMM, YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Hodiaŭ je] LT',
+        'nextDay' => '[Morgaŭ je] LT',
+        'nextWeek' => 'dddd [je] LT',
+        'lastDay' => '[Hieraŭ je] LT',
+        'lastWeek' => '[pasinta] dddd [je] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':numbera',
+    'meridiem' => ['a.t.m.', 'p.t.m.'],
+    'months' => ['januaro', 'februaro', 'marto', 'aprilo', 'majo', 'junio', 'julio', 'aŭgusto', 'septembro', 'oktobro', 'novembro', 'decembro'],
+    'months_short' => ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aŭg', 'sep', 'okt', 'nov', 'dec'],
+    'weekdays' => ['dimanĉo', 'lundo', 'mardo', 'merkredo', 'ĵaŭdo', 'vendredo', 'sabato'],
+    'weekdays_short' => ['dim', 'lun', 'mard', 'merk', 'ĵaŭ', 'ven', 'sab'],
+    'weekdays_min' => ['di', 'lu', 'ma', 'me', 'ĵa', 've', 'sa'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' kaj '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es.php
new file mode 100644
index 0000000..daaf257
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es.php
@@ -0,0 +1,108 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Kunal Marwaha
+ * - kostas
+ * - François B
+ * - Tim Fish
+ * - Claire Coloma
+ * - Steven Heinrich
+ * - JD Isaacks
+ * - Raphael Amorim
+ * - Jorge Y. Castillo
+ * - Víctor Díaz
+ * - Diego
+ * - Sebastian Thierer
+ * - quinterocesar
+ * - Daniel Commesse Liévanos (danielcommesse)
+ * - Pete Scopes (pdscopes)
+ */
+return [
+    'year' => ':count año|:count años',
+    'a_year' => 'un año|:count años',
+    'y' => ':count año|:count años',
+    'month' => ':count mes|:count meses',
+    'a_month' => 'un mes|:count meses',
+    'm' => ':count mes|:count meses',
+    'week' => ':count semana|:count semanas',
+    'a_week' => 'una semana|:count semanas',
+    'w' => ':countsem',
+    'day' => ':count día|:count días',
+    'a_day' => 'un día|:count días',
+    'd' => ':countd',
+    'hour' => ':count hora|:count horas',
+    'a_hour' => 'una hora|:count horas',
+    'h' => ':counth',
+    'minute' => ':count minuto|:count minutos',
+    'a_minute' => 'un minuto|:count minutos',
+    'min' => ':countm',
+    'second' => ':count segundo|:count segundos',
+    'a_second' => 'unos segundos|:count segundos',
+    's' => ':counts',
+    'millisecond' => ':count milisegundo|:count milisegundos',
+    'a_millisecond' => 'un milisegundo|:count milisegundos',
+    'ms' => ':countms',
+    'microsecond' => ':count microsegundo|:count microsegundos',
+    'a_microsecond' => 'un microsegundo|:count microsegundos',
+    'µs' => ':countµs',
+    'ago' => 'hace :time',
+    'from_now' => 'en :time',
+    'after' => ':time después',
+    'before' => ':time antes',
+    'diff_now' => 'ahora mismo',
+    'diff_today' => 'hoy',
+    'diff_today_regexp' => 'hoy(?:\\s+a)?(?:\\s+las)?',
+    'diff_yesterday' => 'ayer',
+    'diff_yesterday_regexp' => 'ayer(?:\\s+a)?(?:\\s+las)?',
+    'diff_tomorrow' => 'mañana',
+    'diff_tomorrow_regexp' => 'mañana(?:\\s+a)?(?:\\s+las)?',
+    'diff_before_yesterday' => 'anteayer',
+    'diff_after_tomorrow' => 'pasado mañana',
+    'formats' => [
+        'LT' => 'H:mm',
+        'LTS' => 'H:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D [de] MMMM [de] YYYY',
+        'LLL' => 'D [de] MMMM [de] YYYY H:mm',
+        'LLLL' => 'dddd, D [de] MMMM [de] YYYY H:mm',
+    ],
+    'calendar' => [
+        'sameDay' => function (\Carbon\CarbonInterface $current) {
+            return '[hoy a la'.($current->hour !== 1 ? 's' : '').'] LT';
+        },
+        'nextDay' => function (\Carbon\CarbonInterface $current) {
+            return '[mañana a la'.($current->hour !== 1 ? 's' : '').'] LT';
+        },
+        'nextWeek' => function (\Carbon\CarbonInterface $current) {
+            return 'dddd [a la'.($current->hour !== 1 ? 's' : '').'] LT';
+        },
+        'lastDay' => function (\Carbon\CarbonInterface $current) {
+            return '[ayer a la'.($current->hour !== 1 ? 's' : '').'] LT';
+        },
+        'lastWeek' => function (\Carbon\CarbonInterface $current) {
+            return '[el] dddd [pasado a la'.($current->hour !== 1 ? 's' : '').'] LT';
+        },
+        'sameElse' => 'L',
+    ],
+    'months' => ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'],
+    'months_short' => ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', 'oct', 'nov', 'dic'],
+    'mmm_suffix' => '.',
+    'ordinal' => ':numberº',
+    'weekdays' => ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado'],
+    'weekdays_short' => ['dom.', 'lun.', 'mar.', 'mié.', 'jue.', 'vie.', 'sáb.'],
+    'weekdays_min' => ['do', 'lu', 'ma', 'mi', 'ju', 'vi', 'sá'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' y '],
+    'meridiem' => ['a. m.', 'p. m.'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_419.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_419.php
new file mode 100644
index 0000000..a74806e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_419.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_AR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_AR.php
new file mode 100644
index 0000000..a74806e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_AR.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_BO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_BO.php
new file mode 100644
index 0000000..c9b8432
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_BO.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_BR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_BR.php
new file mode 100644
index 0000000..e9dbe2b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_BR.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'first_day_of_week' => 0,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_BZ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_BZ.php
new file mode 100644
index 0000000..e9dbe2b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_BZ.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'first_day_of_week' => 0,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_CL.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_CL.php
new file mode 100644
index 0000000..a74806e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_CL.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_CO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_CO.php
new file mode 100644
index 0000000..a74806e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_CO.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_CR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_CR.php
new file mode 100644
index 0000000..553fc09
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_CR.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Free Software Foundation, Inc.    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_CU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_CU.php
new file mode 100644
index 0000000..96391d4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_CU.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_DO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_DO.php
new file mode 100644
index 0000000..0f855ba
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_DO.php
@@ -0,0 +1,31 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - kostas
+ * - François B
+ * - Tim Fish
+ * - Chiel Robben
+ * - Claire Coloma
+ * - Steven Heinrich
+ * - JD Isaacks
+ * - Raphael Amorim
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'diff_before_yesterday' => 'anteayer',
+    'formats' => [
+        'LT' => 'h:mm A',
+        'LTS' => 'h:mm:ss A',
+        'LLL' => 'D [de] MMMM [de] YYYY h:mm A',
+        'LLLL' => 'dddd, D [de] MMMM [de] YYYY h:mm A',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_EA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_EA.php
new file mode 100644
index 0000000..96391d4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_EA.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_EC.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_EC.php
new file mode 100644
index 0000000..a74806e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_EC.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_ES.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_ES.php
new file mode 100644
index 0000000..19217c2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_ES.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return require __DIR__.'/es.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_GQ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_GQ.php
new file mode 100644
index 0000000..96391d4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_GQ.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_GT.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_GT.php
new file mode 100644
index 0000000..a74806e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_GT.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_HN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_HN.php
new file mode 100644
index 0000000..a74806e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_HN.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_IC.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_IC.php
new file mode 100644
index 0000000..96391d4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_IC.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_MX.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_MX.php
new file mode 100644
index 0000000..61e14cf
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_MX.php
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'diff_before_yesterday' => 'antier',
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_NI.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_NI.php
new file mode 100644
index 0000000..6b964c1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_NI.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Free Software Foundation, Inc.    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_PA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_PA.php
new file mode 100644
index 0000000..a74806e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_PA.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_PE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_PE.php
new file mode 100644
index 0000000..a74806e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_PE.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_PH.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_PH.php
new file mode 100644
index 0000000..ea345b2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_PH.php
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'first_day_of_week' => 0,
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'D/M/yy',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D [de] MMMM [de] YYYY h:mm a',
+        'LLLL' => 'dddd, D [de] MMMM [de] YYYY h:mm a',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_PR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_PR.php
new file mode 100644
index 0000000..6b964c1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_PR.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Free Software Foundation, Inc.    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_PY.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_PY.php
new file mode 100644
index 0000000..a74806e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_PY.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_SV.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_SV.php
new file mode 100644
index 0000000..00db08e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_SV.php
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'months' => ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'],
+    'months_short' => ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', 'oct', 'nov', 'dic'],
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_US.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_US.php
new file mode 100644
index 0000000..f333136
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_US.php
@@ -0,0 +1,38 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Kunal Marwaha
+ * - Josh Soref
+ * - Jørn Ølmheim
+ * - Craig Patik
+ * - bustta
+ * - François B
+ * - Tim Fish
+ * - Claire Coloma
+ * - Steven Heinrich
+ * - JD Isaacks
+ * - Raphael Amorim
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'diff_before_yesterday' => 'anteayer',
+    'formats' => [
+        'LT' => 'h:mm A',
+        'LTS' => 'h:mm:ss A',
+        'L' => 'MM/DD/YYYY',
+        'LL' => 'MMMM [de] D [de] YYYY',
+        'LLL' => 'MMMM [de] D [de] YYYY h:mm A',
+        'LLLL' => 'dddd, MMMM [de] D [de] YYYY h:mm A',
+    ],
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_UY.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_UY.php
new file mode 100644
index 0000000..39baff8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_UY.php
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'months' => ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'setiembre', 'octubre', 'noviembre', 'diciembre'],
+    'months_short' => ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'set', 'oct', 'nov', 'dic'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_VE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_VE.php
new file mode 100644
index 0000000..a74806e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/es_VE.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/es.php', [
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/et.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/et.php
new file mode 100644
index 0000000..f49c880
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/et.php
@@ -0,0 +1,93 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Philippe Vaucher
+ * - Andres Ivanov
+ * - Tsutomu Kuroda
+ * - tjku
+ * - Max Melentiev
+ * - Juanito Fatas
+ * - RM87
+ * - Akira Matsuda
+ * - Christopher Dell
+ * - Enrique Vidal
+ * - Simone Carletti
+ * - Aaron Patterson
+ * - Esko Lehtme
+ * - Mart Karu
+ * - Nicolás Hock Isaza
+ * - Kevin Valdek
+ * - Zahhar Kirillov
+ * - João Magalhães
+ * - Ingmar
+ * - Illimar Tambek
+ * - Mihkel
+ */
+return [
+    'year' => ':count aasta|:count aastat',
+    'y' => ':count a',
+    'month' => ':count kuu|:count kuud',
+    'm' => ':count k',
+    'week' => ':count nädal|:count nädalat',
+    'w' => ':count näd',
+    'day' => ':count päev|:count päeva',
+    'd' => ':count p',
+    'hour' => ':count tund|:count tundi',
+    'h' => ':count t',
+    'minute' => ':count minut|:count minutit',
+    'min' => ':count min',
+    'second' => ':count sekund|:count sekundit',
+    's' => ':count s',
+    'ago' => ':time tagasi',
+    'from_now' => ':time pärast',
+    'after' => ':time pärast',
+    'before' => ':time enne',
+    'year_from_now' => ':count aasta',
+    'month_from_now' => ':count kuu',
+    'week_from_now' => ':count nädala',
+    'day_from_now' => ':count päeva',
+    'hour_from_now' => ':count tunni',
+    'minute_from_now' => ':count minuti',
+    'second_from_now' => ':count sekundi',
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'diff_now' => 'nüüd',
+    'diff_today' => 'täna',
+    'diff_yesterday' => 'eile',
+    'diff_tomorrow' => 'homme',
+    'diff_before_yesterday' => 'üleeile',
+    'diff_after_tomorrow' => 'ülehomme',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D. MMMM YYYY',
+        'LLL' => 'D. MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D. MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[täna] LT',
+        'nextDay' => '[homme] LT',
+        'lastDay' => '[eile] LT',
+        'nextWeek' => 'dddd LT',
+        'lastWeek' => '[eelmine] dddd LT',
+        'sameElse' => 'L',
+    ],
+    'months' => ['jaanuar', 'veebruar', 'märts', 'aprill', 'mai', 'juuni', 'juuli', 'august', 'september', 'oktoober', 'november', 'detsember'],
+    'months_short' => ['jaan', 'veebr', 'märts', 'apr', 'mai', 'juuni', 'juuli', 'aug', 'sept', 'okt', 'nov', 'dets'],
+    'weekdays' => ['pühapäev', 'esmaspäev', 'teisipäev', 'kolmapäev', 'neljapäev', 'reede', 'laupäev'],
+    'weekdays_short' => ['P', 'E', 'T', 'K', 'N', 'R', 'L'],
+    'weekdays_min' => ['P', 'E', 'T', 'K', 'N', 'R', 'L'],
+    'list' => [', ', ' ja '],
+    'meridiem' => ['enne lõunat', 'pärast lõunat'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/et_EE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/et_EE.php
new file mode 100644
index 0000000..3588f62
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/et_EE.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/et.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/eu.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/eu.php
new file mode 100644
index 0000000..a543f1a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/eu.php
@@ -0,0 +1,67 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - François B
+ * - JD Isaacks
+ */
+return [
+    'year' => 'urte bat|:count urte',
+    'y' => 'Urte 1|:count urte',
+    'month' => 'hilabete bat|:count hilabete',
+    'm' => 'Hile 1|:count hile',
+    'week' => 'Aste 1|:count aste',
+    'w' => 'Aste 1|:count aste',
+    'day' => 'egun bat|:count egun',
+    'd' => 'Egun 1|:count egun',
+    'hour' => 'ordu bat|:count ordu',
+    'h' => 'Ordu 1|:count ordu',
+    'minute' => 'minutu bat|:count minutu',
+    'min' => 'Minutu 1|:count minutu',
+    'second' => 'segundo batzuk|:count segundo',
+    's' => 'Segundu 1|:count segundu',
+    'ago' => 'duela :time',
+    'from_now' => ':time barru',
+    'after' => ':time geroago',
+    'before' => ':time lehenago',
+    'diff_now' => 'orain',
+    'diff_today' => 'gaur',
+    'diff_yesterday' => 'atzo',
+    'diff_tomorrow' => 'bihar',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'YYYY-MM-DD',
+        'LL' => 'YYYY[ko] MMMM[ren] D[a]',
+        'LLL' => 'YYYY[ko] MMMM[ren] D[a] HH:mm',
+        'LLLL' => 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[gaur] LT[etan]',
+        'nextDay' => '[bihar] LT[etan]',
+        'nextWeek' => 'dddd LT[etan]',
+        'lastDay' => '[atzo] LT[etan]',
+        'lastWeek' => '[aurreko] dddd LT[etan]',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':number.',
+    'months' => ['urtarrila', 'otsaila', 'martxoa', 'apirila', 'maiatza', 'ekaina', 'uztaila', 'abuztua', 'iraila', 'urria', 'azaroa', 'abendua'],
+    'months_short' => ['urt.', 'ots.', 'mar.', 'api.', 'mai.', 'eka.', 'uzt.', 'abu.', 'ira.', 'urr.', 'aza.', 'abe.'],
+    'weekdays' => ['igandea', 'astelehena', 'asteartea', 'asteazkena', 'osteguna', 'ostirala', 'larunbata'],
+    'weekdays_short' => ['ig.', 'al.', 'ar.', 'az.', 'og.', 'ol.', 'lr.'],
+    'weekdays_min' => ['ig', 'al', 'ar', 'az', 'og', 'ol', 'lr'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' eta '],
+    'meridiem' => ['g', 'a'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/eu_ES.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/eu_ES.php
new file mode 100644
index 0000000..442cca7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/eu_ES.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/eu.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ewo.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ewo.php
new file mode 100644
index 0000000..f5ae8cf
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ewo.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['kíkíríg', 'ngəgógəle'],
+    'weekdays' => ['sɔ́ndɔ', 'mɔ́ndi', 'sɔ́ndɔ məlú mə́bɛ̌', 'sɔ́ndɔ məlú mə́lɛ́', 'sɔ́ndɔ məlú mə́nyi', 'fúladé', 'séradé'],
+    'weekdays_short' => ['sɔ́n', 'mɔ́n', 'smb', 'sml', 'smn', 'fúl', 'sér'],
+    'weekdays_min' => ['sɔ́n', 'mɔ́n', 'smb', 'sml', 'smn', 'fúl', 'sér'],
+    'months' => ['ngɔn osú', 'ngɔn bɛ̌', 'ngɔn lála', 'ngɔn nyina', 'ngɔn tána', 'ngɔn saməna', 'ngɔn zamgbála', 'ngɔn mwom', 'ngɔn ebulú', 'ngɔn awóm', 'ngɔn awóm ai dziá', 'ngɔn awóm ai bɛ̌'],
+    'months_short' => ['ngo', 'ngb', 'ngl', 'ngn', 'ngt', 'ngs', 'ngz', 'ngm', 'nge', 'nga', 'ngad', 'ngab'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+
+    // Too unreliable
+    /*
+    'year' => ':count mbu', // less reliable
+    'y' => ':count mbu', // less reliable
+    'a_year' => ':count mbu', // less reliable
+
+    'month' => ':count ngòn', // less reliable
+    'm' => ':count ngòn', // less reliable
+    'a_month' => ':count ngòn', // less reliable
+
+    'week' => ':count mësë', // less reliable
+    'w' => ':count mësë', // less reliable
+    'a_week' => ':count mësë', // less reliable
+
+    'day' => ':count mësë', // less reliable
+    'd' => ':count mësë', // less reliable
+    'a_day' => ':count mësë', // less reliable
+
+    'hour' => ':count awola', // less reliable
+    'h' => ':count awola', // less reliable
+    'a_hour' => ':count awola', // less reliable
+
+    'minute' => ':count awola', // less reliable
+    'min' => ':count awola', // less reliable
+    'a_minute' => ':count awola', // less reliable
+    */
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fa.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fa.php
new file mode 100644
index 0000000..72e0308
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fa.php
@@ -0,0 +1,84 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - François B
+ * - Nasser Ghiasi
+ * - JD Isaacks
+ * - Hossein Jabbari
+ * - nimamo
+ * - hafezdivandari
+ * - Hassan Pezeshk (hpez)
+ */
+return [
+    'year' => ':count سال',
+    'a_year' => 'یک سال'.'|:count '.'سال',
+    'y' => ':count سال',
+    'month' => ':count ماه',
+    'a_month' => 'یک ماه'.'|:count '.'ماه',
+    'm' => ':count ماه',
+    'week' => ':count هفته',
+    'a_week' => 'یک هفته'.'|:count '.'هفته',
+    'w' => ':count هفته',
+    'day' => ':count روز',
+    'a_day' => 'یک روز'.'|:count '.'روز',
+    'd' => ':count روز',
+    'hour' => ':count ساعت',
+    'a_hour' => 'یک ساعت'.'|:count '.'ساعت',
+    'h' => ':count ساعت',
+    'minute' => ':count دقیقه',
+    'a_minute' => 'یک دقیقه'.'|:count '.'دقیقه',
+    'min' => ':count دقیقه',
+    'second' => ':count ثانیه',
+    's' => ':count ثانیه',
+    'ago' => ':time پیش',
+    'from_now' => ':time دیگر',
+    'after' => ':time پس از',
+    'before' => ':time پیش از',
+    'diff_now' => 'اکنون',
+    'diff_today' => 'امروز',
+    'diff_today_regexp' => 'امروز(?:\\s+ساعت)?',
+    'diff_yesterday' => 'دیروز',
+    'diff_yesterday_regexp' => 'دیروز(?:\\s+ساعت)?',
+    'diff_tomorrow' => 'فردا',
+    'diff_tomorrow_regexp' => 'فردا(?:\\s+ساعت)?',
+    'formats' => [
+        'LT' => 'OH:Om',
+        'LTS' => 'OH:Om:Os',
+        'L' => 'OD/OM/OY',
+        'LL' => 'OD MMMM OY',
+        'LLL' => 'OD MMMM OY OH:Om',
+        'LLLL' => 'dddd, OD MMMM OY OH:Om',
+    ],
+    'calendar' => [
+        'sameDay' => '[امروز ساعت] LT',
+        'nextDay' => '[فردا ساعت] LT',
+        'nextWeek' => 'dddd [ساعت] LT',
+        'lastDay' => '[دیروز ساعت] LT',
+        'lastWeek' => 'dddd [پیش] [ساعت] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':timeم',
+    'meridiem' => ['قبل از ظهر', 'بعد از ظهر'],
+    'months' => ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر'],
+    'months_short' => ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر'],
+    'weekdays' => ['یکشنبه', 'دوشنبه', 'سه‌شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'],
+    'weekdays_short' => ['یکشنبه', 'دوشنبه', 'سه‌شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'],
+    'weekdays_min' => ['ی', 'د', 'س', 'چ', 'پ', 'ج', 'ش'],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+    'list' => ['، ', ' و '],
+    'alt_numbers' => ['۰۰', '۰۱', '۰۲', '۰۳', '۰۴', '۰۵', '۰۶', '۰۷', '۰۸', '۰۹', '۱۰', '۱۱', '۱۲', '۱۳', '۱۴', '۱۵', '۱۶', '۱۷', '۱۸', '۱۹', '۲۰', '۲۱', '۲۲', '۲۳', '۲۴', '۲۵', '۲۶', '۲۷', '۲۸', '۲۹', '۳۰', '۳۱', '۳۲', '۳۳', '۳۴', '۳۵', '۳۶', '۳۷', '۳۸', '۳۹', '۴۰', '۴۱', '۴۲', '۴۳', '۴۴', '۴۵', '۴۶', '۴۷', '۴۸', '۴۹', '۵۰', '۵۱', '۵۲', '۵۳', '۵۴', '۵۵', '۵۶', '۵۷', '۵۸', '۵۹', '۶۰', '۶۱', '۶۲', '۶۳', '۶۴', '۶۵', '۶۶', '۶۷', '۶۸', '۶۹', '۷۰', '۷۱', '۷۲', '۷۳', '۷۴', '۷۵', '۷۶', '۷۷', '۷۸', '۷۹', '۸۰', '۸۱', '۸۲', '۸۳', '۸۴', '۸۵', '۸۶', '۸۷', '۸۸', '۸۹', '۹۰', '۹۱', '۹۲', '۹۳', '۹۴', '۹۵', '۹۶', '۹۷', '۹۸', '۹۹'],
+    'months_short_standalone' => ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر'],
+    'weekend' => [5, 5],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fa_AF.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fa_AF.php
new file mode 100644
index 0000000..06566fa
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fa_AF.php
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/fa.php', [
+    'meridiem' => ['ق', 'ب'],
+    'weekend' => [4, 5],
+    'formats' => [
+        'L' => 'OY/OM/OD',
+        'LL' => 'OD MMM OY',
+        'LLL' => 'OD MMMM OY،‏ H:mm',
+        'LLLL' => 'dddd OD MMMM OY،‏ H:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fa_IR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fa_IR.php
new file mode 100644
index 0000000..6d1832c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fa_IR.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fa.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ff.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ff.php
new file mode 100644
index 0000000..9525c95
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ff.php
@@ -0,0 +1,60 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM, YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+    'months' => ['siilo', 'colte', 'mbooy', 'seeɗto', 'duujal', 'korse', 'morso', 'juko', 'siilto', 'yarkomaa', 'jolal', 'bowte'],
+    'months_short' => ['sii', 'col', 'mbo', 'see', 'duu', 'kor', 'mor', 'juk', 'slt', 'yar', 'jol', 'bow'],
+    'weekdays' => ['dewo', 'aaɓnde', 'mawbaare', 'njeslaare', 'naasaande', 'mawnde', 'hoore-biir'],
+    'weekdays_short' => ['dew', 'aaɓ', 'maw', 'nje', 'naa', 'mwd', 'hbi'],
+    'weekdays_min' => ['dew', 'aaɓ', 'maw', 'nje', 'naa', 'mwd', 'hbi'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['subaka', 'kikiiɗe'],
+
+    'year' => ':count baret', // less reliable
+    'y' => ':count baret', // less reliable
+    'a_year' => ':count baret', // less reliable
+
+    'month' => ':count lewru', // less reliable
+    'm' => ':count lewru', // less reliable
+    'a_month' => ':count lewru', // less reliable
+
+    'week' => ':count naange', // less reliable
+    'w' => ':count naange', // less reliable
+    'a_week' => ':count naange', // less reliable
+
+    'day' => ':count dian', // less reliable
+    'd' => ':count dian', // less reliable
+    'a_day' => ':count dian', // less reliable
+
+    'hour' => ':count montor', // less reliable
+    'h' => ':count montor', // less reliable
+    'a_hour' => ':count montor', // less reliable
+
+    'minute' => ':count tokossuoum', // less reliable
+    'min' => ':count tokossuoum', // less reliable
+    'a_minute' => ':count tokossuoum', // less reliable
+
+    'second' => ':count tenen', // less reliable
+    's' => ':count tenen', // less reliable
+    'a_second' => ':count tenen', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ff_CM.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ff_CM.php
new file mode 100644
index 0000000..dafa98e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ff_CM.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ff.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ff_GN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ff_GN.php
new file mode 100644
index 0000000..dafa98e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ff_GN.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ff.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ff_MR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ff_MR.php
new file mode 100644
index 0000000..65276d3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ff_MR.php
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ff.php', [
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM, YYYY',
+        'LLL' => 'D MMMM YYYY h:mm a',
+        'LLLL' => 'dddd D MMMM YYYY h:mm a',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ff_SN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ff_SN.php
new file mode 100644
index 0000000..1e4c8b6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ff_SN.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Pular-Fulfulde.org Ibrahima Sarr admin@pulaar-fulfulde.org
+ */
+return require __DIR__.'/ff.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fi.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fi.php
new file mode 100644
index 0000000..2003e1e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fi.php
@@ -0,0 +1,86 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Philippe Vaucher
+ * - Janne Warén
+ * - digitalfrost
+ * - Tsutomu Kuroda
+ * - Roope Salmi
+ * - tjku
+ * - Max Melentiev
+ * - Sami Haahtinen
+ * - Teemu Leisti
+ * - Artem Ignatyev
+ * - Akira Matsuda
+ * - Christopher Dell
+ * - Enrique Vidal
+ * - Simone Carletti
+ * - Robert Bjarnason
+ * - Aaron Patterson
+ * - Nicolás Hock Isaza
+ * - Tom Hughes
+ * - Sven Fuchs
+ * - Petri Kivikangas
+ * - Nizar Jouini
+ * - Marko Seppae
+ * - Tomi Mynttinen (Pikseli)
+ * - Petteri (powergrip)
+ */
+return [
+    'year' => ':count vuosi|:count vuotta',
+    'y' => ':count v',
+    'month' => ':count kuukausi|:count kuukautta',
+    'm' => ':count kk',
+    'week' => ':count viikko|:count viikkoa',
+    'w' => ':count vk',
+    'day' => ':count päivä|:count päivää',
+    'd' => ':count pv',
+    'hour' => ':count tunti|:count tuntia',
+    'h' => ':count t',
+    'minute' => ':count minuutti|:count minuuttia',
+    'min' => ':count min',
+    'second' => ':count sekunti|:count sekuntia',
+    'a_second' => 'muutama sekunti|:count sekuntia',
+    's' => ':count s',
+    'ago' => ':time sitten',
+    'from_now' => ':time päästä',
+    'year_from_now' => ':count vuoden',
+    'month_from_now' => ':count kuukauden',
+    'week_from_now' => ':count viikon',
+    'day_from_now' => ':count päivän',
+    'hour_from_now' => ':count tunnin',
+    'minute_from_now' => ':count minuutin',
+    'second_from_now' => ':count sekunnin',
+    'after' => ':time sen jälkeen',
+    'before' => ':time ennen',
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' ja '],
+    'diff_now' => 'nyt',
+    'diff_yesterday' => 'eilen',
+    'diff_tomorrow' => 'huomenna',
+    'formats' => [
+        'LT' => 'HH.mm',
+        'LTS' => 'HH.mm:ss',
+        'L' => 'D.M.YYYY',
+        'LL' => 'dddd D. MMMM[ta] YYYY',
+        'LLL' => 'D.MM. HH.mm',
+        'LLLL' => 'D. MMMM[ta] YYYY HH.mm',
+    ],
+    'weekdays' => ['sunnuntai', 'maanantai', 'tiistai', 'keskiviikko', 'torstai', 'perjantai', 'lauantai'],
+    'weekdays_short' => ['su', 'ma', 'ti', 'ke', 'to', 'pe', 'la'],
+    'weekdays_min' => ['su', 'ma', 'ti', 'ke', 'to', 'pe', 'la'],
+    'months' => ['tammikuu', 'helmikuu', 'maaliskuu', 'huhtikuu', 'toukokuu', 'kesäkuu', 'heinäkuu', 'elokuu', 'syyskuu', 'lokakuu', 'marraskuu', 'joulukuu'],
+    'months_short' => ['tammi', 'helmi', 'maalis', 'huhti', 'touko', 'kesä', 'heinä', 'elo', 'syys', 'loka', 'marras', 'joulu'],
+    'meridiem' => ['aamupäivä', 'iltapäivä'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fi_FI.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fi_FI.php
new file mode 100644
index 0000000..3597fa2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fi_FI.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fi.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fil.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fil.php
new file mode 100644
index 0000000..61114e3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fil.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/fil_PH.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fil_PH.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fil_PH.php
new file mode 100644
index 0000000..bcf1580
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fil_PH.php
@@ -0,0 +1,62 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Rene Torres Rene Torres, Pablo Saratxaga rgtorre@rocketmail.com, pablo@mandrakesoft.com
+ * - Jaycee Mariano (alohajaycee)
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'MM/DD/YY',
+    ],
+    'months' => ['Enero', 'Pebrero', 'Marso', 'Abril', 'Mayo', 'Hunyo', 'Hulyo', 'Agosto', 'Setyembre', 'Oktubre', 'Nobyembre', 'Disyembre'],
+    'months_short' => ['Ene', 'Peb', 'Mar', 'Abr', 'May', 'Hun', 'Hul', 'Ago', 'Set', 'Okt', 'Nob', 'Dis'],
+    'weekdays' => ['Linggo', 'Lunes', 'Martes', 'Miyerkoles', 'Huwebes', 'Biyernes', 'Sabado'],
+    'weekdays_short' => ['Lin', 'Lun', 'Mar', 'Miy', 'Huw', 'Biy', 'Sab'],
+    'weekdays_min' => ['Lin', 'Lun', 'Mar', 'Miy', 'Huw', 'Biy', 'Sab'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['N.U.', 'N.H.'],
+
+    'before' => ':time bago',
+    'after' => ':time pagkatapos',
+
+    'year' => ':count taon',
+    'y' => ':count taon',
+    'a_year' => ':count taon',
+
+    'month' => ':count buwan',
+    'm' => ':count buwan',
+    'a_month' => ':count buwan',
+
+    'week' => ':count linggo',
+    'w' => ':count linggo',
+    'a_week' => ':count linggo',
+
+    'day' => ':count araw',
+    'd' => ':count araw',
+    'a_day' => ':count araw',
+
+    'hour' => ':count oras',
+    'h' => ':count oras',
+    'a_hour' => ':count oras',
+
+    'minute' => ':count minuto',
+    'min' => ':count minuto',
+    'a_minute' => ':count minuto',
+
+    'second' => ':count segundo',
+    's' => ':count segundo',
+    'a_second' => ':count segundo',
+
+    'ago' => ':time ang nakalipas',
+    'from_now' => 'sa :time',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fo.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fo.php
new file mode 100644
index 0000000..6a14a6f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fo.php
@@ -0,0 +1,69 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Kristian Sakarisson
+ * - François B
+ * - JD Isaacks
+ * - Sverri Mohr Olsen
+ */
+return [
+    'year' => 'eitt ár|:count ár',
+    'y' => ':count ár|:count ár',
+    'month' => 'ein mánaði|:count mánaðir',
+    'm' => ':count mánaður|:count mánaðir',
+    'week' => ':count vika|:count vikur',
+    'w' => ':count vika|:count vikur',
+    'day' => 'ein dagur|:count dagar',
+    'd' => ':count dag|:count dagar',
+    'hour' => 'ein tími|:count tímar',
+    'h' => ':count tími|:count tímar',
+    'minute' => 'ein minutt|:count minuttir',
+    'min' => ':count minutt|:count minuttir',
+    'second' => 'fá sekund|:count sekundir',
+    's' => ':count sekund|:count sekundir',
+    'ago' => ':time síðani',
+    'from_now' => 'um :time',
+    'after' => ':time aftaná',
+    'before' => ':time áðrenn',
+    'diff_today' => 'Í',
+    'diff_yesterday' => 'Í',
+    'diff_yesterday_regexp' => 'Í(?:\\s+gjár)?(?:\\s+kl.)?',
+    'diff_tomorrow' => 'Í',
+    'diff_tomorrow_regexp' => 'Í(?:\\s+morgin)?(?:\\s+kl.)?',
+    'diff_today_regexp' => 'Í(?:\\s+dag)?(?:\\s+kl.)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D. MMMM, YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Í dag kl.] LT',
+        'nextDay' => '[Í morgin kl.] LT',
+        'nextWeek' => 'dddd [kl.] LT',
+        'lastDay' => '[Í gjár kl.] LT',
+        'lastWeek' => '[síðstu] dddd [kl] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':number.',
+    'months' => ['januar', 'februar', 'mars', 'apríl', 'mai', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'desember'],
+    'months_short' => ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'des'],
+    'weekdays' => ['sunnudagur', 'mánadagur', 'týsdagur', 'mikudagur', 'hósdagur', 'fríggjadagur', 'leygardagur'],
+    'weekdays_short' => ['sun', 'mán', 'týs', 'mik', 'hós', 'frí', 'ley'],
+    'weekdays_min' => ['su', 'má', 'tý', 'mi', 'hó', 'fr', 'le'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' og '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fo_DK.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fo_DK.php
new file mode 100644
index 0000000..e0f4537
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fo_DK.php
@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/fo.php', [
+    'formats' => [
+        'L' => 'DD.MM.yy',
+        'LL' => 'DD.MM.YYYY',
+        'LLL' => 'D. MMMM YYYY, HH:mm',
+        'LLLL' => 'dddd, D. MMMM YYYY, HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fo_FO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fo_FO.php
new file mode 100644
index 0000000..6a4bc31
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fo_FO.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fo.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr.php
new file mode 100644
index 0000000..73fe5e4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr.php
@@ -0,0 +1,114 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Dieter Sting
+ * - François B
+ * - Maxime VALY
+ * - JD Isaacks
+ * - Dieter Sting
+ * - François B
+ * - JD Isaacks
+ * - Sebastian Thierer
+ * - Fastfuel
+ * - Pete Scopes (pdscopes)
+ */
+return [
+    'year' => ':count an|:count ans',
+    'a_year' => 'un an|:count ans',
+    'y' => ':count an|:count ans',
+    'month' => ':count mois|:count mois',
+    'a_month' => 'un mois|:count mois',
+    'm' => ':count mois',
+    'week' => ':count semaine|:count semaines',
+    'a_week' => 'une semaine|:count semaines',
+    'w' => ':count sem.',
+    'day' => ':count jour|:count jours',
+    'a_day' => 'un jour|:count jours',
+    'd' => ':count j',
+    'hour' => ':count heure|:count heures',
+    'a_hour' => 'une heure|:count heures',
+    'h' => ':count h',
+    'minute' => ':count minute|:count minutes',
+    'a_minute' => 'une minute|:count minutes',
+    'min' => ':count min',
+    'second' => ':count seconde|:count secondes',
+    'a_second' => 'quelques secondes|:count secondes',
+    's' => ':count s',
+    'millisecond' => ':count milliseconde|:count millisecondes',
+    'a_millisecond' => 'une milliseconde|:count millisecondes',
+    'ms' => ':countms',
+    'microsecond' => ':count microseconde|:count microsecondes',
+    'a_microsecond' => 'une microseconde|:count microsecondes',
+    'µs' => ':countµs',
+    'ago' => 'il y a :time',
+    'from_now' => 'dans :time',
+    'after' => ':time après',
+    'before' => ':time avant',
+    'diff_now' => "à l'instant",
+    'diff_today' => "aujourd'hui",
+    'diff_today_regexp' => "aujourd'hui(?:\s+à)?",
+    'diff_yesterday' => 'hier',
+    'diff_yesterday_regexp' => 'hier(?:\s+à)?',
+    'diff_tomorrow' => 'demain',
+    'diff_tomorrow_regexp' => 'demain(?:\s+à)?',
+    'diff_before_yesterday' => 'avant-hier',
+    'diff_after_tomorrow' => 'après-demain',
+    'period_recurrences' => ':count fois',
+    'period_interval' => 'tous les :interval',
+    'period_start_date' => 'de :date',
+    'period_end_date' => 'à :date',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Aujourd’hui à] LT',
+        'nextDay' => '[Demain à] LT',
+        'nextWeek' => 'dddd [à] LT',
+        'lastDay' => '[Hier à] LT',
+        'lastWeek' => 'dddd [dernier à] LT',
+        'sameElse' => 'L',
+    ],
+    'months' => ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
+    'months_short' => ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],
+    'weekdays' => ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'],
+    'weekdays_short' => ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],
+    'weekdays_min' => ['di', 'lu', 'ma', 'me', 'je', 've', 'sa'],
+    'ordinal' => function ($number, $period) {
+        switch ($period) {
+            // In french, only the first has be ordinal, other number remains cardinal
+            // @link https://fr.wikihow.com/%C3%A9crire-la-date-en-fran%C3%A7ais
+            case 'D':
+                return $number.($number === 1 ? 'er' : '');
+
+            default:
+            case 'M':
+            case 'Q':
+            case 'DDD':
+            case 'd':
+                return $number.($number === 1 ? 'er' : 'e');
+
+            // Words with feminine grammatical gender: semaine
+            case 'w':
+            case 'W':
+                return $number.($number === 1 ? 're' : 'e');
+        }
+    },
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' et '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_BE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_BE.php
new file mode 100644
index 0000000..f6cafe8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_BE.php
@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/fr.php', [
+    'months_short' => ['jan', 'fév', 'mar', 'avr', 'mai', 'jun', 'jui', 'aoû', 'sep', 'oct', 'nov', 'déc'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_BF.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_BF.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_BF.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_BI.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_BI.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_BI.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_BJ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_BJ.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_BJ.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_BL.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_BL.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_BL.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_CA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_CA.php
new file mode 100644
index 0000000..c9f6346
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_CA.php
@@ -0,0 +1,25 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Dieter Sting
+ * - François B
+ * - Maxime VALY
+ * - JD Isaacks
+ */
+return array_replace_recursive(require __DIR__.'/fr.php', [
+    'formats' => [
+        'L' => 'YYYY-MM-DD',
+    ],
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_CD.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_CD.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_CD.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_CF.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_CF.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_CF.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_CG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_CG.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_CG.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_CH.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_CH.php
new file mode 100644
index 0000000..8674c27
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_CH.php
@@ -0,0 +1,24 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Dieter Sting
+ * - François B
+ * - Gaspard Bucher
+ * - Maxime VALY
+ * - JD Isaacks
+ */
+return array_replace_recursive(require __DIR__.'/fr.php', [
+    'formats' => [
+        'L' => 'DD.MM.YYYY',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_CI.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_CI.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_CI.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_CM.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_CM.php
new file mode 100644
index 0000000..52b951c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_CM.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/fr.php', [
+    'meridiem' => ['mat.', 'soir'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_DJ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_DJ.php
new file mode 100644
index 0000000..40579a4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_DJ.php
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/fr.php', [
+    'first_day_of_week' => 6,
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY h:mm a',
+        'LLLL' => 'dddd D MMMM YYYY h:mm a',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_DZ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_DZ.php
new file mode 100644
index 0000000..2c1ab85
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_DZ.php
@@ -0,0 +1,22 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/fr.php', [
+    'first_day_of_week' => 6,
+    'weekend' => [5, 6],
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY h:mm a',
+        'LLLL' => 'dddd D MMMM YYYY h:mm a',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_FR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_FR.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_FR.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_GA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_GA.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_GA.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_GF.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_GF.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_GF.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_GN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_GN.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_GN.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_GP.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_GP.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_GP.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_GQ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_GQ.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_GQ.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_HT.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_HT.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_HT.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_KM.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_KM.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_KM.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_LU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_LU.php
new file mode 100644
index 0000000..8e37d85
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_LU.php
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/fr.php', [
+    'formats' => [
+        'L' => 'DD.MM.YYYY',
+    ],
+    'months_short' => ['jan', 'fév', 'mar', 'avr', 'mai', 'jun', 'jui', 'aoû', 'sep', 'oct', 'nov', 'déc'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_MA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_MA.php
new file mode 100644
index 0000000..7d2b1db
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_MA.php
@@ -0,0 +1,14 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/fr.php', [
+    'first_day_of_week' => 6,
+    'weekend' => [5, 6],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_MC.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_MC.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_MC.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_MF.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_MF.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_MF.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_MG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_MG.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_MG.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_ML.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_ML.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_ML.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_MQ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_MQ.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_MQ.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_MR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_MR.php
new file mode 100644
index 0000000..d177a7d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_MR.php
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/fr.php', [
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY h:mm a',
+        'LLLL' => 'dddd D MMMM YYYY h:mm a',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_MU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_MU.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_MU.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_NC.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_NC.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_NC.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_NE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_NE.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_NE.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_PF.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_PF.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_PF.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_PM.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_PM.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_PM.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_RE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_RE.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_RE.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_RW.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_RW.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_RW.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_SC.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_SC.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_SC.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_SN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_SN.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_SN.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_SY.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_SY.php
new file mode 100644
index 0000000..2c1ab85
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_SY.php
@@ -0,0 +1,22 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/fr.php', [
+    'first_day_of_week' => 6,
+    'weekend' => [5, 6],
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY h:mm a',
+        'LLLL' => 'dddd D MMMM YYYY h:mm a',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_TD.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_TD.php
new file mode 100644
index 0000000..d177a7d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_TD.php
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/fr.php', [
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY h:mm a',
+        'LLLL' => 'dddd D MMMM YYYY h:mm a',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_TG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_TG.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_TG.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_TN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_TN.php
new file mode 100644
index 0000000..d3e2656
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_TN.php
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/fr.php', [
+    'weekend' => [5, 6],
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY h:mm a',
+        'LLLL' => 'dddd D MMMM YYYY h:mm a',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_VU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_VU.php
new file mode 100644
index 0000000..d177a7d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_VU.php
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/fr.php', [
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY h:mm a',
+        'LLLL' => 'dddd D MMMM YYYY h:mm a',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_WF.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_WF.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_WF.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_YT.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_YT.php
new file mode 100644
index 0000000..f9801e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fr_YT.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/fr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fur.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fur.php
new file mode 100644
index 0000000..36c2564
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fur.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/fur_IT.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fur_IT.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fur_IT.php
new file mode 100644
index 0000000..0147a59
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fur_IT.php
@@ -0,0 +1,39 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Pablo Saratxaga pablo@mandrakesoft.com
+ */
+return [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD. MM. YY',
+        'LL' => 'DD di MMMM dal YYYY',
+        'LLL' => 'DD di MMM HH:mm',
+        'LLLL' => 'DD di MMMM dal YYYY HH:mm',
+    ],
+    'months' => ['zenâr', 'fevrâr', 'març', 'avrîl', 'mai', 'jugn', 'lui', 'avost', 'setembar', 'otubar', 'novembar', 'dicembar'],
+    'months_short' => ['zen', 'fev', 'mar', 'avr', 'mai', 'jug', 'lui', 'avo', 'set', 'otu', 'nov', 'dic'],
+    'weekdays' => ['domenie', 'lunis', 'martars', 'miercus', 'joibe', 'vinars', 'sabide'],
+    'weekdays_short' => ['dom', 'lun', 'mar', 'mie', 'joi', 'vin', 'sab'],
+    'weekdays_min' => ['dom', 'lun', 'mar', 'mie', 'joi', 'vin', 'sab'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'year' => ':count an',
+    'month' => ':count mês',
+    'week' => ':count setemane',
+    'day' => ':count zornade',
+    'hour' => ':count ore',
+    'minute' => ':count minût',
+    'second' => ':count secont',
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fy.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fy.php
new file mode 100644
index 0000000..c1b5439
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fy.php
@@ -0,0 +1,76 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - François B
+ * - Tim Fish
+ * - JD Isaacks
+ */
+return [
+    'year' => ':count jier|:count jierren',
+    'a_year' => 'ien jier|:count jierren',
+    'y' => ':count j',
+    'month' => ':count moanne|:count moannen',
+    'a_month' => 'ien moanne|:count moannen',
+    'm' => ':count moa.',
+    'week' => ':count wike|:count wiken',
+    'a_week' => 'in wike|:count wiken',
+    'a' => ':count w.',
+    'day' => ':count dei|:count dagen',
+    'a_day' => 'ien dei|:count dagen',
+    'd' => ':count d.',
+    'hour' => ':count oere|:count oeren',
+    'a_hour' => 'ien oere|:count oeren',
+    'h' => ':count o.',
+    'minute' => ':count minút|:count minuten',
+    'a_minute' => 'ien minút|:count minuten',
+    'min' => ':count min.',
+    'second' => ':count sekonde|:count sekonden',
+    'a_second' => 'in pear sekonden|:count sekonden',
+    's' => ':count s.',
+    'ago' => ':time lyn',
+    'from_now' => 'oer :time',
+    'diff_yesterday' => 'juster',
+    'diff_yesterday_regexp' => 'juster(?:\\s+om)?',
+    'diff_today' => 'hjoed',
+    'diff_today_regexp' => 'hjoed(?:\\s+om)?',
+    'diff_tomorrow' => 'moarn',
+    'diff_tomorrow_regexp' => 'moarn(?:\\s+om)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD-MM-YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[hjoed om] LT',
+        'nextDay' => '[moarn om] LT',
+        'nextWeek' => 'dddd [om] LT',
+        'lastDay' => '[juster om] LT',
+        'lastWeek' => '[ôfrûne] dddd [om] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number) {
+        return $number.(($number === 1 || $number === 8 || $number >= 20) ? 'ste' : 'de');
+    },
+    'months' => ['jannewaris', 'febrewaris', 'maart', 'april', 'maaie', 'juny', 'july', 'augustus', 'septimber', 'oktober', 'novimber', 'desimber'],
+    'months_short' => ['jan', 'feb', 'mrt', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'des'],
+    'mmm_suffix' => '.',
+    'weekdays' => ['snein', 'moandei', 'tiisdei', 'woansdei', 'tongersdei', 'freed', 'sneon'],
+    'weekdays_short' => ['si.', 'mo.', 'ti.', 'wo.', 'to.', 'fr.', 'so.'],
+    'weekdays_min' => ['Si', 'Mo', 'Ti', 'Wo', 'To', 'Fr', 'So'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' en '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fy_DE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fy_DE.php
new file mode 100644
index 0000000..8559d5c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fy_DE.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - information from Kenneth Christiansen Kenneth Christiansen, Pablo Saratxaga kenneth@gnu.org, pablo@mandriva.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD.MM.YYYY',
+    ],
+    'months' => ['Jaunuwoa', 'Februwoa', 'Moaz', 'Aprell', 'Mai', 'Juni', 'Juli', 'August', 'Septamba', 'Oktoba', 'Nowamba', 'Dezamba'],
+    'months_short' => ['Jan', 'Feb', 'Moz', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Now', 'Dez'],
+    'weekdays' => ['Sinndag', 'Mondag', 'Dingsdag', 'Meddwäakj', 'Donnadag', 'Friedag', 'Sinnowend'],
+    'weekdays_short' => ['Sdg', 'Mdg', 'Dsg', 'Mwk', 'Ddg', 'Fdg', 'Swd'],
+    'weekdays_min' => ['Sdg', 'Mdg', 'Dsg', 'Mwk', 'Ddg', 'Fdg', 'Swd'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fy_NL.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fy_NL.php
new file mode 100644
index 0000000..01cc96c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/fy_NL.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Free Software Foundation, Inc.    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/fy.php', [
+    'formats' => [
+        'L' => 'DD-MM-YY',
+    ],
+    'months' => ['Jannewaris', 'Febrewaris', 'Maart', 'April', 'Maaie', 'Juny', 'July', 'Augustus', 'Septimber', 'Oktober', 'Novimber', 'Desimber'],
+    'months_short' => ['Jan', 'Feb', 'Mrt', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'],
+    'weekdays' => ['Snein', 'Moandei', 'Tiisdei', 'Woansdei', 'Tongersdei', 'Freed', 'Sneon'],
+    'weekdays_short' => ['Sn', 'Mo', 'Ti', 'Wo', 'To', 'Fr', 'Sn'],
+    'weekdays_min' => ['Sn', 'Mo', 'Ti', 'Wo', 'To', 'Fr', 'Sn'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ga.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ga.php
new file mode 100644
index 0000000..9f07a26
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ga.php
@@ -0,0 +1,77 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Thanks to André Silva : https://github.com/askpt
+ */
+
+return [
+    'year' => ':count bliain',
+    'a_year' => '{1}bliain|:count bliain',
+    'y' => ':countb',
+    'month' => ':count mí',
+    'a_month' => '{1}mí|:count mí',
+    'm' => ':countm',
+    'week' => ':count sheachtain',
+    'a_week' => '{1}sheachtain|:count sheachtain',
+    'w' => ':countsh',
+    'day' => ':count lá',
+    'a_day' => '{1}lá|:count lá',
+    'd' => ':countl',
+    'hour' => ':count uair an chloig',
+    'a_hour' => '{1}uair an chloig|:count uair an chloig',
+    'h' => ':countu',
+    'minute' => ':count nóiméad',
+    'a_minute' => '{1}nóiméad|:count nóiméad',
+    'min' => ':countn',
+    'second' => ':count soicind',
+    'a_second' => '{1}cúpla soicind|:count soicind',
+    's' => ':countso',
+    'ago' => ':time ó shin',
+    'from_now' => 'i :time',
+    'after' => ':time tar éis',
+    'before' => ':time roimh',
+    'diff_now' => 'anois',
+    'diff_today' => 'Inniu',
+    'diff_today_regexp' => 'Inniu(?:\\s+ag)?',
+    'diff_yesterday' => 'inné',
+    'diff_yesterday_regexp' => 'Inné(?:\\s+aig)?',
+    'diff_tomorrow' => 'amárach',
+    'diff_tomorrow_regexp' => 'Amárach(?:\\s+ag)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Inniu ag] LT',
+        'nextDay' => '[Amárach ag] LT',
+        'nextWeek' => 'dddd [ag] LT',
+        'lastDay' => '[Inné aig] LT',
+        'lastWeek' => 'dddd [seo caite] [ag] LT',
+        'sameElse' => 'L',
+    ],
+    'months' => ['Eanáir', 'Feabhra', 'Márta', 'Aibreán', 'Bealtaine', 'Méitheamh', 'Iúil', 'Lúnasa', 'Meán Fómhair', 'Deaireadh Fómhair', 'Samhain', 'Nollaig'],
+    'months_short' => ['Eaná', 'Feab', 'Márt', 'Aibr', 'Beal', 'Méit', 'Iúil', 'Lúna', 'Meán', 'Deai', 'Samh', 'Noll'],
+    'weekdays' => ['Dé Domhnaigh', 'Dé Luain', 'Dé Máirt', 'Dé Céadaoin', 'Déardaoin', 'Dé hAoine', 'Dé Satharn'],
+    'weekdays_short' => ['Dom', 'Lua', 'Mái', 'Céa', 'Déa', 'hAo', 'Sat'],
+    'weekdays_min' => ['Do', 'Lu', 'Má', 'Ce', 'Dé', 'hA', 'Sa'],
+    'ordinal' => function ($number) {
+        return $number.($number === 1 ? 'd' : ($number % 10 === 2 ? 'na' : 'mh'));
+    },
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' agus '],
+    'meridiem' => ['r.n.', 'i.n.'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ga_IE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ga_IE.php
new file mode 100644
index 0000000..d50630c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ga_IE.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ga.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gd.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gd.php
new file mode 100644
index 0000000..63d064d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gd.php
@@ -0,0 +1,75 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - François B
+ * - Jon Ashdown
+ */
+return [
+    'year' => ':count bliadhna',
+    'a_year' => '{1}bliadhna|:count bliadhna',
+    'y' => ':count b.',
+    'month' => ':count mìosan',
+    'a_month' => '{1}mìos|:count mìosan',
+    'm' => ':count ms.',
+    'week' => ':count seachdainean',
+    'a_week' => '{1}seachdain|:count seachdainean',
+    'w' => ':count s.',
+    'day' => ':count latha',
+    'a_day' => '{1}latha|:count latha',
+    'd' => ':count l.',
+    'hour' => ':count uairean',
+    'a_hour' => '{1}uair|:count uairean',
+    'h' => ':count u.',
+    'minute' => ':count mionaidean',
+    'a_minute' => '{1}mionaid|:count mionaidean',
+    'min' => ':count md.',
+    'second' => ':count diogan',
+    'a_second' => '{1}beagan diogan|:count diogan',
+    's' => ':count d.',
+    'ago' => 'bho chionn :time',
+    'from_now' => 'ann an :time',
+    'diff_yesterday' => 'An-dè',
+    'diff_yesterday_regexp' => 'An-dè(?:\\s+aig)?',
+    'diff_today' => 'An-diugh',
+    'diff_today_regexp' => 'An-diugh(?:\\s+aig)?',
+    'diff_tomorrow' => 'A-màireach',
+    'diff_tomorrow_regexp' => 'A-màireach(?:\\s+aig)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[An-diugh aig] LT',
+        'nextDay' => '[A-màireach aig] LT',
+        'nextWeek' => 'dddd [aig] LT',
+        'lastDay' => '[An-dè aig] LT',
+        'lastWeek' => 'dddd [seo chaidh] [aig] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number) {
+        return $number.($number === 1 ? 'd' : ($number % 10 === 2 ? 'na' : 'mh'));
+    },
+    'months' => ['Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'],
+    'months_short' => ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'],
+    'weekdays' => ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'],
+    'weekdays_short' => ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],
+    'weekdays_min' => ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' agus '],
+    'meridiem' => ['m', 'f'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gd_GB.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gd_GB.php
new file mode 100644
index 0000000..80da9c6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gd_GB.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/gd.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gez.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gez.php
new file mode 100644
index 0000000..b8a2f0e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gez.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/gez_ER.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gez_ER.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gez_ER.php
new file mode 100644
index 0000000..f19d1df
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gez_ER.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ge'ez Frontier Foundation    locales@geez.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['ጠሐረ', 'ከተተ', 'መገበ', 'አኀዘ', 'ግንባት', 'ሠንየ', 'ሐመለ', 'ነሐሰ', 'ከረመ', 'ጠቀመ', 'ኀደረ', 'ኀሠሠ'],
+    'months_short' => ['ጠሐረ', 'ከተተ', 'መገበ', 'አኀዘ', 'ግንባ', 'ሠንየ', 'ሐመለ', 'ነሐሰ', 'ከረመ', 'ጠቀመ', 'ኀደረ', 'ኀሠሠ'],
+    'weekdays' => ['እኁድ', 'ሰኑይ', 'ሠሉስ', 'ራብዕ', 'ሐሙስ', 'ዓርበ', 'ቀዳሚት'],
+    'weekdays_short' => ['እኁድ', 'ሰኑይ', 'ሠሉስ', 'ራብዕ', 'ሐሙስ', 'ዓርበ', 'ቀዳሚ'],
+    'weekdays_min' => ['እኁድ', 'ሰኑይ', 'ሠሉስ', 'ራብዕ', 'ሐሙስ', 'ዓርበ', 'ቀዳሚ'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['ጽባሕ', 'ምሴት'],
+
+    'month' => ':count ወርሕ', // less reliable
+    'm' => ':count ወርሕ', // less reliable
+    'a_month' => ':count ወርሕ', // less reliable
+
+    'week' => ':count ሰብዑ', // less reliable
+    'w' => ':count ሰብዑ', // less reliable
+    'a_week' => ':count ሰብዑ', // less reliable
+
+    'hour' => ':count አንትሙ', // less reliable
+    'h' => ':count አንትሙ', // less reliable
+    'a_hour' => ':count አንትሙ', // less reliable
+
+    'minute' => ':count ንኡስ', // less reliable
+    'min' => ':count ንኡስ', // less reliable
+    'a_minute' => ':count ንኡስ', // less reliable
+
+    'year' => ':count ዓመት',
+    'y' => ':count ዓመት',
+    'a_year' => ':count ዓመት',
+
+    'day' => ':count ዕለት',
+    'd' => ':count ዕለት',
+    'a_day' => ':count ዕለት',
+
+    'second' => ':count ካልእ',
+    's' => ':count ካልእ',
+    'a_second' => ':count ካልእ',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gez_ET.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gez_ET.php
new file mode 100644
index 0000000..3933009
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gez_ET.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ge'ez Frontier Foundation    locales@geez.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', 'ኤፕረል', 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', 'ሴፕቴምበር', 'ኦክተውበር', 'ኖቬምበር', 'ዲሴምበር'],
+    'months_short' => ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕረ', 'ሜይ ', 'ጁን ', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', 'ኖቬም', 'ዲሴም'],
+    'weekdays' => ['እኁድ', 'ሰኑይ', 'ሠሉስ', 'ራብዕ', 'ሐሙስ', 'ዓርበ', 'ቀዳሚት'],
+    'weekdays_short' => ['እኁድ', 'ሰኑይ', 'ሠሉስ', 'ራብዕ', 'ሐሙስ', 'ዓርበ', 'ቀዳሚ'],
+    'weekdays_min' => ['እኁድ', 'ሰኑይ', 'ሠሉስ', 'ራብዕ', 'ሐሙስ', 'ዓርበ', 'ቀዳሚ'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['ጽባሕ', 'ምሴት'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gl.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gl.php
new file mode 100644
index 0000000..58c1db1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gl.php
@@ -0,0 +1,95 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - François B
+ * - Fidel Pita
+ * - JD Isaacks
+ * - Diego Vilariño
+ * - Sebastian Thierer
+ */
+return [
+    'year' => ':count ano|:count anos',
+    'a_year' => 'un ano|:count anos',
+    'y' => ':count a.',
+    'month' => ':count mes|:count meses',
+    'a_month' => 'un mes|:count meses',
+    'm' => ':count mes.',
+    'week' => ':count semana|:count semanas',
+    'a_week' => 'unha semana|:count semanas',
+    'w' => ':count sem.',
+    'day' => ':count día|:count días',
+    'a_day' => 'un día|:count días',
+    'd' => ':count d.',
+    'hour' => ':count hora|:count horas',
+    'a_hour' => 'unha hora|:count horas',
+    'h' => ':count h.',
+    'minute' => ':count minuto|:count minutos',
+    'a_minute' => 'un minuto|:count minutos',
+    'min' => ':count min.',
+    'second' => ':count segundo|:count segundos',
+    'a_second' => 'uns segundos|:count segundos',
+    's' => ':count seg.',
+    'ago' => 'hai :time',
+    'from_now' => function ($time) {
+        if (str_starts_with($time, 'un')) {
+            return "n$time";
+        }
+
+        return "en $time";
+    },
+    'diff_now' => 'agora',
+    'diff_today' => 'hoxe',
+    'diff_today_regexp' => 'hoxe(?:\\s+ás)?',
+    'diff_yesterday' => 'onte',
+    'diff_yesterday_regexp' => 'onte(?:\\s+á)?',
+    'diff_tomorrow' => 'mañá',
+    'diff_tomorrow_regexp' => 'mañá(?:\\s+ás)?',
+    'after' => ':time despois',
+    'before' => ':time antes',
+    'formats' => [
+        'LT' => 'H:mm',
+        'LTS' => 'H:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D [de] MMMM [de] YYYY',
+        'LLL' => 'D [de] MMMM [de] YYYY H:mm',
+        'LLLL' => 'dddd, D [de] MMMM [de] YYYY H:mm',
+    ],
+    'calendar' => [
+        'sameDay' => function (\Carbon\CarbonInterface $current) {
+            return '[hoxe '.($current->hour !== 1 ? 'ás' : 'á').'] LT';
+        },
+        'nextDay' => function (\Carbon\CarbonInterface $current) {
+            return '[mañá '.($current->hour !== 1 ? 'ás' : 'á').'] LT';
+        },
+        'nextWeek' => function (\Carbon\CarbonInterface $current) {
+            return 'dddd ['.($current->hour !== 1 ? 'ás' : 'á').'] LT';
+        },
+        'lastDay' => function (\Carbon\CarbonInterface $current) {
+            return '[onte '.($current->hour !== 1 ? 'á' : 'a').'] LT';
+        },
+        'lastWeek' => function (\Carbon\CarbonInterface $current) {
+            return '[o] dddd [pasado '.($current->hour !== 1 ? 'ás' : 'á').'] LT';
+        },
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':numberº',
+    'months' => ['xaneiro', 'febreiro', 'marzo', 'abril', 'maio', 'xuño', 'xullo', 'agosto', 'setembro', 'outubro', 'novembro', 'decembro'],
+    'months_short' => ['xan.', 'feb.', 'mar.', 'abr.', 'mai.', 'xuñ.', 'xul.', 'ago.', 'set.', 'out.', 'nov.', 'dec.'],
+    'weekdays' => ['domingo', 'luns', 'martes', 'mércores', 'xoves', 'venres', 'sábado'],
+    'weekdays_short' => ['dom.', 'lun.', 'mar.', 'mér.', 'xov.', 'ven.', 'sáb.'],
+    'weekdays_min' => ['do', 'lu', 'ma', 'mé', 'xo', 've', 'sá'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' e '],
+    'meridiem' => ['a.m.', 'p.m.'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gl_ES.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gl_ES.php
new file mode 100644
index 0000000..12a565f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gl_ES.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/gl.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gom.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gom.php
new file mode 100644
index 0000000..2a0584f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gom.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/gom_Latn.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gom_Latn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gom_Latn.php
new file mode 100644
index 0000000..5e54a36
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gom_Latn.php
@@ -0,0 +1,78 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return [
+    'year' => ':count voros|:count vorsam',
+    'y' => ':countv',
+    'month' => ':count mhoino|:count mhoine',
+    'm' => ':countmh',
+    'week' => ':count satolleacho|:count satolleache',
+    'w' => ':countsa|:countsa',
+    'day' => ':count dis',
+    'd' => ':countd',
+    'hour' => ':count hor|:count horam',
+    'h' => ':counth',
+    'minute' => ':count minute|:count mintam',
+    'min' => ':countm',
+    'second' => ':count second',
+    's' => ':counts',
+
+    'diff_today' => 'Aiz',
+    'diff_yesterday' => 'Kal',
+    'diff_tomorrow' => 'Faleam',
+    'formats' => [
+        'LT' => 'A h:mm [vazta]',
+        'LTS' => 'A h:mm:ss [vazta]',
+        'L' => 'DD-MM-YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY A h:mm [vazta]',
+        'LLLL' => 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]',
+        'llll' => 'ddd, D MMM YYYY, A h:mm [vazta]',
+    ],
+
+    'calendar' => [
+        'sameDay' => '[Aiz] LT',
+        'nextDay' => '[Faleam] LT',
+        'nextWeek' => '[Ieta to] dddd[,] LT',
+        'lastDay' => '[Kal] LT',
+        'lastWeek' => '[Fatlo] dddd[,] LT',
+        'sameElse' => 'L',
+    ],
+
+    'months' => ['Janer', 'Febrer', 'Mars', 'Abril', 'Mai', 'Jun', 'Julai', 'Agost', 'Setembr', 'Otubr', 'Novembr', 'Dezembr'],
+    'months_short' => ['Jan.', 'Feb.', 'Mars', 'Abr.', 'Mai', 'Jun', 'Jul.', 'Ago.', 'Set.', 'Otu.', 'Nov.', 'Dez.'],
+    'weekdays' => ['Aitar', 'Somar', 'Mongllar', 'Budvar', 'Brestar', 'Sukrar', 'Son\'var'],
+    'weekdays_short' => ['Ait.', 'Som.', 'Mon.', 'Bud.', 'Bre.', 'Suk.', 'Son.'],
+    'weekdays_min' => ['Ai', 'Sm', 'Mo', 'Bu', 'Br', 'Su', 'Sn'],
+
+    'ordinal' => function ($number, $period) {
+        return $number.($period === 'D' ? 'er' : '');
+    },
+
+    'meridiem' => function ($hour) {
+        if ($hour < 4) {
+            return 'rati';
+        }
+        if ($hour < 12) {
+            return 'sokalli';
+        }
+        if ($hour < 16) {
+            return 'donparam';
+        }
+        if ($hour < 20) {
+            return 'sanje';
+        }
+
+        return 'rati';
+    },
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' ani '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gsw.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gsw.php
new file mode 100644
index 0000000..c5c850e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gsw.php
@@ -0,0 +1,49 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Christopher Dell
+ * - Akira Matsuda
+ * - Enrique Vidal
+ * - Simone Carletti
+ * - Henning Kiel
+ * - Aaron Patterson
+ * - Florian Hanke
+ */
+return [
+    'year' => ':count Johr',
+    'month' => ':count Monet',
+    'week' => ':count Woche',
+    'day' => ':count Tag',
+    'hour' => ':count Schtund',
+    'minute' => ':count Minute',
+    'second' => ':count Sekunde',
+    'weekdays' => ['Sunntig', 'Mäntig', 'Ziischtig', 'Mittwuch', 'Dunschtig', 'Friitig', 'Samschtig'],
+    'weekdays_short' => ['Su', 'Mä', 'Zi', 'Mi', 'Du', 'Fr', 'Sa'],
+    'weekdays_min' => ['Su', 'Mä', 'Zi', 'Mi', 'Du', 'Fr', 'Sa'],
+    'months' => ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'Auguscht', 'September', 'Oktober', 'November', 'Dezember'],
+    'months_short' => ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],
+    'meridiem' => ['am Vormittag', 'am Namittag'],
+    'ordinal' => ':number.',
+    'list' => [', ', ' und '],
+    'diff_now' => 'now',
+    'diff_yesterday' => 'geschter',
+    'diff_tomorrow' => 'moorn',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'Do MMMM YYYY',
+        'LLL' => 'Do MMMM, HH:mm [Uhr]',
+        'LLLL' => 'dddd, Do MMMM YYYY, HH:mm [Uhr]',
+    ],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gsw_CH.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gsw_CH.php
new file mode 100644
index 0000000..0dba9c5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gsw_CH.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/gsw.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gsw_FR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gsw_FR.php
new file mode 100644
index 0000000..e0e7b23
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gsw_FR.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/gsw.php', [
+    'meridiem' => ['vorm.', 'nam.'],
+    'months' => ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'Auguscht', 'Septämber', 'Oktoober', 'Novämber', 'Dezämber'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LLL' => 'Do MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, Do MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gsw_LI.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gsw_LI.php
new file mode 100644
index 0000000..e0e7b23
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gsw_LI.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/gsw.php', [
+    'meridiem' => ['vorm.', 'nam.'],
+    'months' => ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'Auguscht', 'Septämber', 'Oktoober', 'Novämber', 'Dezämber'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LLL' => 'Do MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, Do MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gu.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gu.php
new file mode 100644
index 0000000..7c7872b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gu.php
@@ -0,0 +1,82 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - Kaushik Thanki
+ * - Josh Soref
+ */
+return [
+    'year' => 'એક વર્ષ|:count વર્ષ',
+    'y' => ':countવર્ષ|:countવર્ષો',
+    'month' => 'એક મહિનો|:count મહિનો',
+    'm' => ':countમહિનો|:countમહિના',
+    'week' => ':count અઠવાડિયું|:count અઠવાડિયા',
+    'w' => ':countઅઠ.|:countઅઠ.',
+    'day' => 'એક દિવસ|:count દિવસ',
+    'd' => ':countદિ.|:countદિ.',
+    'hour' => 'એક કલાક|:count કલાક',
+    'h' => ':countક.|:countક.',
+    'minute' => 'એક મિનિટ|:count મિનિટ',
+    'min' => ':countમિ.|:countમિ.',
+    'second' => 'અમુક પળો|:count સેકંડ',
+    's' => ':countસે.|:countસે.',
+    'ago' => ':time પેહલા',
+    'from_now' => ':time મા',
+    'after' => ':time પછી',
+    'before' => ':time પહેલા',
+    'diff_now' => 'હમણાં',
+    'diff_today' => 'આજ',
+    'diff_yesterday' => 'ગઇકાલે',
+    'diff_tomorrow' => 'કાલે',
+    'formats' => [
+        'LT' => 'A h:mm વાગ્યે',
+        'LTS' => 'A h:mm:ss વાગ્યે',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY, A h:mm વાગ્યે',
+        'LLLL' => 'dddd, D MMMM YYYY, A h:mm વાગ્યે',
+    ],
+    'calendar' => [
+        'sameDay' => '[આજ] LT',
+        'nextDay' => '[કાલે] LT',
+        'nextWeek' => 'dddd, LT',
+        'lastDay' => '[ગઇકાલે] LT',
+        'lastWeek' => '[પાછલા] dddd, LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => function ($hour) {
+        if ($hour < 4) {
+            return 'રાત';
+        }
+        if ($hour < 10) {
+            return 'સવાર';
+        }
+        if ($hour < 17) {
+            return 'બપોર';
+        }
+        if ($hour < 20) {
+            return 'સાંજ';
+        }
+
+        return 'રાત';
+    },
+    'months' => ['જાન્યુઆરી', 'ફેબ્રુઆરી', 'માર્ચ', 'એપ્રિલ', 'મે', 'જૂન', 'જુલાઈ', 'ઑગસ્ટ', 'સપ્ટેમ્બર', 'ઑક્ટ્બર', 'નવેમ્બર', 'ડિસેમ્બર'],
+    'months_short' => ['જાન્યુ.', 'ફેબ્રુ.', 'માર્ચ', 'એપ્રિ.', 'મે', 'જૂન', 'જુલા.', 'ઑગ.', 'સપ્ટે.', 'ઑક્ટ્.', 'નવે.', 'ડિસે.'],
+    'weekdays' => ['રવિવાર', 'સોમવાર', 'મંગળવાર', 'બુધ્વાર', 'ગુરુવાર', 'શુક્રવાર', 'શનિવાર'],
+    'weekdays_short' => ['રવિ', 'સોમ', 'મંગળ', 'બુધ્', 'ગુરુ', 'શુક્ર', 'શનિ'],
+    'weekdays_min' => ['ર', 'સો', 'મં', 'બુ', 'ગુ', 'શુ', 'શ'],
+    'list' => [', ', ' અને '],
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+    'weekend' => [0, 0],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gu_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gu_IN.php
new file mode 100644
index 0000000..c578440
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gu_IN.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/gu.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/guz.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/guz.php
new file mode 100644
index 0000000..aa9769c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/guz.php
@@ -0,0 +1,46 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['Ma', 'Mo'],
+    'weekdays' => ['Chumapiri', 'Chumatato', 'Chumaine', 'Chumatano', 'Aramisi', 'Ichuma', 'Esabato'],
+    'weekdays_short' => ['Cpr', 'Ctt', 'Cmn', 'Cmt', 'Ars', 'Icm', 'Est'],
+    'weekdays_min' => ['Cpr', 'Ctt', 'Cmn', 'Cmt', 'Ars', 'Icm', 'Est'],
+    'months' => ['Chanuari', 'Feburari', 'Machi', 'Apiriri', 'Mei', 'Juni', 'Chulai', 'Agosti', 'Septemba', 'Okitoba', 'Nobemba', 'Disemba'],
+    'months_short' => ['Can', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Cul', 'Agt', 'Sep', 'Okt', 'Nob', 'Dis'],
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+
+    'month' => ':count omotunyi', // less reliable
+    'm' => ':count omotunyi', // less reliable
+    'a_month' => ':count omotunyi', // less reliable
+
+    'week' => ':count isano naibere', // less reliable
+    'w' => ':count isano naibere', // less reliable
+    'a_week' => ':count isano naibere', // less reliable
+
+    'second' => ':count ibere', // less reliable
+    's' => ':count ibere', // less reliable
+    'a_second' => ':count ibere', // less reliable
+
+    'year' => ':count omwaka',
+    'y' => ':count omwaka',
+    'a_year' => ':count omwaka',
+
+    'day' => ':count rituko',
+    'd' => ':count rituko',
+    'a_day' => ':count rituko',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gv.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gv.php
new file mode 100644
index 0000000..7c52b94
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gv.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/gv_GB.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gv_GB.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gv_GB.php
new file mode 100644
index 0000000..6b1168f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/gv_GB.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Alastair McKinstry    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YY',
+    ],
+    'months' => ['Jerrey-geuree', 'Toshiaght-arree', 'Mayrnt', 'Averil', 'Boaldyn', 'Mean-souree', 'Jerrey-souree', 'Luanistyn', 'Mean-fouyir', 'Jerrey-fouyir', 'Mee Houney', 'Mee ny Nollick'],
+    'months_short' => ['J-guer', 'T-arree', 'Mayrnt', 'Avrril', 'Boaldyn', 'M-souree', 'J-souree', 'Luanistyn', 'M-fouyir', 'J-fouyir', 'M.Houney', 'M.Nollick'],
+    'weekdays' => ['Jedoonee', 'Jelhein', 'Jemayrt', 'Jercean', 'Jerdein', 'Jeheiney', 'Jesarn'],
+    'weekdays_short' => ['Jed', 'Jel', 'Jem', 'Jerc', 'Jerd', 'Jeh', 'Jes'],
+    'weekdays_min' => ['Jed', 'Jel', 'Jem', 'Jerc', 'Jerd', 'Jeh', 'Jes'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+
+    'year' => ':count blein',
+    'y' => ':count blein',
+    'a_year' => ':count blein',
+
+    'month' => ':count mee',
+    'm' => ':count mee',
+    'a_month' => ':count mee',
+
+    'week' => ':count shiaghtin',
+    'w' => ':count shiaghtin',
+    'a_week' => ':count shiaghtin',
+
+    'day' => ':count laa',
+    'd' => ':count laa',
+    'a_day' => ':count laa',
+
+    'hour' => ':count oor',
+    'h' => ':count oor',
+    'a_hour' => ':count oor',
+
+    'minute' => ':count feer veg',
+    'min' => ':count feer veg',
+    'a_minute' => ':count feer veg',
+
+    'second' => ':count derrey',
+    's' => ':count derrey',
+    'a_second' => ':count derrey',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ha.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ha.php
new file mode 100644
index 0000000..cd8e34d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ha.php
@@ -0,0 +1,60 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - pablo@mandriva.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM, YYYY',
+        'LLL' => 'D MMMM, YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM, YYYY HH:mm',
+    ],
+    'months' => ['Janairu', 'Faburairu', 'Maris', 'Afirilu', 'Mayu', 'Yuni', 'Yuli', 'Agusta', 'Satumba', 'Oktoba', 'Nuwamba', 'Disamba'],
+    'months_short' => ['Jan', 'Fab', 'Mar', 'Afi', 'May', 'Yun', 'Yul', 'Agu', 'Sat', 'Okt', 'Nuw', 'Dis'],
+    'weekdays' => ['Lahadi', 'Litini', 'Talata', 'Laraba', 'Alhamis', 'Jumaʼa', 'Asabar'],
+    'weekdays_short' => ['Lah', 'Lit', 'Tal', 'Lar', 'Alh', 'Jum', 'Asa'],
+    'weekdays_min' => ['Lh', 'Li', 'Ta', 'Lr', 'Al', 'Ju', 'As'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+
+    'year' => 'shekara :count',
+    'y' => 'shekara :count',
+    'a_year' => 'shekara :count',
+
+    'month' => ':count wátàa',
+    'm' => ':count wátàa',
+    'a_month' => ':count wátàa',
+
+    'week' => ':count mako',
+    'w' => ':count mako',
+    'a_week' => ':count mako',
+
+    'day' => ':count rana',
+    'd' => ':count rana',
+    'a_day' => ':count rana',
+
+    'hour' => ':count áwàa',
+    'h' => ':count áwàa',
+    'a_hour' => ':count áwàa',
+
+    'minute' => 'minti :count',
+    'min' => 'minti :count',
+    'a_minute' => 'minti :count',
+
+    'second' => ':count ná bíyú',
+    's' => ':count ná bíyú',
+    'a_second' => ':count ná bíyú',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ha_GH.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ha_GH.php
new file mode 100644
index 0000000..bce5e41
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ha_GH.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ha.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ha_NE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ha_NE.php
new file mode 100644
index 0000000..bce5e41
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ha_NE.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ha.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ha_NG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ha_NG.php
new file mode 100644
index 0000000..bce5e41
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ha_NG.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ha.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hak.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hak.php
new file mode 100644
index 0000000..6c3260e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hak.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/hak_TW.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hak_TW.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hak_TW.php
new file mode 100644
index 0000000..fe23986
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hak_TW.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'YYYY年MM月DD日',
+    ],
+    'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
+    'months_short' => [' 1月', ' 2月', ' 3月', ' 4月', ' 5月', ' 6月', ' 7月', ' 8月', ' 9月', '10月', '11月', '12月'],
+    'weekdays' => ['禮拜日', '禮拜一', '禮拜二', '禮拜三', '禮拜四', '禮拜五', '禮拜六'],
+    'weekdays_short' => ['日', '一', '二', '三', '四', '五', '六'],
+    'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['上晝', '下晝'],
+
+    'year' => ':count ngien11',
+    'y' => ':count ngien11',
+    'a_year' => ':count ngien11',
+
+    'month' => ':count ngie̍t',
+    'm' => ':count ngie̍t',
+    'a_month' => ':count ngie̍t',
+
+    'week' => ':count lî-pai',
+    'w' => ':count lî-pai',
+    'a_week' => ':count lî-pai',
+
+    'day' => ':count ngit',
+    'd' => ':count ngit',
+    'a_day' => ':count ngit',
+
+    'hour' => ':count sṳ̀',
+    'h' => ':count sṳ̀',
+    'a_hour' => ':count sṳ̀',
+
+    'minute' => ':count fûn',
+    'min' => ':count fûn',
+    'a_minute' => ':count fûn',
+
+    'second' => ':count miéu',
+    's' => ':count miéu',
+    'a_second' => ':count miéu',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/haw.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/haw.php
new file mode 100644
index 0000000..51715d8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/haw.php
@@ -0,0 +1,53 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'months' => ['Ianuali', 'Pepeluali', 'Malaki', 'ʻApelila', 'Mei', 'Iune', 'Iulai', 'ʻAukake', 'Kepakemapa', 'ʻOkakopa', 'Nowemapa', 'Kekemapa'],
+    'months_short' => ['Ian.', 'Pep.', 'Mal.', 'ʻAp.', 'Mei', 'Iun.', 'Iul.', 'ʻAu.', 'Kep.', 'ʻOk.', 'Now.', 'Kek.'],
+    'weekdays' => ['Lāpule', 'Poʻakahi', 'Poʻalua', 'Poʻakolu', 'Poʻahā', 'Poʻalima', 'Poʻaono'],
+    'weekdays_short' => ['LP', 'P1', 'P2', 'P3', 'P4', 'P5', 'P6'],
+    'weekdays_min' => ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY h:mm a',
+        'LLLL' => 'dddd, D MMMM YYYY h:mm a',
+    ],
+
+    'year' => ':count makahiki',
+    'y' => ':count makahiki',
+    'a_year' => ':count makahiki',
+
+    'month' => ':count mahina',
+    'm' => ':count mahina',
+    'a_month' => ':count mahina',
+
+    'week' => ':count pule',
+    'w' => ':count pule',
+    'a_week' => ':count pule',
+
+    'day' => ':count lā',
+    'd' => ':count lā',
+    'a_day' => ':count lā',
+
+    'hour' => ':count hola',
+    'h' => ':count hola',
+    'a_hour' => ':count hola',
+
+    'minute' => ':count minuke',
+    'min' => ':count minuke',
+    'a_minute' => ':count minuke',
+
+    'second' => ':count lua',
+    's' => ':count lua',
+    'a_second' => ':count lua',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/he.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/he.php
new file mode 100644
index 0000000..c3fb3e9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/he.php
@@ -0,0 +1,86 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Daniel Cohen Gindi
+ * - JD Isaacks
+ * - Itai Nathaniel
+ * - GabMic
+ * - Yaakov Dahan (yakidahan)
+ */
+return [
+    'year' => 'שנה|{2}שנתיים|:count שנים',
+    'y' => 'שנה|:count שנ׳',
+    'month' => 'חודש|{2}חודשיים|:count חודשים',
+    'm' => 'חודש|:count חו׳',
+    'week' => 'שבוע|{2}שבועיים|:count שבועות',
+    'w' => 'שבוע|:count שב׳',
+    'day' => 'יום|{2}יומיים|:count ימים',
+    'd' => 'יום|:count ימ׳',
+    'hour' => 'שעה|{2}שעתיים|:count שעות',
+    'h' => 'שעה|:count שע׳',
+    'minute' => 'דקה|{2}שתי דקות|:count דקות',
+    'min' => 'דקה|:count דק׳',
+    'second' => 'שנייה|:count שניות',
+    'a_second' => 'כמה שניות|:count שניות',
+    's' => 'שניה|:count שנ׳',
+    'ago' => 'לפני :time',
+    'from_now' => 'בעוד :time מעכשיו',
+    'after' => 'אחרי :time',
+    'before' => 'לפני :time',
+    'diff_now' => 'עכשיו',
+    'diff_today' => 'היום',
+    'diff_today_regexp' => 'היום(?:\\s+ב־)?',
+    'diff_yesterday' => 'אתמול',
+    'diff_yesterday_regexp' => 'אתמול(?:\\s+ב־)?',
+    'diff_tomorrow' => 'מחר',
+    'diff_tomorrow_regexp' => 'מחר(?:\\s+ב־)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D [ב]MMMM YYYY',
+        'LLL' => 'D [ב]MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D [ב]MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[היום ב־]LT',
+        'nextDay' => '[מחר ב־]LT',
+        'nextWeek' => 'dddd [בשעה] LT',
+        'lastDay' => '[אתמול ב־]LT',
+        'lastWeek' => '[ביום] dddd [האחרון בשעה] LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => function ($hour, $minute, $isLower) {
+        if ($hour < 5) {
+            return 'לפנות בוקר';
+        }
+        if ($hour < 10) {
+            return 'בבוקר';
+        }
+        if ($hour < 12) {
+            return $isLower ? 'לפנה"צ' : 'לפני הצהריים';
+        }
+        if ($hour < 18) {
+            return $isLower ? 'אחה"צ' : 'אחרי הצהריים';
+        }
+
+        return 'בערב';
+    },
+    'months' => ['ינואר', 'פברואר', 'מרץ', 'אפריל', 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', 'נובמבר', 'דצמבר'],
+    'months_short' => ['ינו׳', 'פבר׳', 'מרץ', 'אפר׳', 'מאי', 'יוני', 'יולי', 'אוג׳', 'ספט׳', 'אוק׳', 'נוב׳', 'דצמ׳'],
+    'weekdays' => ['ראשון', 'שני', 'שלישי', 'רביעי', 'חמישי', 'שישי', 'שבת'],
+    'weekdays_short' => ['א׳', 'ב׳', 'ג׳', 'ד׳', 'ה׳', 'ו׳', 'ש׳'],
+    'weekdays_min' => ['א', 'ב', 'ג', 'ד', 'ה', 'ו', 'ש'],
+    'list' => [', ', ' ו -'],
+    'weekend' => [5, 6],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/he_IL.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/he_IL.php
new file mode 100644
index 0000000..57c4fec
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/he_IL.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/he.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hi.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hi.php
new file mode 100644
index 0000000..70c57a2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hi.php
@@ -0,0 +1,82 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - abhimanyu003
+ * - Josh Soref
+ * - JD Isaacks
+ */
+return [
+    'year' => 'एक वर्ष|:count वर्ष',
+    'y' => '1 वर्ष|:count वर्षों',
+    'month' => 'एक महीने|:count महीने',
+    'm' => '1 माह|:count महीने',
+    'week' => '1 सप्ताह|:count सप्ताह',
+    'w' => '1 सप्ताह|:count सप्ताह',
+    'day' => 'एक दिन|:count दिन',
+    'd' => '1 दिन|:count दिनों',
+    'hour' => 'एक घंटा|:count घंटे',
+    'h' => '1 घंटा|:count घंटे',
+    'minute' => 'एक मिनट|:count मिनट',
+    'min' => '1 मिनट|:count मिनटों',
+    'second' => 'कुछ ही क्षण|:count सेकंड',
+    's' => '1 सेकंड|:count सेकंड',
+    'ago' => ':time पहले',
+    'from_now' => ':time में',
+    'after' => ':time के बाद',
+    'before' => ':time के पहले',
+    'diff_now' => 'अब',
+    'diff_today' => 'आज',
+    'diff_yesterday' => 'कल',
+    'diff_tomorrow' => 'कल',
+    'formats' => [
+        'LT' => 'A h:mm बजे',
+        'LTS' => 'A h:mm:ss बजे',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY, A h:mm बजे',
+        'LLLL' => 'dddd, D MMMM YYYY, A h:mm बजे',
+    ],
+    'calendar' => [
+        'sameDay' => '[आज] LT',
+        'nextDay' => '[कल] LT',
+        'nextWeek' => 'dddd, LT',
+        'lastDay' => '[कल] LT',
+        'lastWeek' => '[पिछले] dddd, LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => function ($hour) {
+        if ($hour < 4) {
+            return 'रात';
+        }
+        if ($hour < 10) {
+            return 'सुबह';
+        }
+        if ($hour < 17) {
+            return 'दोपहर';
+        }
+        if ($hour < 20) {
+            return 'शाम';
+        }
+
+        return 'रात';
+    },
+    'months' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'],
+    'months_short' => ['जन.', 'फ़र.', 'मार्च', 'अप्रै.', 'मई', 'जून', 'जुल.', 'अग.', 'सित.', 'अक्टू.', 'नव.', 'दिस.'],
+    'weekdays' => ['रविवार', 'सोमवार', 'मंगलवार', 'बुधवार', 'गुरूवार', 'शुक्रवार', 'शनिवार'],
+    'weekdays_short' => ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरू', 'शुक्र', 'शनि'],
+    'weekdays_min' => ['र', 'सो', 'मं', 'बु', 'गु', 'शु', 'श'],
+    'list' => [', ', ' और '],
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+    'weekend' => [0, 0],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hi_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hi_IN.php
new file mode 100644
index 0000000..ac30299
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hi_IN.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/hi.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hif.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hif.php
new file mode 100644
index 0000000..65791dd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hif.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/hif_FJ.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hif_FJ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hif_FJ.php
new file mode 100644
index 0000000..30ad5e7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hif_FJ.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Samsung Electronics Co., Ltd.    akhilesh.k@samsung.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'dddd DD MMM YYYY',
+    ],
+    'months' => ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
+    'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
+    'weekdays' => ['Ravivar', 'Somvar', 'Mangalvar', 'Budhvar', 'Guruvar', 'Shukravar', 'Shanivar'],
+    'weekdays_short' => ['Ravi', 'Som', 'Mangal', 'Budh', 'Guru', 'Shukra', 'Shani'],
+    'weekdays_min' => ['Ravi', 'Som', 'Mangal', 'Budh', 'Guru', 'Shukra', 'Shani'],
+    'meridiem' => ['Purvahan', 'Aparaahna'],
+
+    'hour' => ':count minit', // less reliable
+    'h' => ':count minit', // less reliable
+    'a_hour' => ':count minit', // less reliable
+
+    'year' => ':count saal',
+    'y' => ':count saal',
+    'a_year' => ':count saal',
+
+    'month' => ':count Mahina',
+    'm' => ':count Mahina',
+    'a_month' => ':count Mahina',
+
+    'week' => ':count Hafta',
+    'w' => ':count Hafta',
+    'a_week' => ':count Hafta',
+
+    'day' => ':count Din',
+    'd' => ':count Din',
+    'a_day' => ':count Din',
+
+    'minute' => ':count Minit',
+    'min' => ':count Minit',
+    'a_minute' => ':count Minit',
+
+    'second' => ':count Second',
+    's' => ':count Second',
+    'a_second' => ':count Second',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hne.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hne.php
new file mode 100644
index 0000000..4bcb05c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hne.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/hne_IN.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hne_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hne_IN.php
new file mode 100644
index 0000000..a5ca758
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hne_IN.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Red Hat, Pune    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'D/M/YY',
+    ],
+    'months' => ['जनवरी', 'फरवरी', 'मार्च', 'अपरेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितमबर', 'अकटूबर', 'नवमबर', 'दिसमबर'],
+    'months_short' => ['जन', 'फर', 'मार्च', 'अप', 'मई', 'जून', 'जुला', 'अग', 'सित', 'अकटू', 'नव', 'दिस'],
+    'weekdays' => ['इतवार', 'सोमवार', 'मंगलवार', 'बुधवार', 'बिरसपत', 'सुकरवार', 'सनिवार'],
+    'weekdays_short' => ['इत', 'सोम', 'मंग', 'बुध', 'बिर', 'सुक', 'सनि'],
+    'weekdays_min' => ['इत', 'सोम', 'मंग', 'बुध', 'बिर', 'सुक', 'सनि'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['बिहिनियाँ', 'मंझनियाँ'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hr.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hr.php
new file mode 100644
index 0000000..acb7e92
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hr.php
@@ -0,0 +1,108 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - François B
+ * - Tim Fish
+ * - shaishavgandhi05
+ * - Serhan Apaydın
+ * - JD Isaacks
+ * - tomhorvat
+ * - Josh Soref
+ * - François B
+ * - shaishavgandhi05
+ * - Serhan Apaydın
+ * - JD Isaacks
+ * - tomhorvat
+ * - Stjepan Majdak
+ * - Vanja Retkovac (vr00)
+ */
+return [
+    'year' => ':count godinu|:count godine|:count godina',
+    'y' => ':count god.|:count god.|:count god.',
+    'month' => ':count mjesec|:count mjeseca|:count mjeseci',
+    'm' => ':count mj.|:count mj.|:count mj.',
+    'week' => ':count tjedan|:count tjedna|:count tjedana',
+    'w' => ':count tj.|:count tj.|:count tj.',
+    'day' => ':count dan|:count dana|:count dana',
+    'd' => ':count d.|:count d.|:count d.',
+    'hour' => ':count sat|:count sata|:count sati',
+    'h' => ':count sat|:count sata|:count sati',
+    'minute' => ':count minutu|:count minute|:count minuta',
+    'min' => ':count min.|:count min.|:count min.',
+    'second' => ':count sekundu|:count sekunde|:count sekundi',
+    'a_second' => 'nekoliko sekundi|:count sekunde|:count sekundi',
+    's' => ':count sek.|:count sek.|:count sek.',
+    'ago' => 'prije :time',
+    'from_now' => 'za :time',
+    'after' => ':time poslije',
+    'before' => ':time prije',
+    'diff_now' => 'sad',
+    'diff_today' => 'danas',
+    'diff_today_regexp' => 'danas(?:\\s+u)?',
+    'diff_yesterday' => 'jučer',
+    'diff_yesterday_regexp' => 'jučer(?:\\s+u)?',
+    'diff_tomorrow' => 'sutra',
+    'diff_tomorrow_regexp' => 'sutra(?:\\s+u)?',
+    'diff_before_yesterday' => 'prekjučer',
+    'diff_after_tomorrow' => 'prekosutra',
+    'formats' => [
+        'LT' => 'H:mm',
+        'LTS' => 'H:mm:ss',
+        'L' => 'D. M. YYYY.',
+        'LL' => 'D. MMMM YYYY.',
+        'LLL' => 'D. MMMM YYYY. H:mm',
+        'LLLL' => 'dddd, D. MMMM YYYY. H:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[danas u] LT',
+        'nextDay' => '[sutra u] LT',
+        'nextWeek' => function (\Carbon\CarbonInterface $date) {
+            switch ($date->dayOfWeek) {
+                case 0:
+                    return '[u] [nedjelju] [u] LT';
+                case 3:
+                    return '[u] [srijedu] [u] LT';
+                case 6:
+                    return '[u] [subotu] [u] LT';
+                default:
+                    return '[u] dddd [u] LT';
+            }
+        },
+        'lastDay' => '[jučer u] LT',
+        'lastWeek' => function (\Carbon\CarbonInterface $date) {
+            switch ($date->dayOfWeek) {
+                case 0:
+                case 3:
+                    return '[prošlu] dddd [u] LT';
+                case 6:
+                    return '[prošle] [subote] [u] LT';
+                default:
+                    return '[prošli] dddd [u] LT';
+            }
+        },
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':number.',
+    'months' => ['siječnja', 'veljače', 'ožujka', 'travnja', 'svibnja', 'lipnja', 'srpnja', 'kolovoza', 'rujna', 'listopada', 'studenoga', 'prosinca'],
+    'months_standalone' => ['siječanj', 'veljača', 'ožujak', 'travanj', 'svibanj', 'lipanj', 'srpanj', 'kolovoz', 'rujan', 'listopad', 'studeni', 'prosinac'],
+    'months_short' => ['sij.', 'velj.', 'ožu.', 'tra.', 'svi.', 'lip.', 'srp.', 'kol.', 'ruj.', 'lis.', 'stu.', 'pro.'],
+    'months_regexp' => '/(D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|L{2,4}|l{2,4})/',
+    'weekdays' => ['nedjelju', 'ponedjeljak', 'utorak', 'srijedu', 'četvrtak', 'petak', 'subotu'],
+    'weekdays_standalone' => ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', 'petak', 'subota'],
+    'weekdays_short' => ['ned.', 'pon.', 'uto.', 'sri.', 'čet.', 'pet.', 'sub.'],
+    'weekdays_min' => ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' i '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hr_BA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hr_BA.php
new file mode 100644
index 0000000..7763a45
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hr_BA.php
@@ -0,0 +1,32 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - DarkoDevelop
+ */
+return array_replace_recursive(require __DIR__.'/hr.php', [
+    'weekdays' => ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', 'petak', 'subota'],
+    'weekdays_short' => ['ned', 'pon', 'uto', 'sri', 'čet', 'pet', 'sub'],
+    'weekdays_min' => ['ned', 'pon', 'uto', 'sri', 'čet', 'pet', 'sub'],
+    'months' => ['siječnja', 'veljače', 'ožujka', 'travnja', 'svibnja', 'lipnja', 'srpnja', 'kolovoza', 'rujna', 'listopada', 'studenoga', 'prosinca'],
+    'months_short' => ['sij', 'velj', 'ožu', 'tra', 'svi', 'lip', 'srp', 'kol', 'ruj', 'lis', 'stu', 'pro'],
+    'months_standalone' => ['siječanj', 'veljača', 'ožujak', 'travanj', 'svibanj', 'lipanj', 'srpanj', 'kolovoz', 'rujan', 'listopad', 'studeni', 'prosinac'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D. M. yy.',
+        'LL' => 'D. MMM YYYY.',
+        'LLL' => 'D. MMMM YYYY. HH:mm',
+        'LLLL' => 'dddd, D. MMMM YYYY. HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hr_HR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hr_HR.php
new file mode 100644
index 0000000..2ae141d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hr_HR.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/hr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hsb.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hsb.php
new file mode 100644
index 0000000..3537b8b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hsb.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/hsb_DE.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hsb_DE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hsb_DE.php
new file mode 100644
index 0000000..6ba2271
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hsb_DE.php
@@ -0,0 +1,60 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Information from Michael Wolf Andrzej Krzysztofowicz ankry@mif.pg.gda.pl
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'DD. MMMM YYYY',
+        'LLL' => 'DD. MMMM, HH:mm [hodź.]',
+        'LLLL' => 'dddd, DD. MMMM YYYY, HH:mm [hodź.]',
+    ],
+    'months' => ['januara', 'februara', 'měrca', 'apryla', 'meje', 'junija', 'julija', 'awgusta', 'septembra', 'oktobra', 'nowembra', 'decembra'],
+    'months_short' => ['Jan', 'Feb', 'Měr', 'Apr', 'Mej', 'Jun', 'Jul', 'Awg', 'Sep', 'Okt', 'Now', 'Dec'],
+    'weekdays' => ['Njedźela', 'Póndźela', 'Wutora', 'Srjeda', 'Štvórtk', 'Pjatk', 'Sobota'],
+    'weekdays_short' => ['Nj', 'Pó', 'Wu', 'Sr', 'Št', 'Pj', 'So'],
+    'weekdays_min' => ['Nj', 'Pó', 'Wu', 'Sr', 'Št', 'Pj', 'So'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+
+    'year' => ':count lěto',
+    'y' => ':count lěto',
+    'a_year' => ':count lěto',
+
+    'month' => ':count měsac',
+    'm' => ':count měsac',
+    'a_month' => ':count měsac',
+
+    'week' => ':count tydźeń',
+    'w' => ':count tydźeń',
+    'a_week' => ':count tydźeń',
+
+    'day' => ':count dźeń',
+    'd' => ':count dźeń',
+    'a_day' => ':count dźeń',
+
+    'hour' => ':count hodźina',
+    'h' => ':count hodźina',
+    'a_hour' => ':count hodźina',
+
+    'minute' => ':count chwila',
+    'min' => ':count chwila',
+    'a_minute' => ':count chwila',
+
+    'second' => ':count druhi',
+    's' => ':count druhi',
+    'a_second' => ':count druhi',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ht.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ht.php
new file mode 100644
index 0000000..ebd12ad
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ht.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/ht_HT.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ht_HT.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ht_HT.php
new file mode 100644
index 0000000..139b813
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ht_HT.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Sugar Labs // OLPC sugarlabs.org libc-alpha@sourceware.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['janvye', 'fevriye', 'mas', 'avril', 'me', 'jen', 'jiyè', 'out', 'septanm', 'oktòb', 'novanm', 'desanm'],
+    'months_short' => ['jan', 'fev', 'mas', 'avr', 'me', 'jen', 'jiy', 'out', 'sep', 'okt', 'nov', 'des'],
+    'weekdays' => ['dimanch', 'lendi', 'madi', 'mèkredi', 'jedi', 'vandredi', 'samdi'],
+    'weekdays_short' => ['dim', 'len', 'mad', 'mèk', 'jed', 'van', 'sam'],
+    'weekdays_min' => ['dim', 'len', 'mad', 'mèk', 'jed', 'van', 'sam'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+
+    'year' => ':count lane',
+    'y' => ':count lane',
+    'a_year' => ':count lane',
+
+    'month' => 'mwa :count',
+    'm' => 'mwa :count',
+    'a_month' => 'mwa :count',
+
+    'week' => 'semèn :count',
+    'w' => 'semèn :count',
+    'a_week' => 'semèn :count',
+
+    'day' => ':count jou',
+    'd' => ':count jou',
+    'a_day' => ':count jou',
+
+    'hour' => ':count lè',
+    'h' => ':count lè',
+    'a_hour' => ':count lè',
+
+    'minute' => ':count minit',
+    'min' => ':count minit',
+    'a_minute' => ':count minit',
+
+    'second' => ':count segonn',
+    's' => ':count segonn',
+    'a_second' => ':count segonn',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hu.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hu.php
new file mode 100644
index 0000000..673f9dc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hu.php
@@ -0,0 +1,115 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Adam Brunner
+ * - Brett Johnson
+ * - balping
+ */
+$huWeekEndings = ['vasárnap', 'hétfőn', 'kedden', 'szerdán', 'csütörtökön', 'pénteken', 'szombaton'];
+
+return [
+    'year' => ':count év',
+    'y' => ':count év',
+    'month' => ':count hónap',
+    'm' => ':count hónap',
+    'week' => ':count hét',
+    'w' => ':count hét',
+    'day' => ':count nap',
+    'd' => ':count nap',
+    'hour' => ':count óra',
+    'h' => ':count óra',
+    'minute' => ':count perc',
+    'min' => ':count perc',
+    'second' => ':count másodperc',
+    's' => ':count másodperc',
+    'ago' => ':time',
+    'from_now' => ':time múlva',
+    'after' => ':time később',
+    'before' => ':time korábban',
+    'year_ago' => ':count éve',
+    'y_ago' => ':count éve',
+    'month_ago' => ':count hónapja',
+    'm_ago' => ':count hónapja',
+    'week_ago' => ':count hete',
+    'w_ago' => ':count hete',
+    'day_ago' => ':count napja',
+    'd_ago' => ':count napja',
+    'hour_ago' => ':count órája',
+    'h_ago' => ':count órája',
+    'minute_ago' => ':count perce',
+    'min_ago' => ':count perce',
+    'second_ago' => ':count másodperce',
+    's_ago' => ':count másodperce',
+    'year_after' => ':count évvel',
+    'y_after' => ':count évvel',
+    'month_after' => ':count hónappal',
+    'm_after' => ':count hónappal',
+    'week_after' => ':count héttel',
+    'w_after' => ':count héttel',
+    'day_after' => ':count nappal',
+    'd_after' => ':count nappal',
+    'hour_after' => ':count órával',
+    'h_after' => ':count órával',
+    'minute_after' => ':count perccel',
+    'min_after' => ':count perccel',
+    'second_after' => ':count másodperccel',
+    's_after' => ':count másodperccel',
+    'year_before' => ':count évvel',
+    'y_before' => ':count évvel',
+    'month_before' => ':count hónappal',
+    'm_before' => ':count hónappal',
+    'week_before' => ':count héttel',
+    'w_before' => ':count héttel',
+    'day_before' => ':count nappal',
+    'd_before' => ':count nappal',
+    'hour_before' => ':count órával',
+    'h_before' => ':count órával',
+    'minute_before' => ':count perccel',
+    'min_before' => ':count perccel',
+    'second_before' => ':count másodperccel',
+    's_before' => ':count másodperccel',
+    'months' => ['január', 'február', 'március', 'április', 'május', 'június', 'július', 'augusztus', 'szeptember', 'október', 'november', 'december'],
+    'months_short' => ['jan.', 'feb.', 'márc.', 'ápr.', 'máj.', 'jún.', 'júl.', 'aug.', 'szept.', 'okt.', 'nov.', 'dec.'],
+    'weekdays' => ['vasárnap', 'hétfő', 'kedd', 'szerda', 'csütörtök', 'péntek', 'szombat'],
+    'weekdays_short' => ['vas', 'hét', 'kedd', 'sze', 'csüt', 'pén', 'szo'],
+    'weekdays_min' => ['v', 'h', 'k', 'sze', 'cs', 'p', 'sz'],
+    'ordinal' => ':number.',
+    'diff_now' => 'most',
+    'diff_today' => 'ma',
+    'diff_yesterday' => 'tegnap',
+    'diff_tomorrow' => 'holnap',
+    'formats' => [
+        'LT' => 'H:mm',
+        'LTS' => 'H:mm:ss',
+        'L' => 'YYYY.MM.DD.',
+        'LL' => 'YYYY. MMMM D.',
+        'LLL' => 'YYYY. MMMM D. H:mm',
+        'LLLL' => 'YYYY. MMMM D., dddd H:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[ma] LT[-kor]',
+        'nextDay' => '[holnap] LT[-kor]',
+        'nextWeek' => function (\Carbon\CarbonInterface $date) use ($huWeekEndings) {
+            return '['.$huWeekEndings[$date->dayOfWeek].'] LT[-kor]';
+        },
+        'lastDay' => '[tegnap] LT[-kor]',
+        'lastWeek' => function (\Carbon\CarbonInterface $date) use ($huWeekEndings) {
+            return '[múlt '.$huWeekEndings[$date->dayOfWeek].'] LT[-kor]';
+        },
+        'sameElse' => 'L',
+    ],
+    'meridiem' => ['DE', 'DU'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' és '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hu_HU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hu_HU.php
new file mode 100644
index 0000000..b33a631
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hu_HU.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/hu.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hy.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hy.php
new file mode 100644
index 0000000..8b12994
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hy.php
@@ -0,0 +1,95 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - mhamlet
+ */
+return [
+    'year' => ':count տարի',
+    'a_year' => 'տարի|:count տարի',
+    'y' => ':countտ',
+    'month' => ':count ամիս',
+    'a_month' => 'ամիս|:count ամիս',
+    'm' => ':countամ',
+    'week' => ':count շաբաթ',
+    'a_week' => 'շաբաթ|:count շաբաթ',
+    'w' => ':countշ',
+    'day' => ':count օր',
+    'a_day' => 'օր|:count օր',
+    'd' => ':countօր',
+    'hour' => ':count ժամ',
+    'a_hour' => 'ժամ|:count ժամ',
+    'h' => ':countժ',
+    'minute' => ':count րոպե',
+    'a_minute' => 'րոպե|:count րոպե',
+    'min' => ':countր',
+    'second' => ':count վայրկյան',
+    'a_second' => 'մի քանի վայրկյան|:count վայրկյան',
+    's' => ':countվրկ',
+    'ago' => ':time առաջ',
+    'from_now' => ':timeից',
+    'after' => ':time հետո',
+    'before' => ':time առաջ',
+    'diff_now' => 'հիմա',
+    'diff_today' => 'այսօր',
+    'diff_yesterday' => 'երեկ',
+    'diff_tomorrow' => 'վաղը',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D MMMM YYYY թ.',
+        'LLL' => 'D MMMM YYYY թ., HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY թ., HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[այսօր] LT',
+        'nextDay' => '[վաղը] LT',
+        'nextWeek' => 'dddd [օրը ժամը] LT',
+        'lastDay' => '[երեկ] LT',
+        'lastWeek' => '[անցած] dddd [օրը ժամը] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number, $period) {
+        switch ($period) {
+            case 'DDD':
+            case 'w':
+            case 'W':
+            case 'DDDo':
+                return $number.($number === 1 ? '-ին' : '-րդ');
+            default:
+                return $number;
+        }
+    },
+    'meridiem' => function ($hour) {
+        if ($hour < 4) {
+            return 'գիշերվա';
+        }
+        if ($hour < 12) {
+            return 'առավոտվա';
+        }
+        if ($hour < 17) {
+            return 'ցերեկվա';
+        }
+
+        return 'երեկոյան';
+    },
+    'months' => ['հունվարի', 'փետրվարի', 'մարտի', 'ապրիլի', 'մայիսի', 'հունիսի', 'հուլիսի', 'օգոստոսի', 'սեպտեմբերի', 'հոկտեմբերի', 'նոյեմբերի', 'դեկտեմբերի'],
+    'months_standalone' => ['հունվար', 'փետրվար', 'մարտ', 'ապրիլ', 'մայիս', 'հունիս', 'հուլիս', 'օգոստոս', 'սեպտեմբեր', 'հոկտեմբեր', 'նոյեմբեր', 'դեկտեմբեր'],
+    'months_short' => ['հնվ', 'փտր', 'մրտ', 'ապր', 'մյս', 'հնս', 'հլս', 'օգս', 'սպտ', 'հկտ', 'նմբ', 'դկտ'],
+    'months_regexp' => '/(D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|L{2,4}|l{2,4})/',
+    'weekdays' => ['կիրակի', 'երկուշաբթի', 'երեքշաբթի', 'չորեքշաբթի', 'հինգշաբթի', 'ուրբաթ', 'շաբաթ'],
+    'weekdays_short' => ['կրկ', 'երկ', 'երք', 'չրք', 'հնգ', 'ուրբ', 'շբթ'],
+    'weekdays_min' => ['կրկ', 'երկ', 'երք', 'չրք', 'հնգ', 'ուրբ', 'շբթ'],
+    'list' => [', ', ' եւ '],
+    'first_day_of_week' => 1,
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hy_AM.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hy_AM.php
new file mode 100644
index 0000000..4587df5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/hy_AM.php
@@ -0,0 +1,24 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - François B
+ * - Tim Fish
+ * - Serhan Apaydın
+ * - JD Isaacks
+ */
+return array_replace_recursive(require __DIR__.'/hy.php', [
+    'from_now' => ':time հետո',
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/i18n.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/i18n.php
new file mode 100644
index 0000000..d19e4f4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/i18n.php
@@ -0,0 +1,22 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'YYYY-MM-DD',
+    ],
+    'months' => ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'],
+    'months_short' => ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'],
+    'weekdays' => ['1', '2', '3', '4', '5', '6', '7'],
+    'weekdays_short' => ['1', '2', '3', '4', '5', '6', '7'],
+    'weekdays_min' => ['1', '2', '3', '4', '5', '6', '7'],
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 4,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ia.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ia.php
new file mode 100644
index 0000000..0a0d5e6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ia.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/ia_FR.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ia_FR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ia_FR.php
new file mode 100644
index 0000000..de4b2fa
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ia_FR.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Fedora Project Nik Kalach nikka@fedoraproject.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD.MM.YYYY',
+    ],
+    'months' => ['januario', 'februario', 'martio', 'april', 'maio', 'junio', 'julio', 'augusto', 'septembre', 'octobre', 'novembre', 'decembre'],
+    'months_short' => ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'],
+    'weekdays' => ['dominica', 'lunedi', 'martedi', 'mercuridi', 'jovedi', 'venerdi', 'sabbato'],
+    'weekdays_short' => ['dom', 'lun', 'mar', 'mer', 'jov', 'ven', 'sab'],
+    'weekdays_min' => ['dom', 'lun', 'mar', 'mer', 'jov', 'ven', 'sab'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+
+    'year' => 'anno :count',
+    'y' => 'anno :count',
+    'a_year' => 'anno :count',
+
+    'month' => ':count mense',
+    'm' => ':count mense',
+    'a_month' => ':count mense',
+
+    'week' => ':count septimana',
+    'w' => ':count septimana',
+    'a_week' => ':count septimana',
+
+    'day' => ':count die',
+    'd' => ':count die',
+    'a_day' => ':count die',
+
+    'hour' => ':count hora',
+    'h' => ':count hora',
+    'a_hour' => ':count hora',
+
+    'minute' => ':count minuscule',
+    'min' => ':count minuscule',
+    'a_minute' => ':count minuscule',
+
+    'second' => ':count secunda',
+    's' => ':count secunda',
+    'a_second' => ':count secunda',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/id.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/id.php
new file mode 100644
index 0000000..afaf78f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/id.php
@@ -0,0 +1,92 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - du
+ * - JD Isaacks
+ * - Nafies Luthfi
+ * - Raymundus Jati Primanda (mundusjp)
+ * - diankur313
+ * - a-wip0
+ */
+return [
+    'year' => ':count tahun',
+    'a_year' => '{1}setahun|]1,Inf[:count tahun',
+    'y' => ':countthn',
+    'month' => ':count bulan',
+    'a_month' => '{1}sebulan|]1,Inf[:count bulan',
+    'm' => ':countbln',
+    'week' => ':count minggu',
+    'a_week' => '{1}seminggu|]1,Inf[:count minggu',
+    'w' => ':countmgg',
+    'day' => ':count hari',
+    'a_day' => '{1}sehari|]1,Inf[:count hari',
+    'd' => ':counthr',
+    'hour' => ':count jam',
+    'a_hour' => '{1}sejam|]1,Inf[:count jam',
+    'h' => ':countj',
+    'minute' => ':count menit',
+    'a_minute' => '{1}semenit|]1,Inf[:count menit',
+    'min' => ':countmnt',
+    'second' => ':count detik',
+    'a_second' => '{1}beberapa detik|]1,Inf[:count detik',
+    's' => ':countdt',
+    'ago' => ':time yang lalu',
+    'from_now' => ':time dari sekarang',
+    'after' => ':time setelahnya',
+    'before' => ':time sebelumnya',
+    'diff_now' => 'sekarang',
+    'diff_today' => 'Hari',
+    'diff_today_regexp' => 'Hari(?:\\s+ini)?(?:\\s+pukul)?',
+    'diff_yesterday' => 'kemarin',
+    'diff_yesterday_regexp' => 'Kemarin(?:\\s+pukul)?',
+    'diff_tomorrow' => 'besok',
+    'diff_tomorrow_regexp' => 'Besok(?:\\s+pukul)?',
+    'formats' => [
+        'LT' => 'HH.mm',
+        'LTS' => 'HH.mm.ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY [pukul] HH.mm',
+        'LLLL' => 'dddd, D MMMM YYYY [pukul] HH.mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Hari ini pukul] LT',
+        'nextDay' => '[Besok pukul] LT',
+        'nextWeek' => 'dddd [pukul] LT',
+        'lastDay' => '[Kemarin pukul] LT',
+        'lastWeek' => 'dddd [lalu pukul] LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => function ($hour) {
+        if ($hour < 11) {
+            return 'pagi';
+        }
+        if ($hour < 15) {
+            return 'siang';
+        }
+        if ($hour < 19) {
+            return 'sore';
+        }
+
+        return 'malam';
+    },
+    'months' => ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'],
+    'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Agt', 'Sep', 'Okt', 'Nov', 'Des'],
+    'weekdays' => ['Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu'],
+    'weekdays_short' => ['Min', 'Sen', 'Sel', 'Rab', 'Kam', 'Jum', 'Sab'],
+    'weekdays_min' => ['Mg', 'Sn', 'Sl', 'Rb', 'Km', 'Jm', 'Sb'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' dan '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/id_ID.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/id_ID.php
new file mode 100644
index 0000000..406112a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/id_ID.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/id.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ig.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ig.php
new file mode 100644
index 0000000..de51e9c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ig.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/ig_NG.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ig_NG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ig_NG.php
new file mode 100644
index 0000000..0034e35
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ig_NG.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - pablo@mandriva.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YY',
+    ],
+    'months' => ['Jenụwarị', 'Febrụwarị', 'Maachị', 'Eprel', 'Mee', 'Juun', 'Julaị', 'Ọgọọst', 'Septemba', 'Ọktoba', 'Novemba', 'Disemba'],
+    'months_short' => ['Jen', 'Feb', 'Maa', 'Epr', 'Mee', 'Juu', 'Jul', 'Ọgọ', 'Sep', 'Ọkt', 'Nov', 'Dis'],
+    'weekdays' => ['sọnde', 'mọnde', 'tuzde', 'wenzde', 'tọsde', 'fraịde', 'satọde'],
+    'weekdays_short' => ['sọn', 'mọn', 'tuz', 'wen', 'tọs', 'fra', 'sat'],
+    'weekdays_min' => ['sọn', 'mọn', 'tuz', 'wen', 'tọs', 'fra', 'sat'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+
+    'year' => 'afo :count',
+    'y' => 'afo :count',
+    'a_year' => 'afo :count',
+
+    'month' => 'önwa :count',
+    'm' => 'önwa :count',
+    'a_month' => 'önwa :count',
+
+    'week' => 'izu :count',
+    'w' => 'izu :count',
+    'a_week' => 'izu :count',
+
+    'day' => 'ụbọchị :count',
+    'd' => 'ụbọchị :count',
+    'a_day' => 'ụbọchị :count',
+
+    'hour' => 'awa :count',
+    'h' => 'awa :count',
+    'a_hour' => 'awa :count',
+
+    'minute' => 'minit :count',
+    'min' => 'minit :count',
+    'a_minute' => 'minit :count',
+
+    'second' => 'sekọnd :count',
+    's' => 'sekọnd :count',
+    'a_second' => 'sekọnd :count',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ii.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ii.php
new file mode 100644
index 0000000..30f8374
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ii.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['ꎸꄑ', 'ꁯꋒ'],
+    'weekdays' => ['ꑭꆏꑍ', 'ꆏꊂꋍ', 'ꆏꊂꑍ', 'ꆏꊂꌕ', 'ꆏꊂꇖ', 'ꆏꊂꉬ', 'ꆏꊂꃘ'],
+    'weekdays_short' => ['ꑭꆏ', 'ꆏꋍ', 'ꆏꑍ', 'ꆏꌕ', 'ꆏꇖ', 'ꆏꉬ', 'ꆏꃘ'],
+    'weekdays_min' => ['ꑭꆏ', 'ꆏꋍ', 'ꆏꑍ', 'ꆏꌕ', 'ꆏꇖ', 'ꆏꉬ', 'ꆏꃘ'],
+    'months' => null,
+    'months_short' => ['ꋍꆪ', 'ꑍꆪ', 'ꌕꆪ', 'ꇖꆪ', 'ꉬꆪ', 'ꃘꆪ', 'ꏃꆪ', 'ꉆꆪ', 'ꈬꆪ', 'ꊰꆪ', 'ꊰꊪꆪ', 'ꊰꑋꆪ'],
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'YYYY-MM-dd',
+        'LL' => 'YYYY MMM D',
+        'LLL' => 'YYYY MMMM D h:mm a',
+        'LLLL' => 'YYYY MMMM D, dddd h:mm a',
+    ],
+
+    'year' => ':count ꒉ', // less reliable
+    'y' => ':count ꒉ', // less reliable
+    'a_year' => ':count ꒉ', // less reliable
+
+    'month' => ':count ꆪ',
+    'm' => ':count ꆪ',
+    'a_month' => ':count ꆪ',
+
+    'week' => ':count ꏃ', // less reliable
+    'w' => ':count ꏃ', // less reliable
+    'a_week' => ':count ꏃ', // less reliable
+
+    'day' => ':count ꏜ', // less reliable
+    'd' => ':count ꏜ', // less reliable
+    'a_day' => ':count ꏜ', // less reliable
+
+    'hour' => ':count ꄮꈉ',
+    'h' => ':count ꄮꈉ',
+    'a_hour' => ':count ꄮꈉ',
+
+    'minute' => ':count ꀄꊭ', // less reliable
+    'min' => ':count ꀄꊭ', // less reliable
+    'a_minute' => ':count ꀄꊭ', // less reliable
+
+    'second' => ':count ꇅ', // less reliable
+    's' => ':count ꇅ', // less reliable
+    'a_second' => ':count ꇅ', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ik.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ik.php
new file mode 100644
index 0000000..7a13aa2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ik.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/ik_CA.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ik_CA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ik_CA.php
new file mode 100644
index 0000000..bb2a109
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ik_CA.php
@@ -0,0 +1,50 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - pablo@mandriva.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YY',
+    ],
+    'months' => ['Siqiññaatchiaq', 'Siqiññaasrugruk', 'Paniqsiqsiivik', 'Qilġich Tatqiat', 'Suppivik', 'Iġñivik', 'Itchavik', 'Tiññivik', 'Amiġaiqsivik', 'Sikkuvik', 'Nippivik', 'Siqiñġiḷaq'],
+    'months_short' => ['Sñt', 'Sñs', 'Pan', 'Qil', 'Sup', 'Iġñ', 'Itc', 'Tiñ', 'Ami', 'Sik', 'Nip', 'Siq'],
+    'weekdays' => ['Minġuiqsioiq', 'Savałłiq', 'Ilaqtchiioiq', 'Qitchiioiq', 'Sisamiioiq', 'Tallimmiioiq', 'Maqinġuoiq'],
+    'weekdays_short' => ['Min', 'Sav', 'Ila', 'Qit', 'Sis', 'Tal', 'Maq'],
+    'weekdays_min' => ['Min', 'Sav', 'Ila', 'Qit', 'Sis', 'Tal', 'Maq'],
+    'day_of_first_week_of_year' => 1,
+
+    'year' => ':count ukiuq',
+    'y' => ':count ukiuq',
+    'a_year' => ':count ukiuq',
+
+    'month' => ':count Tatqiat',
+    'm' => ':count Tatqiat',
+    'a_month' => ':count Tatqiat',
+
+    'week' => ':count tatqiat', // less reliable
+    'w' => ':count tatqiat', // less reliable
+    'a_week' => ':count tatqiat', // less reliable
+
+    'day' => ':count siqiñiq', // less reliable
+    'd' => ':count siqiñiq', // less reliable
+    'a_day' => ':count siqiñiq', // less reliable
+
+    'hour' => ':count Siḷa', // less reliable
+    'h' => ':count Siḷa', // less reliable
+    'a_hour' => ':count Siḷa', // less reliable
+
+    'second' => ':count iġñiq', // less reliable
+    's' => ':count iġñiq', // less reliable
+    'a_second' => ':count iġñiq', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/in.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/in.php
new file mode 100644
index 0000000..406112a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/in.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/id.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/is.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/is.php
new file mode 100644
index 0000000..9990168
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/is.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Kristján Ingi Geirsson
+ */
+return [
+    'year' => '1 ár|:count ár',
+    'y' => '1 ár|:count ár',
+    'month' => '1 mánuður|:count mánuðir',
+    'm' => '1 mánuður|:count mánuðir',
+    'week' => '1 vika|:count vikur',
+    'w' => '1 vika|:count vikur',
+    'day' => '1 dagur|:count dagar',
+    'd' => '1 dagur|:count dagar',
+    'hour' => '1 klukkutími|:count klukkutímar',
+    'h' => '1 klukkutími|:count klukkutímar',
+    'minute' => '1 mínúta|:count mínútur',
+    'min' => '1 mínúta|:count mínútur',
+    'second' => '1 sekúnda|:count sekúndur',
+    's' => '1 sekúnda|:count sekúndur',
+    'ago' => ':time síðan',
+    'from_now' => ':time síðan',
+    'after' => ':time eftir',
+    'before' => ':time fyrir',
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' og '],
+    'meridiem' => ['fh', 'eh'],
+    'diff_now' => 'núna',
+    'diff_yesterday' => 'í gær',
+    'diff_tomorrow' => 'á morgun',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D. MMMM YYYY',
+        'LLL' => 'D. MMMM [kl.] HH:mm',
+        'LLLL' => 'dddd D. MMMM YYYY [kl.] HH:mm',
+    ],
+    'weekdays' => ['sunnudaginn', 'mánudaginn', 'þriðjudaginn', 'miðvikudaginn', 'fimmtudaginn', 'föstudaginn', 'laugardaginn'],
+    'weekdays_short' => ['sun', 'mán', 'þri', 'mið', 'fim', 'fös', 'lau'],
+    'weekdays_min' => ['sun', 'mán', 'þri', 'mið', 'fim', 'fös', 'lau'],
+    'months' => ['janúar', 'febrúar', 'mars', 'apríl', 'maí', 'júní', 'júlí', 'ágúst', 'september', 'október', 'nóvember', 'desember'],
+    'months_short' => ['jan', 'feb', 'mar', 'apr', 'maí', 'jún', 'júl', 'ágú', 'sep', 'okt', 'nóv', 'des'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/is_IS.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/is_IS.php
new file mode 100644
index 0000000..8b91bb2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/is_IS.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/is.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/it.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/it.php
new file mode 100644
index 0000000..c23d8db
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/it.php
@@ -0,0 +1,103 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ash
+ * - François B
+ * - Marco Perrando
+ * - Massimiliano Caniparoli
+ * - JD Isaacks
+ * - Andrea Martini
+ * - Francesco Marasco
+ * - Tizianoz93
+ * - Davide Casiraghi (davide-casiraghi)
+ * - Pete Scopes (pdscopes)
+ */
+return [
+    'year' => ':count anno|:count anni',
+    'a_year' => 'un anno|:count anni',
+    'y' => ':count anno|:count anni',
+    'month' => ':count mese|:count mesi',
+    'a_month' => 'un mese|:count mesi',
+    'm' => ':count mese|:count mesi',
+    'week' => ':count settimana|:count settimane',
+    'a_week' => 'una settimana|:count settimane',
+    'w' => ':count set.',
+    'day' => ':count giorno|:count giorni',
+    'a_day' => 'un giorno|:count giorni',
+    'd' => ':count g|:count gg',
+    'hour' => ':count ora|:count ore',
+    'a_hour' => 'un\'ora|:count ore',
+    'h' => ':count h',
+    'minute' => ':count minuto|:count minuti',
+    'a_minute' => 'un minuto|:count minuti',
+    'min' => ':count min.',
+    'second' => ':count secondo|:count secondi',
+    'a_second' => 'alcuni secondi|:count secondi',
+    's' => ':count sec.',
+    'millisecond' => ':count millisecondo|:count millisecondi',
+    'a_millisecond' => 'un millisecondo|:count millisecondi',
+    'ms' => ':countms',
+    'microsecond' => ':count microsecondo|:count microsecondi',
+    'a_microsecond' => 'un microsecondo|:count microsecondi',
+    'µs' => ':countµs',
+    'ago' => ':time fa',
+    'from_now' => function ($time) {
+        return (preg_match('/^[0-9].+$/', $time) ? 'tra' : 'in')." $time";
+    },
+    'after' => ':time dopo',
+    'before' => ':time prima',
+    'diff_now' => 'proprio ora',
+    'diff_today' => 'Oggi',
+    'diff_today_regexp' => 'Oggi(?:\\s+alle)?',
+    'diff_yesterday' => 'ieri',
+    'diff_yesterday_regexp' => 'Ieri(?:\\s+alle)?',
+    'diff_tomorrow' => 'domani',
+    'diff_tomorrow_regexp' => 'Domani(?:\\s+alle)?',
+    'diff_before_yesterday' => 'l\'altro ieri',
+    'diff_after_tomorrow' => 'dopodomani',
+    'period_interval' => 'ogni :interval',
+    'period_start_date' => 'dal :date',
+    'period_end_date' => 'al :date',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Oggi alle] LT',
+        'nextDay' => '[Domani alle] LT',
+        'nextWeek' => 'dddd [alle] LT',
+        'lastDay' => '[Ieri alle] LT',
+        'lastWeek' => function (\Carbon\CarbonInterface $date) {
+            switch ($date->dayOfWeek) {
+                case 0:
+                    return '[la scorsa] dddd [alle] LT';
+                default:
+                    return '[lo scorso] dddd [alle] LT';
+            }
+        },
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':numberº',
+    'months' => ['gennaio', 'febbraio', 'marzo', 'aprile', 'maggio', 'giugno', 'luglio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dicembre'],
+    'months_short' => ['gen', 'feb', 'mar', 'apr', 'mag', 'giu', 'lug', 'ago', 'set', 'ott', 'nov', 'dic'],
+    'weekdays' => ['domenica', 'lunedì', 'martedì', 'mercoledì', 'giovedì', 'venerdì', 'sabato'],
+    'weekdays_short' => ['dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab'],
+    'weekdays_min' => ['do', 'lu', 'ma', 'me', 'gi', 've', 'sa'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' e '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/it_CH.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/it_CH.php
new file mode 100644
index 0000000..c23cc50
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/it_CH.php
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Propaganistas
+ */
+return array_replace_recursive(require __DIR__.'/it.php', [
+    'formats' => [
+        'L' => 'DD.MM.YYYY',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/it_IT.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/it_IT.php
new file mode 100644
index 0000000..a5d1981
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/it_IT.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return require __DIR__.'/it.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/it_SM.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/it_SM.php
new file mode 100644
index 0000000..57fab39
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/it_SM.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/it.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/it_VA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/it_VA.php
new file mode 100644
index 0000000..57fab39
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/it_VA.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/it.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/iu.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/iu.php
new file mode 100644
index 0000000..4fa9742
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/iu.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/iu_CA.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/iu_CA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/iu_CA.php
new file mode 100644
index 0000000..6ab7e14
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/iu_CA.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Pablo Saratxaga pablo@mandriva.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'MM/DD/YY',
+    ],
+    'months' => ['ᔮᓄᐊᓕ', 'ᕕᕗᐊᓕ', 'ᒪᔅᓯ', 'ᐃᐳᓗ', 'ᒪᐃ', 'ᔪᓂ', 'ᔪᓚᐃ', 'ᐊᒋᓯ', 'ᓯᑎᕙ', 'ᐊᑦᑐᕙ', 'ᓄᕕᕙ', 'ᑎᓯᕝᕙ'],
+    'months_short' => ['ᔮᓄ', 'ᕕᕗ', 'ᒪᔅ', 'ᐃᐳ', 'ᒪᐃ', 'ᔪᓂ', 'ᔪᓚ', 'ᐊᒋ', 'ᓯᑎ', 'ᐊᑦ', 'ᓄᕕ', 'ᑎᓯ'],
+    'weekdays' => ['ᓈᑦᑎᖑᔭᕐᕕᒃ', 'ᓇᒡᒐᔾᔭᐅ', 'ᓇᒡᒐᔾᔭᐅᓕᖅᑭᑦ', 'ᐱᖓᓲᓕᖅᓯᐅᑦ', 'ᕿᑎᖅᑰᑦ', 'ᐅᓪᓗᕈᓘᑐᐃᓇᖅ', 'ᓯᕙᑖᕕᒃ'],
+    'weekdays_short' => ['ᓈ', 'ᓇ', 'ᓕ', 'ᐱ', 'ᕿ', 'ᐅ', 'ᓯ'],
+    'weekdays_min' => ['ᓈ', 'ᓇ', 'ᓕ', 'ᐱ', 'ᕿ', 'ᐅ', 'ᓯ'],
+    'day_of_first_week_of_year' => 1,
+
+    'year' => ':count ᐅᑭᐅᖅ',
+    'y' => ':count ᐅᑭᐅᖅ',
+    'a_year' => ':count ᐅᑭᐅᖅ',
+
+    'month' => ':count qaammat',
+    'm' => ':count qaammat',
+    'a_month' => ':count qaammat',
+
+    'week' => ':count sapaatip akunnera',
+    'w' => ':count sapaatip akunnera',
+    'a_week' => ':count sapaatip akunnera',
+
+    'day' => ':count ulloq',
+    'd' => ':count ulloq',
+    'a_day' => ':count ulloq',
+
+    'hour' => ':count ikarraq',
+    'h' => ':count ikarraq',
+    'a_hour' => ':count ikarraq',
+
+    'minute' => ':count titiqqaralaaq', // less reliable
+    'min' => ':count titiqqaralaaq', // less reliable
+    'a_minute' => ':count titiqqaralaaq', // less reliable
+
+    'second' => ':count marluk', // less reliable
+    's' => ':count marluk', // less reliable
+    'a_second' => ':count marluk', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/iw.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/iw.php
new file mode 100644
index 0000000..a8034e8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/iw.php
@@ -0,0 +1,57 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'months' => ['ינואר', 'פברואר', 'מרץ', 'אפריל', 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', 'נובמבר', 'דצמבר'],
+    'months_short' => ['ינו׳', 'פבר׳', 'מרץ', 'אפר׳', 'מאי', 'יוני', 'יולי', 'אוג׳', 'ספט׳', 'אוק׳', 'נוב׳', 'דצמ׳'],
+    'weekdays' => ['יום ראשון', 'יום שני', 'יום שלישי', 'יום רביעי', 'יום חמישי', 'יום שישי', 'יום שבת'],
+    'weekdays_short' => ['יום א׳', 'יום ב׳', 'יום ג׳', 'יום ד׳', 'יום ה׳', 'יום ו׳', 'שבת'],
+    'weekdays_min' => ['א׳', 'ב׳', 'ג׳', 'ד׳', 'ה׳', 'ו׳', 'ש׳'],
+    'meridiem' => ['לפנה״צ', 'אחה״צ'],
+    'formats' => [
+        'LT' => 'H:mm',
+        'LTS' => 'H:mm:ss',
+        'L' => 'D.M.YYYY',
+        'LL' => 'D בMMM YYYY',
+        'LLL' => 'D בMMMM YYYY H:mm',
+        'LLLL' => 'dddd, D בMMMM YYYY H:mm',
+    ],
+
+    'year' => ':count שנה',
+    'y' => ':count שנה',
+    'a_year' => ':count שנה',
+
+    'month' => ':count חודש',
+    'm' => ':count חודש',
+    'a_month' => ':count חודש',
+
+    'week' => ':count שבוע',
+    'w' => ':count שבוע',
+    'a_week' => ':count שבוע',
+
+    'day' => ':count יום',
+    'd' => ':count יום',
+    'a_day' => ':count יום',
+
+    'hour' => ':count שעה',
+    'h' => ':count שעה',
+    'a_hour' => ':count שעה',
+
+    'minute' => ':count דקה',
+    'min' => ':count דקה',
+    'a_minute' => ':count דקה',
+
+    'second' => ':count שניה',
+    's' => ':count שניה',
+    'a_second' => ':count שניה',
+
+    'ago' => 'לפני :time',
+    'from_now' => 'בעוד :time',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ja.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ja.php
new file mode 100644
index 0000000..fa4cb36
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ja.php
@@ -0,0 +1,99 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Takuya Sawada
+ * - Atsushi Tanaka
+ * - François B
+ * - Jason Katz-Brown
+ * - Serhan Apaydın
+ * - XueWei
+ * - JD Isaacks
+ * - toyama satoshi
+ * - atakigawa
+ */
+return [
+    'year' => ':count年',
+    'y' => ':count年',
+    'month' => ':countヶ月',
+    'm' => ':countヶ月',
+    'week' => ':count週間',
+    'w' => ':count週間',
+    'day' => ':count日',
+    'd' => ':count日',
+    'hour' => ':count時間',
+    'h' => ':count時間',
+    'minute' => ':count分',
+    'min' => ':count分',
+    'second' => ':count秒',
+    'a_second' => '{1}数秒|]1,Inf[:count秒',
+    's' => ':count秒',
+    'ago' => ':time前',
+    'from_now' => ':time後',
+    'after' => ':time後',
+    'before' => ':time前',
+    'diff_now' => '今',
+    'diff_today' => '今日',
+    'diff_yesterday' => '昨日',
+    'diff_tomorrow' => '明日',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'YYYY/MM/DD',
+        'LL' => 'YYYY年M月D日',
+        'LLL' => 'YYYY年M月D日 HH:mm',
+        'LLLL' => 'YYYY年M月D日 dddd HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[今日] LT',
+        'nextDay' => '[明日] LT',
+        'nextWeek' => function (\Carbon\CarbonInterface $current, \Carbon\CarbonInterface $other) {
+            if ($other->week !== $current->week) {
+                return '[来週]dddd LT';
+            }
+
+            return 'dddd LT';
+        },
+        'lastDay' => '[昨日] LT',
+        'lastWeek' => function (\Carbon\CarbonInterface $current, \Carbon\CarbonInterface $other) {
+            if ($other->week !== $current->week) {
+                return '[先週]dddd LT';
+            }
+
+            return 'dddd LT';
+        },
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number, $period) {
+        switch ($period) {
+            case 'd':
+            case 'D':
+            case 'DDD':
+                return $number.'日';
+            default:
+                return $number;
+        }
+    },
+    'meridiem' => ['午前', '午後'],
+    'months' => ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
+    'months_short' => ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
+    'weekdays' => ['日曜日', '月曜日', '火曜日', '水曜日', '木曜日', '金曜日', '土曜日'],
+    'weekdays_short' => ['日', '月', '火', '水', '木', '金', '土'],
+    'weekdays_min' => ['日', '月', '火', '水', '木', '金', '土'],
+    'list' => '、',
+    'alt_numbers' => ['〇', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二', '十三', '十四', '十五', '十六', '十七', '十八', '十九', '二十', '二十一', '二十二', '二十三', '二十四', '二十五', '二十六', '二十七', '二十八', '二十九', '三十', '三十一', '三十二', '三十三', '三十四', '三十五', '三十六', '三十七', '三十八', '三十九', '四十', '四十一', '四十二', '四十三', '四十四', '四十五', '四十六', '四十七', '四十八', '四十九', '五十', '五十一', '五十二', '五十三', '五十四', '五十五', '五十六', '五十七', '五十八', '五十九', '六十', '六十一', '六十二', '六十三', '六十四', '六十五', '六十六', '六十七', '六十八', '六十九', '七十', '七十一', '七十二', '七十三', '七十四', '七十五', '七十六', '七十七', '七十八', '七十九', '八十', '八十一', '八十二', '八十三', '八十四', '八十五', '八十六', '八十七', '八十八', '八十九', '九十', '九十一', '九十二', '九十三', '九十四', '九十五', '九十六', '九十七', '九十八', '九十九'],
+    'alt_numbers_pow' => [
+        10000 => '万',
+        1000 => '千',
+        100 => '百',
+    ],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ja_JP.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ja_JP.php
new file mode 100644
index 0000000..9e035fd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ja_JP.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ja.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/jgo.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/jgo.php
new file mode 100644
index 0000000..bad6beb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/jgo.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/jmc.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/jmc.php
new file mode 100644
index 0000000..f8cc72c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/jmc.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['utuko', 'kyiukonyi'],
+    'weekdays' => ['Jumapilyi', 'Jumatatuu', 'Jumanne', 'Jumatanu', 'Alhamisi', 'Ijumaa', 'Jumamosi'],
+    'weekdays_short' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'],
+    'weekdays_min' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'],
+    'months' => ['Januari', 'Februari', 'Machi', 'Aprilyi', 'Mei', 'Junyi', 'Julyai', 'Agusti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'],
+    'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/jv.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/jv.php
new file mode 100644
index 0000000..bcbe044
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/jv.php
@@ -0,0 +1,71 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - tgfjt
+ * - JD Isaacks
+ */
+return [
+    'year' => '{1}setaun|]1,Inf[:count taun',
+    'month' => '{1}sewulan|]1,Inf[:count wulan',
+    'week' => '{1}sakminggu|]1,Inf[:count minggu',
+    'day' => '{1}sedinten|]1,Inf[:count dinten',
+    'hour' => '{1}setunggal jam|]1,Inf[:count jam',
+    'minute' => '{1}setunggal menit|]1,Inf[:count menit',
+    'second' => '{1}sawetawis detik|]1,Inf[:count detik',
+    'ago' => ':time ingkang kepengker',
+    'from_now' => 'wonten ing :time',
+    'diff_today' => 'Dinten',
+    'diff_yesterday' => 'Kala',
+    'diff_yesterday_regexp' => 'Kala(?:\\s+wingi)?(?:\\s+pukul)?',
+    'diff_tomorrow' => 'Mbenjang',
+    'diff_tomorrow_regexp' => 'Mbenjang(?:\\s+pukul)?',
+    'diff_today_regexp' => 'Dinten(?:\\s+puniko)?(?:\\s+pukul)?',
+    'formats' => [
+        'LT' => 'HH.mm',
+        'LTS' => 'HH.mm.ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY [pukul] HH.mm',
+        'LLLL' => 'dddd, D MMMM YYYY [pukul] HH.mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Dinten puniko pukul] LT',
+        'nextDay' => '[Mbenjang pukul] LT',
+        'nextWeek' => 'dddd [pukul] LT',
+        'lastDay' => '[Kala wingi pukul] LT',
+        'lastWeek' => 'dddd [kepengker pukul] LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => function ($hour) {
+        if ($hour < 11) {
+            return 'enjing';
+        }
+        if ($hour < 15) {
+            return 'siyang';
+        }
+        if ($hour < 19) {
+            return 'sonten';
+        }
+
+        return 'ndalu';
+    },
+    'months' => ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'Nopember', 'Desember'],
+    'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Ags', 'Sep', 'Okt', 'Nop', 'Des'],
+    'weekdays' => ['Minggu', 'Senen', 'Seloso', 'Rebu', 'Kemis', 'Jemuwah', 'Septu'],
+    'weekdays_short' => ['Min', 'Sen', 'Sel', 'Reb', 'Kem', 'Jem', 'Sep'],
+    'weekdays_min' => ['Mg', 'Sn', 'Sl', 'Rb', 'Km', 'Jm', 'Sp'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' lan '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ka.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ka.php
new file mode 100644
index 0000000..5ddb957
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ka.php
@@ -0,0 +1,201 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Tornike Razmadze
+ * - François B
+ * - Lasha Dolidze
+ * - Tim Fish
+ * - JD Isaacks
+ * - Tornike Razmadze
+ * - François B
+ * - Lasha Dolidze
+ * - JD Isaacks
+ * - LONGMAN
+ * - Avtandil Kikabidze (akalongman)
+ * - Levan Velijanashvili (Stichoza)
+ */
+return [
+    'year' => ':count წელი',
+    'y' => ':count წელი',
+    'a_year' => '{1}წელი|]1,Inf[:count წელი',
+    'month' => ':count თვე',
+    'm' => ':count თვე',
+    'a_month' => '{1}თვე|]1,Inf[:count თვე',
+    'week' => ':count კვირა',
+    'w' => ':count კვირა',
+    'a_week' => '{1}კვირა|]1,Inf[:count კვირა',
+    'day' => ':count დღე',
+    'd' => ':count დღე',
+    'a_day' => '{1}დღე|]1,Inf[:count დღე',
+    'hour' => ':count საათი',
+    'h' => ':count საათი',
+    'a_hour' => '{1}საათი|]1,Inf[:count საათი',
+    'minute' => ':count წუთი',
+    'min' => ':count წუთი',
+    'a_minute' => '{1}წუთი|]1,Inf[:count წუთი',
+    'second' => ':count წამი',
+    's' => ':count წამი',
+    'a_second' => '{1}რამდენიმე წამი|]1,Inf[:count წამი',
+    'ago' => function ($time) {
+        $replacements = [
+            // year
+            'წელი' => 'წლის',
+            // month
+            'თვე' => 'თვის',
+            // week
+            'კვირა' => 'კვირის',
+            // day
+            'დღე' => 'დღის',
+            // hour
+            'საათი' => 'საათის',
+            // minute
+            'წუთი' => 'წუთის',
+            // second
+            'წამი' => 'წამის',
+        ];
+        $time = strtr($time, array_flip($replacements));
+        $time = strtr($time, $replacements);
+
+        return "$time წინ";
+    },
+    'from_now' => function ($time) {
+        $replacements = [
+            // year
+            'წელი' => 'წელიწადში',
+            // week
+            'კვირა' => 'კვირაში',
+            // day
+            'დღე' => 'დღეში',
+            // month
+            'თვე' => 'თვეში',
+            // hour
+            'საათი' => 'საათში',
+            // minute
+            'წუთი' => 'წუთში',
+            // second
+            'წამი' => 'წამში',
+        ];
+        $time = strtr($time, array_flip($replacements));
+        $time = strtr($time, $replacements);
+
+        return $time;
+    },
+    'after' => function ($time) {
+        $replacements = [
+            // year
+            'წელი' => 'წლის',
+            // month
+            'თვე' => 'თვის',
+            // week
+            'კვირა' => 'კვირის',
+            // day
+            'დღე' => 'დღის',
+            // hour
+            'საათი' => 'საათის',
+            // minute
+            'წუთი' => 'წუთის',
+            // second
+            'წამი' => 'წამის',
+        ];
+        $time = strtr($time, array_flip($replacements));
+        $time = strtr($time, $replacements);
+
+        return "$time შემდეგ";
+    },
+    'before' => function ($time) {
+        $replacements = [
+            // year
+            'წელი' => 'წლით',
+            // month
+            'თვე' => 'თვით',
+            // week
+            'კვირა' => 'კვირით',
+            // day
+            'დღე' => 'დღით',
+            // hour
+            'საათი' => 'საათით',
+            // minute
+            'წუთი' => 'წუთით',
+            // second
+            'წამი' => 'წამით',
+        ];
+        $time = strtr($time, array_flip($replacements));
+        $time = strtr($time, $replacements);
+
+        return "$time ადრე";
+    },
+    'diff_now' => 'ახლა',
+    'diff_today' => 'დღეს',
+    'diff_yesterday' => 'გუშინ',
+    'diff_tomorrow' => 'ხვალ',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[დღეს], LT[-ზე]',
+        'nextDay' => '[ხვალ], LT[-ზე]',
+        'nextWeek' => function (\Carbon\CarbonInterface $current, \Carbon\CarbonInterface $other) {
+            return ($current->isSameWeek($other) ? '' : '[შემდეგ] ').'dddd, LT[-ზე]';
+        },
+        'lastDay' => '[გუშინ], LT[-ზე]',
+        'lastWeek' => '[წინა] dddd, LT-ზე',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number) {
+        if ($number === 0) {
+            return $number;
+        }
+        if ($number === 1) {
+            return $number.'-ლი';
+        }
+        if (($number < 20) || ($number <= 100 && ($number % 20 === 0)) || ($number % 100 === 0)) {
+            return 'მე-'.$number;
+        }
+
+        return $number.'-ე';
+    },
+    'months' => ['იანვარი', 'თებერვალი', 'მარტი', 'აპრილი', 'მაისი', 'ივნისი', 'ივლისი', 'აგვისტო', 'სექტემბერი', 'ოქტომბერი', 'ნოემბერი', 'დეკემბერი'],
+    'months_standalone' => ['იანვარს', 'თებერვალს', 'მარტს', 'აპრილს', 'მაისს', 'ივნისს', 'ივლისს', 'აგვისტოს', 'სექტემბერს', 'ოქტომბერს', 'ნოემბერს', 'დეკემბერს'],
+    'months_short' => ['იან', 'თებ', 'მარ', 'აპრ', 'მაი', 'ივნ', 'ივლ', 'აგვ', 'სექ', 'ოქტ', 'ნოე', 'დეკ'],
+    'months_regexp' => '/(D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|L{2,4}|l{2,4})/',
+    'weekdays' => ['კვირას', 'ორშაბათს', 'სამშაბათს', 'ოთხშაბათს', 'ხუთშაბათს', 'პარასკევს', 'შაბათს'],
+    'weekdays_standalone' => ['კვირა', 'ორშაბათი', 'სამშაბათი', 'ოთხშაბათი', 'ხუთშაბათი', 'პარასკევი', 'შაბათი'],
+    'weekdays_short' => ['კვი', 'ორშ', 'სამ', 'ოთხ', 'ხუთ', 'პარ', 'შაბ'],
+    'weekdays_min' => ['კვ', 'ორ', 'სა', 'ოთ', 'ხუ', 'პა', 'შა'],
+    'weekdays_regexp' => '/^([^d].*|.*[^d])$/',
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' და '],
+    'meridiem' => function ($hour) {
+        if ($hour >= 4) {
+            if ($hour < 11) {
+                return 'დილის';
+            }
+
+            if ($hour < 16) {
+                return 'შუადღის';
+            }
+
+            if ($hour < 22) {
+                return 'საღამოს';
+            }
+        }
+
+        return 'ღამის';
+    },
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ka_GE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ka_GE.php
new file mode 100644
index 0000000..dd77fa3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ka_GE.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ka.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kab.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kab.php
new file mode 100644
index 0000000..94d6473
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kab.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/kab_DZ.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kab_DZ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kab_DZ.php
new file mode 100644
index 0000000..796660b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kab_DZ.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - belkacem77@gmail.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['Yennayer', 'Fuṛar', 'Meɣres', 'Yebrir', 'Mayyu', 'Yunyu', 'Yulyu', 'ɣuct', 'Ctembeṛ', 'Tubeṛ', 'Wambeṛ', 'Dujembeṛ'],
+    'months_short' => ['Yen', 'Fur', 'Meɣ', 'Yeb', 'May', 'Yun', 'Yul', 'ɣuc', 'Cte', 'Tub', 'Wam', 'Duj'],
+    'weekdays' => ['Acer', 'Arim', 'Aram', 'Ahad', 'Amhad', 'Sem', 'Sed'],
+    'weekdays_short' => ['Ace', 'Ari', 'Ara', 'Aha', 'Amh', 'Sem', 'Sed'],
+    'weekdays_min' => ['Ace', 'Ari', 'Ara', 'Aha', 'Amh', 'Sem', 'Sed'],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['FT', 'MD'],
+
+    'year' => ':count n yiseggasen',
+    'y' => ':count n yiseggasen',
+    'a_year' => ':count n yiseggasen',
+
+    'month' => ':count n wayyuren',
+    'm' => ':count n wayyuren',
+    'a_month' => ':count n wayyuren',
+
+    'week' => ':count n ledwaṛ', // less reliable
+    'w' => ':count n ledwaṛ', // less reliable
+    'a_week' => ':count n ledwaṛ', // less reliable
+
+    'day' => ':count n wussan',
+    'd' => ':count n wussan',
+    'a_day' => ':count n wussan',
+
+    'hour' => ':count n tsaɛtin',
+    'h' => ':count n tsaɛtin',
+    'a_hour' => ':count n tsaɛtin',
+
+    'minute' => ':count n tedqiqin',
+    'min' => ':count n tedqiqin',
+    'a_minute' => ':count n tedqiqin',
+
+    'second' => ':count tasdidt', // less reliable
+    's' => ':count tasdidt', // less reliable
+    'a_second' => ':count tasdidt', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kam.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kam.php
new file mode 100644
index 0000000..0fb6b2e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kam.php
@@ -0,0 +1,49 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['Ĩyakwakya', 'Ĩyawĩoo'],
+    'weekdays' => ['Wa kyumwa', 'Wa kwambĩlĩlya', 'Wa kelĩ', 'Wa katatũ', 'Wa kana', 'Wa katano', 'Wa thanthatũ'],
+    'weekdays_short' => ['Wky', 'Wkw', 'Wkl', 'Wtũ', 'Wkn', 'Wtn', 'Wth'],
+    'weekdays_min' => ['Wky', 'Wkw', 'Wkl', 'Wtũ', 'Wkn', 'Wtn', 'Wth'],
+    'months' => ['Mwai wa mbee', 'Mwai wa kelĩ', 'Mwai wa katatũ', 'Mwai wa kana', 'Mwai wa katano', 'Mwai wa thanthatũ', 'Mwai wa muonza', 'Mwai wa nyaanya', 'Mwai wa kenda', 'Mwai wa ĩkumi', 'Mwai wa ĩkumi na ĩmwe', 'Mwai wa ĩkumi na ilĩ'],
+    'months_short' => ['Mbe', 'Kel', 'Ktũ', 'Kan', 'Ktn', 'Tha', 'Moo', 'Nya', 'Knd', 'Ĩku', 'Ĩkm', 'Ĩkl'],
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+
+    // Too unreliable
+    /*
+    'year' => ':count mbua', // less reliable
+    'y' => ':count mbua', // less reliable
+    'a_year' => ':count mbua', // less reliable
+
+    'month' => ':count ndakitali', // less reliable
+    'm' => ':count ndakitali', // less reliable
+    'a_month' => ':count ndakitali', // less reliable
+
+    'day' => ':count wia', // less reliable
+    'd' => ':count wia', // less reliable
+    'a_day' => ':count wia', // less reliable
+
+    'hour' => ':count orasan', // less reliable
+    'h' => ':count orasan', // less reliable
+    'a_hour' => ':count orasan', // less reliable
+
+    'minute' => ':count orasan', // less reliable
+    'min' => ':count orasan', // less reliable
+    'a_minute' => ':count orasan', // less reliable
+    */
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kde.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kde.php
new file mode 100644
index 0000000..8acdaba
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kde.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['Muhi', 'Chilo'],
+    'weekdays' => ['Liduva lyapili', 'Liduva lyatatu', 'Liduva lyanchechi', 'Liduva lyannyano', 'Liduva lyannyano na linji', 'Liduva lyannyano na mavili', 'Liduva litandi'],
+    'weekdays_short' => ['Ll2', 'Ll3', 'Ll4', 'Ll5', 'Ll6', 'Ll7', 'Ll1'],
+    'weekdays_min' => ['Ll2', 'Ll3', 'Ll4', 'Ll5', 'Ll6', 'Ll7', 'Ll1'],
+    'months' => ['Mwedi Ntandi', 'Mwedi wa Pili', 'Mwedi wa Tatu', 'Mwedi wa Nchechi', 'Mwedi wa Nnyano', 'Mwedi wa Nnyano na Umo', 'Mwedi wa Nnyano na Mivili', 'Mwedi wa Nnyano na Mitatu', 'Mwedi wa Nnyano na Nchechi', 'Mwedi wa Nnyano na Nnyano', 'Mwedi wa Nnyano na Nnyano na U', 'Mwedi wa Nnyano na Nnyano na M'],
+    'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kea.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kea.php
new file mode 100644
index 0000000..8a334e2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kea.php
@@ -0,0 +1,48 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['a', 'p'],
+    'weekdays' => ['dumingu', 'sigunda-fera', 'tersa-fera', 'kuarta-fera', 'kinta-fera', 'sesta-fera', 'sabadu'],
+    'weekdays_short' => ['dum', 'sig', 'ter', 'kua', 'kin', 'ses', 'sab'],
+    'weekdays_min' => ['du', 'si', 'te', 'ku', 'ki', 'se', 'sa'],
+    'weekdays_standalone' => ['dumingu', 'sigunda-fera', 'tersa-fera', 'kuarta-fera', 'kinta-fera', 'sesta-fera', 'sábadu'],
+    'months' => ['Janeru', 'Febreru', 'Marsu', 'Abril', 'Maiu', 'Junhu', 'Julhu', 'Agostu', 'Setenbru', 'Otubru', 'Nuvenbru', 'Dizenbru'],
+    'months_short' => ['Jan', 'Feb', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Otu', 'Nuv', 'Diz'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D [di] MMMM [di] YYYY HH:mm',
+        'LLLL' => 'dddd, D [di] MMMM [di] YYYY HH:mm',
+    ],
+
+    'year' => ':count otunu', // less reliable
+    'y' => ':count otunu', // less reliable
+    'a_year' => ':count otunu', // less reliable
+
+    'week' => ':count día dumingu', // less reliable
+    'w' => ':count día dumingu', // less reliable
+    'a_week' => ':count día dumingu', // less reliable
+
+    'day' => ':count diâ', // less reliable
+    'd' => ':count diâ', // less reliable
+    'a_day' => ':count diâ', // less reliable
+
+    'minute' => ':count sugundu', // less reliable
+    'min' => ':count sugundu', // less reliable
+    'a_minute' => ':count sugundu', // less reliable
+
+    'second' => ':count dós', // less reliable
+    's' => ':count dós', // less reliable
+    'a_second' => ':count dós', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/khq.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/khq.php
new file mode 100644
index 0000000..f0649e7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/khq.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['Adduha', 'Aluula'],
+    'weekdays' => ['Alhadi', 'Atini', 'Atalata', 'Alarba', 'Alhamiisa', 'Aljuma', 'Assabdu'],
+    'weekdays_short' => ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alj', 'Ass'],
+    'weekdays_min' => ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alj', 'Ass'],
+    'months' => ['Žanwiye', 'Feewiriye', 'Marsi', 'Awiril', 'Me', 'Žuweŋ', 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', 'Deesanbur'],
+    'months_short' => ['Žan', 'Fee', 'Mar', 'Awi', 'Me', 'Žuw', 'Žuy', 'Ut', 'Sek', 'Okt', 'Noo', 'Dee'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM, YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ki.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ki.php
new file mode 100644
index 0000000..5754ffc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ki.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['Kiroko', 'Hwaĩ-inĩ'],
+    'weekdays' => ['Kiumia', 'Njumatatũ', 'Njumaine', 'Njumatana', 'Aramithi', 'Njumaa', 'Njumamothi'],
+    'weekdays_short' => ['KMA', 'NTT', 'NMN', 'NMT', 'ART', 'NMA', 'NMM'],
+    'weekdays_min' => ['KMA', 'NTT', 'NMN', 'NMT', 'ART', 'NMA', 'NMM'],
+    'months' => ['Njenuarĩ', 'Mwere wa kerĩ', 'Mwere wa gatatũ', 'Mwere wa kana', 'Mwere wa gatano', 'Mwere wa gatandatũ', 'Mwere wa mũgwanja', 'Mwere wa kanana', 'Mwere wa kenda', 'Mwere wa ikũmi', 'Mwere wa ikũmi na ũmwe', 'Ndithemba'],
+    'months_short' => ['JEN', 'WKR', 'WGT', 'WKN', 'WTN', 'WTD', 'WMJ', 'WNN', 'WKD', 'WIK', 'WMW', 'DIT'],
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+
+    'year' => ':count mĩaka', // less reliable
+    'y' => ':count mĩaka', // less reliable
+    'a_year' => ':count mĩaka', // less reliable
+
+    'month' => ':count mweri', // less reliable
+    'm' => ':count mweri', // less reliable
+    'a_month' => ':count mweri', // less reliable
+
+    'week' => ':count kiumia', // less reliable
+    'w' => ':count kiumia', // less reliable
+    'a_week' => ':count kiumia', // less reliable
+
+    'day' => ':count mũthenya', // less reliable
+    'd' => ':count mũthenya', // less reliable
+    'a_day' => ':count mũthenya', // less reliable
+
+    'hour' => ':count thaa', // less reliable
+    'h' => ':count thaa', // less reliable
+    'a_hour' => ':count thaa', // less reliable
+
+    'minute' => ':count mundu', // less reliable
+    'min' => ':count mundu', // less reliable
+    'a_minute' => ':count mundu', // less reliable
+
+    'second' => ':count igego', // less reliable
+    's' => ':count igego', // less reliable
+    'a_second' => ':count igego', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kk.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kk.php
new file mode 100644
index 0000000..59fa9af
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kk.php
@@ -0,0 +1,103 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - François B
+ * - Talat Uspanov
+ * - Нурлан Рахимжанов
+ * - Toleugazy Kali
+ */
+return [
+    'year' => ':count жыл',
+    'a_year' => '{1}бір жыл|:count жыл',
+    'y' => ':count ж.',
+    'month' => ':count ай',
+    'a_month' => '{1}бір ай|:count ай',
+    'm' => ':count ай',
+    'week' => ':count апта',
+    'a_week' => '{1}бір апта',
+    'w' => ':count ап.',
+    'day' => ':count күн',
+    'a_day' => '{1}бір күн|:count күн',
+    'd' => ':count к.',
+    'hour' => ':count сағат',
+    'a_hour' => '{1}бір сағат|:count сағат',
+    'h' => ':count са.',
+    'minute' => ':count минут',
+    'a_minute' => '{1}бір минут|:count минут',
+    'min' => ':count м.',
+    'second' => ':count секунд',
+    'a_second' => '{1}бірнеше секунд|:count секунд',
+    's' => ':count се.',
+    'ago' => ':time бұрын',
+    'from_now' => ':time ішінде',
+    'after' => ':time кейін',
+    'before' => ':time бұрын',
+    'diff_now' => 'қазір',
+    'diff_today' => 'Бүгін',
+    'diff_today_regexp' => 'Бүгін(?:\\s+сағат)?',
+    'diff_yesterday' => 'кеше',
+    'diff_yesterday_regexp' => 'Кеше(?:\\s+сағат)?',
+    'diff_tomorrow' => 'ертең',
+    'diff_tomorrow_regexp' => 'Ертең(?:\\s+сағат)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Бүгін сағат] LT',
+        'nextDay' => '[Ертең сағат] LT',
+        'nextWeek' => 'dddd [сағат] LT',
+        'lastDay' => '[Кеше сағат] LT',
+        'lastWeek' => '[Өткен аптаның] dddd [сағат] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number) {
+        static $suffixes = [
+            0 => '-ші',
+            1 => '-ші',
+            2 => '-ші',
+            3 => '-ші',
+            4 => '-ші',
+            5 => '-ші',
+            6 => '-шы',
+            7 => '-ші',
+            8 => '-ші',
+            9 => '-шы',
+            10 => '-шы',
+            20 => '-шы',
+            30 => '-шы',
+            40 => '-шы',
+            50 => '-ші',
+            60 => '-шы',
+            70 => '-ші',
+            80 => '-ші',
+            90 => '-шы',
+            100 => '-ші',
+        ];
+
+        return $number.($suffixes[$number] ?? $suffixes[$number % 10] ?? $suffixes[$number >= 100 ? 100 : -1] ?? '');
+    },
+    'months' => ['қаңтар', 'ақпан', 'наурыз', 'сәуір', 'мамыр', 'маусым', 'шілде', 'тамыз', 'қыркүйек', 'қазан', 'қараша', 'желтоқсан'],
+    'months_short' => ['қаң', 'ақп', 'нау', 'сәу', 'мам', 'мау', 'шіл', 'там', 'қыр', 'қаз', 'қар', 'жел'],
+    'weekdays' => ['жексенбі', 'дүйсенбі', 'сейсенбі', 'сәрсенбі', 'бейсенбі', 'жұма', 'сенбі'],
+    'weekdays_short' => ['жек', 'дүй', 'сей', 'сәр', 'бей', 'жұм', 'сен'],
+    'weekdays_min' => ['жк', 'дй', 'сй', 'ср', 'бй', 'жм', 'сн'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' және '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kk_KZ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kk_KZ.php
new file mode 100644
index 0000000..af4a5b2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kk_KZ.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/kk.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kkj.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kkj.php
new file mode 100644
index 0000000..bad6beb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kkj.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kl.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kl.php
new file mode 100644
index 0000000..7329a07
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kl.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/kl_GL.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kl_GL.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kl_GL.php
new file mode 100644
index 0000000..4fed720
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kl_GL.php
@@ -0,0 +1,64 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Danish Standards Association    bug-glibc-locales@gnu.org
+ * - John Eyðstein Johannesen (mashema)
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D. MMMM YYYY',
+        'LLL' => 'D. MMMM YYYY HH:mm',
+        'LLLL' => 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',
+    ],
+    'months' => ['januaarip', 'februaarip', 'marsip', 'apriilip', 'maajip', 'juunip', 'juulip', 'aggustip', 'septembarip', 'oktobarip', 'novembarip', 'decembarip'],
+    'months_short' => ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
+    'weekdays' => ['sapaat', 'ataasinngorneq', 'marlunngorneq', 'pingasunngorneq', 'sisamanngorneq', 'tallimanngorneq', 'arfininngorneq'],
+    'weekdays_short' => ['sap', 'ata', 'mar', 'pin', 'sis', 'tal', 'arf'],
+    'weekdays_min' => ['sap', 'ata', 'mar', 'pin', 'sis', 'tal', 'arf'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+
+    'year' => '{1}ukioq :count|{0}:count ukiut|]1,Inf[ukiut :count',
+    'a_year' => '{1}ukioq|{0}:count ukiut|]1,Inf[ukiut :count',
+    'y' => '{1}:countyr|{0}:countyrs|]1,Inf[:countyrs',
+
+    'month' => '{1}qaammat :count|{0}:count qaammatit|]1,Inf[qaammatit :count',
+    'a_month' => '{1}qaammat|{0}:count qaammatit|]1,Inf[qaammatit :count',
+    'm' => '{1}:countmo|{0}:countmos|]1,Inf[:countmos',
+
+    'week' => '{1}:count sap. ak.|{0}:count sap. ak.|]1,Inf[:count sap. ak.',
+    'a_week' => '{1}a sap. ak.|{0}:count sap. ak.|]1,Inf[:count sap. ak.',
+    'w' => ':countw',
+
+    'day' => '{1}:count ulloq|{0}:count ullut|]1,Inf[:count ullut',
+    'a_day' => '{1}a ulloq|{0}:count ullut|]1,Inf[:count ullut',
+    'd' => ':countd',
+
+    'hour' => '{1}:count tiimi|{0}:count tiimit|]1,Inf[:count tiimit',
+    'a_hour' => '{1}tiimi|{0}:count tiimit|]1,Inf[:count tiimit',
+    'h' => ':counth',
+
+    'minute' => '{1}:count minutsi|{0}:count minutsit|]1,Inf[:count minutsit',
+    'a_minute' => '{1}a minutsi|{0}:count minutsit|]1,Inf[:count minutsit',
+    'min' => ':countm',
+
+    'second' => '{1}:count sikunti|{0}:count sikuntit|]1,Inf[:count sikuntit',
+    'a_second' => '{1}sikunti|{0}:count sikuntit|]1,Inf[:count sikuntit',
+    's' => ':counts',
+
+    'ago' => ':time matuma siorna',
+
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kln.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kln.php
new file mode 100644
index 0000000..b034ba5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kln.php
@@ -0,0 +1,30 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['krn', 'koosk'],
+    'weekdays' => ['Kotisap', 'Kotaai', 'Koaeng’', 'Kosomok', 'Koang’wan', 'Komuut', 'Kolo'],
+    'weekdays_short' => ['Kts', 'Kot', 'Koo', 'Kos', 'Koa', 'Kom', 'Kol'],
+    'weekdays_min' => ['Kts', 'Kot', 'Koo', 'Kos', 'Koa', 'Kom', 'Kol'],
+    'months' => ['Mulgul', 'Ng’atyaato', 'Kiptaamo', 'Iwootkuut', 'Mamuut', 'Paagi', 'Ng’eiyeet', 'Rooptui', 'Bureet', 'Epeeso', 'Kipsuunde ne taai', 'Kipsuunde nebo aeng’'],
+    'months_short' => ['Mul', 'Ngat', 'Taa', 'Iwo', 'Mam', 'Paa', 'Nge', 'Roo', 'Bur', 'Epe', 'Kpt', 'Kpa'],
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+
+    'year' => ':count maghatiat', // less reliable
+    'y' => ':count maghatiat', // less reliable
+    'a_year' => ':count maghatiat', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/km.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/km.php
new file mode 100644
index 0000000..da790ac
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/km.php
@@ -0,0 +1,71 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Kruy Vanna
+ * - Sereysethy Touch
+ * - JD Isaacks
+ * - Sovichet Tep
+ */
+return [
+    'year' => '{1}មួយឆ្នាំ|]1,Inf[:count ឆ្នាំ',
+    'y' => ':count ឆ្នាំ',
+    'month' => '{1}មួយខែ|]1,Inf[:count ខែ',
+    'm' => ':count ខែ',
+    'week' => ':count សប្ដាហ៍',
+    'w' => ':count សប្ដាហ៍',
+    'day' => '{1}មួយថ្ងៃ|]1,Inf[:count ថ្ងៃ',
+    'd' => ':count ថ្ងៃ',
+    'hour' => '{1}មួយម៉ោង|]1,Inf[:count ម៉ោង',
+    'h' => ':count ម៉ោង',
+    'minute' => '{1}មួយនាទី|]1,Inf[:count នាទី',
+    'min' => ':count នាទី',
+    'second' => '{1}ប៉ុន្មានវិនាទី|]1,Inf[:count វិនាទី',
+    's' => ':count វិនាទី',
+    'ago' => ':timeមុន',
+    'from_now' => ':timeទៀត',
+    'after' => 'នៅ​ក្រោយ :time',
+    'before' => 'នៅ​មុន :time',
+    'diff_now' => 'ឥឡូវ',
+    'diff_today' => 'ថ្ងៃនេះ',
+    'diff_today_regexp' => 'ថ្ងៃនេះ(?:\\s+ម៉ោង)?',
+    'diff_yesterday' => 'ម្សិលមិញ',
+    'diff_yesterday_regexp' => 'ម្សិលមិញ(?:\\s+ម៉ោង)?',
+    'diff_tomorrow' => 'ថ្ងៃ​ស្អែក',
+    'diff_tomorrow_regexp' => 'ស្អែក(?:\\s+ម៉ោង)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[ថ្ងៃនេះ ម៉ោង] LT',
+        'nextDay' => '[ស្អែក ម៉ោង] LT',
+        'nextWeek' => 'dddd [ម៉ោង] LT',
+        'lastDay' => '[ម្សិលមិញ ម៉ោង] LT',
+        'lastWeek' => 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => 'ទី:number',
+    'meridiem' => ['ព្រឹក', 'ល្ងាច'],
+    'months' => ['មករា', 'កុម្ភៈ', 'មីនា', 'មេសា', 'ឧសភា', 'មិថុនា', 'កក្កដា', 'សីហា', 'កញ្ញា', 'តុលា', 'វិច្ឆិកា', 'ធ្នូ'],
+    'months_short' => ['មករា', 'កុម្ភៈ', 'មីនា', 'មេសា', 'ឧសភា', 'មិថុនា', 'កក្កដា', 'សីហា', 'កញ្ញា', 'តុលា', 'វិច្ឆិកា', 'ធ្នូ'],
+    'weekdays' => ['អាទិត្យ', 'ច័ន្ទ', 'អង្គារ', 'ពុធ', 'ព្រហស្បតិ៍', 'សុក្រ', 'សៅរ៍'],
+    'weekdays_short' => ['អា', 'ច', 'អ', 'ព', 'ព្រ', 'សុ', 'ស'],
+    'weekdays_min' => ['អា', 'ច', 'អ', 'ព', 'ព្រ', 'សុ', 'ស'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', 'និង '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/km_KH.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/km_KH.php
new file mode 100644
index 0000000..ef3b415
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/km_KH.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/km.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kn.php
new file mode 100644
index 0000000..0d2ad08
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kn.php
@@ -0,0 +1,75 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - MOHAN M U
+ * - François B
+ * - rajeevnaikte
+ */
+return [
+    'year' => '{1}ಒಂದು ವರ್ಷ|]1,Inf[:count ವರ್ಷ',
+    'month' => '{1}ಒಂದು ತಿಂಗಳು|]1,Inf[:count ತಿಂಗಳು',
+    'week' => '{1}ಒಂದು ವಾರ|]1,Inf[:count ವಾರಗಳು',
+    'day' => '{1}ಒಂದು ದಿನ|]1,Inf[:count ದಿನ',
+    'hour' => '{1}ಒಂದು ಗಂಟೆ|]1,Inf[:count ಗಂಟೆ',
+    'minute' => '{1}ಒಂದು ನಿಮಿಷ|]1,Inf[:count ನಿಮಿಷ',
+    'second' => '{1}ಕೆಲವು ಕ್ಷಣಗಳು|]1,Inf[:count ಸೆಕೆಂಡುಗಳು',
+    'ago' => ':time ಹಿಂದೆ',
+    'from_now' => ':time ನಂತರ',
+    'diff_now' => 'ಈಗ',
+    'diff_today' => 'ಇಂದು',
+    'diff_yesterday' => 'ನಿನ್ನೆ',
+    'diff_tomorrow' => 'ನಾಳೆ',
+    'formats' => [
+        'LT' => 'A h:mm',
+        'LTS' => 'A h:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY, A h:mm',
+        'LLLL' => 'dddd, D MMMM YYYY, A h:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[ಇಂದು] LT',
+        'nextDay' => '[ನಾಳೆ] LT',
+        'nextWeek' => 'dddd, LT',
+        'lastDay' => '[ನಿನ್ನೆ] LT',
+        'lastWeek' => '[ಕೊನೆಯ] dddd, LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':numberನೇ',
+    'meridiem' => function ($hour) {
+        if ($hour < 4) {
+            return 'ರಾತ್ರಿ';
+        }
+        if ($hour < 10) {
+            return 'ಬೆಳಿಗ್ಗೆ';
+        }
+        if ($hour < 17) {
+            return 'ಮಧ್ಯಾಹ್ನ';
+        }
+        if ($hour < 20) {
+            return 'ಸಂಜೆ';
+        }
+
+        return 'ರಾತ್ರಿ';
+    },
+    'months' => ['ಜನವರಿ', 'ಫೆಬ್ರವರಿ', 'ಮಾರ್ಚ್', 'ಏಪ್ರಿಲ್', 'ಮೇ', 'ಜೂನ್', 'ಜುಲೈ', 'ಆಗಸ್ಟ್', 'ಸೆಪ್ಟೆಂಬರ್', 'ಅಕ್ಟೋಬರ್', 'ನವೆಂಬರ್', 'ಡಿಸೆಂಬರ್'],
+    'months_short' => ['ಜನ', 'ಫೆಬ್ರ', 'ಮಾರ್ಚ್', 'ಏಪ್ರಿಲ್', 'ಮೇ', 'ಜೂನ್', 'ಜುಲೈ', 'ಆಗಸ್ಟ್', 'ಸೆಪ್ಟೆಂ', 'ಅಕ್ಟೋ', 'ನವೆಂ', 'ಡಿಸೆಂ'],
+    'weekdays' => ['ಭಾನುವಾರ', 'ಸೋಮವಾರ', 'ಮಂಗಳವಾರ', 'ಬುಧವಾರ', 'ಗುರುವಾರ', 'ಶುಕ್ರವಾರ', 'ಶನಿವಾರ'],
+    'weekdays_short' => ['ಭಾನು', 'ಸೋಮ', 'ಮಂಗಳ', 'ಬುಧ', 'ಗುರು', 'ಶುಕ್ರ', 'ಶನಿ'],
+    'weekdays_min' => ['ಭಾ', 'ಸೋ', 'ಮಂ', 'ಬು', 'ಗು', 'ಶು', 'ಶ'],
+    'list' => ', ',
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+    'weekend' => [0, 0],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kn_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kn_IN.php
new file mode 100644
index 0000000..7c6c909
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kn_IN.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/kn.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ko.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ko.php
new file mode 100644
index 0000000..4fa6237
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ko.php
@@ -0,0 +1,91 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Kunal Marwaha
+ * - FourwingsY
+ * - François B
+ * - Jason Katz-Brown
+ * - Seokjun Kim
+ * - Junho Kim
+ * - JD Isaacks
+ * - Juwon Kim
+ */
+return [
+    'year' => ':count년',
+    'a_year' => '{1}일년|]1,Inf[:count년',
+    'y' => ':count년',
+    'month' => ':count개월',
+    'a_month' => '{1}한달|]1,Inf[:count개월',
+    'm' => ':count개월',
+    'week' => ':count주',
+    'a_week' => '{1}일주일|]1,Inf[:count 주',
+    'w' => ':count주일',
+    'day' => ':count일',
+    'a_day' => '{1}하루|]1,Inf[:count일',
+    'd' => ':count일',
+    'hour' => ':count시간',
+    'a_hour' => '{1}한시간|]1,Inf[:count시간',
+    'h' => ':count시간',
+    'minute' => ':count분',
+    'a_minute' => '{1}일분|]1,Inf[:count분',
+    'min' => ':count분',
+    'second' => ':count초',
+    'a_second' => '{1}몇초|]1,Inf[:count초',
+    's' => ':count초',
+    'ago' => ':time 전',
+    'from_now' => ':time 후',
+    'after' => ':time 후',
+    'before' => ':time 전',
+    'diff_now' => '지금',
+    'diff_today' => '오늘',
+    'diff_yesterday' => '어제',
+    'diff_tomorrow' => '내일',
+    'formats' => [
+        'LT' => 'A h:mm',
+        'LTS' => 'A h:mm:ss',
+        'L' => 'YYYY.MM.DD.',
+        'LL' => 'YYYY년 MMMM D일',
+        'LLL' => 'YYYY년 MMMM D일 A h:mm',
+        'LLLL' => 'YYYY년 MMMM D일 dddd A h:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '오늘 LT',
+        'nextDay' => '내일 LT',
+        'nextWeek' => 'dddd LT',
+        'lastDay' => '어제 LT',
+        'lastWeek' => '지난주 dddd LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number, $period) {
+        switch ($period) {
+            case 'd':
+            case 'D':
+            case 'DDD':
+                return $number.'일';
+            case 'M':
+                return $number.'월';
+            case 'w':
+            case 'W':
+                return $number.'주';
+            default:
+                return $number;
+        }
+    },
+    'meridiem' => ['오전', '오후'],
+    'months' => ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],
+    'months_short' => ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],
+    'weekdays' => ['일요일', '월요일', '화요일', '수요일', '목요일', '금요일', '토요일'],
+    'weekdays_short' => ['일', '월', '화', '수', '목', '금', '토'],
+    'weekdays_min' => ['일', '월', '화', '수', '목', '금', '토'],
+    'list' => ' ',
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ko_KP.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ko_KP.php
new file mode 100644
index 0000000..55b40fa
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ko_KP.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ko.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ko_KR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ko_KR.php
new file mode 100644
index 0000000..d8eba2c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ko_KR.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ko.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kok.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kok.php
new file mode 100644
index 0000000..4adcddc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kok.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/kok_IN.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kok_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kok_IN.php
new file mode 100644
index 0000000..92ba844
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kok_IN.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Red Hat, Pune    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'D-M-YY',
+    ],
+    'months' => ['जानेवारी', 'फेब्रुवारी', 'मार्च', 'एप्रिल', 'मे', 'जून', 'जुलै', 'ओगस्ट', 'सेप्टेंबर', 'ओक्टोबर', 'नोव्हेंबर', 'डिसेंबर'],
+    'months_short' => ['जानेवारी', 'फेब्रुवारी', 'मार्च', 'एप्रिल', 'मे', 'जून', 'जुलै', 'ओगस्ट', 'सेप्टेंबर', 'ओक्टोबर', 'नोव्हेंबर', 'डिसेंबर'],
+    'weekdays' => ['आयतार', 'सोमार', 'मंगळवार', 'बुधवार', 'बेरेसतार', 'शुकरार', 'शेनवार'],
+    'weekdays_short' => ['आयतार', 'सोमार', 'मंगळवार', 'बुधवार', 'बेरेसतार', 'शुकरार', 'शेनवार'],
+    'weekdays_min' => ['आयतार', 'सोमार', 'मंगळवार', 'बुधवार', 'बेरेसतार', 'शुकरार', 'शेनवार'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['म.पू.', 'म.नं.'],
+
+    'year' => ':count वैशाकु', // less reliable
+    'y' => ':count वैशाकु', // less reliable
+    'a_year' => ':count वैशाकु', // less reliable
+
+    'week' => ':count आदित्यवार', // less reliable
+    'w' => ':count आदित्यवार', // less reliable
+    'a_week' => ':count आदित्यवार', // less reliable
+
+    'minute' => ':count नोंद', // less reliable
+    'min' => ':count नोंद', // less reliable
+    'a_minute' => ':count नोंद', // less reliable
+
+    'second' => ':count तेंको', // less reliable
+    's' => ':count तेंको', // less reliable
+    'a_second' => ':count तेंको', // less reliable
+
+    'month' => ':count मैनो',
+    'm' => ':count मैनो',
+    'a_month' => ':count मैनो',
+
+    'day' => ':count दिवसु',
+    'd' => ':count दिवसु',
+    'a_day' => ':count दिवसु',
+
+    'hour' => ':count घंते',
+    'h' => ':count घंते',
+    'a_hour' => ':count घंते',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ks.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ks.php
new file mode 100644
index 0000000..9876079
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ks.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/ks_IN.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ks_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ks_IN.php
new file mode 100644
index 0000000..ce9d5d4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ks_IN.php
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Red Hat, Pune    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'M/D/YY',
+    ],
+    'months' => ['جنؤری', 'فرؤری', 'مارٕچ', 'اپریل', 'میٔ', 'جوٗن', 'جوٗلایی', 'اگست', 'ستمبر', 'اکتوٗبر', 'نومبر', 'دسمبر'],
+    'months_short' => ['جنؤری', 'فرؤری', 'مارٕچ', 'اپریل', 'میٔ', 'جوٗن', 'جوٗلایی', 'اگست', 'ستمبر', 'اکتوٗبر', 'نومبر', 'دسمبر'],
+    'weekdays' => ['آتهوار', 'ژءندروار', 'بوءںوار', 'بودهوار', 'برىسوار', 'جمع', 'بٹوار'],
+    'weekdays_short' => ['آتهوار', 'ژءنتروار', 'بوءںوار', 'بودهوار', 'برىسوار', 'جمع', 'بٹوار'],
+    'weekdays_min' => ['آتهوار', 'ژءنتروار', 'بوءںوار', 'بودهوار', 'برىسوار', 'جمع', 'بٹوار'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['دوپھربرونھ', 'دوپھرپتھ'],
+
+    'year' => ':count آب', // less reliable
+    'y' => ':count آب', // less reliable
+    'a_year' => ':count آب', // less reliable
+
+    'month' => ':count रान्', // less reliable
+    'm' => ':count रान्', // less reliable
+    'a_month' => ':count रान्', // less reliable
+
+    'week' => ':count آتھٕوار', // less reliable
+    'w' => ':count آتھٕوار', // less reliable
+    'a_week' => ':count آتھٕوار', // less reliable
+
+    'hour' => ':count سۄن', // less reliable
+    'h' => ':count سۄن', // less reliable
+    'a_hour' => ':count سۄن', // less reliable
+
+    'minute' => ':count فَن', // less reliable
+    'min' => ':count فَن', // less reliable
+    'a_minute' => ':count فَن', // less reliable
+
+    'second' => ':count दोʼयुम', // less reliable
+    's' => ':count दोʼयुम', // less reliable
+    'a_second' => ':count दोʼयुम', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ks_IN@devanagari.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ks_IN@devanagari.php
new file mode 100644
index 0000000..a2ae8b6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ks_IN@devanagari.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - ks-gnome-trans-commits@lists.code.indlinux.net
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'M/D/YY',
+    ],
+    'months' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'],
+    'months_short' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'],
+    'weekdays' => ['आथवार', 'चॅ़दुरवार', 'बोमवार', 'ब्वदवार', 'ब्रसवार', 'शोकुरवार', 'बटुवार'],
+    'weekdays_short' => ['आथ ', 'चॅ़दुर', 'बोम', 'ब्वद', 'ब्रस', 'शोकुर', 'बटु'],
+    'weekdays_min' => ['आथ ', 'चॅ़दुर', 'बोम', 'ब्वद', 'ब्रस', 'शोकुर', 'बटु'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['पूर्वाह्न', 'अपराह्न'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ksb.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ksb.php
new file mode 100644
index 0000000..424099d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ksb.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['makeo', 'nyiaghuo'],
+    'weekdays' => ['Jumaapii', 'Jumaatatu', 'Jumaane', 'Jumaatano', 'Alhamisi', 'Ijumaa', 'Jumaamosi'],
+    'weekdays_short' => ['Jpi', 'Jtt', 'Jmn', 'Jtn', 'Alh', 'Iju', 'Jmo'],
+    'weekdays_min' => ['Jpi', 'Jtt', 'Jmn', 'Jtn', 'Alh', 'Iju', 'Jmo'],
+    'months' => ['Januali', 'Febluali', 'Machi', 'Aplili', 'Mei', 'Juni', 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'],
+    'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ksf.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ksf.php
new file mode 100644
index 0000000..8fb5598
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ksf.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['sárúwá', 'cɛɛ́nko'],
+    'weekdays' => ['sɔ́ndǝ', 'lǝndí', 'maadí', 'mɛkrɛdí', 'jǝǝdí', 'júmbá', 'samdí'],
+    'weekdays_short' => ['sɔ́n', 'lǝn', 'maa', 'mɛk', 'jǝǝ', 'júm', 'sam'],
+    'weekdays_min' => ['sɔ́n', 'lǝn', 'maa', 'mɛk', 'jǝǝ', 'júm', 'sam'],
+    'months' => ['ŋwíí a ntɔ́ntɔ', 'ŋwíí akǝ bɛ́ɛ', 'ŋwíí akǝ ráá', 'ŋwíí akǝ nin', 'ŋwíí akǝ táan', 'ŋwíí akǝ táafɔk', 'ŋwíí akǝ táabɛɛ', 'ŋwíí akǝ táaraa', 'ŋwíí akǝ táanin', 'ŋwíí akǝ ntɛk', 'ŋwíí akǝ ntɛk di bɔ́k', 'ŋwíí akǝ ntɛk di bɛ́ɛ'],
+    'months_short' => ['ŋ1', 'ŋ2', 'ŋ3', 'ŋ4', 'ŋ5', 'ŋ6', 'ŋ7', 'ŋ8', 'ŋ9', 'ŋ10', 'ŋ11', 'ŋ12'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ksh.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ksh.php
new file mode 100644
index 0000000..44c60a4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ksh.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['v.M.', 'n.M.'],
+    'weekdays' => ['Sunndaach', 'Mohndaach', 'Dinnsdaach', 'Metwoch', 'Dunnersdaach', 'Friidaach', 'Samsdaach'],
+    'weekdays_short' => ['Su.', 'Mo.', 'Di.', 'Me.', 'Du.', 'Fr.', 'Sa.'],
+    'weekdays_min' => ['Su', 'Mo', 'Di', 'Me', 'Du', 'Fr', 'Sa'],
+    'months' => ['Jannewa', 'Fäbrowa', 'Määz', 'Aprell', 'Mai', 'Juuni', 'Juuli', 'Oujoß', 'Septämber', 'Oktohber', 'Novämber', 'Dezämber'],
+    'months_short' => ['Jan', 'Fäb', 'Mäz', 'Apr', 'Mai', 'Jun', 'Jul', 'Ouj', 'Säp', 'Okt', 'Nov', 'Dez'],
+    'months_short_standalone' => ['Jan.', 'Fäb.', 'Mäz.', 'Apr.', 'Mai', 'Jun.', 'Jul.', 'Ouj.', 'Säp.', 'Okt.', 'Nov.', 'Dez.'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D. M. YYYY',
+        'LL' => 'D. MMM. YYYY',
+        'LLL' => 'D. MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, [dä] D. MMMM YYYY HH:mm',
+    ],
+
+    'year' => ':count Johr',
+    'y' => ':count Johr',
+    'a_year' => ':count Johr',
+
+    'month' => ':count Moohnd',
+    'm' => ':count Moohnd',
+    'a_month' => ':count Moohnd',
+
+    'week' => ':count woch',
+    'w' => ':count woch',
+    'a_week' => ':count woch',
+
+    'day' => ':count Daach',
+    'd' => ':count Daach',
+    'a_day' => ':count Daach',
+
+    'hour' => ':count Uhr',
+    'h' => ':count Uhr',
+    'a_hour' => ':count Uhr',
+
+    'minute' => ':count Menutt',
+    'min' => ':count Menutt',
+    'a_minute' => ':count Menutt',
+
+    'second' => ':count Sekůndt',
+    's' => ':count Sekůndt',
+    'a_second' => ':count Sekůndt',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ku.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ku.php
new file mode 100644
index 0000000..b001e30
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ku.php
@@ -0,0 +1,42 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Halwest Manguri
+ * - Kardo Qadir
+ */
+$months = ['کانونی دووەم', 'شوبات', 'ئازار', 'نیسان', 'ئایار', '‌حوزەیران', 'تەمموز', 'ئاب', 'ئەیلول', 'تشرینی یەکەم', 'تشرینی دووەم', 'کانونی یەکەم'];
+
+$weekdays = ['دوو شەممە', 'سێ شەممە', 'چوار شەممە', 'پێنج شەممە', 'هەینی', 'شەممە', 'یەک شەممە'];
+
+return [
+    'ago' => 'پێش :time',
+    'from_now' => ':time لە ئێستاوە',
+    'after' => 'دوای :time',
+    'before' => 'پێش :time',
+    'year' => '{0}ساڵ|{1}ساڵێک|{2}٢ ساڵ|[3,10]:count ساڵ|[11,Inf]:count ساڵ',
+    'month' => '{0}مانگ|{1}مانگێک|{2}٢ مانگ|[3,10]:count مانگ|[11,Inf]:count مانگ',
+    'week' => '{0}هەفتە|{1}هەفتەیەک|{2}٢ هەفتە|[3,10]:count هەفتە|[11,Inf]:count هەفتە',
+    'day' => '{0}ڕۆژ|{1}ڕۆژێک|{2}٢ ڕۆژ|[3,10]:count ڕۆژ|[11,Inf]:count ڕۆژ',
+    'hour' => '{0}کاتژمێر|{1}کاتژمێرێک|{2}٢ کاتژمێر|[3,10]:count کاتژمێر|[11,Inf]:count کاتژمێر',
+    'minute' => '{0}خولەک|{1}خولەکێک|{2}٢ خولەک|[3,10]:count خولەک|[11,Inf]:count خولەک',
+    'second' => '{0}چرکە|{1}چرکەیەک|{2}٢ چرکە|[3,10]:count چرکە|[11,Inf]:count چرکە',
+    'months' => $months,
+    'months_standalone' => $months,
+    'months_short' => $months,
+    'weekdays' => $weekdays,
+    'weekdays_short' => $weekdays,
+    'weekdays_min' => $weekdays,
+    'list' => [', ', ' û '],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ku_TR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ku_TR.php
new file mode 100644
index 0000000..11fce2d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ku_TR.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ku.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kw.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kw.php
new file mode 100644
index 0000000..26e242e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kw.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/kw_GB.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kw_GB.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kw_GB.php
new file mode 100644
index 0000000..00bf52b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/kw_GB.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Alastair McKinstry    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YY',
+    ],
+    'months' => ['mis Genver', 'mis Hwevrer', 'mis Meurth', 'mis Ebrel', 'mis Me', 'mis Metheven', 'mis Gortheren', 'mis Est', 'mis Gwynngala', 'mis Hedra', 'mis Du', 'mis Kevardhu'],
+    'months_short' => ['Gen', 'Hwe', 'Meu', 'Ebr', 'Me', 'Met', 'Gor', 'Est', 'Gwn', 'Hed', 'Du', 'Kev'],
+    'weekdays' => ['De Sul', 'De Lun', 'De Merth', 'De Merher', 'De Yow', 'De Gwener', 'De Sadorn'],
+    'weekdays_short' => ['Sul', 'Lun', 'Mth', 'Mhr', 'Yow', 'Gwe', 'Sad'],
+    'weekdays_min' => ['Sul', 'Lun', 'Mth', 'Mhr', 'Yow', 'Gwe', 'Sad'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+
+    'year' => ':count bledhen',
+    'y' => ':count bledhen',
+    'a_year' => ':count bledhen',
+
+    'month' => ':count mis',
+    'm' => ':count mis',
+    'a_month' => ':count mis',
+
+    'week' => ':count seythen',
+    'w' => ':count seythen',
+    'a_week' => ':count seythen',
+
+    'day' => ':count dydh',
+    'd' => ':count dydh',
+    'a_day' => ':count dydh',
+
+    'hour' => ':count eur',
+    'h' => ':count eur',
+    'a_hour' => ':count eur',
+
+    'minute' => ':count mynysen',
+    'min' => ':count mynysen',
+    'a_minute' => ':count mynysen',
+
+    'second' => ':count pryjwyth',
+    's' => ':count pryjwyth',
+    'a_second' => ':count pryjwyth',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ky.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ky.php
new file mode 100644
index 0000000..e0d1af1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ky.php
@@ -0,0 +1,106 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - acutexyz
+ * - Josh Soref
+ * - François B
+ * - Chyngyz Arystan uulu
+ * - Chyngyz
+ * - acutexyz
+ * - Josh Soref
+ * - François B
+ * - Chyngyz Arystan uulu
+ */
+return [
+    'year' => ':count жыл',
+    'a_year' => '{1}бир жыл|:count жыл',
+    'y' => ':count жыл',
+    'month' => ':count ай',
+    'a_month' => '{1}бир ай|:count ай',
+    'm' => ':count ай',
+    'week' => ':count апта',
+    'a_week' => '{1}бир апта|:count апта',
+    'w' => ':count апт.',
+    'day' => ':count күн',
+    'a_day' => '{1}бир күн|:count күн',
+    'd' => ':count күн',
+    'hour' => ':count саат',
+    'a_hour' => '{1}бир саат|:count саат',
+    'h' => ':count саат.',
+    'minute' => ':count мүнөт',
+    'a_minute' => '{1}бир мүнөт|:count мүнөт',
+    'min' => ':count мүн.',
+    'second' => ':count секунд',
+    'a_second' => '{1}бирнече секунд|:count секунд',
+    's' => ':count сек.',
+    'ago' => ':time мурун',
+    'from_now' => ':time ичинде',
+    'diff_now' => 'азыр',
+    'diff_today' => 'Бүгүн',
+    'diff_today_regexp' => 'Бүгүн(?:\\s+саат)?',
+    'diff_yesterday' => 'кечээ',
+    'diff_yesterday_regexp' => 'Кече(?:\\s+саат)?',
+    'diff_tomorrow' => 'эртең',
+    'diff_tomorrow_regexp' => 'Эртең(?:\\s+саат)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Бүгүн саат] LT',
+        'nextDay' => '[Эртең саат] LT',
+        'nextWeek' => 'dddd [саат] LT',
+        'lastDay' => '[Кече саат] LT',
+        'lastWeek' => '[Өткен аптанын] dddd [күнү] [саат] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number) {
+        static $suffixes = [
+            0 => '-чү',
+            1 => '-чи',
+            2 => '-чи',
+            3 => '-чү',
+            4 => '-чү',
+            5 => '-чи',
+            6 => '-чы',
+            7 => '-чи',
+            8 => '-чи',
+            9 => '-чу',
+            10 => '-чу',
+            20 => '-чы',
+            30 => '-чу',
+            40 => '-чы',
+            50 => '-чү',
+            60 => '-чы',
+            70 => '-чи',
+            80 => '-чи',
+            90 => '-чу',
+            100 => '-чү',
+        ];
+
+        return $number.($suffixes[$number] ?? $suffixes[$number % 10] ?? $suffixes[$number >= 100 ? 100 : -1] ?? '');
+    },
+    'months' => ['январь', 'февраль', 'март', 'апрель', 'май', 'июнь', 'июль', 'август', 'сентябрь', 'октябрь', 'ноябрь', 'декабрь'],
+    'months_short' => ['янв', 'фев', 'март', 'апр', 'май', 'июнь', 'июль', 'авг', 'сен', 'окт', 'ноя', 'дек'],
+    'weekdays' => ['Жекшемби', 'Дүйшөмбү', 'Шейшемби', 'Шаршемби', 'Бейшемби', 'Жума', 'Ишемби'],
+    'weekdays_short' => ['Жек', 'Дүй', 'Шей', 'Шар', 'Бей', 'Жум', 'Ише'],
+    'weekdays_min' => ['Жк', 'Дй', 'Шй', 'Шр', 'Бй', 'Жм', 'Иш'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => ' ',
+    'meridiem' => ['таңкы', 'түштөн кийинки'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ky_KG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ky_KG.php
new file mode 100644
index 0000000..4426bea
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ky_KG.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ky.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lag.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lag.php
new file mode 100644
index 0000000..dc959c9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lag.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['TOO', 'MUU'],
+    'weekdays' => ['Jumapíiri', 'Jumatátu', 'Jumaíne', 'Jumatáano', 'Alamíisi', 'Ijumáa', 'Jumamóosi'],
+    'weekdays_short' => ['Píili', 'Táatu', 'Íne', 'Táano', 'Alh', 'Ijm', 'Móosi'],
+    'weekdays_min' => ['Píili', 'Táatu', 'Íne', 'Táano', 'Alh', 'Ijm', 'Móosi'],
+    'months' => ['Kʉfúngatɨ', 'Kʉnaanɨ', 'Kʉkeenda', 'Kwiikumi', 'Kwiinyambála', 'Kwiidwaata', 'Kʉmʉʉnchɨ', 'Kʉvɨɨrɨ', 'Kʉsaatʉ', 'Kwiinyi', 'Kʉsaano', 'Kʉsasatʉ'],
+    'months_short' => ['Fúngatɨ', 'Naanɨ', 'Keenda', 'Ikúmi', 'Inyambala', 'Idwaata', 'Mʉʉnchɨ', 'Vɨɨrɨ', 'Saatʉ', 'Inyi', 'Saano', 'Sasatʉ'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lb.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lb.php
new file mode 100644
index 0000000..db04834
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lb.php
@@ -0,0 +1,85 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Philippe Vaucher
+ * - Tsutomu Kuroda
+ * - dan-nl
+ * - Simon Lelorrain (slelorrain)
+ */
+return [
+    'year' => ':count Joer',
+    'y' => ':countJ',
+    'month' => ':count Mount|:count Méint',
+    'm' => ':countMo',
+    'week' => ':count Woch|:count Wochen',
+    'w' => ':countWo|:countWo',
+    'day' => ':count Dag|:count Deeg',
+    'd' => ':countD',
+    'hour' => ':count Stonn|:count Stonnen',
+    'h' => ':countSto',
+    'minute' => ':count Minutt|:count Minutten',
+    'min' => ':countM',
+    'second' => ':count Sekonn|:count Sekonnen',
+    's' => ':countSek',
+
+    'ago' => 'virun :time',
+    'from_now' => 'an :time',
+    'before' => ':time virdrun',
+    'after' => ':time duerno',
+
+    'diff_today' => 'Haut',
+    'diff_yesterday' => 'Gëschter',
+    'diff_yesterday_regexp' => 'Gëschter(?:\\s+um)?',
+    'diff_tomorrow' => 'Muer',
+    'diff_tomorrow_regexp' => 'Muer(?:\\s+um)?',
+    'diff_today_regexp' => 'Haut(?:\\s+um)?',
+    'formats' => [
+        'LT' => 'H:mm [Auer]',
+        'LTS' => 'H:mm:ss [Auer]',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D. MMMM YYYY',
+        'LLL' => 'D. MMMM YYYY H:mm [Auer]',
+        'LLLL' => 'dddd, D. MMMM YYYY H:mm [Auer]',
+    ],
+
+    'calendar' => [
+        'sameDay' => '[Haut um] LT',
+        'nextDay' => '[Muer um] LT',
+        'nextWeek' => 'dddd [um] LT',
+        'lastDay' => '[Gëschter um] LT',
+        'lastWeek' => function (\Carbon\CarbonInterface $date) {
+            // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
+            switch ($date->dayOfWeek) {
+                case 2:
+                case 4:
+                    return '[Leschten] dddd [um] LT';
+                default:
+                    return '[Leschte] dddd [um] LT';
+            }
+        },
+        'sameElse' => 'L',
+    ],
+
+    'months' => ['Januar', 'Februar', 'Mäerz', 'Abrëll', 'Mee', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
+    'months_short' => ['Jan.', 'Febr.', 'Mrz.', 'Abr.', 'Mee', 'Jun.', 'Jul.', 'Aug.', 'Sept.', 'Okt.', 'Nov.', 'Dez.'],
+    'weekdays' => ['Sonndeg', 'Méindeg', 'Dënschdeg', 'Mëttwoch', 'Donneschdeg', 'Freideg', 'Samschdeg'],
+    'weekdays_short' => ['So.', 'Mé.', 'Dë.', 'Më.', 'Do.', 'Fr.', 'Sa.'],
+    'weekdays_min' => ['So', 'Mé', 'Dë', 'Më', 'Do', 'Fr', 'Sa'],
+    'ordinal' => ':number.',
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' an '],
+    'meridiem' => ['moies', 'mëttes'],
+    'weekdays_short_standalone' => ['Son', 'Méi', 'Dën', 'Mët', 'Don', 'Fre', 'Sam'],
+    'months_short_standalone' => ['Jan', 'Feb', 'Mäe', 'Abr', 'Mee', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lb_LU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lb_LU.php
new file mode 100644
index 0000000..c8625fe
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lb_LU.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/lb.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lg.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lg.php
new file mode 100644
index 0000000..48bc68b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lg.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/lg_UG.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lg_UG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lg_UG.php
new file mode 100644
index 0000000..aa02214
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lg_UG.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Akademe ya Luganda Kizito Birabwa kompyuta@kizito.uklinux.net
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YY',
+    ],
+    'months' => ['Janwaliyo', 'Febwaliyo', 'Marisi', 'Apuli', 'Maayi', 'Juuni', 'Julaayi', 'Agusito', 'Sebuttemba', 'Okitobba', 'Novemba', 'Desemba'],
+    'months_short' => ['Jan', 'Feb', 'Mar', 'Apu', 'Maa', 'Juu', 'Jul', 'Agu', 'Seb', 'Oki', 'Nov', 'Des'],
+    'weekdays' => ['Sabiiti', 'Balaza', 'Lwakubiri', 'Lwakusatu', 'Lwakuna', 'Lwakutaano', 'Lwamukaaga'],
+    'weekdays_short' => ['Sab', 'Bal', 'Lw2', 'Lw3', 'Lw4', 'Lw5', 'Lw6'],
+    'weekdays_min' => ['Sab', 'Bal', 'Lw2', 'Lw3', 'Lw4', 'Lw5', 'Lw6'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+
+    'month' => ':count njuba', // less reliable
+    'm' => ':count njuba', // less reliable
+    'a_month' => ':count njuba', // less reliable
+
+    'year' => ':count mwaaka',
+    'y' => ':count mwaaka',
+    'a_year' => ':count mwaaka',
+
+    'week' => ':count sabbiiti',
+    'w' => ':count sabbiiti',
+    'a_week' => ':count sabbiiti',
+
+    'day' => ':count lunaku',
+    'd' => ':count lunaku',
+    'a_day' => ':count lunaku',
+
+    'hour' => 'saawa :count',
+    'h' => 'saawa :count',
+    'a_hour' => 'saawa :count',
+
+    'minute' => 'ddakiika :count',
+    'min' => 'ddakiika :count',
+    'a_minute' => 'ddakiika :count',
+
+    'second' => ':count kyʼokubiri',
+    's' => ':count kyʼokubiri',
+    'a_second' => ':count kyʼokubiri',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/li.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/li.php
new file mode 100644
index 0000000..86c3009
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/li.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/li_NL.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/li_NL.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/li_NL.php
new file mode 100644
index 0000000..6c5feb7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/li_NL.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - information from Kenneth Christiansen Kenneth Christiansen, Pablo Saratxaga kenneth@gnu.org, pablo@mandriva.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD.MM.YYYY',
+    ],
+    'months' => ['jannewarie', 'fibberwarie', 'miert', 'eprèl', 'meij', 'junie', 'julie', 'augustus', 'september', 'oktober', 'november', 'desember'],
+    'months_short' => ['jan', 'fib', 'mie', 'epr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'des'],
+    'weekdays' => ['zóndig', 'maondig', 'daensdig', 'goonsdig', 'dónderdig', 'vriedig', 'zaoterdig'],
+    'weekdays_short' => ['zón', 'mao', 'dae', 'goo', 'dón', 'vri', 'zao'],
+    'weekdays_min' => ['zón', 'mao', 'dae', 'goo', 'dón', 'vri', 'zao'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+
+    'minute' => ':count momênt', // less reliable
+    'min' => ':count momênt', // less reliable
+    'a_minute' => ':count momênt', // less reliable
+
+    'year' => ':count jaor',
+    'y' => ':count jaor',
+    'a_year' => ':count jaor',
+
+    'month' => ':count maond',
+    'm' => ':count maond',
+    'a_month' => ':count maond',
+
+    'week' => ':count waek',
+    'w' => ':count waek',
+    'a_week' => ':count waek',
+
+    'day' => ':count daag',
+    'd' => ':count daag',
+    'a_day' => ':count daag',
+
+    'hour' => ':count oer',
+    'h' => ':count oer',
+    'a_hour' => ':count oer',
+
+    'second' => ':count Secónd',
+    's' => ':count Secónd',
+    'a_second' => ':count Secónd',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lij.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lij.php
new file mode 100644
index 0000000..45732b5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lij.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/lij_IT.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lij_IT.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lij_IT.php
new file mode 100644
index 0000000..f8726fd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lij_IT.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Gastaldi    alessio.gastaldi@libero.it
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['zenâ', 'fevrâ', 'marzo', 'avrî', 'mazzo', 'zûgno', 'lûggio', 'agosto', 'settembre', 'ottobre', 'novembre', 'dixembre'],
+    'months_short' => ['zen', 'fev', 'mar', 'arv', 'maz', 'zûg', 'lûg', 'ago', 'set', 'ött', 'nov', 'dix'],
+    'weekdays' => ['domenega', 'lûnedì', 'martedì', 'mercUrdì', 'zêggia', 'venardì', 'sabbo'],
+    'weekdays_short' => ['dom', 'lûn', 'mar', 'mer', 'zêu', 'ven', 'sab'],
+    'weekdays_min' => ['dom', 'lûn', 'mar', 'mer', 'zêu', 'ven', 'sab'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+
+    'year' => ':count etæ', // less reliable
+    'y' => ':count etæ', // less reliable
+    'a_year' => ':count etæ', // less reliable
+
+    'month' => ':count meize',
+    'm' => ':count meize',
+    'a_month' => ':count meize',
+
+    'week' => ':count settemannha',
+    'w' => ':count settemannha',
+    'a_week' => ':count settemannha',
+
+    'day' => ':count giorno',
+    'd' => ':count giorno',
+    'a_day' => ':count giorno',
+
+    'hour' => ':count reléuio', // less reliable
+    'h' => ':count reléuio', // less reliable
+    'a_hour' => ':count reléuio', // less reliable
+
+    'minute' => ':count menûo',
+    'min' => ':count menûo',
+    'a_minute' => ':count menûo',
+
+    'second' => ':count segondo',
+    's' => ':count segondo',
+    'a_second' => ':count segondo',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lkt.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lkt.php
new file mode 100644
index 0000000..968b058
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lkt.php
@@ -0,0 +1,40 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+
+    'month' => ':count haŋwí', // less reliable
+    'm' => ':count haŋwí', // less reliable
+    'a_month' => ':count haŋwí', // less reliable
+
+    'week' => ':count šakówiŋ', // less reliable
+    'w' => ':count šakówiŋ', // less reliable
+    'a_week' => ':count šakówiŋ', // less reliable
+
+    'hour' => ':count maza škaŋškaŋ', // less reliable
+    'h' => ':count maza škaŋškaŋ', // less reliable
+    'a_hour' => ':count maza škaŋškaŋ', // less reliable
+
+    'minute' => ':count číkʼala', // less reliable
+    'min' => ':count číkʼala', // less reliable
+    'a_minute' => ':count číkʼala', // less reliable
+
+    'year' => ':count waníyetu',
+    'y' => ':count waníyetu',
+    'a_year' => ':count waníyetu',
+
+    'day' => ':count aŋpétu',
+    'd' => ':count aŋpétu',
+    'a_day' => ':count aŋpétu',
+
+    'second' => ':count icinuŋpa',
+    's' => ':count icinuŋpa',
+    'a_second' => ':count icinuŋpa',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ln.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ln.php
new file mode 100644
index 0000000..9d5c35d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ln.php
@@ -0,0 +1,60 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ubuntu René Manassé GALEKWA renemanasse@gmail.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+    'months' => ['sánzá ya yambo', 'sánzá ya míbalé', 'sánzá ya mísáto', 'sánzá ya mínei', 'sánzá ya mítáno', 'sánzá ya motóbá', 'sánzá ya nsambo', 'sánzá ya mwambe', 'sánzá ya libwa', 'sánzá ya zómi', 'sánzá ya zómi na mɔ̌kɔ́', 'sánzá ya zómi na míbalé'],
+    'months_short' => ['yan', 'fbl', 'msi', 'apl', 'mai', 'yun', 'yul', 'agt', 'stb', 'ɔtb', 'nvb', 'dsb'],
+    'weekdays' => ['Lomíngo', 'Mosálá mɔ̌kɔ́', 'Misálá míbalé', 'Misálá mísáto', 'Misálá mínei', 'Misálá mítáno', 'Mpɔ́sɔ'],
+    'weekdays_short' => ['m1.', 'm2.', 'm3.', 'm4.', 'm5.', 'm6.', 'm7.'],
+    'weekdays_min' => ['m1.', 'm2.', 'm3.', 'm4.', 'm5.', 'm6.', 'm7.'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+
+    'year' => 'mbula :count',
+    'y' => 'mbula :count',
+    'a_year' => 'mbula :count',
+
+    'month' => 'sánzá :count',
+    'm' => 'sánzá :count',
+    'a_month' => 'sánzá :count',
+
+    'week' => 'mpɔ́sɔ :count',
+    'w' => 'mpɔ́sɔ :count',
+    'a_week' => 'mpɔ́sɔ :count',
+
+    'day' => 'mokɔlɔ :count',
+    'd' => 'mokɔlɔ :count',
+    'a_day' => 'mokɔlɔ :count',
+
+    'hour' => 'ngonga :count',
+    'h' => 'ngonga :count',
+    'a_hour' => 'ngonga :count',
+
+    'minute' => 'miniti :count',
+    'min' => 'miniti :count',
+    'a_minute' => 'miniti :count',
+
+    'second' => 'segɔnde :count',
+    's' => 'segɔnde :count',
+    'a_second' => 'segɔnde :count',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ln_AO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ln_AO.php
new file mode 100644
index 0000000..e244096
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ln_AO.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ln.php', [
+    'weekdays' => ['eyenga', 'mokɔlɔ mwa yambo', 'mokɔlɔ mwa míbalé', 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', 'mpɔ́sɔ'],
+    'weekdays_short' => ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'],
+    'weekdays_min' => ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'],
+    'meridiem' => ['ntɔ́ngɔ́', 'mpókwa'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ln_CD.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ln_CD.php
new file mode 100644
index 0000000..13635fc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ln_CD.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ubuntu René Manassé GALEKWA renemanasse@gmail.com
+ */
+return require __DIR__.'/ln.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ln_CF.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ln_CF.php
new file mode 100644
index 0000000..e244096
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ln_CF.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ln.php', [
+    'weekdays' => ['eyenga', 'mokɔlɔ mwa yambo', 'mokɔlɔ mwa míbalé', 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', 'mpɔ́sɔ'],
+    'weekdays_short' => ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'],
+    'weekdays_min' => ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'],
+    'meridiem' => ['ntɔ́ngɔ́', 'mpókwa'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ln_CG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ln_CG.php
new file mode 100644
index 0000000..e244096
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ln_CG.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ln.php', [
+    'weekdays' => ['eyenga', 'mokɔlɔ mwa yambo', 'mokɔlɔ mwa míbalé', 'mokɔlɔ mwa mísáto', 'mokɔlɔ ya mínéi', 'mokɔlɔ ya mítáno', 'mpɔ́sɔ'],
+    'weekdays_short' => ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'],
+    'weekdays_min' => ['eye', 'ybo', 'mbl', 'mst', 'min', 'mtn', 'mps'],
+    'meridiem' => ['ntɔ́ngɔ́', 'mpókwa'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lo.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lo.php
new file mode 100644
index 0000000..48715f5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lo.php
@@ -0,0 +1,62 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - François B
+ * - ryanhart2
+ */
+return [
+    'year' => ':count ປີ',
+    'y' => ':count ປີ',
+    'month' => ':count ເດືອນ',
+    'm' => ':count ດ. ',
+    'week' => ':count ອາທິດ',
+    'w' => ':count ອທ. ',
+    'day' => ':count ມື້',
+    'd' => ':count ມື້',
+    'hour' => ':count ຊົ່ວໂມງ',
+    'h' => ':count ຊມ. ',
+    'minute' => ':count ນາທີ',
+    'min' => ':count ນທ. ',
+    'second' => '{1}ບໍ່ເທົ່າໃດວິນາທີ|]1,Inf[:count ວິນາທີ',
+    's' => ':count ວິ. ',
+    'ago' => ':timeຜ່ານມາ',
+    'from_now' => 'ອີກ :time',
+    'diff_now' => 'ຕອນນີ້',
+    'diff_today' => 'ມື້ນີ້ເວລາ',
+    'diff_yesterday' => 'ມື້ວານນີ້ເວລາ',
+    'diff_tomorrow' => 'ມື້ອື່ນເວລາ',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'ວັນdddd D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[ມື້ນີ້ເວລາ] LT',
+        'nextDay' => '[ມື້ອື່ນເວລາ] LT',
+        'nextWeek' => '[ວັນ]dddd[ໜ້າເວລາ] LT',
+        'lastDay' => '[ມື້ວານນີ້ເວລາ] LT',
+        'lastWeek' => '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => 'ທີ່:number',
+    'meridiem' => ['ຕອນເຊົ້າ', 'ຕອນແລງ'],
+    'months' => ['ມັງກອນ', 'ກຸມພາ', 'ມີນາ', 'ເມສາ', 'ພຶດສະພາ', 'ມິຖຸນາ', 'ກໍລະກົດ', 'ສິງຫາ', 'ກັນຍາ', 'ຕຸລາ', 'ພະຈິກ', 'ທັນວາ'],
+    'months_short' => ['ມັງກອນ', 'ກຸມພາ', 'ມີນາ', 'ເມສາ', 'ພຶດສະພາ', 'ມິຖຸນາ', 'ກໍລະກົດ', 'ສິງຫາ', 'ກັນຍາ', 'ຕຸລາ', 'ພະຈິກ', 'ທັນວາ'],
+    'weekdays' => ['ອາທິດ', 'ຈັນ', 'ອັງຄານ', 'ພຸດ', 'ພະຫັດ', 'ສຸກ', 'ເສົາ'],
+    'weekdays_short' => ['ທິດ', 'ຈັນ', 'ອັງຄານ', 'ພຸດ', 'ພະຫັດ', 'ສຸກ', 'ເສົາ'],
+    'weekdays_min' => ['ທ', 'ຈ', 'ອຄ', 'ພ', 'ພຫ', 'ສກ', 'ສ'],
+    'list' => [', ', 'ແລະ '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lo_LA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lo_LA.php
new file mode 100644
index 0000000..c0a1d6b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lo_LA.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/lo.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lrc.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lrc.php
new file mode 100644
index 0000000..10661bb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lrc.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+
+    'minute' => ':count هنر', // less reliable
+    'min' => ':count هنر', // less reliable
+    'a_minute' => ':count هنر', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lrc_IQ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lrc_IQ.php
new file mode 100644
index 0000000..449d863
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lrc_IQ.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/lrc.php', [
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lt.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lt.php
new file mode 100644
index 0000000..7d1b6f7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lt.php
@@ -0,0 +1,135 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Philippe Vaucher
+ * - Tsutomu Kuroda
+ * - tjku
+ * - valdas406
+ * - Justas Palumickas
+ * - Max Melentiev
+ * - Andrius Janauskas
+ * - Juanito Fatas
+ * - Akira Matsuda
+ * - Christopher Dell
+ * - Enrique Vidal
+ * - Simone Carletti
+ * - Aaron Patterson
+ * - Nicolás Hock Isaza
+ * - Laurynas Butkus
+ * - Sven Fuchs
+ * - Dominykas Tijūnaitis
+ * - Justinas Bolys
+ * - Ričardas
+ * - Kirill Chalkin
+ * - Rolandas
+ * - Justinas (Gamesh)
+ */
+return [
+    'year' => ':count metai|:count metai|:count metų',
+    'y' => ':count m.',
+    'month' => ':count mėnuo|:count mėnesiai|:count mėnesį',
+    'm' => ':count mėn.',
+    'week' => ':count savaitė|:count savaitės|:count savaitę',
+    'w' => ':count sav.',
+    'day' => ':count diena|:count dienos|:count dienų',
+    'd' => ':count d.',
+    'hour' => ':count valanda|:count valandos|:count valandų',
+    'h' => ':count val.',
+    'minute' => ':count minutė|:count minutės|:count minutę',
+    'min' => ':count min.',
+    'second' => ':count sekundė|:count sekundės|:count sekundžių',
+    's' => ':count sek.',
+
+    'year_ago' => ':count metus|:count metus|:count metų',
+    'month_ago' => ':count mėnesį|:count mėnesius|:count mėnesių',
+    'week_ago' => ':count savaitę|:count savaites|:count savaičių',
+    'day_ago' => ':count dieną|:count dienas|:count dienų',
+    'hour_ago' => ':count valandą|:count valandas|:count valandų',
+    'minute_ago' => ':count minutę|:count minutes|:count minučių',
+    'second_ago' => ':count sekundę|:count sekundes|:count sekundžių',
+
+    'year_from_now' => ':count metų',
+    'month_from_now' => ':count mėnesio|:count mėnesių|:count mėnesių',
+    'week_from_now' => ':count savaitės|:count savaičių|:count savaičių',
+    'day_from_now' => ':count dienos|:count dienų|:count dienų',
+    'hour_from_now' => ':count valandos|:count valandų|:count valandų',
+    'minute_from_now' => ':count minutės|:count minučių|:count minučių',
+    'second_from_now' => ':count sekundės|:count sekundžių|:count sekundžių',
+
+    'year_after' => ':count metų',
+    'month_after' => ':count mėnesio|:count mėnesių|:count mėnesių',
+    'week_after' => ':count savaitės|:count savaičių|:count savaičių',
+    'day_after' => ':count dienos|:count dienų|:count dienų',
+    'hour_after' => ':count valandos|:count valandų|:count valandų',
+    'minute_after' => ':count minutės|:count minučių|:count minučių',
+    'second_after' => ':count sekundės|:count sekundžių|:count sekundžių',
+
+    'ago' => 'prieš :time',
+    'from_now' => ':time nuo dabar',
+    'after' => 'po :time',
+    'before' => 'už :time',
+
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+
+    'diff_now' => 'ką tik',
+    'diff_today' => 'Šiandien',
+    'diff_yesterday' => 'vakar',
+    'diff_yesterday_regexp' => 'Vakar',
+    'diff_tomorrow' => 'rytoj',
+    'diff_tomorrow_regexp' => 'Rytoj',
+    'diff_before_yesterday' => 'užvakar',
+    'diff_after_tomorrow' => 'poryt',
+
+    'period_recurrences' => 'kartą|:count kartų',
+    'period_interval' => 'kiekvieną :interval',
+    'period_start_date' => 'nuo :date',
+    'period_end_date' => 'iki :date',
+
+    'months' => ['sausio', 'vasario', 'kovo', 'balandžio', 'gegužės', 'birželio', 'liepos', 'rugpjūčio', 'rugsėjo', 'spalio', 'lapkričio', 'gruodžio'],
+    'months_standalone' => ['sausis', 'vasaris', 'kovas', 'balandis', 'gegužė', 'birželis', 'liepa', 'rugpjūtis', 'rugsėjis', 'spalis', 'lapkritis', 'gruodis'],
+    'months_regexp' => '/(L{2,4}|D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?)/',
+    'months_short' => ['sau', 'vas', 'kov', 'bal', 'geg', 'bir', 'lie', 'rgp', 'rgs', 'spa', 'lap', 'gru'],
+    'weekdays' => ['sekmadienį', 'pirmadienį', 'antradienį', 'trečiadienį', 'ketvirtadienį', 'penktadienį', 'šeštadienį'],
+    'weekdays_standalone' => ['sekmadienis', 'pirmadienis', 'antradienis', 'trečiadienis', 'ketvirtadienis', 'penktadienis', 'šeštadienis'],
+    'weekdays_short' => ['sek', 'pir', 'ant', 'tre', 'ket', 'pen', 'šeš'],
+    'weekdays_min' => ['se', 'pi', 'an', 'tr', 'ke', 'pe', 'še'],
+    'list' => [', ', ' ir '],
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'YYYY-MM-DD',
+        'LL' => 'MMMM DD, YYYY',
+        'LLL' => 'DD MMM HH:mm',
+        'LLLL' => 'MMMM DD, YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Šiandien] LT',
+        'nextDay' => '[Rytoj] LT',
+        'nextWeek' => 'dddd LT',
+        'lastDay' => '[Vakar] LT',
+        'lastWeek' => '[Paskutinį] dddd LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number) {
+        switch ($number) {
+            case 0:
+                return '0-is';
+            case 3:
+                return '3-ias';
+            default:
+                return "$number-as";
+        }
+    },
+    'meridiem' => ['priešpiet', 'popiet'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lt_LT.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lt_LT.php
new file mode 100644
index 0000000..c3087f4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lt_LT.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/lt.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lu.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lu.php
new file mode 100644
index 0000000..8dab541
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lu.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['Dinda', 'Dilolo'],
+    'weekdays' => ['Lumingu', 'Nkodya', 'Ndàayà', 'Ndangù', 'Njòwa', 'Ngòvya', 'Lubingu'],
+    'weekdays_short' => ['Lum', 'Nko', 'Ndy', 'Ndg', 'Njw', 'Ngv', 'Lub'],
+    'weekdays_min' => ['Lum', 'Nko', 'Ndy', 'Ndg', 'Njw', 'Ngv', 'Lub'],
+    'months' => ['Ciongo', 'Lùishi', 'Lusòlo', 'Mùuyà', 'Lumùngùlù', 'Lufuimi', 'Kabàlàshìpù', 'Lùshìkà', 'Lutongolo', 'Lungùdi', 'Kaswèkèsè', 'Ciswà'],
+    'months_short' => ['Cio', 'Lui', 'Lus', 'Muu', 'Lum', 'Luf', 'Kab', 'Lush', 'Lut', 'Lun', 'Kas', 'Cis'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/luo.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/luo.php
new file mode 100644
index 0000000..201ca96
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/luo.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['OD', 'OT'],
+    'weekdays' => ['Jumapil', 'Wuok Tich', 'Tich Ariyo', 'Tich Adek', 'Tich Ang’wen', 'Tich Abich', 'Ngeso'],
+    'weekdays_short' => ['JMP', 'WUT', 'TAR', 'TAD', 'TAN', 'TAB', 'NGS'],
+    'weekdays_min' => ['JMP', 'WUT', 'TAR', 'TAD', 'TAN', 'TAB', 'NGS'],
+    'months' => ['Dwe mar Achiel', 'Dwe mar Ariyo', 'Dwe mar Adek', 'Dwe mar Ang’wen', 'Dwe mar Abich', 'Dwe mar Auchiel', 'Dwe mar Abiriyo', 'Dwe mar Aboro', 'Dwe mar Ochiko', 'Dwe mar Apar', 'Dwe mar gi achiel', 'Dwe mar Apar gi ariyo'],
+    'months_short' => ['DAC', 'DAR', 'DAD', 'DAN', 'DAH', 'DAU', 'DAO', 'DAB', 'DOC', 'DAP', 'DGI', 'DAG'],
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+
+    'year' => 'higni :count',
+    'y' => 'higni :count',
+    'a_year' => ':higni :count',
+
+    'month' => 'dweche :count',
+    'm' => 'dweche :count',
+    'a_month' => 'dweche :count',
+
+    'week' => 'jumbe :count',
+    'w' => 'jumbe :count',
+    'a_week' => 'jumbe :count',
+
+    'day' => 'ndalo :count',
+    'd' => 'ndalo :count',
+    'a_day' => 'ndalo :count',
+
+    'hour' => 'seche :count',
+    'h' => 'seche :count',
+    'a_hour' => 'seche :count',
+
+    'minute' => 'dakika :count',
+    'min' => 'dakika :count',
+    'a_minute' => 'dakika :count',
+
+    'second' => 'nus dakika :count',
+    's' => 'nus dakika :count',
+    'a_second' => 'nus dakika :count',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/luy.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/luy.php
new file mode 100644
index 0000000..5219125
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/luy.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'weekdays' => ['Jumapiri', 'Jumatatu', 'Jumanne', 'Jumatano', 'Murwa wa Kanne', 'Murwa wa Katano', 'Jumamosi'],
+    'weekdays_short' => ['J2', 'J3', 'J4', 'J5', 'Al', 'Ij', 'J1'],
+    'weekdays_min' => ['J2', 'J3', 'J4', 'J5', 'Al', 'Ij', 'J1'],
+    'months' => ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'],
+    'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'],
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+
+    // Too unreliable
+    /*
+    'year' => ':count liliino', // less reliable
+    'y' => ':count liliino', // less reliable
+    'a_year' => ':count liliino', // less reliable
+
+    'month' => ':count kumwesi', // less reliable
+    'm' => ':count kumwesi', // less reliable
+    'a_month' => ':count kumwesi', // less reliable
+
+    'week' => ':count olutambi', // less reliable
+    'w' => ':count olutambi', // less reliable
+    'a_week' => ':count olutambi', // less reliable
+
+    'day' => ':count luno', // less reliable
+    'd' => ':count luno', // less reliable
+    'a_day' => ':count luno', // less reliable
+
+    'hour' => ':count ekengele', // less reliable
+    'h' => ':count ekengele', // less reliable
+    'a_hour' => ':count ekengele', // less reliable
+
+    'minute' => ':count omundu', // less reliable
+    'min' => ':count omundu', // less reliable
+    'a_minute' => ':count omundu', // less reliable
+
+    'second' => ':count liliino', // less reliable
+    's' => ':count liliino', // less reliable
+    'a_second' => ':count liliino', // less reliable
+    */
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lv.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lv.php
new file mode 100644
index 0000000..724b58d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lv.php
@@ -0,0 +1,173 @@
+<?php
+
+use Carbon\CarbonInterface;
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Philippe Vaucher
+ * - pirminis
+ * - Tsutomu Kuroda
+ * - tjku
+ * - Andris Zāģeris
+ * - Max Melentiev
+ * - Edgars Beigarts
+ * - Juanito Fatas
+ * - Vitauts Stočka
+ * - Akira Matsuda
+ * - Christopher Dell
+ * - Enrique Vidal
+ * - Simone Carletti
+ * - Aaron Patterson
+ * - Kaspars Bankovskis
+ * - Nicolás Hock Isaza
+ * - Viesturs Kavacs (Kavacky)
+ * - zakse
+ * - Janis Eglitis (janiseglitis)
+ * - Guntars
+ * - Juris Sudmalis
+ */
+$daysOfWeek = ['svētdiena', 'pirmdiena', 'otrdiena', 'trešdiena', 'ceturtdiena', 'piektdiena', 'sestdiena'];
+$daysOfWeekLocativum = ['svētdien', 'pirmdien', 'otrdien', 'trešdien', 'ceturtdien', 'piektdien', 'sestdien'];
+
+$transformDiff = function ($input) {
+    return strtr($input, [
+        // Nominative => "pirms/pēc" Dative
+        'gads' => 'gada',
+        'gadi' => 'gadiem',
+        'gadu' => 'gadiem',
+        'mēnesis' => 'mēneša',
+        'mēneši' => 'mēnešiem',
+        'mēnešu' => 'mēnešiem',
+        'nedēļa' => 'nedēļas',
+        'nedēļas' => 'nedēļām',
+        'nedēļu' => 'nedēļām',
+        'diena' => 'dienas',
+        'dienas' => 'dienām',
+        'dienu' => 'dienām',
+        'stunda' => 'stundas',
+        'stundas' => 'stundām',
+        'stundu' => 'stundām',
+        'minūte' => 'minūtes',
+        'minūtes' => 'minūtēm',
+        'minūšu' => 'minūtēm',
+        'sekunde' => 'sekundes',
+        'sekundes' => 'sekundēm',
+        'sekunžu' => 'sekundēm',
+    ]);
+};
+
+return [
+    'ago' => function ($time) use ($transformDiff) {
+        return 'pirms '.$transformDiff($time);
+    },
+    'from_now' => function ($time) use ($transformDiff) {
+        return 'pēc '.$transformDiff($time);
+    },
+
+    'year' => '0 gadu|:count gads|:count gadi',
+    'y' => ':count g.',
+    'a_year' => '{1}gads|0 gadu|:count gads|:count gadi',
+    'month' => '0 mēnešu|:count mēnesis|:count mēneši',
+    'm' => ':count mēn.',
+    'a_month' => '{1}mēnesis|0 mēnešu|:count mēnesis|:count mēneši',
+    'week' => '0 nedēļu|:count nedēļa|:count nedēļas',
+    'w' => ':count ned.',
+    'a_week' => '{1}nedēļa|0 nedēļu|:count nedēļa|:count nedēļas',
+    'day' => '0 dienu|:count diena|:count dienas',
+    'd' => ':count d.',
+    'a_day' => '{1}diena|0 dienu|:count diena|:count dienas',
+    'hour' => '0 stundu|:count stunda|:count stundas',
+    'h' => ':count st.',
+    'a_hour' => '{1}stunda|0 stundu|:count stunda|:count stundas',
+    'minute' => '0 minūšu|:count minūte|:count minūtes',
+    'min' => ':count min.',
+    'a_minute' => '{1}minūte|0 minūšu|:count minūte|:count minūtes',
+    'second' => '0 sekunžu|:count sekunde|:count sekundes',
+    's' => ':count sek.',
+    'a_second' => '{1}sekunde|0 sekunžu|:count sekunde|:count sekundes',
+
+    'after' => ':time vēlāk',
+    'year_after' => '0 gadus|:count gadu|:count gadus',
+    'a_year_after' => '{1}gadu|0 gadus|:count gadu|:count gadus',
+    'month_after' => '0 mēnešus|:count mēnesi|:count mēnešus',
+    'a_month_after' => '{1}mēnesi|0 mēnešus|:count mēnesi|:count mēnešus',
+    'week_after' => '0 nedēļas|:count nedēļu|:count nedēļas',
+    'a_week_after' => '{1}nedēļu|0 nedēļas|:count nedēļu|:count nedēļas',
+    'day_after' => '0 dienas|:count dienu|:count dienas',
+    'a_day_after' => '{1}dienu|0 dienas|:count dienu|:count dienas',
+    'hour_after' => '0 stundas|:count stundu|:count stundas',
+    'a_hour_after' => '{1}stundu|0 stundas|:count stundu|:count stundas',
+    'minute_after' => '0 minūtes|:count minūti|:count minūtes',
+    'a_minute_after' => '{1}minūti|0 minūtes|:count minūti|:count minūtes',
+    'second_after' => '0 sekundes|:count sekundi|:count sekundes',
+    'a_second_after' => '{1}sekundi|0 sekundes|:count sekundi|:count sekundes',
+
+    'before' => ':time agrāk',
+    'year_before' => '0 gadus|:count gadu|:count gadus',
+    'a_year_before' => '{1}gadu|0 gadus|:count gadu|:count gadus',
+    'month_before' => '0 mēnešus|:count mēnesi|:count mēnešus',
+    'a_month_before' => '{1}mēnesi|0 mēnešus|:count mēnesi|:count mēnešus',
+    'week_before' => '0 nedēļas|:count nedēļu|:count nedēļas',
+    'a_week_before' => '{1}nedēļu|0 nedēļas|:count nedēļu|:count nedēļas',
+    'day_before' => '0 dienas|:count dienu|:count dienas',
+    'a_day_before' => '{1}dienu|0 dienas|:count dienu|:count dienas',
+    'hour_before' => '0 stundas|:count stundu|:count stundas',
+    'a_hour_before' => '{1}stundu|0 stundas|:count stundu|:count stundas',
+    'minute_before' => '0 minūtes|:count minūti|:count minūtes',
+    'a_minute_before' => '{1}minūti|0 minūtes|:count minūti|:count minūtes',
+    'second_before' => '0 sekundes|:count sekundi|:count sekundes',
+    'a_second_before' => '{1}sekundi|0 sekundes|:count sekundi|:count sekundes',
+
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' un '],
+
+    'diff_now' => 'tagad',
+    'diff_today' => 'šodien',
+    'diff_yesterday' => 'vakar',
+    'diff_before_yesterday' => 'aizvakar',
+    'diff_tomorrow' => 'rīt',
+    'diff_after_tomorrow' => 'parīt',
+
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY.',
+        'LL' => 'YYYY. [gada] D. MMMM',
+        'LLL' => 'DD.MM.YYYY., HH:mm',
+        'LLLL' => 'YYYY. [gada] D. MMMM, HH:mm',
+    ],
+
+    'calendar' => [
+        'sameDay' => '[šodien] [plkst.] LT',
+        'nextDay' => '[rīt] [plkst.] LT',
+        'nextWeek' => function (CarbonInterface $current, CarbonInterface $other) use ($daysOfWeekLocativum) {
+            if ($current->week !== $other->week) {
+                return '[nākošo] ['.$daysOfWeekLocativum[$current->dayOfWeek].'] [plkst.] LT';
+            }
+
+            return '['.$daysOfWeekLocativum[$current->dayOfWeek].'] [plkst.] LT';
+        },
+        'lastDay' => '[vakar] [plkst.] LT',
+        'lastWeek' => function (CarbonInterface $current) use ($daysOfWeekLocativum) {
+            return '[pagājušo] ['.$daysOfWeekLocativum[$current->dayOfWeek].'] [plkst.] LT';
+        },
+        'sameElse' => 'L',
+    ],
+
+    'weekdays' => $daysOfWeek,
+    'weekdays_short' => ['Sv.', 'P.', 'O.', 'T.', 'C.', 'Pk.', 'S.'],
+    'weekdays_min' => ['Sv.', 'P.', 'O.', 'T.', 'C.', 'Pk.', 'S.'],
+    'months' => ['janvārī', 'februārī', 'martā', 'aprīlī', 'maijā', 'jūnijā', 'jūlijā', 'augustā', 'septembrī', 'oktobrī', 'novembrī', 'decembrī'],
+    'months_short' => ['Janv', 'Feb', 'Mar', 'Apr', 'Mai', 'Jūn', 'Jūl', 'Aug', 'Sept', 'Okt', 'Nov', 'Dec'],
+    'meridiem' => ['priekšpusdiena', 'pēcpusdiena'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lv_LV.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lv_LV.php
new file mode 100644
index 0000000..46c0f43
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lv_LV.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/lv.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lzh.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lzh.php
new file mode 100644
index 0000000..1180c6b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lzh.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/lzh_TW.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lzh_TW.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lzh_TW.php
new file mode 100644
index 0000000..3b1493e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/lzh_TW.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'OY[年]MMMMOD[日]',
+    ],
+    'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
+    'months_short' => [' 一 ', ' 二 ', ' 三 ', ' 四 ', ' 五 ', ' 六 ', ' 七 ', ' 八 ', ' 九 ', ' 十 ', '十一', '十二'],
+    'weekdays' => ['週日', '週一', '週二', '週三', '週四', '週五', '週六'],
+    'weekdays_short' => ['日', '一', '二', '三', '四', '五', '六'],
+    'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'],
+    'day_of_first_week_of_year' => 1,
+    'alt_numbers' => ['〇', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二', '十三', '十四', '十五', '十六', '十七', '十八', '十九', '廿', '廿一', '廿二', '廿三', '廿四', '廿五', '廿六', '廿七', '廿八', '廿九', '卅', '卅一'],
+    'meridiem' => ['朝', '暮'],
+
+    'year' => ':count 夏', // less reliable
+    'y' => ':count 夏', // less reliable
+    'a_year' => ':count 夏', // less reliable
+
+    'month' => ':count 月', // less reliable
+    'm' => ':count 月', // less reliable
+    'a_month' => ':count 月', // less reliable
+
+    'hour' => ':count 氧', // less reliable
+    'h' => ':count 氧', // less reliable
+    'a_hour' => ':count 氧', // less reliable
+
+    'minute' => ':count 點', // less reliable
+    'min' => ':count 點', // less reliable
+    'a_minute' => ':count 點', // less reliable
+
+    'second' => ':count 楚', // less reliable
+    's' => ':count 楚', // less reliable
+    'a_second' => ':count 楚', // less reliable
+
+    'week' => ':count 星期',
+    'w' => ':count 星期',
+    'a_week' => ':count 星期',
+
+    'day' => ':count 日(曆法)',
+    'd' => ':count 日(曆法)',
+    'a_day' => ':count 日(曆法)',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mag.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mag.php
new file mode 100644
index 0000000..7532436
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mag.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/mag_IN.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mag_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mag_IN.php
new file mode 100644
index 0000000..193f67a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mag_IN.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - bhashaghar@googlegroups.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'D/M/YY',
+    ],
+    'months' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'],
+    'months_short' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'],
+    'weekdays' => ['एतवार', 'सोमार', 'मंगर', 'बुध', 'बिफे', 'सूक', 'सनिचर'],
+    'weekdays_short' => ['एतवार', 'सोमार', 'मंगर', 'बुध', 'बिफे', 'सूक', 'सनिचर'],
+    'weekdays_min' => ['एतवार', 'सोमार', 'मंगर', 'बुध', 'बिफे', 'सूक', 'सनिचर'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['पूर्वाह्न', 'अपराह्न'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mai.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mai.php
new file mode 100644
index 0000000..792b973
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mai.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/mai_IN.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mai_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mai_IN.php
new file mode 100644
index 0000000..03049d4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mai_IN.php
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Maithili Computing Research Center, Pune, India    rajeshkajha@yahoo.com,akhilesh.k@samusng.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'D/M/YY',
+    ],
+    'months' => ['बैसाख', 'जेठ', 'अषाढ़', 'सावोन', 'भादो', 'आसिन', 'कातिक', 'अगहन', 'पूस', 'माघ', 'फागुन', 'चैति'],
+    'months_short' => ['बैसाख', 'जेठ', 'अषाढ़', 'सावोन', 'भादो', 'आसिन', 'कातिक', 'अगहन', 'पूस', 'माघ', 'फागुन', 'चैति'],
+    'weekdays' => ['रविदिन', 'सोमदिन', 'मंगलदिन', 'बुधदिन', 'बृहस्पतीदिन', 'शुक्रदिन', 'शनीदिन'],
+    'weekdays_short' => ['रवि', 'सोम', 'मंगल', 'बुध', 'बृहस्पती', 'शुक्र', 'शनी'],
+    'weekdays_min' => ['रवि', 'सोम', 'मंगल', 'बुध', 'बृहस्पती', 'शुक्र', 'शनी'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['पूर्वाह्न', 'अपराह्न'],
+
+    'year' => ':count ऋतु', // less reliable
+    'y' => ':count ऋतु', // less reliable
+    'a_year' => ':count ऋतु', // less reliable
+
+    'month' => ':count महिना',
+    'm' => ':count महिना',
+    'a_month' => ':count महिना',
+
+    'week' => ':count श्रेणी:क्यालेन्डर', // less reliable
+    'w' => ':count श्रेणी:क्यालेन्डर', // less reliable
+    'a_week' => ':count श्रेणी:क्यालेन्डर', // less reliable
+
+    'day' => ':count दिन',
+    'd' => ':count दिन',
+    'a_day' => ':count दिन',
+
+    'hour' => ':count घण्टा',
+    'h' => ':count घण्टा',
+    'a_hour' => ':count घण्टा',
+
+    'minute' => ':count समय', // less reliable
+    'min' => ':count समय', // less reliable
+    'a_minute' => ':count समय', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mas.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mas.php
new file mode 100644
index 0000000..723ae67
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mas.php
@@ -0,0 +1,50 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['Ɛnkakɛnyá', 'Ɛndámâ'],
+    'weekdays' => ['Jumapílí', 'Jumatátu', 'Jumane', 'Jumatánɔ', 'Alaámisi', 'Jumáa', 'Jumamósi'],
+    'weekdays_short' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'],
+    'weekdays_min' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'],
+    'months' => ['Oladalʉ́', 'Arát', 'Ɔɛnɨ́ɔɨŋɔk', 'Olodoyíóríê inkókúâ', 'Oloilépūnyīē inkókúâ', 'Kújúɔrɔk', 'Mórusásin', 'Ɔlɔ́ɨ́bɔ́rárɛ', 'Kúshîn', 'Olgísan', 'Pʉshʉ́ka', 'Ntʉ́ŋʉ́s'],
+    'months_short' => ['Dal', 'Ará', 'Ɔɛn', 'Doy', 'Lép', 'Rok', 'Sás', 'Bɔ́r', 'Kús', 'Gís', 'Shʉ́', 'Ntʉ́'],
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+
+    'year' => ':count olameyu', // less reliable
+    'y' => ':count olameyu', // less reliable
+    'a_year' => ':count olameyu', // less reliable
+
+    'week' => ':count engolongeare orwiki', // less reliable
+    'w' => ':count engolongeare orwiki', // less reliable
+    'a_week' => ':count engolongeare orwiki', // less reliable
+
+    'hour' => ':count esahabu', // less reliable
+    'h' => ':count esahabu', // less reliable
+    'a_hour' => ':count esahabu', // less reliable
+
+    'second' => ':count are', // less reliable
+    's' => ':count are', // less reliable
+    'a_second' => ':count are', // less reliable
+
+    'month' => ':count olapa',
+    'm' => ':count olapa',
+    'a_month' => ':count olapa',
+
+    'day' => ':count enkolongʼ',
+    'd' => ':count enkolongʼ',
+    'a_day' => ':count enkolongʼ',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mas_TZ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mas_TZ.php
new file mode 100644
index 0000000..aa382b7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mas_TZ.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/mas.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mer.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mer.php
new file mode 100644
index 0000000..cb7ba8d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mer.php
@@ -0,0 +1,42 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['RŨ', 'ŨG'],
+    'weekdays' => ['Kiumia', 'Muramuko', 'Wairi', 'Wethatu', 'Wena', 'Wetano', 'Jumamosi'],
+    'weekdays_short' => ['KIU', 'MRA', 'WAI', 'WET', 'WEN', 'WTN', 'JUM'],
+    'weekdays_min' => ['KIU', 'MRA', 'WAI', 'WET', 'WEN', 'WTN', 'JUM'],
+    'months' => ['Januarĩ', 'Feburuarĩ', 'Machi', 'Ĩpurũ', 'Mĩĩ', 'Njuni', 'Njuraĩ', 'Agasti', 'Septemba', 'Oktũba', 'Novemba', 'Dicemba'],
+    'months_short' => ['JAN', 'FEB', 'MAC', 'ĨPU', 'MĨĨ', 'NJU', 'NJR', 'AGA', 'SPT', 'OKT', 'NOV', 'DEC'],
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+
+    'year' => ':count murume', // less reliable
+    'y' => ':count murume', // less reliable
+    'a_year' => ':count murume', // less reliable
+
+    'month' => ':count muchaara', // less reliable
+    'm' => ':count muchaara', // less reliable
+    'a_month' => ':count muchaara', // less reliable
+
+    'minute' => ':count monto', // less reliable
+    'min' => ':count monto', // less reliable
+    'a_minute' => ':count monto', // less reliable
+
+    'second' => ':count gikeno', // less reliable
+    's' => ':count gikeno', // less reliable
+    'a_second' => ':count gikeno', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mfe.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mfe.php
new file mode 100644
index 0000000..4d6e6b6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mfe.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/mfe_MU.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mfe_MU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mfe_MU.php
new file mode 100644
index 0000000..2d27b45
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mfe_MU.php
@@ -0,0 +1,53 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Samsung Electronics Co., Ltd.    akhilesh.k@samsung.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YY',
+    ],
+    'months' => ['zanvie', 'fevriye', 'mars', 'avril', 'me', 'zin', 'zilye', 'out', 'septam', 'oktob', 'novam', 'desam'],
+    'months_short' => ['zan', 'fev', 'mar', 'avr', 'me', 'zin', 'zil', 'out', 'sep', 'okt', 'nov', 'des'],
+    'weekdays' => ['dimans', 'lindi', 'mardi', 'merkredi', 'zedi', 'vandredi', 'samdi'],
+    'weekdays_short' => ['dim', 'lin', 'mar', 'mer', 'ze', 'van', 'sam'],
+    'weekdays_min' => ['dim', 'lin', 'mar', 'mer', 'ze', 'van', 'sam'],
+
+    'year' => ':count banané',
+    'y' => ':count banané',
+    'a_year' => ':count banané',
+
+    'month' => ':count mwa',
+    'm' => ':count mwa',
+    'a_month' => ':count mwa',
+
+    'week' => ':count sémenn',
+    'w' => ':count sémenn',
+    'a_week' => ':count sémenn',
+
+    'day' => ':count zour',
+    'd' => ':count zour',
+    'a_day' => ':count zour',
+
+    'hour' => ':count -er-tan',
+    'h' => ':count -er-tan',
+    'a_hour' => ':count -er-tan',
+
+    'minute' => ':count minitt',
+    'min' => ':count minitt',
+    'a_minute' => ':count minitt',
+
+    'second' => ':count déziém',
+    's' => ':count déziém',
+    'a_second' => ':count déziém',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mg.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mg.php
new file mode 100644
index 0000000..40bc2a8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mg.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/mg_MG.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mg_MG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mg_MG.php
new file mode 100644
index 0000000..6a14535
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mg_MG.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - The Debian Project modified by GNU//Linux Malagasy Rado Ramarotafika,Do-Risika RAFIEFERANTSIARONJY rado@linuxmg.org,dourix@free.fr
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD.MM.YYYY',
+    ],
+    'months' => ['Janoary', 'Febroary', 'Martsa', 'Aprily', 'Mey', 'Jona', 'Jolay', 'Aogositra', 'Septambra', 'Oktobra', 'Novambra', 'Desambra'],
+    'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'Mey', 'Jon', 'Jol', 'Aog', 'Sep', 'Okt', 'Nov', 'Des'],
+    'weekdays' => ['alahady', 'alatsinainy', 'talata', 'alarobia', 'alakamisy', 'zoma', 'sabotsy'],
+    'weekdays_short' => ['lhd', 'lts', 'tlt', 'lrb', 'lkm', 'zom', 'sab'],
+    'weekdays_min' => ['lhd', 'lts', 'tlt', 'lrb', 'lkm', 'zom', 'sab'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+
+    'minute' => ':count minitra', // less reliable
+    'min' => ':count minitra', // less reliable
+    'a_minute' => ':count minitra', // less reliable
+
+    'year' => ':count taona',
+    'y' => ':count taona',
+    'a_year' => ':count taona',
+
+    'month' => ':count volana',
+    'm' => ':count volana',
+    'a_month' => ':count volana',
+
+    'week' => ':count herinandro',
+    'w' => ':count herinandro',
+    'a_week' => ':count herinandro',
+
+    'day' => ':count andro',
+    'd' => ':count andro',
+    'a_day' => ':count andro',
+
+    'hour' => ':count ora',
+    'h' => ':count ora',
+    'a_hour' => ':count ora',
+
+    'second' => ':count segondra',
+    's' => ':count segondra',
+    'a_second' => ':count segondra',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mgh.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mgh.php
new file mode 100644
index 0000000..65798a8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mgh.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['wichishu', 'mchochil’l'],
+    'weekdays' => ['Sabato', 'Jumatatu', 'Jumanne', 'Jumatano', 'Arahamisi', 'Ijumaa', 'Jumamosi'],
+    'weekdays_short' => ['Sab', 'Jtt', 'Jnn', 'Jtn', 'Ara', 'Iju', 'Jmo'],
+    'weekdays_min' => ['Sab', 'Jtt', 'Jnn', 'Jtn', 'Ara', 'Iju', 'Jmo'],
+    'months' => ['Mweri wo kwanza', 'Mweri wo unayeli', 'Mweri wo uneraru', 'Mweri wo unecheshe', 'Mweri wo unethanu', 'Mweri wo thanu na mocha', 'Mweri wo saba', 'Mweri wo nane', 'Mweri wo tisa', 'Mweri wo kumi', 'Mweri wo kumi na moja', 'Mweri wo kumi na yel’li'],
+    'months_short' => ['Kwa', 'Una', 'Rar', 'Che', 'Tha', 'Moc', 'Sab', 'Nan', 'Tis', 'Kum', 'Moj', 'Yel'],
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mgo.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mgo.php
new file mode 100644
index 0000000..a5a0754
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mgo.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'weekdays' => ['Aneg 1', 'Aneg 2', 'Aneg 3', 'Aneg 4', 'Aneg 5', 'Aneg 6', 'Aneg 7'],
+    'weekdays_short' => ['Aneg 1', 'Aneg 2', 'Aneg 3', 'Aneg 4', 'Aneg 5', 'Aneg 6', 'Aneg 7'],
+    'weekdays_min' => ['1', '2', '3', '4', '5', '6', '7'],
+    'months' => ['iməg mbegtug', 'imeg àbùbì', 'imeg mbəŋchubi', 'iməg ngwə̀t', 'iməg fog', 'iməg ichiibɔd', 'iməg àdùmbə̀ŋ', 'iməg ichika', 'iməg kud', 'iməg tèsiʼe', 'iməg zò', 'iməg krizmed'],
+    'months_short' => ['mbegtug', 'imeg àbùbì', 'imeg mbəŋchubi', 'iməg ngwə̀t', 'iməg fog', 'iməg ichiibɔd', 'iməg àdùmbə̀ŋ', 'iməg ichika', 'iməg kud', 'iməg tèsiʼe', 'iməg zò', 'iməg krizmed'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'YYYY-MM-dd',
+        'LL' => 'YYYY MMM D',
+        'LLL' => 'YYYY MMMM D HH:mm',
+        'LLLL' => 'dddd, YYYY MMMM DD HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mhr.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mhr.php
new file mode 100644
index 0000000..6bbc9f6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mhr.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/mhr_RU.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mhr_RU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mhr_RU.php
new file mode 100644
index 0000000..309ead9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mhr_RU.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - PeshSajSoft Ltd. Vyacheslav Kileev slavakileev@yandex.ru
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'YYYY.MM.DD',
+    ],
+    'months' => ['Шорыкйол', 'Пургыж', 'Ӱярня', 'Вӱдшор', 'Ага', 'Пеледыш', 'Сӱрем', 'Сорла', 'Идым', 'Шыжа', 'Кылме', 'Теле'],
+    'months_short' => ['Шрк', 'Пгж', 'Ӱрн', 'Вшр', 'Ага', 'Пдш', 'Срм', 'Срл', 'Идм', 'Шыж', 'Клм', 'Тел'],
+    'weekdays' => ['Рушарня', 'Шочмо', 'Кушкыжмо', 'Вӱргече', 'Изарня', 'Кугарня', 'Шуматкече'],
+    'weekdays_short' => ['Ршр', 'Шчм', 'Кжм', 'Вгч', 'Изр', 'Кгр', 'Шмт'],
+    'weekdays_min' => ['Ршр', 'Шчм', 'Кжм', 'Вгч', 'Изр', 'Кгр', 'Шмт'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+
+    'year' => ':count идалык',
+    'y' => ':count идалык',
+    'a_year' => ':count идалык',
+
+    'month' => ':count Тылзе',
+    'm' => ':count Тылзе',
+    'a_month' => ':count Тылзе',
+
+    'week' => ':count арня',
+    'w' => ':count арня',
+    'a_week' => ':count арня',
+
+    'day' => ':count кече',
+    'd' => ':count кече',
+    'a_day' => ':count кече',
+
+    'hour' => ':count час',
+    'h' => ':count час',
+    'a_hour' => ':count час',
+
+    'minute' => ':count минут',
+    'min' => ':count минут',
+    'a_minute' => ':count минут',
+
+    'second' => ':count кокымшан',
+    's' => ':count кокымшан',
+    'a_second' => ':count кокымшан',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mi.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mi.php
new file mode 100644
index 0000000..b7f51ec
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mi.php
@@ -0,0 +1,66 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - François B
+ * - John Corrigan
+ * - François B
+ */
+return [
+    'year' => ':count tau',
+    'a_year' => '{1}he tau|:count tau',
+    'month' => ':count marama',
+    'a_month' => '{1}he marama|:count marama',
+    'week' => ':count wiki',
+    'a_week' => '{1}he wiki|:count wiki',
+    'day' => ':count ra',
+    'a_day' => '{1}he ra|:count ra',
+    'hour' => ':count haora',
+    'a_hour' => '{1}te haora|:count haora',
+    'minute' => ':count meneti',
+    'a_minute' => '{1}he meneti|:count meneti',
+    'second' => ':count hēkona',
+    'a_second' => '{1}te hēkona ruarua|:count hēkona',
+    'ago' => ':time i mua',
+    'from_now' => 'i roto i :time',
+    'diff_yesterday' => 'inanahi',
+    'diff_yesterday_regexp' => 'inanahi(?:\\s+i)?',
+    'diff_today' => 'i teie',
+    'diff_today_regexp' => 'i teie(?:\\s+mahana,)?(?:\\s+i)?',
+    'diff_tomorrow' => 'apopo',
+    'diff_tomorrow_regexp' => 'apopo(?:\\s+i)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY [i] HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY [i] HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[i teie mahana, i] LT',
+        'nextDay' => '[apopo i] LT',
+        'nextWeek' => 'dddd [i] LT',
+        'lastDay' => '[inanahi i] LT',
+        'lastWeek' => 'dddd [whakamutunga i] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':numberº',
+    'months' => ['Kohi-tāte', 'Hui-tanguru', 'Poutū-te-rangi', 'Paenga-whāwhā', 'Haratua', 'Pipiri', 'Hōngoingoi', 'Here-turi-kōkā', 'Mahuru', 'Whiringa-ā-nuku', 'Whiringa-ā-rangi', 'Hakihea'],
+    'months_short' => ['Kohi', 'Hui', 'Pou', 'Pae', 'Hara', 'Pipi', 'Hōngoi', 'Here', 'Mahu', 'Whi-nu', 'Whi-ra', 'Haki'],
+    'weekdays' => ['Rātapu', 'Mane', 'Tūrei', 'Wenerei', 'Tāite', 'Paraire', 'Hātarei'],
+    'weekdays_short' => ['Ta', 'Ma', 'Tū', 'We', 'Tāi', 'Pa', 'Hā'],
+    'weekdays_min' => ['Ta', 'Ma', 'Tū', 'We', 'Tāi', 'Pa', 'Hā'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' me te '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mi_NZ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mi_NZ.php
new file mode 100644
index 0000000..123d229
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mi_NZ.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/mi.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/miq.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/miq.php
new file mode 100644
index 0000000..51e5a98
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/miq.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/miq_NI.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/miq_NI.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/miq_NI.php
new file mode 100644
index 0000000..b56783e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/miq_NI.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YY',
+    ],
+    'months' => ['siakwa kati', 'kuswa kati', 'kakamuk kati', 'lî wainhka kati', 'lih mairin kati', 'lî kati', 'pastara kati', 'sikla kati', 'wîs kati', 'waupasa kati', 'yahbra kati', 'trisu kati'],
+    'months_short' => ['siakwa kati', 'kuswa kati', 'kakamuk kati', 'lî wainhka kati', 'lih mairin kati', 'lî kati', 'pastara kati', 'sikla kati', 'wîs kati', 'waupasa kati', 'yahbra kati', 'trisu kati'],
+    'weekdays' => ['sandi', 'mundi', 'tiusdi', 'wensde', 'tausde', 'praidi', 'satadi'],
+    'weekdays_short' => ['san', 'mun', 'tius', 'wens', 'taus', 'prai', 'sat'],
+    'weekdays_min' => ['san', 'mun', 'tius', 'wens', 'taus', 'prai', 'sat'],
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 7,
+    'meridiem' => ['VM', 'NM'],
+
+    'month' => ':count kati', // less reliable
+    'm' => ':count kati', // less reliable
+    'a_month' => ':count kati', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mjw.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mjw.php
new file mode 100644
index 0000000..617154c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mjw.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/mjw_IN.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mjw_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mjw_IN.php
new file mode 100644
index 0000000..58ed0d1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mjw_IN.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Jor Teron    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'D/M/YY',
+    ],
+    'months' => ['Arkoi', 'Thangthang', 'There', 'Jangmi', 'Aru', 'Vosik', 'Jakhong', 'Paipai', 'Chiti', 'Phere', 'Phaikuni', 'Matijong'],
+    'months_short' => ['Ark', 'Thang', 'The', 'Jang', 'Aru', 'Vos', 'Jak', 'Pai', 'Chi', 'Phe', 'Phai', 'Mati'],
+    'weekdays' => ['Bhomkuru', 'Urmi', 'Durmi', 'Thelang', 'Theman', 'Bhomta', 'Bhomti'],
+    'weekdays_short' => ['Bhom', 'Ur', 'Dur', 'Tkel', 'Tkem', 'Bhta', 'Bhti'],
+    'weekdays_min' => ['Bhom', 'Ur', 'Dur', 'Tkel', 'Tkem', 'Bhta', 'Bhti'],
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mk.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mk.php
new file mode 100644
index 0000000..853bc96
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mk.php
@@ -0,0 +1,113 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Sashko Todorov
+ * - Josh Soref
+ * - François B
+ * - Serhan Apaydın
+ * - Borislav Mickov
+ * - JD Isaacks
+ * - Tomi Atanasoski
+ */
+return [
+    'year' => ':count година|:count години',
+    'a_year' => 'година|:count години',
+    'y' => ':count год.',
+    'month' => ':count месец|:count месеци',
+    'a_month' => 'месец|:count месеци',
+    'm' => ':count месец|:count месеци',
+    'week' => ':count седмица|:count седмици',
+    'a_week' => 'седмица|:count седмици',
+    'w' => ':count седмица|:count седмици',
+    'day' => ':count ден|:count дена',
+    'a_day' => 'ден|:count дена',
+    'd' => ':count ден|:count дена',
+    'hour' => ':count час|:count часа',
+    'a_hour' => 'час|:count часа',
+    'h' => ':count час|:count часа',
+    'minute' => ':count минута|:count минути',
+    'a_minute' => 'минута|:count минути',
+    'min' => ':count мин.',
+    'second' => ':count секунда|:count секунди',
+    'a_second' => 'неколку секунди|:count секунди',
+    's' => ':count сек.',
+    'ago' => 'пред :time',
+    'from_now' => 'после :time',
+    'after' => 'по :time',
+    'before' => 'пред :time',
+    'diff_now' => 'сега',
+    'diff_today' => 'Денес',
+    'diff_today_regexp' => 'Денес(?:\\s+во)?',
+    'diff_yesterday' => 'вчера',
+    'diff_yesterday_regexp' => 'Вчера(?:\\s+во)?',
+    'diff_tomorrow' => 'утре',
+    'diff_tomorrow_regexp' => 'Утре(?:\\s+во)?',
+    'formats' => [
+        'LT' => 'H:mm',
+        'LTS' => 'H:mm:ss',
+        'L' => 'D.MM.YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY H:mm',
+        'LLLL' => 'dddd, D MMMM YYYY H:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Денес во] LT',
+        'nextDay' => '[Утре во] LT',
+        'nextWeek' => '[Во] dddd [во] LT',
+        'lastDay' => '[Вчера во] LT',
+        'lastWeek' => function (\Carbon\CarbonInterface $date) {
+            switch ($date->dayOfWeek) {
+                case 0:
+                case 3:
+                case 6:
+                    return '[Изминатата] dddd [во] LT';
+                default:
+                    return '[Изминатиот] dddd [во] LT';
+            }
+        },
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number) {
+        $lastDigit = $number % 10;
+        $last2Digits = $number % 100;
+        if ($number === 0) {
+            return $number.'-ев';
+        }
+        if ($last2Digits === 0) {
+            return $number.'-ен';
+        }
+        if ($last2Digits > 10 && $last2Digits < 20) {
+            return $number.'-ти';
+        }
+        if ($lastDigit === 1) {
+            return $number.'-ви';
+        }
+        if ($lastDigit === 2) {
+            return $number.'-ри';
+        }
+        if ($lastDigit === 7 || $lastDigit === 8) {
+            return $number.'-ми';
+        }
+
+        return $number.'-ти';
+    },
+    'months' => ['јануари', 'февруари', 'март', 'април', 'мај', 'јуни', 'јули', 'август', 'септември', 'октомври', 'ноември', 'декември'],
+    'months_short' => ['јан', 'фев', 'мар', 'апр', 'мај', 'јун', 'јул', 'авг', 'сеп', 'окт', 'ное', 'дек'],
+    'weekdays' => ['недела', 'понеделник', 'вторник', 'среда', 'четврток', 'петок', 'сабота'],
+    'weekdays_short' => ['нед', 'пон', 'вто', 'сре', 'чет', 'пет', 'саб'],
+    'weekdays_min' => ['нe', 'пo', 'вт', 'ср', 'че', 'пе', 'сa'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' и '],
+    'meridiem' => ['АМ', 'ПМ'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mk_MK.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mk_MK.php
new file mode 100644
index 0000000..06ff7d9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mk_MK.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/mk.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ml.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ml.php
new file mode 100644
index 0000000..1abd6c4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ml.php
@@ -0,0 +1,76 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - JD Isaacks
+ */
+return [
+    'year' => ':count വർഷം',
+    'a_year' => 'ഒരു വർഷം|:count വർഷം',
+    'month' => ':count മാസം',
+    'a_month' => 'ഒരു മാസം|:count മാസം',
+    'week' => ':count ആഴ്ച',
+    'a_week' => 'ഒരാഴ്ച|:count ആഴ്ച',
+    'day' => ':count ദിവസം',
+    'a_day' => 'ഒരു ദിവസം|:count ദിവസം',
+    'hour' => ':count മണിക്കൂർ',
+    'a_hour' => 'ഒരു മണിക്കൂർ|:count മണിക്കൂർ',
+    'minute' => ':count മിനിറ്റ്',
+    'a_minute' => 'ഒരു മിനിറ്റ്|:count മിനിറ്റ്',
+    'second' => ':count സെക്കൻഡ്',
+    'a_second' => 'അൽപ നിമിഷങ്ങൾ|:count സെക്കൻഡ്',
+    'ago' => ':time മുൻപ്',
+    'from_now' => ':time കഴിഞ്ഞ്',
+    'diff_now' => 'ഇപ്പോൾ',
+    'diff_today' => 'ഇന്ന്',
+    'diff_yesterday' => 'ഇന്നലെ',
+    'diff_tomorrow' => 'നാളെ',
+    'formats' => [
+        'LT' => 'A h:mm -നു',
+        'LTS' => 'A h:mm:ss -നു',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY, A h:mm -നു',
+        'LLLL' => 'dddd, D MMMM YYYY, A h:mm -നു',
+    ],
+    'calendar' => [
+        'sameDay' => '[ഇന്ന്] LT',
+        'nextDay' => '[നാളെ] LT',
+        'nextWeek' => 'dddd, LT',
+        'lastDay' => '[ഇന്നലെ] LT',
+        'lastWeek' => '[കഴിഞ്ഞ] dddd, LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => function ($hour) {
+        if ($hour < 4) {
+            return 'രാത്രി';
+        }
+        if ($hour < 12) {
+            return 'രാവിലെ';
+        }
+        if ($hour < 17) {
+            return 'ഉച്ച കഴിഞ്ഞ്';
+        }
+        if ($hour < 20) {
+            return 'വൈകുന്നേരം';
+        }
+
+        return 'രാത്രി';
+    },
+    'months' => ['ജനുവരി', 'ഫെബ്രുവരി', 'മാർച്ച്', 'ഏപ്രിൽ', 'മേയ്', 'ജൂൺ', 'ജൂലൈ', 'ഓഗസ്റ്റ്', 'സെപ്റ്റംബർ', 'ഒക്ടോബർ', 'നവംബർ', 'ഡിസംബർ'],
+    'months_short' => ['ജനു.', 'ഫെബ്രു.', 'മാർ.', 'ഏപ്രി.', 'മേയ്', 'ജൂൺ', 'ജൂലൈ.', 'ഓഗ.', 'സെപ്റ്റ.', 'ഒക്ടോ.', 'നവം.', 'ഡിസം.'],
+    'weekdays' => ['ഞായറാഴ്ച', 'തിങ്കളാഴ്ച', 'ചൊവ്വാഴ്ച', 'ബുധനാഴ്ച', 'വ്യാഴാഴ്ച', 'വെള്ളിയാഴ്ച', 'ശനിയാഴ്ച'],
+    'weekdays_short' => ['ഞായർ', 'തിങ്കൾ', 'ചൊവ്വ', 'ബുധൻ', 'വ്യാഴം', 'വെള്ളി', 'ശനി'],
+    'weekdays_min' => ['ഞാ', 'തി', 'ചൊ', 'ബു', 'വ്യാ', 'വെ', 'ശ'],
+    'list' => ', ',
+    'weekend' => [0, 0],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ml_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ml_IN.php
new file mode 100644
index 0000000..20878dc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ml_IN.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ml.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mn.php
new file mode 100644
index 0000000..25f65b3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mn.php
@@ -0,0 +1,101 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ *
+ * @translator Batmandakh Erdenebileg <batmandakh.e@icloud.com>
+ */
+
+/*
+ * Authors:
+ * - Philippe Vaucher
+ * - Tsutomu Kuroda
+ * - tjku
+ * - Max Melentiev
+ * - Zolzaya Erdenebaatar
+ * - Tom Hughes
+ * - Akira Matsuda
+ * - Christopher Dell
+ * - Michael Kessler
+ * - Enrique Vidal
+ * - Simone Carletti
+ * - Aaron Patterson
+ * - Nicolás Hock Isaza
+ * - Ochirkhuyag
+ * - Batmandakh
+ */
+return [
+    'year' => ':count жил',
+    'y' => ':count жил',
+    'month' => ':count сар',
+    'm' => ':count сар',
+    'week' => ':count долоо хоног',
+    'w' => ':count долоо хоног',
+    'day' => ':count өдөр',
+    'd' => ':count өдөр',
+    'hour' => ':count цаг',
+    'h' => ':countц',
+    'minute' => ':count минут',
+    'min' => ':countм',
+    'second' => ':count секунд',
+    's' => ':countс',
+
+    'ago' => ':timeн өмнө',
+    'year_ago' => ':count жилий',
+    'month_ago' => ':count сары',
+    'day_ago' => ':count хоногий',
+    'hour_ago' => ':count цагий',
+    'minute_ago' => ':count минуты',
+    'second_ago' => ':count секунды',
+
+    'from_now' => 'одоогоос :time',
+    'year_from_now' => ':count жилийн дараа',
+    'month_from_now' => ':count сарын дараа',
+    'day_from_now' => ':count хоногийн дараа',
+    'hour_from_now' => ':count цагийн дараа',
+    'minute_from_now' => ':count минутын дараа',
+    'second_from_now' => ':count секундын дараа',
+
+    // Does it required to make translation for before, after as follows? hmm, I think we've made it with ago and from now keywords already. Anyway, I've included it just in case of undesired action...
+    'after' => ':timeн дараа',
+    'year_after' => ':count жилий',
+    'month_after' => ':count сары',
+    'day_after' => ':count хоногий',
+    'hour_after' => ':count цагий',
+    'minute_after' => ':count минуты',
+    'second_after' => ':count секунды',
+
+    'before' => ':timeн өмнө',
+    'year_before' => ':count жилий',
+    'month_before' => ':count сары',
+    'day_before' => ':count хоногий',
+    'hour_before' => ':count цагий',
+    'minute_before' => ':count минуты',
+    'second_before' => ':count секунды',
+
+    'list' => ', ',
+    'diff_now' => 'одоо',
+    'diff_yesterday' => 'өчигдөр',
+    'diff_tomorrow' => 'маргааш',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'YYYY-MM-DD',
+        'LL' => 'YYYY MMMM DD',
+        'LLL' => 'YY-MM-DD, HH:mm',
+        'LLLL' => 'YYYY MMMM DD, HH:mm',
+    ],
+    'weekdays' => ['Ням', 'Даваа', 'Мягмар', 'Лхагва', 'Пүрэв', 'Баасан', 'Бямба'],
+    'weekdays_short' => ['Ня', 'Да', 'Мя', 'Лх', 'Пү', 'Ба', 'Бя'],
+    'weekdays_min' => ['Ня', 'Да', 'Мя', 'Лх', 'Пү', 'Ба', 'Бя'],
+    'months' => ['1 сар', '2 сар', '3 сар', '4 сар', '5 сар', '6 сар', '7 сар', '8 сар', '9 сар', '10 сар', '11 сар', '12 сар'],
+    'months_short' => ['1 сар', '2 сар', '3 сар', '4 сар', '5 сар', '6 сар', '7 сар', '8 сар', '9 сар', '10 сар', '11 сар', '12 сар'],
+    'meridiem' => ['өглөө', 'орой'],
+    'first_day_of_week' => 1,
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mn_MN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mn_MN.php
new file mode 100644
index 0000000..b8fef24
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mn_MN.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/mn.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mni.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mni.php
new file mode 100644
index 0000000..cafa2f8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mni.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/mni_IN.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mni_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mni_IN.php
new file mode 100644
index 0000000..45d430e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mni_IN.php
@@ -0,0 +1,35 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Red Hat Pune    libc-alpha@sourceware.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'D/M/YY',
+    ],
+    'months' => ['জানুৱারি', 'ফেব্রুৱারি', 'মার্চ', 'এপ্রিল', 'মে', 'জুন', 'জুলাই', 'আগষ্ট', 'সেপ্তেম্বর', 'ওক্তোবর', 'নবেম্বর', 'ডিসেম্বর'],
+    'months_short' => ['জান', 'ফেব', 'মার', 'এপ্রি', 'মে', 'জুন', 'জুল', 'আগ', 'সেপ', 'ওক্ত', 'নবে', 'ডিস'],
+    'weekdays' => ['নোংমাইজিং', 'নিংথৌকাবা', 'লৈবাকপোকপা', 'য়ুমশকৈশা', 'শগোলশেন', 'ইরাই', 'থাংজ'],
+    'weekdays_short' => ['নোং', 'নিং', 'লৈবাক', 'য়ুম', 'শগোল', 'ইরা', 'থাং'],
+    'weekdays_min' => ['নোং', 'নিং', 'লৈবাক', 'য়ুম', 'শগোল', 'ইরা', 'থাং'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['এ.ম.', 'প.ম.'],
+
+    'year' => ':count ইসিং', // less reliable
+    'y' => ':count ইসিং', // less reliable
+    'a_year' => ':count ইসিং', // less reliable
+
+    'second' => ':count ꯅꯤꯡꯊꯧꯀꯥꯕ', // less reliable
+    's' => ':count ꯅꯤꯡꯊꯧꯀꯥꯕ', // less reliable
+    'a_second' => ':count ꯅꯤꯡꯊꯧꯀꯥꯕ', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mo.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mo.php
new file mode 100644
index 0000000..dd7c8f0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mo.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ro.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mr.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mr.php
new file mode 100644
index 0000000..4aaeafd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mr.php
@@ -0,0 +1,86 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Vikram-enyota
+ */
+return [
+    'year' => ':count वर्ष',
+    'y' => ':count वर्ष',
+    'month' => ':count महिना|:count महिने',
+    'm' => ':count महिना|:count महिने',
+    'week' => ':count आठवडा|:count आठवडे',
+    'w' => ':count आठवडा|:count आठवडे',
+    'day' => ':count दिवस',
+    'd' => ':count दिवस',
+    'hour' => ':count तास',
+    'h' => ':count तास',
+    'minute' => ':count मिनिटे',
+    'min' => ':count मिनिटे',
+    'second' => ':count सेकंद',
+    's' => ':count सेकंद',
+
+    'ago' => ':timeपूर्वी',
+    'from_now' => ':timeमध्ये',
+    'before' => ':timeपूर्वी',
+    'after' => ':timeनंतर',
+
+    'diff_now' => 'आत्ता',
+    'diff_today' => 'आज',
+    'diff_yesterday' => 'काल',
+    'diff_tomorrow' => 'उद्या',
+
+    'formats' => [
+        'LT' => 'A h:mm वाजता',
+        'LTS' => 'A h:mm:ss वाजता',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY, A h:mm वाजता',
+        'LLLL' => 'dddd, D MMMM YYYY, A h:mm वाजता',
+    ],
+
+    'calendar' => [
+        'sameDay' => '[आज] LT',
+        'nextDay' => '[उद्या] LT',
+        'nextWeek' => 'dddd, LT',
+        'lastDay' => '[काल] LT',
+        'lastWeek' => '[मागील] dddd, LT',
+        'sameElse' => 'L',
+    ],
+
+    'meridiem' => function ($hour) {
+        if ($hour < 4) {
+            return 'रात्री';
+        }
+        if ($hour < 10) {
+            return 'सकाळी';
+        }
+        if ($hour < 17) {
+            return 'दुपारी';
+        }
+        if ($hour < 20) {
+            return 'सायंकाळी';
+        }
+
+        return 'रात्री';
+    },
+
+    'months' => ['जानेवारी', 'फेब्रुवारी', 'मार्च', 'एप्रिल', 'मे', 'जून', 'जुलै', 'ऑगस्ट', 'सप्टेंबर', 'ऑक्टोबर', 'नोव्हेंबर', 'डिसेंबर'],
+    'months_short' => ['जाने.', 'फेब्रु.', 'मार्च.', 'एप्रि.', 'मे.', 'जून.', 'जुलै.', 'ऑग.', 'सप्टें.', 'ऑक्टो.', 'नोव्हें.', 'डिसें.'],
+    'weekdays' => ['रविवार', 'सोमवार', 'मंगळवार', 'बुधवार', 'गुरूवार', 'शुक्रवार', 'शनिवार'],
+    'weekdays_short' => ['रवि', 'सोम', 'मंगळ', 'बुध', 'गुरू', 'शुक्र', 'शनि'],
+    'weekdays_min' => ['र', 'सो', 'मं', 'बु', 'गु', 'शु', 'श'],
+    'list' => [', ', ' आणि '],
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+    'weekend' => [0, 0],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mr_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mr_IN.php
new file mode 100644
index 0000000..556cefa
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mr_IN.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/mr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ms.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ms.php
new file mode 100644
index 0000000..ed7d48f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ms.php
@@ -0,0 +1,98 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - Azri Jamil
+ * - JD Isaacks
+ * - Josh Soref
+ * - Azri Jamil
+ * - Hariadi Hinta
+ * - Ashraf Kamarudin
+ */
+return [
+    'year' => ':count tahun',
+    'a_year' => '{1}setahun|]1,Inf[:count tahun',
+    'y' => ':count tahun',
+    'month' => ':count bulan',
+    'a_month' => '{1}sebulan|]1,Inf[:count bulan',
+    'm' => ':count bulan',
+    'week' => ':count minggu',
+    'a_week' => '{1}seminggu|]1,Inf[:count minggu',
+    'w' => ':count minggu',
+    'day' => ':count hari',
+    'a_day' => '{1}sehari|]1,Inf[:count hari',
+    'd' => ':count hari',
+    'hour' => ':count jam',
+    'a_hour' => '{1}sejam|]1,Inf[:count jam',
+    'h' => ':count jam',
+    'minute' => ':count minit',
+    'a_minute' => '{1}seminit|]1,Inf[:count minit',
+    'min' => ':count minit',
+    'second' => ':count saat',
+    'a_second' => '{1}beberapa saat|]1,Inf[:count saat',
+    'millisecond' => ':count milisaat',
+    'a_millisecond' => '{1}semilisaat|]1,Inf[:count milliseconds',
+    'microsecond' => ':count mikrodetik',
+    'a_microsecond' => '{1}semikrodetik|]1,Inf[:count mikrodetik',
+    's' => ':count saat',
+    'ago' => ':time yang lepas',
+    'from_now' => ':time dari sekarang',
+    'after' => ':time kemudian',
+    'before' => ':time lepas',
+    'diff_now' => 'sekarang',
+    'diff_today' => 'Hari',
+    'diff_today_regexp' => 'Hari(?:\\s+ini)?(?:\\s+pukul)?',
+    'diff_yesterday' => 'semalam',
+    'diff_yesterday_regexp' => 'Semalam(?:\\s+pukul)?',
+    'diff_tomorrow' => 'esok',
+    'diff_tomorrow_regexp' => 'Esok(?:\\s+pukul)?',
+    'diff_before_yesterday' => 'kelmarin',
+    'diff_after_tomorrow' => 'lusa',
+    'formats' => [
+        'LT' => 'HH.mm',
+        'LTS' => 'HH.mm.ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY [pukul] HH.mm',
+        'LLLL' => 'dddd, D MMMM YYYY [pukul] HH.mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Hari ini pukul] LT',
+        'nextDay' => '[Esok pukul] LT',
+        'nextWeek' => 'dddd [pukul] LT',
+        'lastDay' => '[Kelmarin pukul] LT',
+        'lastWeek' => 'dddd [lepas pukul] LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => function ($hour) {
+        if ($hour < 12) {
+            return 'pagi';
+        }
+        if ($hour < 15) {
+            return 'tengah hari';
+        }
+        if ($hour < 19) {
+            return 'petang';
+        }
+
+        return 'malam';
+    },
+    'months' => ['Januari', 'Februari', 'Mac', 'April', 'Mei', 'Jun', 'Julai', 'Ogos', 'September', 'Oktober', 'November', 'Disember'],
+    'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ogs', 'Sep', 'Okt', 'Nov', 'Dis'],
+    'weekdays' => ['Ahad', 'Isnin', 'Selasa', 'Rabu', 'Khamis', 'Jumaat', 'Sabtu'],
+    'weekdays_short' => ['Ahd', 'Isn', 'Sel', 'Rab', 'Kha', 'Jum', 'Sab'],
+    'weekdays_min' => ['Ah', 'Is', 'Sl', 'Rb', 'Km', 'Jm', 'Sb'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' dan '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ms_BN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ms_BN.php
new file mode 100644
index 0000000..ea2b453
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ms_BN.php
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ms.php', [
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'D/MM/yy',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY, h:mm a',
+        'LLLL' => 'dd MMMM YYYY, h:mm a',
+    ],
+    'meridiem' => ['a', 'p'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ms_MY.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ms_MY.php
new file mode 100644
index 0000000..970d604
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ms_MY.php
@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - Azri Jamil
+ * - JD Isaacks
+ */
+return require __DIR__.'/ms.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ms_SG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ms_SG.php
new file mode 100644
index 0000000..097a168
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ms_SG.php
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ms.php', [
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'D/MM/yy',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY, h:mm a',
+        'LLLL' => 'dddd, D MMMM YYYY, h:mm a',
+    ],
+    'meridiem' => ['a', 'p'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mt.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mt.php
new file mode 100644
index 0000000..e8aadcc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mt.php
@@ -0,0 +1,65 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Alessandro Maruccia
+ */
+return [
+    'year' => 'sena|:count sni|:count sni|:count sni',
+    'y' => 'sa sena|:count snin|:count snin|:count snin',
+    'month' => 'xahar|:count xhur|:count xhur|:count xhur',
+    'm' => ':count xahar|:count xhur|:count xhur|:count xhur',
+    'week' => 'gimgħa|:count ġimgħat|:count ġimgħat|:count ġimgħat',
+    'w' => 'ġimgħa|:count ġimgħat|:count ġimgħat|:count ġimgħat',
+    'day' => 'ġurnata|:count ġranet|:count ġranet|:count ġranet',
+    'd' => 'ġurnata|:count ġranet|:count ġranet|:count ġranet',
+    'hour' => 'siegħa|:count siegħat|:count siegħat|:count siegħat',
+    'h' => 'siegħa|:count sigħat|:count sigħat|:count sigħat',
+    'minute' => 'minuta|:count minuti|:count minuti|:count minuti',
+    'min' => 'min.|:count min.|:count min.|:count min.',
+    'second' => 'ftit sekondi|:count sekondi|:count sekondi|:count sekondi',
+    's' => 'sek.|:count sek.|:count sek.|:count sek.',
+    'ago' => ':time ilu',
+    'from_now' => 'f’ :time',
+    'diff_now' => 'issa',
+    'diff_today' => 'Illum',
+    'diff_today_regexp' => 'Illum(?:\\s+fil-)?',
+    'diff_yesterday' => 'lbieraħ',
+    'diff_yesterday_regexp' => 'Il-bieraħ(?:\\s+fil-)?',
+    'diff_tomorrow' => 'għada',
+    'diff_tomorrow_regexp' => 'Għada(?:\\s+fil-)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Illum fil-]LT',
+        'nextDay' => '[Għada fil-]LT',
+        'nextWeek' => 'dddd [fil-]LT',
+        'lastDay' => '[Il-bieraħ fil-]LT',
+        'lastWeek' => 'dddd [li għadda] [fil-]LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':numberº',
+    'months' => ['Jannar', 'Frar', 'Marzu', 'April', 'Mejju', 'Ġunju', 'Lulju', 'Awwissu', 'Settembru', 'Ottubru', 'Novembru', 'Diċembru'],
+    'months_short' => ['Jan', 'Fra', 'Mar', 'Apr', 'Mej', 'Ġun', 'Lul', 'Aww', 'Set', 'Ott', 'Nov', 'Diċ'],
+    'weekdays' => ['Il-Ħadd', 'It-Tnejn', 'It-Tlieta', 'L-Erbgħa', 'Il-Ħamis', 'Il-Ġimgħa', 'Is-Sibt'],
+    'weekdays_short' => ['Ħad', 'Tne', 'Tli', 'Erb', 'Ħam', 'Ġim', 'Sib'],
+    'weekdays_min' => ['Ħa', 'Tn', 'Tl', 'Er', 'Ħa', 'Ġi', 'Si'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' u '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mt_MT.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mt_MT.php
new file mode 100644
index 0000000..6ec2b33
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mt_MT.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/mt.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mua.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mua.php
new file mode 100644
index 0000000..8f1f9dc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mua.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['comme', 'lilli'],
+    'weekdays' => ['Com’yakke', 'Comlaaɗii', 'Comzyiiɗii', 'Comkolle', 'Comkaldǝɓlii', 'Comgaisuu', 'Comzyeɓsuu'],
+    'weekdays_short' => ['Cya', 'Cla', 'Czi', 'Cko', 'Cka', 'Cga', 'Cze'],
+    'weekdays_min' => ['Cya', 'Cla', 'Czi', 'Cko', 'Cka', 'Cga', 'Cze'],
+    'months' => ['Fĩi Loo', 'Cokcwaklaŋne', 'Cokcwaklii', 'Fĩi Marfoo', 'Madǝǝuutǝbijaŋ', 'Mamǝŋgwãafahbii', 'Mamǝŋgwãalii', 'Madǝmbii', 'Fĩi Dǝɓlii', 'Fĩi Mundaŋ', 'Fĩi Gwahlle', 'Fĩi Yuru'],
+    'months_short' => ['FLO', 'CLA', 'CKI', 'FMF', 'MAD', 'MBI', 'MLI', 'MAM', 'FDE', 'FMU', 'FGW', 'FYU'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/my.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/my.php
new file mode 100644
index 0000000..bbdfba4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/my.php
@@ -0,0 +1,70 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - JD Isaacks
+ * - Nay Lin Aung
+ */
+return [
+    'year' => '{1}တစ်နှစ်|]1,Inf[:count နှစ်',
+    'y' => ':count နှစ်',
+    'month' => '{1}တစ်လ|]1,Inf[:count လ',
+    'm' => ':count လ',
+    'week' => ':count ပတ်',
+    'w' => ':count ပတ်',
+    'day' => '{1}တစ်ရက်|]1,Inf[:count ရက်',
+    'd' => ':count ရက်',
+    'hour' => '{1}တစ်နာရီ|]1,Inf[:count နာရီ',
+    'h' => ':count နာရီ',
+    'minute' => '{1}တစ်မိနစ်|]1,Inf[:count မိနစ်',
+    'min' => ':count မိနစ်',
+    'second' => '{1}စက္ကန်.အနည်းငယ်|]1,Inf[:count စက္ကန့်',
+    's' => ':count စက္ကန့်',
+    'ago' => 'လွန်ခဲ့သော :time က',
+    'from_now' => 'လာမည့် :time မှာ',
+    'after' => ':time ကြာပြီးနောက်',
+    'before' => ':time မတိုင်ခင်',
+    'diff_now' => 'အခုလေးတင်',
+    'diff_today' => 'ယနေ.',
+    'diff_yesterday' => 'မနေ့က',
+    'diff_yesterday_regexp' => 'မနေ.က',
+    'diff_tomorrow' => 'မနက်ဖြန်',
+    'diff_before_yesterday' => 'တမြန်နေ့က',
+    'diff_after_tomorrow' => 'တဘက်ခါ',
+    'period_recurrences' => ':count ကြိမ်',
+    'formats' => [
+        'LT' => 'Oh:Om A',
+        'LTS' => 'Oh:Om:Os A',
+        'L' => 'OD/OM/OY',
+        'LL' => 'OD MMMM OY',
+        'LLL' => 'OD MMMM OY Oh:Om A',
+        'LLLL' => 'dddd OD MMMM OY Oh:Om A',
+    ],
+    'calendar' => [
+        'sameDay' => '[ယနေ.] LT [မှာ]',
+        'nextDay' => '[မနက်ဖြန်] LT [မှာ]',
+        'nextWeek' => 'dddd LT [မှာ]',
+        'lastDay' => '[မနေ.က] LT [မှာ]',
+        'lastWeek' => '[ပြီးခဲ့သော] dddd LT [မှာ]',
+        'sameElse' => 'L',
+    ],
+    'months' => ['ဇန်နဝါရီ', 'ဖေဖော်ဝါရီ', 'မတ်', 'ဧပြီ', 'မေ', 'ဇွန်', 'ဇူလိုင်', 'သြဂုတ်', 'စက်တင်ဘာ', 'အောက်တိုဘာ', 'နိုဝင်ဘာ', 'ဒီဇင်ဘာ'],
+    'months_short' => ['ဇန်', 'ဖေ', 'မတ်', 'ပြီ', 'မေ', 'ဇွန်', 'လိုင်', 'သြ', 'စက်', 'အောက်', 'နို', 'ဒီ'],
+    'weekdays' => ['တနင်္ဂနွေ', 'တနင်္လာ', 'အင်္ဂါ', 'ဗုဒ္ဓဟူး', 'ကြာသပတေး', 'သောကြာ', 'စနေ'],
+    'weekdays_short' => ['နွေ', 'လာ', 'ဂါ', 'ဟူး', 'ကြာ', 'သော', 'နေ'],
+    'weekdays_min' => ['နွေ', 'လာ', 'ဂါ', 'ဟူး', 'ကြာ', 'သော', 'နေ'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'alt_numbers' => ['၀၀', '၀၁', '၀၂', '၀၃', '၀၄', '၀၅', '၀၆', '၀၇', '၀၈', '၀၉', '၁၀', '၁၁', '၁၂', '၁၃', '၁၄', '၁၅', '၁၆', '၁၇', '၁၈', '၁၉', '၂၀', '၂၁', '၂၂', '၂၃', '၂၄', '၂၅', '၂၆', '၂၇', '၂၈', '၂၉', '၃၀', '၃၁', '၃၂', '၃၃', '၃၄', '၃၅', '၃၆', '၃၇', '၃၈', '၃၉', '၄၀', '၄၁', '၄၂', '၄၃', '၄၄', '၄၅', '၄၆', '၄၇', '၄၈', '၄၉', '၅၀', '၅၁', '၅၂', '၅၃', '၅၄', '၅၅', '၅၆', '၅၇', '၅၈', '၅၉', '၆၀', '၆၁', '၆၂', '၆၃', '၆၄', '၆၅', '၆၆', '၆၇', '၆၈', '၆၉', '၇၀', '၇၁', '၇၂', '၇၃', '၇၄', '၇၅', '၇၆', '၇၇', '၇၈', '၇၉', '၈၀', '၈၁', '၈၂', '၈၃', '၈၄', '၈၅', '၈၆', '၈၇', '၈၈', '၈၉', '၉၀', '၉၁', '၉၂', '၉၃', '၉၄', '၉၅', '၉၆', '၉၇', '၉၈', '၉၉'],
+    'meridiem' => ['နံနက်', 'ညနေ'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/my_MM.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/my_MM.php
new file mode 100644
index 0000000..1f27cca
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/my_MM.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/my.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mzn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mzn.php
new file mode 100644
index 0000000..6ad3604
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/mzn.php
@@ -0,0 +1,24 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/fa.php', [
+    'months' => ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر'],
+    'months_short' => ['ژانویه', 'فوریه', 'مارس', 'آوریل', 'مه', 'ژوئن', 'ژوئیه', 'اوت', 'سپتامبر', 'اکتبر', 'نوامبر', 'دسامبر'],
+    'first_day_of_week' => 6,
+    'weekend' => [5, 5],
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'YYYY-MM-dd',
+        'LL' => 'YYYY MMM D',
+        'LLL' => 'YYYY MMMM D HH:mm',
+        'LLLL' => 'YYYY MMMM D, dddd HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nan.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nan.php
new file mode 100644
index 0000000..0affece
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nan.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/nan_TW.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nan_TW.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nan_TW.php
new file mode 100644
index 0000000..5c50aa4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nan_TW.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'YYYY年MM月DD日',
+    ],
+    'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
+    'months_short' => [' 1月', ' 2月', ' 3月', ' 4月', ' 5月', ' 6月', ' 7月', ' 8月', ' 9月', '10月', '11月', '12月'],
+    'weekdays' => ['禮拜日', '禮拜一', '禮拜二', '禮拜三', '禮拜四', '禮拜五', '禮拜六'],
+    'weekdays_short' => ['日', '一', '二', '三', '四', '五', '六'],
+    'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['頂晡', '下晡'],
+
+    'year' => ':count 年',
+    'y' => ':count 年',
+    'a_year' => ':count 年',
+
+    'month' => ':count goe̍h',
+    'm' => ':count goe̍h',
+    'a_month' => ':count goe̍h',
+
+    'week' => ':count lé-pài',
+    'w' => ':count lé-pài',
+    'a_week' => ':count lé-pài',
+
+    'day' => ':count 日',
+    'd' => ':count 日',
+    'a_day' => ':count 日',
+
+    'hour' => ':count tiám-cheng',
+    'h' => ':count tiám-cheng',
+    'a_hour' => ':count tiám-cheng',
+
+    'minute' => ':count Hun-cheng',
+    'min' => ':count Hun-cheng',
+    'a_minute' => ':count Hun-cheng',
+
+    'second' => ':count Bió',
+    's' => ':count Bió',
+    'a_second' => ':count Bió',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nan_TW@latin.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nan_TW@latin.php
new file mode 100644
index 0000000..99ca2a4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nan_TW@latin.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Arne Goetje arne@canonical.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'YYYY-MM-DD',
+    ],
+    'months' => ['1goe̍h', '2goe̍h', '3goe̍h', '4goe̍h', '5goe̍h', '6goe̍h', '7goe̍h', '8goe̍h', '9goe̍h', '10goe̍h', '11goe̍h', '12goe̍h'],
+    'months_short' => ['1g', '2g', '3g', '4g', '5g', '6g', '7g', '8g', '9g', '10g', '11g', '12g'],
+    'weekdays' => ['lé-pài-ji̍t', 'pài-it', 'pài-jī', 'pài-saⁿ', 'pài-sì', 'pài-gō͘', 'pài-la̍k'],
+    'weekdays_short' => ['lp', 'p1', 'p2', 'p3', 'p4', 'p5', 'p6'],
+    'weekdays_min' => ['lp', 'p1', 'p2', 'p3', 'p4', 'p5', 'p6'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['téng-po͘', 'ē-po͘'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/naq.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/naq.php
new file mode 100644
index 0000000..614ced4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/naq.php
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['ǁgoagas', 'ǃuias'],
+    'weekdays' => ['Sontaxtsees', 'Mantaxtsees', 'Denstaxtsees', 'Wunstaxtsees', 'Dondertaxtsees', 'Fraitaxtsees', 'Satertaxtsees'],
+    'weekdays_short' => ['Son', 'Ma', 'De', 'Wu', 'Do', 'Fr', 'Sat'],
+    'weekdays_min' => ['Son', 'Ma', 'De', 'Wu', 'Do', 'Fr', 'Sat'],
+    'months' => ['ǃKhanni', 'ǃKhanǀgôab', 'ǀKhuuǁkhâb', 'ǃHôaǂkhaib', 'ǃKhaitsâb', 'Gamaǀaeb', 'ǂKhoesaob', 'Aoǁkhuumûǁkhâb', 'Taraǀkhuumûǁkhâb', 'ǂNûǁnâiseb', 'ǀHooǂgaeb', 'Hôasoreǁkhâb'],
+    'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY h:mm a',
+        'LLLL' => 'dddd, D MMMM YYYY h:mm a',
+    ],
+
+    'year' => ':count kurigu',
+    'y' => ':count kurigu',
+    'a_year' => ':count kurigu',
+
+    'month' => ':count ǁaub', // less reliable
+    'm' => ':count ǁaub', // less reliable
+    'a_month' => ':count ǁaub', // less reliable
+
+    'week' => ':count hû', // less reliable
+    'w' => ':count hû', // less reliable
+    'a_week' => ':count hû', // less reliable
+
+    'day' => ':count ǀhobas', // less reliable
+    'd' => ':count ǀhobas', // less reliable
+    'a_day' => ':count ǀhobas', // less reliable
+
+    'hour' => ':count ǂgaes', // less reliable
+    'h' => ':count ǂgaes', // less reliable
+    'a_hour' => ':count ǂgaes', // less reliable
+
+    'minute' => ':count minutga', // less reliable
+    'min' => ':count minutga', // less reliable
+    'a_minute' => ':count minutga', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nb.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nb.php
new file mode 100644
index 0000000..371ee84
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nb.php
@@ -0,0 +1,84 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - François B
+ * - Alexander Tømmerås
+ * - Sigurd Gartmann
+ * - JD Isaacks
+ */
+return [
+    'year' => ':count år|:count år',
+    'a_year' => 'ett år|:count år',
+    'y' => ':count år|:count år',
+    'month' => ':count måned|:count måneder',
+    'a_month' => 'en måned|:count måneder',
+    'm' => ':count md.',
+    'week' => ':count uke|:count uker',
+    'a_week' => 'en uke|:count uker',
+    'w' => ':count u.',
+    'day' => ':count dag|:count dager',
+    'a_day' => 'en dag|:count dager',
+    'd' => ':count d.',
+    'hour' => ':count time|:count timer',
+    'a_hour' => 'en time|:count timer',
+    'h' => ':count t',
+    'minute' => ':count minutt|:count minutter',
+    'a_minute' => 'ett minutt|:count minutter',
+    'min' => ':count min',
+    'second' => ':count sekund|:count sekunder',
+    'a_second' => 'noen sekunder|:count sekunder',
+    's' => ':count sek',
+    'ago' => ':time siden',
+    'from_now' => 'om :time',
+    'after' => ':time etter',
+    'before' => ':time før',
+    'diff_now' => 'akkurat nå',
+    'diff_today' => 'i dag',
+    'diff_today_regexp' => 'i dag(?:\\s+kl.)?',
+    'diff_yesterday' => 'i går',
+    'diff_yesterday_regexp' => 'i går(?:\\s+kl.)?',
+    'diff_tomorrow' => 'i morgen',
+    'diff_tomorrow_regexp' => 'i morgen(?:\\s+kl.)?',
+    'diff_before_yesterday' => 'i forgårs',
+    'diff_after_tomorrow' => 'i overmorgen',
+    'period_recurrences' => 'en gang|:count ganger',
+    'period_interval' => 'hver :interval',
+    'period_start_date' => 'fra :date',
+    'period_end_date' => 'til :date',
+    'months' => ['januar', 'februar', 'mars', 'april', 'mai', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'desember'],
+    'months_short' => ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'des'],
+    'weekdays' => ['søndag', 'mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag'],
+    'weekdays_short' => ['søn', 'man', 'tir', 'ons', 'tor', 'fre', 'lør'],
+    'weekdays_min' => ['sø', 'ma', 'ti', 'on', 'to', 'fr', 'lø'],
+    'ordinal' => ':number.',
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D. MMMM YYYY',
+        'LLL' => 'D. MMMM YYYY [kl.] HH:mm',
+        'LLLL' => 'dddd D. MMMM YYYY [kl.] HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[i dag kl.] LT',
+        'nextDay' => '[i morgen kl.] LT',
+        'nextWeek' => 'dddd [kl.] LT',
+        'lastDay' => '[i går kl.] LT',
+        'lastWeek' => '[forrige] dddd [kl.] LT',
+        'sameElse' => 'L',
+    ],
+    'list' => [', ', ' og '],
+    'meridiem' => ['a.m.', 'p.m.'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nb_NO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nb_NO.php
new file mode 100644
index 0000000..bd643a8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nb_NO.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/nb.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nb_SJ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nb_SJ.php
new file mode 100644
index 0000000..93cbaef
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nb_SJ.php
@@ -0,0 +1,17 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/nb.php', [
+    'formats' => [
+        'LL' => 'D. MMM YYYY',
+        'LLL' => 'D. MMMM YYYY, HH:mm',
+        'LLLL' => 'dddd D. MMMM YYYY, HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nd.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nd.php
new file mode 100644
index 0000000..d6fdaad
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nd.php
@@ -0,0 +1,53 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'weekdays' => ['Sonto', 'Mvulo', 'Sibili', 'Sithathu', 'Sine', 'Sihlanu', 'Mgqibelo'],
+    'weekdays_short' => ['Son', 'Mvu', 'Sib', 'Sit', 'Sin', 'Sih', 'Mgq'],
+    'weekdays_min' => ['Son', 'Mvu', 'Sib', 'Sit', 'Sin', 'Sih', 'Mgq'],
+    'months' => ['Zibandlela', 'Nhlolanja', 'Mbimbitho', 'Mabasa', 'Nkwenkwezi', 'Nhlangula', 'Ntulikazi', 'Ncwabakazi', 'Mpandula', 'Mfumfu', 'Lwezi', 'Mpalakazi'],
+    'months_short' => ['Zib', 'Nhlo', 'Mbi', 'Mab', 'Nkw', 'Nhla', 'Ntu', 'Ncw', 'Mpan', 'Mfu', 'Lwe', 'Mpal'],
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+
+    'year' => 'okweminyaka engu-:count', // less reliable
+    'y' => 'okweminyaka engu-:count', // less reliable
+    'a_year' => 'okweminyaka engu-:count', // less reliable
+
+    'month' => 'inyanga ezingu-:count',
+    'm' => 'inyanga ezingu-:count',
+    'a_month' => 'inyanga ezingu-:count',
+
+    'week' => 'amaviki angu-:count',
+    'w' => 'amaviki angu-:count',
+    'a_week' => 'amaviki angu-:count',
+
+    'day' => 'kwamalanga angu-:count',
+    'd' => 'kwamalanga angu-:count',
+    'a_day' => 'kwamalanga angu-:count',
+
+    'hour' => 'amahola angu-:count',
+    'h' => 'amahola angu-:count',
+    'a_hour' => 'amahola angu-:count',
+
+    'minute' => 'imizuzu engu-:count',
+    'min' => 'imizuzu engu-:count',
+    'a_minute' => 'imizuzu engu-:count',
+
+    'second' => 'imizuzwana engu-:count',
+    's' => 'imizuzwana engu-:count',
+    'a_second' => 'imizuzwana engu-:count',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nds.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nds.php
new file mode 100644
index 0000000..c0b3775
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nds.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/nds_DE.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nds_DE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nds_DE.php
new file mode 100644
index 0000000..eb6e77e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nds_DE.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - information from Kenneth Christiansen Kenneth Christiansen, Pablo Saratxaga kenneth@gnu.org, pablo@mandrakesoft.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD.MM.YYYY',
+    ],
+    'months' => ['Jannuaar', 'Feberwaar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
+    'months_short' => ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],
+    'weekdays' => ['Sünndag', 'Maandag', 'Dingsdag', 'Middeweek', 'Dunnersdag', 'Freedag', 'Sünnavend'],
+    'weekdays_short' => ['Sdag', 'Maan', 'Ding', 'Migg', 'Dunn', 'Free', 'Svd.'],
+    'weekdays_min' => ['Sdag', 'Maan', 'Ding', 'Migg', 'Dunn', 'Free', 'Svd.'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+
+    'year' => ':count Johr',
+    'y' => ':count Johr',
+    'a_year' => ':count Johr',
+
+    'month' => ':count Maand',
+    'm' => ':count Maand',
+    'a_month' => ':count Maand',
+
+    'week' => ':count Week',
+    'w' => ':count Week',
+    'a_week' => ':count Week',
+
+    'day' => ':count Dag',
+    'd' => ':count Dag',
+    'a_day' => ':count Dag',
+
+    'hour' => ':count Stünn',
+    'h' => ':count Stünn',
+    'a_hour' => ':count Stünn',
+
+    'minute' => ':count Minuut',
+    'min' => ':count Minuut',
+    'a_minute' => ':count Minuut',
+
+    'second' => ':count sekunn',
+    's' => ':count sekunn',
+    'a_second' => ':count sekunn',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nds_NL.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nds_NL.php
new file mode 100644
index 0000000..de2c57b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nds_NL.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - information from Kenneth Christiansen Kenneth Christiansen, Pablo Saratxaga kenneth@gnu.org, pablo@mandrakesoft.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD.MM.YYYY',
+    ],
+    'months' => ['Jaunuwoa', 'Februwoa', 'Moaz', 'Aprell', 'Mai', 'Juni', 'Juli', 'August', 'Septamba', 'Oktoba', 'Nowamba', 'Dezamba'],
+    'months_short' => ['Jan', 'Feb', 'Moz', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Now', 'Dez'],
+    'weekdays' => ['Sinndag', 'Mondag', 'Dingsdag', 'Meddwäakj', 'Donnadag', 'Friedag', 'Sinnowend'],
+    'weekdays_short' => ['Sdg', 'Mdg', 'Dsg', 'Mwk', 'Ddg', 'Fdg', 'Swd'],
+    'weekdays_min' => ['Sdg', 'Mdg', 'Dsg', 'Mwk', 'Ddg', 'Fdg', 'Swd'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ne.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ne.php
new file mode 100644
index 0000000..d4caf0e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ne.php
@@ -0,0 +1,82 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - nootanghimire
+ * - Josh Soref
+ * - Nj Subedi
+ * - JD Isaacks
+ */
+return [
+    'year' => 'एक बर्ष|:count बर्ष',
+    'y' => ':count वर्ष',
+    'month' => 'एक महिना|:count महिना',
+    'm' => ':count महिना',
+    'week' => ':count हप्ता',
+    'w' => ':count हप्ता',
+    'day' => 'एक दिन|:count दिन',
+    'd' => ':count दिन',
+    'hour' => 'एक घण्टा|:count घण्टा',
+    'h' => ':count घण्टा',
+    'minute' => 'एक मिनेट|:count मिनेट',
+    'min' => ':count मिनेट',
+    'second' => 'केही क्षण|:count सेकेण्ड',
+    's' => ':count सेकेण्ड',
+    'ago' => ':time अगाडि',
+    'from_now' => ':timeमा',
+    'after' => ':time पछि',
+    'before' => ':time अघि',
+    'diff_now' => 'अहिले',
+    'diff_today' => 'आज',
+    'diff_yesterday' => 'हिजो',
+    'diff_tomorrow' => 'भोलि',
+    'formats' => [
+        'LT' => 'Aको h:mm बजे',
+        'LTS' => 'Aको h:mm:ss बजे',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY, Aको h:mm बजे',
+        'LLLL' => 'dddd, D MMMM YYYY, Aको h:mm बजे',
+    ],
+    'calendar' => [
+        'sameDay' => '[आज] LT',
+        'nextDay' => '[भोलि] LT',
+        'nextWeek' => '[आउँदो] dddd[,] LT',
+        'lastDay' => '[हिजो] LT',
+        'lastWeek' => '[गएको] dddd[,] LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => function ($hour) {
+        if ($hour < 3) {
+            return 'राति';
+        }
+        if ($hour < 12) {
+            return 'बिहान';
+        }
+        if ($hour < 16) {
+            return 'दिउँसो';
+        }
+        if ($hour < 20) {
+            return 'साँझ';
+        }
+
+        return 'राति';
+    },
+    'months' => ['जनवरी', 'फेब्रुवरी', 'मार्च', 'अप्रिल', 'मई', 'जुन', 'जुलाई', 'अगष्ट', 'सेप्टेम्बर', 'अक्टोबर', 'नोभेम्बर', 'डिसेम्बर'],
+    'months_short' => ['जन.', 'फेब्रु.', 'मार्च', 'अप्रि.', 'मई', 'जुन', 'जुलाई.', 'अग.', 'सेप्ट.', 'अक्टो.', 'नोभे.', 'डिसे.'],
+    'weekdays' => ['आइतबार', 'सोमबार', 'मङ्गलबार', 'बुधबार', 'बिहिबार', 'शुक्रबार', 'शनिबार'],
+    'weekdays_short' => ['आइत.', 'सोम.', 'मङ्गल.', 'बुध.', 'बिहि.', 'शुक्र.', 'शनि.'],
+    'weekdays_min' => ['आ.', 'सो.', 'मं.', 'बु.', 'बि.', 'शु.', 'श.'],
+    'list' => [', ', ' र '],
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ne_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ne_IN.php
new file mode 100644
index 0000000..2583bcf
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ne_IN.php
@@ -0,0 +1,24 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ne.php', [
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'yy/M/d',
+        'LL' => 'YYYY MMM D',
+        'LLL' => 'YYYY MMMM D, h:mm a',
+        'LLLL' => 'YYYY MMMM D, dddd, h:mm a',
+    ],
+    'months' => ['जनवरी', 'फेब्रुअरी', 'मार्च', 'अप्रिल', 'मे', 'जुन', 'जुलाई', 'अगस्ट', 'सेप्टेम्बर', 'अक्टोबर', 'नोभेम्बर', 'डिसेम्बर'],
+    'months_short' => ['जनवरी', 'फेब्रुअरी', 'मार्च', 'अप्रिल', 'मे', 'जुन', 'जुलाई', 'अगस्ट', 'सेप्टेम्बर', 'अक्टोबर', 'नोभेम्बर', 'डिसेम्बर'],
+    'weekend' => [0, 0],
+    'meridiem' => ['पूर्वाह्न', 'अपराह्न'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ne_NP.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ne_NP.php
new file mode 100644
index 0000000..38caa1e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ne_NP.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ne.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nhn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nhn.php
new file mode 100644
index 0000000..5a85831
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nhn.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/nhn_MX.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nhn_MX.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nhn_MX.php
new file mode 100644
index 0000000..9db88a1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nhn_MX.php
@@ -0,0 +1,50 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    libc-alpha@sourceware.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YY',
+    ],
+    'months' => ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre'],
+    'months_short' => ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', 'oct', 'nov', 'dic'],
+    'weekdays' => ['teoilhuitl', 'ceilhuitl', 'omeilhuitl', 'yeilhuitl', 'nahuilhuitl', 'macuililhuitl', 'chicuaceilhuitl'],
+    'weekdays_short' => ['teo', 'cei', 'ome', 'yei', 'nau', 'mac', 'chi'],
+    'weekdays_min' => ['teo', 'cei', 'ome', 'yei', 'nau', 'mac', 'chi'],
+    'day_of_first_week_of_year' => 1,
+
+    'month' => ':count metztli', // less reliable
+    'm' => ':count metztli', // less reliable
+    'a_month' => ':count metztli', // less reliable
+
+    'week' => ':count tonalli', // less reliable
+    'w' => ':count tonalli', // less reliable
+    'a_week' => ':count tonalli', // less reliable
+
+    'day' => ':count tonatih', // less reliable
+    'd' => ':count tonatih', // less reliable
+    'a_day' => ':count tonatih', // less reliable
+
+    'minute' => ':count toltecayotl', // less reliable
+    'min' => ':count toltecayotl', // less reliable
+    'a_minute' => ':count toltecayotl', // less reliable
+
+    'second' => ':count ome', // less reliable
+    's' => ':count ome', // less reliable
+    'a_second' => ':count ome', // less reliable
+
+    'year' => ':count xihuitl',
+    'y' => ':count xihuitl',
+    'a_year' => ':count xihuitl',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/niu.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/niu.php
new file mode 100644
index 0000000..bd9be8a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/niu.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/niu_NU.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/niu_NU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/niu_NU.php
new file mode 100644
index 0000000..6e7a697
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/niu_NU.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RockET Systems Emani Fakaotimanava-Lui emani@niue.nu
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YY',
+    ],
+    'months' => ['Ianuali', 'Fepuali', 'Masi', 'Apelila', 'Me', 'Iuni', 'Iulai', 'Aokuso', 'Sepetema', 'Oketopa', 'Novema', 'Tesemo'],
+    'months_short' => ['Ian', 'Fep', 'Mas', 'Ape', 'Me', 'Iun', 'Iul', 'Aok', 'Sep', 'Oke', 'Nov', 'Tes'],
+    'weekdays' => ['Aho Tapu', 'Aho Gofua', 'Aho Ua', 'Aho Lotu', 'Aho Tuloto', 'Aho Falaile', 'Aho Faiumu'],
+    'weekdays_short' => ['Tapu', 'Gofua', 'Ua', 'Lotu', 'Tuloto', 'Falaile', 'Faiumu'],
+    'weekdays_min' => ['Tapu', 'Gofua', 'Ua', 'Lotu', 'Tuloto', 'Falaile', 'Faiumu'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+
+    'year' => ':count tau',
+    'y' => ':count tau',
+    'a_year' => ':count tau',
+
+    'month' => ':count mahina',
+    'm' => ':count mahina',
+    'a_month' => ':count mahina',
+
+    'week' => ':count faahi tapu',
+    'w' => ':count faahi tapu',
+    'a_week' => ':count faahi tapu',
+
+    'day' => ':count aho',
+    'd' => ':count aho',
+    'a_day' => ':count aho',
+
+    'hour' => ':count e tulā',
+    'h' => ':count e tulā',
+    'a_hour' => ':count e tulā',
+
+    'minute' => ':count minuti',
+    'min' => ':count minuti',
+    'a_minute' => ':count minuti',
+
+    'second' => ':count sekone',
+    's' => ':count sekone',
+    'a_second' => ':count sekone',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl.php
new file mode 100644
index 0000000..fc8b5d9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl.php
@@ -0,0 +1,113 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Roy
+ * - Stephan
+ * - François B
+ * - Tim Fish
+ * - Kevin Huang
+ * - Jacob Middag
+ * - JD Isaacks
+ * - Roy
+ * - Stephan
+ * - François B
+ * - Tim Fish
+ * - Jacob Middag
+ * - JD Isaacks
+ * - Propaganistas
+ * - MegaXLR
+ * - adriaanzon
+ * - MonkeyPhysics
+ * - JeroenG
+ * - RikSomers
+ * - proclame
+ * - Rik de Groot (hwdegroot)
+ */
+return [
+    'year' => ':count jaar|:count jaar',
+    'a_year' => 'een jaar|:count jaar',
+    'y' => ':countj',
+    'month' => ':count maand|:count maanden',
+    'a_month' => 'een maand|:count maanden',
+    'm' => ':countmnd',
+    'week' => ':count week|:count weken',
+    'a_week' => 'een week|:count weken',
+    'w' => ':countw',
+    'day' => ':count dag|:count dagen',
+    'a_day' => 'een dag|:count dagen',
+    'd' => ':countd',
+    'hour' => ':count uur|:count uur',
+    'a_hour' => 'een uur|:count uur',
+    'h' => ':countu',
+    'minute' => ':count minuut|:count minuten',
+    'a_minute' => 'een minuut|:count minuten',
+    'min' => ':countmin',
+    'second' => ':count seconde|:count seconden',
+    'a_second' => 'een paar seconden|:count seconden',
+    's' => ':counts',
+    'ago' => ':time geleden',
+    'from_now' => 'over :time',
+    'after' => ':time later',
+    'before' => ':time eerder',
+    'diff_now' => 'nu',
+    'diff_today' => 'vandaag',
+    'diff_today_regexp' => 'vandaag(?:\\s+om)?',
+    'diff_yesterday' => 'gisteren',
+    'diff_yesterday_regexp' => 'gisteren(?:\\s+om)?',
+    'diff_tomorrow' => 'morgen',
+    'diff_tomorrow_regexp' => 'morgen(?:\\s+om)?',
+    'diff_after_tomorrow' => 'overmorgen',
+    'diff_before_yesterday' => 'eergisteren',
+    'period_recurrences' => ':count keer',
+    'period_interval' => function (string $interval = '') {
+        /** @var string $output */
+        $output = preg_replace('/^(een|één|1)\s+/', '', $interval);
+
+        if (preg_match('/^(een|één|1)( jaar|j| uur|u)/', $interval)) {
+            return "elk $output";
+        }
+
+        return "elke $output";
+    },
+    'period_start_date' => 'van :date',
+    'period_end_date' => 'tot :date',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD-MM-YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[vandaag om] LT',
+        'nextDay' => '[morgen om] LT',
+        'nextWeek' => 'dddd [om] LT',
+        'lastDay' => '[gisteren om] LT',
+        'lastWeek' => '[afgelopen] dddd [om] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number) {
+        return $number.(($number === 1 || $number === 8 || $number >= 20) ? 'ste' : 'de');
+    },
+    'months' => ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'],
+    'months_short' => ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
+    'mmm_suffix' => '.',
+    'weekdays' => ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
+    'weekdays_short' => ['zo.', 'ma.', 'di.', 'wo.', 'do.', 'vr.', 'za.'],
+    'weekdays_min' => ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' en '],
+    'meridiem' => ['\'s ochtends', '\'s middags'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl_AW.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl_AW.php
new file mode 100644
index 0000000..5ec136d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl_AW.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Free Software Foundation, Inc.    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/nl.php', [
+    'formats' => [
+        'L' => 'DD-MM-YY',
+    ],
+    'months' => ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'],
+    'months_short' => ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
+    'weekdays' => ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
+    'weekdays_short' => ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
+    'weekdays_min' => ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl_BE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl_BE.php
new file mode 100644
index 0000000..037f5b4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl_BE.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Roy
+ * - Stephan
+ * - François B
+ * - Tim Fish
+ * - Kevin Huang
+ * - Jacob Middag
+ * - JD Isaacks
+ * - Propaganistas
+ */
+return array_replace_recursive(require __DIR__.'/nl.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl_BQ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl_BQ.php
new file mode 100644
index 0000000..521d2d6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl_BQ.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/nl.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl_CW.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl_CW.php
new file mode 100644
index 0000000..521d2d6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl_CW.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/nl.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl_NL.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl_NL.php
new file mode 100644
index 0000000..14e4853
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl_NL.php
@@ -0,0 +1,24 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/nl.php', [
+    'months' => ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'],
+    'months_short' => ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
+    'weekdays' => ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
+    'weekdays_short' => ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
+    'weekdays_min' => ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl_SR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl_SR.php
new file mode 100644
index 0000000..521d2d6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl_SR.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/nl.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl_SX.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl_SX.php
new file mode 100644
index 0000000..521d2d6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nl_SX.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/nl.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nmg.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nmg.php
new file mode 100644
index 0000000..f8850e2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nmg.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['maná', 'kugú'],
+    'weekdays' => ['sɔ́ndɔ', 'mɔ́ndɔ', 'sɔ́ndɔ mafú mába', 'sɔ́ndɔ mafú málal', 'sɔ́ndɔ mafú mána', 'mabágá má sukul', 'sásadi'],
+    'weekdays_short' => ['sɔ́n', 'mɔ́n', 'smb', 'sml', 'smn', 'mbs', 'sas'],
+    'weekdays_min' => ['sɔ́n', 'mɔ́n', 'smb', 'sml', 'smn', 'mbs', 'sas'],
+    'months' => ['ngwɛn matáhra', 'ngwɛn ńmba', 'ngwɛn ńlal', 'ngwɛn ńna', 'ngwɛn ńtan', 'ngwɛn ńtuó', 'ngwɛn hɛmbuɛrí', 'ngwɛn lɔmbi', 'ngwɛn rɛbvuâ', 'ngwɛn wum', 'ngwɛn wum navǔr', 'krísimin'],
+    'months_short' => ['ng1', 'ng2', 'ng3', 'ng4', 'ng5', 'ng6', 'ng7', 'ng8', 'ng9', 'ng10', 'ng11', 'kris'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nn.php
new file mode 100644
index 0000000..041f7b2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nn.php
@@ -0,0 +1,78 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - François B
+ * - Alexander Tømmerås
+ * - Øystein
+ * - JD Isaacks
+ * - Gaute Hvoslef Kvalnes (gaute)
+ */
+return [
+    'year' => ':count år',
+    'a_year' => 'eit år|:count år',
+    'y' => ':count år',
+    'month' => ':count månad|:count månader',
+    'a_month' => 'ein månad|:count månader',
+    'm' => ':count md',
+    'week' => ':count veke|:count veker',
+    'a_week' => 'ei veke|:count veker',
+    'w' => ':countv',
+    'day' => ':count dag|:count dagar',
+    'a_day' => 'ein dag|:count dagar',
+    'd' => ':countd',
+    'hour' => ':count time|:count timar',
+    'a_hour' => 'ein time|:count timar',
+    'h' => ':countt',
+    'minute' => ':count minutt',
+    'a_minute' => 'eit minutt|:count minutt',
+    'min' => ':countm',
+    'second' => ':count sekund',
+    'a_second' => 'nokre sekund|:count sekund',
+    's' => ':counts',
+    'ago' => ':time sidan',
+    'from_now' => 'om :time',
+    'after' => ':time etter',
+    'before' => ':time før',
+    'diff_today' => 'I dag',
+    'diff_yesterday' => 'I går',
+    'diff_yesterday_regexp' => 'I går(?:\\s+klokka)?',
+    'diff_tomorrow' => 'I morgon',
+    'diff_tomorrow_regexp' => 'I morgon(?:\\s+klokka)?',
+    'diff_today_regexp' => 'I dag(?:\\s+klokka)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D. MMMM YYYY',
+        'LLL' => 'D. MMMM YYYY [kl.] H:mm',
+        'LLLL' => 'dddd D. MMMM YYYY [kl.] HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[I dag klokka] LT',
+        'nextDay' => '[I morgon klokka] LT',
+        'nextWeek' => 'dddd [klokka] LT',
+        'lastDay' => '[I går klokka] LT',
+        'lastWeek' => '[Føregåande] dddd [klokka] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':number.',
+    'months' => ['januar', 'februar', 'mars', 'april', 'mai', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'desember'],
+    'months_short' => ['jan', 'feb', 'mar', 'apr', 'mai', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'des'],
+    'weekdays' => ['sundag', 'måndag', 'tysdag', 'onsdag', 'torsdag', 'fredag', 'laurdag'],
+    'weekdays_short' => ['sun', 'mån', 'tys', 'ons', 'tor', 'fre', 'lau'],
+    'weekdays_min' => ['su', 'må', 'ty', 'on', 'to', 'fr', 'la'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' og '],
+    'meridiem' => ['f.m.', 'e.m.'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nn_NO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nn_NO.php
new file mode 100644
index 0000000..ebbe0b7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nn_NO.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/nn.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nnh.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nnh.php
new file mode 100644
index 0000000..fa6a448
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nnh.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['mbaʼámbaʼ', 'ncwònzém'],
+    'weekdays' => null,
+    'weekdays_short' => ['lyɛʼɛ́ sẅíŋtè', 'mvfò lyɛ̌ʼ', 'mbɔ́ɔntè mvfò lyɛ̌ʼ', 'tsètsɛ̀ɛ lyɛ̌ʼ', 'mbɔ́ɔntè tsetsɛ̀ɛ lyɛ̌ʼ', 'mvfò màga lyɛ̌ʼ', 'màga lyɛ̌ʼ'],
+    'weekdays_min' => null,
+    'months' => null,
+    'months_short' => ['saŋ tsetsɛ̀ɛ lùm', 'saŋ kàg ngwóŋ', 'saŋ lepyè shúm', 'saŋ cÿó', 'saŋ tsɛ̀ɛ cÿó', 'saŋ njÿoláʼ', 'saŋ tyɛ̀b tyɛ̀b mbʉ̀ŋ', 'saŋ mbʉ̀ŋ', 'saŋ ngwɔ̀ʼ mbÿɛ', 'saŋ tàŋa tsetsáʼ', 'saŋ mejwoŋó', 'saŋ lùm'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/yy',
+        'LL' => 'D MMM, YYYY',
+        'LLL' => '[lyɛ]̌ʼ d [na] MMMM, YYYY HH:mm',
+        'LLLL' => 'dddd , [lyɛ]̌ʼ d [na] MMMM, YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/no.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/no.php
new file mode 100644
index 0000000..f4497c7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/no.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Daniel S. Billing
+ * - Paul
+ * - Jimmie Johansson
+ * - Jens Herlevsen
+ */
+return array_replace_recursive(require __DIR__.'/nb.php', [
+    'formats' => [
+        'LLL' => 'D. MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D. MMMM YYYY [kl.] HH:mm',
+    ],
+    'calendar' => [
+        'nextWeek' => 'på dddd [kl.] LT',
+        'lastWeek' => '[i] dddd[s kl.] LT',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nr.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nr.php
new file mode 100644
index 0000000..1bc999f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nr.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/nr_ZA.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nr_ZA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nr_ZA.php
new file mode 100644
index 0000000..f9a7be8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nr_ZA.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['Janabari', 'uFeberbari', 'uMatjhi', 'u-Apreli', 'Meyi', 'Juni', 'Julayi', 'Arhostosi', 'Septemba', 'Oktoba', 'Usinyikhaba', 'Disemba'],
+    'months_short' => ['Jan', 'Feb', 'Mat', 'Apr', 'Mey', 'Jun', 'Jul', 'Arh', 'Sep', 'Okt', 'Usi', 'Dis'],
+    'weekdays' => ['uSonto', 'uMvulo', 'uLesibili', 'lesithathu', 'uLesine', 'ngoLesihlanu', 'umGqibelo'],
+    'weekdays_short' => ['Son', 'Mvu', 'Bil', 'Tha', 'Ne', 'Hla', 'Gqi'],
+    'weekdays_min' => ['Son', 'Mvu', 'Bil', 'Tha', 'Ne', 'Hla', 'Gqi'],
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nso.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nso.php
new file mode 100644
index 0000000..2a6cabb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nso.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/nso_ZA.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nso_ZA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nso_ZA.php
new file mode 100644
index 0000000..b08fe6d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nso_ZA.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['Janaware', 'Febereware', 'Matšhe', 'Aprele', 'Mei', 'June', 'Julae', 'Agostose', 'Setemere', 'Oktobere', 'Nofemere', 'Disemere'],
+    'months_short' => ['Jan', 'Feb', 'Mat', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Set', 'Okt', 'Nof', 'Dis'],
+    'weekdays' => ['LaMorena', 'Mošupologo', 'Labobedi', 'Laboraro', 'Labone', 'Labohlano', 'Mokibelo'],
+    'weekdays_short' => ['Son', 'Moš', 'Bed', 'Rar', 'Ne', 'Hla', 'Mok'],
+    'weekdays_min' => ['Son', 'Moš', 'Bed', 'Rar', 'Ne', 'Hla', 'Mok'],
+    'day_of_first_week_of_year' => 1,
+
+    'year' => ':count ngwaga',
+    'y' => ':count ngwaga',
+    'a_year' => ':count ngwaga',
+
+    'month' => ':count Kgwedi',
+    'm' => ':count Kgwedi',
+    'a_month' => ':count Kgwedi',
+
+    'week' => ':count Beke',
+    'w' => ':count Beke',
+    'a_week' => ':count Beke',
+
+    'day' => ':count Letšatši',
+    'd' => ':count Letšatši',
+    'a_day' => ':count Letšatši',
+
+    'hour' => ':count Iri',
+    'h' => ':count Iri',
+    'a_hour' => ':count Iri',
+
+    'minute' => ':count Motsotso',
+    'min' => ':count Motsotso',
+    'a_minute' => ':count Motsotso',
+
+    'second' => ':count motsotswana',
+    's' => ':count motsotswana',
+    'a_second' => ':count motsotswana',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nus.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nus.php
new file mode 100644
index 0000000..033e975
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nus.php
@@ -0,0 +1,35 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['RW', 'TŊ'],
+    'weekdays' => ['Cäŋ kuɔth', 'Jiec la̱t', 'Rɛw lätni', 'Diɔ̱k lätni', 'Ŋuaan lätni', 'Dhieec lätni', 'Bäkɛl lätni'],
+    'weekdays_short' => ['Cäŋ', 'Jiec', 'Rɛw', 'Diɔ̱k', 'Ŋuaan', 'Dhieec', 'Bäkɛl'],
+    'weekdays_min' => ['Cäŋ', 'Jiec', 'Rɛw', 'Diɔ̱k', 'Ŋuaan', 'Dhieec', 'Bäkɛl'],
+    'months' => ['Tiop thar pɛt', 'Pɛt', 'Duɔ̱ɔ̱ŋ', 'Guak', 'Duät', 'Kornyoot', 'Pay yie̱tni', 'Tho̱o̱r', 'Tɛɛr', 'Laath', 'Kur', 'Tio̱p in di̱i̱t'],
+    'months_short' => ['Tiop', 'Pɛt', 'Duɔ̱ɔ̱', 'Guak', 'Duä', 'Kor', 'Pay', 'Thoo', 'Tɛɛ', 'Laa', 'Kur', 'Tid'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'D/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY h:mm a',
+        'LLLL' => 'dddd D MMMM YYYY h:mm a',
+    ],
+
+    'year' => ':count jiök', // less reliable
+    'y' => ':count jiök', // less reliable
+    'a_year' => ':count jiök', // less reliable
+
+    'month' => ':count pay', // less reliable
+    'm' => ':count pay', // less reliable
+    'a_month' => ':count pay', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nyn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nyn.php
new file mode 100644
index 0000000..fdc2ff4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/nyn.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'weekdays' => ['Sande', 'Orwokubanza', 'Orwakabiri', 'Orwakashatu', 'Orwakana', 'Orwakataano', 'Orwamukaaga'],
+    'weekdays_short' => ['SAN', 'ORK', 'OKB', 'OKS', 'OKN', 'OKT', 'OMK'],
+    'weekdays_min' => ['SAN', 'ORK', 'OKB', 'OKS', 'OKN', 'OKT', 'OMK'],
+    'months' => ['Okwokubanza', 'Okwakabiri', 'Okwakashatu', 'Okwakana', 'Okwakataana', 'Okwamukaaga', 'Okwamushanju', 'Okwamunaana', 'Okwamwenda', 'Okwaikumi', 'Okwaikumi na kumwe', 'Okwaikumi na ibiri'],
+    'months_short' => ['KBZ', 'KBR', 'KST', 'KKN', 'KTN', 'KMK', 'KMS', 'KMN', 'KMW', 'KKM', 'KNK', 'KNB'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/oc.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/oc.php
new file mode 100644
index 0000000..94c3e04
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/oc.php
@@ -0,0 +1,98 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Quentí
+ */
+// @codeCoverageIgnoreStart
+if (class_exists('Symfony\\Component\\Translation\\PluralizationRules')) {
+    \Symfony\Component\Translation\PluralizationRules::set(function ($number) {
+        return $number == 1 ? 0 : 1;
+    }, 'oc');
+}
+// @codeCoverageIgnoreEnd
+
+return [
+    'year' => ':count an|:count ans',
+    'a_year' => 'un an|:count ans',
+    'y' => ':count an|:count ans',
+    'month' => ':count mes|:count meses',
+    'a_month' => 'un mes|:count meses',
+    'm' => ':count mes|:count meses',
+    'week' => ':count setmana|:count setmanas',
+    'a_week' => 'una setmana|:count setmanas',
+    'w' => ':count setmana|:count setmanas',
+    'day' => ':count jorn|:count jorns',
+    'a_day' => 'un jorn|:count jorns',
+    'd' => ':count jorn|:count jorns',
+    'hour' => ':count ora|:count oras',
+    'a_hour' => 'una ora|:count oras',
+    'h' => ':count ora|:count oras',
+    'minute' => ':count minuta|:count minutas',
+    'a_minute' => 'una minuta|:count minutas',
+    'min' => ':count minuta|:count minutas',
+    'second' => ':count segonda|:count segondas',
+    'a_second' => 'una segonda|:count segondas',
+    's' => ':count segonda|:count segondas',
+    'ago' => 'fa :time',
+    'from_now' => 'd\'aquí :time',
+    'after' => ':time aprèp',
+    'before' => ':time abans',
+    'diff_now' => 'ara meteis',
+    'diff_today' => 'Uèi',
+    'diff_today_regexp' => 'Uèi(?:\\s+a)?',
+    'diff_yesterday' => 'ièr',
+    'diff_yesterday_regexp' => 'Ièr(?:\\s+a)?',
+    'diff_tomorrow' => 'deman',
+    'diff_tomorrow_regexp' => 'Deman(?:\\s+a)?',
+    'diff_before_yesterday' => 'ièr delà',
+    'diff_after_tomorrow' => 'deman passat',
+    'period_recurrences' => ':count còp|:count còps',
+    'period_interval' => 'cada :interval',
+    'period_start_date' => 'de :date',
+    'period_end_date' => 'fins a :date',
+    'formats' => [
+        'LT' => 'H:mm',
+        'LTS' => 'H:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM [de] YYYY',
+        'LLL' => 'D MMMM [de] YYYY [a] H:mm',
+        'LLLL' => 'dddd D MMMM [de] YYYY [a] H:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Uèi a] LT',
+        'nextDay' => '[Deman a] LT',
+        'nextWeek' => 'dddd [a] LT',
+        'lastDay' => '[Ièr a] LT',
+        'lastWeek' => 'dddd [passat a] LT',
+        'sameElse' => 'L',
+    ],
+    'months' => ['de genièr', 'de febrièr', 'de març', 'd\'abrial', 'de mai', 'de junh', 'de julhet', 'd\'agost', 'de setembre', 'd’octòbre', 'de novembre', 'de decembre'],
+    'months_standalone' => ['genièr', 'febrièr', 'març', 'abrial', 'mai', 'junh', 'julh', 'agost', 'setembre', 'octòbre', 'novembre', 'decembre'],
+    'months_short' => ['gen.', 'feb.', 'març', 'abr.', 'mai', 'junh', 'julh', 'ago.', 'sep.', 'oct.', 'nov.', 'dec.'],
+    'weekdays' => ['dimenge', 'diluns', 'dimars', 'dimècres', 'dijòus', 'divendres', 'dissabte'],
+    'weekdays_short' => ['dg', 'dl', 'dm', 'dc', 'dj', 'dv', 'ds'],
+    'weekdays_min' => ['dg', 'dl', 'dm', 'dc', 'dj', 'dv', 'ds'],
+    'ordinal' => function ($number, string $period = '') {
+        $ordinal = [1 => 'èr', 2 => 'nd'][(int) $number] ?? 'en';
+
+        // feminine for year, week, hour, minute, second
+        if (preg_match('/^[yYwWhHgGis]$/', $period)) {
+            $ordinal .= 'a';
+        }
+
+        return $number.$ordinal;
+    },
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' e '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/oc_FR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/oc_FR.php
new file mode 100644
index 0000000..fde859f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/oc_FR.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/oc.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/om.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/om.php
new file mode 100644
index 0000000..b8d5a0b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/om.php
@@ -0,0 +1,60 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ge'ez Frontier Foundation & Sagalee Oromoo Publishing Co. Inc.    locales@geez.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'dd-MMM-YYYY',
+        'LLL' => 'dd MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, MMMM D, YYYY HH:mm',
+    ],
+    'months' => ['Amajjii', 'Guraandhala', 'Bitooteessa', 'Elba', 'Caamsa', 'Waxabajjii', 'Adooleessa', 'Hagayya', 'Fuulbana', 'Onkololeessa', 'Sadaasa', 'Muddee'],
+    'months_short' => ['Ama', 'Gur', 'Bit', 'Elb', 'Cam', 'Wax', 'Ado', 'Hag', 'Ful', 'Onk', 'Sad', 'Mud'],
+    'weekdays' => ['Dilbata', 'Wiixata', 'Qibxata', 'Roobii', 'Kamiisa', 'Jimaata', 'Sanbata'],
+    'weekdays_short' => ['Dil', 'Wix', 'Qib', 'Rob', 'Kam', 'Jim', 'San'],
+    'weekdays_min' => ['Dil', 'Wix', 'Qib', 'Rob', 'Kam', 'Jim', 'San'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['WD', 'WB'],
+
+    'year' => 'wggoota :count',
+    'y' => 'wggoota :count',
+    'a_year' => 'wggoota :count',
+
+    'month' => 'ji’a :count',
+    'm' => 'ji’a :count',
+    'a_month' => 'ji’a :count',
+
+    'week' => 'torban :count',
+    'w' => 'torban :count',
+    'a_week' => 'torban :count',
+
+    'day' => 'guyyaa :count',
+    'd' => 'guyyaa :count',
+    'a_day' => 'guyyaa :count',
+
+    'hour' => 'saʼaatii :count',
+    'h' => 'saʼaatii :count',
+    'a_hour' => 'saʼaatii :count',
+
+    'minute' => 'daqiiqaa :count',
+    'min' => 'daqiiqaa :count',
+    'a_minute' => 'daqiiqaa :count',
+
+    'second' => 'sekoondii :count',
+    's' => 'sekoondii :count',
+    'a_second' => 'sekoondii :count',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/om_ET.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/om_ET.php
new file mode 100644
index 0000000..4648343
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/om_ET.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/om.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/om_KE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/om_KE.php
new file mode 100644
index 0000000..b29a40f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/om_KE.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/om.php', [
+    'day_of_first_week_of_year' => 0,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/or.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/or.php
new file mode 100644
index 0000000..3aa7173
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/or.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/or_IN.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/or_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/or_IN.php
new file mode 100644
index 0000000..57a89f5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/or_IN.php
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - IBM AP Linux Technology Center, Yamato Software Laboratory    bug-glibc@gnu.org
+ */
+return [
+    'diff_now' => 'ବର୍ତ୍ତମାନ',
+    'diff_yesterday' => 'ଗତକାଲି',
+    'diff_tomorrow' => 'ଆସନ୍ତାକାଲି',
+    'formats' => [
+        'LT' => 'Oh:Om A',
+        'LTS' => 'Oh:Om:Os A',
+        'L' => 'OD-OM-OY',
+        'LL' => 'OD MMMM OY',
+        'LLL' => 'OD MMMM OY Oh:Om A',
+        'LLLL' => 'dddd OD MMMM OY Oh:Om A',
+    ],
+    'months' => ['ଜାନୁଆରୀ', 'ଫେବୃଆରୀ', 'ମାର୍ଚ୍ଚ', 'ଅପ୍ରେଲ', 'ମଇ', 'ଜୁନ', 'ଜୁଲାଇ', 'ଅଗଷ୍ଟ', 'ସେପ୍ଟେମ୍ବର', 'ଅକ୍ଟୋବର', 'ନଭେମ୍ବର', 'ଡିସେମ୍ବର'],
+    'months_short' => ['ଜାନୁଆରୀ', 'ଫେବୃଆରୀ', 'ମାର୍ଚ୍ଚ', 'ଅପ୍ରେଲ', 'ମଇ', 'ଜୁନ', 'ଜୁଲାଇ', 'ଅଗଷ୍ଟ', 'ସେପ୍ଟେମ୍ବର', 'ଅକ୍ଟୋବର', 'ନଭେମ୍ବର', 'ଡିସେମ୍ବର'],
+    'weekdays' => ['ରବିବାର', 'ସୋମବାର', 'ମଙ୍ଗଳବାର', 'ବୁଧବାର', 'ଗୁରୁବାର', 'ଶୁକ୍ରବାର', 'ଶନିବାର'],
+    'weekdays_short' => ['ରବି', 'ସୋମ', 'ମଙ୍ଗଳ', 'ବୁଧ', 'ଗୁରୁ', 'ଶୁକ୍ର', 'ଶନି'],
+    'weekdays_min' => ['ରବି', 'ସୋମ', 'ମଙ୍ଗଳ', 'ବୁଧ', 'ଗୁରୁ', 'ଶୁକ୍ର', 'ଶନି'],
+    'day_of_first_week_of_year' => 1,
+    'alt_numbers' => ['୦', '୧', '୨', '୩', '୪', '୫', '୬', '୭', '୮', '୯', '୧୦', '୧୧', '୧୨', '୧୩', '୧୪', '୧୫', '୧୬', '୧୭', '୧୮', '୧୯', '୨୦', '୨୧', '୨୨', '୨୩', '୨୪', '୨୫', '୨୬', '୨୭', '୨୮', '୨୯', '୩୦', '୩୧', '୩୨', '୩୩', '୩୪', '୩୫', '୩୬', '୩୭', '୩୮', '୩୯', '୪୦', '୪୧', '୪୨', '୪୩', '୪୪', '୪୫', '୪୬', '୪୭', '୪୮', '୪୯', '୫୦', '୫୧', '୫୨', '୫୩', '୫୪', '୫୫', '୫୬', '୫୭', '୫୮', '୫୯', '୬୦', '୬୧', '୬୨', '୬୩', '୬୪', '୬୫', '୬୬', '୬୭', '୬୮', '୬୯', '୭୦', '୭୧', '୭୨', '୭୩', '୭୪', '୭୫', '୭୬', '୭୭', '୭୮', '୭୯', '୮୦', '୮୧', '୮୨', '୮୩', '୮୪', '୮୫', '୮୬', '୮୭', '୮୮', '୮୯', '୯୦', '୯୧', '୯୨', '୯୩', '୯୪', '୯୫', '୯୬', '୯୭', '୯୮', '୯୯'],
+    'year' => ':count ବର୍ଷ',
+    'y' => ':count ବ.',
+    'month' => ':count ମାସ',
+    'm' => ':count ମା.',
+    'week' => ':count ସପ୍ତାହ',
+    'w' => ':count ସପ୍ତା.',
+    'day' => ':count ଦିନ',
+    'd' => ':count ଦିନ',
+    'hour' => ':count ଘଣ୍ତ',
+    'h' => ':count ଘ.',
+    'minute' => ':count ମିନଟ',
+    'min' => ':count ମି.',
+    'second' => ':count ସେକଣ୍ଢ',
+    's' => ':count ସେ.',
+    'ago' => ':time ପୂର୍ବେ',
+    'from_now' => ':timeରେ',
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/os.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/os.php
new file mode 100644
index 0000000..5f55e8a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/os.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/os_RU.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/os_RU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/os_RU.php
new file mode 100644
index 0000000..9592d15
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/os_RU.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD.MM.YYYY',
+    ],
+    'months' => ['январы', 'февралы', 'мартъийы', 'апрелы', 'майы', 'июны', 'июлы', 'августы', 'сентябры', 'октябры', 'ноябры', 'декабры'],
+    'months_short' => ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'],
+    'weekdays' => ['Хуыцаубон', 'Къуырисæр', 'Дыццæг', 'Æртыццæг', 'Цыппæрæм', 'Майрæмбон', 'Сабат'],
+    'weekdays_short' => ['Хцб', 'Крс', 'Дцг', 'Æрт', 'Цпр', 'Мрб', 'Сбт'],
+    'weekdays_min' => ['Хцб', 'Крс', 'Дцг', 'Æрт', 'Цпр', 'Мрб', 'Сбт'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+
+    'minute' => ':count гыццыл', // less reliable
+    'min' => ':count гыццыл', // less reliable
+    'a_minute' => ':count гыццыл', // less reliable
+
+    'second' => ':count æндæр', // less reliable
+    's' => ':count æндæр', // less reliable
+    'a_second' => ':count æндæр', // less reliable
+
+    'year' => ':count аз',
+    'y' => ':count аз',
+    'a_year' => ':count аз',
+
+    'month' => ':count мӕй',
+    'm' => ':count мӕй',
+    'a_month' => ':count мӕй',
+
+    'week' => ':count къуыри',
+    'w' => ':count къуыри',
+    'a_week' => ':count къуыри',
+
+    'day' => ':count бон',
+    'd' => ':count бон',
+    'a_day' => ':count бон',
+
+    'hour' => ':count сахат',
+    'h' => ':count сахат',
+    'a_hour' => ':count сахат',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pa.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pa.php
new file mode 100644
index 0000000..48b2033
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pa.php
@@ -0,0 +1,76 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Philippe Vaucher
+ * - Tsutomu Kuroda
+ * - Punjab
+ */
+return [
+    'year' => 'ਇੱਕ ਸਾਲ|:count ਸਾਲ',
+    'month' => 'ਇੱਕ ਮਹੀਨਾ|:count ਮਹੀਨੇ',
+    'week' => 'ਹਫਤਾ|:count ਹਫ਼ਤੇ',
+    'day' => 'ਇੱਕ ਦਿਨ|:count ਦਿਨ',
+    'hour' => 'ਇੱਕ ਘੰਟਾ|:count ਘੰਟੇ',
+    'minute' => 'ਇਕ ਮਿੰਟ|:count ਮਿੰਟ',
+    'second' => 'ਕੁਝ ਸਕਿੰਟ|:count ਸਕਿੰਟ',
+    'ago' => ':time ਪਹਿਲਾਂ',
+    'from_now' => ':time ਵਿੱਚ',
+    'before' => ':time ਤੋਂ ਪਹਿਲਾਂ',
+    'after' => ':time ਤੋਂ ਬਾਅਦ',
+    'diff_now' => 'ਹੁਣ',
+    'diff_today' => 'ਅਜ',
+    'diff_yesterday' => 'ਕਲ',
+    'diff_tomorrow' => 'ਕਲ',
+    'formats' => [
+        'LT' => 'A h:mm ਵਜੇ',
+        'LTS' => 'A h:mm:ss ਵਜੇ',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY, A h:mm ਵਜੇ',
+        'LLLL' => 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',
+    ],
+    'calendar' => [
+        'sameDay' => '[ਅਜ] LT',
+        'nextDay' => '[ਕਲ] LT',
+        'nextWeek' => '[ਅਗਲਾ] dddd, LT',
+        'lastDay' => '[ਕਲ] LT',
+        'lastWeek' => '[ਪਿਛਲੇ] dddd, LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => function ($hour) {
+        if ($hour < 4) {
+            return 'ਰਾਤ';
+        }
+        if ($hour < 10) {
+            return 'ਸਵੇਰ';
+        }
+        if ($hour < 17) {
+            return 'ਦੁਪਹਿਰ';
+        }
+        if ($hour < 20) {
+            return 'ਸ਼ਾਮ';
+        }
+
+        return 'ਰਾਤ';
+    },
+    'months' => ['ਜਨਵਰੀ', 'ਫ਼ਰਵਰੀ', 'ਮਾਰਚ', 'ਅਪ੍ਰੈਲ', 'ਮਈ', 'ਜੂਨ', 'ਜੁਲਾਈ', 'ਅਗਸਤ', 'ਸਤੰਬਰ', 'ਅਕਤੂਬਰ', 'ਨਵੰਬਰ', 'ਦਸੰਬਰ'],
+    'months_short' => ['ਜਨਵਰੀ', 'ਫ਼ਰਵਰੀ', 'ਮਾਰਚ', 'ਅਪ੍ਰੈਲ', 'ਮਈ', 'ਜੂਨ', 'ਜੁਲਾਈ', 'ਅਗਸਤ', 'ਸਤੰਬਰ', 'ਅਕਤੂਬਰ', 'ਨਵੰਬਰ', 'ਦਸੰਬਰ'],
+    'weekdays' => ['ਐਤਵਾਰ', 'ਸੋਮਵਾਰ', 'ਮੰਗਲਵਾਰ', 'ਬੁਧਵਾਰ', 'ਵੀਰਵਾਰ', 'ਸ਼ੁੱਕਰਵਾਰ', 'ਸ਼ਨੀਚਰਵਾਰ'],
+    'weekdays_short' => ['ਐਤ', 'ਸੋਮ', 'ਮੰਗਲ', 'ਬੁਧ', 'ਵੀਰ', 'ਸ਼ੁਕਰ', 'ਸ਼ਨੀ'],
+    'weekdays_min' => ['ਐਤ', 'ਸੋਮ', 'ਮੰਗਲ', 'ਬੁਧ', 'ਵੀਰ', 'ਸ਼ੁਕਰ', 'ਸ਼ਨੀ'],
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' ਅਤੇ '],
+    'weekend' => [0, 0],
+    'alt_numbers' => ['੦', '੧', '੨', '੩', '੪', '੫', '੬', '੭', '੮', '੯'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pa_Arab.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pa_Arab.php
new file mode 100644
index 0000000..8b04dee
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pa_Arab.php
@@ -0,0 +1,25 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ur.php', [
+    'weekdays' => ['اتوار', 'پیر', 'منگل', 'بُدھ', 'جمعرات', 'جمعہ', 'ہفتہ'],
+    'weekdays_short' => ['اتوار', 'پیر', 'منگل', 'بُدھ', 'جمعرات', 'جمعہ', 'ہفتہ'],
+    'weekdays_min' => ['اتوار', 'پیر', 'منگل', 'بُدھ', 'جمعرات', 'جمعہ', 'ہفتہ'],
+    'months' => ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئ', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'],
+    'months_short' => ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئ', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'],
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY h:mm a',
+        'LLLL' => 'dddd, DD MMMM YYYY h:mm a',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pa_Guru.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pa_Guru.php
new file mode 100644
index 0000000..c0d35ec
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pa_Guru.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/pa.php', [
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'D/M/yy',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY, h:mm a',
+        'LLLL' => 'dddd, D MMMM YYYY, h:mm a',
+    ],
+    'months' => ['ਜਨਵਰੀ', 'ਫ਼ਰਵਰੀ', 'ਮਾਰਚ', 'ਅਪ੍ਰੈਲ', 'ਮਈ', 'ਜੂਨ', 'ਜੁਲਾਈ', 'ਅਗਸਤ', 'ਸਤੰਬਰ', 'ਅਕਤੂਬਰ', 'ਨਵੰਬਰ', 'ਦਸੰਬਰ'],
+    'months_short' => ['ਜਨ', 'ਫ਼ਰ', 'ਮਾਰਚ', 'ਅਪ੍ਰੈ', 'ਮਈ', 'ਜੂਨ', 'ਜੁਲਾ', 'ਅਗ', 'ਸਤੰ', 'ਅਕਤੂ', 'ਨਵੰ', 'ਦਸੰ'],
+    'weekdays' => ['ਐਤਵਾਰ', 'ਸੋਮਵਾਰ', 'ਮੰਗਲਵਾਰ', 'ਬੁੱਧਵਾਰ', 'ਵੀਰਵਾਰ', 'ਸ਼ੁੱਕਰਵਾਰ', 'ਸ਼ਨਿੱਚਰਵਾਰ'],
+    'weekdays_short' => ['ਐਤ', 'ਸੋਮ', 'ਮੰਗਲ', 'ਬੁੱਧ', 'ਵੀਰ', 'ਸ਼ੁੱਕਰ', 'ਸ਼ਨਿੱਚਰ'],
+    'weekdays_min' => ['ਐਤ', 'ਸੋਮ', 'ਮੰਗ', 'ਬੁੱਧ', 'ਵੀਰ', 'ਸ਼ੁੱਕ', 'ਸ਼ਨਿੱ'],
+    'weekend' => [0, 0],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pa_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pa_IN.php
new file mode 100644
index 0000000..ca67642
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pa_IN.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Guo Xiang Tan
+ * - Josh Soref
+ * - Ash
+ * - harpreetkhalsagtbit
+ */
+return require __DIR__.'/pa.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pa_PK.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pa_PK.php
new file mode 100644
index 0000000..f9af11c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pa_PK.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['جنوري', 'فروري', 'مارچ', 'اپريل', 'مٓی', 'جون', 'جولاي', 'اگست', 'ستمبر', 'اكتوبر', 'نومبر', 'دسمبر'],
+    'months_short' => ['جنوري', 'فروري', 'مارچ', 'اپريل', 'مٓی', 'جون', 'جولاي', 'اگست', 'ستمبر', 'اكتوبر', 'نومبر', 'دسمبر'],
+    'weekdays' => ['اتوار', 'پير', 'منگل', 'بدھ', 'جمعرات', 'جمعه', 'هفته'],
+    'weekdays_short' => ['اتوار', 'پير', 'منگل', 'بدھ', 'جمعرات', 'جمعه', 'هفته'],
+    'weekdays_min' => ['اتوار', 'پير', 'منگل', 'بدھ', 'جمعرات', 'جمعه', 'هفته'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['ص', 'ش'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pap.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pap.php
new file mode 100644
index 0000000..b4c1706
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pap.php
@@ -0,0 +1,39 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return [
+    'formats' => [
+        'LT' => 'HH.mm',
+        'LTS' => 'HH.mm:ss',
+        'L' => 'DD-MM-YY',
+        'LL' => 'MMMM [di] DD, YYYY',
+        'LLL' => 'DD MMM HH.mm',
+        'LLLL' => 'MMMM DD, YYYY HH.mm',
+    ],
+    'months' => ['yanüari', 'febrüari', 'mart', 'aprel', 'mei', 'yüni', 'yüli', 'ougùstùs', 'sèptèmber', 'oktober', 'novèmber', 'desèmber'],
+    'months_short' => ['yan', 'feb', 'mar', 'apr', 'mei', 'yün', 'yül', 'oug', 'sèp', 'okt', 'nov', 'des'],
+    'weekdays' => ['djadomingo', 'djaluna', 'djamars', 'djawebs', 'djarason', 'djabierne', 'djasabra'],
+    'weekdays_short' => ['do', 'lu', 'ma', 'we', 'ra', 'bi', 'sa'],
+    'weekdays_min' => ['do', 'lu', 'ma', 'we', 'ra', 'bi', 'sa'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'year' => ':count aña',
+    'month' => ':count luna',
+    'week' => ':count siman',
+    'day' => ':count dia',
+    'hour' => ':count ora',
+    'minute' => ':count minüt',
+    'second' => ':count sekònde',
+    'list' => [', ', ' i '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pap_AW.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pap_AW.php
new file mode 100644
index 0000000..e9a48ff
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pap_AW.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - information from native speaker Pablo Saratxaga pablo@mandrakesoft.com
+ */
+return require __DIR__.'/pap.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pap_CW.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pap_CW.php
new file mode 100644
index 0000000..e9a48ff
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pap_CW.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - information from native speaker Pablo Saratxaga pablo@mandrakesoft.com
+ */
+return require __DIR__.'/pap.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pl.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pl.php
new file mode 100644
index 0000000..ca10fe4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pl.php
@@ -0,0 +1,116 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Wacław Jacek
+ * - François B
+ * - Tim Fish
+ * - Serhan Apaydın
+ * - Massimiliano Caniparoli
+ * - JD Isaacks
+ * - Jakub Szwacz
+ * - Jan
+ * - Paul
+ * - damlys
+ * - Marek (marast78)
+ * - Peter (UnrulyNatives)
+ * - Qrzysio
+ * - Jan (aso824)
+ */
+return [
+    'year' => ':count rok|:count lata|:count lat',
+    'a_year' => 'rok|:count lata|:count lat',
+    'y' => ':count r|:count l|:count l',
+    'month' => ':count miesiąc|:count miesiące|:count miesięcy',
+    'a_month' => 'miesiąc|:count miesiące|:count miesięcy',
+    'm' => ':count mies.',
+    'week' => ':count tydzień|:count tygodnie|:count tygodni',
+    'a_week' => 'tydzień|:count tygodnie|:count tygodni',
+    'w' => ':count tyg.',
+    'day' => ':count dzień|:count dni|:count dni',
+    'a_day' => 'dzień|:count dni|:count dni',
+    'd' => ':count d',
+    'hour' => ':count godzina|:count godziny|:count godzin',
+    'a_hour' => 'godzina|:count godziny|:count godzin',
+    'h' => ':count godz.',
+    'minute' => ':count minuta|:count minuty|:count minut',
+    'a_minute' => 'minuta|:count minuty|:count minut',
+    'min' => ':count min.',
+    'second' => ':count sekunda|:count sekundy|:count sekund',
+    'a_second' => '{1}kilka sekund|:count sekunda|:count sekundy|:count sekund',
+    's' => ':count sek.',
+    'ago' => ':time temu',
+    'from_now' => 'za :time',
+    'after' => ':time po',
+    'before' => ':time przed',
+    'diff_now' => 'przed chwilą',
+    'diff_today' => 'Dziś',
+    'diff_today_regexp' => 'Dziś(?:\\s+o)?',
+    'diff_yesterday' => 'wczoraj',
+    'diff_yesterday_regexp' => 'Wczoraj(?:\\s+o)?',
+    'diff_tomorrow' => 'jutro',
+    'diff_tomorrow_regexp' => 'Jutro(?:\\s+o)?',
+    'diff_before_yesterday' => 'przedwczoraj',
+    'diff_after_tomorrow' => 'pojutrze',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Dziś o] LT',
+        'nextDay' => '[Jutro o] LT',
+        'nextWeek' => function (\Carbon\CarbonInterface $date) {
+            switch ($date->dayOfWeek) {
+                case 0:
+                    return '[W niedzielę o] LT';
+                case 2:
+                    return '[We wtorek o] LT';
+                case 3:
+                    return '[W środę o] LT';
+                case 6:
+                    return '[W sobotę o] LT';
+                default:
+                    return '[W] dddd [o] LT';
+            }
+        },
+        'lastDay' => '[Wczoraj o] LT',
+        'lastWeek' => function (\Carbon\CarbonInterface $date) {
+            switch ($date->dayOfWeek) {
+                case 0:
+                    return '[W zeszłą niedzielę o] LT';
+                case 3:
+                    return '[W zeszłą środę o] LT';
+                case 6:
+                    return '[W zeszłą sobotę o] LT';
+                default:
+                    return '[W zeszły] dddd [o] LT';
+            }
+        },
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':number.',
+    'months' => ['stycznia', 'lutego', 'marca', 'kwietnia', 'maja', 'czerwca', 'lipca', 'sierpnia', 'września', 'października', 'listopada', 'grudnia'],
+    'months_standalone' => ['styczeń', 'luty', 'marzec', 'kwiecień', 'maj', 'czerwiec', 'lipiec', 'sierpień', 'wrzesień', 'październik', 'listopad', 'grudzień'],
+    'months_short' => ['sty', 'lut', 'mar', 'kwi', 'maj', 'cze', 'lip', 'sie', 'wrz', 'paź', 'lis', 'gru'],
+    'months_regexp' => '/(DD?o?\.?(\[[^\[\]]*\]|\s)+MMMM?|L{2,4}|l{2,4})/',
+    'weekdays' => ['niedziela', 'poniedziałek', 'wtorek', 'środa', 'czwartek', 'piątek', 'sobota'],
+    'weekdays_short' => ['ndz', 'pon', 'wt', 'śr', 'czw', 'pt', 'sob'],
+    'weekdays_min' => ['Nd', 'Pn', 'Wt', 'Śr', 'Cz', 'Pt', 'So'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' i '],
+    'meridiem' => ['przed południem', 'po południu'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pl_PL.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pl_PL.php
new file mode 100644
index 0000000..69cd697
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pl_PL.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/pl.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/prg.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/prg.php
new file mode 100644
index 0000000..d0fd2f0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/prg.php
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'months' => ['M01', 'M02', 'M03', 'M04', 'M05', 'M06', 'M07', 'M08', 'M09', 'M10', 'M11', 'M12'],
+    'months_short' => ['M01', 'M02', 'M03', 'M04', 'M05', 'M06', 'M07', 'M08', 'M09', 'M10', 'M11', 'M12'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'YYYY-MM-dd',
+        'LL' => 'YYYY MMM D',
+        'LLL' => 'YYYY MMMM D HH:mm',
+        'LLLL' => 'YYYY MMMM D, dddd HH:mm',
+    ],
+
+    'year' => ':count meta',
+    'y' => ':count meta',
+    'a_year' => ':count meta',
+
+    'month' => ':count mēniks', // less reliable
+    'm' => ':count mēniks', // less reliable
+    'a_month' => ':count mēniks', // less reliable
+
+    'week' => ':count sawaītin', // less reliable
+    'w' => ':count sawaītin', // less reliable
+    'a_week' => ':count sawaītin', // less reliable
+
+    'day' => ':count di',
+    'd' => ':count di',
+    'a_day' => ':count di',
+
+    'hour' => ':count bruktēt', // less reliable
+    'h' => ':count bruktēt', // less reliable
+    'a_hour' => ':count bruktēt', // less reliable
+
+    'minute' => ':count līkuts', // less reliable
+    'min' => ':count līkuts', // less reliable
+    'a_minute' => ':count līkuts', // less reliable
+
+    'second' => ':count kitan', // less reliable
+    's' => ':count kitan', // less reliable
+    'a_second' => ':count kitan', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ps.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ps.php
new file mode 100644
index 0000000..a928b28
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ps.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Muhammad Nasir Rahimi
+ * - Nassim Nasibullah (spinzar)
+ */
+return [
+    'year' => ':count کال|:count کاله',
+    'y' => ':countکال|:countکاله',
+    'month' => ':count مياشت|:count مياشتي',
+    'm' => ':countمياشت|:countمياشتي',
+    'week' => ':count اونۍ|:count اونۍ',
+    'w' => ':countاونۍ|:countاونۍ',
+    'day' => ':count ورځ|:count ورځي',
+    'd' => ':countورځ|:countورځي',
+    'hour' => ':count ساعت|:count ساعته',
+    'h' => ':countساعت|:countساعته',
+    'minute' => ':count دقيقه|:count دقيقې',
+    'min' => ':countدقيقه|:countدقيقې',
+    'second' => ':count ثانيه|:count ثانيې',
+    's' => ':countثانيه|:countثانيې',
+    'ago' => ':time دمخه',
+    'from_now' => ':time له اوس څخه',
+    'after' => ':time وروسته',
+    'before' => ':time دمخه',
+    'list' => ['، ', ' او '],
+    'meridiem' => ['غ.م.', 'غ.و.'],
+    'weekdays' => ['اتوار', 'ګل', 'نهه', 'شورو', 'زيارت', 'جمعه', 'خالي'],
+    'weekdays_short' => ['ا', 'ګ', 'ن', 'ش', 'ز', 'ج', 'خ'],
+    'weekdays_min' => ['ا', 'ګ', 'ن', 'ش', 'ز', 'ج', 'خ'],
+    'months' => ['جنوري', 'فبروري', 'مارچ', 'اپریل', 'مۍ', 'جون', 'جولای', 'اگست', 'سېپتمبر', 'اکتوبر', 'نومبر', 'دسمبر'],
+    'months_short' => ['جنوري', 'فبروري', 'مارچ', 'اپریل', 'مۍ', 'جون', 'جولای', 'اگست', 'سېپتمبر', 'اکتوبر', 'نومبر', 'دسمبر'],
+    'months_standalone' => ['جنوري', 'فېبروري', 'مارچ', 'اپریل', 'مۍ', 'جون', 'جولای', 'اگست', 'سپتمبر', 'اکتوبر', 'نومبر', 'دسمبر'],
+    'months_short_standalone' => ['جنوري', 'فبروري', 'مارچ', 'اپریل', 'مۍ', 'جون', 'جولای', 'اگست', 'سپتمبر', 'اکتوبر', 'نومبر', 'دسمبر'],
+    'first_day_of_week' => 6,
+    'weekend' => [4, 5],
+    'formats' => [
+        'LT' => 'H:mm',
+        'LTS' => 'H:mm:ss',
+        'L' => 'YYYY/M/d',
+        'LL' => 'YYYY MMM D',
+        'LLL' => 'د YYYY د MMMM D H:mm',
+        'LLLL' => 'dddd د YYYY د MMMM D H:mm',
+    ],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ps_AF.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ps_AF.php
new file mode 100644
index 0000000..e63121e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ps_AF.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ps.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt.php
new file mode 100644
index 0000000..e36ca4c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt.php
@@ -0,0 +1,104 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Cassiano Montanari
+ * - Matt Pope
+ * - François B
+ * - Prodis
+ * - JD Isaacks
+ * - Raphael Amorim
+ * - João Magalhães
+ * - victortobias
+ * - Paulo Freitas
+ * - Sebastian Thierer
+ * - Claudson Martins (claudsonm)
+ */
+return [
+    'year' => ':count ano|:count anos',
+    'a_year' => 'um ano|:count anos',
+    'y' => ':counta',
+    'month' => ':count mês|:count meses',
+    'a_month' => 'um mês|:count meses',
+    'm' => ':countm',
+    'week' => ':count semana|:count semanas',
+    'a_week' => 'uma semana|:count semanas',
+    'w' => ':countsem',
+    'day' => ':count dia|:count dias',
+    'a_day' => 'um dia|:count dias',
+    'd' => ':countd',
+    'hour' => ':count hora|:count horas',
+    'a_hour' => 'uma hora|:count horas',
+    'h' => ':counth',
+    'minute' => ':count minuto|:count minutos',
+    'a_minute' => 'um minuto|:count minutos',
+    'min' => ':countmin',
+    'second' => ':count segundo|:count segundos',
+    'a_second' => 'alguns segundos|:count segundos',
+    's' => ':counts',
+    'millisecond' => ':count milissegundo|:count milissegundos',
+    'a_millisecond' => 'um milissegundo|:count milissegundos',
+    'ms' => ':countms',
+    'microsecond' => ':count microssegundo|:count microssegundos',
+    'a_microsecond' => 'um microssegundo|:count microssegundos',
+    'µs' => ':countµs',
+    'ago' => 'há :time',
+    'from_now' => 'em :time',
+    'after' => ':time depois',
+    'before' => ':time antes',
+    'diff_now' => 'agora',
+    'diff_today' => 'Hoje',
+    'diff_today_regexp' => 'Hoje(?:\\s+às)?',
+    'diff_yesterday' => 'ontem',
+    'diff_yesterday_regexp' => 'Ontem(?:\\s+às)?',
+    'diff_tomorrow' => 'amanhã',
+    'diff_tomorrow_regexp' => 'Amanhã(?:\\s+às)?',
+    'diff_before_yesterday' => 'anteontem',
+    'diff_after_tomorrow' => 'depois de amanhã',
+    'period_recurrences' => 'uma vez|:count vezes',
+    'period_interval' => 'cada :interval',
+    'period_start_date' => 'de :date',
+    'period_end_date' => 'até :date',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D [de] MMMM [de] YYYY',
+        'LLL' => 'D [de] MMMM [de] YYYY HH:mm',
+        'LLLL' => 'dddd, D [de] MMMM [de] YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Hoje às] LT',
+        'nextDay' => '[Amanhã às] LT',
+        'nextWeek' => 'dddd [às] LT',
+        'lastDay' => '[Ontem às] LT',
+        'lastWeek' => function (\Carbon\CarbonInterface $date) {
+            switch ($date->dayOfWeek) {
+                case 0:
+                case 6:
+                    return '[Último] dddd [às] LT';
+                default:
+                    return '[Última] dddd [às] LT';
+            }
+        },
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':numberº',
+    'months' => ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'],
+    'months_short' => ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez'],
+    'weekdays' => ['domingo', 'segunda-feira', 'terça-feira', 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado'],
+    'weekdays_short' => ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'],
+    'weekdays_min' => ['Do', '2ª', '3ª', '4ª', '5ª', '6ª', 'Sá'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' e '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_AO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_AO.php
new file mode 100644
index 0000000..3d13bca
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_AO.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/pt.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_BR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_BR.php
new file mode 100644
index 0000000..e917c5c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_BR.php
@@ -0,0 +1,39 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Cassiano Montanari
+ * - Eduardo Dalla Vecchia
+ * - David Rodrigues
+ * - Matt Pope
+ * - François B
+ * - Prodis
+ * - Marlon Maxwel
+ * - JD Isaacks
+ * - Raphael Amorim
+ * - Rafael Raupp
+ * - felipeleite1
+ * - swalker
+ * - Lucas Macedo
+ * - Paulo Freitas
+ * - Sebastian Thierer
+ */
+return array_replace_recursive(require __DIR__.'/pt.php', [
+    'period_recurrences' => 'uma|:count vez',
+    'period_interval' => 'toda :interval',
+    'formats' => [
+        'LLL' => 'D [de] MMMM [de] YYYY [às] HH:mm',
+        'LLLL' => 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',
+    ],
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_CH.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_CH.php
new file mode 100644
index 0000000..3d13bca
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_CH.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/pt.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_CV.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_CV.php
new file mode 100644
index 0000000..3d13bca
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_CV.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/pt.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_GQ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_GQ.php
new file mode 100644
index 0000000..3d13bca
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_GQ.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/pt.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_GW.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_GW.php
new file mode 100644
index 0000000..3d13bca
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_GW.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/pt.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_LU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_LU.php
new file mode 100644
index 0000000..3d13bca
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_LU.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/pt.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_MO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_MO.php
new file mode 100644
index 0000000..331fa5c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_MO.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/pt.php', [
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'LLL' => 'D [de] MMMM [de] YYYY, h:mm a',
+        'LLLL' => 'dddd, D [de] MMMM [de] YYYY, h:mm a',
+    ],
+    'first_day_of_week' => 0,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_MZ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_MZ.php
new file mode 100644
index 0000000..93bac23
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_MZ.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/pt.php', [
+    'first_day_of_week' => 0,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_PT.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_PT.php
new file mode 100644
index 0000000..2a76fc1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_PT.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RAP    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/pt.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'],
+    'months_short' => ['jan', 'fev', 'mar', 'abr', 'mai', 'jun', 'jul', 'ago', 'set', 'out', 'nov', 'dez'],
+    'weekdays' => ['domingo', 'segunda', 'terça', 'quarta', 'quinta', 'sexta', 'sábado'],
+    'weekdays_short' => ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'],
+    'weekdays_min' => ['dom', 'seg', 'ter', 'qua', 'qui', 'sex', 'sáb'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_ST.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_ST.php
new file mode 100644
index 0000000..3d13bca
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_ST.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/pt.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_TL.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_TL.php
new file mode 100644
index 0000000..3d13bca
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/pt_TL.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/pt.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/qu.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/qu.php
new file mode 100644
index 0000000..5f3a392
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/qu.php
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/es_UY.php', [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM, YYYY HH:mm',
+    ],
+    'first_day_of_week' => 0,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/qu_BO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/qu_BO.php
new file mode 100644
index 0000000..91635d5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/qu_BO.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/qu.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/qu_EC.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/qu_EC.php
new file mode 100644
index 0000000..91635d5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/qu_EC.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/qu.php', [
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/quz.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/quz.php
new file mode 100644
index 0000000..1640c02
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/quz.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/quz_PE.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/quz_PE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/quz_PE.php
new file mode 100644
index 0000000..d322918
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/quz_PE.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Sugar Labs // OLPC sugarlabs.org libc-alpha@sourceware.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YY',
+    ],
+    'months' => ['iniru', 'phiwriru', 'marsu', 'awril', 'mayu', 'huniyu', 'huliyu', 'agustu', 'siptiyimri', 'uktuwri', 'nuwiyimri', 'tisiyimri'],
+    'months_short' => ['ini', 'phi', 'mar', 'awr', 'may', 'hun', 'hul', 'agu', 'sip', 'ukt', 'nuw', 'tis'],
+    'weekdays' => ['tuminku', 'lunis', 'martis', 'miyirkulis', 'juywis', 'wiyirnis', 'sawatu'],
+    'weekdays_short' => ['tum', 'lun', 'mar', 'miy', 'juy', 'wiy', 'saw'],
+    'weekdays_min' => ['tum', 'lun', 'mar', 'miy', 'juy', 'wiy', 'saw'],
+    'day_of_first_week_of_year' => 1,
+
+    'minute' => ':count uchuy', // less reliable
+    'min' => ':count uchuy', // less reliable
+    'a_minute' => ':count uchuy', // less reliable
+
+    'year' => ':count wata',
+    'y' => ':count wata',
+    'a_year' => ':count wata',
+
+    'month' => ':count killa',
+    'm' => ':count killa',
+    'a_month' => ':count killa',
+
+    'week' => ':count simana',
+    'w' => ':count simana',
+    'a_week' => ':count simana',
+
+    'day' => ':count pʼunchaw',
+    'd' => ':count pʼunchaw',
+    'a_day' => ':count pʼunchaw',
+
+    'hour' => ':count ura',
+    'h' => ':count ura',
+    'a_hour' => ':count ura',
+
+    'second' => ':count iskay ñiqin',
+    's' => ':count iskay ñiqin',
+    'a_second' => ':count iskay ñiqin',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/raj.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/raj.php
new file mode 100644
index 0000000..26138c9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/raj.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/raj_IN.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/raj_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/raj_IN.php
new file mode 100644
index 0000000..7b4589c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/raj_IN.php
@@ -0,0 +1,47 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - meghrajsuthar03@gmail.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'D/M/YY',
+    ],
+    'months' => ['जनवरी', 'फरवरी', 'मार्च', 'अप्रैल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितंबर', 'अक्टूबर', 'नवंबर', 'दिसंबर'],
+    'months_short' => ['जन', 'फर', 'मार्च', 'अप्रै', 'मई', 'जून', 'जुल', 'अग', 'सित', 'अक्टू', 'नव', 'दिस'],
+    'weekdays' => ['रविवार', 'सोमवार', 'मंगल्लवार', 'बुधवार', 'बृहस्पतिवार', 'शुक्रवार', 'शनिवार'],
+    'weekdays_short' => ['रवि', 'सोम', 'मंगल', 'बुध', 'बृहस्पति', 'शुक्र', 'शनि'],
+    'weekdays_min' => ['रवि', 'सोम', 'मंगल', 'बुध', 'बृहस्पति', 'शुक्र', 'शनि'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['पूर्वाह्न', 'अपराह्न'],
+
+    'year' => ':count आंहू', // less reliable
+    'y' => ':count आंहू', // less reliable
+    'a_year' => ':count आंहू', // less reliable
+
+    'month' => ':count सूरज', // less reliable
+    'm' => ':count सूरज', // less reliable
+    'a_month' => ':count सूरज', // less reliable
+
+    'week' => ':count निवाज', // less reliable
+    'w' => ':count निवाज', // less reliable
+    'a_week' => ':count निवाज', // less reliable
+
+    'day' => ':count अेक', // less reliable
+    'd' => ':count अेक', // less reliable
+    'a_day' => ':count अेक', // less reliable
+
+    'hour' => ':count दुनियांण', // less reliable
+    'h' => ':count दुनियांण', // less reliable
+    'a_hour' => ':count दुनियांण', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/rm.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/rm.php
new file mode 100644
index 0000000..1843f45
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/rm.php
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Philippe Vaucher
+ * - tjku
+ * - Max Melentiev
+ * - Juanito Fatas
+ * - Tsutomu Kuroda
+ * - Akira Matsuda
+ * - Christopher Dell
+ * - Enrique Vidal
+ * - Simone Carletti
+ * - Aaron Patterson
+ * - Nicolás Hock Isaza
+ * - sebastian de castelberg
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'Do MMMM YYYY',
+        'LLL' => 'Do MMMM, HH:mm [Uhr]',
+        'LLLL' => 'dddd, Do MMMM YYYY, HH:mm [Uhr]',
+    ],
+    'year' => ':count onn|:count onns',
+    'month' => ':count mais',
+    'week' => ':count emna|:count emnas',
+    'day' => ':count di|:count dis',
+    'hour' => ':count oura|:count ouras',
+    'minute' => ':count minuta|:count minutas',
+    'second' => ':count secunda|:count secundas',
+    'weekdays' => ['dumengia', 'glindesdi', 'mardi', 'mesemna', 'gievgia', 'venderdi', 'sonda'],
+    'weekdays_short' => ['du', 'gli', 'ma', 'me', 'gie', 've', 'so'],
+    'weekdays_min' => ['du', 'gli', 'ma', 'me', 'gie', 've', 'so'],
+    'months' => ['schaner', 'favrer', 'mars', 'avrigl', 'matg', 'zercladur', 'fanadur', 'avust', 'settember', 'october', 'november', 'december'],
+    'months_short' => ['schan', 'favr', 'mars', 'avr', 'matg', 'zercl', 'fan', 'avust', 'sett', 'oct', 'nov', 'dec'],
+    'meridiem' => ['avantmezdi', 'suentermezdi'],
+    'list' => [', ', ' e '],
+    'first_day_of_week' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/rn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/rn.php
new file mode 100644
index 0000000..637d4e5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/rn.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['Z.MU.', 'Z.MW.'],
+    'weekdays' => ['Ku w’indwi', 'Ku wa mbere', 'Ku wa kabiri', 'Ku wa gatatu', 'Ku wa kane', 'Ku wa gatanu', 'Ku wa gatandatu'],
+    'weekdays_short' => ['cu.', 'mbe.', 'kab.', 'gtu.', 'kan.', 'gnu.', 'gnd.'],
+    'weekdays_min' => ['cu.', 'mbe.', 'kab.', 'gtu.', 'kan.', 'gnu.', 'gnd.'],
+    'months' => ['Nzero', 'Ruhuhuma', 'Ntwarante', 'Ndamukiza', 'Rusama', 'Ruheshi', 'Mukakaro', 'Nyandagaro', 'Nyakanga', 'Gitugutu', 'Munyonyo', 'Kigarama'],
+    'months_short' => ['Mut.', 'Gas.', 'Wer.', 'Mat.', 'Gic.', 'Kam.', 'Nya.', 'Kan.', 'Nze.', 'Ukw.', 'Ugu.', 'Uku.'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+
+    'year' => 'imyaka :count',
+    'y' => 'imyaka :count',
+    'a_year' => 'imyaka :count',
+
+    'month' => 'amezi :count',
+    'm' => 'amezi :count',
+    'a_month' => 'amezi :count',
+
+    'week' => 'indwi :count',
+    'w' => 'indwi :count',
+    'a_week' => 'indwi :count',
+
+    'day' => 'imisi :count',
+    'd' => 'imisi :count',
+    'a_day' => 'imisi :count',
+
+    'hour' => 'amasaha :count',
+    'h' => 'amasaha :count',
+    'a_hour' => 'amasaha :count',
+
+    'minute' => 'iminuta :count',
+    'min' => 'iminuta :count',
+    'a_minute' => 'iminuta :count',
+
+    'second' => 'inguvu :count', // less reliable
+    's' => 'inguvu :count', // less reliable
+    'a_second' => 'inguvu :count', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ro.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ro.php
new file mode 100644
index 0000000..868a327
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ro.php
@@ -0,0 +1,77 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - JD Isaacks
+ * - Cătălin Georgescu
+ * - Valentin Ivaşcu (oriceon)
+ */
+return [
+    'year' => ':count an|:count ani|:count ani',
+    'a_year' => 'un an|:count ani|:count ani',
+    'y' => ':count a.',
+    'month' => ':count lună|:count luni|:count luni',
+    'a_month' => 'o lună|:count luni|:count luni',
+    'm' => ':count l.',
+    'week' => ':count săptămână|:count săptămâni|:count săptămâni',
+    'a_week' => 'o săptămână|:count săptămâni|:count săptămâni',
+    'w' => ':count săp.',
+    'day' => ':count zi|:count zile|:count zile',
+    'a_day' => 'o zi|:count zile|:count zile',
+    'd' => ':count z.',
+    'hour' => ':count oră|:count ore|:count ore',
+    'a_hour' => 'o oră|:count ore|:count ore',
+    'h' => ':count o.',
+    'minute' => ':count minut|:count minute|:count minute',
+    'a_minute' => 'un minut|:count minute|:count minute',
+    'min' => ':count m.',
+    'second' => ':count secundă|:count secunde|:count secunde',
+    'a_second' => 'câteva secunde|:count secunde|:count secunde',
+    's' => ':count sec.',
+    'ago' => ':time în urmă',
+    'from_now' => 'peste :time',
+    'after' => 'peste :time',
+    'before' => 'acum :time',
+    'diff_now' => 'acum',
+    'diff_today' => 'azi',
+    'diff_today_regexp' => 'azi(?:\\s+la)?',
+    'diff_yesterday' => 'ieri',
+    'diff_yesterday_regexp' => 'ieri(?:\\s+la)?',
+    'diff_tomorrow' => 'mâine',
+    'diff_tomorrow_regexp' => 'mâine(?:\\s+la)?',
+    'formats' => [
+        'LT' => 'H:mm',
+        'LTS' => 'H:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY H:mm',
+        'LLLL' => 'dddd, D MMMM YYYY H:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[azi la] LT',
+        'nextDay' => '[mâine la] LT',
+        'nextWeek' => 'dddd [la] LT',
+        'lastDay' => '[ieri la] LT',
+        'lastWeek' => '[fosta] dddd [la] LT',
+        'sameElse' => 'L',
+    ],
+    'months' => ['ianuarie', 'februarie', 'martie', 'aprilie', 'mai', 'iunie', 'iulie', 'august', 'septembrie', 'octombrie', 'noiembrie', 'decembrie'],
+    'months_short' => ['ian.', 'feb.', 'mar.', 'apr.', 'mai', 'iun.', 'iul.', 'aug.', 'sept.', 'oct.', 'nov.', 'dec.'],
+    'weekdays' => ['duminică', 'luni', 'marți', 'miercuri', 'joi', 'vineri', 'sâmbătă'],
+    'weekdays_short' => ['dum', 'lun', 'mar', 'mie', 'joi', 'vin', 'sâm'],
+    'weekdays_min' => ['du', 'lu', 'ma', 'mi', 'jo', 'vi', 'sâ'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' și '],
+    'meridiem' => ['a.m.', 'p.m.'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ro_MD.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ro_MD.php
new file mode 100644
index 0000000..0ba6f68
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ro_MD.php
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ro.php', [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY, HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY, HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ro_RO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ro_RO.php
new file mode 100644
index 0000000..dd7c8f0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ro_RO.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ro.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/rof.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/rof.php
new file mode 100644
index 0000000..80ab454
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/rof.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['kang’ama', 'kingoto'],
+    'weekdays' => ['Ijumapili', 'Ijumatatu', 'Ijumanne', 'Ijumatano', 'Alhamisi', 'Ijumaa', 'Ijumamosi'],
+    'weekdays_short' => ['Ijp', 'Ijt', 'Ijn', 'Ijtn', 'Alh', 'Iju', 'Ijm'],
+    'weekdays_min' => ['Ijp', 'Ijt', 'Ijn', 'Ijtn', 'Alh', 'Iju', 'Ijm'],
+    'months' => ['Mweri wa kwanza', 'Mweri wa kaili', 'Mweri wa katatu', 'Mweri wa kaana', 'Mweri wa tanu', 'Mweri wa sita', 'Mweri wa saba', 'Mweri wa nane', 'Mweri wa tisa', 'Mweri wa ikumi', 'Mweri wa ikumi na moja', 'Mweri wa ikumi na mbili'],
+    'months_short' => ['M1', 'M2', 'M3', 'M4', 'M5', 'M6', 'M7', 'M8', 'M9', 'M10', 'M11', 'M12'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ru.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ru.php
new file mode 100644
index 0000000..93e0e01
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ru.php
@@ -0,0 +1,188 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Bari Badamshin
+ * - Jørn Ølmheim
+ * - François B
+ * - Tim Fish
+ * - Коренберг Марк (imac)
+ * - Serhan Apaydın
+ * - RomeroMsk
+ * - vsn4ik
+ * - JD Isaacks
+ * - Bari Badamshin
+ * - Jørn Ølmheim
+ * - François B
+ * - Коренберг Марк (imac)
+ * - Serhan Apaydın
+ * - RomeroMsk
+ * - vsn4ik
+ * - JD Isaacks
+ * - Fellzo
+ * - andrey-helldar
+ * - Pavel Skripkin (psxx)
+ * - AlexWalkerson
+ * - Vladislav UnsealedOne
+ * - dima-bzz
+ */
+$transformDiff = function ($input) {
+    return strtr($input, [
+        'неделя' => 'неделю',
+        'секунда' => 'секунду',
+        'минута' => 'минуту',
+    ]);
+};
+
+return [
+    'year' => ':count год|:count года|:count лет',
+    'y' => ':count г.|:count г.|:count л.',
+    'a_year' => '{1}год|:count год|:count года|:count лет',
+    'month' => ':count месяц|:count месяца|:count месяцев',
+    'm' => ':count мес.',
+    'a_month' => '{1}месяц|:count месяц|:count месяца|:count месяцев',
+    'week' => ':count неделя|:count недели|:count недель',
+    'w' => ':count нед.',
+    'a_week' => '{1}неделя|:count неделю|:count недели|:count недель',
+    'day' => ':count день|:count дня|:count дней',
+    'd' => ':count д.',
+    'a_day' => '{1}день|:count день|:count дня|:count дней',
+    'hour' => ':count час|:count часа|:count часов',
+    'h' => ':count ч.',
+    'a_hour' => '{1}час|:count час|:count часа|:count часов',
+    'minute' => ':count минута|:count минуты|:count минут',
+    'min' => ':count мин.',
+    'a_minute' => '{1}минута|:count минута|:count минуты|:count минут',
+    'second' => ':count секунда|:count секунды|:count секунд',
+    's' => ':count сек.',
+    'a_second' => '{1}несколько секунд|:count секунду|:count секунды|:count секунд',
+    'ago' => function ($time) use ($transformDiff) {
+        return $transformDiff($time).' назад';
+    },
+    'from_now' => function ($time) use ($transformDiff) {
+        return 'через '.$transformDiff($time);
+    },
+    'after' => function ($time) use ($transformDiff) {
+        return $transformDiff($time).' после';
+    },
+    'before' => function ($time) use ($transformDiff) {
+        return $transformDiff($time).' до';
+    },
+    'diff_now' => 'только что',
+    'diff_today' => 'Сегодня,',
+    'diff_today_regexp' => 'Сегодня,?(?:\\s+в)?',
+    'diff_yesterday' => 'вчера',
+    'diff_yesterday_regexp' => 'Вчера,?(?:\\s+в)?',
+    'diff_tomorrow' => 'завтра',
+    'diff_tomorrow_regexp' => 'Завтра,?(?:\\s+в)?',
+    'diff_before_yesterday' => 'позавчера',
+    'diff_after_tomorrow' => 'послезавтра',
+    'formats' => [
+        'LT' => 'H:mm',
+        'LTS' => 'H:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D MMMM YYYY г.',
+        'LLL' => 'D MMMM YYYY г., H:mm',
+        'LLLL' => 'dddd, D MMMM YYYY г., H:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Сегодня, в] LT',
+        'nextDay' => '[Завтра, в] LT',
+        'nextWeek' => function (\Carbon\CarbonInterface $current, \Carbon\CarbonInterface $other) {
+            if ($current->week !== $other->week) {
+                switch ($current->dayOfWeek) {
+                    case 0:
+                        return '[В следующее] dddd, [в] LT';
+                    case 1:
+                    case 2:
+                    case 4:
+                        return '[В следующий] dddd, [в] LT';
+                    case 3:
+                    case 5:
+                    case 6:
+                        return '[В следующую] dddd, [в] LT';
+                }
+            }
+
+            if ($current->dayOfWeek === 2) {
+                return '[Во] dddd, [в] LT';
+            }
+
+            return '[В] dddd, [в] LT';
+        },
+        'lastDay' => '[Вчера, в] LT',
+        'lastWeek' => function (\Carbon\CarbonInterface $current, \Carbon\CarbonInterface $other) {
+            if ($current->week !== $other->week) {
+                switch ($current->dayOfWeek) {
+                    case 0:
+                        return '[В прошлое] dddd, [в] LT';
+                    case 1:
+                    case 2:
+                    case 4:
+                        return '[В прошлый] dddd, [в] LT';
+                    case 3:
+                    case 5:
+                    case 6:
+                        return '[В прошлую] dddd, [в] LT';
+                }
+            }
+
+            if ($current->dayOfWeek === 2) {
+                return '[Во] dddd, [в] LT';
+            }
+
+            return '[В] dddd, [в] LT';
+        },
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number, $period) {
+        switch ($period) {
+            case 'M':
+            case 'd':
+            case 'DDD':
+                return $number.'-й';
+            case 'D':
+                return $number.'-го';
+            case 'w':
+            case 'W':
+                return $number.'-я';
+            default:
+                return $number;
+        }
+    },
+    'meridiem' => function ($hour) {
+        if ($hour < 4) {
+            return 'ночи';
+        }
+        if ($hour < 12) {
+            return 'утра';
+        }
+        if ($hour < 17) {
+            return 'дня';
+        }
+
+        return 'вечера';
+    },
+    'months' => ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'],
+    'months_standalone' => ['январь', 'февраль', 'март', 'апрель', 'май', 'июнь', 'июль', 'август', 'сентябрь', 'октябрь', 'ноябрь', 'декабрь'],
+    'months_short' => ['янв', 'фев', 'мар', 'апр', 'мая', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'],
+    'months_short_standalone' => ['янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'],
+    'months_regexp' => '/(DD?o?\.?(\[[^\[\]]*\]|\s)+MMMM?|L{2,4}|l{2,4})/',
+    'weekdays' => ['воскресенье', 'понедельник', 'вторник', 'среду', 'четверг', 'пятницу', 'субботу'],
+    'weekdays_standalone' => ['воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота'],
+    'weekdays_short' => ['вск', 'пнд', 'втр', 'срд', 'чтв', 'птн', 'сбт'],
+    'weekdays_min' => ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],
+    'weekdays_regexp' => '/\[\s*(В|в)\s*((?:прошлую|следующую|эту)\s*)?\]\s*dddd/',
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' и '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ru_BY.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ru_BY.php
new file mode 100644
index 0000000..2c8d78f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ru_BY.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ru.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ru_KG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ru_KG.php
new file mode 100644
index 0000000..2c8d78f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ru_KG.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ru.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ru_KZ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ru_KZ.php
new file mode 100644
index 0000000..2c8d78f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ru_KZ.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ru.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ru_MD.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ru_MD.php
new file mode 100644
index 0000000..2c8d78f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ru_MD.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ru.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ru_RU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ru_RU.php
new file mode 100644
index 0000000..2c8d78f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ru_RU.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ru.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ru_UA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ru_UA.php
new file mode 100644
index 0000000..db958d6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ru_UA.php
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - RFC 2319    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/ru.php', [
+    'weekdays' => ['воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота'],
+    'weekdays_short' => ['вск', 'пнд', 'вто', 'срд', 'чтв', 'птн', 'суб'],
+    'weekdays_min' => ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'су'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/rw.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/rw.php
new file mode 100644
index 0000000..bc4a347
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/rw.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/rw_RW.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/rw_RW.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/rw_RW.php
new file mode 100644
index 0000000..9b3e068
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/rw_RW.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Rwanda Steve Murphy murf@e-tools.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD.MM.YYYY',
+    ],
+    'months' => ['Mutarama', 'Gashyantare', 'Werurwe', 'Mata', 'Gicuransi', 'Kamena', 'Nyakanga', 'Kanama', 'Nzeli', 'Ukwakira', 'Ugushyingo', 'Ukuboza'],
+    'months_short' => ['Mut', 'Gas', 'Wer', 'Mat', 'Gic', 'Kam', 'Nya', 'Kan', 'Nze', 'Ukw', 'Ugu', 'Uku'],
+    'weekdays' => ['Ku cyumweru', 'Kuwa mbere', 'Kuwa kabiri', 'Kuwa gatatu', 'Kuwa kane', 'Kuwa gatanu', 'Kuwa gatandatu'],
+    'weekdays_short' => ['Mwe', 'Mbe', 'Kab', 'Gtu', 'Kan', 'Gnu', 'Gnd'],
+    'weekdays_min' => ['Mwe', 'Mbe', 'Kab', 'Gtu', 'Kan', 'Gnu', 'Gnd'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+
+    'second' => ':count vuna', // less reliable
+    's' => ':count vuna', // less reliable
+    'a_second' => ':count vuna', // less reliable
+
+    'year' => 'aka :count',
+    'y' => 'aka :count',
+    'a_year' => 'aka :count',
+
+    'month' => 'ezi :count',
+    'm' => 'ezi :count',
+    'a_month' => 'ezi :count',
+
+    'week' => ':count icyumweru',
+    'w' => ':count icyumweru',
+    'a_week' => ':count icyumweru',
+
+    'day' => ':count nsi',
+    'd' => ':count nsi',
+    'a_day' => ':count nsi',
+
+    'hour' => 'saha :count',
+    'h' => 'saha :count',
+    'a_hour' => 'saha :count',
+
+    'minute' => ':count -nzinya',
+    'min' => ':count -nzinya',
+    'a_minute' => ':count -nzinya',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/rwk.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/rwk.php
new file mode 100644
index 0000000..f8cc72c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/rwk.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['utuko', 'kyiukonyi'],
+    'weekdays' => ['Jumapilyi', 'Jumatatuu', 'Jumanne', 'Jumatanu', 'Alhamisi', 'Ijumaa', 'Jumamosi'],
+    'weekdays_short' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'],
+    'weekdays_min' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'],
+    'months' => ['Januari', 'Februari', 'Machi', 'Aprilyi', 'Mei', 'Junyi', 'Julyai', 'Agusti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'],
+    'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sa.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sa.php
new file mode 100644
index 0000000..1357c03
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sa.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/sa_IN.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sa_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sa_IN.php
new file mode 100644
index 0000000..cfda9a6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sa_IN.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - The Debian project Christian Perrier bubulle@debian.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'D-MM-YY',
+    ],
+    'months' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'],
+    'months_short' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'],
+    'weekdays' => ['रविवासर:', 'सोमवासर:', 'मंगलवासर:', 'बुधवासर:', 'बृहस्पतिवासरः', 'शुक्रवासर', 'शनिवासर:'],
+    'weekdays_short' => ['रविः', 'सोम:', 'मंगल:', 'बुध:', 'बृहस्पतिः', 'शुक्र', 'शनि:'],
+    'weekdays_min' => ['रविः', 'सोम:', 'मंगल:', 'बुध:', 'बृहस्पतिः', 'शुक्र', 'शनि:'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['पूर्वाह्न', 'अपराह्न'],
+
+    'minute' => ':count होरा', // less reliable
+    'min' => ':count होरा', // less reliable
+    'a_minute' => ':count होरा', // less reliable
+
+    'year' => ':count वर्ष',
+    'y' => ':count वर्ष',
+    'a_year' => ':count वर्ष',
+
+    'month' => ':count मास',
+    'm' => ':count मास',
+    'a_month' => ':count मास',
+
+    'week' => ':count सप्ताहः saptahaĥ',
+    'w' => ':count सप्ताहः saptahaĥ',
+    'a_week' => ':count सप्ताहः saptahaĥ',
+
+    'day' => ':count दिन',
+    'd' => ':count दिन',
+    'a_day' => ':count दिन',
+
+    'hour' => ':count घण्टा',
+    'h' => ':count घण्टा',
+    'a_hour' => ':count घण्टा',
+
+    'second' => ':count द्वितीयः',
+    's' => ':count द्वितीयः',
+    'a_second' => ':count द्वितीयः',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sah.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sah.php
new file mode 100644
index 0000000..b828824
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sah.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/sah_RU.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sah_RU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sah_RU.php
new file mode 100644
index 0000000..94cc0cb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sah_RU.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Valery Timiriliyev Valery Timiriliyev timiriliyev@gmail.com
+ */
+return array_replace_recursive(require __DIR__.'/ru.php', [
+    'formats' => [
+        'L' => 'YYYY.MM.DD',
+    ],
+    'months' => ['тохсунньу', 'олунньу', 'кулун тутар', 'муус устар', 'ыам ыйын', 'бэс ыйын', 'от ыйын', 'атырдьах ыйын', 'балаҕан ыйын', 'алтынньы', 'сэтинньи', 'ахсынньы'],
+    'months_short' => ['тохс', 'олун', 'кул', 'муус', 'ыам', 'бэс', 'от', 'атыр', 'бал', 'алт', 'сэт', 'ахс'],
+    'weekdays' => ['баскыһыанньа', 'бэнидиэнньик', 'оптуорунньук', 'сэрэдэ', 'чэппиэр', 'бээтинсэ', 'субуота'],
+    'weekdays_short' => ['бс', 'бн', 'оп', 'ср', 'чп', 'бт', 'сб'],
+    'weekdays_min' => ['бс', 'бн', 'оп', 'ср', 'чп', 'бт', 'сб'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/saq.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/saq.php
new file mode 100644
index 0000000..eebfac9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/saq.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['Tesiran', 'Teipa'],
+    'weekdays' => ['Mderot ee are', 'Mderot ee kuni', 'Mderot ee ong’wan', 'Mderot ee inet', 'Mderot ee ile', 'Mderot ee sapa', 'Mderot ee kwe'],
+    'weekdays_short' => ['Are', 'Kun', 'Ong', 'Ine', 'Ile', 'Sap', 'Kwe'],
+    'weekdays_min' => ['Are', 'Kun', 'Ong', 'Ine', 'Ile', 'Sap', 'Kwe'],
+    'months' => ['Lapa le obo', 'Lapa le waare', 'Lapa le okuni', 'Lapa le ong’wan', 'Lapa le imet', 'Lapa le ile', 'Lapa le sapa', 'Lapa le isiet', 'Lapa le saal', 'Lapa le tomon', 'Lapa le tomon obo', 'Lapa le tomon waare'],
+    'months_short' => ['Obo', 'Waa', 'Oku', 'Ong', 'Ime', 'Ile', 'Sap', 'Isi', 'Saa', 'Tom', 'Tob', 'Tow'],
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sat.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sat.php
new file mode 100644
index 0000000..c9914c6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sat.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/sat_IN.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sat_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sat_IN.php
new file mode 100644
index 0000000..632b1af
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sat_IN.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Red Hat Pune    libc-alpha@sourceware.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'D/M/YY',
+    ],
+    'months' => ['जनवरी', 'फरवरी', 'मार्च', 'अप्रेल', 'मई', 'जुन', 'जुलाई', 'अगस्त', 'सितम्बर', 'अखथबर', 'नवम्बर', 'दिसम्बर'],
+    'months_short' => ['जनवरी', 'फरवरी', 'मार्च', 'अप्रेल', 'मई', 'जुन', 'जुलाई', 'अगस्त', 'सितम्बर', 'अखथबर', 'नवम्बर', 'दिसम्बर'],
+    'weekdays' => ['सिंगेमाँहाँ', 'ओतेमाँहाँ', 'बालेमाँहाँ', 'सागुनमाँहाँ', 'सारदीमाँहाँ', 'जारुममाँहाँ', 'ञुहुममाँहाँ'],
+    'weekdays_short' => ['सिंगे', 'ओते', 'बाले', 'सागुन', 'सारदी', 'जारुम', 'ञुहुम'],
+    'weekdays_min' => ['सिंगे', 'ओते', 'बाले', 'सागुन', 'सारदी', 'जारुम', 'ञुहुम'],
+    'day_of_first_week_of_year' => 1,
+
+    'month' => ':count ńindạ cando', // less reliable
+    'm' => ':count ńindạ cando', // less reliable
+    'a_month' => ':count ńindạ cando', // less reliable
+
+    'week' => ':count mãhã', // less reliable
+    'w' => ':count mãhã', // less reliable
+    'a_week' => ':count mãhã', // less reliable
+
+    'hour' => ':count ᱥᱳᱱᱚ', // less reliable
+    'h' => ':count ᱥᱳᱱᱚ', // less reliable
+    'a_hour' => ':count ᱥᱳᱱᱚ', // less reliable
+
+    'minute' => ':count ᱯᱤᱞᱪᱩ', // less reliable
+    'min' => ':count ᱯᱤᱞᱪᱩ', // less reliable
+    'a_minute' => ':count ᱯᱤᱞᱪᱩ', // less reliable
+
+    'second' => ':count ar', // less reliable
+    's' => ':count ar', // less reliable
+    'a_second' => ':count ar', // less reliable
+
+    'year' => ':count ne̲s',
+    'y' => ':count ne̲s',
+    'a_year' => ':count ne̲s',
+
+    'day' => ':count ᱫᱤᱱ',
+    'd' => ':count ᱫᱤᱱ',
+    'a_day' => ':count ᱫᱤᱱ',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sbp.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sbp.php
new file mode 100644
index 0000000..9b73783
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sbp.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['Lwamilawu', 'Pashamihe'],
+    'weekdays' => ['Mulungu', 'Jumatatu', 'Jumanne', 'Jumatano', 'Alahamisi', 'Ijumaa', 'Jumamosi'],
+    'weekdays_short' => ['Mul', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'],
+    'weekdays_min' => ['Mul', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'],
+    'months' => ['Mupalangulwa', 'Mwitope', 'Mushende', 'Munyi', 'Mushende Magali', 'Mujimbi', 'Mushipepo', 'Mupuguto', 'Munyense', 'Mokhu', 'Musongandembwe', 'Muhaano'],
+    'months_short' => ['Mup', 'Mwi', 'Msh', 'Mun', 'Mag', 'Muj', 'Msp', 'Mpg', 'Mye', 'Mok', 'Mus', 'Muh'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sc.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sc.php
new file mode 100644
index 0000000..7178cf4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sc.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/sc_IT.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sc_IT.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sc_IT.php
new file mode 100644
index 0000000..5d1e4ce
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sc_IT.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Sardinian Translators Team Massimeddu Cireddu massimeddu@gmail.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD. MM. YY',
+    ],
+    'months' => ['Ghennàrgiu', 'Freàrgiu', 'Martzu', 'Abrile', 'Maju', 'Làmpadas', 'Argiolas//Trìulas', 'Austu', 'Cabudanni', 'Santugaine//Ladàmine', 'Onniasantu//Santandria', 'Nadale//Idas'],
+    'months_short' => ['Ghe', 'Fre', 'Mar', 'Abr', 'Maj', 'Làm', 'Arg', 'Aus', 'Cab', 'Lad', 'Onn', 'Nad'],
+    'weekdays' => ['Domìnigu', 'Lunis', 'Martis', 'Mèrcuris', 'Giòbia', 'Chenàbura', 'Sàbadu'],
+    'weekdays_short' => ['Dom', 'Lun', 'Mar', 'Mèr', 'Giò', 'Che', 'Sàb'],
+    'weekdays_min' => ['Dom', 'Lun', 'Mar', 'Mèr', 'Giò', 'Che', 'Sàb'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+
+    'minute' => ':count mementu', // less reliable
+    'min' => ':count mementu', // less reliable
+    'a_minute' => ':count mementu', // less reliable
+
+    'year' => ':count annu',
+    'y' => ':count annu',
+    'a_year' => ':count annu',
+
+    'month' => ':count mese',
+    'm' => ':count mese',
+    'a_month' => ':count mese',
+
+    'week' => ':count chida',
+    'w' => ':count chida',
+    'a_week' => ':count chida',
+
+    'day' => ':count dí',
+    'd' => ':count dí',
+    'a_day' => ':count dí',
+
+    'hour' => ':count ora',
+    'h' => ':count ora',
+    'a_hour' => ':count ora',
+
+    'second' => ':count secundu',
+    's' => ':count secundu',
+    'a_second' => ':count secundu',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sd.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sd.php
new file mode 100644
index 0000000..ad8c000
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sd.php
@@ -0,0 +1,80 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+$months = [
+    'جنوري',
+    'فيبروري',
+    'مارچ',
+    'اپريل',
+    'مئي',
+    'جون',
+    'جولاءِ',
+    'آگسٽ',
+    'سيپٽمبر',
+    'آڪٽوبر',
+    'نومبر',
+    'ڊسمبر',
+];
+
+$weekdays = [
+    'آچر',
+    'سومر',
+    'اڱارو',
+    'اربع',
+    'خميس',
+    'جمع',
+    'ڇنڇر',
+];
+
+/*
+ * Authors:
+ * - Narain Sagar
+ * - Sawood Alam
+ * - Narain Sagar
+ */
+return [
+    'year' => '{1}'.'هڪ سال'.'|:count '.'سال',
+    'month' => '{1}'.'هڪ مهينو'.'|:count '.'مهينا',
+    'week' => '{1}'.'ھڪ ھفتو'.'|:count '.'هفتا',
+    'day' => '{1}'.'هڪ ڏينهن'.'|:count '.'ڏينهن',
+    'hour' => '{1}'.'هڪ ڪلاڪ'.'|:count '.'ڪلاڪ',
+    'minute' => '{1}'.'هڪ منٽ'.'|:count '.'منٽ',
+    'second' => '{1}'.'چند سيڪنڊ'.'|:count '.'سيڪنڊ',
+    'ago' => ':time اڳ',
+    'from_now' => ':time پوء',
+    'diff_yesterday' => 'ڪالهه',
+    'diff_today' => 'اڄ',
+    'diff_tomorrow' => 'سڀاڻي',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd، D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[اڄ] LT',
+        'nextDay' => '[سڀاڻي] LT',
+        'nextWeek' => 'dddd [اڳين هفتي تي] LT',
+        'lastDay' => '[ڪالهه] LT',
+        'lastWeek' => '[گزريل هفتي] dddd [تي] LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => ['صبح', 'شام'],
+    'months' => $months,
+    'months_short' => $months,
+    'weekdays' => $weekdays,
+    'weekdays_short' => $weekdays,
+    'weekdays_min' => $weekdays,
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => ['، ', ' ۽ '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sd_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sd_IN.php
new file mode 100644
index 0000000..de1dad0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sd_IN.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Red Hat, Pune    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/sd.php', [
+    'formats' => [
+        'L' => 'D/M/YY',
+    ],
+    'months' => ['جنوري', 'فبروري', 'مارچ', 'اپريل', 'مي', 'جون', 'جولاءِ', 'آگسٽ', 'سيپٽيمبر', 'آڪٽوبر', 'نومبر', 'ڊسمبر'],
+    'months_short' => ['جنوري', 'فبروري', 'مارچ', 'اپريل', 'مي', 'جون', 'جولاءِ', 'آگسٽ', 'سيپٽيمبر', 'آڪٽوبر', 'نومبر', 'ڊسمبر'],
+    'weekdays' => ['آرتوارُ', 'سومرُ', 'منگلُ', 'ٻُڌرُ', 'وسپت', 'جُمو', 'ڇنڇر'],
+    'weekdays_short' => ['آرتوارُ', 'سومرُ', 'منگلُ', 'ٻُڌرُ', 'وسپت', 'جُمو', 'ڇنڇر'],
+    'weekdays_min' => ['آرتوارُ', 'سومرُ', 'منگلُ', 'ٻُڌرُ', 'وسپت', 'جُمو', 'ڇنڇر'],
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sd_IN@devanagari.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sd_IN@devanagari.php
new file mode 100644
index 0000000..061fcc1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sd_IN@devanagari.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Red Hat, Pune    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/sd.php', [
+    'formats' => [
+        'L' => 'D/M/YY',
+    ],
+    'months' => ['जनवरी', 'फबरवरी', 'मार्चि', 'अप्रेल', 'मे', 'जूनि', 'जूलाइ', 'आगस्टु', 'सेप्टेंबरू', 'आक्टूबरू', 'नवंबरू', 'ॾिसंबरू'],
+    'months_short' => ['जनवरी', 'फबरवरी', 'मार्चि', 'अप्रेल', 'मे', 'जूनि', 'जूलाइ', 'आगस्टु', 'सेप्टेंबरू', 'आक्टूबरू', 'नवंबरू', 'ॾिसंबरू'],
+    'weekdays' => ['आर्तवारू', 'सूमरू', 'मंगलू', 'ॿुधरू', 'विस्पति', 'जुमो', 'छंछस'],
+    'weekdays_short' => ['आर्तवारू', 'सूमरू', 'मंगलू', 'ॿुधरू', 'विस्पति', 'जुमो', 'छंछस'],
+    'weekdays_min' => ['आर्तवारू', 'सूमरू', 'मंगलू', 'ॿुधरू', 'विस्पति', 'जुमो', 'छंछस'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['म.पू.', 'म.नं.'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/se.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/se.php
new file mode 100644
index 0000000..7c4b92a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/se.php
@@ -0,0 +1,73 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - François B
+ * - Karamell
+ */
+return [
+    'year' => '{1}:count jahki|:count jagit',
+    'a_year' => '{1}okta jahki|:count jagit',
+    'y' => ':count j.',
+    'month' => '{1}:count mánnu|:count mánut',
+    'a_month' => '{1}okta mánnu|:count mánut',
+    'm' => ':count mán.',
+    'week' => '{1}:count vahkku|:count vahkku',
+    'a_week' => '{1}okta vahkku|:count vahkku',
+    'w' => ':count v.',
+    'day' => '{1}:count beaivi|:count beaivvit',
+    'a_day' => '{1}okta beaivi|:count beaivvit',
+    'd' => ':count b.',
+    'hour' => '{1}:count diimmu|:count diimmut',
+    'a_hour' => '{1}okta diimmu|:count diimmut',
+    'h' => ':count d.',
+    'minute' => '{1}:count minuhta|:count minuhtat',
+    'a_minute' => '{1}okta minuhta|:count minuhtat',
+    'min' => ':count min.',
+    'second' => '{1}:count sekunddat|:count sekunddat',
+    'a_second' => '{1}moadde sekunddat|:count sekunddat',
+    's' => ':count s.',
+    'ago' => 'maŋit :time',
+    'from_now' => ':time geažes',
+    'diff_yesterday' => 'ikte',
+    'diff_yesterday_regexp' => 'ikte(?:\\s+ti)?',
+    'diff_today' => 'otne',
+    'diff_today_regexp' => 'otne(?:\\s+ti)?',
+    'diff_tomorrow' => 'ihttin',
+    'diff_tomorrow_regexp' => 'ihttin(?:\\s+ti)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'MMMM D. [b.] YYYY',
+        'LLL' => 'MMMM D. [b.] YYYY [ti.] HH:mm',
+        'LLLL' => 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[otne ti] LT',
+        'nextDay' => '[ihttin ti] LT',
+        'nextWeek' => 'dddd [ti] LT',
+        'lastDay' => '[ikte ti] LT',
+        'lastWeek' => '[ovddit] dddd [ti] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':number.',
+    'months' => ['ođđajagemánnu', 'guovvamánnu', 'njukčamánnu', 'cuoŋománnu', 'miessemánnu', 'geassemánnu', 'suoidnemánnu', 'borgemánnu', 'čakčamánnu', 'golggotmánnu', 'skábmamánnu', 'juovlamánnu'],
+    'months_short' => ['ođđj', 'guov', 'njuk', 'cuo', 'mies', 'geas', 'suoi', 'borg', 'čakč', 'golg', 'skáb', 'juov'],
+    'weekdays' => ['sotnabeaivi', 'vuossárga', 'maŋŋebárga', 'gaskavahkku', 'duorastat', 'bearjadat', 'lávvardat'],
+    'weekdays_short' => ['sotn', 'vuos', 'maŋ', 'gask', 'duor', 'bear', 'láv'],
+    'weekdays_min' => ['s', 'v', 'm', 'g', 'd', 'b', 'L'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' ja '],
+    'meridiem' => ['i.b.', 'e.b.'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/se_FI.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/se_FI.php
new file mode 100644
index 0000000..b2b967e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/se_FI.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/se.php', [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+    'months' => ['ođđajagemánnu', 'guovvamánnu', 'njukčamánnu', 'cuoŋománnu', 'miessemánnu', 'geassemánnu', 'suoidnemánnu', 'borgemánnu', 'čakčamánnu', 'golggotmánnu', 'skábmamánnu', 'juovlamánnu'],
+    'months_short' => ['ođđj', 'guov', 'njuk', 'cuoŋ', 'mies', 'geas', 'suoi', 'borg', 'čakč', 'golg', 'skáb', 'juov'],
+    'weekdays' => ['sotnabeaivi', 'mánnodat', 'disdat', 'gaskavahkku', 'duorastat', 'bearjadat', 'lávvordat'],
+    'weekdays_short' => ['so', 'má', 'di', 'ga', 'du', 'be', 'lá'],
+    'weekdays_min' => ['so', 'má', 'di', 'ga', 'du', 'be', 'lá'],
+    'meridiem' => ['i', 'e'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/se_NO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/se_NO.php
new file mode 100644
index 0000000..83bbf78
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/se_NO.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/se.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/se_SE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/se_SE.php
new file mode 100644
index 0000000..83bbf78
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/se_SE.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/se.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/seh.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/seh.php
new file mode 100644
index 0000000..3ad889a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/seh.php
@@ -0,0 +1,25 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'weekdays' => ['Dimingu', 'Chiposi', 'Chipiri', 'Chitatu', 'Chinai', 'Chishanu', 'Sabudu'],
+    'weekdays_short' => ['Dim', 'Pos', 'Pir', 'Tat', 'Nai', 'Sha', 'Sab'],
+    'weekdays_min' => ['Dim', 'Pos', 'Pir', 'Tat', 'Nai', 'Sha', 'Sab'],
+    'months' => ['Janeiro', 'Fevreiro', 'Marco', 'Abril', 'Maio', 'Junho', 'Julho', 'Augusto', 'Setembro', 'Otubro', 'Novembro', 'Decembro'],
+    'months_short' => ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Aug', 'Set', 'Otu', 'Nov', 'Dec'],
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'd [de] MMM [de] YYYY',
+        'LLL' => 'd [de] MMMM [de] YYYY HH:mm',
+        'LLLL' => 'dddd, d [de] MMMM [de] YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ses.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ses.php
new file mode 100644
index 0000000..9355184
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ses.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['Adduha', 'Aluula'],
+    'weekdays' => ['Alhadi', 'Atinni', 'Atalaata', 'Alarba', 'Alhamiisa', 'Alzuma', 'Asibti'],
+    'weekdays_short' => ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alz', 'Asi'],
+    'weekdays_min' => ['Alh', 'Ati', 'Ata', 'Ala', 'Alm', 'Alz', 'Asi'],
+    'months' => ['Žanwiye', 'Feewiriye', 'Marsi', 'Awiril', 'Me', 'Žuweŋ', 'Žuyye', 'Ut', 'Sektanbur', 'Oktoobur', 'Noowanbur', 'Deesanbur'],
+    'months_short' => ['Žan', 'Fee', 'Mar', 'Awi', 'Me', 'Žuw', 'Žuy', 'Ut', 'Sek', 'Okt', 'Noo', 'Dee'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+
+    'month' => ':count alaada', // less reliable
+    'm' => ':count alaada', // less reliable
+    'a_month' => ':count alaada', // less reliable
+
+    'hour' => ':count ɲaajin', // less reliable
+    'h' => ':count ɲaajin', // less reliable
+    'a_hour' => ':count ɲaajin', // less reliable
+
+    'minute' => ':count zarbu', // less reliable
+    'min' => ':count zarbu', // less reliable
+    'a_minute' => ':count zarbu', // less reliable
+
+    'year' => ':count jiiri',
+    'y' => ':count jiiri',
+    'a_year' => ':count jiiri',
+
+    'week' => ':count jirbiiyye',
+    'w' => ':count jirbiiyye',
+    'a_week' => ':count jirbiiyye',
+
+    'day' => ':count zaari',
+    'd' => ':count zaari',
+    'a_day' => ':count zaari',
+
+    'second' => ':count ihinkante',
+    's' => ':count ihinkante',
+    'a_second' => ':count ihinkante',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sg.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sg.php
new file mode 100644
index 0000000..7f8e9da
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sg.php
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['ND', 'LK'],
+    'weekdays' => ['Bikua-ôko', 'Bïkua-ûse', 'Bïkua-ptâ', 'Bïkua-usïö', 'Bïkua-okü', 'Lâpôsö', 'Lâyenga'],
+    'weekdays_short' => ['Bk1', 'Bk2', 'Bk3', 'Bk4', 'Bk5', 'Lâp', 'Lây'],
+    'weekdays_min' => ['Bk1', 'Bk2', 'Bk3', 'Bk4', 'Bk5', 'Lâp', 'Lây'],
+    'months' => ['Nyenye', 'Fulundïgi', 'Mbängü', 'Ngubùe', 'Bêläwü', 'Föndo', 'Lengua', 'Kükürü', 'Mvuka', 'Ngberere', 'Nabändüru', 'Kakauka'],
+    'months_short' => ['Nye', 'Ful', 'Mbä', 'Ngu', 'Bêl', 'Fön', 'Len', 'Kük', 'Mvu', 'Ngb', 'Nab', 'Kak'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM, YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+
+    'year' => ':count dā', // less reliable
+    'y' => ':count dā', // less reliable
+    'a_year' => ':count dā', // less reliable
+
+    'week' => ':count bïkua-okü', // less reliable
+    'w' => ':count bïkua-okü', // less reliable
+    'a_week' => ':count bïkua-okü', // less reliable
+
+    'day' => ':count ziggawâ', // less reliable
+    'd' => ':count ziggawâ', // less reliable
+    'a_day' => ':count ziggawâ', // less reliable
+
+    'hour' => ':count yângâködörö', // less reliable
+    'h' => ':count yângâködörö', // less reliable
+    'a_hour' => ':count yângâködörö', // less reliable
+
+    'second' => ':count bïkua-ôko', // less reliable
+    's' => ':count bïkua-ôko', // less reliable
+    'a_second' => ':count bïkua-ôko', // less reliable
+
+    'month' => ':count Nze tî ngu',
+    'm' => ':count Nze tî ngu',
+    'a_month' => ':count Nze tî ngu',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sgs.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sgs.php
new file mode 100644
index 0000000..864b989
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sgs.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/sgs_LT.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sgs_LT.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sgs_LT.php
new file mode 100644
index 0000000..aa9e942
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sgs_LT.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Arnas Udovičius bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'YYYY.MM.DD',
+    ],
+    'months' => ['sausė', 'vasarė', 'kuova', 'balondė', 'gegožės', 'bėrželė', 'lëpas', 'rogpjūtė', 'siejės', 'spalė', 'lapkrėstė', 'grůdė'],
+    'months_short' => ['Sau', 'Vas', 'Kuo', 'Bal', 'Geg', 'Bėr', 'Lëp', 'Rgp', 'Sie', 'Spa', 'Lap', 'Grd'],
+    'weekdays' => ['nedielės dëna', 'panedielis', 'oterninks', 'sereda', 'četvergs', 'petnīčė', 'sobata'],
+    'weekdays_short' => ['Nd', 'Pn', 'Ot', 'Sr', 'Čt', 'Pt', 'Sb'],
+    'weekdays_min' => ['Nd', 'Pn', 'Ot', 'Sr', 'Čt', 'Pt', 'Sb'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+
+    'minute' => ':count mažos', // less reliable
+    'min' => ':count mažos', // less reliable
+    'a_minute' => ':count mažos', // less reliable
+
+    'year' => ':count metā',
+    'y' => ':count metā',
+    'a_year' => ':count metā',
+
+    'month' => ':count mienou',
+    'm' => ':count mienou',
+    'a_month' => ':count mienou',
+
+    'week' => ':count nedielė',
+    'w' => ':count nedielė',
+    'a_week' => ':count nedielė',
+
+    'day' => ':count dīna',
+    'd' => ':count dīna',
+    'a_day' => ':count dīna',
+
+    'hour' => ':count adīna',
+    'h' => ':count adīna',
+    'a_hour' => ':count adīna',
+
+    'second' => ':count Sekondė',
+    's' => ':count Sekondė',
+    'a_second' => ':count Sekondė',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sh.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sh.php
new file mode 100644
index 0000000..a953df4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sh.php
@@ -0,0 +1,65 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+// @codeCoverageIgnoreStart
+if (class_exists('Symfony\\Component\\Translation\\PluralizationRules')) {
+    \Symfony\Component\Translation\PluralizationRules::set(function ($number) {
+        return (($number % 10 == 1) && ($number % 100 != 11)) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2);
+    }, 'sh');
+}
+// @codeCoverageIgnoreEnd
+
+/*
+ * Authors:
+ * - Томица Кораћ
+ * - Enrique Vidal
+ * - Christopher Dell
+ * - dmilisic
+ * - danijel
+ * - Miroslav Matkovic (mikki021)
+ */
+return [
+    'diff_now' => 'sada',
+    'diff_yesterday' => 'juče',
+    'diff_tomorrow' => 'sutra',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'MMMM D, YYYY',
+        'LLL' => 'DD MMM HH:mm',
+        'LLLL' => 'MMMM DD, YYYY HH:mm',
+    ],
+    'year' => ':count godina|:count godine|:count godina',
+    'y' => ':count g.',
+    'month' => ':count mesec|:count meseca|:count meseci',
+    'm' => ':count m.',
+    'week' => ':count nedelja|:count nedelje|:count nedelja',
+    'w' => ':count n.',
+    'day' => ':count dan|:count dana|:count dana',
+    'd' => ':count d.',
+    'hour' => ':count sat|:count sata|:count sati',
+    'h' => ':count č.',
+    'minute' => ':count minut|:count minuta|:count minuta',
+    'min' => ':count min.',
+    'second' => ':count sekund|:count sekunde|:count sekundi',
+    's' => ':count s.',
+    'ago' => 'pre :time',
+    'from_now' => 'za :time',
+    'after' => 'nakon :time',
+    'before' => ':time raniјe',
+    'weekdays' => ['Nedelja', 'Ponedeljak', 'Utorak', 'Sreda', 'Četvrtak', 'Petak', 'Subota'],
+    'weekdays_short' => ['Ned', 'Pon', 'Uto', 'Sre', 'Čet', 'Pet', 'Sub'],
+    'weekdays_min' => ['Ned', 'Pon', 'Uto', 'Sre', 'Čet', 'Pet', 'Sub'],
+    'months' => ['Januar', 'Februar', 'Mart', 'April', 'Maj', 'Jun', 'Jul', 'Avgust', 'Septembar', 'Oktobar', 'Novembar', 'Decembar'],
+    'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Avg', 'Sep', 'Okt', 'Nov', 'Dec'],
+    'list' => [', ', ' i '],
+    'meridiem' => ['pre podne', 'po podne'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/shi.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/shi.php
new file mode 100644
index 0000000..ee5aa0b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/shi.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['ⵜⵉⴼⴰⵡⵜ', 'ⵜⴰⴷⴳⴳⵯⴰⵜ'],
+    'weekdays' => ['ⴰⵙⴰⵎⴰⵙ', 'ⴰⵢⵏⴰⵙ', 'ⴰⵙⵉⵏⴰⵙ', 'ⴰⴽⵕⴰⵙ', 'ⴰⴽⵡⴰⵙ', 'ⵙⵉⵎⵡⴰⵙ', 'ⴰⵙⵉⴹⵢⴰⵙ'],
+    'weekdays_short' => ['ⴰⵙⴰ', 'ⴰⵢⵏ', 'ⴰⵙⵉ', 'ⴰⴽⵕ', 'ⴰⴽⵡ', 'ⴰⵙⵉⵎ', 'ⴰⵙⵉⴹ'],
+    'weekdays_min' => ['ⴰⵙⴰ', 'ⴰⵢⵏ', 'ⴰⵙⵉ', 'ⴰⴽⵕ', 'ⴰⴽⵡ', 'ⴰⵙⵉⵎ', 'ⴰⵙⵉⴹ'],
+    'months' => ['ⵉⵏⵏⴰⵢⵔ', 'ⴱⵕⴰⵢⵕ', 'ⵎⴰⵕⵚ', 'ⵉⴱⵔⵉⵔ', 'ⵎⴰⵢⵢⵓ', 'ⵢⵓⵏⵢⵓ', 'ⵢⵓⵍⵢⵓⵣ', 'ⵖⵓⵛⵜ', 'ⵛⵓⵜⴰⵏⴱⵉⵔ', 'ⴽⵜⵓⴱⵔ', 'ⵏⵓⵡⴰⵏⴱⵉⵔ', 'ⴷⵓⵊⴰⵏⴱⵉⵔ'],
+    'months_short' => ['ⵉⵏⵏ', 'ⴱⵕⴰ', 'ⵎⴰⵕ', 'ⵉⴱⵔ', 'ⵎⴰⵢ', 'ⵢⵓⵏ', 'ⵢⵓⵍ', 'ⵖⵓⵛ', 'ⵛⵓⵜ', 'ⴽⵜⵓ', 'ⵏⵓⵡ', 'ⴷⵓⵊ'],
+    'first_day_of_week' => 6,
+    'weekend' => [5, 6],
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM, YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+
+    'year' => ':count aseggwas',
+    'y' => ':count aseggwas',
+    'a_year' => ':count aseggwas',
+
+    'month' => ':count ayyur',
+    'm' => ':count ayyur',
+    'a_month' => ':count ayyur',
+
+    'week' => ':count imalass',
+    'w' => ':count imalass',
+    'a_week' => ':count imalass',
+
+    'day' => ':count ass',
+    'd' => ':count ass',
+    'a_day' => ':count ass',
+
+    'hour' => ':count urɣ', // less reliable
+    'h' => ':count urɣ', // less reliable
+    'a_hour' => ':count urɣ', // less reliable
+
+    'minute' => ':count ⴰⵎⵥⵉ', // less reliable
+    'min' => ':count ⴰⵎⵥⵉ', // less reliable
+    'a_minute' => ':count ⴰⵎⵥⵉ', // less reliable
+
+    'second' => ':count sin', // less reliable
+    's' => ':count sin', // less reliable
+    'a_second' => ':count sin', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/shi_Latn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/shi_Latn.php
new file mode 100644
index 0000000..a5580c3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/shi_Latn.php
@@ -0,0 +1,32 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/shi.php', [
+    'meridiem' => ['tifawt', 'tadggʷat'],
+    'weekdays' => ['asamas', 'aynas', 'asinas', 'akṛas', 'akwas', 'asimwas', 'asiḍyas'],
+    'weekdays_short' => ['asa', 'ayn', 'asi', 'akṛ', 'akw', 'asim', 'asiḍ'],
+    'weekdays_min' => ['asa', 'ayn', 'asi', 'akṛ', 'akw', 'asim', 'asiḍ'],
+    'months' => ['innayr', 'bṛayṛ', 'maṛṣ', 'ibrir', 'mayyu', 'yunyu', 'yulyuz', 'ɣuct', 'cutanbir', 'ktubr', 'nuwanbir', 'dujanbir'],
+    'months_short' => ['inn', 'bṛa', 'maṛ', 'ibr', 'may', 'yun', 'yul', 'ɣuc', 'cut', 'ktu', 'nuw', 'duj'],
+    'first_day_of_week' => 6,
+    'weekend' => [5, 6],
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM, YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+
+    'minute' => ':count agur', // less reliable
+    'min' => ':count agur', // less reliable
+    'a_minute' => ':count agur', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/shi_Tfng.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/shi_Tfng.php
new file mode 100644
index 0000000..e51ed13
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/shi_Tfng.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/shi.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/shn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/shn.php
new file mode 100644
index 0000000..fe7b1ea
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/shn.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/shn_MM.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/shn_MM.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/shn_MM.php
new file mode 100644
index 0000000..f399acf
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/shn_MM.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - ubuntu Myanmar LoCo Team https://ubuntu-mm.net Bone Pyae Sone bone.burma@mail.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'OY MMM OD dddd',
+    ],
+    'months' => ['လိူၼ်ၵမ်', 'လိူၼ်သၢမ်', 'လိူၼ်သီ', 'လိူၼ်ႁႃႈ', 'လိူၼ်ႁူၵ်း', 'လိူၼ်ၸဵတ်း', 'လိူၼ်ပႅတ်ႇ', 'လိူၼ်ၵဝ်ႈ', 'လိူၼ်သိပ်း', 'လိူၼ်သိပ်းဢိတ်း', 'လိူၼ်သိပ်းဢိတ်းသွင်', 'လိူၼ်ၸဵင်'],
+    'months_short' => ['လိူၼ်ၵမ်', 'လိူၼ်သၢမ်', 'လိူၼ်သီ', 'လိူၼ်ႁႃႈ', 'လိူၼ်ႁူၵ်း', 'လိူၼ်ၸဵတ်း', 'လိူၼ်ပႅတ်ႇ', 'လိူၼ်ၵဝ်ႈ', 'လိူၼ်သိပ်း', 'လိူၼ်သိပ်းဢိတ်း', 'လိူၼ်သိပ်းဢိတ်းသွင်', 'လိူၼ်ၸဵင်'],
+    'weekdays' => ['ဝၼ်းဢႃးတိတ်ႉ', 'ဝၼ်းၸၼ်', 'ဝၼ်း​ဢၢင်း​ၵၢၼ်း', 'ဝၼ်းပူတ်ႉ', 'ဝၼ်းၽတ်း', 'ဝၼ်းသုၵ်း', 'ဝၼ်းသဝ်'],
+    'weekdays_short' => ['တိတ့်', 'ၸၼ်', 'ၵၢၼ်း', 'ပုတ့်', 'ၽတ်း', 'သုၵ်း', 'သဝ်'],
+    'weekdays_min' => ['တိတ့်', 'ၸၼ်', 'ၵၢၼ်း', 'ပုတ့်', 'ၽတ်း', 'သုၵ်း', 'သဝ်'],
+    'alt_numbers' => ['႐႐', '႐႑', '႐႒', '႐႓', '႐႔', '႐႕', '႐႖', '႐႗', '႐႘', '႐႙', '႑႐', '႑႑', '႑႒', '႑႓', '႑႔', '႑႕', '႑႖', '႑႗', '႑႘', '႑႙', '႒႐', '႒႑', '႒႒', '႒႓', '႒႔', '႒႕', '႒႖', '႒႗', '႒႘', '႒႙', '႓႐', '႓႑', '႓႒', '႓႓', '႓႔', '႓႕', '႓႖', '႓႗', '႓႘', '႓႙', '႔႐', '႔႑', '႔႒', '႔႓', '႔႔', '႔႕', '႔႖', '႔႗', '႔႘', '႔႙', '႕႐', '႕႑', '႕႒', '႕႓', '႕႔', '႕႕', '႕႖', '႕႗', '႕႘', '႕႙', '႖႐', '႖႑', '႖႒', '႖႓', '႖႔', '႖႕', '႖႖', '႖႗', '႖႘', '႖႙', '႗႐', '႗႑', '႗႒', '႗႓', '႗႔', '႗႕', '႗႖', '႗႗', '႗႘', '႗႙', '႘႐', '႘႑', '႘႒', '႘႓', '႘႔', '႘႕', '႘႖', '႘႗', '႘႘', '႘႙', '႙႐', '႙႑', '႙႒', '႙႓', '႙႔', '႙႕', '႙႖', '႙႗', '႙႘', '႙႙'],
+    'meridiem' => ['ၵၢင်ၼႂ်', 'တၢမ်းၶမ်ႈ'],
+
+    'month' => ':count လိူၼ်', // less reliable
+    'm' => ':count လိူၼ်', // less reliable
+    'a_month' => ':count လိူၼ်', // less reliable
+
+    'week' => ':count ဝၼ်း', // less reliable
+    'w' => ':count ဝၼ်း', // less reliable
+    'a_week' => ':count ဝၼ်း', // less reliable
+
+    'hour' => ':count ຕີ', // less reliable
+    'h' => ':count ຕີ', // less reliable
+    'a_hour' => ':count ຕີ', // less reliable
+
+    'minute' => ':count ເດັກ', // less reliable
+    'min' => ':count ເດັກ', // less reliable
+    'a_minute' => ':count ເດັກ', // less reliable
+
+    'second' => ':count ဢိုၼ်ႇ', // less reliable
+    's' => ':count ဢိုၼ်ႇ', // less reliable
+    'a_second' => ':count ဢိုၼ်ႇ', // less reliable
+
+    'year' => ':count ပီ',
+    'y' => ':count ပီ',
+    'a_year' => ':count ပီ',
+
+    'day' => ':count ກາງວັນ',
+    'd' => ':count ກາງວັນ',
+    'a_day' => ':count ກາງວັນ',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/shs.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/shs.php
new file mode 100644
index 0000000..8d2e1d7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/shs.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/shs_CA.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/shs_CA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/shs_CA.php
new file mode 100644
index 0000000..08d385e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/shs_CA.php
@@ -0,0 +1,38 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Neskie Manuel    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YY',
+    ],
+    'months' => ['Pellkwet̓min', 'Pelctsipwen̓ten', 'Pellsqépts', 'Peslléwten', 'Pell7ell7é7llqten', 'Pelltspéntsk', 'Pelltqwelq̓wél̓t', 'Pellct̓éxel̓cten', 'Pesqelqlélten', 'Pesllwélsten', 'Pellc7ell7é7llcwten̓', 'Pelltetétq̓em'],
+    'months_short' => ['Kwe', 'Tsi', 'Sqe', 'Éwt', 'Ell', 'Tsp', 'Tqw', 'Ct̓é', 'Qel', 'Wél', 'U7l', 'Tet'],
+    'weekdays' => ['Sxetspesq̓t', 'Spetkesq̓t', 'Selesq̓t', 'Skellesq̓t', 'Smesesq̓t', 'Stselkstesq̓t', 'Stqmekstesq̓t'],
+    'weekdays_short' => ['Sxe', 'Spe', 'Sel', 'Ske', 'Sme', 'Sts', 'Stq'],
+    'weekdays_min' => ['Sxe', 'Spe', 'Sel', 'Ske', 'Sme', 'Sts', 'Stq'],
+    'day_of_first_week_of_year' => 1,
+
+    'year' => ':count sqlélten', // less reliable
+    'y' => ':count sqlélten', // less reliable
+    'a_year' => ':count sqlélten', // less reliable
+
+    'month' => ':count swewll', // less reliable
+    'm' => ':count swewll', // less reliable
+    'a_month' => ':count swewll', // less reliable
+
+    'hour' => ':count seqwlút', // less reliable
+    'h' => ':count seqwlút', // less reliable
+    'a_hour' => ':count seqwlút', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/si.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/si.php
new file mode 100644
index 0000000..289d4d5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/si.php
@@ -0,0 +1,78 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - François B
+ * - Serhan Apaydın
+ * - JD Isaacks
+ * - Malinda Weerasinghe (MalindaWMD)
+ */
+return [
+    'year' => '{1}වසර 1|වසර :count',
+    'a_year' => '{1}වසරක්|වසර :count',
+    'month' => '{1}මාස 1|මාස :count',
+    'a_month' => '{1}මාසය|මාස :count',
+    'week' => '{1}සති 1|සති :count',
+    'a_week' => '{1}සතියක්|සති :count',
+    'day' => '{1}දින 1|දින :count',
+    'a_day' => '{1}දිනක්|දින :count',
+    'hour' => '{1}පැය 1|පැය :count',
+    'a_hour' => '{1}පැයක්|පැය :count',
+    'minute' => '{1}මිනිත්තු 1|මිනිත්තු :count',
+    'a_minute' => '{1}මිනිත්තුවක්|මිනිත්තු :count',
+    'second' => '{1}තත්පර 1|තත්පර :count',
+    'a_second' => '{1}තත්පර කිහිපයකට|තත්පර :count',
+    'ago' => ':time කට පෙර',
+    'from_now' => function ($time) {
+        if (preg_match('/දින \d+/', $time)) {
+            return $time.' න්';
+        }
+
+        return $time.' කින්';
+    },
+    'before' => ':time කට පෙර',
+    'after' => function ($time) {
+        if (preg_match('/දින \d+/', $time)) {
+            return $time.' න්';
+        }
+
+        return $time.' කින්';
+    },
+    'diff_now' => 'දැන්',
+    'diff_today' => 'අද',
+    'diff_yesterday' => 'ඊයේ',
+    'diff_tomorrow' => 'හෙට',
+    'formats' => [
+        'LT' => 'a h:mm',
+        'LTS' => 'a h:mm:ss',
+        'L' => 'YYYY/MM/DD',
+        'LL' => 'YYYY MMMM D',
+        'LLL' => 'YYYY MMMM D, a h:mm',
+        'LLLL' => 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',
+    ],
+    'calendar' => [
+        'sameDay' => '[අද] LT[ට]',
+        'nextDay' => '[හෙට] LT[ට]',
+        'nextWeek' => 'dddd LT[ට]',
+        'lastDay' => '[ඊයේ] LT[ට]',
+        'lastWeek' => '[පසුගිය] dddd LT[ට]',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':number වැනි',
+    'meridiem' => ['පෙර වරු', 'පස් වරු', 'පෙ.ව.', 'ප.ව.'],
+    'months' => ['ජනවාරි', 'පෙබරවාරි', 'මාර්තු', 'අප්‍රේල්', 'මැයි', 'ජූනි', 'ජූලි', 'අගෝස්තු', 'සැප්තැම්බර්', 'ඔක්තෝබර්', 'නොවැම්බර්', 'දෙසැම්බර්'],
+    'months_short' => ['ජන', 'පෙබ', 'මාර්', 'අප්', 'මැයි', 'ජූනි', 'ජූලි', 'අගෝ', 'සැප්', 'ඔක්', 'නොවැ', 'දෙසැ'],
+    'weekdays' => ['ඉරිදා', 'සඳුදා', 'අඟහරුවාදා', 'බදාදා', 'බ්‍රහස්පතින්දා', 'සිකුරාදා', 'සෙනසුරාදා'],
+    'weekdays_short' => ['ඉරි', 'සඳු', 'අඟ', 'බදා', 'බ්‍රහ', 'සිකු', 'සෙන'],
+    'weekdays_min' => ['ඉ', 'ස', 'අ', 'බ', 'බ්‍ර', 'සි', 'සෙ'],
+    'first_day_of_week' => 1,
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/si_LK.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/si_LK.php
new file mode 100644
index 0000000..6c5be97
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/si_LK.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/si.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sid.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sid.php
new file mode 100644
index 0000000..b1c6521
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sid.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/sid_ET.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sid_ET.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sid_ET.php
new file mode 100644
index 0000000..1296f9b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sid_ET.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ge'ez Frontier Foundation    locales@geez.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
+    'months_short' => ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
+    'weekdays' => ['Sambata', 'Sanyo', 'Maakisanyo', 'Roowe', 'Hamuse', 'Arbe', 'Qidaame'],
+    'weekdays_short' => ['Sam', 'San', 'Mak', 'Row', 'Ham', 'Arb', 'Qid'],
+    'weekdays_min' => ['Sam', 'San', 'Mak', 'Row', 'Ham', 'Arb', 'Qid'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['soodo', 'hawwaro'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sk.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sk.php
new file mode 100644
index 0000000..fd0f6b3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sk.php
@@ -0,0 +1,81 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Philippe Vaucher
+ * - Martin Suja
+ * - Tsutomu Kuroda
+ * - tjku
+ * - Max Melentiev
+ * - Juanito Fatas
+ * - Ivan Stana
+ * - Akira Matsuda
+ * - Christopher Dell
+ * - James McKinney
+ * - Enrique Vidal
+ * - Simone Carletti
+ * - Aaron Patterson
+ * - Jozef Fulop
+ * - Nicolás Hock Isaza
+ * - Tom Hughes
+ * - Simon Hürlimann (CyT)
+ * - jofi
+ * - Jakub ADAMEC
+ * - Marek Adamický
+ */
+return [
+    'year' => 'rok|:count roky|:count rokov',
+    'y' => ':count r',
+    'month' => 'mesiac|:count mesiace|:count mesiacov',
+    'm' => ':count m',
+    'week' => 'týždeň|:count týždne|:count týždňov',
+    'w' => ':count t',
+    'day' => 'deň|:count dni|:count dní',
+    'd' => ':count d',
+    'hour' => 'hodinu|:count hodiny|:count hodín',
+    'h' => ':count h',
+    'minute' => 'minútu|:count minúty|:count minút',
+    'min' => ':count min',
+    'second' => 'sekundu|:count sekundy|:count sekúnd',
+    's' => ':count s',
+    'ago' => 'pred :time',
+    'from_now' => 'za :time',
+    'after' => 'o :time neskôr',
+    'before' => ':time predtým',
+    'year_ago' => 'rokom|:count rokmi|:count rokmi',
+    'month_ago' => 'mesiacom|:count mesiacmi|:count mesiacmi',
+    'week_ago' => 'týždňom|:count týždňami|:count týždňami',
+    'day_ago' => 'dňom|:count dňami|:count dňami',
+    'hour_ago' => 'hodinou|:count hodinami|:count hodinami',
+    'minute_ago' => 'minútou|:count minútami|:count minútami',
+    'second_ago' => 'sekundou|:count sekundami|:count sekundami',
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' a '],
+    'diff_now' => 'teraz',
+    'diff_yesterday' => 'včera',
+    'diff_tomorrow' => 'zajtra',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'DD. MMMM YYYY',
+        'LLL' => 'D. M. HH:mm',
+        'LLLL' => 'dddd D. MMMM YYYY HH:mm',
+    ],
+    'weekdays' => ['nedeľa', 'pondelok', 'utorok', 'streda', 'štvrtok', 'piatok', 'sobota'],
+    'weekdays_short' => ['ne', 'po', 'ut', 'st', 'št', 'pi', 'so'],
+    'weekdays_min' => ['ne', 'po', 'ut', 'st', 'št', 'pi', 'so'],
+    'months' => ['január', 'február', 'marec', 'apríl', 'máj', 'jún', 'júl', 'august', 'september', 'október', 'november', 'december'],
+    'months_short' => ['jan', 'feb', 'mar', 'apr', 'máj', 'jún', 'júl', 'aug', 'sep', 'okt', 'nov', 'dec'],
+    'meridiem' => ['dopoludnia', 'popoludní'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sk_SK.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sk_SK.php
new file mode 100644
index 0000000..be3d1f2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sk_SK.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/sk.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sl.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sl.php
new file mode 100644
index 0000000..56d0f1b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sl.php
@@ -0,0 +1,126 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Philippe Vaucher
+ * - Tsutomu Kuroda
+ * - tjku
+ * - Max Melentiev
+ * - Juanito Fatas
+ * - Akira Matsuda
+ * - Christopher Dell
+ * - Enrique Vidal
+ * - Simone Carletti
+ * - Aaron Patterson
+ * - Nicolás Hock Isaza
+ * - Miha Rebernik
+ * - Gal Jakič (morpheus7CS)
+ * - Glavić
+ * - Anže Časar
+ * - Lovro Tramšek (Lovro1107)
+ * - burut13
+ */
+return [
+    'year' => ':count leto|:count leti|:count leta|:count let',
+    'y' => ':count leto|:count leti|:count leta|:count let',
+    'month' => ':count mesec|:count meseca|:count mesece|:count mesecev',
+    'm' => ':count mes.',
+    'week' => ':count teden|:count tedna|:count tedne|:count tednov',
+    'w' => ':count ted.',
+    'day' => ':count dan|:count dni|:count dni|:count dni',
+    'd' => ':count dan|:count dni|:count dni|:count dni',
+    'hour' => ':count ura|:count uri|:count ure|:count ur',
+    'h' => ':count h',
+    'minute' => ':count minuta|:count minuti|:count minute|:count minut',
+    'min' => ':count min.',
+    'second' => ':count sekunda|:count sekundi|:count sekunde|:count sekund',
+    'a_second' => '{1}nekaj sekund|:count sekunda|:count sekundi|:count sekunde|:count sekund',
+    's' => ':count s',
+
+    'year_ago' => ':count letom|:count leti|:count leti|:count leti',
+    'y_ago' => ':count letom|:count leti|:count leti|:count leti',
+    'month_ago' => ':count mesecem|:count meseci|:count meseci|:count meseci',
+    'week_ago' => ':count tednom|:count tednoma|:count tedni|:count tedni',
+    'day_ago' => ':count dnem|:count dnevoma|:count dnevi|:count dnevi',
+    'd_ago' => ':count dnem|:count dnevoma|:count dnevi|:count dnevi',
+    'hour_ago' => ':count uro|:count urama|:count urami|:count urami',
+    'minute_ago' => ':count minuto|:count minutama|:count minutami|:count minutami',
+    'second_ago' => ':count sekundo|:count sekundama|:count sekundami|:count sekundami',
+
+    'day_from_now' => ':count dan|:count dneva|:count dni|:count dni',
+    'd_from_now' => ':count dan|:count dneva|:count dni|:count dni',
+    'hour_from_now' => ':count uro|:count uri|:count ure|:count ur',
+    'minute_from_now' => ':count minuto|:count minuti|:count minute|:count minut',
+    'second_from_now' => ':count sekundo|:count sekundi|:count sekunde|:count sekund',
+
+    'ago' => 'pred :time',
+    'from_now' => 'čez :time',
+    'after' => ':time kasneje',
+    'before' => ':time prej',
+
+    'diff_now' => 'ravnokar',
+    'diff_today' => 'danes',
+    'diff_today_regexp' => 'danes(?:\\s+ob)?',
+    'diff_yesterday' => 'včeraj',
+    'diff_yesterday_regexp' => 'včeraj(?:\\s+ob)?',
+    'diff_tomorrow' => 'jutri',
+    'diff_tomorrow_regexp' => 'jutri(?:\\s+ob)?',
+    'diff_before_yesterday' => 'predvčerajšnjim',
+    'diff_after_tomorrow' => 'pojutrišnjem',
+
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+
+    'period_start_date' => 'od :date',
+    'period_end_date' => 'do :date',
+
+    'formats' => [
+        'LT' => 'H:mm',
+        'LTS' => 'H:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D. MMMM YYYY',
+        'LLL' => 'D. MMMM YYYY H:mm',
+        'LLLL' => 'dddd, D. MMMM YYYY H:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[danes ob] LT',
+        'nextDay' => '[jutri ob] LT',
+        'nextWeek' => 'dddd [ob] LT',
+        'lastDay' => '[včeraj ob] LT',
+        'lastWeek' => function (\Carbon\CarbonInterface $date) {
+            switch ($date->dayOfWeek) {
+                case 0:
+                    return '[preteklo] [nedeljo] [ob] LT';
+                case 1:
+                    return '[pretekli] [ponedeljek] [ob] LT';
+                case 2:
+                    return '[pretekli] [torek] [ob] LT';
+                case 3:
+                    return '[preteklo] [sredo] [ob] LT';
+                case 4:
+                    return '[pretekli] [četrtek] [ob] LT';
+                case 5:
+                    return '[pretekli] [petek] [ob] LT';
+                case 6:
+                    return '[preteklo] [soboto] [ob] LT';
+            }
+        },
+        'sameElse' => 'L',
+    ],
+    'months' => ['januar', 'februar', 'marec', 'april', 'maj', 'junij', 'julij', 'avgust', 'september', 'oktober', 'november', 'december'],
+    'months_short' => ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'avg', 'sep', 'okt', 'nov', 'dec'],
+    'weekdays' => ['nedelja', 'ponedeljek', 'torek', 'sreda', 'četrtek', 'petek', 'sobota'],
+    'weekdays_short' => ['ned', 'pon', 'tor', 'sre', 'čet', 'pet', 'sob'],
+    'weekdays_min' => ['ne', 'po', 'to', 'sr', 'če', 'pe', 'so'],
+    'list' => [', ', ' in '],
+    'meridiem' => ['dopoldan', 'popoldan'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sl_SI.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sl_SI.php
new file mode 100644
index 0000000..da9fef0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sl_SI.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/sl.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sm.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sm.php
new file mode 100644
index 0000000..e8c118a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sm.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/sm_WS.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sm_WS.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sm_WS.php
new file mode 100644
index 0000000..f066068
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sm_WS.php
@@ -0,0 +1,53 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Samsung Electronics Co., Ltd.    akhilesh.k@samsung.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['Ianuari', 'Fepuari', 'Mati', 'Aperila', 'Me', 'Iuni', 'Iulai', 'Auguso', 'Setema', 'Oketopa', 'Novema', 'Tesema'],
+    'months_short' => ['Ian', 'Fep', 'Mat', 'Ape', 'Me', 'Iun', 'Iul', 'Aug', 'Set', 'Oke', 'Nov', 'Tes'],
+    'weekdays' => ['Aso Sa', 'Aso Gafua', 'Aso Lua', 'Aso Lulu', 'Aso Tofi', 'Aso Farail', 'Aso To\'ana\'i'],
+    'weekdays_short' => ['Aso Sa', 'Aso Gaf', 'Aso Lua', 'Aso Lul', 'Aso Tof', 'Aso Far', 'Aso To\''],
+    'weekdays_min' => ['Aso Sa', 'Aso Gaf', 'Aso Lua', 'Aso Lul', 'Aso Tof', 'Aso Far', 'Aso To\''],
+
+    'hour' => ':count uati', // less reliable
+    'h' => ':count uati', // less reliable
+    'a_hour' => ':count uati', // less reliable
+
+    'minute' => ':count itiiti', // less reliable
+    'min' => ':count itiiti', // less reliable
+    'a_minute' => ':count itiiti', // less reliable
+
+    'second' => ':count lua', // less reliable
+    's' => ':count lua', // less reliable
+    'a_second' => ':count lua', // less reliable
+
+    'year' => ':count tausaga',
+    'y' => ':count tausaga',
+    'a_year' => ':count tausaga',
+
+    'month' => ':count māsina',
+    'm' => ':count māsina',
+    'a_month' => ':count māsina',
+
+    'week' => ':count vaiaso',
+    'w' => ':count vaiaso',
+    'a_week' => ':count vaiaso',
+
+    'day' => ':count aso',
+    'd' => ':count aso',
+    'a_day' => ':count aso',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/smn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/smn.php
new file mode 100644
index 0000000..b252ebb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/smn.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['ip.', 'ep.'],
+    'weekdays' => ['pasepeeivi', 'vuossaargâ', 'majebaargâ', 'koskoho', 'tuorâstuv', 'vástuppeeivi', 'lávurduv'],
+    'weekdays_short' => ['pas', 'vuo', 'maj', 'kos', 'tuo', 'vás', 'láv'],
+    'weekdays_min' => ['pa', 'vu', 'ma', 'ko', 'tu', 'vá', 'lá'],
+    'weekdays_standalone' => ['pasepeivi', 'vuossargâ', 'majebargâ', 'koskokko', 'tuorâstâh', 'vástuppeivi', 'lávurdâh'],
+    'months' => ['uđđâivemáánu', 'kuovâmáánu', 'njuhčâmáánu', 'cuáŋuimáánu', 'vyesimáánu', 'kesimáánu', 'syeinimáánu', 'porgemáánu', 'čohčâmáánu', 'roovvâdmáánu', 'skammâmáánu', 'juovlâmáánu'],
+    'months_short' => ['uđiv', 'kuovâ', 'njuhčâ', 'cuáŋui', 'vyesi', 'kesi', 'syeini', 'porge', 'čohčâ', 'roovvâd', 'skammâ', 'juovlâ'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'H.mm',
+        'LTS' => 'H.mm.ss',
+        'L' => 'D.M.YYYY',
+        'LL' => 'MMM D. YYYY',
+        'LLL' => 'MMMM D. YYYY H.mm',
+        'LLLL' => 'dddd, MMMM D. YYYY H.mm',
+    ],
+
+    'hour' => ':count äigi', // less reliable
+    'h' => ':count äigi', // less reliable
+    'a_hour' => ':count äigi', // less reliable
+
+    'year' => ':count ihe',
+    'y' => ':count ihe',
+    'a_year' => ':count ihe',
+
+    'month' => ':count mánuppaje',
+    'm' => ':count mánuppaje',
+    'a_month' => ':count mánuppaje',
+
+    'week' => ':count okko',
+    'w' => ':count okko',
+    'a_week' => ':count okko',
+
+    'day' => ':count peivi',
+    'd' => ':count peivi',
+    'a_day' => ':count peivi',
+
+    'minute' => ':count miinut',
+    'min' => ':count miinut',
+    'a_minute' => ':count miinut',
+
+    'second' => ':count nubbe',
+    's' => ':count nubbe',
+    'a_second' => ':count nubbe',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sn.php
new file mode 100644
index 0000000..62c82b1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sn.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['a', 'p'],
+    'weekdays' => ['Svondo', 'Muvhuro', 'Chipiri', 'Chitatu', 'China', 'Chishanu', 'Mugovera'],
+    'weekdays_short' => ['Svo', 'Muv', 'Chp', 'Cht', 'Chn', 'Chs', 'Mug'],
+    'weekdays_min' => ['Sv', 'Mu', 'Cp', 'Ct', 'Cn', 'Cs', 'Mg'],
+    'months' => ['Ndira', 'Kukadzi', 'Kurume', 'Kubvumbi', 'Chivabvu', 'Chikumi', 'Chikunguru', 'Nyamavhuvhu', 'Gunyana', 'Gumiguru', 'Mbudzi', 'Zvita'],
+    'months_short' => ['Ndi', 'Kuk', 'Kur', 'Kub', 'Chv', 'Chk', 'Chg', 'Nya', 'Gun', 'Gum', 'Mbu', 'Zvi'],
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'YYYY-MM-dd',
+        'LL' => 'YYYY MMM D',
+        'LLL' => 'YYYY MMMM D HH:mm',
+        'LLLL' => 'YYYY MMMM D, dddd HH:mm',
+    ],
+
+    'year' => 'makore :count',
+    'y' => 'makore :count',
+    'a_year' => 'makore :count',
+
+    'month' => 'mwedzi :count',
+    'm' => 'mwedzi :count',
+    'a_month' => 'mwedzi :count',
+
+    'week' => 'vhiki :count',
+    'w' => 'vhiki :count',
+    'a_week' => 'vhiki :count',
+
+    'day' => 'mazuva :count',
+    'd' => 'mazuva :count',
+    'a_day' => 'mazuva :count',
+
+    'hour' => 'maawa :count',
+    'h' => 'maawa :count',
+    'a_hour' => 'maawa :count',
+
+    'minute' => 'minitsi :count',
+    'min' => 'minitsi :count',
+    'a_minute' => 'minitsi :count',
+
+    'second' => 'sekonzi :count',
+    's' => 'sekonzi :count',
+    'a_second' => 'sekonzi :count',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/so.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/so.php
new file mode 100644
index 0000000..5785271
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/so.php
@@ -0,0 +1,74 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Author:
+ * - Abdifatah Abdilahi(@abdifatahz)
+ */
+return [
+    'year' => ':count sanad|:count sanadood',
+    'a_year' => 'sanad|:count sanadood',
+    'y' => '{1}:countsn|{0}:countsns|]1,Inf[:countsn',
+    'month' => ':count bil|:count bilood',
+    'a_month' => 'bil|:count bilood',
+    'm' => ':countbil',
+    'week' => ':count isbuuc',
+    'a_week' => 'isbuuc|:count isbuuc',
+    'w' => ':countis',
+    'day' => ':count maalin|:count maalmood',
+    'a_day' => 'maalin|:count maalmood',
+    'd' => ':countml',
+    'hour' => ':count saac',
+    'a_hour' => 'saacad|:count saac',
+    'h' => ':countsc',
+    'minute' => ':count daqiiqo',
+    'a_minute' => 'daqiiqo|:count daqiiqo',
+    'min' => ':countdq',
+    'second' => ':count ilbidhiqsi',
+    'a_second' => 'xooga ilbidhiqsiyo|:count ilbidhiqsi',
+    's' => ':countil',
+    'ago' => ':time kahor',
+    'from_now' => ':time gudahood',
+    'after' => ':time kedib',
+    'before' => ':time kahor',
+    'diff_now' => 'hada',
+    'diff_today' => 'maanta',
+    'diff_today_regexp' => 'maanta(?:\s+markay\s+(?:tahay|ahayd))?',
+    'diff_yesterday' => 'shalayto',
+    'diff_yesterday_regexp' => 'shalayto(?:\s+markay\s+ahayd)?',
+    'diff_tomorrow' => 'beri',
+    'diff_tomorrow_regexp' => 'beri(?:\s+markay\s+tahay)?',
+    'diff_before_yesterday' => 'doraato',
+    'diff_after_tomorrow' => 'saadanbe',
+    'period_recurrences' => 'mar|:count jeer',
+    'period_interval' => ':interval kasta',
+    'period_start_date' => 'laga bilaabo :date',
+    'period_end_date' => 'ilaa :date',
+    'months' => ['Janaayo', 'Febraayo', 'Abriil', 'Maajo', 'Juun', 'Luuliyo', 'Agoosto', 'Sebteembar', 'Oktoobar', 'Nofeembar', 'Diseembar'],
+    'months_short' => ['Jan', 'Feb', 'Mar', 'Abr', 'Mjo', 'Jun', 'Lyo', 'Agt', 'Seb', 'Okt', 'Nof', 'Dis'],
+    'weekdays' => ['Axad', 'Isniin', 'Talaada', 'Arbaca', 'Khamiis', 'Jimce', 'Sabti'],
+    'weekdays_short' => ['Axd', 'Isn', 'Tal', 'Arb', 'Kha', 'Jim', 'Sbt'],
+    'weekdays_min' => ['Ax', 'Is', 'Ta', 'Ar', 'Kh', 'Ji', 'Sa'],
+    'list' => [', ', ' and '],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'calendar' => [
+        'sameDay' => '[Maanta markay tahay] LT',
+        'nextDay' => '[Beri markay tahay] LT',
+        'nextWeek' => 'dddd [markay tahay] LT',
+        'lastDay' => '[Shalay markay ahayd] LT',
+        'lastWeek' => '[Hore] dddd [Markay ahayd] LT',
+        'sameElse' => 'L',
+    ],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/so_DJ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/so_DJ.php
new file mode 100644
index 0000000..273dda8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/so_DJ.php
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ge'ez Frontier Foundation    locales@geez.org
+ */
+return array_replace_recursive(require __DIR__.'/so.php', [
+    'formats' => [
+        'L' => 'DD.MM.YYYY',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/so_ET.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/so_ET.php
new file mode 100644
index 0000000..7b69971
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/so_ET.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ge'ez Frontier Foundation    locales@geez.org
+ */
+return require __DIR__.'/so.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/so_KE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/so_KE.php
new file mode 100644
index 0000000..7b69971
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/so_KE.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ge'ez Frontier Foundation    locales@geez.org
+ */
+return require __DIR__.'/so.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/so_SO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/so_SO.php
new file mode 100644
index 0000000..7b69971
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/so_SO.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ge'ez Frontier Foundation    locales@geez.org
+ */
+return require __DIR__.'/so.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sq.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sq.php
new file mode 100644
index 0000000..ffa592e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sq.php
@@ -0,0 +1,79 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - François B
+ * - JD Isaacks
+ * - Fadion Dashi
+ */
+return [
+    'year' => ':count vit|:count vjet',
+    'a_year' => 'një vit|:count vite',
+    'y' => ':count v.',
+    'month' => ':count muaj',
+    'a_month' => 'një muaj|:count muaj',
+    'm' => ':count muaj',
+    'week' => ':count javë',
+    'a_week' => ':count javë|:count javë',
+    'w' => ':count j.',
+    'day' => ':count ditë',
+    'a_day' => 'një ditë|:count ditë',
+    'd' => ':count d.',
+    'hour' => ':count orë',
+    'a_hour' => 'një orë|:count orë',
+    'h' => ':count o.',
+    'minute' => ':count minutë|:count minuta',
+    'a_minute' => 'një minutë|:count minuta',
+    'min' => ':count min.',
+    'second' => ':count sekondë|:count sekonda',
+    'a_second' => 'disa sekonda|:count sekonda',
+    's' => ':count s.',
+    'ago' => ':time më parë',
+    'from_now' => 'në :time',
+    'after' => ':time pas',
+    'before' => ':time para',
+    'diff_now' => 'tani',
+    'diff_today' => 'Sot',
+    'diff_today_regexp' => 'Sot(?:\\s+në)?',
+    'diff_yesterday' => 'dje',
+    'diff_yesterday_regexp' => 'Dje(?:\\s+në)?',
+    'diff_tomorrow' => 'nesër',
+    'diff_tomorrow_regexp' => 'Nesër(?:\\s+në)?',
+    'diff_before_yesterday' => 'pardje',
+    'diff_after_tomorrow' => 'pasnesër',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Sot në] LT',
+        'nextDay' => '[Nesër në] LT',
+        'nextWeek' => 'dddd [në] LT',
+        'lastDay' => '[Dje në] LT',
+        'lastWeek' => 'dddd [e kaluar në] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':number.',
+    'meridiem' => ['PD', 'MD'],
+    'months' => ['janar', 'shkurt', 'mars', 'prill', 'maj', 'qershor', 'korrik', 'gusht', 'shtator', 'tetor', 'nëntor', 'dhjetor'],
+    'months_short' => ['jan', 'shk', 'mar', 'pri', 'maj', 'qer', 'kor', 'gus', 'sht', 'tet', 'nën', 'dhj'],
+    'weekdays' => ['e diel', 'e hënë', 'e martë', 'e mërkurë', 'e enjte', 'e premte', 'e shtunë'],
+    'weekdays_short' => ['die', 'hën', 'mar', 'mër', 'enj', 'pre', 'sht'],
+    'weekdays_min' => ['d', 'h', 'ma', 'më', 'e', 'p', 'sh'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' dhe '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sq_AL.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sq_AL.php
new file mode 100644
index 0000000..0bfbdf3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sq_AL.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/sq.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sq_MK.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sq_MK.php
new file mode 100644
index 0000000..c844fe0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sq_MK.php
@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/sq.php', [
+    'formats' => [
+        'L' => 'D.M.YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY, HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY, HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sq_XK.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sq_XK.php
new file mode 100644
index 0000000..c844fe0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sq_XK.php
@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/sq.php', [
+    'formats' => [
+        'L' => 'D.M.YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY, HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY, HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr.php
new file mode 100644
index 0000000..6ecf2d0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr.php
@@ -0,0 +1,109 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - François B
+ * - shaishavgandhi05
+ * - Serhan Apaydın
+ * - JD Isaacks
+ * - Glavić
+ * - Milos Sakovic
+ */
+return [
+    'year' => ':count godina|:count godine|:count godina',
+    'y' => ':count g.',
+    'month' => ':count mesec|:count meseca|:count meseci',
+    'm' => ':count mj.',
+    'week' => ':count nedelja|:count nedelje|:count nedelja',
+    'w' => ':count ned.',
+    'day' => ':count dan|:count dana|:count dana',
+    'd' => ':count d.',
+    'hour' => ':count sat|:count sata|:count sati',
+    'h' => ':count č.',
+    'minute' => ':count minut|:count minuta|:count minuta',
+    'min' => ':count min.',
+    'second' => ':count sekundu|:count sekunde|:count sekundi',
+    's' => ':count sek.',
+    'ago' => 'pre :time',
+    'from_now' => 'za :time',
+    'after' => 'nakon :time',
+    'before' => 'pre :time',
+
+    'year_from_now' => ':count godinu|:count godine|:count godina',
+    'year_ago' => ':count godinu|:count godine|:count godina',
+    'week_from_now' => ':count nedelju|:count nedelje|:count nedelja',
+    'week_ago' => ':count nedelju|:count nedelje|:count nedelja',
+
+    'diff_now' => 'upravo sada',
+    'diff_today' => 'danas',
+    'diff_today_regexp' => 'danas(?:\\s+u)?',
+    'diff_yesterday' => 'juče',
+    'diff_yesterday_regexp' => 'juče(?:\\s+u)?',
+    'diff_tomorrow' => 'sutra',
+    'diff_tomorrow_regexp' => 'sutra(?:\\s+u)?',
+    'diff_before_yesterday' => 'prekjuče',
+    'diff_after_tomorrow' => 'preksutra',
+    'formats' => [
+        'LT' => 'H:mm',
+        'LTS' => 'H:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D. MMMM YYYY',
+        'LLL' => 'D. MMMM YYYY H:mm',
+        'LLLL' => 'dddd, D. MMMM YYYY H:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[danas u] LT',
+        'nextDay' => '[sutra u] LT',
+        'nextWeek' => function (\Carbon\CarbonInterface $date) {
+            switch ($date->dayOfWeek) {
+                case 0:
+                    return '[u nedelju u] LT';
+                case 3:
+                    return '[u sredu u] LT';
+                case 6:
+                    return '[u subotu u] LT';
+                default:
+                    return '[u] dddd [u] LT';
+            }
+        },
+        'lastDay' => '[juče u] LT',
+        'lastWeek' => function (\Carbon\CarbonInterface $date) {
+            switch ($date->dayOfWeek) {
+                case 0:
+                    return '[prošle nedelje u] LT';
+                case 1:
+                    return '[prošlog ponedeljka u] LT';
+                case 2:
+                    return '[prošlog utorka u] LT';
+                case 3:
+                    return '[prošle srede u] LT';
+                case 4:
+                    return '[prošlog četvrtka u] LT';
+                case 5:
+                    return '[prošlog petka u] LT';
+                default:
+                    return '[prošle subote u] LT';
+            }
+        },
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':number.',
+    'months' => ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'],
+    'months_short' => ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun', 'jul', 'avg.', 'sep.', 'okt.', 'nov.', 'dec.'],
+    'weekdays' => ['nedelja', 'ponedeljak', 'utorak', 'sreda', 'četvrtak', 'petak', 'subota'],
+    'weekdays_short' => ['ned.', 'pon.', 'uto.', 'sre.', 'čet.', 'pet.', 'sub.'],
+    'weekdays_min' => ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' i '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl.php
new file mode 100644
index 0000000..8540742
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl.php
@@ -0,0 +1,109 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - François B
+ * - shaishavgandhi05
+ * - Serhan Apaydın
+ * - JD Isaacks
+ * - Glavić
+ * - Nikola Zeravcic
+ * - Milos Sakovic
+ */
+return [
+    'year' => '{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count године|[0,Inf[:count година',
+    'y' => ':count г.',
+    'month' => '{1}:count месец|{2,3,4}:count месеца|[0,Inf[:count месеци',
+    'm' => ':count м.',
+    'week' => '{1}:count недеља|{2,3,4}:count недеље|[0,Inf[:count недеља',
+    'w' => ':count нед.',
+    'day' => '{1,21,31}:count дан|[0,Inf[:count дана',
+    'd' => ':count д.',
+    'hour' => '{1,21}:count сат|{2,3,4,22,23,24}:count сата|[0,Inf[:count сати',
+    'h' => ':count ч.',
+    'minute' => '{1,21,31,41,51}:count минут|[0,Inf[:count минута',
+    'min' => ':count мин.',
+    'second' => '{1,21,31,41,51}:count секунд|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count секунде|[0,Inf[:count секунди',
+    's' => ':count сек.',
+    'ago' => 'пре :time',
+    'from_now' => 'за :time',
+    'after' => ':time након',
+    'before' => ':time пре',
+    'year_from_now' => '{1,21,31,41,51}:count годину|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count године|[0,Inf[:count година',
+    'year_ago' => '{1,21,31,41,51}:count годину|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count године|[0,Inf[:count година',
+    'week_from_now' => '{1}:count недељу|{2,3,4}:count недеље|[0,Inf[:count недеља',
+    'week_ago' => '{1}:count недељу|{2,3,4}:count недеље|[0,Inf[:count недеља',
+    'diff_now' => 'управо сада',
+    'diff_today' => 'данас',
+    'diff_today_regexp' => 'данас(?:\\s+у)?',
+    'diff_yesterday' => 'јуче',
+    'diff_yesterday_regexp' => 'јуче(?:\\s+у)?',
+    'diff_tomorrow' => 'сутра',
+    'diff_tomorrow_regexp' => 'сутра(?:\\s+у)?',
+    'diff_before_yesterday' => 'прекјуче',
+    'diff_after_tomorrow' => 'прекосутра',
+    'formats' => [
+        'LT' => 'H:mm',
+        'LTS' => 'H:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D. MMMM YYYY',
+        'LLL' => 'D. MMMM YYYY H:mm',
+        'LLLL' => 'dddd, D. MMMM YYYY H:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[данас у] LT',
+        'nextDay' => '[сутра у] LT',
+        'nextWeek' => function (\Carbon\CarbonInterface $date) {
+            switch ($date->dayOfWeek) {
+                case 0:
+                    return '[у недељу у] LT';
+                case 3:
+                    return '[у среду у] LT';
+                case 6:
+                    return '[у суботу у] LT';
+                default:
+                    return '[у] dddd [у] LT';
+            }
+        },
+        'lastDay' => '[јуче у] LT',
+        'lastWeek' => function (\Carbon\CarbonInterface $date) {
+            switch ($date->dayOfWeek) {
+                case 0:
+                    return '[прошле недеље у] LT';
+                case 1:
+                    return '[прошлог понедељка у] LT';
+                case 2:
+                    return '[прошлог уторка у] LT';
+                case 3:
+                    return '[прошле среде у] LT';
+                case 4:
+                    return '[прошлог четвртка у] LT';
+                case 5:
+                    return '[прошлог петка у] LT';
+                default:
+                    return '[прошле суботе у] LT';
+            }
+        },
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':number.',
+    'months' => ['јануар', 'фебруар', 'март', 'април', 'мај', 'јун', 'јул', 'август', 'септембар', 'октобар', 'новембар', 'децембар'],
+    'months_short' => ['јан.', 'феб.', 'мар.', 'апр.', 'мај', 'јун', 'јул', 'авг.', 'сеп.', 'окт.', 'нов.', 'дец.'],
+    'weekdays' => ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота'],
+    'weekdays_short' => ['нед.', 'пон.', 'уто.', 'сре.', 'чет.', 'пет.', 'суб.'],
+    'weekdays_min' => ['не', 'по', 'ут', 'ср', 'че', 'пе', 'су'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' и '],
+    'meridiem' => ['АМ', 'ПМ'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_BA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_BA.php
new file mode 100644
index 0000000..36405d3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_BA.php
@@ -0,0 +1,22 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/sr_Cyrl.php', [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D.M.yy.',
+        'LL' => 'DD.MM.YYYY.',
+        'LLL' => 'DD. MMMM YYYY. HH:mm',
+        'LLLL' => 'dddd, DD. MMMM YYYY. HH:mm',
+    ],
+    'weekdays' => ['недјеља', 'понедељак', 'уторак', 'сриједа', 'четвртак', 'петак', 'субота'],
+    'weekdays_short' => ['нед.', 'пон.', 'ут.', 'ср.', 'чет.', 'пет.', 'суб.'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_ME.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_ME.php
new file mode 100644
index 0000000..fb6179e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_ME.php
@@ -0,0 +1,106 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Glavić
+ * - Milos Sakovic
+ */
+return [
+    'year' => '{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count године|[0,Inf[:count година',
+    'y' => ':count г.',
+    'month' => '{1}:count мјесец|{2,3,4}:count мјесеца|[0,Inf[:count мјесеци',
+    'm' => ':count мј.',
+    'week' => '{1}:count недјеља|{2,3,4}:count недјеље|[0,Inf[:count недјеља',
+    'w' => ':count нед.',
+    'day' => '{1,21,31}:count дан|[0,Inf[:count дана',
+    'd' => ':count д.',
+    'hour' => '{1,21}:count сат|{2,3,4,22,23,24}:count сата|[0,Inf[:count сати',
+    'h' => ':count ч.',
+    'minute' => '{1,21,31,41,51}:count минут|[0,Inf[:count минута',
+    'min' => ':count мин.',
+    'second' => '{1,21,31,41,51}:count секунд|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count секунде|[0,Inf[:count секунди',
+    's' => ':count сек.',
+    'ago' => 'прије :time',
+    'from_now' => 'за :time',
+    'after' => ':time након',
+    'before' => ':time прије',
+
+    'year_from_now' => '{1,21,31,41,51}:count годину|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count године|[0,Inf[:count година',
+    'year_ago' => '{1,21,31,41,51}:count годину|{2,3,4,22,23,24,32,33,34,42,43,44,52,53,54}:count године|[0,Inf[:count година',
+
+    'week_from_now' => '{1}:count недјељу|{2,3,4}:count недјеље|[0,Inf[:count недјеља',
+    'week_ago' => '{1}:count недјељу|{2,3,4}:count недјеље|[0,Inf[:count недјеља',
+
+    'diff_now' => 'управо сада',
+    'diff_today' => 'данас',
+    'diff_today_regexp' => 'данас(?:\\s+у)?',
+    'diff_yesterday' => 'јуче',
+    'diff_yesterday_regexp' => 'јуче(?:\\s+у)?',
+    'diff_tomorrow' => 'сутра',
+    'diff_tomorrow_regexp' => 'сутра(?:\\s+у)?',
+    'diff_before_yesterday' => 'прекјуче',
+    'diff_after_tomorrow' => 'прекосјутра',
+    'formats' => [
+        'LT' => 'H:mm',
+        'LTS' => 'H:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D. MMMM YYYY',
+        'LLL' => 'D. MMMM YYYY H:mm',
+        'LLLL' => 'dddd, D. MMMM YYYY H:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[данас у] LT',
+        'nextDay' => '[сутра у] LT',
+        'nextWeek' => function (\Carbon\CarbonInterface $date) {
+            switch ($date->dayOfWeek) {
+                case 0:
+                    return '[у недељу у] LT';
+                case 3:
+                    return '[у среду у] LT';
+                case 6:
+                    return '[у суботу у] LT';
+                default:
+                    return '[у] dddd [у] LT';
+            }
+        },
+        'lastDay' => '[јуче у] LT',
+        'lastWeek' => function (\Carbon\CarbonInterface $date) {
+            switch ($date->dayOfWeek) {
+                case 0:
+                    return '[прошле недеље у] LT';
+                case 1:
+                    return '[прошлог понедељка у] LT';
+                case 2:
+                    return '[прошлог уторка у] LT';
+                case 3:
+                    return '[прошле среде у] LT';
+                case 4:
+                    return '[прошлог четвртка у] LT';
+                case 5:
+                    return '[прошлог петка у] LT';
+                default:
+                    return '[прошле суботе у] LT';
+            }
+        },
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':number.',
+    'months' => ['јануар', 'фебруар', 'март', 'април', 'мај', 'јун', 'јул', 'август', 'септембар', 'октобар', 'новембар', 'децембар'],
+    'months_short' => ['јан.', 'феб.', 'мар.', 'апр.', 'мај', 'јун', 'јул', 'авг.', 'сеп.', 'окт.', 'нов.', 'дец.'],
+    'weekdays' => ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота'],
+    'weekdays_short' => ['нед.', 'пон.', 'уто.', 'сре.', 'чет.', 'пет.', 'суб.'],
+    'weekdays_min' => ['не', 'по', 'ут', 'ср', 'че', 'пе', 'су'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' и '],
+    'meridiem' => ['АМ', 'ПМ'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_XK.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_XK.php
new file mode 100644
index 0000000..0643a41
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Cyrl_XK.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/sr_Cyrl_BA.php', [
+    'weekdays' => ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn.php
new file mode 100644
index 0000000..8ae8c41
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/sr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_BA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_BA.php
new file mode 100644
index 0000000..c25a507
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_BA.php
@@ -0,0 +1,22 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/sr_Latn.php', [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D.M.yy.',
+        'LL' => 'DD.MM.YYYY.',
+        'LLL' => 'DD. MMMM YYYY. HH:mm',
+        'LLLL' => 'dddd, DD. MMMM YYYY. HH:mm',
+    ],
+    'weekdays' => ['nedjelja', 'ponedeljak', 'utorak', 'srijeda', 'četvrtak', 'petak', 'subota'],
+    'weekdays_short' => ['ned.', 'pon.', 'ut.', 'sr.', 'čet.', 'pet.', 'sub.'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_ME.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_ME.php
new file mode 100644
index 0000000..de20f21
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_ME.php
@@ -0,0 +1,63 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Glavić
+ * - Milos Sakovic
+ */
+return array_replace_recursive(require __DIR__.'/sr.php', [
+    'month' => ':count mjesec|:count mjeseca|:count mjeseci',
+    'week' => ':count nedjelja|:count nedjelje|:count nedjelja',
+    'second' => ':count sekund|:count sekunde|:count sekundi',
+    'ago' => 'prije :time',
+    'from_now' => 'za :time',
+    'after' => ':time nakon',
+    'before' => ':time prije',
+    'week_from_now' => ':count nedjelju|:count nedjelje|:count nedjelja',
+    'week_ago' => ':count nedjelju|:count nedjelje|:count nedjelja',
+    'diff_tomorrow' => 'sjutra',
+    'calendar' => [
+        'nextDay' => '[sjutra u] LT',
+        'nextWeek' => function (\Carbon\CarbonInterface $date) {
+            switch ($date->dayOfWeek) {
+                case 0:
+                    return '[u nedjelju u] LT';
+                case 3:
+                    return '[u srijedu u] LT';
+                case 6:
+                    return '[u subotu u] LT';
+                default:
+                    return '[u] dddd [u] LT';
+            }
+        },
+        'lastWeek' => function (\Carbon\CarbonInterface $date) {
+            switch ($date->dayOfWeek) {
+                case 0:
+                    return '[prošle nedjelje u] LT';
+                case 1:
+                    return '[prošle nedjelje u] LT';
+                case 2:
+                    return '[prošlog utorka u] LT';
+                case 3:
+                    return '[prošle srijede u] LT';
+                case 4:
+                    return '[prošlog četvrtka u] LT';
+                case 5:
+                    return '[prošlog petka u] LT';
+                default:
+                    return '[prošle subote u] LT';
+            }
+        },
+    ],
+    'weekdays' => ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', 'petak', 'subota'],
+    'weekdays_short' => ['ned.', 'pon.', 'uto.', 'sri.', 'čet.', 'pet.', 'sub.'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_XK.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_XK.php
new file mode 100644
index 0000000..ba7cc09
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_Latn_XK.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/sr_Latn_BA.php', [
+    'weekdays' => ['nedelja', 'ponedeljak', 'utorak', 'sreda', 'četvrtak', 'petak', 'subota'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_ME.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_ME.php
new file mode 100644
index 0000000..b668ee1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_ME.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/sr_Latn_ME.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_RS.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_RS.php
new file mode 100644
index 0000000..bc5e04b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_RS.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - sr_YU, sr_CS locale Danilo Segan bug-glibc-locales@gnu.org
+ */
+return require __DIR__.'/sr_Cyrl.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_RS@latin.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_RS@latin.php
new file mode 100644
index 0000000..8ae8c41
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sr_RS@latin.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/sr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ss.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ss.php
new file mode 100644
index 0000000..cd4b919
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ss.php
@@ -0,0 +1,78 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - François B
+ * - Nicolai Davies
+ */
+return [
+    'year' => '{1}umnyaka|:count iminyaka',
+    'month' => '{1}inyanga|:count tinyanga',
+    'week' => '{1}:count liviki|:count emaviki',
+    'day' => '{1}lilanga|:count emalanga',
+    'hour' => '{1}lihora|:count emahora',
+    'minute' => '{1}umzuzu|:count emizuzu',
+    'second' => '{1}emizuzwana lomcane|:count mzuzwana',
+    'ago' => 'wenteka nga :time',
+    'from_now' => 'nga :time',
+    'diff_yesterday' => 'Itolo',
+    'diff_yesterday_regexp' => 'Itolo(?:\\s+nga)?',
+    'diff_today' => 'Namuhla',
+    'diff_today_regexp' => 'Namuhla(?:\\s+nga)?',
+    'diff_tomorrow' => 'Kusasa',
+    'diff_tomorrow_regexp' => 'Kusasa(?:\\s+nga)?',
+    'formats' => [
+        'LT' => 'h:mm A',
+        'LTS' => 'h:mm:ss A',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY h:mm A',
+        'LLLL' => 'dddd, D MMMM YYYY h:mm A',
+    ],
+    'calendar' => [
+        'sameDay' => '[Namuhla nga] LT',
+        'nextDay' => '[Kusasa nga] LT',
+        'nextWeek' => 'dddd [nga] LT',
+        'lastDay' => '[Itolo nga] LT',
+        'lastWeek' => 'dddd [leliphelile] [nga] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number) {
+        $lastDigit = $number % 10;
+
+        return $number.(
+            (~~($number % 100 / 10) === 1) ? 'e' : (
+                ($lastDigit === 1 || $lastDigit === 2) ? 'a' : 'e'
+            )
+        );
+    },
+    'meridiem' => function ($hour) {
+        if ($hour < 11) {
+            return 'ekuseni';
+        }
+        if ($hour < 15) {
+            return 'emini';
+        }
+        if ($hour < 19) {
+            return 'entsambama';
+        }
+
+        return 'ebusuku';
+    },
+    'months' => ['Bhimbidvwane', 'Indlovana', 'Indlov\'lenkhulu', 'Mabasa', 'Inkhwekhweti', 'Inhlaba', 'Kholwane', 'Ingci', 'Inyoni', 'Imphala', 'Lweti', 'Ingongoni'],
+    'months_short' => ['Bhi', 'Ina', 'Inu', 'Mab', 'Ink', 'Inh', 'Kho', 'Igc', 'Iny', 'Imp', 'Lwe', 'Igo'],
+    'weekdays' => ['Lisontfo', 'Umsombuluko', 'Lesibili', 'Lesitsatfu', 'Lesine', 'Lesihlanu', 'Umgcibelo'],
+    'weekdays_short' => ['Lis', 'Umb', 'Lsb', 'Les', 'Lsi', 'Lsh', 'Umg'],
+    'weekdays_min' => ['Li', 'Us', 'Lb', 'Lt', 'Ls', 'Lh', 'Ug'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ss_ZA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ss_ZA.php
new file mode 100644
index 0000000..48d970a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ss_ZA.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/ss.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/st.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/st.php
new file mode 100644
index 0000000..b065445
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/st.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/st_ZA.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/st_ZA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/st_ZA.php
new file mode 100644
index 0000000..5bce7f2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/st_ZA.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['Pherekgong', 'Hlakola', 'Tlhakubele', 'Mmese', 'Motsheanong', 'Phupjane', 'Phupu', 'Phato', 'Leotse', 'Mphalane', 'Pudungwana', 'Tshitwe'],
+    'months_short' => ['Phe', 'Hla', 'TlH', 'Mme', 'Mot', 'Jan', 'Upu', 'Pha', 'Leo', 'Mph', 'Pud', 'Tsh'],
+    'weekdays' => ['Sontaha', 'Mantaha', 'Labobedi', 'Laboraro', 'Labone', 'Labohlano', 'Moqebelo'],
+    'weekdays_short' => ['Son', 'Mma', 'Bed', 'Rar', 'Ne', 'Hla', 'Moq'],
+    'weekdays_min' => ['Son', 'Mma', 'Bed', 'Rar', 'Ne', 'Hla', 'Moq'],
+    'day_of_first_week_of_year' => 1,
+
+    'week' => ':count Sontaha', // less reliable
+    'w' => ':count Sontaha', // less reliable
+    'a_week' => ':count Sontaha', // less reliable
+
+    'day' => ':count letsatsi', // less reliable
+    'd' => ':count letsatsi', // less reliable
+    'a_day' => ':count letsatsi', // less reliable
+
+    'hour' => ':count sešupanako', // less reliable
+    'h' => ':count sešupanako', // less reliable
+    'a_hour' => ':count sešupanako', // less reliable
+
+    'minute' => ':count menyane', // less reliable
+    'min' => ':count menyane', // less reliable
+    'a_minute' => ':count menyane', // less reliable
+
+    'second' => ':count thusa', // less reliable
+    's' => ':count thusa', // less reliable
+    'a_second' => ':count thusa', // less reliable
+
+    'year' => ':count selemo',
+    'y' => ':count selemo',
+    'a_year' => ':count selemo',
+
+    'month' => ':count kgwedi',
+    'm' => ':count kgwedi',
+    'a_month' => ':count kgwedi',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sv.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sv.php
new file mode 100644
index 0000000..ca33e1c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sv.php
@@ -0,0 +1,87 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - François B
+ * - Kristoffer Snabb
+ * - JD Isaacks
+ * - Jens Herlevsen
+ * - Nightpine
+ * - Anders Nygren (litemerafrukt)
+ */
+return [
+    'year' => ':count år',
+    'a_year' => 'ett år|:count år',
+    'y' => ':count år',
+    'month' => ':count månad|:count månader',
+    'a_month' => 'en månad|:count månader',
+    'm' => ':count mån',
+    'week' => ':count vecka|:count veckor',
+    'a_week' => 'en vecka|:count veckor',
+    'w' => ':count v',
+    'day' => ':count dag|:count dagar',
+    'a_day' => 'en dag|:count dagar',
+    'd' => ':count dgr',
+    'hour' => ':count timme|:count timmar',
+    'a_hour' => 'en timme|:count timmar',
+    'h' => ':count tim',
+    'minute' => ':count minut|:count minuter',
+    'a_minute' => 'en minut|:count minuter',
+    'min' => ':count min',
+    'second' => ':count sekund|:count sekunder',
+    'a_second' => 'några sekunder|:count sekunder',
+    's' => ':count s',
+    'ago' => 'för :time sedan',
+    'from_now' => 'om :time',
+    'after' => ':time efter',
+    'before' => ':time före',
+    'diff_now' => 'nu',
+    'diff_today' => 'I dag',
+    'diff_yesterday' => 'i går',
+    'diff_yesterday_regexp' => 'I går',
+    'diff_tomorrow' => 'i morgon',
+    'diff_tomorrow_regexp' => 'I morgon',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'YYYY-MM-DD',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY [kl.] HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY [kl.] HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[I dag] LT',
+        'nextDay' => '[I morgon] LT',
+        'nextWeek' => '[På] dddd LT',
+        'lastDay' => '[I går] LT',
+        'lastWeek' => '[I] dddd[s] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number) {
+        $lastDigit = $number % 10;
+
+        return $number.(
+            (~~($number % 100 / 10) === 1) ? 'e' : (
+                ($lastDigit === 1 || $lastDigit === 2) ? 'a' : 'e'
+            )
+        );
+    },
+    'months' => ['januari', 'februari', 'mars', 'april', 'maj', 'juni', 'juli', 'augusti', 'september', 'oktober', 'november', 'december'],
+    'months_short' => ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
+    'weekdays' => ['söndag', 'måndag', 'tisdag', 'onsdag', 'torsdag', 'fredag', 'lördag'],
+    'weekdays_short' => ['sön', 'mån', 'tis', 'ons', 'tors', 'fre', 'lör'],
+    'weekdays_min' => ['sö', 'må', 'ti', 'on', 'to', 'fr', 'lö'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' och '],
+    'meridiem' => ['fm', 'em'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sv_AX.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sv_AX.php
new file mode 100644
index 0000000..56425b4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sv_AX.php
@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/sv.php', [
+    'formats' => [
+        'L' => 'YYYY-MM-dd',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sv_FI.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sv_FI.php
new file mode 100644
index 0000000..1b73ecb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sv_FI.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/sv.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sv_SE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sv_SE.php
new file mode 100644
index 0000000..1b73ecb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sv_SE.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/sv.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sw.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sw.php
new file mode 100644
index 0000000..f8630d5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sw.php
@@ -0,0 +1,74 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - leyluj
+ * - Josh Soref
+ * - ryanhart2
+ */
+return [
+    'year' => 'mwaka :count|miaka :count',
+    'a_year' => 'mwaka mmoja|miaka :count',
+    'y' => 'mwaka :count|miaka :count',
+    'month' => 'mwezi :count|miezi :count',
+    'a_month' => 'mwezi mmoja|miezi :count',
+    'm' => 'mwezi :count|miezi :count',
+    'week' => 'wiki :count',
+    'a_week' => 'wiki mmoja|wiki :count',
+    'w' => 'w. :count',
+    'day' => 'siku :count',
+    'a_day' => 'siku moja|masiku :count',
+    'd' => 'si. :count',
+    'hour' => 'saa :count|masaa :count',
+    'a_hour' => 'saa limoja|masaa :count',
+    'h' => 'saa :count|masaa :count',
+    'minute' => 'dakika :count',
+    'a_minute' => 'dakika moja|dakika :count',
+    'min' => 'd. :count',
+    'second' => 'sekunde :count',
+    'a_second' => 'hivi punde|sekunde :count',
+    's' => 'se. :count',
+    'ago' => 'tokea :time',
+    'from_now' => ':time baadaye',
+    'after' => ':time baada',
+    'before' => ':time kabla',
+    'diff_now' => 'sasa hivi',
+    'diff_today' => 'leo',
+    'diff_today_regexp' => 'leo(?:\\s+saa)?',
+    'diff_yesterday' => 'jana',
+    'diff_tomorrow' => 'kesho',
+    'diff_tomorrow_regexp' => 'kesho(?:\\s+saa)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[leo saa] LT',
+        'nextDay' => '[kesho saa] LT',
+        'nextWeek' => '[wiki ijayo] dddd [saat] LT',
+        'lastDay' => '[jana] LT',
+        'lastWeek' => '[wiki iliyopita] dddd [saat] LT',
+        'sameElse' => 'L',
+    ],
+    'months' => ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'],
+    'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'],
+    'weekdays' => ['Jumapili', 'Jumatatu', 'Jumanne', 'Jumatano', 'Alhamisi', 'Ijumaa', 'Jumamosi'],
+    'weekdays_short' => ['Jpl', 'Jtat', 'Jnne', 'Jtan', 'Alh', 'Ijm', 'Jmos'],
+    'weekdays_min' => ['J2', 'J3', 'J4', 'J5', 'Al', 'Ij', 'J1'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' na '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sw_CD.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sw_CD.php
new file mode 100644
index 0000000..f6927f4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sw_CD.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/sw.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sw_KE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sw_KE.php
new file mode 100644
index 0000000..2ace0db
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sw_KE.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Kamusi Project Martin Benjamin locales@kamusi.org
+ */
+return array_replace_recursive(require __DIR__.'/sw.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'],
+    'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'],
+    'weekdays' => ['Jumapili', 'Jumatatu', 'Jumanne', 'Jumatano', 'Alhamisi', 'Ijumaa', 'Jumamosi'],
+    'weekdays_short' => ['J2', 'J3', 'J4', 'J5', 'Alh', 'Ij', 'J1'],
+    'weekdays_min' => ['J2', 'J3', 'J4', 'J5', 'Alh', 'Ij', 'J1'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['asubuhi', 'alasiri'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sw_TZ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sw_TZ.php
new file mode 100644
index 0000000..fab3cd6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sw_TZ.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Kamusi Project Martin Benjamin locales@kamusi.org
+ */
+return array_replace_recursive(require __DIR__.'/sw.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['Januari', 'Februari', 'Machi', 'Aprili', 'Mei', 'Juni', 'Julai', 'Agosti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'],
+    'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'],
+    'weekdays' => ['Jumapili', 'Jumatatu', 'Jumanne', 'Jumatano', 'Alhamisi', 'Ijumaa', 'Jumamosi'],
+    'weekdays_short' => ['J2', 'J3', 'J4', 'J5', 'Alh', 'Ij', 'J1'],
+    'weekdays_min' => ['J2', 'J3', 'J4', 'J5', 'Alh', 'Ij', 'J1'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['asubuhi', 'alasiri'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sw_UG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sw_UG.php
new file mode 100644
index 0000000..f6927f4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/sw_UG.php
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/sw.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/szl.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/szl.php
new file mode 100644
index 0000000..4429c4f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/szl.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/szl_PL.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/szl_PL.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/szl_PL.php
new file mode 100644
index 0000000..4b0b541
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/szl_PL.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - szl_PL locale Przemyslaw Buczkowski libc-alpha@sourceware.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD.MM.YYYY',
+    ],
+    'months' => ['styczyń', 'luty', 'merc', 'kwjeciyń', 'moj', 'czyrwjyń', 'lipjyń', 'siyrpjyń', 'wrzesiyń', 'październik', 'listopad', 'grudziyń'],
+    'months_short' => ['sty', 'lut', 'mer', 'kwj', 'moj', 'czy', 'lip', 'siy', 'wrz', 'paź', 'lis', 'gru'],
+    'weekdays' => ['niydziela', 'pyńdziŏek', 'wtŏrek', 'strzŏda', 'sztwortek', 'pjōntek', 'sobŏta'],
+    'weekdays_short' => ['niy', 'pyń', 'wtŏ', 'str', 'szt', 'pjō', 'sob'],
+    'weekdays_min' => ['niy', 'pyń', 'wtŏ', 'str', 'szt', 'pjō', 'sob'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+
+    'year' => ':count rok',
+    'y' => ':count rok',
+    'a_year' => ':count rok',
+
+    'month' => ':count mjeśůnc',
+    'm' => ':count mjeśůnc',
+    'a_month' => ':count mjeśůnc',
+
+    'week' => ':count Tydźyń',
+    'w' => ':count Tydźyń',
+    'a_week' => ':count Tydźyń',
+
+    'day' => ':count dźyń',
+    'd' => ':count dźyń',
+    'a_day' => ':count dźyń',
+
+    'hour' => ':count godzina',
+    'h' => ':count godzina',
+    'a_hour' => ':count godzina',
+
+    'minute' => ':count Minuta',
+    'min' => ':count Minuta',
+    'a_minute' => ':count Minuta',
+
+    'second' => ':count Sekůnda',
+    's' => ':count Sekůnda',
+    'a_second' => ':count Sekůnda',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ta.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ta.php
new file mode 100644
index 0000000..c1d89cb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ta.php
@@ -0,0 +1,97 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - François B
+ * - JD Isaacks
+ * - Satheez
+ */
+return [
+    'year' => ':count வருடம்|:count ஆண்டுகள்',
+    'a_year' => 'ஒரு வருடம்|:count ஆண்டுகள்',
+    'y' => ':count வருட.|:count ஆண்.',
+    'month' => ':count மாதம்|:count மாதங்கள்',
+    'a_month' => 'ஒரு மாதம்|:count மாதங்கள்',
+    'm' => ':count மாத.',
+    'week' => ':count வாரம்|:count வாரங்கள்',
+    'a_week' => 'ஒரு வாரம்|:count வாரங்கள்',
+    'w' => ':count வார.',
+    'day' => ':count நாள்|:count நாட்கள்',
+    'a_day' => 'ஒரு நாள்|:count நாட்கள்',
+    'd' => ':count நாள்|:count நாட்.',
+    'hour' => ':count மணி நேரம்|:count மணி நேரம்',
+    'a_hour' => 'ஒரு மணி நேரம்|:count மணி நேரம்',
+    'h' => ':count மணி.',
+    'minute' => ':count நிமிடம்|:count நிமிடங்கள்',
+    'a_minute' => 'ஒரு நிமிடம்|:count நிமிடங்கள்',
+    'min' => ':count நிமி.',
+    'second' => ':count சில விநாடிகள்|:count விநாடிகள்',
+    'a_second' => 'ஒரு சில விநாடிகள்|:count விநாடிகள்',
+    's' => ':count விநா.',
+    'ago' => ':time முன்',
+    'from_now' => ':time இல்',
+    'before' => ':time முன்',
+    'after' => ':time பின்',
+    'diff_now' => 'இப்போது',
+    'diff_today' => 'இன்று',
+    'diff_yesterday' => 'நேற்று',
+    'diff_tomorrow' => 'நாளை',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY, HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY, HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[இன்று] LT',
+        'nextDay' => '[நாளை] LT',
+        'nextWeek' => 'dddd, LT',
+        'lastDay' => '[நேற்று] LT',
+        'lastWeek' => '[கடந்த வாரம்] dddd, LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':numberவது',
+    'meridiem' => function ($hour) {
+        if ($hour < 2) {
+            return ' யாமம்';
+        }
+        if ($hour < 6) {
+            return ' வைகறை';
+        }
+        if ($hour < 10) {
+            return ' காலை';
+        }
+        if ($hour < 14) {
+            return ' நண்பகல்';
+        }
+        if ($hour < 18) {
+            return ' எற்பாடு';
+        }
+        if ($hour < 22) {
+            return ' மாலை';
+        }
+
+        return ' யாமம்';
+    },
+    'months' => ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', 'ஆகஸ்ட்', 'செப்டெம்பர்', 'அக்டோபர்', 'நவம்பர்', 'டிசம்பர்'],
+    'months_short' => ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', 'ஆகஸ்ட்', 'செப்டெம்பர்', 'அக்டோபர்', 'நவம்பர்', 'டிசம்பர்'],
+    'weekdays' => ['ஞாயிற்றுக்கிழமை', 'திங்கட்கிழமை', 'செவ்வாய்கிழமை', 'புதன்கிழமை', 'வியாழக்கிழமை', 'வெள்ளிக்கிழமை', 'சனிக்கிழமை'],
+    'weekdays_short' => ['ஞாயிறு', 'திங்கள்', 'செவ்வாய்', 'புதன்', 'வியாழன்', 'வெள்ளி', 'சனி'],
+    'weekdays_min' => ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'],
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' மற்றும் '],
+    'weekend' => [0, 0],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ta_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ta_IN.php
new file mode 100644
index 0000000..492d4c5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ta_IN.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/ta.php', [
+    'formats' => [
+        'L' => 'D/M/YY',
+    ],
+    'months' => ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', 'ஆகஸ்ட்', 'செப்டம்பர்', 'அக்டோபர்', 'நவம்பர்', 'டிசம்பர்'],
+    'months_short' => ['ஜன.', 'பிப்.', 'மார்.', 'ஏப்.', 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', 'செப்.', 'அக்.', 'நவ.', 'டிச.'],
+    'weekdays' => ['ஞாயிறு', 'திங்கள்', 'செவ்வாய்', 'புதன்', 'வியாழன்', 'வெள்ளி', 'சனி'],
+    'weekdays_short' => ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'],
+    'weekdays_min' => ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['காலை', 'மாலை'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ta_LK.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ta_LK.php
new file mode 100644
index 0000000..8e2afbf
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ta_LK.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - J.Yogaraj 94-777-315206 yogaraj.ubuntu@gmail.com
+ */
+return array_replace_recursive(require __DIR__.'/ta.php', [
+    'formats' => [
+        'L' => 'D/M/YY',
+    ],
+    'months' => ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', 'ஆகஸ்ட்', 'செப்டம்பர்', 'அக்டோபர்', 'நவம்பர்', 'டிசம்பர்'],
+    'months_short' => ['ஜன', 'பிப்', 'மார்', 'ஏப்', 'மே', 'ஜூன்', 'ஜூலை', 'ஆக', 'செப்', 'அக்', 'நவ', 'டிச'],
+    'weekdays' => ['ஞாயிறு', 'திங்கள்', 'செவ்வாய்', 'புதன்', 'வியாழன்', 'வெள்ளி', 'சனி'],
+    'weekdays_short' => ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'],
+    'weekdays_min' => ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['காலை', 'மாலை'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ta_MY.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ta_MY.php
new file mode 100644
index 0000000..291d6c8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ta_MY.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ta.php', [
+    'formats' => [
+        'LT' => 'a h:mm',
+        'LTS' => 'a h:mm:ss',
+        'L' => 'D/M/yy',
+        'LL' => 'D MMM, YYYY',
+        'LLL' => 'D MMMM, YYYY, a h:mm',
+        'LLLL' => 'dddd, D MMMM, YYYY, a h:mm',
+    ],
+    'months' => ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', 'ஆகஸ்ட்', 'செப்டம்பர்', 'அக்டோபர்', 'நவம்பர்', 'டிசம்பர்'],
+    'months_short' => ['ஜன.', 'பிப்.', 'மார்.', 'ஏப்.', 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', 'செப்.', 'அக்.', 'நவ.', 'டிச.'],
+    'weekdays' => ['ஞாயிறு', 'திங்கள்', 'செவ்வாய்', 'புதன்', 'வியாழன்', 'வெள்ளி', 'சனி'],
+    'weekdays_short' => ['ஞாயி.', 'திங்.', 'செவ்.', 'புத.', 'வியா.', 'வெள்.', 'சனி'],
+    'weekdays_min' => ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'],
+    'first_day_of_week' => 1,
+    'meridiem' => ['மு.ப', 'பி.ப'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ta_SG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ta_SG.php
new file mode 100644
index 0000000..fe1cc06
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ta_SG.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ta.php', [
+    'formats' => [
+        'LT' => 'a h:mm',
+        'LTS' => 'a h:mm:ss',
+        'L' => 'D/M/yy',
+        'LL' => 'D MMM, YYYY',
+        'LLL' => 'D MMMM, YYYY, a h:mm',
+        'LLLL' => 'dddd, D MMMM, YYYY, a h:mm',
+    ],
+    'months' => ['ஜனவரி', 'பிப்ரவரி', 'மார்ச்', 'ஏப்ரல்', 'மே', 'ஜூன்', 'ஜூலை', 'ஆகஸ்ட்', 'செப்டம்பர்', 'அக்டோபர்', 'நவம்பர்', 'டிசம்பர்'],
+    'months_short' => ['ஜன.', 'பிப்.', 'மார்.', 'ஏப்.', 'மே', 'ஜூன்', 'ஜூலை', 'ஆக.', 'செப்.', 'அக்.', 'நவ.', 'டிச.'],
+    'weekdays' => ['ஞாயிறு', 'திங்கள்', 'செவ்வாய்', 'புதன்', 'வியாழன்', 'வெள்ளி', 'சனி'],
+    'weekdays_short' => ['ஞாயி.', 'திங்.', 'செவ்.', 'புத.', 'வியா.', 'வெள்.', 'சனி'],
+    'weekdays_min' => ['ஞா', 'தி', 'செ', 'பு', 'வி', 'வெ', 'ச'],
+    'meridiem' => ['மு.ப', 'பி.ப'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tcy.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tcy.php
new file mode 100644
index 0000000..2eb9905
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tcy.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/tcy_IN.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tcy_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tcy_IN.php
new file mode 100644
index 0000000..2ff20e0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tcy_IN.php
@@ -0,0 +1,39 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - IndLinux.org, Samsung Electronics Co., Ltd.    alexey.merzlyakov@samsung.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'D/M/YY',
+    ],
+    'months' => ['ಜನವರಿ', 'ಫೆಬ್ರುವರಿ', 'ಮಾರ್ಚ್', 'ಏಪ್ರಿಲ್‌‌', 'ಮೇ', 'ಜೂನ್', 'ಜುಲೈ', 'ಆಗಸ್ಟ್', 'ಸೆಪ್ಟೆಂಬರ್‌', 'ಅಕ್ಟೋಬರ್', 'ನವೆಂಬರ್', 'ಡಿಸೆಂಬರ್'],
+    'months_short' => ['ಜ', 'ಫೆ', 'ಮಾ', 'ಏ', 'ಮೇ', 'ಜೂ', 'ಜು', 'ಆ', 'ಸೆ', 'ಅ', 'ನ', 'ಡಿ'],
+    'weekdays' => ['ಐಥಾರ', 'ಸೋಮಾರ', 'ಅಂಗರೆ', 'ಬುಧಾರ', 'ಗುರುವಾರ', 'ಶುಕ್ರರ', 'ಶನಿವಾರ'],
+    'weekdays_short' => ['ಐ', 'ಸೋ', 'ಅಂ', 'ಬು', 'ಗು', 'ಶು', 'ಶ'],
+    'weekdays_min' => ['ಐ', 'ಸೋ', 'ಅಂ', 'ಬು', 'ಗು', 'ಶು', 'ಶ'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['ಕಾಂಡೆ', 'ಬಯ್ಯ'],
+
+    'year' => ':count ನೀರ್', // less reliable
+    'y' => ':count ನೀರ್', // less reliable
+    'a_year' => ':count ನೀರ್', // less reliable
+
+    'month' => ':count ಮೀನ್', // less reliable
+    'm' => ':count ಮೀನ್', // less reliable
+    'a_month' => ':count ಮೀನ್', // less reliable
+
+    'day' => ':count ಸುಗ್ಗಿ', // less reliable
+    'd' => ':count ಸುಗ್ಗಿ', // less reliable
+    'a_day' => ':count ಸುಗ್ಗಿ', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/te.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/te.php
new file mode 100644
index 0000000..ac38218
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/te.php
@@ -0,0 +1,89 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Kunal Marwaha
+ * - Josh Soref
+ * - François B
+ * - kc
+ */
+return [
+    'year' => ':count సంవత్సరం|:count సంవత్సరాలు',
+    'a_year' => 'ఒక సంవత్సరం|:count సంవత్సరాలు',
+    'y' => ':count సం.',
+    'month' => ':count నెల|:count నెలలు',
+    'a_month' => 'ఒక నెల|:count నెలలు',
+    'm' => ':count నెల|:count నెల.',
+    'week' => ':count వారం|:count వారాలు',
+    'a_week' => 'ఒక వారం|:count వారాలు',
+    'w' => ':count వార.|:count వారా.',
+    'day' => ':count రోజు|:count రోజులు',
+    'a_day' => 'ఒక రోజు|:count రోజులు',
+    'd' => ':count రోజు|:count రోజు.',
+    'hour' => ':count గంట|:count గంటలు',
+    'a_hour' => 'ఒక గంట|:count గంటలు',
+    'h' => ':count గం.',
+    'minute' => ':count నిమిషం|:count నిమిషాలు',
+    'a_minute' => 'ఒక నిమిషం|:count నిమిషాలు',
+    'min' => ':count నిమి.',
+    'second' => ':count సెకను|:count సెకన్లు',
+    'a_second' => 'కొన్ని క్షణాలు|:count సెకన్లు',
+    's' => ':count సెక.',
+    'ago' => ':time క్రితం',
+    'from_now' => ':time లో',
+    'diff_now' => 'ప్రస్తుతం',
+    'diff_today' => 'నేడు',
+    'diff_yesterday' => 'నిన్న',
+    'diff_tomorrow' => 'రేపు',
+    'formats' => [
+        'LT' => 'A h:mm',
+        'LTS' => 'A h:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY, A h:mm',
+        'LLLL' => 'dddd, D MMMM YYYY, A h:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[నేడు] LT',
+        'nextDay' => '[రేపు] LT',
+        'nextWeek' => 'dddd, LT',
+        'lastDay' => '[నిన్న] LT',
+        'lastWeek' => '[గత] dddd, LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':numberవ',
+    'meridiem' => function ($hour) {
+        if ($hour < 4) {
+            return 'రాత్రి';
+        }
+        if ($hour < 10) {
+            return 'ఉదయం';
+        }
+        if ($hour < 17) {
+            return 'మధ్యాహ్నం';
+        }
+        if ($hour < 20) {
+            return 'సాయంత్రం';
+        }
+
+        return ' రాత్రి';
+    },
+    'months' => ['జనవరి', 'ఫిబ్రవరి', 'మార్చి', 'ఏప్రిల్', 'మే', 'జూన్', 'జూలై', 'ఆగస్టు', 'సెప్టెంబర్', 'అక్టోబర్', 'నవంబర్', 'డిసెంబర్'],
+    'months_short' => ['జన.', 'ఫిబ్ర.', 'మార్చి', 'ఏప్రి.', 'మే', 'జూన్', 'జూలై', 'ఆగ.', 'సెప్.', 'అక్టో.', 'నవ.', 'డిసె.'],
+    'weekdays' => ['ఆదివారం', 'సోమవారం', 'మంగళవారం', 'బుధవారం', 'గురువారం', 'శుక్రవారం', 'శనివారం'],
+    'weekdays_short' => ['ఆది', 'సోమ', 'మంగళ', 'బుధ', 'గురు', 'శుక్ర', 'శని'],
+    'weekdays_min' => ['ఆ', 'సో', 'మం', 'బు', 'గు', 'శు', 'శ'],
+    'list' => ', ',
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+    'weekend' => [0, 0],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/te_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/te_IN.php
new file mode 100644
index 0000000..6f81c40
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/te_IN.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/te.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/teo.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/teo.php
new file mode 100644
index 0000000..950235e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/teo.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ta.php', [
+    'meridiem' => ['Taparachu', 'Ebongi'],
+    'weekdays' => ['Nakaejuma', 'Nakaebarasa', 'Nakaare', 'Nakauni', 'Nakaung’on', 'Nakakany', 'Nakasabiti'],
+    'weekdays_short' => ['Jum', 'Bar', 'Aar', 'Uni', 'Ung', 'Kan', 'Sab'],
+    'weekdays_min' => ['Jum', 'Bar', 'Aar', 'Uni', 'Ung', 'Kan', 'Sab'],
+    'months' => ['Orara', 'Omuk', 'Okwamg’', 'Odung’el', 'Omaruk', 'Omodok’king’ol', 'Ojola', 'Opedel', 'Osokosokoma', 'Otibar', 'Olabor', 'Opoo'],
+    'months_short' => ['Rar', 'Muk', 'Kwa', 'Dun', 'Mar', 'Mod', 'Jol', 'Ped', 'Sok', 'Tib', 'Lab', 'Poo'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/teo_KE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/teo_KE.php
new file mode 100644
index 0000000..024d272
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/teo_KE.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/teo.php', [
+    'first_day_of_week' => 0,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tet.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tet.php
new file mode 100644
index 0000000..d0544d4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tet.php
@@ -0,0 +1,64 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Joshua Brooks
+ * - François B
+ */
+return [
+    'year' => 'tinan :count',
+    'a_year' => '{1}tinan ida|tinan :count',
+    'month' => 'fulan :count',
+    'a_month' => '{1}fulan ida|fulan :count',
+    'week' => 'semana :count',
+    'a_week' => '{1}semana ida|semana :count',
+    'day' => 'loron :count',
+    'a_day' => '{1}loron ida|loron :count',
+    'hour' => 'oras :count',
+    'a_hour' => '{1}oras ida|oras :count',
+    'minute' => 'minutu :count',
+    'a_minute' => '{1}minutu ida|minutu :count',
+    'second' => 'segundu :count',
+    'a_second' => '{1}segundu balun|segundu :count',
+    'ago' => ':time liuba',
+    'from_now' => 'iha :time',
+    'diff_yesterday' => 'Horiseik',
+    'diff_yesterday_regexp' => 'Horiseik(?:\\s+iha)?',
+    'diff_today' => 'Ohin',
+    'diff_today_regexp' => 'Ohin(?:\\s+iha)?',
+    'diff_tomorrow' => 'Aban',
+    'diff_tomorrow_regexp' => 'Aban(?:\\s+iha)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Ohin iha] LT',
+        'nextDay' => '[Aban iha] LT',
+        'nextWeek' => 'dddd [iha] LT',
+        'lastDay' => '[Horiseik iha] LT',
+        'lastWeek' => 'dddd [semana kotuk] [iha] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':numberº',
+    'months' => ['Janeiru', 'Fevereiru', 'Marsu', 'Abril', 'Maiu', 'Juñu', 'Jullu', 'Agustu', 'Setembru', 'Outubru', 'Novembru', 'Dezembru'],
+    'months_short' => ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],
+    'weekdays' => ['Domingu', 'Segunda', 'Tersa', 'Kuarta', 'Kinta', 'Sesta', 'Sabadu'],
+    'weekdays_short' => ['Dom', 'Seg', 'Ters', 'Kua', 'Kint', 'Sest', 'Sab'],
+    'weekdays_min' => ['Do', 'Seg', 'Te', 'Ku', 'Ki', 'Ses', 'Sa'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tg.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tg.php
new file mode 100644
index 0000000..b7df893
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tg.php
@@ -0,0 +1,104 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Orif N. Jr
+ */
+return [
+    'year' => '{1}як сол|:count сол',
+    'month' => '{1}як моҳ|:count моҳ',
+    'week' => '{1}як ҳафта|:count ҳафта',
+    'day' => '{1}як рӯз|:count рӯз',
+    'hour' => '{1}як соат|:count соат',
+    'minute' => '{1}як дақиқа|:count дақиқа',
+    'second' => '{1}якчанд сония|:count сония',
+    'ago' => ':time пеш',
+    'from_now' => 'баъди :time',
+    'diff_today' => 'Имрӯз',
+    'diff_yesterday' => 'Дирӯз',
+    'diff_yesterday_regexp' => 'Дирӯз(?:\\s+соати)?',
+    'diff_tomorrow' => 'Пагоҳ',
+    'diff_tomorrow_regexp' => 'Пагоҳ(?:\\s+соати)?',
+    'diff_today_regexp' => 'Имрӯз(?:\\s+соати)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Имрӯз соати] LT',
+        'nextDay' => '[Пагоҳ соати] LT',
+        'nextWeek' => 'dddd[и] [ҳафтаи оянда соати] LT',
+        'lastDay' => '[Дирӯз соати] LT',
+        'lastWeek' => 'dddd[и] [ҳафтаи гузашта соати] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number) {
+        if ($number === 0) { // special case for zero
+            return "$number-ıncı";
+        }
+
+        static $suffixes = [
+            0 => '-ум',
+            1 => '-ум',
+            2 => '-юм',
+            3 => '-юм',
+            4 => '-ум',
+            5 => '-ум',
+            6 => '-ум',
+            7 => '-ум',
+            8 => '-ум',
+            9 => '-ум',
+            10 => '-ум',
+            12 => '-ум',
+            13 => '-ум',
+            20 => '-ум',
+            30 => '-юм',
+            40 => '-ум',
+            50 => '-ум',
+            60 => '-ум',
+            70 => '-ум',
+            80 => '-ум',
+            90 => '-ум',
+            100 => '-ум',
+        ];
+
+        return $number.($suffixes[$number] ?? $suffixes[$number % 10] ?? $suffixes[$number >= 100 ? 100 : -1] ?? '');
+    },
+    'meridiem' => function ($hour) {
+        if ($hour < 4) {
+            return 'шаб';
+        }
+        if ($hour < 11) {
+            return 'субҳ';
+        }
+        if ($hour < 16) {
+            return 'рӯз';
+        }
+        if ($hour < 19) {
+            return 'бегоҳ';
+        }
+
+        return 'шаб';
+    },
+    'months' => ['январ', 'феврал', 'март', 'апрел', 'май', 'июн', 'июл', 'август', 'сентябр', 'октябр', 'ноябр', 'декабр'],
+    'months_short' => ['янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'],
+    'weekdays' => ['якшанбе', 'душанбе', 'сешанбе', 'чоршанбе', 'панҷшанбе', 'ҷумъа', 'шанбе'],
+    'weekdays_short' => ['яшб', 'дшб', 'сшб', 'чшб', 'пшб', 'ҷум', 'шнб'],
+    'weekdays_min' => ['яш', 'дш', 'сш', 'чш', 'пш', 'ҷм', 'шб'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' ва '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tg_TJ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tg_TJ.php
new file mode 100644
index 0000000..c6591e3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tg_TJ.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/tg.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/th.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/th.php
new file mode 100644
index 0000000..6397f6e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/th.php
@@ -0,0 +1,73 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Nate Whittaker
+ * - John MacAslan
+ * - Chanintorn Asavavichairoj
+ * - JD Isaacks
+ * - ROKAISAKKON
+ * - RO'KAISAKKON
+ * - Andreas Möller
+ * - nithisa
+ */
+return [
+    'year' => ':count ปี',
+    'y' => ':count ปี',
+    'month' => ':count เดือน',
+    'm' => ':count เดือน',
+    'week' => ':count สัปดาห์',
+    'w' => ':count สัปดาห์',
+    'day' => ':count วัน',
+    'd' => ':count วัน',
+    'hour' => ':count ชั่วโมง',
+    'h' => ':count ชั่วโมง',
+    'minute' => ':count นาที',
+    'min' => ':count นาที',
+    'second' => ':count วินาที',
+    'a_second' => '{1}ไม่กี่วินาที|]1,Inf[:count วินาที',
+    's' => ':count วินาที',
+    'ago' => ':timeที่แล้ว',
+    'from_now' => 'อีก :time',
+    'after' => ':timeหลังจากนี้',
+    'before' => ':timeก่อน',
+    'diff_now' => 'ขณะนี้',
+    'diff_today' => 'วันนี้',
+    'diff_today_regexp' => 'วันนี้(?:\\s+เวลา)?',
+    'diff_yesterday' => 'เมื่อวาน',
+    'diff_yesterday_regexp' => 'เมื่อวานนี้(?:\\s+เวลา)?',
+    'diff_tomorrow' => 'พรุ่งนี้',
+    'diff_tomorrow_regexp' => 'พรุ่งนี้(?:\\s+เวลา)?',
+    'formats' => [
+        'LT' => 'H:mm',
+        'LTS' => 'H:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY เวลา H:mm',
+        'LLLL' => 'วันddddที่ D MMMM YYYY เวลา H:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[วันนี้ เวลา] LT',
+        'nextDay' => '[พรุ่งนี้ เวลา] LT',
+        'nextWeek' => 'dddd[หน้า เวลา] LT',
+        'lastDay' => '[เมื่อวานนี้ เวลา] LT',
+        'lastWeek' => '[วัน]dddd[ที่แล้ว เวลา] LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => ['ก่อนเที่ยง', 'หลังเที่ยง'],
+    'months' => ['มกราคม', 'กุมภาพันธ์', 'มีนาคม', 'เมษายน', 'พฤษภาคม', 'มิถุนายน', 'กรกฎาคม', 'สิงหาคม', 'กันยายน', 'ตุลาคม', 'พฤศจิกายน', 'ธันวาคม'],
+    'months_short' => ['ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.', 'พ.ค.', 'มิ.ย.', 'ก.ค.', 'ส.ค.', 'ก.ย.', 'ต.ค.', 'พ.ย.', 'ธ.ค.'],
+    'weekdays' => ['อาทิตย์', 'จันทร์', 'อังคาร', 'พุธ', 'พฤหัสบดี', 'ศุกร์', 'เสาร์'],
+    'weekdays_short' => ['อาทิตย์', 'จันทร์', 'อังคาร', 'พุธ', 'พฤหัส', 'ศุกร์', 'เสาร์'],
+    'weekdays_min' => ['อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', 'ศ.', 'ส.'],
+    'list' => [', ', ' และ '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/th_TH.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/th_TH.php
new file mode 100644
index 0000000..f11dc1b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/th_TH.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/th.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/the.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/the.php
new file mode 100644
index 0000000..85f8333
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/the.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/the_NP.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/the_NP.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/the_NP.php
new file mode 100644
index 0000000..34da162
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/the_NP.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Chitwanix OS Development    info@chitwanix.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'dddd DD MMM YYYY',
+    ],
+    'months' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'],
+    'months_short' => ['जनवरी', 'फ़रवरी', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जुलाई', 'अगस्त', 'सितम्बर', 'अक्टूबर', 'नवम्बर', 'दिसम्बर'],
+    'weekdays' => ['आइतबार', 'सोमबार', 'मंगलबार', 'बुधबार', 'बिहिबार', 'शुक्रबार', 'शनिबार'],
+    'weekdays_short' => ['आइत', 'सोम', 'मंगल', 'बुध', 'बिहि', 'शुक्र', 'शनि'],
+    'weekdays_min' => ['आइत', 'सोम', 'मंगल', 'बुध', 'बिहि', 'शुक्र', 'शनि'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['पूर्वाह्न', 'अपराह्न'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ti.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ti.php
new file mode 100644
index 0000000..ffd3236
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ti.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/ti_ER.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ti_ER.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ti_ER.php
new file mode 100644
index 0000000..310c51c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ti_ER.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ge'ez Frontier Foundation    locales@geez.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['ጥሪ', 'ለካቲት', 'መጋቢት', 'ሚያዝያ', 'ግንቦት', 'ሰነ', 'ሓምለ', 'ነሓሰ', 'መስከረም', 'ጥቅምቲ', 'ሕዳር', 'ታሕሳስ'],
+    'months_short' => ['ጥሪ ', 'ለካቲ', 'መጋቢ', 'ሚያዝ', 'ግንቦ', 'ሰነ ', 'ሓምለ', 'ነሓሰ', 'መስከ', 'ጥቅም', 'ሕዳር', 'ታሕሳ'],
+    'weekdays' => ['ሰንበት', 'ሰኑይ', 'ሰሉስ', 'ረቡዕ', 'ሓሙስ', 'ዓርቢ', 'ቀዳም'],
+    'weekdays_short' => ['ሰንበ', 'ሰኑይ', 'ሰሉስ', 'ረቡዕ', 'ሓሙስ', 'ዓርቢ', 'ቀዳም'],
+    'weekdays_min' => ['ሰንበ', 'ሰኑይ', 'ሰሉስ', 'ረቡዕ', 'ሓሙስ', 'ዓርቢ', 'ቀዳም'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['ንጉሆ ሰዓተ', 'ድሕር ሰዓት'],
+
+    'year' => ':count ዓመት',
+    'y' => ':count ዓመት',
+    'a_year' => ':count ዓመት',
+
+    'month' => 'ወርሒ :count',
+    'm' => 'ወርሒ :count',
+    'a_month' => 'ወርሒ :count',
+
+    'week' => ':count ሰሙን',
+    'w' => ':count ሰሙን',
+    'a_week' => ':count ሰሙን',
+
+    'day' => ':count መዓልቲ',
+    'd' => ':count መዓልቲ',
+    'a_day' => ':count መዓልቲ',
+
+    'hour' => ':count ሰዓት',
+    'h' => ':count ሰዓት',
+    'a_hour' => ':count ሰዓት',
+
+    'minute' => ':count ደቒቕ',
+    'min' => ':count ደቒቕ',
+    'a_minute' => ':count ደቒቕ',
+
+    'second' => ':count ሰከንድ',
+    's' => ':count ሰከንድ',
+    'a_second' => ':count ሰከንድ',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ti_ET.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ti_ET.php
new file mode 100644
index 0000000..024217f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ti_ET.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ge'ez Frontier Foundation    locales@geez.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', 'ኤፕረል', 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', 'ሴፕቴምበር', 'ኦክተውበር', 'ኖቬምበር', 'ዲሴምበር'],
+    'months_short' => ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕረ', 'ሜይ ', 'ጁን ', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', 'ኖቬም', 'ዲሴም'],
+    'weekdays' => ['ሰንበት', 'ሰኑይ', 'ሰሉስ', 'ረቡዕ', 'ሓሙስ', 'ዓርቢ', 'ቀዳም'],
+    'weekdays_short' => ['ሰንበ', 'ሰኑይ', 'ሰሉስ', 'ረቡዕ', 'ሓሙስ', 'ዓርቢ', 'ቀዳም'],
+    'weekdays_min' => ['ሰንበ', 'ሰኑይ', 'ሰሉስ', 'ረቡዕ', 'ሓሙስ', 'ዓርቢ', 'ቀዳም'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['ንጉሆ ሰዓተ', 'ድሕር ሰዓት'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tig.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tig.php
new file mode 100644
index 0000000..186fe71
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tig.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/tig_ER.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tig_ER.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tig_ER.php
new file mode 100644
index 0000000..46887b0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tig_ER.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ge'ez Frontier Foundation    locales@geez.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['ጥሪ', 'ለካቲት', 'መጋቢት', 'ሚያዝያ', 'ግንቦት', 'ሰነ', 'ሓምለ', 'ነሓሰ', 'መስከረም', 'ጥቅምቲ', 'ሕዳር', 'ታሕሳስ'],
+    'months_short' => ['ጥሪ ', 'ለካቲ', 'መጋቢ', 'ሚያዝ', 'ግንቦ', 'ሰነ ', 'ሓምለ', 'ነሓሰ', 'መስከ', 'ጥቅም', 'ሕዳር', 'ታሕሳ'],
+    'weekdays' => ['ሰንበት ዓባይ', 'ሰኖ', 'ታላሸኖ', 'ኣረርባዓ', 'ከሚሽ', 'ጅምዓት', 'ሰንበት ንኢሽ'],
+    'weekdays_short' => ['ሰ//ዓ', 'ሰኖ ', 'ታላሸ', 'ኣረር', 'ከሚሽ', 'ጅምዓ', 'ሰ//ን'],
+    'weekdays_min' => ['ሰ//ዓ', 'ሰኖ ', 'ታላሸ', 'ኣረር', 'ከሚሽ', 'ጅምዓ', 'ሰ//ን'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['ቀደም ሰር ምዕል', 'ሓቆ ሰር ምዕል'],
+
+    'year' => ':count ማይ', // less reliable
+    'y' => ':count ማይ', // less reliable
+    'a_year' => ':count ማይ', // less reliable
+
+    'month' => ':count ሸምሽ', // less reliable
+    'm' => ':count ሸምሽ', // less reliable
+    'a_month' => ':count ሸምሽ', // less reliable
+
+    'week' => ':count ሰቡዕ', // less reliable
+    'w' => ':count ሰቡዕ', // less reliable
+    'a_week' => ':count ሰቡዕ', // less reliable
+
+    'day' => ':count ዎሮ', // less reliable
+    'd' => ':count ዎሮ', // less reliable
+    'a_day' => ':count ዎሮ', // less reliable
+
+    'hour' => ':count ሰዓት', // less reliable
+    'h' => ':count ሰዓት', // less reliable
+    'a_hour' => ':count ሰዓት', // less reliable
+
+    'minute' => ':count ካልኣይት', // less reliable
+    'min' => ':count ካልኣይት', // less reliable
+    'a_minute' => ':count ካልኣይት', // less reliable
+
+    'second' => ':count ካልኣይ',
+    's' => ':count ካልኣይ',
+    'a_second' => ':count ካልኣይ',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tk.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tk.php
new file mode 100644
index 0000000..d8f7d19
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tk.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/tk_TM.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tk_TM.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tk_TM.php
new file mode 100644
index 0000000..f949a43
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tk_TM.php
@@ -0,0 +1,77 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Authors:
+ * - Ghorban M. Tavakoly Pablo Saratxaga & Ghorban M. Tavakoly pablo@walon.org & gmt314@yahoo.com
+ * - SuperManPHP
+ * - Maksat Meredow (isadma)
+ */
+$transformDiff = function ($input) {
+    return strtr($input, [
+        'sekunt' => 'sekunt',
+        'hepde' => 'hepde',
+    ]);
+};
+
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD.MM.YYYY',
+    ],
+    'months' => ['Ýanwar', 'Fewral', 'Mart', 'Aprel', 'Maý', 'Iýun', 'Iýul', 'Awgust', 'Sentýabr', 'Oktýabr', 'Noýabr', 'Dekabr'],
+    'months_short' => ['Ýan', 'Few', 'Mar', 'Apr', 'Maý', 'Iýn', 'Iýl', 'Awg', 'Sen', 'Okt', 'Noý', 'Dek'],
+    'weekdays' => ['Duşenbe', 'Sişenbe', 'Çarşenbe', 'Penşenbe', 'Anna', 'Şenbe', 'Ýekşenbe'],
+    'weekdays_short' => ['Duş', 'Siş', 'Çar', 'Pen', 'Ann', 'Şen', 'Ýek'],
+    'weekdays_min' => ['Du', 'Si', 'Ça', 'Pe', 'An', 'Şe', 'Ýe'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+
+    'year' => ':count ýyl',
+    'y' => ':count ýyl',
+    'a_year' => ':count ýyl',
+
+    'month' => ':count aý',
+    'm' => ':count aý',
+    'a_month' => ':count aý',
+
+    'week' => ':count hepde',
+    'w' => ':count hepde',
+    'a_week' => ':count hepde',
+
+    'day' => ':count gün',
+    'd' => ':count gün',
+    'a_day' => ':count gün',
+
+    'hour' => ':count sagat',
+    'h' => ':count sagat',
+    'a_hour' => ':count sagat',
+
+    'minute' => ':count minut',
+    'min' => ':count minut',
+    'a_minute' => ':count minut',
+
+    'second' => ':count sekunt',
+    's' => ':count sekunt',
+    'a_second' => ':count sekunt',
+
+    'ago' => function ($time) use ($transformDiff) {
+        return $transformDiff($time).' ozal';
+    },
+    'from_now' => function ($time) use ($transformDiff) {
+        return $transformDiff($time).' soňra';
+    },
+    'after' => function ($time) use ($transformDiff) {
+        return $transformDiff($time).' soň';
+    },
+    'before' => function ($time) use ($transformDiff) {
+        return $transformDiff($time).' öň';
+    },
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tl.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tl.php
new file mode 100644
index 0000000..410a266
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tl.php
@@ -0,0 +1,61 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+return [
+    'year' => ':count taon',
+    'a_year' => '{1}isang taon|:count taon',
+    'month' => ':count buwan',
+    'a_month' => '{1}isang buwan|:count buwan',
+    'week' => ':count linggo',
+    'a_week' => '{1}isang linggo|:count linggo',
+    'day' => ':count araw',
+    'a_day' => '{1}isang araw|:count araw',
+    'hour' => ':count oras',
+    'a_hour' => '{1}isang oras|:count oras',
+    'minute' => ':count minuto',
+    'a_minute' => '{1}isang minuto|:count minuto',
+    'min' => ':count min.',
+    'second' => ':count segundo',
+    'a_second' => '{1}ilang segundo|:count segundo',
+    's' => ':count seg.',
+    'ago' => ':time ang nakalipas',
+    'from_now' => 'sa loob ng :time',
+    'diff_now' => 'ngayon',
+    'diff_today' => 'ngayong',
+    'diff_today_regexp' => 'ngayong(?:\\s+araw)?',
+    'diff_yesterday' => 'kahapon',
+    'diff_tomorrow' => 'bukas',
+    'diff_tomorrow_regexp' => 'Bukas(?:\\s+ng)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'MM/D/YYYY',
+        'LL' => 'MMMM D, YYYY',
+        'LLL' => 'MMMM D, YYYY HH:mm',
+        'LLLL' => 'dddd, MMMM DD, YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => 'LT [ngayong araw]',
+        'nextDay' => '[Bukas ng] LT',
+        'nextWeek' => 'LT [sa susunod na] dddd',
+        'lastDay' => 'LT [kahapon]',
+        'lastWeek' => 'LT [noong nakaraang] dddd',
+        'sameElse' => 'L',
+    ],
+    'months' => ['Enero', 'Pebrero', 'Marso', 'Abril', 'Mayo', 'Hunyo', 'Hulyo', 'Agosto', 'Setyembre', 'Oktubre', 'Nobyembre', 'Disyembre'],
+    'months_short' => ['Ene', 'Peb', 'Mar', 'Abr', 'May', 'Hun', 'Hul', 'Ago', 'Set', 'Okt', 'Nob', 'Dis'],
+    'weekdays' => ['Linggo', 'Lunes', 'Martes', 'Miyerkules', 'Huwebes', 'Biyernes', 'Sabado'],
+    'weekdays_short' => ['Lin', 'Lun', 'Mar', 'Miy', 'Huw', 'Biy', 'Sab'],
+    'weekdays_min' => ['Li', 'Lu', 'Ma', 'Mi', 'Hu', 'Bi', 'Sab'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' at '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tl_PH.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tl_PH.php
new file mode 100644
index 0000000..95f508c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tl_PH.php
@@ -0,0 +1,18 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - François B
+ * - Ian De La Cruz
+ * - JD Isaacks
+ */
+return require __DIR__.'/tl.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tlh.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tlh.php
new file mode 100644
index 0000000..fbf9e6f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tlh.php
@@ -0,0 +1,72 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - François B
+ * - Serhan Apaydın
+ * - Dominika
+ */
+return [
+    'year' => '{1}wa’ DIS|:count DIS',
+    'month' => '{1}wa’ jar|:count jar',
+    'week' => '{1}wa’ hogh|:count hogh',
+    'day' => '{1}wa’ jaj|:count jaj',
+    'hour' => '{1}wa’ rep|:count rep',
+    'minute' => '{1}wa’ tup|:count tup',
+    'second' => '{1}puS lup|:count lup',
+    'ago' => function ($time) {
+        $output = strtr($time, [
+            'jaj' => 'Hu’',
+            'jar' => 'wen',
+            'DIS' => 'ben',
+        ]);
+
+        return $output === $time ? "$time ret" : $output;
+    },
+    'from_now' => function ($time) {
+        $output = strtr($time, [
+            'jaj' => 'leS',
+            'jar' => 'waQ',
+            'DIS' => 'nem',
+        ]);
+
+        return $output === $time ? "$time pIq" : $output;
+    },
+    'diff_yesterday' => 'wa’Hu’',
+    'diff_today' => 'DaHjaj',
+    'diff_tomorrow' => 'wa’leS',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[DaHjaj] LT',
+        'nextDay' => '[wa’leS] LT',
+        'nextWeek' => 'LLL',
+        'lastDay' => '[wa’Hu’] LT',
+        'lastWeek' => 'LLL',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => ':number.',
+    'months' => ['tera’ jar wa’', 'tera’ jar cha’', 'tera’ jar wej', 'tera’ jar loS', 'tera’ jar vagh', 'tera’ jar jav', 'tera’ jar Soch', 'tera’ jar chorgh', 'tera’ jar Hut', 'tera’ jar wa’maH', 'tera’ jar wa’maH wa’', 'tera’ jar wa’maH cha’'],
+    'months_short' => ['jar wa’', 'jar cha’', 'jar wej', 'jar loS', 'jar vagh', 'jar jav', 'jar Soch', 'jar chorgh', 'jar Hut', 'jar wa’maH', 'jar wa’maH wa’', 'jar wa’maH cha’'],
+    'weekdays' => ['lojmItjaj', 'DaSjaj', 'povjaj', 'ghItlhjaj', 'loghjaj', 'buqjaj', 'ghInjaj'],
+    'weekdays_short' => ['lojmItjaj', 'DaSjaj', 'povjaj', 'ghItlhjaj', 'loghjaj', 'buqjaj', 'ghInjaj'],
+    'weekdays_min' => ['lojmItjaj', 'DaSjaj', 'povjaj', 'ghItlhjaj', 'loghjaj', 'buqjaj', 'ghInjaj'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' ’ej '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tn.php
new file mode 100644
index 0000000..f29bdf6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tn.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/tn_ZA.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tn_ZA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tn_ZA.php
new file mode 100644
index 0000000..aada7db
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tn_ZA.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['Ferikgong', 'Tlhakole', 'Mopitlwe', 'Moranang', 'Motsheganong', 'Seetebosigo', 'Phukwi', 'Phatwe', 'Lwetse', 'Diphalane', 'Ngwanatsele', 'Sedimonthole'],
+    'months_short' => ['Fer', 'Tlh', 'Mop', 'Mor', 'Mot', 'See', 'Phu', 'Pha', 'Lwe', 'Dip', 'Ngw', 'Sed'],
+    'weekdays' => ['laTshipi', 'Mosupologo', 'Labobedi', 'Laboraro', 'Labone', 'Labotlhano', 'Lamatlhatso'],
+    'weekdays_short' => ['Tsh', 'Mos', 'Bed', 'Rar', 'Ne', 'Tlh', 'Mat'],
+    'weekdays_min' => ['Tsh', 'Mos', 'Bed', 'Rar', 'Ne', 'Tlh', 'Mat'],
+    'day_of_first_week_of_year' => 1,
+
+    'year' => 'dingwaga di le :count',
+    'y' => 'dingwaga di le :count',
+    'a_year' => 'dingwaga di le :count',
+
+    'month' => 'dikgwedi di le :count',
+    'm' => 'dikgwedi di le :count',
+    'a_month' => 'dikgwedi di le :count',
+
+    'week' => 'dibeke di le :count',
+    'w' => 'dibeke di le :count',
+    'a_week' => 'dibeke di le :count',
+
+    'day' => 'malatsi :count',
+    'd' => 'malatsi :count',
+    'a_day' => 'malatsi :count',
+
+    'hour' => 'diura di le :count',
+    'h' => 'diura di le :count',
+    'a_hour' => 'diura di le :count',
+
+    'minute' => 'metsotso e le :count',
+    'min' => 'metsotso e le :count',
+    'a_minute' => 'metsotso e le :count',
+
+    'second' => 'metsotswana e le :count',
+    's' => 'metsotswana e le :count',
+    'a_second' => 'metsotswana e le :count',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/to.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/to.php
new file mode 100644
index 0000000..20581bb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/to.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/to_TO.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/to_TO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/to_TO.php
new file mode 100644
index 0000000..335c69a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/to_TO.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - International Components for Unicode    akhilesh.k@samsung.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'dddd DD MMM YYYY',
+    ],
+    'months' => ['Sānuali', 'Fēpueli', 'Maʻasi', 'ʻEpeleli', 'Mē', 'Sune', 'Siulai', 'ʻAokosi', 'Sepitema', 'ʻOkatopa', 'Nōvema', 'Tīsema'],
+    'months_short' => ['Sān', 'Fēp', 'Maʻa', 'ʻEpe', 'Mē', 'Sun', 'Siu', 'ʻAok', 'Sep', 'ʻOka', 'Nōv', 'Tīs'],
+    'weekdays' => ['Sāpate', 'Mōnite', 'Tūsite', 'Pulelulu', 'Tuʻapulelulu', 'Falaite', 'Tokonaki'],
+    'weekdays_short' => ['Sāp', 'Mōn', 'Tūs', 'Pul', 'Tuʻa', 'Fal', 'Tok'],
+    'weekdays_min' => ['Sāp', 'Mōn', 'Tūs', 'Pul', 'Tuʻa', 'Fal', 'Tok'],
+    'meridiem' => ['hengihengi', 'efiafi'],
+
+    'year' => ':count fitu', // less reliable
+    'y' => ':count fitu', // less reliable
+    'a_year' => ':count fitu', // less reliable
+
+    'month' => ':count mahina', // less reliable
+    'm' => ':count mahina', // less reliable
+    'a_month' => ':count mahina', // less reliable
+
+    'week' => ':count Sapate', // less reliable
+    'w' => ':count Sapate', // less reliable
+    'a_week' => ':count Sapate', // less reliable
+
+    'day' => ':count ʻaho', // less reliable
+    'd' => ':count ʻaho', // less reliable
+    'a_day' => ':count ʻaho', // less reliable
+
+    'hour' => ':count houa',
+    'h' => ':count houa',
+    'a_hour' => ':count houa',
+
+    'minute' => ':count miniti',
+    'min' => ':count miniti',
+    'a_minute' => ':count miniti',
+
+    'second' => ':count sekoni',
+    's' => ':count sekoni',
+    'a_second' => ':count sekoni',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tpi.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tpi.php
new file mode 100644
index 0000000..7d38dae
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tpi.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/tpi_PG.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tpi_PG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tpi_PG.php
new file mode 100644
index 0000000..5f58c44
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tpi_PG.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Samsung Electronics Co., Ltd.    akhilesh.k@samsung.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['Janueri', 'Februeri', 'Mas', 'Epril', 'Me', 'Jun', 'Julai', 'Ogas', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'],
+    'months_short' => ['Jan', 'Feb', 'Mas', 'Epr', 'Me', 'Jun', 'Jul', 'Oga', 'Sep', 'Okt', 'Nov', 'Des'],
+    'weekdays' => ['Sande', 'Mande', 'Tunde', 'Trinde', 'Fonde', 'Fraide', 'Sarere'],
+    'weekdays_short' => ['San', 'Man', 'Tun', 'Tri', 'Fon', 'Fra', 'Sar'],
+    'weekdays_min' => ['San', 'Man', 'Tun', 'Tri', 'Fon', 'Fra', 'Sar'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['biknait', 'apinun'],
+
+    'year' => 'yia :count',
+    'y' => 'yia :count',
+    'a_year' => 'yia :count',
+
+    'month' => ':count mun',
+    'm' => ':count mun',
+    'a_month' => ':count mun',
+
+    'week' => ':count wik',
+    'w' => ':count wik',
+    'a_week' => ':count wik',
+
+    'day' => ':count de',
+    'd' => ':count de',
+    'a_day' => ':count de',
+
+    'hour' => ':count aua',
+    'h' => ':count aua',
+    'a_hour' => ':count aua',
+
+    'minute' => ':count minit',
+    'min' => ':count minit',
+    'a_minute' => ':count minit',
+
+    'second' => ':count namba tu',
+    's' => ':count namba tu',
+    'a_second' => ':count namba tu',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tr.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tr.php
new file mode 100644
index 0000000..f5d9f4c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tr.php
@@ -0,0 +1,121 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - Alan Agius
+ * - Erhan Gundogan
+ * - François B
+ * - JD Isaacks
+ * - Murat Yüksel
+ * - Baran Şengül
+ * - Selami (selamialtin)
+ * - TeomanBey
+ */
+return [
+    'year' => ':count yıl',
+    'a_year' => '{1}bir yıl|]1,Inf[:count yıl',
+    'y' => ':county',
+    'month' => ':count ay',
+    'a_month' => '{1}bir ay|]1,Inf[:count ay',
+    'm' => ':countay',
+    'week' => ':count hafta',
+    'a_week' => '{1}bir hafta|]1,Inf[:count hafta',
+    'w' => ':counth',
+    'day' => ':count gün',
+    'a_day' => '{1}bir gün|]1,Inf[:count gün',
+    'd' => ':countg',
+    'hour' => ':count saat',
+    'a_hour' => '{1}bir saat|]1,Inf[:count saat',
+    'h' => ':countsa',
+    'minute' => ':count dakika',
+    'a_minute' => '{1}bir dakika|]1,Inf[:count dakika',
+    'min' => ':countdk',
+    'second' => ':count saniye',
+    'a_second' => '{1}birkaç saniye|]1,Inf[:count saniye',
+    's' => ':countsn',
+    'ago' => ':time önce',
+    'from_now' => ':time sonra',
+    'after' => ':time sonra',
+    'before' => ':time önce',
+    'diff_now' => 'şimdi',
+    'diff_today' => 'bugün',
+    'diff_today_regexp' => 'bugün(?:\\s+saat)?',
+    'diff_yesterday' => 'dün',
+    'diff_tomorrow' => 'yarın',
+    'diff_tomorrow_regexp' => 'yarın(?:\\s+saat)?',
+    'diff_before_yesterday' => 'evvelsi gün',
+    'diff_after_tomorrow' => 'öbür gün',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[bugün saat] LT',
+        'nextDay' => '[yarın saat] LT',
+        'nextWeek' => '[gelecek] dddd [saat] LT',
+        'lastDay' => '[dün] LT',
+        'lastWeek' => '[geçen] dddd [saat] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number, $period) {
+        switch ($period) {
+            case 'd':
+            case 'D':
+            case 'Do':
+            case 'DD':
+                return $number;
+            default:
+                if ($number === 0) {  // special case for zero
+                    return "$number'ıncı";
+                }
+
+                static $suffixes = [
+                    1 => '\'inci',
+                    5 => '\'inci',
+                    8 => '\'inci',
+                    70 => '\'inci',
+                    80 => '\'inci',
+                    2 => '\'nci',
+                    7 => '\'nci',
+                    20 => '\'nci',
+                    50 => '\'nci',
+                    3 => '\'üncü',
+                    4 => '\'üncü',
+                    100 => '\'üncü',
+                    6 => '\'ncı',
+                    9 => '\'uncu',
+                    10 => '\'uncu',
+                    30 => '\'uncu',
+                    60 => '\'ıncı',
+                    90 => '\'ıncı',
+                ];
+
+                $lastDigit = $number % 10;
+
+                return $number.($suffixes[$lastDigit] ?? $suffixes[$number % 100 - $lastDigit] ?? $suffixes[$number >= 100 ? 100 : -1] ?? '');
+        }
+    },
+    'meridiem' => ['ÖÖ', 'ÖS', 'öö', 'ös'],
+    'months' => ['Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs', 'Haziran', 'Temmuz', 'Ağustos', 'Eylül', 'Ekim', 'Kasım', 'Aralık'],
+    'months_short' => ['Oca', 'Şub', 'Mar', 'Nis', 'May', 'Haz', 'Tem', 'Ağu', 'Eyl', 'Eki', 'Kas', 'Ara'],
+    'weekdays' => ['Pazar', 'Pazartesi', 'Salı', 'Çarşamba', 'Perşembe', 'Cuma', 'Cumartesi'],
+    'weekdays_short' => ['Paz', 'Pts', 'Sal', 'Çar', 'Per', 'Cum', 'Cts'],
+    'weekdays_min' => ['Pz', 'Pt', 'Sa', 'Ça', 'Pe', 'Cu', 'Ct'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' ve '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tr_CY.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tr_CY.php
new file mode 100644
index 0000000..1937fec
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tr_CY.php
@@ -0,0 +1,22 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/tr.php', [
+    'weekdays_short' => ['Paz', 'Pzt', 'Sal', 'Çar', 'Per', 'Cum', 'Cmt'],
+    'weekdays_min' => ['Pa', 'Pt', 'Sa', 'Ça', 'Pe', 'Cu', 'Ct'],
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'D.MM.YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY h:mm a',
+        'LLLL' => 'D MMMM YYYY dddd h:mm a',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tr_TR.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tr_TR.php
new file mode 100644
index 0000000..dc8e935
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tr_TR.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/tr.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ts.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ts.php
new file mode 100644
index 0000000..525736b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ts.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/ts_ZA.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ts_ZA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ts_ZA.php
new file mode 100644
index 0000000..37a24ec
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ts_ZA.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['Sunguti', 'Nyenyenyani', 'Nyenyankulu', 'Dzivamisoko', 'Mudyaxihi', 'Khotavuxika', 'Mawuwani', 'Mhawuri', 'Ndzhati', 'Nhlangula', 'Hukuri', 'N\'wendzamhala'],
+    'months_short' => ['Sun', 'Yan', 'Kul', 'Dzi', 'Mud', 'Kho', 'Maw', 'Mha', 'Ndz', 'Nhl', 'Huk', 'N\'w'],
+    'weekdays' => ['Sonto', 'Musumbhunuku', 'Ravumbirhi', 'Ravunharhu', 'Ravumune', 'Ravuntlhanu', 'Mugqivela'],
+    'weekdays_short' => ['Son', 'Mus', 'Bir', 'Har', 'Ne', 'Tlh', 'Mug'],
+    'weekdays_min' => ['Son', 'Mus', 'Bir', 'Har', 'Ne', 'Tlh', 'Mug'],
+    'day_of_first_week_of_year' => 1,
+
+    'year' => 'malembe ya :count',
+    'y' => 'malembe ya :count',
+    'a_year' => 'malembe ya :count',
+
+    'month' => 'tin’hweti ta :count',
+    'm' => 'tin’hweti ta :count',
+    'a_month' => 'tin’hweti ta :count',
+
+    'week' => 'mavhiki ya :count',
+    'w' => 'mavhiki ya :count',
+    'a_week' => 'mavhiki ya :count',
+
+    'day' => 'masiku :count',
+    'd' => 'masiku :count',
+    'a_day' => 'masiku :count',
+
+    'hour' => 'tiawara ta :count',
+    'h' => 'tiawara ta :count',
+    'a_hour' => 'tiawara ta :count',
+
+    'minute' => 'timinete ta :count',
+    'min' => 'timinete ta :count',
+    'a_minute' => 'timinete ta :count',
+
+    'second' => 'tisekoni ta :count',
+    's' => 'tisekoni ta :count',
+    'a_second' => 'tisekoni ta :count',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tt.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tt.php
new file mode 100644
index 0000000..d67d896
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tt.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/tt_RU.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tt_RU.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tt_RU.php
new file mode 100644
index 0000000..38e42d0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tt_RU.php
@@ -0,0 +1,39 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Rinat Norkin Pablo Saratxaga, Rinat Norkin pablo@mandrakesoft.com, rinat@taif.ru
+ */
+return [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'DD MMM, HH:mm',
+        'LLLL' => 'DD MMMM YYYY, HH:mm',
+    ],
+    'months' => ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'],
+    'months_short' => ['янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'],
+    'weekdays' => ['якшәмбе', 'дышәмбе', 'сишәмбе', 'чәршәәмбе', 'пәнҗешмбе', 'җомга', 'шимбә'],
+    'weekdays_short' => ['якш', 'дыш', 'сиш', 'чәрш', 'пәнҗ', 'җом', 'шим'],
+    'weekdays_min' => ['якш', 'дыш', 'сиш', 'чәрш', 'пәнҗ', 'җом', 'шим'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'year' => ':count ел',
+    'month' => ':count ай',
+    'week' => ':count атна',
+    'day' => ':count көн',
+    'hour' => ':count сәгать',
+    'minute' => ':count минут',
+    'second' => ':count секунд',
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tt_RU@iqtelif.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tt_RU@iqtelif.php
new file mode 100644
index 0000000..16b8efb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tt_RU@iqtelif.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Reshat Sabiq tatar.iqtelif.i18n@gmail.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD.MM.YYYY',
+    ],
+    'months' => ['Ğınwar', 'Fiwral\'', 'Mart', 'April', 'May', 'Yün', 'Yül', 'Awgust', 'Sintebír', 'Üktebír', 'Noyebír', 'Dikebír'],
+    'months_short' => ['Ğın', 'Fiw', 'Mar', 'Apr', 'May', 'Yün', 'Yül', 'Awg', 'Sin', 'Ükt', 'Noy', 'Dik'],
+    'weekdays' => ['Yekşembí', 'Düşembí', 'Sişembí', 'Çerşembí', 'Pencíşembí', 'Comğa', 'Şimbe'],
+    'weekdays_short' => ['Yek', 'Düş', 'Siş', 'Çer', 'Pen', 'Com', 'Şim'],
+    'weekdays_min' => ['Yek', 'Düş', 'Siş', 'Çer', 'Pen', 'Com', 'Şim'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['ÖA', 'ÖS'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/twq.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/twq.php
new file mode 100644
index 0000000..e8ff278
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/twq.php
@@ -0,0 +1,13 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/ses.php', [
+    'meridiem' => ['Subbaahi', 'Zaarikay b'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tzl.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tzl.php
new file mode 100644
index 0000000..50bf26d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tzl.php
@@ -0,0 +1,65 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+return [
+    'year' => '[0,1]:count ar|:count ars',
+    'y' => '[0,1]:count ar|:count ars',
+    'month' => '[0,1]:count mes|:count mesen',
+    'm' => '[0,1]:count mes|:count mesen',
+    'week' => '[0,1]:count seifetziua|:count seifetziuas',
+    'w' => '[0,1]:count seifetziua|:count seifetziuas',
+    'day' => '[0,1]:count ziua|:count ziuas',
+    'd' => '[0,1]:count ziua|:count ziuas',
+    'hour' => '[0,1]:count þora|:count þoras',
+    'h' => '[0,1]:count þora|:count þoras',
+    'minute' => '[0,1]:count míut|:count míuts',
+    'min' => '[0,1]:count míut|:count míuts',
+    'second' => ':count secunds',
+    's' => ':count secunds',
+
+    'ago' => 'ja :time',
+    'from_now' => 'osprei :time',
+
+    'diff_yesterday' => 'ieiri',
+    'diff_yesterday_regexp' => 'ieiri(?:\\s+à)?',
+    'diff_today' => 'oxhi',
+    'diff_today_regexp' => 'oxhi(?:\\s+à)?',
+    'diff_tomorrow' => 'demà',
+    'diff_tomorrow_regexp' => 'demà(?:\\s+à)?',
+
+    'formats' => [
+        'LT' => 'HH.mm',
+        'LTS' => 'HH.mm.ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D. MMMM [dallas] YYYY',
+        'LLL' => 'D. MMMM [dallas] YYYY HH.mm',
+        'LLLL' => 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',
+    ],
+
+    'calendar' => [
+        'sameDay' => '[oxhi à] LT',
+        'nextDay' => '[demà à] LT',
+        'nextWeek' => 'dddd [à] LT',
+        'lastDay' => '[ieiri à] LT',
+        'lastWeek' => '[sür el] dddd [lasteu à] LT',
+        'sameElse' => 'L',
+    ],
+
+    'meridiem' => ["D'A", "D'O"],
+    'months' => ['Januar', 'Fevraglh', 'Març', 'Avrïu', 'Mai', 'Gün', 'Julia', 'Guscht', 'Setemvar', 'Listopäts', 'Noemvar', 'Zecemvar'],
+    'months_short' => ['Jan', 'Fev', 'Mar', 'Avr', 'Mai', 'Gün', 'Jul', 'Gus', 'Set', 'Lis', 'Noe', 'Zec'],
+    'weekdays' => ['Súladi', 'Lúneçi', 'Maitzi', 'Márcuri', 'Xhúadi', 'Viénerçi', 'Sáturi'],
+    'weekdays_short' => ['Súl', 'Lún', 'Mai', 'Már', 'Xhú', 'Vié', 'Sát'],
+    'weekdays_min' => ['Sú', 'Lú', 'Ma', 'Má', 'Xh', 'Vi', 'Sá'],
+    'ordinal' => ':number.',
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tzm.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tzm.php
new file mode 100644
index 0000000..2a1a0f2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tzm.php
@@ -0,0 +1,57 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - JD Isaacks
+ */
+return [
+    'year' => '{1}ⴰⵙⴳⴰⵙ|:count ⵉⵙⴳⴰⵙⵏ',
+    'month' => '{1}ⴰⵢoⵓⵔ|:count ⵉⵢⵢⵉⵔⵏ',
+    'week' => ':count ⵉⵎⴰⵍⴰⵙⵙ',
+    'day' => '{1}ⴰⵙⵙ|:count oⵙⵙⴰⵏ',
+    'hour' => '{1}ⵙⴰⵄⴰ|:count ⵜⴰⵙⵙⴰⵄⵉⵏ',
+    'minute' => '{1}ⵎⵉⵏⵓⴺ|:count ⵎⵉⵏⵓⴺ',
+    'second' => '{1}ⵉⵎⵉⴽ|:count ⵉⵎⵉⴽ',
+    'ago' => 'ⵢⴰⵏ :time',
+    'from_now' => 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ :time',
+    'diff_today' => 'ⴰⵙⴷⵅ',
+    'diff_yesterday' => 'ⴰⵚⴰⵏⵜ',
+    'diff_yesterday_regexp' => 'ⴰⵚⴰⵏⵜ(?:\\s+ⴴ)?',
+    'diff_tomorrow' => 'ⴰⵙⴽⴰ',
+    'diff_tomorrow_regexp' => 'ⴰⵙⴽⴰ(?:\\s+ⴴ)?',
+    'diff_today_regexp' => 'ⴰⵙⴷⵅ(?:\\s+ⴴ)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[ⴰⵙⴷⵅ ⴴ] LT',
+        'nextDay' => '[ⴰⵙⴽⴰ ⴴ] LT',
+        'nextWeek' => 'dddd [ⴴ] LT',
+        'lastDay' => '[ⴰⵚⴰⵏⵜ ⴴ] LT',
+        'lastWeek' => 'dddd [ⴴ] LT',
+        'sameElse' => 'L',
+    ],
+    'months' => ['ⵉⵏⵏⴰⵢⵔ', 'ⴱⵕⴰⵢⵕ', 'ⵎⴰⵕⵚ', 'ⵉⴱⵔⵉⵔ', 'ⵎⴰⵢⵢⵓ', 'ⵢⵓⵏⵢⵓ', 'ⵢⵓⵍⵢⵓⵣ', 'ⵖⵓⵛⵜ', 'ⵛⵓⵜⴰⵏⴱⵉⵔ', 'ⴽⵟⵓⴱⵕ', 'ⵏⵓⵡⴰⵏⴱⵉⵔ', 'ⴷⵓⵊⵏⴱⵉⵔ'],
+    'months_short' => ['ⵉⵏⵏⴰⵢⵔ', 'ⴱⵕⴰⵢⵕ', 'ⵎⴰⵕⵚ', 'ⵉⴱⵔⵉⵔ', 'ⵎⴰⵢⵢⵓ', 'ⵢⵓⵏⵢⵓ', 'ⵢⵓⵍⵢⵓⵣ', 'ⵖⵓⵛⵜ', 'ⵛⵓⵜⴰⵏⴱⵉⵔ', 'ⴽⵟⵓⴱⵕ', 'ⵏⵓⵡⴰⵏⴱⵉⵔ', 'ⴷⵓⵊⵏⴱⵉⵔ'],
+    'weekdays' => ['ⴰⵙⴰⵎⴰⵙ', 'ⴰⵢⵏⴰⵙ', 'ⴰⵙⵉⵏⴰⵙ', 'ⴰⴽⵔⴰⵙ', 'ⴰⴽⵡⴰⵙ', 'ⴰⵙⵉⵎⵡⴰⵙ', 'ⴰⵙⵉⴹⵢⴰⵙ'],
+    'weekdays_short' => ['ⴰⵙⴰⵎⴰⵙ', 'ⴰⵢⵏⴰⵙ', 'ⴰⵙⵉⵏⴰⵙ', 'ⴰⴽⵔⴰⵙ', 'ⴰⴽⵡⴰⵙ', 'ⴰⵙⵉⵎⵡⴰⵙ', 'ⴰⵙⵉⴹⵢⴰⵙ'],
+    'weekdays_min' => ['ⴰⵙⴰⵎⴰⵙ', 'ⴰⵢⵏⴰⵙ', 'ⴰⵙⵉⵏⴰⵙ', 'ⴰⴽⵔⴰⵙ', 'ⴰⴽⵡⴰⵙ', 'ⴰⵙⵉⵎⵡⴰⵙ', 'ⴰⵙⵉⴹⵢⴰⵙ'],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+    'weekend' => [5, 6],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tzm_Latn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tzm_Latn.php
new file mode 100644
index 0000000..5840d20
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/tzm_Latn.php
@@ -0,0 +1,64 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - JD Isaacks
+ */
+return [
+    'year' => '{1}:count asgas|:count isgasn',
+    'a_year' => 'asgas|:count isgasn',
+    'month' => '{1}:count ayowr|:count iyyirn',
+    'a_month' => 'ayowr|:count iyyirn',
+    'week' => ':count imalass',
+    'a_week' => ':imalass',
+    'day' => '{1}:count ass|:count ossan',
+    'a_day' => 'ass|:count ossan',
+    'hour' => '{1}:count saɛa|:count tassaɛin',
+    'a_hour' => '{1}saɛa|:count tassaɛin',
+    'minute' => ':count minuḍ',
+    'a_minute' => '{1}minuḍ|:count minuḍ',
+    'second' => ':count imik',
+    'a_second' => '{1}imik|:count imik',
+    'ago' => 'yan :time',
+    'from_now' => 'dadkh s yan :time',
+    'diff_yesterday' => 'assant',
+    'diff_yesterday_regexp' => 'assant(?:\\s+g)?',
+    'diff_today' => 'asdkh',
+    'diff_today_regexp' => 'asdkh(?:\\s+g)?',
+    'diff_tomorrow' => 'aska',
+    'diff_tomorrow_regexp' => 'aska(?:\\s+g)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[asdkh g] LT',
+        'nextDay' => '[aska g] LT',
+        'nextWeek' => 'dddd [g] LT',
+        'lastDay' => '[assant g] LT',
+        'lastWeek' => 'dddd [g] LT',
+        'sameElse' => 'L',
+    ],
+    'months' => ['innayr', 'brˤayrˤ', 'marˤsˤ', 'ibrir', 'mayyw', 'ywnyw', 'ywlywz', 'ɣwšt', 'šwtanbir', 'ktˤwbrˤ', 'nwwanbir', 'dwjnbir'],
+    'months_short' => ['innayr', 'brˤayrˤ', 'marˤsˤ', 'ibrir', 'mayyw', 'ywnyw', 'ywlywz', 'ɣwšt', 'šwtanbir', 'ktˤwbrˤ', 'nwwanbir', 'dwjnbir'],
+    'weekdays' => ['asamas', 'aynas', 'asinas', 'akras', 'akwas', 'asimwas', 'asiḍyas'],
+    'weekdays_short' => ['asamas', 'aynas', 'asinas', 'akras', 'akwas', 'asimwas', 'asiḍyas'],
+    'weekdays_min' => ['asamas', 'aynas', 'asinas', 'akras', 'akwas', 'asimwas', 'asiḍyas'],
+    'meridiem' => ['Zdat azal', 'Ḍeffir aza'],
+    'first_day_of_week' => 6,
+    'day_of_first_week_of_year' => 1,
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ug.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ug.php
new file mode 100644
index 0000000..259b99a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ug.php
@@ -0,0 +1,90 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Philippe Vaucher
+ * - Tsutomu Kuroda
+ * - yasinn
+ */
+return [
+    'year' => '{1}'.'بىر يىل'.'|:count '.'يىل',
+    'month' => '{1}'.'بىر ئاي'.'|:count '.'ئاي',
+    'week' => '{1}'.'بىر ھەپتە'.'|:count '.'ھەپتە',
+    'day' => '{1}'.'بىر كۈن'.'|:count '.'كۈن',
+    'hour' => '{1}'.'بىر سائەت'.'|:count '.'سائەت',
+    'minute' => '{1}'.'بىر مىنۇت'.'|:count '.'مىنۇت',
+    'second' => '{1}'.'نەچچە سېكونت'.'|:count '.'سېكونت',
+    'ago' => ':time بۇرۇن',
+    'from_now' => ':time كېيىن',
+    'diff_today' => 'بۈگۈن',
+    'diff_yesterday' => 'تۆنۈگۈن',
+    'diff_tomorrow' => 'ئەتە',
+    'diff_tomorrow_regexp' => 'ئەتە(?:\\s+سائەت)?',
+    'diff_today_regexp' => 'بۈگۈن(?:\\s+سائەت)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'YYYY-MM-DD',
+        'LL' => 'YYYY-يىلىM-ئاينىڭD-كۈنى',
+        'LLL' => 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
+        'LLLL' => 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[بۈگۈن سائەت] LT',
+        'nextDay' => '[ئەتە سائەت] LT',
+        'nextWeek' => '[كېلەركى] dddd [سائەت] LT',
+        'lastDay' => '[تۆنۈگۈن] LT',
+        'lastWeek' => '[ئالدىنقى] dddd [سائەت] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number, $period) {
+        switch ($period) {
+            case 'd':
+            case 'D':
+            case 'DDD':
+                return $number.'-كۈنى';
+            case 'w':
+            case 'W':
+                return $number.'-ھەپتە';
+            default:
+                return $number;
+        }
+    },
+    'meridiem' => function ($hour, $minute) {
+        $time = $hour * 100 + $minute;
+        if ($time < 600) {
+            return 'يېرىم كېچە';
+        }
+        if ($time < 900) {
+            return 'سەھەر';
+        }
+        if ($time < 1130) {
+            return 'چۈشتىن بۇرۇن';
+        }
+        if ($time < 1230) {
+            return 'چۈش';
+        }
+        if ($time < 1800) {
+            return 'چۈشتىن كېيىن';
+        }
+
+        return 'كەچ';
+    },
+    'months' => ['يانۋار', 'فېۋرال', 'مارت', 'ئاپرېل', 'ماي', 'ئىيۇن', 'ئىيۇل', 'ئاۋغۇست', 'سېنتەبىر', 'ئۆكتەبىر', 'نويابىر', 'دېكابىر'],
+    'months_short' => ['يانۋار', 'فېۋرال', 'مارت', 'ئاپرېل', 'ماي', 'ئىيۇن', 'ئىيۇل', 'ئاۋغۇست', 'سېنتەبىر', 'ئۆكتەبىر', 'نويابىر', 'دېكابىر'],
+    'weekdays' => ['يەكشەنبە', 'دۈشەنبە', 'سەيشەنبە', 'چارشەنبە', 'پەيشەنبە', 'جۈمە', 'شەنبە'],
+    'weekdays_short' => ['يە', 'دۈ', 'سە', 'چا', 'پە', 'جۈ', 'شە'],
+    'weekdays_min' => ['يە', 'دۈ', 'سە', 'چا', 'پە', 'جۈ', 'شە'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' ۋە '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ug_CN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ug_CN.php
new file mode 100644
index 0000000..deb828c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ug_CN.php
@@ -0,0 +1,17 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Kunal Marwaha
+ * - Alim Boyaq
+ */
+return require __DIR__.'/ug.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uk.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uk.php
new file mode 100644
index 0000000..ab2d867
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uk.php
@@ -0,0 +1,208 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+$processHoursFunction = function (\Carbon\CarbonInterface $date, string $format) {
+    return $format.'о'.($date->hour === 11 ? 'б' : '').'] LT';
+};
+
+/*
+ * Authors:
+ * - Kunal Marwaha
+ * - Josh Soref
+ * - François B
+ * - Tim Fish
+ * - Serhan Apaydın
+ * - Max Mykhailenko
+ * - JD Isaacks
+ * - Max Kovpak
+ * - AucT
+ * - Philippe Vaucher
+ * - Ilya Shaplyko
+ * - Vadym Ievsieiev
+ * - Denys Kurets
+ * - Igor Kasyanchuk
+ * - Tsutomu Kuroda
+ * - tjku
+ * - Max Melentiev
+ * - Oleh
+ * - epaminond
+ * - Juanito Fatas
+ * - Vitalii Khustochka
+ * - Akira Matsuda
+ * - Christopher Dell
+ * - Enrique Vidal
+ * - Simone Carletti
+ * - Aaron Patterson
+ * - Andriy Tyurnikov
+ * - Nicolás Hock Isaza
+ * - Iwakura Taro
+ * - Andrii Ponomarov
+ * - alecrabbit
+ * - vystepanenko
+ * - AlexWalkerson
+ * - Andre Havryliuk (Andrend)
+ * - Max Datsenko (datsenko-md)
+ */
+return [
+    'year' => ':count рік|:count роки|:count років',
+    'y' => ':countр',
+    'a_year' => '{1}рік|:count рік|:count роки|:count років',
+    'month' => ':count місяць|:count місяці|:count місяців',
+    'm' => ':countм',
+    'a_month' => '{1}місяць|:count місяць|:count місяці|:count місяців',
+    'week' => ':count тиждень|:count тижні|:count тижнів',
+    'w' => ':countт',
+    'a_week' => '{1}тиждень|:count тиждень|:count тижні|:count тижнів',
+    'day' => ':count день|:count дні|:count днів',
+    'd' => ':countд',
+    'a_day' => '{1}день|:count день|:count дні|:count днів',
+    'hour' => ':count година|:count години|:count годин',
+    'h' => ':countг',
+    'a_hour' => '{1}година|:count година|:count години|:count годин',
+    'minute' => ':count хвилина|:count хвилини|:count хвилин',
+    'min' => ':countхв',
+    'a_minute' => '{1}хвилина|:count хвилина|:count хвилини|:count хвилин',
+    'second' => ':count секунда|:count секунди|:count секунд',
+    's' => ':countсек',
+    'a_second' => '{1}декілька секунд|:count секунда|:count секунди|:count секунд',
+
+    'hour_ago' => ':count годину|:count години|:count годин',
+    'a_hour_ago' => '{1}годину|:count годину|:count години|:count годин',
+    'minute_ago' => ':count хвилину|:count хвилини|:count хвилин',
+    'a_minute_ago' => '{1}хвилину|:count хвилину|:count хвилини|:count хвилин',
+    'second_ago' => ':count секунду|:count секунди|:count секунд',
+    'a_second_ago' => '{1}декілька секунд|:count секунду|:count секунди|:count секунд',
+
+    'hour_from_now' => ':count годину|:count години|:count годин',
+    'a_hour_from_now' => '{1}годину|:count годину|:count години|:count годин',
+    'minute_from_now' => ':count хвилину|:count хвилини|:count хвилин',
+    'a_minute_from_now' => '{1}хвилину|:count хвилину|:count хвилини|:count хвилин',
+    'second_from_now' => ':count секунду|:count секунди|:count секунд',
+    'a_second_from_now' => '{1}декілька секунд|:count секунду|:count секунди|:count секунд',
+
+    'hour_after' => ':count годину|:count години|:count годин',
+    'a_hour_after' => '{1}годину|:count годину|:count години|:count годин',
+    'minute_after' => ':count хвилину|:count хвилини|:count хвилин',
+    'a_minute_after' => '{1}хвилину|:count хвилину|:count хвилини|:count хвилин',
+    'second_after' => ':count секунду|:count секунди|:count секунд',
+    'a_second_after' => '{1}декілька секунд|:count секунду|:count секунди|:count секунд',
+
+    'hour_before' => ':count годину|:count години|:count годин',
+    'a_hour_before' => '{1}годину|:count годину|:count години|:count годин',
+    'minute_before' => ':count хвилину|:count хвилини|:count хвилин',
+    'a_minute_before' => '{1}хвилину|:count хвилину|:count хвилини|:count хвилин',
+    'second_before' => ':count секунду|:count секунди|:count секунд',
+    'a_second_before' => '{1}декілька секунд|:count секунду|:count секунди|:count секунд',
+
+    'ago' => ':time тому',
+    'from_now' => 'за :time',
+    'after' => ':time після',
+    'before' => ':time до',
+    'diff_now' => 'щойно',
+    'diff_today' => 'Сьогодні',
+    'diff_today_regexp' => 'Сьогодні(?:\\s+о)?',
+    'diff_yesterday' => 'вчора',
+    'diff_yesterday_regexp' => 'Вчора(?:\\s+о)?',
+    'diff_tomorrow' => 'завтра',
+    'diff_tomorrow_regexp' => 'Завтра(?:\\s+о)?',
+    'diff_before_yesterday' => 'позавчора',
+    'diff_after_tomorrow' => 'післязавтра',
+    'period_recurrences' => 'один раз|:count рази|:count разів',
+    'period_interval' => 'кожні :interval',
+    'period_start_date' => 'з :date',
+    'period_end_date' => 'до :date',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY, HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY, HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => function (\Carbon\CarbonInterface $date) use ($processHoursFunction) {
+            return $processHoursFunction($date, '[Сьогодні ');
+        },
+        'nextDay' => function (\Carbon\CarbonInterface $date) use ($processHoursFunction) {
+            return $processHoursFunction($date, '[Завтра ');
+        },
+        'nextWeek' => function (\Carbon\CarbonInterface $date) use ($processHoursFunction) {
+            return $processHoursFunction($date, '[У] dddd [');
+        },
+        'lastDay' => function (\Carbon\CarbonInterface $date) use ($processHoursFunction) {
+            return $processHoursFunction($date, '[Вчора ');
+        },
+        'lastWeek' => function (\Carbon\CarbonInterface $date) use ($processHoursFunction) {
+            switch ($date->dayOfWeek) {
+                case 0:
+                case 3:
+                case 5:
+                case 6:
+                    return $processHoursFunction($date, '[Минулої] dddd [');
+                default:
+                    return $processHoursFunction($date, '[Минулого] dddd [');
+            }
+        },
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number, $period) {
+        switch ($period) {
+            case 'M':
+            case 'd':
+            case 'DDD':
+            case 'w':
+            case 'W':
+                return $number.'-й';
+            case 'D':
+                return $number.'-го';
+            default:
+                return $number;
+        }
+    },
+    'meridiem' => function ($hour) {
+        if ($hour < 4) {
+            return 'ночі';
+        }
+        if ($hour < 12) {
+            return 'ранку';
+        }
+        if ($hour < 17) {
+            return 'дня';
+        }
+
+        return 'вечора';
+    },
+    'months' => ['січня', 'лютого', 'березня', 'квітня', 'травня', 'червня', 'липня', 'серпня', 'вересня', 'жовтня', 'листопада', 'грудня'],
+    'months_standalone' => ['січень', 'лютий', 'березень', 'квітень', 'травень', 'червень', 'липень', 'серпень', 'вересень', 'жовтень', 'листопад', 'грудень'],
+    'months_short' => ['січ', 'лют', 'бер', 'кві', 'тра', 'чер', 'лип', 'сер', 'вер', 'жов', 'лис', 'гру'],
+    'months_regexp' => '/(D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|L{2,4}|l{2,4})/',
+    'weekdays' => function (\Carbon\CarbonInterface $date, $format, $index) {
+        static $words = [
+            'nominative' => ['неділя', 'понеділок', 'вівторок', 'середа', 'четвер', 'п’ятниця', 'субота'],
+            'accusative' => ['неділю', 'понеділок', 'вівторок', 'середу', 'четвер', 'п’ятницю', 'суботу'],
+            'genitive' => ['неділі', 'понеділка', 'вівторка', 'середи', 'четверга', 'п’ятниці', 'суботи'],
+        ];
+
+        $nounCase = preg_match('/(\[(В|в|У|у)\])\s+dddd/', $format)
+            ? 'accusative'
+            : (
+                preg_match('/\[?(?:минулої|наступної)?\s*\]\s+dddd/', $format)
+                    ? 'genitive'
+                    : 'nominative'
+            );
+
+        return $words[$nounCase][$index] ?? null;
+    },
+    'weekdays_short' => ['нд', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],
+    'weekdays_min' => ['нд', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' i '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uk_UA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uk_UA.php
new file mode 100644
index 0000000..5fc4317
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uk_UA.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/uk.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/unm.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/unm.php
new file mode 100644
index 0000000..d3f19f0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/unm.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/unm_US.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/unm_US.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/unm_US.php
new file mode 100644
index 0000000..fa5c374
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/unm_US.php
@@ -0,0 +1,57 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YY',
+    ],
+    'months' => ['enikwsi', 'chkwali', 'xamokhwite', 'kwetayoxe', 'tainipen', 'kichinipen', 'lainipen', 'winaminke', 'kichitahkok', 'puksit', 'wini', 'muxkotae'],
+    'months_short' => ['eni', 'chk', 'xam', 'kwe', 'tai', 'nip', 'lai', 'win', 'tah', 'puk', 'kun', 'mux'],
+    'weekdays' => ['kentuwei', 'manteke', 'tusteke', 'lelai', 'tasteke', 'pelaiteke', 'sateteke'],
+    'weekdays_short' => ['ken', 'man', 'tus', 'lel', 'tas', 'pel', 'sat'],
+    'weekdays_min' => ['ken', 'man', 'tus', 'lel', 'tas', 'pel', 'sat'],
+    'day_of_first_week_of_year' => 1,
+
+    // Too unreliable
+    /*
+    'year' => ':count kaxtëne',
+    'y' => ':count kaxtëne',
+    'a_year' => ':count kaxtëne',
+
+    'month' => ':count piskewëni kishux', // less reliable
+    'm' => ':count piskewëni kishux', // less reliable
+    'a_month' => ':count piskewëni kishux', // less reliable
+
+    'week' => ':count kishku', // less reliable
+    'w' => ':count kishku', // less reliable
+    'a_week' => ':count kishku', // less reliable
+
+    'day' => ':count kishku',
+    'd' => ':count kishku',
+    'a_day' => ':count kishku',
+
+    'hour' => ':count xkuk', // less reliable
+    'h' => ':count xkuk', // less reliable
+    'a_hour' => ':count xkuk', // less reliable
+
+    'minute' => ':count txituwàk', // less reliable
+    'min' => ':count txituwàk', // less reliable
+    'a_minute' => ':count txituwàk', // less reliable
+
+    'second' => ':count nisha', // less reliable
+    's' => ':count nisha', // less reliable
+    'a_second' => ':count nisha', // less reliable
+    */
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ur.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ur.php
new file mode 100644
index 0000000..e55aff2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ur.php
@@ -0,0 +1,93 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+$months = [
+    'جنوری',
+    'فروری',
+    'مارچ',
+    'اپریل',
+    'مئی',
+    'جون',
+    'جولائی',
+    'اگست',
+    'ستمبر',
+    'اکتوبر',
+    'نومبر',
+    'دسمبر',
+];
+
+$weekdays = [
+    'اتوار',
+    'پیر',
+    'منگل',
+    'بدھ',
+    'جمعرات',
+    'جمعہ',
+    'ہفتہ',
+];
+
+/*
+ * Authors:
+ * - Sawood Alam
+ * - Mehshan
+ * - Philippe Vaucher
+ * - Tsutomu Kuroda
+ * - tjku
+ * - Zaid Akram
+ * - Max Melentiev
+ * - hafezdivandari
+ * - Hossein Jabbari
+ * - nimamo
+ */
+return [
+    'year' => 'ایک سال|:count سال',
+    'month' => 'ایک ماہ|:count ماہ',
+    'week' => ':count ہفتے',
+    'day' => 'ایک دن|:count دن',
+    'hour' => 'ایک گھنٹہ|:count گھنٹے',
+    'minute' => 'ایک منٹ|:count منٹ',
+    'second' => 'چند سیکنڈ|:count سیکنڈ',
+    'ago' => ':time قبل',
+    'from_now' => ':time بعد',
+    'after' => ':time بعد',
+    'before' => ':time پہلے',
+    'diff_now' => 'اب',
+    'diff_today' => 'آج',
+    'diff_today_regexp' => 'آج(?:\\s+بوقت)?',
+    'diff_yesterday' => 'گزشتہ کل',
+    'diff_yesterday_regexp' => 'گذشتہ(?:\\s+روز)?(?:\\s+بوقت)?',
+    'diff_tomorrow' => 'آئندہ کل',
+    'diff_tomorrow_regexp' => 'کل(?:\\s+بوقت)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd، D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[آج بوقت] LT',
+        'nextDay' => '[کل بوقت] LT',
+        'nextWeek' => 'dddd [بوقت] LT',
+        'lastDay' => '[گذشتہ روز بوقت] LT',
+        'lastWeek' => '[گذشتہ] dddd [بوقت] LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => ['صبح', 'شام'],
+    'months' => $months,
+    'months_short' => $months,
+    'weekdays' => $weekdays,
+    'weekdays_short' => $weekdays,
+    'weekdays_min' => $weekdays,
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => ['، ', ' اور '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ur_IN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ur_IN.php
new file mode 100644
index 0000000..f81c84d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ur_IN.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Red Hat, Pune    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/ur.php', [
+    'formats' => [
+        'L' => 'D/M/YY',
+    ],
+    'months' => ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئی', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'],
+    'months_short' => ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئی', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'],
+    'weekdays' => ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'سنیچر'],
+    'weekdays_short' => ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'سنیچر'],
+    'weekdays_min' => ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'سنیچر'],
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ur_PK.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ur_PK.php
new file mode 100644
index 0000000..8cd593d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ur_PK.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/ur.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئی', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'],
+    'months_short' => ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئی', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'],
+    'weekdays' => ['اتوار', 'پير', 'منگل', 'بدھ', 'جمعرات', 'جمعه', 'هفته'],
+    'weekdays_short' => ['اتوار', 'پير', 'منگل', 'بدھ', 'جمعرات', 'جمعه', 'هفته'],
+    'weekdays_min' => ['اتوار', 'پير', 'منگل', 'بدھ', 'جمعرات', 'جمعه', 'هفته'],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['ص', 'ش'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uz.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uz.php
new file mode 100644
index 0000000..61f3b64
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uz.php
@@ -0,0 +1,85 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Dmitriy Shabanov
+ * - JD Isaacks
+ * - Inoyatulloh
+ * - Jamshid
+ * - aarkhipov
+ * - Philippe Vaucher
+ * - felixthemagnificent
+ * - Tsutomu Kuroda
+ * - tjku
+ * - Max Melentiev
+ * - Juanito Fatas
+ * - Alisher Ulugbekov
+ * - Ergashev Adizbek
+ */
+return [
+    'year' => ':count йил',
+    'a_year' => '{1}бир йил|:count йил',
+    'y' => ':count й',
+    'month' => ':count ой',
+    'a_month' => '{1}бир ой|:count ой',
+    'm' => ':count о',
+    'week' => ':count ҳафта',
+    'a_week' => '{1}бир ҳафта|:count ҳафта',
+    'w' => ':count ҳ',
+    'day' => ':count кун',
+    'a_day' => '{1}бир кун|:count кун',
+    'd' => ':count к',
+    'hour' => ':count соат',
+    'a_hour' => '{1}бир соат|:count соат',
+    'h' => ':count с',
+    'minute' => ':count дақиқа',
+    'a_minute' => '{1}бир дақиқа|:count дақиқа',
+    'min' => ':count д',
+    'second' => ':count сония',
+    'a_second' => '{1}сония|:count сония',
+    's' => ':count с',
+    'ago' => ':time аввал',
+    'from_now' => 'Якин :time ичида',
+    'after' => ':timeдан кейин',
+    'before' => ':time олдин',
+    'diff_now' => 'ҳозир',
+    'diff_today' => 'Бугун',
+    'diff_today_regexp' => 'Бугун(?:\\s+соат)?',
+    'diff_yesterday' => 'Кеча',
+    'diff_yesterday_regexp' => 'Кеча(?:\\s+соат)?',
+    'diff_tomorrow' => 'Эртага',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'D MMMM YYYY, dddd HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Бугун соат] LT [да]',
+        'nextDay' => '[Эртага] LT [да]',
+        'nextWeek' => 'dddd [куни соат] LT [да]',
+        'lastDay' => '[Кеча соат] LT [да]',
+        'lastWeek' => '[Утган] dddd [куни соат] LT [да]',
+        'sameElse' => 'L',
+    ],
+    'months' => ['январ', 'феврал', 'март', 'апрел', 'май', 'июн', 'июл', 'август', 'сентябр', 'октябр', 'ноябр', 'декабр'],
+    'months_short' => ['янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек'],
+    'weekdays' => ['якшанба', 'душанба', 'сешанба', 'чоршанба', 'пайшанба', 'жума', 'шанба'],
+    'weekdays_short' => ['якш', 'душ', 'сеш', 'чор', 'пай', 'жум', 'шан'],
+    'weekdays_min' => ['як', 'ду', 'се', 'чо', 'па', 'жу', 'ша'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['эрталаб', 'кечаси'],
+    'list' => [', ', ' ва '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uz_Arab.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uz_Arab.php
new file mode 100644
index 0000000..6871911
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uz_Arab.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/fa.php', [
+    'weekdays' => ['یکشنبه', 'دوشنبه', 'سه‌شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'],
+    'weekdays_short' => ['ی.', 'د.', 'س.', 'چ.', 'پ.', 'ج.', 'ش.'],
+    'weekdays_min' => ['ی.', 'د.', 'س.', 'چ.', 'پ.', 'ج.', 'ش.'],
+    'months' => ['جنوری', 'فبروری', 'مارچ', 'اپریل', 'می', 'جون', 'جولای', 'اگست', 'سپتمبر', 'اکتوبر', 'نومبر', 'دسمبر'],
+    'months_short' => ['جنو', 'فبر', 'مار', 'اپر', 'می', 'جون', 'جول', 'اگس', 'سپت', 'اکت', 'نوم', 'دسم'],
+    'first_day_of_week' => 6,
+    'weekend' => [4, 5],
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'YYYY-MM-dd',
+        'LL' => 'YYYY MMM D',
+        'LLL' => 'YYYY MMMM D HH:mm',
+        'LLLL' => 'YYYY MMMM D, dddd HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uz_Cyrl.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uz_Cyrl.php
new file mode 100644
index 0000000..e875469
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uz_Cyrl.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/uz.php', [
+    'formats' => [
+        'L' => 'DD/MM/yy',
+        'LL' => 'D MMM, YYYY',
+        'LLL' => 'D MMMM, YYYY HH:mm',
+        'LLLL' => 'dddd, DD MMMM, YYYY HH:mm',
+    ],
+    'meridiem' => ['ТО', 'ТК'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uz_Latn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uz_Latn.php
new file mode 100644
index 0000000..ecceeaa
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uz_Latn.php
@@ -0,0 +1,74 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Josh Soref
+ * - Rasulbek
+ * - Ilyosjon Kamoldinov (ilyosjon09)
+ */
+return [
+    'year' => ':count yil',
+    'a_year' => '{1}bir yil|:count yil',
+    'y' => ':count y',
+    'month' => ':count oy',
+    'a_month' => '{1}bir oy|:count oy',
+    'm' => ':count o',
+    'week' => ':count hafta',
+    'a_week' => '{1}bir hafta|:count hafta',
+    'w' => ':count h',
+    'day' => ':count kun',
+    'a_day' => '{1}bir kun|:count kun',
+    'd' => ':count k',
+    'hour' => ':count soat',
+    'a_hour' => '{1}bir soat|:count soat',
+    'h' => ':count soat',
+    'minute' => ':count daqiqa',
+    'a_minute' => '{1}bir daqiqa|:count daqiqa',
+    'min' => ':count d',
+    'second' => ':count soniya',
+    'a_second' => '{1}soniya|:count soniya',
+    's' => ':count son.',
+    'ago' => ':time avval',
+    'from_now' => 'Yaqin :time ichida',
+    'after' => ':timedan keyin',
+    'before' => ':time oldin',
+    'diff_yesterday' => 'Kecha',
+    'diff_yesterday_regexp' => 'Kecha(?:\\s+soat)?',
+    'diff_today' => 'Bugun',
+    'diff_today_regexp' => 'Bugun(?:\\s+soat)?',
+    'diff_tomorrow' => 'Ertaga',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'D MMMM YYYY, dddd HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Bugun soat] LT [da]',
+        'nextDay' => '[Ertaga] LT [da]',
+        'nextWeek' => 'dddd [kuni soat] LT [da]',
+        'lastDay' => '[Kecha soat] LT [da]',
+        'lastWeek' => '[O\'tgan] dddd [kuni soat] LT [da]',
+        'sameElse' => 'L',
+    ],
+    'months' => ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'Iyun', 'Iyul', 'Avgust', 'Sentabr', 'Oktabr', 'Noyabr', 'Dekabr'],
+    'months_short' => ['Yan', 'Fev', 'Mar', 'Apr', 'May', 'Iyun', 'Iyul', 'Avg', 'Sen', 'Okt', 'Noy', 'Dek'],
+    'weekdays' => ['Yakshanba', 'Dushanba', 'Seshanba', 'Chorshanba', 'Payshanba', 'Juma', 'Shanba'],
+    'weekdays_short' => ['Yak', 'Dush', 'Sesh', 'Chor', 'Pay', 'Jum', 'Shan'],
+    'weekdays_min' => ['Ya', 'Du', 'Se', 'Cho', 'Pa', 'Ju', 'Sha'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' va '],
+    'meridiem' => ['TO', 'TK'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uz_UZ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uz_UZ.php
new file mode 100644
index 0000000..d41bfee
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uz_UZ.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Bobir Ismailov Bobir Ismailov, Pablo Saratxaga, Mashrab Kuvatov bobir_is@yahoo.com, pablo@mandrakesoft.com, kmashrab@uni-bremen.de
+ */
+return array_replace_recursive(require __DIR__.'/uz_Latn.php', [
+    'formats' => [
+        'L' => 'DD/MM/YY',
+    ],
+    'months' => ['Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'Iyun', 'Iyul', 'Avgust', 'Sentabr', 'Oktabr', 'Noyabr', 'Dekabr'],
+    'months_short' => ['Yan', 'Fev', 'Mar', 'Apr', 'May', 'Iyn', 'Iyl', 'Avg', 'Sen', 'Okt', 'Noy', 'Dek'],
+    'weekdays' => ['Yakshanba', 'Dushanba', 'Seshanba', 'Chorshanba', 'Payshanba', 'Juma', 'Shanba'],
+    'weekdays_short' => ['Yak', 'Du', 'Se', 'Cho', 'Pay', 'Ju', 'Sha'],
+    'weekdays_min' => ['Yak', 'Du', 'Se', 'Cho', 'Pay', 'Ju', 'Sha'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uz_UZ@cyrillic.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uz_UZ@cyrillic.php
new file mode 100644
index 0000000..2fa967c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/uz_UZ@cyrillic.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Mashrab Kuvatov Mashrab Kuvatov, Pablo Saratxaga kmashrab@uni-bremen.de, pablo@mandrakesoft.com
+ */
+return array_replace_recursive(require __DIR__.'/uz.php', [
+    'formats' => [
+        'L' => 'DD/MM/YY',
+    ],
+    'months' => ['Январ', 'Феврал', 'Март', 'Апрел', 'Май', 'Июн', 'Июл', 'Август', 'Сентябр', 'Октябр', 'Ноябр', 'Декабр'],
+    'months_short' => ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'],
+    'weekdays' => ['Якшанба', 'Душанба', 'Сешанба', 'Чоршанба', 'Пайшанба', 'Жума', 'Шанба'],
+    'weekdays_short' => ['Якш', 'Душ', 'Сеш', 'Чор', 'Пай', 'Жум', 'Шан'],
+    'weekdays_min' => ['Якш', 'Душ', 'Сеш', 'Чор', 'Пай', 'Жум', 'Шан'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/vai.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/vai.php
new file mode 100644
index 0000000..3e6fce2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/vai.php
@@ -0,0 +1,34 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'weekdays' => ['ꕞꕌꔵ', 'ꗳꗡꘉ', 'ꕚꕞꕚ', 'ꕉꕞꕒ', 'ꕉꔤꕆꕢ', 'ꕉꔤꕀꕮ', 'ꔻꔬꔳ'],
+    'weekdays_short' => ['ꕞꕌꔵ', 'ꗳꗡꘉ', 'ꕚꕞꕚ', 'ꕉꕞꕒ', 'ꕉꔤꕆꕢ', 'ꕉꔤꕀꕮ', 'ꔻꔬꔳ'],
+    'weekdays_min' => ['ꕞꕌꔵ', 'ꗳꗡꘉ', 'ꕚꕞꕚ', 'ꕉꕞꕒ', 'ꕉꔤꕆꕢ', 'ꕉꔤꕀꕮ', 'ꔻꔬꔳ'],
+    'months' => ['ꖨꖕ ꕪꕴ ꔞꔀꕮꕊ', 'ꕒꕡꖝꖕ', 'ꕾꖺ', 'ꖢꖕ', 'ꖑꕱ', 'ꖱꘋ', 'ꖱꕞꔤ', 'ꗛꔕ', 'ꕢꕌ', 'ꕭꖃ', 'ꔞꘋꕔꕿ ꕸꖃꗏ', 'ꖨꖕ ꕪꕴ ꗏꖺꕮꕊ'],
+    'months_short' => ['ꖨꖕꔞ', 'ꕒꕡ', 'ꕾꖺ', 'ꖢꖕ', 'ꖑꕱ', 'ꖱꘋ', 'ꖱꕞ', 'ꗛꔕ', 'ꕢꕌ', 'ꕭꖃ', 'ꔞꘋ', 'ꖨꖕꗏ'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY h:mm a',
+        'LLLL' => 'dddd, D MMMM YYYY h:mm a',
+    ],
+
+    'year' => ':count ꕀ', // less reliable
+    'y' => ':count ꕀ', // less reliable
+    'a_year' => ':count ꕀ', // less reliable
+
+    'second' => ':count ꗱꕞꕯꕊ', // less reliable
+    's' => ':count ꗱꕞꕯꕊ', // less reliable
+    'a_second' => ':count ꗱꕞꕯꕊ', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/vai_Latn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/vai_Latn.php
new file mode 100644
index 0000000..b76c4bc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/vai_Latn.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'weekdays' => ['lahadi', 'tɛɛnɛɛ', 'talata', 'alaba', 'aimisa', 'aijima', 'siɓiti'],
+    'weekdays_short' => ['lahadi', 'tɛɛnɛɛ', 'talata', 'alaba', 'aimisa', 'aijima', 'siɓiti'],
+    'weekdays_min' => ['lahadi', 'tɛɛnɛɛ', 'talata', 'alaba', 'aimisa', 'aijima', 'siɓiti'],
+    'months' => ['luukao kemã', 'ɓandaɓu', 'vɔɔ', 'fulu', 'goo', '6', '7', 'kɔnde', 'saah', 'galo', 'kenpkato ɓololɔ', 'luukao lɔma'],
+    'months_short' => ['luukao kemã', 'ɓandaɓu', 'vɔɔ', 'fulu', 'goo', '6', '7', 'kɔnde', 'saah', 'galo', 'kenpkato ɓololɔ', 'luukao lɔma'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'h:mm a',
+        'LTS' => 'h:mm:ss a',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY h:mm a',
+        'LLLL' => 'dddd, D MMMM YYYY h:mm a',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/vai_Vaii.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/vai_Vaii.php
new file mode 100644
index 0000000..7b029a8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/vai_Vaii.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/vai.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ve.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ve.php
new file mode 100644
index 0000000..7f10aeb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ve.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/ve_ZA.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ve_ZA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ve_ZA.php
new file mode 100644
index 0000000..5eb2b91
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/ve_ZA.php
@@ -0,0 +1,49 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['Phando', 'Luhuhi', 'Ṱhafamuhwe', 'Lambamai', 'Shundunthule', 'Fulwi', 'Fulwana', 'Ṱhangule', 'Khubvumedzi', 'Tshimedzi', 'Ḽara', 'Nyendavhusiku'],
+    'months_short' => ['Pha', 'Luh', 'Fam', 'Lam', 'Shu', 'Lwi', 'Lwa', 'Ngu', 'Khu', 'Tsh', 'Ḽar', 'Nye'],
+    'weekdays' => ['Swondaha', 'Musumbuluwo', 'Ḽavhuvhili', 'Ḽavhuraru', 'Ḽavhuṋa', 'Ḽavhuṱanu', 'Mugivhela'],
+    'weekdays_short' => ['Swo', 'Mus', 'Vhi', 'Rar', 'ṋa', 'Ṱan', 'Mug'],
+    'weekdays_min' => ['Swo', 'Mus', 'Vhi', 'Rar', 'ṋa', 'Ṱan', 'Mug'],
+    'day_of_first_week_of_year' => 1,
+
+    // Too unreliable
+    /*
+    'day' => ':count vhege', // less reliable
+    'd' => ':count vhege', // less reliable
+    'a_day' => ':count vhege', // less reliable
+
+    'hour' => ':count watshi', // less reliable
+    'h' => ':count watshi', // less reliable
+    'a_hour' => ':count watshi', // less reliable
+
+    'minute' => ':count watshi', // less reliable
+    'min' => ':count watshi', // less reliable
+    'a_minute' => ':count watshi', // less reliable
+
+    'second' => ':count Mu', // less reliable
+    's' => ':count Mu', // less reliable
+    'a_second' => ':count Mu', // less reliable
+
+    'week' => ':count vhege',
+    'w' => ':count vhege',
+    'a_week' => ':count vhege',
+    */
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/vi.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/vi.php
new file mode 100644
index 0000000..73e2852
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/vi.php
@@ -0,0 +1,76 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - François B
+ * - Andre Polykanine A.K.A. Menelion Elensúlë
+ * - JD Isaacks
+ */
+return [
+    'year' => ':count năm',
+    'a_year' => '{1}một năm|]1, Inf[:count năm',
+    'y' => ':count năm',
+    'month' => ':count tháng',
+    'a_month' => '{1}một tháng|]1, Inf[:count tháng',
+    'm' => ':count tháng',
+    'week' => ':count tuần',
+    'a_week' => '{1}một tuần|]1, Inf[:count tuần',
+    'w' => ':count tuần',
+    'day' => ':count ngày',
+    'a_day' => '{1}một ngày|]1, Inf[:count ngày',
+    'd' => ':count ngày',
+    'hour' => ':count giờ',
+    'a_hour' => '{1}một giờ|]1, Inf[:count giờ',
+    'h' => ':count giờ',
+    'minute' => ':count phút',
+    'a_minute' => '{1}một phút|]1, Inf[:count phút',
+    'min' => ':count phút',
+    'second' => ':count giây',
+    'a_second' => '{1}vài giây|]1, Inf[:count giây',
+    's' => ':count giây',
+    'ago' => ':time trước',
+    'from_now' => ':time tới',
+    'after' => ':time sau',
+    'before' => ':time trước',
+    'diff_now' => 'bây giờ',
+    'diff_today' => 'Hôm',
+    'diff_today_regexp' => 'Hôm(?:\\s+nay)?(?:\\s+lúc)?',
+    'diff_yesterday' => 'Hôm qua',
+    'diff_yesterday_regexp' => 'Hôm(?:\\s+qua)?(?:\\s+lúc)?',
+    'diff_tomorrow' => 'Ngày mai',
+    'diff_tomorrow_regexp' => 'Ngày(?:\\s+mai)?(?:\\s+lúc)?',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM [năm] YYYY',
+        'LLL' => 'D MMMM [năm] YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM [năm] YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[Hôm nay lúc] LT',
+        'nextDay' => '[Ngày mai lúc] LT',
+        'nextWeek' => 'dddd [tuần tới lúc] LT',
+        'lastDay' => '[Hôm qua lúc] LT',
+        'lastWeek' => 'dddd [tuần trước lúc] LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => ['SA', 'CH'],
+    'months' => ['tháng 1', 'tháng 2', 'tháng 3', 'tháng 4', 'tháng 5', 'tháng 6', 'tháng 7', 'tháng 8', 'tháng 9', 'tháng 10', 'tháng 11', 'tháng 12'],
+    'months_short' => ['Th01', 'Th02', 'Th03', 'Th04', 'Th05', 'Th06', 'Th07', 'Th08', 'Th09', 'Th10', 'Th11', 'Th12'],
+    'weekdays' => ['chủ nhật', 'thứ hai', 'thứ ba', 'thứ tư', 'thứ năm', 'thứ sáu', 'thứ bảy'],
+    'weekdays_short' => ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],
+    'weekdays_min' => ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => [', ', ' và '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/vi_VN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/vi_VN.php
new file mode 100644
index 0000000..77b2dce
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/vi_VN.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/vi.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/vo.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/vo.php
new file mode 100644
index 0000000..a956a78
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/vo.php
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'months' => ['M01', 'M02', 'M03', 'M04', 'M05', 'M06', 'M07', 'M08', 'M09', 'M10', 'M11', 'M12'],
+    'months_short' => ['M01', 'M02', 'M03', 'M04', 'M05', 'M06', 'M07', 'M08', 'M09', 'M10', 'M11', 'M12'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'YYYY-MM-dd',
+        'LL' => 'YYYY MMM D',
+        'LLL' => 'YYYY MMMM D HH:mm',
+        'LLLL' => 'YYYY MMMM D, dddd HH:mm',
+    ],
+
+    'year' => ':count yel',
+    'y' => ':count yel',
+    'a_year' => ':count yel',
+
+    'month' => ':count mul',
+    'm' => ':count mul',
+    'a_month' => ':count mul',
+
+    'week' => ':count vig',
+    'w' => ':count vig',
+    'a_week' => ':count vig',
+
+    'day' => ':count del',
+    'd' => ':count del',
+    'a_day' => ':count del',
+
+    'hour' => ':count düp',
+    'h' => ':count düp',
+    'a_hour' => ':count düp',
+
+    'minute' => ':count minut',
+    'min' => ':count minut',
+    'a_minute' => ':count minut',
+
+    'second' => ':count sekun',
+    's' => ':count sekun',
+    'a_second' => ':count sekun',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/vun.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/vun.php
new file mode 100644
index 0000000..f8cc72c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/vun.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['utuko', 'kyiukonyi'],
+    'weekdays' => ['Jumapilyi', 'Jumatatuu', 'Jumanne', 'Jumatanu', 'Alhamisi', 'Ijumaa', 'Jumamosi'],
+    'weekdays_short' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'],
+    'weekdays_min' => ['Jpi', 'Jtt', 'Jnn', 'Jtn', 'Alh', 'Iju', 'Jmo'],
+    'months' => ['Januari', 'Februari', 'Machi', 'Aprilyi', 'Mei', 'Junyi', 'Julyai', 'Agusti', 'Septemba', 'Oktoba', 'Novemba', 'Desemba'],
+    'months_short' => ['Jan', 'Feb', 'Mac', 'Apr', 'Mei', 'Jun', 'Jul', 'Ago', 'Sep', 'Okt', 'Nov', 'Des'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wa.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wa.php
new file mode 100644
index 0000000..f6dc4cc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wa.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/wa_BE.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wa_BE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wa_BE.php
new file mode 100644
index 0000000..a76d80d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wa_BE.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Djan SACRE Pablo Saratxaga pablo@mandrakesoft.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['di djanvî', 'di fevrî', 'di måss', 'd’ avri', 'di may', 'di djun', 'di djulete', 'd’ awousse', 'di setimbe', 'd’ octôbe', 'di nôvimbe', 'di decimbe'],
+    'months_short' => ['dja', 'fev', 'mås', 'avr', 'may', 'djn', 'djl', 'awo', 'set', 'oct', 'nôv', 'dec'],
+    'weekdays' => ['dimegne', 'londi', 'mårdi', 'mierkidi', 'djudi', 'vénrdi', 'semdi'],
+    'weekdays_short' => ['dim', 'lon', 'mår', 'mie', 'dju', 'vén', 'sem'],
+    'weekdays_min' => ['dim', 'lon', 'mår', 'mie', 'dju', 'vén', 'sem'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+
+    'year' => ':count anêye',
+    'y' => ':count anêye',
+    'a_year' => ':count anêye',
+
+    'month' => ':count meûs',
+    'm' => ':count meûs',
+    'a_month' => ':count meûs',
+
+    'week' => ':count samwinne',
+    'w' => ':count samwinne',
+    'a_week' => ':count samwinne',
+
+    'day' => ':count djoû',
+    'd' => ':count djoû',
+    'a_day' => ':count djoû',
+
+    'hour' => ':count eure',
+    'h' => ':count eure',
+    'a_hour' => ':count eure',
+
+    'minute' => ':count munute',
+    'min' => ':count munute',
+    'a_minute' => ':count munute',
+
+    'second' => ':count Sigonde',
+    's' => ':count Sigonde',
+    'a_second' => ':count Sigonde',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wae.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wae.php
new file mode 100644
index 0000000..bf57f23
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wae.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/wae_CH.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wae_CH.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wae_CH.php
new file mode 100644
index 0000000..2af50b4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wae_CH.php
@@ -0,0 +1,31 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Walser Translation Team ml@translate-wae.ch
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'YYYY-MM-DD',
+    ],
+    'months' => ['Jenner', 'Hornig', 'Märze', 'Abrille', 'Meije', 'Bráčet', 'Heiwet', 'Öigšte', 'Herbštmánet', 'Wímánet', 'Wintermánet', 'Chrištmánet'],
+    'months_short' => ['Jen', 'Hor', 'Mär', 'Abr', 'Mei', 'Brá', 'Hei', 'Öig', 'Her', 'Wím', 'Win', 'Chr'],
+    'weekdays' => ['Suntag', 'Mäntag', 'Zischtag', 'Mittwuch', 'Frontag', 'Fritag', 'Samschtag'],
+    'weekdays_short' => ['Sun', 'Män', 'Zis', 'Mit', 'Fro', 'Fri', 'Sam'],
+    'weekdays_min' => ['Sun', 'Män', 'Zis', 'Mit', 'Fro', 'Fri', 'Sam'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+
+    'month' => ':count Maano', // less reliable
+    'm' => ':count Maano', // less reliable
+    'a_month' => ':count Maano', // less reliable
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wal.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wal.php
new file mode 100644
index 0000000..e8ec40f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wal.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/wal_ET.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wal_ET.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wal_ET.php
new file mode 100644
index 0000000..a4e619a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wal_ET.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Ge'ez Frontier Foundation    locales@geez.org
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['ጃንዩወሪ', 'ፌብሩወሪ', 'ማርች', 'ኤፕረል', 'ሜይ', 'ጁን', 'ጁላይ', 'ኦገስት', 'ሴፕቴምበር', 'ኦክተውበር', 'ኖቬምበር', 'ዲሴምበር'],
+    'months_short' => ['ጃንዩ', 'ፌብሩ', 'ማርች', 'ኤፕረ', 'ሜይ ', 'ጁን ', 'ጁላይ', 'ኦገስ', 'ሴፕቴ', 'ኦክተ', 'ኖቬም', 'ዲሴም'],
+    'weekdays' => ['ወጋ', 'ሳይኖ', 'ማቆሳኛ', 'አሩዋ', 'ሃሙሳ', 'አርባ', 'ቄራ'],
+    'weekdays_short' => ['ወጋ ', 'ሳይኖ', 'ማቆሳ', 'አሩዋ', 'ሃሙሳ', 'አርባ', 'ቄራ '],
+    'weekdays_min' => ['ወጋ ', 'ሳይኖ', 'ማቆሳ', 'አሩዋ', 'ሃሙሳ', 'አርባ', 'ቄራ '],
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['ማለዶ', 'ቃማ'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wo.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wo.php
new file mode 100644
index 0000000..74b95df
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wo.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/wo_SN.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wo_SN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wo_SN.php
new file mode 100644
index 0000000..f8a85b3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/wo_SN.php
@@ -0,0 +1,39 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - The Debian Project Christian Perrier bubulle@debian.org
+ */
+return [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD.MM.YYYY',
+        'LL' => 'MMMM DD, YYYY',
+        'LLL' => 'DD MMM HH:mm',
+        'LLLL' => 'MMMM DD, YYYY HH:mm',
+    ],
+    'months' => ['sanwiy\'e', 'feebriy\'e', 'mars', 'awril', 'me', 'suwen', 'sulet', 'uut', 'septaambar', 'oktoobar', 'nowaambar', 'desaambar'],
+    'months_short' => ['san', 'fee', 'mar', 'awr', 'me ', 'suw', 'sul', 'uut', 'sep', 'okt', 'now', 'des'],
+    'weekdays' => ['dib\'eer', 'altine', 'talaata', 'allarba', 'alxames', 'ajjuma', 'gaawu'],
+    'weekdays_short' => ['dib', 'alt', 'tal', 'all', 'alx', 'ajj', 'gaa'],
+    'weekdays_min' => ['dib', 'alt', 'tal', 'all', 'alx', 'ajj', 'gaa'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'year' => ':count at',
+    'month' => ':count wèr',
+    'week' => ':count ayubés',
+    'day' => ':count bés',
+    'hour' => ':count waxtu',
+    'minute' => ':count simili',
+    'second' => ':count saa',
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/xh.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/xh.php
new file mode 100644
index 0000000..e88c78d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/xh.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/xh_ZA.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/xh_ZA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/xh_ZA.php
new file mode 100644
index 0000000..910f831
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/xh_ZA.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['eyoMqungu', 'eyoMdumba', 'eyoKwindla', 'uTshazimpuzi', 'uCanzibe', 'eyeSilimela', 'eyeKhala', 'eyeThupa', 'eyoMsintsi', 'eyeDwarha', 'eyeNkanga', 'eyoMnga'],
+    'months_short' => ['Mqu', 'Mdu', 'Kwi', 'Tsh', 'Can', 'Sil', 'Kha', 'Thu', 'Msi', 'Dwa', 'Nka', 'Mng'],
+    'weekdays' => ['iCawa', 'uMvulo', 'lwesiBini', 'lwesiThathu', 'ulweSine', 'lwesiHlanu', 'uMgqibelo'],
+    'weekdays_short' => ['Caw', 'Mvu', 'Bin', 'Tha', 'Sin', 'Hla', 'Mgq'],
+    'weekdays_min' => ['Caw', 'Mvu', 'Bin', 'Tha', 'Sin', 'Hla', 'Mgq'],
+    'day_of_first_week_of_year' => 1,
+
+    'year' => ':count ihlobo', // less reliable
+    'y' => ':count ihlobo', // less reliable
+    'a_year' => ':count ihlobo', // less reliable
+
+    'hour' => ':count iwotshi', // less reliable
+    'h' => ':count iwotshi', // less reliable
+    'a_hour' => ':count iwotshi', // less reliable
+
+    'minute' => ':count ingqalelo', // less reliable
+    'min' => ':count ingqalelo', // less reliable
+    'a_minute' => ':count ingqalelo', // less reliable
+
+    'second' => ':count nceda', // less reliable
+    's' => ':count nceda', // less reliable
+    'a_second' => ':count nceda', // less reliable
+
+    'month' => ':count inyanga',
+    'm' => ':count inyanga',
+    'a_month' => ':count inyanga',
+
+    'week' => ':count veki',
+    'w' => ':count veki',
+    'a_week' => ':count veki',
+
+    'day' => ':count imini',
+    'd' => ':count imini',
+    'a_day' => ':count imini',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/xog.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/xog.php
new file mode 100644
index 0000000..063977c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/xog.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['Munkyo', 'Eigulo'],
+    'weekdays' => ['Sabiiti', 'Balaza', 'Owokubili', 'Owokusatu', 'Olokuna', 'Olokutaanu', 'Olomukaaga'],
+    'weekdays_short' => ['Sabi', 'Bala', 'Kubi', 'Kusa', 'Kuna', 'Kuta', 'Muka'],
+    'weekdays_min' => ['Sabi', 'Bala', 'Kubi', 'Kusa', 'Kuna', 'Kuta', 'Muka'],
+    'months' => ['Janwaliyo', 'Febwaliyo', 'Marisi', 'Apuli', 'Maayi', 'Juuni', 'Julaayi', 'Agusito', 'Sebuttemba', 'Okitobba', 'Novemba', 'Desemba'],
+    'months_short' => ['Jan', 'Feb', 'Mar', 'Apu', 'Maa', 'Juu', 'Jul', 'Agu', 'Seb', 'Oki', 'Nov', 'Des'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yav.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yav.php
new file mode 100644
index 0000000..e44cde6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yav.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'meridiem' => ['kiɛmɛ́ɛm', 'kisɛ́ndɛ'],
+    'weekdays' => ['sɔ́ndiɛ', 'móndie', 'muányáŋmóndie', 'metúkpíápɛ', 'kúpélimetúkpiapɛ', 'feléte', 'séselé'],
+    'weekdays_short' => ['sd', 'md', 'mw', 'et', 'kl', 'fl', 'ss'],
+    'weekdays_min' => ['sd', 'md', 'mw', 'et', 'kl', 'fl', 'ss'],
+    'months' => ['pikítíkítie, oólí ú kutúan', 'siɛyɛ́, oóli ú kándíɛ', 'ɔnsúmbɔl, oóli ú kátátúɛ', 'mesiŋ, oóli ú kénie', 'ensil, oóli ú kátánuɛ', 'ɔsɔn', 'efute', 'pisuyú', 'imɛŋ i puɔs', 'imɛŋ i putúk,oóli ú kátíɛ', 'makandikɛ', 'pilɔndɔ́'],
+    'months_short' => ['o.1', 'o.2', 'o.3', 'o.4', 'o.5', 'o.6', 'o.7', 'o.8', 'o.9', 'o.10', 'o.11', 'o.12'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'D/M/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yi.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yi.php
new file mode 100644
index 0000000..8f32022
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yi.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/yi_US.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yi_US.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yi_US.php
new file mode 100644
index 0000000..f764d36
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yi_US.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - http://www.uyip.org/ Pablo Saratxaga pablo@mandrakesoft.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YY',
+    ],
+    'months' => ['יאַנואַר', 'פֿעברואַר', 'מערץ', 'אַפּריל', 'מיי', 'יוני', 'יולי', 'אויגוסט', 'סעפּטעמבער', 'אקטאבער', 'נאוועמבער', 'דעצעמבער'],
+    'months_short' => ['יאַנ', 'פֿעב', 'מאַר', 'אַפּר', 'מײַ ', 'יונ', 'יול', 'אױג', 'סעפּ', 'אָקט', 'נאָװ', 'דעצ'],
+    'weekdays' => ['זונטיק', 'מאָנטיק', 'דינסטיק', 'מיטװאָך', 'דאָנערשטיק', 'פֿרײַטיק', 'שבת'],
+    'weekdays_short' => ['זונ\'', 'מאָנ\'', 'דינ\'', 'מיט\'', 'דאָנ\'', 'פֿרײַ\'', 'שבת'],
+    'weekdays_min' => ['זונ\'', 'מאָנ\'', 'דינ\'', 'מיט\'', 'דאָנ\'', 'פֿרײַ\'', 'שבת'],
+    'day_of_first_week_of_year' => 1,
+
+    'year' => ':count יאר',
+    'y' => ':count יאר',
+    'a_year' => ':count יאר',
+
+    'month' => ':count חודש',
+    'm' => ':count חודש',
+    'a_month' => ':count חודש',
+
+    'week' => ':count וואָך',
+    'w' => ':count וואָך',
+    'a_week' => ':count וואָך',
+
+    'day' => ':count טאָג',
+    'd' => ':count טאָג',
+    'a_day' => ':count טאָג',
+
+    'hour' => ':count שעה',
+    'h' => ':count שעה',
+    'a_hour' => ':count שעה',
+
+    'minute' => ':count מינוט',
+    'min' => ':count מינוט',
+    'a_minute' => ':count מינוט',
+
+    'second' => ':count סעקונדע',
+    's' => ':count סעקונדע',
+    'a_second' => ':count סעקונדע',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yo.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yo.php
new file mode 100644
index 0000000..0a82981
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yo.php
@@ -0,0 +1,65 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - François B
+ * - Atolagbe Abisoye
+ */
+return [
+    'year' => 'ọdún :count',
+    'a_year' => '{1}ọdún kan|ọdún :count',
+    'month' => 'osù :count',
+    'a_month' => '{1}osù kan|osù :count',
+    'week' => 'ọsẹ :count',
+    'a_week' => '{1}ọsẹ kan|ọsẹ :count',
+    'day' => 'ọjọ́ :count',
+    'a_day' => '{1}ọjọ́ kan|ọjọ́ :count',
+    'hour' => 'wákati :count',
+    'a_hour' => '{1}wákati kan|wákati :count',
+    'minute' => 'ìsẹjú :count',
+    'a_minute' => '{1}ìsẹjú kan|ìsẹjú :count',
+    'second' => 'iaayá :count',
+    'a_second' => '{1}ìsẹjú aayá die|aayá :count',
+    'ago' => ':time kọjá',
+    'from_now' => 'ní :time',
+    'diff_yesterday' => 'Àna',
+    'diff_yesterday_regexp' => 'Àna(?:\\s+ni)?',
+    'diff_today' => 'Ònì',
+    'diff_today_regexp' => 'Ònì(?:\\s+ni)?',
+    'diff_tomorrow' => 'Ọ̀la',
+    'diff_tomorrow_regexp' => 'Ọ̀la(?:\\s+ni)?',
+    'formats' => [
+        'LT' => 'h:mm A',
+        'LTS' => 'h:mm:ss A',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY h:mm A',
+        'LLLL' => 'dddd, D MMMM YYYY h:mm A',
+    ],
+    'calendar' => [
+        'sameDay' => '[Ònì ni] LT',
+        'nextDay' => '[Ọ̀la ni] LT',
+        'nextWeek' => 'dddd [Ọsẹ̀ tón\'bọ] [ni] LT',
+        'lastDay' => '[Àna ni] LT',
+        'lastWeek' => 'dddd [Ọsẹ̀ tólọ́] [ni] LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => 'ọjọ́ :number',
+    'months' => ['Sẹ́rẹ́', 'Èrèlè', 'Ẹrẹ̀nà', 'Ìgbé', 'Èbibi', 'Òkùdu', 'Agẹmo', 'Ògún', 'Owewe', 'Ọ̀wàrà', 'Bélú', 'Ọ̀pẹ̀̀'],
+    'months_short' => ['Sẹ́r', 'Èrl', 'Ẹrn', 'Ìgb', 'Èbi', 'Òkù', 'Agẹ', 'Ògú', 'Owe', 'Ọ̀wà', 'Bél', 'Ọ̀pẹ̀̀'],
+    'weekdays' => ['Àìkú', 'Ajé', 'Ìsẹ́gun', 'Ọjọ́rú', 'Ọjọ́bọ', 'Ẹtì', 'Àbámẹ́ta'],
+    'weekdays_short' => ['Àìk', 'Ajé', 'Ìsẹ́', 'Ọjr', 'Ọjb', 'Ẹtì', 'Àbá'],
+    'weekdays_min' => ['Àì', 'Aj', 'Ìs', 'Ọr', 'Ọb', 'Ẹt', 'Àb'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'meridiem' => ['Àárọ̀', 'Ọ̀sán'],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yo_BJ.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yo_BJ.php
new file mode 100644
index 0000000..f06bb99
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yo_BJ.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return array_replace_recursive(require __DIR__.'/yo.php', [
+    'meridiem' => ['Àárɔ̀', 'Ɔ̀sán'],
+    'weekdays' => ['Ɔjɔ́ Àìkú', 'Ɔjɔ́ Ajé', 'Ɔjɔ́ Ìsɛ́gun', 'Ɔjɔ́rú', 'Ɔjɔ́bɔ', 'Ɔjɔ́ Ɛtì', 'Ɔjɔ́ Àbámɛ́ta'],
+    'weekdays_short' => ['Àìkú', 'Ajé', 'Ìsɛ́gun', 'Ɔjɔ́rú', 'Ɔjɔ́bɔ', 'Ɛtì', 'Àbámɛ́ta'],
+    'weekdays_min' => ['Àìkú', 'Ajé', 'Ìsɛ́gun', 'Ɔjɔ́rú', 'Ɔjɔ́bɔ', 'Ɛtì', 'Àbámɛ́ta'],
+    'months' => ['Oshù Shɛ́rɛ́', 'Oshù Èrèlè', 'Oshù Ɛrɛ̀nà', 'Oshù Ìgbé', 'Oshù Ɛ̀bibi', 'Oshù Òkúdu', 'Oshù Agɛmɔ', 'Oshù Ògún', 'Oshù Owewe', 'Oshù Ɔ̀wàrà', 'Oshù Bélú', 'Oshù Ɔ̀pɛ̀'],
+    'months_short' => ['Shɛ́rɛ́', 'Èrèlè', 'Ɛrɛ̀nà', 'Ìgbé', 'Ɛ̀bibi', 'Òkúdu', 'Agɛmɔ', 'Ògún', 'Owewe', 'Ɔ̀wàrà', 'Bélú', 'Ɔ̀pɛ̀'],
+    'first_day_of_week' => 1,
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd, D MMMM YYYY HH:mm',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yo_NG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yo_NG.php
new file mode 100644
index 0000000..92934bc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yo_NG.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/yo.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yue.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yue.php
new file mode 100644
index 0000000..ce233a4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yue.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/yue_HK.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yue_HK.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yue_HK.php
new file mode 100644
index 0000000..4e7d5c3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yue_HK.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/zh_HK.php', [
+    'formats' => [
+        'L' => 'YYYY年MM月DD日 dddd',
+    ],
+    'months' => ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
+    'months_short' => ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
+    'weekdays' => ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
+    'weekdays_short' => ['日', '一', '二', '三', '四', '五', '六'],
+    'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'],
+    'first_day_of_week' => 0,
+    'day_of_first_week_of_year' => 1,
+    'meridiem' => ['上午', '下午'],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yue_Hans.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yue_Hans.php
new file mode 100644
index 0000000..007d071
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yue_Hans.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/zh_Hans.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yue_Hant.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yue_Hant.php
new file mode 100644
index 0000000..24797f9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yue_Hant.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/zh_Hant.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yuw.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yuw.php
new file mode 100644
index 0000000..8efdc93
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yuw.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/yuw_PG.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yuw_PG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yuw_PG.php
new file mode 100644
index 0000000..b99ad2e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/yuw_PG.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Information from native speakers Hannah Sarvasy nungon.localization@gmail.com
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YY',
+    ],
+    'months' => ['jenuari', 'febuari', 'mas', 'epril', 'mei', 'jun', 'julai', 'ögus', 'septemba', 'öktoba', 'nöwemba', 'diksemba'],
+    'months_short' => ['jen', 'feb', 'mas', 'epr', 'mei', 'jun', 'jul', 'ögu', 'sep', 'ökt', 'nöw', 'dis'],
+    'weekdays' => ['sönda', 'mönda', 'sinda', 'mitiwö', 'sogipbono', 'nenggo', 'söndanggie'],
+    'weekdays_short' => ['sön', 'mön', 'sin', 'mit', 'soi', 'nen', 'sab'],
+    'weekdays_min' => ['sön', 'mön', 'sin', 'mit', 'soi', 'nen', 'sab'],
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zgh.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zgh.php
new file mode 100644
index 0000000..4d2c3b3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zgh.php
@@ -0,0 +1,80 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - BAKTETE Miloud
+ */
+return [
+    'year' => ':count ⵓⵙⴳⴳⵯⴰⵙ|:count ⵉⵙⴳⴳⵓⵙⴰ',
+    'a_year' => 'ⵓⵙⴳⴳⵯⴰⵙ|:count ⵉⵙⴳⴳⵓⵙⴰ',
+    'y' => ':count ⵓⵙⴳⴳⵯⴰⵙ|:count ⵉⵙⴳⴳⵓⵙⴰ',
+    'month' => ':count ⵡⴰⵢⵢⵓⵔ|:count ⴰⵢⵢⵓⵔⵏ',
+    'a_month' => 'ⵉⴷⵊ ⵡⴰⵢⵢⵓⵔ|:count ⴰⵢⵢⵓⵔⵏ',
+    'm' => ':count ⴰⵢⵢⵓⵔⵏ',
+    'week' => ':count ⵉⵎⴰⵍⴰⵙⵙ|:count ⵉⵎⴰⵍⴰⵙⵙⵏ',
+    'a_week' => 'ⵉⵛⵜ ⵉⵎⴰⵍⴰⵙⵙ|:count ⵉⵎⴰⵍⴰⵙⵙⵏ',
+    'w' => ':count ⵉⵎⴰⵍⴰⵙⵙ.',
+    'day' => ':count ⵡⴰⵙⵙ|:count ⵓⵙⵙⴰⵏ',
+    'a_day' => 'ⵉⴷⵊ ⵡⴰⵙⵙ|:count ⵓⵙⵙⴰⵏ',
+    'd' => ':count ⵓ',
+    'hour' => ':count ⵜⵙⵔⴰⴳⵜ|:count ⵜⵉⵙⵔⴰⴳⵉⵏ',
+    'a_hour' => 'ⵉⵛⵜ ⵜⵙⵔⴰⴳⵜ|:count ⵜⵉⵙⵔⴰⴳⵉⵏ',
+    'h' => ':count ⵜ',
+    'minute' => ':count ⵜⵓⵙⴷⵉⴷⵜ|:count ⵜⵓⵙⴷⵉⴷⵉⵏ',
+    'a_minute' => 'ⵉⵛⵜ ⵜⵓⵙⴷⵉⴷⵜ|:count ⵜⵓⵙⴷⵉⴷⵉⵏ',
+    'min' => ':count ⵜⵓⵙ',
+    'second' => ':count ⵜⵙⵉⵏⵜ|:count ⵜⵉⵙⵉⵏⴰ',
+    'a_second' => 'ⴽⵔⴰ ⵜⵉⵙⵉⵏⴰ|:count ⵜⵉⵙⵉⵏⴰ',
+    's' => ':count ⵜ',
+    'ago' => 'ⵣⴳ :time',
+    'from_now' => 'ⴷⴳ :time',
+    'after' => ':time ⴰⵡⴰⵔ',
+    'before' => ':time ⴷⴰⵜ',
+    'diff_now' => 'ⴰⴷⵡⴰⵍⵉ',
+    'diff_today' => 'ⴰⵙⵙ',
+    'diff_today_regexp' => 'ⴰⵙⵙ(?:\\s+ⴰ/ⴰⴷ)?(?:\\s+ⴳ)?',
+    'diff_yesterday' => 'ⴰⵙⵙⵏⵏⴰⵟ',
+    'diff_yesterday_regexp' => 'ⴰⵙⵙⵏⵏⴰⵟ(?:\\s+ⴳ)?',
+    'diff_tomorrow' => 'ⴰⵙⴽⴽⴰ',
+    'diff_tomorrow_regexp' => 'ⴰⵙⴽⴽⴰ(?:\\s+ⴳ)?',
+    'diff_before_yesterday' => 'ⴼⵔ ⵉⴹⵏⵏⴰⵟ',
+    'diff_after_tomorrow' => 'ⵏⴰⴼ ⵓⵙⴽⴽⴰ',
+    'period_recurrences' => ':count ⵜⵉⴽⴽⴰⵍ',
+    'period_interval' => 'ⴽⵓ :interval',
+    'period_start_date' => 'ⴳ :date',
+    'period_end_date' => 'ⵉ :date',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'DD/MM/YYYY',
+        'LL' => 'D MMMM YYYY',
+        'LLL' => 'D MMMM YYYY HH:mm',
+        'LLLL' => 'dddd D MMMM YYYY HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[ⴰⵙⵙ ⴰ/ⴰⴷ ⴳ] LT',
+        'nextDay' => '[ⴰⵙⴽⴽⴰ ⴳ] LT',
+        'nextWeek' => 'dddd [ⴳ] LT',
+        'lastDay' => '[ⴰⵙⵙⵏⵏⴰⵟ ⴳ] LT',
+        'lastWeek' => 'dddd [ⴰⵎⴳⴳⴰⵔⵓ ⴳ] LT',
+        'sameElse' => 'L',
+    ],
+    'meridiem' => ['ⵜⵉⴼⴰⵡⵜ', 'ⵜⴰⴷⴳⴳⵯⴰⵜ'],
+    'months' => ['ⵉⵏⵏⴰⵢⵔ', 'ⴱⵕⴰⵢⵕ', 'ⵎⴰⵕⵚ', 'ⵉⴱⵔⵉⵔ', 'ⵎⴰⵢⵢⵓ', 'ⵢⵓⵏⵢⵓ', 'ⵢⵓⵍⵢⵓⵣ', 'ⵖⵓⵛⵜ', 'ⵛⵓⵜⴰⵏⴱⵉⵔ', 'ⴽⵟⵓⴱⵕ', 'ⵏⵓⵡⴰⵏⴱⵉⵔ', 'ⴷⵓⵊⴰⵏⴱⵉⵔ'],
+    'months_short' => ['ⵉⵏⵏ', 'ⴱⵕⴰ', 'ⵎⴰⵕ', 'ⵉⴱⵔ', 'ⵎⴰⵢ', 'ⵢⵓⵏ', 'ⵢⵓⵍ', 'ⵖⵓⵛ', 'ⵛⵓⵜ', 'ⴽⵟⵓ', 'ⵏⵓⵡ', 'ⴷⵓⵊ'],
+    'weekdays' => ['ⵓⵙⴰⵎⴰⵙ', 'ⵡⴰⵢⵏⴰⵙ', 'ⵓⵙⵉⵏⴰⵙ', 'ⵡⴰⴽⵕⴰⵙ', 'ⵓⴽⵡⴰⵙ', 'ⵓⵙⵉⵎⵡⴰⵙ', 'ⵓⵙⵉⴹⵢⴰⵙ'],
+    'weekdays_short' => ['ⵓⵙⴰ', 'ⵡⴰⵢ', 'ⵓⵙⵉ', 'ⵡⴰⴽ', 'ⵓⴽⵡ', 'ⵓⵙⵉⵎ', 'ⵓⵙⵉⴹ'],
+    'weekdays_min' => ['ⵓⵙⴰ', 'ⵡⴰⵢ', 'ⵓⵙⵉ', 'ⵡⴰⴽ', 'ⵓⴽⵡ', 'ⵓⵙⵉⵎ', 'ⵓⵙⵉⴹ'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 1,
+    'list' => [', ', ' ⴷ '],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh.php
new file mode 100644
index 0000000..1187c3d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - xuri
+ * - sycuato
+ * - bokideckonja
+ * - Luo Ning
+ * - William Yang (williamyang233)
+ */
+return array_merge(require __DIR__.'/zh_Hans.php', [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'YYYY/MM/DD',
+        'LL' => 'YYYY年M月D日',
+        'LLL' => 'YYYY年M月D日 A h点mm分',
+        'LLLL' => 'YYYY年M月D日dddd A h点mm分',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_CN.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_CN.php
new file mode 100644
index 0000000..9c05d5a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_CN.php
@@ -0,0 +1,33 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - monkeycon
+ * - François B
+ * - Jason Katz-Brown
+ * - Serhan Apaydın
+ * - Matt Johnson
+ * - JD Isaacks
+ * - Zeno Zeng
+ * - Chris Hemp
+ * - shankesgk2
+ */
+return array_merge(require __DIR__.'/zh.php', [
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'YYYY/MM/DD',
+        'LL' => 'YYYY年M月D日',
+        'LLL' => 'YYYY年M月D日Ah点mm分',
+        'LLLL' => 'YYYY年M月D日ddddAh点mm分',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_HK.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_HK.php
new file mode 100644
index 0000000..c3ee9fc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_HK.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+return require __DIR__.'/zh_Hant_HK.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans.php
new file mode 100644
index 0000000..9b91785
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans.php
@@ -0,0 +1,109 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - monkeycon
+ * - François B
+ * - Jason Katz-Brown
+ * - Konstantin Konev
+ * - Chris Lam
+ * - Serhan Apaydın
+ * - Gary Lo
+ * - JD Isaacks
+ * - Chris Hemp
+ * - shankesgk2
+ * - Daniel Cheung (danvim)
+ */
+return [
+    'year' => ':count:optional-space年',
+    'y' => ':count:optional-space年',
+    'month' => ':count:optional-space个月',
+    'm' => ':count:optional-space个月',
+    'week' => ':count:optional-space周',
+    'w' => ':count:optional-space周',
+    'day' => ':count:optional-space天',
+    'd' => ':count:optional-space天',
+    'hour' => ':count:optional-space小时',
+    'h' => ':count:optional-space小时',
+    'minute' => ':count:optional-space分钟',
+    'min' => ':count:optional-space分钟',
+    'second' => ':count:optional-space秒',
+    'a_second' => '{1}几秒|]1,Inf[:count:optional-space秒',
+    's' => ':count:optional-space秒',
+    'ago' => ':time前',
+    'from_now' => ':time后',
+    'after' => ':time后',
+    'before' => ':time前',
+    'diff_now' => '现在',
+    'diff_today' => '今天',
+    'diff_yesterday' => '昨天',
+    'diff_tomorrow' => '明天',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'YYYY/MM/DD',
+        'LL' => 'YYYY年M月D日',
+        'LLL' => 'YYYY年M月D日 HH:mm',
+        'LLLL' => 'YYYY年M月D日dddd HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[今天]LT',
+        'nextDay' => '[明天]LT',
+        'nextWeek' => '[下]ddddLT',
+        'lastDay' => '[昨天]LT',
+        'lastWeek' => '[上]ddddLT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number, $period) {
+        switch ($period) {
+            case 'd':
+            case 'D':
+            case 'DDD':
+                return $number.'日';
+            case 'M':
+                return $number.'月';
+            case 'w':
+            case 'W':
+                return $number.'周';
+            default:
+                return $number;
+        }
+    },
+    'meridiem' => function ($hour, $minute) {
+        $time = $hour * 100 + $minute;
+        if ($time < 600) {
+            return '凌晨';
+        }
+        if ($time < 900) {
+            return '早上';
+        }
+        if ($time < 1130) {
+            return '上午';
+        }
+        if ($time < 1230) {
+            return '中午';
+        }
+        if ($time < 1800) {
+            return '下午';
+        }
+
+        return '晚上';
+    },
+    'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
+    'months_short' => ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
+    'weekdays' => ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
+    'weekdays_short' => ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
+    'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => '',
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans_HK.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans_HK.php
new file mode 100644
index 0000000..007d071
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans_HK.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/zh_Hans.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans_MO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans_MO.php
new file mode 100644
index 0000000..007d071
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans_MO.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/zh_Hans.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans_SG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans_SG.php
new file mode 100644
index 0000000..007d071
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hans_SG.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/zh_Hans.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant.php
new file mode 100644
index 0000000..a27b610
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant.php
@@ -0,0 +1,111 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Adam
+ * - monkeycon
+ * - François B
+ * - Jason Katz-Brown
+ * - Chris Lam
+ * - Serhan Apaydın
+ * - Gary Lo
+ * - JD Isaacks
+ * - Chris Hemp
+ * - Eddie
+ * - KID
+ * - shankesgk2
+ * - Daniel Cheung (danvim)
+ */
+return [
+    'year' => ':count:optional-space年',
+    'y' => ':count:optional-space年',
+    'month' => ':count:optional-space個月',
+    'm' => ':count:optional-space月',
+    'week' => ':count:optional-space週',
+    'w' => ':count:optional-space週',
+    'day' => ':count:optional-space天',
+    'd' => ':count:optional-space天',
+    'hour' => ':count:optional-space小時',
+    'h' => ':count:optional-space小時',
+    'minute' => ':count:optional-space分鐘',
+    'min' => ':count:optional-space分鐘',
+    'second' => ':count:optional-space秒',
+    'a_second' => '{1}幾秒|]1,Inf[:count:optional-space秒',
+    's' => ':count:optional-space秒',
+    'ago' => ':time前',
+    'from_now' => ':time後',
+    'after' => ':time後',
+    'before' => ':time前',
+    'diff_now' => '現在',
+    'diff_today' => '今天',
+    'diff_yesterday' => '昨天',
+    'diff_tomorrow' => '明天',
+    'formats' => [
+        'LT' => 'HH:mm',
+        'LTS' => 'HH:mm:ss',
+        'L' => 'YYYY/MM/DD',
+        'LL' => 'YYYY年M月D日',
+        'LLL' => 'YYYY年M月D日 HH:mm',
+        'LLLL' => 'YYYY年M月D日dddd HH:mm',
+    ],
+    'calendar' => [
+        'sameDay' => '[今天] LT',
+        'nextDay' => '[明天] LT',
+        'nextWeek' => '[下]dddd LT',
+        'lastDay' => '[昨天] LT',
+        'lastWeek' => '[上]dddd LT',
+        'sameElse' => 'L',
+    ],
+    'ordinal' => function ($number, $period) {
+        switch ($period) {
+            case 'd':
+            case 'D':
+            case 'DDD':
+                return $number.'日';
+            case 'M':
+                return $number.'月';
+            case 'w':
+            case 'W':
+                return $number.'周';
+            default:
+                return $number;
+        }
+    },
+    'meridiem' => function ($hour, $minute) {
+        $time = $hour * 100 + $minute;
+        if ($time < 600) {
+            return '凌晨';
+        }
+        if ($time < 900) {
+            return '早上';
+        }
+        if ($time < 1130) {
+            return '上午';
+        }
+        if ($time < 1230) {
+            return '中午';
+        }
+        if ($time < 1800) {
+            return '下午';
+        }
+
+        return '晚上';
+    },
+    'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
+    'months_short' => ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
+    'weekdays' => ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
+    'weekdays_short' => ['週日', '週一', '週二', '週三', '週四', '週五', '週六'],
+    'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'],
+    'first_day_of_week' => 1,
+    'day_of_first_week_of_year' => 4,
+    'list' => '',
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant_HK.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant_HK.php
new file mode 100644
index 0000000..24797f9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant_HK.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/zh_Hant.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant_MO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant_MO.php
new file mode 100644
index 0000000..24797f9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant_MO.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/zh_Hant.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant_TW.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant_TW.php
new file mode 100644
index 0000000..24797f9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_Hant_TW.php
@@ -0,0 +1,11 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+return require __DIR__.'/zh_Hant.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_MO.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_MO.php
new file mode 100644
index 0000000..1c86d47
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_MO.php
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - tarunvelli
+ * - Eddie
+ * - KID
+ * - shankesgk2
+ */
+return array_replace_recursive(require __DIR__.'/zh_Hant.php', [
+    'after' => ':time后',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_SG.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_SG.php
new file mode 100644
index 0000000..c451a56
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_SG.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/zh.php', [
+    'formats' => [
+        'L' => 'YYYY年MM月DD日',
+    ],
+    'months' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
+    'months_short' => ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
+    'weekdays' => ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
+    'weekdays_short' => ['日', '一', '二', '三', '四', '五', '六'],
+    'weekdays_min' => ['日', '一', '二', '三', '四', '五', '六'],
+    'day_of_first_week_of_year' => 1,
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_TW.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_TW.php
new file mode 100644
index 0000000..c6789ed
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_TW.php
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+return require __DIR__.'/zh_Hant_TW.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_YUE.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_YUE.php
new file mode 100644
index 0000000..b0d9ba8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zh_YUE.php
@@ -0,0 +1,20 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - IBM Globalization Center of Competency, Yamato Software Laboratory    bug-glibc-locales@gnu.org
+ */
+return array_replace_recursive(require __DIR__.'/zh.php', [
+    'formats' => [
+        'L' => 'YYYY-MM-DD',
+    ],
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zu.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zu.php
new file mode 100644
index 0000000..9a6cce0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zu.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Unknown default region, use the first alphabetically.
+ */
+return require __DIR__.'/zu_ZA.php';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zu_ZA.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zu_ZA.php
new file mode 100644
index 0000000..6bfb72f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Lang/zu_ZA.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Authors:
+ * - Zuza Software Foundation (Translate.org.za) Dwayne Bailey dwayne@translate.org.za
+ */
+return array_replace_recursive(require __DIR__.'/en.php', [
+    'formats' => [
+        'L' => 'DD/MM/YYYY',
+    ],
+    'months' => ['Januwari', 'Februwari', 'Mashi', 'Ephreli', 'Meyi', 'Juni', 'Julayi', 'Agasti', 'Septhemba', 'Okthoba', 'Novemba', 'Disemba'],
+    'months_short' => ['Jan', 'Feb', 'Mas', 'Eph', 'Mey', 'Jun', 'Jul', 'Aga', 'Sep', 'Okt', 'Nov', 'Dis'],
+    'weekdays' => ['iSonto', 'uMsombuluko', 'uLwesibili', 'uLwesithathu', 'uLwesine', 'uLwesihlanu', 'uMgqibelo'],
+    'weekdays_short' => ['Son', 'Mso', 'Bil', 'Tha', 'Sin', 'Hla', 'Mgq'],
+    'weekdays_min' => ['Son', 'Mso', 'Bil', 'Tha', 'Sin', 'Hla', 'Mgq'],
+    'day_of_first_week_of_year' => 1,
+
+    'year' => 'kweminyaka engu-:count',
+    'y' => 'kweminyaka engu-:count',
+    'a_year' => 'kweminyaka engu-:count',
+
+    'month' => 'izinyanga ezingu-:count',
+    'm' => 'izinyanga ezingu-:count',
+    'a_month' => 'izinyanga ezingu-:count',
+
+    'week' => 'lwamasonto angu-:count',
+    'w' => 'lwamasonto angu-:count',
+    'a_week' => 'lwamasonto angu-:count',
+
+    'day' => 'ezingaba ngu-:count',
+    'd' => 'ezingaba ngu-:count',
+    'a_day' => 'ezingaba ngu-:count',
+
+    'hour' => 'amahora angu-:count',
+    'h' => 'amahora angu-:count',
+    'a_hour' => 'amahora angu-:count',
+
+    'minute' => 'ngemizuzu engu-:count',
+    'min' => 'ngemizuzu engu-:count',
+    'a_minute' => 'ngemizuzu engu-:count',
+
+    'second' => 'imizuzwana engu-:count',
+    's' => 'imizuzwana engu-:count',
+    'a_second' => 'imizuzwana engu-:count',
+]);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Language.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Language.php
new file mode 100644
index 0000000..3790285
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Language.php
@@ -0,0 +1,341 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon;
+
+use JsonSerializable;
+use ReturnTypeWillChange;
+
+class Language implements JsonSerializable
+{
+    /**
+     * @var array
+     */
+    protected static $languagesNames;
+
+    /**
+     * @var array
+     */
+    protected static $regionsNames;
+
+    /**
+     * @var string
+     */
+    protected $id;
+
+    /**
+     * @var string
+     */
+    protected $code;
+
+    /**
+     * @var string|null
+     */
+    protected $variant;
+
+    /**
+     * @var string|null
+     */
+    protected $region;
+
+    /**
+     * @var array
+     */
+    protected $names;
+
+    /**
+     * @var string
+     */
+    protected $isoName;
+
+    /**
+     * @var string
+     */
+    protected $nativeName;
+
+    public function __construct(string $id)
+    {
+        $this->id = str_replace('-', '_', $id);
+        $parts = explode('_', $this->id);
+        $this->code = $parts[0];
+
+        if (isset($parts[1])) {
+            if (!preg_match('/^[A-Z]+$/', $parts[1])) {
+                $this->variant = $parts[1];
+                $parts[1] = $parts[2] ?? null;
+            }
+            if ($parts[1]) {
+                $this->region = $parts[1];
+            }
+        }
+    }
+
+    /**
+     * Get the list of the known languages.
+     *
+     * @return array
+     */
+    public static function all()
+    {
+        if (!static::$languagesNames) {
+            static::$languagesNames = require __DIR__.'/List/languages.php';
+        }
+
+        return static::$languagesNames;
+    }
+
+    /**
+     * Get the list of the known regions.
+     *
+     * @return array
+     */
+    public static function regions()
+    {
+        if (!static::$regionsNames) {
+            static::$regionsNames = require __DIR__.'/List/regions.php';
+        }
+
+        return static::$regionsNames;
+    }
+
+    /**
+     * Get both isoName and nativeName as an array.
+     *
+     * @return array
+     */
+    public function getNames(): array
+    {
+        if (!$this->names) {
+            $this->names = static::all()[$this->code] ?? [
+                'isoName' => $this->code,
+                'nativeName' => $this->code,
+            ];
+        }
+
+        return $this->names;
+    }
+
+    /**
+     * Returns the original locale ID.
+     *
+     * @return string
+     */
+    public function getId(): string
+    {
+        return $this->id;
+    }
+
+    /**
+     * Returns the code of the locale "en"/"fr".
+     *
+     * @return string
+     */
+    public function getCode(): string
+    {
+        return $this->code;
+    }
+
+    /**
+     * Returns the variant code such as cyrl/latn.
+     *
+     * @return string|null
+     */
+    public function getVariant(): ?string
+    {
+        return $this->variant;
+    }
+
+    /**
+     * Returns the variant such as Cyrillic/Latin.
+     *
+     * @return string|null
+     */
+    public function getVariantName(): ?string
+    {
+        if ($this->variant === 'Latn') {
+            return 'Latin';
+        }
+
+        if ($this->variant === 'Cyrl') {
+            return 'Cyrillic';
+        }
+
+        return $this->variant;
+    }
+
+    /**
+     * Returns the region part of the locale.
+     *
+     * @return string|null
+     */
+    public function getRegion(): ?string
+    {
+        return $this->region;
+    }
+
+    /**
+     * Returns the region name for the current language.
+     *
+     * @return string|null
+     */
+    public function getRegionName(): ?string
+    {
+        return $this->region ? (static::regions()[$this->region] ?? $this->region) : null;
+    }
+
+    /**
+     * Returns the long ISO language name.
+     *
+     * @return string
+     */
+    public function getFullIsoName(): string
+    {
+        if (!$this->isoName) {
+            $this->isoName = $this->getNames()['isoName'];
+        }
+
+        return $this->isoName;
+    }
+
+    /**
+     * Set the ISO language name.
+     *
+     * @param string $isoName
+     */
+    public function setIsoName(string $isoName): self
+    {
+        $this->isoName = $isoName;
+
+        return $this;
+    }
+
+    /**
+     * Return the full name of the language in this language.
+     *
+     * @return string
+     */
+    public function getFullNativeName(): string
+    {
+        if (!$this->nativeName) {
+            $this->nativeName = $this->getNames()['nativeName'];
+        }
+
+        return $this->nativeName;
+    }
+
+    /**
+     * Set the name of the language in this language.
+     *
+     * @param string $nativeName
+     */
+    public function setNativeName(string $nativeName): self
+    {
+        $this->nativeName = $nativeName;
+
+        return $this;
+    }
+
+    /**
+     * Returns the short ISO language name.
+     *
+     * @return string
+     */
+    public function getIsoName(): string
+    {
+        $name = $this->getFullIsoName();
+
+        return trim(strstr($name, ',', true) ?: $name);
+    }
+
+    /**
+     * Get the short name of the language in this language.
+     *
+     * @return string
+     */
+    public function getNativeName(): string
+    {
+        $name = $this->getFullNativeName();
+
+        return trim(strstr($name, ',', true) ?: $name);
+    }
+
+    /**
+     * Get a string with short ISO name, region in parentheses if applicable, variant in parentheses if applicable.
+     *
+     * @return string
+     */
+    public function getIsoDescription()
+    {
+        $region = $this->getRegionName();
+        $variant = $this->getVariantName();
+
+        return $this->getIsoName().($region ? ' ('.$region.')' : '').($variant ? ' ('.$variant.')' : '');
+    }
+
+    /**
+     * Get a string with short native name, region in parentheses if applicable, variant in parentheses if applicable.
+     *
+     * @return string
+     */
+    public function getNativeDescription()
+    {
+        $region = $this->getRegionName();
+        $variant = $this->getVariantName();
+
+        return $this->getNativeName().($region ? ' ('.$region.')' : '').($variant ? ' ('.$variant.')' : '');
+    }
+
+    /**
+     * Get a string with long ISO name, region in parentheses if applicable, variant in parentheses if applicable.
+     *
+     * @return string
+     */
+    public function getFullIsoDescription()
+    {
+        $region = $this->getRegionName();
+        $variant = $this->getVariantName();
+
+        return $this->getFullIsoName().($region ? ' ('.$region.')' : '').($variant ? ' ('.$variant.')' : '');
+    }
+
+    /**
+     * Get a string with long native name, region in parentheses if applicable, variant in parentheses if applicable.
+     *
+     * @return string
+     */
+    public function getFullNativeDescription()
+    {
+        $region = $this->getRegionName();
+        $variant = $this->getVariantName();
+
+        return $this->getFullNativeName().($region ? ' ('.$region.')' : '').($variant ? ' ('.$variant.')' : '');
+    }
+
+    /**
+     * Returns the original locale ID.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return $this->getId();
+    }
+
+    /**
+     * Get a string with short ISO name, region in parentheses if applicable, variant in parentheses if applicable.
+     *
+     * @return string
+     */
+    #[ReturnTypeWillChange]
+    public function jsonSerialize()
+    {
+        return $this->getIsoDescription();
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Laravel/ServiceProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Laravel/ServiceProvider.php
new file mode 100644
index 0000000..d71c888
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Laravel/ServiceProvider.php
@@ -0,0 +1,70 @@
+<?php
+
+namespace Carbon\Laravel;
+
+use Carbon\Carbon;
+use Carbon\CarbonImmutable;
+use Carbon\CarbonInterval;
+use Carbon\CarbonPeriod;
+use Illuminate\Contracts\Events\Dispatcher as DispatcherContract;
+use Illuminate\Events\Dispatcher;
+use Illuminate\Events\EventDispatcher;
+use Illuminate\Support\Carbon as IlluminateCarbon;
+use Illuminate\Support\Facades\Date;
+use Throwable;
+
+class ServiceProvider extends \Illuminate\Support\ServiceProvider
+{
+    public function boot()
+    {
+        $this->updateLocale();
+
+        if (!$this->app->bound('events')) {
+            return;
+        }
+
+        $service = $this;
+        $events = $this->app['events'];
+
+        if ($this->isEventDispatcher($events)) {
+            $events->listen(class_exists('Illuminate\Foundation\Events\LocaleUpdated') ? 'Illuminate\Foundation\Events\LocaleUpdated' : 'locale.changed', function () use ($service) {
+                $service->updateLocale();
+            });
+        }
+    }
+
+    public function updateLocale()
+    {
+        $app = $this->app && method_exists($this->app, 'getLocale') ? $this->app : app('translator');
+        $locale = $app->getLocale();
+        Carbon::setLocale($locale);
+        CarbonImmutable::setLocale($locale);
+        CarbonPeriod::setLocale($locale);
+        CarbonInterval::setLocale($locale);
+
+        if (class_exists(IlluminateCarbon::class)) {
+            IlluminateCarbon::setLocale($locale);
+        }
+
+        if (class_exists(Date::class)) {
+            try {
+                $root = Date::getFacadeRoot();
+                $root->setLocale($locale);
+            } catch (Throwable $e) {
+                // Non Carbon class in use in Date facade
+            }
+        }
+    }
+
+    public function register()
+    {
+        // Needed for Laravel < 5.3 compatibility
+    }
+
+    protected function isEventDispatcher($instance)
+    {
+        return $instance instanceof EventDispatcher
+            || $instance instanceof Dispatcher
+            || $instance instanceof DispatcherContract;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/List/languages.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/List/languages.php
new file mode 100644
index 0000000..5b5d9a1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/List/languages.php
@@ -0,0 +1,1239 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+return [
+    /*
+     * ISO 639-2
+     */
+    'ab' => [
+        'isoName' => 'Abkhazian',
+        'nativeName' => 'аҧсуа бызшәа, аҧсшәа',
+    ],
+    'aa' => [
+        'isoName' => 'Afar',
+        'nativeName' => 'Afaraf',
+    ],
+    'af' => [
+        'isoName' => 'Afrikaans',
+        'nativeName' => 'Afrikaans',
+    ],
+    'ak' => [
+        'isoName' => 'Akan',
+        'nativeName' => 'Akan',
+    ],
+    'sq' => [
+        'isoName' => 'Albanian',
+        'nativeName' => 'Shqip',
+    ],
+    'am' => [
+        'isoName' => 'Amharic',
+        'nativeName' => 'አማርኛ',
+    ],
+    'ar' => [
+        'isoName' => 'Arabic',
+        'nativeName' => 'العربية',
+    ],
+    'an' => [
+        'isoName' => 'Aragonese',
+        'nativeName' => 'aragonés',
+    ],
+    'hy' => [
+        'isoName' => 'Armenian',
+        'nativeName' => 'Հայերեն',
+    ],
+    'as' => [
+        'isoName' => 'Assamese',
+        'nativeName' => 'অসমীয়া',
+    ],
+    'av' => [
+        'isoName' => 'Avaric',
+        'nativeName' => 'авар мацӀ, магӀарул мацӀ',
+    ],
+    'ae' => [
+        'isoName' => 'Avestan',
+        'nativeName' => 'avesta',
+    ],
+    'ay' => [
+        'isoName' => 'Aymara',
+        'nativeName' => 'aymar aru',
+    ],
+    'az' => [
+        'isoName' => 'Azerbaijani',
+        'nativeName' => 'azərbaycan dili',
+    ],
+    'bm' => [
+        'isoName' => 'Bambara',
+        'nativeName' => 'bamanankan',
+    ],
+    'ba' => [
+        'isoName' => 'Bashkir',
+        'nativeName' => 'башҡорт теле',
+    ],
+    'eu' => [
+        'isoName' => 'Basque',
+        'nativeName' => 'euskara, euskera',
+    ],
+    'be' => [
+        'isoName' => 'Belarusian',
+        'nativeName' => 'беларуская мова',
+    ],
+    'bn' => [
+        'isoName' => 'Bengali',
+        'nativeName' => 'বাংলা',
+    ],
+    'bh' => [
+        'isoName' => 'Bihari languages',
+        'nativeName' => 'भोजपुरी',
+    ],
+    'bi' => [
+        'isoName' => 'Bislama',
+        'nativeName' => 'Bislama',
+    ],
+    'bs' => [
+        'isoName' => 'Bosnian',
+        'nativeName' => 'bosanski jezik',
+    ],
+    'br' => [
+        'isoName' => 'Breton',
+        'nativeName' => 'brezhoneg',
+    ],
+    'bg' => [
+        'isoName' => 'Bulgarian',
+        'nativeName' => 'български език',
+    ],
+    'my' => [
+        'isoName' => 'Burmese',
+        'nativeName' => 'ဗမာစာ',
+    ],
+    'ca' => [
+        'isoName' => 'Catalan, Valencian',
+        'nativeName' => 'català, valencià',
+    ],
+    'ch' => [
+        'isoName' => 'Chamorro',
+        'nativeName' => 'Chamoru',
+    ],
+    'ce' => [
+        'isoName' => 'Chechen',
+        'nativeName' => 'нохчийн мотт',
+    ],
+    'ny' => [
+        'isoName' => 'Chichewa, Chewa, Nyanja',
+        'nativeName' => 'chiCheŵa, chinyanja',
+    ],
+    'zh' => [
+        'isoName' => 'Chinese',
+        'nativeName' => '中文 (Zhōngwén), 汉语, 漢語',
+    ],
+    'cv' => [
+        'isoName' => 'Chuvash',
+        'nativeName' => 'чӑваш чӗлхи',
+    ],
+    'kw' => [
+        'isoName' => 'Cornish',
+        'nativeName' => 'Kernewek',
+    ],
+    'co' => [
+        'isoName' => 'Corsican',
+        'nativeName' => 'corsu, lingua corsa',
+    ],
+    'cr' => [
+        'isoName' => 'Cree',
+        'nativeName' => 'ᓀᐦᐃᔭᐍᐏᐣ',
+    ],
+    'hr' => [
+        'isoName' => 'Croatian',
+        'nativeName' => 'hrvatski jezik',
+    ],
+    'cs' => [
+        'isoName' => 'Czech',
+        'nativeName' => 'čeština, český jazyk',
+    ],
+    'da' => [
+        'isoName' => 'Danish',
+        'nativeName' => 'dansk',
+    ],
+    'dv' => [
+        'isoName' => 'Divehi, Dhivehi, Maldivian',
+        'nativeName' => 'ދިވެހި',
+    ],
+    'nl' => [
+        'isoName' => 'Dutch, Flemish',
+        'nativeName' => 'Nederlands, Vlaams',
+    ],
+    'dz' => [
+        'isoName' => 'Dzongkha',
+        'nativeName' => 'རྫོང་ཁ',
+    ],
+    'en' => [
+        'isoName' => 'English',
+        'nativeName' => 'English',
+    ],
+    'eo' => [
+        'isoName' => 'Esperanto',
+        'nativeName' => 'Esperanto',
+    ],
+    'et' => [
+        'isoName' => 'Estonian',
+        'nativeName' => 'eesti, eesti keel',
+    ],
+    'ee' => [
+        'isoName' => 'Ewe',
+        'nativeName' => 'Eʋegbe',
+    ],
+    'fo' => [
+        'isoName' => 'Faroese',
+        'nativeName' => 'føroyskt',
+    ],
+    'fj' => [
+        'isoName' => 'Fijian',
+        'nativeName' => 'vosa Vakaviti',
+    ],
+    'fi' => [
+        'isoName' => 'Finnish',
+        'nativeName' => 'suomi, suomen kieli',
+    ],
+    'fr' => [
+        'isoName' => 'French',
+        'nativeName' => 'français',
+    ],
+    'ff' => [
+        'isoName' => 'Fulah',
+        'nativeName' => 'Fulfulde, Pulaar, Pular',
+    ],
+    'gl' => [
+        'isoName' => 'Galician',
+        'nativeName' => 'Galego',
+    ],
+    'ka' => [
+        'isoName' => 'Georgian',
+        'nativeName' => 'ქართული',
+    ],
+    'de' => [
+        'isoName' => 'German',
+        'nativeName' => 'Deutsch',
+    ],
+    'el' => [
+        'isoName' => 'Greek (modern)',
+        'nativeName' => 'ελληνικά',
+    ],
+    'gn' => [
+        'isoName' => 'Guaraní',
+        'nativeName' => 'Avañe\'ẽ',
+    ],
+    'gu' => [
+        'isoName' => 'Gujarati',
+        'nativeName' => 'ગુજરાતી',
+    ],
+    'ht' => [
+        'isoName' => 'Haitian, Haitian Creole',
+        'nativeName' => 'Kreyòl ayisyen',
+    ],
+    'ha' => [
+        'isoName' => 'Hausa',
+        'nativeName' => '(Hausa) هَوُسَ',
+    ],
+    'he' => [
+        'isoName' => 'Hebrew (modern)',
+        'nativeName' => 'עברית',
+    ],
+    'hz' => [
+        'isoName' => 'Herero',
+        'nativeName' => 'Otjiherero',
+    ],
+    'hi' => [
+        'isoName' => 'Hindi',
+        'nativeName' => 'हिन्दी, हिंदी',
+    ],
+    'ho' => [
+        'isoName' => 'Hiri Motu',
+        'nativeName' => 'Hiri Motu',
+    ],
+    'hu' => [
+        'isoName' => 'Hungarian',
+        'nativeName' => 'magyar',
+    ],
+    'ia' => [
+        'isoName' => 'Interlingua',
+        'nativeName' => 'Interlingua',
+    ],
+    'id' => [
+        'isoName' => 'Indonesian',
+        'nativeName' => 'Bahasa Indonesia',
+    ],
+    'ie' => [
+        'isoName' => 'Interlingue',
+        'nativeName' => 'Originally called Occidental; then Interlingue after WWII',
+    ],
+    'ga' => [
+        'isoName' => 'Irish',
+        'nativeName' => 'Gaeilge',
+    ],
+    'ig' => [
+        'isoName' => 'Igbo',
+        'nativeName' => 'Asụsụ Igbo',
+    ],
+    'ik' => [
+        'isoName' => 'Inupiaq',
+        'nativeName' => 'Iñupiaq, Iñupiatun',
+    ],
+    'io' => [
+        'isoName' => 'Ido',
+        'nativeName' => 'Ido',
+    ],
+    'is' => [
+        'isoName' => 'Icelandic',
+        'nativeName' => 'Íslenska',
+    ],
+    'it' => [
+        'isoName' => 'Italian',
+        'nativeName' => 'Italiano',
+    ],
+    'iu' => [
+        'isoName' => 'Inuktitut',
+        'nativeName' => 'ᐃᓄᒃᑎᑐᑦ',
+    ],
+    'ja' => [
+        'isoName' => 'Japanese',
+        'nativeName' => '日本語 (にほんご)',
+    ],
+    'jv' => [
+        'isoName' => 'Javanese',
+        'nativeName' => 'ꦧꦱꦗꦮ, Basa Jawa',
+    ],
+    'kl' => [
+        'isoName' => 'Kalaallisut, Greenlandic',
+        'nativeName' => 'kalaallisut, kalaallit oqaasii',
+    ],
+    'kn' => [
+        'isoName' => 'Kannada',
+        'nativeName' => 'ಕನ್ನಡ',
+    ],
+    'kr' => [
+        'isoName' => 'Kanuri',
+        'nativeName' => 'Kanuri',
+    ],
+    'ks' => [
+        'isoName' => 'Kashmiri',
+        'nativeName' => 'कश्मीरी, كشميري‎',
+    ],
+    'kk' => [
+        'isoName' => 'Kazakh',
+        'nativeName' => 'қазақ тілі',
+    ],
+    'km' => [
+        'isoName' => 'Central Khmer',
+        'nativeName' => 'ខ្មែរ, ខេមរភាសា, ភាសាខ្មែរ',
+    ],
+    'ki' => [
+        'isoName' => 'Kikuyu, Gikuyu',
+        'nativeName' => 'Gĩkũyũ',
+    ],
+    'rw' => [
+        'isoName' => 'Kinyarwanda',
+        'nativeName' => 'Ikinyarwanda',
+    ],
+    'ky' => [
+        'isoName' => 'Kirghiz, Kyrgyz',
+        'nativeName' => 'Кыргызча, Кыргыз тили',
+    ],
+    'kv' => [
+        'isoName' => 'Komi',
+        'nativeName' => 'коми кыв',
+    ],
+    'kg' => [
+        'isoName' => 'Kongo',
+        'nativeName' => 'Kikongo',
+    ],
+    'ko' => [
+        'isoName' => 'Korean',
+        'nativeName' => '한국어',
+    ],
+    'ku' => [
+        'isoName' => 'Kurdish',
+        'nativeName' => 'Kurdî, کوردی‎',
+    ],
+    'kj' => [
+        'isoName' => 'Kuanyama, Kwanyama',
+        'nativeName' => 'Kuanyama',
+    ],
+    'la' => [
+        'isoName' => 'Latin',
+        'nativeName' => 'latine, lingua latina',
+    ],
+    'lb' => [
+        'isoName' => 'Luxembourgish, Letzeburgesch',
+        'nativeName' => 'Lëtzebuergesch',
+    ],
+    'lg' => [
+        'isoName' => 'Ganda',
+        'nativeName' => 'Luganda',
+    ],
+    'li' => [
+        'isoName' => 'Limburgan, Limburger, Limburgish',
+        'nativeName' => 'Limburgs',
+    ],
+    'ln' => [
+        'isoName' => 'Lingala',
+        'nativeName' => 'Lingála',
+    ],
+    'lo' => [
+        'isoName' => 'Lao',
+        'nativeName' => 'ພາສາລາວ',
+    ],
+    'lt' => [
+        'isoName' => 'Lithuanian',
+        'nativeName' => 'lietuvių kalba',
+    ],
+    'lu' => [
+        'isoName' => 'Luba-Katanga',
+        'nativeName' => 'Kiluba',
+    ],
+    'lv' => [
+        'isoName' => 'Latvian',
+        'nativeName' => 'latviešu valoda',
+    ],
+    'gv' => [
+        'isoName' => 'Manx',
+        'nativeName' => 'Gaelg, Gailck',
+    ],
+    'mk' => [
+        'isoName' => 'Macedonian',
+        'nativeName' => 'македонски јазик',
+    ],
+    'mg' => [
+        'isoName' => 'Malagasy',
+        'nativeName' => 'fiteny malagasy',
+    ],
+    'ms' => [
+        'isoName' => 'Malay',
+        'nativeName' => 'Bahasa Melayu, بهاس ملايو‎',
+    ],
+    'ml' => [
+        'isoName' => 'Malayalam',
+        'nativeName' => 'മലയാളം',
+    ],
+    'mt' => [
+        'isoName' => 'Maltese',
+        'nativeName' => 'Malti',
+    ],
+    'mi' => [
+        'isoName' => 'Maori',
+        'nativeName' => 'te reo Māori',
+    ],
+    'mr' => [
+        'isoName' => 'Marathi',
+        'nativeName' => 'मराठी',
+    ],
+    'mh' => [
+        'isoName' => 'Marshallese',
+        'nativeName' => 'Kajin M̧ajeļ',
+    ],
+    'mn' => [
+        'isoName' => 'Mongolian',
+        'nativeName' => 'Монгол хэл',
+    ],
+    'na' => [
+        'isoName' => 'Nauru',
+        'nativeName' => 'Dorerin Naoero',
+    ],
+    'nv' => [
+        'isoName' => 'Navajo, Navaho',
+        'nativeName' => 'Diné bizaad',
+    ],
+    'nd' => [
+        'isoName' => 'North Ndebele',
+        'nativeName' => 'isiNdebele',
+    ],
+    'ne' => [
+        'isoName' => 'Nepali',
+        'nativeName' => 'नेपाली',
+    ],
+    'ng' => [
+        'isoName' => 'Ndonga',
+        'nativeName' => 'Owambo',
+    ],
+    'nb' => [
+        'isoName' => 'Norwegian Bokmål',
+        'nativeName' => 'Norsk Bokmål',
+    ],
+    'nn' => [
+        'isoName' => 'Norwegian Nynorsk',
+        'nativeName' => 'Norsk Nynorsk',
+    ],
+    'no' => [
+        'isoName' => 'Norwegian',
+        'nativeName' => 'Norsk',
+    ],
+    'ii' => [
+        'isoName' => 'Sichuan Yi, Nuosu',
+        'nativeName' => 'ꆈꌠ꒿ Nuosuhxop',
+    ],
+    'nr' => [
+        'isoName' => 'South Ndebele',
+        'nativeName' => 'isiNdebele',
+    ],
+    'oc' => [
+        'isoName' => 'Occitan',
+        'nativeName' => 'occitan, lenga d\'òc',
+    ],
+    'oj' => [
+        'isoName' => 'Ojibwa',
+        'nativeName' => 'ᐊᓂᔑᓈᐯᒧᐎᓐ',
+    ],
+    'cu' => [
+        'isoName' => 'Church Slavic, Church Slavonic, Old Church Slavonic, Old Slavonic, Old Bulgarian',
+        'nativeName' => 'ѩзыкъ словѣньскъ',
+    ],
+    'om' => [
+        'isoName' => 'Oromo',
+        'nativeName' => 'Afaan Oromoo',
+    ],
+    'or' => [
+        'isoName' => 'Oriya',
+        'nativeName' => 'ଓଡ଼ିଆ',
+    ],
+    'os' => [
+        'isoName' => 'Ossetian, Ossetic',
+        'nativeName' => 'ирон æвзаг',
+    ],
+    'pa' => [
+        'isoName' => 'Panjabi, Punjabi',
+        'nativeName' => 'ਪੰਜਾਬੀ',
+    ],
+    'pi' => [
+        'isoName' => 'Pali',
+        'nativeName' => 'पाऴि',
+    ],
+    'fa' => [
+        'isoName' => 'Persian',
+        'nativeName' => 'فارسی',
+    ],
+    'pl' => [
+        'isoName' => 'Polish',
+        'nativeName' => 'język polski, polszczyzna',
+    ],
+    'ps' => [
+        'isoName' => 'Pashto, Pushto',
+        'nativeName' => 'پښتو',
+    ],
+    'pt' => [
+        'isoName' => 'Portuguese',
+        'nativeName' => 'Português',
+    ],
+    'qu' => [
+        'isoName' => 'Quechua',
+        'nativeName' => 'Runa Simi, Kichwa',
+    ],
+    'rm' => [
+        'isoName' => 'Romansh',
+        'nativeName' => 'Rumantsch Grischun',
+    ],
+    'rn' => [
+        'isoName' => 'Rundi',
+        'nativeName' => 'Ikirundi',
+    ],
+    'ro' => [
+        'isoName' => 'Romanian, Moldavian, Moldovan',
+        'nativeName' => 'Română',
+    ],
+    'ru' => [
+        'isoName' => 'Russian',
+        'nativeName' => 'русский',
+    ],
+    'sa' => [
+        'isoName' => 'Sanskrit',
+        'nativeName' => 'संस्कृतम्',
+    ],
+    'sc' => [
+        'isoName' => 'Sardinian',
+        'nativeName' => 'sardu',
+    ],
+    'sd' => [
+        'isoName' => 'Sindhi',
+        'nativeName' => 'सिन्धी, سنڌي، سندھی‎',
+    ],
+    'se' => [
+        'isoName' => 'Northern Sami',
+        'nativeName' => 'Davvisámegiella',
+    ],
+    'sm' => [
+        'isoName' => 'Samoan',
+        'nativeName' => 'gagana fa\'a Samoa',
+    ],
+    'sg' => [
+        'isoName' => 'Sango',
+        'nativeName' => 'yângâ tî sängö',
+    ],
+    'sr' => [
+        'isoName' => 'Serbian',
+        'nativeName' => 'српски језик',
+    ],
+    'gd' => [
+        'isoName' => 'Gaelic, Scottish Gaelic',
+        'nativeName' => 'Gàidhlig',
+    ],
+    'sn' => [
+        'isoName' => 'Shona',
+        'nativeName' => 'chiShona',
+    ],
+    'si' => [
+        'isoName' => 'Sinhala, Sinhalese',
+        'nativeName' => 'සිංහල',
+    ],
+    'sk' => [
+        'isoName' => 'Slovak',
+        'nativeName' => 'Slovenčina, Slovenský Jazyk',
+    ],
+    'sl' => [
+        'isoName' => 'Slovene',
+        'nativeName' => 'Slovenski Jezik, Slovenščina',
+    ],
+    'so' => [
+        'isoName' => 'Somali',
+        'nativeName' => 'Soomaaliga, af Soomaali',
+    ],
+    'st' => [
+        'isoName' => 'Southern Sotho',
+        'nativeName' => 'Sesotho',
+    ],
+    'es' => [
+        'isoName' => 'Spanish, Castilian',
+        'nativeName' => 'Español',
+    ],
+    'su' => [
+        'isoName' => 'Sundanese',
+        'nativeName' => 'Basa Sunda',
+    ],
+    'sw' => [
+        'isoName' => 'Swahili',
+        'nativeName' => 'Kiswahili',
+    ],
+    'ss' => [
+        'isoName' => 'Swati',
+        'nativeName' => 'SiSwati',
+    ],
+    'sv' => [
+        'isoName' => 'Swedish',
+        'nativeName' => 'Svenska',
+    ],
+    'ta' => [
+        'isoName' => 'Tamil',
+        'nativeName' => 'தமிழ்',
+    ],
+    'te' => [
+        'isoName' => 'Telugu',
+        'nativeName' => 'తెలుగు',
+    ],
+    'tg' => [
+        'isoName' => 'Tajik',
+        'nativeName' => 'тоҷикӣ, toçikī, تاجیکی‎',
+    ],
+    'th' => [
+        'isoName' => 'Thai',
+        'nativeName' => 'ไทย',
+    ],
+    'ti' => [
+        'isoName' => 'Tigrinya',
+        'nativeName' => 'ትግርኛ',
+    ],
+    'bo' => [
+        'isoName' => 'Tibetan',
+        'nativeName' => 'བོད་ཡིག',
+    ],
+    'tk' => [
+        'isoName' => 'Turkmen',
+        'nativeName' => 'Türkmen, Түркмен',
+    ],
+    'tl' => [
+        'isoName' => 'Tagalog',
+        'nativeName' => 'Wikang Tagalog',
+    ],
+    'tn' => [
+        'isoName' => 'Tswana',
+        'nativeName' => 'Setswana',
+    ],
+    'to' => [
+        'isoName' => 'Tongan (Tonga Islands)',
+        'nativeName' => 'Faka Tonga',
+    ],
+    'tr' => [
+        'isoName' => 'Turkish',
+        'nativeName' => 'Türkçe',
+    ],
+    'ts' => [
+        'isoName' => 'Tsonga',
+        'nativeName' => 'Xitsonga',
+    ],
+    'tt' => [
+        'isoName' => 'Tatar',
+        'nativeName' => 'татар теле, tatar tele',
+    ],
+    'tw' => [
+        'isoName' => 'Twi',
+        'nativeName' => 'Twi',
+    ],
+    'ty' => [
+        'isoName' => 'Tahitian',
+        'nativeName' => 'Reo Tahiti',
+    ],
+    'ug' => [
+        'isoName' => 'Uighur, Uyghur',
+        'nativeName' => 'Uyƣurqə, ‫ئۇيغۇرچ',
+    ],
+    'uk' => [
+        'isoName' => 'Ukrainian',
+        'nativeName' => 'Українська',
+    ],
+    'ur' => [
+        'isoName' => 'Urdu',
+        'nativeName' => 'اردو',
+    ],
+    'uz' => [
+        'isoName' => 'Uzbek',
+        'nativeName' => 'Oʻzbek, Ўзбек, أۇزبېك‎',
+    ],
+    've' => [
+        'isoName' => 'Venda',
+        'nativeName' => 'Tshivenḓa',
+    ],
+    'vi' => [
+        'isoName' => 'Vietnamese',
+        'nativeName' => 'Tiếng Việt',
+    ],
+    'vo' => [
+        'isoName' => 'Volapük',
+        'nativeName' => 'Volapük',
+    ],
+    'wa' => [
+        'isoName' => 'Walloon',
+        'nativeName' => 'Walon',
+    ],
+    'cy' => [
+        'isoName' => 'Welsh',
+        'nativeName' => 'Cymraeg',
+    ],
+    'wo' => [
+        'isoName' => 'Wolof',
+        'nativeName' => 'Wollof',
+    ],
+    'fy' => [
+        'isoName' => 'Western Frisian',
+        'nativeName' => 'Frysk',
+    ],
+    'xh' => [
+        'isoName' => 'Xhosa',
+        'nativeName' => 'isiXhosa',
+    ],
+    'yi' => [
+        'isoName' => 'Yiddish',
+        'nativeName' => 'ייִדיש',
+    ],
+    'yo' => [
+        'isoName' => 'Yoruba',
+        'nativeName' => 'Yorùbá',
+    ],
+    'za' => [
+        'isoName' => 'Zhuang, Chuang',
+        'nativeName' => 'Saɯ cueŋƅ, Saw cuengh',
+    ],
+    'zu' => [
+        'isoName' => 'Zulu',
+        'nativeName' => 'isiZulu',
+    ],
+    /*
+     * Add ISO 639-3 languages available in Carbon
+     */
+    'agq' => [
+        'isoName' => 'Aghem',
+        'nativeName' => 'Aghem',
+    ],
+    'agr' => [
+        'isoName' => 'Aguaruna',
+        'nativeName' => 'Aguaruna',
+    ],
+    'anp' => [
+        'isoName' => 'Angika',
+        'nativeName' => 'Angika',
+    ],
+    'asa' => [
+        'isoName' => 'Asu',
+        'nativeName' => 'Asu',
+    ],
+    'ast' => [
+        'isoName' => 'Asturian',
+        'nativeName' => 'Asturian',
+    ],
+    'ayc' => [
+        'isoName' => 'Southern Aymara',
+        'nativeName' => 'Southern Aymara',
+    ],
+    'bas' => [
+        'isoName' => 'Basaa',
+        'nativeName' => 'Basaa',
+    ],
+    'bem' => [
+        'isoName' => 'Bemba',
+        'nativeName' => 'Bemba',
+    ],
+    'bez' => [
+        'isoName' => 'Bena',
+        'nativeName' => 'Bena',
+    ],
+    'bhb' => [
+        'isoName' => 'Bhili',
+        'nativeName' => 'Bhili',
+    ],
+    'bho' => [
+        'isoName' => 'Bhojpuri',
+        'nativeName' => 'Bhojpuri',
+    ],
+    'brx' => [
+        'isoName' => 'Bodo',
+        'nativeName' => 'Bodo',
+    ],
+    'byn' => [
+        'isoName' => 'Bilin',
+        'nativeName' => 'Bilin',
+    ],
+    'ccp' => [
+        'isoName' => 'Chakma',
+        'nativeName' => 'Chakma',
+    ],
+    'cgg' => [
+        'isoName' => 'Chiga',
+        'nativeName' => 'Chiga',
+    ],
+    'chr' => [
+        'isoName' => 'Cherokee',
+        'nativeName' => 'Cherokee',
+    ],
+    'cmn' => [
+        'isoName' => 'Chinese',
+        'nativeName' => 'Chinese',
+    ],
+    'crh' => [
+        'isoName' => 'Crimean Turkish',
+        'nativeName' => 'Crimean Turkish',
+    ],
+    'csb' => [
+        'isoName' => 'Kashubian',
+        'nativeName' => 'Kashubian',
+    ],
+    'dav' => [
+        'isoName' => 'Taita',
+        'nativeName' => 'Taita',
+    ],
+    'dje' => [
+        'isoName' => 'Zarma',
+        'nativeName' => 'Zarma',
+    ],
+    'doi' => [
+        'isoName' => 'Dogri (macrolanguage)',
+        'nativeName' => 'Dogri (macrolanguage)',
+    ],
+    'dsb' => [
+        'isoName' => 'Lower Sorbian',
+        'nativeName' => 'Lower Sorbian',
+    ],
+    'dua' => [
+        'isoName' => 'Duala',
+        'nativeName' => 'Duala',
+    ],
+    'dyo' => [
+        'isoName' => 'Jola-Fonyi',
+        'nativeName' => 'Jola-Fonyi',
+    ],
+    'ebu' => [
+        'isoName' => 'Embu',
+        'nativeName' => 'Embu',
+    ],
+    'ewo' => [
+        'isoName' => 'Ewondo',
+        'nativeName' => 'Ewondo',
+    ],
+    'fil' => [
+        'isoName' => 'Filipino',
+        'nativeName' => 'Filipino',
+    ],
+    'fur' => [
+        'isoName' => 'Friulian',
+        'nativeName' => 'Friulian',
+    ],
+    'gez' => [
+        'isoName' => 'Geez',
+        'nativeName' => 'Geez',
+    ],
+    'gom' => [
+        'isoName' => 'Konkani, Goan',
+        'nativeName' => 'ಕೊಂಕಣಿ',
+    ],
+    'gsw' => [
+        'isoName' => 'Swiss German',
+        'nativeName' => 'Swiss German',
+    ],
+    'guz' => [
+        'isoName' => 'Gusii',
+        'nativeName' => 'Gusii',
+    ],
+    'hak' => [
+        'isoName' => 'Hakka Chinese',
+        'nativeName' => 'Hakka Chinese',
+    ],
+    'haw' => [
+        'isoName' => 'Hawaiian',
+        'nativeName' => 'Hawaiian',
+    ],
+    'hif' => [
+        'isoName' => 'Fiji Hindi',
+        'nativeName' => 'Fiji Hindi',
+    ],
+    'hne' => [
+        'isoName' => 'Chhattisgarhi',
+        'nativeName' => 'Chhattisgarhi',
+    ],
+    'hsb' => [
+        'isoName' => 'Upper Sorbian',
+        'nativeName' => 'Upper Sorbian',
+    ],
+    'jgo' => [
+        'isoName' => 'Ngomba',
+        'nativeName' => 'Ngomba',
+    ],
+    'jmc' => [
+        'isoName' => 'Machame',
+        'nativeName' => 'Machame',
+    ],
+    'kab' => [
+        'isoName' => 'Kabyle',
+        'nativeName' => 'Kabyle',
+    ],
+    'kam' => [
+        'isoName' => 'Kamba',
+        'nativeName' => 'Kamba',
+    ],
+    'kde' => [
+        'isoName' => 'Makonde',
+        'nativeName' => 'Makonde',
+    ],
+    'kea' => [
+        'isoName' => 'Kabuverdianu',
+        'nativeName' => 'Kabuverdianu',
+    ],
+    'khq' => [
+        'isoName' => 'Koyra Chiini',
+        'nativeName' => 'Koyra Chiini',
+    ],
+    'kkj' => [
+        'isoName' => 'Kako',
+        'nativeName' => 'Kako',
+    ],
+    'kln' => [
+        'isoName' => 'Kalenjin',
+        'nativeName' => 'Kalenjin',
+    ],
+    'kok' => [
+        'isoName' => 'Konkani',
+        'nativeName' => 'Konkani',
+    ],
+    'ksb' => [
+        'isoName' => 'Shambala',
+        'nativeName' => 'Shambala',
+    ],
+    'ksf' => [
+        'isoName' => 'Bafia',
+        'nativeName' => 'Bafia',
+    ],
+    'ksh' => [
+        'isoName' => 'Colognian',
+        'nativeName' => 'Colognian',
+    ],
+    'lag' => [
+        'isoName' => 'Langi',
+        'nativeName' => 'Langi',
+    ],
+    'lij' => [
+        'isoName' => 'Ligurian',
+        'nativeName' => 'Ligurian',
+    ],
+    'lkt' => [
+        'isoName' => 'Lakota',
+        'nativeName' => 'Lakota',
+    ],
+    'lrc' => [
+        'isoName' => 'Northern Luri',
+        'nativeName' => 'Northern Luri',
+    ],
+    'luo' => [
+        'isoName' => 'Luo',
+        'nativeName' => 'Luo',
+    ],
+    'luy' => [
+        'isoName' => 'Luyia',
+        'nativeName' => 'Luyia',
+    ],
+    'lzh' => [
+        'isoName' => 'Literary Chinese',
+        'nativeName' => 'Literary Chinese',
+    ],
+    'mag' => [
+        'isoName' => 'Magahi',
+        'nativeName' => 'Magahi',
+    ],
+    'mai' => [
+        'isoName' => 'Maithili',
+        'nativeName' => 'Maithili',
+    ],
+    'mas' => [
+        'isoName' => 'Masai',
+        'nativeName' => 'Masai',
+    ],
+    'mer' => [
+        'isoName' => 'Meru',
+        'nativeName' => 'Meru',
+    ],
+    'mfe' => [
+        'isoName' => 'Morisyen',
+        'nativeName' => 'Morisyen',
+    ],
+    'mgh' => [
+        'isoName' => 'Makhuwa-Meetto',
+        'nativeName' => 'Makhuwa-Meetto',
+    ],
+    'mgo' => [
+        'isoName' => 'Metaʼ',
+        'nativeName' => 'Metaʼ',
+    ],
+    'mhr' => [
+        'isoName' => 'Eastern Mari',
+        'nativeName' => 'Eastern Mari',
+    ],
+    'miq' => [
+        'isoName' => 'Mískito',
+        'nativeName' => 'Mískito',
+    ],
+    'mjw' => [
+        'isoName' => 'Karbi',
+        'nativeName' => 'Karbi',
+    ],
+    'mni' => [
+        'isoName' => 'Manipuri',
+        'nativeName' => 'Manipuri',
+    ],
+    'mua' => [
+        'isoName' => 'Mundang',
+        'nativeName' => 'Mundang',
+    ],
+    'mzn' => [
+        'isoName' => 'Mazanderani',
+        'nativeName' => 'Mazanderani',
+    ],
+    'nan' => [
+        'isoName' => 'Min Nan Chinese',
+        'nativeName' => 'Min Nan Chinese',
+    ],
+    'naq' => [
+        'isoName' => 'Nama',
+        'nativeName' => 'Nama',
+    ],
+    'nds' => [
+        'isoName' => 'Low German',
+        'nativeName' => 'Low German',
+    ],
+    'nhn' => [
+        'isoName' => 'Central Nahuatl',
+        'nativeName' => 'Central Nahuatl',
+    ],
+    'niu' => [
+        'isoName' => 'Niuean',
+        'nativeName' => 'Niuean',
+    ],
+    'nmg' => [
+        'isoName' => 'Kwasio',
+        'nativeName' => 'Kwasio',
+    ],
+    'nnh' => [
+        'isoName' => 'Ngiemboon',
+        'nativeName' => 'Ngiemboon',
+    ],
+    'nso' => [
+        'isoName' => 'Northern Sotho',
+        'nativeName' => 'Northern Sotho',
+    ],
+    'nus' => [
+        'isoName' => 'Nuer',
+        'nativeName' => 'Nuer',
+    ],
+    'nyn' => [
+        'isoName' => 'Nyankole',
+        'nativeName' => 'Nyankole',
+    ],
+    'pap' => [
+        'isoName' => 'Papiamento',
+        'nativeName' => 'Papiamento',
+    ],
+    'prg' => [
+        'isoName' => 'Prussian',
+        'nativeName' => 'Prussian',
+    ],
+    'quz' => [
+        'isoName' => 'Cusco Quechua',
+        'nativeName' => 'Cusco Quechua',
+    ],
+    'raj' => [
+        'isoName' => 'Rajasthani',
+        'nativeName' => 'Rajasthani',
+    ],
+    'rof' => [
+        'isoName' => 'Rombo',
+        'nativeName' => 'Rombo',
+    ],
+    'rwk' => [
+        'isoName' => 'Rwa',
+        'nativeName' => 'Rwa',
+    ],
+    'sah' => [
+        'isoName' => 'Sakha',
+        'nativeName' => 'Sakha',
+    ],
+    'saq' => [
+        'isoName' => 'Samburu',
+        'nativeName' => 'Samburu',
+    ],
+    'sat' => [
+        'isoName' => 'Santali',
+        'nativeName' => 'Santali',
+    ],
+    'sbp' => [
+        'isoName' => 'Sangu',
+        'nativeName' => 'Sangu',
+    ],
+    'scr' => [
+        'isoName' => 'Serbo Croatian',
+        'nativeName' => 'Serbo Croatian',
+    ],
+    'seh' => [
+        'isoName' => 'Sena',
+        'nativeName' => 'Sena',
+    ],
+    'ses' => [
+        'isoName' => 'Koyraboro Senni',
+        'nativeName' => 'Koyraboro Senni',
+    ],
+    'sgs' => [
+        'isoName' => 'Samogitian',
+        'nativeName' => 'Samogitian',
+    ],
+    'shi' => [
+        'isoName' => 'Tachelhit',
+        'nativeName' => 'Tachelhit',
+    ],
+    'shn' => [
+        'isoName' => 'Shan',
+        'nativeName' => 'Shan',
+    ],
+    'shs' => [
+        'isoName' => 'Shuswap',
+        'nativeName' => 'Shuswap',
+    ],
+    'sid' => [
+        'isoName' => 'Sidamo',
+        'nativeName' => 'Sidamo',
+    ],
+    'smn' => [
+        'isoName' => 'Inari Sami',
+        'nativeName' => 'Inari Sami',
+    ],
+    'szl' => [
+        'isoName' => 'Silesian',
+        'nativeName' => 'Silesian',
+    ],
+    'tcy' => [
+        'isoName' => 'Tulu',
+        'nativeName' => 'Tulu',
+    ],
+    'teo' => [
+        'isoName' => 'Teso',
+        'nativeName' => 'Teso',
+    ],
+    'tet' => [
+        'isoName' => 'Tetum',
+        'nativeName' => 'Tetum',
+    ],
+    'the' => [
+        'isoName' => 'Chitwania Tharu',
+        'nativeName' => 'Chitwania Tharu',
+    ],
+    'tig' => [
+        'isoName' => 'Tigre',
+        'nativeName' => 'Tigre',
+    ],
+    'tlh' => [
+        'isoName' => 'Klingon',
+        'nativeName' => 'tlhIngan Hol',
+    ],
+    'tpi' => [
+        'isoName' => 'Tok Pisin',
+        'nativeName' => 'Tok Pisin',
+    ],
+    'twq' => [
+        'isoName' => 'Tasawaq',
+        'nativeName' => 'Tasawaq',
+    ],
+    'tzl' => [
+        'isoName' => 'Talossan',
+        'nativeName' => 'Talossan',
+    ],
+    'tzm' => [
+        'isoName' => 'Tamazight, Central Atlas',
+        'nativeName' => 'ⵜⵎⴰⵣⵉⵖⵜ',
+    ],
+    'unm' => [
+        'isoName' => 'Unami',
+        'nativeName' => 'Unami',
+    ],
+    'vai' => [
+        'isoName' => 'Vai',
+        'nativeName' => 'Vai',
+    ],
+    'vun' => [
+        'isoName' => 'Vunjo',
+        'nativeName' => 'Vunjo',
+    ],
+    'wae' => [
+        'isoName' => 'Walser',
+        'nativeName' => 'Walser',
+    ],
+    'wal' => [
+        'isoName' => 'Wolaytta',
+        'nativeName' => 'Wolaytta',
+    ],
+    'xog' => [
+        'isoName' => 'Soga',
+        'nativeName' => 'Soga',
+    ],
+    'yav' => [
+        'isoName' => 'Yangben',
+        'nativeName' => 'Yangben',
+    ],
+    'yue' => [
+        'isoName' => 'Cantonese',
+        'nativeName' => 'Cantonese',
+    ],
+    'yuw' => [
+        'isoName' => 'Yau (Morobe Province)',
+        'nativeName' => 'Yau (Morobe Province)',
+    ],
+    'zgh' => [
+        'isoName' => 'Standard Moroccan Tamazight',
+        'nativeName' => 'Standard Moroccan Tamazight',
+    ],
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/List/regions.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/List/regions.php
new file mode 100644
index 0000000..8ab8a9e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/List/regions.php
@@ -0,0 +1,265 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * ISO 3166-2
+ */
+return [
+    'AD' => 'Andorra',
+    'AE' => 'United Arab Emirates',
+    'AF' => 'Afghanistan',
+    'AG' => 'Antigua and Barbuda',
+    'AI' => 'Anguilla',
+    'AL' => 'Albania',
+    'AM' => 'Armenia',
+    'AO' => 'Angola',
+    'AQ' => 'Antarctica',
+    'AR' => 'Argentina',
+    'AS' => 'American Samoa',
+    'AT' => 'Austria',
+    'AU' => 'Australia',
+    'AW' => 'Aruba',
+    'AX' => 'Åland Islands',
+    'AZ' => 'Azerbaijan',
+    'BA' => 'Bosnia and Herzegovina',
+    'BB' => 'Barbados',
+    'BD' => 'Bangladesh',
+    'BE' => 'Belgium',
+    'BF' => 'Burkina Faso',
+    'BG' => 'Bulgaria',
+    'BH' => 'Bahrain',
+    'BI' => 'Burundi',
+    'BJ' => 'Benin',
+    'BL' => 'Saint Barthélemy',
+    'BM' => 'Bermuda',
+    'BN' => 'Brunei Darussalam',
+    'BO' => 'Bolivia (Plurinational State of)',
+    'BQ' => 'Bonaire, Sint Eustatius and Saba',
+    'BR' => 'Brazil',
+    'BS' => 'Bahamas',
+    'BT' => 'Bhutan',
+    'BV' => 'Bouvet Island',
+    'BW' => 'Botswana',
+    'BY' => 'Belarus',
+    'BZ' => 'Belize',
+    'CA' => 'Canada',
+    'CC' => 'Cocos (Keeling) Islands',
+    'CD' => 'Congo, Democratic Republic of the',
+    'CF' => 'Central African Republic',
+    'CG' => 'Congo',
+    'CH' => 'Switzerland',
+    'CI' => 'Côte d\'Ivoire',
+    'CK' => 'Cook Islands',
+    'CL' => 'Chile',
+    'CM' => 'Cameroon',
+    'CN' => 'China',
+    'CO' => 'Colombia',
+    'CR' => 'Costa Rica',
+    'CU' => 'Cuba',
+    'CV' => 'Cabo Verde',
+    'CW' => 'Curaçao',
+    'CX' => 'Christmas Island',
+    'CY' => 'Cyprus',
+    'CZ' => 'Czechia',
+    'DE' => 'Germany',
+    'DJ' => 'Djibouti',
+    'DK' => 'Denmark',
+    'DM' => 'Dominica',
+    'DO' => 'Dominican Republic',
+    'DZ' => 'Algeria',
+    'EC' => 'Ecuador',
+    'EE' => 'Estonia',
+    'EG' => 'Egypt',
+    'EH' => 'Western Sahara',
+    'ER' => 'Eritrea',
+    'ES' => 'Spain',
+    'ET' => 'Ethiopia',
+    'FI' => 'Finland',
+    'FJ' => 'Fiji',
+    'FK' => 'Falkland Islands (Malvinas)',
+    'FM' => 'Micronesia (Federated States of)',
+    'FO' => 'Faroe Islands',
+    'FR' => 'France',
+    'GA' => 'Gabon',
+    'GB' => 'United Kingdom of Great Britain and Northern Ireland',
+    'GD' => 'Grenada',
+    'GE' => 'Georgia',
+    'GF' => 'French Guiana',
+    'GG' => 'Guernsey',
+    'GH' => 'Ghana',
+    'GI' => 'Gibraltar',
+    'GL' => 'Greenland',
+    'GM' => 'Gambia',
+    'GN' => 'Guinea',
+    'GP' => 'Guadeloupe',
+    'GQ' => 'Equatorial Guinea',
+    'GR' => 'Greece',
+    'GS' => 'South Georgia and the South Sandwich Islands',
+    'GT' => 'Guatemala',
+    'GU' => 'Guam',
+    'GW' => 'Guinea-Bissau',
+    'GY' => 'Guyana',
+    'HK' => 'Hong Kong',
+    'HM' => 'Heard Island and McDonald Islands',
+    'HN' => 'Honduras',
+    'HR' => 'Croatia',
+    'HT' => 'Haiti',
+    'HU' => 'Hungary',
+    'ID' => 'Indonesia',
+    'IE' => 'Ireland',
+    'IL' => 'Israel',
+    'IM' => 'Isle of Man',
+    'IN' => 'India',
+    'IO' => 'British Indian Ocean Territory',
+    'IQ' => 'Iraq',
+    'IR' => 'Iran (Islamic Republic of)',
+    'IS' => 'Iceland',
+    'IT' => 'Italy',
+    'JE' => 'Jersey',
+    'JM' => 'Jamaica',
+    'JO' => 'Jordan',
+    'JP' => 'Japan',
+    'KE' => 'Kenya',
+    'KG' => 'Kyrgyzstan',
+    'KH' => 'Cambodia',
+    'KI' => 'Kiribati',
+    'KM' => 'Comoros',
+    'KN' => 'Saint Kitts and Nevis',
+    'KP' => 'Korea (Democratic People\'s Republic of)',
+    'KR' => 'Korea, Republic of',
+    'KW' => 'Kuwait',
+    'KY' => 'Cayman Islands',
+    'KZ' => 'Kazakhstan',
+    'LA' => 'Lao People\'s Democratic Republic',
+    'LB' => 'Lebanon',
+    'LC' => 'Saint Lucia',
+    'LI' => 'Liechtenstein',
+    'LK' => 'Sri Lanka',
+    'LR' => 'Liberia',
+    'LS' => 'Lesotho',
+    'LT' => 'Lithuania',
+    'LU' => 'Luxembourg',
+    'LV' => 'Latvia',
+    'LY' => 'Libya',
+    'MA' => 'Morocco',
+    'MC' => 'Monaco',
+    'MD' => 'Moldova, Republic of',
+    'ME' => 'Montenegro',
+    'MF' => 'Saint Martin (French part)',
+    'MG' => 'Madagascar',
+    'MH' => 'Marshall Islands',
+    'MK' => 'Macedonia, the former Yugoslav Republic of',
+    'ML' => 'Mali',
+    'MM' => 'Myanmar',
+    'MN' => 'Mongolia',
+    'MO' => 'Macao',
+    'MP' => 'Northern Mariana Islands',
+    'MQ' => 'Martinique',
+    'MR' => 'Mauritania',
+    'MS' => 'Montserrat',
+    'MT' => 'Malta',
+    'MU' => 'Mauritius',
+    'MV' => 'Maldives',
+    'MW' => 'Malawi',
+    'MX' => 'Mexico',
+    'MY' => 'Malaysia',
+    'MZ' => 'Mozambique',
+    'NA' => 'Namibia',
+    'NC' => 'New Caledonia',
+    'NE' => 'Niger',
+    'NF' => 'Norfolk Island',
+    'NG' => 'Nigeria',
+    'NI' => 'Nicaragua',
+    'NL' => 'Netherlands',
+    'NO' => 'Norway',
+    'NP' => 'Nepal',
+    'NR' => 'Nauru',
+    'NU' => 'Niue',
+    'NZ' => 'New Zealand',
+    'OM' => 'Oman',
+    'PA' => 'Panama',
+    'PE' => 'Peru',
+    'PF' => 'French Polynesia',
+    'PG' => 'Papua New Guinea',
+    'PH' => 'Philippines',
+    'PK' => 'Pakistan',
+    'PL' => 'Poland',
+    'PM' => 'Saint Pierre and Miquelon',
+    'PN' => 'Pitcairn',
+    'PR' => 'Puerto Rico',
+    'PS' => 'Palestine, State of',
+    'PT' => 'Portugal',
+    'PW' => 'Palau',
+    'PY' => 'Paraguay',
+    'QA' => 'Qatar',
+    'RE' => 'Réunion',
+    'RO' => 'Romania',
+    'RS' => 'Serbia',
+    'RU' => 'Russian Federation',
+    'RW' => 'Rwanda',
+    'SA' => 'Saudi Arabia',
+    'SB' => 'Solomon Islands',
+    'SC' => 'Seychelles',
+    'SD' => 'Sudan',
+    'SE' => 'Sweden',
+    'SG' => 'Singapore',
+    'SH' => 'Saint Helena, Ascension and Tristan da Cunha',
+    'SI' => 'Slovenia',
+    'SJ' => 'Svalbard and Jan Mayen',
+    'SK' => 'Slovakia',
+    'SL' => 'Sierra Leone',
+    'SM' => 'San Marino',
+    'SN' => 'Senegal',
+    'SO' => 'Somalia',
+    'SR' => 'Suriname',
+    'SS' => 'South Sudan',
+    'ST' => 'Sao Tome and Principe',
+    'SV' => 'El Salvador',
+    'SX' => 'Sint Maarten (Dutch part)',
+    'SY' => 'Syrian Arab Republic',
+    'SZ' => 'Eswatini',
+    'TC' => 'Turks and Caicos Islands',
+    'TD' => 'Chad',
+    'TF' => 'French Southern Territories',
+    'TG' => 'Togo',
+    'TH' => 'Thailand',
+    'TJ' => 'Tajikistan',
+    'TK' => 'Tokelau',
+    'TL' => 'Timor-Leste',
+    'TM' => 'Turkmenistan',
+    'TN' => 'Tunisia',
+    'TO' => 'Tonga',
+    'TR' => 'Turkey',
+    'TT' => 'Trinidad and Tobago',
+    'TV' => 'Tuvalu',
+    'TW' => 'Taiwan, Province of China',
+    'TZ' => 'Tanzania, United Republic of',
+    'UA' => 'Ukraine',
+    'UG' => 'Uganda',
+    'UM' => 'United States Minor Outlying Islands',
+    'US' => 'United States of America',
+    'UY' => 'Uruguay',
+    'UZ' => 'Uzbekistan',
+    'VA' => 'Holy See',
+    'VC' => 'Saint Vincent and the Grenadines',
+    'VE' => 'Venezuela (Bolivarian Republic of)',
+    'VG' => 'Virgin Islands (British)',
+    'VI' => 'Virgin Islands (U.S.)',
+    'VN' => 'Viet Nam',
+    'VU' => 'Vanuatu',
+    'WF' => 'Wallis and Futuna',
+    'WS' => 'Samoa',
+    'YE' => 'Yemen',
+    'YT' => 'Mayotte',
+    'ZA' => 'South Africa',
+    'ZM' => 'Zambia',
+    'ZW' => 'Zimbabwe',
+];
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/PHPStan/Macro.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/PHPStan/Macro.php
new file mode 100644
index 0000000..7dab190
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/PHPStan/Macro.php
@@ -0,0 +1,233 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Carbon\PHPStan;
+
+use Closure;
+use PHPStan\Reflection\Php\BuiltinMethodReflection;
+use PHPStan\TrinaryLogic;
+use ReflectionClass;
+use ReflectionFunction;
+use ReflectionMethod;
+use ReflectionParameter;
+use ReflectionType;
+use stdClass;
+use Throwable;
+
+final class Macro implements BuiltinMethodReflection
+{
+    /**
+     * The class name.
+     *
+     * @var class-string
+     */
+    private $className;
+
+    /**
+     * The method name.
+     *
+     * @var string
+     */
+    private $methodName;
+
+    /**
+     * The reflection function/method.
+     *
+     * @var ReflectionFunction|ReflectionMethod
+     */
+    private $reflectionFunction;
+
+    /**
+     * The parameters.
+     *
+     * @var ReflectionParameter[]
+     */
+    private $parameters;
+
+    /**
+     * The is static.
+     *
+     * @var bool
+     */
+    private $static = false;
+
+    /**
+     * Macro constructor.
+     *
+     * @param string $className
+     * @phpstan-param class-string $className
+     *
+     * @param string   $methodName
+     * @param callable $macro
+     */
+    public function __construct(string $className, string $methodName, $macro)
+    {
+        $this->className = $className;
+        $this->methodName = $methodName;
+        $this->reflectionFunction = \is_array($macro)
+            ? new ReflectionMethod($macro[0], $macro[1])
+            : new ReflectionFunction($macro);
+        $this->parameters = $this->reflectionFunction->getParameters();
+
+        if ($this->reflectionFunction->isClosure()) {
+            try {
+                /** @var Closure $closure */
+                $closure = $this->reflectionFunction->getClosure();
+                $boundClosure = Closure::bind($closure, new stdClass);
+                $this->static = (!$boundClosure || (new ReflectionFunction($boundClosure))->getClosureThis() === null);
+            } catch (Throwable $e) {
+                $this->static = true;
+            }
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getDeclaringClass(): ReflectionClass
+    {
+        return new ReflectionClass($this->className);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isPrivate(): bool
+    {
+        return false;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isPublic(): bool
+    {
+        return true;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isFinal(): bool
+    {
+        return false;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isInternal(): bool
+    {
+        return false;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isAbstract(): bool
+    {
+        return false;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isStatic(): bool
+    {
+        return $this->static;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getDocComment(): ?string
+    {
+        return $this->reflectionFunction->getDocComment() ?: null;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getFileName()
+    {
+        return $this->reflectionFunction->getFileName();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getName(): string
+    {
+        return $this->methodName;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getParameters(): array
+    {
+        return $this->parameters;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getReturnType(): ?ReflectionType
+    {
+        return $this->reflectionFunction->getReturnType();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getStartLine()
+    {
+        return $this->reflectionFunction->getStartLine();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getEndLine()
+    {
+        return $this->reflectionFunction->getEndLine();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isDeprecated(): TrinaryLogic
+    {
+        return TrinaryLogic::createFromBoolean(
+            $this->reflectionFunction->isDeprecated() ||
+            preg_match('/@deprecated/i', $this->getDocComment() ?: '')
+        );
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isVariadic(): bool
+    {
+        return $this->reflectionFunction->isVariadic();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getPrototype(): BuiltinMethodReflection
+    {
+        return $this;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getReflection(): ?ReflectionMethod
+    {
+        return $this->reflectionFunction instanceof ReflectionMethod
+            ? $this->reflectionFunction
+            : null;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroExtension.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroExtension.php
new file mode 100644
index 0000000..5a3d694
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroExtension.php
@@ -0,0 +1,69 @@
+<?php
+
+namespace Carbon\PHPStan;
+
+use PHPStan\Reflection\ClassReflection;
+use PHPStan\Reflection\MethodReflection;
+use PHPStan\Reflection\MethodsClassReflectionExtension;
+use PHPStan\Reflection\Php\PhpMethodReflectionFactory;
+use PHPStan\Type\TypehintHelper;
+
+/**
+ * Class MacroExtension.
+ *
+ * @codeCoverageIgnore Pure PHPStan wrapper.
+ */
+final class MacroExtension implements MethodsClassReflectionExtension
+{
+    /**
+     * @var PhpMethodReflectionFactory
+     */
+    protected $methodReflectionFactory;
+
+    /**
+     * @var MacroScanner
+     */
+    protected $scanner;
+
+    /**
+     * Extension constructor.
+     *
+     * @param PhpMethodReflectionFactory $methodReflectionFactory
+     */
+    public function __construct(PhpMethodReflectionFactory $methodReflectionFactory)
+    {
+        $this->scanner = new MacroScanner();
+        $this->methodReflectionFactory = $methodReflectionFactory;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function hasMethod(ClassReflection $classReflection, string $methodName): bool
+    {
+        return $this->scanner->hasMethod($classReflection->getName(), $methodName);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getMethod(ClassReflection $classReflection, string $methodName): MethodReflection
+    {
+        $builtinMacro = $this->scanner->getMethod($classReflection->getName(), $methodName);
+
+        return $this->methodReflectionFactory->create(
+            $classReflection,
+            null,
+            $builtinMacro,
+            $classReflection->getActiveTemplateTypeMap(),
+            [],
+            TypehintHelper::decideTypeFromReflection($builtinMacro->getReturnType()),
+            null,
+            null,
+            $builtinMacro->isDeprecated()->yes(),
+            $builtinMacro->isInternal(),
+            $builtinMacro->isFinal(),
+            $builtinMacro->getDocComment()
+        );
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroScanner.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroScanner.php
new file mode 100644
index 0000000..97cf0b8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/PHPStan/MacroScanner.php
@@ -0,0 +1,54 @@
+<?php
+
+namespace Carbon\PHPStan;
+
+use Carbon\CarbonInterface;
+use ReflectionClass;
+use ReflectionException;
+
+final class MacroScanner
+{
+    /**
+     * Return true if the given pair class-method is a Carbon macro.
+     *
+     * @param string $className
+     * @phpstan-param class-string $className
+     *
+     * @param string $methodName
+     *
+     * @return bool
+     */
+    public function hasMethod(string $className, string $methodName): bool
+    {
+        return is_a($className, CarbonInterface::class, true) &&
+            \is_callable([$className, 'hasMacro']) &&
+            $className::hasMacro($methodName);
+    }
+
+    /**
+     * Return the Macro for a given pair class-method.
+     *
+     * @param string $className
+     * @phpstan-param class-string $className
+     *
+     * @param string $methodName
+     *
+     * @throws ReflectionException
+     *
+     * @return Macro
+     */
+    public function getMethod(string $className, string $methodName): Macro
+    {
+        $reflectionClass = new ReflectionClass($className);
+        $property = $reflectionClass->getProperty('globalMacros');
+
+        $property->setAccessible(true);
+        $macro = $property->getValue()[$methodName];
+
+        return new Macro(
+            $className,
+            $methodName,
+            $macro
+        );
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Boundaries.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Boundaries.php
new file mode 100644
index 0000000..7fbb1a3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Boundaries.php
@@ -0,0 +1,442 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Traits;
+
+use Carbon\Exceptions\UnknownUnitException;
+
+/**
+ * Trait Boundaries.
+ *
+ * startOf, endOf and derived method for each unit.
+ *
+ * Depends on the following properties:
+ *
+ * @property int $year
+ * @property int $month
+ * @property int $daysInMonth
+ * @property int $quarter
+ *
+ * Depends on the following methods:
+ *
+ * @method $this setTime(int $hour, int $minute, int $second = 0, int $microseconds = 0)
+ * @method $this setDate(int $year, int $month, int $day)
+ * @method $this addMonths(int $value = 1)
+ */
+trait Boundaries
+{
+    /**
+     * Resets the time to 00:00:00 start of day
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->startOfDay();
+     * ```
+     *
+     * @return static
+     */
+    public function startOfDay()
+    {
+        return $this->setTime(0, 0, 0, 0);
+    }
+
+    /**
+     * Resets the time to 23:59:59.999999 end of day
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->endOfDay();
+     * ```
+     *
+     * @return static
+     */
+    public function endOfDay()
+    {
+        return $this->setTime(static::HOURS_PER_DAY - 1, static::MINUTES_PER_HOUR - 1, static::SECONDS_PER_MINUTE - 1, static::MICROSECONDS_PER_SECOND - 1);
+    }
+
+    /**
+     * Resets the date to the first day of the month and the time to 00:00:00
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->startOfMonth();
+     * ```
+     *
+     * @return static
+     */
+    public function startOfMonth()
+    {
+        return $this->setDate($this->year, $this->month, 1)->startOfDay();
+    }
+
+    /**
+     * Resets the date to end of the month and time to 23:59:59.999999
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->endOfMonth();
+     * ```
+     *
+     * @return static
+     */
+    public function endOfMonth()
+    {
+        return $this->setDate($this->year, $this->month, $this->daysInMonth)->endOfDay();
+    }
+
+    /**
+     * Resets the date to the first day of the quarter and the time to 00:00:00
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->startOfQuarter();
+     * ```
+     *
+     * @return static
+     */
+    public function startOfQuarter()
+    {
+        $month = ($this->quarter - 1) * static::MONTHS_PER_QUARTER + 1;
+
+        return $this->setDate($this->year, $month, 1)->startOfDay();
+    }
+
+    /**
+     * Resets the date to end of the quarter and time to 23:59:59.999999
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->endOfQuarter();
+     * ```
+     *
+     * @return static
+     */
+    public function endOfQuarter()
+    {
+        return $this->startOfQuarter()->addMonths(static::MONTHS_PER_QUARTER - 1)->endOfMonth();
+    }
+
+    /**
+     * Resets the date to the first day of the year and the time to 00:00:00
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->startOfYear();
+     * ```
+     *
+     * @return static
+     */
+    public function startOfYear()
+    {
+        return $this->setDate($this->year, 1, 1)->startOfDay();
+    }
+
+    /**
+     * Resets the date to end of the year and time to 23:59:59.999999
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->endOfYear();
+     * ```
+     *
+     * @return static
+     */
+    public function endOfYear()
+    {
+        return $this->setDate($this->year, 12, 31)->endOfDay();
+    }
+
+    /**
+     * Resets the date to the first day of the decade and the time to 00:00:00
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->startOfDecade();
+     * ```
+     *
+     * @return static
+     */
+    public function startOfDecade()
+    {
+        $year = $this->year - $this->year % static::YEARS_PER_DECADE;
+
+        return $this->setDate($year, 1, 1)->startOfDay();
+    }
+
+    /**
+     * Resets the date to end of the decade and time to 23:59:59.999999
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->endOfDecade();
+     * ```
+     *
+     * @return static
+     */
+    public function endOfDecade()
+    {
+        $year = $this->year - $this->year % static::YEARS_PER_DECADE + static::YEARS_PER_DECADE - 1;
+
+        return $this->setDate($year, 12, 31)->endOfDay();
+    }
+
+    /**
+     * Resets the date to the first day of the century and the time to 00:00:00
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->startOfCentury();
+     * ```
+     *
+     * @return static
+     */
+    public function startOfCentury()
+    {
+        $year = $this->year - ($this->year - 1) % static::YEARS_PER_CENTURY;
+
+        return $this->setDate($year, 1, 1)->startOfDay();
+    }
+
+    /**
+     * Resets the date to end of the century and time to 23:59:59.999999
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->endOfCentury();
+     * ```
+     *
+     * @return static
+     */
+    public function endOfCentury()
+    {
+        $year = $this->year - 1 - ($this->year - 1) % static::YEARS_PER_CENTURY + static::YEARS_PER_CENTURY;
+
+        return $this->setDate($year, 12, 31)->endOfDay();
+    }
+
+    /**
+     * Resets the date to the first day of the millennium and the time to 00:00:00
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->startOfMillennium();
+     * ```
+     *
+     * @return static
+     */
+    public function startOfMillennium()
+    {
+        $year = $this->year - ($this->year - 1) % static::YEARS_PER_MILLENNIUM;
+
+        return $this->setDate($year, 1, 1)->startOfDay();
+    }
+
+    /**
+     * Resets the date to end of the millennium and time to 23:59:59.999999
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->endOfMillennium();
+     * ```
+     *
+     * @return static
+     */
+    public function endOfMillennium()
+    {
+        $year = $this->year - 1 - ($this->year - 1) % static::YEARS_PER_MILLENNIUM + static::YEARS_PER_MILLENNIUM;
+
+        return $this->setDate($year, 12, 31)->endOfDay();
+    }
+
+    /**
+     * Resets the date to the first day of week (defined in $weekStartsAt) and the time to 00:00:00
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->startOfWeek() . "\n";
+     * echo Carbon::parse('2018-07-25 12:45:16')->locale('ar')->startOfWeek() . "\n";
+     * echo Carbon::parse('2018-07-25 12:45:16')->startOfWeek(Carbon::SUNDAY) . "\n";
+     * ```
+     *
+     * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week
+     *
+     * @return static
+     */
+    public function startOfWeek($weekStartsAt = null)
+    {
+        return $this->subDays((7 + $this->dayOfWeek - ($weekStartsAt ?? $this->firstWeekDay)) % 7)->startOfDay();
+    }
+
+    /**
+     * Resets the date to end of week (defined in $weekEndsAt) and time to 23:59:59.999999
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->endOfWeek() . "\n";
+     * echo Carbon::parse('2018-07-25 12:45:16')->locale('ar')->endOfWeek() . "\n";
+     * echo Carbon::parse('2018-07-25 12:45:16')->endOfWeek(Carbon::SATURDAY) . "\n";
+     * ```
+     *
+     * @param int $weekEndsAt optional start allow you to specify the day of week to use to end the week
+     *
+     * @return static
+     */
+    public function endOfWeek($weekEndsAt = null)
+    {
+        return $this->addDays((7 - $this->dayOfWeek + ($weekEndsAt ?? $this->lastWeekDay)) % 7)->endOfDay();
+    }
+
+    /**
+     * Modify to start of current hour, minutes and seconds become 0
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->startOfHour();
+     * ```
+     *
+     * @return static
+     */
+    public function startOfHour()
+    {
+        return $this->setTime($this->hour, 0, 0, 0);
+    }
+
+    /**
+     * Modify to end of current hour, minutes and seconds become 59
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->endOfHour();
+     * ```
+     *
+     * @return static
+     */
+    public function endOfHour()
+    {
+        return $this->setTime($this->hour, static::MINUTES_PER_HOUR - 1, static::SECONDS_PER_MINUTE - 1, static::MICROSECONDS_PER_SECOND - 1);
+    }
+
+    /**
+     * Modify to start of current minute, seconds become 0
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->startOfMinute();
+     * ```
+     *
+     * @return static
+     */
+    public function startOfMinute()
+    {
+        return $this->setTime($this->hour, $this->minute, 0, 0);
+    }
+
+    /**
+     * Modify to end of current minute, seconds become 59
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16')->endOfMinute();
+     * ```
+     *
+     * @return static
+     */
+    public function endOfMinute()
+    {
+        return $this->setTime($this->hour, $this->minute, static::SECONDS_PER_MINUTE - 1, static::MICROSECONDS_PER_SECOND - 1);
+    }
+
+    /**
+     * Modify to start of current second, microseconds become 0
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16.334455')
+     *   ->startOfSecond()
+     *   ->format('H:i:s.u');
+     * ```
+     *
+     * @return static
+     */
+    public function startOfSecond()
+    {
+        return $this->setTime($this->hour, $this->minute, $this->second, 0);
+    }
+
+    /**
+     * Modify to end of current second, microseconds become 999999
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16.334455')
+     *   ->endOfSecond()
+     *   ->format('H:i:s.u');
+     * ```
+     *
+     * @return static
+     */
+    public function endOfSecond()
+    {
+        return $this->setTime($this->hour, $this->minute, $this->second, static::MICROSECONDS_PER_SECOND - 1);
+    }
+
+    /**
+     * Modify to start of current given unit.
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16.334455')
+     *   ->startOf('month')
+     *   ->endOf('week', Carbon::FRIDAY);
+     * ```
+     *
+     * @param string            $unit
+     * @param array<int, mixed> $params
+     *
+     * @return static
+     */
+    public function startOf($unit, ...$params)
+    {
+        $ucfUnit = ucfirst(static::singularUnit($unit));
+        $method = "startOf$ucfUnit";
+        if (!method_exists($this, $method)) {
+            throw new UnknownUnitException($unit);
+        }
+
+        return $this->$method(...$params);
+    }
+
+    /**
+     * Modify to end of current given unit.
+     *
+     * @example
+     * ```
+     * echo Carbon::parse('2018-07-25 12:45:16.334455')
+     *   ->startOf('month')
+     *   ->endOf('week', Carbon::FRIDAY);
+     * ```
+     *
+     * @param string            $unit
+     * @param array<int, mixed> $params
+     *
+     * @return static
+     */
+    public function endOf($unit, ...$params)
+    {
+        $ucfUnit = ucfirst(static::singularUnit($unit));
+        $method = "endOf$ucfUnit";
+        if (!method_exists($this, $method)) {
+            throw new UnknownUnitException($unit);
+        }
+
+        return $this->$method(...$params);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Cast.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Cast.php
new file mode 100644
index 0000000..44caf0b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Cast.php
@@ -0,0 +1,34 @@
+<?php
+
+namespace Carbon\Traits;
+
+use Carbon\Exceptions\InvalidCastException;
+use DateTimeInterface;
+
+/**
+ * Trait Cast.
+ *
+ * Utils to cast into an other class.
+ */
+trait Cast
+{
+    /**
+     * Cast the current instance into the given class.
+     *
+     * @param string $className The $className::instance() method will be called to cast the current object.
+     *
+     * @return DateTimeInterface
+     */
+    public function cast(string $className)
+    {
+        if (!method_exists($className, 'instance')) {
+            if (is_a($className, DateTimeInterface::class, true)) {
+                return new $className($this->rawFormat('Y-m-d H:i:s.u'), $this->getTimezone());
+            }
+
+            throw new InvalidCastException("$className has not the instance() method needed to cast the date.");
+        }
+
+        return $className::instance($this);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Comparison.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Comparison.php
new file mode 100644
index 0000000..ee00666
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Comparison.php
@@ -0,0 +1,1069 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Traits;
+
+use BadMethodCallException;
+use Carbon\CarbonInterface;
+use Carbon\Exceptions\BadComparisonUnitException;
+use InvalidArgumentException;
+
+/**
+ * Trait Comparison.
+ *
+ * Comparison utils and testers. All the following methods return booleans.
+ * nowWithSameTz
+ *
+ * Depends on the following methods:
+ *
+ * @method static        resolveCarbon($date)
+ * @method static        copy()
+ * @method static        nowWithSameTz()
+ * @method static static yesterday($timezone = null)
+ * @method static static tomorrow($timezone = null)
+ */
+trait Comparison
+{
+    /** @var bool */
+    protected $endOfTime = false;
+
+    /** @var bool */
+    protected $startOfTime = false;
+
+    /**
+     * Determines if the instance is equal to another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->eq('2018-07-25 12:45:16'); // true
+     * Carbon::parse('2018-07-25 12:45:16')->eq(Carbon::parse('2018-07-25 12:45:16')); // true
+     * Carbon::parse('2018-07-25 12:45:16')->eq('2018-07-25 12:45:17'); // false
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @see equalTo()
+     *
+     * @return bool
+     */
+    public function eq($date): bool
+    {
+        return $this->equalTo($date);
+    }
+
+    /**
+     * Determines if the instance is equal to another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->equalTo('2018-07-25 12:45:16'); // true
+     * Carbon::parse('2018-07-25 12:45:16')->equalTo(Carbon::parse('2018-07-25 12:45:16')); // true
+     * Carbon::parse('2018-07-25 12:45:16')->equalTo('2018-07-25 12:45:17'); // false
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @return bool
+     */
+    public function equalTo($date): bool
+    {
+        return $this == $date;
+    }
+
+    /**
+     * Determines if the instance is not equal to another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->ne('2018-07-25 12:45:16'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->ne(Carbon::parse('2018-07-25 12:45:16')); // false
+     * Carbon::parse('2018-07-25 12:45:16')->ne('2018-07-25 12:45:17'); // true
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @see notEqualTo()
+     *
+     * @return bool
+     */
+    public function ne($date): bool
+    {
+        return $this->notEqualTo($date);
+    }
+
+    /**
+     * Determines if the instance is not equal to another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->notEqualTo('2018-07-25 12:45:16'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->notEqualTo(Carbon::parse('2018-07-25 12:45:16')); // false
+     * Carbon::parse('2018-07-25 12:45:16')->notEqualTo('2018-07-25 12:45:17'); // true
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @return bool
+     */
+    public function notEqualTo($date): bool
+    {
+        return !$this->equalTo($date);
+    }
+
+    /**
+     * Determines if the instance is greater (after) than another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->gt('2018-07-25 12:45:15'); // true
+     * Carbon::parse('2018-07-25 12:45:16')->gt('2018-07-25 12:45:16'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->gt('2018-07-25 12:45:17'); // false
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @see greaterThan()
+     *
+     * @return bool
+     */
+    public function gt($date): bool
+    {
+        return $this->greaterThan($date);
+    }
+
+    /**
+     * Determines if the instance is greater (after) than another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->greaterThan('2018-07-25 12:45:15'); // true
+     * Carbon::parse('2018-07-25 12:45:16')->greaterThan('2018-07-25 12:45:16'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->greaterThan('2018-07-25 12:45:17'); // false
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @return bool
+     */
+    public function greaterThan($date): bool
+    {
+        return $this > $date;
+    }
+
+    /**
+     * Determines if the instance is greater (after) than another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->isAfter('2018-07-25 12:45:15'); // true
+     * Carbon::parse('2018-07-25 12:45:16')->isAfter('2018-07-25 12:45:16'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->isAfter('2018-07-25 12:45:17'); // false
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @see greaterThan()
+     *
+     * @return bool
+     */
+    public function isAfter($date): bool
+    {
+        return $this->greaterThan($date);
+    }
+
+    /**
+     * Determines if the instance is greater (after) than or equal to another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->gte('2018-07-25 12:45:15'); // true
+     * Carbon::parse('2018-07-25 12:45:16')->gte('2018-07-25 12:45:16'); // true
+     * Carbon::parse('2018-07-25 12:45:16')->gte('2018-07-25 12:45:17'); // false
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @see greaterThanOrEqualTo()
+     *
+     * @return bool
+     */
+    public function gte($date): bool
+    {
+        return $this->greaterThanOrEqualTo($date);
+    }
+
+    /**
+     * Determines if the instance is greater (after) than or equal to another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->greaterThanOrEqualTo('2018-07-25 12:45:15'); // true
+     * Carbon::parse('2018-07-25 12:45:16')->greaterThanOrEqualTo('2018-07-25 12:45:16'); // true
+     * Carbon::parse('2018-07-25 12:45:16')->greaterThanOrEqualTo('2018-07-25 12:45:17'); // false
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @return bool
+     */
+    public function greaterThanOrEqualTo($date): bool
+    {
+        return $this >= $date;
+    }
+
+    /**
+     * Determines if the instance is less (before) than another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->lt('2018-07-25 12:45:15'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->lt('2018-07-25 12:45:16'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->lt('2018-07-25 12:45:17'); // true
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @see lessThan()
+     *
+     * @return bool
+     */
+    public function lt($date): bool
+    {
+        return $this->lessThan($date);
+    }
+
+    /**
+     * Determines if the instance is less (before) than another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->lessThan('2018-07-25 12:45:15'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->lessThan('2018-07-25 12:45:16'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->lessThan('2018-07-25 12:45:17'); // true
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @return bool
+     */
+    public function lessThan($date): bool
+    {
+        return $this < $date;
+    }
+
+    /**
+     * Determines if the instance is less (before) than another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->isBefore('2018-07-25 12:45:15'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->isBefore('2018-07-25 12:45:16'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->isBefore('2018-07-25 12:45:17'); // true
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @see lessThan()
+     *
+     * @return bool
+     */
+    public function isBefore($date): bool
+    {
+        return $this->lessThan($date);
+    }
+
+    /**
+     * Determines if the instance is less (before) or equal to another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->lte('2018-07-25 12:45:15'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->lte('2018-07-25 12:45:16'); // true
+     * Carbon::parse('2018-07-25 12:45:16')->lte('2018-07-25 12:45:17'); // true
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @see lessThanOrEqualTo()
+     *
+     * @return bool
+     */
+    public function lte($date): bool
+    {
+        return $this->lessThanOrEqualTo($date);
+    }
+
+    /**
+     * Determines if the instance is less (before) or equal to another
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25 12:45:16')->lessThanOrEqualTo('2018-07-25 12:45:15'); // false
+     * Carbon::parse('2018-07-25 12:45:16')->lessThanOrEqualTo('2018-07-25 12:45:16'); // true
+     * Carbon::parse('2018-07-25 12:45:16')->lessThanOrEqualTo('2018-07-25 12:45:17'); // true
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @return bool
+     */
+    public function lessThanOrEqualTo($date): bool
+    {
+        return $this <= $date;
+    }
+
+    /**
+     * Determines if the instance is between two others.
+     *
+     * The third argument allow you to specify if bounds are included or not (true by default)
+     * but for when you including/excluding bounds may produce different results in your application,
+     * we recommend to use the explicit methods ->betweenIncluded() or ->betweenExcluded() instead.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25')->between('2018-07-14', '2018-08-01'); // true
+     * Carbon::parse('2018-07-25')->between('2018-08-01', '2018-08-20'); // false
+     * Carbon::parse('2018-07-25')->between('2018-07-25', '2018-08-01'); // true
+     * Carbon::parse('2018-07-25')->between('2018-07-25', '2018-08-01', false); // false
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2
+     * @param bool                                    $equal Indicates if an equal to comparison should be done
+     *
+     * @return bool
+     */
+    public function between($date1, $date2, $equal = true): bool
+    {
+        $date1 = $this->resolveCarbon($date1);
+        $date2 = $this->resolveCarbon($date2);
+
+        if ($date1->greaterThan($date2)) {
+            [$date1, $date2] = [$date2, $date1];
+        }
+
+        if ($equal) {
+            return $this->greaterThanOrEqualTo($date1) && $this->lessThanOrEqualTo($date2);
+        }
+
+        return $this->greaterThan($date1) && $this->lessThan($date2);
+    }
+
+    /**
+     * Determines if the instance is between two others, bounds included.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25')->betweenIncluded('2018-07-14', '2018-08-01'); // true
+     * Carbon::parse('2018-07-25')->betweenIncluded('2018-08-01', '2018-08-20'); // false
+     * Carbon::parse('2018-07-25')->betweenIncluded('2018-07-25', '2018-08-01'); // true
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2
+     *
+     * @return bool
+     */
+    public function betweenIncluded($date1, $date2): bool
+    {
+        return $this->between($date1, $date2, true);
+    }
+
+    /**
+     * Determines if the instance is between two others, bounds excluded.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25')->betweenExcluded('2018-07-14', '2018-08-01'); // true
+     * Carbon::parse('2018-07-25')->betweenExcluded('2018-08-01', '2018-08-20'); // false
+     * Carbon::parse('2018-07-25')->betweenExcluded('2018-07-25', '2018-08-01'); // false
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2
+     *
+     * @return bool
+     */
+    public function betweenExcluded($date1, $date2): bool
+    {
+        return $this->between($date1, $date2, false);
+    }
+
+    /**
+     * Determines if the instance is between two others
+     *
+     * @example
+     * ```
+     * Carbon::parse('2018-07-25')->isBetween('2018-07-14', '2018-08-01'); // true
+     * Carbon::parse('2018-07-25')->isBetween('2018-08-01', '2018-08-20'); // false
+     * Carbon::parse('2018-07-25')->isBetween('2018-07-25', '2018-08-01'); // true
+     * Carbon::parse('2018-07-25')->isBetween('2018-07-25', '2018-08-01', false); // false
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2
+     * @param bool                                    $equal Indicates if an equal to comparison should be done
+     *
+     * @return bool
+     */
+    public function isBetween($date1, $date2, $equal = true): bool
+    {
+        return $this->between($date1, $date2, $equal);
+    }
+
+    /**
+     * Determines if the instance is a weekday.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-07-14')->isWeekday(); // false
+     * Carbon::parse('2019-07-15')->isWeekday(); // true
+     * ```
+     *
+     * @return bool
+     */
+    public function isWeekday()
+    {
+        return !$this->isWeekend();
+    }
+
+    /**
+     * Determines if the instance is a weekend day.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-07-14')->isWeekend(); // true
+     * Carbon::parse('2019-07-15')->isWeekend(); // false
+     * ```
+     *
+     * @return bool
+     */
+    public function isWeekend()
+    {
+        return \in_array($this->dayOfWeek, static::$weekendDays);
+    }
+
+    /**
+     * Determines if the instance is yesterday.
+     *
+     * @example
+     * ```
+     * Carbon::yesterday()->isYesterday(); // true
+     * Carbon::tomorrow()->isYesterday(); // false
+     * ```
+     *
+     * @return bool
+     */
+    public function isYesterday()
+    {
+        return $this->toDateString() === static::yesterday($this->getTimezone())->toDateString();
+    }
+
+    /**
+     * Determines if the instance is today.
+     *
+     * @example
+     * ```
+     * Carbon::today()->isToday(); // true
+     * Carbon::tomorrow()->isToday(); // false
+     * ```
+     *
+     * @return bool
+     */
+    public function isToday()
+    {
+        return $this->toDateString() === $this->nowWithSameTz()->toDateString();
+    }
+
+    /**
+     * Determines if the instance is tomorrow.
+     *
+     * @example
+     * ```
+     * Carbon::tomorrow()->isTomorrow(); // true
+     * Carbon::yesterday()->isTomorrow(); // false
+     * ```
+     *
+     * @return bool
+     */
+    public function isTomorrow()
+    {
+        return $this->toDateString() === static::tomorrow($this->getTimezone())->toDateString();
+    }
+
+    /**
+     * Determines if the instance is in the future, ie. greater (after) than now.
+     *
+     * @example
+     * ```
+     * Carbon::now()->addHours(5)->isFuture(); // true
+     * Carbon::now()->subHours(5)->isFuture(); // false
+     * ```
+     *
+     * @return bool
+     */
+    public function isFuture()
+    {
+        return $this->greaterThan($this->nowWithSameTz());
+    }
+
+    /**
+     * Determines if the instance is in the past, ie. less (before) than now.
+     *
+     * @example
+     * ```
+     * Carbon::now()->subHours(5)->isPast(); // true
+     * Carbon::now()->addHours(5)->isPast(); // false
+     * ```
+     *
+     * @return bool
+     */
+    public function isPast()
+    {
+        return $this->lessThan($this->nowWithSameTz());
+    }
+
+    /**
+     * Determines if the instance is a leap year.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2020-01-01')->isLeapYear(); // true
+     * Carbon::parse('2019-01-01')->isLeapYear(); // false
+     * ```
+     *
+     * @return bool
+     */
+    public function isLeapYear()
+    {
+        return $this->rawFormat('L') === '1';
+    }
+
+    /**
+     * Determines if the instance is a long year
+     *
+     * @example
+     * ```
+     * Carbon::parse('2015-01-01')->isLongYear(); // true
+     * Carbon::parse('2016-01-01')->isLongYear(); // false
+     * ```
+     *
+     * @see https://en.wikipedia.org/wiki/ISO_8601#Week_dates
+     *
+     * @return bool
+     */
+    public function isLongYear()
+    {
+        return static::create($this->year, 12, 28, 0, 0, 0, $this->tz)->weekOfYear === 53;
+    }
+
+    /**
+     * Compares the formatted values of the two dates.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-06-13')->isSameAs('Y-d', Carbon::parse('2019-12-13')); // true
+     * Carbon::parse('2019-06-13')->isSameAs('Y-d', Carbon::parse('2019-06-14')); // false
+     * ```
+     *
+     * @param string                                        $format date formats to compare.
+     * @param \Carbon\Carbon|\DateTimeInterface|string|null $date   instance to compare with or null to use current day.
+     *
+     * @return bool
+     */
+    public function isSameAs($format, $date = null)
+    {
+        return $this->rawFormat($format) === $this->resolveCarbon($date)->rawFormat($format);
+    }
+
+    /**
+     * Determines if the instance is in the current unit given.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-01-13')->isSameUnit('year', Carbon::parse('2019-12-25')); // true
+     * Carbon::parse('2018-12-13')->isSameUnit('year', Carbon::parse('2019-12-25')); // false
+     * ```
+     *
+     * @param string                                 $unit singular unit string
+     * @param \Carbon\Carbon|\DateTimeInterface|null $date instance to compare with or null to use current day.
+     *
+     * @throws BadComparisonUnitException
+     *
+     * @return bool
+     */
+    public function isSameUnit($unit, $date = null)
+    {
+        $units = [
+            // @call isSameUnit
+            'year' => 'Y',
+            // @call isSameUnit
+            'week' => 'o-W',
+            // @call isSameUnit
+            'day' => 'Y-m-d',
+            // @call isSameUnit
+            'hour' => 'Y-m-d H',
+            // @call isSameUnit
+            'minute' => 'Y-m-d H:i',
+            // @call isSameUnit
+            'second' => 'Y-m-d H:i:s',
+            // @call isSameUnit
+            'micro' => 'Y-m-d H:i:s.u',
+            // @call isSameUnit
+            'microsecond' => 'Y-m-d H:i:s.u',
+        ];
+
+        if (!isset($units[$unit])) {
+            if (isset($this->$unit)) {
+                return $this->resolveCarbon($date)->$unit === $this->$unit;
+            }
+
+            if ($this->localStrictModeEnabled ?? static::isStrictModeEnabled()) {
+                throw new BadComparisonUnitException($unit);
+            }
+
+            return false;
+        }
+
+        return $this->isSameAs($units[$unit], $date);
+    }
+
+    /**
+     * Determines if the instance is in the current unit given.
+     *
+     * @example
+     * ```
+     * Carbon::now()->isCurrentUnit('hour'); // true
+     * Carbon::now()->subHours(2)->isCurrentUnit('hour'); // false
+     * ```
+     *
+     * @param string $unit The unit to test.
+     *
+     * @throws BadMethodCallException
+     *
+     * @return bool
+     */
+    public function isCurrentUnit($unit)
+    {
+        return $this->{'isSame'.ucfirst($unit)}();
+    }
+
+    /**
+     * Checks if the passed in date is in the same quarter as the instance quarter (and year if needed).
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2019-03-01')); // true
+     * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2019-04-01')); // false
+     * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2018-03-01')); // false
+     * Carbon::parse('2019-01-12')->isSameQuarter(Carbon::parse('2018-03-01'), false); // true
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|string|null $date       The instance to compare with or null to use current day.
+     * @param bool                                          $ofSameYear Check if it is the same month in the same year.
+     *
+     * @return bool
+     */
+    public function isSameQuarter($date = null, $ofSameYear = true)
+    {
+        $date = $this->resolveCarbon($date);
+
+        return $this->quarter === $date->quarter && (!$ofSameYear || $this->isSameYear($date));
+    }
+
+    /**
+     * Checks if the passed in date is in the same month as the instance´s month.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2019-01-01')); // true
+     * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2019-02-01')); // false
+     * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2018-01-01')); // false
+     * Carbon::parse('2019-01-12')->isSameMonth(Carbon::parse('2018-01-01'), false); // true
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|null $date       The instance to compare with or null to use the current date.
+     * @param bool                                   $ofSameYear Check if it is the same month in the same year.
+     *
+     * @return bool
+     */
+    public function isSameMonth($date = null, $ofSameYear = true)
+    {
+        return $this->isSameAs($ofSameYear ? 'Y-m' : 'm', $date);
+    }
+
+    /**
+     * Checks if this day is a specific day of the week.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-07-17')->isDayOfWeek(Carbon::WEDNESDAY); // true
+     * Carbon::parse('2019-07-17')->isDayOfWeek(Carbon::FRIDAY); // false
+     * Carbon::parse('2019-07-17')->isDayOfWeek('Wednesday'); // true
+     * Carbon::parse('2019-07-17')->isDayOfWeek('Friday'); // false
+     * ```
+     *
+     * @param int $dayOfWeek
+     *
+     * @return bool
+     */
+    public function isDayOfWeek($dayOfWeek)
+    {
+        if (\is_string($dayOfWeek) && \defined($constant = static::class.'::'.strtoupper($dayOfWeek))) {
+            $dayOfWeek = \constant($constant);
+        }
+
+        return $this->dayOfWeek === $dayOfWeek;
+    }
+
+    /**
+     * Check if its the birthday. Compares the date/month values of the two dates.
+     *
+     * @example
+     * ```
+     * Carbon::now()->subYears(5)->isBirthday(); // true
+     * Carbon::now()->subYears(5)->subDay()->isBirthday(); // false
+     * Carbon::parse('2019-06-05')->isBirthday(Carbon::parse('2001-06-05')); // true
+     * Carbon::parse('2019-06-05')->isBirthday(Carbon::parse('2001-06-06')); // false
+     * ```
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|null $date The instance to compare with or null to use current day.
+     *
+     * @return bool
+     */
+    public function isBirthday($date = null)
+    {
+        return $this->isSameAs('md', $date);
+    }
+
+    /**
+     * Check if today is the last day of the Month
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-02-28')->isLastOfMonth(); // true
+     * Carbon::parse('2019-03-28')->isLastOfMonth(); // false
+     * Carbon::parse('2019-03-30')->isLastOfMonth(); // false
+     * Carbon::parse('2019-03-31')->isLastOfMonth(); // true
+     * Carbon::parse('2019-04-30')->isLastOfMonth(); // true
+     * ```
+     *
+     * @return bool
+     */
+    public function isLastOfMonth()
+    {
+        return $this->day === $this->daysInMonth;
+    }
+
+    /**
+     * Check if the instance is start of day / midnight.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-02-28 00:00:00')->isStartOfDay(); // true
+     * Carbon::parse('2019-02-28 00:00:00.999999')->isStartOfDay(); // true
+     * Carbon::parse('2019-02-28 00:00:01')->isStartOfDay(); // false
+     * Carbon::parse('2019-02-28 00:00:00.000000')->isStartOfDay(true); // true
+     * Carbon::parse('2019-02-28 00:00:00.000012')->isStartOfDay(true); // false
+     * ```
+     *
+     * @param bool $checkMicroseconds check time at microseconds precision
+     *
+     * @return bool
+     */
+    public function isStartOfDay($checkMicroseconds = false)
+    {
+        /* @var CarbonInterface $this */
+        return $checkMicroseconds
+            ? $this->rawFormat('H:i:s.u') === '00:00:00.000000'
+            : $this->rawFormat('H:i:s') === '00:00:00';
+    }
+
+    /**
+     * Check if the instance is end of day.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-02-28 23:59:59.999999')->isEndOfDay(); // true
+     * Carbon::parse('2019-02-28 23:59:59.123456')->isEndOfDay(); // true
+     * Carbon::parse('2019-02-28 23:59:59')->isEndOfDay(); // true
+     * Carbon::parse('2019-02-28 23:59:58.999999')->isEndOfDay(); // false
+     * Carbon::parse('2019-02-28 23:59:59.999999')->isEndOfDay(true); // true
+     * Carbon::parse('2019-02-28 23:59:59.123456')->isEndOfDay(true); // false
+     * Carbon::parse('2019-02-28 23:59:59')->isEndOfDay(true); // false
+     * ```
+     *
+     * @param bool $checkMicroseconds check time at microseconds precision
+     *
+     * @return bool
+     */
+    public function isEndOfDay($checkMicroseconds = false)
+    {
+        /* @var CarbonInterface $this */
+        return $checkMicroseconds
+            ? $this->rawFormat('H:i:s.u') === '23:59:59.999999'
+            : $this->rawFormat('H:i:s') === '23:59:59';
+    }
+
+    /**
+     * Check if the instance is start of day / midnight.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-02-28 00:00:00')->isMidnight(); // true
+     * Carbon::parse('2019-02-28 00:00:00.999999')->isMidnight(); // true
+     * Carbon::parse('2019-02-28 00:00:01')->isMidnight(); // false
+     * ```
+     *
+     * @return bool
+     */
+    public function isMidnight()
+    {
+        return $this->isStartOfDay();
+    }
+
+    /**
+     * Check if the instance is midday.
+     *
+     * @example
+     * ```
+     * Carbon::parse('2019-02-28 11:59:59.999999')->isMidday(); // false
+     * Carbon::parse('2019-02-28 12:00:00')->isMidday(); // true
+     * Carbon::parse('2019-02-28 12:00:00.999999')->isMidday(); // true
+     * Carbon::parse('2019-02-28 12:00:01')->isMidday(); // false
+     * ```
+     *
+     * @return bool
+     */
+    public function isMidday()
+    {
+        /* @var CarbonInterface $this */
+        return $this->rawFormat('G:i:s') === static::$midDayAt.':00:00';
+    }
+
+    /**
+     * Checks if the (date)time string is in a given format.
+     *
+     * @example
+     * ```
+     * Carbon::hasFormat('11:12:45', 'h:i:s'); // true
+     * Carbon::hasFormat('13:12:45', 'h:i:s'); // false
+     * ```
+     *
+     * @param string $date
+     * @param string $format
+     *
+     * @return bool
+     */
+    public static function hasFormat($date, $format)
+    {
+        // createFromFormat() is known to handle edge cases silently.
+        // E.g. "1975-5-1" (Y-n-j) will still be parsed correctly when "Y-m-d" is supplied as the format.
+        // To ensure we're really testing against our desired format, perform an additional regex validation.
+
+        return self::matchFormatPattern((string) $date, preg_quote((string) $format, '/'), static::$regexFormats);
+    }
+
+    /**
+     * Checks if the (date)time string is in a given format.
+     *
+     * @example
+     * ```
+     * Carbon::hasFormatWithModifiers('31/08/2015', 'd#m#Y'); // true
+     * Carbon::hasFormatWithModifiers('31/08/2015', 'm#d#Y'); // false
+     * ```
+     *
+     * @param string $date
+     * @param string $format
+     *
+     * @return bool
+     */
+    public static function hasFormatWithModifiers($date, $format): bool
+    {
+        return self::matchFormatPattern((string) $date, (string) $format, array_merge(static::$regexFormats, static::$regexFormatModifiers));
+    }
+
+    /**
+     * Checks if the (date)time string is in a given format and valid to create a
+     * new instance.
+     *
+     * @example
+     * ```
+     * Carbon::canBeCreatedFromFormat('11:12:45', 'h:i:s'); // true
+     * Carbon::canBeCreatedFromFormat('13:12:45', 'h:i:s'); // false
+     * ```
+     *
+     * @param string $date
+     * @param string $format
+     *
+     * @return bool
+     */
+    public static function canBeCreatedFromFormat($date, $format)
+    {
+        try {
+            // Try to create a DateTime object. Throws an InvalidArgumentException if the provided time string
+            // doesn't match the format in any way.
+            if (!static::rawCreateFromFormat($format, $date)) {
+                return false;
+            }
+        } catch (InvalidArgumentException $e) {
+            return false;
+        }
+
+        return static::hasFormatWithModifiers($date, $format);
+    }
+
+    /**
+     * Returns true if the current date matches the given string.
+     *
+     * @example
+     * ```
+     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019')); // true
+     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2018')); // false
+     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019-06')); // true
+     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('06-02')); // true
+     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('2019-06-02')); // true
+     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('Sunday')); // true
+     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('June')); // true
+     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23')); // true
+     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23:45')); // true
+     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12:23:00')); // false
+     * var_dump(Carbon::parse('2019-06-02 12:23:45')->is('12h')); // true
+     * var_dump(Carbon::parse('2019-06-02 15:23:45')->is('3pm')); // true
+     * var_dump(Carbon::parse('2019-06-02 15:23:45')->is('3am')); // false
+     * ```
+     *
+     * @param string $tester day name, month name, hour, date, etc. as string
+     *
+     * @return bool
+     */
+    public function is(string $tester)
+    {
+        $tester = trim($tester);
+
+        if (preg_match('/^\d+$/', $tester)) {
+            return $this->year === (int) $tester;
+        }
+
+        if (preg_match('/^\d{3,}-\d{1,2}$/', $tester)) {
+            return $this->isSameMonth(static::parse($tester));
+        }
+
+        if (preg_match('/^\d{1,2}-\d{1,2}$/', $tester)) {
+            return $this->isSameDay(static::parse($this->year.'-'.$tester));
+        }
+
+        $modifier = preg_replace('/(\d)h$/i', '$1:00', $tester);
+
+        /* @var CarbonInterface $max */
+        $median = static::parse('5555-06-15 12:30:30.555555')->modify($modifier);
+        $current = $this->avoidMutation();
+        /* @var CarbonInterface $other */
+        $other = $this->avoidMutation()->modify($modifier);
+
+        if ($current->eq($other)) {
+            return true;
+        }
+
+        if (preg_match('/\d:\d{1,2}:\d{1,2}$/', $tester)) {
+            return $current->startOfSecond()->eq($other);
+        }
+
+        if (preg_match('/\d:\d{1,2}$/', $tester)) {
+            return $current->startOfMinute()->eq($other);
+        }
+
+        if (preg_match('/\d(h|am|pm)$/', $tester)) {
+            return $current->startOfHour()->eq($other);
+        }
+
+        if (preg_match(
+            '/^(january|february|march|april|may|june|july|august|september|october|november|december)\s+\d+$/i',
+            $tester
+        )) {
+            return $current->startOfMonth()->eq($other->startOfMonth());
+        }
+
+        $units = [
+            'month' => [1, 'year'],
+            'day' => [1, 'month'],
+            'hour' => [0, 'day'],
+            'minute' => [0, 'hour'],
+            'second' => [0, 'minute'],
+            'microsecond' => [0, 'second'],
+        ];
+
+        foreach ($units as $unit => [$minimum, $startUnit]) {
+            if ($minimum === $median->$unit) {
+                $current = $current->startOf($startUnit);
+
+                break;
+            }
+        }
+
+        return $current->eq($other);
+    }
+
+    /**
+     * Checks if the (date)time string is in a given format with
+     * given list of pattern replacements.
+     *
+     * @example
+     * ```
+     * Carbon::hasFormat('11:12:45', 'h:i:s'); // true
+     * Carbon::hasFormat('13:12:45', 'h:i:s'); // false
+     * ```
+     *
+     * @param string $date
+     * @param string $format
+     * @param array  $replacements
+     *
+     * @return bool
+     */
+    private static function matchFormatPattern(string $date, string $format, array $replacements): bool
+    {
+        // Preg quote, but remove escaped backslashes since we'll deal with escaped characters in the format string.
+        $regex = str_replace('\\\\', '\\', $format);
+        // Replace not-escaped letters
+        $regex = preg_replace_callback(
+            '/(?<!\\\\)((?:\\\\{2})*)(['.implode('', array_keys($replacements)).'])/',
+            function ($match) use ($replacements) {
+                return $match[1].strtr($match[2], $replacements);
+            },
+            $regex
+        );
+        // Replace escaped letters by the letter itself
+        $regex = preg_replace('/(?<!\\\\)((?:\\\\{2})*)\\\\(\w)/', '$1$2', $regex);
+        // Escape not escaped slashes
+        $regex = preg_replace('#(?<!\\\\)((?:\\\\{2})*)/#', '$1\\/', $regex);
+
+        return (bool) @preg_match('/^'.$regex.'$/', $date);
+    }
+
+    /**
+     * Returns true if the date was created using CarbonImmutable::startOfTime()
+     *
+     * @return bool
+     */
+    public function isStartOfTime(): bool
+    {
+        return $this->startOfTime ?? false;
+    }
+
+    /**
+     * Returns true if the date was created using CarbonImmutable::endOfTime()
+     *
+     * @return bool
+     */
+    public function isEndOfTime(): bool
+    {
+        return $this->endOfTime ?? false;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Converter.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Converter.php
new file mode 100644
index 0000000..7ba6225
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Converter.php
@@ -0,0 +1,652 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Traits;
+
+use Carbon\Carbon;
+use Carbon\CarbonImmutable;
+use Carbon\CarbonInterface;
+use Carbon\CarbonInterval;
+use Carbon\CarbonPeriod;
+use Carbon\Exceptions\UnitException;
+use Closure;
+use DateTime;
+use DateTimeImmutable;
+use ReturnTypeWillChange;
+
+/**
+ * Trait Converter.
+ *
+ * Change date into different string formats and types and
+ * handle the string cast.
+ *
+ * Depends on the following methods:
+ *
+ * @method static copy()
+ */
+trait Converter
+{
+    /**
+     * Format to use for __toString method when type juggling occurs.
+     *
+     * @var string|Closure|null
+     */
+    protected static $toStringFormat;
+
+    /**
+     * Reset the format used to the default when type juggling a Carbon instance to a string
+     *
+     * @return void
+     */
+    public static function resetToStringFormat()
+    {
+        static::setToStringFormat(null);
+    }
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather let Carbon object being casted to string with DEFAULT_TO_STRING_FORMAT, and
+     *             use other method or custom format passed to format() method if you need to dump an other string
+     *             format.
+     *
+     * Set the default format used when type juggling a Carbon instance to a string
+     *
+     * @param string|Closure|null $format
+     *
+     * @return void
+     */
+    public static function setToStringFormat($format)
+    {
+        static::$toStringFormat = $format;
+    }
+
+    /**
+     * Returns the formatted date string on success or FALSE on failure.
+     *
+     * @see https://php.net/manual/en/datetime.format.php
+     *
+     * @param string $format
+     *
+     * @return string
+     */
+    #[ReturnTypeWillChange]
+    public function format($format)
+    {
+        $function = $this->localFormatFunction ?: static::$formatFunction;
+
+        if (!$function) {
+            return $this->rawFormat($format);
+        }
+
+        if (\is_string($function) && method_exists($this, $function)) {
+            $function = [$this, $function];
+        }
+
+        return $function(...\func_get_args());
+    }
+
+    /**
+     * @see https://php.net/manual/en/datetime.format.php
+     *
+     * @param string $format
+     *
+     * @return string
+     */
+    public function rawFormat($format)
+    {
+        return parent::format($format);
+    }
+
+    /**
+     * Format the instance as a string using the set format
+     *
+     * @example
+     * ```
+     * echo Carbon::now(); // Carbon instances can be casted to string
+     * ```
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        $format = $this->localToStringFormat ?? static::$toStringFormat;
+
+        return $format instanceof Closure
+            ? $format($this)
+            : $this->rawFormat($format ?: (
+                \defined('static::DEFAULT_TO_STRING_FORMAT')
+                    ? static::DEFAULT_TO_STRING_FORMAT
+                    : CarbonInterface::DEFAULT_TO_STRING_FORMAT
+            ));
+    }
+
+    /**
+     * Format the instance as date
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toDateString();
+     * ```
+     *
+     * @return string
+     */
+    public function toDateString()
+    {
+        return $this->rawFormat('Y-m-d');
+    }
+
+    /**
+     * Format the instance as a readable date
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toFormattedDateString();
+     * ```
+     *
+     * @return string
+     */
+    public function toFormattedDateString()
+    {
+        return $this->rawFormat('M j, Y');
+    }
+
+    /**
+     * Format the instance as time
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toTimeString();
+     * ```
+     *
+     * @param string $unitPrecision
+     *
+     * @return string
+     */
+    public function toTimeString($unitPrecision = 'second')
+    {
+        return $this->rawFormat(static::getTimeFormatByPrecision($unitPrecision));
+    }
+
+    /**
+     * Format the instance as date and time
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toDateTimeString();
+     * ```
+     *
+     * @param string $unitPrecision
+     *
+     * @return string
+     */
+    public function toDateTimeString($unitPrecision = 'second')
+    {
+        return $this->rawFormat('Y-m-d '.static::getTimeFormatByPrecision($unitPrecision));
+    }
+
+    /**
+     * Return a format from H:i to H:i:s.u according to given unit precision.
+     *
+     * @param string $unitPrecision "minute", "second", "millisecond" or "microsecond"
+     *
+     * @return string
+     */
+    public static function getTimeFormatByPrecision($unitPrecision)
+    {
+        switch (static::singularUnit($unitPrecision)) {
+            case 'minute':
+                return 'H:i';
+            case 'second':
+                return 'H:i:s';
+            case 'm':
+            case 'millisecond':
+                return 'H:i:s.v';
+            case 'µ':
+            case 'microsecond':
+                return 'H:i:s.u';
+        }
+
+        throw new UnitException('Precision unit expected among: minute, second, millisecond and microsecond.');
+    }
+
+    /**
+     * Format the instance as date and time T-separated with no timezone
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toDateTimeLocalString();
+     * echo "\n";
+     * echo Carbon::now()->toDateTimeLocalString('minute'); // You can specify precision among: minute, second, millisecond and microsecond
+     * ```
+     *
+     * @param string $unitPrecision
+     *
+     * @return string
+     */
+    public function toDateTimeLocalString($unitPrecision = 'second')
+    {
+        return $this->rawFormat('Y-m-d\T'.static::getTimeFormatByPrecision($unitPrecision));
+    }
+
+    /**
+     * Format the instance with day, date and time
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toDayDateTimeString();
+     * ```
+     *
+     * @return string
+     */
+    public function toDayDateTimeString()
+    {
+        return $this->rawFormat('D, M j, Y g:i A');
+    }
+
+    /**
+     * Format the instance as ATOM
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toAtomString();
+     * ```
+     *
+     * @return string
+     */
+    public function toAtomString()
+    {
+        return $this->rawFormat(DateTime::ATOM);
+    }
+
+    /**
+     * Format the instance as COOKIE
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toCookieString();
+     * ```
+     *
+     * @return string
+     */
+    public function toCookieString()
+    {
+        return $this->rawFormat(DateTime::COOKIE);
+    }
+
+    /**
+     * Format the instance as ISO8601
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toIso8601String();
+     * ```
+     *
+     * @return string
+     */
+    public function toIso8601String()
+    {
+        return $this->toAtomString();
+    }
+
+    /**
+     * Format the instance as RFC822
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toRfc822String();
+     * ```
+     *
+     * @return string
+     */
+    public function toRfc822String()
+    {
+        return $this->rawFormat(DateTime::RFC822);
+    }
+
+    /**
+     * Convert the instance to UTC and return as Zulu ISO8601
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toIso8601ZuluString();
+     * ```
+     *
+     * @param string $unitPrecision
+     *
+     * @return string
+     */
+    public function toIso8601ZuluString($unitPrecision = 'second')
+    {
+        return $this->avoidMutation()
+            ->utc()
+            ->rawFormat('Y-m-d\T'.static::getTimeFormatByPrecision($unitPrecision).'\Z');
+    }
+
+    /**
+     * Format the instance as RFC850
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toRfc850String();
+     * ```
+     *
+     * @return string
+     */
+    public function toRfc850String()
+    {
+        return $this->rawFormat(DateTime::RFC850);
+    }
+
+    /**
+     * Format the instance as RFC1036
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toRfc1036String();
+     * ```
+     *
+     * @return string
+     */
+    public function toRfc1036String()
+    {
+        return $this->rawFormat(DateTime::RFC1036);
+    }
+
+    /**
+     * Format the instance as RFC1123
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toRfc1123String();
+     * ```
+     *
+     * @return string
+     */
+    public function toRfc1123String()
+    {
+        return $this->rawFormat(DateTime::RFC1123);
+    }
+
+    /**
+     * Format the instance as RFC2822
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toRfc2822String();
+     * ```
+     *
+     * @return string
+     */
+    public function toRfc2822String()
+    {
+        return $this->rawFormat(DateTime::RFC2822);
+    }
+
+    /**
+     * Format the instance as RFC3339
+     *
+     * @param bool $extended
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toRfc3339String() . "\n";
+     * echo Carbon::now()->toRfc3339String(true) . "\n";
+     * ```
+     *
+     * @return string
+     */
+    public function toRfc3339String($extended = false)
+    {
+        $format = DateTime::RFC3339;
+        if ($extended) {
+            $format = DateTime::RFC3339_EXTENDED;
+        }
+
+        return $this->rawFormat($format);
+    }
+
+    /**
+     * Format the instance as RSS
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toRssString();
+     * ```
+     *
+     * @return string
+     */
+    public function toRssString()
+    {
+        return $this->rawFormat(DateTime::RSS);
+    }
+
+    /**
+     * Format the instance as W3C
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toW3cString();
+     * ```
+     *
+     * @return string
+     */
+    public function toW3cString()
+    {
+        return $this->rawFormat(DateTime::W3C);
+    }
+
+    /**
+     * Format the instance as RFC7231
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toRfc7231String();
+     * ```
+     *
+     * @return string
+     */
+    public function toRfc7231String()
+    {
+        return $this->avoidMutation()
+            ->setTimezone('GMT')
+            ->rawFormat(\defined('static::RFC7231_FORMAT') ? static::RFC7231_FORMAT : CarbonInterface::RFC7231_FORMAT);
+    }
+
+    /**
+     * Get default array representation.
+     *
+     * @example
+     * ```
+     * var_dump(Carbon::now()->toArray());
+     * ```
+     *
+     * @return array
+     */
+    public function toArray()
+    {
+        return [
+            'year' => $this->year,
+            'month' => $this->month,
+            'day' => $this->day,
+            'dayOfWeek' => $this->dayOfWeek,
+            'dayOfYear' => $this->dayOfYear,
+            'hour' => $this->hour,
+            'minute' => $this->minute,
+            'second' => $this->second,
+            'micro' => $this->micro,
+            'timestamp' => $this->timestamp,
+            'formatted' => $this->rawFormat(\defined('static::DEFAULT_TO_STRING_FORMAT') ? static::DEFAULT_TO_STRING_FORMAT : CarbonInterface::DEFAULT_TO_STRING_FORMAT),
+            'timezone' => $this->timezone,
+        ];
+    }
+
+    /**
+     * Get default object representation.
+     *
+     * @example
+     * ```
+     * var_dump(Carbon::now()->toObject());
+     * ```
+     *
+     * @return object
+     */
+    public function toObject()
+    {
+        return (object) $this->toArray();
+    }
+
+    /**
+     * Returns english human readable complete date string.
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->toString();
+     * ```
+     *
+     * @return string
+     */
+    public function toString()
+    {
+        return $this->avoidMutation()->locale('en')->isoFormat('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
+    }
+
+    /**
+     * Return the ISO-8601 string (ex: 1977-04-22T06:00:00Z, if $keepOffset truthy, offset will be kept:
+     * 1977-04-22T01:00:00-05:00).
+     *
+     * @example
+     * ```
+     * echo Carbon::now('America/Toronto')->toISOString() . "\n";
+     * echo Carbon::now('America/Toronto')->toISOString(true) . "\n";
+     * ```
+     *
+     * @param bool $keepOffset Pass true to keep the date offset. Else forced to UTC.
+     *
+     * @return null|string
+     */
+    public function toISOString($keepOffset = false)
+    {
+        if (!$this->isValid()) {
+            return null;
+        }
+
+        $yearFormat = $this->year < 0 || $this->year > 9999 ? 'YYYYYY' : 'YYYY';
+        $tzFormat = $keepOffset ? 'Z' : '[Z]';
+        $date = $keepOffset ? $this : $this->avoidMutation()->utc();
+
+        return $date->isoFormat("$yearFormat-MM-DD[T]HH:mm:ss.SSSSSS$tzFormat");
+    }
+
+    /**
+     * Return the ISO-8601 string (ex: 1977-04-22T06:00:00Z) with UTC timezone.
+     *
+     * @example
+     * ```
+     * echo Carbon::now('America/Toronto')->toJSON();
+     * ```
+     *
+     * @return null|string
+     */
+    public function toJSON()
+    {
+        return $this->toISOString();
+    }
+
+    /**
+     * Return native DateTime PHP object matching the current instance.
+     *
+     * @example
+     * ```
+     * var_dump(Carbon::now()->toDateTime());
+     * ```
+     *
+     * @return DateTime
+     */
+    public function toDateTime()
+    {
+        return new DateTime($this->rawFormat('Y-m-d H:i:s.u'), $this->getTimezone());
+    }
+
+    /**
+     * Return native toDateTimeImmutable PHP object matching the current instance.
+     *
+     * @example
+     * ```
+     * var_dump(Carbon::now()->toDateTimeImmutable());
+     * ```
+     *
+     * @return DateTimeImmutable
+     */
+    public function toDateTimeImmutable()
+    {
+        return new DateTimeImmutable($this->rawFormat('Y-m-d H:i:s.u'), $this->getTimezone());
+    }
+
+    /**
+     * @alias toDateTime
+     *
+     * Return native DateTime PHP object matching the current instance.
+     *
+     * @example
+     * ```
+     * var_dump(Carbon::now()->toDate());
+     * ```
+     *
+     * @return DateTime
+     */
+    public function toDate()
+    {
+        return $this->toDateTime();
+    }
+
+    /**
+     * Create a iterable CarbonPeriod object from current date to a given end date (and optional interval).
+     *
+     * @param \DateTimeInterface|Carbon|CarbonImmutable|int|null $end      period end date or recurrences count if int
+     * @param int|\DateInterval|string|null                      $interval period default interval or number of the given $unit
+     * @param string|null                                        $unit     if specified, $interval must be an integer
+     *
+     * @return CarbonPeriod
+     */
+    public function toPeriod($end = null, $interval = null, $unit = null)
+    {
+        if ($unit) {
+            $interval = CarbonInterval::make("$interval ".static::pluralUnit($unit));
+        }
+
+        $period = (new CarbonPeriod())->setDateClass(static::class)->setStartDate($this);
+
+        if ($interval) {
+            $period->setDateInterval($interval);
+        }
+
+        if (\is_int($end) || \is_string($end) && ctype_digit($end)) {
+            $period->setRecurrences($end);
+        } elseif ($end) {
+            $period->setEndDate($end);
+        }
+
+        return $period;
+    }
+
+    /**
+     * Create a iterable CarbonPeriod object from current date to a given end date (and optional interval).
+     *
+     * @param \DateTimeInterface|Carbon|CarbonImmutable|null $end      period end date
+     * @param int|\DateInterval|string|null                  $interval period default interval or number of the given $unit
+     * @param string|null                                    $unit     if specified, $interval must be an integer
+     *
+     * @return CarbonPeriod
+     */
+    public function range($end = null, $interval = null, $unit = null)
+    {
+        return $this->toPeriod($end, $interval, $unit);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php
new file mode 100644
index 0000000..fa7cfc7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Creator.php
@@ -0,0 +1,940 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Traits;
+
+use Carbon\Carbon;
+use Carbon\CarbonImmutable;
+use Carbon\CarbonInterface;
+use Carbon\Exceptions\InvalidDateException;
+use Carbon\Exceptions\InvalidFormatException;
+use Carbon\Exceptions\OutOfRangeException;
+use Carbon\Translator;
+use Closure;
+use DateTimeInterface;
+use DateTimeZone;
+use Exception;
+use ReturnTypeWillChange;
+
+/**
+ * Trait Creator.
+ *
+ * Static creators.
+ *
+ * Depends on the following methods:
+ *
+ * @method static Carbon|CarbonImmutable getTestNow()
+ */
+trait Creator
+{
+    use ObjectInitialisation;
+
+    /**
+     * The errors that can occur.
+     *
+     * @var array
+     */
+    protected static $lastErrors;
+
+    /**
+     * Create a new Carbon instance.
+     *
+     * Please see the testing aids section (specifically static::setTestNow())
+     * for more on the possibility of this constructor returning a test instance.
+     *
+     * @param DateTimeInterface|string|null $time
+     * @param DateTimeZone|string|null      $tz
+     *
+     * @throws InvalidFormatException
+     */
+    public function __construct($time = null, $tz = null)
+    {
+        if ($time instanceof DateTimeInterface) {
+            $time = $this->constructTimezoneFromDateTime($time, $tz)->format('Y-m-d H:i:s.u');
+        }
+
+        if (is_numeric($time) && (!\is_string($time) || !preg_match('/^\d{1,14}$/', $time))) {
+            $time = static::createFromTimestampUTC($time)->format('Y-m-d\TH:i:s.uP');
+        }
+
+        // If the class has a test now set and we are trying to create a now()
+        // instance then override as required
+        $isNow = empty($time) || $time === 'now';
+
+        if (method_exists(static::class, 'hasTestNow') &&
+            method_exists(static::class, 'getTestNow') &&
+            static::hasTestNow() &&
+            ($isNow || static::hasRelativeKeywords($time))
+        ) {
+            static::mockConstructorParameters($time, $tz);
+        }
+
+        // Work-around for PHP bug https://bugs.php.net/bug.php?id=67127
+        if (!str_contains((string) .1, '.')) {
+            $locale = setlocale(LC_NUMERIC, '0');
+            setlocale(LC_NUMERIC, 'C');
+        }
+
+        try {
+            parent::__construct($time ?: 'now', static::safeCreateDateTimeZone($tz) ?: null);
+        } catch (Exception $exception) {
+            throw new InvalidFormatException($exception->getMessage(), 0, $exception);
+        }
+
+        $this->constructedObjectId = spl_object_hash($this);
+
+        if (isset($locale)) {
+            setlocale(LC_NUMERIC, $locale);
+        }
+
+        static::setLastErrors(parent::getLastErrors());
+    }
+
+    /**
+     * Get timezone from a datetime instance.
+     *
+     * @param DateTimeInterface        $date
+     * @param DateTimeZone|string|null $tz
+     *
+     * @return DateTimeInterface
+     */
+    private function constructTimezoneFromDateTime(DateTimeInterface $date, &$tz)
+    {
+        if ($tz !== null) {
+            $safeTz = static::safeCreateDateTimeZone($tz);
+
+            if ($safeTz) {
+                return $date->setTimezone($safeTz);
+            }
+
+            return $date;
+        }
+
+        $tz = $date->getTimezone();
+
+        return $date;
+    }
+
+    /**
+     * Update constructedObjectId on cloned.
+     */
+    public function __clone()
+    {
+        $this->constructedObjectId = spl_object_hash($this);
+    }
+
+    /**
+     * Create a Carbon instance from a DateTime one.
+     *
+     * @param DateTimeInterface $date
+     *
+     * @return static
+     */
+    public static function instance($date)
+    {
+        if ($date instanceof static) {
+            return clone $date;
+        }
+
+        static::expectDateTime($date);
+
+        $instance = new static($date->format('Y-m-d H:i:s.u'), $date->getTimezone());
+
+        if ($date instanceof CarbonInterface || $date instanceof Options) {
+            $settings = $date->getSettings();
+
+            if (!$date->hasLocalTranslator()) {
+                unset($settings['locale']);
+            }
+
+            $instance->settings($settings);
+        }
+
+        return $instance;
+    }
+
+    /**
+     * Create a carbon instance from a string.
+     *
+     * This is an alias for the constructor that allows better fluent syntax
+     * as it allows you to do Carbon::parse('Monday next week')->fn() rather
+     * than (new Carbon('Monday next week'))->fn().
+     *
+     * @param string|DateTimeInterface|null $time
+     * @param DateTimeZone|string|null      $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static
+     */
+    public static function rawParse($time = null, $tz = null)
+    {
+        if ($time instanceof DateTimeInterface) {
+            return static::instance($time);
+        }
+
+        try {
+            return new static($time, $tz);
+        } catch (Exception $exception) {
+            $date = @static::now($tz)->change($time);
+
+            if (!$date) {
+                throw new InvalidFormatException("Could not parse '$time': ".$exception->getMessage(), 0, $exception);
+            }
+
+            return $date;
+        }
+    }
+
+    /**
+     * Create a carbon instance from a string.
+     *
+     * This is an alias for the constructor that allows better fluent syntax
+     * as it allows you to do Carbon::parse('Monday next week')->fn() rather
+     * than (new Carbon('Monday next week'))->fn().
+     *
+     * @param string|DateTimeInterface|null $time
+     * @param DateTimeZone|string|null      $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static
+     */
+    public static function parse($time = null, $tz = null)
+    {
+        $function = static::$parseFunction;
+
+        if (!$function) {
+            return static::rawParse($time, $tz);
+        }
+
+        if (\is_string($function) && method_exists(static::class, $function)) {
+            $function = [static::class, $function];
+        }
+
+        return $function(...\func_get_args());
+    }
+
+    /**
+     * Create a carbon instance from a localized string (in French, Japanese, Arabic, etc.).
+     *
+     * @param string                   $time   date/time string in the given language (may also contain English).
+     * @param string|null              $locale if locale is null or not specified, current global locale will be
+     *                                         used instead.
+     * @param DateTimeZone|string|null $tz     optional timezone for the new instance.
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static
+     */
+    public static function parseFromLocale($time, $locale = null, $tz = null)
+    {
+        return static::rawParse(static::translateTimeString($time, $locale, 'en'), $tz);
+    }
+
+    /**
+     * Get a Carbon instance for the current date and time.
+     *
+     * @param DateTimeZone|string|null $tz
+     *
+     * @return static
+     */
+    public static function now($tz = null)
+    {
+        return new static(null, $tz);
+    }
+
+    /**
+     * Create a Carbon instance for today.
+     *
+     * @param DateTimeZone|string|null $tz
+     *
+     * @return static
+     */
+    public static function today($tz = null)
+    {
+        return static::rawParse('today', $tz);
+    }
+
+    /**
+     * Create a Carbon instance for tomorrow.
+     *
+     * @param DateTimeZone|string|null $tz
+     *
+     * @return static
+     */
+    public static function tomorrow($tz = null)
+    {
+        return static::rawParse('tomorrow', $tz);
+    }
+
+    /**
+     * Create a Carbon instance for yesterday.
+     *
+     * @param DateTimeZone|string|null $tz
+     *
+     * @return static
+     */
+    public static function yesterday($tz = null)
+    {
+        return static::rawParse('yesterday', $tz);
+    }
+
+    /**
+     * Create a Carbon instance for the greatest supported date.
+     *
+     * @return static
+     */
+    public static function maxValue()
+    {
+        if (self::$PHPIntSize === 4) {
+            // 32 bit
+            return static::createFromTimestamp(PHP_INT_MAX); // @codeCoverageIgnore
+        }
+
+        // 64 bit
+        return static::create(9999, 12, 31, 23, 59, 59);
+    }
+
+    /**
+     * Create a Carbon instance for the lowest supported date.
+     *
+     * @return static
+     */
+    public static function minValue()
+    {
+        if (self::$PHPIntSize === 4) {
+            // 32 bit
+            return static::createFromTimestamp(~PHP_INT_MAX); // @codeCoverageIgnore
+        }
+
+        // 64 bit
+        return static::create(1, 1, 1, 0, 0, 0);
+    }
+
+    private static function assertBetween($unit, $value, $min, $max)
+    {
+        if (static::isStrictModeEnabled() && ($value < $min || $value > $max)) {
+            throw new OutOfRangeException($unit, $min, $max, $value);
+        }
+    }
+
+    private static function createNowInstance($tz)
+    {
+        if (!static::hasTestNow()) {
+            return static::now($tz);
+        }
+
+        $now = static::getTestNow();
+
+        if ($now instanceof Closure) {
+            return $now(static::now($tz));
+        }
+
+        return $now;
+    }
+
+    /**
+     * Create a new Carbon instance from a specific date and time.
+     *
+     * If any of $year, $month or $day are set to null their now() values will
+     * be used.
+     *
+     * If $hour is null it will be set to its now() value and the default
+     * values for $minute and $second will be their now() values.
+     *
+     * If $hour is not null then the default values for $minute and $second
+     * will be 0.
+     *
+     * @param int|null                 $year
+     * @param int|null                 $month
+     * @param int|null                 $day
+     * @param int|null                 $hour
+     * @param int|null                 $minute
+     * @param int|null                 $second
+     * @param DateTimeZone|string|null $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static|false
+     */
+    public static function create($year = 0, $month = 1, $day = 1, $hour = 0, $minute = 0, $second = 0, $tz = null)
+    {
+        if (\is_string($year) && !is_numeric($year)) {
+            return static::parse($year, $tz ?: (\is_string($month) || $month instanceof DateTimeZone ? $month : null));
+        }
+
+        $defaults = null;
+        $getDefault = function ($unit) use ($tz, &$defaults) {
+            if ($defaults === null) {
+                $now = self::createNowInstance($tz);
+
+                $defaults = array_combine([
+                    'year',
+                    'month',
+                    'day',
+                    'hour',
+                    'minute',
+                    'second',
+                ], explode('-', $now->rawFormat('Y-n-j-G-i-s.u')));
+            }
+
+            return $defaults[$unit];
+        };
+
+        $year = $year === null ? $getDefault('year') : $year;
+        $month = $month === null ? $getDefault('month') : $month;
+        $day = $day === null ? $getDefault('day') : $day;
+        $hour = $hour === null ? $getDefault('hour') : $hour;
+        $minute = $minute === null ? $getDefault('minute') : $minute;
+        $second = (float) ($second === null ? $getDefault('second') : $second);
+
+        self::assertBetween('month', $month, 0, 99);
+        self::assertBetween('day', $day, 0, 99);
+        self::assertBetween('hour', $hour, 0, 99);
+        self::assertBetween('minute', $minute, 0, 99);
+        self::assertBetween('second', $second, 0, 99);
+
+        $fixYear = null;
+
+        if ($year < 0) {
+            $fixYear = $year;
+            $year = 0;
+        } elseif ($year > 9999) {
+            $fixYear = $year - 9999;
+            $year = 9999;
+        }
+
+        $second = ($second < 10 ? '0' : '').number_format($second, 6);
+        $instance = static::rawCreateFromFormat('!Y-n-j G:i:s.u', sprintf('%s-%s-%s %s:%02s:%02s', $year, $month, $day, $hour, $minute, $second), $tz);
+
+        if ($fixYear !== null) {
+            $instance = $instance->addYears($fixYear);
+        }
+
+        return $instance;
+    }
+
+    /**
+     * Create a new safe Carbon instance from a specific date and time.
+     *
+     * If any of $year, $month or $day are set to null their now() values will
+     * be used.
+     *
+     * If $hour is null it will be set to its now() value and the default
+     * values for $minute and $second will be their now() values.
+     *
+     * If $hour is not null then the default values for $minute and $second
+     * will be 0.
+     *
+     * If one of the set values is not valid, an InvalidDateException
+     * will be thrown.
+     *
+     * @param int|null                 $year
+     * @param int|null                 $month
+     * @param int|null                 $day
+     * @param int|null                 $hour
+     * @param int|null                 $minute
+     * @param int|null                 $second
+     * @param DateTimeZone|string|null $tz
+     *
+     * @throws InvalidDateException
+     *
+     * @return static|false
+     */
+    public static function createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null)
+    {
+        $fields = static::getRangesByUnit();
+
+        foreach ($fields as $field => $range) {
+            if ($$field !== null && (!\is_int($$field) || $$field < $range[0] || $$field > $range[1])) {
+                if (static::isStrictModeEnabled()) {
+                    throw new InvalidDateException($field, $$field);
+                }
+
+                return false;
+            }
+        }
+
+        $instance = static::create($year, $month, $day, $hour, $minute, $second, $tz);
+
+        foreach (array_reverse($fields) as $field => $range) {
+            if ($$field !== null && (!\is_int($$field) || $$field !== $instance->$field)) {
+                if (static::isStrictModeEnabled()) {
+                    throw new InvalidDateException($field, $$field);
+                }
+
+                return false;
+            }
+        }
+
+        return $instance;
+    }
+
+    /**
+     * Create a new Carbon instance from a specific date and time using strict validation.
+     *
+     * @see create()
+     *
+     * @param int|null                 $year
+     * @param int|null                 $month
+     * @param int|null                 $day
+     * @param int|null                 $hour
+     * @param int|null                 $minute
+     * @param int|null                 $second
+     * @param DateTimeZone|string|null $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static
+     */
+    public static function createStrict(?int $year = 0, ?int $month = 1, ?int $day = 1, ?int $hour = 0, ?int $minute = 0, ?int $second = 0, $tz = null): self
+    {
+        $initialStrictMode = static::isStrictModeEnabled();
+        static::useStrictMode(true);
+
+        try {
+            $date = static::create($year, $month, $day, $hour, $minute, $second, $tz);
+        } finally {
+            static::useStrictMode($initialStrictMode);
+        }
+
+        return $date;
+    }
+
+    /**
+     * Create a Carbon instance from just a date. The time portion is set to now.
+     *
+     * @param int|null                 $year
+     * @param int|null                 $month
+     * @param int|null                 $day
+     * @param DateTimeZone|string|null $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static
+     */
+    public static function createFromDate($year = null, $month = null, $day = null, $tz = null)
+    {
+        return static::create($year, $month, $day, null, null, null, $tz);
+    }
+
+    /**
+     * Create a Carbon instance from just a date. The time portion is set to midnight.
+     *
+     * @param int|null                 $year
+     * @param int|null                 $month
+     * @param int|null                 $day
+     * @param DateTimeZone|string|null $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static
+     */
+    public static function createMidnightDate($year = null, $month = null, $day = null, $tz = null)
+    {
+        return static::create($year, $month, $day, 0, 0, 0, $tz);
+    }
+
+    /**
+     * Create a Carbon instance from just a time. The date portion is set to today.
+     *
+     * @param int|null                 $hour
+     * @param int|null                 $minute
+     * @param int|null                 $second
+     * @param DateTimeZone|string|null $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static
+     */
+    public static function createFromTime($hour = 0, $minute = 0, $second = 0, $tz = null)
+    {
+        return static::create(null, null, null, $hour, $minute, $second, $tz);
+    }
+
+    /**
+     * Create a Carbon instance from a time string. The date portion is set to today.
+     *
+     * @param string                   $time
+     * @param DateTimeZone|string|null $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static
+     */
+    public static function createFromTimeString($time, $tz = null)
+    {
+        return static::today($tz)->setTimeFromTimeString($time);
+    }
+
+    /**
+     * @param string                         $format     Datetime format
+     * @param string                         $time
+     * @param DateTimeZone|string|false|null $originalTz
+     *
+     * @return DateTimeInterface|false
+     */
+    private static function createFromFormatAndTimezone($format, $time, $originalTz)
+    {
+        // Work-around for https://bugs.php.net/bug.php?id=75577
+        // @codeCoverageIgnoreStart
+        if (version_compare(PHP_VERSION, '7.3.0-dev', '<')) {
+            $format = str_replace('.v', '.u', $format);
+        }
+        // @codeCoverageIgnoreEnd
+
+        if ($originalTz === null) {
+            return parent::createFromFormat($format, (string) $time);
+        }
+
+        $tz = \is_int($originalTz)
+            ? @timezone_name_from_abbr('', (int) ($originalTz * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE), 1)
+            : $originalTz;
+
+        $tz = static::safeCreateDateTimeZone($tz, $originalTz);
+
+        if ($tz === false) {
+            return false;
+        }
+
+        return parent::createFromFormat($format, (string) $time, $tz);
+    }
+
+    /**
+     * Create a Carbon instance from a specific format.
+     *
+     * @param string                         $format Datetime format
+     * @param string                         $time
+     * @param DateTimeZone|string|false|null $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static|false
+     */
+    public static function rawCreateFromFormat($format, $time, $tz = null)
+    {
+        // Work-around for https://bugs.php.net/bug.php?id=80141
+        $format = preg_replace('/(?<!\\\\)((?:\\\\{2})*)c/', '$1Y-m-d\TH:i:sP', $format);
+
+        if (preg_match('/(?<!\\\\)(?:\\\\{2})*(a|A)/', $format, $aMatches, PREG_OFFSET_CAPTURE) &&
+            preg_match('/(?<!\\\\)(?:\\\\{2})*(h|g|H|G)/', $format, $hMatches, PREG_OFFSET_CAPTURE) &&
+            $aMatches[1][1] < $hMatches[1][1] &&
+            preg_match('/(am|pm|AM|PM)/', $time)
+        ) {
+            $format = preg_replace('/^(.*)(?<!\\\\)((?:\\\\{2})*)(a|A)(.*)$/U', '$1$2$4 $3', $format);
+            $time = preg_replace('/^(.*)(am|pm|AM|PM)(.*)$/U', '$1$3 $2', $time);
+        }
+
+        // First attempt to create an instance, so that error messages are based on the unmodified format.
+        $date = self::createFromFormatAndTimezone($format, $time, $tz);
+        $lastErrors = parent::getLastErrors();
+        /** @var \Carbon\CarbonImmutable|\Carbon\Carbon|null $mock */
+        $mock = static::getMockedTestNow($tz);
+
+        if ($mock && $date instanceof DateTimeInterface) {
+            // Set timezone from mock if custom timezone was neither given directly nor as a part of format.
+            // First let's skip the part that will be ignored by the parser.
+            $nonEscaped = '(?<!\\\\)(\\\\{2})*';
+
+            $nonIgnored = preg_replace("/^.*{$nonEscaped}!/s", '', $format);
+
+            if ($tz === null && !preg_match("/{$nonEscaped}[eOPT]/", $nonIgnored)) {
+                $tz = clone $mock->getTimezone();
+            }
+
+            // Set microseconds to zero to match behavior of DateTime::createFromFormat()
+            // See https://bugs.php.net/bug.php?id=74332
+            $mock = $mock->copy()->microsecond(0);
+
+            // Prepend mock datetime only if the format does not contain non escaped unix epoch reset flag.
+            if (!preg_match("/{$nonEscaped}[!|]/", $format)) {
+                $format = static::MOCK_DATETIME_FORMAT.' '.$format;
+                $time = ($mock instanceof self ? $mock->rawFormat(static::MOCK_DATETIME_FORMAT) : $mock->format(static::MOCK_DATETIME_FORMAT)).' '.$time;
+            }
+
+            // Regenerate date from the modified format to base result on the mocked instance instead of now.
+            $date = self::createFromFormatAndTimezone($format, $time, $tz);
+        }
+
+        if ($date instanceof DateTimeInterface) {
+            $instance = static::instance($date);
+            $instance::setLastErrors($lastErrors);
+
+            return $instance;
+        }
+
+        if (static::isStrictModeEnabled()) {
+            throw new InvalidFormatException(implode(PHP_EOL, $lastErrors['errors']));
+        }
+
+        return false;
+    }
+
+    /**
+     * Create a Carbon instance from a specific format.
+     *
+     * @param string                         $format Datetime format
+     * @param string                         $time
+     * @param DateTimeZone|string|false|null $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static|false
+     */
+    #[ReturnTypeWillChange]
+    public static function createFromFormat($format, $time, $tz = null)
+    {
+        $function = static::$createFromFormatFunction;
+
+        if (!$function) {
+            return static::rawCreateFromFormat($format, $time, $tz);
+        }
+
+        if (\is_string($function) && method_exists(static::class, $function)) {
+            $function = [static::class, $function];
+        }
+
+        return $function(...\func_get_args());
+    }
+
+    /**
+     * Create a Carbon instance from a specific ISO format (same replacements as ->isoFormat()).
+     *
+     * @param string                                             $format     Datetime format
+     * @param string                                             $time
+     * @param DateTimeZone|string|false|null                     $tz         optional timezone
+     * @param string|null                                        $locale     locale to be used for LTS, LT, LL, LLL, etc. macro-formats (en by fault, unneeded if no such macro-format in use)
+     * @param \Symfony\Component\Translation\TranslatorInterface $translator optional custom translator to use for macro-formats
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static|false
+     */
+    public static function createFromIsoFormat($format, $time, $tz = null, $locale = 'en', $translator = null)
+    {
+        $format = preg_replace_callback('/(?<!\\\\)(\\\\{2})*(LTS|LT|[Ll]{1,4})/', function ($match) use ($locale, $translator) {
+            [$code] = $match;
+
+            static $formats = null;
+
+            if ($formats === null) {
+                $translator = $translator ?: Translator::get($locale);
+
+                $formats = [
+                    'LT' => static::getTranslationMessageWith($translator, 'formats.LT', $locale, 'h:mm A'),
+                    'LTS' => static::getTranslationMessageWith($translator, 'formats.LTS', $locale, 'h:mm:ss A'),
+                    'L' => static::getTranslationMessageWith($translator, 'formats.L', $locale, 'MM/DD/YYYY'),
+                    'LL' => static::getTranslationMessageWith($translator, 'formats.LL', $locale, 'MMMM D, YYYY'),
+                    'LLL' => static::getTranslationMessageWith($translator, 'formats.LLL', $locale, 'MMMM D, YYYY h:mm A'),
+                    'LLLL' => static::getTranslationMessageWith($translator, 'formats.LLLL', $locale, 'dddd, MMMM D, YYYY h:mm A'),
+                ];
+            }
+
+            return $formats[$code] ?? preg_replace_callback(
+                '/MMMM|MM|DD|dddd/',
+                function ($code) {
+                    return mb_substr($code[0], 1);
+                },
+                $formats[strtoupper($code)] ?? ''
+            );
+        }, $format);
+
+        $format = preg_replace_callback('/(?<!\\\\)(\\\\{2})*('.CarbonInterface::ISO_FORMAT_REGEXP.'|[A-Za-z])/', function ($match) {
+            [$code] = $match;
+
+            static $replacements = null;
+
+            if ($replacements === null) {
+                $replacements = [
+                    'OD' => 'd',
+                    'OM' => 'M',
+                    'OY' => 'Y',
+                    'OH' => 'G',
+                    'Oh' => 'g',
+                    'Om' => 'i',
+                    'Os' => 's',
+                    'D' => 'd',
+                    'DD' => 'd',
+                    'Do' => 'd',
+                    'd' => '!',
+                    'dd' => '!',
+                    'ddd' => 'D',
+                    'dddd' => 'D',
+                    'DDD' => 'z',
+                    'DDDD' => 'z',
+                    'DDDo' => 'z',
+                    'e' => '!',
+                    'E' => '!',
+                    'H' => 'G',
+                    'HH' => 'H',
+                    'h' => 'g',
+                    'hh' => 'h',
+                    'k' => 'G',
+                    'kk' => 'G',
+                    'hmm' => 'gi',
+                    'hmmss' => 'gis',
+                    'Hmm' => 'Gi',
+                    'Hmmss' => 'Gis',
+                    'm' => 'i',
+                    'mm' => 'i',
+                    'a' => 'a',
+                    'A' => 'a',
+                    's' => 's',
+                    'ss' => 's',
+                    'S' => '*',
+                    'SS' => '*',
+                    'SSS' => '*',
+                    'SSSS' => '*',
+                    'SSSSS' => '*',
+                    'SSSSSS' => 'u',
+                    'SSSSSSS' => 'u*',
+                    'SSSSSSSS' => 'u*',
+                    'SSSSSSSSS' => 'u*',
+                    'M' => 'm',
+                    'MM' => 'm',
+                    'MMM' => 'M',
+                    'MMMM' => 'M',
+                    'Mo' => 'm',
+                    'Q' => '!',
+                    'Qo' => '!',
+                    'G' => '!',
+                    'GG' => '!',
+                    'GGG' => '!',
+                    'GGGG' => '!',
+                    'GGGGG' => '!',
+                    'g' => '!',
+                    'gg' => '!',
+                    'ggg' => '!',
+                    'gggg' => '!',
+                    'ggggg' => '!',
+                    'W' => '!',
+                    'WW' => '!',
+                    'Wo' => '!',
+                    'w' => '!',
+                    'ww' => '!',
+                    'wo' => '!',
+                    'x' => 'U???',
+                    'X' => 'U',
+                    'Y' => 'Y',
+                    'YY' => 'y',
+                    'YYYY' => 'Y',
+                    'YYYYY' => 'Y',
+                    'YYYYYY' => 'Y',
+                    'z' => 'e',
+                    'zz' => 'e',
+                    'Z' => 'e',
+                    'ZZ' => 'e',
+                ];
+            }
+
+            $format = $replacements[$code] ?? '?';
+
+            if ($format === '!') {
+                throw new InvalidFormatException("Format $code not supported for creation.");
+            }
+
+            return $format;
+        }, $format);
+
+        return static::rawCreateFromFormat($format, $time, $tz);
+    }
+
+    /**
+     * Create a Carbon instance from a specific format and a string in a given language.
+     *
+     * @param string                         $format Datetime format
+     * @param string                         $locale
+     * @param string                         $time
+     * @param DateTimeZone|string|false|null $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static|false
+     */
+    public static function createFromLocaleFormat($format, $locale, $time, $tz = null)
+    {
+        return static::rawCreateFromFormat($format, static::translateTimeString($time, $locale, 'en'), $tz);
+    }
+
+    /**
+     * Create a Carbon instance from a specific ISO format and a string in a given language.
+     *
+     * @param string                         $format Datetime ISO format
+     * @param string                         $locale
+     * @param string                         $time
+     * @param DateTimeZone|string|false|null $tz
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static|false
+     */
+    public static function createFromLocaleIsoFormat($format, $locale, $time, $tz = null)
+    {
+        $time = static::translateTimeString($time, $locale, 'en', CarbonInterface::TRANSLATE_MONTHS | CarbonInterface::TRANSLATE_DAYS | CarbonInterface::TRANSLATE_MERIDIEM);
+
+        return static::createFromIsoFormat($format, $time, $tz, $locale);
+    }
+
+    /**
+     * Make a Carbon instance from given variable if possible.
+     *
+     * Always return a new instance. Parse only strings and only these likely to be dates (skip intervals
+     * and recurrences). Throw an exception for invalid format, but otherwise return null.
+     *
+     * @param mixed $var
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static|null
+     */
+    public static function make($var)
+    {
+        if ($var instanceof DateTimeInterface) {
+            return static::instance($var);
+        }
+
+        $date = null;
+
+        if (\is_string($var)) {
+            $var = trim($var);
+
+            if (!preg_match('/^P[0-9T]/', $var) &&
+                !preg_match('/^R[0-9]/', $var) &&
+                preg_match('/[a-z0-9]/i', $var)
+            ) {
+                $date = static::parse($var);
+            }
+        }
+
+        return $date;
+    }
+
+    /**
+     * Set last errors.
+     *
+     * @param array $lastErrors
+     *
+     * @return void
+     */
+    private static function setLastErrors(array $lastErrors)
+    {
+        static::$lastErrors = $lastErrors;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    #[ReturnTypeWillChange]
+    public static function getLastErrors()
+    {
+        return static::$lastErrors;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Date.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Date.php
new file mode 100644
index 0000000..07ac0dd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Date.php
@@ -0,0 +1,2662 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Traits;
+
+use BadMethodCallException;
+use Carbon\Carbon;
+use Carbon\CarbonInterface;
+use Carbon\CarbonPeriod;
+use Carbon\CarbonTimeZone;
+use Carbon\Exceptions\BadComparisonUnitException;
+use Carbon\Exceptions\ImmutableException;
+use Carbon\Exceptions\InvalidTimeZoneException;
+use Carbon\Exceptions\InvalidTypeException;
+use Carbon\Exceptions\UnknownGetterException;
+use Carbon\Exceptions\UnknownMethodException;
+use Carbon\Exceptions\UnknownSetterException;
+use Carbon\Exceptions\UnknownUnitException;
+use Closure;
+use DateInterval;
+use DatePeriod;
+use DateTime;
+use DateTimeImmutable;
+use DateTimeInterface;
+use DateTimeZone;
+use InvalidArgumentException;
+use ReflectionException;
+use ReturnTypeWillChange;
+use Throwable;
+
+/**
+ * A simple API extension for DateTime.
+ *
+ * <autodoc generated by `composer phpdoc`>
+ *
+ * @property      int              $year
+ * @property      int              $yearIso
+ * @property      int              $month
+ * @property      int              $day
+ * @property      int              $hour
+ * @property      int              $minute
+ * @property      int              $second
+ * @property      int              $micro
+ * @property      int              $microsecond
+ * @property      int|float|string $timestamp                                                                         seconds since the Unix Epoch
+ * @property      string           $englishDayOfWeek                                                                  the day of week in English
+ * @property      string           $shortEnglishDayOfWeek                                                             the abbreviated day of week in English
+ * @property      string           $englishMonth                                                                      the month in English
+ * @property      string           $shortEnglishMonth                                                                 the abbreviated month in English
+ * @property      string           $localeDayOfWeek                                                                   the day of week in current locale LC_TIME
+ * @property      string           $shortLocaleDayOfWeek                                                              the abbreviated day of week in current locale LC_TIME
+ * @property      string           $localeMonth                                                                       the month in current locale LC_TIME
+ * @property      string           $shortLocaleMonth                                                                  the abbreviated month in current locale LC_TIME
+ * @property      int              $milliseconds
+ * @property      int              $millisecond
+ * @property      int              $milli
+ * @property      int              $week                                                                              1 through 53
+ * @property      int              $isoWeek                                                                           1 through 53
+ * @property      int              $weekYear                                                                          year according to week format
+ * @property      int              $isoWeekYear                                                                       year according to ISO week format
+ * @property      int              $dayOfYear                                                                         1 through 366
+ * @property      int              $age                                                                               does a diffInYears() with default parameters
+ * @property      int              $offset                                                                            the timezone offset in seconds from UTC
+ * @property      int              $offsetMinutes                                                                     the timezone offset in minutes from UTC
+ * @property      int              $offsetHours                                                                       the timezone offset in hours from UTC
+ * @property      CarbonTimeZone   $timezone                                                                          the current timezone
+ * @property      CarbonTimeZone   $tz                                                                                alias of $timezone
+ * @property-read int              $dayOfWeek                                                                         0 (for Sunday) through 6 (for Saturday)
+ * @property-read int              $dayOfWeekIso                                                                      1 (for Monday) through 7 (for Sunday)
+ * @property-read int              $weekOfYear                                                                        ISO-8601 week number of year, weeks starting on Monday
+ * @property-read int              $daysInMonth                                                                       number of days in the given month
+ * @property-read string           $latinMeridiem                                                                     "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark)
+ * @property-read string           $latinUpperMeridiem                                                                "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark)
+ * @property-read string           $timezoneAbbreviatedName                                                           the current timezone abbreviated name
+ * @property-read string           $tzAbbrName                                                                        alias of $timezoneAbbreviatedName
+ * @property-read string           $dayName                                                                           long name of weekday translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string           $shortDayName                                                                      short name of weekday translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string           $minDayName                                                                        very short name of weekday translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string           $monthName                                                                         long name of month translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string           $shortMonthName                                                                    short name of month translated according to Carbon locale, in english if no translation available for current language
+ * @property-read string           $meridiem                                                                          lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language
+ * @property-read string           $upperMeridiem                                                                     uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language
+ * @property-read int              $noZeroHour                                                                        current hour from 1 to 24
+ * @property-read int              $weeksInYear                                                                       51 through 53
+ * @property-read int              $isoWeeksInYear                                                                    51 through 53
+ * @property-read int              $weekOfMonth                                                                       1 through 5
+ * @property-read int              $weekNumberInMonth                                                                 1 through 5
+ * @property-read int              $firstWeekDay                                                                      0 through 6
+ * @property-read int              $lastWeekDay                                                                       0 through 6
+ * @property-read int              $daysInYear                                                                        365 or 366
+ * @property-read int              $quarter                                                                           the quarter of this instance, 1 - 4
+ * @property-read int              $decade                                                                            the decade of this instance
+ * @property-read int              $century                                                                           the century of this instance
+ * @property-read int              $millennium                                                                        the millennium of this instance
+ * @property-read bool             $dst                                                                               daylight savings time indicator, true if DST, false otherwise
+ * @property-read bool             $local                                                                             checks if the timezone is local, true if local, false otherwise
+ * @property-read bool             $utc                                                                               checks if the timezone is UTC, true if UTC, false otherwise
+ * @property-read string           $timezoneName                                                                      the current timezone name
+ * @property-read string           $tzName                                                                            alias of $timezoneName
+ * @property-read string           $locale                                                                            locale of the current instance
+ *
+ * @method        bool             isUtc()                                                                            Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.)
+ * @method        bool             isLocal()                                                                          Check if the current instance has non-UTC timezone.
+ * @method        bool             isValid()                                                                          Check if the current instance is a valid date.
+ * @method        bool             isDST()                                                                            Check if the current instance is in a daylight saving time.
+ * @method        bool             isSunday()                                                                         Checks if the instance day is sunday.
+ * @method        bool             isMonday()                                                                         Checks if the instance day is monday.
+ * @method        bool             isTuesday()                                                                        Checks if the instance day is tuesday.
+ * @method        bool             isWednesday()                                                                      Checks if the instance day is wednesday.
+ * @method        bool             isThursday()                                                                       Checks if the instance day is thursday.
+ * @method        bool             isFriday()                                                                         Checks if the instance day is friday.
+ * @method        bool             isSaturday()                                                                       Checks if the instance day is saturday.
+ * @method        bool             isSameYear(Carbon|DateTimeInterface|string|null $date = null)                      Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool             isCurrentYear()                                                                    Checks if the instance is in the same year as the current moment.
+ * @method        bool             isNextYear()                                                                       Checks if the instance is in the same year as the current moment next year.
+ * @method        bool             isLastYear()                                                                       Checks if the instance is in the same year as the current moment last year.
+ * @method        bool             isSameWeek(Carbon|DateTimeInterface|string|null $date = null)                      Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool             isCurrentWeek()                                                                    Checks if the instance is in the same week as the current moment.
+ * @method        bool             isNextWeek()                                                                       Checks if the instance is in the same week as the current moment next week.
+ * @method        bool             isLastWeek()                                                                       Checks if the instance is in the same week as the current moment last week.
+ * @method        bool             isSameDay(Carbon|DateTimeInterface|string|null $date = null)                       Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool             isCurrentDay()                                                                     Checks if the instance is in the same day as the current moment.
+ * @method        bool             isNextDay()                                                                        Checks if the instance is in the same day as the current moment next day.
+ * @method        bool             isLastDay()                                                                        Checks if the instance is in the same day as the current moment last day.
+ * @method        bool             isSameHour(Carbon|DateTimeInterface|string|null $date = null)                      Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool             isCurrentHour()                                                                    Checks if the instance is in the same hour as the current moment.
+ * @method        bool             isNextHour()                                                                       Checks if the instance is in the same hour as the current moment next hour.
+ * @method        bool             isLastHour()                                                                       Checks if the instance is in the same hour as the current moment last hour.
+ * @method        bool             isSameMinute(Carbon|DateTimeInterface|string|null $date = null)                    Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool             isCurrentMinute()                                                                  Checks if the instance is in the same minute as the current moment.
+ * @method        bool             isNextMinute()                                                                     Checks if the instance is in the same minute as the current moment next minute.
+ * @method        bool             isLastMinute()                                                                     Checks if the instance is in the same minute as the current moment last minute.
+ * @method        bool             isSameSecond(Carbon|DateTimeInterface|string|null $date = null)                    Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool             isCurrentSecond()                                                                  Checks if the instance is in the same second as the current moment.
+ * @method        bool             isNextSecond()                                                                     Checks if the instance is in the same second as the current moment next second.
+ * @method        bool             isLastSecond()                                                                     Checks if the instance is in the same second as the current moment last second.
+ * @method        bool             isSameMicro(Carbon|DateTimeInterface|string|null $date = null)                     Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool             isCurrentMicro()                                                                   Checks if the instance is in the same microsecond as the current moment.
+ * @method        bool             isNextMicro()                                                                      Checks if the instance is in the same microsecond as the current moment next microsecond.
+ * @method        bool             isLastMicro()                                                                      Checks if the instance is in the same microsecond as the current moment last microsecond.
+ * @method        bool             isSameMicrosecond(Carbon|DateTimeInterface|string|null $date = null)               Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool             isCurrentMicrosecond()                                                             Checks if the instance is in the same microsecond as the current moment.
+ * @method        bool             isNextMicrosecond()                                                                Checks if the instance is in the same microsecond as the current moment next microsecond.
+ * @method        bool             isLastMicrosecond()                                                                Checks if the instance is in the same microsecond as the current moment last microsecond.
+ * @method        bool             isCurrentMonth()                                                                   Checks if the instance is in the same month as the current moment.
+ * @method        bool             isNextMonth()                                                                      Checks if the instance is in the same month as the current moment next month.
+ * @method        bool             isLastMonth()                                                                      Checks if the instance is in the same month as the current moment last month.
+ * @method        bool             isCurrentQuarter()                                                                 Checks if the instance is in the same quarter as the current moment.
+ * @method        bool             isNextQuarter()                                                                    Checks if the instance is in the same quarter as the current moment next quarter.
+ * @method        bool             isLastQuarter()                                                                    Checks if the instance is in the same quarter as the current moment last quarter.
+ * @method        bool             isSameDecade(Carbon|DateTimeInterface|string|null $date = null)                    Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool             isCurrentDecade()                                                                  Checks if the instance is in the same decade as the current moment.
+ * @method        bool             isNextDecade()                                                                     Checks if the instance is in the same decade as the current moment next decade.
+ * @method        bool             isLastDecade()                                                                     Checks if the instance is in the same decade as the current moment last decade.
+ * @method        bool             isSameCentury(Carbon|DateTimeInterface|string|null $date = null)                   Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool             isCurrentCentury()                                                                 Checks if the instance is in the same century as the current moment.
+ * @method        bool             isNextCentury()                                                                    Checks if the instance is in the same century as the current moment next century.
+ * @method        bool             isLastCentury()                                                                    Checks if the instance is in the same century as the current moment last century.
+ * @method        bool             isSameMillennium(Carbon|DateTimeInterface|string|null $date = null)                Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone).
+ * @method        bool             isCurrentMillennium()                                                              Checks if the instance is in the same millennium as the current moment.
+ * @method        bool             isNextMillennium()                                                                 Checks if the instance is in the same millennium as the current moment next millennium.
+ * @method        bool             isLastMillennium()                                                                 Checks if the instance is in the same millennium as the current moment last millennium.
+ * @method        CarbonInterface  years(int $value)                                                                  Set current instance year to the given value.
+ * @method        CarbonInterface  year(int $value)                                                                   Set current instance year to the given value.
+ * @method        CarbonInterface  setYears(int $value)                                                               Set current instance year to the given value.
+ * @method        CarbonInterface  setYear(int $value)                                                                Set current instance year to the given value.
+ * @method        CarbonInterface  months(int $value)                                                                 Set current instance month to the given value.
+ * @method        CarbonInterface  month(int $value)                                                                  Set current instance month to the given value.
+ * @method        CarbonInterface  setMonths(int $value)                                                              Set current instance month to the given value.
+ * @method        CarbonInterface  setMonth(int $value)                                                               Set current instance month to the given value.
+ * @method        CarbonInterface  days(int $value)                                                                   Set current instance day to the given value.
+ * @method        CarbonInterface  day(int $value)                                                                    Set current instance day to the given value.
+ * @method        CarbonInterface  setDays(int $value)                                                                Set current instance day to the given value.
+ * @method        CarbonInterface  setDay(int $value)                                                                 Set current instance day to the given value.
+ * @method        CarbonInterface  hours(int $value)                                                                  Set current instance hour to the given value.
+ * @method        CarbonInterface  hour(int $value)                                                                   Set current instance hour to the given value.
+ * @method        CarbonInterface  setHours(int $value)                                                               Set current instance hour to the given value.
+ * @method        CarbonInterface  setHour(int $value)                                                                Set current instance hour to the given value.
+ * @method        CarbonInterface  minutes(int $value)                                                                Set current instance minute to the given value.
+ * @method        CarbonInterface  minute(int $value)                                                                 Set current instance minute to the given value.
+ * @method        CarbonInterface  setMinutes(int $value)                                                             Set current instance minute to the given value.
+ * @method        CarbonInterface  setMinute(int $value)                                                              Set current instance minute to the given value.
+ * @method        CarbonInterface  seconds(int $value)                                                                Set current instance second to the given value.
+ * @method        CarbonInterface  second(int $value)                                                                 Set current instance second to the given value.
+ * @method        CarbonInterface  setSeconds(int $value)                                                             Set current instance second to the given value.
+ * @method        CarbonInterface  setSecond(int $value)                                                              Set current instance second to the given value.
+ * @method        CarbonInterface  millis(int $value)                                                                 Set current instance millisecond to the given value.
+ * @method        CarbonInterface  milli(int $value)                                                                  Set current instance millisecond to the given value.
+ * @method        CarbonInterface  setMillis(int $value)                                                              Set current instance millisecond to the given value.
+ * @method        CarbonInterface  setMilli(int $value)                                                               Set current instance millisecond to the given value.
+ * @method        CarbonInterface  milliseconds(int $value)                                                           Set current instance millisecond to the given value.
+ * @method        CarbonInterface  millisecond(int $value)                                                            Set current instance millisecond to the given value.
+ * @method        CarbonInterface  setMilliseconds(int $value)                                                        Set current instance millisecond to the given value.
+ * @method        CarbonInterface  setMillisecond(int $value)                                                         Set current instance millisecond to the given value.
+ * @method        CarbonInterface  micros(int $value)                                                                 Set current instance microsecond to the given value.
+ * @method        CarbonInterface  micro(int $value)                                                                  Set current instance microsecond to the given value.
+ * @method        CarbonInterface  setMicros(int $value)                                                              Set current instance microsecond to the given value.
+ * @method        CarbonInterface  setMicro(int $value)                                                               Set current instance microsecond to the given value.
+ * @method        CarbonInterface  microseconds(int $value)                                                           Set current instance microsecond to the given value.
+ * @method        CarbonInterface  microsecond(int $value)                                                            Set current instance microsecond to the given value.
+ * @method        CarbonInterface  setMicroseconds(int $value)                                                        Set current instance microsecond to the given value.
+ * @method        CarbonInterface  setMicrosecond(int $value)                                                         Set current instance microsecond to the given value.
+ * @method        CarbonInterface  addYears(int $value = 1)                                                           Add years (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addYear()                                                                          Add one year to the instance (using date interval).
+ * @method        CarbonInterface  subYears(int $value = 1)                                                           Sub years (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subYear()                                                                          Sub one year to the instance (using date interval).
+ * @method        CarbonInterface  addYearsWithOverflow(int $value = 1)                                               Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addYearWithOverflow()                                                              Add one year to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subYearsWithOverflow(int $value = 1)                                               Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subYearWithOverflow()                                                              Sub one year to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addYearsWithoutOverflow(int $value = 1)                                            Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addYearWithoutOverflow()                                                           Add one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subYearsWithoutOverflow(int $value = 1)                                            Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subYearWithoutOverflow()                                                           Sub one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addYearsWithNoOverflow(int $value = 1)                                             Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addYearWithNoOverflow()                                                            Add one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subYearsWithNoOverflow(int $value = 1)                                             Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subYearWithNoOverflow()                                                            Sub one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addYearsNoOverflow(int $value = 1)                                                 Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addYearNoOverflow()                                                                Add one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subYearsNoOverflow(int $value = 1)                                                 Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subYearNoOverflow()                                                                Sub one year to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addMonths(int $value = 1)                                                          Add months (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addMonth()                                                                         Add one month to the instance (using date interval).
+ * @method        CarbonInterface  subMonths(int $value = 1)                                                          Sub months (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subMonth()                                                                         Sub one month to the instance (using date interval).
+ * @method        CarbonInterface  addMonthsWithOverflow(int $value = 1)                                              Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addMonthWithOverflow()                                                             Add one month to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subMonthsWithOverflow(int $value = 1)                                              Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subMonthWithOverflow()                                                             Sub one month to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addMonthsWithoutOverflow(int $value = 1)                                           Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addMonthWithoutOverflow()                                                          Add one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMonthsWithoutOverflow(int $value = 1)                                           Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMonthWithoutOverflow()                                                          Sub one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addMonthsWithNoOverflow(int $value = 1)                                            Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addMonthWithNoOverflow()                                                           Add one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMonthsWithNoOverflow(int $value = 1)                                            Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMonthWithNoOverflow()                                                           Sub one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addMonthsNoOverflow(int $value = 1)                                                Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addMonthNoOverflow()                                                               Add one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMonthsNoOverflow(int $value = 1)                                                Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMonthNoOverflow()                                                               Sub one month to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addDays(int $value = 1)                                                            Add days (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addDay()                                                                           Add one day to the instance (using date interval).
+ * @method        CarbonInterface  subDays(int $value = 1)                                                            Sub days (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subDay()                                                                           Sub one day to the instance (using date interval).
+ * @method        CarbonInterface  addHours(int $value = 1)                                                           Add hours (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addHour()                                                                          Add one hour to the instance (using date interval).
+ * @method        CarbonInterface  subHours(int $value = 1)                                                           Sub hours (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subHour()                                                                          Sub one hour to the instance (using date interval).
+ * @method        CarbonInterface  addMinutes(int $value = 1)                                                         Add minutes (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addMinute()                                                                        Add one minute to the instance (using date interval).
+ * @method        CarbonInterface  subMinutes(int $value = 1)                                                         Sub minutes (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subMinute()                                                                        Sub one minute to the instance (using date interval).
+ * @method        CarbonInterface  addSeconds(int $value = 1)                                                         Add seconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addSecond()                                                                        Add one second to the instance (using date interval).
+ * @method        CarbonInterface  subSeconds(int $value = 1)                                                         Sub seconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subSecond()                                                                        Sub one second to the instance (using date interval).
+ * @method        CarbonInterface  addMillis(int $value = 1)                                                          Add milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addMilli()                                                                         Add one millisecond to the instance (using date interval).
+ * @method        CarbonInterface  subMillis(int $value = 1)                                                          Sub milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subMilli()                                                                         Sub one millisecond to the instance (using date interval).
+ * @method        CarbonInterface  addMilliseconds(int $value = 1)                                                    Add milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addMillisecond()                                                                   Add one millisecond to the instance (using date interval).
+ * @method        CarbonInterface  subMilliseconds(int $value = 1)                                                    Sub milliseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subMillisecond()                                                                   Sub one millisecond to the instance (using date interval).
+ * @method        CarbonInterface  addMicros(int $value = 1)                                                          Add microseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addMicro()                                                                         Add one microsecond to the instance (using date interval).
+ * @method        CarbonInterface  subMicros(int $value = 1)                                                          Sub microseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subMicro()                                                                         Sub one microsecond to the instance (using date interval).
+ * @method        CarbonInterface  addMicroseconds(int $value = 1)                                                    Add microseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addMicrosecond()                                                                   Add one microsecond to the instance (using date interval).
+ * @method        CarbonInterface  subMicroseconds(int $value = 1)                                                    Sub microseconds (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subMicrosecond()                                                                   Sub one microsecond to the instance (using date interval).
+ * @method        CarbonInterface  addMillennia(int $value = 1)                                                       Add millennia (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addMillennium()                                                                    Add one millennium to the instance (using date interval).
+ * @method        CarbonInterface  subMillennia(int $value = 1)                                                       Sub millennia (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subMillennium()                                                                    Sub one millennium to the instance (using date interval).
+ * @method        CarbonInterface  addMillenniaWithOverflow(int $value = 1)                                           Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addMillenniumWithOverflow()                                                        Add one millennium to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subMillenniaWithOverflow(int $value = 1)                                           Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subMillenniumWithOverflow()                                                        Sub one millennium to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addMillenniaWithoutOverflow(int $value = 1)                                        Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addMillenniumWithoutOverflow()                                                     Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMillenniaWithoutOverflow(int $value = 1)                                        Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMillenniumWithoutOverflow()                                                     Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addMillenniaWithNoOverflow(int $value = 1)                                         Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addMillenniumWithNoOverflow()                                                      Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMillenniaWithNoOverflow(int $value = 1)                                         Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMillenniumWithNoOverflow()                                                      Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addMillenniaNoOverflow(int $value = 1)                                             Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addMillenniumNoOverflow()                                                          Add one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMillenniaNoOverflow(int $value = 1)                                             Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subMillenniumNoOverflow()                                                          Sub one millennium to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addCenturies(int $value = 1)                                                       Add centuries (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addCentury()                                                                       Add one century to the instance (using date interval).
+ * @method        CarbonInterface  subCenturies(int $value = 1)                                                       Sub centuries (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subCentury()                                                                       Sub one century to the instance (using date interval).
+ * @method        CarbonInterface  addCenturiesWithOverflow(int $value = 1)                                           Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addCenturyWithOverflow()                                                           Add one century to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subCenturiesWithOverflow(int $value = 1)                                           Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subCenturyWithOverflow()                                                           Sub one century to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addCenturiesWithoutOverflow(int $value = 1)                                        Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addCenturyWithoutOverflow()                                                        Add one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subCenturiesWithoutOverflow(int $value = 1)                                        Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subCenturyWithoutOverflow()                                                        Sub one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addCenturiesWithNoOverflow(int $value = 1)                                         Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addCenturyWithNoOverflow()                                                         Add one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subCenturiesWithNoOverflow(int $value = 1)                                         Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subCenturyWithNoOverflow()                                                         Sub one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addCenturiesNoOverflow(int $value = 1)                                             Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addCenturyNoOverflow()                                                             Add one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subCenturiesNoOverflow(int $value = 1)                                             Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subCenturyNoOverflow()                                                             Sub one century to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addDecades(int $value = 1)                                                         Add decades (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addDecade()                                                                        Add one decade to the instance (using date interval).
+ * @method        CarbonInterface  subDecades(int $value = 1)                                                         Sub decades (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subDecade()                                                                        Sub one decade to the instance (using date interval).
+ * @method        CarbonInterface  addDecadesWithOverflow(int $value = 1)                                             Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addDecadeWithOverflow()                                                            Add one decade to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subDecadesWithOverflow(int $value = 1)                                             Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subDecadeWithOverflow()                                                            Sub one decade to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addDecadesWithoutOverflow(int $value = 1)                                          Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addDecadeWithoutOverflow()                                                         Add one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subDecadesWithoutOverflow(int $value = 1)                                          Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subDecadeWithoutOverflow()                                                         Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addDecadesWithNoOverflow(int $value = 1)                                           Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addDecadeWithNoOverflow()                                                          Add one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subDecadesWithNoOverflow(int $value = 1)                                           Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subDecadeWithNoOverflow()                                                          Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addDecadesNoOverflow(int $value = 1)                                               Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addDecadeNoOverflow()                                                              Add one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subDecadesNoOverflow(int $value = 1)                                               Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subDecadeNoOverflow()                                                              Sub one decade to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addQuarters(int $value = 1)                                                        Add quarters (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addQuarter()                                                                       Add one quarter to the instance (using date interval).
+ * @method        CarbonInterface  subQuarters(int $value = 1)                                                        Sub quarters (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subQuarter()                                                                       Sub one quarter to the instance (using date interval).
+ * @method        CarbonInterface  addQuartersWithOverflow(int $value = 1)                                            Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addQuarterWithOverflow()                                                           Add one quarter to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subQuartersWithOverflow(int $value = 1)                                            Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  subQuarterWithOverflow()                                                           Sub one quarter to the instance (using date interval) with overflow explicitly allowed.
+ * @method        CarbonInterface  addQuartersWithoutOverflow(int $value = 1)                                         Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addQuarterWithoutOverflow()                                                        Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subQuartersWithoutOverflow(int $value = 1)                                         Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subQuarterWithoutOverflow()                                                        Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addQuartersWithNoOverflow(int $value = 1)                                          Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addQuarterWithNoOverflow()                                                         Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subQuartersWithNoOverflow(int $value = 1)                                          Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subQuarterWithNoOverflow()                                                         Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addQuartersNoOverflow(int $value = 1)                                              Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addQuarterNoOverflow()                                                             Add one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subQuartersNoOverflow(int $value = 1)                                              Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  subQuarterNoOverflow()                                                             Sub one quarter to the instance (using date interval) with overflow explicitly forbidden.
+ * @method        CarbonInterface  addWeeks(int $value = 1)                                                           Add weeks (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addWeek()                                                                          Add one week to the instance (using date interval).
+ * @method        CarbonInterface  subWeeks(int $value = 1)                                                           Sub weeks (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subWeek()                                                                          Sub one week to the instance (using date interval).
+ * @method        CarbonInterface  addWeekdays(int $value = 1)                                                        Add weekdays (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  addWeekday()                                                                       Add one weekday to the instance (using date interval).
+ * @method        CarbonInterface  subWeekdays(int $value = 1)                                                        Sub weekdays (the $value count passed in) to the instance (using date interval).
+ * @method        CarbonInterface  subWeekday()                                                                       Sub one weekday to the instance (using date interval).
+ * @method        CarbonInterface  addRealMicros(int $value = 1)                                                      Add microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealMicro()                                                                     Add one microsecond to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMicros(int $value = 1)                                                      Sub microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMicro()                                                                     Sub one microsecond to the instance (using timestamp).
+ * @method        CarbonPeriod     microsUntil($endDate = null, int $factor = 1)                                      Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.
+ * @method        CarbonInterface  addRealMicroseconds(int $value = 1)                                                Add microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealMicrosecond()                                                               Add one microsecond to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMicroseconds(int $value = 1)                                                Sub microseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMicrosecond()                                                               Sub one microsecond to the instance (using timestamp).
+ * @method        CarbonPeriod     microsecondsUntil($endDate = null, int $factor = 1)                                Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given.
+ * @method        CarbonInterface  addRealMillis(int $value = 1)                                                      Add milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealMilli()                                                                     Add one millisecond to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMillis(int $value = 1)                                                      Sub milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMilli()                                                                     Sub one millisecond to the instance (using timestamp).
+ * @method        CarbonPeriod     millisUntil($endDate = null, int $factor = 1)                                      Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.
+ * @method        CarbonInterface  addRealMilliseconds(int $value = 1)                                                Add milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealMillisecond()                                                               Add one millisecond to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMilliseconds(int $value = 1)                                                Sub milliseconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMillisecond()                                                               Sub one millisecond to the instance (using timestamp).
+ * @method        CarbonPeriod     millisecondsUntil($endDate = null, int $factor = 1)                                Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given.
+ * @method        CarbonInterface  addRealSeconds(int $value = 1)                                                     Add seconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealSecond()                                                                    Add one second to the instance (using timestamp).
+ * @method        CarbonInterface  subRealSeconds(int $value = 1)                                                     Sub seconds (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealSecond()                                                                    Sub one second to the instance (using timestamp).
+ * @method        CarbonPeriod     secondsUntil($endDate = null, int $factor = 1)                                     Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given.
+ * @method        CarbonInterface  addRealMinutes(int $value = 1)                                                     Add minutes (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealMinute()                                                                    Add one minute to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMinutes(int $value = 1)                                                     Sub minutes (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMinute()                                                                    Sub one minute to the instance (using timestamp).
+ * @method        CarbonPeriod     minutesUntil($endDate = null, int $factor = 1)                                     Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given.
+ * @method        CarbonInterface  addRealHours(int $value = 1)                                                       Add hours (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealHour()                                                                      Add one hour to the instance (using timestamp).
+ * @method        CarbonInterface  subRealHours(int $value = 1)                                                       Sub hours (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealHour()                                                                      Sub one hour to the instance (using timestamp).
+ * @method        CarbonPeriod     hoursUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given.
+ * @method        CarbonInterface  addRealDays(int $value = 1)                                                        Add days (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealDay()                                                                       Add one day to the instance (using timestamp).
+ * @method        CarbonInterface  subRealDays(int $value = 1)                                                        Sub days (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealDay()                                                                       Sub one day to the instance (using timestamp).
+ * @method        CarbonPeriod     daysUntil($endDate = null, int $factor = 1)                                        Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given.
+ * @method        CarbonInterface  addRealWeeks(int $value = 1)                                                       Add weeks (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealWeek()                                                                      Add one week to the instance (using timestamp).
+ * @method        CarbonInterface  subRealWeeks(int $value = 1)                                                       Sub weeks (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealWeek()                                                                      Sub one week to the instance (using timestamp).
+ * @method        CarbonPeriod     weeksUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given.
+ * @method        CarbonInterface  addRealMonths(int $value = 1)                                                      Add months (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealMonth()                                                                     Add one month to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMonths(int $value = 1)                                                      Sub months (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMonth()                                                                     Sub one month to the instance (using timestamp).
+ * @method        CarbonPeriod     monthsUntil($endDate = null, int $factor = 1)                                      Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given.
+ * @method        CarbonInterface  addRealQuarters(int $value = 1)                                                    Add quarters (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealQuarter()                                                                   Add one quarter to the instance (using timestamp).
+ * @method        CarbonInterface  subRealQuarters(int $value = 1)                                                    Sub quarters (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealQuarter()                                                                   Sub one quarter to the instance (using timestamp).
+ * @method        CarbonPeriod     quartersUntil($endDate = null, int $factor = 1)                                    Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given.
+ * @method        CarbonInterface  addRealYears(int $value = 1)                                                       Add years (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealYear()                                                                      Add one year to the instance (using timestamp).
+ * @method        CarbonInterface  subRealYears(int $value = 1)                                                       Sub years (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealYear()                                                                      Sub one year to the instance (using timestamp).
+ * @method        CarbonPeriod     yearsUntil($endDate = null, int $factor = 1)                                       Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given.
+ * @method        CarbonInterface  addRealDecades(int $value = 1)                                                     Add decades (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealDecade()                                                                    Add one decade to the instance (using timestamp).
+ * @method        CarbonInterface  subRealDecades(int $value = 1)                                                     Sub decades (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealDecade()                                                                    Sub one decade to the instance (using timestamp).
+ * @method        CarbonPeriod     decadesUntil($endDate = null, int $factor = 1)                                     Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given.
+ * @method        CarbonInterface  addRealCenturies(int $value = 1)                                                   Add centuries (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealCentury()                                                                   Add one century to the instance (using timestamp).
+ * @method        CarbonInterface  subRealCenturies(int $value = 1)                                                   Sub centuries (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealCentury()                                                                   Sub one century to the instance (using timestamp).
+ * @method        CarbonPeriod     centuriesUntil($endDate = null, int $factor = 1)                                   Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given.
+ * @method        CarbonInterface  addRealMillennia(int $value = 1)                                                   Add millennia (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  addRealMillennium()                                                                Add one millennium to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMillennia(int $value = 1)                                                   Sub millennia (the $value count passed in) to the instance (using timestamp).
+ * @method        CarbonInterface  subRealMillennium()                                                                Sub one millennium to the instance (using timestamp).
+ * @method        CarbonPeriod     millenniaUntil($endDate = null, int $factor = 1)                                   Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given.
+ * @method        CarbonInterface  roundYear(float $precision = 1, string $function = "round")                        Round the current instance year with given precision using the given function.
+ * @method        CarbonInterface  roundYears(float $precision = 1, string $function = "round")                       Round the current instance year with given precision using the given function.
+ * @method        CarbonInterface  floorYear(float $precision = 1)                                                    Truncate the current instance year with given precision.
+ * @method        CarbonInterface  floorYears(float $precision = 1)                                                   Truncate the current instance year with given precision.
+ * @method        CarbonInterface  ceilYear(float $precision = 1)                                                     Ceil the current instance year with given precision.
+ * @method        CarbonInterface  ceilYears(float $precision = 1)                                                    Ceil the current instance year with given precision.
+ * @method        CarbonInterface  roundMonth(float $precision = 1, string $function = "round")                       Round the current instance month with given precision using the given function.
+ * @method        CarbonInterface  roundMonths(float $precision = 1, string $function = "round")                      Round the current instance month with given precision using the given function.
+ * @method        CarbonInterface  floorMonth(float $precision = 1)                                                   Truncate the current instance month with given precision.
+ * @method        CarbonInterface  floorMonths(float $precision = 1)                                                  Truncate the current instance month with given precision.
+ * @method        CarbonInterface  ceilMonth(float $precision = 1)                                                    Ceil the current instance month with given precision.
+ * @method        CarbonInterface  ceilMonths(float $precision = 1)                                                   Ceil the current instance month with given precision.
+ * @method        CarbonInterface  roundDay(float $precision = 1, string $function = "round")                         Round the current instance day with given precision using the given function.
+ * @method        CarbonInterface  roundDays(float $precision = 1, string $function = "round")                        Round the current instance day with given precision using the given function.
+ * @method        CarbonInterface  floorDay(float $precision = 1)                                                     Truncate the current instance day with given precision.
+ * @method        CarbonInterface  floorDays(float $precision = 1)                                                    Truncate the current instance day with given precision.
+ * @method        CarbonInterface  ceilDay(float $precision = 1)                                                      Ceil the current instance day with given precision.
+ * @method        CarbonInterface  ceilDays(float $precision = 1)                                                     Ceil the current instance day with given precision.
+ * @method        CarbonInterface  roundHour(float $precision = 1, string $function = "round")                        Round the current instance hour with given precision using the given function.
+ * @method        CarbonInterface  roundHours(float $precision = 1, string $function = "round")                       Round the current instance hour with given precision using the given function.
+ * @method        CarbonInterface  floorHour(float $precision = 1)                                                    Truncate the current instance hour with given precision.
+ * @method        CarbonInterface  floorHours(float $precision = 1)                                                   Truncate the current instance hour with given precision.
+ * @method        CarbonInterface  ceilHour(float $precision = 1)                                                     Ceil the current instance hour with given precision.
+ * @method        CarbonInterface  ceilHours(float $precision = 1)                                                    Ceil the current instance hour with given precision.
+ * @method        CarbonInterface  roundMinute(float $precision = 1, string $function = "round")                      Round the current instance minute with given precision using the given function.
+ * @method        CarbonInterface  roundMinutes(float $precision = 1, string $function = "round")                     Round the current instance minute with given precision using the given function.
+ * @method        CarbonInterface  floorMinute(float $precision = 1)                                                  Truncate the current instance minute with given precision.
+ * @method        CarbonInterface  floorMinutes(float $precision = 1)                                                 Truncate the current instance minute with given precision.
+ * @method        CarbonInterface  ceilMinute(float $precision = 1)                                                   Ceil the current instance minute with given precision.
+ * @method        CarbonInterface  ceilMinutes(float $precision = 1)                                                  Ceil the current instance minute with given precision.
+ * @method        CarbonInterface  roundSecond(float $precision = 1, string $function = "round")                      Round the current instance second with given precision using the given function.
+ * @method        CarbonInterface  roundSeconds(float $precision = 1, string $function = "round")                     Round the current instance second with given precision using the given function.
+ * @method        CarbonInterface  floorSecond(float $precision = 1)                                                  Truncate the current instance second with given precision.
+ * @method        CarbonInterface  floorSeconds(float $precision = 1)                                                 Truncate the current instance second with given precision.
+ * @method        CarbonInterface  ceilSecond(float $precision = 1)                                                   Ceil the current instance second with given precision.
+ * @method        CarbonInterface  ceilSeconds(float $precision = 1)                                                  Ceil the current instance second with given precision.
+ * @method        CarbonInterface  roundMillennium(float $precision = 1, string $function = "round")                  Round the current instance millennium with given precision using the given function.
+ * @method        CarbonInterface  roundMillennia(float $precision = 1, string $function = "round")                   Round the current instance millennium with given precision using the given function.
+ * @method        CarbonInterface  floorMillennium(float $precision = 1)                                              Truncate the current instance millennium with given precision.
+ * @method        CarbonInterface  floorMillennia(float $precision = 1)                                               Truncate the current instance millennium with given precision.
+ * @method        CarbonInterface  ceilMillennium(float $precision = 1)                                               Ceil the current instance millennium with given precision.
+ * @method        CarbonInterface  ceilMillennia(float $precision = 1)                                                Ceil the current instance millennium with given precision.
+ * @method        CarbonInterface  roundCentury(float $precision = 1, string $function = "round")                     Round the current instance century with given precision using the given function.
+ * @method        CarbonInterface  roundCenturies(float $precision = 1, string $function = "round")                   Round the current instance century with given precision using the given function.
+ * @method        CarbonInterface  floorCentury(float $precision = 1)                                                 Truncate the current instance century with given precision.
+ * @method        CarbonInterface  floorCenturies(float $precision = 1)                                               Truncate the current instance century with given precision.
+ * @method        CarbonInterface  ceilCentury(float $precision = 1)                                                  Ceil the current instance century with given precision.
+ * @method        CarbonInterface  ceilCenturies(float $precision = 1)                                                Ceil the current instance century with given precision.
+ * @method        CarbonInterface  roundDecade(float $precision = 1, string $function = "round")                      Round the current instance decade with given precision using the given function.
+ * @method        CarbonInterface  roundDecades(float $precision = 1, string $function = "round")                     Round the current instance decade with given precision using the given function.
+ * @method        CarbonInterface  floorDecade(float $precision = 1)                                                  Truncate the current instance decade with given precision.
+ * @method        CarbonInterface  floorDecades(float $precision = 1)                                                 Truncate the current instance decade with given precision.
+ * @method        CarbonInterface  ceilDecade(float $precision = 1)                                                   Ceil the current instance decade with given precision.
+ * @method        CarbonInterface  ceilDecades(float $precision = 1)                                                  Ceil the current instance decade with given precision.
+ * @method        CarbonInterface  roundQuarter(float $precision = 1, string $function = "round")                     Round the current instance quarter with given precision using the given function.
+ * @method        CarbonInterface  roundQuarters(float $precision = 1, string $function = "round")                    Round the current instance quarter with given precision using the given function.
+ * @method        CarbonInterface  floorQuarter(float $precision = 1)                                                 Truncate the current instance quarter with given precision.
+ * @method        CarbonInterface  floorQuarters(float $precision = 1)                                                Truncate the current instance quarter with given precision.
+ * @method        CarbonInterface  ceilQuarter(float $precision = 1)                                                  Ceil the current instance quarter with given precision.
+ * @method        CarbonInterface  ceilQuarters(float $precision = 1)                                                 Ceil the current instance quarter with given precision.
+ * @method        CarbonInterface  roundMillisecond(float $precision = 1, string $function = "round")                 Round the current instance millisecond with given precision using the given function.
+ * @method        CarbonInterface  roundMilliseconds(float $precision = 1, string $function = "round")                Round the current instance millisecond with given precision using the given function.
+ * @method        CarbonInterface  floorMillisecond(float $precision = 1)                                             Truncate the current instance millisecond with given precision.
+ * @method        CarbonInterface  floorMilliseconds(float $precision = 1)                                            Truncate the current instance millisecond with given precision.
+ * @method        CarbonInterface  ceilMillisecond(float $precision = 1)                                              Ceil the current instance millisecond with given precision.
+ * @method        CarbonInterface  ceilMilliseconds(float $precision = 1)                                             Ceil the current instance millisecond with given precision.
+ * @method        CarbonInterface  roundMicrosecond(float $precision = 1, string $function = "round")                 Round the current instance microsecond with given precision using the given function.
+ * @method        CarbonInterface  roundMicroseconds(float $precision = 1, string $function = "round")                Round the current instance microsecond with given precision using the given function.
+ * @method        CarbonInterface  floorMicrosecond(float $precision = 1)                                             Truncate the current instance microsecond with given precision.
+ * @method        CarbonInterface  floorMicroseconds(float $precision = 1)                                            Truncate the current instance microsecond with given precision.
+ * @method        CarbonInterface  ceilMicrosecond(float $precision = 1)                                              Ceil the current instance microsecond with given precision.
+ * @method        CarbonInterface  ceilMicroseconds(float $precision = 1)                                             Ceil the current instance microsecond with given precision.
+ * @method        string           shortAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1)        Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string           longAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1)         Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string           shortRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1)        Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string           longRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1)         Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string           shortRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1)   Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string           longRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1)    Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string           shortRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ * @method        string           longRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1)  Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.)
+ *
+ * </autodoc>
+ */
+trait Date
+{
+    use Boundaries;
+    use Comparison;
+    use Converter;
+    use Creator;
+    use Difference;
+    use Macro;
+    use Modifiers;
+    use Mutability;
+    use ObjectInitialisation;
+    use Options;
+    use Rounding;
+    use Serialization;
+    use Test;
+    use Timestamp;
+    use Units;
+    use Week;
+
+    /**
+     * Names of days of the week.
+     *
+     * @var array
+     */
+    protected static $days = [
+        // @call isDayOfWeek
+        CarbonInterface::SUNDAY => 'Sunday',
+        // @call isDayOfWeek
+        CarbonInterface::MONDAY => 'Monday',
+        // @call isDayOfWeek
+        CarbonInterface::TUESDAY => 'Tuesday',
+        // @call isDayOfWeek
+        CarbonInterface::WEDNESDAY => 'Wednesday',
+        // @call isDayOfWeek
+        CarbonInterface::THURSDAY => 'Thursday',
+        // @call isDayOfWeek
+        CarbonInterface::FRIDAY => 'Friday',
+        // @call isDayOfWeek
+        CarbonInterface::SATURDAY => 'Saturday',
+    ];
+
+    /**
+     * Will UTF8 encoding be used to print localized date/time ?
+     *
+     * @var bool
+     */
+    protected static $utf8 = false;
+
+    /**
+     * List of unit and magic methods associated as doc-comments.
+     *
+     * @var array
+     */
+    protected static $units = [
+        // @call setUnit
+        // @call addUnit
+        'year',
+        // @call setUnit
+        // @call addUnit
+        'month',
+        // @call setUnit
+        // @call addUnit
+        'day',
+        // @call setUnit
+        // @call addUnit
+        'hour',
+        // @call setUnit
+        // @call addUnit
+        'minute',
+        // @call setUnit
+        // @call addUnit
+        'second',
+        // @call setUnit
+        // @call addUnit
+        'milli',
+        // @call setUnit
+        // @call addUnit
+        'millisecond',
+        // @call setUnit
+        // @call addUnit
+        'micro',
+        // @call setUnit
+        // @call addUnit
+        'microsecond',
+    ];
+
+    /**
+     * Creates a DateTimeZone from a string, DateTimeZone or integer offset.
+     *
+     * @param DateTimeZone|string|int|null $object     original value to get CarbonTimeZone from it.
+     * @param DateTimeZone|string|int|null $objectDump dump of the object for error messages.
+     *
+     * @throws InvalidTimeZoneException
+     *
+     * @return CarbonTimeZone|false
+     */
+    protected static function safeCreateDateTimeZone($object, $objectDump = null)
+    {
+        return CarbonTimeZone::instance($object, $objectDump);
+    }
+
+    /**
+     * Get the TimeZone associated with the Carbon instance (as CarbonTimeZone).
+     *
+     * @return CarbonTimeZone
+     *
+     * @link https://php.net/manual/en/datetime.gettimezone.php
+     */
+    #[ReturnTypeWillChange]
+    public function getTimezone()
+    {
+        return CarbonTimeZone::instance(parent::getTimezone());
+    }
+
+    /**
+     * List of minimum and maximums for each unit.
+     *
+     * @return array
+     */
+    protected static function getRangesByUnit()
+    {
+        return [
+            // @call roundUnit
+            'year' => [1, 9999],
+            // @call roundUnit
+            'month' => [1, static::MONTHS_PER_YEAR],
+            // @call roundUnit
+            'day' => [1, 31],
+            // @call roundUnit
+            'hour' => [0, static::HOURS_PER_DAY - 1],
+            // @call roundUnit
+            'minute' => [0, static::MINUTES_PER_HOUR - 1],
+            // @call roundUnit
+            'second' => [0, static::SECONDS_PER_MINUTE - 1],
+        ];
+    }
+
+    /**
+     * Get a copy of the instance.
+     *
+     * @return static
+     */
+    public function copy()
+    {
+        return clone $this;
+    }
+
+    /**
+     * @alias copy
+     *
+     * Get a copy of the instance.
+     *
+     * @return static
+     */
+    public function clone()
+    {
+        return clone $this;
+    }
+
+    /**
+     * Clone the current instance if it's mutable.
+     *
+     * This method is convenient to ensure you don't mutate the initial object
+     * but avoid to make a useless copy of it if it's already immutable.
+     *
+     * @return static
+     */
+    public function avoidMutation(): self
+    {
+        if ($this instanceof DateTimeImmutable) {
+            return $this;
+        }
+
+        return clone $this;
+    }
+
+    /**
+     * Returns a present instance in the same timezone.
+     *
+     * @return static
+     */
+    public function nowWithSameTz()
+    {
+        return static::now($this->getTimezone());
+    }
+
+    /**
+     * Throws an exception if the given object is not a DateTime and does not implement DateTimeInterface.
+     *
+     * @param mixed        $date
+     * @param string|array $other
+     *
+     * @throws InvalidTypeException
+     */
+    protected static function expectDateTime($date, $other = [])
+    {
+        $message = 'Expected ';
+        foreach ((array) $other as $expect) {
+            $message .= "$expect, ";
+        }
+
+        if (!$date instanceof DateTime && !$date instanceof DateTimeInterface) {
+            throw new InvalidTypeException(
+                $message.'DateTime or DateTimeInterface, '.
+                (\is_object($date) ? \get_class($date) : \gettype($date)).' given'
+            );
+        }
+    }
+
+    /**
+     * Return the Carbon instance passed through, a now instance in the same timezone
+     * if null given or parse the input if string given.
+     *
+     * @param Carbon|DateTimeInterface|string|null $date
+     *
+     * @return static
+     */
+    protected function resolveCarbon($date = null)
+    {
+        if (!$date) {
+            return $this->nowWithSameTz();
+        }
+
+        if (\is_string($date)) {
+            return static::parse($date, $this->getTimezone());
+        }
+
+        static::expectDateTime($date, ['null', 'string']);
+
+        return $date instanceof self ? $date : static::instance($date);
+    }
+
+    /**
+     * Return the Carbon instance passed through, a now instance in UTC
+     * if null given or parse the input if string given (using current timezone
+     * then switching to UTC).
+     *
+     * @param Carbon|DateTimeInterface|string|null $date
+     *
+     * @return static
+     */
+    protected function resolveUTC($date = null): self
+    {
+        if (!$date) {
+            return static::now('UTC');
+        }
+
+        if (\is_string($date)) {
+            return static::parse($date, $this->getTimezone())->utc();
+        }
+
+        static::expectDateTime($date, ['null', 'string']);
+
+        return $date instanceof self ? $date : static::instance($date)->utc();
+    }
+
+    /**
+     * Return the Carbon instance passed through, a now instance in the same timezone
+     * if null given or parse the input if string given.
+     *
+     * @param Carbon|\Carbon\CarbonPeriod|\Carbon\CarbonInterval|\DateInterval|\DatePeriod|DateTimeInterface|string|null $date
+     *
+     * @return static
+     */
+    public function carbonize($date = null)
+    {
+        if ($date instanceof DateInterval) {
+            return $this->avoidMutation()->add($date);
+        }
+
+        if ($date instanceof DatePeriod || $date instanceof CarbonPeriod) {
+            $date = $date->getStartDate();
+        }
+
+        return $this->resolveCarbon($date);
+    }
+
+    ///////////////////////////////////////////////////////////////////
+    ///////////////////////// GETTERS AND SETTERS /////////////////////
+    ///////////////////////////////////////////////////////////////////
+
+    /**
+     * Get a part of the Carbon object
+     *
+     * @param string $name
+     *
+     * @throws UnknownGetterException
+     *
+     * @return string|int|bool|DateTimeZone|null
+     */
+    public function __get($name)
+    {
+        return $this->get($name);
+    }
+
+    /**
+     * Get a part of the Carbon object
+     *
+     * @param string $name
+     *
+     * @throws UnknownGetterException
+     *
+     * @return string|int|bool|DateTimeZone|null
+     */
+    public function get($name)
+    {
+        static $formats = [
+            // @property int
+            'year' => 'Y',
+            // @property int
+            'yearIso' => 'o',
+            // @property int
+            // @call isSameUnit
+            'month' => 'n',
+            // @property int
+            'day' => 'j',
+            // @property int
+            'hour' => 'G',
+            // @property int
+            'minute' => 'i',
+            // @property int
+            'second' => 's',
+            // @property int
+            'micro' => 'u',
+            // @property int
+            'microsecond' => 'u',
+            // @property-read int 0 (for Sunday) through 6 (for Saturday)
+            'dayOfWeek' => 'w',
+            // @property-read int 1 (for Monday) through 7 (for Sunday)
+            'dayOfWeekIso' => 'N',
+            // @property-read int ISO-8601 week number of year, weeks starting on Monday
+            'weekOfYear' => 'W',
+            // @property-read int number of days in the given month
+            'daysInMonth' => 't',
+            // @property int|float|string seconds since the Unix Epoch
+            'timestamp' => 'U',
+            // @property-read string "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark)
+            'latinMeridiem' => 'a',
+            // @property-read string "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark)
+            'latinUpperMeridiem' => 'A',
+            // @property string the day of week in English
+            'englishDayOfWeek' => 'l',
+            // @property string the abbreviated day of week in English
+            'shortEnglishDayOfWeek' => 'D',
+            // @property string the month in English
+            'englishMonth' => 'F',
+            // @property string the abbreviated month in English
+            'shortEnglishMonth' => 'M',
+            // @property string the day of week in current locale LC_TIME
+            'localeDayOfWeek' => '%A',
+            // @property string the abbreviated day of week in current locale LC_TIME
+            'shortLocaleDayOfWeek' => '%a',
+            // @property string the month in current locale LC_TIME
+            'localeMonth' => '%B',
+            // @property string the abbreviated month in current locale LC_TIME
+            'shortLocaleMonth' => '%b',
+            // @property-read string $timezoneAbbreviatedName the current timezone abbreviated name
+            'timezoneAbbreviatedName' => 'T',
+            // @property-read string $tzAbbrName alias of $timezoneAbbreviatedName
+            'tzAbbrName' => 'T',
+        ];
+
+        switch (true) {
+            case isset($formats[$name]):
+                $format = $formats[$name];
+                $method = str_starts_with($format, '%') ? 'formatLocalized' : 'rawFormat';
+                $value = $this->$method($format);
+
+                return is_numeric($value) ? (int) $value : $value;
+
+            // @property-read string long name of weekday translated according to Carbon locale, in english if no translation available for current language
+            case $name === 'dayName':
+                return $this->getTranslatedDayName();
+            // @property-read string short name of weekday translated according to Carbon locale, in english if no translation available for current language
+            case $name === 'shortDayName':
+                return $this->getTranslatedShortDayName();
+            // @property-read string very short name of weekday translated according to Carbon locale, in english if no translation available for current language
+            case $name === 'minDayName':
+                return $this->getTranslatedMinDayName();
+            // @property-read string long name of month translated according to Carbon locale, in english if no translation available for current language
+            case $name === 'monthName':
+                return $this->getTranslatedMonthName();
+            // @property-read string short name of month translated according to Carbon locale, in english if no translation available for current language
+            case $name === 'shortMonthName':
+                return $this->getTranslatedShortMonthName();
+            // @property-read string lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language
+            case $name === 'meridiem':
+                return $this->meridiem(true);
+            // @property-read string uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language
+            case $name === 'upperMeridiem':
+                return $this->meridiem();
+            // @property-read int current hour from 1 to 24
+            case $name === 'noZeroHour':
+                return $this->hour ?: 24;
+            // @property int
+            case $name === 'milliseconds':
+                // @property int
+            case $name === 'millisecond':
+            // @property int
+            case $name === 'milli':
+                return (int) floor($this->rawFormat('u') / 1000);
+
+            // @property int 1 through 53
+            case $name === 'week':
+                return (int) $this->week();
+
+            // @property int 1 through 53
+            case $name === 'isoWeek':
+                return (int) $this->isoWeek();
+
+            // @property int year according to week format
+            case $name === 'weekYear':
+                return (int) $this->weekYear();
+
+            // @property int year according to ISO week format
+            case $name === 'isoWeekYear':
+                return (int) $this->isoWeekYear();
+
+            // @property-read int 51 through 53
+            case $name === 'weeksInYear':
+                return $this->weeksInYear();
+
+            // @property-read int 51 through 53
+            case $name === 'isoWeeksInYear':
+                return $this->isoWeeksInYear();
+
+            // @property-read int 1 through 5
+            case $name === 'weekOfMonth':
+                return (int) ceil($this->day / static::DAYS_PER_WEEK);
+
+            // @property-read int 1 through 5
+            case $name === 'weekNumberInMonth':
+                return (int) ceil(($this->day + $this->avoidMutation()->startOfMonth()->dayOfWeekIso - 1) / static::DAYS_PER_WEEK);
+
+            // @property-read int 0 through 6
+            case $name === 'firstWeekDay':
+                return $this->localTranslator ? ($this->getTranslationMessage('first_day_of_week') ?? 0) : static::getWeekStartsAt();
+
+            // @property-read int 0 through 6
+            case $name === 'lastWeekDay':
+                return $this->localTranslator ? (($this->getTranslationMessage('first_day_of_week') ?? 0) + static::DAYS_PER_WEEK - 1) % static::DAYS_PER_WEEK : static::getWeekEndsAt();
+
+            // @property int 1 through 366
+            case $name === 'dayOfYear':
+                return 1 + (int) ($this->rawFormat('z'));
+
+            // @property-read int 365 or 366
+            case $name === 'daysInYear':
+                return $this->isLeapYear() ? 366 : 365;
+
+            // @property int does a diffInYears() with default parameters
+            case $name === 'age':
+                return $this->diffInYears();
+
+            // @property-read int the quarter of this instance, 1 - 4
+            // @call isSameUnit
+            case $name === 'quarter':
+                return (int) ceil($this->month / static::MONTHS_PER_QUARTER);
+
+            // @property-read int the decade of this instance
+            // @call isSameUnit
+            case $name === 'decade':
+                return (int) ceil($this->year / static::YEARS_PER_DECADE);
+
+            // @property-read int the century of this instance
+            // @call isSameUnit
+            case $name === 'century':
+                $factor = 1;
+                $year = $this->year;
+                if ($year < 0) {
+                    $year = -$year;
+                    $factor = -1;
+                }
+
+                return (int) ($factor * ceil($year / static::YEARS_PER_CENTURY));
+
+            // @property-read int the millennium of this instance
+            // @call isSameUnit
+            case $name === 'millennium':
+                $factor = 1;
+                $year = $this->year;
+                if ($year < 0) {
+                    $year = -$year;
+                    $factor = -1;
+                }
+
+                return (int) ($factor * ceil($year / static::YEARS_PER_MILLENNIUM));
+
+            // @property int the timezone offset in seconds from UTC
+            case $name === 'offset':
+                return $this->getOffset();
+
+            // @property int the timezone offset in minutes from UTC
+            case $name === 'offsetMinutes':
+                return $this->getOffset() / static::SECONDS_PER_MINUTE;
+
+            // @property int the timezone offset in hours from UTC
+            case $name === 'offsetHours':
+                return $this->getOffset() / static::SECONDS_PER_MINUTE / static::MINUTES_PER_HOUR;
+
+            // @property-read bool daylight savings time indicator, true if DST, false otherwise
+            case $name === 'dst':
+                return $this->rawFormat('I') === '1';
+
+            // @property-read bool checks if the timezone is local, true if local, false otherwise
+            case $name === 'local':
+                return $this->getOffset() === $this->avoidMutation()->setTimezone(date_default_timezone_get())->getOffset();
+
+            // @property-read bool checks if the timezone is UTC, true if UTC, false otherwise
+            case $name === 'utc':
+                return $this->getOffset() === 0;
+
+            // @property CarbonTimeZone $timezone the current timezone
+            // @property CarbonTimeZone $tz alias of $timezone
+            case $name === 'timezone' || $name === 'tz':
+                return CarbonTimeZone::instance($this->getTimezone());
+
+            // @property-read string $timezoneName the current timezone name
+            // @property-read string $tzName alias of $timezoneName
+            case $name === 'timezoneName' || $name === 'tzName':
+                return $this->getTimezone()->getName();
+
+            // @property-read string locale of the current instance
+            case $name === 'locale':
+                return $this->getTranslatorLocale();
+
+            default:
+                $macro = $this->getLocalMacro('get'.ucfirst($name));
+
+                if ($macro) {
+                    return $this->executeCallableWithContext($macro);
+                }
+
+                throw new UnknownGetterException($name);
+        }
+    }
+
+    /**
+     * Check if an attribute exists on the object
+     *
+     * @param string $name
+     *
+     * @return bool
+     */
+    public function __isset($name)
+    {
+        try {
+            $this->__get($name);
+        } catch (UnknownGetterException | ReflectionException $e) {
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * Set a part of the Carbon object
+     *
+     * @param string                  $name
+     * @param string|int|DateTimeZone $value
+     *
+     * @throws UnknownSetterException|ReflectionException
+     *
+     * @return void
+     */
+    public function __set($name, $value)
+    {
+        if ($this->constructedObjectId === spl_object_hash($this)) {
+            $this->set($name, $value);
+
+            return;
+        }
+
+        $this->$name = $value;
+    }
+
+    /**
+     * Set a part of the Carbon object
+     *
+     * @param string|array            $name
+     * @param string|int|DateTimeZone $value
+     *
+     * @throws ImmutableException|UnknownSetterException
+     *
+     * @return $this
+     */
+    public function set($name, $value = null)
+    {
+        if ($this->isImmutable()) {
+            throw new ImmutableException(sprintf('%s class', static::class));
+        }
+
+        if (\is_array($name)) {
+            foreach ($name as $key => $value) {
+                $this->set($key, $value);
+            }
+
+            return $this;
+        }
+
+        switch ($name) {
+            case 'milliseconds':
+            case 'millisecond':
+            case 'milli':
+            case 'microseconds':
+            case 'microsecond':
+            case 'micro':
+                if (str_starts_with($name, 'milli')) {
+                    $value *= 1000;
+                }
+
+                while ($value < 0) {
+                    $this->subSecond();
+                    $value += static::MICROSECONDS_PER_SECOND;
+                }
+
+                while ($value >= static::MICROSECONDS_PER_SECOND) {
+                    $this->addSecond();
+                    $value -= static::MICROSECONDS_PER_SECOND;
+                }
+
+                $this->modify($this->rawFormat('H:i:s.').str_pad((string) round($value), 6, '0', STR_PAD_LEFT));
+
+                break;
+
+            case 'year':
+            case 'month':
+            case 'day':
+            case 'hour':
+            case 'minute':
+            case 'second':
+                [$year, $month, $day, $hour, $minute, $second] = array_map('intval', explode('-', $this->rawFormat('Y-n-j-G-i-s')));
+                $$name = $value;
+                $this->setDateTime($year, $month, $day, $hour, $minute, $second);
+
+                break;
+
+            case 'week':
+                $this->week($value);
+
+                break;
+
+            case 'isoWeek':
+                $this->isoWeek($value);
+
+                break;
+
+            case 'weekYear':
+                $this->weekYear($value);
+
+                break;
+
+            case 'isoWeekYear':
+                $this->isoWeekYear($value);
+
+                break;
+
+            case 'dayOfYear':
+                $this->addDays($value - $this->dayOfYear);
+
+                break;
+
+            case 'timestamp':
+                $this->setTimestamp($value);
+
+                break;
+
+            case 'offset':
+                $this->setTimezone(static::safeCreateDateTimeZone($value / static::SECONDS_PER_MINUTE / static::MINUTES_PER_HOUR));
+
+                break;
+
+            case 'offsetMinutes':
+                $this->setTimezone(static::safeCreateDateTimeZone($value / static::MINUTES_PER_HOUR));
+
+                break;
+
+            case 'offsetHours':
+                $this->setTimezone(static::safeCreateDateTimeZone($value));
+
+                break;
+
+            case 'timezone':
+            case 'tz':
+                $this->setTimezone($value);
+
+                break;
+
+            default:
+                $macro = $this->getLocalMacro('set'.ucfirst($name));
+
+                if ($macro) {
+                    $this->executeCallableWithContext($macro, $value);
+
+                    break;
+                }
+
+                if ($this->localStrictModeEnabled ?? static::isStrictModeEnabled()) {
+                    throw new UnknownSetterException($name);
+                }
+
+                $this->$name = $value;
+        }
+
+        return $this;
+    }
+
+    protected function getTranslatedFormByRegExp($baseKey, $keySuffix, $context, $subKey, $defaultValue)
+    {
+        $key = $baseKey.$keySuffix;
+        $standaloneKey = "${key}_standalone";
+        $baseTranslation = $this->getTranslationMessage($key);
+
+        if ($baseTranslation instanceof Closure) {
+            return $baseTranslation($this, $context, $subKey) ?: $defaultValue;
+        }
+
+        if (
+            $this->getTranslationMessage("$standaloneKey.$subKey") &&
+            (!$context || ($regExp = $this->getTranslationMessage("${baseKey}_regexp")) && !preg_match($regExp, $context))
+        ) {
+            $key = $standaloneKey;
+        }
+
+        return $this->getTranslationMessage("$key.$subKey", null, $defaultValue);
+    }
+
+    /**
+     * Get the translation of the current week day name (with context for languages with multiple forms).
+     *
+     * @param string|null $context      whole format string
+     * @param string      $keySuffix    "", "_short" or "_min"
+     * @param string|null $defaultValue default value if translation missing
+     *
+     * @return string
+     */
+    public function getTranslatedDayName($context = null, $keySuffix = '', $defaultValue = null)
+    {
+        return $this->getTranslatedFormByRegExp('weekdays', $keySuffix, $context, $this->dayOfWeek, $defaultValue ?: $this->englishDayOfWeek);
+    }
+
+    /**
+     * Get the translation of the current short week day name (with context for languages with multiple forms).
+     *
+     * @param string|null $context whole format string
+     *
+     * @return string
+     */
+    public function getTranslatedShortDayName($context = null)
+    {
+        return $this->getTranslatedDayName($context, '_short', $this->shortEnglishDayOfWeek);
+    }
+
+    /**
+     * Get the translation of the current abbreviated week day name (with context for languages with multiple forms).
+     *
+     * @param string|null $context whole format string
+     *
+     * @return string
+     */
+    public function getTranslatedMinDayName($context = null)
+    {
+        return $this->getTranslatedDayName($context, '_min', $this->shortEnglishDayOfWeek);
+    }
+
+    /**
+     * Get the translation of the current month day name (with context for languages with multiple forms).
+     *
+     * @param string|null $context      whole format string
+     * @param string      $keySuffix    "" or "_short"
+     * @param string|null $defaultValue default value if translation missing
+     *
+     * @return string
+     */
+    public function getTranslatedMonthName($context = null, $keySuffix = '', $defaultValue = null)
+    {
+        return $this->getTranslatedFormByRegExp('months', $keySuffix, $context, $this->month - 1, $defaultValue ?: $this->englishMonth);
+    }
+
+    /**
+     * Get the translation of the current short month day name (with context for languages with multiple forms).
+     *
+     * @param string|null $context whole format string
+     *
+     * @return string
+     */
+    public function getTranslatedShortMonthName($context = null)
+    {
+        return $this->getTranslatedMonthName($context, '_short', $this->shortEnglishMonth);
+    }
+
+    /**
+     * Get/set the day of year.
+     *
+     * @param int|null $value new value for day of year if using as setter.
+     *
+     * @return static|int
+     */
+    public function dayOfYear($value = null)
+    {
+        $dayOfYear = $this->dayOfYear;
+
+        return $value === null ? $dayOfYear : $this->addDays($value - $dayOfYear);
+    }
+
+    /**
+     * Get/set the weekday from 0 (Sunday) to 6 (Saturday).
+     *
+     * @param int|null $value new value for weekday if using as setter.
+     *
+     * @return static|int
+     */
+    public function weekday($value = null)
+    {
+        $dayOfWeek = ($this->dayOfWeek + 7 - (int) ($this->getTranslationMessage('first_day_of_week') ?? 0)) % 7;
+
+        return $value === null ? $dayOfWeek : $this->addDays($value - $dayOfWeek);
+    }
+
+    /**
+     * Get/set the ISO weekday from 1 (Monday) to 7 (Sunday).
+     *
+     * @param int|null $value new value for weekday if using as setter.
+     *
+     * @return static|int
+     */
+    public function isoWeekday($value = null)
+    {
+        $dayOfWeekIso = $this->dayOfWeekIso;
+
+        return $value === null ? $dayOfWeekIso : $this->addDays($value - $dayOfWeekIso);
+    }
+
+    /**
+     * Set any unit to a new value without overflowing current other unit given.
+     *
+     * @param string $valueUnit    unit name to modify
+     * @param int    $value        new value for the input unit
+     * @param string $overflowUnit unit name to not overflow
+     *
+     * @return static
+     */
+    public function setUnitNoOverflow($valueUnit, $value, $overflowUnit)
+    {
+        try {
+            $original = $this->avoidMutation();
+            /** @var static $date */
+            $date = $this->$valueUnit($value);
+            $end = $original->avoidMutation()->endOf($overflowUnit);
+            $start = $original->avoidMutation()->startOf($overflowUnit);
+            if ($date < $start) {
+                $date = $date->setDateTimeFrom($start);
+            } elseif ($date > $end) {
+                $date = $date->setDateTimeFrom($end);
+            }
+
+            return $date;
+        } catch (BadMethodCallException | ReflectionException $exception) {
+            throw new UnknownUnitException($valueUnit, 0, $exception);
+        }
+    }
+
+    /**
+     * Add any unit to a new value without overflowing current other unit given.
+     *
+     * @param string $valueUnit    unit name to modify
+     * @param int    $value        amount to add to the input unit
+     * @param string $overflowUnit unit name to not overflow
+     *
+     * @return static
+     */
+    public function addUnitNoOverflow($valueUnit, $value, $overflowUnit)
+    {
+        return $this->setUnitNoOverflow($valueUnit, $this->$valueUnit + $value, $overflowUnit);
+    }
+
+    /**
+     * Subtract any unit to a new value without overflowing current other unit given.
+     *
+     * @param string $valueUnit    unit name to modify
+     * @param int    $value        amount to subtract to the input unit
+     * @param string $overflowUnit unit name to not overflow
+     *
+     * @return static
+     */
+    public function subUnitNoOverflow($valueUnit, $value, $overflowUnit)
+    {
+        return $this->setUnitNoOverflow($valueUnit, $this->$valueUnit - $value, $overflowUnit);
+    }
+
+    /**
+     * Returns the minutes offset to UTC if no arguments passed, else set the timezone with given minutes shift passed.
+     *
+     * @param int|null $minuteOffset
+     *
+     * @return int|static
+     */
+    public function utcOffset(int $minuteOffset = null)
+    {
+        if (\func_num_args() < 1) {
+            return $this->offsetMinutes;
+        }
+
+        return $this->setTimezone(CarbonTimeZone::createFromMinuteOffset($minuteOffset));
+    }
+
+    /**
+     * Set the date with gregorian year, month and day numbers.
+     *
+     * @see https://php.net/manual/en/datetime.setdate.php
+     *
+     * @param int $year
+     * @param int $month
+     * @param int $day
+     *
+     * @return static
+     */
+    #[ReturnTypeWillChange]
+    public function setDate($year, $month, $day)
+    {
+        return parent::setDate((int) $year, (int) $month, (int) $day);
+    }
+
+    /**
+     * Set a date according to the ISO 8601 standard - using weeks and day offsets rather than specific dates.
+     *
+     * @see https://php.net/manual/en/datetime.setisodate.php
+     *
+     * @param int $year
+     * @param int $week
+     * @param int $day
+     *
+     * @return static
+     */
+    #[ReturnTypeWillChange]
+    public function setISODate($year, $week, $day = 1)
+    {
+        return parent::setISODate((int) $year, (int) $week, (int) $day);
+    }
+
+    /**
+     * Set the date and time all together.
+     *
+     * @param int $year
+     * @param int $month
+     * @param int $day
+     * @param int $hour
+     * @param int $minute
+     * @param int $second
+     * @param int $microseconds
+     *
+     * @return static
+     */
+    public function setDateTime($year, $month, $day, $hour, $minute, $second = 0, $microseconds = 0)
+    {
+        return $this->setDate($year, $month, $day)->setTime((int) $hour, (int) $minute, (int) $second, (int) $microseconds);
+    }
+
+    /**
+     * Resets the current time of the DateTime object to a different time.
+     *
+     * @see https://php.net/manual/en/datetime.settime.php
+     *
+     * @param int $hour
+     * @param int $minute
+     * @param int $second
+     * @param int $microseconds
+     *
+     * @return static
+     */
+    #[ReturnTypeWillChange]
+    public function setTime($hour, $minute, $second = 0, $microseconds = 0)
+    {
+        return parent::setTime((int) $hour, (int) $minute, (int) $second, (int) $microseconds);
+    }
+
+    /**
+     * Set the instance's timestamp.
+     *
+     * Timestamp input can be given as int, float or a string containing one or more numbers.
+     *
+     * @param float|int|string $unixTimestamp
+     *
+     * @return static
+     */
+    #[ReturnTypeWillChange]
+    public function setTimestamp($unixTimestamp)
+    {
+        [$timestamp, $microseconds] = self::getIntegerAndDecimalParts($unixTimestamp);
+
+        return parent::setTimestamp((int) $timestamp)->setMicroseconds((int) $microseconds);
+    }
+
+    /**
+     * Set the time by time string.
+     *
+     * @param string $time
+     *
+     * @return static
+     */
+    public function setTimeFromTimeString($time)
+    {
+        if (!str_contains($time, ':')) {
+            $time .= ':0';
+        }
+
+        return $this->modify($time);
+    }
+
+    /**
+     * @alias setTimezone
+     *
+     * @param DateTimeZone|string $value
+     *
+     * @return static
+     */
+    public function timezone($value)
+    {
+        return $this->setTimezone($value);
+    }
+
+    /**
+     * Set the timezone or returns the timezone name if no arguments passed.
+     *
+     * @param DateTimeZone|string $value
+     *
+     * @return static|string
+     */
+    public function tz($value = null)
+    {
+        if (\func_num_args() < 1) {
+            return $this->tzName;
+        }
+
+        return $this->setTimezone($value);
+    }
+
+    /**
+     * Set the instance's timezone from a string or object.
+     *
+     * @param DateTimeZone|string $value
+     *
+     * @return static
+     */
+    #[ReturnTypeWillChange]
+    public function setTimezone($value)
+    {
+        return parent::setTimezone(static::safeCreateDateTimeZone($value));
+    }
+
+    /**
+     * Set the instance's timezone from a string or object and add/subtract the offset difference.
+     *
+     * @param DateTimeZone|string $value
+     *
+     * @return static
+     */
+    public function shiftTimezone($value)
+    {
+        $offset = $this->offset;
+        $date = $this->setTimezone($value);
+
+        return $date->addRealMicroseconds(($offset - $date->offset) * static::MICROSECONDS_PER_SECOND);
+    }
+
+    /**
+     * Set the instance's timezone to UTC.
+     *
+     * @return static
+     */
+    public function utc()
+    {
+        return $this->setTimezone('UTC');
+    }
+
+    /**
+     * Set the year, month, and date for this instance to that of the passed instance.
+     *
+     * @param Carbon|DateTimeInterface $date now if null
+     *
+     * @return static
+     */
+    public function setDateFrom($date = null)
+    {
+        $date = $this->resolveCarbon($date);
+
+        return $this->setDate($date->year, $date->month, $date->day);
+    }
+
+    /**
+     * Set the hour, minute, second and microseconds for this instance to that of the passed instance.
+     *
+     * @param Carbon|DateTimeInterface $date now if null
+     *
+     * @return static
+     */
+    public function setTimeFrom($date = null)
+    {
+        $date = $this->resolveCarbon($date);
+
+        return $this->setTime($date->hour, $date->minute, $date->second, $date->microsecond);
+    }
+
+    /**
+     * Set the date and time for this instance to that of the passed instance.
+     *
+     * @param Carbon|DateTimeInterface $date
+     *
+     * @return static
+     */
+    public function setDateTimeFrom($date = null)
+    {
+        $date = $this->resolveCarbon($date);
+
+        return $this->modify($date->rawFormat('Y-m-d H:i:s.u'));
+    }
+
+    /**
+     * Get the days of the week
+     *
+     * @return array
+     */
+    public static function getDays()
+    {
+        return static::$days;
+    }
+
+    ///////////////////////////////////////////////////////////////////
+    /////////////////////// WEEK SPECIAL DAYS /////////////////////////
+    ///////////////////////////////////////////////////////////////////
+
+    private static function getFirstDayOfWeek(): int
+    {
+        return (int) static::getTranslationMessageWith(
+            static::getTranslator(),
+            'first_day_of_week'
+        );
+    }
+
+    /**
+     * Get the first day of week
+     *
+     * @return int
+     */
+    public static function getWeekStartsAt()
+    {
+        if (static::$weekStartsAt === static::WEEK_DAY_AUTO) {
+            return static::getFirstDayOfWeek();
+        }
+
+        return static::$weekStartsAt;
+    }
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             Use $weekEndsAt optional parameter instead when using endOfWeek method. You can also use the
+     *             'first_day_of_week' locale setting to change the start of week according to current locale
+     *             selected and implicitly the end of week.
+     *
+     * Set the first day of week
+     *
+     * @param int|string $day week start day (or 'auto' to get the first day of week from Carbon::getLocale() culture).
+     *
+     * @return void
+     */
+    public static function setWeekStartsAt($day)
+    {
+        static::$weekStartsAt = $day === static::WEEK_DAY_AUTO ? $day : max(0, (7 + $day) % 7);
+    }
+
+    /**
+     * Get the last day of week
+     *
+     * @return int
+     */
+    public static function getWeekEndsAt()
+    {
+        if (static::$weekStartsAt === static::WEEK_DAY_AUTO) {
+            return (int) (static::DAYS_PER_WEEK - 1 + static::getFirstDayOfWeek()) % static::DAYS_PER_WEEK;
+        }
+
+        return static::$weekEndsAt;
+    }
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             Use $weekStartsAt optional parameter instead when using startOfWeek, floorWeek, ceilWeek
+     *             or roundWeek method. You can also use the 'first_day_of_week' locale setting to change the
+     *             start of week according to current locale selected and implicitly the end of week.
+     *
+     * Set the last day of week
+     *
+     * @param int|string $day week end day (or 'auto' to get the day before the first day of week
+     *                        from Carbon::getLocale() culture).
+     *
+     * @return void
+     */
+    public static function setWeekEndsAt($day)
+    {
+        static::$weekEndsAt = $day === static::WEEK_DAY_AUTO ? $day : max(0, (7 + $day) % 7);
+    }
+
+    /**
+     * Get weekend days
+     *
+     * @return array
+     */
+    public static function getWeekendDays()
+    {
+        return static::$weekendDays;
+    }
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather consider week-end is always saturday and sunday, and if you have some custom
+     *             week-end days to handle, give to those days an other name and create a macro for them:
+     *
+     *             ```
+     *             Carbon::macro('isDayOff', function ($date) {
+     *                 return $date->isSunday() || $date->isMonday();
+     *             });
+     *             Carbon::macro('isNotDayOff', function ($date) {
+     *                 return !$date->isDayOff();
+     *             });
+     *             if ($someDate->isDayOff()) ...
+     *             if ($someDate->isNotDayOff()) ...
+     *             // Add 5 not-off days
+     *             $count = 5;
+     *             while ($someDate->isDayOff() || ($count-- > 0)) {
+     *                 $someDate->addDay();
+     *             }
+     *             ```
+     *
+     * Set weekend days
+     *
+     * @param array $days
+     *
+     * @return void
+     */
+    public static function setWeekendDays($days)
+    {
+        static::$weekendDays = $days;
+    }
+
+    /**
+     * Determine if a time string will produce a relative date.
+     *
+     * @param string $time
+     *
+     * @return bool true if time match a relative date, false if absolute or invalid time string
+     */
+    public static function hasRelativeKeywords($time)
+    {
+        if (!$time || strtotime($time) === false) {
+            return false;
+        }
+
+        $date1 = new DateTime('2000-01-01T00:00:00Z');
+        $date1->modify($time);
+        $date2 = new DateTime('2001-12-25T00:00:00Z');
+        $date2->modify($time);
+
+        return $date1 != $date2;
+    }
+
+    ///////////////////////////////////////////////////////////////////
+    /////////////////////// STRING FORMATTING /////////////////////////
+    ///////////////////////////////////////////////////////////////////
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather use UTF-8 language packages on every machine.
+     *
+     * Set if UTF8 will be used for localized date/time.
+     *
+     * @param bool $utf8
+     */
+    public static function setUtf8($utf8)
+    {
+        static::$utf8 = $utf8;
+    }
+
+    /**
+     * Format the instance with the current locale.  You can set the current
+     * locale using setlocale() https://php.net/setlocale.
+     *
+     * @param string $format
+     *
+     * @return string
+     */
+    public function formatLocalized($format)
+    {
+        // Check for Windows to find and replace the %e modifier correctly.
+        if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
+            $format = preg_replace('#(?<!%)((?:%%)*)%e#', '\1%#d', $format); // @codeCoverageIgnore
+        }
+
+        $formatted = strftime($format, strtotime($this->toDateTimeString()));
+
+        return static::$utf8 ? utf8_encode($formatted) : $formatted;
+    }
+
+    /**
+     * Returns list of locale formats for ISO formatting.
+     *
+     * @param string|null $locale current locale used if null
+     *
+     * @return array
+     */
+    public function getIsoFormats($locale = null)
+    {
+        return [
+            'LT' => $this->getTranslationMessage('formats.LT', $locale, 'h:mm A'),
+            'LTS' => $this->getTranslationMessage('formats.LTS', $locale, 'h:mm:ss A'),
+            'L' => $this->getTranslationMessage('formats.L', $locale, 'MM/DD/YYYY'),
+            'LL' => $this->getTranslationMessage('formats.LL', $locale, 'MMMM D, YYYY'),
+            'LLL' => $this->getTranslationMessage('formats.LLL', $locale, 'MMMM D, YYYY h:mm A'),
+            'LLLL' => $this->getTranslationMessage('formats.LLLL', $locale, 'dddd, MMMM D, YYYY h:mm A'),
+        ];
+    }
+
+    /**
+     * Returns list of calendar formats for ISO formatting.
+     *
+     * @param string|null $locale current locale used if null
+     *
+     * @return array
+     */
+    public function getCalendarFormats($locale = null)
+    {
+        return [
+            'sameDay' => $this->getTranslationMessage('calendar.sameDay', $locale, '[Today at] LT'),
+            'nextDay' => $this->getTranslationMessage('calendar.nextDay', $locale, '[Tomorrow at] LT'),
+            'nextWeek' => $this->getTranslationMessage('calendar.nextWeek', $locale, 'dddd [at] LT'),
+            'lastDay' => $this->getTranslationMessage('calendar.lastDay', $locale, '[Yesterday at] LT'),
+            'lastWeek' => $this->getTranslationMessage('calendar.lastWeek', $locale, '[Last] dddd [at] LT'),
+            'sameElse' => $this->getTranslationMessage('calendar.sameElse', $locale, 'L'),
+        ];
+    }
+
+    /**
+     * Returns list of locale units for ISO formatting.
+     *
+     * @return array
+     */
+    public static function getIsoUnits()
+    {
+        static $units = null;
+
+        if ($units === null) {
+            $units = [
+                'OD' => ['getAltNumber', ['day']],
+                'OM' => ['getAltNumber', ['month']],
+                'OY' => ['getAltNumber', ['year']],
+                'OH' => ['getAltNumber', ['hour']],
+                'Oh' => ['getAltNumber', ['h']],
+                'Om' => ['getAltNumber', ['minute']],
+                'Os' => ['getAltNumber', ['second']],
+                'D' => 'day',
+                'DD' => ['rawFormat', ['d']],
+                'Do' => ['ordinal', ['day', 'D']],
+                'd' => 'dayOfWeek',
+                'dd' => function (CarbonInterface $date, $originalFormat = null) {
+                    return $date->getTranslatedMinDayName($originalFormat);
+                },
+                'ddd' => function (CarbonInterface $date, $originalFormat = null) {
+                    return $date->getTranslatedShortDayName($originalFormat);
+                },
+                'dddd' => function (CarbonInterface $date, $originalFormat = null) {
+                    return $date->getTranslatedDayName($originalFormat);
+                },
+                'DDD' => 'dayOfYear',
+                'DDDD' => ['getPaddedUnit', ['dayOfYear', 3]],
+                'DDDo' => ['ordinal', ['dayOfYear', 'DDD']],
+                'e' => ['weekday', []],
+                'E' => 'dayOfWeekIso',
+                'H' => ['rawFormat', ['G']],
+                'HH' => ['rawFormat', ['H']],
+                'h' => ['rawFormat', ['g']],
+                'hh' => ['rawFormat', ['h']],
+                'k' => 'noZeroHour',
+                'kk' => ['getPaddedUnit', ['noZeroHour']],
+                'hmm' => ['rawFormat', ['gi']],
+                'hmmss' => ['rawFormat', ['gis']],
+                'Hmm' => ['rawFormat', ['Gi']],
+                'Hmmss' => ['rawFormat', ['Gis']],
+                'm' => 'minute',
+                'mm' => ['rawFormat', ['i']],
+                'a' => 'meridiem',
+                'A' => 'upperMeridiem',
+                's' => 'second',
+                'ss' => ['getPaddedUnit', ['second']],
+                'S' => function (CarbonInterface $date) {
+                    return (string) floor($date->micro / 100000);
+                },
+                'SS' => function (CarbonInterface $date) {
+                    return str_pad((string) floor($date->micro / 10000), 2, '0', STR_PAD_LEFT);
+                },
+                'SSS' => function (CarbonInterface $date) {
+                    return str_pad((string) floor($date->micro / 1000), 3, '0', STR_PAD_LEFT);
+                },
+                'SSSS' => function (CarbonInterface $date) {
+                    return str_pad((string) floor($date->micro / 100), 4, '0', STR_PAD_LEFT);
+                },
+                'SSSSS' => function (CarbonInterface $date) {
+                    return str_pad((string) floor($date->micro / 10), 5, '0', STR_PAD_LEFT);
+                },
+                'SSSSSS' => ['getPaddedUnit', ['micro', 6]],
+                'SSSSSSS' => function (CarbonInterface $date) {
+                    return str_pad((string) floor($date->micro * 10), 7, '0', STR_PAD_LEFT);
+                },
+                'SSSSSSSS' => function (CarbonInterface $date) {
+                    return str_pad((string) floor($date->micro * 100), 8, '0', STR_PAD_LEFT);
+                },
+                'SSSSSSSSS' => function (CarbonInterface $date) {
+                    return str_pad((string) floor($date->micro * 1000), 9, '0', STR_PAD_LEFT);
+                },
+                'M' => 'month',
+                'MM' => ['rawFormat', ['m']],
+                'MMM' => function (CarbonInterface $date, $originalFormat = null) {
+                    $month = $date->getTranslatedShortMonthName($originalFormat);
+                    $suffix = $date->getTranslationMessage('mmm_suffix');
+                    if ($suffix && $month !== $date->monthName) {
+                        $month .= $suffix;
+                    }
+
+                    return $month;
+                },
+                'MMMM' => function (CarbonInterface $date, $originalFormat = null) {
+                    return $date->getTranslatedMonthName($originalFormat);
+                },
+                'Mo' => ['ordinal', ['month', 'M']],
+                'Q' => 'quarter',
+                'Qo' => ['ordinal', ['quarter', 'M']],
+                'G' => 'isoWeekYear',
+                'GG' => ['getPaddedUnit', ['isoWeekYear']],
+                'GGG' => ['getPaddedUnit', ['isoWeekYear', 3]],
+                'GGGG' => ['getPaddedUnit', ['isoWeekYear', 4]],
+                'GGGGG' => ['getPaddedUnit', ['isoWeekYear', 5]],
+                'g' => 'weekYear',
+                'gg' => ['getPaddedUnit', ['weekYear']],
+                'ggg' => ['getPaddedUnit', ['weekYear', 3]],
+                'gggg' => ['getPaddedUnit', ['weekYear', 4]],
+                'ggggg' => ['getPaddedUnit', ['weekYear', 5]],
+                'W' => 'isoWeek',
+                'WW' => ['getPaddedUnit', ['isoWeek']],
+                'Wo' => ['ordinal', ['isoWeek', 'W']],
+                'w' => 'week',
+                'ww' => ['getPaddedUnit', ['week']],
+                'wo' => ['ordinal', ['week', 'w']],
+                'x' => ['valueOf', []],
+                'X' => 'timestamp',
+                'Y' => 'year',
+                'YY' => ['rawFormat', ['y']],
+                'YYYY' => ['getPaddedUnit', ['year', 4]],
+                'YYYYY' => ['getPaddedUnit', ['year', 5]],
+                'YYYYYY' => function (CarbonInterface $date) {
+                    return ($date->year < 0 ? '' : '+').$date->getPaddedUnit('year', 6);
+                },
+                'z' => ['rawFormat', ['T']],
+                'zz' => 'tzName',
+                'Z' => ['getOffsetString', []],
+                'ZZ' => ['getOffsetString', ['']],
+            ];
+        }
+
+        return $units;
+    }
+
+    /**
+     * Returns a unit of the instance padded with 0 by default or any other string if specified.
+     *
+     * @param string $unit      Carbon unit name
+     * @param int    $length    Length of the output (2 by default)
+     * @param string $padString String to use for padding ("0" by default)
+     * @param int    $padType   Side(s) to pad (STR_PAD_LEFT by default)
+     *
+     * @return string
+     */
+    public function getPaddedUnit($unit, $length = 2, $padString = '0', $padType = STR_PAD_LEFT)
+    {
+        return ($this->$unit < 0 ? '-' : '').str_pad((string) abs($this->$unit), $length, $padString, $padType);
+    }
+
+    /**
+     * Return a property with its ordinal.
+     *
+     * @param string      $key
+     * @param string|null $period
+     *
+     * @return string
+     */
+    public function ordinal(string $key, ?string $period = null): string
+    {
+        $number = $this->$key;
+        $result = $this->translate('ordinal', [
+            ':number' => $number,
+            ':period' => (string) $period,
+        ]);
+
+        return (string) ($result === 'ordinal' ? $number : $result);
+    }
+
+    /**
+     * Return the meridiem of the current time in the current locale.
+     *
+     * @param bool $isLower if true, returns lowercase variant if available in the current locale.
+     *
+     * @return string
+     */
+    public function meridiem(bool $isLower = false): string
+    {
+        $hour = $this->hour;
+        $index = $hour < 12 ? 0 : 1;
+
+        if ($isLower) {
+            $key = 'meridiem.'.($index + 2);
+            $result = $this->translate($key);
+
+            if ($result !== $key) {
+                return $result;
+            }
+        }
+
+        $key = "meridiem.$index";
+        $result = $this->translate($key);
+        if ($result === $key) {
+            $result = $this->translate('meridiem', [
+                ':hour' => $this->hour,
+                ':minute' => $this->minute,
+                ':isLower' => $isLower,
+            ]);
+
+            if ($result === 'meridiem') {
+                return $isLower ? $this->latinMeridiem : $this->latinUpperMeridiem;
+            }
+        } elseif ($isLower) {
+            $result = mb_strtolower($result);
+        }
+
+        return $result;
+    }
+
+    /**
+     * Returns the alternative number for a given date property if available in the current locale.
+     *
+     * @param string $key date property
+     *
+     * @return string
+     */
+    public function getAltNumber(string $key): string
+    {
+        return $this->translateNumber(\strlen($key) > 1 ? $this->$key : $this->rawFormat('h'));
+    }
+
+    /**
+     * Format in the current language using ISO replacement patterns.
+     *
+     * @param string      $format
+     * @param string|null $originalFormat provide context if a chunk has been passed alone
+     *
+     * @return string
+     */
+    public function isoFormat(string $format, ?string $originalFormat = null): string
+    {
+        $result = '';
+        $length = mb_strlen($format);
+        $originalFormat = $originalFormat ?: $format;
+        $inEscaped = false;
+        $formats = null;
+        $units = null;
+
+        for ($i = 0; $i < $length; $i++) {
+            $char = mb_substr($format, $i, 1);
+
+            if ($char === '\\') {
+                $result .= mb_substr($format, ++$i, 1);
+
+                continue;
+            }
+
+            if ($char === '[' && !$inEscaped) {
+                $inEscaped = true;
+
+                continue;
+            }
+
+            if ($char === ']' && $inEscaped) {
+                $inEscaped = false;
+
+                continue;
+            }
+
+            if ($inEscaped) {
+                $result .= $char;
+
+                continue;
+            }
+
+            $input = mb_substr($format, $i);
+
+            if (preg_match('/^(LTS|LT|[Ll]{1,4})/', $input, $match)) {
+                if ($formats === null) {
+                    $formats = $this->getIsoFormats();
+                }
+
+                $code = $match[0];
+                $sequence = $formats[$code] ?? preg_replace_callback(
+                    '/MMMM|MM|DD|dddd/',
+                    function ($code) {
+                        return mb_substr($code[0], 1);
+                    },
+                    $formats[strtoupper($code)] ?? ''
+                );
+                $rest = mb_substr($format, $i + mb_strlen($code));
+                $format = mb_substr($format, 0, $i).$sequence.$rest;
+                $length = mb_strlen($format);
+                $input = $sequence.$rest;
+            }
+
+            if (preg_match('/^'.CarbonInterface::ISO_FORMAT_REGEXP.'/', $input, $match)) {
+                $code = $match[0];
+
+                if ($units === null) {
+                    $units = static::getIsoUnits();
+                }
+
+                $sequence = $units[$code] ?? '';
+
+                if ($sequence instanceof Closure) {
+                    $sequence = $sequence($this, $originalFormat);
+                } elseif (\is_array($sequence)) {
+                    try {
+                        $sequence = $this->{$sequence[0]}(...$sequence[1]);
+                    } catch (ReflectionException | InvalidArgumentException | BadMethodCallException $e) {
+                        $sequence = '';
+                    }
+                } elseif (\is_string($sequence)) {
+                    $sequence = $this->$sequence ?? $code;
+                }
+
+                $format = mb_substr($format, 0, $i).$sequence.mb_substr($format, $i + mb_strlen($code));
+                $i += mb_strlen((string) $sequence) - 1;
+                $length = mb_strlen($format);
+                $char = $sequence;
+            }
+
+            $result .= $char;
+        }
+
+        return $result;
+    }
+
+    /**
+     * List of replacements from date() format to isoFormat().
+     *
+     * @return array
+     */
+    public static function getFormatsToIsoReplacements()
+    {
+        static $replacements = null;
+
+        if ($replacements === null) {
+            $replacements = [
+                'd' => true,
+                'D' => 'ddd',
+                'j' => true,
+                'l' => 'dddd',
+                'N' => true,
+                'S' => function ($date) {
+                    $day = $date->rawFormat('j');
+
+                    return str_replace((string) $day, '', $date->isoFormat('Do'));
+                },
+                'w' => true,
+                'z' => true,
+                'W' => true,
+                'F' => 'MMMM',
+                'm' => true,
+                'M' => 'MMM',
+                'n' => true,
+                't' => true,
+                'L' => true,
+                'o' => true,
+                'Y' => true,
+                'y' => true,
+                'a' => 'a',
+                'A' => 'A',
+                'B' => true,
+                'g' => true,
+                'G' => true,
+                'h' => true,
+                'H' => true,
+                'i' => true,
+                's' => true,
+                'u' => true,
+                'v' => true,
+                'E' => true,
+                'I' => true,
+                'O' => true,
+                'P' => true,
+                'Z' => true,
+                'c' => true,
+                'r' => true,
+                'U' => true,
+            ];
+        }
+
+        return $replacements;
+    }
+
+    /**
+     * Format as ->format() do (using date replacements patterns from https://php.net/manual/en/function.date.php)
+     * but translate words whenever possible (months, day names, etc.) using the current locale.
+     *
+     * @param string $format
+     *
+     * @return string
+     */
+    public function translatedFormat(string $format): string
+    {
+        $replacements = static::getFormatsToIsoReplacements();
+        $context = '';
+        $isoFormat = '';
+        $length = mb_strlen($format);
+
+        for ($i = 0; $i < $length; $i++) {
+            $char = mb_substr($format, $i, 1);
+
+            if ($char === '\\') {
+                $replacement = mb_substr($format, $i, 2);
+                $isoFormat .= $replacement;
+                $i++;
+
+                continue;
+            }
+
+            if (!isset($replacements[$char])) {
+                $replacement = preg_match('/^[A-Za-z]$/', $char) ? "\\$char" : $char;
+                $isoFormat .= $replacement;
+                $context .= $replacement;
+
+                continue;
+            }
+
+            $replacement = $replacements[$char];
+
+            if ($replacement === true) {
+                static $contextReplacements = null;
+
+                if ($contextReplacements === null) {
+                    $contextReplacements = [
+                        'm' => 'MM',
+                        'd' => 'DD',
+                        't' => 'D',
+                        'j' => 'D',
+                        'N' => 'e',
+                        'w' => 'e',
+                        'n' => 'M',
+                        'o' => 'YYYY',
+                        'Y' => 'YYYY',
+                        'y' => 'YY',
+                        'g' => 'h',
+                        'G' => 'H',
+                        'h' => 'hh',
+                        'H' => 'HH',
+                        'i' => 'mm',
+                        's' => 'ss',
+                    ];
+                }
+
+                $isoFormat .= '['.$this->rawFormat($char).']';
+                $context .= $contextReplacements[$char] ?? ' ';
+
+                continue;
+            }
+
+            if ($replacement instanceof Closure) {
+                $replacement = '['.$replacement($this).']';
+                $isoFormat .= $replacement;
+                $context .= $replacement;
+
+                continue;
+            }
+
+            $isoFormat .= $replacement;
+            $context .= $replacement;
+        }
+
+        return $this->isoFormat($isoFormat, $context);
+    }
+
+    /**
+     * Returns the offset hour and minute formatted with +/- and a given separator (":" by default).
+     * For example, if the time zone is 9 hours 30 minutes, you'll get "+09:30", with "@@" as first
+     * argument, "+09@@30", with "" as first argument, "+0930". Negative offset will return something
+     * like "-12:00".
+     *
+     * @param string $separator string to place between hours and minutes (":" by default)
+     *
+     * @return string
+     */
+    public function getOffsetString($separator = ':')
+    {
+        $second = $this->getOffset();
+        $symbol = $second < 0 ? '-' : '+';
+        $minute = abs($second) / static::SECONDS_PER_MINUTE;
+        $hour = str_pad((string) floor($minute / static::MINUTES_PER_HOUR), 2, '0', STR_PAD_LEFT);
+        $minute = str_pad((string) ($minute % static::MINUTES_PER_HOUR), 2, '0', STR_PAD_LEFT);
+
+        return "$symbol$hour$separator$minute";
+    }
+
+    protected static function executeStaticCallable($macro, ...$parameters)
+    {
+        return static::bindMacroContext(null, function () use (&$macro, &$parameters) {
+            if ($macro instanceof Closure) {
+                $boundMacro = @Closure::bind($macro, null, static::class);
+
+                return ($boundMacro ?: $macro)(...$parameters);
+            }
+
+            return $macro(...$parameters);
+        });
+    }
+
+    /**
+     * Dynamically handle calls to the class.
+     *
+     * @param string $method     magic method name called
+     * @param array  $parameters parameters list
+     *
+     * @throws BadMethodCallException
+     *
+     * @return mixed
+     */
+    public static function __callStatic($method, $parameters)
+    {
+        if (!static::hasMacro($method)) {
+            foreach (static::getGenericMacros() as $callback) {
+                try {
+                    return static::executeStaticCallable($callback, $method, ...$parameters);
+                } catch (BadMethodCallException $exception) {
+                    continue;
+                }
+            }
+            if (static::isStrictModeEnabled()) {
+                throw new UnknownMethodException(sprintf('%s::%s', static::class, $method));
+            }
+
+            return null;
+        }
+
+        return static::executeStaticCallable(static::$globalMacros[$method], ...$parameters);
+    }
+
+    /**
+     * Set specified unit to new given value.
+     *
+     * @param string $unit  year, month, day, hour, minute, second or microsecond
+     * @param int    $value new value for given unit
+     *
+     * @return static
+     */
+    public function setUnit($unit, $value = null)
+    {
+        $unit = static::singularUnit($unit);
+        $dateUnits = ['year', 'month', 'day'];
+        if (\in_array($unit, $dateUnits)) {
+            return $this->setDate(...array_map(function ($name) use ($unit, $value) {
+                return (int) ($name === $unit ? $value : $this->$name);
+            }, $dateUnits));
+        }
+
+        $units = ['hour', 'minute', 'second', 'micro'];
+        if ($unit === 'millisecond' || $unit === 'milli') {
+            $value *= 1000;
+            $unit = 'micro';
+        } elseif ($unit === 'microsecond') {
+            $unit = 'micro';
+        }
+
+        return $this->setTime(...array_map(function ($name) use ($unit, $value) {
+            return (int) ($name === $unit ? $value : $this->$name);
+        }, $units));
+    }
+
+    /**
+     * Returns standardized singular of a given singular/plural unit name (in English).
+     *
+     * @param string $unit
+     *
+     * @return string
+     */
+    public static function singularUnit(string $unit): string
+    {
+        $unit = rtrim(mb_strtolower($unit), 's');
+
+        if ($unit === 'centurie') {
+            return 'century';
+        }
+
+        if ($unit === 'millennia') {
+            return 'millennium';
+        }
+
+        return $unit;
+    }
+
+    /**
+     * Returns standardized plural of a given singular/plural unit name (in English).
+     *
+     * @param string $unit
+     *
+     * @return string
+     */
+    public static function pluralUnit(string $unit): string
+    {
+        $unit = rtrim(strtolower($unit), 's');
+
+        if ($unit === 'century') {
+            return 'centuries';
+        }
+
+        if ($unit === 'millennium' || $unit === 'millennia') {
+            return 'millennia';
+        }
+
+        return "${unit}s";
+    }
+
+    protected function executeCallable($macro, ...$parameters)
+    {
+        if ($macro instanceof Closure) {
+            $boundMacro = @$macro->bindTo($this, static::class) ?: @$macro->bindTo(null, static::class);
+
+            return ($boundMacro ?: $macro)(...$parameters);
+        }
+
+        return $macro(...$parameters);
+    }
+
+    protected function executeCallableWithContext($macro, ...$parameters)
+    {
+        return static::bindMacroContext($this, function () use (&$macro, &$parameters) {
+            return $this->executeCallable($macro, ...$parameters);
+        });
+    }
+
+    protected static function getGenericMacros()
+    {
+        foreach (static::$globalGenericMacros as $list) {
+            foreach ($list as $macro) {
+                yield $macro;
+            }
+        }
+    }
+
+    /**
+     * Dynamically handle calls to the class.
+     *
+     * @param string $method     magic method name called
+     * @param array  $parameters parameters list
+     *
+     * @throws UnknownMethodException|BadMethodCallException|ReflectionException|Throwable
+     *
+     * @return mixed
+     */
+    public function __call($method, $parameters)
+    {
+        $diffSizes = [
+            // @mode diffForHumans
+            'short' => true,
+            // @mode diffForHumans
+            'long' => false,
+        ];
+        $diffSyntaxModes = [
+            // @call diffForHumans
+            'Absolute' => CarbonInterface::DIFF_ABSOLUTE,
+            // @call diffForHumans
+            'Relative' => CarbonInterface::DIFF_RELATIVE_AUTO,
+            // @call diffForHumans
+            'RelativeToNow' => CarbonInterface::DIFF_RELATIVE_TO_NOW,
+            // @call diffForHumans
+            'RelativeToOther' => CarbonInterface::DIFF_RELATIVE_TO_OTHER,
+        ];
+        $sizePattern = implode('|', array_keys($diffSizes));
+        $syntaxPattern = implode('|', array_keys($diffSyntaxModes));
+
+        if (preg_match("/^(?<size>$sizePattern)(?<syntax>$syntaxPattern)DiffForHumans$/", $method, $match)) {
+            $dates = array_filter($parameters, function ($parameter) {
+                return $parameter instanceof DateTimeInterface;
+            });
+            $other = null;
+
+            if (\count($dates)) {
+                $key = key($dates);
+                $other = current($dates);
+                array_splice($parameters, $key, 1);
+            }
+
+            return $this->diffForHumans($other, $diffSyntaxModes[$match['syntax']], $diffSizes[$match['size']], ...$parameters);
+        }
+
+        $roundedValue = $this->callRoundMethod($method, $parameters);
+
+        if ($roundedValue !== null) {
+            return $roundedValue;
+        }
+
+        $unit = rtrim($method, 's');
+
+        if (str_starts_with($unit, 'is')) {
+            $word = substr($unit, 2);
+
+            if (\in_array($word, static::$days)) {
+                return $this->isDayOfWeek($word);
+            }
+
+            switch ($word) {
+                // @call is Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.)
+                case 'Utc':
+                case 'UTC':
+                    return $this->utc;
+                // @call is Check if the current instance has non-UTC timezone.
+                case 'Local':
+                    return $this->local;
+                // @call is Check if the current instance is a valid date.
+                case 'Valid':
+                    return $this->year !== 0;
+                // @call is Check if the current instance is in a daylight saving time.
+                case 'DST':
+                    return $this->dst;
+            }
+        }
+
+        $action = substr($unit, 0, 3);
+        $overflow = null;
+
+        if ($action === 'set') {
+            $unit = strtolower(substr($unit, 3));
+        }
+
+        if (\in_array($unit, static::$units)) {
+            return $this->setUnit($unit, ...$parameters);
+        }
+
+        if ($action === 'add' || $action === 'sub') {
+            $unit = substr($unit, 3);
+
+            if (str_starts_with($unit, 'Real')) {
+                $unit = static::singularUnit(substr($unit, 4));
+
+                return $this->{"${action}RealUnit"}($unit, ...$parameters);
+            }
+
+            if (preg_match('/^(Month|Quarter|Year|Decade|Century|Centurie|Millennium|Millennia)s?(No|With|Without|WithNo)Overflow$/', $unit, $match)) {
+                $unit = $match[1];
+                $overflow = $match[2] === 'With';
+            }
+
+            $unit = static::singularUnit($unit);
+        }
+
+        if (static::isModifiableUnit($unit)) {
+            return $this->{"${action}Unit"}($unit, $parameters[0] ?? 1, $overflow);
+        }
+
+        $sixFirstLetters = substr($unit, 0, 6);
+        $factor = -1;
+
+        if ($sixFirstLetters === 'isLast') {
+            $sixFirstLetters = 'isNext';
+            $factor = 1;
+        }
+
+        if ($sixFirstLetters === 'isNext') {
+            $lowerUnit = strtolower(substr($unit, 6));
+
+            if (static::isModifiableUnit($lowerUnit)) {
+                return $this->copy()->addUnit($lowerUnit, $factor, false)->isSameUnit($lowerUnit, ...$parameters);
+            }
+        }
+
+        if ($sixFirstLetters === 'isSame') {
+            try {
+                return $this->isSameUnit(strtolower(substr($unit, 6)), ...$parameters);
+            } catch (BadComparisonUnitException $exception) {
+                // Try next
+            }
+        }
+
+        if (str_starts_with($unit, 'isCurrent')) {
+            try {
+                return $this->isCurrentUnit(strtolower(substr($unit, 9)));
+            } catch (BadComparisonUnitException | BadMethodCallException $exception) {
+                // Try next
+            }
+        }
+
+        if (str_ends_with($method, 'Until')) {
+            try {
+                $unit = static::singularUnit(substr($method, 0, -5));
+
+                return $this->range($parameters[0] ?? $this, $parameters[1] ?? 1, $unit);
+            } catch (InvalidArgumentException $exception) {
+                // Try macros
+            }
+        }
+
+        return static::bindMacroContext($this, function () use (&$method, &$parameters) {
+            $macro = $this->getLocalMacro($method);
+
+            if (!$macro) {
+                foreach ([$this->localGenericMacros ?: [], static::getGenericMacros()] as $list) {
+                    foreach ($list as $callback) {
+                        try {
+                            return $this->executeCallable($callback, $method, ...$parameters);
+                        } catch (BadMethodCallException $exception) {
+                            continue;
+                        }
+                    }
+                }
+
+                if ($this->localStrictModeEnabled ?? static::isStrictModeEnabled()) {
+                    throw new UnknownMethodException($method);
+                }
+
+                return null;
+            }
+
+            return $this->executeCallable($macro, ...$parameters);
+        });
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Difference.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Difference.php
new file mode 100644
index 0000000..b1cdd6e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Difference.php
@@ -0,0 +1,1141 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Traits;
+
+use Carbon\Carbon;
+use Carbon\CarbonImmutable;
+use Carbon\CarbonInterface;
+use Carbon\CarbonInterval;
+use Carbon\CarbonPeriod;
+use Carbon\Translator;
+use Closure;
+use DateInterval;
+use DateTimeInterface;
+use ReturnTypeWillChange;
+
+/**
+ * Trait Difference.
+ *
+ * Depends on the following methods:
+ *
+ * @method bool lessThan($date)
+ * @method static copy()
+ * @method static resolveCarbon($date = null)
+ * @method static Translator translator()
+ */
+trait Difference
+{
+    /**
+     * @codeCoverageIgnore
+     *
+     * @param CarbonInterval $diff
+     */
+    protected static function fixNegativeMicroseconds(CarbonInterval $diff)
+    {
+        if ($diff->s !== 0 || $diff->i !== 0 || $diff->h !== 0 || $diff->d !== 0 || $diff->m !== 0 || $diff->y !== 0) {
+            $diff->f = (round($diff->f * 1000000) + 1000000) / 1000000;
+            $diff->s--;
+
+            if ($diff->s < 0) {
+                $diff->s += 60;
+                $diff->i--;
+
+                if ($diff->i < 0) {
+                    $diff->i += 60;
+                    $diff->h--;
+
+                    if ($diff->h < 0) {
+                        $diff->h += 24;
+                        $diff->d--;
+
+                        if ($diff->d < 0) {
+                            $diff->d += 30;
+                            $diff->m--;
+
+                            if ($diff->m < 0) {
+                                $diff->m += 12;
+                                $diff->y--;
+                            }
+                        }
+                    }
+                }
+            }
+
+            return;
+        }
+
+        $diff->f *= -1;
+        $diff->invert();
+    }
+
+    /**
+     * @param DateInterval $diff
+     * @param bool         $absolute
+     *
+     * @return CarbonInterval
+     */
+    protected static function fixDiffInterval(DateInterval $diff, $absolute)
+    {
+        $diff = CarbonInterval::instance($diff);
+
+        // Work-around for https://bugs.php.net/bug.php?id=77145
+        // @codeCoverageIgnoreStart
+        if ($diff->f > 0 && $diff->y === -1 && $diff->m === 11 && $diff->d >= 27 && $diff->h === 23 && $diff->i === 59 && $diff->s === 59) {
+            $diff->y = 0;
+            $diff->m = 0;
+            $diff->d = 0;
+            $diff->h = 0;
+            $diff->i = 0;
+            $diff->s = 0;
+            $diff->f = (1000000 - round($diff->f * 1000000)) / 1000000;
+            $diff->invert();
+        } elseif ($diff->f < 0) {
+            static::fixNegativeMicroseconds($diff);
+        }
+        // @codeCoverageIgnoreEnd
+
+        if ($absolute && $diff->invert) {
+            $diff->invert();
+        }
+
+        return $diff;
+    }
+
+    /**
+     * Get the difference as a DateInterval instance.
+     * Return relative interval (negative if
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return DateInterval
+     */
+    #[ReturnTypeWillChange]
+    public function diff($date = null, $absolute = false)
+    {
+        $other = $this->resolveCarbon($date);
+
+        // Can be removed if https://github.com/derickr/timelib/pull/110
+        // is merged
+        // @codeCoverageIgnoreStart
+        if (version_compare(PHP_VERSION, '8.1.0-dev', '>=') && $other->tz !== $this->tz) {
+            $other = $other->avoidMutation()->tz($this->tz);
+        }
+        // @codeCoverageIgnoreEnd
+
+        return parent::diff($other, (bool) $absolute);
+    }
+
+    /**
+     * Get the difference as a CarbonInterval instance.
+     * Return absolute interval (always positive) unless you pass false to the second argument.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return CarbonInterval
+     */
+    public function diffAsCarbonInterval($date = null, $absolute = true)
+    {
+        return static::fixDiffInterval($this->diff($this->resolveCarbon($date), $absolute), $absolute);
+    }
+
+    /**
+     * Get the difference in years
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInYears($date = null, $absolute = true)
+    {
+        return (int) $this->diff($this->resolveCarbon($date), $absolute)->format('%r%y');
+    }
+
+    /**
+     * Get the difference in quarters rounded down.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInQuarters($date = null, $absolute = true)
+    {
+        return (int) ($this->diffInMonths($date, $absolute) / static::MONTHS_PER_QUARTER);
+    }
+
+    /**
+     * Get the difference in months rounded down.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInMonths($date = null, $absolute = true)
+    {
+        $date = $this->resolveCarbon($date);
+
+        return $this->diffInYears($date, $absolute) * static::MONTHS_PER_YEAR + (int) $this->diff($date, $absolute)->format('%r%m');
+    }
+
+    /**
+     * Get the difference in weeks rounded down.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInWeeks($date = null, $absolute = true)
+    {
+        return (int) ($this->diffInDays($date, $absolute) / static::DAYS_PER_WEEK);
+    }
+
+    /**
+     * Get the difference in days rounded down.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInDays($date = null, $absolute = true)
+    {
+        return (int) $this->diff($this->resolveCarbon($date), $absolute)->format('%r%a');
+    }
+
+    /**
+     * Get the difference in days using a filter closure rounded down.
+     *
+     * @param Closure                                                $callback
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInDaysFiltered(Closure $callback, $date = null, $absolute = true)
+    {
+        return $this->diffFiltered(CarbonInterval::day(), $callback, $date, $absolute);
+    }
+
+    /**
+     * Get the difference in hours using a filter closure rounded down.
+     *
+     * @param Closure                                                $callback
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInHoursFiltered(Closure $callback, $date = null, $absolute = true)
+    {
+        return $this->diffFiltered(CarbonInterval::hour(), $callback, $date, $absolute);
+    }
+
+    /**
+     * Get the difference by the given interval using a filter closure.
+     *
+     * @param CarbonInterval                                         $ci       An interval to traverse by
+     * @param Closure                                                $callback
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffFiltered(CarbonInterval $ci, Closure $callback, $date = null, $absolute = true)
+    {
+        $start = $this;
+        $end = $this->resolveCarbon($date);
+        $inverse = false;
+
+        if ($end < $start) {
+            $start = $end;
+            $end = $this;
+            $inverse = true;
+        }
+
+        $options = CarbonPeriod::EXCLUDE_END_DATE | ($this->isMutable() ? 0 : CarbonPeriod::IMMUTABLE);
+        $diff = $ci->toPeriod($start, $end, $options)->filter($callback)->count();
+
+        return $inverse && !$absolute ? -$diff : $diff;
+    }
+
+    /**
+     * Get the difference in weekdays rounded down.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInWeekdays($date = null, $absolute = true)
+    {
+        return $this->diffInDaysFiltered(function (CarbonInterface $date) {
+            return $date->isWeekday();
+        }, $date, $absolute);
+    }
+
+    /**
+     * Get the difference in weekend days using a filter rounded down.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInWeekendDays($date = null, $absolute = true)
+    {
+        return $this->diffInDaysFiltered(function (CarbonInterface $date) {
+            return $date->isWeekend();
+        }, $date, $absolute);
+    }
+
+    /**
+     * Get the difference in hours rounded down.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInHours($date = null, $absolute = true)
+    {
+        return (int) ($this->diffInSeconds($date, $absolute) / static::SECONDS_PER_MINUTE / static::MINUTES_PER_HOUR);
+    }
+
+    /**
+     * Get the difference in hours rounded down using timestamps.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInRealHours($date = null, $absolute = true)
+    {
+        return (int) ($this->diffInRealSeconds($date, $absolute) / static::SECONDS_PER_MINUTE / static::MINUTES_PER_HOUR);
+    }
+
+    /**
+     * Get the difference in minutes rounded down.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInMinutes($date = null, $absolute = true)
+    {
+        return (int) ($this->diffInSeconds($date, $absolute) / static::SECONDS_PER_MINUTE);
+    }
+
+    /**
+     * Get the difference in minutes rounded down using timestamps.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInRealMinutes($date = null, $absolute = true)
+    {
+        return (int) ($this->diffInRealSeconds($date, $absolute) / static::SECONDS_PER_MINUTE);
+    }
+
+    /**
+     * Get the difference in seconds rounded down.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInSeconds($date = null, $absolute = true)
+    {
+        $diff = $this->diff($date);
+
+        if ($diff->days === 0) {
+            $diff = static::fixDiffInterval($diff, $absolute);
+        }
+
+        $value = (((($diff->m || $diff->y ? $diff->days : $diff->d) * static::HOURS_PER_DAY) +
+            $diff->h) * static::MINUTES_PER_HOUR +
+            $diff->i) * static::SECONDS_PER_MINUTE +
+            $diff->s;
+
+        return $absolute || !$diff->invert ? $value : -$value;
+    }
+
+    /**
+     * Get the difference in microseconds.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInMicroseconds($date = null, $absolute = true)
+    {
+        $diff = $this->diff($date);
+        $value = (int) round(((((($diff->m || $diff->y ? $diff->days : $diff->d) * static::HOURS_PER_DAY) +
+            $diff->h) * static::MINUTES_PER_HOUR +
+            $diff->i) * static::SECONDS_PER_MINUTE +
+            ($diff->f + $diff->s)) * static::MICROSECONDS_PER_SECOND);
+
+        return $absolute || !$diff->invert ? $value : -$value;
+    }
+
+    /**
+     * Get the difference in milliseconds rounded down.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInMilliseconds($date = null, $absolute = true)
+    {
+        return (int) ($this->diffInMicroseconds($date, $absolute) / static::MICROSECONDS_PER_MILLISECOND);
+    }
+
+    /**
+     * Get the difference in seconds using timestamps.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInRealSeconds($date = null, $absolute = true)
+    {
+        /** @var CarbonInterface $date */
+        $date = $this->resolveCarbon($date);
+        $value = $date->getTimestamp() - $this->getTimestamp();
+
+        return $absolute ? abs($value) : $value;
+    }
+
+    /**
+     * Get the difference in microseconds using timestamps.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInRealMicroseconds($date = null, $absolute = true)
+    {
+        /** @var CarbonInterface $date */
+        $date = $this->resolveCarbon($date);
+        $value = ($date->timestamp - $this->timestamp) * static::MICROSECONDS_PER_SECOND +
+            $date->micro - $this->micro;
+
+        return $absolute ? abs($value) : $value;
+    }
+
+    /**
+     * Get the difference in milliseconds rounded down using timestamps.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return int
+     */
+    public function diffInRealMilliseconds($date = null, $absolute = true)
+    {
+        return (int) ($this->diffInRealMicroseconds($date, $absolute) / static::MICROSECONDS_PER_MILLISECOND);
+    }
+
+    /**
+     * Get the difference in seconds as float (microsecond-precision).
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInSeconds($date = null, $absolute = true)
+    {
+        return $this->diffInMicroseconds($date, $absolute) / static::MICROSECONDS_PER_SECOND;
+    }
+
+    /**
+     * Get the difference in minutes as float (microsecond-precision).
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInMinutes($date = null, $absolute = true)
+    {
+        return $this->floatDiffInSeconds($date, $absolute) / static::SECONDS_PER_MINUTE;
+    }
+
+    /**
+     * Get the difference in hours as float (microsecond-precision).
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInHours($date = null, $absolute = true)
+    {
+        return $this->floatDiffInMinutes($date, $absolute) / static::MINUTES_PER_HOUR;
+    }
+
+    /**
+     * Get the difference in days as float (microsecond-precision).
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInDays($date = null, $absolute = true)
+    {
+        $hoursDiff = $this->floatDiffInHours($date, $absolute);
+        $interval = $this->diff($date, $absolute);
+
+        if ($interval->y === 0 && $interval->m === 0 && $interval->d === 0) {
+            return $hoursDiff / static::HOURS_PER_DAY;
+        }
+
+        $daysDiff = (int) $interval->format('%r%a');
+
+        return $daysDiff + fmod($hoursDiff, static::HOURS_PER_DAY) / static::HOURS_PER_DAY;
+    }
+
+    /**
+     * Get the difference in weeks as float (microsecond-precision).
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInWeeks($date = null, $absolute = true)
+    {
+        return $this->floatDiffInDays($date, $absolute) / static::DAYS_PER_WEEK;
+    }
+
+    /**
+     * Get the difference in months as float (microsecond-precision).
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInMonths($date = null, $absolute = true)
+    {
+        $start = $this;
+        $end = $this->resolveCarbon($date);
+        $ascending = ($start <= $end);
+        $sign = $absolute || $ascending ? 1 : -1;
+        if (!$ascending) {
+            [$start, $end] = [$end, $start];
+        }
+        $monthsDiff = $start->diffInMonths($end);
+        /** @var Carbon|CarbonImmutable $floorEnd */
+        $floorEnd = $start->avoidMutation()->addMonths($monthsDiff);
+
+        if ($floorEnd >= $end) {
+            return $sign * $monthsDiff;
+        }
+
+        /** @var Carbon|CarbonImmutable $startOfMonthAfterFloorEnd */
+        $startOfMonthAfterFloorEnd = $floorEnd->avoidMutation()->addMonth()->startOfMonth();
+
+        if ($startOfMonthAfterFloorEnd > $end) {
+            return $sign * ($monthsDiff + $floorEnd->floatDiffInDays($end) / $floorEnd->daysInMonth);
+        }
+
+        return $sign * ($monthsDiff + $floorEnd->floatDiffInDays($startOfMonthAfterFloorEnd) / $floorEnd->daysInMonth + $startOfMonthAfterFloorEnd->floatDiffInDays($end) / $end->daysInMonth);
+    }
+
+    /**
+     * Get the difference in year as float (microsecond-precision).
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInYears($date = null, $absolute = true)
+    {
+        $start = $this;
+        $end = $this->resolveCarbon($date);
+        $ascending = ($start <= $end);
+        $sign = $absolute || $ascending ? 1 : -1;
+        if (!$ascending) {
+            [$start, $end] = [$end, $start];
+        }
+        $yearsDiff = $start->diffInYears($end);
+        /** @var Carbon|CarbonImmutable $floorEnd */
+        $floorEnd = $start->avoidMutation()->addYears($yearsDiff);
+
+        if ($floorEnd >= $end) {
+            return $sign * $yearsDiff;
+        }
+
+        /** @var Carbon|CarbonImmutable $startOfYearAfterFloorEnd */
+        $startOfYearAfterFloorEnd = $floorEnd->avoidMutation()->addYear()->startOfYear();
+
+        if ($startOfYearAfterFloorEnd > $end) {
+            return $sign * ($yearsDiff + $floorEnd->floatDiffInDays($end) / $floorEnd->daysInYear);
+        }
+
+        return $sign * ($yearsDiff + $floorEnd->floatDiffInDays($startOfYearAfterFloorEnd) / $floorEnd->daysInYear + $startOfYearAfterFloorEnd->floatDiffInDays($end) / $end->daysInYear);
+    }
+
+    /**
+     * Get the difference in seconds as float (microsecond-precision) using timestamps.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInRealSeconds($date = null, $absolute = true)
+    {
+        return $this->diffInRealMicroseconds($date, $absolute) / static::MICROSECONDS_PER_SECOND;
+    }
+
+    /**
+     * Get the difference in minutes as float (microsecond-precision) using timestamps.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInRealMinutes($date = null, $absolute = true)
+    {
+        return $this->floatDiffInRealSeconds($date, $absolute) / static::SECONDS_PER_MINUTE;
+    }
+
+    /**
+     * Get the difference in hours as float (microsecond-precision) using timestamps.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInRealHours($date = null, $absolute = true)
+    {
+        return $this->floatDiffInRealMinutes($date, $absolute) / static::MINUTES_PER_HOUR;
+    }
+
+    /**
+     * Get the difference in days as float (microsecond-precision).
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInRealDays($date = null, $absolute = true)
+    {
+        $date = $this->resolveUTC($date);
+        $utc = $this->avoidMutation()->utc();
+        $hoursDiff = $utc->floatDiffInRealHours($date, $absolute);
+
+        return ($hoursDiff < 0 ? -1 : 1) * $utc->diffInDays($date) + fmod($hoursDiff, static::HOURS_PER_DAY) / static::HOURS_PER_DAY;
+    }
+
+    /**
+     * Get the difference in weeks as float (microsecond-precision).
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInRealWeeks($date = null, $absolute = true)
+    {
+        return $this->floatDiffInRealDays($date, $absolute) / static::DAYS_PER_WEEK;
+    }
+
+    /**
+     * Get the difference in months as float (microsecond-precision) using timestamps.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInRealMonths($date = null, $absolute = true)
+    {
+        $start = $this;
+        $end = $this->resolveCarbon($date);
+        $ascending = ($start <= $end);
+        $sign = $absolute || $ascending ? 1 : -1;
+        if (!$ascending) {
+            [$start, $end] = [$end, $start];
+        }
+        $monthsDiff = $start->diffInMonths($end);
+        /** @var Carbon|CarbonImmutable $floorEnd */
+        $floorEnd = $start->avoidMutation()->addMonths($monthsDiff);
+
+        if ($floorEnd >= $end) {
+            return $sign * $monthsDiff;
+        }
+
+        /** @var Carbon|CarbonImmutable $startOfMonthAfterFloorEnd */
+        $startOfMonthAfterFloorEnd = $floorEnd->avoidMutation()->addMonth()->startOfMonth();
+
+        if ($startOfMonthAfterFloorEnd > $end) {
+            return $sign * ($monthsDiff + $floorEnd->floatDiffInRealDays($end) / $floorEnd->daysInMonth);
+        }
+
+        return $sign * ($monthsDiff + $floorEnd->floatDiffInRealDays($startOfMonthAfterFloorEnd) / $floorEnd->daysInMonth + $startOfMonthAfterFloorEnd->floatDiffInRealDays($end) / $end->daysInMonth);
+    }
+
+    /**
+     * Get the difference in year as float (microsecond-precision) using timestamps.
+     *
+     * @param \Carbon\CarbonInterface|\DateTimeInterface|string|null $date
+     * @param bool                                                   $absolute Get the absolute of the difference
+     *
+     * @return float
+     */
+    public function floatDiffInRealYears($date = null, $absolute = true)
+    {
+        $start = $this;
+        $end = $this->resolveCarbon($date);
+        $ascending = ($start <= $end);
+        $sign = $absolute || $ascending ? 1 : -1;
+        if (!$ascending) {
+            [$start, $end] = [$end, $start];
+        }
+        $yearsDiff = $start->diffInYears($end);
+        /** @var Carbon|CarbonImmutable $floorEnd */
+        $floorEnd = $start->avoidMutation()->addYears($yearsDiff);
+
+        if ($floorEnd >= $end) {
+            return $sign * $yearsDiff;
+        }
+
+        /** @var Carbon|CarbonImmutable $startOfYearAfterFloorEnd */
+        $startOfYearAfterFloorEnd = $floorEnd->avoidMutation()->addYear()->startOfYear();
+
+        if ($startOfYearAfterFloorEnd > $end) {
+            return $sign * ($yearsDiff + $floorEnd->floatDiffInRealDays($end) / $floorEnd->daysInYear);
+        }
+
+        return $sign * ($yearsDiff + $floorEnd->floatDiffInRealDays($startOfYearAfterFloorEnd) / $floorEnd->daysInYear + $startOfYearAfterFloorEnd->floatDiffInRealDays($end) / $end->daysInYear);
+    }
+
+    /**
+     * The number of seconds since midnight.
+     *
+     * @return int
+     */
+    public function secondsSinceMidnight()
+    {
+        return $this->diffInSeconds($this->avoidMutation()->startOfDay());
+    }
+
+    /**
+     * The number of seconds until 23:59:59.
+     *
+     * @return int
+     */
+    public function secondsUntilEndOfDay()
+    {
+        return $this->diffInSeconds($this->avoidMutation()->endOfDay());
+    }
+
+    /**
+     * Get the difference in a human readable format in the current locale from current instance to an other
+     * instance given (or now if null given).
+     *
+     * @example
+     * ```
+     * echo Carbon::tomorrow()->diffForHumans() . "\n";
+     * echo Carbon::tomorrow()->diffForHumans(['parts' => 2]) . "\n";
+     * echo Carbon::tomorrow()->diffForHumans(['parts' => 3, 'join' => true]) . "\n";
+     * echo Carbon::tomorrow()->diffForHumans(Carbon::yesterday()) . "\n";
+     * echo Carbon::tomorrow()->diffForHumans(Carbon::yesterday(), ['short' => true]) . "\n";
+     * ```
+     *
+     * @param Carbon|\DateTimeInterface|string|array|null $other   if array passed, will be used as parameters array, see $syntax below;
+     *                                                             if null passed, now will be used as comparison reference;
+     *                                                             if any other type, it will be converted to date and used as reference.
+     * @param int|array                                   $syntax  if array passed, parameters will be extracted from it, the array may contains:
+     *                                                             - 'syntax' entry (see below)
+     *                                                             - 'short' entry (see below)
+     *                                                             - 'parts' entry (see below)
+     *                                                             - 'options' entry (see below)
+     *                                                             - 'join' entry determines how to join multiple parts of the string
+     *                                                             `  - if $join is a string, it's used as a joiner glue
+     *                                                             `  - if $join is a callable/closure, it get the list of string and should return a string
+     *                                                             `  - if $join is an array, the first item will be the default glue, and the second item
+     *                                                             `    will be used instead of the glue for the last item
+     *                                                             `  - if $join is true, it will be guessed from the locale ('list' translation file entry)
+     *                                                             `  - if $join is missing, a space will be used as glue
+     *                                                             - 'other' entry (see above)
+     *                                                             if int passed, it add modifiers:
+     *                                                             Possible values:
+     *                                                             - CarbonInterface::DIFF_ABSOLUTE          no modifiers
+     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier
+     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier
+     *                                                             Default value: CarbonInterface::DIFF_ABSOLUTE
+     * @param bool                                        $short   displays short format of time units
+     * @param int                                         $parts   maximum number of parts to display (default value: 1: single unit)
+     * @param int                                         $options human diff options
+     *
+     * @return string
+     */
+    public function diffForHumans($other = null, $syntax = null, $short = false, $parts = 1, $options = null)
+    {
+        /* @var CarbonInterface $this */
+        if (\is_array($other)) {
+            $other['syntax'] = \array_key_exists('syntax', $other) ? $other['syntax'] : $syntax;
+            $syntax = $other;
+            $other = $syntax['other'] ?? null;
+        }
+
+        $intSyntax = &$syntax;
+        if (\is_array($syntax)) {
+            $syntax['syntax'] = $syntax['syntax'] ?? null;
+            $intSyntax = &$syntax['syntax'];
+        }
+        $intSyntax = (int) ($intSyntax === null ? static::DIFF_RELATIVE_AUTO : $intSyntax);
+        $intSyntax = $intSyntax === static::DIFF_RELATIVE_AUTO && $other === null ? static::DIFF_RELATIVE_TO_NOW : $intSyntax;
+
+        $parts = min(7, max(1, (int) $parts));
+
+        return $this->diffAsCarbonInterval($other, false)
+            ->setLocalTranslator($this->getLocalTranslator())
+            ->forHumans($syntax, (bool) $short, $parts, $options ?? $this->localHumanDiffOptions ?? static::getHumanDiffOptions());
+    }
+
+    /**
+     * @alias diffForHumans
+     *
+     * Get the difference in a human readable format in the current locale from current instance to an other
+     * instance given (or now if null given).
+     *
+     * @param Carbon|\DateTimeInterface|string|array|null $other   if array passed, will be used as parameters array, see $syntax below;
+     *                                                             if null passed, now will be used as comparison reference;
+     *                                                             if any other type, it will be converted to date and used as reference.
+     * @param int|array                                   $syntax  if array passed, parameters will be extracted from it, the array may contains:
+     *                                                             - 'syntax' entry (see below)
+     *                                                             - 'short' entry (see below)
+     *                                                             - 'parts' entry (see below)
+     *                                                             - 'options' entry (see below)
+     *                                                             - 'join' entry determines how to join multiple parts of the string
+     *                                                             `  - if $join is a string, it's used as a joiner glue
+     *                                                             `  - if $join is a callable/closure, it get the list of string and should return a string
+     *                                                             `  - if $join is an array, the first item will be the default glue, and the second item
+     *                                                             `    will be used instead of the glue for the last item
+     *                                                             `  - if $join is true, it will be guessed from the locale ('list' translation file entry)
+     *                                                             `  - if $join is missing, a space will be used as glue
+     *                                                             - 'other' entry (see above)
+     *                                                             if int passed, it add modifiers:
+     *                                                             Possible values:
+     *                                                             - CarbonInterface::DIFF_ABSOLUTE          no modifiers
+     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier
+     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier
+     *                                                             Default value: CarbonInterface::DIFF_ABSOLUTE
+     * @param bool                                        $short   displays short format of time units
+     * @param int                                         $parts   maximum number of parts to display (default value: 1: single unit)
+     * @param int                                         $options human diff options
+     *
+     * @return string
+     */
+    public function from($other = null, $syntax = null, $short = false, $parts = 1, $options = null)
+    {
+        return $this->diffForHumans($other, $syntax, $short, $parts, $options);
+    }
+
+    /**
+     * @alias diffForHumans
+     *
+     * Get the difference in a human readable format in the current locale from current instance to an other
+     * instance given (or now if null given).
+     */
+    public function since($other = null, $syntax = null, $short = false, $parts = 1, $options = null)
+    {
+        return $this->diffForHumans($other, $syntax, $short, $parts, $options);
+    }
+
+    /**
+     * Get the difference in a human readable format in the current locale from an other
+     * instance given (or now if null given) to current instance.
+     *
+     * When comparing a value in the past to default now:
+     * 1 hour from now
+     * 5 months from now
+     *
+     * When comparing a value in the future to default now:
+     * 1 hour ago
+     * 5 months ago
+     *
+     * When comparing a value in the past to another value:
+     * 1 hour after
+     * 5 months after
+     *
+     * When comparing a value in the future to another value:
+     * 1 hour before
+     * 5 months before
+     *
+     * @param Carbon|\DateTimeInterface|string|array|null $other   if array passed, will be used as parameters array, see $syntax below;
+     *                                                             if null passed, now will be used as comparison reference;
+     *                                                             if any other type, it will be converted to date and used as reference.
+     * @param int|array                                   $syntax  if array passed, parameters will be extracted from it, the array may contains:
+     *                                                             - 'syntax' entry (see below)
+     *                                                             - 'short' entry (see below)
+     *                                                             - 'parts' entry (see below)
+     *                                                             - 'options' entry (see below)
+     *                                                             - 'join' entry determines how to join multiple parts of the string
+     *                                                             `  - if $join is a string, it's used as a joiner glue
+     *                                                             `  - if $join is a callable/closure, it get the list of string and should return a string
+     *                                                             `  - if $join is an array, the first item will be the default glue, and the second item
+     *                                                             `    will be used instead of the glue for the last item
+     *                                                             `  - if $join is true, it will be guessed from the locale ('list' translation file entry)
+     *                                                             `  - if $join is missing, a space will be used as glue
+     *                                                             - 'other' entry (see above)
+     *                                                             if int passed, it add modifiers:
+     *                                                             Possible values:
+     *                                                             - CarbonInterface::DIFF_ABSOLUTE          no modifiers
+     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier
+     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier
+     *                                                             Default value: CarbonInterface::DIFF_ABSOLUTE
+     * @param bool                                        $short   displays short format of time units
+     * @param int                                         $parts   maximum number of parts to display (default value: 1: single unit)
+     * @param int                                         $options human diff options
+     *
+     * @return string
+     */
+    public function to($other = null, $syntax = null, $short = false, $parts = 1, $options = null)
+    {
+        if (!$syntax && !$other) {
+            $syntax = CarbonInterface::DIFF_RELATIVE_TO_NOW;
+        }
+
+        return $this->resolveCarbon($other)->diffForHumans($this, $syntax, $short, $parts, $options);
+    }
+
+    /**
+     * @alias to
+     *
+     * Get the difference in a human readable format in the current locale from an other
+     * instance given (or now if null given) to current instance.
+     *
+     * @param Carbon|\DateTimeInterface|string|array|null $other   if array passed, will be used as parameters array, see $syntax below;
+     *                                                             if null passed, now will be used as comparison reference;
+     *                                                             if any other type, it will be converted to date and used as reference.
+     * @param int|array                                   $syntax  if array passed, parameters will be extracted from it, the array may contains:
+     *                                                             - 'syntax' entry (see below)
+     *                                                             - 'short' entry (see below)
+     *                                                             - 'parts' entry (see below)
+     *                                                             - 'options' entry (see below)
+     *                                                             - 'join' entry determines how to join multiple parts of the string
+     *                                                             `  - if $join is a string, it's used as a joiner glue
+     *                                                             `  - if $join is a callable/closure, it get the list of string and should return a string
+     *                                                             `  - if $join is an array, the first item will be the default glue, and the second item
+     *                                                             `    will be used instead of the glue for the last item
+     *                                                             `  - if $join is true, it will be guessed from the locale ('list' translation file entry)
+     *                                                             `  - if $join is missing, a space will be used as glue
+     *                                                             - 'other' entry (see above)
+     *                                                             if int passed, it add modifiers:
+     *                                                             Possible values:
+     *                                                             - CarbonInterface::DIFF_ABSOLUTE          no modifiers
+     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier
+     *                                                             - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier
+     *                                                             Default value: CarbonInterface::DIFF_ABSOLUTE
+     * @param bool                                        $short   displays short format of time units
+     * @param int                                         $parts   maximum number of parts to display (default value: 1: single unit)
+     * @param int                                         $options human diff options
+     *
+     * @return string
+     */
+    public function until($other = null, $syntax = null, $short = false, $parts = 1, $options = null)
+    {
+        return $this->to($other, $syntax, $short, $parts, $options);
+    }
+
+    /**
+     * Get the difference in a human readable format in the current locale from current
+     * instance to now.
+     *
+     * @param int|array $syntax  if array passed, parameters will be extracted from it, the array may contains:
+     *                           - 'syntax' entry (see below)
+     *                           - 'short' entry (see below)
+     *                           - 'parts' entry (see below)
+     *                           - 'options' entry (see below)
+     *                           - 'join' entry determines how to join multiple parts of the string
+     *                           `  - if $join is a string, it's used as a joiner glue
+     *                           `  - if $join is a callable/closure, it get the list of string and should return a string
+     *                           `  - if $join is an array, the first item will be the default glue, and the second item
+     *                           `    will be used instead of the glue for the last item
+     *                           `  - if $join is true, it will be guessed from the locale ('list' translation file entry)
+     *                           `  - if $join is missing, a space will be used as glue
+     *                           if int passed, it add modifiers:
+     *                           Possible values:
+     *                           - CarbonInterface::DIFF_ABSOLUTE          no modifiers
+     *                           - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier
+     *                           - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier
+     *                           Default value: CarbonInterface::DIFF_ABSOLUTE
+     * @param bool      $short   displays short format of time units
+     * @param int       $parts   maximum number of parts to display (default value: 1: single unit)
+     * @param int       $options human diff options
+     *
+     * @return string
+     */
+    public function fromNow($syntax = null, $short = false, $parts = 1, $options = null)
+    {
+        $other = null;
+
+        if ($syntax instanceof DateTimeInterface) {
+            [$other, $syntax, $short, $parts, $options] = array_pad(\func_get_args(), 5, null);
+        }
+
+        return $this->from($other, $syntax, $short, $parts, $options);
+    }
+
+    /**
+     * Get the difference in a human readable format in the current locale from an other
+     * instance given to now
+     *
+     * @param int|array $syntax  if array passed, parameters will be extracted from it, the array may contains:
+     *                           - 'syntax' entry (see below)
+     *                           - 'short' entry (see below)
+     *                           - 'parts' entry (see below)
+     *                           - 'options' entry (see below)
+     *                           - 'join' entry determines how to join multiple parts of the string
+     *                           `  - if $join is a string, it's used as a joiner glue
+     *                           `  - if $join is a callable/closure, it get the list of string and should return a string
+     *                           `  - if $join is an array, the first item will be the default glue, and the second item
+     *                           `    will be used instead of the glue for the last item
+     *                           `  - if $join is true, it will be guessed from the locale ('list' translation file entry)
+     *                           `  - if $join is missing, a space will be used as glue
+     *                           if int passed, it add modifiers:
+     *                           Possible values:
+     *                           - CarbonInterface::DIFF_ABSOLUTE          no modifiers
+     *                           - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier
+     *                           - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier
+     *                           Default value: CarbonInterface::DIFF_ABSOLUTE
+     * @param bool      $short   displays short format of time units
+     * @param int       $parts   maximum number of parts to display (default value: 1: single part)
+     * @param int       $options human diff options
+     *
+     * @return string
+     */
+    public function toNow($syntax = null, $short = false, $parts = 1, $options = null)
+    {
+        return $this->to(null, $syntax, $short, $parts, $options);
+    }
+
+    /**
+     * Get the difference in a human readable format in the current locale from an other
+     * instance given to now
+     *
+     * @param int|array $syntax  if array passed, parameters will be extracted from it, the array may contains:
+     *                           - 'syntax' entry (see below)
+     *                           - 'short' entry (see below)
+     *                           - 'parts' entry (see below)
+     *                           - 'options' entry (see below)
+     *                           - 'join' entry determines how to join multiple parts of the string
+     *                           `  - if $join is a string, it's used as a joiner glue
+     *                           `  - if $join is a callable/closure, it get the list of string and should return a string
+     *                           `  - if $join is an array, the first item will be the default glue, and the second item
+     *                           `    will be used instead of the glue for the last item
+     *                           `  - if $join is true, it will be guessed from the locale ('list' translation file entry)
+     *                           `  - if $join is missing, a space will be used as glue
+     *                           if int passed, it add modifiers:
+     *                           Possible values:
+     *                           - CarbonInterface::DIFF_ABSOLUTE          no modifiers
+     *                           - CarbonInterface::DIFF_RELATIVE_TO_NOW   add ago/from now modifier
+     *                           - CarbonInterface::DIFF_RELATIVE_TO_OTHER add before/after modifier
+     *                           Default value: CarbonInterface::DIFF_ABSOLUTE
+     * @param bool      $short   displays short format of time units
+     * @param int       $parts   maximum number of parts to display (default value: 1: single part)
+     * @param int       $options human diff options
+     *
+     * @return string
+     */
+    public function ago($syntax = null, $short = false, $parts = 1, $options = null)
+    {
+        $other = null;
+
+        if ($syntax instanceof DateTimeInterface) {
+            [$other, $syntax, $short, $parts, $options] = array_pad(\func_get_args(), 5, null);
+        }
+
+        return $this->from($other, $syntax, $short, $parts, $options);
+    }
+
+    /**
+     * Get the difference in a human readable format in the current locale from current instance to an other
+     * instance given (or now if null given).
+     *
+     * @return string
+     */
+    public function timespan($other = null, $timezone = null)
+    {
+        if (!$other instanceof DateTimeInterface) {
+            $other = static::parse($other, $timezone);
+        }
+
+        return $this->diffForHumans($other, [
+            'join' => ', ',
+            'syntax' => CarbonInterface::DIFF_ABSOLUTE,
+            'options' => CarbonInterface::NO_ZERO_DIFF,
+            'parts' => -1,
+        ]);
+    }
+
+    /**
+     * Returns either day of week + time (e.g. "Last Friday at 3:30 PM") if reference time is within 7 days,
+     * or a calendar date (e.g. "10/29/2017") otherwise.
+     *
+     * Language, date and time formats will change according to the current locale.
+     *
+     * @param Carbon|\DateTimeInterface|string|null $referenceTime
+     * @param array                                 $formats
+     *
+     * @return string
+     */
+    public function calendar($referenceTime = null, array $formats = [])
+    {
+        /** @var CarbonInterface $current */
+        $current = $this->avoidMutation()->startOfDay();
+        /** @var CarbonInterface $other */
+        $other = $this->resolveCarbon($referenceTime)->avoidMutation()->setTimezone($this->getTimezone())->startOfDay();
+        $diff = $other->diffInDays($current, false);
+        $format = $diff < -6 ? 'sameElse' : (
+            $diff < -1 ? 'lastWeek' : (
+                $diff < 0 ? 'lastDay' : (
+                    $diff < 1 ? 'sameDay' : (
+                        $diff < 2 ? 'nextDay' : (
+                            $diff < 7 ? 'nextWeek' : 'sameElse'
+                        )
+                    )
+                )
+            )
+        );
+        $format = array_merge($this->getCalendarFormats(), $formats)[$format];
+        if ($format instanceof Closure) {
+            $format = $format($current, $other) ?? '';
+        }
+
+        return $this->isoFormat((string) $format);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/IntervalRounding.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/IntervalRounding.php
new file mode 100644
index 0000000..6f6c9d1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/IntervalRounding.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Traits;
+
+use Carbon\CarbonInterval;
+use Carbon\Exceptions\InvalidIntervalException;
+use DateInterval;
+
+/**
+ * Trait to call rounding methods to interval or the interval of a period.
+ */
+trait IntervalRounding
+{
+    protected function callRoundMethod(string $method, array $parameters)
+    {
+        $action = substr($method, 0, 4);
+
+        if ($action !== 'ceil') {
+            $action = substr($method, 0, 5);
+        }
+
+        if (\in_array($action, ['round', 'floor', 'ceil'])) {
+            return $this->{$action.'Unit'}(substr($method, \strlen($action)), ...$parameters);
+        }
+
+        return null;
+    }
+
+    protected function roundWith($precision, $function)
+    {
+        $unit = 'second';
+
+        if ($precision instanceof DateInterval) {
+            $precision = (string) CarbonInterval::instance($precision);
+        }
+
+        if (\is_string($precision) && preg_match('/^\s*(?<precision>\d+)?\s*(?<unit>\w+)(?<other>\W.*)?$/', $precision, $match)) {
+            if (trim($match['other'] ?? '') !== '') {
+                throw new InvalidIntervalException('Rounding is only possible with single unit intervals.');
+            }
+
+            $precision = (int) ($match['precision'] ?: 1);
+            $unit = $match['unit'];
+        }
+
+        return $this->roundUnit($unit, $precision, $function);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/IntervalStep.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/IntervalStep.php
new file mode 100644
index 0000000..4882eef
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/IntervalStep.php
@@ -0,0 +1,92 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Traits;
+
+use Carbon\Carbon;
+use Carbon\CarbonImmutable;
+use Carbon\CarbonInterface;
+use Closure;
+use DateTimeImmutable;
+use DateTimeInterface;
+
+trait IntervalStep
+{
+    /**
+     * Step to apply instead of a fixed interval to get the new date.
+     *
+     * @var Closure|null
+     */
+    protected $step;
+
+    /**
+     * Get the dynamic step in use.
+     *
+     * @return Closure
+     */
+    public function getStep(): ?Closure
+    {
+        return $this->step;
+    }
+
+    /**
+     * Set a step to apply instead of a fixed interval to get the new date.
+     *
+     * Or pass null to switch to fixed interval.
+     *
+     * @param Closure|null $step
+     */
+    public function setStep(?Closure $step): void
+    {
+        $this->step = $step;
+    }
+
+    /**
+     * Take a date and apply either the step if set, or the current interval else.
+     *
+     * The interval/step is applied negatively (typically subtraction instead of addition) if $negated is true.
+     *
+     * @param DateTimeInterface $dateTime
+     * @param bool              $negated
+     *
+     * @return CarbonInterface
+     */
+    public function convertDate(DateTimeInterface $dateTime, bool $negated = false): CarbonInterface
+    {
+        /** @var CarbonInterface $carbonDate */
+        $carbonDate = $dateTime instanceof CarbonInterface ? $dateTime : $this->resolveCarbon($dateTime);
+
+        if ($this->step) {
+            return $carbonDate->setDateTimeFrom(($this->step)($carbonDate->avoidMutation(), $negated));
+        }
+
+        if ($negated) {
+            return $carbonDate->rawSub($this);
+        }
+
+        return $carbonDate->rawAdd($this);
+    }
+
+    /**
+     * Convert DateTimeImmutable instance to CarbonImmutable instance and DateTime instance to Carbon instance.
+     *
+     * @param DateTimeInterface $dateTime
+     *
+     * @return Carbon|CarbonImmutable
+     */
+    private function resolveCarbon(DateTimeInterface $dateTime)
+    {
+        if ($dateTime instanceof DateTimeImmutable) {
+            return CarbonImmutable::instance($dateTime);
+        }
+
+        return Carbon::instance($dateTime);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php
new file mode 100644
index 0000000..9162dc9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Localization.php
@@ -0,0 +1,808 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Traits;
+
+use Carbon\CarbonInterface;
+use Carbon\Exceptions\InvalidTypeException;
+use Carbon\Exceptions\NotLocaleAwareException;
+use Carbon\Language;
+use Carbon\Translator;
+use Closure;
+use Symfony\Component\Translation\TranslatorBagInterface;
+use Symfony\Component\Translation\TranslatorInterface;
+use Symfony\Contracts\Translation\LocaleAwareInterface;
+use Symfony\Contracts\Translation\TranslatorInterface as ContractsTranslatorInterface;
+
+if (!interface_exists('Symfony\\Component\\Translation\\TranslatorInterface')) {
+    class_alias(
+        'Symfony\\Contracts\\Translation\\TranslatorInterface',
+        'Symfony\\Component\\Translation\\TranslatorInterface'
+    );
+}
+
+/**
+ * Trait Localization.
+ *
+ * Embed default and locale translators and translation base methods.
+ */
+trait Localization
+{
+    /**
+     * Default translator.
+     *
+     * @var \Symfony\Component\Translation\TranslatorInterface
+     */
+    protected static $translator;
+
+    /**
+     * Specific translator of the current instance.
+     *
+     * @var \Symfony\Component\Translation\TranslatorInterface
+     */
+    protected $localTranslator;
+
+    /**
+     * Options for diffForHumans().
+     *
+     * @var int
+     */
+    protected static $humanDiffOptions = CarbonInterface::NO_ZERO_DIFF;
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather use the ->settings() method.
+     * @see settings
+     *
+     * @param int $humanDiffOptions
+     */
+    public static function setHumanDiffOptions($humanDiffOptions)
+    {
+        static::$humanDiffOptions = $humanDiffOptions;
+    }
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather use the ->settings() method.
+     * @see settings
+     *
+     * @param int $humanDiffOption
+     */
+    public static function enableHumanDiffOption($humanDiffOption)
+    {
+        static::$humanDiffOptions = static::getHumanDiffOptions() | $humanDiffOption;
+    }
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather use the ->settings() method.
+     * @see settings
+     *
+     * @param int $humanDiffOption
+     */
+    public static function disableHumanDiffOption($humanDiffOption)
+    {
+        static::$humanDiffOptions = static::getHumanDiffOptions() & ~$humanDiffOption;
+    }
+
+    /**
+     * Return default humanDiff() options (merged flags as integer).
+     *
+     * @return int
+     */
+    public static function getHumanDiffOptions()
+    {
+        return static::$humanDiffOptions;
+    }
+
+    /**
+     * Get the default translator instance in use.
+     *
+     * @return \Symfony\Component\Translation\TranslatorInterface
+     */
+    public static function getTranslator()
+    {
+        return static::translator();
+    }
+
+    /**
+     * Set the default translator instance to use.
+     *
+     * @param \Symfony\Component\Translation\TranslatorInterface $translator
+     *
+     * @return void
+     */
+    public static function setTranslator(TranslatorInterface $translator)
+    {
+        static::$translator = $translator;
+    }
+
+    /**
+     * Return true if the current instance has its own translator.
+     *
+     * @return bool
+     */
+    public function hasLocalTranslator()
+    {
+        return isset($this->localTranslator);
+    }
+
+    /**
+     * Get the translator of the current instance or the default if none set.
+     *
+     * @return \Symfony\Component\Translation\TranslatorInterface
+     */
+    public function getLocalTranslator()
+    {
+        return $this->localTranslator ?: static::translator();
+    }
+
+    /**
+     * Set the translator for the current instance.
+     *
+     * @param \Symfony\Component\Translation\TranslatorInterface $translator
+     *
+     * @return $this
+     */
+    public function setLocalTranslator(TranslatorInterface $translator)
+    {
+        $this->localTranslator = $translator;
+
+        return $this;
+    }
+
+    /**
+     * Returns raw translation message for a given key.
+     *
+     * @param \Symfony\Component\Translation\TranslatorInterface $translator the translator to use
+     * @param string                                             $key        key to find
+     * @param string|null                                        $locale     current locale used if null
+     * @param string|null                                        $default    default value if translation returns the key
+     *
+     * @return string
+     */
+    public static function getTranslationMessageWith($translator, string $key, ?string $locale = null, ?string $default = null)
+    {
+        if (!($translator instanceof TranslatorBagInterface && $translator instanceof TranslatorInterface)) {
+            throw new InvalidTypeException(
+                'Translator does not implement '.TranslatorInterface::class.' and '.TranslatorBagInterface::class.'. '.
+                (\is_object($translator) ? \get_class($translator) : \gettype($translator)).' has been given.'
+            );
+        }
+
+        if (!$locale && $translator instanceof LocaleAwareInterface) {
+            $locale = $translator->getLocale();
+        }
+
+        $result = $translator->getCatalogue($locale)->get($key);
+
+        return $result === $key ? $default : $result;
+    }
+
+    /**
+     * Returns raw translation message for a given key.
+     *
+     * @param string                                             $key        key to find
+     * @param string|null                                        $locale     current locale used if null
+     * @param string|null                                        $default    default value if translation returns the key
+     * @param \Symfony\Component\Translation\TranslatorInterface $translator an optional translator to use
+     *
+     * @return string
+     */
+    public function getTranslationMessage(string $key, ?string $locale = null, ?string $default = null, $translator = null)
+    {
+        return static::getTranslationMessageWith($translator ?: $this->getLocalTranslator(), $key, $locale, $default);
+    }
+
+    /**
+     * Translate using translation string or callback available.
+     *
+     * @param \Symfony\Component\Translation\TranslatorInterface $translator
+     * @param string                                             $key
+     * @param array                                              $parameters
+     * @param null                                               $number
+     *
+     * @return string
+     */
+    public static function translateWith(TranslatorInterface $translator, string $key, array $parameters = [], $number = null): string
+    {
+        $message = static::getTranslationMessageWith($translator, $key, null, $key);
+        if ($message instanceof Closure) {
+            return (string) $message(...array_values($parameters));
+        }
+
+        if ($number !== null) {
+            $parameters['%count%'] = $number;
+        }
+        if (isset($parameters['%count%'])) {
+            $parameters[':count'] = $parameters['%count%'];
+        }
+
+        // @codeCoverageIgnoreStart
+        $choice = $translator instanceof ContractsTranslatorInterface
+            ? $translator->trans($key, $parameters)
+            : $translator->transChoice($key, $number, $parameters);
+        // @codeCoverageIgnoreEnd
+
+        return (string) $choice;
+    }
+
+    /**
+     * Translate using translation string or callback available.
+     *
+     * @param string                                             $key
+     * @param array                                              $parameters
+     * @param string|int|float|null                              $number
+     * @param \Symfony\Component\Translation\TranslatorInterface $translator
+     *
+     * @return string
+     */
+    public function translate(string $key, array $parameters = [], $number = null, ?TranslatorInterface $translator = null, bool $altNumbers = false): string
+    {
+        $translation = static::translateWith($translator ?: $this->getLocalTranslator(), $key, $parameters, $number);
+
+        if ($number !== null && $altNumbers) {
+            return str_replace($number, $this->translateNumber($number), $translation);
+        }
+
+        return $translation;
+    }
+
+    /**
+     * Returns the alternative number for a given integer if available in the current locale.
+     *
+     * @param int $number
+     *
+     * @return string
+     */
+    public function translateNumber(int $number): string
+    {
+        $translateKey = "alt_numbers.$number";
+        $symbol = $this->translate($translateKey);
+
+        if ($symbol !== $translateKey) {
+            return $symbol;
+        }
+
+        if ($number > 99 && $this->translate('alt_numbers.99') !== 'alt_numbers.99') {
+            $start = '';
+            foreach ([10000, 1000, 100] as $exp) {
+                $key = "alt_numbers_pow.$exp";
+                if ($number >= $exp && $number < $exp * 10 && ($pow = $this->translate($key)) !== $key) {
+                    $unit = floor($number / $exp);
+                    $number -= $unit * $exp;
+                    $start .= ($unit > 1 ? $this->translate("alt_numbers.$unit") : '').$pow;
+                }
+            }
+            $result = '';
+            while ($number) {
+                $chunk = $number % 100;
+                $result = $this->translate("alt_numbers.$chunk").$result;
+                $number = floor($number / 100);
+            }
+
+            return "$start$result";
+        }
+
+        if ($number > 9 && $this->translate('alt_numbers.9') !== 'alt_numbers.9') {
+            $result = '';
+            while ($number) {
+                $chunk = $number % 10;
+                $result = $this->translate("alt_numbers.$chunk").$result;
+                $number = floor($number / 10);
+            }
+
+            return $result;
+        }
+
+        return (string) $number;
+    }
+
+    /**
+     * Translate a time string from a locale to an other.
+     *
+     * @param string      $timeString date/time/duration string to translate (may also contain English)
+     * @param string|null $from       input locale of the $timeString parameter (`Carbon::getLocale()` by default)
+     * @param string|null $to         output locale of the result returned (`"en"` by default)
+     * @param int         $mode       specify what to translate with options:
+     *                                - CarbonInterface::TRANSLATE_ALL (default)
+     *                                - CarbonInterface::TRANSLATE_MONTHS
+     *                                - CarbonInterface::TRANSLATE_DAYS
+     *                                - CarbonInterface::TRANSLATE_UNITS
+     *                                - CarbonInterface::TRANSLATE_MERIDIEM
+     *                                You can use pipe to group: CarbonInterface::TRANSLATE_MONTHS | CarbonInterface::TRANSLATE_DAYS
+     *
+     * @return string
+     */
+    public static function translateTimeString($timeString, $from = null, $to = null, $mode = CarbonInterface::TRANSLATE_ALL)
+    {
+        // Fallback source and destination locales
+        $from = $from ?: static::getLocale();
+        $to = $to ?: 'en';
+
+        if ($from === $to) {
+            return $timeString;
+        }
+
+        // Standardize apostrophe
+        $timeString = strtr($timeString, ['’' => "'"]);
+
+        $fromTranslations = [];
+        $toTranslations = [];
+
+        foreach (['from', 'to'] as $key) {
+            $language = $$key;
+            $translator = Translator::get($language);
+            $translations = $translator->getMessages();
+
+            if (!isset($translations[$language])) {
+                return $timeString;
+            }
+
+            $translationKey = $key.'Translations';
+            $messages = $translations[$language];
+            $months = $messages['months'] ?? [];
+            $weekdays = $messages['weekdays'] ?? [];
+            $meridiem = $messages['meridiem'] ?? ['AM', 'PM'];
+
+            if ($key === 'from') {
+                foreach (['months', 'weekdays'] as $variable) {
+                    $list = $messages[$variable.'_standalone'] ?? null;
+
+                    if ($list) {
+                        foreach ($$variable as $index => &$name) {
+                            $name .= '|'.$messages[$variable.'_standalone'][$index];
+                        }
+                    }
+                }
+            }
+
+            $$translationKey = array_merge(
+                $mode & CarbonInterface::TRANSLATE_MONTHS ? static::getTranslationArray($months, 12, $timeString) : [],
+                $mode & CarbonInterface::TRANSLATE_MONTHS ? static::getTranslationArray($messages['months_short'] ?? [], 12, $timeString) : [],
+                $mode & CarbonInterface::TRANSLATE_DAYS ? static::getTranslationArray($weekdays, 7, $timeString) : [],
+                $mode & CarbonInterface::TRANSLATE_DAYS ? static::getTranslationArray($messages['weekdays_short'] ?? [], 7, $timeString) : [],
+                $mode & CarbonInterface::TRANSLATE_DIFF ? static::translateWordsByKeys([
+                    'diff_now',
+                    'diff_today',
+                    'diff_yesterday',
+                    'diff_tomorrow',
+                    'diff_before_yesterday',
+                    'diff_after_tomorrow',
+                ], $messages, $key) : [],
+                $mode & CarbonInterface::TRANSLATE_UNITS ? static::translateWordsByKeys([
+                    'year',
+                    'month',
+                    'week',
+                    'day',
+                    'hour',
+                    'minute',
+                    'second',
+                ], $messages, $key) : [],
+                $mode & CarbonInterface::TRANSLATE_MERIDIEM ? array_map(function ($hour) use ($meridiem) {
+                    if (\is_array($meridiem)) {
+                        return $meridiem[$hour < 12 ? 0 : 1];
+                    }
+
+                    return $meridiem($hour, 0, false);
+                }, range(0, 23)) : []
+            );
+        }
+
+        return substr(preg_replace_callback('/(?<=[\d\s+.\/,_-])('.implode('|', $fromTranslations).')(?=[\d\s+.\/,_-])/iu', function ($match) use ($fromTranslations, $toTranslations) {
+            [$chunk] = $match;
+
+            foreach ($fromTranslations as $index => $word) {
+                if (preg_match("/^$word\$/iu", $chunk)) {
+                    return $toTranslations[$index] ?? '';
+                }
+            }
+
+            return $chunk; // @codeCoverageIgnore
+        }, " $timeString "), 1, -1);
+    }
+
+    /**
+     * Translate a time string from the current locale (`$date->locale()`) to an other.
+     *
+     * @param string      $timeString time string to translate
+     * @param string|null $to         output locale of the result returned ("en" by default)
+     *
+     * @return string
+     */
+    public function translateTimeStringTo($timeString, $to = null)
+    {
+        return static::translateTimeString($timeString, $this->getTranslatorLocale(), $to);
+    }
+
+    /**
+     * Get/set the locale for the current instance.
+     *
+     * @param string|null $locale
+     * @param string      ...$fallbackLocales
+     *
+     * @return $this|string
+     */
+    public function locale(string $locale = null, ...$fallbackLocales)
+    {
+        if ($locale === null) {
+            return $this->getTranslatorLocale();
+        }
+
+        if (!$this->localTranslator || $this->getTranslatorLocale($this->localTranslator) !== $locale) {
+            $translator = Translator::get($locale);
+
+            if (!empty($fallbackLocales)) {
+                $translator->setFallbackLocales($fallbackLocales);
+
+                foreach ($fallbackLocales as $fallbackLocale) {
+                    $messages = Translator::get($fallbackLocale)->getMessages();
+
+                    if (isset($messages[$fallbackLocale])) {
+                        $translator->setMessages($fallbackLocale, $messages[$fallbackLocale]);
+                    }
+                }
+            }
+
+            $this->setLocalTranslator($translator);
+        }
+
+        return $this;
+    }
+
+    /**
+     * Get the current translator locale.
+     *
+     * @return string
+     */
+    public static function getLocale()
+    {
+        return static::getLocaleAwareTranslator()->getLocale();
+    }
+
+    /**
+     * Set the current translator locale and indicate if the source locale file exists.
+     * Pass 'auto' as locale to use closest language from the current LC_TIME locale.
+     *
+     * @param string $locale locale ex. en
+     *
+     * @return bool
+     */
+    public static function setLocale($locale)
+    {
+        return static::getLocaleAwareTranslator()->setLocale($locale) !== false;
+    }
+
+    /**
+     * Set the fallback locale.
+     *
+     * @see https://symfony.com/doc/current/components/translation.html#fallback-locales
+     *
+     * @param string $locale
+     */
+    public static function setFallbackLocale($locale)
+    {
+        $translator = static::getTranslator();
+
+        if (method_exists($translator, 'setFallbackLocales')) {
+            $translator->setFallbackLocales([$locale]);
+
+            if ($translator instanceof Translator) {
+                $preferredLocale = $translator->getLocale();
+                $translator->setMessages($preferredLocale, array_replace_recursive(
+                    $translator->getMessages()[$locale] ?? [],
+                    Translator::get($locale)->getMessages()[$locale] ?? [],
+                    $translator->getMessages($preferredLocale)
+                ));
+            }
+        }
+    }
+
+    /**
+     * Get the fallback locale.
+     *
+     * @see https://symfony.com/doc/current/components/translation.html#fallback-locales
+     *
+     * @return string|null
+     */
+    public static function getFallbackLocale()
+    {
+        $translator = static::getTranslator();
+
+        if (method_exists($translator, 'getFallbackLocales')) {
+            return $translator->getFallbackLocales()[0] ?? null;
+        }
+
+        return null;
+    }
+
+    /**
+     * Set the current locale to the given, execute the passed function, reset the locale to previous one,
+     * then return the result of the closure (or null if the closure was void).
+     *
+     * @param string   $locale locale ex. en
+     * @param callable $func
+     *
+     * @return mixed
+     */
+    public static function executeWithLocale($locale, $func)
+    {
+        $currentLocale = static::getLocale();
+        $result = $func(static::setLocale($locale) ? static::getLocale() : false, static::translator());
+        static::setLocale($currentLocale);
+
+        return $result;
+    }
+
+    /**
+     * Returns true if the given locale is internally supported and has short-units support.
+     * Support is considered enabled if either year, day or hour has a short variant translated.
+     *
+     * @param string $locale locale ex. en
+     *
+     * @return bool
+     */
+    public static function localeHasShortUnits($locale)
+    {
+        return static::executeWithLocale($locale, function ($newLocale, TranslatorInterface $translator) {
+            return $newLocale &&
+                (
+                    ($y = static::translateWith($translator, 'y')) !== 'y' &&
+                    $y !== static::translateWith($translator, 'year')
+                ) || (
+                    ($y = static::translateWith($translator, 'd')) !== 'd' &&
+                    $y !== static::translateWith($translator, 'day')
+                ) || (
+                    ($y = static::translateWith($translator, 'h')) !== 'h' &&
+                    $y !== static::translateWith($translator, 'hour')
+                );
+        });
+    }
+
+    /**
+     * Returns true if the given locale is internally supported and has diff syntax support (ago, from now, before, after).
+     * Support is considered enabled if the 4 sentences are translated in the given locale.
+     *
+     * @param string $locale locale ex. en
+     *
+     * @return bool
+     */
+    public static function localeHasDiffSyntax($locale)
+    {
+        return static::executeWithLocale($locale, function ($newLocale, TranslatorInterface $translator) {
+            if (!$newLocale) {
+                return false;
+            }
+
+            foreach (['ago', 'from_now', 'before', 'after'] as $key) {
+                if ($translator instanceof TranslatorBagInterface && $translator->getCatalogue($newLocale)->get($key) instanceof Closure) {
+                    continue;
+                }
+
+                if ($translator->trans($key) === $key) {
+                    return false;
+                }
+            }
+
+            return true;
+        });
+    }
+
+    /**
+     * Returns true if the given locale is internally supported and has words for 1-day diff (just now, yesterday, tomorrow).
+     * Support is considered enabled if the 3 words are translated in the given locale.
+     *
+     * @param string $locale locale ex. en
+     *
+     * @return bool
+     */
+    public static function localeHasDiffOneDayWords($locale)
+    {
+        return static::executeWithLocale($locale, function ($newLocale, TranslatorInterface $translator) {
+            return $newLocale &&
+                $translator->trans('diff_now') !== 'diff_now' &&
+                $translator->trans('diff_yesterday') !== 'diff_yesterday' &&
+                $translator->trans('diff_tomorrow') !== 'diff_tomorrow';
+        });
+    }
+
+    /**
+     * Returns true if the given locale is internally supported and has words for 2-days diff (before yesterday, after tomorrow).
+     * Support is considered enabled if the 2 words are translated in the given locale.
+     *
+     * @param string $locale locale ex. en
+     *
+     * @return bool
+     */
+    public static function localeHasDiffTwoDayWords($locale)
+    {
+        return static::executeWithLocale($locale, function ($newLocale, TranslatorInterface $translator) {
+            return $newLocale &&
+                $translator->trans('diff_before_yesterday') !== 'diff_before_yesterday' &&
+                $translator->trans('diff_after_tomorrow') !== 'diff_after_tomorrow';
+        });
+    }
+
+    /**
+     * Returns true if the given locale is internally supported and has period syntax support (X times, every X, from X, to X).
+     * Support is considered enabled if the 4 sentences are translated in the given locale.
+     *
+     * @param string $locale locale ex. en
+     *
+     * @return bool
+     */
+    public static function localeHasPeriodSyntax($locale)
+    {
+        return static::executeWithLocale($locale, function ($newLocale, TranslatorInterface $translator) {
+            return $newLocale &&
+                $translator->trans('period_recurrences') !== 'period_recurrences' &&
+                $translator->trans('period_interval') !== 'period_interval' &&
+                $translator->trans('period_start_date') !== 'period_start_date' &&
+                $translator->trans('period_end_date') !== 'period_end_date';
+        });
+    }
+
+    /**
+     * Returns the list of internally available locales and already loaded custom locales.
+     * (It will ignore custom translator dynamic loading.)
+     *
+     * @return array
+     */
+    public static function getAvailableLocales()
+    {
+        $translator = static::getLocaleAwareTranslator();
+
+        return $translator instanceof Translator
+            ? $translator->getAvailableLocales()
+            : [$translator->getLocale()];
+    }
+
+    /**
+     * Returns list of Language object for each available locale. This object allow you to get the ISO name, native
+     * name, region and variant of the locale.
+     *
+     * @return Language[]
+     */
+    public static function getAvailableLocalesInfo()
+    {
+        $languages = [];
+        foreach (static::getAvailableLocales() as $id) {
+            $languages[$id] = new Language($id);
+        }
+
+        return $languages;
+    }
+
+    /**
+     * Initialize the default translator instance if necessary.
+     *
+     * @return \Symfony\Component\Translation\TranslatorInterface
+     */
+    protected static function translator()
+    {
+        if (static::$translator === null) {
+            static::$translator = Translator::get();
+        }
+
+        return static::$translator;
+    }
+
+    /**
+     * Get the locale of a given translator.
+     *
+     * If null or omitted, current local translator is used.
+     * If no local translator is in use, current global translator is used.
+     *
+     * @param null $translator
+     *
+     * @return string|null
+     */
+    protected function getTranslatorLocale($translator = null): ?string
+    {
+        if (\func_num_args() === 0) {
+            $translator = $this->getLocalTranslator();
+        }
+
+        $translator = static::getLocaleAwareTranslator($translator);
+
+        return $translator ? $translator->getLocale() : null;
+    }
+
+    /**
+     * Throw an error if passed object is not LocaleAwareInterface.
+     *
+     * @param LocaleAwareInterface|null $translator
+     *
+     * @return LocaleAwareInterface|null
+     */
+    protected static function getLocaleAwareTranslator($translator = null)
+    {
+        if (\func_num_args() === 0) {
+            $translator = static::translator();
+        }
+
+        if ($translator && !($translator instanceof LocaleAwareInterface || method_exists($translator, 'getLocale'))) {
+            throw new NotLocaleAwareException($translator);
+        }
+
+        return $translator;
+    }
+
+    /**
+     * Return the word cleaned from its translation codes.
+     *
+     * @param string $word
+     *
+     * @return string
+     */
+    private static function cleanWordFromTranslationString($word)
+    {
+        $word = str_replace([':count', '%count', ':time'], '', $word);
+        $word = strtr($word, ['’' => "'"]);
+        $word = preg_replace('/({\d+(,(\d+|Inf))?}|[\[\]]\d+(,(\d+|Inf))?[\[\]])/', '', $word);
+
+        return trim($word);
+    }
+
+    /**
+     * Translate a list of words.
+     *
+     * @param string[] $keys     keys to translate.
+     * @param string[] $messages messages bag handling translations.
+     * @param string   $key      'to' (to get the translation) or 'from' (to get the detection RegExp pattern).
+     *
+     * @return string[]
+     */
+    private static function translateWordsByKeys($keys, $messages, $key): array
+    {
+        return array_map(function ($wordKey) use ($messages, $key) {
+            $message = $key === 'from' && isset($messages[$wordKey.'_regexp'])
+                ? $messages[$wordKey.'_regexp']
+                : ($messages[$wordKey] ?? null);
+
+            if (!$message) {
+                return '>>DO NOT REPLACE<<';
+            }
+
+            $parts = explode('|', $message);
+
+            return $key === 'to'
+                ? static::cleanWordFromTranslationString(end($parts))
+                : '(?:'.implode('|', array_map([static::class, 'cleanWordFromTranslationString'], $parts)).')';
+        }, $keys);
+    }
+
+    /**
+     * Get an array of translations based on the current date.
+     *
+     * @param callable $translation
+     * @param int      $length
+     * @param string   $timeString
+     *
+     * @return string[]
+     */
+    private static function getTranslationArray($translation, $length, $timeString): array
+    {
+        $filler = '>>DO NOT REPLACE<<';
+
+        if (\is_array($translation)) {
+            return array_pad($translation, $length, $filler);
+        }
+
+        $list = [];
+        $date = static::now();
+
+        for ($i = 0; $i < $length; $i++) {
+            $list[] = $translation($date, $timeString, $i) ?? $filler;
+        }
+
+        return $list;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Macro.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Macro.php
new file mode 100644
index 0000000..d413526
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Macro.php
@@ -0,0 +1,135 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Traits;
+
+/**
+ * Trait Macros.
+ *
+ * Allows users to register macros within the Carbon class.
+ */
+trait Macro
+{
+    use Mixin;
+
+    /**
+     * The registered macros.
+     *
+     * @var array
+     */
+    protected static $globalMacros = [];
+
+    /**
+     * The registered generic macros.
+     *
+     * @var array
+     */
+    protected static $globalGenericMacros = [];
+
+    /**
+     * Register a custom macro.
+     *
+     * @example
+     * ```
+     * $userSettings = [
+     *   'locale' => 'pt',
+     *   'timezone' => 'America/Sao_Paulo',
+     * ];
+     * Carbon::macro('userFormat', function () use ($userSettings) {
+     *   return $this->copy()->locale($userSettings['locale'])->tz($userSettings['timezone'])->calendar();
+     * });
+     * echo Carbon::yesterday()->hours(11)->userFormat();
+     * ```
+     *
+     * @param string          $name
+     * @param object|callable $macro
+     *
+     * @return void
+     */
+    public static function macro($name, $macro)
+    {
+        static::$globalMacros[$name] = $macro;
+    }
+
+    /**
+     * Remove all macros and generic macros.
+     */
+    public static function resetMacros()
+    {
+        static::$globalMacros = [];
+        static::$globalGenericMacros = [];
+    }
+
+    /**
+     * Register a custom macro.
+     *
+     * @param object|callable $macro
+     * @param int             $priority marco with higher priority is tried first
+     *
+     * @return void
+     */
+    public static function genericMacro($macro, $priority = 0)
+    {
+        if (!isset(static::$globalGenericMacros[$priority])) {
+            static::$globalGenericMacros[$priority] = [];
+            krsort(static::$globalGenericMacros, SORT_NUMERIC);
+        }
+
+        static::$globalGenericMacros[$priority][] = $macro;
+    }
+
+    /**
+     * Checks if macro is registered globally.
+     *
+     * @param string $name
+     *
+     * @return bool
+     */
+    public static function hasMacro($name)
+    {
+        return isset(static::$globalMacros[$name]);
+    }
+
+    /**
+     * Get the raw callable macro registered globally for a given name.
+     *
+     * @param string $name
+     *
+     * @return callable|null
+     */
+    public static function getMacro($name)
+    {
+        return static::$globalMacros[$name] ?? null;
+    }
+
+    /**
+     * Checks if macro is registered globally or locally.
+     *
+     * @param string $name
+     *
+     * @return bool
+     */
+    public function hasLocalMacro($name)
+    {
+        return ($this->localMacros && isset($this->localMacros[$name])) || static::hasMacro($name);
+    }
+
+    /**
+     * Get the raw callable macro registered globally or locally for a given name.
+     *
+     * @param string $name
+     *
+     * @return callable|null
+     */
+    public function getLocalMacro($name)
+    {
+        return ($this->localMacros ?? [])[$name] ?? static::getMacro($name);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Mixin.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Mixin.php
new file mode 100644
index 0000000..b9c868d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Mixin.php
@@ -0,0 +1,190 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Traits;
+
+use Closure;
+use Generator;
+use ReflectionClass;
+use ReflectionException;
+use ReflectionMethod;
+use Throwable;
+
+/**
+ * Trait Mixin.
+ *
+ * Allows mixing in entire classes with multiple macros.
+ */
+trait Mixin
+{
+    /**
+     * Stack of macro instance contexts.
+     *
+     * @var array
+     */
+    protected static $macroContextStack = [];
+
+    /**
+     * Mix another object into the class.
+     *
+     * @example
+     * ```
+     * Carbon::mixin(new class {
+     *   public function addMoon() {
+     *     return function () {
+     *       return $this->addDays(30);
+     *     };
+     *   }
+     *   public function subMoon() {
+     *     return function () {
+     *       return $this->subDays(30);
+     *     };
+     *   }
+     * });
+     * $fullMoon = Carbon::create('2018-12-22');
+     * $nextFullMoon = $fullMoon->addMoon();
+     * $blackMoon = Carbon::create('2019-01-06');
+     * $previousBlackMoon = $blackMoon->subMoon();
+     * echo "$nextFullMoon\n";
+     * echo "$previousBlackMoon\n";
+     * ```
+     *
+     * @param object|string $mixin
+     *
+     * @throws ReflectionException
+     *
+     * @return void
+     */
+    public static function mixin($mixin)
+    {
+        \is_string($mixin) && trait_exists($mixin)
+            ? static::loadMixinTrait($mixin)
+            : static::loadMixinClass($mixin);
+    }
+
+    /**
+     * @param object|string $mixin
+     *
+     * @throws ReflectionException
+     */
+    private static function loadMixinClass($mixin)
+    {
+        $methods = (new ReflectionClass($mixin))->getMethods(
+            ReflectionMethod::IS_PUBLIC | ReflectionMethod::IS_PROTECTED
+        );
+
+        foreach ($methods as $method) {
+            if ($method->isConstructor() || $method->isDestructor()) {
+                continue;
+            }
+
+            $method->setAccessible(true);
+
+            static::macro($method->name, $method->invoke($mixin));
+        }
+    }
+
+    /**
+     * @param string $trait
+     */
+    private static function loadMixinTrait($trait)
+    {
+        $context = eval(self::getAnonymousClassCodeForTrait($trait));
+        $className = \get_class($context);
+
+        foreach (self::getMixableMethods($context) as $name) {
+            $closureBase = Closure::fromCallable([$context, $name]);
+
+            static::macro($name, function () use ($closureBase, $className) {
+                /** @phpstan-ignore-next-line */
+                $context = isset($this) ? $this->cast($className) : new $className();
+
+                try {
+                    // @ is required to handle error if not converted into exceptions
+                    $closure = @$closureBase->bindTo($context);
+                } catch (Throwable $throwable) { // @codeCoverageIgnore
+                    $closure = $closureBase; // @codeCoverageIgnore
+                }
+
+                // in case of errors not converted into exceptions
+                $closure = $closure ?? $closureBase;
+
+                return $closure(...\func_get_args());
+            });
+        }
+    }
+
+    private static function getAnonymousClassCodeForTrait(string $trait)
+    {
+        return 'return new class() extends '.static::class.' {use '.$trait.';};';
+    }
+
+    private static function getMixableMethods(self $context): Generator
+    {
+        foreach (get_class_methods($context) as $name) {
+            if (method_exists(static::class, $name)) {
+                continue;
+            }
+
+            yield $name;
+        }
+    }
+
+    /**
+     * Stack a Carbon context from inside calls of self::this() and execute a given action.
+     *
+     * @param static|null $context
+     * @param callable    $callable
+     *
+     * @throws Throwable
+     *
+     * @return mixed
+     */
+    protected static function bindMacroContext($context, callable $callable)
+    {
+        static::$macroContextStack[] = $context;
+        $exception = null;
+        $result = null;
+
+        try {
+            $result = $callable();
+        } catch (Throwable $throwable) {
+            $exception = $throwable;
+        }
+
+        array_pop(static::$macroContextStack);
+
+        if ($exception) {
+            throw $exception;
+        }
+
+        return $result;
+    }
+
+    /**
+     * Return the current context from inside a macro callee or a null if static.
+     *
+     * @return static|null
+     */
+    protected static function context()
+    {
+        return end(static::$macroContextStack) ?: null;
+    }
+
+    /**
+     * Return the current context from inside a macro callee or a new one if static.
+     *
+     * @return static
+     */
+    protected static function this()
+    {
+        return end(static::$macroContextStack) ?: new static();
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Modifiers.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Modifiers.php
new file mode 100644
index 0000000..2fd6426
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Modifiers.php
@@ -0,0 +1,469 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Traits;
+
+use Carbon\CarbonInterface;
+use ReturnTypeWillChange;
+
+/**
+ * Trait Modifiers.
+ *
+ * Returns dates relative to current date using modifier short-hand.
+ */
+trait Modifiers
+{
+    /**
+     * Midday/noon hour.
+     *
+     * @var int
+     */
+    protected static $midDayAt = 12;
+
+    /**
+     * get midday/noon hour
+     *
+     * @return int
+     */
+    public static function getMidDayAt()
+    {
+        return static::$midDayAt;
+    }
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather consider mid-day is always 12pm, then if you need to test if it's an other
+     *             hour, test it explicitly:
+     *                 $date->format('G') == 13
+     *             or to set explicitly to a given hour:
+     *                 $date->setTime(13, 0, 0, 0)
+     *
+     * Set midday/noon hour
+     *
+     * @param int $hour midday hour
+     *
+     * @return void
+     */
+    public static function setMidDayAt($hour)
+    {
+        static::$midDayAt = $hour;
+    }
+
+    /**
+     * Modify to midday, default to self::$midDayAt
+     *
+     * @return static
+     */
+    public function midDay()
+    {
+        return $this->setTime(static::$midDayAt, 0, 0, 0);
+    }
+
+    /**
+     * Modify to the next occurrence of a given modifier such as a day of
+     * the week. If no modifier is provided, modify to the next occurrence
+     * of the current day of the week. Use the supplied constants
+     * to indicate the desired dayOfWeek, ex. static::MONDAY.
+     *
+     * @param string|int|null $modifier
+     *
+     * @return static
+     */
+    public function next($modifier = null)
+    {
+        if ($modifier === null) {
+            $modifier = $this->dayOfWeek;
+        }
+
+        return $this->change(
+            'next '.(\is_string($modifier) ? $modifier : static::$days[$modifier])
+        );
+    }
+
+    /**
+     * Go forward or backward to the next week- or weekend-day.
+     *
+     * @param bool $weekday
+     * @param bool $forward
+     *
+     * @return static
+     */
+    private function nextOrPreviousDay($weekday = true, $forward = true)
+    {
+        /** @var CarbonInterface $date */
+        $date = $this;
+        $step = $forward ? 1 : -1;
+
+        do {
+            $date = $date->addDays($step);
+        } while ($weekday ? $date->isWeekend() : $date->isWeekday());
+
+        return $date;
+    }
+
+    /**
+     * Go forward to the next weekday.
+     *
+     * @return static
+     */
+    public function nextWeekday()
+    {
+        return $this->nextOrPreviousDay();
+    }
+
+    /**
+     * Go backward to the previous weekday.
+     *
+     * @return static
+     */
+    public function previousWeekday()
+    {
+        return $this->nextOrPreviousDay(true, false);
+    }
+
+    /**
+     * Go forward to the next weekend day.
+     *
+     * @return static
+     */
+    public function nextWeekendDay()
+    {
+        return $this->nextOrPreviousDay(false);
+    }
+
+    /**
+     * Go backward to the previous weekend day.
+     *
+     * @return static
+     */
+    public function previousWeekendDay()
+    {
+        return $this->nextOrPreviousDay(false, false);
+    }
+
+    /**
+     * Modify to the previous occurrence of a given modifier such as a day of
+     * the week. If no dayOfWeek is provided, modify to the previous occurrence
+     * of the current day of the week. Use the supplied constants
+     * to indicate the desired dayOfWeek, ex. static::MONDAY.
+     *
+     * @param string|int|null $modifier
+     *
+     * @return static
+     */
+    public function previous($modifier = null)
+    {
+        if ($modifier === null) {
+            $modifier = $this->dayOfWeek;
+        }
+
+        return $this->change(
+            'last '.(\is_string($modifier) ? $modifier : static::$days[$modifier])
+        );
+    }
+
+    /**
+     * Modify to the first occurrence of a given day of the week
+     * in the current month. If no dayOfWeek is provided, modify to the
+     * first day of the current month.  Use the supplied constants
+     * to indicate the desired dayOfWeek, ex. static::MONDAY.
+     *
+     * @param int|null $dayOfWeek
+     *
+     * @return static
+     */
+    public function firstOfMonth($dayOfWeek = null)
+    {
+        $date = $this->startOfDay();
+
+        if ($dayOfWeek === null) {
+            return $date->day(1);
+        }
+
+        return $date->modify('first '.static::$days[$dayOfWeek].' of '.$date->rawFormat('F').' '.$date->year);
+    }
+
+    /**
+     * Modify to the last occurrence of a given day of the week
+     * in the current month. If no dayOfWeek is provided, modify to the
+     * last day of the current month.  Use the supplied constants
+     * to indicate the desired dayOfWeek, ex. static::MONDAY.
+     *
+     * @param int|null $dayOfWeek
+     *
+     * @return static
+     */
+    public function lastOfMonth($dayOfWeek = null)
+    {
+        $date = $this->startOfDay();
+
+        if ($dayOfWeek === null) {
+            return $date->day($date->daysInMonth);
+        }
+
+        return $date->modify('last '.static::$days[$dayOfWeek].' of '.$date->rawFormat('F').' '.$date->year);
+    }
+
+    /**
+     * Modify to the given occurrence of a given day of the week
+     * in the current month. If the calculated occurrence is outside the scope
+     * of the current month, then return false and no modifications are made.
+     * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY.
+     *
+     * @param int $nth
+     * @param int $dayOfWeek
+     *
+     * @return mixed
+     */
+    public function nthOfMonth($nth, $dayOfWeek)
+    {
+        $date = $this->avoidMutation()->firstOfMonth();
+        $check = $date->rawFormat('Y-m');
+        $date = $date->modify('+'.$nth.' '.static::$days[$dayOfWeek]);
+
+        return $date->rawFormat('Y-m') === $check ? $this->modify((string) $date) : false;
+    }
+
+    /**
+     * Modify to the first occurrence of a given day of the week
+     * in the current quarter. If no dayOfWeek is provided, modify to the
+     * first day of the current quarter.  Use the supplied constants
+     * to indicate the desired dayOfWeek, ex. static::MONDAY.
+     *
+     * @param int|null $dayOfWeek day of the week default null
+     *
+     * @return static
+     */
+    public function firstOfQuarter($dayOfWeek = null)
+    {
+        return $this->setDate($this->year, $this->quarter * static::MONTHS_PER_QUARTER - 2, 1)->firstOfMonth($dayOfWeek);
+    }
+
+    /**
+     * Modify to the last occurrence of a given day of the week
+     * in the current quarter. If no dayOfWeek is provided, modify to the
+     * last day of the current quarter.  Use the supplied constants
+     * to indicate the desired dayOfWeek, ex. static::MONDAY.
+     *
+     * @param int|null $dayOfWeek day of the week default null
+     *
+     * @return static
+     */
+    public function lastOfQuarter($dayOfWeek = null)
+    {
+        return $this->setDate($this->year, $this->quarter * static::MONTHS_PER_QUARTER, 1)->lastOfMonth($dayOfWeek);
+    }
+
+    /**
+     * Modify to the given occurrence of a given day of the week
+     * in the current quarter. If the calculated occurrence is outside the scope
+     * of the current quarter, then return false and no modifications are made.
+     * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY.
+     *
+     * @param int $nth
+     * @param int $dayOfWeek
+     *
+     * @return mixed
+     */
+    public function nthOfQuarter($nth, $dayOfWeek)
+    {
+        $date = $this->avoidMutation()->day(1)->month($this->quarter * static::MONTHS_PER_QUARTER);
+        $lastMonth = $date->month;
+        $year = $date->year;
+        $date = $date->firstOfQuarter()->modify('+'.$nth.' '.static::$days[$dayOfWeek]);
+
+        return ($lastMonth < $date->month || $year !== $date->year) ? false : $this->modify((string) $date);
+    }
+
+    /**
+     * Modify to the first occurrence of a given day of the week
+     * in the current year. If no dayOfWeek is provided, modify to the
+     * first day of the current year.  Use the supplied constants
+     * to indicate the desired dayOfWeek, ex. static::MONDAY.
+     *
+     * @param int|null $dayOfWeek day of the week default null
+     *
+     * @return static
+     */
+    public function firstOfYear($dayOfWeek = null)
+    {
+        return $this->month(1)->firstOfMonth($dayOfWeek);
+    }
+
+    /**
+     * Modify to the last occurrence of a given day of the week
+     * in the current year. If no dayOfWeek is provided, modify to the
+     * last day of the current year.  Use the supplied constants
+     * to indicate the desired dayOfWeek, ex. static::MONDAY.
+     *
+     * @param int|null $dayOfWeek day of the week default null
+     *
+     * @return static
+     */
+    public function lastOfYear($dayOfWeek = null)
+    {
+        return $this->month(static::MONTHS_PER_YEAR)->lastOfMonth($dayOfWeek);
+    }
+
+    /**
+     * Modify to the given occurrence of a given day of the week
+     * in the current year. If the calculated occurrence is outside the scope
+     * of the current year, then return false and no modifications are made.
+     * Use the supplied constants to indicate the desired dayOfWeek, ex. static::MONDAY.
+     *
+     * @param int $nth
+     * @param int $dayOfWeek
+     *
+     * @return mixed
+     */
+    public function nthOfYear($nth, $dayOfWeek)
+    {
+        $date = $this->avoidMutation()->firstOfYear()->modify('+'.$nth.' '.static::$days[$dayOfWeek]);
+
+        return $this->year === $date->year ? $this->modify((string) $date) : false;
+    }
+
+    /**
+     * Modify the current instance to the average of a given instance (default now) and the current instance
+     * (second-precision).
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|null $date
+     *
+     * @return static
+     */
+    public function average($date = null)
+    {
+        return $this->addRealMicroseconds((int) ($this->diffInRealMicroseconds($this->resolveCarbon($date), false) / 2));
+    }
+
+    /**
+     * Get the closest date from the instance (second-precision).
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2
+     *
+     * @return static
+     */
+    public function closest($date1, $date2)
+    {
+        return $this->diffInRealMicroseconds($date1) < $this->diffInRealMicroseconds($date2) ? $date1 : $date2;
+    }
+
+    /**
+     * Get the farthest date from the instance (second-precision).
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date1
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date2
+     *
+     * @return static
+     */
+    public function farthest($date1, $date2)
+    {
+        return $this->diffInRealMicroseconds($date1) > $this->diffInRealMicroseconds($date2) ? $date1 : $date2;
+    }
+
+    /**
+     * Get the minimum instance between a given instance (default now) and the current instance.
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @return static
+     */
+    public function min($date = null)
+    {
+        $date = $this->resolveCarbon($date);
+
+        return $this->lt($date) ? $this : $date;
+    }
+
+    /**
+     * Get the minimum instance between a given instance (default now) and the current instance.
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @see min()
+     *
+     * @return static
+     */
+    public function minimum($date = null)
+    {
+        return $this->min($date);
+    }
+
+    /**
+     * Get the maximum instance between a given instance (default now) and the current instance.
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @return static
+     */
+    public function max($date = null)
+    {
+        $date = $this->resolveCarbon($date);
+
+        return $this->gt($date) ? $this : $date;
+    }
+
+    /**
+     * Get the maximum instance between a given instance (default now) and the current instance.
+     *
+     * @param \Carbon\Carbon|\DateTimeInterface|mixed $date
+     *
+     * @see max()
+     *
+     * @return static
+     */
+    public function maximum($date = null)
+    {
+        return $this->max($date);
+    }
+
+    /**
+     * Calls \DateTime::modify if mutable or \DateTimeImmutable::modify else.
+     *
+     * @see https://php.net/manual/en/datetime.modify.php
+     */
+    #[ReturnTypeWillChange]
+    public function modify($modify)
+    {
+        return parent::modify((string) $modify);
+    }
+
+    /**
+     * Similar to native modify() method of DateTime but can handle more grammars.
+     *
+     * @example
+     * ```
+     * echo Carbon::now()->change('next 2pm');
+     * ```
+     *
+     * @link https://php.net/manual/en/datetime.modify.php
+     *
+     * @param string $modifier
+     *
+     * @return static
+     */
+    public function change($modifier)
+    {
+        return $this->modify(preg_replace_callback('/^(next|previous|last)\s+(\d{1,2}(h|am|pm|:\d{1,2}(:\d{1,2})?))$/i', function ($match) {
+            $match[2] = str_replace('h', ':00', $match[2]);
+            $test = $this->avoidMutation()->modify($match[2]);
+            $method = $match[1] === 'next' ? 'lt' : 'gt';
+            $match[1] = $test->$method($this) ? $match[1].' day' : 'today';
+
+            return $match[1].' '.$match[2];
+        }, strtr(trim($modifier), [
+            ' at ' => ' ',
+            'just now' => 'now',
+            'after tomorrow' => 'tomorrow +1 day',
+            'before yesterday' => 'yesterday -1 day',
+        ])));
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Mutability.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Mutability.php
new file mode 100644
index 0000000..66eaa12
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Mutability.php
@@ -0,0 +1,70 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Traits;
+
+use Carbon\Carbon;
+use Carbon\CarbonImmutable;
+
+/**
+ * Trait Mutability.
+ *
+ * Utils to know if the current object is mutable or immutable and convert it.
+ */
+trait Mutability
+{
+    use Cast;
+
+    /**
+     * Returns true if the current class/instance is mutable.
+     *
+     * @return bool
+     */
+    public static function isMutable()
+    {
+        return false;
+    }
+
+    /**
+     * Returns true if the current class/instance is immutable.
+     *
+     * @return bool
+     */
+    public static function isImmutable()
+    {
+        return !static::isMutable();
+    }
+
+    /**
+     * Return a mutable copy of the instance.
+     *
+     * @return Carbon
+     */
+    public function toMutable()
+    {
+        /** @var Carbon $date */
+        $date = $this->cast(Carbon::class);
+
+        return $date;
+    }
+
+    /**
+     * Return a immutable copy of the instance.
+     *
+     * @return CarbonImmutable
+     */
+    public function toImmutable()
+    {
+        /** @var CarbonImmutable $date */
+        $date = $this->cast(CarbonImmutable::class);
+
+        return $date;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/ObjectInitialisation.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/ObjectInitialisation.php
new file mode 100644
index 0000000..252df3a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/ObjectInitialisation.php
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Traits;
+
+trait ObjectInitialisation
+{
+    /**
+     * True when parent::__construct has been called.
+     *
+     * @var string
+     */
+    protected $constructedObjectId;
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Options.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Options.php
new file mode 100644
index 0000000..0a49372
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Options.php
@@ -0,0 +1,466 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Traits;
+
+use Carbon\CarbonInterface;
+use DateTimeInterface;
+use Throwable;
+
+/**
+ * Trait Options.
+ *
+ * Embed base methods to change settings of Carbon classes.
+ *
+ * Depends on the following methods:
+ *
+ * @method \Carbon\Carbon|\Carbon\CarbonImmutable shiftTimezone($timezone) Set the timezone
+ */
+trait Options
+{
+    use Localization;
+
+    /**
+     * Customizable PHP_INT_SIZE override.
+     *
+     * @var int
+     */
+    public static $PHPIntSize = PHP_INT_SIZE;
+
+    /**
+     * First day of week.
+     *
+     * @var int|string
+     */
+    protected static $weekStartsAt = CarbonInterface::MONDAY;
+
+    /**
+     * Last day of week.
+     *
+     * @var int|string
+     */
+    protected static $weekEndsAt = CarbonInterface::SUNDAY;
+
+    /**
+     * Days of weekend.
+     *
+     * @var array
+     */
+    protected static $weekendDays = [
+        CarbonInterface::SATURDAY,
+        CarbonInterface::SUNDAY,
+    ];
+
+    /**
+     * Format regex patterns.
+     *
+     * @var array<string, string>
+     */
+    protected static $regexFormats = [
+        'd' => '(3[01]|[12][0-9]|0[1-9])',
+        'D' => '(Sun|Mon|Tue|Wed|Thu|Fri|Sat)',
+        'j' => '([123][0-9]|[1-9])',
+        'l' => '([a-zA-Z]{2,})',
+        'N' => '([1-7])',
+        'S' => '(st|nd|rd|th)',
+        'w' => '([0-6])',
+        'z' => '(36[0-5]|3[0-5][0-9]|[12][0-9]{2}|[1-9]?[0-9])',
+        'W' => '(5[012]|[1-4][0-9]|0?[1-9])',
+        'F' => '([a-zA-Z]{2,})',
+        'm' => '(1[012]|0[1-9])',
+        'M' => '([a-zA-Z]{3})',
+        'n' => '(1[012]|[1-9])',
+        't' => '(2[89]|3[01])',
+        'L' => '(0|1)',
+        'o' => '([1-9][0-9]{0,4})',
+        'Y' => '([1-9]?[0-9]{4})',
+        'y' => '([0-9]{2})',
+        'a' => '(am|pm)',
+        'A' => '(AM|PM)',
+        'B' => '([0-9]{3})',
+        'g' => '(1[012]|[1-9])',
+        'G' => '(2[0-3]|1?[0-9])',
+        'h' => '(1[012]|0[1-9])',
+        'H' => '(2[0-3]|[01][0-9])',
+        'i' => '([0-5][0-9])',
+        's' => '([0-5][0-9])',
+        'u' => '([0-9]{1,6})',
+        'v' => '([0-9]{1,3})',
+        'e' => '([a-zA-Z]{1,5})|([a-zA-Z]*\\/[a-zA-Z]*)',
+        'I' => '(0|1)',
+        'O' => '([+-](1[012]|0[0-9])[0134][05])',
+        'P' => '([+-](1[012]|0[0-9]):[0134][05])',
+        'p' => '(Z|[+-](1[012]|0[0-9]):[0134][05])',
+        'T' => '([a-zA-Z]{1,5})',
+        'Z' => '(-?[1-5]?[0-9]{1,4})',
+        'U' => '([0-9]*)',
+
+        // The formats below are combinations of the above formats.
+        'c' => '(([1-9]?[0-9]{4})-(1[012]|0[1-9])-(3[01]|[12][0-9]|0[1-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])[+-](1[012]|0[0-9]):([0134][05]))', // Y-m-dTH:i:sP
+        'r' => '(([a-zA-Z]{3}), ([123][0-9]|0[1-9]) ([a-zA-Z]{3}) ([1-9]?[0-9]{4}) (2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9]) [+-](1[012]|0[0-9])([0134][05]))', // D, d M Y H:i:s O
+    ];
+
+    /**
+     * Format modifiers (such as available in createFromFormat) regex patterns.
+     *
+     * @var array
+     */
+    protected static $regexFormatModifiers = [
+        '*' => '.+',
+        ' ' => '[   ]',
+        '#' => '[;:\\/.,()-]',
+        '?' => '([^a]|[a])',
+        '!' => '',
+        '|' => '',
+        '+' => '',
+    ];
+
+    /**
+     * Indicates if months should be calculated with overflow.
+     * Global setting.
+     *
+     * @var bool
+     */
+    protected static $monthsOverflow = true;
+
+    /**
+     * Indicates if years should be calculated with overflow.
+     * Global setting.
+     *
+     * @var bool
+     */
+    protected static $yearsOverflow = true;
+
+    /**
+     * Indicates if the strict mode is in use.
+     * Global setting.
+     *
+     * @var bool
+     */
+    protected static $strictModeEnabled = true;
+
+    /**
+     * Function to call instead of format.
+     *
+     * @var string|callable|null
+     */
+    protected static $formatFunction;
+
+    /**
+     * Function to call instead of createFromFormat.
+     *
+     * @var string|callable|null
+     */
+    protected static $createFromFormatFunction;
+
+    /**
+     * Function to call instead of parse.
+     *
+     * @var string|callable|null
+     */
+    protected static $parseFunction;
+
+    /**
+     * Indicates if months should be calculated with overflow.
+     * Specific setting.
+     *
+     * @var bool|null
+     */
+    protected $localMonthsOverflow;
+
+    /**
+     * Indicates if years should be calculated with overflow.
+     * Specific setting.
+     *
+     * @var bool|null
+     */
+    protected $localYearsOverflow;
+
+    /**
+     * Indicates if the strict mode is in use.
+     * Specific setting.
+     *
+     * @var bool|null
+     */
+    protected $localStrictModeEnabled;
+
+    /**
+     * Options for diffForHumans and forHumans methods.
+     *
+     * @var bool|null
+     */
+    protected $localHumanDiffOptions;
+
+    /**
+     * Format to use on string cast.
+     *
+     * @var string|null
+     */
+    protected $localToStringFormat;
+
+    /**
+     * Format to use on JSON serialization.
+     *
+     * @var string|null
+     */
+    protected $localSerializer;
+
+    /**
+     * Instance-specific macros.
+     *
+     * @var array|null
+     */
+    protected $localMacros;
+
+    /**
+     * Instance-specific generic macros.
+     *
+     * @var array|null
+     */
+    protected $localGenericMacros;
+
+    /**
+     * Function to call instead of format.
+     *
+     * @var string|callable|null
+     */
+    protected $localFormatFunction;
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather use the ->settings() method.
+     * @see settings
+     *
+     * Enable the strict mode (or disable with passing false).
+     *
+     * @param bool $strictModeEnabled
+     */
+    public static function useStrictMode($strictModeEnabled = true)
+    {
+        static::$strictModeEnabled = $strictModeEnabled;
+    }
+
+    /**
+     * Returns true if the strict mode is globally in use, false else.
+     * (It can be overridden in specific instances.)
+     *
+     * @return bool
+     */
+    public static function isStrictModeEnabled()
+    {
+        return static::$strictModeEnabled;
+    }
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather use the ->settings() method.
+     *             Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants
+     *             are available for quarters, years, decade, centuries, millennia (singular and plural forms).
+     * @see settings
+     *
+     * Indicates if months should be calculated with overflow.
+     *
+     * @param bool $monthsOverflow
+     *
+     * @return void
+     */
+    public static function useMonthsOverflow($monthsOverflow = true)
+    {
+        static::$monthsOverflow = $monthsOverflow;
+    }
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather use the ->settings() method.
+     *             Or you can use method variants: addMonthsWithOverflow/addMonthsNoOverflow, same variants
+     *             are available for quarters, years, decade, centuries, millennia (singular and plural forms).
+     * @see settings
+     *
+     * Reset the month overflow behavior.
+     *
+     * @return void
+     */
+    public static function resetMonthsOverflow()
+    {
+        static::$monthsOverflow = true;
+    }
+
+    /**
+     * Get the month overflow global behavior (can be overridden in specific instances).
+     *
+     * @return bool
+     */
+    public static function shouldOverflowMonths()
+    {
+        return static::$monthsOverflow;
+    }
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather use the ->settings() method.
+     *             Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants
+     *             are available for quarters, years, decade, centuries, millennia (singular and plural forms).
+     * @see settings
+     *
+     * Indicates if years should be calculated with overflow.
+     *
+     * @param bool $yearsOverflow
+     *
+     * @return void
+     */
+    public static function useYearsOverflow($yearsOverflow = true)
+    {
+        static::$yearsOverflow = $yearsOverflow;
+    }
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather use the ->settings() method.
+     *             Or you can use method variants: addYearsWithOverflow/addYearsNoOverflow, same variants
+     *             are available for quarters, years, decade, centuries, millennia (singular and plural forms).
+     * @see settings
+     *
+     * Reset the month overflow behavior.
+     *
+     * @return void
+     */
+    public static function resetYearsOverflow()
+    {
+        static::$yearsOverflow = true;
+    }
+
+    /**
+     * Get the month overflow global behavior (can be overridden in specific instances).
+     *
+     * @return bool
+     */
+    public static function shouldOverflowYears()
+    {
+        return static::$yearsOverflow;
+    }
+
+    /**
+     * Set specific options.
+     *  - strictMode: true|false|null
+     *  - monthOverflow: true|false|null
+     *  - yearOverflow: true|false|null
+     *  - humanDiffOptions: int|null
+     *  - toStringFormat: string|Closure|null
+     *  - toJsonFormat: string|Closure|null
+     *  - locale: string|null
+     *  - timezone: \DateTimeZone|string|int|null
+     *  - macros: array|null
+     *  - genericMacros: array|null
+     *
+     * @param array $settings
+     *
+     * @return $this|static
+     */
+    public function settings(array $settings)
+    {
+        $this->localStrictModeEnabled = $settings['strictMode'] ?? null;
+        $this->localMonthsOverflow = $settings['monthOverflow'] ?? null;
+        $this->localYearsOverflow = $settings['yearOverflow'] ?? null;
+        $this->localHumanDiffOptions = $settings['humanDiffOptions'] ?? null;
+        $this->localToStringFormat = $settings['toStringFormat'] ?? null;
+        $this->localSerializer = $settings['toJsonFormat'] ?? null;
+        $this->localMacros = $settings['macros'] ?? null;
+        $this->localGenericMacros = $settings['genericMacros'] ?? null;
+        $this->localFormatFunction = $settings['formatFunction'] ?? null;
+
+        if (isset($settings['locale'])) {
+            $locales = $settings['locale'];
+
+            if (!\is_array($locales)) {
+                $locales = [$locales];
+            }
+
+            $this->locale(...$locales);
+        }
+
+        if (isset($settings['timezone'])) {
+            return $this->shiftTimezone($settings['timezone']);
+        }
+
+        return $this;
+    }
+
+    /**
+     * Returns current local settings.
+     *
+     * @return array
+     */
+    public function getSettings()
+    {
+        $settings = [];
+        $map = [
+            'localStrictModeEnabled' => 'strictMode',
+            'localMonthsOverflow' => 'monthOverflow',
+            'localYearsOverflow' => 'yearOverflow',
+            'localHumanDiffOptions' => 'humanDiffOptions',
+            'localToStringFormat' => 'toStringFormat',
+            'localSerializer' => 'toJsonFormat',
+            'localMacros' => 'macros',
+            'localGenericMacros' => 'genericMacros',
+            'locale' => 'locale',
+            'tzName' => 'timezone',
+            'localFormatFunction' => 'formatFunction',
+        ];
+
+        foreach ($map as $property => $key) {
+            $value = $this->$property ?? null;
+
+            if ($value !== null) {
+                $settings[$key] = $value;
+            }
+        }
+
+        return $settings;
+    }
+
+    /**
+     * Show truthy properties on var_dump().
+     *
+     * @return array
+     */
+    public function __debugInfo()
+    {
+        $infos = array_filter(get_object_vars($this), function ($var) {
+            return $var;
+        });
+
+        foreach (['dumpProperties', 'constructedObjectId'] as $property) {
+            if (isset($infos[$property])) {
+                unset($infos[$property]);
+            }
+        }
+
+        $this->addExtraDebugInfos($infos);
+
+        return $infos;
+    }
+
+    protected function addExtraDebugInfos(&$infos): void
+    {
+        if ($this instanceof DateTimeInterface) {
+            try {
+                if (!isset($infos['date'])) {
+                    $infos['date'] = $this->format(CarbonInterface::MOCK_DATETIME_FORMAT);
+                }
+
+                if (!isset($infos['timezone'])) {
+                    $infos['timezone'] = $this->tzName;
+                }
+            } catch (Throwable $exception) {
+                // noop
+            }
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php
new file mode 100644
index 0000000..03d3fe6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Rounding.php
@@ -0,0 +1,238 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Traits;
+
+use Carbon\CarbonInterface;
+use Carbon\Exceptions\UnknownUnitException;
+
+/**
+ * Trait Rounding.
+ *
+ * Round, ceil, floor units.
+ *
+ * Depends on the following methods:
+ *
+ * @method static copy()
+ * @method static startOfWeek(int $weekStartsAt = null)
+ */
+trait Rounding
+{
+    use IntervalRounding;
+
+    /**
+     * Round the current instance at the given unit with given precision if specified and the given function.
+     *
+     * @param string    $unit
+     * @param float|int $precision
+     * @param string    $function
+     *
+     * @return CarbonInterface
+     */
+    public function roundUnit($unit, $precision = 1, $function = 'round')
+    {
+        $metaUnits = [
+            // @call roundUnit
+            'millennium' => [static::YEARS_PER_MILLENNIUM, 'year'],
+            // @call roundUnit
+            'century' => [static::YEARS_PER_CENTURY, 'year'],
+            // @call roundUnit
+            'decade' => [static::YEARS_PER_DECADE, 'year'],
+            // @call roundUnit
+            'quarter' => [static::MONTHS_PER_QUARTER, 'month'],
+            // @call roundUnit
+            'millisecond' => [1000, 'microsecond'],
+        ];
+        $normalizedUnit = static::singularUnit($unit);
+        $ranges = array_merge(static::getRangesByUnit(), [
+            // @call roundUnit
+            'microsecond' => [0, 999999],
+        ]);
+        $factor = 1;
+        $initialMonth = $this->month;
+
+        if ($normalizedUnit === 'week') {
+            $normalizedUnit = 'day';
+            $precision *= static::DAYS_PER_WEEK;
+        }
+
+        if (isset($metaUnits[$normalizedUnit])) {
+            [$factor, $normalizedUnit] = $metaUnits[$normalizedUnit];
+        }
+
+        $precision *= $factor;
+
+        if (!isset($ranges[$normalizedUnit])) {
+            throw new UnknownUnitException($unit);
+        }
+
+        $found = false;
+        $fraction = 0;
+        $arguments = null;
+        $factor = $this->year < 0 ? -1 : 1;
+        $changes = [];
+
+        foreach ($ranges as $unit => [$minimum, $maximum]) {
+            if ($normalizedUnit === $unit) {
+                $arguments = [$this->$unit, $minimum];
+                $fraction = $precision - floor($precision);
+                $found = true;
+
+                continue;
+            }
+
+            if ($found) {
+                $delta = $maximum + 1 - $minimum;
+                $factor /= $delta;
+                $fraction *= $delta;
+                $arguments[0] += $this->$unit * $factor;
+                $changes[$unit] = round(
+                    $minimum + ($fraction ? $fraction * $function(($this->$unit - $minimum) / $fraction) : 0)
+                );
+
+                // Cannot use modulo as it lose double precision
+                while ($changes[$unit] >= $delta) {
+                    $changes[$unit] -= $delta;
+                }
+
+                $fraction -= floor($fraction);
+            }
+        }
+
+        [$value, $minimum] = $arguments;
+        $normalizedValue = floor($function(($value - $minimum) / $precision) * $precision + $minimum);
+
+        /** @var CarbonInterface $result */
+        $result = $this->$normalizedUnit($normalizedValue);
+
+        foreach ($changes as $unit => $value) {
+            $result = $result->$unit($value);
+        }
+
+        return $normalizedUnit === 'month' && $precision <= 1 && abs($result->month - $initialMonth) === 2
+            // Re-run the change in case an overflow occurred
+            ? $result->$normalizedUnit($normalizedValue)
+            : $result;
+    }
+
+    /**
+     * Truncate the current instance at the given unit with given precision if specified.
+     *
+     * @param string    $unit
+     * @param float|int $precision
+     *
+     * @return CarbonInterface
+     */
+    public function floorUnit($unit, $precision = 1)
+    {
+        return $this->roundUnit($unit, $precision, 'floor');
+    }
+
+    /**
+     * Ceil the current instance at the given unit with given precision if specified.
+     *
+     * @param string    $unit
+     * @param float|int $precision
+     *
+     * @return CarbonInterface
+     */
+    public function ceilUnit($unit, $precision = 1)
+    {
+        return $this->roundUnit($unit, $precision, 'ceil');
+    }
+
+    /**
+     * Round the current instance second with given precision if specified.
+     *
+     * @param float|int|string|\DateInterval|null $precision
+     * @param string                              $function
+     *
+     * @return CarbonInterface
+     */
+    public function round($precision = 1, $function = 'round')
+    {
+        return $this->roundWith($precision, $function);
+    }
+
+    /**
+     * Round the current instance second with given precision if specified.
+     *
+     * @param float|int|string|\DateInterval|null $precision
+     *
+     * @return CarbonInterface
+     */
+    public function floor($precision = 1)
+    {
+        return $this->round($precision, 'floor');
+    }
+
+    /**
+     * Ceil the current instance second with given precision if specified.
+     *
+     * @param float|int|string|\DateInterval|null $precision
+     *
+     * @return CarbonInterface
+     */
+    public function ceil($precision = 1)
+    {
+        return $this->round($precision, 'ceil');
+    }
+
+    /**
+     * Round the current instance week.
+     *
+     * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week
+     *
+     * @return CarbonInterface
+     */
+    public function roundWeek($weekStartsAt = null)
+    {
+        return $this->closest(
+            $this->avoidMutation()->floorWeek($weekStartsAt),
+            $this->avoidMutation()->ceilWeek($weekStartsAt)
+        );
+    }
+
+    /**
+     * Truncate the current instance week.
+     *
+     * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week
+     *
+     * @return CarbonInterface
+     */
+    public function floorWeek($weekStartsAt = null)
+    {
+        return $this->startOfWeek($weekStartsAt);
+    }
+
+    /**
+     * Ceil the current instance week.
+     *
+     * @param int $weekStartsAt optional start allow you to specify the day of week to use to start the week
+     *
+     * @return CarbonInterface
+     */
+    public function ceilWeek($weekStartsAt = null)
+    {
+        if ($this->isMutable()) {
+            $startOfWeek = $this->avoidMutation()->startOfWeek($weekStartsAt);
+
+            return $startOfWeek != $this ?
+                $this->startOfWeek($weekStartsAt)->addWeek() :
+                $this;
+        }
+
+        $startOfWeek = $this->startOfWeek($weekStartsAt);
+
+        return $startOfWeek != $this ?
+            $startOfWeek->addWeek() :
+            $this->avoidMutation();
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Serialization.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Serialization.php
new file mode 100644
index 0000000..a27e4e3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Serialization.php
@@ -0,0 +1,237 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Traits;
+
+use Carbon\Exceptions\InvalidFormatException;
+use ReturnTypeWillChange;
+use Throwable;
+
+/**
+ * Trait Serialization.
+ *
+ * Serialization and JSON stuff.
+ *
+ * Depends on the following properties:
+ *
+ * @property int $year
+ * @property int $month
+ * @property int $daysInMonth
+ * @property int $quarter
+ *
+ * Depends on the following methods:
+ *
+ * @method string|static locale(string $locale = null, string ...$fallbackLocales)
+ * @method string        toJSON()
+ */
+trait Serialization
+{
+    use ObjectInitialisation;
+
+    /**
+     * The custom Carbon JSON serializer.
+     *
+     * @var callable|null
+     */
+    protected static $serializer;
+
+    /**
+     * List of key to use for dump/serialization.
+     *
+     * @var string[]
+     */
+    protected $dumpProperties = ['date', 'timezone_type', 'timezone'];
+
+    /**
+     * Locale to dump comes here before serialization.
+     *
+     * @var string|null
+     */
+    protected $dumpLocale;
+
+    /**
+     * Embed date properties to dump in a dedicated variables so it won't overlap native
+     * DateTime ones.
+     *
+     * @var array|null
+     */
+    protected $dumpDateProperties;
+
+    /**
+     * Return a serialized string of the instance.
+     *
+     * @return string
+     */
+    public function serialize()
+    {
+        return serialize($this);
+    }
+
+    /**
+     * Create an instance from a serialized string.
+     *
+     * @param string $value
+     *
+     * @throws InvalidFormatException
+     *
+     * @return static
+     */
+    public static function fromSerialized($value)
+    {
+        $instance = @unserialize((string) $value);
+
+        if (!$instance instanceof static) {
+            throw new InvalidFormatException("Invalid serialized value: $value");
+        }
+
+        return $instance;
+    }
+
+    /**
+     * The __set_state handler.
+     *
+     * @param string|array $dump
+     *
+     * @return static
+     */
+    #[ReturnTypeWillChange]
+    public static function __set_state($dump)
+    {
+        if (\is_string($dump)) {
+            return static::parse($dump);
+        }
+
+        /** @var \DateTimeInterface $date */
+        $date = get_parent_class(static::class) && method_exists(parent::class, '__set_state')
+            ? parent::__set_state((array) $dump)
+            : (object) $dump;
+
+        return static::instance($date);
+    }
+
+    /**
+     * Returns the list of properties to dump on serialize() called on.
+     *
+     * @return array
+     */
+    public function __sleep()
+    {
+        $properties = $this->getSleepProperties();
+
+        if ($this->localTranslator ?? null) {
+            $properties[] = 'dumpLocale';
+            $this->dumpLocale = $this->locale ?? null;
+        }
+
+        return $properties;
+    }
+
+    /**
+     * Set locale if specified on unserialize() called.
+     */
+    #[ReturnTypeWillChange]
+    public function __wakeup()
+    {
+        if (get_parent_class() && method_exists(parent::class, '__wakeup')) {
+            // @codeCoverageIgnoreStart
+            try {
+                parent::__wakeup();
+            } catch (Throwable $exception) {
+                // FatalError occurs when calling msgpack_unpack() in PHP 7.4 or later.
+                ['date' => $date, 'timezone' => $timezone] = $this->dumpDateProperties;
+                parent::__construct($date, unserialize($timezone));
+            }
+            // @codeCoverageIgnoreEnd
+        }
+
+        $this->constructedObjectId = spl_object_hash($this);
+
+        if (isset($this->dumpLocale)) {
+            $this->locale($this->dumpLocale);
+            $this->dumpLocale = null;
+        }
+
+        $this->cleanupDumpProperties();
+    }
+
+    /**
+     * Prepare the object for JSON serialization.
+     *
+     * @return array|string
+     */
+    #[ReturnTypeWillChange]
+    public function jsonSerialize()
+    {
+        $serializer = $this->localSerializer ?? static::$serializer;
+
+        if ($serializer) {
+            return \is_string($serializer)
+                ? $this->rawFormat($serializer)
+                : $serializer($this);
+        }
+
+        return $this->toJSON();
+    }
+
+    /**
+     * @deprecated To avoid conflict between different third-party libraries, static setters should not be used.
+     *             You should rather transform Carbon object before the serialization.
+     *
+     * JSON serialize all Carbon instances using the given callback.
+     *
+     * @param callable $callback
+     *
+     * @return void
+     */
+    public static function serializeUsing($callback)
+    {
+        static::$serializer = $callback;
+    }
+
+    /**
+     * Cleanup properties attached to the public scope of DateTime when a dump of the date is requested.
+     * foreach ($date as $_) {}
+     * serializer($date)
+     * var_export($date)
+     * get_object_vars($date)
+     */
+    public function cleanupDumpProperties()
+    {
+        foreach ($this->dumpProperties as $property) {
+            if (isset($this->$property)) {
+                unset($this->$property);
+            }
+        }
+
+        return $this;
+    }
+
+    private function getSleepProperties(): array
+    {
+        $properties = $this->dumpProperties;
+
+        // @codeCoverageIgnoreStart
+        if (!\extension_loaded('msgpack')) {
+            return $properties;
+        }
+
+        if (isset($this->constructedObjectId)) {
+            $this->dumpDateProperties = [
+                'date' => $this->format('Y-m-d H:i:s.u'),
+                'timezone' => serialize($this->timezone ?? null),
+            ];
+
+            $properties[] = 'dumpDateProperties';
+        }
+
+        return $properties;
+        // @codeCoverageIgnoreEnd
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Test.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Test.php
new file mode 100644
index 0000000..d998974
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Test.php
@@ -0,0 +1,157 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Traits;
+
+use Closure;
+use DateTimeImmutable;
+
+trait Test
+{
+    ///////////////////////////////////////////////////////////////////
+    ///////////////////////// TESTING AIDS ////////////////////////////
+    ///////////////////////////////////////////////////////////////////
+
+    /**
+     * A test Carbon instance to be returned when now instances are created.
+     *
+     * @var static
+     */
+    protected static $testNow;
+
+    /**
+     * Set a Carbon instance (real or mock) to be returned when a "now"
+     * instance is created.  The provided instance will be returned
+     * specifically under the following conditions:
+     *   - A call to the static now() method, ex. Carbon::now()
+     *   - When a null (or blank string) is passed to the constructor or parse(), ex. new Carbon(null)
+     *   - When the string "now" is passed to the constructor or parse(), ex. new Carbon('now')
+     *   - When a string containing the desired time is passed to Carbon::parse().
+     *
+     * Note the timezone parameter was left out of the examples above and
+     * has no affect as the mock value will be returned regardless of its value.
+     *
+     * To clear the test instance call this method using the default
+     * parameter of null.
+     *
+     * /!\ Use this method for unit tests only.
+     *
+     * @param Closure|static|string|false|null $testNow real or mock Carbon instance
+     */
+    public static function setTestNow($testNow = null)
+    {
+        if ($testNow === false) {
+            $testNow = null;
+        }
+
+        static::$testNow = \is_string($testNow) ? static::parse($testNow) : $testNow;
+    }
+
+    /**
+     * Temporarily sets a static date to be used within the callback.
+     * Using setTestNow to set the date, executing the callback, then
+     * clearing the test instance.
+     *
+     * /!\ Use this method for unit tests only.
+     *
+     * @param Closure|static|string|false|null $testNow real or mock Carbon instance
+     * @param Closure|null $callback
+     *
+     * @return mixed
+     */
+    public static function withTestNow($testNow = null, $callback = null)
+    {
+        static::setTestNow($testNow);
+        $result = $callback();
+        static::setTestNow();
+
+        return $result;
+    }
+
+    /**
+     * Get the Carbon instance (real or mock) to be returned when a "now"
+     * instance is created.
+     *
+     * @return Closure|static the current instance used for testing
+     */
+    public static function getTestNow()
+    {
+        return static::$testNow;
+    }
+
+    /**
+     * Determine if there is a valid test instance set. A valid test instance
+     * is anything that is not null.
+     *
+     * @return bool true if there is a test instance, otherwise false
+     */
+    public static function hasTestNow()
+    {
+        return static::getTestNow() !== null;
+    }
+
+    /**
+     * Return the given timezone and set it to the test instance if not null.
+     * If null, get the timezone from the test instance and return it.
+     *
+     * @param string|\DateTimeZone    $tz
+     * @param \Carbon\CarbonInterface $testInstance
+     *
+     * @return string|\DateTimeZone
+     */
+    protected static function handleMockTimezone($tz, &$testInstance)
+    {
+        //shift the time according to the given time zone
+        if ($tz !== null && $tz !== static::getMockedTestNow($tz)->getTimezone()) {
+            $testInstance = $testInstance->setTimezone($tz);
+
+            return $tz;
+        }
+
+        return $testInstance->getTimezone();
+    }
+
+    /**
+     * Get the mocked date passed in setTestNow() and if it's a Closure, execute it.
+     *
+     * @param string|\DateTimeZone $tz
+     *
+     * @return \Carbon\CarbonImmutable|\Carbon\Carbon|null
+     */
+    protected static function getMockedTestNow($tz)
+    {
+        $testNow = static::getTestNow();
+
+        if ($testNow instanceof Closure) {
+            $realNow = new DateTimeImmutable('now');
+            $testNow = $testNow(static::parse(
+                $realNow->format('Y-m-d H:i:s.u'),
+                $tz ?: $realNow->getTimezone()
+            ));
+        }
+        /* @var \Carbon\CarbonImmutable|\Carbon\Carbon|null $testNow */
+
+        return $testNow;
+    }
+
+    protected static function mockConstructorParameters(&$time, &$tz)
+    {
+        /** @var \Carbon\CarbonImmutable|\Carbon\Carbon $testInstance */
+        $testInstance = clone static::getMockedTestNow($tz);
+
+        $tz = static::handleMockTimezone($tz, $testInstance);
+
+        if (static::hasRelativeKeywords($time)) {
+            $testInstance = $testInstance->modify($time);
+        }
+
+        $time = $testInstance instanceof self ? $testInstance->rawFormat(static::MOCK_DATETIME_FORMAT) : $testInstance->format(static::MOCK_DATETIME_FORMAT);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php
new file mode 100644
index 0000000..35d45aa
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Timestamp.php
@@ -0,0 +1,197 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Traits;
+
+/**
+ * Trait Timestamp.
+ */
+trait Timestamp
+{
+    /**
+     * Create a Carbon instance from a timestamp and set the timezone (use default one if not specified).
+     *
+     * Timestamp input can be given as int, float or a string containing one or more numbers.
+     *
+     * @param float|int|string          $timestamp
+     * @param \DateTimeZone|string|null $tz
+     *
+     * @return static
+     */
+    public static function createFromTimestamp($timestamp, $tz = null)
+    {
+        return static::createFromTimestampUTC($timestamp)->setTimezone($tz);
+    }
+
+    /**
+     * Create a Carbon instance from an timestamp keeping the timezone to UTC.
+     *
+     * Timestamp input can be given as int, float or a string containing one or more numbers.
+     *
+     * @param float|int|string $timestamp
+     *
+     * @return static
+     */
+    public static function createFromTimestampUTC($timestamp)
+    {
+        [$integer, $decimal] = self::getIntegerAndDecimalParts($timestamp);
+        $delta = floor($decimal / static::MICROSECONDS_PER_SECOND);
+        $integer += $delta;
+        $decimal -= $delta * static::MICROSECONDS_PER_SECOND;
+        $decimal = str_pad((string) $decimal, 6, '0', STR_PAD_LEFT);
+
+        return static::rawCreateFromFormat('U u', "$integer $decimal");
+    }
+
+    /**
+     * Create a Carbon instance from a timestamp in milliseconds.
+     *
+     * Timestamp input can be given as int, float or a string containing one or more numbers.
+     *
+     * @param float|int|string $timestamp
+     *
+     * @return static
+     */
+    public static function createFromTimestampMsUTC($timestamp)
+    {
+        [$milliseconds, $microseconds] = self::getIntegerAndDecimalParts($timestamp, 3);
+        $sign = $milliseconds < 0 || $milliseconds === 0.0 && $microseconds < 0 ? -1 : 1;
+        $milliseconds = abs($milliseconds);
+        $microseconds = $sign * abs($microseconds) + static::MICROSECONDS_PER_MILLISECOND * ($milliseconds % static::MILLISECONDS_PER_SECOND);
+        $seconds = $sign * floor($milliseconds / static::MILLISECONDS_PER_SECOND);
+        $delta = floor($microseconds / static::MICROSECONDS_PER_SECOND);
+        $seconds += $delta;
+        $microseconds -= $delta * static::MICROSECONDS_PER_SECOND;
+        $microseconds = str_pad($microseconds, 6, '0', STR_PAD_LEFT);
+
+        return static::rawCreateFromFormat('U u', "$seconds $microseconds");
+    }
+
+    /**
+     * Create a Carbon instance from a timestamp in milliseconds.
+     *
+     * Timestamp input can be given as int, float or a string containing one or more numbers.
+     *
+     * @param float|int|string          $timestamp
+     * @param \DateTimeZone|string|null $tz
+     *
+     * @return static
+     */
+    public static function createFromTimestampMs($timestamp, $tz = null)
+    {
+        return static::createFromTimestampMsUTC($timestamp)
+            ->setTimezone($tz);
+    }
+
+    /**
+     * Set the instance's timestamp.
+     *
+     * Timestamp input can be given as int, float or a string containing one or more numbers.
+     *
+     * @param float|int|string $unixTimestamp
+     *
+     * @return static
+     */
+    public function timestamp($unixTimestamp)
+    {
+        return $this->setTimestamp($unixTimestamp);
+    }
+
+    /**
+     * Returns a timestamp rounded with the given precision (6 by default).
+     *
+     * @example getPreciseTimestamp()   1532087464437474 (microsecond maximum precision)
+     * @example getPreciseTimestamp(6)  1532087464437474
+     * @example getPreciseTimestamp(5)  153208746443747  (1/100000 second precision)
+     * @example getPreciseTimestamp(4)  15320874644375   (1/10000 second precision)
+     * @example getPreciseTimestamp(3)  1532087464437    (millisecond precision)
+     * @example getPreciseTimestamp(2)  153208746444     (1/100 second precision)
+     * @example getPreciseTimestamp(1)  15320874644      (1/10 second precision)
+     * @example getPreciseTimestamp(0)  1532087464       (second precision)
+     * @example getPreciseTimestamp(-1) 153208746        (10 second precision)
+     * @example getPreciseTimestamp(-2) 15320875         (100 second precision)
+     *
+     * @param int $precision
+     *
+     * @return float
+     */
+    public function getPreciseTimestamp($precision = 6)
+    {
+        return round($this->rawFormat('Uu') / pow(10, 6 - $precision));
+    }
+
+    /**
+     * Returns the milliseconds timestamps used amongst other by Date javascript objects.
+     *
+     * @return float
+     */
+    public function valueOf()
+    {
+        return $this->getPreciseTimestamp(3);
+    }
+
+    /**
+     * Returns the timestamp with millisecond precision.
+     *
+     * @return int
+     */
+    public function getTimestampMs()
+    {
+        return (int) $this->getPreciseTimestamp(3);
+    }
+
+    /**
+     * @alias getTimestamp
+     *
+     * Returns the UNIX timestamp for the current date.
+     *
+     * @return int
+     */
+    public function unix()
+    {
+        return $this->getTimestamp();
+    }
+
+    /**
+     * Return an array with integer part digits and decimals digits split from one or more positive numbers
+     * (such as timestamps) as string with the given number of decimals (6 by default).
+     *
+     * By splitting integer and decimal, this method obtain a better precision than
+     * number_format when the input is a string.
+     *
+     * @param float|int|string $numbers  one or more numbers
+     * @param int              $decimals number of decimals precision (6 by default)
+     *
+     * @return array 0-index is integer part, 1-index is decimal part digits
+     */
+    private static function getIntegerAndDecimalParts($numbers, $decimals = 6)
+    {
+        if (\is_int($numbers) || \is_float($numbers)) {
+            $numbers = number_format($numbers, $decimals, '.', '');
+        }
+
+        $sign = str_starts_with($numbers, '-') ? -1 : 1;
+        $integer = 0;
+        $decimal = 0;
+
+        foreach (preg_split('`[^0-9.]+`', $numbers) as $chunk) {
+            [$integerPart, $decimalPart] = explode('.', "$chunk.");
+
+            $integer += (int) $integerPart;
+            $decimal += (float) ("0.$decimalPart");
+        }
+
+        $overflow = floor($decimal);
+        $integer += $overflow;
+        $decimal -= $overflow;
+
+        return [$sign * $integer, $decimal === 0.0 ? 0.0 : $sign * round($decimal * pow(10, $decimals))];
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Units.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Units.php
new file mode 100644
index 0000000..aec85ab
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Units.php
@@ -0,0 +1,417 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Traits;
+
+use Carbon\CarbonConverterInterface;
+use Carbon\CarbonInterface;
+use Carbon\CarbonInterval;
+use Carbon\Exceptions\UnitException;
+use Closure;
+use DateInterval;
+use ReturnTypeWillChange;
+
+/**
+ * Trait Units.
+ *
+ * Add, subtract and set units.
+ */
+trait Units
+{
+    /**
+     * Add seconds to the instance using timestamp. Positive $value travels
+     * forward while negative $value travels into the past.
+     *
+     * @param string $unit
+     * @param int    $value
+     *
+     * @return static
+     */
+    public function addRealUnit($unit, $value = 1)
+    {
+        switch ($unit) {
+            // @call addRealUnit
+            case 'micro':
+
+            // @call addRealUnit
+            case 'microsecond':
+                /* @var CarbonInterface $this */
+                $diff = $this->microsecond + $value;
+                $time = $this->getTimestamp();
+                $seconds = (int) floor($diff / static::MICROSECONDS_PER_SECOND);
+                $time += $seconds;
+                $diff -= $seconds * static::MICROSECONDS_PER_SECOND;
+                $microtime = str_pad((string) $diff, 6, '0', STR_PAD_LEFT);
+                $tz = $this->tz;
+
+                return $this->tz('UTC')->modify("@$time.$microtime")->tz($tz);
+
+            // @call addRealUnit
+            case 'milli':
+            // @call addRealUnit
+            case 'millisecond':
+                return $this->addRealUnit('microsecond', $value * static::MICROSECONDS_PER_MILLISECOND);
+
+                break;
+
+            // @call addRealUnit
+            case 'second':
+                break;
+
+            // @call addRealUnit
+            case 'minute':
+                $value *= static::SECONDS_PER_MINUTE;
+
+                break;
+
+            // @call addRealUnit
+            case 'hour':
+                $value *= static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;
+
+                break;
+
+            // @call addRealUnit
+            case 'day':
+                $value *= static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;
+
+                break;
+
+            // @call addRealUnit
+            case 'week':
+                $value *= static::DAYS_PER_WEEK * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;
+
+                break;
+
+            // @call addRealUnit
+            case 'month':
+                $value *= 30 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;
+
+                break;
+
+            // @call addRealUnit
+            case 'quarter':
+                $value *= static::MONTHS_PER_QUARTER * 30 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;
+
+                break;
+
+            // @call addRealUnit
+            case 'year':
+                $value *= 365 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;
+
+                break;
+
+            // @call addRealUnit
+            case 'decade':
+                $value *= static::YEARS_PER_DECADE * 365 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;
+
+                break;
+
+            // @call addRealUnit
+            case 'century':
+                $value *= static::YEARS_PER_CENTURY * 365 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;
+
+                break;
+
+            // @call addRealUnit
+            case 'millennium':
+                $value *= static::YEARS_PER_MILLENNIUM * 365 * static::HOURS_PER_DAY * static::MINUTES_PER_HOUR * static::SECONDS_PER_MINUTE;
+
+                break;
+
+            default:
+                if ($this->localStrictModeEnabled ?? static::isStrictModeEnabled()) {
+                    throw new UnitException("Invalid unit for real timestamp add/sub: '$unit'");
+                }
+
+                return $this;
+        }
+
+        /* @var CarbonInterface $this */
+        return $this->setTimestamp((int) ($this->getTimestamp() + $value));
+    }
+
+    public function subRealUnit($unit, $value = 1)
+    {
+        return $this->addRealUnit($unit, -$value);
+    }
+
+    /**
+     * Returns true if a property can be changed via setter.
+     *
+     * @param string $unit
+     *
+     * @return bool
+     */
+    public static function isModifiableUnit($unit)
+    {
+        static $modifiableUnits = [
+            // @call addUnit
+            'millennium',
+            // @call addUnit
+            'century',
+            // @call addUnit
+            'decade',
+            // @call addUnit
+            'quarter',
+            // @call addUnit
+            'week',
+            // @call addUnit
+            'weekday',
+        ];
+
+        return \in_array($unit, $modifiableUnits) || \in_array($unit, static::$units);
+    }
+
+    /**
+     * Call native PHP DateTime/DateTimeImmutable add() method.
+     *
+     * @param DateInterval $interval
+     *
+     * @return static
+     */
+    public function rawAdd(DateInterval $interval)
+    {
+        return parent::add($interval);
+    }
+
+    /**
+     * Add given units or interval to the current instance.
+     *
+     * @example $date->add('hour', 3)
+     * @example $date->add(15, 'days')
+     * @example $date->add(CarbonInterval::days(4))
+     *
+     * @param string|DateInterval|Closure|CarbonConverterInterface $unit
+     * @param int                                                  $value
+     * @param bool|null                                            $overflow
+     *
+     * @return static
+     */
+    #[ReturnTypeWillChange]
+    public function add($unit, $value = 1, $overflow = null)
+    {
+        if (\is_string($unit) && \func_num_args() === 1) {
+            $unit = CarbonInterval::make($unit);
+        }
+
+        // Can be removed if https://bugs.php.net/bug.php?id=81106
+        // is fixed
+        // @codeCoverageIgnoreStart
+        if (
+            $unit instanceof DateInterval &&
+            version_compare(PHP_VERSION, '8.1.0-dev', '>=') &&
+            ($unit->f < 0 || $unit->f >= 1)
+        ) {
+            $unit = clone $unit;
+            $seconds = floor($unit->f);
+            $unit->f -= $seconds;
+            $unit->s += (int) $seconds;
+        }
+        // @codeCoverageIgnoreEnd
+
+        if ($unit instanceof CarbonConverterInterface) {
+            return $this->resolveCarbon($unit->convertDate($this, false));
+        }
+
+        if ($unit instanceof Closure) {
+            return $this->resolveCarbon($unit($this, false));
+        }
+
+        if ($unit instanceof DateInterval) {
+            return parent::add($unit);
+        }
+
+        if (is_numeric($unit)) {
+            [$value, $unit] = [$unit, $value];
+        }
+
+        return $this->addUnit($unit, $value, $overflow);
+    }
+
+    /**
+     * Add given units to the current instance.
+     *
+     * @param string    $unit
+     * @param int       $value
+     * @param bool|null $overflow
+     *
+     * @return static
+     */
+    public function addUnit($unit, $value = 1, $overflow = null)
+    {
+        $date = $this;
+
+        if (!is_numeric($value) || !(float) $value) {
+            return $date->isMutable() ? $date : $date->avoidMutation();
+        }
+
+        $metaUnits = [
+            'millennium' => [static::YEARS_PER_MILLENNIUM, 'year'],
+            'century' => [static::YEARS_PER_CENTURY, 'year'],
+            'decade' => [static::YEARS_PER_DECADE, 'year'],
+            'quarter' => [static::MONTHS_PER_QUARTER, 'month'],
+        ];
+
+        if (isset($metaUnits[$unit])) {
+            [$factor, $unit] = $metaUnits[$unit];
+            $value *= $factor;
+        }
+
+        if ($unit === 'weekday') {
+            $weekendDays = static::getWeekendDays();
+
+            if ($weekendDays !== [static::SATURDAY, static::SUNDAY]) {
+                $absoluteValue = abs($value);
+                $sign = $value / max(1, $absoluteValue);
+                $weekDaysCount = 7 - min(6, \count(array_unique($weekendDays)));
+                $weeks = floor($absoluteValue / $weekDaysCount);
+
+                for ($diff = $absoluteValue % $weekDaysCount; $diff; $diff--) {
+                    /** @var static $date */
+                    $date = $date->addDays($sign);
+
+                    while (\in_array($date->dayOfWeek, $weekendDays)) {
+                        $date = $date->addDays($sign);
+                    }
+                }
+
+                $value = $weeks * $sign;
+                $unit = 'week';
+            }
+
+            $timeString = $date->toTimeString();
+        } elseif ($canOverflow = \in_array($unit, [
+                'month',
+                'year',
+            ]) && ($overflow === false || (
+                $overflow === null &&
+                ($ucUnit = ucfirst($unit).'s') &&
+                !($this->{'local'.$ucUnit.'Overflow'} ?? static::{'shouldOverflow'.$ucUnit}())
+            ))) {
+            $day = $date->day;
+        }
+
+        $value = (int) $value;
+
+        if ($unit === 'milli' || $unit === 'millisecond') {
+            $unit = 'microsecond';
+            $value *= static::MICROSECONDS_PER_MILLISECOND;
+        }
+
+        // Work-around for bug https://bugs.php.net/bug.php?id=75642
+        if ($unit === 'micro' || $unit === 'microsecond') {
+            $microseconds = $this->micro + $value;
+            $second = (int) floor($microseconds / static::MICROSECONDS_PER_SECOND);
+            $microseconds %= static::MICROSECONDS_PER_SECOND;
+            if ($microseconds < 0) {
+                $microseconds += static::MICROSECONDS_PER_SECOND;
+            }
+            $date = $date->microseconds($microseconds);
+            $unit = 'second';
+            $value = $second;
+        }
+        $date = $date->modify("$value $unit");
+
+        if (isset($timeString)) {
+            return $date->setTimeFromTimeString($timeString);
+        }
+
+        if (isset($canOverflow, $day) && $canOverflow && $day !== $date->day) {
+            $date = $date->modify('last day of previous month');
+        }
+
+        return $date;
+    }
+
+    /**
+     * Subtract given units to the current instance.
+     *
+     * @param string    $unit
+     * @param int       $value
+     * @param bool|null $overflow
+     *
+     * @return static
+     */
+    public function subUnit($unit, $value = 1, $overflow = null)
+    {
+        return $this->addUnit($unit, -$value, $overflow);
+    }
+
+    /**
+     * Call native PHP DateTime/DateTimeImmutable sub() method.
+     *
+     * @param DateInterval $interval
+     *
+     * @return static
+     */
+    public function rawSub(DateInterval $interval)
+    {
+        return parent::sub($interval);
+    }
+
+    /**
+     * Subtract given units or interval to the current instance.
+     *
+     * @example $date->sub('hour', 3)
+     * @example $date->sub(15, 'days')
+     * @example $date->sub(CarbonInterval::days(4))
+     *
+     * @param string|DateInterval|Closure|CarbonConverterInterface $unit
+     * @param int                                                  $value
+     * @param bool|null                                            $overflow
+     *
+     * @return static
+     */
+    #[ReturnTypeWillChange]
+    public function sub($unit, $value = 1, $overflow = null)
+    {
+        if (\is_string($unit) && \func_num_args() === 1) {
+            $unit = CarbonInterval::make($unit);
+        }
+
+        if ($unit instanceof CarbonConverterInterface) {
+            return $this->resolveCarbon($unit->convertDate($this, true));
+        }
+
+        if ($unit instanceof Closure) {
+            return $this->resolveCarbon($unit($this, true));
+        }
+
+        if ($unit instanceof DateInterval) {
+            return parent::sub($unit);
+        }
+
+        if (is_numeric($unit)) {
+            [$value, $unit] = [$unit, $value];
+        }
+
+        return $this->addUnit($unit, -(float) $value, $overflow);
+    }
+
+    /**
+     * Subtract given units or interval to the current instance.
+     *
+     * @see sub()
+     *
+     * @param string|DateInterval $unit
+     * @param int                 $value
+     * @param bool|null           $overflow
+     *
+     * @return static
+     */
+    public function subtract($unit, $value = 1, $overflow = null)
+    {
+        if (\is_string($unit) && \func_num_args() === 1) {
+            $unit = CarbonInterval::make($unit);
+        }
+
+        return $this->sub($unit, $value, $overflow);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Week.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Week.php
new file mode 100644
index 0000000..64cece7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Traits/Week.php
@@ -0,0 +1,218 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon\Traits;
+
+/**
+ * Trait Week.
+ *
+ * week and ISO week number, year and count in year.
+ *
+ * Depends on the following properties:
+ *
+ * @property int $daysInYear
+ * @property int $dayOfWeek
+ * @property int $dayOfYear
+ * @property int $year
+ *
+ * Depends on the following methods:
+ *
+ * @method static addWeeks(int $weeks = 1)
+ * @method static copy()
+ * @method static dayOfYear(int $dayOfYear)
+ * @method string getTranslationMessage(string $key, ?string $locale = null, ?string $default = null, $translator = null)
+ * @method static next(int|string $day = null)
+ * @method static startOfWeek(int $day = 1)
+ * @method static subWeeks(int $weeks = 1)
+ * @method static year(int $year = null)
+ */
+trait Week
+{
+    /**
+     * Set/get the week number of year using given first day of week and first
+     * day of year included in the first week. Or use ISO format if no settings
+     * given.
+     *
+     * @param int|null $year      if null, act as a getter, if not null, set the year and return current instance.
+     * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday)
+     * @param int|null $dayOfYear first day of year included in the week #1
+     *
+     * @return int|static
+     */
+    public function isoWeekYear($year = null, $dayOfWeek = null, $dayOfYear = null)
+    {
+        return $this->weekYear(
+            $year,
+            $dayOfWeek ?? 1,
+            $dayOfYear ?? 4
+        );
+    }
+
+    /**
+     * Set/get the week number of year using given first day of week and first
+     * day of year included in the first week. Or use US format if no settings
+     * given (Sunday / Jan 6).
+     *
+     * @param int|null $year      if null, act as a getter, if not null, set the year and return current instance.
+     * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday)
+     * @param int|null $dayOfYear first day of year included in the week #1
+     *
+     * @return int|static
+     */
+    public function weekYear($year = null, $dayOfWeek = null, $dayOfYear = null)
+    {
+        $dayOfWeek = $dayOfWeek ?? $this->getTranslationMessage('first_day_of_week') ?? 0;
+        $dayOfYear = $dayOfYear ?? $this->getTranslationMessage('day_of_first_week_of_year') ?? 1;
+
+        if ($year !== null) {
+            $year = (int) round($year);
+
+            if ($this->weekYear(null, $dayOfWeek, $dayOfYear) === $year) {
+                return $this->avoidMutation();
+            }
+
+            $week = $this->week(null, $dayOfWeek, $dayOfYear);
+            $day = $this->dayOfWeek;
+            $date = $this->year($year);
+            switch ($date->weekYear(null, $dayOfWeek, $dayOfYear) - $year) {
+                case 1:
+                    $date = $date->subWeeks(26);
+
+                    break;
+                case -1:
+                    $date = $date->addWeeks(26);
+
+                    break;
+            }
+
+            $date = $date->addWeeks($week - $date->week(null, $dayOfWeek, $dayOfYear))->startOfWeek($dayOfWeek);
+
+            if ($date->dayOfWeek === $day) {
+                return $date;
+            }
+
+            return $date->next($day);
+        }
+
+        $year = $this->year;
+        $day = $this->dayOfYear;
+        $date = $this->avoidMutation()->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek);
+
+        if ($date->year === $year && $day < $date->dayOfYear) {
+            return $year - 1;
+        }
+
+        $date = $this->avoidMutation()->addYear()->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek);
+
+        if ($date->year === $year && $day >= $date->dayOfYear) {
+            return $year + 1;
+        }
+
+        return $year;
+    }
+
+    /**
+     * Get the number of weeks of the current week-year using given first day of week and first
+     * day of year included in the first week. Or use ISO format if no settings
+     * given.
+     *
+     * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday)
+     * @param int|null $dayOfYear first day of year included in the week #1
+     *
+     * @return int
+     */
+    public function isoWeeksInYear($dayOfWeek = null, $dayOfYear = null)
+    {
+        return $this->weeksInYear(
+            $dayOfWeek ?? 1,
+            $dayOfYear ?? 4
+        );
+    }
+
+    /**
+     * Get the number of weeks of the current week-year using given first day of week and first
+     * day of year included in the first week. Or use US format if no settings
+     * given (Sunday / Jan 6).
+     *
+     * @param int|null $dayOfWeek first date of week from 0 (Sunday) to 6 (Saturday)
+     * @param int|null $dayOfYear first day of year included in the week #1
+     *
+     * @return int
+     */
+    public function weeksInYear($dayOfWeek = null, $dayOfYear = null)
+    {
+        $dayOfWeek = $dayOfWeek ?? $this->getTranslationMessage('first_day_of_week') ?? 0;
+        $dayOfYear = $dayOfYear ?? $this->getTranslationMessage('day_of_first_week_of_year') ?? 1;
+        $year = $this->year;
+        $start = $this->avoidMutation()->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek);
+        $startDay = $start->dayOfYear;
+        if ($start->year !== $year) {
+            $startDay -= $start->daysInYear;
+        }
+        $end = $this->avoidMutation()->addYear()->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek);
+        $endDay = $end->dayOfYear;
+        if ($end->year !== $year) {
+            $endDay += $this->daysInYear;
+        }
+
+        return (int) round(($endDay - $startDay) / 7);
+    }
+
+    /**
+     * Get/set the week number using given first day of week and first
+     * day of year included in the first week. Or use US format if no settings
+     * given (Sunday / Jan 6).
+     *
+     * @param int|null $week
+     * @param int|null $dayOfWeek
+     * @param int|null $dayOfYear
+     *
+     * @return int|static
+     */
+    public function week($week = null, $dayOfWeek = null, $dayOfYear = null)
+    {
+        $date = $this;
+        $dayOfWeek = $dayOfWeek ?? $this->getTranslationMessage('first_day_of_week') ?? 0;
+        $dayOfYear = $dayOfYear ?? $this->getTranslationMessage('day_of_first_week_of_year') ?? 1;
+
+        if ($week !== null) {
+            return $date->addWeeks(round($week) - $this->week(null, $dayOfWeek, $dayOfYear));
+        }
+
+        $start = $date->avoidMutation()->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek);
+        $end = $date->avoidMutation()->startOfWeek($dayOfWeek);
+        if ($start > $end) {
+            $start = $start->subWeeks(26)->dayOfYear($dayOfYear)->startOfWeek($dayOfWeek);
+        }
+        $week = (int) ($start->diffInDays($end) / 7 + 1);
+
+        return $week > $end->weeksInYear($dayOfWeek, $dayOfYear) ? 1 : $week;
+    }
+
+    /**
+     * Get/set the week number using given first day of week and first
+     * day of year included in the first week. Or use ISO format if no settings
+     * given.
+     *
+     * @param int|null $week
+     * @param int|null $dayOfWeek
+     * @param int|null $dayOfYear
+     *
+     * @return int|static
+     */
+    public function isoWeek($week = null, $dayOfWeek = null, $dayOfYear = null)
+    {
+        return $this->week(
+            $week,
+            $dayOfWeek ?? 1,
+            $dayOfYear ?? 4
+        );
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Translator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Translator.php
new file mode 100644
index 0000000..9af48eb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/nesbot/carbon/src/Carbon/Translator.php
@@ -0,0 +1,403 @@
+<?php
+
+/**
+ * This file is part of the Carbon package.
+ *
+ * (c) Brian Nesbitt <brian@nesbot.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace Carbon;
+
+use Closure;
+use ReflectionException;
+use ReflectionFunction;
+use Symfony\Component\Translation;
+
+class Translator extends Translation\Translator
+{
+    /**
+     * Translator singletons for each language.
+     *
+     * @var array
+     */
+    protected static $singletons = [];
+
+    /**
+     * List of custom localized messages.
+     *
+     * @var array
+     */
+    protected $messages = [];
+
+    /**
+     * List of custom directories that contain translation files.
+     *
+     * @var string[]
+     */
+    protected $directories = [];
+
+    /**
+     * Set to true while constructing.
+     *
+     * @var bool
+     */
+    protected $initializing = false;
+
+    /**
+     * List of locales aliases.
+     *
+     * @var string[]
+     */
+    protected $aliases = [
+        'me' => 'sr_Latn_ME',
+        'scr' => 'sh',
+    ];
+
+    /**
+     * Return a singleton instance of Translator.
+     *
+     * @param string|null $locale optional initial locale ("en" - english by default)
+     *
+     * @return static
+     */
+    public static function get($locale = null)
+    {
+        $locale = $locale ?: 'en';
+
+        if (!isset(static::$singletons[$locale])) {
+            static::$singletons[$locale] = new static($locale ?: 'en');
+        }
+
+        return static::$singletons[$locale];
+    }
+
+    public function __construct($locale, Translation\Formatter\MessageFormatterInterface $formatter = null, $cacheDir = null, $debug = false)
+    {
+        $this->initializing = true;
+        $this->directories = [__DIR__.'/Lang'];
+        $this->addLoader('array', new Translation\Loader\ArrayLoader());
+        parent::__construct($locale, $formatter, $cacheDir, $debug);
+        $this->initializing = false;
+    }
+
+    /**
+     * Returns the list of directories translation files are searched in.
+     *
+     * @return array
+     */
+    public function getDirectories(): array
+    {
+        return $this->directories;
+    }
+
+    /**
+     * Set list of directories translation files are searched in.
+     *
+     * @param array $directories new directories list
+     *
+     * @return $this
+     */
+    public function setDirectories(array $directories)
+    {
+        $this->directories = $directories;
+
+        return $this;
+    }
+
+    /**
+     * Add a directory to the list translation files are searched in.
+     *
+     * @param string $directory new directory
+     *
+     * @return $this
+     */
+    public function addDirectory(string $directory)
+    {
+        $this->directories[] = $directory;
+
+        return $this;
+    }
+
+    /**
+     * Remove a directory from the list translation files are searched in.
+     *
+     * @param string $directory directory path
+     *
+     * @return $this
+     */
+    public function removeDirectory(string $directory)
+    {
+        $search = rtrim(strtr($directory, '\\', '/'), '/');
+
+        return $this->setDirectories(array_filter($this->getDirectories(), function ($item) use ($search) {
+            return rtrim(strtr($item, '\\', '/'), '/') !== $search;
+        }));
+    }
+
+    /**
+     * Returns the translation.
+     *
+     * @param string $id
+     * @param array  $parameters
+     * @param string $domain
+     * @param string $locale
+     *
+     * @return string
+     */
+    public function trans($id, array $parameters = [], $domain = null, $locale = null)
+    {
+        if ($domain === null) {
+            $domain = 'messages';
+        }
+
+        $format = $this->getCatalogue($locale)->get((string) $id, $domain);
+
+        if ($format instanceof Closure) {
+            // @codeCoverageIgnoreStart
+            try {
+                $count = (new ReflectionFunction($format))->getNumberOfRequiredParameters();
+            } catch (ReflectionException $exception) {
+                $count = 0;
+            }
+            // @codeCoverageIgnoreEnd
+
+            return $format(
+                ...array_values($parameters),
+                ...array_fill(0, max(0, $count - \count($parameters)), null)
+            );
+        }
+
+        return parent::trans($id, $parameters, $domain, $locale);
+    }
+
+    /**
+     * Reset messages of a locale (all locale if no locale passed).
+     * Remove custom messages and reload initial messages from matching
+     * file in Lang directory.
+     *
+     * @param string|null $locale
+     *
+     * @return bool
+     */
+    public function resetMessages($locale = null)
+    {
+        if ($locale === null) {
+            $this->messages = [];
+
+            return true;
+        }
+
+        foreach ($this->getDirectories() as $directory) {
+            $data = @include sprintf('%s/%s.php', rtrim($directory, '\\/'), $locale);
+
+            if ($data !== false) {
+                $this->messages[$locale] = $data;
+                $this->addResource('array', $this->messages[$locale], $locale);
+
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * Returns the list of files matching a given locale prefix (or all if empty).
+     *
+     * @param string $prefix prefix required to filter result
+     *
+     * @return array
+     */
+    public function getLocalesFiles($prefix = '')
+    {
+        $files = [];
+
+        foreach ($this->getDirectories() as $directory) {
+            $directory = rtrim($directory, '\\/');
+
+            foreach (glob("$directory/$prefix*.php") as $file) {
+                $files[] = $file;
+            }
+        }
+
+        return array_unique($files);
+    }
+
+    /**
+     * Returns the list of internally available locales and already loaded custom locales.
+     * (It will ignore custom translator dynamic loading.)
+     *
+     * @param string $prefix prefix required to filter result
+     *
+     * @return array
+     */
+    public function getAvailableLocales($prefix = '')
+    {
+        $locales = [];
+        foreach ($this->getLocalesFiles($prefix) as $file) {
+            $locales[] = substr($file, strrpos($file, '/') + 1, -4);
+        }
+
+        return array_unique(array_merge($locales, array_keys($this->messages)));
+    }
+
+    /**
+     * Init messages language from matching file in Lang directory.
+     *
+     * @param string $locale
+     *
+     * @return bool
+     */
+    protected function loadMessagesFromFile($locale)
+    {
+        if (isset($this->messages[$locale])) {
+            return true;
+        }
+
+        return $this->resetMessages($locale);
+    }
+
+    /**
+     * Set messages of a locale and take file first if present.
+     *
+     * @param string $locale
+     * @param array  $messages
+     *
+     * @return $this
+     */
+    public function setMessages($locale, $messages)
+    {
+        $this->loadMessagesFromFile($locale);
+        $this->addResource('array', $messages, $locale);
+        $this->messages[$locale] = array_merge(
+            isset($this->messages[$locale]) ? $this->messages[$locale] : [],
+            $messages
+        );
+
+        return $this;
+    }
+
+    /**
+     * Set messages of the current locale and take file first if present.
+     *
+     * @param array $messages
+     *
+     * @return $this
+     */
+    public function setTranslations($messages)
+    {
+        return $this->setMessages($this->getLocale(), $messages);
+    }
+
+    /**
+     * Get messages of a locale, if none given, return all the
+     * languages.
+     *
+     * @param string|null $locale
+     *
+     * @return array
+     */
+    public function getMessages($locale = null)
+    {
+        return $locale === null ? $this->messages : $this->messages[$locale];
+    }
+
+    /**
+     * Set the current translator locale and indicate if the source locale file exists
+     *
+     * @param string $locale locale ex. en
+     *
+     * @return bool
+     */
+    public function setLocale($locale)
+    {
+        $locale = preg_replace_callback('/[-_]([a-z]{2,}|[0-9]{2,})/', function ($matches) {
+            // _2-letters or YUE is a region, _3+-letters is a variant
+            $upper = strtoupper($matches[1]);
+
+            if ($upper === 'YUE' || $upper === 'ISO' || \strlen($upper) < 3) {
+                return "_$upper";
+            }
+
+            return '_'.ucfirst($matches[1]);
+        }, strtolower($locale));
+
+        $previousLocale = $this->getLocale();
+
+        if ($previousLocale === $locale && isset($this->messages[$locale])) {
+            return true;
+        }
+
+        unset(static::$singletons[$previousLocale]);
+
+        if ($locale === 'auto') {
+            $completeLocale = setlocale(LC_TIME, '0');
+            $locale = preg_replace('/^([^_.-]+).*$/', '$1', $completeLocale);
+            $locales = $this->getAvailableLocales($locale);
+
+            $completeLocaleChunks = preg_split('/[_.-]+/', $completeLocale);
+
+            $getScore = function ($language) use ($completeLocaleChunks) {
+                return static::compareChunkLists($completeLocaleChunks, preg_split('/[_.-]+/', $language));
+            };
+
+            usort($locales, function ($first, $second) use ($getScore) {
+                return $getScore($second) <=> $getScore($first);
+            });
+
+            $locale = $locales[0];
+        }
+
+        if (isset($this->aliases[$locale])) {
+            $locale = $this->aliases[$locale];
+        }
+
+        // If subtag (ex: en_CA) first load the macro (ex: en) to have a fallback
+        if (str_contains($locale, '_') &&
+            $this->loadMessagesFromFile($macroLocale = preg_replace('/^([^_]+).*$/', '$1', $locale))
+        ) {
+            parent::setLocale($macroLocale);
+        }
+
+        if ($this->loadMessagesFromFile($locale) || $this->initializing) {
+            parent::setLocale($locale);
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Show locale on var_dump().
+     *
+     * @return array
+     */
+    public function __debugInfo()
+    {
+        return [
+            'locale' => $this->getLocale(),
+        ];
+    }
+
+    private static function compareChunkLists($referenceChunks, $chunks)
+    {
+        $score = 0;
+
+        foreach ($referenceChunks as $index => $chunk) {
+            if (!isset($chunks[$index])) {
+                $score++;
+
+                continue;
+            }
+
+            if (strtolower($chunks[$index]) === strtolower($chunk)) {
+                $score += 10;
+            }
+        }
+
+        return $score;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/php-mime-mail-parser/php-mime-mail-parser/.github/workflows/main.yml b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/php-mime-mail-parser/php-mime-mail-parser/.github/workflows/main.yml
new file mode 100644
index 0000000..34c8210
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/php-mime-mail-parser/php-mime-mail-parser/.github/workflows/main.yml
@@ -0,0 +1,60 @@
+name: CI
+
+on: [push]
+
+jobs:
+
+  tests:
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        php: [7.2, 7.3, 7.4, 8.0]
+        dependency-version: [prefer-lowest, prefer-stable]
+    steps:
+      - name: Checkout code
+        uses: actions/checkout@v1
+
+      - name: Setup PHP
+        uses: shivammathur/setup-php@v2
+        with:
+          php-version: ${{ matrix.php }}
+          extensions: mailparse
+          coverage: none
+
+      - name: Install dependencies
+        run: composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest --no-progress
+
+      - name: Execute tests
+        run: vendor/bin/phpunit
+
+  php-cs:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout code
+        uses: actions/checkout@v1
+
+      - name: Install dependencies
+        run: composer update --no-progress --ignore-platform-reqs
+
+      - name: Execute phpcs
+        run: vendor/bin/phpcs src tests --standard=psr2
+
+  coverage:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout code
+        uses: actions/checkout@v1
+
+      - name: Setup PHP
+        uses: shivammathur/setup-php@v2
+        with:
+          php-version: 7.4
+          extensions: mailparse
+
+      - name: Install dependencies
+        run: composer update --prefer-dist --no-interaction --no-suggest --no-progress
+
+      - name: Execute code coverage
+        run: |
+          vendor/bin/phpunit --coverage-clover=coverage.xml --whitelist src
+          bash <(curl -s https://codecov.io/bash) -t ${{ secrets.COVERALLS_REPO_TOKEN }}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/php-mime-mail-parser/php-mime-mail-parser/README.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/php-mime-mail-parser/php-mime-mail-parser/README.md
index 68f997a..24a6e0e 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/php-mime-mail-parser/php-mime-mail-parser/README.md
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/php-mime-mail-parser/php-mime-mail-parser/README.md
@@ -1,6 +1,6 @@
 # php-mime-mail-parser
 
-A fully tested email parser for PHP 7.1+ (mailparse extension wrapper).
+A fully tested email parser for PHP 7.2+ (mailparse extension wrapper).
 
 It's the most effective php email parser around in terms of performance, foreign character encoding, attachment handling, and ease of use.
 Internet Message Format RFC [822](https://tools.ietf.org/html/rfc822), [2822](https://tools.ietf.org/html/rfc2822), [5322](https://tools.ietf.org/html/rfc5322).
@@ -23,7 +23,7 @@
 
 We use GitHub Actions, Codecov, Codacy to help ensure code quality. You can see real-time statistics below:
 
-[![Actions Status](https://wdp9fww0r9.execute-api.us-west-2.amazonaws.com/production/badge/php-mime-mail-parser/php-mime-mail-parser?style=flat-square)](https://wdp9fww0r9.execute-api.us-west-2.amazonaws.com/production/results/php-mime-mail-parser/php-mime-mail-parser)
+[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fphp-mime-mail-parser%2Fphp-mime-mail-parser%2Fbadge%3Fref%3Dmaster&style=flat-square)](https://actions-badge.atrox.dev/php-mime-mail-parser/php-mime-mail-parser/goto?ref=master)
 [![Coverage](https://img.shields.io/codecov/c/gh/php-mime-mail-parser/php-mime-mail-parser?style=flat-square)](https://codecov.io/gh/php-mime-mail-parser/php-mime-mail-parser)
 [![Code Quality](https://img.shields.io/codacy/grade/4e0e44fee21147ddbdd18ff976251875?style=flat-square)](https://app.codacy.com/app/php-mime-mail-parser/php-mime-mail-parser)
 
@@ -40,19 +40,20 @@
 
 The following versions of PHP are supported:
 
-* PHP 7.1
 * PHP 7.2
 * PHP 7.3
+* PHP 7.4
 
 Previous Versions:
 
 | PHP Compatibility  | Version |
 | ------------- | ------------- |
-| HHVM  | php-mime-mail-parser 2.11.1  |
-| PHP 5.4  | php-mime-mail-parser 2.11.1  |
-| PHP 5.5  | php-mime-mail-parser 2.11.1  |
+| HHVM  | php-mime-mail-parser 2.11.1    |
+| PHP 5.4  | php-mime-mail-parser 2.11.1 |
+| PHP 5.5  | php-mime-mail-parser 2.11.1 |
 | PHP 5.6  | php-mime-mail-parser 3.0.4  |
 | PHP 7.0  | php-mime-mail-parser 3.0.4  |
+| PHP 7.1  | php-mime-mail-parser 5.0.5  |
 
 Make sure you have the mailparse extension (http://php.net/manual/en/book.mailparse.php) properly installed. The command line `php -m | grep mailparse` need to return "mailparse".
 
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/php-mime-mail-parser/php-mime-mail-parser/composer.json b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/php-mime-mail-parser/php-mime-mail-parser/composer.json
index a797183..e9861a2 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/php-mime-mail-parser/php-mime-mail-parser/composer.json
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/php-mime-mail-parser/php-mime-mail-parser/composer.json
@@ -1,7 +1,7 @@
 {
     "name": "php-mime-mail-parser/php-mime-mail-parser",
     "type": "library",
-    "description": "A fully tested email parser for PHP 7.1+ (mailparse extension wrapper).",
+    "description": "A fully tested email parser for PHP 7.2+ (mailparse extension wrapper).",
     "keywords": ["mime", "mail", "mailparse", "MimeMailParser", "parser", "php"],
     "homepage": "https://github.com/php-mime-mail-parser/php-mime-mail-parser",
     "license": "MIT",
@@ -42,14 +42,13 @@
         "url":"https://github.com/php-mime-mail-parser/php-mime-mail-parser.git"
     },
     "require": {
-        "php":           "^7.1",
+        "php":           "^7.2|^8.0",
         "ext-mailparse": "*"
     },
     "require-dev": {
-        "phpunit/phpunit":              "^7.0",
-        "phpunit/php-token-stream":     "^3.0",
-        "php-coveralls/php-coveralls":  "^2.1",
-        "squizlabs/php_codesniffer":    "^3.4"
+        "phpunit/phpunit":              "^8.0",
+        "php-coveralls/php-coveralls":  "^2.2",
+        "squizlabs/php_codesniffer":    "^3.5"
     },
     "replace": {
         "exorus/php-mime-mail-parser":   "*",
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/README.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/README.md
index d9cbbaa..fa27d2f 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/README.md
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/README.md
@@ -1,46 +1,45 @@
 ![PHPMailer](https://raw.github.com/PHPMailer/PHPMailer/master/examples/images/phpmailer.png)
 
-# PHPMailer - A full-featured email creation and transfer class for PHP
+# PHPMailer – A full-featured email creation and transfer class for PHP
 
-Build status: [![Build Status](https://travis-ci.org/PHPMailer/PHPMailer.svg)](https://travis-ci.org/PHPMailer/PHPMailer)
-[![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/PHPMailer/PHPMailer/badges/quality-score.png?s=3758e21d279becdf847a557a56a3ed16dfec9d5d)](https://scrutinizer-ci.com/g/PHPMailer/PHPMailer/)
-[![Code Coverage](https://scrutinizer-ci.com/g/PHPMailer/PHPMailer/badges/coverage.png?s=3fe6ca5fe8cd2cdf96285756e42932f7ca256962)](https://scrutinizer-ci.com/g/PHPMailer/PHPMailer/)
+[![Test status](https://github.com/PHPMailer/PHPMailer/workflows/Tests/badge.svg)](https://github.com/PHPMailer/PHPMailer/actions) [![Latest Stable Version](https://poser.pugx.org/phpmailer/phpmailer/v/stable.svg)](https://packagist.org/packages/phpmailer/phpmailer) [![Total Downloads](https://poser.pugx.org/phpmailer/phpmailer/downloads)](https://packagist.org/packages/phpmailer/phpmailer) [![License](https://poser.pugx.org/phpmailer/phpmailer/license.svg)](https://packagist.org/packages/phpmailer/phpmailer) [![API Docs](https://github.com/phpmailer/phpmailer/workflows/Docs/badge.svg)](https://phpmailer.github.io/PHPMailer/)
 
-[![Latest Stable Version](https://poser.pugx.org/phpmailer/phpmailer/v/stable.svg)](https://packagist.org/packages/phpmailer/phpmailer) [![Total Downloads](https://poser.pugx.org/phpmailer/phpmailer/downloads)](https://packagist.org/packages/phpmailer/phpmailer) [![Latest Unstable Version](https://poser.pugx.org/phpmailer/phpmailer/v/unstable.svg)](https://packagist.org/packages/phpmailer/phpmailer) [![License](https://poser.pugx.org/phpmailer/phpmailer/license.svg)](https://packagist.org/packages/phpmailer/phpmailer) [![API Docs](https://github.com/phpmailer/phpmailer/workflows/Docs/badge.svg)](http://phpmailer.github.io/PHPMailer/)
-
-## Class Features
+## Features
 - Probably the world's most popular code for sending email from PHP!
 - Used by many open-source projects: WordPress, Drupal, 1CRM, SugarCRM, Yii, Joomla! and many more
-- Integrated SMTP support - send without a local mail server
+- Integrated SMTP support – send without a local mail server
 - Send emails with multiple To, CC, BCC and Reply-to addresses
 - Multipart/alternative emails for mail clients that do not read HTML email
 - Add attachments, including inline
 - Support for UTF-8 content and 8bit, base64, binary, and quoted-printable encodings
-- SMTP authentication with LOGIN, PLAIN, CRAM-MD5, and XOAUTH2 mechanisms over SSL and SMTP+STARTTLS transports
+- SMTP authentication with LOGIN, PLAIN, CRAM-MD5, and XOAUTH2 mechanisms over SMTPS and SMTP+STARTTLS transports
 - Validates email addresses automatically
-- Protect against header injection attacks
+- Protects against header injection attacks
 - Error messages in over 50 languages!
 - DKIM and S/MIME signing support
-- Compatible with PHP 5.5 and later
+- Compatible with PHP 5.5 and later, including PHP 8.0
 - Namespaced to prevent name clashes
 - Much more!
 
 ## Why you might need it
-Many PHP developers need to send email from their code. The only PHP function that supports this is [`mail()`](https://www.php.net/manual/en/function.mail.php). However, it does not provide any assistance for making use of popular features such as encryption, authentication, HTML messages, and attachments.
+Many PHP developers need to send email from their code. The only PHP function that supports this directly is [`mail()`](https://www.php.net/manual/en/function.mail.php). However, it does not provide any assistance for making use of popular features such as encryption, authentication, HTML messages, and attachments.
 
-Formatting email correctly is surprisingly difficult. There are myriad overlapping RFCs, requiring tight adherence to horribly complicated formatting and encoding rules – the vast majority of code that you'll find online that uses the `mail()` function directly is just plain wrong!
-*Please* don't be tempted to do it yourself – if you don't use PHPMailer, there are many other excellent libraries that you should look at before rolling your own. Try [SwiftMailer](https://swiftmailer.symfony.com/), [Zend/Mail](https://zendframework.github.io/zend-mail/), [ZetaComponents](https://github.com/zetacomponents/Mail) etc.
+Formatting email correctly is surprisingly difficult. There are myriad overlapping (and conflicting) standards, requiring tight adherence to horribly complicated formatting and encoding rules – the vast majority of code that you'll find online that uses the `mail()` function directly is just plain wrong, if not unsafe!
 
-The PHP `mail()` function usually sends via a local mail server, typically fronted by a `sendmail` binary on Linux, BSD, and macOS platforms, however, Windows usually doesn't include a local mail server; PHPMailer's integrated SMTP implementation allows email sending on Windows platforms without a local mail server.
+The PHP `mail()` function usually sends via a local mail server, typically fronted by a `sendmail` binary on Linux, BSD, and macOS platforms, however, Windows usually doesn't include a local mail server; PHPMailer's integrated SMTP client allows email sending on all platforms without needing a local mail server. Be aware though, that the `mail()` function should be avoided when possible; it's both faster and [safer](https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html) to use SMTP to localhost.
+
+*Please* don't be tempted to do it yourself – if you don't use PHPMailer, there are many other excellent libraries that
+you should look at before rolling your own. Try [SwiftMailer](https://swiftmailer.symfony.com/)
+, [Laminas/Mail](https://docs.laminas.dev/laminas-mail/), [ZetaComponents](https://github.com/zetacomponents/Mail) etc.
 
 ## License
-This software is distributed under the [LGPL 2.1](http://www.gnu.org/licenses/lgpl-2.1.html) license, along with the [GPL Cooperation Commitment](https://gplcc.github.io/gplcc/). Please read LICENSE for information on the software availability and distribution.
+This software is distributed under the [LGPL 2.1](http://www.gnu.org/licenses/lgpl-2.1.html) license, along with the [GPL Cooperation Commitment](https://gplcc.github.io/gplcc/). Please read [LICENSE](https://github.com/PHPMailer/PHPMailer/blob/master/LICENSE) for information on the software availability and distribution.
 
 ## Installation & loading
 PHPMailer is available on [Packagist](https://packagist.org/packages/phpmailer/phpmailer) (using semantic versioning), and installation via [Composer](https://getcomposer.org) is the recommended way to install PHPMailer. Just add this line to your `composer.json` file:
 
 ```json
-"phpmailer/phpmailer": "~6.1"
+"phpmailer/phpmailer": "^6.2"
 ```
 
 or run
@@ -53,7 +52,8 @@
 
 If you want to use the Gmail XOAUTH2 authentication class, you will also need to add a dependency on the `league/oauth2-client` package in your `composer.json`.
 
-Alternatively, if you're not using Composer, copy the contents of the PHPMailer folder into one of the `include_path` directories specified in your PHP configuration and load each class file manually:
+Alternatively, if you're not using Composer, you
+can [download PHPMailer as a zip file](https://github.com/PHPMailer/PHPMailer/archive/master.zip), (note that docs and examples are not included in the zip file), then copy the contents of the PHPMailer folder into one of the `include_path` directories specified in your PHP configuration and load each class file manually:
 
 ```php
 <?php
@@ -65,60 +65,58 @@
 require 'path/to/PHPMailer/src/SMTP.php';
 ```
 
-If you're not using the `SMTP` class explicitly (you're probably not), you don't need a `use` line for the SMTP class.
-
-If you don't speak git or just want a tarball, click the 'zip' button on the right of the project page in GitHub, though note that docs and examples are not included in the tarball.
+If you're not using the `SMTP` class explicitly (you're probably not), you don't need a `use` line for the SMTP class. Even if you're not using exceptions, you do still need to load the `Exception` class as it is used internally.
 
 ## Legacy versions
-PHPMailer 5.2 (which is compatible with PHP 5.0 - 7.0) is no longer being supported, even for security updates. You will find the latest version of 5.2 in the [5.2-stable branch](https://github.com/PHPMailer/PHPMailer/tree/5.2-stable). If you're using PHP 5.5 or later (which you should be), switch to the 6.x releases.
+PHPMailer 5.2 (which is compatible with PHP 5.0 — 7.0) is no longer supported, even for security updates. You will find the latest version of 5.2 in the [5.2-stable branch](https://github.com/PHPMailer/PHPMailer/tree/5.2-stable). If you're using PHP 5.5 or later (which you should be), switch to the 6.x releases.
 
 ### Upgrading from 5.2
 The biggest changes are that source files are now in the `src/` folder, and PHPMailer now declares the namespace `PHPMailer\PHPMailer`. This has several important effects – [read the upgrade guide](https://github.com/PHPMailer/PHPMailer/tree/master/UPGRADING.md) for more details.
 
 ### Minimal installation
-While installing the entire package manually or with Composer is simple, convenient, and reliable, you may want to include only vital files in your project. At the very least you will need [src/PHPMailer.php](https://github.com/PHPMailer/PHPMailer/tree/master/src/PHPMailer.php). If you're using SMTP, you'll need [src/SMTP.php](https://github.com/PHPMailer/PHPMailer/tree/master/src/SMTP.php), and if you're using POP-before SMTP, you'll need [src/POP3.php](https://github.com/PHPMailer/PHPMailer/tree/master/src/POP3.php). You can skip the [language](https://github.com/PHPMailer/PHPMailer/tree/master/language/) folder if you're not showing errors to users and can make do with English-only errors. If you're using XOAUTH2 you will need [src/OAuth.php](https://github.com/PHPMailer/PHPMailer/tree/master/src/OAuth.php) as well as the Composer dependencies for the services you wish to authenticate with. Really, it's much easier to use Composer!
+While installing the entire package manually or with Composer is simple, convenient, and reliable, you may want to include only vital files in your project. At the very least you will need [src/PHPMailer.php](https://github.com/PHPMailer/PHPMailer/tree/master/src/PHPMailer.php). If you're using SMTP, you'll need [src/SMTP.php](https://github.com/PHPMailer/PHPMailer/tree/master/src/SMTP.php), and if you're using POP-before SMTP (*very* unlikely!), you'll need [src/POP3.php](https://github.com/PHPMailer/PHPMailer/tree/master/src/POP3.php). You can skip the [language](https://github.com/PHPMailer/PHPMailer/tree/master/language/) folder if you're not showing errors to users and can make do with English-only errors. If you're using XOAUTH2 you will need [src/OAuth.php](https://github.com/PHPMailer/PHPMailer/tree/master/src/OAuth.php) as well as the Composer dependencies for the services you wish to authenticate with. Really, it's much easier to use Composer!
 
 ## A Simple Example
 
 ```php
 <?php
-// Import PHPMailer classes into the global namespace
-// These must be at the top of your script, not inside a function
+//Import PHPMailer classes into the global namespace
+//These must be at the top of your script, not inside a function
 use PHPMailer\PHPMailer\PHPMailer;
 use PHPMailer\PHPMailer\SMTP;
 use PHPMailer\PHPMailer\Exception;
 
-// Load Composer's autoloader
+//Load Composer's autoloader
 require 'vendor/autoload.php';
 
-// Instantiation and passing `true` enables exceptions
+//Instantiation and passing `true` enables exceptions
 $mail = new PHPMailer(true);
 
 try {
     //Server settings
-    $mail->SMTPDebug = SMTP::DEBUG_SERVER;                      // Enable verbose debug output
-    $mail->isSMTP();                                            // Send using SMTP
-    $mail->Host       = 'smtp1.example.com';                    // Set the SMTP server to send through
-    $mail->SMTPAuth   = true;                                   // Enable SMTP authentication
-    $mail->Username   = 'user@example.com';                     // SMTP username
-    $mail->Password   = 'secret';                               // SMTP password
-    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;         // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged
-    $mail->Port       = 587;                                    // TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above
+    $mail->SMTPDebug = SMTP::DEBUG_SERVER;                      //Enable verbose debug output
+    $mail->isSMTP();                                            //Send using SMTP
+    $mail->Host       = 'smtp.example.com';                     //Set the SMTP server to send through
+    $mail->SMTPAuth   = true;                                   //Enable SMTP authentication
+    $mail->Username   = 'user@example.com';                     //SMTP username
+    $mail->Password   = 'secret';                               //SMTP password
+    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;         //Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged
+    $mail->Port       = 587;                                    //TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above
 
     //Recipients
     $mail->setFrom('from@example.com', 'Mailer');
-    $mail->addAddress('joe@example.net', 'Joe User');     // Add a recipient
-    $mail->addAddress('ellen@example.com');               // Name is optional
+    $mail->addAddress('joe@example.net', 'Joe User');     //Add a recipient
+    $mail->addAddress('ellen@example.com');               //Name is optional
     $mail->addReplyTo('info@example.com', 'Information');
     $mail->addCC('cc@example.com');
     $mail->addBCC('bcc@example.com');
 
-    // Attachments
-    $mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
-    $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
+    //Attachments
+    $mail->addAttachment('/var/tmp/file.tar.gz');         //Add attachments
+    $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    //Optional name
 
-    // Content
-    $mail->isHTML(true);                                  // Set email format to HTML
+    //Content
+    $mail->isHTML(true);                                  //Set email format to HTML
     $mail->Subject = 'Here is the subject';
     $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
     $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
@@ -130,7 +128,7 @@
 }
 ```
 
-You'll find plenty more to play with in the [examples](https://github.com/PHPMailer/PHPMailer/tree/master/examples) folder.
+You'll find plenty to play with in the [examples](https://github.com/PHPMailer/PHPMailer/tree/master/examples) folder, which covers many common scenarios including sending through gmail, building contact forms, sending to mailing lists, and more.
 
 If you are re-using the instance (e.g. when sending to a mailing list), you may need to clear the recipient list to avoid sending duplicate messages. See [the mailing list example](https://github.com/PHPMailer/PHPMailer/blob/master/examples/mailing_list.phps) for further guidance.
 
@@ -140,43 +138,43 @@
 PHPMailer defaults to English, but in the [language](https://github.com/PHPMailer/PHPMailer/tree/master/language/) folder you'll find many translations for PHPMailer error messages that you may encounter. Their filenames contain [ISO 639-1](http://en.wikipedia.org/wiki/ISO_639-1) language code for the translations, for example `fr` for French. To specify a language, you need to tell PHPMailer which one to use, like this:
 
 ```php
-// To load the French version
+//To load the French version
 $mail->setLanguage('fr', '/optional/path/to/language/directory/');
 ```
 
-We welcome corrections and new languages - if you're looking for corrections to do, run the [PHPMailerLangTest.php](https://github.com/PHPMailer/PHPMailer/tree/master/test/PHPMailerLangTest.php) script in the tests folder and it will show any missing translations.
+We welcome corrections and new languages – if you're looking for corrections, run the [PHPMailerLangTest.php](https://github.com/PHPMailer/PHPMailer/tree/master/test/PHPMailerLangTest.php) script in the tests folder and it will show any missing translations.
 
 ## Documentation
-Start reading at the [GitHub wiki](https://github.com/PHPMailer/PHPMailer/wiki). If you're having trouble, this should be the first place you look as it's the most frequently updated.
+Start reading at the [GitHub wiki](https://github.com/PHPMailer/PHPMailer/wiki). If you're having trouble, head for [the troubleshooting guide](https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting) as it's frequently updated.
 
 Examples of how to use PHPMailer for common scenarios can be found in the [examples](https://github.com/PHPMailer/PHPMailer/tree/master/examples) folder. If you're looking for a good starting point, we recommend you start with [the Gmail example](https://github.com/PHPMailer/PHPMailer/tree/master/examples/gmail.phps).
 
-Note that in order to reduce PHPMailer's deployed code footprint, the examples are no longer included if you load PHPMailer via Composer or via [GitHub's zip file download](https://github.com/PHPMailer/PHPMailer/archive/master.zip), so you'll need to either clone the git repository or use the above links to get to the examples directly.
+To reduce PHPMailer's deployed code footprint, examples are not included if you load PHPMailer via Composer or via [GitHub's zip file download](https://github.com/PHPMailer/PHPMailer/archive/master.zip), so you'll need to either clone the git repository or use the above links to get to the examples directly.
 
-Complete generated API documentation is [available online](http://phpmailer.github.io/PHPMailer/).
+Complete generated API documentation is [available online](https://phpmailer.github.io/PHPMailer/).
 
-You can generate complete API-level documentation by running `phpdoc` in the top-level folder, and documentation will appear in the `docs` folder, though you'll need to have [PHPDocumentor](http://www.phpdoc.org) installed. You may find [the unit tests](https://github.com/PHPMailer/PHPMailer/blob/master/test/PHPMailerTest.php) a good source of how to do various operations such as encryption.
+You can generate complete API-level documentation by running `phpdoc` in the top-level folder, and documentation will appear in the `docs` folder, though you'll need to have [PHPDocumentor](http://www.phpdoc.org) installed. You may find [the unit tests](https://github.com/PHPMailer/PHPMailer/blob/master/test/PHPMailerTest.php) a good reference for how to do various operations such as encryption.
 
 If the documentation doesn't cover what you need, search the [many questions on Stack Overflow](http://stackoverflow.com/questions/tagged/phpmailer), and before you ask a question about "SMTP Error: Could not connect to SMTP host.", [read the troubleshooting guide](https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting).
 
 ## Tests
-There is a PHPUnit test script in the [test](https://github.com/PHPMailer/PHPMailer/tree/master/test/) folder. PHPMailer uses PHPUnit 4.8 - we would use 5.x but we need to run on PHP 5.5.
+[PHPMailer tests](https://github.com/PHPMailer/PHPMailer/tree/master/test/) use PHPUnit 9, with [a polyfill](https://github.com/Yoast/PHPUnit-Polyfills) to let 9-style tests run on older PHPUnit and PHP versions.
 
-Build status: [![Build Status](https://travis-ci.org/PHPMailer/PHPMailer.svg)](https://travis-ci.org/PHPMailer/PHPMailer)
+[![Test status](https://github.com/PHPMailer/PHPMailer/workflows/Tests/badge.svg)](https://github.com/PHPMailer/PHPMailer/actions)
 
 If this isn't passing, is there something you can do to help?
 
 ## Security
 Please disclose any vulnerabilities found responsibly – report security issues to the maintainers privately.
 
-See [SECURITY](https://github.com/PHPMailer/PHPMailer/tree/master/SECURITY.md) for details on security issues.
+See [SECURITY](https://github.com/PHPMailer/PHPMailer/tree/master/SECURITY.md) and [PHPMailer's security advisories on GitHub](https://github.com/PHPMailer/PHPMailer/security). 
 
 ## Contributing
 Please submit bug reports, suggestions and pull requests to the [GitHub issue tracker](https://github.com/PHPMailer/PHPMailer/issues).
 
 We're particularly interested in fixing edge-cases, expanding test coverage and updating translations.
 
-If you found a mistake in the docs, or want to add something, go ahead and amend the wiki - anyone can edit it.
+If you found a mistake in the docs, or want to add something, go ahead and amend the wiki – anyone can edit it.
 
 If you have git clones from prior to the move to the PHPMailer GitHub organisation, you'll need to update any remote URLs referencing the old GitHub location with a command like this from within your clone:
 
@@ -187,27 +185,36 @@
 Please *don't* use the SourceForge or Google Code projects any more; they are obsolete and no longer maintained.
 
 ## Sponsorship
-Development time and resources for PHPMailer are provided by [Smartmessages.net](https://info.smartmessages.net/), a powerful email marketing system.
+Development time and resources for PHPMailer are provided by [Smartmessages.net](https://info.smartmessages.net/), the world's only privacy-first email marketing system.
 
-<a href="https://info.smartmessages.net/"><img src="https://www.smartmessages.net/img/smartmessages-logo.svg" width="250" height="28" alt="Smartmessages email marketing"></a>
+<a href="https://info.smartmessages.net/"><img src="https://www.smartmessages.net/img/smartmessages-logo.svg" width="550" alt="Smartmessages.net privacy-first email marketing logo"></a>
 
-Other contributions are gladly received, whether in beer 🍺, T-shirts 👕, Amazon wishlist raids, or cold, hard cash 💰. If you'd like to donate to say "thank you" to maintainers or contributors, please contact them through individual profile pages via [the contributors page](https://github.com/PHPMailer/PHPMailer/graphs/contributors).
+Donations are very welcome, whether in beer 🍺, T-shirts 👕, or cold, hard cash 💰. Sponsorship through GitHub is a simple and convenient way to say "thank you" to PHPMailer's maintainers and contributors – just click the "Sponsor" button [on the project page](https://github.com/PHPMailer/PHPMailer). If your company uses PHPMailer, consider taking part in Tidelift's enterprise support programme.
+
+## PHPMailer For Enterprise
+
+Available as part of the Tidelift Subscription.
+
+The maintainers of PHPMailer and thousands of other packages are working with Tidelift to deliver commercial
+support and maintenance for the open source packages you use to build your applications. Save time, reduce risk, and
+improve code health, while paying the maintainers of the exact packages you
+use. [Learn more.](https://tidelift.com/subscription/pkg/packagist-phpmailer-phpmailer?utm_source=packagist-phpmailer-phpmailer&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
 
 ## Changelog
 See [changelog](changelog.md).
 
 ## History
 - PHPMailer was originally written in 2001 by Brent R. Matzelle as a [SourceForge project](http://sourceforge.net/projects/phpmailer/).
-- Marcus Bointon (coolbru on SF) and Andy Prevost (codeworxtech) took over the project in 2004.
+- [Marcus Bointon](https://github.com/Synchro) (`coolbru` on SF) and Andy Prevost (`codeworxtech`) took over the project in 2004.
 - Became an Apache incubator project on Google Code in 2010, managed by Jim Jagielski.
-- Marcus created his fork on [GitHub](https://github.com/Synchro/PHPMailer) in 2008.
+- Marcus created [his fork on GitHub](https://github.com/Synchro/PHPMailer) in 2008.
 - Jim and Marcus decide to join forces and use GitHub as the canonical and official repo for PHPMailer in 2013.
-- PHPMailer moves to the [PHPMailer organisation](https://github.com/PHPMailer) on GitHub in 2013.
+- PHPMailer moves to [the PHPMailer organisation](https://github.com/PHPMailer) on GitHub in 2013.
 
 ### What's changed since moving from SourceForge?
 - Official successor to the SourceForge and Google Code projects.
 - Test suite.
-- Continuous integration with Travis-CI.
+- Continuous integration with Github Actions.
 - Composer support.
 - Public development.
 - Additional languages and language strings.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/SECURITY.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/SECURITY.md
index fc3e61c..035a87f 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/SECURITY.md
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/SECURITY.md
@@ -1,6 +1,13 @@
 # Security notices relating to PHPMailer
 
-Please disclose any vulnerabilities found responsibly - report any security problems found to the maintainers privately.
+Please disclose any security issues or vulnerabilities found through [Tidelift's coordinated disclosure system](https://tidelift.com/security) or to the maintainers privately.
+
+PHPMailer 6.4.1 and earlier contain a vulnerability that can result in untrusted code being called (if such code is injected into the host project's scope by other means). If the `$patternselect` parameter to `validateAddress()` is set to `'php'` (the default, defined by `PHPMailer::$validator`), and the global namespace contains a function called `php`, it will be called in preference to the built-in validator of the same name. Mitigated in PHPMailer 6.5.0 by denying the use of simple strings as validator function names. Recorded as [CVE-2021-3603](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2021-3603). Reported by [Vikrant Singh Chauhan](mailto:vi@hackberry.xyz) via [huntr.dev](https://www.huntr.dev/).
+
+PHPMailer versions 6.4.1 and earlier contain a possible remote code execution vulnerability through the `$lang_path` parameter of the `setLanguage()` method. If the `$lang_path` parameter is passed unfiltered from user input, it can be set to [a UNC path](https://docs.microsoft.com/en-us/dotnet/standard/io/file-path-formats#unc-paths), and if an attacker is also able to persuade the server to load a file from that UNC path, a script file under their control may be executed. This vulnerability only applies to systems that resolve UNC paths, typically only Microsoft Windows.
+PHPMailer 6.5.0 mitigates this by no longer treating translation files as PHP code, but by parsing their text content directly. This approach avoids the possibility of executing unknown code while retaining backward compatibility. This isn't ideal, so the current translation format is deprecated and will be replaced in the next major release. Recorded as [CVE-2021-34551](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2021-34551). Reported by [Jilin Diting Information Technology Co., Ltd](https://listensec.com) via Tidelift.
+
+PHPMailer versions between 6.1.8 and 6.4.0 contain a regression of the earlier CVE-2018-19296 object injection vulnerability as a result of [a fix for Windows UNC paths in 6.1.8](https://github.com/PHPMailer/PHPMailer/commit/e2e07a355ee8ff36aba21d0242c5950c56e4c6f9). Recorded as [CVE-2020-36326](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-36326). Reported by Fariskhi Vidyan via Tidelift. 6.4.1 fixes this issue, and also enforces stricter checks for URL schemes in local path contexts.
 
 PHPMailer versions 6.1.5 and earlier contain an output escaping bug that occurs in `Content-Type` and `Content-Disposition` when filenames passed into `addAttachment` and other methods that accept attachment names contain double quote characters, in contravention of RFC822 3.4.1. No specific vulnerability has been found relating to this, but it could allow file attachments to bypass attachment filters that are based on matching filename extensions. Recorded as [CVE-2020-13625](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-13625). Reported by Elar Lang of Clarified Security.
 
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/VERSION b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/VERSION
index 4ac4fde..4be2c72 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/VERSION
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/VERSION
@@ -1 +1 @@
-6.2.0
\ No newline at end of file
+6.5.0
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/composer.json b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/composer.json
index 7388bd9..58393b2 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/composer.json
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/composer.json
@@ -40,7 +40,7 @@
         "yoast/phpunit-polyfills": "^0.2.0"
     },
     "suggest": {
-        "ext-mbstring": "Needed to send email in multibyte encoding charset",
+        "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses",
         "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
         "league/oauth2-google": "Needed for Google XOAUTH2 authentication",
         "psr/log": "For optional PSR-3 debug logging",
@@ -57,5 +57,9 @@
             "PHPMailer\\Test\\": "test/"
         }
     },
-    "license": "LGPL-2.1-only"
+    "license": "LGPL-2.1-only",
+    "scripts": {
+        "check": "./vendor/bin/phpcs",
+        "test": "./vendor/bin/phpunit"
+    }
 }
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/get_oauth_token.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/get_oauth_token.php
index 560d364..befdc34 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/get_oauth_token.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/get_oauth_token.php
@@ -38,20 +38,20 @@
  * Plenty to choose from here:
  * @see http://oauth2-client.thephpleague.com/providers/thirdparty/
  */
-// @see https://github.com/thephpleague/oauth2-google
+//@see https://github.com/thephpleague/oauth2-google
 use League\OAuth2\Client\Provider\Google;
-// @see https://packagist.org/packages/hayageek/oauth2-yahoo
+//@see https://packagist.org/packages/hayageek/oauth2-yahoo
 use Hayageek\OAuth2\Client\Provider\Yahoo;
-// @see https://github.com/stevenmaguire/oauth2-microsoft
+//@see https://github.com/stevenmaguire/oauth2-microsoft
 use Stevenmaguire\OAuth2\Client\Provider\Microsoft;
 
 if (!isset($_GET['code']) && !isset($_GET['provider'])) {
     ?>
 <html>
-<body>Select Provider:<br/>
-<a href='?provider=Google'>Google</a><br/>
-<a href='?provider=Yahoo'>Yahoo</a><br/>
-<a href='?provider=Microsoft'>Microsoft/Outlook/Hotmail/Live/Office365</a><br/>
+<body>Select Provider:<br>
+<a href='?provider=Google'>Google</a><br>
+<a href='?provider=Yahoo'>Yahoo</a><br>
+<a href='?provider=Microsoft'>Microsoft/Outlook/Hotmail/Live/Office365</a><br>
 </body>
 </html>
     <?php
@@ -121,26 +121,26 @@
 }
 
 if (!isset($_GET['code'])) {
-    // If we don't have an authorization code then get one
+    //If we don't have an authorization code then get one
     $authUrl = $provider->getAuthorizationUrl($options);
     $_SESSION['oauth2state'] = $provider->getState();
     header('Location: ' . $authUrl);
     exit;
-// Check given state against previously stored one to mitigate CSRF attack
+    //Check given state against previously stored one to mitigate CSRF attack
 } elseif (empty($_GET['state']) || ($_GET['state'] !== $_SESSION['oauth2state'])) {
     unset($_SESSION['oauth2state']);
     unset($_SESSION['provider']);
     exit('Invalid state');
 } else {
     unset($_SESSION['provider']);
-    // Try to get an access token (using the authorization code grant)
+    //Try to get an access token (using the authorization code grant)
     $token = $provider->getAccessToken(
         'authorization_code',
         [
             'code' => $_GET['code']
         ]
     );
-    // Use this to interact with an API on the users behalf
-    // Use this to get a new access token if the old one expires
+    //Use this to interact with an API on the users behalf
+    //Use this to get a new access token if the old one expires
     echo 'Refresh Token: ', $token->getRefreshToken();
 }
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ar.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ar.php
index 8ab485c..f795580 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ar.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-ar.php
@@ -19,8 +19,7 @@
 $PHPMAILER_LANG['invalid_address']      = 'الإرسال غير ممكن لأن عنوان البريد الإلكتروني غير صالح: ';
 $PHPMAILER_LANG['mailer_not_supported'] = ' برنامج الإرسال غير مدعوم.';
 $PHPMAILER_LANG['provide_address']      = 'يجب توفير عنوان البريد الإلكتروني لمستلم واحد على الأقل.';
-$PHPMAILER_LANG['recipients_failed']    = 'خطأ SMTP: الأخطاء التالية ' .
-                                          'فشل في الارسال لكل من : ';
+$PHPMAILER_LANG['recipients_failed']    = 'خطأ SMTP: الأخطاء التالية فشل في الارسال لكل من : ';
 $PHPMAILER_LANG['signing']              = 'خطأ في التوقيع: ';
 $PHPMAILER_LANG['smtp_connect_failed']  = 'SMTP Connect() غير ممكن.';
 $PHPMAILER_LANG['smtp_error']           = 'خطأ على مستوى الخادم SMTP: ';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-cs.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-cs.php
index 55bdd9c..e770a1a 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-cs.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-cs.php
@@ -16,6 +16,8 @@
 $PHPMAILER_LANG['from_failed']          = 'Následující adresa odesílatele je nesprávná: ';
 $PHPMAILER_LANG['instantiate']          = 'Nelze vytvořit instanci emailové funkce.';
 $PHPMAILER_LANG['invalid_address']      = 'Neplatná adresa: ';
+$PHPMAILER_LANG['invalid_hostentry']    = 'Záznam hostitele je nesprávný: ';
+$PHPMAILER_LANG['invalid_host']         = 'Hostitel je nesprávný: ';
 $PHPMAILER_LANG['mailer_not_supported'] = ' mailer není podporován.';
 $PHPMAILER_LANG['provide_address']      = 'Musíte zadat alespoň jednu emailovou adresu příjemce.';
 $PHPMAILER_LANG['recipients_failed']    = 'Chyba SMTP: Následující adresy příjemců nejsou správně: ';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sk.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sk.php
index a1cfb28..028f5bc 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sk.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sk.php
@@ -18,6 +18,8 @@
 $PHPMAILER_LANG['from_failed']          = 'Následujúca adresa From je nesprávna: ';
 $PHPMAILER_LANG['instantiate']          = 'Nedá sa vytvoriť inštancia emailovej funkcie.';
 $PHPMAILER_LANG['invalid_address']      = 'Neodoslané, emailová adresa je nesprávna: ';
+$PHPMAILER_LANG['invalid_hostentry']    = 'Záznam hostiteľa je nesprávny: ';
+$PHPMAILER_LANG['invalid_host']         = 'Hostiteľ je nesprávny: ';
 $PHPMAILER_LANG['mailer_not_supported'] = ' emailový klient nieje podporovaný.';
 $PHPMAILER_LANG['provide_address']      = 'Musíte zadať aspoň jednu emailovú adresu príjemcu.';
 $PHPMAILER_LANG['recipients_failed']    = 'SMTP Error: Adresy príjemcov niesu správne ';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sr_latn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sr_latn.php
new file mode 100644
index 0000000..6213832
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-sr_latn.php
@@ -0,0 +1,28 @@
+<?php
+
+/**
+ * Serbian PHPMailer language file: refer to English translation for definitive list
+ * @package PHPMailer
+ * @author Александар Јевремовић <ajevremovic@gmail.com>
+ * @author Miloš Milanović <mmilanovic016@gmail.com>
+ */
+
+$PHPMAILER_LANG['authenticate']         = 'SMTP greška: autentifikacija nije uspela.';
+$PHPMAILER_LANG['connect_host']         = 'SMTP greška: povezivanje sa SMTP serverom nije uspelo.';
+$PHPMAILER_LANG['data_not_accepted']    = 'SMTP greška: podaci nisu prihvaćeni.';
+$PHPMAILER_LANG['empty_message']        = 'Sadržaj poruke je prazan.';
+$PHPMAILER_LANG['encoding']             = 'Nepoznato kodiranje: ';
+$PHPMAILER_LANG['execute']              = 'Nije moguće izvršiti naredbu: ';
+$PHPMAILER_LANG['file_access']          = 'Nije moguće pristupiti datoteci: ';
+$PHPMAILER_LANG['file_open']            = 'Nije moguće otvoriti datoteku: ';
+$PHPMAILER_LANG['from_failed']          = 'SMTP greška: slanje sa sledećih adresa nije uspelo: ';
+$PHPMAILER_LANG['recipients_failed']    = 'SMTP greška: slanje na sledeće adrese nije uspelo: ';
+$PHPMAILER_LANG['instantiate']          = 'Nije moguće pokrenuti mail funkciju.';
+$PHPMAILER_LANG['invalid_address']      = 'Poruka nije poslata. Neispravna adresa: ';
+$PHPMAILER_LANG['mailer_not_supported'] = ' majler nije podržan.';
+$PHPMAILER_LANG['provide_address']      = 'Definišite bar jednu adresu primaoca.';
+$PHPMAILER_LANG['signing']              = 'Greška prilikom prijave: ';
+$PHPMAILER_LANG['smtp_connect_failed']  = 'Povezivanje sa SMTP serverom nije uspelo.';
+$PHPMAILER_LANG['smtp_error']           = 'Greška SMTP servera: ';
+$PHPMAILER_LANG['variable_set']         = 'Nije moguće zadati niti resetovati promenljivu: ';
+$PHPMAILER_LANG['extension_missing']    = 'Nedostaje proširenje: ';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-uk.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-uk.php
index 9fa60cf..3dea055 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-uk.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/language/phpmailer.lang-uk.php
@@ -16,11 +16,11 @@
 $PHPMAILER_LANG['file_open']            = 'Помилка файлової системи: не вдається відкрити файл: ';
 $PHPMAILER_LANG['from_failed']          = 'Невірна адреса відправника: ';
 $PHPMAILER_LANG['instantiate']          = 'Неможливо запустити функцію mail().';
-$PHPMAILER_LANG['provide_address']      = 'Будь-ласка, введіть хоча б одну email-адресу отримувача.';
+$PHPMAILER_LANG['provide_address']      = 'Будь ласка, введіть хоча б одну email-адресу отримувача.';
 $PHPMAILER_LANG['mailer_not_supported'] = ' - поштовий сервер не підтримується.';
 $PHPMAILER_LANG['recipients_failed']    = 'Помилка SMTP: не вдалося відправлення для таких отримувачів: ';
 $PHPMAILER_LANG['empty_message']        = 'Пусте повідомлення';
-$PHPMAILER_LANG['invalid_address']      = 'Не відправлено через невірний формат email-адреси: ';
+$PHPMAILER_LANG['invalid_address']      = 'Не відправлено через неправильний формат email-адреси: ';
 $PHPMAILER_LANG['signing']              = 'Помилка підпису: ';
 $PHPMAILER_LANG['smtp_connect_failed']  = 'Помилка з\'єднання з SMTP-сервером';
 $PHPMAILER_LANG['smtp_error']           = 'Помилка SMTP-сервера: ';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/phpunit.xml.dist b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/phpunit.xml.dist
new file mode 100644
index 0000000..c68df96
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/phpunit.xml.dist
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phpunit
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/8.5/phpunit.xsd"
+         backupGlobals="true"
+         bootstrap="vendor/autoload.php"
+         verbose="true"
+         colors="true"
+         forceCoversAnnotation="false"
+    >
+    <testsuites>
+        <testsuite name="PHPMailerTests">
+            <directory>./test/</directory>
+        </testsuite>
+    </testsuites>
+    <listeners>
+        <listener class="PHPMailer\Test\DebugLogTestListener" />
+    </listeners>
+    <groups>
+        <exclude>
+            <group>languages</group>
+            <group>pop3</group>
+        </exclude>
+    </groups>
+    <filter>
+        <whitelist addUncoveredFilesFromWhitelist="true">
+            <directory suffix=".php">./src</directory>
+        </whitelist>
+    </filter>
+    <logging>
+        <log type="coverage-text" target="php://stdout" showUncoveredFiles="true"/>
+        <log type="coverage-clover" target="build/logs/clover.xml"/>
+        <log type="junit" target="build/logs/junit.xml"/>
+    </logging>
+</phpunit>
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/src/OAuth.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/src/OAuth.php
index 07fde4c..c93d0be 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/src/OAuth.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/src/OAuth.php
@@ -123,7 +123,7 @@
      */
     public function getOauth64()
     {
-        // Get a new token if it's not available or has expired
+        //Get a new token if it's not available or has expired
         if (null === $this->oauthToken || $this->oauthToken->hasExpired()) {
             $this->oauthToken = $this->getToken();
         }
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/src/PHPMailer.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/src/PHPMailer.php
index c8fc1a8..eb4b742 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/src/PHPMailer.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/src/PHPMailer.php
@@ -428,9 +428,11 @@
     public $Debugoutput = 'echo';
 
     /**
-     * Whether to keep SMTP connection open after each message.
-     * If this is set to true then to close the connection
-     * requires an explicit call to smtpClose().
+     * Whether to keep the SMTP connection open after each message.
+     * If this is set to true then the connection will remain open after a send,
+     * and closing the connection will require an explicit call to smtpClose().
+     * It's a good idea to use this if you are sending multiple messages as it reduces overhead.
+     * See the mailing list example for how to use it.
      *
      * @var bool
      */
@@ -748,7 +750,7 @@
      *
      * @var string
      */
-    const VERSION = '6.2.0';
+    const VERSION = '6.5.0';
 
     /**
      * Error severity: message only, continue processing.
@@ -862,18 +864,25 @@
             $subject = $this->encodeHeader($this->secureHeader($subject));
         }
         //Calling mail() with null params breaks
+        $this->edebug('Sending with mail()');
+        $this->edebug('Sendmail path: ' . ini_get('sendmail_path'));
+        $this->edebug("Envelope sender: {$this->Sender}");
+        $this->edebug("To: {$to}");
+        $this->edebug("Subject: {$subject}");
+        $this->edebug("Headers: {$header}");
         if (!$this->UseSendmailOptions || null === $params) {
             $result = @mail($to, $subject, $body, $header);
         } else {
+            $this->edebug("Additional params: {$params}");
             $result = @mail($to, $subject, $body, $header, $params);
         }
-
+        $this->edebug('Result: ' . ($result ? 'true' : 'false'));
         return $result;
     }
 
     /**
-     * Output debugging info via user-defined method.
-     * Only generates output if SMTP debug output is enabled (@see SMTP::$do_debug).
+     * Output debugging info via a user-defined method.
+     * Only generates output if debug output is enabled.
      *
      * @see PHPMailer::$Debugoutput
      * @see PHPMailer::$SMTPDebug
@@ -1070,7 +1079,7 @@
         $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim
         $pos = strrpos($address, '@');
         if (false === $pos) {
-            // At-sign is missing.
+            //At-sign is missing.
             $error_message = sprintf(
                 '%s (%s): %s',
                 $this->lang('invalid_address'),
@@ -1086,7 +1095,7 @@
             return false;
         }
         $params = [$kind, $address, $name];
-        // Enqueue addresses with IDN until we know the PHPMailer::$CharSet.
+        //Enqueue addresses with IDN until we know the PHPMailer::$CharSet.
         if (static::idnSupported() && $this->has8bitChars(substr($address, ++$pos))) {
             if ('Reply-To' !== $kind) {
                 if (!array_key_exists($address, $this->RecipientsQueue)) {
@@ -1103,7 +1112,7 @@
             return false;
         }
 
-        // Immediately add standard addresses without IDN.
+        //Immediately add standard addresses without IDN.
         return call_user_func_array([$this, 'addAnAddress'], $params);
     }
 
@@ -1191,6 +1200,15 @@
                         $address->mailbox . '@' . $address->host
                     )
                 ) {
+                    //Decode the name part if it's present and encoded
+                    if (
+                        property_exists($address, 'personal') &&
+                        extension_loaded('mbstring') &&
+                        preg_match('/^=\?.*\?=$/', $address->personal)
+                    ) {
+                        $address->personal = mb_decode_mimeheader($address->personal);
+                    }
+
                     $addresses[] = [
                         'name' => (property_exists($address, 'personal') ? $address->personal : ''),
                         'address' => $address->mailbox . '@' . $address->host,
@@ -1214,9 +1232,15 @@
                 } else {
                     list($name, $email) = explode('<', $address);
                     $email = trim(str_replace('>', '', $email));
+                    $name = trim($name);
                     if (static::validateAddress($email)) {
+                        //If this name is encoded, decode it
+                        if (preg_match('/^=\?.*\?=$/', $name)) {
+                            $name = mb_decode_mimeheader($name);
+                        }
                         $addresses[] = [
-                            'name' => trim(str_replace(['"', "'"], '', $name)),
+                            //Remove any surrounding quotes and spaces from the name
+                            'name' => trim($name, '\'" '),
                             'address' => $email,
                         ];
                     }
@@ -1242,7 +1266,7 @@
     {
         $address = trim($address);
         $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim
-        // Don't validate now addresses with IDN. Will be done in send().
+        //Don't validate now addresses with IDN. Will be done in send().
         $pos = strrpos($address, '@');
         if (
             (false === $pos)
@@ -1313,7 +1337,8 @@
         if (null === $patternselect) {
             $patternselect = static::$validator;
         }
-        if (is_callable($patternselect)) {
+        //Don't allow strings as callables, see SECURITY.md and CVE-2021-3603
+        if (is_callable($patternselect) && !is_string($patternselect)) {
             return call_user_func($patternselect, $address);
         }
         //Reject line breaks in addresses; it's valid RFC5322, but not RFC5321
@@ -1395,7 +1420,7 @@
      */
     public function punyencodeAddress($address)
     {
-        // Verify we have required functions, CharSet, and at-sign.
+        //Verify we have required functions, CharSet, and at-sign.
         $pos = strrpos($address, '@');
         if (
             !empty($this->CharSet) &&
@@ -1403,16 +1428,20 @@
             static::idnSupported()
         ) {
             $domain = substr($address, ++$pos);
-            // Verify CharSet string is a valid one, and domain properly encoded in this CharSet.
+            //Verify CharSet string is a valid one, and domain properly encoded in this CharSet.
             if ($this->has8bitChars($domain) && @mb_check_encoding($domain, $this->CharSet)) {
-                $domain = mb_convert_encoding($domain, 'UTF-8', $this->CharSet);
+                //Convert the domain from whatever charset it's in to UTF-8
+                $domain = mb_convert_encoding($domain, self::CHARSET_UTF8, $this->CharSet);
                 //Ignore IDE complaints about this line - method signature changed in PHP 5.4
                 $errorcode = 0;
                 if (defined('INTL_IDNA_VARIANT_UTS46')) {
-                    $punycode = idn_to_ascii($domain, $errorcode, INTL_IDNA_VARIANT_UTS46);
+                    //Use the current punycode standard (appeared in PHP 7.2)
+                    $punycode = idn_to_ascii($domain, $errorcode, \INTL_IDNA_VARIANT_UTS46);
                 } elseif (defined('INTL_IDNA_VARIANT_2003')) {
-                    $punycode = idn_to_ascii($domain, $errorcode, INTL_IDNA_VARIANT_2003);
+                    //Fall back to this old, deprecated/removed encoding
+                    $punycode = idn_to_ascii($domain, $errorcode, \INTL_IDNA_VARIANT_2003);
                 } else {
+                    //Fall back to a default we don't know about
                     $punycode = idn_to_ascii($domain, $errorcode);
                 }
                 if (false !== $punycode) {
@@ -1462,7 +1491,7 @@
     {
         if (
             'smtp' === $this->Mailer
-            || ('mail' === $this->Mailer && (PHP_VERSION_ID >= 80000 || stripos(PHP_OS, 'WIN') === 0))
+            || ('mail' === $this->Mailer && (\PHP_VERSION_ID >= 80000 || stripos(PHP_OS, 'WIN') === 0))
         ) {
             //SMTP mandates RFC-compliant line endings
             //and it's also used with mail() on Windows
@@ -1474,8 +1503,8 @@
         //Check for buggy PHP versions that add a header with an incorrect line break
         if (
             'mail' === $this->Mailer
-            && ((PHP_VERSION_ID >= 70000 && PHP_VERSION_ID < 70017)
-                || (PHP_VERSION_ID >= 70100 && PHP_VERSION_ID < 70103))
+            && ((\PHP_VERSION_ID >= 70000 && \PHP_VERSION_ID < 70017)
+                || (\PHP_VERSION_ID >= 70100 && \PHP_VERSION_ID < 70103))
             && ini_get('mail.add_x_header') === '1'
             && stripos(PHP_OS, 'WIN') === 0
         ) {
@@ -1488,10 +1517,10 @@
         }
 
         try {
-            $this->error_count = 0; // Reset errors
+            $this->error_count = 0; //Reset errors
             $this->mailHeader = '';
 
-            // Dequeue recipient and Reply-To addresses with IDN
+            //Dequeue recipient and Reply-To addresses with IDN
             foreach (array_merge($this->RecipientsQueue, $this->ReplyToQueue) as $params) {
                 $params[1] = $this->punyencodeAddress($params[1]);
                 call_user_func_array([$this, 'addAnAddress'], $params);
@@ -1500,7 +1529,7 @@
                 throw new Exception($this->lang('provide_address'), self::STOP_CRITICAL);
             }
 
-            // Validate From, Sender, and ConfirmReadingTo addresses
+            //Validate From, Sender, and ConfirmReadingTo addresses
             foreach (['From', 'Sender', 'ConfirmReadingTo'] as $address_kind) {
                 $this->$address_kind = trim($this->$address_kind);
                 if (empty($this->$address_kind)) {
@@ -1524,29 +1553,29 @@
                 }
             }
 
-            // Set whether the message is multipart/alternative
+            //Set whether the message is multipart/alternative
             if ($this->alternativeExists()) {
                 $this->ContentType = static::CONTENT_TYPE_MULTIPART_ALTERNATIVE;
             }
 
             $this->setMessageType();
-            // Refuse to send an empty message unless we are specifically allowing it
+            //Refuse to send an empty message unless we are specifically allowing it
             if (!$this->AllowEmpty && empty($this->Body)) {
                 throw new Exception($this->lang('empty_message'), self::STOP_CRITICAL);
             }
 
             //Trim subject consistently
             $this->Subject = trim($this->Subject);
-            // Create body before headers in case body makes changes to headers (e.g. altering transfer encoding)
+            //Create body before headers in case body makes changes to headers (e.g. altering transfer encoding)
             $this->MIMEHeader = '';
             $this->MIMEBody = $this->createBody();
-            // createBody may have added some headers, so retain them
+            //createBody may have added some headers, so retain them
             $tempheaders = $this->MIMEHeader;
             $this->MIMEHeader = $this->createHeader();
             $this->MIMEHeader .= $tempheaders;
 
-            // To capture the complete message when using mail(), create
-            // an extra header list which createHeader() doesn't fold in
+            //To capture the complete message when using mail(), create
+            //an extra header list which createHeader() doesn't fold in
             if ('mail' === $this->Mailer) {
                 if (count($this->to) > 0) {
                     $this->mailHeader .= $this->addrAppend('To', $this->to);
@@ -1559,7 +1588,7 @@
                 );
             }
 
-            // Sign with DKIM if enabled
+            //Sign with DKIM if enabled
             if (
                 !empty($this->DKIM_domain)
                 && !empty($this->DKIM_selector)
@@ -1600,7 +1629,7 @@
     public function postSend()
     {
         try {
-            // Choose the mailer and send through it
+            //Choose the mailer and send through it
             switch ($this->Mailer) {
                 case 'sendmail':
                 case 'qmail':
@@ -1645,22 +1674,44 @@
      */
     protected function sendmailSend($header, $body)
     {
+        if ($this->Mailer === 'qmail') {
+            $this->edebug('Sending with qmail');
+        } else {
+            $this->edebug('Sending with sendmail');
+        }
         $header = static::stripTrailingWSP($header) . static::$LE . static::$LE;
-
-        // CVE-2016-10033, CVE-2016-10045: Don't pass -f if characters will be escaped.
-        if (!empty($this->Sender) && self::isShellSafe($this->Sender)) {
-            if ('qmail' === $this->Mailer) {
+        //This sets the SMTP envelope sender which gets turned into a return-path header by the receiver
+        //A space after `-f` is optional, but there is a long history of its presence
+        //causing problems, so we don't use one
+        //Exim docs: http://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_exim_command_line.html
+        //Sendmail docs: http://www.sendmail.org/~ca/email/man/sendmail.html
+        //Qmail docs: http://www.qmail.org/man/man8/qmail-inject.html
+        //Example problem: https://www.drupal.org/node/1057954
+        if (empty($this->Sender) && !empty(ini_get('sendmail_from'))) {
+            //PHP config has a sender address we can use
+            $this->Sender = ini_get('sendmail_from');
+        }
+        //CVE-2016-10033, CVE-2016-10045: Don't pass -f if characters will be escaped.
+        if (!empty($this->Sender) && static::validateAddress($this->Sender) && self::isShellSafe($this->Sender)) {
+            if ($this->Mailer === 'qmail') {
                 $sendmailFmt = '%s -f%s';
             } else {
                 $sendmailFmt = '%s -oi -f%s -t';
             }
-        } elseif ('qmail' === $this->Mailer) {
-            $sendmailFmt = '%s';
         } else {
+            //allow sendmail to choose a default envelope sender. It may
+            //seem preferable to force it to use the From header as with
+            //SMTP, but that introduces new problems (see
+            //<https://github.com/PHPMailer/PHPMailer/issues/2298>), and
+            //it has historically worked this way.
             $sendmailFmt = '%s -oi -t';
         }
 
         $sendmail = sprintf($sendmailFmt, escapeshellcmd($this->Sendmail), $this->Sender);
+        $this->edebug('Sendmail path: ' . $this->Sendmail);
+        $this->edebug('Sendmail command: ' . $sendmail);
+        $this->edebug('Envelope sender: ' . $this->Sender);
+        $this->edebug("Headers: {$header}");
 
         if ($this->SingleTo) {
             foreach ($this->SingleToArray as $toAddr) {
@@ -1668,13 +1719,15 @@
                 if (!$mail) {
                     throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL);
                 }
+                $this->edebug("To: {$toAddr}");
                 fwrite($mail, 'To: ' . $toAddr . "\n");
                 fwrite($mail, $header);
                 fwrite($mail, $body);
                 $result = pclose($mail);
+                $addrinfo = static::parseAddresses($toAddr);
                 $this->doCallback(
                     ($result === 0),
-                    [$toAddr],
+                    [[$addrinfo['address'], $addrinfo['name']]],
                     $this->cc,
                     $this->bcc,
                     $this->Subject,
@@ -1682,6 +1735,7 @@
                     $this->From,
                     []
                 );
+                $this->edebug("Result: " . ($result === 0 ? 'true' : 'false'));
                 if (0 !== $result) {
                     throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL);
                 }
@@ -1704,6 +1758,7 @@
                 $this->From,
                 []
             );
+            $this->edebug("Result: " . ($result === 0 ? 'true' : 'false'));
             if (0 !== $result) {
                 throw new Exception($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL);
             }
@@ -1724,7 +1779,7 @@
      */
     protected static function isShellSafe($string)
     {
-        // Future-proof
+        //Future-proof
         if (
             escapeshellcmd($string) !== $string
             || !in_array(escapeshellarg($string), ["'$string'", "\"$string\""])
@@ -1737,9 +1792,9 @@
         for ($i = 0; $i < $length; ++$i) {
             $c = $string[$i];
 
-            // All other characters have a special meaning in at least one common shell, including = and +.
-            // Full stop (.) has a special meaning in cmd.exe, but its impact should be negligible here.
-            // Note that this does permit non-Latin alphanumeric characters based on the current locale.
+            //All other characters have a special meaning in at least one common shell, including = and +.
+            //Full stop (.) has a special meaning in cmd.exe, but its impact should be negligible here.
+            //Note that this does permit non-Latin alphanumeric characters based on the current locale.
             if (!ctype_alnum($c) && strpos('@_-.', $c) === false) {
                 return false;
             }
@@ -1759,7 +1814,8 @@
      */
     protected static function isPermittedPath($path)
     {
-        return !preg_match('#^[a-z]+://#i', $path);
+        //Matches scheme definition from https://tools.ietf.org/html/rfc3986#section-3.1
+        return !preg_match('#^[a-z][a-z\d+.-]*://#i', $path);
     }
 
     /**
@@ -1771,12 +1827,15 @@
      */
     protected static function fileIsAccessible($path)
     {
+        if (!static::isPermittedPath($path)) {
+            return false;
+        }
         $readable = file_exists($path);
         //If not a UNC path (expected to start with \\), check read permission, see #2069
         if (strpos($path, '\\\\') !== 0) {
             $readable = $readable && is_readable($path);
         }
-        return static::isPermittedPath($path) && $readable;
+        return  $readable;
     }
 
     /**
@@ -1809,11 +1868,15 @@
         //Sendmail docs: http://www.sendmail.org/~ca/email/man/sendmail.html
         //Qmail docs: http://www.qmail.org/man/man8/qmail-inject.html
         //Example problem: https://www.drupal.org/node/1057954
-        // CVE-2016-10033, CVE-2016-10045: Don't pass -f if characters will be escaped.
-        if (!empty($this->Sender) && static::validateAddress($this->Sender) && self::isShellSafe($this->Sender)) {
-            $params = sprintf('-f%s', $this->Sender);
+        //CVE-2016-10033, CVE-2016-10045: Don't pass -f if characters will be escaped.
+        if (empty($this->Sender) && !empty(ini_get('sendmail_from'))) {
+            //PHP config has a sender address we can use
+            $this->Sender = ini_get('sendmail_from');
         }
         if (!empty($this->Sender) && static::validateAddress($this->Sender)) {
+            if (self::isShellSafe($this->Sender)) {
+                $params = sprintf('-f%s', $this->Sender);
+            }
             $old_from = ini_get('sendmail_from');
             ini_set('sendmail_from', $this->Sender);
         }
@@ -1821,7 +1884,17 @@
         if ($this->SingleTo && count($toArr) > 1) {
             foreach ($toArr as $toAddr) {
                 $result = $this->mailPassthru($toAddr, $this->Subject, $body, $header, $params);
-                $this->doCallback($result, [$toAddr], $this->cc, $this->bcc, $this->Subject, $body, $this->From, []);
+                $addrinfo = static::parseAddresses($toAddr);
+                $this->doCallback(
+                    $result,
+                    [[$addrinfo['address'], $addrinfo['name']]],
+                    $this->cc,
+                    $this->bcc,
+                    $this->Subject,
+                    $body,
+                    $this->From,
+                    []
+                );
             }
         } else {
             $result = $this->mailPassthru($to, $this->Subject, $body, $header, $params);
@@ -1899,7 +1972,7 @@
         }
 
         $callbacks = [];
-        // Attempt to send to all recipients
+        //Attempt to send to all recipients
         foreach ([$this->to, $this->cc, $this->bcc] as $togroup) {
             foreach ($togroup as $to) {
                 if (!$this->smtp->recipient($to[0], $this->dsn)) {
@@ -1910,11 +1983,11 @@
                     $isSent = true;
                 }
 
-                $callbacks[] = ['issent' => $isSent, 'to' => $to[0]];
+                $callbacks[] = ['issent' => $isSent, 'to' => $to[0], 'name' => $to[1]];
             }
         }
 
-        // Only send the DATA command if we have viable recipients
+        //Only send the DATA command if we have viable recipients
         if ((count($this->all_recipients) > count($bad_rcpt)) && !$this->smtp->data($header . $body)) {
             throw new Exception($this->lang('data_not_accepted'), self::STOP_CRITICAL);
         }
@@ -1931,7 +2004,7 @@
         foreach ($callbacks as $cb) {
             $this->doCallback(
                 $cb['issent'],
-                [$cb['to']],
+                [[$cb['to'], $cb['name']]],
                 [],
                 [],
                 $this->Subject,
@@ -1976,7 +2049,7 @@
             $options = $this->SMTPOptions;
         }
 
-        // Already connected?
+        //Already connected?
         if ($this->smtp->connected()) {
             return true;
         }
@@ -1998,14 +2071,14 @@
                 )
             ) {
                 $this->edebug($this->lang('invalid_hostentry') . ' ' . trim($hostentry));
-                // Not a valid host entry
+                //Not a valid host entry
                 continue;
             }
-            // $hostinfo[1]: optional ssl or tls prefix
-            // $hostinfo[2]: the hostname
-            // $hostinfo[3]: optional port number
-            // The host string prefix can temporarily override the current setting for SMTPSecure
-            // If it's not specified, the default value is used
+            //$hostinfo[1]: optional ssl or tls prefix
+            //$hostinfo[2]: the hostname
+            //$hostinfo[3]: optional port number
+            //The host string prefix can temporarily override the current setting for SMTPSecure
+            //If it's not specified, the default value is used
 
             //Check the host name is a valid name or IP address before trying to use it
             if (!static::isValidHost($hostinfo[2])) {
@@ -2017,11 +2090,11 @@
             $tls = (static::ENCRYPTION_STARTTLS === $this->SMTPSecure);
             if ('ssl' === $hostinfo[1] || ('' === $hostinfo[1] && static::ENCRYPTION_SMTPS === $this->SMTPSecure)) {
                 $prefix = 'ssl://';
-                $tls = false; // Can't have SSL and TLS at the same time
+                $tls = false; //Can't have SSL and TLS at the same time
                 $secure = static::ENCRYPTION_SMTPS;
             } elseif ('tls' === $hostinfo[1]) {
                 $tls = true;
-                // tls doesn't use a prefix
+                //TLS doesn't use a prefix
                 $secure = static::ENCRYPTION_STARTTLS;
             }
             //Do we need the OpenSSL extension?
@@ -2051,10 +2124,10 @@
                     }
                     $this->smtp->hello($hello);
                     //Automatically enable TLS encryption if:
-                    // * it's not disabled
-                    // * we have openssl extension
-                    // * we are not already using SSL
-                    // * the server offers STARTTLS
+                    //* it's not disabled
+                    //* we have openssl extension
+                    //* we are not already using SSL
+                    //* the server offers STARTTLS
                     if ($this->SMTPAutoTLS && $sslext && 'ssl' !== $secure && $this->smtp->getServerExt('STARTTLS')) {
                         $tls = true;
                     }
@@ -2062,7 +2135,7 @@
                         if (!$this->smtp->startTLS()) {
                             throw new Exception($this->lang('connect_host'));
                         }
-                        // We must resend EHLO after TLS negotiation
+                        //We must resend EHLO after TLS negotiation
                         $this->smtp->hello($hello);
                     }
                     if (
@@ -2080,14 +2153,14 @@
                 } catch (Exception $exc) {
                     $lastexception = $exc;
                     $this->edebug($exc->getMessage());
-                    // We must have connected, but then failed TLS or Auth, so close connection nicely
+                    //We must have connected, but then failed TLS or Auth, so close connection nicely
                     $this->smtp->quit();
                 }
             }
         }
-        // If we get here, all connection attempts have failed, so close connection hard
+        //If we get here, all connection attempts have failed, so close connection hard
         $this->smtp->close();
-        // As we've caught all exceptions, just report whatever the last one was
+        //As we've caught all exceptions, just report whatever the last one was
         if ($this->exceptions && null !== $lastexception) {
             throw $lastexception;
         }
@@ -2112,13 +2185,14 @@
      * The default language is English.
      *
      * @param string $langcode  ISO 639-1 2-character language code (e.g. French is "fr")
-     * @param string $lang_path Path to the language file directory, with trailing separator (slash)
+     * @param string $lang_path Path to the language file directory, with trailing separator (slash).D
+     *                          Do not set this from user input!
      *
      * @return bool
      */
     public function setLanguage($langcode = 'en', $lang_path = '')
     {
-        // Backwards compatibility for renamed language codes
+        //Backwards compatibility for renamed language codes
         $renamed_langcodes = [
             'br' => 'pt_br',
             'cz' => 'cs',
@@ -2134,7 +2208,7 @@
             $langcode = $renamed_langcodes[$langcode];
         }
 
-        // Define full set of translatable strings in English
+        //Define full set of translatable strings in English
         $PHPMAILER_LANG = [
             'authenticate' => 'SMTP Error: Could not authenticate.',
             'connect_host' => 'SMTP Error: Could not connect to SMTP host.',
@@ -2159,7 +2233,7 @@
             'extension_missing' => 'Extension missing: ',
         ];
         if (empty($lang_path)) {
-            // Calculate an absolute path so it can work if CWD is not here
+            //Calculate an absolute path so it can work if CWD is not here
             $lang_path = dirname(__DIR__) . DIRECTORY_SEPARATOR . 'language' . DIRECTORY_SEPARATOR;
         }
         //Validate $langcode
@@ -2168,20 +2242,38 @@
         }
         $foundlang = true;
         $lang_file = $lang_path . 'phpmailer.lang-' . $langcode . '.php';
-        // There is no English translation file
+        //There is no English translation file
         if ('en' !== $langcode) {
-            // Make sure language file path is readable
+            //Make sure language file path is readable
             if (!static::fileIsAccessible($lang_file)) {
                 $foundlang = false;
             } else {
-                // Overwrite language-specific strings.
-                // This way we'll never have missing translation keys.
-                $foundlang = include $lang_file;
+                //$foundlang = include $lang_file;
+                $lines = file($lang_file);
+                foreach ($lines as $line) {
+                    //Translation file lines look like this:
+                    //$PHPMAILER_LANG['authenticate'] = 'SMTP-Fehler: Authentifizierung fehlgeschlagen.';
+                    //These files are parsed as text and not PHP so as to avoid the possibility of code injection
+                    //See https://blog.stevenlevithan.com/archives/match-quoted-string
+                    $matches = [];
+                    if (
+                        preg_match(
+                            '/^\$PHPMAILER_LANG\[\'([a-z\d_]+)\'\]\s*=\s*(["\'])(.+)*?\2;/',
+                            $line,
+                            $matches
+                        ) &&
+                        //Ignore unknown translation keys
+                        array_key_exists($matches[1], $PHPMAILER_LANG)
+                    ) {
+                        //Overwrite language-specific strings so we'll never have missing translation keys.
+                        $PHPMAILER_LANG[$matches[1]] = (string)$matches[3];
+                    }
+                }
             }
         }
         $this->language = $PHPMAILER_LANG;
 
-        return (bool) $foundlang; // Returns false if language not found
+        return $foundlang; //Returns false if language not found
     }
 
     /**
@@ -2225,7 +2317,7 @@
      */
     public function addrFormat($addr)
     {
-        if (empty($addr[1])) { // No name provided
+        if (empty($addr[1])) { //No name provided
             return $this->secureHeader($addr[0]);
         }
 
@@ -2252,8 +2344,8 @@
         } else {
             $soft_break = static::$LE;
         }
-        // If utf-8 encoding is used, we will need to make sure we don't
-        // split multibyte characters when we wrap
+        //If utf-8 encoding is used, we will need to make sure we don't
+        //split multibyte characters when we wrap
         $is_utf8 = static::CHARSET_UTF8 === strtolower($this->CharSet);
         $lelen = strlen(static::$LE);
         $crlflen = strlen(static::$LE);
@@ -2353,29 +2445,29 @@
             $lastChunk = substr($encodedText, $maxLength - $lookBack, $lookBack);
             $encodedCharPos = strpos($lastChunk, '=');
             if (false !== $encodedCharPos) {
-                // Found start of encoded character byte within $lookBack block.
-                // Check the encoded byte value (the 2 chars after the '=')
+                //Found start of encoded character byte within $lookBack block.
+                //Check the encoded byte value (the 2 chars after the '=')
                 $hex = substr($encodedText, $maxLength - $lookBack + $encodedCharPos + 1, 2);
                 $dec = hexdec($hex);
                 if ($dec < 128) {
-                    // Single byte character.
-                    // If the encoded char was found at pos 0, it will fit
-                    // otherwise reduce maxLength to start of the encoded char
+                    //Single byte character.
+                    //If the encoded char was found at pos 0, it will fit
+                    //otherwise reduce maxLength to start of the encoded char
                     if ($encodedCharPos > 0) {
                         $maxLength -= $lookBack - $encodedCharPos;
                     }
                     $foundSplitPos = true;
                 } elseif ($dec >= 192) {
-                    // First byte of a multi byte character
-                    // Reduce maxLength to split at start of character
+                    //First byte of a multi byte character
+                    //Reduce maxLength to split at start of character
                     $maxLength -= $lookBack - $encodedCharPos;
                     $foundSplitPos = true;
                 } elseif ($dec < 192) {
-                    // Middle byte of a multi byte character, look further back
+                    //Middle byte of a multi byte character, look further back
                     $lookBack += 3;
                 }
             } else {
-                // No encoded character found
+                //No encoded character found
                 $foundSplitPos = true;
             }
         }
@@ -2419,7 +2511,7 @@
 
         $result .= $this->headerLine('Date', '' === $this->MessageDate ? self::rfcDate() : $this->MessageDate);
 
-        // The To header is created automatically by mail(), so needs to be omitted here
+        //The To header is created automatically by mail(), so needs to be omitted here
         if ('mail' !== $this->Mailer) {
             if ($this->SingleTo) {
                 foreach ($this->to as $toaddr) {
@@ -2433,12 +2525,12 @@
         }
         $result .= $this->addrAppend('From', [[trim($this->From), $this->FromName]]);
 
-        // sendmail and mail() extract Cc from the header before sending
+        //sendmail and mail() extract Cc from the header before sending
         if (count($this->cc) > 0) {
             $result .= $this->addrAppend('Cc', $this->cc);
         }
 
-        // sendmail and mail() extract Bcc from the header before sending
+        //sendmail and mail() extract Bcc from the header before sending
         if (
             (
                 'sendmail' === $this->Mailer || 'qmail' === $this->Mailer || 'mail' === $this->Mailer
@@ -2452,13 +2544,13 @@
             $result .= $this->addrAppend('Reply-To', $this->ReplyTo);
         }
 
-        // mail() sets the subject itself
+        //mail() sets the subject itself
         if ('mail' !== $this->Mailer) {
             $result .= $this->headerLine('Subject', $this->encodeHeader($this->secureHeader($this->Subject)));
         }
 
-        // Only allow a custom message ID if it conforms to RFC 5322 section 3.6.4
-        // https://tools.ietf.org/html/rfc5322#section-3.6.4
+        //Only allow a custom message ID if it conforms to RFC 5322 section 3.6.4
+        //https://tools.ietf.org/html/rfc5322#section-3.6.4
         if ('' !== $this->MessageID && preg_match('/^<.*@.*>$/', $this->MessageID)) {
             $this->lastMessageID = $this->MessageID;
         } else {
@@ -2484,7 +2576,7 @@
             $result .= $this->headerLine('Disposition-Notification-To', '<' . $this->ConfirmReadingTo . '>');
         }
 
-        // Add custom headers
+        //Add custom headers
         foreach ($this->CustomHeader as $header) {
             $result .= $this->headerLine(
                 trim($header[0]),
@@ -2526,28 +2618,24 @@
                 $result .= $this->textLine(' boundary="' . $this->boundary[1] . '"');
                 break;
             default:
-                // Catches case 'plain': and case '':
+                //Catches case 'plain': and case '':
                 $result .= $this->textLine('Content-Type: ' . $this->ContentType . '; charset=' . $this->CharSet);
                 $ismultipart = false;
                 break;
         }
-        // RFC1341 part 5 says 7bit is assumed if not specified
+        //RFC1341 part 5 says 7bit is assumed if not specified
         if (static::ENCODING_7BIT !== $this->Encoding) {
-            // RFC 2045 section 6.4 says multipart MIME parts may only use 7bit, 8bit or binary CTE
+            //RFC 2045 section 6.4 says multipart MIME parts may only use 7bit, 8bit or binary CTE
             if ($ismultipart) {
                 if (static::ENCODING_8BIT === $this->Encoding) {
                     $result .= $this->headerLine('Content-Transfer-Encoding', static::ENCODING_8BIT);
                 }
-                // The only remaining alternatives are quoted-printable and base64, which are both 7bit compatible
+                //The only remaining alternatives are quoted-printable and base64, which are both 7bit compatible
             } else {
                 $result .= $this->headerLine('Content-Transfer-Encoding', $this->Encoding);
             }
         }
 
-        if ('mail' !== $this->Mailer) {
-//            $result .= static::$LE;
-        }
-
         return $result;
     }
 
@@ -2816,7 +2904,7 @@
                 $body .= $this->attachAll('attachment', $this->boundary[1]);
                 break;
             default:
-                // Catch case 'plain' and case '', applies to simple `text/plain` and `text/html` body content types
+                //Catch case 'plain' and case '', applies to simple `text/plain` and `text/html` body content types
                 //Reset the `Encoding` property in case we changed it for line length reasons
                 $this->Encoding = $bodyEncoding;
                 $body .= $this->encodeString($this->Body, $this->Encoding);
@@ -2907,7 +2995,7 @@
         $result .= $this->textLine('--' . $boundary);
         $result .= sprintf('Content-Type: %s; charset=%s', $contentType, $charSet);
         $result .= static::$LE;
-        // RFC1341 part 5 says 7bit is assumed if not specified
+        //RFC1341 part 5 says 7bit is assumed if not specified
         if (static::ENCODING_7BIT !== $encoding) {
             $result .= $this->headerLine('Content-Transfer-Encoding', $encoding);
         }
@@ -3005,7 +3093,7 @@
                 throw new Exception($this->lang('file_access') . $path, self::STOP_CONTINUE);
             }
 
-            // If a MIME type is not specified, try to work it out from the file name
+            //If a MIME type is not specified, try to work it out from the file name
             if ('' === $type) {
                 $type = static::filenameToType($path);
             }
@@ -3024,7 +3112,7 @@
                 2 => $name,
                 3 => $encoding,
                 4 => $type,
-                5 => false, // isStringAttachment
+                5 => false, //isStringAttachment
                 6 => $disposition,
                 7 => $name,
             ];
@@ -3064,16 +3152,16 @@
      */
     protected function attachAll($disposition_type, $boundary)
     {
-        // Return text of body
+        //Return text of body
         $mime = [];
         $cidUniq = [];
         $incl = [];
 
-        // Add all attachments
+        //Add all attachments
         foreach ($this->attachment as $attachment) {
-            // Check if it is a valid disposition_filter
+            //Check if it is a valid disposition_filter
             if ($attachment[6] === $disposition_type) {
-                // Check for string attachment
+                //Check for string attachment
                 $string = '';
                 $path = '';
                 $bString = $attachment[5];
@@ -3114,7 +3202,7 @@
                         static::$LE
                     );
                 }
-                // RFC1341 part 5 says 7bit is assumed if not specified
+                //RFC1341 part 5 says 7bit is assumed if not specified
                 if (static::ENCODING_7BIT !== $encoding) {
                     $mime[] = sprintf('Content-Transfer-Encoding: %s%s', $encoding, static::$LE);
                 }
@@ -3124,7 +3212,7 @@
                     $mime[] = 'Content-ID: <' . $this->encodeHeader($this->secureHeader($cid)) . '>' . static::$LE;
                 }
 
-                // Allow for bypassing the Content-Disposition header
+                //Allow for bypassing the Content-Disposition header
                 if (!empty($disposition)) {
                     $encoded_name = $this->encodeHeader($this->secureHeader($name));
                     if (!empty($encoded_name)) {
@@ -3145,7 +3233,7 @@
                     $mime[] = static::$LE;
                 }
 
-                // Encode as string attachment
+                //Encode as string attachment
                 if ($bString) {
                     $mime[] = $this->encodeString($string, $encoding);
                 } else {
@@ -3221,7 +3309,7 @@
             case static::ENCODING_7BIT:
             case static::ENCODING_8BIT:
                 $encoded = static::normalizeBreaks($str);
-                // Make sure it ends with a line break
+                //Make sure it ends with a line break
                 if (substr($encoded, -(strlen(static::$LE))) !== static::$LE) {
                     $encoded .= static::$LE;
                 }
@@ -3259,7 +3347,7 @@
         switch (strtolower($position)) {
             case 'phrase':
                 if (!preg_match('/[\200-\377]/', $str)) {
-                    // Can't use addslashes as we don't know the value of magic_quotes_sybase
+                    //Can't use addslashes as we don't know the value of magic_quotes_sybase
                     $encoded = addcslashes($str, "\0..\37\177\\\"");
                     if (($str === $encoded) && !preg_match('/[^A-Za-z0-9!#$%&\'*+\/=?^_`{|}~ -]/', $str)) {
                         return $encoded;
@@ -3285,7 +3373,7 @@
             $charset = static::CHARSET_ASCII;
         }
 
-        // Q/B encoding adds 8 chars and the charset ("` =?<charset>?[QB]?<content>?=`").
+        //Q/B encoding adds 8 chars and the charset ("` =?<charset>?[QB]?<content>?=`").
         $overhead = 8 + strlen($charset);
 
         if ('mail' === $this->Mailer) {
@@ -3294,26 +3382,26 @@
             $maxlen = static::MAX_LINE_LENGTH - $overhead;
         }
 
-        // Select the encoding that produces the shortest output and/or prevents corruption.
+        //Select the encoding that produces the shortest output and/or prevents corruption.
         if ($matchcount > strlen($str) / 3) {
-            // More than 1/3 of the content needs encoding, use B-encode.
+            //More than 1/3 of the content needs encoding, use B-encode.
             $encoding = 'B';
         } elseif ($matchcount > 0) {
-            // Less than 1/3 of the content needs encoding, use Q-encode.
+            //Less than 1/3 of the content needs encoding, use Q-encode.
             $encoding = 'Q';
         } elseif (strlen($str) > $maxlen) {
-            // No encoding needed, but value exceeds max line length, use Q-encode to prevent corruption.
+            //No encoding needed, but value exceeds max line length, use Q-encode to prevent corruption.
             $encoding = 'Q';
         } else {
-            // No reformatting needed
+            //No reformatting needed
             $encoding = false;
         }
 
         switch ($encoding) {
             case 'B':
                 if ($this->hasMultiBytes($str)) {
-                    // Use a custom function which correctly encodes and wraps long
-                    // multibyte strings without breaking lines within a character
+                    //Use a custom function which correctly encodes and wraps long
+                    //multibyte strings without breaking lines within a character
                     $encoded = $this->base64EncodeWrapMB($str, "\n");
                 } else {
                     $encoded = base64_encode($str);
@@ -3348,7 +3436,7 @@
             return strlen($str) > mb_strlen($str, $this->CharSet);
         }
 
-        // Assume no multibytes (we can't handle without mbstring functions anyway)
+        //Assume no multibytes (we can't handle without mbstring functions anyway)
         return false;
     }
 
@@ -3386,11 +3474,11 @@
         }
 
         $mb_length = mb_strlen($str, $this->CharSet);
-        // Each line must have length <= 75, including $start and $end
+        //Each line must have length <= 75, including $start and $end
         $length = 75 - strlen($start) - strlen($end);
-        // Average multi-byte ratio
+        //Average multi-byte ratio
         $ratio = $mb_length / strlen($str);
-        // Base64 has a 4:3 ratio
+        //Base64 has a 4:3 ratio
         $avgLength = floor($length * $ratio * .75);
 
         $offset = 0;
@@ -3405,7 +3493,7 @@
             $encoded .= $chunk . $linebreak;
         }
 
-        // Chomp the last linefeed
+        //Chomp the last linefeed
         return substr($encoded, 0, -strlen($linebreak));
     }
 
@@ -3434,12 +3522,12 @@
      */
     public function encodeQ($str, $position = 'text')
     {
-        // There should not be any EOL in the string
+        //There should not be any EOL in the string
         $pattern = '';
         $encoded = str_replace(["\r", "\n"], '', $str);
         switch (strtolower($position)) {
             case 'phrase':
-                // RFC 2047 section 5.3
+                //RFC 2047 section 5.3
                 $pattern = '^A-Za-z0-9!*+\/ -';
                 break;
             /*
@@ -3452,15 +3540,15 @@
             /* Intentional fall through */
             case 'text':
             default:
-                // RFC 2047 section 5.1
-                // Replace every high ascii, control, =, ? and _ characters
+                //RFC 2047 section 5.1
+                //Replace every high ascii, control, =, ? and _ characters
                 $pattern = '\000-\011\013\014\016-\037\075\077\137\177-\377' . $pattern;
                 break;
         }
         $matches = [];
         if (preg_match_all("/[{$pattern}]/", $encoded, $matches)) {
-            // If the string contains an '=', make sure it's the first thing we replace
-            // so as to avoid double-encoding
+            //If the string contains an '=', make sure it's the first thing we replace
+            //so as to avoid double-encoding
             $eqkey = array_search('=', $matches[0], true);
             if (false !== $eqkey) {
                 unset($matches[0][$eqkey]);
@@ -3470,8 +3558,8 @@
                 $encoded = str_replace($char, '=' . sprintf('%02X', ord($char)), $encoded);
             }
         }
-        // Replace spaces with _ (more readable than =20)
-        // RFC 2047 section 4.2(2)
+        //Replace spaces with _ (more readable than =20)
+        //RFC 2047 section 4.2(2)
         return str_replace(' ', '_', $encoded);
     }
 
@@ -3498,7 +3586,7 @@
         $disposition = 'attachment'
     ) {
         try {
-            // If a MIME type is not specified, try to work it out from the file name
+            //If a MIME type is not specified, try to work it out from the file name
             if ('' === $type) {
                 $type = static::filenameToType($filename);
             }
@@ -3507,14 +3595,14 @@
                 throw new Exception($this->lang('encoding') . $encoding);
             }
 
-            // Append to $attachment array
+            //Append to $attachment array
             $this->attachment[] = [
                 0 => $string,
                 1 => $filename,
                 2 => static::mb_pathinfo($filename, PATHINFO_BASENAME),
                 3 => $encoding,
                 4 => $type,
-                5 => true, // isStringAttachment
+                5 => true, //isStringAttachment
                 6 => $disposition,
                 7 => 0,
             ];
@@ -3565,7 +3653,7 @@
                 throw new Exception($this->lang('file_access') . $path, self::STOP_CONTINUE);
             }
 
-            // If a MIME type is not specified, try to work it out from the file name
+            //If a MIME type is not specified, try to work it out from the file name
             if ('' === $type) {
                 $type = static::filenameToType($path);
             }
@@ -3579,14 +3667,14 @@
                 $name = $filename;
             }
 
-            // Append to $attachment array
+            //Append to $attachment array
             $this->attachment[] = [
                 0 => $path,
                 1 => $filename,
                 2 => $name,
                 3 => $encoding,
                 4 => $type,
-                5 => false, // isStringAttachment
+                5 => false, //isStringAttachment
                 6 => $disposition,
                 7 => $cid,
             ];
@@ -3631,7 +3719,7 @@
         $disposition = 'inline'
     ) {
         try {
-            // If a MIME type is not specified, try to work it out from the name
+            //If a MIME type is not specified, try to work it out from the name
             if ('' === $type && !empty($name)) {
                 $type = static::filenameToType($name);
             }
@@ -3640,14 +3728,14 @@
                 throw new Exception($this->lang('encoding') . $encoding);
             }
 
-            // Append to $attachment array
+            //Append to $attachment array
             $this->attachment[] = [
                 0 => $string,
                 1 => $name,
                 2 => $name,
                 3 => $encoding,
                 4 => $type,
-                5 => true, // isStringAttachment
+                5 => true, //isStringAttachment
                 6 => $disposition,
                 7 => $cid,
             ];
@@ -3867,8 +3955,8 @@
      */
     public static function rfcDate()
     {
-        // Set the time zone to whatever the default is to avoid 500 errors
-        // Will default to UTC if it's not set properly in php.ini
+        //Set the time zone to whatever the default is to avoid 500 errors
+        //Will default to UTC if it's not set properly in php.ini
         date_default_timezone_set(@date_default_timezone_get());
 
         return date('D, j M Y H:i:s O');
@@ -3946,13 +4034,13 @@
     protected function lang($key)
     {
         if (count($this->language) < 1) {
-            $this->setLanguage(); // set the default language
+            $this->setLanguage(); //Set the default language
         }
 
         if (array_key_exists($key, $this->language)) {
             if ('smtp_connect_failed' === $key) {
-                //Include a link to troubleshooting docs on SMTP connection failure
-                //this is by far the biggest cause of support questions
+                //Include a link to troubleshooting docs on SMTP connection failure.
+                //This is by far the biggest cause of support questions
                 //but it's usually not PHPMailer's fault.
                 return $this->language[$key] . ' https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting';
             }
@@ -3987,7 +4075,7 @@
     public function addCustomHeader($name, $value = null)
     {
         if (null === $value && strpos($name, ':') !== false) {
-            // Value passed in as name:value
+            //Value passed in as name:value
             list($name, $value) = explode(':', $name, 2);
         }
         $name = trim($name);
@@ -4041,11 +4129,11 @@
         preg_match_all('/(?<!-)(src|background)=["\'](.*)["\']/Ui', $message, $images);
         if (array_key_exists(2, $images)) {
             if (strlen($basedir) > 1 && '/' !== substr($basedir, -1)) {
-                // Ensure $basedir has a trailing /
+                //Ensure $basedir has a trailing /
                 $basedir .= '/';
             }
             foreach ($images[2] as $imgindex => $url) {
-                // Convert data URIs into embedded images
+                //Convert data URIs into embedded images
                 //e.g. "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="
                 $match = [];
                 if (preg_match('#^data:(image/(?:jpe?g|gif|png));?(base64)?,(.+)#', $url, $match)) {
@@ -4059,7 +4147,7 @@
                     }
                     //Hash the decoded data, not the URL, so that the same data-URI image used in multiple places
                     //will only be embedded once, even if it used a different encoding
-                    $cid = substr(hash('sha256', $data), 0, 32) . '@phpmailer.0'; // RFC2392 S 2
+                    $cid = substr(hash('sha256', $data), 0, 32) . '@phpmailer.0'; //RFC2392 S 2
 
                     if (!$this->cidExists($cid)) {
                         $this->addStringEmbeddedImage(
@@ -4078,13 +4166,13 @@
                     continue;
                 }
                 if (
-                    // Only process relative URLs if a basedir is provided (i.e. no absolute local paths)
+                    //Only process relative URLs if a basedir is provided (i.e. no absolute local paths)
                     !empty($basedir)
-                    // Ignore URLs containing parent dir traversal (..)
+                    //Ignore URLs containing parent dir traversal (..)
                     && (strpos($url, '..') === false)
-                    // Do not change urls that are already inline images
+                    //Do not change urls that are already inline images
                     && 0 !== strpos($url, 'cid:')
-                    // Do not change absolute URLs, including anonymous protocol
+                    //Do not change absolute URLs, including anonymous protocol
                     && !preg_match('#^[a-z][a-z0-9+.-]*:?//#i', $url)
                 ) {
                     $filename = static::mb_pathinfo($url, PATHINFO_BASENAME);
@@ -4092,7 +4180,7 @@
                     if ('.' === $directory) {
                         $directory = '';
                     }
-                    // RFC2392 S 2
+                    //RFC2392 S 2
                     $cid = substr(hash('sha256', $url), 0, 32) . '@phpmailer.0';
                     if (strlen($basedir) > 1 && '/' !== substr($basedir, -1)) {
                         $basedir .= '/';
@@ -4119,7 +4207,7 @@
             }
         }
         $this->isHTML();
-        // Convert all message body line breaks to LE, makes quoted-printable encoding work much better
+        //Convert all message body line breaks to LE, makes quoted-printable encoding work much better
         $this->Body = static::normalizeBreaks($message);
         $this->AltBody = static::normalizeBreaks($this->html2text($message, $advanced));
         if (!$this->alternativeExists()) {
@@ -4138,9 +4226,9 @@
      * Example usage:
      *
      * ```php
-     * // Use default conversion
+     * //Use default conversion
      * $plain = $mail->html2text($html);
-     * // Use your own custom converter
+     * //Use your own custom converter
      * $plain = $mail->html2text($html, function($html) {
      *     $converter = new MyHtml2text($html);
      *     return $converter->get_text();
@@ -4307,7 +4395,7 @@
      */
     public static function filenameToType($filename)
     {
-        // In case the path is a URL, strip any query string before getting extension
+        //In case the path is a URL, strip any query string before getting extension
         $qpos = strpos($filename, '?');
         if (false !== $qpos) {
             $filename = substr($filename, 0, $qpos);
@@ -4418,9 +4506,9 @@
         if (null === $breaktype) {
             $breaktype = static::$LE;
         }
-        // Normalise to \n
+        //Normalise to \n
         $text = str_replace([self::CRLF, "\r"], "\n", $text);
-        // Now convert LE as needed
+        //Now convert LE as needed
         if ("\n" !== $breaktype) {
             $text = str_replace("\n", $breaktype, $text);
         }
@@ -4526,13 +4614,13 @@
             $privKey = openssl_pkey_get_private($privKeyStr);
         }
         if (openssl_sign($signHeader, $signature, $privKey, 'sha256WithRSAEncryption')) {
-            if (PHP_MAJOR_VERSION < 8) {
+            if (\PHP_MAJOR_VERSION < 8) {
                 openssl_pkey_free($privKey);
             }
 
             return base64_encode($signature);
         }
-        if (PHP_MAJOR_VERSION < 8) {
+        if (\PHP_MAJOR_VERSION < 8) {
             openssl_pkey_free($privKey);
         }
 
@@ -4599,7 +4687,7 @@
         if (empty($body)) {
             return self::CRLF;
         }
-        // Normalize line endings to CRLF
+        //Normalize line endings to CRLF
         $body = static::normalizeBreaks($body, self::CRLF);
 
         //Reduce multiple trailing line breaks to a single one
@@ -4619,9 +4707,9 @@
      */
     public function DKIM_Add($headers_line, $subject, $body)
     {
-        $DKIMsignatureType = 'rsa-sha256'; // Signature & hash algorithms
-        $DKIMcanonicalization = 'relaxed/simple'; // Canonicalization methods of header & body
-        $DKIMquery = 'dns/txt'; // Query method
+        $DKIMsignatureType = 'rsa-sha256'; //Signature & hash algorithms
+        $DKIMcanonicalization = 'relaxed/simple'; //Canonicalization methods of header & body
+        $DKIMquery = 'dns/txt'; //Query method
         $DKIMtime = time();
         //Always sign these headers without being asked
         //Recommended list from https://tools.ietf.org/html/rfc6376#section-5.4.1
@@ -4722,7 +4810,8 @@
         $headerKeys = ' h=' . implode(':', $headersToSignKeys) . ';' . static::$LE;
         $headerValues = implode(static::$LE, $headersToSign);
         $body = $this->DKIM_BodyC($body);
-        $DKIMb64 = base64_encode(pack('H*', hash('sha256', $body))); // Base64 of packed binary SHA-256 hash of body
+        //Base64 of packed binary SHA-256 hash of body
+        $DKIMb64 = base64_encode(pack('H*', hash('sha256', $body)));
         $ident = '';
         if ('' !== $this->DKIM_identity) {
             $ident = ' i=' . $this->DKIM_identity . ';' . static::$LE;
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/src/POP3.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/src/POP3.php
index 235e637..b38964b 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/src/POP3.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/src/POP3.php
@@ -46,7 +46,7 @@
      *
      * @var string
      */
-    const VERSION = '6.2.0';
+    const VERSION = '6.5.0';
 
     /**
      * Default POP3 port number.
@@ -199,13 +199,13 @@
     public function authorise($host, $port = false, $timeout = false, $username = '', $password = '', $debug_level = 0)
     {
         $this->host = $host;
-        // If no port value provided, use default
+        //If no port value provided, use default
         if (false === $port) {
             $this->port = static::DEFAULT_PORT;
         } else {
             $this->port = (int) $port;
         }
-        // If no timeout value provided, use default
+        //If no timeout value provided, use default
         if (false === $timeout) {
             $this->tval = static::DEFAULT_TIMEOUT;
         } else {
@@ -214,9 +214,9 @@
         $this->do_debug = $debug_level;
         $this->username = $username;
         $this->password = $password;
-        //  Reset the error log
+        //Reset the error log
         $this->errors = [];
-        //  connect
+        //Connect
         $result = $this->connect($this->host, $this->port, $this->tval);
         if ($result) {
             $login_result = $this->login($this->username, $this->password);
@@ -226,7 +226,7 @@
                 return true;
             }
         }
-        // We need to disconnect regardless of whether the login succeeded
+        //We need to disconnect regardless of whether the login succeeded
         $this->disconnect();
 
         return false;
@@ -243,7 +243,7 @@
      */
     public function connect($host, $port = false, $tval = 30)
     {
-        //  Are we already connected?
+        //Are we already connected?
         if ($this->connected) {
             return true;
         }
@@ -256,22 +256,22 @@
             $port = static::DEFAULT_PORT;
         }
 
-        //  connect to the POP3 server
+        //Connect to the POP3 server
         $errno = 0;
         $errstr = '';
         $this->pop_conn = fsockopen(
-            $host, //  POP3 Host
-            $port, //  Port #
-            $errno, //  Error Number
-            $errstr, //  Error Message
+            $host, //POP3 Host
+            $port, //Port #
+            $errno, //Error Number
+            $errstr, //Error Message
             $tval
-        ); //  Timeout (seconds)
-        //  Restore the error handler
+        ); //Timeout (seconds)
+        //Restore the error handler
         restore_error_handler();
 
-        //  Did we connect?
+        //Did we connect?
         if (false === $this->pop_conn) {
-            //  It would appear not...
+            //It would appear not...
             $this->setError(
                 "Failed to connect to server $host on port $port. errno: $errno; errstr: $errstr"
             );
@@ -279,14 +279,14 @@
             return false;
         }
 
-        //  Increase the stream time-out
+        //Increase the stream time-out
         stream_set_timeout($this->pop_conn, $tval, 0);
 
-        //  Get the POP3 server response
+        //Get the POP3 server response
         $pop3_response = $this->getResponse();
-        //  Check for the +OK
+        //Check for the +OK
         if ($this->checkResponse($pop3_response)) {
-            //  The connection is established and the POP3 server is talking
+            //The connection is established and the POP3 server is talking
             $this->connected = true;
 
             return true;
@@ -316,11 +316,11 @@
             $password = $this->password;
         }
 
-        // Send the Username
+        //Send the Username
         $this->sendString("USER $username" . static::LE);
         $pop3_response = $this->getResponse();
         if ($this->checkResponse($pop3_response)) {
-            // Send the Password
+            //Send the Password
             $this->sendString("PASS $password" . static::LE);
             $pop3_response = $this->getResponse();
             if ($this->checkResponse($pop3_response)) {
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/src/SMTP.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/src/SMTP.php
index ab7f46e..a4a91ed 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/src/SMTP.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/phpmailer/phpmailer/src/SMTP.php
@@ -35,7 +35,7 @@
      *
      * @var string
      */
-    const VERSION = '6.2.0';
+    const VERSION = '6.5.0';
 
     /**
      * SMTP line break constant.
@@ -186,6 +186,7 @@
         'Amazon_SES' => '/[\d]{3} Ok (.*)/',
         'SendGrid' => '/[\d]{3} Ok: queued as (.*)/',
         'CampaignMonitor' => '/[\d]{3} 2.0.0 OK:([a-zA-Z\d]{48})/',
+        'Haraka' => '/[\d]{3} Message Queued \((.*)\)/',
     ];
 
     /**
@@ -312,11 +313,11 @@
      */
     public function connect($host, $port = null, $timeout = 30, $options = [])
     {
-        // Clear errors to avoid confusion
+        //Clear errors to avoid confusion
         $this->setError('');
-        // Make sure we are __not__ connected
+        //Make sure we are __not__ connected
         if ($this->connected()) {
-            // Already connected, generate error
+            //Already connected, generate error
             $this->setError('Already connected to a server');
 
             return false;
@@ -324,7 +325,7 @@
         if (empty($port)) {
             $port = self::DEFAULT_PORT;
         }
-        // Connect to the SMTP server
+        //Connect to the SMTP server
         $this->edebug(
             "Connection: opening to $host:$port, timeout=$timeout, options=" .
             (count($options) > 0 ? var_export($options, true) : 'array()'),
@@ -340,11 +341,23 @@
 
         $this->edebug('Connection: opened', self::DEBUG_CONNECTION);
 
-        // Get any announcement
+        //Get any announcement
         $this->last_reply = $this->get_lines();
         $this->edebug('SERVER -> CLIENT: ' . $this->last_reply, self::DEBUG_SERVER);
-
-        return true;
+        $responseCode = (int)substr($this->last_reply, 0, 3);
+        if ($responseCode === 220) {
+            return true;
+        }
+        //Anything other than a 220 response means something went wrong
+        //RFC 5321 says the server will wait for us to send a QUIT in response to a 554 error
+        //https://tools.ietf.org/html/rfc5321#section-3.1
+        if ($responseCode === 554) {
+            $this->quit();
+        }
+        //This will handle 421 responses which may not wait for a QUIT (e.g. if the server is being shut down)
+        $this->edebug('Connection: closing due to error', self::DEBUG_CONNECTION);
+        $this->close();
+        return false;
     }
 
     /**
@@ -397,7 +410,7 @@
             restore_error_handler();
         }
 
-        // Verify we connected properly
+        //Verify we connected properly
         if (!is_resource($connection)) {
             $this->setError(
                 'Failed to connect to server',
@@ -414,11 +427,11 @@
             return false;
         }
 
-        // SMTP server can take longer to respond, give longer timeout for first read
-        // Windows does not have support for this timeout function
+        //SMTP server can take longer to respond, give longer timeout for first read
+        //Windows does not have support for this timeout function
         if (strpos(PHP_OS, 'WIN') !== 0) {
             $max = (int)ini_get('max_execution_time');
-            // Don't bother if unlimited, or if set_time_limit is disabled
+            //Don't bother if unlimited, or if set_time_limit is disabled
             if (0 !== $max && $timeout > $max && strpos(ini_get('disable_functions'), 'set_time_limit') === false) {
                 @set_time_limit($timeout);
             }
@@ -449,7 +462,7 @@
             $crypto_method |= STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT;
         }
 
-        // Begin encrypted connection
+        //Begin encrypted connection
         set_error_handler([$this, 'errorHandler']);
         $crypto_ok = stream_socket_enable_crypto(
             $this->smtp_conn,
@@ -487,11 +500,11 @@
         }
 
         if (array_key_exists('EHLO', $this->server_caps)) {
-            // SMTP extensions are available; try to find a proper authentication method
+            //SMTP extensions are available; try to find a proper authentication method
             if (!array_key_exists('AUTH', $this->server_caps)) {
                 $this->setError('Authentication is not allowed at this stage');
-                // 'at this stage' means that auth may be allowed after the stage changes
-                // e.g. after STARTTLS
+                //'at this stage' means that auth may be allowed after the stage changes
+                //e.g. after STARTTLS
 
                 return false;
             }
@@ -535,12 +548,14 @@
         }
         switch ($authtype) {
             case 'PLAIN':
-                // Start authentication
+                //Start authentication
                 if (!$this->sendCommand('AUTH', 'AUTH PLAIN', 334)) {
                     return false;
                 }
-                // Send encoded username and password
+                //Send encoded username and password
                 if (
+                    //Format from https://tools.ietf.org/html/rfc4616#section-2
+                    //We skip the first field (it's forgery), so the string starts with a null byte
                     !$this->sendCommand(
                         'User & Password',
                         base64_encode("\0" . $username . "\0" . $password),
@@ -551,7 +566,7 @@
                 }
                 break;
             case 'LOGIN':
-                // Start authentication
+                //Start authentication
                 if (!$this->sendCommand('AUTH', 'AUTH LOGIN', 334)) {
                     return false;
                 }
@@ -563,17 +578,17 @@
                 }
                 break;
             case 'CRAM-MD5':
-                // Start authentication
+                //Start authentication
                 if (!$this->sendCommand('AUTH CRAM-MD5', 'AUTH CRAM-MD5', 334)) {
                     return false;
                 }
-                // Get the challenge
+                //Get the challenge
                 $challenge = base64_decode(substr($this->last_reply, 4));
 
-                // Build the response
+                //Build the response
                 $response = $username . ' ' . $this->hmac($challenge, $password);
 
-                // send encoded credentials
+                //send encoded credentials
                 return $this->sendCommand('Username', base64_encode($response), 235);
             case 'XOAUTH2':
                 //The OAuth instance must be set up prior to requesting auth.
@@ -582,7 +597,7 @@
                 }
                 $oauth = $OAuth->getOauth64();
 
-                // Start authentication
+                //Start authentication
                 if (!$this->sendCommand('AUTH', 'AUTH XOAUTH2 ' . $oauth, 235)) {
                     return false;
                 }
@@ -612,15 +627,15 @@
             return hash_hmac('md5', $data, $key);
         }
 
-        // The following borrowed from
-        // http://php.net/manual/en/function.mhash.php#27225
+        //The following borrowed from
+        //http://php.net/manual/en/function.mhash.php#27225
 
-        // RFC 2104 HMAC implementation for php.
-        // Creates an md5 HMAC.
-        // Eliminates the need to install mhash to compute a HMAC
-        // by Lance Rushing
+        //RFC 2104 HMAC implementation for php.
+        //Creates an md5 HMAC.
+        //Eliminates the need to install mhash to compute a HMAC
+        //by Lance Rushing
 
-        $bytelen = 64; // byte length for md5
+        $bytelen = 64; //byte length for md5
         if (strlen($key) > $bytelen) {
             $key = pack('H*', md5($key));
         }
@@ -643,7 +658,7 @@
         if (is_resource($this->smtp_conn)) {
             $sock_status = stream_get_meta_data($this->smtp_conn);
             if ($sock_status['eof']) {
-                // The socket is valid but we are not connected
+                //The socket is valid but we are not connected
                 $this->edebug(
                     'SMTP NOTICE: EOF caught while checking if connected',
                     self::DEBUG_CLIENT
@@ -653,7 +668,7 @@
                 return false;
             }
 
-            return true; // everything looks good
+            return true; //everything looks good
         }
 
         return false;
@@ -671,7 +686,7 @@
         $this->server_caps = null;
         $this->helo_rply = null;
         if (is_resource($this->smtp_conn)) {
-            // close the connection and cleanup
+            //Close the connection and cleanup
             fclose($this->smtp_conn);
             $this->smtp_conn = null; //Makes for cleaner serialization
             $this->edebug('Connection: closed', self::DEBUG_CONNECTION);
@@ -706,7 +721,7 @@
          * NOTE: this does not count towards line-length limit.
          */
 
-        // Normalize line breaks before exploding
+        //Normalize line breaks before exploding
         $lines = explode("\n", str_replace(["\r\n", "\r"], "\n", $msg_data));
 
         /* To distinguish between a complete RFC822 message and a plain message body, we check if the first field
@@ -752,7 +767,8 @@
 
             //Send the lines to the server
             foreach ($lines_out as $line_out) {
-                //RFC2821 section 4.5.2
+                //Dot-stuffing as per RFC5321 section 4.5.2
+                //https://tools.ietf.org/html/rfc5321#section-4.5.2
                 if (!empty($line_out) && $line_out[0] === '.') {
                     $line_out = '.' . $line_out;
                 }
@@ -786,7 +802,16 @@
     public function hello($host = '')
     {
         //Try extended hello first (RFC 2821)
-        return $this->sendHello('EHLO', $host) or $this->sendHello('HELO', $host);
+        if ($this->sendHello('EHLO', $host)) {
+            return true;
+        }
+
+        //Some servers shut down the SMTP service here (RFC 5321)
+        if (substr($this->helo_rply, 0, 3) == '421') {
+            return false;
+        }
+
+        return $this->sendHello('HELO', $host);
     }
 
     /**
@@ -976,12 +1001,12 @@
         $this->client_send($commandstring . static::LE, $command);
 
         $this->last_reply = $this->get_lines();
-        // Fetch SMTP code and possible error code explanation
+        //Fetch SMTP code and possible error code explanation
         $matches = [];
         if (preg_match('/^([\d]{3})[ -](?:([\d]\\.[\d]\\.[\d]{1,2}) )?/', $this->last_reply, $matches)) {
             $code = (int) $matches[1];
             $code_ex = (count($matches) > 2 ? $matches[2] : null);
-            // Cut off error code from each response line
+            //Cut off error code from each response line
             $detail = preg_replace(
                 "/{$code}[ -]" .
                 ($code_ex ? str_replace('.', '\\.', $code_ex) . ' ' : '') . '/m',
@@ -989,7 +1014,7 @@
                 $this->last_reply
             );
         } else {
-            // Fall back to simple parsing if regex fails
+            //Fall back to simple parsing if regex fails
             $code = (int) substr($this->last_reply, 0, 3);
             $code_ex = null;
             $detail = substr($this->last_reply, 4);
@@ -1184,7 +1209,7 @@
      */
     protected function get_lines()
     {
-        // If the connection is bad, give up straight away
+        //If the connection is bad, give up straight away
         if (!is_resource($this->smtp_conn)) {
             return '';
         }
@@ -1237,13 +1262,13 @@
             $str = @fgets($this->smtp_conn, self::MAX_REPLY_LENGTH);
             $this->edebug('SMTP INBOUND: "' . trim($str) . '"', self::DEBUG_LOWLEVEL);
             $data .= $str;
-            // If response is only 3 chars (not valid, but RFC5321 S4.2 says it must be handled),
-            // or 4th character is a space or a line break char, we are done reading, break the loop.
-            // String array access is a significant micro-optimisation over strlen
+            //If response is only 3 chars (not valid, but RFC5321 S4.2 says it must be handled),
+            //or 4th character is a space or a line break char, we are done reading, break the loop.
+            //String array access is a significant micro-optimisation over strlen
             if (!isset($str[3]) || $str[3] === ' ' || $str[3] === "\r" || $str[3] === "\n") {
                 break;
             }
-            // Timed-out? Log and break
+            //Timed-out? Log and break
             $info = stream_get_meta_data($this->smtp_conn);
             if ($info['timed_out']) {
                 $this->edebug(
@@ -1252,7 +1277,7 @@
                 );
                 break;
             }
-            // Now check if reads took too long
+            //Now check if reads took too long
             if ($endtime && time() > $endtime) {
                 $this->edebug(
                     'SMTP -> get_lines(): timelimit reached (' .
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/container/.gitignore b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/container/.gitignore
new file mode 100644
index 0000000..b2395aa
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/container/.gitignore
@@ -0,0 +1,3 @@
+composer.lock
+composer.phar
+/vendor/
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/container/LICENSE b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/container/LICENSE
new file mode 100644
index 0000000..2877a48
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/container/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2013-2016 container-interop
+Copyright (c) 2016 PHP Framework Interoperability Group
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/container/README.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/container/README.md
new file mode 100644
index 0000000..1b9d9e5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/container/README.md
@@ -0,0 +1,13 @@
+Container interface
+==============
+
+This repository holds all interfaces related to [PSR-11 (Container Interface)][psr-url].
+
+Note that this is not a Container implementation of its own. It is merely abstractions that describe the components of a Dependency Injection Container.
+
+The installable [package][package-url] and [implementations][implementation-url] are listed on Packagist.
+
+[psr-url]: https://www.php-fig.org/psr/psr-11/
+[package-url]: https://packagist.org/packages/psr/container
+[implementation-url]: https://packagist.org/providers/psr/container-implementation
+
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/container/composer.json b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/container/composer.json
new file mode 100644
index 0000000..3797a25
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/container/composer.json
@@ -0,0 +1,22 @@
+{
+    "name": "psr/container",
+    "type": "library",
+    "description": "Common Container Interface (PHP FIG PSR-11)",
+    "keywords": ["psr", "psr-11", "container", "container-interop", "container-interface"],
+    "homepage": "https://github.com/php-fig/container",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "PHP-FIG",
+            "homepage": "https://www.php-fig.org/"
+        }
+    ],
+    "require": {
+        "php": ">=7.2.0"
+    },
+    "autoload": {
+        "psr-4": {
+            "Psr\\Container\\": "src/"
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/container/src/ContainerExceptionInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/container/src/ContainerExceptionInterface.php
new file mode 100644
index 0000000..cf10b8b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/container/src/ContainerExceptionInterface.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace Psr\Container;
+
+/**
+ * Base interface representing a generic exception in a container.
+ */
+interface ContainerExceptionInterface
+{
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/container/src/ContainerInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/container/src/ContainerInterface.php
new file mode 100644
index 0000000..cf8e7fd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/container/src/ContainerInterface.php
@@ -0,0 +1,36 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Psr\Container;
+
+/**
+ * Describes the interface of a container that exposes methods to read its entries.
+ */
+interface ContainerInterface
+{
+    /**
+     * Finds an entry of the container by its identifier and returns it.
+     *
+     * @param string $id Identifier of the entry to look for.
+     *
+     * @throws NotFoundExceptionInterface  No entry was found for **this** identifier.
+     * @throws ContainerExceptionInterface Error while retrieving the entry.
+     *
+     * @return mixed Entry.
+     */
+    public function get(string $id);
+
+    /**
+     * Returns true if the container can return an entry for the given identifier.
+     * Returns false otherwise.
+     *
+     * `has($id)` returning true does not mean that `get($id)` will not throw an exception.
+     * It does however mean that `get($id)` will not throw a `NotFoundExceptionInterface`.
+     *
+     * @param string $id Identifier of the entry to look for.
+     *
+     * @return bool
+     */
+    public function has(string $id);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/container/src/NotFoundExceptionInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/container/src/NotFoundExceptionInterface.php
new file mode 100644
index 0000000..650bf46
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/container/src/NotFoundExceptionInterface.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace Psr\Container;
+
+/**
+ * No entry was found in the container.
+ */
+interface NotFoundExceptionInterface extends ContainerExceptionInterface
+{
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/LICENSE b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/LICENSE
new file mode 100644
index 0000000..474c952
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2012 PHP Framework Interoperability Group
+
+Permission is hereby granted, free of charge, to any person obtaining a copy 
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights 
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 
+copies of the Software, and to permit persons to whom the Software is 
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in 
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/AbstractLogger.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/AbstractLogger.php
new file mode 100644
index 0000000..e02f9da
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/AbstractLogger.php
@@ -0,0 +1,128 @@
+<?php
+
+namespace Psr\Log;
+
+/**
+ * This is a simple Logger implementation that other Loggers can inherit from.
+ *
+ * It simply delegates all log-level-specific methods to the `log` method to
+ * reduce boilerplate code that a simple Logger that does the same thing with
+ * messages regardless of the error level has to implement.
+ */
+abstract class AbstractLogger implements LoggerInterface
+{
+    /**
+     * System is unusable.
+     *
+     * @param string  $message
+     * @param mixed[] $context
+     *
+     * @return void
+     */
+    public function emergency($message, array $context = array())
+    {
+        $this->log(LogLevel::EMERGENCY, $message, $context);
+    }
+
+    /**
+     * Action must be taken immediately.
+     *
+     * Example: Entire website down, database unavailable, etc. This should
+     * trigger the SMS alerts and wake you up.
+     *
+     * @param string  $message
+     * @param mixed[] $context
+     *
+     * @return void
+     */
+    public function alert($message, array $context = array())
+    {
+        $this->log(LogLevel::ALERT, $message, $context);
+    }
+
+    /**
+     * Critical conditions.
+     *
+     * Example: Application component unavailable, unexpected exception.
+     *
+     * @param string  $message
+     * @param mixed[] $context
+     *
+     * @return void
+     */
+    public function critical($message, array $context = array())
+    {
+        $this->log(LogLevel::CRITICAL, $message, $context);
+    }
+
+    /**
+     * Runtime errors that do not require immediate action but should typically
+     * be logged and monitored.
+     *
+     * @param string  $message
+     * @param mixed[] $context
+     *
+     * @return void
+     */
+    public function error($message, array $context = array())
+    {
+        $this->log(LogLevel::ERROR, $message, $context);
+    }
+
+    /**
+     * Exceptional occurrences that are not errors.
+     *
+     * Example: Use of deprecated APIs, poor use of an API, undesirable things
+     * that are not necessarily wrong.
+     *
+     * @param string  $message
+     * @param mixed[] $context
+     *
+     * @return void
+     */
+    public function warning($message, array $context = array())
+    {
+        $this->log(LogLevel::WARNING, $message, $context);
+    }
+
+    /**
+     * Normal but significant events.
+     *
+     * @param string  $message
+     * @param mixed[] $context
+     *
+     * @return void
+     */
+    public function notice($message, array $context = array())
+    {
+        $this->log(LogLevel::NOTICE, $message, $context);
+    }
+
+    /**
+     * Interesting events.
+     *
+     * Example: User logs in, SQL logs.
+     *
+     * @param string  $message
+     * @param mixed[] $context
+     *
+     * @return void
+     */
+    public function info($message, array $context = array())
+    {
+        $this->log(LogLevel::INFO, $message, $context);
+    }
+
+    /**
+     * Detailed debug information.
+     *
+     * @param string  $message
+     * @param mixed[] $context
+     *
+     * @return void
+     */
+    public function debug($message, array $context = array())
+    {
+        $this->log(LogLevel::DEBUG, $message, $context);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/InvalidArgumentException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/InvalidArgumentException.php
new file mode 100644
index 0000000..67f852d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/InvalidArgumentException.php
@@ -0,0 +1,7 @@
+<?php
+
+namespace Psr\Log;
+
+class InvalidArgumentException extends \InvalidArgumentException
+{
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/LogLevel.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/LogLevel.php
new file mode 100644
index 0000000..9cebcac
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/LogLevel.php
@@ -0,0 +1,18 @@
+<?php
+
+namespace Psr\Log;
+
+/**
+ * Describes log levels.
+ */
+class LogLevel
+{
+    const EMERGENCY = 'emergency';
+    const ALERT     = 'alert';
+    const CRITICAL  = 'critical';
+    const ERROR     = 'error';
+    const WARNING   = 'warning';
+    const NOTICE    = 'notice';
+    const INFO      = 'info';
+    const DEBUG     = 'debug';
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/LoggerAwareInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/LoggerAwareInterface.php
new file mode 100644
index 0000000..4d64f47
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/LoggerAwareInterface.php
@@ -0,0 +1,18 @@
+<?php
+
+namespace Psr\Log;
+
+/**
+ * Describes a logger-aware instance.
+ */
+interface LoggerAwareInterface
+{
+    /**
+     * Sets a logger instance on the object.
+     *
+     * @param LoggerInterface $logger
+     *
+     * @return void
+     */
+    public function setLogger(LoggerInterface $logger);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/LoggerAwareTrait.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/LoggerAwareTrait.php
new file mode 100644
index 0000000..82bf45c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/LoggerAwareTrait.php
@@ -0,0 +1,26 @@
+<?php
+
+namespace Psr\Log;
+
+/**
+ * Basic Implementation of LoggerAwareInterface.
+ */
+trait LoggerAwareTrait
+{
+    /**
+     * The logger instance.
+     *
+     * @var LoggerInterface|null
+     */
+    protected $logger;
+
+    /**
+     * Sets a logger.
+     *
+     * @param LoggerInterface $logger
+     */
+    public function setLogger(LoggerInterface $logger)
+    {
+        $this->logger = $logger;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/LoggerInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/LoggerInterface.php
new file mode 100644
index 0000000..2206cfd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/LoggerInterface.php
@@ -0,0 +1,125 @@
+<?php
+
+namespace Psr\Log;
+
+/**
+ * Describes a logger instance.
+ *
+ * The message MUST be a string or object implementing __toString().
+ *
+ * The message MAY contain placeholders in the form: {foo} where foo
+ * will be replaced by the context data in key "foo".
+ *
+ * The context array can contain arbitrary data. The only assumption that
+ * can be made by implementors is that if an Exception instance is given
+ * to produce a stack trace, it MUST be in a key named "exception".
+ *
+ * See https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md
+ * for the full interface specification.
+ */
+interface LoggerInterface
+{
+    /**
+     * System is unusable.
+     *
+     * @param string  $message
+     * @param mixed[] $context
+     *
+     * @return void
+     */
+    public function emergency($message, array $context = array());
+
+    /**
+     * Action must be taken immediately.
+     *
+     * Example: Entire website down, database unavailable, etc. This should
+     * trigger the SMS alerts and wake you up.
+     *
+     * @param string  $message
+     * @param mixed[] $context
+     *
+     * @return void
+     */
+    public function alert($message, array $context = array());
+
+    /**
+     * Critical conditions.
+     *
+     * Example: Application component unavailable, unexpected exception.
+     *
+     * @param string  $message
+     * @param mixed[] $context
+     *
+     * @return void
+     */
+    public function critical($message, array $context = array());
+
+    /**
+     * Runtime errors that do not require immediate action but should typically
+     * be logged and monitored.
+     *
+     * @param string  $message
+     * @param mixed[] $context
+     *
+     * @return void
+     */
+    public function error($message, array $context = array());
+
+    /**
+     * Exceptional occurrences that are not errors.
+     *
+     * Example: Use of deprecated APIs, poor use of an API, undesirable things
+     * that are not necessarily wrong.
+     *
+     * @param string  $message
+     * @param mixed[] $context
+     *
+     * @return void
+     */
+    public function warning($message, array $context = array());
+
+    /**
+     * Normal but significant events.
+     *
+     * @param string  $message
+     * @param mixed[] $context
+     *
+     * @return void
+     */
+    public function notice($message, array $context = array());
+
+    /**
+     * Interesting events.
+     *
+     * Example: User logs in, SQL logs.
+     *
+     * @param string  $message
+     * @param mixed[] $context
+     *
+     * @return void
+     */
+    public function info($message, array $context = array());
+
+    /**
+     * Detailed debug information.
+     *
+     * @param string  $message
+     * @param mixed[] $context
+     *
+     * @return void
+     */
+    public function debug($message, array $context = array());
+
+    /**
+     * Logs with an arbitrary level.
+     *
+     * @param mixed   $level
+     * @param string  $message
+     * @param mixed[] $context
+     *
+     * @return void
+     *
+     * @throws \Psr\Log\InvalidArgumentException
+     */
+    public function log($level, $message, array $context = array());
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/LoggerTrait.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/LoggerTrait.php
new file mode 100644
index 0000000..e392fef
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/LoggerTrait.php
@@ -0,0 +1,142 @@
+<?php
+
+namespace Psr\Log;
+
+/**
+ * This is a simple Logger trait that classes unable to extend AbstractLogger
+ * (because they extend another class, etc) can include.
+ *
+ * It simply delegates all log-level-specific methods to the `log` method to
+ * reduce boilerplate code that a simple Logger that does the same thing with
+ * messages regardless of the error level has to implement.
+ */
+trait LoggerTrait
+{
+    /**
+     * System is unusable.
+     *
+     * @param string $message
+     * @param array  $context
+     *
+     * @return void
+     */
+    public function emergency($message, array $context = array())
+    {
+        $this->log(LogLevel::EMERGENCY, $message, $context);
+    }
+
+    /**
+     * Action must be taken immediately.
+     *
+     * Example: Entire website down, database unavailable, etc. This should
+     * trigger the SMS alerts and wake you up.
+     *
+     * @param string $message
+     * @param array  $context
+     *
+     * @return void
+     */
+    public function alert($message, array $context = array())
+    {
+        $this->log(LogLevel::ALERT, $message, $context);
+    }
+
+    /**
+     * Critical conditions.
+     *
+     * Example: Application component unavailable, unexpected exception.
+     *
+     * @param string $message
+     * @param array  $context
+     *
+     * @return void
+     */
+    public function critical($message, array $context = array())
+    {
+        $this->log(LogLevel::CRITICAL, $message, $context);
+    }
+
+    /**
+     * Runtime errors that do not require immediate action but should typically
+     * be logged and monitored.
+     *
+     * @param string $message
+     * @param array  $context
+     *
+     * @return void
+     */
+    public function error($message, array $context = array())
+    {
+        $this->log(LogLevel::ERROR, $message, $context);
+    }
+
+    /**
+     * Exceptional occurrences that are not errors.
+     *
+     * Example: Use of deprecated APIs, poor use of an API, undesirable things
+     * that are not necessarily wrong.
+     *
+     * @param string $message
+     * @param array  $context
+     *
+     * @return void
+     */
+    public function warning($message, array $context = array())
+    {
+        $this->log(LogLevel::WARNING, $message, $context);
+    }
+
+    /**
+     * Normal but significant events.
+     *
+     * @param string $message
+     * @param array  $context
+     *
+     * @return void
+     */
+    public function notice($message, array $context = array())
+    {
+        $this->log(LogLevel::NOTICE, $message, $context);
+    }
+
+    /**
+     * Interesting events.
+     *
+     * Example: User logs in, SQL logs.
+     *
+     * @param string $message
+     * @param array  $context
+     *
+     * @return void
+     */
+    public function info($message, array $context = array())
+    {
+        $this->log(LogLevel::INFO, $message, $context);
+    }
+
+    /**
+     * Detailed debug information.
+     *
+     * @param string $message
+     * @param array  $context
+     *
+     * @return void
+     */
+    public function debug($message, array $context = array())
+    {
+        $this->log(LogLevel::DEBUG, $message, $context);
+    }
+
+    /**
+     * Logs with an arbitrary level.
+     *
+     * @param mixed  $level
+     * @param string $message
+     * @param array  $context
+     *
+     * @return void
+     *
+     * @throws \Psr\Log\InvalidArgumentException
+     */
+    abstract public function log($level, $message, array $context = array());
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/NullLogger.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/NullLogger.php
new file mode 100644
index 0000000..c8f7293
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/NullLogger.php
@@ -0,0 +1,30 @@
+<?php
+
+namespace Psr\Log;
+
+/**
+ * This Logger can be used to avoid conditional log calls.
+ *
+ * Logging should always be optional, and if no logger is provided to your
+ * library creating a NullLogger instance to have something to throw logs at
+ * is a good way to avoid littering your code with `if ($this->logger) { }`
+ * blocks.
+ */
+class NullLogger extends AbstractLogger
+{
+    /**
+     * Logs with an arbitrary level.
+     *
+     * @param mixed  $level
+     * @param string $message
+     * @param array  $context
+     *
+     * @return void
+     *
+     * @throws \Psr\Log\InvalidArgumentException
+     */
+    public function log($level, $message, array $context = array())
+    {
+        // noop
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/Test/DummyTest.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/Test/DummyTest.php
new file mode 100644
index 0000000..9638c11
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/Test/DummyTest.php
@@ -0,0 +1,18 @@
+<?php
+
+namespace Psr\Log\Test;
+
+/**
+ * This class is internal and does not follow the BC promise.
+ *
+ * Do NOT use this class in any way.
+ *
+ * @internal
+ */
+class DummyTest
+{
+    public function __toString()
+    {
+        return 'DummyTest';
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php
new file mode 100644
index 0000000..e1e5354
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php
@@ -0,0 +1,138 @@
+<?php
+
+namespace Psr\Log\Test;
+
+use Psr\Log\LoggerInterface;
+use Psr\Log\LogLevel;
+use PHPUnit\Framework\TestCase;
+
+/**
+ * Provides a base test class for ensuring compliance with the LoggerInterface.
+ *
+ * Implementors can extend the class and implement abstract methods to run this
+ * as part of their test suite.
+ */
+abstract class LoggerInterfaceTest extends TestCase
+{
+    /**
+     * @return LoggerInterface
+     */
+    abstract public function getLogger();
+
+    /**
+     * This must return the log messages in order.
+     *
+     * The simple formatting of the messages is: "<LOG LEVEL> <MESSAGE>".
+     *
+     * Example ->error('Foo') would yield "error Foo".
+     *
+     * @return string[]
+     */
+    abstract public function getLogs();
+
+    public function testImplements()
+    {
+        $this->assertInstanceOf('Psr\Log\LoggerInterface', $this->getLogger());
+    }
+
+    /**
+     * @dataProvider provideLevelsAndMessages
+     */
+    public function testLogsAtAllLevels($level, $message)
+    {
+        $logger = $this->getLogger();
+        $logger->{$level}($message, array('user' => 'Bob'));
+        $logger->log($level, $message, array('user' => 'Bob'));
+
+        $expected = array(
+            $level.' message of level '.$level.' with context: Bob',
+            $level.' message of level '.$level.' with context: Bob',
+        );
+        $this->assertEquals($expected, $this->getLogs());
+    }
+
+    public function provideLevelsAndMessages()
+    {
+        return array(
+            LogLevel::EMERGENCY => array(LogLevel::EMERGENCY, 'message of level emergency with context: {user}'),
+            LogLevel::ALERT => array(LogLevel::ALERT, 'message of level alert with context: {user}'),
+            LogLevel::CRITICAL => array(LogLevel::CRITICAL, 'message of level critical with context: {user}'),
+            LogLevel::ERROR => array(LogLevel::ERROR, 'message of level error with context: {user}'),
+            LogLevel::WARNING => array(LogLevel::WARNING, 'message of level warning with context: {user}'),
+            LogLevel::NOTICE => array(LogLevel::NOTICE, 'message of level notice with context: {user}'),
+            LogLevel::INFO => array(LogLevel::INFO, 'message of level info with context: {user}'),
+            LogLevel::DEBUG => array(LogLevel::DEBUG, 'message of level debug with context: {user}'),
+        );
+    }
+
+    /**
+     * @expectedException \Psr\Log\InvalidArgumentException
+     */
+    public function testThrowsOnInvalidLevel()
+    {
+        $logger = $this->getLogger();
+        $logger->log('invalid level', 'Foo');
+    }
+
+    public function testContextReplacement()
+    {
+        $logger = $this->getLogger();
+        $logger->info('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar'));
+
+        $expected = array('info {Message {nothing} Bob Bar a}');
+        $this->assertEquals($expected, $this->getLogs());
+    }
+
+    public function testObjectCastToString()
+    {
+        if (method_exists($this, 'createPartialMock')) {
+            $dummy = $this->createPartialMock('Psr\Log\Test\DummyTest', array('__toString'));
+        } else {
+            $dummy = $this->getMock('Psr\Log\Test\DummyTest', array('__toString'));
+        }
+        $dummy->expects($this->once())
+            ->method('__toString')
+            ->will($this->returnValue('DUMMY'));
+
+        $this->getLogger()->warning($dummy);
+
+        $expected = array('warning DUMMY');
+        $this->assertEquals($expected, $this->getLogs());
+    }
+
+    public function testContextCanContainAnything()
+    {
+        $closed = fopen('php://memory', 'r');
+        fclose($closed);
+
+        $context = array(
+            'bool' => true,
+            'null' => null,
+            'string' => 'Foo',
+            'int' => 0,
+            'float' => 0.5,
+            'nested' => array('with object' => new DummyTest),
+            'object' => new \DateTime,
+            'resource' => fopen('php://memory', 'r'),
+            'closed' => $closed,
+        );
+
+        $this->getLogger()->warning('Crazy context data', $context);
+
+        $expected = array('warning Crazy context data');
+        $this->assertEquals($expected, $this->getLogs());
+    }
+
+    public function testContextExceptionKeyCanBeExceptionOrOtherValues()
+    {
+        $logger = $this->getLogger();
+        $logger->warning('Random message', array('exception' => 'oops'));
+        $logger->critical('Uncaught Exception!', array('exception' => new \LogicException('Fail')));
+
+        $expected = array(
+            'warning Random message',
+            'critical Uncaught Exception!'
+        );
+        $this->assertEquals($expected, $this->getLogs());
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/Test/TestLogger.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/Test/TestLogger.php
new file mode 100644
index 0000000..1be3230
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/Psr/Log/Test/TestLogger.php
@@ -0,0 +1,147 @@
+<?php
+
+namespace Psr\Log\Test;
+
+use Psr\Log\AbstractLogger;
+
+/**
+ * Used for testing purposes.
+ *
+ * It records all records and gives you access to them for verification.
+ *
+ * @method bool hasEmergency($record)
+ * @method bool hasAlert($record)
+ * @method bool hasCritical($record)
+ * @method bool hasError($record)
+ * @method bool hasWarning($record)
+ * @method bool hasNotice($record)
+ * @method bool hasInfo($record)
+ * @method bool hasDebug($record)
+ *
+ * @method bool hasEmergencyRecords()
+ * @method bool hasAlertRecords()
+ * @method bool hasCriticalRecords()
+ * @method bool hasErrorRecords()
+ * @method bool hasWarningRecords()
+ * @method bool hasNoticeRecords()
+ * @method bool hasInfoRecords()
+ * @method bool hasDebugRecords()
+ *
+ * @method bool hasEmergencyThatContains($message)
+ * @method bool hasAlertThatContains($message)
+ * @method bool hasCriticalThatContains($message)
+ * @method bool hasErrorThatContains($message)
+ * @method bool hasWarningThatContains($message)
+ * @method bool hasNoticeThatContains($message)
+ * @method bool hasInfoThatContains($message)
+ * @method bool hasDebugThatContains($message)
+ *
+ * @method bool hasEmergencyThatMatches($message)
+ * @method bool hasAlertThatMatches($message)
+ * @method bool hasCriticalThatMatches($message)
+ * @method bool hasErrorThatMatches($message)
+ * @method bool hasWarningThatMatches($message)
+ * @method bool hasNoticeThatMatches($message)
+ * @method bool hasInfoThatMatches($message)
+ * @method bool hasDebugThatMatches($message)
+ *
+ * @method bool hasEmergencyThatPasses($message)
+ * @method bool hasAlertThatPasses($message)
+ * @method bool hasCriticalThatPasses($message)
+ * @method bool hasErrorThatPasses($message)
+ * @method bool hasWarningThatPasses($message)
+ * @method bool hasNoticeThatPasses($message)
+ * @method bool hasInfoThatPasses($message)
+ * @method bool hasDebugThatPasses($message)
+ */
+class TestLogger extends AbstractLogger
+{
+    /**
+     * @var array
+     */
+    public $records = [];
+
+    public $recordsByLevel = [];
+
+    /**
+     * @inheritdoc
+     */
+    public function log($level, $message, array $context = [])
+    {
+        $record = [
+            'level' => $level,
+            'message' => $message,
+            'context' => $context,
+        ];
+
+        $this->recordsByLevel[$record['level']][] = $record;
+        $this->records[] = $record;
+    }
+
+    public function hasRecords($level)
+    {
+        return isset($this->recordsByLevel[$level]);
+    }
+
+    public function hasRecord($record, $level)
+    {
+        if (is_string($record)) {
+            $record = ['message' => $record];
+        }
+        return $this->hasRecordThatPasses(function ($rec) use ($record) {
+            if ($rec['message'] !== $record['message']) {
+                return false;
+            }
+            if (isset($record['context']) && $rec['context'] !== $record['context']) {
+                return false;
+            }
+            return true;
+        }, $level);
+    }
+
+    public function hasRecordThatContains($message, $level)
+    {
+        return $this->hasRecordThatPasses(function ($rec) use ($message) {
+            return strpos($rec['message'], $message) !== false;
+        }, $level);
+    }
+
+    public function hasRecordThatMatches($regex, $level)
+    {
+        return $this->hasRecordThatPasses(function ($rec) use ($regex) {
+            return preg_match($regex, $rec['message']) > 0;
+        }, $level);
+    }
+
+    public function hasRecordThatPasses(callable $predicate, $level)
+    {
+        if (!isset($this->recordsByLevel[$level])) {
+            return false;
+        }
+        foreach ($this->recordsByLevel[$level] as $i => $rec) {
+            if (call_user_func($predicate, $rec, $i)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public function __call($method, $args)
+    {
+        if (preg_match('/(.*)(Debug|Info|Notice|Warning|Error|Critical|Alert|Emergency)(.*)/', $method, $matches) > 0) {
+            $genericMethod = $matches[1] . ('Records' !== $matches[3] ? 'Record' : '') . $matches[3];
+            $level = strtolower($matches[2]);
+            if (method_exists($this, $genericMethod)) {
+                $args[] = $level;
+                return call_user_func_array([$this, $genericMethod], $args);
+            }
+        }
+        throw new \BadMethodCallException('Call to undefined method ' . get_class($this) . '::' . $method . '()');
+    }
+
+    public function reset()
+    {
+        $this->records = [];
+        $this->recordsByLevel = [];
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/README.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/README.md
new file mode 100644
index 0000000..a9f20c4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/README.md
@@ -0,0 +1,58 @@
+PSR Log
+=======
+
+This repository holds all interfaces/classes/traits related to
+[PSR-3](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md).
+
+Note that this is not a logger of its own. It is merely an interface that
+describes a logger. See the specification for more details.
+
+Installation
+------------
+
+```bash
+composer require psr/log
+```
+
+Usage
+-----
+
+If you need a logger, you can use the interface like this:
+
+```php
+<?php
+
+use Psr\Log\LoggerInterface;
+
+class Foo
+{
+    private $logger;
+
+    public function __construct(LoggerInterface $logger = null)
+    {
+        $this->logger = $logger;
+    }
+
+    public function doSomething()
+    {
+        if ($this->logger) {
+            $this->logger->info('Doing work');
+        }
+           
+        try {
+            $this->doSomethingElse();
+        } catch (Exception $exception) {
+            $this->logger->error('Oh no!', array('exception' => $exception));
+        }
+
+        // do something useful
+    }
+}
+```
+
+You can then pick one of the implementations of the interface to get a logger.
+
+If you want to implement the interface, you can require this package and
+implement `Psr\Log\LoggerInterface` in your code. Please read the
+[specification text](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md)
+for details.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/composer.json b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/composer.json
new file mode 100644
index 0000000..ca05695
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/log/composer.json
@@ -0,0 +1,26 @@
+{
+    "name": "psr/log",
+    "description": "Common interface for logging libraries",
+    "keywords": ["psr", "psr-3", "log"],
+    "homepage": "https://github.com/php-fig/log",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "PHP-FIG",
+            "homepage": "https://www.php-fig.org/"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.0"
+    },
+    "autoload": {
+        "psr-4": {
+            "Psr\\Log\\": "Psr/Log/"
+        }
+    },
+    "extra": {
+        "branch-alias": {
+            "dev-master": "1.1.x-dev"
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/simple-cache/.editorconfig b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/simple-cache/.editorconfig
new file mode 100644
index 0000000..48542cb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/simple-cache/.editorconfig
@@ -0,0 +1,12 @@
+; This file is for unifying the coding style for different editors and IDEs.
+; More information at http://editorconfig.org
+
+root = true
+
+[*]
+charset = utf-8
+indent_size = 4
+indent_style = space
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/simple-cache/LICENSE.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/simple-cache/LICENSE.md
new file mode 100644
index 0000000..e49a7c8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/simple-cache/LICENSE.md
@@ -0,0 +1,21 @@
+# The MIT License (MIT)
+
+Copyright (c) 2016 PHP Framework Interoperability Group
+
+> Permission is hereby granted, free of charge, to any person obtaining a copy
+> of this software and associated documentation files (the "Software"), to deal
+> in the Software without restriction, including without limitation the rights
+> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+> copies of the Software, and to permit persons to whom the Software is
+> furnished to do so, subject to the following conditions:
+>
+> The above copyright notice and this permission notice shall be included in
+> all copies or substantial portions of the Software.
+>
+> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+> THE SOFTWARE.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/simple-cache/README.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/simple-cache/README.md
new file mode 100644
index 0000000..43641d1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/simple-cache/README.md
@@ -0,0 +1,8 @@
+PHP FIG Simple Cache PSR
+========================
+
+This repository holds all interfaces related to PSR-16.
+
+Note that this is not a cache implementation of its own. It is merely an interface that describes a cache implementation. See [the specification](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-16-simple-cache.md) for more details.
+
+You can find implementations of the specification by looking for packages providing the [psr/simple-cache-implementation](https://packagist.org/providers/psr/simple-cache-implementation) virtual package.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/simple-cache/composer.json b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/simple-cache/composer.json
new file mode 100644
index 0000000..2978fa5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/simple-cache/composer.json
@@ -0,0 +1,25 @@
+{
+    "name": "psr/simple-cache",
+    "description": "Common interfaces for simple caching",
+    "keywords": ["psr", "psr-16", "cache", "simple-cache", "caching"],
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "PHP-FIG",
+            "homepage": "http://www.php-fig.org/"
+        }
+    ],
+    "require": {
+        "php": ">=5.3.0"
+    },
+    "autoload": {
+        "psr-4": {
+            "Psr\\SimpleCache\\": "src/"
+        }
+    },
+    "extra": {
+        "branch-alias": {
+            "dev-master": "1.0.x-dev"
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/simple-cache/src/CacheException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/simple-cache/src/CacheException.php
new file mode 100644
index 0000000..eba5381
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/simple-cache/src/CacheException.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace Psr\SimpleCache;
+
+/**
+ * Interface used for all types of exceptions thrown by the implementing library.
+ */
+interface CacheException
+{
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/simple-cache/src/CacheInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/simple-cache/src/CacheInterface.php
new file mode 100644
index 0000000..99e8d95
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/simple-cache/src/CacheInterface.php
@@ -0,0 +1,114 @@
+<?php
+
+namespace Psr\SimpleCache;
+
+interface CacheInterface
+{
+    /**
+     * Fetches a value from the cache.
+     *
+     * @param string $key     The unique key of this item in the cache.
+     * @param mixed  $default Default value to return if the key does not exist.
+     *
+     * @return mixed The value of the item from the cache, or $default in case of cache miss.
+     *
+     * @throws \Psr\SimpleCache\InvalidArgumentException
+     *   MUST be thrown if the $key string is not a legal value.
+     */
+    public function get($key, $default = null);
+
+    /**
+     * Persists data in the cache, uniquely referenced by a key with an optional expiration TTL time.
+     *
+     * @param string                 $key   The key of the item to store.
+     * @param mixed                  $value The value of the item to store, must be serializable.
+     * @param null|int|\DateInterval $ttl   Optional. The TTL value of this item. If no value is sent and
+     *                                      the driver supports TTL then the library may set a default value
+     *                                      for it or let the driver take care of that.
+     *
+     * @return bool True on success and false on failure.
+     *
+     * @throws \Psr\SimpleCache\InvalidArgumentException
+     *   MUST be thrown if the $key string is not a legal value.
+     */
+    public function set($key, $value, $ttl = null);
+
+    /**
+     * Delete an item from the cache by its unique key.
+     *
+     * @param string $key The unique cache key of the item to delete.
+     *
+     * @return bool True if the item was successfully removed. False if there was an error.
+     *
+     * @throws \Psr\SimpleCache\InvalidArgumentException
+     *   MUST be thrown if the $key string is not a legal value.
+     */
+    public function delete($key);
+
+    /**
+     * Wipes clean the entire cache's keys.
+     *
+     * @return bool True on success and false on failure.
+     */
+    public function clear();
+
+    /**
+     * Obtains multiple cache items by their unique keys.
+     *
+     * @param iterable $keys    A list of keys that can obtained in a single operation.
+     * @param mixed    $default Default value to return for keys that do not exist.
+     *
+     * @return iterable A list of key => value pairs. Cache keys that do not exist or are stale will have $default as value.
+     *
+     * @throws \Psr\SimpleCache\InvalidArgumentException
+     *   MUST be thrown if $keys is neither an array nor a Traversable,
+     *   or if any of the $keys are not a legal value.
+     */
+    public function getMultiple($keys, $default = null);
+
+    /**
+     * Persists a set of key => value pairs in the cache, with an optional TTL.
+     *
+     * @param iterable               $values A list of key => value pairs for a multiple-set operation.
+     * @param null|int|\DateInterval $ttl    Optional. The TTL value of this item. If no value is sent and
+     *                                       the driver supports TTL then the library may set a default value
+     *                                       for it or let the driver take care of that.
+     *
+     * @return bool True on success and false on failure.
+     *
+     * @throws \Psr\SimpleCache\InvalidArgumentException
+     *   MUST be thrown if $values is neither an array nor a Traversable,
+     *   or if any of the $values are not a legal value.
+     */
+    public function setMultiple($values, $ttl = null);
+
+    /**
+     * Deletes multiple cache items in a single operation.
+     *
+     * @param iterable $keys A list of string-based keys to be deleted.
+     *
+     * @return bool True if the items were successfully removed. False if there was an error.
+     *
+     * @throws \Psr\SimpleCache\InvalidArgumentException
+     *   MUST be thrown if $keys is neither an array nor a Traversable,
+     *   or if any of the $keys are not a legal value.
+     */
+    public function deleteMultiple($keys);
+
+    /**
+     * Determines whether an item is present in the cache.
+     *
+     * NOTE: It is recommended that has() is only to be used for cache warming type purposes
+     * and not to be used within your live applications operations for get/set, as this method
+     * is subject to a race condition where your has() will return true and immediately after,
+     * another script can remove it making the state of your app out of date.
+     *
+     * @param string $key The cache item key.
+     *
+     * @return bool
+     *
+     * @throws \Psr\SimpleCache\InvalidArgumentException
+     *   MUST be thrown if the $key string is not a legal value.
+     */
+    public function has($key);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/simple-cache/src/InvalidArgumentException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/simple-cache/src/InvalidArgumentException.php
new file mode 100644
index 0000000..6a9524a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/psr/simple-cache/src/InvalidArgumentException.php
@@ -0,0 +1,13 @@
+<?php
+
+namespace Psr\SimpleCache;
+
+/**
+ * Exception interface for invalid cache arguments.
+ *
+ * When an invalid argument is passed it must throw an exception which implements
+ * this interface
+ */
+interface InvalidArgumentException extends CacheException
+{
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/.github/FUNDING.yml b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/.github/FUNDING.yml
new file mode 100644
index 0000000..b2d7224
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/.github/FUNDING.yml
@@ -0,0 +1,4 @@
+# These are supported funding model platforms
+
+github: [RobThree]
+custom: ["https://paypal.me/robiii"]
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/.github/workflows/test.yml b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/.github/workflows/test.yml
new file mode 100644
index 0000000..8b31e23
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/.github/workflows/test.yml
@@ -0,0 +1,27 @@
+name: Test
+
+on:
+  push:
+  pull_request:
+
+jobs:
+  build:
+    runs-on: ubuntu-latest
+
+    strategy:
+      matrix:
+        php-version: ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0']
+
+    steps:
+    - uses: actions/checkout@v2
+
+    - uses: shivammathur/setup-php@v2
+      with:
+        php-version: ${{ matrix.php-version }}
+        tools: composer
+        coverage: xdebug
+
+    - uses: ramsey/composer-install@v1
+
+    - run: composer lint
+    - run: composer test
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/.gitignore b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/.gitignore
index 8a25841..5c1c961 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/.gitignore
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/.gitignore
@@ -125,7 +125,7 @@
 # Publish Web Output
 *.[Pp]ublish.xml
 *.azurePubxml
-# TODO: Comment the next line if you want to checkin your web deploy settings 
+# TODO: Comment the next line if you want to checkin your web deploy settings
 # but database connection strings (with potential passwords) will be unencrypted
 *.pubxml
 *.publishproj
@@ -184,6 +184,9 @@
 
 # Composer
 /vendor
+composer.lock
 
 # .vs
-.vs/
\ No newline at end of file
+.vs/
+
+.phpunit.result.cache
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/.travis.yml b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/.travis.yml
deleted file mode 100644
index fdc6ff5..0000000
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/.travis.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-language: php
-
-php:
-  - 5.6
-  - 7.0
-  - 7.1
-  - 7.2
-  - 7.3
-  - 7.4
-
-before_script:
-  - composer install
-
-script:
-  - vendor/bin/phpunit --coverage-text tests
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/README.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/README.md
index 3574ae9..b8fcc75 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/README.md
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/README.md
@@ -1,6 +1,6 @@
 # ![Logo](https://raw.githubusercontent.com/RobThree/TwoFactorAuth/master/logo.png) PHP library for Two Factor Authentication
 
-[![Build status](https://img.shields.io/travis/RobThree/TwoFactorAuth.svg?style=flat-square)](https://travis-ci.org/RobThree/TwoFactorAuth/) [![Latest Stable Version](https://img.shields.io/packagist/v/robthree/twofactorauth.svg?style=flat-square)](https://packagist.org/packages/robthree/twofactorauth) [![License](https://img.shields.io/packagist/l/robthree/twofactorauth.svg?style=flat-square)](LICENSE) [![Downloads](https://img.shields.io/packagist/dt/robthree/twofactorauth.svg?style=flat-square)](https://packagist.org/packages/robthree/twofactorauth) [![Code Climate](https://img.shields.io/codeclimate/github/RobThree/TwoFactorAuth.svg?style=flat-square)](https://codeclimate.com/github/RobThree/TwoFactorAuth) [![PayPal donate button](http://img.shields.io/badge/paypal-donate-orange.svg?style=flat-square)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=6MB5M2SQLP636 "Keep me off the streets")
+[![Build status](https://img.shields.io/github/workflow/status/RobThree/TwoFactorAuth/Test/master?style=flat-square)](https://github.com/RobThree/TwoFactorAuth/actions?query=branch%3Amaster) [![Latest Stable Version](https://img.shields.io/packagist/v/robthree/twofactorauth.svg?style=flat-square)](https://packagist.org/packages/robthree/twofactorauth) [![License](https://img.shields.io/packagist/l/robthree/twofactorauth.svg?style=flat-square)](LICENSE) [![Downloads](https://img.shields.io/packagist/dt/robthree/twofactorauth.svg?style=flat-square)](https://packagist.org/packages/robthree/twofactorauth) [![Code Climate](https://img.shields.io/codeclimate/github/RobThree/TwoFactorAuth.svg?style=flat-square)](https://codeclimate.com/github/RobThree/TwoFactorAuth) [![PayPal donate button](http://img.shields.io/badge/paypal-donate-orange.svg?style=flat-square)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=6MB5M2SQLP636 "Keep me off the streets")
 
 PHP library for [two-factor (or multi-factor) authentication](http://en.wikipedia.org/wiki/Multi-factor_authentication) using [TOTP](http://en.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm) and [QR-codes](http://en.wikipedia.org/wiki/QR_code). Inspired by, based on but most importantly an *improvement* on '[PHPGangsta/GoogleAuthenticator](https://github.com/PHPGangsta/GoogleAuthenticator)'. There's a [.Net implementation](https://github.com/RobThree/TwoFactorAuth.Net) of this library as well.
 
@@ -10,10 +10,15 @@
 
 ## Requirements
 
-* Tested on PHP 5.6 up to 7.4
-* [cURL](http://php.net/manual/en/book.curl.php) when using the provided `ImageChartsQRCodeProvider` (default), `QRServerProvider` or `QRicketProvider` but you can also provide your own QR-code provider.
+* Tested on PHP 5.6 up to 8.0
+* [cURL](http://php.net/manual/en/book.curl.php) when using the provided `QRServerProvider` (default), `ImageChartsQRCodeProvider` or `QRicketProvider` but you can also provide your own QR-code provider.
 * [random_bytes()](http://php.net/manual/en/function.random-bytes.php), [MCrypt](http://php.net/manual/en/book.mcrypt.php), [OpenSSL](http://php.net/manual/en/book.openssl.php) or [Hash](http://php.net/manual/en/book.hash.php) depending on which built-in RNG you use (TwoFactorAuth will try to 'autodetect' and use the best available); however: feel free to provide your own (CS)RNG.
 
+Optionally, you may need:
+
+* [endroid/qr-code](https://github.com/endroid/qr-code) if using `EndroidQrCodeProvider` or `EndroidQrCodeWithLogoProvider`.
+* [bacon/bacon-qr-code](https://github.com/Bacon/BaconQrCode) if using `BaconQrCodeProvider`.
+
 ## Installation
 
 Run the following command:
@@ -35,17 +40,17 @@
 
 The TwoFactorAuth class constructor accepts 7 arguments (all optional):
 
-Argument          | Default value | Use 
+Argument          | Default value | Use
 ------------------|---------------|--------------------------------------------------
 `$issuer`         | `null`        | Will be displayed in the app as issuer name
 `$digits`         | `6`           | The number of digits the resulting codes will be
 `$period`         | `30`          | The number of seconds a code will be valid
-`$algorithm`      | `sha1`        | The algorithm used
+`$algorithm`      | `sha1`        | The algorithm used (one of `sha1`, `sha256`, `sha512`, `md5`)
 `$qrcodeprovider` | `null`        | QR-code provider (more on this later)
 `$rngprovider`    | `null`        | Random Number Generator provider (more on this later)
 `$timeprovider`   | `null`        | Time provider (more on this later)
 
-These arguments are all '`write once`'; the class will, for it's lifetime, use these values when generating / calculating codes. The number of digits, the period and algorithm are all set to values Google's Authticator app uses (and supports). You may specify `8` digits, a period of `45` seconds and the `sha256` algorithm but the authenticator app (be it Google's implementation, Authy or any other app) may or may not support these values. Your mileage may vary; keep it on the safe side if you don't control which app your audience uses.
+These arguments are all '`write once`'; the class will, for it's lifetime, use these values when generating / calculating codes. The number of digits, the period and algorithm are all set to values Google's Authenticator app uses (and supports). You may specify `8` digits, a period of `45` seconds and the `sha256` algorithm but the authenticator app (be it Google's implementation, Authy or any other app) may or may not support these values. Your mileage may vary; keep it on the safe side if you don't control which app your audience uses.
 
 ### Step 1: Set up secret shared key
 
@@ -64,9 +69,12 @@
 
 Another, more user-friendly, way to get the shared secret into the app is to generate a [QR-code](http://en.wikipedia.org/wiki/QR_code) which can be scanned by the app. To generate these QR codes you can use any one of the built-in `QRProvider` classes:
 
-1. `ImageChartsQRCodeProvider` (default)
-2. `QRServerProvider`
+1. `QRServerProvider` (default)
+2. `ImageChartsQRCodeProvider`
 3. `QRicketProvider`
+4. `EndroidQrCodeProvider` (requires `endroid/qr-code` to be installed)
+5. `EndroidQrCodeWithLogoProvider` (same, but supporting embedded images)
+6. `BaconQrCodeProvider` (requires `bacon/bacon-qr-code` to be installed)
 
 ...or implement your own provider. To implement your own provider all you need to do is implement the `IQRCodeProvider` interface. You can use the built-in providers mentioned before to serve as an example or read the next chapter in this file. The built-in classes all use a 3rd (e.g. external) party (Image-charts, QRServer and QRicket) for the hard work of generating QR-codes (note: each of these services might at some point not be available or impose limitations to the number of codes generated per day, hour etc.). You could, however, easily use a project like [PHP QR Code](http://phpqrcode.sourceforge.net/) (or one of the [many others](https://packagist.org/search/?q=qr)) to generate your QR-codes without depending on external sources. Later on we'll [demonstrate](#qr-code-providers) how to do this.
 
@@ -89,7 +97,9 @@
 $result = $tfa->verifyCode($_SESSION['secret'], $_POST['verification']);
 ````
 
-`verifyCode()` will return either `true` (the code was valid) or `false` (the code was invalid; no points for you!). You may need to store `$secret` in a `$_SESSION` or other persistent storage between requests. The `verifyCode()` accepts, aside from `$secret` and `$code`, three more arguments. The first being `$discrepancy`. Since TOTP codes are based on time("slices") it is very important that the server (but also client) have a correct date/time. But because the two *may* differ a bit we usually allow a certain amount of leeway. Because generated codes are valid for a specific period (remember the `$period` argument in the `TwoFactorAuth`'s constructor?) we usually check the period directly before and the period directly after the current time when validating codes. So when the current time is `14:34:21`, which results in a 'current timeslice' of `14:34:00` to `14:34:30` we also calculate/verify the codes for `14:33:30` to `14:34:00` and for `14:34:30` to `14:35:00`. This gives us a 'window' of `14:33:30` to `14:35:00`. The `$discrepancy` argument specifies how many periods (or: timeslices) we check in either direction of the current time. The default `$discrepancy` of `1` results in (max.) 3 period checks: -1, current and +1 period. A `$discrepancy` of `4` would result in a larger window (or: bigger time difference between client and server) of -4, -3, -2, -1, current, +1, +2, +3 and +4 periods.
+If you do extra validations with your `$_POST` values, just make sure the code is still submitted as string - even if that's a numeric code, casting it to integer is unreliable. Also, you may need to store `$secret` in a `$_SESSION` or other persistent storage between requests. `verifyCode()` will return either `true` (the code was valid) or `false` (the code was invalid; no points for you!).
+
+ The `verifyCode()` accepts, aside from `$secret` and `$code`, three more arguments, with the first being `$discrepancy`. Since TOTP codes are based on time("slices") it is very important that the server (but also client) have a correct date/time. But because the two *may* differ a bit we usually allow a certain amount of leeway. Because generated codes are valid for a specific period (remember the `$period` argument in the `TwoFactorAuth`'s constructor?) we usually check the period directly before and the period directly after the current time when validating codes. So when the current time is `14:34:21`, which results in a 'current timeslice' of `14:34:00` to `14:34:30` we also calculate/verify the codes for `14:33:30` to `14:34:00` and for `14:34:30` to `14:35:00`. This gives us a 'window' of `14:33:30` to `14:35:00`. The `$discrepancy` argument specifies how many periods (or: timeslices) we check in either direction of the current time. The default `$discrepancy` of `1` results in (max.) 3 period checks: -1, current and +1 period. A `$discrepancy` of `4` would result in a larger window (or: bigger time difference between client and server) of -4, -3, -2, -1, current, +1, +2, +3 and +4 periods.
 
 The second, `$time`, allows you to check a code for a specific point in time. This argument has no real practical use but can be handy for unittesting etc. The default value, `null`, means: use the current time.
 
@@ -105,10 +115,10 @@
 
 ````php
 public function __construct(
-    $issuer = null, 
+    $issuer = null,
     $digits = 6,
-    $period = 30, 
-    $algorithm = 'sha1', 
+    $period = 30,
+    $algorithm = 'sha1',
     RobThree\Auth\Providers\Qr\IQRCodeProvider $qrcodeprovider = null,
     RobThree\Auth\Providers\Rng\IRNGProvider $rngprovider = null
 );
@@ -119,9 +129,9 @@
 
 ### QR-code providers
 
-As mentioned before, this library comes with three 'built-in' QR-code providers. This chapter will touch the subject a bit but most of it should be self-explanatory. The `TwoFactorAuth`-class accepts a `$qrcodeprovider` argument which lets you specify a built-in or custom QR-code provider. All three built-in providers do a simple HTTP request to retrieve an image using cURL and implement the [`IQRCodeProvider`](lib/Providers/Qr/IQRCodeProvider.php) interface which is all you need to implement to write your own QR-code provider.
+As mentioned before, this library comes with five 'built-in' QR-code providers. This chapter will touch the subject a bit but most of it should be self-explanatory. The `TwoFactorAuth`-class accepts a `$qrcodeprovider` argument which lets you specify a built-in or custom QR-code provider. All five built-in providers do a simple HTTP request to retrieve an image using cURL and implement the [`IQRCodeProvider`](lib/Providers/Qr/IQRCodeProvider.php) interface which is all you need to implement to write your own QR-code provider.
 
-The default provider is the [`ImageChartsQRCodeProvider`](lib/Providers/Qr/ImageChartsQRCodeProvider.php) which uses the [image-charts.com replacement for Google Image Charts](https://image-charts.com) to render QR-codes. Then we have the [`QRServerProvider`](lib/Providers/Qr/QRServerProvider.php) which uses the [goqr.me API](http://goqr.me/api/doc/create-qr-code/) and finally we have the [`QRicketProvider`](lib/Providers/Qr/QRicketProvider.php) which uses the [QRickit API](http://qrickit.com/qrickit_apps/qrickit_api.php). All three inherit from a common (abstract) baseclass named [`BaseHTTPQRCodeProvider`](lib/Providers/Qr/BaseHTTPQRCodeProvider.php) because all three share the same functionality: retrieve an image from a 3rd party over HTTP. All three classes have constructors that allow you to tweak some settings and most, if not all, arguments should speak for themselves. If you're not sure which values are supported, click the links in this paragraph for documentation on the API's that are utilized by these classes.
+The default provider is the [`QRServerProvider`](lib/Providers/Qr/QRServerProvider.php) which uses the [goqr.me API](http://goqr.me/api/doc/create-qr-code/) to render QR-codes. Then we have the [`ImageChartsQRCodeProvider`](lib/Providers/Qr/ImageChartsQRCodeProvider.php) which uses the [image-charts.com replacement for Google Image Charts](https://image-charts.com) to render QR-codes and the [`QRicketProvider`](lib/Providers/Qr/QRicketProvider.php) which uses the [QRickit API](http://qrickit.com/qrickit_apps/qrickit_api.php). These three providers all inherit from a common (abstract) baseclass named [`BaseHTTPQRCodeProvider`](lib/Providers/Qr/BaseHTTPQRCodeProvider.php) because all three share the same functionality: retrieve an image from a 3rd party over HTTP. Finally, we have [`EndroidQrCodeProvider`](lib/Providers/Qr/EndroidQrCodeProvider.php), [`EndroidQrCodeWithLogoProvider`](lib/Providers/Qr/EndroidQrCodeWithLogoProvider.php) and [`BaconQrCodeProvider`](lib/Providers/Qr/BaconQrCodeProvider.php) which require an optional dependency to be installed to use (see Requirements section above), but will generate the QR codes locally. All five classes have constructors that allow you to tweak some settings and most, if not all, arguments should speak for themselves. If you're not sure which values are supported, click the links in this paragraph for documentation on the API's that are utilized by these classes.
 
 If you don't like any of the built-in classes because you don't want to rely on external resources for example or because you're paranoid about sending the TOTP secret to these 3rd parties (which is useless to them since they miss *at least one* other factor in the [MFA process](http://en.wikipedia.org/wiki/Multi-factor_authentication)), feel tree to implement your own. The `IQRCodeProvider` interface couldn't be any simpler. All you need to do is implement 2 methods:
 
@@ -148,7 +158,7 @@
   public function getMimeType() {
     return 'image/png';                             // This provider only returns PNG's
   }
-  
+
   public function getQRCodeImage($qrtext, $size) {
     ob_start();                                     // 'Catch' QRCode's output
     QRCode::png($qrtext, null, QR_ECLEVEL_L, 3, 4); // We ignore $size and set it to 3
@@ -190,7 +200,7 @@
 
 ## Integrations
 
-- [CakePHP 3](https://github.com/andrej-griniuk/cakephp-two-factor-auth) 
+- [CakePHP 3](https://github.com/andrej-griniuk/cakephp-two-factor-auth)
 
 ## License
 
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/composer.json b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/composer.json
index 50f8b86..847b2f8 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/composer.json
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/composer.json
@@ -1,7 +1,7 @@
 {
     "name": "robthree/twofactorauth",
     "description": "Two Factor Authentication",
-    "version": "1.7.0",
+    "version": "1.8.0",
     "type": "library",
     "keywords": [ "Authentication", "Two Factor Authentication", "Multi Factor Authentication", "TFA", "MFA", "PHP", "Authenticator", "Authy" ],
     "homepage": "https://github.com/RobThree/TwoFactorAuth",
@@ -21,7 +21,12 @@
         "php": ">=5.6.0"
     },
     "require-dev": {
-        "phpunit/phpunit": "@stable"
+        "phpunit/phpunit": "@stable",
+        "php-parallel-lint/php-parallel-lint": "^1.2"
+    },
+    "suggest": {
+        "bacon/bacon-qr-code": "Needed for BaconQrCodeProvider provider",
+        "endroid/qr-code": "Needed for EndroidQrCodeProvider"
     },
     "autoload": {
         "psr-4": {
@@ -30,7 +35,15 @@
     },
     "autoload-dev": {
         "psr-4": {
-            "RobThree\\Auth\\Test\\": "tests"
+            "Tests\\": "tests/"
         }
+    },
+    "scripts": {
+        "lint": [
+            "parallel-lint --exclude vendor ."
+        ],
+        "test": [
+            "XDEBUG_MODE=coverage phpunit"
+        ]
     }
 }
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/composer.lock b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/composer.lock
deleted file mode 100644
index 63df937..0000000
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/composer.lock
+++ /dev/null
@@ -1,980 +0,0 @@
-{
-    "_readme": [
-        "This file locks the dependencies of your project to a known state",
-        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
-        "This file is @generated automatically"
-    ],
-    "content-hash": "9647de85f54ba6db237f5ff42ff85a1f",
-    "packages": [],
-    "packages-dev": [
-        {
-            "name": "doctrine/instantiator",
-            "version": "1.0.5",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/doctrine/instantiator.git",
-                "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
-                "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3,<8.0-DEV"
-            },
-            "require-dev": {
-                "athletic/athletic": "~0.1.8",
-                "ext-pdo": "*",
-                "ext-phar": "*",
-                "phpunit/phpunit": "~4.0",
-                "squizlabs/php_codesniffer": "~2.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Marco Pivetta",
-                    "email": "ocramius@gmail.com",
-                    "homepage": "http://ocramius.github.com/"
-                }
-            ],
-            "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
-            "homepage": "https://github.com/doctrine/instantiator",
-            "keywords": [
-                "constructor",
-                "instantiate"
-            ],
-            "time": "2015-06-14T21:17:01+00:00"
-        },
-        {
-            "name": "phpdocumentor/reflection-docblock",
-            "version": "2.0.4",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
-                "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8",
-                "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.0"
-            },
-            "suggest": {
-                "dflydev/markdown": "~1.0",
-                "erusev/parsedown": "~1.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "phpDocumentor": [
-                        "src/"
-                    ]
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Mike van Riel",
-                    "email": "mike.vanriel@naenius.com"
-                }
-            ],
-            "time": "2015-02-03T12:10:50+00:00"
-        },
-        {
-            "name": "phpspec/prophecy",
-            "version": "v1.6.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/phpspec/prophecy.git",
-                "reference": "6c52c2722f8460122f96f86346600e1077ce22cb"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/phpspec/prophecy/zipball/6c52c2722f8460122f96f86346600e1077ce22cb",
-                "reference": "6c52c2722f8460122f96f86346600e1077ce22cb",
-                "shasum": ""
-            },
-            "require": {
-                "doctrine/instantiator": "^1.0.2",
-                "php": "^5.3|^7.0",
-                "phpdocumentor/reflection-docblock": "^2.0|^3.0.2",
-                "sebastian/comparator": "^1.1",
-                "sebastian/recursion-context": "^1.0|^2.0"
-            },
-            "require-dev": {
-                "phpspec/phpspec": "^2.0",
-                "phpunit/phpunit": "^4.8 || ^5.6.5"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.6.x-dev"
-                }
-            },
-            "autoload": {
-                "psr-0": {
-                    "Prophecy\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Konstantin Kudryashov",
-                    "email": "ever.zet@gmail.com",
-                    "homepage": "http://everzet.com"
-                },
-                {
-                    "name": "Marcello Duarte",
-                    "email": "marcello.duarte@gmail.com"
-                }
-            ],
-            "description": "Highly opinionated mocking framework for PHP 5.3+",
-            "homepage": "https://github.com/phpspec/prophecy",
-            "keywords": [
-                "Double",
-                "Dummy",
-                "fake",
-                "mock",
-                "spy",
-                "stub"
-            ],
-            "time": "2016-11-21T14:58:47+00:00"
-        },
-        {
-            "name": "phpunit/php-code-coverage",
-            "version": "2.2.4",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
-                "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979",
-                "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3",
-                "phpunit/php-file-iterator": "~1.3",
-                "phpunit/php-text-template": "~1.2",
-                "phpunit/php-token-stream": "~1.3",
-                "sebastian/environment": "^1.3.2",
-                "sebastian/version": "~1.0"
-            },
-            "require-dev": {
-                "ext-xdebug": ">=2.1.4",
-                "phpunit/phpunit": "~4"
-            },
-            "suggest": {
-                "ext-dom": "*",
-                "ext-xdebug": ">=2.2.1",
-                "ext-xmlwriter": "*"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.2.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
-            "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
-            "keywords": [
-                "coverage",
-                "testing",
-                "xunit"
-            ],
-            "time": "2015-10-06T15:47:00+00:00"
-        },
-        {
-            "name": "phpunit/php-file-iterator",
-            "version": "1.4.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
-                "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3cc8f69b3028d0f96a9078e6295d86e9bf019be5",
-                "reference": "3cc8f69b3028d0f96a9078e6295d86e9bf019be5",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.4.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "FilterIterator implementation that filters files based on a list of suffixes.",
-            "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
-            "keywords": [
-                "filesystem",
-                "iterator"
-            ],
-            "time": "2016-10-03T07:40:28+00:00"
-        },
-        {
-            "name": "phpunit/php-text-template",
-            "version": "1.2.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-text-template.git",
-                "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
-                "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "type": "library",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Simple template engine.",
-            "homepage": "https://github.com/sebastianbergmann/php-text-template/",
-            "keywords": [
-                "template"
-            ],
-            "time": "2015-06-21T13:50:34+00:00"
-        },
-        {
-            "name": "phpunit/php-timer",
-            "version": "1.0.8",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-timer.git",
-                "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260",
-                "reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4|~5"
-            },
-            "type": "library",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Utility class for timing",
-            "homepage": "https://github.com/sebastianbergmann/php-timer/",
-            "keywords": [
-                "timer"
-            ],
-            "time": "2016-05-12T18:03:57+00:00"
-        },
-        {
-            "name": "phpunit/php-token-stream",
-            "version": "1.4.9",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-token-stream.git",
-                "reference": "3b402f65a4cc90abf6e1104e388b896ce209631b"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3b402f65a4cc90abf6e1104e388b896ce209631b",
-                "reference": "3b402f65a4cc90abf6e1104e388b896ce209631b",
-                "shasum": ""
-            },
-            "require": {
-                "ext-tokenizer": "*",
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.2"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.4-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Wrapper around PHP's tokenizer extension.",
-            "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
-            "keywords": [
-                "tokenizer"
-            ],
-            "time": "2016-11-15T14:06:22+00:00"
-        },
-        {
-            "name": "phpunit/phpunit",
-            "version": "4.8.35",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/phpunit.git",
-                "reference": "791b1a67c25af50e230f841ee7a9c6eba507dc87"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/791b1a67c25af50e230f841ee7a9c6eba507dc87",
-                "reference": "791b1a67c25af50e230f841ee7a9c6eba507dc87",
-                "shasum": ""
-            },
-            "require": {
-                "ext-dom": "*",
-                "ext-json": "*",
-                "ext-pcre": "*",
-                "ext-reflection": "*",
-                "ext-spl": "*",
-                "php": ">=5.3.3",
-                "phpspec/prophecy": "^1.3.1",
-                "phpunit/php-code-coverage": "~2.1",
-                "phpunit/php-file-iterator": "~1.4",
-                "phpunit/php-text-template": "~1.2",
-                "phpunit/php-timer": "^1.0.6",
-                "phpunit/phpunit-mock-objects": "~2.3",
-                "sebastian/comparator": "~1.2.2",
-                "sebastian/diff": "~1.2",
-                "sebastian/environment": "~1.3",
-                "sebastian/exporter": "~1.2",
-                "sebastian/global-state": "~1.0",
-                "sebastian/version": "~1.0",
-                "symfony/yaml": "~2.1|~3.0"
-            },
-            "suggest": {
-                "phpunit/php-invoker": "~1.1"
-            },
-            "bin": [
-                "phpunit"
-            ],
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "4.8.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "The PHP Unit Testing framework.",
-            "homepage": "https://phpunit.de/",
-            "keywords": [
-                "phpunit",
-                "testing",
-                "xunit"
-            ],
-            "time": "2017-02-06T05:18:07+00:00"
-        },
-        {
-            "name": "phpunit/phpunit-mock-objects",
-            "version": "2.3.8",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
-                "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983",
-                "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983",
-                "shasum": ""
-            },
-            "require": {
-                "doctrine/instantiator": "^1.0.2",
-                "php": ">=5.3.3",
-                "phpunit/php-text-template": "~1.2",
-                "sebastian/exporter": "~1.2"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.4"
-            },
-            "suggest": {
-                "ext-soap": "*"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.3.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sb@sebastian-bergmann.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Mock Object library for PHPUnit",
-            "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
-            "keywords": [
-                "mock",
-                "xunit"
-            ],
-            "time": "2015-10-02T06:51:40+00:00"
-        },
-        {
-            "name": "sebastian/comparator",
-            "version": "1.2.4",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/comparator.git",
-                "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
-                "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3",
-                "sebastian/diff": "~1.2",
-                "sebastian/exporter": "~1.2 || ~2.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.4"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.2.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Jeff Welch",
-                    "email": "whatthejeff@gmail.com"
-                },
-                {
-                    "name": "Volker Dusch",
-                    "email": "github@wallbash.com"
-                },
-                {
-                    "name": "Bernhard Schussek",
-                    "email": "bschussek@2bepublished.at"
-                },
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Provides the functionality to compare PHP values for equality",
-            "homepage": "http://www.github.com/sebastianbergmann/comparator",
-            "keywords": [
-                "comparator",
-                "compare",
-                "equality"
-            ],
-            "time": "2017-01-29T09:50:25+00:00"
-        },
-        {
-            "name": "sebastian/diff",
-            "version": "1.4.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/diff.git",
-                "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e",
-                "reference": "13edfd8706462032c2f52b4b862974dd46b71c9e",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.8"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.4-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Kore Nordmann",
-                    "email": "mail@kore-nordmann.de"
-                },
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Diff implementation",
-            "homepage": "https://github.com/sebastianbergmann/diff",
-            "keywords": [
-                "diff"
-            ],
-            "time": "2015-12-08T07:14:41+00:00"
-        },
-        {
-            "name": "sebastian/environment",
-            "version": "1.3.8",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/environment.git",
-                "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea",
-                "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^5.3.3 || ^7.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^4.8 || ^5.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.3.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Provides functionality to handle HHVM/PHP environments",
-            "homepage": "http://www.github.com/sebastianbergmann/environment",
-            "keywords": [
-                "Xdebug",
-                "environment",
-                "hhvm"
-            ],
-            "time": "2016-08-18T05:49:44+00:00"
-        },
-        {
-            "name": "sebastian/exporter",
-            "version": "1.2.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/exporter.git",
-                "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4",
-                "reference": "42c4c2eec485ee3e159ec9884f95b431287edde4",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3",
-                "sebastian/recursion-context": "~1.0"
-            },
-            "require-dev": {
-                "ext-mbstring": "*",
-                "phpunit/phpunit": "~4.4"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.3.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Jeff Welch",
-                    "email": "whatthejeff@gmail.com"
-                },
-                {
-                    "name": "Volker Dusch",
-                    "email": "github@wallbash.com"
-                },
-                {
-                    "name": "Bernhard Schussek",
-                    "email": "bschussek@2bepublished.at"
-                },
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                },
-                {
-                    "name": "Adam Harvey",
-                    "email": "aharvey@php.net"
-                }
-            ],
-            "description": "Provides the functionality to export PHP variables for visualization",
-            "homepage": "http://www.github.com/sebastianbergmann/exporter",
-            "keywords": [
-                "export",
-                "exporter"
-            ],
-            "time": "2016-06-17T09:04:28+00:00"
-        },
-        {
-            "name": "sebastian/global-state",
-            "version": "1.1.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/global-state.git",
-                "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
-                "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.2"
-            },
-            "suggest": {
-                "ext-uopz": "*"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Snapshotting of global state",
-            "homepage": "http://www.github.com/sebastianbergmann/global-state",
-            "keywords": [
-                "global state"
-            ],
-            "time": "2015-10-12T03:26:01+00:00"
-        },
-        {
-            "name": "sebastian/recursion-context",
-            "version": "1.0.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/recursion-context.git",
-                "reference": "913401df809e99e4f47b27cdd781f4a258d58791"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/913401df809e99e4f47b27cdd781f4a258d58791",
-                "reference": "913401df809e99e4f47b27cdd781f4a258d58791",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "~4.4"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0.x-dev"
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Jeff Welch",
-                    "email": "whatthejeff@gmail.com"
-                },
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                },
-                {
-                    "name": "Adam Harvey",
-                    "email": "aharvey@php.net"
-                }
-            ],
-            "description": "Provides functionality to recursively process PHP variables",
-            "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
-            "time": "2015-11-11T19:50:13+00:00"
-        },
-        {
-            "name": "sebastian/version",
-            "version": "1.0.6",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/version.git",
-                "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
-                "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
-                "shasum": ""
-            },
-            "type": "library",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library that helps with managing the version number of Git-hosted PHP projects",
-            "homepage": "https://github.com/sebastianbergmann/version",
-            "time": "2015-06-21T13:59:46+00:00"
-        },
-        {
-            "name": "symfony/yaml",
-            "version": "v2.8.17",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/yaml.git",
-                "reference": "322a8c2dfbca15ad6b1b27e182899f98ec0e0153"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/yaml/zipball/322a8c2dfbca15ad6b1b27e182899f98ec0e0153",
-                "reference": "322a8c2dfbca15ad6b1b27e182899f98ec0e0153",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.9"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.8-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\Yaml\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony Yaml Component",
-            "homepage": "https://symfony.com",
-            "time": "2017-01-21T16:40:50+00:00"
-        }
-    ],
-    "aliases": [],
-    "minimum-stability": "stable",
-    "stability-flags": {
-        "phpunit/phpunit": 0
-    },
-    "prefer-stable": false,
-    "prefer-lowest": false,
-    "platform": {
-        "php": ">=5.3.0"
-    },
-    "platform-dev": []
-}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/BaconQrCodeProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/BaconQrCodeProvider.php
new file mode 100644
index 0000000..4d5cf01
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/BaconQrCodeProvider.php
@@ -0,0 +1,152 @@
+<?php
+
+namespace RobThree\Auth\Providers\Qr;
+
+use BaconQrCode\Writer;
+use BaconQrCode\Renderer\ImageRenderer;
+use BaconQrCode\Renderer\RendererStyle\RendererStyle;
+use BaconQrCode\Renderer\RendererStyle\Fill;
+use BaconQrCode\Renderer\Color\Rgb;
+use BaconQrCode\Renderer\RendererStyle\EyeFill;
+
+use BaconQrCode\Renderer\Image\EpsImageBackEnd;
+use BaconQrCode\Renderer\Image\ImageBackEndInterface;
+use BaconQrCode\Renderer\Image\ImagickImageBackEnd;
+use BaconQrCode\Renderer\Image\SvgImageBackEnd;
+
+class BaconQrCodeProvider implements IQRCodeProvider
+{
+    private $borderWidth = 4; // default from Bacon QR Code
+    private $backgroundColour;
+    private $foregroundColour;
+    private $format;
+
+    /**
+     * Ensure we using the latest Bacon QR Code and specify default options
+     *
+     * @param int $borderWidth space around the QR code, 4 is the default from Bacon QR Code
+     * @param string $backgroundColour hex reference for the background colour
+     * @param string $foregroundColour hex reference for the foreground colour
+     * @param string $format the desired output, png or svg
+     */
+    public function __construct($borderWidth = 4, $backgroundColour = '#ffffff', $foregroundColour = '#000000', $format = 'png')
+    {
+        if (! class_exists(ImagickImageBackEnd::class)) {
+            throw new \RuntimeException('Make sure you are using version 2 of Bacon QR Code');
+        }
+
+        $this->borderWidth = $borderWidth;
+        $this->backgroundColour = $this->handleColour($backgroundColour);
+        $this->foregroundColour = $this->handleColour($foregroundColour);
+        $this->format = strtolower($format);
+    }
+
+    /**
+     * Standard functions from IQRCodeProvider
+     */
+
+    public function getMimeType()
+    {
+        switch ($this->format) {
+            case 'png':
+                return 'image/png';
+            case 'gif':
+                return 'image/gif';
+            case 'jpg':
+            case 'jpeg':
+                return 'image/jpeg';
+            case 'svg':
+                return 'image/svg+xml';
+            case 'eps':
+                return 'application/postscript';
+        }
+
+        throw new \RuntimeException(sprintf('Unknown MIME-type: %s', $this->format));
+    }
+
+    public function getQRCodeImage($qrText, $size)
+    {
+        switch ($this->format) {
+            case 'svg':
+                $backend = new SvgImageBackEnd;
+                break;
+            case 'eps':
+                $backend = new EpsImageBackEnd;
+                break;
+            default:
+                $backend = new ImagickImageBackEnd($this->format);
+        }
+
+        $output = $this->getQRCodeByBackend($qrText, $size, $backend);
+
+        if ($this->format == 'svg') {
+            $svg = explode("\n", $output);
+            return $svg[1];
+        }
+
+        return $output;
+    }
+
+    /**
+     * Abstract QR code generation function
+     * providing colour changing support
+     */
+    private function getQRCodeByBackend($qrText, $size, ImageBackEndInterface $backend)
+    {
+        $rendererStyleArgs = array($size, $this->borderWidth);
+
+        if (is_array($this->foregroundColour) && is_array($this->backgroundColour)) {
+            $rendererStyleArgs = array_merge($rendererStyleArgs, array(
+                null,
+                null,
+                Fill::withForegroundColor(
+                    new Rgb(...$this->backgroundColour),
+                    new Rgb(...$this->foregroundColour),
+                    new EyeFill(null, null),
+                    new EyeFill(null, null),
+                    new EyeFill(null, null)
+                )
+            ));
+        }
+
+        $writer = new Writer(new ImageRenderer(
+            new RendererStyle(...$rendererStyleArgs),
+            $backend
+        ));
+
+        return $writer->writeString($qrText);
+    }
+
+    /**
+     * Ensure colour is an array of three values but also
+     * accept a string and assume its a 3 or 6 character hex
+     */
+    private function handleColour($colour)
+    {
+        if (is_string($colour) && $colour[0] == '#') {
+            $hexToRGB = function ($input) {
+                // split the array into three chunks
+                $split = str_split(trim($input, '#'), strlen($input) / 3);
+
+                // cope with three character hex reference
+                // three characters plus a # = 4
+                if (strlen($input) == 4) {
+                    array_walk($split, function (&$character) {
+                        $character = str_repeat($character, 2);
+                    });
+                }
+
+                // convert hex to rgb
+                return array_map('hexdec', $split);
+            };
+
+            return $hexToRGB($colour);
+        }
+
+        if (is_array($colour) && count($colour) == 3) {
+            return $colour;
+        }
+
+        throw new \RuntimeException('Invalid colour value');
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/BaseHTTPQRCodeProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/BaseHTTPQRCodeProvider.php
index 5cb3add..bcc8d56 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/BaseHTTPQRCodeProvider.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/BaseHTTPQRCodeProvider.php
@@ -4,12 +4,18 @@
 
 abstract class BaseHTTPQRCodeProvider implements IQRCodeProvider
 {
+    /** @var bool */
     protected $verifyssl;
 
+    /**
+     * @param string $url
+     *
+     * @return string|bool
+     */
     protected function getContent($url)
     {
         $curlhandle = curl_init();
-        
+
         curl_setopt_array($curlhandle, array(
             CURLOPT_URL => $url,
             CURLOPT_RETURNTRANSFER => true,
@@ -20,8 +26,8 @@
             CURLOPT_USERAGENT => 'TwoFactorAuth'
         ));
         $data = curl_exec($curlhandle);
-        
+
         curl_close($curlhandle);
         return $data;
     }
-}
\ No newline at end of file
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/EndroidQrCodeProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/EndroidQrCodeProvider.php
new file mode 100755
index 0000000..810aa9b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/EndroidQrCodeProvider.php
@@ -0,0 +1,70 @@
+<?php
+namespace RobThree\Auth\Providers\Qr;
+
+use Endroid\QrCode\ErrorCorrectionLevel;
+use Endroid\QrCode\QrCode;
+
+class EndroidQrCodeProvider implements IQRCodeProvider
+{
+    public $bgcolor;
+    public $color;
+    public $margin;
+    public $errorcorrectionlevel;
+
+    public function __construct($bgcolor = 'ffffff', $color = '000000', $margin = 0, $errorcorrectionlevel = 'H')
+    {
+        $this->bgcolor = $this->handleColor($bgcolor);
+        $this->color = $this->handleColor($color);
+        $this->margin = $margin;
+        $this->errorcorrectionlevel = $this->handleErrorCorrectionLevel($errorcorrectionlevel);
+    }
+
+    public function getMimeType()
+    {
+        return 'image/png';
+    }
+
+    public function getQRCodeImage($qrtext, $size)
+    {
+        return $this->qrCodeInstance($qrtext, $size)->writeString();
+    }
+
+    protected function qrCodeInstance($qrtext, $size)
+    {
+        $qrCode = new QrCode($qrtext);
+        $qrCode->setSize($size);
+
+        $qrCode->setErrorCorrectionLevel($this->errorcorrectionlevel);
+        $qrCode->setMargin($this->margin);
+        $qrCode->setBackgroundColor($this->bgcolor);
+        $qrCode->setForegroundColor($this->color);
+
+        return $qrCode;
+    }
+
+    private function handleColor($color)
+    {
+        $split = str_split($color, 2);
+        $r = hexdec($split[0]);
+        $g = hexdec($split[1]);
+        $b = hexdec($split[2]);
+
+        return ['r' => $r, 'g' => $g, 'b' => $b, 'a' => 0];
+    }
+
+    private function handleErrorCorrectionLevel($level)
+    {
+        switch ($level) {
+            case 'L':
+                return ErrorCorrectionLevel::LOW();
+            case 'M':
+                return ErrorCorrectionLevel::MEDIUM();
+            case 'Q':
+                return ErrorCorrectionLevel::QUARTILE();
+            case 'H':
+                return ErrorCorrectionLevel::HIGH();
+            default:
+                return ErrorCorrectionLevel::HIGH();
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/EndroidQrCodeWithLogoProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/EndroidQrCodeWithLogoProvider.php
new file mode 100755
index 0000000..ed8cc98
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/EndroidQrCodeWithLogoProvider.php
@@ -0,0 +1,35 @@
+<?php
+namespace RobThree\Auth\Providers\Qr;
+
+use Endroid\QrCode\ErrorCorrectionLevel;
+use Endroid\QrCode\QrCode;
+
+class EndroidQrCodeWithLogoProvider extends EndroidQrCodeProvider
+{
+    protected $logoPath;
+    protected $logoSize;
+
+    /**
+     * Adds an image to the middle of the QR Code.
+     * @param string $path Path to an image file
+     * @param array|int $size Just the width, or [width, height]
+     */
+    public function setLogo($path, $size = null)
+    {
+        $this->logoPath = $path;
+        $this->logoSize = (array)$size;
+    }
+
+    protected function qrCodeInstance($qrtext, $size) {
+        $qrCode = parent::qrCodeInstance($qrtext, $size);
+
+        if ($this->logoPath) {
+            $qrCode->setLogoPath($this->logoPath);
+            if ($this->logoSize) {
+                $qrCode->setLogoSize($this->logoSize[0], $this->logoSize[1]);
+            }
+        }
+
+        return $qrCode;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/IQRCodeProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/IQRCodeProvider.php
index 83ed67b..e53a5ad 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/IQRCodeProvider.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/IQRCodeProvider.php
@@ -4,6 +4,21 @@
 
 interface IQRCodeProvider
 {
+    /**
+     * Generate and return the QR code to embed in a web page
+     *
+     * @param string $qrtext the value to encode in the QR code
+     * @param int $size the desired size of the QR code
+     *
+     * @return string file contents of the QR code
+     */
     public function getQRCodeImage($qrtext, $size);
+
+    /**
+     * Returns the appropriate mime type for the QR code
+     * that will be generated
+     *
+     * @return string
+     */
     public function getMimeType();
-}
\ No newline at end of file
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/ImageChartsQRCodeProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/ImageChartsQRCodeProvider.php
index cc094c3..ea46ed4 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/ImageChartsQRCodeProvider.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/ImageChartsQRCodeProvider.php
@@ -3,37 +3,58 @@
 namespace RobThree\Auth\Providers\Qr;
 
 // https://image-charts.com
-class ImageChartsQRCodeProvider extends BaseHTTPQRCodeProvider 
+class ImageChartsQRCodeProvider extends BaseHTTPQRCodeProvider
 {
+    /** @var string */
     public $errorcorrectionlevel;
+
+    /** @var int */
     public $margin;
 
-    function __construct($verifyssl = false, $errorcorrectionlevel = 'L', $margin = 1) 
+    /**
+     * @param bool $verifyssl
+     * @param string $errorcorrectionlevel
+     * @param int $margin
+     */
+    public function __construct($verifyssl = false, $errorcorrectionlevel = 'L', $margin = 1)
     {
-        if (!is_bool($verifyssl))
-            throw new \QRException('VerifySSL must be bool');
+        if (!is_bool($verifyssl)) {
+            throw new QRException('VerifySSL must be bool');
+        }
 
         $this->verifyssl = $verifyssl;
-        
+
         $this->errorcorrectionlevel = $errorcorrectionlevel;
         $this->margin = $margin;
     }
-    
-    public function getMimeType() 
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getMimeType()
     {
         return 'image/png';
     }
-    
-    public function getQRCodeImage($qrtext, $size) 
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getQRCodeImage($qrtext, $size)
     {
         return $this->getContent($this->getUrl($qrtext, $size));
     }
-    
-    public function getUrl($qrtext, $size) 
+
+    /**
+     * @param string $qrtext the value to encode in the QR code
+     * @param int $size the desired size of the QR code
+     *
+     * @return string file contents of the QR code
+     */
+    public function getUrl($qrtext, $size)
     {
         return 'https://image-charts.com/chart?cht=qr'
-            . '&chs=' . ceil($size/2) . 'x' . ceil($size/2)
+            . '&chs=' . ceil($size / 2) . 'x' . ceil($size / 2)
             . '&chld=' . $this->errorcorrectionlevel . '|' . $this->margin
             . '&chl=' . rawurlencode($qrtext);
     }
-}
\ No newline at end of file
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/QRException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/QRException.php
index c28e829..4e75f77 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/QRException.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/QRException.php
@@ -1,5 +1,7 @@
 <?php
 
+namespace RobThree\Auth\Providers\Qr;
+
 use RobThree\Auth\TwoFactorAuthException;
 
-class QRException extends TwoFactorAuthException {}
\ No newline at end of file
+class QRException extends TwoFactorAuthException {}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/QRServerProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/QRServerProvider.php
index 928b87b..2252dfc 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/QRServerProvider.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/QRServerProvider.php
@@ -3,22 +3,43 @@
 namespace RobThree\Auth\Providers\Qr;
 
 // http://goqr.me/api/doc/create-qr-code/
-class QRServerProvider extends BaseHTTPQRCodeProvider 
+class QRServerProvider extends BaseHTTPQRCodeProvider
 {
+    /** @var string */
     public $errorcorrectionlevel;
+
+    /** @var int */
     public $margin;
+
+    /** @var int */
     public $qzone;
+
+    /** @var string */
     public $bgcolor;
+
+    /** @var string */
     public $color;
+
+    /** @var string */
     public $format;
 
-    function __construct($verifyssl = false, $errorcorrectionlevel = 'L', $margin = 4, $qzone = 1, $bgcolor = 'ffffff', $color = '000000', $format = 'png') 
+    /**
+     * @param bool $verifyssl
+     * @param string $errorcorrectionlevel
+     * @param int $margin
+     * @param int $qzone
+     * @param string $bgcolor
+     * @param string $color
+     * @param string $format
+     */
+    public function __construct($verifyssl = false, $errorcorrectionlevel = 'L', $margin = 4, $qzone = 1, $bgcolor = 'ffffff', $color = '000000', $format = 'png')
     {
-        if (!is_bool($verifyssl))
+        if (!is_bool($verifyssl)) {
             throw new QRException('VerifySSL must be bool');
+        }
 
         $this->verifyssl = $verifyssl;
-        
+
         $this->errorcorrectionlevel = $errorcorrectionlevel;
         $this->margin = $margin;
         $this->qzone = $qzone;
@@ -26,37 +47,53 @@
         $this->color = $color;
         $this->format = $format;
     }
-    
-    public function getMimeType() 
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getMimeType()
     {
-        switch (strtolower($this->format))
-        {
-        	case 'png':
+        switch (strtolower($this->format)) {
+            case 'png':
                 return 'image/png';
-        	case 'gif':
+            case 'gif':
                 return 'image/gif';
-        	case 'jpg':
-        	case 'jpeg':
+            case 'jpg':
+            case 'jpeg':
                 return 'image/jpeg';
-        	case 'svg':
+            case 'svg':
                 return 'image/svg+xml';
-        	case 'eps':
+            case 'eps':
                 return 'application/postscript';
         }
-        throw new \QRException(sprintf('Unknown MIME-type: %s', $this->format));
+        throw new QRException(sprintf('Unknown MIME-type: %s', $this->format));
     }
-    
-    public function getQRCodeImage($qrtext, $size) 
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getQRCodeImage($qrtext, $size)
     {
         return $this->getContent($this->getUrl($qrtext, $size));
     }
-    
-    private function decodeColor($value) 
+
+    /**
+     * @param string $value
+     *
+     * @return string
+     */
+    private function decodeColor($value)
     {
         return vsprintf('%d-%d-%d', sscanf($value, "%02x%02x%02x"));
     }
-    
-    public function getUrl($qrtext, $size) 
+
+    /**
+     * @param string $qrtext the value to encode in the QR code
+     * @param int|string $size the desired size of the QR code
+     *
+     * @return string file contents of the QR code
+     */
+    public function getUrl($qrtext, $size)
     {
         return 'https://api.qrserver.com/v1/create-qr-code/'
             . '?size=' . $size . 'x' . $size
@@ -68,4 +105,4 @@
             . '&format=' . strtolower($this->format)
             . '&data=' . rawurlencode($qrtext);
     }
-}
\ No newline at end of file
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/QRicketProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/QRicketProvider.php
index 59e27cc..166a8a9 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/QRicketProvider.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Qr/QRicketProvider.php
@@ -3,45 +3,67 @@
 namespace RobThree\Auth\Providers\Qr;
 
 // http://qrickit.com/qrickit_apps/qrickit_api.php
-class QRicketProvider extends BaseHTTPQRCodeProvider 
+class QRicketProvider extends BaseHTTPQRCodeProvider
 {
+    /** @var string */
     public $errorcorrectionlevel;
-    public $margin;
-    public $qzone;
+
+    /** @var string */
     public $bgcolor;
+
+    /** @var string */
     public $color;
+
+    /** @var string */
     public $format;
 
-    function __construct($errorcorrectionlevel = 'L', $bgcolor = 'ffffff', $color = '000000', $format = 'p') 
+    /**
+     * @param string $errorcorrectionlevel
+     * @param string $bgcolor
+     * @param string $color
+     * @param string $format
+     */
+    public function __construct($errorcorrectionlevel = 'L', $bgcolor = 'ffffff', $color = '000000', $format = 'p')
     {
         $this->verifyssl = false;
-        
+
         $this->errorcorrectionlevel = $errorcorrectionlevel;
         $this->bgcolor = $bgcolor;
         $this->color = $color;
         $this->format = $format;
     }
-    
-    public function getMimeType() 
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getMimeType()
     {
-        switch (strtolower($this->format))
-        {
-        	case 'p':
+        switch (strtolower($this->format)) {
+            case 'p':
                 return 'image/png';
-        	case 'g':
+            case 'g':
                 return 'image/gif';
-        	case 'j':
+            case 'j':
                 return 'image/jpeg';
         }
-        throw new \QRException(sprintf('Unknown MIME-type: %s', $this->format));
+        throw new QRException(sprintf('Unknown MIME-type: %s', $this->format));
     }
-    
-    public function getQRCodeImage($qrtext, $size) 
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getQRCodeImage($qrtext, $size)
     {
         return $this->getContent($this->getUrl($qrtext, $size));
     }
-    
-    public function getUrl($qrtext, $size) 
+
+    /**
+     * @param string $qrtext the value to encode in the QR code
+     * @param int|string $size the desired size of the QR code
+     *
+     * @return string file contents of the QR code
+     */
+    public function getUrl($qrtext, $size)
     {
         return 'http://qrickit.com/api/qr'
             . '?qrsize=' . $size
@@ -51,4 +73,4 @@
             . '&t=' . strtolower($this->format)
             . '&d=' . rawurlencode($qrtext);
     }
-}
\ No newline at end of file
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/CSRNGProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/CSRNGProvider.php
index 8dba7fc..088edab 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/CSRNGProvider.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/CSRNGProvider.php
@@ -4,11 +4,19 @@
 
 class CSRNGProvider implements IRNGProvider
 {
-    public function getRandomBytes($bytecount) {
+    /**
+     * {@inheritdoc}
+     */
+    public function getRandomBytes($bytecount)
+    {
         return random_bytes($bytecount);    // PHP7+
     }
-    
-    public function isCryptographicallySecure() {
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isCryptographicallySecure()
+    {
         return true;
     }
-}
\ No newline at end of file
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/HashRNGProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/HashRNGProvider.php
index eb42577..d17a5f8 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/HashRNGProvider.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/HashRNGProvider.php
@@ -1,28 +1,43 @@
 <?php
+
 namespace RobThree\Auth\Providers\Rng;
 
 class HashRNGProvider implements IRNGProvider
 {
+    /** @var string */
     private $algorithm;
-    
-    function __construct($algorithm = 'sha256' ) {
+
+    /**
+     * @param string $algorithm
+     */
+    public function __construct($algorithm = 'sha256')
+    {
         $algos = array_values(hash_algos());
-        if (!in_array($algorithm, $algos, true))
-            throw new \RNGException('Unsupported algorithm specified');
+        if (!in_array($algorithm, $algos, true)) {
+            throw new RNGException('Unsupported algorithm specified');
+        }
         $this->algorithm = $algorithm;
     }
-    
-    public function getRandomBytes($bytecount) {
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getRandomBytes($bytecount)
+    {
         $result = '';
         $hash = mt_rand();
         for ($i = 0; $i < $bytecount; $i++) {
-            $hash = hash($this->algorithm, $hash.mt_rand(), true);
-            $result .= $hash[mt_rand(0, strlen($hash)-1)];
+            $hash = hash($this->algorithm, $hash . mt_rand(), true);
+            $result .= $hash[mt_rand(0, strlen($hash) - 1)];
         }
         return $result;
     }
-    
-    public function isCryptographicallySecure() {
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isCryptographicallySecure()
+    {
         return false;
     }
 }
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/IRNGProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/IRNGProvider.php
index 6be2800..e4e71c2 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/IRNGProvider.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/IRNGProvider.php
@@ -4,6 +4,15 @@
 
 interface IRNGProvider
 {
+    /**
+     * @param int $bytecount the number of bytes of randomness to return
+     *
+     * @return string the random bytes
+     */
     public function getRandomBytes($bytecount);
+
+    /**
+     * @return bool whether this provider is cryptographically secure
+     */
     public function isCryptographicallySecure();
-}
\ No newline at end of file
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/MCryptRNGProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/MCryptRNGProvider.php
index 0eeab2c..d1b6430 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/MCryptRNGProvider.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/MCryptRNGProvider.php
@@ -4,20 +4,34 @@
 
 class MCryptRNGProvider implements IRNGProvider
 {
+    /** @var int */
     private $source;
-    
-    function __construct($source = MCRYPT_DEV_URANDOM) {
+
+    /**
+     * @param int $source
+     */
+    public function __construct($source = MCRYPT_DEV_URANDOM)
+    {
         $this->source = $source;
     }
-    
-    public function getRandomBytes($bytecount) {
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getRandomBytes($bytecount)
+    {
         $result = @mcrypt_create_iv($bytecount, $this->source);
-        if ($result === false)
-            throw new \RNGException('mcrypt_create_iv returned an invalid value');
+        if ($result === false) {
+            throw new RNGException('mcrypt_create_iv returned an invalid value');
+        }
         return $result;
     }
-    
-    public function isCryptographicallySecure() {
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isCryptographicallySecure()
+    {
         return true;
     }
-}
\ No newline at end of file
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/OpenSSLRNGProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/OpenSSLRNGProvider.php
index dc66c64..eb82b3b 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/OpenSSLRNGProvider.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/OpenSSLRNGProvider.php
@@ -4,22 +4,37 @@
 
 class OpenSSLRNGProvider implements IRNGProvider
 {
+    /** @var bool */
     private $requirestrong;
-    
-    function __construct($requirestrong = true) {
+
+    /**
+     * @param bool $requirestrong
+     */
+    public function __construct($requirestrong = true)
+    {
         $this->requirestrong = $requirestrong;
     }
-    
-    public function getRandomBytes($bytecount) {
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getRandomBytes($bytecount)
+    {
         $result = openssl_random_pseudo_bytes($bytecount, $crypto_strong);
-        if ($this->requirestrong && ($crypto_strong === false))
-            throw new \RNGException('openssl_random_pseudo_bytes returned non-cryptographically strong value');
-        if ($result === false)
-            throw new \RNGException('openssl_random_pseudo_bytes returned an invalid value');
+        if ($this->requirestrong && ($crypto_strong === false)) {
+            throw new RNGException('openssl_random_pseudo_bytes returned non-cryptographically strong value');
+        }
+        if ($result === false) {
+            throw new RNGException('openssl_random_pseudo_bytes returned an invalid value');
+        }
         return $result;
     }
-    
-    public function isCryptographicallySecure() {
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isCryptographicallySecure()
+    {
         return $this->requirestrong;
     }
-}
\ No newline at end of file
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/RNGException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/RNGException.php
index eb5e913..f9a11ac 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/RNGException.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Rng/RNGException.php
@@ -1,5 +1,7 @@
 <?php
 
+namespace RobThree\Auth\Providers\Rng;
+
 use RobThree\Auth\TwoFactorAuthException;
 
-class RNGException extends TwoFactorAuthException {}
\ No newline at end of file
+class RNGException extends TwoFactorAuthException {}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Time/HttpTimeProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Time/HttpTimeProvider.php
index 8e7806e..c346e5a 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Time/HttpTimeProvider.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Time/HttpTimeProvider.php
@@ -2,22 +2,33 @@
 
 namespace RobThree\Auth\Providers\Time;
 
+use DateTime;
+
 /**
  * Takes the time from any webserver by doing a HEAD request on the specified URL and extracting the 'Date:' header
  */
 class HttpTimeProvider implements ITimeProvider
 {
+    /** @var string */
     public $url;
-    public $options;
+
+    /** @var string */
     public $expectedtimeformat;
 
-    function __construct($url = 'https://google.com', $expectedtimeformat = 'D, d M Y H:i:s O+', array $options = null)
+    /** @var array */
+    public $options;
+
+    /**
+     * @param string $url
+     * @param string $expectedtimeformat
+     * @param array $options
+     */
+    public function __construct($url = 'https://google.com', $expectedtimeformat = 'D, d M Y H:i:s O+', array $options = null)
     {
         $this->url = $url;
         $this->expectedtimeformat = $expectedtimeformat;
-        $this->options = $options;
-        if ($this->options === null) {
-            $this->options = array(
+        if ($options === null) {
+            $options = array(
                 'http' => array(
                     'method' => 'HEAD',
                     'follow_location' => false,
@@ -32,9 +43,14 @@
                 )
             );
         }
+        $this->options = $options;
     }
 
-    public function getTime() {
+    /**
+     * {@inheritdoc}
+     */
+    public function getTime()
+    {
         try {
             $context  = stream_context_create($this->options);
             $fd = fopen($this->url, 'rb', false, $context);
@@ -42,13 +58,14 @@
             fclose($fd);
 
             foreach ($headers['wrapper_data'] as $h) {
-                if (strcasecmp(substr($h, 0, 5), 'Date:') === 0)
-                    return \DateTime::createFromFormat($this->expectedtimeformat, trim(substr($h,5)))->getTimestamp();
+                if (strcasecmp(substr($h, 0, 5), 'Date:') === 0) {
+                    return DateTime::createFromFormat($this->expectedtimeformat, trim(substr($h, 5)))->getTimestamp();
+                }
             }
-            throw new \TimeException(sprintf('Unable to retrieve time from %s (Invalid or no "Date:" header found)', $this->url));
+            throw new \Exception('Invalid or no "Date:" header found');
+        } catch (\Exception $ex) {
+            throw new TimeException(sprintf('Unable to retrieve time from %s (%s)', $this->url, $ex->getMessage()));
         }
-        catch (Exception $ex) {
-            throw new \TimeException(sprintf('Unable to retrieve time from %s (%s)', $this->url, $ex->getMessage()));
-        }
+
     }
-}
\ No newline at end of file
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Time/ITimeProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Time/ITimeProvider.php
index a3b87a2..4799f17 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Time/ITimeProvider.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Time/ITimeProvider.php
@@ -4,5 +4,8 @@
 
 interface ITimeProvider
 {
+    /**
+     * @return int the current timestamp according to this provider
+     */
     public function getTime();
-}
\ No newline at end of file
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Time/LocalMachineTimeProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Time/LocalMachineTimeProvider.php
index 572cedc..2fe6846 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Time/LocalMachineTimeProvider.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Time/LocalMachineTimeProvider.php
@@ -2,8 +2,10 @@
 
 namespace RobThree\Auth\Providers\Time;
 
-class LocalMachineTimeProvider implements ITimeProvider {
-    public function getTime() {
+class LocalMachineTimeProvider implements ITimeProvider
+{
+    public function getTime()
+    {
         return time();
     }
-}
\ No newline at end of file
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Time/NTPTimeProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Time/NTPTimeProvider.php
index d69a3a6..a701850 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Time/NTPTimeProvider.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Time/NTPTimeProvider.php
@@ -7,24 +7,40 @@
  */
 class NTPTimeProvider implements ITimeProvider
 {
+    /** @var string */
     public $host;
+
+    /** @var int */
     public $port;
+
+    /** @var int */
     public $timeout;
 
-    function __construct($host = 'time.google.com', $port = 123, $timeout = 1)
+    /**
+     * @param string $host
+     * @param int $port
+     * @param int $timeout
+     */
+    public function __construct($host = 'time.google.com', $port = 123, $timeout = 1)
     {
         $this->host = $host;
 
-        if (!is_int($port) || $port <= 0 || $port > 65535)
-            throw new \TimeException('Port must be 0 < port < 65535');
+        if (!is_int($port) || $port <= 0 || $port > 65535) {
+            throw new TimeException('Port must be 0 < port < 65535');
+        }
         $this->port = $port;
 
-        if (!is_int($timeout) || $timeout < 0)
-            throw new \TimeException('Timeout must be >= 0');
+        if (!is_int($timeout) || $timeout < 0) {
+            throw new TimeException('Timeout must be >= 0');
+        }
         $this->timeout = $timeout;
     }
 
-    public function getTime() {
+    /**
+     * {@inheritdoc}
+     */
+    public function getTime()
+    {
         try {
             /* Create a socket and connect to NTP server */
             $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
@@ -36,19 +52,19 @@
             socket_send($sock, $msg, strlen($msg), 0);
 
             /* Receive response and close socket */
-            if (socket_recv($sock, $recv, 48, MSG_WAITALL) === false)
+            if (socket_recv($sock, $recv, 48, MSG_WAITALL) === false) {
                 throw new \Exception(socket_strerror(socket_last_error($sock)));
+            }
             socket_close($sock);
 
             /* Interpret response */
             $data = unpack('N12', $recv);
-            $timestamp = sprintf('%u', $data[9]);
+            $timestamp = (int) sprintf('%u', $data[9]);
 
             /* NTP is number of seconds since 0000 UT on 1 January 1900 Unix time is seconds since 0000 UT on 1 January 1970 */
             return $timestamp - 2208988800;
-        }
-        catch (Exception $ex) {
-            throw new \TimeException(sprintf('Unable to retrieve time from %s (%s)', $this->host, $ex->getMessage()));
+        } catch (\Exception $ex) {
+            throw new TimeException(sprintf('Unable to retrieve time from %s (%s)', $this->host, $ex->getMessage()));
         }
     }
 }
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Time/TimeException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Time/TimeException.php
index 8de544d..c5a06e2 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Time/TimeException.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/Providers/Time/TimeException.php
@@ -1,5 +1,7 @@
 <?php
 
+namespace RobThree\Auth\Providers\Time;
+
 use RobThree\Auth\TwoFactorAuthException;
 
-class TimeException extends TwoFactorAuthException {}
\ No newline at end of file
+class TimeException extends TwoFactorAuthException {}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/TwoFactorAuth.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/TwoFactorAuth.php
index 7bc067d..c46ac17 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/TwoFactorAuth.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/TwoFactorAuth.php
@@ -1,40 +1,82 @@
 <?php
+
 namespace RobThree\Auth;
 
 use RobThree\Auth\Providers\Qr\IQRCodeProvider;
+use RobThree\Auth\Providers\Qr\QRServerProvider;
+use RobThree\Auth\Providers\Rng\CSRNGProvider;
+use RobThree\Auth\Providers\Rng\HashRNGProvider;
 use RobThree\Auth\Providers\Rng\IRNGProvider;
+use RobThree\Auth\Providers\Rng\MCryptRNGProvider;
+use RobThree\Auth\Providers\Rng\OpenSSLRNGProvider;
+use RobThree\Auth\Providers\Time\HttpTimeProvider;
 use RobThree\Auth\Providers\Time\ITimeProvider;
+use RobThree\Auth\Providers\Time\LocalMachineTimeProvider;
+use RobThree\Auth\Providers\Time\NTPTimeProvider;
 
 // Based on / inspired by: https://github.com/PHPGangsta/GoogleAuthenticator
 // Algorithms, digits, period etc. explained: https://github.com/google/google-authenticator/wiki/Key-Uri-Format
 class TwoFactorAuth
 {
+    /** @var string */
     private $algorithm;
+
+    /** @var int */
     private $period;
+
+    /** @var int */
     private $digits;
+
+    /** @var string */
     private $issuer;
+
+    /** @var ?IQRCodeProvider */
     private $qrcodeprovider = null;
+
+    /** @var ?IRNGProvider */
     private $rngprovider = null;
+
+    /** @var ?ITimeProvider */
     private $timeprovider = null;
+
+    /** @var string */
     private static $_base32dict = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=';
+
+    /** @var array */
     private static $_base32;
+
+    /** @var array */
     private static $_base32lookup = array();
+
+    /** @var array */
     private static $_supportedalgos = array('sha1', 'sha256', 'sha512', 'md5');
 
-    function __construct($issuer = null, $digits = 6, $period = 30, $algorithm = 'sha1', IQRCodeProvider $qrcodeprovider = null, IRNGProvider $rngprovider = null, ITimeProvider $timeprovider = null)
+    /**
+     * @param ?string $issuer
+     * @param int $digits
+     * @param int $period
+     * @param string $algorithm
+     * @param ?IQRCodeProvider $qrcodeprovider
+     * @param ?IRNGProvider $rngprovider
+     * @param ?ITimeProvider $timeprovider
+     */
+    public function __construct($issuer = null, $digits = 6, $period = 30, $algorithm = 'sha1', IQRCodeProvider $qrcodeprovider = null, IRNGProvider $rngprovider = null, ITimeProvider $timeprovider = null)
     {
         $this->issuer = $issuer;
-        if (!is_int($digits) || $digits <= 0)
+        if (!is_int($digits) || $digits <= 0) {
             throw new TwoFactorAuthException('Digits must be int > 0');
+        }
         $this->digits = $digits;
 
-        if (!is_int($period) || $period <= 0)
+        if (!is_int($period) || $period <= 0) {
             throw new TwoFactorAuthException('Period must be int > 0');
+        }
         $this->period = $period;
 
         $algorithm = strtolower(trim($algorithm));
-        if (!in_array($algorithm, self::$_supportedalgos))
+        if (!in_array($algorithm, self::$_supportedalgos)) {
             throw new TwoFactorAuthException('Unsupported algorithm: ' . $algorithm);
+        }
         $this->algorithm = $algorithm;
         $this->qrcodeprovider = $qrcodeprovider;
         $this->rngprovider = $rngprovider;
@@ -46,22 +88,34 @@
 
     /**
      * Create a new secret
+     *
+     * @param int $bits
+     * @param bool $requirecryptosecure
+     *
+     * @return string
      */
     public function createSecret($bits = 80, $requirecryptosecure = true)
     {
         $secret = '';
-        $bytes = ceil($bits / 5);   //We use 5 bits of each byte (since we have a 32-character 'alphabet' / BASE32)
-        $rngprovider = $this->getRngprovider();
-        if ($requirecryptosecure && !$rngprovider->isCryptographicallySecure())
+        $bytes = (int) ceil($bits / 5);   //We use 5 bits of each byte (since we have a 32-character 'alphabet' / BASE32)
+        $rngprovider = $this->getRngProvider();
+        if ($requirecryptosecure && !$rngprovider->isCryptographicallySecure()) {
             throw new TwoFactorAuthException('RNG provider is not cryptographically secure');
+        }
         $rnd = $rngprovider->getRandomBytes($bytes);
-        for ($i = 0; $i < $bytes; $i++)
+        for ($i = 0; $i < $bytes; $i++) {
             $secret .= self::$_base32[ord($rnd[$i]) & 31];  //Mask out left 3 bits for 0-31 values
+        }
         return $secret;
     }
 
     /**
      * Calculate the code with given secret and point in time
+     *
+     * @param string $secret
+     * @param ?int $time
+     *
+     * @return string
      */
     public function getCode($secret, $time = null)
     {
@@ -73,15 +127,23 @@
         $value = unpack('N', $hashpart);                                                   // Unpack binary value
         $value = $value[1] & 0x7FFFFFFF;                                                   // Drop MSB, keep only 31 bits
 
-        return str_pad($value % pow(10, $this->digits), $this->digits, '0', STR_PAD_LEFT);
+        return str_pad((string) ($value % pow(10, $this->digits)), $this->digits, '0', STR_PAD_LEFT);
     }
 
     /**
      * Check if the code is correct. This will accept codes starting from ($discrepancy * $period) sec ago to ($discrepancy * period) sec from now
+     *
+     * @param string $secret
+     * @param string $code
+     * @param int $discrepancy
+     * @param ?int $time
+     * @param int $timeslice
+     *
+     * @return bool
      */
     public function verifyCode($secret, $code, $discrepancy = 1, $time = null, &$timeslice = 0)
     {
-        $timetamp = $this->getTime($time);
+        $timestamp = $this->getTime($time);
 
         $timeslice = 0;
 
@@ -90,7 +152,7 @@
         // of the match. Each iteration we either set the timeslice variable to the timeslice of the match
         // or set the value to itself.  This is an effort to maintain constant execution time for the code.
         for ($i = -$discrepancy; $i <= $discrepancy; $i++) {
-            $ts = $timetamp + ($i * $this->period);
+            $ts = $timestamp + ($i * $this->period);
             $slice = $this->getTimeSlice($ts);
             $timeslice = $this->codeEquals($this->getCode($secret, $ts), $code) ? $slice : $timeslice;
         }
@@ -100,17 +162,24 @@
 
     /**
      * Timing-attack safe comparison of 2 codes (see http://blog.ircmaxell.com/2014/11/its-all-about-time.html)
+     *
+     * @param string $safe
+     * @param string $user
+     *
+     * @return bool
      */
-    private function codeEquals($safe, $user) {
+    private function codeEquals($safe, $user)
+    {
         if (function_exists('hash_equals')) {
             return hash_equals($safe, $user);
         }
         // In general, it's not possible to prevent length leaks. So it's OK to leak the length. The important part is that
         // we don't leak information about the difference of the two strings.
-        if (strlen($safe)===strlen($user)) {
+        if (strlen($safe) === strlen($user)) {
             $result = 0;
-            for ($i = 0; $i < strlen($safe); $i++)
+            for ($i = 0; $i < strlen($safe); $i++) {
                 $result |= (ord($safe[$i]) ^ ord($user[$i]));
+            }
             return $result === 0;
         }
         return false;
@@ -118,11 +187,18 @@
 
     /**
      * Get data-uri of QRCode
+     *
+     * @param string $label
+     * @param string $secret
+     * @param mixed $size
+     *
+     * @return string
      */
     public function getQRCodeImageAsDataUri($label, $secret, $size = 200)
     {
-        if (!is_int($size) || $size <= 0)
+        if (!is_int($size) || $size <= 0) {
             throw new TwoFactorAuthException('Size must be int > 0');
+        }
 
         $qrcodeprovider = $this->getQrCodeProvider();
         return 'data:'
@@ -133,37 +209,52 @@
 
     /**
      * Compare default timeprovider with specified timeproviders and ensure the time is within the specified number of seconds (leniency)
+     * @param ?array $timeproviders
+     * @param int $leniency
+     *
+     * @return void
      */
     public function ensureCorrectTime(array $timeproviders = null, $leniency = 5)
     {
-        if ($timeproviders != null && !is_array($timeproviders))
-            throw new TwoFactorAuthException('No timeproviders specified');
-
-        if ($timeproviders == null)
+        if ($timeproviders === null) {
             $timeproviders = array(
-                new Providers\Time\NTPTimeProvider(),
-                new Providers\Time\HttpTimeProvider()
+                new NTPTimeProvider(),
+                new HttpTimeProvider()
             );
+        }
 
         // Get default time provider
         $timeprovider = $this->getTimeProvider();
 
         // Iterate specified time providers
         foreach ($timeproviders as $t) {
-            if (!($t instanceof ITimeProvider))
+            if (!($t instanceof ITimeProvider)) {
                 throw new TwoFactorAuthException('Object does not implement ITimeProvider');
+            }
 
             // Get time from default time provider and compare to specific time provider and throw if time difference is more than specified number of seconds leniency
-            if (abs($timeprovider->getTime() - $t->getTime()) > $leniency)
+            if (abs($timeprovider->getTime() - $t->getTime()) > $leniency) {
                 throw new TwoFactorAuthException(sprintf('Time for timeprovider is off by more than %d seconds when compared to %s', $leniency, get_class($t)));
+            }
         }
     }
 
-    private function getTime($time)
+    /**
+     * @param ?int $time
+     *
+     * @return int
+     */
+    private function getTime($time = null)
     {
         return ($time === null) ? $this->getTimeProvider()->getTime() : $time;
     }
 
+    /**
+     * @param int $time
+     * @param int $offset
+     *
+     * @return int
+     */
     private function getTimeSlice($time = null, $offset = 0)
     {
         return (int)floor($time / $this->period) + ($offset * $this->period);
@@ -171,6 +262,11 @@
 
     /**
      * Builds a string to be encoded in a QR code
+     *
+     * @param string $label
+     * @param string $secret
+     *
+     * @return string
      */
     public function getQRText($label, $secret)
     {
@@ -182,25 +278,33 @@
             . '&digits=' . intval($this->digits);
     }
 
+    /**
+     * @param string $value
+     * @return string
+     */
     private function base32Decode($value)
     {
-        if (strlen($value)==0) return '';
+        if (strlen($value) == 0) {
+            return '';
+        }
 
-        if (preg_match('/[^'.preg_quote(self::$_base32dict).']/', $value) !== 0)
+        if (preg_match('/[^' . preg_quote(self::$_base32dict) . ']/', $value) !== 0) {
             throw new TwoFactorAuthException('Invalid base32 string');
+        }
 
         $buffer = '';
-        foreach (str_split($value) as $char)
-        {
-            if ($char !== '=')
-                $buffer .= str_pad(decbin(self::$_base32lookup[$char]), 5, 0, STR_PAD_LEFT);
+        foreach (str_split($value) as $char) {
+            if ($char !== '=') {
+                $buffer .= str_pad(decbin(self::$_base32lookup[$char]), 5, '0', STR_PAD_LEFT);
+            }
         }
         $length = strlen($buffer);
         $blocks = trim(chunk_split(substr($buffer, 0, $length - ($length % 8)), 8, ' '));
 
         $output = '';
-        foreach (explode(' ', $blocks) as $block)
-            $output .= chr(bindec(str_pad($block, 8, 0, STR_PAD_RIGHT)));
+        foreach (explode(' ', $blocks) as $block) {
+            $output .= chr(bindec(str_pad($block, 8, '0', STR_PAD_RIGHT)));
+        }
         return $output;
     }
 
@@ -212,7 +316,7 @@
     {
         // Set default QR Code provider if none was specified
         if (null === $this->qrcodeprovider) {
-            return $this->qrcodeprovider = new Providers\Qr\QRServerProvider();
+            return $this->qrcodeprovider = new QRServerProvider();
         }
         return $this->qrcodeprovider;
     }
@@ -221,22 +325,22 @@
      * @return IRNGProvider
      * @throws TwoFactorAuthException
      */
-    public function getRngprovider()
+    public function getRngProvider()
     {
         if (null !== $this->rngprovider) {
             return $this->rngprovider;
         }
         if (function_exists('random_bytes')) {
-            return $this->rngprovider = new Providers\Rng\CSRNGProvider();
+            return $this->rngprovider = new CSRNGProvider();
         }
         if (function_exists('mcrypt_create_iv')) {
-            return $this->rngprovider = new Providers\Rng\MCryptRNGProvider();
+            return $this->rngprovider = new MCryptRNGProvider();
         }
         if (function_exists('openssl_random_pseudo_bytes')) {
-            return $this->rngprovider = new Providers\Rng\OpenSSLRNGProvider();
+            return $this->rngprovider = new OpenSSLRNGProvider();
         }
         if (function_exists('hash')) {
-            return $this->rngprovider = new Providers\Rng\HashRNGProvider();
+            return $this->rngprovider = new HashRNGProvider();
         }
         throw new TwoFactorAuthException('Unable to find a suited RNGProvider');
     }
@@ -249,8 +353,8 @@
     {
         // Set default time provider if none was specified
         if (null === $this->timeprovider) {
-            return $this->timeprovider = new Providers\Time\LocalMachineTimeProvider();
+            return $this->timeprovider = new LocalMachineTimeProvider();
         }
         return $this->timeprovider;
     }
-}
\ No newline at end of file
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/TwoFactorAuthException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/TwoFactorAuthException.php
index af51b74..bce8370 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/TwoFactorAuthException.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/lib/TwoFactorAuthException.php
@@ -4,4 +4,4 @@
 
 use Exception;
 
-class TwoFactorAuthException extends \Exception {}
\ No newline at end of file
+class TwoFactorAuthException extends Exception {}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/phpunit.xml b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/phpunit.xml
index 92c3a27..b2ff004 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/phpunit.xml
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/phpunit.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <phpunit backupGlobals="false"
          backupStaticAttributes="false"
          colors="true"
@@ -6,15 +6,21 @@
          convertNoticesToExceptions="true"
          convertWarningsToExceptions="true"
          processIsolation="false"
+         xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          stopOnFailure="false">
   <testsuites>
     <testsuite name="Unit">
       <directory suffix="Test.php">./tests</directory>
     </testsuite>
   </testsuites>
-  <filter>
-    <whitelist processUncoveredFilesFromWhitelist="true">
+  <coverage processUncoveredFiles="true">
+    <include>
       <directory suffix=".php">./lib</directory>
-    </whitelist>
-  </filter>
-</phpunit>
\ No newline at end of file
+    </include>
+    <report>
+      <html outputDirectory="build/coverage"/>
+      <text outputFile="php://stdout"/>
+    </report>
+  </coverage>
+</phpunit>
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/MightNotMakeAssertions.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/MightNotMakeAssertions.php
new file mode 100644
index 0000000..a7fbded
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/MightNotMakeAssertions.php
@@ -0,0 +1,26 @@
+<?php
+
+namespace Tests;
+
+trait MightNotMakeAssertions
+{
+    /**
+     * This is a shim to support PHPUnit for php 5.6 and 7.0.
+     *
+     * It has to be named something that doesn't collide with existing
+     * TestCase methods as we can't support PHP return types right now
+     *
+     * @return void
+     */
+    public function noAssertionsMade()
+    {
+        foreach (class_parents($this) as $parent) {
+            if (method_exists($parent, 'expectNotToPerformAssertions')) {
+                parent::expectNotToPerformAssertions();
+                return;
+            }
+        }
+
+        $this->assertTrue(true);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Qr/IQRCodeProviderTest.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Qr/IQRCodeProviderTest.php
new file mode 100644
index 0000000..86dd431
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Qr/IQRCodeProviderTest.php
@@ -0,0 +1,56 @@
+<?php
+
+namespace Tests\Providers\Qr;
+
+use PHPUnit\Framework\TestCase;
+use RobThree\Auth\TwoFactorAuth;
+use RobThree\Auth\TwoFactorAuthException;
+
+class IQRCodeProviderTest extends TestCase
+{
+    /**
+     * @param string $datauri
+     *
+     * @return null|array
+     */
+    private function DecodeDataUri($datauri)
+    {
+        if (preg_match('/data:(?P<mimetype>[\w\.\-\/]+);(?P<encoding>\w+),(?P<data>.*)/', $datauri, $m) === 1) {
+            return array(
+                'mimetype' => $m['mimetype'],
+                'encoding' => $m['encoding'],
+                'data' => base64_decode($m['data'])
+            );
+        }
+
+        return null;
+    }
+
+    /**
+     * @return void
+     */
+    public function testTotpUriIsCorrect()
+    {
+        $qr = new TestQrProvider();
+
+        $tfa = new TwoFactorAuth('Test&Issuer', 6, 30, 'sha1', $qr);
+        $data = $this->DecodeDataUri($tfa->getQRCodeImageAsDataUri('Test&Label', 'VMR466AB62ZBOKHE'));
+        $this->assertEquals('test/test', $data['mimetype']);
+        $this->assertEquals('base64', $data['encoding']);
+        $this->assertEquals('otpauth://totp/Test%26Label?secret=VMR466AB62ZBOKHE&issuer=Test%26Issuer&period=30&algorithm=SHA1&digits=6@200', $data['data']);
+    }
+
+    /**
+     * @return void
+     */
+    public function testGetQRCodeImageAsDataUriThrowsOnInvalidSize()
+    {
+        $qr = new TestQrProvider();
+
+        $tfa = new TwoFactorAuth('Test', 6, 30, 'sha1', $qr);
+
+        $this->expectException(TwoFactorAuthException::class);
+
+        $tfa->getQRCodeImageAsDataUri('Test', 'VMR466AB62ZBOKHE', 0);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Qr/TestQrProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Qr/TestQrProvider.php
new file mode 100644
index 0000000..93242c2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Qr/TestQrProvider.php
@@ -0,0 +1,24 @@
+<?php
+
+namespace Tests\Providers\Qr;
+
+use RobThree\Auth\Providers\Qr\IQRCodeProvider;
+
+class TestQrProvider implements IQRCodeProvider
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function getQRCodeImage($qrtext, $size)
+    {
+        return $qrtext . '@' . $size;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getMimeType()
+    {
+        return 'test/test';
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Rng/CSRNGProviderTest.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Rng/CSRNGProviderTest.php
new file mode 100644
index 0000000..e42ccfd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Rng/CSRNGProviderTest.php
@@ -0,0 +1,30 @@
+<?php
+
+namespace Tests\Providers\Rng;
+
+use PHPUnit\Framework\TestCase;
+use Tests\MightNotMakeAssertions;
+use RobThree\Auth\Providers\Rng\CSRNGProvider;
+
+class CSRNGProviderTest extends TestCase
+{
+    use NeedsRngLengths, MightNotMakeAssertions;
+
+    /**
+     * @requires function random_bytes
+     *
+     * @return void
+     */
+    public function testCSRNGProvidersReturnExpectedNumberOfBytes()
+    {
+        if (function_exists('random_bytes')) {
+            $rng = new CSRNGProvider();
+            foreach ($this->rngTestLengths as $l) {
+                $this->assertEquals($l, strlen($rng->getRandomBytes($l)));
+            }
+            $this->assertTrue($rng->isCryptographicallySecure());
+        } else {
+            $this->noAssertionsMade();
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Rng/HashRNGProviderTest.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Rng/HashRNGProviderTest.php
new file mode 100644
index 0000000..c99879d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Rng/HashRNGProviderTest.php
@@ -0,0 +1,24 @@
+<?php
+
+namespace Tests\Providers\Rng;
+
+use PHPUnit\Framework\TestCase;
+use RobThree\Auth\Providers\Rng\HashRNGProvider;
+
+class HashRNGProviderTest extends TestCase
+{
+    use NeedsRngLengths;
+
+    /**
+     * @return void
+     */
+    public function testHashRNGProvidersReturnExpectedNumberOfBytes()
+    {
+        $rng = new HashRNGProvider();
+        foreach ($this->rngTestLengths as $l) {
+            $this->assertEquals($l, strlen($rng->getRandomBytes($l)));
+        }
+
+        $this->assertFalse($rng->isCryptographicallySecure());
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Rng/IRNGProviderTest.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Rng/IRNGProviderTest.php
new file mode 100644
index 0000000..8897673
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Rng/IRNGProviderTest.php
@@ -0,0 +1,61 @@
+<?php
+
+namespace Tests\Providers\Rng;
+
+use PHPUnit\Framework\TestCase;
+use RobThree\Auth\TwoFactorAuth;
+use RobThree\Auth\TwoFactorAuthException;
+
+class IRNGProviderTest extends TestCase
+{
+    /**
+     * @return void
+     */
+    public function testCreateSecretThrowsOnInsecureRNGProvider()
+    {
+        $rng = new TestRNGProvider();
+
+        $tfa = new TwoFactorAuth('Test', 6, 30, 'sha1', null, $rng);
+
+        $this->expectException(TwoFactorAuthException::class);
+        $tfa->createSecret();
+    }
+
+    /**
+     * @return void
+     */
+    public function testCreateSecretOverrideSecureDoesNotThrowOnInsecureRNG()
+    {
+        $rng = new TestRNGProvider();
+
+        $tfa = new TwoFactorAuth('Test', 6, 30, 'sha1', null, $rng);
+        $this->assertEquals('ABCDEFGHIJKLMNOP', $tfa->createSecret(80, false));
+    }
+
+    /**
+     * @return void
+     */
+    public function testCreateSecretDoesNotThrowOnSecureRNGProvider()
+    {
+        $rng = new TestRNGProvider(true);
+
+        $tfa = new TwoFactorAuth('Test', 6, 30, 'sha1', null, $rng);
+        $this->assertEquals('ABCDEFGHIJKLMNOP', $tfa->createSecret());
+    }
+
+    /**
+     * @return void
+     */
+    public function testCreateSecretGeneratesDesiredAmountOfEntropy()
+    {
+        $rng = new TestRNGProvider(true);
+
+        $tfa = new TwoFactorAuth('Test', 6, 30, 'sha1', null, $rng);
+        $this->assertEquals('A', $tfa->createSecret(5));
+        $this->assertEquals('AB', $tfa->createSecret(6));
+        $this->assertEquals('ABCDEFGHIJKLMNOPQRSTUVWXYZ', $tfa->createSecret(128));
+        $this->assertEquals('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567', $tfa->createSecret(160));
+        $this->assertEquals('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567ABCDEFGHIJKLMNOPQRSTUVWXYZ234567', $tfa->createSecret(320));
+        $this->assertEquals('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567ABCDEFGHIJKLMNOPQRSTUVWXYZ234567A', $tfa->createSecret(321));
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Rng/MCryptRNGProviderTest.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Rng/MCryptRNGProviderTest.php
new file mode 100644
index 0000000..f6dd91e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Rng/MCryptRNGProviderTest.php
@@ -0,0 +1,32 @@
+<?php
+
+namespace Tests\Providers\Rng;
+
+use PHPUnit\Framework\TestCase;
+use Tests\MightNotMakeAssertions;
+use RobThree\Auth\Providers\Rng\MCryptRNGProvider;
+
+class MCryptRNGProviderTest extends TestCase
+{
+    use NeedsRngLengths, MightNotMakeAssertions;
+
+    /**
+     * @requires function mcrypt_create_iv
+     *
+     * @return void
+     */
+    public function testMCryptRNGProvidersReturnExpectedNumberOfBytes()
+    {
+        if (function_exists('mcrypt_create_iv')) {
+            $rng = new MCryptRNGProvider();
+
+            foreach ($this->rngTestLengths as $l) {
+                $this->assertEquals($l, strlen($rng->getRandomBytes($l)));
+            }
+
+            $this->assertTrue($rng->isCryptographicallySecure());
+        } else {
+            $this->noAssertionsMade();
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Rng/NeedsRngLengths.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Rng/NeedsRngLengths.php
new file mode 100644
index 0000000..7bbfed9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Rng/NeedsRngLengths.php
@@ -0,0 +1,9 @@
+<?php
+
+namespace Tests\Providers\Rng;
+
+trait NeedsRngLengths
+{
+    /** @var array */
+    protected $rngTestLengths = array(1, 16, 32, 256);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Rng/OpenSSLRNGProviderTest.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Rng/OpenSSLRNGProviderTest.php
new file mode 100644
index 0000000..c941fcc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Rng/OpenSSLRNGProviderTest.php
@@ -0,0 +1,37 @@
+<?php
+
+namespace Tests\Providers\Rng;
+
+use PHPUnit\Framework\TestCase;
+use RobThree\Auth\Providers\Rng\OpenSSLRNGProvider;
+
+class OpenSSLRNGProviderTest extends TestCase
+{
+    use NeedsRngLengths;
+
+    /**
+     * @return void
+     */
+    public function testStrongOpenSSLRNGProvidersReturnExpectedNumberOfBytes()
+    {
+        $rng = new OpenSSLRNGProvider(true);
+        foreach ($this->rngTestLengths as $l) {
+            $this->assertEquals($l, strlen($rng->getRandomBytes($l)));
+        }
+
+        $this->assertTrue($rng->isCryptographicallySecure());
+    }
+
+    /**
+     * @return void
+     */
+    public function testNonStrongOpenSSLRNGProvidersReturnExpectedNumberOfBytes()
+    {
+        $rng = new OpenSSLRNGProvider(false);
+        foreach ($this->rngTestLengths as $l) {
+            $this->assertEquals($l, strlen($rng->getRandomBytes($l)));
+        }
+
+        $this->assertFalse($rng->isCryptographicallySecure());
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Rng/TestRNGProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Rng/TestRNGProvider.php
new file mode 100644
index 0000000..7179521
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Rng/TestRNGProvider.php
@@ -0,0 +1,41 @@
+<?php
+
+namespace Tests\Providers\Rng;
+
+use RobThree\Auth\Providers\Rng\IRNGProvider;
+
+class TestRNGProvider implements IRNGProvider
+{
+    /** @var bool */
+    private $isSecure;
+
+    /**
+     * @param bool $isSecure whether this provider is cryptographically secure
+     */
+    function __construct($isSecure = false)
+    {
+        $this->isSecure = $isSecure;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getRandomBytes($bytecount)
+    {
+        $result = '';
+
+        for ($i = 0; $i < $bytecount; $i++) {
+            $result .= chr($i);
+        }
+
+        return $result;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isCryptographicallySecure()
+    {
+        return $this->isSecure;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Time/ITimeProviderTest.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Time/ITimeProviderTest.php
new file mode 100644
index 0000000..159e0c8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Time/ITimeProviderTest.php
@@ -0,0 +1,53 @@
+<?php
+
+namespace Tests\Providers\Time;
+
+use PHPUnit\Framework\TestCase;
+use Tests\MightNotMakeAssertions;
+use RobThree\Auth\TwoFactorAuthException;
+use RobThree\Auth\TwoFactorAuth;
+
+class ITimeProviderTest extends TestCase
+{
+    use MightNotMakeAssertions;
+
+    /**
+     * @return void
+     */
+    public function testEnsureCorrectTimeDoesNotThrowForCorrectTime()
+    {
+        $tpr1 = new TestTimeProvider(123);
+        $tpr2 = new TestTimeProvider(128);
+
+        $tfa = new TwoFactorAuth('Test', 6, 30, 'sha1', null, null, $tpr1);
+        $tfa->ensureCorrectTime(array($tpr2));   // 128 - 123 = 5 => within default leniency
+
+        $this->noAssertionsMade();
+    }
+
+    /**
+     * @return void
+     */
+    public function testEnsureCorrectTimeThrowsOnIncorrectTime()
+    {
+        $tpr1 = new TestTimeProvider(123);
+        $tpr2 = new TestTimeProvider(124);
+
+        $tfa = new TwoFactorAuth('Test', 6, 30, 'sha1', null, null, $tpr1);
+
+        $this->expectException(TwoFactorAuthException::class);
+
+        $tfa->ensureCorrectTime(array($tpr2), 0);    // We force a leniency of 0, 124-123 = 1 so this should throw
+    }
+
+    /**
+     * @return void
+     */
+    public function testEnsureDefaultTimeProviderReturnsCorrectTime()
+    {
+        $tfa = new TwoFactorAuth('Test', 6, 30, 'sha1');
+        $tfa->ensureCorrectTime(array(new TestTimeProvider(time())), 1);    // Use a leniency of 1, should the time change between both time() calls
+
+        $this->noAssertionsMade();
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Time/TestTimeProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Time/TestTimeProvider.php
new file mode 100644
index 0000000..0fc2d12
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/Providers/Time/TestTimeProvider.php
@@ -0,0 +1,27 @@
+<?php
+
+namespace Tests\Providers\Time;
+
+use RobThree\Auth\Providers\Time\ITimeProvider;
+
+class TestTimeProvider implements ITimeProvider
+{
+    /** @var int */
+    private $time;
+
+    /**
+     * @param int $time
+     */
+    function __construct($time)
+    {
+        $this->time = $time;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getTime()
+    {
+        return $this->time;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/TwoFactorAuthTest.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/TwoFactorAuthTest.php
index a0f2f67..ca00df9 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/TwoFactorAuthTest.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/robthree/twofactorauth/tests/TwoFactorAuthTest.php
@@ -1,218 +1,151 @@
 <?php
-require_once 'lib/TwoFactorAuth.php';
-require_once 'lib/TwoFactorAuthException.php';
 
-require_once 'lib/Providers/Qr/IQRCodeProvider.php';
-require_once 'lib/Providers/Qr/BaseHTTPQRCodeProvider.php';
-require_once 'lib/Providers/Qr/ImageChartsQRCodeProvider.php';
-require_once 'lib/Providers/Qr/QRException.php';
+namespace Tests;
 
-require_once 'lib/Providers/Rng/IRNGProvider.php';
-require_once 'lib/Providers/Rng/RNGException.php';
-require_once 'lib/Providers/Rng/CSRNGProvider.php';
-require_once 'lib/Providers/Rng/MCryptRNGProvider.php';
-require_once 'lib/Providers/Rng/OpenSSLRNGProvider.php';
-require_once 'lib/Providers/Rng/HashRNGProvider.php';
-require_once 'lib/Providers/Rng/RNGException.php';
-
-require_once 'lib/Providers/Time/ITimeProvider.php';
-require_once 'lib/Providers/Time/LocalMachineTimeProvider.php';
-require_once 'lib/Providers/Time/HttpTimeProvider.php';
-require_once 'lib/Providers/Time/NTPTimeProvider.php';
-require_once 'lib/Providers/Time/TimeException.php';
-
+use PHPUnit\Framework\TestCase;
+use RobThree\Auth\TwoFactorAuthException;
 use RobThree\Auth\TwoFactorAuth;
-use RobThree\Auth\Providers\Qr\IQRCodeProvider;
-use RobThree\Auth\Providers\Rng\IRNGProvider;
-use RobThree\Auth\Providers\Time\ITimeProvider;
 
-
-class TwoFactorAuthTest extends PHPUnit_Framework_TestCase
+class TwoFactorAuthTest extends TestCase
 {
+    use MightNotMakeAssertions;
+
     /**
-     * @expectedException \RobThree\Auth\TwoFactorAuthException
+     * @return void
      */
-    public function testConstructorThrowsOnInvalidDigits() {
+    public function testConstructorThrowsOnInvalidDigits()
+    {
+        $this->expectException(TwoFactorAuthException::class);
 
         new TwoFactorAuth('Test', 0);
     }
 
     /**
-     * @expectedException \RobThree\Auth\TwoFactorAuthException
+     * @return void
      */
-    public function testConstructorThrowsOnInvalidPeriod() {
+    public function testConstructorThrowsOnInvalidPeriod()
+    {
+        $this->expectException(TwoFactorAuthException::class);
 
         new TwoFactorAuth('Test', 6, 0);
     }
 
     /**
-     * @expectedException \RobThree\Auth\TwoFactorAuthException
+     * @return void
      */
-    public function testConstructorThrowsOnInvalidAlgorithm() {
+    public function testConstructorThrowsOnInvalidAlgorithm()
+    {
+        $this->expectException(TwoFactorAuthException::class);
 
         new TwoFactorAuth('Test', 6, 30, 'xxx');
     }
 
-    public function testGetCodeReturnsCorrectResults() {
-
+    /**
+     * @return void
+     */
+    public function testGetCodeReturnsCorrectResults()
+    {
         $tfa = new TwoFactorAuth('Test');
         $this->assertEquals('543160', $tfa->getCode('VMR466AB62ZBOKHE', 1426847216));
         $this->assertEquals('538532', $tfa->getCode('VMR466AB62ZBOKHE', 0));
     }
 
     /**
-     * @expectedException \RobThree\Auth\TwoFactorAuthException
+     * @return void
      */
-    public function testCreateSecretThrowsOnInsecureRNGProvider() {
-        $rng = new TestRNGProvider();
-
-        $tfa = new TwoFactorAuth('Test', 6, 30, 'sha1', null, $rng);
-        $tfa->createSecret();
-    }
-
-    public function testCreateSecretOverrideSecureDoesNotThrowOnInsecureRNG() {
-        $rng = new TestRNGProvider();
-
-        $tfa = new TwoFactorAuth('Test', 6, 30, 'sha1', null, $rng);
-        $this->assertEquals('ABCDEFGHIJKLMNOP', $tfa->createSecret(80, false));
-    }
-
-    public function testCreateSecretDoesNotThrowOnSecureRNGProvider() {
-        $rng = new TestRNGProvider(true);
-
-        $tfa = new TwoFactorAuth('Test', 6, 30, 'sha1', null, $rng);
-        $this->assertEquals('ABCDEFGHIJKLMNOP', $tfa->createSecret());
-    }
-
-    public function testCreateSecretGeneratesDesiredAmountOfEntropy() {
-        $rng = new TestRNGProvider(true);
-
-        $tfa = new TwoFactorAuth('Test', 6, 30, 'sha1', null, $rng);
-        $this->assertEquals('A', $tfa->createSecret(5));
-        $this->assertEquals('AB', $tfa->createSecret(6));
-        $this->assertEquals('ABCDEFGHIJKLMNOPQRSTUVWXYZ', $tfa->createSecret(128));
-        $this->assertEquals('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567', $tfa->createSecret(160));
-        $this->assertEquals('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567ABCDEFGHIJKLMNOPQRSTUVWXYZ234567', $tfa->createSecret(320));
-        $this->assertEquals('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567ABCDEFGHIJKLMNOPQRSTUVWXYZ234567A', $tfa->createSecret(321));
-    }
-
-    public function testEnsureCorrectTimeDoesNotThrowForCorrectTime() {
-        $tpr1 = new TestTimeProvider(123);
-        $tpr2 = new TestTimeProvider(128);
-
-        $tfa = new TwoFactorAuth('Test', 6, 30, 'sha1', null, null, $tpr1);
-        $tfa->ensureCorrectTime(array($tpr2));   // 128 - 123 = 5 => within default leniency
+    public function testEnsureAllTimeProvidersReturnCorrectTime()
+    {
+        $tfa = new TwoFactorAuth('Test', 6, 30, 'sha1');
+        $tfa->ensureCorrectTime(array(
+            new \RobThree\Auth\Providers\Time\NTPTimeProvider(),                         // Uses pool.ntp.org by default
+            //new \RobThree\Auth\Providers\Time\NTPTimeProvider('time.google.com'),      // Somehow time.google.com and time.windows.com make travis timeout??
+            new \RobThree\Auth\Providers\Time\HttpTimeProvider(),                        // Uses google.com by default
+            new \RobThree\Auth\Providers\Time\HttpTimeProvider('https://github.com'),
+            new \RobThree\Auth\Providers\Time\HttpTimeProvider('https://yahoo.com'),
+        ));
+        $this->noAssertionsMade();
     }
 
     /**
-     * @expectedException \RobThree\Auth\TwoFactorAuthException
+     * @return void
      */
-    public function testEnsureCorrectTimeThrowsOnIncorrectTime() {
-        $tpr1 = new TestTimeProvider(123);
-        $tpr2 = new TestTimeProvider(124);
-
-        $tfa = new TwoFactorAuth('Test', 6, 30, 'sha1', null, null, $tpr1);
-        $tfa->ensureCorrectTime(array($tpr2), 0);    // We force a leniency of 0, 124-123 = 1 so this should throw
-    }
-
-
-    public function testEnsureDefaultTimeProviderReturnsCorrectTime() {
-        $tfa = new TwoFactorAuth('Test', 6, 30, 'sha1');
-        $tfa->ensureCorrectTime(array(new TestTimeProvider(time())), 1);    // Use a leniency of 1, should the time change between both time() calls
-    }
-
-    public function testEnsureAllTimeProvidersReturnCorrectTime() {
-        $tfa = new TwoFactorAuth('Test', 6, 30, 'sha1');
-        $tfa->ensureCorrectTime(array(
-            new RobThree\Auth\Providers\Time\NTPTimeProvider(),                         // Uses pool.ntp.org by default
-            //new RobThree\Auth\Providers\Time\NTPTimeProvider('time.google.com'),      // Somehow time.google.com and time.windows.com make travis timeout??
-            new RobThree\Auth\Providers\Time\HttpTimeProvider(),                        // Uses google.com by default
-            new RobThree\Auth\Providers\Time\HttpTimeProvider('https://github.com'),
-            new RobThree\Auth\Providers\Time\HttpTimeProvider('https://yahoo.com'),
-        ));
-    }
-
-    public function testVerifyCodeWorksCorrectly() {
-
+    public function testVerifyCodeWorksCorrectly()
+    {
         $tfa = new TwoFactorAuth('Test', 6, 30);
-        $this->assertEquals(true , $tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 1, 1426847190));
-        $this->assertEquals(true , $tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 0, 1426847190 + 29));	//Test discrepancy
-        $this->assertEquals(false, $tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 0, 1426847190 + 30));	//Test discrepancy
-        $this->assertEquals(false, $tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 0, 1426847190 - 1));	//Test discrepancy
+        $this->assertTrue($tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 1, 1426847190));
+        $this->assertTrue($tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 0, 1426847190 + 29));	//Test discrepancy
+        $this->assertFalse($tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 0, 1426847190 + 30));	//Test discrepancy
+        $this->assertFalse($tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 0, 1426847190 - 1));	//Test discrepancy
 
-        $this->assertEquals(true , $tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 1, 1426847205 + 0));	//Test discrepancy
-        $this->assertEquals(true , $tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 1, 1426847205 + 35));	//Test discrepancy
-        $this->assertEquals(true , $tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 1, 1426847205 - 35));	//Test discrepancy
+        $this->assertTrue($tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 1, 1426847205 + 0));	//Test discrepancy
+        $this->assertTrue($tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 1, 1426847205 + 35));	//Test discrepancy
+        $this->assertTrue($tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 1, 1426847205 - 35));	//Test discrepancy
 
-        $this->assertEquals(false, $tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 1, 1426847205 + 65));	//Test discrepancy
-        $this->assertEquals(false, $tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 1, 1426847205 - 65));	//Test discrepancy
+        $this->assertFalse($tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 1, 1426847205 + 65));	//Test discrepancy
+        $this->assertFalse($tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 1, 1426847205 - 65));	//Test discrepancy
 
-        $this->assertEquals(true , $tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 2, 1426847205 + 65));	//Test discrepancy
-        $this->assertEquals(true , $tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 2, 1426847205 - 65));	//Test discrepancy
+        $this->assertTrue($tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 2, 1426847205 + 65));	//Test discrepancy
+        $this->assertTrue($tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 2, 1426847205 - 65));	//Test discrepancy
     }
 
-    public function testVerifyCorrectTimeSliceIsReturned() {
+    /**
+     * @return void
+     */
+    public function testVerifyCorrectTimeSliceIsReturned()
+    {
         $tfa = new TwoFactorAuth('Test', 6, 30);
 
         // We test with discrepancy 3 (so total of 7 codes: c-3, c-2, c-1, c, c+1, c+2, c+3
         // Ensure each corresponding timeslice is returned correctly
-        $this->assertEquals(true, $tfa->verifyCode('VMR466AB62ZBOKHE', '534113', 3, 1426847190, $timeslice1));
+        $this->assertTrue($tfa->verifyCode('VMR466AB62ZBOKHE', '534113', 3, 1426847190, $timeslice1));
         $this->assertEquals(47561570, $timeslice1);
-        $this->assertEquals(true, $tfa->verifyCode('VMR466AB62ZBOKHE', '819652', 3, 1426847190, $timeslice2));
+        $this->assertTrue($tfa->verifyCode('VMR466AB62ZBOKHE', '819652', 3, 1426847190, $timeslice2));
         $this->assertEquals(47561571, $timeslice2);
-        $this->assertEquals(true, $tfa->verifyCode('VMR466AB62ZBOKHE', '915954', 3, 1426847190, $timeslice3));
+        $this->assertTrue($tfa->verifyCode('VMR466AB62ZBOKHE', '915954', 3, 1426847190, $timeslice3));
         $this->assertEquals(47561572, $timeslice3);
-        $this->assertEquals(true, $tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 3, 1426847190, $timeslice4));
+        $this->assertTrue($tfa->verifyCode('VMR466AB62ZBOKHE', '543160', 3, 1426847190, $timeslice4));
         $this->assertEquals(47561573, $timeslice4);
-        $this->assertEquals(true, $tfa->verifyCode('VMR466AB62ZBOKHE', '348401', 3, 1426847190, $timeslice5));
+        $this->assertTrue($tfa->verifyCode('VMR466AB62ZBOKHE', '348401', 3, 1426847190, $timeslice5));
         $this->assertEquals(47561574, $timeslice5);
-        $this->assertEquals(true, $tfa->verifyCode('VMR466AB62ZBOKHE', '648525', 3, 1426847190, $timeslice6));
+        $this->assertTrue($tfa->verifyCode('VMR466AB62ZBOKHE', '648525', 3, 1426847190, $timeslice6));
         $this->assertEquals(47561575, $timeslice6);
-        $this->assertEquals(true, $tfa->verifyCode('VMR466AB62ZBOKHE', '170645', 3, 1426847190, $timeslice7));
+        $this->assertTrue($tfa->verifyCode('VMR466AB62ZBOKHE', '170645', 3, 1426847190, $timeslice7));
         $this->assertEquals(47561576, $timeslice7);
 
         // Incorrect code should return false and a 0 timeslice
-        $this->assertEquals(false, $tfa->verifyCode('VMR466AB62ZBOKHE', '111111', 3, 1426847190, $timeslice8));
+        $this->assertFalse($tfa->verifyCode('VMR466AB62ZBOKHE', '111111', 3, 1426847190, $timeslice8));
         $this->assertEquals(0, $timeslice8);
     }
 
-    public function testTotpUriIsCorrect() {
-        $qr = new TestQrProvider();
-
-        $tfa = new TwoFactorAuth('Test&Issuer', 6, 30, 'sha1', $qr);
-        $data = $this->DecodeDataUri($tfa->getQRCodeImageAsDataUri('Test&Label', 'VMR466AB62ZBOKHE'));
-        $this->assertEquals('test/test', $data['mimetype']);
-        $this->assertEquals('base64', $data['encoding']);
-        $this->assertEquals('otpauth://totp/Test%26Label?secret=VMR466AB62ZBOKHE&issuer=Test%26Issuer&period=30&algorithm=SHA1&digits=6@200', $data['data']);
-    }
-
     /**
-     * @expectedException \RobThree\Auth\TwoFactorAuthException
+     * @return void
      */
-    public function testGetQRCodeImageAsDataUriThrowsOnInvalidSize() {
-        $qr = new TestQrProvider();
-
-        $tfa = new TwoFactorAuth('Test', 6, 30, 'sha1', $qr);
-        $tfa->getQRCodeImageAsDataUri('Test', 'VMR466AB62ZBOKHE', 0);
-    }
-
-    /**
-     * @expectedException \RobThree\Auth\TwoFactorAuthException
-     */
-    public function testGetCodeThrowsOnInvalidBase32String1() {
+    public function testGetCodeThrowsOnInvalidBase32String1()
+    {
         $tfa = new TwoFactorAuth('Test');
+
+        $this->expectException(TwoFactorAuthException::class);
+
         $tfa->getCode('FOO1BAR8BAZ9');    //1, 8 & 9 are invalid chars
     }
 
     /**
-     * @expectedException \RobThree\Auth\TwoFactorAuthException
+     * @return void
      */
-    public function testGetCodeThrowsOnInvalidBase32String2() {
+    public function testGetCodeThrowsOnInvalidBase32String2()
+    {
         $tfa = new TwoFactorAuth('Test');
+
+        $this->expectException(TwoFactorAuthException::class);
+
         $tfa->getCode('mzxw6===');        //Lowercase
     }
 
-    public function testKnownBase32DecodeTestVectors() {
+    /**
+     * @return void
+     */
+    public function testKnownBase32DecodeTestVectors()
+    {
         // We usually don't test internals (e.g. privates) but since we rely heavily on base32 decoding and don't want
         // to expose this method nor do we want to give people the possibility of implementing / providing their own base32
         // decoding/decoder (as we do with Rng/QR providers for example) we simply test the private base32Decode() method
@@ -226,7 +159,7 @@
         //                                                           Dave Thomas and Andy Hunt -- "Pragmatic Unit Testing
         $tfa = new TwoFactorAuth('Test');
 
-        $method = new ReflectionMethod('RobThree\Auth\TwoFactorAuth', 'base32Decode');
+        $method = new \ReflectionMethod(TwoFactorAuth::class, 'base32Decode');
         $method->setAccessible(true);
 
         // Test vectors from: https://tools.ietf.org/html/rfc4648#page-12
@@ -239,14 +172,18 @@
         $this->assertEquals('foobar', $method->invoke($tfa, 'MZXW6YTBOI======'));
     }
 
-    public function testKnownBase32DecodeUnpaddedTestVectors() {
+    /**
+     * @return void
+     */
+    public function testKnownBase32DecodeUnpaddedTestVectors()
+    {
         // See testKnownBase32DecodeTestVectors() for the rationale behind testing the private base32Decode() method.
         // This test ensures that strings without the padding-char ('=') are also decoded correctly.
         // https://tools.ietf.org/html/rfc4648#page-4:
         //   "In some circumstances, the use of padding ("=") in base-encoded data is not required or used."
         $tfa = new TwoFactorAuth('Test');
 
-        $method = new ReflectionMethod('RobThree\Auth\TwoFactorAuth', 'base32Decode');
+        $method = new \ReflectionMethod(TwoFactorAuth::class, 'base32Decode');
         $method->setAccessible(true);
 
         // Test vectors from: https://tools.ietf.org/html/rfc4648#page-12
@@ -259,8 +196,11 @@
         $this->assertEquals('foobar', $method->invoke($tfa, 'MZXW6YTBOI'));
     }
 
-
-    public function testKnownTestVectors_sha1() {
+    /**
+     * @return void
+     */
+    public function testKnownTestVectors_sha1()
+    {
         //Known test vectors for SHA1: https://tools.ietf.org/html/rfc6238#page-15
         $secret = 'GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ';   //== base32encode('12345678901234567890')
         $tfa = new TwoFactorAuth('Test', 8, 30, 'sha1');
@@ -272,7 +212,11 @@
         $this->assertEquals('65353130', $tfa->getCode($secret, 20000000000));
     }
 
-    public function testKnownTestVectors_sha256() {
+    /**
+     * @return void
+     */
+    public function testKnownTestVectors_sha256()
+    {
         //Known test vectors for SHA256: https://tools.ietf.org/html/rfc6238#page-15
         $secret = 'GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQGEZA';   //== base32encode('12345678901234567890123456789012')
         $tfa = new TwoFactorAuth('Test', 8, 30, 'sha256');
@@ -284,7 +228,11 @@
         $this->assertEquals('77737706', $tfa->getCode($secret, 20000000000));
     }
 
-    public function testKnownTestVectors_sha512() {
+    /**
+     * @return void
+     */
+    public function testKnownTestVectors_sha512()
+    {
         //Known test vectors for SHA512: https://tools.ietf.org/html/rfc6238#page-15
         $secret = 'GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQGEZDGNA';   //== base32encode('1234567890123456789012345678901234567890123456789012345678901234')
         $tfa = new TwoFactorAuth('Test', 8, 30, 'sha512');
@@ -295,115 +243,4 @@
         $this->assertEquals('38618901', $tfa->getCode($secret, 2000000000));
         $this->assertEquals('47863826', $tfa->getCode($secret, 20000000000));
     }
-
-    /**
-     * @requires function random_bytes
-     */
-    public function testCSRNGProvidersReturnExpectedNumberOfBytes() {
-        $rng = new \RobThree\Auth\Providers\Rng\CSRNGProvider();
-        foreach ($this->getRngTestLengths() as $l)
-            $this->assertEquals($l, strlen($rng->getRandomBytes($l)));
-        $this->assertEquals(true, $rng->isCryptographicallySecure());
-    }
-
-    /**
-     * @requires function hash_algos
-     * @requires function hash
-     */
-    public function testHashRNGProvidersReturnExpectedNumberOfBytes() {
-        $rng = new \RobThree\Auth\Providers\Rng\HashRNGProvider();
-        foreach ($this->getRngTestLengths() as $l)
-            $this->assertEquals($l, strlen($rng->getRandomBytes($l)));
-        $this->assertEquals(false, $rng->isCryptographicallySecure());
-    }
-
-    /**
-     * @requires function mcrypt_create_iv
-     */
-    public function testMCryptRNGProvidersReturnExpectedNumberOfBytes() {
-        if (function_exists('mcrypt_create_iv')) {
-            $rng = new \RobThree\Auth\Providers\Rng\MCryptRNGProvider();
-            foreach ($this->getRngTestLengths() as $l)
-                $this->assertEquals($l, strlen($rng->getRandomBytes($l)));
-            $this->assertEquals(true, $rng->isCryptographicallySecure());
-        }
-    }
-
-    /**
-     * @requires function openssl_random_pseudo_bytes
-     */
-    public function testStrongOpenSSLRNGProvidersReturnExpectedNumberOfBytes() {
-        $rng = new \RobThree\Auth\Providers\Rng\OpenSSLRNGProvider(true);
-        foreach ($this->getRngTestLengths() as $l)
-            $this->assertEquals($l, strlen($rng->getRandomBytes($l)));
-        $this->assertEquals(true, $rng->isCryptographicallySecure());
-    }
-
-    /**
-     * @requires function openssl_random_pseudo_bytes
-     */
-    public function testNonStrongOpenSSLRNGProvidersReturnExpectedNumberOfBytes() {
-        $rng = new \RobThree\Auth\Providers\Rng\OpenSSLRNGProvider(false);
-        foreach ($this->getRngTestLengths() as $l)
-            $this->assertEquals($l, strlen($rng->getRandomBytes($l)));
-        $this->assertEquals(false, $rng->isCryptographicallySecure());
-    }
-
-
-    private function getRngTestLengths() {
-        return array(1, 16, 32, 256);
-    }
-
-    private function DecodeDataUri($datauri) {
-        if (preg_match('/data:(?P<mimetype>[\w\.\-\/]+);(?P<encoding>\w+),(?P<data>.*)/', $datauri, $m) === 1) {
-            return array(
-                'mimetype' => $m['mimetype'],
-                'encoding' => $m['encoding'],
-                'data' => base64_decode($m['data'])
-            );
-        }
-        return null;
-    }
 }
-
-class TestRNGProvider implements IRNGProvider {
-    private $isSecure;
-
-    function __construct($isSecure = false) {
-        $this->isSecure = $isSecure;
-    }
-
-    public function getRandomBytes($bytecount) {
-        $result = '';
-        for ($i=0; $i<$bytecount; $i++)
-            $result.=chr($i);
-        return $result;
-
-    }
-
-    public function isCryptographicallySecure() {
-        return $this->isSecure;
-    }
-}
-
-class TestQrProvider implements IQRCodeProvider {
-    public function getQRCodeImage($qrtext, $size) {
-        return $qrtext . '@' . $size;
-    }
-
-    public function getMimeType() {
-        return 'test/test';
-    }
-}
-
-class TestTimeProvider implements ITimeProvider {
-    private $time;
-
-    function __construct($time) {
-        $this->time = $time;
-    }
-
-    public function getTime() {
-        return $this->time;
-    }
-}
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/deprecation-contracts/.gitignore b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/deprecation-contracts/.gitignore
new file mode 100644
index 0000000..c49a5d8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/deprecation-contracts/.gitignore
@@ -0,0 +1,3 @@
+vendor/
+composer.lock
+phpunit.xml
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/deprecation-contracts/CHANGELOG.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/deprecation-contracts/CHANGELOG.md
new file mode 100644
index 0000000..7932e26
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/deprecation-contracts/CHANGELOG.md
@@ -0,0 +1,5 @@
+CHANGELOG
+=========
+
+The changelog is maintained for all Symfony contracts at the following URL:
+https://github.com/symfony/contracts/blob/main/CHANGELOG.md
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/deprecation-contracts/LICENSE b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/deprecation-contracts/LICENSE
new file mode 100644
index 0000000..ad85e17
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/deprecation-contracts/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2020-2021 Fabien Potencier
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/deprecation-contracts/README.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/deprecation-contracts/README.md
new file mode 100644
index 0000000..4957933
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/deprecation-contracts/README.md
@@ -0,0 +1,26 @@
+Symfony Deprecation Contracts
+=============================
+
+A generic function and convention to trigger deprecation notices.
+
+This package provides a single global function named `trigger_deprecation()` that triggers silenced deprecation notices.
+
+By using a custom PHP error handler such as the one provided by the Symfony ErrorHandler component,
+the triggered deprecations can be caught and logged for later discovery, both on dev and prod environments.
+
+The function requires at least 3 arguments:
+ - the name of the Composer package that is triggering the deprecation
+ - the version of the package that introduced the deprecation
+ - the message of the deprecation
+ - more arguments can be provided: they will be inserted in the message using `printf()` formatting
+
+Example:
+```php
+trigger_deprecation('symfony/blockchain', '8.9', 'Using "%s" is deprecated, use "%s" instead.', 'bitcoin', 'fabcoin');
+```
+
+This will generate the following message:
+`Since symfony/blockchain 8.9: Using "bitcoin" is deprecated, use "fabcoin" instead.`
+
+While not necessarily recommended, the deprecation notices can be completely ignored by declaring an empty
+`function trigger_deprecation() {}` in your application.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/deprecation-contracts/composer.json b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/deprecation-contracts/composer.json
new file mode 100644
index 0000000..3884889
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/deprecation-contracts/composer.json
@@ -0,0 +1,35 @@
+{
+    "name": "symfony/deprecation-contracts",
+    "type": "library",
+    "description": "A generic function and convention to trigger deprecation notices",
+    "homepage": "https://symfony.com",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Nicolas Grekas",
+            "email": "p@tchwork.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "https://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=7.1"
+    },
+    "autoload": {
+        "files": [
+            "function.php"
+        ]
+    },
+    "minimum-stability": "dev",
+    "extra": {
+        "branch-alias": {
+            "dev-main": "2.4-dev"
+        },
+        "thanks": {
+            "name": "symfony/contracts",
+            "url": "https://github.com/symfony/contracts"
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/deprecation-contracts/function.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/deprecation-contracts/function.php
new file mode 100644
index 0000000..d437150
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/deprecation-contracts/function.php
@@ -0,0 +1,27 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+if (!function_exists('trigger_deprecation')) {
+    /**
+     * Triggers a silenced deprecation notice.
+     *
+     * @param string $package The name of the Composer package that is triggering the deprecation
+     * @param string $version The version of the package that introduced the deprecation
+     * @param string $message The message of the deprecation
+     * @param mixed  ...$args Values to insert in the message using printf() formatting
+     *
+     * @author Nicolas Grekas <p@tchwork.com>
+     */
+    function trigger_deprecation(string $package, string $version, string $message, ...$args): void
+    {
+        @trigger_error(($package || $version ? "Since $package $version: " : '').($args ? vsprintf($message, $args) : $message), \E_USER_DEPRECATED);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/LICENSE b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/LICENSE
new file mode 100644
index 0000000..4cd8bdd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2015-2019 Fabien Potencier
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/Mbstring.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/Mbstring.php
new file mode 100644
index 0000000..b599095
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/Mbstring.php
@@ -0,0 +1,870 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Polyfill\Mbstring;
+
+/**
+ * Partial mbstring implementation in PHP, iconv based, UTF-8 centric.
+ *
+ * Implemented:
+ * - mb_chr                  - Returns a specific character from its Unicode code point
+ * - mb_convert_encoding     - Convert character encoding
+ * - mb_convert_variables    - Convert character code in variable(s)
+ * - mb_decode_mimeheader    - Decode string in MIME header field
+ * - mb_encode_mimeheader    - Encode string for MIME header XXX NATIVE IMPLEMENTATION IS REALLY BUGGED
+ * - mb_decode_numericentity - Decode HTML numeric string reference to character
+ * - mb_encode_numericentity - Encode character to HTML numeric string reference
+ * - mb_convert_case         - Perform case folding on a string
+ * - mb_detect_encoding      - Detect character encoding
+ * - mb_get_info             - Get internal settings of mbstring
+ * - mb_http_input           - Detect HTTP input character encoding
+ * - mb_http_output          - Set/Get HTTP output character encoding
+ * - mb_internal_encoding    - Set/Get internal character encoding
+ * - mb_list_encodings       - Returns an array of all supported encodings
+ * - mb_ord                  - Returns the Unicode code point of a character
+ * - mb_output_handler       - Callback function converts character encoding in output buffer
+ * - mb_scrub                - Replaces ill-formed byte sequences with substitute characters
+ * - mb_strlen               - Get string length
+ * - mb_strpos               - Find position of first occurrence of string in a string
+ * - mb_strrpos              - Find position of last occurrence of a string in a string
+ * - mb_str_split            - Convert a string to an array
+ * - mb_strtolower           - Make a string lowercase
+ * - mb_strtoupper           - Make a string uppercase
+ * - mb_substitute_character - Set/Get substitution character
+ * - mb_substr               - Get part of string
+ * - mb_stripos              - Finds position of first occurrence of a string within another, case insensitive
+ * - mb_stristr              - Finds first occurrence of a string within another, case insensitive
+ * - mb_strrchr              - Finds the last occurrence of a character in a string within another
+ * - mb_strrichr             - Finds the last occurrence of a character in a string within another, case insensitive
+ * - mb_strripos             - Finds position of last occurrence of a string within another, case insensitive
+ * - mb_strstr               - Finds first occurrence of a string within another
+ * - mb_strwidth             - Return width of string
+ * - mb_substr_count         - Count the number of substring occurrences
+ *
+ * Not implemented:
+ * - mb_convert_kana         - Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
+ * - mb_ereg_*               - Regular expression with multibyte support
+ * - mb_parse_str            - Parse GET/POST/COOKIE data and set global variable
+ * - mb_preferred_mime_name  - Get MIME charset string
+ * - mb_regex_encoding       - Returns current encoding for multibyte regex as string
+ * - mb_regex_set_options    - Set/Get the default options for mbregex functions
+ * - mb_send_mail            - Send encoded mail
+ * - mb_split                - Split multibyte string using regular expression
+ * - mb_strcut               - Get part of string
+ * - mb_strimwidth           - Get truncated string with specified width
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @internal
+ */
+final class Mbstring
+{
+    public const MB_CASE_FOLD = \PHP_INT_MAX;
+
+    private const CASE_FOLD = [
+        ['µ', 'ſ', "\xCD\x85", 'ς', "\xCF\x90", "\xCF\x91", "\xCF\x95", "\xCF\x96", "\xCF\xB0", "\xCF\xB1", "\xCF\xB5", "\xE1\xBA\x9B", "\xE1\xBE\xBE"],
+        ['μ', 's', 'ι',        'σ', 'β',        'θ',        'φ',        'π',        'κ',        'ρ',        'ε',        "\xE1\xB9\xA1", 'ι'],
+    ];
+
+    private static $encodingList = ['ASCII', 'UTF-8'];
+    private static $language = 'neutral';
+    private static $internalEncoding = 'UTF-8';
+
+    public static function mb_convert_encoding($s, $toEncoding, $fromEncoding = null)
+    {
+        if (\is_array($fromEncoding) || false !== strpos($fromEncoding, ',')) {
+            $fromEncoding = self::mb_detect_encoding($s, $fromEncoding);
+        } else {
+            $fromEncoding = self::getEncoding($fromEncoding);
+        }
+
+        $toEncoding = self::getEncoding($toEncoding);
+
+        if ('BASE64' === $fromEncoding) {
+            $s = base64_decode($s);
+            $fromEncoding = $toEncoding;
+        }
+
+        if ('BASE64' === $toEncoding) {
+            return base64_encode($s);
+        }
+
+        if ('HTML-ENTITIES' === $toEncoding || 'HTML' === $toEncoding) {
+            if ('HTML-ENTITIES' === $fromEncoding || 'HTML' === $fromEncoding) {
+                $fromEncoding = 'Windows-1252';
+            }
+            if ('UTF-8' !== $fromEncoding) {
+                $s = \iconv($fromEncoding, 'UTF-8//IGNORE', $s);
+            }
+
+            return preg_replace_callback('/[\x80-\xFF]+/', [__CLASS__, 'html_encoding_callback'], $s);
+        }
+
+        if ('HTML-ENTITIES' === $fromEncoding) {
+            $s = html_entity_decode($s, \ENT_COMPAT, 'UTF-8');
+            $fromEncoding = 'UTF-8';
+        }
+
+        return \iconv($fromEncoding, $toEncoding.'//IGNORE', $s);
+    }
+
+    public static function mb_convert_variables($toEncoding, $fromEncoding, &...$vars)
+    {
+        $ok = true;
+        array_walk_recursive($vars, function (&$v) use (&$ok, $toEncoding, $fromEncoding) {
+            if (false === $v = self::mb_convert_encoding($v, $toEncoding, $fromEncoding)) {
+                $ok = false;
+            }
+        });
+
+        return $ok ? $fromEncoding : false;
+    }
+
+    public static function mb_decode_mimeheader($s)
+    {
+        return \iconv_mime_decode($s, 2, self::$internalEncoding);
+    }
+
+    public static function mb_encode_mimeheader($s, $charset = null, $transferEncoding = null, $linefeed = null, $indent = null)
+    {
+        trigger_error('mb_encode_mimeheader() is bugged. Please use iconv_mime_encode() instead', \E_USER_WARNING);
+    }
+
+    public static function mb_decode_numericentity($s, $convmap, $encoding = null)
+    {
+        if (null !== $s && !is_scalar($s) && !(\is_object($s) && method_exists($s, '__toString'))) {
+            trigger_error('mb_decode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', \E_USER_WARNING);
+
+            return null;
+        }
+
+        if (!\is_array($convmap) || (80000 > \PHP_VERSION_ID && !$convmap)) {
+            return false;
+        }
+
+        if (null !== $encoding && !is_scalar($encoding)) {
+            trigger_error('mb_decode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', \E_USER_WARNING);
+
+            return '';  // Instead of null (cf. mb_encode_numericentity).
+        }
+
+        $s = (string) $s;
+        if ('' === $s) {
+            return '';
+        }
+
+        $encoding = self::getEncoding($encoding);
+
+        if ('UTF-8' === $encoding) {
+            $encoding = null;
+            if (!preg_match('//u', $s)) {
+                $s = @\iconv('UTF-8', 'UTF-8//IGNORE', $s);
+            }
+        } else {
+            $s = \iconv($encoding, 'UTF-8//IGNORE', $s);
+        }
+
+        $cnt = floor(\count($convmap) / 4) * 4;
+
+        for ($i = 0; $i < $cnt; $i += 4) {
+            // collector_decode_htmlnumericentity ignores $convmap[$i + 3]
+            $convmap[$i] += $convmap[$i + 2];
+            $convmap[$i + 1] += $convmap[$i + 2];
+        }
+
+        $s = preg_replace_callback('/&#(?:0*([0-9]+)|x0*([0-9a-fA-F]+))(?!&);?/', function (array $m) use ($cnt, $convmap) {
+            $c = isset($m[2]) ? (int) hexdec($m[2]) : $m[1];
+            for ($i = 0; $i < $cnt; $i += 4) {
+                if ($c >= $convmap[$i] && $c <= $convmap[$i + 1]) {
+                    return self::mb_chr($c - $convmap[$i + 2]);
+                }
+            }
+
+            return $m[0];
+        }, $s);
+
+        if (null === $encoding) {
+            return $s;
+        }
+
+        return \iconv('UTF-8', $encoding.'//IGNORE', $s);
+    }
+
+    public static function mb_encode_numericentity($s, $convmap, $encoding = null, $is_hex = false)
+    {
+        if (null !== $s && !is_scalar($s) && !(\is_object($s) && method_exists($s, '__toString'))) {
+            trigger_error('mb_encode_numericentity() expects parameter 1 to be string, '.\gettype($s).' given', \E_USER_WARNING);
+
+            return null;
+        }
+
+        if (!\is_array($convmap) || (80000 > \PHP_VERSION_ID && !$convmap)) {
+            return false;
+        }
+
+        if (null !== $encoding && !is_scalar($encoding)) {
+            trigger_error('mb_encode_numericentity() expects parameter 3 to be string, '.\gettype($s).' given', \E_USER_WARNING);
+
+            return null;  // Instead of '' (cf. mb_decode_numericentity).
+        }
+
+        if (null !== $is_hex && !is_scalar($is_hex)) {
+            trigger_error('mb_encode_numericentity() expects parameter 4 to be boolean, '.\gettype($s).' given', \E_USER_WARNING);
+
+            return null;
+        }
+
+        $s = (string) $s;
+        if ('' === $s) {
+            return '';
+        }
+
+        $encoding = self::getEncoding($encoding);
+
+        if ('UTF-8' === $encoding) {
+            $encoding = null;
+            if (!preg_match('//u', $s)) {
+                $s = @\iconv('UTF-8', 'UTF-8//IGNORE', $s);
+            }
+        } else {
+            $s = \iconv($encoding, 'UTF-8//IGNORE', $s);
+        }
+
+        static $ulenMask = ["\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4];
+
+        $cnt = floor(\count($convmap) / 4) * 4;
+        $i = 0;
+        $len = \strlen($s);
+        $result = '';
+
+        while ($i < $len) {
+            $ulen = $s[$i] < "\x80" ? 1 : $ulenMask[$s[$i] & "\xF0"];
+            $uchr = substr($s, $i, $ulen);
+            $i += $ulen;
+            $c = self::mb_ord($uchr);
+
+            for ($j = 0; $j < $cnt; $j += 4) {
+                if ($c >= $convmap[$j] && $c <= $convmap[$j + 1]) {
+                    $cOffset = ($c + $convmap[$j + 2]) & $convmap[$j + 3];
+                    $result .= $is_hex ? sprintf('&#x%X;', $cOffset) : '&#'.$cOffset.';';
+                    continue 2;
+                }
+            }
+            $result .= $uchr;
+        }
+
+        if (null === $encoding) {
+            return $result;
+        }
+
+        return \iconv('UTF-8', $encoding.'//IGNORE', $result);
+    }
+
+    public static function mb_convert_case($s, $mode, $encoding = null)
+    {
+        $s = (string) $s;
+        if ('' === $s) {
+            return '';
+        }
+
+        $encoding = self::getEncoding($encoding);
+
+        if ('UTF-8' === $encoding) {
+            $encoding = null;
+            if (!preg_match('//u', $s)) {
+                $s = @\iconv('UTF-8', 'UTF-8//IGNORE', $s);
+            }
+        } else {
+            $s = \iconv($encoding, 'UTF-8//IGNORE', $s);
+        }
+
+        if (\MB_CASE_TITLE == $mode) {
+            static $titleRegexp = null;
+            if (null === $titleRegexp) {
+                $titleRegexp = self::getData('titleCaseRegexp');
+            }
+            $s = preg_replace_callback($titleRegexp, [__CLASS__, 'title_case'], $s);
+        } else {
+            if (\MB_CASE_UPPER == $mode) {
+                static $upper = null;
+                if (null === $upper) {
+                    $upper = self::getData('upperCase');
+                }
+                $map = $upper;
+            } else {
+                if (self::MB_CASE_FOLD === $mode) {
+                    $s = str_replace(self::CASE_FOLD[0], self::CASE_FOLD[1], $s);
+                }
+
+                static $lower = null;
+                if (null === $lower) {
+                    $lower = self::getData('lowerCase');
+                }
+                $map = $lower;
+            }
+
+            static $ulenMask = ["\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4];
+
+            $i = 0;
+            $len = \strlen($s);
+
+            while ($i < $len) {
+                $ulen = $s[$i] < "\x80" ? 1 : $ulenMask[$s[$i] & "\xF0"];
+                $uchr = substr($s, $i, $ulen);
+                $i += $ulen;
+
+                if (isset($map[$uchr])) {
+                    $uchr = $map[$uchr];
+                    $nlen = \strlen($uchr);
+
+                    if ($nlen == $ulen) {
+                        $nlen = $i;
+                        do {
+                            $s[--$nlen] = $uchr[--$ulen];
+                        } while ($ulen);
+                    } else {
+                        $s = substr_replace($s, $uchr, $i - $ulen, $ulen);
+                        $len += $nlen - $ulen;
+                        $i += $nlen - $ulen;
+                    }
+                }
+            }
+        }
+
+        if (null === $encoding) {
+            return $s;
+        }
+
+        return \iconv('UTF-8', $encoding.'//IGNORE', $s);
+    }
+
+    public static function mb_internal_encoding($encoding = null)
+    {
+        if (null === $encoding) {
+            return self::$internalEncoding;
+        }
+
+        $normalizedEncoding = self::getEncoding($encoding);
+
+        if ('UTF-8' === $normalizedEncoding || false !== @\iconv($normalizedEncoding, $normalizedEncoding, ' ')) {
+            self::$internalEncoding = $normalizedEncoding;
+
+            return true;
+        }
+
+        if (80000 > \PHP_VERSION_ID) {
+            return false;
+        }
+
+        throw new \ValueError(sprintf('Argument #1 ($encoding) must be a valid encoding, "%s" given', $encoding));
+    }
+
+    public static function mb_language($lang = null)
+    {
+        if (null === $lang) {
+            return self::$language;
+        }
+
+        switch ($normalizedLang = strtolower($lang)) {
+            case 'uni':
+            case 'neutral':
+                self::$language = $normalizedLang;
+
+                return true;
+        }
+
+        if (80000 > \PHP_VERSION_ID) {
+            return false;
+        }
+
+        throw new \ValueError(sprintf('Argument #1 ($language) must be a valid language, "%s" given', $lang));
+    }
+
+    public static function mb_list_encodings()
+    {
+        return ['UTF-8'];
+    }
+
+    public static function mb_encoding_aliases($encoding)
+    {
+        switch (strtoupper($encoding)) {
+            case 'UTF8':
+            case 'UTF-8':
+                return ['utf8'];
+        }
+
+        return false;
+    }
+
+    public static function mb_check_encoding($var = null, $encoding = null)
+    {
+        if (null === $encoding) {
+            if (null === $var) {
+                return false;
+            }
+            $encoding = self::$internalEncoding;
+        }
+
+        return self::mb_detect_encoding($var, [$encoding]) || false !== @\iconv($encoding, $encoding, $var);
+    }
+
+    public static function mb_detect_encoding($str, $encodingList = null, $strict = false)
+    {
+        if (null === $encodingList) {
+            $encodingList = self::$encodingList;
+        } else {
+            if (!\is_array($encodingList)) {
+                $encodingList = array_map('trim', explode(',', $encodingList));
+            }
+            $encodingList = array_map('strtoupper', $encodingList);
+        }
+
+        foreach ($encodingList as $enc) {
+            switch ($enc) {
+                case 'ASCII':
+                    if (!preg_match('/[\x80-\xFF]/', $str)) {
+                        return $enc;
+                    }
+                    break;
+
+                case 'UTF8':
+                case 'UTF-8':
+                    if (preg_match('//u', $str)) {
+                        return 'UTF-8';
+                    }
+                    break;
+
+                default:
+                    if (0 === strncmp($enc, 'ISO-8859-', 9)) {
+                        return $enc;
+                    }
+            }
+        }
+
+        return false;
+    }
+
+    public static function mb_detect_order($encodingList = null)
+    {
+        if (null === $encodingList) {
+            return self::$encodingList;
+        }
+
+        if (!\is_array($encodingList)) {
+            $encodingList = array_map('trim', explode(',', $encodingList));
+        }
+        $encodingList = array_map('strtoupper', $encodingList);
+
+        foreach ($encodingList as $enc) {
+            switch ($enc) {
+                default:
+                    if (strncmp($enc, 'ISO-8859-', 9)) {
+                        return false;
+                    }
+                    // no break
+                case 'ASCII':
+                case 'UTF8':
+                case 'UTF-8':
+            }
+        }
+
+        self::$encodingList = $encodingList;
+
+        return true;
+    }
+
+    public static function mb_strlen($s, $encoding = null)
+    {
+        $encoding = self::getEncoding($encoding);
+        if ('CP850' === $encoding || 'ASCII' === $encoding) {
+            return \strlen($s);
+        }
+
+        return @\iconv_strlen($s, $encoding);
+    }
+
+    public static function mb_strpos($haystack, $needle, $offset = 0, $encoding = null)
+    {
+        $encoding = self::getEncoding($encoding);
+        if ('CP850' === $encoding || 'ASCII' === $encoding) {
+            return strpos($haystack, $needle, $offset);
+        }
+
+        $needle = (string) $needle;
+        if ('' === $needle) {
+            if (80000 > \PHP_VERSION_ID) {
+                trigger_error(__METHOD__.': Empty delimiter', \E_USER_WARNING);
+
+                return false;
+            }
+
+            return 0;
+        }
+
+        return \iconv_strpos($haystack, $needle, $offset, $encoding);
+    }
+
+    public static function mb_strrpos($haystack, $needle, $offset = 0, $encoding = null)
+    {
+        $encoding = self::getEncoding($encoding);
+        if ('CP850' === $encoding || 'ASCII' === $encoding) {
+            return strrpos($haystack, $needle, $offset);
+        }
+
+        if ($offset != (int) $offset) {
+            $offset = 0;
+        } elseif ($offset = (int) $offset) {
+            if ($offset < 0) {
+                if (0 > $offset += self::mb_strlen($needle)) {
+                    $haystack = self::mb_substr($haystack, 0, $offset, $encoding);
+                }
+                $offset = 0;
+            } else {
+                $haystack = self::mb_substr($haystack, $offset, 2147483647, $encoding);
+            }
+        }
+
+        $pos = '' !== $needle || 80000 > \PHP_VERSION_ID
+            ? \iconv_strrpos($haystack, $needle, $encoding)
+            : self::mb_strlen($haystack, $encoding);
+
+        return false !== $pos ? $offset + $pos : false;
+    }
+
+    public static function mb_str_split($string, $split_length = 1, $encoding = null)
+    {
+        if (null !== $string && !is_scalar($string) && !(\is_object($string) && method_exists($string, '__toString'))) {
+            trigger_error('mb_str_split() expects parameter 1 to be string, '.\gettype($string).' given', \E_USER_WARNING);
+
+            return null;
+        }
+
+        if (1 > $split_length = (int) $split_length) {
+            if (80000 > \PHP_VERSION_ID) {
+                trigger_error('The length of each segment must be greater than zero', \E_USER_WARNING);
+                return false;
+            }
+
+            throw new \ValueError('Argument #2 ($length) must be greater than 0');
+        }
+
+        if (null === $encoding) {
+            $encoding = mb_internal_encoding();
+        }
+
+        if ('UTF-8' === $encoding = self::getEncoding($encoding)) {
+            $rx = '/(';
+            while (65535 < $split_length) {
+                $rx .= '.{65535}';
+                $split_length -= 65535;
+            }
+            $rx .= '.{'.$split_length.'})/us';
+
+            return preg_split($rx, $string, null, \PREG_SPLIT_DELIM_CAPTURE | \PREG_SPLIT_NO_EMPTY);
+        }
+
+        $result = [];
+        $length = mb_strlen($string, $encoding);
+
+        for ($i = 0; $i < $length; $i += $split_length) {
+            $result[] = mb_substr($string, $i, $split_length, $encoding);
+        }
+
+        return $result;
+    }
+
+    public static function mb_strtolower($s, $encoding = null)
+    {
+        return self::mb_convert_case($s, \MB_CASE_LOWER, $encoding);
+    }
+
+    public static function mb_strtoupper($s, $encoding = null)
+    {
+        return self::mb_convert_case($s, \MB_CASE_UPPER, $encoding);
+    }
+
+    public static function mb_substitute_character($c = null)
+    {
+        if (null === $c) {
+            return 'none';
+        }
+        if (0 === strcasecmp($c, 'none')) {
+            return true;
+        }
+        if (80000 > \PHP_VERSION_ID) {
+            return false;
+        }
+
+        throw new \ValueError('Argument #1 ($substitute_character) must be "none", "long", "entity" or a valid codepoint');
+    }
+
+    public static function mb_substr($s, $start, $length = null, $encoding = null)
+    {
+        $encoding = self::getEncoding($encoding);
+        if ('CP850' === $encoding || 'ASCII' === $encoding) {
+            return (string) substr($s, $start, null === $length ? 2147483647 : $length);
+        }
+
+        if ($start < 0) {
+            $start = \iconv_strlen($s, $encoding) + $start;
+            if ($start < 0) {
+                $start = 0;
+            }
+        }
+
+        if (null === $length) {
+            $length = 2147483647;
+        } elseif ($length < 0) {
+            $length = \iconv_strlen($s, $encoding) + $length - $start;
+            if ($length < 0) {
+                return '';
+            }
+        }
+
+        return (string) \iconv_substr($s, $start, $length, $encoding);
+    }
+
+    public static function mb_stripos($haystack, $needle, $offset = 0, $encoding = null)
+    {
+        $haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding);
+        $needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding);
+
+        return self::mb_strpos($haystack, $needle, $offset, $encoding);
+    }
+
+    public static function mb_stristr($haystack, $needle, $part = false, $encoding = null)
+    {
+        $pos = self::mb_stripos($haystack, $needle, 0, $encoding);
+
+        return self::getSubpart($pos, $part, $haystack, $encoding);
+    }
+
+    public static function mb_strrchr($haystack, $needle, $part = false, $encoding = null)
+    {
+        $encoding = self::getEncoding($encoding);
+        if ('CP850' === $encoding || 'ASCII' === $encoding) {
+            $pos = strrpos($haystack, $needle);
+        } else {
+            $needle = self::mb_substr($needle, 0, 1, $encoding);
+            $pos = \iconv_strrpos($haystack, $needle, $encoding);
+        }
+
+        return self::getSubpart($pos, $part, $haystack, $encoding);
+    }
+
+    public static function mb_strrichr($haystack, $needle, $part = false, $encoding = null)
+    {
+        $needle = self::mb_substr($needle, 0, 1, $encoding);
+        $pos = self::mb_strripos($haystack, $needle, $encoding);
+
+        return self::getSubpart($pos, $part, $haystack, $encoding);
+    }
+
+    public static function mb_strripos($haystack, $needle, $offset = 0, $encoding = null)
+    {
+        $haystack = self::mb_convert_case($haystack, self::MB_CASE_FOLD, $encoding);
+        $needle = self::mb_convert_case($needle, self::MB_CASE_FOLD, $encoding);
+
+        return self::mb_strrpos($haystack, $needle, $offset, $encoding);
+    }
+
+    public static function mb_strstr($haystack, $needle, $part = false, $encoding = null)
+    {
+        $pos = strpos($haystack, $needle);
+        if (false === $pos) {
+            return false;
+        }
+        if ($part) {
+            return substr($haystack, 0, $pos);
+        }
+
+        return substr($haystack, $pos);
+    }
+
+    public static function mb_get_info($type = 'all')
+    {
+        $info = [
+            'internal_encoding' => self::$internalEncoding,
+            'http_output' => 'pass',
+            'http_output_conv_mimetypes' => '^(text/|application/xhtml\+xml)',
+            'func_overload' => 0,
+            'func_overload_list' => 'no overload',
+            'mail_charset' => 'UTF-8',
+            'mail_header_encoding' => 'BASE64',
+            'mail_body_encoding' => 'BASE64',
+            'illegal_chars' => 0,
+            'encoding_translation' => 'Off',
+            'language' => self::$language,
+            'detect_order' => self::$encodingList,
+            'substitute_character' => 'none',
+            'strict_detection' => 'Off',
+        ];
+
+        if ('all' === $type) {
+            return $info;
+        }
+        if (isset($info[$type])) {
+            return $info[$type];
+        }
+
+        return false;
+    }
+
+    public static function mb_http_input($type = '')
+    {
+        return false;
+    }
+
+    public static function mb_http_output($encoding = null)
+    {
+        return null !== $encoding ? 'pass' === $encoding : 'pass';
+    }
+
+    public static function mb_strwidth($s, $encoding = null)
+    {
+        $encoding = self::getEncoding($encoding);
+
+        if ('UTF-8' !== $encoding) {
+            $s = \iconv($encoding, 'UTF-8//IGNORE', $s);
+        }
+
+        $s = preg_replace('/[\x{1100}-\x{115F}\x{2329}\x{232A}\x{2E80}-\x{303E}\x{3040}-\x{A4CF}\x{AC00}-\x{D7A3}\x{F900}-\x{FAFF}\x{FE10}-\x{FE19}\x{FE30}-\x{FE6F}\x{FF00}-\x{FF60}\x{FFE0}-\x{FFE6}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}]/u', '', $s, -1, $wide);
+
+        return ($wide << 1) + \iconv_strlen($s, 'UTF-8');
+    }
+
+    public static function mb_substr_count($haystack, $needle, $encoding = null)
+    {
+        return substr_count($haystack, $needle);
+    }
+
+    public static function mb_output_handler($contents, $status)
+    {
+        return $contents;
+    }
+
+    public static function mb_chr($code, $encoding = null)
+    {
+        if (0x80 > $code %= 0x200000) {
+            $s = \chr($code);
+        } elseif (0x800 > $code) {
+            $s = \chr(0xC0 | $code >> 6).\chr(0x80 | $code & 0x3F);
+        } elseif (0x10000 > $code) {
+            $s = \chr(0xE0 | $code >> 12).\chr(0x80 | $code >> 6 & 0x3F).\chr(0x80 | $code & 0x3F);
+        } else {
+            $s = \chr(0xF0 | $code >> 18).\chr(0x80 | $code >> 12 & 0x3F).\chr(0x80 | $code >> 6 & 0x3F).\chr(0x80 | $code & 0x3F);
+        }
+
+        if ('UTF-8' !== $encoding = self::getEncoding($encoding)) {
+            $s = mb_convert_encoding($s, $encoding, 'UTF-8');
+        }
+
+        return $s;
+    }
+
+    public static function mb_ord($s, $encoding = null)
+    {
+        if ('UTF-8' !== $encoding = self::getEncoding($encoding)) {
+            $s = mb_convert_encoding($s, 'UTF-8', $encoding);
+        }
+
+        if (1 === \strlen($s)) {
+            return \ord($s);
+        }
+
+        $code = ($s = unpack('C*', substr($s, 0, 4))) ? $s[1] : 0;
+        if (0xF0 <= $code) {
+            return (($code - 0xF0) << 18) + (($s[2] - 0x80) << 12) + (($s[3] - 0x80) << 6) + $s[4] - 0x80;
+        }
+        if (0xE0 <= $code) {
+            return (($code - 0xE0) << 12) + (($s[2] - 0x80) << 6) + $s[3] - 0x80;
+        }
+        if (0xC0 <= $code) {
+            return (($code - 0xC0) << 6) + $s[2] - 0x80;
+        }
+
+        return $code;
+    }
+
+    private static function getSubpart($pos, $part, $haystack, $encoding)
+    {
+        if (false === $pos) {
+            return false;
+        }
+        if ($part) {
+            return self::mb_substr($haystack, 0, $pos, $encoding);
+        }
+
+        return self::mb_substr($haystack, $pos, null, $encoding);
+    }
+
+    private static function html_encoding_callback(array $m)
+    {
+        $i = 1;
+        $entities = '';
+        $m = unpack('C*', htmlentities($m[0], \ENT_COMPAT, 'UTF-8'));
+
+        while (isset($m[$i])) {
+            if (0x80 > $m[$i]) {
+                $entities .= \chr($m[$i++]);
+                continue;
+            }
+            if (0xF0 <= $m[$i]) {
+                $c = (($m[$i++] - 0xF0) << 18) + (($m[$i++] - 0x80) << 12) + (($m[$i++] - 0x80) << 6) + $m[$i++] - 0x80;
+            } elseif (0xE0 <= $m[$i]) {
+                $c = (($m[$i++] - 0xE0) << 12) + (($m[$i++] - 0x80) << 6) + $m[$i++] - 0x80;
+            } else {
+                $c = (($m[$i++] - 0xC0) << 6) + $m[$i++] - 0x80;
+            }
+
+            $entities .= '&#'.$c.';';
+        }
+
+        return $entities;
+    }
+
+    private static function title_case(array $s)
+    {
+        return self::mb_convert_case($s[1], \MB_CASE_UPPER, 'UTF-8').self::mb_convert_case($s[2], \MB_CASE_LOWER, 'UTF-8');
+    }
+
+    private static function getData($file)
+    {
+        if (file_exists($file = __DIR__.'/Resources/unidata/'.$file.'.php')) {
+            return require $file;
+        }
+
+        return false;
+    }
+
+    private static function getEncoding($encoding)
+    {
+        if (null === $encoding) {
+            return self::$internalEncoding;
+        }
+
+        if ('UTF-8' === $encoding) {
+            return 'UTF-8';
+        }
+
+        $encoding = strtoupper($encoding);
+
+        if ('8BIT' === $encoding || 'BINARY' === $encoding) {
+            return 'CP850';
+        }
+
+        if ('UTF8' === $encoding) {
+            return 'UTF-8';
+        }
+
+        return $encoding;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/README.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/README.md
new file mode 100644
index 0000000..4efb599
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/README.md
@@ -0,0 +1,13 @@
+Symfony Polyfill / Mbstring
+===========================
+
+This component provides a partial, native PHP implementation for the
+[Mbstring](https://php.net/mbstring) extension.
+
+More information can be found in the
+[main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md).
+
+License
+=======
+
+This library is released under the [MIT license](LICENSE).
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php
new file mode 100644
index 0000000..fac60b0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php
@@ -0,0 +1,1397 @@
+<?php
+
+return array (
+  'A' => 'a',
+  'B' => 'b',
+  'C' => 'c',
+  'D' => 'd',
+  'E' => 'e',
+  'F' => 'f',
+  'G' => 'g',
+  'H' => 'h',
+  'I' => 'i',
+  'J' => 'j',
+  'K' => 'k',
+  'L' => 'l',
+  'M' => 'm',
+  'N' => 'n',
+  'O' => 'o',
+  'P' => 'p',
+  'Q' => 'q',
+  'R' => 'r',
+  'S' => 's',
+  'T' => 't',
+  'U' => 'u',
+  'V' => 'v',
+  'W' => 'w',
+  'X' => 'x',
+  'Y' => 'y',
+  'Z' => 'z',
+  'À' => 'à',
+  'Á' => 'á',
+  'Â' => 'â',
+  'Ã' => 'ã',
+  'Ä' => 'ä',
+  'Å' => 'å',
+  'Æ' => 'æ',
+  'Ç' => 'ç',
+  'È' => 'è',
+  'É' => 'é',
+  'Ê' => 'ê',
+  'Ë' => 'ë',
+  'Ì' => 'ì',
+  'Í' => 'í',
+  'Î' => 'î',
+  'Ï' => 'ï',
+  'Ð' => 'ð',
+  'Ñ' => 'ñ',
+  'Ò' => 'ò',
+  'Ó' => 'ó',
+  'Ô' => 'ô',
+  'Õ' => 'õ',
+  'Ö' => 'ö',
+  'Ø' => 'ø',
+  'Ù' => 'ù',
+  'Ú' => 'ú',
+  'Û' => 'û',
+  'Ü' => 'ü',
+  'Ý' => 'ý',
+  'Þ' => 'þ',
+  'Ā' => 'ā',
+  'Ă' => 'ă',
+  'Ą' => 'ą',
+  'Ć' => 'ć',
+  'Ĉ' => 'ĉ',
+  'Ċ' => 'ċ',
+  'Č' => 'č',
+  'Ď' => 'ď',
+  'Đ' => 'đ',
+  'Ē' => 'ē',
+  'Ĕ' => 'ĕ',
+  'Ė' => 'ė',
+  'Ę' => 'ę',
+  'Ě' => 'ě',
+  'Ĝ' => 'ĝ',
+  'Ğ' => 'ğ',
+  'Ġ' => 'ġ',
+  'Ģ' => 'ģ',
+  'Ĥ' => 'ĥ',
+  'Ħ' => 'ħ',
+  'Ĩ' => 'ĩ',
+  'Ī' => 'ī',
+  'Ĭ' => 'ĭ',
+  'Į' => 'į',
+  'İ' => 'i̇',
+  'IJ' => 'ij',
+  'Ĵ' => 'ĵ',
+  'Ķ' => 'ķ',
+  'Ĺ' => 'ĺ',
+  'Ļ' => 'ļ',
+  'Ľ' => 'ľ',
+  'Ŀ' => 'ŀ',
+  'Ł' => 'ł',
+  'Ń' => 'ń',
+  'Ņ' => 'ņ',
+  'Ň' => 'ň',
+  'Ŋ' => 'ŋ',
+  'Ō' => 'ō',
+  'Ŏ' => 'ŏ',
+  'Ő' => 'ő',
+  'Œ' => 'œ',
+  'Ŕ' => 'ŕ',
+  'Ŗ' => 'ŗ',
+  'Ř' => 'ř',
+  'Ś' => 'ś',
+  'Ŝ' => 'ŝ',
+  'Ş' => 'ş',
+  'Š' => 'š',
+  'Ţ' => 'ţ',
+  'Ť' => 'ť',
+  'Ŧ' => 'ŧ',
+  'Ũ' => 'ũ',
+  'Ū' => 'ū',
+  'Ŭ' => 'ŭ',
+  'Ů' => 'ů',
+  'Ű' => 'ű',
+  'Ų' => 'ų',
+  'Ŵ' => 'ŵ',
+  'Ŷ' => 'ŷ',
+  'Ÿ' => 'ÿ',
+  'Ź' => 'ź',
+  'Ż' => 'ż',
+  'Ž' => 'ž',
+  'Ɓ' => 'ɓ',
+  'Ƃ' => 'ƃ',
+  'Ƅ' => 'ƅ',
+  'Ɔ' => 'ɔ',
+  'Ƈ' => 'ƈ',
+  'Ɖ' => 'ɖ',
+  'Ɗ' => 'ɗ',
+  'Ƌ' => 'ƌ',
+  'Ǝ' => 'ǝ',
+  'Ə' => 'ə',
+  'Ɛ' => 'ɛ',
+  'Ƒ' => 'ƒ',
+  'Ɠ' => 'ɠ',
+  'Ɣ' => 'ɣ',
+  'Ɩ' => 'ɩ',
+  'Ɨ' => 'ɨ',
+  'Ƙ' => 'ƙ',
+  'Ɯ' => 'ɯ',
+  'Ɲ' => 'ɲ',
+  'Ɵ' => 'ɵ',
+  'Ơ' => 'ơ',
+  'Ƣ' => 'ƣ',
+  'Ƥ' => 'ƥ',
+  'Ʀ' => 'ʀ',
+  'Ƨ' => 'ƨ',
+  'Ʃ' => 'ʃ',
+  'Ƭ' => 'ƭ',
+  'Ʈ' => 'ʈ',
+  'Ư' => 'ư',
+  'Ʊ' => 'ʊ',
+  'Ʋ' => 'ʋ',
+  'Ƴ' => 'ƴ',
+  'Ƶ' => 'ƶ',
+  'Ʒ' => 'ʒ',
+  'Ƹ' => 'ƹ',
+  'Ƽ' => 'ƽ',
+  'DŽ' => 'dž',
+  'Dž' => 'dž',
+  'LJ' => 'lj',
+  'Lj' => 'lj',
+  'NJ' => 'nj',
+  'Nj' => 'nj',
+  'Ǎ' => 'ǎ',
+  'Ǐ' => 'ǐ',
+  'Ǒ' => 'ǒ',
+  'Ǔ' => 'ǔ',
+  'Ǖ' => 'ǖ',
+  'Ǘ' => 'ǘ',
+  'Ǚ' => 'ǚ',
+  'Ǜ' => 'ǜ',
+  'Ǟ' => 'ǟ',
+  'Ǡ' => 'ǡ',
+  'Ǣ' => 'ǣ',
+  'Ǥ' => 'ǥ',
+  'Ǧ' => 'ǧ',
+  'Ǩ' => 'ǩ',
+  'Ǫ' => 'ǫ',
+  'Ǭ' => 'ǭ',
+  'Ǯ' => 'ǯ',
+  'DZ' => 'dz',
+  'Dz' => 'dz',
+  'Ǵ' => 'ǵ',
+  'Ƕ' => 'ƕ',
+  'Ƿ' => 'ƿ',
+  'Ǹ' => 'ǹ',
+  'Ǻ' => 'ǻ',
+  'Ǽ' => 'ǽ',
+  'Ǿ' => 'ǿ',
+  'Ȁ' => 'ȁ',
+  'Ȃ' => 'ȃ',
+  'Ȅ' => 'ȅ',
+  'Ȇ' => 'ȇ',
+  'Ȉ' => 'ȉ',
+  'Ȋ' => 'ȋ',
+  'Ȍ' => 'ȍ',
+  'Ȏ' => 'ȏ',
+  'Ȑ' => 'ȑ',
+  'Ȓ' => 'ȓ',
+  'Ȕ' => 'ȕ',
+  'Ȗ' => 'ȗ',
+  'Ș' => 'ș',
+  'Ț' => 'ț',
+  'Ȝ' => 'ȝ',
+  'Ȟ' => 'ȟ',
+  'Ƞ' => 'ƞ',
+  'Ȣ' => 'ȣ',
+  'Ȥ' => 'ȥ',
+  'Ȧ' => 'ȧ',
+  'Ȩ' => 'ȩ',
+  'Ȫ' => 'ȫ',
+  'Ȭ' => 'ȭ',
+  'Ȯ' => 'ȯ',
+  'Ȱ' => 'ȱ',
+  'Ȳ' => 'ȳ',
+  'Ⱥ' => 'ⱥ',
+  'Ȼ' => 'ȼ',
+  'Ƚ' => 'ƚ',
+  'Ⱦ' => 'ⱦ',
+  'Ɂ' => 'ɂ',
+  'Ƀ' => 'ƀ',
+  'Ʉ' => 'ʉ',
+  'Ʌ' => 'ʌ',
+  'Ɇ' => 'ɇ',
+  'Ɉ' => 'ɉ',
+  'Ɋ' => 'ɋ',
+  'Ɍ' => 'ɍ',
+  'Ɏ' => 'ɏ',
+  'Ͱ' => 'ͱ',
+  'Ͳ' => 'ͳ',
+  'Ͷ' => 'ͷ',
+  'Ϳ' => 'ϳ',
+  'Ά' => 'ά',
+  'Έ' => 'έ',
+  'Ή' => 'ή',
+  'Ί' => 'ί',
+  'Ό' => 'ό',
+  'Ύ' => 'ύ',
+  'Ώ' => 'ώ',
+  'Α' => 'α',
+  'Β' => 'β',
+  'Γ' => 'γ',
+  'Δ' => 'δ',
+  'Ε' => 'ε',
+  'Ζ' => 'ζ',
+  'Η' => 'η',
+  'Θ' => 'θ',
+  'Ι' => 'ι',
+  'Κ' => 'κ',
+  'Λ' => 'λ',
+  'Μ' => 'μ',
+  'Ν' => 'ν',
+  'Ξ' => 'ξ',
+  'Ο' => 'ο',
+  'Π' => 'π',
+  'Ρ' => 'ρ',
+  'Σ' => 'σ',
+  'Τ' => 'τ',
+  'Υ' => 'υ',
+  'Φ' => 'φ',
+  'Χ' => 'χ',
+  'Ψ' => 'ψ',
+  'Ω' => 'ω',
+  'Ϊ' => 'ϊ',
+  'Ϋ' => 'ϋ',
+  'Ϗ' => 'ϗ',
+  'Ϙ' => 'ϙ',
+  'Ϛ' => 'ϛ',
+  'Ϝ' => 'ϝ',
+  'Ϟ' => 'ϟ',
+  'Ϡ' => 'ϡ',
+  'Ϣ' => 'ϣ',
+  'Ϥ' => 'ϥ',
+  'Ϧ' => 'ϧ',
+  'Ϩ' => 'ϩ',
+  'Ϫ' => 'ϫ',
+  'Ϭ' => 'ϭ',
+  'Ϯ' => 'ϯ',
+  'ϴ' => 'θ',
+  'Ϸ' => 'ϸ',
+  'Ϲ' => 'ϲ',
+  'Ϻ' => 'ϻ',
+  'Ͻ' => 'ͻ',
+  'Ͼ' => 'ͼ',
+  'Ͽ' => 'ͽ',
+  'Ѐ' => 'ѐ',
+  'Ё' => 'ё',
+  'Ђ' => 'ђ',
+  'Ѓ' => 'ѓ',
+  'Є' => 'є',
+  'Ѕ' => 'ѕ',
+  'І' => 'і',
+  'Ї' => 'ї',
+  'Ј' => 'ј',
+  'Љ' => 'љ',
+  'Њ' => 'њ',
+  'Ћ' => 'ћ',
+  'Ќ' => 'ќ',
+  'Ѝ' => 'ѝ',
+  'Ў' => 'ў',
+  'Џ' => 'џ',
+  'А' => 'а',
+  'Б' => 'б',
+  'В' => 'в',
+  'Г' => 'г',
+  'Д' => 'д',
+  'Е' => 'е',
+  'Ж' => 'ж',
+  'З' => 'з',
+  'И' => 'и',
+  'Й' => 'й',
+  'К' => 'к',
+  'Л' => 'л',
+  'М' => 'м',
+  'Н' => 'н',
+  'О' => 'о',
+  'П' => 'п',
+  'Р' => 'р',
+  'С' => 'с',
+  'Т' => 'т',
+  'У' => 'у',
+  'Ф' => 'ф',
+  'Х' => 'х',
+  'Ц' => 'ц',
+  'Ч' => 'ч',
+  'Ш' => 'ш',
+  'Щ' => 'щ',
+  'Ъ' => 'ъ',
+  'Ы' => 'ы',
+  'Ь' => 'ь',
+  'Э' => 'э',
+  'Ю' => 'ю',
+  'Я' => 'я',
+  'Ѡ' => 'ѡ',
+  'Ѣ' => 'ѣ',
+  'Ѥ' => 'ѥ',
+  'Ѧ' => 'ѧ',
+  'Ѩ' => 'ѩ',
+  'Ѫ' => 'ѫ',
+  'Ѭ' => 'ѭ',
+  'Ѯ' => 'ѯ',
+  'Ѱ' => 'ѱ',
+  'Ѳ' => 'ѳ',
+  'Ѵ' => 'ѵ',
+  'Ѷ' => 'ѷ',
+  'Ѹ' => 'ѹ',
+  'Ѻ' => 'ѻ',
+  'Ѽ' => 'ѽ',
+  'Ѿ' => 'ѿ',
+  'Ҁ' => 'ҁ',
+  'Ҋ' => 'ҋ',
+  'Ҍ' => 'ҍ',
+  'Ҏ' => 'ҏ',
+  'Ґ' => 'ґ',
+  'Ғ' => 'ғ',
+  'Ҕ' => 'ҕ',
+  'Җ' => 'җ',
+  'Ҙ' => 'ҙ',
+  'Қ' => 'қ',
+  'Ҝ' => 'ҝ',
+  'Ҟ' => 'ҟ',
+  'Ҡ' => 'ҡ',
+  'Ң' => 'ң',
+  'Ҥ' => 'ҥ',
+  'Ҧ' => 'ҧ',
+  'Ҩ' => 'ҩ',
+  'Ҫ' => 'ҫ',
+  'Ҭ' => 'ҭ',
+  'Ү' => 'ү',
+  'Ұ' => 'ұ',
+  'Ҳ' => 'ҳ',
+  'Ҵ' => 'ҵ',
+  'Ҷ' => 'ҷ',
+  'Ҹ' => 'ҹ',
+  'Һ' => 'һ',
+  'Ҽ' => 'ҽ',
+  'Ҿ' => 'ҿ',
+  'Ӏ' => 'ӏ',
+  'Ӂ' => 'ӂ',
+  'Ӄ' => 'ӄ',
+  'Ӆ' => 'ӆ',
+  'Ӈ' => 'ӈ',
+  'Ӊ' => 'ӊ',
+  'Ӌ' => 'ӌ',
+  'Ӎ' => 'ӎ',
+  'Ӑ' => 'ӑ',
+  'Ӓ' => 'ӓ',
+  'Ӕ' => 'ӕ',
+  'Ӗ' => 'ӗ',
+  'Ә' => 'ә',
+  'Ӛ' => 'ӛ',
+  'Ӝ' => 'ӝ',
+  'Ӟ' => 'ӟ',
+  'Ӡ' => 'ӡ',
+  'Ӣ' => 'ӣ',
+  'Ӥ' => 'ӥ',
+  'Ӧ' => 'ӧ',
+  'Ө' => 'ө',
+  'Ӫ' => 'ӫ',
+  'Ӭ' => 'ӭ',
+  'Ӯ' => 'ӯ',
+  'Ӱ' => 'ӱ',
+  'Ӳ' => 'ӳ',
+  'Ӵ' => 'ӵ',
+  'Ӷ' => 'ӷ',
+  'Ӹ' => 'ӹ',
+  'Ӻ' => 'ӻ',
+  'Ӽ' => 'ӽ',
+  'Ӿ' => 'ӿ',
+  'Ԁ' => 'ԁ',
+  'Ԃ' => 'ԃ',
+  'Ԅ' => 'ԅ',
+  'Ԇ' => 'ԇ',
+  'Ԉ' => 'ԉ',
+  'Ԋ' => 'ԋ',
+  'Ԍ' => 'ԍ',
+  'Ԏ' => 'ԏ',
+  'Ԑ' => 'ԑ',
+  'Ԓ' => 'ԓ',
+  'Ԕ' => 'ԕ',
+  'Ԗ' => 'ԗ',
+  'Ԙ' => 'ԙ',
+  'Ԛ' => 'ԛ',
+  'Ԝ' => 'ԝ',
+  'Ԟ' => 'ԟ',
+  'Ԡ' => 'ԡ',
+  'Ԣ' => 'ԣ',
+  'Ԥ' => 'ԥ',
+  'Ԧ' => 'ԧ',
+  'Ԩ' => 'ԩ',
+  'Ԫ' => 'ԫ',
+  'Ԭ' => 'ԭ',
+  'Ԯ' => 'ԯ',
+  'Ա' => 'ա',
+  'Բ' => 'բ',
+  'Գ' => 'գ',
+  'Դ' => 'դ',
+  'Ե' => 'ե',
+  'Զ' => 'զ',
+  'Է' => 'է',
+  'Ը' => 'ը',
+  'Թ' => 'թ',
+  'Ժ' => 'ժ',
+  'Ի' => 'ի',
+  'Լ' => 'լ',
+  'Խ' => 'խ',
+  'Ծ' => 'ծ',
+  'Կ' => 'կ',
+  'Հ' => 'հ',
+  'Ձ' => 'ձ',
+  'Ղ' => 'ղ',
+  'Ճ' => 'ճ',
+  'Մ' => 'մ',
+  'Յ' => 'յ',
+  'Ն' => 'ն',
+  'Շ' => 'շ',
+  'Ո' => 'ո',
+  'Չ' => 'չ',
+  'Պ' => 'պ',
+  'Ջ' => 'ջ',
+  'Ռ' => 'ռ',
+  'Ս' => 'ս',
+  'Վ' => 'վ',
+  'Տ' => 'տ',
+  'Ր' => 'ր',
+  'Ց' => 'ց',
+  'Ւ' => 'ւ',
+  'Փ' => 'փ',
+  'Ք' => 'ք',
+  'Օ' => 'օ',
+  'Ֆ' => 'ֆ',
+  'Ⴀ' => 'ⴀ',
+  'Ⴁ' => 'ⴁ',
+  'Ⴂ' => 'ⴂ',
+  'Ⴃ' => 'ⴃ',
+  'Ⴄ' => 'ⴄ',
+  'Ⴅ' => 'ⴅ',
+  'Ⴆ' => 'ⴆ',
+  'Ⴇ' => 'ⴇ',
+  'Ⴈ' => 'ⴈ',
+  'Ⴉ' => 'ⴉ',
+  'Ⴊ' => 'ⴊ',
+  'Ⴋ' => 'ⴋ',
+  'Ⴌ' => 'ⴌ',
+  'Ⴍ' => 'ⴍ',
+  'Ⴎ' => 'ⴎ',
+  'Ⴏ' => 'ⴏ',
+  'Ⴐ' => 'ⴐ',
+  'Ⴑ' => 'ⴑ',
+  'Ⴒ' => 'ⴒ',
+  'Ⴓ' => 'ⴓ',
+  'Ⴔ' => 'ⴔ',
+  'Ⴕ' => 'ⴕ',
+  'Ⴖ' => 'ⴖ',
+  'Ⴗ' => 'ⴗ',
+  'Ⴘ' => 'ⴘ',
+  'Ⴙ' => 'ⴙ',
+  'Ⴚ' => 'ⴚ',
+  'Ⴛ' => 'ⴛ',
+  'Ⴜ' => 'ⴜ',
+  'Ⴝ' => 'ⴝ',
+  'Ⴞ' => 'ⴞ',
+  'Ⴟ' => 'ⴟ',
+  'Ⴠ' => 'ⴠ',
+  'Ⴡ' => 'ⴡ',
+  'Ⴢ' => 'ⴢ',
+  'Ⴣ' => 'ⴣ',
+  'Ⴤ' => 'ⴤ',
+  'Ⴥ' => 'ⴥ',
+  'Ⴧ' => 'ⴧ',
+  'Ⴭ' => 'ⴭ',
+  'Ꭰ' => 'ꭰ',
+  'Ꭱ' => 'ꭱ',
+  'Ꭲ' => 'ꭲ',
+  'Ꭳ' => 'ꭳ',
+  'Ꭴ' => 'ꭴ',
+  'Ꭵ' => 'ꭵ',
+  'Ꭶ' => 'ꭶ',
+  'Ꭷ' => 'ꭷ',
+  'Ꭸ' => 'ꭸ',
+  'Ꭹ' => 'ꭹ',
+  'Ꭺ' => 'ꭺ',
+  'Ꭻ' => 'ꭻ',
+  'Ꭼ' => 'ꭼ',
+  'Ꭽ' => 'ꭽ',
+  'Ꭾ' => 'ꭾ',
+  'Ꭿ' => 'ꭿ',
+  'Ꮀ' => 'ꮀ',
+  'Ꮁ' => 'ꮁ',
+  'Ꮂ' => 'ꮂ',
+  'Ꮃ' => 'ꮃ',
+  'Ꮄ' => 'ꮄ',
+  'Ꮅ' => 'ꮅ',
+  'Ꮆ' => 'ꮆ',
+  'Ꮇ' => 'ꮇ',
+  'Ꮈ' => 'ꮈ',
+  'Ꮉ' => 'ꮉ',
+  'Ꮊ' => 'ꮊ',
+  'Ꮋ' => 'ꮋ',
+  'Ꮌ' => 'ꮌ',
+  'Ꮍ' => 'ꮍ',
+  'Ꮎ' => 'ꮎ',
+  'Ꮏ' => 'ꮏ',
+  'Ꮐ' => 'ꮐ',
+  'Ꮑ' => 'ꮑ',
+  'Ꮒ' => 'ꮒ',
+  'Ꮓ' => 'ꮓ',
+  'Ꮔ' => 'ꮔ',
+  'Ꮕ' => 'ꮕ',
+  'Ꮖ' => 'ꮖ',
+  'Ꮗ' => 'ꮗ',
+  'Ꮘ' => 'ꮘ',
+  'Ꮙ' => 'ꮙ',
+  'Ꮚ' => 'ꮚ',
+  'Ꮛ' => 'ꮛ',
+  'Ꮜ' => 'ꮜ',
+  'Ꮝ' => 'ꮝ',
+  'Ꮞ' => 'ꮞ',
+  'Ꮟ' => 'ꮟ',
+  'Ꮠ' => 'ꮠ',
+  'Ꮡ' => 'ꮡ',
+  'Ꮢ' => 'ꮢ',
+  'Ꮣ' => 'ꮣ',
+  'Ꮤ' => 'ꮤ',
+  'Ꮥ' => 'ꮥ',
+  'Ꮦ' => 'ꮦ',
+  'Ꮧ' => 'ꮧ',
+  'Ꮨ' => 'ꮨ',
+  'Ꮩ' => 'ꮩ',
+  'Ꮪ' => 'ꮪ',
+  'Ꮫ' => 'ꮫ',
+  'Ꮬ' => 'ꮬ',
+  'Ꮭ' => 'ꮭ',
+  'Ꮮ' => 'ꮮ',
+  'Ꮯ' => 'ꮯ',
+  'Ꮰ' => 'ꮰ',
+  'Ꮱ' => 'ꮱ',
+  'Ꮲ' => 'ꮲ',
+  'Ꮳ' => 'ꮳ',
+  'Ꮴ' => 'ꮴ',
+  'Ꮵ' => 'ꮵ',
+  'Ꮶ' => 'ꮶ',
+  'Ꮷ' => 'ꮷ',
+  'Ꮸ' => 'ꮸ',
+  'Ꮹ' => 'ꮹ',
+  'Ꮺ' => 'ꮺ',
+  'Ꮻ' => 'ꮻ',
+  'Ꮼ' => 'ꮼ',
+  'Ꮽ' => 'ꮽ',
+  'Ꮾ' => 'ꮾ',
+  'Ꮿ' => 'ꮿ',
+  'Ᏸ' => 'ᏸ',
+  'Ᏹ' => 'ᏹ',
+  'Ᏺ' => 'ᏺ',
+  'Ᏻ' => 'ᏻ',
+  'Ᏼ' => 'ᏼ',
+  'Ᏽ' => 'ᏽ',
+  'Ა' => 'ა',
+  'Ბ' => 'ბ',
+  'Გ' => 'გ',
+  'Დ' => 'დ',
+  'Ე' => 'ე',
+  'Ვ' => 'ვ',
+  'Ზ' => 'ზ',
+  'Თ' => 'თ',
+  'Ი' => 'ი',
+  'Კ' => 'კ',
+  'Ლ' => 'ლ',
+  'Მ' => 'მ',
+  'Ნ' => 'ნ',
+  'Ო' => 'ო',
+  'Პ' => 'პ',
+  'Ჟ' => 'ჟ',
+  'Რ' => 'რ',
+  'Ს' => 'ს',
+  'Ტ' => 'ტ',
+  'Უ' => 'უ',
+  'Ფ' => 'ფ',
+  'Ქ' => 'ქ',
+  'Ღ' => 'ღ',
+  'Ყ' => 'ყ',
+  'Შ' => 'შ',
+  'Ჩ' => 'ჩ',
+  'Ც' => 'ც',
+  'Ძ' => 'ძ',
+  'Წ' => 'წ',
+  'Ჭ' => 'ჭ',
+  'Ხ' => 'ხ',
+  'Ჯ' => 'ჯ',
+  'Ჰ' => 'ჰ',
+  'Ჱ' => 'ჱ',
+  'Ჲ' => 'ჲ',
+  'Ჳ' => 'ჳ',
+  'Ჴ' => 'ჴ',
+  'Ჵ' => 'ჵ',
+  'Ჶ' => 'ჶ',
+  'Ჷ' => 'ჷ',
+  'Ჸ' => 'ჸ',
+  'Ჹ' => 'ჹ',
+  'Ჺ' => 'ჺ',
+  'Ჽ' => 'ჽ',
+  'Ჾ' => 'ჾ',
+  'Ჿ' => 'ჿ',
+  'Ḁ' => 'ḁ',
+  'Ḃ' => 'ḃ',
+  'Ḅ' => 'ḅ',
+  'Ḇ' => 'ḇ',
+  'Ḉ' => 'ḉ',
+  'Ḋ' => 'ḋ',
+  'Ḍ' => 'ḍ',
+  'Ḏ' => 'ḏ',
+  'Ḑ' => 'ḑ',
+  'Ḓ' => 'ḓ',
+  'Ḕ' => 'ḕ',
+  'Ḗ' => 'ḗ',
+  'Ḙ' => 'ḙ',
+  'Ḛ' => 'ḛ',
+  'Ḝ' => 'ḝ',
+  'Ḟ' => 'ḟ',
+  'Ḡ' => 'ḡ',
+  'Ḣ' => 'ḣ',
+  'Ḥ' => 'ḥ',
+  'Ḧ' => 'ḧ',
+  'Ḩ' => 'ḩ',
+  'Ḫ' => 'ḫ',
+  'Ḭ' => 'ḭ',
+  'Ḯ' => 'ḯ',
+  'Ḱ' => 'ḱ',
+  'Ḳ' => 'ḳ',
+  'Ḵ' => 'ḵ',
+  'Ḷ' => 'ḷ',
+  'Ḹ' => 'ḹ',
+  'Ḻ' => 'ḻ',
+  'Ḽ' => 'ḽ',
+  'Ḿ' => 'ḿ',
+  'Ṁ' => 'ṁ',
+  'Ṃ' => 'ṃ',
+  'Ṅ' => 'ṅ',
+  'Ṇ' => 'ṇ',
+  'Ṉ' => 'ṉ',
+  'Ṋ' => 'ṋ',
+  'Ṍ' => 'ṍ',
+  'Ṏ' => 'ṏ',
+  'Ṑ' => 'ṑ',
+  'Ṓ' => 'ṓ',
+  'Ṕ' => 'ṕ',
+  'Ṗ' => 'ṗ',
+  'Ṙ' => 'ṙ',
+  'Ṛ' => 'ṛ',
+  'Ṝ' => 'ṝ',
+  'Ṟ' => 'ṟ',
+  'Ṡ' => 'ṡ',
+  'Ṣ' => 'ṣ',
+  'Ṥ' => 'ṥ',
+  'Ṧ' => 'ṧ',
+  'Ṩ' => 'ṩ',
+  'Ṫ' => 'ṫ',
+  'Ṭ' => 'ṭ',
+  'Ṯ' => 'ṯ',
+  'Ṱ' => 'ṱ',
+  'Ṳ' => 'ṳ',
+  'Ṵ' => 'ṵ',
+  'Ṷ' => 'ṷ',
+  'Ṹ' => 'ṹ',
+  'Ṻ' => 'ṻ',
+  'Ṽ' => 'ṽ',
+  'Ṿ' => 'ṿ',
+  'Ẁ' => 'ẁ',
+  'Ẃ' => 'ẃ',
+  'Ẅ' => 'ẅ',
+  'Ẇ' => 'ẇ',
+  'Ẉ' => 'ẉ',
+  'Ẋ' => 'ẋ',
+  'Ẍ' => 'ẍ',
+  'Ẏ' => 'ẏ',
+  'Ẑ' => 'ẑ',
+  'Ẓ' => 'ẓ',
+  'Ẕ' => 'ẕ',
+  'ẞ' => 'ß',
+  'Ạ' => 'ạ',
+  'Ả' => 'ả',
+  'Ấ' => 'ấ',
+  'Ầ' => 'ầ',
+  'Ẩ' => 'ẩ',
+  'Ẫ' => 'ẫ',
+  'Ậ' => 'ậ',
+  'Ắ' => 'ắ',
+  'Ằ' => 'ằ',
+  'Ẳ' => 'ẳ',
+  'Ẵ' => 'ẵ',
+  'Ặ' => 'ặ',
+  'Ẹ' => 'ẹ',
+  'Ẻ' => 'ẻ',
+  'Ẽ' => 'ẽ',
+  'Ế' => 'ế',
+  'Ề' => 'ề',
+  'Ể' => 'ể',
+  'Ễ' => 'ễ',
+  'Ệ' => 'ệ',
+  'Ỉ' => 'ỉ',
+  'Ị' => 'ị',
+  'Ọ' => 'ọ',
+  'Ỏ' => 'ỏ',
+  'Ố' => 'ố',
+  'Ồ' => 'ồ',
+  'Ổ' => 'ổ',
+  'Ỗ' => 'ỗ',
+  'Ộ' => 'ộ',
+  'Ớ' => 'ớ',
+  'Ờ' => 'ờ',
+  'Ở' => 'ở',
+  'Ỡ' => 'ỡ',
+  'Ợ' => 'ợ',
+  'Ụ' => 'ụ',
+  'Ủ' => 'ủ',
+  'Ứ' => 'ứ',
+  'Ừ' => 'ừ',
+  'Ử' => 'ử',
+  'Ữ' => 'ữ',
+  'Ự' => 'ự',
+  'Ỳ' => 'ỳ',
+  'Ỵ' => 'ỵ',
+  'Ỷ' => 'ỷ',
+  'Ỹ' => 'ỹ',
+  'Ỻ' => 'ỻ',
+  'Ỽ' => 'ỽ',
+  'Ỿ' => 'ỿ',
+  'Ἀ' => 'ἀ',
+  'Ἁ' => 'ἁ',
+  'Ἂ' => 'ἂ',
+  'Ἃ' => 'ἃ',
+  'Ἄ' => 'ἄ',
+  'Ἅ' => 'ἅ',
+  'Ἆ' => 'ἆ',
+  'Ἇ' => 'ἇ',
+  'Ἐ' => 'ἐ',
+  'Ἑ' => 'ἑ',
+  'Ἒ' => 'ἒ',
+  'Ἓ' => 'ἓ',
+  'Ἔ' => 'ἔ',
+  'Ἕ' => 'ἕ',
+  'Ἠ' => 'ἠ',
+  'Ἡ' => 'ἡ',
+  'Ἢ' => 'ἢ',
+  'Ἣ' => 'ἣ',
+  'Ἤ' => 'ἤ',
+  'Ἥ' => 'ἥ',
+  'Ἦ' => 'ἦ',
+  'Ἧ' => 'ἧ',
+  'Ἰ' => 'ἰ',
+  'Ἱ' => 'ἱ',
+  'Ἲ' => 'ἲ',
+  'Ἳ' => 'ἳ',
+  'Ἴ' => 'ἴ',
+  'Ἵ' => 'ἵ',
+  'Ἶ' => 'ἶ',
+  'Ἷ' => 'ἷ',
+  'Ὀ' => 'ὀ',
+  'Ὁ' => 'ὁ',
+  'Ὂ' => 'ὂ',
+  'Ὃ' => 'ὃ',
+  'Ὄ' => 'ὄ',
+  'Ὅ' => 'ὅ',
+  'Ὑ' => 'ὑ',
+  'Ὓ' => 'ὓ',
+  'Ὕ' => 'ὕ',
+  'Ὗ' => 'ὗ',
+  'Ὠ' => 'ὠ',
+  'Ὡ' => 'ὡ',
+  'Ὢ' => 'ὢ',
+  'Ὣ' => 'ὣ',
+  'Ὤ' => 'ὤ',
+  'Ὥ' => 'ὥ',
+  'Ὦ' => 'ὦ',
+  'Ὧ' => 'ὧ',
+  'ᾈ' => 'ᾀ',
+  'ᾉ' => 'ᾁ',
+  'ᾊ' => 'ᾂ',
+  'ᾋ' => 'ᾃ',
+  'ᾌ' => 'ᾄ',
+  'ᾍ' => 'ᾅ',
+  'ᾎ' => 'ᾆ',
+  'ᾏ' => 'ᾇ',
+  'ᾘ' => 'ᾐ',
+  'ᾙ' => 'ᾑ',
+  'ᾚ' => 'ᾒ',
+  'ᾛ' => 'ᾓ',
+  'ᾜ' => 'ᾔ',
+  'ᾝ' => 'ᾕ',
+  'ᾞ' => 'ᾖ',
+  'ᾟ' => 'ᾗ',
+  'ᾨ' => 'ᾠ',
+  'ᾩ' => 'ᾡ',
+  'ᾪ' => 'ᾢ',
+  'ᾫ' => 'ᾣ',
+  'ᾬ' => 'ᾤ',
+  'ᾭ' => 'ᾥ',
+  'ᾮ' => 'ᾦ',
+  'ᾯ' => 'ᾧ',
+  'Ᾰ' => 'ᾰ',
+  'Ᾱ' => 'ᾱ',
+  'Ὰ' => 'ὰ',
+  'Ά' => 'ά',
+  'ᾼ' => 'ᾳ',
+  'Ὲ' => 'ὲ',
+  'Έ' => 'έ',
+  'Ὴ' => 'ὴ',
+  'Ή' => 'ή',
+  'ῌ' => 'ῃ',
+  'Ῐ' => 'ῐ',
+  'Ῑ' => 'ῑ',
+  'Ὶ' => 'ὶ',
+  'Ί' => 'ί',
+  'Ῠ' => 'ῠ',
+  'Ῡ' => 'ῡ',
+  'Ὺ' => 'ὺ',
+  'Ύ' => 'ύ',
+  'Ῥ' => 'ῥ',
+  'Ὸ' => 'ὸ',
+  'Ό' => 'ό',
+  'Ὼ' => 'ὼ',
+  'Ώ' => 'ώ',
+  'ῼ' => 'ῳ',
+  'Ω' => 'ω',
+  'K' => 'k',
+  'Å' => 'å',
+  'Ⅎ' => 'ⅎ',
+  'Ⅰ' => 'ⅰ',
+  'Ⅱ' => 'ⅱ',
+  'Ⅲ' => 'ⅲ',
+  'Ⅳ' => 'ⅳ',
+  'Ⅴ' => 'ⅴ',
+  'Ⅵ' => 'ⅵ',
+  'Ⅶ' => 'ⅶ',
+  'Ⅷ' => 'ⅷ',
+  'Ⅸ' => 'ⅸ',
+  'Ⅹ' => 'ⅹ',
+  'Ⅺ' => 'ⅺ',
+  'Ⅻ' => 'ⅻ',
+  'Ⅼ' => 'ⅼ',
+  'Ⅽ' => 'ⅽ',
+  'Ⅾ' => 'ⅾ',
+  'Ⅿ' => 'ⅿ',
+  'Ↄ' => 'ↄ',
+  'Ⓐ' => 'ⓐ',
+  'Ⓑ' => 'ⓑ',
+  'Ⓒ' => 'ⓒ',
+  'Ⓓ' => 'ⓓ',
+  'Ⓔ' => 'ⓔ',
+  'Ⓕ' => 'ⓕ',
+  'Ⓖ' => 'ⓖ',
+  'Ⓗ' => 'ⓗ',
+  'Ⓘ' => 'ⓘ',
+  'Ⓙ' => 'ⓙ',
+  'Ⓚ' => 'ⓚ',
+  'Ⓛ' => 'ⓛ',
+  'Ⓜ' => 'ⓜ',
+  'Ⓝ' => 'ⓝ',
+  'Ⓞ' => 'ⓞ',
+  'Ⓟ' => 'ⓟ',
+  'Ⓠ' => 'ⓠ',
+  'Ⓡ' => 'ⓡ',
+  'Ⓢ' => 'ⓢ',
+  'Ⓣ' => 'ⓣ',
+  'Ⓤ' => 'ⓤ',
+  'Ⓥ' => 'ⓥ',
+  'Ⓦ' => 'ⓦ',
+  'Ⓧ' => 'ⓧ',
+  'Ⓨ' => 'ⓨ',
+  'Ⓩ' => 'ⓩ',
+  'Ⰰ' => 'ⰰ',
+  'Ⰱ' => 'ⰱ',
+  'Ⰲ' => 'ⰲ',
+  'Ⰳ' => 'ⰳ',
+  'Ⰴ' => 'ⰴ',
+  'Ⰵ' => 'ⰵ',
+  'Ⰶ' => 'ⰶ',
+  'Ⰷ' => 'ⰷ',
+  'Ⰸ' => 'ⰸ',
+  'Ⰹ' => 'ⰹ',
+  'Ⰺ' => 'ⰺ',
+  'Ⰻ' => 'ⰻ',
+  'Ⰼ' => 'ⰼ',
+  'Ⰽ' => 'ⰽ',
+  'Ⰾ' => 'ⰾ',
+  'Ⰿ' => 'ⰿ',
+  'Ⱀ' => 'ⱀ',
+  'Ⱁ' => 'ⱁ',
+  'Ⱂ' => 'ⱂ',
+  'Ⱃ' => 'ⱃ',
+  'Ⱄ' => 'ⱄ',
+  'Ⱅ' => 'ⱅ',
+  'Ⱆ' => 'ⱆ',
+  'Ⱇ' => 'ⱇ',
+  'Ⱈ' => 'ⱈ',
+  'Ⱉ' => 'ⱉ',
+  'Ⱊ' => 'ⱊ',
+  'Ⱋ' => 'ⱋ',
+  'Ⱌ' => 'ⱌ',
+  'Ⱍ' => 'ⱍ',
+  'Ⱎ' => 'ⱎ',
+  'Ⱏ' => 'ⱏ',
+  'Ⱐ' => 'ⱐ',
+  'Ⱑ' => 'ⱑ',
+  'Ⱒ' => 'ⱒ',
+  'Ⱓ' => 'ⱓ',
+  'Ⱔ' => 'ⱔ',
+  'Ⱕ' => 'ⱕ',
+  'Ⱖ' => 'ⱖ',
+  'Ⱗ' => 'ⱗ',
+  'Ⱘ' => 'ⱘ',
+  'Ⱙ' => 'ⱙ',
+  'Ⱚ' => 'ⱚ',
+  'Ⱛ' => 'ⱛ',
+  'Ⱜ' => 'ⱜ',
+  'Ⱝ' => 'ⱝ',
+  'Ⱞ' => 'ⱞ',
+  'Ⱡ' => 'ⱡ',
+  'Ɫ' => 'ɫ',
+  'Ᵽ' => 'ᵽ',
+  'Ɽ' => 'ɽ',
+  'Ⱨ' => 'ⱨ',
+  'Ⱪ' => 'ⱪ',
+  'Ⱬ' => 'ⱬ',
+  'Ɑ' => 'ɑ',
+  'Ɱ' => 'ɱ',
+  'Ɐ' => 'ɐ',
+  'Ɒ' => 'ɒ',
+  'Ⱳ' => 'ⱳ',
+  'Ⱶ' => 'ⱶ',
+  'Ȿ' => 'ȿ',
+  'Ɀ' => 'ɀ',
+  'Ⲁ' => 'ⲁ',
+  'Ⲃ' => 'ⲃ',
+  'Ⲅ' => 'ⲅ',
+  'Ⲇ' => 'ⲇ',
+  'Ⲉ' => 'ⲉ',
+  'Ⲋ' => 'ⲋ',
+  'Ⲍ' => 'ⲍ',
+  'Ⲏ' => 'ⲏ',
+  'Ⲑ' => 'ⲑ',
+  'Ⲓ' => 'ⲓ',
+  'Ⲕ' => 'ⲕ',
+  'Ⲗ' => 'ⲗ',
+  'Ⲙ' => 'ⲙ',
+  'Ⲛ' => 'ⲛ',
+  'Ⲝ' => 'ⲝ',
+  'Ⲟ' => 'ⲟ',
+  'Ⲡ' => 'ⲡ',
+  'Ⲣ' => 'ⲣ',
+  'Ⲥ' => 'ⲥ',
+  'Ⲧ' => 'ⲧ',
+  'Ⲩ' => 'ⲩ',
+  'Ⲫ' => 'ⲫ',
+  'Ⲭ' => 'ⲭ',
+  'Ⲯ' => 'ⲯ',
+  'Ⲱ' => 'ⲱ',
+  'Ⲳ' => 'ⲳ',
+  'Ⲵ' => 'ⲵ',
+  'Ⲷ' => 'ⲷ',
+  'Ⲹ' => 'ⲹ',
+  'Ⲻ' => 'ⲻ',
+  'Ⲽ' => 'ⲽ',
+  'Ⲿ' => 'ⲿ',
+  'Ⳁ' => 'ⳁ',
+  'Ⳃ' => 'ⳃ',
+  'Ⳅ' => 'ⳅ',
+  'Ⳇ' => 'ⳇ',
+  'Ⳉ' => 'ⳉ',
+  'Ⳋ' => 'ⳋ',
+  'Ⳍ' => 'ⳍ',
+  'Ⳏ' => 'ⳏ',
+  'Ⳑ' => 'ⳑ',
+  'Ⳓ' => 'ⳓ',
+  'Ⳕ' => 'ⳕ',
+  'Ⳗ' => 'ⳗ',
+  'Ⳙ' => 'ⳙ',
+  'Ⳛ' => 'ⳛ',
+  'Ⳝ' => 'ⳝ',
+  'Ⳟ' => 'ⳟ',
+  'Ⳡ' => 'ⳡ',
+  'Ⳣ' => 'ⳣ',
+  'Ⳬ' => 'ⳬ',
+  'Ⳮ' => 'ⳮ',
+  'Ⳳ' => 'ⳳ',
+  'Ꙁ' => 'ꙁ',
+  'Ꙃ' => 'ꙃ',
+  'Ꙅ' => 'ꙅ',
+  'Ꙇ' => 'ꙇ',
+  'Ꙉ' => 'ꙉ',
+  'Ꙋ' => 'ꙋ',
+  'Ꙍ' => 'ꙍ',
+  'Ꙏ' => 'ꙏ',
+  'Ꙑ' => 'ꙑ',
+  'Ꙓ' => 'ꙓ',
+  'Ꙕ' => 'ꙕ',
+  'Ꙗ' => 'ꙗ',
+  'Ꙙ' => 'ꙙ',
+  'Ꙛ' => 'ꙛ',
+  'Ꙝ' => 'ꙝ',
+  'Ꙟ' => 'ꙟ',
+  'Ꙡ' => 'ꙡ',
+  'Ꙣ' => 'ꙣ',
+  'Ꙥ' => 'ꙥ',
+  'Ꙧ' => 'ꙧ',
+  'Ꙩ' => 'ꙩ',
+  'Ꙫ' => 'ꙫ',
+  'Ꙭ' => 'ꙭ',
+  'Ꚁ' => 'ꚁ',
+  'Ꚃ' => 'ꚃ',
+  'Ꚅ' => 'ꚅ',
+  'Ꚇ' => 'ꚇ',
+  'Ꚉ' => 'ꚉ',
+  'Ꚋ' => 'ꚋ',
+  'Ꚍ' => 'ꚍ',
+  'Ꚏ' => 'ꚏ',
+  'Ꚑ' => 'ꚑ',
+  'Ꚓ' => 'ꚓ',
+  'Ꚕ' => 'ꚕ',
+  'Ꚗ' => 'ꚗ',
+  'Ꚙ' => 'ꚙ',
+  'Ꚛ' => 'ꚛ',
+  'Ꜣ' => 'ꜣ',
+  'Ꜥ' => 'ꜥ',
+  'Ꜧ' => 'ꜧ',
+  'Ꜩ' => 'ꜩ',
+  'Ꜫ' => 'ꜫ',
+  'Ꜭ' => 'ꜭ',
+  'Ꜯ' => 'ꜯ',
+  'Ꜳ' => 'ꜳ',
+  'Ꜵ' => 'ꜵ',
+  'Ꜷ' => 'ꜷ',
+  'Ꜹ' => 'ꜹ',
+  'Ꜻ' => 'ꜻ',
+  'Ꜽ' => 'ꜽ',
+  'Ꜿ' => 'ꜿ',
+  'Ꝁ' => 'ꝁ',
+  'Ꝃ' => 'ꝃ',
+  'Ꝅ' => 'ꝅ',
+  'Ꝇ' => 'ꝇ',
+  'Ꝉ' => 'ꝉ',
+  'Ꝋ' => 'ꝋ',
+  'Ꝍ' => 'ꝍ',
+  'Ꝏ' => 'ꝏ',
+  'Ꝑ' => 'ꝑ',
+  'Ꝓ' => 'ꝓ',
+  'Ꝕ' => 'ꝕ',
+  'Ꝗ' => 'ꝗ',
+  'Ꝙ' => 'ꝙ',
+  'Ꝛ' => 'ꝛ',
+  'Ꝝ' => 'ꝝ',
+  'Ꝟ' => 'ꝟ',
+  'Ꝡ' => 'ꝡ',
+  'Ꝣ' => 'ꝣ',
+  'Ꝥ' => 'ꝥ',
+  'Ꝧ' => 'ꝧ',
+  'Ꝩ' => 'ꝩ',
+  'Ꝫ' => 'ꝫ',
+  'Ꝭ' => 'ꝭ',
+  'Ꝯ' => 'ꝯ',
+  'Ꝺ' => 'ꝺ',
+  'Ꝼ' => 'ꝼ',
+  'Ᵹ' => 'ᵹ',
+  'Ꝿ' => 'ꝿ',
+  'Ꞁ' => 'ꞁ',
+  'Ꞃ' => 'ꞃ',
+  'Ꞅ' => 'ꞅ',
+  'Ꞇ' => 'ꞇ',
+  'Ꞌ' => 'ꞌ',
+  'Ɥ' => 'ɥ',
+  'Ꞑ' => 'ꞑ',
+  'Ꞓ' => 'ꞓ',
+  'Ꞗ' => 'ꞗ',
+  'Ꞙ' => 'ꞙ',
+  'Ꞛ' => 'ꞛ',
+  'Ꞝ' => 'ꞝ',
+  'Ꞟ' => 'ꞟ',
+  'Ꞡ' => 'ꞡ',
+  'Ꞣ' => 'ꞣ',
+  'Ꞥ' => 'ꞥ',
+  'Ꞧ' => 'ꞧ',
+  'Ꞩ' => 'ꞩ',
+  'Ɦ' => 'ɦ',
+  'Ɜ' => 'ɜ',
+  'Ɡ' => 'ɡ',
+  'Ɬ' => 'ɬ',
+  'Ɪ' => 'ɪ',
+  'Ʞ' => 'ʞ',
+  'Ʇ' => 'ʇ',
+  'Ʝ' => 'ʝ',
+  'Ꭓ' => 'ꭓ',
+  'Ꞵ' => 'ꞵ',
+  'Ꞷ' => 'ꞷ',
+  'Ꞹ' => 'ꞹ',
+  'Ꞻ' => 'ꞻ',
+  'Ꞽ' => 'ꞽ',
+  'Ꞿ' => 'ꞿ',
+  'Ꟃ' => 'ꟃ',
+  'Ꞔ' => 'ꞔ',
+  'Ʂ' => 'ʂ',
+  'Ᶎ' => 'ᶎ',
+  'Ꟈ' => 'ꟈ',
+  'Ꟊ' => 'ꟊ',
+  'Ꟶ' => 'ꟶ',
+  'A' => 'a',
+  'B' => 'b',
+  'C' => 'c',
+  'D' => 'd',
+  'E' => 'e',
+  'F' => 'f',
+  'G' => 'g',
+  'H' => 'h',
+  'I' => 'i',
+  'J' => 'j',
+  'K' => 'k',
+  'L' => 'l',
+  'M' => 'm',
+  'N' => 'n',
+  'O' => 'o',
+  'P' => 'p',
+  'Q' => 'q',
+  'R' => 'r',
+  'S' => 's',
+  'T' => 't',
+  'U' => 'u',
+  'V' => 'v',
+  'W' => 'w',
+  'X' => 'x',
+  'Y' => 'y',
+  'Z' => 'z',
+  '𐐀' => '𐐨',
+  '𐐁' => '𐐩',
+  '𐐂' => '𐐪',
+  '𐐃' => '𐐫',
+  '𐐄' => '𐐬',
+  '𐐅' => '𐐭',
+  '𐐆' => '𐐮',
+  '𐐇' => '𐐯',
+  '𐐈' => '𐐰',
+  '𐐉' => '𐐱',
+  '𐐊' => '𐐲',
+  '𐐋' => '𐐳',
+  '𐐌' => '𐐴',
+  '𐐍' => '𐐵',
+  '𐐎' => '𐐶',
+  '𐐏' => '𐐷',
+  '𐐐' => '𐐸',
+  '𐐑' => '𐐹',
+  '𐐒' => '𐐺',
+  '𐐓' => '𐐻',
+  '𐐔' => '𐐼',
+  '𐐕' => '𐐽',
+  '𐐖' => '𐐾',
+  '𐐗' => '𐐿',
+  '𐐘' => '𐑀',
+  '𐐙' => '𐑁',
+  '𐐚' => '𐑂',
+  '𐐛' => '𐑃',
+  '𐐜' => '𐑄',
+  '𐐝' => '𐑅',
+  '𐐞' => '𐑆',
+  '𐐟' => '𐑇',
+  '𐐠' => '𐑈',
+  '𐐡' => '𐑉',
+  '𐐢' => '𐑊',
+  '𐐣' => '𐑋',
+  '𐐤' => '𐑌',
+  '𐐥' => '𐑍',
+  '𐐦' => '𐑎',
+  '𐐧' => '𐑏',
+  '𐒰' => '𐓘',
+  '𐒱' => '𐓙',
+  '𐒲' => '𐓚',
+  '𐒳' => '𐓛',
+  '𐒴' => '𐓜',
+  '𐒵' => '𐓝',
+  '𐒶' => '𐓞',
+  '𐒷' => '𐓟',
+  '𐒸' => '𐓠',
+  '𐒹' => '𐓡',
+  '𐒺' => '𐓢',
+  '𐒻' => '𐓣',
+  '𐒼' => '𐓤',
+  '𐒽' => '𐓥',
+  '𐒾' => '𐓦',
+  '𐒿' => '𐓧',
+  '𐓀' => '𐓨',
+  '𐓁' => '𐓩',
+  '𐓂' => '𐓪',
+  '𐓃' => '𐓫',
+  '𐓄' => '𐓬',
+  '𐓅' => '𐓭',
+  '𐓆' => '𐓮',
+  '𐓇' => '𐓯',
+  '𐓈' => '𐓰',
+  '𐓉' => '𐓱',
+  '𐓊' => '𐓲',
+  '𐓋' => '𐓳',
+  '𐓌' => '𐓴',
+  '𐓍' => '𐓵',
+  '𐓎' => '𐓶',
+  '𐓏' => '𐓷',
+  '𐓐' => '𐓸',
+  '𐓑' => '𐓹',
+  '𐓒' => '𐓺',
+  '𐓓' => '𐓻',
+  '𐲀' => '𐳀',
+  '𐲁' => '𐳁',
+  '𐲂' => '𐳂',
+  '𐲃' => '𐳃',
+  '𐲄' => '𐳄',
+  '𐲅' => '𐳅',
+  '𐲆' => '𐳆',
+  '𐲇' => '𐳇',
+  '𐲈' => '𐳈',
+  '𐲉' => '𐳉',
+  '𐲊' => '𐳊',
+  '𐲋' => '𐳋',
+  '𐲌' => '𐳌',
+  '𐲍' => '𐳍',
+  '𐲎' => '𐳎',
+  '𐲏' => '𐳏',
+  '𐲐' => '𐳐',
+  '𐲑' => '𐳑',
+  '𐲒' => '𐳒',
+  '𐲓' => '𐳓',
+  '𐲔' => '𐳔',
+  '𐲕' => '𐳕',
+  '𐲖' => '𐳖',
+  '𐲗' => '𐳗',
+  '𐲘' => '𐳘',
+  '𐲙' => '𐳙',
+  '𐲚' => '𐳚',
+  '𐲛' => '𐳛',
+  '𐲜' => '𐳜',
+  '𐲝' => '𐳝',
+  '𐲞' => '𐳞',
+  '𐲟' => '𐳟',
+  '𐲠' => '𐳠',
+  '𐲡' => '𐳡',
+  '𐲢' => '𐳢',
+  '𐲣' => '𐳣',
+  '𐲤' => '𐳤',
+  '𐲥' => '𐳥',
+  '𐲦' => '𐳦',
+  '𐲧' => '𐳧',
+  '𐲨' => '𐳨',
+  '𐲩' => '𐳩',
+  '𐲪' => '𐳪',
+  '𐲫' => '𐳫',
+  '𐲬' => '𐳬',
+  '𐲭' => '𐳭',
+  '𐲮' => '𐳮',
+  '𐲯' => '𐳯',
+  '𐲰' => '𐳰',
+  '𐲱' => '𐳱',
+  '𐲲' => '𐳲',
+  '𑢠' => '𑣀',
+  '𑢡' => '𑣁',
+  '𑢢' => '𑣂',
+  '𑢣' => '𑣃',
+  '𑢤' => '𑣄',
+  '𑢥' => '𑣅',
+  '𑢦' => '𑣆',
+  '𑢧' => '𑣇',
+  '𑢨' => '𑣈',
+  '𑢩' => '𑣉',
+  '𑢪' => '𑣊',
+  '𑢫' => '𑣋',
+  '𑢬' => '𑣌',
+  '𑢭' => '𑣍',
+  '𑢮' => '𑣎',
+  '𑢯' => '𑣏',
+  '𑢰' => '𑣐',
+  '𑢱' => '𑣑',
+  '𑢲' => '𑣒',
+  '𑢳' => '𑣓',
+  '𑢴' => '𑣔',
+  '𑢵' => '𑣕',
+  '𑢶' => '𑣖',
+  '𑢷' => '𑣗',
+  '𑢸' => '𑣘',
+  '𑢹' => '𑣙',
+  '𑢺' => '𑣚',
+  '𑢻' => '𑣛',
+  '𑢼' => '𑣜',
+  '𑢽' => '𑣝',
+  '𑢾' => '𑣞',
+  '𑢿' => '𑣟',
+  '𖹀' => '𖹠',
+  '𖹁' => '𖹡',
+  '𖹂' => '𖹢',
+  '𖹃' => '𖹣',
+  '𖹄' => '𖹤',
+  '𖹅' => '𖹥',
+  '𖹆' => '𖹦',
+  '𖹇' => '𖹧',
+  '𖹈' => '𖹨',
+  '𖹉' => '𖹩',
+  '𖹊' => '𖹪',
+  '𖹋' => '𖹫',
+  '𖹌' => '𖹬',
+  '𖹍' => '𖹭',
+  '𖹎' => '𖹮',
+  '𖹏' => '𖹯',
+  '𖹐' => '𖹰',
+  '𖹑' => '𖹱',
+  '𖹒' => '𖹲',
+  '𖹓' => '𖹳',
+  '𖹔' => '𖹴',
+  '𖹕' => '𖹵',
+  '𖹖' => '𖹶',
+  '𖹗' => '𖹷',
+  '𖹘' => '𖹸',
+  '𖹙' => '𖹹',
+  '𖹚' => '𖹺',
+  '𖹛' => '𖹻',
+  '𖹜' => '𖹼',
+  '𖹝' => '𖹽',
+  '𖹞' => '𖹾',
+  '𖹟' => '𖹿',
+  '𞤀' => '𞤢',
+  '𞤁' => '𞤣',
+  '𞤂' => '𞤤',
+  '𞤃' => '𞤥',
+  '𞤄' => '𞤦',
+  '𞤅' => '𞤧',
+  '𞤆' => '𞤨',
+  '𞤇' => '𞤩',
+  '𞤈' => '𞤪',
+  '𞤉' => '𞤫',
+  '𞤊' => '𞤬',
+  '𞤋' => '𞤭',
+  '𞤌' => '𞤮',
+  '𞤍' => '𞤯',
+  '𞤎' => '𞤰',
+  '𞤏' => '𞤱',
+  '𞤐' => '𞤲',
+  '𞤑' => '𞤳',
+  '𞤒' => '𞤴',
+  '𞤓' => '𞤵',
+  '𞤔' => '𞤶',
+  '𞤕' => '𞤷',
+  '𞤖' => '𞤸',
+  '𞤗' => '𞤹',
+  '𞤘' => '𞤺',
+  '𞤙' => '𞤻',
+  '𞤚' => '𞤼',
+  '𞤛' => '𞤽',
+  '𞤜' => '𞤾',
+  '𞤝' => '𞤿',
+  '𞤞' => '𞥀',
+  '𞤟' => '𞥁',
+  '𞤠' => '𞥂',
+  '𞤡' => '𞥃',
+);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php
new file mode 100644
index 0000000..2a8f6e7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php
@@ -0,0 +1,5 @@
+<?php
+
+// from Case_Ignorable in https://unicode.org/Public/UNIDATA/DerivedCoreProperties.txt
+
+return '/(?<![\x{0027}\x{002E}\x{003A}\x{005E}\x{0060}\x{00A8}\x{00AD}\x{00AF}\x{00B4}\x{00B7}\x{00B8}\x{02B0}-\x{02C1}\x{02C2}-\x{02C5}\x{02C6}-\x{02D1}\x{02D2}-\x{02DF}\x{02E0}-\x{02E4}\x{02E5}-\x{02EB}\x{02EC}\x{02ED}\x{02EE}\x{02EF}-\x{02FF}\x{0300}-\x{036F}\x{0374}\x{0375}\x{037A}\x{0384}-\x{0385}\x{0387}\x{0483}-\x{0487}\x{0488}-\x{0489}\x{0559}\x{0591}-\x{05BD}\x{05BF}\x{05C1}-\x{05C2}\x{05C4}-\x{05C5}\x{05C7}\x{05F4}\x{0600}-\x{0605}\x{0610}-\x{061A}\x{061C}\x{0640}\x{064B}-\x{065F}\x{0670}\x{06D6}-\x{06DC}\x{06DD}\x{06DF}-\x{06E4}\x{06E5}-\x{06E6}\x{06E7}-\x{06E8}\x{06EA}-\x{06ED}\x{070F}\x{0711}\x{0730}-\x{074A}\x{07A6}-\x{07B0}\x{07EB}-\x{07F3}\x{07F4}-\x{07F5}\x{07FA}\x{07FD}\x{0816}-\x{0819}\x{081A}\x{081B}-\x{0823}\x{0824}\x{0825}-\x{0827}\x{0828}\x{0829}-\x{082D}\x{0859}-\x{085B}\x{08D3}-\x{08E1}\x{08E2}\x{08E3}-\x{0902}\x{093A}\x{093C}\x{0941}-\x{0948}\x{094D}\x{0951}-\x{0957}\x{0962}-\x{0963}\x{0971}\x{0981}\x{09BC}\x{09C1}-\x{09C4}\x{09CD}\x{09E2}-\x{09E3}\x{09FE}\x{0A01}-\x{0A02}\x{0A3C}\x{0A41}-\x{0A42}\x{0A47}-\x{0A48}\x{0A4B}-\x{0A4D}\x{0A51}\x{0A70}-\x{0A71}\x{0A75}\x{0A81}-\x{0A82}\x{0ABC}\x{0AC1}-\x{0AC5}\x{0AC7}-\x{0AC8}\x{0ACD}\x{0AE2}-\x{0AE3}\x{0AFA}-\x{0AFF}\x{0B01}\x{0B3C}\x{0B3F}\x{0B41}-\x{0B44}\x{0B4D}\x{0B56}\x{0B62}-\x{0B63}\x{0B82}\x{0BC0}\x{0BCD}\x{0C00}\x{0C04}\x{0C3E}-\x{0C40}\x{0C46}-\x{0C48}\x{0C4A}-\x{0C4D}\x{0C55}-\x{0C56}\x{0C62}-\x{0C63}\x{0C81}\x{0CBC}\x{0CBF}\x{0CC6}\x{0CCC}-\x{0CCD}\x{0CE2}-\x{0CE3}\x{0D00}-\x{0D01}\x{0D3B}-\x{0D3C}\x{0D41}-\x{0D44}\x{0D4D}\x{0D62}-\x{0D63}\x{0DCA}\x{0DD2}-\x{0DD4}\x{0DD6}\x{0E31}\x{0E34}-\x{0E3A}\x{0E46}\x{0E47}-\x{0E4E}\x{0EB1}\x{0EB4}-\x{0EB9}\x{0EBB}-\x{0EBC}\x{0EC6}\x{0EC8}-\x{0ECD}\x{0F18}-\x{0F19}\x{0F35}\x{0F37}\x{0F39}\x{0F71}-\x{0F7E}\x{0F80}-\x{0F84}\x{0F86}-\x{0F87}\x{0F8D}-\x{0F97}\x{0F99}-\x{0FBC}\x{0FC6}\x{102D}-\x{1030}\x{1032}-\x{1037}\x{1039}-\x{103A}\x{103D}-\x{103E}\x{1058}-\x{1059}\x{105E}-\x{1060}\x{1071}-\x{1074}\x{1082}\x{1085}-\x{1086}\x{108D}\x{109D}\x{10FC}\x{135D}-\x{135F}\x{1712}-\x{1714}\x{1732}-\x{1734}\x{1752}-\x{1753}\x{1772}-\x{1773}\x{17B4}-\x{17B5}\x{17B7}-\x{17BD}\x{17C6}\x{17C9}-\x{17D3}\x{17D7}\x{17DD}\x{180B}-\x{180D}\x{180E}\x{1843}\x{1885}-\x{1886}\x{18A9}\x{1920}-\x{1922}\x{1927}-\x{1928}\x{1932}\x{1939}-\x{193B}\x{1A17}-\x{1A18}\x{1A1B}\x{1A56}\x{1A58}-\x{1A5E}\x{1A60}\x{1A62}\x{1A65}-\x{1A6C}\x{1A73}-\x{1A7C}\x{1A7F}\x{1AA7}\x{1AB0}-\x{1ABD}\x{1ABE}\x{1B00}-\x{1B03}\x{1B34}\x{1B36}-\x{1B3A}\x{1B3C}\x{1B42}\x{1B6B}-\x{1B73}\x{1B80}-\x{1B81}\x{1BA2}-\x{1BA5}\x{1BA8}-\x{1BA9}\x{1BAB}-\x{1BAD}\x{1BE6}\x{1BE8}-\x{1BE9}\x{1BED}\x{1BEF}-\x{1BF1}\x{1C2C}-\x{1C33}\x{1C36}-\x{1C37}\x{1C78}-\x{1C7D}\x{1CD0}-\x{1CD2}\x{1CD4}-\x{1CE0}\x{1CE2}-\x{1CE8}\x{1CED}\x{1CF4}\x{1CF8}-\x{1CF9}\x{1D2C}-\x{1D6A}\x{1D78}\x{1D9B}-\x{1DBF}\x{1DC0}-\x{1DF9}\x{1DFB}-\x{1DFF}\x{1FBD}\x{1FBF}-\x{1FC1}\x{1FCD}-\x{1FCF}\x{1FDD}-\x{1FDF}\x{1FED}-\x{1FEF}\x{1FFD}-\x{1FFE}\x{200B}-\x{200F}\x{2018}\x{2019}\x{2024}\x{2027}\x{202A}-\x{202E}\x{2060}-\x{2064}\x{2066}-\x{206F}\x{2071}\x{207F}\x{2090}-\x{209C}\x{20D0}-\x{20DC}\x{20DD}-\x{20E0}\x{20E1}\x{20E2}-\x{20E4}\x{20E5}-\x{20F0}\x{2C7C}-\x{2C7D}\x{2CEF}-\x{2CF1}\x{2D6F}\x{2D7F}\x{2DE0}-\x{2DFF}\x{2E2F}\x{3005}\x{302A}-\x{302D}\x{3031}-\x{3035}\x{303B}\x{3099}-\x{309A}\x{309B}-\x{309C}\x{309D}-\x{309E}\x{30FC}-\x{30FE}\x{A015}\x{A4F8}-\x{A4FD}\x{A60C}\x{A66F}\x{A670}-\x{A672}\x{A674}-\x{A67D}\x{A67F}\x{A69C}-\x{A69D}\x{A69E}-\x{A69F}\x{A6F0}-\x{A6F1}\x{A700}-\x{A716}\x{A717}-\x{A71F}\x{A720}-\x{A721}\x{A770}\x{A788}\x{A789}-\x{A78A}\x{A7F8}-\x{A7F9}\x{A802}\x{A806}\x{A80B}\x{A825}-\x{A826}\x{A8C4}-\x{A8C5}\x{A8E0}-\x{A8F1}\x{A8FF}\x{A926}-\x{A92D}\x{A947}-\x{A951}\x{A980}-\x{A982}\x{A9B3}\x{A9B6}-\x{A9B9}\x{A9BC}\x{A9CF}\x{A9E5}\x{A9E6}\x{AA29}-\x{AA2E}\x{AA31}-\x{AA32}\x{AA35}-\x{AA36}\x{AA43}\x{AA4C}\x{AA70}\x{AA7C}\x{AAB0}\x{AAB2}-\x{AAB4}\x{AAB7}-\x{AAB8}\x{AABE}-\x{AABF}\x{AAC1}\x{AADD}\x{AAEC}-\x{AAED}\x{AAF3}-\x{AAF4}\x{AAF6}\x{AB5B}\x{AB5C}-\x{AB5F}\x{ABE5}\x{ABE8}\x{ABED}\x{FB1E}\x{FBB2}-\x{FBC1}\x{FE00}-\x{FE0F}\x{FE13}\x{FE20}-\x{FE2F}\x{FE52}\x{FE55}\x{FEFF}\x{FF07}\x{FF0E}\x{FF1A}\x{FF3E}\x{FF40}\x{FF70}\x{FF9E}-\x{FF9F}\x{FFE3}\x{FFF9}-\x{FFFB}\x{101FD}\x{102E0}\x{10376}-\x{1037A}\x{10A01}-\x{10A03}\x{10A05}-\x{10A06}\x{10A0C}-\x{10A0F}\x{10A38}-\x{10A3A}\x{10A3F}\x{10AE5}-\x{10AE6}\x{10D24}-\x{10D27}\x{10F46}-\x{10F50}\x{11001}\x{11038}-\x{11046}\x{1107F}-\x{11081}\x{110B3}-\x{110B6}\x{110B9}-\x{110BA}\x{110BD}\x{110CD}\x{11100}-\x{11102}\x{11127}-\x{1112B}\x{1112D}-\x{11134}\x{11173}\x{11180}-\x{11181}\x{111B6}-\x{111BE}\x{111C9}-\x{111CC}\x{1122F}-\x{11231}\x{11234}\x{11236}-\x{11237}\x{1123E}\x{112DF}\x{112E3}-\x{112EA}\x{11300}-\x{11301}\x{1133B}-\x{1133C}\x{11340}\x{11366}-\x{1136C}\x{11370}-\x{11374}\x{11438}-\x{1143F}\x{11442}-\x{11444}\x{11446}\x{1145E}\x{114B3}-\x{114B8}\x{114BA}\x{114BF}-\x{114C0}\x{114C2}-\x{114C3}\x{115B2}-\x{115B5}\x{115BC}-\x{115BD}\x{115BF}-\x{115C0}\x{115DC}-\x{115DD}\x{11633}-\x{1163A}\x{1163D}\x{1163F}-\x{11640}\x{116AB}\x{116AD}\x{116B0}-\x{116B5}\x{116B7}\x{1171D}-\x{1171F}\x{11722}-\x{11725}\x{11727}-\x{1172B}\x{1182F}-\x{11837}\x{11839}-\x{1183A}\x{11A01}-\x{11A0A}\x{11A33}-\x{11A38}\x{11A3B}-\x{11A3E}\x{11A47}\x{11A51}-\x{11A56}\x{11A59}-\x{11A5B}\x{11A8A}-\x{11A96}\x{11A98}-\x{11A99}\x{11C30}-\x{11C36}\x{11C38}-\x{11C3D}\x{11C3F}\x{11C92}-\x{11CA7}\x{11CAA}-\x{11CB0}\x{11CB2}-\x{11CB3}\x{11CB5}-\x{11CB6}\x{11D31}-\x{11D36}\x{11D3A}\x{11D3C}-\x{11D3D}\x{11D3F}-\x{11D45}\x{11D47}\x{11D90}-\x{11D91}\x{11D95}\x{11D97}\x{11EF3}-\x{11EF4}\x{16AF0}-\x{16AF4}\x{16B30}-\x{16B36}\x{16B40}-\x{16B43}\x{16F8F}-\x{16F92}\x{16F93}-\x{16F9F}\x{16FE0}-\x{16FE1}\x{1BC9D}-\x{1BC9E}\x{1BCA0}-\x{1BCA3}\x{1D167}-\x{1D169}\x{1D173}-\x{1D17A}\x{1D17B}-\x{1D182}\x{1D185}-\x{1D18B}\x{1D1AA}-\x{1D1AD}\x{1D242}-\x{1D244}\x{1DA00}-\x{1DA36}\x{1DA3B}-\x{1DA6C}\x{1DA75}\x{1DA84}\x{1DA9B}-\x{1DA9F}\x{1DAA1}-\x{1DAAF}\x{1E000}-\x{1E006}\x{1E008}-\x{1E018}\x{1E01B}-\x{1E021}\x{1E023}-\x{1E024}\x{1E026}-\x{1E02A}\x{1E8D0}-\x{1E8D6}\x{1E944}-\x{1E94A}\x{1F3FB}-\x{1F3FF}\x{E0001}\x{E0020}-\x{E007F}\x{E0100}-\x{E01EF}])(\pL)(\pL*+)/u';
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php
new file mode 100644
index 0000000..56b9cb8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php
@@ -0,0 +1,1489 @@
+<?php
+
+return array (
+  'a' => 'A',
+  'b' => 'B',
+  'c' => 'C',
+  'd' => 'D',
+  'e' => 'E',
+  'f' => 'F',
+  'g' => 'G',
+  'h' => 'H',
+  'i' => 'I',
+  'j' => 'J',
+  'k' => 'K',
+  'l' => 'L',
+  'm' => 'M',
+  'n' => 'N',
+  'o' => 'O',
+  'p' => 'P',
+  'q' => 'Q',
+  'r' => 'R',
+  's' => 'S',
+  't' => 'T',
+  'u' => 'U',
+  'v' => 'V',
+  'w' => 'W',
+  'x' => 'X',
+  'y' => 'Y',
+  'z' => 'Z',
+  'µ' => 'Μ',
+  'à' => 'À',
+  'á' => 'Á',
+  'â' => 'Â',
+  'ã' => 'Ã',
+  'ä' => 'Ä',
+  'å' => 'Å',
+  'æ' => 'Æ',
+  'ç' => 'Ç',
+  'è' => 'È',
+  'é' => 'É',
+  'ê' => 'Ê',
+  'ë' => 'Ë',
+  'ì' => 'Ì',
+  'í' => 'Í',
+  'î' => 'Î',
+  'ï' => 'Ï',
+  'ð' => 'Ð',
+  'ñ' => 'Ñ',
+  'ò' => 'Ò',
+  'ó' => 'Ó',
+  'ô' => 'Ô',
+  'õ' => 'Õ',
+  'ö' => 'Ö',
+  'ø' => 'Ø',
+  'ù' => 'Ù',
+  'ú' => 'Ú',
+  'û' => 'Û',
+  'ü' => 'Ü',
+  'ý' => 'Ý',
+  'þ' => 'Þ',
+  'ÿ' => 'Ÿ',
+  'ā' => 'Ā',
+  'ă' => 'Ă',
+  'ą' => 'Ą',
+  'ć' => 'Ć',
+  'ĉ' => 'Ĉ',
+  'ċ' => 'Ċ',
+  'č' => 'Č',
+  'ď' => 'Ď',
+  'đ' => 'Đ',
+  'ē' => 'Ē',
+  'ĕ' => 'Ĕ',
+  'ė' => 'Ė',
+  'ę' => 'Ę',
+  'ě' => 'Ě',
+  'ĝ' => 'Ĝ',
+  'ğ' => 'Ğ',
+  'ġ' => 'Ġ',
+  'ģ' => 'Ģ',
+  'ĥ' => 'Ĥ',
+  'ħ' => 'Ħ',
+  'ĩ' => 'Ĩ',
+  'ī' => 'Ī',
+  'ĭ' => 'Ĭ',
+  'į' => 'Į',
+  'ı' => 'I',
+  'ij' => 'IJ',
+  'ĵ' => 'Ĵ',
+  'ķ' => 'Ķ',
+  'ĺ' => 'Ĺ',
+  'ļ' => 'Ļ',
+  'ľ' => 'Ľ',
+  'ŀ' => 'Ŀ',
+  'ł' => 'Ł',
+  'ń' => 'Ń',
+  'ņ' => 'Ņ',
+  'ň' => 'Ň',
+  'ŋ' => 'Ŋ',
+  'ō' => 'Ō',
+  'ŏ' => 'Ŏ',
+  'ő' => 'Ő',
+  'œ' => 'Œ',
+  'ŕ' => 'Ŕ',
+  'ŗ' => 'Ŗ',
+  'ř' => 'Ř',
+  'ś' => 'Ś',
+  'ŝ' => 'Ŝ',
+  'ş' => 'Ş',
+  'š' => 'Š',
+  'ţ' => 'Ţ',
+  'ť' => 'Ť',
+  'ŧ' => 'Ŧ',
+  'ũ' => 'Ũ',
+  'ū' => 'Ū',
+  'ŭ' => 'Ŭ',
+  'ů' => 'Ů',
+  'ű' => 'Ű',
+  'ų' => 'Ų',
+  'ŵ' => 'Ŵ',
+  'ŷ' => 'Ŷ',
+  'ź' => 'Ź',
+  'ż' => 'Ż',
+  'ž' => 'Ž',
+  'ſ' => 'S',
+  'ƀ' => 'Ƀ',
+  'ƃ' => 'Ƃ',
+  'ƅ' => 'Ƅ',
+  'ƈ' => 'Ƈ',
+  'ƌ' => 'Ƌ',
+  'ƒ' => 'Ƒ',
+  'ƕ' => 'Ƕ',
+  'ƙ' => 'Ƙ',
+  'ƚ' => 'Ƚ',
+  'ƞ' => 'Ƞ',
+  'ơ' => 'Ơ',
+  'ƣ' => 'Ƣ',
+  'ƥ' => 'Ƥ',
+  'ƨ' => 'Ƨ',
+  'ƭ' => 'Ƭ',
+  'ư' => 'Ư',
+  'ƴ' => 'Ƴ',
+  'ƶ' => 'Ƶ',
+  'ƹ' => 'Ƹ',
+  'ƽ' => 'Ƽ',
+  'ƿ' => 'Ƿ',
+  'Dž' => 'DŽ',
+  'dž' => 'DŽ',
+  'Lj' => 'LJ',
+  'lj' => 'LJ',
+  'Nj' => 'NJ',
+  'nj' => 'NJ',
+  'ǎ' => 'Ǎ',
+  'ǐ' => 'Ǐ',
+  'ǒ' => 'Ǒ',
+  'ǔ' => 'Ǔ',
+  'ǖ' => 'Ǖ',
+  'ǘ' => 'Ǘ',
+  'ǚ' => 'Ǚ',
+  'ǜ' => 'Ǜ',
+  'ǝ' => 'Ǝ',
+  'ǟ' => 'Ǟ',
+  'ǡ' => 'Ǡ',
+  'ǣ' => 'Ǣ',
+  'ǥ' => 'Ǥ',
+  'ǧ' => 'Ǧ',
+  'ǩ' => 'Ǩ',
+  'ǫ' => 'Ǫ',
+  'ǭ' => 'Ǭ',
+  'ǯ' => 'Ǯ',
+  'Dz' => 'DZ',
+  'dz' => 'DZ',
+  'ǵ' => 'Ǵ',
+  'ǹ' => 'Ǹ',
+  'ǻ' => 'Ǻ',
+  'ǽ' => 'Ǽ',
+  'ǿ' => 'Ǿ',
+  'ȁ' => 'Ȁ',
+  'ȃ' => 'Ȃ',
+  'ȅ' => 'Ȅ',
+  'ȇ' => 'Ȇ',
+  'ȉ' => 'Ȉ',
+  'ȋ' => 'Ȋ',
+  'ȍ' => 'Ȍ',
+  'ȏ' => 'Ȏ',
+  'ȑ' => 'Ȑ',
+  'ȓ' => 'Ȓ',
+  'ȕ' => 'Ȕ',
+  'ȗ' => 'Ȗ',
+  'ș' => 'Ș',
+  'ț' => 'Ț',
+  'ȝ' => 'Ȝ',
+  'ȟ' => 'Ȟ',
+  'ȣ' => 'Ȣ',
+  'ȥ' => 'Ȥ',
+  'ȧ' => 'Ȧ',
+  'ȩ' => 'Ȩ',
+  'ȫ' => 'Ȫ',
+  'ȭ' => 'Ȭ',
+  'ȯ' => 'Ȯ',
+  'ȱ' => 'Ȱ',
+  'ȳ' => 'Ȳ',
+  'ȼ' => 'Ȼ',
+  'ȿ' => 'Ȿ',
+  'ɀ' => 'Ɀ',
+  'ɂ' => 'Ɂ',
+  'ɇ' => 'Ɇ',
+  'ɉ' => 'Ɉ',
+  'ɋ' => 'Ɋ',
+  'ɍ' => 'Ɍ',
+  'ɏ' => 'Ɏ',
+  'ɐ' => 'Ɐ',
+  'ɑ' => 'Ɑ',
+  'ɒ' => 'Ɒ',
+  'ɓ' => 'Ɓ',
+  'ɔ' => 'Ɔ',
+  'ɖ' => 'Ɖ',
+  'ɗ' => 'Ɗ',
+  'ə' => 'Ə',
+  'ɛ' => 'Ɛ',
+  'ɜ' => 'Ɜ',
+  'ɠ' => 'Ɠ',
+  'ɡ' => 'Ɡ',
+  'ɣ' => 'Ɣ',
+  'ɥ' => 'Ɥ',
+  'ɦ' => 'Ɦ',
+  'ɨ' => 'Ɨ',
+  'ɩ' => 'Ɩ',
+  'ɪ' => 'Ɪ',
+  'ɫ' => 'Ɫ',
+  'ɬ' => 'Ɬ',
+  'ɯ' => 'Ɯ',
+  'ɱ' => 'Ɱ',
+  'ɲ' => 'Ɲ',
+  'ɵ' => 'Ɵ',
+  'ɽ' => 'Ɽ',
+  'ʀ' => 'Ʀ',
+  'ʂ' => 'Ʂ',
+  'ʃ' => 'Ʃ',
+  'ʇ' => 'Ʇ',
+  'ʈ' => 'Ʈ',
+  'ʉ' => 'Ʉ',
+  'ʊ' => 'Ʊ',
+  'ʋ' => 'Ʋ',
+  'ʌ' => 'Ʌ',
+  'ʒ' => 'Ʒ',
+  'ʝ' => 'Ʝ',
+  'ʞ' => 'Ʞ',
+  'ͅ' => 'Ι',
+  'ͱ' => 'Ͱ',
+  'ͳ' => 'Ͳ',
+  'ͷ' => 'Ͷ',
+  'ͻ' => 'Ͻ',
+  'ͼ' => 'Ͼ',
+  'ͽ' => 'Ͽ',
+  'ά' => 'Ά',
+  'έ' => 'Έ',
+  'ή' => 'Ή',
+  'ί' => 'Ί',
+  'α' => 'Α',
+  'β' => 'Β',
+  'γ' => 'Γ',
+  'δ' => 'Δ',
+  'ε' => 'Ε',
+  'ζ' => 'Ζ',
+  'η' => 'Η',
+  'θ' => 'Θ',
+  'ι' => 'Ι',
+  'κ' => 'Κ',
+  'λ' => 'Λ',
+  'μ' => 'Μ',
+  'ν' => 'Ν',
+  'ξ' => 'Ξ',
+  'ο' => 'Ο',
+  'π' => 'Π',
+  'ρ' => 'Ρ',
+  'ς' => 'Σ',
+  'σ' => 'Σ',
+  'τ' => 'Τ',
+  'υ' => 'Υ',
+  'φ' => 'Φ',
+  'χ' => 'Χ',
+  'ψ' => 'Ψ',
+  'ω' => 'Ω',
+  'ϊ' => 'Ϊ',
+  'ϋ' => 'Ϋ',
+  'ό' => 'Ό',
+  'ύ' => 'Ύ',
+  'ώ' => 'Ώ',
+  'ϐ' => 'Β',
+  'ϑ' => 'Θ',
+  'ϕ' => 'Φ',
+  'ϖ' => 'Π',
+  'ϗ' => 'Ϗ',
+  'ϙ' => 'Ϙ',
+  'ϛ' => 'Ϛ',
+  'ϝ' => 'Ϝ',
+  'ϟ' => 'Ϟ',
+  'ϡ' => 'Ϡ',
+  'ϣ' => 'Ϣ',
+  'ϥ' => 'Ϥ',
+  'ϧ' => 'Ϧ',
+  'ϩ' => 'Ϩ',
+  'ϫ' => 'Ϫ',
+  'ϭ' => 'Ϭ',
+  'ϯ' => 'Ϯ',
+  'ϰ' => 'Κ',
+  'ϱ' => 'Ρ',
+  'ϲ' => 'Ϲ',
+  'ϳ' => 'Ϳ',
+  'ϵ' => 'Ε',
+  'ϸ' => 'Ϸ',
+  'ϻ' => 'Ϻ',
+  'а' => 'А',
+  'б' => 'Б',
+  'в' => 'В',
+  'г' => 'Г',
+  'д' => 'Д',
+  'е' => 'Е',
+  'ж' => 'Ж',
+  'з' => 'З',
+  'и' => 'И',
+  'й' => 'Й',
+  'к' => 'К',
+  'л' => 'Л',
+  'м' => 'М',
+  'н' => 'Н',
+  'о' => 'О',
+  'п' => 'П',
+  'р' => 'Р',
+  'с' => 'С',
+  'т' => 'Т',
+  'у' => 'У',
+  'ф' => 'Ф',
+  'х' => 'Х',
+  'ц' => 'Ц',
+  'ч' => 'Ч',
+  'ш' => 'Ш',
+  'щ' => 'Щ',
+  'ъ' => 'Ъ',
+  'ы' => 'Ы',
+  'ь' => 'Ь',
+  'э' => 'Э',
+  'ю' => 'Ю',
+  'я' => 'Я',
+  'ѐ' => 'Ѐ',
+  'ё' => 'Ё',
+  'ђ' => 'Ђ',
+  'ѓ' => 'Ѓ',
+  'є' => 'Є',
+  'ѕ' => 'Ѕ',
+  'і' => 'І',
+  'ї' => 'Ї',
+  'ј' => 'Ј',
+  'љ' => 'Љ',
+  'њ' => 'Њ',
+  'ћ' => 'Ћ',
+  'ќ' => 'Ќ',
+  'ѝ' => 'Ѝ',
+  'ў' => 'Ў',
+  'џ' => 'Џ',
+  'ѡ' => 'Ѡ',
+  'ѣ' => 'Ѣ',
+  'ѥ' => 'Ѥ',
+  'ѧ' => 'Ѧ',
+  'ѩ' => 'Ѩ',
+  'ѫ' => 'Ѫ',
+  'ѭ' => 'Ѭ',
+  'ѯ' => 'Ѯ',
+  'ѱ' => 'Ѱ',
+  'ѳ' => 'Ѳ',
+  'ѵ' => 'Ѵ',
+  'ѷ' => 'Ѷ',
+  'ѹ' => 'Ѹ',
+  'ѻ' => 'Ѻ',
+  'ѽ' => 'Ѽ',
+  'ѿ' => 'Ѿ',
+  'ҁ' => 'Ҁ',
+  'ҋ' => 'Ҋ',
+  'ҍ' => 'Ҍ',
+  'ҏ' => 'Ҏ',
+  'ґ' => 'Ґ',
+  'ғ' => 'Ғ',
+  'ҕ' => 'Ҕ',
+  'җ' => 'Җ',
+  'ҙ' => 'Ҙ',
+  'қ' => 'Қ',
+  'ҝ' => 'Ҝ',
+  'ҟ' => 'Ҟ',
+  'ҡ' => 'Ҡ',
+  'ң' => 'Ң',
+  'ҥ' => 'Ҥ',
+  'ҧ' => 'Ҧ',
+  'ҩ' => 'Ҩ',
+  'ҫ' => 'Ҫ',
+  'ҭ' => 'Ҭ',
+  'ү' => 'Ү',
+  'ұ' => 'Ұ',
+  'ҳ' => 'Ҳ',
+  'ҵ' => 'Ҵ',
+  'ҷ' => 'Ҷ',
+  'ҹ' => 'Ҹ',
+  'һ' => 'Һ',
+  'ҽ' => 'Ҽ',
+  'ҿ' => 'Ҿ',
+  'ӂ' => 'Ӂ',
+  'ӄ' => 'Ӄ',
+  'ӆ' => 'Ӆ',
+  'ӈ' => 'Ӈ',
+  'ӊ' => 'Ӊ',
+  'ӌ' => 'Ӌ',
+  'ӎ' => 'Ӎ',
+  'ӏ' => 'Ӏ',
+  'ӑ' => 'Ӑ',
+  'ӓ' => 'Ӓ',
+  'ӕ' => 'Ӕ',
+  'ӗ' => 'Ӗ',
+  'ә' => 'Ә',
+  'ӛ' => 'Ӛ',
+  'ӝ' => 'Ӝ',
+  'ӟ' => 'Ӟ',
+  'ӡ' => 'Ӡ',
+  'ӣ' => 'Ӣ',
+  'ӥ' => 'Ӥ',
+  'ӧ' => 'Ӧ',
+  'ө' => 'Ө',
+  'ӫ' => 'Ӫ',
+  'ӭ' => 'Ӭ',
+  'ӯ' => 'Ӯ',
+  'ӱ' => 'Ӱ',
+  'ӳ' => 'Ӳ',
+  'ӵ' => 'Ӵ',
+  'ӷ' => 'Ӷ',
+  'ӹ' => 'Ӹ',
+  'ӻ' => 'Ӻ',
+  'ӽ' => 'Ӽ',
+  'ӿ' => 'Ӿ',
+  'ԁ' => 'Ԁ',
+  'ԃ' => 'Ԃ',
+  'ԅ' => 'Ԅ',
+  'ԇ' => 'Ԇ',
+  'ԉ' => 'Ԉ',
+  'ԋ' => 'Ԋ',
+  'ԍ' => 'Ԍ',
+  'ԏ' => 'Ԏ',
+  'ԑ' => 'Ԑ',
+  'ԓ' => 'Ԓ',
+  'ԕ' => 'Ԕ',
+  'ԗ' => 'Ԗ',
+  'ԙ' => 'Ԙ',
+  'ԛ' => 'Ԛ',
+  'ԝ' => 'Ԝ',
+  'ԟ' => 'Ԟ',
+  'ԡ' => 'Ԡ',
+  'ԣ' => 'Ԣ',
+  'ԥ' => 'Ԥ',
+  'ԧ' => 'Ԧ',
+  'ԩ' => 'Ԩ',
+  'ԫ' => 'Ԫ',
+  'ԭ' => 'Ԭ',
+  'ԯ' => 'Ԯ',
+  'ա' => 'Ա',
+  'բ' => 'Բ',
+  'գ' => 'Գ',
+  'դ' => 'Դ',
+  'ե' => 'Ե',
+  'զ' => 'Զ',
+  'է' => 'Է',
+  'ը' => 'Ը',
+  'թ' => 'Թ',
+  'ժ' => 'Ժ',
+  'ի' => 'Ի',
+  'լ' => 'Լ',
+  'խ' => 'Խ',
+  'ծ' => 'Ծ',
+  'կ' => 'Կ',
+  'հ' => 'Հ',
+  'ձ' => 'Ձ',
+  'ղ' => 'Ղ',
+  'ճ' => 'Ճ',
+  'մ' => 'Մ',
+  'յ' => 'Յ',
+  'ն' => 'Ն',
+  'շ' => 'Շ',
+  'ո' => 'Ո',
+  'չ' => 'Չ',
+  'պ' => 'Պ',
+  'ջ' => 'Ջ',
+  'ռ' => 'Ռ',
+  'ս' => 'Ս',
+  'վ' => 'Վ',
+  'տ' => 'Տ',
+  'ր' => 'Ր',
+  'ց' => 'Ց',
+  'ւ' => 'Ւ',
+  'փ' => 'Փ',
+  'ք' => 'Ք',
+  'օ' => 'Օ',
+  'ֆ' => 'Ֆ',
+  'ა' => 'Ა',
+  'ბ' => 'Ბ',
+  'გ' => 'Გ',
+  'დ' => 'Დ',
+  'ე' => 'Ე',
+  'ვ' => 'Ვ',
+  'ზ' => 'Ზ',
+  'თ' => 'Თ',
+  'ი' => 'Ი',
+  'კ' => 'Კ',
+  'ლ' => 'Ლ',
+  'მ' => 'Მ',
+  'ნ' => 'Ნ',
+  'ო' => 'Ო',
+  'პ' => 'Პ',
+  'ჟ' => 'Ჟ',
+  'რ' => 'Რ',
+  'ს' => 'Ს',
+  'ტ' => 'Ტ',
+  'უ' => 'Უ',
+  'ფ' => 'Ფ',
+  'ქ' => 'Ქ',
+  'ღ' => 'Ღ',
+  'ყ' => 'Ყ',
+  'შ' => 'Შ',
+  'ჩ' => 'Ჩ',
+  'ც' => 'Ც',
+  'ძ' => 'Ძ',
+  'წ' => 'Წ',
+  'ჭ' => 'Ჭ',
+  'ხ' => 'Ხ',
+  'ჯ' => 'Ჯ',
+  'ჰ' => 'Ჰ',
+  'ჱ' => 'Ჱ',
+  'ჲ' => 'Ჲ',
+  'ჳ' => 'Ჳ',
+  'ჴ' => 'Ჴ',
+  'ჵ' => 'Ჵ',
+  'ჶ' => 'Ჶ',
+  'ჷ' => 'Ჷ',
+  'ჸ' => 'Ჸ',
+  'ჹ' => 'Ჹ',
+  'ჺ' => 'Ჺ',
+  'ჽ' => 'Ჽ',
+  'ჾ' => 'Ჾ',
+  'ჿ' => 'Ჿ',
+  'ᏸ' => 'Ᏸ',
+  'ᏹ' => 'Ᏹ',
+  'ᏺ' => 'Ᏺ',
+  'ᏻ' => 'Ᏻ',
+  'ᏼ' => 'Ᏼ',
+  'ᏽ' => 'Ᏽ',
+  'ᲀ' => 'В',
+  'ᲁ' => 'Д',
+  'ᲂ' => 'О',
+  'ᲃ' => 'С',
+  'ᲄ' => 'Т',
+  'ᲅ' => 'Т',
+  'ᲆ' => 'Ъ',
+  'ᲇ' => 'Ѣ',
+  'ᲈ' => 'Ꙋ',
+  'ᵹ' => 'Ᵹ',
+  'ᵽ' => 'Ᵽ',
+  'ᶎ' => 'Ᶎ',
+  'ḁ' => 'Ḁ',
+  'ḃ' => 'Ḃ',
+  'ḅ' => 'Ḅ',
+  'ḇ' => 'Ḇ',
+  'ḉ' => 'Ḉ',
+  'ḋ' => 'Ḋ',
+  'ḍ' => 'Ḍ',
+  'ḏ' => 'Ḏ',
+  'ḑ' => 'Ḑ',
+  'ḓ' => 'Ḓ',
+  'ḕ' => 'Ḕ',
+  'ḗ' => 'Ḗ',
+  'ḙ' => 'Ḙ',
+  'ḛ' => 'Ḛ',
+  'ḝ' => 'Ḝ',
+  'ḟ' => 'Ḟ',
+  'ḡ' => 'Ḡ',
+  'ḣ' => 'Ḣ',
+  'ḥ' => 'Ḥ',
+  'ḧ' => 'Ḧ',
+  'ḩ' => 'Ḩ',
+  'ḫ' => 'Ḫ',
+  'ḭ' => 'Ḭ',
+  'ḯ' => 'Ḯ',
+  'ḱ' => 'Ḱ',
+  'ḳ' => 'Ḳ',
+  'ḵ' => 'Ḵ',
+  'ḷ' => 'Ḷ',
+  'ḹ' => 'Ḹ',
+  'ḻ' => 'Ḻ',
+  'ḽ' => 'Ḽ',
+  'ḿ' => 'Ḿ',
+  'ṁ' => 'Ṁ',
+  'ṃ' => 'Ṃ',
+  'ṅ' => 'Ṅ',
+  'ṇ' => 'Ṇ',
+  'ṉ' => 'Ṉ',
+  'ṋ' => 'Ṋ',
+  'ṍ' => 'Ṍ',
+  'ṏ' => 'Ṏ',
+  'ṑ' => 'Ṑ',
+  'ṓ' => 'Ṓ',
+  'ṕ' => 'Ṕ',
+  'ṗ' => 'Ṗ',
+  'ṙ' => 'Ṙ',
+  'ṛ' => 'Ṛ',
+  'ṝ' => 'Ṝ',
+  'ṟ' => 'Ṟ',
+  'ṡ' => 'Ṡ',
+  'ṣ' => 'Ṣ',
+  'ṥ' => 'Ṥ',
+  'ṧ' => 'Ṧ',
+  'ṩ' => 'Ṩ',
+  'ṫ' => 'Ṫ',
+  'ṭ' => 'Ṭ',
+  'ṯ' => 'Ṯ',
+  'ṱ' => 'Ṱ',
+  'ṳ' => 'Ṳ',
+  'ṵ' => 'Ṵ',
+  'ṷ' => 'Ṷ',
+  'ṹ' => 'Ṹ',
+  'ṻ' => 'Ṻ',
+  'ṽ' => 'Ṽ',
+  'ṿ' => 'Ṿ',
+  'ẁ' => 'Ẁ',
+  'ẃ' => 'Ẃ',
+  'ẅ' => 'Ẅ',
+  'ẇ' => 'Ẇ',
+  'ẉ' => 'Ẉ',
+  'ẋ' => 'Ẋ',
+  'ẍ' => 'Ẍ',
+  'ẏ' => 'Ẏ',
+  'ẑ' => 'Ẑ',
+  'ẓ' => 'Ẓ',
+  'ẕ' => 'Ẕ',
+  'ẛ' => 'Ṡ',
+  'ạ' => 'Ạ',
+  'ả' => 'Ả',
+  'ấ' => 'Ấ',
+  'ầ' => 'Ầ',
+  'ẩ' => 'Ẩ',
+  'ẫ' => 'Ẫ',
+  'ậ' => 'Ậ',
+  'ắ' => 'Ắ',
+  'ằ' => 'Ằ',
+  'ẳ' => 'Ẳ',
+  'ẵ' => 'Ẵ',
+  'ặ' => 'Ặ',
+  'ẹ' => 'Ẹ',
+  'ẻ' => 'Ẻ',
+  'ẽ' => 'Ẽ',
+  'ế' => 'Ế',
+  'ề' => 'Ề',
+  'ể' => 'Ể',
+  'ễ' => 'Ễ',
+  'ệ' => 'Ệ',
+  'ỉ' => 'Ỉ',
+  'ị' => 'Ị',
+  'ọ' => 'Ọ',
+  'ỏ' => 'Ỏ',
+  'ố' => 'Ố',
+  'ồ' => 'Ồ',
+  'ổ' => 'Ổ',
+  'ỗ' => 'Ỗ',
+  'ộ' => 'Ộ',
+  'ớ' => 'Ớ',
+  'ờ' => 'Ờ',
+  'ở' => 'Ở',
+  'ỡ' => 'Ỡ',
+  'ợ' => 'Ợ',
+  'ụ' => 'Ụ',
+  'ủ' => 'Ủ',
+  'ứ' => 'Ứ',
+  'ừ' => 'Ừ',
+  'ử' => 'Ử',
+  'ữ' => 'Ữ',
+  'ự' => 'Ự',
+  'ỳ' => 'Ỳ',
+  'ỵ' => 'Ỵ',
+  'ỷ' => 'Ỷ',
+  'ỹ' => 'Ỹ',
+  'ỻ' => 'Ỻ',
+  'ỽ' => 'Ỽ',
+  'ỿ' => 'Ỿ',
+  'ἀ' => 'Ἀ',
+  'ἁ' => 'Ἁ',
+  'ἂ' => 'Ἂ',
+  'ἃ' => 'Ἃ',
+  'ἄ' => 'Ἄ',
+  'ἅ' => 'Ἅ',
+  'ἆ' => 'Ἆ',
+  'ἇ' => 'Ἇ',
+  'ἐ' => 'Ἐ',
+  'ἑ' => 'Ἑ',
+  'ἒ' => 'Ἒ',
+  'ἓ' => 'Ἓ',
+  'ἔ' => 'Ἔ',
+  'ἕ' => 'Ἕ',
+  'ἠ' => 'Ἠ',
+  'ἡ' => 'Ἡ',
+  'ἢ' => 'Ἢ',
+  'ἣ' => 'Ἣ',
+  'ἤ' => 'Ἤ',
+  'ἥ' => 'Ἥ',
+  'ἦ' => 'Ἦ',
+  'ἧ' => 'Ἧ',
+  'ἰ' => 'Ἰ',
+  'ἱ' => 'Ἱ',
+  'ἲ' => 'Ἲ',
+  'ἳ' => 'Ἳ',
+  'ἴ' => 'Ἴ',
+  'ἵ' => 'Ἵ',
+  'ἶ' => 'Ἶ',
+  'ἷ' => 'Ἷ',
+  'ὀ' => 'Ὀ',
+  'ὁ' => 'Ὁ',
+  'ὂ' => 'Ὂ',
+  'ὃ' => 'Ὃ',
+  'ὄ' => 'Ὄ',
+  'ὅ' => 'Ὅ',
+  'ὑ' => 'Ὑ',
+  'ὓ' => 'Ὓ',
+  'ὕ' => 'Ὕ',
+  'ὗ' => 'Ὗ',
+  'ὠ' => 'Ὠ',
+  'ὡ' => 'Ὡ',
+  'ὢ' => 'Ὢ',
+  'ὣ' => 'Ὣ',
+  'ὤ' => 'Ὤ',
+  'ὥ' => 'Ὥ',
+  'ὦ' => 'Ὦ',
+  'ὧ' => 'Ὧ',
+  'ὰ' => 'Ὰ',
+  'ά' => 'Ά',
+  'ὲ' => 'Ὲ',
+  'έ' => 'Έ',
+  'ὴ' => 'Ὴ',
+  'ή' => 'Ή',
+  'ὶ' => 'Ὶ',
+  'ί' => 'Ί',
+  'ὸ' => 'Ὸ',
+  'ό' => 'Ό',
+  'ὺ' => 'Ὺ',
+  'ύ' => 'Ύ',
+  'ὼ' => 'Ὼ',
+  'ώ' => 'Ώ',
+  'ᾀ' => 'ἈΙ',
+  'ᾁ' => 'ἉΙ',
+  'ᾂ' => 'ἊΙ',
+  'ᾃ' => 'ἋΙ',
+  'ᾄ' => 'ἌΙ',
+  'ᾅ' => 'ἍΙ',
+  'ᾆ' => 'ἎΙ',
+  'ᾇ' => 'ἏΙ',
+  'ᾐ' => 'ἨΙ',
+  'ᾑ' => 'ἩΙ',
+  'ᾒ' => 'ἪΙ',
+  'ᾓ' => 'ἫΙ',
+  'ᾔ' => 'ἬΙ',
+  'ᾕ' => 'ἭΙ',
+  'ᾖ' => 'ἮΙ',
+  'ᾗ' => 'ἯΙ',
+  'ᾠ' => 'ὨΙ',
+  'ᾡ' => 'ὩΙ',
+  'ᾢ' => 'ὪΙ',
+  'ᾣ' => 'ὫΙ',
+  'ᾤ' => 'ὬΙ',
+  'ᾥ' => 'ὭΙ',
+  'ᾦ' => 'ὮΙ',
+  'ᾧ' => 'ὯΙ',
+  'ᾰ' => 'Ᾰ',
+  'ᾱ' => 'Ᾱ',
+  'ᾳ' => 'ΑΙ',
+  'ι' => 'Ι',
+  'ῃ' => 'ΗΙ',
+  'ῐ' => 'Ῐ',
+  'ῑ' => 'Ῑ',
+  'ῠ' => 'Ῠ',
+  'ῡ' => 'Ῡ',
+  'ῥ' => 'Ῥ',
+  'ῳ' => 'ΩΙ',
+  'ⅎ' => 'Ⅎ',
+  'ⅰ' => 'Ⅰ',
+  'ⅱ' => 'Ⅱ',
+  'ⅲ' => 'Ⅲ',
+  'ⅳ' => 'Ⅳ',
+  'ⅴ' => 'Ⅴ',
+  'ⅵ' => 'Ⅵ',
+  'ⅶ' => 'Ⅶ',
+  'ⅷ' => 'Ⅷ',
+  'ⅸ' => 'Ⅸ',
+  'ⅹ' => 'Ⅹ',
+  'ⅺ' => 'Ⅺ',
+  'ⅻ' => 'Ⅻ',
+  'ⅼ' => 'Ⅼ',
+  'ⅽ' => 'Ⅽ',
+  'ⅾ' => 'Ⅾ',
+  'ⅿ' => 'Ⅿ',
+  'ↄ' => 'Ↄ',
+  'ⓐ' => 'Ⓐ',
+  'ⓑ' => 'Ⓑ',
+  'ⓒ' => 'Ⓒ',
+  'ⓓ' => 'Ⓓ',
+  'ⓔ' => 'Ⓔ',
+  'ⓕ' => 'Ⓕ',
+  'ⓖ' => 'Ⓖ',
+  'ⓗ' => 'Ⓗ',
+  'ⓘ' => 'Ⓘ',
+  'ⓙ' => 'Ⓙ',
+  'ⓚ' => 'Ⓚ',
+  'ⓛ' => 'Ⓛ',
+  'ⓜ' => 'Ⓜ',
+  'ⓝ' => 'Ⓝ',
+  'ⓞ' => 'Ⓞ',
+  'ⓟ' => 'Ⓟ',
+  'ⓠ' => 'Ⓠ',
+  'ⓡ' => 'Ⓡ',
+  'ⓢ' => 'Ⓢ',
+  'ⓣ' => 'Ⓣ',
+  'ⓤ' => 'Ⓤ',
+  'ⓥ' => 'Ⓥ',
+  'ⓦ' => 'Ⓦ',
+  'ⓧ' => 'Ⓧ',
+  'ⓨ' => 'Ⓨ',
+  'ⓩ' => 'Ⓩ',
+  'ⰰ' => 'Ⰰ',
+  'ⰱ' => 'Ⰱ',
+  'ⰲ' => 'Ⰲ',
+  'ⰳ' => 'Ⰳ',
+  'ⰴ' => 'Ⰴ',
+  'ⰵ' => 'Ⰵ',
+  'ⰶ' => 'Ⰶ',
+  'ⰷ' => 'Ⰷ',
+  'ⰸ' => 'Ⰸ',
+  'ⰹ' => 'Ⰹ',
+  'ⰺ' => 'Ⰺ',
+  'ⰻ' => 'Ⰻ',
+  'ⰼ' => 'Ⰼ',
+  'ⰽ' => 'Ⰽ',
+  'ⰾ' => 'Ⰾ',
+  'ⰿ' => 'Ⰿ',
+  'ⱀ' => 'Ⱀ',
+  'ⱁ' => 'Ⱁ',
+  'ⱂ' => 'Ⱂ',
+  'ⱃ' => 'Ⱃ',
+  'ⱄ' => 'Ⱄ',
+  'ⱅ' => 'Ⱅ',
+  'ⱆ' => 'Ⱆ',
+  'ⱇ' => 'Ⱇ',
+  'ⱈ' => 'Ⱈ',
+  'ⱉ' => 'Ⱉ',
+  'ⱊ' => 'Ⱊ',
+  'ⱋ' => 'Ⱋ',
+  'ⱌ' => 'Ⱌ',
+  'ⱍ' => 'Ⱍ',
+  'ⱎ' => 'Ⱎ',
+  'ⱏ' => 'Ⱏ',
+  'ⱐ' => 'Ⱐ',
+  'ⱑ' => 'Ⱑ',
+  'ⱒ' => 'Ⱒ',
+  'ⱓ' => 'Ⱓ',
+  'ⱔ' => 'Ⱔ',
+  'ⱕ' => 'Ⱕ',
+  'ⱖ' => 'Ⱖ',
+  'ⱗ' => 'Ⱗ',
+  'ⱘ' => 'Ⱘ',
+  'ⱙ' => 'Ⱙ',
+  'ⱚ' => 'Ⱚ',
+  'ⱛ' => 'Ⱛ',
+  'ⱜ' => 'Ⱜ',
+  'ⱝ' => 'Ⱝ',
+  'ⱞ' => 'Ⱞ',
+  'ⱡ' => 'Ⱡ',
+  'ⱥ' => 'Ⱥ',
+  'ⱦ' => 'Ⱦ',
+  'ⱨ' => 'Ⱨ',
+  'ⱪ' => 'Ⱪ',
+  'ⱬ' => 'Ⱬ',
+  'ⱳ' => 'Ⱳ',
+  'ⱶ' => 'Ⱶ',
+  'ⲁ' => 'Ⲁ',
+  'ⲃ' => 'Ⲃ',
+  'ⲅ' => 'Ⲅ',
+  'ⲇ' => 'Ⲇ',
+  'ⲉ' => 'Ⲉ',
+  'ⲋ' => 'Ⲋ',
+  'ⲍ' => 'Ⲍ',
+  'ⲏ' => 'Ⲏ',
+  'ⲑ' => 'Ⲑ',
+  'ⲓ' => 'Ⲓ',
+  'ⲕ' => 'Ⲕ',
+  'ⲗ' => 'Ⲗ',
+  'ⲙ' => 'Ⲙ',
+  'ⲛ' => 'Ⲛ',
+  'ⲝ' => 'Ⲝ',
+  'ⲟ' => 'Ⲟ',
+  'ⲡ' => 'Ⲡ',
+  'ⲣ' => 'Ⲣ',
+  'ⲥ' => 'Ⲥ',
+  'ⲧ' => 'Ⲧ',
+  'ⲩ' => 'Ⲩ',
+  'ⲫ' => 'Ⲫ',
+  'ⲭ' => 'Ⲭ',
+  'ⲯ' => 'Ⲯ',
+  'ⲱ' => 'Ⲱ',
+  'ⲳ' => 'Ⲳ',
+  'ⲵ' => 'Ⲵ',
+  'ⲷ' => 'Ⲷ',
+  'ⲹ' => 'Ⲹ',
+  'ⲻ' => 'Ⲻ',
+  'ⲽ' => 'Ⲽ',
+  'ⲿ' => 'Ⲿ',
+  'ⳁ' => 'Ⳁ',
+  'ⳃ' => 'Ⳃ',
+  'ⳅ' => 'Ⳅ',
+  'ⳇ' => 'Ⳇ',
+  'ⳉ' => 'Ⳉ',
+  'ⳋ' => 'Ⳋ',
+  'ⳍ' => 'Ⳍ',
+  'ⳏ' => 'Ⳏ',
+  'ⳑ' => 'Ⳑ',
+  'ⳓ' => 'Ⳓ',
+  'ⳕ' => 'Ⳕ',
+  'ⳗ' => 'Ⳗ',
+  'ⳙ' => 'Ⳙ',
+  'ⳛ' => 'Ⳛ',
+  'ⳝ' => 'Ⳝ',
+  'ⳟ' => 'Ⳟ',
+  'ⳡ' => 'Ⳡ',
+  'ⳣ' => 'Ⳣ',
+  'ⳬ' => 'Ⳬ',
+  'ⳮ' => 'Ⳮ',
+  'ⳳ' => 'Ⳳ',
+  'ⴀ' => 'Ⴀ',
+  'ⴁ' => 'Ⴁ',
+  'ⴂ' => 'Ⴂ',
+  'ⴃ' => 'Ⴃ',
+  'ⴄ' => 'Ⴄ',
+  'ⴅ' => 'Ⴅ',
+  'ⴆ' => 'Ⴆ',
+  'ⴇ' => 'Ⴇ',
+  'ⴈ' => 'Ⴈ',
+  'ⴉ' => 'Ⴉ',
+  'ⴊ' => 'Ⴊ',
+  'ⴋ' => 'Ⴋ',
+  'ⴌ' => 'Ⴌ',
+  'ⴍ' => 'Ⴍ',
+  'ⴎ' => 'Ⴎ',
+  'ⴏ' => 'Ⴏ',
+  'ⴐ' => 'Ⴐ',
+  'ⴑ' => 'Ⴑ',
+  'ⴒ' => 'Ⴒ',
+  'ⴓ' => 'Ⴓ',
+  'ⴔ' => 'Ⴔ',
+  'ⴕ' => 'Ⴕ',
+  'ⴖ' => 'Ⴖ',
+  'ⴗ' => 'Ⴗ',
+  'ⴘ' => 'Ⴘ',
+  'ⴙ' => 'Ⴙ',
+  'ⴚ' => 'Ⴚ',
+  'ⴛ' => 'Ⴛ',
+  'ⴜ' => 'Ⴜ',
+  'ⴝ' => 'Ⴝ',
+  'ⴞ' => 'Ⴞ',
+  'ⴟ' => 'Ⴟ',
+  'ⴠ' => 'Ⴠ',
+  'ⴡ' => 'Ⴡ',
+  'ⴢ' => 'Ⴢ',
+  'ⴣ' => 'Ⴣ',
+  'ⴤ' => 'Ⴤ',
+  'ⴥ' => 'Ⴥ',
+  'ⴧ' => 'Ⴧ',
+  'ⴭ' => 'Ⴭ',
+  'ꙁ' => 'Ꙁ',
+  'ꙃ' => 'Ꙃ',
+  'ꙅ' => 'Ꙅ',
+  'ꙇ' => 'Ꙇ',
+  'ꙉ' => 'Ꙉ',
+  'ꙋ' => 'Ꙋ',
+  'ꙍ' => 'Ꙍ',
+  'ꙏ' => 'Ꙏ',
+  'ꙑ' => 'Ꙑ',
+  'ꙓ' => 'Ꙓ',
+  'ꙕ' => 'Ꙕ',
+  'ꙗ' => 'Ꙗ',
+  'ꙙ' => 'Ꙙ',
+  'ꙛ' => 'Ꙛ',
+  'ꙝ' => 'Ꙝ',
+  'ꙟ' => 'Ꙟ',
+  'ꙡ' => 'Ꙡ',
+  'ꙣ' => 'Ꙣ',
+  'ꙥ' => 'Ꙥ',
+  'ꙧ' => 'Ꙧ',
+  'ꙩ' => 'Ꙩ',
+  'ꙫ' => 'Ꙫ',
+  'ꙭ' => 'Ꙭ',
+  'ꚁ' => 'Ꚁ',
+  'ꚃ' => 'Ꚃ',
+  'ꚅ' => 'Ꚅ',
+  'ꚇ' => 'Ꚇ',
+  'ꚉ' => 'Ꚉ',
+  'ꚋ' => 'Ꚋ',
+  'ꚍ' => 'Ꚍ',
+  'ꚏ' => 'Ꚏ',
+  'ꚑ' => 'Ꚑ',
+  'ꚓ' => 'Ꚓ',
+  'ꚕ' => 'Ꚕ',
+  'ꚗ' => 'Ꚗ',
+  'ꚙ' => 'Ꚙ',
+  'ꚛ' => 'Ꚛ',
+  'ꜣ' => 'Ꜣ',
+  'ꜥ' => 'Ꜥ',
+  'ꜧ' => 'Ꜧ',
+  'ꜩ' => 'Ꜩ',
+  'ꜫ' => 'Ꜫ',
+  'ꜭ' => 'Ꜭ',
+  'ꜯ' => 'Ꜯ',
+  'ꜳ' => 'Ꜳ',
+  'ꜵ' => 'Ꜵ',
+  'ꜷ' => 'Ꜷ',
+  'ꜹ' => 'Ꜹ',
+  'ꜻ' => 'Ꜻ',
+  'ꜽ' => 'Ꜽ',
+  'ꜿ' => 'Ꜿ',
+  'ꝁ' => 'Ꝁ',
+  'ꝃ' => 'Ꝃ',
+  'ꝅ' => 'Ꝅ',
+  'ꝇ' => 'Ꝇ',
+  'ꝉ' => 'Ꝉ',
+  'ꝋ' => 'Ꝋ',
+  'ꝍ' => 'Ꝍ',
+  'ꝏ' => 'Ꝏ',
+  'ꝑ' => 'Ꝑ',
+  'ꝓ' => 'Ꝓ',
+  'ꝕ' => 'Ꝕ',
+  'ꝗ' => 'Ꝗ',
+  'ꝙ' => 'Ꝙ',
+  'ꝛ' => 'Ꝛ',
+  'ꝝ' => 'Ꝝ',
+  'ꝟ' => 'Ꝟ',
+  'ꝡ' => 'Ꝡ',
+  'ꝣ' => 'Ꝣ',
+  'ꝥ' => 'Ꝥ',
+  'ꝧ' => 'Ꝧ',
+  'ꝩ' => 'Ꝩ',
+  'ꝫ' => 'Ꝫ',
+  'ꝭ' => 'Ꝭ',
+  'ꝯ' => 'Ꝯ',
+  'ꝺ' => 'Ꝺ',
+  'ꝼ' => 'Ꝼ',
+  'ꝿ' => 'Ꝿ',
+  'ꞁ' => 'Ꞁ',
+  'ꞃ' => 'Ꞃ',
+  'ꞅ' => 'Ꞅ',
+  'ꞇ' => 'Ꞇ',
+  'ꞌ' => 'Ꞌ',
+  'ꞑ' => 'Ꞑ',
+  'ꞓ' => 'Ꞓ',
+  'ꞔ' => 'Ꞔ',
+  'ꞗ' => 'Ꞗ',
+  'ꞙ' => 'Ꞙ',
+  'ꞛ' => 'Ꞛ',
+  'ꞝ' => 'Ꞝ',
+  'ꞟ' => 'Ꞟ',
+  'ꞡ' => 'Ꞡ',
+  'ꞣ' => 'Ꞣ',
+  'ꞥ' => 'Ꞥ',
+  'ꞧ' => 'Ꞧ',
+  'ꞩ' => 'Ꞩ',
+  'ꞵ' => 'Ꞵ',
+  'ꞷ' => 'Ꞷ',
+  'ꞹ' => 'Ꞹ',
+  'ꞻ' => 'Ꞻ',
+  'ꞽ' => 'Ꞽ',
+  'ꞿ' => 'Ꞿ',
+  'ꟃ' => 'Ꟃ',
+  'ꟈ' => 'Ꟈ',
+  'ꟊ' => 'Ꟊ',
+  'ꟶ' => 'Ꟶ',
+  'ꭓ' => 'Ꭓ',
+  'ꭰ' => 'Ꭰ',
+  'ꭱ' => 'Ꭱ',
+  'ꭲ' => 'Ꭲ',
+  'ꭳ' => 'Ꭳ',
+  'ꭴ' => 'Ꭴ',
+  'ꭵ' => 'Ꭵ',
+  'ꭶ' => 'Ꭶ',
+  'ꭷ' => 'Ꭷ',
+  'ꭸ' => 'Ꭸ',
+  'ꭹ' => 'Ꭹ',
+  'ꭺ' => 'Ꭺ',
+  'ꭻ' => 'Ꭻ',
+  'ꭼ' => 'Ꭼ',
+  'ꭽ' => 'Ꭽ',
+  'ꭾ' => 'Ꭾ',
+  'ꭿ' => 'Ꭿ',
+  'ꮀ' => 'Ꮀ',
+  'ꮁ' => 'Ꮁ',
+  'ꮂ' => 'Ꮂ',
+  'ꮃ' => 'Ꮃ',
+  'ꮄ' => 'Ꮄ',
+  'ꮅ' => 'Ꮅ',
+  'ꮆ' => 'Ꮆ',
+  'ꮇ' => 'Ꮇ',
+  'ꮈ' => 'Ꮈ',
+  'ꮉ' => 'Ꮉ',
+  'ꮊ' => 'Ꮊ',
+  'ꮋ' => 'Ꮋ',
+  'ꮌ' => 'Ꮌ',
+  'ꮍ' => 'Ꮍ',
+  'ꮎ' => 'Ꮎ',
+  'ꮏ' => 'Ꮏ',
+  'ꮐ' => 'Ꮐ',
+  'ꮑ' => 'Ꮑ',
+  'ꮒ' => 'Ꮒ',
+  'ꮓ' => 'Ꮓ',
+  'ꮔ' => 'Ꮔ',
+  'ꮕ' => 'Ꮕ',
+  'ꮖ' => 'Ꮖ',
+  'ꮗ' => 'Ꮗ',
+  'ꮘ' => 'Ꮘ',
+  'ꮙ' => 'Ꮙ',
+  'ꮚ' => 'Ꮚ',
+  'ꮛ' => 'Ꮛ',
+  'ꮜ' => 'Ꮜ',
+  'ꮝ' => 'Ꮝ',
+  'ꮞ' => 'Ꮞ',
+  'ꮟ' => 'Ꮟ',
+  'ꮠ' => 'Ꮠ',
+  'ꮡ' => 'Ꮡ',
+  'ꮢ' => 'Ꮢ',
+  'ꮣ' => 'Ꮣ',
+  'ꮤ' => 'Ꮤ',
+  'ꮥ' => 'Ꮥ',
+  'ꮦ' => 'Ꮦ',
+  'ꮧ' => 'Ꮧ',
+  'ꮨ' => 'Ꮨ',
+  'ꮩ' => 'Ꮩ',
+  'ꮪ' => 'Ꮪ',
+  'ꮫ' => 'Ꮫ',
+  'ꮬ' => 'Ꮬ',
+  'ꮭ' => 'Ꮭ',
+  'ꮮ' => 'Ꮮ',
+  'ꮯ' => 'Ꮯ',
+  'ꮰ' => 'Ꮰ',
+  'ꮱ' => 'Ꮱ',
+  'ꮲ' => 'Ꮲ',
+  'ꮳ' => 'Ꮳ',
+  'ꮴ' => 'Ꮴ',
+  'ꮵ' => 'Ꮵ',
+  'ꮶ' => 'Ꮶ',
+  'ꮷ' => 'Ꮷ',
+  'ꮸ' => 'Ꮸ',
+  'ꮹ' => 'Ꮹ',
+  'ꮺ' => 'Ꮺ',
+  'ꮻ' => 'Ꮻ',
+  'ꮼ' => 'Ꮼ',
+  'ꮽ' => 'Ꮽ',
+  'ꮾ' => 'Ꮾ',
+  'ꮿ' => 'Ꮿ',
+  'a' => 'A',
+  'b' => 'B',
+  'c' => 'C',
+  'd' => 'D',
+  'e' => 'E',
+  'f' => 'F',
+  'g' => 'G',
+  'h' => 'H',
+  'i' => 'I',
+  'j' => 'J',
+  'k' => 'K',
+  'l' => 'L',
+  'm' => 'M',
+  'n' => 'N',
+  'o' => 'O',
+  'p' => 'P',
+  'q' => 'Q',
+  'r' => 'R',
+  's' => 'S',
+  't' => 'T',
+  'u' => 'U',
+  'v' => 'V',
+  'w' => 'W',
+  'x' => 'X',
+  'y' => 'Y',
+  'z' => 'Z',
+  '𐐨' => '𐐀',
+  '𐐩' => '𐐁',
+  '𐐪' => '𐐂',
+  '𐐫' => '𐐃',
+  '𐐬' => '𐐄',
+  '𐐭' => '𐐅',
+  '𐐮' => '𐐆',
+  '𐐯' => '𐐇',
+  '𐐰' => '𐐈',
+  '𐐱' => '𐐉',
+  '𐐲' => '𐐊',
+  '𐐳' => '𐐋',
+  '𐐴' => '𐐌',
+  '𐐵' => '𐐍',
+  '𐐶' => '𐐎',
+  '𐐷' => '𐐏',
+  '𐐸' => '𐐐',
+  '𐐹' => '𐐑',
+  '𐐺' => '𐐒',
+  '𐐻' => '𐐓',
+  '𐐼' => '𐐔',
+  '𐐽' => '𐐕',
+  '𐐾' => '𐐖',
+  '𐐿' => '𐐗',
+  '𐑀' => '𐐘',
+  '𐑁' => '𐐙',
+  '𐑂' => '𐐚',
+  '𐑃' => '𐐛',
+  '𐑄' => '𐐜',
+  '𐑅' => '𐐝',
+  '𐑆' => '𐐞',
+  '𐑇' => '𐐟',
+  '𐑈' => '𐐠',
+  '𐑉' => '𐐡',
+  '𐑊' => '𐐢',
+  '𐑋' => '𐐣',
+  '𐑌' => '𐐤',
+  '𐑍' => '𐐥',
+  '𐑎' => '𐐦',
+  '𐑏' => '𐐧',
+  '𐓘' => '𐒰',
+  '𐓙' => '𐒱',
+  '𐓚' => '𐒲',
+  '𐓛' => '𐒳',
+  '𐓜' => '𐒴',
+  '𐓝' => '𐒵',
+  '𐓞' => '𐒶',
+  '𐓟' => '𐒷',
+  '𐓠' => '𐒸',
+  '𐓡' => '𐒹',
+  '𐓢' => '𐒺',
+  '𐓣' => '𐒻',
+  '𐓤' => '𐒼',
+  '𐓥' => '𐒽',
+  '𐓦' => '𐒾',
+  '𐓧' => '𐒿',
+  '𐓨' => '𐓀',
+  '𐓩' => '𐓁',
+  '𐓪' => '𐓂',
+  '𐓫' => '𐓃',
+  '𐓬' => '𐓄',
+  '𐓭' => '𐓅',
+  '𐓮' => '𐓆',
+  '𐓯' => '𐓇',
+  '𐓰' => '𐓈',
+  '𐓱' => '𐓉',
+  '𐓲' => '𐓊',
+  '𐓳' => '𐓋',
+  '𐓴' => '𐓌',
+  '𐓵' => '𐓍',
+  '𐓶' => '𐓎',
+  '𐓷' => '𐓏',
+  '𐓸' => '𐓐',
+  '𐓹' => '𐓑',
+  '𐓺' => '𐓒',
+  '𐓻' => '𐓓',
+  '𐳀' => '𐲀',
+  '𐳁' => '𐲁',
+  '𐳂' => '𐲂',
+  '𐳃' => '𐲃',
+  '𐳄' => '𐲄',
+  '𐳅' => '𐲅',
+  '𐳆' => '𐲆',
+  '𐳇' => '𐲇',
+  '𐳈' => '𐲈',
+  '𐳉' => '𐲉',
+  '𐳊' => '𐲊',
+  '𐳋' => '𐲋',
+  '𐳌' => '𐲌',
+  '𐳍' => '𐲍',
+  '𐳎' => '𐲎',
+  '𐳏' => '𐲏',
+  '𐳐' => '𐲐',
+  '𐳑' => '𐲑',
+  '𐳒' => '𐲒',
+  '𐳓' => '𐲓',
+  '𐳔' => '𐲔',
+  '𐳕' => '𐲕',
+  '𐳖' => '𐲖',
+  '𐳗' => '𐲗',
+  '𐳘' => '𐲘',
+  '𐳙' => '𐲙',
+  '𐳚' => '𐲚',
+  '𐳛' => '𐲛',
+  '𐳜' => '𐲜',
+  '𐳝' => '𐲝',
+  '𐳞' => '𐲞',
+  '𐳟' => '𐲟',
+  '𐳠' => '𐲠',
+  '𐳡' => '𐲡',
+  '𐳢' => '𐲢',
+  '𐳣' => '𐲣',
+  '𐳤' => '𐲤',
+  '𐳥' => '𐲥',
+  '𐳦' => '𐲦',
+  '𐳧' => '𐲧',
+  '𐳨' => '𐲨',
+  '𐳩' => '𐲩',
+  '𐳪' => '𐲪',
+  '𐳫' => '𐲫',
+  '𐳬' => '𐲬',
+  '𐳭' => '𐲭',
+  '𐳮' => '𐲮',
+  '𐳯' => '𐲯',
+  '𐳰' => '𐲰',
+  '𐳱' => '𐲱',
+  '𐳲' => '𐲲',
+  '𑣀' => '𑢠',
+  '𑣁' => '𑢡',
+  '𑣂' => '𑢢',
+  '𑣃' => '𑢣',
+  '𑣄' => '𑢤',
+  '𑣅' => '𑢥',
+  '𑣆' => '𑢦',
+  '𑣇' => '𑢧',
+  '𑣈' => '𑢨',
+  '𑣉' => '𑢩',
+  '𑣊' => '𑢪',
+  '𑣋' => '𑢫',
+  '𑣌' => '𑢬',
+  '𑣍' => '𑢭',
+  '𑣎' => '𑢮',
+  '𑣏' => '𑢯',
+  '𑣐' => '𑢰',
+  '𑣑' => '𑢱',
+  '𑣒' => '𑢲',
+  '𑣓' => '𑢳',
+  '𑣔' => '𑢴',
+  '𑣕' => '𑢵',
+  '𑣖' => '𑢶',
+  '𑣗' => '𑢷',
+  '𑣘' => '𑢸',
+  '𑣙' => '𑢹',
+  '𑣚' => '𑢺',
+  '𑣛' => '𑢻',
+  '𑣜' => '𑢼',
+  '𑣝' => '𑢽',
+  '𑣞' => '𑢾',
+  '𑣟' => '𑢿',
+  '𖹠' => '𖹀',
+  '𖹡' => '𖹁',
+  '𖹢' => '𖹂',
+  '𖹣' => '𖹃',
+  '𖹤' => '𖹄',
+  '𖹥' => '𖹅',
+  '𖹦' => '𖹆',
+  '𖹧' => '𖹇',
+  '𖹨' => '𖹈',
+  '𖹩' => '𖹉',
+  '𖹪' => '𖹊',
+  '𖹫' => '𖹋',
+  '𖹬' => '𖹌',
+  '𖹭' => '𖹍',
+  '𖹮' => '𖹎',
+  '𖹯' => '𖹏',
+  '𖹰' => '𖹐',
+  '𖹱' => '𖹑',
+  '𖹲' => '𖹒',
+  '𖹳' => '𖹓',
+  '𖹴' => '𖹔',
+  '𖹵' => '𖹕',
+  '𖹶' => '𖹖',
+  '𖹷' => '𖹗',
+  '𖹸' => '𖹘',
+  '𖹹' => '𖹙',
+  '𖹺' => '𖹚',
+  '𖹻' => '𖹛',
+  '𖹼' => '𖹜',
+  '𖹽' => '𖹝',
+  '𖹾' => '𖹞',
+  '𖹿' => '𖹟',
+  '𞤢' => '𞤀',
+  '𞤣' => '𞤁',
+  '𞤤' => '𞤂',
+  '𞤥' => '𞤃',
+  '𞤦' => '𞤄',
+  '𞤧' => '𞤅',
+  '𞤨' => '𞤆',
+  '𞤩' => '𞤇',
+  '𞤪' => '𞤈',
+  '𞤫' => '𞤉',
+  '𞤬' => '𞤊',
+  '𞤭' => '𞤋',
+  '𞤮' => '𞤌',
+  '𞤯' => '𞤍',
+  '𞤰' => '𞤎',
+  '𞤱' => '𞤏',
+  '𞤲' => '𞤐',
+  '𞤳' => '𞤑',
+  '𞤴' => '𞤒',
+  '𞤵' => '𞤓',
+  '𞤶' => '𞤔',
+  '𞤷' => '𞤕',
+  '𞤸' => '𞤖',
+  '𞤹' => '𞤗',
+  '𞤺' => '𞤘',
+  '𞤻' => '𞤙',
+  '𞤼' => '𞤚',
+  '𞤽' => '𞤛',
+  '𞤾' => '𞤜',
+  '𞤿' => '𞤝',
+  '𞥀' => '𞤞',
+  '𞥁' => '𞤟',
+  '𞥂' => '𞤠',
+  '𞥃' => '𞤡',
+  'ß' => 'SS',
+  'ff' => 'FF',
+  'fi' => 'FI',
+  'fl' => 'FL',
+  'ffi' => 'FFI',
+  'ffl' => 'FFL',
+  'ſt' => 'ST',
+  'st' => 'ST',
+  'և' => 'ԵՒ',
+  'ﬓ' => 'ՄՆ',
+  'ﬔ' => 'ՄԵ',
+  'ﬕ' => 'ՄԻ',
+  'ﬖ' => 'ՎՆ',
+  'ﬗ' => 'ՄԽ',
+  'ʼn' => 'ʼN',
+  'ΐ' => 'Ϊ́',
+  'ΰ' => 'Ϋ́',
+  'ǰ' => 'J̌',
+  'ẖ' => 'H̱',
+  'ẗ' => 'T̈',
+  'ẘ' => 'W̊',
+  'ẙ' => 'Y̊',
+  'ẚ' => 'Aʾ',
+  'ὐ' => 'Υ̓',
+  'ὒ' => 'Υ̓̀',
+  'ὔ' => 'Υ̓́',
+  'ὖ' => 'Υ̓͂',
+  'ᾶ' => 'Α͂',
+  'ῆ' => 'Η͂',
+  'ῒ' => 'Ϊ̀',
+  'ΐ' => 'Ϊ́',
+  'ῖ' => 'Ι͂',
+  'ῗ' => 'Ϊ͂',
+  'ῢ' => 'Ϋ̀',
+  'ΰ' => 'Ϋ́',
+  'ῤ' => 'Ρ̓',
+  'ῦ' => 'Υ͂',
+  'ῧ' => 'Ϋ͂',
+  'ῶ' => 'Ω͂',
+  'ᾈ' => 'ἈΙ',
+  'ᾉ' => 'ἉΙ',
+  'ᾊ' => 'ἊΙ',
+  'ᾋ' => 'ἋΙ',
+  'ᾌ' => 'ἌΙ',
+  'ᾍ' => 'ἍΙ',
+  'ᾎ' => 'ἎΙ',
+  'ᾏ' => 'ἏΙ',
+  'ᾘ' => 'ἨΙ',
+  'ᾙ' => 'ἩΙ',
+  'ᾚ' => 'ἪΙ',
+  'ᾛ' => 'ἫΙ',
+  'ᾜ' => 'ἬΙ',
+  'ᾝ' => 'ἭΙ',
+  'ᾞ' => 'ἮΙ',
+  'ᾟ' => 'ἯΙ',
+  'ᾨ' => 'ὨΙ',
+  'ᾩ' => 'ὩΙ',
+  'ᾪ' => 'ὪΙ',
+  'ᾫ' => 'ὫΙ',
+  'ᾬ' => 'ὬΙ',
+  'ᾭ' => 'ὭΙ',
+  'ᾮ' => 'ὮΙ',
+  'ᾯ' => 'ὯΙ',
+  'ᾼ' => 'ΑΙ',
+  'ῌ' => 'ΗΙ',
+  'ῼ' => 'ΩΙ',
+  'ᾲ' => 'ᾺΙ',
+  'ᾴ' => 'ΆΙ',
+  'ῂ' => 'ῊΙ',
+  'ῄ' => 'ΉΙ',
+  'ῲ' => 'ῺΙ',
+  'ῴ' => 'ΏΙ',
+  'ᾷ' => 'Α͂Ι',
+  'ῇ' => 'Η͂Ι',
+  'ῷ' => 'Ω͂Ι',
+);
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/bootstrap.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/bootstrap.php
new file mode 100644
index 0000000..1fedd1f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/bootstrap.php
@@ -0,0 +1,147 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+use Symfony\Polyfill\Mbstring as p;
+
+if (\PHP_VERSION_ID >= 80000) {
+    return require __DIR__.'/bootstrap80.php';
+}
+
+if (!function_exists('mb_convert_encoding')) {
+    function mb_convert_encoding($string, $to_encoding, $from_encoding = null) { return p\Mbstring::mb_convert_encoding($string, $to_encoding, $from_encoding); }
+}
+if (!function_exists('mb_decode_mimeheader')) {
+    function mb_decode_mimeheader($string) { return p\Mbstring::mb_decode_mimeheader($string); }
+}
+if (!function_exists('mb_encode_mimeheader')) {
+    function mb_encode_mimeheader($string, $charset = null, $transfer_encoding = null, $newline = "\r\n", $indent = 0) { return p\Mbstring::mb_encode_mimeheader($string, $charset, $transfer_encoding, $newline, $indent); }
+}
+if (!function_exists('mb_decode_numericentity')) {
+    function mb_decode_numericentity($string, $map, $encoding = null) { return p\Mbstring::mb_decode_numericentity($string, $map, $encoding); }
+}
+if (!function_exists('mb_encode_numericentity')) {
+    function mb_encode_numericentity($string, $map, $encoding = null, $hex = false) { return p\Mbstring::mb_encode_numericentity($string, $map, $encoding, $hex); }
+}
+if (!function_exists('mb_convert_case')) {
+    function mb_convert_case($string, $mode, $encoding = null) { return p\Mbstring::mb_convert_case($string, $mode, $encoding); }
+}
+if (!function_exists('mb_internal_encoding')) {
+    function mb_internal_encoding($encoding = null) { return p\Mbstring::mb_internal_encoding($encoding); }
+}
+if (!function_exists('mb_language')) {
+    function mb_language($language = null) { return p\Mbstring::mb_language($language); }
+}
+if (!function_exists('mb_list_encodings')) {
+    function mb_list_encodings() { return p\Mbstring::mb_list_encodings(); }
+}
+if (!function_exists('mb_encoding_aliases')) {
+    function mb_encoding_aliases($encoding) { return p\Mbstring::mb_encoding_aliases($encoding); }
+}
+if (!function_exists('mb_check_encoding')) {
+    function mb_check_encoding($value = null, $encoding = null) { return p\Mbstring::mb_check_encoding($value, $encoding); }
+}
+if (!function_exists('mb_detect_encoding')) {
+    function mb_detect_encoding($string, $encodings = null, $strict = false) { return p\Mbstring::mb_detect_encoding($string, $encodings, $strict); }
+}
+if (!function_exists('mb_detect_order')) {
+    function mb_detect_order($encoding = null) { return p\Mbstring::mb_detect_order($encoding); }
+}
+if (!function_exists('mb_parse_str')) {
+    function mb_parse_str($string, &$result = []) { parse_str($string, $result); return (bool) $result; }
+}
+if (!function_exists('mb_strlen')) {
+    function mb_strlen($string, $encoding = null) { return p\Mbstring::mb_strlen($string, $encoding); }
+}
+if (!function_exists('mb_strpos')) {
+    function mb_strpos($haystack, $needle, $offset = 0, $encoding = null) { return p\Mbstring::mb_strpos($haystack, $needle, $offset, $encoding); }
+}
+if (!function_exists('mb_strtolower')) {
+    function mb_strtolower($string, $encoding = null) { return p\Mbstring::mb_strtolower($string, $encoding); }
+}
+if (!function_exists('mb_strtoupper')) {
+    function mb_strtoupper($string, $encoding = null) { return p\Mbstring::mb_strtoupper($string, $encoding); }
+}
+if (!function_exists('mb_substitute_character')) {
+    function mb_substitute_character($substitute_character = null) { return p\Mbstring::mb_substitute_character($substitute_character); }
+}
+if (!function_exists('mb_substr')) {
+    function mb_substr($string, $start, $length = 2147483647, $encoding = null) { return p\Mbstring::mb_substr($string, $start, $length, $encoding); }
+}
+if (!function_exists('mb_stripos')) {
+    function mb_stripos($haystack, $needle, $offset = 0, $encoding = null) { return p\Mbstring::mb_stripos($haystack, $needle, $offset, $encoding); }
+}
+if (!function_exists('mb_stristr')) {
+    function mb_stristr($haystack, $needle, $before_needle = false, $encoding = null) { return p\Mbstring::mb_stristr($haystack, $needle, $before_needle, $encoding); }
+}
+if (!function_exists('mb_strrchr')) {
+    function mb_strrchr($haystack, $needle, $before_needle = false, $encoding = null) { return p\Mbstring::mb_strrchr($haystack, $needle, $before_needle, $encoding); }
+}
+if (!function_exists('mb_strrichr')) {
+    function mb_strrichr($haystack, $needle, $before_needle = false, $encoding = null) { return p\Mbstring::mb_strrichr($haystack, $needle, $before_needle, $encoding); }
+}
+if (!function_exists('mb_strripos')) {
+    function mb_strripos($haystack, $needle, $offset = 0, $encoding = null) { return p\Mbstring::mb_strripos($haystack, $needle, $offset, $encoding); }
+}
+if (!function_exists('mb_strrpos')) {
+    function mb_strrpos($haystack, $needle, $offset = 0, $encoding = null) { return p\Mbstring::mb_strrpos($haystack, $needle, $offset, $encoding); }
+}
+if (!function_exists('mb_strstr')) {
+    function mb_strstr($haystack, $needle, $before_needle = false, $encoding = null) { return p\Mbstring::mb_strstr($haystack, $needle, $before_needle, $encoding); }
+}
+if (!function_exists('mb_get_info')) {
+    function mb_get_info($type = 'all') { return p\Mbstring::mb_get_info($type); }
+}
+if (!function_exists('mb_http_output')) {
+    function mb_http_output($encoding = null) { return p\Mbstring::mb_http_output($encoding); }
+}
+if (!function_exists('mb_strwidth')) {
+    function mb_strwidth($string, $encoding = null) { return p\Mbstring::mb_strwidth($string, $encoding); }
+}
+if (!function_exists('mb_substr_count')) {
+    function mb_substr_count($haystack, $needle, $encoding = null) { return p\Mbstring::mb_substr_count($haystack, $needle, $encoding); }
+}
+if (!function_exists('mb_output_handler')) {
+    function mb_output_handler($string, $status) { return p\Mbstring::mb_output_handler($string, $status); }
+}
+if (!function_exists('mb_http_input')) {
+    function mb_http_input($type = null) { return p\Mbstring::mb_http_input($type); }
+}
+
+if (!function_exists('mb_convert_variables')) {
+    function mb_convert_variables($to_encoding, $from_encoding, &...$vars) { return p\Mbstring::mb_convert_variables($to_encoding, $from_encoding, ...$vars); }
+}
+
+if (!function_exists('mb_ord')) {
+    function mb_ord($string, $encoding = null) { return p\Mbstring::mb_ord($string, $encoding); }
+}
+if (!function_exists('mb_chr')) {
+    function mb_chr($codepoint, $encoding = null) { return p\Mbstring::mb_chr($codepoint, $encoding); }
+}
+if (!function_exists('mb_scrub')) {
+    function mb_scrub($string, $encoding = null) { $encoding = null === $encoding ? mb_internal_encoding() : $encoding; return mb_convert_encoding($string, $encoding, $encoding); }
+}
+if (!function_exists('mb_str_split')) {
+    function mb_str_split($string, $length = 1, $encoding = null) { return p\Mbstring::mb_str_split($string, $length, $encoding); }
+}
+
+if (extension_loaded('mbstring')) {
+    return;
+}
+
+if (!defined('MB_CASE_UPPER')) {
+    define('MB_CASE_UPPER', 0);
+}
+if (!defined('MB_CASE_LOWER')) {
+    define('MB_CASE_LOWER', 1);
+}
+if (!defined('MB_CASE_TITLE')) {
+    define('MB_CASE_TITLE', 2);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/bootstrap80.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/bootstrap80.php
new file mode 100644
index 0000000..82f5ac4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/bootstrap80.php
@@ -0,0 +1,143 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+use Symfony\Polyfill\Mbstring as p;
+
+if (!function_exists('mb_convert_encoding')) {
+    function mb_convert_encoding(array|string|null $string, ?string $to_encoding, array|string|null $from_encoding = null): array|string|false { return p\Mbstring::mb_convert_encoding($string ?? '', (string) $to_encoding, $from_encoding); }
+}
+if (!function_exists('mb_decode_mimeheader')) {
+    function mb_decode_mimeheader(?string $string): string { return p\Mbstring::mb_decode_mimeheader((string) $string); }
+}
+if (!function_exists('mb_encode_mimeheader')) {
+    function mb_encode_mimeheader(?string $string, ?string $charset = null, ?string $transfer_encoding = null, ?string $newline = "\r\n", ?int $indent = 0): string { return p\Mbstring::mb_encode_mimeheader((string) $string, $charset, $transfer_encoding, (string) $newline, (int) $indent); }
+}
+if (!function_exists('mb_decode_numericentity')) {
+    function mb_decode_numericentity(?string $string, array $map, ?string $encoding = null): string { return p\Mbstring::mb_decode_numericentity((string) $string, $map, $encoding); }
+}
+if (!function_exists('mb_encode_numericentity')) {
+    function mb_encode_numericentity(?string $string, array $map, ?string $encoding = null, ?bool $hex = false): string { return p\Mbstring::mb_encode_numericentity((string) $string, $map, $encoding, (bool) $hex); }
+}
+if (!function_exists('mb_convert_case')) {
+    function mb_convert_case(?string $string, ?int $mode, ?string $encoding = null): string { return p\Mbstring::mb_convert_case((string) $string, (int) $mode, $encoding); }
+}
+if (!function_exists('mb_internal_encoding')) {
+    function mb_internal_encoding(?string $encoding = null): string|bool { return p\Mbstring::mb_internal_encoding($encoding); }
+}
+if (!function_exists('mb_language')) {
+    function mb_language(?string $language = null): string|bool { return p\Mbstring::mb_language($language); }
+}
+if (!function_exists('mb_list_encodings')) {
+    function mb_list_encodings(): array { return p\Mbstring::mb_list_encodings(); }
+}
+if (!function_exists('mb_encoding_aliases')) {
+    function mb_encoding_aliases(?string $encoding): array { return p\Mbstring::mb_encoding_aliases((string) $encoding); }
+}
+if (!function_exists('mb_check_encoding')) {
+    function mb_check_encoding(array|string|null $value = null, ?string $encoding = null): bool { return p\Mbstring::mb_check_encoding($value, $encoding); }
+}
+if (!function_exists('mb_detect_encoding')) {
+    function mb_detect_encoding(?string $string, array|string|null $encodings = null, ?bool $strict = false): string|false { return p\Mbstring::mb_detect_encoding((string) $string, $encodings, (bool) $strict); }
+}
+if (!function_exists('mb_detect_order')) {
+    function mb_detect_order(array|string|null $encoding = null): array|bool { return p\Mbstring::mb_detect_order($encoding); }
+}
+if (!function_exists('mb_parse_str')) {
+    function mb_parse_str(?string $string, &$result = []): bool { parse_str((string) $string, $result); return (bool) $result; }
+}
+if (!function_exists('mb_strlen')) {
+    function mb_strlen(?string $string, ?string $encoding = null): int { return p\Mbstring::mb_strlen((string) $string, $encoding); }
+}
+if (!function_exists('mb_strpos')) {
+    function mb_strpos(?string $haystack, ?string $needle, ?int $offset = 0, ?string $encoding = null): int|false { return p\Mbstring::mb_strpos((string) $haystack, (string) $needle, (int) $offset, $encoding); }
+}
+if (!function_exists('mb_strtolower')) {
+    function mb_strtolower(?string $string, ?string $encoding = null): string { return p\Mbstring::mb_strtolower((string) $string, $encoding); }
+}
+if (!function_exists('mb_strtoupper')) {
+    function mb_strtoupper(?string $string, ?string $encoding = null): string { return p\Mbstring::mb_strtoupper((string) $string, $encoding); }
+}
+if (!function_exists('mb_substitute_character')) {
+    function mb_substitute_character(string|int|null $substitute_character = null): string|int|bool { return p\Mbstring::mb_substitute_character($substitute_character); }
+}
+if (!function_exists('mb_substr')) {
+    function mb_substr(?string $string, ?int $start, ?int $length = null, ?string $encoding = null): string { return p\Mbstring::mb_substr((string) $string, (int) $start, $length, $encoding); }
+}
+if (!function_exists('mb_stripos')) {
+    function mb_stripos(?string $haystack, ?string $needle, ?int $offset = 0, ?string $encoding = null): int|false { return p\Mbstring::mb_stripos((string) $haystack, (string) $needle, (int) $offset, $encoding); }
+}
+if (!function_exists('mb_stristr')) {
+    function mb_stristr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_stristr((string) $haystack, (string) $needle, (bool) $before_needle, $encoding); }
+}
+if (!function_exists('mb_strrchr')) {
+    function mb_strrchr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_strrchr((string) $haystack, (string) $needle, (bool) $before_needle, $encoding); }
+}
+if (!function_exists('mb_strrichr')) {
+    function mb_strrichr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_strrichr((string) $haystack, (string) $needle, (bool) $before_needle, $encoding); }
+}
+if (!function_exists('mb_strripos')) {
+    function mb_strripos(?string $haystack, ?string $needle, ?int $offset = 0, ?string $encoding = null): int|false { return p\Mbstring::mb_strripos((string) $haystack, (string) $needle, (int) $offset, $encoding); }
+}
+if (!function_exists('mb_strrpos')) {
+    function mb_strrpos(?string $haystack, ?string $needle, ?int $offset = 0, ?string $encoding = null): int|false { return p\Mbstring::mb_strrpos((string) $haystack, (string) $needle, (int) $offset, $encoding); }
+}
+if (!function_exists('mb_strstr')) {
+    function mb_strstr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_strstr((string) $haystack, (string) $needle, (bool) $before_needle, $encoding); }
+}
+if (!function_exists('mb_get_info')) {
+    function mb_get_info(?string $type = 'all'): array|string|int|false { return p\Mbstring::mb_get_info((string) $type); }
+}
+if (!function_exists('mb_http_output')) {
+    function mb_http_output(?string $encoding = null): string|bool { return p\Mbstring::mb_http_output($encoding); }
+}
+if (!function_exists('mb_strwidth')) {
+    function mb_strwidth(?string $string, ?string $encoding = null): int { return p\Mbstring::mb_strwidth((string) $string, $encoding); }
+}
+if (!function_exists('mb_substr_count')) {
+    function mb_substr_count(?string $haystack, ?string $needle, ?string $encoding = null): int { return p\Mbstring::mb_substr_count((string) $haystack, (string) $needle, $encoding); }
+}
+if (!function_exists('mb_output_handler')) {
+    function mb_output_handler(?string $string, ?int $status): string { return p\Mbstring::mb_output_handler((string) $string, (int) $status); }
+}
+if (!function_exists('mb_http_input')) {
+    function mb_http_input(?string $type = null): array|string|false { return p\Mbstring::mb_http_input($type); }
+}
+
+if (!function_exists('mb_convert_variables')) {
+    function mb_convert_variables(?string $to_encoding, array|string|null $from_encoding, mixed &$var, mixed &...$vars): string|false { return p\Mbstring::mb_convert_variables((string) $to_encoding, $from_encoding ?? '', $var, ...$vars); }
+}
+
+if (!function_exists('mb_ord')) {
+    function mb_ord(?string $string, ?string $encoding = null): int|false { return p\Mbstring::mb_ord((string) $string, $encoding); }
+}
+if (!function_exists('mb_chr')) {
+    function mb_chr(?int $codepoint, ?string $encoding = null): string|false { return p\Mbstring::mb_chr((int) $codepoint, $encoding); }
+}
+if (!function_exists('mb_scrub')) {
+    function mb_scrub(?string $string, ?string $encoding = null): string { $encoding ??= mb_internal_encoding(); return mb_convert_encoding((string) $string, $encoding, $encoding); }
+}
+if (!function_exists('mb_str_split')) {
+    function mb_str_split(?string $string, ?int $length = 1, ?string $encoding = null): array { return p\Mbstring::mb_str_split((string) $string, (int) $length, $encoding); }
+}
+
+if (extension_loaded('mbstring')) {
+    return;
+}
+
+if (!defined('MB_CASE_UPPER')) {
+    define('MB_CASE_UPPER', 0);
+}
+if (!defined('MB_CASE_LOWER')) {
+    define('MB_CASE_LOWER', 1);
+}
+if (!defined('MB_CASE_TITLE')) {
+    define('MB_CASE_TITLE', 2);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/composer.json b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/composer.json
new file mode 100644
index 0000000..2ed7a74
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-mbstring/composer.json
@@ -0,0 +1,38 @@
+{
+    "name": "symfony/polyfill-mbstring",
+    "type": "library",
+    "description": "Symfony polyfill for the Mbstring extension",
+    "keywords": ["polyfill", "shim", "compatibility", "portable", "mbstring"],
+    "homepage": "https://symfony.com",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Nicolas Grekas",
+            "email": "p@tchwork.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "https://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=7.1"
+    },
+    "autoload": {
+        "psr-4": { "Symfony\\Polyfill\\Mbstring\\": "" },
+        "files": [ "bootstrap.php" ]
+    },
+    "suggest": {
+        "ext-mbstring": "For best performance"
+    },
+    "minimum-stability": "dev",
+    "extra": {
+        "branch-alias": {
+            "dev-main": "1.23-dev"
+        },
+        "thanks": {
+            "name": "symfony/polyfill",
+            "url": "https://github.com/symfony/polyfill"
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/LICENSE b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/LICENSE
new file mode 100644
index 0000000..5593b1d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2020 Fabien Potencier
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/Php80.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/Php80.php
new file mode 100644
index 0000000..5fef511
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/Php80.php
@@ -0,0 +1,105 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Polyfill\Php80;
+
+/**
+ * @author Ion Bazan <ion.bazan@gmail.com>
+ * @author Nico Oelgart <nicoswd@gmail.com>
+ * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @internal
+ */
+final class Php80
+{
+    public static function fdiv(float $dividend, float $divisor): float
+    {
+        return @($dividend / $divisor);
+    }
+
+    public static function get_debug_type($value): string
+    {
+        switch (true) {
+            case null === $value: return 'null';
+            case \is_bool($value): return 'bool';
+            case \is_string($value): return 'string';
+            case \is_array($value): return 'array';
+            case \is_int($value): return 'int';
+            case \is_float($value): return 'float';
+            case \is_object($value): break;
+            case $value instanceof \__PHP_Incomplete_Class: return '__PHP_Incomplete_Class';
+            default:
+                if (null === $type = @get_resource_type($value)) {
+                    return 'unknown';
+                }
+
+                if ('Unknown' === $type) {
+                    $type = 'closed';
+                }
+
+                return "resource ($type)";
+        }
+
+        $class = \get_class($value);
+
+        if (false === strpos($class, '@')) {
+            return $class;
+        }
+
+        return (get_parent_class($class) ?: key(class_implements($class)) ?: 'class').'@anonymous';
+    }
+
+    public static function get_resource_id($res): int
+    {
+        if (!\is_resource($res) && null === @get_resource_type($res)) {
+            throw new \TypeError(sprintf('Argument 1 passed to get_resource_id() must be of the type resource, %s given', get_debug_type($res)));
+        }
+
+        return (int) $res;
+    }
+
+    public static function preg_last_error_msg(): string
+    {
+        switch (preg_last_error()) {
+            case \PREG_INTERNAL_ERROR:
+                return 'Internal error';
+            case \PREG_BAD_UTF8_ERROR:
+                return 'Malformed UTF-8 characters, possibly incorrectly encoded';
+            case \PREG_BAD_UTF8_OFFSET_ERROR:
+                return 'The offset did not correspond to the beginning of a valid UTF-8 code point';
+            case \PREG_BACKTRACK_LIMIT_ERROR:
+                return 'Backtrack limit exhausted';
+            case \PREG_RECURSION_LIMIT_ERROR:
+                return 'Recursion limit exhausted';
+            case \PREG_JIT_STACKLIMIT_ERROR:
+                return 'JIT stack limit exhausted';
+            case \PREG_NO_ERROR:
+                return 'No error';
+            default:
+                return 'Unknown error';
+        }
+    }
+
+    public static function str_contains(string $haystack, string $needle): bool
+    {
+        return '' === $needle || false !== strpos($haystack, $needle);
+    }
+
+    public static function str_starts_with(string $haystack, string $needle): bool
+    {
+        return 0 === strncmp($haystack, $needle, \strlen($needle));
+    }
+
+    public static function str_ends_with(string $haystack, string $needle): bool
+    {
+        return '' === $needle || ('' !== $haystack && 0 === substr_compare($haystack, $needle, -\strlen($needle)));
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/README.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/README.md
new file mode 100644
index 0000000..10b8ee4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/README.md
@@ -0,0 +1,24 @@
+Symfony Polyfill / Php80
+========================
+
+This component provides features added to PHP 8.0 core:
+
+- `Stringable` interface
+- [`fdiv`](https://php.net/fdiv)
+- `ValueError` class
+- `UnhandledMatchError` class
+- `FILTER_VALIDATE_BOOL` constant
+- [`get_debug_type`](https://php.net/get_debug_type)
+- [`preg_last_error_msg`](https://php.net/preg_last_error_msg)
+- [`str_contains`](https://php.net/str_contains)
+- [`str_starts_with`](https://php.net/str_starts_with)
+- [`str_ends_with`](https://php.net/str_ends_with)
+- [`get_resource_id`](https://php.net/get_resource_id)
+
+More information can be found in the
+[main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md).
+
+License
+=======
+
+This library is released under the [MIT license](LICENSE).
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php
new file mode 100644
index 0000000..7ea6d27
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php
@@ -0,0 +1,22 @@
+<?php
+
+#[Attribute(Attribute::TARGET_CLASS)]
+final class Attribute
+{
+    public const TARGET_CLASS = 1;
+    public const TARGET_FUNCTION = 2;
+    public const TARGET_METHOD = 4;
+    public const TARGET_PROPERTY = 8;
+    public const TARGET_CLASS_CONSTANT = 16;
+    public const TARGET_PARAMETER = 32;
+    public const TARGET_ALL = 63;
+    public const IS_REPEATABLE = 64;
+
+    /** @var int */
+    public $flags;
+
+    public function __construct(int $flags = self::TARGET_ALL)
+    {
+        $this->flags = $flags;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php
new file mode 100644
index 0000000..77e037c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php
@@ -0,0 +1,11 @@
+<?php
+
+if (\PHP_VERSION_ID < 80000) {
+    interface Stringable
+    {
+        /**
+         * @return string
+         */
+        public function __toString();
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php
new file mode 100644
index 0000000..7fb2000
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php
@@ -0,0 +1,5 @@
+<?php
+
+class UnhandledMatchError extends Error
+{
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php
new file mode 100644
index 0000000..99843ca
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php
@@ -0,0 +1,5 @@
+<?php
+
+class ValueError extends Error
+{
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/bootstrap.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/bootstrap.php
new file mode 100644
index 0000000..e5f7dbc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/bootstrap.php
@@ -0,0 +1,42 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+use Symfony\Polyfill\Php80 as p;
+
+if (\PHP_VERSION_ID >= 80000) {
+    return;
+}
+
+if (!defined('FILTER_VALIDATE_BOOL') && defined('FILTER_VALIDATE_BOOLEAN')) {
+    define('FILTER_VALIDATE_BOOL', \FILTER_VALIDATE_BOOLEAN);
+}
+
+if (!function_exists('fdiv')) {
+    function fdiv(float $num1, float $num2): float { return p\Php80::fdiv($num1, $num2); }
+}
+if (!function_exists('preg_last_error_msg')) {
+    function preg_last_error_msg(): string { return p\Php80::preg_last_error_msg(); }
+}
+if (!function_exists('str_contains')) {
+    function str_contains(?string $haystack, ?string $needle): bool { return p\Php80::str_contains($haystack ?? '', $needle ?? ''); }
+}
+if (!function_exists('str_starts_with')) {
+    function str_starts_with(?string $haystack, ?string $needle): bool { return p\Php80::str_starts_with($haystack ?? '', $needle ?? ''); }
+}
+if (!function_exists('str_ends_with')) {
+    function str_ends_with(?string $haystack, ?string $needle): bool { return p\Php80::str_ends_with($haystack ?? '', $needle ?? ''); }
+}
+if (!function_exists('get_debug_type')) {
+    function get_debug_type($value): string { return p\Php80::get_debug_type($value); }
+}
+if (!function_exists('get_resource_id')) {
+    function get_resource_id($resource): int { return p\Php80::get_resource_id($resource); }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/composer.json b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/composer.json
new file mode 100644
index 0000000..5fe679d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/polyfill-php80/composer.json
@@ -0,0 +1,40 @@
+{
+    "name": "symfony/polyfill-php80",
+    "type": "library",
+    "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+    "keywords": ["polyfill", "shim", "compatibility", "portable"],
+    "homepage": "https://symfony.com",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Ion Bazan",
+            "email": "ion.bazan@gmail.com"
+        },
+        {
+            "name": "Nicolas Grekas",
+            "email": "p@tchwork.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "https://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=7.1"
+    },
+    "autoload": {
+        "psr-4": { "Symfony\\Polyfill\\Php80\\": "" },
+        "files": [ "bootstrap.php" ],
+        "classmap": [ "Resources/stubs" ]
+    },
+    "minimum-stability": "dev",
+    "extra": {
+        "branch-alias": {
+            "dev-main": "1.23-dev"
+        },
+        "thanks": {
+            "name": "symfony/polyfill",
+            "url": "https://github.com/symfony/polyfill"
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/.gitignore b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/.gitignore
new file mode 100644
index 0000000..c49a5d8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/.gitignore
@@ -0,0 +1,3 @@
+vendor/
+composer.lock
+phpunit.xml
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/CHANGELOG.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/CHANGELOG.md
new file mode 100644
index 0000000..7932e26
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/CHANGELOG.md
@@ -0,0 +1,5 @@
+CHANGELOG
+=========
+
+The changelog is maintained for all Symfony contracts at the following URL:
+https://github.com/symfony/contracts/blob/main/CHANGELOG.md
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/LICENSE b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/LICENSE
new file mode 100644
index 0000000..2358414
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2018-2021 Fabien Potencier
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/LocaleAwareInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/LocaleAwareInterface.php
new file mode 100644
index 0000000..922ec1d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/LocaleAwareInterface.php
@@ -0,0 +1,31 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Contracts\Translation;
+
+interface LocaleAwareInterface
+{
+    /**
+     * Sets the current locale.
+     *
+     * @param string $locale The locale
+     *
+     * @throws \InvalidArgumentException If the locale contains invalid characters
+     */
+    public function setLocale(string $locale);
+
+    /**
+     * Returns the current locale.
+     *
+     * @return string The locale
+     */
+    public function getLocale();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/README.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/README.md
new file mode 100644
index 0000000..42e5c51
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/README.md
@@ -0,0 +1,9 @@
+Symfony Translation Contracts
+=============================
+
+A set of abstractions extracted out of the Symfony components.
+
+Can be used to build on semantics that the Symfony components proved useful - and
+that already have battle tested implementations.
+
+See https://github.com/symfony/contracts/blob/main/README.md for more information.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/Test/TranslatorTest.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/Test/TranslatorTest.php
new file mode 100644
index 0000000..aac9d68
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/Test/TranslatorTest.php
@@ -0,0 +1,367 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Contracts\Translation\Test;
+
+use PHPUnit\Framework\TestCase;
+use Symfony\Contracts\Translation\TranslatorInterface;
+use Symfony\Contracts\Translation\TranslatorTrait;
+
+/**
+ * Test should cover all languages mentioned on http://translate.sourceforge.net/wiki/l10n/pluralforms
+ * and Plural forms mentioned on http://www.gnu.org/software/gettext/manual/gettext.html#Plural-forms.
+ *
+ * See also https://developer.mozilla.org/en/Localization_and_Plurals which mentions 15 rules having a maximum of 6 forms.
+ * The mozilla code is also interesting to check for.
+ *
+ * As mentioned by chx http://drupal.org/node/1273968 we can cover all by testing number from 0 to 199
+ *
+ * The goal to cover all languages is to far fetched so this test case is smaller.
+ *
+ * @author Clemens Tolboom clemens@build2be.nl
+ */
+class TranslatorTest extends TestCase
+{
+    public function getTranslator()
+    {
+        return new class() implements TranslatorInterface {
+            use TranslatorTrait;
+        };
+    }
+
+    /**
+     * @dataProvider getTransTests
+     */
+    public function testTrans($expected, $id, $parameters)
+    {
+        $translator = $this->getTranslator();
+
+        $this->assertEquals($expected, $translator->trans($id, $parameters));
+    }
+
+    /**
+     * @dataProvider getTransChoiceTests
+     */
+    public function testTransChoiceWithExplicitLocale($expected, $id, $number)
+    {
+        $translator = $this->getTranslator();
+        $translator->setLocale('en');
+
+        $this->assertEquals($expected, $translator->trans($id, ['%count%' => $number]));
+    }
+
+    /**
+     * @requires extension intl
+     *
+     * @dataProvider getTransChoiceTests
+     */
+    public function testTransChoiceWithDefaultLocale($expected, $id, $number)
+    {
+        \Locale::setDefault('en');
+
+        $translator = $this->getTranslator();
+
+        $this->assertEquals($expected, $translator->trans($id, ['%count%' => $number]));
+    }
+
+    public function testGetSetLocale()
+    {
+        $translator = $this->getTranslator();
+        $translator->setLocale('en');
+
+        $this->assertEquals('en', $translator->getLocale());
+    }
+
+    /**
+     * @requires extension intl
+     */
+    public function testGetLocaleReturnsDefaultLocaleIfNotSet()
+    {
+        $translator = $this->getTranslator();
+
+        \Locale::setDefault('pt_BR');
+        $this->assertEquals('pt_BR', $translator->getLocale());
+
+        \Locale::setDefault('en');
+        $this->assertEquals('en', $translator->getLocale());
+    }
+
+    public function getTransTests()
+    {
+        return [
+            ['Symfony is great!', 'Symfony is great!', []],
+            ['Symfony is awesome!', 'Symfony is %what%!', ['%what%' => 'awesome']],
+        ];
+    }
+
+    public function getTransChoiceTests()
+    {
+        return [
+            ['There are no apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 0],
+            ['There is one apple', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 1],
+            ['There are 10 apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 10],
+            ['There are 0 apples', 'There is 1 apple|There are %count% apples', 0],
+            ['There is 1 apple', 'There is 1 apple|There are %count% apples', 1],
+            ['There are 10 apples', 'There is 1 apple|There are %count% apples', 10],
+            // custom validation messages may be coded with a fixed value
+            ['There are 2 apples', 'There are 2 apples', 2],
+        ];
+    }
+
+    /**
+     * @dataProvider getInternal
+     */
+    public function testInterval($expected, $number, $interval)
+    {
+        $translator = $this->getTranslator();
+
+        $this->assertEquals($expected, $translator->trans($interval.' foo|[1,Inf[ bar', ['%count%' => $number]));
+    }
+
+    public function getInternal()
+    {
+        return [
+            ['foo', 3, '{1,2, 3 ,4}'],
+            ['bar', 10, '{1,2, 3 ,4}'],
+            ['bar', 3, '[1,2]'],
+            ['foo', 1, '[1,2]'],
+            ['foo', 2, '[1,2]'],
+            ['bar', 1, ']1,2['],
+            ['bar', 2, ']1,2['],
+            ['foo', log(0), '[-Inf,2['],
+            ['foo', -log(0), '[-2,+Inf]'],
+        ];
+    }
+
+    /**
+     * @dataProvider getChooseTests
+     */
+    public function testChoose($expected, $id, $number, $locale = null)
+    {
+        $translator = $this->getTranslator();
+
+        $this->assertEquals($expected, $translator->trans($id, ['%count%' => $number], null, $locale));
+    }
+
+    public function testReturnMessageIfExactlyOneStandardRuleIsGiven()
+    {
+        $translator = $this->getTranslator();
+
+        $this->assertEquals('There are two apples', $translator->trans('There are two apples', ['%count%' => 2]));
+    }
+
+    /**
+     * @dataProvider getNonMatchingMessages
+     */
+    public function testThrowExceptionIfMatchingMessageCannotBeFound($id, $number)
+    {
+        $this->expectException(\InvalidArgumentException::class);
+        $translator = $this->getTranslator();
+
+        $translator->trans($id, ['%count%' => $number]);
+    }
+
+    public function getNonMatchingMessages()
+    {
+        return [
+            ['{0} There are no apples|{1} There is one apple', 2],
+            ['{1} There is one apple|]1,Inf] There are %count% apples', 0],
+            ['{1} There is one apple|]2,Inf] There are %count% apples', 2],
+            ['{0} There are no apples|There is one apple', 2],
+        ];
+    }
+
+    public function getChooseTests()
+    {
+        return [
+            ['There are no apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 0],
+            ['There are no apples', '{0}     There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 0],
+            ['There are no apples', '{0}There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 0],
+
+            ['There is one apple', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 1],
+
+            ['There are 10 apples', '{0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples', 10],
+            ['There are 10 apples', '{0} There are no apples|{1} There is one apple|]1,Inf]There are %count% apples', 10],
+            ['There are 10 apples', '{0} There are no apples|{1} There is one apple|]1,Inf]     There are %count% apples', 10],
+
+            ['There are 0 apples', 'There is one apple|There are %count% apples', 0],
+            ['There is one apple', 'There is one apple|There are %count% apples', 1],
+            ['There are 10 apples', 'There is one apple|There are %count% apples', 10],
+
+            ['There are 0 apples', 'one: There is one apple|more: There are %count% apples', 0],
+            ['There is one apple', 'one: There is one apple|more: There are %count% apples', 1],
+            ['There are 10 apples', 'one: There is one apple|more: There are %count% apples', 10],
+
+            ['There are no apples', '{0} There are no apples|one: There is one apple|more: There are %count% apples', 0],
+            ['There is one apple', '{0} There are no apples|one: There is one apple|more: There are %count% apples', 1],
+            ['There are 10 apples', '{0} There are no apples|one: There is one apple|more: There are %count% apples', 10],
+
+            ['', '{0}|{1} There is one apple|]1,Inf] There are %count% apples', 0],
+            ['', '{0} There are no apples|{1}|]1,Inf] There are %count% apples', 1],
+
+            // Indexed only tests which are Gettext PoFile* compatible strings.
+            ['There are 0 apples', 'There is one apple|There are %count% apples', 0],
+            ['There is one apple', 'There is one apple|There are %count% apples', 1],
+            ['There are 2 apples', 'There is one apple|There are %count% apples', 2],
+
+            // Tests for float numbers
+            ['There is almost one apple', '{0} There are no apples|]0,1[ There is almost one apple|{1} There is one apple|[1,Inf] There is more than one apple', 0.7],
+            ['There is one apple', '{0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 1],
+            ['There is more than one apple', '{0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 1.7],
+            ['There are no apples', '{0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 0],
+            ['There are no apples', '{0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 0.0],
+            ['There are no apples', '{0.0} There are no apples|]0,1[There are %count% apples|{1} There is one apple|[1,Inf] There is more than one apple', 0],
+
+            // Test texts with new-lines
+            // with double-quotes and \n in id & double-quotes and actual newlines in text
+            ["This is a text with a\n            new-line in it. Selector = 0.", '{0}This is a text with a
+            new-line in it. Selector = 0.|{1}This is a text with a
+            new-line in it. Selector = 1.|[1,Inf]This is a text with a
+            new-line in it. Selector > 1.', 0],
+            // with double-quotes and \n in id and single-quotes and actual newlines in text
+            ["This is a text with a\n            new-line in it. Selector = 1.", '{0}This is a text with a
+            new-line in it. Selector = 0.|{1}This is a text with a
+            new-line in it. Selector = 1.|[1,Inf]This is a text with a
+            new-line in it. Selector > 1.', 1],
+            ["This is a text with a\n            new-line in it. Selector > 1.", '{0}This is a text with a
+            new-line in it. Selector = 0.|{1}This is a text with a
+            new-line in it. Selector = 1.|[1,Inf]This is a text with a
+            new-line in it. Selector > 1.', 5],
+            // with double-quotes and id split accros lines
+            ['This is a text with a
+            new-line in it. Selector = 1.', '{0}This is a text with a
+            new-line in it. Selector = 0.|{1}This is a text with a
+            new-line in it. Selector = 1.|[1,Inf]This is a text with a
+            new-line in it. Selector > 1.', 1],
+            // with single-quotes and id split accros lines
+            ['This is a text with a
+            new-line in it. Selector > 1.', '{0}This is a text with a
+            new-line in it. Selector = 0.|{1}This is a text with a
+            new-line in it. Selector = 1.|[1,Inf]This is a text with a
+            new-line in it. Selector > 1.', 5],
+            // with single-quotes and \n in text
+            ['This is a text with a\nnew-line in it. Selector = 0.', '{0}This is a text with a\nnew-line in it. Selector = 0.|{1}This is a text with a\nnew-line in it. Selector = 1.|[1,Inf]This is a text with a\nnew-line in it. Selector > 1.', 0],
+            // with double-quotes and id split accros lines
+            ["This is a text with a\nnew-line in it. Selector = 1.", "{0}This is a text with a\nnew-line in it. Selector = 0.|{1}This is a text with a\nnew-line in it. Selector = 1.|[1,Inf]This is a text with a\nnew-line in it. Selector > 1.", 1],
+            // esacape pipe
+            ['This is a text with | in it. Selector = 0.', '{0}This is a text with || in it. Selector = 0.|{1}This is a text with || in it. Selector = 1.', 0],
+            // Empty plural set (2 plural forms) from a .PO file
+            ['', '|', 1],
+            // Empty plural set (3 plural forms) from a .PO file
+            ['', '||', 1],
+
+            // Floating values
+            ['1.5 liters', '%count% liter|%count% liters', 1.5],
+            ['1.5 litre', '%count% litre|%count% litres', 1.5, 'fr'],
+
+            // Negative values
+            ['-1 degree', '%count% degree|%count% degrees', -1],
+            ['-1 degré', '%count% degré|%count% degrés', -1],
+            ['-1.5 degrees', '%count% degree|%count% degrees', -1.5],
+            ['-1.5 degré', '%count% degré|%count% degrés', -1.5, 'fr'],
+            ['-2 degrees', '%count% degree|%count% degrees', -2],
+            ['-2 degrés', '%count% degré|%count% degrés', -2],
+        ];
+    }
+
+    /**
+     * @dataProvider failingLangcodes
+     */
+    public function testFailedLangcodes($nplural, $langCodes)
+    {
+        $matrix = $this->generateTestData($langCodes);
+        $this->validateMatrix($nplural, $matrix, false);
+    }
+
+    /**
+     * @dataProvider successLangcodes
+     */
+    public function testLangcodes($nplural, $langCodes)
+    {
+        $matrix = $this->generateTestData($langCodes);
+        $this->validateMatrix($nplural, $matrix);
+    }
+
+    /**
+     * This array should contain all currently known langcodes.
+     *
+     * As it is impossible to have this ever complete we should try as hard as possible to have it almost complete.
+     *
+     * @return array
+     */
+    public function successLangcodes()
+    {
+        return [
+            ['1', ['ay', 'bo', 'cgg', 'dz', 'id', 'ja', 'jbo', 'ka', 'kk', 'km', 'ko', 'ky']],
+            ['2', ['nl', 'fr', 'en', 'de', 'de_GE', 'hy', 'hy_AM']],
+            ['3', ['be', 'bs', 'cs', 'hr']],
+            ['4', ['cy', 'mt', 'sl']],
+            ['6', ['ar']],
+        ];
+    }
+
+    /**
+     * This array should be at least empty within the near future.
+     *
+     * This both depends on a complete list trying to add above as understanding
+     * the plural rules of the current failing languages.
+     *
+     * @return array with nplural together with langcodes
+     */
+    public function failingLangcodes()
+    {
+        return [
+            ['1', ['fa']],
+            ['2', ['jbo']],
+            ['3', ['cbs']],
+            ['4', ['gd', 'kw']],
+            ['5', ['ga']],
+        ];
+    }
+
+    /**
+     * We validate only on the plural coverage. Thus the real rules is not tested.
+     *
+     * @param string $nplural       Plural expected
+     * @param array  $matrix        Containing langcodes and their plural index values
+     * @param bool   $expectSuccess
+     */
+    protected function validateMatrix($nplural, $matrix, $expectSuccess = true)
+    {
+        foreach ($matrix as $langCode => $data) {
+            $indexes = array_flip($data);
+            if ($expectSuccess) {
+                $this->assertEquals($nplural, \count($indexes), "Langcode '$langCode' has '$nplural' plural forms.");
+            } else {
+                $this->assertNotEquals((int) $nplural, \count($indexes), "Langcode '$langCode' has '$nplural' plural forms.");
+            }
+        }
+    }
+
+    protected function generateTestData($langCodes)
+    {
+        $translator = new class() {
+            use TranslatorTrait {
+                getPluralizationRule as public;
+            }
+        };
+
+        $matrix = [];
+        foreach ($langCodes as $langCode) {
+            for ($count = 0; $count < 200; ++$count) {
+                $plural = $translator->getPluralizationRule($count, $langCode);
+                $matrix[$langCode][$count] = $plural;
+            }
+        }
+
+        return $matrix;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/TranslatableInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/TranslatableInterface.php
new file mode 100644
index 0000000..47fd6fa
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/TranslatableInterface.php
@@ -0,0 +1,20 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Contracts\Translation;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+interface TranslatableInterface
+{
+    public function trans(TranslatorInterface $translator, string $locale = null): string;
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/TranslatorInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/TranslatorInterface.php
new file mode 100644
index 0000000..dc9bf7f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/TranslatorInterface.php
@@ -0,0 +1,67 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Contracts\Translation;
+
+/**
+ * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @method string getLocale() Returns the default locale
+ */
+interface TranslatorInterface
+{
+    /**
+     * Translates the given message.
+     *
+     * When a number is provided as a parameter named "%count%", the message is parsed for plural
+     * forms and a translation is chosen according to this number using the following rules:
+     *
+     * Given a message with different plural translations separated by a
+     * pipe (|), this method returns the correct portion of the message based
+     * on the given number, locale and the pluralization rules in the message
+     * itself.
+     *
+     * The message supports two different types of pluralization rules:
+     *
+     * interval: {0} There are no apples|{1} There is one apple|]1,Inf] There are %count% apples
+     * indexed:  There is one apple|There are %count% apples
+     *
+     * The indexed solution can also contain labels (e.g. one: There is one apple).
+     * This is purely for making the translations more clear - it does not
+     * affect the functionality.
+     *
+     * The two methods can also be mixed:
+     *     {0} There are no apples|one: There is one apple|more: There are %count% apples
+     *
+     * An interval can represent a finite set of numbers:
+     *  {1,2,3,4}
+     *
+     * An interval can represent numbers between two numbers:
+     *  [1, +Inf]
+     *  ]-1,2[
+     *
+     * The left delimiter can be [ (inclusive) or ] (exclusive).
+     * The right delimiter can be [ (exclusive) or ] (inclusive).
+     * Beside numbers, you can use -Inf and +Inf for the infinite.
+     *
+     * @see https://en.wikipedia.org/wiki/ISO_31-11
+     *
+     * @param string      $id         The message id (may also be an object that can be cast to string)
+     * @param array       $parameters An array of parameters for the message
+     * @param string|null $domain     The domain for the message or null to use the default
+     * @param string|null $locale     The locale or null to use the default
+     *
+     * @return string The translated string
+     *
+     * @throws \InvalidArgumentException If the locale contains invalid characters
+     */
+    public function trans(string $id, array $parameters = [], string $domain = null, string $locale = null);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/TranslatorTrait.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/TranslatorTrait.php
new file mode 100644
index 0000000..789693d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/TranslatorTrait.php
@@ -0,0 +1,261 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Contracts\Translation;
+
+use Symfony\Component\Translation\Exception\InvalidArgumentException;
+
+/**
+ * A trait to help implement TranslatorInterface and LocaleAwareInterface.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+trait TranslatorTrait
+{
+    private $locale;
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setLocale(string $locale)
+    {
+        $this->locale = $locale;
+    }
+
+    /**
+     * {@inheritdoc}
+     *
+     * @return string
+     */
+    public function getLocale()
+    {
+        return $this->locale ?: (class_exists(\Locale::class) ? \Locale::getDefault() : 'en');
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function trans(?string $id, array $parameters = [], string $domain = null, string $locale = null): string
+    {
+        if (null === $id || '' === $id) {
+            return '';
+        }
+
+        if (!isset($parameters['%count%']) || !is_numeric($parameters['%count%'])) {
+            return strtr($id, $parameters);
+        }
+
+        $number = (float) $parameters['%count%'];
+        $locale = $locale ?: $this->getLocale();
+
+        $parts = [];
+        if (preg_match('/^\|++$/', $id)) {
+            $parts = explode('|', $id);
+        } elseif (preg_match_all('/(?:\|\||[^\|])++/', $id, $matches)) {
+            $parts = $matches[0];
+        }
+
+        $intervalRegexp = <<<'EOF'
+/^(?P<interval>
+    ({\s*
+        (\-?\d+(\.\d+)?[\s*,\s*\-?\d+(\.\d+)?]*)
+    \s*})
+
+        |
+
+    (?P<left_delimiter>[\[\]])
+        \s*
+        (?P<left>-Inf|\-?\d+(\.\d+)?)
+        \s*,\s*
+        (?P<right>\+?Inf|\-?\d+(\.\d+)?)
+        \s*
+    (?P<right_delimiter>[\[\]])
+)\s*(?P<message>.*?)$/xs
+EOF;
+
+        $standardRules = [];
+        foreach ($parts as $part) {
+            $part = trim(str_replace('||', '|', $part));
+
+            // try to match an explicit rule, then fallback to the standard ones
+            if (preg_match($intervalRegexp, $part, $matches)) {
+                if ($matches[2]) {
+                    foreach (explode(',', $matches[3]) as $n) {
+                        if ($number == $n) {
+                            return strtr($matches['message'], $parameters);
+                        }
+                    }
+                } else {
+                    $leftNumber = '-Inf' === $matches['left'] ? -\INF : (float) $matches['left'];
+                    $rightNumber = is_numeric($matches['right']) ? (float) $matches['right'] : \INF;
+
+                    if (('[' === $matches['left_delimiter'] ? $number >= $leftNumber : $number > $leftNumber)
+                        && (']' === $matches['right_delimiter'] ? $number <= $rightNumber : $number < $rightNumber)
+                    ) {
+                        return strtr($matches['message'], $parameters);
+                    }
+                }
+            } elseif (preg_match('/^\w+\:\s*(.*?)$/', $part, $matches)) {
+                $standardRules[] = $matches[1];
+            } else {
+                $standardRules[] = $part;
+            }
+        }
+
+        $position = $this->getPluralizationRule($number, $locale);
+
+        if (!isset($standardRules[$position])) {
+            // when there's exactly one rule given, and that rule is a standard
+            // rule, use this rule
+            if (1 === \count($parts) && isset($standardRules[0])) {
+                return strtr($standardRules[0], $parameters);
+            }
+
+            $message = sprintf('Unable to choose a translation for "%s" with locale "%s" for value "%d". Double check that this translation has the correct plural options (e.g. "There is one apple|There are %%count%% apples").', $id, $locale, $number);
+
+            if (class_exists(InvalidArgumentException::class)) {
+                throw new InvalidArgumentException($message);
+            }
+
+            throw new \InvalidArgumentException($message);
+        }
+
+        return strtr($standardRules[$position], $parameters);
+    }
+
+    /**
+     * Returns the plural position to use for the given locale and number.
+     *
+     * The plural rules are derived from code of the Zend Framework (2010-09-25),
+     * which is subject to the new BSD license (http://framework.zend.com/license/new-bsd).
+     * Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
+     */
+    private function getPluralizationRule(float $number, string $locale): int
+    {
+        $number = abs($number);
+
+        switch ('pt_BR' !== $locale && \strlen($locale) > 3 ? substr($locale, 0, strrpos($locale, '_')) : $locale) {
+            case 'af':
+            case 'bn':
+            case 'bg':
+            case 'ca':
+            case 'da':
+            case 'de':
+            case 'el':
+            case 'en':
+            case 'eo':
+            case 'es':
+            case 'et':
+            case 'eu':
+            case 'fa':
+            case 'fi':
+            case 'fo':
+            case 'fur':
+            case 'fy':
+            case 'gl':
+            case 'gu':
+            case 'ha':
+            case 'he':
+            case 'hu':
+            case 'is':
+            case 'it':
+            case 'ku':
+            case 'lb':
+            case 'ml':
+            case 'mn':
+            case 'mr':
+            case 'nah':
+            case 'nb':
+            case 'ne':
+            case 'nl':
+            case 'nn':
+            case 'no':
+            case 'oc':
+            case 'om':
+            case 'or':
+            case 'pa':
+            case 'pap':
+            case 'ps':
+            case 'pt':
+            case 'so':
+            case 'sq':
+            case 'sv':
+            case 'sw':
+            case 'ta':
+            case 'te':
+            case 'tk':
+            case 'ur':
+            case 'zu':
+                return (1 == $number) ? 0 : 1;
+
+            case 'am':
+            case 'bh':
+            case 'fil':
+            case 'fr':
+            case 'gun':
+            case 'hi':
+            case 'hy':
+            case 'ln':
+            case 'mg':
+            case 'nso':
+            case 'pt_BR':
+            case 'ti':
+            case 'wa':
+                return ($number < 2) ? 0 : 1;
+
+            case 'be':
+            case 'bs':
+            case 'hr':
+            case 'ru':
+            case 'sh':
+            case 'sr':
+            case 'uk':
+                return ((1 == $number % 10) && (11 != $number % 100)) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2);
+
+            case 'cs':
+            case 'sk':
+                return (1 == $number) ? 0 : ((($number >= 2) && ($number <= 4)) ? 1 : 2);
+
+            case 'ga':
+                return (1 == $number) ? 0 : ((2 == $number) ? 1 : 2);
+
+            case 'lt':
+                return ((1 == $number % 10) && (11 != $number % 100)) ? 0 : ((($number % 10 >= 2) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2);
+
+            case 'sl':
+                return (1 == $number % 100) ? 0 : ((2 == $number % 100) ? 1 : (((3 == $number % 100) || (4 == $number % 100)) ? 2 : 3));
+
+            case 'mk':
+                return (1 == $number % 10) ? 0 : 1;
+
+            case 'mt':
+                return (1 == $number) ? 0 : (((0 == $number) || (($number % 100 > 1) && ($number % 100 < 11))) ? 1 : ((($number % 100 > 10) && ($number % 100 < 20)) ? 2 : 3));
+
+            case 'lv':
+                return (0 == $number) ? 0 : (((1 == $number % 10) && (11 != $number % 100)) ? 1 : 2);
+
+            case 'pl':
+                return (1 == $number) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 12) || ($number % 100 > 14))) ? 1 : 2);
+
+            case 'cy':
+                return (1 == $number) ? 0 : ((2 == $number) ? 1 : (((8 == $number) || (11 == $number)) ? 2 : 3));
+
+            case 'ro':
+                return (1 == $number) ? 0 : (((0 == $number) || (($number % 100 > 0) && ($number % 100 < 20))) ? 1 : 2);
+
+            case 'ar':
+                return (0 == $number) ? 0 : ((1 == $number) ? 1 : ((2 == $number) ? 2 : ((($number % 100 >= 3) && ($number % 100 <= 10)) ? 3 : ((($number % 100 >= 11) && ($number % 100 <= 99)) ? 4 : 5))));
+
+            default:
+                return 0;
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/composer.json b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/composer.json
new file mode 100644
index 0000000..00e27f8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation-contracts/composer.json
@@ -0,0 +1,37 @@
+{
+    "name": "symfony/translation-contracts",
+    "type": "library",
+    "description": "Generic abstractions related to translation",
+    "keywords": ["abstractions", "contracts", "decoupling", "interfaces", "interoperability", "standards"],
+    "homepage": "https://symfony.com",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Nicolas Grekas",
+            "email": "p@tchwork.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "https://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=7.2.5"
+    },
+    "suggest": {
+        "symfony/translation-implementation": ""
+    },
+    "autoload": {
+        "psr-4": { "Symfony\\Contracts\\Translation\\": "" }
+    },
+    "minimum-stability": "dev",
+    "extra": {
+        "branch-alias": {
+            "dev-main": "2.4-dev"
+        },
+        "thanks": {
+            "name": "symfony/contracts",
+            "url": "https://github.com/symfony/contracts"
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/CHANGELOG.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/CHANGELOG.md
new file mode 100644
index 0000000..3341328
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/CHANGELOG.md
@@ -0,0 +1,169 @@
+CHANGELOG
+=========
+
+5.3
+---
+
+ * Add `translation:pull` and `translation:push` commands to manage translations with third-party providers
+ * Add `TranslatorBagInterface::getCatalogues` method
+ * Add support to load XLIFF string in `XliffFileLoader`
+
+5.2.0
+-----
+
+ * added support for calling `trans` with ICU formatted messages
+ * added `PseudoLocalizationTranslator`
+ * added `TranslatableMessage` objects that represent a message that can be translated
+ * added the `t()` function to easily create `TranslatableMessage` objects
+ * Added support for extracting messages from `TranslatableMessage` objects
+
+5.1.0
+-----
+
+ * added support for `name` attribute on `unit` element from xliff2 to be used as a translation key instead of always the `source` element
+
+5.0.0
+-----
+
+ * removed support for using `null` as the locale in `Translator`
+ * removed `TranslatorInterface`
+ * removed `MessageSelector`
+ * removed `ChoiceMessageFormatterInterface`
+ * removed `PluralizationRule`
+ * removed `Interval`
+ * removed `transChoice()` methods, use the trans() method instead with a %count% parameter
+ * removed `FileDumper::setBackup()` and `TranslationWriter::disableBackup()`
+ * removed `MessageFormatter::choiceFormat()`
+ * added argument `$filename` to `PhpExtractor::parseTokens()`
+ * removed support for implicit STDIN usage in the `lint:xliff` command, use `lint:xliff -` (append a dash) instead to make it explicit.
+
+4.4.0
+-----
+
+ * deprecated support for using `null` as the locale in `Translator`
+ * deprecated accepting STDIN implicitly when using the `lint:xliff` command, use `lint:xliff -` (append a dash) instead to make it explicit.
+ * Marked the `TranslationDataCollector` class as `@final`.
+
+4.3.0
+-----
+
+ * Improved Xliff 1.2 loader to load the original file's metadata
+ * Added `TranslatorPathsPass`
+
+4.2.0
+-----
+
+ * Started using ICU parent locales as fallback locales.
+ * allow using the ICU message format using domains with the "+intl-icu" suffix
+ * deprecated `Translator::transChoice()` in favor of using `Translator::trans()` with a `%count%` parameter
+ * deprecated `TranslatorInterface` in favor of `Symfony\Contracts\Translation\TranslatorInterface`
+ * deprecated `MessageSelector`, `Interval` and `PluralizationRules`; use `IdentityTranslator` instead
+ * Added `IntlFormatter` and `IntlFormatterInterface`
+ * added support for multiple files and directories in `XliffLintCommand`
+ * Marked `Translator::getFallbackLocales()` and `TranslationDataCollector::getFallbackLocales()` as internal
+
+4.1.0
+-----
+
+ * The `FileDumper::setBackup()` method is deprecated.
+ * The `TranslationWriter::disableBackup()` method is deprecated.
+ * The `XliffFileDumper` will write "name" on the "unit" node when dumping XLIFF 2.0.
+
+4.0.0
+-----
+
+ * removed the backup feature of the `FileDumper` class
+ * removed `TranslationWriter::writeTranslations()` method
+ * removed support for passing `MessageSelector` instances to the constructor of the `Translator` class
+
+3.4.0
+-----
+
+ * Added `TranslationDumperPass`
+ * Added `TranslationExtractorPass`
+ * Added `TranslatorPass`
+ * Added `TranslationReader` and `TranslationReaderInterface`
+ * Added `<notes>` section to the Xliff 2.0 dumper.
+ * Improved Xliff 2.0 loader to load `<notes>` section.
+ * Added `TranslationWriterInterface`
+ * Deprecated `TranslationWriter::writeTranslations` in favor of `TranslationWriter::write`
+ * added support for adding custom message formatter and decoupling the default one.
+ * Added `PhpExtractor`
+ * Added `PhpStringTokenParser`
+
+3.2.0
+-----
+
+ * Added support for escaping `|` in plural translations with double pipe.
+
+3.1.0
+-----
+
+ * Deprecated the backup feature of the file dumper classes.
+
+3.0.0
+-----
+
+ * removed `FileDumper::format()` method.
+ * Changed the visibility of the locale property in `Translator` from protected to private.
+
+2.8.0
+-----
+
+ * deprecated FileDumper::format(), overwrite FileDumper::formatCatalogue() instead.
+ * deprecated Translator::getMessages(), rely on TranslatorBagInterface::getCatalogue() instead.
+ * added `FileDumper::formatCatalogue` which allows format the catalogue without dumping it into file.
+ * added option `json_encoding` to JsonFileDumper
+ * added options `as_tree`, `inline` to YamlFileDumper
+ * added support for XLIFF 2.0.
+ * added support for XLIFF target and tool attributes.
+ * added message parameters to DataCollectorTranslator.
+ * [DEPRECATION] The `DiffOperation` class has been deprecated and
+   will be removed in Symfony 3.0, since its operation has nothing to do with 'diff',
+   so the class name is misleading. The `TargetOperation` class should be used for
+   this use-case instead.
+
+2.7.0
+-----
+
+ * added DataCollectorTranslator for collecting the translated messages.
+
+2.6.0
+-----
+
+ * added possibility to cache catalogues
+ * added TranslatorBagInterface
+ * added LoggingTranslator
+ * added Translator::getMessages() for retrieving the message catalogue as an array
+
+2.5.0
+-----
+
+ * added relative file path template to the file dumpers
+ * added optional backup to the file dumpers
+ * changed IcuResFileDumper to extend FileDumper
+
+2.3.0
+-----
+
+ * added classes to make operations on catalogues (like making a diff or a merge on 2 catalogues)
+ * added Translator::getFallbackLocales()
+ * deprecated Translator::setFallbackLocale() in favor of the new Translator::setFallbackLocales() method
+
+2.2.0
+-----
+
+ * QtTranslationsLoader class renamed to QtFileLoader. QtTranslationsLoader is deprecated and will be removed in 2.3.
+ * [BC BREAK] uniformized the exception thrown by the load() method when an error occurs. The load() method now
+   throws Symfony\Component\Translation\Exception\NotFoundResourceException when a resource cannot be found
+   and Symfony\Component\Translation\Exception\InvalidResourceException when a resource is invalid.
+ * changed the exception class thrown by some load() methods from \RuntimeException to \InvalidArgumentException
+   (IcuDatFileLoader, IcuResFileLoader and QtFileLoader)
+
+2.1.0
+-----
+
+ * added support for more than one fallback locale
+ * added support for extracting translation messages from templates (Twig and PHP)
+ * added dumpers for translation catalogs
+ * added support for QT, gettext, and ResourceBundles
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Catalogue/AbstractOperation.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Catalogue/AbstractOperation.php
new file mode 100644
index 0000000..9869fbb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Catalogue/AbstractOperation.php
@@ -0,0 +1,192 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Catalogue;
+
+use Symfony\Component\Translation\Exception\InvalidArgumentException;
+use Symfony\Component\Translation\Exception\LogicException;
+use Symfony\Component\Translation\MessageCatalogue;
+use Symfony\Component\Translation\MessageCatalogueInterface;
+
+/**
+ * Base catalogues binary operation class.
+ *
+ * A catalogue binary operation performs operation on
+ * source (the left argument) and target (the right argument) catalogues.
+ *
+ * @author Jean-François Simon <contact@jfsimon.fr>
+ */
+abstract class AbstractOperation implements OperationInterface
+{
+    public const OBSOLETE_BATCH = 'obsolete';
+    public const NEW_BATCH = 'new';
+    public const ALL_BATCH = 'all';
+
+    protected $source;
+    protected $target;
+    protected $result;
+
+    /**
+     * @var array|null The domains affected by this operation
+     */
+    private $domains;
+
+    /**
+     * This array stores 'all', 'new' and 'obsolete' messages for all valid domains.
+     *
+     * The data structure of this array is as follows:
+     *
+     *     [
+     *         'domain 1' => [
+     *             'all' => [...],
+     *             'new' => [...],
+     *             'obsolete' => [...]
+     *         ],
+     *         'domain 2' => [
+     *             'all' => [...],
+     *             'new' => [...],
+     *             'obsolete' => [...]
+     *         ],
+     *         ...
+     *     ]
+     *
+     * @var array The array that stores 'all', 'new' and 'obsolete' messages
+     */
+    protected $messages;
+
+    /**
+     * @throws LogicException
+     */
+    public function __construct(MessageCatalogueInterface $source, MessageCatalogueInterface $target)
+    {
+        if ($source->getLocale() !== $target->getLocale()) {
+            throw new LogicException('Operated catalogues must belong to the same locale.');
+        }
+
+        $this->source = $source;
+        $this->target = $target;
+        $this->result = new MessageCatalogue($source->getLocale());
+        $this->messages = [];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getDomains()
+    {
+        if (null === $this->domains) {
+            $this->domains = array_values(array_unique(array_merge($this->source->getDomains(), $this->target->getDomains())));
+        }
+
+        return $this->domains;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getMessages(string $domain)
+    {
+        if (!\in_array($domain, $this->getDomains())) {
+            throw new InvalidArgumentException(sprintf('Invalid domain: "%s".', $domain));
+        }
+
+        if (!isset($this->messages[$domain][self::ALL_BATCH])) {
+            $this->processDomain($domain);
+        }
+
+        return $this->messages[$domain][self::ALL_BATCH];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getNewMessages(string $domain)
+    {
+        if (!\in_array($domain, $this->getDomains())) {
+            throw new InvalidArgumentException(sprintf('Invalid domain: "%s".', $domain));
+        }
+
+        if (!isset($this->messages[$domain][self::NEW_BATCH])) {
+            $this->processDomain($domain);
+        }
+
+        return $this->messages[$domain][self::NEW_BATCH];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getObsoleteMessages(string $domain)
+    {
+        if (!\in_array($domain, $this->getDomains())) {
+            throw new InvalidArgumentException(sprintf('Invalid domain: "%s".', $domain));
+        }
+
+        if (!isset($this->messages[$domain][self::OBSOLETE_BATCH])) {
+            $this->processDomain($domain);
+        }
+
+        return $this->messages[$domain][self::OBSOLETE_BATCH];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getResult()
+    {
+        foreach ($this->getDomains() as $domain) {
+            if (!isset($this->messages[$domain])) {
+                $this->processDomain($domain);
+            }
+        }
+
+        return $this->result;
+    }
+
+    /**
+     * @param self::*_BATCH $batch
+     */
+    public function moveMessagesToIntlDomainsIfPossible(string $batch = self::ALL_BATCH): void
+    {
+        // If MessageFormatter class does not exists, intl domains are not supported.
+        if (!class_exists(\MessageFormatter::class)) {
+            return;
+        }
+
+        foreach ($this->getDomains() as $domain) {
+            $intlDomain = $domain.MessageCatalogueInterface::INTL_DOMAIN_SUFFIX;
+            switch ($batch) {
+                case self::OBSOLETE_BATCH: $messages = $this->getObsoleteMessages($domain); break;
+                case self::NEW_BATCH: $messages = $this->getNewMessages($domain); break;
+                case self::ALL_BATCH: $messages = $this->getMessages($domain); break;
+                default: throw new \InvalidArgumentException(sprintf('$batch argument must be one of ["%s", "%s", "%s"].', self::ALL_BATCH, self::NEW_BATCH, self::OBSOLETE_BATCH));
+            }
+
+            if (!$messages || (!$this->source->all($intlDomain) && $this->source->all($domain))) {
+                continue;
+            }
+
+            $result = $this->getResult();
+            $allIntlMessages = $result->all($intlDomain);
+            $currentMessages = array_diff_key($messages, $result->all($domain));
+            $result->replace($currentMessages, $domain);
+            $result->replace($allIntlMessages + $messages, $intlDomain);
+        }
+    }
+
+    /**
+     * Performs operation on source and target catalogues for the given domain and
+     * stores the results.
+     *
+     * @param string $domain The domain which the operation will be performed for
+     */
+    abstract protected function processDomain(string $domain);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Catalogue/MergeOperation.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Catalogue/MergeOperation.php
new file mode 100644
index 0000000..87db2fb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Catalogue/MergeOperation.php
@@ -0,0 +1,60 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Catalogue;
+
+use Symfony\Component\Translation\MessageCatalogueInterface;
+
+/**
+ * Merge operation between two catalogues as follows:
+ * all = source ∪ target = {x: x ∈ source ∨ x ∈ target}
+ * new = all ∖ source = {x: x ∈ target ∧ x ∉ source}
+ * obsolete = source ∖ all = {x: x ∈ source ∧ x ∉ source ∧ x ∉ target} = ∅
+ * Basically, the result contains messages from both catalogues.
+ *
+ * @author Jean-François Simon <contact@jfsimon.fr>
+ */
+class MergeOperation extends AbstractOperation
+{
+    /**
+     * {@inheritdoc}
+     */
+    protected function processDomain(string $domain)
+    {
+        $this->messages[$domain] = [
+            'all' => [],
+            'new' => [],
+            'obsolete' => [],
+        ];
+        $intlDomain = $domain.MessageCatalogueInterface::INTL_DOMAIN_SUFFIX;
+
+        foreach ($this->source->all($domain) as $id => $message) {
+            $this->messages[$domain]['all'][$id] = $message;
+            $d = $this->source->defines($id, $intlDomain) ? $intlDomain : $domain;
+            $this->result->add([$id => $message], $d);
+            if (null !== $keyMetadata = $this->source->getMetadata($id, $d)) {
+                $this->result->setMetadata($id, $keyMetadata, $d);
+            }
+        }
+
+        foreach ($this->target->all($domain) as $id => $message) {
+            if (!$this->source->has($id, $domain)) {
+                $this->messages[$domain]['all'][$id] = $message;
+                $this->messages[$domain]['new'][$id] = $message;
+                $d = $this->target->defines($id, $intlDomain) ? $intlDomain : $domain;
+                $this->result->add([$id => $message], $d);
+                if (null !== $keyMetadata = $this->target->getMetadata($id, $d)) {
+                    $this->result->setMetadata($id, $keyMetadata, $d);
+                }
+            }
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Catalogue/OperationInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Catalogue/OperationInterface.php
new file mode 100644
index 0000000..9ffac88
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Catalogue/OperationInterface.php
@@ -0,0 +1,71 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Catalogue;
+
+use Symfony\Component\Translation\MessageCatalogueInterface;
+
+/**
+ * Represents an operation on catalogue(s).
+ *
+ * An instance of this interface performs an operation on one or more catalogues and
+ * stores intermediate and final results of the operation.
+ *
+ * The first catalogue in its argument(s) is called the 'source catalogue' or 'source' and
+ * the following results are stored:
+ *
+ * Messages: also called 'all', are valid messages for the given domain after the operation is performed.
+ *
+ * New Messages: also called 'new' (new = all ∖ source = {x: x ∈ all ∧ x ∉ source}).
+ *
+ * Obsolete Messages: also called 'obsolete' (obsolete = source ∖ all = {x: x ∈ source ∧ x ∉ all}).
+ *
+ * Result: also called 'result', is the resulting catalogue for the given domain that holds the same messages as 'all'.
+ *
+ * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
+ */
+interface OperationInterface
+{
+    /**
+     * Returns domains affected by operation.
+     *
+     * @return array
+     */
+    public function getDomains();
+
+    /**
+     * Returns all valid messages ('all') after operation.
+     *
+     * @return array
+     */
+    public function getMessages(string $domain);
+
+    /**
+     * Returns new messages ('new') after operation.
+     *
+     * @return array
+     */
+    public function getNewMessages(string $domain);
+
+    /**
+     * Returns obsolete messages ('obsolete') after operation.
+     *
+     * @return array
+     */
+    public function getObsoleteMessages(string $domain);
+
+    /**
+     * Returns resulting catalogue ('result').
+     *
+     * @return MessageCatalogueInterface
+     */
+    public function getResult();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Catalogue/TargetOperation.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Catalogue/TargetOperation.php
new file mode 100644
index 0000000..399d917
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Catalogue/TargetOperation.php
@@ -0,0 +1,74 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Catalogue;
+
+use Symfony\Component\Translation\MessageCatalogueInterface;
+
+/**
+ * Target operation between two catalogues:
+ * intersection = source ∩ target = {x: x ∈ source ∧ x ∈ target}
+ * all = intersection ∪ (target ∖ intersection) = target
+ * new = all ∖ source = {x: x ∈ target ∧ x ∉ source}
+ * obsolete = source ∖ all = source ∖ target = {x: x ∈ source ∧ x ∉ target}
+ * Basically, the result contains messages from the target catalogue.
+ *
+ * @author Michael Lee <michael.lee@zerustech.com>
+ */
+class TargetOperation extends AbstractOperation
+{
+    /**
+     * {@inheritdoc}
+     */
+    protected function processDomain(string $domain)
+    {
+        $this->messages[$domain] = [
+            'all' => [],
+            'new' => [],
+            'obsolete' => [],
+        ];
+        $intlDomain = $domain.MessageCatalogueInterface::INTL_DOMAIN_SUFFIX;
+
+        // For 'all' messages, the code can't be simplified as ``$this->messages[$domain]['all'] = $target->all($domain);``,
+        // because doing so will drop messages like {x: x ∈ source ∧ x ∉ target.all ∧ x ∈ target.fallback}
+        //
+        // For 'new' messages, the code can't be simplified as ``array_diff_assoc($this->target->all($domain), $this->source->all($domain));``
+        // because doing so will not exclude messages like {x: x ∈ target ∧ x ∉ source.all ∧ x ∈ source.fallback}
+        //
+        // For 'obsolete' messages, the code can't be simplified as ``array_diff_assoc($this->source->all($domain), $this->target->all($domain))``
+        // because doing so will not exclude messages like {x: x ∈ source ∧ x ∉ target.all ∧ x ∈ target.fallback}
+
+        foreach ($this->source->all($domain) as $id => $message) {
+            if ($this->target->has($id, $domain)) {
+                $this->messages[$domain]['all'][$id] = $message;
+                $d = $this->target->defines($id, $intlDomain) ? $intlDomain : $domain;
+                $this->result->add([$id => $message], $d);
+                if (null !== $keyMetadata = $this->source->getMetadata($id, $d)) {
+                    $this->result->setMetadata($id, $keyMetadata, $d);
+                }
+            } else {
+                $this->messages[$domain]['obsolete'][$id] = $message;
+            }
+        }
+
+        foreach ($this->target->all($domain) as $id => $message) {
+            if (!$this->source->has($id, $domain)) {
+                $this->messages[$domain]['all'][$id] = $message;
+                $this->messages[$domain]['new'][$id] = $message;
+                $d = $this->target->defines($id, $intlDomain) ? $intlDomain : $domain;
+                $this->result->add([$id => $message], $d);
+                if (null !== $keyMetadata = $this->target->getMetadata($id, $d)) {
+                    $this->result->setMetadata($id, $keyMetadata, $d);
+                }
+            }
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Command/TranslationPullCommand.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Command/TranslationPullCommand.php
new file mode 100644
index 0000000..0ec02ca
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Command/TranslationPullCommand.php
@@ -0,0 +1,157 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Command;
+
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Style\SymfonyStyle;
+use Symfony\Component\Translation\Catalogue\TargetOperation;
+use Symfony\Component\Translation\MessageCatalogue;
+use Symfony\Component\Translation\Provider\TranslationProviderCollection;
+use Symfony\Component\Translation\Reader\TranslationReaderInterface;
+use Symfony\Component\Translation\Writer\TranslationWriterInterface;
+
+/**
+ * @author Mathieu Santostefano <msantostefano@protonmail.com>
+ *
+ * @experimental in 5.3
+ */
+final class TranslationPullCommand extends Command
+{
+    use TranslationTrait;
+
+    protected static $defaultName = 'translation:pull';
+    protected static $defaultDescription = 'Pull translations from a given provider.';
+
+    private $providerCollection;
+    private $writer;
+    private $reader;
+    private $defaultLocale;
+    private $transPaths;
+    private $enabledLocales;
+
+    public function __construct(TranslationProviderCollection $providerCollection, TranslationWriterInterface $writer, TranslationReaderInterface $reader, string $defaultLocale, array $transPaths = [], array $enabledLocales = [])
+    {
+        $this->providerCollection = $providerCollection;
+        $this->writer = $writer;
+        $this->reader = $reader;
+        $this->defaultLocale = $defaultLocale;
+        $this->transPaths = $transPaths;
+        $this->enabledLocales = $enabledLocales;
+
+        parent::__construct();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function configure()
+    {
+        $keys = $this->providerCollection->keys();
+        $defaultProvider = 1 === \count($keys) ? $keys[0] : null;
+
+        $this
+            ->setDefinition([
+                new InputArgument('provider', null !== $defaultProvider ? InputArgument::OPTIONAL : InputArgument::REQUIRED, 'The provider to pull translations from.', $defaultProvider),
+                new InputOption('force', null, InputOption::VALUE_NONE, 'Override existing translations with provider ones (it will delete not synchronized messages).'),
+                new InputOption('intl-icu', null, InputOption::VALUE_NONE, 'Associated to --force option, it will write messages in "%domain%+intl-icu.%locale%.xlf" files.'),
+                new InputOption('domains', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'Specify the domains to pull.'),
+                new InputOption('locales', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'Specify the locales to pull.'),
+                new InputOption('format', null, InputOption::VALUE_OPTIONAL, 'Override the default output format.', 'xlf12'),
+            ])
+            ->setHelp(<<<'EOF'
+The <info>%command.name%</> command pulls translations from the given provider. Only
+new translations are pulled, existing ones are not overwritten.
+
+You can overwrite existing translations (and remove the missing ones on local side) by using the <comment>--force</> flag:
+
+  <info>php %command.full_name% --force provider</>
+
+Full example:
+
+  <info>php %command.full_name% provider --force --domains=messages,validators --locales=en</>
+
+This command pulls all translations associated with the <comment>messages</> and <comment>validators</> domains for the <comment>en</> locale.
+Local translations for the specified domains and locale are deleted if they're not present on the provider and overwritten if it's the case.
+Local translations for others domains and locales are ignored.
+EOF
+            )
+        ;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function execute(InputInterface $input, OutputInterface $output): int
+    {
+        $io = new SymfonyStyle($input, $output);
+
+        $provider = $this->providerCollection->get($input->getArgument('provider'));
+        $force = $input->getOption('force');
+        $intlIcu = $input->getOption('intl-icu');
+        $locales = $input->getOption('locales') ?: $this->enabledLocales;
+        $domains = $input->getOption('domains');
+        $format = $input->getOption('format');
+        $xliffVersion = '1.2';
+
+        if ($intlIcu && !$force) {
+            $io->note('--intl-icu option only has an effect when used with --force. Here, it will be ignored.');
+        }
+
+        switch ($format) {
+            case 'xlf20': $xliffVersion = '2.0';
+            // no break
+            case 'xlf12': $format = 'xlf';
+        }
+
+        $writeOptions = [
+            'path' => end($this->transPaths),
+            'xliff_version' => $xliffVersion,
+        ];
+
+        if (!$domains) {
+            $domains = $provider->getDomains();
+        }
+
+        $providerTranslations = $provider->read($domains, $locales);
+
+        if ($force) {
+            foreach ($providerTranslations->getCatalogues() as $catalogue) {
+                $operation = new TargetOperation((new MessageCatalogue($catalogue->getLocale())), $catalogue);
+                if ($intlIcu) {
+                    $operation->moveMessagesToIntlDomainsIfPossible();
+                }
+                $this->writer->write($operation->getResult(), $format, $writeOptions);
+            }
+
+            $io->success(sprintf('Local translations has been updated from "%s" (for "%s" locale(s), and "%s" domain(s)).', parse_url($provider, \PHP_URL_SCHEME), implode(', ', $locales), implode(', ', $domains)));
+
+            return 0;
+        }
+
+        $localTranslations = $this->readLocalTranslations($locales, $domains, $this->transPaths);
+
+        // Append pulled translations to local ones.
+        $localTranslations->addBag($providerTranslations->diff($localTranslations));
+
+        foreach ($localTranslations->getCatalogues() as $catalogue) {
+            $this->writer->write($catalogue, $format, $writeOptions);
+        }
+
+        $io->success(sprintf('New translations from "%s" has been written locally (for "%s" locale(s), and "%s" domain(s)).', parse_url($provider, \PHP_URL_SCHEME), implode(', ', $locales), implode(', ', $domains)));
+
+        return 0;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Command/TranslationPushCommand.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Command/TranslationPushCommand.php
new file mode 100644
index 0000000..b28d3e1
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Command/TranslationPushCommand.php
@@ -0,0 +1,158 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Command;
+
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Exception\InvalidArgumentException;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Style\SymfonyStyle;
+use Symfony\Component\Translation\Provider\TranslationProviderCollection;
+use Symfony\Component\Translation\Reader\TranslationReaderInterface;
+use Symfony\Component\Translation\TranslatorBag;
+
+/**
+ * @author Mathieu Santostefano <msantostefano@protonmail.com>
+ *
+ * @experimental in 5.3
+ */
+final class TranslationPushCommand extends Command
+{
+    use TranslationTrait;
+
+    protected static $defaultName = 'translation:push';
+    protected static $defaultDescription = 'Push translations to a given provider.';
+
+    private $providers;
+    private $reader;
+    private $transPaths;
+    private $enabledLocales;
+
+    public function __construct(TranslationProviderCollection $providers, TranslationReaderInterface $reader, array $transPaths = [], array $enabledLocales = [])
+    {
+        $this->providers = $providers;
+        $this->reader = $reader;
+        $this->transPaths = $transPaths;
+        $this->enabledLocales = $enabledLocales;
+
+        parent::__construct();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function configure()
+    {
+        $keys = $this->providers->keys();
+        $defaultProvider = 1 === \count($keys) ? $keys[0] : null;
+
+        $this
+            ->setDefinition([
+                new InputArgument('provider', null !== $defaultProvider ? InputArgument::OPTIONAL : InputArgument::REQUIRED, 'The provider to push translations to.', $defaultProvider),
+                new InputOption('force', null, InputOption::VALUE_NONE, 'Override existing translations with local ones (it will delete not synchronized messages).'),
+                new InputOption('delete-missing', null, InputOption::VALUE_NONE, 'Delete translations available on provider but not locally.'),
+                new InputOption('domains', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'Specify the domains to push.'),
+                new InputOption('locales', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'Specify the locales to push.', $this->enabledLocales),
+            ])
+            ->setHelp(<<<'EOF'
+The <info>%command.name%</> command pushes translations to the given provider. Only new
+translations are pushed, existing ones are not overwritten.
+
+You can overwrite existing translations by using the <comment>--force</> flag:
+
+  <info>php %command.full_name% --force provider</>
+
+You can delete provider translations which are not present locally by using the <comment>--delete-missing</> flag:
+
+  <info>php %command.full_name% --delete-missing provider</>
+
+Full example:
+
+  <info>php %command.full_name% provider --force --delete-missing --domains=messages,validators --locales=en</>
+
+This command pushes all translations associated with the <comment>messages</> and <comment>validators</> domains for the <comment>en</> locale.
+Provider translations for the specified domains and locale are deleted if they're not present locally and overwritten if it's the case.
+Provider translations for others domains and locales are ignored.
+EOF
+            )
+        ;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function execute(InputInterface $input, OutputInterface $output): int
+    {
+        $provider = $this->providers->get($input->getArgument('provider'));
+
+        if (!$this->enabledLocales) {
+            throw new InvalidArgumentException(sprintf('You must define "framework.translator.enabled_locales" or "framework.translator.providers.%s.locales" config key in order to work with translation providers.', parse_url($provider, \PHP_URL_SCHEME)));
+        }
+
+        $io = new SymfonyStyle($input, $output);
+        $domains = $input->getOption('domains');
+        $locales = $input->getOption('locales');
+        $force = $input->getOption('force');
+        $deleteMissing = $input->getOption('delete-missing');
+
+        $localTranslations = $this->readLocalTranslations($locales, $domains, $this->transPaths);
+
+        if (!$domains) {
+            $domains = $this->getDomainsFromTranslatorBag($localTranslations);
+        }
+
+        if (!$deleteMissing && $force) {
+            $provider->write($localTranslations);
+
+            $io->success(sprintf('All local translations has been sent to "%s" (for "%s" locale(s), and "%s" domain(s)).', parse_url($provider, \PHP_URL_SCHEME), implode(', ', $locales), implode(', ', $domains)));
+
+            return 0;
+        }
+
+        $providerTranslations = $provider->read($domains, $locales);
+
+        if ($deleteMissing) {
+            $provider->delete($providerTranslations->diff($localTranslations));
+
+            $io->success(sprintf('Missing translations on "%s" has been deleted (for "%s" locale(s), and "%s" domain(s)).', parse_url($provider, \PHP_URL_SCHEME), implode(', ', $locales), implode(', ', $domains)));
+
+            // Read provider translations again, after missing translations deletion,
+            // to avoid push freshly deleted translations.
+            $providerTranslations = $provider->read($domains, $locales);
+        }
+
+        $translationsToWrite = $localTranslations->diff($providerTranslations);
+
+        if ($force) {
+            $translationsToWrite->addBag($localTranslations->intersect($providerTranslations));
+        }
+
+        $provider->write($translationsToWrite);
+
+        $io->success(sprintf('%s local translations has been sent to "%s" (for "%s" locale(s), and "%s" domain(s)).', $force ? 'All' : 'New', parse_url($provider, \PHP_URL_SCHEME), implode(', ', $locales), implode(', ', $domains)));
+
+        return 0;
+    }
+
+    private function getDomainsFromTranslatorBag(TranslatorBag $translatorBag): array
+    {
+        $domains = [];
+
+        foreach ($translatorBag->getCatalogues() as $catalogue) {
+            $domains += $catalogue->getDomains();
+        }
+
+        return array_unique($domains);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Command/TranslationTrait.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Command/TranslationTrait.php
new file mode 100644
index 0000000..6a2b1ba
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Command/TranslationTrait.php
@@ -0,0 +1,78 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Command;
+
+use Symfony\Component\Translation\MessageCatalogue;
+use Symfony\Component\Translation\MessageCatalogueInterface;
+use Symfony\Component\Translation\TranslatorBag;
+
+/**
+ * @internal
+ */
+trait TranslationTrait
+{
+    private function readLocalTranslations(array $locales, array $domains, array $transPaths): TranslatorBag
+    {
+        $bag = new TranslatorBag();
+
+        foreach ($locales as $locale) {
+            $catalogue = new MessageCatalogue($locale);
+            foreach ($transPaths as $path) {
+                $this->reader->read($path, $catalogue);
+            }
+
+            if ($domains) {
+                foreach ($domains as $domain) {
+                    $catalogue = $this->filterCatalogue($catalogue, $domain);
+                    $bag->addCatalogue($catalogue);
+                }
+            } else {
+                $bag->addCatalogue($catalogue);
+            }
+        }
+
+        return $bag;
+    }
+
+    private function filterCatalogue(MessageCatalogue $catalogue, string $domain): MessageCatalogue
+    {
+        $filteredCatalogue = new MessageCatalogue($catalogue->getLocale());
+
+        // extract intl-icu messages only
+        $intlDomain = $domain.MessageCatalogueInterface::INTL_DOMAIN_SUFFIX;
+        if ($intlMessages = $catalogue->all($intlDomain)) {
+            $filteredCatalogue->add($intlMessages, $intlDomain);
+        }
+
+        // extract all messages and subtract intl-icu messages
+        if ($messages = array_diff($catalogue->all($domain), $intlMessages)) {
+            $filteredCatalogue->add($messages, $domain);
+        }
+        foreach ($catalogue->getResources() as $resource) {
+            $filteredCatalogue->addResource($resource);
+        }
+
+        if ($metadata = $catalogue->getMetadata('', $intlDomain)) {
+            foreach ($metadata as $k => $v) {
+                $filteredCatalogue->setMetadata($k, $v, $intlDomain);
+            }
+        }
+
+        if ($metadata = $catalogue->getMetadata('', $domain)) {
+            foreach ($metadata as $k => $v) {
+                $filteredCatalogue->setMetadata($k, $v, $domain);
+            }
+        }
+
+        return $filteredCatalogue;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Command/XliffLintCommand.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Command/XliffLintCommand.php
new file mode 100644
index 0000000..4117d87
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Command/XliffLintCommand.php
@@ -0,0 +1,267 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Command;
+
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Exception\RuntimeException;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Style\SymfonyStyle;
+use Symfony\Component\Translation\Exception\InvalidArgumentException;
+use Symfony\Component\Translation\Util\XliffUtils;
+
+/**
+ * Validates XLIFF files syntax and outputs encountered errors.
+ *
+ * @author Grégoire Pineau <lyrixx@lyrixx.info>
+ * @author Robin Chalas <robin.chalas@gmail.com>
+ * @author Javier Eguiluz <javier.eguiluz@gmail.com>
+ */
+class XliffLintCommand extends Command
+{
+    protected static $defaultName = 'lint:xliff';
+    protected static $defaultDescription = 'Lint an XLIFF file and outputs encountered errors';
+
+    private $format;
+    private $displayCorrectFiles;
+    private $directoryIteratorProvider;
+    private $isReadableProvider;
+    private $requireStrictFileNames;
+
+    public function __construct(string $name = null, callable $directoryIteratorProvider = null, callable $isReadableProvider = null, bool $requireStrictFileNames = true)
+    {
+        parent::__construct($name);
+
+        $this->directoryIteratorProvider = $directoryIteratorProvider;
+        $this->isReadableProvider = $isReadableProvider;
+        $this->requireStrictFileNames = $requireStrictFileNames;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function configure()
+    {
+        $this
+            ->setDescription(self::$defaultDescription)
+            ->addArgument('filename', InputArgument::IS_ARRAY, 'A file, a directory or "-" for reading from STDIN')
+            ->addOption('format', null, InputOption::VALUE_REQUIRED, 'The output format', 'txt')
+            ->setHelp(<<<EOF
+The <info>%command.name%</info> command lints an XLIFF file and outputs to STDOUT
+the first encountered syntax error.
+
+You can validates XLIFF contents passed from STDIN:
+
+  <info>cat filename | php %command.full_name% -</info>
+
+You can also validate the syntax of a file:
+
+  <info>php %command.full_name% filename</info>
+
+Or of a whole directory:
+
+  <info>php %command.full_name% dirname</info>
+  <info>php %command.full_name% dirname --format=json</info>
+
+EOF
+            )
+        ;
+    }
+
+    protected function execute(InputInterface $input, OutputInterface $output)
+    {
+        $io = new SymfonyStyle($input, $output);
+        $filenames = (array) $input->getArgument('filename');
+        $this->format = $input->getOption('format');
+        $this->displayCorrectFiles = $output->isVerbose();
+
+        if (['-'] === $filenames) {
+            return $this->display($io, [$this->validate(file_get_contents('php://stdin'))]);
+        }
+
+        if (!$filenames) {
+            throw new RuntimeException('Please provide a filename or pipe file content to STDIN.');
+        }
+
+        $filesInfo = [];
+        foreach ($filenames as $filename) {
+            if (!$this->isReadable($filename)) {
+                throw new RuntimeException(sprintf('File or directory "%s" is not readable.', $filename));
+            }
+
+            foreach ($this->getFiles($filename) as $file) {
+                $filesInfo[] = $this->validate(file_get_contents($file), $file);
+            }
+        }
+
+        return $this->display($io, $filesInfo);
+    }
+
+    private function validate(string $content, string $file = null): array
+    {
+        $errors = [];
+
+        // Avoid: Warning DOMDocument::loadXML(): Empty string supplied as input
+        if ('' === trim($content)) {
+            return ['file' => $file, 'valid' => true];
+        }
+
+        $internal = libxml_use_internal_errors(true);
+
+        $document = new \DOMDocument();
+        $document->loadXML($content);
+
+        if (null !== $targetLanguage = $this->getTargetLanguageFromFile($document)) {
+            $normalizedLocalePattern = sprintf('(%s|%s)', preg_quote($targetLanguage, '/'), preg_quote(str_replace('-', '_', $targetLanguage), '/'));
+            // strict file names require translation files to be named '____.locale.xlf'
+            // otherwise, both '____.locale.xlf' and 'locale.____.xlf' are allowed
+            // also, the regexp matching must be case-insensitive, as defined for 'target-language' values
+            // http://docs.oasis-open.org/xliff/v1.2/os/xliff-core.html#target-language
+            $expectedFilenamePattern = $this->requireStrictFileNames ? sprintf('/^.*\.(?i:%s)\.(?:xlf|xliff)/', $normalizedLocalePattern) : sprintf('/^(?:.*\.(?i:%s)|(?i:%s)\..*)\.(?:xlf|xliff)/', $normalizedLocalePattern, $normalizedLocalePattern);
+
+            if (0 === preg_match($expectedFilenamePattern, basename($file))) {
+                $errors[] = [
+                    'line' => -1,
+                    'column' => -1,
+                    'message' => sprintf('There is a mismatch between the language included in the file name ("%s") and the "%s" value used in the "target-language" attribute of the file.', basename($file), $targetLanguage),
+                ];
+            }
+        }
+
+        foreach (XliffUtils::validateSchema($document) as $xmlError) {
+            $errors[] = [
+                'line' => $xmlError['line'],
+                'column' => $xmlError['column'],
+                'message' => $xmlError['message'],
+            ];
+        }
+
+        libxml_clear_errors();
+        libxml_use_internal_errors($internal);
+
+        return ['file' => $file, 'valid' => 0 === \count($errors), 'messages' => $errors];
+    }
+
+    private function display(SymfonyStyle $io, array $files)
+    {
+        switch ($this->format) {
+            case 'txt':
+                return $this->displayTxt($io, $files);
+            case 'json':
+                return $this->displayJson($io, $files);
+            default:
+                throw new InvalidArgumentException(sprintf('The format "%s" is not supported.', $this->format));
+        }
+    }
+
+    private function displayTxt(SymfonyStyle $io, array $filesInfo)
+    {
+        $countFiles = \count($filesInfo);
+        $erroredFiles = 0;
+
+        foreach ($filesInfo as $info) {
+            if ($info['valid'] && $this->displayCorrectFiles) {
+                $io->comment('<info>OK</info>'.($info['file'] ? sprintf(' in %s', $info['file']) : ''));
+            } elseif (!$info['valid']) {
+                ++$erroredFiles;
+                $io->text('<error> ERROR </error>'.($info['file'] ? sprintf(' in %s', $info['file']) : ''));
+                $io->listing(array_map(function ($error) {
+                    // general document errors have a '-1' line number
+                    return -1 === $error['line'] ? $error['message'] : sprintf('Line %d, Column %d: %s', $error['line'], $error['column'], $error['message']);
+                }, $info['messages']));
+            }
+        }
+
+        if (0 === $erroredFiles) {
+            $io->success(sprintf('All %d XLIFF files contain valid syntax.', $countFiles));
+        } else {
+            $io->warning(sprintf('%d XLIFF files have valid syntax and %d contain errors.', $countFiles - $erroredFiles, $erroredFiles));
+        }
+
+        return min($erroredFiles, 1);
+    }
+
+    private function displayJson(SymfonyStyle $io, array $filesInfo)
+    {
+        $errors = 0;
+
+        array_walk($filesInfo, function (&$v) use (&$errors) {
+            $v['file'] = (string) $v['file'];
+            if (!$v['valid']) {
+                ++$errors;
+            }
+        });
+
+        $io->writeln(json_encode($filesInfo, \JSON_PRETTY_PRINT | \JSON_UNESCAPED_SLASHES));
+
+        return min($errors, 1);
+    }
+
+    private function getFiles(string $fileOrDirectory)
+    {
+        if (is_file($fileOrDirectory)) {
+            yield new \SplFileInfo($fileOrDirectory);
+
+            return;
+        }
+
+        foreach ($this->getDirectoryIterator($fileOrDirectory) as $file) {
+            if (!\in_array($file->getExtension(), ['xlf', 'xliff'])) {
+                continue;
+            }
+
+            yield $file;
+        }
+    }
+
+    private function getDirectoryIterator(string $directory)
+    {
+        $default = function ($directory) {
+            return new \RecursiveIteratorIterator(
+                new \RecursiveDirectoryIterator($directory, \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::FOLLOW_SYMLINKS),
+                \RecursiveIteratorIterator::LEAVES_ONLY
+            );
+        };
+
+        if (null !== $this->directoryIteratorProvider) {
+            return ($this->directoryIteratorProvider)($directory, $default);
+        }
+
+        return $default($directory);
+    }
+
+    private function isReadable(string $fileOrDirectory)
+    {
+        $default = function ($fileOrDirectory) {
+            return is_readable($fileOrDirectory);
+        };
+
+        if (null !== $this->isReadableProvider) {
+            return ($this->isReadableProvider)($fileOrDirectory, $default);
+        }
+
+        return $default($fileOrDirectory);
+    }
+
+    private function getTargetLanguageFromFile(\DOMDocument $xliffContents): ?string
+    {
+        foreach ($xliffContents->getElementsByTagName('file')[0]->attributes ?? [] as $attribute) {
+            if ('target-language' === $attribute->nodeName) {
+                return $attribute->nodeValue;
+            }
+        }
+
+        return null;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/DataCollector/TranslationDataCollector.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/DataCollector/TranslationDataCollector.php
new file mode 100644
index 0000000..f8480ad
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/DataCollector/TranslationDataCollector.php
@@ -0,0 +1,172 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\DataCollector;
+
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\HttpKernel\DataCollector\DataCollector;
+use Symfony\Component\HttpKernel\DataCollector\LateDataCollectorInterface;
+use Symfony\Component\Translation\DataCollectorTranslator;
+use Symfony\Component\VarDumper\Cloner\Data;
+
+/**
+ * @author Abdellatif Ait boudad <a.aitboudad@gmail.com>
+ *
+ * @final
+ */
+class TranslationDataCollector extends DataCollector implements LateDataCollectorInterface
+{
+    private $translator;
+
+    public function __construct(DataCollectorTranslator $translator)
+    {
+        $this->translator = $translator;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function lateCollect()
+    {
+        $messages = $this->sanitizeCollectedMessages($this->translator->getCollectedMessages());
+
+        $this->data += $this->computeCount($messages);
+        $this->data['messages'] = $messages;
+
+        $this->data = $this->cloneVar($this->data);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function collect(Request $request, Response $response, \Throwable $exception = null)
+    {
+        $this->data['locale'] = $this->translator->getLocale();
+        $this->data['fallback_locales'] = $this->translator->getFallbackLocales();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function reset()
+    {
+        $this->data = [];
+    }
+
+    /**
+     * @return array|Data
+     */
+    public function getMessages()
+    {
+        return $this->data['messages'] ?? [];
+    }
+
+    /**
+     * @return int
+     */
+    public function getCountMissings()
+    {
+        return $this->data[DataCollectorTranslator::MESSAGE_MISSING] ?? 0;
+    }
+
+    /**
+     * @return int
+     */
+    public function getCountFallbacks()
+    {
+        return $this->data[DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK] ?? 0;
+    }
+
+    /**
+     * @return int
+     */
+    public function getCountDefines()
+    {
+        return $this->data[DataCollectorTranslator::MESSAGE_DEFINED] ?? 0;
+    }
+
+    public function getLocale()
+    {
+        return !empty($this->data['locale']) ? $this->data['locale'] : null;
+    }
+
+    /**
+     * @internal
+     */
+    public function getFallbackLocales()
+    {
+        return (isset($this->data['fallback_locales']) && \count($this->data['fallback_locales']) > 0) ? $this->data['fallback_locales'] : [];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getName()
+    {
+        return 'translation';
+    }
+
+    private function sanitizeCollectedMessages(array $messages)
+    {
+        $result = [];
+        foreach ($messages as $key => $message) {
+            $messageId = $message['locale'].$message['domain'].$message['id'];
+
+            if (!isset($result[$messageId])) {
+                $message['count'] = 1;
+                $message['parameters'] = !empty($message['parameters']) ? [$message['parameters']] : [];
+                $messages[$key]['translation'] = $this->sanitizeString($message['translation']);
+                $result[$messageId] = $message;
+            } else {
+                if (!empty($message['parameters'])) {
+                    $result[$messageId]['parameters'][] = $message['parameters'];
+                }
+
+                ++$result[$messageId]['count'];
+            }
+
+            unset($messages[$key]);
+        }
+
+        return $result;
+    }
+
+    private function computeCount(array $messages)
+    {
+        $count = [
+            DataCollectorTranslator::MESSAGE_DEFINED => 0,
+            DataCollectorTranslator::MESSAGE_MISSING => 0,
+            DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK => 0,
+        ];
+
+        foreach ($messages as $message) {
+            ++$count[$message['state']];
+        }
+
+        return $count;
+    }
+
+    private function sanitizeString(string $string, int $length = 80)
+    {
+        $string = trim(preg_replace('/\s+/', ' ', $string));
+
+        if (false !== $encoding = mb_detect_encoding($string, null, true)) {
+            if (mb_strlen($string, $encoding) > $length) {
+                return mb_substr($string, 0, $length - 3, $encoding).'...';
+            }
+        } elseif (\strlen($string) > $length) {
+            return substr($string, 0, $length - 3).'...';
+        }
+
+        return $string;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/DataCollectorTranslator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/DataCollectorTranslator.php
new file mode 100644
index 0000000..c7d3597
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/DataCollectorTranslator.php
@@ -0,0 +1,171 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation;
+
+use Symfony\Component\HttpKernel\CacheWarmer\WarmableInterface;
+use Symfony\Component\Translation\Exception\InvalidArgumentException;
+use Symfony\Contracts\Translation\LocaleAwareInterface;
+use Symfony\Contracts\Translation\TranslatorInterface;
+
+/**
+ * @author Abdellatif Ait boudad <a.aitboudad@gmail.com>
+ */
+class DataCollectorTranslator implements TranslatorInterface, TranslatorBagInterface, LocaleAwareInterface, WarmableInterface
+{
+    public const MESSAGE_DEFINED = 0;
+    public const MESSAGE_MISSING = 1;
+    public const MESSAGE_EQUALS_FALLBACK = 2;
+
+    /**
+     * @var TranslatorInterface|TranslatorBagInterface
+     */
+    private $translator;
+
+    private $messages = [];
+
+    /**
+     * @param TranslatorInterface $translator The translator must implement TranslatorBagInterface
+     */
+    public function __construct(TranslatorInterface $translator)
+    {
+        if (!$translator instanceof TranslatorBagInterface || !$translator instanceof LocaleAwareInterface) {
+            throw new InvalidArgumentException(sprintf('The Translator "%s" must implement TranslatorInterface, TranslatorBagInterface and LocaleAwareInterface.', get_debug_type($translator)));
+        }
+
+        $this->translator = $translator;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function trans(?string $id, array $parameters = [], string $domain = null, string $locale = null)
+    {
+        $trans = $this->translator->trans($id = (string) $id, $parameters, $domain, $locale);
+        $this->collectMessage($locale, $domain, $id, $trans, $parameters);
+
+        return $trans;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setLocale(string $locale)
+    {
+        $this->translator->setLocale($locale);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getLocale()
+    {
+        return $this->translator->getLocale();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getCatalogue(string $locale = null)
+    {
+        return $this->translator->getCatalogue($locale);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getCatalogues(): array
+    {
+        return $this->translator->getCatalogues();
+    }
+
+    /**
+     * {@inheritdoc}
+     *
+     * @return string[]
+     */
+    public function warmUp(string $cacheDir)
+    {
+        if ($this->translator instanceof WarmableInterface) {
+            return (array) $this->translator->warmUp($cacheDir);
+        }
+
+        return [];
+    }
+
+    /**
+     * Gets the fallback locales.
+     *
+     * @return array The fallback locales
+     */
+    public function getFallbackLocales()
+    {
+        if ($this->translator instanceof Translator || method_exists($this->translator, 'getFallbackLocales')) {
+            return $this->translator->getFallbackLocales();
+        }
+
+        return [];
+    }
+
+    /**
+     * Passes through all unknown calls onto the translator object.
+     */
+    public function __call(string $method, array $args)
+    {
+        return $this->translator->{$method}(...$args);
+    }
+
+    /**
+     * @return array
+     */
+    public function getCollectedMessages()
+    {
+        return $this->messages;
+    }
+
+    private function collectMessage(?string $locale, ?string $domain, string $id, string $translation, ?array $parameters = [])
+    {
+        if (null === $domain) {
+            $domain = 'messages';
+        }
+
+        $catalogue = $this->translator->getCatalogue($locale);
+        $locale = $catalogue->getLocale();
+        $fallbackLocale = null;
+        if ($catalogue->defines($id, $domain)) {
+            $state = self::MESSAGE_DEFINED;
+        } elseif ($catalogue->has($id, $domain)) {
+            $state = self::MESSAGE_EQUALS_FALLBACK;
+
+            $fallbackCatalogue = $catalogue->getFallbackCatalogue();
+            while ($fallbackCatalogue) {
+                if ($fallbackCatalogue->defines($id, $domain)) {
+                    $fallbackLocale = $fallbackCatalogue->getLocale();
+                    break;
+                }
+                $fallbackCatalogue = $fallbackCatalogue->getFallbackCatalogue();
+            }
+        } else {
+            $state = self::MESSAGE_MISSING;
+        }
+
+        $this->messages[] = [
+            'locale' => $locale,
+            'fallbackLocale' => $fallbackLocale,
+            'domain' => $domain,
+            'id' => $id,
+            'translation' => $translation,
+            'parameters' => $parameters,
+            'state' => $state,
+            'transChoiceNumber' => isset($parameters['%count%']) && is_numeric($parameters['%count%']) ? $parameters['%count%'] : null,
+        ];
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/DependencyInjection/TranslationDumperPass.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/DependencyInjection/TranslationDumperPass.php
new file mode 100644
index 0000000..6d78342
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/DependencyInjection/TranslationDumperPass.php
@@ -0,0 +1,48 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\DependencyInjection;
+
+use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Reference;
+
+/**
+ * Adds tagged translation.formatter services to translation writer.
+ */
+class TranslationDumperPass implements CompilerPassInterface
+{
+    private $writerServiceId;
+    private $dumperTag;
+
+    public function __construct(string $writerServiceId = 'translation.writer', string $dumperTag = 'translation.dumper')
+    {
+        if (1 < \func_num_args()) {
+            trigger_deprecation('symfony/translation', '5.3', 'Configuring "%s" is deprecated.', __CLASS__);
+        }
+
+        $this->writerServiceId = $writerServiceId;
+        $this->dumperTag = $dumperTag;
+    }
+
+    public function process(ContainerBuilder $container)
+    {
+        if (!$container->hasDefinition($this->writerServiceId)) {
+            return;
+        }
+
+        $definition = $container->getDefinition($this->writerServiceId);
+
+        foreach ($container->findTaggedServiceIds($this->dumperTag, true) as $id => $attributes) {
+            $definition->addMethodCall('addDumper', [$attributes[0]['alias'], new Reference($id)]);
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/DependencyInjection/TranslationExtractorPass.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/DependencyInjection/TranslationExtractorPass.php
new file mode 100644
index 0000000..fab6b20
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/DependencyInjection/TranslationExtractorPass.php
@@ -0,0 +1,53 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\DependencyInjection;
+
+use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Exception\RuntimeException;
+use Symfony\Component\DependencyInjection\Reference;
+
+/**
+ * Adds tagged translation.extractor services to translation extractor.
+ */
+class TranslationExtractorPass implements CompilerPassInterface
+{
+    private $extractorServiceId;
+    private $extractorTag;
+
+    public function __construct(string $extractorServiceId = 'translation.extractor', string $extractorTag = 'translation.extractor')
+    {
+        if (0 < \func_num_args()) {
+            trigger_deprecation('symfony/translation', '5.3', 'Configuring "%s" is deprecated.', __CLASS__);
+        }
+
+        $this->extractorServiceId = $extractorServiceId;
+        $this->extractorTag = $extractorTag;
+    }
+
+    public function process(ContainerBuilder $container)
+    {
+        if (!$container->hasDefinition($this->extractorServiceId)) {
+            return;
+        }
+
+        $definition = $container->getDefinition($this->extractorServiceId);
+
+        foreach ($container->findTaggedServiceIds($this->extractorTag, true) as $id => $attributes) {
+            if (!isset($attributes[0]['alias'])) {
+                throw new RuntimeException(sprintf('The alias for the tag "translation.extractor" of service "%s" must be set.', $id));
+            }
+
+            $definition->addMethodCall('addExtractor', [$attributes[0]['alias'], new Reference($id)]);
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/DependencyInjection/TranslatorPass.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/DependencyInjection/TranslatorPass.php
new file mode 100644
index 0000000..c6a1306
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/DependencyInjection/TranslatorPass.php
@@ -0,0 +1,93 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\DependencyInjection;
+
+use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
+use Symfony\Component\DependencyInjection\Compiler\ServiceLocatorTagPass;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Reference;
+
+class TranslatorPass implements CompilerPassInterface
+{
+    private $translatorServiceId;
+    private $readerServiceId;
+    private $loaderTag;
+    private $debugCommandServiceId;
+    private $updateCommandServiceId;
+
+    public function __construct(string $translatorServiceId = 'translator.default', string $readerServiceId = 'translation.reader', string $loaderTag = 'translation.loader', string $debugCommandServiceId = 'console.command.translation_debug', string $updateCommandServiceId = 'console.command.translation_update')
+    {
+        if (0 < \func_num_args()) {
+            trigger_deprecation('symfony/translation', '5.3', 'Configuring "%s" is deprecated.', __CLASS__);
+        }
+
+        $this->translatorServiceId = $translatorServiceId;
+        $this->readerServiceId = $readerServiceId;
+        $this->loaderTag = $loaderTag;
+        $this->debugCommandServiceId = $debugCommandServiceId;
+        $this->updateCommandServiceId = $updateCommandServiceId;
+    }
+
+    public function process(ContainerBuilder $container)
+    {
+        if (!$container->hasDefinition($this->translatorServiceId)) {
+            return;
+        }
+
+        $loaders = [];
+        $loaderRefs = [];
+        foreach ($container->findTaggedServiceIds($this->loaderTag, true) as $id => $attributes) {
+            $loaderRefs[$id] = new Reference($id);
+            $loaders[$id][] = $attributes[0]['alias'];
+            if (isset($attributes[0]['legacy-alias'])) {
+                $loaders[$id][] = $attributes[0]['legacy-alias'];
+            }
+        }
+
+        if ($container->hasDefinition($this->readerServiceId)) {
+            $definition = $container->getDefinition($this->readerServiceId);
+            foreach ($loaders as $id => $formats) {
+                foreach ($formats as $format) {
+                    $definition->addMethodCall('addLoader', [$format, $loaderRefs[$id]]);
+                }
+            }
+        }
+
+        $container
+            ->findDefinition($this->translatorServiceId)
+            ->replaceArgument(0, ServiceLocatorTagPass::register($container, $loaderRefs))
+            ->replaceArgument(3, $loaders)
+        ;
+
+        if (!$container->hasParameter('twig.default_path')) {
+            return;
+        }
+
+        $paths = array_keys($container->getDefinition('twig.template_iterator')->getArgument(1));
+        if ($container->hasDefinition($this->debugCommandServiceId)) {
+            $definition = $container->getDefinition($this->debugCommandServiceId);
+            $definition->replaceArgument(4, $container->getParameter('twig.default_path'));
+
+            if (\count($definition->getArguments()) > 6) {
+                $definition->replaceArgument(6, $paths);
+            }
+        }
+        if ($container->hasDefinition($this->updateCommandServiceId)) {
+            $definition = $container->getDefinition($this->updateCommandServiceId);
+            $definition->replaceArgument(5, $container->getParameter('twig.default_path'));
+
+            if (\count($definition->getArguments()) > 7) {
+                $definition->replaceArgument(7, $paths);
+            }
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/DependencyInjection/TranslatorPathsPass.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/DependencyInjection/TranslatorPathsPass.php
new file mode 100644
index 0000000..85b0fa4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/DependencyInjection/TranslatorPathsPass.php
@@ -0,0 +1,151 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\DependencyInjection;
+
+use Symfony\Component\DependencyInjection\Compiler\AbstractRecursivePass;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Definition;
+use Symfony\Component\DependencyInjection\Reference;
+use Symfony\Component\DependencyInjection\ServiceLocator;
+
+/**
+ * @author Yonel Ceruto <yonelceruto@gmail.com>
+ */
+class TranslatorPathsPass extends AbstractRecursivePass
+{
+    private $translatorServiceId;
+    private $debugCommandServiceId;
+    private $updateCommandServiceId;
+    private $resolverServiceId;
+    private $level = 0;
+    private $paths = [];
+    private $definitions = [];
+    private $controllers = [];
+
+    public function __construct(string $translatorServiceId = 'translator', string $debugCommandServiceId = 'console.command.translation_debug', string $updateCommandServiceId = 'console.command.translation_update', string $resolverServiceId = 'argument_resolver.service')
+    {
+        if (0 < \func_num_args()) {
+            trigger_deprecation('symfony/translation', '5.3', 'Configuring "%s" is deprecated.', __CLASS__);
+        }
+
+        $this->translatorServiceId = $translatorServiceId;
+        $this->debugCommandServiceId = $debugCommandServiceId;
+        $this->updateCommandServiceId = $updateCommandServiceId;
+        $this->resolverServiceId = $resolverServiceId;
+    }
+
+    public function process(ContainerBuilder $container)
+    {
+        if (!$container->hasDefinition($this->translatorServiceId)) {
+            return;
+        }
+
+        foreach ($this->findControllerArguments($container) as $controller => $argument) {
+            $id = substr($controller, 0, strpos($controller, ':') ?: \strlen($controller));
+            if ($container->hasDefinition($id)) {
+                [$locatorRef] = $argument->getValues();
+                $this->controllers[(string) $locatorRef][$container->getDefinition($id)->getClass()] = true;
+            }
+        }
+
+        try {
+            parent::process($container);
+
+            $paths = [];
+            foreach ($this->paths as $class => $_) {
+                if (($r = $container->getReflectionClass($class)) && !$r->isInterface()) {
+                    $paths[] = $r->getFileName();
+                    foreach ($r->getTraits() as $trait) {
+                        $paths[] = $trait->getFileName();
+                    }
+                }
+            }
+            if ($paths) {
+                if ($container->hasDefinition($this->debugCommandServiceId)) {
+                    $definition = $container->getDefinition($this->debugCommandServiceId);
+                    $definition->replaceArgument(6, array_merge($definition->getArgument(6), $paths));
+                }
+                if ($container->hasDefinition($this->updateCommandServiceId)) {
+                    $definition = $container->getDefinition($this->updateCommandServiceId);
+                    $definition->replaceArgument(7, array_merge($definition->getArgument(7), $paths));
+                }
+            }
+        } finally {
+            $this->level = 0;
+            $this->paths = [];
+            $this->definitions = [];
+        }
+    }
+
+    protected function processValue($value, bool $isRoot = false)
+    {
+        if ($value instanceof Reference) {
+            if ((string) $value === $this->translatorServiceId) {
+                for ($i = $this->level - 1; $i >= 0; --$i) {
+                    $class = $this->definitions[$i]->getClass();
+
+                    if (ServiceLocator::class === $class) {
+                        if (!isset($this->controllers[$this->currentId])) {
+                            continue;
+                        }
+                        foreach ($this->controllers[$this->currentId] as $class => $_) {
+                            $this->paths[$class] = true;
+                        }
+                    } else {
+                        $this->paths[$class] = true;
+                    }
+
+                    break;
+                }
+            }
+
+            return $value;
+        }
+
+        if ($value instanceof Definition) {
+            $this->definitions[$this->level++] = $value;
+            $value = parent::processValue($value, $isRoot);
+            unset($this->definitions[--$this->level]);
+
+            return $value;
+        }
+
+        return parent::processValue($value, $isRoot);
+    }
+
+    private function findControllerArguments(ContainerBuilder $container): array
+    {
+        if ($container->hasDefinition($this->resolverServiceId)) {
+            $argument = $container->getDefinition($this->resolverServiceId)->getArgument(0);
+            if ($argument instanceof Reference) {
+                $argument = $container->getDefinition($argument);
+            }
+
+            return $argument->getArgument(0);
+        }
+
+        if ($container->hasDefinition('debug.'.$this->resolverServiceId)) {
+            $argument = $container->getDefinition('debug.'.$this->resolverServiceId)->getArgument(0);
+            if ($argument instanceof Reference) {
+                $argument = $container->getDefinition($argument);
+            }
+            $argument = $argument->getArgument(0);
+            if ($argument instanceof Reference) {
+                $argument = $container->getDefinition($argument);
+            }
+
+            return $argument->getArgument(0);
+        }
+
+        return [];
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/CsvFileDumper.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/CsvFileDumper.php
new file mode 100644
index 0000000..0c8589a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/CsvFileDumper.php
@@ -0,0 +1,60 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Dumper;
+
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * CsvFileDumper generates a csv formatted string representation of a message catalogue.
+ *
+ * @author Stealth35
+ */
+class CsvFileDumper extends FileDumper
+{
+    private $delimiter = ';';
+    private $enclosure = '"';
+
+    /**
+     * {@inheritdoc}
+     */
+    public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = [])
+    {
+        $handle = fopen('php://memory', 'r+');
+
+        foreach ($messages->all($domain) as $source => $target) {
+            fputcsv($handle, [$source, $target], $this->delimiter, $this->enclosure);
+        }
+
+        rewind($handle);
+        $output = stream_get_contents($handle);
+        fclose($handle);
+
+        return $output;
+    }
+
+    /**
+     * Sets the delimiter and escape character for CSV.
+     */
+    public function setCsvControl(string $delimiter = ';', string $enclosure = '"')
+    {
+        $this->delimiter = $delimiter;
+        $this->enclosure = $enclosure;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function getExtension()
+    {
+        return 'csv';
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/DumperInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/DumperInterface.php
new file mode 100644
index 0000000..7cdaef5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/DumperInterface.php
@@ -0,0 +1,30 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Dumper;
+
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * DumperInterface is the interface implemented by all translation dumpers.
+ * There is no common option.
+ *
+ * @author Michel Salib <michelsalib@hotmail.com>
+ */
+interface DumperInterface
+{
+    /**
+     * Dumps the message catalogue.
+     *
+     * @param array $options Options that are used by the dumper
+     */
+    public function dump(MessageCatalogue $messages, array $options = []);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/FileDumper.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/FileDumper.php
new file mode 100644
index 0000000..e257e72
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/FileDumper.php
@@ -0,0 +1,112 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Dumper;
+
+use Symfony\Component\Translation\Exception\InvalidArgumentException;
+use Symfony\Component\Translation\Exception\RuntimeException;
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * FileDumper is an implementation of DumperInterface that dump a message catalogue to file(s).
+ *
+ * Options:
+ * - path (mandatory): the directory where the files should be saved
+ *
+ * @author Michel Salib <michelsalib@hotmail.com>
+ */
+abstract class FileDumper implements DumperInterface
+{
+    /**
+     * A template for the relative paths to files.
+     *
+     * @var string
+     */
+    protected $relativePathTemplate = '%domain%.%locale%.%extension%';
+
+    /**
+     * Sets the template for the relative paths to files.
+     *
+     * @param string $relativePathTemplate A template for the relative paths to files
+     */
+    public function setRelativePathTemplate(string $relativePathTemplate)
+    {
+        $this->relativePathTemplate = $relativePathTemplate;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function dump(MessageCatalogue $messages, array $options = [])
+    {
+        if (!\array_key_exists('path', $options)) {
+            throw new InvalidArgumentException('The file dumper needs a path option.');
+        }
+
+        // save a file for each domain
+        foreach ($messages->getDomains() as $domain) {
+            $fullpath = $options['path'].'/'.$this->getRelativePath($domain, $messages->getLocale());
+            if (!file_exists($fullpath)) {
+                $directory = \dirname($fullpath);
+                if (!file_exists($directory) && !@mkdir($directory, 0777, true)) {
+                    throw new RuntimeException(sprintf('Unable to create directory "%s".', $directory));
+                }
+            }
+
+            $intlDomain = $domain.MessageCatalogue::INTL_DOMAIN_SUFFIX;
+            $intlMessages = $messages->all($intlDomain);
+
+            if ($intlMessages) {
+                $intlPath = $options['path'].'/'.$this->getRelativePath($intlDomain, $messages->getLocale());
+                file_put_contents($intlPath, $this->formatCatalogue($messages, $intlDomain, $options));
+
+                $messages->replace([], $intlDomain);
+
+                try {
+                    if ($messages->all($domain)) {
+                        file_put_contents($fullpath, $this->formatCatalogue($messages, $domain, $options));
+                    }
+                    continue;
+                } finally {
+                    $messages->replace($intlMessages, $intlDomain);
+                }
+            }
+
+            file_put_contents($fullpath, $this->formatCatalogue($messages, $domain, $options));
+        }
+    }
+
+    /**
+     * Transforms a domain of a message catalogue to its string representation.
+     *
+     * @return string representation
+     */
+    abstract public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = []);
+
+    /**
+     * Gets the file extension of the dumper.
+     *
+     * @return string file extension
+     */
+    abstract protected function getExtension();
+
+    /**
+     * Gets the relative file path using the template.
+     */
+    private function getRelativePath(string $domain, string $locale): string
+    {
+        return strtr($this->relativePathTemplate, [
+            '%domain%' => $domain,
+            '%locale%' => $locale,
+            '%extension%' => $this->getExtension(),
+        ]);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/IcuResFileDumper.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/IcuResFileDumper.php
new file mode 100644
index 0000000..cdc5991
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/IcuResFileDumper.php
@@ -0,0 +1,104 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Dumper;
+
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * IcuResDumper generates an ICU ResourceBundle formatted string representation of a message catalogue.
+ *
+ * @author Stealth35
+ */
+class IcuResFileDumper extends FileDumper
+{
+    /**
+     * {@inheritdoc}
+     */
+    protected $relativePathTemplate = '%domain%/%locale%.%extension%';
+
+    /**
+     * {@inheritdoc}
+     */
+    public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = [])
+    {
+        $data = $indexes = $resources = '';
+
+        foreach ($messages->all($domain) as $source => $target) {
+            $indexes .= pack('v', \strlen($data) + 28);
+            $data .= $source."\0";
+        }
+
+        $data .= $this->writePadding($data);
+
+        $keyTop = $this->getPosition($data);
+
+        foreach ($messages->all($domain) as $source => $target) {
+            $resources .= pack('V', $this->getPosition($data));
+
+            $data .= pack('V', \strlen($target))
+                .mb_convert_encoding($target."\0", 'UTF-16LE', 'UTF-8')
+                .$this->writePadding($data)
+                  ;
+        }
+
+        $resOffset = $this->getPosition($data);
+
+        $data .= pack('v', \count($messages->all($domain)))
+            .$indexes
+            .$this->writePadding($data)
+            .$resources
+              ;
+
+        $bundleTop = $this->getPosition($data);
+
+        $root = pack('V7',
+            $resOffset + (2 << 28), // Resource Offset + Resource Type
+            6,                      // Index length
+            $keyTop,                        // Index keys top
+            $bundleTop,                     // Index resources top
+            $bundleTop,                     // Index bundle top
+            \count($messages->all($domain)), // Index max table length
+            0                               // Index attributes
+        );
+
+        $header = pack('vC2v4C12@32',
+            32,                     // Header size
+            0xDA, 0x27,             // Magic number 1 and 2
+            20, 0, 0, 2,            // Rest of the header, ..., Size of a char
+            0x52, 0x65, 0x73, 0x42, // Data format identifier
+            1, 2, 0, 0,             // Data version
+            1, 4, 0, 0              // Unicode version
+        );
+
+        return $header.$root.$data;
+    }
+
+    private function writePadding(string $data): ?string
+    {
+        $padding = \strlen($data) % 4;
+
+        return $padding ? str_repeat("\xAA", 4 - $padding) : null;
+    }
+
+    private function getPosition(string $data)
+    {
+        return (\strlen($data) + 28) / 4;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function getExtension()
+    {
+        return 'res';
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/IniFileDumper.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/IniFileDumper.php
new file mode 100644
index 0000000..93c900a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/IniFileDumper.php
@@ -0,0 +1,45 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Dumper;
+
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * IniFileDumper generates an ini formatted string representation of a message catalogue.
+ *
+ * @author Stealth35
+ */
+class IniFileDumper extends FileDumper
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = [])
+    {
+        $output = '';
+
+        foreach ($messages->all($domain) as $source => $target) {
+            $escapeTarget = str_replace('"', '\"', $target);
+            $output .= $source.'="'.$escapeTarget."\"\n";
+        }
+
+        return $output;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function getExtension()
+    {
+        return 'ini';
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/JsonFileDumper.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/JsonFileDumper.php
new file mode 100644
index 0000000..34c0b56
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/JsonFileDumper.php
@@ -0,0 +1,40 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Dumper;
+
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * JsonFileDumper generates an json formatted string representation of a message catalogue.
+ *
+ * @author singles
+ */
+class JsonFileDumper extends FileDumper
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = [])
+    {
+        $flags = $options['json_encoding'] ?? \JSON_PRETTY_PRINT;
+
+        return json_encode($messages->all($domain), $flags);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function getExtension()
+    {
+        return 'json';
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/MoFileDumper.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/MoFileDumper.php
new file mode 100644
index 0000000..54d0da8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/MoFileDumper.php
@@ -0,0 +1,82 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Dumper;
+
+use Symfony\Component\Translation\Loader\MoFileLoader;
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * MoFileDumper generates a gettext formatted string representation of a message catalogue.
+ *
+ * @author Stealth35
+ */
+class MoFileDumper extends FileDumper
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = [])
+    {
+        $sources = $targets = $sourceOffsets = $targetOffsets = '';
+        $offsets = [];
+        $size = 0;
+
+        foreach ($messages->all($domain) as $source => $target) {
+            $offsets[] = array_map('strlen', [$sources, $source, $targets, $target]);
+            $sources .= "\0".$source;
+            $targets .= "\0".$target;
+            ++$size;
+        }
+
+        $header = [
+            'magicNumber' => MoFileLoader::MO_LITTLE_ENDIAN_MAGIC,
+            'formatRevision' => 0,
+            'count' => $size,
+            'offsetId' => MoFileLoader::MO_HEADER_SIZE,
+            'offsetTranslated' => MoFileLoader::MO_HEADER_SIZE + (8 * $size),
+            'sizeHashes' => 0,
+            'offsetHashes' => MoFileLoader::MO_HEADER_SIZE + (16 * $size),
+        ];
+
+        $sourcesSize = \strlen($sources);
+        $sourcesStart = $header['offsetHashes'] + 1;
+
+        foreach ($offsets as $offset) {
+            $sourceOffsets .= $this->writeLong($offset[1])
+                          .$this->writeLong($offset[0] + $sourcesStart);
+            $targetOffsets .= $this->writeLong($offset[3])
+                          .$this->writeLong($offset[2] + $sourcesStart + $sourcesSize);
+        }
+
+        $output = implode('', array_map([$this, 'writeLong'], $header))
+               .$sourceOffsets
+               .$targetOffsets
+               .$sources
+               .$targets
+                ;
+
+        return $output;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function getExtension()
+    {
+        return 'mo';
+    }
+
+    private function writeLong($str): string
+    {
+        return pack('V*', $str);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/PhpFileDumper.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/PhpFileDumper.php
new file mode 100644
index 0000000..6163b52
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/PhpFileDumper.php
@@ -0,0 +1,38 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Dumper;
+
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * PhpFileDumper generates PHP files from a message catalogue.
+ *
+ * @author Michel Salib <michelsalib@hotmail.com>
+ */
+class PhpFileDumper extends FileDumper
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = [])
+    {
+        return "<?php\n\nreturn ".var_export($messages->all($domain), true).";\n";
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function getExtension()
+    {
+        return 'php';
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/PoFileDumper.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/PoFileDumper.php
new file mode 100644
index 0000000..0d82281
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/PoFileDumper.php
@@ -0,0 +1,137 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Dumper;
+
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * PoFileDumper generates a gettext formatted string representation of a message catalogue.
+ *
+ * @author Stealth35
+ */
+class PoFileDumper extends FileDumper
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = [])
+    {
+        $output = 'msgid ""'."\n";
+        $output .= 'msgstr ""'."\n";
+        $output .= '"Content-Type: text/plain; charset=UTF-8\n"'."\n";
+        $output .= '"Content-Transfer-Encoding: 8bit\n"'."\n";
+        $output .= '"Language: '.$messages->getLocale().'\n"'."\n";
+        $output .= "\n";
+
+        $newLine = false;
+        foreach ($messages->all($domain) as $source => $target) {
+            if ($newLine) {
+                $output .= "\n";
+            } else {
+                $newLine = true;
+            }
+            $metadata = $messages->getMetadata($source, $domain);
+
+            if (isset($metadata['comments'])) {
+                $output .= $this->formatComments($metadata['comments']);
+            }
+            if (isset($metadata['flags'])) {
+                $output .= $this->formatComments(implode(',', (array) $metadata['flags']), ',');
+            }
+            if (isset($metadata['sources'])) {
+                $output .= $this->formatComments(implode(' ', (array) $metadata['sources']), ':');
+            }
+
+            $sourceRules = $this->getStandardRules($source);
+            $targetRules = $this->getStandardRules($target);
+            if (2 == \count($sourceRules) && [] !== $targetRules) {
+                $output .= sprintf('msgid "%s"'."\n", $this->escape($sourceRules[0]));
+                $output .= sprintf('msgid_plural "%s"'."\n", $this->escape($sourceRules[1]));
+                foreach ($targetRules as $i => $targetRule) {
+                    $output .= sprintf('msgstr[%d] "%s"'."\n", $i, $this->escape($targetRule));
+                }
+            } else {
+                $output .= sprintf('msgid "%s"'."\n", $this->escape($source));
+                $output .= sprintf('msgstr "%s"'."\n", $this->escape($target));
+            }
+        }
+
+        return $output;
+    }
+
+    private function getStandardRules(string $id)
+    {
+        // Partly copied from TranslatorTrait::trans.
+        $parts = [];
+        if (preg_match('/^\|++$/', $id)) {
+            $parts = explode('|', $id);
+        } elseif (preg_match_all('/(?:\|\||[^\|])++/', $id, $matches)) {
+            $parts = $matches[0];
+        }
+
+        $intervalRegexp = <<<'EOF'
+/^(?P<interval>
+    ({\s*
+        (\-?\d+(\.\d+)?[\s*,\s*\-?\d+(\.\d+)?]*)
+    \s*})
+
+        |
+
+    (?P<left_delimiter>[\[\]])
+        \s*
+        (?P<left>-Inf|\-?\d+(\.\d+)?)
+        \s*,\s*
+        (?P<right>\+?Inf|\-?\d+(\.\d+)?)
+        \s*
+    (?P<right_delimiter>[\[\]])
+)\s*(?P<message>.*?)$/xs
+EOF;
+
+        $standardRules = [];
+        foreach ($parts as $part) {
+            $part = trim(str_replace('||', '|', $part));
+
+            if (preg_match($intervalRegexp, $part)) {
+                // Explicit rule is not a standard rule.
+                return [];
+            } else {
+                $standardRules[] = $part;
+            }
+        }
+
+        return $standardRules;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function getExtension()
+    {
+        return 'po';
+    }
+
+    private function escape(string $str): string
+    {
+        return addcslashes($str, "\0..\37\42\134");
+    }
+
+    private function formatComments($comments, string $prefix = ''): ?string
+    {
+        $output = null;
+
+        foreach ((array) $comments as $comment) {
+            $output .= sprintf('#%s %s'."\n", $prefix, $comment);
+        }
+
+        return $output;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/QtFileDumper.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/QtFileDumper.php
new file mode 100644
index 0000000..406e9f0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/QtFileDumper.php
@@ -0,0 +1,61 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Dumper;
+
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * QtFileDumper generates ts files from a message catalogue.
+ *
+ * @author Benjamin Eberlei <kontakt@beberlei.de>
+ */
+class QtFileDumper extends FileDumper
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = [])
+    {
+        $dom = new \DOMDocument('1.0', 'utf-8');
+        $dom->formatOutput = true;
+        $ts = $dom->appendChild($dom->createElement('TS'));
+        $context = $ts->appendChild($dom->createElement('context'));
+        $context->appendChild($dom->createElement('name', $domain));
+
+        foreach ($messages->all($domain) as $source => $target) {
+            $message = $context->appendChild($dom->createElement('message'));
+            $metadata = $messages->getMetadata($source, $domain);
+            if (isset($metadata['sources'])) {
+                foreach ((array) $metadata['sources'] as $location) {
+                    $loc = explode(':', $location, 2);
+                    $location = $message->appendChild($dom->createElement('location'));
+                    $location->setAttribute('filename', $loc[0]);
+                    if (isset($loc[1])) {
+                        $location->setAttribute('line', $loc[1]);
+                    }
+                }
+            }
+            $message->appendChild($dom->createElement('source', $source));
+            $message->appendChild($dom->createElement('translation', $target));
+        }
+
+        return $dom->saveXML();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function getExtension()
+    {
+        return 'ts';
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/XliffFileDumper.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/XliffFileDumper.php
new file mode 100644
index 0000000..f7dbdcd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/XliffFileDumper.php
@@ -0,0 +1,203 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Dumper;
+
+use Symfony\Component\Translation\Exception\InvalidArgumentException;
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * XliffFileDumper generates xliff files from a message catalogue.
+ *
+ * @author Michel Salib <michelsalib@hotmail.com>
+ */
+class XliffFileDumper extends FileDumper
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = [])
+    {
+        $xliffVersion = '1.2';
+        if (\array_key_exists('xliff_version', $options)) {
+            $xliffVersion = $options['xliff_version'];
+        }
+
+        if (\array_key_exists('default_locale', $options)) {
+            $defaultLocale = $options['default_locale'];
+        } else {
+            $defaultLocale = \Locale::getDefault();
+        }
+
+        if ('1.2' === $xliffVersion) {
+            return $this->dumpXliff1($defaultLocale, $messages, $domain, $options);
+        }
+        if ('2.0' === $xliffVersion) {
+            return $this->dumpXliff2($defaultLocale, $messages, $domain);
+        }
+
+        throw new InvalidArgumentException(sprintf('No support implemented for dumping XLIFF version "%s".', $xliffVersion));
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function getExtension()
+    {
+        return 'xlf';
+    }
+
+    private function dumpXliff1(string $defaultLocale, MessageCatalogue $messages, ?string $domain, array $options = [])
+    {
+        $toolInfo = ['tool-id' => 'symfony', 'tool-name' => 'Symfony'];
+        if (\array_key_exists('tool_info', $options)) {
+            $toolInfo = array_merge($toolInfo, $options['tool_info']);
+        }
+
+        $dom = new \DOMDocument('1.0', 'utf-8');
+        $dom->formatOutput = true;
+
+        $xliff = $dom->appendChild($dom->createElement('xliff'));
+        $xliff->setAttribute('version', '1.2');
+        $xliff->setAttribute('xmlns', 'urn:oasis:names:tc:xliff:document:1.2');
+
+        $xliffFile = $xliff->appendChild($dom->createElement('file'));
+        $xliffFile->setAttribute('source-language', str_replace('_', '-', $defaultLocale));
+        $xliffFile->setAttribute('target-language', str_replace('_', '-', $messages->getLocale()));
+        $xliffFile->setAttribute('datatype', 'plaintext');
+        $xliffFile->setAttribute('original', 'file.ext');
+
+        $xliffHead = $xliffFile->appendChild($dom->createElement('header'));
+        $xliffTool = $xliffHead->appendChild($dom->createElement('tool'));
+        foreach ($toolInfo as $id => $value) {
+            $xliffTool->setAttribute($id, $value);
+        }
+
+        $xliffBody = $xliffFile->appendChild($dom->createElement('body'));
+        foreach ($messages->all($domain) as $source => $target) {
+            $translation = $dom->createElement('trans-unit');
+
+            $translation->setAttribute('id', strtr(substr(base64_encode(hash('sha256', $source, true)), 0, 7), '/+', '._'));
+            $translation->setAttribute('resname', $source);
+
+            $s = $translation->appendChild($dom->createElement('source'));
+            $s->appendChild($dom->createTextNode($source));
+
+            // Does the target contain characters requiring a CDATA section?
+            $text = 1 === preg_match('/[&<>]/', $target) ? $dom->createCDATASection($target) : $dom->createTextNode($target);
+
+            $targetElement = $dom->createElement('target');
+            $metadata = $messages->getMetadata($source, $domain);
+            if ($this->hasMetadataArrayInfo('target-attributes', $metadata)) {
+                foreach ($metadata['target-attributes'] as $name => $value) {
+                    $targetElement->setAttribute($name, $value);
+                }
+            }
+            $t = $translation->appendChild($targetElement);
+            $t->appendChild($text);
+
+            if ($this->hasMetadataArrayInfo('notes', $metadata)) {
+                foreach ($metadata['notes'] as $note) {
+                    if (!isset($note['content'])) {
+                        continue;
+                    }
+
+                    $n = $translation->appendChild($dom->createElement('note'));
+                    $n->appendChild($dom->createTextNode($note['content']));
+
+                    if (isset($note['priority'])) {
+                        $n->setAttribute('priority', $note['priority']);
+                    }
+
+                    if (isset($note['from'])) {
+                        $n->setAttribute('from', $note['from']);
+                    }
+                }
+            }
+
+            $xliffBody->appendChild($translation);
+        }
+
+        return $dom->saveXML();
+    }
+
+    private function dumpXliff2(string $defaultLocale, MessageCatalogue $messages, ?string $domain)
+    {
+        $dom = new \DOMDocument('1.0', 'utf-8');
+        $dom->formatOutput = true;
+
+        $xliff = $dom->appendChild($dom->createElement('xliff'));
+        $xliff->setAttribute('xmlns', 'urn:oasis:names:tc:xliff:document:2.0');
+        $xliff->setAttribute('version', '2.0');
+        $xliff->setAttribute('srcLang', str_replace('_', '-', $defaultLocale));
+        $xliff->setAttribute('trgLang', str_replace('_', '-', $messages->getLocale()));
+
+        $xliffFile = $xliff->appendChild($dom->createElement('file'));
+        if (str_ends_with($domain, MessageCatalogue::INTL_DOMAIN_SUFFIX)) {
+            $xliffFile->setAttribute('id', substr($domain, 0, -\strlen(MessageCatalogue::INTL_DOMAIN_SUFFIX)).'.'.$messages->getLocale());
+        } else {
+            $xliffFile->setAttribute('id', $domain.'.'.$messages->getLocale());
+        }
+
+        foreach ($messages->all($domain) as $source => $target) {
+            $translation = $dom->createElement('unit');
+            $translation->setAttribute('id', strtr(substr(base64_encode(hash('sha256', $source, true)), 0, 7), '/+', '._'));
+
+            if (\strlen($source) <= 80) {
+                $translation->setAttribute('name', $source);
+            }
+
+            $metadata = $messages->getMetadata($source, $domain);
+
+            // Add notes section
+            if ($this->hasMetadataArrayInfo('notes', $metadata)) {
+                $notesElement = $dom->createElement('notes');
+                foreach ($metadata['notes'] as $note) {
+                    $n = $dom->createElement('note');
+                    $n->appendChild($dom->createTextNode($note['content'] ?? ''));
+                    unset($note['content']);
+
+                    foreach ($note as $name => $value) {
+                        $n->setAttribute($name, $value);
+                    }
+                    $notesElement->appendChild($n);
+                }
+                $translation->appendChild($notesElement);
+            }
+
+            $segment = $translation->appendChild($dom->createElement('segment'));
+
+            $s = $segment->appendChild($dom->createElement('source'));
+            $s->appendChild($dom->createTextNode($source));
+
+            // Does the target contain characters requiring a CDATA section?
+            $text = 1 === preg_match('/[&<>]/', $target) ? $dom->createCDATASection($target) : $dom->createTextNode($target);
+
+            $targetElement = $dom->createElement('target');
+            if ($this->hasMetadataArrayInfo('target-attributes', $metadata)) {
+                foreach ($metadata['target-attributes'] as $name => $value) {
+                    $targetElement->setAttribute($name, $value);
+                }
+            }
+            $t = $segment->appendChild($targetElement);
+            $t->appendChild($text);
+
+            $xliffFile->appendChild($translation);
+        }
+
+        return $dom->saveXML();
+    }
+
+    private function hasMetadataArrayInfo(string $key, array $metadata = null): bool
+    {
+        return is_iterable($metadata[$key] ?? null);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/YamlFileDumper.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/YamlFileDumper.php
new file mode 100644
index 0000000..0b21e8c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Dumper/YamlFileDumper.php
@@ -0,0 +1,62 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Dumper;
+
+use Symfony\Component\Translation\Exception\LogicException;
+use Symfony\Component\Translation\MessageCatalogue;
+use Symfony\Component\Translation\Util\ArrayConverter;
+use Symfony\Component\Yaml\Yaml;
+
+/**
+ * YamlFileDumper generates yaml files from a message catalogue.
+ *
+ * @author Michel Salib <michelsalib@hotmail.com>
+ */
+class YamlFileDumper extends FileDumper
+{
+    private $extension;
+
+    public function __construct(string $extension = 'yml')
+    {
+        $this->extension = $extension;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = [])
+    {
+        if (!class_exists(Yaml::class)) {
+            throw new LogicException('Dumping translations in the YAML format requires the Symfony Yaml component.');
+        }
+
+        $data = $messages->all($domain);
+
+        if (isset($options['as_tree']) && $options['as_tree']) {
+            $data = ArrayConverter::expandToTree($data);
+        }
+
+        if (isset($options['inline']) && ($inline = (int) $options['inline']) > 0) {
+            return Yaml::dump($data, $inline);
+        }
+
+        return Yaml::dump($data);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function getExtension()
+    {
+        return $this->extension;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/ExceptionInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/ExceptionInterface.php
new file mode 100644
index 0000000..8f9c54e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/ExceptionInterface.php
@@ -0,0 +1,21 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Exception;
+
+/**
+ * Exception interface for all exceptions thrown by the component.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+interface ExceptionInterface extends \Throwable
+{
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/IncompleteDsnException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/IncompleteDsnException.php
new file mode 100644
index 0000000..cb0ce02
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/IncompleteDsnException.php
@@ -0,0 +1,24 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Exception;
+
+class IncompleteDsnException extends InvalidArgumentException
+{
+    public function __construct(string $message, string $dsn = null, \Throwable $previous = null)
+    {
+        if ($dsn) {
+            $message = sprintf('Invalid "%s" provider DSN: ', $dsn).$message;
+        }
+
+        parent::__construct($message, 0, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/InvalidArgumentException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/InvalidArgumentException.php
new file mode 100644
index 0000000..90d0669
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/InvalidArgumentException.php
@@ -0,0 +1,21 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Exception;
+
+/**
+ * Base InvalidArgumentException for the Translation component.
+ *
+ * @author Abdellatif Ait boudad <a.aitboudad@gmail.com>
+ */
+class InvalidArgumentException extends \InvalidArgumentException implements ExceptionInterface
+{
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/InvalidResourceException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/InvalidResourceException.php
new file mode 100644
index 0000000..cf07943
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/InvalidResourceException.php
@@ -0,0 +1,21 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Exception;
+
+/**
+ * Thrown when a resource cannot be loaded.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+class InvalidResourceException extends \InvalidArgumentException implements ExceptionInterface
+{
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/LogicException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/LogicException.php
new file mode 100644
index 0000000..9019c7e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/LogicException.php
@@ -0,0 +1,21 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Exception;
+
+/**
+ * Base LogicException for Translation component.
+ *
+ * @author Abdellatif Ait boudad <a.aitboudad@gmail.com>
+ */
+class LogicException extends \LogicException implements ExceptionInterface
+{
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/MissingRequiredOptionException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/MissingRequiredOptionException.php
new file mode 100644
index 0000000..2b5f808
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/MissingRequiredOptionException.php
@@ -0,0 +1,25 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Exception;
+
+/**
+ * @author Oskar Stark <oskarstark@googlemail.com>
+ */
+class MissingRequiredOptionException extends IncompleteDsnException
+{
+    public function __construct(string $option, string $dsn = null, \Throwable $previous = null)
+    {
+        $message = sprintf('The option "%s" is required but missing.', $option);
+
+        parent::__construct($message, $dsn, $previous);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/NotFoundResourceException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/NotFoundResourceException.php
new file mode 100644
index 0000000..cff73ae
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/NotFoundResourceException.php
@@ -0,0 +1,21 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Exception;
+
+/**
+ * Thrown when a resource does not exist.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+class NotFoundResourceException extends \InvalidArgumentException implements ExceptionInterface
+{
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/ProviderException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/ProviderException.php
new file mode 100644
index 0000000..659c6d7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/ProviderException.php
@@ -0,0 +1,43 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Exception;
+
+use Symfony\Contracts\HttpClient\ResponseInterface;
+
+/**
+ * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @experimental in 5.3
+ */
+class ProviderException extends RuntimeException implements ProviderExceptionInterface
+{
+    private $response;
+    private $debug;
+
+    public function __construct(string $message, ResponseInterface $response, int $code = 0, \Exception $previous = null)
+    {
+        $this->response = $response;
+        $this->debug .= $response->getInfo('debug') ?? '';
+
+        parent::__construct($message, $code, $previous);
+    }
+
+    public function getResponse(): ResponseInterface
+    {
+        return $this->response;
+    }
+
+    public function getDebug(): string
+    {
+        return $this->debug;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/ProviderExceptionInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/ProviderExceptionInterface.php
new file mode 100644
index 0000000..8cf1c51
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/ProviderExceptionInterface.php
@@ -0,0 +1,25 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Exception;
+
+/**
+ * @author Fabien Potencier <fabien@symfony.com>
+ *
+ * @experimental in 5.3
+ */
+interface ProviderExceptionInterface extends ExceptionInterface
+{
+    /*
+     * Returns debug info coming from the Symfony\Contracts\HttpClient\ResponseInterface
+     */
+    public function getDebug(): string;
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/RuntimeException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/RuntimeException.php
new file mode 100644
index 0000000..dcd7940
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/RuntimeException.php
@@ -0,0 +1,21 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Exception;
+
+/**
+ * Base RuntimeException for the Translation component.
+ *
+ * @author Abdellatif Ait boudad <a.aitboudad@gmail.com>
+ */
+class RuntimeException extends \RuntimeException implements ExceptionInterface
+{
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/UnsupportedSchemeException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/UnsupportedSchemeException.php
new file mode 100644
index 0000000..7fbaa8f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Exception/UnsupportedSchemeException.php
@@ -0,0 +1,54 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Exception;
+
+use Symfony\Component\Translation\Bridge;
+use Symfony\Component\Translation\Provider\Dsn;
+
+class UnsupportedSchemeException extends LogicException
+{
+    private const SCHEME_TO_PACKAGE_MAP = [
+        'crowdin' => [
+            'class' => Bridge\Crowdin\CrowdinProviderFactory::class,
+            'package' => 'symfony/crowdin-translation-provider',
+        ],
+        'loco' => [
+            'class' => Bridge\Loco\LocoProviderFactory::class,
+            'package' => 'symfony/loco-translation-provider',
+        ],
+        'lokalise' => [
+            'class' => Bridge\Lokalise\LokaliseProviderFactory::class,
+            'package' => 'symfony/lokalise-translation-provider',
+        ],
+    ];
+
+    public function __construct(Dsn $dsn, string $name = null, array $supported = [])
+    {
+        $provider = $dsn->getScheme();
+        if (false !== $pos = strpos($provider, '+')) {
+            $provider = substr($provider, 0, $pos);
+        }
+        $package = self::SCHEME_TO_PACKAGE_MAP[$provider] ?? null;
+        if ($package && !class_exists($package['class'])) {
+            parent::__construct(sprintf('Unable to synchronize translations via "%s" as the provider is not installed; try running "composer require %s".', $provider, $package['package']));
+
+            return;
+        }
+
+        $message = sprintf('The "%s" scheme is not supported', $dsn->getScheme());
+        if ($name && $supported) {
+            $message .= sprintf('; supported schemes for translation provider "%s" are: "%s"', $name, implode('", "', $supported));
+        }
+
+        parent::__construct($message.'.');
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Extractor/AbstractFileExtractor.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Extractor/AbstractFileExtractor.php
new file mode 100644
index 0000000..729dd17
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Extractor/AbstractFileExtractor.php
@@ -0,0 +1,76 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Extractor;
+
+use Symfony\Component\Translation\Exception\InvalidArgumentException;
+
+/**
+ * Base class used by classes that extract translation messages from files.
+ *
+ * @author Marcos D. Sánchez <marcosdsanchez@gmail.com>
+ */
+abstract class AbstractFileExtractor
+{
+    /**
+     * @param string|iterable $resource Files, a file or a directory
+     *
+     * @return iterable
+     */
+    protected function extractFiles($resource)
+    {
+        if (is_iterable($resource)) {
+            $files = [];
+            foreach ($resource as $file) {
+                if ($this->canBeExtracted($file)) {
+                    $files[] = $this->toSplFileInfo($file);
+                }
+            }
+        } elseif (is_file($resource)) {
+            $files = $this->canBeExtracted($resource) ? [$this->toSplFileInfo($resource)] : [];
+        } else {
+            $files = $this->extractFromDirectory($resource);
+        }
+
+        return $files;
+    }
+
+    private function toSplFileInfo(string $file): \SplFileInfo
+    {
+        return new \SplFileInfo($file);
+    }
+
+    /**
+     * @return bool
+     *
+     * @throws InvalidArgumentException
+     */
+    protected function isFile(string $file)
+    {
+        if (!is_file($file)) {
+            throw new InvalidArgumentException(sprintf('The "%s" file does not exist.', $file));
+        }
+
+        return true;
+    }
+
+    /**
+     * @return bool
+     */
+    abstract protected function canBeExtracted(string $file);
+
+    /**
+     * @param string|array $resource Files, a file or a directory
+     *
+     * @return iterable files to be extracted
+     */
+    abstract protected function extractFromDirectory($resource);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Extractor/ChainExtractor.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Extractor/ChainExtractor.php
new file mode 100644
index 0000000..95dcf15
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Extractor/ChainExtractor.php
@@ -0,0 +1,57 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Extractor;
+
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * ChainExtractor extracts translation messages from template files.
+ *
+ * @author Michel Salib <michelsalib@hotmail.com>
+ */
+class ChainExtractor implements ExtractorInterface
+{
+    /**
+     * The extractors.
+     *
+     * @var ExtractorInterface[]
+     */
+    private $extractors = [];
+
+    /**
+     * Adds a loader to the translation extractor.
+     */
+    public function addExtractor(string $format, ExtractorInterface $extractor)
+    {
+        $this->extractors[$format] = $extractor;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setPrefix(string $prefix)
+    {
+        foreach ($this->extractors as $extractor) {
+            $extractor->setPrefix($prefix);
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function extract($directory, MessageCatalogue $catalogue)
+    {
+        foreach ($this->extractors as $extractor) {
+            $extractor->extract($directory, $catalogue);
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Extractor/ExtractorInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Extractor/ExtractorInterface.php
new file mode 100644
index 0000000..e1db8a9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Extractor/ExtractorInterface.php
@@ -0,0 +1,35 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Extractor;
+
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * Extracts translation messages from a directory or files to the catalogue.
+ * New found messages are injected to the catalogue using the prefix.
+ *
+ * @author Michel Salib <michelsalib@hotmail.com>
+ */
+interface ExtractorInterface
+{
+    /**
+     * Extracts translation messages from files, a file or a directory to the catalogue.
+     *
+     * @param string|iterable<string> $resource Files, a file or a directory
+     */
+    public function extract($resource, MessageCatalogue $catalogue);
+
+    /**
+     * Sets the prefix that should be used for new found messages.
+     */
+    public function setPrefix(string $prefix);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Extractor/PhpExtractor.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Extractor/PhpExtractor.php
new file mode 100644
index 0000000..c5efb5f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Extractor/PhpExtractor.php
@@ -0,0 +1,336 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Extractor;
+
+use Symfony\Component\Finder\Finder;
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * PhpExtractor extracts translation messages from a PHP template.
+ *
+ * @author Michel Salib <michelsalib@hotmail.com>
+ */
+class PhpExtractor extends AbstractFileExtractor implements ExtractorInterface
+{
+    public const MESSAGE_TOKEN = 300;
+    public const METHOD_ARGUMENTS_TOKEN = 1000;
+    public const DOMAIN_TOKEN = 1001;
+
+    /**
+     * Prefix for new found message.
+     *
+     * @var string
+     */
+    private $prefix = '';
+
+    /**
+     * The sequence that captures translation messages.
+     *
+     * @var array
+     */
+    protected $sequences = [
+        [
+            '->',
+            'trans',
+            '(',
+            self::MESSAGE_TOKEN,
+            ',',
+            self::METHOD_ARGUMENTS_TOKEN,
+            ',',
+            self::DOMAIN_TOKEN,
+        ],
+        [
+            '->',
+            'trans',
+            '(',
+            self::MESSAGE_TOKEN,
+        ],
+        [
+            'new',
+            'TranslatableMessage',
+            '(',
+            self::MESSAGE_TOKEN,
+            ',',
+            self::METHOD_ARGUMENTS_TOKEN,
+            ',',
+            self::DOMAIN_TOKEN,
+        ],
+        [
+            'new',
+            'TranslatableMessage',
+            '(',
+            self::MESSAGE_TOKEN,
+        ],
+        [
+            'new',
+            '\\',
+            'Symfony',
+            '\\',
+            'Component',
+            '\\',
+            'Translation',
+            '\\',
+            'TranslatableMessage',
+            '(',
+            self::MESSAGE_TOKEN,
+            ',',
+            self::METHOD_ARGUMENTS_TOKEN,
+            ',',
+            self::DOMAIN_TOKEN,
+        ],
+        [
+            'new',
+            '\Symfony\Component\Translation\TranslatableMessage',
+            '(',
+            self::MESSAGE_TOKEN,
+            ',',
+            self::METHOD_ARGUMENTS_TOKEN,
+            ',',
+            self::DOMAIN_TOKEN,
+        ],
+        [
+            'new',
+            '\\',
+            'Symfony',
+            '\\',
+            'Component',
+            '\\',
+            'Translation',
+            '\\',
+            'TranslatableMessage',
+            '(',
+            self::MESSAGE_TOKEN,
+        ],
+        [
+            'new',
+            '\Symfony\Component\Translation\TranslatableMessage',
+            '(',
+            self::MESSAGE_TOKEN,
+        ],
+        [
+            't',
+            '(',
+            self::MESSAGE_TOKEN,
+            ',',
+            self::METHOD_ARGUMENTS_TOKEN,
+            ',',
+            self::DOMAIN_TOKEN,
+        ],
+        [
+            't',
+            '(',
+            self::MESSAGE_TOKEN,
+        ],
+    ];
+
+    /**
+     * {@inheritdoc}
+     */
+    public function extract($resource, MessageCatalogue $catalog)
+    {
+        $files = $this->extractFiles($resource);
+        foreach ($files as $file) {
+            $this->parseTokens(token_get_all(file_get_contents($file)), $catalog, $file);
+
+            gc_mem_caches();
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setPrefix(string $prefix)
+    {
+        $this->prefix = $prefix;
+    }
+
+    /**
+     * Normalizes a token.
+     *
+     * @param mixed $token
+     *
+     * @return string|null
+     */
+    protected function normalizeToken($token)
+    {
+        if (isset($token[1]) && 'b"' !== $token) {
+            return $token[1];
+        }
+
+        return $token;
+    }
+
+    /**
+     * Seeks to a non-whitespace token.
+     */
+    private function seekToNextRelevantToken(\Iterator $tokenIterator)
+    {
+        for (; $tokenIterator->valid(); $tokenIterator->next()) {
+            $t = $tokenIterator->current();
+            if (\T_WHITESPACE !== $t[0]) {
+                break;
+            }
+        }
+    }
+
+    private function skipMethodArgument(\Iterator $tokenIterator)
+    {
+        $openBraces = 0;
+
+        for (; $tokenIterator->valid(); $tokenIterator->next()) {
+            $t = $tokenIterator->current();
+
+            if ('[' === $t[0] || '(' === $t[0]) {
+                ++$openBraces;
+            }
+
+            if (']' === $t[0] || ')' === $t[0]) {
+                --$openBraces;
+            }
+
+            if ((0 === $openBraces && ',' === $t[0]) || (-1 === $openBraces && ')' === $t[0])) {
+                break;
+            }
+        }
+    }
+
+    /**
+     * Extracts the message from the iterator while the tokens
+     * match allowed message tokens.
+     */
+    private function getValue(\Iterator $tokenIterator)
+    {
+        $message = '';
+        $docToken = '';
+        $docPart = '';
+
+        for (; $tokenIterator->valid(); $tokenIterator->next()) {
+            $t = $tokenIterator->current();
+            if ('.' === $t) {
+                // Concatenate with next token
+                continue;
+            }
+            if (!isset($t[1])) {
+                break;
+            }
+
+            switch ($t[0]) {
+                case \T_START_HEREDOC:
+                    $docToken = $t[1];
+                    break;
+                case \T_ENCAPSED_AND_WHITESPACE:
+                case \T_CONSTANT_ENCAPSED_STRING:
+                    if ('' === $docToken) {
+                        $message .= PhpStringTokenParser::parse($t[1]);
+                    } else {
+                        $docPart = $t[1];
+                    }
+                    break;
+                case \T_END_HEREDOC:
+                    if ($indentation = strspn($t[1], ' ')) {
+                        $docPartWithLineBreaks = $docPart;
+                        $docPart = '';
+
+                        foreach (preg_split('~(\r\n|\n|\r)~', $docPartWithLineBreaks, -1, \PREG_SPLIT_DELIM_CAPTURE) as $str) {
+                            if (\in_array($str, ["\r\n", "\n", "\r"], true)) {
+                                $docPart .= $str;
+                            } else {
+                                $docPart .= substr($str, $indentation);
+                            }
+                        }
+                    }
+
+                    $message .= PhpStringTokenParser::parseDocString($docToken, $docPart);
+                    $docToken = '';
+                    $docPart = '';
+                    break;
+                case \T_WHITESPACE:
+                    break;
+                default:
+                    break 2;
+            }
+        }
+
+        return $message;
+    }
+
+    /**
+     * Extracts trans message from PHP tokens.
+     */
+    protected function parseTokens(array $tokens, MessageCatalogue $catalog, string $filename)
+    {
+        $tokenIterator = new \ArrayIterator($tokens);
+
+        for ($key = 0; $key < $tokenIterator->count(); ++$key) {
+            foreach ($this->sequences as $sequence) {
+                $message = '';
+                $domain = 'messages';
+                $tokenIterator->seek($key);
+
+                foreach ($sequence as $sequenceKey => $item) {
+                    $this->seekToNextRelevantToken($tokenIterator);
+
+                    if ($this->normalizeToken($tokenIterator->current()) === $item) {
+                        $tokenIterator->next();
+                        continue;
+                    } elseif (self::MESSAGE_TOKEN === $item) {
+                        $message = $this->getValue($tokenIterator);
+
+                        if (\count($sequence) === ($sequenceKey + 1)) {
+                            break;
+                        }
+                    } elseif (self::METHOD_ARGUMENTS_TOKEN === $item) {
+                        $this->skipMethodArgument($tokenIterator);
+                    } elseif (self::DOMAIN_TOKEN === $item) {
+                        $domainToken = $this->getValue($tokenIterator);
+                        if ('' !== $domainToken) {
+                            $domain = $domainToken;
+                        }
+
+                        break;
+                    } else {
+                        break;
+                    }
+                }
+
+                if ($message) {
+                    $catalog->set($message, $this->prefix.$message, $domain);
+                    $metadata = $catalog->getMetadata($message, $domain) ?? [];
+                    $normalizedFilename = preg_replace('{[\\\\/]+}', '/', $filename);
+                    $metadata['sources'][] = $normalizedFilename.':'.$tokens[$key][2];
+                    $catalog->setMetadata($message, $metadata, $domain);
+                    break;
+                }
+            }
+        }
+    }
+
+    /**
+     * @return bool
+     *
+     * @throws \InvalidArgumentException
+     */
+    protected function canBeExtracted(string $file)
+    {
+        return $this->isFile($file) && 'php' === pathinfo($file, \PATHINFO_EXTENSION);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function extractFromDirectory($directory)
+    {
+        $finder = new Finder();
+
+        return $finder->files()->name('*.php')->in($directory);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Extractor/PhpStringTokenParser.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Extractor/PhpStringTokenParser.php
new file mode 100644
index 0000000..1d82caf
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Extractor/PhpStringTokenParser.php
@@ -0,0 +1,142 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Extractor;
+
+/*
+ * The following is derived from code at http://github.com/nikic/PHP-Parser
+ *
+ * Copyright (c) 2011 by Nikita Popov
+ *
+ * Some rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *
+ *     * Redistributions in binary form must reproduce the above
+ *       copyright notice, this list of conditions and the following
+ *       disclaimer in the documentation and/or other materials provided
+ *       with the distribution.
+ *
+ *     * The names of the contributors may not be used to endorse or
+ *       promote products derived from this software without specific
+ *       prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+class PhpStringTokenParser
+{
+    protected static $replacements = [
+        '\\' => '\\',
+        '$' => '$',
+        'n' => "\n",
+        'r' => "\r",
+        't' => "\t",
+        'f' => "\f",
+        'v' => "\v",
+        'e' => "\x1B",
+    ];
+
+    /**
+     * Parses a string token.
+     *
+     * @param string $str String token content
+     *
+     * @return string The parsed string
+     */
+    public static function parse(string $str)
+    {
+        $bLength = 0;
+        if ('b' === $str[0]) {
+            $bLength = 1;
+        }
+
+        if ('\'' === $str[$bLength]) {
+            return str_replace(
+                ['\\\\', '\\\''],
+                ['\\', '\''],
+                substr($str, $bLength + 1, -1)
+            );
+        } else {
+            return self::parseEscapeSequences(substr($str, $bLength + 1, -1), '"');
+        }
+    }
+
+    /**
+     * Parses escape sequences in strings (all string types apart from single quoted).
+     *
+     * @param string      $str   String without quotes
+     * @param string|null $quote Quote type
+     *
+     * @return string String with escape sequences parsed
+     */
+    public static function parseEscapeSequences(string $str, string $quote = null)
+    {
+        if (null !== $quote) {
+            $str = str_replace('\\'.$quote, $quote, $str);
+        }
+
+        return preg_replace_callback(
+            '~\\\\([\\\\$nrtfve]|[xX][0-9a-fA-F]{1,2}|[0-7]{1,3})~',
+            [__CLASS__, 'parseCallback'],
+            $str
+        );
+    }
+
+    private static function parseCallback(array $matches): string
+    {
+        $str = $matches[1];
+
+        if (isset(self::$replacements[$str])) {
+            return self::$replacements[$str];
+        } elseif ('x' === $str[0] || 'X' === $str[0]) {
+            return \chr(hexdec($str));
+        } else {
+            return \chr(octdec($str));
+        }
+    }
+
+    /**
+     * Parses a constant doc string.
+     *
+     * @param string $startToken Doc string start token content (<<<SMTHG)
+     * @param string $str        String token content
+     *
+     * @return string Parsed string
+     */
+    public static function parseDocString(string $startToken, string $str)
+    {
+        // strip last newline (thanks tokenizer for sticking it into the string!)
+        $str = preg_replace('~(\r\n|\n|\r)$~', '', $str);
+
+        // nowdoc string
+        if (str_contains($startToken, '\'')) {
+            return $str;
+        }
+
+        return self::parseEscapeSequences($str, null);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Formatter/IntlFormatter.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Formatter/IntlFormatter.php
new file mode 100644
index 0000000..f7f1c36
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Formatter/IntlFormatter.php
@@ -0,0 +1,60 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Formatter;
+
+use Symfony\Component\Translation\Exception\InvalidArgumentException;
+use Symfony\Component\Translation\Exception\LogicException;
+
+/**
+ * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
+ * @author Abdellatif Ait boudad <a.aitboudad@gmail.com>
+ */
+class IntlFormatter implements IntlFormatterInterface
+{
+    private $hasMessageFormatter;
+    private $cache = [];
+
+    /**
+     * {@inheritdoc}
+     */
+    public function formatIntl(string $message, string $locale, array $parameters = []): string
+    {
+        // MessageFormatter constructor throws an exception if the message is empty
+        if ('' === $message) {
+            return '';
+        }
+
+        if (!$formatter = $this->cache[$locale][$message] ?? null) {
+            if (!($this->hasMessageFormatter ?? $this->hasMessageFormatter = class_exists(\MessageFormatter::class))) {
+                throw new LogicException('Cannot parse message translation: please install the "intl" PHP extension or the "symfony/polyfill-intl-messageformatter" package.');
+            }
+            try {
+                $this->cache[$locale][$message] = $formatter = new \MessageFormatter($locale, $message);
+            } catch (\IntlException $e) {
+                throw new InvalidArgumentException(sprintf('Invalid message format (error #%d): ', intl_get_error_code()).intl_get_error_message(), 0, $e);
+            }
+        }
+
+        foreach ($parameters as $key => $value) {
+            if (\in_array($key[0] ?? null, ['%', '{'], true)) {
+                unset($parameters[$key]);
+                $parameters[trim($key, '%{ }')] = $value;
+            }
+        }
+
+        if (false === $message = $formatter->format($parameters)) {
+            throw new InvalidArgumentException(sprintf('Unable to format message (error #%s): ', $formatter->getErrorCode()).$formatter->getErrorMessage());
+        }
+
+        return $message;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Formatter/IntlFormatterInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Formatter/IntlFormatterInterface.php
new file mode 100644
index 0000000..02fc6ac
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Formatter/IntlFormatterInterface.php
@@ -0,0 +1,27 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Formatter;
+
+/**
+ * Formats ICU message patterns.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+interface IntlFormatterInterface
+{
+    /**
+     * Formats a localized message using rules defined by ICU MessageFormat.
+     *
+     * @see http://icu-project.org/apiref/icu4c/classMessageFormat.html#details
+     */
+    public function formatIntl(string $message, string $locale, array $parameters = []): string;
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Formatter/MessageFormatter.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Formatter/MessageFormatter.php
new file mode 100644
index 0000000..0407964
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Formatter/MessageFormatter.php
@@ -0,0 +1,56 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Formatter;
+
+use Symfony\Component\Translation\IdentityTranslator;
+use Symfony\Contracts\Translation\TranslatorInterface;
+
+// Help opcache.preload discover always-needed symbols
+class_exists(IntlFormatter::class);
+
+/**
+ * @author Abdellatif Ait boudad <a.aitboudad@gmail.com>
+ */
+class MessageFormatter implements MessageFormatterInterface, IntlFormatterInterface
+{
+    private $translator;
+    private $intlFormatter;
+
+    /**
+     * @param TranslatorInterface|null $translator An identity translator to use as selector for pluralization
+     */
+    public function __construct(TranslatorInterface $translator = null, IntlFormatterInterface $intlFormatter = null)
+    {
+        $this->translator = $translator ?? new IdentityTranslator();
+        $this->intlFormatter = $intlFormatter ?? new IntlFormatter();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function format(string $message, string $locale, array $parameters = [])
+    {
+        if ($this->translator instanceof TranslatorInterface) {
+            return $this->translator->trans($message, $parameters, null, $locale);
+        }
+
+        return strtr($message, $parameters);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function formatIntl(string $message, string $locale, array $parameters = []): string
+    {
+        return $this->intlFormatter->formatIntl($message, $locale, $parameters);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Formatter/MessageFormatterInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Formatter/MessageFormatterInterface.php
new file mode 100644
index 0000000..b85dbfd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Formatter/MessageFormatterInterface.php
@@ -0,0 +1,30 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Formatter;
+
+/**
+ * @author Guilherme Blanco <guilhermeblanco@hotmail.com>
+ * @author Abdellatif Ait boudad <a.aitboudad@gmail.com>
+ */
+interface MessageFormatterInterface
+{
+    /**
+     * Formats a localized message pattern with given arguments.
+     *
+     * @param string $message    The message (may also be an object that can be cast to string)
+     * @param string $locale     The message locale
+     * @param array  $parameters An array of parameters for the message
+     *
+     * @return string
+     */
+    public function format(string $message, string $locale, array $parameters = []);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/IdentityTranslator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/IdentityTranslator.php
new file mode 100644
index 0000000..46875ed
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/IdentityTranslator.php
@@ -0,0 +1,26 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation;
+
+use Symfony\Contracts\Translation\LocaleAwareInterface;
+use Symfony\Contracts\Translation\TranslatorInterface;
+use Symfony\Contracts\Translation\TranslatorTrait;
+
+/**
+ * IdentityTranslator does not translate anything.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+class IdentityTranslator implements TranslatorInterface, LocaleAwareInterface
+{
+    use TranslatorTrait;
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/LICENSE b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/LICENSE
new file mode 100644
index 0000000..9ff2d0d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2004-2021 Fabien Potencier
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/ArrayLoader.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/ArrayLoader.php
new file mode 100644
index 0000000..0758da8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/ArrayLoader.php
@@ -0,0 +1,58 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Loader;
+
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * ArrayLoader loads translations from a PHP array.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+class ArrayLoader implements LoaderInterface
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function load($resource, string $locale, string $domain = 'messages')
+    {
+        $resource = $this->flatten($resource);
+        $catalogue = new MessageCatalogue($locale);
+        $catalogue->add($resource, $domain);
+
+        return $catalogue;
+    }
+
+    /**
+     * Flattens an nested array of translations.
+     *
+     * The scheme used is:
+     *   'key' => ['key2' => ['key3' => 'value']]
+     * Becomes:
+     *   'key.key2.key3' => 'value'
+     */
+    private function flatten(array $messages): array
+    {
+        $result = [];
+        foreach ($messages as $key => $value) {
+            if (\is_array($value)) {
+                foreach ($this->flatten($value) as $k => $v) {
+                    $result[$key.'.'.$k] = $v;
+                }
+            } else {
+                $result[$key] = $value;
+            }
+        }
+
+        return $result;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/CsvFileLoader.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/CsvFileLoader.php
new file mode 100644
index 0000000..8d5d4db
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/CsvFileLoader.php
@@ -0,0 +1,65 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Loader;
+
+use Symfony\Component\Translation\Exception\NotFoundResourceException;
+
+/**
+ * CsvFileLoader loads translations from CSV files.
+ *
+ * @author Saša Stamenković <umpirsky@gmail.com>
+ */
+class CsvFileLoader extends FileLoader
+{
+    private $delimiter = ';';
+    private $enclosure = '"';
+    private $escape = '\\';
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function loadResource(string $resource)
+    {
+        $messages = [];
+
+        try {
+            $file = new \SplFileObject($resource, 'rb');
+        } catch (\RuntimeException $e) {
+            throw new NotFoundResourceException(sprintf('Error opening file "%s".', $resource), 0, $e);
+        }
+
+        $file->setFlags(\SplFileObject::READ_CSV | \SplFileObject::SKIP_EMPTY);
+        $file->setCsvControl($this->delimiter, $this->enclosure, $this->escape);
+
+        foreach ($file as $data) {
+            if (false === $data) {
+                continue;
+            }
+
+            if ('#' !== substr($data[0], 0, 1) && isset($data[1]) && 2 === \count($data)) {
+                $messages[$data[0]] = $data[1];
+            }
+        }
+
+        return $messages;
+    }
+
+    /**
+     * Sets the delimiter, enclosure, and escape character for CSV.
+     */
+    public function setCsvControl(string $delimiter = ';', string $enclosure = '"', string $escape = '\\')
+    {
+        $this->delimiter = $delimiter;
+        $this->enclosure = $enclosure;
+        $this->escape = $escape;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/FileLoader.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/FileLoader.php
new file mode 100644
index 0000000..4725ea6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/FileLoader.php
@@ -0,0 +1,63 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Loader;
+
+use Symfony\Component\Config\Resource\FileResource;
+use Symfony\Component\Translation\Exception\InvalidResourceException;
+use Symfony\Component\Translation\Exception\NotFoundResourceException;
+
+/**
+ * @author Abdellatif Ait boudad <a.aitboudad@gmail.com>
+ */
+abstract class FileLoader extends ArrayLoader
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function load($resource, string $locale, string $domain = 'messages')
+    {
+        if (!stream_is_local($resource)) {
+            throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource));
+        }
+
+        if (!file_exists($resource)) {
+            throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource));
+        }
+
+        $messages = $this->loadResource($resource);
+
+        // empty resource
+        if (null === $messages) {
+            $messages = [];
+        }
+
+        // not an array
+        if (!\is_array($messages)) {
+            throw new InvalidResourceException(sprintf('Unable to load file "%s".', $resource));
+        }
+
+        $catalogue = parent::load($messages, $locale, $domain);
+
+        if (class_exists(FileResource::class)) {
+            $catalogue->addResource(new FileResource($resource));
+        }
+
+        return $catalogue;
+    }
+
+    /**
+     * @return array
+     *
+     * @throws InvalidResourceException if stream content has an invalid format
+     */
+    abstract protected function loadResource(string $resource);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/IcuDatFileLoader.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/IcuDatFileLoader.php
new file mode 100644
index 0000000..2a1aecc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/IcuDatFileLoader.php
@@ -0,0 +1,61 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Loader;
+
+use Symfony\Component\Config\Resource\FileResource;
+use Symfony\Component\Translation\Exception\InvalidResourceException;
+use Symfony\Component\Translation\Exception\NotFoundResourceException;
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * IcuResFileLoader loads translations from a resource bundle.
+ *
+ * @author stealth35
+ */
+class IcuDatFileLoader extends IcuResFileLoader
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function load($resource, string $locale, string $domain = 'messages')
+    {
+        if (!stream_is_local($resource.'.dat')) {
+            throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource));
+        }
+
+        if (!file_exists($resource.'.dat')) {
+            throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource));
+        }
+
+        try {
+            $rb = new \ResourceBundle($locale, $resource);
+        } catch (\Exception $e) {
+            $rb = null;
+        }
+
+        if (!$rb) {
+            throw new InvalidResourceException(sprintf('Cannot load resource "%s".', $resource));
+        } elseif (intl_is_failure($rb->getErrorCode())) {
+            throw new InvalidResourceException($rb->getErrorMessage(), $rb->getErrorCode());
+        }
+
+        $messages = $this->flatten($rb);
+        $catalogue = new MessageCatalogue($locale);
+        $catalogue->add($messages, $domain);
+
+        if (class_exists(FileResource::class)) {
+            $catalogue->addResource(new FileResource($resource.'.dat'));
+        }
+
+        return $catalogue;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/IcuResFileLoader.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/IcuResFileLoader.php
new file mode 100644
index 0000000..64bbd3e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/IcuResFileLoader.php
@@ -0,0 +1,91 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Loader;
+
+use Symfony\Component\Config\Resource\DirectoryResource;
+use Symfony\Component\Translation\Exception\InvalidResourceException;
+use Symfony\Component\Translation\Exception\NotFoundResourceException;
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * IcuResFileLoader loads translations from a resource bundle.
+ *
+ * @author stealth35
+ */
+class IcuResFileLoader implements LoaderInterface
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function load($resource, string $locale, string $domain = 'messages')
+    {
+        if (!stream_is_local($resource)) {
+            throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource));
+        }
+
+        if (!is_dir($resource)) {
+            throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource));
+        }
+
+        try {
+            $rb = new \ResourceBundle($locale, $resource);
+        } catch (\Exception $e) {
+            $rb = null;
+        }
+
+        if (!$rb) {
+            throw new InvalidResourceException(sprintf('Cannot load resource "%s".', $resource));
+        } elseif (intl_is_failure($rb->getErrorCode())) {
+            throw new InvalidResourceException($rb->getErrorMessage(), $rb->getErrorCode());
+        }
+
+        $messages = $this->flatten($rb);
+        $catalogue = new MessageCatalogue($locale);
+        $catalogue->add($messages, $domain);
+
+        if (class_exists(DirectoryResource::class)) {
+            $catalogue->addResource(new DirectoryResource($resource));
+        }
+
+        return $catalogue;
+    }
+
+    /**
+     * Flattens an ResourceBundle.
+     *
+     * The scheme used is:
+     *   key { key2 { key3 { "value" } } }
+     * Becomes:
+     *   'key.key2.key3' => 'value'
+     *
+     * This function takes an array by reference and will modify it
+     *
+     * @param \ResourceBundle $rb       The ResourceBundle that will be flattened
+     * @param array           $messages Used internally for recursive calls
+     * @param string          $path     Current path being parsed, used internally for recursive calls
+     *
+     * @return array the flattened ResourceBundle
+     */
+    protected function flatten(\ResourceBundle $rb, array &$messages = [], string $path = null)
+    {
+        foreach ($rb as $key => $value) {
+            $nodePath = $path ? $path.'.'.$key : $key;
+            if ($value instanceof \ResourceBundle) {
+                $this->flatten($value, $messages, $nodePath);
+            } else {
+                $messages[$nodePath] = $value;
+            }
+        }
+
+        return $messages;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/IniFileLoader.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/IniFileLoader.php
new file mode 100644
index 0000000..7398f77
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/IniFileLoader.php
@@ -0,0 +1,28 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Loader;
+
+/**
+ * IniFileLoader loads translations from an ini file.
+ *
+ * @author stealth35
+ */
+class IniFileLoader extends FileLoader
+{
+    /**
+     * {@inheritdoc}
+     */
+    protected function loadResource(string $resource)
+    {
+        return parse_ini_file($resource, true);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/JsonFileLoader.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/JsonFileLoader.php
new file mode 100644
index 0000000..5aefba0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/JsonFileLoader.php
@@ -0,0 +1,60 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Loader;
+
+use Symfony\Component\Translation\Exception\InvalidResourceException;
+
+/**
+ * JsonFileLoader loads translations from an json file.
+ *
+ * @author singles
+ */
+class JsonFileLoader extends FileLoader
+{
+    /**
+     * {@inheritdoc}
+     */
+    protected function loadResource(string $resource)
+    {
+        $messages = [];
+        if ($data = file_get_contents($resource)) {
+            $messages = json_decode($data, true);
+
+            if (0 < $errorCode = json_last_error()) {
+                throw new InvalidResourceException('Error parsing JSON: '.$this->getJSONErrorMessage($errorCode));
+            }
+        }
+
+        return $messages;
+    }
+
+    /**
+     * Translates JSON_ERROR_* constant into meaningful message.
+     */
+    private function getJSONErrorMessage(int $errorCode): string
+    {
+        switch ($errorCode) {
+            case \JSON_ERROR_DEPTH:
+                return 'Maximum stack depth exceeded';
+            case \JSON_ERROR_STATE_MISMATCH:
+                return 'Underflow or the modes mismatch';
+            case \JSON_ERROR_CTRL_CHAR:
+                return 'Unexpected control character found';
+            case \JSON_ERROR_SYNTAX:
+                return 'Syntax error, malformed JSON';
+            case \JSON_ERROR_UTF8:
+                return 'Malformed UTF-8 characters, possibly incorrectly encoded';
+            default:
+                return 'Unknown error';
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/LoaderInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/LoaderInterface.php
new file mode 100644
index 0000000..2073f2b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/LoaderInterface.php
@@ -0,0 +1,38 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Loader;
+
+use Symfony\Component\Translation\Exception\InvalidResourceException;
+use Symfony\Component\Translation\Exception\NotFoundResourceException;
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * LoaderInterface is the interface implemented by all translation loaders.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+interface LoaderInterface
+{
+    /**
+     * Loads a locale.
+     *
+     * @param mixed  $resource A resource
+     * @param string $locale   A locale
+     * @param string $domain   The domain
+     *
+     * @return MessageCatalogue A MessageCatalogue instance
+     *
+     * @throws NotFoundResourceException when the resource cannot be found
+     * @throws InvalidResourceException  when the resource cannot be loaded
+     */
+    public function load($resource, string $locale, string $domain = 'messages');
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/MoFileLoader.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/MoFileLoader.php
new file mode 100644
index 0000000..0ff6549
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/MoFileLoader.php
@@ -0,0 +1,140 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Loader;
+
+use Symfony\Component\Translation\Exception\InvalidResourceException;
+
+/**
+ * @copyright Copyright (c) 2010, Union of RAD http://union-of-rad.org (http://lithify.me/)
+ */
+class MoFileLoader extends FileLoader
+{
+    /**
+     * Magic used for validating the format of an MO file as well as
+     * detecting if the machine used to create that file was little endian.
+     */
+    public const MO_LITTLE_ENDIAN_MAGIC = 0x950412de;
+
+    /**
+     * Magic used for validating the format of an MO file as well as
+     * detecting if the machine used to create that file was big endian.
+     */
+    public const MO_BIG_ENDIAN_MAGIC = 0xde120495;
+
+    /**
+     * The size of the header of an MO file in bytes.
+     */
+    public const MO_HEADER_SIZE = 28;
+
+    /**
+     * Parses machine object (MO) format, independent of the machine's endian it
+     * was created on. Both 32bit and 64bit systems are supported.
+     *
+     * {@inheritdoc}
+     */
+    protected function loadResource(string $resource)
+    {
+        $stream = fopen($resource, 'r');
+
+        $stat = fstat($stream);
+
+        if ($stat['size'] < self::MO_HEADER_SIZE) {
+            throw new InvalidResourceException('MO stream content has an invalid format.');
+        }
+        $magic = unpack('V1', fread($stream, 4));
+        $magic = hexdec(substr(dechex(current($magic)), -8));
+
+        if (self::MO_LITTLE_ENDIAN_MAGIC == $magic) {
+            $isBigEndian = false;
+        } elseif (self::MO_BIG_ENDIAN_MAGIC == $magic) {
+            $isBigEndian = true;
+        } else {
+            throw new InvalidResourceException('MO stream content has an invalid format.');
+        }
+
+        // formatRevision
+        $this->readLong($stream, $isBigEndian);
+        $count = $this->readLong($stream, $isBigEndian);
+        $offsetId = $this->readLong($stream, $isBigEndian);
+        $offsetTranslated = $this->readLong($stream, $isBigEndian);
+        // sizeHashes
+        $this->readLong($stream, $isBigEndian);
+        // offsetHashes
+        $this->readLong($stream, $isBigEndian);
+
+        $messages = [];
+
+        for ($i = 0; $i < $count; ++$i) {
+            $pluralId = null;
+            $translated = null;
+
+            fseek($stream, $offsetId + $i * 8);
+
+            $length = $this->readLong($stream, $isBigEndian);
+            $offset = $this->readLong($stream, $isBigEndian);
+
+            if ($length < 1) {
+                continue;
+            }
+
+            fseek($stream, $offset);
+            $singularId = fread($stream, $length);
+
+            if (str_contains($singularId, "\000")) {
+                [$singularId, $pluralId] = explode("\000", $singularId);
+            }
+
+            fseek($stream, $offsetTranslated + $i * 8);
+            $length = $this->readLong($stream, $isBigEndian);
+            $offset = $this->readLong($stream, $isBigEndian);
+
+            if ($length < 1) {
+                continue;
+            }
+
+            fseek($stream, $offset);
+            $translated = fread($stream, $length);
+
+            if (str_contains($translated, "\000")) {
+                $translated = explode("\000", $translated);
+            }
+
+            $ids = ['singular' => $singularId, 'plural' => $pluralId];
+            $item = compact('ids', 'translated');
+
+            if (!empty($item['ids']['singular'])) {
+                $id = $item['ids']['singular'];
+                if (isset($item['ids']['plural'])) {
+                    $id .= '|'.$item['ids']['plural'];
+                }
+                $messages[$id] = stripcslashes(implode('|', (array) $item['translated']));
+            }
+        }
+
+        fclose($stream);
+
+        return array_filter($messages);
+    }
+
+    /**
+     * Reads an unsigned long from stream respecting endianness.
+     *
+     * @param resource $stream
+     */
+    private function readLong($stream, bool $isBigEndian): int
+    {
+        $result = unpack($isBigEndian ? 'N1' : 'V1', fread($stream, 4));
+        $result = current($result);
+
+        return (int) substr($result, -8);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/PhpFileLoader.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/PhpFileLoader.php
new file mode 100644
index 0000000..85f1090
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/PhpFileLoader.php
@@ -0,0 +1,42 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Loader;
+
+/**
+ * PhpFileLoader loads translations from PHP files returning an array of translations.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+class PhpFileLoader extends FileLoader
+{
+    private static $cache = [];
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function loadResource(string $resource)
+    {
+        if ([] === self::$cache && \function_exists('opcache_invalidate') && filter_var(ini_get('opcache.enable'), \FILTER_VALIDATE_BOOLEAN) && (!\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) || filter_var(ini_get('opcache.enable_cli'), \FILTER_VALIDATE_BOOLEAN))) {
+            self::$cache = null;
+        }
+
+        if (null === self::$cache) {
+            return require $resource;
+        }
+
+        if (isset(self::$cache[$resource])) {
+            return self::$cache[$resource];
+        }
+
+        return self::$cache[$resource] = require $resource;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/PoFileLoader.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/PoFileLoader.php
new file mode 100644
index 0000000..ee143e2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/PoFileLoader.php
@@ -0,0 +1,149 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Loader;
+
+/**
+ * @copyright Copyright (c) 2010, Union of RAD https://github.com/UnionOfRAD/lithium
+ * @copyright Copyright (c) 2012, Clemens Tolboom
+ */
+class PoFileLoader extends FileLoader
+{
+    /**
+     * Parses portable object (PO) format.
+     *
+     * From https://www.gnu.org/software/gettext/manual/gettext.html#PO-Files
+     * we should be able to parse files having:
+     *
+     * white-space
+     * #  translator-comments
+     * #. extracted-comments
+     * #: reference...
+     * #, flag...
+     * #| msgid previous-untranslated-string
+     * msgid untranslated-string
+     * msgstr translated-string
+     *
+     * extra or different lines are:
+     *
+     * #| msgctxt previous-context
+     * #| msgid previous-untranslated-string
+     * msgctxt context
+     *
+     * #| msgid previous-untranslated-string-singular
+     * #| msgid_plural previous-untranslated-string-plural
+     * msgid untranslated-string-singular
+     * msgid_plural untranslated-string-plural
+     * msgstr[0] translated-string-case-0
+     * ...
+     * msgstr[N] translated-string-case-n
+     *
+     * The definition states:
+     * - white-space and comments are optional.
+     * - msgid "" that an empty singleline defines a header.
+     *
+     * This parser sacrifices some features of the reference implementation the
+     * differences to that implementation are as follows.
+     * - No support for comments spanning multiple lines.
+     * - Translator and extracted comments are treated as being the same type.
+     * - Message IDs are allowed to have other encodings as just US-ASCII.
+     *
+     * Items with an empty id are ignored.
+     *
+     * {@inheritdoc}
+     */
+    protected function loadResource(string $resource)
+    {
+        $stream = fopen($resource, 'r');
+
+        $defaults = [
+            'ids' => [],
+            'translated' => null,
+        ];
+
+        $messages = [];
+        $item = $defaults;
+        $flags = [];
+
+        while ($line = fgets($stream)) {
+            $line = trim($line);
+
+            if ('' === $line) {
+                // Whitespace indicated current item is done
+                if (!\in_array('fuzzy', $flags)) {
+                    $this->addMessage($messages, $item);
+                }
+                $item = $defaults;
+                $flags = [];
+            } elseif ('#,' === substr($line, 0, 2)) {
+                $flags = array_map('trim', explode(',', substr($line, 2)));
+            } elseif ('msgid "' === substr($line, 0, 7)) {
+                // We start a new msg so save previous
+                // TODO: this fails when comments or contexts are added
+                $this->addMessage($messages, $item);
+                $item = $defaults;
+                $item['ids']['singular'] = substr($line, 7, -1);
+            } elseif ('msgstr "' === substr($line, 0, 8)) {
+                $item['translated'] = substr($line, 8, -1);
+            } elseif ('"' === $line[0]) {
+                $continues = isset($item['translated']) ? 'translated' : 'ids';
+
+                if (\is_array($item[$continues])) {
+                    end($item[$continues]);
+                    $item[$continues][key($item[$continues])] .= substr($line, 1, -1);
+                } else {
+                    $item[$continues] .= substr($line, 1, -1);
+                }
+            } elseif ('msgid_plural "' === substr($line, 0, 14)) {
+                $item['ids']['plural'] = substr($line, 14, -1);
+            } elseif ('msgstr[' === substr($line, 0, 7)) {
+                $size = strpos($line, ']');
+                $item['translated'][(int) substr($line, 7, 1)] = substr($line, $size + 3, -1);
+            }
+        }
+        // save last item
+        if (!\in_array('fuzzy', $flags)) {
+            $this->addMessage($messages, $item);
+        }
+        fclose($stream);
+
+        return $messages;
+    }
+
+    /**
+     * Save a translation item to the messages.
+     *
+     * A .po file could contain by error missing plural indexes. We need to
+     * fix these before saving them.
+     */
+    private function addMessage(array &$messages, array $item)
+    {
+        if (!empty($item['ids']['singular'])) {
+            $id = stripcslashes($item['ids']['singular']);
+            if (isset($item['ids']['plural'])) {
+                $id .= '|'.stripcslashes($item['ids']['plural']);
+            }
+
+            $translated = (array) $item['translated'];
+            // PO are by definition indexed so sort by index.
+            ksort($translated);
+            // Make sure every index is filled.
+            end($translated);
+            $count = key($translated);
+            // Fill missing spots with '-'.
+            $empties = array_fill(0, $count + 1, '-');
+            $translated += $empties;
+            ksort($translated);
+
+            $messages[$id] = stripcslashes(implode('|', $translated));
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/QtFileLoader.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/QtFileLoader.php
new file mode 100644
index 0000000..9cf2fe9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/QtFileLoader.php
@@ -0,0 +1,82 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Loader;
+
+use Symfony\Component\Config\Resource\FileResource;
+use Symfony\Component\Config\Util\XmlUtils;
+use Symfony\Component\Translation\Exception\InvalidResourceException;
+use Symfony\Component\Translation\Exception\NotFoundResourceException;
+use Symfony\Component\Translation\Exception\RuntimeException;
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * QtFileLoader loads translations from QT Translations XML files.
+ *
+ * @author Benjamin Eberlei <kontakt@beberlei.de>
+ */
+class QtFileLoader implements LoaderInterface
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function load($resource, string $locale, string $domain = 'messages')
+    {
+        if (!class_exists(XmlUtils::class)) {
+            throw new RuntimeException('Loading translations from the QT format requires the Symfony Config component.');
+        }
+
+        if (!stream_is_local($resource)) {
+            throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource));
+        }
+
+        if (!file_exists($resource)) {
+            throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource));
+        }
+
+        try {
+            $dom = XmlUtils::loadFile($resource);
+        } catch (\InvalidArgumentException $e) {
+            throw new InvalidResourceException(sprintf('Unable to load "%s".', $resource), $e->getCode(), $e);
+        }
+
+        $internalErrors = libxml_use_internal_errors(true);
+        libxml_clear_errors();
+
+        $xpath = new \DOMXPath($dom);
+        $nodes = $xpath->evaluate('//TS/context/name[text()="'.$domain.'"]');
+
+        $catalogue = new MessageCatalogue($locale);
+        if (1 == $nodes->length) {
+            $translations = $nodes->item(0)->nextSibling->parentNode->parentNode->getElementsByTagName('message');
+            foreach ($translations as $translation) {
+                $translationValue = (string) $translation->getElementsByTagName('translation')->item(0)->nodeValue;
+
+                if (!empty($translationValue)) {
+                    $catalogue->set(
+                        (string) $translation->getElementsByTagName('source')->item(0)->nodeValue,
+                        $translationValue,
+                        $domain
+                    );
+                }
+                $translation = $translation->nextSibling;
+            }
+
+            if (class_exists(FileResource::class)) {
+                $catalogue->addResource(new FileResource($resource));
+            }
+        }
+
+        libxml_use_internal_errors($internalErrors);
+
+        return $catalogue;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/XliffFileLoader.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/XliffFileLoader.php
new file mode 100644
index 0000000..35ad33e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/XliffFileLoader.php
@@ -0,0 +1,232 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Loader;
+
+use Symfony\Component\Config\Resource\FileResource;
+use Symfony\Component\Config\Util\Exception\InvalidXmlException;
+use Symfony\Component\Config\Util\Exception\XmlParsingException;
+use Symfony\Component\Config\Util\XmlUtils;
+use Symfony\Component\Translation\Exception\InvalidResourceException;
+use Symfony\Component\Translation\Exception\NotFoundResourceException;
+use Symfony\Component\Translation\Exception\RuntimeException;
+use Symfony\Component\Translation\MessageCatalogue;
+use Symfony\Component\Translation\Util\XliffUtils;
+
+/**
+ * XliffFileLoader loads translations from XLIFF files.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+class XliffFileLoader implements LoaderInterface
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function load($resource, string $locale, string $domain = 'messages')
+    {
+        if (!class_exists(XmlUtils::class)) {
+            throw new RuntimeException('Loading translations from the Xliff format requires the Symfony Config component.');
+        }
+
+        if (!$this->isXmlString($resource)) {
+            if (!stream_is_local($resource)) {
+                throw new InvalidResourceException(sprintf('This is not a local file "%s".', $resource));
+            }
+
+            if (!file_exists($resource)) {
+                throw new NotFoundResourceException(sprintf('File "%s" not found.', $resource));
+            }
+
+            if (!is_file($resource)) {
+                throw new InvalidResourceException(sprintf('This is neither a file nor an XLIFF string "%s".', $resource));
+            }
+        }
+
+        try {
+            if ($this->isXmlString($resource)) {
+                $dom = XmlUtils::parse($resource);
+            } else {
+                $dom = XmlUtils::loadFile($resource);
+            }
+        } catch (\InvalidArgumentException | XmlParsingException | InvalidXmlException $e) {
+            throw new InvalidResourceException(sprintf('Unable to load "%s": ', $resource).$e->getMessage(), $e->getCode(), $e);
+        }
+
+        if ($errors = XliffUtils::validateSchema($dom)) {
+            throw new InvalidResourceException(sprintf('Invalid resource provided: "%s"; Errors: ', $resource).XliffUtils::getErrorsAsString($errors));
+        }
+
+        $catalogue = new MessageCatalogue($locale);
+        $this->extract($dom, $catalogue, $domain);
+
+        if (is_file($resource) && class_exists(FileResource::class)) {
+            $catalogue->addResource(new FileResource($resource));
+        }
+
+        return $catalogue;
+    }
+
+    private function extract(\DOMDocument $dom, MessageCatalogue $catalogue, string $domain)
+    {
+        $xliffVersion = XliffUtils::getVersionNumber($dom);
+
+        if ('1.2' === $xliffVersion) {
+            $this->extractXliff1($dom, $catalogue, $domain);
+        }
+
+        if ('2.0' === $xliffVersion) {
+            $this->extractXliff2($dom, $catalogue, $domain);
+        }
+    }
+
+    /**
+     * Extract messages and metadata from DOMDocument into a MessageCatalogue.
+     */
+    private function extractXliff1(\DOMDocument $dom, MessageCatalogue $catalogue, string $domain)
+    {
+        $xml = simplexml_import_dom($dom);
+        $encoding = $dom->encoding ? strtoupper($dom->encoding) : null;
+
+        $namespace = 'urn:oasis:names:tc:xliff:document:1.2';
+        $xml->registerXPathNamespace('xliff', $namespace);
+
+        foreach ($xml->xpath('//xliff:file') as $file) {
+            $fileAttributes = $file->attributes();
+
+            $file->registerXPathNamespace('xliff', $namespace);
+
+            foreach ($file->xpath('.//xliff:trans-unit') as $translation) {
+                $attributes = $translation->attributes();
+
+                if (!(isset($attributes['resname']) || isset($translation->source))) {
+                    continue;
+                }
+
+                $source = isset($attributes['resname']) && $attributes['resname'] ? $attributes['resname'] : $translation->source;
+                // If the xlf file has another encoding specified, try to convert it because
+                // simple_xml will always return utf-8 encoded values
+                $target = $this->utf8ToCharset((string) ($translation->target ?? $translation->source), $encoding);
+
+                $catalogue->set((string) $source, $target, $domain);
+
+                $metadata = [
+                    'source' => (string) $translation->source,
+                    'file' => [
+                        'original' => (string) $fileAttributes['original'],
+                    ],
+                ];
+                if ($notes = $this->parseNotesMetadata($translation->note, $encoding)) {
+                    $metadata['notes'] = $notes;
+                }
+
+                if (isset($translation->target) && $translation->target->attributes()) {
+                    $metadata['target-attributes'] = [];
+                    foreach ($translation->target->attributes() as $key => $value) {
+                        $metadata['target-attributes'][$key] = (string) $value;
+                    }
+                }
+
+                if (isset($attributes['id'])) {
+                    $metadata['id'] = (string) $attributes['id'];
+                }
+
+                $catalogue->setMetadata((string) $source, $metadata, $domain);
+            }
+        }
+    }
+
+    private function extractXliff2(\DOMDocument $dom, MessageCatalogue $catalogue, string $domain)
+    {
+        $xml = simplexml_import_dom($dom);
+        $encoding = $dom->encoding ? strtoupper($dom->encoding) : null;
+
+        $xml->registerXPathNamespace('xliff', 'urn:oasis:names:tc:xliff:document:2.0');
+
+        foreach ($xml->xpath('//xliff:unit') as $unit) {
+            foreach ($unit->segment as $segment) {
+                $attributes = $unit->attributes();
+                $source = $attributes['name'] ?? $segment->source;
+
+                // If the xlf file has another encoding specified, try to convert it because
+                // simple_xml will always return utf-8 encoded values
+                $target = $this->utf8ToCharset((string) ($segment->target ?? $segment->source), $encoding);
+
+                $catalogue->set((string) $source, $target, $domain);
+
+                $metadata = [];
+                if (isset($segment->target) && $segment->target->attributes()) {
+                    $metadata['target-attributes'] = [];
+                    foreach ($segment->target->attributes() as $key => $value) {
+                        $metadata['target-attributes'][$key] = (string) $value;
+                    }
+                }
+
+                if (isset($unit->notes)) {
+                    $metadata['notes'] = [];
+                    foreach ($unit->notes->note as $noteNode) {
+                        $note = [];
+                        foreach ($noteNode->attributes() as $key => $value) {
+                            $note[$key] = (string) $value;
+                        }
+                        $note['content'] = (string) $noteNode;
+                        $metadata['notes'][] = $note;
+                    }
+                }
+
+                $catalogue->setMetadata((string) $source, $metadata, $domain);
+            }
+        }
+    }
+
+    /**
+     * Convert a UTF8 string to the specified encoding.
+     */
+    private function utf8ToCharset(string $content, string $encoding = null): string
+    {
+        if ('UTF-8' !== $encoding && !empty($encoding)) {
+            return mb_convert_encoding($content, $encoding, 'UTF-8');
+        }
+
+        return $content;
+    }
+
+    private function parseNotesMetadata(\SimpleXMLElement $noteElement = null, string $encoding = null): array
+    {
+        $notes = [];
+
+        if (null === $noteElement) {
+            return $notes;
+        }
+
+        /** @var \SimpleXMLElement $xmlNote */
+        foreach ($noteElement as $xmlNote) {
+            $noteAttributes = $xmlNote->attributes();
+            $note = ['content' => $this->utf8ToCharset((string) $xmlNote, $encoding)];
+            if (isset($noteAttributes['priority'])) {
+                $note['priority'] = (int) $noteAttributes['priority'];
+            }
+
+            if (isset($noteAttributes['from'])) {
+                $note['from'] = (string) $noteAttributes['from'];
+            }
+
+            $notes[] = $note;
+        }
+
+        return $notes;
+    }
+
+    private function isXmlString(string $resource): bool
+    {
+        return 0 === strpos($resource, '<?xml');
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/YamlFileLoader.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/YamlFileLoader.php
new file mode 100644
index 0000000..8588e18
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Loader/YamlFileLoader.php
@@ -0,0 +1,54 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Loader;
+
+use Symfony\Component\Translation\Exception\InvalidResourceException;
+use Symfony\Component\Translation\Exception\LogicException;
+use Symfony\Component\Yaml\Exception\ParseException;
+use Symfony\Component\Yaml\Parser as YamlParser;
+use Symfony\Component\Yaml\Yaml;
+
+/**
+ * YamlFileLoader loads translations from Yaml files.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+class YamlFileLoader extends FileLoader
+{
+    private $yamlParser;
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function loadResource(string $resource)
+    {
+        if (null === $this->yamlParser) {
+            if (!class_exists(\Symfony\Component\Yaml\Parser::class)) {
+                throw new LogicException('Loading translations from the YAML format requires the Symfony Yaml component.');
+            }
+
+            $this->yamlParser = new YamlParser();
+        }
+
+        try {
+            $messages = $this->yamlParser->parseFile($resource, Yaml::PARSE_CONSTANT);
+        } catch (ParseException $e) {
+            throw new InvalidResourceException(sprintf('The file "%s" does not contain valid YAML: ', $resource).$e->getMessage(), 0, $e);
+        }
+
+        if (null !== $messages && !\is_array($messages)) {
+            throw new InvalidResourceException(sprintf('Unable to load file "%s".', $resource));
+        }
+
+        return $messages ?: [];
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/LoggingTranslator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/LoggingTranslator.php
new file mode 100644
index 0000000..bb93435
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/LoggingTranslator.php
@@ -0,0 +1,135 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation;
+
+use Psr\Log\LoggerInterface;
+use Symfony\Component\Translation\Exception\InvalidArgumentException;
+use Symfony\Contracts\Translation\LocaleAwareInterface;
+use Symfony\Contracts\Translation\TranslatorInterface;
+
+/**
+ * @author Abdellatif Ait boudad <a.aitboudad@gmail.com>
+ */
+class LoggingTranslator implements TranslatorInterface, TranslatorBagInterface, LocaleAwareInterface
+{
+    /**
+     * @var TranslatorInterface|TranslatorBagInterface
+     */
+    private $translator;
+
+    private $logger;
+
+    /**
+     * @param TranslatorInterface $translator The translator must implement TranslatorBagInterface
+     */
+    public function __construct(TranslatorInterface $translator, LoggerInterface $logger)
+    {
+        if (!$translator instanceof TranslatorBagInterface || !$translator instanceof LocaleAwareInterface) {
+            throw new InvalidArgumentException(sprintf('The Translator "%s" must implement TranslatorInterface, TranslatorBagInterface and LocaleAwareInterface.', get_debug_type($translator)));
+        }
+
+        $this->translator = $translator;
+        $this->logger = $logger;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function trans(?string $id, array $parameters = [], string $domain = null, string $locale = null)
+    {
+        $trans = $this->translator->trans($id = (string) $id, $parameters, $domain, $locale);
+        $this->log($id, $domain, $locale);
+
+        return $trans;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setLocale(string $locale)
+    {
+        $prev = $this->translator->getLocale();
+        $this->translator->setLocale($locale);
+        if ($prev === $locale) {
+            return;
+        }
+
+        $this->logger->debug(sprintf('The locale of the translator has changed from "%s" to "%s".', $prev, $locale));
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getLocale()
+    {
+        return $this->translator->getLocale();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getCatalogue(string $locale = null)
+    {
+        return $this->translator->getCatalogue($locale);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getCatalogues(): array
+    {
+        return $this->translator->getCatalogues();
+    }
+
+    /**
+     * Gets the fallback locales.
+     *
+     * @return array The fallback locales
+     */
+    public function getFallbackLocales()
+    {
+        if ($this->translator instanceof Translator || method_exists($this->translator, 'getFallbackLocales')) {
+            return $this->translator->getFallbackLocales();
+        }
+
+        return [];
+    }
+
+    /**
+     * Passes through all unknown calls onto the translator object.
+     */
+    public function __call(string $method, array $args)
+    {
+        return $this->translator->{$method}(...$args);
+    }
+
+    /**
+     * Logs for missing translations.
+     */
+    private function log(string $id, ?string $domain, ?string $locale)
+    {
+        if (null === $domain) {
+            $domain = 'messages';
+        }
+
+        $catalogue = $this->translator->getCatalogue($locale);
+        if ($catalogue->defines($id, $domain)) {
+            return;
+        }
+
+        if ($catalogue->has($id, $domain)) {
+            $this->logger->debug('Translation use fallback catalogue.', ['id' => $id, 'domain' => $domain, 'locale' => $catalogue->getLocale()]);
+        } else {
+            $this->logger->warning('Translation not found.', ['id' => $id, 'domain' => $domain, 'locale' => $catalogue->getLocale()]);
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/MessageCatalogue.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/MessageCatalogue.php
new file mode 100644
index 0000000..ff49b5a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/MessageCatalogue.php
@@ -0,0 +1,314 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation;
+
+use Symfony\Component\Config\Resource\ResourceInterface;
+use Symfony\Component\Translation\Exception\LogicException;
+
+/**
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+class MessageCatalogue implements MessageCatalogueInterface, MetadataAwareInterface
+{
+    private $messages = [];
+    private $metadata = [];
+    private $resources = [];
+    private $locale;
+    private $fallbackCatalogue;
+    private $parent;
+
+    /**
+     * @param array $messages An array of messages classified by domain
+     */
+    public function __construct(string $locale, array $messages = [])
+    {
+        $this->locale = $locale;
+        $this->messages = $messages;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getLocale()
+    {
+        return $this->locale;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getDomains()
+    {
+        $domains = [];
+
+        foreach ($this->messages as $domain => $messages) {
+            if (str_ends_with($domain, self::INTL_DOMAIN_SUFFIX)) {
+                $domain = substr($domain, 0, -\strlen(self::INTL_DOMAIN_SUFFIX));
+            }
+            $domains[$domain] = $domain;
+        }
+
+        return array_values($domains);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function all(string $domain = null)
+    {
+        if (null !== $domain) {
+            // skip messages merge if intl-icu requested explicitly
+            if (str_ends_with($domain, self::INTL_DOMAIN_SUFFIX)) {
+                return $this->messages[$domain] ?? [];
+            }
+
+            return ($this->messages[$domain.self::INTL_DOMAIN_SUFFIX] ?? []) + ($this->messages[$domain] ?? []);
+        }
+
+        $allMessages = [];
+
+        foreach ($this->messages as $domain => $messages) {
+            if (str_ends_with($domain, self::INTL_DOMAIN_SUFFIX)) {
+                $domain = substr($domain, 0, -\strlen(self::INTL_DOMAIN_SUFFIX));
+                $allMessages[$domain] = $messages + ($allMessages[$domain] ?? []);
+            } else {
+                $allMessages[$domain] = ($allMessages[$domain] ?? []) + $messages;
+            }
+        }
+
+        return $allMessages;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function set(string $id, string $translation, string $domain = 'messages')
+    {
+        $this->add([$id => $translation], $domain);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function has(string $id, string $domain = 'messages')
+    {
+        if (isset($this->messages[$domain][$id]) || isset($this->messages[$domain.self::INTL_DOMAIN_SUFFIX][$id])) {
+            return true;
+        }
+
+        if (null !== $this->fallbackCatalogue) {
+            return $this->fallbackCatalogue->has($id, $domain);
+        }
+
+        return false;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function defines(string $id, string $domain = 'messages')
+    {
+        return isset($this->messages[$domain][$id]) || isset($this->messages[$domain.self::INTL_DOMAIN_SUFFIX][$id]);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function get(string $id, string $domain = 'messages')
+    {
+        if (isset($this->messages[$domain.self::INTL_DOMAIN_SUFFIX][$id])) {
+            return $this->messages[$domain.self::INTL_DOMAIN_SUFFIX][$id];
+        }
+
+        if (isset($this->messages[$domain][$id])) {
+            return $this->messages[$domain][$id];
+        }
+
+        if (null !== $this->fallbackCatalogue) {
+            return $this->fallbackCatalogue->get($id, $domain);
+        }
+
+        return $id;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function replace(array $messages, string $domain = 'messages')
+    {
+        unset($this->messages[$domain], $this->messages[$domain.self::INTL_DOMAIN_SUFFIX]);
+
+        $this->add($messages, $domain);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function add(array $messages, string $domain = 'messages')
+    {
+        if (!isset($this->messages[$domain])) {
+            $this->messages[$domain] = [];
+        }
+        $intlDomain = $domain;
+        if (!str_ends_with($domain, self::INTL_DOMAIN_SUFFIX)) {
+            $intlDomain .= self::INTL_DOMAIN_SUFFIX;
+        }
+        foreach ($messages as $id => $message) {
+            if (isset($this->messages[$intlDomain]) && \array_key_exists($id, $this->messages[$intlDomain])) {
+                $this->messages[$intlDomain][$id] = $message;
+            } else {
+                $this->messages[$domain][$id] = $message;
+            }
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function addCatalogue(MessageCatalogueInterface $catalogue)
+    {
+        if ($catalogue->getLocale() !== $this->locale) {
+            throw new LogicException(sprintf('Cannot add a catalogue for locale "%s" as the current locale for this catalogue is "%s".', $catalogue->getLocale(), $this->locale));
+        }
+
+        foreach ($catalogue->all() as $domain => $messages) {
+            if ($intlMessages = $catalogue->all($domain.self::INTL_DOMAIN_SUFFIX)) {
+                $this->add($intlMessages, $domain.self::INTL_DOMAIN_SUFFIX);
+                $messages = array_diff_key($messages, $intlMessages);
+            }
+            $this->add($messages, $domain);
+        }
+
+        foreach ($catalogue->getResources() as $resource) {
+            $this->addResource($resource);
+        }
+
+        if ($catalogue instanceof MetadataAwareInterface) {
+            $metadata = $catalogue->getMetadata('', '');
+            $this->addMetadata($metadata);
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function addFallbackCatalogue(MessageCatalogueInterface $catalogue)
+    {
+        // detect circular references
+        $c = $catalogue;
+        while ($c = $c->getFallbackCatalogue()) {
+            if ($c->getLocale() === $this->getLocale()) {
+                throw new LogicException(sprintf('Circular reference detected when adding a fallback catalogue for locale "%s".', $catalogue->getLocale()));
+            }
+        }
+
+        $c = $this;
+        do {
+            if ($c->getLocale() === $catalogue->getLocale()) {
+                throw new LogicException(sprintf('Circular reference detected when adding a fallback catalogue for locale "%s".', $catalogue->getLocale()));
+            }
+
+            foreach ($catalogue->getResources() as $resource) {
+                $c->addResource($resource);
+            }
+        } while ($c = $c->parent);
+
+        $catalogue->parent = $this;
+        $this->fallbackCatalogue = $catalogue;
+
+        foreach ($catalogue->getResources() as $resource) {
+            $this->addResource($resource);
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getFallbackCatalogue()
+    {
+        return $this->fallbackCatalogue;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getResources()
+    {
+        return array_values($this->resources);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function addResource(ResourceInterface $resource)
+    {
+        $this->resources[$resource->__toString()] = $resource;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getMetadata(string $key = '', string $domain = 'messages')
+    {
+        if ('' == $domain) {
+            return $this->metadata;
+        }
+
+        if (isset($this->metadata[$domain])) {
+            if ('' == $key) {
+                return $this->metadata[$domain];
+            }
+
+            if (isset($this->metadata[$domain][$key])) {
+                return $this->metadata[$domain][$key];
+            }
+        }
+
+        return null;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setMetadata(string $key, $value, string $domain = 'messages')
+    {
+        $this->metadata[$domain][$key] = $value;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function deleteMetadata(string $key = '', string $domain = 'messages')
+    {
+        if ('' == $domain) {
+            $this->metadata = [];
+        } elseif ('' == $key) {
+            unset($this->metadata[$domain]);
+        } else {
+            unset($this->metadata[$domain][$key]);
+        }
+    }
+
+    /**
+     * Adds current values with the new values.
+     *
+     * @param array $values Values to add
+     */
+    private function addMetadata(array $values)
+    {
+        foreach ($values as $domain => $keys) {
+            foreach ($keys as $key => $value) {
+                $this->setMetadata($key, $value, $domain);
+            }
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/MessageCatalogueInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/MessageCatalogueInterface.php
new file mode 100644
index 0000000..5d83bd8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/MessageCatalogueInterface.php
@@ -0,0 +1,138 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation;
+
+use Symfony\Component\Config\Resource\ResourceInterface;
+
+/**
+ * MessageCatalogueInterface.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+interface MessageCatalogueInterface
+{
+    public const INTL_DOMAIN_SUFFIX = '+intl-icu';
+
+    /**
+     * Gets the catalogue locale.
+     *
+     * @return string The locale
+     */
+    public function getLocale();
+
+    /**
+     * Gets the domains.
+     *
+     * @return array An array of domains
+     */
+    public function getDomains();
+
+    /**
+     * Gets the messages within a given domain.
+     *
+     * If $domain is null, it returns all messages.
+     *
+     * @param string $domain The domain name
+     *
+     * @return array An array of messages
+     */
+    public function all(string $domain = null);
+
+    /**
+     * Sets a message translation.
+     *
+     * @param string $id          The message id
+     * @param string $translation The messages translation
+     * @param string $domain      The domain name
+     */
+    public function set(string $id, string $translation, string $domain = 'messages');
+
+    /**
+     * Checks if a message has a translation.
+     *
+     * @param string $id     The message id
+     * @param string $domain The domain name
+     *
+     * @return bool true if the message has a translation, false otherwise
+     */
+    public function has(string $id, string $domain = 'messages');
+
+    /**
+     * Checks if a message has a translation (it does not take into account the fallback mechanism).
+     *
+     * @param string $id     The message id
+     * @param string $domain The domain name
+     *
+     * @return bool true if the message has a translation, false otherwise
+     */
+    public function defines(string $id, string $domain = 'messages');
+
+    /**
+     * Gets a message translation.
+     *
+     * @param string $id     The message id
+     * @param string $domain The domain name
+     *
+     * @return string The message translation
+     */
+    public function get(string $id, string $domain = 'messages');
+
+    /**
+     * Sets translations for a given domain.
+     *
+     * @param array  $messages An array of translations
+     * @param string $domain   The domain name
+     */
+    public function replace(array $messages, string $domain = 'messages');
+
+    /**
+     * Adds translations for a given domain.
+     *
+     * @param array  $messages An array of translations
+     * @param string $domain   The domain name
+     */
+    public function add(array $messages, string $domain = 'messages');
+
+    /**
+     * Merges translations from the given Catalogue into the current one.
+     *
+     * The two catalogues must have the same locale.
+     */
+    public function addCatalogue(self $catalogue);
+
+    /**
+     * Merges translations from the given Catalogue into the current one
+     * only when the translation does not exist.
+     *
+     * This is used to provide default translations when they do not exist for the current locale.
+     */
+    public function addFallbackCatalogue(self $catalogue);
+
+    /**
+     * Gets the fallback catalogue.
+     *
+     * @return self|null A MessageCatalogueInterface instance or null when no fallback has been set
+     */
+    public function getFallbackCatalogue();
+
+    /**
+     * Returns an array of resources loaded to build this collection.
+     *
+     * @return ResourceInterface[] An array of resources
+     */
+    public function getResources();
+
+    /**
+     * Adds a resource for this collection.
+     */
+    public function addResource(ResourceInterface $resource);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/MetadataAwareInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/MetadataAwareInterface.php
new file mode 100644
index 0000000..2216eed
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/MetadataAwareInterface.php
@@ -0,0 +1,46 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation;
+
+/**
+ * MetadataAwareInterface.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+interface MetadataAwareInterface
+{
+    /**
+     * Gets metadata for the given domain and key.
+     *
+     * Passing an empty domain will return an array with all metadata indexed by
+     * domain and then by key. Passing an empty key will return an array with all
+     * metadata for the given domain.
+     *
+     * @return mixed The value that was set or an array with the domains/keys or null
+     */
+    public function getMetadata(string $key = '', string $domain = 'messages');
+
+    /**
+     * Adds metadata to a message domain.
+     *
+     * @param mixed $value
+     */
+    public function setMetadata(string $key, $value, string $domain = 'messages');
+
+    /**
+     * Deletes metadata for the given key and domain.
+     *
+     * Passing an empty domain will delete all metadata. Passing an empty key will
+     * delete all metadata for the given domain.
+     */
+    public function deleteMetadata(string $key = '', string $domain = 'messages');
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/AbstractProviderFactory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/AbstractProviderFactory.php
new file mode 100644
index 0000000..17442fd
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/AbstractProviderFactory.php
@@ -0,0 +1,45 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Provider;
+
+use Symfony\Component\Translation\Exception\IncompleteDsnException;
+
+abstract class AbstractProviderFactory implements ProviderFactoryInterface
+{
+    public function supports(Dsn $dsn): bool
+    {
+        return \in_array($dsn->getScheme(), $this->getSupportedSchemes(), true);
+    }
+
+    /**
+     * @return string[]
+     */
+    abstract protected function getSupportedSchemes(): array;
+
+    protected function getUser(Dsn $dsn): string
+    {
+        if (null === $user = $dsn->getUser()) {
+            throw new IncompleteDsnException('User is not set.', $dsn->getOriginalDsn());
+        }
+
+        return $user;
+    }
+
+    protected function getPassword(Dsn $dsn): string
+    {
+        if (null === $password = $dsn->getPassword()) {
+            throw new IncompleteDsnException('Password is not set.', $dsn->getOriginalDsn());
+        }
+
+        return $password;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/Dsn.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/Dsn.php
new file mode 100644
index 0000000..820cabf
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/Dsn.php
@@ -0,0 +1,110 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Provider;
+
+use Symfony\Component\Translation\Exception\InvalidArgumentException;
+use Symfony\Component\Translation\Exception\MissingRequiredOptionException;
+
+/**
+ * @author Fabien Potencier <fabien@symfony.com>
+ * @author Oskar Stark <oskarstark@googlemail.com>
+ */
+final class Dsn
+{
+    private $scheme;
+    private $host;
+    private $user;
+    private $password;
+    private $port;
+    private $path;
+    private $options;
+    private $originalDsn;
+
+    public function __construct(string $dsn)
+    {
+        $this->originalDsn = $dsn;
+
+        if (false === $parsedDsn = parse_url($dsn)) {
+            throw new InvalidArgumentException(sprintf('The "%s" translation provider DSN is invalid.', $dsn));
+        }
+
+        if (!isset($parsedDsn['scheme'])) {
+            throw new InvalidArgumentException(sprintf('The "%s" translation provider DSN must contain a scheme.', $dsn));
+        }
+        $this->scheme = $parsedDsn['scheme'];
+
+        if (!isset($parsedDsn['host'])) {
+            throw new InvalidArgumentException(sprintf('The "%s" translation provider DSN must contain a host (use "default" by default).', $dsn));
+        }
+        $this->host = $parsedDsn['host'];
+
+        $this->user = '' !== ($parsedDsn['user'] ?? '') ? urldecode($parsedDsn['user']) : null;
+        $this->password = '' !== ($parsedDsn['pass'] ?? '') ? urldecode($parsedDsn['pass']) : null;
+        $this->port = $parsedDsn['port'] ?? null;
+        $this->path = $parsedDsn['path'] ?? null;
+        parse_str($parsedDsn['query'] ?? '', $this->options);
+    }
+
+    public function getScheme(): string
+    {
+        return $this->scheme;
+    }
+
+    public function getHost(): string
+    {
+        return $this->host;
+    }
+
+    public function getUser(): ?string
+    {
+        return $this->user;
+    }
+
+    public function getPassword(): ?string
+    {
+        return $this->password;
+    }
+
+    public function getPort(int $default = null): ?int
+    {
+        return $this->port ?? $default;
+    }
+
+    public function getOption(string $key, $default = null)
+    {
+        return $this->options[$key] ?? $default;
+    }
+
+    public function getRequiredOption(string $key)
+    {
+        if (!\array_key_exists($key, $this->options) || '' === trim($this->options[$key])) {
+            throw new MissingRequiredOptionException($key);
+        }
+
+        return $this->options[$key];
+    }
+
+    public function getOptions(): array
+    {
+        return $this->options;
+    }
+
+    public function getPath(): ?string
+    {
+        return $this->path;
+    }
+
+    public function getOriginalDsn(): string
+    {
+        return $this->originalDsn;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/FilteringProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/FilteringProvider.php
new file mode 100644
index 0000000..0307cda
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/FilteringProvider.php
@@ -0,0 +1,67 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Provider;
+
+use Symfony\Component\Translation\TranslatorBag;
+use Symfony\Component\Translation\TranslatorBagInterface;
+
+/**
+ * Filters domains and locales between the Translator config values and those specific to each provider.
+ *
+ * @author Mathieu Santostefano <msantostefano@protonmail.com>
+ *
+ * @experimental in 5.3
+ */
+class FilteringProvider implements ProviderInterface
+{
+    private $provider;
+    private $locales;
+    private $domains;
+
+    public function __construct(ProviderInterface $provider, array $locales, array $domains = [])
+    {
+        $this->provider = $provider;
+        $this->locales = $locales;
+        $this->domains = $domains;
+    }
+
+    public function __toString(): string
+    {
+        return (string) $this->provider;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function write(TranslatorBagInterface $translatorBag): void
+    {
+        $this->provider->write($translatorBag);
+    }
+
+    public function read(array $domains, array $locales): TranslatorBag
+    {
+        $domains = !$this->domains ? $domains : array_intersect($this->domains, $domains);
+        $locales = array_intersect($this->locales, $locales);
+
+        return $this->provider->read($domains, $locales);
+    }
+
+    public function delete(TranslatorBagInterface $translatorBag): void
+    {
+        $this->provider->delete($translatorBag);
+    }
+
+    public function getDomains(): array
+    {
+        return $this->domains;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/NullProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/NullProvider.php
new file mode 100644
index 0000000..785fcaa
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/NullProvider.php
@@ -0,0 +1,41 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Provider;
+
+use Symfony\Component\Translation\TranslatorBag;
+use Symfony\Component\Translation\TranslatorBagInterface;
+
+/**
+ * @author Mathieu Santostefano <msantostefano@protonmail.com>
+ *
+ * @experimental in 5.3
+ */
+class NullProvider implements ProviderInterface
+{
+    public function __toString(): string
+    {
+        return 'null';
+    }
+
+    public function write(TranslatorBagInterface $translatorBag, bool $override = false): void
+    {
+    }
+
+    public function read(array $domains, array $locales): TranslatorBag
+    {
+        return new TranslatorBag();
+    }
+
+    public function delete(TranslatorBagInterface $translatorBag): void
+    {
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/NullProviderFactory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/NullProviderFactory.php
new file mode 100644
index 0000000..6ddbd85
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/NullProviderFactory.php
@@ -0,0 +1,36 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Provider;
+
+use Symfony\Component\Translation\Exception\UnsupportedSchemeException;
+
+/**
+ * @author Mathieu Santostefano <msantostefano@protonmail.com>
+ *
+ * @experimental in 5.3
+ */
+final class NullProviderFactory extends AbstractProviderFactory
+{
+    public function create(Dsn $dsn): ProviderInterface
+    {
+        if ('null' === $dsn->getScheme()) {
+            return new NullProvider();
+        }
+
+        throw new UnsupportedSchemeException($dsn, 'null', $this->getSupportedSchemes());
+    }
+
+    protected function getSupportedSchemes(): array
+    {
+        return ['null'];
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/ProviderFactoryInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/ProviderFactoryInterface.php
new file mode 100644
index 0000000..3fd4494
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/ProviderFactoryInterface.php
@@ -0,0 +1,26 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Provider;
+
+use Symfony\Component\Translation\Exception\IncompleteDsnException;
+use Symfony\Component\Translation\Exception\UnsupportedSchemeException;
+
+interface ProviderFactoryInterface
+{
+    /**
+     * @throws UnsupportedSchemeException
+     * @throws IncompleteDsnException
+     */
+    public function create(Dsn $dsn): ProviderInterface;
+
+    public function supports(Dsn $dsn): bool;
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/ProviderInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/ProviderInterface.php
new file mode 100644
index 0000000..a32193f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/ProviderInterface.php
@@ -0,0 +1,32 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Provider;
+
+use Symfony\Component\Translation\TranslatorBag;
+use Symfony\Component\Translation\TranslatorBagInterface;
+
+interface ProviderInterface
+{
+    public function __toString(): string;
+
+    /**
+     * Translations available in the TranslatorBag only must be created.
+     * Translations available in both the TranslatorBag and on the provider
+     * must be overwritten.
+     * Translations available on the provider only must be kept.
+     */
+    public function write(TranslatorBagInterface $translatorBag): void;
+
+    public function read(array $domains, array $locales): TranslatorBag;
+
+    public function delete(TranslatorBagInterface $translatorBag): void;
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/TranslationProviderCollection.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/TranslationProviderCollection.php
new file mode 100644
index 0000000..9963cb9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/TranslationProviderCollection.php
@@ -0,0 +1,59 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Provider;
+
+use Symfony\Component\Translation\Exception\InvalidArgumentException;
+
+/**
+ * @author Mathieu Santostefano <msantostefano@protonmail.com>
+ *
+ * @experimental in 5.3
+ */
+final class TranslationProviderCollection
+{
+    private $providers;
+
+    /**
+     * @param array<string, ProviderInterface> $providers
+     */
+    public function __construct(iterable $providers)
+    {
+        $this->providers = [];
+        foreach ($providers as $name => $provider) {
+            $this->providers[$name] = $provider;
+        }
+    }
+
+    public function __toString(): string
+    {
+        return '['.implode(',', array_keys($this->providers)).']';
+    }
+
+    public function has(string $name): bool
+    {
+        return isset($this->providers[$name]);
+    }
+
+    public function get(string $name): ProviderInterface
+    {
+        if (!$this->has($name)) {
+            throw new InvalidArgumentException(sprintf('Provider "%s" not found. Available: "%s".', $name, (string) $this));
+        }
+
+        return $this->providers[$name];
+    }
+
+    public function keys(): array
+    {
+        return array_keys($this->providers);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/TranslationProviderCollectionFactory.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/TranslationProviderCollectionFactory.php
new file mode 100644
index 0000000..43f4a34
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Provider/TranslationProviderCollectionFactory.php
@@ -0,0 +1,59 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Provider;
+
+use Symfony\Component\Translation\Exception\UnsupportedSchemeException;
+
+/**
+ * @author Mathieu Santostefano <msantostefano@protonmail.com>
+ *
+ * @experimental in 5.3
+ */
+class TranslationProviderCollectionFactory
+{
+    private $factories;
+    private $enabledLocales;
+
+    /**
+     * @param ProviderFactoryInterface[] $factories
+     */
+    public function __construct(iterable $factories, array $enabledLocales)
+    {
+        $this->factories = $factories;
+        $this->enabledLocales = $enabledLocales;
+    }
+
+    public function fromConfig(array $config): TranslationProviderCollection
+    {
+        $providers = [];
+        foreach ($config as $name => $currentConfig) {
+            $providers[$name] = $this->fromDsnObject(
+                new Dsn($currentConfig['dsn']),
+                !$currentConfig['locales'] ? $this->enabledLocales : $currentConfig['locales'],
+                !$currentConfig['domains'] ? [] : $currentConfig['domains']
+            );
+        }
+
+        return new TranslationProviderCollection($providers);
+    }
+
+    public function fromDsnObject(Dsn $dsn, array $locales, array $domains = []): ProviderInterface
+    {
+        foreach ($this->factories as $factory) {
+            if ($factory->supports($dsn)) {
+                return new FilteringProvider($factory->create($dsn), $locales, $domains);
+            }
+        }
+
+        throw new UnsupportedSchemeException($dsn);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/PseudoLocalizationTranslator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/PseudoLocalizationTranslator.php
new file mode 100644
index 0000000..49f122e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/PseudoLocalizationTranslator.php
@@ -0,0 +1,364 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation;
+
+use Symfony\Contracts\Translation\TranslatorInterface;
+
+/**
+ * This translator should only be used in a development environment.
+ */
+final class PseudoLocalizationTranslator implements TranslatorInterface
+{
+    private const EXPANSION_CHARACTER = '~';
+
+    private $translator;
+    private $accents;
+    private $expansionFactor;
+    private $brackets;
+    private $parseHTML;
+    private $localizableHTMLAttributes;
+
+    /**
+     * Available options:
+     *  * accents:
+     *      type: boolean
+     *      default: true
+     *      description: replace ASCII characters of the translated string with accented versions or similar characters
+     *      example: if true, "foo" => "ƒöö".
+     *
+     *  * expansion_factor:
+     *      type: float
+     *      default: 1
+     *      validation: it must be greater than or equal to 1
+     *      description: expand the translated string by the given factor with spaces and tildes
+     *      example: if 2, "foo" => "~foo ~"
+     *
+     *  * brackets:
+     *      type: boolean
+     *      default: true
+     *      description: wrap the translated string with brackets
+     *      example: if true, "foo" => "[foo]"
+     *
+     *  * parse_html:
+     *      type: boolean
+     *      default: false
+     *      description: parse the translated string as HTML - looking for HTML tags has a performance impact but allows to preserve them from alterations - it also allows to compute the visible translated string length which is useful to correctly expand ot when it contains HTML
+     *      warning: unclosed tags are unsupported, they will be fixed (closed) by the parser - eg, "foo <div>bar" => "foo <div>bar</div>"
+     *
+     *  * localizable_html_attributes:
+     *      type: string[]
+     *      default: []
+     *      description: the list of HTML attributes whose values can be altered - it is only useful when the "parse_html" option is set to true
+     *      example: if ["title"], and with the "accents" option set to true, "<a href="#" title="Go to your profile">Profile</a>" => "<a href="#" title="Ĝö ţö ýöûŕ þŕöƒîļé">Þŕöƒîļé</a>" - if "title" was not in the "localizable_html_attributes" list, the title attribute data would be left unchanged.
+     */
+    public function __construct(TranslatorInterface $translator, array $options = [])
+    {
+        $this->translator = $translator;
+        $this->accents = $options['accents'] ?? true;
+
+        if (1.0 > ($this->expansionFactor = $options['expansion_factor'] ?? 1.0)) {
+            throw new \InvalidArgumentException('The expansion factor must be greater than or equal to 1.');
+        }
+
+        $this->brackets = $options['brackets'] ?? true;
+
+        $this->parseHTML = $options['parse_html'] ?? false;
+        if ($this->parseHTML && !$this->accents && 1.0 === $this->expansionFactor) {
+            $this->parseHTML = false;
+        }
+
+        $this->localizableHTMLAttributes = $options['localizable_html_attributes'] ?? [];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function trans(string $id, array $parameters = [], string $domain = null, string $locale = null)
+    {
+        $trans = '';
+        $visibleText = '';
+
+        foreach ($this->getParts($this->translator->trans($id, $parameters, $domain, $locale)) as [$visible, $localizable, $text]) {
+            if ($visible) {
+                $visibleText .= $text;
+            }
+
+            if (!$localizable) {
+                $trans .= $text;
+
+                continue;
+            }
+
+            $this->addAccents($trans, $text);
+        }
+
+        $this->expand($trans, $visibleText);
+
+        $this->addBrackets($trans);
+
+        return $trans;
+    }
+
+    public function getLocale(): string
+    {
+        return $this->translator->getLocale();
+    }
+
+    private function getParts(string $originalTrans): array
+    {
+        if (!$this->parseHTML) {
+            return [[true, true, $originalTrans]];
+        }
+
+        $html = mb_convert_encoding($originalTrans, 'HTML-ENTITIES', mb_detect_encoding($originalTrans, null, true) ?: 'UTF-8');
+
+        $useInternalErrors = libxml_use_internal_errors(true);
+
+        $dom = new \DOMDocument();
+        $dom->loadHTML('<trans>'.$html.'</trans>');
+
+        libxml_clear_errors();
+        libxml_use_internal_errors($useInternalErrors);
+
+        return $this->parseNode($dom->childNodes->item(1)->childNodes->item(0)->childNodes->item(0));
+    }
+
+    private function parseNode(\DOMNode $node): array
+    {
+        $parts = [];
+
+        foreach ($node->childNodes as $childNode) {
+            if (!$childNode instanceof \DOMElement) {
+                $parts[] = [true, true, $childNode->nodeValue];
+
+                continue;
+            }
+
+            $parts[] = [false, false, '<'.$childNode->tagName];
+
+            /** @var \DOMAttr $attribute */
+            foreach ($childNode->attributes as $attribute) {
+                $parts[] = [false, false, ' '.$attribute->nodeName.'="'];
+
+                $localizableAttribute = \in_array($attribute->nodeName, $this->localizableHTMLAttributes, true);
+                foreach (preg_split('/(&(?:amp|quot|#039|lt|gt);+)/', htmlspecialchars($attribute->nodeValue, \ENT_QUOTES, 'UTF-8'), -1, \PREG_SPLIT_DELIM_CAPTURE) as $i => $match) {
+                    if ('' === $match) {
+                        continue;
+                    }
+
+                    $parts[] = [false, $localizableAttribute && 0 === $i % 2, $match];
+                }
+
+                $parts[] = [false, false, '"'];
+            }
+
+            $parts[] = [false, false, '>'];
+
+            $parts = array_merge($parts, $this->parseNode($childNode, $parts));
+
+            $parts[] = [false, false, '</'.$childNode->tagName.'>'];
+        }
+
+        return $parts;
+    }
+
+    private function addAccents(string &$trans, string $text): void
+    {
+        $trans .= $this->accents ? strtr($text, [
+            ' ' => ' ',
+            '!' => '¡',
+            '"' => '″',
+            '#' => '♯',
+            '$' => '€',
+            '%' => '‰',
+            '&' => '⅋',
+            '\'' => '´',
+            '(' => '{',
+            ')' => '}',
+            '*' => '⁎',
+            '+' => '⁺',
+            ',' => '،',
+            '-' => '‐',
+            '.' => '·',
+            '/' => '⁄',
+            '0' => '⓪',
+            '1' => '①',
+            '2' => '②',
+            '3' => '③',
+            '4' => '④',
+            '5' => '⑤',
+            '6' => '⑥',
+            '7' => '⑦',
+            '8' => '⑧',
+            '9' => '⑨',
+            ':' => '∶',
+            ';' => '⁏',
+            '<' => '≤',
+            '=' => '≂',
+            '>' => '≥',
+            '?' => '¿',
+            '@' => '՞',
+            'A' => 'Å',
+            'B' => 'Ɓ',
+            'C' => 'Ç',
+            'D' => 'Ð',
+            'E' => 'É',
+            'F' => 'Ƒ',
+            'G' => 'Ĝ',
+            'H' => 'Ĥ',
+            'I' => 'Î',
+            'J' => 'Ĵ',
+            'K' => 'Ķ',
+            'L' => 'Ļ',
+            'M' => 'Ṁ',
+            'N' => 'Ñ',
+            'O' => 'Ö',
+            'P' => 'Þ',
+            'Q' => 'Ǫ',
+            'R' => 'Ŕ',
+            'S' => 'Š',
+            'T' => 'Ţ',
+            'U' => 'Û',
+            'V' => 'Ṽ',
+            'W' => 'Ŵ',
+            'X' => 'Ẋ',
+            'Y' => 'Ý',
+            'Z' => 'Ž',
+            '[' => '⁅',
+            '\\' => '∖',
+            ']' => '⁆',
+            '^' => '˄',
+            '_' => '‿',
+            '`' => '‵',
+            'a' => 'å',
+            'b' => 'ƀ',
+            'c' => 'ç',
+            'd' => 'ð',
+            'e' => 'é',
+            'f' => 'ƒ',
+            'g' => 'ĝ',
+            'h' => 'ĥ',
+            'i' => 'î',
+            'j' => 'ĵ',
+            'k' => 'ķ',
+            'l' => 'ļ',
+            'm' => 'ɱ',
+            'n' => 'ñ',
+            'o' => 'ö',
+            'p' => 'þ',
+            'q' => 'ǫ',
+            'r' => 'ŕ',
+            's' => 'š',
+            't' => 'ţ',
+            'u' => 'û',
+            'v' => 'ṽ',
+            'w' => 'ŵ',
+            'x' => 'ẋ',
+            'y' => 'ý',
+            'z' => 'ž',
+            '{' => '(',
+            '|' => '¦',
+            '}' => ')',
+            '~' => '˞',
+        ]) : $text;
+    }
+
+    private function expand(string &$trans, string $visibleText): void
+    {
+        if (1.0 >= $this->expansionFactor) {
+            return;
+        }
+
+        $visibleLength = $this->strlen($visibleText);
+        $missingLength = (int) (ceil($visibleLength * $this->expansionFactor)) - $visibleLength;
+        if ($this->brackets) {
+            $missingLength -= 2;
+        }
+
+        if (0 >= $missingLength) {
+            return;
+        }
+
+        $words = [];
+        $wordsCount = 0;
+        foreach (preg_split('/ +/', $visibleText, -1, \PREG_SPLIT_NO_EMPTY) as $word) {
+            $wordLength = $this->strlen($word);
+
+            if ($wordLength >= $missingLength) {
+                continue;
+            }
+
+            if (!isset($words[$wordLength])) {
+                $words[$wordLength] = 0;
+            }
+
+            ++$words[$wordLength];
+            ++$wordsCount;
+        }
+
+        if (!$words) {
+            $trans .= 1 === $missingLength ? self::EXPANSION_CHARACTER : ' '.str_repeat(self::EXPANSION_CHARACTER, $missingLength - 1);
+
+            return;
+        }
+
+        arsort($words, \SORT_NUMERIC);
+
+        $longestWordLength = max(array_keys($words));
+
+        while (true) {
+            $r = mt_rand(1, $wordsCount);
+
+            foreach ($words as $length => $count) {
+                $r -= $count;
+                if ($r <= 0) {
+                    break;
+                }
+            }
+
+            $trans .= ' '.str_repeat(self::EXPANSION_CHARACTER, $length);
+
+            $missingLength -= $length + 1;
+
+            if (0 === $missingLength) {
+                return;
+            }
+
+            while ($longestWordLength >= $missingLength) {
+                $wordsCount -= $words[$longestWordLength];
+                unset($words[$longestWordLength]);
+
+                if (!$words) {
+                    $trans .= 1 === $missingLength ? self::EXPANSION_CHARACTER : ' '.str_repeat(self::EXPANSION_CHARACTER, $missingLength - 1);
+
+                    return;
+                }
+
+                $longestWordLength = max(array_keys($words));
+            }
+        }
+    }
+
+    private function addBrackets(string &$trans): void
+    {
+        if (!$this->brackets) {
+            return;
+        }
+
+        $trans = '['.$trans.']';
+    }
+
+    private function strlen(string $s): int
+    {
+        return false === ($encoding = mb_detect_encoding($s, null, true)) ? \strlen($s) : mb_strlen($s, $encoding);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/README.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/README.md
new file mode 100644
index 0000000..720bee3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/README.md
@@ -0,0 +1,33 @@
+Translation Component
+=====================
+
+The Translation component provides tools to internationalize your application.
+
+Getting Started
+---------------
+
+```
+$ composer require symfony/translation
+```
+
+```php
+use Symfony\Component\Translation\Translator;
+use Symfony\Component\Translation\Loader\ArrayLoader;
+
+$translator = new Translator('fr_FR');
+$translator->addLoader('array', new ArrayLoader());
+$translator->addResource('array', [
+    'Hello World!' => 'Bonjour !',
+], 'fr_FR');
+
+echo $translator->trans('Hello World!'); // outputs « Bonjour ! »
+```
+
+Resources
+---------
+
+ * [Documentation](https://symfony.com/doc/current/translation.html)
+ * [Contributing](https://symfony.com/doc/current/contributing/index.html)
+ * [Report issues](https://github.com/symfony/symfony/issues) and
+   [send Pull Requests](https://github.com/symfony/symfony/pulls)
+   in the [main Symfony repository](https://github.com/symfony/symfony)
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Reader/TranslationReader.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Reader/TranslationReader.php
new file mode 100644
index 0000000..9e51b15
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Reader/TranslationReader.php
@@ -0,0 +1,62 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Reader;
+
+use Symfony\Component\Finder\Finder;
+use Symfony\Component\Translation\Loader\LoaderInterface;
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * TranslationReader reads translation messages from translation files.
+ *
+ * @author Michel Salib <michelsalib@hotmail.com>
+ */
+class TranslationReader implements TranslationReaderInterface
+{
+    /**
+     * Loaders used for import.
+     *
+     * @var array
+     */
+    private $loaders = [];
+
+    /**
+     * Adds a loader to the translation extractor.
+     *
+     * @param string $format The format of the loader
+     */
+    public function addLoader(string $format, LoaderInterface $loader)
+    {
+        $this->loaders[$format] = $loader;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function read(string $directory, MessageCatalogue $catalogue)
+    {
+        if (!is_dir($directory)) {
+            return;
+        }
+
+        foreach ($this->loaders as $format => $loader) {
+            // load any existing translation files
+            $finder = new Finder();
+            $extension = $catalogue->getLocale().'.'.$format;
+            $files = $finder->files()->name('*.'.$extension)->in($directory);
+            foreach ($files as $file) {
+                $domain = substr($file->getFilename(), 0, -1 * \strlen($extension) - 1);
+                $catalogue->addCatalogue($loader->load($file->getPathname(), $catalogue->getLocale(), $domain));
+            }
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Reader/TranslationReaderInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Reader/TranslationReaderInterface.php
new file mode 100644
index 0000000..bc37204
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Reader/TranslationReaderInterface.php
@@ -0,0 +1,27 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Reader;
+
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * TranslationReader reads translation messages from translation files.
+ *
+ * @author Tobias Nyholm <tobias.nyholm@gmail.com>
+ */
+interface TranslationReaderInterface
+{
+    /**
+     * Reads translation messages from a directory to the catalogue.
+     */
+    public function read(string $directory, MessageCatalogue $catalogue);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Resources/bin/translation-status.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Resources/bin/translation-status.php
new file mode 100644
index 0000000..4e0723b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Resources/bin/translation-status.php
@@ -0,0 +1,207 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+$usageInstructions = <<<END
+
+  Usage instructions
+  -------------------------------------------------------------------------------
+
+  $ cd symfony-code-root-directory/
+
+  # show the translation status of all locales
+  $ php translation-status.php
+
+  # show the translation status of all locales and all their missing translations
+  $ php translation-status.php -v
+
+  # show the status of a single locale
+  $ php translation-status.php fr
+
+  # show the status of a single locale and all its missing translations
+  $ php translation-status.php fr -v
+
+END;
+
+$config = [
+    // if TRUE, the full list of missing translations is displayed
+    'verbose_output' => false,
+    // NULL = analyze all locales
+    'locale_to_analyze' => null,
+    // the reference files all the other translations are compared to
+    'original_files' => [
+        'src/Symfony/Component/Form/Resources/translations/validators.en.xlf',
+        'src/Symfony/Component/Security/Core/Resources/translations/security.en.xlf',
+        'src/Symfony/Component/Validator/Resources/translations/validators.en.xlf',
+    ],
+];
+
+$argc = $_SERVER['argc'];
+$argv = $_SERVER['argv'];
+
+if ($argc > 3) {
+    echo str_replace('translation-status.php', $argv[0], $usageInstructions);
+    exit(1);
+}
+
+foreach (array_slice($argv, 1) as $argumentOrOption) {
+    if (str_starts_with($argumentOrOption, '-')) {
+        $config['verbose_output'] = true;
+    } else {
+        $config['locale_to_analyze'] = $argumentOrOption;
+    }
+}
+
+foreach ($config['original_files'] as $originalFilePath) {
+    if (!file_exists($originalFilePath)) {
+        echo sprintf('The following file does not exist. Make sure that you execute this command at the root dir of the Symfony code repository.%s  %s', \PHP_EOL, $originalFilePath);
+        exit(1);
+    }
+}
+
+$totalMissingTranslations = 0;
+
+foreach ($config['original_files'] as $originalFilePath) {
+    $translationFilePaths = findTranslationFiles($originalFilePath, $config['locale_to_analyze']);
+    $translationStatus = calculateTranslationStatus($originalFilePath, $translationFilePaths);
+
+    $totalMissingTranslations += array_sum(array_map(function ($translation) {
+        return count($translation['missingKeys']);
+    }, array_values($translationStatus)));
+
+    printTranslationStatus($originalFilePath, $translationStatus, $config['verbose_output']);
+}
+
+exit($totalMissingTranslations > 0 ? 1 : 0);
+
+function findTranslationFiles($originalFilePath, $localeToAnalyze)
+{
+    $translations = [];
+
+    $translationsDir = dirname($originalFilePath);
+    $originalFileName = basename($originalFilePath);
+    $translationFileNamePattern = str_replace('.en.', '.*.', $originalFileName);
+
+    $translationFiles = glob($translationsDir.'/'.$translationFileNamePattern, \GLOB_NOSORT);
+    sort($translationFiles);
+    foreach ($translationFiles as $filePath) {
+        $locale = extractLocaleFromFilePath($filePath);
+
+        if (null !== $localeToAnalyze && $locale !== $localeToAnalyze) {
+            continue;
+        }
+
+        $translations[$locale] = $filePath;
+    }
+
+    return $translations;
+}
+
+function calculateTranslationStatus($originalFilePath, $translationFilePaths)
+{
+    $translationStatus = [];
+    $allTranslationKeys = extractTranslationKeys($originalFilePath);
+
+    foreach ($translationFilePaths as $locale => $translationPath) {
+        $translatedKeys = extractTranslationKeys($translationPath);
+        $missingKeys = array_diff_key($allTranslationKeys, $translatedKeys);
+
+        $translationStatus[$locale] = [
+            'total' => count($allTranslationKeys),
+            'translated' => count($translatedKeys),
+            'missingKeys' => $missingKeys,
+        ];
+    }
+
+    return $translationStatus;
+}
+
+function printTranslationStatus($originalFilePath, $translationStatus, $verboseOutput)
+{
+    printTitle($originalFilePath);
+    printTable($translationStatus, $verboseOutput);
+    echo \PHP_EOL.\PHP_EOL;
+}
+
+function extractLocaleFromFilePath($filePath)
+{
+    $parts = explode('.', $filePath);
+
+    return $parts[count($parts) - 2];
+}
+
+function extractTranslationKeys($filePath)
+{
+    $translationKeys = [];
+    $contents = new \SimpleXMLElement(file_get_contents($filePath));
+
+    foreach ($contents->file->body->{'trans-unit'} as $translationKey) {
+        $translationId = (string) $translationKey['id'];
+        $translationKey = (string) $translationKey->source;
+
+        $translationKeys[$translationId] = $translationKey;
+    }
+
+    return $translationKeys;
+}
+
+function printTitle($title)
+{
+    echo $title.\PHP_EOL;
+    echo str_repeat('=', strlen($title)).\PHP_EOL.\PHP_EOL;
+}
+
+function printTable($translations, $verboseOutput)
+{
+    if (0 === count($translations)) {
+        echo 'No translations found';
+
+        return;
+    }
+    $longestLocaleNameLength = max(array_map('strlen', array_keys($translations)));
+
+    foreach ($translations as $locale => $translation) {
+        if ($translation['translated'] > $translation['total']) {
+            textColorRed();
+        } elseif ($translation['translated'] === $translation['total']) {
+            textColorGreen();
+        }
+
+        echo sprintf('| Locale: %-'.$longestLocaleNameLength.'s | Translated: %d/%d', $locale, $translation['translated'], $translation['total']).\PHP_EOL;
+
+        textColorNormal();
+
+        if (true === $verboseOutput && count($translation['missingKeys']) > 0) {
+            echo str_repeat('-', 80).\PHP_EOL;
+            echo '| Missing Translations:'.\PHP_EOL;
+
+            foreach ($translation['missingKeys'] as $id => $content) {
+                echo sprintf('|   (id=%s) %s', $id, $content).\PHP_EOL;
+            }
+
+            echo str_repeat('-', 80).\PHP_EOL;
+        }
+    }
+}
+
+function textColorGreen()
+{
+    echo "\033[32m";
+}
+
+function textColorRed()
+{
+    echo "\033[31m";
+}
+
+function textColorNormal()
+{
+    echo "\033[0m";
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Resources/data/parents.json b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Resources/data/parents.json
new file mode 100644
index 0000000..a67458a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Resources/data/parents.json
@@ -0,0 +1,140 @@
+{
+    "az_Cyrl": "root",
+    "bs_Cyrl": "root",
+    "en_150": "en_001",
+    "en_AG": "en_001",
+    "en_AI": "en_001",
+    "en_AT": "en_150",
+    "en_AU": "en_001",
+    "en_BB": "en_001",
+    "en_BE": "en_150",
+    "en_BM": "en_001",
+    "en_BS": "en_001",
+    "en_BW": "en_001",
+    "en_BZ": "en_001",
+    "en_CA": "en_001",
+    "en_CC": "en_001",
+    "en_CH": "en_150",
+    "en_CK": "en_001",
+    "en_CM": "en_001",
+    "en_CX": "en_001",
+    "en_CY": "en_001",
+    "en_DE": "en_150",
+    "en_DG": "en_001",
+    "en_DK": "en_150",
+    "en_DM": "en_001",
+    "en_ER": "en_001",
+    "en_FI": "en_150",
+    "en_FJ": "en_001",
+    "en_FK": "en_001",
+    "en_FM": "en_001",
+    "en_GB": "en_001",
+    "en_GD": "en_001",
+    "en_GG": "en_001",
+    "en_GH": "en_001",
+    "en_GI": "en_001",
+    "en_GM": "en_001",
+    "en_GY": "en_001",
+    "en_HK": "en_001",
+    "en_IE": "en_001",
+    "en_IL": "en_001",
+    "en_IM": "en_001",
+    "en_IN": "en_001",
+    "en_IO": "en_001",
+    "en_JE": "en_001",
+    "en_JM": "en_001",
+    "en_KE": "en_001",
+    "en_KI": "en_001",
+    "en_KN": "en_001",
+    "en_KY": "en_001",
+    "en_LC": "en_001",
+    "en_LR": "en_001",
+    "en_LS": "en_001",
+    "en_MG": "en_001",
+    "en_MO": "en_001",
+    "en_MS": "en_001",
+    "en_MT": "en_001",
+    "en_MU": "en_001",
+    "en_MW": "en_001",
+    "en_MY": "en_001",
+    "en_NA": "en_001",
+    "en_NF": "en_001",
+    "en_NG": "en_001",
+    "en_NL": "en_150",
+    "en_NR": "en_001",
+    "en_NU": "en_001",
+    "en_NZ": "en_001",
+    "en_PG": "en_001",
+    "en_PH": "en_001",
+    "en_PK": "en_001",
+    "en_PN": "en_001",
+    "en_PW": "en_001",
+    "en_RW": "en_001",
+    "en_SB": "en_001",
+    "en_SC": "en_001",
+    "en_SD": "en_001",
+    "en_SE": "en_150",
+    "en_SG": "en_001",
+    "en_SH": "en_001",
+    "en_SI": "en_150",
+    "en_SL": "en_001",
+    "en_SS": "en_001",
+    "en_SX": "en_001",
+    "en_SZ": "en_001",
+    "en_TC": "en_001",
+    "en_TK": "en_001",
+    "en_TO": "en_001",
+    "en_TT": "en_001",
+    "en_TV": "en_001",
+    "en_TZ": "en_001",
+    "en_UG": "en_001",
+    "en_VC": "en_001",
+    "en_VG": "en_001",
+    "en_VU": "en_001",
+    "en_WS": "en_001",
+    "en_ZA": "en_001",
+    "en_ZM": "en_001",
+    "en_ZW": "en_001",
+    "es_AR": "es_419",
+    "es_BO": "es_419",
+    "es_BR": "es_419",
+    "es_BZ": "es_419",
+    "es_CL": "es_419",
+    "es_CO": "es_419",
+    "es_CR": "es_419",
+    "es_CU": "es_419",
+    "es_DO": "es_419",
+    "es_EC": "es_419",
+    "es_GT": "es_419",
+    "es_HN": "es_419",
+    "es_MX": "es_419",
+    "es_NI": "es_419",
+    "es_PA": "es_419",
+    "es_PE": "es_419",
+    "es_PR": "es_419",
+    "es_PY": "es_419",
+    "es_SV": "es_419",
+    "es_US": "es_419",
+    "es_UY": "es_419",
+    "es_VE": "es_419",
+    "ff_Adlm": "root",
+    "nb": "no",
+    "nn": "no",
+    "pa_Arab": "root",
+    "pt_AO": "pt_PT",
+    "pt_CH": "pt_PT",
+    "pt_CV": "pt_PT",
+    "pt_GQ": "pt_PT",
+    "pt_GW": "pt_PT",
+    "pt_LU": "pt_PT",
+    "pt_MO": "pt_PT",
+    "pt_MZ": "pt_PT",
+    "pt_ST": "pt_PT",
+    "pt_TL": "pt_PT",
+    "sd_Deva": "root",
+    "sr_Latn": "root",
+    "uz_Arab": "root",
+    "uz_Cyrl": "root",
+    "zh_Hant": "root",
+    "zh_Hant_MO": "zh_Hant_HK"
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Resources/functions.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Resources/functions.php
new file mode 100644
index 0000000..901d2f8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Resources/functions.php
@@ -0,0 +1,22 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation;
+
+if (!\function_exists(t::class)) {
+    /**
+     * @author Nate Wiebe <nate@northern.co>
+     */
+    function t(string $message, array $parameters = [], string $domain = null): TranslatableMessage
+    {
+        return new TranslatableMessage($message, $parameters, $domain);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Resources/schemas/xliff-core-1.2-strict.xsd b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Resources/schemas/xliff-core-1.2-strict.xsd
new file mode 100644
index 0000000..dface62
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Resources/schemas/xliff-core-1.2-strict.xsd
@@ -0,0 +1,2223 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+
+May-19-2004:
+- Changed the <choice> for ElemType_header, moving minOccurs="0" maxOccurs="unbounded" from its elements
+to <choice> itself.
+- Added <choice> for ElemType_trans-unit to allow "any order" for <context-group>, <count-group>, <prop-group>, <note>, and
+<alt-trans>.
+
+Oct-2005
+- updated version info to 1.2
+- equiv-trans attribute to <trans-unit> element
+- merged-trans attribute for <group> element
+- Add the <seg-source> element as optional in the <trans-unit> and <alt-trans> content models, at the same level as <source>
+- Create a new value "seg" for the mtype attribute of the <mrk> element
+- Add mid as an optional attribute for the <alt-trans> element
+
+Nov-14-2005
+- Changed name attribute for <context-group> from required to optional
+- Added extension point at <xliff>
+
+Jan-9-2006
+- Added alttranstype type attribute to <alt-trans>, and values
+
+Jan-10-2006
+- Corrected error with overwritten purposeValueList
+- Corrected name="AttrType_Version",  attribute should have been "name"
+
+-->
+<xsd:schema xmlns:xlf="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:oasis:names:tc:xliff:document:1.2" xml:lang="en">
+  <!-- Import for xml:lang and xml:space -->
+  <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+  <!-- Attributes Lists -->
+  <xsd:simpleType name="XTend">
+    <xsd:restriction base="xsd:string">
+      <xsd:pattern value="x-[^\s]+"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="context-typeValueList">
+    <xsd:annotation>
+      <xsd:documentation>Values for the attribute 'context-type'.</xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="database">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a database content.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="element">
+        <xsd:annotation>
+          <xsd:documentation>Indicates the content of an element within an XML document.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="elementtitle">
+        <xsd:annotation>
+          <xsd:documentation>Indicates the name of an element within an XML document.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="linenumber">
+        <xsd:annotation>
+          <xsd:documentation>Indicates the line number from the sourcefile (see context-type="sourcefile") where the &lt;source&gt; is found.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="numparams">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a the number of parameters contained within the &lt;source&gt;.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="paramnotes">
+        <xsd:annotation>
+          <xsd:documentation>Indicates notes pertaining to the parameters in the &lt;source&gt;.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="record">
+        <xsd:annotation>
+          <xsd:documentation>Indicates the content of a record within a database.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="recordtitle">
+        <xsd:annotation>
+          <xsd:documentation>Indicates the name of a record within a database.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="sourcefile">
+        <xsd:annotation>
+          <xsd:documentation>Indicates the original source file in the case that multiple files are merged to form the original file from which the XLIFF file is created. This differs from the original &lt;file&gt; attribute in that this sourcefile is one of many that make up that file.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="count-typeValueList">
+    <xsd:annotation>
+      <xsd:documentation>Values for the attribute 'count-type'.</xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:NMTOKEN">
+      <xsd:enumeration value="num-usages">
+        <xsd:annotation>
+          <xsd:documentation>Indicates the count units are items that are used X times in a certain context; example: this is a reusable text unit which is used 42 times in other texts.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="repetition">
+        <xsd:annotation>
+          <xsd:documentation>Indicates the count units are translation units existing already in the same document.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="total">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a total count.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="InlineDelimitersValueList">
+    <xsd:annotation>
+      <xsd:documentation>Values for the attribute 'ctype' when used other elements than &lt;ph&gt; or &lt;x&gt;.</xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:NMTOKEN">
+      <xsd:enumeration value="bold">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a run of bolded text.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="italic">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a run of text in italics.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="underlined">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a run of underlined text.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="link">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a run of hyper-text.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="InlinePlaceholdersValueList">
+    <xsd:annotation>
+      <xsd:documentation>Values for the attribute 'ctype' when used with &lt;ph&gt; or &lt;x&gt;.</xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:NMTOKEN">
+      <xsd:enumeration value="image">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a inline image.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="pb">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a page break.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="lb">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a line break.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="mime-typeValueList">
+    <xsd:restriction base="xsd:string">
+      <xsd:pattern value="(text|multipart|message|application|image|audio|video|model)(/.+)*"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="datatypeValueList">
+    <xsd:annotation>
+      <xsd:documentation>Values for the attribute 'datatype'.</xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:NMTOKEN">
+      <xsd:enumeration value="asp">
+        <xsd:annotation>
+          <xsd:documentation>Indicates Active Server Page data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="c">
+        <xsd:annotation>
+          <xsd:documentation>Indicates C source file data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="cdf">
+        <xsd:annotation>
+          <xsd:documentation>Indicates Channel Definition Format (CDF) data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="cfm">
+        <xsd:annotation>
+          <xsd:documentation>Indicates ColdFusion data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="cpp">
+        <xsd:annotation>
+          <xsd:documentation>Indicates C++ source file data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="csharp">
+        <xsd:annotation>
+          <xsd:documentation>Indicates C-Sharp data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="cstring">
+        <xsd:annotation>
+          <xsd:documentation>Indicates strings from C, ASM, and driver files data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="csv">
+        <xsd:annotation>
+          <xsd:documentation>Indicates comma-separated values data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="database">
+        <xsd:annotation>
+          <xsd:documentation>Indicates database data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="documentfooter">
+        <xsd:annotation>
+          <xsd:documentation>Indicates portions of document that follows data and contains metadata.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="documentheader">
+        <xsd:annotation>
+          <xsd:documentation>Indicates portions of document that precedes data and contains metadata.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="filedialog">
+        <xsd:annotation>
+          <xsd:documentation>Indicates data from standard UI file operations dialogs (e.g., Open, Save, Save As, Export, Import).</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="form">
+        <xsd:annotation>
+          <xsd:documentation>Indicates standard user input screen data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="html">
+        <xsd:annotation>
+          <xsd:documentation>Indicates HyperText Markup Language (HTML) data - document instance.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="htmlbody">
+        <xsd:annotation>
+          <xsd:documentation>Indicates content within an HTML document’s &lt;body&gt; element.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="ini">
+        <xsd:annotation>
+          <xsd:documentation>Indicates Windows INI file data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="interleaf">
+        <xsd:annotation>
+          <xsd:documentation>Indicates Interleaf data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="javaclass">
+        <xsd:annotation>
+          <xsd:documentation>Indicates Java source file data (extension '.java').</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="javapropertyresourcebundle">
+        <xsd:annotation>
+          <xsd:documentation>Indicates Java property resource bundle data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="javalistresourcebundle">
+        <xsd:annotation>
+          <xsd:documentation>Indicates Java list resource bundle data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="javascript">
+        <xsd:annotation>
+          <xsd:documentation>Indicates JavaScript source file data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="jscript">
+        <xsd:annotation>
+          <xsd:documentation>Indicates JScript source file data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="layout">
+        <xsd:annotation>
+          <xsd:documentation>Indicates information relating to formatting.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="lisp">
+        <xsd:annotation>
+          <xsd:documentation>Indicates LISP source file data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="margin">
+        <xsd:annotation>
+          <xsd:documentation>Indicates information relating to margin formats.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="menufile">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a file containing menu.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="messagefile">
+        <xsd:annotation>
+          <xsd:documentation>Indicates numerically identified string table.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="mif">
+        <xsd:annotation>
+          <xsd:documentation>Indicates Maker Interchange Format (MIF) data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="mimetype">
+        <xsd:annotation>
+          <xsd:documentation>Indicates that the datatype attribute value is a MIME Type value and is defined in the mime-type attribute.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="mo">
+        <xsd:annotation>
+          <xsd:documentation>Indicates GNU Machine Object data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="msglib">
+        <xsd:annotation>
+          <xsd:documentation>Indicates Message Librarian strings created by Novell's Message Librarian Tool.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="pagefooter">
+        <xsd:annotation>
+          <xsd:documentation>Indicates information to be displayed at the bottom of each page of a document.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="pageheader">
+        <xsd:annotation>
+          <xsd:documentation>Indicates information to be displayed at the top of each page of a document.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="parameters">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a list of property values (e.g., settings within INI files or preferences dialog).</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="pascal">
+        <xsd:annotation>
+          <xsd:documentation>Indicates Pascal source file data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="php">
+        <xsd:annotation>
+          <xsd:documentation>Indicates Hypertext Preprocessor data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="plaintext">
+        <xsd:annotation>
+          <xsd:documentation>Indicates plain text file (no formatting other than, possibly, wrapping).</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="po">
+        <xsd:annotation>
+          <xsd:documentation>Indicates GNU Portable Object file.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="report">
+        <xsd:annotation>
+          <xsd:documentation>Indicates dynamically generated user defined document. e.g. Oracle Report, Crystal Report, etc.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="resources">
+        <xsd:annotation>
+          <xsd:documentation>Indicates Windows .NET binary resources.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="resx">
+        <xsd:annotation>
+          <xsd:documentation>Indicates Windows .NET Resources.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="rtf">
+        <xsd:annotation>
+          <xsd:documentation>Indicates Rich Text Format (RTF) data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="sgml">
+        <xsd:annotation>
+          <xsd:documentation>Indicates Standard Generalized Markup Language (SGML) data - document instance.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="sgmldtd">
+        <xsd:annotation>
+          <xsd:documentation>Indicates Standard Generalized Markup Language (SGML) data - Document Type Definition (DTD).</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="svg">
+        <xsd:annotation>
+          <xsd:documentation>Indicates Scalable Vector Graphic (SVG) data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="vbscript">
+        <xsd:annotation>
+          <xsd:documentation>Indicates VisualBasic Script source file.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="warning">
+        <xsd:annotation>
+          <xsd:documentation>Indicates warning message.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="winres">
+        <xsd:annotation>
+          <xsd:documentation>Indicates Windows (Win32) resources (i.e. resources extracted from an RC script, a message file, or a compiled file).</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="xhtml">
+        <xsd:annotation>
+          <xsd:documentation>Indicates Extensible HyperText Markup Language (XHTML) data - document instance.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="xml">
+        <xsd:annotation>
+          <xsd:documentation>Indicates Extensible Markup Language (XML) data - document instance.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="xmldtd">
+        <xsd:annotation>
+          <xsd:documentation>Indicates Extensible Markup Language (XML) data - Document Type Definition (DTD).</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="xsl">
+        <xsd:annotation>
+          <xsd:documentation>Indicates Extensible Stylesheet Language (XSL) data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="xul">
+        <xsd:annotation>
+          <xsd:documentation>Indicates XUL elements.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="mtypeValueList">
+    <xsd:annotation>
+      <xsd:documentation>Values for the attribute 'mtype'.</xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:NMTOKEN">
+      <xsd:enumeration value="abbrev">
+        <xsd:annotation>
+          <xsd:documentation>Indicates the marked text is an abbreviation.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="abbreviated-form">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.8: A term resulting from the omission of any part of the full term while designating the same concept.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="abbreviation">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.8.1: An abbreviated form of a simple term resulting from the omission of some of its letters (e.g. 'adj.' for 'adjective').</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="acronym">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.8.4: An abbreviated form of a term made up of letters from the full form of a multiword term strung together into a sequence pronounced only syllabically (e.g. 'radar' for 'radio detecting and ranging').</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="appellation">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620: A proper-name term, such as the name of an agency or other proper entity.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="collocation">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.18.1: A recurrent word combination characterized by cohesion in that the components of the collocation must co-occur within an utterance or series of utterances, even though they do not necessarily have to maintain immediate proximity to one another.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="common-name">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.5: A synonym for an international scientific term that is used in general discourse in a given language.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="datetime">
+        <xsd:annotation>
+          <xsd:documentation>Indicates the marked text is a date and/or time.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="equation">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.15: An expression used to represent a concept based on a statement that two mathematical expressions are, for instance, equal as identified by the equal sign (=), or assigned to one another by a similar sign.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="expanded-form">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.7: The complete representation of a term for which there is an abbreviated form.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="formula">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.14: Figures, symbols or the like used to express a concept briefly, such as a mathematical or chemical formula.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="head-term">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.1: The concept designation that has been chosen to head a terminological record.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="initialism">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.8.3: An abbreviated form of a term consisting of some of the initial letters of the words making up a multiword term or the term elements making up a compound term when these letters are pronounced individually (e.g. 'BSE' for 'bovine spongiform encephalopathy').</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="international-scientific-term">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.4: A term that is part of an international scientific nomenclature as adopted by an appropriate scientific body.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="internationalism">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.6: A term that has the same or nearly identical orthographic or phonemic form in many languages.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="logical-expression">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.16: An expression used to represent a concept based on mathematical or logical relations, such as statements of inequality, set relationships, Boolean operations, and the like.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="materials-management-unit">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.17: A unit to track object.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="name">
+        <xsd:annotation>
+          <xsd:documentation>Indicates the marked text is a name.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="near-synonym">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.3: A term that represents the same or a very similar concept as another term in the same language, but for which interchangeability is limited to some contexts and inapplicable in others.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="part-number">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.17.2: A unique alphanumeric designation assigned to an object in a manufacturing system.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="phrase">
+        <xsd:annotation>
+          <xsd:documentation>Indicates the marked text is a phrase.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="phraseological-unit">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.18: Any group of two or more words that form a unit, the meaning of which frequently cannot be deduced based on the combined sense of the words making up the phrase.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="protected">
+        <xsd:annotation>
+          <xsd:documentation>Indicates the marked text should not be translated.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="romanized-form">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.12: A form of a term resulting from an operation whereby non-Latin writing systems are converted to the Latin alphabet.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="seg">
+        <xsd:annotation>
+          <xsd:documentation>Indicates that the marked text represents a segment.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="set-phrase">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.18.2: A fixed, lexicalized phrase.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="short-form">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.8.2: A variant of a multiword term that includes fewer words than the full form of the term (e.g. 'Group of Twenty-four' for 'Intergovernmental Group of Twenty-four on International Monetary Affairs').</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="sku">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.17.1: Stock keeping unit, an inventory item identified by a unique alphanumeric designation assigned to an object in an inventory control system.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="standard-text">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.19: A fixed chunk of recurring text.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="symbol">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.13: A designation of a concept by letters, numerals, pictograms or any combination thereof.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="synonym">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.2: Any term that represents the same or a very similar concept as the main entry term in a term entry.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="synonymous-phrase">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.18.3: Phraseological unit in a language that expresses the same semantic content as another phrase in that same language.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="term">
+        <xsd:annotation>
+          <xsd:documentation>Indicates the marked text is a term.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="transcribed-form">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.11: A form of a term resulting from an operation whereby the characters of one writing system are represented by characters from another writing system, taking into account the pronunciation of the characters converted.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="transliterated-form">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.10: A form of a term resulting from an operation whereby the characters of an alphabetic writing system are represented by characters from another alphabetic writing system.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="truncated-term">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.8.5: An abbreviated form of a term resulting from the omission of one or more term elements or syllables (e.g. 'flu' for 'influenza').</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="variant">
+        <xsd:annotation>
+          <xsd:documentation>ISO-12620 2.1.9: One of the alternate forms of a term.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="restypeValueList">
+    <xsd:annotation>
+      <xsd:documentation>Values for the attribute 'restype'.</xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:NMTOKEN">
+      <xsd:enumeration value="auto3state">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a Windows RC AUTO3STATE control.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="autocheckbox">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a Windows RC AUTOCHECKBOX control.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="autoradiobutton">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a Windows RC AUTORADIOBUTTON control.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="bedit">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a Windows RC BEDIT control.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="bitmap">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a bitmap, for example a BITMAP resource in Windows.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="button">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a button object, for example a BUTTON control Windows.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="caption">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a caption, such as the caption of a dialog box.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="cell">
+        <xsd:annotation>
+          <xsd:documentation>Indicates the cell in a table, for example the content of the &lt;td&gt; element in HTML.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="checkbox">
+        <xsd:annotation>
+          <xsd:documentation>Indicates check box object, for example a CHECKBOX control in Windows.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="checkboxmenuitem">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a menu item with an associated checkbox.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="checkedlistbox">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a list box, but with a check-box for each item.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="colorchooser">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a color selection dialog.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="combobox">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a combination of edit box and listbox object, for example a COMBOBOX control in Windows.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="comboboxexitem">
+        <xsd:annotation>
+          <xsd:documentation>Indicates an initialization entry of an extended combobox DLGINIT resource block. (code 0x1234).</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="comboboxitem">
+        <xsd:annotation>
+          <xsd:documentation>Indicates an initialization entry of a combobox DLGINIT resource block (code 0x0403).</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="component">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a UI base class element that cannot be represented by any other element.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="contextmenu">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a context menu.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="ctext">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a Windows RC CTEXT control.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="cursor">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a cursor, for example a CURSOR resource in Windows.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="datetimepicker">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a date/time picker.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="defpushbutton">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a Windows RC DEFPUSHBUTTON control.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="dialog">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a dialog box.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="dlginit">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a Windows RC DLGINIT resource block.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="edit">
+        <xsd:annotation>
+          <xsd:documentation>Indicates an edit box object, for example an EDIT control in Windows.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="file">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a filename.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="filechooser">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a file dialog.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="fn">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a footnote.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="font">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a font name.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="footer">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a footer.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="frame">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a frame object.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="grid">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a XUL grid element.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="groupbox">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a groupbox object, for example a GROUPBOX control in Windows.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="header">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a header item.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="heading">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a heading, such has the content of &lt;h1&gt;, &lt;h2&gt;, etc. in HTML.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="hedit">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a Windows RC HEDIT control.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="hscrollbar">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a horizontal scrollbar.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="icon">
+        <xsd:annotation>
+          <xsd:documentation>Indicates an icon, for example an ICON resource in Windows.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="iedit">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a Windows RC IEDIT control.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="keywords">
+        <xsd:annotation>
+          <xsd:documentation>Indicates keyword list, such as the content of the Keywords meta-data in HTML, or a K footnote in WinHelp RTF.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="label">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a label object.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="linklabel">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a label that is also a HTML link (not necessarily a URL).</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="list">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a list (a group of list-items, for example an &lt;ol&gt; or &lt;ul&gt; element in HTML).</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="listbox">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a listbox object, for example an LISTBOX control in Windows.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="listitem">
+        <xsd:annotation>
+          <xsd:documentation>Indicates an list item (an entry in a list).</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="ltext">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a Windows RC LTEXT control.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="menu">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a menu (a group of menu-items).</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="menubar">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a toolbar containing one or more tope level menus.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="menuitem">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a menu item (an entry in a menu).</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="menuseparator">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a XUL menuseparator element.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="message">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a message, for example an entry in a MESSAGETABLE resource in Windows.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="monthcalendar">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a calendar control.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="numericupdown">
+        <xsd:annotation>
+          <xsd:documentation>Indicates an edit box beside a spin control.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="panel">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a catch all for rectangular areas.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="popupmenu">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a standalone menu not necessarily associated with a menubar.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="pushbox">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a pushbox object, for example a PUSHBOX control in Windows.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="pushbutton">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a Windows RC PUSHBUTTON control.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="radio">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a radio button object.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="radiobuttonmenuitem">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a menuitem with associated radio button.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="rcdata">
+        <xsd:annotation>
+          <xsd:documentation>Indicates raw data resources for an application.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="row">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a row in a table.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="rtext">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a Windows RC RTEXT control.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="scrollpane">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a user navigable container used to show a portion of a document.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="separator">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a generic divider object (e.g. menu group separator).</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="shortcut">
+        <xsd:annotation>
+          <xsd:documentation>Windows accelerators, shortcuts in resource or property files.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="spinner">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a UI control to indicate process activity but not progress.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="splitter">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a splitter bar.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="state3">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a Windows RC STATE3 control.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="statusbar">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a window for providing feedback to the users, like 'read-only', etc.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="string">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a string, for example an entry in a STRINGTABLE resource in Windows.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="tabcontrol">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a layers of controls with a tab to select layers.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="table">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a display and edits regular two-dimensional tables of cells.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="textbox">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a XUL textbox element.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="togglebutton">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a UI button that can be toggled to on or off state.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="toolbar">
+        <xsd:annotation>
+          <xsd:documentation>Indicates an array of controls, usually buttons.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="tooltip">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a pop up tool tip text.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="trackbar">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a bar with a pointer indicating a position within a certain range.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="tree">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a control that displays a set of hierarchical data.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="uri">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a URI (URN or URL).</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="userbutton">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a Windows RC USERBUTTON control.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="usercontrol">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a user-defined control like CONTROL control in Windows.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="var">
+        <xsd:annotation>
+          <xsd:documentation>Indicates the text of a variable.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="versioninfo">
+        <xsd:annotation>
+          <xsd:documentation>Indicates version information about a resource like VERSIONINFO in Windows.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="vscrollbar">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a vertical scrollbar.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="window">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a graphical window.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="size-unitValueList">
+    <xsd:annotation>
+      <xsd:documentation>Values for the attribute 'size-unit'.</xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:NMTOKEN">
+      <xsd:enumeration value="byte">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a size in 8-bit bytes.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="char">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a size in Unicode characters.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="col">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a size in columns. Used for HTML text area.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="cm">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a size in centimeters.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="dlgunit">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a size in dialog units, as defined in Windows resources.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="em">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a size in 'font-size' units (as defined in CSS).</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="ex">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a size in 'x-height' units (as defined in CSS).</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="glyph">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a size in glyphs. A glyph is considered to be one or more combined Unicode characters that represent a single displayable text character. Sometimes referred to as a 'grapheme cluster'</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="in">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a size in inches.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="mm">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a size in millimeters.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="percent">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a size in percentage.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="pixel">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a size in pixels.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="point">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a size in point.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="row">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a size in rows. Used for HTML text area.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="stateValueList">
+    <xsd:annotation>
+      <xsd:documentation>Values for the attribute 'state'.</xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:NMTOKEN">
+      <xsd:enumeration value="final">
+        <xsd:annotation>
+          <xsd:documentation>Indicates the terminating state.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="needs-adaptation">
+        <xsd:annotation>
+          <xsd:documentation>Indicates only non-textual information needs adaptation.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="needs-l10n">
+        <xsd:annotation>
+          <xsd:documentation>Indicates both text and non-textual information needs adaptation.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="needs-review-adaptation">
+        <xsd:annotation>
+          <xsd:documentation>Indicates only non-textual information needs review.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="needs-review-l10n">
+        <xsd:annotation>
+          <xsd:documentation>Indicates both text and non-textual information needs review.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="needs-review-translation">
+        <xsd:annotation>
+          <xsd:documentation>Indicates that only the text of the item needs to be reviewed.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="needs-translation">
+        <xsd:annotation>
+          <xsd:documentation>Indicates that the item needs to be translated.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="new">
+        <xsd:annotation>
+          <xsd:documentation>Indicates that the item is new. For example, translation units that were not in a previous version of the document.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="signed-off">
+        <xsd:annotation>
+          <xsd:documentation>Indicates that changes are reviewed and approved.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="translated">
+        <xsd:annotation>
+          <xsd:documentation>Indicates that the item has been translated.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="state-qualifierValueList">
+    <xsd:annotation>
+      <xsd:documentation>Values for the attribute 'state-qualifier'.</xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:NMTOKEN">
+      <xsd:enumeration value="exact-match">
+        <xsd:annotation>
+          <xsd:documentation>Indicates an exact match. An exact match occurs when a source text of a segment is exactly the same as the source text of a segment that was translated previously.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="fuzzy-match">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a fuzzy match. A fuzzy match occurs when a source text of a segment is very similar to the source text of a segment that was translated previously (e.g. when the difference is casing, a few changed words, white-space discripancy, etc.).</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="id-match">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a match based on matching IDs (in addition to matching text).</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="leveraged-glossary">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a translation derived from a glossary.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="leveraged-inherited">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a translation derived from existing translation.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="leveraged-mt">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a translation derived from machine translation.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="leveraged-repository">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a translation derived from a translation repository.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="leveraged-tm">
+        <xsd:annotation>
+          <xsd:documentation>Indicates a translation derived from a translation memory.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="mt-suggestion">
+        <xsd:annotation>
+          <xsd:documentation>Indicates the translation is suggested by machine translation.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="rejected-grammar">
+        <xsd:annotation>
+          <xsd:documentation>Indicates that the item has been rejected because of incorrect grammar.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="rejected-inaccurate">
+        <xsd:annotation>
+          <xsd:documentation>Indicates that the item has been rejected because it is incorrect.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="rejected-length">
+        <xsd:annotation>
+          <xsd:documentation>Indicates that the item has been rejected because it is too long or too short.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="rejected-spelling">
+        <xsd:annotation>
+          <xsd:documentation>Indicates that the item has been rejected because of incorrect spelling.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="tm-suggestion">
+        <xsd:annotation>
+          <xsd:documentation>Indicates the translation is suggested by translation memory.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="unitValueList">
+    <xsd:annotation>
+      <xsd:documentation>Values for the attribute 'unit'.</xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:NMTOKEN">
+      <xsd:enumeration value="word">
+        <xsd:annotation>
+          <xsd:documentation>Refers to words.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="page">
+        <xsd:annotation>
+          <xsd:documentation>Refers to pages.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="trans-unit">
+        <xsd:annotation>
+          <xsd:documentation>Refers to &lt;trans-unit&gt; elements.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="bin-unit">
+        <xsd:annotation>
+          <xsd:documentation>Refers to &lt;bin-unit&gt; elements.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="glyph">
+        <xsd:annotation>
+          <xsd:documentation>Refers to glyphs.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="item">
+        <xsd:annotation>
+          <xsd:documentation>Refers to &lt;trans-unit&gt; and/or &lt;bin-unit&gt; elements.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="instance">
+        <xsd:annotation>
+          <xsd:documentation>Refers to the occurrences of instances defined by the count-type value.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="character">
+        <xsd:annotation>
+          <xsd:documentation>Refers to characters.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="line">
+        <xsd:annotation>
+          <xsd:documentation>Refers to lines.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="sentence">
+        <xsd:annotation>
+          <xsd:documentation>Refers to sentences.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="paragraph">
+        <xsd:annotation>
+          <xsd:documentation>Refers to paragraphs.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="segment">
+        <xsd:annotation>
+          <xsd:documentation>Refers to segments.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="placeable">
+        <xsd:annotation>
+          <xsd:documentation>Refers to placeables (inline elements).</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="priorityValueList">
+    <xsd:annotation>
+      <xsd:documentation>Values for the attribute 'priority'.</xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:positiveInteger">
+      <xsd:enumeration value="1">
+        <xsd:annotation>
+          <xsd:documentation>Highest priority.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="2">
+        <xsd:annotation>
+          <xsd:documentation>High priority.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="3">
+        <xsd:annotation>
+          <xsd:documentation>High priority, but not as important as 2.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="4">
+        <xsd:annotation>
+          <xsd:documentation>High priority, but not as important as 3.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="5">
+        <xsd:annotation>
+          <xsd:documentation>Medium priority, but more important than 6.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="6">
+        <xsd:annotation>
+          <xsd:documentation>Medium priority, but less important than 5.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="7">
+        <xsd:annotation>
+          <xsd:documentation>Low priority, but more important than 8.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="8">
+        <xsd:annotation>
+          <xsd:documentation>Low priority, but more important than 9.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="9">
+        <xsd:annotation>
+          <xsd:documentation>Low priority.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="10">
+        <xsd:annotation>
+          <xsd:documentation>Lowest priority.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="reformatValueYesNo">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="yes">
+        <xsd:annotation>
+          <xsd:documentation>This value indicates that all properties can be reformatted. This value must be used alone.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="no">
+        <xsd:annotation>
+          <xsd:documentation>This value indicates that no properties should be reformatted. This value must be used alone.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="reformatValueList">
+    <xsd:list>
+      <xsd:simpleType>
+        <xsd:union memberTypes="xlf:XTend">
+          <xsd:simpleType>
+            <xsd:restriction base="xsd:string">
+              <xsd:enumeration value="coord">
+                <xsd:annotation>
+                  <xsd:documentation>This value indicates that all information in the coord attribute can be modified.</xsd:documentation>
+                </xsd:annotation>
+              </xsd:enumeration>
+              <xsd:enumeration value="coord-x">
+                <xsd:annotation>
+                  <xsd:documentation>This value indicates that the x information in the coord attribute can be modified.</xsd:documentation>
+                </xsd:annotation>
+              </xsd:enumeration>
+              <xsd:enumeration value="coord-y">
+                <xsd:annotation>
+                  <xsd:documentation>This value indicates that the y information in the coord attribute can be modified.</xsd:documentation>
+                </xsd:annotation>
+              </xsd:enumeration>
+              <xsd:enumeration value="coord-cx">
+                <xsd:annotation>
+                  <xsd:documentation>This value indicates that the cx information in the coord attribute can be modified.</xsd:documentation>
+                </xsd:annotation>
+              </xsd:enumeration>
+              <xsd:enumeration value="coord-cy">
+                <xsd:annotation>
+                  <xsd:documentation>This value indicates that the cy information in the coord attribute can be modified.</xsd:documentation>
+                </xsd:annotation>
+              </xsd:enumeration>
+              <xsd:enumeration value="font">
+                <xsd:annotation>
+                  <xsd:documentation>This value indicates that all the information in the font attribute can be modified.</xsd:documentation>
+                </xsd:annotation>
+              </xsd:enumeration>
+              <xsd:enumeration value="font-name">
+                <xsd:annotation>
+                  <xsd:documentation>This value indicates that the name information in the font attribute can be modified.</xsd:documentation>
+                </xsd:annotation>
+              </xsd:enumeration>
+              <xsd:enumeration value="font-size">
+                <xsd:annotation>
+                  <xsd:documentation>This value indicates that the size information in the font attribute can be modified.</xsd:documentation>
+                </xsd:annotation>
+              </xsd:enumeration>
+              <xsd:enumeration value="font-weight">
+                <xsd:annotation>
+                  <xsd:documentation>This value indicates that the weight information in the font attribute can be modified.</xsd:documentation>
+                </xsd:annotation>
+              </xsd:enumeration>
+              <xsd:enumeration value="css-style">
+                <xsd:annotation>
+                  <xsd:documentation>This value indicates that the information in the css-style attribute can be modified.</xsd:documentation>
+                </xsd:annotation>
+              </xsd:enumeration>
+              <xsd:enumeration value="style">
+                <xsd:annotation>
+                  <xsd:documentation>This value indicates that the information in the style attribute can be modified.</xsd:documentation>
+                </xsd:annotation>
+              </xsd:enumeration>
+              <xsd:enumeration value="ex-style">
+                <xsd:annotation>
+                  <xsd:documentation>This value indicates that the information in the exstyle attribute can be modified.</xsd:documentation>
+                </xsd:annotation>
+              </xsd:enumeration>
+            </xsd:restriction>
+          </xsd:simpleType>
+        </xsd:union>
+      </xsd:simpleType>
+    </xsd:list>
+  </xsd:simpleType>
+  <xsd:simpleType name="purposeValueList">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="information">
+        <xsd:annotation>
+          <xsd:documentation>Indicates that the context is informational in nature, specifying for example, how a term should be translated. Thus, should be displayed to anyone editing the XLIFF document.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="location">
+        <xsd:annotation>
+          <xsd:documentation>Indicates that the context-group is used to specify where the term was found in the translatable source. Thus, it is not displayed.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="match">
+        <xsd:annotation>
+          <xsd:documentation>Indicates that the context information should be used during translation memory lookups. Thus, it is not displayed.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="alttranstypeValueList">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="proposal">
+        <xsd:annotation>
+          <xsd:documentation>Represents a translation proposal from a translation memory or other resource.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="previous-version">
+        <xsd:annotation>
+          <xsd:documentation>Represents a previous version of the target element.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="rejected">
+        <xsd:annotation>
+          <xsd:documentation>Represents a rejected version of the target element.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="reference">
+        <xsd:annotation>
+          <xsd:documentation>Represents a translation to be used for reference purposes only, for example from a related product or a different language.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+      <xsd:enumeration value="accepted">
+        <xsd:annotation>
+          <xsd:documentation>Represents a proposed translation that was used for the translation of the trans-unit, possibly modified.</xsd:documentation>
+        </xsd:annotation>
+      </xsd:enumeration>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <!-- Other Types -->
+  <xsd:complexType name="ElemType_ExternalReference">
+    <xsd:choice>
+      <xsd:element ref="xlf:internal-file"/>
+      <xsd:element ref="xlf:external-file"/>
+    </xsd:choice>
+  </xsd:complexType>
+  <xsd:simpleType name="AttrType_purpose">
+    <xsd:list>
+      <xsd:simpleType>
+        <xsd:union memberTypes="xlf:purposeValueList xlf:XTend"/>
+      </xsd:simpleType>
+    </xsd:list>
+  </xsd:simpleType>
+  <xsd:simpleType name="AttrType_datatype">
+    <xsd:union memberTypes="xlf:datatypeValueList xlf:XTend"/>
+  </xsd:simpleType>
+  <xsd:simpleType name="AttrType_restype">
+    <xsd:union memberTypes="xlf:restypeValueList xlf:XTend"/>
+  </xsd:simpleType>
+  <xsd:simpleType name="AttrType_alttranstype">
+    <xsd:union memberTypes="xlf:alttranstypeValueList xlf:XTend"/>
+  </xsd:simpleType>
+  <xsd:simpleType name="AttrType_context-type">
+    <xsd:union memberTypes="xlf:context-typeValueList xlf:XTend"/>
+  </xsd:simpleType>
+  <xsd:simpleType name="AttrType_state">
+    <xsd:union memberTypes="xlf:stateValueList xlf:XTend"/>
+  </xsd:simpleType>
+  <xsd:simpleType name="AttrType_state-qualifier">
+    <xsd:union memberTypes="xlf:state-qualifierValueList xlf:XTend"/>
+  </xsd:simpleType>
+  <xsd:simpleType name="AttrType_count-type">
+    <xsd:union memberTypes="xlf:restypeValueList xlf:count-typeValueList xlf:datatypeValueList xlf:stateValueList xlf:state-qualifierValueList xlf:XTend"/>
+  </xsd:simpleType>
+  <xsd:simpleType name="AttrType_InlineDelimiters">
+    <xsd:union memberTypes="xlf:InlineDelimitersValueList xlf:XTend"/>
+  </xsd:simpleType>
+  <xsd:simpleType name="AttrType_InlinePlaceholders">
+    <xsd:union memberTypes="xlf:InlinePlaceholdersValueList xlf:XTend"/>
+  </xsd:simpleType>
+  <xsd:simpleType name="AttrType_size-unit">
+    <xsd:union memberTypes="xlf:size-unitValueList xlf:XTend"/>
+  </xsd:simpleType>
+  <xsd:simpleType name="AttrType_mtype">
+    <xsd:union memberTypes="xlf:mtypeValueList xlf:XTend"/>
+  </xsd:simpleType>
+  <xsd:simpleType name="AttrType_unit">
+    <xsd:union memberTypes="xlf:unitValueList xlf:XTend"/>
+  </xsd:simpleType>
+  <xsd:simpleType name="AttrType_priority">
+    <xsd:union memberTypes="xlf:priorityValueList"/>
+  </xsd:simpleType>
+  <xsd:simpleType name="AttrType_reformat">
+    <xsd:union memberTypes="xlf:reformatValueYesNo xlf:reformatValueList"/>
+  </xsd:simpleType>
+  <xsd:simpleType name="AttrType_YesNo">
+    <xsd:restriction base="xsd:NMTOKEN">
+      <xsd:enumeration value="yes"/>
+      <xsd:enumeration value="no"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="AttrType_Position">
+    <xsd:restriction base="xsd:NMTOKEN">
+      <xsd:enumeration value="open"/>
+      <xsd:enumeration value="close"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="AttrType_assoc">
+    <xsd:restriction base="xsd:NMTOKEN">
+      <xsd:enumeration value="preceding"/>
+      <xsd:enumeration value="following"/>
+      <xsd:enumeration value="both"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="AttrType_annotates">
+    <xsd:restriction base="xsd:NMTOKEN">
+      <xsd:enumeration value="source"/>
+      <xsd:enumeration value="target"/>
+      <xsd:enumeration value="general"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="AttrType_Coordinates">
+    <xsd:annotation>
+      <xsd:documentation>Values for the attribute 'coord'.</xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:string">
+      <xsd:pattern value="(-?\d+|#);(-?\d+|#);(-?\d+|#);(-?\d+|#)"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <xsd:simpleType name="AttrType_Version">
+    <xsd:annotation>
+      <xsd:documentation>Version values: 1.0 and 1.1 are allowed for backward compatibility.</xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="1.2"/>
+      <xsd:enumeration value="1.1"/>
+      <xsd:enumeration value="1.0"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+  <!-- Groups -->
+  <xsd:group name="ElemGroup_TextContent">
+    <xsd:choice>
+      <xsd:element ref="xlf:g"/>
+      <xsd:element ref="xlf:bpt"/>
+      <xsd:element ref="xlf:ept"/>
+      <xsd:element ref="xlf:ph"/>
+      <xsd:element ref="xlf:it"/>
+      <xsd:element ref="xlf:mrk"/>
+      <xsd:element ref="xlf:x"/>
+      <xsd:element ref="xlf:bx"/>
+      <xsd:element ref="xlf:ex"/>
+    </xsd:choice>
+  </xsd:group>
+  <xsd:attributeGroup name="AttrGroup_TextContent">
+    <xsd:attribute name="id" type="xsd:string" use="required"/>
+    <xsd:attribute name="xid" type="xsd:string" use="optional"/>
+    <xsd:attribute name="equiv-text" type="xsd:string" use="optional"/>
+    <xsd:anyAttribute namespace="##other" processContents="strict"/>
+  </xsd:attributeGroup>
+  <!-- XLIFF Structure -->
+  <xsd:element name="xliff">
+    <xsd:complexType>
+      <xsd:sequence maxOccurs="unbounded">
+        <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="strict"/>
+        <xsd:element ref="xlf:file"/>
+      </xsd:sequence>
+      <xsd:attribute name="version" type="xlf:AttrType_Version" use="required"/>
+      <xsd:attribute ref="xml:lang" use="optional"/>
+      <xsd:anyAttribute namespace="##other" processContents="strict"/>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="file">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element minOccurs="0" ref="xlf:header"/>
+        <xsd:element ref="xlf:body"/>
+      </xsd:sequence>
+      <xsd:attribute name="original" type="xsd:string" use="required"/>
+      <xsd:attribute name="source-language" type="xsd:language" use="required"/>
+      <xsd:attribute name="datatype" type="xlf:AttrType_datatype" use="required"/>
+      <xsd:attribute name="tool-id" type="xsd:string" use="optional"/>
+      <xsd:attribute name="date" type="xsd:dateTime" use="optional"/>
+      <xsd:attribute ref="xml:space" use="optional"/>
+      <xsd:attribute name="category" type="xsd:string" use="optional"/>
+      <xsd:attribute name="target-language" type="xsd:language" use="optional"/>
+      <xsd:attribute name="product-name" type="xsd:string" use="optional"/>
+      <xsd:attribute name="product-version" type="xsd:string" use="optional"/>
+      <xsd:attribute name="build-num" type="xsd:string" use="optional"/>
+      <xsd:anyAttribute namespace="##other" processContents="strict"/>
+    </xsd:complexType>
+    <xsd:unique name="U_group_id">
+      <xsd:selector xpath=".//xlf:group"/>
+      <xsd:field xpath="@id"/>
+    </xsd:unique>
+    <xsd:key name="K_unit_id">
+      <xsd:selector xpath=".//xlf:trans-unit|.//xlf:bin-unit"/>
+      <xsd:field xpath="@id"/>
+    </xsd:key>
+    <xsd:keyref name="KR_unit_id" refer="xlf:K_unit_id">
+      <xsd:selector xpath=".//bpt|.//ept|.//it|.//ph|.//g|.//x|.//bx|.//ex|.//sub"/>
+      <xsd:field xpath="@xid"/>
+    </xsd:keyref>
+    <xsd:key name="K_tool-id">
+      <xsd:selector xpath="xlf:header/xlf:tool"/>
+      <xsd:field xpath="@tool-id"/>
+    </xsd:key>
+    <xsd:keyref name="KR_file_tool-id" refer="xlf:K_tool-id">
+      <xsd:selector xpath="."/>
+      <xsd:field xpath="@tool-id"/>
+    </xsd:keyref>
+    <xsd:keyref name="KR_phase_tool-id" refer="xlf:K_tool-id">
+      <xsd:selector xpath="xlf:header/xlf:phase-group/xlf:phase"/>
+      <xsd:field xpath="@tool-id"/>
+    </xsd:keyref>
+    <xsd:keyref name="KR_alt-trans_tool-id" refer="xlf:K_tool-id">
+      <xsd:selector xpath=".//xlf:trans-unit/xlf:alt-trans"/>
+      <xsd:field xpath="@tool-id"/>
+    </xsd:keyref>
+    <xsd:key name="K_count-group_name">
+      <xsd:selector xpath=".//xlf:count-group"/>
+      <xsd:field xpath="@name"/>
+    </xsd:key>
+    <xsd:unique name="U_context-group_name">
+      <xsd:selector xpath=".//xlf:context-group"/>
+      <xsd:field xpath="@name"/>
+    </xsd:unique>
+    <xsd:key name="K_phase-name">
+      <xsd:selector xpath="xlf:header/xlf:phase-group/xlf:phase"/>
+      <xsd:field xpath="@phase-name"/>
+    </xsd:key>
+    <xsd:keyref name="KR_phase-name" refer="xlf:K_phase-name">
+      <xsd:selector xpath=".//xlf:count|.//xlf:trans-unit|.//xlf:target|.//bin-unit|.//bin-target"/>
+      <xsd:field xpath="@phase-name"/>
+    </xsd:keyref>
+    <xsd:unique name="U_uid">
+      <xsd:selector xpath=".//xlf:external-file"/>
+      <xsd:field xpath="@uid"/>
+    </xsd:unique>
+  </xsd:element>
+  <xsd:element name="header">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element minOccurs="0" name="skl" type="xlf:ElemType_ExternalReference"/>
+        <xsd:element minOccurs="0" ref="xlf:phase-group"/>
+        <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="glossary" type="xlf:ElemType_ExternalReference"/>
+          <xsd:element name="reference" type="xlf:ElemType_ExternalReference"/>
+          <xsd:element ref="xlf:count-group"/>
+          <xsd:element ref="xlf:note"/>
+          <xsd:element ref="xlf:tool"/>
+        </xsd:choice>
+        <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="strict"/>
+      </xsd:sequence>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="internal-file">
+    <xsd:complexType>
+      <xsd:simpleContent>
+        <xsd:extension base="xsd:string">
+          <xsd:attribute name="form" type="xsd:string"/>
+          <xsd:attribute name="crc" type="xsd:NMTOKEN"/>
+        </xsd:extension>
+      </xsd:simpleContent>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="external-file">
+    <xsd:complexType>
+      <xsd:attribute name="href" type="xsd:string" use="required"/>
+      <xsd:attribute name="crc" type="xsd:NMTOKEN"/>
+      <xsd:attribute name="uid" type="xsd:NMTOKEN"/>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="note">
+    <xsd:complexType>
+      <xsd:simpleContent>
+        <xsd:extension base="xsd:string">
+          <xsd:attribute ref="xml:lang" use="optional"/>
+          <xsd:attribute default="1" name="priority" type="xlf:AttrType_priority" use="optional"/>
+          <xsd:attribute name="from" type="xsd:string" use="optional"/>
+          <xsd:attribute default="general" name="annotates" type="xlf:AttrType_annotates" use="optional"/>
+        </xsd:extension>
+      </xsd:simpleContent>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="phase-group">
+    <xsd:complexType>
+      <xsd:sequence maxOccurs="unbounded">
+        <xsd:element ref="xlf:phase"/>
+      </xsd:sequence>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="phase">
+    <xsd:complexType>
+      <xsd:sequence maxOccurs="unbounded" minOccurs="0">
+        <xsd:element ref="xlf:note"/>
+      </xsd:sequence>
+      <xsd:attribute name="phase-name" type="xsd:string" use="required"/>
+      <xsd:attribute name="process-name" type="xsd:string" use="required"/>
+      <xsd:attribute name="company-name" type="xsd:string" use="optional"/>
+      <xsd:attribute name="tool-id" type="xsd:string" use="optional"/>
+      <xsd:attribute name="date" type="xsd:dateTime" use="optional"/>
+      <xsd:attribute name="job-id" type="xsd:string" use="optional"/>
+      <xsd:attribute name="contact-name" type="xsd:string" use="optional"/>
+      <xsd:attribute name="contact-email" type="xsd:string" use="optional"/>
+      <xsd:attribute name="contact-phone" type="xsd:string" use="optional"/>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="count-group">
+    <xsd:complexType>
+      <xsd:sequence maxOccurs="unbounded" minOccurs="0">
+        <xsd:element ref="xlf:count"/>
+      </xsd:sequence>
+      <xsd:attribute name="name" type="xsd:string" use="required"/>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="count">
+    <xsd:complexType>
+      <xsd:simpleContent>
+        <xsd:extension base="xsd:string">
+          <xsd:attribute name="count-type" type="xlf:AttrType_count-type" use="optional"/>
+          <xsd:attribute name="phase-name" type="xsd:string" use="optional"/>
+          <xsd:attribute default="word" name="unit" type="xlf:AttrType_unit" use="optional"/>
+        </xsd:extension>
+      </xsd:simpleContent>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="context-group">
+    <xsd:complexType>
+      <xsd:sequence maxOccurs="unbounded">
+        <xsd:element ref="xlf:context"/>
+      </xsd:sequence>
+      <xsd:attribute name="name" type="xsd:string" use="optional"/>
+      <xsd:attribute name="crc" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="purpose" type="xlf:AttrType_purpose" use="optional"/>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="context">
+    <xsd:complexType>
+      <xsd:simpleContent>
+        <xsd:extension base="xsd:string">
+          <xsd:attribute name="context-type" type="xlf:AttrType_context-type" use="required"/>
+          <xsd:attribute default="no" name="match-mandatory" type="xlf:AttrType_YesNo" use="optional"/>
+          <xsd:attribute name="crc" type="xsd:NMTOKEN" use="optional"/>
+        </xsd:extension>
+      </xsd:simpleContent>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="tool">
+    <xsd:complexType mixed="true">
+      <xsd:sequence>
+        <xsd:any namespace="##any" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+      </xsd:sequence>
+      <xsd:attribute name="tool-id" type="xsd:string" use="required"/>
+      <xsd:attribute name="tool-name" type="xsd:string" use="required"/>
+      <xsd:attribute name="tool-version" type="xsd:string" use="optional"/>
+      <xsd:attribute name="tool-company" type="xsd:string" use="optional"/>
+      <xsd:anyAttribute namespace="##other" processContents="strict"/>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="body">
+    <xsd:complexType>
+      <xsd:choice maxOccurs="unbounded" minOccurs="0">
+        <xsd:element maxOccurs="unbounded" minOccurs="0" ref="xlf:group"/>
+        <xsd:element maxOccurs="unbounded" minOccurs="0" ref="xlf:trans-unit"/>
+        <xsd:element maxOccurs="unbounded" minOccurs="0" ref="xlf:bin-unit"/>
+      </xsd:choice>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="group">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:sequence>
+          <xsd:element maxOccurs="unbounded" minOccurs="0" ref="xlf:context-group"/>
+          <xsd:element maxOccurs="unbounded" minOccurs="0" ref="xlf:count-group"/>
+          <xsd:element maxOccurs="unbounded" minOccurs="0" ref="xlf:note"/>
+          <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="strict"/>
+        </xsd:sequence>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element maxOccurs="unbounded" minOccurs="0" ref="xlf:group"/>
+          <xsd:element maxOccurs="unbounded" minOccurs="0" ref="xlf:trans-unit"/>
+          <xsd:element maxOccurs="unbounded" minOccurs="0" ref="xlf:bin-unit"/>
+        </xsd:choice>
+      </xsd:sequence>
+      <xsd:attribute name="id" type="xsd:string" use="optional"/>
+      <xsd:attribute name="datatype" type="xlf:AttrType_datatype" use="optional"/>
+      <xsd:attribute default="default" ref="xml:space" use="optional"/>
+      <xsd:attribute name="restype" type="xlf:AttrType_restype" use="optional"/>
+      <xsd:attribute name="resname" type="xsd:string" use="optional"/>
+      <xsd:attribute name="extradata" type="xsd:string" use="optional"/>
+      <xsd:attribute name="extype" type="xsd:string" use="optional"/>
+      <xsd:attribute name="help-id" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="menu" type="xsd:string" use="optional"/>
+      <xsd:attribute name="menu-option" type="xsd:string" use="optional"/>
+      <xsd:attribute name="menu-name" type="xsd:string" use="optional"/>
+      <xsd:attribute name="coord" type="xlf:AttrType_Coordinates" use="optional"/>
+      <xsd:attribute name="font" type="xsd:string" use="optional"/>
+      <xsd:attribute name="css-style" type="xsd:string" use="optional"/>
+      <xsd:attribute name="style" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="exstyle" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute default="yes" name="translate" type="xlf:AttrType_YesNo" use="optional"/>
+      <xsd:attribute default="yes" name="reformat" type="xlf:AttrType_reformat" use="optional"/>
+      <xsd:attribute default="pixel" name="size-unit" type="xlf:AttrType_size-unit" use="optional"/>
+      <xsd:attribute name="maxwidth" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="minwidth" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="maxheight" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="minheight" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="maxbytes" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="minbytes" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="charclass" type="xsd:string" use="optional"/>
+      <xsd:attribute default="no" name="merged-trans" type="xlf:AttrType_YesNo" use="optional"/>
+      <xsd:anyAttribute namespace="##other" processContents="strict"/>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="trans-unit">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element ref="xlf:source"/>
+        <xsd:element minOccurs="0" ref="xlf:seg-source"/>
+        <xsd:element minOccurs="0" ref="xlf:target"/>
+        <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element ref="xlf:context-group"/>
+          <xsd:element ref="xlf:count-group"/>
+          <xsd:element ref="xlf:note"/>
+          <xsd:element ref="xlf:alt-trans"/>
+        </xsd:choice>
+        <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="strict"/>
+      </xsd:sequence>
+      <xsd:attribute name="id" type="xsd:string" use="required"/>
+      <xsd:attribute name="approved" type="xlf:AttrType_YesNo" use="optional"/>
+      <xsd:attribute default="yes" name="translate" type="xlf:AttrType_YesNo" use="optional"/>
+      <xsd:attribute default="yes" name="reformat" type="xlf:AttrType_reformat" use="optional"/>
+      <xsd:attribute default="default" ref="xml:space" use="optional"/>
+      <xsd:attribute name="datatype" type="xlf:AttrType_datatype" use="optional"/>
+      <xsd:attribute name="phase-name" type="xsd:string" use="optional"/>
+      <xsd:attribute name="restype" type="xlf:AttrType_restype" use="optional"/>
+      <xsd:attribute name="resname" type="xsd:string" use="optional"/>
+      <xsd:attribute name="extradata" type="xsd:string" use="optional"/>
+      <xsd:attribute name="extype" type="xsd:string" use="optional"/>
+      <xsd:attribute name="help-id" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="menu" type="xsd:string" use="optional"/>
+      <xsd:attribute name="menu-option" type="xsd:string" use="optional"/>
+      <xsd:attribute name="menu-name" type="xsd:string" use="optional"/>
+      <xsd:attribute name="coord" type="xlf:AttrType_Coordinates" use="optional"/>
+      <xsd:attribute name="font" type="xsd:string" use="optional"/>
+      <xsd:attribute name="css-style" type="xsd:string" use="optional"/>
+      <xsd:attribute name="style" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="exstyle" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute default="pixel" name="size-unit" type="xlf:AttrType_size-unit" use="optional"/>
+      <xsd:attribute name="maxwidth" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="minwidth" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="maxheight" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="minheight" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="maxbytes" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="minbytes" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="charclass" type="xsd:string" use="optional"/>
+      <xsd:attribute default="yes" name="merged-trans" type="xlf:AttrType_YesNo" use="optional"/>
+      <xsd:anyAttribute namespace="##other" processContents="strict"/>
+    </xsd:complexType>
+    <xsd:unique name="U_tu_segsrc_mid">
+      <xsd:selector xpath="./xlf:seg-source/xlf:mrk"/>
+      <xsd:field xpath="@mid"/>
+    </xsd:unique>
+    <xsd:keyref name="KR_tu_segsrc_mid" refer="xlf:U_tu_segsrc_mid">
+      <xsd:selector xpath="./xlf:target/xlf:mrk|./xlf:alt-trans"/>
+      <xsd:field xpath="@mid"/>
+    </xsd:keyref>
+  </xsd:element>
+  <xsd:element name="source">
+    <xsd:complexType mixed="true">
+      <xsd:group maxOccurs="unbounded" minOccurs="0" ref="xlf:ElemGroup_TextContent"/>
+      <xsd:attribute ref="xml:lang" use="optional"/>
+      <xsd:anyAttribute namespace="##other" processContents="strict"/>
+    </xsd:complexType>
+    <xsd:unique name="U_source_bpt_rid">
+      <xsd:selector xpath=".//xlf:bpt"/>
+      <xsd:field xpath="@rid"/>
+    </xsd:unique>
+    <xsd:keyref name="KR_source_ept_rid" refer="xlf:U_source_bpt_rid">
+      <xsd:selector xpath=".//xlf:ept"/>
+      <xsd:field xpath="@rid"/>
+    </xsd:keyref>
+    <xsd:unique name="U_source_bx_rid">
+      <xsd:selector xpath=".//xlf:bx"/>
+      <xsd:field xpath="@rid"/>
+    </xsd:unique>
+    <xsd:keyref name="KR_source_ex_rid" refer="xlf:U_source_bx_rid">
+      <xsd:selector xpath=".//xlf:ex"/>
+      <xsd:field xpath="@rid"/>
+    </xsd:keyref>
+  </xsd:element>
+  <xsd:element name="seg-source">
+    <xsd:complexType mixed="true">
+      <xsd:group maxOccurs="unbounded" minOccurs="0" ref="xlf:ElemGroup_TextContent"/>
+      <xsd:attribute ref="xml:lang" use="optional"/>
+      <xsd:anyAttribute namespace="##other" processContents="strict"/>
+    </xsd:complexType>
+    <xsd:unique name="U_segsrc_bpt_rid">
+      <xsd:selector xpath=".//xlf:bpt"/>
+      <xsd:field xpath="@rid"/>
+    </xsd:unique>
+    <xsd:keyref name="KR_segsrc_ept_rid" refer="xlf:U_segsrc_bpt_rid">
+      <xsd:selector xpath=".//xlf:ept"/>
+      <xsd:field xpath="@rid"/>
+    </xsd:keyref>
+    <xsd:unique name="U_segsrc_bx_rid">
+      <xsd:selector xpath=".//xlf:bx"/>
+      <xsd:field xpath="@rid"/>
+    </xsd:unique>
+    <xsd:keyref name="KR_segsrc_ex_rid" refer="xlf:U_segsrc_bx_rid">
+      <xsd:selector xpath=".//xlf:ex"/>
+      <xsd:field xpath="@rid"/>
+    </xsd:keyref>
+  </xsd:element>
+  <xsd:element name="target">
+    <xsd:complexType mixed="true">
+      <xsd:group maxOccurs="unbounded" minOccurs="0" ref="xlf:ElemGroup_TextContent"/>
+      <xsd:attribute name="state" type="xlf:AttrType_state" use="optional"/>
+      <xsd:attribute name="state-qualifier" type="xlf:AttrType_state-qualifier" use="optional"/>
+      <xsd:attribute name="phase-name" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute ref="xml:lang" use="optional"/>
+      <xsd:attribute name="resname" type="xsd:string" use="optional"/>
+      <xsd:attribute name="coord" type="xlf:AttrType_Coordinates" use="optional"/>
+      <xsd:attribute name="font" type="xsd:string" use="optional"/>
+      <xsd:attribute name="css-style" type="xsd:string" use="optional"/>
+      <xsd:attribute name="style" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="exstyle" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute default="yes" name="equiv-trans" type="xlf:AttrType_YesNo" use="optional"/>
+      <xsd:anyAttribute namespace="##other" processContents="strict"/>
+    </xsd:complexType>
+    <xsd:unique name="U_target_bpt_rid">
+      <xsd:selector xpath=".//xlf:bpt"/>
+      <xsd:field xpath="@rid"/>
+    </xsd:unique>
+    <xsd:keyref name="KR_target_ept_rid" refer="xlf:U_target_bpt_rid">
+      <xsd:selector xpath=".//xlf:ept"/>
+      <xsd:field xpath="@rid"/>
+    </xsd:keyref>
+    <xsd:unique name="U_target_bx_rid">
+      <xsd:selector xpath=".//xlf:bx"/>
+      <xsd:field xpath="@rid"/>
+    </xsd:unique>
+    <xsd:keyref name="KR_target_ex_rid" refer="xlf:U_target_bx_rid">
+      <xsd:selector xpath=".//xlf:ex"/>
+      <xsd:field xpath="@rid"/>
+    </xsd:keyref>
+  </xsd:element>
+  <xsd:element name="alt-trans">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element minOccurs="0" ref="xlf:source"/>
+        <xsd:element minOccurs="0" ref="xlf:seg-source"/>
+        <xsd:element maxOccurs="1" ref="xlf:target"/>
+        <xsd:element maxOccurs="unbounded" minOccurs="0" ref="xlf:context-group"/>
+        <xsd:element maxOccurs="unbounded" minOccurs="0" ref="xlf:note"/>
+        <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="strict"/>
+      </xsd:sequence>
+      <xsd:attribute name="match-quality" type="xsd:string" use="optional"/>
+      <xsd:attribute name="tool-id" type="xsd:string" use="optional"/>
+      <xsd:attribute name="crc" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute ref="xml:lang" use="optional"/>
+      <xsd:attribute name="origin" type="xsd:string" use="optional"/>
+      <xsd:attribute name="datatype" type="xlf:AttrType_datatype" use="optional"/>
+      <xsd:attribute default="default" ref="xml:space" use="optional"/>
+      <xsd:attribute name="restype" type="xlf:AttrType_restype" use="optional"/>
+      <xsd:attribute name="resname" type="xsd:string" use="optional"/>
+      <xsd:attribute name="extradata" type="xsd:string" use="optional"/>
+      <xsd:attribute name="extype" type="xsd:string" use="optional"/>
+      <xsd:attribute name="help-id" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="menu" type="xsd:string" use="optional"/>
+      <xsd:attribute name="menu-option" type="xsd:string" use="optional"/>
+      <xsd:attribute name="menu-name" type="xsd:string" use="optional"/>
+      <xsd:attribute name="mid" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="coord" type="xlf:AttrType_Coordinates" use="optional"/>
+      <xsd:attribute name="font" type="xsd:string" use="optional"/>
+      <xsd:attribute name="css-style" type="xsd:string" use="optional"/>
+      <xsd:attribute name="style" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="exstyle" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="phase-name" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute default="proposal" name="alttranstype" type="xlf:AttrType_alttranstype" use="optional"/>
+      <xsd:anyAttribute namespace="##other" processContents="strict"/>
+    </xsd:complexType>
+    <xsd:unique name="U_at_segsrc_mid">
+      <xsd:selector xpath="./xlf:seg-source/xlf:mrk"/>
+      <xsd:field xpath="@mid"/>
+    </xsd:unique>
+    <xsd:keyref name="KR_at_segsrc_mid" refer="xlf:U_at_segsrc_mid">
+      <xsd:selector xpath="./xlf:target/xlf:mrk"/>
+      <xsd:field xpath="@mid"/>
+    </xsd:keyref>
+  </xsd:element>
+  <xsd:element name="bin-unit">
+    <xsd:complexType>
+      <xsd:sequence>
+        <xsd:element ref="xlf:bin-source"/>
+        <xsd:element minOccurs="0" ref="xlf:bin-target"/>
+        <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element ref="xlf:context-group"/>
+          <xsd:element ref="xlf:count-group"/>
+          <xsd:element ref="xlf:note"/>
+          <xsd:element ref="xlf:trans-unit"/>
+        </xsd:choice>
+        <xsd:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="strict"/>
+      </xsd:sequence>
+      <xsd:attribute name="id" type="xsd:string" use="required"/>
+      <xsd:attribute name="mime-type" type="xlf:mime-typeValueList" use="required"/>
+      <xsd:attribute name="approved" type="xlf:AttrType_YesNo" use="optional"/>
+      <xsd:attribute default="yes" name="translate" type="xlf:AttrType_YesNo" use="optional"/>
+      <xsd:attribute default="yes" name="reformat" type="xlf:AttrType_reformat" use="optional"/>
+      <xsd:attribute name="restype" type="xlf:AttrType_restype" use="optional"/>
+      <xsd:attribute name="resname" type="xsd:string" use="optional"/>
+      <xsd:attribute name="phase-name" type="xsd:string" use="optional"/>
+      <xsd:anyAttribute namespace="##other" processContents="strict"/>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="bin-source">
+    <xsd:complexType>
+      <xsd:choice>
+        <xsd:element ref="xlf:internal-file"/>
+        <xsd:element ref="xlf:external-file"/>
+      </xsd:choice>
+      <xsd:anyAttribute namespace="##other" processContents="strict"/>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="bin-target">
+    <xsd:complexType>
+      <xsd:choice>
+        <xsd:element ref="xlf:internal-file"/>
+        <xsd:element ref="xlf:external-file"/>
+      </xsd:choice>
+      <xsd:attribute name="mime-type" type="xlf:mime-typeValueList" use="optional"/>
+      <xsd:attribute name="state" type="xlf:AttrType_state" use="optional"/>
+      <xsd:attribute name="state-qualifier" type="xlf:AttrType_state-qualifier" use="optional"/>
+      <xsd:attribute name="phase-name" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="restype" type="xlf:AttrType_restype" use="optional"/>
+      <xsd:attribute name="resname" type="xsd:string" use="optional"/>
+      <xsd:anyAttribute namespace="##other" processContents="strict"/>
+    </xsd:complexType>
+  </xsd:element>
+  <!-- Element for inline codes -->
+  <xsd:element name="g">
+    <xsd:complexType mixed="true">
+      <xsd:group maxOccurs="unbounded" minOccurs="0" ref="xlf:ElemGroup_TextContent"/>
+      <xsd:attribute name="ctype" type="xlf:AttrType_InlineDelimiters" use="optional"/>
+      <xsd:attribute default="yes" name="clone" type="xlf:AttrType_YesNo" use="optional"/>
+      <xsd:attributeGroup ref="xlf:AttrGroup_TextContent"/>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="x">
+    <xsd:complexType>
+      <xsd:attribute name="ctype" type="xlf:AttrType_InlinePlaceholders" use="optional"/>
+      <xsd:attribute default="yes" name="clone" type="xlf:AttrType_YesNo" use="optional"/>
+      <xsd:attributeGroup ref="xlf:AttrGroup_TextContent"/>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="bx">
+    <xsd:complexType>
+      <xsd:attribute name="rid" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="ctype" type="xlf:AttrType_InlineDelimiters" use="optional"/>
+      <xsd:attribute default="yes" name="clone" type="xlf:AttrType_YesNo" use="optional"/>
+      <xsd:attributeGroup ref="xlf:AttrGroup_TextContent"/>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="ex">
+    <xsd:complexType>
+      <xsd:attribute name="rid" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attributeGroup ref="xlf:AttrGroup_TextContent"/>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="ph">
+    <xsd:complexType mixed="true">
+      <xsd:sequence maxOccurs="unbounded" minOccurs="0">
+        <xsd:element ref="xlf:sub"/>
+      </xsd:sequence>
+      <xsd:attribute name="ctype" type="xlf:AttrType_InlinePlaceholders" use="optional"/>
+      <xsd:attribute name="crc" type="xsd:string" use="optional"/>
+      <xsd:attribute name="assoc" type="xlf:AttrType_assoc" use="optional"/>
+      <xsd:attributeGroup ref="xlf:AttrGroup_TextContent"/>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="bpt">
+    <xsd:complexType mixed="true">
+      <xsd:sequence maxOccurs="unbounded" minOccurs="0">
+        <xsd:element ref="xlf:sub"/>
+      </xsd:sequence>
+      <xsd:attribute name="rid" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="ctype" type="xlf:AttrType_InlineDelimiters" use="optional"/>
+      <xsd:attribute name="crc" type="xsd:string" use="optional"/>
+      <xsd:attributeGroup ref="xlf:AttrGroup_TextContent"/>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="ept">
+    <xsd:complexType mixed="true">
+      <xsd:sequence maxOccurs="unbounded" minOccurs="0">
+        <xsd:element ref="xlf:sub"/>
+      </xsd:sequence>
+      <xsd:attribute name="rid" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="crc" type="xsd:string" use="optional"/>
+      <xsd:attributeGroup ref="xlf:AttrGroup_TextContent"/>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="it">
+    <xsd:complexType mixed="true">
+      <xsd:sequence maxOccurs="unbounded" minOccurs="0">
+        <xsd:element ref="xlf:sub"/>
+      </xsd:sequence>
+      <xsd:attribute name="pos" type="xlf:AttrType_Position" use="required"/>
+      <xsd:attribute name="rid" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="ctype" type="xlf:AttrType_InlineDelimiters" use="optional"/>
+      <xsd:attribute name="crc" type="xsd:string" use="optional"/>
+      <xsd:attributeGroup ref="xlf:AttrGroup_TextContent"/>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="sub">
+    <xsd:complexType mixed="true">
+      <xsd:group maxOccurs="unbounded" minOccurs="0" ref="xlf:ElemGroup_TextContent"/>
+      <xsd:attribute name="datatype" type="xlf:AttrType_datatype" use="optional"/>
+      <xsd:attribute name="ctype" type="xlf:AttrType_InlineDelimiters" use="optional"/>
+      <xsd:attribute name="xid" type="xsd:string" use="optional"/>
+    </xsd:complexType>
+  </xsd:element>
+  <xsd:element name="mrk">
+    <xsd:complexType mixed="true">
+      <xsd:group maxOccurs="unbounded" minOccurs="0" ref="xlf:ElemGroup_TextContent"/>
+      <xsd:attribute name="mtype" type="xlf:AttrType_mtype" use="required"/>
+      <xsd:attribute name="mid" type="xsd:NMTOKEN" use="optional"/>
+      <xsd:attribute name="comment" type="xsd:string" use="optional"/>
+      <xsd:anyAttribute namespace="##other" processContents="strict"/>
+    </xsd:complexType>
+  </xsd:element>
+</xsd:schema>
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Resources/schemas/xliff-core-2.0.xsd b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Resources/schemas/xliff-core-2.0.xsd
new file mode 100644
index 0000000..963232f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Resources/schemas/xliff-core-2.0.xsd
@@ -0,0 +1,411 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    XLIFF Version 2.0
+    OASIS Standard
+    05 August 2014
+    Copyright (c) OASIS Open 2014. All rights reserved.
+    Source: http://docs.oasis-open.org/xliff/xliff-core/v2.0/os/schemas/
+     -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    elementFormDefault="qualified"
+    xmlns:xlf="urn:oasis:names:tc:xliff:document:2.0"
+    targetNamespace="urn:oasis:names:tc:xliff:document:2.0">
+
+  <!-- Import -->
+
+  <xs:import namespace="http://www.w3.org/XML/1998/namespace"
+      schemaLocation="informativeCopiesOf3rdPartySchemas/w3c/xml.xsd"/>
+
+  <!-- Element Group -->
+
+  <xs:group name="inline">
+    <xs:choice>
+      <xs:element ref="xlf:cp"/>
+      <xs:element ref="xlf:ph"/>
+      <xs:element ref="xlf:pc"/>
+      <xs:element ref="xlf:sc"/>
+      <xs:element ref="xlf:ec"/>
+      <xs:element ref="xlf:mrk"/>
+      <xs:element ref="xlf:sm"/>
+      <xs:element ref="xlf:em"/>
+    </xs:choice>
+  </xs:group>
+
+  <!-- Attribute Types -->
+
+  <xs:simpleType name="yesNo">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="yes"/>
+      <xs:enumeration value="no"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="yesNoFirstNo">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="yes"/>
+      <xs:enumeration value="firstNo"/>
+      <xs:enumeration value="no"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="dirValue">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="ltr"/>
+      <xs:enumeration value="rtl"/>
+      <xs:enumeration value="auto"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="appliesTo">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="source"/>
+      <xs:enumeration value="target"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="userDefinedValue">
+    <xs:restriction base="xs:string">
+      <xs:pattern value="[^\s:]+:[^\s:]+"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="attrType_type">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="fmt"/>
+      <xs:enumeration value="ui"/>
+      <xs:enumeration value="quote"/>
+      <xs:enumeration value="link"/>
+      <xs:enumeration value="image"/>
+      <xs:enumeration value="other"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="typeForMrkValues">
+    <xs:restriction base="xs:NMTOKEN">
+      <xs:enumeration value="generic"/>
+      <xs:enumeration value="comment"/>
+      <xs:enumeration value="term"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="attrType_typeForMrk">
+    <xs:union memberTypes="xlf:typeForMrkValues xlf:userDefinedValue"/>
+  </xs:simpleType>
+
+  <xs:simpleType name="priorityValue">
+    <xs:restriction base="xs:positiveInteger">
+      <xs:minInclusive value="1"/>
+      <xs:maxInclusive value="10"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="stateType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="initial"/>
+      <xs:enumeration value="translated"/>
+      <xs:enumeration value="reviewed"/>
+      <xs:enumeration value="final"/>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <!-- Structural Elements -->
+
+  <xs:element name="xliff">
+    <xs:complexType mixed="false">
+      <xs:sequence>
+        <xs:element minOccurs="1" maxOccurs="unbounded" ref="xlf:file"/>
+      </xs:sequence>
+      <xs:attribute name="version" use="required"/>
+      <xs:attribute name="srcLang" use="required"/>
+      <xs:attribute name="trgLang" use="optional"/>
+      <xs:attribute ref="xml:space" use="optional" default="default"/>
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="file">
+    <xs:complexType mixed="false">
+      <xs:sequence>
+        <xs:element minOccurs="0" maxOccurs="1" ref="xlf:skeleton"/>
+        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"
+            processContents="lax"/>
+        <xs:element minOccurs="0" maxOccurs="1" ref="xlf:notes"/>
+        <xs:choice minOccurs="1" maxOccurs="unbounded">
+          <xs:element ref="xlf:unit"/>
+          <xs:element ref="xlf:group"/>
+        </xs:choice>
+      </xs:sequence>
+      <xs:attribute name="id" use="required" type="xs:NMTOKEN"/>
+      <xs:attribute name="canResegment" use="optional" type="xlf:yesNo" default="yes"/>
+      <xs:attribute name="original" use="optional"/>
+      <xs:attribute name="translate" use="optional" type="xlf:yesNo" default="yes"/>
+      <xs:attribute name="srcDir" use="optional" type="xlf:dirValue" default="auto"/>
+      <xs:attribute name="trgDir" use="optional" type="xlf:dirValue" default="auto"/>
+      <xs:attribute ref="xml:space" use="optional"/>
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="skeleton">
+    <xs:complexType mixed="true">
+      <xs:sequence>
+        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"
+            processContents="lax"/>
+      </xs:sequence>
+      <xs:attribute name="href" use="optional"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="group">
+    <xs:complexType mixed="false">
+      <xs:sequence>
+        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"
+            processContents="lax"/>
+        <xs:element minOccurs="0" maxOccurs="1" ref="xlf:notes"/>
+        <xs:choice minOccurs="0" maxOccurs="unbounded">
+          <xs:element ref="xlf:unit"/>
+          <xs:element ref="xlf:group"/>
+        </xs:choice>
+      </xs:sequence>
+      <xs:attribute name="id" use="required" type="xs:NMTOKEN"/>
+      <xs:attribute name="name" use="optional"/>
+      <xs:attribute name="canResegment" use="optional" type="xlf:yesNo"/>
+      <xs:attribute name="translate" use="optional" type="xlf:yesNo"/>
+      <xs:attribute name="srcDir" use="optional" type="xlf:dirValue"/>
+      <xs:attribute name="trgDir" use="optional" type="xlf:dirValue"/>
+      <xs:attribute name="type" use="optional" type="xlf:userDefinedValue"/>
+      <xs:attribute ref="xml:space" use="optional"/>
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="unit">
+    <xs:complexType mixed="false">
+      <xs:sequence>
+        <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"
+            processContents="lax"/>
+        <xs:element minOccurs="0" maxOccurs="1" ref="xlf:notes"/>
+        <xs:element minOccurs="0" maxOccurs="1" ref="xlf:originalData"/>
+        <xs:choice minOccurs="1" maxOccurs="unbounded">
+          <xs:element ref="xlf:segment"/>
+          <xs:element ref="xlf:ignorable"/>
+        </xs:choice>
+      </xs:sequence>
+      <xs:attribute name="id" use="required" type="xs:NMTOKEN"/>
+      <xs:attribute name="name" use="optional"/>
+      <xs:attribute name="canResegment" use="optional" type="xlf:yesNo"/>
+      <xs:attribute name="translate" use="optional" type="xlf:yesNo"/>
+      <xs:attribute name="srcDir" use="optional" type="xlf:dirValue"/>
+      <xs:attribute name="trgDir" use="optional" type="xlf:dirValue"/>
+      <xs:attribute ref="xml:space" use="optional"/>
+      <xs:attribute name="type" use="optional" type="xlf:userDefinedValue"/>
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="segment">
+    <xs:complexType mixed="false">
+      <xs:sequence>
+        <xs:element minOccurs="1" maxOccurs="1" ref="xlf:source"/>
+        <xs:element minOccurs="0" maxOccurs="1" ref="xlf:target"/>
+      </xs:sequence>
+      <xs:attribute name="id" use="optional" type="xs:NMTOKEN"/>
+      <xs:attribute name="canResegment" use="optional" type="xlf:yesNo"/>
+      <xs:attribute name="state" use="optional" type="xlf:stateType" default="initial"/>
+      <xs:attribute name="subState" use="optional"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="ignorable">
+    <xs:complexType mixed="false">
+      <xs:sequence>
+        <xs:element minOccurs="1" maxOccurs="1" ref="xlf:source"/>
+        <xs:element minOccurs="0" maxOccurs="1" ref="xlf:target"/>
+      </xs:sequence>
+      <xs:attribute name="id" use="optional" type="xs:NMTOKEN"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="notes">
+    <xs:complexType mixed="false">
+      <xs:sequence>
+        <xs:element minOccurs="1" maxOccurs="unbounded" ref="xlf:note"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="note">
+    <xs:complexType mixed="true">
+      <xs:attribute name="id" use="optional" type="xs:NMTOKEN"/>
+      <xs:attribute name="appliesTo" use="optional" type="xlf:appliesTo"/>
+      <xs:attribute name="category" use="optional"/>
+      <xs:attribute name="priority" use="optional" type="xlf:priorityValue" default="1"/>
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="originalData">
+    <xs:complexType mixed="false">
+      <xs:sequence>
+        <xs:element minOccurs="1" maxOccurs="unbounded" ref="xlf:data"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="data">
+    <xs:complexType mixed="true">
+      <xs:sequence>
+        <xs:element minOccurs="0" maxOccurs="unbounded" ref="xlf:cp"/>
+      </xs:sequence>
+      <xs:attribute name="id" use="required" type="xs:NMTOKEN"/>
+      <xs:attribute name="dir" use="optional" type="xlf:dirValue" default="auto"/>
+      <xs:attribute ref="xml:space" use="optional" fixed="preserve"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="source">
+    <xs:complexType mixed="true">
+      <xs:group ref="xlf:inline" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:attribute ref="xml:lang" use="optional"/>
+      <xs:attribute ref="xml:space" use="optional"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="target">
+    <xs:complexType mixed="true">
+      <xs:group ref="xlf:inline" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:attribute ref="xml:lang" use="optional"/>
+      <xs:attribute ref="xml:space" use="optional"/>
+      <xs:attribute name="order" use="optional" type="xs:positiveInteger"/>
+    </xs:complexType>
+  </xs:element>
+
+  <!-- Inline Elements -->
+
+  <xs:element name="cp">
+    <!-- Code Point -->
+    <xs:complexType mixed="false">
+      <xs:attribute name="hex" use="required" type="xs:hexBinary"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="ph">
+    <!-- Placeholder -->
+    <xs:complexType mixed="false">
+      <xs:attribute name="canCopy" use="optional" type="xlf:yesNo" default="yes"/>
+      <xs:attribute name="canDelete" use="optional" type="xlf:yesNo" default="yes"/>
+      <xs:attribute name="canReorder" use="optional" type="xlf:yesNoFirstNo" default="yes"/>
+      <xs:attribute name="copyOf" use="optional" type="xs:NMTOKEN"/>
+      <xs:attribute name="disp" use="optional"/>
+      <xs:attribute name="equiv" use="optional"/>
+      <xs:attribute name="id" use="required" type="xs:NMTOKEN"/>
+      <xs:attribute name="dataRef" use="optional" type="xs:NMTOKEN"/>
+      <xs:attribute name="subFlows" use="optional" type="xs:NMTOKENS"/>
+      <xs:attribute name="subType" use="optional" type="xlf:userDefinedValue"/>
+      <xs:attribute name="type" use="optional" type="xlf:attrType_type"/>
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="pc">
+    <!-- Paired Code -->
+    <xs:complexType mixed="true">
+      <xs:group ref="xlf:inline" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:attribute name="canCopy" use="optional" type="xlf:yesNo" default="yes"/>
+      <xs:attribute name="canDelete" use="optional" type="xlf:yesNo" default="yes"/>
+      <xs:attribute name="canOverlap" use="optional" type="xlf:yesNo"/>
+      <xs:attribute name="canReorder" use="optional" type="xlf:yesNoFirstNo" default="yes"/>
+      <xs:attribute name="copyOf" use="optional" type="xs:NMTOKEN"/>
+      <xs:attribute name="dispEnd" use="optional"/>
+      <xs:attribute name="dispStart" use="optional"/>
+      <xs:attribute name="equivEnd" use="optional"/>
+      <xs:attribute name="equivStart" use="optional"/>
+      <xs:attribute name="id" use="required" type="xs:NMTOKEN"/>
+      <xs:attribute name="dataRefEnd" use="optional" type="xs:NMTOKEN"/>
+      <xs:attribute name="dataRefStart" use="optional" type="xs:NMTOKEN"/>
+      <xs:attribute name="subFlowsEnd" use="optional" type="xs:NMTOKENS"/>
+      <xs:attribute name="subFlowsStart" use="optional" type="xs:NMTOKENS"/>
+      <xs:attribute name="subType" use="optional" type="xlf:userDefinedValue"/>
+      <xs:attribute name="type" use="optional" type="xlf:attrType_type"/>
+      <xs:attribute name="dir" use="optional" type="xlf:dirValue"/>
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="sc">
+    <!-- Start Code -->
+    <xs:complexType mixed="false">
+      <xs:attribute name="canCopy" use="optional" type="xlf:yesNo" default="yes"/>
+      <xs:attribute name="canDelete" use="optional" type="xlf:yesNo" default="yes"/>
+      <xs:attribute name="canOverlap" use="optional" type="xlf:yesNo" default="yes"/>
+      <xs:attribute name="canReorder" use="optional" type="xlf:yesNoFirstNo" default="yes"/>
+      <xs:attribute name="copyOf" use="optional" type="xs:NMTOKEN"/>
+      <xs:attribute name="dataRef" use="optional" type="xs:NMTOKEN"/>
+      <xs:attribute name="dir" use="optional" type="xlf:dirValue"/>
+      <xs:attribute name="disp" use="optional"/>
+      <xs:attribute name="equiv" use="optional"/>
+      <xs:attribute name="id" use="required" type="xs:NMTOKEN"/>
+      <xs:attribute name="isolated" use="optional" type="xlf:yesNo" default="no"/>
+      <xs:attribute name="subFlows" use="optional" type="xs:NMTOKENS"/>
+      <xs:attribute name="subType" use="optional" type="xlf:userDefinedValue"/>
+      <xs:attribute name="type" use="optional" type="xlf:attrType_type"/>
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="ec">
+    <!-- End Code -->
+    <xs:complexType mixed="false">
+      <xs:attribute name="canCopy" use="optional" type="xlf:yesNo" default="yes"/>
+      <xs:attribute name="canDelete" use="optional" type="xlf:yesNo" default="yes"/>
+      <xs:attribute name="canOverlap" use="optional" type="xlf:yesNo" default="yes"/>
+      <xs:attribute name="canReorder" use="optional" type="xlf:yesNoFirstNo" default="yes"/>
+      <xs:attribute name="copyOf" use="optional" type="xs:NMTOKEN"/>
+      <xs:attribute name="dataRef" use="optional" type="xs:NMTOKEN"/>
+      <xs:attribute name="dir" use="optional" type="xlf:dirValue"/>
+      <xs:attribute name="disp" use="optional"/>
+      <xs:attribute name="equiv" use="optional"/>
+      <xs:attribute name="id" use="optional" type="xs:NMTOKEN"/>
+      <xs:attribute name="isolated" use="optional" type="xlf:yesNo" default="no"/>
+      <xs:attribute name="startRef" use="optional" type="xs:NMTOKEN"/>
+      <xs:attribute name="subFlows" use="optional" type="xs:NMTOKENS"/>
+      <xs:attribute name="subType" use="optional" type="xlf:userDefinedValue"/>
+      <xs:attribute name="type" use="optional" type="xlf:attrType_type"/>
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="mrk">
+    <!-- Annotation Marker -->
+    <xs:complexType mixed="true">
+      <xs:group ref="xlf:inline" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:attribute name="id" use="required" type="xs:NMTOKEN"/>
+      <xs:attribute name="translate" use="optional" type="xlf:yesNo"/>
+      <xs:attribute name="type" use="optional" type="xlf:attrType_typeForMrk"/>
+      <xs:attribute name="ref" use="optional" type="xs:anyURI"/>
+      <xs:attribute name="value" use="optional"/>
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="sm">
+    <!-- Start Annotation Marker -->
+    <xs:complexType mixed="false">
+      <xs:attribute name="id" use="required" type="xs:NMTOKEN"/>
+      <xs:attribute name="translate" use="optional" type="xlf:yesNo"/>
+      <xs:attribute name="type" use="optional" type="xlf:attrType_typeForMrk"/>
+      <xs:attribute name="ref" use="optional" type="xs:anyURI"/>
+      <xs:attribute name="value" use="optional"/>
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="em">
+    <!-- End Annotation Marker -->
+    <xs:complexType mixed="false">
+      <xs:attribute name="startRef" use="required" type="xs:NMTOKEN"/>
+    </xs:complexType>
+  </xs:element>
+
+</xs:schema>
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Resources/schemas/xml.xsd b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Resources/schemas/xml.xsd
new file mode 100644
index 0000000..a46162a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Resources/schemas/xml.xsd
@@ -0,0 +1,309 @@
+<?xml version='1.0'?>
+<?xml-stylesheet href="../2008/09/xsd.xsl" type="text/xsl"?>
+<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" 
+  xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+  xmlns ="http://www.w3.org/1999/xhtml"
+  xml:lang="en">
+
+ <xs:annotation>
+  <xs:documentation>
+   <div>
+    <h1>About the XML namespace</h1>
+
+    <div class="bodytext">
+     <p>
+
+      This schema document describes the XML namespace, in a form
+      suitable for import by other schema documents.
+     </p>
+     <p>
+      See <a href="http://www.w3.org/XML/1998/namespace.html">
+      http://www.w3.org/XML/1998/namespace.html</a> and
+      <a href="http://www.w3.org/TR/REC-xml">
+      http://www.w3.org/TR/REC-xml</a> for information 
+      about this namespace.
+     </p>
+
+     <p>
+      Note that local names in this namespace are intended to be
+      defined only by the World Wide Web Consortium or its subgroups.
+      The names currently defined in this namespace are listed below.
+      They should not be used with conflicting semantics by any Working
+      Group, specification, or document instance.
+     </p>
+     <p>   
+      See further below in this document for more information about <a
+      href="#usage">how to refer to this schema document from your own
+      XSD schema documents</a> and about <a href="#nsversioning">the
+      namespace-versioning policy governing this schema document</a>.
+     </p>
+    </div>
+   </div>
+
+  </xs:documentation>
+ </xs:annotation>
+
+ <xs:attribute name="lang">
+  <xs:annotation>
+   <xs:documentation>
+    <div>
+     
+      <h3>lang (as an attribute name)</h3>
+      <p>
+
+       denotes an attribute whose value
+       is a language code for the natural language of the content of
+       any element; its value is inherited.  This name is reserved
+       by virtue of its definition in the XML specification.</p>
+     
+    </div>
+    <div>
+     <h4>Notes</h4>
+     <p>
+      Attempting to install the relevant ISO 2- and 3-letter
+      codes as the enumerated possible values is probably never
+      going to be a realistic possibility.  
+     </p>
+     <p>
+
+      See BCP 47 at <a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">
+       http://www.rfc-editor.org/rfc/bcp/bcp47.txt</a>
+      and the IANA language subtag registry at
+      <a href="http://www.iana.org/assignments/language-subtag-registry">
+       http://www.iana.org/assignments/language-subtag-registry</a>
+      for further information.
+     </p>
+     <p>
+
+      The union allows for the 'un-declaration' of xml:lang with
+      the empty string.
+     </p>
+    </div>
+   </xs:documentation>
+  </xs:annotation>
+  <xs:simpleType>
+   <xs:union memberTypes="xs:language">
+    <xs:simpleType>    
+     <xs:restriction base="xs:string">
+      <xs:enumeration value=""/>
+
+     </xs:restriction>
+    </xs:simpleType>
+   </xs:union>
+  </xs:simpleType>
+ </xs:attribute>
+
+ <xs:attribute name="space">
+  <xs:annotation>
+   <xs:documentation>
+
+    <div>
+     
+      <h3>space (as an attribute name)</h3>
+      <p>
+       denotes an attribute whose
+       value is a keyword indicating what whitespace processing
+       discipline is intended for the content of the element; its
+       value is inherited.  This name is reserved by virtue of its
+       definition in the XML specification.</p>
+     
+    </div>
+   </xs:documentation>
+  </xs:annotation>
+  <xs:simpleType>
+
+   <xs:restriction base="xs:NCName">
+    <xs:enumeration value="default"/>
+    <xs:enumeration value="preserve"/>
+   </xs:restriction>
+  </xs:simpleType>
+ </xs:attribute>
+ 
+ <xs:attribute name="base" type="xs:anyURI"> <xs:annotation>
+   <xs:documentation>
+
+    <div>
+     
+      <h3>base (as an attribute name)</h3>
+      <p>
+       denotes an attribute whose value
+       provides a URI to be used as the base for interpreting any
+       relative URIs in the scope of the element on which it
+       appears; its value is inherited.  This name is reserved
+       by virtue of its definition in the XML Base specification.</p>
+     
+     <p>
+      See <a
+      href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a>
+      for information about this attribute.
+     </p>
+
+    </div>
+   </xs:documentation>
+  </xs:annotation>
+ </xs:attribute>
+ 
+ <xs:attribute name="id" type="xs:ID">
+  <xs:annotation>
+   <xs:documentation>
+    <div>
+     
+      <h3>id (as an attribute name)</h3> 
+      <p>
+
+       denotes an attribute whose value
+       should be interpreted as if declared to be of type ID.
+       This name is reserved by virtue of its definition in the
+       xml:id specification.</p>
+     
+     <p>
+      See <a
+      href="http://www.w3.org/TR/xml-id/">http://www.w3.org/TR/xml-id/</a>
+      for information about this attribute.
+     </p>
+    </div>
+   </xs:documentation>
+  </xs:annotation>
+
+ </xs:attribute>
+
+ <xs:attributeGroup name="specialAttrs">
+  <xs:attribute ref="xml:base"/>
+  <xs:attribute ref="xml:lang"/>
+  <xs:attribute ref="xml:space"/>
+  <xs:attribute ref="xml:id"/>
+ </xs:attributeGroup>
+
+ <xs:annotation>
+
+  <xs:documentation>
+   <div>
+   
+    <h3>Father (in any context at all)</h3> 
+
+    <div class="bodytext">
+     <p>
+      denotes Jon Bosak, the chair of 
+      the original XML Working Group.  This name is reserved by 
+      the following decision of the W3C XML Plenary and 
+      XML Coordination groups:
+     </p>
+     <blockquote>
+       <p>
+
+	In appreciation for his vision, leadership and
+	dedication the W3C XML Plenary on this 10th day of
+	February, 2000, reserves for Jon Bosak in perpetuity
+	the XML name "xml:Father".
+       </p>
+     </blockquote>
+    </div>
+   </div>
+  </xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+  <xs:documentation>
+
+   <div xml:id="usage" id="usage">
+    <h2><a name="usage">About this schema document</a></h2>
+
+    <div class="bodytext">
+     <p>
+      This schema defines attributes and an attribute group suitable
+      for use by schemas wishing to allow <code>xml:base</code>,
+      <code>xml:lang</code>, <code>xml:space</code> or
+      <code>xml:id</code> attributes on elements they define.
+     </p>
+
+     <p>
+      To enable this, such a schema must import this schema for
+      the XML namespace, e.g. as follows:
+     </p>
+     <pre>
+          &lt;schema.. .>
+          .. .
+           &lt;import namespace="http://www.w3.org/XML/1998/namespace"
+                      schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+     </pre>
+     <p>
+      or
+     </p>
+     <pre>
+
+           &lt;import namespace="http://www.w3.org/XML/1998/namespace"
+                      schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
+     </pre>
+     <p>
+      Subsequently, qualified reference to any of the attributes or the
+      group defined below will have the desired effect, e.g.
+     </p>
+     <pre>
+          &lt;type.. .>
+          .. .
+           &lt;attributeGroup ref="xml:specialAttrs"/>
+     </pre>
+     <p>
+      will define a type which will schema-validate an instance element
+      with any of those attributes.
+     </p>
+
+    </div>
+   </div>
+  </xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+  <xs:documentation>
+   <div id="nsversioning" xml:id="nsversioning">
+    <h2><a name="nsversioning">Versioning policy for this schema document</a></h2>
+
+    <div class="bodytext">
+     <p>
+      In keeping with the XML Schema WG's standard versioning
+      policy, this schema document will persist at
+      <a href="http://www.w3.org/2009/01/xml.xsd">
+       http://www.w3.org/2009/01/xml.xsd</a>.
+     </p>
+     <p>
+      At the date of issue it can also be found at
+      <a href="http://www.w3.org/2001/xml.xsd">
+       http://www.w3.org/2001/xml.xsd</a>.
+     </p>
+
+     <p>
+      The schema document at that URI may however change in the future,
+      in order to remain compatible with the latest version of XML
+      Schema itself, or with the XML namespace itself.  In other words,
+      if the XML Schema or XML namespaces change, the version of this
+      document at <a href="http://www.w3.org/2001/xml.xsd">
+       http://www.w3.org/2001/xml.xsd 
+      </a> 
+      will change accordingly; the version at 
+      <a href="http://www.w3.org/2009/01/xml.xsd">
+       http://www.w3.org/2009/01/xml.xsd 
+      </a> 
+      will not change.
+     </p>
+     <p>
+
+      Previous dated (and unchanging) versions of this schema 
+      document are at:
+     </p>
+     <ul>
+      <li><a href="http://www.w3.org/2009/01/xml.xsd">
+	http://www.w3.org/2009/01/xml.xsd</a></li>
+      <li><a href="http://www.w3.org/2007/08/xml.xsd">
+	http://www.w3.org/2007/08/xml.xsd</a></li>
+      <li><a href="http://www.w3.org/2004/10/xml.xsd">
+
+	http://www.w3.org/2004/10/xml.xsd</a></li>
+      <li><a href="http://www.w3.org/2001/03/xml.xsd">
+	http://www.w3.org/2001/03/xml.xsd</a></li>
+     </ul>
+    </div>
+   </div>
+  </xs:documentation>
+ </xs:annotation>
+
+</xs:schema>
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Test/ProviderFactoryTestCase.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Test/ProviderFactoryTestCase.php
new file mode 100644
index 0000000..6d5f4b7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Test/ProviderFactoryTestCase.php
@@ -0,0 +1,147 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Test;
+
+use PHPUnit\Framework\TestCase;
+use Psr\Log\LoggerInterface;
+use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\Translation\Dumper\XliffFileDumper;
+use Symfony\Component\Translation\Exception\IncompleteDsnException;
+use Symfony\Component\Translation\Exception\UnsupportedSchemeException;
+use Symfony\Component\Translation\Loader\LoaderInterface;
+use Symfony\Component\Translation\Provider\Dsn;
+use Symfony\Component\Translation\Provider\ProviderFactoryInterface;
+use Symfony\Contracts\HttpClient\HttpClientInterface;
+
+/**
+ * A test case to ease testing a translation provider factory.
+ *
+ * @author Mathieu Santostefano <msantostefano@protonmail.com>
+ *
+ * @internal
+ */
+abstract class ProviderFactoryTestCase extends TestCase
+{
+    protected $client;
+    protected $logger;
+    protected $defaultLocale;
+    protected $loader;
+    protected $xliffFileDumper;
+
+    abstract public function createFactory(): ProviderFactoryInterface;
+
+    /**
+     * @return iterable<array{0: bool, 1: string}>
+     */
+    abstract public function supportsProvider(): iterable;
+
+    /**
+     * @return iterable<array{0: string, 1: string, 2: TransportInterface}>
+     */
+    abstract public function createProvider(): iterable;
+
+    /**
+     * @return iterable<array{0: string, 1: string|null}>
+     */
+    public function unsupportedSchemeProvider(): iterable
+    {
+        return [];
+    }
+
+    /**
+     * @return iterable<array{0: string, 1: string|null}>
+     */
+    public function incompleteDsnProvider(): iterable
+    {
+        return [];
+    }
+
+    /**
+     * @dataProvider supportsProvider
+     */
+    public function testSupports(bool $expected, string $dsn)
+    {
+        $factory = $this->createFactory();
+
+        $this->assertSame($expected, $factory->supports(new Dsn($dsn)));
+    }
+
+    /**
+     * @dataProvider createProvider
+     */
+    public function testCreate(string $expected, string $dsn)
+    {
+        $factory = $this->createFactory();
+        $provider = $factory->create(new Dsn($dsn));
+
+        $this->assertSame($expected, (string) $provider);
+    }
+
+    /**
+     * @dataProvider unsupportedSchemeProvider
+     */
+    public function testUnsupportedSchemeException(string $dsn, string $message = null)
+    {
+        $factory = $this->createFactory();
+
+        $dsn = new Dsn($dsn);
+
+        $this->expectException(UnsupportedSchemeException::class);
+        if (null !== $message) {
+            $this->expectExceptionMessage($message);
+        }
+
+        $factory->create($dsn);
+    }
+
+    /**
+     * @dataProvider incompleteDsnProvider
+     */
+    public function testIncompleteDsnException(string $dsn, string $message = null)
+    {
+        $factory = $this->createFactory();
+
+        $dsn = new Dsn($dsn);
+
+        $this->expectException(IncompleteDsnException::class);
+        if (null !== $message) {
+            $this->expectExceptionMessage($message);
+        }
+
+        $factory->create($dsn);
+    }
+
+    protected function getClient(): HttpClientInterface
+    {
+        return $this->client ?? $this->client = new MockHttpClient();
+    }
+
+    protected function getLogger(): LoggerInterface
+    {
+        return $this->logger ?? $this->logger = $this->createMock(LoggerInterface::class);
+    }
+
+    protected function getDefaultLocale(): string
+    {
+        return $this->defaultLocale ?? $this->defaultLocale = 'en';
+    }
+
+    protected function getLoader(): LoaderInterface
+    {
+        return $this->loader ?? $this->loader = $this->createMock(LoaderInterface::class);
+    }
+
+    protected function getXliffFileDumper(): XliffFileDumper
+    {
+        return $this->xliffFileDumper ?? $this->xliffFileDumper = $this->createMock(XliffFileDumper::class);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Test/ProviderTestCase.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Test/ProviderTestCase.php
new file mode 100644
index 0000000..238fd96
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Test/ProviderTestCase.php
@@ -0,0 +1,86 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Test;
+
+use PHPUnit\Framework\MockObject\MockObject;
+use PHPUnit\Framework\TestCase;
+use Psr\Log\LoggerInterface;
+use Symfony\Component\HttpClient\MockHttpClient;
+use Symfony\Component\Translation\Dumper\XliffFileDumper;
+use Symfony\Component\Translation\Loader\LoaderInterface;
+use Symfony\Component\Translation\Provider\ProviderInterface;
+use Symfony\Contracts\HttpClient\HttpClientInterface;
+
+/**
+ * A test case to ease testing a translation provider.
+ *
+ * @author Mathieu Santostefano <msantostefano@protonmail.com>
+ *
+ * @internal
+ */
+abstract class ProviderTestCase extends TestCase
+{
+    protected $client;
+    protected $logger;
+    protected $defaultLocale;
+    protected $loader;
+    protected $xliffFileDumper;
+
+    abstract public function createProvider(HttpClientInterface $client, LoaderInterface $loader, LoggerInterface $logger, string $defaultLocale, string $endpoint): ProviderInterface;
+
+    /**
+     * @return iterable<array{0: string, 1: ProviderInterface}>
+     */
+    abstract public function toStringProvider(): iterable;
+
+    /**
+     * @dataProvider toStringProvider
+     */
+    public function testToString(ProviderInterface $provider, string $expected)
+    {
+        $this->assertSame($expected, (string) $provider);
+    }
+
+    protected function getClient(): MockHttpClient
+    {
+        return $this->client ?? $this->client = new MockHttpClient();
+    }
+
+    /**
+     * @return LoaderInterface&MockObject
+     */
+    protected function getLoader(): LoaderInterface
+    {
+        return $this->loader ?? $this->loader = $this->createMock(LoaderInterface::class);
+    }
+
+    /**
+     * @return LoaderInterface&MockObject
+     */
+    protected function getLogger(): LoggerInterface
+    {
+        return $this->logger ?? $this->logger = $this->createMock(LoggerInterface::class);
+    }
+
+    protected function getDefaultLocale(): string
+    {
+        return $this->defaultLocale ?? $this->defaultLocale = 'en';
+    }
+
+    /**
+     * @return LoaderInterface&MockObject
+     */
+    protected function getXliffFileDumper(): XliffFileDumper
+    {
+        return $this->xliffFileDumper ?? $this->xliffFileDumper = $this->createMock(XliffFileDumper::class);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/TranslatableMessage.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/TranslatableMessage.php
new file mode 100644
index 0000000..82ae6d7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/TranslatableMessage.php
@@ -0,0 +1,57 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation;
+
+use Symfony\Contracts\Translation\TranslatableInterface;
+use Symfony\Contracts\Translation\TranslatorInterface;
+
+/**
+ * @author Nate Wiebe <nate@northern.co>
+ */
+class TranslatableMessage implements TranslatableInterface
+{
+    private $message;
+    private $parameters;
+    private $domain;
+
+    public function __construct(string $message, array $parameters = [], string $domain = null)
+    {
+        $this->message = $message;
+        $this->parameters = $parameters;
+        $this->domain = $domain;
+    }
+
+    public function __toString(): string
+    {
+        return $this->getMessage();
+    }
+
+    public function getMessage(): string
+    {
+        return $this->message;
+    }
+
+    public function getParameters(): array
+    {
+        return $this->parameters;
+    }
+
+    public function getDomain(): ?string
+    {
+        return $this->domain;
+    }
+
+    public function trans(TranslatorInterface $translator, string $locale = null): string
+    {
+        return $translator->trans($this->getMessage(), $this->getParameters(), $this->getDomain(), $locale);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Translator.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Translator.php
new file mode 100644
index 0000000..9a63956
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Translator.php
@@ -0,0 +1,490 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation;
+
+use Symfony\Component\Config\ConfigCacheFactory;
+use Symfony\Component\Config\ConfigCacheFactoryInterface;
+use Symfony\Component\Config\ConfigCacheInterface;
+use Symfony\Component\Translation\Exception\InvalidArgumentException;
+use Symfony\Component\Translation\Exception\NotFoundResourceException;
+use Symfony\Component\Translation\Exception\RuntimeException;
+use Symfony\Component\Translation\Formatter\IntlFormatterInterface;
+use Symfony\Component\Translation\Formatter\MessageFormatter;
+use Symfony\Component\Translation\Formatter\MessageFormatterInterface;
+use Symfony\Component\Translation\Loader\LoaderInterface;
+use Symfony\Contracts\Translation\LocaleAwareInterface;
+use Symfony\Contracts\Translation\TranslatorInterface;
+
+// Help opcache.preload discover always-needed symbols
+class_exists(MessageCatalogue::class);
+
+/**
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+class Translator implements TranslatorInterface, TranslatorBagInterface, LocaleAwareInterface
+{
+    /**
+     * @var MessageCatalogueInterface[]
+     */
+    protected $catalogues = [];
+
+    /**
+     * @var string
+     */
+    private $locale;
+
+    /**
+     * @var array
+     */
+    private $fallbackLocales = [];
+
+    /**
+     * @var LoaderInterface[]
+     */
+    private $loaders = [];
+
+    /**
+     * @var array
+     */
+    private $resources = [];
+
+    /**
+     * @var MessageFormatterInterface
+     */
+    private $formatter;
+
+    /**
+     * @var string
+     */
+    private $cacheDir;
+
+    /**
+     * @var bool
+     */
+    private $debug;
+
+    private $cacheVary;
+
+    /**
+     * @var ConfigCacheFactoryInterface|null
+     */
+    private $configCacheFactory;
+
+    /**
+     * @var array|null
+     */
+    private $parentLocales;
+
+    private $hasIntlFormatter;
+
+    /**
+     * @throws InvalidArgumentException If a locale contains invalid characters
+     */
+    public function __construct(string $locale, MessageFormatterInterface $formatter = null, string $cacheDir = null, bool $debug = false, array $cacheVary = [])
+    {
+        $this->setLocale($locale);
+
+        if (null === $formatter) {
+            $formatter = new MessageFormatter();
+        }
+
+        $this->formatter = $formatter;
+        $this->cacheDir = $cacheDir;
+        $this->debug = $debug;
+        $this->cacheVary = $cacheVary;
+        $this->hasIntlFormatter = $formatter instanceof IntlFormatterInterface;
+    }
+
+    public function setConfigCacheFactory(ConfigCacheFactoryInterface $configCacheFactory)
+    {
+        $this->configCacheFactory = $configCacheFactory;
+    }
+
+    /**
+     * Adds a Loader.
+     *
+     * @param string $format The name of the loader (@see addResource())
+     */
+    public function addLoader(string $format, LoaderInterface $loader)
+    {
+        $this->loaders[$format] = $loader;
+    }
+
+    /**
+     * Adds a Resource.
+     *
+     * @param string $format   The name of the loader (@see addLoader())
+     * @param mixed  $resource The resource name
+     *
+     * @throws InvalidArgumentException If the locale contains invalid characters
+     */
+    public function addResource(string $format, $resource, string $locale, string $domain = null)
+    {
+        if (null === $domain) {
+            $domain = 'messages';
+        }
+
+        $this->assertValidLocale($locale);
+        $locale ?: $locale = class_exists(\Locale::class) ? \Locale::getDefault() : 'en';
+
+        $this->resources[$locale][] = [$format, $resource, $domain];
+
+        if (\in_array($locale, $this->fallbackLocales)) {
+            $this->catalogues = [];
+        } else {
+            unset($this->catalogues[$locale]);
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setLocale(string $locale)
+    {
+        $this->assertValidLocale($locale);
+        $this->locale = $locale;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getLocale()
+    {
+        return $this->locale ?: (class_exists(\Locale::class) ? \Locale::getDefault() : 'en');
+    }
+
+    /**
+     * Sets the fallback locales.
+     *
+     * @throws InvalidArgumentException If a locale contains invalid characters
+     */
+    public function setFallbackLocales(array $locales)
+    {
+        // needed as the fallback locales are linked to the already loaded catalogues
+        $this->catalogues = [];
+
+        foreach ($locales as $locale) {
+            $this->assertValidLocale($locale);
+        }
+
+        $this->fallbackLocales = $this->cacheVary['fallback_locales'] = $locales;
+    }
+
+    /**
+     * Gets the fallback locales.
+     *
+     * @internal
+     */
+    public function getFallbackLocales(): array
+    {
+        return $this->fallbackLocales;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function trans(?string $id, array $parameters = [], string $domain = null, string $locale = null)
+    {
+        if (null === $id || '' === $id) {
+            return '';
+        }
+
+        if (null === $domain) {
+            $domain = 'messages';
+        }
+
+        $catalogue = $this->getCatalogue($locale);
+        $locale = $catalogue->getLocale();
+        while (!$catalogue->defines($id, $domain)) {
+            if ($cat = $catalogue->getFallbackCatalogue()) {
+                $catalogue = $cat;
+                $locale = $catalogue->getLocale();
+            } else {
+                break;
+            }
+        }
+
+        $len = \strlen(MessageCatalogue::INTL_DOMAIN_SUFFIX);
+        if ($this->hasIntlFormatter
+            && ($catalogue->defines($id, $domain.MessageCatalogue::INTL_DOMAIN_SUFFIX)
+            || (\strlen($domain) > $len && 0 === substr_compare($domain, MessageCatalogue::INTL_DOMAIN_SUFFIX, -$len, $len)))
+        ) {
+            return $this->formatter->formatIntl($catalogue->get($id, $domain), $locale, $parameters);
+        }
+
+        return $this->formatter->format($catalogue->get($id, $domain), $locale, $parameters);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getCatalogue(string $locale = null)
+    {
+        if (!$locale) {
+            $locale = $this->getLocale();
+        } else {
+            $this->assertValidLocale($locale);
+        }
+
+        if (!isset($this->catalogues[$locale])) {
+            $this->loadCatalogue($locale);
+        }
+
+        return $this->catalogues[$locale];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getCatalogues(): array
+    {
+        return array_values($this->catalogues);
+    }
+
+    /**
+     * Gets the loaders.
+     *
+     * @return array LoaderInterface[]
+     */
+    protected function getLoaders()
+    {
+        return $this->loaders;
+    }
+
+    protected function loadCatalogue(string $locale)
+    {
+        if (null === $this->cacheDir) {
+            $this->initializeCatalogue($locale);
+        } else {
+            $this->initializeCacheCatalogue($locale);
+        }
+    }
+
+    protected function initializeCatalogue(string $locale)
+    {
+        $this->assertValidLocale($locale);
+
+        try {
+            $this->doLoadCatalogue($locale);
+        } catch (NotFoundResourceException $e) {
+            if (!$this->computeFallbackLocales($locale)) {
+                throw $e;
+            }
+        }
+        $this->loadFallbackCatalogues($locale);
+    }
+
+    private function initializeCacheCatalogue(string $locale): void
+    {
+        if (isset($this->catalogues[$locale])) {
+            /* Catalogue already initialized. */
+            return;
+        }
+
+        $this->assertValidLocale($locale);
+        $cache = $this->getConfigCacheFactory()->cache($this->getCatalogueCachePath($locale),
+            function (ConfigCacheInterface $cache) use ($locale) {
+                $this->dumpCatalogue($locale, $cache);
+            }
+        );
+
+        if (isset($this->catalogues[$locale])) {
+            /* Catalogue has been initialized as it was written out to cache. */
+            return;
+        }
+
+        /* Read catalogue from cache. */
+        $this->catalogues[$locale] = include $cache->getPath();
+    }
+
+    private function dumpCatalogue(string $locale, ConfigCacheInterface $cache): void
+    {
+        $this->initializeCatalogue($locale);
+        $fallbackContent = $this->getFallbackContent($this->catalogues[$locale]);
+
+        $content = sprintf(<<<EOF
+<?php
+
+use Symfony\Component\Translation\MessageCatalogue;
+
+\$catalogue = new MessageCatalogue('%s', %s);
+
+%s
+return \$catalogue;
+
+EOF
+            ,
+            $locale,
+            var_export($this->getAllMessages($this->catalogues[$locale]), true),
+            $fallbackContent
+        );
+
+        $cache->write($content, $this->catalogues[$locale]->getResources());
+    }
+
+    private function getFallbackContent(MessageCatalogue $catalogue): string
+    {
+        $fallbackContent = '';
+        $current = '';
+        $replacementPattern = '/[^a-z0-9_]/i';
+        $fallbackCatalogue = $catalogue->getFallbackCatalogue();
+        while ($fallbackCatalogue) {
+            $fallback = $fallbackCatalogue->getLocale();
+            $fallbackSuffix = ucfirst(preg_replace($replacementPattern, '_', $fallback));
+            $currentSuffix = ucfirst(preg_replace($replacementPattern, '_', $current));
+
+            $fallbackContent .= sprintf(<<<'EOF'
+$catalogue%s = new MessageCatalogue('%s', %s);
+$catalogue%s->addFallbackCatalogue($catalogue%s);
+
+EOF
+                ,
+                $fallbackSuffix,
+                $fallback,
+                var_export($this->getAllMessages($fallbackCatalogue), true),
+                $currentSuffix,
+                $fallbackSuffix
+            );
+            $current = $fallbackCatalogue->getLocale();
+            $fallbackCatalogue = $fallbackCatalogue->getFallbackCatalogue();
+        }
+
+        return $fallbackContent;
+    }
+
+    private function getCatalogueCachePath(string $locale): string
+    {
+        return $this->cacheDir.'/catalogue.'.$locale.'.'.strtr(substr(base64_encode(hash('sha256', serialize($this->cacheVary), true)), 0, 7), '/', '_').'.php';
+    }
+
+    /**
+     * @internal
+     */
+    protected function doLoadCatalogue(string $locale): void
+    {
+        $this->catalogues[$locale] = new MessageCatalogue($locale);
+
+        if (isset($this->resources[$locale])) {
+            foreach ($this->resources[$locale] as $resource) {
+                if (!isset($this->loaders[$resource[0]])) {
+                    if (\is_string($resource[1])) {
+                        throw new RuntimeException(sprintf('No loader is registered for the "%s" format when loading the "%s" resource.', $resource[0], $resource[1]));
+                    }
+
+                    throw new RuntimeException(sprintf('No loader is registered for the "%s" format.', $resource[0]));
+                }
+                $this->catalogues[$locale]->addCatalogue($this->loaders[$resource[0]]->load($resource[1], $locale, $resource[2]));
+            }
+        }
+    }
+
+    private function loadFallbackCatalogues(string $locale): void
+    {
+        $current = $this->catalogues[$locale];
+
+        foreach ($this->computeFallbackLocales($locale) as $fallback) {
+            if (!isset($this->catalogues[$fallback])) {
+                $this->initializeCatalogue($fallback);
+            }
+
+            $fallbackCatalogue = new MessageCatalogue($fallback, $this->getAllMessages($this->catalogues[$fallback]));
+            foreach ($this->catalogues[$fallback]->getResources() as $resource) {
+                $fallbackCatalogue->addResource($resource);
+            }
+            $current->addFallbackCatalogue($fallbackCatalogue);
+            $current = $fallbackCatalogue;
+        }
+    }
+
+    protected function computeFallbackLocales(string $locale)
+    {
+        if (null === $this->parentLocales) {
+            $this->parentLocales = json_decode(file_get_contents(__DIR__.'/Resources/data/parents.json'), true);
+        }
+
+        $locales = [];
+        foreach ($this->fallbackLocales as $fallback) {
+            if ($fallback === $locale) {
+                continue;
+            }
+
+            $locales[] = $fallback;
+        }
+
+        while ($locale) {
+            $parent = $this->parentLocales[$locale] ?? null;
+
+            if ($parent) {
+                $locale = 'root' !== $parent ? $parent : null;
+            } elseif (\function_exists('locale_parse')) {
+                $localeSubTags = locale_parse($locale);
+                $locale = null;
+                if (1 < \count($localeSubTags)) {
+                    array_pop($localeSubTags);
+                    $locale = locale_compose($localeSubTags) ?: null;
+                }
+            } elseif ($i = strrpos($locale, '_') ?: strrpos($locale, '-')) {
+                $locale = substr($locale, 0, $i);
+            } else {
+                $locale = null;
+            }
+
+            if (null !== $locale) {
+                array_unshift($locales, $locale);
+            }
+        }
+
+        return array_unique($locales);
+    }
+
+    /**
+     * Asserts that the locale is valid, throws an Exception if not.
+     *
+     * @throws InvalidArgumentException If the locale contains invalid characters
+     */
+    protected function assertValidLocale(string $locale)
+    {
+        if (!preg_match('/^[a-z0-9@_\\.\\-]*$/i', (string) $locale)) {
+            throw new InvalidArgumentException(sprintf('Invalid "%s" locale.', $locale));
+        }
+    }
+
+    /**
+     * Provides the ConfigCache factory implementation, falling back to a
+     * default implementation if necessary.
+     */
+    private function getConfigCacheFactory(): ConfigCacheFactoryInterface
+    {
+        if (!$this->configCacheFactory) {
+            $this->configCacheFactory = new ConfigCacheFactory($this->debug);
+        }
+
+        return $this->configCacheFactory;
+    }
+
+    private function getAllMessages(MessageCatalogueInterface $catalogue): array
+    {
+        $allMessages = [];
+
+        foreach ($catalogue->all() as $domain => $messages) {
+            if ($intlMessages = $catalogue->all($domain.MessageCatalogue::INTL_DOMAIN_SUFFIX)) {
+                $allMessages[$domain.MessageCatalogue::INTL_DOMAIN_SUFFIX] = $intlMessages;
+                $messages = array_diff_key($messages, $intlMessages);
+            }
+            if ($messages) {
+                $allMessages[$domain] = $messages;
+            }
+        }
+
+        return $allMessages;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/TranslatorBag.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/TranslatorBag.php
new file mode 100644
index 0000000..c655578
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/TranslatorBag.php
@@ -0,0 +1,105 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation;
+
+use Symfony\Component\Translation\Catalogue\AbstractOperation;
+use Symfony\Component\Translation\Catalogue\TargetOperation;
+
+final class TranslatorBag implements TranslatorBagInterface
+{
+    /** @var MessageCatalogue[] */
+    private $catalogues = [];
+
+    public function addCatalogue(MessageCatalogue $catalogue): void
+    {
+        if (null !== $existingCatalogue = $this->getCatalogue($catalogue->getLocale())) {
+            $catalogue->addCatalogue($existingCatalogue);
+        }
+
+        $this->catalogues[$catalogue->getLocale()] = $catalogue;
+    }
+
+    public function addBag(TranslatorBagInterface $bag): void
+    {
+        foreach ($bag->getCatalogues() as $catalogue) {
+            $this->addCatalogue($catalogue);
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getCatalogue(string $locale = null)
+    {
+        if (null === $locale || !isset($this->catalogues[$locale])) {
+            $this->catalogues[$locale] = new MessageCatalogue($locale);
+        }
+
+        return $this->catalogues[$locale];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getCatalogues(): array
+    {
+        return array_values($this->catalogues);
+    }
+
+    public function diff(TranslatorBagInterface $diffBag): self
+    {
+        $diff = new self();
+
+        foreach ($this->catalogues as $locale => $catalogue) {
+            if (null === $diffCatalogue = $diffBag->getCatalogue($locale)) {
+                $diff->addCatalogue($catalogue);
+
+                continue;
+            }
+
+            $operation = new TargetOperation($diffCatalogue, $catalogue);
+            $operation->moveMessagesToIntlDomainsIfPossible(AbstractOperation::NEW_BATCH);
+            $newCatalogue = new MessageCatalogue($locale);
+
+            foreach ($operation->getDomains() as $domain) {
+                $newCatalogue->add($operation->getNewMessages($domain), $domain);
+            }
+
+            $diff->addCatalogue($newCatalogue);
+        }
+
+        return $diff;
+    }
+
+    public function intersect(TranslatorBagInterface $intersectBag): self
+    {
+        $diff = new self();
+
+        foreach ($this->catalogues as $locale => $catalogue) {
+            if (null === $intersectCatalogue = $intersectBag->getCatalogue($locale)) {
+                continue;
+            }
+
+            $operation = new TargetOperation($catalogue, $intersectCatalogue);
+            $operation->moveMessagesToIntlDomainsIfPossible(AbstractOperation::OBSOLETE_BATCH);
+            $obsoleteCatalogue = new MessageCatalogue($locale);
+
+            foreach ($operation->getDomains() as $domain) {
+                $obsoleteCatalogue->add($operation->getObsoleteMessages($domain), $domain);
+            }
+
+            $diff->addCatalogue($obsoleteCatalogue);
+        }
+
+        return $diff;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/TranslatorBagInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/TranslatorBagInterface.php
new file mode 100644
index 0000000..4228977
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/TranslatorBagInterface.php
@@ -0,0 +1,35 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation;
+
+use Symfony\Component\Translation\Exception\InvalidArgumentException;
+
+/**
+ * TranslatorBagInterface.
+ *
+ * @method MessageCatalogueInterface[] getCatalogues() Returns all catalogues of the instance
+ *
+ * @author Abdellatif Ait boudad <a.aitboudad@gmail.com>
+ */
+interface TranslatorBagInterface
+{
+    /**
+     * Gets the catalogue by locale.
+     *
+     * @param string|null $locale The locale or null to use the default
+     *
+     * @return MessageCatalogueInterface
+     *
+     * @throws InvalidArgumentException If the locale contains invalid characters
+     */
+    public function getCatalogue(string $locale = null);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Util/ArrayConverter.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Util/ArrayConverter.php
new file mode 100644
index 0000000..acfbfc3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Util/ArrayConverter.php
@@ -0,0 +1,99 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Util;
+
+/**
+ * ArrayConverter generates tree like structure from a message catalogue.
+ * e.g. this
+ *   'foo.bar1' => 'test1',
+ *   'foo.bar2' => 'test2'
+ * converts to follows:
+ *   foo:
+ *     bar1: test1
+ *     bar2: test2.
+ *
+ * @author Gennady Telegin <gtelegin@gmail.com>
+ */
+class ArrayConverter
+{
+    /**
+     * Converts linear messages array to tree-like array.
+     * For example this array('foo.bar' => 'value') will be converted to ['foo' => ['bar' => 'value']].
+     *
+     * @param array $messages Linear messages array
+     *
+     * @return array Tree-like messages array
+     */
+    public static function expandToTree(array $messages)
+    {
+        $tree = [];
+
+        foreach ($messages as $id => $value) {
+            $referenceToElement = &self::getElementByPath($tree, explode('.', $id));
+
+            $referenceToElement = $value;
+
+            unset($referenceToElement);
+        }
+
+        return $tree;
+    }
+
+    private static function &getElementByPath(array &$tree, array $parts)
+    {
+        $elem = &$tree;
+        $parentOfElem = null;
+
+        foreach ($parts as $i => $part) {
+            if (isset($elem[$part]) && \is_string($elem[$part])) {
+                /* Process next case:
+                 *    'foo': 'test1',
+                 *    'foo.bar': 'test2'
+                 *
+                 * $tree['foo'] was string before we found array {bar: test2}.
+                 *  Treat new element as string too, e.g. add $tree['foo.bar'] = 'test2';
+                 */
+                $elem = &$elem[implode('.', \array_slice($parts, $i))];
+                break;
+            }
+            $parentOfElem = &$elem;
+            $elem = &$elem[$part];
+        }
+
+        if ($elem && \is_array($elem) && $parentOfElem) {
+            /* Process next case:
+             *    'foo.bar': 'test1'
+             *    'foo': 'test2'
+             *
+             * $tree['foo'] was array = {bar: 'test1'} before we found string constant `foo`.
+             * Cancel treating $tree['foo'] as array and cancel back it expansion,
+             *  e.g. make it $tree['foo.bar'] = 'test1' again.
+             */
+            self::cancelExpand($parentOfElem, $part, $elem);
+        }
+
+        return $elem;
+    }
+
+    private static function cancelExpand(array &$tree, string $prefix, array $node)
+    {
+        $prefix .= '.';
+
+        foreach ($node as $id => $value) {
+            if (\is_string($value)) {
+                $tree[$prefix.$id] = $value;
+            } else {
+                self::cancelExpand($tree, $prefix.$id, $value);
+            }
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Util/XliffUtils.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Util/XliffUtils.php
new file mode 100644
index 0000000..e4373a7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Util/XliffUtils.php
@@ -0,0 +1,196 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Util;
+
+use Symfony\Component\Translation\Exception\InvalidArgumentException;
+use Symfony\Component\Translation\Exception\InvalidResourceException;
+
+/**
+ * Provides some utility methods for XLIFF translation files, such as validating
+ * their contents according to the XSD schema.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+class XliffUtils
+{
+    /**
+     * Gets xliff file version based on the root "version" attribute.
+     *
+     * Defaults to 1.2 for backwards compatibility.
+     *
+     * @throws InvalidArgumentException
+     */
+    public static function getVersionNumber(\DOMDocument $dom): string
+    {
+        /** @var \DOMNode $xliff */
+        foreach ($dom->getElementsByTagName('xliff') as $xliff) {
+            $version = $xliff->attributes->getNamedItem('version');
+            if ($version) {
+                return $version->nodeValue;
+            }
+
+            $namespace = $xliff->attributes->getNamedItem('xmlns');
+            if ($namespace) {
+                if (0 !== substr_compare('urn:oasis:names:tc:xliff:document:', $namespace->nodeValue, 0, 34)) {
+                    throw new InvalidArgumentException(sprintf('Not a valid XLIFF namespace "%s".', $namespace));
+                }
+
+                return substr($namespace, 34);
+            }
+        }
+
+        // Falls back to v1.2
+        return '1.2';
+    }
+
+    /**
+     * Validates and parses the given file into a DOMDocument.
+     *
+     * @throws InvalidResourceException
+     */
+    public static function validateSchema(\DOMDocument $dom): array
+    {
+        $xliffVersion = static::getVersionNumber($dom);
+        $internalErrors = libxml_use_internal_errors(true);
+        if ($shouldEnable = self::shouldEnableEntityLoader()) {
+            $disableEntities = libxml_disable_entity_loader(false);
+        }
+        try {
+            $isValid = @$dom->schemaValidateSource(self::getSchema($xliffVersion));
+            if (!$isValid) {
+                return self::getXmlErrors($internalErrors);
+            }
+        } finally {
+            if ($shouldEnable) {
+                libxml_disable_entity_loader($disableEntities);
+            }
+        }
+
+        $dom->normalizeDocument();
+
+        libxml_clear_errors();
+        libxml_use_internal_errors($internalErrors);
+
+        return [];
+    }
+
+    private static function shouldEnableEntityLoader(): bool
+    {
+        // Version prior to 8.0 can be enabled without deprecation
+        if (\PHP_VERSION_ID < 80000) {
+            return true;
+        }
+
+        static $dom, $schema;
+        if (null === $dom) {
+            $dom = new \DOMDocument();
+            $dom->loadXML('<?xml version="1.0"?><test/>');
+
+            $tmpfile = tempnam(sys_get_temp_dir(), 'symfony');
+            register_shutdown_function(static function () use ($tmpfile) {
+                @unlink($tmpfile);
+            });
+            $schema = '<?xml version="1.0" encoding="utf-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <xsd:include schemaLocation="file:///'.str_replace('\\', '/', $tmpfile).'" />
+</xsd:schema>';
+            file_put_contents($tmpfile, '<?xml version="1.0" encoding="utf-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <xsd:element name="test" type="testType" />
+  <xsd:complexType name="testType"/>
+</xsd:schema>');
+        }
+
+        return !@$dom->schemaValidateSource($schema);
+    }
+
+    public static function getErrorsAsString(array $xmlErrors): string
+    {
+        $errorsAsString = '';
+
+        foreach ($xmlErrors as $error) {
+            $errorsAsString .= sprintf("[%s %s] %s (in %s - line %d, column %d)\n",
+                \LIBXML_ERR_WARNING === $error['level'] ? 'WARNING' : 'ERROR',
+                $error['code'],
+                $error['message'],
+                $error['file'],
+                $error['line'],
+                $error['column']
+            );
+        }
+
+        return $errorsAsString;
+    }
+
+    private static function getSchema(string $xliffVersion): string
+    {
+        if ('1.2' === $xliffVersion) {
+            $schemaSource = file_get_contents(__DIR__.'/../Resources/schemas/xliff-core-1.2-strict.xsd');
+            $xmlUri = 'http://www.w3.org/2001/xml.xsd';
+        } elseif ('2.0' === $xliffVersion) {
+            $schemaSource = file_get_contents(__DIR__.'/../Resources/schemas/xliff-core-2.0.xsd');
+            $xmlUri = 'informativeCopiesOf3rdPartySchemas/w3c/xml.xsd';
+        } else {
+            throw new InvalidArgumentException(sprintf('No support implemented for loading XLIFF version "%s".', $xliffVersion));
+        }
+
+        return self::fixXmlLocation($schemaSource, $xmlUri);
+    }
+
+    /**
+     * Internally changes the URI of a dependent xsd to be loaded locally.
+     */
+    private static function fixXmlLocation(string $schemaSource, string $xmlUri): string
+    {
+        $newPath = str_replace('\\', '/', __DIR__).'/../Resources/schemas/xml.xsd';
+        $parts = explode('/', $newPath);
+        $locationstart = 'file:///';
+        if (0 === stripos($newPath, 'phar://')) {
+            $tmpfile = tempnam(sys_get_temp_dir(), 'symfony');
+            if ($tmpfile) {
+                copy($newPath, $tmpfile);
+                $parts = explode('/', str_replace('\\', '/', $tmpfile));
+            } else {
+                array_shift($parts);
+                $locationstart = 'phar:///';
+            }
+        }
+
+        $drive = '\\' === \DIRECTORY_SEPARATOR ? array_shift($parts).'/' : '';
+        $newPath = $locationstart.$drive.implode('/', array_map('rawurlencode', $parts));
+
+        return str_replace($xmlUri, $newPath, $schemaSource);
+    }
+
+    /**
+     * Returns the XML errors of the internal XML parser.
+     */
+    private static function getXmlErrors(bool $internalErrors): array
+    {
+        $errors = [];
+        foreach (libxml_get_errors() as $error) {
+            $errors[] = [
+                'level' => \LIBXML_ERR_WARNING == $error->level ? 'WARNING' : 'ERROR',
+                'code' => $error->code,
+                'message' => trim($error->message),
+                'file' => $error->file ?: 'n/a',
+                'line' => $error->line,
+                'column' => $error->column,
+            ];
+        }
+
+        libxml_clear_errors();
+        libxml_use_internal_errors($internalErrors);
+
+        return $errors;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Writer/TranslationWriter.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Writer/TranslationWriter.php
new file mode 100644
index 0000000..0a349b8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Writer/TranslationWriter.php
@@ -0,0 +1,70 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Writer;
+
+use Symfony\Component\Translation\Dumper\DumperInterface;
+use Symfony\Component\Translation\Exception\InvalidArgumentException;
+use Symfony\Component\Translation\Exception\RuntimeException;
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * TranslationWriter writes translation messages.
+ *
+ * @author Michel Salib <michelsalib@hotmail.com>
+ */
+class TranslationWriter implements TranslationWriterInterface
+{
+    private $dumpers = [];
+
+    /**
+     * Adds a dumper to the writer.
+     */
+    public function addDumper(string $format, DumperInterface $dumper)
+    {
+        $this->dumpers[$format] = $dumper;
+    }
+
+    /**
+     * Obtains the list of supported formats.
+     *
+     * @return array
+     */
+    public function getFormats()
+    {
+        return array_keys($this->dumpers);
+    }
+
+    /**
+     * Writes translation from the catalogue according to the selected format.
+     *
+     * @param string $format  The format to use to dump the messages
+     * @param array  $options Options that are passed to the dumper
+     *
+     * @throws InvalidArgumentException
+     */
+    public function write(MessageCatalogue $catalogue, string $format, array $options = [])
+    {
+        if (!isset($this->dumpers[$format])) {
+            throw new InvalidArgumentException(sprintf('There is no dumper associated with format "%s".', $format));
+        }
+
+        // get the right dumper
+        $dumper = $this->dumpers[$format];
+
+        if (isset($options['path']) && !is_dir($options['path']) && !@mkdir($options['path'], 0777, true) && !is_dir($options['path'])) {
+            throw new RuntimeException(sprintf('Translation Writer was not able to create directory "%s".', $options['path']));
+        }
+
+        // save
+        $dumper->dump($catalogue, $options);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Writer/TranslationWriterInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Writer/TranslationWriterInterface.php
new file mode 100644
index 0000000..4321309
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/Writer/TranslationWriterInterface.php
@@ -0,0 +1,33 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\Translation\Writer;
+
+use Symfony\Component\Translation\Exception\InvalidArgumentException;
+use Symfony\Component\Translation\MessageCatalogue;
+
+/**
+ * TranslationWriter writes translation messages.
+ *
+ * @author Michel Salib <michelsalib@hotmail.com>
+ */
+interface TranslationWriterInterface
+{
+    /**
+     * Writes translation from the catalogue according to the selected format.
+     *
+     * @param string $format  The format to use to dump the messages
+     * @param array  $options Options that are passed to the dumper
+     *
+     * @throws InvalidArgumentException
+     */
+    public function write(MessageCatalogue $catalogue, string $format, array $options = []);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/composer.json b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/composer.json
new file mode 100644
index 0000000..de84e16
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/translation/composer.json
@@ -0,0 +1,60 @@
+{
+    "name": "symfony/translation",
+    "type": "library",
+    "description": "Provides tools to internationalize your application",
+    "keywords": [],
+    "homepage": "https://symfony.com",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Fabien Potencier",
+            "email": "fabien@symfony.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "https://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=7.2.5",
+        "symfony/deprecation-contracts": "^2.1",
+        "symfony/polyfill-mbstring": "~1.0",
+        "symfony/polyfill-php80": "^1.16",
+        "symfony/translation-contracts": "^2.3"
+    },
+    "require-dev": {
+        "symfony/config": "^4.4|^5.0",
+        "symfony/console": "^4.4|^5.0",
+        "symfony/dependency-injection": "^5.0",
+        "symfony/http-kernel": "^5.0",
+        "symfony/intl": "^4.4|^5.0",
+        "symfony/polyfill-intl-icu": "^1.21",
+        "symfony/service-contracts": "^1.1.2|^2",
+        "symfony/yaml": "^4.4|^5.0",
+        "symfony/finder": "^4.4|^5.0",
+        "psr/log": "^1|^2|^3"
+    },
+    "conflict": {
+        "symfony/config": "<4.4",
+        "symfony/dependency-injection": "<5.0",
+        "symfony/http-kernel": "<5.0",
+        "symfony/twig-bundle": "<5.0",
+        "symfony/yaml": "<4.4"
+    },
+    "provide": {
+        "symfony/translation-implementation": "2.3"
+    },
+    "suggest": {
+        "symfony/config": "",
+        "symfony/yaml": "",
+        "psr/log-implementation": "To use logging capability in translator"
+    },
+    "autoload": {
+        "files": [ "Resources/functions.php" ],
+        "psr-4": { "Symfony\\Component\\Translation\\": "" },
+        "exclude-from-classmap": [
+            "/Tests/"
+        ]
+    },
+    "minimum-stability": "dev"
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/CHANGELOG.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/CHANGELOG.md
new file mode 100644
index 0000000..f3956e6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/CHANGELOG.md
@@ -0,0 +1,65 @@
+CHANGELOG
+=========
+
+5.2.0
+-----
+
+ * added support for PHPUnit `--colors` option
+ * added `VAR_DUMPER_FORMAT=server` env var value support
+ * prevent replacing the handler when the `VAR_DUMPER_FORMAT` env var is set
+
+5.1.0
+-----
+
+ * added `RdKafka` support
+
+4.4.0
+-----
+
+ * added `VarDumperTestTrait::setUpVarDumper()` and `VarDumperTestTrait::tearDownVarDumper()`
+   to configure casters & flags to use in tests
+ * added `ImagineCaster` and infrastructure to dump images
+ * added the stamps of a message after it is dispatched in `TraceableMessageBus` and `MessengerDataCollector` collected data
+ * added `UuidCaster`
+ * made all casters final
+ * added support for the `NO_COLOR` env var (https://no-color.org/)
+
+4.3.0
+-----
+
+ * added `DsCaster` to support dumping the contents of data structures from the Ds extension
+
+4.2.0
+-----
+
+ * support selecting the format to use by setting the environment variable `VAR_DUMPER_FORMAT` to `html` or `cli`
+
+4.1.0
+-----
+
+ * added a `ServerDumper` to send serialized Data clones to a server
+ * added a `ServerDumpCommand` and `DumpServer` to run a server collecting
+   and displaying dumps on a single place with multiple formats support
+ * added `CliDescriptor` and `HtmlDescriptor` descriptors for `server:dump` CLI and HTML formats support
+
+4.0.0
+-----
+
+ * support for passing `\ReflectionClass` instances to the `Caster::castObject()`
+   method has been dropped, pass class names as strings instead
+ * the `Data::getRawData()` method has been removed
+ * the `VarDumperTestTrait::assertDumpEquals()` method expects a 3rd `$filter = 0`
+   argument and moves `$message = ''` argument at 4th position.
+ * the `VarDumperTestTrait::assertDumpMatchesFormat()` method expects a 3rd `$filter = 0`
+   argument and moves `$message = ''` argument at 4th position.
+
+3.4.0
+-----
+
+ * added `AbstractCloner::setMinDepth()` function to ensure minimum tree depth
+ * deprecated `MongoCaster`
+
+2.7.0
+-----
+
+ * deprecated `Cloner\Data::getLimitedClone()`. Use `withMaxDepth`, `withMaxItemsPerDepth` or `withRefHandles` instead.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/AmqpCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/AmqpCaster.php
new file mode 100644
index 0000000..dc3b621
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/AmqpCaster.php
@@ -0,0 +1,212 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Casts Amqp related classes to array representation.
+ *
+ * @author Grégoire Pineau <lyrixx@lyrixx.info>
+ *
+ * @final
+ */
+class AmqpCaster
+{
+    private const FLAGS = [
+        \AMQP_DURABLE => 'AMQP_DURABLE',
+        \AMQP_PASSIVE => 'AMQP_PASSIVE',
+        \AMQP_EXCLUSIVE => 'AMQP_EXCLUSIVE',
+        \AMQP_AUTODELETE => 'AMQP_AUTODELETE',
+        \AMQP_INTERNAL => 'AMQP_INTERNAL',
+        \AMQP_NOLOCAL => 'AMQP_NOLOCAL',
+        \AMQP_AUTOACK => 'AMQP_AUTOACK',
+        \AMQP_IFEMPTY => 'AMQP_IFEMPTY',
+        \AMQP_IFUNUSED => 'AMQP_IFUNUSED',
+        \AMQP_MANDATORY => 'AMQP_MANDATORY',
+        \AMQP_IMMEDIATE => 'AMQP_IMMEDIATE',
+        \AMQP_MULTIPLE => 'AMQP_MULTIPLE',
+        \AMQP_NOWAIT => 'AMQP_NOWAIT',
+        \AMQP_REQUEUE => 'AMQP_REQUEUE',
+    ];
+
+    private const EXCHANGE_TYPES = [
+        \AMQP_EX_TYPE_DIRECT => 'AMQP_EX_TYPE_DIRECT',
+        \AMQP_EX_TYPE_FANOUT => 'AMQP_EX_TYPE_FANOUT',
+        \AMQP_EX_TYPE_TOPIC => 'AMQP_EX_TYPE_TOPIC',
+        \AMQP_EX_TYPE_HEADERS => 'AMQP_EX_TYPE_HEADERS',
+    ];
+
+    public static function castConnection(\AMQPConnection $c, array $a, Stub $stub, bool $isNested)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        $a += [
+            $prefix.'is_connected' => $c->isConnected(),
+        ];
+
+        // Recent version of the extension already expose private properties
+        if (isset($a["\x00AMQPConnection\x00login"])) {
+            return $a;
+        }
+
+        // BC layer in the amqp lib
+        if (method_exists($c, 'getReadTimeout')) {
+            $timeout = $c->getReadTimeout();
+        } else {
+            $timeout = $c->getTimeout();
+        }
+
+        $a += [
+            $prefix.'is_connected' => $c->isConnected(),
+            $prefix.'login' => $c->getLogin(),
+            $prefix.'password' => $c->getPassword(),
+            $prefix.'host' => $c->getHost(),
+            $prefix.'vhost' => $c->getVhost(),
+            $prefix.'port' => $c->getPort(),
+            $prefix.'read_timeout' => $timeout,
+        ];
+
+        return $a;
+    }
+
+    public static function castChannel(\AMQPChannel $c, array $a, Stub $stub, bool $isNested)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        $a += [
+            $prefix.'is_connected' => $c->isConnected(),
+            $prefix.'channel_id' => $c->getChannelId(),
+        ];
+
+        // Recent version of the extension already expose private properties
+        if (isset($a["\x00AMQPChannel\x00connection"])) {
+            return $a;
+        }
+
+        $a += [
+            $prefix.'connection' => $c->getConnection(),
+            $prefix.'prefetch_size' => $c->getPrefetchSize(),
+            $prefix.'prefetch_count' => $c->getPrefetchCount(),
+        ];
+
+        return $a;
+    }
+
+    public static function castQueue(\AMQPQueue $c, array $a, Stub $stub, bool $isNested)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        $a += [
+            $prefix.'flags' => self::extractFlags($c->getFlags()),
+        ];
+
+        // Recent version of the extension already expose private properties
+        if (isset($a["\x00AMQPQueue\x00name"])) {
+            return $a;
+        }
+
+        $a += [
+            $prefix.'connection' => $c->getConnection(),
+            $prefix.'channel' => $c->getChannel(),
+            $prefix.'name' => $c->getName(),
+            $prefix.'arguments' => $c->getArguments(),
+        ];
+
+        return $a;
+    }
+
+    public static function castExchange(\AMQPExchange $c, array $a, Stub $stub, bool $isNested)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        $a += [
+            $prefix.'flags' => self::extractFlags($c->getFlags()),
+        ];
+
+        $type = isset(self::EXCHANGE_TYPES[$c->getType()]) ? new ConstStub(self::EXCHANGE_TYPES[$c->getType()], $c->getType()) : $c->getType();
+
+        // Recent version of the extension already expose private properties
+        if (isset($a["\x00AMQPExchange\x00name"])) {
+            $a["\x00AMQPExchange\x00type"] = $type;
+
+            return $a;
+        }
+
+        $a += [
+            $prefix.'connection' => $c->getConnection(),
+            $prefix.'channel' => $c->getChannel(),
+            $prefix.'name' => $c->getName(),
+            $prefix.'type' => $type,
+            $prefix.'arguments' => $c->getArguments(),
+        ];
+
+        return $a;
+    }
+
+    public static function castEnvelope(\AMQPEnvelope $c, array $a, Stub $stub, bool $isNested, int $filter = 0)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        $deliveryMode = new ConstStub($c->getDeliveryMode().(2 === $c->getDeliveryMode() ? ' (persistent)' : ' (non-persistent)'), $c->getDeliveryMode());
+
+        // Recent version of the extension already expose private properties
+        if (isset($a["\x00AMQPEnvelope\x00body"])) {
+            $a["\0AMQPEnvelope\0delivery_mode"] = $deliveryMode;
+
+            return $a;
+        }
+
+        if (!($filter & Caster::EXCLUDE_VERBOSE)) {
+            $a += [$prefix.'body' => $c->getBody()];
+        }
+
+        $a += [
+            $prefix.'delivery_tag' => $c->getDeliveryTag(),
+            $prefix.'is_redelivery' => $c->isRedelivery(),
+            $prefix.'exchange_name' => $c->getExchangeName(),
+            $prefix.'routing_key' => $c->getRoutingKey(),
+            $prefix.'content_type' => $c->getContentType(),
+            $prefix.'content_encoding' => $c->getContentEncoding(),
+            $prefix.'headers' => $c->getHeaders(),
+            $prefix.'delivery_mode' => $deliveryMode,
+            $prefix.'priority' => $c->getPriority(),
+            $prefix.'correlation_id' => $c->getCorrelationId(),
+            $prefix.'reply_to' => $c->getReplyTo(),
+            $prefix.'expiration' => $c->getExpiration(),
+            $prefix.'message_id' => $c->getMessageId(),
+            $prefix.'timestamp' => $c->getTimeStamp(),
+            $prefix.'type' => $c->getType(),
+            $prefix.'user_id' => $c->getUserId(),
+            $prefix.'app_id' => $c->getAppId(),
+        ];
+
+        return $a;
+    }
+
+    private static function extractFlags(int $flags): ConstStub
+    {
+        $flagsArray = [];
+
+        foreach (self::FLAGS as $value => $name) {
+            if ($flags & $value) {
+                $flagsArray[] = $name;
+            }
+        }
+
+        if (!$flagsArray) {
+            $flagsArray = ['AMQP_NOPARAM'];
+        }
+
+        return new ConstStub(implode('|', $flagsArray), $flags);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ArgsStub.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ArgsStub.php
new file mode 100644
index 0000000..f8b485b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ArgsStub.php
@@ -0,0 +1,80 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Represents a list of function arguments.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class ArgsStub extends EnumStub
+{
+    private static $parameters = [];
+
+    public function __construct(array $args, string $function, ?string $class)
+    {
+        [$variadic, $params] = self::getParameters($function, $class);
+
+        $values = [];
+        foreach ($args as $k => $v) {
+            $values[$k] = !is_scalar($v) && !$v instanceof Stub ? new CutStub($v) : $v;
+        }
+        if (null === $params) {
+            parent::__construct($values, false);
+
+            return;
+        }
+        if (\count($values) < \count($params)) {
+            $params = \array_slice($params, 0, \count($values));
+        } elseif (\count($values) > \count($params)) {
+            $values[] = new EnumStub(array_splice($values, \count($params)), false);
+            $params[] = $variadic;
+        }
+        if (['...'] === $params) {
+            $this->dumpKeys = false;
+            $this->value = $values[0]->value;
+        } else {
+            $this->value = array_combine($params, $values);
+        }
+    }
+
+    private static function getParameters(string $function, ?string $class): array
+    {
+        if (isset(self::$parameters[$k = $class.'::'.$function])) {
+            return self::$parameters[$k];
+        }
+
+        try {
+            $r = null !== $class ? new \ReflectionMethod($class, $function) : new \ReflectionFunction($function);
+        } catch (\ReflectionException $e) {
+            return [null, null];
+        }
+
+        $variadic = '...';
+        $params = [];
+        foreach ($r->getParameters() as $v) {
+            $k = '$'.$v->name;
+            if ($v->isPassedByReference()) {
+                $k = '&'.$k;
+            }
+            if ($v->isVariadic()) {
+                $variadic .= $k;
+            } else {
+                $params[] = $k;
+            }
+        }
+
+        return self::$parameters[$k] = [$variadic, $params];
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/Caster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/Caster.php
new file mode 100644
index 0000000..612b21f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/Caster.php
@@ -0,0 +1,174 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Helper for filtering out properties in casters.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final
+ */
+class Caster
+{
+    public const EXCLUDE_VERBOSE = 1;
+    public const EXCLUDE_VIRTUAL = 2;
+    public const EXCLUDE_DYNAMIC = 4;
+    public const EXCLUDE_PUBLIC = 8;
+    public const EXCLUDE_PROTECTED = 16;
+    public const EXCLUDE_PRIVATE = 32;
+    public const EXCLUDE_NULL = 64;
+    public const EXCLUDE_EMPTY = 128;
+    public const EXCLUDE_NOT_IMPORTANT = 256;
+    public const EXCLUDE_STRICT = 512;
+
+    public const PREFIX_VIRTUAL = "\0~\0";
+    public const PREFIX_DYNAMIC = "\0+\0";
+    public const PREFIX_PROTECTED = "\0*\0";
+
+    /**
+     * Casts objects to arrays and adds the dynamic property prefix.
+     *
+     * @param bool $hasDebugInfo Whether the __debugInfo method exists on $obj or not
+     *
+     * @return array The array-cast of the object, with prefixed dynamic properties
+     */
+    public static function castObject(object $obj, string $class, bool $hasDebugInfo = false, string $debugClass = null): array
+    {
+        if ($hasDebugInfo) {
+            try {
+                $debugInfo = $obj->__debugInfo();
+            } catch (\Exception $e) {
+                // ignore failing __debugInfo()
+                $hasDebugInfo = false;
+            }
+        }
+
+        $a = $obj instanceof \Closure ? [] : (array) $obj;
+
+        if ($obj instanceof \__PHP_Incomplete_Class) {
+            return $a;
+        }
+
+        if ($a) {
+            static $publicProperties = [];
+            $debugClass = $debugClass ?? get_debug_type($obj);
+
+            $i = 0;
+            $prefixedKeys = [];
+            foreach ($a as $k => $v) {
+                if ("\0" !== ($k[0] ?? '')) {
+                    if (!isset($publicProperties[$class])) {
+                        foreach ((new \ReflectionClass($class))->getProperties(\ReflectionProperty::IS_PUBLIC) as $prop) {
+                            $publicProperties[$class][$prop->name] = true;
+                        }
+                    }
+                    if (!isset($publicProperties[$class][$k])) {
+                        $prefixedKeys[$i] = self::PREFIX_DYNAMIC.$k;
+                    }
+                } elseif ($debugClass !== $class && 1 === strpos($k, $class)) {
+                    $prefixedKeys[$i] = "\0".$debugClass.strrchr($k, "\0");
+                }
+                ++$i;
+            }
+            if ($prefixedKeys) {
+                $keys = array_keys($a);
+                foreach ($prefixedKeys as $i => $k) {
+                    $keys[$i] = $k;
+                }
+                $a = array_combine($keys, $a);
+            }
+        }
+
+        if ($hasDebugInfo && \is_array($debugInfo)) {
+            foreach ($debugInfo as $k => $v) {
+                if (!isset($k[0]) || "\0" !== $k[0]) {
+                    if (\array_key_exists(self::PREFIX_DYNAMIC.$k, $a)) {
+                        continue;
+                    }
+                    $k = self::PREFIX_VIRTUAL.$k;
+                }
+
+                unset($a[$k]);
+                $a[$k] = $v;
+            }
+        }
+
+        return $a;
+    }
+
+    /**
+     * Filters out the specified properties.
+     *
+     * By default, a single match in the $filter bit field filters properties out, following an "or" logic.
+     * When EXCLUDE_STRICT is set, an "and" logic is applied: all bits must match for a property to be removed.
+     *
+     * @param array    $a                The array containing the properties to filter
+     * @param int      $filter           A bit field of Caster::EXCLUDE_* constants specifying which properties to filter out
+     * @param string[] $listedProperties List of properties to exclude when Caster::EXCLUDE_VERBOSE is set, and to preserve when Caster::EXCLUDE_NOT_IMPORTANT is set
+     * @param int      &$count           Set to the number of removed properties
+     *
+     * @return array The filtered array
+     */
+    public static function filter(array $a, int $filter, array $listedProperties = [], ?int &$count = 0): array
+    {
+        $count = 0;
+
+        foreach ($a as $k => $v) {
+            $type = self::EXCLUDE_STRICT & $filter;
+
+            if (null === $v) {
+                $type |= self::EXCLUDE_NULL & $filter;
+                $type |= self::EXCLUDE_EMPTY & $filter;
+            } elseif (false === $v || '' === $v || '0' === $v || 0 === $v || 0.0 === $v || [] === $v) {
+                $type |= self::EXCLUDE_EMPTY & $filter;
+            }
+            if ((self::EXCLUDE_NOT_IMPORTANT & $filter) && !\in_array($k, $listedProperties, true)) {
+                $type |= self::EXCLUDE_NOT_IMPORTANT;
+            }
+            if ((self::EXCLUDE_VERBOSE & $filter) && \in_array($k, $listedProperties, true)) {
+                $type |= self::EXCLUDE_VERBOSE;
+            }
+
+            if (!isset($k[1]) || "\0" !== $k[0]) {
+                $type |= self::EXCLUDE_PUBLIC & $filter;
+            } elseif ('~' === $k[1]) {
+                $type |= self::EXCLUDE_VIRTUAL & $filter;
+            } elseif ('+' === $k[1]) {
+                $type |= self::EXCLUDE_DYNAMIC & $filter;
+            } elseif ('*' === $k[1]) {
+                $type |= self::EXCLUDE_PROTECTED & $filter;
+            } else {
+                $type |= self::EXCLUDE_PRIVATE & $filter;
+            }
+
+            if ((self::EXCLUDE_STRICT & $filter) ? $type === $filter : $type) {
+                unset($a[$k]);
+                ++$count;
+            }
+        }
+
+        return $a;
+    }
+
+    public static function castPhpIncompleteClass(\__PHP_Incomplete_Class $c, array $a, Stub $stub, bool $isNested): array
+    {
+        if (isset($a['__PHP_Incomplete_Class_Name'])) {
+            $stub->class .= '('.$a['__PHP_Incomplete_Class_Name'].')';
+            unset($a['__PHP_Incomplete_Class_Name']);
+        }
+
+        return $a;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ClassStub.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ClassStub.php
new file mode 100644
index 0000000..48f8483
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ClassStub.php
@@ -0,0 +1,106 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Represents a PHP class identifier.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class ClassStub extends ConstStub
+{
+    /**
+     * @param string   $identifier A PHP identifier, e.g. a class, method, interface, etc. name
+     * @param callable $callable   The callable targeted by the identifier when it is ambiguous or not a real PHP identifier
+     */
+    public function __construct(string $identifier, $callable = null)
+    {
+        $this->value = $identifier;
+
+        try {
+            if (null !== $callable) {
+                if ($callable instanceof \Closure) {
+                    $r = new \ReflectionFunction($callable);
+                } elseif (\is_object($callable)) {
+                    $r = [$callable, '__invoke'];
+                } elseif (\is_array($callable)) {
+                    $r = $callable;
+                } elseif (false !== $i = strpos($callable, '::')) {
+                    $r = [substr($callable, 0, $i), substr($callable, 2 + $i)];
+                } else {
+                    $r = new \ReflectionFunction($callable);
+                }
+            } elseif (0 < $i = strpos($identifier, '::') ?: strpos($identifier, '->')) {
+                $r = [substr($identifier, 0, $i), substr($identifier, 2 + $i)];
+            } else {
+                $r = new \ReflectionClass($identifier);
+            }
+
+            if (\is_array($r)) {
+                try {
+                    $r = new \ReflectionMethod($r[0], $r[1]);
+                } catch (\ReflectionException $e) {
+                    $r = new \ReflectionClass($r[0]);
+                }
+            }
+
+            if (str_contains($identifier, "@anonymous\0")) {
+                $this->value = $identifier = preg_replace_callback('/[a-zA-Z_\x7f-\xff][\\\\a-zA-Z0-9_\x7f-\xff]*+@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)[0-9a-fA-F]++/', function ($m) {
+                    return class_exists($m[0], false) ? (get_parent_class($m[0]) ?: key(class_implements($m[0])) ?: 'class').'@anonymous' : $m[0];
+                }, $identifier);
+            }
+
+            if (null !== $callable && $r instanceof \ReflectionFunctionAbstract) {
+                $s = ReflectionCaster::castFunctionAbstract($r, [], new Stub(), true, Caster::EXCLUDE_VERBOSE);
+                $s = ReflectionCaster::getSignature($s);
+
+                if (str_ends_with($identifier, '()')) {
+                    $this->value = substr_replace($identifier, $s, -2);
+                } else {
+                    $this->value .= $s;
+                }
+            }
+        } catch (\ReflectionException $e) {
+            return;
+        } finally {
+            if (0 < $i = strrpos($this->value, '\\')) {
+                $this->attr['ellipsis'] = \strlen($this->value) - $i;
+                $this->attr['ellipsis-type'] = 'class';
+                $this->attr['ellipsis-tail'] = 1;
+            }
+        }
+
+        if ($f = $r->getFileName()) {
+            $this->attr['file'] = $f;
+            $this->attr['line'] = $r->getStartLine();
+        }
+    }
+
+    public static function wrapCallable($callable)
+    {
+        if (\is_object($callable) || !\is_callable($callable)) {
+            return $callable;
+        }
+
+        if (!\is_array($callable)) {
+            $callable = new static($callable, $callable);
+        } elseif (\is_string($callable[0])) {
+            $callable[0] = new static($callable[0], $callable);
+        } else {
+            $callable[1] = new static($callable[1], $callable);
+        }
+
+        return $callable;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ConstStub.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ConstStub.php
new file mode 100644
index 0000000..8b01797
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ConstStub.php
@@ -0,0 +1,36 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Represents a PHP constant and its value.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class ConstStub extends Stub
+{
+    public function __construct(string $name, $value = null)
+    {
+        $this->class = $name;
+        $this->value = 1 < \func_num_args() ? $value : $name;
+    }
+
+    /**
+     * @return string
+     */
+    public function __toString()
+    {
+        return (string) $this->value;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/CutArrayStub.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/CutArrayStub.php
new file mode 100644
index 0000000..0e4fb36
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/CutArrayStub.php
@@ -0,0 +1,30 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+/**
+ * Represents a cut array.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class CutArrayStub extends CutStub
+{
+    public $preservedSubset;
+
+    public function __construct(array $value, array $preservedKeys)
+    {
+        parent::__construct($value);
+
+        $this->preservedSubset = array_intersect_key($value, array_flip($preservedKeys));
+        $this->cut -= \count($this->preservedSubset);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/CutStub.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/CutStub.php
new file mode 100644
index 0000000..464c6db
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/CutStub.php
@@ -0,0 +1,64 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Represents the main properties of a PHP variable, pre-casted by a caster.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class CutStub extends Stub
+{
+    public function __construct($value)
+    {
+        $this->value = $value;
+
+        switch (\gettype($value)) {
+            case 'object':
+                $this->type = self::TYPE_OBJECT;
+                $this->class = \get_class($value);
+
+                if ($value instanceof \Closure) {
+                    ReflectionCaster::castClosure($value, [], $this, true, Caster::EXCLUDE_VERBOSE);
+                }
+
+                $this->cut = -1;
+                break;
+
+            case 'array':
+                $this->type = self::TYPE_ARRAY;
+                $this->class = self::ARRAY_ASSOC;
+                $this->cut = $this->value = \count($value);
+                break;
+
+            case 'resource':
+            case 'unknown type':
+            case 'resource (closed)':
+                $this->type = self::TYPE_RESOURCE;
+                $this->handle = (int) $value;
+                if ('Unknown' === $this->class = @get_resource_type($value)) {
+                    $this->class = 'Closed';
+                }
+                $this->cut = -1;
+                break;
+
+            case 'string':
+                $this->type = self::TYPE_STRING;
+                $this->class = preg_match('//u', $value) ? self::STRING_UTF8 : self::STRING_BINARY;
+                $this->cut = self::STRING_BINARY === $this->class ? \strlen($value) : mb_strlen($value, 'UTF-8');
+                $this->value = '';
+                break;
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/DOMCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/DOMCaster.php
new file mode 100644
index 0000000..4dd16e0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/DOMCaster.php
@@ -0,0 +1,304 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Casts DOM related classes to array representation.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final
+ */
+class DOMCaster
+{
+    private const ERROR_CODES = [
+        \DOM_PHP_ERR => 'DOM_PHP_ERR',
+        \DOM_INDEX_SIZE_ERR => 'DOM_INDEX_SIZE_ERR',
+        \DOMSTRING_SIZE_ERR => 'DOMSTRING_SIZE_ERR',
+        \DOM_HIERARCHY_REQUEST_ERR => 'DOM_HIERARCHY_REQUEST_ERR',
+        \DOM_WRONG_DOCUMENT_ERR => 'DOM_WRONG_DOCUMENT_ERR',
+        \DOM_INVALID_CHARACTER_ERR => 'DOM_INVALID_CHARACTER_ERR',
+        \DOM_NO_DATA_ALLOWED_ERR => 'DOM_NO_DATA_ALLOWED_ERR',
+        \DOM_NO_MODIFICATION_ALLOWED_ERR => 'DOM_NO_MODIFICATION_ALLOWED_ERR',
+        \DOM_NOT_FOUND_ERR => 'DOM_NOT_FOUND_ERR',
+        \DOM_NOT_SUPPORTED_ERR => 'DOM_NOT_SUPPORTED_ERR',
+        \DOM_INUSE_ATTRIBUTE_ERR => 'DOM_INUSE_ATTRIBUTE_ERR',
+        \DOM_INVALID_STATE_ERR => 'DOM_INVALID_STATE_ERR',
+        \DOM_SYNTAX_ERR => 'DOM_SYNTAX_ERR',
+        \DOM_INVALID_MODIFICATION_ERR => 'DOM_INVALID_MODIFICATION_ERR',
+        \DOM_NAMESPACE_ERR => 'DOM_NAMESPACE_ERR',
+        \DOM_INVALID_ACCESS_ERR => 'DOM_INVALID_ACCESS_ERR',
+        \DOM_VALIDATION_ERR => 'DOM_VALIDATION_ERR',
+    ];
+
+    private const NODE_TYPES = [
+        \XML_ELEMENT_NODE => 'XML_ELEMENT_NODE',
+        \XML_ATTRIBUTE_NODE => 'XML_ATTRIBUTE_NODE',
+        \XML_TEXT_NODE => 'XML_TEXT_NODE',
+        \XML_CDATA_SECTION_NODE => 'XML_CDATA_SECTION_NODE',
+        \XML_ENTITY_REF_NODE => 'XML_ENTITY_REF_NODE',
+        \XML_ENTITY_NODE => 'XML_ENTITY_NODE',
+        \XML_PI_NODE => 'XML_PI_NODE',
+        \XML_COMMENT_NODE => 'XML_COMMENT_NODE',
+        \XML_DOCUMENT_NODE => 'XML_DOCUMENT_NODE',
+        \XML_DOCUMENT_TYPE_NODE => 'XML_DOCUMENT_TYPE_NODE',
+        \XML_DOCUMENT_FRAG_NODE => 'XML_DOCUMENT_FRAG_NODE',
+        \XML_NOTATION_NODE => 'XML_NOTATION_NODE',
+        \XML_HTML_DOCUMENT_NODE => 'XML_HTML_DOCUMENT_NODE',
+        \XML_DTD_NODE => 'XML_DTD_NODE',
+        \XML_ELEMENT_DECL_NODE => 'XML_ELEMENT_DECL_NODE',
+        \XML_ATTRIBUTE_DECL_NODE => 'XML_ATTRIBUTE_DECL_NODE',
+        \XML_ENTITY_DECL_NODE => 'XML_ENTITY_DECL_NODE',
+        \XML_NAMESPACE_DECL_NODE => 'XML_NAMESPACE_DECL_NODE',
+    ];
+
+    public static function castException(\DOMException $e, array $a, Stub $stub, bool $isNested)
+    {
+        $k = Caster::PREFIX_PROTECTED.'code';
+        if (isset($a[$k], self::ERROR_CODES[$a[$k]])) {
+            $a[$k] = new ConstStub(self::ERROR_CODES[$a[$k]], $a[$k]);
+        }
+
+        return $a;
+    }
+
+    public static function castLength($dom, array $a, Stub $stub, bool $isNested)
+    {
+        $a += [
+            'length' => $dom->length,
+        ];
+
+        return $a;
+    }
+
+    public static function castImplementation(\DOMImplementation $dom, array $a, Stub $stub, bool $isNested)
+    {
+        $a += [
+            Caster::PREFIX_VIRTUAL.'Core' => '1.0',
+            Caster::PREFIX_VIRTUAL.'XML' => '2.0',
+        ];
+
+        return $a;
+    }
+
+    public static function castNode(\DOMNode $dom, array $a, Stub $stub, bool $isNested)
+    {
+        $a += [
+            'nodeName' => $dom->nodeName,
+            'nodeValue' => new CutStub($dom->nodeValue),
+            'nodeType' => new ConstStub(self::NODE_TYPES[$dom->nodeType], $dom->nodeType),
+            'parentNode' => new CutStub($dom->parentNode),
+            'childNodes' => $dom->childNodes,
+            'firstChild' => new CutStub($dom->firstChild),
+            'lastChild' => new CutStub($dom->lastChild),
+            'previousSibling' => new CutStub($dom->previousSibling),
+            'nextSibling' => new CutStub($dom->nextSibling),
+            'attributes' => $dom->attributes,
+            'ownerDocument' => new CutStub($dom->ownerDocument),
+            'namespaceURI' => $dom->namespaceURI,
+            'prefix' => $dom->prefix,
+            'localName' => $dom->localName,
+            'baseURI' => $dom->baseURI ? new LinkStub($dom->baseURI) : $dom->baseURI,
+            'textContent' => new CutStub($dom->textContent),
+        ];
+
+        return $a;
+    }
+
+    public static function castNameSpaceNode(\DOMNameSpaceNode $dom, array $a, Stub $stub, bool $isNested)
+    {
+        $a += [
+            'nodeName' => $dom->nodeName,
+            'nodeValue' => new CutStub($dom->nodeValue),
+            'nodeType' => new ConstStub(self::NODE_TYPES[$dom->nodeType], $dom->nodeType),
+            'prefix' => $dom->prefix,
+            'localName' => $dom->localName,
+            'namespaceURI' => $dom->namespaceURI,
+            'ownerDocument' => new CutStub($dom->ownerDocument),
+            'parentNode' => new CutStub($dom->parentNode),
+        ];
+
+        return $a;
+    }
+
+    public static function castDocument(\DOMDocument $dom, array $a, Stub $stub, bool $isNested, int $filter = 0)
+    {
+        $a += [
+            'doctype' => $dom->doctype,
+            'implementation' => $dom->implementation,
+            'documentElement' => new CutStub($dom->documentElement),
+            'actualEncoding' => $dom->actualEncoding,
+            'encoding' => $dom->encoding,
+            'xmlEncoding' => $dom->xmlEncoding,
+            'standalone' => $dom->standalone,
+            'xmlStandalone' => $dom->xmlStandalone,
+            'version' => $dom->version,
+            'xmlVersion' => $dom->xmlVersion,
+            'strictErrorChecking' => $dom->strictErrorChecking,
+            'documentURI' => $dom->documentURI ? new LinkStub($dom->documentURI) : $dom->documentURI,
+            'config' => $dom->config,
+            'formatOutput' => $dom->formatOutput,
+            'validateOnParse' => $dom->validateOnParse,
+            'resolveExternals' => $dom->resolveExternals,
+            'preserveWhiteSpace' => $dom->preserveWhiteSpace,
+            'recover' => $dom->recover,
+            'substituteEntities' => $dom->substituteEntities,
+        ];
+
+        if (!($filter & Caster::EXCLUDE_VERBOSE)) {
+            $formatOutput = $dom->formatOutput;
+            $dom->formatOutput = true;
+            $a += [Caster::PREFIX_VIRTUAL.'xml' => $dom->saveXML()];
+            $dom->formatOutput = $formatOutput;
+        }
+
+        return $a;
+    }
+
+    public static function castCharacterData(\DOMCharacterData $dom, array $a, Stub $stub, bool $isNested)
+    {
+        $a += [
+            'data' => $dom->data,
+            'length' => $dom->length,
+        ];
+
+        return $a;
+    }
+
+    public static function castAttr(\DOMAttr $dom, array $a, Stub $stub, bool $isNested)
+    {
+        $a += [
+            'name' => $dom->name,
+            'specified' => $dom->specified,
+            'value' => $dom->value,
+            'ownerElement' => $dom->ownerElement,
+            'schemaTypeInfo' => $dom->schemaTypeInfo,
+        ];
+
+        return $a;
+    }
+
+    public static function castElement(\DOMElement $dom, array $a, Stub $stub, bool $isNested)
+    {
+        $a += [
+            'tagName' => $dom->tagName,
+            'schemaTypeInfo' => $dom->schemaTypeInfo,
+        ];
+
+        return $a;
+    }
+
+    public static function castText(\DOMText $dom, array $a, Stub $stub, bool $isNested)
+    {
+        $a += [
+            'wholeText' => $dom->wholeText,
+        ];
+
+        return $a;
+    }
+
+    public static function castTypeinfo(\DOMTypeinfo $dom, array $a, Stub $stub, bool $isNested)
+    {
+        $a += [
+            'typeName' => $dom->typeName,
+            'typeNamespace' => $dom->typeNamespace,
+        ];
+
+        return $a;
+    }
+
+    public static function castDomError(\DOMDomError $dom, array $a, Stub $stub, bool $isNested)
+    {
+        $a += [
+            'severity' => $dom->severity,
+            'message' => $dom->message,
+            'type' => $dom->type,
+            'relatedException' => $dom->relatedException,
+            'related_data' => $dom->related_data,
+            'location' => $dom->location,
+        ];
+
+        return $a;
+    }
+
+    public static function castLocator(\DOMLocator $dom, array $a, Stub $stub, bool $isNested)
+    {
+        $a += [
+            'lineNumber' => $dom->lineNumber,
+            'columnNumber' => $dom->columnNumber,
+            'offset' => $dom->offset,
+            'relatedNode' => $dom->relatedNode,
+            'uri' => $dom->uri ? new LinkStub($dom->uri, $dom->lineNumber) : $dom->uri,
+        ];
+
+        return $a;
+    }
+
+    public static function castDocumentType(\DOMDocumentType $dom, array $a, Stub $stub, bool $isNested)
+    {
+        $a += [
+            'name' => $dom->name,
+            'entities' => $dom->entities,
+            'notations' => $dom->notations,
+            'publicId' => $dom->publicId,
+            'systemId' => $dom->systemId,
+            'internalSubset' => $dom->internalSubset,
+        ];
+
+        return $a;
+    }
+
+    public static function castNotation(\DOMNotation $dom, array $a, Stub $stub, bool $isNested)
+    {
+        $a += [
+            'publicId' => $dom->publicId,
+            'systemId' => $dom->systemId,
+        ];
+
+        return $a;
+    }
+
+    public static function castEntity(\DOMEntity $dom, array $a, Stub $stub, bool $isNested)
+    {
+        $a += [
+            'publicId' => $dom->publicId,
+            'systemId' => $dom->systemId,
+            'notationName' => $dom->notationName,
+            'actualEncoding' => $dom->actualEncoding,
+            'encoding' => $dom->encoding,
+            'version' => $dom->version,
+        ];
+
+        return $a;
+    }
+
+    public static function castProcessingInstruction(\DOMProcessingInstruction $dom, array $a, Stub $stub, bool $isNested)
+    {
+        $a += [
+            'target' => $dom->target,
+            'data' => $dom->data,
+        ];
+
+        return $a;
+    }
+
+    public static function castXPath(\DOMXPath $dom, array $a, Stub $stub, bool $isNested)
+    {
+        $a += [
+            'document' => $dom->document,
+        ];
+
+        return $a;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/DateCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/DateCaster.php
new file mode 100644
index 0000000..1f61c32
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/DateCaster.php
@@ -0,0 +1,126 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Casts DateTimeInterface related classes to array representation.
+ *
+ * @author Dany Maillard <danymaillard93b@gmail.com>
+ *
+ * @final
+ */
+class DateCaster
+{
+    private const PERIOD_LIMIT = 3;
+
+    public static function castDateTime(\DateTimeInterface $d, array $a, Stub $stub, bool $isNested, int $filter)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+        $location = $d->getTimezone()->getLocation();
+        $fromNow = (new \DateTime())->diff($d);
+
+        $title = $d->format('l, F j, Y')
+            ."\n".self::formatInterval($fromNow).' from now'
+            .($location ? ($d->format('I') ? "\nDST On" : "\nDST Off") : '')
+        ;
+
+        unset(
+            $a[Caster::PREFIX_DYNAMIC.'date'],
+            $a[Caster::PREFIX_DYNAMIC.'timezone'],
+            $a[Caster::PREFIX_DYNAMIC.'timezone_type']
+        );
+        $a[$prefix.'date'] = new ConstStub(self::formatDateTime($d, $location ? ' e (P)' : ' P'), $title);
+
+        $stub->class .= $d->format(' @U');
+
+        return $a;
+    }
+
+    public static function castInterval(\DateInterval $interval, array $a, Stub $stub, bool $isNested, int $filter)
+    {
+        $now = new \DateTimeImmutable();
+        $numberOfSeconds = $now->add($interval)->getTimestamp() - $now->getTimestamp();
+        $title = number_format($numberOfSeconds, 0, '.', ' ').'s';
+
+        $i = [Caster::PREFIX_VIRTUAL.'interval' => new ConstStub(self::formatInterval($interval), $title)];
+
+        return $filter & Caster::EXCLUDE_VERBOSE ? $i : $i + $a;
+    }
+
+    private static function formatInterval(\DateInterval $i): string
+    {
+        $format = '%R ';
+
+        if (0 === $i->y && 0 === $i->m && ($i->h >= 24 || $i->i >= 60 || $i->s >= 60)) {
+            $i = date_diff($d = new \DateTime(), date_add(clone $d, $i)); // recalculate carry over points
+            $format .= 0 < $i->days ? '%ad ' : '';
+        } else {
+            $format .= ($i->y ? '%yy ' : '').($i->m ? '%mm ' : '').($i->d ? '%dd ' : '');
+        }
+
+        $format .= $i->h || $i->i || $i->s || $i->f ? '%H:%I:'.self::formatSeconds($i->s, substr($i->f, 2)) : '';
+        $format = '%R ' === $format ? '0s' : $format;
+
+        return $i->format(rtrim($format));
+    }
+
+    public static function castTimeZone(\DateTimeZone $timeZone, array $a, Stub $stub, bool $isNested, int $filter)
+    {
+        $location = $timeZone->getLocation();
+        $formatted = (new \DateTime('now', $timeZone))->format($location ? 'e (P)' : 'P');
+        $title = $location && \extension_loaded('intl') ? \Locale::getDisplayRegion('-'.$location['country_code']) : '';
+
+        $z = [Caster::PREFIX_VIRTUAL.'timezone' => new ConstStub($formatted, $title)];
+
+        return $filter & Caster::EXCLUDE_VERBOSE ? $z : $z + $a;
+    }
+
+    public static function castPeriod(\DatePeriod $p, array $a, Stub $stub, bool $isNested, int $filter)
+    {
+        $dates = [];
+        foreach (clone $p as $i => $d) {
+            if (self::PERIOD_LIMIT === $i) {
+                $now = new \DateTimeImmutable('now', new \DateTimeZone('UTC'));
+                $dates[] = sprintf('%s more', ($end = $p->getEndDate())
+                    ? ceil(($end->format('U.u') - $d->format('U.u')) / ((int) $now->add($p->getDateInterval())->format('U.u') - (int) $now->format('U.u')))
+                    : $p->recurrences - $i
+                );
+                break;
+            }
+            $dates[] = sprintf('%s) %s', $i + 1, self::formatDateTime($d));
+        }
+
+        $period = sprintf(
+            'every %s, from %s (%s) %s',
+            self::formatInterval($p->getDateInterval()),
+            self::formatDateTime($p->getStartDate()),
+            $p->include_start_date ? 'included' : 'excluded',
+            ($end = $p->getEndDate()) ? 'to '.self::formatDateTime($end) : 'recurring '.$p->recurrences.' time/s'
+        );
+
+        $p = [Caster::PREFIX_VIRTUAL.'period' => new ConstStub($period, implode("\n", $dates))];
+
+        return $filter & Caster::EXCLUDE_VERBOSE ? $p : $p + $a;
+    }
+
+    private static function formatDateTime(\DateTimeInterface $d, string $extra = ''): string
+    {
+        return $d->format('Y-m-d H:i:'.self::formatSeconds($d->format('s'), $d->format('u')).$extra);
+    }
+
+    private static function formatSeconds(string $s, string $us): string
+    {
+        return sprintf('%02d.%s', $s, 0 === ($len = \strlen($t = rtrim($us, '0'))) ? '0' : ($len <= 3 ? str_pad($t, 3, '0') : $us));
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/DoctrineCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/DoctrineCaster.php
new file mode 100644
index 0000000..129b2cb
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/DoctrineCaster.php
@@ -0,0 +1,62 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Doctrine\Common\Proxy\Proxy as CommonProxy;
+use Doctrine\ORM\PersistentCollection;
+use Doctrine\ORM\Proxy\Proxy as OrmProxy;
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Casts Doctrine related classes to array representation.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final
+ */
+class DoctrineCaster
+{
+    public static function castCommonProxy(CommonProxy $proxy, array $a, Stub $stub, bool $isNested)
+    {
+        foreach (['__cloner__', '__initializer__'] as $k) {
+            if (\array_key_exists($k, $a)) {
+                unset($a[$k]);
+                ++$stub->cut;
+            }
+        }
+
+        return $a;
+    }
+
+    public static function castOrmProxy(OrmProxy $proxy, array $a, Stub $stub, bool $isNested)
+    {
+        foreach (['_entityPersister', '_identifier'] as $k) {
+            if (\array_key_exists($k = "\0Doctrine\\ORM\\Proxy\\Proxy\0".$k, $a)) {
+                unset($a[$k]);
+                ++$stub->cut;
+            }
+        }
+
+        return $a;
+    }
+
+    public static function castPersistentCollection(PersistentCollection $coll, array $a, Stub $stub, bool $isNested)
+    {
+        foreach (['snapshot', 'association', 'typeClass'] as $k) {
+            if (\array_key_exists($k = "\0Doctrine\\ORM\\PersistentCollection\0".$k, $a)) {
+                $a[$k] = new CutStub($a[$k]);
+            }
+        }
+
+        return $a;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/DsCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/DsCaster.php
new file mode 100644
index 0000000..b34b670
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/DsCaster.php
@@ -0,0 +1,70 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Ds\Collection;
+use Ds\Map;
+use Ds\Pair;
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Casts Ds extension classes to array representation.
+ *
+ * @author Jáchym Toušek <enumag@gmail.com>
+ *
+ * @final
+ */
+class DsCaster
+{
+    public static function castCollection(Collection $c, array $a, Stub $stub, bool $isNested): array
+    {
+        $a[Caster::PREFIX_VIRTUAL.'count'] = $c->count();
+        $a[Caster::PREFIX_VIRTUAL.'capacity'] = $c->capacity();
+
+        if (!$c instanceof Map) {
+            $a += $c->toArray();
+        }
+
+        return $a;
+    }
+
+    public static function castMap(Map $c, array $a, Stub $stub, bool $isNested): array
+    {
+        foreach ($c as $k => $v) {
+            $a[] = new DsPairStub($k, $v);
+        }
+
+        return $a;
+    }
+
+    public static function castPair(Pair $c, array $a, Stub $stub, bool $isNested): array
+    {
+        foreach ($c->toArray() as $k => $v) {
+            $a[Caster::PREFIX_VIRTUAL.$k] = $v;
+        }
+
+        return $a;
+    }
+
+    public static function castPairStub(DsPairStub $c, array $a, Stub $stub, bool $isNested): array
+    {
+        if ($isNested) {
+            $stub->class = Pair::class;
+            $stub->value = null;
+            $stub->handle = 0;
+
+            $a = $c->value;
+        }
+
+        return $a;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/DsPairStub.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/DsPairStub.php
new file mode 100644
index 0000000..a1dcc15
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/DsPairStub.php
@@ -0,0 +1,28 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class DsPairStub extends Stub
+{
+    public function __construct($key, $value)
+    {
+        $this->value = [
+            Caster::PREFIX_VIRTUAL.'key' => $key,
+            Caster::PREFIX_VIRTUAL.'value' => $value,
+        ];
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/EnumStub.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/EnumStub.php
new file mode 100644
index 0000000..7a4e98a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/EnumStub.php
@@ -0,0 +1,30 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Represents an enumeration of values.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class EnumStub extends Stub
+{
+    public $dumpKeys = true;
+
+    public function __construct(array $values, bool $dumpKeys = true)
+    {
+        $this->value = $values;
+        $this->dumpKeys = $dumpKeys;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ExceptionCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ExceptionCaster.php
new file mode 100644
index 0000000..baa7a18
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ExceptionCaster.php
@@ -0,0 +1,382 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\ErrorHandler\Exception\SilencedErrorContext;
+use Symfony\Component\VarDumper\Cloner\Stub;
+use Symfony\Component\VarDumper\Exception\ThrowingCasterException;
+
+/**
+ * Casts common Exception classes to array representation.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final
+ */
+class ExceptionCaster
+{
+    public static $srcContext = 1;
+    public static $traceArgs = true;
+    public static $errorTypes = [
+        \E_DEPRECATED => 'E_DEPRECATED',
+        \E_USER_DEPRECATED => 'E_USER_DEPRECATED',
+        \E_RECOVERABLE_ERROR => 'E_RECOVERABLE_ERROR',
+        \E_ERROR => 'E_ERROR',
+        \E_WARNING => 'E_WARNING',
+        \E_PARSE => 'E_PARSE',
+        \E_NOTICE => 'E_NOTICE',
+        \E_CORE_ERROR => 'E_CORE_ERROR',
+        \E_CORE_WARNING => 'E_CORE_WARNING',
+        \E_COMPILE_ERROR => 'E_COMPILE_ERROR',
+        \E_COMPILE_WARNING => 'E_COMPILE_WARNING',
+        \E_USER_ERROR => 'E_USER_ERROR',
+        \E_USER_WARNING => 'E_USER_WARNING',
+        \E_USER_NOTICE => 'E_USER_NOTICE',
+        \E_STRICT => 'E_STRICT',
+    ];
+
+    private static $framesCache = [];
+
+    public static function castError(\Error $e, array $a, Stub $stub, bool $isNested, int $filter = 0)
+    {
+        return self::filterExceptionArray($stub->class, $a, "\0Error\0", $filter);
+    }
+
+    public static function castException(\Exception $e, array $a, Stub $stub, bool $isNested, int $filter = 0)
+    {
+        return self::filterExceptionArray($stub->class, $a, "\0Exception\0", $filter);
+    }
+
+    public static function castErrorException(\ErrorException $e, array $a, Stub $stub, bool $isNested)
+    {
+        if (isset($a[$s = Caster::PREFIX_PROTECTED.'severity'], self::$errorTypes[$a[$s]])) {
+            $a[$s] = new ConstStub(self::$errorTypes[$a[$s]], $a[$s]);
+        }
+
+        return $a;
+    }
+
+    public static function castThrowingCasterException(ThrowingCasterException $e, array $a, Stub $stub, bool $isNested)
+    {
+        $trace = Caster::PREFIX_VIRTUAL.'trace';
+        $prefix = Caster::PREFIX_PROTECTED;
+        $xPrefix = "\0Exception\0";
+
+        if (isset($a[$xPrefix.'previous'], $a[$trace]) && $a[$xPrefix.'previous'] instanceof \Exception) {
+            $b = (array) $a[$xPrefix.'previous'];
+            $class = get_debug_type($a[$xPrefix.'previous']);
+            self::traceUnshift($b[$xPrefix.'trace'], $class, $b[$prefix.'file'], $b[$prefix.'line']);
+            $a[$trace] = new TraceStub($b[$xPrefix.'trace'], false, 0, -\count($a[$trace]->value));
+        }
+
+        unset($a[$xPrefix.'previous'], $a[$prefix.'code'], $a[$prefix.'file'], $a[$prefix.'line']);
+
+        return $a;
+    }
+
+    public static function castSilencedErrorContext(SilencedErrorContext $e, array $a, Stub $stub, bool $isNested)
+    {
+        $sPrefix = "\0".SilencedErrorContext::class."\0";
+
+        if (!isset($a[$s = $sPrefix.'severity'])) {
+            return $a;
+        }
+
+        if (isset(self::$errorTypes[$a[$s]])) {
+            $a[$s] = new ConstStub(self::$errorTypes[$a[$s]], $a[$s]);
+        }
+
+        $trace = [[
+            'file' => $a[$sPrefix.'file'],
+            'line' => $a[$sPrefix.'line'],
+        ]];
+
+        if (isset($a[$sPrefix.'trace'])) {
+            $trace = array_merge($trace, $a[$sPrefix.'trace']);
+        }
+
+        unset($a[$sPrefix.'file'], $a[$sPrefix.'line'], $a[$sPrefix.'trace']);
+        $a[Caster::PREFIX_VIRTUAL.'trace'] = new TraceStub($trace, self::$traceArgs);
+
+        return $a;
+    }
+
+    public static function castTraceStub(TraceStub $trace, array $a, Stub $stub, bool $isNested)
+    {
+        if (!$isNested) {
+            return $a;
+        }
+        $stub->class = '';
+        $stub->handle = 0;
+        $frames = $trace->value;
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        $a = [];
+        $j = \count($frames);
+        if (0 > $i = $trace->sliceOffset) {
+            $i = max(0, $j + $i);
+        }
+        if (!isset($trace->value[$i])) {
+            return [];
+        }
+        $lastCall = isset($frames[$i]['function']) ? (isset($frames[$i]['class']) ? $frames[0]['class'].$frames[$i]['type'] : '').$frames[$i]['function'].'()' : '';
+        $frames[] = ['function' => ''];
+        $collapse = false;
+
+        for ($j += $trace->numberingOffset - $i++; isset($frames[$i]); ++$i, --$j) {
+            $f = $frames[$i];
+            $call = isset($f['function']) ? (isset($f['class']) ? $f['class'].$f['type'] : '').$f['function'] : '???';
+
+            $frame = new FrameStub(
+                [
+                    'object' => $f['object'] ?? null,
+                    'class' => $f['class'] ?? null,
+                    'type' => $f['type'] ?? null,
+                    'function' => $f['function'] ?? null,
+                ] + $frames[$i - 1],
+                false,
+                true
+            );
+            $f = self::castFrameStub($frame, [], $frame, true);
+            if (isset($f[$prefix.'src'])) {
+                foreach ($f[$prefix.'src']->value as $label => $frame) {
+                    if (str_starts_with($label, "\0~collapse=0")) {
+                        if ($collapse) {
+                            $label = substr_replace($label, '1', 11, 1);
+                        } else {
+                            $collapse = true;
+                        }
+                    }
+                    $label = substr_replace($label, "title=Stack level $j.&", 2, 0);
+                }
+                $f = $frames[$i - 1];
+                if ($trace->keepArgs && !empty($f['args']) && $frame instanceof EnumStub) {
+                    $frame->value['arguments'] = new ArgsStub($f['args'], $f['function'] ?? null, $f['class'] ?? null);
+                }
+            } elseif ('???' !== $lastCall) {
+                $label = new ClassStub($lastCall);
+                if (isset($label->attr['ellipsis'])) {
+                    $label->attr['ellipsis'] += 2;
+                    $label = substr_replace($prefix, "ellipsis-type=class&ellipsis={$label->attr['ellipsis']}&ellipsis-tail=1&title=Stack level $j.", 2, 0).$label->value.'()';
+                } else {
+                    $label = substr_replace($prefix, "title=Stack level $j.", 2, 0).$label->value.'()';
+                }
+            } else {
+                $label = substr_replace($prefix, "title=Stack level $j.", 2, 0).$lastCall;
+            }
+            $a[substr_replace($label, sprintf('separator=%s&', $frame instanceof EnumStub ? ' ' : ':'), 2, 0)] = $frame;
+
+            $lastCall = $call;
+        }
+        if (null !== $trace->sliceLength) {
+            $a = \array_slice($a, 0, $trace->sliceLength, true);
+        }
+
+        return $a;
+    }
+
+    public static function castFrameStub(FrameStub $frame, array $a, Stub $stub, bool $isNested)
+    {
+        if (!$isNested) {
+            return $a;
+        }
+        $f = $frame->value;
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        if (isset($f['file'], $f['line'])) {
+            $cacheKey = $f;
+            unset($cacheKey['object'], $cacheKey['args']);
+            $cacheKey[] = self::$srcContext;
+            $cacheKey = implode('-', $cacheKey);
+
+            if (isset(self::$framesCache[$cacheKey])) {
+                $a[$prefix.'src'] = self::$framesCache[$cacheKey];
+            } else {
+                if (preg_match('/\((\d+)\)(?:\([\da-f]{32}\))? : (?:eval\(\)\'d code|runtime-created function)$/', $f['file'], $match)) {
+                    $f['file'] = substr($f['file'], 0, -\strlen($match[0]));
+                    $f['line'] = (int) $match[1];
+                }
+                $src = $f['line'];
+                $srcKey = $f['file'];
+                $ellipsis = new LinkStub($srcKey, 0);
+                $srcAttr = 'collapse='.(int) $ellipsis->inVendor;
+                $ellipsisTail = $ellipsis->attr['ellipsis-tail'] ?? 0;
+                $ellipsis = $ellipsis->attr['ellipsis'] ?? 0;
+
+                if (is_file($f['file']) && 0 <= self::$srcContext) {
+                    if (!empty($f['class']) && (is_subclass_of($f['class'], 'Twig\Template') || is_subclass_of($f['class'], 'Twig_Template')) && method_exists($f['class'], 'getDebugInfo')) {
+                        $template = $f['object'] ?? unserialize(sprintf('O:%d:"%s":0:{}', \strlen($f['class']), $f['class']));
+
+                        $ellipsis = 0;
+                        $templateSrc = method_exists($template, 'getSourceContext') ? $template->getSourceContext()->getCode() : (method_exists($template, 'getSource') ? $template->getSource() : '');
+                        $templateInfo = $template->getDebugInfo();
+                        if (isset($templateInfo[$f['line']])) {
+                            if (!method_exists($template, 'getSourceContext') || !is_file($templatePath = $template->getSourceContext()->getPath())) {
+                                $templatePath = null;
+                            }
+                            if ($templateSrc) {
+                                $src = self::extractSource($templateSrc, $templateInfo[$f['line']], self::$srcContext, 'twig', $templatePath, $f);
+                                $srcKey = ($templatePath ?: $template->getTemplateName()).':'.$templateInfo[$f['line']];
+                            }
+                        }
+                    }
+                    if ($srcKey == $f['file']) {
+                        $src = self::extractSource(file_get_contents($f['file']), $f['line'], self::$srcContext, 'php', $f['file'], $f);
+                        $srcKey .= ':'.$f['line'];
+                        if ($ellipsis) {
+                            $ellipsis += 1 + \strlen($f['line']);
+                        }
+                    }
+                    $srcAttr .= sprintf('&separator= &file=%s&line=%d', rawurlencode($f['file']), $f['line']);
+                } else {
+                    $srcAttr .= '&separator=:';
+                }
+                $srcAttr .= $ellipsis ? '&ellipsis-type=path&ellipsis='.$ellipsis.'&ellipsis-tail='.$ellipsisTail : '';
+                self::$framesCache[$cacheKey] = $a[$prefix.'src'] = new EnumStub(["\0~$srcAttr\0$srcKey" => $src]);
+            }
+        }
+
+        unset($a[$prefix.'args'], $a[$prefix.'line'], $a[$prefix.'file']);
+        if ($frame->inTraceStub) {
+            unset($a[$prefix.'class'], $a[$prefix.'type'], $a[$prefix.'function']);
+        }
+        foreach ($a as $k => $v) {
+            if (!$v) {
+                unset($a[$k]);
+            }
+        }
+        if ($frame->keepArgs && !empty($f['args'])) {
+            $a[$prefix.'arguments'] = new ArgsStub($f['args'], $f['function'], $f['class']);
+        }
+
+        return $a;
+    }
+
+    private static function filterExceptionArray(string $xClass, array $a, string $xPrefix, int $filter): array
+    {
+        if (isset($a[$xPrefix.'trace'])) {
+            $trace = $a[$xPrefix.'trace'];
+            unset($a[$xPrefix.'trace']); // Ensures the trace is always last
+        } else {
+            $trace = [];
+        }
+
+        if (!($filter & Caster::EXCLUDE_VERBOSE) && $trace) {
+            if (isset($a[Caster::PREFIX_PROTECTED.'file'], $a[Caster::PREFIX_PROTECTED.'line'])) {
+                self::traceUnshift($trace, $xClass, $a[Caster::PREFIX_PROTECTED.'file'], $a[Caster::PREFIX_PROTECTED.'line']);
+            }
+            $a[Caster::PREFIX_VIRTUAL.'trace'] = new TraceStub($trace, self::$traceArgs);
+        }
+        if (empty($a[$xPrefix.'previous'])) {
+            unset($a[$xPrefix.'previous']);
+        }
+        unset($a[$xPrefix.'string'], $a[Caster::PREFIX_DYNAMIC.'xdebug_message'], $a[Caster::PREFIX_DYNAMIC.'__destructorException']);
+
+        if (isset($a[Caster::PREFIX_PROTECTED.'message']) && str_contains($a[Caster::PREFIX_PROTECTED.'message'], "@anonymous\0")) {
+            $a[Caster::PREFIX_PROTECTED.'message'] = preg_replace_callback('/[a-zA-Z_\x7f-\xff][\\\\a-zA-Z0-9_\x7f-\xff]*+@anonymous\x00.*?\.php(?:0x?|:[0-9]++\$)[0-9a-fA-F]++/', function ($m) {
+                return class_exists($m[0], false) ? (get_parent_class($m[0]) ?: key(class_implements($m[0])) ?: 'class').'@anonymous' : $m[0];
+            }, $a[Caster::PREFIX_PROTECTED.'message']);
+        }
+
+        if (isset($a[Caster::PREFIX_PROTECTED.'file'], $a[Caster::PREFIX_PROTECTED.'line'])) {
+            $a[Caster::PREFIX_PROTECTED.'file'] = new LinkStub($a[Caster::PREFIX_PROTECTED.'file'], $a[Caster::PREFIX_PROTECTED.'line']);
+        }
+
+        return $a;
+    }
+
+    private static function traceUnshift(array &$trace, ?string $class, string $file, int $line): void
+    {
+        if (isset($trace[0]['file'], $trace[0]['line']) && $trace[0]['file'] === $file && $trace[0]['line'] === $line) {
+            return;
+        }
+        array_unshift($trace, [
+            'function' => $class ? 'new '.$class : null,
+            'file' => $file,
+            'line' => $line,
+        ]);
+    }
+
+    private static function extractSource(string $srcLines, int $line, int $srcContext, string $lang, ?string $file, array $frame): EnumStub
+    {
+        $srcLines = explode("\n", $srcLines);
+        $src = [];
+
+        for ($i = $line - 1 - $srcContext; $i <= $line - 1 + $srcContext; ++$i) {
+            $src[] = ($srcLines[$i] ?? '')."\n";
+        }
+
+        if ($frame['function'] ?? false) {
+            $stub = new CutStub(new \stdClass());
+            $stub->class = (isset($frame['class']) ? $frame['class'].$frame['type'] : '').$frame['function'];
+            $stub->type = Stub::TYPE_OBJECT;
+            $stub->attr['cut_hash'] = true;
+            $stub->attr['file'] = $frame['file'];
+            $stub->attr['line'] = $frame['line'];
+
+            try {
+                $caller = isset($frame['class']) ? new \ReflectionMethod($frame['class'], $frame['function']) : new \ReflectionFunction($frame['function']);
+                $stub->class .= ReflectionCaster::getSignature(ReflectionCaster::castFunctionAbstract($caller, [], $stub, true, Caster::EXCLUDE_VERBOSE));
+
+                if ($f = $caller->getFileName()) {
+                    $stub->attr['file'] = $f;
+                    $stub->attr['line'] = $caller->getStartLine();
+                }
+            } catch (\ReflectionException $e) {
+                // ignore fake class/function
+            }
+
+            $srcLines = ["\0~separator=\0" => $stub];
+        } else {
+            $stub = null;
+            $srcLines = [];
+        }
+
+        $ltrim = 0;
+        do {
+            $pad = null;
+            for ($i = $srcContext << 1; $i >= 0; --$i) {
+                if (isset($src[$i][$ltrim]) && "\r" !== ($c = $src[$i][$ltrim]) && "\n" !== $c) {
+                    if (null === $pad) {
+                        $pad = $c;
+                    }
+                    if ((' ' !== $c && "\t" !== $c) || $pad !== $c) {
+                        break;
+                    }
+                }
+            }
+            ++$ltrim;
+        } while (0 > $i && null !== $pad);
+
+        --$ltrim;
+
+        foreach ($src as $i => $c) {
+            if ($ltrim) {
+                $c = isset($c[$ltrim]) && "\r" !== $c[$ltrim] ? substr($c, $ltrim) : ltrim($c, " \t");
+            }
+            $c = substr($c, 0, -1);
+            if ($i !== $srcContext) {
+                $c = new ConstStub('default', $c);
+            } else {
+                $c = new ConstStub($c, $stub ? 'in '.$stub->class : '');
+                if (null !== $file) {
+                    $c->attr['file'] = $file;
+                    $c->attr['line'] = $line;
+                }
+            }
+            $c->attr['lang'] = $lang;
+            $srcLines[sprintf("\0~separator=› &%d\0", $i + $line - $srcContext)] = $c;
+        }
+
+        return new EnumStub($srcLines);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/FrameStub.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/FrameStub.php
new file mode 100644
index 0000000..8786755
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/FrameStub.php
@@ -0,0 +1,30 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+/**
+ * Represents a single backtrace frame as returned by debug_backtrace() or Exception->getTrace().
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class FrameStub extends EnumStub
+{
+    public $keepArgs;
+    public $inTraceStub;
+
+    public function __construct(array $frame, bool $keepArgs = true, bool $inTraceStub = false)
+    {
+        $this->value = $frame;
+        $this->keepArgs = $keepArgs;
+        $this->inTraceStub = $inTraceStub;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/GmpCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/GmpCaster.php
new file mode 100644
index 0000000..b018cc7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/GmpCaster.php
@@ -0,0 +1,32 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Casts GMP objects to array representation.
+ *
+ * @author Hamza Amrouche <hamza.simperfit@gmail.com>
+ * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final
+ */
+class GmpCaster
+{
+    public static function castGmp(\GMP $gmp, array $a, Stub $stub, bool $isNested, int $filter): array
+    {
+        $a[Caster::PREFIX_VIRTUAL.'value'] = new ConstStub(gmp_strval($gmp), gmp_strval($gmp));
+
+        return $a;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ImagineCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ImagineCaster.php
new file mode 100644
index 0000000..d1289da
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ImagineCaster.php
@@ -0,0 +1,37 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Imagine\Image\ImageInterface;
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * @author Grégoire Pineau <lyrixx@lyrixx.info>
+ */
+final class ImagineCaster
+{
+    public static function castImage(ImageInterface $c, array $a, Stub $stub, bool $isNested): array
+    {
+        $imgData = $c->get('png');
+        if (\strlen($imgData) > 1 * 1000 * 1000) {
+            $a += [
+                Caster::PREFIX_VIRTUAL.'image' => new ConstStub($c->getSize()),
+            ];
+        } else {
+            $a += [
+                Caster::PREFIX_VIRTUAL.'image' => new ImgStub($imgData, 'image/png', $c->getSize()),
+            ];
+        }
+
+        return $a;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ImgStub.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ImgStub.php
new file mode 100644
index 0000000..a16681f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ImgStub.php
@@ -0,0 +1,26 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+/**
+ * @author Grégoire Pineau <lyrixx@lyrixx.info>
+ */
+class ImgStub extends ConstStub
+{
+    public function __construct(string $data, string $contentType, string $size = '')
+    {
+        $this->value = '';
+        $this->attr['img-data'] = $data;
+        $this->attr['img-size'] = $size;
+        $this->attr['content-type'] = $contentType;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/IntlCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/IntlCaster.php
new file mode 100644
index 0000000..23b9d5d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/IntlCaster.php
@@ -0,0 +1,172 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ * @author Jan Schädlich <jan.schaedlich@sensiolabs.de>
+ *
+ * @final
+ */
+class IntlCaster
+{
+    public static function castMessageFormatter(\MessageFormatter $c, array $a, Stub $stub, bool $isNested)
+    {
+        $a += [
+            Caster::PREFIX_VIRTUAL.'locale' => $c->getLocale(),
+            Caster::PREFIX_VIRTUAL.'pattern' => $c->getPattern(),
+        ];
+
+        return self::castError($c, $a);
+    }
+
+    public static function castNumberFormatter(\NumberFormatter $c, array $a, Stub $stub, bool $isNested, int $filter = 0)
+    {
+        $a += [
+            Caster::PREFIX_VIRTUAL.'locale' => $c->getLocale(),
+            Caster::PREFIX_VIRTUAL.'pattern' => $c->getPattern(),
+        ];
+
+        if ($filter & Caster::EXCLUDE_VERBOSE) {
+            $stub->cut += 3;
+
+            return self::castError($c, $a);
+        }
+
+        $a += [
+            Caster::PREFIX_VIRTUAL.'attributes' => new EnumStub(
+                [
+                    'PARSE_INT_ONLY' => $c->getAttribute(\NumberFormatter::PARSE_INT_ONLY),
+                    'GROUPING_USED' => $c->getAttribute(\NumberFormatter::GROUPING_USED),
+                    'DECIMAL_ALWAYS_SHOWN' => $c->getAttribute(\NumberFormatter::DECIMAL_ALWAYS_SHOWN),
+                    'MAX_INTEGER_DIGITS' => $c->getAttribute(\NumberFormatter::MAX_INTEGER_DIGITS),
+                    'MIN_INTEGER_DIGITS' => $c->getAttribute(\NumberFormatter::MIN_INTEGER_DIGITS),
+                    'INTEGER_DIGITS' => $c->getAttribute(\NumberFormatter::INTEGER_DIGITS),
+                    'MAX_FRACTION_DIGITS' => $c->getAttribute(\NumberFormatter::MAX_FRACTION_DIGITS),
+                    'MIN_FRACTION_DIGITS' => $c->getAttribute(\NumberFormatter::MIN_FRACTION_DIGITS),
+                    'FRACTION_DIGITS' => $c->getAttribute(\NumberFormatter::FRACTION_DIGITS),
+                    'MULTIPLIER' => $c->getAttribute(\NumberFormatter::MULTIPLIER),
+                    'GROUPING_SIZE' => $c->getAttribute(\NumberFormatter::GROUPING_SIZE),
+                    'ROUNDING_MODE' => $c->getAttribute(\NumberFormatter::ROUNDING_MODE),
+                    'ROUNDING_INCREMENT' => $c->getAttribute(\NumberFormatter::ROUNDING_INCREMENT),
+                    'FORMAT_WIDTH' => $c->getAttribute(\NumberFormatter::FORMAT_WIDTH),
+                    'PADDING_POSITION' => $c->getAttribute(\NumberFormatter::PADDING_POSITION),
+                    'SECONDARY_GROUPING_SIZE' => $c->getAttribute(\NumberFormatter::SECONDARY_GROUPING_SIZE),
+                    'SIGNIFICANT_DIGITS_USED' => $c->getAttribute(\NumberFormatter::SIGNIFICANT_DIGITS_USED),
+                    'MIN_SIGNIFICANT_DIGITS' => $c->getAttribute(\NumberFormatter::MIN_SIGNIFICANT_DIGITS),
+                    'MAX_SIGNIFICANT_DIGITS' => $c->getAttribute(\NumberFormatter::MAX_SIGNIFICANT_DIGITS),
+                    'LENIENT_PARSE' => $c->getAttribute(\NumberFormatter::LENIENT_PARSE),
+                ]
+            ),
+            Caster::PREFIX_VIRTUAL.'text_attributes' => new EnumStub(
+                [
+                    'POSITIVE_PREFIX' => $c->getTextAttribute(\NumberFormatter::POSITIVE_PREFIX),
+                    'POSITIVE_SUFFIX' => $c->getTextAttribute(\NumberFormatter::POSITIVE_SUFFIX),
+                    'NEGATIVE_PREFIX' => $c->getTextAttribute(\NumberFormatter::NEGATIVE_PREFIX),
+                    'NEGATIVE_SUFFIX' => $c->getTextAttribute(\NumberFormatter::NEGATIVE_SUFFIX),
+                    'PADDING_CHARACTER' => $c->getTextAttribute(\NumberFormatter::PADDING_CHARACTER),
+                    'CURRENCY_CODE' => $c->getTextAttribute(\NumberFormatter::CURRENCY_CODE),
+                    'DEFAULT_RULESET' => $c->getTextAttribute(\NumberFormatter::DEFAULT_RULESET),
+                    'PUBLIC_RULESETS' => $c->getTextAttribute(\NumberFormatter::PUBLIC_RULESETS),
+                ]
+            ),
+            Caster::PREFIX_VIRTUAL.'symbols' => new EnumStub(
+                [
+                    'DECIMAL_SEPARATOR_SYMBOL' => $c->getSymbol(\NumberFormatter::DECIMAL_SEPARATOR_SYMBOL),
+                    'GROUPING_SEPARATOR_SYMBOL' => $c->getSymbol(\NumberFormatter::GROUPING_SEPARATOR_SYMBOL),
+                    'PATTERN_SEPARATOR_SYMBOL' => $c->getSymbol(\NumberFormatter::PATTERN_SEPARATOR_SYMBOL),
+                    'PERCENT_SYMBOL' => $c->getSymbol(\NumberFormatter::PERCENT_SYMBOL),
+                    'ZERO_DIGIT_SYMBOL' => $c->getSymbol(\NumberFormatter::ZERO_DIGIT_SYMBOL),
+                    'DIGIT_SYMBOL' => $c->getSymbol(\NumberFormatter::DIGIT_SYMBOL),
+                    'MINUS_SIGN_SYMBOL' => $c->getSymbol(\NumberFormatter::MINUS_SIGN_SYMBOL),
+                    'PLUS_SIGN_SYMBOL' => $c->getSymbol(\NumberFormatter::PLUS_SIGN_SYMBOL),
+                    'CURRENCY_SYMBOL' => $c->getSymbol(\NumberFormatter::CURRENCY_SYMBOL),
+                    'INTL_CURRENCY_SYMBOL' => $c->getSymbol(\NumberFormatter::INTL_CURRENCY_SYMBOL),
+                    'MONETARY_SEPARATOR_SYMBOL' => $c->getSymbol(\NumberFormatter::MONETARY_SEPARATOR_SYMBOL),
+                    'EXPONENTIAL_SYMBOL' => $c->getSymbol(\NumberFormatter::EXPONENTIAL_SYMBOL),
+                    'PERMILL_SYMBOL' => $c->getSymbol(\NumberFormatter::PERMILL_SYMBOL),
+                    'PAD_ESCAPE_SYMBOL' => $c->getSymbol(\NumberFormatter::PAD_ESCAPE_SYMBOL),
+                    'INFINITY_SYMBOL' => $c->getSymbol(\NumberFormatter::INFINITY_SYMBOL),
+                    'NAN_SYMBOL' => $c->getSymbol(\NumberFormatter::NAN_SYMBOL),
+                    'SIGNIFICANT_DIGIT_SYMBOL' => $c->getSymbol(\NumberFormatter::SIGNIFICANT_DIGIT_SYMBOL),
+                    'MONETARY_GROUPING_SEPARATOR_SYMBOL' => $c->getSymbol(\NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL),
+                ]
+             ),
+        ];
+
+        return self::castError($c, $a);
+    }
+
+    public static function castIntlTimeZone(\IntlTimeZone $c, array $a, Stub $stub, bool $isNested)
+    {
+        $a += [
+            Caster::PREFIX_VIRTUAL.'display_name' => $c->getDisplayName(),
+            Caster::PREFIX_VIRTUAL.'id' => $c->getID(),
+            Caster::PREFIX_VIRTUAL.'raw_offset' => $c->getRawOffset(),
+        ];
+
+        if ($c->useDaylightTime()) {
+            $a += [
+                Caster::PREFIX_VIRTUAL.'dst_savings' => $c->getDSTSavings(),
+            ];
+        }
+
+        return self::castError($c, $a);
+    }
+
+    public static function castIntlCalendar(\IntlCalendar $c, array $a, Stub $stub, bool $isNested, int $filter = 0)
+    {
+        $a += [
+            Caster::PREFIX_VIRTUAL.'type' => $c->getType(),
+            Caster::PREFIX_VIRTUAL.'first_day_of_week' => $c->getFirstDayOfWeek(),
+            Caster::PREFIX_VIRTUAL.'minimal_days_in_first_week' => $c->getMinimalDaysInFirstWeek(),
+            Caster::PREFIX_VIRTUAL.'repeated_wall_time_option' => $c->getRepeatedWallTimeOption(),
+            Caster::PREFIX_VIRTUAL.'skipped_wall_time_option' => $c->getSkippedWallTimeOption(),
+            Caster::PREFIX_VIRTUAL.'time' => $c->getTime(),
+            Caster::PREFIX_VIRTUAL.'in_daylight_time' => $c->inDaylightTime(),
+            Caster::PREFIX_VIRTUAL.'is_lenient' => $c->isLenient(),
+            Caster::PREFIX_VIRTUAL.'time_zone' => ($filter & Caster::EXCLUDE_VERBOSE) ? new CutStub($c->getTimeZone()) : $c->getTimeZone(),
+        ];
+
+        return self::castError($c, $a);
+    }
+
+    public static function castIntlDateFormatter(\IntlDateFormatter $c, array $a, Stub $stub, bool $isNested, int $filter = 0)
+    {
+        $a += [
+            Caster::PREFIX_VIRTUAL.'locale' => $c->getLocale(),
+            Caster::PREFIX_VIRTUAL.'pattern' => $c->getPattern(),
+            Caster::PREFIX_VIRTUAL.'calendar' => $c->getCalendar(),
+            Caster::PREFIX_VIRTUAL.'time_zone_id' => $c->getTimeZoneId(),
+            Caster::PREFIX_VIRTUAL.'time_type' => $c->getTimeType(),
+            Caster::PREFIX_VIRTUAL.'date_type' => $c->getDateType(),
+            Caster::PREFIX_VIRTUAL.'calendar_object' => ($filter & Caster::EXCLUDE_VERBOSE) ? new CutStub($c->getCalendarObject()) : $c->getCalendarObject(),
+            Caster::PREFIX_VIRTUAL.'time_zone' => ($filter & Caster::EXCLUDE_VERBOSE) ? new CutStub($c->getTimeZone()) : $c->getTimeZone(),
+        ];
+
+        return self::castError($c, $a);
+    }
+
+    private static function castError(object $c, array $a): array
+    {
+        if ($errorCode = $c->getErrorCode()) {
+            $a += [
+                Caster::PREFIX_VIRTUAL.'error_code' => $errorCode,
+                Caster::PREFIX_VIRTUAL.'error_message' => $c->getErrorMessage(),
+            ];
+        }
+
+        return $a;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/LinkStub.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/LinkStub.php
new file mode 100644
index 0000000..7e07803
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/LinkStub.php
@@ -0,0 +1,108 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+/**
+ * Represents a file or a URL.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class LinkStub extends ConstStub
+{
+    public $inVendor = false;
+
+    private static $vendorRoots;
+    private static $composerRoots;
+
+    public function __construct(string $label, int $line = 0, string $href = null)
+    {
+        $this->value = $label;
+
+        if (null === $href) {
+            $href = $label;
+        }
+        if (!\is_string($href)) {
+            return;
+        }
+        if (str_starts_with($href, 'file://')) {
+            if ($href === $label) {
+                $label = substr($label, 7);
+            }
+            $href = substr($href, 7);
+        } elseif (str_contains($href, '://')) {
+            $this->attr['href'] = $href;
+
+            return;
+        }
+        if (!is_file($href)) {
+            return;
+        }
+        if ($line) {
+            $this->attr['line'] = $line;
+        }
+        if ($label !== $this->attr['file'] = realpath($href) ?: $href) {
+            return;
+        }
+        if ($composerRoot = $this->getComposerRoot($href, $this->inVendor)) {
+            $this->attr['ellipsis'] = \strlen($href) - \strlen($composerRoot) + 1;
+            $this->attr['ellipsis-type'] = 'path';
+            $this->attr['ellipsis-tail'] = 1 + ($this->inVendor ? 2 + \strlen(implode('', \array_slice(explode(\DIRECTORY_SEPARATOR, substr($href, 1 - $this->attr['ellipsis'])), 0, 2))) : 0);
+        } elseif (3 < \count($ellipsis = explode(\DIRECTORY_SEPARATOR, $href))) {
+            $this->attr['ellipsis'] = 2 + \strlen(implode('', \array_slice($ellipsis, -2)));
+            $this->attr['ellipsis-type'] = 'path';
+            $this->attr['ellipsis-tail'] = 1;
+        }
+    }
+
+    private function getComposerRoot(string $file, bool &$inVendor)
+    {
+        if (null === self::$vendorRoots) {
+            self::$vendorRoots = [];
+
+            foreach (get_declared_classes() as $class) {
+                if ('C' === $class[0] && str_starts_with($class, 'ComposerAutoloaderInit')) {
+                    $r = new \ReflectionClass($class);
+                    $v = \dirname($r->getFileName(), 2);
+                    if (is_file($v.'/composer/installed.json')) {
+                        self::$vendorRoots[] = $v.\DIRECTORY_SEPARATOR;
+                    }
+                }
+            }
+        }
+        $inVendor = false;
+
+        if (isset(self::$composerRoots[$dir = \dirname($file)])) {
+            return self::$composerRoots[$dir];
+        }
+
+        foreach (self::$vendorRoots as $root) {
+            if ($inVendor = str_starts_with($file, $root)) {
+                return $root;
+            }
+        }
+
+        $parent = $dir;
+        while (!@is_file($parent.'/composer.json')) {
+            if (!@file_exists($parent)) {
+                // open_basedir restriction in effect
+                break;
+            }
+            if ($parent === \dirname($parent)) {
+                return self::$composerRoots[$dir] = false;
+            }
+
+            $parent = \dirname($parent);
+        }
+
+        return self::$composerRoots[$dir] = $parent.\DIRECTORY_SEPARATOR;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/MemcachedCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/MemcachedCaster.php
new file mode 100644
index 0000000..cfef19a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/MemcachedCaster.php
@@ -0,0 +1,81 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * @author Jan Schädlich <jan.schaedlich@sensiolabs.de>
+ *
+ * @final
+ */
+class MemcachedCaster
+{
+    private static $optionConstants;
+    private static $defaultOptions;
+
+    public static function castMemcached(\Memcached $c, array $a, Stub $stub, bool $isNested)
+    {
+        $a += [
+            Caster::PREFIX_VIRTUAL.'servers' => $c->getServerList(),
+            Caster::PREFIX_VIRTUAL.'options' => new EnumStub(
+                self::getNonDefaultOptions($c)
+            ),
+        ];
+
+        return $a;
+    }
+
+    private static function getNonDefaultOptions(\Memcached $c): array
+    {
+        self::$defaultOptions = self::$defaultOptions ?? self::discoverDefaultOptions();
+        self::$optionConstants = self::$optionConstants ?? self::getOptionConstants();
+
+        $nonDefaultOptions = [];
+        foreach (self::$optionConstants as $constantKey => $value) {
+            if (self::$defaultOptions[$constantKey] !== $option = $c->getOption($value)) {
+                $nonDefaultOptions[$constantKey] = $option;
+            }
+        }
+
+        return $nonDefaultOptions;
+    }
+
+    private static function discoverDefaultOptions(): array
+    {
+        $defaultMemcached = new \Memcached();
+        $defaultMemcached->addServer('127.0.0.1', 11211);
+
+        $defaultOptions = [];
+        self::$optionConstants = self::$optionConstants ?? self::getOptionConstants();
+
+        foreach (self::$optionConstants as $constantKey => $value) {
+            $defaultOptions[$constantKey] = $defaultMemcached->getOption($value);
+        }
+
+        return $defaultOptions;
+    }
+
+    private static function getOptionConstants(): array
+    {
+        $reflectedMemcached = new \ReflectionClass(\Memcached::class);
+
+        $optionConstants = [];
+        foreach ($reflectedMemcached->getConstants() as $constantKey => $value) {
+            if (str_starts_with($constantKey, 'OPT_')) {
+                $optionConstants[$constantKey] = $value;
+            }
+        }
+
+        return $optionConstants;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/PdoCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/PdoCaster.php
new file mode 100644
index 0000000..140473b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/PdoCaster.php
@@ -0,0 +1,122 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Casts PDO related classes to array representation.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final
+ */
+class PdoCaster
+{
+    private const PDO_ATTRIBUTES = [
+        'CASE' => [
+            \PDO::CASE_LOWER => 'LOWER',
+            \PDO::CASE_NATURAL => 'NATURAL',
+            \PDO::CASE_UPPER => 'UPPER',
+        ],
+        'ERRMODE' => [
+            \PDO::ERRMODE_SILENT => 'SILENT',
+            \PDO::ERRMODE_WARNING => 'WARNING',
+            \PDO::ERRMODE_EXCEPTION => 'EXCEPTION',
+        ],
+        'TIMEOUT',
+        'PREFETCH',
+        'AUTOCOMMIT',
+        'PERSISTENT',
+        'DRIVER_NAME',
+        'SERVER_INFO',
+        'ORACLE_NULLS' => [
+            \PDO::NULL_NATURAL => 'NATURAL',
+            \PDO::NULL_EMPTY_STRING => 'EMPTY_STRING',
+            \PDO::NULL_TO_STRING => 'TO_STRING',
+        ],
+        'CLIENT_VERSION',
+        'SERVER_VERSION',
+        'STATEMENT_CLASS',
+        'EMULATE_PREPARES',
+        'CONNECTION_STATUS',
+        'STRINGIFY_FETCHES',
+        'DEFAULT_FETCH_MODE' => [
+            \PDO::FETCH_ASSOC => 'ASSOC',
+            \PDO::FETCH_BOTH => 'BOTH',
+            \PDO::FETCH_LAZY => 'LAZY',
+            \PDO::FETCH_NUM => 'NUM',
+            \PDO::FETCH_OBJ => 'OBJ',
+        ],
+    ];
+
+    public static function castPdo(\PDO $c, array $a, Stub $stub, bool $isNested)
+    {
+        $attr = [];
+        $errmode = $c->getAttribute(\PDO::ATTR_ERRMODE);
+        $c->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
+
+        foreach (self::PDO_ATTRIBUTES as $k => $v) {
+            if (!isset($k[0])) {
+                $k = $v;
+                $v = [];
+            }
+
+            try {
+                $attr[$k] = 'ERRMODE' === $k ? $errmode : $c->getAttribute(\constant('PDO::ATTR_'.$k));
+                if ($v && isset($v[$attr[$k]])) {
+                    $attr[$k] = new ConstStub($v[$attr[$k]], $attr[$k]);
+                }
+            } catch (\Exception $e) {
+            }
+        }
+        if (isset($attr[$k = 'STATEMENT_CLASS'][1])) {
+            if ($attr[$k][1]) {
+                $attr[$k][1] = new ArgsStub($attr[$k][1], '__construct', $attr[$k][0]);
+            }
+            $attr[$k][0] = new ClassStub($attr[$k][0]);
+        }
+
+        $prefix = Caster::PREFIX_VIRTUAL;
+        $a += [
+            $prefix.'inTransaction' => method_exists($c, 'inTransaction'),
+            $prefix.'errorInfo' => $c->errorInfo(),
+            $prefix.'attributes' => new EnumStub($attr),
+        ];
+
+        if ($a[$prefix.'inTransaction']) {
+            $a[$prefix.'inTransaction'] = $c->inTransaction();
+        } else {
+            unset($a[$prefix.'inTransaction']);
+        }
+
+        if (!isset($a[$prefix.'errorInfo'][1], $a[$prefix.'errorInfo'][2])) {
+            unset($a[$prefix.'errorInfo']);
+        }
+
+        $c->setAttribute(\PDO::ATTR_ERRMODE, $errmode);
+
+        return $a;
+    }
+
+    public static function castPdoStatement(\PDOStatement $c, array $a, Stub $stub, bool $isNested)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+        $a[$prefix.'errorInfo'] = $c->errorInfo();
+
+        if (!isset($a[$prefix.'errorInfo'][1], $a[$prefix.'errorInfo'][2])) {
+            unset($a[$prefix.'errorInfo']);
+        }
+
+        return $a;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/PgSqlCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/PgSqlCaster.php
new file mode 100644
index 0000000..d8e5b52
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/PgSqlCaster.php
@@ -0,0 +1,156 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Casts pqsql resources to array representation.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final
+ */
+class PgSqlCaster
+{
+    private const PARAM_CODES = [
+        'server_encoding',
+        'client_encoding',
+        'is_superuser',
+        'session_authorization',
+        'DateStyle',
+        'TimeZone',
+        'IntervalStyle',
+        'integer_datetimes',
+        'application_name',
+        'standard_conforming_strings',
+    ];
+
+    private const TRANSACTION_STATUS = [
+        \PGSQL_TRANSACTION_IDLE => 'PGSQL_TRANSACTION_IDLE',
+        \PGSQL_TRANSACTION_ACTIVE => 'PGSQL_TRANSACTION_ACTIVE',
+        \PGSQL_TRANSACTION_INTRANS => 'PGSQL_TRANSACTION_INTRANS',
+        \PGSQL_TRANSACTION_INERROR => 'PGSQL_TRANSACTION_INERROR',
+        \PGSQL_TRANSACTION_UNKNOWN => 'PGSQL_TRANSACTION_UNKNOWN',
+    ];
+
+    private const RESULT_STATUS = [
+        \PGSQL_EMPTY_QUERY => 'PGSQL_EMPTY_QUERY',
+        \PGSQL_COMMAND_OK => 'PGSQL_COMMAND_OK',
+        \PGSQL_TUPLES_OK => 'PGSQL_TUPLES_OK',
+        \PGSQL_COPY_OUT => 'PGSQL_COPY_OUT',
+        \PGSQL_COPY_IN => 'PGSQL_COPY_IN',
+        \PGSQL_BAD_RESPONSE => 'PGSQL_BAD_RESPONSE',
+        \PGSQL_NONFATAL_ERROR => 'PGSQL_NONFATAL_ERROR',
+        \PGSQL_FATAL_ERROR => 'PGSQL_FATAL_ERROR',
+    ];
+
+    private const DIAG_CODES = [
+        'severity' => \PGSQL_DIAG_SEVERITY,
+        'sqlstate' => \PGSQL_DIAG_SQLSTATE,
+        'message' => \PGSQL_DIAG_MESSAGE_PRIMARY,
+        'detail' => \PGSQL_DIAG_MESSAGE_DETAIL,
+        'hint' => \PGSQL_DIAG_MESSAGE_HINT,
+        'statement position' => \PGSQL_DIAG_STATEMENT_POSITION,
+        'internal position' => \PGSQL_DIAG_INTERNAL_POSITION,
+        'internal query' => \PGSQL_DIAG_INTERNAL_QUERY,
+        'context' => \PGSQL_DIAG_CONTEXT,
+        'file' => \PGSQL_DIAG_SOURCE_FILE,
+        'line' => \PGSQL_DIAG_SOURCE_LINE,
+        'function' => \PGSQL_DIAG_SOURCE_FUNCTION,
+    ];
+
+    public static function castLargeObject($lo, array $a, Stub $stub, bool $isNested)
+    {
+        $a['seek position'] = pg_lo_tell($lo);
+
+        return $a;
+    }
+
+    public static function castLink($link, array $a, Stub $stub, bool $isNested)
+    {
+        $a['status'] = pg_connection_status($link);
+        $a['status'] = new ConstStub(\PGSQL_CONNECTION_OK === $a['status'] ? 'PGSQL_CONNECTION_OK' : 'PGSQL_CONNECTION_BAD', $a['status']);
+        $a['busy'] = pg_connection_busy($link);
+
+        $a['transaction'] = pg_transaction_status($link);
+        if (isset(self::TRANSACTION_STATUS[$a['transaction']])) {
+            $a['transaction'] = new ConstStub(self::TRANSACTION_STATUS[$a['transaction']], $a['transaction']);
+        }
+
+        $a['pid'] = pg_get_pid($link);
+        $a['last error'] = pg_last_error($link);
+        $a['last notice'] = pg_last_notice($link);
+        $a['host'] = pg_host($link);
+        $a['port'] = pg_port($link);
+        $a['dbname'] = pg_dbname($link);
+        $a['options'] = pg_options($link);
+        $a['version'] = pg_version($link);
+
+        foreach (self::PARAM_CODES as $v) {
+            if (false !== $s = pg_parameter_status($link, $v)) {
+                $a['param'][$v] = $s;
+            }
+        }
+
+        $a['param']['client_encoding'] = pg_client_encoding($link);
+        $a['param'] = new EnumStub($a['param']);
+
+        return $a;
+    }
+
+    public static function castResult($result, array $a, Stub $stub, bool $isNested)
+    {
+        $a['num rows'] = pg_num_rows($result);
+        $a['status'] = pg_result_status($result);
+        if (isset(self::RESULT_STATUS[$a['status']])) {
+            $a['status'] = new ConstStub(self::RESULT_STATUS[$a['status']], $a['status']);
+        }
+        $a['command-completion tag'] = pg_result_status($result, \PGSQL_STATUS_STRING);
+
+        if (-1 === $a['num rows']) {
+            foreach (self::DIAG_CODES as $k => $v) {
+                $a['error'][$k] = pg_result_error_field($result, $v);
+            }
+        }
+
+        $a['affected rows'] = pg_affected_rows($result);
+        $a['last OID'] = pg_last_oid($result);
+
+        $fields = pg_num_fields($result);
+
+        for ($i = 0; $i < $fields; ++$i) {
+            $field = [
+                'name' => pg_field_name($result, $i),
+                'table' => sprintf('%s (OID: %s)', pg_field_table($result, $i), pg_field_table($result, $i, true)),
+                'type' => sprintf('%s (OID: %s)', pg_field_type($result, $i), pg_field_type_oid($result, $i)),
+                'nullable' => (bool) pg_field_is_null($result, $i),
+                'storage' => pg_field_size($result, $i).' bytes',
+                'display' => pg_field_prtlen($result, $i).' chars',
+            ];
+            if (' (OID: )' === $field['table']) {
+                $field['table'] = null;
+            }
+            if ('-1 bytes' === $field['storage']) {
+                $field['storage'] = 'variable size';
+            } elseif ('1 bytes' === $field['storage']) {
+                $field['storage'] = '1 byte';
+            }
+            if ('1 chars' === $field['display']) {
+                $field['display'] = '1 char';
+            }
+            $a['fields'][] = new EnumStub($field);
+        }
+
+        return $a;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ProxyManagerCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ProxyManagerCaster.php
new file mode 100644
index 0000000..e712019
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ProxyManagerCaster.php
@@ -0,0 +1,33 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use ProxyManager\Proxy\ProxyInterface;
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final
+ */
+class ProxyManagerCaster
+{
+    public static function castProxy(ProxyInterface $c, array $a, Stub $stub, bool $isNested)
+    {
+        if ($parent = get_parent_class($c)) {
+            $stub->class .= ' - '.$parent;
+        }
+        $stub->class .= '@proxy';
+
+        return $a;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/RdKafkaCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/RdKafkaCaster.php
new file mode 100644
index 0000000..db4bba8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/RdKafkaCaster.php
@@ -0,0 +1,186 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use RdKafka\Conf;
+use RdKafka\Exception as RdKafkaException;
+use RdKafka\KafkaConsumer;
+use RdKafka\Message;
+use RdKafka\Metadata\Broker as BrokerMetadata;
+use RdKafka\Metadata\Collection as CollectionMetadata;
+use RdKafka\Metadata\Partition as PartitionMetadata;
+use RdKafka\Metadata\Topic as TopicMetadata;
+use RdKafka\Topic;
+use RdKafka\TopicConf;
+use RdKafka\TopicPartition;
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Casts RdKafka related classes to array representation.
+ *
+ * @author Romain Neutron <imprec@gmail.com>
+ */
+class RdKafkaCaster
+{
+    public static function castKafkaConsumer(KafkaConsumer $c, array $a, Stub $stub, bool $isNested)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        try {
+            $assignment = $c->getAssignment();
+        } catch (RdKafkaException $e) {
+            $assignment = [];
+        }
+
+        $a += [
+            $prefix.'subscription' => $c->getSubscription(),
+            $prefix.'assignment' => $assignment,
+        ];
+
+        $a += self::extractMetadata($c);
+
+        return $a;
+    }
+
+    public static function castTopic(Topic $c, array $a, Stub $stub, bool $isNested)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        $a += [
+            $prefix.'name' => $c->getName(),
+        ];
+
+        return $a;
+    }
+
+    public static function castTopicPartition(TopicPartition $c, array $a)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        $a += [
+            $prefix.'offset' => $c->getOffset(),
+            $prefix.'partition' => $c->getPartition(),
+            $prefix.'topic' => $c->getTopic(),
+        ];
+
+        return $a;
+    }
+
+    public static function castMessage(Message $c, array $a, Stub $stub, bool $isNested)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        $a += [
+            $prefix.'errstr' => $c->errstr(),
+        ];
+
+        return $a;
+    }
+
+    public static function castConf(Conf $c, array $a, Stub $stub, bool $isNested)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        foreach ($c->dump() as $key => $value) {
+            $a[$prefix.$key] = $value;
+        }
+
+        return $a;
+    }
+
+    public static function castTopicConf(TopicConf $c, array $a, Stub $stub, bool $isNested)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        foreach ($c->dump() as $key => $value) {
+            $a[$prefix.$key] = $value;
+        }
+
+        return $a;
+    }
+
+    public static function castRdKafka(\RdKafka $c, array $a, Stub $stub, bool $isNested)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        $a += [
+            $prefix.'out_q_len' => $c->getOutQLen(),
+        ];
+
+        $a += self::extractMetadata($c);
+
+        return $a;
+    }
+
+    public static function castCollectionMetadata(CollectionMetadata $c, array $a, Stub $stub, bool $isNested)
+    {
+        $a += iterator_to_array($c);
+
+        return $a;
+    }
+
+    public static function castTopicMetadata(TopicMetadata $c, array $a, Stub $stub, bool $isNested)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        $a += [
+            $prefix.'name' => $c->getTopic(),
+            $prefix.'partitions' => $c->getPartitions(),
+        ];
+
+        return $a;
+    }
+
+    public static function castPartitionMetadata(PartitionMetadata $c, array $a, Stub $stub, bool $isNested)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        $a += [
+            $prefix.'id' => $c->getId(),
+            $prefix.'err' => $c->getErr(),
+            $prefix.'leader' => $c->getLeader(),
+        ];
+
+        return $a;
+    }
+
+    public static function castBrokerMetadata(BrokerMetadata $c, array $a, Stub $stub, bool $isNested)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        $a += [
+            $prefix.'id' => $c->getId(),
+            $prefix.'host' => $c->getHost(),
+            $prefix.'port' => $c->getPort(),
+        ];
+
+        return $a;
+    }
+
+    private static function extractMetadata($c)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        try {
+            $m = $c->getMetadata(true, null, 500);
+        } catch (RdKafkaException $e) {
+            return [];
+        }
+
+        return [
+            $prefix.'orig_broker_id' => $m->getOrigBrokerId(),
+            $prefix.'orig_broker_name' => $m->getOrigBrokerName(),
+            $prefix.'brokers' => $m->getBrokers(),
+            $prefix.'topics' => $m->getTopics(),
+        ];
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/RedisCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/RedisCaster.php
new file mode 100644
index 0000000..8f97eaa
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/RedisCaster.php
@@ -0,0 +1,152 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Casts Redis class from ext-redis to array representation.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final
+ */
+class RedisCaster
+{
+    private const SERIALIZERS = [
+        \Redis::SERIALIZER_NONE => 'NONE',
+        \Redis::SERIALIZER_PHP => 'PHP',
+        2 => 'IGBINARY', // Optional Redis::SERIALIZER_IGBINARY
+    ];
+
+    private const MODES = [
+        \Redis::ATOMIC => 'ATOMIC',
+        \Redis::MULTI => 'MULTI',
+        \Redis::PIPELINE => 'PIPELINE',
+    ];
+
+    private const COMPRESSION_MODES = [
+        0 => 'NONE', // Redis::COMPRESSION_NONE
+        1 => 'LZF',  // Redis::COMPRESSION_LZF
+    ];
+
+    private const FAILOVER_OPTIONS = [
+        \RedisCluster::FAILOVER_NONE => 'NONE',
+        \RedisCluster::FAILOVER_ERROR => 'ERROR',
+        \RedisCluster::FAILOVER_DISTRIBUTE => 'DISTRIBUTE',
+        \RedisCluster::FAILOVER_DISTRIBUTE_SLAVES => 'DISTRIBUTE_SLAVES',
+    ];
+
+    public static function castRedis(\Redis $c, array $a, Stub $stub, bool $isNested)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        if (!$connected = $c->isConnected()) {
+            return $a + [
+                $prefix.'isConnected' => $connected,
+            ];
+        }
+
+        $mode = $c->getMode();
+
+        return $a + [
+            $prefix.'isConnected' => $connected,
+            $prefix.'host' => $c->getHost(),
+            $prefix.'port' => $c->getPort(),
+            $prefix.'auth' => $c->getAuth(),
+            $prefix.'mode' => isset(self::MODES[$mode]) ? new ConstStub(self::MODES[$mode], $mode) : $mode,
+            $prefix.'dbNum' => $c->getDbNum(),
+            $prefix.'timeout' => $c->getTimeout(),
+            $prefix.'lastError' => $c->getLastError(),
+            $prefix.'persistentId' => $c->getPersistentID(),
+            $prefix.'options' => self::getRedisOptions($c),
+        ];
+    }
+
+    public static function castRedisArray(\RedisArray $c, array $a, Stub $stub, bool $isNested)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        return $a + [
+            $prefix.'hosts' => $c->_hosts(),
+            $prefix.'function' => ClassStub::wrapCallable($c->_function()),
+            $prefix.'lastError' => $c->getLastError(),
+            $prefix.'options' => self::getRedisOptions($c),
+        ];
+    }
+
+    public static function castRedisCluster(\RedisCluster $c, array $a, Stub $stub, bool $isNested)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+        $failover = $c->getOption(\RedisCluster::OPT_SLAVE_FAILOVER);
+
+        $a += [
+            $prefix.'_masters' => $c->_masters(),
+            $prefix.'_redir' => $c->_redir(),
+            $prefix.'mode' => new ConstStub($c->getMode() ? 'MULTI' : 'ATOMIC', $c->getMode()),
+            $prefix.'lastError' => $c->getLastError(),
+            $prefix.'options' => self::getRedisOptions($c, [
+                'SLAVE_FAILOVER' => isset(self::FAILOVER_OPTIONS[$failover]) ? new ConstStub(self::FAILOVER_OPTIONS[$failover], $failover) : $failover,
+            ]),
+        ];
+
+        return $a;
+    }
+
+    /**
+     * @param \Redis|\RedisArray|\RedisCluster $redis
+     */
+    private static function getRedisOptions($redis, array $options = []): EnumStub
+    {
+        $serializer = $redis->getOption(\Redis::OPT_SERIALIZER);
+        if (\is_array($serializer)) {
+            foreach ($serializer as &$v) {
+                if (isset(self::SERIALIZERS[$v])) {
+                    $v = new ConstStub(self::SERIALIZERS[$v], $v);
+                }
+            }
+        } elseif (isset(self::SERIALIZERS[$serializer])) {
+            $serializer = new ConstStub(self::SERIALIZERS[$serializer], $serializer);
+        }
+
+        $compression = \defined('Redis::OPT_COMPRESSION') ? $redis->getOption(\Redis::OPT_COMPRESSION) : 0;
+        if (\is_array($compression)) {
+            foreach ($compression as &$v) {
+                if (isset(self::COMPRESSION_MODES[$v])) {
+                    $v = new ConstStub(self::COMPRESSION_MODES[$v], $v);
+                }
+            }
+        } elseif (isset(self::COMPRESSION_MODES[$compression])) {
+            $compression = new ConstStub(self::COMPRESSION_MODES[$compression], $compression);
+        }
+
+        $retry = \defined('Redis::OPT_SCAN') ? $redis->getOption(\Redis::OPT_SCAN) : 0;
+        if (\is_array($retry)) {
+            foreach ($retry as &$v) {
+                $v = new ConstStub($v ? 'RETRY' : 'NORETRY', $v);
+            }
+        } else {
+            $retry = new ConstStub($retry ? 'RETRY' : 'NORETRY', $retry);
+        }
+
+        $options += [
+            'TCP_KEEPALIVE' => \defined('Redis::OPT_TCP_KEEPALIVE') ? $redis->getOption(\Redis::OPT_TCP_KEEPALIVE) : 0,
+            'READ_TIMEOUT' => $redis->getOption(\Redis::OPT_READ_TIMEOUT),
+            'COMPRESSION' => $compression,
+            'SERIALIZER' => $serializer,
+            'PREFIX' => $redis->getOption(\Redis::OPT_PREFIX),
+            'SCAN' => $retry,
+        ];
+
+        return new EnumStub($options);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ReflectionCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ReflectionCaster.php
new file mode 100644
index 0000000..1781f46
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ReflectionCaster.php
@@ -0,0 +1,438 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Casts Reflector related classes to array representation.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final
+ */
+class ReflectionCaster
+{
+    public const UNSET_CLOSURE_FILE_INFO = ['Closure' => __CLASS__.'::unsetClosureFileInfo'];
+
+    private const EXTRA_MAP = [
+        'docComment' => 'getDocComment',
+        'extension' => 'getExtensionName',
+        'isDisabled' => 'isDisabled',
+        'isDeprecated' => 'isDeprecated',
+        'isInternal' => 'isInternal',
+        'isUserDefined' => 'isUserDefined',
+        'isGenerator' => 'isGenerator',
+        'isVariadic' => 'isVariadic',
+    ];
+
+    public static function castClosure(\Closure $c, array $a, Stub $stub, bool $isNested, int $filter = 0)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+        $c = new \ReflectionFunction($c);
+
+        $a = static::castFunctionAbstract($c, $a, $stub, $isNested, $filter);
+
+        if (!str_contains($c->name, '{closure}')) {
+            $stub->class = isset($a[$prefix.'class']) ? $a[$prefix.'class']->value.'::'.$c->name : $c->name;
+            unset($a[$prefix.'class']);
+        }
+        unset($a[$prefix.'extra']);
+
+        $stub->class .= self::getSignature($a);
+
+        if ($f = $c->getFileName()) {
+            $stub->attr['file'] = $f;
+            $stub->attr['line'] = $c->getStartLine();
+        }
+
+        unset($a[$prefix.'parameters']);
+
+        if ($filter & Caster::EXCLUDE_VERBOSE) {
+            $stub->cut += ($c->getFileName() ? 2 : 0) + \count($a);
+
+            return [];
+        }
+
+        if ($f) {
+            $a[$prefix.'file'] = new LinkStub($f, $c->getStartLine());
+            $a[$prefix.'line'] = $c->getStartLine().' to '.$c->getEndLine();
+        }
+
+        return $a;
+    }
+
+    public static function unsetClosureFileInfo(\Closure $c, array $a)
+    {
+        unset($a[Caster::PREFIX_VIRTUAL.'file'], $a[Caster::PREFIX_VIRTUAL.'line']);
+
+        return $a;
+    }
+
+    public static function castGenerator(\Generator $c, array $a, Stub $stub, bool $isNested)
+    {
+        // Cannot create ReflectionGenerator based on a terminated Generator
+        try {
+            $reflectionGenerator = new \ReflectionGenerator($c);
+        } catch (\Exception $e) {
+            $a[Caster::PREFIX_VIRTUAL.'closed'] = true;
+
+            return $a;
+        }
+
+        return self::castReflectionGenerator($reflectionGenerator, $a, $stub, $isNested);
+    }
+
+    public static function castType(\ReflectionType $c, array $a, Stub $stub, bool $isNested)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        if ($c instanceof \ReflectionNamedType || \PHP_VERSION_ID < 80000) {
+            $a += [
+                $prefix.'name' => $c instanceof \ReflectionNamedType ? $c->getName() : (string) $c,
+                $prefix.'allowsNull' => $c->allowsNull(),
+                $prefix.'isBuiltin' => $c->isBuiltin(),
+            ];
+        } elseif ($c instanceof \ReflectionUnionType || $c instanceof \ReflectionIntersectionType) {
+            $a[$prefix.'allowsNull'] = $c->allowsNull();
+            self::addMap($a, $c, [
+                'types' => 'getTypes',
+            ]);
+        } else {
+            $a[$prefix.'allowsNull'] = $c->allowsNull();
+        }
+
+        return $a;
+    }
+
+    public static function castAttribute(\ReflectionAttribute $c, array $a, Stub $stub, bool $isNested)
+    {
+        self::addMap($a, $c, [
+            'name' => 'getName',
+            'arguments' => 'getArguments',
+        ]);
+
+        return $a;
+    }
+
+    public static function castReflectionGenerator(\ReflectionGenerator $c, array $a, Stub $stub, bool $isNested)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        if ($c->getThis()) {
+            $a[$prefix.'this'] = new CutStub($c->getThis());
+        }
+        $function = $c->getFunction();
+        $frame = [
+            'class' => $function->class ?? null,
+            'type' => isset($function->class) ? ($function->isStatic() ? '::' : '->') : null,
+            'function' => $function->name,
+            'file' => $c->getExecutingFile(),
+            'line' => $c->getExecutingLine(),
+        ];
+        if ($trace = $c->getTrace(\DEBUG_BACKTRACE_IGNORE_ARGS)) {
+            $function = new \ReflectionGenerator($c->getExecutingGenerator());
+            array_unshift($trace, [
+                'function' => 'yield',
+                'file' => $function->getExecutingFile(),
+                'line' => $function->getExecutingLine() - 1,
+            ]);
+            $trace[] = $frame;
+            $a[$prefix.'trace'] = new TraceStub($trace, false, 0, -1, -1);
+        } else {
+            $function = new FrameStub($frame, false, true);
+            $function = ExceptionCaster::castFrameStub($function, [], $function, true);
+            $a[$prefix.'executing'] = $function[$prefix.'src'];
+        }
+
+        $a[Caster::PREFIX_VIRTUAL.'closed'] = false;
+
+        return $a;
+    }
+
+    public static function castClass(\ReflectionClass $c, array $a, Stub $stub, bool $isNested, int $filter = 0)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        if ($n = \Reflection::getModifierNames($c->getModifiers())) {
+            $a[$prefix.'modifiers'] = implode(' ', $n);
+        }
+
+        self::addMap($a, $c, [
+            'extends' => 'getParentClass',
+            'implements' => 'getInterfaceNames',
+            'constants' => 'getReflectionConstants',
+        ]);
+
+        foreach ($c->getProperties() as $n) {
+            $a[$prefix.'properties'][$n->name] = $n;
+        }
+
+        foreach ($c->getMethods() as $n) {
+            $a[$prefix.'methods'][$n->name] = $n;
+        }
+
+        self::addAttributes($a, $c, $prefix);
+
+        if (!($filter & Caster::EXCLUDE_VERBOSE) && !$isNested) {
+            self::addExtra($a, $c);
+        }
+
+        return $a;
+    }
+
+    public static function castFunctionAbstract(\ReflectionFunctionAbstract $c, array $a, Stub $stub, bool $isNested, int $filter = 0)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        self::addMap($a, $c, [
+            'returnsReference' => 'returnsReference',
+            'returnType' => 'getReturnType',
+            'class' => 'getClosureScopeClass',
+            'this' => 'getClosureThis',
+        ]);
+
+        if (isset($a[$prefix.'returnType'])) {
+            $v = $a[$prefix.'returnType'];
+            $v = $v instanceof \ReflectionNamedType ? $v->getName() : (string) $v;
+            $a[$prefix.'returnType'] = new ClassStub($a[$prefix.'returnType'] instanceof \ReflectionNamedType && $a[$prefix.'returnType']->allowsNull() && 'mixed' !== $v ? '?'.$v : $v, [class_exists($v, false) || interface_exists($v, false) || trait_exists($v, false) ? $v : '', '']);
+        }
+        if (isset($a[$prefix.'class'])) {
+            $a[$prefix.'class'] = new ClassStub($a[$prefix.'class']);
+        }
+        if (isset($a[$prefix.'this'])) {
+            $a[$prefix.'this'] = new CutStub($a[$prefix.'this']);
+        }
+
+        foreach ($c->getParameters() as $v) {
+            $k = '$'.$v->name;
+            if ($v->isVariadic()) {
+                $k = '...'.$k;
+            }
+            if ($v->isPassedByReference()) {
+                $k = '&'.$k;
+            }
+            $a[$prefix.'parameters'][$k] = $v;
+        }
+        if (isset($a[$prefix.'parameters'])) {
+            $a[$prefix.'parameters'] = new EnumStub($a[$prefix.'parameters']);
+        }
+
+        self::addAttributes($a, $c, $prefix);
+
+        if (!($filter & Caster::EXCLUDE_VERBOSE) && $v = $c->getStaticVariables()) {
+            foreach ($v as $k => &$v) {
+                if (\is_object($v)) {
+                    $a[$prefix.'use']['$'.$k] = new CutStub($v);
+                } else {
+                    $a[$prefix.'use']['$'.$k] = &$v;
+                }
+            }
+            unset($v);
+            $a[$prefix.'use'] = new EnumStub($a[$prefix.'use']);
+        }
+
+        if (!($filter & Caster::EXCLUDE_VERBOSE) && !$isNested) {
+            self::addExtra($a, $c);
+        }
+
+        return $a;
+    }
+
+    public static function castClassConstant(\ReflectionClassConstant $c, array $a, Stub $stub, bool $isNested)
+    {
+        $a[Caster::PREFIX_VIRTUAL.'modifiers'] = implode(' ', \Reflection::getModifierNames($c->getModifiers()));
+        $a[Caster::PREFIX_VIRTUAL.'value'] = $c->getValue();
+
+        self::addAttributes($a, $c);
+
+        return $a;
+    }
+
+    public static function castMethod(\ReflectionMethod $c, array $a, Stub $stub, bool $isNested)
+    {
+        $a[Caster::PREFIX_VIRTUAL.'modifiers'] = implode(' ', \Reflection::getModifierNames($c->getModifiers()));
+
+        return $a;
+    }
+
+    public static function castParameter(\ReflectionParameter $c, array $a, Stub $stub, bool $isNested)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        self::addMap($a, $c, [
+            'position' => 'getPosition',
+            'isVariadic' => 'isVariadic',
+            'byReference' => 'isPassedByReference',
+            'allowsNull' => 'allowsNull',
+        ]);
+
+        self::addAttributes($a, $c, $prefix);
+
+        if ($v = $c->getType()) {
+            $a[$prefix.'typeHint'] = $v instanceof \ReflectionNamedType ? $v->getName() : (string) $v;
+        }
+
+        if (isset($a[$prefix.'typeHint'])) {
+            $v = $a[$prefix.'typeHint'];
+            $a[$prefix.'typeHint'] = new ClassStub($v, [class_exists($v, false) || interface_exists($v, false) || trait_exists($v, false) ? $v : '', '']);
+        } else {
+            unset($a[$prefix.'allowsNull']);
+        }
+
+        try {
+            $a[$prefix.'default'] = $v = $c->getDefaultValue();
+            if ($c->isDefaultValueConstant()) {
+                $a[$prefix.'default'] = new ConstStub($c->getDefaultValueConstantName(), $v);
+            }
+            if (null === $v) {
+                unset($a[$prefix.'allowsNull']);
+            }
+        } catch (\ReflectionException $e) {
+        }
+
+        return $a;
+    }
+
+    public static function castProperty(\ReflectionProperty $c, array $a, Stub $stub, bool $isNested)
+    {
+        $a[Caster::PREFIX_VIRTUAL.'modifiers'] = implode(' ', \Reflection::getModifierNames($c->getModifiers()));
+
+        self::addAttributes($a, $c);
+        self::addExtra($a, $c);
+
+        return $a;
+    }
+
+    public static function castReference(\ReflectionReference $c, array $a, Stub $stub, bool $isNested)
+    {
+        $a[Caster::PREFIX_VIRTUAL.'id'] = $c->getId();
+
+        return $a;
+    }
+
+    public static function castExtension(\ReflectionExtension $c, array $a, Stub $stub, bool $isNested)
+    {
+        self::addMap($a, $c, [
+            'version' => 'getVersion',
+            'dependencies' => 'getDependencies',
+            'iniEntries' => 'getIniEntries',
+            'isPersistent' => 'isPersistent',
+            'isTemporary' => 'isTemporary',
+            'constants' => 'getConstants',
+            'functions' => 'getFunctions',
+            'classes' => 'getClasses',
+        ]);
+
+        return $a;
+    }
+
+    public static function castZendExtension(\ReflectionZendExtension $c, array $a, Stub $stub, bool $isNested)
+    {
+        self::addMap($a, $c, [
+            'version' => 'getVersion',
+            'author' => 'getAuthor',
+            'copyright' => 'getCopyright',
+            'url' => 'getURL',
+        ]);
+
+        return $a;
+    }
+
+    public static function getSignature(array $a)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+        $signature = '';
+
+        if (isset($a[$prefix.'parameters'])) {
+            foreach ($a[$prefix.'parameters']->value as $k => $param) {
+                $signature .= ', ';
+                if ($type = $param->getType()) {
+                    if (!$type instanceof \ReflectionNamedType) {
+                        $signature .= $type.' ';
+                    } else {
+                        if (!$param->isOptional() && $param->allowsNull() && 'mixed' !== $type->getName()) {
+                            $signature .= '?';
+                        }
+                        $signature .= substr(strrchr('\\'.$type->getName(), '\\'), 1).' ';
+                    }
+                }
+                $signature .= $k;
+
+                if (!$param->isDefaultValueAvailable()) {
+                    continue;
+                }
+                $v = $param->getDefaultValue();
+                $signature .= ' = ';
+
+                if ($param->isDefaultValueConstant()) {
+                    $signature .= substr(strrchr('\\'.$param->getDefaultValueConstantName(), '\\'), 1);
+                } elseif (null === $v) {
+                    $signature .= 'null';
+                } elseif (\is_array($v)) {
+                    $signature .= $v ? '[…'.\count($v).']' : '[]';
+                } elseif (\is_string($v)) {
+                    $signature .= 10 > \strlen($v) && !str_contains($v, '\\') ? "'{$v}'" : "'…".\strlen($v)."'";
+                } elseif (\is_bool($v)) {
+                    $signature .= $v ? 'true' : 'false';
+                } else {
+                    $signature .= $v;
+                }
+            }
+        }
+        $signature = (empty($a[$prefix.'returnsReference']) ? '' : '&').'('.substr($signature, 2).')';
+
+        if (isset($a[$prefix.'returnType'])) {
+            $signature .= ': '.substr(strrchr('\\'.$a[$prefix.'returnType'], '\\'), 1);
+        }
+
+        return $signature;
+    }
+
+    private static function addExtra(array &$a, \Reflector $c)
+    {
+        $x = isset($a[Caster::PREFIX_VIRTUAL.'extra']) ? $a[Caster::PREFIX_VIRTUAL.'extra']->value : [];
+
+        if (method_exists($c, 'getFileName') && $m = $c->getFileName()) {
+            $x['file'] = new LinkStub($m, $c->getStartLine());
+            $x['line'] = $c->getStartLine().' to '.$c->getEndLine();
+        }
+
+        self::addMap($x, $c, self::EXTRA_MAP, '');
+
+        if ($x) {
+            $a[Caster::PREFIX_VIRTUAL.'extra'] = new EnumStub($x);
+        }
+    }
+
+    private static function addMap(array &$a, object $c, array $map, string $prefix = Caster::PREFIX_VIRTUAL)
+    {
+        foreach ($map as $k => $m) {
+            if (\PHP_VERSION_ID >= 80000 && 'isDisabled' === $k) {
+                continue;
+            }
+
+            if (method_exists($c, $m) && false !== ($m = $c->$m()) && null !== $m) {
+                $a[$prefix.$k] = $m instanceof \Reflector ? $m->name : $m;
+            }
+        }
+    }
+
+    private static function addAttributes(array &$a, \Reflector $c, string $prefix = Caster::PREFIX_VIRTUAL): void
+    {
+        if (\PHP_VERSION_ID >= 80000) {
+            foreach ($c->getAttributes() as $n) {
+                $a[$prefix.'attributes'][] = $n;
+            }
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ResourceCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ResourceCaster.php
new file mode 100644
index 0000000..6ae9085
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/ResourceCaster.php
@@ -0,0 +1,105 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Casts common resource types to array representation.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final
+ */
+class ResourceCaster
+{
+    /**
+     * @param \CurlHandle|resource $h
+     *
+     * @return array
+     */
+    public static function castCurl($h, array $a, Stub $stub, bool $isNested)
+    {
+        return curl_getinfo($h);
+    }
+
+    public static function castDba($dba, array $a, Stub $stub, bool $isNested)
+    {
+        $list = dba_list();
+        $a['file'] = $list[(int) $dba];
+
+        return $a;
+    }
+
+    public static function castProcess($process, array $a, Stub $stub, bool $isNested)
+    {
+        return proc_get_status($process);
+    }
+
+    public static function castStream($stream, array $a, Stub $stub, bool $isNested)
+    {
+        $a = stream_get_meta_data($stream) + static::castStreamContext($stream, $a, $stub, $isNested);
+        if ($a['uri'] ?? false) {
+            $a['uri'] = new LinkStub($a['uri']);
+        }
+
+        return $a;
+    }
+
+    public static function castStreamContext($stream, array $a, Stub $stub, bool $isNested)
+    {
+        return @stream_context_get_params($stream) ?: $a;
+    }
+
+    public static function castGd($gd, array $a, Stub $stub, bool $isNested)
+    {
+        $a['size'] = imagesx($gd).'x'.imagesy($gd);
+        $a['trueColor'] = imageistruecolor($gd);
+
+        return $a;
+    }
+
+    public static function castMysqlLink($h, array $a, Stub $stub, bool $isNested)
+    {
+        $a['host'] = mysql_get_host_info($h);
+        $a['protocol'] = mysql_get_proto_info($h);
+        $a['server'] = mysql_get_server_info($h);
+
+        return $a;
+    }
+
+    public static function castOpensslX509($h, array $a, Stub $stub, bool $isNested)
+    {
+        $stub->cut = -1;
+        $info = openssl_x509_parse($h, false);
+
+        $pin = openssl_pkey_get_public($h);
+        $pin = openssl_pkey_get_details($pin)['key'];
+        $pin = \array_slice(explode("\n", $pin), 1, -2);
+        $pin = base64_decode(implode('', $pin));
+        $pin = base64_encode(hash('sha256', $pin, true));
+
+        $a += [
+            'subject' => new EnumStub(array_intersect_key($info['subject'], ['organizationName' => true, 'commonName' => true])),
+            'issuer' => new EnumStub(array_intersect_key($info['issuer'], ['organizationName' => true, 'commonName' => true])),
+            'expiry' => new ConstStub(date(\DateTime::ISO8601, $info['validTo_time_t']), $info['validTo_time_t']),
+            'fingerprint' => new EnumStub([
+                'md5' => new ConstStub(wordwrap(strtoupper(openssl_x509_fingerprint($h, 'md5')), 2, ':', true)),
+                'sha1' => new ConstStub(wordwrap(strtoupper(openssl_x509_fingerprint($h, 'sha1')), 2, ':', true)),
+                'sha256' => new ConstStub(wordwrap(strtoupper(openssl_x509_fingerprint($h, 'sha256')), 2, ':', true)),
+                'pin-sha256' => new ConstStub($pin),
+            ]),
+        ];
+
+        return $a;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/SplCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/SplCaster.php
new file mode 100644
index 0000000..07f4451
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/SplCaster.php
@@ -0,0 +1,245 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Casts SPL related classes to array representation.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final
+ */
+class SplCaster
+{
+    private const SPL_FILE_OBJECT_FLAGS = [
+        \SplFileObject::DROP_NEW_LINE => 'DROP_NEW_LINE',
+        \SplFileObject::READ_AHEAD => 'READ_AHEAD',
+        \SplFileObject::SKIP_EMPTY => 'SKIP_EMPTY',
+        \SplFileObject::READ_CSV => 'READ_CSV',
+    ];
+
+    public static function castArrayObject(\ArrayObject $c, array $a, Stub $stub, bool $isNested)
+    {
+        return self::castSplArray($c, $a, $stub, $isNested);
+    }
+
+    public static function castArrayIterator(\ArrayIterator $c, array $a, Stub $stub, bool $isNested)
+    {
+        return self::castSplArray($c, $a, $stub, $isNested);
+    }
+
+    public static function castHeap(\Iterator $c, array $a, Stub $stub, bool $isNested)
+    {
+        $a += [
+            Caster::PREFIX_VIRTUAL.'heap' => iterator_to_array(clone $c),
+        ];
+
+        return $a;
+    }
+
+    public static function castDoublyLinkedList(\SplDoublyLinkedList $c, array $a, Stub $stub, bool $isNested)
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+        $mode = $c->getIteratorMode();
+        $c->setIteratorMode(\SplDoublyLinkedList::IT_MODE_KEEP | $mode & ~\SplDoublyLinkedList::IT_MODE_DELETE);
+
+        $a += [
+            $prefix.'mode' => new ConstStub((($mode & \SplDoublyLinkedList::IT_MODE_LIFO) ? 'IT_MODE_LIFO' : 'IT_MODE_FIFO').' | '.(($mode & \SplDoublyLinkedList::IT_MODE_DELETE) ? 'IT_MODE_DELETE' : 'IT_MODE_KEEP'), $mode),
+            $prefix.'dllist' => iterator_to_array($c),
+        ];
+        $c->setIteratorMode($mode);
+
+        return $a;
+    }
+
+    public static function castFileInfo(\SplFileInfo $c, array $a, Stub $stub, bool $isNested)
+    {
+        static $map = [
+            'path' => 'getPath',
+            'filename' => 'getFilename',
+            'basename' => 'getBasename',
+            'pathname' => 'getPathname',
+            'extension' => 'getExtension',
+            'realPath' => 'getRealPath',
+            'aTime' => 'getATime',
+            'mTime' => 'getMTime',
+            'cTime' => 'getCTime',
+            'inode' => 'getInode',
+            'size' => 'getSize',
+            'perms' => 'getPerms',
+            'owner' => 'getOwner',
+            'group' => 'getGroup',
+            'type' => 'getType',
+            'writable' => 'isWritable',
+            'readable' => 'isReadable',
+            'executable' => 'isExecutable',
+            'file' => 'isFile',
+            'dir' => 'isDir',
+            'link' => 'isLink',
+            'linkTarget' => 'getLinkTarget',
+        ];
+
+        $prefix = Caster::PREFIX_VIRTUAL;
+        unset($a["\0SplFileInfo\0fileName"]);
+        unset($a["\0SplFileInfo\0pathName"]);
+
+        if (\PHP_VERSION_ID < 80000) {
+            if (false === $c->getPathname()) {
+                $a[$prefix.'⚠'] = 'The parent constructor was not called: the object is in an invalid state';
+
+                return $a;
+            }
+        } else {
+            try {
+                $c->isReadable();
+            } catch (\RuntimeException $e) {
+                if ('Object not initialized' !== $e->getMessage()) {
+                    throw $e;
+                }
+
+                $a[$prefix.'⚠'] = 'The parent constructor was not called: the object is in an invalid state';
+
+                return $a;
+            } catch (\Error $e) {
+                if ('Object not initialized' !== $e->getMessage()) {
+                    throw $e;
+                }
+
+                $a[$prefix.'⚠'] = 'The parent constructor was not called: the object is in an invalid state';
+
+                return $a;
+            }
+        }
+
+        foreach ($map as $key => $accessor) {
+            try {
+                $a[$prefix.$key] = $c->$accessor();
+            } catch (\Exception $e) {
+            }
+        }
+
+        if ($a[$prefix.'realPath'] ?? false) {
+            $a[$prefix.'realPath'] = new LinkStub($a[$prefix.'realPath']);
+        }
+
+        if (isset($a[$prefix.'perms'])) {
+            $a[$prefix.'perms'] = new ConstStub(sprintf('0%o', $a[$prefix.'perms']), $a[$prefix.'perms']);
+        }
+
+        static $mapDate = ['aTime', 'mTime', 'cTime'];
+        foreach ($mapDate as $key) {
+            if (isset($a[$prefix.$key])) {
+                $a[$prefix.$key] = new ConstStub(date('Y-m-d H:i:s', $a[$prefix.$key]), $a[$prefix.$key]);
+            }
+        }
+
+        return $a;
+    }
+
+    public static function castFileObject(\SplFileObject $c, array $a, Stub $stub, bool $isNested)
+    {
+        static $map = [
+            'csvControl' => 'getCsvControl',
+            'flags' => 'getFlags',
+            'maxLineLen' => 'getMaxLineLen',
+            'fstat' => 'fstat',
+            'eof' => 'eof',
+            'key' => 'key',
+        ];
+
+        $prefix = Caster::PREFIX_VIRTUAL;
+
+        foreach ($map as $key => $accessor) {
+            try {
+                $a[$prefix.$key] = $c->$accessor();
+            } catch (\Exception $e) {
+            }
+        }
+
+        if (isset($a[$prefix.'flags'])) {
+            $flagsArray = [];
+            foreach (self::SPL_FILE_OBJECT_FLAGS as $value => $name) {
+                if ($a[$prefix.'flags'] & $value) {
+                    $flagsArray[] = $name;
+                }
+            }
+            $a[$prefix.'flags'] = new ConstStub(implode('|', $flagsArray), $a[$prefix.'flags']);
+        }
+
+        if (isset($a[$prefix.'fstat'])) {
+            $a[$prefix.'fstat'] = new CutArrayStub($a[$prefix.'fstat'], ['dev', 'ino', 'nlink', 'rdev', 'blksize', 'blocks']);
+        }
+
+        return $a;
+    }
+
+    public static function castObjectStorage(\SplObjectStorage $c, array $a, Stub $stub, bool $isNested)
+    {
+        $storage = [];
+        unset($a[Caster::PREFIX_DYNAMIC."\0gcdata"]); // Don't hit https://bugs.php.net/65967
+        unset($a["\0SplObjectStorage\0storage"]);
+
+        $clone = clone $c;
+        foreach ($clone as $obj) {
+            $storage[] = [
+                'object' => $obj,
+                'info' => $clone->getInfo(),
+             ];
+        }
+
+        $a += [
+            Caster::PREFIX_VIRTUAL.'storage' => $storage,
+        ];
+
+        return $a;
+    }
+
+    public static function castOuterIterator(\OuterIterator $c, array $a, Stub $stub, bool $isNested)
+    {
+        $a[Caster::PREFIX_VIRTUAL.'innerIterator'] = $c->getInnerIterator();
+
+        return $a;
+    }
+
+    public static function castWeakReference(\WeakReference $c, array $a, Stub $stub, bool $isNested)
+    {
+        $a[Caster::PREFIX_VIRTUAL.'object'] = $c->get();
+
+        return $a;
+    }
+
+    private static function castSplArray($c, array $a, Stub $stub, bool $isNested): array
+    {
+        $prefix = Caster::PREFIX_VIRTUAL;
+        $flags = $c->getFlags();
+
+        if (!($flags & \ArrayObject::STD_PROP_LIST)) {
+            $c->setFlags(\ArrayObject::STD_PROP_LIST);
+            $a = Caster::castObject($c, \get_class($c), method_exists($c, '__debugInfo'), $stub->class);
+            $c->setFlags($flags);
+        }
+        if (\PHP_VERSION_ID < 70400) {
+            $a[$prefix.'storage'] = $c->getArrayCopy();
+        }
+        $a += [
+            $prefix.'flag::STD_PROP_LIST' => (bool) ($flags & \ArrayObject::STD_PROP_LIST),
+            $prefix.'flag::ARRAY_AS_PROPS' => (bool) ($flags & \ArrayObject::ARRAY_AS_PROPS),
+        ];
+        if ($c instanceof \ArrayObject) {
+            $a[$prefix.'iteratorClass'] = new ClassStub($c->getIteratorClass());
+        }
+
+        return $a;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/StubCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/StubCaster.php
new file mode 100644
index 0000000..32ead7c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/StubCaster.php
@@ -0,0 +1,84 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Casts a caster's Stub.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final
+ */
+class StubCaster
+{
+    public static function castStub(Stub $c, array $a, Stub $stub, bool $isNested)
+    {
+        if ($isNested) {
+            $stub->type = $c->type;
+            $stub->class = $c->class;
+            $stub->value = $c->value;
+            $stub->handle = $c->handle;
+            $stub->cut = $c->cut;
+            $stub->attr = $c->attr;
+
+            if (Stub::TYPE_REF === $c->type && !$c->class && \is_string($c->value) && !preg_match('//u', $c->value)) {
+                $stub->type = Stub::TYPE_STRING;
+                $stub->class = Stub::STRING_BINARY;
+            }
+
+            $a = [];
+        }
+
+        return $a;
+    }
+
+    public static function castCutArray(CutArrayStub $c, array $a, Stub $stub, bool $isNested)
+    {
+        return $isNested ? $c->preservedSubset : $a;
+    }
+
+    public static function cutInternals($obj, array $a, Stub $stub, bool $isNested)
+    {
+        if ($isNested) {
+            $stub->cut += \count($a);
+
+            return [];
+        }
+
+        return $a;
+    }
+
+    public static function castEnum(EnumStub $c, array $a, Stub $stub, bool $isNested)
+    {
+        if ($isNested) {
+            $stub->class = $c->dumpKeys ? '' : null;
+            $stub->handle = 0;
+            $stub->value = null;
+            $stub->cut = $c->cut;
+            $stub->attr = $c->attr;
+
+            $a = [];
+
+            if ($c->value) {
+                foreach (array_keys($c->value) as $k) {
+                    $keys[] = !isset($k[0]) || "\0" !== $k[0] ? Caster::PREFIX_VIRTUAL.$k : $k;
+                }
+                // Preserve references with array_combine()
+                $a = array_combine($keys, $c->value);
+            }
+        }
+
+        return $a;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/SymfonyCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/SymfonyCaster.php
new file mode 100644
index 0000000..b7e1dd4
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/SymfonyCaster.php
@@ -0,0 +1,69 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * @final
+ */
+class SymfonyCaster
+{
+    private const REQUEST_GETTERS = [
+        'pathInfo' => 'getPathInfo',
+        'requestUri' => 'getRequestUri',
+        'baseUrl' => 'getBaseUrl',
+        'basePath' => 'getBasePath',
+        'method' => 'getMethod',
+        'format' => 'getRequestFormat',
+    ];
+
+    public static function castRequest(Request $request, array $a, Stub $stub, bool $isNested)
+    {
+        $clone = null;
+
+        foreach (self::REQUEST_GETTERS as $prop => $getter) {
+            $key = Caster::PREFIX_PROTECTED.$prop;
+            if (\array_key_exists($key, $a) && null === $a[$key]) {
+                if (null === $clone) {
+                    $clone = clone $request;
+                }
+                $a[Caster::PREFIX_VIRTUAL.$prop] = $clone->{$getter}();
+            }
+        }
+
+        return $a;
+    }
+
+    public static function castHttpClient($client, array $a, Stub $stub, bool $isNested)
+    {
+        $multiKey = sprintf("\0%s\0multi", \get_class($client));
+        if (isset($a[$multiKey])) {
+            $a[$multiKey] = new CutStub($a[$multiKey]);
+        }
+
+        return $a;
+    }
+
+    public static function castHttpClientResponse($response, array $a, Stub $stub, bool $isNested)
+    {
+        $stub->cut += \count($a);
+        $a = [];
+
+        foreach ($response->getInfo() as $k => $v) {
+            $a[Caster::PREFIX_VIRTUAL.$k] = $v;
+        }
+
+        return $a;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/TraceStub.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/TraceStub.php
new file mode 100644
index 0000000..5eea1c8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/TraceStub.php
@@ -0,0 +1,36 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Represents a backtrace as returned by debug_backtrace() or Exception->getTrace().
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class TraceStub extends Stub
+{
+    public $keepArgs;
+    public $sliceOffset;
+    public $sliceLength;
+    public $numberingOffset;
+
+    public function __construct(array $trace, bool $keepArgs = true, int $sliceOffset = 0, int $sliceLength = null, int $numberingOffset = 0)
+    {
+        $this->value = $trace;
+        $this->keepArgs = $keepArgs;
+        $this->sliceOffset = $sliceOffset;
+        $this->sliceLength = $sliceLength;
+        $this->numberingOffset = $numberingOffset;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/UuidCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/UuidCaster.php
new file mode 100644
index 0000000..b102774
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/UuidCaster.php
@@ -0,0 +1,30 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Ramsey\Uuid\UuidInterface;
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * @author Grégoire Pineau <lyrixx@lyrixx.info>
+ */
+final class UuidCaster
+{
+    public static function castRamseyUuid(UuidInterface $c, array $a, Stub $stub, bool $isNested): array
+    {
+        $a += [
+            Caster::PREFIX_VIRTUAL.'uuid' => (string) $c,
+        ];
+
+        return $a;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/XmlReaderCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/XmlReaderCaster.php
new file mode 100644
index 0000000..fa0b55d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/XmlReaderCaster.php
@@ -0,0 +1,79 @@
+<?php
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Casts XmlReader class to array representation.
+ *
+ * @author Baptiste Clavié <clavie.b@gmail.com>
+ *
+ * @final
+ */
+class XmlReaderCaster
+{
+    private const NODE_TYPES = [
+        \XMLReader::NONE => 'NONE',
+        \XMLReader::ELEMENT => 'ELEMENT',
+        \XMLReader::ATTRIBUTE => 'ATTRIBUTE',
+        \XMLReader::TEXT => 'TEXT',
+        \XMLReader::CDATA => 'CDATA',
+        \XMLReader::ENTITY_REF => 'ENTITY_REF',
+        \XMLReader::ENTITY => 'ENTITY',
+        \XMLReader::PI => 'PI (Processing Instruction)',
+        \XMLReader::COMMENT => 'COMMENT',
+        \XMLReader::DOC => 'DOC',
+        \XMLReader::DOC_TYPE => 'DOC_TYPE',
+        \XMLReader::DOC_FRAGMENT => 'DOC_FRAGMENT',
+        \XMLReader::NOTATION => 'NOTATION',
+        \XMLReader::WHITESPACE => 'WHITESPACE',
+        \XMLReader::SIGNIFICANT_WHITESPACE => 'SIGNIFICANT_WHITESPACE',
+        \XMLReader::END_ELEMENT => 'END_ELEMENT',
+        \XMLReader::END_ENTITY => 'END_ENTITY',
+        \XMLReader::XML_DECLARATION => 'XML_DECLARATION',
+    ];
+
+    public static function castXmlReader(\XMLReader $reader, array $a, Stub $stub, bool $isNested)
+    {
+        $props = Caster::PREFIX_VIRTUAL.'parserProperties';
+        $info = [
+            'localName' => $reader->localName,
+            'prefix' => $reader->prefix,
+            'nodeType' => new ConstStub(self::NODE_TYPES[$reader->nodeType], $reader->nodeType),
+            'depth' => $reader->depth,
+            'isDefault' => $reader->isDefault,
+            'isEmptyElement' => \XMLReader::NONE === $reader->nodeType ? null : $reader->isEmptyElement,
+            'xmlLang' => $reader->xmlLang,
+            'attributeCount' => $reader->attributeCount,
+            'value' => $reader->value,
+            'namespaceURI' => $reader->namespaceURI,
+            'baseURI' => $reader->baseURI ? new LinkStub($reader->baseURI) : $reader->baseURI,
+            $props => [
+                'LOADDTD' => $reader->getParserProperty(\XMLReader::LOADDTD),
+                'DEFAULTATTRS' => $reader->getParserProperty(\XMLReader::DEFAULTATTRS),
+                'VALIDATE' => $reader->getParserProperty(\XMLReader::VALIDATE),
+                'SUBST_ENTITIES' => $reader->getParserProperty(\XMLReader::SUBST_ENTITIES),
+            ],
+        ];
+
+        if ($info[$props] = Caster::filter($info[$props], Caster::EXCLUDE_EMPTY, [], $count)) {
+            $info[$props] = new EnumStub($info[$props]);
+            $info[$props]->cut = $count;
+        }
+
+        $info = Caster::filter($info, Caster::EXCLUDE_EMPTY, [], $count);
+        // +2 because hasValue and hasAttributes are always filtered
+        $stub->cut += $count + 2;
+
+        return $a + $info;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/XmlResourceCaster.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/XmlResourceCaster.php
new file mode 100644
index 0000000..ba55fce
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Caster/XmlResourceCaster.php
@@ -0,0 +1,63 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Caster;
+
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * Casts XML resources to array representation.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ *
+ * @final
+ */
+class XmlResourceCaster
+{
+    private const XML_ERRORS = [
+        \XML_ERROR_NONE => 'XML_ERROR_NONE',
+        \XML_ERROR_NO_MEMORY => 'XML_ERROR_NO_MEMORY',
+        \XML_ERROR_SYNTAX => 'XML_ERROR_SYNTAX',
+        \XML_ERROR_NO_ELEMENTS => 'XML_ERROR_NO_ELEMENTS',
+        \XML_ERROR_INVALID_TOKEN => 'XML_ERROR_INVALID_TOKEN',
+        \XML_ERROR_UNCLOSED_TOKEN => 'XML_ERROR_UNCLOSED_TOKEN',
+        \XML_ERROR_PARTIAL_CHAR => 'XML_ERROR_PARTIAL_CHAR',
+        \XML_ERROR_TAG_MISMATCH => 'XML_ERROR_TAG_MISMATCH',
+        \XML_ERROR_DUPLICATE_ATTRIBUTE => 'XML_ERROR_DUPLICATE_ATTRIBUTE',
+        \XML_ERROR_JUNK_AFTER_DOC_ELEMENT => 'XML_ERROR_JUNK_AFTER_DOC_ELEMENT',
+        \XML_ERROR_PARAM_ENTITY_REF => 'XML_ERROR_PARAM_ENTITY_REF',
+        \XML_ERROR_UNDEFINED_ENTITY => 'XML_ERROR_UNDEFINED_ENTITY',
+        \XML_ERROR_RECURSIVE_ENTITY_REF => 'XML_ERROR_RECURSIVE_ENTITY_REF',
+        \XML_ERROR_ASYNC_ENTITY => 'XML_ERROR_ASYNC_ENTITY',
+        \XML_ERROR_BAD_CHAR_REF => 'XML_ERROR_BAD_CHAR_REF',
+        \XML_ERROR_BINARY_ENTITY_REF => 'XML_ERROR_BINARY_ENTITY_REF',
+        \XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF => 'XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF',
+        \XML_ERROR_MISPLACED_XML_PI => 'XML_ERROR_MISPLACED_XML_PI',
+        \XML_ERROR_UNKNOWN_ENCODING => 'XML_ERROR_UNKNOWN_ENCODING',
+        \XML_ERROR_INCORRECT_ENCODING => 'XML_ERROR_INCORRECT_ENCODING',
+        \XML_ERROR_UNCLOSED_CDATA_SECTION => 'XML_ERROR_UNCLOSED_CDATA_SECTION',
+        \XML_ERROR_EXTERNAL_ENTITY_HANDLING => 'XML_ERROR_EXTERNAL_ENTITY_HANDLING',
+    ];
+
+    public static function castXml($h, array $a, Stub $stub, bool $isNested)
+    {
+        $a['current_byte_index'] = xml_get_current_byte_index($h);
+        $a['current_column_number'] = xml_get_current_column_number($h);
+        $a['current_line_number'] = xml_get_current_line_number($h);
+        $a['error_code'] = xml_get_error_code($h);
+
+        if (isset(self::XML_ERRORS[$a['error_code']])) {
+            $a['error_code'] = new ConstStub(self::XML_ERRORS[$a['error_code']], $a['error_code']);
+        }
+
+        return $a;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Cloner/AbstractCloner.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Cloner/AbstractCloner.php
new file mode 100644
index 0000000..ac55da5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Cloner/AbstractCloner.php
@@ -0,0 +1,384 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Cloner;
+
+use Symfony\Component\VarDumper\Caster\Caster;
+use Symfony\Component\VarDumper\Exception\ThrowingCasterException;
+
+/**
+ * AbstractCloner implements a generic caster mechanism for objects and resources.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+abstract class AbstractCloner implements ClonerInterface
+{
+    public static $defaultCasters = [
+        '__PHP_Incomplete_Class' => ['Symfony\Component\VarDumper\Caster\Caster', 'castPhpIncompleteClass'],
+
+        'Symfony\Component\VarDumper\Caster\CutStub' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'castStub'],
+        'Symfony\Component\VarDumper\Caster\CutArrayStub' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'castCutArray'],
+        'Symfony\Component\VarDumper\Caster\ConstStub' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'castStub'],
+        'Symfony\Component\VarDumper\Caster\EnumStub' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'castEnum'],
+
+        'Closure' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castClosure'],
+        'Generator' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castGenerator'],
+        'ReflectionType' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castType'],
+        'ReflectionAttribute' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castAttribute'],
+        'ReflectionGenerator' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castReflectionGenerator'],
+        'ReflectionClass' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castClass'],
+        'ReflectionClassConstant' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castClassConstant'],
+        'ReflectionFunctionAbstract' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castFunctionAbstract'],
+        'ReflectionMethod' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castMethod'],
+        'ReflectionParameter' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castParameter'],
+        'ReflectionProperty' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castProperty'],
+        'ReflectionReference' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castReference'],
+        'ReflectionExtension' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castExtension'],
+        'ReflectionZendExtension' => ['Symfony\Component\VarDumper\Caster\ReflectionCaster', 'castZendExtension'],
+
+        'Doctrine\Common\Persistence\ObjectManager' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'],
+        'Doctrine\Common\Proxy\Proxy' => ['Symfony\Component\VarDumper\Caster\DoctrineCaster', 'castCommonProxy'],
+        'Doctrine\ORM\Proxy\Proxy' => ['Symfony\Component\VarDumper\Caster\DoctrineCaster', 'castOrmProxy'],
+        'Doctrine\ORM\PersistentCollection' => ['Symfony\Component\VarDumper\Caster\DoctrineCaster', 'castPersistentCollection'],
+        'Doctrine\Persistence\ObjectManager' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'],
+
+        'DOMException' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castException'],
+        'DOMStringList' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castLength'],
+        'DOMNameList' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castLength'],
+        'DOMImplementation' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castImplementation'],
+        'DOMImplementationList' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castLength'],
+        'DOMNode' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castNode'],
+        'DOMNameSpaceNode' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castNameSpaceNode'],
+        'DOMDocument' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castDocument'],
+        'DOMNodeList' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castLength'],
+        'DOMNamedNodeMap' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castLength'],
+        'DOMCharacterData' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castCharacterData'],
+        'DOMAttr' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castAttr'],
+        'DOMElement' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castElement'],
+        'DOMText' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castText'],
+        'DOMTypeinfo' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castTypeinfo'],
+        'DOMDomError' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castDomError'],
+        'DOMLocator' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castLocator'],
+        'DOMDocumentType' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castDocumentType'],
+        'DOMNotation' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castNotation'],
+        'DOMEntity' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castEntity'],
+        'DOMProcessingInstruction' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castProcessingInstruction'],
+        'DOMXPath' => ['Symfony\Component\VarDumper\Caster\DOMCaster', 'castXPath'],
+
+        'XMLReader' => ['Symfony\Component\VarDumper\Caster\XmlReaderCaster', 'castXmlReader'],
+
+        'ErrorException' => ['Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castErrorException'],
+        'Exception' => ['Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castException'],
+        'Error' => ['Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castError'],
+        'Symfony\Bridge\Monolog\Logger' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'],
+        'Symfony\Component\DependencyInjection\ContainerInterface' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'],
+        'Symfony\Component\EventDispatcher\EventDispatcherInterface' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'],
+        'Symfony\Component\HttpClient\CurlHttpClient' => ['Symfony\Component\VarDumper\Caster\SymfonyCaster', 'castHttpClient'],
+        'Symfony\Component\HttpClient\NativeHttpClient' => ['Symfony\Component\VarDumper\Caster\SymfonyCaster', 'castHttpClient'],
+        'Symfony\Component\HttpClient\Response\CurlResponse' => ['Symfony\Component\VarDumper\Caster\SymfonyCaster', 'castHttpClientResponse'],
+        'Symfony\Component\HttpClient\Response\NativeResponse' => ['Symfony\Component\VarDumper\Caster\SymfonyCaster', 'castHttpClientResponse'],
+        'Symfony\Component\HttpFoundation\Request' => ['Symfony\Component\VarDumper\Caster\SymfonyCaster', 'castRequest'],
+        'Symfony\Component\VarDumper\Exception\ThrowingCasterException' => ['Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castThrowingCasterException'],
+        'Symfony\Component\VarDumper\Caster\TraceStub' => ['Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castTraceStub'],
+        'Symfony\Component\VarDumper\Caster\FrameStub' => ['Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castFrameStub'],
+        'Symfony\Component\VarDumper\Cloner\AbstractCloner' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'],
+        'Symfony\Component\ErrorHandler\Exception\SilencedErrorContext' => ['Symfony\Component\VarDumper\Caster\ExceptionCaster', 'castSilencedErrorContext'],
+
+        'Imagine\Image\ImageInterface' => ['Symfony\Component\VarDumper\Caster\ImagineCaster', 'castImage'],
+
+        'Ramsey\Uuid\UuidInterface' => ['Symfony\Component\VarDumper\Caster\UuidCaster', 'castRamseyUuid'],
+
+        'ProxyManager\Proxy\ProxyInterface' => ['Symfony\Component\VarDumper\Caster\ProxyManagerCaster', 'castProxy'],
+        'PHPUnit_Framework_MockObject_MockObject' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'],
+        'PHPUnit\Framework\MockObject\MockObject' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'],
+        'PHPUnit\Framework\MockObject\Stub' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'],
+        'Prophecy\Prophecy\ProphecySubjectInterface' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'],
+        'Mockery\MockInterface' => ['Symfony\Component\VarDumper\Caster\StubCaster', 'cutInternals'],
+
+        'PDO' => ['Symfony\Component\VarDumper\Caster\PdoCaster', 'castPdo'],
+        'PDOStatement' => ['Symfony\Component\VarDumper\Caster\PdoCaster', 'castPdoStatement'],
+
+        'AMQPConnection' => ['Symfony\Component\VarDumper\Caster\AmqpCaster', 'castConnection'],
+        'AMQPChannel' => ['Symfony\Component\VarDumper\Caster\AmqpCaster', 'castChannel'],
+        'AMQPQueue' => ['Symfony\Component\VarDumper\Caster\AmqpCaster', 'castQueue'],
+        'AMQPExchange' => ['Symfony\Component\VarDumper\Caster\AmqpCaster', 'castExchange'],
+        'AMQPEnvelope' => ['Symfony\Component\VarDumper\Caster\AmqpCaster', 'castEnvelope'],
+
+        'ArrayObject' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castArrayObject'],
+        'ArrayIterator' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castArrayIterator'],
+        'SplDoublyLinkedList' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castDoublyLinkedList'],
+        'SplFileInfo' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castFileInfo'],
+        'SplFileObject' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castFileObject'],
+        'SplHeap' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castHeap'],
+        'SplObjectStorage' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castObjectStorage'],
+        'SplPriorityQueue' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castHeap'],
+        'OuterIterator' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castOuterIterator'],
+        'WeakReference' => ['Symfony\Component\VarDumper\Caster\SplCaster', 'castWeakReference'],
+
+        'Redis' => ['Symfony\Component\VarDumper\Caster\RedisCaster', 'castRedis'],
+        'RedisArray' => ['Symfony\Component\VarDumper\Caster\RedisCaster', 'castRedisArray'],
+        'RedisCluster' => ['Symfony\Component\VarDumper\Caster\RedisCaster', 'castRedisCluster'],
+
+        'DateTimeInterface' => ['Symfony\Component\VarDumper\Caster\DateCaster', 'castDateTime'],
+        'DateInterval' => ['Symfony\Component\VarDumper\Caster\DateCaster', 'castInterval'],
+        'DateTimeZone' => ['Symfony\Component\VarDumper\Caster\DateCaster', 'castTimeZone'],
+        'DatePeriod' => ['Symfony\Component\VarDumper\Caster\DateCaster', 'castPeriod'],
+
+        'GMP' => ['Symfony\Component\VarDumper\Caster\GmpCaster', 'castGmp'],
+
+        'MessageFormatter' => ['Symfony\Component\VarDumper\Caster\IntlCaster', 'castMessageFormatter'],
+        'NumberFormatter' => ['Symfony\Component\VarDumper\Caster\IntlCaster', 'castNumberFormatter'],
+        'IntlTimeZone' => ['Symfony\Component\VarDumper\Caster\IntlCaster', 'castIntlTimeZone'],
+        'IntlCalendar' => ['Symfony\Component\VarDumper\Caster\IntlCaster', 'castIntlCalendar'],
+        'IntlDateFormatter' => ['Symfony\Component\VarDumper\Caster\IntlCaster', 'castIntlDateFormatter'],
+
+        'Memcached' => ['Symfony\Component\VarDumper\Caster\MemcachedCaster', 'castMemcached'],
+
+        'Ds\Collection' => ['Symfony\Component\VarDumper\Caster\DsCaster', 'castCollection'],
+        'Ds\Map' => ['Symfony\Component\VarDumper\Caster\DsCaster', 'castMap'],
+        'Ds\Pair' => ['Symfony\Component\VarDumper\Caster\DsCaster', 'castPair'],
+        'Symfony\Component\VarDumper\Caster\DsPairStub' => ['Symfony\Component\VarDumper\Caster\DsCaster', 'castPairStub'],
+
+        'CurlHandle' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castCurl'],
+        ':curl' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castCurl'],
+
+        ':dba' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castDba'],
+        ':dba persistent' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castDba'],
+
+        'GdImage' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castGd'],
+        ':gd' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castGd'],
+
+        ':mysql link' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castMysqlLink'],
+        ':pgsql large object' => ['Symfony\Component\VarDumper\Caster\PgSqlCaster', 'castLargeObject'],
+        ':pgsql link' => ['Symfony\Component\VarDumper\Caster\PgSqlCaster', 'castLink'],
+        ':pgsql link persistent' => ['Symfony\Component\VarDumper\Caster\PgSqlCaster', 'castLink'],
+        ':pgsql result' => ['Symfony\Component\VarDumper\Caster\PgSqlCaster', 'castResult'],
+        ':process' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castProcess'],
+        ':stream' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castStream'],
+
+        'OpenSSLCertificate' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castOpensslX509'],
+        ':OpenSSL X.509' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castOpensslX509'],
+
+        ':persistent stream' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castStream'],
+        ':stream-context' => ['Symfony\Component\VarDumper\Caster\ResourceCaster', 'castStreamContext'],
+
+        'XmlParser' => ['Symfony\Component\VarDumper\Caster\XmlResourceCaster', 'castXml'],
+        ':xml' => ['Symfony\Component\VarDumper\Caster\XmlResourceCaster', 'castXml'],
+
+        'RdKafka' => ['Symfony\Component\VarDumper\Caster\RdKafkaCaster', 'castRdKafka'],
+        'RdKafka\Conf' => ['Symfony\Component\VarDumper\Caster\RdKafkaCaster', 'castConf'],
+        'RdKafka\KafkaConsumer' => ['Symfony\Component\VarDumper\Caster\RdKafkaCaster', 'castKafkaConsumer'],
+        'RdKafka\Metadata\Broker' => ['Symfony\Component\VarDumper\Caster\RdKafkaCaster', 'castBrokerMetadata'],
+        'RdKafka\Metadata\Collection' => ['Symfony\Component\VarDumper\Caster\RdKafkaCaster', 'castCollectionMetadata'],
+        'RdKafka\Metadata\Partition' => ['Symfony\Component\VarDumper\Caster\RdKafkaCaster', 'castPartitionMetadata'],
+        'RdKafka\Metadata\Topic' => ['Symfony\Component\VarDumper\Caster\RdKafkaCaster', 'castTopicMetadata'],
+        'RdKafka\Message' => ['Symfony\Component\VarDumper\Caster\RdKafkaCaster', 'castMessage'],
+        'RdKafka\Topic' => ['Symfony\Component\VarDumper\Caster\RdKafkaCaster', 'castTopic'],
+        'RdKafka\TopicPartition' => ['Symfony\Component\VarDumper\Caster\RdKafkaCaster', 'castTopicPartition'],
+        'RdKafka\TopicConf' => ['Symfony\Component\VarDumper\Caster\RdKafkaCaster', 'castTopicConf'],
+    ];
+
+    protected $maxItems = 2500;
+    protected $maxString = -1;
+    protected $minDepth = 1;
+
+    private $casters = [];
+    private $prevErrorHandler;
+    private $classInfo = [];
+    private $filter = 0;
+
+    /**
+     * @param callable[]|null $casters A map of casters
+     *
+     * @see addCasters
+     */
+    public function __construct(array $casters = null)
+    {
+        if (null === $casters) {
+            $casters = static::$defaultCasters;
+        }
+        $this->addCasters($casters);
+    }
+
+    /**
+     * Adds casters for resources and objects.
+     *
+     * Maps resources or objects types to a callback.
+     * Types are in the key, with a callable caster for value.
+     * Resource types are to be prefixed with a `:`,
+     * see e.g. static::$defaultCasters.
+     *
+     * @param callable[] $casters A map of casters
+     */
+    public function addCasters(array $casters)
+    {
+        foreach ($casters as $type => $callback) {
+            $this->casters[$type][] = $callback;
+        }
+    }
+
+    /**
+     * Sets the maximum number of items to clone past the minimum depth in nested structures.
+     */
+    public function setMaxItems(int $maxItems)
+    {
+        $this->maxItems = $maxItems;
+    }
+
+    /**
+     * Sets the maximum cloned length for strings.
+     */
+    public function setMaxString(int $maxString)
+    {
+        $this->maxString = $maxString;
+    }
+
+    /**
+     * Sets the minimum tree depth where we are guaranteed to clone all the items.  After this
+     * depth is reached, only setMaxItems items will be cloned.
+     */
+    public function setMinDepth(int $minDepth)
+    {
+        $this->minDepth = $minDepth;
+    }
+
+    /**
+     * Clones a PHP variable.
+     *
+     * @param mixed $var    Any PHP variable
+     * @param int   $filter A bit field of Caster::EXCLUDE_* constants
+     *
+     * @return Data The cloned variable represented by a Data object
+     */
+    public function cloneVar($var, int $filter = 0)
+    {
+        $this->prevErrorHandler = set_error_handler(function ($type, $msg, $file, $line, $context = []) {
+            if (\E_RECOVERABLE_ERROR === $type || \E_USER_ERROR === $type) {
+                // Cloner never dies
+                throw new \ErrorException($msg, 0, $type, $file, $line);
+            }
+
+            if ($this->prevErrorHandler) {
+                return ($this->prevErrorHandler)($type, $msg, $file, $line, $context);
+            }
+
+            return false;
+        });
+        $this->filter = $filter;
+
+        if ($gc = gc_enabled()) {
+            gc_disable();
+        }
+        try {
+            return new Data($this->doClone($var));
+        } finally {
+            if ($gc) {
+                gc_enable();
+            }
+            restore_error_handler();
+            $this->prevErrorHandler = null;
+        }
+    }
+
+    /**
+     * Effectively clones the PHP variable.
+     *
+     * @param mixed $var Any PHP variable
+     *
+     * @return array The cloned variable represented in an array
+     */
+    abstract protected function doClone($var);
+
+    /**
+     * Casts an object to an array representation.
+     *
+     * @param bool $isNested True if the object is nested in the dumped structure
+     *
+     * @return array The object casted as array
+     */
+    protected function castObject(Stub $stub, bool $isNested)
+    {
+        $obj = $stub->value;
+        $class = $stub->class;
+
+        if (\PHP_VERSION_ID < 80000 ? "\0" === ($class[15] ?? null) : str_contains($class, "@anonymous\0")) {
+            $stub->class = get_debug_type($obj);
+        }
+        if (isset($this->classInfo[$class])) {
+            [$i, $parents, $hasDebugInfo, $fileInfo] = $this->classInfo[$class];
+        } else {
+            $i = 2;
+            $parents = [$class];
+            $hasDebugInfo = method_exists($class, '__debugInfo');
+
+            foreach (class_parents($class) as $p) {
+                $parents[] = $p;
+                ++$i;
+            }
+            foreach (class_implements($class) as $p) {
+                $parents[] = $p;
+                ++$i;
+            }
+            $parents[] = '*';
+
+            $r = new \ReflectionClass($class);
+            $fileInfo = $r->isInternal() || $r->isSubclassOf(Stub::class) ? [] : [
+                'file' => $r->getFileName(),
+                'line' => $r->getStartLine(),
+            ];
+
+            $this->classInfo[$class] = [$i, $parents, $hasDebugInfo, $fileInfo];
+        }
+
+        $stub->attr += $fileInfo;
+        $a = Caster::castObject($obj, $class, $hasDebugInfo, $stub->class);
+
+        try {
+            while ($i--) {
+                if (!empty($this->casters[$p = $parents[$i]])) {
+                    foreach ($this->casters[$p] as $callback) {
+                        $a = $callback($obj, $a, $stub, $isNested, $this->filter);
+                    }
+                }
+            }
+        } catch (\Exception $e) {
+            $a = [(Stub::TYPE_OBJECT === $stub->type ? Caster::PREFIX_VIRTUAL : '').'⚠' => new ThrowingCasterException($e)] + $a;
+        }
+
+        return $a;
+    }
+
+    /**
+     * Casts a resource to an array representation.
+     *
+     * @param bool $isNested True if the object is nested in the dumped structure
+     *
+     * @return array The resource casted as array
+     */
+    protected function castResource(Stub $stub, bool $isNested)
+    {
+        $a = [];
+        $res = $stub->value;
+        $type = $stub->class;
+
+        try {
+            if (!empty($this->casters[':'.$type])) {
+                foreach ($this->casters[':'.$type] as $callback) {
+                    $a = $callback($res, $a, $stub, $isNested, $this->filter);
+                }
+            }
+        } catch (\Exception $e) {
+            $a = [(Stub::TYPE_OBJECT === $stub->type ? Caster::PREFIX_VIRTUAL : '').'⚠' => new ThrowingCasterException($e)] + $a;
+        }
+
+        return $a;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Cloner/ClonerInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Cloner/ClonerInterface.php
new file mode 100644
index 0000000..7ed287a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Cloner/ClonerInterface.php
@@ -0,0 +1,27 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Cloner;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+interface ClonerInterface
+{
+    /**
+     * Clones a PHP variable.
+     *
+     * @param mixed $var Any PHP variable
+     *
+     * @return Data The cloned variable represented by a Data object
+     */
+    public function cloneVar($var);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Cloner/Cursor.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Cloner/Cursor.php
new file mode 100644
index 0000000..1fd796d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Cloner/Cursor.php
@@ -0,0 +1,43 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Cloner;
+
+/**
+ * Represents the current state of a dumper while dumping.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class Cursor
+{
+    public const HASH_INDEXED = Stub::ARRAY_INDEXED;
+    public const HASH_ASSOC = Stub::ARRAY_ASSOC;
+    public const HASH_OBJECT = Stub::TYPE_OBJECT;
+    public const HASH_RESOURCE = Stub::TYPE_RESOURCE;
+
+    public $depth = 0;
+    public $refIndex = 0;
+    public $softRefTo = 0;
+    public $softRefCount = 0;
+    public $softRefHandle = 0;
+    public $hardRefTo = 0;
+    public $hardRefCount = 0;
+    public $hardRefHandle = 0;
+    public $hashType;
+    public $hashKey;
+    public $hashKeyIsBinary;
+    public $hashIndex = 0;
+    public $hashLength = 0;
+    public $hashCut = 0;
+    public $stop = false;
+    public $attr = [];
+    public $skipChildren = false;
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Cloner/Data.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Cloner/Data.php
new file mode 100644
index 0000000..c868862
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Cloner/Data.php
@@ -0,0 +1,460 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Cloner;
+
+use Symfony\Component\VarDumper\Caster\Caster;
+use Symfony\Component\VarDumper\Dumper\ContextProvider\SourceContextProvider;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class Data implements \ArrayAccess, \Countable, \IteratorAggregate
+{
+    private $data;
+    private $position = 0;
+    private $key = 0;
+    private $maxDepth = 20;
+    private $maxItemsPerDepth = -1;
+    private $useRefHandles = -1;
+    private $context = [];
+
+    /**
+     * @param array $data An array as returned by ClonerInterface::cloneVar()
+     */
+    public function __construct(array $data)
+    {
+        $this->data = $data;
+    }
+
+    /**
+     * @return string|null The type of the value
+     */
+    public function getType()
+    {
+        $item = $this->data[$this->position][$this->key];
+
+        if ($item instanceof Stub && Stub::TYPE_REF === $item->type && !$item->position) {
+            $item = $item->value;
+        }
+        if (!$item instanceof Stub) {
+            return \gettype($item);
+        }
+        if (Stub::TYPE_STRING === $item->type) {
+            return 'string';
+        }
+        if (Stub::TYPE_ARRAY === $item->type) {
+            return 'array';
+        }
+        if (Stub::TYPE_OBJECT === $item->type) {
+            return $item->class;
+        }
+        if (Stub::TYPE_RESOURCE === $item->type) {
+            return $item->class.' resource';
+        }
+
+        return null;
+    }
+
+    /**
+     * @param array|bool $recursive Whether values should be resolved recursively or not
+     *
+     * @return string|int|float|bool|array|Data[]|null A native representation of the original value
+     */
+    public function getValue($recursive = false)
+    {
+        $item = $this->data[$this->position][$this->key];
+
+        if ($item instanceof Stub && Stub::TYPE_REF === $item->type && !$item->position) {
+            $item = $item->value;
+        }
+        if (!($item = $this->getStub($item)) instanceof Stub) {
+            return $item;
+        }
+        if (Stub::TYPE_STRING === $item->type) {
+            return $item->value;
+        }
+
+        $children = $item->position ? $this->data[$item->position] : [];
+
+        foreach ($children as $k => $v) {
+            if ($recursive && !($v = $this->getStub($v)) instanceof Stub) {
+                continue;
+            }
+            $children[$k] = clone $this;
+            $children[$k]->key = $k;
+            $children[$k]->position = $item->position;
+
+            if ($recursive) {
+                if (Stub::TYPE_REF === $v->type && ($v = $this->getStub($v->value)) instanceof Stub) {
+                    $recursive = (array) $recursive;
+                    if (isset($recursive[$v->position])) {
+                        continue;
+                    }
+                    $recursive[$v->position] = true;
+                }
+                $children[$k] = $children[$k]->getValue($recursive);
+            }
+        }
+
+        return $children;
+    }
+
+    /**
+     * @return int
+     */
+    public function count()
+    {
+        return \count($this->getValue());
+    }
+
+    /**
+     * @return \Traversable
+     */
+    public function getIterator()
+    {
+        if (!\is_array($value = $this->getValue())) {
+            throw new \LogicException(sprintf('"%s" object holds non-iterable type "%s".', self::class, get_debug_type($value)));
+        }
+
+        yield from $value;
+    }
+
+    public function __get(string $key)
+    {
+        if (null !== $data = $this->seek($key)) {
+            $item = $this->getStub($data->data[$data->position][$data->key]);
+
+            return $item instanceof Stub || [] === $item ? $data : $item;
+        }
+
+        return null;
+    }
+
+    /**
+     * @return bool
+     */
+    public function __isset(string $key)
+    {
+        return null !== $this->seek($key);
+    }
+
+    /**
+     * @return bool
+     */
+    public function offsetExists($key)
+    {
+        return $this->__isset($key);
+    }
+
+    /**
+     * @return mixed
+     */
+    public function offsetGet($key)
+    {
+        return $this->__get($key);
+    }
+
+    /**
+     * @return void
+     */
+    public function offsetSet($key, $value)
+    {
+        throw new \BadMethodCallException(self::class.' objects are immutable.');
+    }
+
+    /**
+     * @return void
+     */
+    public function offsetUnset($key)
+    {
+        throw new \BadMethodCallException(self::class.' objects are immutable.');
+    }
+
+    /**
+     * @return string
+     */
+    public function __toString()
+    {
+        $value = $this->getValue();
+
+        if (!\is_array($value)) {
+            return (string) $value;
+        }
+
+        return sprintf('%s (count=%d)', $this->getType(), \count($value));
+    }
+
+    /**
+     * Returns a depth limited clone of $this.
+     *
+     * @return static
+     */
+    public function withMaxDepth(int $maxDepth)
+    {
+        $data = clone $this;
+        $data->maxDepth = (int) $maxDepth;
+
+        return $data;
+    }
+
+    /**
+     * Limits the number of elements per depth level.
+     *
+     * @return static
+     */
+    public function withMaxItemsPerDepth(int $maxItemsPerDepth)
+    {
+        $data = clone $this;
+        $data->maxItemsPerDepth = (int) $maxItemsPerDepth;
+
+        return $data;
+    }
+
+    /**
+     * Enables/disables objects' identifiers tracking.
+     *
+     * @param bool $useRefHandles False to hide global ref. handles
+     *
+     * @return static
+     */
+    public function withRefHandles(bool $useRefHandles)
+    {
+        $data = clone $this;
+        $data->useRefHandles = $useRefHandles ? -1 : 0;
+
+        return $data;
+    }
+
+    /**
+     * @return static
+     */
+    public function withContext(array $context)
+    {
+        $data = clone $this;
+        $data->context = $context;
+
+        return $data;
+    }
+
+    /**
+     * Seeks to a specific key in nested data structures.
+     *
+     * @param string|int $key The key to seek to
+     *
+     * @return static|null Null if the key is not set
+     */
+    public function seek($key)
+    {
+        $item = $this->data[$this->position][$this->key];
+
+        if ($item instanceof Stub && Stub::TYPE_REF === $item->type && !$item->position) {
+            $item = $item->value;
+        }
+        if (!($item = $this->getStub($item)) instanceof Stub || !$item->position) {
+            return null;
+        }
+        $keys = [$key];
+
+        switch ($item->type) {
+            case Stub::TYPE_OBJECT:
+                $keys[] = Caster::PREFIX_DYNAMIC.$key;
+                $keys[] = Caster::PREFIX_PROTECTED.$key;
+                $keys[] = Caster::PREFIX_VIRTUAL.$key;
+                $keys[] = "\0$item->class\0$key";
+                // no break
+            case Stub::TYPE_ARRAY:
+            case Stub::TYPE_RESOURCE:
+                break;
+            default:
+                return null;
+        }
+
+        $data = null;
+        $children = $this->data[$item->position];
+
+        foreach ($keys as $key) {
+            if (isset($children[$key]) || \array_key_exists($key, $children)) {
+                $data = clone $this;
+                $data->key = $key;
+                $data->position = $item->position;
+                break;
+            }
+        }
+
+        return $data;
+    }
+
+    /**
+     * Dumps data with a DumperInterface dumper.
+     */
+    public function dump(DumperInterface $dumper)
+    {
+        $refs = [0];
+        $cursor = new Cursor();
+
+        if ($cursor->attr = $this->context[SourceContextProvider::class] ?? []) {
+            $cursor->attr['if_links'] = true;
+            $cursor->hashType = -1;
+            $dumper->dumpScalar($cursor, 'default', '^');
+            $cursor->attr = ['if_links' => true];
+            $dumper->dumpScalar($cursor, 'default', ' ');
+            $cursor->hashType = 0;
+        }
+
+        $this->dumpItem($dumper, $cursor, $refs, $this->data[$this->position][$this->key]);
+    }
+
+    /**
+     * Depth-first dumping of items.
+     *
+     * @param mixed $item A Stub object or the original value being dumped
+     */
+    private function dumpItem(DumperInterface $dumper, Cursor $cursor, array &$refs, $item)
+    {
+        $cursor->refIndex = 0;
+        $cursor->softRefTo = $cursor->softRefHandle = $cursor->softRefCount = 0;
+        $cursor->hardRefTo = $cursor->hardRefHandle = $cursor->hardRefCount = 0;
+        $firstSeen = true;
+
+        if (!$item instanceof Stub) {
+            $cursor->attr = [];
+            $type = \gettype($item);
+            if ($item && 'array' === $type) {
+                $item = $this->getStub($item);
+            }
+        } elseif (Stub::TYPE_REF === $item->type) {
+            if ($item->handle) {
+                if (!isset($refs[$r = $item->handle - (\PHP_INT_MAX >> 1)])) {
+                    $cursor->refIndex = $refs[$r] = $cursor->refIndex ?: ++$refs[0];
+                } else {
+                    $firstSeen = false;
+                }
+                $cursor->hardRefTo = $refs[$r];
+                $cursor->hardRefHandle = $this->useRefHandles & $item->handle;
+                $cursor->hardRefCount = 0 < $item->handle ? $item->refCount : 0;
+            }
+            $cursor->attr = $item->attr;
+            $type = $item->class ?: \gettype($item->value);
+            $item = $this->getStub($item->value);
+        }
+        if ($item instanceof Stub) {
+            if ($item->refCount) {
+                if (!isset($refs[$r = $item->handle])) {
+                    $cursor->refIndex = $refs[$r] = $cursor->refIndex ?: ++$refs[0];
+                } else {
+                    $firstSeen = false;
+                }
+                $cursor->softRefTo = $refs[$r];
+            }
+            $cursor->softRefHandle = $this->useRefHandles & $item->handle;
+            $cursor->softRefCount = $item->refCount;
+            $cursor->attr = $item->attr;
+            $cut = $item->cut;
+
+            if ($item->position && $firstSeen) {
+                $children = $this->data[$item->position];
+
+                if ($cursor->stop) {
+                    if ($cut >= 0) {
+                        $cut += \count($children);
+                    }
+                    $children = [];
+                }
+            } else {
+                $children = [];
+            }
+            switch ($item->type) {
+                case Stub::TYPE_STRING:
+                    $dumper->dumpString($cursor, $item->value, Stub::STRING_BINARY === $item->class, $cut);
+                    break;
+
+                case Stub::TYPE_ARRAY:
+                    $item = clone $item;
+                    $item->type = $item->class;
+                    $item->class = $item->value;
+                    // no break
+                case Stub::TYPE_OBJECT:
+                case Stub::TYPE_RESOURCE:
+                    $withChildren = $children && $cursor->depth !== $this->maxDepth && $this->maxItemsPerDepth;
+                    $dumper->enterHash($cursor, $item->type, $item->class, $withChildren);
+                    if ($withChildren) {
+                        if ($cursor->skipChildren) {
+                            $withChildren = false;
+                            $cut = -1;
+                        } else {
+                            $cut = $this->dumpChildren($dumper, $cursor, $refs, $children, $cut, $item->type, null !== $item->class);
+                        }
+                    } elseif ($children && 0 <= $cut) {
+                        $cut += \count($children);
+                    }
+                    $cursor->skipChildren = false;
+                    $dumper->leaveHash($cursor, $item->type, $item->class, $withChildren, $cut);
+                    break;
+
+                default:
+                    throw new \RuntimeException(sprintf('Unexpected Stub type: "%s".', $item->type));
+            }
+        } elseif ('array' === $type) {
+            $dumper->enterHash($cursor, Cursor::HASH_INDEXED, 0, false);
+            $dumper->leaveHash($cursor, Cursor::HASH_INDEXED, 0, false, 0);
+        } elseif ('string' === $type) {
+            $dumper->dumpString($cursor, $item, false, 0);
+        } else {
+            $dumper->dumpScalar($cursor, $type, $item);
+        }
+    }
+
+    /**
+     * Dumps children of hash structures.
+     *
+     * @return int The final number of removed items
+     */
+    private function dumpChildren(DumperInterface $dumper, Cursor $parentCursor, array &$refs, array $children, int $hashCut, int $hashType, bool $dumpKeys): int
+    {
+        $cursor = clone $parentCursor;
+        ++$cursor->depth;
+        $cursor->hashType = $hashType;
+        $cursor->hashIndex = 0;
+        $cursor->hashLength = \count($children);
+        $cursor->hashCut = $hashCut;
+        foreach ($children as $key => $child) {
+            $cursor->hashKeyIsBinary = isset($key[0]) && !preg_match('//u', $key);
+            $cursor->hashKey = $dumpKeys ? $key : null;
+            $this->dumpItem($dumper, $cursor, $refs, $child);
+            if (++$cursor->hashIndex === $this->maxItemsPerDepth || $cursor->stop) {
+                $parentCursor->stop = true;
+
+                return $hashCut >= 0 ? $hashCut + $cursor->hashLength - $cursor->hashIndex : $hashCut;
+            }
+        }
+
+        return $hashCut;
+    }
+
+    private function getStub($item)
+    {
+        if (!$item || !\is_array($item)) {
+            return $item;
+        }
+
+        $stub = new Stub();
+        $stub->type = Stub::TYPE_ARRAY;
+        foreach ($item as $stub->class => $stub->position) {
+        }
+        if (isset($item[0])) {
+            $stub->cut = $item[0];
+        }
+        $stub->value = $stub->cut + ($stub->position ? \count($this->data[$stub->position]) : 0);
+
+        return $stub;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Cloner/DumperInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Cloner/DumperInterface.php
new file mode 100644
index 0000000..6d60b72
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Cloner/DumperInterface.php
@@ -0,0 +1,56 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Cloner;
+
+/**
+ * DumperInterface used by Data objects.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+interface DumperInterface
+{
+    /**
+     * Dumps a scalar value.
+     *
+     * @param string                $type  The PHP type of the value being dumped
+     * @param string|int|float|bool $value The scalar value being dumped
+     */
+    public function dumpScalar(Cursor $cursor, string $type, $value);
+
+    /**
+     * Dumps a string.
+     *
+     * @param string $str The string being dumped
+     * @param bool   $bin Whether $str is UTF-8 or binary encoded
+     * @param int    $cut The number of characters $str has been cut by
+     */
+    public function dumpString(Cursor $cursor, string $str, bool $bin, int $cut);
+
+    /**
+     * Dumps while entering an hash.
+     *
+     * @param int        $type     A Cursor::HASH_* const for the type of hash
+     * @param string|int $class    The object class, resource type or array count
+     * @param bool       $hasChild When the dump of the hash has child item
+     */
+    public function enterHash(Cursor $cursor, int $type, $class, bool $hasChild);
+
+    /**
+     * Dumps while leaving an hash.
+     *
+     * @param int        $type     A Cursor::HASH_* const for the type of hash
+     * @param string|int $class    The object class, resource type or array count
+     * @param bool       $hasChild When the dump of the hash has child item
+     * @param int        $cut      The number of items the hash has been cut by
+     */
+    public function leaveHash(Cursor $cursor, int $type, $class, bool $hasChild, int $cut);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Cloner/Stub.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Cloner/Stub.php
new file mode 100644
index 0000000..073c56e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Cloner/Stub.php
@@ -0,0 +1,67 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Cloner;
+
+/**
+ * Represents the main properties of a PHP variable.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class Stub
+{
+    public const TYPE_REF = 1;
+    public const TYPE_STRING = 2;
+    public const TYPE_ARRAY = 3;
+    public const TYPE_OBJECT = 4;
+    public const TYPE_RESOURCE = 5;
+
+    public const STRING_BINARY = 1;
+    public const STRING_UTF8 = 2;
+
+    public const ARRAY_ASSOC = 1;
+    public const ARRAY_INDEXED = 2;
+
+    public $type = self::TYPE_REF;
+    public $class = '';
+    public $value;
+    public $cut = 0;
+    public $handle = 0;
+    public $refCount = 0;
+    public $position = 0;
+    public $attr = [];
+
+    private static $defaultProperties = [];
+
+    /**
+     * @internal
+     */
+    public function __sleep(): array
+    {
+        $properties = [];
+
+        if (!isset(self::$defaultProperties[$c = static::class])) {
+            self::$defaultProperties[$c] = get_class_vars($c);
+
+            foreach ((new \ReflectionClass($c))->getStaticProperties() as $k => $v) {
+                unset(self::$defaultProperties[$c][$k]);
+            }
+        }
+
+        foreach (self::$defaultProperties[$c] as $k => $v) {
+            if ($this->$k !== $v) {
+                $properties[] = $k;
+            }
+        }
+
+        return $properties;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Cloner/VarCloner.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Cloner/VarCloner.php
new file mode 100644
index 0000000..90d5ac9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Cloner/VarCloner.php
@@ -0,0 +1,288 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Cloner;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class VarCloner extends AbstractCloner
+{
+    private static $gid;
+    private static $arrayCache = [];
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function doClone($var)
+    {
+        $len = 1;                       // Length of $queue
+        $pos = 0;                       // Number of cloned items past the minimum depth
+        $refsCounter = 0;               // Hard references counter
+        $queue = [[$var]];    // This breadth-first queue is the return value
+        $hardRefs = [];            // Map of original zval ids to stub objects
+        $objRefs = [];             // Map of original object handles to their stub object counterpart
+        $objects = [];             // Keep a ref to objects to ensure their handle cannot be reused while cloning
+        $resRefs = [];             // Map of original resource handles to their stub object counterpart
+        $values = [];              // Map of stub objects' ids to original values
+        $maxItems = $this->maxItems;
+        $maxString = $this->maxString;
+        $minDepth = $this->minDepth;
+        $currentDepth = 0;              // Current tree depth
+        $currentDepthFinalIndex = 0;    // Final $queue index for current tree depth
+        $minimumDepthReached = 0 === $minDepth; // Becomes true when minimum tree depth has been reached
+        $cookie = (object) [];          // Unique object used to detect hard references
+        $a = null;                      // Array cast for nested structures
+        $stub = null;                   // Stub capturing the main properties of an original item value
+                                        // or null if the original value is used directly
+
+        if (!$gid = self::$gid) {
+            $gid = self::$gid = md5(random_bytes(6)); // Unique string used to detect the special $GLOBALS variable
+        }
+        $arrayStub = new Stub();
+        $arrayStub->type = Stub::TYPE_ARRAY;
+        $fromObjCast = false;
+
+        for ($i = 0; $i < $len; ++$i) {
+            // Detect when we move on to the next tree depth
+            if ($i > $currentDepthFinalIndex) {
+                ++$currentDepth;
+                $currentDepthFinalIndex = $len - 1;
+                if ($currentDepth >= $minDepth) {
+                    $minimumDepthReached = true;
+                }
+            }
+
+            $refs = $vals = $queue[$i];
+            foreach ($vals as $k => $v) {
+                // $v is the original value or a stub object in case of hard references
+
+                if (\PHP_VERSION_ID >= 70400) {
+                    $zvalIsRef = null !== \ReflectionReference::fromArrayElement($vals, $k);
+                } else {
+                    $refs[$k] = $cookie;
+                    $zvalIsRef = $vals[$k] === $cookie;
+                }
+
+                if ($zvalIsRef) {
+                    $vals[$k] = &$stub;         // Break hard references to make $queue completely
+                    unset($stub);               // independent from the original structure
+                    if ($v instanceof Stub && isset($hardRefs[spl_object_id($v)])) {
+                        $vals[$k] = $refs[$k] = $v;
+                        if ($v->value instanceof Stub && (Stub::TYPE_OBJECT === $v->value->type || Stub::TYPE_RESOURCE === $v->value->type)) {
+                            ++$v->value->refCount;
+                        }
+                        ++$v->refCount;
+                        continue;
+                    }
+                    $refs[$k] = $vals[$k] = new Stub();
+                    $refs[$k]->value = $v;
+                    $h = spl_object_id($refs[$k]);
+                    $hardRefs[$h] = &$refs[$k];
+                    $values[$h] = $v;
+                    $vals[$k]->handle = ++$refsCounter;
+                }
+                // Create $stub when the original value $v can not be used directly
+                // If $v is a nested structure, put that structure in array $a
+                switch (true) {
+                    case null === $v:
+                    case \is_bool($v):
+                    case \is_int($v):
+                    case \is_float($v):
+                        continue 2;
+                    case \is_string($v):
+                        if ('' === $v) {
+                            continue 2;
+                        }
+                        if (!preg_match('//u', $v)) {
+                            $stub = new Stub();
+                            $stub->type = Stub::TYPE_STRING;
+                            $stub->class = Stub::STRING_BINARY;
+                            if (0 <= $maxString && 0 < $cut = \strlen($v) - $maxString) {
+                                $stub->cut = $cut;
+                                $stub->value = substr($v, 0, -$cut);
+                            } else {
+                                $stub->value = $v;
+                            }
+                        } elseif (0 <= $maxString && isset($v[1 + ($maxString >> 2)]) && 0 < $cut = mb_strlen($v, 'UTF-8') - $maxString) {
+                            $stub = new Stub();
+                            $stub->type = Stub::TYPE_STRING;
+                            $stub->class = Stub::STRING_UTF8;
+                            $stub->cut = $cut;
+                            $stub->value = mb_substr($v, 0, $maxString, 'UTF-8');
+                        } else {
+                            continue 2;
+                        }
+                        $a = null;
+                        break;
+
+                    case \is_array($v):
+                        if (!$v) {
+                            continue 2;
+                        }
+                        $stub = $arrayStub;
+                        $stub->class = Stub::ARRAY_INDEXED;
+
+                        $j = -1;
+                        foreach ($v as $gk => $gv) {
+                            if ($gk !== ++$j) {
+                                $stub->class = Stub::ARRAY_ASSOC;
+                                break;
+                            }
+                        }
+                        $a = $v;
+
+                        if (Stub::ARRAY_ASSOC === $stub->class) {
+                            // Copies of $GLOBALS have very strange behavior,
+                            // let's detect them with some black magic
+                            if (\PHP_VERSION_ID < 80100 && ($a[$gid] = true) && isset($v[$gid])) {
+                                unset($v[$gid]);
+                                $a = [];
+                                foreach ($v as $gk => &$gv) {
+                                    if ($v === $gv) {
+                                        unset($v);
+                                        $v = new Stub();
+                                        $v->value = [$v->cut = \count($gv), Stub::TYPE_ARRAY => 0];
+                                        $v->handle = -1;
+                                        $gv = &$hardRefs[spl_object_id($v)];
+                                        $gv = $v;
+                                    }
+
+                                    $a[$gk] = &$gv;
+                                }
+                                unset($gv);
+                            } else {
+                                $a = $v;
+                            }
+                        }
+                        break;
+
+                    case \is_object($v):
+                        if (empty($objRefs[$h = spl_object_id($v)])) {
+                            $stub = new Stub();
+                            $stub->type = Stub::TYPE_OBJECT;
+                            $stub->class = \get_class($v);
+                            $stub->value = $v;
+                            $stub->handle = $h;
+                            $a = $this->castObject($stub, 0 < $i);
+                            if ($v !== $stub->value) {
+                                if (Stub::TYPE_OBJECT !== $stub->type || null === $stub->value) {
+                                    break;
+                                }
+                                $stub->handle = $h = spl_object_id($stub->value);
+                            }
+                            $stub->value = null;
+                            if (0 <= $maxItems && $maxItems <= $pos && $minimumDepthReached) {
+                                $stub->cut = \count($a);
+                                $a = null;
+                            }
+                        }
+                        if (empty($objRefs[$h])) {
+                            $objRefs[$h] = $stub;
+                            $objects[] = $v;
+                        } else {
+                            $stub = $objRefs[$h];
+                            ++$stub->refCount;
+                            $a = null;
+                        }
+                        break;
+
+                    default: // resource
+                        if (empty($resRefs[$h = (int) $v])) {
+                            $stub = new Stub();
+                            $stub->type = Stub::TYPE_RESOURCE;
+                            if ('Unknown' === $stub->class = @get_resource_type($v)) {
+                                $stub->class = 'Closed';
+                            }
+                            $stub->value = $v;
+                            $stub->handle = $h;
+                            $a = $this->castResource($stub, 0 < $i);
+                            $stub->value = null;
+                            if (0 <= $maxItems && $maxItems <= $pos && $minimumDepthReached) {
+                                $stub->cut = \count($a);
+                                $a = null;
+                            }
+                        }
+                        if (empty($resRefs[$h])) {
+                            $resRefs[$h] = $stub;
+                        } else {
+                            $stub = $resRefs[$h];
+                            ++$stub->refCount;
+                            $a = null;
+                        }
+                        break;
+                }
+
+                if ($a) {
+                    if (!$minimumDepthReached || 0 > $maxItems) {
+                        $queue[$len] = $a;
+                        $stub->position = $len++;
+                    } elseif ($pos < $maxItems) {
+                        if ($maxItems < $pos += \count($a)) {
+                            $a = \array_slice($a, 0, $maxItems - $pos, true);
+                            if ($stub->cut >= 0) {
+                                $stub->cut += $pos - $maxItems;
+                            }
+                        }
+                        $queue[$len] = $a;
+                        $stub->position = $len++;
+                    } elseif ($stub->cut >= 0) {
+                        $stub->cut += \count($a);
+                        $stub->position = 0;
+                    }
+                }
+
+                if ($arrayStub === $stub) {
+                    if ($arrayStub->cut) {
+                        $stub = [$arrayStub->cut, $arrayStub->class => $arrayStub->position];
+                        $arrayStub->cut = 0;
+                    } elseif (isset(self::$arrayCache[$arrayStub->class][$arrayStub->position])) {
+                        $stub = self::$arrayCache[$arrayStub->class][$arrayStub->position];
+                    } else {
+                        self::$arrayCache[$arrayStub->class][$arrayStub->position] = $stub = [$arrayStub->class => $arrayStub->position];
+                    }
+                }
+
+                if ($zvalIsRef) {
+                    $refs[$k]->value = $stub;
+                } else {
+                    $vals[$k] = $stub;
+                }
+            }
+
+            if ($fromObjCast) {
+                $fromObjCast = false;
+                $refs = $vals;
+                $vals = [];
+                $j = -1;
+                foreach ($queue[$i] as $k => $v) {
+                    foreach ([$k => true] as $gk => $gv) {
+                    }
+                    if ($gk !== $k) {
+                        $vals = (object) $vals;
+                        $vals->{$k} = $refs[++$j];
+                        $vals = (array) $vals;
+                    } else {
+                        $vals[$k] = $refs[++$j];
+                    }
+                }
+            }
+
+            $queue[$i] = $vals;
+        }
+
+        foreach ($values as $h => $v) {
+            $hardRefs[$h] = $v;
+        }
+
+        return $queue;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Command/Descriptor/CliDescriptor.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Command/Descriptor/CliDescriptor.php
new file mode 100644
index 0000000..7d9ec0e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Command/Descriptor/CliDescriptor.php
@@ -0,0 +1,88 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Command\Descriptor;
+
+use Symfony\Component\Console\Formatter\OutputFormatterStyle;
+use Symfony\Component\Console\Input\ArrayInput;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Style\SymfonyStyle;
+use Symfony\Component\VarDumper\Cloner\Data;
+use Symfony\Component\VarDumper\Dumper\CliDumper;
+
+/**
+ * Describe collected data clones for cli output.
+ *
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ *
+ * @final
+ */
+class CliDescriptor implements DumpDescriptorInterface
+{
+    private $dumper;
+    private $lastIdentifier;
+    private $supportsHref;
+
+    public function __construct(CliDumper $dumper)
+    {
+        $this->dumper = $dumper;
+        $this->supportsHref = method_exists(OutputFormatterStyle::class, 'setHref');
+    }
+
+    public function describe(OutputInterface $output, Data $data, array $context, int $clientId): void
+    {
+        $io = $output instanceof SymfonyStyle ? $output : new SymfonyStyle(new ArrayInput([]), $output);
+        $this->dumper->setColors($output->isDecorated());
+
+        $rows = [['date', date('r', (int) $context['timestamp'])]];
+        $lastIdentifier = $this->lastIdentifier;
+        $this->lastIdentifier = $clientId;
+
+        $section = "Received from client #$clientId";
+        if (isset($context['request'])) {
+            $request = $context['request'];
+            $this->lastIdentifier = $request['identifier'];
+            $section = sprintf('%s %s', $request['method'], $request['uri']);
+            if ($controller = $request['controller']) {
+                $rows[] = ['controller', rtrim($this->dumper->dump($controller, true), "\n")];
+            }
+        } elseif (isset($context['cli'])) {
+            $this->lastIdentifier = $context['cli']['identifier'];
+            $section = '$ '.$context['cli']['command_line'];
+        }
+
+        if ($this->lastIdentifier !== $lastIdentifier) {
+            $io->section($section);
+        }
+
+        if (isset($context['source'])) {
+            $source = $context['source'];
+            $sourceInfo = sprintf('%s on line %d', $source['name'], $source['line']);
+            $fileLink = $source['file_link'] ?? null;
+            if ($this->supportsHref && $fileLink) {
+                $sourceInfo = sprintf('<href=%s>%s</>', $fileLink, $sourceInfo);
+            }
+            $rows[] = ['source', $sourceInfo];
+            $file = $source['file_relative'] ?? $source['file'];
+            $rows[] = ['file', $file];
+        }
+
+        $io->table([], $rows);
+
+        if (!$this->supportsHref && isset($fileLink)) {
+            $io->writeln(['<info>Open source in your IDE/browser:</info>', $fileLink]);
+            $io->newLine();
+        }
+
+        $this->dumper->dump($data);
+        $io->newLine();
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php
new file mode 100644
index 0000000..267d27b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Command/Descriptor/DumpDescriptorInterface.php
@@ -0,0 +1,23 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Command\Descriptor;
+
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\VarDumper\Cloner\Data;
+
+/**
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ */
+interface DumpDescriptorInterface
+{
+    public function describe(OutputInterface $output, Data $data, array $context, int $clientId): void;
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php
new file mode 100644
index 0000000..636b618
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php
@@ -0,0 +1,119 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Command\Descriptor;
+
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\VarDumper\Cloner\Data;
+use Symfony\Component\VarDumper\Dumper\HtmlDumper;
+
+/**
+ * Describe collected data clones for html output.
+ *
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ *
+ * @final
+ */
+class HtmlDescriptor implements DumpDescriptorInterface
+{
+    private $dumper;
+    private $initialized = false;
+
+    public function __construct(HtmlDumper $dumper)
+    {
+        $this->dumper = $dumper;
+    }
+
+    public function describe(OutputInterface $output, Data $data, array $context, int $clientId): void
+    {
+        if (!$this->initialized) {
+            $styles = file_get_contents(__DIR__.'/../../Resources/css/htmlDescriptor.css');
+            $scripts = file_get_contents(__DIR__.'/../../Resources/js/htmlDescriptor.js');
+            $output->writeln("<style>$styles</style><script>$scripts</script>");
+            $this->initialized = true;
+        }
+
+        $title = '-';
+        if (isset($context['request'])) {
+            $request = $context['request'];
+            $controller = "<span class='dumped-tag'>{$this->dumper->dump($request['controller'], true, ['maxDepth' => 0])}</span>";
+            $title = sprintf('<code>%s</code> <a href="%s">%s</a>', $request['method'], $uri = $request['uri'], $uri);
+            $dedupIdentifier = $request['identifier'];
+        } elseif (isset($context['cli'])) {
+            $title = '<code>$ </code>'.$context['cli']['command_line'];
+            $dedupIdentifier = $context['cli']['identifier'];
+        } else {
+            $dedupIdentifier = uniqid('', true);
+        }
+
+        $sourceDescription = '';
+        if (isset($context['source'])) {
+            $source = $context['source'];
+            $projectDir = $source['project_dir'] ?? null;
+            $sourceDescription = sprintf('%s on line %d', $source['name'], $source['line']);
+            if (isset($source['file_link'])) {
+                $sourceDescription = sprintf('<a href="%s">%s</a>', $source['file_link'], $sourceDescription);
+            }
+        }
+
+        $isoDate = $this->extractDate($context, 'c');
+        $tags = array_filter([
+            'controller' => $controller ?? null,
+            'project dir' => $projectDir ?? null,
+        ]);
+
+        $output->writeln(<<<HTML
+<article data-dedup-id="$dedupIdentifier">
+    <header>
+        <div class="row">
+            <h2 class="col">$title</h2>
+            <time class="col text-small" title="$isoDate" datetime="$isoDate">
+                {$this->extractDate($context)}
+            </time>
+        </div>
+        {$this->renderTags($tags)}
+    </header>
+    <section class="body">
+        <p class="text-small">
+            $sourceDescription
+        </p>
+        {$this->dumper->dump($data, true)}
+    </section>
+</article>
+HTML
+        );
+    }
+
+    private function extractDate(array $context, string $format = 'r'): string
+    {
+        return date($format, (int) $context['timestamp']);
+    }
+
+    private function renderTags(array $tags): string
+    {
+        if (!$tags) {
+            return '';
+        }
+
+        $renderedTags = '';
+        foreach ($tags as $key => $value) {
+            $renderedTags .= sprintf('<li><span class="badge">%s</span>%s</li>', $key, $value);
+        }
+
+        return <<<HTML
+<div class="row">
+    <ul class="tags">
+        $renderedTags
+    </ul>
+</div>
+HTML;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Command/ServerDumpCommand.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Command/ServerDumpCommand.php
new file mode 100644
index 0000000..ead9d5b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Command/ServerDumpCommand.php
@@ -0,0 +1,102 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Command;
+
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Exception\InvalidArgumentException;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Style\SymfonyStyle;
+use Symfony\Component\VarDumper\Cloner\Data;
+use Symfony\Component\VarDumper\Command\Descriptor\CliDescriptor;
+use Symfony\Component\VarDumper\Command\Descriptor\DumpDescriptorInterface;
+use Symfony\Component\VarDumper\Command\Descriptor\HtmlDescriptor;
+use Symfony\Component\VarDumper\Dumper\CliDumper;
+use Symfony\Component\VarDumper\Dumper\HtmlDumper;
+use Symfony\Component\VarDumper\Server\DumpServer;
+
+/**
+ * Starts a dump server to collect and output dumps on a single place with multiple formats support.
+ *
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ *
+ * @final
+ */
+class ServerDumpCommand extends Command
+{
+    protected static $defaultName = 'server:dump';
+    protected static $defaultDescription = 'Start a dump server that collects and displays dumps in a single place';
+
+    private $server;
+
+    /** @var DumpDescriptorInterface[] */
+    private $descriptors;
+
+    public function __construct(DumpServer $server, array $descriptors = [])
+    {
+        $this->server = $server;
+        $this->descriptors = $descriptors + [
+            'cli' => new CliDescriptor(new CliDumper()),
+            'html' => new HtmlDescriptor(new HtmlDumper()),
+        ];
+
+        parent::__construct();
+    }
+
+    protected function configure()
+    {
+        $availableFormats = implode(', ', array_keys($this->descriptors));
+
+        $this
+            ->addOption('format', null, InputOption::VALUE_REQUIRED, sprintf('The output format (%s)', $availableFormats), 'cli')
+            ->setDescription(self::$defaultDescription)
+            ->setHelp(<<<'EOF'
+<info>%command.name%</info> starts a dump server that collects and displays
+dumps in a single place for debugging you application:
+
+  <info>php %command.full_name%</info>
+
+You can consult dumped data in HTML format in your browser by providing the <comment>--format=html</comment> option
+and redirecting the output to a file:
+
+  <info>php %command.full_name% --format="html" > dump.html</info>
+
+EOF
+            )
+        ;
+    }
+
+    protected function execute(InputInterface $input, OutputInterface $output): int
+    {
+        $io = new SymfonyStyle($input, $output);
+        $format = $input->getOption('format');
+
+        if (!$descriptor = $this->descriptors[$format] ?? null) {
+            throw new InvalidArgumentException(sprintf('Unsupported format "%s".', $format));
+        }
+
+        $errorIo = $io->getErrorStyle();
+        $errorIo->title('Symfony Var Dumper Server');
+
+        $this->server->start();
+
+        $errorIo->success(sprintf('Server listening on %s', $this->server->getHost()));
+        $errorIo->comment('Quit the server with CONTROL-C.');
+
+        $this->server->listen(function (Data $data, array $context, int $clientId) use ($descriptor, $io) {
+            $descriptor->describe($io, $data, $context, $clientId);
+        });
+
+        return 0;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/AbstractDumper.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/AbstractDumper.php
new file mode 100644
index 0000000..6064ea9
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/AbstractDumper.php
@@ -0,0 +1,204 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Dumper;
+
+use Symfony\Component\VarDumper\Cloner\Data;
+use Symfony\Component\VarDumper\Cloner\DumperInterface;
+
+/**
+ * Abstract mechanism for dumping a Data object.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+abstract class AbstractDumper implements DataDumperInterface, DumperInterface
+{
+    public const DUMP_LIGHT_ARRAY = 1;
+    public const DUMP_STRING_LENGTH = 2;
+    public const DUMP_COMMA_SEPARATOR = 4;
+    public const DUMP_TRAILING_COMMA = 8;
+
+    public static $defaultOutput = 'php://output';
+
+    protected $line = '';
+    protected $lineDumper;
+    protected $outputStream;
+    protected $decimalPoint; // This is locale dependent
+    protected $indentPad = '  ';
+    protected $flags;
+
+    private $charset = '';
+
+    /**
+     * @param callable|resource|string|null $output  A line dumper callable, an opened stream or an output path, defaults to static::$defaultOutput
+     * @param string|null                   $charset The default character encoding to use for non-UTF8 strings
+     * @param int                           $flags   A bit field of static::DUMP_* constants to fine tune dumps representation
+     */
+    public function __construct($output = null, string $charset = null, int $flags = 0)
+    {
+        $this->flags = $flags;
+        $this->setCharset($charset ?: ini_get('php.output_encoding') ?: ini_get('default_charset') ?: 'UTF-8');
+        $this->decimalPoint = localeconv();
+        $this->decimalPoint = $this->decimalPoint['decimal_point'];
+        $this->setOutput($output ?: static::$defaultOutput);
+        if (!$output && \is_string(static::$defaultOutput)) {
+            static::$defaultOutput = $this->outputStream;
+        }
+    }
+
+    /**
+     * Sets the output destination of the dumps.
+     *
+     * @param callable|resource|string $output A line dumper callable, an opened stream or an output path
+     *
+     * @return callable|resource|string The previous output destination
+     */
+    public function setOutput($output)
+    {
+        $prev = $this->outputStream ?? $this->lineDumper;
+
+        if (\is_callable($output)) {
+            $this->outputStream = null;
+            $this->lineDumper = $output;
+        } else {
+            if (\is_string($output)) {
+                $output = fopen($output, 'w');
+            }
+            $this->outputStream = $output;
+            $this->lineDumper = [$this, 'echoLine'];
+        }
+
+        return $prev;
+    }
+
+    /**
+     * Sets the default character encoding to use for non-UTF8 strings.
+     *
+     * @return string The previous charset
+     */
+    public function setCharset(string $charset)
+    {
+        $prev = $this->charset;
+
+        $charset = strtoupper($charset);
+        $charset = null === $charset || 'UTF-8' === $charset || 'UTF8' === $charset ? 'CP1252' : $charset;
+
+        $this->charset = $charset;
+
+        return $prev;
+    }
+
+    /**
+     * Sets the indentation pad string.
+     *
+     * @param string $pad A string that will be prepended to dumped lines, repeated by nesting level
+     *
+     * @return string The previous indent pad
+     */
+    public function setIndentPad(string $pad)
+    {
+        $prev = $this->indentPad;
+        $this->indentPad = $pad;
+
+        return $prev;
+    }
+
+    /**
+     * Dumps a Data object.
+     *
+     * @param callable|resource|string|true|null $output A line dumper callable, an opened stream, an output path or true to return the dump
+     *
+     * @return string|null The dump as string when $output is true
+     */
+    public function dump(Data $data, $output = null)
+    {
+        $this->decimalPoint = localeconv();
+        $this->decimalPoint = $this->decimalPoint['decimal_point'];
+
+        if ($locale = $this->flags & (self::DUMP_COMMA_SEPARATOR | self::DUMP_TRAILING_COMMA) ? setlocale(\LC_NUMERIC, 0) : null) {
+            setlocale(\LC_NUMERIC, 'C');
+        }
+
+        if ($returnDump = true === $output) {
+            $output = fopen('php://memory', 'r+');
+        }
+        if ($output) {
+            $prevOutput = $this->setOutput($output);
+        }
+        try {
+            $data->dump($this);
+            $this->dumpLine(-1);
+
+            if ($returnDump) {
+                $result = stream_get_contents($output, -1, 0);
+                fclose($output);
+
+                return $result;
+            }
+        } finally {
+            if ($output) {
+                $this->setOutput($prevOutput);
+            }
+            if ($locale) {
+                setlocale(\LC_NUMERIC, $locale);
+            }
+        }
+
+        return null;
+    }
+
+    /**
+     * Dumps the current line.
+     *
+     * @param int $depth The recursive depth in the dumped structure for the line being dumped,
+     *                   or -1 to signal the end-of-dump to the line dumper callable
+     */
+    protected function dumpLine(int $depth)
+    {
+        ($this->lineDumper)($this->line, $depth, $this->indentPad);
+        $this->line = '';
+    }
+
+    /**
+     * Generic line dumper callback.
+     */
+    protected function echoLine(string $line, int $depth, string $indentPad)
+    {
+        if (-1 !== $depth) {
+            fwrite($this->outputStream, str_repeat($indentPad, $depth).$line."\n");
+        }
+    }
+
+    /**
+     * Converts a non-UTF-8 string to UTF-8.
+     *
+     * @return string|null The string converted to UTF-8
+     */
+    protected function utf8Encode(?string $s)
+    {
+        if (null === $s || preg_match('//u', $s)) {
+            return $s;
+        }
+
+        if (!\function_exists('iconv')) {
+            throw new \RuntimeException('Unable to convert a non-UTF-8 string to UTF-8: required function iconv() does not exist. You should install ext-iconv or symfony/polyfill-iconv.');
+        }
+
+        if (false !== $c = @iconv($this->charset, 'UTF-8', $s)) {
+            return $c;
+        }
+        if ('CP1252' !== $this->charset && false !== $c = @iconv('CP1252', 'UTF-8', $s)) {
+            return $c;
+        }
+
+        return iconv('CP850', 'UTF-8', $s);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/CliDumper.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/CliDumper.php
new file mode 100644
index 0000000..c1539ee
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/CliDumper.php
@@ -0,0 +1,643 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Dumper;
+
+use Symfony\Component\VarDumper\Cloner\Cursor;
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * CliDumper dumps variables for command line output.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class CliDumper extends AbstractDumper
+{
+    public static $defaultColors;
+    public static $defaultOutput = 'php://stdout';
+
+    protected $colors;
+    protected $maxStringWidth = 0;
+    protected $styles = [
+        // See http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
+        'default' => '0;38;5;208',
+        'num' => '1;38;5;38',
+        'const' => '1;38;5;208',
+        'str' => '1;38;5;113',
+        'note' => '38;5;38',
+        'ref' => '38;5;247',
+        'public' => '',
+        'protected' => '',
+        'private' => '',
+        'meta' => '38;5;170',
+        'key' => '38;5;113',
+        'index' => '38;5;38',
+    ];
+
+    protected static $controlCharsRx = '/[\x00-\x1F\x7F]+/';
+    protected static $controlCharsMap = [
+        "\t" => '\t',
+        "\n" => '\n',
+        "\v" => '\v',
+        "\f" => '\f',
+        "\r" => '\r',
+        "\033" => '\e',
+    ];
+
+    protected $collapseNextHash = false;
+    protected $expandNextHash = false;
+
+    private $displayOptions = [
+        'fileLinkFormat' => null,
+    ];
+
+    private $handlesHrefGracefully;
+
+    /**
+     * {@inheritdoc}
+     */
+    public function __construct($output = null, string $charset = null, int $flags = 0)
+    {
+        parent::__construct($output, $charset, $flags);
+
+        if ('\\' === \DIRECTORY_SEPARATOR && !$this->isWindowsTrueColor()) {
+            // Use only the base 16 xterm colors when using ANSICON or standard Windows 10 CLI
+            $this->setStyles([
+                'default' => '31',
+                'num' => '1;34',
+                'const' => '1;31',
+                'str' => '1;32',
+                'note' => '34',
+                'ref' => '1;30',
+                'meta' => '35',
+                'key' => '32',
+                'index' => '34',
+            ]);
+        }
+
+        $this->displayOptions['fileLinkFormat'] = ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format') ?: 'file://%f#L%l';
+    }
+
+    /**
+     * Enables/disables colored output.
+     */
+    public function setColors(bool $colors)
+    {
+        $this->colors = $colors;
+    }
+
+    /**
+     * Sets the maximum number of characters per line for dumped strings.
+     */
+    public function setMaxStringWidth(int $maxStringWidth)
+    {
+        $this->maxStringWidth = $maxStringWidth;
+    }
+
+    /**
+     * Configures styles.
+     *
+     * @param array $styles A map of style names to style definitions
+     */
+    public function setStyles(array $styles)
+    {
+        $this->styles = $styles + $this->styles;
+    }
+
+    /**
+     * Configures display options.
+     *
+     * @param array $displayOptions A map of display options to customize the behavior
+     */
+    public function setDisplayOptions(array $displayOptions)
+    {
+        $this->displayOptions = $displayOptions + $this->displayOptions;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function dumpScalar(Cursor $cursor, string $type, $value)
+    {
+        $this->dumpKey($cursor);
+
+        $style = 'const';
+        $attr = $cursor->attr;
+
+        switch ($type) {
+            case 'default':
+                $style = 'default';
+                break;
+
+            case 'integer':
+                $style = 'num';
+                break;
+
+            case 'double':
+                $style = 'num';
+
+                switch (true) {
+                    case \INF === $value:  $value = 'INF'; break;
+                    case -\INF === $value: $value = '-INF'; break;
+                    case is_nan($value):  $value = 'NAN'; break;
+                    default:
+                        $value = (string) $value;
+                        if (!str_contains($value, $this->decimalPoint)) {
+                            $value .= $this->decimalPoint.'0';
+                        }
+                        break;
+                }
+                break;
+
+            case 'NULL':
+                $value = 'null';
+                break;
+
+            case 'boolean':
+                $value = $value ? 'true' : 'false';
+                break;
+
+            default:
+                $attr += ['value' => $this->utf8Encode($value)];
+                $value = $this->utf8Encode($type);
+                break;
+        }
+
+        $this->line .= $this->style($style, $value, $attr);
+
+        $this->endValue($cursor);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function dumpString(Cursor $cursor, string $str, bool $bin, int $cut)
+    {
+        $this->dumpKey($cursor);
+        $attr = $cursor->attr;
+
+        if ($bin) {
+            $str = $this->utf8Encode($str);
+        }
+        if ('' === $str) {
+            $this->line .= '""';
+            $this->endValue($cursor);
+        } else {
+            $attr += [
+                'length' => 0 <= $cut ? mb_strlen($str, 'UTF-8') + $cut : 0,
+                'binary' => $bin,
+            ];
+            $str = $bin && false !== strpos($str, "\0") ? [$str] : explode("\n", $str);
+            if (isset($str[1]) && !isset($str[2]) && !isset($str[1][0])) {
+                unset($str[1]);
+                $str[0] .= "\n";
+            }
+            $m = \count($str) - 1;
+            $i = $lineCut = 0;
+
+            if (self::DUMP_STRING_LENGTH & $this->flags) {
+                $this->line .= '('.$attr['length'].') ';
+            }
+            if ($bin) {
+                $this->line .= 'b';
+            }
+
+            if ($m) {
+                $this->line .= '"""';
+                $this->dumpLine($cursor->depth);
+            } else {
+                $this->line .= '"';
+            }
+
+            foreach ($str as $str) {
+                if ($i < $m) {
+                    $str .= "\n";
+                }
+                if (0 < $this->maxStringWidth && $this->maxStringWidth < $len = mb_strlen($str, 'UTF-8')) {
+                    $str = mb_substr($str, 0, $this->maxStringWidth, 'UTF-8');
+                    $lineCut = $len - $this->maxStringWidth;
+                }
+                if ($m && 0 < $cursor->depth) {
+                    $this->line .= $this->indentPad;
+                }
+                if ('' !== $str) {
+                    $this->line .= $this->style('str', $str, $attr);
+                }
+                if ($i++ == $m) {
+                    if ($m) {
+                        if ('' !== $str) {
+                            $this->dumpLine($cursor->depth);
+                            if (0 < $cursor->depth) {
+                                $this->line .= $this->indentPad;
+                            }
+                        }
+                        $this->line .= '"""';
+                    } else {
+                        $this->line .= '"';
+                    }
+                    if ($cut < 0) {
+                        $this->line .= '…';
+                        $lineCut = 0;
+                    } elseif ($cut) {
+                        $lineCut += $cut;
+                    }
+                }
+                if ($lineCut) {
+                    $this->line .= '…'.$lineCut;
+                    $lineCut = 0;
+                }
+
+                if ($i > $m) {
+                    $this->endValue($cursor);
+                } else {
+                    $this->dumpLine($cursor->depth);
+                }
+            }
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function enterHash(Cursor $cursor, int $type, $class, bool $hasChild)
+    {
+        if (null === $this->colors) {
+            $this->colors = $this->supportsColors();
+        }
+
+        $this->dumpKey($cursor);
+        $attr = $cursor->attr;
+
+        if ($this->collapseNextHash) {
+            $cursor->skipChildren = true;
+            $this->collapseNextHash = $hasChild = false;
+        }
+
+        $class = $this->utf8Encode($class);
+        if (Cursor::HASH_OBJECT === $type) {
+            $prefix = $class && 'stdClass' !== $class ? $this->style('note', $class, $attr).(empty($attr['cut_hash']) ? ' {' : '') : '{';
+        } elseif (Cursor::HASH_RESOURCE === $type) {
+            $prefix = $this->style('note', $class.' resource', $attr).($hasChild ? ' {' : ' ');
+        } else {
+            $prefix = $class && !(self::DUMP_LIGHT_ARRAY & $this->flags) ? $this->style('note', 'array:'.$class).' [' : '[';
+        }
+
+        if (($cursor->softRefCount || 0 < $cursor->softRefHandle) && empty($attr['cut_hash'])) {
+            $prefix .= $this->style('ref', (Cursor::HASH_RESOURCE === $type ? '@' : '#').(0 < $cursor->softRefHandle ? $cursor->softRefHandle : $cursor->softRefTo), ['count' => $cursor->softRefCount]);
+        } elseif ($cursor->hardRefTo && !$cursor->refIndex && $class) {
+            $prefix .= $this->style('ref', '&'.$cursor->hardRefTo, ['count' => $cursor->hardRefCount]);
+        } elseif (!$hasChild && Cursor::HASH_RESOURCE === $type) {
+            $prefix = substr($prefix, 0, -1);
+        }
+
+        $this->line .= $prefix;
+
+        if ($hasChild) {
+            $this->dumpLine($cursor->depth);
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function leaveHash(Cursor $cursor, int $type, $class, bool $hasChild, int $cut)
+    {
+        if (empty($cursor->attr['cut_hash'])) {
+            $this->dumpEllipsis($cursor, $hasChild, $cut);
+            $this->line .= Cursor::HASH_OBJECT === $type ? '}' : (Cursor::HASH_RESOURCE !== $type ? ']' : ($hasChild ? '}' : ''));
+        }
+
+        $this->endValue($cursor);
+    }
+
+    /**
+     * Dumps an ellipsis for cut children.
+     *
+     * @param bool $hasChild When the dump of the hash has child item
+     * @param int  $cut      The number of items the hash has been cut by
+     */
+    protected function dumpEllipsis(Cursor $cursor, bool $hasChild, int $cut)
+    {
+        if ($cut) {
+            $this->line .= ' …';
+            if (0 < $cut) {
+                $this->line .= $cut;
+            }
+            if ($hasChild) {
+                $this->dumpLine($cursor->depth + 1);
+            }
+        }
+    }
+
+    /**
+     * Dumps a key in a hash structure.
+     */
+    protected function dumpKey(Cursor $cursor)
+    {
+        if (null !== $key = $cursor->hashKey) {
+            if ($cursor->hashKeyIsBinary) {
+                $key = $this->utf8Encode($key);
+            }
+            $attr = ['binary' => $cursor->hashKeyIsBinary];
+            $bin = $cursor->hashKeyIsBinary ? 'b' : '';
+            $style = 'key';
+            switch ($cursor->hashType) {
+                default:
+                case Cursor::HASH_INDEXED:
+                    if (self::DUMP_LIGHT_ARRAY & $this->flags) {
+                        break;
+                    }
+                    $style = 'index';
+                    // no break
+                case Cursor::HASH_ASSOC:
+                    if (\is_int($key)) {
+                        $this->line .= $this->style($style, $key).' => ';
+                    } else {
+                        $this->line .= $bin.'"'.$this->style($style, $key).'" => ';
+                    }
+                    break;
+
+                case Cursor::HASH_RESOURCE:
+                    $key = "\0~\0".$key;
+                    // no break
+                case Cursor::HASH_OBJECT:
+                    if (!isset($key[0]) || "\0" !== $key[0]) {
+                        $this->line .= '+'.$bin.$this->style('public', $key).': ';
+                    } elseif (0 < strpos($key, "\0", 1)) {
+                        $key = explode("\0", substr($key, 1), 2);
+
+                        switch ($key[0][0]) {
+                            case '+': // User inserted keys
+                                $attr['dynamic'] = true;
+                                $this->line .= '+'.$bin.'"'.$this->style('public', $key[1], $attr).'": ';
+                                break 2;
+                            case '~':
+                                $style = 'meta';
+                                if (isset($key[0][1])) {
+                                    parse_str(substr($key[0], 1), $attr);
+                                    $attr += ['binary' => $cursor->hashKeyIsBinary];
+                                }
+                                break;
+                            case '*':
+                                $style = 'protected';
+                                $bin = '#'.$bin;
+                                break;
+                            default:
+                                $attr['class'] = $key[0];
+                                $style = 'private';
+                                $bin = '-'.$bin;
+                                break;
+                        }
+
+                        if (isset($attr['collapse'])) {
+                            if ($attr['collapse']) {
+                                $this->collapseNextHash = true;
+                            } else {
+                                $this->expandNextHash = true;
+                            }
+                        }
+
+                        $this->line .= $bin.$this->style($style, $key[1], $attr).($attr['separator'] ?? ': ');
+                    } else {
+                        // This case should not happen
+                        $this->line .= '-'.$bin.'"'.$this->style('private', $key, ['class' => '']).'": ';
+                    }
+                    break;
+            }
+
+            if ($cursor->hardRefTo) {
+                $this->line .= $this->style('ref', '&'.($cursor->hardRefCount ? $cursor->hardRefTo : ''), ['count' => $cursor->hardRefCount]).' ';
+            }
+        }
+    }
+
+    /**
+     * Decorates a value with some style.
+     *
+     * @param string $style The type of style being applied
+     * @param string $value The value being styled
+     * @param array  $attr  Optional context information
+     *
+     * @return string The value with style decoration
+     */
+    protected function style(string $style, string $value, array $attr = [])
+    {
+        if (null === $this->colors) {
+            $this->colors = $this->supportsColors();
+        }
+
+        if (null === $this->handlesHrefGracefully) {
+            $this->handlesHrefGracefully = 'JetBrains-JediTerm' !== getenv('TERMINAL_EMULATOR')
+                && (!getenv('KONSOLE_VERSION') || (int) getenv('KONSOLE_VERSION') > 201100);
+        }
+
+        if (isset($attr['ellipsis'], $attr['ellipsis-type'])) {
+            $prefix = substr($value, 0, -$attr['ellipsis']);
+            if ('cli' === \PHP_SAPI && 'path' === $attr['ellipsis-type'] && isset($_SERVER[$pwd = '\\' === \DIRECTORY_SEPARATOR ? 'CD' : 'PWD']) && str_starts_with($prefix, $_SERVER[$pwd])) {
+                $prefix = '.'.substr($prefix, \strlen($_SERVER[$pwd]));
+            }
+            if (!empty($attr['ellipsis-tail'])) {
+                $prefix .= substr($value, -$attr['ellipsis'], $attr['ellipsis-tail']);
+                $value = substr($value, -$attr['ellipsis'] + $attr['ellipsis-tail']);
+            } else {
+                $value = substr($value, -$attr['ellipsis']);
+            }
+
+            $value = $this->style('default', $prefix).$this->style($style, $value);
+
+            goto href;
+        }
+
+        $map = static::$controlCharsMap;
+        $startCchr = $this->colors ? "\033[m\033[{$this->styles['default']}m" : '';
+        $endCchr = $this->colors ? "\033[m\033[{$this->styles[$style]}m" : '';
+        $value = preg_replace_callback(static::$controlCharsRx, function ($c) use ($map, $startCchr, $endCchr) {
+            $s = $startCchr;
+            $c = $c[$i = 0];
+            do {
+                $s .= $map[$c[$i]] ?? sprintf('\x%02X', \ord($c[$i]));
+            } while (isset($c[++$i]));
+
+            return $s.$endCchr;
+        }, $value, -1, $cchrCount);
+
+        if ($this->colors) {
+            if ($cchrCount && "\033" === $value[0]) {
+                $value = substr($value, \strlen($startCchr));
+            } else {
+                $value = "\033[{$this->styles[$style]}m".$value;
+            }
+            if ($cchrCount && str_ends_with($value, $endCchr)) {
+                $value = substr($value, 0, -\strlen($endCchr));
+            } else {
+                $value .= "\033[{$this->styles['default']}m";
+            }
+        }
+
+        href:
+        if ($this->colors && $this->handlesHrefGracefully) {
+            if (isset($attr['file']) && $href = $this->getSourceLink($attr['file'], $attr['line'] ?? 0)) {
+                if ('note' === $style) {
+                    $value .= "\033]8;;{$href}\033\\^\033]8;;\033\\";
+                } else {
+                    $attr['href'] = $href;
+                }
+            }
+            if (isset($attr['href'])) {
+                $value = "\033]8;;{$attr['href']}\033\\{$value}\033]8;;\033\\";
+            }
+        } elseif ($attr['if_links'] ?? false) {
+            return '';
+        }
+
+        return $value;
+    }
+
+    /**
+     * @return bool Tells if the current output stream supports ANSI colors or not
+     */
+    protected function supportsColors()
+    {
+        if ($this->outputStream !== static::$defaultOutput) {
+            return $this->hasColorSupport($this->outputStream);
+        }
+        if (null !== static::$defaultColors) {
+            return static::$defaultColors;
+        }
+        if (isset($_SERVER['argv'][1])) {
+            $colors = $_SERVER['argv'];
+            $i = \count($colors);
+            while (--$i > 0) {
+                if (isset($colors[$i][5])) {
+                    switch ($colors[$i]) {
+                        case '--ansi':
+                        case '--color':
+                        case '--color=yes':
+                        case '--color=force':
+                        case '--color=always':
+                        case '--colors=always':
+                            return static::$defaultColors = true;
+
+                        case '--no-ansi':
+                        case '--color=no':
+                        case '--color=none':
+                        case '--color=never':
+                        case '--colors=never':
+                            return static::$defaultColors = false;
+                    }
+                }
+            }
+        }
+
+        $h = stream_get_meta_data($this->outputStream) + ['wrapper_type' => null];
+        $h = 'Output' === $h['stream_type'] && 'PHP' === $h['wrapper_type'] ? fopen('php://stdout', 'w') : $this->outputStream;
+
+        return static::$defaultColors = $this->hasColorSupport($h);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function dumpLine(int $depth, bool $endOfValue = false)
+    {
+        if ($this->colors) {
+            $this->line = sprintf("\033[%sm%s\033[m", $this->styles['default'], $this->line);
+        }
+        parent::dumpLine($depth);
+    }
+
+    protected function endValue(Cursor $cursor)
+    {
+        if (-1 === $cursor->hashType) {
+            return;
+        }
+
+        if (Stub::ARRAY_INDEXED === $cursor->hashType || Stub::ARRAY_ASSOC === $cursor->hashType) {
+            if (self::DUMP_TRAILING_COMMA & $this->flags && 0 < $cursor->depth) {
+                $this->line .= ',';
+            } elseif (self::DUMP_COMMA_SEPARATOR & $this->flags && 1 < $cursor->hashLength - $cursor->hashIndex) {
+                $this->line .= ',';
+            }
+        }
+
+        $this->dumpLine($cursor->depth, true);
+    }
+
+    /**
+     * Returns true if the stream supports colorization.
+     *
+     * Reference: Composer\XdebugHandler\Process::supportsColor
+     * https://github.com/composer/xdebug-handler
+     *
+     * @param mixed $stream A CLI output stream
+     */
+    private function hasColorSupport($stream): bool
+    {
+        if (!\is_resource($stream) || 'stream' !== get_resource_type($stream)) {
+            return false;
+        }
+
+        // Follow https://no-color.org/
+        if (isset($_SERVER['NO_COLOR']) || false !== getenv('NO_COLOR')) {
+            return false;
+        }
+
+        if ('Hyper' === getenv('TERM_PROGRAM')) {
+            return true;
+        }
+
+        if (\DIRECTORY_SEPARATOR === '\\') {
+            return (\function_exists('sapi_windows_vt100_support')
+                && @sapi_windows_vt100_support($stream))
+                || false !== getenv('ANSICON')
+                || 'ON' === getenv('ConEmuANSI')
+                || 'xterm' === getenv('TERM');
+        }
+
+        return stream_isatty($stream);
+    }
+
+    /**
+     * Returns true if the Windows terminal supports true color.
+     *
+     * Note that this does not check an output stream, but relies on environment
+     * variables from known implementations, or a PHP and Windows version that
+     * supports true color.
+     */
+    private function isWindowsTrueColor(): bool
+    {
+        $result = 183 <= getenv('ANSICON_VER')
+            || 'ON' === getenv('ConEmuANSI')
+            || 'xterm' === getenv('TERM')
+            || 'Hyper' === getenv('TERM_PROGRAM');
+
+        if (!$result) {
+            $version = sprintf(
+                '%s.%s.%s',
+                PHP_WINDOWS_VERSION_MAJOR,
+                PHP_WINDOWS_VERSION_MINOR,
+                PHP_WINDOWS_VERSION_BUILD
+            );
+            $result = $version >= '10.0.15063';
+        }
+
+        return $result;
+    }
+
+    private function getSourceLink(string $file, int $line)
+    {
+        if ($fmt = $this->displayOptions['fileLinkFormat']) {
+            return \is_string($fmt) ? strtr($fmt, ['%f' => $file, '%l' => $line]) : ($fmt->format($file, $line) ?: 'file://'.$file.'#L'.$line);
+        }
+
+        return false;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php
new file mode 100644
index 0000000..38f8789
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php
@@ -0,0 +1,32 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Dumper\ContextProvider;
+
+/**
+ * Tries to provide context on CLI.
+ *
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ */
+final class CliContextProvider implements ContextProviderInterface
+{
+    public function getContext(): ?array
+    {
+        if ('cli' !== \PHP_SAPI) {
+            return null;
+        }
+
+        return [
+            'command_line' => $commandLine = implode(' ', $_SERVER['argv'] ?? []),
+            'identifier' => hash('crc32b', $commandLine.$_SERVER['REQUEST_TIME_FLOAT']),
+        ];
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php
new file mode 100644
index 0000000..38ef3b0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php
@@ -0,0 +1,25 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Dumper\ContextProvider;
+
+/**
+ * Interface to provide contextual data about dump data clones sent to a server.
+ *
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ */
+interface ContextProviderInterface
+{
+    /**
+     * @return array|null Context data or null if unable to provide any context
+     */
+    public function getContext(): ?array;
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php
new file mode 100644
index 0000000..3684a47
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php
@@ -0,0 +1,51 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Dumper\ContextProvider;
+
+use Symfony\Component\HttpFoundation\RequestStack;
+use Symfony\Component\VarDumper\Caster\ReflectionCaster;
+use Symfony\Component\VarDumper\Cloner\VarCloner;
+
+/**
+ * Tries to provide context from a request.
+ *
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ */
+final class RequestContextProvider implements ContextProviderInterface
+{
+    private $requestStack;
+    private $cloner;
+
+    public function __construct(RequestStack $requestStack)
+    {
+        $this->requestStack = $requestStack;
+        $this->cloner = new VarCloner();
+        $this->cloner->setMaxItems(0);
+        $this->cloner->addCasters(ReflectionCaster::UNSET_CLOSURE_FILE_INFO);
+    }
+
+    public function getContext(): ?array
+    {
+        if (null === $request = $this->requestStack->getCurrentRequest()) {
+            return null;
+        }
+
+        $controller = $request->attributes->get('_controller');
+
+        return [
+            'uri' => $request->getUri(),
+            'method' => $request->getMethod(),
+            'controller' => $controller ? $this->cloner->cloneVar($controller) : $controller,
+            'identifier' => spl_object_hash($request),
+        ];
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php
new file mode 100644
index 0000000..2e2c818
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php
@@ -0,0 +1,126 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Dumper\ContextProvider;
+
+use Symfony\Component\HttpKernel\Debug\FileLinkFormatter;
+use Symfony\Component\VarDumper\Cloner\VarCloner;
+use Symfony\Component\VarDumper\Dumper\HtmlDumper;
+use Symfony\Component\VarDumper\VarDumper;
+use Twig\Template;
+
+/**
+ * Tries to provide context from sources (class name, file, line, code excerpt, ...).
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ */
+final class SourceContextProvider implements ContextProviderInterface
+{
+    private $limit;
+    private $charset;
+    private $projectDir;
+    private $fileLinkFormatter;
+
+    public function __construct(string $charset = null, string $projectDir = null, FileLinkFormatter $fileLinkFormatter = null, int $limit = 9)
+    {
+        $this->charset = $charset;
+        $this->projectDir = $projectDir;
+        $this->fileLinkFormatter = $fileLinkFormatter;
+        $this->limit = $limit;
+    }
+
+    public function getContext(): ?array
+    {
+        $trace = debug_backtrace(\DEBUG_BACKTRACE_PROVIDE_OBJECT | \DEBUG_BACKTRACE_IGNORE_ARGS, $this->limit);
+
+        $file = $trace[1]['file'];
+        $line = $trace[1]['line'];
+        $name = false;
+        $fileExcerpt = false;
+
+        for ($i = 2; $i < $this->limit; ++$i) {
+            if (isset($trace[$i]['class'], $trace[$i]['function'])
+                && 'dump' === $trace[$i]['function']
+                && VarDumper::class === $trace[$i]['class']
+            ) {
+                $file = $trace[$i]['file'] ?? $file;
+                $line = $trace[$i]['line'] ?? $line;
+
+                while (++$i < $this->limit) {
+                    if (isset($trace[$i]['function'], $trace[$i]['file']) && empty($trace[$i]['class']) && !str_starts_with($trace[$i]['function'], 'call_user_func')) {
+                        $file = $trace[$i]['file'];
+                        $line = $trace[$i]['line'];
+
+                        break;
+                    } elseif (isset($trace[$i]['object']) && $trace[$i]['object'] instanceof Template) {
+                        $template = $trace[$i]['object'];
+                        $name = $template->getTemplateName();
+                        $src = method_exists($template, 'getSourceContext') ? $template->getSourceContext()->getCode() : (method_exists($template, 'getSource') ? $template->getSource() : false);
+                        $info = $template->getDebugInfo();
+                        if (isset($info[$trace[$i - 1]['line']])) {
+                            $line = $info[$trace[$i - 1]['line']];
+                            $file = method_exists($template, 'getSourceContext') ? $template->getSourceContext()->getPath() : null;
+
+                            if ($src) {
+                                $src = explode("\n", $src);
+                                $fileExcerpt = [];
+
+                                for ($i = max($line - 3, 1), $max = min($line + 3, \count($src)); $i <= $max; ++$i) {
+                                    $fileExcerpt[] = '<li'.($i === $line ? ' class="selected"' : '').'><code>'.$this->htmlEncode($src[$i - 1]).'</code></li>';
+                                }
+
+                                $fileExcerpt = '<ol start="'.max($line - 3, 1).'">'.implode("\n", $fileExcerpt).'</ol>';
+                            }
+                        }
+                        break;
+                    }
+                }
+                break;
+            }
+        }
+
+        if (false === $name) {
+            $name = str_replace('\\', '/', $file);
+            $name = substr($name, strrpos($name, '/') + 1);
+        }
+
+        $context = ['name' => $name, 'file' => $file, 'line' => $line];
+        $context['file_excerpt'] = $fileExcerpt;
+
+        if (null !== $this->projectDir) {
+            $context['project_dir'] = $this->projectDir;
+            if (str_starts_with($file, $this->projectDir)) {
+                $context['file_relative'] = ltrim(substr($file, \strlen($this->projectDir)), \DIRECTORY_SEPARATOR);
+            }
+        }
+
+        if ($this->fileLinkFormatter && $fileLink = $this->fileLinkFormatter->format($context['file'], $context['line'])) {
+            $context['file_link'] = $fileLink;
+        }
+
+        return $context;
+    }
+
+    private function htmlEncode(string $s): string
+    {
+        $html = '';
+
+        $dumper = new HtmlDumper(function ($line) use (&$html) { $html .= $line; }, $this->charset);
+        $dumper->setDumpHeader('');
+        $dumper->setDumpBoundaries('', '');
+
+        $cloner = new VarCloner();
+        $dumper->dump($cloner->cloneVar($s));
+
+        return substr(strip_tags($html), 1, -1);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/ContextualizedDumper.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/ContextualizedDumper.php
new file mode 100644
index 0000000..7638417
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/ContextualizedDumper.php
@@ -0,0 +1,43 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Dumper;
+
+use Symfony\Component\VarDumper\Cloner\Data;
+use Symfony\Component\VarDumper\Dumper\ContextProvider\ContextProviderInterface;
+
+/**
+ * @author Kévin Thérage <therage.kevin@gmail.com>
+ */
+class ContextualizedDumper implements DataDumperInterface
+{
+    private $wrappedDumper;
+    private $contextProviders;
+
+    /**
+     * @param ContextProviderInterface[] $contextProviders
+     */
+    public function __construct(DataDumperInterface $wrappedDumper, array $contextProviders)
+    {
+        $this->wrappedDumper = $wrappedDumper;
+        $this->contextProviders = $contextProviders;
+    }
+
+    public function dump(Data $data)
+    {
+        $context = [];
+        foreach ($this->contextProviders as $contextProvider) {
+            $context[\get_class($contextProvider)] = $contextProvider->getContext();
+        }
+
+        $this->wrappedDumper->dump($data->withContext($context));
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/DataDumperInterface.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/DataDumperInterface.php
new file mode 100644
index 0000000..b173bcc
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/DataDumperInterface.php
@@ -0,0 +1,24 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Dumper;
+
+use Symfony\Component\VarDumper\Cloner\Data;
+
+/**
+ * DataDumperInterface for dumping Data objects.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+interface DataDumperInterface
+{
+    public function dump(Data $data);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/HtmlDumper.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/HtmlDumper.php
new file mode 100644
index 0000000..6c3abaa
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/HtmlDumper.php
@@ -0,0 +1,986 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Dumper;
+
+use Symfony\Component\VarDumper\Cloner\Cursor;
+use Symfony\Component\VarDumper\Cloner\Data;
+
+/**
+ * HtmlDumper dumps variables as HTML.
+ *
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class HtmlDumper extends CliDumper
+{
+    public static $defaultOutput = 'php://output';
+
+    protected static $themes = [
+        'dark' => [
+            'default' => 'background-color:#18171B; color:#FF8400; line-height:1.2em; font:12px Menlo, Monaco, Consolas, monospace; word-wrap: break-word; white-space: pre-wrap; position:relative; z-index:99999; word-break: break-all',
+            'num' => 'font-weight:bold; color:#1299DA',
+            'const' => 'font-weight:bold',
+            'str' => 'font-weight:bold; color:#56DB3A',
+            'note' => 'color:#1299DA',
+            'ref' => 'color:#A0A0A0',
+            'public' => 'color:#FFFFFF',
+            'protected' => 'color:#FFFFFF',
+            'private' => 'color:#FFFFFF',
+            'meta' => 'color:#B729D9',
+            'key' => 'color:#56DB3A',
+            'index' => 'color:#1299DA',
+            'ellipsis' => 'color:#FF8400',
+            'ns' => 'user-select:none;',
+        ],
+        'light' => [
+            'default' => 'background:none; color:#CC7832; line-height:1.2em; font:12px Menlo, Monaco, Consolas, monospace; word-wrap: break-word; white-space: pre-wrap; position:relative; z-index:99999; word-break: break-all',
+            'num' => 'font-weight:bold; color:#1299DA',
+            'const' => 'font-weight:bold',
+            'str' => 'font-weight:bold; color:#629755;',
+            'note' => 'color:#6897BB',
+            'ref' => 'color:#6E6E6E',
+            'public' => 'color:#262626',
+            'protected' => 'color:#262626',
+            'private' => 'color:#262626',
+            'meta' => 'color:#B729D9',
+            'key' => 'color:#789339',
+            'index' => 'color:#1299DA',
+            'ellipsis' => 'color:#CC7832',
+            'ns' => 'user-select:none;',
+        ],
+    ];
+
+    protected $dumpHeader;
+    protected $dumpPrefix = '<pre class=sf-dump id=%s data-indent-pad="%s">';
+    protected $dumpSuffix = '</pre><script>Sfdump(%s)</script>';
+    protected $dumpId = 'sf-dump';
+    protected $colors = true;
+    protected $headerIsDumped = false;
+    protected $lastDepth = -1;
+    protected $styles;
+
+    private $displayOptions = [
+        'maxDepth' => 1,
+        'maxStringLength' => 160,
+        'fileLinkFormat' => null,
+    ];
+    private $extraDisplayOptions = [];
+
+    /**
+     * {@inheritdoc}
+     */
+    public function __construct($output = null, string $charset = null, int $flags = 0)
+    {
+        AbstractDumper::__construct($output, $charset, $flags);
+        $this->dumpId = 'sf-dump-'.mt_rand();
+        $this->displayOptions['fileLinkFormat'] = ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format');
+        $this->styles = static::$themes['dark'] ?? self::$themes['dark'];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setStyles(array $styles)
+    {
+        $this->headerIsDumped = false;
+        $this->styles = $styles + $this->styles;
+    }
+
+    public function setTheme(string $themeName)
+    {
+        if (!isset(static::$themes[$themeName])) {
+            throw new \InvalidArgumentException(sprintf('Theme "%s" does not exist in class "%s".', $themeName, static::class));
+        }
+
+        $this->setStyles(static::$themes[$themeName]);
+    }
+
+    /**
+     * Configures display options.
+     *
+     * @param array $displayOptions A map of display options to customize the behavior
+     */
+    public function setDisplayOptions(array $displayOptions)
+    {
+        $this->headerIsDumped = false;
+        $this->displayOptions = $displayOptions + $this->displayOptions;
+    }
+
+    /**
+     * Sets an HTML header that will be dumped once in the output stream.
+     */
+    public function setDumpHeader(?string $header)
+    {
+        $this->dumpHeader = $header;
+    }
+
+    /**
+     * Sets an HTML prefix and suffix that will encapse every single dump.
+     */
+    public function setDumpBoundaries(string $prefix, string $suffix)
+    {
+        $this->dumpPrefix = $prefix;
+        $this->dumpSuffix = $suffix;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function dump(Data $data, $output = null, array $extraDisplayOptions = [])
+    {
+        $this->extraDisplayOptions = $extraDisplayOptions;
+        $result = parent::dump($data, $output);
+        $this->dumpId = 'sf-dump-'.mt_rand();
+
+        return $result;
+    }
+
+    /**
+     * Dumps the HTML header.
+     */
+    protected function getDumpHeader()
+    {
+        $this->headerIsDumped = $this->outputStream ?? $this->lineDumper;
+
+        if (null !== $this->dumpHeader) {
+            return $this->dumpHeader;
+        }
+
+        $line = str_replace('{$options}', json_encode($this->displayOptions, \JSON_FORCE_OBJECT), <<<'EOHTML'
+<script>
+Sfdump = window.Sfdump || (function (doc) {
+
+var refStyle = doc.createElement('style'),
+    rxEsc = /([.*+?^${}()|\[\]\/\\])/g,
+    idRx = /\bsf-dump-\d+-ref[012]\w+\b/,
+    keyHint = 0 <= navigator.platform.toUpperCase().indexOf('MAC') ? 'Cmd' : 'Ctrl',
+    addEventListener = function (e, n, cb) {
+        e.addEventListener(n, cb, false);
+    };
+
+refStyle.innerHTML = 'pre.sf-dump .sf-dump-compact, .sf-dump-str-collapse .sf-dump-str-collapse, .sf-dump-str-expand .sf-dump-str-expand { display: none; }';
+(doc.documentElement.firstElementChild || doc.documentElement.children[0]).appendChild(refStyle);
+refStyle = doc.createElement('style');
+(doc.documentElement.firstElementChild || doc.documentElement.children[0]).appendChild(refStyle);
+
+if (!doc.addEventListener) {
+    addEventListener = function (element, eventName, callback) {
+        element.attachEvent('on' + eventName, function (e) {
+            e.preventDefault = function () {e.returnValue = false;};
+            e.target = e.srcElement;
+            callback(e);
+        });
+    };
+}
+
+function toggle(a, recursive) {
+    var s = a.nextSibling || {}, oldClass = s.className, arrow, newClass;
+
+    if (/\bsf-dump-compact\b/.test(oldClass)) {
+        arrow = '▼';
+        newClass = 'sf-dump-expanded';
+    } else if (/\bsf-dump-expanded\b/.test(oldClass)) {
+        arrow = '▶';
+        newClass = 'sf-dump-compact';
+    } else {
+        return false;
+    }
+
+    if (doc.createEvent && s.dispatchEvent) {
+        var event = doc.createEvent('Event');
+        event.initEvent('sf-dump-expanded' === newClass ? 'sfbeforedumpexpand' : 'sfbeforedumpcollapse', true, false);
+
+        s.dispatchEvent(event);
+    }
+
+    a.lastChild.innerHTML = arrow;
+    s.className = s.className.replace(/\bsf-dump-(compact|expanded)\b/, newClass);
+
+    if (recursive) {
+        try {
+            a = s.querySelectorAll('.'+oldClass);
+            for (s = 0; s < a.length; ++s) {
+                if (-1 == a[s].className.indexOf(newClass)) {
+                    a[s].className = newClass;
+                    a[s].previousSibling.lastChild.innerHTML = arrow;
+                }
+            }
+        } catch (e) {
+        }
+    }
+
+    return true;
+};
+
+function collapse(a, recursive) {
+    var s = a.nextSibling || {}, oldClass = s.className;
+
+    if (/\bsf-dump-expanded\b/.test(oldClass)) {
+        toggle(a, recursive);
+
+        return true;
+    }
+
+    return false;
+};
+
+function expand(a, recursive) {
+    var s = a.nextSibling || {}, oldClass = s.className;
+
+    if (/\bsf-dump-compact\b/.test(oldClass)) {
+        toggle(a, recursive);
+
+        return true;
+    }
+
+    return false;
+};
+
+function collapseAll(root) {
+    var a = root.querySelector('a.sf-dump-toggle');
+    if (a) {
+        collapse(a, true);
+        expand(a);
+
+        return true;
+    }
+
+    return false;
+}
+
+function reveal(node) {
+    var previous, parents = [];
+
+    while ((node = node.parentNode || {}) && (previous = node.previousSibling) && 'A' === previous.tagName) {
+        parents.push(previous);
+    }
+
+    if (0 !== parents.length) {
+        parents.forEach(function (parent) {
+            expand(parent);
+        });
+
+        return true;
+    }
+
+    return false;
+}
+
+function highlight(root, activeNode, nodes) {
+    resetHighlightedNodes(root);
+
+    Array.from(nodes||[]).forEach(function (node) {
+        if (!/\bsf-dump-highlight\b/.test(node.className)) {
+            node.className = node.className + ' sf-dump-highlight';
+        }
+    });
+
+    if (!/\bsf-dump-highlight-active\b/.test(activeNode.className)) {
+        activeNode.className = activeNode.className + ' sf-dump-highlight-active';
+    }
+}
+
+function resetHighlightedNodes(root) {
+    Array.from(root.querySelectorAll('.sf-dump-str, .sf-dump-key, .sf-dump-public, .sf-dump-protected, .sf-dump-private')).forEach(function (strNode) {
+        strNode.className = strNode.className.replace(/\bsf-dump-highlight\b/, '');
+        strNode.className = strNode.className.replace(/\bsf-dump-highlight-active\b/, '');
+    });
+}
+
+return function (root, x) {
+    root = doc.getElementById(root);
+
+    var indentRx = new RegExp('^('+(root.getAttribute('data-indent-pad') || '  ').replace(rxEsc, '\\$1')+')+', 'm'),
+        options = {$options},
+        elt = root.getElementsByTagName('A'),
+        len = elt.length,
+        i = 0, s, h,
+        t = [];
+
+    while (i < len) t.push(elt[i++]);
+
+    for (i in x) {
+        options[i] = x[i];
+    }
+
+    function a(e, f) {
+        addEventListener(root, e, function (e, n) {
+            if ('A' == e.target.tagName) {
+                f(e.target, e);
+            } else if ('A' == e.target.parentNode.tagName) {
+                f(e.target.parentNode, e);
+            } else {
+                n = /\bsf-dump-ellipsis\b/.test(e.target.className) ? e.target.parentNode : e.target;
+
+                if ((n = n.nextElementSibling) && 'A' == n.tagName) {
+                    if (!/\bsf-dump-toggle\b/.test(n.className)) {
+                        n = n.nextElementSibling || n;
+                    }
+
+                    f(n, e, true);
+                }
+            }
+        });
+    };
+    function isCtrlKey(e) {
+        return e.ctrlKey || e.metaKey;
+    }
+    function xpathString(str) {
+        var parts = str.match(/[^'"]+|['"]/g).map(function (part) {
+            if ("'" == part)  {
+                return '"\'"';
+            }
+            if ('"' == part) {
+                return "'\"'";
+            }
+
+            return "'" + part + "'";
+        });
+
+        return "concat(" + parts.join(",") + ", '')";
+    }
+    function xpathHasClass(className) {
+        return "contains(concat(' ', normalize-space(@class), ' '), ' " + className +" ')";
+    }
+    addEventListener(root, 'mouseover', function (e) {
+        if ('' != refStyle.innerHTML) {
+            refStyle.innerHTML = '';
+        }
+    });
+    a('mouseover', function (a, e, c) {
+        if (c) {
+            e.target.style.cursor = "pointer";
+        } else if (a = idRx.exec(a.className)) {
+            try {
+                refStyle.innerHTML = 'pre.sf-dump .'+a[0]+'{background-color: #B729D9; color: #FFF !important; border-radius: 2px}';
+            } catch (e) {
+            }
+        }
+    });
+    a('click', function (a, e, c) {
+        if (/\bsf-dump-toggle\b/.test(a.className)) {
+            e.preventDefault();
+            if (!toggle(a, isCtrlKey(e))) {
+                var r = doc.getElementById(a.getAttribute('href').substr(1)),
+                    s = r.previousSibling,
+                    f = r.parentNode,
+                    t = a.parentNode;
+                t.replaceChild(r, a);
+                f.replaceChild(a, s);
+                t.insertBefore(s, r);
+                f = f.firstChild.nodeValue.match(indentRx);
+                t = t.firstChild.nodeValue.match(indentRx);
+                if (f && t && f[0] !== t[0]) {
+                    r.innerHTML = r.innerHTML.replace(new RegExp('^'+f[0].replace(rxEsc, '\\$1'), 'mg'), t[0]);
+                }
+                if (/\bsf-dump-compact\b/.test(r.className)) {
+                    toggle(s, isCtrlKey(e));
+                }
+            }
+
+            if (c) {
+            } else if (doc.getSelection) {
+                try {
+                    doc.getSelection().removeAllRanges();
+                } catch (e) {
+                    doc.getSelection().empty();
+                }
+            } else {
+                doc.selection.empty();
+            }
+        } else if (/\bsf-dump-str-toggle\b/.test(a.className)) {
+            e.preventDefault();
+            e = a.parentNode.parentNode;
+            e.className = e.className.replace(/\bsf-dump-str-(expand|collapse)\b/, a.parentNode.className);
+        }
+    });
+
+    elt = root.getElementsByTagName('SAMP');
+    len = elt.length;
+    i = 0;
+
+    while (i < len) t.push(elt[i++]);
+    len = t.length;
+
+    for (i = 0; i < len; ++i) {
+        elt = t[i];
+        if ('SAMP' == elt.tagName) {
+            a = elt.previousSibling || {};
+            if ('A' != a.tagName) {
+                a = doc.createElement('A');
+                a.className = 'sf-dump-ref';
+                elt.parentNode.insertBefore(a, elt);
+            } else {
+                a.innerHTML += ' ';
+            }
+            a.title = (a.title ? a.title+'\n[' : '[')+keyHint+'+click] Expand all children';
+            a.innerHTML += elt.className == 'sf-dump-compact' ? '<span>▶</span>' : '<span>▼</span>';
+            a.className += ' sf-dump-toggle';
+
+            x = 1;
+            if ('sf-dump' != elt.parentNode.className) {
+                x += elt.parentNode.getAttribute('data-depth')/1;
+            }
+        } else if (/\bsf-dump-ref\b/.test(elt.className) && (a = elt.getAttribute('href'))) {
+            a = a.substr(1);
+            elt.className += ' '+a;
+
+            if (/[\[{]$/.test(elt.previousSibling.nodeValue)) {
+                a = a != elt.nextSibling.id && doc.getElementById(a);
+                try {
+                    s = a.nextSibling;
+                    elt.appendChild(a);
+                    s.parentNode.insertBefore(a, s);
+                    if (/^[@#]/.test(elt.innerHTML)) {
+                        elt.innerHTML += ' <span>▶</span>';
+                    } else {
+                        elt.innerHTML = '<span>▶</span>';
+                        elt.className = 'sf-dump-ref';
+                    }
+                    elt.className += ' sf-dump-toggle';
+                } catch (e) {
+                    if ('&' == elt.innerHTML.charAt(0)) {
+                        elt.innerHTML = '…';
+                        elt.className = 'sf-dump-ref';
+                    }
+                }
+            }
+        }
+    }
+
+    if (doc.evaluate && Array.from && root.children.length > 1) {
+        root.setAttribute('tabindex', 0);
+
+        SearchState = function () {
+            this.nodes = [];
+            this.idx = 0;
+        };
+        SearchState.prototype = {
+            next: function () {
+                if (this.isEmpty()) {
+                    return this.current();
+                }
+                this.idx = this.idx < (this.nodes.length - 1) ? this.idx + 1 : 0;
+
+                return this.current();
+            },
+            previous: function () {
+                if (this.isEmpty()) {
+                    return this.current();
+                }
+                this.idx = this.idx > 0 ? this.idx - 1 : (this.nodes.length - 1);
+
+                return this.current();
+            },
+            isEmpty: function () {
+                return 0 === this.count();
+            },
+            current: function () {
+                if (this.isEmpty()) {
+                    return null;
+                }
+                return this.nodes[this.idx];
+            },
+            reset: function () {
+                this.nodes = [];
+                this.idx = 0;
+            },
+            count: function () {
+                return this.nodes.length;
+            },
+        };
+
+        function showCurrent(state)
+        {
+            var currentNode = state.current(), currentRect, searchRect;
+            if (currentNode) {
+                reveal(currentNode);
+                highlight(root, currentNode, state.nodes);
+                if ('scrollIntoView' in currentNode) {
+                    currentNode.scrollIntoView(true);
+                    currentRect = currentNode.getBoundingClientRect();
+                    searchRect = search.getBoundingClientRect();
+                    if (currentRect.top < (searchRect.top + searchRect.height)) {
+                        window.scrollBy(0, -(searchRect.top + searchRect.height + 5));
+                    }
+                }
+            }
+            counter.textContent = (state.isEmpty() ? 0 : state.idx + 1) + ' of ' + state.count();
+        }
+
+        var search = doc.createElement('div');
+        search.className = 'sf-dump-search-wrapper sf-dump-search-hidden';
+        search.innerHTML = '
+            <input type="text" class="sf-dump-search-input">
+            <span class="sf-dump-search-count">0 of 0<\/span>
+            <button type="button" class="sf-dump-search-input-previous" tabindex="-1">
+                <svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1683 1331l-166 165q-19 19-45 19t-45-19L896 965l-531 531q-19 19-45 19t-45-19l-166-165q-19-19-19-45.5t19-45.5l742-741q19-19 45-19t45 19l742 741q19 19 19 45.5t-19 45.5z"\/><\/svg>
+            <\/button>
+            <button type="button" class="sf-dump-search-input-next" tabindex="-1">
+                <svg viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1683 808l-742 741q-19 19-45 19t-45-19L109 808q-19-19-19-45.5t19-45.5l166-165q19-19 45-19t45 19l531 531 531-531q19-19 45-19t45 19l166 165q19 19 19 45.5t-19 45.5z"\/><\/svg>
+            <\/button>
+        ';
+        root.insertBefore(search, root.firstChild);
+
+        var state = new SearchState();
+        var searchInput = search.querySelector('.sf-dump-search-input');
+        var counter = search.querySelector('.sf-dump-search-count');
+        var searchInputTimer = 0;
+        var previousSearchQuery = '';
+
+        addEventListener(searchInput, 'keyup', function (e) {
+            var searchQuery = e.target.value;
+            /* Don't perform anything if the pressed key didn't change the query */
+            if (searchQuery === previousSearchQuery) {
+                return;
+            }
+            previousSearchQuery = searchQuery;
+            clearTimeout(searchInputTimer);
+            searchInputTimer = setTimeout(function () {
+                state.reset();
+                collapseAll(root);
+                resetHighlightedNodes(root);
+                if ('' === searchQuery) {
+                    counter.textContent = '0 of 0';
+
+                    return;
+                }
+
+                var classMatches = [
+                    "sf-dump-str",
+                    "sf-dump-key",
+                    "sf-dump-public",
+                    "sf-dump-protected",
+                    "sf-dump-private",
+                ].map(xpathHasClass).join(' or ');
+
+                var xpathResult = doc.evaluate('.//span[' + classMatches + '][contains(translate(child::text(), ' + xpathString(searchQuery.toUpperCase()) + ', ' + xpathString(searchQuery.toLowerCase()) + '), ' + xpathString(searchQuery.toLowerCase()) + ')]', root, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
+
+                while (node = xpathResult.iterateNext()) state.nodes.push(node);
+
+                showCurrent(state);
+            }, 400);
+        });
+
+        Array.from(search.querySelectorAll('.sf-dump-search-input-next, .sf-dump-search-input-previous')).forEach(function (btn) {
+            addEventListener(btn, 'click', function (e) {
+                e.preventDefault();
+                -1 !== e.target.className.indexOf('next') ? state.next() : state.previous();
+                searchInput.focus();
+                collapseAll(root);
+                showCurrent(state);
+            })
+        });
+
+        addEventListener(root, 'keydown', function (e) {
+            var isSearchActive = !/\bsf-dump-search-hidden\b/.test(search.className);
+            if ((114 === e.keyCode && !isSearchActive) || (isCtrlKey(e) && 70 === e.keyCode)) {
+                /* F3 or CMD/CTRL + F */
+                if (70 === e.keyCode && document.activeElement === searchInput) {
+                   /*
+                    * If CMD/CTRL + F is hit while having focus on search input,
+                    * the user probably meant to trigger browser search instead.
+                    * Let the browser execute its behavior:
+                    */
+                    return;
+                }
+
+                e.preventDefault();
+                search.className = search.className.replace(/\bsf-dump-search-hidden\b/, '');
+                searchInput.focus();
+            } else if (isSearchActive) {
+                if (27 === e.keyCode) {
+                    /* ESC key */
+                    search.className += ' sf-dump-search-hidden';
+                    e.preventDefault();
+                    resetHighlightedNodes(root);
+                    searchInput.value = '';
+                } else if (
+                    (isCtrlKey(e) && 71 === e.keyCode) /* CMD/CTRL + G */
+                    || 13 === e.keyCode /* Enter */
+                    || 114 === e.keyCode /* F3 */
+                ) {
+                    e.preventDefault();
+                    e.shiftKey ? state.previous() : state.next();
+                    collapseAll(root);
+                    showCurrent(state);
+                }
+            }
+        });
+    }
+
+    if (0 >= options.maxStringLength) {
+        return;
+    }
+    try {
+        elt = root.querySelectorAll('.sf-dump-str');
+        len = elt.length;
+        i = 0;
+        t = [];
+
+        while (i < len) t.push(elt[i++]);
+        len = t.length;
+
+        for (i = 0; i < len; ++i) {
+            elt = t[i];
+            s = elt.innerText || elt.textContent;
+            x = s.length - options.maxStringLength;
+            if (0 < x) {
+                h = elt.innerHTML;
+                elt[elt.innerText ? 'innerText' : 'textContent'] = s.substring(0, options.maxStringLength);
+                elt.className += ' sf-dump-str-collapse';
+                elt.innerHTML = '<span class=sf-dump-str-collapse>'+h+'<a class="sf-dump-ref sf-dump-str-toggle" title="Collapse"> ◀</a></span>'+
+                    '<span class=sf-dump-str-expand>'+elt.innerHTML+'<a class="sf-dump-ref sf-dump-str-toggle" title="'+x+' remaining characters"> ▶</a></span>';
+            }
+        }
+    } catch (e) {
+    }
+};
+
+})(document);
+</script><style>
+pre.sf-dump {
+    display: block;
+    white-space: pre;
+    padding: 5px;
+    overflow: initial !important;
+}
+pre.sf-dump:after {
+   content: "";
+   visibility: hidden;
+   display: block;
+   height: 0;
+   clear: both;
+}
+pre.sf-dump span {
+    display: inline;
+}
+pre.sf-dump a {
+    text-decoration: none;
+    cursor: pointer;
+    border: 0;
+    outline: none;
+    color: inherit;
+}
+pre.sf-dump img {
+    max-width: 50em;
+    max-height: 50em;
+    margin: .5em 0 0 0;
+    padding: 0;
+    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAHUlEQVQY02O8zAABilCaiQEN0EeA8QuUcX9g3QEAAjcC5piyhyEAAAAASUVORK5CYII=) #D3D3D3;
+}
+pre.sf-dump .sf-dump-ellipsis {
+    display: inline-block;
+    overflow: visible;
+    text-overflow: ellipsis;
+    max-width: 5em;
+    white-space: nowrap;
+    overflow: hidden;
+    vertical-align: top;
+}
+pre.sf-dump .sf-dump-ellipsis+.sf-dump-ellipsis {
+    max-width: none;
+}
+pre.sf-dump code {
+    display:inline;
+    padding:0;
+    background:none;
+}
+.sf-dump-public.sf-dump-highlight,
+.sf-dump-protected.sf-dump-highlight,
+.sf-dump-private.sf-dump-highlight,
+.sf-dump-str.sf-dump-highlight,
+.sf-dump-key.sf-dump-highlight {
+    background: rgba(111, 172, 204, 0.3);
+    border: 1px solid #7DA0B1;
+    border-radius: 3px;
+}
+.sf-dump-public.sf-dump-highlight-active,
+.sf-dump-protected.sf-dump-highlight-active,
+.sf-dump-private.sf-dump-highlight-active,
+.sf-dump-str.sf-dump-highlight-active,
+.sf-dump-key.sf-dump-highlight-active {
+    background: rgba(253, 175, 0, 0.4);
+    border: 1px solid #ffa500;
+    border-radius: 3px;
+}
+pre.sf-dump .sf-dump-search-hidden {
+    display: none !important;
+}
+pre.sf-dump .sf-dump-search-wrapper {
+    font-size: 0;
+    white-space: nowrap;
+    margin-bottom: 5px;
+    display: flex;
+    position: -webkit-sticky;
+    position: sticky;
+    top: 5px;
+}
+pre.sf-dump .sf-dump-search-wrapper > * {
+    vertical-align: top;
+    box-sizing: border-box;
+    height: 21px;
+    font-weight: normal;
+    border-radius: 0;
+    background: #FFF;
+    color: #757575;
+    border: 1px solid #BBB;
+}
+pre.sf-dump .sf-dump-search-wrapper > input.sf-dump-search-input {
+    padding: 3px;
+    height: 21px;
+    font-size: 12px;
+    border-right: none;
+    border-top-left-radius: 3px;
+    border-bottom-left-radius: 3px;
+    color: #000;
+    min-width: 15px;
+    width: 100%;
+}
+pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-next,
+pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-previous {
+    background: #F2F2F2;
+    outline: none;
+    border-left: none;
+    font-size: 0;
+    line-height: 0;
+}
+pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-next {
+    border-top-right-radius: 3px;
+    border-bottom-right-radius: 3px;
+}
+pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-next > svg,
+pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-input-previous > svg {
+    pointer-events: none;
+    width: 12px;
+    height: 12px;
+}
+pre.sf-dump .sf-dump-search-wrapper > .sf-dump-search-count {
+    display: inline-block;
+    padding: 0 5px;
+    margin: 0;
+    border-left: none;
+    line-height: 21px;
+    font-size: 12px;
+}
+EOHTML
+        );
+
+        foreach ($this->styles as $class => $style) {
+            $line .= 'pre.sf-dump'.('default' === $class ? ', pre.sf-dump' : '').' .sf-dump-'.$class.'{'.$style.'}';
+        }
+        $line .= 'pre.sf-dump .sf-dump-ellipsis-note{'.$this->styles['note'].'}';
+
+        return $this->dumpHeader = preg_replace('/\s+/', ' ', $line).'</style>'.$this->dumpHeader;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function dumpString(Cursor $cursor, string $str, bool $bin, int $cut)
+    {
+        if ('' === $str && isset($cursor->attr['img-data'], $cursor->attr['content-type'])) {
+            $this->dumpKey($cursor);
+            $this->line .= $this->style('default', $cursor->attr['img-size'] ?? '', []);
+            $this->line .= $cursor->depth >= $this->displayOptions['maxDepth'] ? ' <samp class=sf-dump-compact>' : ' <samp class=sf-dump-expanded>';
+            $this->endValue($cursor);
+            $this->line .= $this->indentPad;
+            $this->line .= sprintf('<img src="data:%s;base64,%s" /></samp>', $cursor->attr['content-type'], base64_encode($cursor->attr['img-data']));
+            $this->endValue($cursor);
+        } else {
+            parent::dumpString($cursor, $str, $bin, $cut);
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function enterHash(Cursor $cursor, int $type, $class, bool $hasChild)
+    {
+        if (Cursor::HASH_OBJECT === $type) {
+            $cursor->attr['depth'] = $cursor->depth;
+        }
+        parent::enterHash($cursor, $type, $class, false);
+
+        if ($cursor->skipChildren || $cursor->depth >= $this->displayOptions['maxDepth']) {
+            $cursor->skipChildren = false;
+            $eol = ' class=sf-dump-compact>';
+        } else {
+            $this->expandNextHash = false;
+            $eol = ' class=sf-dump-expanded>';
+        }
+
+        if ($hasChild) {
+            $this->line .= '<samp data-depth='.($cursor->depth + 1);
+            if ($cursor->refIndex) {
+                $r = Cursor::HASH_OBJECT !== $type ? 1 - (Cursor::HASH_RESOURCE !== $type) : 2;
+                $r .= $r && 0 < $cursor->softRefHandle ? $cursor->softRefHandle : $cursor->refIndex;
+
+                $this->line .= sprintf(' id=%s-ref%s', $this->dumpId, $r);
+            }
+            $this->line .= $eol;
+            $this->dumpLine($cursor->depth);
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function leaveHash(Cursor $cursor, int $type, $class, bool $hasChild, int $cut)
+    {
+        $this->dumpEllipsis($cursor, $hasChild, $cut);
+        if ($hasChild) {
+            $this->line .= '</samp>';
+        }
+        parent::leaveHash($cursor, $type, $class, $hasChild, 0);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function style(string $style, string $value, array $attr = [])
+    {
+        if ('' === $value) {
+            return '';
+        }
+
+        $v = esc($value);
+
+        if ('ref' === $style) {
+            if (empty($attr['count'])) {
+                return sprintf('<a class=sf-dump-ref>%s</a>', $v);
+            }
+            $r = ('#' !== $v[0] ? 1 - ('@' !== $v[0]) : 2).substr($value, 1);
+
+            return sprintf('<a class=sf-dump-ref href=#%s-ref%s title="%d occurrences">%s</a>', $this->dumpId, $r, 1 + $attr['count'], $v);
+        }
+
+        if ('const' === $style && isset($attr['value'])) {
+            $style .= sprintf(' title="%s"', esc(is_scalar($attr['value']) ? $attr['value'] : json_encode($attr['value'])));
+        } elseif ('public' === $style) {
+            $style .= sprintf(' title="%s"', empty($attr['dynamic']) ? 'Public property' : 'Runtime added dynamic property');
+        } elseif ('str' === $style && 1 < $attr['length']) {
+            $style .= sprintf(' title="%d%s characters"', $attr['length'], $attr['binary'] ? ' binary or non-UTF-8' : '');
+        } elseif ('note' === $style && 0 < ($attr['depth'] ?? 0) && false !== $c = strrpos($value, '\\')) {
+            $style .= ' title=""';
+            $attr += [
+                'ellipsis' => \strlen($value) - $c,
+                'ellipsis-type' => 'note',
+                'ellipsis-tail' => 1,
+            ];
+        } elseif ('protected' === $style) {
+            $style .= ' title="Protected property"';
+        } elseif ('meta' === $style && isset($attr['title'])) {
+            $style .= sprintf(' title="%s"', esc($this->utf8Encode($attr['title'])));
+        } elseif ('private' === $style) {
+            $style .= sprintf(' title="Private property defined in class:&#10;`%s`"', esc($this->utf8Encode($attr['class'])));
+        }
+        $map = static::$controlCharsMap;
+
+        if (isset($attr['ellipsis'])) {
+            $class = 'sf-dump-ellipsis';
+            if (isset($attr['ellipsis-type'])) {
+                $class = sprintf('"%s sf-dump-ellipsis-%s"', $class, $attr['ellipsis-type']);
+            }
+            $label = esc(substr($value, -$attr['ellipsis']));
+            $style = str_replace(' title="', " title=\"$v\n", $style);
+            $v = sprintf('<span class=%s>%s</span>', $class, substr($v, 0, -\strlen($label)));
+
+            if (!empty($attr['ellipsis-tail'])) {
+                $tail = \strlen(esc(substr($value, -$attr['ellipsis'], $attr['ellipsis-tail'])));
+                $v .= sprintf('<span class=%s>%s</span>%s', $class, substr($label, 0, $tail), substr($label, $tail));
+            } else {
+                $v .= $label;
+            }
+        }
+
+        $v = "<span class=sf-dump-{$style}>".preg_replace_callback(static::$controlCharsRx, function ($c) use ($map) {
+            $s = $b = '<span class="sf-dump-default';
+            $c = $c[$i = 0];
+            if ($ns = "\r" === $c[$i] || "\n" === $c[$i]) {
+                $s .= ' sf-dump-ns';
+            }
+            $s .= '">';
+            do {
+                if (("\r" === $c[$i] || "\n" === $c[$i]) !== $ns) {
+                    $s .= '</span>'.$b;
+                    if ($ns = !$ns) {
+                        $s .= ' sf-dump-ns';
+                    }
+                    $s .= '">';
+                }
+
+                $s .= $map[$c[$i]] ?? sprintf('\x%02X', \ord($c[$i]));
+            } while (isset($c[++$i]));
+
+            return $s.'</span>';
+        }, $v).'</span>';
+
+        if (isset($attr['file']) && $href = $this->getSourceLink($attr['file'], $attr['line'] ?? 0)) {
+            $attr['href'] = $href;
+        }
+        if (isset($attr['href'])) {
+            $target = isset($attr['file']) ? '' : ' target="_blank"';
+            $v = sprintf('<a href="%s"%s rel="noopener noreferrer">%s</a>', esc($this->utf8Encode($attr['href'])), $target, $v);
+        }
+        if (isset($attr['lang'])) {
+            $v = sprintf('<code class="%s">%s</code>', esc($attr['lang']), $v);
+        }
+
+        return $v;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    protected function dumpLine(int $depth, bool $endOfValue = false)
+    {
+        if (-1 === $this->lastDepth) {
+            $this->line = sprintf($this->dumpPrefix, $this->dumpId, $this->indentPad).$this->line;
+        }
+        if ($this->headerIsDumped !== ($this->outputStream ?? $this->lineDumper)) {
+            $this->line = $this->getDumpHeader().$this->line;
+        }
+
+        if (-1 === $depth) {
+            $args = ['"'.$this->dumpId.'"'];
+            if ($this->extraDisplayOptions) {
+                $args[] = json_encode($this->extraDisplayOptions, \JSON_FORCE_OBJECT);
+            }
+            // Replace is for BC
+            $this->line .= sprintf(str_replace('"%s"', '%s', $this->dumpSuffix), implode(', ', $args));
+        }
+        $this->lastDepth = $depth;
+
+        $this->line = mb_convert_encoding($this->line, 'HTML-ENTITIES', 'UTF-8');
+
+        if (-1 === $depth) {
+            AbstractDumper::dumpLine(0);
+        }
+        AbstractDumper::dumpLine($depth);
+    }
+
+    private function getSourceLink(string $file, int $line)
+    {
+        $options = $this->extraDisplayOptions + $this->displayOptions;
+
+        if ($fmt = $options['fileLinkFormat']) {
+            return \is_string($fmt) ? strtr($fmt, ['%f' => $file, '%l' => $line]) : $fmt->format($file, $line);
+        }
+
+        return false;
+    }
+}
+
+function esc(string $str)
+{
+    return htmlspecialchars($str, \ENT_QUOTES, 'UTF-8');
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/ServerDumper.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/ServerDumper.php
new file mode 100644
index 0000000..94795bf
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Dumper/ServerDumper.php
@@ -0,0 +1,53 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Dumper;
+
+use Symfony\Component\VarDumper\Cloner\Data;
+use Symfony\Component\VarDumper\Dumper\ContextProvider\ContextProviderInterface;
+use Symfony\Component\VarDumper\Server\Connection;
+
+/**
+ * ServerDumper forwards serialized Data clones to a server.
+ *
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ */
+class ServerDumper implements DataDumperInterface
+{
+    private $connection;
+    private $wrappedDumper;
+
+    /**
+     * @param string                     $host             The server host
+     * @param DataDumperInterface|null   $wrappedDumper    A wrapped instance used whenever we failed contacting the server
+     * @param ContextProviderInterface[] $contextProviders Context providers indexed by context name
+     */
+    public function __construct(string $host, DataDumperInterface $wrappedDumper = null, array $contextProviders = [])
+    {
+        $this->connection = new Connection($host, $contextProviders);
+        $this->wrappedDumper = $wrappedDumper;
+    }
+
+    public function getContextProviders(): array
+    {
+        return $this->connection->getContextProviders();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function dump(Data $data)
+    {
+        if (!$this->connection->write($data) && $this->wrappedDumper) {
+            $this->wrappedDumper->dump($data);
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Exception/ThrowingCasterException.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Exception/ThrowingCasterException.php
new file mode 100644
index 0000000..122f0d3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Exception/ThrowingCasterException.php
@@ -0,0 +1,26 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Exception;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class ThrowingCasterException extends \Exception
+{
+    /**
+     * @param \Throwable $prev The exception thrown from the caster
+     */
+    public function __construct(\Throwable $prev)
+    {
+        parent::__construct('Unexpected '.\get_class($prev).' thrown from a caster: '.$prev->getMessage(), 0, $prev);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/LICENSE b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/LICENSE
new file mode 100644
index 0000000..c1f0aac
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2014-2021 Fabien Potencier
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/README.md b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/README.md
new file mode 100644
index 0000000..bdac244
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/README.md
@@ -0,0 +1,15 @@
+VarDumper Component
+===================
+
+The VarDumper component provides mechanisms for walking through any arbitrary
+PHP variable. It provides a better `dump()` function that you can use instead
+of `var_dump`.
+
+Resources
+---------
+
+ * [Documentation](https://symfony.com/doc/current/components/var_dumper/introduction.html)
+ * [Contributing](https://symfony.com/doc/current/contributing/index.html)
+ * [Report issues](https://github.com/symfony/symfony/issues) and
+   [send Pull Requests](https://github.com/symfony/symfony/pulls)
+   in the [main Symfony repository](https://github.com/symfony/symfony)
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Resources/bin/var-dump-server b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Resources/bin/var-dump-server
new file mode 100755
index 0000000..98c813a
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Resources/bin/var-dump-server
@@ -0,0 +1,63 @@
+#!/usr/bin/env php
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Starts a dump server to collect and output dumps on a single place with multiple formats support.
+ *
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ */
+
+use Psr\Log\LoggerInterface;
+use Symfony\Component\Console\Application;
+use Symfony\Component\Console\Input\ArgvInput;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Logger\ConsoleLogger;
+use Symfony\Component\Console\Output\ConsoleOutput;
+use Symfony\Component\VarDumper\Command\ServerDumpCommand;
+use Symfony\Component\VarDumper\Server\DumpServer;
+
+function includeIfExists(string $file): bool
+{
+    return file_exists($file) && include $file;
+}
+
+if (
+    !includeIfExists(__DIR__ . '/../../../../autoload.php') &&
+    !includeIfExists(__DIR__ . '/../../vendor/autoload.php') &&
+    !includeIfExists(__DIR__ . '/../../../../../../vendor/autoload.php')
+) {
+    fwrite(STDERR, 'Install dependencies using Composer.'.PHP_EOL);
+    exit(1);
+}
+
+if (!class_exists(Application::class)) {
+    fwrite(STDERR, 'You need the "symfony/console" component in order to run the VarDumper server.'.PHP_EOL);
+    exit(1);
+}
+
+$input = new ArgvInput();
+$output = new ConsoleOutput();
+$defaultHost = '127.0.0.1:9912';
+$host = $input->getParameterOption(['--host'], $_SERVER['VAR_DUMPER_SERVER'] ?? $defaultHost, true);
+$logger = interface_exists(LoggerInterface::class) ? new ConsoleLogger($output->getErrorOutput()) : null;
+
+$app = new Application();
+
+$app->getDefinition()->addOption(
+    new InputOption('--host', null, InputOption::VALUE_REQUIRED, 'The address the server should listen to', $defaultHost)
+);
+
+$app->add($command = new ServerDumpCommand(new DumpServer($host, $logger)))
+    ->getApplication()
+    ->setDefaultCommand($command->getName(), true)
+    ->run($input, $output)
+;
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Resources/css/htmlDescriptor.css b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Resources/css/htmlDescriptor.css
new file mode 100644
index 0000000..8f706d6
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Resources/css/htmlDescriptor.css
@@ -0,0 +1,130 @@
+body {
+    display: flex;
+    flex-direction: column-reverse;
+    justify-content: flex-end;
+    max-width: 1140px;
+    margin: auto;
+    padding: 15px;
+    word-wrap: break-word;
+    background-color: #F9F9F9;
+    color: #222;
+    font-family: Helvetica, Arial, sans-serif;
+    font-size: 14px;
+    line-height: 1.4;
+}
+p {
+    margin: 0;
+}
+a {
+    color: #218BC3;
+    text-decoration: none;
+}
+a:hover {
+    text-decoration: underline;
+}
+.text-small {
+    font-size: 12px !important;
+}
+article {
+    margin: 5px;
+    margin-bottom: 10px;
+}
+article > header > .row {
+    display: flex;
+    flex-direction: row;
+    align-items: baseline;
+    margin-bottom: 10px;
+}
+article > header > .row > .col {
+    flex: 1;
+    display: flex;
+    align-items: baseline;
+}
+article > header > .row > h2 {
+    font-size: 14px;
+    color: #222;
+    font-weight: normal;
+    font-family: "Lucida Console", monospace, sans-serif;
+    word-break: break-all;
+    margin: 20px 5px 0 0;
+    user-select: all;
+}
+article > header > .row > h2 > code {
+    white-space: nowrap;
+    user-select: none;
+    color: #cc2255;
+    background-color: #f7f7f9;
+    border: 1px solid #e1e1e8;
+    border-radius: 3px;
+    margin-right: 5px;
+    padding: 0 3px;
+}
+article > header > .row > time.col {
+    flex: 0;
+    text-align: right;
+    white-space: nowrap;
+    color: #999;
+    font-style: italic;
+}
+article > header ul.tags {
+    list-style: none;
+    padding: 0;
+    margin: 0;
+    font-size: 12px;
+}
+article > header ul.tags > li {
+    user-select: all;
+    margin-bottom: 2px;
+}
+article > header ul.tags > li > span.badge {
+    display: inline-block;
+    padding: .25em .4em;
+    margin-right: 5px;
+    border-radius: 4px;
+    background-color: #6c757d3b;
+    color: #524d4d;
+    font-size: 12px;
+    text-align: center;
+    font-weight: 700;
+    line-height: 1;
+    white-space: nowrap;
+    vertical-align: baseline;
+    user-select: none;
+}
+article > section.body {
+    border: 1px solid #d8d8d8;
+    background: #FFF;
+    padding: 10px;
+    border-radius: 3px;
+}
+pre.sf-dump {
+    border-radius: 3px;
+    margin-bottom: 0;
+}
+.hidden {
+    display: none !important;
+}
+.dumped-tag > .sf-dump {
+    display: inline-block;
+    margin: 0;
+    padding: 1px 5px;
+    line-height: 1.4;
+    vertical-align: top;
+    background-color: transparent;
+    user-select: auto;
+}
+.dumped-tag > pre.sf-dump,
+.dumped-tag > .sf-dump-default {
+    color: #CC7832;
+    background: none;
+}
+.dumped-tag > .sf-dump .sf-dump-str { color: #629755; }
+.dumped-tag > .sf-dump .sf-dump-private,
+.dumped-tag > .sf-dump .sf-dump-protected,
+.dumped-tag > .sf-dump .sf-dump-public { color: #262626; }
+.dumped-tag > .sf-dump .sf-dump-note { color: #6897BB; }
+.dumped-tag > .sf-dump .sf-dump-key { color: #789339; }
+.dumped-tag > .sf-dump .sf-dump-ref { color: #6E6E6E; }
+.dumped-tag > .sf-dump .sf-dump-ellipsis { color: #CC7832; max-width: 100em; }
+.dumped-tag > .sf-dump .sf-dump-ellipsis-path { max-width: 5em; }
+.dumped-tag > .sf-dump .sf-dump-ns { user-select: none; }
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Resources/functions/dump.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Resources/functions/dump.php
new file mode 100644
index 0000000..a485d57
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Resources/functions/dump.php
@@ -0,0 +1,43 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+use Symfony\Component\VarDumper\VarDumper;
+
+if (!function_exists('dump')) {
+    /**
+     * @author Nicolas Grekas <p@tchwork.com>
+     */
+    function dump($var, ...$moreVars)
+    {
+        VarDumper::dump($var);
+
+        foreach ($moreVars as $v) {
+            VarDumper::dump($v);
+        }
+
+        if (1 < func_num_args()) {
+            return func_get_args();
+        }
+
+        return $var;
+    }
+}
+
+if (!function_exists('dd')) {
+    function dd(...$vars)
+    {
+        foreach ($vars as $v) {
+            VarDumper::dump($v);
+        }
+
+        exit(1);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Resources/js/htmlDescriptor.js b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Resources/js/htmlDescriptor.js
new file mode 100644
index 0000000..63101e5
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Resources/js/htmlDescriptor.js
@@ -0,0 +1,10 @@
+document.addEventListener('DOMContentLoaded', function() {
+  let prev = null;
+  Array.from(document.getElementsByTagName('article')).reverse().forEach(function (article) {
+    const dedupId = article.dataset.dedupId;
+    if (dedupId === prev) {
+      article.getElementsByTagName('header')[0].classList.add('hidden');
+    }
+    prev = dedupId;
+  });
+});
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Server/Connection.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Server/Connection.php
new file mode 100644
index 0000000..55d9214
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Server/Connection.php
@@ -0,0 +1,95 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Server;
+
+use Symfony\Component\VarDumper\Cloner\Data;
+use Symfony\Component\VarDumper\Dumper\ContextProvider\ContextProviderInterface;
+
+/**
+ * Forwards serialized Data clones to a server.
+ *
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ */
+class Connection
+{
+    private $host;
+    private $contextProviders;
+    private $socket;
+
+    /**
+     * @param string                     $host             The server host
+     * @param ContextProviderInterface[] $contextProviders Context providers indexed by context name
+     */
+    public function __construct(string $host, array $contextProviders = [])
+    {
+        if (!str_contains($host, '://')) {
+            $host = 'tcp://'.$host;
+        }
+
+        $this->host = $host;
+        $this->contextProviders = $contextProviders;
+    }
+
+    public function getContextProviders(): array
+    {
+        return $this->contextProviders;
+    }
+
+    public function write(Data $data): bool
+    {
+        $socketIsFresh = !$this->socket;
+        if (!$this->socket = $this->socket ?: $this->createSocket()) {
+            return false;
+        }
+
+        $context = ['timestamp' => microtime(true)];
+        foreach ($this->contextProviders as $name => $provider) {
+            $context[$name] = $provider->getContext();
+        }
+        $context = array_filter($context);
+        $encodedPayload = base64_encode(serialize([$data, $context]))."\n";
+
+        set_error_handler([self::class, 'nullErrorHandler']);
+        try {
+            if (-1 !== stream_socket_sendto($this->socket, $encodedPayload)) {
+                return true;
+            }
+            if (!$socketIsFresh) {
+                stream_socket_shutdown($this->socket, \STREAM_SHUT_RDWR);
+                fclose($this->socket);
+                $this->socket = $this->createSocket();
+            }
+            if (-1 !== stream_socket_sendto($this->socket, $encodedPayload)) {
+                return true;
+            }
+        } finally {
+            restore_error_handler();
+        }
+
+        return false;
+    }
+
+    private static function nullErrorHandler(int $t, string $m)
+    {
+        // no-op
+    }
+
+    private function createSocket()
+    {
+        set_error_handler([self::class, 'nullErrorHandler']);
+        try {
+            return stream_socket_client($this->host, $errno, $errstr, 3, \STREAM_CLIENT_CONNECT | \STREAM_CLIENT_ASYNC_CONNECT);
+        } finally {
+            restore_error_handler();
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Server/DumpServer.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Server/DumpServer.php
new file mode 100644
index 0000000..7cb5bf0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Server/DumpServer.php
@@ -0,0 +1,111 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Server;
+
+use Psr\Log\LoggerInterface;
+use Symfony\Component\VarDumper\Cloner\Data;
+use Symfony\Component\VarDumper\Cloner\Stub;
+
+/**
+ * A server collecting Data clones sent by a ServerDumper.
+ *
+ * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
+ *
+ * @final
+ */
+class DumpServer
+{
+    private $host;
+    private $socket;
+    private $logger;
+
+    public function __construct(string $host, LoggerInterface $logger = null)
+    {
+        if (!str_contains($host, '://')) {
+            $host = 'tcp://'.$host;
+        }
+
+        $this->host = $host;
+        $this->logger = $logger;
+    }
+
+    public function start(): void
+    {
+        if (!$this->socket = stream_socket_server($this->host, $errno, $errstr)) {
+            throw new \RuntimeException(sprintf('Server start failed on "%s": ', $this->host).$errstr.' '.$errno);
+        }
+    }
+
+    public function listen(callable $callback): void
+    {
+        if (null === $this->socket) {
+            $this->start();
+        }
+
+        foreach ($this->getMessages() as $clientId => $message) {
+            if ($this->logger) {
+                $this->logger->info('Received a payload from client {clientId}', ['clientId' => $clientId]);
+            }
+
+            $payload = @unserialize(base64_decode($message), ['allowed_classes' => [Data::class, Stub::class]]);
+
+            // Impossible to decode the message, give up.
+            if (false === $payload) {
+                if ($this->logger) {
+                    $this->logger->warning('Unable to decode a message from {clientId} client.', ['clientId' => $clientId]);
+                }
+
+                continue;
+            }
+
+            if (!\is_array($payload) || \count($payload) < 2 || !$payload[0] instanceof Data || !\is_array($payload[1])) {
+                if ($this->logger) {
+                    $this->logger->warning('Invalid payload from {clientId} client. Expected an array of two elements (Data $data, array $context)', ['clientId' => $clientId]);
+                }
+
+                continue;
+            }
+
+            [$data, $context] = $payload;
+
+            $callback($data, $context, $clientId);
+        }
+    }
+
+    public function getHost(): string
+    {
+        return $this->host;
+    }
+
+    private function getMessages(): iterable
+    {
+        $sockets = [(int) $this->socket => $this->socket];
+        $write = [];
+
+        while (true) {
+            $read = $sockets;
+            stream_select($read, $write, $write, null);
+
+            foreach ($read as $stream) {
+                if ($this->socket === $stream) {
+                    $stream = stream_socket_accept($this->socket);
+                    $sockets[(int) $stream] = $stream;
+                } elseif (feof($stream)) {
+                    unset($sockets[(int) $stream]);
+                    fclose($stream);
+                } else {
+                    yield (int) $stream => fgets($stream);
+                }
+            }
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Test/VarDumperTestTrait.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Test/VarDumperTestTrait.php
new file mode 100644
index 0000000..33d60c0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/Test/VarDumperTestTrait.php
@@ -0,0 +1,84 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper\Test;
+
+use Symfony\Component\VarDumper\Cloner\VarCloner;
+use Symfony\Component\VarDumper\Dumper\CliDumper;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+trait VarDumperTestTrait
+{
+    /**
+     * @internal
+     */
+    private $varDumperConfig = [
+        'casters' => [],
+        'flags' => null,
+    ];
+
+    protected function setUpVarDumper(array $casters, int $flags = null): void
+    {
+        $this->varDumperConfig['casters'] = $casters;
+        $this->varDumperConfig['flags'] = $flags;
+    }
+
+    /**
+     * @after
+     */
+    protected function tearDownVarDumper(): void
+    {
+        $this->varDumperConfig['casters'] = [];
+        $this->varDumperConfig['flags'] = null;
+    }
+
+    public function assertDumpEquals($expected, $data, int $filter = 0, string $message = '')
+    {
+        $this->assertSame($this->prepareExpectation($expected, $filter), $this->getDump($data, null, $filter), $message);
+    }
+
+    public function assertDumpMatchesFormat($expected, $data, int $filter = 0, string $message = '')
+    {
+        $this->assertStringMatchesFormat($this->prepareExpectation($expected, $filter), $this->getDump($data, null, $filter), $message);
+    }
+
+    protected function getDump($data, $key = null, int $filter = 0): ?string
+    {
+        if (null === $flags = $this->varDumperConfig['flags']) {
+            $flags = getenv('DUMP_LIGHT_ARRAY') ? CliDumper::DUMP_LIGHT_ARRAY : 0;
+            $flags |= getenv('DUMP_STRING_LENGTH') ? CliDumper::DUMP_STRING_LENGTH : 0;
+            $flags |= getenv('DUMP_COMMA_SEPARATOR') ? CliDumper::DUMP_COMMA_SEPARATOR : 0;
+        }
+
+        $cloner = new VarCloner();
+        $cloner->addCasters($this->varDumperConfig['casters']);
+        $cloner->setMaxItems(-1);
+        $dumper = new CliDumper(null, null, $flags);
+        $dumper->setColors(false);
+        $data = $cloner->cloneVar($data, $filter)->withRefHandles(false);
+        if (null !== $key && null === $data = $data->seek($key)) {
+            return null;
+        }
+
+        return rtrim($dumper->dump($data, true));
+    }
+
+    private function prepareExpectation($expected, int $filter): string
+    {
+        if (!\is_string($expected)) {
+            $expected = $this->getDump($expected, null, $filter);
+        }
+
+        return rtrim($expected);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/VarDumper.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/VarDumper.php
new file mode 100644
index 0000000..b223e06
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/VarDumper.php
@@ -0,0 +1,109 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Component\VarDumper;
+
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\RequestStack;
+use Symfony\Component\HttpKernel\Debug\FileLinkFormatter;
+use Symfony\Component\VarDumper\Caster\ReflectionCaster;
+use Symfony\Component\VarDumper\Cloner\VarCloner;
+use Symfony\Component\VarDumper\Dumper\CliDumper;
+use Symfony\Component\VarDumper\Dumper\ContextProvider\CliContextProvider;
+use Symfony\Component\VarDumper\Dumper\ContextProvider\RequestContextProvider;
+use Symfony\Component\VarDumper\Dumper\ContextProvider\SourceContextProvider;
+use Symfony\Component\VarDumper\Dumper\ContextualizedDumper;
+use Symfony\Component\VarDumper\Dumper\HtmlDumper;
+use Symfony\Component\VarDumper\Dumper\ServerDumper;
+
+// Load the global dump() function
+require_once __DIR__.'/Resources/functions/dump.php';
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class VarDumper
+{
+    private static $handler;
+
+    public static function dump($var)
+    {
+        if (null === self::$handler) {
+            self::register();
+        }
+
+        return (self::$handler)($var);
+    }
+
+    public static function setHandler(callable $callable = null)
+    {
+        $prevHandler = self::$handler;
+
+        // Prevent replacing the handler with expected format as soon as the env var was set:
+        if (isset($_SERVER['VAR_DUMPER_FORMAT'])) {
+            return $prevHandler;
+        }
+
+        self::$handler = $callable;
+
+        return $prevHandler;
+    }
+
+    private static function register(): void
+    {
+        $cloner = new VarCloner();
+        $cloner->addCasters(ReflectionCaster::UNSET_CLOSURE_FILE_INFO);
+
+        $format = $_SERVER['VAR_DUMPER_FORMAT'] ?? null;
+        switch (true) {
+            case 'html' === $format:
+                $dumper = new HtmlDumper();
+                break;
+            case 'cli' === $format:
+                $dumper = new CliDumper();
+                break;
+            case 'server' === $format:
+            case $format && 'tcp' === parse_url($format, \PHP_URL_SCHEME):
+                $host = 'server' === $format ? $_SERVER['VAR_DUMPER_SERVER'] ?? '127.0.0.1:9912' : $format;
+                $dumper = \in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) ? new CliDumper() : new HtmlDumper();
+                $dumper = new ServerDumper($host, $dumper, self::getDefaultContextProviders());
+                break;
+            default:
+                $dumper = \in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) ? new CliDumper() : new HtmlDumper();
+        }
+
+        if (!$dumper instanceof ServerDumper) {
+            $dumper = new ContextualizedDumper($dumper, [new SourceContextProvider()]);
+        }
+
+        self::$handler = function ($var) use ($cloner, $dumper) {
+            $dumper->dump($cloner->cloneVar($var));
+        };
+    }
+
+    private static function getDefaultContextProviders(): array
+    {
+        $contextProviders = [];
+
+        if (!\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) && (class_exists(Request::class))) {
+            $requestStack = new RequestStack();
+            $requestStack->push(Request::createFromGlobals());
+            $contextProviders['request'] = new RequestContextProvider($requestStack);
+        }
+
+        $fileLinkFormatter = class_exists(FileLinkFormatter::class) ? new FileLinkFormatter(null, $requestStack ?? null) : null;
+
+        return $contextProviders + [
+            'cli' => new CliContextProvider(),
+            'source' => new SourceContextProvider(null, null, $fileLinkFormatter),
+        ];
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/composer.json b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/composer.json
new file mode 100644
index 0000000..2d4889d
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/symfony/var-dumper/composer.json
@@ -0,0 +1,49 @@
+{
+    "name": "symfony/var-dumper",
+    "type": "library",
+    "description": "Provides mechanisms for walking through any arbitrary PHP variable",
+    "keywords": ["dump", "debug"],
+    "homepage": "https://symfony.com",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Nicolas Grekas",
+            "email": "p@tchwork.com"
+        },
+        {
+            "name": "Symfony Community",
+            "homepage": "https://symfony.com/contributors"
+        }
+    ],
+    "require": {
+        "php": ">=7.2.5",
+        "symfony/polyfill-mbstring": "~1.0",
+        "symfony/polyfill-php80": "^1.16"
+    },
+    "require-dev": {
+        "ext-iconv": "*",
+        "symfony/console": "^4.4|^5.0",
+        "symfony/process": "^4.4|^5.0",
+        "twig/twig": "^2.13|^3.0.4"
+    },
+    "conflict": {
+        "phpunit/phpunit": "<5.4.3",
+        "symfony/console": "<4.4"
+    },
+    "suggest": {
+        "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
+        "ext-intl": "To show region name in time zone dump",
+        "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
+    },
+    "autoload": {
+        "files": [ "Resources/functions/dump.php" ],
+        "psr-4": { "Symfony\\Component\\VarDumper\\": "" },
+        "exclude-from-classmap": [
+            "/Tests/"
+        ]
+    },
+    "bin": [
+        "Resources/bin/var-dump-server"
+    ],
+    "minimum-stability": "dev"
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/.github/workflows/run-tests.yml b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/.github/workflows/run-tests.yml
new file mode 100644
index 0000000..c4f275b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/.github/workflows/run-tests.yml
@@ -0,0 +1,38 @@
+name: Run tests
+
+on: [push, pull_request]
+
+jobs:
+  tests:
+    strategy:
+      matrix:
+        os: [Ubuntu, macOS]
+        php: [7.2, 7.3, 7.4, 8.0]
+
+        include:
+          - os: Ubuntu
+            os-version: ubuntu-latest
+
+          - os: macOS
+            os-version: macos-latest
+
+    name: ${{ matrix.os }} - PHP ${{ matrix.php }}
+
+    runs-on: ${{ matrix.os-version }}
+
+    steps:
+      - name: Checkout code
+        uses: actions/checkout@v1
+
+      - name: Setup PHP
+        uses: shivammathur/setup-php@v2
+        with:
+          php-version: ${{ matrix.php }}
+          extensions: posix, dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick
+          coverage: none
+
+      - name: Install dependencies
+        run: composer update --prefer-stable --prefer-dist --no-interaction
+
+      - name: Run tests
+        run: bash upgrade.sh
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/composer.json b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/composer.json
new file mode 100644
index 0000000..58e5f6c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/composer.json
@@ -0,0 +1,47 @@
+{
+    "name": "tightenco/collect",
+    "description": "Collect - Illuminate Collections as a separate package.",
+    "keywords": ["laravel", "collection"],
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Taylor Otwell",
+            "email": "taylorotwell@gmail.com"
+        }
+    ],
+    "require": {
+        "php": "^7.2|^8.0",
+        "symfony/var-dumper": "^3.4 || ^4.0 || ^5.0"
+    },
+    "require-dev": {
+        "mockery/mockery": "^1.0",
+        "phpunit/phpunit": "^8.3",
+        "nesbot/carbon": "^2.23.0"
+    },
+    "autoload": {
+        "files": [
+            "src/Collect/Support/helpers.php",
+            "src/Collect/Support/alias.php"
+        ],
+        "psr-4": {
+            "Tightenco\\Collect\\": "src/Collect"
+        }
+    },
+    "autoload-dev": {
+        "files": [
+            "tests/files/Support/Carbon.php",
+            "tests/files/Support/HtmlString.php",
+            "tests/files/Support/HigherOrderTapProxy.php",
+            "tests/files/Support/Str.php",
+            "tests/files/Support/Stringable.php"
+        ]
+    },
+    "scripts": {
+        "test": [
+            "@composer install",
+            "phpunit"
+        ]
+    },
+    "minimum-stability": "dev",
+    "prefer-stable": true
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Contracts/Support/Arrayable.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Contracts/Support/Arrayable.php
new file mode 100755
index 0000000..a205804
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Contracts/Support/Arrayable.php
@@ -0,0 +1,13 @@
+<?php
+
+namespace Tightenco\Collect\Contracts\Support;
+
+interface Arrayable
+{
+    /**
+     * Get the instance as an array.
+     *
+     * @return array
+     */
+    public function toArray();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Contracts/Support/Htmlable.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Contracts/Support/Htmlable.php
new file mode 100644
index 0000000..aa20e96
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Contracts/Support/Htmlable.php
@@ -0,0 +1,13 @@
+<?php
+
+namespace Tightenco\Collect\Contracts\Support;
+
+interface Htmlable
+{
+    /**
+     * Get content as a string of HTML.
+     *
+     * @return string
+     */
+    public function toHtml();
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Contracts/Support/Jsonable.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Contracts/Support/Jsonable.php
new file mode 100755
index 0000000..6b73730
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Contracts/Support/Jsonable.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace Tightenco\Collect\Contracts\Support;
+
+interface Jsonable
+{
+    /**
+     * Convert the object to its JSON representation.
+     *
+     * @param  int  $options
+     * @return string
+     */
+    public function toJson($options = 0);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/Arr.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/Arr.php
new file mode 100644
index 0000000..b99db01
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/Arr.php
@@ -0,0 +1,681 @@
+<?php
+
+namespace Tightenco\Collect\Support;
+
+use ArrayAccess;
+use Tightenco\Collect\Support\Traits\Macroable;
+use InvalidArgumentException;
+
+class Arr
+{
+    use Macroable;
+
+    /**
+     * Determine whether the given value is array accessible.
+     *
+     * @param  mixed  $value
+     * @return bool
+     */
+    public static function accessible($value)
+    {
+        return is_array($value) || $value instanceof ArrayAccess;
+    }
+
+    /**
+     * Add an element to an array using "dot" notation if it doesn't exist.
+     *
+     * @param  array  $array
+     * @param  string  $key
+     * @param  mixed  $value
+     * @return array
+     */
+    public static function add($array, $key, $value)
+    {
+        if (is_null(static::get($array, $key))) {
+            static::set($array, $key, $value);
+        }
+
+        return $array;
+    }
+
+    /**
+     * Collapse an array of arrays into a single array.
+     *
+     * @param  iterable  $array
+     * @return array
+     */
+    public static function collapse($array)
+    {
+        $results = [];
+
+        foreach ($array as $values) {
+            if ($values instanceof Collection) {
+                $values = $values->all();
+            } elseif (! is_array($values)) {
+                continue;
+            }
+
+            $results[] = $values;
+        }
+
+        return array_merge([], ...$results);
+    }
+
+    /**
+     * Cross join the given arrays, returning all possible permutations.
+     *
+     * @param  iterable  ...$arrays
+     * @return array
+     */
+    public static function crossJoin(...$arrays)
+    {
+        $results = [[]];
+
+        foreach ($arrays as $index => $array) {
+            $append = [];
+
+            foreach ($results as $product) {
+                foreach ($array as $item) {
+                    $product[$index] = $item;
+
+                    $append[] = $product;
+                }
+            }
+
+            $results = $append;
+        }
+
+        return $results;
+    }
+
+    /**
+     * Divide an array into two arrays. One with keys and the other with values.
+     *
+     * @param  array  $array
+     * @return array
+     */
+    public static function divide($array)
+    {
+        return [array_keys($array), array_values($array)];
+    }
+
+    /**
+     * Flatten a multi-dimensional associative array with dots.
+     *
+     * @param  iterable  $array
+     * @param  string  $prepend
+     * @return array
+     */
+    public static function dot($array, $prepend = '')
+    {
+        $results = [];
+
+        foreach ($array as $key => $value) {
+            if (is_array($value) && ! empty($value)) {
+                $results = array_merge($results, static::dot($value, $prepend.$key.'.'));
+            } else {
+                $results[$prepend.$key] = $value;
+            }
+        }
+
+        return $results;
+    }
+
+    /**
+     * Get all of the given array except for a specified array of keys.
+     *
+     * @param  array  $array
+     * @param  array|string  $keys
+     * @return array
+     */
+    public static function except($array, $keys)
+    {
+        static::forget($array, $keys);
+
+        return $array;
+    }
+
+    /**
+     * Determine if the given key exists in the provided array.
+     *
+     * @param  \ArrayAccess|array  $array
+     * @param  string|int  $key
+     * @return bool
+     */
+    public static function exists($array, $key)
+    {
+        if ($array instanceof Enumerable) {
+            return $array->has($key);
+        }
+
+        if ($array instanceof ArrayAccess) {
+            return $array->offsetExists($key);
+        }
+
+        return array_key_exists($key, $array);
+    }
+
+    /**
+     * Return the first element in an array passing a given truth test.
+     *
+     * @param  iterable  $array
+     * @param  callable|null  $callback
+     * @param  mixed  $default
+     * @return mixed
+     */
+    public static function first($array, callable $callback = null, $default = null)
+    {
+        if (is_null($callback)) {
+            if (empty($array)) {
+                return value($default);
+            }
+
+            foreach ($array as $item) {
+                return $item;
+            }
+        }
+
+        foreach ($array as $key => $value) {
+            if ($callback($value, $key)) {
+                return $value;
+            }
+        }
+
+        return value($default);
+    }
+
+    /**
+     * Return the last element in an array passing a given truth test.
+     *
+     * @param  array  $array
+     * @param  callable|null  $callback
+     * @param  mixed  $default
+     * @return mixed
+     */
+    public static function last($array, callable $callback = null, $default = null)
+    {
+        if (is_null($callback)) {
+            return empty($array) ? value($default) : end($array);
+        }
+
+        return static::first(array_reverse($array, true), $callback, $default);
+    }
+
+    /**
+     * Flatten a multi-dimensional array into a single level.
+     *
+     * @param  iterable  $array
+     * @param  int  $depth
+     * @return array
+     */
+    public static function flatten($array, $depth = INF)
+    {
+        $result = [];
+
+        foreach ($array as $item) {
+            $item = $item instanceof Collection ? $item->all() : $item;
+
+            if (! is_array($item)) {
+                $result[] = $item;
+            } else {
+                $values = $depth === 1
+                    ? array_values($item)
+                    : static::flatten($item, $depth - 1);
+
+                foreach ($values as $value) {
+                    $result[] = $value;
+                }
+            }
+        }
+
+        return $result;
+    }
+
+    /**
+     * Remove one or many array items from a given array using "dot" notation.
+     *
+     * @param  array  $array
+     * @param  array|string  $keys
+     * @return void
+     */
+    public static function forget(&$array, $keys)
+    {
+        $original = &$array;
+
+        $keys = (array) $keys;
+
+        if (count($keys) === 0) {
+            return;
+        }
+
+        foreach ($keys as $key) {
+            // if the exact key exists in the top-level, remove it
+            if (static::exists($array, $key)) {
+                unset($array[$key]);
+
+                continue;
+            }
+
+            $parts = explode('.', $key);
+
+            // clean up before each pass
+            $array = &$original;
+
+            while (count($parts) > 1) {
+                $part = array_shift($parts);
+
+                if (isset($array[$part]) && is_array($array[$part])) {
+                    $array = &$array[$part];
+                } else {
+                    continue 2;
+                }
+            }
+
+            unset($array[array_shift($parts)]);
+        }
+    }
+
+    /**
+     * Get an item from an array using "dot" notation.
+     *
+     * @param  \ArrayAccess|array  $array
+     * @param  string|int|null  $key
+     * @param  mixed  $default
+     * @return mixed
+     */
+    public static function get($array, $key, $default = null)
+    {
+        if (! static::accessible($array)) {
+            return value($default);
+        }
+
+        if (is_null($key)) {
+            return $array;
+        }
+
+        if (static::exists($array, $key)) {
+            return $array[$key];
+        }
+
+        if (strpos($key, '.') === false) {
+            return $array[$key] ?? value($default);
+        }
+
+        foreach (explode('.', $key) as $segment) {
+            if (static::accessible($array) && static::exists($array, $segment)) {
+                $array = $array[$segment];
+            } else {
+                return value($default);
+            }
+        }
+
+        return $array;
+    }
+
+    /**
+     * Check if an item or items exist in an array using "dot" notation.
+     *
+     * @param  \ArrayAccess|array  $array
+     * @param  string|array  $keys
+     * @return bool
+     */
+    public static function has($array, $keys)
+    {
+        $keys = (array) $keys;
+
+        if (! $array || $keys === []) {
+            return false;
+        }
+
+        foreach ($keys as $key) {
+            $subKeyArray = $array;
+
+            if (static::exists($array, $key)) {
+                continue;
+            }
+
+            foreach (explode('.', $key) as $segment) {
+                if (static::accessible($subKeyArray) && static::exists($subKeyArray, $segment)) {
+                    $subKeyArray = $subKeyArray[$segment];
+                } else {
+                    return false;
+                }
+            }
+        }
+
+        return true;
+    }
+
+    /**
+     * Determine if any of the keys exist in an array using "dot" notation.
+     *
+     * @param  \ArrayAccess|array  $array
+     * @param  string|array  $keys
+     * @return bool
+     */
+    public static function hasAny($array, $keys)
+    {
+        if (is_null($keys)) {
+            return false;
+        }
+
+        $keys = (array) $keys;
+
+        if (! $array) {
+            return false;
+        }
+
+        if ($keys === []) {
+            return false;
+        }
+
+        foreach ($keys as $key) {
+            if (static::has($array, $key)) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * Determines if an array is associative.
+     *
+     * An array is "associative" if it doesn't have sequential numerical keys beginning with zero.
+     *
+     * @param  array  $array
+     * @return bool
+     */
+    public static function isAssoc(array $array)
+    {
+        $keys = array_keys($array);
+
+        return array_keys($keys) !== $keys;
+    }
+
+    /**
+     * Get a subset of the items from the given array.
+     *
+     * @param  array  $array
+     * @param  array|string  $keys
+     * @return array
+     */
+    public static function only($array, $keys)
+    {
+        return array_intersect_key($array, array_flip((array) $keys));
+    }
+
+    /**
+     * Pluck an array of values from an array.
+     *
+     * @param  iterable  $array
+     * @param  string|array|int|null  $value
+     * @param  string|array|null  $key
+     * @return array
+     */
+    public static function pluck($array, $value, $key = null)
+    {
+        $results = [];
+
+        [$value, $key] = static::explodePluckParameters($value, $key);
+
+        foreach ($array as $item) {
+            $itemValue = data_get($item, $value);
+
+            // If the key is "null", we will just append the value to the array and keep
+            // looping. Otherwise we will key the array using the value of the key we
+            // received from the developer. Then we'll return the final array form.
+            if (is_null($key)) {
+                $results[] = $itemValue;
+            } else {
+                $itemKey = data_get($item, $key);
+
+                if (is_object($itemKey) && method_exists($itemKey, '__toString')) {
+                    $itemKey = (string) $itemKey;
+                }
+
+                $results[$itemKey] = $itemValue;
+            }
+        }
+
+        return $results;
+    }
+
+    /**
+     * Explode the "value" and "key" arguments passed to "pluck".
+     *
+     * @param  string|array  $value
+     * @param  string|array|null  $key
+     * @return array
+     */
+    protected static function explodePluckParameters($value, $key)
+    {
+        $value = is_string($value) ? explode('.', $value) : $value;
+
+        $key = is_null($key) || is_array($key) ? $key : explode('.', $key);
+
+        return [$value, $key];
+    }
+
+    /**
+     * Push an item onto the beginning of an array.
+     *
+     * @param  array  $array
+     * @param  mixed  $value
+     * @param  mixed  $key
+     * @return array
+     */
+    public static function prepend($array, $value, $key = null)
+    {
+        if (func_num_args() == 2) {
+            array_unshift($array, $value);
+        } else {
+            $array = [$key => $value] + $array;
+        }
+
+        return $array;
+    }
+
+    /**
+     * Get a value from the array, and remove it.
+     *
+     * @param  array  $array
+     * @param  string  $key
+     * @param  mixed  $default
+     * @return mixed
+     */
+    public static function pull(&$array, $key, $default = null)
+    {
+        $value = static::get($array, $key, $default);
+
+        static::forget($array, $key);
+
+        return $value;
+    }
+
+    /**
+     * Get one or a specified number of random values from an array.
+     *
+     * @param  array  $array
+     * @param  int|null  $number
+     * @param  bool|false  $preserveKeys
+     * @return mixed
+     *
+     * @throws \InvalidArgumentException
+     */
+    public static function random($array, $number = null, $preserveKeys = false)
+    {
+        $requested = is_null($number) ? 1 : $number;
+
+        $count = count($array);
+
+        if ($requested > $count) {
+            throw new InvalidArgumentException(
+                "You requested {$requested} items, but there are only {$count} items available."
+            );
+        }
+
+        if (is_null($number)) {
+            return $array[array_rand($array)];
+        }
+
+        if ((int) $number === 0) {
+            return [];
+        }
+
+        $keys = array_rand($array, $number);
+
+        $results = [];
+
+        if ($preserveKeys) {
+            foreach ((array) $keys as $key) {
+                $results[$key] = $array[$key];
+            }
+        } else {
+            foreach ((array) $keys as $key) {
+                $results[] = $array[$key];
+            }
+        }
+
+        return $results;
+    }
+
+    /**
+     * Set an array item to a given value using "dot" notation.
+     *
+     * If no key is given to the method, the entire array will be replaced.
+     *
+     * @param  array  $array
+     * @param  string|null  $key
+     * @param  mixed  $value
+     * @return array
+     */
+    public static function set(&$array, $key, $value)
+    {
+        if (is_null($key)) {
+            return $array = $value;
+        }
+
+        $keys = explode('.', $key);
+
+        foreach ($keys as $i => $key) {
+            if (count($keys) === 1) {
+                break;
+            }
+
+            unset($keys[$i]);
+
+            // If the key doesn't exist at this depth, we will just create an empty array
+            // to hold the next value, allowing us to create the arrays to hold final
+            // values at the correct depth. Then we'll keep digging into the array.
+            if (! isset($array[$key]) || ! is_array($array[$key])) {
+                $array[$key] = [];
+            }
+
+            $array = &$array[$key];
+        }
+
+        $array[array_shift($keys)] = $value;
+
+        return $array;
+    }
+
+    /**
+     * Shuffle the given array and return the result.
+     *
+     * @param  array  $array
+     * @param  int|null  $seed
+     * @return array
+     */
+    public static function shuffle($array, $seed = null)
+    {
+        if (is_null($seed)) {
+            shuffle($array);
+        } else {
+            mt_srand($seed);
+            shuffle($array);
+            mt_srand();
+        }
+
+        return $array;
+    }
+
+    /**
+     * Sort the array using the given callback or "dot" notation.
+     *
+     * @param  array  $array
+     * @param  callable|array|string|null  $callback
+     * @return array
+     */
+    public static function sort($array, $callback = null)
+    {
+        return Collection::make($array)->sortBy($callback)->all();
+    }
+
+    /**
+     * Recursively sort an array by keys and values.
+     *
+     * @param  array  $array
+     * @param  int  $options
+     * @param  bool  $descending
+     * @return array
+     */
+    public static function sortRecursive($array, $options = SORT_REGULAR, $descending = false)
+    {
+        foreach ($array as &$value) {
+            if (is_array($value)) {
+                $value = static::sortRecursive($value, $options, $descending);
+            }
+        }
+
+        if (static::isAssoc($array)) {
+            $descending
+                    ? krsort($array, $options)
+                    : ksort($array, $options);
+        } else {
+            $descending
+                    ? rsort($array, $options)
+                    : sort($array, $options);
+        }
+
+        return $array;
+    }
+
+    /**
+     * Convert the array into a query string.
+     *
+     * @param  array  $array
+     * @return string
+     */
+    public static function query($array)
+    {
+        return http_build_query($array, '', '&', PHP_QUERY_RFC3986);
+    }
+
+    /**
+     * Filter the array using the given callback.
+     *
+     * @param  array  $array
+     * @param  callable  $callback
+     * @return array
+     */
+    public static function where($array, callable $callback)
+    {
+        return array_filter($array, $callback, ARRAY_FILTER_USE_BOTH);
+    }
+
+    /**
+     * If the given value is not an array and not null, wrap it in one.
+     *
+     * @param  mixed  $value
+     * @return array
+     */
+    public static function wrap($value)
+    {
+        if (is_null($value)) {
+            return [];
+        }
+
+        return is_array($value) ? $value : [$value];
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/Collection.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/Collection.php
new file mode 100644
index 0000000..3a0bfbf
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/Collection.php
@@ -0,0 +1,1453 @@
+<?php
+
+namespace Tightenco\Collect\Support;
+
+use ArrayAccess;
+use ArrayIterator;
+use Tightenco\Collect\Support\Traits\EnumeratesValues;
+use Tightenco\Collect\Support\Traits\Macroable;
+use stdClass;
+
+class Collection implements ArrayAccess, Enumerable
+{
+    use EnumeratesValues, Macroable;
+
+    /**
+     * The items contained in the collection.
+     *
+     * @var array
+     */
+    protected $items = [];
+
+    /**
+     * Create a new collection.
+     *
+     * @param  mixed  $items
+     * @return void
+     */
+    public function __construct($items = [])
+    {
+        $this->items = $this->getArrayableItems($items);
+    }
+
+    /**
+     * Create a collection with the given range.
+     *
+     * @param  int  $from
+     * @param  int  $to
+     * @return static
+     */
+    public static function range($from, $to)
+    {
+        return new static(range($from, $to));
+    }
+
+    /**
+     * Get all of the items in the collection.
+     *
+     * @return array
+     */
+    public function all()
+    {
+        return $this->items;
+    }
+
+    /**
+     * Get a lazy collection for the items in this collection.
+     *
+     * @return \Tightenco\Collect\Support\LazyCollection
+     */
+    public function lazy()
+    {
+        return new LazyCollection($this->items);
+    }
+
+    /**
+     * Get the average value of a given key.
+     *
+     * @param  callable|string|null  $callback
+     * @return mixed
+     */
+    public function avg($callback = null)
+    {
+        $callback = $this->valueRetriever($callback);
+
+        $items = $this->map(function ($value) use ($callback) {
+            return $callback($value);
+        })->filter(function ($value) {
+            return ! is_null($value);
+        });
+
+        if ($count = $items->count()) {
+            return $items->sum() / $count;
+        }
+    }
+
+    /**
+     * Get the median of a given key.
+     *
+     * @param  string|array|null  $key
+     * @return mixed
+     */
+    public function median($key = null)
+    {
+        $values = (isset($key) ? $this->pluck($key) : $this)
+            ->filter(function ($item) {
+                return ! is_null($item);
+            })->sort()->values();
+
+        $count = $values->count();
+
+        if ($count === 0) {
+            return;
+        }
+
+        $middle = (int) ($count / 2);
+
+        if ($count % 2) {
+            return $values->get($middle);
+        }
+
+        return (new static([
+            $values->get($middle - 1), $values->get($middle),
+        ]))->average();
+    }
+
+    /**
+     * Get the mode of a given key.
+     *
+     * @param  string|array|null  $key
+     * @return array|null
+     */
+    public function mode($key = null)
+    {
+        if ($this->count() === 0) {
+            return;
+        }
+
+        $collection = isset($key) ? $this->pluck($key) : $this;
+
+        $counts = new static;
+
+        $collection->each(function ($value) use ($counts) {
+            $counts[$value] = isset($counts[$value]) ? $counts[$value] + 1 : 1;
+        });
+
+        $sorted = $counts->sort();
+
+        $highestValue = $sorted->last();
+
+        return $sorted->filter(function ($value) use ($highestValue) {
+            return $value == $highestValue;
+        })->sort()->keys()->all();
+    }
+
+    /**
+     * Collapse the collection of items into a single array.
+     *
+     * @return static
+     */
+    public function collapse()
+    {
+        return new static(Arr::collapse($this->items));
+    }
+
+    /**
+     * Determine if an item exists in the collection.
+     *
+     * @param  mixed  $key
+     * @param  mixed  $operator
+     * @param  mixed  $value
+     * @return bool
+     */
+    public function contains($key, $operator = null, $value = null)
+    {
+        if (func_num_args() === 1) {
+            if ($this->useAsCallable($key)) {
+                $placeholder = new stdClass;
+
+                return $this->first($key, $placeholder) !== $placeholder;
+            }
+
+            return in_array($key, $this->items);
+        }
+
+        return $this->contains($this->operatorForWhere(...func_get_args()));
+    }
+
+    /**
+     * Cross join with the given lists, returning all possible permutations.
+     *
+     * @param  mixed  ...$lists
+     * @return static
+     */
+    public function crossJoin(...$lists)
+    {
+        return new static(Arr::crossJoin(
+            $this->items, ...array_map([$this, 'getArrayableItems'], $lists)
+        ));
+    }
+
+    /**
+     * Get the items in the collection that are not present in the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function diff($items)
+    {
+        return new static(array_diff($this->items, $this->getArrayableItems($items)));
+    }
+
+    /**
+     * Get the items in the collection that are not present in the given items, using the callback.
+     *
+     * @param  mixed  $items
+     * @param  callable  $callback
+     * @return static
+     */
+    public function diffUsing($items, callable $callback)
+    {
+        return new static(array_udiff($this->items, $this->getArrayableItems($items), $callback));
+    }
+
+    /**
+     * Get the items in the collection whose keys and values are not present in the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function diffAssoc($items)
+    {
+        return new static(array_diff_assoc($this->items, $this->getArrayableItems($items)));
+    }
+
+    /**
+     * Get the items in the collection whose keys and values are not present in the given items, using the callback.
+     *
+     * @param  mixed  $items
+     * @param  callable  $callback
+     * @return static
+     */
+    public function diffAssocUsing($items, callable $callback)
+    {
+        return new static(array_diff_uassoc($this->items, $this->getArrayableItems($items), $callback));
+    }
+
+    /**
+     * Get the items in the collection whose keys are not present in the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function diffKeys($items)
+    {
+        return new static(array_diff_key($this->items, $this->getArrayableItems($items)));
+    }
+
+    /**
+     * Get the items in the collection whose keys are not present in the given items, using the callback.
+     *
+     * @param  mixed  $items
+     * @param  callable  $callback
+     * @return static
+     */
+    public function diffKeysUsing($items, callable $callback)
+    {
+        return new static(array_diff_ukey($this->items, $this->getArrayableItems($items), $callback));
+    }
+
+    /**
+     * Retrieve duplicate items from the collection.
+     *
+     * @param  callable|null  $callback
+     * @param  bool  $strict
+     * @return static
+     */
+    public function duplicates($callback = null, $strict = false)
+    {
+        $items = $this->map($this->valueRetriever($callback));
+
+        $uniqueItems = $items->unique(null, $strict);
+
+        $compare = $this->duplicateComparator($strict);
+
+        $duplicates = new static;
+
+        foreach ($items as $key => $value) {
+            if ($uniqueItems->isNotEmpty() && $compare($value, $uniqueItems->first())) {
+                $uniqueItems->shift();
+            } else {
+                $duplicates[$key] = $value;
+            }
+        }
+
+        return $duplicates;
+    }
+
+    /**
+     * Retrieve duplicate items from the collection using strict comparison.
+     *
+     * @param  callable|null  $callback
+     * @return static
+     */
+    public function duplicatesStrict($callback = null)
+    {
+        return $this->duplicates($callback, true);
+    }
+
+    /**
+     * Get the comparison function to detect duplicates.
+     *
+     * @param  bool  $strict
+     * @return \Closure
+     */
+    protected function duplicateComparator($strict)
+    {
+        if ($strict) {
+            return function ($a, $b) {
+                return $a === $b;
+            };
+        }
+
+        return function ($a, $b) {
+            return $a == $b;
+        };
+    }
+
+    /**
+     * Get all items except for those with the specified keys.
+     *
+     * @param  \Tightenco\Collect\Support\Collection|mixed  $keys
+     * @return static
+     */
+    public function except($keys)
+    {
+        if ($keys instanceof Enumerable) {
+            $keys = $keys->all();
+        } elseif (! is_array($keys)) {
+            $keys = func_get_args();
+        }
+
+        return new static(Arr::except($this->items, $keys));
+    }
+
+    /**
+     * Run a filter over each of the items.
+     *
+     * @param  callable|null  $callback
+     * @return static
+     */
+    public function filter(callable $callback = null)
+    {
+        if ($callback) {
+            return new static(Arr::where($this->items, $callback));
+        }
+
+        return new static(array_filter($this->items));
+    }
+
+    /**
+     * Get the first item from the collection passing the given truth test.
+     *
+     * @param  callable|null  $callback
+     * @param  mixed  $default
+     * @return mixed
+     */
+    public function first(callable $callback = null, $default = null)
+    {
+        return Arr::first($this->items, $callback, $default);
+    }
+
+    /**
+     * Get a flattened array of the items in the collection.
+     *
+     * @param  int  $depth
+     * @return static
+     */
+    public function flatten($depth = INF)
+    {
+        return new static(Arr::flatten($this->items, $depth));
+    }
+
+    /**
+     * Flip the items in the collection.
+     *
+     * @return static
+     */
+    public function flip()
+    {
+        return new static(array_flip($this->items));
+    }
+
+    /**
+     * Remove an item from the collection by key.
+     *
+     * @param  string|array  $keys
+     * @return $this
+     */
+    public function forget($keys)
+    {
+        foreach ((array) $keys as $key) {
+            $this->offsetUnset($key);
+        }
+
+        return $this;
+    }
+
+    /**
+     * Get an item from the collection by key.
+     *
+     * @param  mixed  $key
+     * @param  mixed  $default
+     * @return mixed
+     */
+    public function get($key, $default = null)
+    {
+        if (array_key_exists($key, $this->items)) {
+            return $this->items[$key];
+        }
+
+        return value($default);
+    }
+
+    /**
+     * Group an associative array by a field or using a callback.
+     *
+     * @param  array|callable|string  $groupBy
+     * @param  bool  $preserveKeys
+     * @return static
+     */
+    public function groupBy($groupBy, $preserveKeys = false)
+    {
+        if (! $this->useAsCallable($groupBy) && is_array($groupBy)) {
+            $nextGroups = $groupBy;
+
+            $groupBy = array_shift($nextGroups);
+        }
+
+        $groupBy = $this->valueRetriever($groupBy);
+
+        $results = [];
+
+        foreach ($this->items as $key => $value) {
+            $groupKeys = $groupBy($value, $key);
+
+            if (! is_array($groupKeys)) {
+                $groupKeys = [$groupKeys];
+            }
+
+            foreach ($groupKeys as $groupKey) {
+                $groupKey = is_bool($groupKey) ? (int) $groupKey : $groupKey;
+
+                if (! array_key_exists($groupKey, $results)) {
+                    $results[$groupKey] = new static;
+                }
+
+                $results[$groupKey]->offsetSet($preserveKeys ? $key : null, $value);
+            }
+        }
+
+        $result = new static($results);
+
+        if (! empty($nextGroups)) {
+            return $result->map->groupBy($nextGroups, $preserveKeys);
+        }
+
+        return $result;
+    }
+
+    /**
+     * Key an associative array by a field or using a callback.
+     *
+     * @param  callable|string  $keyBy
+     * @return static
+     */
+    public function keyBy($keyBy)
+    {
+        $keyBy = $this->valueRetriever($keyBy);
+
+        $results = [];
+
+        foreach ($this->items as $key => $item) {
+            $resolvedKey = $keyBy($item, $key);
+
+            if (is_object($resolvedKey)) {
+                $resolvedKey = (string) $resolvedKey;
+            }
+
+            $results[$resolvedKey] = $item;
+        }
+
+        return new static($results);
+    }
+
+    /**
+     * Determine if an item exists in the collection by key.
+     *
+     * @param  mixed  $key
+     * @return bool
+     */
+    public function has($key)
+    {
+        $keys = is_array($key) ? $key : func_get_args();
+
+        foreach ($keys as $value) {
+            if (! array_key_exists($value, $this->items)) {
+                return false;
+            }
+        }
+
+        return true;
+    }
+
+    /**
+     * Concatenate values of a given key as a string.
+     *
+     * @param  string  $value
+     * @param  string|null  $glue
+     * @return string
+     */
+    public function implode($value, $glue = null)
+    {
+        $first = $this->first();
+
+        if (is_array($first) || (is_object($first) && ! $first instanceof \Illuminate\Support\Stringable)) {
+            return implode($glue, $this->pluck($value)->all());
+        }
+
+        return implode($value, $this->items);
+    }
+
+    /**
+     * Intersect the collection with the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function intersect($items)
+    {
+        return new static(array_intersect($this->items, $this->getArrayableItems($items)));
+    }
+
+    /**
+     * Intersect the collection with the given items by key.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function intersectByKeys($items)
+    {
+        return new static(array_intersect_key(
+            $this->items, $this->getArrayableItems($items)
+        ));
+    }
+
+    /**
+     * Determine if the collection is empty or not.
+     *
+     * @return bool
+     */
+    public function isEmpty()
+    {
+        return empty($this->items);
+    }
+
+    /**
+     * Determine if the collection contains a single item.
+     *
+     * @return bool
+     */
+    public function containsOneItem()
+    {
+        return $this->count() === 1;
+    }
+
+    /**
+     * Join all items from the collection using a string. The final items can use a separate glue string.
+     *
+     * @param  string  $glue
+     * @param  string  $finalGlue
+     * @return string
+     */
+    public function join($glue, $finalGlue = '')
+    {
+        if ($finalGlue === '') {
+            return $this->implode($glue);
+        }
+
+        $count = $this->count();
+
+        if ($count === 0) {
+            return '';
+        }
+
+        if ($count === 1) {
+            return $this->last();
+        }
+
+        $collection = new static($this->items);
+
+        $finalItem = $collection->pop();
+
+        return $collection->implode($glue).$finalGlue.$finalItem;
+    }
+
+    /**
+     * Get the keys of the collection items.
+     *
+     * @return static
+     */
+    public function keys()
+    {
+        return new static(array_keys($this->items));
+    }
+
+    /**
+     * Get the last item from the collection.
+     *
+     * @param  callable|null  $callback
+     * @param  mixed  $default
+     * @return mixed
+     */
+    public function last(callable $callback = null, $default = null)
+    {
+        return Arr::last($this->items, $callback, $default);
+    }
+
+    /**
+     * Get the values of a given key.
+     *
+     * @param  string|array|int|null  $value
+     * @param  string|null  $key
+     * @return static
+     */
+    public function pluck($value, $key = null)
+    {
+        return new static(Arr::pluck($this->items, $value, $key));
+    }
+
+    /**
+     * Run a map over each of the items.
+     *
+     * @param  callable  $callback
+     * @return static
+     */
+    public function map(callable $callback)
+    {
+        $keys = array_keys($this->items);
+
+        $items = array_map($callback, $this->items, $keys);
+
+        return new static(array_combine($keys, $items));
+    }
+
+    /**
+     * Run a dictionary map over the items.
+     *
+     * The callback should return an associative array with a single key/value pair.
+     *
+     * @param  callable  $callback
+     * @return static
+     */
+    public function mapToDictionary(callable $callback)
+    {
+        $dictionary = [];
+
+        foreach ($this->items as $key => $item) {
+            $pair = $callback($item, $key);
+
+            $key = key($pair);
+
+            $value = reset($pair);
+
+            if (! isset($dictionary[$key])) {
+                $dictionary[$key] = [];
+            }
+
+            $dictionary[$key][] = $value;
+        }
+
+        return new static($dictionary);
+    }
+
+    /**
+     * Run an associative map over each of the items.
+     *
+     * The callback should return an associative array with a single key/value pair.
+     *
+     * @param  callable  $callback
+     * @return static
+     */
+    public function mapWithKeys(callable $callback)
+    {
+        $result = [];
+
+        foreach ($this->items as $key => $value) {
+            $assoc = $callback($value, $key);
+
+            foreach ($assoc as $mapKey => $mapValue) {
+                $result[$mapKey] = $mapValue;
+            }
+        }
+
+        return new static($result);
+    }
+
+    /**
+     * Merge the collection with the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function merge($items)
+    {
+        return new static(array_merge($this->items, $this->getArrayableItems($items)));
+    }
+
+    /**
+     * Recursively merge the collection with the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function mergeRecursive($items)
+    {
+        return new static(array_merge_recursive($this->items, $this->getArrayableItems($items)));
+    }
+
+    /**
+     * Create a collection by using this collection for keys and another for its values.
+     *
+     * @param  mixed  $values
+     * @return static
+     */
+    public function combine($values)
+    {
+        return new static(array_combine($this->all(), $this->getArrayableItems($values)));
+    }
+
+    /**
+     * Union the collection with the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function union($items)
+    {
+        return new static($this->items + $this->getArrayableItems($items));
+    }
+
+    /**
+     * Create a new collection consisting of every n-th element.
+     *
+     * @param  int  $step
+     * @param  int  $offset
+     * @return static
+     */
+    public function nth($step, $offset = 0)
+    {
+        $new = [];
+
+        $position = 0;
+
+        foreach ($this->items as $item) {
+            if ($position % $step === $offset) {
+                $new[] = $item;
+            }
+
+            $position++;
+        }
+
+        return new static($new);
+    }
+
+    /**
+     * Get the items with the specified keys.
+     *
+     * @param  mixed  $keys
+     * @return static
+     */
+    public function only($keys)
+    {
+        if (is_null($keys)) {
+            return new static($this->items);
+        }
+
+        if ($keys instanceof Enumerable) {
+            $keys = $keys->all();
+        }
+
+        $keys = is_array($keys) ? $keys : func_get_args();
+
+        return new static(Arr::only($this->items, $keys));
+    }
+
+    /**
+     * Get and remove the last item from the collection.
+     *
+     * @return mixed
+     */
+    public function pop()
+    {
+        return array_pop($this->items);
+    }
+
+    /**
+     * Push an item onto the beginning of the collection.
+     *
+     * @param  mixed  $value
+     * @param  mixed  $key
+     * @return $this
+     */
+    public function prepend($value, $key = null)
+    {
+        $this->items = Arr::prepend($this->items, ...func_get_args());
+
+        return $this;
+    }
+
+    /**
+     * Push one or more items onto the end of the collection.
+     *
+     * @param  mixed  $values [optional]
+     * @return $this
+     */
+    public function push(...$values)
+    {
+        foreach ($values as $value) {
+            $this->items[] = $value;
+        }
+
+        return $this;
+    }
+
+    /**
+     * Push all of the given items onto the collection.
+     *
+     * @param  iterable  $source
+     * @return static
+     */
+    public function concat($source)
+    {
+        $result = new static($this);
+
+        foreach ($source as $item) {
+            $result->push($item);
+        }
+
+        return $result;
+    }
+
+    /**
+     * Get and remove an item from the collection.
+     *
+     * @param  mixed  $key
+     * @param  mixed  $default
+     * @return mixed
+     */
+    public function pull($key, $default = null)
+    {
+        return Arr::pull($this->items, $key, $default);
+    }
+
+    /**
+     * Put an item in the collection by key.
+     *
+     * @param  mixed  $key
+     * @param  mixed  $value
+     * @return $this
+     */
+    public function put($key, $value)
+    {
+        $this->offsetSet($key, $value);
+
+        return $this;
+    }
+
+    /**
+     * Get one or a specified number of items randomly from the collection.
+     *
+     * @param  int|null  $number
+     * @return static|mixed
+     *
+     * @throws \InvalidArgumentException
+     */
+    public function random($number = null)
+    {
+        if (is_null($number)) {
+            return Arr::random($this->items);
+        }
+
+        return new static(Arr::random($this->items, $number));
+    }
+
+    /**
+     * Replace the collection items with the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function replace($items)
+    {
+        return new static(array_replace($this->items, $this->getArrayableItems($items)));
+    }
+
+    /**
+     * Recursively replace the collection items with the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function replaceRecursive($items)
+    {
+        return new static(array_replace_recursive($this->items, $this->getArrayableItems($items)));
+    }
+
+    /**
+     * Reverse items order.
+     *
+     * @return static
+     */
+    public function reverse()
+    {
+        return new static(array_reverse($this->items, true));
+    }
+
+    /**
+     * Search the collection for a given value and return the corresponding key if successful.
+     *
+     * @param  mixed  $value
+     * @param  bool  $strict
+     * @return mixed
+     */
+    public function search($value, $strict = false)
+    {
+        if (! $this->useAsCallable($value)) {
+            return array_search($value, $this->items, $strict);
+        }
+
+        foreach ($this->items as $key => $item) {
+            if ($value($item, $key)) {
+                return $key;
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * Get and remove the first item from the collection.
+     *
+     * @return mixed
+     */
+    public function shift()
+    {
+        return array_shift($this->items);
+    }
+
+    /**
+     * Shuffle the items in the collection.
+     *
+     * @param  int|null  $seed
+     * @return static
+     */
+    public function shuffle($seed = null)
+    {
+        return new static(Arr::shuffle($this->items, $seed));
+    }
+
+    /**
+     * Skip the first {$count} items.
+     *
+     * @param  int  $count
+     * @return static
+     */
+    public function skip($count)
+    {
+        return $this->slice($count);
+    }
+
+    /**
+     * Skip items in the collection until the given condition is met.
+     *
+     * @param  mixed  $value
+     * @return static
+     */
+    public function skipUntil($value)
+    {
+        return new static($this->lazy()->skipUntil($value)->all());
+    }
+
+    /**
+     * Skip items in the collection while the given condition is met.
+     *
+     * @param  mixed  $value
+     * @return static
+     */
+    public function skipWhile($value)
+    {
+        return new static($this->lazy()->skipWhile($value)->all());
+    }
+
+    /**
+     * Slice the underlying collection array.
+     *
+     * @param  int  $offset
+     * @param  int|null  $length
+     * @return static
+     */
+    public function slice($offset, $length = null)
+    {
+        return new static(array_slice($this->items, $offset, $length, true));
+    }
+
+    /**
+     * Split a collection into a certain number of groups.
+     *
+     * @param  int  $numberOfGroups
+     * @return static
+     */
+    public function split($numberOfGroups)
+    {
+        if ($this->isEmpty()) {
+            return new static;
+        }
+
+        $groups = new static;
+
+        $groupSize = floor($this->count() / $numberOfGroups);
+
+        $remain = $this->count() % $numberOfGroups;
+
+        $start = 0;
+
+        for ($i = 0; $i < $numberOfGroups; $i++) {
+            $size = $groupSize;
+
+            if ($i < $remain) {
+                $size++;
+            }
+
+            if ($size) {
+                $groups->push(new static(array_slice($this->items, $start, $size)));
+
+                $start += $size;
+            }
+        }
+
+        return $groups;
+    }
+
+    /**
+     * Split a collection into a certain number of groups, and fill the first groups completely.
+     *
+     * @param  int  $numberOfGroups
+     * @return static
+     */
+    public function splitIn($numberOfGroups)
+    {
+        return $this->chunk(ceil($this->count() / $numberOfGroups));
+    }
+
+    /**
+     * Chunk the collection into chunks of the given size.
+     *
+     * @param  int  $size
+     * @return static
+     */
+    public function chunk($size)
+    {
+        if ($size <= 0) {
+            return new static;
+        }
+
+        $chunks = [];
+
+        foreach (array_chunk($this->items, $size, true) as $chunk) {
+            $chunks[] = new static($chunk);
+        }
+
+        return new static($chunks);
+    }
+
+    /**
+     * Chunk the collection into chunks with a callback.
+     *
+     * @param  callable  $callback
+     * @return static
+     */
+    public function chunkWhile(callable $callback)
+    {
+        return new static(
+            $this->lazy()->chunkWhile($callback)->mapInto(static::class)
+        );
+    }
+
+    /**
+     * Sort through each item with a callback.
+     *
+     * @param  callable|int|null  $callback
+     * @return static
+     */
+    public function sort($callback = null)
+    {
+        $items = $this->items;
+
+        $callback && is_callable($callback)
+            ? uasort($items, $callback)
+            : asort($items, $callback ?? SORT_REGULAR);
+
+        return new static($items);
+    }
+
+    /**
+     * Sort items in descending order.
+     *
+     * @param  int  $options
+     * @return static
+     */
+    public function sortDesc($options = SORT_REGULAR)
+    {
+        $items = $this->items;
+
+        arsort($items, $options);
+
+        return new static($items);
+    }
+
+    /**
+     * Sort the collection using the given callback.
+     *
+     * @param  callable|array|string  $callback
+     * @param  int  $options
+     * @param  bool  $descending
+     * @return static
+     */
+    public function sortBy($callback, $options = SORT_REGULAR, $descending = false)
+    {
+        if (is_array($callback) && ! is_callable($callback)) {
+            return $this->sortByMany($callback);
+        }
+
+        $results = [];
+
+        $callback = $this->valueRetriever($callback);
+
+        // First we will loop through the items and get the comparator from a callback
+        // function which we were given. Then, we will sort the returned values and
+        // and grab the corresponding values for the sorted keys from this array.
+        foreach ($this->items as $key => $value) {
+            $results[$key] = $callback($value, $key);
+        }
+
+        $descending ? arsort($results, $options)
+            : asort($results, $options);
+
+        // Once we have sorted all of the keys in the array, we will loop through them
+        // and grab the corresponding model so we can set the underlying items list
+        // to the sorted version. Then we'll just return the collection instance.
+        foreach (array_keys($results) as $key) {
+            $results[$key] = $this->items[$key];
+        }
+
+        return new static($results);
+    }
+
+    /**
+     * Sort the collection using multiple comparisons.
+     *
+     * @param  array  $comparisons
+     * @return static
+     */
+    protected function sortByMany(array $comparisons = [])
+    {
+        $items = $this->items;
+
+        usort($items, function ($a, $b) use ($comparisons) {
+            foreach ($comparisons as $comparison) {
+                $comparison = Arr::wrap($comparison);
+
+                $prop = $comparison[0];
+
+                $ascending = Arr::get($comparison, 1, true) === true ||
+                             Arr::get($comparison, 1, true) === 'asc';
+
+                $result = 0;
+
+                if (is_callable($prop)) {
+                    $result = $prop($a, $b);
+                } else {
+                    $values = [data_get($a, $prop), data_get($b, $prop)];
+
+                    if (! $ascending) {
+                        $values = array_reverse($values);
+                    }
+
+                    $result = $values[0] <=> $values[1];
+                }
+
+                if ($result === 0) {
+                    continue;
+                }
+
+                return $result;
+            }
+        });
+
+        return new static($items);
+    }
+
+    /**
+     * Sort the collection in descending order using the given callback.
+     *
+     * @param  callable|string  $callback
+     * @param  int  $options
+     * @return static
+     */
+    public function sortByDesc($callback, $options = SORT_REGULAR)
+    {
+        return $this->sortBy($callback, $options, true);
+    }
+
+    /**
+     * Sort the collection keys.
+     *
+     * @param  int  $options
+     * @param  bool  $descending
+     * @return static
+     */
+    public function sortKeys($options = SORT_REGULAR, $descending = false)
+    {
+        $items = $this->items;
+
+        $descending ? krsort($items, $options) : ksort($items, $options);
+
+        return new static($items);
+    }
+
+    /**
+     * Sort the collection keys in descending order.
+     *
+     * @param  int  $options
+     * @return static
+     */
+    public function sortKeysDesc($options = SORT_REGULAR)
+    {
+        return $this->sortKeys($options, true);
+    }
+
+    /**
+     * Splice a portion of the underlying collection array.
+     *
+     * @param  int  $offset
+     * @param  int|null  $length
+     * @param  mixed  $replacement
+     * @return static
+     */
+    public function splice($offset, $length = null, $replacement = [])
+    {
+        if (func_num_args() === 1) {
+            return new static(array_splice($this->items, $offset));
+        }
+
+        return new static(array_splice($this->items, $offset, $length, $replacement));
+    }
+
+    /**
+     * Take the first or last {$limit} items.
+     *
+     * @param  int  $limit
+     * @return static
+     */
+    public function take($limit)
+    {
+        if ($limit < 0) {
+            return $this->slice($limit, abs($limit));
+        }
+
+        return $this->slice(0, $limit);
+    }
+
+    /**
+     * Take items in the collection until the given condition is met.
+     *
+     * @param  mixed  $value
+     * @return static
+     */
+    public function takeUntil($value)
+    {
+        return new static($this->lazy()->takeUntil($value)->all());
+    }
+
+    /**
+     * Take items in the collection while the given condition is met.
+     *
+     * @param  mixed  $value
+     * @return static
+     */
+    public function takeWhile($value)
+    {
+        return new static($this->lazy()->takeWhile($value)->all());
+    }
+
+    /**
+     * Transform each item in the collection using a callback.
+     *
+     * @param  callable  $callback
+     * @return $this
+     */
+    public function transform(callable $callback)
+    {
+        $this->items = $this->map($callback)->all();
+
+        return $this;
+    }
+
+    /**
+     * Reset the keys on the underlying array.
+     *
+     * @return static
+     */
+    public function values()
+    {
+        return new static(array_values($this->items));
+    }
+
+    /**
+     * Zip the collection together with one or more arrays.
+     *
+     * e.g. new Collection([1, 2, 3])->zip([4, 5, 6]);
+     *      => [[1, 4], [2, 5], [3, 6]]
+     *
+     * @param  mixed  ...$items
+     * @return static
+     */
+    public function zip($items)
+    {
+        $arrayableItems = array_map(function ($items) {
+            return $this->getArrayableItems($items);
+        }, func_get_args());
+
+        $params = array_merge([function () {
+            return new static(func_get_args());
+        }, $this->items], $arrayableItems);
+
+        return new static(array_map(...$params));
+    }
+
+    /**
+     * Pad collection to the specified length with a value.
+     *
+     * @param  int  $size
+     * @param  mixed  $value
+     * @return static
+     */
+    public function pad($size, $value)
+    {
+        return new static(array_pad($this->items, $size, $value));
+    }
+
+    /**
+     * Get an iterator for the items.
+     *
+     * @return \ArrayIterator
+     */
+    public function getIterator()
+    {
+        return new ArrayIterator($this->items);
+    }
+
+    /**
+     * Count the number of items in the collection.
+     *
+     * @return int
+     */
+    public function count()
+    {
+        return count($this->items);
+    }
+
+    /**
+     * Count the number of items in the collection by a field or using a callback.
+     *
+     * @param  callable|string  $countBy
+     * @return static
+     */
+    public function countBy($countBy = null)
+    {
+        return new static($this->lazy()->countBy($countBy)->all());
+    }
+
+    /**
+     * Add an item to the collection.
+     *
+     * @param  mixed  $item
+     * @return $this
+     */
+    public function add($item)
+    {
+        $this->items[] = $item;
+
+        return $this;
+    }
+
+    /**
+     * Get a base Support collection instance from this collection.
+     *
+     * @return \Tightenco\Collect\Support\Collection
+     */
+    public function toBase()
+    {
+        return new self($this);
+    }
+
+    /**
+     * Determine if an item exists at an offset.
+     *
+     * @param  mixed  $key
+     * @return bool
+     */
+    public function offsetExists($key)
+    {
+        return isset($this->items[$key]);
+    }
+
+    /**
+     * Get an item at a given offset.
+     *
+     * @param  mixed  $key
+     * @return mixed
+     */
+    public function offsetGet($key)
+    {
+        return $this->items[$key];
+    }
+
+    /**
+     * Set the item at a given offset.
+     *
+     * @param  mixed  $key
+     * @param  mixed  $value
+     * @return void
+     */
+    public function offsetSet($key, $value)
+    {
+        if (is_null($key)) {
+            $this->items[] = $value;
+        } else {
+            $this->items[$key] = $value;
+        }
+    }
+
+    /**
+     * Unset the item at a given offset.
+     *
+     * @param  string  $key
+     * @return void
+     */
+    public function offsetUnset($key)
+    {
+        unset($this->items[$key]);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/Enumerable.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/Enumerable.php
new file mode 100644
index 0000000..f189c45
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/Enumerable.php
@@ -0,0 +1,1027 @@
+<?php
+
+namespace Tightenco\Collect\Support;
+
+use Countable;
+use Tightenco\Collect\Contracts\Support\Arrayable;
+use Tightenco\Collect\Contracts\Support\Jsonable;
+use IteratorAggregate;
+use JsonSerializable;
+
+interface Enumerable extends Arrayable, Countable, IteratorAggregate, Jsonable, JsonSerializable
+{
+    /**
+     * Create a new collection instance if the value isn't one already.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public static function make($items = []);
+
+    /**
+     * Create a new instance by invoking the callback a given amount of times.
+     *
+     * @param  int  $number
+     * @param  callable|null  $callback
+     * @return static
+     */
+    public static function times($number, callable $callback = null);
+
+    /**
+     * Create a collection with the given range.
+     *
+     * @param  int  $from
+     * @param  int  $to
+     * @return static
+     */
+    public static function range($from, $to);
+
+    /**
+     * Wrap the given value in a collection if applicable.
+     *
+     * @param  mixed  $value
+     * @return static
+     */
+    public static function wrap($value);
+
+    /**
+     * Get the underlying items from the given collection if applicable.
+     *
+     * @param  array|static  $value
+     * @return array
+     */
+    public static function unwrap($value);
+
+    /**
+     * Create a new instance with no items.
+     *
+     * @return static
+     */
+    public static function empty();
+
+    /**
+     * Get all items in the enumerable.
+     *
+     * @return array
+     */
+    public function all();
+
+    /**
+     * Alias for the "avg" method.
+     *
+     * @param  callable|string|null  $callback
+     * @return mixed
+     */
+    public function average($callback = null);
+
+    /**
+     * Get the median of a given key.
+     *
+     * @param  string|array|null  $key
+     * @return mixed
+     */
+    public function median($key = null);
+
+    /**
+     * Get the mode of a given key.
+     *
+     * @param  string|array|null  $key
+     * @return array|null
+     */
+    public function mode($key = null);
+
+    /**
+     * Collapse the items into a single enumerable.
+     *
+     * @return static
+     */
+    public function collapse();
+
+    /**
+     * Alias for the "contains" method.
+     *
+     * @param  mixed  $key
+     * @param  mixed  $operator
+     * @param  mixed  $value
+     * @return bool
+     */
+    public function some($key, $operator = null, $value = null);
+
+    /**
+     * Determine if an item exists, using strict comparison.
+     *
+     * @param  mixed  $key
+     * @param  mixed  $value
+     * @return bool
+     */
+    public function containsStrict($key, $value = null);
+
+    /**
+     * Get the average value of a given key.
+     *
+     * @param  callable|string|null  $callback
+     * @return mixed
+     */
+    public function avg($callback = null);
+
+    /**
+     * Determine if an item exists in the enumerable.
+     *
+     * @param  mixed  $key
+     * @param  mixed  $operator
+     * @param  mixed  $value
+     * @return bool
+     */
+    public function contains($key, $operator = null, $value = null);
+
+    /**
+     * Cross join with the given lists, returning all possible permutations.
+     *
+     * @param  mixed  ...$lists
+     * @return static
+     */
+    public function crossJoin(...$lists);
+
+    /**
+     * Dump the collection and end the script.
+     *
+     * @param  mixed  ...$args
+     * @return void
+     */
+    public function dd(...$args);
+
+    /**
+     * Dump the collection.
+     *
+     * @return $this
+     */
+    public function dump();
+
+    /**
+     * Get the items that are not present in the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function diff($items);
+
+    /**
+     * Get the items that are not present in the given items, using the callback.
+     *
+     * @param  mixed  $items
+     * @param  callable  $callback
+     * @return static
+     */
+    public function diffUsing($items, callable $callback);
+
+    /**
+     * Get the items whose keys and values are not present in the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function diffAssoc($items);
+
+    /**
+     * Get the items whose keys and values are not present in the given items, using the callback.
+     *
+     * @param  mixed  $items
+     * @param  callable  $callback
+     * @return static
+     */
+    public function diffAssocUsing($items, callable $callback);
+
+    /**
+     * Get the items whose keys are not present in the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function diffKeys($items);
+
+    /**
+     * Get the items whose keys are not present in the given items, using the callback.
+     *
+     * @param  mixed  $items
+     * @param  callable  $callback
+     * @return static
+     */
+    public function diffKeysUsing($items, callable $callback);
+
+    /**
+     * Retrieve duplicate items.
+     *
+     * @param  callable|null  $callback
+     * @param  bool  $strict
+     * @return static
+     */
+    public function duplicates($callback = null, $strict = false);
+
+    /**
+     * Retrieve duplicate items using strict comparison.
+     *
+     * @param  callable|null  $callback
+     * @return static
+     */
+    public function duplicatesStrict($callback = null);
+
+    /**
+     * Execute a callback over each item.
+     *
+     * @param  callable  $callback
+     * @return $this
+     */
+    public function each(callable $callback);
+
+    /**
+     * Execute a callback over each nested chunk of items.
+     *
+     * @param  callable  $callback
+     * @return static
+     */
+    public function eachSpread(callable $callback);
+
+    /**
+     * Determine if all items pass the given truth test.
+     *
+     * @param  string|callable  $key
+     * @param  mixed  $operator
+     * @param  mixed  $value
+     * @return bool
+     */
+    public function every($key, $operator = null, $value = null);
+
+    /**
+     * Get all items except for those with the specified keys.
+     *
+     * @param  mixed  $keys
+     * @return static
+     */
+    public function except($keys);
+
+    /**
+     * Run a filter over each of the items.
+     *
+     * @param  callable|null  $callback
+     * @return static
+     */
+    public function filter(callable $callback = null);
+
+    /**
+     * Apply the callback if the value is truthy.
+     *
+     * @param  bool  $value
+     * @param  callable  $callback
+     * @param  callable|null  $default
+     * @return static|mixed
+     */
+    public function when($value, callable $callback, callable $default = null);
+
+    /**
+     * Apply the callback if the collection is empty.
+     *
+     * @param  callable  $callback
+     * @param  callable|null  $default
+     * @return static|mixed
+     */
+    public function whenEmpty(callable $callback, callable $default = null);
+
+    /**
+     * Apply the callback if the collection is not empty.
+     *
+     * @param  callable  $callback
+     * @param  callable|null  $default
+     * @return static|mixed
+     */
+    public function whenNotEmpty(callable $callback, callable $default = null);
+
+    /**
+     * Apply the callback if the value is falsy.
+     *
+     * @param  bool  $value
+     * @param  callable  $callback
+     * @param  callable|null  $default
+     * @return static|mixed
+     */
+    public function unless($value, callable $callback, callable $default = null);
+
+    /**
+     * Apply the callback unless the collection is empty.
+     *
+     * @param  callable  $callback
+     * @param  callable|null  $default
+     * @return static|mixed
+     */
+    public function unlessEmpty(callable $callback, callable $default = null);
+
+    /**
+     * Apply the callback unless the collection is not empty.
+     *
+     * @param  callable  $callback
+     * @param  callable|null  $default
+     * @return static|mixed
+     */
+    public function unlessNotEmpty(callable $callback, callable $default = null);
+
+    /**
+     * Filter items by the given key value pair.
+     *
+     * @param  string  $key
+     * @param  mixed  $operator
+     * @param  mixed  $value
+     * @return static
+     */
+    public function where($key, $operator = null, $value = null);
+
+    /**
+     * Filter items where the value for the given key is null.
+     *
+     * @param  string|null  $key
+     * @return static
+     */
+    public function whereNull($key = null);
+
+    /**
+     * Filter items where the value for the given key is not null.
+     *
+     * @param  string|null  $key
+     * @return static
+     */
+    public function whereNotNull($key = null);
+
+    /**
+     * Filter items by the given key value pair using strict comparison.
+     *
+     * @param  string  $key
+     * @param  mixed  $value
+     * @return static
+     */
+    public function whereStrict($key, $value);
+
+    /**
+     * Filter items by the given key value pair.
+     *
+     * @param  string  $key
+     * @param  mixed  $values
+     * @param  bool  $strict
+     * @return static
+     */
+    public function whereIn($key, $values, $strict = false);
+
+    /**
+     * Filter items by the given key value pair using strict comparison.
+     *
+     * @param  string  $key
+     * @param  mixed  $values
+     * @return static
+     */
+    public function whereInStrict($key, $values);
+
+    /**
+     * Filter items such that the value of the given key is between the given values.
+     *
+     * @param  string  $key
+     * @param  array  $values
+     * @return static
+     */
+    public function whereBetween($key, $values);
+
+    /**
+     * Filter items such that the value of the given key is not between the given values.
+     *
+     * @param  string  $key
+     * @param  array  $values
+     * @return static
+     */
+    public function whereNotBetween($key, $values);
+
+    /**
+     * Filter items by the given key value pair.
+     *
+     * @param  string  $key
+     * @param  mixed  $values
+     * @param  bool  $strict
+     * @return static
+     */
+    public function whereNotIn($key, $values, $strict = false);
+
+    /**
+     * Filter items by the given key value pair using strict comparison.
+     *
+     * @param  string  $key
+     * @param  mixed  $values
+     * @return static
+     */
+    public function whereNotInStrict($key, $values);
+
+    /**
+     * Filter the items, removing any items that don't match the given type(s).
+     *
+     * @param  string|string[]  $type
+     * @return static
+     */
+    public function whereInstanceOf($type);
+
+    /**
+     * Get the first item from the enumerable passing the given truth test.
+     *
+     * @param  callable|null  $callback
+     * @param  mixed  $default
+     * @return mixed
+     */
+    public function first(callable $callback = null, $default = null);
+
+    /**
+     * Get the first item by the given key value pair.
+     *
+     * @param  string  $key
+     * @param  mixed  $operator
+     * @param  mixed  $value
+     * @return mixed
+     */
+    public function firstWhere($key, $operator = null, $value = null);
+
+    /**
+     * Get a flattened array of the items in the collection.
+     *
+     * @param  int  $depth
+     * @return static
+     */
+    public function flatten($depth = INF);
+
+    /**
+     * Flip the values with their keys.
+     *
+     * @return static
+     */
+    public function flip();
+
+    /**
+     * Get an item from the collection by key.
+     *
+     * @param  mixed  $key
+     * @param  mixed  $default
+     * @return mixed
+     */
+    public function get($key, $default = null);
+
+    /**
+     * Group an associative array by a field or using a callback.
+     *
+     * @param  array|callable|string  $groupBy
+     * @param  bool  $preserveKeys
+     * @return static
+     */
+    public function groupBy($groupBy, $preserveKeys = false);
+
+    /**
+     * Key an associative array by a field or using a callback.
+     *
+     * @param  callable|string  $keyBy
+     * @return static
+     */
+    public function keyBy($keyBy);
+
+    /**
+     * Determine if an item exists in the collection by key.
+     *
+     * @param  mixed  $key
+     * @return bool
+     */
+    public function has($key);
+
+    /**
+     * Concatenate values of a given key as a string.
+     *
+     * @param  string  $value
+     * @param  string|null  $glue
+     * @return string
+     */
+    public function implode($value, $glue = null);
+
+    /**
+     * Intersect the collection with the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function intersect($items);
+
+    /**
+     * Intersect the collection with the given items by key.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function intersectByKeys($items);
+
+    /**
+     * Determine if the collection is empty or not.
+     *
+     * @return bool
+     */
+    public function isEmpty();
+
+    /**
+     * Determine if the collection is not empty.
+     *
+     * @return bool
+     */
+    public function isNotEmpty();
+
+    /**
+     * Join all items from the collection using a string. The final items can use a separate glue string.
+     *
+     * @param  string  $glue
+     * @param  string  $finalGlue
+     * @return string
+     */
+    public function join($glue, $finalGlue = '');
+
+    /**
+     * Get the keys of the collection items.
+     *
+     * @return static
+     */
+    public function keys();
+
+    /**
+     * Get the last item from the collection.
+     *
+     * @param  callable|null  $callback
+     * @param  mixed  $default
+     * @return mixed
+     */
+    public function last(callable $callback = null, $default = null);
+
+    /**
+     * Run a map over each of the items.
+     *
+     * @param  callable  $callback
+     * @return static
+     */
+    public function map(callable $callback);
+
+    /**
+     * Run a map over each nested chunk of items.
+     *
+     * @param  callable  $callback
+     * @return static
+     */
+    public function mapSpread(callable $callback);
+
+    /**
+     * Run a dictionary map over the items.
+     *
+     * The callback should return an associative array with a single key/value pair.
+     *
+     * @param  callable  $callback
+     * @return static
+     */
+    public function mapToDictionary(callable $callback);
+
+    /**
+     * Run a grouping map over the items.
+     *
+     * The callback should return an associative array with a single key/value pair.
+     *
+     * @param  callable  $callback
+     * @return static
+     */
+    public function mapToGroups(callable $callback);
+
+    /**
+     * Run an associative map over each of the items.
+     *
+     * The callback should return an associative array with a single key/value pair.
+     *
+     * @param  callable  $callback
+     * @return static
+     */
+    public function mapWithKeys(callable $callback);
+
+    /**
+     * Map a collection and flatten the result by a single level.
+     *
+     * @param  callable  $callback
+     * @return static
+     */
+    public function flatMap(callable $callback);
+
+    /**
+     * Map the values into a new class.
+     *
+     * @param  string  $class
+     * @return static
+     */
+    public function mapInto($class);
+
+    /**
+     * Merge the collection with the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function merge($items);
+
+    /**
+     * Recursively merge the collection with the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function mergeRecursive($items);
+
+    /**
+     * Create a collection by using this collection for keys and another for its values.
+     *
+     * @param  mixed  $values
+     * @return static
+     */
+    public function combine($values);
+
+    /**
+     * Union the collection with the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function union($items);
+
+    /**
+     * Get the min value of a given key.
+     *
+     * @param  callable|string|null  $callback
+     * @return mixed
+     */
+    public function min($callback = null);
+
+    /**
+     * Get the max value of a given key.
+     *
+     * @param  callable|string|null  $callback
+     * @return mixed
+     */
+    public function max($callback = null);
+
+    /**
+     * Create a new collection consisting of every n-th element.
+     *
+     * @param  int  $step
+     * @param  int  $offset
+     * @return static
+     */
+    public function nth($step, $offset = 0);
+
+    /**
+     * Get the items with the specified keys.
+     *
+     * @param  mixed  $keys
+     * @return static
+     */
+    public function only($keys);
+
+    /**
+     * "Paginate" the collection by slicing it into a smaller collection.
+     *
+     * @param  int  $page
+     * @param  int  $perPage
+     * @return static
+     */
+    public function forPage($page, $perPage);
+
+    /**
+     * Partition the collection into two arrays using the given callback or key.
+     *
+     * @param  callable|string  $key
+     * @param  mixed  $operator
+     * @param  mixed  $value
+     * @return static
+     */
+    public function partition($key, $operator = null, $value = null);
+
+    /**
+     * Push all of the given items onto the collection.
+     *
+     * @param  iterable  $source
+     * @return static
+     */
+    public function concat($source);
+
+    /**
+     * Get one or a specified number of items randomly from the collection.
+     *
+     * @param  int|null  $number
+     * @return static|mixed
+     *
+     * @throws \InvalidArgumentException
+     */
+    public function random($number = null);
+
+    /**
+     * Reduce the collection to a single value.
+     *
+     * @param  callable  $callback
+     * @param  mixed  $initial
+     * @return mixed
+     */
+    public function reduce(callable $callback, $initial = null);
+
+    /**
+     * Replace the collection items with the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function replace($items);
+
+    /**
+     * Recursively replace the collection items with the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function replaceRecursive($items);
+
+    /**
+     * Reverse items order.
+     *
+     * @return static
+     */
+    public function reverse();
+
+    /**
+     * Search the collection for a given value and return the corresponding key if successful.
+     *
+     * @param  mixed  $value
+     * @param  bool  $strict
+     * @return mixed
+     */
+    public function search($value, $strict = false);
+
+    /**
+     * Shuffle the items in the collection.
+     *
+     * @param  int|null  $seed
+     * @return static
+     */
+    public function shuffle($seed = null);
+
+    /**
+     * Skip the first {$count} items.
+     *
+     * @param  int  $count
+     * @return static
+     */
+    public function skip($count);
+
+    /**
+     * Skip items in the collection until the given condition is met.
+     *
+     * @param  mixed  $value
+     * @return static
+     */
+    public function skipUntil($value);
+
+    /**
+     * Skip items in the collection while the given condition is met.
+     *
+     * @param  mixed  $value
+     * @return static
+     */
+    public function skipWhile($value);
+
+    /**
+     * Get a slice of items from the enumerable.
+     *
+     * @param  int  $offset
+     * @param  int|null  $length
+     * @return static
+     */
+    public function slice($offset, $length = null);
+
+    /**
+     * Split a collection into a certain number of groups.
+     *
+     * @param  int  $numberOfGroups
+     * @return static
+     */
+    public function split($numberOfGroups);
+
+    /**
+     * Chunk the collection into chunks of the given size.
+     *
+     * @param  int  $size
+     * @return static
+     */
+    public function chunk($size);
+
+    /**
+     * Chunk the collection into chunks with a callback.
+     *
+     * @param  callable  $callback
+     * @return static
+     */
+    public function chunkWhile(callable $callback);
+
+    /**
+     * Sort through each item with a callback.
+     *
+     * @param  callable|null|int  $callback
+     * @return static
+     */
+    public function sort($callback = null);
+
+    /**
+     * Sort items in descending order.
+     *
+     * @param  int  $options
+     * @return static
+     */
+    public function sortDesc($options = SORT_REGULAR);
+
+    /**
+     * Sort the collection using the given callback.
+     *
+     * @param  callable|string  $callback
+     * @param  int  $options
+     * @param  bool  $descending
+     * @return static
+     */
+    public function sortBy($callback, $options = SORT_REGULAR, $descending = false);
+
+    /**
+     * Sort the collection in descending order using the given callback.
+     *
+     * @param  callable|string  $callback
+     * @param  int  $options
+     * @return static
+     */
+    public function sortByDesc($callback, $options = SORT_REGULAR);
+
+    /**
+     * Sort the collection keys.
+     *
+     * @param  int  $options
+     * @param  bool  $descending
+     * @return static
+     */
+    public function sortKeys($options = SORT_REGULAR, $descending = false);
+
+    /**
+     * Sort the collection keys in descending order.
+     *
+     * @param  int  $options
+     * @return static
+     */
+    public function sortKeysDesc($options = SORT_REGULAR);
+
+    /**
+     * Get the sum of the given values.
+     *
+     * @param  callable|string|null  $callback
+     * @return mixed
+     */
+    public function sum($callback = null);
+
+    /**
+     * Take the first or last {$limit} items.
+     *
+     * @param  int  $limit
+     * @return static
+     */
+    public function take($limit);
+
+    /**
+     * Take items in the collection until the given condition is met.
+     *
+     * @param  mixed  $value
+     * @return static
+     */
+    public function takeUntil($value);
+
+    /**
+     * Take items in the collection while the given condition is met.
+     *
+     * @param  mixed  $value
+     * @return static
+     */
+    public function takeWhile($value);
+
+    /**
+     * Pass the collection to the given callback and then return it.
+     *
+     * @param  callable  $callback
+     * @return $this
+     */
+    public function tap(callable $callback);
+
+    /**
+     * Pass the enumerable to the given callback and return the result.
+     *
+     * @param  callable  $callback
+     * @return mixed
+     */
+    public function pipe(callable $callback);
+
+    /**
+     * Get the values of a given key.
+     *
+     * @param  string|array  $value
+     * @param  string|null  $key
+     * @return static
+     */
+    public function pluck($value, $key = null);
+
+    /**
+     * Create a collection of all elements that do not pass a given truth test.
+     *
+     * @param  callable|mixed  $callback
+     * @return static
+     */
+    public function reject($callback = true);
+
+    /**
+     * Return only unique items from the collection array.
+     *
+     * @param  string|callable|null  $key
+     * @param  bool  $strict
+     * @return static
+     */
+    public function unique($key = null, $strict = false);
+
+    /**
+     * Return only unique items from the collection array using strict comparison.
+     *
+     * @param  string|callable|null  $key
+     * @return static
+     */
+    public function uniqueStrict($key = null);
+
+    /**
+     * Reset the keys on the underlying array.
+     *
+     * @return static
+     */
+    public function values();
+
+    /**
+     * Pad collection to the specified length with a value.
+     *
+     * @param  int  $size
+     * @param  mixed  $value
+     * @return static
+     */
+    public function pad($size, $value);
+
+    /**
+     * Count the number of items in the collection using a given truth test.
+     *
+     * @param  callable|null  $callback
+     * @return static
+     */
+    public function countBy($callback = null);
+
+    /**
+     * Zip the collection together with one or more arrays.
+     *
+     * e.g. new Collection([1, 2, 3])->zip([4, 5, 6]);
+     *      => [[1, 4], [2, 5], [3, 6]]
+     *
+     * @param  mixed  ...$items
+     * @return static
+     */
+    public function zip($items);
+
+    /**
+     * Collect the values into a collection.
+     *
+     * @return \Tightenco\Collect\Support\Collection
+     */
+    public function collect();
+
+    /**
+     * Convert the collection to its string representation.
+     *
+     * @return string
+     */
+    public function __toString();
+
+    /**
+     * Add a method to the list of proxied methods.
+     *
+     * @param  string  $method
+     * @return void
+     */
+    public static function proxy($method);
+
+    /**
+     * Dynamically access collection proxies.
+     *
+     * @param  string  $key
+     * @return mixed
+     *
+     * @throws \Exception
+     */
+    public function __get($key);
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/HigherOrderCollectionProxy.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/HigherOrderCollectionProxy.php
new file mode 100644
index 0000000..01ac43f
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/HigherOrderCollectionProxy.php
@@ -0,0 +1,63 @@
+<?php
+
+namespace Tightenco\Collect\Support;
+
+/**
+ * @mixin \Tightenco\Collect\Support\Enumerable
+ */
+class HigherOrderCollectionProxy
+{
+    /**
+     * The collection being operated on.
+     *
+     * @var \Tightenco\Collect\Support\Enumerable
+     */
+    protected $collection;
+
+    /**
+     * The method being proxied.
+     *
+     * @var string
+     */
+    protected $method;
+
+    /**
+     * Create a new proxy instance.
+     *
+     * @param  \Tightenco\Collect\Support\Enumerable  $collection
+     * @param  string  $method
+     * @return void
+     */
+    public function __construct(Enumerable $collection, $method)
+    {
+        $this->method = $method;
+        $this->collection = $collection;
+    }
+
+    /**
+     * Proxy accessing an attribute onto the collection items.
+     *
+     * @param  string  $key
+     * @return mixed
+     */
+    public function __get($key)
+    {
+        return $this->collection->{$this->method}(function ($value) use ($key) {
+            return is_array($value) ? $value[$key] : $value->{$key};
+        });
+    }
+
+    /**
+     * Proxy a method call onto the collection items.
+     *
+     * @param  string  $method
+     * @param  array  $parameters
+     * @return mixed
+     */
+    public function __call($method, $parameters)
+    {
+        return $this->collection->{$this->method}(function ($value) use ($method, $parameters) {
+            return $value->{$method}(...$parameters);
+        });
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/HigherOrderWhenProxy.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/HigherOrderWhenProxy.php
new file mode 100644
index 0000000..ea48c7c
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/HigherOrderWhenProxy.php
@@ -0,0 +1,63 @@
+<?php
+
+namespace Tightenco\Collect\Support;
+
+/**
+ * @mixin \Tightenco\Collect\Support\Enumerable
+ */
+class HigherOrderWhenProxy
+{
+    /**
+     * The collection being operated on.
+     *
+     * @var \Tightenco\Collect\Support\Enumerable
+     */
+    protected $collection;
+
+    /**
+     * The condition for proxying.
+     *
+     * @var bool
+     */
+    protected $condition;
+
+    /**
+     * Create a new proxy instance.
+     *
+     * @param  \Tightenco\Collect\Support\Enumerable  $collection
+     * @param  bool  $condition
+     * @return void
+     */
+    public function __construct(Enumerable $collection, $condition)
+    {
+        $this->condition = $condition;
+        $this->collection = $collection;
+    }
+
+    /**
+     * Proxy accessing an attribute onto the collection.
+     *
+     * @param  string  $key
+     * @return mixed
+     */
+    public function __get($key)
+    {
+        return $this->condition
+            ? $this->collection->{$key}
+            : $this->collection;
+    }
+
+    /**
+     * Proxy a method call onto the collection.
+     *
+     * @param  string  $method
+     * @param  array  $parameters
+     * @return mixed
+     */
+    public function __call($method, $parameters)
+    {
+        return $this->condition
+            ? $this->collection->{$method}(...$parameters)
+            : $this->collection;
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/LazyCollection.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/LazyCollection.php
new file mode 100644
index 0000000..da73cb2
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/LazyCollection.php
@@ -0,0 +1,1417 @@
+<?php
+
+namespace Tightenco\Collect\Support;
+
+use ArrayIterator;
+use Closure;
+use DateTimeInterface;
+use Tightenco\Collect\Support\Traits\EnumeratesValues;
+use Tightenco\Collect\Support\Traits\Macroable;
+use IteratorAggregate;
+use stdClass;
+
+class LazyCollection implements Enumerable
+{
+    use EnumeratesValues, Macroable;
+
+    /**
+     * The source from which to generate items.
+     *
+     * @var callable|static
+     */
+    public $source;
+
+    /**
+     * Create a new lazy collection instance.
+     *
+     * @param  mixed  $source
+     * @return void
+     */
+    public function __construct($source = null)
+    {
+        if ($source instanceof Closure || $source instanceof self) {
+            $this->source = $source;
+        } elseif (is_null($source)) {
+            $this->source = static::empty();
+        } else {
+            $this->source = $this->getArrayableItems($source);
+        }
+    }
+
+    /**
+     * Create a collection with the given range.
+     *
+     * @param  int  $from
+     * @param  int  $to
+     * @return static
+     */
+    public static function range($from, $to)
+    {
+        return new static(function () use ($from, $to) {
+            if ($from <= $to) {
+                for (; $from <= $to; $from++) {
+                    yield $from;
+                }
+            } else {
+                for (; $from >= $to; $from--) {
+                    yield $from;
+                }
+            }
+        });
+    }
+
+    /**
+     * Get all items in the enumerable.
+     *
+     * @return array
+     */
+    public function all()
+    {
+        if (is_array($this->source)) {
+            return $this->source;
+        }
+
+        return iterator_to_array($this->getIterator());
+    }
+
+    /**
+     * Eager load all items into a new lazy collection backed by an array.
+     *
+     * @return static
+     */
+    public function eager()
+    {
+        return new static($this->all());
+    }
+
+    /**
+     * Cache values as they're enumerated.
+     *
+     * @return static
+     */
+    public function remember()
+    {
+        $iterator = $this->getIterator();
+
+        $iteratorIndex = 0;
+
+        $cache = [];
+
+        return new static(function () use ($iterator, &$iteratorIndex, &$cache) {
+            for ($index = 0; true; $index++) {
+                if (array_key_exists($index, $cache)) {
+                    yield $cache[$index][0] => $cache[$index][1];
+
+                    continue;
+                }
+
+                if ($iteratorIndex < $index) {
+                    $iterator->next();
+
+                    $iteratorIndex++;
+                }
+
+                if (! $iterator->valid()) {
+                    break;
+                }
+
+                $cache[$index] = [$iterator->key(), $iterator->current()];
+
+                yield $cache[$index][0] => $cache[$index][1];
+            }
+        });
+    }
+
+    /**
+     * Get the average value of a given key.
+     *
+     * @param  callable|string|null  $callback
+     * @return mixed
+     */
+    public function avg($callback = null)
+    {
+        return $this->collect()->avg($callback);
+    }
+
+    /**
+     * Get the median of a given key.
+     *
+     * @param  string|array|null  $key
+     * @return mixed
+     */
+    public function median($key = null)
+    {
+        return $this->collect()->median($key);
+    }
+
+    /**
+     * Get the mode of a given key.
+     *
+     * @param  string|array|null  $key
+     * @return array|null
+     */
+    public function mode($key = null)
+    {
+        return $this->collect()->mode($key);
+    }
+
+    /**
+     * Collapse the collection of items into a single array.
+     *
+     * @return static
+     */
+    public function collapse()
+    {
+        return new static(function () {
+            foreach ($this as $values) {
+                if (is_array($values) || $values instanceof Enumerable) {
+                    foreach ($values as $value) {
+                        yield $value;
+                    }
+                }
+            }
+        });
+    }
+
+    /**
+     * Determine if an item exists in the enumerable.
+     *
+     * @param  mixed  $key
+     * @param  mixed  $operator
+     * @param  mixed  $value
+     * @return bool
+     */
+    public function contains($key, $operator = null, $value = null)
+    {
+        if (func_num_args() === 1 && $this->useAsCallable($key)) {
+            $placeholder = new stdClass;
+
+            return $this->first($key, $placeholder) !== $placeholder;
+        }
+
+        if (func_num_args() === 1) {
+            $needle = $key;
+
+            foreach ($this as $value) {
+                if ($value == $needle) {
+                    return true;
+                }
+            }
+
+            return false;
+        }
+
+        return $this->contains($this->operatorForWhere(...func_get_args()));
+    }
+
+    /**
+     * Cross join the given iterables, returning all possible permutations.
+     *
+     * @param  array  ...$arrays
+     * @return static
+     */
+    public function crossJoin(...$arrays)
+    {
+        return $this->passthru('crossJoin', func_get_args());
+    }
+
+    /**
+     * Count the number of items in the collection by a field or using a callback.
+     *
+     * @param  callable|string  $countBy
+     * @return static
+     */
+    public function countBy($countBy = null)
+    {
+        $countBy = is_null($countBy)
+            ? $this->identity()
+            : $this->valueRetriever($countBy);
+
+        return new static(function () use ($countBy) {
+            $counts = [];
+
+            foreach ($this as $key => $value) {
+                $group = $countBy($value, $key);
+
+                if (empty($counts[$group])) {
+                    $counts[$group] = 0;
+                }
+
+                $counts[$group]++;
+            }
+
+            yield from $counts;
+        });
+    }
+
+    /**
+     * Get the items that are not present in the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function diff($items)
+    {
+        return $this->passthru('diff', func_get_args());
+    }
+
+    /**
+     * Get the items that are not present in the given items, using the callback.
+     *
+     * @param  mixed  $items
+     * @param  callable  $callback
+     * @return static
+     */
+    public function diffUsing($items, callable $callback)
+    {
+        return $this->passthru('diffUsing', func_get_args());
+    }
+
+    /**
+     * Get the items whose keys and values are not present in the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function diffAssoc($items)
+    {
+        return $this->passthru('diffAssoc', func_get_args());
+    }
+
+    /**
+     * Get the items whose keys and values are not present in the given items, using the callback.
+     *
+     * @param  mixed  $items
+     * @param  callable  $callback
+     * @return static
+     */
+    public function diffAssocUsing($items, callable $callback)
+    {
+        return $this->passthru('diffAssocUsing', func_get_args());
+    }
+
+    /**
+     * Get the items whose keys are not present in the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function diffKeys($items)
+    {
+        return $this->passthru('diffKeys', func_get_args());
+    }
+
+    /**
+     * Get the items whose keys are not present in the given items, using the callback.
+     *
+     * @param  mixed  $items
+     * @param  callable  $callback
+     * @return static
+     */
+    public function diffKeysUsing($items, callable $callback)
+    {
+        return $this->passthru('diffKeysUsing', func_get_args());
+    }
+
+    /**
+     * Retrieve duplicate items.
+     *
+     * @param  callable|null  $callback
+     * @param  bool  $strict
+     * @return static
+     */
+    public function duplicates($callback = null, $strict = false)
+    {
+        return $this->passthru('duplicates', func_get_args());
+    }
+
+    /**
+     * Retrieve duplicate items using strict comparison.
+     *
+     * @param  callable|null  $callback
+     * @return static
+     */
+    public function duplicatesStrict($callback = null)
+    {
+        return $this->passthru('duplicatesStrict', func_get_args());
+    }
+
+    /**
+     * Get all items except for those with the specified keys.
+     *
+     * @param  mixed  $keys
+     * @return static
+     */
+    public function except($keys)
+    {
+        return $this->passthru('except', func_get_args());
+    }
+
+    /**
+     * Run a filter over each of the items.
+     *
+     * @param  callable|null  $callback
+     * @return static
+     */
+    public function filter(callable $callback = null)
+    {
+        if (is_null($callback)) {
+            $callback = function ($value) {
+                return (bool) $value;
+            };
+        }
+
+        return new static(function () use ($callback) {
+            foreach ($this as $key => $value) {
+                if ($callback($value, $key)) {
+                    yield $key => $value;
+                }
+            }
+        });
+    }
+
+    /**
+     * Get the first item from the enumerable passing the given truth test.
+     *
+     * @param  callable|null  $callback
+     * @param  mixed  $default
+     * @return mixed
+     */
+    public function first(callable $callback = null, $default = null)
+    {
+        $iterator = $this->getIterator();
+
+        if (is_null($callback)) {
+            if (! $iterator->valid()) {
+                return value($default);
+            }
+
+            return $iterator->current();
+        }
+
+        foreach ($iterator as $key => $value) {
+            if ($callback($value, $key)) {
+                return $value;
+            }
+        }
+
+        return value($default);
+    }
+
+    /**
+     * Get a flattened list of the items in the collection.
+     *
+     * @param  int  $depth
+     * @return static
+     */
+    public function flatten($depth = INF)
+    {
+        $instance = new static(function () use ($depth) {
+            foreach ($this as $item) {
+                if (! is_array($item) && ! $item instanceof Enumerable) {
+                    yield $item;
+                } elseif ($depth === 1) {
+                    yield from $item;
+                } else {
+                    yield from (new static($item))->flatten($depth - 1);
+                }
+            }
+        });
+
+        return $instance->values();
+    }
+
+    /**
+     * Flip the items in the collection.
+     *
+     * @return static
+     */
+    public function flip()
+    {
+        return new static(function () {
+            foreach ($this as $key => $value) {
+                yield $value => $key;
+            }
+        });
+    }
+
+    /**
+     * Get an item by key.
+     *
+     * @param  mixed  $key
+     * @param  mixed  $default
+     * @return mixed
+     */
+    public function get($key, $default = null)
+    {
+        if (is_null($key)) {
+            return;
+        }
+
+        foreach ($this as $outerKey => $outerValue) {
+            if ($outerKey == $key) {
+                return $outerValue;
+            }
+        }
+
+        return value($default);
+    }
+
+    /**
+     * Group an associative array by a field or using a callback.
+     *
+     * @param  array|callable|string  $groupBy
+     * @param  bool  $preserveKeys
+     * @return static
+     */
+    public function groupBy($groupBy, $preserveKeys = false)
+    {
+        return $this->passthru('groupBy', func_get_args());
+    }
+
+    /**
+     * Key an associative array by a field or using a callback.
+     *
+     * @param  callable|string  $keyBy
+     * @return static
+     */
+    public function keyBy($keyBy)
+    {
+        return new static(function () use ($keyBy) {
+            $keyBy = $this->valueRetriever($keyBy);
+
+            foreach ($this as $key => $item) {
+                $resolvedKey = $keyBy($item, $key);
+
+                if (is_object($resolvedKey)) {
+                    $resolvedKey = (string) $resolvedKey;
+                }
+
+                yield $resolvedKey => $item;
+            }
+        });
+    }
+
+    /**
+     * Determine if an item exists in the collection by key.
+     *
+     * @param  mixed  $key
+     * @return bool
+     */
+    public function has($key)
+    {
+        $keys = array_flip(is_array($key) ? $key : func_get_args());
+        $count = count($keys);
+
+        foreach ($this as $key => $value) {
+            if (array_key_exists($key, $keys) && --$count == 0) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * Concatenate values of a given key as a string.
+     *
+     * @param  string  $value
+     * @param  string|null  $glue
+     * @return string
+     */
+    public function implode($value, $glue = null)
+    {
+        return $this->collect()->implode(...func_get_args());
+    }
+
+    /**
+     * Intersect the collection with the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function intersect($items)
+    {
+        return $this->passthru('intersect', func_get_args());
+    }
+
+    /**
+     * Intersect the collection with the given items by key.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function intersectByKeys($items)
+    {
+        return $this->passthru('intersectByKeys', func_get_args());
+    }
+
+    /**
+     * Determine if the items are empty or not.
+     *
+     * @return bool
+     */
+    public function isEmpty()
+    {
+        return ! $this->getIterator()->valid();
+    }
+
+    /**
+     * Determine if the collection contains a single item.
+     *
+     * @return bool
+     */
+    public function containsOneItem()
+    {
+        return $this->take(2)->count() === 1;
+    }
+
+    /**
+     * Join all items from the collection using a string. The final items can use a separate glue string.
+     *
+     * @param  string  $glue
+     * @param  string  $finalGlue
+     * @return string
+     */
+    public function join($glue, $finalGlue = '')
+    {
+        return $this->collect()->join(...func_get_args());
+    }
+
+    /**
+     * Get the keys of the collection items.
+     *
+     * @return static
+     */
+    public function keys()
+    {
+        return new static(function () {
+            foreach ($this as $key => $value) {
+                yield $key;
+            }
+        });
+    }
+
+    /**
+     * Get the last item from the collection.
+     *
+     * @param  callable|null  $callback
+     * @param  mixed  $default
+     * @return mixed
+     */
+    public function last(callable $callback = null, $default = null)
+    {
+        $needle = $placeholder = new stdClass;
+
+        foreach ($this as $key => $value) {
+            if (is_null($callback) || $callback($value, $key)) {
+                $needle = $value;
+            }
+        }
+
+        return $needle === $placeholder ? value($default) : $needle;
+    }
+
+    /**
+     * Get the values of a given key.
+     *
+     * @param  string|array  $value
+     * @param  string|null  $key
+     * @return static
+     */
+    public function pluck($value, $key = null)
+    {
+        return new static(function () use ($value, $key) {
+            [$value, $key] = $this->explodePluckParameters($value, $key);
+
+            foreach ($this as $item) {
+                $itemValue = data_get($item, $value);
+
+                if (is_null($key)) {
+                    yield $itemValue;
+                } else {
+                    $itemKey = data_get($item, $key);
+
+                    if (is_object($itemKey) && method_exists($itemKey, '__toString')) {
+                        $itemKey = (string) $itemKey;
+                    }
+
+                    yield $itemKey => $itemValue;
+                }
+            }
+        });
+    }
+
+    /**
+     * Run a map over each of the items.
+     *
+     * @param  callable  $callback
+     * @return static
+     */
+    public function map(callable $callback)
+    {
+        return new static(function () use ($callback) {
+            foreach ($this as $key => $value) {
+                yield $key => $callback($value, $key);
+            }
+        });
+    }
+
+    /**
+     * Run a dictionary map over the items.
+     *
+     * The callback should return an associative array with a single key/value pair.
+     *
+     * @param  callable  $callback
+     * @return static
+     */
+    public function mapToDictionary(callable $callback)
+    {
+        return $this->passthru('mapToDictionary', func_get_args());
+    }
+
+    /**
+     * Run an associative map over each of the items.
+     *
+     * The callback should return an associative array with a single key/value pair.
+     *
+     * @param  callable  $callback
+     * @return static
+     */
+    public function mapWithKeys(callable $callback)
+    {
+        return new static(function () use ($callback) {
+            foreach ($this as $key => $value) {
+                yield from $callback($value, $key);
+            }
+        });
+    }
+
+    /**
+     * Merge the collection with the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function merge($items)
+    {
+        return $this->passthru('merge', func_get_args());
+    }
+
+    /**
+     * Recursively merge the collection with the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function mergeRecursive($items)
+    {
+        return $this->passthru('mergeRecursive', func_get_args());
+    }
+
+    /**
+     * Create a collection by using this collection for keys and another for its values.
+     *
+     * @param  mixed  $values
+     * @return static
+     */
+    public function combine($values)
+    {
+        return new static(function () use ($values) {
+            $values = $this->makeIterator($values);
+
+            $errorMessage = 'Both parameters should have an equal number of elements';
+
+            foreach ($this as $key) {
+                if (! $values->valid()) {
+                    trigger_error($errorMessage, E_USER_WARNING);
+
+                    break;
+                }
+
+                yield $key => $values->current();
+
+                $values->next();
+            }
+
+            if ($values->valid()) {
+                trigger_error($errorMessage, E_USER_WARNING);
+            }
+        });
+    }
+
+    /**
+     * Union the collection with the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function union($items)
+    {
+        return $this->passthru('union', func_get_args());
+    }
+
+    /**
+     * Create a new collection consisting of every n-th element.
+     *
+     * @param  int  $step
+     * @param  int  $offset
+     * @return static
+     */
+    public function nth($step, $offset = 0)
+    {
+        return new static(function () use ($step, $offset) {
+            $position = 0;
+
+            foreach ($this as $item) {
+                if ($position % $step === $offset) {
+                    yield $item;
+                }
+
+                $position++;
+            }
+        });
+    }
+
+    /**
+     * Get the items with the specified keys.
+     *
+     * @param  mixed  $keys
+     * @return static
+     */
+    public function only($keys)
+    {
+        if ($keys instanceof Enumerable) {
+            $keys = $keys->all();
+        } elseif (! is_null($keys)) {
+            $keys = is_array($keys) ? $keys : func_get_args();
+        }
+
+        return new static(function () use ($keys) {
+            if (is_null($keys)) {
+                yield from $this;
+            } else {
+                $keys = array_flip($keys);
+
+                foreach ($this as $key => $value) {
+                    if (array_key_exists($key, $keys)) {
+                        yield $key => $value;
+
+                        unset($keys[$key]);
+
+                        if (empty($keys)) {
+                            break;
+                        }
+                    }
+                }
+            }
+        });
+    }
+
+    /**
+     * Push all of the given items onto the collection.
+     *
+     * @param  iterable  $source
+     * @return static
+     */
+    public function concat($source)
+    {
+        return (new static(function () use ($source) {
+            yield from $this;
+            yield from $source;
+        }))->values();
+    }
+
+    /**
+     * Get one or a specified number of items randomly from the collection.
+     *
+     * @param  int|null  $number
+     * @return static|mixed
+     *
+     * @throws \InvalidArgumentException
+     */
+    public function random($number = null)
+    {
+        $result = $this->collect()->random(...func_get_args());
+
+        return is_null($number) ? $result : new static($result);
+    }
+
+    /**
+     * Replace the collection items with the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function replace($items)
+    {
+        return new static(function () use ($items) {
+            $items = $this->getArrayableItems($items);
+
+            foreach ($this as $key => $value) {
+                if (array_key_exists($key, $items)) {
+                    yield $key => $items[$key];
+
+                    unset($items[$key]);
+                } else {
+                    yield $key => $value;
+                }
+            }
+
+            foreach ($items as $key => $value) {
+                yield $key => $value;
+            }
+        });
+    }
+
+    /**
+     * Recursively replace the collection items with the given items.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public function replaceRecursive($items)
+    {
+        return $this->passthru('replaceRecursive', func_get_args());
+    }
+
+    /**
+     * Reverse items order.
+     *
+     * @return static
+     */
+    public function reverse()
+    {
+        return $this->passthru('reverse', func_get_args());
+    }
+
+    /**
+     * Search the collection for a given value and return the corresponding key if successful.
+     *
+     * @param  mixed  $value
+     * @param  bool  $strict
+     * @return mixed
+     */
+    public function search($value, $strict = false)
+    {
+        $predicate = $this->useAsCallable($value)
+            ? $value
+            : function ($item) use ($value, $strict) {
+                return $strict ? $item === $value : $item == $value;
+            };
+
+        foreach ($this as $key => $item) {
+            if ($predicate($item, $key)) {
+                return $key;
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * Shuffle the items in the collection.
+     *
+     * @param  int|null  $seed
+     * @return static
+     */
+    public function shuffle($seed = null)
+    {
+        return $this->passthru('shuffle', func_get_args());
+    }
+
+    /**
+     * Skip the first {$count} items.
+     *
+     * @param  int  $count
+     * @return static
+     */
+    public function skip($count)
+    {
+        return new static(function () use ($count) {
+            $iterator = $this->getIterator();
+
+            while ($iterator->valid() && $count--) {
+                $iterator->next();
+            }
+
+            while ($iterator->valid()) {
+                yield $iterator->key() => $iterator->current();
+
+                $iterator->next();
+            }
+        });
+    }
+
+    /**
+     * Skip items in the collection until the given condition is met.
+     *
+     * @param  mixed  $value
+     * @return static
+     */
+    public function skipUntil($value)
+    {
+        $callback = $this->useAsCallable($value) ? $value : $this->equality($value);
+
+        return $this->skipWhile($this->negate($callback));
+    }
+
+    /**
+     * Skip items in the collection while the given condition is met.
+     *
+     * @param  mixed  $value
+     * @return static
+     */
+    public function skipWhile($value)
+    {
+        $callback = $this->useAsCallable($value) ? $value : $this->equality($value);
+
+        return new static(function () use ($callback) {
+            $iterator = $this->getIterator();
+
+            while ($iterator->valid() && $callback($iterator->current(), $iterator->key())) {
+                $iterator->next();
+            }
+
+            while ($iterator->valid()) {
+                yield $iterator->key() => $iterator->current();
+
+                $iterator->next();
+            }
+        });
+    }
+
+    /**
+     * Get a slice of items from the enumerable.
+     *
+     * @param  int  $offset
+     * @param  int|null  $length
+     * @return static
+     */
+    public function slice($offset, $length = null)
+    {
+        if ($offset < 0 || $length < 0) {
+            return $this->passthru('slice', func_get_args());
+        }
+
+        $instance = $this->skip($offset);
+
+        return is_null($length) ? $instance : $instance->take($length);
+    }
+
+    /**
+     * Split a collection into a certain number of groups.
+     *
+     * @param  int  $numberOfGroups
+     * @return static
+     */
+    public function split($numberOfGroups)
+    {
+        return $this->passthru('split', func_get_args());
+    }
+
+    /**
+     * Chunk the collection into chunks of the given size.
+     *
+     * @param  int  $size
+     * @return static
+     */
+    public function chunk($size)
+    {
+        if ($size <= 0) {
+            return static::empty();
+        }
+
+        return new static(function () use ($size) {
+            $iterator = $this->getIterator();
+
+            while ($iterator->valid()) {
+                $chunk = [];
+
+                while (true) {
+                    $chunk[$iterator->key()] = $iterator->current();
+
+                    if (count($chunk) < $size) {
+                        $iterator->next();
+
+                        if (! $iterator->valid()) {
+                            break;
+                        }
+                    } else {
+                        break;
+                    }
+                }
+
+                yield new static($chunk);
+
+                $iterator->next();
+            }
+        });
+    }
+
+    /**
+     * Split a collection into a certain number of groups, and fill the first groups completely.
+     *
+     * @param  int  $numberOfGroups
+     * @return static
+     */
+    public function splitIn($numberOfGroups)
+    {
+        return $this->chunk(ceil($this->count() / $numberOfGroups));
+    }
+
+    /**
+     * Chunk the collection into chunks with a callback.
+     *
+     * @param  callable  $callback
+     * @return static
+     */
+    public function chunkWhile(callable $callback)
+    {
+        return new static(function () use ($callback) {
+            $iterator = $this->getIterator();
+
+            $chunk = new Collection;
+
+            if ($iterator->valid()) {
+                $chunk[$iterator->key()] = $iterator->current();
+
+                $iterator->next();
+            }
+
+            while ($iterator->valid()) {
+                if (! $callback($iterator->current(), $iterator->key(), $chunk)) {
+                    yield new static($chunk);
+
+                    $chunk = new Collection;
+                }
+
+                $chunk[$iterator->key()] = $iterator->current();
+
+                $iterator->next();
+            }
+
+            if ($chunk->isNotEmpty()) {
+                yield new static($chunk);
+            }
+        });
+    }
+
+    /**
+     * Sort through each item with a callback.
+     *
+     * @param  callable|null|int  $callback
+     * @return static
+     */
+    public function sort($callback = null)
+    {
+        return $this->passthru('sort', func_get_args());
+    }
+
+    /**
+     * Sort items in descending order.
+     *
+     * @param  int  $options
+     * @return static
+     */
+    public function sortDesc($options = SORT_REGULAR)
+    {
+        return $this->passthru('sortDesc', func_get_args());
+    }
+
+    /**
+     * Sort the collection using the given callback.
+     *
+     * @param  callable|string  $callback
+     * @param  int  $options
+     * @param  bool  $descending
+     * @return static
+     */
+    public function sortBy($callback, $options = SORT_REGULAR, $descending = false)
+    {
+        return $this->passthru('sortBy', func_get_args());
+    }
+
+    /**
+     * Sort the collection in descending order using the given callback.
+     *
+     * @param  callable|string  $callback
+     * @param  int  $options
+     * @return static
+     */
+    public function sortByDesc($callback, $options = SORT_REGULAR)
+    {
+        return $this->passthru('sortByDesc', func_get_args());
+    }
+
+    /**
+     * Sort the collection keys.
+     *
+     * @param  int  $options
+     * @param  bool  $descending
+     * @return static
+     */
+    public function sortKeys($options = SORT_REGULAR, $descending = false)
+    {
+        return $this->passthru('sortKeys', func_get_args());
+    }
+
+    /**
+     * Sort the collection keys in descending order.
+     *
+     * @param  int  $options
+     * @return static
+     */
+    public function sortKeysDesc($options = SORT_REGULAR)
+    {
+        return $this->passthru('sortKeysDesc', func_get_args());
+    }
+
+    /**
+     * Take the first or last {$limit} items.
+     *
+     * @param  int  $limit
+     * @return static
+     */
+    public function take($limit)
+    {
+        if ($limit < 0) {
+            return $this->passthru('take', func_get_args());
+        }
+
+        return new static(function () use ($limit) {
+            $iterator = $this->getIterator();
+
+            while ($limit--) {
+                if (! $iterator->valid()) {
+                    break;
+                }
+
+                yield $iterator->key() => $iterator->current();
+
+                if ($limit) {
+                    $iterator->next();
+                }
+            }
+        });
+    }
+
+    /**
+     * Take items in the collection until the given condition is met.
+     *
+     * @param  mixed  $value
+     * @return static
+     */
+    public function takeUntil($value)
+    {
+        $callback = $this->useAsCallable($value) ? $value : $this->equality($value);
+
+        return new static(function () use ($callback) {
+            foreach ($this as $key => $item) {
+                if ($callback($item, $key)) {
+                    break;
+                }
+
+                yield $key => $item;
+            }
+        });
+    }
+
+    /**
+     * Take items in the collection until a given point in time.
+     *
+     * @param  \DateTimeInterface  $timeout
+     * @return static
+     */
+    public function takeUntilTimeout(DateTimeInterface $timeout)
+    {
+        $timeout = $timeout->getTimestamp();
+
+        return $this->takeWhile(function () use ($timeout) {
+            return $this->now() < $timeout;
+        });
+    }
+
+    /**
+     * Take items in the collection while the given condition is met.
+     *
+     * @param  mixed  $value
+     * @return static
+     */
+    public function takeWhile($value)
+    {
+        $callback = $this->useAsCallable($value) ? $value : $this->equality($value);
+
+        return $this->takeUntil(function ($item, $key) use ($callback) {
+            return ! $callback($item, $key);
+        });
+    }
+
+    /**
+     * Pass each item in the collection to the given callback, lazily.
+     *
+     * @param  callable  $callback
+     * @return static
+     */
+    public function tapEach(callable $callback)
+    {
+        return new static(function () use ($callback) {
+            foreach ($this as $key => $value) {
+                $callback($value, $key);
+
+                yield $key => $value;
+            }
+        });
+    }
+
+    /**
+     * Reset the keys on the underlying array.
+     *
+     * @return static
+     */
+    public function values()
+    {
+        return new static(function () {
+            foreach ($this as $item) {
+                yield $item;
+            }
+        });
+    }
+
+    /**
+     * Zip the collection together with one or more arrays.
+     *
+     * e.g. new LazyCollection([1, 2, 3])->zip([4, 5, 6]);
+     *      => [[1, 4], [2, 5], [3, 6]]
+     *
+     * @param  mixed  ...$items
+     * @return static
+     */
+    public function zip($items)
+    {
+        $iterables = func_get_args();
+
+        return new static(function () use ($iterables) {
+            $iterators = Collection::make($iterables)->map(function ($iterable) {
+                return $this->makeIterator($iterable);
+            })->prepend($this->getIterator());
+
+            while ($iterators->contains->valid()) {
+                yield new static($iterators->map->current());
+
+                $iterators->each->next();
+            }
+        });
+    }
+
+    /**
+     * Pad collection to the specified length with a value.
+     *
+     * @param  int  $size
+     * @param  mixed  $value
+     * @return static
+     */
+    public function pad($size, $value)
+    {
+        if ($size < 0) {
+            return $this->passthru('pad', func_get_args());
+        }
+
+        return new static(function () use ($size, $value) {
+            $yielded = 0;
+
+            foreach ($this as $index => $item) {
+                yield $index => $item;
+
+                $yielded++;
+            }
+
+            while ($yielded++ < $size) {
+                yield $value;
+            }
+        });
+    }
+
+    /**
+     * Get the values iterator.
+     *
+     * @return \Traversable
+     */
+    public function getIterator()
+    {
+        return $this->makeIterator($this->source);
+    }
+
+    /**
+     * Count the number of items in the collection.
+     *
+     * @return int
+     */
+    public function count()
+    {
+        if (is_array($this->source)) {
+            return count($this->source);
+        }
+
+        return iterator_count($this->getIterator());
+    }
+
+    /**
+     * Make an iterator from the given source.
+     *
+     * @param  mixed  $source
+     * @return \Traversable
+     */
+    protected function makeIterator($source)
+    {
+        if ($source instanceof IteratorAggregate) {
+            return $source->getIterator();
+        }
+
+        if (is_array($source)) {
+            return new ArrayIterator($source);
+        }
+
+        return $source();
+    }
+
+    /**
+     * Explode the "value" and "key" arguments passed to "pluck".
+     *
+     * @param  string|array  $value
+     * @param  string|array|null  $key
+     * @return array
+     */
+    protected function explodePluckParameters($value, $key)
+    {
+        $value = is_string($value) ? explode('.', $value) : $value;
+
+        $key = is_null($key) || is_array($key) ? $key : explode('.', $key);
+
+        return [$value, $key];
+    }
+
+    /**
+     * Pass this lazy collection through a method on the collection class.
+     *
+     * @param  string  $method
+     * @param  array  $params
+     * @return static
+     */
+    protected function passthru($method, array $params)
+    {
+        return new static(function () use ($method, $params) {
+            yield from $this->collect()->$method(...$params);
+        });
+    }
+
+    /**
+     * Get the current time.
+     *
+     * @return int
+     */
+    protected function now()
+    {
+        return time();
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/Traits/EnumeratesValues.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/Traits/EnumeratesValues.php
new file mode 100644
index 0000000..2ff7d36
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/Traits/EnumeratesValues.php
@@ -0,0 +1,1056 @@
+<?php
+
+namespace Tightenco\Collect\Support\Traits;
+
+use CachingIterator;
+use Closure;
+use Exception;
+use Tightenco\Collect\Contracts\Support\Arrayable;
+use Tightenco\Collect\Contracts\Support\Jsonable;
+use Tightenco\Collect\Support\Arr;
+use Tightenco\Collect\Support\Collection;
+use Tightenco\Collect\Support\Enumerable;
+use Tightenco\Collect\Support\HigherOrderCollectionProxy;
+use Tightenco\Collect\Support\HigherOrderWhenProxy;
+use JsonSerializable;
+use Symfony\Component\VarDumper\VarDumper;
+use Traversable;
+
+/**
+ * @property-read HigherOrderCollectionProxy $average
+ * @property-read HigherOrderCollectionProxy $avg
+ * @property-read HigherOrderCollectionProxy $contains
+ * @property-read HigherOrderCollectionProxy $each
+ * @property-read HigherOrderCollectionProxy $every
+ * @property-read HigherOrderCollectionProxy $filter
+ * @property-read HigherOrderCollectionProxy $first
+ * @property-read HigherOrderCollectionProxy $flatMap
+ * @property-read HigherOrderCollectionProxy $groupBy
+ * @property-read HigherOrderCollectionProxy $keyBy
+ * @property-read HigherOrderCollectionProxy $map
+ * @property-read HigherOrderCollectionProxy $max
+ * @property-read HigherOrderCollectionProxy $min
+ * @property-read HigherOrderCollectionProxy $partition
+ * @property-read HigherOrderCollectionProxy $reject
+ * @property-read HigherOrderCollectionProxy $some
+ * @property-read HigherOrderCollectionProxy $sortBy
+ * @property-read HigherOrderCollectionProxy $sortByDesc
+ * @property-read HigherOrderCollectionProxy $skipUntil
+ * @property-read HigherOrderCollectionProxy $skipWhile
+ * @property-read HigherOrderCollectionProxy $sum
+ * @property-read HigherOrderCollectionProxy $takeUntil
+ * @property-read HigherOrderCollectionProxy $takeWhile
+ * @property-read HigherOrderCollectionProxy $unique
+ * @property-read HigherOrderCollectionProxy $until
+ */
+trait EnumeratesValues
+{
+    /**
+     * The methods that can be proxied.
+     *
+     * @var string[]
+     */
+    protected static $proxies = [
+        'average',
+        'avg',
+        'contains',
+        'each',
+        'every',
+        'filter',
+        'first',
+        'flatMap',
+        'groupBy',
+        'keyBy',
+        'map',
+        'max',
+        'min',
+        'partition',
+        'reject',
+        'skipUntil',
+        'skipWhile',
+        'some',
+        'sortBy',
+        'sortByDesc',
+        'sum',
+        'takeUntil',
+        'takeWhile',
+        'unique',
+        'until',
+    ];
+
+    /**
+     * Create a new collection instance if the value isn't one already.
+     *
+     * @param  mixed  $items
+     * @return static
+     */
+    public static function make($items = [])
+    {
+        return new static($items);
+    }
+
+    /**
+     * Wrap the given value in a collection if applicable.
+     *
+     * @param  mixed  $value
+     * @return static
+     */
+    public static function wrap($value)
+    {
+        return $value instanceof Enumerable
+            ? new static($value)
+            : new static(Arr::wrap($value));
+    }
+
+    /**
+     * Get the underlying items from the given collection if applicable.
+     *
+     * @param  array|static  $value
+     * @return array
+     */
+    public static function unwrap($value)
+    {
+        return $value instanceof Enumerable ? $value->all() : $value;
+    }
+
+    /**
+     * Create a new instance with no items.
+     *
+     * @return static
+     */
+    public static function empty()
+    {
+        return new static([]);
+    }
+
+    /**
+     * Create a new collection by invoking the callback a given amount of times.
+     *
+     * @param  int  $number
+     * @param  callable|null  $callback
+     * @return static
+     */
+    public static function times($number, callable $callback = null)
+    {
+        if ($number < 1) {
+            return new static;
+        }
+
+        return static::range(1, $number)
+            ->when($callback)
+            ->map($callback);
+    }
+
+    /**
+     * Alias for the "avg" method.
+     *
+     * @param  callable|string|null  $callback
+     * @return mixed
+     */
+    public function average($callback = null)
+    {
+        return $this->avg($callback);
+    }
+
+    /**
+     * Alias for the "contains" method.
+     *
+     * @param  mixed  $key
+     * @param  mixed  $operator
+     * @param  mixed  $value
+     * @return bool
+     */
+    public function some($key, $operator = null, $value = null)
+    {
+        return $this->contains(...func_get_args());
+    }
+
+    /**
+     * Determine if an item exists, using strict comparison.
+     *
+     * @param  mixed  $key
+     * @param  mixed  $value
+     * @return bool
+     */
+    public function containsStrict($key, $value = null)
+    {
+        if (func_num_args() === 2) {
+            return $this->contains(function ($item) use ($key, $value) {
+                return data_get($item, $key) === $value;
+            });
+        }
+
+        if ($this->useAsCallable($key)) {
+            return ! is_null($this->first($key));
+        }
+
+        foreach ($this as $item) {
+            if ($item === $key) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * Dump the items and end the script.
+     *
+     * @param  mixed  ...$args
+     * @return void
+     */
+    public function dd(...$args)
+    {
+        $this->dump(...$args);
+
+        exit(1);
+    }
+
+    /**
+     * Dump the items.
+     *
+     * @return $this
+     */
+    public function dump()
+    {
+        (new Collection(func_get_args()))
+            ->push($this->all())
+            ->each(function ($item) {
+                VarDumper::dump($item);
+            });
+
+        return $this;
+    }
+
+    /**
+     * Execute a callback over each item.
+     *
+     * @param  callable  $callback
+     * @return $this
+     */
+    public function each(callable $callback)
+    {
+        foreach ($this as $key => $item) {
+            if ($callback($item, $key) === false) {
+                break;
+            }
+        }
+
+        return $this;
+    }
+
+    /**
+     * Execute a callback over each nested chunk of items.
+     *
+     * @param  callable  $callback
+     * @return static
+     */
+    public function eachSpread(callable $callback)
+    {
+        return $this->each(function ($chunk, $key) use ($callback) {
+            $chunk[] = $key;
+
+            return $callback(...$chunk);
+        });
+    }
+
+    /**
+     * Determine if all items pass the given truth test.
+     *
+     * @param  string|callable  $key
+     * @param  mixed  $operator
+     * @param  mixed  $value
+     * @return bool
+     */
+    public function every($key, $operator = null, $value = null)
+    {
+        if (func_num_args() === 1) {
+            $callback = $this->valueRetriever($key);
+
+            foreach ($this as $k => $v) {
+                if (! $callback($v, $k)) {
+                    return false;
+                }
+            }
+
+            return true;
+        }
+
+        return $this->every($this->operatorForWhere(...func_get_args()));
+    }
+
+    /**
+     * Get the first item by the given key value pair.
+     *
+     * @param  string  $key
+     * @param  mixed  $operator
+     * @param  mixed  $value
+     * @return mixed
+     */
+    public function firstWhere($key, $operator = null, $value = null)
+    {
+        return $this->first($this->operatorForWhere(...func_get_args()));
+    }
+
+    /**
+     * Determine if the collection is not empty.
+     *
+     * @return bool
+     */
+    public function isNotEmpty()
+    {
+        return ! $this->isEmpty();
+    }
+
+    /**
+     * Run a map over each nested chunk of items.
+     *
+     * @param  callable  $callback
+     * @return static
+     */
+    public function mapSpread(callable $callback)
+    {
+        return $this->map(function ($chunk, $key) use ($callback) {
+            $chunk[] = $key;
+
+            return $callback(...$chunk);
+        });
+    }
+
+    /**
+     * Run a grouping map over the items.
+     *
+     * The callback should return an associative array with a single key/value pair.
+     *
+     * @param  callable  $callback
+     * @return static
+     */
+    public function mapToGroups(callable $callback)
+    {
+        $groups = $this->mapToDictionary($callback);
+
+        return $groups->map([$this, 'make']);
+    }
+
+    /**
+     * Map a collection and flatten the result by a single level.
+     *
+     * @param  callable  $callback
+     * @return static
+     */
+    public function flatMap(callable $callback)
+    {
+        return $this->map($callback)->collapse();
+    }
+
+    /**
+     * Map the values into a new class.
+     *
+     * @param  string  $class
+     * @return static
+     */
+    public function mapInto($class)
+    {
+        return $this->map(function ($value, $key) use ($class) {
+            return new $class($value, $key);
+        });
+    }
+
+    /**
+     * Get the min value of a given key.
+     *
+     * @param  callable|string|null  $callback
+     * @return mixed
+     */
+    public function min($callback = null)
+    {
+        $callback = $this->valueRetriever($callback);
+
+        return $this->map(function ($value) use ($callback) {
+            return $callback($value);
+        })->filter(function ($value) {
+            return ! is_null($value);
+        })->reduce(function ($result, $value) {
+            return is_null($result) || $value < $result ? $value : $result;
+        });
+    }
+
+    /**
+     * Get the max value of a given key.
+     *
+     * @param  callable|string|null  $callback
+     * @return mixed
+     */
+    public function max($callback = null)
+    {
+        $callback = $this->valueRetriever($callback);
+
+        return $this->filter(function ($value) {
+            return ! is_null($value);
+        })->reduce(function ($result, $item) use ($callback) {
+            $value = $callback($item);
+
+            return is_null($result) || $value > $result ? $value : $result;
+        });
+    }
+
+    /**
+     * "Paginate" the collection by slicing it into a smaller collection.
+     *
+     * @param  int  $page
+     * @param  int  $perPage
+     * @return static
+     */
+    public function forPage($page, $perPage)
+    {
+        $offset = max(0, ($page - 1) * $perPage);
+
+        return $this->slice($offset, $perPage);
+    }
+
+    /**
+     * Partition the collection into two arrays using the given callback or key.
+     *
+     * @param  callable|string  $key
+     * @param  mixed  $operator
+     * @param  mixed  $value
+     * @return static
+     */
+    public function partition($key, $operator = null, $value = null)
+    {
+        $passed = [];
+        $failed = [];
+
+        $callback = func_num_args() === 1
+                ? $this->valueRetriever($key)
+                : $this->operatorForWhere(...func_get_args());
+
+        foreach ($this as $key => $item) {
+            if ($callback($item, $key)) {
+                $passed[$key] = $item;
+            } else {
+                $failed[$key] = $item;
+            }
+        }
+
+        return new static([new static($passed), new static($failed)]);
+    }
+
+    /**
+     * Get the sum of the given values.
+     *
+     * @param  callable|string|null  $callback
+     * @return mixed
+     */
+    public function sum($callback = null)
+    {
+        $callback = is_null($callback)
+            ? $this->identity()
+            : $this->valueRetriever($callback);
+
+        return $this->reduce(function ($result, $item) use ($callback) {
+            return $result + $callback($item);
+        }, 0);
+    }
+
+    /**
+     * Apply the callback if the value is truthy.
+     *
+     * @param  bool|mixed  $value
+     * @param  callable|null  $callback
+     * @param  callable|null  $default
+     * @return static|mixed
+     */
+    public function when($value, callable $callback = null, callable $default = null)
+    {
+        if (! $callback) {
+            return new HigherOrderWhenProxy($this, $value);
+        }
+
+        if ($value) {
+            return $callback($this, $value);
+        } elseif ($default) {
+            return $default($this, $value);
+        }
+
+        return $this;
+    }
+
+    /**
+     * Apply the callback if the collection is empty.
+     *
+     * @param  callable  $callback
+     * @param  callable|null  $default
+     * @return static|mixed
+     */
+    public function whenEmpty(callable $callback, callable $default = null)
+    {
+        return $this->when($this->isEmpty(), $callback, $default);
+    }
+
+    /**
+     * Apply the callback if the collection is not empty.
+     *
+     * @param  callable  $callback
+     * @param  callable|null  $default
+     * @return static|mixed
+     */
+    public function whenNotEmpty(callable $callback, callable $default = null)
+    {
+        return $this->when($this->isNotEmpty(), $callback, $default);
+    }
+
+    /**
+     * Apply the callback if the value is falsy.
+     *
+     * @param  bool  $value
+     * @param  callable  $callback
+     * @param  callable|null  $default
+     * @return static|mixed
+     */
+    public function unless($value, callable $callback, callable $default = null)
+    {
+        return $this->when(! $value, $callback, $default);
+    }
+
+    /**
+     * Apply the callback unless the collection is empty.
+     *
+     * @param  callable  $callback
+     * @param  callable|null  $default
+     * @return static|mixed
+     */
+    public function unlessEmpty(callable $callback, callable $default = null)
+    {
+        return $this->whenNotEmpty($callback, $default);
+    }
+
+    /**
+     * Apply the callback unless the collection is not empty.
+     *
+     * @param  callable  $callback
+     * @param  callable|null  $default
+     * @return static|mixed
+     */
+    public function unlessNotEmpty(callable $callback, callable $default = null)
+    {
+        return $this->whenEmpty($callback, $default);
+    }
+
+    /**
+     * Filter items by the given key value pair.
+     *
+     * @param  string  $key
+     * @param  mixed  $operator
+     * @param  mixed  $value
+     * @return static
+     */
+    public function where($key, $operator = null, $value = null)
+    {
+        return $this->filter($this->operatorForWhere(...func_get_args()));
+    }
+
+    /**
+     * Filter items where the value for the given key is null.
+     *
+     * @param  string|null  $key
+     * @return static
+     */
+    public function whereNull($key = null)
+    {
+        return $this->whereStrict($key, null);
+    }
+
+    /**
+     * Filter items where the value for the given key is not null.
+     *
+     * @param  string|null  $key
+     * @return static
+     */
+    public function whereNotNull($key = null)
+    {
+        return $this->where($key, '!==', null);
+    }
+
+    /**
+     * Filter items by the given key value pair using strict comparison.
+     *
+     * @param  string  $key
+     * @param  mixed  $value
+     * @return static
+     */
+    public function whereStrict($key, $value)
+    {
+        return $this->where($key, '===', $value);
+    }
+
+    /**
+     * Filter items by the given key value pair.
+     *
+     * @param  string  $key
+     * @param  mixed  $values
+     * @param  bool  $strict
+     * @return static
+     */
+    public function whereIn($key, $values, $strict = false)
+    {
+        $values = $this->getArrayableItems($values);
+
+        return $this->filter(function ($item) use ($key, $values, $strict) {
+            return in_array(data_get($item, $key), $values, $strict);
+        });
+    }
+
+    /**
+     * Filter items by the given key value pair using strict comparison.
+     *
+     * @param  string  $key
+     * @param  mixed  $values
+     * @return static
+     */
+    public function whereInStrict($key, $values)
+    {
+        return $this->whereIn($key, $values, true);
+    }
+
+    /**
+     * Filter items such that the value of the given key is between the given values.
+     *
+     * @param  string  $key
+     * @param  array  $values
+     * @return static
+     */
+    public function whereBetween($key, $values)
+    {
+        return $this->where($key, '>=', reset($values))->where($key, '<=', end($values));
+    }
+
+    /**
+     * Filter items such that the value of the given key is not between the given values.
+     *
+     * @param  string  $key
+     * @param  array  $values
+     * @return static
+     */
+    public function whereNotBetween($key, $values)
+    {
+        return $this->filter(function ($item) use ($key, $values) {
+            return data_get($item, $key) < reset($values) || data_get($item, $key) > end($values);
+        });
+    }
+
+    /**
+     * Filter items by the given key value pair.
+     *
+     * @param  string  $key
+     * @param  mixed  $values
+     * @param  bool  $strict
+     * @return static
+     */
+    public function whereNotIn($key, $values, $strict = false)
+    {
+        $values = $this->getArrayableItems($values);
+
+        return $this->reject(function ($item) use ($key, $values, $strict) {
+            return in_array(data_get($item, $key), $values, $strict);
+        });
+    }
+
+    /**
+     * Filter items by the given key value pair using strict comparison.
+     *
+     * @param  string  $key
+     * @param  mixed  $values
+     * @return static
+     */
+    public function whereNotInStrict($key, $values)
+    {
+        return $this->whereNotIn($key, $values, true);
+    }
+
+    /**
+     * Filter the items, removing any items that don't match the given type(s).
+     *
+     * @param  string|string[]  $type
+     * @return static
+     */
+    public function whereInstanceOf($type)
+    {
+        return $this->filter(function ($value) use ($type) {
+            if (is_array($type)) {
+                foreach ($type as $classType) {
+                    if ($value instanceof $classType) {
+                        return true;
+                    }
+                }
+
+                return false;
+            }
+
+            return $value instanceof $type;
+        });
+    }
+
+    /**
+     * Pass the collection to the given callback and return the result.
+     *
+     * @param  callable  $callback
+     * @return mixed
+     */
+    public function pipe(callable $callback)
+    {
+        return $callback($this);
+    }
+
+    /**
+     * Pass the collection into a new class.
+     *
+     * @param  string  $class
+     * @return mixed
+     */
+    public function pipeInto($class)
+    {
+        return new $class($this);
+    }
+
+    /**
+     * Pass the collection to the given callback and then return it.
+     *
+     * @param  callable  $callback
+     * @return $this
+     */
+    public function tap(callable $callback)
+    {
+        $callback(clone $this);
+
+        return $this;
+    }
+
+    /**
+     * Reduce the collection to a single value.
+     *
+     * @param  callable  $callback
+     * @param  mixed $initial
+     * @return mixed
+     */
+    public function reduce(callable $callback, $initial = null)
+    {
+        $result = $initial;
+
+        foreach ($this as $key => $value) {
+            $result = $callback($result, $value, $key);
+        }
+
+        return $result;
+    }
+
+    /**
+     * Reduce an associative collection to a single value.
+     *
+     * @param  callable  $callback
+     * @param  mixed $initial
+     * @return mixed
+     */
+    public function reduceWithKeys(callable $callback, $initial = null)
+    {
+        $result = $initial;
+
+        foreach ($this as $key => $value) {
+            $result = $callback($result, $value, $key);
+        }
+
+        return $result;
+    }
+
+    /**
+     * Create a collection of all elements that do not pass a given truth test.
+     *
+     * @param  callable|mixed  $callback
+     * @return static
+     */
+    public function reject($callback = true)
+    {
+        $useAsCallable = $this->useAsCallable($callback);
+
+        return $this->filter(function ($value, $key) use ($callback, $useAsCallable) {
+            return $useAsCallable
+                ? ! $callback($value, $key)
+                : $value != $callback;
+        });
+    }
+
+    /**
+     * Return only unique items from the collection array.
+     *
+     * @param  string|callable|null  $key
+     * @param  bool  $strict
+     * @return static
+     */
+    public function unique($key = null, $strict = false)
+    {
+        $callback = $this->valueRetriever($key);
+
+        $exists = [];
+
+        return $this->reject(function ($item, $key) use ($callback, $strict, &$exists) {
+            if (in_array($id = $callback($item, $key), $exists, $strict)) {
+                return true;
+            }
+
+            $exists[] = $id;
+        });
+    }
+
+    /**
+     * Return only unique items from the collection array using strict comparison.
+     *
+     * @param  string|callable|null  $key
+     * @return static
+     */
+    public function uniqueStrict($key = null)
+    {
+        return $this->unique($key, true);
+    }
+
+    /**
+     * Collect the values into a collection.
+     *
+     * @return \Tightenco\Collect\Support\Collection
+     */
+    public function collect()
+    {
+        return new Collection($this->all());
+    }
+
+    /**
+     * Get the collection of items as a plain array.
+     *
+     * @return array
+     */
+    public function toArray()
+    {
+        return $this->map(function ($value) {
+            return $value instanceof Arrayable ? $value->toArray() : $value;
+        })->all();
+    }
+
+    /**
+     * Convert the object into something JSON serializable.
+     *
+     * @return array
+     */
+    public function jsonSerialize()
+    {
+        return array_map(function ($value) {
+            if ($value instanceof JsonSerializable) {
+                return $value->jsonSerialize();
+            } elseif ($value instanceof Jsonable) {
+                return json_decode($value->toJson(), true);
+            } elseif ($value instanceof Arrayable) {
+                return $value->toArray();
+            }
+
+            return $value;
+        }, $this->all());
+    }
+
+    /**
+     * Get the collection of items as JSON.
+     *
+     * @param  int  $options
+     * @return string
+     */
+    public function toJson($options = 0)
+    {
+        return json_encode($this->jsonSerialize(), $options);
+    }
+
+    /**
+     * Get a CachingIterator instance.
+     *
+     * @param  int  $flags
+     * @return \CachingIterator
+     */
+    public function getCachingIterator($flags = CachingIterator::CALL_TOSTRING)
+    {
+        return new CachingIterator($this->getIterator(), $flags);
+    }
+
+    /**
+     * Convert the collection to its string representation.
+     *
+     * @return string
+     */
+    public function __toString()
+    {
+        return $this->toJson();
+    }
+
+    /**
+     * Add a method to the list of proxied methods.
+     *
+     * @param  string  $method
+     * @return void
+     */
+    public static function proxy($method)
+    {
+        static::$proxies[] = $method;
+    }
+
+    /**
+     * Dynamically access collection proxies.
+     *
+     * @param  string  $key
+     * @return mixed
+     *
+     * @throws \Exception
+     */
+    public function __get($key)
+    {
+        if (! in_array($key, static::$proxies)) {
+            throw new Exception("Property [{$key}] does not exist on this collection instance.");
+        }
+
+        return new HigherOrderCollectionProxy($this, $key);
+    }
+
+    /**
+     * Results array of items from Collection or Arrayable.
+     *
+     * @param  mixed  $items
+     * @return array
+     */
+    protected function getArrayableItems($items)
+    {
+        if (is_array($items)) {
+            return $items;
+        } elseif ($items instanceof Enumerable) {
+            return $items->all();
+        } elseif ($items instanceof Arrayable) {
+            return $items->toArray();
+        } elseif ($items instanceof Jsonable) {
+            return json_decode($items->toJson(), true);
+        } elseif ($items instanceof JsonSerializable) {
+            return (array) $items->jsonSerialize();
+        } elseif ($items instanceof Traversable) {
+            return iterator_to_array($items);
+        }
+
+        return (array) $items;
+    }
+
+    /**
+     * Get an operator checker callback.
+     *
+     * @param  string  $key
+     * @param  string|null  $operator
+     * @param  mixed  $value
+     * @return \Closure
+     */
+    protected function operatorForWhere($key, $operator = null, $value = null)
+    {
+        if (func_num_args() === 1) {
+            $value = true;
+
+            $operator = '=';
+        }
+
+        if (func_num_args() === 2) {
+            $value = $operator;
+
+            $operator = '=';
+        }
+
+        return function ($item) use ($key, $operator, $value) {
+            $retrieved = data_get($item, $key);
+
+            $strings = array_filter([$retrieved, $value], function ($value) {
+                return is_string($value) || (is_object($value) && method_exists($value, '__toString'));
+            });
+
+            if (count($strings) < 2 && count(array_filter([$retrieved, $value], 'is_object')) == 1) {
+                return in_array($operator, ['!=', '<>', '!==']);
+            }
+
+            switch ($operator) {
+                default:
+                case '=':
+                case '==':  return $retrieved == $value;
+                case '!=':
+                case '<>':  return $retrieved != $value;
+                case '<':   return $retrieved < $value;
+                case '>':   return $retrieved > $value;
+                case '<=':  return $retrieved <= $value;
+                case '>=':  return $retrieved >= $value;
+                case '===': return $retrieved === $value;
+                case '!==': return $retrieved !== $value;
+            }
+        };
+    }
+
+    /**
+     * Determine if the given value is callable, but not a string.
+     *
+     * @param  mixed  $value
+     * @return bool
+     */
+    protected function useAsCallable($value)
+    {
+        return ! is_string($value) && is_callable($value);
+    }
+
+    /**
+     * Get a value retrieving callback.
+     *
+     * @param  callable|string|null  $value
+     * @return callable
+     */
+    protected function valueRetriever($value)
+    {
+        if ($this->useAsCallable($value)) {
+            return $value;
+        }
+
+        return function ($item) use ($value) {
+            return data_get($item, $value);
+        };
+    }
+
+    /**
+     * Make a function to check an item's equality.
+     *
+     * @param  mixed  $value
+     * @return \Closure
+     */
+    protected function equality($value)
+    {
+        return function ($item) use ($value) {
+            return $item === $value;
+        };
+    }
+
+    /**
+     * Make a function using another function, by negating its result.
+     *
+     * @param  \Closure  $callback
+     * @return \Closure
+     */
+    protected function negate(Closure $callback)
+    {
+        return function (...$params) use ($callback) {
+            return ! $callback(...$params);
+        };
+    }
+
+    /**
+     * Make a function that returns what's passed to it.
+     *
+     * @return \Closure
+     */
+    protected function identity()
+    {
+        return function ($value) {
+            return $value;
+        };
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/Traits/Macroable.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/Traits/Macroable.php
new file mode 100644
index 0000000..d9b5fe7
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/Traits/Macroable.php
@@ -0,0 +1,116 @@
+<?php
+
+namespace Tightenco\Collect\Support\Traits;
+
+use BadMethodCallException;
+use Closure;
+use ReflectionClass;
+use ReflectionMethod;
+
+trait Macroable
+{
+    /**
+     * The registered string macros.
+     *
+     * @var array
+     */
+    protected static $macros = [];
+
+    /**
+     * Register a custom macro.
+     *
+     * @param  string  $name
+     * @param  object|callable  $macro
+     * @return void
+     */
+    public static function macro($name, $macro)
+    {
+        static::$macros[$name] = $macro;
+    }
+
+    /**
+     * Mix another object into the class.
+     *
+     * @param  object  $mixin
+     * @param  bool  $replace
+     * @return void
+     *
+     * @throws \ReflectionException
+     */
+    public static function mixin($mixin, $replace = true)
+    {
+        $methods = (new ReflectionClass($mixin))->getMethods(
+            ReflectionMethod::IS_PUBLIC | ReflectionMethod::IS_PROTECTED
+        );
+
+        foreach ($methods as $method) {
+            if ($replace || ! static::hasMacro($method->name)) {
+                $method->setAccessible(true);
+                static::macro($method->name, $method->invoke($mixin));
+            }
+        }
+    }
+
+    /**
+     * Checks if macro is registered.
+     *
+     * @param  string  $name
+     * @return bool
+     */
+    public static function hasMacro($name)
+    {
+        return isset(static::$macros[$name]);
+    }
+
+    /**
+     * Dynamically handle calls to the class.
+     *
+     * @param  string  $method
+     * @param  array  $parameters
+     * @return mixed
+     *
+     * @throws \BadMethodCallException
+     */
+    public static function __callStatic($method, $parameters)
+    {
+        if (! static::hasMacro($method)) {
+            throw new BadMethodCallException(sprintf(
+                'Method %s::%s does not exist.', static::class, $method
+            ));
+        }
+
+        $macro = static::$macros[$method];
+
+        if ($macro instanceof Closure) {
+            $macro = $macro->bindTo(null, static::class);
+        }
+
+        return $macro(...$parameters);
+    }
+
+    /**
+     * Dynamically handle calls to the class.
+     *
+     * @param  string  $method
+     * @param  array  $parameters
+     * @return mixed
+     *
+     * @throws \BadMethodCallException
+     */
+    public function __call($method, $parameters)
+    {
+        if (! static::hasMacro($method)) {
+            throw new BadMethodCallException(sprintf(
+                'Method %s::%s does not exist.', static::class, $method
+            ));
+        }
+
+        $macro = static::$macros[$method];
+
+        if ($macro instanceof Closure) {
+            $macro = $macro->bindTo($this, static::class);
+        }
+
+        return $macro(...$parameters);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/Traits/Tappable.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/Traits/Tappable.php
new file mode 100644
index 0000000..17e6b9e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/Traits/Tappable.php
@@ -0,0 +1,17 @@
+<?php
+
+namespace Tightenco\Collect\Support\Traits;
+
+trait Tappable
+{
+    /**
+     * Call the given Closure with this instance then return the instance.
+     *
+     * @param  callable|null  $callback
+     * @return mixed
+     */
+    public function tap($callback = null)
+    {
+        return tap($this, $callback);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/alias.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/alias.php
new file mode 100644
index 0000000..1ecffd3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/alias.php
@@ -0,0 +1,20 @@
+<?php
+
+$aliases = [
+    Tightenco\Collect\Contracts\Support\Arrayable::class => Illuminate\Contracts\Support\Arrayable::class,
+    Tightenco\Collect\Contracts\Support\Jsonable::class => Illuminate\Contracts\Support\Jsonable::class,
+    Tightenco\Collect\Contracts\Support\Htmlable::class => Illuminate\Contracts\Support\Htmlable::class,
+    Tightenco\Collect\Support\Arr::class => Illuminate\Support\Arr::class,
+    Tightenco\Collect\Support\Collection::class => Illuminate\Support\Collection::class,
+    Tightenco\Collect\Support\Enumerable::class => Illuminate\Support\Enumerable::class,
+    Tightenco\Collect\Support\HigherOrderCollectionProxy::class => Illuminate\Support\HigherOrderCollectionProxy::class,
+    Tightenco\Collect\Support\HigherOrderWhenProxy::class => Illuminate\Support\HigherOrderWhenProxy::class,
+    Tightenco\Collect\Support\LazyCollection::class => Illuminate\Support\LazyCollection::class,
+    Tightenco\Collect\Support\Traits\EnumeratesValues::class => Illuminate\Support\Traits\EnumeratesValues::class,
+];
+
+foreach ($aliases as $tighten => $illuminate) {
+    if (! class_exists($illuminate) && ! interface_exists($illuminate) && ! trait_exists($illuminate)) {
+        class_alias($tighten, $illuminate);
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/helpers.php b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/helpers.php
new file mode 100644
index 0000000..d7f9e0e
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/lib/vendor/tightenco/collect/src/Collect/Support/helpers.php
@@ -0,0 +1,139 @@
+<?php
+
+use Tightenco\Collect\Support\Arr;
+use Tightenco\Collect\Support\Collection;
+use Tightenco\Collect\Support\HigherOrderTapProxy;
+use Symfony\Component\VarDumper\VarDumper;
+
+if (! class_exists(Illuminate\Support\Collection::class)) {
+    if (! function_exists('array_wrap')) {
+        /**
+         * If the given value is not an array, wrap it in one.
+         *
+         * @param  mixed  $value
+         * @return array
+         */
+        function array_wrap($value)
+        {
+            return ! is_array($value) ? [$value] : $value;
+        }
+    }
+
+    if (! function_exists('collect')) {
+        /**
+         * Create a collection from the given value.
+         *
+         * @param  mixed  $value
+         * @return \Tightenco\Collect\Support\Collection
+         */
+        function collect($value = null)
+        {
+            return new Collection($value);
+        }
+    }
+
+    if (! function_exists('value')) {
+        /**
+         * Return the default value of the given value.
+         *
+         * @param  mixed  $value
+         * @return mixed
+         */
+        function value($value)
+        {
+            return $value instanceof Closure ? $value() : $value;
+        }
+    }
+
+    if (! function_exists('data_get')) {
+        /**
+         * Get an item from an array or object using "dot" notation.
+         *
+         * @param  mixed   $target
+         * @param  string|array  $key
+         * @param  mixed   $default
+         * @return mixed
+         */
+        function data_get($target, $key, $default = null)
+        {
+            if (is_null($key)) {
+                return $target;
+            }
+
+            $key = is_array($key) ? $key : explode('.', $key);
+
+            while (($segment = array_shift($key)) !== null) {
+                if ($segment === '*') {
+                    if ($target instanceof Collection) {
+                        $target = $target->all();
+                    } elseif (! is_array($target)) {
+                        return value($default);
+                    }
+
+                    $result = Arr::pluck($target, $key);
+
+                    return in_array('*', $key) ? Arr::collapse($result) : $result;
+                }
+
+                if (Arr::accessible($target) && Arr::exists($target, $segment)) {
+                    $target = $target[$segment];
+                } elseif (is_object($target) && isset($target->{$segment})) {
+                    $target = $target->{$segment};
+                } else {
+                    return value($default);
+                }
+            }
+
+            return $target;
+        }
+    }
+
+    if (! function_exists('tap')) {
+        /**
+         * Call the given Closure with the given value then return the value.
+         *
+         * @param  mixed  $value
+         * @param  callable|null  $callback
+         * @return mixed
+         */
+        function tap($value, $callback = null)
+        {
+            if (is_null($callback)) {
+                return new HigherOrderTapProxy($value);
+            }
+
+            $callback($value);
+
+            return $value;
+        }
+    }
+
+    if (! function_exists('with')) {
+        /**
+         * Return the given object. Useful for chaining.
+         *
+         * @param  mixed  $object
+         * @return mixed
+         */
+        function with($object)
+        {
+            return $object;
+        }
+    }
+
+    if (! function_exists('dd')) {
+        /**
+         * Dump the passed variables and end the script.
+         *
+         * @param  mixed
+         * @return void
+         */
+        function dd(...$args)
+        {
+            foreach ($args as $x) {
+               VarDumper::dump($x);
+            }
+            die(1);
+        }
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/prerequisites.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/prerequisites.inc.php
index 220c87c..0cbd05a 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/prerequisites.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/prerequisites.inc.php
@@ -67,6 +67,8 @@
 $WebAuthn->addRootCertificates($_SERVER['DOCUMENT_ROOT'] . '/inc/lib/WebAuthn/rootCertificates/googleHardware.pem');
 $WebAuthn->addRootCertificates($_SERVER['DOCUMENT_ROOT'] . '/inc/lib/WebAuthn/rootCertificates/microsoftTpmCollection.pem');
 $WebAuthn->addRootCertificates($_SERVER['DOCUMENT_ROOT'] . '/inc/lib/WebAuthn/rootCertificates/huawei.pem');
+$WebAuthn->addRootCertificates($_SERVER['DOCUMENT_ROOT'] . '/inc/lib/WebAuthn/rootCertificates/trustkey.pem');
+$WebAuthn->addRootCertificates($_SERVER['DOCUMENT_ROOT'] . '/inc/lib/WebAuthn/rootCertificates/bsi.pem');
 
 // Redis
 $redis = new Redis();
@@ -170,29 +172,12 @@
 set_exception_handler('exception_handler');
 
 // TODO: Move function
-function get_remote_ip($anonymize = null) {
-  global $ANONYMIZE_IPS;
-  if ($anonymize === null) {
-    $anonymize = $ANONYMIZE_IPS;
-  }
-  elseif ($anonymize !== true && $anonymize !== false)  {
-    $anonymize = true;
-  }
+function get_remote_ip() {
   $remote = $_SERVER['REMOTE_ADDR'];
   if (filter_var($remote, FILTER_VALIDATE_IP) === false) {
     return '0.0.0.0';
   }
-  if ($anonymize) {
-    if (strlen(inet_pton($remote)) == 4) {
-      return inet_ntop(inet_pton($remote) & inet_pton("255.255.255.0"));
-    }
-    elseif (strlen(inet_pton($remote)) == 16) {
-      return inet_ntop(inet_pton($remote) & inet_pton('ffff:ffff:ffff:ffff:0000:0000:0000:0000'));
-    }
-  }
-  else {
-    return $remote;
-  }
+  return $remote;
 }
 
 // Load core functions first
@@ -207,7 +192,7 @@
 if (!isset($_SESSION['mailcow_locale']) && !isset($_COOKIE['mailcow_locale'])) {
   if ($DETECT_LANGUAGE && isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
     $header_lang = strtolower(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2));
-    if (in_array($header_lang, $AVAILABLE_LANGUAGES)) {
+    if (array_key_exists($header_lang, $AVAILABLE_LANGUAGES)) {
       $_SESSION['mailcow_locale'] = $header_lang;
     }
   }
@@ -218,7 +203,7 @@
 if (isset($_COOKIE['mailcow_locale'])) {
   (preg_match('/^[a-z]{2}$/', $_COOKIE['mailcow_locale'])) ? $_SESSION['mailcow_locale'] = $_COOKIE['mailcow_locale'] : setcookie("mailcow_locale", "", time() - 300);
 }
-if (isset($_GET['lang']) && in_array($_GET['lang'], $AVAILABLE_LANGUAGES)) {
+if (isset($_GET['lang']) && array_key_exists($_GET['lang'], $AVAILABLE_LANGUAGES)) {
   $_SESSION['mailcow_locale'] = $_GET['lang'];
   setcookie("mailcow_locale", $_GET['lang'], time()+30758400); // one year
 }
@@ -234,27 +219,27 @@
 }
 
 require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.acl.inc.php';
-require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.app_passwd.inc.php';
-require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.mailbox.inc.php';
-require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.customize.inc.php';
 require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.address_rewriting.inc.php';
-require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.domain_admin.inc.php';
 require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.admin.inc.php';
-require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.quarantine.inc.php';
-require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.quota_notification.inc.php';
-require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.policy.inc.php';
+require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.app_passwd.inc.php';
+require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.customize.inc.php';
 require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.dkim.inc.php';
+require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.docker.inc.php';
+require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.domain_admin.inc.php';
+require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.fail2ban.inc.php';
 require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.fwdhost.inc.php';
+require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.mailbox.inc.php';
 require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.mailq.inc.php';
 require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.oauth2.inc.php';
+require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.policy.inc.php';
+require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.presets.inc.php';
 require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.pushover.inc.php';
+require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.quarantine.inc.php';
+require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.quota_notification.inc.php';
 require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.ratelimit.inc.php';
-require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.transports.inc.php';
 require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.rspamd.inc.php';
 require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.tls_policy_maps.inc.php';
-require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.fail2ban.inc.php';
-require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.docker.inc.php';
-require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.presets.inc.php';
+require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.transports.inc.php';
 require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/init_db.inc.php';
 require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/triggers.inc.php';
 init_db_schema();
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/presets/rspamd/preset_1.yml b/mailcow/src/mailcow-dockerized/data/web/inc/presets/rspamd/preset_1.yml
index acbe352..41833cf 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/presets/rspamd/preset_1.yml
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/presets/rspamd/preset_1.yml
@@ -3,5 +3,5 @@
   priority = 10;
   authenticated = yes;
   apply "default" {
-    symbols_enabled = ["DKIM_SIGNED", "RATELIMITED", "RATELIMIT_UPDATE", "RATELIMIT_CHECK", "DYN_RL_CHECK", "HISTORY_SAVE", "MILTER_HEADERS", "ARC_SIGNED"];
+    symbols_enabled = ["BCC", "DKIM_SIGNED", "RATELIMITED", "RATELIMIT_UPDATE", "RATELIMIT_CHECK", "DYN_RL_CHECK", "HISTORY_SAVE", "MILTER_HEADERS", "ARC_SIGNED"];
   }
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/presets/rspamd/preset_4.yml b/mailcow/src/mailcow-dockerized/data/web/inc/presets/rspamd/preset_4.yml
new file mode 100644
index 0000000..c63071b
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/presets/rspamd/preset_4.yml
@@ -0,0 +1,11 @@
+headline: lang.rsettings_preset_4
+content: |
+  priority = 10;
+  rcpt = "/.*@develcow.de$/";
+  from = "/.*/";
+  apply "default" {
+    MAILCOW_WHITE = -9999.0;
+  }
+  symbols [
+    "MAILCOW_WHITE"
+  ]
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/spf.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/spf.inc.php
index 199f572..55e164b 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/spf.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/spf.inc.php
@@ -1,8 +1,6 @@
 <?php
 error_reporting(0);
-
-function get_spf_allowed_hosts($check_domain)
-{
+function get_spf_allowed_hosts($check_domain, $expand_ipv6 = false) {
 	$hosts = array();
 	
 	$records = dns_get_record($check_domain, DNS_TXT);
@@ -26,7 +24,7 @@
 				$mod = explode('=', $mech);
 				if ($mod[0] == 'redirect') // handle a redirect
 				{
-					$hosts = get_spf_allowed_hosts($mod[1]);
+					$hosts = get_spf_allowed_hosts($mod[1],true);
 					return $hosts;
 				}
 			}
@@ -81,7 +79,13 @@
 	}
 	foreach ($hosts as &$host) {
 		if (filter_var($host, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
-			$host = $host;
+			if ($expand_ipv6 === true) {
+				$hex = unpack("H*hex", inet_pton($host));
+				$host = substr(preg_replace("/([A-f0-9]{4})/", "$1:", $hex['hex']), 0, -1);
+			}
+			else {
+				$host = $host;
+			}
 		}
 	}
 	return $hosts;
@@ -119,9 +123,8 @@
 		$hosts[] = $a_record['ip'];
 	}
 	$a_records = dns_get_record($domain, DNS_AAAA);
-	foreach ($a_records as $a_record)
-	{
-		$hosts[] = $a_record['ipv6'];
+	foreach ($a_records as $a_record) {
+    $hosts[] = $a_record['ipv6'];
 	}
 	
 	return $hosts;
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/triggers.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/triggers.inc.php
index 8785759..a2342df 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/triggers.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/triggers.inc.php
@@ -24,19 +24,16 @@
 	if ($as == "admin") {
 		$_SESSION['mailcow_cc_username'] = $login_user;
 		$_SESSION['mailcow_cc_role'] = "admin";
-    $_SESSION['mailcow_cc_last_login'] = last_login($login_user);
 		header("Location: /admin");
 	}
 	elseif ($as == "domainadmin") {
 		$_SESSION['mailcow_cc_username'] = $login_user;
 		$_SESSION['mailcow_cc_role'] = "domainadmin";
-    $_SESSION['mailcow_cc_last_login'] = last_login($login_user);
 		header("Location: /mailbox");
 	}
 	elseif ($as == "user") {
 		$_SESSION['mailcow_cc_username'] = $login_user;
 		$_SESSION['mailcow_cc_role'] = "user";
-    $_SESSION['mailcow_cc_last_login'] = last_login($login_user);
     $http_parameters = explode('&', $_SESSION['index_query_string']);
     unset($_SESSION['index_query_string']);
     if (in_array('mobileconfig', $http_parameters)) {
@@ -58,7 +55,7 @@
 	}
 }
 
-if (isset($_SESSION['mailcow_cc_role']) && $_SESSION['acl']['login_as'] == "1") {
+if (isset($_SESSION['mailcow_cc_role']) && (isset($_SESSION['acl']['login_as']) && $_SESSION['acl']['login_as'] == "1")) {
 	if (isset($_GET["duallogin"])) {
     $duallogin = html_entity_decode(rawurldecode($_GET["duallogin"]));
     if (filter_var($duallogin, FILTER_VALIDATE_EMAIL)) {
@@ -82,7 +79,7 @@
   }
 }
 
-if (isset($_SESSION['mailcow_cc_role']) && ($_SESSION['mailcow_cc_role'] == "admin" || $_SESSION['mailcow_cc_role'] == "domainadmin")) {
+if (isset($_SESSION['mailcow_cc_role'])) {
 	if (isset($_POST["set_tfa"])) {
 		set_tfa($_POST);
 	}
@@ -93,7 +90,7 @@
 		fido2(array("action" => "unset_fido2_key", "post_data" => $_POST));
 	}
 }
-if (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == "admin") {
+if (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == "admin" && !isset($_SESSION['mailcow_cc_api'])) {
   // TODO: Move file upload to API?
 	if (isset($_POST["submit_main_logo"])) {
     if ($_FILES['main_logo']['error'] == 0) {
diff --git a/mailcow/src/mailcow-dockerized/data/web/inc/vars.inc.php b/mailcow/src/mailcow-dockerized/data/web/inc/vars.inc.php
index f497ffb..91d2145 100644
--- a/mailcow/src/mailcow-dockerized/data/web/inc/vars.inc.php
+++ b/mailcow/src/mailcow-dockerized/data/web/inc/vars.inc.php
@@ -45,21 +45,21 @@
   // The autoconfig service will additionally announce the STARTTLS-enabled ports, specified in the "tlsport" variable.
   'imap' => array(
     'server' => $mailcow_hostname,
-    'port' => end(explode(':', getenv('IMAPS_PORT'))),
-    'tlsport' => end(explode(':', getenv('IMAP_PORT'))),
+    'port' => (int)filter_var(substr(getenv('IMAPS_PORT'), strrpos(getenv('IMAPS_PORT'), ':')), FILTER_SANITIZE_NUMBER_INT),
+    'tlsport' => (int)filter_var(substr(getenv('IMAP_PORT'), strrpos(getenv('IMAP_PORT'), ':')), FILTER_SANITIZE_NUMBER_INT)
   ),
   'pop3' => array(
     'server' => $mailcow_hostname,
-    'port' => end(explode(':', getenv('POPS_PORT'))),
-    'tlsport' => end(explode(':', getenv('POP_PORT'))),
+    'port' => (int)filter_var(substr(getenv('POPS_PORT'), strrpos(getenv('POPS_PORT'), ':')), FILTER_SANITIZE_NUMBER_INT),
+    'tlsport' => (int)filter_var(substr(getenv('POP_PORT'), strrpos(getenv('POP_PORT'), ':')), FILTER_SANITIZE_NUMBER_INT)
   ),
   'smtp' => array(
     'server' => $mailcow_hostname,
-    'port' => end(explode(':', getenv('SMTPS_PORT'))),
-    'tlsport' => end(explode(':', getenv('SUBMISSION_PORT'))),
+    'port' => (int)filter_var(substr(getenv('SMTPS_PORT'), strrpos(getenv('SMTPS_PORT'), ':')), FILTER_SANITIZE_NUMBER_INT),
+    'tlsport' => (int)filter_var(substr(getenv('SUBMISSION_PORT'), strrpos(getenv('SUBMISSION_PORT'), ':')), FILTER_SANITIZE_NUMBER_INT)
   ),
   'activesync' => array(
-    'url' => 'https://'.$mailcow_hostname.($https_port == 443 ? '' : ':'.$https_port).'/Microsoft-Server-ActiveSync',
+    'url' => 'https://' . $mailcow_hostname . ($https_port == 443 ? '' : ':' . $https_port) . '/Microsoft-Server-ActiveSync',
   ),
   'caldav' => array(
     'server' => $mailcow_hostname,
@@ -79,7 +79,29 @@
 $DEFAULT_LANG = 'en';
 
 // Available languages
-$AVAILABLE_LANGUAGES = array('ca', 'cs', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ko', 'lv', 'nl', 'pl', 'pt', 'ro', 'ru', 'sk', 'sv', 'zh');
+// https://www.iso.org/obp/ui/#search
+// https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
+$AVAILABLE_LANGUAGES = array(
+  'cs' => 'Čeština (Czech)',
+  'da' => 'Danish (Dansk)',
+  'de' => 'Deutsch (German)',
+  'en' => 'English',
+  'es' => 'Español (Spanish)',
+  'fi' => 'Suomi (Finish)',
+  'fr' => 'Français (French)',
+  'hu' => 'Magyar (Hungarian)',
+  'it' => 'Italiano (Italian)',
+  'ko' => '한국어 (Korean)',
+  'lv' => 'latviešu (Latvian)',
+  'nl' => 'Nederlands (Dutch)',
+  'pl' => 'Język Polski (Polish)',
+  'pt' => 'Português (Portuguese)',
+  'ro' => 'Română (Romanian)',
+  'ru' => 'Pусский (Russian)',
+  'sk' => 'Slovenčina (Slovak)',
+  'sv' => 'Svenska (Swedish)',
+  'zh' => '中文 (Chinese)'
+);
 
 // Change theme (default: lumen)
 // Needs to be one of those: cerulean, cosmo, cyborg, darkly, flatly, journal, lumen, paper, readable, sandstone,
@@ -88,14 +110,6 @@
 // WARNING: Only lumen is loaded locally. Enabling any other theme, will download external sources.
 $DEFAULT_THEME = 'lumen';
 
-// Password complexity as regular expression
-// Min. 6 characters
-$PASSWD_REGEP = '.{6,}';
-// Min. 6 characters, which must include at least one uppercase letter, one lowercase letter and one number
-// $PASSWD_REGEP = '^(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{6,}$';
-// Min. 6 characters, which must include at least one letter and one number
-// $PASSWD_REGEP = '^(?=.*[0-9])(?=.*[A-Za-z]).{6,}$';
-
 // Show DKIM private keys - false by default
 $SHOW_DKIM_PRIV_KEYS = false;
 
@@ -122,15 +136,9 @@
 // Label for OTP devices
 $OTP_LABEL = "mailcow UI";
 
-// Default "to" address in relay test tool
-$RELAY_TO = "null@hosted.mailcow.de";
-
 // How long to wait (in s) for cURL Docker requests
 $DOCKER_TIMEOUT = 60;
 
-// Anonymize IPs logged via UI
-$ANONYMIZE_IPS = true;
-
 // Split DKIM key notation (bind format)
 $SPLIT_DKIM_255 = false;
 
@@ -203,6 +211,7 @@
     'Bad Words DE (only fired in combination with fishy TLDs)' => 'bad_words_de.map',
     'Bad Languages' => 'bad_languages.map',
     'Bulk Mail Headers' => 'bulk_header.map',
+    'Bad (Junk) Mail Headers' => 'bad_header.map',
     'Monitoring Hosts' => 'monitoring_nolog.map'
   )
 );
diff --git a/mailcow/src/mailcow-dockerized/data/web/index.php b/mailcow/src/mailcow-dockerized/data/web/index.php
index 571f189..93e72a7 100644
--- a/mailcow/src/mailcow-dockerized/data/web/index.php
+++ b/mailcow/src/mailcow-dockerized/data/web/index.php
@@ -28,12 +28,12 @@
 <div class="container">
   <div class="row">
     <div class="col-md-offset-3 col-md-6">
-      <div class="panel panel-default">
-        <div class="panel-heading"><span class="glyphicon glyphicon-user" aria-hidden="true"></span> <?= $lang['login']['login']; ?></div>
+      <div class="panel panel-default panel-login">
+        <div class="panel-heading"><i class="bi bi-person-fill"></i> <?= $lang['login']['login']; ?></div>
         <div class="panel-body">
           <div class="text-center mailcow-logo"><img src="<?=($main_logo = customize('get', 'main_logo')) ? $main_logo : '/img/cow_mailcow.svg';?>" alt="mailcow"></div>
           <?php if (!empty($UI_TEXTS['ui_announcement_text']) && in_array($UI_TEXTS['ui_announcement_type'], array('info', 'warning', 'danger')) && $UI_TEXTS['ui_announcement_active'] == 1) { ?>
-          <div class="alert alert-<?=$UI_TEXTS['ui_announcement_type'];?> rot-enc"><?=str_rot13($UI_TEXTS['ui_announcement_text']);?></div>
+          <div class="alert alert-<?=$UI_TEXTS['ui_announcement_type'];?> rot-enc ui-announcement-alert"><?=str_rot13($UI_TEXTS['ui_announcement_text']);?></div>
           <?php } ?>
           <legend><?= isset($_SESSION['oauth2_request']) ? $lang['oauth2']['authorize_app'] : $UI_TEXTS['main_name'];?></legend>
             <?php
@@ -47,42 +47,42 @@
             <div class="form-group">
               <label class="sr-only" for="login_user"><?= $lang['login']['username']; ?></label>
               <div class="input-group">
-                <div class="input-group-addon"><i class="glyphicon glyphicon-user"></i></div>
-                <input name="login_user" autocorrect="off" autocapitalize="none" type="<?=(strpos($_SESSION['index_query_string'], 'mobileconfig') !== false) ? 'email' : 'text';?>" id="login_user" class="form-control" placeholder="<?= $lang['login']['username']; ?>" required="" autofocus="">
+                <div class="input-group-addon"><i class="bi bi-person-fill"></i></div>
+                <input name="login_user" autocorrect="off" autocapitalize="none" type="<?=(strpos($_SESSION['index_query_string'], 'mobileconfig') !== false) ? 'email' : 'text';?>" id="login_user" class="form-control" placeholder="<?= $lang['login']['username']; ?>" required="" autofocus="" autocomplete="username">
               </div>
             </div>
             <div class="form-group">
               <label class="sr-only" for="pass_user"><?= $lang['login']['password']; ?></label>
               <div class="input-group">
-                <div class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></div>
-                <input name="pass_user" type="password" id="pass_user" class="form-control" placeholder="<?= $lang['login']['password']; ?>" required="">
+                <div class="input-group-addon"><i class="bi bi-lock-fill"></i></div>
+                <input name="pass_user" type="password" id="pass_user" class="form-control" placeholder="<?= $lang['login']['password']; ?>" required="" autocomplete="current-password">
               </div>
             </div>
-            <div class="form-group">
+            <div class="form-group" style="position: relative">
               <div class="btn-group">
-                <button type="submit" class="btn btn-success" value="Login"><?= $lang['login']['login']; ?></button>
                 <div class="btn-group">
-                  <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
-                  <?= $lang['login']['other_logins']; ?> <span class="caret"></span></button>
-                  <ul class="dropdown-menu" role="menu">
-                    <li><a href="#" id="fido2-login"><?= $lang['login']['fido2_webauthn']; ?></a></li>
+                  <button type="submit" class="btn btn-xs-lg btn-success" value="Login"><?= $lang['login']['login']; ?></button>
+                  <button type="button" class="btn btn-xs-lg btn-success dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                    <span class="caret"></span>
+                  </button>
+                  <ul class="dropdown-menu">
+                    <li><a href="#" id="fido2-login" style="line-height:1.4;"><i class="bi bi-shield-fill-check"></i> <?= $lang['login']['fido2_webauthn']; ?></a></li>
                   </ul>
                 </div>
               </div>
               <?php if(!isset($_SESSION['oauth2_request'])) { ?>
-              <div class="btn-group pull-right">
-                <button type="button" <?=(isset($_SESSION['mailcow_locale']) && count($AVAILABLE_LANGUAGES) === 1) ? 'disabled="true"' : '' ?> class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                  <span class="lang-sm lang-lbl" lang="<?= $_SESSION['mailcow_locale']; ?>"></span> <span class="caret"></span>
+                <button type="button" <?=(isset($_SESSION['mailcow_locale']) && count($AVAILABLE_LANGUAGES) === 1) ? 'disabled="true"' : '' ?> class="btn btn-xs-lg btn-default pull-right dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                  <span class="flag-icon flag-icon-<?= $_SESSION['mailcow_locale']; ?>"></span> <span class="caret"></span>
                 </button>
-                <ul class="dropdown-menu">
+                <ul class="dropdown-menu pull-right login">
                   <?php
-                  foreach ($AVAILABLE_LANGUAGES as $language) {
+                  foreach ($AVAILABLE_LANGUAGES as $c => $v) {
                   ?>
-                  <li<?= ($_SESSION['mailcow_locale'] == $language) ? ' class="active"' : ''; ?>><a href="?<?= http_build_query(array_merge($_GET, array('lang' => $language))) ?>"><span class="lang-xs lang-lbl-full" lang="<?= $language; ?>"></span></a></li>
+                  <li<?= ($_SESSION['mailcow_locale'] == $c) ? ' class="active"' : ''; ?>><a href="?<?= http_build_query(array_merge($_GET, array('lang' => $c))) ?>"><span class="flag-icon flag-icon-<?=$c;?>"></span> <?=$v;?></a></li>
                   <?php } ?>
                 </ul>
-              </div>
               <?php } ?>
+              <div class="clearfix"></div>
             </div>
             </form>
             <?php
@@ -92,13 +92,16 @@
             <?php } ?>
             <div id="fido2-alerts"></div>
           <?php if(!isset($_SESSION['oauth2_request'])) { ?>
-            <legend><span class="glyphicon glyphicon-link" aria-hidden="true"></span> <?=$UI_TEXTS['apps_name'];?></legend>
+            <legend><i class="bi bi-link-45deg"></i> <?=$UI_TEXTS['apps_name'];?></legend>
+            <div class="apps">
             <?php
             if (!empty($MAILCOW_APPS)) {
               foreach ($MAILCOW_APPS as $app) {
                 if (getenv('SKIP_SOGO') == "y" && preg_match('/^\/SOGo/i', $app['link'])) { continue; }
               ?>
-                <a href="<?= htmlspecialchars($app['link']); ?>" role="button" style="margin-bottom:3pt" title="<?= htmlspecialchars($app['description']); ?>" class="btn btn-primary"><?= htmlspecialchars($app['name']); ?></a>&nbsp;
+              <div class="media-clearfix">
+                <a href="<?=(isset($app['link'])) ? htmlspecialchars($app['link']) : '';?>" role="button" title="<?=(isset($app['description'])) ? htmlspecialchars($app['description']) : '';?>" class="btn btn-primary btn-lg btn-block"><?= htmlspecialchars($app['name']); ?></a>
+              </div>
               <?php
               }
             }
@@ -107,12 +110,15 @@
               foreach ($app_links as $row) {
                 foreach ($row as $key => $val) {
               ?>
-                <a href="<?= htmlspecialchars($val); ?>" role="button" style="margin-bottom:3pt" class="btn btn-primary"><?= htmlspecialchars($key); ?></a>&nbsp;
+                <div class="media-clearfix">
+                  <a href="<?= htmlspecialchars($val); ?>" role="button" class="btn btn-primary btn-lg btn-block"><?= htmlspecialchars($key); ?></a>
+                </div>
               <?php
                 }
               }
-            }
-          }
+            } ?>
+            </div>
+          <?php }
           ?>
         </div>
       </div>
@@ -121,7 +127,7 @@
     <div class="col-md-offset-3 col-md-6">
       <div class="panel panel-default">
         <div class="panel-heading">
-          <a data-toggle="collapse" href="#collapse1"><span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span> <?= $lang['start']['help']; ?></a>
+          <a data-toggle="collapse" href="#collapse1"><i class="bi bi-patch-question-fill"></i> <?= $lang['start']['help']; ?></a>
         </div>
         <div id="collapse1" class="panel-collapse collapse">
           <div class="panel-body">
diff --git a/mailcow/src/mailcow-dockerized/data/web/js/build/002-bootstrap-switch.min.js b/mailcow/src/mailcow-dockerized/data/web/js/build/002-bootstrap-switch.min.js
deleted file mode 100644
index effcb6c..0000000
--- a/mailcow/src/mailcow-dockerized/data/web/js/build/002-bootstrap-switch.min.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/**

-  * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches.

-  *

-  * @version v3.3.3

-  * @homepage http://www.bootstrap-switch.org

-  * @author Mattia Larentis <mattia@larentis.eu> (http://larentis.eu)

-  * @license Apache-2.0

-  */

-

-'use strict';var _createClass=function(){function a(b,c){for(var e,d=0;d<c.length;d++)e=c[d],e.enumerable=e.enumerable||!1,e.configurable=!0,'value'in e&&(e.writable=!0),Object.defineProperty(b,e.key,e)}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}();function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError('Cannot call a class as a function')}(function(a,b){var c=function(){function d(e){var g=this,f=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};_classCallCheck(this,d),this.$element=a(e),this.options=a.extend({},a.fn.bootstrapSwitch.defaults,this._getElementOptions(),f),this.prevOptions={},this.$wrapper=a('<div>',{class:function _class(){var h=[];return h.push(g.options.state?'on':'off'),g.options.size&&h.push(g.options.size),g.options.disabled&&h.push('disabled'),g.options.readonly&&h.push('readonly'),g.options.indeterminate&&h.push('indeterminate'),g.options.inverse&&h.push('inverse'),g.$element.attr('id')&&h.push('id-'+g.$element.attr('id')),h.map(g._getClass.bind(g)).concat([g.options.baseClass],g._getClasses(g.options.wrapperClass)).join(' ')}}),this.$container=a('<div>',{class:this._getClass('container')}),this.$on=a('<span>',{html:this.options.onText,class:this._getClass('handle-on')+' '+this._getClass(this.options.onColor)}),this.$off=a('<span>',{html:this.options.offText,class:this._getClass('handle-off')+' '+this._getClass(this.options.offColor)}),this.$label=a('<span>',{html:this.options.labelText,class:this._getClass('label')}),this.$element.on('init.bootstrapSwitch',this.options.onInit.bind(this,e)),this.$element.on('switchChange.bootstrapSwitch',function(){for(var j=arguments.length,h=Array(j),k=0;k<j;k++)h[k]=arguments[k];!1===g.options.onSwitchChange.apply(e,h)&&(g.$element.is(':radio')?a('[name="'+g.$element.attr('name')+'"]').trigger('previousState.bootstrapSwitch',!0):g.$element.trigger('previousState.bootstrapSwitch',!0))}),this.$container=this.$element.wrap(this.$container).parent(),this.$wrapper=this.$container.wrap(this.$wrapper).parent(),this.$element.before(this.options.inverse?this.$off:this.$on).before(this.$label).before(this.options.inverse?this.$on:this.$off),this.options.indeterminate&&this.$element.prop('indeterminate',!0),this._init(),this._elementHandlers(),this._handleHandlers(),this._labelHandlers(),this._formHandler(),this._externalLabelHandler(),this.$element.trigger('init.bootstrapSwitch',this.options.state)}return _createClass(d,[{key:'setPrevOptions',value:function setPrevOptions(){this.prevOptions=Object.assign({},this.options)}},{key:'state',value:function state(e,f){return'undefined'==typeof e?this.options.state:this.options.disabled||this.options.readonly||this.options.state&&!this.options.radioAllOff&&this.$element.is(':radio')?this.$element:(this.$element.is(':radio')?a('[name="'+this.$element.attr('name')+'"]').trigger('setPreviousOptions.bootstrapSwitch'):this.$element.trigger('setPreviousOptions.bootstrapSwitch'),this.options.indeterminate&&this.indeterminate(!1),this.$element.prop('checked',!!e).trigger('change.bootstrapSwitch',f),this.$element)}},{key:'toggleState',value:function toggleState(e){return this.options.disabled||this.options.readonly?this.$element:this.options.indeterminate?(this.indeterminate(!1),this.state(!0)):this.$element.prop('checked',!this.options.state).trigger('change.bootstrapSwitch',e)}},{key:'size',value:function size(e){return'undefined'==typeof e?this.options.size:(null!=this.options.size&&this.$wrapper.removeClass(this._getClass(this.options.size)),e&&this.$wrapper.addClass(this._getClass(e)),this._width(),this._containerPosition(),this.options.size=e,this.$element)}},{key:'animate',value:function animate(e){return'undefined'==typeof e?this.options.animate:this.options.animate===!!e?this.$element:this.toggleAnimate()}},{key:'toggleAnimate',value:function toggleAnimate(){return this.options.animate=!this.options.animate,this.$wrapper.toggleClass(this._getClass('animate')),this.$element}},{key:'disabled',value:function disabled(e){return'undefined'==typeof e?this.options.disabled:this.options.disabled===!!e?this.$element:this.toggleDisabled()}},{key:'toggleDisabled',value:function toggleDisabled(){return this.options.disabled=!this.options.disabled,this.$element.prop('disabled',this.options.disabled),this.$wrapper.toggleClass(this._getClass('disabled')),this.$element}},{key:'readonly',value:function readonly(e){return'undefined'==typeof e?this.options.readonly:this.options.readonly===!!e?this.$element:this.toggleReadonly()}},{key:'toggleReadonly',value:function toggleReadonly(){return this.options.readonly=!this.options.readonly,this.$element.prop('readonly',this.options.readonly),this.$wrapper.toggleClass(this._getClass('readonly')),this.$element}},{key:'indeterminate',value:function indeterminate(e){return'undefined'==typeof e?this.options.indeterminate:this.options.indeterminate===!!e?this.$element:this.toggleIndeterminate()}},{key:'toggleIndeterminate',value:function toggleIndeterminate(){return this.options.indeterminate=!this.options.indeterminate,this.$element.prop('indeterminate',this.options.indeterminate),this.$wrapper.toggleClass(this._getClass('indeterminate')),this._containerPosition(),this.$element}},{key:'inverse',value:function inverse(e){return'undefined'==typeof e?this.options.inverse:this.options.inverse===!!e?this.$element:this.toggleInverse()}},{key:'toggleInverse',value:function toggleInverse(){this.$wrapper.toggleClass(this._getClass('inverse'));var e=this.$on.clone(!0),f=this.$off.clone(!0);return this.$on.replaceWith(f),this.$off.replaceWith(e),this.$on=f,this.$off=e,this.options.inverse=!this.options.inverse,this.$element}},{key:'onColor',value:function onColor(e){return'undefined'==typeof e?this.options.onColor:(this.options.onColor&&this.$on.removeClass(this._getClass(this.options.onColor)),this.$on.addClass(this._getClass(e)),this.options.onColor=e,this.$element)}},{key:'offColor',value:function offColor(e){return'undefined'==typeof e?this.options.offColor:(this.options.offColor&&this.$off.removeClass(this._getClass(this.options.offColor)),this.$off.addClass(this._getClass(e)),this.options.offColor=e,this.$element)}},{key:'onText',value:function onText(e){return'undefined'==typeof e?this.options.onText:(this.$on.html(e),this._width(),this._containerPosition(),this.options.onText=e,this.$element)}},{key:'offText',value:function offText(e){return'undefined'==typeof e?this.options.offText:(this.$off.html(e),this._width(),this._containerPosition(),this.options.offText=e,this.$element)}},{key:'labelText',value:function labelText(e){return'undefined'==typeof e?this.options.labelText:(this.$label.html(e),this._width(),this.options.labelText=e,this.$element)}},{key:'handleWidth',value:function handleWidth(e){return'undefined'==typeof e?this.options.handleWidth:(this.options.handleWidth=e,this._width(),this._containerPosition(),this.$element)}},{key:'labelWidth',value:function labelWidth(e){return'undefined'==typeof e?this.options.labelWidth:(this.options.labelWidth=e,this._width(),this._containerPosition(),this.$element)}},{key:'baseClass',value:function baseClass(){return this.options.baseClass}},{key:'wrapperClass',value:function wrapperClass(e){return'undefined'==typeof e?this.options.wrapperClass:(e||(e=a.fn.bootstrapSwitch.defaults.wrapperClass),this.$wrapper.removeClass(this._getClasses(this.options.wrapperClass).join(' ')),this.$wrapper.addClass(this._getClasses(e).join(' ')),this.options.wrapperClass=e,this.$element)}},{key:'radioAllOff',value:function radioAllOff(e){if('undefined'==typeof e)return this.options.radioAllOff;var f=!!e;return this.options.radioAllOff===f?this.$element:(this.options.radioAllOff=f,this.$element)}},{key:'onInit',value:function onInit(e){return'undefined'==typeof e?this.options.onInit:(e||(e=a.fn.bootstrapSwitch.defaults.onInit),this.options.onInit=e,this.$element)}},{key:'onSwitchChange',value:function onSwitchChange(e){return'undefined'==typeof e?this.options.onSwitchChange:(e||(e=a.fn.bootstrapSwitch.defaults.onSwitchChange),this.options.onSwitchChange=e,this.$element)}},{key:'destroy',value:function destroy(){var e=this.$element.closest('form');return e.length&&e.off('reset.bootstrapSwitch').removeData('bootstrap-switch'),this.$container.children().not(this.$element).remove(),this.$element.unwrap().unwrap().off('.bootstrapSwitch').removeData('bootstrap-switch'),this.$element}},{key:'_getElementOptions',value:function _getElementOptions(){return{state:this.$element.is(':checked'),size:this.$element.data('size'),animate:this.$element.data('animate'),disabled:this.$element.is(':disabled'),readonly:this.$element.is('[readonly]'),indeterminate:this.$element.data('indeterminate'),inverse:this.$element.data('inverse'),radioAllOff:this.$element.data('radio-all-off'),onColor:this.$element.data('on-color'),offColor:this.$element.data('off-color'),onText:this.$element.data('on-text'),offText:this.$element.data('off-text'),labelText:this.$element.data('label-text'),handleWidth:this.$element.data('handle-width'),labelWidth:this.$element.data('label-width'),baseClass:this.$element.data('base-class'),wrapperClass:this.$element.data('wrapper-class')}}},{key:'_width',value:function _width(){var g=this,e=this.$on.add(this.$off).add(this.$label).css('width',''),f=void 0;return f='auto'===this.options.handleWidth?Math.round(Math.max(this.$on.width(),this.$off.width())):this.options.handleWidth,e.width(f),this.$label.width(function(h,j){return'auto'===g.options.labelWidth?j<f?f:j:g.options.labelWidth}),this._handleWidth=this.$on.outerWidth(),this._labelWidth=this.$label.outerWidth(),this.$container.width(2*this._handleWidth+this._labelWidth),this.$wrapper.width(this._handleWidth+this._labelWidth)}},{key:'_containerPosition',value:function _containerPosition(){var g=this,e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:this.options.state,f=arguments[1];this.$container.css('margin-left',function(){var h=[0,'-'+g._handleWidth+'px'];return g.options.indeterminate?'-'+g._handleWidth/2+'px':e?g.options.inverse?h[1]:h[0]:g.options.inverse?h[0]:h[1]})}},{key:'_init',value:function _init(){var f=this,e=function(){f.setPrevOptions(),f._width(),f._containerPosition(),setTimeout(function(){if(f.options.animate)return f.$wrapper.addClass(f._getClass('animate'))},50)};if(this.$wrapper.is(':visible'))return void e();var g=b.setInterval(function(){if(f.$wrapper.is(':visible'))return e(),b.clearInterval(g)},50)}},{key:'_elementHandlers',value:function _elementHandlers(){var e=this;return this.$element.on({'setPreviousOptions.bootstrapSwitch':this.setPrevOptions.bind(this),'previousState.bootstrapSwitch':function previousStateBootstrapSwitch(){e.options=e.prevOptions,e.options.indeterminate&&e.$wrapper.addClass(e._getClass('indeterminate')),e.$element.prop('checked',e.options.state).trigger('change.bootstrapSwitch',!0)},'change.bootstrapSwitch':function changeBootstrapSwitch(f,g){f.preventDefault(),f.stopImmediatePropagation();var h=e.$element.is(':checked');e._containerPosition(h),h===e.options.state||(e.options.state=h,e.$wrapper.toggleClass(e._getClass('off')).toggleClass(e._getClass('on')),!g&&(e.$element.is(':radio')&&a('[name="'+e.$element.attr('name')+'"]').not(e.$element).prop('checked',!1).trigger('change.bootstrapSwitch',!0),e.$element.trigger('switchChange.bootstrapSwitch',[h])))},'focus.bootstrapSwitch':function focusBootstrapSwitch(f){f.preventDefault(),e.$wrapper.addClass(e._getClass('focused'))},'blur.bootstrapSwitch':function blurBootstrapSwitch(f){f.preventDefault(),e.$wrapper.removeClass(e._getClass('focused'))},'keydown.bootstrapSwitch':function keydownBootstrapSwitch(f){!f.which||e.options.disabled||e.options.readonly||(37===f.which||39===f.which)&&(f.preventDefault(),f.stopImmediatePropagation(),e.state(39===f.which))}})}},{key:'_handleHandlers',value:function _handleHandlers(){var e=this;return this.$on.on('click.bootstrapSwitch',function(f){return f.preventDefault(),f.stopPropagation(),e.state(!1),e.$element.trigger('focus.bootstrapSwitch')}),this.$off.on('click.bootstrapSwitch',function(f){return f.preventDefault(),f.stopPropagation(),e.state(!0),e.$element.trigger('focus.bootstrapSwitch')})}},{key:'_labelHandlers',value:function _labelHandlers(){var f=this;this.$label.on({click:function click(g){g.stopPropagation()},'mousedown.bootstrapSwitch touchstart.bootstrapSwitch':function mousedownBootstrapSwitchTouchstartBootstrapSwitch(g){f._dragStart||f.options.disabled||f.options.readonly||(g.preventDefault(),g.stopPropagation(),f._dragStart=(g.pageX||g.originalEvent.touches[0].pageX)-parseInt(f.$container.css('margin-left'),10),f.options.animate&&f.$wrapper.removeClass(f._getClass('animate')),f.$element.trigger('focus.bootstrapSwitch'))},'mousemove.bootstrapSwitch touchmove.bootstrapSwitch':function mousemoveBootstrapSwitchTouchmoveBootstrapSwitch(g){if(null!=f._dragStart){var h=(g.pageX||g.originalEvent.touches[0].pageX)-f._dragStart;g.preventDefault(),h<-f._handleWidth||0<h||(f._dragEnd=h,f.$container.css('margin-left',f._dragEnd+'px'))}},'mouseup.bootstrapSwitch touchend.bootstrapSwitch':function mouseupBootstrapSwitchTouchendBootstrapSwitch(g){if(f._dragStart){if(g.preventDefault(),f.options.animate&&f.$wrapper.addClass(f._getClass('animate')),f._dragEnd){var h=f._dragEnd>-(f._handleWidth/2);f._dragEnd=!1,f.state(f.options.inverse?!h:h)}else f.state(!f.options.state);f._dragStart=!1}},'mouseleave.bootstrapSwitch':function mouseleaveBootstrapSwitch(){f.$label.trigger('mouseup.bootstrapSwitch')}})}},{key:'_externalLabelHandler',value:function _externalLabelHandler(){var f=this,e=this.$element.closest('label');e.on('click',function(g){g.preventDefault(),g.stopImmediatePropagation(),g.target===e[0]&&f.toggleState()})}},{key:'_formHandler',value:function _formHandler(){var e=this.$element.closest('form');e.data('bootstrap-switch')||e.on('reset.bootstrapSwitch',function(){b.setTimeout(function(){e.find('input').filter(function(){return a(this).data('bootstrap-switch')}).each(function(){return a(this).bootstrapSwitch('state',this.checked)})},1)}).data('bootstrap-switch',!0)}},{key:'_getClass',value:function _getClass(e){return this.options.baseClass+'-'+e}},{key:'_getClasses',value:function _getClasses(e){return a.isArray(e)?e.map(this._getClass.bind(this)):[this._getClass(e)]}}]),d}();a.fn.bootstrapSwitch=function(d){for(var f=arguments.length,e=Array(1<f?f-1:0),g=1;g<f;g++)e[g-1]=arguments[g];var h=this;return this.each(function(){var j=a(this),k=j.data('bootstrap-switch');k||(k=new c(this,d),j.data('bootstrap-switch',k)),'string'==typeof d&&(h=k[d].apply(k,e))}),h},a.fn.bootstrapSwitch.Constructor=c,a.fn.bootstrapSwitch.defaults={state:!0,size:null,animate:!0,disabled:!1,readonly:!1,indeterminate:!1,inverse:!1,radioAllOff:!1,onColor:'primary',offColor:'default',onText:'ON',offText:'OFF',labelText:'&nbsp',handleWidth:'auto',labelWidth:'auto',baseClass:'bootstrap-switch',wrapperClass:'wrapper',onInit:function onInit(){},onSwitchChange:function onSwitchChange(){}}})(window.jQuery,window);

diff --git a/mailcow/src/mailcow-dockerized/data/web/js/build/003-bootstrap-slider.min.js b/mailcow/src/mailcow-dockerized/data/web/js/build/003-bootstrap-slider.min.js
deleted file mode 100644
index 633988c..0000000
--- a/mailcow/src/mailcow-dockerized/data/web/js/build/003-bootstrap-slider.min.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*! =======================================================
-                      VERSION  10.6.1              
-========================================================= */
-"use strict";var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},windowIsDefined="object"===("undefined"==typeof window?"undefined":_typeof(window));!function(a){if("function"==typeof define&&define.amd)define(["jquery"],a);else if("object"===("undefined"==typeof module?"undefined":_typeof(module))&&module.exports){var b;try{b=require("jquery")}catch(c){b=null}module.exports=a(b)}else window&&(window.Slider=a(window.jQuery))}(function(a){var b="slider",c="bootstrapSlider";windowIsDefined&&!window.console&&(window.console={}),windowIsDefined&&!window.console.log&&(window.console.log=function(){}),windowIsDefined&&!window.console.warn&&(window.console.warn=function(){});var d;return function(a){function b(){}function c(a){function c(b){b.prototype.option||(b.prototype.option=function(b){a.isPlainObject(b)&&(this.options=a.extend(!0,this.options,b))})}function e(b,c){a.fn[b]=function(e){if("string"==typeof e){for(var g=d.call(arguments,1),h=0,i=this.length;i>h;h++){var j=this[h],k=a.data(j,b);if(k)if(a.isFunction(k[e])&&"_"!==e.charAt(0)){var l=k[e].apply(k,g);if(void 0!==l&&l!==k)return l}else f("no such method '"+e+"' for "+b+" instance");else f("cannot call methods on "+b+" prior to initialization; attempted to call '"+e+"'")}return this}var m=this.map(function(){var d=a.data(this,b);return d?(d.option(e),d._init()):(d=new c(this,e),a.data(this,b,d)),a(this)});return!m||m.length>1?m:m[0]}}if(a){var f="undefined"==typeof console?b:function(a){console.error(a)};return a.bridget=function(a,b){c(b),e(a,b)},a.bridget}}var d=Array.prototype.slice;c(a)}(a),function(a){function e(b,c){function d(a,b){var c="data-slider-"+b.replace(/_/g,"-"),d=a.getAttribute(c);try{return JSON.parse(d)}catch(e){return d}}this._state={value:null,enabled:null,offset:null,size:null,percentage:null,inDrag:!1,over:!1,tickIndex:null},this.ticksCallbackMap={},this.handleCallbackMap={},"string"==typeof b?this.element=document.querySelector(b):b instanceof HTMLElement&&(this.element=b),c=c?c:{};for(var e=Object.keys(this.defaultOptions),f=c.hasOwnProperty("min"),g=c.hasOwnProperty("max"),i=0;i<e.length;i++){var j=e[i],k=c[j];k="undefined"!=typeof k?k:d(this.element,j),k=null!==k?k:this.defaultOptions[j],this.options||(this.options={}),this.options[j]=k}if(this.ticksAreValid=Array.isArray(this.options.ticks)&&this.options.ticks.length>0,this.ticksAreValid||(this.options.lock_to_ticks=!1),"auto"===this.options.rtl){var l=window.getComputedStyle(this.element);null!=l?this.options.rtl="rtl"===l.direction:this.options.rtl="rtl"===this.element.style.direction}"vertical"!==this.options.orientation||"top"!==this.options.tooltip_position&&"bottom"!==this.options.tooltip_position?"horizontal"!==this.options.orientation||"left"!==this.options.tooltip_position&&"right"!==this.options.tooltip_position||(this.options.tooltip_position="top"):this.options.rtl?this.options.tooltip_position="left":this.options.tooltip_position="right";var m,n,o,p,q,r=this.element.style.width,s=!1,t=this.element.parentNode;if(this.sliderElem)s=!0;else{this.sliderElem=document.createElement("div"),this.sliderElem.className="slider";var u=document.createElement("div");u.className="slider-track",n=document.createElement("div"),n.className="slider-track-low",m=document.createElement("div"),m.className="slider-selection",o=document.createElement("div"),o.className="slider-track-high",p=document.createElement("div"),p.className="slider-handle min-slider-handle",p.setAttribute("role","slider"),p.setAttribute("aria-valuemin",this.options.min),p.setAttribute("aria-valuemax",this.options.max),q=document.createElement("div"),q.className="slider-handle max-slider-handle",q.setAttribute("role","slider"),q.setAttribute("aria-valuemin",this.options.min),q.setAttribute("aria-valuemax",this.options.max),u.appendChild(n),u.appendChild(m),u.appendChild(o),this.rangeHighlightElements=[];var v=this.options.rangeHighlights;if(Array.isArray(v)&&v.length>0)for(var w=0;w<v.length;w++){var x=document.createElement("div"),y=v[w]["class"]||"";x.className="slider-rangeHighlight slider-selection "+y,this.rangeHighlightElements.push(x),u.appendChild(x)}var z=Array.isArray(this.options.labelledby);if(z&&this.options.labelledby[0]&&p.setAttribute("aria-labelledby",this.options.labelledby[0]),z&&this.options.labelledby[1]&&q.setAttribute("aria-labelledby",this.options.labelledby[1]),!z&&this.options.labelledby&&(p.setAttribute("aria-labelledby",this.options.labelledby),q.setAttribute("aria-labelledby",this.options.labelledby)),this.ticks=[],Array.isArray(this.options.ticks)&&this.options.ticks.length>0){for(this.ticksContainer=document.createElement("div"),this.ticksContainer.className="slider-tick-container",i=0;i<this.options.ticks.length;i++){var A=document.createElement("div");if(A.className="slider-tick",this.options.ticks_tooltip){var B=this._addTickListener(),C=B.addMouseEnter(this,A,i),D=B.addMouseLeave(this,A);this.ticksCallbackMap[i]={mouseEnter:C,mouseLeave:D}}this.ticks.push(A),this.ticksContainer.appendChild(A)}m.className+=" tick-slider-selection"}if(this.tickLabels=[],Array.isArray(this.options.ticks_labels)&&this.options.ticks_labels.length>0)for(this.tickLabelContainer=document.createElement("div"),this.tickLabelContainer.className="slider-tick-label-container",i=0;i<this.options.ticks_labels.length;i++){var E=document.createElement("div"),F=0===this.options.ticks_positions.length,G=this.options.reversed&&F?this.options.ticks_labels.length-(i+1):i;E.className="slider-tick-label",E.innerHTML=this.options.ticks_labels[G],this.tickLabels.push(E),this.tickLabelContainer.appendChild(E)}var H=function(a){var b=document.createElement("div");b.className="tooltip-arrow";var c=document.createElement("div");c.className="tooltip-inner",a.appendChild(b),a.appendChild(c)},I=document.createElement("div");I.className="tooltip tooltip-main",I.setAttribute("role","presentation"),H(I);var J=document.createElement("div");J.className="tooltip tooltip-min",J.setAttribute("role","presentation"),H(J);var K=document.createElement("div");K.className="tooltip tooltip-max",K.setAttribute("role","presentation"),H(K),this.sliderElem.appendChild(u),this.sliderElem.appendChild(I),this.sliderElem.appendChild(J),this.sliderElem.appendChild(K),this.tickLabelContainer&&this.sliderElem.appendChild(this.tickLabelContainer),this.ticksContainer&&this.sliderElem.appendChild(this.ticksContainer),this.sliderElem.appendChild(p),this.sliderElem.appendChild(q),t.insertBefore(this.sliderElem,this.element),this.element.style.display="none"}if(a&&(this.$element=a(this.element),this.$sliderElem=a(this.sliderElem)),this.eventToCallbackMap={},this.sliderElem.id=this.options.id,this.touchCapable="ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch,this.touchX=0,this.touchY=0,this.tooltip=this.sliderElem.querySelector(".tooltip-main"),this.tooltipInner=this.tooltip.querySelector(".tooltip-inner"),this.tooltip_min=this.sliderElem.querySelector(".tooltip-min"),this.tooltipInner_min=this.tooltip_min.querySelector(".tooltip-inner"),this.tooltip_max=this.sliderElem.querySelector(".tooltip-max"),this.tooltipInner_max=this.tooltip_max.querySelector(".tooltip-inner"),h[this.options.scale]&&(this.options.scale=h[this.options.scale]),s===!0&&(this._removeClass(this.sliderElem,"slider-horizontal"),this._removeClass(this.sliderElem,"slider-vertical"),this._removeClass(this.sliderElem,"slider-rtl"),this._removeClass(this.tooltip,"hide"),this._removeClass(this.tooltip_min,"hide"),this._removeClass(this.tooltip_max,"hide"),["left","right","top","width","height"].forEach(function(a){this._removeProperty(this.trackLow,a),this._removeProperty(this.trackSelection,a),this._removeProperty(this.trackHigh,a)},this),[this.handle1,this.handle2].forEach(function(a){this._removeProperty(a,"left"),this._removeProperty(a,"right"),this._removeProperty(a,"top")},this),[this.tooltip,this.tooltip_min,this.tooltip_max].forEach(function(a){this._removeProperty(a,"left"),this._removeProperty(a,"right"),this._removeProperty(a,"top"),this._removeClass(a,"right"),this._removeClass(a,"left"),this._removeClass(a,"top")},this)),"vertical"===this.options.orientation?(this._addClass(this.sliderElem,"slider-vertical"),this.stylePos="top",this.mousePos="pageY",this.sizePos="offsetHeight"):(this._addClass(this.sliderElem,"slider-horizontal"),this.sliderElem.style.width=r,this.options.orientation="horizontal",this.options.rtl?this.stylePos="right":this.stylePos="left",this.mousePos="clientX",this.sizePos="offsetWidth"),this.options.rtl&&this._addClass(this.sliderElem,"slider-rtl"),this._setTooltipPosition(),Array.isArray(this.options.ticks)&&this.options.ticks.length>0&&(g||(this.options.max=Math.max.apply(Math,this.options.ticks)),f||(this.options.min=Math.min.apply(Math,this.options.ticks))),Array.isArray(this.options.value)?(this.options.range=!0,this._state.value=this.options.value):this.options.range?this._state.value=[this.options.value,this.options.max]:this._state.value=this.options.value,this.trackLow=n||this.trackLow,this.trackSelection=m||this.trackSelection,this.trackHigh=o||this.trackHigh,"none"===this.options.selection?(this._addClass(this.trackLow,"hide"),this._addClass(this.trackSelection,"hide"),this._addClass(this.trackHigh,"hide")):("after"===this.options.selection||"before"===this.options.selection)&&(this._removeClass(this.trackLow,"hide"),this._removeClass(this.trackSelection,"hide"),this._removeClass(this.trackHigh,"hide")),this.handle1=p||this.handle1,this.handle2=q||this.handle2,s===!0)for(this._removeClass(this.handle1,"round triangle"),this._removeClass(this.handle2,"round triangle hide"),i=0;i<this.ticks.length;i++)this._removeClass(this.ticks[i],"round triangle hide");var L=["round","triangle","custom"],M=-1!==L.indexOf(this.options.handle);if(M)for(this._addClass(this.handle1,this.options.handle),this._addClass(this.handle2,this.options.handle),i=0;i<this.ticks.length;i++)this._addClass(this.ticks[i],this.options.handle);if(this._state.offset=this._offset(this.sliderElem),this._state.size=this.sliderElem[this.sizePos],this.setValue(this._state.value),this.handle1Keydown=this._keydown.bind(this,0),this.handle1.addEventListener("keydown",this.handle1Keydown,!1),this.handle2Keydown=this._keydown.bind(this,1),this.handle2.addEventListener("keydown",this.handle2Keydown,!1),this.mousedown=this._mousedown.bind(this),this.touchstart=this._touchstart.bind(this),this.touchmove=this._touchmove.bind(this),this.touchCapable&&(this.sliderElem.addEventListener("touchstart",this.touchstart,!1),this.sliderElem.addEventListener("touchmove",this.touchmove,!1)),this.sliderElem.addEventListener("mousedown",this.mousedown,!1),this.resize=this._resize.bind(this),window.addEventListener("resize",this.resize,!1),"hide"===this.options.tooltip)this._addClass(this.tooltip,"hide"),this._addClass(this.tooltip_min,"hide"),this._addClass(this.tooltip_max,"hide");else if("always"===this.options.tooltip)this._showTooltip(),this._alwaysShowTooltip=!0;else{if(this.showTooltip=this._showTooltip.bind(this),this.hideTooltip=this._hideTooltip.bind(this),this.options.ticks_tooltip){var N=this._addTickListener(),O=N.addMouseEnter(this,this.handle1),P=N.addMouseLeave(this,this.handle1);this.handleCallbackMap.handle1={mouseEnter:O,mouseLeave:P},O=N.addMouseEnter(this,this.handle2),P=N.addMouseLeave(this,this.handle2),this.handleCallbackMap.handle2={mouseEnter:O,mouseLeave:P}}else this.sliderElem.addEventListener("mouseenter",this.showTooltip,!1),this.sliderElem.addEventListener("mouseleave",this.hideTooltip,!1),this.touchCapable&&(this.sliderElem.addEventListener("touchstart",this.showTooltip,!1),this.sliderElem.addEventListener("touchmove",this.showTooltip,!1),this.sliderElem.addEventListener("touchend",this.hideTooltip,!1));this.handle1.addEventListener("focus",this.showTooltip,!1),this.handle1.addEventListener("blur",this.hideTooltip,!1),this.handle2.addEventListener("focus",this.showTooltip,!1),this.handle2.addEventListener("blur",this.hideTooltip,!1),this.touchCapable&&(this.handle1.addEventListener("touchstart",this.showTooltip,!1),this.handle1.addEventListener("touchmove",this.showTooltip,!1),this.handle1.addEventListener("touchend",this.hideTooltip,!1),this.handle2.addEventListener("touchstart",this.showTooltip,!1),this.handle2.addEventListener("touchmove",this.showTooltip,!1),this.handle2.addEventListener("touchend",this.hideTooltip,!1))}this.options.enabled?this.enable():this.disable()}var f=void 0,g={formatInvalidInputErrorMsg:function(a){return"Invalid input value '"+a+"' passed in"},callingContextNotSliderInstance:"Calling context element does not have instance of Slider bound to it. Check your code to make sure the JQuery object returned from the call to the slider() initializer is calling the method"},h={linear:{getValue:function(a,b){return a<b.min?b.min:a>b.max?b.max:a},toValue:function(a){var b=a/100*(this.options.max-this.options.min),c=!0;if(this.options.ticks_positions.length>0){for(var d,e,f,g=0,i=1;i<this.options.ticks_positions.length;i++)if(a<=this.options.ticks_positions[i]){d=this.options.ticks[i-1],f=this.options.ticks_positions[i-1],e=this.options.ticks[i],g=this.options.ticks_positions[i];break}var j=(a-f)/(g-f);b=d+j*(e-d),c=!1}var k=c?this.options.min:0,l=k+Math.round(b/this.options.step)*this.options.step;return h.linear.getValue(l,this.options)},toPercentage:function(a){if(this.options.max===this.options.min)return 0;if(this.options.ticks_positions.length>0){for(var b,c,d,e=0,f=0;f<this.options.ticks.length;f++)if(a<=this.options.ticks[f]){b=f>0?this.options.ticks[f-1]:0,d=f>0?this.options.ticks_positions[f-1]:0,c=this.options.ticks[f],e=this.options.ticks_positions[f];break}if(f>0){var g=(a-b)/(c-b);return d+g*(e-d)}}return 100*(a-this.options.min)/(this.options.max-this.options.min)}},logarithmic:{toValue:function(a){var b=1-this.options.min,c=Math.log(this.options.min+b),d=Math.log(this.options.max+b),e=Math.exp(c+(d-c)*a/100)-b;return Math.round(e)===d?d:(e=this.options.min+Math.round((e-this.options.min)/this.options.step)*this.options.step,h.linear.getValue(e,this.options))},toPercentage:function(a){if(this.options.max===this.options.min)return 0;var b=1-this.options.min,c=Math.log(this.options.max+b),d=Math.log(this.options.min+b),e=Math.log(a+b);return 100*(e-d)/(c-d)}}};d=function(a,b){return e.call(this,a,b),this},d.prototype={_init:function(){},constructor:d,defaultOptions:{id:"",min:0,max:10,step:1,precision:0,orientation:"horizontal",value:5,range:!1,selection:"before",tooltip:"show",tooltip_split:!1,lock_to_ticks:!1,handle:"round",reversed:!1,rtl:"auto",enabled:!0,formatter:function(a){return Array.isArray(a)?a[0]+" : "+a[1]:a},natural_arrow_keys:!1,ticks:[],ticks_positions:[],ticks_labels:[],ticks_snap_bounds:0,ticks_tooltip:!1,scale:"linear",focus:!1,tooltip_position:null,labelledby:null,rangeHighlights:[]},getElement:function(){return this.sliderElem},getValue:function(){return this.options.range?this._state.value:this._state.value[0]},setValue:function(a,b,c){a||(a=0);var d=this.getValue();this._state.value=this._validateInputValue(a);var e=this._applyPrecision.bind(this);this.options.range?(this._state.value[0]=e(this._state.value[0]),this._state.value[1]=e(this._state.value[1]),this.ticksAreValid&&this.options.lock_to_ticks&&(this._state.value[0]=this.options.ticks[this._getClosestTickIndex(this._state.value[0])],this._state.value[1]=this.options.ticks[this._getClosestTickIndex(this._state.value[1])]),this._state.value[0]=Math.max(this.options.min,Math.min(this.options.max,this._state.value[0])),this._state.value[1]=Math.max(this.options.min,Math.min(this.options.max,this._state.value[1]))):(this._state.value=e(this._state.value),this.ticksAreValid&&this.options.lock_to_ticks&&(this._state.value=this.options.ticks[this._getClosestTickIndex(this._state.value)]),this._state.value=[Math.max(this.options.min,Math.min(this.options.max,this._state.value))],this._addClass(this.handle2,"hide"),"after"===this.options.selection?this._state.value[1]=this.options.max:this._state.value[1]=this.options.min),this._setTickIndex(),this.options.max>this.options.min?this._state.percentage=[this._toPercentage(this._state.value[0]),this._toPercentage(this._state.value[1]),100*this.options.step/(this.options.max-this.options.min)]:this._state.percentage=[0,0,100],this._layout();var f=this.options.range?this._state.value:this._state.value[0];this._setDataVal(f),b===!0&&this._trigger("slide",f);var g=!1;return g=Array.isArray(f)?d[0]!==f[0]||d[1]!==f[1]:d!==f,g&&c===!0&&this._trigger("change",{oldValue:d,newValue:f}),this},destroy:function(){this._removeSliderEventHandlers(),this.sliderElem.parentNode.removeChild(this.sliderElem),this.element.style.display="",this._cleanUpEventCallbacksMap(),this.element.removeAttribute("data"),a&&(this._unbindJQueryEventHandlers(),f===b&&this.$element.removeData(f),this.$element.removeData(c))},disable:function(){return this._state.enabled=!1,this.handle1.removeAttribute("tabindex"),this.handle2.removeAttribute("tabindex"),this._addClass(this.sliderElem,"slider-disabled"),this._trigger("slideDisabled"),this},enable:function(){return this._state.enabled=!0,this.handle1.setAttribute("tabindex",0),this.handle2.setAttribute("tabindex",0),this._removeClass(this.sliderElem,"slider-disabled"),this._trigger("slideEnabled"),this},toggle:function(){return this._state.enabled?this.disable():this.enable(),this},isEnabled:function(){return this._state.enabled},on:function(a,b){return this._bindNonQueryEventHandler(a,b),this},off:function(b,c){a?(this.$element.off(b,c),this.$sliderElem.off(b,c)):this._unbindNonQueryEventHandler(b,c)},getAttribute:function(a){return a?this.options[a]:this.options},setAttribute:function(a,b){return this.options[a]=b,this},refresh:function(d){var g=this.getValue();return this._removeSliderEventHandlers(),e.call(this,this.element,this.options),d&&d.useCurrentValue===!0&&this.setValue(g),a&&(f===b?(a.data(this.element,b,this),a.data(this.element,c,this)):a.data(this.element,c,this)),this},relayout:function(){return this._resize(),this},_removeTooltipListener:function(a,b){this.handle1.removeEventListener(a,b,!1),this.handle2.removeEventListener(a,b,!1)},_removeSliderEventHandlers:function(){if(this.handle1.removeEventListener("keydown",this.handle1Keydown,!1),this.handle2.removeEventListener("keydown",this.handle2Keydown,!1),this.options.ticks_tooltip){for(var a=this.ticksContainer.getElementsByClassName("slider-tick"),b=0;b<a.length;b++)a[b].removeEventListener("mouseenter",this.ticksCallbackMap[b].mouseEnter,!1),a[b].removeEventListener("mouseleave",this.ticksCallbackMap[b].mouseLeave,!1);this.handleCallbackMap.handle1&&this.handleCallbackMap.handle2&&(this.handle1.removeEventListener("mouseenter",this.handleCallbackMap.handle1.mouseEnter,!1),this.handle2.removeEventListener("mouseenter",this.handleCallbackMap.handle2.mouseEnter,!1),this.handle1.removeEventListener("mouseleave",this.handleCallbackMap.handle1.mouseLeave,!1),this.handle2.removeEventListener("mouseleave",this.handleCallbackMap.handle2.mouseLeave,!1))}this.handleCallbackMap=null,this.ticksCallbackMap=null,this.showTooltip&&this._removeTooltipListener("focus",this.showTooltip),this.hideTooltip&&this._removeTooltipListener("blur",this.hideTooltip),this.showTooltip&&this.sliderElem.removeEventListener("mouseenter",this.showTooltip,!1),this.hideTooltip&&this.sliderElem.removeEventListener("mouseleave",this.hideTooltip,!1),this.sliderElem.removeEventListener("mousedown",this.mousedown,!1),this.touchCapable&&(this.showTooltip&&(this.handle1.removeEventListener("touchstart",this.showTooltip,!1),this.handle1.removeEventListener("touchmove",this.showTooltip,!1),this.handle2.removeEventListener("touchstart",this.showTooltip,!1),this.handle2.removeEventListener("touchmove",this.showTooltip,!1)),this.hideTooltip&&(this.handle1.removeEventListener("touchend",this.hideTooltip,!1),this.handle2.removeEventListener("touchend",this.hideTooltip,!1)),this.showTooltip&&(this.sliderElem.removeEventListener("touchstart",this.showTooltip,!1),this.sliderElem.removeEventListener("touchmove",this.showTooltip,!1)),this.hideTooltip&&this.sliderElem.removeEventListener("touchend",this.hideTooltip,!1),this.sliderElem.removeEventListener("touchstart",this.touchstart,!1),this.sliderElem.removeEventListener("touchmove",this.touchmove,!1)),window.removeEventListener("resize",this.resize,!1)},_bindNonQueryEventHandler:function(a,b){void 0===this.eventToCallbackMap[a]&&(this.eventToCallbackMap[a]=[]),this.eventToCallbackMap[a].push(b)},_unbindNonQueryEventHandler:function(a,b){var c=this.eventToCallbackMap[a];if(void 0!==c)for(var d=0;d<c.length;d++)if(c[d]===b){c.splice(d,1);break}},_cleanUpEventCallbacksMap:function(){for(var a=Object.keys(this.eventToCallbackMap),b=0;b<a.length;b++){var c=a[b];delete this.eventToCallbackMap[c]}},_showTooltip:function(){this.options.tooltip_split===!1?(this._addClass(this.tooltip,"in"),this.tooltip_min.style.display="none",this.tooltip_max.style.display="none"):(this._addClass(this.tooltip_min,"in"),this._addClass(this.tooltip_max,"in"),this.tooltip.style.display="none"),this._state.over=!0},_hideTooltip:function(){this._state.inDrag===!1&&this._alwaysShowTooltip!==!0&&(this._removeClass(this.tooltip,"in"),this._removeClass(this.tooltip_min,"in"),this._removeClass(this.tooltip_max,"in")),this._state.over=!1},_setToolTipOnMouseOver:function(a){function b(a,b){return b?[100-a.percentage[0],c.options.range?100-a.percentage[1]:a.percentage[1]]:[a.percentage[0],a.percentage[1]]}var c=this,d=this.options.formatter(a?a.value[0]:this._state.value[0]),e=a?b(a,this.options.reversed):b(this._state,this.options.reversed);this._setText(this.tooltipInner,d),this.tooltip.style[this.stylePos]=e[0]+"%"},_copyState:function(){return{value:[this._state.value[0],this._state.value[1]],enabled:this._state.enabled,offset:this._state.offset,size:this._state.size,percentage:[this._state.percentage[0],this._state.percentage[1],this._state.percentage[2]],inDrag:this._state.inDrag,over:this._state.over,dragged:this._state.dragged,keyCtrl:this._state.keyCtrl}},_addTickListener:function(){return{addMouseEnter:function(a,b,c){var d=function(){var d=a._copyState(),e=b===a.handle1?d.value[0]:d.value[1],f=void 0;void 0!==c?(e=a.options.ticks[c],f=a.options.ticks_positions.length>0&&a.options.ticks_positions[c]||a._toPercentage(a.options.ticks[c])):f=a._toPercentage(e),d.value[0]=e,d.percentage[0]=f,a._setToolTipOnMouseOver(d),a._showTooltip()};return b.addEventListener("mouseenter",d,!1),d},addMouseLeave:function(a,b){var c=function(){a._hideTooltip()};return b.addEventListener("mouseleave",c,!1),c}}},_layout:function(){var a,b;if(a=this.options.reversed?[100-this._state.percentage[0],this.options.range?100-this._state.percentage[1]:this._state.percentage[1]]:[this._state.percentage[0],this._state.percentage[1]],this.handle1.style[this.stylePos]=a[0]+"%",this.handle1.setAttribute("aria-valuenow",this._state.value[0]),b=this.options.formatter(this._state.value[0]),isNaN(b)?this.handle1.setAttribute("aria-valuetext",b):this.handle1.removeAttribute("aria-valuetext"),this.handle2.style[this.stylePos]=a[1]+"%",this.handle2.setAttribute("aria-valuenow",this._state.value[1]),b=this.options.formatter(this._state.value[1]),isNaN(b)?this.handle2.setAttribute("aria-valuetext",b):this.handle2.removeAttribute("aria-valuetext"),this.rangeHighlightElements.length>0&&Array.isArray(this.options.rangeHighlights)&&this.options.rangeHighlights.length>0)for(var c=0;c<this.options.rangeHighlights.length;c++){var d=this._toPercentage(this.options.rangeHighlights[c].start),e=this._toPercentage(this.options.rangeHighlights[c].end);if(this.options.reversed){var f=100-e;e=100-d,d=f}var g=this._createHighlightRange(d,e);g?"vertical"===this.options.orientation?(this.rangeHighlightElements[c].style.top=g.start+"%",this.rangeHighlightElements[c].style.height=g.size+"%"):(this.options.rtl?this.rangeHighlightElements[c].style.right=g.start+"%":this.rangeHighlightElements[c].style.left=g.start+"%",this.rangeHighlightElements[c].style.width=g.size+"%"):this.rangeHighlightElements[c].style.display="none"}if(Array.isArray(this.options.ticks)&&this.options.ticks.length>0){var h,i="vertical"===this.options.orientation?"height":"width";h="vertical"===this.options.orientation?"marginTop":this.options.rtl?"marginRight":"marginLeft";var j=this._state.size/(this.options.ticks.length-1);if(this.tickLabelContainer){var k=0;if(0===this.options.ticks_positions.length)"vertical"!==this.options.orientation&&(this.tickLabelContainer.style[h]=-j/2+"px"),k=this.tickLabelContainer.offsetHeight;else for(l=0;l<this.tickLabelContainer.childNodes.length;l++)this.tickLabelContainer.childNodes[l].offsetHeight>k&&(k=this.tickLabelContainer.childNodes[l].offsetHeight);"horizontal"===this.options.orientation&&(this.sliderElem.style.marginBottom=k+"px")}for(var l=0;l<this.options.ticks.length;l++){var m=this.options.ticks_positions[l]||this._toPercentage(this.options.ticks[l]);this.options.reversed&&(m=100-m),this.ticks[l].style[this.stylePos]=m+"%",this._removeClass(this.ticks[l],"in-selection"),this.options.range?m>=a[0]&&m<=a[1]&&this._addClass(this.ticks[l],"in-selection"):"after"===this.options.selection&&m>=a[0]?this._addClass(this.ticks[l],"in-selection"):"before"===this.options.selection&&m<=a[0]&&this._addClass(this.ticks[l],"in-selection"),this.tickLabels[l]&&(this.tickLabels[l].style[i]=j+"px","vertical"!==this.options.orientation&&void 0!==this.options.ticks_positions[l]?(this.tickLabels[l].style.position="absolute",this.tickLabels[l].style[this.stylePos]=m+"%",this.tickLabels[l].style[h]=-j/2+"px"):"vertical"===this.options.orientation&&(this.options.rtl?this.tickLabels[l].style.marginRight=this.sliderElem.offsetWidth+"px":this.tickLabels[l].style.marginLeft=this.sliderElem.offsetWidth+"px",this.tickLabelContainer.style[h]=this.sliderElem.offsetWidth/2*-1+"px"),this._removeClass(this.tickLabels[l],"label-in-selection label-is-selection"),this.options.range?m>=a[0]&&m<=a[1]&&(this._addClass(this.tickLabels[l],"label-in-selection"),(m===a[0]||a[1])&&this._addClass(this.tickLabels[l],"label-is-selection")):("after"===this.options.selection&&m>=a[0]?this._addClass(this.tickLabels[l],"label-in-selection"):"before"===this.options.selection&&m<=a[0]&&this._addClass(this.tickLabels[l],"label-in-selection"),m===a[0]&&this._addClass(this.tickLabels[l],"label-is-selection")))}}var n;if(this.options.range){n=this.options.formatter(this._state.value),this._setText(this.tooltipInner,n),this.tooltip.style[this.stylePos]=(a[1]+a[0])/2+"%";var o=this.options.formatter(this._state.value[0]);this._setText(this.tooltipInner_min,o);var p=this.options.formatter(this._state.value[1]);this._setText(this.tooltipInner_max,p),this.tooltip_min.style[this.stylePos]=a[0]+"%",this.tooltip_max.style[this.stylePos]=a[1]+"%"}else n=this.options.formatter(this._state.value[0]),this._setText(this.tooltipInner,n),this.tooltip.style[this.stylePos]=a[0]+"%";if("vertical"===this.options.orientation)this.trackLow.style.top="0",this.trackLow.style.height=Math.min(a[0],a[1])+"%",this.trackSelection.style.top=Math.min(a[0],a[1])+"%",this.trackSelection.style.height=Math.abs(a[0]-a[1])+"%",this.trackHigh.style.bottom="0",this.trackHigh.style.height=100-Math.min(a[0],a[1])-Math.abs(a[0]-a[1])+"%";else{"right"===this.stylePos?this.trackLow.style.right="0":this.trackLow.style.left="0",this.trackLow.style.width=Math.min(a[0],a[1])+"%","right"===this.stylePos?this.trackSelection.style.right=Math.min(a[0],a[1])+"%":this.trackSelection.style.left=Math.min(a[0],a[1])+"%",this.trackSelection.style.width=Math.abs(a[0]-a[1])+"%","right"===this.stylePos?this.trackHigh.style.left="0":this.trackHigh.style.right="0",this.trackHigh.style.width=100-Math.min(a[0],a[1])-Math.abs(a[0]-a[1])+"%";var q=this.tooltip_min.getBoundingClientRect(),r=this.tooltip_max.getBoundingClientRect();"bottom"===this.options.tooltip_position?q.right>r.left?(this._removeClass(this.tooltip_max,"bottom"),this._addClass(this.tooltip_max,"top"),this.tooltip_max.style.top="",this.tooltip_max.style.bottom="22px"):(this._removeClass(this.tooltip_max,"top"),this._addClass(this.tooltip_max,"bottom"),this.tooltip_max.style.top=this.tooltip_min.style.top,this.tooltip_max.style.bottom=""):q.right>r.left?(this._removeClass(this.tooltip_max,"top"),this._addClass(this.tooltip_max,"bottom"),this.tooltip_max.style.top="18px"):(this._removeClass(this.tooltip_max,"bottom"),this._addClass(this.tooltip_max,"top"),this.tooltip_max.style.top=this.tooltip_min.style.top)}},_createHighlightRange:function(a,b){return this._isHighlightRange(a,b)?a>b?{start:b,size:a-b}:{start:a,size:b-a}:null},_isHighlightRange:function(a,b){return a>=0&&100>=a&&b>=0&&100>=b?!0:!1},_resize:function(a){this._state.offset=this._offset(this.sliderElem),this._state.size=this.sliderElem[this.sizePos],this._layout()},_removeProperty:function(a,b){a.style.removeProperty?a.style.removeProperty(b):a.style.removeAttribute(b)},_mousedown:function(a){if(!this._state.enabled)return!1;a.preventDefault&&a.preventDefault(),this._state.offset=this._offset(this.sliderElem),this._state.size=this.sliderElem[this.sizePos];var b=this._getPercentage(a);if(this.options.range){var c=Math.abs(this._state.percentage[0]-b),d=Math.abs(this._state.percentage[1]-b);this._state.dragged=d>c?0:1,this._adjustPercentageForRangeSliders(b)}else this._state.dragged=0;this._state.percentage[this._state.dragged]=b,this.touchCapable&&(document.removeEventListener("touchmove",this.mousemove,!1),document.removeEventListener("touchend",this.mouseup,!1)),this.mousemove&&document.removeEventListener("mousemove",this.mousemove,!1),this.mouseup&&document.removeEventListener("mouseup",this.mouseup,!1),this.mousemove=this._mousemove.bind(this),this.mouseup=this._mouseup.bind(this),this.touchCapable&&(document.addEventListener("touchmove",this.mousemove,!1),document.addEventListener("touchend",this.mouseup,!1)),document.addEventListener("mousemove",this.mousemove,!1),document.addEventListener("mouseup",this.mouseup,!1),this._state.inDrag=!0;var e=this._calculateValue();return this._trigger("slideStart",e),this.setValue(e,!1,!0),a.returnValue=!1,this.options.focus&&this._triggerFocusOnHandle(this._state.dragged),!0},_touchstart:function(a){this._mousedown(a)},_triggerFocusOnHandle:function(a){0===a&&this.handle1.focus(),1===a&&this.handle2.focus()},_keydown:function(a,b){if(!this._state.enabled)return!1;var c;switch(b.keyCode){case 37:case 40:c=-1;break;case 39:case 38:c=1}if(c){if(this.options.natural_arrow_keys){var d="horizontal"===this.options.orientation,e="vertical"===this.options.orientation,f=this.options.rtl,g=this.options.reversed;d?f?g||(c=-c):g&&(c=-c):e&&(g||(c=-c))}var h;if(this.ticksAreValid&&this.options.lock_to_ticks){var i=void 0;i=this.options.ticks.indexOf(this._state.value[a]),-1===i&&(i=0,window.console.warn("(lock_to_ticks) _keydown: index should not be -1")),i+=c,i=Math.max(0,Math.min(this.options.ticks.length-1,i)),h=this.options.ticks[i]}else h=this._state.value[a]+c*this.options.step;var j=this._toPercentage(h);if(this._state.keyCtrl=a,this.options.range){this._adjustPercentageForRangeSliders(j);var k=this._state.keyCtrl?this._state.value[0]:h,l=this._state.keyCtrl?h:this._state.value[1];h=[Math.max(this.options.min,Math.min(this.options.max,k)),Math.max(this.options.min,Math.min(this.options.max,l))]}else h=Math.max(this.options.min,Math.min(this.options.max,h));return this._trigger("slideStart",h),this.setValue(h,!0,!0),this._trigger("slideStop",h),this._pauseEvent(b),delete this._state.keyCtrl,!1}},_pauseEvent:function(a){a.stopPropagation&&a.stopPropagation(),a.preventDefault&&a.preventDefault(),a.cancelBubble=!0,a.returnValue=!1},_mousemove:function(a){if(!this._state.enabled)return!1;
-var b=this._getPercentage(a);this._adjustPercentageForRangeSliders(b),this._state.percentage[this._state.dragged]=b;var c=this._calculateValue(!0);return this.setValue(c,!0,!0),!1},_touchmove:function(a){void 0!==a.changedTouches&&a.preventDefault&&a.preventDefault()},_adjustPercentageForRangeSliders:function(a){if(this.options.range){var b=this._getNumDigitsAfterDecimalPlace(a);b=b?b-1:0;var c=this._applyToFixedAndParseFloat(a,b);0===this._state.dragged&&this._applyToFixedAndParseFloat(this._state.percentage[1],b)<c?(this._state.percentage[0]=this._state.percentage[1],this._state.dragged=1):1===this._state.dragged&&this._applyToFixedAndParseFloat(this._state.percentage[0],b)>c?(this._state.percentage[1]=this._state.percentage[0],this._state.dragged=0):0===this._state.keyCtrl&&this._toPercentage(this._state.value[1])<a?(this._state.percentage[0]=this._state.percentage[1],this._state.keyCtrl=1,this.handle2.focus()):1===this._state.keyCtrl&&this._toPercentage(this._state.value[0])>a&&(this._state.percentage[1]=this._state.percentage[0],this._state.keyCtrl=0,this.handle1.focus())}},_mouseup:function(a){if(!this._state.enabled)return!1;var b=this._getPercentage(a);this._adjustPercentageForRangeSliders(b),this._state.percentage[this._state.dragged]=b,this.touchCapable&&(document.removeEventListener("touchmove",this.mousemove,!1),document.removeEventListener("touchend",this.mouseup,!1)),document.removeEventListener("mousemove",this.mousemove,!1),document.removeEventListener("mouseup",this.mouseup,!1),this._state.inDrag=!1,this._state.over===!1&&this._hideTooltip();var c=this._calculateValue(!0);return this.setValue(c,!1,!0),this._trigger("slideStop",c),this._state.dragged=null,!1},_setValues:function(a,b){var c=0===a?0:100;this._state.percentage[a]!==c&&(b.data[a]=this._toValue(this._state.percentage[a]),b.data[a]=this._applyPrecision(b.data[a]))},_calculateValue:function(a){var b={};return this.options.range?(b.data=[this.options.min,this.options.max],this._setValues(0,b),this._setValues(1,b),a&&(b.data[0]=this._snapToClosestTick(b.data[0]),b.data[1]=this._snapToClosestTick(b.data[1]))):(b.data=this._toValue(this._state.percentage[0]),b.data=parseFloat(b.data),b.data=this._applyPrecision(b.data),a&&(b.data=this._snapToClosestTick(b.data))),b.data},_snapToClosestTick:function(a){for(var b=[a,1/0],c=0;c<this.options.ticks.length;c++){var d=Math.abs(this.options.ticks[c]-a);d<=b[1]&&(b=[this.options.ticks[c],d])}return b[1]<=this.options.ticks_snap_bounds?b[0]:a},_applyPrecision:function(a){var b=this.options.precision||this._getNumDigitsAfterDecimalPlace(this.options.step);return this._applyToFixedAndParseFloat(a,b)},_getNumDigitsAfterDecimalPlace:function(a){var b=(""+a).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return b?Math.max(0,(b[1]?b[1].length:0)-(b[2]?+b[2]:0)):0},_applyToFixedAndParseFloat:function(a,b){var c=a.toFixed(b);return parseFloat(c)},_getPercentage:function(a){!this.touchCapable||"touchstart"!==a.type&&"touchmove"!==a.type&&"touchend"!==a.type||(a=a.changedTouches[0]);var b=a[this.mousePos],c=this._state.offset[this.stylePos],d=b-c;"right"===this.stylePos&&(d=-d);var e=d/this._state.size*100;return e=Math.round(e/this._state.percentage[2])*this._state.percentage[2],this.options.reversed&&(e=100-e),Math.max(0,Math.min(100,e))},_validateInputValue:function(a){if(isNaN(+a)){if(Array.isArray(a))return this._validateArray(a),a;throw new Error(g.formatInvalidInputErrorMsg(a))}return+a},_validateArray:function(a){for(var b=0;b<a.length;b++){var c=a[b];if("number"!=typeof c)throw new Error(g.formatInvalidInputErrorMsg(c))}},_setDataVal:function(a){this.element.setAttribute("data-value",a),this.element.setAttribute("value",a),this.element.value=a},_trigger:function(b,c){c=c||0===c?c:void 0;var d=this.eventToCallbackMap[b];if(d&&d.length)for(var e=0;e<d.length;e++){var f=d[e];f(c)}a&&this._triggerJQueryEvent(b,c)},_triggerJQueryEvent:function(a,b){var c={type:a,value:b};this.$element.trigger(c),this.$sliderElem.trigger(c)},_unbindJQueryEventHandlers:function(){this.$element.off(),this.$sliderElem.off()},_setText:function(a,b){"undefined"!=typeof a.textContent?a.textContent=b:"undefined"!=typeof a.innerText&&(a.innerText=b)},_removeClass:function(a,b){for(var c=b.split(" "),d=a.className,e=0;e<c.length;e++){var f=c[e],g=new RegExp("(?:\\s|^)"+f+"(?:\\s|$)");d=d.replace(g," ")}a.className=d.trim()},_addClass:function(a,b){for(var c=b.split(" "),d=a.className,e=0;e<c.length;e++){var f=c[e],g=new RegExp("(?:\\s|^)"+f+"(?:\\s|$)"),h=g.test(d);h||(d+=" "+f)}a.className=d.trim()},_offsetLeft:function(a){return a.getBoundingClientRect().left},_offsetRight:function(a){return a.getBoundingClientRect().right},_offsetTop:function(a){for(var b=a.offsetTop;(a=a.offsetParent)&&!isNaN(a.offsetTop);)b+=a.offsetTop,"BODY"!==a.tagName&&(b-=a.scrollTop);return b},_offset:function(a){return{left:this._offsetLeft(a),right:this._offsetRight(a),top:this._offsetTop(a)}},_css:function(b,c,d){if(a)a.style(b,c,d);else{var e=c.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(a,b){return b.toUpperCase()});b.style[e]=d}},_toValue:function(a){return this.options.scale.toValue.apply(this,[a])},_toPercentage:function(a){return this.options.scale.toPercentage.apply(this,[a])},_setTooltipPosition:function(){var a=[this.tooltip,this.tooltip_min,this.tooltip_max];if("vertical"===this.options.orientation){var b;b=this.options.tooltip_position?this.options.tooltip_position:this.options.rtl?"left":"right";var c="left"===b?"right":"left";a.forEach(function(a){this._addClass(a,b),a.style[c]="100%"}.bind(this))}else"bottom"===this.options.tooltip_position?a.forEach(function(a){this._addClass(a,"bottom"),a.style.top="22px"}.bind(this)):a.forEach(function(a){this._addClass(a,"top"),a.style.top=-this.tooltip.outerHeight-14+"px"}.bind(this))},_getClosestTickIndex:function(a){for(var b=Math.abs(a-this.options.ticks[0]),c=0,d=0;d<this.options.ticks.length;++d){var e=Math.abs(a-this.options.ticks[d]);b>e&&(b=e,c=d)}return c},_setTickIndex:function(){this.ticksAreValid&&(this._state.tickIndex=[this.options.ticks.indexOf(this._state.value[0]),this.options.ticks.indexOf(this._state.value[1])])}},a&&a.fn&&(a.fn.slider?(windowIsDefined&&window.console.warn("bootstrap-slider.js - WARNING: $.fn.slider namespace is already bound. Use the $.fn.bootstrapSlider namespace instead."),f=c):(a.bridget(b,d),f=b),a.bridget(c,d),a(function(){a("input[data-provide=slider]")[f]()}))}(a),d});
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/js/build/003-slider.min.js b/mailcow/src/mailcow-dockerized/data/web/js/build/003-slider.min.js
new file mode 100644
index 0000000..f04ef59
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/js/build/003-slider.min.js
@@ -0,0 +1 @@
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).noUiSlider={})}(this,function(st){"use strict";var t,e;function n(t){return"object"==typeof t&&"function"==typeof t.to&&"function"==typeof t.from}function at(t){t.parentElement.removeChild(t)}function lt(t){return null!=t}function ut(t){t.preventDefault()}function o(t){return"number"==typeof t&&!isNaN(t)&&isFinite(t)}function ct(t,e,r){0<r&&(dt(t,e),setTimeout(function(){ht(t,e)},r))}function pt(t){return Math.max(Math.min(t,100),0)}function ft(t){return Array.isArray(t)?t:[t]}function r(t){var e=(t=String(t)).split(".");return 1<e.length?e[1].length:0}function dt(t,e){t.classList&&!/\s/.test(e)?t.classList.add(e):t.className+=" "+e}function ht(t,e){t.classList&&!/\s/.test(e)?t.classList.remove(e):t.className=t.className.replace(new RegExp("(^|\\b)"+e.split(" ").join("|")+"(\\b|$)","gi")," ")}function mt(t){var e=void 0!==window.pageXOffset,r="CSS1Compat"===(t.compatMode||"");return{x:e?window.pageXOffset:r?t.documentElement.scrollLeft:t.body.scrollLeft,y:e?window.pageYOffset:r?t.documentElement.scrollTop:t.body.scrollTop}}function c(t,e){return 100/(e-t)}function p(t,e,r){return 100*e/(t[r+1]-t[r])}function f(t,e){for(var r=1;t>=e[r];)r+=1;return r}function i(t,e,r){if(r>=t.slice(-1)[0])return 100;var n,i,o=f(r,t),s=t[o-1],a=t[o],l=e[o-1],u=e[o];return l+(i=r,p(n=[s,a],n[0]<0?i+Math.abs(n[0]):i-n[0],0)/c(l,u))}function s(t,e,r,n){if(100===n)return n;var i,o,s=f(n,t),a=t[s-1],l=t[s];return r?(l-a)/2<n-a?l:a:e[s-1]?t[s-1]+(i=n-t[s-1],o=e[s-1],Math.round(i/o)*o):n}st.PipsMode=void 0,(t=st.PipsMode||(st.PipsMode={})).Range="range",t.Steps="steps",t.Positions="positions",t.Count="count",t.Values="values",st.PipsType=void 0,(e=st.PipsType||(st.PipsType={}))[e.None=-1]="None",e[e.NoValue=0]="NoValue",e[e.LargeValue=1]="LargeValue",e[e.SmallValue=2]="SmallValue";var a=function(){function t(e,t,r){var n;this.xPct=[],this.xVal=[],this.xSteps=[],this.xNumSteps=[],this.xHighestCompleteStep=[],this.xSteps=[r||!1],this.xNumSteps=[!1],this.snap=t;var i=[];for(Object.keys(e).forEach(function(t){i.push([ft(e[t]),t])}),i.sort(function(t,e){return t[0][0]-e[0][0]}),n=0;n<i.length;n++)this.handleEntryPoint(i[n][1],i[n][0]);for(this.xNumSteps=this.xSteps.slice(0),n=0;n<this.xNumSteps.length;n++)this.handleStepPoint(n,this.xNumSteps[n])}return t.prototype.getDistance=function(t){var e,r=[];for(e=0;e<this.xNumSteps.length-1;e++){var n=this.xNumSteps[e];if(n&&t/n%1!=0)throw new Error("noUiSlider: 'limit', 'margin' and 'padding' of "+this.xPct[e]+"% range must be divisible by step.");r[e]=p(this.xVal,t,e)}return r},t.prototype.getAbsoluteDistance=function(t,e,r){var n,i=0;if(t<this.xPct[this.xPct.length-1])for(;t>this.xPct[i+1];)i++;else t===this.xPct[this.xPct.length-1]&&(i=this.xPct.length-2);r||t!==this.xPct[i+1]||i++,null===e&&(e=[]);var o=1,s=e[i],a=0,l=0,u=0,c=0;for(n=r?(t-this.xPct[i])/(this.xPct[i+1]-this.xPct[i]):(this.xPct[i+1]-t)/(this.xPct[i+1]-this.xPct[i]);0<s;)a=this.xPct[i+1+c]-this.xPct[i+c],100<e[i+c]*o+100-100*n?(l=a*n,o=(s-100*n)/e[i+c],n=1):(l=e[i+c]*a/100*o,o=0),r?(u-=l,1<=this.xPct.length+c&&c--):(u+=l,1<=this.xPct.length-c&&c++),s=e[i+c]*o;return t+u},t.prototype.toStepping=function(t){return t=i(this.xVal,this.xPct,t)},t.prototype.fromStepping=function(t){return function(t,e,r){if(100<=r)return t.slice(-1)[0];var n,i=f(r,e),o=t[i-1],s=t[i],a=e[i-1],l=e[i];return n=[o,s],(r-a)*c(a,l)*(n[1]-n[0])/100+n[0]}(this.xVal,this.xPct,t)},t.prototype.getStep=function(t){return t=s(this.xPct,this.xSteps,this.snap,t)},t.prototype.getDefaultStep=function(t,e,r){var n=f(t,this.xPct);return(100===t||e&&t===this.xPct[n-1])&&(n=Math.max(n-1,1)),(this.xVal[n]-this.xVal[n-1])/r},t.prototype.getNearbySteps=function(t){var e=f(t,this.xPct);return{stepBefore:{startValue:this.xVal[e-2],step:this.xNumSteps[e-2],highestStep:this.xHighestCompleteStep[e-2]},thisStep:{startValue:this.xVal[e-1],step:this.xNumSteps[e-1],highestStep:this.xHighestCompleteStep[e-1]},stepAfter:{startValue:this.xVal[e],step:this.xNumSteps[e],highestStep:this.xHighestCompleteStep[e]}}},t.prototype.countStepDecimals=function(){var t=this.xNumSteps.map(r);return Math.max.apply(null,t)},t.prototype.convert=function(t){return this.getStep(this.toStepping(t))},t.prototype.handleEntryPoint=function(t,e){var r;if(!o(r="min"===t?0:"max"===t?100:parseFloat(t))||!o(e[0]))throw new Error("noUiSlider: 'range' value isn't numeric.");this.xPct.push(r),this.xVal.push(e[0]);var n=Number(e[1]);r?this.xSteps.push(!isNaN(n)&&n):isNaN(n)||(this.xSteps[0]=n),this.xHighestCompleteStep.push(0)},t.prototype.handleStepPoint=function(t,e){if(e)if(this.xVal[t]!==this.xVal[t+1]){this.xSteps[t]=p([this.xVal[t],this.xVal[t+1]],e,0)/c(this.xPct[t],this.xPct[t+1]);var r=(this.xVal[t+1]-this.xVal[t])/this.xNumSteps[t],n=Math.ceil(Number(r.toFixed(3))-1),i=this.xVal[t]+this.xNumSteps[t]*n;this.xHighestCompleteStep[t]=i}else this.xSteps[t]=this.xHighestCompleteStep[t]=this.xVal[t]},t}(),l={to:function(t){return void 0===t?"":t.toFixed(2)},from:Number},u={target:"target",base:"base",origin:"origin",handle:"handle",handleLower:"handle-lower",handleUpper:"handle-upper",touchArea:"touch-area",horizontal:"horizontal",vertical:"vertical",background:"background",connect:"connect",connects:"connects",ltr:"ltr",rtl:"rtl",textDirectionLtr:"txt-dir-ltr",textDirectionRtl:"txt-dir-rtl",draggable:"draggable",drag:"state-drag",tap:"state-tap",active:"active",tooltip:"tooltip",pips:"pips",pipsHorizontal:"pips-horizontal",pipsVertical:"pips-vertical",marker:"marker",markerHorizontal:"marker-horizontal",markerVertical:"marker-vertical",markerNormal:"marker-normal",markerLarge:"marker-large",markerSub:"marker-sub",value:"value",valueHorizontal:"value-horizontal",valueVertical:"value-vertical",valueNormal:"value-normal",valueLarge:"value-large",valueSub:"value-sub"},gt={tooltips:".__tooltips",aria:".__aria"};function d(t){if(n(t))return!0;throw new Error("noUiSlider: 'format' requires 'to' and 'from' methods.")}function h(t,e){if(!o(e))throw new Error("noUiSlider: 'step' is not numeric.");t.singleStep=e}function m(t,e){if(!o(e))throw new Error("noUiSlider: 'keyboardPageMultiplier' is not numeric.");t.keyboardPageMultiplier=e}function g(t,e){if(!o(e))throw new Error("noUiSlider: 'keyboardDefaultStep' is not numeric.");t.keyboardDefaultStep=e}function v(t,e){if("object"!=typeof e||Array.isArray(e))throw new Error("noUiSlider: 'range' is not an object.");if(void 0===e.min||void 0===e.max)throw new Error("noUiSlider: Missing 'min' or 'max' in 'range'.");if(e.min===e.max)throw new Error("noUiSlider: 'range' 'min' and 'max' cannot be equal.");t.spectrum=new a(e,t.snap||!1,t.singleStep)}function b(t,e){if(e=ft(e),!Array.isArray(e)||!e.length)throw new Error("noUiSlider: 'start' option is incorrect.");t.handles=e.length,t.start=e}function S(t,e){if("boolean"!=typeof e)throw new Error("noUiSlider: 'snap' option must be a boolean.");t.snap=e}function x(t,e){if("boolean"!=typeof e)throw new Error("noUiSlider: 'animate' option must be a boolean.");t.animate=e}function y(t,e){if("number"!=typeof e)throw new Error("noUiSlider: 'animationDuration' option must be a number.");t.animationDuration=e}function w(t,e){var r,n=[!1];if("lower"===e?e=[!0,!1]:"upper"===e&&(e=[!1,!0]),!0===e||!1===e){for(r=1;r<t.handles;r++)n.push(e);n.push(!1)}else{if(!Array.isArray(e)||!e.length||e.length!==t.handles+1)throw new Error("noUiSlider: 'connect' option doesn't match handle count.");n=e}t.connect=n}function E(t,e){switch(e){case"horizontal":t.ort=0;break;case"vertical":t.ort=1;break;default:throw new Error("noUiSlider: 'orientation' option is invalid.")}}function P(t,e){if(!o(e))throw new Error("noUiSlider: 'margin' option must be numeric.");0!==e&&(t.margin=t.spectrum.getDistance(e))}function C(t,e){if(!o(e))throw new Error("noUiSlider: 'limit' option must be numeric.");if(t.limit=t.spectrum.getDistance(e),!t.limit||t.handles<2)throw new Error("noUiSlider: 'limit' option is only supported on linear sliders with 2 or more handles.")}function N(t,e){var r;if(!o(e)&&!Array.isArray(e))throw new Error("noUiSlider: 'padding' option must be numeric or array of exactly 2 numbers.");if(Array.isArray(e)&&2!==e.length&&!o(e[0])&&!o(e[1]))throw new Error("noUiSlider: 'padding' option must be numeric or array of exactly 2 numbers.");if(0!==e){for(Array.isArray(e)||(e=[e,e]),t.padding=[t.spectrum.getDistance(e[0]),t.spectrum.getDistance(e[1])],r=0;r<t.spectrum.xNumSteps.length-1;r++)if(t.padding[0][r]<0||t.padding[1][r]<0)throw new Error("noUiSlider: 'padding' option must be a positive number(s).");var n=e[0]+e[1],i=t.spectrum.xVal[0];if(1<n/(t.spectrum.xVal[t.spectrum.xVal.length-1]-i))throw new Error("noUiSlider: 'padding' option must not exceed 100% of the range.")}}function V(t,e){switch(e){case"ltr":t.dir=0;break;case"rtl":t.dir=1;break;default:throw new Error("noUiSlider: 'direction' option was not recognized.")}}function k(t,e){if("string"!=typeof e)throw new Error("noUiSlider: 'behaviour' must be a string containing options.");var r=0<=e.indexOf("tap"),n=0<=e.indexOf("drag"),i=0<=e.indexOf("fixed"),o=0<=e.indexOf("snap"),s=0<=e.indexOf("hover"),a=0<=e.indexOf("unconstrained");if(i){if(2!==t.handles)throw new Error("noUiSlider: 'fixed' behaviour must be used with 2 handles");P(t,t.start[1]-t.start[0])}if(a&&(t.margin||t.limit))throw new Error("noUiSlider: 'unconstrained' behaviour cannot be used with margin or limit");t.events={tap:r||o,drag:n,fixed:i,snap:o,hover:s,unconstrained:a}}function U(t,e){if(!1!==e)if(!0===e||n(e)){t.tooltips=[];for(var r=0;r<t.handles;r++)t.tooltips.push(e)}else{if((e=ft(e)).length!==t.handles)throw new Error("noUiSlider: must pass a formatter for all handles.");e.forEach(function(t){if("boolean"!=typeof t&&("object"!=typeof t||"function"!=typeof t.to))throw new Error("noUiSlider: 'tooltips' must be passed a formatter or 'false'.")}),t.tooltips=e}}function M(t,e){d(e),t.ariaFormat=e}function A(t,e){d(e),t.format=e}function D(t,e){if("boolean"!=typeof e)throw new Error("noUiSlider: 'keyboardSupport' option must be a boolean.");t.keyboardSupport=e}function L(t,e){t.documentElement=e}function T(t,e){if("string"!=typeof e&&!1!==e)throw new Error("noUiSlider: 'cssPrefix' must be a string or `false`.");t.cssPrefix=e}function O(e,r){if("object"!=typeof r)throw new Error("noUiSlider: 'cssClasses' must be an object.");"string"==typeof e.cssPrefix?(e.cssClasses={},Object.keys(r).forEach(function(t){e.cssClasses[t]=e.cssPrefix+r[t]})):e.cssClasses=r}function vt(e){var r={margin:null,limit:null,padding:null,animate:!0,animationDuration:300,ariaFormat:l,format:l},n={step:{r:!1,t:h},keyboardPageMultiplier:{r:!1,t:m},keyboardDefaultStep:{r:!1,t:g},start:{r:!0,t:b},connect:{r:!0,t:w},direction:{r:!0,t:V},snap:{r:!1,t:S},animate:{r:!1,t:x},animationDuration:{r:!1,t:y},range:{r:!0,t:v},orientation:{r:!1,t:E},margin:{r:!1,t:P},limit:{r:!1,t:C},padding:{r:!1,t:N},behaviour:{r:!0,t:k},ariaFormat:{r:!1,t:M},format:{r:!1,t:A},tooltips:{r:!1,t:U},keyboardSupport:{r:!0,t:D},documentElement:{r:!1,t:L},cssPrefix:{r:!0,t:T},cssClasses:{r:!0,t:O}},i={connect:!1,direction:"ltr",behaviour:"tap",orientation:"horizontal",keyboardSupport:!0,cssPrefix:"noUi-",cssClasses:u,keyboardPageMultiplier:5,keyboardDefaultStep:10};e.format&&!e.ariaFormat&&(e.ariaFormat=e.format),Object.keys(n).forEach(function(t){if(lt(e[t])||void 0!==i[t])n[t].t(r,lt(e[t])?e[t]:i[t]);else if(n[t].r)throw new Error("noUiSlider: '"+t+"' is required.")}),r.pips=e.pips;var t=document.createElement("div"),o=void 0!==t.style.msTransform,s=void 0!==t.style.transform;r.transformRule=s?"transform":o?"msTransform":"webkitTransform";return r.style=[["left","top"],["right","bottom"]][r.dir][r.ort],r}function j(t,b,o){var l,u,s,i,a,e,c,p=window.navigator.pointerEnabled?{start:"pointerdown",move:"pointermove",end:"pointerup"}:window.navigator.msPointerEnabled?{start:"MSPointerDown",move:"MSPointerMove",end:"MSPointerUp"}:{start:"mousedown touchstart",move:"mousemove touchmove",end:"mouseup touchend"},f=window.CSS&&CSS.supports&&CSS.supports("touch-action","none")&&function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("test",null,e)}catch(t){}return t}(),d=t,y=b.spectrum,S=[],x=[],h=[],m=0,g={},v=t.ownerDocument,w=b.documentElement||v.documentElement,E=v.body,P="rtl"===v.dir||1===b.ort?0:100;function C(t,e){var r=v.createElement("div");return e&&dt(r,e),t.appendChild(r),r}function N(t,e){var r=C(t,b.cssClasses.origin),n=C(r,b.cssClasses.handle);return C(n,b.cssClasses.touchArea),n.setAttribute("data-handle",String(e)),b.keyboardSupport&&(n.setAttribute("tabindex","0"),n.addEventListener("keydown",function(t){return function(t,e){if(k()||U(e))return!1;var r=["Left","Right"],n=["Down","Up"],i=["PageDown","PageUp"],o=["Home","End"];b.dir&&!b.ort?r.reverse():b.ort&&!b.dir&&(n.reverse(),i.reverse());var s,a=t.key.replace("Arrow",""),l=a===i[0],u=a===i[1],c=a===n[0]||a===r[0]||l,p=a===n[1]||a===r[1]||u,f=a===o[0],d=a===o[1];if(!(c||p||f||d))return!0;if(t.preventDefault(),p||c){var h=b.keyboardPageMultiplier,m=c?0:1,g=it(e),v=g[m];if(null===v)return!1;!1===v&&(v=y.getDefaultStep(x[e],c,b.keyboardDefaultStep)),(u||l)&&(v*=h),v=Math.max(v,1e-7),v*=c?-1:1,s=S[e]+v}else s=d?b.spectrum.xVal[b.spectrum.xVal.length-1]:b.spectrum.xVal[0];return Z(e,y.toStepping(s),!0,!0),W("slide",e),W("update",e),W("change",e),W("set",e),!1}(t,e)})),n.setAttribute("role","slider"),n.setAttribute("aria-orientation",b.ort?"vertical":"horizontal"),0===e?dt(n,b.cssClasses.handleLower):e===b.handles-1&&dt(n,b.cssClasses.handleUpper),r}function V(t,e){return!!e&&C(t,b.cssClasses.connect)}function r(t,e){return!(!b.tooltips||!b.tooltips[e])&&C(t.firstChild,b.cssClasses.tooltip)}function k(){return d.hasAttribute("disabled")}function U(t){return u[t].hasAttribute("disabled")}function M(){a&&(I("update"+gt.tooltips),a.forEach(function(t){t&&at(t)}),a=null)}function A(){M(),a=u.map(r),Y("update"+gt.tooltips,function(t,e,r){if(a&&b.tooltips&&!1!==a[e]){var n=t[e];!0!==b.tooltips[e]&&(n=b.tooltips[e].to(r[e])),a[e].innerHTML=n}})}function D(t,e){return t.map(function(t){return y.fromStepping(e?y.getStep(t):t)})}function L(m){var g=function(t){if(t.mode===st.PipsMode.Range||t.mode===st.PipsMode.Steps)return y.xVal;if(t.mode!==st.PipsMode.Count)return t.mode===st.PipsMode.Positions?D(t.values,t.stepped):t.mode===st.PipsMode.Values?t.stepped?t.values.map(function(t){return y.fromStepping(y.getStep(y.toStepping(t)))}):t.values:[];if(t.values<2)throw new Error("noUiSlider: 'values' (>= 2) required for mode 'count'.");for(var e=t.values-1,r=100/e,n=[];e--;)n[e]=e*r;return n.push(100),D(n,t.stepped)}(m),v={},t=y.xVal[0],e=y.xVal[y.xVal.length-1],b=!1,S=!1,x=0;return(g=g.slice().sort(function(t,e){return t-e}).filter(function(t){return!this[t]&&(this[t]=!0)},{}))[0]!==t&&(g.unshift(t),b=!0),g[g.length-1]!==e&&(g.push(e),S=!0),g.forEach(function(t,e){var r,n,i,o,s,a,l,u,c,p,f=t,d=g[e+1],h=m.mode===st.PipsMode.Steps;for(h&&(r=y.xNumSteps[e]),r||(r=d-f),void 0===d&&(d=f),r=Math.max(r,1e-7),n=f;n<=d;n=Number((n+r).toFixed(7))){for(u=(s=(o=y.toStepping(n))-x)/(m.density||1),p=s/(c=Math.round(u)),i=1;i<=c;i+=1)v[(a=x+i*p).toFixed(5)]=[y.fromStepping(a),0];l=-1<g.indexOf(n)?st.PipsType.LargeValue:h?st.PipsType.SmallValue:st.PipsType.NoValue,!e&&b&&n!==d&&(l=0),n===d&&S||(v[o.toFixed(5)]=[n,l]),x=o}}),v}function T(e,i,o){var t,r,s=v.createElement("div"),a=((t={})[st.PipsType.None]="",t[st.PipsType.NoValue]=b.cssClasses.valueNormal,t[st.PipsType.LargeValue]=b.cssClasses.valueLarge,t[st.PipsType.SmallValue]=b.cssClasses.valueSub,t),l=((r={})[st.PipsType.None]="",r[st.PipsType.NoValue]=b.cssClasses.markerNormal,r[st.PipsType.LargeValue]=b.cssClasses.markerLarge,r[st.PipsType.SmallValue]=b.cssClasses.markerSub,r),u=[b.cssClasses.valueHorizontal,b.cssClasses.valueVertical],c=[b.cssClasses.markerHorizontal,b.cssClasses.markerVertical];function p(t,e){var r=e===b.cssClasses.value,n=r?a:l;return e+" "+(r?u:c)[b.ort]+" "+n[t]}return dt(s,b.cssClasses.pips),dt(s,0===b.ort?b.cssClasses.pipsHorizontal:b.cssClasses.pipsVertical),Object.keys(e).forEach(function(t){!function(t,e,r){if((r=i?i(e,r):r)!==st.PipsType.None){var n=C(s,!1);n.className=p(r,b.cssClasses.marker),n.style[b.style]=t+"%",r>st.PipsType.NoValue&&((n=C(s,!1)).className=p(r,b.cssClasses.value),n.setAttribute("data-value",String(e)),n.style[b.style]=t+"%",n.innerHTML=String(o.to(e)))}}(t,e[t][0],e[t][1])}),s}function O(){i&&(at(i),i=null)}function j(t){O();var e=L(t),r=t.filter,n=t.format||{to:function(t){return String(Math.round(t))},from:Number};return i=d.appendChild(T(e,r,n))}function z(){var t=l.getBoundingClientRect(),e="offset"+["Width","Height"][b.ort];return 0===b.ort?t.width||l[e]:t.height||l[e]}function H(i,o,s,a){var e=function(t){var e,r,n=function(r,t,n){var e=0===r.type.indexOf("touch"),i=0===r.type.indexOf("mouse"),o=0===r.type.indexOf("pointer"),s=0,a=0;0===r.type.indexOf("MSPointer")&&(o=!0);if("mousedown"===r.type&&!r.buttons&&!r.touches)return!1;if(e){var l=function(t){var e=t.target;return e===n||n.contains(e)||r.composed&&r.composedPath().shift()===n};if("touchstart"===r.type){var u=Array.prototype.filter.call(r.touches,l);if(1<u.length)return!1;s=u[0].pageX,a=u[0].pageY}else{var c=Array.prototype.find.call(r.changedTouches,l);if(!c)return!1;s=c.pageX,a=c.pageY}}t=t||mt(v),(i||o)&&(s=r.clientX+t.x,a=r.clientY+t.y);return r.pageOffset=t,r.points=[s,a],r.cursor=i||o,r}(t,a.pageOffset,a.target||o);return!!n&&(!(k()&&!a.doNotReject)&&(e=d,r=b.cssClasses.tap,!((e.classList?e.classList.contains(r):new RegExp("\\b"+r+"\\b").test(e.className))&&!a.doNotReject)&&(!(i===p.start&&void 0!==n.buttons&&1<n.buttons)&&((!a.hover||!n.buttons)&&(f||n.preventDefault(),n.calcPoint=n.points[b.ort],void s(n,a))))))},r=[];return i.split(" ").forEach(function(t){o.addEventListener(t,e,!!f&&{passive:!0}),r.push([t,e])}),r}function F(t){var e,r,n,i,o,s,a=100*(t-(e=l,r=b.ort,n=e.getBoundingClientRect(),i=e.ownerDocument,o=i.documentElement,s=mt(i),/webkit.*Chrome.*Mobile/i.test(navigator.userAgent)&&(s.x=0),r?n.top+s.y-o.clientTop:n.left+s.x-o.clientLeft))/z();return a=pt(a),b.dir?100-a:a}function R(t,e){"mouseout"===t.type&&"HTML"===t.target.nodeName&&null===t.relatedTarget&&B(t,e)}function _(t,e){if(-1===navigator.appVersion.indexOf("MSIE 9")&&0===t.buttons&&0!==e.buttonsProperty)return B(t,e);var r=(b.dir?-1:1)*(t.calcPoint-e.startCalcPoint);J(0<r,100*r/e.baseSize,e.locations,e.handleNumbers,e.connect)}function B(t,e){e.handle&&(ht(e.handle,b.cssClasses.active),m-=1),e.listeners.forEach(function(t){w.removeEventListener(t[0],t[1])}),0===m&&(ht(d,b.cssClasses.drag),Q(),t.cursor&&(E.style.cursor="",E.removeEventListener("selectstart",ut))),e.handleNumbers.forEach(function(t){W("change",t),W("set",t),W("end",t)})}function q(t,e){if(!e.handleNumbers.some(U)){var r;if(1===e.handleNumbers.length)r=u[e.handleNumbers[0]].children[0],m+=1,dt(r,b.cssClasses.active);t.stopPropagation();var n=[],i=H(p.move,w,_,{target:t.target,handle:r,connect:e.connect,listeners:n,startCalcPoint:t.calcPoint,baseSize:z(),pageOffset:t.pageOffset,handleNumbers:e.handleNumbers,buttonsProperty:t.buttons,locations:x.slice()}),o=H(p.end,w,B,{target:t.target,handle:r,listeners:n,doNotReject:!0,handleNumbers:e.handleNumbers}),s=H("mouseout",w,R,{target:t.target,handle:r,listeners:n,doNotReject:!0,handleNumbers:e.handleNumbers});n.push.apply(n,i.concat(o,s)),t.cursor&&(E.style.cursor=getComputedStyle(t.target).cursor,1<u.length&&dt(d,b.cssClasses.drag),E.addEventListener("selectstart",ut,!1)),e.handleNumbers.forEach(function(t){W("start",t)})}}function n(t){t.stopPropagation();var i,o,s,e=F(t.calcPoint),r=(i=e,s=!(o=100),u.forEach(function(t,e){if(!U(e)){var r=x[e],n=Math.abs(r-i);(n<o||n<=o&&r<i||100===n&&100===o)&&(s=e,o=n)}}),s);!1!==r&&(b.events.snap||ct(d,b.cssClasses.tap,b.animationDuration),Z(r,e,!0,!0),Q(),W("slide",r,!0),W("update",r,!0),W("change",r,!0),W("set",r,!0),b.events.snap&&q(t,{handleNumbers:[r]}))}function X(t){var e=F(t.calcPoint),r=y.getStep(e),n=y.fromStepping(r);Object.keys(g).forEach(function(t){"hover"===t.split(".")[0]&&g[t].forEach(function(t){t.call(ot,n)})})}function Y(t,e){g[t]=g[t]||[],g[t].push(e),"update"===t.split(".")[0]&&u.forEach(function(t,e){W("update",e)})}function I(t){var i=t&&t.split(".")[0],o=i?t.substring(i.length):t;Object.keys(g).forEach(function(t){var e,r=t.split(".")[0],n=t.substring(r.length);i&&i!==r||o&&o!==n||((e=n)!==gt.aria&&e!==gt.tooltips||o===n)&&delete g[t]})}function W(r,n,i){Object.keys(g).forEach(function(t){var e=t.split(".")[0];r===e&&g[t].forEach(function(t){t.call(ot,S.map(b.format.to),n,S.slice(),i||!1,x.slice(),ot)})})}function $(t,e,r,n,i,o){var s;return 1<u.length&&!b.events.unconstrained&&(n&&0<e&&(s=y.getAbsoluteDistance(t[e-1],b.margin,!1),r=Math.max(r,s)),i&&e<u.length-1&&(s=y.getAbsoluteDistance(t[e+1],b.margin,!0),r=Math.min(r,s))),1<u.length&&b.limit&&(n&&0<e&&(s=y.getAbsoluteDistance(t[e-1],b.limit,!1),r=Math.min(r,s)),i&&e<u.length-1&&(s=y.getAbsoluteDistance(t[e+1],b.limit,!0),r=Math.max(r,s))),b.padding&&(0===e&&(s=y.getAbsoluteDistance(0,b.padding[0],!1),r=Math.max(r,s)),e===u.length-1&&(s=y.getAbsoluteDistance(100,b.padding[1],!0),r=Math.min(r,s))),!((r=pt(r=y.getStep(r)))===t[e]&&!o)&&r}function G(t,e){var r=b.ort;return(r?e:t)+", "+(r?t:e)}function J(t,n,r,e,i){var o=r.slice(),s=e[0],a=[!t,t],l=[t,!t];e=e.slice(),t&&e.reverse(),1<e.length?e.forEach(function(t,e){var r=$(o,t,o[t]+n,a[e],l[e],!1);!1===r?n=0:(n=r-o[t],o[t]=r)}):a=l=[!0];var u=!1;e.forEach(function(t,e){u=Z(t,r[t]+n,a[e],l[e])||u}),u&&(e.forEach(function(t){W("update",t),W("slide",t)}),null!=i&&W("drag",s))}function K(t,e){return b.dir?100-t-e:t}function Q(){h.forEach(function(t){var e=50<x[t]?-1:1,r=3+(u.length+e*t);u[t].style.zIndex=String(r)})}function Z(t,e,r,n,i){return i||(e=$(x,t,e,r,n,!1)),!1!==e&&(function(t,e){x[t]=e,S[t]=y.fromStepping(e);var r="translate("+G(10*(K(e,0)-P)+"%","0")+")";u[t].style[b.transformRule]=r,tt(t),tt(t+1)}(t,e),!0)}function tt(t){if(s[t]){var e=0,r=100;0!==t&&(e=x[t-1]),t!==s.length-1&&(r=x[t]);var n=r-e,i="translate("+G(K(e,n)+"%","0")+")",o="scale("+G(n/100,"1")+")";s[t].style[b.transformRule]=i+" "+o}}function et(t,e){return null===t||!1===t||void 0===t?x[e]:("number"==typeof t&&(t=String(t)),!1!==(t=b.format.from(t))&&(t=y.toStepping(t)),!1===t||isNaN(t)?x[e]:t)}function rt(t,e,r){var n=ft(t),i=void 0===x[0];e=void 0===e||e,b.animate&&!i&&ct(d,b.cssClasses.tap,b.animationDuration),h.forEach(function(t){Z(t,et(n[t],t),!0,!1,r)});for(var o=1===h.length?0:1;o<h.length;++o)h.forEach(function(t){Z(t,x[t],!0,!0,r)});Q(),h.forEach(function(t){W("update",t),null!==n[t]&&e&&W("set",t)})}function nt(){var t=S.map(b.format.to);return 1===t.length?t[0]:t}function it(t){var e=x[t],r=y.getNearbySteps(e),n=S[t],i=r.thisStep.step,o=null;if(b.snap)return[n-r.stepBefore.startValue||null,r.stepAfter.startValue-n||null];!1!==i&&n+i>r.stepAfter.startValue&&(i=r.stepAfter.startValue-n),o=n>r.thisStep.startValue?r.thisStep.step:!1!==r.stepBefore.step&&n-r.stepBefore.highestStep,100===e?i=null:0===e&&(o=null);var s=y.countStepDecimals();return null!==i&&!1!==i&&(i=Number(i.toFixed(s))),null!==o&&!1!==o&&(o=Number(o.toFixed(s))),[o,i]}dt(e=d,b.cssClasses.target),0===b.dir?dt(e,b.cssClasses.ltr):dt(e,b.cssClasses.rtl),0===b.ort?dt(e,b.cssClasses.horizontal):dt(e,b.cssClasses.vertical),dt(e,"rtl"===getComputedStyle(e).direction?b.cssClasses.textDirectionRtl:b.cssClasses.textDirectionLtr),l=C(e,b.cssClasses.base),function(t,e){var r=C(e,b.cssClasses.connects);u=[],(s=[]).push(V(r,t[0]));for(var n=0;n<b.handles;n++)u.push(N(e,n)),h[n]=n,s.push(V(r,t[n+1]))}(b.connect,l),(c=b.events).fixed||u.forEach(function(t,e){H(p.start,t.children[0],q,{handleNumbers:[e]})}),c.tap&&H(p.start,l,n,{}),c.hover&&H(p.move,l,X,{hover:!0}),c.drag&&s.forEach(function(e,r){if(!1!==e&&0!==r&&r!==s.length-1){var n=u[r-1],i=u[r],t=[e];dt(e,b.cssClasses.draggable),c.fixed&&(t.push(n.children[0]),t.push(i.children[0])),t.forEach(function(t){H(p.start,t,q,{handles:[n,i],handleNumbers:[r-1,r],connect:e})})}}),rt(b.start),b.pips&&j(b.pips),b.tooltips&&A(),I("update"+gt.aria),Y("update"+gt.aria,function(t,e,s,r,a){h.forEach(function(t){var e=u[t],r=$(x,t,0,!0,!0,!0),n=$(x,t,100,!0,!0,!0),i=a[t],o=String(b.ariaFormat.to(s[t]));r=y.fromStepping(r).toFixed(1),n=y.fromStepping(n).toFixed(1),i=y.fromStepping(i).toFixed(1),e.children[0].setAttribute("aria-valuemin",r),e.children[0].setAttribute("aria-valuemax",n),e.children[0].setAttribute("aria-valuenow",i),e.children[0].setAttribute("aria-valuetext",o)})});var ot={destroy:function(){for(I(gt.aria),I(gt.tooltips),Object.keys(b.cssClasses).forEach(function(t){ht(d,b.cssClasses[t])});d.firstChild;)d.removeChild(d.firstChild);delete d.noUiSlider},steps:function(){return h.map(it)},on:Y,off:I,get:nt,set:rt,setHandle:function(t,e,r,n){if(!(0<=(t=Number(t))&&t<h.length))throw new Error("noUiSlider: invalid handle number, got: "+t);Z(t,et(e,t),!0,!0,n),W("update",t),r&&W("set",t)},reset:function(t){rt(b.start,t)},__moveHandles:function(t,e,r){J(t,e,x,r)},options:o,updateOptions:function(e,t){var r=nt(),n=["margin","limit","padding","range","animate","snap","step","format","pips","tooltips"];n.forEach(function(t){void 0!==e[t]&&(o[t]=e[t])});var i=vt(o);n.forEach(function(t){void 0!==e[t]&&(b[t]=i[t])}),y=i.spectrum,b.margin=i.margin,b.limit=i.limit,b.padding=i.padding,b.pips?j(b.pips):O(),b.tooltips?A():M(),x=[],rt(lt(e.start)?e.start:r,t)},target:d,removePips:O,removeTooltips:M,getTooltips:function(){return a},getOrigins:function(){return u},pips:j};return ot}function z(t,e){if(!t||!t.nodeName)throw new Error("noUiSlider: create requires a single element, got: "+t);if(t.noUiSlider)throw new Error("noUiSlider: Slider was already initialized.");var r=j(t,vt(e),e);return t.noUiSlider=r}var H={__spectrum:a,cssClasses:u,create:z};st.create=z,st.cssClasses=u,st.default=H,Object.defineProperty(st,"__esModule",{value:!0})});
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/js/build/004-bootstrap-select.min.js b/mailcow/src/mailcow-dockerized/data/web/js/build/004-bootstrap-select.min.js
index 1457222..9af7c9f 100644
--- a/mailcow/src/mailcow-dockerized/data/web/js/build/004-bootstrap-select.min.js
+++ b/mailcow/src/mailcow-dockerized/data/web/js/build/004-bootstrap-select.min.js
@@ -4,5 +4,5 @@
  * Copyright 2013-2017 bootstrap-select

  * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)

  */

-!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){"use strict";function b(b){var c=[{re:/[\xC0-\xC6]/g,ch:"A"},{re:/[\xE0-\xE6]/g,ch:"a"},{re:/[\xC8-\xCB]/g,ch:"E"},{re:/[\xE8-\xEB]/g,ch:"e"},{re:/[\xCC-\xCF]/g,ch:"I"},{re:/[\xEC-\xEF]/g,ch:"i"},{re:/[\xD2-\xD6]/g,ch:"O"},{re:/[\xF2-\xF6]/g,ch:"o"},{re:/[\xD9-\xDC]/g,ch:"U"},{re:/[\xF9-\xFC]/g,ch:"u"},{re:/[\xC7-\xE7]/g,ch:"c"},{re:/[\xD1]/g,ch:"N"},{re:/[\xF1]/g,ch:"n"}];return a.each(c,function(){b=b?b.replace(this.re,this.ch):""}),b}function c(b){var c=arguments,d=b;[].shift.apply(c);var e,f=this.each(function(){var b=a(this);if(b.is("select")){var f=b.data("selectpicker"),g="object"==typeof d&&d;if(f){if(g)for(var h in g)g.hasOwnProperty(h)&&(f.options[h]=g[h])}else{var i=a.extend({},k.DEFAULTS,a.fn.selectpicker.defaults||{},b.data(),g);i.template=a.extend({},k.DEFAULTS.template,a.fn.selectpicker.defaults?a.fn.selectpicker.defaults.template:{},b.data().template,g.template),b.data("selectpicker",f=new k(this,i))}"string"==typeof d&&(e=f[d]instanceof Function?f[d].apply(f,c):f.options[d])}});return"undefined"!=typeof e?e:f}String.prototype.includes||!function(){var a={}.toString,b=function(){try{var a={},b=Object.defineProperty,c=b(a,a,a)&&b}catch(a){}return c}(),c="".indexOf,d=function(b){if(null==this)throw new TypeError;var d=String(this);if(b&&"[object RegExp]"==a.call(b))throw new TypeError;var e=d.length,f=String(b),g=f.length,h=arguments.length>1?arguments[1]:void 0,i=h?Number(h):0;i!=i&&(i=0);var j=Math.min(Math.max(i,0),e);return!(g+j>e)&&c.call(d,f,i)!=-1};b?b(String.prototype,"includes",{value:d,configurable:!0,writable:!0}):String.prototype.includes=d}(),String.prototype.startsWith||!function(){var a=function(){try{var a={},b=Object.defineProperty,c=b(a,a,a)&&b}catch(a){}return c}(),b={}.toString,c=function(a){if(null==this)throw new TypeError;var c=String(this);if(a&&"[object RegExp]"==b.call(a))throw new TypeError;var d=c.length,e=String(a),f=e.length,g=arguments.length>1?arguments[1]:void 0,h=g?Number(g):0;h!=h&&(h=0);var i=Math.min(Math.max(h,0),d);if(f+i>d)return!1;for(var j=-1;++j<f;)if(c.charCodeAt(i+j)!=e.charCodeAt(j))return!1;return!0};a?a(String.prototype,"startsWith",{value:c,configurable:!0,writable:!0}):String.prototype.startsWith=c}(),Object.keys||(Object.keys=function(a,b,c){c=[];for(b in a)c.hasOwnProperty.call(a,b)&&c.push(b);return c});var d={useDefault:!1,_set:a.valHooks.select.set};a.valHooks.select.set=function(b,c){return c&&!d.useDefault&&a(b).data("selected",!0),d._set.apply(this,arguments)};var e=null;a.fn.triggerNative=function(a){var b,c=this[0];c.dispatchEvent?("function"==typeof Event?b=new Event(a,{bubbles:!0}):(b=document.createEvent("Event"),b.initEvent(a,!0,!1)),c.dispatchEvent(b)):c.fireEvent?(b=document.createEventObject(),b.eventType=a,c.fireEvent("on"+a,b)):this.trigger(a)},a.expr.pseudos.icontains=function(b,c,d){var e=a(b),f=(e.data("tokens")||e.text()).toString().toUpperCase();return f.includes(d[3].toUpperCase())},a.expr.pseudos.ibegins=function(b,c,d){var e=a(b),f=(e.data("tokens")||e.text()).toString().toUpperCase();return f.startsWith(d[3].toUpperCase())},a.expr.pseudos.aicontains=function(b,c,d){var e=a(b),f=(e.data("tokens")||e.data("normalizedText")||e.text()).toString().toUpperCase();return f.includes(d[3].toUpperCase())},a.expr.pseudos.aibegins=function(b,c,d){var e=a(b),f=(e.data("tokens")||e.data("normalizedText")||e.text()).toString().toUpperCase();return f.startsWith(d[3].toUpperCase())};var f={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},g={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#x27;":"'","&#x60;":"`"},h=function(a){var b=function(b){return a[b]},c="(?:"+Object.keys(a).join("|")+")",d=RegExp(c),e=RegExp(c,"g");return function(a){return a=null==a?"":""+a,d.test(a)?a.replace(e,b):a}},i=h(f),j=h(g),k=function(b,c){d.useDefault||(a.valHooks.select.set=d._set,d.useDefault=!0),this.$element=a(b),this.$newElement=null,this.$button=null,this.$menu=null,this.$lis=null,this.options=c,null===this.options.title&&(this.options.title=this.$element.attr("title"));var e=this.options.windowPadding;"number"==typeof e&&(this.options.windowPadding=[e,e,e,e]),this.val=k.prototype.val,this.render=k.prototype.render,this.refresh=k.prototype.refresh,this.setStyle=k.prototype.setStyle,this.selectAll=k.prototype.selectAll,this.deselectAll=k.prototype.deselectAll,this.destroy=k.prototype.destroy,this.remove=k.prototype.remove,this.show=k.prototype.show,this.hide=k.prototype.hide,this.init()};k.VERSION="1.12.2",k.DEFAULTS={noneSelectedText:"Nothing selected",noneResultsText:"No results matched {0}",countSelectedText:function(a,b){return 1==a?"{0} item selected":"{0} items selected"},maxOptionsText:function(a,b){return[1==a?"Limit reached ({n} item max)":"Limit reached ({n} items max)",1==b?"Group limit reached ({n} item max)":"Group limit reached ({n} items max)"]},selectAllText:"Select All",deselectAllText:"Deselect All",doneButton:!1,doneButtonText:"Close",multipleSeparator:", ",styleBase:"btn",style:"btn-default",size:"auto",title:null,selectedTextFormat:"values",width:!1,container:!1,hideDisabled:!1,showSubtext:!1,showIcon:!0,showContent:!0,dropupAuto:!0,header:!1,liveSearch:!1,liveSearchPlaceholder:null,liveSearchNormalize:!1,liveSearchStyle:"contains",actionsBox:!1,iconBase:"glyphicon",tickIcon:"glyphicon-ok",showTick:!1,template:{caret:'<span class="caret"></span>'},maxOptions:!1,mobile:!1,selectOnTab:!1,dropdownAlignRight:!1,windowPadding:0},k.prototype={constructor:k,init:function(){var b=this,c=this.$element.attr("id");this.$element.addClass("bs-select-hidden"),this.liObj={},this.multiple=this.$element.prop("multiple"),this.autofocus=this.$element.prop("autofocus"),this.$newElement=this.createView(),this.$element.after(this.$newElement).appendTo(this.$newElement),this.$button=this.$newElement.children("button"),this.$menu=this.$newElement.children(".dropdown-menu"),this.$menuInner=this.$menu.children(".inner"),this.$searchbox=this.$menu.find("input"),this.$element.removeClass("bs-select-hidden"),this.options.dropdownAlignRight===!0&&this.$menu.addClass("dropdown-menu-right"),"undefined"!=typeof c&&(this.$button.attr("data-id",c),a('label[for="'+c+'"]').click(function(a){a.preventDefault(),b.$button.focus()})),this.checkDisabled(),this.clickListener(),this.options.liveSearch&&this.liveSearchListener(),this.render(),this.setStyle(),this.setWidth(),this.options.container&&this.selectPosition(),this.$menu.data("this",this),this.$newElement.data("this",this),this.options.mobile&&this.mobile(),this.$newElement.on({"hide.bs.dropdown":function(a){b.$menuInner.attr("aria-expanded",!1),b.$element.trigger("hide.bs.select",a)},"hidden.bs.dropdown":function(a){b.$element.trigger("hidden.bs.select",a)},"show.bs.dropdown":function(a){b.$menuInner.attr("aria-expanded",!0),b.$element.trigger("show.bs.select",a)},"shown.bs.dropdown":function(a){b.$element.trigger("shown.bs.select",a)}}),b.$element[0].hasAttribute("required")&&this.$element.on("invalid",function(){b.$button.addClass("bs-invalid").focus(),b.$element.on({"focus.bs.select":function(){b.$button.focus(),b.$element.off("focus.bs.select")},"shown.bs.select":function(){b.$element.val(b.$element.val()).off("shown.bs.select")},"rendered.bs.select":function(){this.validity.valid&&b.$button.removeClass("bs-invalid"),b.$element.off("rendered.bs.select")}})}),setTimeout(function(){b.$element.trigger("loaded.bs.select")})},createDropdown:function(){var b=this.multiple||this.options.showTick?" show-tick":"",c=this.$element.parent().hasClass("input-group")?" input-group-btn":"",d=this.autofocus?" autofocus":"",e=this.options.header?'<div class="popover-title"><button type="button" class="close" aria-hidden="true">&times;</button>'+this.options.header+"</div>":"",f=this.options.liveSearch?'<div class="bs-searchbox"><input type="text" class="form-control" autocomplete="off"'+(null===this.options.liveSearchPlaceholder?"":' placeholder="'+i(this.options.liveSearchPlaceholder)+'"')+' role="textbox" aria-label="Search"></div>':"",g=this.multiple&&this.options.actionsBox?'<div class="bs-actionsbox"><div class="btn-group btn-group-sm btn-block"><button type="button" class="actions-btn bs-select-all btn btn-default">'+this.options.selectAllText+'</button><button type="button" class="actions-btn bs-deselect-all btn btn-default">'+this.options.deselectAllText+"</button></div></div>":"",h=this.multiple&&this.options.doneButton?'<div class="bs-donebutton"><div class="btn-group btn-block"><button type="button" class="btn btn-sm btn-default">'+this.options.doneButtonText+"</button></div></div>":"",j='<div class="btn-group bootstrap-select'+b+c+'"><button type="button" class="'+this.options.styleBase+' dropdown-toggle" data-toggle="dropdown"'+d+' role="button"><span class="filter-option pull-left"></span>&nbsp;<span class="bs-caret">'+this.options.template.caret+'</span></button><div class="dropdown-menu open" role="combobox">'+e+f+g+'<ul class="dropdown-menu inner" role="listbox" aria-expanded="false"></ul>'+h+"</div></div>";return a(j)},createView:function(){var a=this.createDropdown(),b=this.createLi();return a.find("ul")[0].innerHTML=b,a},reloadLi:function(){var a=this.createLi();this.$menuInner[0].innerHTML=a},createLi:function(){var c=this,d=[],e=0,f=document.createElement("option"),g=-1,h=function(a,b,c,d){return"<li"+("undefined"!=typeof c&""!==c?' class="'+c+'"':"")+("undefined"!=typeof b&null!==b?' data-original-index="'+b+'"':"")+("undefined"!=typeof d&null!==d?'data-optgroup="'+d+'"':"")+">"+a+"</li>"},j=function(d,e,f,g){return'<a tabindex="0"'+("undefined"!=typeof e?' class="'+e+'"':"")+(f?' style="'+f+'"':"")+(c.options.liveSearchNormalize?' data-normalized-text="'+b(i(a(d).html()))+'"':"")+("undefined"!=typeof g||null!==g?' data-tokens="'+g+'"':"")+' role="option">'+d+'<span class="'+c.options.iconBase+" "+c.options.tickIcon+' check-mark"></span></a>'};if(this.options.title&&!this.multiple&&(g--,!this.$element.find(".bs-title-option").length)){var k=this.$element[0];f.className="bs-title-option",f.innerHTML=this.options.title,f.value="",k.insertBefore(f,k.firstChild);var l=a(k.options[k.selectedIndex]);void 0===l.attr("selected")&&void 0===this.$element.data("selected")&&(f.selected=!0)}return this.$element.find("option").each(function(b){var f=a(this);if(g++,!f.hasClass("bs-title-option")){var k=this.className||"",l=this.style.cssText,m=f.data("content")?f.data("content"):f.html(),n=f.data("tokens")?f.data("tokens"):null,o="undefined"!=typeof f.data("subtext")?'<small class="text-muted">'+f.data("subtext")+"</small>":"",p="undefined"!=typeof f.data("icon")?'<span class="'+c.options.iconBase+" "+f.data("icon")+'"></span> ':"",q=f.parent(),r="OPTGROUP"===q[0].tagName,s=r&&q[0].disabled,t=this.disabled||s;if(""!==p&&t&&(p="<span>"+p+"</span>"),c.options.hideDisabled&&(t&&!r||s))return void g--;if(f.data("content")||(m=p+'<span class="text">'+m+o+"</span>"),r&&f.data("divider")!==!0){if(c.options.hideDisabled&&t){if(void 0===q.data("allOptionsDisabled")){var u=q.children();q.data("allOptionsDisabled",u.filter(":disabled").length===u.length)}if(q.data("allOptionsDisabled"))return void g--}var v=" "+q[0].className||"";if(0===f.index()){e+=1;var w=q[0].label,x="undefined"!=typeof q.data("subtext")?'<small class="text-muted">'+q.data("subtext")+"</small>":"",y=q.data("icon")?'<span class="'+c.options.iconBase+" "+q.data("icon")+'"></span> ':"";w=y+'<span class="text">'+i(w)+x+"</span>",0!==b&&d.length>0&&(g++,d.push(h("",null,"divider",e+"div"))),g++,d.push(h(w,null,"dropdown-header"+v,e))}if(c.options.hideDisabled&&t)return void g--;d.push(h(j(m,"opt "+k+v,l,n),b,"",e))}else if(f.data("divider")===!0)d.push(h("",b,"divider"));else if(f.data("hidden")===!0)d.push(h(j(m,k,l,n),b,"hidden is-hidden"));else{var z=this.previousElementSibling&&"OPTGROUP"===this.previousElementSibling.tagName;if(!z&&c.options.hideDisabled)for(var A=a(this).prevAll(),B=0;B<A.length;B++)if("OPTGROUP"===A[B].tagName){for(var C=0,D=0;D<B;D++){var E=A[D];(E.disabled||a(E).data("hidden")===!0)&&C++}C===B&&(z=!0);break}z&&(g++,d.push(h("",null,"divider",e+"div"))),d.push(h(j(m,k,l,n),b))}c.liObj[b]=g}}),this.multiple||0!==this.$element.find("option:selected").length||this.options.title||this.$element.find("option").eq(0).prop("selected",!0).attr("selected","selected"),d.join("")},findLis:function(){return null==this.$lis&&(this.$lis=this.$menu.find("li")),this.$lis},render:function(b){var c,d=this;b!==!1&&this.$element.find("option").each(function(a){var b=d.findLis().eq(d.liObj[a]);d.setDisabled(a,this.disabled||"OPTGROUP"===this.parentNode.tagName&&this.parentNode.disabled,b),d.setSelected(a,this.selected,b)}),this.togglePlaceholder(),this.tabIndex();var e=this.$element.find("option").map(function(){if(this.selected){if(d.options.hideDisabled&&(this.disabled||"OPTGROUP"===this.parentNode.tagName&&this.parentNode.disabled))return;var b,c=a(this),e=c.data("icon")&&d.options.showIcon?'<i class="'+d.options.iconBase+" "+c.data("icon")+'"></i> ':"";return b=d.options.showSubtext&&c.data("subtext")&&!d.multiple?' <small class="text-muted">'+c.data("subtext")+"</small>":"","undefined"!=typeof c.attr("title")?c.attr("title"):c.data("content")&&d.options.showContent?c.data("content").toString():e+c.html()+b}}).toArray(),f=this.multiple?e.join(this.options.multipleSeparator):e[0];if(this.multiple&&this.options.selectedTextFormat.indexOf("count")>-1){var g=this.options.selectedTextFormat.split(">");if(g.length>1&&e.length>g[1]||1==g.length&&e.length>=2){c=this.options.hideDisabled?", [disabled]":"";var h=this.$element.find("option").not('[data-divider="true"], [data-hidden="true"]'+c).length,i="function"==typeof this.options.countSelectedText?this.options.countSelectedText(e.length,h):this.options.countSelectedText;f=i.replace("{0}",e.length.toString()).replace("{1}",h.toString())}}void 0==this.options.title&&(this.options.title=this.$element.attr("title")),"static"==this.options.selectedTextFormat&&(f=this.options.title),f||(f="undefined"!=typeof this.options.title?this.options.title:this.options.noneSelectedText),this.$button.attr("title",j(a.trim(f.replace(/<[^>]*>?/g,"")))),this.$button.children(".filter-option").html(f),this.$element.trigger("rendered.bs.select")},setStyle:function(a,b){this.$element.attr("class")&&this.$newElement.addClass(this.$element.attr("class").replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi,""));var c=a?a:this.options.style;"add"==b?this.$button.addClass(c):"remove"==b?this.$button.removeClass(c):(this.$button.removeClass(this.options.style),this.$button.addClass(c))},liHeight:function(b){if(b||this.options.size!==!1&&!this.sizeInfo){var c=document.createElement("div"),d=document.createElement("div"),e=document.createElement("ul"),f=document.createElement("li"),g=document.createElement("li"),h=document.createElement("a"),i=document.createElement("span"),j=this.options.header&&this.$menu.find(".popover-title").length>0?this.$menu.find(".popover-title")[0].cloneNode(!0):null,k=this.options.liveSearch?document.createElement("div"):null,l=this.options.actionsBox&&this.multiple&&this.$menu.find(".bs-actionsbox").length>0?this.$menu.find(".bs-actionsbox")[0].cloneNode(!0):null,m=this.options.doneButton&&this.multiple&&this.$menu.find(".bs-donebutton").length>0?this.$menu.find(".bs-donebutton")[0].cloneNode(!0):null;if(i.className="text",c.className=this.$menu[0].parentNode.className+" open",d.className="dropdown-menu open",e.className="dropdown-menu inner",f.className="divider",i.appendChild(document.createTextNode("Inner text")),h.appendChild(i),g.appendChild(h),e.appendChild(g),e.appendChild(f),j&&d.appendChild(j),k){var n=document.createElement("input");k.className="bs-searchbox",n.className="form-control",k.appendChild(n),d.appendChild(k)}l&&d.appendChild(l),d.appendChild(e),m&&d.appendChild(m),c.appendChild(d),document.body.appendChild(c);var o=h.offsetHeight,p=j?j.offsetHeight:0,q=k?k.offsetHeight:0,r=l?l.offsetHeight:0,s=m?m.offsetHeight:0,t=a(f).outerHeight(!0),u="function"==typeof getComputedStyle&&getComputedStyle(d),v=u?null:a(d),w={vert:parseInt(u?u.paddingTop:v.css("paddingTop"))+parseInt(u?u.paddingBottom:v.css("paddingBottom"))+parseInt(u?u.borderTopWidth:v.css("borderTopWidth"))+parseInt(u?u.borderBottomWidth:v.css("borderBottomWidth")),horiz:parseInt(u?u.paddingLeft:v.css("paddingLeft"))+parseInt(u?u.paddingRight:v.css("paddingRight"))+parseInt(u?u.borderLeftWidth:v.css("borderLeftWidth"))+parseInt(u?u.borderRightWidth:v.css("borderRightWidth"))},x={vert:w.vert+parseInt(u?u.marginTop:v.css("marginTop"))+parseInt(u?u.marginBottom:v.css("marginBottom"))+2,horiz:w.horiz+parseInt(u?u.marginLeft:v.css("marginLeft"))+parseInt(u?u.marginRight:v.css("marginRight"))+2};document.body.removeChild(c),this.sizeInfo={liHeight:o,headerHeight:p,searchHeight:q,actionsHeight:r,doneButtonHeight:s,dividerHeight:t,menuPadding:w,menuExtras:x}}},setSize:function(){if(this.findLis(),this.liHeight(),this.options.header&&this.$menu.css("padding-top",0),this.options.size!==!1){var b,c,d,e,f,g,h,i,j=this,k=this.$menu,l=this.$menuInner,m=a(window),n=this.$newElement[0].offsetHeight,o=this.$newElement[0].offsetWidth,p=this.sizeInfo.liHeight,q=this.sizeInfo.headerHeight,r=this.sizeInfo.searchHeight,s=this.sizeInfo.actionsHeight,t=this.sizeInfo.doneButtonHeight,u=this.sizeInfo.dividerHeight,v=this.sizeInfo.menuPadding,w=this.sizeInfo.menuExtras,x=this.options.hideDisabled?".disabled":"",y=function(){var b,c=j.$newElement.offset(),d=a(j.options.container);j.options.container&&!d.is("body")?(b=d.offset(),b.top+=parseInt(d.css("borderTopWidth")),b.left+=parseInt(d.css("borderLeftWidth"))):b={top:0,left:0};var e=j.options.windowPadding;f=c.top-b.top-m.scrollTop(),g=m.height()-f-n-b.top-e[2],h=c.left-b.left-m.scrollLeft(),i=m.width()-h-o-b.left-e[1],f-=e[0],h-=e[3]};if(y(),"auto"===this.options.size){var z=function(){var m,n=function(b,c){return function(d){return c?d.classList?d.classList.contains(b):a(d).hasClass(b):!(d.classList?d.classList.contains(b):a(d).hasClass(b))}},u=j.$menuInner[0].getElementsByTagName("li"),x=Array.prototype.filter?Array.prototype.filter.call(u,n("hidden",!1)):j.$lis.not(".hidden"),z=Array.prototype.filter?Array.prototype.filter.call(x,n("dropdown-header",!0)):x.filter(".dropdown-header");y(),b=g-w.vert,c=i-w.horiz,j.options.container?(k.data("height")||k.data("height",k.height()),d=k.data("height"),k.data("width")||k.data("width",k.width()),e=k.data("width")):(d=k.height(),e=k.width()),j.options.dropupAuto&&j.$newElement.toggleClass("dropup",f>g&&b-w.vert<d),j.$newElement.hasClass("dropup")&&(b=f-w.vert),"auto"===j.options.dropdownAlignRight&&k.toggleClass("dropdown-menu-right",h>i&&c-w.horiz<e-o),m=x.length+z.length>3?3*p+w.vert-2:0,k.css({"max-height":b+"px",overflow:"hidden","min-height":m+q+r+s+t+"px"}),l.css({"max-height":b-q-r-s-t-v.vert+"px","overflow-y":"auto","min-height":Math.max(m-v.vert,0)+"px"})};z(),this.$searchbox.off("input.getSize propertychange.getSize").on("input.getSize propertychange.getSize",z),m.off("resize.getSize scroll.getSize").on("resize.getSize scroll.getSize",z)}else if(this.options.size&&"auto"!=this.options.size&&this.$lis.not(x).length>this.options.size){var A=this.$lis.not(".divider").not(x).children().slice(0,this.options.size).last().parent().index(),B=this.$lis.slice(0,A+1).filter(".divider").length;b=p*this.options.size+B*u+v.vert,j.options.container?(k.data("height")||k.data("height",k.height()),d=k.data("height")):d=k.height(),j.options.dropupAuto&&this.$newElement.toggleClass("dropup",f>g&&b-w.vert<d),k.css({"max-height":b+q+r+s+t+"px",overflow:"hidden","min-height":""}),l.css({"max-height":b-v.vert+"px","overflow-y":"auto","min-height":""})}}},setWidth:function(){if("auto"===this.options.width){this.$menu.css("min-width","0");var a=this.$menu.parent().clone().appendTo("body"),b=this.options.container?this.$newElement.clone().appendTo("body"):a,c=a.children(".dropdown-menu").outerWidth(),d=b.css("width","auto").children("button").outerWidth();a.remove(),b.remove(),this.$newElement.css("width",Math.max(c,d)+"px")}else"fit"===this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width","").addClass("fit-width")):this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width",this.options.width)):(this.$menu.css("min-width",""),this.$newElement.css("width",""));this.$newElement.hasClass("fit-width")&&"fit"!==this.options.width&&this.$newElement.removeClass("fit-width")},selectPosition:function(){this.$bsContainer=a('<div class="bs-container" />');var b,c,d,e=this,f=a(this.options.container),g=function(a){e.$bsContainer.addClass(a.attr("class").replace(/form-control|fit-width/gi,"")).toggleClass("dropup",a.hasClass("dropup")),b=a.offset(),f.is("body")?c={top:0,left:0}:(c=f.offset(),c.top+=parseInt(f.css("borderTopWidth"))-f.scrollTop(),c.left+=parseInt(f.css("borderLeftWidth"))-f.scrollLeft()),d=a.hasClass("dropup")?0:a[0].offsetHeight,e.$bsContainer.css({top:b.top-c.top+d,left:b.left-c.left,width:a[0].offsetWidth})};this.$button.on("click",function(){var b=a(this);e.isDisabled()||(g(e.$newElement),e.$bsContainer.appendTo(e.options.container).toggleClass("open",!b.hasClass("open")).append(e.$menu))}),a(window).on("resize scroll",function(){g(e.$newElement)}),this.$element.on("hide.bs.select",function(){e.$menu.data("height",e.$menu.height()),e.$bsContainer.detach()})},setSelected:function(a,b,c){c||(this.togglePlaceholder(),c=this.findLis().eq(this.liObj[a])),c.toggleClass("selected",b).find("a").attr("aria-selected",b)},setDisabled:function(a,b,c){c||(c=this.findLis().eq(this.liObj[a])),b?c.addClass("disabled").children("a").attr("href","#").attr("tabindex",-1).attr("aria-disabled",!0):c.removeClass("disabled").children("a").removeAttr("href").attr("tabindex",0).attr("aria-disabled",!1)},isDisabled:function(){return this.$element[0].disabled},checkDisabled:function(){var a=this;this.isDisabled()?(this.$newElement.addClass("disabled"),this.$button.addClass("disabled").attr("tabindex",-1).attr("aria-disabled",!0)):(this.$button.hasClass("disabled")&&(this.$newElement.removeClass("disabled"),this.$button.removeClass("disabled").attr("aria-disabled",!1)),this.$button.attr("tabindex")!=-1||this.$element.data("tabindex")||this.$button.removeAttr("tabindex")),this.$button.click(function(){return!a.isDisabled()})},togglePlaceholder:function(){var a=this.$element.val();this.$button.toggleClass("bs-placeholder",null===a||""===a||a.constructor===Array&&0===a.length)},tabIndex:function(){this.$element.data("tabindex")!==this.$element.attr("tabindex")&&this.$element.attr("tabindex")!==-98&&"-98"!==this.$element.attr("tabindex")&&(this.$element.data("tabindex",this.$element.attr("tabindex")),this.$button.attr("tabindex",this.$element.data("tabindex"))),this.$element.attr("tabindex",-98)},clickListener:function(){var b=this,c=a(document);c.data("spaceSelect",!1),this.$button.on("keyup",function(a){/(32)/.test(a.keyCode.toString(10))&&c.data("spaceSelect")&&(a.preventDefault(),c.data("spaceSelect",!1))}),this.$button.on("click",function(){b.setSize()}),this.$element.on("shown.bs.select",function(){if(b.options.liveSearch||b.multiple){if(!b.multiple){var a=b.liObj[b.$element[0].selectedIndex];if("number"!=typeof a||b.options.size===!1)return;var c=b.$lis.eq(a)[0].offsetTop-b.$menuInner[0].offsetTop;c=c-b.$menuInner[0].offsetHeight/2+b.sizeInfo.liHeight/2,b.$menuInner[0].scrollTop=c}}else b.$menuInner.find(".selected a").focus()}),this.$menuInner.on("click","li a",function(c){var d=a(this),f=d.parent().data("originalIndex"),g=b.$element.val(),h=b.$element.prop("selectedIndex"),i=!0;if(b.multiple&&1!==b.options.maxOptions&&c.stopPropagation(),c.preventDefault(),!b.isDisabled()&&!d.parent().hasClass("disabled")){var j=b.$element.find("option"),k=j.eq(f),l=k.prop("selected"),m=k.parent("optgroup"),n=b.options.maxOptions,o=m.data("maxOptions")||!1;if(b.multiple){if(k.prop("selected",!l),b.setSelected(f,!l),d.blur(),n!==!1||o!==!1){var p=n<j.filter(":selected").length,q=o<m.find("option:selected").length;if(n&&p||o&&q)if(n&&1==n)j.prop("selected",!1),k.prop("selected",!0),b.$menuInner.find(".selected").removeClass("selected"),b.setSelected(f,!0);else if(o&&1==o){m.find("option:selected").prop("selected",!1),k.prop("selected",!0);var r=d.parent().data("optgroup");b.$menuInner.find('[data-optgroup="'+r+'"]').removeClass("selected"),b.setSelected(f,!0)}else{var s="string"==typeof b.options.maxOptionsText?[b.options.maxOptionsText,b.options.maxOptionsText]:b.options.maxOptionsText,t="function"==typeof s?s(n,o):s,u=t[0].replace("{n}",n),v=t[1].replace("{n}",o),w=a('<div class="notify"></div>');t[2]&&(u=u.replace("{var}",t[2][n>1?0:1]),v=v.replace("{var}",t[2][o>1?0:1])),k.prop("selected",!1),b.$menu.append(w),n&&p&&(w.append(a("<div>"+u+"</div>")),i=!1,b.$element.trigger("maxReached.bs.select")),o&&q&&(w.append(a("<div>"+v+"</div>")),i=!1,b.$element.trigger("maxReachedGrp.bs.select")),setTimeout(function(){b.setSelected(f,!1)},10),w.delay(750).fadeOut(300,function(){a(this).remove()})}}}else j.prop("selected",!1),k.prop("selected",!0),b.$menuInner.find(".selected").removeClass("selected").find("a").attr("aria-selected",!1),b.setSelected(f,!0);!b.multiple||b.multiple&&1===b.options.maxOptions?b.$button.focus():b.options.liveSearch&&b.$searchbox.focus(),i&&(g!=b.$element.val()&&b.multiple||h!=b.$element.prop("selectedIndex")&&!b.multiple)&&(e=[f,k.prop("selected"),l],b.$element.triggerNative("change"))}}),this.$menu.on("click","li.disabled a, .popover-title, .popover-title :not(.close)",function(c){c.currentTarget==this&&(c.preventDefault(),c.stopPropagation(),b.options.liveSearch&&!a(c.target).hasClass("close")?b.$searchbox.focus():b.$button.focus())}),this.$menuInner.on("click",".divider, .dropdown-header",function(a){a.preventDefault(),a.stopPropagation(),b.options.liveSearch?b.$searchbox.focus():b.$button.focus()}),this.$menu.on("click",".popover-title .close",function(){b.$button.click()}),this.$searchbox.on("click",function(a){a.stopPropagation()}),this.$menu.on("click",".actions-btn",function(c){b.options.liveSearch?b.$searchbox.focus():b.$button.focus(),c.preventDefault(),c.stopPropagation(),a(this).hasClass("bs-select-all")?b.selectAll():b.deselectAll()}),this.$element.change(function(){b.render(!1),b.$element.trigger("changed.bs.select",e),e=null})},liveSearchListener:function(){var c=this,d=a('<li class="no-results"></li>');this.$button.on("click.dropdown.data-api",function(){c.$menuInner.find(".active").removeClass("active"),c.$searchbox.val()&&(c.$searchbox.val(""),c.$lis.not(".is-hidden").removeClass("hidden"),d.parent().length&&d.remove()),c.multiple||c.$menuInner.find(".selected").addClass("active"),setTimeout(function(){c.$searchbox.focus()},10)}),this.$searchbox.on("click.dropdown.data-api focus.dropdown.data-api touchend.dropdown.data-api",function(a){a.stopPropagation()}),this.$searchbox.on("input propertychange",function(){if(c.$lis.not(".is-hidden").removeClass("hidden"),c.$lis.filter(".active").removeClass("active"),d.remove(),c.$searchbox.val()){var e,f=c.$lis.not(".is-hidden, .divider, .dropdown-header");if(e=c.options.liveSearchNormalize?f.find("a").not(":a"+c._searchStyle()+'("'+b(c.$searchbox.val())+'")'):f.find("a").not(":"+c._searchStyle()+'("'+c.$searchbox.val()+'")'),e.length===f.length)d.html(c.options.noneResultsText.replace("{0}",'"'+i(c.$searchbox.val())+'"')),c.$menuInner.append(d),c.$lis.addClass("hidden");else{e.parent().addClass("hidden");var g,h=c.$lis.not(".hidden");h.each(function(b){var c=a(this);c.hasClass("divider")?void 0===g?c.addClass("hidden"):(g&&g.addClass("hidden"),g=c):c.hasClass("dropdown-header")&&h.eq(b+1).data("optgroup")!==c.data("optgroup")?c.addClass("hidden"):g=null}),g&&g.addClass("hidden"),f.not(".hidden").first().addClass("active")}}})},_searchStyle:function(){var a={begins:"ibegins",startsWith:"ibegins"};return a[this.options.liveSearchStyle]||"icontains"},val:function(a){return"undefined"!=typeof a?(this.$element.val(a),this.render(),this.$element):this.$element.val()},changeAll:function(b){if(this.multiple){"undefined"==typeof b&&(b=!0),this.findLis();var c=this.$element.find("option"),d=this.$lis.not(".divider, .dropdown-header, .disabled, .hidden"),e=d.length,f=[];if(b){if(d.filter(".selected").length===d.length)return}else if(0===d.filter(".selected").length)return;d.toggleClass("selected",b);for(var g=0;g<e;g++){var h=d[g].getAttribute("data-original-index");f[f.length]=c.eq(h)[0]}a(f).prop("selected",b),this.render(!1),this.togglePlaceholder(),this.$element.triggerNative("change")}},selectAll:function(){return this.changeAll(!0)},deselectAll:function(){return this.changeAll(!1)},toggle:function(a){a=a||window.event,a&&a.stopPropagation(),this.$button.trigger("click")},keydown:function(c){var d,e,f,g,h,i,j,k,l,m=a(this),n=m.is("input")?m.parent().parent():m.parent(),o=n.data("this"),p=":not(.disabled, .hidden, .dropdown-header, .divider)",q={32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9"};if(o.options.liveSearch&&(n=m.parent().parent()),o.options.container&&(n=o.$menu),d=a('[role="listbox"] li',n),l=o.$newElement.hasClass("open"),!l&&(c.keyCode>=48&&c.keyCode<=57||c.keyCode>=96&&c.keyCode<=105||c.keyCode>=65&&c.keyCode<=90))return o.options.container?o.$button.trigger("click"):(o.setSize(),o.$menu.parent().addClass("open"),l=!0),void o.$searchbox.focus();if(o.options.liveSearch&&(/(^9$|27)/.test(c.keyCode.toString(10))&&l&&(c.preventDefault(),c.stopPropagation(),o.$menuInner.click(),o.$button.focus()),d=a('[role="listbox"] li'+p,n),m.val()||/(38|40)/.test(c.keyCode.toString(10))||0===d.filter(".active").length&&(d=o.$menuInner.find("li"),d=o.options.liveSearchNormalize?d.filter(":a"+o._searchStyle()+"("+b(q[c.keyCode])+")"):d.filter(":"+o._searchStyle()+"("+q[c.keyCode]+")"))),d.length){if(/(38|40)/.test(c.keyCode.toString(10)))e=d.index(d.find("a").filter(":focus").parent()),g=d.filter(p).first().index(),h=d.filter(p).last().index(),f=d.eq(e).nextAll(p).eq(0).index(),i=d.eq(e).prevAll(p).eq(0).index(),j=d.eq(f).prevAll(p).eq(0).index(),o.options.liveSearch&&(d.each(function(b){a(this).hasClass("disabled")||a(this).data("index",b)}),e=d.index(d.filter(".active")),g=d.first().data("index"),h=d.last().data("index"),f=d.eq(e).nextAll().eq(0).data("index"),i=d.eq(e).prevAll().eq(0).data("index"),j=d.eq(f).prevAll().eq(0).data("index")),k=m.data("prevIndex"),38==c.keyCode?(o.options.liveSearch&&e--,e!=j&&e>i&&(e=i),e<g&&(e=g),e==k&&(e=h)):40==c.keyCode&&(o.options.liveSearch&&e++,e==-1&&(e=0),e!=j&&e<f&&(e=f),e>h&&(e=h),e==k&&(e=g)),m.data("prevIndex",e),o.options.liveSearch?(c.preventDefault(),m.hasClass("dropdown-toggle")||(d.removeClass("active").eq(e).addClass("active").children("a").focus(),m.focus())):d.eq(e).children("a").focus();else if(!m.is("input")){var r,s,t=[];d.each(function(){a(this).hasClass("disabled")||a.trim(a(this).children("a").text().toLowerCase()).substring(0,1)==q[c.keyCode]&&t.push(a(this).index())}),r=a(document).data("keycount"),r++,a(document).data("keycount",r),s=a.trim(a(":focus").text().toLowerCase()).substring(0,1),s!=q[c.keyCode]?(r=1,a(document).data("keycount",r)):r>=t.length&&(a(document).data("keycount",0),r>t.length&&(r=1)),d.eq(t[r-1]).children("a").focus()}if((/(13|32)/.test(c.keyCode.toString(10))||/(^9$)/.test(c.keyCode.toString(10))&&o.options.selectOnTab)&&l){if(/(32)/.test(c.keyCode.toString(10))||c.preventDefault(),o.options.liveSearch)/(32)/.test(c.keyCode.toString(10))||(o.$menuInner.find(".active a").click(),

+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(a){"use strict";function b(b){var c=[{re:/[\xC0-\xC6]/g,ch:"A"},{re:/[\xE0-\xE6]/g,ch:"a"},{re:/[\xC8-\xCB]/g,ch:"E"},{re:/[\xE8-\xEB]/g,ch:"e"},{re:/[\xCC-\xCF]/g,ch:"I"},{re:/[\xEC-\xEF]/g,ch:"i"},{re:/[\xD2-\xD6]/g,ch:"O"},{re:/[\xF2-\xF6]/g,ch:"o"},{re:/[\xD9-\xDC]/g,ch:"U"},{re:/[\xF9-\xFC]/g,ch:"u"},{re:/[\xC7-\xE7]/g,ch:"c"},{re:/[\xD1]/g,ch:"N"},{re:/[\xF1]/g,ch:"n"}];return a.each(c,function(){b=b?b.replace(this.re,this.ch):""}),b}function c(b){var c=arguments,d=b;[].shift.apply(c);var e,f=this.each(function(){var b=a(this);if(b.is("select")){var f=b.data("selectpicker"),g="object"==typeof d&&d;if(f){if(g)for(var h in g)g.hasOwnProperty(h)&&(f.options[h]=g[h])}else{var i=a.extend({},k.DEFAULTS,a.fn.selectpicker.defaults||{},b.data(),g);i.template=a.extend({},k.DEFAULTS.template,a.fn.selectpicker.defaults?a.fn.selectpicker.defaults.template:{},b.data().template,g.template),b.data("selectpicker",f=new k(this,i))}"string"==typeof d&&(e=f[d]instanceof Function?f[d].apply(f,c):f.options[d])}});return"undefined"!=typeof e?e:f}String.prototype.includes||!function(){var a={}.toString,b=function(){try{var a={},b=Object.defineProperty,c=b(a,a,a)&&b}catch(a){}return c}(),c="".indexOf,d=function(b){if(null==this)throw new TypeError;var d=String(this);if(b&&"[object RegExp]"==a.call(b))throw new TypeError;var e=d.length,f=String(b),g=f.length,h=arguments.length>1?arguments[1]:void 0,i=h?Number(h):0;i!=i&&(i=0);var j=Math.min(Math.max(i,0),e);return!(g+j>e)&&c.call(d,f,i)!=-1};b?b(String.prototype,"includes",{value:d,configurable:!0,writable:!0}):String.prototype.includes=d}(),String.prototype.startsWith||!function(){var a=function(){try{var a={},b=Object.defineProperty,c=b(a,a,a)&&b}catch(a){}return c}(),b={}.toString,c=function(a){if(null==this)throw new TypeError;var c=String(this);if(a&&"[object RegExp]"==b.call(a))throw new TypeError;var d=c.length,e=String(a),f=e.length,g=arguments.length>1?arguments[1]:void 0,h=g?Number(g):0;h!=h&&(h=0);var i=Math.min(Math.max(h,0),d);if(f+i>d)return!1;for(var j=-1;++j<f;)if(c.charCodeAt(i+j)!=e.charCodeAt(j))return!1;return!0};a?a(String.prototype,"startsWith",{value:c,configurable:!0,writable:!0}):String.prototype.startsWith=c}(),Object.keys||(Object.keys=function(a,b,c){c=[];for(b in a)c.hasOwnProperty.call(a,b)&&c.push(b);return c});var d={useDefault:!1,_set:a.valHooks.select.set};a.valHooks.select.set=function(b,c){return c&&!d.useDefault&&a(b).data("selected",!0),d._set.apply(this,arguments)};var e=null;a.fn.triggerNative=function(a){var b,c=this[0];c.dispatchEvent?("function"==typeof Event?b=new Event(a,{bubbles:!0}):(b=document.createEvent("Event"),b.initEvent(a,!0,!1)),c.dispatchEvent(b)):c.fireEvent?(b=document.createEventObject(),b.eventType=a,c.fireEvent("on"+a,b)):this.trigger(a)},a.expr.pseudos.icontains=function(b,c,d){var e=a(b),f=(e.data("tokens")||e.text()).toString().toUpperCase();return f.includes(d[3].toUpperCase())},a.expr.pseudos.ibegins=function(b,c,d){var e=a(b),f=(e.data("tokens")||e.text()).toString().toUpperCase();return f.startsWith(d[3].toUpperCase())},a.expr.pseudos.aicontains=function(b,c,d){var e=a(b),f=(e.data("tokens")||e.data("normalizedText")||e.text()).toString().toUpperCase();return f.includes(d[3].toUpperCase())},a.expr.pseudos.aibegins=function(b,c,d){var e=a(b),f=(e.data("tokens")||e.data("normalizedText")||e.text()).toString().toUpperCase();return f.startsWith(d[3].toUpperCase())};var f={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},g={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#x27;":"'","&#x60;":"`"},h=function(a){var b=function(b){return a[b]},c="(?:"+Object.keys(a).join("|")+")",d=RegExp(c),e=RegExp(c,"g");return function(a){return a=null==a?"":""+a,d.test(a)?a.replace(e,b):a}},i=h(f),j=h(g),k=function(b,c){d.useDefault||(a.valHooks.select.set=d._set,d.useDefault=!0),this.$element=a(b),this.$newElement=null,this.$button=null,this.$menu=null,this.$lis=null,this.options=c,null===this.options.title&&(this.options.title=this.$element.attr("title"));var e=this.options.windowPadding;"number"==typeof e&&(this.options.windowPadding=[e,e,e,e]),this.val=k.prototype.val,this.render=k.prototype.render,this.refresh=k.prototype.refresh,this.setStyle=k.prototype.setStyle,this.selectAll=k.prototype.selectAll,this.deselectAll=k.prototype.deselectAll,this.destroy=k.prototype.destroy,this.remove=k.prototype.remove,this.show=k.prototype.show,this.hide=k.prototype.hide,this.init()};k.VERSION="1.12.2",k.DEFAULTS={noneSelectedText:"Nothing selected",noneResultsText:"No results matched {0}",countSelectedText:function(a,b){return 1==a?"{0} item selected":"{0} items selected"},maxOptionsText:function(a,b){return[1==a?"Limit reached ({n} item max)":"Limit reached ({n} items max)",1==b?"Group limit reached ({n} item max)":"Group limit reached ({n} items max)"]},selectAllText:"Select All",deselectAllText:"Deselect All",doneButton:!1,doneButtonText:"Close",multipleSeparator:", ",styleBase:"btn",style:"btn-default",size:"auto",title:null,selectedTextFormat:"values",width:!1,container:!1,hideDisabled:!1,showSubtext:!1,showIcon:!0,showContent:!0,dropupAuto:!0,header:!1,liveSearch:!1,liveSearchPlaceholder:null,liveSearchNormalize:!1,liveSearchStyle:"contains",actionsBox:!1,iconBase:"bi",tickIcon:"bi-check-lg",showTick:!1,template:{caret:'<span class="caret"></span>'},maxOptions:!1,mobile:!1,selectOnTab:!1,dropdownAlignRight:!1,windowPadding:0},k.prototype={constructor:k,init:function(){var b=this,c=this.$element.attr("id");this.$element.addClass("bs-select-hidden"),this.liObj={},this.multiple=this.$element.prop("multiple"),this.autofocus=this.$element.prop("autofocus"),this.$newElement=this.createView(),this.$element.after(this.$newElement).appendTo(this.$newElement),this.$button=this.$newElement.children("button"),this.$menu=this.$newElement.children(".dropdown-menu"),this.$menuInner=this.$menu.children(".inner"),this.$searchbox=this.$menu.find("input"),this.$element.removeClass("bs-select-hidden"),this.options.dropdownAlignRight===!0&&this.$menu.addClass("dropdown-menu-right"),"undefined"!=typeof c&&(this.$button.attr("data-id",c),a('label[for="'+c+'"]').click(function(a){a.preventDefault(),b.$button.focus()})),this.checkDisabled(),this.clickListener(),this.options.liveSearch&&this.liveSearchListener(),this.render(),this.setStyle(),this.setWidth(),this.options.container&&this.selectPosition(),this.$menu.data("this",this),this.$newElement.data("this",this),this.options.mobile&&this.mobile(),this.$newElement.on({"hide.bs.dropdown":function(a){b.$menuInner.attr("aria-expanded",!1),b.$element.trigger("hide.bs.select",a)},"hidden.bs.dropdown":function(a){b.$element.trigger("hidden.bs.select",a)},"show.bs.dropdown":function(a){b.$menuInner.attr("aria-expanded",!0),b.$element.trigger("show.bs.select",a)},"shown.bs.dropdown":function(a){b.$element.trigger("shown.bs.select",a)}}),b.$element[0].hasAttribute("required")&&this.$element.on("invalid",function(){b.$button.addClass("bs-invalid").focus(),b.$element.on({"focus.bs.select":function(){b.$button.focus(),b.$element.off("focus.bs.select")},"shown.bs.select":function(){b.$element.val(b.$element.val()).off("shown.bs.select")},"rendered.bs.select":function(){this.validity.valid&&b.$button.removeClass("bs-invalid"),b.$element.off("rendered.bs.select")}})}),setTimeout(function(){b.$element.trigger("loaded.bs.select")})},createDropdown:function(){var b=this.multiple||this.options.showTick?" show-tick":"",c=this.$element.parent().hasClass("input-group")?" input-group-btn":"",d=this.autofocus?" autofocus":"",e=this.options.header?'<div class="popover-title"><button type="button" class="close" aria-hidden="true">&times;</button>'+this.options.header+"</div>":"",f=this.options.liveSearch?'<div class="bs-searchbox"><input type="text" class="form-control" autocomplete="off"'+(null===this.options.liveSearchPlaceholder?"":' placeholder="'+i(this.options.liveSearchPlaceholder)+'"')+' role="textbox" aria-label="Search"></div>':"",g=this.multiple&&this.options.actionsBox?'<div class="bs-actionsbox"><div class="btn-group btn-group-sm btn-block"><button type="button" class="actions-btn bs-select-all btn btn-default">'+this.options.selectAllText+'</button><button type="button" class="actions-btn bs-deselect-all btn btn-default">'+this.options.deselectAllText+"</button></div></div>":"",h=this.multiple&&this.options.doneButton?'<div class="bs-donebutton"><div class="btn-group btn-block"><button type="button" class="btn btn-sm btn-default">'+this.options.doneButtonText+"</button></div></div>":"",j='<div class="btn-group bootstrap-select'+b+c+'"><button type="button" class="'+this.options.styleBase+' dropdown-toggle" data-toggle="dropdown"'+d+' role="button"><span class="filter-option pull-left"></span>&nbsp;<span class="bs-caret">'+this.options.template.caret+'</span></button><div class="dropdown-menu open" role="combobox">'+e+f+g+'<ul class="dropdown-menu inner" role="listbox" aria-expanded="false"></ul>'+h+"</div></div>";return a(j)},createView:function(){var a=this.createDropdown(),b=this.createLi();return a.find("ul")[0].innerHTML=b,a},reloadLi:function(){var a=this.createLi();this.$menuInner[0].innerHTML=a},createLi:function(){var c=this,d=[],e=0,f=document.createElement("option"),g=-1,h=function(a,b,c,d){return"<li"+("undefined"!=typeof c&""!==c?' class="'+c+'"':"")+("undefined"!=typeof b&null!==b?' data-original-index="'+b+'"':"")+("undefined"!=typeof d&null!==d?'data-optgroup="'+d+'"':"")+">"+a+"</li>"},j=function(d,e,f,g){return'<a tabindex="0"'+("undefined"!=typeof e?' class="'+e+'"':"")+(f?' style="'+f+'"':"")+(c.options.liveSearchNormalize?' data-normalized-text="'+b(i(a(d).html()))+'"':"")+("undefined"!=typeof g||null!==g?' data-tokens="'+g+'"':"")+' role="option">'+d+'<span class="'+c.options.iconBase+" "+c.options.tickIcon+' check-mark"></span></a>'};if(this.options.title&&!this.multiple&&(g--,!this.$element.find(".bs-title-option").length)){var k=this.$element[0];f.className="bs-title-option",f.innerHTML=this.options.title,f.value="",k.insertBefore(f,k.firstChild);var l=a(k.options[k.selectedIndex]);void 0===l.attr("selected")&&void 0===this.$element.data("selected")&&(f.selected=!0)}return this.$element.find("option").each(function(b){var f=a(this);if(g++,!f.hasClass("bs-title-option")){var k=this.className||"",l=this.style.cssText,m=f.data("content")?f.data("content"):f.html(),n=f.data("tokens")?f.data("tokens"):null,o="undefined"!=typeof f.data("subtext")?'<small class="text-muted">'+f.data("subtext")+"</small>":"",p="undefined"!=typeof f.data("icon")?'<span class="'+c.options.iconBase+" "+f.data("icon")+'"></span> ':"",q=f.parent(),r="OPTGROUP"===q[0].tagName,s=r&&q[0].disabled,t=this.disabled||s;if(""!==p&&t&&(p="<span>"+p+"</span>"),c.options.hideDisabled&&(t&&!r||s))return void g--;if(f.data("content")||(m=p+'<span class="text">'+m+o+"</span>"),r&&f.data("divider")!==!0){if(c.options.hideDisabled&&t){if(void 0===q.data("allOptionsDisabled")){var u=q.children();q.data("allOptionsDisabled",u.filter(":disabled").length===u.length)}if(q.data("allOptionsDisabled"))return void g--}var v=" "+q[0].className||"";if(0===f.index()){e+=1;var w=q[0].label,x="undefined"!=typeof q.data("subtext")?'<small class="text-muted">'+q.data("subtext")+"</small>":"",y=q.data("icon")?'<span class="'+c.options.iconBase+" "+q.data("icon")+'"></span> ':"";w=y+'<span class="text">'+i(w)+x+"</span>",0!==b&&d.length>0&&(g++,d.push(h("",null,"divider",e+"div"))),g++,d.push(h(w,null,"dropdown-header"+v,e))}if(c.options.hideDisabled&&t)return void g--;d.push(h(j(m,"opt "+k+v,l,n),b,"",e))}else if(f.data("divider")===!0)d.push(h("",b,"divider"));else if(f.data("hidden")===!0)d.push(h(j(m,k,l,n),b,"hidden is-hidden"));else{var z=this.previousElementSibling&&"OPTGROUP"===this.previousElementSibling.tagName;if(!z&&c.options.hideDisabled)for(var A=a(this).prevAll(),B=0;B<A.length;B++)if("OPTGROUP"===A[B].tagName){for(var C=0,D=0;D<B;D++){var E=A[D];(E.disabled||a(E).data("hidden")===!0)&&C++}C===B&&(z=!0);break}z&&(g++,d.push(h("",null,"divider",e+"div"))),d.push(h(j(m,k,l,n),b))}c.liObj[b]=g}}),this.multiple||0!==this.$element.find("option:selected").length||this.options.title||this.$element.find("option").eq(0).prop("selected",!0).attr("selected","selected"),d.join("")},findLis:function(){return null==this.$lis&&(this.$lis=this.$menu.find("li")),this.$lis},render:function(b){var c,d=this;b!==!1&&this.$element.find("option").each(function(a){var b=d.findLis().eq(d.liObj[a]);d.setDisabled(a,this.disabled||"OPTGROUP"===this.parentNode.tagName&&this.parentNode.disabled,b),d.setSelected(a,this.selected,b)}),this.togglePlaceholder(),this.tabIndex();var e=this.$element.find("option").map(function(){if(this.selected){if(d.options.hideDisabled&&(this.disabled||"OPTGROUP"===this.parentNode.tagName&&this.parentNode.disabled))return;var b,c=a(this),e=c.data("icon")&&d.options.showIcon?'<i class="'+d.options.iconBase+" "+c.data("icon")+'"></i> ':"";return b=d.options.showSubtext&&c.data("subtext")&&!d.multiple?' <small class="text-muted">'+c.data("subtext")+"</small>":"","undefined"!=typeof c.attr("title")?c.attr("title"):c.data("content")&&d.options.showContent?c.data("content").toString():e+c.html()+b}}).toArray(),f=this.multiple?e.join(this.options.multipleSeparator):e[0];if(this.multiple&&this.options.selectedTextFormat.indexOf("count")>-1){var g=this.options.selectedTextFormat.split(">");if(g.length>1&&e.length>g[1]||1==g.length&&e.length>=2){c=this.options.hideDisabled?", [disabled]":"";var h=this.$element.find("option").not('[data-divider="true"], [data-hidden="true"]'+c).length,i="function"==typeof this.options.countSelectedText?this.options.countSelectedText(e.length,h):this.options.countSelectedText;f=i.replace("{0}",e.length.toString()).replace("{1}",h.toString())}}void 0==this.options.title&&(this.options.title=this.$element.attr("title")),"static"==this.options.selectedTextFormat&&(f=this.options.title),f||(f="undefined"!=typeof this.options.title?this.options.title:this.options.noneSelectedText),this.$button.attr("title",j(a.trim(f.replace(/<[^>]*>?/g,"")))),this.$button.children(".filter-option").html(f),this.$element.trigger("rendered.bs.select")},setStyle:function(a,b){this.$element.attr("class")&&this.$newElement.addClass(this.$element.attr("class").replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi,""));var c=a?a:this.options.style;"add"==b?this.$button.addClass(c):"remove"==b?this.$button.removeClass(c):(this.$button.removeClass(this.options.style),this.$button.addClass(c))},liHeight:function(b){if(b||this.options.size!==!1&&!this.sizeInfo){var c=document.createElement("div"),d=document.createElement("div"),e=document.createElement("ul"),f=document.createElement("li"),g=document.createElement("li"),h=document.createElement("a"),i=document.createElement("span"),j=this.options.header&&this.$menu.find(".popover-title").length>0?this.$menu.find(".popover-title")[0].cloneNode(!0):null,k=this.options.liveSearch?document.createElement("div"):null,l=this.options.actionsBox&&this.multiple&&this.$menu.find(".bs-actionsbox").length>0?this.$menu.find(".bs-actionsbox")[0].cloneNode(!0):null,m=this.options.doneButton&&this.multiple&&this.$menu.find(".bs-donebutton").length>0?this.$menu.find(".bs-donebutton")[0].cloneNode(!0):null;if(i.className="text",c.className=this.$menu[0].parentNode.className+" open",d.className="dropdown-menu open",e.className="dropdown-menu inner",f.className="divider",i.appendChild(document.createTextNode("Inner text")),h.appendChild(i),g.appendChild(h),e.appendChild(g),e.appendChild(f),j&&d.appendChild(j),k){var n=document.createElement("input");k.className="bs-searchbox",n.className="form-control",k.appendChild(n),d.appendChild(k)}l&&d.appendChild(l),d.appendChild(e),m&&d.appendChild(m),c.appendChild(d),document.body.appendChild(c);var o=h.offsetHeight,p=j?j.offsetHeight:0,q=k?k.offsetHeight:0,r=l?l.offsetHeight:0,s=m?m.offsetHeight:0,t=a(f).outerHeight(!0),u="function"==typeof getComputedStyle&&getComputedStyle(d),v=u?null:a(d),w={vert:parseInt(u?u.paddingTop:v.css("paddingTop"))+parseInt(u?u.paddingBottom:v.css("paddingBottom"))+parseInt(u?u.borderTopWidth:v.css("borderTopWidth"))+parseInt(u?u.borderBottomWidth:v.css("borderBottomWidth")),horiz:parseInt(u?u.paddingLeft:v.css("paddingLeft"))+parseInt(u?u.paddingRight:v.css("paddingRight"))+parseInt(u?u.borderLeftWidth:v.css("borderLeftWidth"))+parseInt(u?u.borderRightWidth:v.css("borderRightWidth"))},x={vert:w.vert+parseInt(u?u.marginTop:v.css("marginTop"))+parseInt(u?u.marginBottom:v.css("marginBottom"))+2,horiz:w.horiz+parseInt(u?u.marginLeft:v.css("marginLeft"))+parseInt(u?u.marginRight:v.css("marginRight"))+2};document.body.removeChild(c),this.sizeInfo={liHeight:o,headerHeight:p,searchHeight:q,actionsHeight:r,doneButtonHeight:s,dividerHeight:t,menuPadding:w,menuExtras:x}}},setSize:function(){if(this.findLis(),this.liHeight(),this.options.header&&this.$menu.css("padding-top",0),this.options.size!==!1){var b,c,d,e,f,g,h,i,j=this,k=this.$menu,l=this.$menuInner,m=a(window),n=this.$newElement[0].offsetHeight,o=this.$newElement[0].offsetWidth,p=this.sizeInfo.liHeight,q=this.sizeInfo.headerHeight,r=this.sizeInfo.searchHeight,s=this.sizeInfo.actionsHeight,t=this.sizeInfo.doneButtonHeight,u=this.sizeInfo.dividerHeight,v=this.sizeInfo.menuPadding,w=this.sizeInfo.menuExtras,x=this.options.hideDisabled?".disabled":"",y=function(){var b,c=j.$newElement.offset(),d=a(j.options.container);j.options.container&&!d.is("body")?(b=d.offset(),b.top+=parseInt(d.css("borderTopWidth")),b.left+=parseInt(d.css("borderLeftWidth"))):b={top:0,left:0};var e=j.options.windowPadding;f=c.top-b.top-m.scrollTop(),g=m.height()-f-n-b.top-e[2],h=c.left-b.left-m.scrollLeft(),i=m.width()-h-o-b.left-e[1],f-=e[0],h-=e[3]};if(y(),"auto"===this.options.size){var z=function(){var m,n=function(b,c){return function(d){return c?d.classList?d.classList.contains(b):a(d).hasClass(b):!(d.classList?d.classList.contains(b):a(d).hasClass(b))}},u=j.$menuInner[0].getElementsByTagName("li"),x=Array.prototype.filter?Array.prototype.filter.call(u,n("hidden",!1)):j.$lis.not(".hidden"),z=Array.prototype.filter?Array.prototype.filter.call(x,n("dropdown-header",!0)):x.filter(".dropdown-header");y(),b=g-w.vert,c=i-w.horiz,j.options.container?(k.data("height")||k.data("height",k.height()),d=k.data("height"),k.data("width")||k.data("width",k.width()),e=k.data("width")):(d=k.height(),e=k.width()),j.options.dropupAuto&&j.$newElement.toggleClass("dropup",f>g&&b-w.vert<d),j.$newElement.hasClass("dropup")&&(b=f-w.vert),"auto"===j.options.dropdownAlignRight&&k.toggleClass("dropdown-menu-right",h>i&&c-w.horiz<e-o),m=x.length+z.length>3?3*p+w.vert-2:0,k.css({"max-height":b+"px",overflow:"hidden","min-height":m+q+r+s+t+"px"}),l.css({"max-height":b-q-r-s-t-v.vert+"px","overflow-y":"auto","min-height":Math.max(m-v.vert,0)+"px"})};z(),this.$searchbox.off("input.getSize propertychange.getSize").on("input.getSize propertychange.getSize",z),m.off("resize.getSize scroll.getSize").on("resize.getSize scroll.getSize",z)}else if(this.options.size&&"auto"!=this.options.size&&this.$lis.not(x).length>this.options.size){var A=this.$lis.not(".divider").not(x).children().slice(0,this.options.size).last().parent().index(),B=this.$lis.slice(0,A+1).filter(".divider").length;b=p*this.options.size+B*u+v.vert,j.options.container?(k.data("height")||k.data("height",k.height()),d=k.data("height")):d=k.height(),j.options.dropupAuto&&this.$newElement.toggleClass("dropup",f>g&&b-w.vert<d),k.css({"max-height":b+q+r+s+t+"px",overflow:"hidden","min-height":""}),l.css({"max-height":b-v.vert+"px","overflow-y":"auto","min-height":""})}}},setWidth:function(){if("auto"===this.options.width){this.$menu.css("min-width","0");var a=this.$menu.parent().clone().appendTo("body"),b=this.options.container?this.$newElement.clone().appendTo("body"):a,c=a.children(".dropdown-menu").outerWidth(),d=b.css("width","auto").children("button").outerWidth();a.remove(),b.remove(),this.$newElement.css("width",Math.max(c,d)+"px")}else"fit"===this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width","").addClass("fit-width")):this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width",this.options.width)):(this.$menu.css("min-width",""),this.$newElement.css("width",""));this.$newElement.hasClass("fit-width")&&"fit"!==this.options.width&&this.$newElement.removeClass("fit-width")},selectPosition:function(){this.$bsContainer=a('<div class="bs-container" />');var b,c,d,e=this,f=a(this.options.container),g=function(a){e.$bsContainer.addClass(a.attr("class").replace(/form-control|fit-width/gi,"")).toggleClass("dropup",a.hasClass("dropup")),b=a.offset(),f.is("body")?c={top:0,left:0}:(c=f.offset(),c.top+=parseInt(f.css("borderTopWidth"))-f.scrollTop(),c.left+=parseInt(f.css("borderLeftWidth"))-f.scrollLeft()),d=a.hasClass("dropup")?0:a[0].offsetHeight,e.$bsContainer.css({top:b.top-c.top+d,left:b.left-c.left,width:a[0].offsetWidth})};this.$button.on("click",function(){var b=a(this);e.isDisabled()||(g(e.$newElement),e.$bsContainer.appendTo(e.options.container).toggleClass("open",!b.hasClass("open")).append(e.$menu))}),a(window).on("resize scroll",function(){g(e.$newElement)}),this.$element.on("hide.bs.select",function(){e.$menu.data("height",e.$menu.height()),e.$bsContainer.detach()})},setSelected:function(a,b,c){c||(this.togglePlaceholder(),c=this.findLis().eq(this.liObj[a])),c.toggleClass("selected",b).find("a").attr("aria-selected",b)},setDisabled:function(a,b,c){c||(c=this.findLis().eq(this.liObj[a])),b?c.addClass("disabled").children("a").attr("href","#").attr("tabindex",-1).attr("aria-disabled",!0):c.removeClass("disabled").children("a").removeAttr("href").attr("tabindex",0).attr("aria-disabled",!1)},isDisabled:function(){return this.$element[0].disabled},checkDisabled:function(){var a=this;this.isDisabled()?(this.$newElement.addClass("disabled"),this.$button.addClass("disabled").attr("tabindex",-1).attr("aria-disabled",!0)):(this.$button.hasClass("disabled")&&(this.$newElement.removeClass("disabled"),this.$button.removeClass("disabled").attr("aria-disabled",!1)),this.$button.attr("tabindex")!=-1||this.$element.data("tabindex")||this.$button.removeAttr("tabindex")),this.$button.click(function(){return!a.isDisabled()})},togglePlaceholder:function(){var a=this.$element.val();this.$button.toggleClass("bs-placeholder",null===a||""===a||a.constructor===Array&&0===a.length)},tabIndex:function(){this.$element.data("tabindex")!==this.$element.attr("tabindex")&&this.$element.attr("tabindex")!==-98&&"-98"!==this.$element.attr("tabindex")&&(this.$element.data("tabindex",this.$element.attr("tabindex")),this.$button.attr("tabindex",this.$element.data("tabindex"))),this.$element.attr("tabindex",-98)},clickListener:function(){var b=this,c=a(document);c.data("spaceSelect",!1),this.$button.on("keyup",function(a){/(32)/.test(a.keyCode.toString(10))&&c.data("spaceSelect")&&(a.preventDefault(),c.data("spaceSelect",!1))}),this.$button.on("click",function(){b.setSize()}),this.$element.on("shown.bs.select",function(){if(b.options.liveSearch||b.multiple){if(!b.multiple){var a=b.liObj[b.$element[0].selectedIndex];if("number"!=typeof a||b.options.size===!1)return;var c=b.$lis.eq(a)[0].offsetTop-b.$menuInner[0].offsetTop;c=c-b.$menuInner[0].offsetHeight/2+b.sizeInfo.liHeight/2,b.$menuInner[0].scrollTop=c}}else b.$menuInner.find(".selected a").focus()}),this.$menuInner.on("click","li a",function(c){var d=a(this),f=d.parent().data("originalIndex"),g=b.$element.val(),h=b.$element.prop("selectedIndex"),i=!0;if(b.multiple&&1!==b.options.maxOptions&&c.stopPropagation(),c.preventDefault(),!b.isDisabled()&&!d.parent().hasClass("disabled")){var j=b.$element.find("option"),k=j.eq(f),l=k.prop("selected"),m=k.parent("optgroup"),n=b.options.maxOptions,o=m.data("maxOptions")||!1;if(b.multiple){if(k.prop("selected",!l),b.setSelected(f,!l),d.blur(),n!==!1||o!==!1){var p=n<j.filter(":selected").length,q=o<m.find("option:selected").length;if(n&&p||o&&q)if(n&&1==n)j.prop("selected",!1),k.prop("selected",!0),b.$menuInner.find(".selected").removeClass("selected"),b.setSelected(f,!0);else if(o&&1==o){m.find("option:selected").prop("selected",!1),k.prop("selected",!0);var r=d.parent().data("optgroup");b.$menuInner.find('[data-optgroup="'+r+'"]').removeClass("selected"),b.setSelected(f,!0)}else{var s="string"==typeof b.options.maxOptionsText?[b.options.maxOptionsText,b.options.maxOptionsText]:b.options.maxOptionsText,t="function"==typeof s?s(n,o):s,u=t[0].replace("{n}",n),v=t[1].replace("{n}",o),w=a('<div class="notify"></div>');t[2]&&(u=u.replace("{var}",t[2][n>1?0:1]),v=v.replace("{var}",t[2][o>1?0:1])),k.prop("selected",!1),b.$menu.append(w),n&&p&&(w.append(a("<div>"+u+"</div>")),i=!1,b.$element.trigger("maxReached.bs.select")),o&&q&&(w.append(a("<div>"+v+"</div>")),i=!1,b.$element.trigger("maxReachedGrp.bs.select")),setTimeout(function(){b.setSelected(f,!1)},10),w.delay(750).fadeOut(300,function(){a(this).remove()})}}}else j.prop("selected",!1),k.prop("selected",!0),b.$menuInner.find(".selected").removeClass("selected").find("a").attr("aria-selected",!1),b.setSelected(f,!0);!b.multiple||b.multiple&&1===b.options.maxOptions?b.$button.focus():b.options.liveSearch&&b.$searchbox.focus(),i&&(g!=b.$element.val()&&b.multiple||h!=b.$element.prop("selectedIndex")&&!b.multiple)&&(e=[f,k.prop("selected"),l],b.$element.triggerNative("change"))}}),this.$menu.on("click","li.disabled a, .popover-title, .popover-title :not(.close)",function(c){c.currentTarget==this&&(c.preventDefault(),c.stopPropagation(),b.options.liveSearch&&!a(c.target).hasClass("close")?b.$searchbox.focus():b.$button.focus())}),this.$menuInner.on("click",".divider, .dropdown-header",function(a){a.preventDefault(),a.stopPropagation(),b.options.liveSearch?b.$searchbox.focus():b.$button.focus()}),this.$menu.on("click",".popover-title .close",function(){b.$button.click()}),this.$searchbox.on("click",function(a){a.stopPropagation()}),this.$menu.on("click",".actions-btn",function(c){b.options.liveSearch?b.$searchbox.focus():b.$button.focus(),c.preventDefault(),c.stopPropagation(),a(this).hasClass("bs-select-all")?b.selectAll():b.deselectAll()}),this.$element.change(function(){b.render(!1),b.$element.trigger("changed.bs.select",e),e=null})},liveSearchListener:function(){var c=this,d=a('<li class="no-results"></li>');this.$button.on("click.dropdown.data-api",function(){c.$menuInner.find(".active").removeClass("active"),c.$searchbox.val()&&(c.$searchbox.val(""),c.$lis.not(".is-hidden").removeClass("hidden"),d.parent().length&&d.remove()),c.multiple||c.$menuInner.find(".selected").addClass("active"),setTimeout(function(){c.$searchbox.focus()},10)}),this.$searchbox.on("click.dropdown.data-api focus.dropdown.data-api touchend.dropdown.data-api",function(a){a.stopPropagation()}),this.$searchbox.on("input propertychange",function(){if(c.$lis.not(".is-hidden").removeClass("hidden"),c.$lis.filter(".active").removeClass("active"),d.remove(),c.$searchbox.val()){var e,f=c.$lis.not(".is-hidden, .divider, .dropdown-header");if(e=c.options.liveSearchNormalize?f.find("a").not(":a"+c._searchStyle()+'("'+b(c.$searchbox.val())+'")'):f.find("a").not(":"+c._searchStyle()+'("'+c.$searchbox.val()+'")'),e.length===f.length)d.html(c.options.noneResultsText.replace("{0}",'"'+i(c.$searchbox.val())+'"')),c.$menuInner.append(d),c.$lis.addClass("hidden");else{e.parent().addClass("hidden");var g,h=c.$lis.not(".hidden");h.each(function(b){var c=a(this);c.hasClass("divider")?void 0===g?c.addClass("hidden"):(g&&g.addClass("hidden"),g=c):c.hasClass("dropdown-header")&&h.eq(b+1).data("optgroup")!==c.data("optgroup")?c.addClass("hidden"):g=null}),g&&g.addClass("hidden"),f.not(".hidden").first().addClass("active")}}})},_searchStyle:function(){var a={begins:"ibegins",startsWith:"ibegins"};return a[this.options.liveSearchStyle]||"icontains"},val:function(a){return"undefined"!=typeof a?(this.$element.val(a),this.render(),this.$element):this.$element.val()},changeAll:function(b){if(this.multiple){"undefined"==typeof b&&(b=!0),this.findLis();var c=this.$element.find("option"),d=this.$lis.not(".divider, .dropdown-header, .disabled, .hidden"),e=d.length,f=[];if(b){if(d.filter(".selected").length===d.length)return}else if(0===d.filter(".selected").length)return;d.toggleClass("selected",b);for(var g=0;g<e;g++){var h=d[g].getAttribute("data-original-index");f[f.length]=c.eq(h)[0]}a(f).prop("selected",b),this.render(!1),this.togglePlaceholder(),this.$element.triggerNative("change")}},selectAll:function(){return this.changeAll(!0)},deselectAll:function(){return this.changeAll(!1)},toggle:function(a){a=a||window.event,a&&a.stopPropagation(),this.$button.trigger("click")},keydown:function(c){var d,e,f,g,h,i,j,k,l,m=a(this),n=m.is("input")?m.parent().parent():m.parent(),o=n.data("this"),p=":not(.disabled, .hidden, .dropdown-header, .divider)",q={32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9"};if(o.options.liveSearch&&(n=m.parent().parent()),o.options.container&&(n=o.$menu),d=a('[role="listbox"] li',n),l=o.$newElement.hasClass("open"),!l&&(c.keyCode>=48&&c.keyCode<=57||c.keyCode>=96&&c.keyCode<=105||c.keyCode>=65&&c.keyCode<=90))return o.options.container?o.$button.trigger("click"):(o.setSize(),o.$menu.parent().addClass("open"),l=!0),void o.$searchbox.focus();if(o.options.liveSearch&&(/(^9$|27)/.test(c.keyCode.toString(10))&&l&&(c.preventDefault(),c.stopPropagation(),o.$menuInner.click(),o.$button.focus()),d=a('[role="listbox"] li'+p,n),m.val()||/(38|40)/.test(c.keyCode.toString(10))||0===d.filter(".active").length&&(d=o.$menuInner.find("li"),d=o.options.liveSearchNormalize?d.filter(":a"+o._searchStyle()+"("+b(q[c.keyCode])+")"):d.filter(":"+o._searchStyle()+"("+q[c.keyCode]+")"))),d.length){if(/(38|40)/.test(c.keyCode.toString(10)))e=d.index(d.find("a").filter(":focus").parent()),g=d.filter(p).first().index(),h=d.filter(p).last().index(),f=d.eq(e).nextAll(p).eq(0).index(),i=d.eq(e).prevAll(p).eq(0).index(),j=d.eq(f).prevAll(p).eq(0).index(),o.options.liveSearch&&(d.each(function(b){a(this).hasClass("disabled")||a(this).data("index",b)}),e=d.index(d.filter(".active")),g=d.first().data("index"),h=d.last().data("index"),f=d.eq(e).nextAll().eq(0).data("index"),i=d.eq(e).prevAll().eq(0).data("index"),j=d.eq(f).prevAll().eq(0).data("index")),k=m.data("prevIndex"),38==c.keyCode?(o.options.liveSearch&&e--,e!=j&&e>i&&(e=i),e<g&&(e=g),e==k&&(e=h)):40==c.keyCode&&(o.options.liveSearch&&e++,e==-1&&(e=0),e!=j&&e<f&&(e=f),e>h&&(e=h),e==k&&(e=g)),m.data("prevIndex",e),o.options.liveSearch?(c.preventDefault(),m.hasClass("dropdown-toggle")||(d.removeClass("active").eq(e).addClass("active").children("a").focus(),m.focus())):d.eq(e).children("a").focus();else if(!m.is("input")){var r,s,t=[];d.each(function(){a(this).hasClass("disabled")||a.trim(a(this).children("a").text().toLowerCase()).substring(0,1)==q[c.keyCode]&&t.push(a(this).index())}),r=a(document).data("keycount"),r++,a(document).data("keycount",r),s=a.trim(a(":focus").text().toLowerCase()).substring(0,1),s!=q[c.keyCode]?(r=1,a(document).data("keycount",r)):r>=t.length&&(a(document).data("keycount",0),r>t.length&&(r=1)),d.eq(t[r-1]).children("a").focus()}if((/(13|32)/.test(c.keyCode.toString(10))||/(^9$)/.test(c.keyCode.toString(10))&&o.options.selectOnTab)&&l){if(/(32)/.test(c.keyCode.toString(10))||c.preventDefault(),o.options.liveSearch)/(32)/.test(c.keyCode.toString(10))||(o.$menuInner.find(".active a").click(),

 m.focus());else{var u=a(":focus");u.click(),u.focus(),c.preventDefault(),a(document).data("spaceSelect",!0)}a(document).data("keycount",0)}(/(^9$|27)/.test(c.keyCode.toString(10))&&l&&(o.multiple||o.options.liveSearch)||/(27)/.test(c.keyCode.toString(10))&&!l)&&(o.$menu.parent().removeClass("open"),o.options.container&&o.$newElement.removeClass("open"),o.$button.focus())}},mobile:function(){this.$element.addClass("mobile-device")},refresh:function(){this.$lis=null,this.liObj={},this.reloadLi(),this.render(),this.checkDisabled(),this.liHeight(!0),this.setStyle(),this.setWidth(),this.$lis&&this.$searchbox.trigger("propertychange"),this.$element.trigger("refreshed.bs.select")},hide:function(){this.$newElement.hide()},show:function(){this.$newElement.show()},remove:function(){this.$newElement.remove(),this.$element.remove()},destroy:function(){this.$newElement.before(this.$element).remove(),this.$bsContainer?this.$bsContainer.remove():this.$menu.remove(),this.$element.off(".bs.select").removeData("selectpicker").removeClass("bs-select-hidden selectpicker")}};var l=a.fn.selectpicker;a.fn.selectpicker=c,a.fn.selectpicker.Constructor=k,a.fn.selectpicker.noConflict=function(){return a.fn.selectpicker=l,this},a(document).data("keycount",0).on("keydown.bs.select",'.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="listbox"], .bs-searchbox input',k.prototype.keydown).on("focusin.modal",'.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="listbox"], .bs-searchbox input',function(a){a.stopPropagation()}),a(window).on("load.bs.select.data-api",function(){a(".selectpicker").each(function(){var b=a(this);c.call(b,b.data())})})}(a)});
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/js/build/005-bootstrap-filestyle.min.js b/mailcow/src/mailcow-dockerized/data/web/js/build/005-bootstrap-filestyle.min.js
deleted file mode 100644
index 9aa702c..0000000
--- a/mailcow/src/mailcow-dockerized/data/web/js/build/005-bootstrap-filestyle.min.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * bootstrap-filestyle
- * doc: http://markusslima.github.io/bootstrap-filestyle/
- * github: https://github.com/markusslima/bootstrap-filestyle
- *
- * Copyright (c) 2017 Markus Vinicius da Silva Lima
- * Version 1.2.3
- * Licensed under the MIT license.
- */
-!function(t){"use strict";var e=0,i=function(e,i){this.options=i,this.$elementFilestyle=[],this.$element=t(e)};i.prototype={clear:function(){this.$element.val(""),this.$elementFilestyle.find(":text").val(""),this.$elementFilestyle.find(".badge").remove()},destroy:function(){this.$element.removeAttr("style").removeData("filestyle"),this.$elementFilestyle.remove()},disabled:function(t){if(!0===t)this.options.disabled||(this.$element.attr("disabled","true"),this.$elementFilestyle.find("label").attr("disabled","true"),this.options.disabled=!0);else{if(!1!==t)return this.options.disabled;this.options.disabled&&(this.$element.removeAttr("disabled"),this.$elementFilestyle.find("label").removeAttr("disabled"),this.options.disabled=!1)}},buttonBefore:function(t){if(!0===t)this.options.buttonBefore||(this.options.buttonBefore=!0,this.options.input&&(this.$elementFilestyle.remove(),this.constructor(),this.pushNameFiles()));else{if(!1!==t)return this.options.buttonBefore;this.options.buttonBefore&&(this.options.buttonBefore=!1,this.options.input&&(this.$elementFilestyle.remove(),this.constructor(),this.pushNameFiles()))}},icon:function(t){if(!0===t)this.options.icon||(this.options.icon=!0,this.$elementFilestyle.find("label").prepend(this.htmlIcon()));else{if(!1!==t)return this.options.icon;this.options.icon&&(this.options.icon=!1,this.$elementFilestyle.find(".icon-span-filestyle").remove())}},input:function(t){if(!0===t)this.options.input||(this.options.input=!0,this.options.buttonBefore?this.$elementFilestyle.append(this.htmlInput()):this.$elementFilestyle.prepend(this.htmlInput()),this.$elementFilestyle.find(".badge").remove(),this.pushNameFiles(),this.$elementFilestyle.find(".group-span-filestyle").addClass("input-group-btn"));else{if(!1!==t)return this.options.input;if(this.options.input){this.options.input=!1,this.$elementFilestyle.find(":text").remove();var e=this.pushNameFiles();e.length>0&&this.options.badge&&this.$elementFilestyle.find("label").append(' <span class="badge">'+e.length+"</span>"),this.$elementFilestyle.find(".group-span-filestyle").removeClass("input-group-btn")}}},size:function(t){if(void 0===t)return this.options.size;var e=this.$elementFilestyle.find("label"),i=this.$elementFilestyle.find("input");e.removeClass("btn-lg btn-sm"),i.removeClass("input-lg input-sm"),"nr"!=t&&(e.addClass("btn-"+t),i.addClass("input-"+t))},placeholder:function(t){if(void 0===t)return this.options.placeholder;this.options.placeholder=t,this.$elementFilestyle.find("input").attr("placeholder",t)},buttonText:function(t){if(void 0===t)return this.options.buttonText;this.options.buttonText=t,this.$elementFilestyle.find("label .buttonText").html(this.options.buttonText)},buttonName:function(t){if(void 0===t)return this.options.buttonName;this.options.buttonName=t,this.$elementFilestyle.find("label").attr({class:"btn "+this.options.buttonName})},iconName:function(t){if(void 0===t)return this.options.iconName;this.$elementFilestyle.find(".icon-span-filestyle").attr({class:"icon-span-filestyle "+this.options.iconName})},htmlIcon:function(){return this.options.icon?'<span style="margin-right: 3px;" class="icon-span-filestyle '+this.options.iconName+'"></span> ':""},htmlInput:function(){return this.options.input?'<input type="text" class="form-control '+("nr"==this.options.size?"":"input-"+this.options.size)+'" placeholder="'+this.options.placeholder+'" disabled> ':""},pushNameFiles:function(){var t="",e=[];void 0===this.$element[0].files?e[0]={name:this.$element[0]&&this.$element[0].value}:e=this.$element[0].files;for(var i=0;i<e.length;i++)t+=e[i].name.split("\\").pop()+", ";return""!==t?this.$elementFilestyle.find(":text").val(t.replace(/\, $/g,"")):this.$elementFilestyle.find(":text").val(""),e},constructor:function(){var i=this,n="",s=i.$element.attr("id"),l="";""!==s&&s||(s="filestyle-"+e,i.$element.attr({id:s}),e++),l='<span class="group-span-filestyle '+(i.options.input?"input-group-btn":"")+'"><label for="'+s+'" class="btn '+i.options.buttonName+" "+("nr"==i.options.size?"":"btn-"+i.options.size)+'" '+(i.options.disabled||i.$element.attr("disabled")?'disabled="true"':"")+">"+i.htmlIcon()+'<span class="buttonText">'+i.options.buttonText+"</span></label></span>",n=i.options.buttonBefore?l+i.htmlInput():i.htmlInput()+l,i.$elementFilestyle=t('<div class="bootstrap-filestyle input-group">'+n+"</div>"),i.$elementFilestyle.find(".group-span-filestyle").attr("tabindex","0").keypress(function(t){if(13===t.keyCode||32===t.charCode)return i.$elementFilestyle.find("label").click(),!1}),i.$element.css({position:"absolute",clip:"rect(0px 0px 0px 0px)"}).attr("tabindex","-1").after(i.$elementFilestyle),(i.options.disabled||i.$element.attr("disabled"))&&i.$element.attr("disabled","true"),i.$element.change(function(){var t=i.pushNameFiles();0==i.options.input&&i.options.badge?0==i.$elementFilestyle.find(".badge").length?i.$elementFilestyle.find("label").append(' <span class="badge">'+t.length+"</span>"):0==t.length?i.$elementFilestyle.find(".badge").remove():i.$elementFilestyle.find(".badge").html(t.length):i.$elementFilestyle.find(".badge").remove()}),window.navigator.userAgent.search(/firefox/i)>-1&&i.$elementFilestyle.find("label").click(function(){return i.$element.click(),!1})}};var n=t.fn.filestyle;t.fn.filestyle=function(e,n){var s="",l=this.each(function(){if("file"===t(this).attr("type")){var l=t(this),o=l.data("filestyle"),a=t.extend({},t.fn.filestyle.defaults,e,"object"==typeof e&&e);o||(l.data("filestyle",o=new i(this,a)),o.constructor()),"string"==typeof e&&(s=o[e](n))}});return void 0!==typeof s?s:l},t.fn.filestyle.defaults={buttonText:"Choose file",iconName:"glyphicon glyphicon-folder-open",buttonName:"btn-default",size:"nr",input:!0,badge:!0,icon:!0,buttonBefore:!1,disabled:!1,placeholder:""},t.fn.filestyle.noConflict=function(){return t.fn.filestyle=n,this},t(function(){t(".filestyle").each(function(){var e=t(this),i={input:"false"!==e.attr("data-input"),icon:"false"!==e.attr("data-icon"),buttonBefore:"true"===e.attr("data-buttonBefore"),disabled:"true"===e.attr("data-disabled"),size:e.attr("data-size"),buttonText:e.attr("data-buttonText"),buttonName:e.attr("data-buttonName"),iconName:e.attr("data-iconName"),badge:"false"!==e.attr("data-badge"),placeholder:e.attr("data-placeholder")};e.filestyle(i)})})}(window.jQuery);
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/js/build/013-bootstrap-tabcollapse.js b/mailcow/src/mailcow-dockerized/data/web/js/build/013-bootstrap-tabcollapse.js
new file mode 100644
index 0000000..6a5f9b8
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/js/build/013-bootstrap-tabcollapse.js
@@ -0,0 +1,239 @@
+!function ($) {
+
+    "use strict";
+
+    // TABCOLLAPSE CLASS DEFINITION
+    // ======================
+
+    var TabCollapse = function (el, options) {
+        this.options   = options;
+        this.$tabs  = $(el);
+
+        this._accordionVisible = false; //content is attached to tabs at first
+        this._initAccordion();
+        this._checkStateOnResize();
+
+
+        // checkState() has gone to setTimeout for making it possible to attach listeners to
+        // shown-accordion.bs.tabcollapse event on page load.
+        // See https://github.com/flatlogic/bootstrap-tabcollapse/issues/23
+        var that = this;
+        setTimeout(function() {
+          that.checkState();
+        }, 0);
+    };
+
+    TabCollapse.DEFAULTS = {
+        accordionClass: 'visible-xs',
+        tabsClass: 'hidden-xs',
+        accordionTemplate: function(heading, groupId, parentId, active) {
+            return  '<div class="panel panel-default">' +
+                    '   <div class="panel-heading">' +
+                    '      <h4 class="panel-title">' +
+                    '      </h4>' +
+                    '   </div>' +
+                    '   <div id="' + groupId + '" class="panel-collapse collapse ' + (active ? 'in' : '') + '">' +
+                    '       <div class="panel-body js-tabcollapse-panel-body">' +
+                    '       </div>' +
+                    '   </div>' +
+                    '</div>'
+
+        }
+    };
+
+    TabCollapse.prototype.checkState = function(){
+        if (this.$tabs.is(':visible') && this._accordionVisible){
+            this.showTabs();
+            this._accordionVisible = false;
+        } else if (this.$accordion.is(':visible') && !this._accordionVisible){
+            this.showAccordion();
+            this._accordionVisible = true;
+        }
+    };
+
+    TabCollapse.prototype.showTabs = function(){
+        var view = this;
+        this.$tabs.trigger($.Event('show-tabs.bs.tabcollapse'));
+
+        var $panelHeadings = this.$accordion.find('.js-tabcollapse-panel-heading').detach();
+
+        $panelHeadings.each(function() {
+            var $panelHeading = $(this),
+            $parentLi = $panelHeading.data('bs.tabcollapse.parentLi');
+
+            var $oldHeading = view._panelHeadingToTabHeading($panelHeading);
+
+            $parentLi.removeClass('active');
+            if ($parentLi.parent().hasClass('dropdown-menu') && !$parentLi.siblings('li').hasClass('active')) {
+                $parentLi.parent().parent().removeClass('active');
+            }
+
+            if (!$oldHeading.hasClass('collapsed')) {
+                $parentLi.addClass('active');
+                $('.tab-pane').removeClass('active');
+                $($panelHeading.attr('href')).addClass('active');
+                if ($parentLi.parent().hasClass('dropdown-menu')) {
+                    $parentLi.parent().parent().addClass('active');
+                }
+            } else {
+                $oldHeading.removeClass('collapsed');
+            }
+
+            $parentLi.append($panelHeading);
+        });
+
+        if (!$('li').hasClass('active')) {
+            $('li').first().addClass('active')
+        }
+
+        var $panelBodies = this.$accordion.find('.js-tabcollapse-panel-body');
+        $panelBodies.each(function(){
+            var $panelBody = $(this),
+                $tabPane = $panelBody.data('bs.tabcollapse.tabpane');
+            $tabPane.append($panelBody.contents().detach());
+        });
+        this.$accordion.html('');
+
+        if(this.options.updateLinks) {
+            var $tabContents = this.getTabContentElement();
+            $tabContents.find('[data-toggle-was="tab"], [data-toggle-was="pill"]').each(function() {
+                var $el = $(this);
+                var href = $el.attr('href').replace(/-collapse$/g, '');
+                $el.attr({
+                    'data-toggle': $el.attr('data-toggle-was'),
+                    'data-toggle-was': '',
+                    'data-parent': '',
+                    href: href
+                });
+            });
+        }
+
+        this.$tabs.trigger($.Event('shown-tabs.bs.tabcollapse'));
+    };
+
+    TabCollapse.prototype.getTabContentElement = function(){
+        var $tabContents = $(this.options.tabContentSelector);
+        if($tabContents.length === 0) {
+            $tabContents = this.$tabs.siblings('.tab-content');
+        }
+        return $tabContents;
+    };
+
+    TabCollapse.prototype.showAccordion = function(){
+        this.$tabs.trigger($.Event('show-accordion.bs.tabcollapse'));
+
+        var $headings = this.$tabs.find('li:not(.dropdown) [data-toggle="tab"], li:not(.dropdown) [data-toggle="pill"]'),
+            view = this;
+        $headings.each(function(){
+            var $heading = $(this),
+                $parentLi = $heading.parent();
+            $heading.data('bs.tabcollapse.parentLi', $parentLi);
+            view.$accordion.append(view._createAccordionGroup(view.$accordion.attr('id'), $heading.detach()));
+        });
+
+        if(this.options.updateLinks) {
+            var parentId = this.$accordion.attr('id');
+            var $selector = this.$accordion.find('.js-tabcollapse-panel-body');
+            $selector.find('[data-toggle="tab"], [data-toggle="pill"]').each(function() {
+                var $el = $(this);
+                var href = $el.attr('href') + '-collapse';
+                $el.attr({
+                    'data-toggle-was': $el.attr('data-toggle'),
+                    'data-toggle': 'collapse',
+                    'data-parent': '#' + parentId,
+                    href: href
+                });
+            });
+        }
+
+        this.$tabs.trigger($.Event('shown-accordion.bs.tabcollapse'));
+    };
+
+    TabCollapse.prototype._panelHeadingToTabHeading = function($heading) {
+        var href = $heading.attr('href').replace(/-collapse$/g, '');
+        $heading.attr({
+            'data-toggle': 'tab',
+            'href': href,
+            'data-parent': ''
+        });
+        return $heading;
+    };
+
+    TabCollapse.prototype._tabHeadingToPanelHeading = function($heading, groupId, parentId, active) {
+        $heading.addClass('js-tabcollapse-panel-heading ' + (active ? '' : 'collapsed'));
+        $heading.attr({
+            'data-toggle': 'collapse',
+            'data-parent': '#' + parentId,
+            'href': '#' + groupId
+        });
+        return $heading;
+    };
+
+    TabCollapse.prototype._checkStateOnResize = function(){
+        var view = this;
+        $(window).resize(function(){
+            clearTimeout(view._resizeTimeout);
+            view._resizeTimeout = setTimeout(function(){
+                view.checkState();
+            }, 100);
+        });
+    };
+
+
+    TabCollapse.prototype._initAccordion = function(){
+        var randomString = function() {
+            var result = "",
+                possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
+            for( var i=0; i < 5; i++ ) {
+                result += possible.charAt(Math.floor(Math.random() * possible.length));
+            }
+            return result;
+        };
+
+        var srcId = this.$tabs.attr('id'),
+            accordionId = (srcId ? srcId : randomString()) + '-accordion';
+
+        this.$accordion = $('<div class="panel-group ' + this.options.accordionClass + '" id="' + accordionId +'"></div>');
+        this.$tabs.after(this.$accordion);
+        this.$tabs.addClass(this.options.tabsClass);
+        this.getTabContentElement().addClass(this.options.tabsClass);
+    };
+
+    TabCollapse.prototype._createAccordionGroup = function(parentId, $heading){
+        var tabSelector = $heading.attr('data-target'),
+            active = $heading.data('bs.tabcollapse.parentLi').is('.active');
+
+        if (!tabSelector) {
+            tabSelector = $heading.attr('href');
+            tabSelector = tabSelector && tabSelector.replace(/.*(?=#[^\s]*$)/, ''); //strip for ie7
+        }
+
+        var $tabPane = $(tabSelector),
+            groupId = $tabPane.attr('id') + '-collapse',
+            $panel = $(this.options.accordionTemplate($heading, groupId, parentId, active));
+        $panel.find('.panel-heading > .panel-title').append(this._tabHeadingToPanelHeading($heading, groupId, parentId, active));
+        $panel.find('.panel-body').append($tabPane.contents().detach())
+            .data('bs.tabcollapse.tabpane', $tabPane);
+
+        return $panel;
+    };
+
+
+
+    // TABCOLLAPSE PLUGIN DEFINITION
+    // =======================
+
+    $.fn.tabCollapse = function (option) {
+        return this.each(function () {
+            var $this   = $(this);
+            var data    = $this.data('bs.tabcollapse');
+            var options = $.extend({}, TabCollapse.DEFAULTS, $this.data(), typeof option === 'object' && option);
+
+            if (!data) $this.data('bs.tabcollapse', new TabCollapse(this, options));
+        });
+    };
+
+    $.fn.tabCollapse.Constructor = TabCollapse;
+
+
+}(window.jQuery);
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/js/build/014-mailcow.js b/mailcow/src/mailcow-dockerized/data/web/js/build/014-mailcow.js
index 7f78c7f..90d8350 100644
--- a/mailcow/src/mailcow-dockerized/data/web/js/build/014-mailcow.js
+++ b/mailcow/src/mailcow-dockerized/data/web/js/build/014-mailcow.js
@@ -93,10 +93,20 @@
   }).remove();

 

   // selectpicker

-  $('select').selectpicker();

+  $('select').selectpicker({

+    'styleBase': 'btn btn-xs-lg',

+    'noneSelectedText': lang_footer.nothing_selected

+  });

 

-  // haveibeenpwned?

-  $('[data-hibp]').after('<p class="small haveibeenpwned">↪ Check against haveibeenpwned.com</p><span class="hibp-out"></span>');

+  // haveibeenpwned and passwd policy

+  $.ajax({

+    url: '/api/v1/get/passwordpolicy/html',

+    type: 'GET',

+    success: function(res) {

+      $(".hibp-out").after(res);

+    }

+  });

+  $('[data-hibp]').after('<p class="small haveibeenpwned"><i class="bi bi-shield-fill-exclamation"></i> ' + lang_footer.hibp_check + '</p><span class="hibp-out"></span>');

   $('[data-hibp]').on('input', function() {

     out_field = $(this).next('.haveibeenpwned').next('.hibp-out').text('').attr('class', 'hibp-out');

   });

@@ -188,7 +198,9 @@
     } else if ($(this).hasClass('btn')) {

       $(this).attr("disabled", true);

     } else if ($(this).attr('data-provide') == 'slider') {

-      $(this).slider("disable");

+      $(this).attr('disabled', true);

+    } else if ($(this).is(':checkbox')) {

+      $(this).attr("disabled", true);

     }

     $(this).data("toggle", "tooltip");

     $(this).attr("title", lang_acl.prohibited);

@@ -214,7 +226,7 @@
     $('#containerName').text(container);

     $('#triggerRestartContainer').click(function(){

       $(this).prop("disabled",true);

-      $(this).html('<span class="glyphicon glyphicon-refresh glyphicon-spin"></span> ');

+      $(this).html('<i class="bi bi-arrow-repeat icon-spin"></i> ');

       $('#statusTriggerRestartContainer').html(lang_footer.restarting_container);

       $.ajax({

         method: 'get',

@@ -229,15 +241,36 @@
         $('#statusTriggerRestartContainer').append(data);

         var htmlResponse = $.parseHTML(data)

         if ($(htmlResponse).find('span').hasClass('text-success')) {

-          $('#triggerRestartContainer').html('<span class="glyphicon glyphicon-ok"></span> ');

+          $('#triggerRestartContainer').html('<i class="bi bi-check-lg"></i> ');

           setTimeout(function(){

-            $('#RestartContainer').modal('toggle'); 

+            $('#RestartContainer').modal('toggle');

             window.location = window.location.href.split("#")[0];

           }, 1200);

         } else {

-          $('#triggerRestartContainer').html('<span class="glyphicon glyphicon-remove"></span> ');

+          $('#triggerRestartContainer').html('<i class="bi bi-slash-lg"></i> ');

         }

       })

     });

   })

+

+  // responsive tabs

+  $('.responsive-tabs').tabCollapse({

+    tabsClass: 'hidden-xs',

+    accordionClass: 'js-tabcollapse-panel-group visible-xs'

+  });

+  $(document).on("shown.bs.collapse shown.bs.tab", function (e) {

+	  var target = $(e.target);

+	  if($(window).width() <= 767) {

+		  var offset = target.offset().top - 112;

+		  $("html, body").stop().animate({

+		    scrollTop: offset

+		  }, 100);

+	  }

+	  if(target.hasClass('panel-collapse')){

+	    var id = e.target.id.replace(/-collapse$/g, '');

+	    if(id){

+          localStorage.setItem('lastTag', '#'+id);

+        }

+      }

+  });

 });

diff --git a/mailcow/src/mailcow-dockerized/data/web/js/site/admin.js b/mailcow/src/mailcow-dockerized/data/web/js/site/admin.js
index bdb2eaa..eac7b21 100644
--- a/mailcow/src/mailcow-dockerized/data/web/js/site/admin.js
+++ b/mailcow/src/mailcow-dockerized/data/web/js/site/admin.js
@@ -76,8 +76,8 @@
         {"name":"chkbox","title":"","style":{"maxWidth":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},

         {"sorted": true,"name":"username","title":lang.username,"style":{"width":"250px"}},

         {"name":"selected_domains","title":lang.admin_domains,"breakpoints":"xs sm"},

-        {"name":"tfa_active","title":"TFA", "filterable": false,"style":{"maxWidth":"80px","width":"80px"},"formatter": function(value){return 1==value?'&#10003;':0==value&&'&#10005;';}},

-        {"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'&#10003;':0==value&&'&#10005;';}},

+        {"name":"tfa_active","title":"TFA", "filterable": false,"style":{"maxWidth":"80px","width":"80px"},"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},

+        {"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},

         {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"250px","width":"250px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}

       ],

       "rows": $.ajax({

@@ -131,8 +131,8 @@
       "columns": [

         {"name":"chkbox","title":"","style":{"maxWidth":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},

         {"sorted": true,"name":"usr","title":lang.username,"style":{"width":"250px"}},

-        {"name":"tfa_active","title":"TFA", "filterable": false,"style":{"maxWidth":"80px","width":"80px"},"formatter": function(value){return 1==value?'&#10003;':0==value&&'&#10005;';}},

-        {"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'&#10003;':0==value&&'&#10005;';}},

+        {"name":"tfa_active","title":"TFA", "filterable": false,"style":{"maxWidth":"80px","width":"80px"},"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},

+        {"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},

         {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"250px","width":"250px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}

       ],

       "rows": $.ajax({

@@ -160,7 +160,7 @@
         {"name":"chkbox","title":"","style":{"maxWidth":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},

         {"name":"host","type":"text","title":lang.host,"style":{"width":"250px"}},

         {"name":"source","title":lang.source,"breakpoints":"xs sm"},

-        {"name":"keep_spam","title":lang.spamfilter, "type": "text","style":{"maxWidth":"80px","width":"80px"},"formatter": function(value){return 'yes'==value?'&#10005;':'no'==value&&'&#10003;';}},

+        {"name":"keep_spam","title":lang.spamfilter, "type": "text","style":{"maxWidth":"80px","width":"80px"},"formatter": function(value){return 'yes'==value?'<i class="bi bi-x-lg"></i>':'no'==value&&'<i class="bi bi-check-lg"></i>';}},

         {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}

       ],

       "rows": $.ajax({

@@ -187,9 +187,9 @@
         {"name":"id","type":"text","title":"ID","style":{"width":"50px"}},

         {"name":"hostname","type":"text","title":lang.host,"style":{"width":"250px"}},

         {"name":"username","title":lang.username,"breakpoints":"xs sm"},

-        {"name":"used_by_domains","title":lang.in_use_by,"style":{"width":"110px"}, "type": "text","breakpoints":"xs sm"},

-        {"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'&#10003;':0==value&&'&#10005;';}},

-        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"220px","width":"220px"},"type":"html","title":lang.action,"breakpoints":"xs sm md"}

+        {"name":"in_use_by","title":lang.in_use_by,"style":{"min-width":"200px","width":"200px"}, "type": "text","breakpoints":"xs sm"},

+        {"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},

+        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","min-width":"250px","width":"250px"},"type":"html","title":lang.action,"breakpoints":"xs sm md"}

       ],

       "rows": $.ajax({

         dataType: 'json',

@@ -209,15 +209,15 @@
     });

   }

   function draw_transport_maps() {

-    ft_relayhoststable = FooTable.init('#transportstable', {

+    ft_transportstable = FooTable.init('#transportstable', {

       "columns": [

         {"name":"chkbox","title":"","style":{"maxWidth":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},

         {"name":"id","type":"text","title":"ID","style":{"width":"50px"}},

-        {"name":"destination","type":"text","title":lang.destination,"style":{"width":"250px"}},

-        {"name":"nexthop","type":"text","title":lang.nexthop,"style":{"width":"250px"}},

+        {"name":"destination","type":"text","title":lang.destination,"style":{"min-width":"300px","width":"300px"}},

+        {"name":"nexthop","type":"text","title":lang.nexthop,"style":{"min-width":"200px","width":"200px"}},

         {"name":"username","title":lang.username,"breakpoints":"xs sm"},

-        {"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'&#10003;':0==value&&'&#10005;';}},

-        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"220px","width":"220px"},"type":"html","title":lang.action,"breakpoints":"xs sm md"}

+        {"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},

+        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","min-width":"250px","width":"250px"},"type":"html","title":lang.action,"breakpoints":"xs sm md"}

       ],

       "rows": $.ajax({

         dataType: 'json',

@@ -233,7 +233,12 @@
       "empty": lang.empty,

       "paging": {"enabled": true,"limit": 5,"size": log_pagination_size},

       "sorting": {"enabled": true},

-      "toggleSelector": "table tbody span.footable-toggle"

+      "toggleSelector": "table tbody span.footable-toggle",

+      "on": {

+        "ready.ft.table": function(e, ft){

+          $('.mx-info').tooltip();

+        }

+      }

     });

   }

   function draw_queue() {

@@ -276,22 +281,28 @@
   function process_table_data(data, table) {

     if (table == 'relayhoststable') {

       $.each(data, function (i, item) {

-        item.action = '<div class="btn-group">' +

-          '<a href="#" data-toggle="modal" data-target="#testTransportModal" data-transport-id="' + encodeURI(item.id) + '" data-transport-type="sender-dependent" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-triangle-right"></span> Test</a>' +

-          '<a href="/edit/relayhost/' + encodeURI(item.id) + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +

-          '<a href="#" data-action="delete_selected" data-id="single-rlyhost" data-api-url="delete/relayhost" data-item="' + encodeURI(item.id) + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +

+        item.action = '<div class="btn-group footable-actions">' +

+          '<a href="#" data-toggle="modal" data-target="#testTransportModal" data-transport-id="' + encodeURI(item.id) + '" data-transport-type="sender-dependent" class="btn btn-xs btn-xs-third btn-default"><i class="bi bi-caret-right-fill"></i> Test</a>' +

+          '<a href="/edit/relayhost/' + encodeURI(item.id) + '" class="btn btn-xs btn-xs-third btn-default"><i class="bi bi-pencil-fill"></i> ' + lang.edit + '</a>' +

+          '<a href="#" data-action="delete_selected" data-id="single-rlyhost" data-api-url="delete/relayhost" data-item="' + encodeURI(item.id) + '" class="btn btn-xs btn-xs-third btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +

           '</div>';

+        if (item.used_by_mailboxes == '') { item.in_use_by = item.used_by_domains; }

+        else if (item.used_by_domains == '') { item.in_use_by = item.used_by_mailboxes; }

+        else { item.in_use_by = item.used_by_mailboxes + '<hr style="margin:5px 0px 5px 0px;">' + item.used_by_domains; }

         item.chkbox = '<input type="checkbox" data-id="rlyhosts" name="multi_select" value="' + item.id + '" />';

       });

     } else if (table == 'transportstable') {

       $.each(data, function (i, item) {

-        if (item.username) {

-          item.username = '<span style="border-left:3px solid #' + intToRGB(hashCode(item.nexthop)) + ';padding-left:5px;">' + item.username + '</span>';

+        if (item.is_mx_based) {

+          item.destination = '<i class="bi bi-info-circle-fill text-info mx-info" data-toggle="tooltip" title="' + lang.is_mx_based + '"></i> <code>' + item.destination + '</code>';

         }

-        item.action = '<div class="btn-group">' +

-          '<a href="#" data-toggle="modal" data-target="#testTransportModal" data-transport-id="' + encodeURI(item.id) + '" data-transport-type="transport-map" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-triangle-right"></span> Test</a>' +

-          '<a href="/edit/transport/' + encodeURI(item.id) + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +

-          '<a href="#" data-action="delete_selected" data-id="single-transport" data-api-url="delete/transport" data-item="' + encodeURI(item.id) + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +

+        if (item.username) {

+          item.username = '<i style="color:#' + intToRGB(hashCode(item.nexthop)) + ';" class="bi bi-square-fill"></i> ' + item.username;

+        }

+        item.action = '<div class="btn-group footable-actions">' +

+          '<a href="#" data-toggle="modal" data-target="#testTransportModal" data-transport-id="' + encodeURI(item.id) + '" data-transport-type="transport-map" class="btn btn-xs btn-xs-third btn-default"><i class="bi bi-caret-right-fill"></i> Test</a>' +

+          '<a href="/edit/transport/' + encodeURI(item.id) + '" class="btn btn-xs btn-xs-third btn-default"><i class="bi bi-pencil-fill"></i> ' + lang.edit + '</a>' +

+          '<a href="#" data-action="delete_selected" data-id="single-transport" data-api-url="delete/transport" data-item="' + encodeURI(item.id) + '" class="btn btn-xs btn-xs-third btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +

           '</div>';

         item.chkbox = '<input type="checkbox" data-id="transports" name="multi_select" value="' + item.id + '" />';

       });

@@ -302,22 +313,22 @@
           return escapeHtml(i);

         });

         item.recipients = rcpts.join('<hr style="margin:1px!important">');

-        item.action = '<div class="btn-group">' +

+        item.action = '<div class="btn-group footable-actions">' +

           '<a href="#" data-toggle="modal" data-target="#showQueuedMsg" data-queue-id="' + encodeURI(item.queue_id) + '" class="btn btn-xs btn-default">' + lang.queue_show_message + '</a>' +

           '</div>';

       });

     } else if (table == 'forwardinghoststable') {

       $.each(data, function (i, item) {

-        item.action = '<div class="btn-group">' +

-          '<a href="#" data-action="delete_selected" data-id="single-fwdhost" data-api-url="delete/fwdhost" data-item="' + encodeURI(item.host) + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +

+        item.action = '<div class="btn-group footable-actions">' +

+          '<a href="#" data-action="delete_selected" data-id="single-fwdhost" data-api-url="delete/fwdhost" data-item="' + encodeURI(item.host) + '" class="btn btn-xs btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +

           '</div>';

         item.chkbox = '<input type="checkbox" data-id="fwdhosts" name="multi_select" value="' + item.host + '" />';

       });

     } else if (table == 'oauth2clientstable') {

       $.each(data, function (i, item) {

-        item.action = '<div class="btn-group">' +

-          '<a href="/edit.php?oauth2client=' + encodeURI(item.id) + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +

-          '<a href="#" data-action="delete_selected" data-id="single-oauth2-client" data-api-url="delete/oauth2-client" data-item="' + encodeURI(item.id) + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +

+        item.action = '<div class="btn-group footable-actions">' +

+          '<a href="/edit.php?oauth2client=' + encodeURI(item.id) + '" class="btn btn-xs btn-xs-half btn-default"><i class="bi bi-pencil-fill"></i> ' + lang.edit + '</a>' +

+          '<a href="#" data-action="delete_selected" data-id="single-oauth2-client" data-api-url="delete/oauth2-client" data-item="' + encodeURI(item.id) + '" class="btn btn-xs btn-xs-half btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +

           '</div>';

         item.scope = "profile";

         item.grant_types = 'refresh_token password authorization_code';

@@ -328,23 +339,23 @@
         item.selected_domains = escapeHtml(item.selected_domains);

         item.selected_domains = item.selected_domains.toString().replace(/,/g, "<br>");

         item.chkbox = '<input type="checkbox" data-id="domain_admins" name="multi_select" value="' + item.username + '" />';

-        item.action = '<div class="btn-group">' +

-          '<a href="/edit/domainadmin/' + encodeURI(item.username) + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +

-          '<a href="#" data-action="delete_selected" data-id="single-domain-admin" data-api-url="delete/domain-admin" data-item="' + encodeURI(item.username) + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +

-          '<a href="/index.php?duallogin=' + encodeURIComponent(item.username) + '" class="btn btn-xs btn-success"><span class="glyphicon glyphicon-user"></span> Login</a>' +

+        item.action = '<div class="btn-group footable-actions">' +

+          '<a href="/edit/domainadmin/' + encodeURI(item.username) + '" class="btn btn-xs btn-xs-third btn-default"><i class="bi bi-pencil-fill"></i> ' + lang.edit + '</a>' +

+          '<a href="#" data-action="delete_selected" data-id="single-domain-admin" data-api-url="delete/domain-admin" data-item="' + encodeURI(item.username) + '" class="btn btn-xs btn-xs-third btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +

+          '<a href="/index.php?duallogin=' + encodeURIComponent(item.username) + '" class="btn btn-xs btn-xs-third btn-success"><i class="bi bi-person-fill"></i> Login</a>' +

           '</div>';

       });

     } else if (table == 'adminstable') {

       $.each(data, function (i, item) {

         if (admin_username.toLowerCase() == item.username.toLowerCase()) {

-          item.usr = '→ ' + item.username;

+          item.usr = '<i class="bi bi-person-check"></i> ' + item.username;

         } else {

           item.usr = item.username;

         }

         item.chkbox = '<input type="checkbox" data-id="admins" name="multi_select" value="' + item.username + '" />';

-        item.action = '<div class="btn-group">' +

-          '<a href="/edit/admin/' + encodeURI(item.username) + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +

-          '<a href="#" data-action="delete_selected" data-id="single-admin" data-api-url="delete/admin" data-item="' + encodeURI(item.username) + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +

+        item.action = '<div class="btn-group footable-actions">' +

+          '<a href="/edit/admin/' + encodeURI(item.username) + '" class="btn btn-xs btn-xs-half btn-default"><i class="bi bi-pencil-fill"></i> ' + lang.edit + '</a>' +

+          '<a href="#" data-action="delete_selected" data-id="single-admin" data-api-url="delete/admin" data-item="' + encodeURI(item.username) + '" class="btn btn-xs btn-xs-half btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +

           '</div>';

       });

     }

@@ -358,6 +369,11 @@
   draw_oauth2_clients();

   draw_transport_maps();

   draw_queue();

+

+  $('body').on('click', 'span.footable-toggle', function () {

+    event.stopPropagation();

+  })

+

   // API IP check toggle

   $("#skip_ip_check_ro").click(function( event ) {

    $("#skip_ip_check_ro").not(this).prop('checked', false);

@@ -389,7 +405,7 @@
     e.preventDefault();

     prev = $('#test_relayhost').text();

     $(this).prop("disabled",true);

-    $(this).html('<span class="glyphicon glyphicon-refresh glyphicon-spin"></span> ');

+    $(this).html('<i class="bi bi-arrow-repeat icon-spin"></i> ');

     $.ajax({

         type: 'GET',

         url: 'inc/ajax/relay_check.php',

@@ -431,7 +447,7 @@
     e.preventDefault();

     prev = $('#test_transport').text();

     $(this).prop("disabled",true);

-    $(this).html('<span class="glyphicon glyphicon-refresh glyphicon-spin"></span> ');

+    $(this).html('<i class="bi bi-arrow-repeat icon-spin"></i> ');

     $.ajax({

         type: 'GET',

         url: 'inc/ajax/transport_check.php',

@@ -465,13 +481,13 @@
   function add_table_row(table_id, type) {

     var row = $('<tr />');

     if (type == "app_link") {

-    cols = '<td><input class="input-sm form-control" data-id="app_links" type="text" name="app" required></td>';

-    cols += '<td><input class="input-sm form-control" data-id="app_links" type="text" name="href" required></td>';

-    cols += '<td><a href="#" role="button" class="btn btn-xs btn-default" type="button">' + lang.remove_row + '</a></td>';

+    cols = '<td><input class="input-sm input-xs-lg form-control" data-id="app_links" type="text" name="app" required></td>';

+    cols += '<td><input class="input-sm input-xs-lg form-control" data-id="app_links" type="text" name="href" required></td>';

+    cols += '<td><a href="#" role="button" class="btn btn-sm btn-xs-lg btn-default" type="button">' + lang.remove_row + '</a></td>';

     } else if (type == "f2b_regex") {

-    cols = '<td><input style="text-align:center" class="input-sm form-control" data-id="f2b_regex" type="text" value="+" disabled></td>';

-    cols += '<td><input class="input-sm form-control regex-input" data-id="f2b_regex" type="text" name="regex" required></td>';

-    cols += '<td><a href="#" role="button" class="btn btn-xs btn-default" type="button">' + lang.remove_row + '</a></td>';

+    cols = '<td><input style="text-align:center" class="input-sm input-xs-lg form-control" data-id="f2b_regex" type="text" value="+" disabled></td>';

+    cols += '<td><input class="input-sm input-xs-lg form-control regex-input" data-id="f2b_regex" type="text" name="regex" required></td>';

+    cols += '<td><a href="#" role="button" class="btn btn-sm btn-xs-lg btn-default" type="button">' + lang.remove_row + '</a></td>';

     }

     row.append(cols);

     table_id.append(row);

diff --git a/mailcow/src/mailcow-dockerized/data/web/js/site/debug.js b/mailcow/src/mailcow-dockerized/data/web/js/site/debug.js
index 9266f95..6b08113 100644
--- a/mailcow/src/mailcow-dockerized/data/web/js/site/debug.js
+++ b/mailcow/src/mailcow-dockerized/data/web/js/site/debug.js
@@ -1,3 +1,42 @@
+$(document).ready(function() {

+  // Parse seconds ago to date

+  // Get "now" timestamp

+  var ts_now = Math.round((new Date()).getTime() / 1000);

+  $('.parse_s_ago').each(function(i, parse_s_ago) {

+    var started_s_ago = parseInt($(this).text(), 10);

+    if (typeof started_s_ago != 'NaN') {

+      var started_date = new Date((ts_now - started_s_ago) * 1000);

+      if (started_date instanceof Date && !isNaN(started_date)) {

+        var started_local_date = started_date.toLocaleDateString(undefined, {

+          year: "numeric",

+          month: "2-digit",

+          day: "2-digit",

+          hour: "2-digit",

+          minute: "2-digit",

+          second: "2-digit"

+        });

+        $(this).text(started_local_date);

+      } else {

+        $(this).text('-');

+      }

+    }

+  });

+  // Parse general dates

+  $('.parse_date').each(function(i, parse_date) {

+    var started_date = new Date(Date.parse($(this).text()));

+    if (typeof started_date != 'NaN') {

+      var started_local_date = started_date.toLocaleDateString(undefined, {

+        year: "numeric",

+        month: "2-digit",

+        day: "2-digit",

+        hour: "2-digit",

+        minute: "2-digit",

+        second: "2-digit"

+      });

+      $(this).text(started_local_date);

+    }

+  });

+});

 jQuery(function($){

   if (localStorage.getItem("current_page") === null) {

     var current_page = {};

@@ -232,7 +271,7 @@
         {"name":"role","title":"Role"},

         {"name":"remote","title":"IP"},

         {"name":"msg","title":lang.message,"style":{"word-break":"break-all"}},

-        {"name":"call","title":"Call","breakpoints": "all"},

+        {"name":"call","title":"Call","breakpoints": "all"}

       ],

       "rows": $.ajax({

         dataType: 'json',

@@ -262,6 +301,42 @@
       }

     });

   }

+  function draw_sasl_logs() {

+    ft_api_logs = FooTable.init('#sasl_logs', {

+      "columns": [

+        {"name":"username","title":lang.username},

+        {"name":"service","title":lang.service},

+        {"name":"real_rip","title":"IP"},

+        {"sorted": true,"sortValue": function(value){res = new Date(value);return res.getTime();},"direction":"DESC","name":"datetime","formatter":function date_format(datetime) { var date = new Date(datetime.replace(/-/g, "/")); return date.toLocaleDateString(undefined, {year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", second: "2-digit"});},"title":lang.login_time,"style":{"width":"170px"}},

+      ],

+      "rows": $.ajax({

+        dataType: 'json',

+        url: '/api/v1/get/logs/sasl',

+        jsonp: false,

+        error: function () {

+          console.log('Cannot draw sasl log table');

+        },

+        success: function (data) {

+          return process_table_data(data, 'sasl_log_table');

+        }

+      }),

+      "empty": lang.empty,

+      "paging": {"enabled": true,"limit": 5,"size": log_pagination_size},

+      "filtering": {"enabled": true,"delay": 1200,"position": "left","connectors": false,"placeholder": lang.filter_table,"connectors": false},

+      "sorting": {"enabled": true},

+      "on": {

+        "destroy.ft.table": function(e, ft){

+          $('.refresh_table').attr('disabled', 'true');

+        },

+        "ready.ft.table": function(e, ft){

+          table_log_ready(ft, 'sasl_logs');

+        },

+        "after.ft.paging": function(e, ft){

+          table_log_paging(ft, 'sasl_logs');

+        }

+      }

+    });

+  }

   function draw_acme_logs() {

     ft_acme_logs = FooTable.init('#acme_log', {

       "columns": [

@@ -605,13 +680,13 @@
         if (item.message == null) {

           item.message = 'Health level: ' + item.lvl + '% (' + item.hpnow + '/' + item.hptotal + ')';

           if (item.hpdiff < 0) {

-            item.trend = '<span class="label label-danger"><span class="glyphicon glyphicon-arrow-down"></span> ' + item.hpdiff + '</span>';

+            item.trend = '<span class="label label-danger"><i class="bi bi-caret-down-fill"></i> ' + item.hpdiff + '</span>';

           }

           else if (item.hpdiff == 0) {

-            item.trend = '<span class="label label-info"><span class="glyphicon glyphicon-arrow-right"></span> ' + item.hpdiff + '</span>';

+            item.trend = '<span class="label label-info"><i class="bi bi-caret-right-fill"></i> ' + item.hpdiff + '</span>';

           }

           else {

-            item.trend = '<span class="label label-success"><span class="glyphicon glyphicon-arrow-up"></span> ' + item.hpdiff + '</span>';

+            item.trend = '<span class="label label-success"><i class="bi bi-caret-up-fill"></i> ' + item.hpdiff + '</span>';

           }

         }

         else {

@@ -627,11 +702,23 @@
         item.task = '<code>' + item.task + '</code>';

         item.type = '<span class="label label-' + item.type + '">' + item.type + '</span>';

       });

+    } else if (table == 'sasl_log_table') {

+      $.each(data, function (i, item) {

+        if (item === null) { return true; }

+        item.username = escapeHtml(item.username);

+        if (item.service == "smtp") { item.service = '<div class="label label-default">' + item.service.toUpperCase() + '<i class="bi bi-chevron-compact-right"></i></div>'; }

+        else if (item.service == "imap") { item.service = '<div class="label label-default"><i class="bi bi-chevron-compact-left"></i> ' + item.service.toUpperCase() + '</div>'; }

+        else { item.service = '<div class="label label-default">' + item.service.toUpperCase() + '</div>'; }

+    });

     } else if (table == 'general_syslog') {

       $.each(data, function (i, item) {

         if (item === null) { return true; }

         if (item.message.match("^base64,")) {

-          item.message = atob(item.message.slice(7)).replace(/\\n/g, "<br />");

+          try {

+            item.message = atob(item.message.slice(7)).replace(/\\n/g, "<br />");

+          } catch(e) {

+            item.message = item.message.slice(7);

+          }

         } else {

           item.message = escapeHtml(item.message);

         }

@@ -667,7 +754,7 @@
         }

         item.indicator = '<span style="border-right:6px solid #' + intToRGB(hashCode(item.rl_hash)) + ';padding-left:5px;">&nbsp;</span>';

         if (item.rl_hash != 'err') {

-          item.action = '<a href="#" data-action="delete_selected" data-id="single-hash" data-api-url="delete/rlhash" data-item="' + encodeURI(item.rl_hash) + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.reset_limit + '</a>';

+          item.action = '<a href="#" data-action="delete_selected" data-id="single-hash" data-api-url="delete/rlhash" data-item="' + encodeURI(item.rl_hash) + '" class="btn btn-xs btn-danger"><i class="bi bi-trash"></i> ' + lang.reset_limit + '</a>';

         }

       });

     }

@@ -707,6 +794,7 @@
   draw_api_logs();

   draw_rl_logs();

   draw_ui_logs();

+  draw_sasl_logs();

   draw_netfilter_logs();

   draw_rspamd_history();

   $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {

diff --git a/mailcow/src/mailcow-dockerized/data/web/js/site/edit.js b/mailcow/src/mailcow-dockerized/data/web/js/site/edit.js
index 1626d4b..786a599 100644
--- a/mailcow/src/mailcow-dockerized/data/web/js/site/edit.js
+++ b/mailcow/src/mailcow-dockerized/data/web/js/site/edit.js
@@ -28,34 +28,37 @@
     $('#mailbox-passwd-hidden-info').addClass('hidden');

     $('#mailbox-passwd-form-groups').removeClass('hidden');

   });

-});

-if ($("#editSelectMultipleBookings").val() == "custom") {

-  $("#multiple_bookings_custom_div").show();

-  $('input[name=multiple_bookings]').val($("#multiple_bookings_custom").val());

-}

-$("#editSelectMultipleBookings").change(function() {

-  $('input[name=multiple_bookings]').val($("#editSelectMultipleBookings").val());

-  if ($('input[name=multiple_bookings]').val() == "custom") {

-    $("#multiple_bookings_custom_div").show();

-  }

-  else {

-    $("#multiple_bookings_custom_div").hide();

-  }

-});

-if ($("#editSelectSenderACL option[value='\*']:selected").length > 0){

-  $("#sender_acl_disabled").show();

-}

-$('#editSelectSenderACL').change(function() {

+  // Sender ACL

   if ($("#editSelectSenderACL option[value='\*']:selected").length > 0){

     $("#sender_acl_disabled").show();

   }

-  else {

-    $("#sender_acl_disabled").hide();

+  $('#editSelectSenderACL').change(function() {

+    if ($("#editSelectSenderACL option[value='\*']:selected").length > 0){

+      $("#sender_acl_disabled").show();

+    }

+    else {

+      $("#sender_acl_disabled").hide();

+    }

+  });

+  // Resources

+  if ($("#editSelectMultipleBookings").val() == "custom") {

+    $("#multiple_bookings_custom_div").show();

+    $('input[name=multiple_bookings]').val($("#multiple_bookings_custom").val());

   }

+  $("#editSelectMultipleBookings").change(function() {

+    $('input[name=multiple_bookings]').val($("#editSelectMultipleBookings").val());

+    if ($('input[name=multiple_bookings]').val() == "custom") {

+      $("#multiple_bookings_custom_div").show();

+    }

+    else {

+      $("#multiple_bookings_custom_div").hide();

+    }

+  });

+  $("#multiple_bookings_custom").bind("change keypress keyup blur", function() {

+    $('input[name=multiple_bookings]').val($("#multiple_bookings_custom").val());

+  });

 });

-$("#multiple_bookings_custom").bind("change keypress keyup blur", function() {

-  $('input[name=multiple_bookings]').val($("#multiple_bookings_custom").val());

-});

+

 jQuery(function($){

   // http://stackoverflow.com/questions/46155/validate-email-address-in-javascript

   function validateEmail(email) {

@@ -138,4 +141,4 @@
   }

   draw_wl_policy_domain_table();

   draw_bl_policy_domain_table();

-});
\ No newline at end of file
+});

diff --git a/mailcow/src/mailcow-dockerized/data/web/js/site/mailbox.js b/mailcow/src/mailcow-dockerized/data/web/js/site/mailbox.js
index cbf0193..5cac48d 100644
--- a/mailcow/src/mailcow-dockerized/data/web/js/site/mailbox.js
+++ b/mailcow/src/mailcow-dockerized/data/web/js/site/mailbox.js
@@ -3,7 +3,7 @@
   FooTable.domainFilter = FooTable.Filtering.extend({
     construct: function(instance){
       this._super(instance);
-      this.def = 'All Domains';
+      this.def = lang.all_domains;
       this.$domain = null;
     },
     $create: function(){
@@ -24,7 +24,12 @@
         .appendTo($form_grp);
 
       $.each(domains, function(i, domain){
-        self.$domain.append($('<option/>').text(domain));
+        domainname = $($.parseHTML(domain)).data('domainname')
+        if (domainname !== undefined) {
+          self.$domain.append($('<option/>').text(domainname));
+        } else {
+          self.$domain.append($('<option/>').text(domain));
+        }
       });
     },
     _onDomainDropdownChanged: function(e){
@@ -89,9 +94,9 @@
       }
     });
   }
-	$('#addSelectDomain').on('change', function() {
+  $('#addSelectDomain').on('change', function() {
     auto_fill_quota($('#addSelectDomain').val());
-	});
+  });
   auto_fill_quota($('#addSelectDomain').val());
   $(".goto_checkbox").click(function( event ) {
    $("form[data-id='add_alias'] .goto_checkbox").not(this).prop('checked', false);
@@ -125,22 +130,10 @@
       }
     });
   });
-  // Add Mailbox Modal
-  var addMailboxModalShown = false;
-  $('#addMailboxModal').on('show.bs.modal', function(e) {
-    if (addMailboxModalShown) {
-      return;
-    }
-    addMailboxModalShown = true;
-    var $domainSelect = $("#mailbox_table select");
-    if ($domainSelect[0].selectedIndex > 0) { // not "All Domains"
-      $("#addSelectDomain").val($domainSelect.val()).change().selectpicker("render");
-    }
-  });
   // Log modal
   $('#dnsInfoModal').on('show.bs.modal', function(e) {
     var domain = $(e.relatedTarget).data('domain');
-    $('.dns-modal-body').html('<center><span style="font-size:18pt;margin:50px" class="glyphicon glyphicon-refresh glyphicon-spin"></span></center>');
+    $('.dns-modal-body').html('<center><i class="bi bi-arrow-repeat icon-spin"></i></center>');
     $.ajax({
       url: '/inc/ajax/dns_diagnostics.php',
       data: { domain: domain },
@@ -159,10 +152,10 @@
     $(e.currentTarget).find('#sieveDataText').html('<pre style="font-size:14px;line-height:1.1">' + sieveScript + '</pre>');
   });
   // Disable submit button on script change
-	$('.textarea-code').on('keyup', function() {
+  $('.textarea-code').on('keyup', function() {
     // Disable all "save" buttons, could be a "related button only" function, todo
     $('.add_sieve_script').attr({"disabled": true});
-	});
+  });
   // Validate script data
   $(".validate_sieve").click(function( event ) {
     event.preventDefault();
@@ -216,7 +209,7 @@
   function escapeHtml(n){return String(n).replace(/[&<>"'`=\/]/g,function(n){return entityMap[n]})}
   // http://stackoverflow.com/questions/46155/validate-email-address-in-javascript
   function humanFileSize(i){if(Math.abs(i)<1024)return i+" B";var B=["KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"],e=-1;do{i/=1024,++e}while(Math.abs(i)>=1024&&e<B.length-1);return i.toFixed(1)+" "+B[e]}
-  function unix_time_format(i){return""==i?'&#10005;':new Date(i?1e3*i:0).toLocaleDateString(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}
+  function unix_time_format(i){return""==i?'<i class="bi bi-x-lg"></i>':new Date(i?1e3*i:0).toLocaleDateString(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"})}
   $(".refresh_table").on('click', function(e) {
     e.preventDefault();
     var table_name = $(this).data('table');
@@ -247,7 +240,7 @@
   function draw_domain_table() {
     ft_domain_table = FooTable.init('#domain_table', {
       "columns": [
-        {"name":"chkbox","title":"","style":{"maxWidth":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},
+        {"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},
         {"sorted": true,"name":"domain_name","title":lang.domain,"style":{"width":"250px"}},
         {"name":"aliases","title":lang.aliases,"breakpoints":"xs sm"},
         {"name":"mailboxes","title":lang.mailboxes},
@@ -261,15 +254,15 @@
         }},
         {"name":"stats","sortable": false,"style":{"whiteSpace":"nowrap"},"title":lang.stats,"formatter": function(value){
           res = value.split("/");
-          return '<span class="glyphicon glyphicon-file" aria-hidden="true"></span> ' + res[0] + ' / ' + humanFileSize(res[1]);
+          return '<i class="bi bi-files"></i> ' + res[0] + ' / ' + humanFileSize(res[1]);
         }},
         {"name":"def_quota_for_mbox","title":lang.mailbox_defquota,"breakpoints":"xs sm md","style":{"width":"125px"}},
         {"name":"max_quota_for_mbox","title":lang.mailbox_quota,"breakpoints":"xs sm","style":{"width":"125px"}},
-        {"name":"rl","title":"RL","breakpoints":"xs sm md lg","style":{"maxWidth":"100px","width":"100px"}},
-        {"name":"backupmx","filterable": false,"style":{"maxWidth":"120px","width":"120px"},"title":lang.backup_mx,"breakpoints":"xs sm md lg","formatter": function(value){return 1==value?'&#10003;':0==value&&'&#10005;';}},
+        {"name":"rl","title":"RL","breakpoints":"xs sm md lg","style":{"min-width":"100px","width":"100px"}},
+        {"name":"backupmx","filterable": false,"style":{"min-width":"120px","width":"120px"},"title":lang.backup_mx,"breakpoints":"xs sm md lg","formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},
         {"name":"domain_admins","title":lang.domain_admins,"style":{"word-break":"break-all","min-width":"200px"},"breakpoints":"xs sm md lg","filterable":(role == "admin"),"visible":(role == "admin")},
-        {"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'&#10003;':0==value&&'&#10005;';}},
-        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"240px","width":"240px"},"type":"html","title":lang.action,"breakpoints":"xs sm md"}
+        {"name":"active","filterable": false,"style":{"min-width":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},
+        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","min-width":"240px","width":"240px"},"type":"html","title":lang.action,"breakpoints":"xs sm md"}
       ],
       "rows": $.ajax({
         dataType: 'json',
@@ -294,15 +287,17 @@
             item.def_quota_for_mbox = humanFileSize(item.def_quota_for_mbox);
             item.max_quota_for_mbox = humanFileSize(item.max_quota_for_mbox);
             item.chkbox = '<input type="checkbox" data-id="domain" name="multi_select" value="' + encodeURIComponent(item.domain_name) + '" />';
-            item.action = '<div class="btn-group">';
+            item.action = '<div class="btn-group footable-actions">';
             if (role == "admin") {
-              item.action += '<a href="/edit/domain/' + encodeURIComponent(item.domain_name) + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +
-                '<a href="#" data-action="delete_selected" data-id="single-domain" data-api-url="delete/domain" data-item="' + encodeURIComponent(item.domain_name) + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>';
+              item.action += '<a href="/edit/domain/' + encodeURIComponent(item.domain_name) + '" class="btn btn-xs btn-xs-third btn-default"><i class="bi bi-pencil-fill"></i> ' + lang.edit + '</a>' +
+                '<a href="#" data-action="delete_selected" data-id="single-domain" data-api-url="delete/domain" data-item="' + encodeURIComponent(item.domain_name) + '" class="btn btn-xs btn-xs-third btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +
+                 '<a href="#dnsInfoModal" class="btn btn-xs btn-xs-third btn-info" data-toggle="modal" data-domain="' + encodeURIComponent(item.domain_name) + '"><i class="bi bi-globe2"></i> DNS</a></div>';
             }
             else {
-              item.action += '<a href="/edit/domain/' + encodeURIComponent(item.domain_name) + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>';
+              item.action += '<a href="/edit/domain/' + encodeURIComponent(item.domain_name) + '" class="btn btn-xs btn-xs-half btn-default"><i class="bi bi-pencil-fill"></i> ' + lang.edit + '</a>' +
+              '<a href="#dnsInfoModal" class="btn btn-xs btn-xs-half btn-info" data-toggle="modal" data-domain="' + encodeURIComponent(item.domain_name) + '"><i class="bi bi-globe2"></i> DNS</a></div>';
             }
-            item.action += '<a href="#dnsInfoModal" class="btn btn-xs btn-info" data-toggle="modal" data-domain="' + encodeURIComponent(item.domain_name) + '"><span class="glyphicon glyphicon-question-sign"></span> DNS</a></div>';
+
             if (item.backupmx == 1) {
               if (item.relay_unknown_only == 1) {
                 item.domain_name = '<div class="label label-info">Relay Non-Local</div> ' + item.domain_name;
@@ -351,7 +346,7 @@
   function draw_mailbox_table() {
     ft_mailbox_table = FooTable.init('#mailbox_table', {
       "columns": [
-        {"name":"chkbox","title":"","style":{"maxWidth":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},
+        {"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},
         {"sorted": true,"name":"username","style":{"word-break":"break-all","min-width":"120px"},"title":lang.username},
         {"name":"name","title":lang.fname,"style":{"word-break":"break-all","min-width":"120px"},"breakpoints":"xs sm md lg"},
         {"name":"domain","title":lang.domain,"breakpoints":"xs sm md lg"},
@@ -365,7 +360,7 @@
           return Number(res[0]);
         },
         },
-        {"name":"spam_aliases","filterable": false,"title":lang.spam_aliases,"breakpoints":"all"},
+        /* {"name":"spam_aliases","filterable": false,"title":lang.spam_aliases,"breakpoints":"all"}, */
         {"name":"tls_enforce_in","filterable": false,"title":lang.tls_enforce_in,"breakpoints":"all"},
         {"name":"tls_enforce_out","filterable": false,"title":lang.tls_enforce_out,"breakpoints":"all"},
         {"name":"smtp_access","filterable": false,"title":"SMTP","breakpoints":"all"},
@@ -379,9 +374,10 @@
         "formatter": function(value){
           res = value.split("/");
           return '<div class="label label-last-login">IMAP @ ' + unix_time_format(Number(res[0])) + '</div><br>' +
-            '<div class="label label-last-login">POP3 @ ' + unix_time_format(Number(res[1])) + '</div><br>' + 
+            '<div class="label label-last-login">POP3 @ ' + unix_time_format(Number(res[1])) + '</div><br>' +
             '<div class="label label-last-login">SMTP @ ' + unix_time_format(Number(res[2])) + '</div>';
         }},
+        {"name":"last_pw_change","filterable": false,"title":lang.last_pw_change,"breakpoints":"all"},
         {"name":"quarantine_notification","filterable": false,"title":lang.quarantine_notification,"breakpoints":"all"},
         {"name":"quarantine_category","filterable": false,"title":lang.quarantine_category,"breakpoints":"all"},
         {"name":"in_use","filterable": false,"type":"html","title":lang.in_use,"sortValue": function(value){
@@ -389,14 +385,14 @@
         },
         },
         {"name":"messages","filterable": false,"title":lang.msg_num,"breakpoints":"xs sm md"},
-        {"name":"rl","title":"RL","breakpoints":"all","style":{"width":"125px"}},
-        {"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'&#10003;':(0==value?'&#10005;':2==value&&'&#8212;');}},
+        /* {"name":"rl","title":"RL","breakpoints":"all","style":{"width":"125px"}}, */
+        {"name":"active","filterable": false,"style":{"min-width":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':(0==value?'<i class="bi bi-x-lg"></i>':2==value&&'&#8212;');}},
         {"name":"action","filterable": false,"sortable": false,"style":{"min-width":"290px","text-align":"right"},"type":"html","title":lang.action,"breakpoints":"xs sm md"}
       ],
       "empty": lang.empty,
       "rows": $.ajax({
         dataType: 'json',
-        url: '/api/v1/get/mailbox/all',
+        url: '/api/v1/get/mailbox/reduced',
         jsonp: false,
         error: function () {
           console.log('Cannot draw mailbox table');
@@ -406,6 +402,7 @@
             item.quota = item.quota_used + "/" + item.quota;
             item.max_quota_for_mbox = humanFileSize(item.max_quota_for_mbox);
             item.last_mail_login = item.last_imap_login + '/' + item.last_pop3_login + '/' + item.last_smtp_login;
+            /*
             if (!item.rl) {
               item.rl = '∞';
             } else {
@@ -413,15 +410,22 @@
                 return e;
               }).join('/1');
               if (item.rl_scope === 'domain') {
-                item.rl = '↪ ' + item.rl + ' (via ' + item.domain + ')';
+                item.rl = '<i class="bi bi-arrow-return-right"></i> ' + item.rl + ' (via ' + item.domain + ')';
               }
             }
+            */
             item.chkbox = '<input type="checkbox" data-id="mailbox" name="multi_select" value="' + encodeURIComponent(item.username) + '" />';
-            item.tls_enforce_in = '<span class="text-' + (item.attributes.tls_enforce_in == 1 ? 'success' : 'danger') + ' glyphicon glyphicon-lock"></span>';
-            item.tls_enforce_out = '<span class="text-' + (item.attributes.tls_enforce_out == 1 ? 'success' : 'danger') + ' glyphicon glyphicon-lock"></span>';
-            item.pop3_access = '<span class="text-' + (item.attributes.pop3_access == 1 ? 'success' : 'danger') + ' glyphicon glyphicon-' + (item.attributes.pop3_access == 1 ? 'ok' : 'remove') + '"></span>';
-            item.imap_access = '<span class="text-' + (item.attributes.imap_access == 1 ? 'success' : 'danger') + ' glyphicon glyphicon-' + (item.attributes.imap_access == 1 ? 'ok' : 'remove') + '"></span>';
-            item.smtp_access = '<span class="text-' + (item.attributes.smtp_access == 1 ? 'success' : 'danger') + ' glyphicon glyphicon-' + (item.attributes.smtp_access == 1 ? 'ok' : 'remove') + '"></span>';
+            if (item.attributes.passwd_update != '0') {
+              var last_pw_change = new Date(item.attributes.passwd_update.replace(/-/g, "/"));
+              item.last_pw_change = last_pw_change.toLocaleDateString(undefined, {year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", second: "2-digit"});
+            } else {
+              item.last_pw_change = '-';
+            }
+            item.tls_enforce_in = '<i class="text-' + (item.attributes.tls_enforce_in == 1 ? 'success bi bi-lock-fill' : 'danger bi bi-unlock-fill') + '"></i>';
+            item.tls_enforce_out = '<i class="text-' + (item.attributes.tls_enforce_out == 1 ? 'success bi bi-lock-fill' : 'danger bi bi-unlock-fill') + '"></i>';
+            item.pop3_access = '<i class="text-' + (item.attributes.pop3_access == 1 ? 'success' : 'danger') + ' bi bi-' + (item.attributes.pop3_access == 1 ? 'check-lg' : 'x-lg') + '"></i>';
+            item.imap_access = '<i class="text-' + (item.attributes.imap_access == 1 ? 'success' : 'danger') + ' bi bi-' + (item.attributes.imap_access == 1 ? 'check-lg' : 'x-lg') + '"></i>';
+            item.smtp_access = '<i class="text-' + (item.attributes.smtp_access == 1 ? 'success' : 'danger') + ' bi bi-' + (item.attributes.smtp_access == 1 ? 'check-lg' : 'x-lg') + '"></i>';
             if (item.attributes.quarantine_notification === 'never') {
               item.quarantine_notification = lang.never;
             } else if (item.attributes.quarantine_notification === 'hourly') {
@@ -439,19 +443,22 @@
               item.quarantine_category = lang.q_all;
             }
             if (acl_data.login_as === 1) {
-            item.action = '<div class="btn-group">' +
-              '<a href="/edit/mailbox/' + encodeURIComponent(item.username) + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +
-              '<a href="#" data-action="delete_selected" data-id="single-mailbox" data-api-url="delete/mailbox" data-item="' + encodeURIComponent(item.username) + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +
-              '<a href="/index.php?duallogin=' + encodeURIComponent(item.username) + '" class="login_as btn btn-xs btn-success"><span class="glyphicon glyphicon-user"></span> Login</a>';
+              var btnSize = 'btn-xs-third';
+              if (ALLOW_ADMIN_EMAIL_LOGIN) btnSize = 'btn-xs-quart';
+
+            item.action = '<div class="btn-group footable-actions">' +
+              '<a href="/edit/mailbox/' + encodeURIComponent(item.username) + '" class="btn btn-xs ' + btnSize + ' btn-default"><i class="bi bi-pencil-fill"></i> ' + lang.edit + '</a>' +
+              '<a href="#" data-action="delete_selected" data-id="single-mailbox" data-api-url="delete/mailbox" data-item="' + encodeURIComponent(item.username) + '" class="btn btn-xs ' + btnSize + ' btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +
+              '<a href="/index.php?duallogin=' + encodeURIComponent(item.username) + '" class="login_as btn btn-xs ' + btnSize + ' btn-success"><i class="bi bi-person-fill"></i> Login</a>';
               if (ALLOW_ADMIN_EMAIL_LOGIN) {
-                item.action += '<a href="/sogo-auth.php?login=' + encodeURIComponent(item.username) + '" class="login_as btn btn-xs btn-primary" target="_blank"><span class="glyphicon glyphicon-envelope"></span> SOGo</a>';
+                item.action += '<a href="/sogo-auth.php?login=' + encodeURIComponent(item.username) + '" class="login_as btn btn-xs ' + btnSize + ' btn-primary" target="_blank"><i class="bi bi-envelope-fill"></i> SOGo</a>';
               }
               item.action += '</div>';
             }
             else {
             item.action = '<div class="btn-group">' +
-              '<a href="/edit/mailbox/' + encodeURIComponent(item.username) + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +
-              '<a href="#" data-action="delete_selected" data-id="single-mailbox" data-api-url="delete/mailbox" data-item="' + encodeURIComponent(item.username) + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +
+              '<a href="/edit/mailbox/' + encodeURIComponent(item.username) + '" class="btn btn-xs btn-xs-half btn-default"><i class="bi bi-pencil-fill"></i> ' + lang.edit + '</a>' +
+              '<a href="#" data-action="delete_selected" data-id="single-mailbox" data-api-url="delete/mailbox" data-item="' + encodeURIComponent(item.username) + '" class="btn btn-xs btn-xs-half btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +
               '</div>';
             }
             item.in_use = '<div class="progress">' +
@@ -500,14 +507,14 @@
   function draw_resource_table() {
     ft_resource_table = FooTable.init('#resource_table', {
       "columns": [
-        {"name":"chkbox","title":"","style":{"maxWidth":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},
+        {"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},
         {"sorted": true,"name":"description","title":lang.description,"style":{"width":"250px"}},
         {"name":"name","title":lang.alias},
         {"name":"kind","title":lang.kind},
         {"name":"domain","title":lang.domain,"breakpoints":"xs sm"},
-        {"name":"multiple_bookings","filterable": false,"style":{"maxWidth":"150px","width":"140px"},"title":lang.multiple_bookings,"breakpoints":"xs sm"},
-        {"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'&#10003;':0==value&&'&#10005;';}},
-        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
+        {"name":"multiple_bookings","filterable": false,"style":{"min-width":"150px","width":"140px"},"title":lang.multiple_bookings,"breakpoints":"xs sm"},
+        {"name":"active","filterable": false,"style":{"min-width":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},
+        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","min-width":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
       ],
       "empty": lang.empty,
       "rows": $.ajax({
@@ -526,9 +533,9 @@
             } else {
               item.multiple_bookings = '<span id="active-script" class="label label-danger">' + lang.booking_custom_short + ' (' + item.multiple_bookings + ')</span>';
             }
-            item.action = '<div class="btn-group">' +
-              '<a href="/edit/resource/' + encodeURIComponent(item.name) + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +
-              '<a href="#" data-action="delete_selected" data-id="single-resource" data-api-url="delete/resource" data-item="' + item.name + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +
+            item.action = '<div class="btn-group footable-actions">' +
+              '<a href="/edit/resource/' + encodeURIComponent(item.name) + '" class="btn btn-xs btn-xs-half btn-default"><i class="bi bi-pencil-fill"></i> ' + lang.edit + '</a>' +
+              '<a href="#" data-action="delete_selected" data-id="single-resource" data-api-url="delete/resource" data-item="' + item.name + '" class="btn btn-xs btn-xs-half btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +
               '</div>';
             item.chkbox = '<input type="checkbox" data-id="resource" name="multi_select" value="' + encodeURIComponent(item.name) + '" />';
             item.name = escapeHtml(item.name);
@@ -573,14 +580,14 @@
   function draw_bcc_table() {
     ft_bcc_table = FooTable.init('#bcc_table', {
       "columns": [
-        {"name":"chkbox","title":"","style":{"maxWidth":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},
-        {"sorted": true,"name":"id","title":"ID","style":{"maxWidth":"60px","width":"60px","text-align":"center"}},
+        {"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},
+        {"sorted": true,"name":"id","title":"ID","style":{"min-width":"60px","width":"60px","text-align":"center"}},
         {"name":"type","title":lang.bcc_type},
         {"name":"local_dest","title":lang.bcc_local_dest},
         {"name":"bcc_dest","title":lang.bcc_destinations},
         {"name":"domain","title":lang.domain,"breakpoints":"xs sm"},
-        {"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'&#10003;':0==value&&'&#10005;';}},
-        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
+        {"name":"active","filterable": false,"style":{"min-width":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},
+        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","min-width":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
       ],
       "empty": lang.empty,
       "rows": $.ajax({
@@ -592,17 +599,17 @@
         },
         success: function (data) {
           $.each(data, function (i, item) {
-            item.action = '<div class="btn-group">' +
-              '<a href="/edit/bcc/' + item.id + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +
-              '<a href="#" data-action="delete_selected" data-id="single-bcc" data-api-url="delete/bcc" data-item="' + item.id + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +
+            item.action = '<div class="btn-group footable-actions">' +
+              '<a href="/edit/bcc/' + item.id + '" class="btn btn-xs btn-xs-half btn-default"><i class="bi bi-pencil-fill"></i> ' + lang.edit + '</a>' +
+              '<a href="#" data-action="delete_selected" data-id="single-bcc" data-api-url="delete/bcc" data-item="' + item.id + '" class="btn btn-xs btn-xs-half btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +
               '</div>';
             item.chkbox = '<input type="checkbox" data-id="bcc" name="multi_select" value="' + item.id + '" />';
             item.local_dest = escapeHtml(item.local_dest);
             item.bcc_dest = escapeHtml(item.bcc_dest);
             if (item.type == 'sender') {
-              item.type = '<span id="active-script" class="label label-success">Sender</span>';
+              item.type = '<span id="active-script" class="label label-success">' + lang.bcc_sender_map + '</span>';
             } else {
-              item.type = '<span id="inactive-script" class="label label-warning">Recipient</span>';
+              item.type = '<span id="inactive-script" class="label label-warning">' + lang.bcc_rcpt_map + '</span>';
             }
           });
         }
@@ -642,12 +649,12 @@
   function draw_recipient_map_table() {
     ft_recipient_map_table = FooTable.init('#recipient_map_table', {
       "columns": [
-        {"name":"chkbox","title":"","style":{"maxWidth":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},
-        {"sorted": true,"name":"id","title":"ID","style":{"maxWidth":"60px","width":"60px","text-align":"center"}},
+        {"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},
+        {"sorted": true,"name":"id","title":"ID","style":{"min-width":"60px","width":"60px","text-align":"center"}},
         {"name":"recipient_map_old","title":lang.recipient_map_old},
         {"name":"recipient_map_new","title":lang.recipient_map_new},
-        {"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'&#10003;':0==value&&'&#10005;';}},
-        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":(role == "admin" ? lang.action : ""),"breakpoints":"xs sm"}
+        {"name":"active","filterable": false,"style":{"min-width":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},
+        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","min-width":"180px","width":"180px"},"type":"html","title":(role == "admin" ? lang.action : ""),"breakpoints":"xs sm"}
       ],
       "empty": lang.empty,
       "rows": $.ajax({
@@ -662,9 +669,9 @@
             $.each(data, function (i, item) {
               item.recipient_map_old = escapeHtml(item.recipient_map_old);
               item.recipient_map_new = escapeHtml(item.recipient_map_new);
-              item.action = '<div class="btn-group">' +
-                '<a href="/edit/recipient_map/' + item.id + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +
-                '<a href="#" data-action="delete_selected" data-id="single-recipient_map" data-api-url="delete/recipient_map" data-item="' + item.id + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +
+              item.action = '<div class="btn-group footable-actions">' +
+                '<a href="/edit/recipient_map/' + item.id + '" class="btn btn-xs btn-xs-half btn-default"><i class="bi bi-pencil-fill"></i> ' + lang.edit + '</a>' +
+                '<a href="#" data-action="delete_selected" data-id="single-recipient_map" data-api-url="delete/recipient_map" data-item="' + item.id + '" class="btn btn-xs btn-xs-half btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +
                 '</div>';
               item.chkbox = '<input type="checkbox" data-id="recipient_map" name="multi_select" value="' + item.id + '" />';
             });
@@ -706,13 +713,13 @@
   function draw_tls_policy_table() {
     ft_tls_policy_table = FooTable.init('#tls_policy_table', {
       "columns": [
-        {"name":"chkbox","title":"","style":{"maxWidth":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},
-        {"sorted": true,"name":"id","title":"ID","style":{"maxWidth":"60px","width":"60px","text-align":"center"}},
+        {"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},
+        {"sorted": true,"name":"id","title":"ID","style":{"min-width":"60px","width":"60px","text-align":"center"}},
         {"name":"dest","title":lang.tls_map_dest},
         {"name":"policy","title":lang.tls_map_policy},
         {"name":"parameters","title":lang.tls_map_parameters},
-        {"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'&#10003;':0==value&&'&#10005;';}},
-        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":(role == "admin" ? lang.action : ""),"breakpoints":"xs sm"}
+        {"name":"active","filterable": false,"style":{"min-width":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},
+        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","min-width":"180px","width":"180px"},"type":"html","title":(role == "admin" ? lang.action : ""),"breakpoints":"xs sm"}
       ],
       "empty": lang.empty,
       "rows": $.ajax({
@@ -732,9 +739,9 @@
               } else {
                 item.parameters = '<code>' + escapeHtml(item.parameters) + '</code>';
               }
-              item.action = '<div class="btn-group">' +
-                '<a href="/edit/tls_policy_map/' + item.id + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +
-                '<a href="#" data-action="delete_selected" data-id="single-tls-policy-map" data-api-url="delete/tls-policy-map" data-item="' + item.id + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +
+              item.action = '<div class="btn-group footable-actions">' +
+                '<a href="/edit/tls_policy_map/' + item.id + '" class="btn btn-xs btn-xs-half btn-default"><i class="bi bi-pencil-fill"></i> ' + lang.edit + '</a>' +
+                '<a href="#" data-action="delete_selected" data-id="single-tls-policy-map" data-api-url="delete/tls-policy-map" data-item="' + item.id + '" class="btn btn-xs btn-xs-half btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +
                 '</div>';
               item.chkbox = '<input type="checkbox" data-id="tls-policy-map" name="multi_select" value="' + item.id + '" />';
             });
@@ -776,16 +783,16 @@
   function draw_alias_table() {
     ft_alias_table = FooTable.init('#alias_table', {
       "columns": [
-        {"name":"chkbox","title":"","style":{"maxWidth":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},
-        {"name":"id","title":"ID","style":{"maxWidth":"60px","width":"60px","text-align":"center"}},
+        {"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},
+        {"name":"id","title":"ID","style":{"min-width":"60px","width":"60px","text-align":"center"}},
         {"sorted": true,"name":"address","title":lang.alias,"style":{"width":"250px"}},
         {"name":"goto","title":lang.target_address},
         {"name":"domain","title":lang.domain,"breakpoints":"xs sm"},
         {"name":"public_comment","title":lang.public_comment,"breakpoints":"all"},
         {"name":"private_comment","title":lang.private_comment,"breakpoints":"all"},
-        {"name":"sogo_visible","title":lang.sogo_visible,"breakpoints":"all"},
-        {"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'&#10003;':0==value&&'&#10005;';}},
-        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
+        {"name":"sogo_visible","title":lang.sogo_visible,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';},"breakpoints":"all"},
+        {"name":"active","filterable": false,"style":{"min-width":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},
+        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","min-width":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
       ],
       "empty": lang.empty,
       "rows": $.ajax({
@@ -797,9 +804,9 @@
         },
         success: function (data) {
           $.each(data, function (i, item) {
-            item.action = '<div class="btn-group">' +
-              '<a href="/edit/alias/' + encodeURIComponent(item.id) + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +
-              '<a href="#" data-action="delete_selected" data-id="single-alias" data-api-url="delete/alias" data-item="' + encodeURIComponent(item.id) + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +
+            item.action = '<div class="btn-group footable-actions">' +
+              '<a href="/edit/alias/' + encodeURIComponent(item.id) + '" class="btn btn-xs btn-xs-half btn-default"><i class="bi bi-pencil-fill"></i> ' + lang.edit + '</a>' +
+              '<a href="#" data-action="delete_selected" data-id="single-alias" data-api-url="delete/alias" data-item="' + encodeURIComponent(item.id) + '" class="btn btn-xs btn-xs-half btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +
               '</div>';
             item.chkbox = '<input type="checkbox" data-id="alias" name="multi_select" value="' + encodeURIComponent(item.id) + '" />';
             item.goto = escapeHtml(item.goto.replace(/,/g, " "));
@@ -816,22 +823,22 @@
               item.private_comment = '-';
             }
             if (item.is_catch_all == 1) {
-              item.address = '<div class="label label-default">Catch-All</div> ' + escapeHtml(item.address);
+              item.address = '<div class="label label-default">' + lang.catch_all + '</div> ' + escapeHtml(item.address);
             }
             else {
               item.address = escapeHtml(item.address);
             }
             if (item.goto == "null@localhost") {
-              item.goto = '⤷ <span style="font-size:12px" class="glyphicon glyphicon-trash" aria-hidden="true"></span>';
+              item.goto = '⤷ <i class="bi bi-trash" style="font-size:12px"></i>';
             }
             else if (item.goto == "spam@localhost") {
-              item.goto = '<span class="label label-danger">Learn as spam</span>';
+              item.goto = '<span class="label label-danger">' + lang.goto_spam + '</span>';
             }
             else if (item.goto == "ham@localhost") {
-              item.goto = '<span class="label label-success">Learn as ham</span>';
+              item.goto = '<span class="label label-success">' + lang.goto_ham + '</span>';
             }
             if (item.in_primary_domain !== "") {
-              item.domain = "↳ " + item.domain + " (" + item.in_primary_domain + ")";
+              item.domain = '<i data-domainname="' + item.domain + '" class="bi bi-info-circle-fill alias-domain-info text-info" data-toggle="tooltip" title="' + lang.target_domain + ': ' + item.in_primary_domain + '"></i> ' + item.domain;
             }
           });
         }
@@ -863,6 +870,7 @@
         },
         "ready.ft.table": function(e, ft){
           table_mailbox_ready(ft, 'alias_table');
+          $('.alias-domain-info').tooltip();
         },
         "after.ft.filtering": function(e, ft){
           table_mailbox_ready(ft, 'alias_table');
@@ -875,11 +883,11 @@
   function draw_aliasdomain_table() {
     ft_aliasdomain_table = FooTable.init('#aliasdomain_table', {
       "columns": [
-        {"name":"chkbox","title":"","style":{"maxWidth":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},
+        {"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px"},"filterable": false,"sortable": false,"type":"html"},
         {"sorted": true,"name":"alias_domain","title":lang.alias,"style":{"width":"250px"}},
         {"name":"target_domain","title":lang.target_domain,"type":"html"},
-        {"name":"active","filterable": false,"style":{"maxWidth":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'&#10003;':0==value&&'&#10005;';}},
-        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"250px","width":"250px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
+        {"name":"active","filterable": false,"style":{"min-width":"80px","width":"80px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},
+        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","min-width":"250px","width":"250px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
       ],
       "empty": lang.empty,
       "rows": $.ajax({
@@ -891,10 +899,10 @@
         },
         success: function (data) {
           $.each(data, function (i, item) {
-            item.action = '<div class="btn-group">' +
-              '<a href="/edit/aliasdomain/' + encodeURIComponent(item.alias_domain) + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +
-              '<a href="#" data-action="delete_selected" data-id="single-alias-domain" data-api-url="delete/alias-domain" data-item="' + encodeURIComponent(item.alias_domain) + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +
-              '<a href="#dnsInfoModal" class="btn btn-xs btn-info" data-toggle="modal" data-domain="' + encodeURIComponent(item.alias_domain) + '"><span class="glyphicon glyphicon-question-sign"></span> DNS</a></div>' +
+            item.action = '<div class="btn-group footable-actions">' +
+              '<a href="/edit/aliasdomain/' + encodeURIComponent(item.alias_domain) + '" class="btn btn-xs btn-xs-third btn-default"><i class="bi bi-pencil-fill"></i> ' + lang.edit + '</a>' +
+              '<a href="#" data-action="delete_selected" data-id="single-alias-domain" data-api-url="delete/alias-domain" data-item="' + encodeURIComponent(item.alias_domain) + '" class="btn btn-xs btn-xs-third btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +
+              '<a href="#dnsInfoModal" class="btn btn-xs btn-xs-third btn-info" data-toggle="modal" data-domain="' + encodeURIComponent(item.alias_domain) + '"><i class="bi bi-globe2"></i> DNS</a></div>' +
               '</div>';
             item.chkbox = '<input type="checkbox" data-id="alias-domain" name="multi_select" value="' + encodeURIComponent(item.alias_domain) + '" />';
             if(item.parent_is_backupmx == '1') {
@@ -941,17 +949,17 @@
   function draw_sync_job_table() {
     ft_syncjob_table = FooTable.init('#sync_job_table', {
       "columns": [
-        {"name":"chkbox","title":"","style":{"maxWidth":"60px","width":"60px","text-align":"center"},"filterable": false,"sortable": false,"type":"html"},
-        {"sorted": true,"name":"id","title":"ID","style":{"maxWidth":"60px","width":"60px","text-align":"center"}},
+        {"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px","text-align":"center"},"filterable": false,"sortable": false,"type":"html"},
+        {"sorted": true,"name":"id","title":"ID","style":{"min-width":"60px","width":"60px","text-align":"center"}},
         {"name":"user2","title":lang.owner},
         {"name":"server_w_port","title":"Server","breakpoints":"xs sm md","style":{"word-break":"break-all"}},
         {"name":"exclude","title":lang.excludes,"breakpoints":"all"},
         {"name":"mins_interval","title":lang.mins_interval,"breakpoints":"all"},
         {"name":"last_run","title":lang.last_run,"breakpoints":"xs sm md"},
         {"name":"log","title":"Log"},
-        {"name":"active","filterable": false,"style":{"maxWidth":"70px","width":"70px"},"title":lang.active,"formatter": function(value){return 1==value?'&#10003;':0==value&&'&#10005;';}},
-        {"name":"is_running","filterable": false,"style":{"maxWidth":"120px","width":"100px"},"title":lang.status},
-        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
+        {"name":"active","filterable": false,"style":{"min-width":"70px","width":"70px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},
+        {"name":"is_running","filterable": false,"style":{"min-width":"120px","width":"100px"},"title":lang.status},
+        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","min-width":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
       ],
       "empty": lang.empty,
       "rows": $.ajax({
@@ -963,7 +971,7 @@
         },
         success: function (data) {
           $.each(data, function (i, item) {
-            item.log = '<a href="#syncjobLogModal" data-toggle="modal" data-syncjob-id="' + encodeURIComponent(item.id) + '">Open logs</a>'
+            item.log = '<a href="#syncjobLogModal" data-toggle="modal" data-syncjob-id="' + encodeURIComponent(item.id) + '">' + lang.open_logs + '</a>'
             item.user2 = escapeHtml(item.user2);
             if (!item.exclude > 0) {
               item.exclude = '-';
@@ -971,9 +979,9 @@
               item.exclude  = '<code>' + item.exclude + '</code>';
             }
             item.server_w_port = escapeHtml(item.user1) + '@' + item.host1 + ':' + item.port1;
-            item.action = '<div class="btn-group">' +
-              '<a href="/edit/syncjob/' + item.id + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +
-              '<a href="#" data-action="delete_selected" data-id="single-syncjob" data-api-url="delete/syncjob" data-item="' + item.id + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +
+            item.action = '<div class="btn-group footable-actions">' +
+              '<a href="/edit/syncjob/' + item.id + '" class="btn btn-xs btn-xs-half btn-default"><i class="bi bi-pencil-fill"></i> ' + lang.edit + '</a>' +
+              '<a href="#" data-action="delete_selected" data-id="single-syncjob" data-api-url="delete/syncjob" data-item="' + item.id + '" class="btn btn-xs btn-xs-half btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +
               '</div>';
             item.chkbox = '<input type="checkbox" data-id="syncjob" name="multi_select" value="' + item.id + '" />';
             if (item.is_running == 1) {
@@ -1023,14 +1031,14 @@
   function draw_filter_table() {
     ft_filter_table = FooTable.init('#filter_table', {
       "columns": [
-        {"name":"chkbox","title":"","style":{"maxWidth":"60px","width":"60px","text-align":"center"},"filterable": false,"sortable": false,"type":"html"},
-        {"name":"id","title":"ID","style":{"maxWidth":"60px","width":"60px","text-align":"center"}},
-        {"name":"active","style":{"maxWidth":"80px","width":"80px"},"title":lang.active},
-        {"name":"filter_type","style":{"maxWidth":"80px","width":"80px"},"title":"Type"},
-        {"sorted": true,"name":"username","title":lang.owner,"style":{"maxWidth":"550px","width":"350px"}},
+        {"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px","text-align":"center"},"filterable": false,"sortable": false,"type":"html"},
+        {"name":"id","title":"ID","style":{"min-width":"60px","width":"60px","text-align":"center"}},
+        {"name":"active","style":{"min-width":"80px","width":"80px"},"title":lang.active},
+        {"name":"filter_type","style":{"min-width":"80px","width":"80px"},"title":"Type"},
+        {"sorted": true,"name":"username","title":lang.owner,"style":{"min-width":"550px","width":"350px"}},
         {"name":"script_desc","title":lang.description,"breakpoints":"xs"},
         {"name":"script_data","title":"Script","breakpoints":"all"},
-        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
+        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","min-width":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}
       ],
       "empty": lang.empty,
       "rows": $.ajax({
@@ -1049,9 +1057,9 @@
             }
             item.script_data = '<pre style="margin:0px">' + escapeHtml(item.script_data) + '</pre>'
             item.filter_type = '<div class="label label-default">' + item.filter_type.charAt(0).toUpperCase() + item.filter_type.slice(1).toLowerCase() + '</div>'
-            item.action = '<div class="btn-group">' +
-              '<a href="/edit/filter/' + item.id + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +
-              '<a href="#" data-action="delete_selected" data-id="single-filter" data-api-url="delete/filter" data-item="' + encodeURIComponent(item.id) + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +
+            item.action = '<div class="btn-group footable-actions">' +
+              '<a href="/edit/filter/' + item.id + '" class="btn btn-xs btn-xs-half btn-default"><i class="bi bi-pencil-fill"></i> ' + lang.edit + '</a>' +
+              '<a href="#" data-action="delete_selected" data-id="single-filter" data-api-url="delete/filter" data-item="' + encodeURIComponent(item.id) + '" class="btn btn-xs btn-xs-half btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +
               '</div>';
             item.chkbox = '<input type="checkbox" data-id="filter_item" name="multi_select" value="' + item.id + '" />'
           });
diff --git a/mailcow/src/mailcow-dockerized/data/web/js/site/pwgen.js b/mailcow/src/mailcow-dockerized/data/web/js/site/pwgen.js
index 00afb47..9b204e2 100644
--- a/mailcow/src/mailcow-dockerized/data/web/js/site/pwgen.js
+++ b/mailcow/src/mailcow-dockerized/data/web/js/site/pwgen.js
@@ -12,748 +12,819 @@
    THVV 11/27/09 ported to Javascript
    */
 
+
+function shuffle(a) {
+  var j, x, i;
+  for (i = a.length - 1; i > 0; i--) {
+    j = Math.floor(Math.random() * (i + 1));
+    x = a[i];
+    a[i] = a[j];
+    a[j] = x;
+  }
+  return a;
+}
+
 var GPW = {
+  pronounceable: function(pwl) {
+    var output = "";
+    var c1, c2, c3;
+    var sum = 0;
+    var nchar;
+    var ranno;
+    var pwnum;
+    var pik;
 
-/**
- * var pw = GPW.pronounceable(10);
- */
+    var _alphabet = 'abcdefghijklmnopqrstuvwxyz';
+    var _specialchars = '%&;:=_-}{?#';
+    var _trigram = [
+      [
+        [2, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 0],
+        [37, 25, 2, 5, 38, 0, 0, 2, 46, 1, 0, 304, 0, 2, 49, 0, 0, 24, 24, 0, 19, 0, 0, 0, 14, 0],
+        [26, 1, 64, 2, 107, 0, 1, 94, 67, 0, 173, 13, 5, 1, 35, 1, 13, 32, 3, 114, 23, 0, 0, 0, 45, 0],
+        [35, 7, 3, 43, 116, 6, 3, 8, 75, 14, 1, 16, 25, 3, 44, 3, 1, 35, 20, 1, 10, 25, 9, 0, 18, 0],
+        [2, 0, 2, 1, 0, 1, 3, 0, 0, 0, 0, 10, 0, 2, 3, 0, 0, 12, 6, 0, 2, 0, 0, 0, 0, 0],
+        [5, 0, 0, 0, 14, 50, 2, 0, 3, 0, 2, 5, 0, 2, 7, 0, 0, 5, 1, 39, 1, 0, 0, 0, 1, 0],
+        [30, 1, 0, 1, 182, 0, 42, 5, 30, 0, 0, 7, 9, 42, 51, 3, 0, 24, 3, 0, 21, 0, 3, 0, 3, 0],
+        [12, 0, 0, 0, 20, 0, 0, 0, 3, 0, 0, 5, 4, 2, 13, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0],
+        [2, 0, 10, 26, 2, 1, 10, 0, 2, 1, 2, 87, 13, 144, 0, 2, 0, 93, 30, 23, 0, 3, 1, 0, 0, 0],
+        [4, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [11, 0, 1, 1, 98, 1, 0, 1, 15, 0, 0, 3, 0, 0, 5, 1, 0, 3, 0, 1, 2, 0, 3, 0, 8, 0],
+        [78, 20, 34, 45, 124, 21, 24, 5, 109, 0, 28, 237, 31, 3, 53, 23, 0, 7, 16, 69, 29, 26, 5, 0, 26, 2],
+        [70, 57, 1, 1, 98, 3, 0, 1, 68, 0, 0, 3, 38, 2, 43, 69, 0, 3, 14, 3, 12, 0, 2, 0, 14, 0],
+        [114, 6, 156, 359, 103, 8, 146, 12, 141, 2, 57, 4, 0, 89, 61, 1, 4, 1, 124, 443, 29, 6, 1, 3, 28, 9],
+        [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 3, 2, 2, 2, 0, 0, 0, 0, 0],
+        [29, 3, 0, 1, 59, 1, 0, 86, 25, 0, 1, 14, 1, 1, 37, 94, 0, 9, 22, 30, 8, 0, 0, 0, 9, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0],
+        [124, 64, 101, 233, 115, 12, 47, 5, 188, 3, 61, 55, 68, 34, 46, 25, 6, 94, 48, 189, 5, 22, 5, 1, 172, 2],
+        [19, 3, 32, 0, 71, 0, 1, 81, 49, 0, 22, 3, 19, 2, 19, 34, 4, 0, 152, 211, 12, 0, 1, 0, 17, 1],
+        [50, 3, 41, 2, 863, 4, 0, 144, 352, 0, 5, 14, 6, 3, 144, 0, 0, 60, 13, 106, 57, 1, 5, 0, 8, 5],
+        [0, 5, 23, 35, 5, 5, 38, 1, 0, 1, 3, 33, 4, 23, 0, 4, 1, 35, 52, 56, 0, 1, 0, 7, 0, 1],
+        [35, 0, 0, 1, 108, 0, 0, 0, 49, 0, 0, 1, 0, 0, 19, 0, 0, 0, 0, 0, 3, 1, 0, 0, 6, 0],
+        [30, 10, 0, 4, 3, 6, 2, 2, 2, 0, 10, 13, 4, 15, 3, 0, 0, 6, 3, 5, 0, 0, 0, 0, 2, 0],
+        [3, 0, 0, 0, 4, 0, 0, 0, 22, 0, 0, 1, 0, 0, 7, 2, 0, 0, 1, 1, 0, 0, 3, 0, 3, 0],
+        [11, 8, 1, 5, 16, 5, 1, 2, 2, 0, 0, 10, 7, 4, 13, 1, 0, 3, 5, 7, 3, 0, 5, 0, 0, 0],
+        [10, 0, 0, 1, 22, 0, 0, 0, 10, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 2, 2, 0, 0, 0, 4, 11]
+      ],
+      [
+        [0, 17, 74, 11, 1, 2, 19, 4, 8, 0, 10, 68, 7, 73, 1, 7, 0, 110, 54, 55, 9, 1, 3, 1, 12, 1],
+        [7, 0, 0, 0, 16, 0, 0, 0, 10, 0, 0, 24, 0, 0, 9, 0, 0, 2, 3, 0, 2, 0, 0, 0, 14, 0],
+        [2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0],
+        [51, 1, 14, 34, 18, 11, 16, 7, 9, 0, 1, 85, 5, 48, 2, 2, 2, 199, 36, 41, 0, 4, 5, 1, 6, 2],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
+        [34, 8, 22, 21, 8, 3, 9, 1, 0, 3, 1, 50, 7, 45, 16, 4, 2, 29, 22, 59, 4, 4, 0, 0, 0, 3],
+        [0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [57, 0, 0, 0, 519, 0, 0, 0, 35, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 32, 1, 0, 0, 3, 0],
+        [0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
+        [1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [62, 7, 4, 21, 3, 2, 9, 3, 8, 1, 1, 46, 8, 63, 58, 2, 0, 55, 15, 20, 46, 6, 17, 10, 19, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [110, 0, 0, 0, 77, 0, 0, 0, 100, 0, 0, 0, 0, 0, 78, 0, 0, 0, 0, 0, 28, 0, 0, 0, 10, 0],
+        [0, 0, 6, 0, 16, 0, 0, 0, 7, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 27, 2, 0, 0, 0, 0, 0],
+        [1, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, 4, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 3, 21, 16, 3, 5, 14, 0, 12, 1, 2, 52, 7, 20, 2, 0, 1, 104, 44, 54, 0, 0, 0, 3, 1, 5],
+        [0, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [1, 0, 0, 0, 3, 0, 1, 2, 0, 0, 0, 4, 0, 0, 0, 3, 0, 6, 8, 3, 0, 0, 2, 0, 0, 2],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+      ],
+      [
+        [1, 47, 17, 33, 1, 3, 4, 5, 7, 1, 3, 120, 40, 120, 1, 59, 1, 171, 60, 150, 19, 20, 1, 0, 5, 0],
+        [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0],
+        [23, 0, 0, 0, 22, 0, 0, 5, 13, 0, 0, 13, 0, 0, 26, 0, 0, 7, 0, 0, 27, 0, 0, 0, 0, 0],
+        [1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [23, 6, 4, 17, 6, 6, 1, 2, 13, 0, 0, 50, 12, 109, 7, 43, 0, 76, 63, 22, 1, 0, 4, 0, 2, 1],
+        [2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 4, 1, 0, 1, 0, 0, 0, 0, 0],
+        [165, 10, 2, 3, 176, 4, 3, 1, 141, 0, 0, 26, 20, 16, 102, 1, 0, 63, 8, 10, 44, 0, 13, 0, 20, 0],
+        [76, 15, 8, 33, 24, 16, 3, 0, 0, 0, 0, 38, 5, 45, 50, 28, 0, 29, 38, 71, 6, 8, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [17, 16, 2, 3, 90, 4, 1, 7, 20, 1, 1, 45, 8, 8, 12, 9, 0, 3, 32, 6, 6, 0, 13, 0, 22, 0],
+        [95, 0, 0, 0, 84, 0, 0, 0, 50, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 34, 0, 0, 0, 3, 0],
+        [1, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
+        [2, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
+        [33, 16, 40, 22, 14, 10, 11, 12, 9, 1, 1, 101, 218, 421, 24, 56, 2, 129, 37, 40, 86, 22, 25, 4, 4, 2],
+        [1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0],
+        [101, 0, 0, 0, 112, 0, 0, 0, 75, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 1, 41, 0, 0, 0, 25, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0],
+        [44, 0, 0, 0, 12, 2, 0, 0, 113, 0, 0, 0, 2, 0, 94, 0, 0, 46, 0, 0, 42, 0, 1, 0, 3, 0],
+        [3, 12, 2, 6, 6, 6, 0, 0, 8, 0, 0, 102, 42, 10, 9, 15, 0, 72, 51, 41, 1, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [5, 1, 20, 0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 2, 2, 4, 0, 3, 2, 9, 0, 0, 0, 0, 0, 0],
+        [2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+      ],
+      [
+        [0, 7, 16, 7, 1, 2, 13, 6, 18, 0, 3, 54, 23, 59, 0, 10, 0, 31, 6, 40, 8, 13, 3, 0, 32, 3],
+        [9, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 2, 0, 0, 8, 0, 0, 1, 0, 0, 8, 0, 0, 0, 2, 0],
+        [5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 3, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0],
+        [8, 0, 0, 0, 30, 0, 0, 3, 19, 0, 0, 38, 0, 0, 4, 0, 0, 4, 0, 0, 1, 0, 0, 0, 16, 0],
+        [34, 37, 82, 14, 17, 41, 11, 4, 5, 2, 0, 88, 62, 170, 14, 40, 4, 183, 99, 39, 6, 20, 16, 6, 1, 2],
+        [6, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 2, 0, 0, 5, 0, 0, 2, 0, 0, 4, 0, 0, 0, 0, 0],
+        [4, 0, 0, 0, 73, 0, 0, 0, 2, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 2, 0, 1, 0, 3, 0],
+        [8, 0, 0, 0, 9, 0, 0, 0, 4, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [100, 10, 104, 12, 33, 26, 31, 1, 1, 0, 1, 22, 22, 65, 57, 15, 0, 20, 138, 53, 20, 31, 1, 6, 0, 1],
+        [4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [9, 0, 0, 0, 79, 0, 0, 0, 12, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0],
+        [13, 0, 0, 0, 3, 0, 0, 0, 21, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
+        [7, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0],
+        [1, 5, 21, 10, 6, 3, 20, 1, 3, 0, 0, 30, 38, 54, 17, 7, 0, 39, 11, 10, 30, 5, 54, 5, 1, 3],
+        [6, 0, 0, 0, 1, 0, 0, 1, 3, 0, 0, 1, 0, 0, 7, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0],
+        [74, 0, 0, 0, 47, 0, 0, 0, 53, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 22, 0, 0, 0, 8, 0],
+        [1, 0, 3, 0, 10, 0, 0, 9, 5, 0, 1, 3, 10, 0, 16, 8, 0, 0, 0, 31, 1, 0, 2, 0, 0, 0],
+        [3, 0, 0, 0, 1, 0, 0, 6, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [10, 7, 52, 2, 5, 3, 4, 0, 2, 0, 1, 33, 14, 15, 5, 11, 1, 19, 15, 8, 1, 0, 0, 0, 0, 1],
+        [3, 0, 0, 0, 13, 0, 0, 0, 7, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [19, 0, 0, 0, 10, 0, 0, 0, 19, 0, 0, 0, 0, 0, 8, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [4, 2, 1, 2, 3, 1, 2, 0, 1, 0, 1, 4, 4, 12, 0, 0, 0, 0, 8, 1, 0, 0, 1, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0]
+      ],
+      [
+        [0, 39, 34, 110, 0, 12, 13, 3, 0, 0, 50, 68, 38, 71, 0, 13, 1, 117, 80, 112, 28, 19, 7, 0, 0, 1],
+        [32, 5, 0, 0, 31, 0, 0, 0, 8, 0, 0, 6, 0, 0, 28, 0, 0, 32, 2, 3, 29, 0, 0, 0, 4, 0],
+        [33, 0, 9, 2, 51, 0, 0, 39, 49, 0, 47, 26, 0, 0, 59, 0, 0, 35, 2, 206, 42, 0, 0, 0, 2, 0],
+        [29, 7, 1, 16, 45, 5, 22, 3, 88, 0, 0, 8, 9, 4, 24, 2, 0, 27, 8, 4, 27, 0, 7, 0, 13, 0],
+        [2, 4, 13, 63, 1, 6, 1, 4, 10, 0, 19, 23, 13, 66, 1, 42, 0, 43, 9, 34, 1, 4, 6, 0, 0, 8],
+        [14, 0, 1, 2, 36, 33, 0, 0, 22, 0, 0, 15, 0, 0, 24, 0, 0, 14, 1, 13, 35, 0, 0, 0, 5, 0],
+        [48, 1, 0, 0, 36, 1, 15, 2, 38, 0, 0, 7, 4, 4, 26, 0, 0, 38, 0, 0, 19, 0, 0, 0, 4, 0],
+        [14, 0, 0, 0, 24, 0, 0, 0, 6, 0, 0, 0, 1, 0, 18, 0, 0, 4, 0, 0, 4, 0, 0, 0, 3, 0],
+        [8, 0, 5, 13, 2, 1, 42, 0, 1, 1, 2, 13, 7, 59, 1, 1, 0, 10, 25, 22, 0, 7, 0, 0, 0, 2],
+        [4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0],
+        [2, 1, 0, 1, 6, 0, 0, 0, 4, 0, 0, 0, 0, 1, 1, 0, 0, 0, 2, 3, 0, 0, 0, 0, 1, 0],
+        [76, 7, 6, 57, 131, 19, 7, 3, 125, 0, 4, 238, 22, 1, 48, 15, 0, 4, 27, 26, 17, 19, 2, 0, 7, 0],
+        [87, 53, 1, 0, 84, 0, 0, 0, 102, 0, 0, 3, 8, 8, 56, 64, 0, 0, 4, 0, 19, 0, 1, 0, 8, 0],
+        [78, 17, 68, 159, 128, 8, 35, 14, 96, 2, 2, 4, 5, 54, 57, 3, 2, 9, 127, 624, 33, 10, 8, 0, 11, 16],
+        [0, 0, 8, 10, 0, 6, 7, 1, 2, 0, 0, 23, 10, 38, 0, 16, 0, 14, 6, 4, 41, 3, 2, 2, 0, 1],
+        [26, 1, 1, 0, 27, 0, 0, 32, 45, 0, 0, 21, 1, 0, 35, 9, 0, 35, 10, 65, 13, 0, 2, 0, 3, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 0, 0],
+        [217, 57, 66, 22, 190, 41, 70, 13, 200, 3, 14, 40, 134, 117, 113, 42, 2, 123, 167, 135, 23, 58, 22, 1, 123, 1],
+        [17, 7, 74, 6, 58, 1, 3, 25, 82, 0, 3, 6, 17, 5, 34, 52, 7, 0, 222, 278, 18, 2, 1, 0, 6, 0],
+        [78, 3, 19, 0, 129, 4, 0, 93, 105, 0, 1, 3, 2, 2, 50, 1, 0, 73, 5, 113, 17, 0, 4, 0, 32, 4],
+        [0, 4, 7, 6, 1, 0, 4, 0, 0, 0, 2, 3, 17, 4, 0, 15, 0, 46, 20, 18, 0, 2, 1, 0, 0, 0],
+        [29, 0, 0, 0, 121, 0, 0, 0, 56, 0, 0, 0, 0, 0, 26, 0, 0, 2, 1, 0, 2, 2, 0, 0, 3, 1],
+        [33, 4, 3, 4, 16, 2, 0, 5, 24, 0, 0, 3, 3, 3, 23, 2, 0, 3, 15, 4, 0, 0, 1, 0, 2, 0],
+        [29, 0, 43, 0, 20, 0, 0, 14, 21, 0, 0, 0, 0, 0, 15, 78, 1, 0, 0, 72, 12, 0, 0, 1, 2, 0],
+        [7, 3, 1, 4, 25, 2, 0, 2, 0, 0, 1, 4, 6, 4, 4, 1, 0, 2, 3, 0, 0, 1, 4, 0, 0, 0],
+        [1, 0, 0, 0, 9, 0, 0, 0, 1, 0, 0, 0, 0, 0, 4, 0, 0, 1, 0, 0, 1, 1, 0, 0, 2, 3]
+      ],
+      [
+        [1, 10, 39, 5, 2, 1, 1, 3, 18, 0, 2, 35, 10, 27, 0, 0, 0, 36, 13, 18, 10, 0, 2, 3, 4, 1],
+        [2, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [18, 5, 24, 6, 12, 0, 2, 0, 6, 0, 1, 25, 6, 18, 2, 0, 0, 114, 17, 15, 4, 2, 2, 0, 1, 0],
+        [10, 2, 0, 0, 51, 0, 0, 2, 45, 0, 0, 21, 4, 0, 13, 0, 0, 9, 7, 0, 7, 0, 0, 0, 8, 0],
+        [1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [9, 9, 58, 18, 42, 7, 11, 0, 0, 0, 0, 29, 2, 53, 0, 0, 0, 40, 41, 18, 0, 2, 0, 10, 0, 3],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [64, 0, 0, 0, 50, 0, 0, 0, 21, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 42, 0, 0, 0, 15, 0],
+        [6, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [5, 1, 8, 2, 1, 0, 7, 0, 6, 0, 0, 34, 1, 8, 32, 2, 0, 165, 5, 0, 25, 1, 2, 7, 1, 0],
+        [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [64, 0, 0, 0, 66, 0, 0, 0, 35, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 11, 0, 0, 0, 3, 0],
+        [1, 0, 0, 0, 2, 0, 0, 2, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0],
+        [1, 1, 1, 0, 19, 0, 0, 3, 1, 0, 0, 0, 1, 0, 3, 0, 0, 1, 9, 0, 0, 0, 4, 0, 8, 0],
+        [0, 0, 4, 2, 1, 0, 9, 0, 0, 2, 0, 119, 7, 24, 0, 0, 0, 28, 31, 6, 0, 0, 0, 0, 0, 2],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+      ],
+      [
+        [0, 20, 5, 11, 3, 2, 11, 3, 13, 0, 0, 68, 24, 60, 1, 5, 0, 63, 23, 68, 15, 8, 5, 0, 2, 5],
+        [4, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [23, 3, 2, 4, 12, 1, 1, 3, 4, 0, 0, 32, 8, 141, 39, 4, 0, 96, 29, 33, 1, 1, 4, 0, 5, 0],
+        [0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0],
+        [8, 0, 0, 0, 20, 0, 0, 1, 60, 0, 0, 24, 0, 0, 3, 1, 0, 6, 4, 0, 0, 0, 0, 0, 12, 0],
+        [18, 4, 1, 1, 12, 2, 1, 1, 2, 0, 1, 4, 0, 3, 12, 1, 0, 1, 3, 153, 2, 0, 3, 0, 1, 0],
+        [23, 21, 16, 6, 7, 2, 9, 0, 0, 0, 0, 24, 7, 103, 17, 1, 0, 10, 26, 19, 3, 10, 0, 0, 0, 1],
+        [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [49, 0, 0, 0, 73, 0, 0, 0, 25, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 13, 0, 0, 0, 17, 0],
+        [23, 0, 0, 0, 12, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 1, 0],
+        [26, 1, 0, 0, 28, 0, 0, 0, 20, 0, 0, 0, 0, 0, 26, 2, 0, 0, 0, 1, 7, 0, 0, 0, 0, 0],
+        [6, 4, 3, 16, 6, 1, 10, 1, 5, 0, 0, 22, 1, 49, 20, 3, 0, 34, 12, 23, 16, 7, 5, 0, 1, 0],
+        [0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [216, 0, 0, 0, 97, 0, 0, 0, 43, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 14, 0, 0, 0, 3, 0],
+        [2, 2, 0, 0, 0, 0, 0, 2, 2, 0, 1, 1, 0, 0, 2, 1, 0, 0, 0, 18, 0, 0, 1, 0, 0, 0],
+        [2, 0, 0, 0, 0, 0, 0, 8, 3, 0, 0, 0, 0, 0, 17, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
+        [28, 1, 1, 0, 49, 1, 1, 0, 41, 0, 0, 26, 15, 24, 2, 0, 0, 14, 22, 6, 0, 0, 0, 0, 3, 1],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 3, 0, 6, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0],
+        [2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+      ],
+      [
+        [2, 26, 15, 20, 6, 8, 22, 3, 31, 0, 11, 90, 66, 171, 3, 25, 0, 142, 30, 49, 20, 11, 20, 0, 13, 8],
+        [4, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 2, 0, 0, 12, 0, 0, 2, 0, 0, 4, 0, 0, 0, 1, 0],
+        [1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
+        [2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0],
+        [123, 5, 22, 33, 37, 5, 3, 0, 27, 0, 0, 87, 65, 86, 17, 7, 1, 311, 57, 42, 11, 11, 14, 8, 11, 2],
+        [2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0],
+        [1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [22, 22, 56, 15, 23, 6, 19, 0, 0, 1, 1, 73, 20, 79, 17, 41, 0, 36, 53, 39, 3, 11, 0, 0, 0, 6],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [5, 0, 0, 0, 11, 0, 0, 0, 8, 0, 0, 0, 0, 0, 22, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0],
+        [21, 0, 0, 0, 15, 0, 0, 0, 6, 0, 0, 0, 1, 0, 7, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0],
+        [3, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 0, 1, 3, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0],
+        [13, 18, 13, 25, 17, 5, 13, 0, 7, 1, 4, 101, 62, 62, 44, 29, 0, 130, 45, 33, 81, 8, 28, 0, 6, 2],
+        [3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
+        [20, 0, 0, 0, 23, 0, 0, 0, 40, 0, 0, 1, 0, 0, 72, 0, 0, 0, 0, 0, 13, 0, 0, 0, 3, 0],
+        [3, 0, 1, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0],
+        [3, 0, 2, 1, 21, 9, 1, 7, 5, 0, 0, 1, 4, 3, 4, 1, 0, 2, 7, 1, 1, 0, 3, 0, 6, 0],
+        [3, 13, 7, 6, 3, 5, 12, 1, 0, 0, 0, 7, 37, 26, 0, 3, 0, 37, 24, 15, 0, 0, 0, 2, 2, 1],
+        [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [17, 0, 0, 0, 5, 0, 0, 2, 5, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [5, 1, 1, 39, 1, 0, 3, 0, 1, 0, 0, 13, 9, 0, 0, 25, 0, 9, 29, 9, 0, 0, 0, 1, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+      ],
+      [
+        [0, 33, 20, 8, 1, 0, 17, 5, 1, 0, 2, 169, 20, 230, 0, 3, 0, 30, 13, 91, 0, 1, 1, 2, 0, 1],
+        [11, 19, 0, 0, 38, 0, 0, 0, 22, 0, 0, 131, 1, 2, 10, 0, 0, 20, 1, 0, 23, 0, 0, 0, 2, 0],
+        [161, 0, 3, 0, 113, 0, 0, 62, 113, 0, 142, 15, 0, 4, 46, 0, 0, 12, 5, 53, 42, 0, 0, 0, 7, 0],
+        [51, 2, 0, 31, 232, 0, 30, 0, 46, 1, 0, 5, 1, 8, 10, 1, 0, 1, 10, 5, 11, 0, 7, 0, 9, 0],
+        [0, 1, 17, 6, 1, 16, 11, 1, 0, 0, 1, 52, 4, 70, 0, 1, 0, 66, 18, 50, 7, 17, 6, 0, 0, 2],
+        [7, 0, 0, 0, 31, 45, 0, 0, 27, 0, 0, 9, 0, 1, 10, 0, 0, 2, 0, 24, 10, 0, 0, 0, 71, 0],
+        [48, 0, 0, 0, 41, 0, 30, 147, 30, 0, 0, 4, 15, 57, 20, 1, 0, 23, 3, 1, 15, 0, 1, 0, 2, 2],
+        [1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [3, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
+        [6, 0, 0, 0, 17, 0, 0, 0, 3, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0],
+        [60, 10, 6, 36, 106, 6, 5, 7, 90, 0, 13, 253, 14, 0, 24, 1, 0, 1, 10, 31, 6, 6, 5, 0, 10, 0],
+        [76, 26, 0, 0, 94, 1, 0, 1, 53, 0, 0, 1, 38, 1, 30, 133, 0, 1, 8, 0, 17, 0, 0, 0, 2, 0],
+        [212, 12, 143, 168, 396, 83, 435, 26, 94, 8, 43, 9, 6, 44, 70, 3, 10, 2, 139, 205, 35, 46, 4, 4, 15, 1],
+        [2, 2, 20, 10, 1, 0, 9, 0, 0, 0, 0, 28, 12, 604, 0, 8, 0, 25, 13, 24, 139, 3, 2, 3, 0, 1],
+        [20, 5, 0, 0, 26, 2, 0, 16, 16, 1, 0, 33, 6, 0, 13, 39, 0, 5, 19, 28, 5, 0, 1, 0, 1, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0],
+        [41, 2, 39, 24, 106, 7, 9, 0, 19, 0, 11, 20, 24, 1, 24, 8, 0, 39, 11, 31, 3, 5, 8, 0, 10, 0],
+        [35, 5, 71, 4, 110, 4, 2, 189, 56, 1, 13, 12, 93, 5, 55, 33, 3, 6, 85, 271, 4, 1, 1, 0, 8, 0],
+        [136, 1, 34, 1, 184, 5, 0, 77, 158, 0, 1, 4, 6, 5, 70, 1, 0, 31, 2, 105, 72, 0, 1, 0, 142, 19],
+        [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 121, 1, 0, 0, 0, 1, 19, 0, 0, 0, 0, 0, 0, 0],
+        [57, 0, 0, 0, 292, 0, 0, 0, 37, 0, 0, 0, 0, 0, 12, 0, 0, 1, 0, 0, 3, 0, 0, 0, 2, 0],
+        [3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [1, 0, 0, 0, 2, 1, 1, 0, 3, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 9, 1, 0, 0, 0, 1, 0],
+        [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [9, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 16]
+      ],
+      [
+        [0, 2, 32, 1, 1, 0, 3, 3, 2, 0, 3, 1, 8, 17, 0, 2, 0, 5, 2, 0, 2, 3, 2, 1, 1, 2],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [4, 0, 24, 1, 1, 3, 0, 1, 0, 2, 0, 2, 0, 6, 2, 0, 0, 11, 9, 5, 0, 0, 6, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 1, 0, 0, 0, 1, 4, 0, 0, 0, 0, 2, 4, 3, 0, 0, 0, 0, 0, 4, 0, 1, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [4, 2, 6, 0, 3, 0, 3, 12, 10, 0, 1, 6, 0, 5, 0, 0, 0, 10, 10, 1, 13, 4, 2, 0, 7, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [3, 3, 0, 19, 0, 0, 8, 0, 2, 2, 2, 8, 5, 24, 0, 1, 0, 15, 9, 5, 0, 1, 0, 2, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+      ],
+      [
+        [0, 3, 0, 6, 1, 2, 8, 2, 1, 1, 1, 9, 4, 13, 2, 3, 0, 18, 4, 17, 2, 1, 2, 1, 5, 2],
+        [3, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 11, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0],
+        [2, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
+        [3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
+        [4, 3, 0, 7, 28, 3, 3, 2, 1, 0, 0, 20, 5, 55, 3, 3, 0, 59, 18, 56, 2, 1, 4, 0, 27, 0],
+        [1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
+        [9, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0],
+        [5, 2, 3, 9, 15, 1, 1, 0, 0, 0, 1, 10, 10, 87, 2, 4, 0, 11, 15, 13, 0, 2, 2, 0, 0, 0],
+        [2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [15, 0, 0, 0, 46, 0, 0, 0, 13, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0],
+        [13, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [5, 0, 0, 0, 11, 0, 0, 0, 10, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0],
+        [1, 1, 2, 3, 2, 4, 0, 2, 1, 0, 1, 3, 1, 7, 1, 2, 0, 6, 2, 1, 7, 4, 5, 2, 0, 0],
+        [2, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 4, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [10, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 5, 0, 0, 0, 2, 0],
+        [2, 2, 1, 0, 1, 0, 1, 9, 5, 0, 1, 0, 4, 0, 8, 3, 0, 0, 0, 11, 4, 0, 1, 0, 1, 0],
+        [3, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 5, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 5, 1, 1, 0, 8, 0, 2, 1, 1, 0, 0, 1, 0, 1, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [9, 0, 0, 0, 4, 0, 0, 1, 2, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [2, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 4, 0, 0, 2, 0, 0, 2, 1, 0, 1, 0, 3, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+      ],
+      [
+        [1, 46, 84, 43, 3, 2, 46, 9, 52, 0, 10, 3, 64, 242, 4, 23, 1, 157, 92, 210, 45, 21, 23, 9, 42, 11],
+        [12, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 2, 0, 0, 13, 0, 0, 4, 0, 0, 4, 0, 0, 0, 2, 0],
+        [9, 0, 0, 0, 6, 0, 0, 12, 4, 0, 0, 1, 1, 0, 19, 0, 0, 2, 0, 1, 7, 0, 0, 0, 2, 0],
+        [2, 3, 2, 0, 41, 4, 0, 1, 16, 0, 0, 1, 2, 3, 13, 1, 0, 8, 9, 2, 3, 0, 5, 0, 3, 0],
+        [94, 25, 75, 44, 36, 13, 55, 9, 26, 1, 1, 9, 55, 121, 22, 22, 0, 77, 84, 115, 12, 29, 14, 30, 75, 1],
+        [9, 1, 0, 0, 4, 1, 1, 1, 12, 0, 0, 1, 0, 0, 7, 0, 0, 8, 1, 2, 8, 0, 1, 0, 0, 0],
+        [16, 0, 0, 0, 12, 0, 0, 0, 10, 0, 0, 0, 0, 0, 6, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0],
+        [7, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [82, 33, 140, 26, 43, 37, 73, 0, 0, 1, 6, 11, 46, 238, 50, 40, 13, 5, 90, 127, 12, 36, 0, 3, 0, 7],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [7, 0, 0, 0, 4, 0, 0, 3, 9, 0, 0, 2, 0, 1, 2, 0, 0, 0, 3, 0, 0, 0, 3, 0, 8, 0],
+        [128, 12, 2, 4, 169, 7, 2, 4, 152, 1, 0, 0, 7, 0, 100, 2, 0, 1, 10, 2, 41, 0, 7, 0, 53, 0],
+        [27, 0, 0, 2, 11, 0, 0, 2, 9, 0, 0, 0, 1, 0, 13, 0, 0, 0, 4, 0, 3, 0, 0, 0, 3, 0],
+        [0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0],
+        [23, 23, 65, 15, 7, 4, 132, 3, 32, 0, 2, 7, 29, 69, 50, 36, 11, 74, 33, 53, 66, 16, 80, 1, 12, 1],
+        [11, 0, 0, 0, 3, 1, 0, 21, 5, 0, 0, 0, 1, 0, 6, 0, 0, 3, 1, 4, 0, 0, 0, 0, 1, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 2, 0, 0, 0, 6, 0],
+        [7, 1, 0, 0, 16, 0, 0, 8, 23, 0, 1, 0, 1, 0, 20, 3, 0, 0, 1, 23, 0, 0, 1, 0, 2, 0],
+        [22, 1, 0, 0, 23, 0, 0, 14, 34, 0, 0, 0, 2, 0, 23, 0, 0, 9, 3, 0, 8, 1, 1, 0, 18, 5],
+        [5, 17, 26, 18, 31, 5, 13, 0, 5, 2, 4, 8, 68, 31, 15, 5, 0, 21, 68, 56, 0, 4, 0, 13, 0, 1],
+        [19, 0, 0, 1, 46, 0, 0, 0, 9, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [8, 0, 0, 0, 2, 0, 0, 1, 2, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [2, 4, 12, 2, 2, 2, 3, 7, 2, 0, 1, 3, 13, 11, 2, 11, 0, 2, 31, 15, 1, 0, 4, 0, 0, 0],
+        [2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+      ],
+      [
+        [0, 10, 59, 34, 3, 0, 57, 7, 31, 3, 25, 104, 6, 326, 2, 4, 0, 144, 49, 192, 10, 2, 3, 11, 14, 7],
+        [31, 1, 0, 1, 44, 0, 0, 0, 32, 0, 0, 31, 0, 1, 27, 1, 0, 32, 1, 0, 21, 0, 0, 0, 0, 0],
+        [3, 1, 17, 6, 2, 2, 9, 3, 5, 0, 9, 3, 3, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
+        [30, 6, 8, 45, 3, 2, 14, 1, 4, 0, 1, 51, 19, 283, 10, 4, 0, 125, 39, 128, 0, 2, 9, 3, 4, 1],
+        [0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 0, 2, 0, 0, 4, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
+        [19, 0, 93, 54, 8, 2, 19, 0, 0, 1, 2, 76, 9, 194, 4, 0, 1, 21, 96, 109, 10, 0, 0, 5, 0, 1],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [1, 0, 0, 0, 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [40, 0, 0, 0, 46, 0, 0, 0, 33, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 17, 0, 0, 0, 12, 0],
+        [12, 0, 0, 0, 4, 0, 0, 0, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0],
+        [4, 10, 13, 28, 4, 1, 14, 3, 11, 0, 6, 47, 10, 168, 16, 3, 0, 107, 40, 45, 56, 8, 1, 1, 1, 2],
+        [52, 3, 0, 0, 71, 1, 1, 26, 18, 0, 4, 71, 0, 0, 50, 0, 0, 41, 9, 43, 19, 0, 0, 0, 7, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0],
+        [2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0],
+        [0, 1, 2, 1, 5, 1, 0, 2, 3, 0, 1, 0, 2, 0, 8, 2, 0, 0, 1, 10, 1, 0, 0, 0, 2, 0],
+        [0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 7, 11, 6, 3, 6, 0, 2, 0, 2, 55, 11, 29, 2, 1, 0, 18, 53, 30, 0, 0, 0, 0, 0, 3],
+        [0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [2, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 11, 0, 5, 0, 1, 0, 0, 0, 0, 1, 0, 2, 7, 0, 0, 7, 7, 4, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+      ],
+      [
+        [2, 24, 33, 23, 6, 3, 30, 6, 20, 0, 9, 115, 29, 59, 2, 31, 0, 94, 28, 159, 19, 10, 5, 0, 1, 5],
+        [5, 0, 1, 0, 20, 0, 0, 0, 1, 0, 0, 4, 0, 0, 7, 0, 0, 4, 1, 0, 10, 0, 0, 0, 0, 0],
+        [25, 0, 0, 0, 190, 0, 0, 87, 51, 0, 1, 18, 0, 0, 62, 0, 0, 16, 0, 36, 21, 0, 0, 0, 8, 0],
+        [75, 11, 4, 1, 162, 6, 3, 7, 102, 1, 1, 22, 10, 2, 57, 9, 2, 46, 30, 4, 37, 0, 11, 0, 20, 0],
+        [34, 12, 36, 12, 29, 17, 16, 4, 14, 0, 0, 45, 16, 20, 25, 8, 6, 88, 80, 84, 32, 12, 37, 18, 45, 3],
+        [15, 0, 0, 0, 30, 0, 0, 0, 38, 0, 0, 23, 0, 0, 26, 0, 0, 10, 0, 0, 19, 0, 0, 0, 0, 0],
+        [22, 8, 0, 3, 114, 6, 0, 15, 18, 0, 3, 51, 5, 0, 20, 2, 0, 24, 24, 28, 38, 0, 2, 0, 9, 0],
+        [18, 0, 0, 0, 16, 0, 0, 0, 6, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0],
+        [90, 9, 148, 14, 33, 27, 35, 4, 1, 0, 5, 12, 25, 44, 26, 21, 7, 4, 87, 94, 29, 11, 0, 4, 0, 4],
+        [2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0],
+        [6, 0, 1, 0, 22, 4, 1, 1, 10, 0, 0, 12, 2, 0, 1, 1, 0, 2, 2, 3, 0, 0, 0, 0, 9, 0],
+        [9, 0, 0, 0, 8, 0, 0, 0, 5, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
+        [8, 0, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [39, 0, 0, 0, 74, 0, 0, 0, 52, 0, 1, 0, 0, 0, 23, 0, 0, 0, 1, 0, 14, 0, 1, 0, 25, 0],
+        [4, 18, 21, 10, 4, 4, 15, 0, 11, 0, 0, 30, 60, 34, 11, 11, 0, 80, 32, 47, 52, 18, 24, 7, 2, 2],
+        [0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 4, 0, 0, 6, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0],
+        [3, 0, 1, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 3, 0, 0, 0, 6, 0],
+        [26, 4, 23, 2, 73, 17, 3, 12, 96, 0, 5, 8, 13, 0, 60, 25, 0, 1, 3, 79, 39, 4, 4, 0, 5, 0],
+        [143, 1, 1, 1, 175, 2, 2, 64, 209, 0, 0, 13, 3, 1, 65, 1, 0, 114, 3, 0, 32, 0, 2, 0, 21, 1],
+        [12, 6, 16, 6, 11, 3, 6, 0, 5, 0, 1, 15, 35, 9, 6, 3, 0, 9, 25, 31, 1, 0, 0, 0, 0, 1],
+        [15, 0, 0, 0, 43, 0, 0, 0, 20, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 4, 0, 0, 0, 1, 0],
+        [12, 0, 0, 0, 3, 0, 0, 2, 4, 0, 0, 0, 0, 0, 6, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0],
+        [5, 3, 1, 1, 0, 0, 0, 1, 0, 0, 0, 7, 14, 0, 4, 1, 1, 1, 3, 1, 1, 1, 2, 1, 0, 0],
+        [10, 0, 0, 0, 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0]
+      ],
+      [
+        [1, 0, 20, 30, 0, 2, 5, 2, 0, 0, 9, 9, 8, 18, 0, 4, 1, 51, 13, 44, 1, 1, 0, 2, 0, 0],
+        [17, 24, 2, 2, 28, 2, 0, 1, 32, 4, 0, 19, 0, 1, 16, 0, 0, 5, 26, 3, 8, 3, 1, 0, 2, 0],
+        [50, 0, 28, 0, 38, 0, 0, 47, 26, 0, 129, 14, 0, 0, 33, 0, 0, 25, 0, 34, 20, 0, 0, 0, 8, 0],
+        [17, 3, 3, 15, 59, 3, 13, 4, 47, 0, 1, 13, 2, 1, 22, 3, 0, 8, 11, 0, 21, 0, 8, 0, 35, 0],
+        [0, 6, 1, 7, 0, 3, 0, 1, 6, 0, 1, 10, 3, 13, 1, 0, 1, 10, 15, 6, 2, 7, 0, 3, 1, 0],
+        [7, 0, 0, 0, 4, 63, 0, 0, 10, 0, 0, 4, 1, 0, 6, 0, 0, 1, 0, 15, 4, 0, 0, 0, 1, 0],
+        [34, 2, 0, 1, 44, 1, 22, 3, 15, 1, 0, 11, 3, 11, 7, 0, 0, 80, 1, 2, 18, 0, 1, 0, 83, 0],
+        [10, 0, 0, 0, 8, 0, 0, 0, 6, 0, 0, 1, 5, 9, 5, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0],
+        [3, 1, 12, 53, 1, 1, 2, 0, 0, 0, 1, 27, 0, 51, 0, 0, 0, 11, 39, 8, 0, 0, 0, 1, 0, 0],
+        [1, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [5, 2, 1, 0, 48, 0, 0, 1, 7, 0, 1, 4, 0, 0, 3, 1, 0, 0, 5, 0, 3, 0, 1, 0, 6, 0],
+        [71, 4, 6, 83, 111, 8, 5, 3, 121, 0, 14, 124, 16, 1, 132, 6, 0, 1, 18, 24, 43, 16, 2, 0, 46, 1],
+        [89, 50, 1, 0, 174, 5, 0, 1, 76, 0, 0, 2, 64, 7, 56, 125, 1, 1, 4, 0, 4, 0, 2, 0, 22, 0],
+        [129, 3, 64, 82, 181, 52, 86, 3, 124, 10, 11, 7, 3, 46, 75, 1, 6, 10, 107, 149, 8, 38, 9, 1, 54, 5],
+        [0, 2, 4, 92, 0, 22, 4, 1, 0, 0, 68, 42, 42, 44, 0, 19, 0, 21, 21, 68, 0, 3, 0, 0, 0, 2],
+        [28, 1, 2, 0, 71, 0, 2, 82, 32, 1, 3, 16, 1, 1, 45, 29, 0, 17, 14, 21, 10, 0, 2, 0, 19, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0],
+        [122, 26, 31, 96, 138, 7, 34, 2, 143, 0, 61, 8, 85, 76, 61, 59, 1, 58, 46, 211, 11, 4, 9, 0, 116, 1],
+        [31, 4, 24, 0, 107, 0, 3, 18, 102, 0, 2, 7, 9, 1, 18, 42, 2, 0, 63, 127, 5, 1, 2, 0, 8, 0],
+        [45, 7, 11, 0, 64, 2, 1, 88, 63, 0, 0, 10, 3, 1, 42, 4, 0, 17, 7, 63, 9, 0, 3, 0, 11, 0],
+        [3, 11, 17, 13, 3, 3, 62, 1, 6, 0, 0, 32, 1, 137, 0, 11, 1, 86, 445, 103, 0, 7, 0, 1, 0, 2],
+        [26, 0, 0, 0, 109, 0, 0, 0, 27, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0],
+        [18, 14, 2, 13, 48, 6, 0, 8, 8, 0, 1, 28, 7, 83, 1, 8, 0, 5, 13, 2, 2, 0, 1, 0, 4, 1],
+        [2, 1, 3, 0, 5, 1, 1, 3, 26, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 14, 0],
+        [15, 1, 4, 6, 3, 1, 0, 0, 1, 0, 0, 3, 0, 1, 4, 1, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0],
+        [2, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 1]
+      ],
+      [
+        [0, 8, 38, 11, 1, 0, 18, 0, 17, 0, 2, 50, 5, 73, 1, 23, 1, 176, 50, 101, 18, 5, 7, 1, 10, 2],
+        [3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 6, 0, 0, 2, 1, 0, 3, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0],
+        [51, 1, 62, 34, 19, 4, 8, 0, 3, 1, 2, 47, 2, 108, 4, 10, 0, 292, 22, 50, 3, 1, 8, 2, 2, 4],
+        [0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0],
+        [2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0],
+        [56, 0, 0, 2, 88, 0, 0, 0, 76, 0, 0, 3, 0, 1, 97, 0, 0, 13, 1, 3, 5, 0, 0, 0, 79, 0],
+        [21, 0, 74, 25, 33, 1, 19, 0, 0, 0, 6, 27, 3, 74, 12, 11, 2, 37, 27, 57, 3, 2, 0, 2, 0, 2],
+        [1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [150, 0, 0, 0, 121, 0, 0, 0, 59, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 29, 0, 0, 0, 11, 0],
+        [6, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [2, 1, 19, 10, 12, 2, 7, 0, 31, 0, 12, 111, 14, 55, 23, 17, 0, 97, 126, 52, 20, 3, 13, 3, 2, 0],
+        [16, 0, 0, 0, 48, 0, 0, 1, 20, 0, 0, 32, 1, 0, 25, 0, 0, 32, 3, 0, 1, 0, 0, 0, 16, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [39, 0, 0, 0, 166, 0, 0, 0, 104, 0, 0, 0, 0, 0, 273, 0, 0, 0, 0, 0, 12, 0, 0, 0, 1, 0],
+        [4, 1, 3, 0, 17, 0, 0, 5, 22, 0, 1, 1, 2, 0, 13, 0, 0, 0, 0, 14, 6, 0, 1, 0, 35, 0],
+        [16, 0, 1, 0, 9, 0, 0, 3, 107, 0, 0, 0, 0, 0, 33, 0, 0, 3, 0, 0, 19, 0, 0, 0, 4, 0],
+        [1, 8, 4, 8, 3, 6, 4, 0, 1, 0, 1, 41, 8, 22, 0, 9, 0, 39, 18, 28, 0, 0, 0, 0, 0, 1],
+        [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [1, 2, 0, 0, 0, 0, 3, 0, 1, 0, 1, 3, 0, 0, 1, 0, 0, 20, 0, 3, 0, 0, 1, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+      ],
+      [
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [110, 0, 0, 0, 100, 0, 0, 0, 128, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+      ],
+      [
+        [0, 72, 130, 95, 8, 35, 73, 14, 85, 3, 10, 121, 95, 313, 2, 119, 1, 26, 66, 277, 19, 45, 28, 2, 28, 13],
+        [32, 0, 0, 0, 26, 0, 0, 0, 35, 0, 0, 4, 0, 0, 44, 0, 0, 3, 1, 0, 9, 0, 0, 0, 5, 0],
+        [18, 0, 2, 0, 47, 0, 0, 86, 25, 0, 3, 11, 0, 0, 13, 0, 0, 1, 2, 7, 38, 0, 0, 0, 4, 0],
+        [22, 5, 1, 0, 26, 1, 0, 4, 42, 0, 0, 4, 0, 2, 17, 1, 0, 5, 9, 4, 3, 0, 4, 0, 7, 0],
+        [166, 26, 106, 99, 114, 52, 55, 20, 25, 4, 4, 60, 69, 143, 20, 72, 8, 11, 257, 119, 14, 56, 34, 7, 23, 2],
+        [11, 0, 0, 0, 15, 1, 0, 0, 9, 0, 0, 7, 0, 0, 8, 0, 0, 4, 0, 0, 12, 0, 0, 0, 0, 0],
+        [26, 0, 0, 0, 63, 0, 0, 5, 25, 0, 0, 11, 1, 0, 18, 0, 0, 2, 2, 0, 13, 0, 0, 0, 11, 0],
+        [11, 0, 0, 0, 19, 0, 0, 0, 5, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0],
+        [182, 54, 210, 87, 79, 38, 65, 1, 0, 1, 6, 49, 65, 166, 82, 61, 1, 0, 151, 141, 29, 44, 1, 6, 1, 10],
+        [0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0],
+        [4, 2, 0, 1, 19, 0, 0, 3, 9, 0, 0, 6, 3, 2, 5, 3, 0, 1, 10, 2, 0, 0, 1, 0, 6, 0],
+        [24, 2, 0, 4, 28, 0, 0, 0, 36, 0, 0, 0, 0, 0, 14, 1, 0, 0, 2, 1, 2, 0, 1, 0, 8, 0],
+        [97, 1, 2, 0, 29, 2, 0, 3, 65, 0, 0, 2, 0, 0, 39, 1, 0, 0, 1, 1, 10, 0, 1, 0, 5, 0],
+        [53, 5, 0, 0, 50, 4, 0, 3, 29, 0, 1, 0, 6, 0, 16, 1, 0, 0, 9, 5, 7, 0, 2, 0, 4, 0],
+        [46, 40, 79, 40, 18, 22, 56, 4, 32, 5, 10, 76, 90, 167, 84, 127, 2, 14, 127, 74, 127, 42, 63, 17, 15, 3],
+        [10, 0, 0, 0, 21, 0, 0, 33, 10, 0, 0, 5, 1, 0, 25, 0, 0, 12, 8, 8, 5, 0, 0, 0, 1, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0],
+        [53, 0, 0, 0, 92, 0, 0, 5, 85, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 14, 0, 0, 0, 60, 0],
+        [26, 2, 2, 2, 84, 1, 0, 16, 44, 0, 4, 2, 3, 1, 43, 12, 1, 0, 0, 32, 14, 1, 2, 0, 2, 0],
+        [39, 2, 2, 0, 61, 5, 3, 101, 99, 0, 0, 11, 7, 3, 32, 0, 0, 17, 12, 1, 27, 0, 2, 0, 24, 7],
+        [5, 21, 30, 31, 15, 6, 12, 0, 18, 0, 0, 10, 46, 41, 1, 28, 0, 3, 83, 22, 0, 1, 1, 1, 0, 1],
+        [31, 0, 0, 0, 37, 0, 0, 0, 28, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0],
+        [15, 0, 0, 0, 6, 0, 0, 0, 12, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [5, 3, 3, 5, 3, 0, 1, 0, 0, 0, 0, 10, 11, 4, 12, 16, 0, 0, 9, 4, 0, 0, 2, 0, 0, 0],
+        [2, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+      ],
+      [
+        [2, 44, 23, 16, 1, 10, 21, 4, 16, 1, 7, 80, 17, 89, 1, 10, 0, 36, 10, 43, 22, 10, 13, 5, 7, 0],
+        [9, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 6, 0, 0, 2, 0, 0, 18, 0, 0, 0, 3, 0],
+        [81, 0, 0, 0, 65, 0, 1, 78, 37, 0, 0, 5, 1, 0, 88, 0, 0, 92, 0, 0, 40, 0, 0, 0, 3, 0],
+        [11, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0],
+        [38, 14, 47, 18, 33, 7, 8, 3, 11, 0, 1, 63, 39, 101, 5, 28, 14, 83, 28, 41, 12, 19, 15, 15, 19, 1],
+        [3, 0, 0, 0, 7, 0, 0, 0, 5, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 6, 0, 0, 0, 1, 0],
+        [0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 5, 1, 0, 2, 0, 0, 0, 0, 0],
+        [97, 9, 1, 0, 79, 3, 0, 0, 75, 0, 1, 4, 16, 3, 81, 2, 0, 27, 0, 1, 20, 1, 6, 0, 17, 0],
+        [55, 56, 44, 80, 28, 15, 38, 0, 0, 0, 2, 50, 40, 78, 148, 7, 1, 7, 99, 89, 9, 76, 0, 8, 0, 3],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
+        [9, 0, 0, 0, 24, 0, 0, 0, 35, 0, 0, 0, 2, 0, 3, 0, 0, 1, 0, 0, 5, 0, 0, 0, 23, 0],
+        [42, 0, 0, 0, 35, 0, 0, 0, 29, 0, 0, 1, 0, 0, 29, 0, 0, 0, 0, 0, 13, 0, 0, 0, 2, 0],
+        [57, 0, 0, 0, 30, 0, 0, 0, 31, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 14, 0, 0, 0, 2, 0],
+        [21, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 4, 6, 0, 0, 0, 2, 0],
+        [6, 4, 26, 12, 6, 10, 4, 1, 8, 1, 0, 67, 65, 190, 8, 21, 0, 71, 0, 11, 34, 6, 3, 0, 3, 1],
+        [63, 1, 0, 0, 116, 0, 0, 41, 82, 0, 0, 24, 0, 0, 69, 0, 0, 34, 1, 0, 16, 0, 0, 0, 3, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0],
+        [4, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0],
+        [50, 3, 2, 0, 77, 3, 0, 4, 151, 0, 0, 5, 11, 1, 42, 2, 0, 4, 0, 4, 17, 0, 13, 0, 19, 0],
+        [258, 6, 4, 1, 291, 9, 1, 11, 240, 1, 0, 25, 12, 2, 205, 6, 0, 255, 3, 0, 58, 2, 7, 0, 36, 0],
+        [14, 38, 17, 6, 7, 11, 6, 0, 11, 0, 0, 39, 35, 37, 1, 42, 0, 71, 30, 4, 0, 0, 0, 0, 0, 4],
+        [0, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [37, 0, 0, 0, 31, 0, 0, 0, 28, 0, 0, 0, 0, 0, 21, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 2, 32, 1, 1, 0, 1, 0, 0, 0, 1, 18, 19, 30, 0, 2, 0, 9, 5, 1, 0, 0, 0, 0, 0, 1],
+        [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+      ],
+      [
+        [0, 74, 44, 8, 3, 9, 45, 8, 68, 0, 15, 130, 36, 181, 1, 23, 0, 128, 22, 185, 13, 11, 9, 13, 4, 0],
+        [7, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 0, 0, 6, 0, 0, 3, 0, 0, 3, 0, 0, 0, 0, 0],
+        [5, 0, 0, 0, 0, 0, 0, 112, 0, 0, 0, 2, 0, 0, 5, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
+        [52, 9, 29, 37, 66, 9, 17, 6, 16, 0, 2, 65, 49, 185, 18, 20, 0, 588, 61, 23, 9, 9, 9, 16, 1, 0],
+        [6, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 1, 0, 0, 6, 0, 0, 1, 0, 0, 24, 0, 0, 0, 0, 0],
+        [4, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0],
+        [68, 6, 1, 5, 274, 8, 1, 2, 62, 0, 1, 9, 13, 3, 90, 4, 1, 61, 8, 2, 31, 0, 16, 0, 49, 0],
+        [99, 35, 342, 16, 35, 45, 34, 0, 0, 0, 3, 67, 75, 183, 419, 28, 9, 18, 75, 88, 9, 128, 0, 0, 0, 2],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [2, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
+        [18, 0, 0, 0, 102, 0, 0, 0, 5, 0, 0, 2, 0, 0, 3, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0],
+        [25, 0, 0, 0, 8, 0, 0, 0, 3, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0],
+        [3, 0, 0, 0, 9, 0, 0, 0, 5, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0],
+        [5, 6, 34, 11, 8, 7, 26, 0, 14, 0, 9, 38, 65, 238, 26, 56, 0, 319, 19, 16, 36, 3, 36, 7, 3, 2],
+        [2, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [315, 0, 0, 0, 98, 0, 0, 0, 246, 0, 0, 0, 0, 0, 201, 0, 0, 0, 0, 0, 68, 0, 1, 0, 64, 0],
+        [2, 2, 2, 1, 10, 2, 0, 3, 4, 0, 1, 0, 13, 0, 9, 3, 0, 0, 0, 8, 5, 2, 5, 0, 3, 0],
+        [44, 0, 0, 0, 154, 1, 1, 2, 53, 0, 1, 45, 0, 0, 33, 0, 0, 10, 8, 0, 4, 1, 0, 0, 25, 0],
+        [41, 14, 9, 41, 8, 5, 4, 0, 10, 0, 0, 19, 30, 29, 13, 10, 0, 159, 35, 22, 0, 0, 0, 1, 1, 0],
+        [3, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [14, 0, 0, 0, 12, 0, 0, 1, 23, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [2, 1, 2, 0, 0, 0, 1, 0, 1, 0, 0, 14, 2, 0, 0, 34, 0, 14, 3, 0, 0, 0, 2, 1, 0, 0],
+        [1, 0, 0, 0, 5, 0, 1, 0, 2, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0]
+      ],
+      [
+        [0, 4, 7, 21, 0, 1, 5, 1, 4, 0, 5, 51, 2, 26, 0, 1, 0, 48, 9, 37, 0, 2, 4, 0, 3, 0],
+        [8, 18, 0, 1, 20, 0, 0, 2, 18, 2, 0, 23, 5, 0, 2, 1, 0, 10, 15, 8, 7, 2, 0, 0, 1, 0],
+        [10, 0, 14, 0, 23, 0, 0, 31, 29, 0, 55, 16, 0, 0, 7, 0, 0, 9, 1, 47, 5, 0, 0, 0, 2, 0],
+        [17, 1, 0, 24, 67, 0, 18, 0, 39, 0, 0, 4, 0, 0, 8, 0, 0, 1, 10, 0, 2, 0, 2, 0, 7, 1],
+        [6, 9, 0, 1, 5, 5, 4, 1, 0, 1, 0, 21, 1, 33, 1, 1, 0, 19, 22, 15, 2, 0, 0, 0, 3, 6],
+        [1, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0],
+        [19, 1, 0, 0, 21, 0, 34, 80, 3, 0, 0, 4, 2, 2, 6, 0, 0, 1, 1, 0, 11, 0, 0, 0, 0, 0],
+        [3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [3, 2, 14, 14, 6, 0, 1, 0, 0, 0, 0, 32, 0, 31, 1, 8, 0, 19, 44, 64, 1, 4, 0, 2, 0, 3],
+        [1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0],
+        [1, 0, 0, 1, 12, 0, 0, 0, 3, 0, 1, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0],
+        [136, 4, 11, 11, 46, 14, 7, 0, 35, 0, 10, 67, 5, 2, 23, 16, 0, 1, 24, 73, 16, 3, 1, 0, 5, 1],
+        [22, 52, 3, 1, 51, 5, 0, 1, 32, 0, 0, 2, 28, 11, 8, 48, 1, 0, 8, 1, 6, 2, 0, 0, 0, 0],
+        [21, 6, 73, 131, 25, 5, 46, 2, 55, 0, 33, 4, 2, 13, 4, 2, 0, 2, 15, 82, 1, 0, 2, 0, 5, 0],
+        [0, 0, 0, 1, 0, 0, 0, 0, 3, 0, 0, 2, 0, 3, 0, 2, 0, 16, 3, 5, 29, 0, 0, 0, 2, 0],
+        [4, 4, 1, 2, 31, 1, 1, 14, 10, 0, 1, 13, 1, 0, 8, 24, 0, 13, 13, 24, 2, 0, 2, 0, 2, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0],
+        [75, 27, 21, 17, 149, 8, 60, 1, 66, 2, 11, 17, 11, 55, 28, 15, 1, 51, 43, 43, 9, 15, 3, 0, 28, 1],
+        [31, 5, 29, 2, 105, 0, 1, 53, 64, 0, 17, 3, 0, 1, 8, 12, 1, 0, 34, 115, 6, 0, 0, 0, 4, 0],
+        [45, 1, 14, 1, 69, 0, 1, 55, 77, 0, 0, 8, 3, 3, 49, 0, 0, 13, 7, 51, 11, 0, 2, 0, 6, 2],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 8, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0],
+        [2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 4, 0, 0, 0, 2, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 5, 4, 0, 0, 0, 0, 0],
+        [1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0],
+        [2, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 12]
+      ],
+      [
+        [0, 9, 20, 8, 1, 0, 14, 2, 8, 1, 3, 69, 2, 57, 0, 1, 0, 31, 18, 36, 5, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [6, 2, 5, 4, 4, 3, 6, 4, 5, 0, 1, 47, 4, 120, 3, 1, 0, 271, 46, 24, 0, 0, 1, 5, 10, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [37, 4, 33, 23, 21, 2, 8, 0, 2, 0, 3, 43, 0, 47, 18, 0, 0, 16, 65, 30, 5, 16, 0, 2, 0, 1],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 23, 0, 0, 0, 3, 0, 9, 0, 5, 48, 2, 6, 1, 0, 0, 10, 4, 9, 10, 1, 3, 0, 6, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+      ],
+      [
+        [1, 4, 7, 8, 0, 3, 12, 3, 18, 0, 8, 53, 5, 20, 0, 4, 0, 100, 27, 55, 1, 9, 1, 4, 71, 1],
+        [6, 0, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 0, 0, 10, 0, 0, 3, 0, 0, 1, 0, 0, 0, 0, 0],
+        [3, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 4, 0, 0, 3, 0, 0, 1, 0, 0, 0, 3, 0],
+        [30, 5, 1, 9, 33, 0, 2, 1, 19, 0, 0, 51, 0, 11, 0, 2, 0, 36, 21, 7, 0, 2, 0, 0, 2, 0],
+        [1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 3, 0, 0, 4, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [18, 0, 0, 0, 47, 0, 0, 0, 52, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0],
+        [0, 0, 14, 18, 5, 5, 15, 0, 0, 0, 0, 40, 2, 83, 0, 2, 0, 8, 38, 47, 0, 4, 0, 1, 0, 2],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0],
+        [3, 0, 0, 0, 9, 0, 0, 0, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 3, 0],
+        [8, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 1, 1, 1, 6, 1, 1, 2, 3, 0, 0, 0, 0, 0, 0, 2, 0, 1, 10, 4, 1, 0, 2, 0, 3, 0],
+        [0, 1, 0, 0, 3, 1, 0, 0, 0, 0, 3, 10, 17, 8, 54, 1, 0, 121, 1, 1, 3, 2, 1, 0, 0, 0],
+        [1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [7, 0, 0, 0, 12, 0, 0, 0, 25, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0],
+        [0, 1, 1, 0, 2, 0, 0, 1, 1, 0, 1, 2, 2, 0, 5, 3, 0, 1, 1, 4, 1, 0, 2, 0, 1, 0],
+        [1, 0, 0, 0, 1, 0, 0, 3, 1, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [2, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 1, 1, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0]
+      ],
+      [
+        [0, 0, 5, 1, 0, 1, 3, 0, 0, 0, 0, 4, 6, 6, 0, 0, 0, 0, 3, 6, 0, 1, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
+        [3, 0, 0, 0, 11, 0, 0, 3, 7, 0, 0, 7, 0, 0, 3, 0, 0, 5, 0, 0, 7, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 7, 1, 0, 0, 2, 0, 1, 0, 0, 2, 6, 9, 0, 0, 0, 6, 1, 1, 0, 0, 0, 0, 1, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
+        [7, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0],
+        [8, 2, 12, 8, 4, 2, 2, 0, 0, 0, 0, 2, 11, 4, 8, 0, 0, 0, 9, 2, 0, 1, 1, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 1, 1, 10, 0, 1, 0, 6, 1, 5, 0, 0, 0, 0, 0, 0],
+        [8, 0, 0, 0, 27, 0, 0, 0, 5, 0, 0, 18, 0, 0, 12, 0, 0, 7, 0, 0, 3, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [6, 1, 0, 0, 22, 0, 0, 1, 7, 0, 0, 0, 0, 0, 7, 0, 0, 31, 0, 0, 9, 0, 0, 0, 1, 0],
+        [4, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+      ],
+      [
+        [0, 0, 5, 5, 0, 0, 1, 1, 0, 0, 2, 11, 3, 29, 1, 4, 1, 20, 1, 3, 0, 0, 3, 0, 0, 0],
+        [4, 0, 0, 4, 7, 0, 0, 0, 2, 0, 0, 0, 0, 0, 9, 0, 0, 3, 0, 0, 3, 0, 0, 0, 0, 0],
+        [4, 0, 0, 0, 18, 0, 0, 31, 4, 0, 0, 19, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [4, 1, 0, 0, 12, 0, 0, 0, 2, 0, 0, 0, 0, 2, 1, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0],
+        [11, 3, 0, 1, 1, 1, 1, 0, 1, 0, 0, 13, 1, 6, 2, 1, 0, 19, 7, 6, 0, 1, 1, 0, 0, 0],
+        [1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0],
+        [0, 0, 0, 1, 2, 0, 0, 0, 2, 0, 0, 1, 3, 1, 8, 0, 0, 3, 0, 0, 1, 0, 0, 0, 2, 0],
+        [0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0],
+        [0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0],
+        [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 3, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [15, 0, 0, 0, 22, 0, 0, 0, 13, 0, 1, 19, 0, 0, 11, 1, 0, 0, 2, 0, 3, 6, 0, 0, 0, 0],
+        [18, 4, 1, 0, 20, 0, 0, 0, 5, 0, 0, 0, 3, 7, 11, 20, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0],
+        [14, 0, 11, 3, 12, 0, 3, 1, 2, 0, 0, 0, 0, 3, 11, 0, 0, 0, 0, 6, 0, 0, 0, 2, 1, 0],
+        [0, 0, 2, 2, 0, 4, 6, 0, 0, 0, 5, 2, 1, 18, 0, 4, 0, 8, 4, 5, 17, 1, 1, 0, 0, 1],
+        [2, 0, 0, 0, 24, 0, 0, 17, 5, 0, 0, 2, 0, 2, 21, 0, 0, 5, 7, 16, 3, 0, 0, 0, 1, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
+        [15, 0, 0, 2, 6, 1, 0, 0, 21, 0, 0, 0, 0, 2, 29, 0, 0, 2, 0, 1, 4, 0, 0, 0, 1, 0],
+        [3, 1, 3, 0, 12, 0, 0, 1, 38, 0, 0, 1, 2, 0, 4, 3, 0, 0, 6, 39, 2, 0, 0, 0, 0, 0],
+        [2, 0, 0, 0, 16, 0, 0, 16, 10, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0],
+        [0, 0, 3, 0, 0, 0, 3, 1, 0, 0, 2, 1, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0],
+        [1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [10, 0, 1, 0, 3, 0, 0, 2, 4, 0, 0, 0, 0, 0, 5, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0]
+      ],
+      [
+        [1, 3, 2, 0, 0, 0, 5, 1, 1, 0, 1, 4, 1, 11, 0, 1, 0, 19, 0, 0, 0, 1, 0, 0, 0, 1],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [5, 1, 2, 1, 1, 0, 0, 0, 1, 0, 1, 7, 0, 12, 0, 0, 0, 13, 3, 3, 1, 0, 1, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [1, 1, 2, 0, 7, 0, 5, 0, 0, 0, 0, 5, 4, 6, 1, 1, 0, 2, 1, 1, 1, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0],
+        [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [3, 0, 0, 2, 2, 0, 1, 0, 7, 0, 0, 0, 3, 10, 5, 2, 0, 5, 0, 0, 1, 1, 0, 0, 0, 0],
+        [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [0, 1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+        [7, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 17, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0]
+      ]
+    ];
+    pik = Math.random();
+    ranno = pik * 125729.0;
+    sum = 0;
+    for (c1 = 0; c1 < 26; c1++) {
+      for (c2 = 0; c2 < 26; c2++) {
+        for (c3 = 0; c3 < 26; c3++) {
+          sum += _trigram[c1][c2][c3];
+          if (sum > ranno) {
+            output += _alphabet.charAt(c1);
+            output += _alphabet.charAt(c2);
+            output += _alphabet.charAt(c3);
+            c1 = 26;
+            c2 = 26;
+            c3 = 26;
+          }
+        }
+      }
+    }
+    nchar = 3;
+    while (nchar < pwl) {
+      c1 = _alphabet.indexOf(output.charAt(nchar - 2));
+      c2 = _alphabet.indexOf(output.charAt(nchar - 1));
+      sum = 0;
+      for (c3 = 0; c3 < 26; c3++)
+        sum += _trigram[c1][c2][c3];
+      if (sum == 0) {
+        break;
+      }
+      pik = Math.random();
+      ranno = pik * sum;
+      sum = 0;
+      for (c3 = 0; c3 < 26; c3++) {
+        sum += _trigram[c1][c2][c3];
+        if (sum > ranno) {
+          output += _alphabet.charAt(c3);
+          c3 = 26;
+        }
+      }
+      nchar++;
+    }
 
-pronounceable : function (pwl) {
-	var output = "";
-	var c1, c2, c3;
-	var sum = 0;
-	var nchar;
-	var ranno;
-	var pwnum;
-	var pik;
+    var _alphabet_store = '';
+    var _alphabet_temp = '';
+    for (var i = 0, len = output.length; i < len; i++) {
+      if ((Math.floor(Math.random() * 2) + 1) === 1) {
+        _alphabet_temp = output[i].toUpperCase();
+      } else {
+        _alphabet_temp = output[i];
+      }
+      _alphabet_store = _alphabet_store + _alphabet_temp;
+    }
 
-	var _alphabet = "abcdefghijklmnopqrstuvwxyz";
+    var password_combination = [
+      _alphabet_store,
+      _specialchars.substr(Math.floor(_specialchars.length * Math.random()), 1),
+      Math.floor(Math.random() * 90 + 10)
+    ];
 
-// letter frequencies
-var _trigram = [[ /* [26][26][26] */
-/* A A */ [2,0,3,0,0,0,1,0,0,0,0,1,1,1,0,0,0,3,2,0,0,0,0,0,0,0],
-/* A B */ [37,25,2,5,38,0,0,2,46,1,0,304,0,2,49,0,0,24,24,0,19,0,0,0,14,0],
-/* A C */ [26,1,64,2,107,0,1,94,67,0,173,13,5,1,35,1,13,32,3,114,23,0,0,0,45,0],
-/* A D */ [35,7,3,43,116,6,3,8,75,14,1,16,25,3,44,3,1,35,20,1,10,25,9,0,18,0],
-/* A E */ [2,0,2,1,0,1,3,0,0,0,0,10,0,2,3,0,0,12,6,0,2,0,0,0,0,0],
-/* A F */ [5,0,0,0,14,50,2,0,3,0,2,5,0,2,7,0,0,5,1,39,1,0,0,0,1,0],
-/* A G */ [30,1,0,1,182,0,42,5,30,0,0,7,9,42,51,3,0,24,3,0,21,0,3,0,3,0],
-/* A H */ [12,0,0,0,20,0,0,0,3,0,0,5,4,2,13,0,0,2,0,0,1,0,0,0,0,0],
-/* A I */ [2,0,10,26,2,1,10,0,2,1,2,87,13,144,0,2,0,93,30,23,0,3,1,0,0,0],
-/* A J */ [4,0,0,0,3,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0],
-/* A K */ [11,0,1,1,98,1,0,1,15,0,0,3,0,0,5,1,0,3,0,1,2,0,3,0,8,0],
-/* A L */ [78,20,34,45,124,21,24,5,109,0,28,237,31,3,53,23,0,7,16,69,29,26,5,0,26,2],
-/* A M */ [70,57,1,1,98,3,0,1,68,0,0,3,38,2,43,69,0,3,14,3,12,0,2,0,14,0],
-/* A N */ [114,6,156,359,103,8,146,12,141,2,57,4,0,89,61,1,4,1,124,443,29,6,1,3,28,9],
-/* A O */ [0,0,1,0,0,0,0,0,0,0,0,3,1,0,0,0,0,3,2,2,2,0,0,0,0,0],
-/* A P */ [29,3,0,1,59,1,0,86,25,0,1,14,1,1,37,94,0,9,22,30,8,0,0,0,9,0],
-/* A Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0],
-/* A R */ [124,64,101,233,115,12,47,5,188,3,61,55,68,34,46,25,6,94,48,189,5,22,5,1,172,2],
-/* A S */ [19,3,32,0,71,0,1,81,49,0,22,3,19,2,19,34,4,0,152,211,12,0,1,0,17,1],
-/* A T */ [50,3,41,2,863,4,0,144,352,0,5,14,6,3,144,0,0,60,13,106,57,1,5,0,8,5],
-/* A U */ [0,5,23,35,5,5,38,1,0,1,3,33,4,23,0,4,1,35,52,56,0,1,0,7,0,1],
-/* A V */ [35,0,0,1,108,0,0,0,49,0,0,1,0,0,19,0,0,0,0,0,3,1,0,0,6,0],
-/* A W */ [30,10,0,4,3,6,2,2,2,0,10,13,4,15,3,0,0,6,3,5,0,0,0,0,2,0],
-/* A X */ [3,0,0,0,4,0,0,0,22,0,0,1,0,0,7,2,0,0,1,1,0,0,3,0,3,0],
-/* A Y */ [11,8,1,5,16,5,1,2,2,0,0,10,7,4,13,1,0,3,5,7,3,0,5,0,0,0],
-/* A Z */ [10,0,0,1,22,0,0,0,10,0,0,0,0,0,7,0,0,0,0,2,2,0,0,0,4,11]],
-/* B A */ [[0,17,74,11,1,2,19,4,8,0,10,68,7,73,1,7,0,110,54,55,9,1,3,1,12,1],
-/* B B */ [7,0,0,0,16,0,0,0,10,0,0,24,0,0,9,0,0,2,3,0,2,0,0,0,14,0],
-/* B C */ [2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],
-/* B D */ [2,0,0,0,2,0,0,0,2,0,0,0,0,0,3,0,0,1,0,0,3,0,0,0,0,0],
-/* B E */ [51,1,14,34,18,11,16,7,9,0,1,85,5,48,2,2,2,199,36,41,0,4,5,1,6,2],
-/* B F */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0],
-/* B G */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* B H */ [0,0,0,0,1,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,1,0,0,0,0,0],
-/* B I */ [34,8,22,21,8,3,9,1,0,3,1,50,7,45,16,4,2,29,22,59,4,4,0,0,0,3],
-/* B J */ [0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],
-/* B K */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* B L */ [57,0,0,0,519,0,0,0,35,0,0,0,0,0,47,0,0,0,0,0,32,1,0,0,3,0],
-/* B M */ [0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],
-/* B N */ [1,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0],
-/* B O */ [62,7,4,21,3,2,9,3,8,1,1,46,8,63,58,2,0,55,15,20,46,6,17,10,19,0],
-/* B P */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0],
-/* B Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* B R */ [110,0,0,0,77,0,0,0,100,0,0,0,0,0,78,0,0,0,0,0,28,0,0,0,10,0],
-/* B S */ [0,0,6,0,16,0,0,0,7,0,0,0,0,0,12,0,0,0,0,27,2,0,0,0,0,0],
-/* B T */ [1,0,0,0,3,1,0,0,0,0,0,4,0,0,1,0,0,3,0,0,0,0,0,0,0,0],
-/* B U */ [0,3,21,16,3,5,14,0,12,1,2,52,7,20,2,0,1,104,44,54,0,0,0,3,1,5],
-/* B V */ [0,0,0,0,3,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* B W */ [0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* B X */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* B Y */ [1,0,0,0,3,0,1,2,0,0,0,4,0,0,0,3,0,6,8,3,0,0,2,0,0,2],
-/* B Z */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],
-/* C A */ [[1,47,17,33,1,3,4,5,7,1,3,120,40,120,1,59,1,171,60,150,19,20,1,0,5,0],
-/* C B */ [0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0],
-/* C C */ [23,0,0,0,22,0,0,5,13,0,0,13,0,0,26,0,0,7,0,0,27,0,0,0,0,0],
-/* C D */ [1,0,1,0,1,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0],
-/* C E */ [23,6,4,17,6,6,1,2,13,0,0,50,12,109,7,43,0,76,63,22,1,0,4,0,2,1],
-/* C F */ [2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* C G */ [0,0,0,0,1,0,0,0,2,0,0,0,0,0,2,0,0,4,1,0,1,0,0,0,0,0],
-/* C H */ [165,10,2,3,176,4,3,1,141,0,0,26,20,16,102,1,0,63,8,10,44,0,13,0,20,0],
-/* C I */ [76,15,8,33,24,16,3,0,0,0,0,38,5,45,50,28,0,29,38,71,6,8,0,0,0,0],
-/* C J */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* C K */ [17,16,2,3,90,4,1,7,20,1,1,45,8,8,12,9,0,3,32,6,6,0,13,0,22,0],
-/* C L */ [95,0,0,0,84,0,0,0,50,0,0,0,0,0,54,0,0,0,0,0,34,0,0,0,3,0],
-/* C M */ [1,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],
-/* C N */ [2,0,0,0,1,0,0,0,4,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0],
-/* C O */ [33,16,40,22,14,10,11,12,9,1,1,101,218,421,24,56,2,129,37,40,86,22,25,4,4,2],
-/* C P */ [1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],
-/* C Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,0,0],
-/* C R */ [101,0,0,0,112,0,0,0,75,0,0,0,0,0,88,0,0,0,0,1,41,0,0,0,25,0],
-/* C S */ [0,0,0,0,0,0,0,0,3,0,0,0,0,1,2,0,0,0,1,2,0,0,0,0,0,0],
-/* C T */ [44,0,0,0,12,2,0,0,113,0,0,0,2,0,94,0,0,46,0,0,42,0,1,0,3,0],
-/* C U */ [3,12,2,6,6,6,0,0,8,0,0,102,42,10,9,15,0,72,51,41,1,0,0,0,0,0],
-/* C V */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* C W */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* C X */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* C Y */ [5,1,20,0,0,0,1,0,0,0,0,3,0,2,2,4,0,3,2,9,0,0,0,0,0,0],
-/* C Z */ [2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],
-/* D A */ [[0,7,16,7,1,2,13,6,18,0,3,54,23,59,0,10,0,31,6,40,8,13,3,0,32,3],
-/* D B */ [9,0,0,0,7,0,0,0,3,0,0,2,0,0,8,0,0,1,0,0,8,0,0,0,2,0],
-/* D C */ [5,0,0,0,0,0,0,2,0,0,0,2,0,0,3,0,0,0,0,0,2,0,0,0,0,0],
-/* D D */ [8,0,0,0,30,0,0,3,19,0,0,38,0,0,4,0,0,4,0,0,1,0,0,0,16,0],
-/* D E */ [34,37,82,14,17,41,11,4,5,2,0,88,62,170,14,40,4,183,99,39,6,20,16,6,1,2],
-/* D F */ [6,0,0,0,0,0,0,0,6,0,0,2,0,0,5,0,0,2,0,0,4,0,0,0,0,0],
-/* D G */ [4,0,0,0,73,0,0,0,2,0,1,1,1,0,0,0,0,1,0,0,2,0,1,0,3,0],
-/* D H */ [8,0,0,0,9,0,0,0,4,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0],
-/* D I */ [100,10,104,12,33,26,31,1,1,0,1,22,22,65,57,15,0,20,138,53,20,31,1,6,0,1],
-/* D J */ [4,0,0,0,2,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,7,0,0,0,0,0],
-/* D K */ [0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* D L */ [9,0,0,0,79,0,0,0,12,0,0,0,0,0,7,0,0,0,0,0,1,0,0,0,3,0],
-/* D M */ [13,0,0,0,3,0,0,0,21,0,0,0,0,0,11,0,0,0,0,0,1,0,0,0,0,0],
-/* D N */ [7,0,0,0,9,0,0,0,3,0,0,0,0,0,1,0,0,0,0,6,0,0,0,0,0,0],
-/* D O */ [1,5,21,10,6,3,20,1,3,0,0,30,38,54,17,7,0,39,11,10,30,5,54,5,1,3],
-/* D P */ [6,0,0,0,1,0,0,1,3,0,0,1,0,0,7,0,0,1,0,0,0,0,0,0,0,0],
-/* D Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0],
-/* D R */ [74,0,0,0,47,0,0,0,53,0,0,0,0,0,80,0,0,0,0,0,22,0,0,0,8,0],
-/* D S */ [1,0,3,0,10,0,0,9,5,0,1,3,10,0,16,8,0,0,0,31,1,0,2,0,0,0],
-/* D T */ [3,0,0,0,1,0,0,6,1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0],
-/* D U */ [10,7,52,2,5,3,4,0,2,0,1,33,14,15,5,11,1,19,15,8,1,0,0,0,0,1],
-/* D V */ [3,0,0,0,13,0,0,0,7,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0],
-/* D W */ [19,0,0,0,10,0,0,0,19,0,0,0,0,0,8,0,0,2,0,0,0,0,0,0,2,0],
-/* D X */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* D Y */ [4,2,1,2,3,1,2,0,1,0,1,4,4,12,0,0,0,0,8,1,0,0,1,0,0,0],
-/* D Z */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0]],
-/* E A */ [[0,39,34,110,0,12,13,3,0,0,50,68,38,71,0,13,1,117,80,112,28,19,7,0,0,1],
-/* E B */ [32,5,0,0,31,0,0,0,8,0,0,6,0,0,28,0,0,32,2,3,29,0,0,0,4,0],
-/* E C */ [33,0,9,2,51,0,0,39,49,0,47,26,0,0,59,0,0,35,2,206,42,0,0,0,2,0],
-/* E D */ [29,7,1,16,45,5,22,3,88,0,0,8,9,4,24,2,0,27,8,4,27,0,7,0,13,0],
-/* E E */ [2,4,13,63,1,6,1,4,10,0,19,23,13,66,1,42,0,43,9,34,1,4,6,0,0,8],
-/* E F */ [14,0,1,2,36,33,0,0,22,0,0,15,0,0,24,0,0,14,1,13,35,0,0,0,5,0],
-/* E G */ [48,1,0,0,36,1,15,2,38,0,0,7,4,4,26,0,0,38,0,0,19,0,0,0,4,0],
-/* E H */ [14,0,0,0,24,0,0,0,6,0,0,0,1,0,18,0,0,4,0,0,4,0,0,0,3,0],
-/* E I */ [8,0,5,13,2,1,42,0,1,1,2,13,7,59,1,1,0,10,25,22,0,7,0,0,0,2],
-/* E J */ [4,0,0,0,4,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,3,0,0,0,0,0],
-/* E K */ [2,1,0,1,6,0,0,0,4,0,0,0,0,1,1,0,0,0,2,3,0,0,0,0,1,0],
-/* E L */ [76,7,6,57,131,19,7,3,125,0,4,238,22,1,48,15,0,4,27,26,17,19,2,0,7,0],
-/* E M */ [87,53,1,0,84,0,0,0,102,0,0,3,8,8,56,64,0,0,4,0,19,0,1,0,8,0],
-/* E N */ [78,17,68,159,128,8,35,14,96,2,2,4,5,54,57,3,2,9,127,624,33,10,8,0,11,16],
-/* E O */ [0,0,8,10,0,6,7,1,2,0,0,23,10,38,0,16,0,14,6,4,41,3,2,2,0,1],
-/* E P */ [26,1,1,0,27,0,0,32,45,0,0,21,1,0,35,9,0,35,10,65,13,0,2,0,3,0],
-/* E Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,0,0,0,0,0],
-/* E R */ [217,57,66,22,190,41,70,13,200,3,14,40,134,117,113,42,2,123,167,135,23,58,22,1,123,1],
-/* E S */ [17,7,74,6,58,1,3,25,82,0,3,6,17,5,34,52,7,0,222,278,18,2,1,0,6,0],
-/* E T */ [78,3,19,0,129,4,0,93,105,0,1,3,2,2,50,1,0,73,5,113,17,0,4,0,32,4],
-/* E U */ [0,4,7,6,1,0,4,0,0,0,2,3,17,4,0,15,0,46,20,18,0,2,1,0,0,0],
-/* E V */ [29,0,0,0,121,0,0,0,56,0,0,0,0,0,26,0,0,2,1,0,2,2,0,0,3,1],
-/* E W */ [33,4,3,4,16,2,0,5,24,0,0,3,3,3,23,2,0,3,15,4,0,0,1,0,2,0],
-/* E X */ [29,0,43,0,20,0,0,14,21,0,0,0,0,0,15,78,1,0,0,72,12,0,0,1,2,0],
-/* E Y */ [7,3,1,4,25,2,0,2,0,0,1,4,6,4,4,1,0,2,3,0,0,1,4,0,0,0],
-/* E Z */ [1,0,0,0,9,0,0,0,1,0,0,0,0,0,4,0,0,1,0,0,1,1,0,0,2,3]],
-/* F A */ [[1,10,39,5,2,1,1,3,18,0,2,35,10,27,0,0,0,36,13,18,10,0,2,3,4,1],
-/* F B */ [2,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* F C */ [1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* F D */ [1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0],
-/* F E */ [18,5,24,6,12,0,2,0,6,0,1,25,6,18,2,0,0,114,17,15,4,2,2,0,1,0],
-/* F F */ [10,2,0,0,51,0,0,2,45,0,0,21,4,0,13,0,0,9,7,0,7,0,0,0,8,0],
-/* F G */ [1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* F H */ [2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* F I */ [9,9,58,18,42,7,11,0,0,0,0,29,2,53,0,0,0,40,41,18,0,2,0,10,0,3],
-/* F J */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],
-/* F K */ [2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* F L */ [64,0,0,0,50,0,0,0,21,0,0,0,0,0,60,0,0,0,0,0,42,0,0,0,15,0],
-/* F M */ [6,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* F N */ [0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* F O */ [5,1,8,2,1,0,7,0,6,0,0,34,1,8,32,2,0,165,5,0,25,1,2,7,1,0],
-/* F P */ [0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* F Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* F R */ [64,0,0,0,66,0,0,0,35,0,0,0,0,0,35,0,0,0,0,0,11,0,0,0,3,0],
-/* F S */ [1,0,0,0,2,0,0,2,0,0,1,0,0,0,1,1,0,0,0,2,0,0,0,0,0,0],
-/* F T */ [1,1,1,0,19,0,0,3,1,0,0,0,1,0,3,0,0,1,9,0,0,0,4,0,8,0],
-/* F U */ [0,0,4,2,1,0,9,0,0,2,0,119,7,24,0,0,0,28,31,6,0,0,0,0,0,2],
-/* F V */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* F W */ [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* F X */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* F Y */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* F Z */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],
-/* G A */ [[0,20,5,11,3,2,11,3,13,0,0,68,24,60,1,5,0,63,23,68,15,8,5,0,2,5],
-/* G B */ [4,0,0,0,1,0,0,0,3,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0],
-/* G C */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* G D */ [2,0,0,0,1,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0],
-/* G E */ [23,3,2,4,12,1,1,3,4,0,0,32,8,141,39,4,0,96,29,33,1,1,4,0,5,0],
-/* G F */ [0,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,0,1,0,0,3,0,0,0,0,0],
-/* G G */ [8,0,0,0,20,0,0,1,60,0,0,24,0,0,3,1,0,6,4,0,0,0,0,0,12,0],
-/* G H */ [18,4,1,1,12,2,1,1,2,0,1,4,0,3,12,1,0,1,3,153,2,0,3,0,1,0],
-/* G I */ [23,21,16,6,7,2,9,0,0,0,0,24,7,103,17,1,0,10,26,19,3,10,0,0,0,1],
-/* G J */ [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* G K */ [0,0,0,0,0,0,0,0,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0],
-/* G L */ [49,0,0,0,73,0,0,0,25,0,0,0,0,0,38,0,0,0,0,0,13,0,0,0,17,0],
-/* G M */ [23,0,0,0,12,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,3,0,0,0,1,0],
-/* G N */ [26,1,0,0,28,0,0,0,20,0,0,0,0,0,26,2,0,0,0,1,7,0,0,0,0,0],
-/* G O */ [6,4,3,16,6,1,10,1,5,0,0,22,1,49,20,3,0,34,12,23,16,7,5,0,1,0],
-/* G P */ [0,0,0,0,1,0,0,0,3,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0],
-/* G Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* G R */ [216,0,0,0,97,0,0,0,43,0,0,0,0,0,50,0,0,0,0,0,14,0,0,0,3,0],
-/* G S */ [2,2,0,0,0,0,0,2,2,0,1,1,0,0,2,1,0,0,0,18,0,0,1,0,0,0],
-/* G T */ [2,0,0,0,0,0,0,8,3,0,0,0,0,0,17,0,0,1,0,0,0,0,0,0,0,0],
-/* G U */ [28,1,1,0,49,1,1,0,41,0,0,26,15,24,2,0,0,14,22,6,0,0,0,0,3,1],
-/* G V */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* G W */ [5,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0],
-/* G X */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* G Y */ [1,0,0,0,0,0,0,0,0,0,0,0,7,3,0,6,0,5,0,0,0,0,0,0,0,0],
-/* G Z */ [2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],
-/* H A */ [[2,26,15,20,6,8,22,3,31,0,11,90,66,171,3,25,0,142,30,49,20,11,20,0,13,8],
-/* H B */ [4,0,0,0,3,0,0,0,1,0,0,2,0,0,12,0,0,2,0,0,4,0,0,0,1,0],
-/* H C */ [1,0,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0],
-/* H D */ [2,0,0,0,0,0,0,0,1,0,0,0,0,0,2,0,0,4,0,0,0,0,0,0,0,0],
-/* H E */ [123,5,22,33,37,5,3,0,27,0,0,87,65,86,17,7,1,311,57,42,11,11,14,8,11,2],
-/* H F */ [2,0,0,0,0,0,0,0,3,0,0,0,0,0,2,0,0,0,0,0,10,0,0,0,0,0],
-/* H G */ [1,0,0,0,1,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0],
-/* H H */ [1,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],
-/* H I */ [22,22,56,15,23,6,19,0,0,1,1,73,20,79,17,41,0,36,53,39,3,11,0,0,0,6],
-/* H J */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* H K */ [0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],
-/* H L */ [5,0,0,0,11,0,0,0,8,0,0,0,0,0,22,0,0,1,0,0,1,0,0,0,1,0],
-/* H M */ [21,0,0,0,15,0,0,0,6,0,0,0,1,0,7,0,0,0,2,0,1,0,0,0,0,0],
-/* H N */ [3,0,0,0,8,0,0,0,9,0,0,0,0,1,3,0,0,0,4,0,2,0,0,0,0,0],
-/* H O */ [13,18,13,25,17,5,13,0,7,1,4,101,62,62,44,29,0,130,45,33,81,8,28,0,6,2],
-/* H P */ [3,0,0,0,0,0,0,0,2,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0],
-/* H Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],
-/* H R */ [20,0,0,0,23,0,0,0,40,0,0,1,0,0,72,0,0,0,0,0,13,0,0,0,3,0],
-/* H S */ [3,0,1,0,0,0,0,2,1,0,0,0,0,0,3,0,0,0,0,5,0,0,0,0,0,0],
-/* H T */ [3,0,2,1,21,9,1,7,5,0,0,1,4,3,4,1,0,2,7,1,1,0,3,0,6,0],
-/* H U */ [3,13,7,6,3,5,12,1,0,0,0,7,37,26,0,3,0,37,24,15,0,0,0,2,2,1],
-/* H V */ [0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* H W */ [17,0,0,0,5,0,0,2,5,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0],
-/* H X */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* H Y */ [5,1,1,39,1,0,3,0,1,0,0,13,9,0,0,25,0,9,29,9,0,0,0,1,0,0],
-/* H Z */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],
-/* I A */ [[0,33,20,8,1,0,17,5,1,0,2,169,20,230,0,3,0,30,13,91,0,1,1,2,0,1],
-/* I B */ [11,19,0,0,38,0,0,0,22,0,0,131,1,2,10,0,0,20,1,0,23,0,0,0,2,0],
-/* I C */ [161,0,3,0,113,0,0,62,113,0,142,15,0,4,46,0,0,12,5,53,42,0,0,0,7,0],
-/* I D */ [51,2,0,31,232,0,30,0,46,1,0,5,1,8,10,1,0,1,10,5,11,0,7,0,9,0],
-/* I E */ [0,1,17,6,1,16,11,1,0,0,1,52,4,70,0,1,0,66,18,50,7,17,6,0,0,2],
-/* I F */ [7,0,0,0,31,45,0,0,27,0,0,9,0,1,10,0,0,2,0,24,10,0,0,0,71,0],
-/* I G */ [48,0,0,0,41,0,30,147,30,0,0,4,15,57,20,1,0,23,3,1,15,0,1,0,2,2],
-/* I H */ [1,0,0,0,2,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* I I */ [1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* I J */ [3,0,0,0,2,0,0,0,1,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0],
-/* I K */ [6,0,0,0,17,0,0,0,3,0,1,0,0,0,3,0,0,0,0,1,2,0,0,0,1,0],
-/* I L */ [60,10,6,36,106,6,5,7,90,0,13,253,14,0,24,1,0,1,10,31,6,6,5,0,10,0],
-/* I M */ [76,26,0,0,94,1,0,1,53,0,0,1,38,1,30,133,0,1,8,0,17,0,0,0,2,0],
-/* I N */ [212,12,143,168,396,83,435,26,94,8,43,9,6,44,70,3,10,2,139,205,35,46,4,4,15,1],
-/* I O */ [2,2,20,10,1,0,9,0,0,0,0,28,12,604,0,8,0,25,13,24,139,3,2,3,0,1],
-/* I P */ [20,5,0,0,26,2,0,16,16,1,0,33,6,0,13,39,0,5,19,28,5,0,1,0,1,0],
-/* I Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,0,0,0,0,0],
-/* I R */ [41,2,39,24,106,7,9,0,19,0,11,20,24,1,24,8,0,39,11,31,3,5,8,0,10,0],
-/* I S */ [35,5,71,4,110,4,2,189,56,1,13,12,93,5,55,33,3,6,85,271,4,1,1,0,8,0],
-/* I T */ [136,1,34,1,184,5,0,77,158,0,1,4,6,5,70,1,0,31,2,105,72,0,1,0,142,19],
-/* I U */ [0,0,1,0,0,0,0,0,0,0,0,1,121,1,0,0,0,1,19,0,0,0,0,0,0,0],
-/* I V */ [57,0,0,0,292,0,0,0,37,0,0,0,0,0,12,0,0,1,0,0,3,0,0,0,2,0],
-/* I W */ [3,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],
-/* I X */ [1,0,0,0,2,1,1,0,3,0,0,0,0,0,4,0,0,0,0,9,1,0,0,0,1,0],
-/* I Y */ [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* I Z */ [9,0,0,0,13,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,1,1,0,0,0,16]],
-/* J A */ [[0,2,32,1,1,0,3,3,2,0,3,1,8,17,0,2,0,5,2,0,2,3,2,1,1,2],
-/* J B */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* J C */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* J D */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* J E */ [4,0,24,1,1,3,0,1,0,2,0,2,0,6,2,0,0,11,9,5,0,0,6,0,0,0],
-/* J F */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* J G */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* J H */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* J I */ [0,1,0,0,0,1,4,0,0,0,0,2,4,3,0,0,0,0,0,4,0,1,0,0,0,0],
-/* J J */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* J K */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* J L */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* J M */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* J N */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* J O */ [4,2,6,0,3,0,3,12,10,0,1,6,0,5,0,0,0,10,10,1,13,4,2,0,7,0],
-/* J P */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* J Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* J R */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* J S */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* J T */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* J U */ [3,3,0,19,0,0,8,0,2,2,2,8,5,24,0,1,0,15,9,5,0,1,0,2,0,0],
-/* J V */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* J W */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* J X */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* J Y */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* J Z */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],
-/* K A */ [[0,3,0,6,1,2,8,2,1,1,1,9,4,13,2,3,0,18,4,17,2,1,2,1,5,2],
-/* K B */ [3,0,0,0,3,0,0,0,2,0,0,0,0,0,11,0,0,1,0,0,1,0,0,0,0,0],
-/* K C */ [2,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],
-/* K D */ [3,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0],
-/* K E */ [4,3,0,7,28,3,3,2,1,0,0,20,5,55,3,3,0,59,18,56,2,1,4,0,27,0],
-/* K F */ [1,0,0,0,1,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,3,0,0,0,0,0],
-/* K G */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0],
-/* K H */ [9,0,0,0,2,0,0,0,0,0,0,0,1,0,8,0,0,1,0,1,0,0,0,0,0,0],
-/* K I */ [5,2,3,9,15,1,1,0,0,0,1,10,10,87,2,4,0,11,15,13,0,2,2,0,0,0],
-/* K J */ [2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* K K */ [1,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0],
-/* K L */ [15,0,0,0,46,0,0,0,13,0,0,0,0,0,3,0,0,0,0,0,1,0,0,0,2,0],
-/* K M */ [13,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* K N */ [5,0,0,0,11,0,0,0,10,0,0,0,0,0,24,0,0,0,0,0,8,0,0,0,0,0],
-/* K O */ [1,1,2,3,2,4,0,2,1,0,1,3,1,7,1,2,0,6,2,1,7,4,5,2,0,0],
-/* K P */ [2,0,0,0,0,0,0,0,4,0,0,4,0,0,5,0,0,0,0,0,0,0,0,0,0,0],
-/* K Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* K R */ [10,0,0,0,3,0,0,0,3,0,0,0,0,0,6,0,0,0,0,0,5,0,0,0,2,0],
-/* K S */ [2,2,1,0,1,0,1,9,5,0,1,0,4,0,8,3,0,0,0,11,4,0,1,0,1,0],
-/* K T */ [3,0,0,0,0,0,0,2,3,0,0,0,0,0,5,0,0,2,0,0,0,0,0,0,0,0],
-/* K U */ [0,0,0,2,0,0,0,1,0,0,0,5,1,1,0,8,0,2,1,1,0,0,1,0,1,0],
-/* K V */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* K W */ [9,0,0,0,4,0,0,1,2,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0],
-/* K X */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* K Y */ [2,0,0,0,1,0,0,1,0,1,0,4,0,0,2,0,0,2,1,0,1,0,3,0,0,0],
-/* K Z */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],
-/* L A */ [[1,46,84,43,3,2,46,9,52,0,10,3,64,242,4,23,1,157,92,210,45,21,23,9,42,11],
-/* L B */ [12,0,0,0,17,0,0,0,3,0,0,2,0,0,13,0,0,4,0,0,4,0,0,0,2,0],
-/* L C */ [9,0,0,0,6,0,0,12,4,0,0,1,1,0,19,0,0,2,0,1,7,0,0,0,2,0],
-/* L D */ [2,3,2,0,41,4,0,1,16,0,0,1,2,3,13,1,0,8,9,2,3,0,5,0,3,0],
-/* L E */ [94,25,75,44,36,13,55,9,26,1,1,9,55,121,22,22,0,77,84,115,12,29,14,30,75,1],
-/* L F */ [9,1,0,0,4,1,1,1,12,0,0,1,0,0,7,0,0,8,1,2,8,0,1,0,0,0],
-/* L G */ [16,0,0,0,12,0,0,0,10,0,0,0,0,0,6,0,0,6,0,0,0,0,0,0,0,0],
-/* L H */ [7,0,0,0,6,0,0,0,2,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0],
-/* L I */ [82,33,140,26,43,37,73,0,0,1,6,11,46,238,50,40,13,5,90,127,12,36,0,3,0,7],
-/* L J */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],
-/* L K */ [7,0,0,0,4,0,0,3,9,0,0,2,0,1,2,0,0,0,3,0,0,0,3,0,8,0],
-/* L L */ [128,12,2,4,169,7,2,4,152,1,0,0,7,0,100,2,0,1,10,2,41,0,7,0,53,0],
-/* L M */ [27,0,0,2,11,0,0,2,9,0,0,0,1,0,13,0,0,0,4,0,3,0,0,0,3,0],
-/* L N */ [0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0],
-/* L O */ [23,23,65,15,7,4,132,3,32,0,2,7,29,69,50,36,11,74,33,53,66,16,80,1,12,1],
-/* L P */ [11,0,0,0,3,1,0,21,5,0,0,0,1,0,6,0,0,3,1,4,0,0,0,0,1,0],
-/* L Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* L R */ [2,0,0,0,1,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,2,0,0,0,6,0],
-/* L S */ [7,1,0,0,16,0,0,8,23,0,1,0,1,0,20,3,0,0,1,23,0,0,1,0,2,0],
-/* L T */ [22,1,0,0,23,0,0,14,34,0,0,0,2,0,23,0,0,9,3,0,8,1,1,0,18,5],
-/* L U */ [5,17,26,18,31,5,13,0,5,2,4,8,68,31,15,5,0,21,68,56,0,4,0,13,0,1],
-/* L V */ [19,0,0,1,46,0,0,0,9,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0],
-/* L W */ [8,0,0,0,2,0,0,1,2,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,1,0],
-/* L X */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* L Y */ [2,4,12,2,2,2,3,7,2,0,1,3,13,11,2,11,0,2,31,15,1,0,4,0,0,0],
-/* L Z */ [2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],
-/* M A */ [[0,10,59,34,3,0,57,7,31,3,25,104,6,326,2,4,0,144,49,192,10,2,3,11,14,7],
-/* M B */ [31,1,0,1,44,0,0,0,32,0,0,31,0,1,27,1,0,32,1,0,21,0,0,0,0,0],
-/* M C */ [3,1,17,6,2,2,9,3,5,0,9,3,3,4,2,1,0,0,0,0,0,0,0,0,0,0],
-/* M D */ [0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0],
-/* M E */ [30,6,8,45,3,2,14,1,4,0,1,51,19,283,10,4,0,125,39,128,0,2,9,3,4,1],
-/* M F */ [0,0,0,0,3,0,0,0,3,0,0,2,0,0,4,0,0,0,0,0,4,0,0,0,0,0],
-/* M G */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* M H */ [0,0,0,0,3,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,1,0,0,0,0,0],
-/* M I */ [19,0,93,54,8,2,19,0,0,1,2,76,9,194,4,0,1,21,96,109,10,0,0,5,0,1],
-/* M J */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* M K */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* M L */ [1,0,0,0,3,0,0,0,6,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0],
-/* M M */ [40,0,0,0,46,0,0,0,33,0,0,0,0,0,32,0,0,0,0,0,17,0,0,0,12,0],
-/* M N */ [12,0,0,0,4,0,0,0,10,0,0,0,0,0,3,0,0,0,0,0,1,0,0,0,1,0],
-/* M O */ [4,10,13,28,4,1,14,3,11,0,6,47,10,168,16,3,0,107,40,45,56,8,1,1,1,2],
-/* M P */ [52,3,0,0,71,1,1,26,18,0,4,71,0,0,50,0,0,41,9,43,19,0,0,0,7,0],
-/* M Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0],
-/* M R */ [2,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0],
-/* M S */ [0,1,2,1,5,1,0,2,3,0,1,0,2,0,8,2,0,0,1,10,1,0,0,0,2,0],
-/* M T */ [0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0],
-/* M U */ [0,0,7,11,6,3,6,0,2,0,2,55,11,29,2,1,0,18,53,30,0,0,0,0,0,3],
-/* M V */ [0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* M W */ [2,0,0,0,2,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],
-/* M X */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* M Y */ [0,0,11,0,5,0,1,0,0,0,0,1,0,2,7,0,0,7,7,4,0,0,0,0,0,0],
-/* M Z */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],
-/* N A */ [[2,24,33,23,6,3,30,6,20,0,9,115,29,59,2,31,0,94,28,159,19,10,5,0,1,5],
-/* N B */ [5,0,1,0,20,0,0,0,1,0,0,4,0,0,7,0,0,4,1,0,10,0,0,0,0,0],
-/* N C */ [25,0,0,0,190,0,0,87,51,0,1,18,0,0,62,0,0,16,0,36,21,0,0,0,8,0],
-/* N D */ [75,11,4,1,162,6,3,7,102,1,1,22,10,2,57,9,2,46,30,4,37,0,11,0,20,0],
-/* N E */ [34,12,36,12,29,17,16,4,14,0,0,45,16,20,25,8,6,88,80,84,32,12,37,18,45,3],
-/* N F */ [15,0,0,0,30,0,0,0,38,0,0,23,0,0,26,0,0,10,0,0,19,0,0,0,0,0],
-/* N G */ [22,8,0,3,114,6,0,15,18,0,3,51,5,0,20,2,0,24,24,28,38,0,2,0,9,0],
-/* N H */ [18,0,0,0,16,0,0,0,6,0,0,0,0,0,15,0,0,0,0,0,2,0,0,0,3,0],
-/* N I */ [90,9,148,14,33,27,35,4,1,0,5,12,25,44,26,21,7,4,87,94,29,11,0,4,0,4],
-/* N J */ [2,0,0,0,3,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,13,0,0,0,0,0],
-/* N K */ [6,0,1,0,22,4,1,1,10,0,0,12,2,0,1,1,0,2,2,3,0,0,0,0,9,0],
-/* N L */ [9,0,0,0,8,0,0,0,5,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,1,0],
-/* N M */ [8,0,0,0,5,0,0,0,2,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0],
-/* N N */ [39,0,0,0,74,0,0,0,52,0,1,0,0,0,23,0,0,0,1,0,14,0,1,0,25,0],
-/* N O */ [4,18,21,10,4,4,15,0,11,0,0,30,60,34,11,11,0,80,32,47,52,18,24,7,2,2],
-/* N P */ [0,0,0,0,1,0,0,0,1,0,0,4,0,0,6,0,0,0,0,0,2,0,0,0,0,0],
-/* N Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,22,0,0,0,0,0],
-/* N R */ [3,0,1,0,1,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,3,0,0,0,6,0],
-/* N S */ [26,4,23,2,73,17,3,12,96,0,5,8,13,0,60,25,0,1,3,79,39,4,4,0,5,0],
-/* N T */ [143,1,1,1,175,2,2,64,209,0,0,13,3,1,65,1,0,114,3,0,32,0,2,0,21,1],
-/* N U */ [12,6,16,6,11,3,6,0,5,0,1,15,35,9,6,3,0,9,25,31,1,0,0,0,0,1],
-/* N V */ [15,0,0,0,43,0,0,0,20,0,0,0,0,0,17,0,0,0,0,0,4,0,0,0,1,0],
-/* N W */ [12,0,0,0,3,0,0,2,4,0,0,0,0,0,6,0,0,1,0,0,0,0,0,0,0,0],
-/* N X */ [0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0],
-/* N Y */ [5,3,1,1,0,0,0,1,0,0,0,7,14,0,4,1,1,1,3,1,1,1,2,1,0,0],
-/* N Z */ [10,0,0,0,5,0,0,0,5,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,5,0]],
-/* O A */ [[1,0,20,30,0,2,5,2,0,0,9,9,8,18,0,4,1,51,13,44,1,1,0,2,0,0],
-/* O B */ [17,24,2,2,28,2,0,1,32,4,0,19,0,1,16,0,0,5,26,3,8,3,1,0,2,0],
-/* O C */ [50,0,28,0,38,0,0,47,26,0,129,14,0,0,33,0,0,25,0,34,20,0,0,0,8,0],
-/* O D */ [17,3,3,15,59,3,13,4,47,0,1,13,2,1,22,3,0,8,11,0,21,0,8,0,35,0],
-/* O E */ [0,6,1,7,0,3,0,1,6,0,1,10,3,13,1,0,1,10,15,6,2,7,0,3,1,0],
-/* O F */ [7,0,0,0,4,63,0,0,10,0,0,4,1,0,6,0,0,1,0,15,4,0,0,0,1,0],
-/* O G */ [34,2,0,1,44,1,22,3,15,1,0,11,3,11,7,0,0,80,1,2,18,0,1,0,83,0],
-/* O H */ [10,0,0,0,8,0,0,0,6,0,0,1,5,9,5,0,0,2,0,0,0,0,0,0,1,0],
-/* O I */ [3,1,12,53,1,1,2,0,0,0,1,27,0,51,0,0,0,11,39,8,0,0,0,1,0,0],
-/* O J */ [1,0,0,0,5,0,0,0,1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0],
-/* O K */ [5,2,1,0,48,0,0,1,7,0,1,4,0,0,3,1,0,0,5,0,3,0,1,0,6,0],
-/* O L */ [71,4,6,83,111,8,5,3,121,0,14,124,16,1,132,6,0,1,18,24,43,16,2,0,46,1],
-/* O M */ [89,50,1,0,174,5,0,1,76,0,0,2,64,7,56,125,1,1,4,0,4,0,2,0,22,0],
-/* O N */ [129,3,64,82,181,52,86,3,124,10,11,7,3,46,75,1,6,10,107,149,8,38,9,1,54,5],
-/* O O */ [0,2,4,92,0,22,4,1,0,0,68,42,42,44,0,19,0,21,21,68,0,3,0,0,0,2],
-/* O P */ [28,1,2,0,71,0,2,82,32,1,3,16,1,1,45,29,0,17,14,21,10,0,2,0,19,0],
-/* O Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0],
-/* O R */ [122,26,31,96,138,7,34,2,143,0,61,8,85,76,61,59,1,58,46,211,11,4,9,0,116,1],
-/* O S */ [31,4,24,0,107,0,3,18,102,0,2,7,9,1,18,42,2,0,63,127,5,1,2,0,8,0],
-/* O T */ [45,7,11,0,64,2,1,88,63,0,0,10,3,1,42,4,0,17,7,63,9,0,3,0,11,0],
-/* O U */ [3,11,17,13,3,3,62,1,6,0,0,32,1,137,0,11,1,86,445,103,0,7,0,1,0,2],
-/* O V */ [26,0,0,0,109,0,0,0,27,0,1,0,0,0,7,0,0,0,0,0,0,0,0,0,2,0],
-/* O W */ [18,14,2,13,48,6,0,8,8,0,1,28,7,83,1,8,0,5,13,2,2,0,1,0,4,1],
-/* O X */ [2,1,3,0,5,1,1,3,26,0,0,0,0,1,1,0,0,0,0,1,0,1,1,0,14,0],
-/* O Y */ [15,1,4,6,3,1,0,0,1,0,0,3,0,1,4,1,0,1,2,1,0,0,0,0,0,0],
-/* O Z */ [2,0,0,0,9,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,3,1]],
-/* P A */ [[0,8,38,11,1,0,18,0,17,0,2,50,5,73,1,23,1,176,50,101,18,5,7,1,10,2],
-/* P B */ [3,0,0,0,3,0,0,0,0,0,0,1,0,0,6,0,0,2,1,0,3,0,0,0,0,0],
-/* P C */ [0,0,0,0,0,0,0,1,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0],
-/* P D */ [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0],
-/* P E */ [51,1,62,34,19,4,8,0,3,1,2,47,2,108,4,10,0,292,22,50,3,1,8,2,2,4],
-/* P F */ [0,0,0,0,1,0,0,0,2,0,0,1,0,0,0,0,0,1,0,0,3,0,0,0,0,0],
-/* P G */ [2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0],
-/* P H */ [56,0,0,2,88,0,0,0,76,0,0,3,0,1,97,0,0,13,1,3,5,0,0,0,79,0],
-/* P I */ [21,0,74,25,33,1,19,0,0,0,6,27,3,74,12,11,2,37,27,57,3,2,0,2,0,2],
-/* P J */ [1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* P K */ [0,0,0,0,2,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* P L */ [150,0,0,0,121,0,0,0,59,0,0,0,0,0,33,0,0,0,0,0,29,0,0,0,11,0],
-/* P M */ [6,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0],
-/* P N */ [0,0,0,0,4,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0],
-/* P O */ [2,1,19,10,12,2,7,0,31,0,12,111,14,55,23,17,0,97,126,52,20,3,13,3,2,0],
-/* P P */ [16,0,0,0,48,0,0,1,20,0,0,32,1,0,25,0,0,32,3,0,1,0,0,0,16,0],
-/* P Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* P R */ [39,0,0,0,166,0,0,0,104,0,0,0,0,0,273,0,0,0,0,0,12,0,0,0,1,0],
-/* P S */ [4,1,3,0,17,0,0,5,22,0,1,1,2,0,13,0,0,0,0,14,6,0,1,0,35,0],
-/* P T */ [16,0,1,0,9,0,0,3,107,0,0,0,0,0,33,0,0,3,0,0,19,0,0,0,4,0],
-/* P U */ [1,8,4,8,3,6,4,0,1,0,1,41,8,22,0,9,0,39,18,28,0,0,0,0,0,1],
-/* P V */ [0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* P W */ [3,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0],
-/* P X */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* P Y */ [1,2,0,0,0,0,3,0,1,0,1,3,0,0,1,0,0,20,0,3,0,0,1,0,0,0],
-/* P Z */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],
-/* Q A */ [[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0],
-/* Q B */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q C */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q D */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q E */ [0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q F */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q G */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q H */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q I */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q J */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q K */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q L */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q M */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q N */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q O */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q P */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q R */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q S */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q T */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q U */ [110,0,0,0,100,0,0,0,128,0,0,0,0,0,13,0,0,0,0,0,0,0,0,0,3,0],
-/* Q V */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q W */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q X */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q Y */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Q Z */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],
-/* R A */ [[0,72,130,95,8,35,73,14,85,3,10,121,95,313,2,119,1,26,66,277,19,45,28,2,28,13],
-/* R B */ [32,0,0,0,26,0,0,0,35,0,0,4,0,0,44,0,0,3,1,0,9,0,0,0,5,0],
-/* R C */ [18,0,2,0,47,0,0,86,25,0,3,11,0,0,13,0,0,1,2,7,38,0,0,0,4,0],
-/* R D */ [22,5,1,0,26,1,0,4,42,0,0,4,0,2,17,1,0,5,9,4,3,0,4,0,7,0],
-/* R E */ [166,26,106,99,114,52,55,20,25,4,4,60,69,143,20,72,8,11,257,119,14,56,34,7,23,2],
-/* R F */ [11,0,0,0,15,1,0,0,9,0,0,7,0,0,8,0,0,4,0,0,12,0,0,0,0,0],
-/* R G */ [26,0,0,0,63,0,0,5,25,0,0,11,1,0,18,0,0,2,2,0,13,0,0,0,11,0],
-/* R H */ [11,0,0,0,19,0,0,0,5,0,0,0,0,0,18,0,0,0,0,0,2,0,0,0,3,0],
-/* R I */ [182,54,210,87,79,38,65,1,0,1,6,49,65,166,82,61,1,0,151,141,29,44,1,6,1,10],
-/* R J */ [0,0,0,0,3,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,2,0,0,0,0,0],
-/* R K */ [4,2,0,1,19,0,0,3,9,0,0,6,3,2,5,3,0,1,10,2,0,0,1,0,6,0],
-/* R L */ [24,2,0,4,28,0,0,0,36,0,0,0,0,0,14,1,0,0,2,1,2,0,1,0,8,0],
-/* R M */ [97,1,2,0,29,2,0,3,65,0,0,2,0,0,39,1,0,0,1,1,10,0,1,0,5,0],
-/* R N */ [53,5,0,0,50,4,0,3,29,0,1,0,6,0,16,1,0,0,9,5,7,0,2,0,4,0],
-/* R O */ [46,40,79,40,18,22,56,4,32,5,10,76,90,167,84,127,2,14,127,74,127,42,63,17,15,3],
-/* R P */ [10,0,0,0,21,0,0,33,10,0,0,5,1,0,25,0,0,12,8,8,5,0,0,0,1,0],
-/* R Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0],
-/* R R */ [53,0,0,0,92,0,0,5,85,0,0,0,0,0,47,0,0,0,0,0,14,0,0,0,60,0],
-/* R S */ [26,2,2,2,84,1,0,16,44,0,4,2,3,1,43,12,1,0,0,32,14,1,2,0,2,0],
-/* R T */ [39,2,2,0,61,5,3,101,99,0,0,11,7,3,32,0,0,17,12,1,27,0,2,0,24,7],
-/* R U */ [5,21,30,31,15,6,12,0,18,0,0,10,46,41,1,28,0,3,83,22,0,1,1,1,0,1],
-/* R V */ [31,0,0,0,37,0,0,0,28,0,0,0,0,0,5,0,0,0,0,0,1,0,0,0,2,0],
-/* R W */ [15,0,0,0,6,0,0,0,12,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0],
-/* R X */ [0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* R Y */ [5,3,3,5,3,0,1,0,0,0,0,10,11,4,12,16,0,0,9,4,0,0,2,0,0,0],
-/* R Z */ [2,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0]],
-/* S A */ [[2,44,23,16,1,10,21,4,16,1,7,80,17,89,1,10,0,36,10,43,22,10,13,5,7,0],
-/* S B */ [9,0,0,0,4,0,0,0,2,0,0,0,0,0,6,0,0,2,0,0,18,0,0,0,3,0],
-/* S C */ [81,0,0,0,65,0,1,78,37,0,0,5,1,0,88,0,0,92,0,0,40,0,0,0,3,0],
-/* S D */ [11,0,0,0,0,0,0,0,1,0,0,0,0,0,2,0,0,2,0,0,2,0,0,0,0,0],
-/* S E */ [38,14,47,18,33,7,8,3,11,0,1,63,39,101,5,28,14,83,28,41,12,19,15,15,19,1],
-/* S F */ [3,0,0,0,7,0,0,0,5,0,0,0,0,0,7,0,0,0,0,0,6,0,0,0,1,0],
-/* S G */ [0,0,0,0,2,0,0,0,2,0,0,0,0,0,2,0,0,5,1,0,2,0,0,0,0,0],
-/* S H */ [97,9,1,0,79,3,0,0,75,0,1,4,16,3,81,2,0,27,0,1,20,1,6,0,17,0],
-/* S I */ [55,56,44,80,28,15,38,0,0,0,2,50,40,78,148,7,1,7,99,89,9,76,0,8,0,3],
-/* S J */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],
-/* S K */ [9,0,0,0,24,0,0,0,35,0,0,0,2,0,3,0,0,1,0,0,5,0,0,0,23,0],
-/* S L */ [42,0,0,0,35,0,0,0,29,0,0,1,0,0,29,0,0,0,0,0,13,0,0,0,2,0],
-/* S M */ [57,0,0,0,30,0,0,0,31,0,0,0,0,0,25,0,0,0,0,0,14,0,0,0,2,0],
-/* S N */ [21,0,0,0,12,0,0,0,12,0,0,0,0,0,19,0,0,0,0,4,6,0,0,0,2,0],
-/* S O */ [6,4,26,12,6,10,4,1,8,1,0,67,65,190,8,21,0,71,0,11,34,6,3,0,3,1],
-/* S P */ [63,1,0,0,116,0,0,41,82,0,0,24,0,0,69,0,0,34,1,0,16,0,0,0,3,0],
-/* S Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,0,0,0,0,0],
-/* S R */ [4,0,0,0,1,0,0,0,1,0,0,0,0,0,2,0,0,0,1,0,3,0,0,0,0,0],
-/* S S */ [50,3,2,0,77,3,0,4,151,0,0,5,11,1,42,2,0,4,0,4,17,0,13,0,19,0],
-/* S T */ [258,6,4,1,291,9,1,11,240,1,0,25,12,2,205,6,0,255,3,0,58,2,7,0,36,0],
-/* S U */ [14,38,17,6,7,11,6,0,11,0,0,39,35,37,1,42,0,71,30,4,0,0,0,0,0,4],
-/* S V */ [0,0,0,0,5,0,0,0,6,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],
-/* S W */ [37,0,0,0,31,0,0,0,28,0,0,0,0,0,21,0,0,2,0,0,2,0,0,0,0,0],
-/* S X */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* S Y */ [0,2,32,1,1,0,1,0,0,0,1,18,19,30,0,2,0,9,5,1,0,0,0,0,0,1],
-/* S Z */ [0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],
-/* T A */ [[0,74,44,8,3,9,45,8,68,0,15,130,36,181,1,23,0,128,22,185,13,11,9,13,4,0],
-/* T B */ [7,0,0,0,4,0,0,0,4,0,0,0,0,0,6,0,0,3,0,0,3,0,0,0,0,0],
-/* T C */ [5,0,0,0,0,0,0,112,0,0,0,2,0,0,5,0,0,1,0,0,1,0,0,0,1,0],
-/* T D */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,0,0,0,0,0,0,0,0],
-/* T E */ [52,9,29,37,66,9,17,6,16,0,2,65,49,185,18,20,0,588,61,23,9,9,9,16,1,0],
-/* T F */ [6,0,0,0,1,0,0,0,5,0,0,1,0,0,6,0,0,1,0,0,24,0,0,0,0,0],
-/* T G */ [4,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,1,0,0,0,0,0],
-/* T H */ [68,6,1,5,274,8,1,2,62,0,1,9,13,3,90,4,1,61,8,2,31,0,16,0,49,0],
-/* T I */ [99,35,342,16,35,45,34,0,0,0,3,67,75,183,419,28,9,18,75,88,9,128,0,0,0,2],
-/* T J */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* T K */ [2,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0],
-/* T L */ [18,0,0,0,102,0,0,0,5,0,0,2,0,0,3,0,0,0,0,0,2,0,0,0,3,0],
-/* T M */ [25,0,0,0,8,0,0,0,3,0,0,0,0,0,11,0,0,0,0,0,3,0,0,0,0,0],
-/* T N */ [3,0,0,0,9,0,0,0,5,0,0,0,0,0,2,0,0,0,0,4,1,0,0,0,0,0],
-/* T O */ [5,6,34,11,8,7,26,0,14,0,9,38,65,238,26,56,0,319,19,16,36,3,36,7,3,2],
-/* T P */ [2,0,0,0,1,0,0,0,1,0,0,2,0,0,3,0,0,5,0,0,0,0,0,0,0,0],
-/* T Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* T R */ [315,0,0,0,98,0,0,0,246,0,0,0,0,0,201,0,0,0,0,0,68,0,1,0,64,0],
-/* T S */ [2,2,2,1,10,2,0,3,4,0,1,0,13,0,9,3,0,0,0,8,5,2,5,0,3,0],
-/* T T */ [44,0,0,0,154,1,1,2,53,0,1,45,0,0,33,0,0,10,8,0,4,1,0,0,25,0],
-/* T U */ [41,14,9,41,8,5,4,0,10,0,0,19,30,29,13,10,0,159,35,22,0,0,0,1,1,0],
-/* T V */ [3,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* T W */ [14,0,0,0,12,0,0,1,23,0,0,0,0,0,15,0,0,0,0,0,2,0,0,1,0,0],
-/* T X */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* T Y */ [2,1,2,0,0,0,1,0,1,0,0,14,2,0,0,34,0,14,3,0,0,0,2,1,0,0],
-/* T Z */ [1,0,0,0,5,0,1,0,2,0,0,1,1,0,1,1,0,1,1,0,0,0,0,0,0,0]],
-/* U A */ [[0,4,7,21,0,1,5,1,4,0,5,51,2,26,0,1,0,48,9,37,0,2,4,0,3,0],
-/* U B */ [8,18,0,1,20,0,0,2,18,2,0,23,5,0,2,1,0,10,15,8,7,2,0,0,1,0],
-/* U C */ [10,0,14,0,23,0,0,31,29,0,55,16,0,0,7,0,0,9,1,47,5,0,0,0,2,0],
-/* U D */ [17,1,0,24,67,0,18,0,39,0,0,4,0,0,8,0,0,1,10,0,2,0,2,0,7,1],
-/* U E */ [6,9,0,1,5,5,4,1,0,1,0,21,1,33,1,1,0,19,22,15,2,0,0,0,3,6],
-/* U F */ [1,0,0,0,0,58,0,0,0,0,0,1,1,0,1,0,0,0,0,3,1,0,0,0,0,0],
-/* U G */ [19,1,0,0,21,0,34,80,3,0,0,4,2,2,6,0,0,1,1,0,11,0,0,0,0,0],
-/* U H */ [3,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0],
-/* U I */ [3,2,14,14,6,0,1,0,0,0,0,32,0,31,1,8,0,19,44,64,1,4,0,2,0,3],
-/* U J */ [1,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0],
-/* U K */ [1,0,0,1,12,0,0,0,3,0,1,0,0,0,1,0,0,2,0,0,0,0,0,0,0,0],
-/* U L */ [136,4,11,11,46,14,7,0,35,0,10,67,5,2,23,16,0,1,24,73,16,3,1,0,5,1],
-/* U M */ [22,52,3,1,51,5,0,1,32,0,0,2,28,11,8,48,1,0,8,1,6,2,0,0,0,0],
-/* U N */ [21,6,73,131,25,5,46,2,55,0,33,4,2,13,4,2,0,2,15,82,1,0,2,0,5,0],
-/* U O */ [0,0,0,1,0,0,0,0,3,0,0,2,0,3,0,2,0,16,3,5,29,0,0,0,2,0],
-/* U P */ [4,4,1,2,31,1,1,14,10,0,1,13,1,0,8,24,0,13,13,24,2,0,2,0,2,0],
-/* U Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0],
-/* U R */ [75,27,21,17,149,8,60,1,66,2,11,17,11,55,28,15,1,51,43,43,9,15,3,0,28,1],
-/* U S */ [31,5,29,2,105,0,1,53,64,0,17,3,0,1,8,12,1,0,34,115,6,0,0,0,4,0],
-/* U T */ [45,1,14,1,69,0,1,55,77,0,0,8,3,3,49,0,0,13,7,51,11,0,2,0,6,2],
-/* U U */ [0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* U V */ [0,0,0,0,8,0,0,0,5,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0],
-/* U W */ [2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* U X */ [0,0,0,0,4,0,0,0,2,0,0,1,0,0,1,0,0,0,0,5,4,0,0,0,0,0],
-/* U Y */ [1,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,1,0,0,0,0],
-/* U Z */ [2,0,0,0,4,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,1,0,0,0,0,12]],
-/* V A */ [[0,9,20,8,1,0,14,2,8,1,3,69,2,57,0,1,0,31,18,36,5,0,0,0,0,0],
-/* V B */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* V C */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* V D */ [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* V E */ [6,2,5,4,4,3,6,4,5,0,1,47,4,120,3,1,0,271,46,24,0,0,1,5,10,0],
-/* V F */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* V G */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* V H */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* V I */ [37,4,33,23,21,2,8,0,2,0,3,43,0,47,18,0,0,16,65,30,5,16,0,2,0,1],
-/* V J */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* V K */ [0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* V L */ [2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],
-/* V M */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* V N */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* V O */ [0,0,23,0,0,0,3,0,9,0,5,48,2,6,1,0,0,10,4,9,10,1,3,0,6,0],
-/* V P */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* V Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* V R */ [0,0,0,0,5,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0],
-/* V S */ [0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* V T */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* V U */ [0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,0,0,2,2,0,0,0,0,0,0,0],
-/* V V */ [0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0],
-/* V W */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* V X */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* V Y */ [0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],
-/* V Z */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0]],
-/* W A */ [[1,4,7,8,0,3,12,3,18,0,8,53,5,20,0,4,0,100,27,55,1,9,1,4,71,1],
-/* W B */ [6,0,0,0,7,0,0,0,1,0,0,0,0,0,10,0,0,3,0,0,1,0,0,0,0,0],
-/* W C */ [3,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0],
-/* W D */ [0,0,0,0,5,0,0,0,1,0,0,0,0,0,4,0,0,3,0,0,1,0,0,0,3,0],
-/* W E */ [30,5,1,9,33,0,2,1,19,0,0,51,0,11,0,2,0,36,21,7,0,2,0,0,2,0],
-/* W F */ [1,0,0,0,0,0,0,0,3,0,0,3,0,0,4,0,0,0,0,0,3,0,0,0,0,0],
-/* W G */ [0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* W H */ [18,0,0,0,47,0,0,0,52,0,0,0,0,0,19,0,0,0,0,0,1,0,0,0,1,0],
-/* W I */ [0,0,14,18,5,5,15,0,0,0,0,40,2,83,0,2,0,8,38,47,0,4,0,1,0,2],
-/* W J */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* W K */ [0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0],
-/* W L */ [3,0,0,0,9,0,0,0,5,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,3,0],
-/* W M */ [8,0,0,0,5,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* W N */ [0,1,1,1,6,1,1,2,3,0,0,0,0,0,0,2,0,1,10,4,1,0,2,0,3,0],
-/* W O */ [0,1,0,0,3,1,0,0,0,0,3,10,17,8,54,1,0,121,1,1,3,2,1,0,0,0],
-/* W P */ [1,0,0,0,1,0,0,0,1,0,0,1,0,0,5,0,0,0,0,0,1,0,0,0,0,0],
-/* W Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* W R */ [7,0,0,0,12,0,0,0,25,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,6,0],
-/* W S */ [0,1,1,0,2,0,0,1,1,0,1,2,2,0,5,3,0,1,1,4,1,0,2,0,1,0],
-/* W T */ [1,0,0,0,1,0,0,3,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,0,0,0],
-/* W U */ [0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,1,0,2,0,0,0,0,0,0,0,0],
-/* W V */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* W W */ [1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],
-/* W X */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* W Y */ [2,0,0,0,5,0,0,0,0,0,0,1,1,4,1,0,0,0,0,0,0,0,0,0,0,0],
-/* W Z */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0]],
-/* X A */ [[0,0,5,1,0,1,3,0,0,0,0,4,6,6,0,0,0,0,3,6,0,1,0,0,0,0],
-/* X B */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],
-/* X C */ [3,0,0,0,11,0,0,3,7,0,0,7,0,0,3,0,0,5,0,0,7,0,0,0,0,0],
-/* X D */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* X E */ [0,0,7,1,0,0,2,0,1,0,0,2,6,9,0,0,0,6,1,1,0,0,0,0,1,0],
-/* X F */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0],
-/* X G */ [0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0],
-/* X H */ [7,0,0,0,0,0,0,0,4,0,0,0,0,0,4,0,0,0,0,0,2,0,0,0,0,0],
-/* X I */ [8,2,12,8,4,2,2,0,0,0,0,2,11,4,8,0,0,0,9,2,0,1,1,0,0,0],
-/* X J */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* X K */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* X L */ [0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* X M */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* X N */ [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* X O */ [0,0,0,1,0,0,3,0,0,0,0,1,1,10,0,1,0,6,1,5,0,0,0,0,0,0],
-/* X P */ [8,0,0,0,27,0,0,0,5,0,0,18,0,0,12,0,0,7,0,0,3,0,0,0,0,0],
-/* X Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],
-/* X R */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* X S */ [0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* X T */ [6,1,0,0,22,0,0,1,7,0,0,0,0,0,7,0,0,31,0,0,9,0,0,0,1,0],
-/* X U */ [4,1,0,2,0,0,0,0,0,0,0,3,0,0,0,1,0,6,0,0,0,0,0,0,0,0],
-/* X V */ [0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* X W */ [0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0],
-/* X X */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],
-/* X Y */ [0,0,0,0,0,0,2,0,0,0,0,6,0,0,0,0,0,2,0,0,0,0,0,0,0,0],
-/* X Z */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],
-/* Y A */ [[0,0,5,5,0,0,1,1,0,0,2,11,3,29,1,4,1,20,1,3,0,0,3,0,0,0],
-/* Y B */ [4,0,0,4,7,0,0,0,2,0,0,0,0,0,9,0,0,3,0,0,3,0,0,0,0,0],
-/* Y C */ [4,0,0,0,18,0,0,31,4,0,0,19,0,0,12,0,0,0,0,0,0,0,0,0,0,0],
-/* Y D */ [4,1,0,0,12,0,0,0,2,0,0,0,0,2,1,0,0,37,0,0,0,0,0,0,0,0],
-/* Y E */ [11,3,0,1,1,1,1,0,1,0,0,13,1,6,2,1,0,19,7,6,0,1,1,0,0,0],
-/* Y F */ [1,0,0,0,1,0,0,0,3,0,0,2,0,0,0,0,0,0,0,0,4,0,0,0,0,0],
-/* Y G */ [0,0,0,1,2,0,0,0,2,0,0,1,3,1,8,0,0,3,0,0,1,0,0,0,2,0],
-/* Y H */ [0,0,0,0,4,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,1,0],
-/* Y I */ [0,0,0,1,1,0,0,0,0,0,0,0,0,9,0,2,0,0,2,0,0,0,0,0,0,0],
-/* Y J */ [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Y K */ [0,0,0,0,3,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Y L */ [15,0,0,0,22,0,0,0,13,0,1,19,0,0,11,1,0,0,2,0,3,6,0,0,0,0],
-/* Y M */ [18,4,1,0,20,0,0,0,5,0,0,0,3,7,11,20,0,0,0,0,2,0,0,0,1,0],
-/* Y N */ [14,0,11,3,12,0,3,1,2,0,0,0,0,3,11,0,0,0,0,6,0,0,0,2,1,0],
-/* Y O */ [0,0,2,2,0,4,6,0,0,0,5,2,1,18,0,4,0,8,4,5,17,1,1,0,0,1],
-/* Y P */ [2,0,0,0,24,0,0,17,5,0,0,2,0,2,21,0,0,5,7,16,3,0,0,0,1,0],
-/* Y Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0],
-/* Y R */ [15,0,0,2,6,1,0,0,21,0,0,0,0,2,29,0,0,2,0,1,4,0,0,0,1,0],
-/* Y S */ [3,1,3,0,12,0,0,1,38,0,0,1,2,0,4,3,0,0,6,39,2,0,0,0,0,0],
-/* Y T */ [2,0,0,0,16,0,0,16,10,0,0,0,0,0,12,0,0,0,0,2,0,0,0,0,1,0],
-/* Y U */ [0,0,3,0,0,0,3,1,0,0,2,1,0,1,0,1,0,0,2,0,0,0,0,0,0,0],
-/* Y V */ [1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Y W */ [10,0,1,0,3,0,0,2,4,0,0,0,0,0,5,0,0,3,0,0,0,0,0,0,0,0],
-/* Y X */ [0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Y Y */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Y Z */ [2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0]],
-/* Z A */ [[1,3,2,0,0,0,5,1,1,0,1,4,1,11,0,1,0,19,0,0,0,1,0,0,0,1],
-/* Z B */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Z C */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Z D */ [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Z E */ [5,1,2,1,1,0,0,0,1,0,1,7,0,12,0,0,0,13,3,3,1,0,1,0,0,0],
-/* Z F */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Z G */ [0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Z H */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Z I */ [1,1,2,0,7,0,5,0,0,0,0,5,4,6,1,1,0,2,1,1,1,0,0,0,0,0],
-/* Z J */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Z K */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Z L */ [0,0,0,0,16,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0],
-/* Z M */ [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Z N */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Z O */ [3,0,0,2,2,0,1,0,7,0,0,0,3,10,5,2,0,5,0,0,1,1,0,0,0,0],
-/* Z P */ [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Z Q */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Z R */ [1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],
-/* Z S */ [0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Z T */ [0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Z U */ [0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0],
-/* Z V */ [0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],
-/* Z W */ [0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],
-/* Z X */ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Z Y */ [0,1,0,0,0,0,4,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0],
-/* Z Z */ [7,0,0,0,1,0,0,0,7,0,0,17,0,0,2,0,0,0,0,0,0,0,1,0,5,0]]];
+    return shuffle(password_combination)
+  }
 
-	// Pick a random starting point.
-	pik = Math.random(); // random number [0,1]
-	ranno = pik * 125729.0;
-	sum = 0;
-	for (c1=0; c1 < 26; c1++) {
-	    for (c2=0; c2 < 26; c2++) {
-		for (c3=0; c3 < 26; c3++) {
-		    sum += _trigram[c1][c2][c3];
-		    if (sum > ranno) {
-			output += _alphabet.charAt(c1);
-			output += _alphabet.charAt(c2);
-			output += _alphabet.charAt(c3);
-			c1 = 26; // Found start. Break all 3 loops.
-			c2 = 26;
-			c3 = 26;
-		    } // if sum
-		} // for c3
-	    } // for c2
-	} // for c1
-	// Now do a random walk.
-	nchar = 3;
-	while (nchar < pwl) {
-	    c1 = _alphabet.indexOf(output.charAt(nchar-2));
-	    c2 = _alphabet.indexOf(output.charAt(nchar-1));
-	    sum = 0;
-	    for (c3=0; c3 < 26; c3++)
-		sum += _trigram[c1][c2][c3];
-	    if (sum == 0) {
-		//alert("sum was 0, outut="+output);
-		break;	// exit while loop
-	    }
-	    //pik = ran.nextDouble();
-	    pik = Math.random();
-	    ranno = pik * sum;
-	    sum = 0;
-	    for (c3=0; c3 < 26; c3++) {
-		sum += _trigram[c1][c2][c3];
-		if (sum > ranno) {
-		    output += _alphabet.charAt(c3);
-		    c3 = 26; // break for loop
-		} // if sum
-	    } // for c3
-	    nchar ++;
-	} // while nchar
-	
-	return output + Math.floor(Math.random() * 90 + 10)
-    } // pronounceable
-
-} // GPW
+}
\ No newline at end of file
diff --git a/mailcow/src/mailcow-dockerized/data/web/js/site/quarantine.js b/mailcow/src/mailcow-dockerized/data/web/js/site/quarantine.js
index 0c35dea..57bd4cc 100644
--- a/mailcow/src/mailcow-dockerized/data/web/js/site/quarantine.js
+++ b/mailcow/src/mailcow-dockerized/data/web/js/site/quarantine.js
@@ -53,12 +53,12 @@
         {"name":"sender","title":lang.sender},

         {"name":"subject","title":lang.subj, "type": "text"},

         {"name":"rspamdaction","title":lang.rspamd_result, "type": "html"},

-        {"name":"rcpt","title":lang.rcpt, "breakpoints":"xs sm md", "type": "text"},

+        {"name":"rcpt","title":lang.rcpt, "type": "text"},

         {"name":"virus","title":lang.danger, "type": "text"},

         {"name":"score","title": lang.spam_score, "type": "text"},

         {"name":"notified","title":lang.notified, "type": "text"},

         {"name":"created","formatter":function unix_time_format(tm) { var date = new Date(tm ? tm * 1000 : 0); return date.toLocaleDateString(undefined, {year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", second: "2-digit"});},"title":lang.received,"style":{"width":"170px"}},

-        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right"},"style":{"min-width":"200px"},"type":"html","title":lang.action,"breakpoints":"xs sm md"}

+        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right"},"style":{"min-width":"250px"},"type":"html","title":lang.action,"breakpoints":"xs sm md"}

       ],

       "rows": $.ajax({

         dataType: 'json',

@@ -95,14 +95,14 @@
               item.notified = '&#10006;';

             }

             if (acl_data.login_as === 1) {

-            item.action = '<div class="btn-group">' +

-              '<a href="#" data-item="' + encodeURI(item.id) + '" class="btn btn-xs btn-info show_qid_info"><span class="glyphicon glyphicon-modal-window"></span> ' + lang.show_item + '</a>' +

-              '<a href="#" data-action="delete_selected" data-id="del-single-qitem" data-api-url="delete/qitem" data-item="' + encodeURI(item.id) + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +

+            item.action = '<div class="btn-group footable-actions">' +

+              '<a href="#" data-item="' + encodeURI(item.id) + '" class="btn btn-xs btn-xs-half btn-info show_qid_info"><i class="bi bi-box-arrow-up-right"></i> ' + lang.show_item + '</a>' +

+              '<a href="#" data-action="delete_selected" data-id="del-single-qitem" data-api-url="delete/qitem" data-item="' + encodeURI(item.id) + '" class="btn btn-xs  btn-xs-half btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +

               '</div>';

             }

             else {

             item.action = '<div class="btn-group">' +

-              '<a href="#" data-item="' + encodeURI(item.id) + '" class="btn btn-xs btn-info show_qid_info"><span class="glyphicon glyphicon-modal-window"></span> ' + lang.show_item + '</a>' +

+              '<a href="#" data-item="' + encodeURI(item.id) + '" class="btn btn-xs btn-info show_qid_info"><i class="bi bi-file-earmark-text"></i> ' + lang.show_item + '</a>' +

               '</div>';

             }

             item.chkbox = '<input type="checkbox" data-id="qitems" name="multi_select" value="' + item.id + '" />';

diff --git a/mailcow/src/mailcow-dockerized/data/web/js/site/user.js b/mailcow/src/mailcow-dockerized/data/web/js/site/user.js
index 0fdec8f..83aedba 100644
--- a/mailcow/src/mailcow-dockerized/data/web/js/site/user.js
+++ b/mailcow/src/mailcow-dockerized/data/web/js/site/user.js
@@ -1,4 +1,35 @@
+// Base64 functions

+var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(r){var t,e,o,a,h,n,c,d="",C=0;for(r=Base64._utf8_encode(r);C<r.length;)a=(t=r.charCodeAt(C++))>>2,h=(3&t)<<4|(e=r.charCodeAt(C++))>>4,n=(15&e)<<2|(o=r.charCodeAt(C++))>>6,c=63&o,isNaN(e)?n=c=64:isNaN(o)&&(c=64),d=d+this._keyStr.charAt(a)+this._keyStr.charAt(h)+this._keyStr.charAt(n)+this._keyStr.charAt(c);return d},decode:function(r){var t,e,o,a,h,n,c="",d=0;for(r=r.replace(/[^A-Za-z0-9\+\/\=]/g,"");d<r.length;)t=this._keyStr.indexOf(r.charAt(d++))<<2|(a=this._keyStr.indexOf(r.charAt(d++)))>>4,e=(15&a)<<4|(h=this._keyStr.indexOf(r.charAt(d++)))>>2,o=(3&h)<<6|(n=this._keyStr.indexOf(r.charAt(d++))),c+=String.fromCharCode(t),64!=h&&(c+=String.fromCharCode(e)),64!=n&&(c+=String.fromCharCode(o));return c=Base64._utf8_decode(c)},_utf8_encode:function(r){r=r.replace(/\r\n/g,"\n");for(var t="",e=0;e<r.length;e++){var o=r.charCodeAt(e);o<128?t+=String.fromCharCode(o):o>127&&o<2048?(t+=String.fromCharCode(o>>6|192),t+=String.fromCharCode(63&o|128)):(t+=String.fromCharCode(o>>12|224),t+=String.fromCharCode(o>>6&63|128),t+=String.fromCharCode(63&o|128))}return t},_utf8_decode:function(r){for(var t="",e=0,o=c1=c2=0;e<r.length;)(o=r.charCodeAt(e))<128?(t+=String.fromCharCode(o),e++):o>191&&o<224?(c2=r.charCodeAt(e+1),t+=String.fromCharCode((31&o)<<6|63&c2),e+=2):(c2=r.charCodeAt(e+1),c3=r.charCodeAt(e+2),t+=String.fromCharCode((15&o)<<12|(63&c2)<<6|63&c3),e+=3);return t}};

 $(document).ready(function() {

+  // Spam score slider

+  var spam_slider = $('#spam_score')[0];

+  if (typeof spam_slider !== 'undefined') {

+    noUiSlider.create(spam_slider, {

+      start: user_spam_score,

+      connect: [true, true, true],

+      range: {

+        'min': [0], //stepsize is 50.000

+        '50%': [10],

+        '70%': [20, 5],

+        '80%': [50, 10],

+        '90%': [100, 100],

+        '95%': [1000, 1000],

+        'max': [5000]

+      },

+    });

+    var connect = spam_slider.querySelectorAll('.noUi-connect');

+    var classes = ['c-1-color', 'c-2-color', 'c-3-color'];

+    for (var i = 0; i < connect.length; i++) {

+      connect[i].classList.add(classes[i]);

+    }

+    spam_slider.noUiSlider.on('update', function (values, handle) {

+      $('.spam-ham-score').text('< ' + Math.round(values[0] * 10) / 10);

+      $('.spam-spam-score').text(Math.round(values[0] * 10) / 10 + ' - ' + Math.round(values[1] * 10) / 10);

+      $('.spam-reject-score').text('> ' + Math.round(values[1] * 10) / 10);

+      $('#spam_score_value').val((Math.round(values[0] * 10) / 10) + ',' + (Math.round(values[1] * 10) / 10));

+    });

+  }

+  // syncjobLogModal

   $('#syncjobLogModal').on('show.bs.modal', function(e) {

     var syncjob_id = $(e.relatedTarget).data('syncjob-id');

     $.ajax({

@@ -15,6 +46,7 @@
   });

   $(".arrow-toggle").on('click', function(e) { e.preventDefault(); $(this).find('.arrow').toggleClass("animation"); });

   $("#pushover_delete").click(function() { return confirm(lang.delete_ays); });

+

 });

 jQuery(function($){

   // http://stackoverflow.com/questions/24816/escaping-html-strings-with-jquery

@@ -43,15 +75,64 @@
     return date.toLocaleDateString(undefined, {year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", second: "2-digit"});

   }

   acl_data = JSON.parse(acl);

-  var last_login = $('.last_login_date').data('time');

-  $('.last_login_date').text(unix_time_format(last_login));

+

+  $('.clear-last-logins').on('click', function () {if (confirm(lang.delete_ays)) {last_logins('reset');}})

+  $(".login-history").on('click', function(e) {e.preventDefault(); last_logins('get', $(this).data('days'));$(this).addClass('active').siblings().removeClass('active');});

+

+  function last_logins(action, days = 1) {

+    if (action == 'get') {

+      $('.last-login').html('<i class="bi bi-hourglass"></i>' +  lang.waiting);

+      $.ajax({

+        dataType: 'json',

+        url: '/api/v1/get/last-login/' + encodeURIComponent(mailcow_cc_username) + '/' + days,

+        jsonp: false,

+        error: function () {

+          console.log('error reading last logins');

+        },

+        success: function (data) {

+          $('.last-login').html();

+          if (data.ui.time) {

+            $('.last-login').html('<i class="bi bi-person-fill"></i> ' + lang.last_ui_login + ': ' + unix_time_format(data.ui.time));

+          } else {

+            $('.last-login').text(lang.no_last_login);

+          }

+          if (data.sasl) {

+            $('.last-login').append('<ul class="list-group">');

+            $.each(data.sasl, function (i, item) {

+              var datetime = new Date(item.datetime.replace(/-/g, "/"));

+              var local_datetime = datetime.toLocaleDateString(undefined, {year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", second: "2-digit"});

+              item.app_password ? app_password = ' <a href="/edit/app-passwd/' + item.app_password + '">(App)</a>' : app_password = "", item.location ? ip_location = ' <span class="flag-icon flag-icon-' + item.location.toLowerCase() + '"></span>' : ip_location = "";

+              "smtp" == item.service ? service = '<div class="label label-default">' + item.service.toUpperCase() + '<i class="bi bi-chevron-compact-right"></i></div>' : "imap" == item.service ? service = '<div class="label label-default"><i class="bi bi-chevron-compact-left"></i> ' + item.service.toUpperCase() + "</div>" : service = '<div class="label label-default">' + item.service.toUpperCase() + "</div>";

+              item.real_rip.startsWith("Web") ? real_rip = item.real_rip : real_rip = '<a href="https://bgp.he.net/ip/' + item.real_rip + '" target="_blank">' + item.real_rip + "</a>";

+              ip_data = real_rip + ip_location + app_password;

+              $(".last-login").append('<li class="list-group-item">' + local_datetime + " " + service + " " + lang.from + " " + ip_data + "</li>");

+            })

+            $('.last-login').append('</ul>');

+          }

+        }

+      })

+    } else if (action == 'reset') {

+      $.ajax({

+        dataType: 'json',

+        url: '/api/v1/get/reset-last-login/' + encodeURIComponent(mailcow_cc_username),

+        jsonp: false,

+        error: function () {

+          console.log('cannot reset last logins');

+        },

+        success: function (data) {

+          last_logins('get');

+        }

+      })

+    }

+  }

 

   function draw_tla_table() {

     ft_tla_table = FooTable.init('#tla_table', {

       "columns": [

-        {"name":"chkbox","title":"","style":{"maxWidth":"40px","width":"40px","text-align":"center"},"filterable": false,"sortable": false,"type":"html"},

-        {"sorted": true,"name":"address","title":lang.alias},

+        {"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px","text-align":"center"},"filterable": false,"sortable": false,"type":"html"},

+        {"name":"address","title":lang.alias},

         {"name":"validity","formatter":function unix_time_format(tm) { var date = new Date(tm ? tm * 1000 : 0); return date.toLocaleDateString(undefined, {year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", second: "2-digit"});},"title":lang.alias_valid_until,"style":{"width":"170px"}},

+        {"sorted": true,"sortValue": function(value){res = new Date(value);return res.getTime();},"direction":"DESC","name":"created","formatter":function date_format(datetime) { var date = new Date(datetime.replace(/-/g, "/")); return date.toLocaleDateString(undefined, {year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", second: "2-digit"});},"title":lang.created_on,"style":{"width":"170px"}},

         {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}

       ],

       "empty": lang.empty,

@@ -65,8 +146,8 @@
         success: function (data) {

           $.each(data, function (i, item) {

             if (acl_data.spam_alias === 1) {

-              item.action = '<div class="btn-group">' +

-                '<a href="#" data-action="delete_selected" data-id="single-tla" data-api-url="delete/time_limited_alias" data-item="' + encodeURIComponent(item.address) + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +

+              item.action = '<div class="btn-group footable-actions">' +

+                '<a href="#" data-action="delete_selected" data-id="single-tla" data-api-url="delete/time_limited_alias" data-item="' + encodeURIComponent(item.address) + '" class="btn btn-xs btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +

                 '</div>';

               item.chkbox = '<input type="checkbox" data-id="tla" name="multi_select" value="' + encodeURIComponent(item.address) + '" />';

               item.address = escapeHtml(item.address);

@@ -93,18 +174,18 @@
   function draw_sync_job_table() {

     ft_syncjob_table = FooTable.init('#sync_job_table', {

       "columns": [

-        {"name":"chkbox","title":"","style":{"maxWidth":"60px","width":"60px","text-align":"center"},"filterable": false,"sortable": false,"type":"html"},

+        {"name":"chkbox","title":"","style":{"min-width":"60px","width":"60px","text-align":"center"},"filterable": false,"sortable": false,"type":"html"},

         {"sorted": true,"name":"id","title":"ID","style":{"maxWidth":"60px","width":"60px","text-align":"center"}},

         {"name":"server_w_port","title":"Server"},

-        {"name":"enc1","title":lang.encryption,"breakpoints":"xs sm"},

+        {"name":"enc1","title":lang.encryption,"breakpoints":"all"},

         {"name":"user1","title":lang.username},

         {"name":"exclude","title":lang.excludes,"breakpoints":"all"},

         {"name":"mins_interval","title":lang.interval + " (min)","breakpoints":"all"},

         {"name":"last_run","title":lang.last_run,"breakpoints":"all"},

         {"name":"log","title":"Log"},

-        {"name":"active","filterable": false,"style":{"maxWidth":"70px","width":"70px"},"title":lang.active,"formatter": function(value){return 1==value?'&#10003;':0==value&&'&#10005;';}},

+        {"name":"active","filterable": false,"style":{"maxWidth":"70px","width":"70px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},

         {"name":"is_running","filterable": false,"style":{"maxWidth":"120px","width":"100px"},"title":lang.status},

-        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}

+        {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","min-width":"260px","width":"260px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}

       ],

       "empty": lang.empty,

       "rows": $.ajax({

@@ -117,7 +198,7 @@
         success: function (data) {

           $.each(data, function (i, item) {

             item.user1 = escapeHtml(item.user1);

-            item.log = '<a href="#syncjobLogModal" data-toggle="modal" data-syncjob-id="' + item.id + '">Open logs</a>'

+            item.log = '<a href="#syncjobLogModal" data-toggle="modal" data-syncjob-id="' + item.id + '">' + lang.open_logs + '</a>'

             if (!item.exclude > 0) {

               item.exclude = '-';

             } else {

@@ -125,9 +206,9 @@
             }

             item.server_w_port = escapeHtml(item.user1 + '@' + item.host1 + ':' + item.port1);

             if (acl_data.syncjobs === 1) {

-              item.action = '<div class="btn-group">' +

-                '<a href="/edit/syncjob/' + item.id + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +

-                '<a href="#" data-action="delete_selected" data-id="single-syncjob" data-api-url="delete/syncjob" data-item="' + item.id + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +

+              item.action = '<div class="btn-group footable-actions">' +

+                '<a href="/edit/syncjob/' + item.id + '" class="btn btn-xs btn-xs-half btn-default"><i class="bi bi-pencil-fill"></i> ' + lang.edit + '</a>' +

+                '<a href="#" data-action="delete_selected" data-id="single-syncjob" data-api-url="delete/syncjob" data-item="' + item.id + '" class="btn btn-xs btn-xs-half btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +

                 '</div>';

               item.chkbox = '<input type="checkbox" data-id="syncjob" name="multi_select" value="' + item.id + '" />';

             }

@@ -164,7 +245,7 @@
         {"name":"chkbox","title":"","style":{"maxWidth":"60px","width":"60px","text-align":"center"},"filterable": false,"sortable": false,"type":"html"},

         {"sorted": true,"name":"id","title":"ID","style":{"maxWidth":"60px","width":"60px","text-align":"center"}},

         {"name":"name","title":lang.app_name},

-        {"name":"active","filterable": false,"style":{"maxWidth":"70px","width":"70px"},"title":lang.active,"formatter": function(value){return 1==value?'&#10003;':0==value&&'&#10005;';}},

+        {"name":"active","filterable": false,"style":{"maxWidth":"70px","width":"70px"},"title":lang.active,"formatter": function(value){return 1==value?'<i class="bi bi-check-lg"></i>':0==value&&'<i class="bi bi-x-lg"></i>';}},

         {"name":"action","filterable": false,"sortable": false,"style":{"text-align":"right","maxWidth":"180px","width":"180px"},"type":"html","title":lang.action,"breakpoints":"xs sm"}

       ],

       "empty": lang.empty,

@@ -177,10 +258,11 @@
         },

         success: function (data) {

           $.each(data, function (i, item) {

+            item.name = escapeHtml(item.name);

             if (acl_data.app_passwds === 1) {

-              item.action = '<div class="btn-group">' +

-                '<a href="/edit/app-passwd/' + item.id + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +

-                '<a href="#" data-action="delete_selected" data-id="single-apppasswd" data-api-url="delete/app-passwd" data-item="' + item.id + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +

+              item.action = '<div class="btn-group footable-actions">' +

+                '<a href="/edit/app-passwd/' + item.id + '" class="btn btn-xs btn-xs-half btn-default"><i class="bi bi-pencil-fill"></i> ' + lang.edit + '</a>' +

+                '<a href="#" data-action="delete_selected" data-id="single-apppasswd" data-api-url="delete/app-passwd" data-item="' + item.id + '" class="btn btn-xs btn-xs-half btn-danger"><i class="bi bi-trash"></i> ' + lang.remove + '</a>' +

                 '</div>';

               item.chkbox = '<input type="checkbox" data-id="apppasswd" name="multi_select" value="' + item.id + '" />';

             }

@@ -295,6 +377,7 @@
   draw_tla_table();

   draw_wl_policy_mailbox_table();

   draw_bl_policy_mailbox_table();

+  last_logins('get');

 

   // FIDO2 friendly name modal

   $('#fido2ChangeFn').on('show.bs.modal', function (e) {

@@ -327,4 +410,4 @@
   $('#userFilterModal').on('hidden.bs.modal', function () {

     $('#user_sieve_filter').text(lang.loading);

   });

-});
\ No newline at end of file
+});

diff --git a/mailcow/src/mailcow-dockerized/data/web/json_api.php b/mailcow/src/mailcow-dockerized/data/web/json_api.php
index 46d6e35..cdefb83 100644
--- a/mailcow/src/mailcow-dockerized/data/web/json_api.php
+++ b/mailcow/src/mailcow-dockerized/data/web/json_api.php
@@ -141,7 +141,7 @@
         // fido2-registration via POST

         case "fido2-registration":

           header('Content-Type: application/json');

-          if (isset($_SESSION["mailcow_cc_role"]) && ($_SESSION["mailcow_cc_role"] == "admin" || $_SESSION["mailcow_cc_role"] == "domainadmin")) {

+          if (isset($_SESSION["mailcow_cc_role"])) {

             $post = trim(file_get_contents('php://input'));

             if ($post) {

               $post = json_decode($post);

@@ -302,11 +302,23 @@
           if ($obj_props['superadmin'] === 1) {

             $_SESSION["mailcow_cc_role"] = "admin";

           }

-          else {

+          elseif ($obj_props['superadmin'] === 0) {

             $_SESSION["mailcow_cc_role"] = "domainadmin";

           }

+          else {

+            $stmt = $pdo->prepare("SELECT `username` FROM `mailbox` WHERE `username` = :username");

+            $stmt->execute(array(':username' => $process_fido2['username']));

+            $row = $stmt->fetch(PDO::FETCH_ASSOC);

+            if ($row['username'] == $process_fido2['username']) {

+              $_SESSION["mailcow_cc_role"] = "user";

+            }

+          }

+          if (empty($_SESSION["mailcow_cc_role"])) {

+            session_unset();

+            session_destroy();

+            exit;

+          }

           $_SESSION["mailcow_cc_username"] = $process_fido2['username'];

-          $_SESSION['mailcow_cc_last_login'] = last_login($process_fido2['username']);

           $_SESSION["fido2_cid"] = $process_fido2['cid'];

           unset($_SESSION["challenge"]);

           $_SESSION['return'][] =  array(

@@ -319,8 +331,14 @@
       }

     break;

     case "get":

-      function process_get_return($data) {

-        echo (!isset($data) || empty($data)) ? '{}' : json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

+      function process_get_return($data, $object = true) {

+        if ($object === true) {

+          $ret_str = '{}';

+        }

+        else {

+          $ret_str = '[]';

+        }

+        echo (!isset($data) || empty($data)) ? $ret_str : json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

       }

       // only allow GET requests to GET API endpoints

       if ($_SERVER['REQUEST_METHOD'] != 'GET') {

@@ -334,17 +352,15 @@
       switch ($category) {

         case "u2f-registration":

           header('Content-Type: application/javascript');

-          if (isset($_SESSION["mailcow_cc_role"]) &&

-            ($_SESSION["mailcow_cc_role"] == "admin" || $_SESSION["mailcow_cc_role"] == "domainadmin") &&

-            $_SESSION["mailcow_cc_username"] == $object) {

-              list($req, $sigs) = $u2f->getRegisterData(get_u2f_registrations($object));

-              $_SESSION['regReq'] = json_encode($req);

-              $_SESSION['regSigs'] = json_encode($sigs);

-              echo 'var req = ' . json_encode($req) . ';';

-              echo 'var registeredKeys = ' . json_encode($sigs) . ';';

-              echo 'var appId = req.appId;';

-              echo 'var registerRequests = [{version: req.version, challenge: req.challenge}];';

-              return;

+          if (isset($_SESSION["mailcow_cc_role"]) && $_SESSION["mailcow_cc_username"] == $object) {

+            list($req, $sigs) = $u2f->getRegisterData(get_u2f_registrations($object));

+            $_SESSION['regReq'] = json_encode($req);

+            $_SESSION['regSigs'] = json_encode($sigs);

+            echo 'var req = ' . json_encode($req) . ';';

+            echo 'var registeredKeys = ' . json_encode($sigs) . ';';

+            echo 'var appId = req.appId;';

+            echo 'var registerRequests = [{version: req.version, challenge: req.challenge}];';

+            return;

           }

           else {

             return;

@@ -353,9 +369,7 @@
         // fido2-registration via GET

         case "fido2-registration":

           header('Content-Type: application/json');

-          if (isset($_SESSION["mailcow_cc_role"]) &&

-            ($_SESSION["mailcow_cc_role"] == "admin" || $_SESSION["mailcow_cc_role"] == "domainadmin") &&

-            $_SESSION["mailcow_cc_username"] == $object) {

+          if (isset($_SESSION["mailcow_cc_role"])) {

               // Exclude existing CredentialIds, if any

               $excludeCredentialIds = fido2(array("action" => "get_user_cids"));

               $createArgs = $WebAuthn->getCreateArgs($_SESSION["mailcow_cc_username"], $_SESSION["mailcow_cc_username"], $_SESSION["mailcow_cc_username"], 30, true, $GLOBALS['FIDO2_UV_FLAG_REGISTER'], $excludeCredentialIds);

@@ -446,6 +460,20 @@
             }

           break;

 

+          case "passwordpolicy":

+            switch ($object) {

+              case "html":

+                $password_complexity_rules = password_complexity('html');

+                if ($password_complexity_rules !== false) {

+                  process_get_return($password_complexity_rules);

+                }

+                else {

+                  echo '{}';

+                }

+              break;

+            }

+          break;

+

           case "app-passwd":

             switch ($object) {

               case "all":

@@ -620,6 +648,27 @@
             }

           break;

 

+          case "last-login":

+            if ($object) {

+              // extra == days

+              if (isset($extra) && intval($extra) >= 1) {

+                $data = last_login('get', $object, intval($extra));

+              }

+              else {

+                $data = last_login('get', $object);

+              }

+              process_get_return($data);

+            }

+          break;

+

+          // Todo: move to delete

+          case "reset-last-login":

+            if ($object) {

+              $data = last_login('reset', $object);

+              process_get_return($data);

+            }

+          break;

+

           case "transport":

             switch ($object) {

               case "all":

@@ -780,6 +829,17 @@
                 }

                 echo (isset($logs) && !empty($logs)) ? json_encode($logs, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) : '{}';

               break;

+              case "sasl":

+                // 0 is first record, so empty is fine

+                if (isset($extra)) {

+                  $extra = preg_replace('/[^\d\-]/i', '', $extra);

+                  $logs = get_logs('sasl', $extra);

+                }

+                else {

+                  $logs = get_logs('sasl');

+                }

+                echo (isset($logs) && !empty($logs)) ? json_encode($logs, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) : '{}';

+              break;

               case "watchdog":

                 // 0 is first record, so empty is fine

                 if (isset($extra)) {

@@ -841,18 +901,19 @@
           case "mailbox":

             switch ($object) {

               case "all":

+              case "reduced":

                 if (empty($extra)) {

                   $domains = mailbox('get', 'domains');

                 }

                 else {

-                  $domains = array($extra);

+                  $domains = explode(',', $extra);

                 }

                 if (!empty($domains)) {

                   foreach ($domains as $domain) {

                     $mailboxes = mailbox('get', 'mailboxes', $domain);

                     if (!empty($mailboxes)) {

                       foreach ($mailboxes as $mailbox) {

-                        if ($details = mailbox('get', 'mailbox_details', $mailbox)) {

+                        if ($details = mailbox('get', 'mailbox_details', $mailbox, $object)) {

                           $data[] = $details;

                         }

                         else {

@@ -1154,10 +1215,10 @@
             // "all" will not print details

             switch ($object) {

               case "all":

-                process_get_return(quarantine('get'));

+                process_get_return(quarantine('get'), false);

               break;

               default:

-                process_get_return(quarantine('details', $object));

+                process_get_return(quarantine('details', $object), false);

               break;

             }

           break;

@@ -1189,7 +1250,7 @@
                   $domains = array_merge(mailbox('get', 'domains'), mailbox('get', 'alias_domains'));

                 }

                 else {

-                  $domains = array($extra);

+                  $domains = explode(',', $extra);

                 }

                 if (!empty($domains)) {

                   foreach ($domains as $domain) {

@@ -1437,7 +1498,6 @@
           process_delete_return(dkim('delete', array('domains' => $items)));

         break;

         case "domain":

-          file_put_contents('/tmp/dssaa', $items);

           process_delete_return(mailbox('delete', 'domain', array('domain' => $items)));

         break;

         case "alias-domain":

@@ -1560,6 +1620,9 @@
         case "app_links":

           process_edit_return(customize('edit', 'app_links', $attr));

         break;

+        case "passwordpolicy":

+          process_edit_return(password_complexity('edit', $attr));

+        break;

         case "relayhost":

           process_edit_return(relayhost('edit', array_merge(array('id' => $items), $attr)));

         break;

@@ -1590,6 +1653,9 @@
         case "quota_notification":

           process_edit_return(quota_notification('edit', $attr));

         break;

+        case "quota_notification_bcc":

+          process_edit_return(quota_notification_bcc('edit', $attr));

+        break;

         case "mailq":

           process_edit_return(mailq('edit', array_merge(array('qid' => $items), $attr)));

         break;

diff --git a/mailcow/src/mailcow-dockerized/data/web/lang/lang.cs.json b/mailcow/src/mailcow-dockerized/data/web/lang/lang.cs.json
index dccdc22..5299f10 100644
--- a/mailcow/src/mailcow-dockerized/data/web/lang/lang.cs.json
+++ b/mailcow/src/mailcow-dockerized/data/web/lang/lang.cs.json
@@ -4,17 +4,23 @@
         "app_passwds": "Hesla aplikací",
         "bcc_maps": "BCC mapy",
         "delimiter_action": "Zacházení s označkovanou poštou",
+        "domain_desc": "Změnit popis domény",
+        "domain_relayhost": "Změnit předávající server pro doménu",
         "eas_reset": "Resetování EAS zařízení",
         "extend_sender_acl": "Rozšiřování ACL odesílatele o externí adresy",
         "filters": "Filtry",
         "login_as": "Přihlásit se jako uživatel",
+        "mailbox_relayhost": "Změnit předávající server pro schránku",
         "prohibited": "Zakázáno z důvodu ACL",
+        "protocol_access": "Upravit povolené protokoly",
         "pushover": "Pushover",
         "quarantine": "Karanténa",
         "quarantine_attachments": "Přílohy v karanténě",
+        "quarantine_category": "Změnit kategorii oznámení karantény",
         "quarantine_notification": "Upozornění z karantény",
         "ratelimit": "Omezení provozu",
         "recipient_maps": "Mapy příjemců",
+        "smtp_ip_access": "Spravovat povolené hostitele pro SMTP",
         "sogo_access": "Správa přístupu do SOGo",
         "sogo_profile_reset": "Resetování profilu SOGo",
         "spam_alias": "Dočasné aliasy",
@@ -38,12 +44,13 @@
         "app_password": "Přidat heslo aplikace",
         "automap": "Pokusit se automaticky mapovat složky (\"Sent items\", \"Sent\" => \"Sent\" atd.)",
         "backup_mx_options": "Možnosti záložního MX",
+        "bcc_dest_format": "Cíl kopie musí být jedna platná email adresa. Pokud potřebujete posílat kopie na více adres, vytvořte Alias a použijte jej zde.",
         "comment_info": "Soukromý komentář se nezobrazí uživateli; veřejný komentář se zobrazí jako nápověda při zastavení se kurzorem v přehledu uživatelů",
         "custom_params": "Vlastní parametry",
         "custom_params_hint": "Správně: --param=xy, špatně: --param xy",
-        "delete1": "Odstranit ze zdroje po dokončení",
-        "delete2": "Smazat zprávy v cíli, které nejsou ve zdroji",
-        "delete2duplicates": "Odstranit duplicity v cílovém místě",
+        "delete1": "Odstranit ze zdrojové schránky, po dokončení přenosu",
+        "delete2": "Odstranit zprávy v cílové schránce, pokud nejsou ve zdrojové",
+        "delete2duplicates": "Odstranit duplicity v cílové schránce",
         "description": "Popis",
         "destination": "Cíl",
         "disable_login": "Zakázat přihlášení (ale stále přijímat poštu)",
@@ -88,14 +95,14 @@
         "sieve_desc": "Krátký popis",
         "sieve_type": "Typ filtru",
         "skipcrossduplicates": "Přeskočit duplicitní zprávy (\"první přijde, první mele\")",
-        "subscribeall": "Odebírat všechny složky",
+        "subscribeall": "Synchronizovat všechny složky",
         "syncjob": "Přidat synchronizační úlohu",
         "syncjob_hint": "Upozornění: Heslo bude uloženo jako prostý text!",
         "target_address": "Cílové adresy",
         "target_address_info": "<small>Kompletní email adresa/y (oddělené čárkami).</small>",
         "target_domain": "Cílová doména",
-        "timeout1": "Časový limit pro připojení ke vzdálenému hostiteli",
-        "timeout2": "Časový limit pro připojení k lokálnímu hostiteli",
+        "timeout1": "Časový limit pro připojení ke vzdálenému serveru",
+        "timeout2": "Časový limit pro připojení k lokálnímu serveru",
         "username": "Uživatelské jméno",
         "validate": "Ověřit",
         "validation_success": "Úspěšně ověřeno"
@@ -110,7 +117,7 @@
         "add": "Přidat",
         "add_admin": "Přidat správce",
         "add_domain_admin": "Přidat správce domény",
-        "add_forwarding_host": "Přidat předávajícího hostitele",
+        "add_forwarding_host": "Přidat předávající server",
         "add_relayhost": "Přidat transport podle odesílatele",
         "add_relayhost_hint": "Pozor: přihlašovací údaje se ukládají jako prostý text.",
         "add_row": "Přidat řádek",
@@ -121,20 +128,25 @@
         "admin": "Správce",
         "admin_details": "Upravit správce",
         "admin_domains": "Přidělené domény",
+        "admins": "Administrátoři",
+        "admins_ldap": "LDAP Administrátoři",
         "advanced_settings": "Pokročilá nastavení",
         "api_allow_from": "Povolit přístup k API z těchto IP adres (oddělte čárkou nebo řádkem)",
-        "api_info": "API je stále ve vývoji.",
+        "api_info": "Dokumentaci naleznete na <a href=\"/api\">/api</a>",
         "api_key": "API klíč",
+        "api_read_only": "Přístup pouze pro čtení",
+        "api_read_write": "Přístup i se zápisem",
         "api_skip_ip_check": "Vynechat ověření IP adresy pro API",
         "app_links": "Odkazy na aplikace",
         "app_name": "Název aplikace",
-        "apps_name": "Hlavička aplikací (\"mailcow Apps\")",
+        "apps_name": "\"mailcow Apps\" název",
         "arrival_time": "Čas zařazení do fronty (čas na serveru)",
         "authed_user": "Přihlášený uživatel",
         "ays": "Opravdu chcete pokračovat?",
         "ban_list_info": "Seznam blokovaných IP adres je zobrazen níže: <b>síť (zbývající čas blokování) - [akce]</b>.<br />IP adresy zařazené pro odblokování budou z aktivního seznamu odebrány během několika sekund.<br />Červeně označené položky jsou pernamentní bloky z blacklistu.",
         "change_logo": "Změnit logo",
         "configuration": "Nastavení",
+        "convert_html_to_text": "Převést HTML do prostého textu",
         "credentials_transport_warning": "<b>Upozornění</b>: Přidání položky do transportní mapy aktualizuje také přihlašovací údaje všech záznamů s odpovídajícím skokem.",
         "customer_id": "ID zákazníka",
         "customize": "Přizpůsobení",
@@ -150,10 +162,12 @@
         "dkim_key_unused": "Klíč nepoužitý",
         "dkim_key_valid": "Klíč je platný",
         "dkim_keys": "ARC/DKIM klíče",
+        "dkim_overwrite_key": "Přepsat existující DKIM klíč",
         "dkim_private_key": "Soukromý klíč",
-        "dkim_to": "Komu",
-        "dkim_to_title": "Cílová doména/y - bude přepsáno",
+        "dkim_to": "Do",
+        "dkim_to_title": "Cílová doména/y - údaje budou přepsány",
         "domain": "Doména",
+        "domain_admin": "Administrátor domény",
         "domain_admins": "Správci domén",
         "domain_s": "Doména/y",
         "duplicate": "Duplikovat",
@@ -163,18 +177,20 @@
         "excludes": "Vyloučit tyto příjemce",
         "f2b_ban_time": "Doba blokování (s)",
         "f2b_blacklist": "Sítě/hostitelé na blacklistu",
+        "f2b_filter": "Regex filtre",
         "f2b_list_info": "Síť nebo hostitelé na blacklistu mají vždy větší váhu než položky na whitelistu. Blacklist se sestavuje vždy při startu kontejneru.",
         "f2b_max_attempts": "Max. pokusů",
         "f2b_netban_ipv4": "Rozsah IPv4 podsítě k zablokování (8-32)",
         "f2b_netban_ipv6": "Rozsah IPv6 podsítě k zablokování (8-128)",
-        "f2b_parameters": "Nastavení Fail2ban",
+        "f2b_parameters": "Parametry automatického firewallu",
+        "f2b_regex_info": "Záznamy které se berou v úvahu: SOGo, Postfix, Dovecot, PHP-FPM.",
         "f2b_retry_window": "Časový horizont pro maximum pokusů (s)",
         "f2b_whitelist": "Sítě/hostitelé na whitelistu",
         "filter_table": "Tabulka filtrů",
         "flush_queue": "Vyprázdnit frontu (opětovně doručit)",
-        "forwarding_hosts": "Předávající hostitelé",
-        "forwarding_hosts_add_hint": "Lze zadat IPv4/IPv6 adresy, sítě ve formátu CIDR, názvy hostitelů (budou převedeny na IP adresy) nebo názvy domén (budou převedeny na IP pomocí SPF záznamů, příp. MX záznamů).",
-        "forwarding_hosts_hint": "Příchozí zprávy od zde uvedených hostitelů jsou bezpodmínečně přijaty. U těchto hostitelů se nekontroluje DNSBL a nepoužije greylisting. Spam od těchto hostitelů se nikdy neodmítá, ale občas může skončit ve složce se spamem. Nejčastěji se zde uvádějí poštovní servery, jež předávají příchozí e-maily na tento poštovní server.",
+        "forwarding_hosts": "Předávající servery",
+        "forwarding_hosts_add_hint": "Lze zadat IPv4/IPv6 adresy, sítě ve formátu CIDR, názvy serverů (budou převedeny na IP adresy) nebo názvy domén (budou převedeny na IP pomocí SPF záznamů, příp. MX záznamů).",
+        "forwarding_hosts_hint": "Příchozí zprávy od zde uvedených serverů jsou bezpodmínečně přijaty. U těchto serverů se nekontroluje DNSBL a nepoužije greylisting. Spam od těchto serverů se nikdy neodmítá, ale občas může skončit ve složce se spamem. Nejčastěji se zde uvádějí poštovní servery, jež předávají příchozí e-maily na tento poštovní server.",
         "from": "Od",
         "generate": "generovat",
         "guid": "GUID - unikátní ID licence",
@@ -182,6 +198,7 @@
         "hash_remove_info": "Odebrání hashe omezení provozu (pokud stále existuje) zcela vyresetuje jeho počítadlo.<br>\r\n  Každý hash je označen jinou barvou.",
         "help_text": "Přepsat text nápovědy pod přihlašovacím formulářem (HTML povoleno)",
         "host": "Hostitel",
+        "html": "HTML",
         "import": "Importovat",
         "import_private_key": "Importovat soukromý klíč",
         "in_use_by": "Používáno",
@@ -189,10 +206,12 @@
         "include_exclude": "Zahrnout/Vyloučit",
         "include_exclude_info": "Ve výchozím nastavení (bez výběru), jsou adresovány <b>všechny poštovní schránky</b>",
         "includes": "Zahrnout tyto přijemce",
+        "is_mx_based": "Na základě MX",
         "last_applied": "Naposledy použité",
         "license_info": "Licence není povinná, pomůžete však dalšímu vývoji.<br><a href=\"https://www.servercow.de/mailcow?lang=en#sal\" target=\"_blank\" alt=\"SAL order\">Registrujte si své GUID</a>, nebo si <a href=\"https://www.servercow.de/mailcow?lang=en#support\" target=\"_blank\" alt=\"Support order\">zaplaťte podporu pro svou instalaci mailcow.</a>",
         "link": "Odkaz",
         "loading": "Prosím čekejte...",
+        "login_time": "Čas přihlášení",
         "logo_info": "Obrázek bude zmenšen na výšku 40 pixelů pro horní navigační lištu a na max. šířku 250 pixelů pro úvodní stránku.",
         "lookup_mx": "Ověřit cíl proti MX záznamu (.outlook.com bude směrovat všechnu poštu pro MX *.outlook.com přes tento uzel)",
         "main_name": "Název webu (\"mailcow UI\")",
@@ -204,13 +223,23 @@
         "no_active_bans": "Žádná aktivní blokování",
         "no_new_rows": "Žádné další řádky nejsou k dispozici",
         "no_record": "Žádný záznam",
+        "oauth2_add_client": "Přidat OAuth2 klienta",
+        "oauth2_apps": "OAuth2 Aplikace",
         "oauth2_client_id": "ID klienta",
         "oauth2_client_secret": "Tajný klíč klienta",
         "oauth2_info": "Implementace OAuth2 podporuje přidělení typu \"Authorization Code\" a vydává tokeny k obnovení.<br>\r\nServer vydává tokeny k obnovení automaticky, jakmile byl předchozí token použit.<br><br>\r\n→ Výchozím rozsahem je <i>profil</i>. Ověření přes OAuth2 mohou využít jen uživatelé poštovních schránek. Je-li rozsah vynechán, použije se <i>profil</i>.<br>\r\n→ Klient je povinen uvést parametr <i>state</i> spolu s požadavkem na ověření.<br><br>\r\nCesty API pro požadavky na ověření OAuth2: <br>\r\n<ul>\r\n  <li>Koncový bod pro ověření: <code>/oauth/authorize</code></li>\r\n  <li>Koncový bod pro token: <code>/oauth/token</code></li>\r\n  <li>Stránka zdroje:  <code>/oauth/profile</code></li>\r\n</ul>\r\nDojde-li ke znovuvytvoření tajného klíče klienta, nedojde ke zneplatnění stávajícíh ověřovacích kódů, nebude však už možné obnovit jejich token.<br><br>\r\nOdvoláním klientského tokenů okamžitě ukončíte všechny aktivní relace a klienti se budou muset znovu přihlásit.",
         "oauth2_redirect_uri": "URI přesměrování",
         "oauth2_renew_secret": "Vytvořit nový tajný klíč",
         "oauth2_revoke_tokens": "Odvolat všechny klientské tokeny",
+        "optional": "volitelné",
         "password": "Heslo",
+        "password_length": "Délka hesla",
+        "password_policy": "Politika hesel",
+        "password_policy_chars": "Musí obsahovat nejméně jedno písmeno",
+        "password_policy_length": "Minimální délka hesla je %d",
+        "password_policy_lowerupper": "Musí obsahovat malé a velké písmeno",
+        "password_policy_numbers": "Musí obsahovat nejméně jedno číslo",
+        "password_policy_special_chars": "Musí obsahovat speciální znak",
         "password_repeat": "Potvrzení nového hesla (opakujte)",
         "priority": "Priorita",
         "private_key": "Soukromý klíč",
@@ -218,6 +247,7 @@
         "quarantine_bcc": "Odeslat kopii (BCC) všech upozornění tomuto adresátu:<br><small>Jinak nechtte nevyplněno. <b>Nepodepsáno, nekontrolováno - volte raději jen místní adresáty.</b></small>",
         "quarantine_exclude_domains": "Vyloučené domény a doménové aliasy",
         "quarantine_max_age": "Maximální stáří ve dnech<br><small>Hodnota musí být rovna nebo větší než 1 den.</small>",
+        "quarantine_max_score": "Neposílat notifikace pokud je spam skóre větší než hodnota:<br><small>Výchozí je 9999.0</small>",
         "quarantine_max_size": "Maximální velikost v MiB (větší prvky budou smazány)<br />0 <b>neznamená</b> neomezeno.",
         "quarantine_notification_html": "Šablona upozornění:<br><small>Ponechte prázdné, aby se obnovila výchozí šablona.</small>",
         "quarantine_notification_sender": "Odesílatel upozornění",
@@ -231,9 +261,9 @@
         "queue_deliver_mail": "Doručit",
         "queue_hold_mail": "Zadržet",
         "queue_manager": "Správce fronty",
+        "queue_show_message": "Zobrazit zprávu",
         "queue_unban": "odblokovat",
         "queue_unhold_mail": "Propustit",
-        "queue_show_message": "Zobrazit zprávu",
         "quota_notification_html": "Šablona upozornění:<br><small>Ponechte prázdné, aby se obnovila výchozí šablona.</small>",
         "quota_notification_sender": "Odesílatel upozornění",
         "quota_notification_subject": "Předmět upozornění",
@@ -249,6 +279,7 @@
         "regen_api_key": "Generovat API klíč",
         "regex_maps": "Mapy regulárních výrazů",
         "relay_from": "Adresa \"Od:\"",
+        "relay_rcpt": "\"Komu:\" adresa",
         "relay_run": "Provést test",
         "relayhosts": "Transporty podle odesílatele",
         "relayhosts_hint": "Zde definujte transporty podle odesílatele, jež pak můžete použít v nastavení domény.<br>\r\nProtokol transportu je vždy \"smtp:\". Bere se v potaz uživatelské nastavení odchozího TLS.",
@@ -266,6 +297,7 @@
         "rsettings_preset_1": "Pro přihlášené uživatele vypnout vše kromě DKIM a omezení provozu",
         "rsettings_preset_2": "Postmasteři chtějí dostávat spam",
         "rsettings_preset_3": "Povolit jen určité odesílatele pro schránku (např. jen interní schránka)",
+        "rsettings_preset_4": "Deaktivujte Rspamd pro doménu",
         "rspamd-com_settings": "<a href=\"https://rspamd.com/doc/configuration/settings.html#settings-structure\" target=\"_blank\">Rspamd dokumentace</a>\r\n  - Název nastavení bude automaticky vygenerován, viz níže uvedené předvolby.",
         "rspamd_global_filters": "Mapa globálních filtrů",
         "rspamd_global_filters_agree": "Budu opatrný!",
@@ -277,10 +309,12 @@
         "search_domain_da": "Hledat domény",
         "send": "Odeslat",
         "sender": "Odesílatel",
+        "service": "Služba",
         "service_id": "ID podpory",
         "source": "Zdroj",
         "spamfilter": "Filtr spamu",
         "subject": "Předmět",
+        "success": "Úspěch",
         "sys_mails": "Systémové zprávy",
         "text": "Text",
         "time": "Čas",
@@ -289,6 +323,7 @@
         "to_top": "Zpět na začátek",
         "transport_dest_format": "Formát: example.org, .example.org, *, box@example.org (vícero položek lze oddělit čárkou)",
         "transport_maps": "Transportní mapy",
+        "transport_test_rcpt_info": "&#8226; Na otestování odchozí pošty je možné použít null@hosted.mailcow.de jako adresáta",
         "transports_hint": "→ Položka transportní mapy <b>přebíjí</b> transportní mapu podle odesílatele</b>.<br>\r\n→ Uživatelské nastavení odchozího TLS se ignoruje a lze je výhradně vynutit mapováním TLS pravidel.<br>\r\n→ Protokol transportu je vždy \"smtp:\".<br>\r\n→ Adresy, jež odpovídají výrazu \"/localhost$/\", se vždy předají přes \"local:\", takže nejsou zahrnuty do definice cíle \"*\".<br>\r\n→ Pro stanovení přihlašovacích údajů dalšího skoku, např. \"[host]:25\", bude Postfix <b>vždy</b> hledat nejdříve \"host\" a teprve pak \"[host]:25\". Kvůli tomu nelze použít současně \"host\" a \"[host]:25\"",
         "ui_footer": "Pata stránka (HTML povoleno)",
         "ui_header_announcement": "Oznámení",
@@ -297,9 +332,9 @@
         "ui_header_announcement_help": "Oznámení se zobrazuje všem přihlášeným uživatelům a také na přihlašovací obrazovce.",
         "ui_header_announcement_select": "Druh oznámení",
         "ui_header_announcement_type": "Druh",
+        "ui_header_announcement_type_danger": "Velmi důležité",
         "ui_header_announcement_type_info": "Informace",
         "ui_header_announcement_type_warning": "Důležité",
-        "ui_header_announcement_type_danger": "Velmi důležité",
         "ui_texts": "Hlavička a texty UI",
         "unban_pending": "čeká na odblokování",
         "unchanged_if_empty": "Pokud se nemění, ponechte prázdné",
@@ -319,12 +354,13 @@
         "aliases_in_use": "Max. počet aliasů musí být větší nebo roven %d",
         "app_name_empty": "Název aplikace nemůže být prázdný",
         "app_passwd_id_invalid": "Neplatné heslo aplikace ID %s",
-        "bcc_empty": "BCC cíl nesmí být prázdný",
-        "bcc_exists": "BCC mapování %s již existuje pro typ %s",
-        "bcc_must_be_email": "BCC mapování %s není správná email adresa",
+        "bcc_empty": "Cíl kopie nesmí být prázdný",
+        "bcc_exists": "Skrytá kopie %s již existuje pro typ %s",
+        "bcc_must_be_email": "Cíl kopie %s není správná email adresa",
         "comment_too_long": "Moc dlouhý komentář, max. 160 znaků",
         "defquota_empty": "Výchozí kvóta schránky nesmí být 0.",
         "description_invalid": "Popis zdroje %s je neplatný",
+        "dkim_domain_or_sel_exists": "DKIM klíč pro \"%s\" existuje a nebude přepsán",
         "dkim_domain_or_sel_invalid": "DKIM nebo selektor doménu je neplatný: %s",
         "domain_cannot_match_hostname": "Doména a hostname nesmí být stejné",
         "domain_exists": "Doména %s již existuje",
@@ -334,6 +370,7 @@
         "domain_quota_m_in_use": "Kvóta domény musí být větší nebo rovna %s MiB",
         "extra_acl_invalid": "Externí adresa odesílatele \"%s\" je neplatná",
         "extra_acl_invalid_domain": "Externí adresa odesílatele \"%s\" má neplatnou doménu",
+        "fido2_verification_failed": "FIDO2 ověření selhalo: %s",
         "file_open_error": "Soubor nelze otevřít k zápisu",
         "filter_type": "Špatný typ filtru",
         "from_invalid": "Odesílatel nesmí být prázdný",
@@ -377,6 +414,7 @@
         "network_host_invalid": "Neplatná síť nebo hostitel: %s",
         "next_hop_interferes": "%s koliduje se skokem %s",
         "next_hop_interferes_any": "Existující skok koliduje s %s",
+        "nginx_reload_failed": "Nginx reload selhal: %s",
         "no_user_defined": "Žádný uživatel není definován",
         "object_exists": "Objekt %s již existuje",
         "object_is_not_numeric": "Hodnota %s není číslo",
@@ -394,6 +432,7 @@
         "redis_error": "Chyba Redis: %s",
         "relayhost_invalid": "Položky %s je neplatná",
         "release_send_failed": "Zprávu nelze propustit: %s",
+        "reset_f2b_regex": "Regex filtr se nepodařilo resetovat, zkuste to znovu nebo počkejte pár sekund a obnovte stránku.",
         "resource_invalid": "Název zdroje %s je neplatný",
         "rl_timeframe": "Nesprávný časový rámec omezení provozu",
         "rspamd_ui_pw_length": "Heslo pro Rspamd UI musí mít alespoň 6 znaků",
@@ -409,6 +448,7 @@
         "targetd_relay_domain": "Cílová doména %s je předávaná",
         "temp_error": "Dočasná chyba",
         "text_empty": "Text nesmí být prázdný",
+        "tfa_token_invalid": "Neplatný TFA token",
         "tls_policy_map_dest_invalid": "Cíl mapy pravidel je neplatný",
         "tls_policy_map_entry_exists": "Položka mapy TLS pravidel \"%s\" již existuje",
         "tls_policy_map_parameter_invalid": "Parametr pravidel TLS je neplatný",
@@ -427,29 +467,35 @@
         "chart_this_server": "Graf (tento server)",
         "containers_info": "Informace o kontejnerech",
         "disk_usage": "Využití disku",
+        "docs": "Dokumentace",
         "external_logs": "Externí logy",
         "history_all_servers": "Záznam (všechny servery)",
         "in_memory_logs": "Logy v paměti",
         "jvm_memory_solr": "Spotřeba paměti JVM",
+        "last_modified": "Naposledy změněn",
         "log_info": "<p><b>Logy v paměti</b> jsou shromažďovány v Redis seznamech a jsou oříznuty na LOG_LINES (%d) každou minutu, aby se nepřetěžoval server.\r\n  <br>Logy v paměti nemají být trvalé. Všechny aplikace, které logují do paměti, zároveň logují i do Docker služby podle nastavení logging driveru.\r\n  <br>Logy v paměti lze použít pro ladění drobných problémů s kontejnery.</p>\r\n  <p><b>Externí logy</b> jsou shromažďovány pomocí API dané aplikace.</p>\r\n  <p><b>Statické logy</b> jsou většinou logy činností, které nejsou zaznamenávány do Docker služby, ale přesto je dobré je schraňovat (výjimkou jsou logy API).</p>",
+        "login_time": "Čas",
         "logs": "Logy",
+        "online_users": "Uživatelů online",
         "restart_container": "Restartovat",
+        "service": "Služba",
+        "size": "Velikost",
         "solr_dead": "Solr se spouští, je vypnutý nebo spadl.",
-        "solr_docs": "Dokumentace",
-        "solr_last_modified": "Naposledy změněn",
-        "solr_size": "Velikost",
-        "solr_started_at": "Spuštěn",
         "solr_status": "Stav Solr",
-        "solr_uptime": "Doba běhu",
+        "started_at": "Spuštěn",
         "started_on": "Spuštěno",
         "static_logs": "Statické logy",
-        "system_containers": "Systém a kontejnery"
+        "success": "Úspěch",
+        "system_containers": "Systém a kontejnery",
+        "uptime": "Doba běhu",
+        "username": "Uživatelské meno"
     },
     "diagnostics": {
         "cname_from_a": "Hodnota odvozena z A/AAAA záznamu. Lze použít, pokud záznam ukazuje na správný zdroj.",
         "dns_records": "DNS záznamy",
         "dns_records_24hours": "Upozornění: Změnám v systému DNS může trvat až 24 hodin, než se zde správně zobrazí jejich aktuální stav. Můžete zde snadno zjistit, jak nastavit DNS záznamy a zda jsou všechny záznamy správně uloženy.",
         "dns_records_data": "Správný záznam",
+        "dns_records_docs": "Přečtěte si prosím <a target=\"_blank\" href=\"https://mailcow.github.io/mailcow-dockerized-docs/prerequisite-dns/\">dokumentaci</a>.",
         "dns_records_name": "Název",
         "dns_records_status": "Současný stav",
         "dns_records_type": "Typ",
@@ -457,19 +503,23 @@
     },
     "edit": {
         "active": "Aktivní",
+        "admin": "Upravit administrátora",
         "advanced_settings": "Pokročilá nastavení",
         "alias": "Upravit alias",
+        "allow_from_smtp": "Umožnit pouze těmto IP adresám používat <b>SMTP</b>",
+        "allow_from_smtp_info": "Nechte prázdné pro povolení všech odesílatelů.<br>IPv4/IPv6 adresy a sítě.",
+        "allowed_protocols": "Povolené protokoly",
         "app_name": "Název aplikace",
         "app_passwd": "Heslo aplikace",
         "automap": "Pokusit se automaticky mapovat složky (\"Sent items\", \"Sent\" => \"Sent\" atd.)",
         "backup_mx_options": "Možnosti záložního MX",
-        "bcc_dest_format": "BCC cíl musí být jedna platná email adresa.",
+        "bcc_dest_format": "Cíl kopie musí být jedna platná email adresa. Pokud potřebujete posílat kopie na více adres, vytvořte Alias a použijte jej zde.",
         "client_id": "ID klienta",
         "client_secret": "Tajný klíč klienta",
         "comment_info": "Soukromý komentář se nezobrazí uživateli; veřejný komentář se zobrazí jako nápověda při zastavení se kurzorem v přehledu uživatelů",
-        "delete1": "Odstranit ze zdroje po dokončení",
-        "delete2": "Smazat zprávy v cíli, které nejsou ve zdroji",
-        "delete2duplicates": "Odstranit duplicity v cílovém místě",
+        "delete1": "Odstranit ze zdrojové schránky, po dokončení přenosu",
+        "delete2": "Odstranit zprávy v cílové schránce, pokud nejsou ve zdrojové",
+        "delete2duplicates": "Odstranit duplicity v cílové schránce",
         "delete_ays": "Potvrďte odstranění.",
         "description": "Popis",
         "disable_login": "Zakázat přihlášení (ale stále přijímat poštu)",
@@ -493,8 +543,10 @@
         "hostname": "Jméno hostitele",
         "inactive": "Neaktivní",
         "kind": "Druh",
+        "lookup_mx": "Cíl je regulární výraz který se shoduje s MX záznamem (<code>.*google\\.com</code> směřuje veškerou poštu na MX které jsou cílem pro google.com přes tento skok)",
         "mailbox": "Úprava poštovní schránky",
         "mailbox_quota_def": "Výchozí kvóta schránky",
+        "mailbox_relayhost_info": "Aplikované jen na uživatelskou schránku a přímé aliasy, přepisuje předávající server domény.",
         "max_aliases": "Max. počet aliasů",
         "max_mailboxes": "Max. počet poštovních schránek",
         "max_quota": "Max. kvóta poštovní schránky (MiB)",
@@ -504,6 +556,7 @@
         "mins_interval": "Interval (min)",
         "multiple_bookings": "Vícenásobné rezervace",
         "nexthop": "Další skok",
+        "none_inherit": "Žádné / Podědit",
         "password": "Heslo",
         "password_repeat": "Potvrzení nového hesla (opakujte)",
         "previous": "Předchozí stránka",
@@ -519,6 +572,9 @@
         "pushover_vars": "Bez filtru odesílatelů se zpracují všechny příchozí zprávy.<br>Regulární výrazy i výslovné adresy lze zadat současně a budou zpracovány postupně, nezávisí na sobě.<br>Lze použít proměnné pro text a předmět upozornění (pozor na ochranu osobních údajů apod.)",
         "pushover_verify": "Ověřit přihlašovací údaje",
         "quota_mb": "Kvóta (MiB)",
+        "quota_warning_bcc": "Upozornění na kvótu BCC",
+        "quota_warning_bcc_info": "Upozornění budou poslány jako samostatné kopie následujícím příjemcům. Předmět bude doplněn o uživatelské jméno v závorkách, příklad: <code>Upozornění na kvótu (user@example.com)</code>.",
+        "ratelimit": "Omezení přenosu",
         "redirect_uri": "URL přesměrování/odvolání",
         "relay_all": "Předávání všech příjemců",
         "relay_all_info": "<small>Pokud se rozhodnete <b>nepředávat</b> všechny příjemce, musíte přidat prázdnou poštovní schránku pro každého příjemce, který se má předávat.</small>",
@@ -531,7 +587,7 @@
         "save": "Uložit změny",
         "scope": "Rozsah",
         "sender_acl": "Povolit odesílání jako",
-        "sender_acl_disabled": "↳ <span class=\"label label-danger\">Kontrola odesílatele vypnuta</span>",
+        "sender_acl_disabled": "<span class=\"label label-danger\">Kontrola odesílatele vypnuta</span>",
         "sender_acl_info": "Má-li uživatel schránky A dovoleno odesílat jako uživatel schránky B, nezobrazuje se adresa odesílatele B v seznamu \"Od\" v SOGo automaticky.<br>\r\n  Uživatel schránky A musí nejdříve v SOGo vytvořit pověření, jež umožní uživateli B vybrat svou adresu jako odesílatele. Tento mechanismus neplatí pro aliasy.",
         "sieve_desc": "Krátký popis",
         "sieve_type": "Typ filtru",
@@ -541,27 +597,44 @@
         "sogo_visible": "Alias dostupný v SOGo",
         "sogo_visible_info": "Tato volba určuje objekty, jež lze zobrazit v SOGo (sdílené nebo nesdílené aliasy, jež ukazuje alespoň na jednu schránku).",
         "spam_alias": "Vytvořit nebo změnit dočasné aliasy",
+        "spam_filter": "Spam filtr",
         "spam_policy": "Přidat nebo odebrat položky whitelistu/blacklistu",
         "spam_score": "Nastavte vlastní skóre spamu",
         "subfolder2": "Synchronizace do podsložky v cílovém umístění<br><small>(prázdné = nepoužívat podsložku)</small>",
         "syncjob": "Upravit synchronizační úlohu",
         "target_address": "Cílová adresa/y<br /> <small>(oddělte čárkou)</small>",
         "target_domain": "Cílová doména",
-        "timeout1": "Časový limit pro připojení ke vzdálenému hostiteli",
-        "timeout2": "Časový limit pro připojení k lokálnímu hostiteli",
+        "timeout1": "Časový limit pro připojení ke vzdálenému serveru",
+        "timeout2": "Časový limit pro připojení k lokálnímu serveru",
         "title": "Úprava objektu",
         "unchanged_if_empty": "Pokud se nemění, ponechte prázdné",
         "username": "Uživatelské jméno",
         "validate_save": "Ověřit a uložit"
     },
+    "fido2": {
+        "confirm": "Potvrdit",
+        "fido2_auth": "Přihlásit se přes FIDO2",
+        "fido2_success": "Zařízení úspěšně zaregistrované",
+        "fido2_validation_failed": "Ověření selhalo",
+        "fn": "Uživatelsky přívětivý název",
+        "known_ids": "Známe ID",
+        "none": "Vypnuto",
+        "register_status": "Stav registrace",
+        "rename": "Přejmenovat",
+        "set_fido2": "Registrovat FIDO2 zařízení",
+        "set_fn": "Nastavi uživatelsky přívětivý název",
+        "start_fido2_validation": "Spustit FIDO2 ověření"
+    },
     "footer": {
         "cancel": "Zrušit",
         "confirm_delete": "Potvdit smazání",
         "delete_now": "Smazat",
         "delete_these_items": "Prosím potvrďte změny objektu id:",
+        "hibp_check": "Ověřit heslo v databázi hacknutých hesel haveibeenpwned.com",
         "hibp_nok": "Nalezeno! Toto je potenciálně nebezpečné heslo!",
         "hibp_ok": "Nebyla nalezena žádná shoda.",
         "loading": "Prosím čekejte...",
+        "nothing_selected": "Není nic vybráno",
         "restart_container": "Restartovat kontejner",
         "restart_container_info": "<b>Důležité:</b> Šetrný restart může chvíli trvat, prosím čekejte...",
         "restart_now": "Restartovat nyní",
@@ -585,8 +658,10 @@
     },
     "login": {
         "delayed": "Přihlášení zpožděno o %s sekund.",
+        "fido2_webauthn": "FIDO2/WebAuthn",
         "login": "Přihlásit",
         "mobileconfig_info": "Ke stažení profilového souboru se přihlaste jako uživatel schránky.",
+        "other_logins": "Přihlášení klíčem",
         "password": "Heslo",
         "username": "Uživatelské jméno"
     },
@@ -596,7 +671,8 @@
         "active": "Aktivní",
         "add": "Přidat",
         "add_alias": "Přidat alias",
-        "add_bcc_entry": "Přidat BCC mapu",
+        "add_alias_expand": "Rozšířit alias o alias domény",
+        "add_bcc_entry": "Přidat skrytou kopii",
         "add_domain": "Přidat doménu",
         "add_domain_alias": "Přidat doménový alias",
         "add_domain_record_first": "Prosím nejdříve vytvořte doménu",
@@ -610,26 +686,31 @@
         "alias_domain_alias_hint": "Aliasy <b>neplatí</b> automaticky pro doménové aliasy. Alias <code>muj-alias@domena</code> <b>neplatí</b> pro <code>muj-alias@domena2</code> (kde \"domena2\" je imaginární doménový alias pro \"domena\").<br>K přesměrování pošty na externí schránku použijte SIEVE filtr (viz záložka \"Filtry\" nebo SOGo -> Forwarder).",
         "alias_domain_backupmx": "Doménový alias není aktivní pro předávanou doménu",
         "aliases": "Aliasy",
+        "all_domains": "Všechny domény",
+        "allow_from_smtp": "Umožnit pouze těmto IP adresám používat <b>SMTP</b>",
+        "allow_from_smtp_info": "Nechte prázdné pro povolení všech odesílatelů.<br>IPv4/IPv6 adresy a sítě.",
+        "allowed_protocols": "Povolené protokoly",
         "backup_mx": "Záložní MX",
         "bcc": "BCC",
-        "bcc_destination": "BCC cíl",
-        "bcc_destinations": "BCC cíl",
-        "bcc_info": "Mapa BCC se používá pro tiché předávání kopií všech zpráv na jinou adresu. Mapa příjemců se použije, pokud je místní cíl příjemcem zprávy.<br/>\r\n  Mapa odesílatelů podléhá obdobnému principu. Místní cíl nebude informován o neúspěšném doručení.",
-        "bcc_local_dest": "Místní cíl",
-        "bcc_map": "BCC mapování",
-        "bcc_map_type": "Typ BCC",
-        "bcc_maps": "BCC mapy",
-        "bcc_rcpt_map": "Mapa příjemců",
-        "bcc_sender_map": "Mapa odesílatelů",
-        "bcc_to_rcpt": "Přepnout na mapu příjemců",
-        "bcc_to_sender": "Přepnout na mapu odesílatelů",
-        "bcc_type": "Typ BCC",
+        "bcc_destination": "Cíl kopie",
+        "bcc_destinations": "Cíl kopií",
+        "bcc_info": "Skryté kopie (Mapa BCC) se používá pro tiché předávání kopií všech zpráv na jinou adresu. Při použití skryté kopie typu <i>Přijatý e-mail</i> budou přeposlány všechny maily směřující na dotyčnou adresu nebo doménu.\nU typu <i>Odeslaný e-mail</i> budou přeposlány všechny maily odeslané z dotyčné adresy nebo domény.\nPokud selže přeposlání na cílovou adresu, tak odesílatel o tom nebude informován.",
+        "bcc_local_dest": "Týká se",
+        "bcc_map": "Skrytá kopie",
+        "bcc_map_type": "Typ skryté kopie",
+        "bcc_maps": "Skryté kopie",
+        "bcc_rcpt_map": "Přijatý e-mail",
+        "bcc_sender_map": "Odeslaný e-mail",
+        "bcc_to_rcpt": "Přepnout typ na Přijatý e-mail",
+        "bcc_to_sender": "Přepnout typ na Odeslaný e-mail",
+        "bcc_type": "Typ skryté kopie",
         "booking_0": "Vždy volno",
         "booking_0_short": "Vždy volno",
         "booking_custom": "Omezeno na pevný počet rezervací",
         "booking_custom_short": "Pevný limit",
         "booking_lt0": "Neomezeno, ale po rezervaci se ukazuje jako obsazené",
         "booking_lt0_short": "Volný limit",
+        "catch_all": "Doménový koš",
         "daily": "Každý den",
         "deactivate": "Vypnout",
         "description": "Popis",
@@ -644,18 +725,23 @@
         "empty": "Žádné výsledky",
         "enable_x": "Zapnout",
         "excludes": "Vyloučené",
-        "filter_table": "Tabulka filtrů",
+        "filter_table": "Filtrovat tabulku",
         "filters": "Filtry",
         "fname": "Celé jméno",
+        "goto_ham": "Učit se jako <b>ham</b>",
+        "goto_spam": "Učit se jako <b>spam</b>",
         "hourly": "Každou hodinu",
         "in_use": "Obsazeno (%)",
         "inactive": "Neaktivní",
         "insert_preset": "Vložit ukázkovou položku \"%s\"",
         "kind": "Druh",
         "last_mail_login": "Poslední přihlášení",
+        "last_pw_change": "Naposledy změněno heslo",
         "last_run": "Naposledy spuštěno",
-        "last_run_reset": "Plánovat další",
+        "last_run_reset": "Znovu naplánovat",
         "mailbox": "Poštovní schránka",
+        "mailbox_defaults": "Výchozí nastavení",
+        "mailbox_defaults_info": "Definuje výchozí nastavení pro nové schránky",
         "mailbox_defquota": "Výchozí velikost schránky",
         "mailbox_quota": "Max. velikost schránky",
         "mailboxes": "Poštovní schránky",
@@ -666,11 +752,17 @@
         "no": "&#10005;",
         "no_record": "Žádný záznam pro objekt %s",
         "no_record_single": "Žádný záznam",
+        "open_logs": "Otevřít záznam",
         "owner": "Vlastník",
         "private_comment": "Soukromý komentář",
         "public_comment": "Veřejný komentář",
+        "q_add_header": "Složka nevyžádaná pošta",
+        "q_all": "Všechny kategorie",
+        "q_reject": "Odmítnuta",
+        "quarantine_category": "Kategorie oznámení karantény",
         "quarantine_notification": "Upozornění z karantény",
         "quick_actions": "Akce",
+        "recipient": "Přijatý e-mail",
         "recipient_map": "Mapa příjemce",
         "recipient_map_info": "Mapy příjemců slouží k nahrazení cílové adresy zprávy před doručením.",
         "recipient_map_new": "Nový přijemce",
@@ -681,6 +773,7 @@
         "remove": "Smazat",
         "resources": "Zdroje",
         "running": "Běží",
+        "sender": "Odeslaný e-mail",
         "set_postfilter": "Označit jako post-filtr)",
         "set_prefilter": "Označit jako pre-filtr",
         "sieve_info": "Můžete uložit více filtrů pro každého uživatele, ale současně může být aktivní pouze jeden prefilter a jeden postfilter.<br>\r\nKaždý filtr bude proveden v daném pořadí. Ani chyba při vykonávání skriptu nebo snaha o pozdržení nezastaví vykonání dalších skriptů.<br><br>Global sieve prefilter → Prefilter → Uživatelské skripty → Postfilter → Global sieve postfilter",
@@ -693,7 +786,6 @@
         "sieve_preset_7": "Přesměrovat a ponechat/zahodit",
         "sieve_preset_8": "Zahodit zprávu poslanou na alias, do něhož patří i odesílatel",
         "sieve_preset_header": "Vizte následující ukázková pravidla. Více informací na <a href=\"https://en.wikipedia.org/wiki/Sieve_(mail_filtering_language)\" target=\"_blank\">Wikipedii</a>.",
-        "sogo_allow_admin_hint": "Přihlásit se do SOGo jako správce může jen uživatel s existujícím profilem SOGo. Uživatel se musí do SOGo alespoň jednou přihlásit.",
         "sogo_visible": "Alias dostupný v SOGo",
         "sogo_visible_n": "Skrýt alias v SOGo",
         "sogo_visible_y": "Zobrazit alias v SOGo",
@@ -713,8 +805,8 @@
         "tls_map_parameters_info": "Prázdné nebo parametry, například: protocols=!SSLv2 ciphers=medium exclude=3DES",
         "tls_map_policy": "Pravidlo",
         "tls_policy_maps": "Mapy TLS pravidel",
-        "tls_policy_maps_info": "Tato mapa přepisuje pravidla odchozích TLS nezávisle na TLS nastavení uživatele.<br>\r\n  Pro více informací prosím prostudujte <a href=\"http://www.postfix.org/postconf.5.html#smtp_tls_policy_maps\" target=\"_blank\">dokumentaci k \"smtp_tls_policy_maps\"</a>.",
         "tls_policy_maps_enforced_tls": "Tato pravidla také přepisují chování pro schránky, jež mají nastaveno vynucené odchozí TLS spojení. Pokud zde nejsou žádná pravidla, tyto schránky použijí výchozí hodnoty nastavené v <code>smtp_tls_mandatory_protocols</code> a <code>smtp_tls_mandatory_ciphers</code>.",
+        "tls_policy_maps_info": "Tato mapa přepisuje pravidla odchozích TLS nezávisle na TLS nastavení uživatele.<br>\r\n  Pro více informací prosím prostudujte <a href=\"http://www.postfix.org/postconf.5.html#smtp_tls_policy_maps\" target=\"_blank\">dokumentaci k \"smtp_tls_policy_maps\"</a>.",
         "tls_policy_maps_long": "Přepisování pravidel odchozího TLS",
         "toggle_all": "Označit vše",
         "username": "Uživatelské jméno",
@@ -735,12 +827,16 @@
         "action": "Akce",
         "atts": "Přílohy",
         "check_hash": "Hledat hash na serveru VT",
+        "confirm": "Potvrdit",
         "confirm_delete": "Potvrdit smazání prvku.",
         "danger": "Nebezpečí",
+        "deliver_inbox": "Doručit do schránky",
         "disabled_by_config": "Funkce karanténa je momentálně vypnuta v nastavení systému.",
         "download_eml": "Stáhnout (.eml)",
         "empty": "Žádné výsledky",
         "high_danger": "Vysoké nebezpečí",
+        "info": "Informace",
+        "junk_folder": "Složka nevyžádaná pošta",
         "learn_spam_delete": "Naučit jako spam a smazat",
         "low_danger": "Malé nebezpečí",
         "medium_danger": "Střední nebezpečí",
@@ -748,30 +844,44 @@
         "notified": "Oznámeno",
         "qhandler_success": "Požadavek úspěšně přijat. Můžete nyní zavřít okno.",
         "qid": "Rspamd QID",
+        "qinfo": "Karanténní systém uloží odmítnutou poštu do databáze (odesílatel se <em>nedozví</em>, že pošta byla doručena) jakož i pošta, která bude jako kopie doručena do složky Nevyžádaná pošta. \r\n<br>\"Naučit jako spam a smazat\" naučí zprávu jako spam přes Bayesian theorem a současně vypočítá fuzzy hashes pro odmítnutí podobných zpráv v budoucnosti. \r\n<br> Prosím, berte na vědomí, že naučení více zpráv může být - záleží na vašem systému - časově náročné . <br> Položky na černé listině jsou z karantény vyloučeny.",
         "qitem": "Položka v karanténě",
         "quarantine": "Karanténa",
         "quick_actions": "Akce",
+        "quick_delete_link": "Odkaz na rychlé odstranění",
+        "quick_info_link": "Otevřít link pro info",
+        "quick_release_link": "Odkaz na rychlé propuštění",
         "rcpt": "Příjemce",
         "received": "Přijato",
         "recipients": "Příjemci",
         "refresh": "Obnovit",
+        "rejected": "odmítnuto",
         "release": "Propustit",
         "release_body": "Zpráva připojena jako příloha EML k této zprávě.",
         "release_subject": "Potenciálně škodlivá položka v karanténě %s",
         "remove": "Smazat",
+        "rewrite_subject": "Přepsat předmět",
         "rspamd_result": "Skóre Rspamd",
         "sender": "Odesílatel (SMTP)",
         "sender_header": "Odesílatel (hlavička \"From\")",
-        "quick_release_link": "Odkaz na rychlé propuštění",
-        "quick_delete_link": "Odkaz na rychlé odstranění",
+        "settings_info": "Maximální množství položek které se umístí do karantény: %s<br>Maximální velikost emailu: %s MiB",
         "show_item": "Zobrazit položku",
+        "spam": "Spam",
         "spam_score": "Skóre",
         "subj": "Předmět",
         "table_size": "Velikost tabulky",
         "table_size_show_n": "Zobrazit %s položek",
         "text_from_html_content": "Obsah (konvertované html)",
         "text_plain_content": "Obsah (text/plain)",
-        "toggle_all": "Označit vše"
+        "toggle_all": "Označit vše",
+        "type": "Typ"
+    },
+    "ratelimit": {
+	    "disabled": "Vypnuto",
+	    "second": "zpráv za sekundu",
+	    "minute": "zpráv za minutu",
+	    "hour": "zpráv za hodinu",
+	    "day": "zpráv za den"
     },
     "start": {
         "help": "Zobrazit/skrýt panel nápovědy",
@@ -813,7 +923,7 @@
         "domain_removed": "Doména %s odebrána",
         "dovecot_restart_success": "Dovecot byl úspěšně restartován",
         "eas_reset": "ActiveSync zařízení uživatele %s vyresetováno",
-        "f2b_modified": "Změny parametrů Fail2ban uloženy",
+        "f2b_modified": "Změny v parametrech automatického firewallu uloženy",
         "forwarding_host_added": "Předávající hostitel %s přidán",
         "forwarding_host_removed": "Předávající hostitel %s odebrán",
         "global_filter_written": "Filtr byl úspěšně zapsán",
@@ -828,7 +938,9 @@
         "mailbox_added": "Poštovní schránka %s přidána",
         "mailbox_modified": "Změny poštovní schránky %s uloženy",
         "mailbox_removed": "Poštovní schránka %s  odebrána",
+        "nginx_reloaded": "Nginx reload byl úspěšný",
         "object_modified": "Změny objektu %s uloženy",
+        "password_policy_saved": "Politika hesel byla úspěšně uložena",
         "pushover_settings_edited": "Nastavení Pushover uloženo, ověřte přihlašovací údaje.",
         "qlearn_spam": "Zpráva ID %s naučena jako spam a smazána",
         "queue_command_success": "Příkaz pro frontu úspěšně dokončen",
@@ -850,6 +962,7 @@
         "tls_policy_map_entry_saved": "Položka mapy TLS pravidel \"%s\" uložena",
         "ui_texts": "Změny UI textů uloženy",
         "upload_success": "Soubor úspěšně nahrán",
+        "verified_fido2_login": "Ověřené FIDO2 přihlášení",
         "verified_totp_login": "TOTP přihlášení ověřeno",
         "verified_u2f_login": "U2F přihlášení ověřeno",
         "verified_yotp_login": "Yubico OTP přihlášení ověřeno"
@@ -871,7 +984,8 @@
         "select": "Prosím vyberte...",
         "set_tfa": "Nastavení způsobu dvoufaktorového ověření",
         "start_u2f_validation": "Zahájit inicializaci",
-        "tfa": "Dvoufaktorové ověření",
+        "tfa": "Dvoufaktorové ověření (TFA)",
+        "tfa_token_invalid": "Neplatný TFA token",
         "totp": "Časově založené OTP (Google Authenticator, Authy apod.)",
         "u2f": "U2F ověření",
         "waiting_usb_auth": "<i>Čeká se na USB zařízení...</i><br><br>Prosím stiskněte tlačítko na svém U2F USB zařízení.",
@@ -900,9 +1014,11 @@
         "apple_connection_profile_complete": "Tento profil obsahuje parametry připojení k IMAP, SMTP, CalDAV (kalendáře) a CardDAV (kontakty) pro zařízení Apple.",
         "apple_connection_profile_mailonly": "Tento profil obsahuje parametry připojení k IMAP a SMTP pro zařízení Apple.",
         "change_password": "Změnit heslo",
+        "clear_recent_successful_connections": "Vymazat nedávné úspěšné přihlášení",
         "client_configuration": "Zobrazit průvodce nastavením e-mailových klientů a smartphonů",
         "create_app_passwd": "Vytvořit heslo aplikace",
         "create_syncjob": "Vytvořit novou synchronizační úlohu",
+        "created_on": "Vytvoreno",
         "daily": "Každý den",
         "day": "den",
         "delete_ays": "Potvrďte odstranění.",
@@ -914,22 +1030,33 @@
         "edit": "Upravit",
         "email": "Pošta",
         "email_and_dav": "Pošta, kalendáře a kontakty",
+        "empty": "Nejsou k dispozici žádné záznamy",
         "encryption": "Šifrování",
         "excludes": "Vyloučené",
         "expire_in": "Vyprší za",
+        "fido2_webauthn": "FIDO2/WebAuthn",
         "force_pw_update": "Pro přístup k groupware funkcím <b>musíte změnit heslo</b>.",
+        "from": "od",
         "generate": "vytvořit",
         "hour": "hodinu",
         "hourly": "Každou hodinu",
         "hours": "hodin",
         "in_use": "Obsazeno",
         "interval": "Interval",
-        "is_catch_all": "Catch-all pro doménu/y",
+        "is_catch_all": "Doménový koš",
         "last_mail_login": "Poslední přihlášení",
+        "last_pw_change": "Naposledy změněno heslo",
         "last_run": "Naposledy spuštěno",
+        "last_ui_login": "Poslední přihlášení do web rozhraní",
         "loading": "Načítá se...",
+        "login_history": "Historie přihlášení",
+        "mailbox": "Poštová schránka",
         "mailbox_details": "Podrobnosti poštovní schránky",
+        "mailbox_general": "Obecné",
+        "mailbox_settings": "Nastavení",
         "messages": "zpráv",
+        "month": "měsíc",
+        "months": "měsíce",
         "never": "Nikdy",
         "new_password": "Nové heslo",
         "new_password_description": "Požadavek: min. délka 6 znaků, písmena a čísla.",
@@ -937,6 +1064,8 @@
         "no_active_filter": "Není k dispozici žádný aktivní filtr",
         "no_last_login": "Žádný záznam o přihlášení",
         "no_record": "Žádný záznam",
+        "open_logs": "Otevřít záznam",
+        "open_webmail_sso": "Přihlaste se do webmailu",
         "password": "Heslo",
         "password_now": "Současné heslo (pro potvrzení změny)",
         "password_repeat": "Heslo (znovu)",
@@ -949,8 +1078,14 @@
         "pushover_title": "Předmět upozornění",
         "pushover_vars": "Bez filtru odesílatelů se zpracují všechny příchozí zprávy.<br>Regulární výrazy i výslovné adresy lze zadat současně a budou zpracovány postupně, nezávisí na sobě.<br>Lze použít proměnné pro text a předmět upozornění (pozor na ochranu osobních údajů apod.)",
         "pushover_verify": "Ověřit přihlašovací údaje",
+        "q_add_header": "Složka nevyžádaná pošta",
+        "q_all": "Všechny kategorie",
+        "q_reject": "Odmítnuta",
+        "quarantine_category": "Kategorie oznámení karantény",
+        "quarantine_category_info": "Kategorie oznámení \"Odmítnuta\" zahrnuje poštu která byla odmítnuta, a \"Nevyžádaná pošta\" zahrnuje oznámení o poště uložené do složky Nevyžádaná pošta.",
         "quarantine_notification": "Upozornění z karantény",
         "quarantine_notification_info": "Jakmile se upozornění odešle, budou příslušné položky vyznačeny jako \"upozorněné\" a nebude pro ně odesláno žádné další upozornění.",
+        "recent_successful_connections": "Nedávné úspěšné přihlášení",
         "remove": "Smazat",
         "running": "Běží",
         "save": "Uložit změny",
@@ -967,7 +1102,7 @@
         "spamfilter": "Filtr spamu",
         "spamfilter_behavior": "Hodnocení",
         "spamfilter_bl": "Seznam zakázaných adres (blacklist)",
-        "spamfilter_bl_desc": "Zakázané emailové adresy <b>budou vždy klasifikovány jako spam a odmítnuty</b>. Lze použít zástupné znaky (*). Filtr se použije pouze na přímé aliasy (s jednou cílovou poštovní schránkou), s výjimkou aliasů typu catch-all a samotné poštovní schránky.",
+        "spamfilter_bl_desc": "Zakázané emailové adresy <b>budou vždy klasifikovány jako spam a odmítnuty</b>. Lze použít zástupné znaky (*). Filtr se použije pouze na přímé aliasy (s jednou cílovou poštovní schránkou), s výjimkou doménových košů a samotné poštovní schránky.",
         "spamfilter_default_score": "Výchozí hodnoty:",
         "spamfilter_green": "Zelená: tato zpráva není spam",
         "spamfilter_hint": "První hodnota představuje \"nízké spam skóre\" a druhá \"vysoké spam skóre\".",
@@ -979,7 +1114,7 @@
         "spamfilter_table_remove": "smazat",
         "spamfilter_table_rule": "Pravidlo",
         "spamfilter_wl": "Seznam povolených adres (whitelist)",
-        "spamfilter_wl_desc": "Povolené emailové adresy <b>nebudou nikdy klasifikovány jako spam</b>. Lze použít zástupné znaky (*). Filtr se použije pouze na přímé aliasy (s jednou cílovou poštovní schránkou), s výjimkou aliasů typu catch-all a samotné poštovní schránky.",
+        "spamfilter_wl_desc": "Povolené emailové adresy <b>nebudou nikdy klasifikovány jako spam</b>. Lze použít zástupné znaky (*). Filtr se použije pouze na přímé aliasy (s jednou cílovou poštovní schránkou), s výjimkou doménových košů a samotné poštovní schránky.",
         "spamfilter_yellow": "Žlutá: tato zpráva může být spam, bude označena jako spam a přesunuta do složky nevyžádané pošty",
         "status": "Stav",
         "sync_jobs": "Synchronizační úlohy",
@@ -1001,7 +1136,9 @@
         "waiting": "Čekání",
         "week": "týden",
         "weekly": "Každý týden",
-        "weeks": "týdny"
+        "weeks": "týdny",
+        "year": "rok",
+        "years": "let"
     },
     "warning": {
         "cannot_delete_self": "Nelze smazat právě přihlášeného uživatele",
@@ -1010,6 +1147,7 @@
         "fuzzy_learn_error": "Chyba při učení Fuzzy hash: %s",
         "hash_not_found": "Hash nenalezen",
         "ip_invalid": "Přeskočena neplatná IP: %s",
+        "is_not_primary_alias": "Přeskočit ne-primární alias %s",
         "no_active_admin": "Nelze deaktivovat posledního aktivního správce",
         "quota_exceeded_scope": "Kvóta domény překročena: v této doméně lze vytvořit jen neomezené schránky.",
         "session_token": "Token formuláře není platný: Token mismatch",
diff --git a/mailcow/src/mailcow-dockerized/data/web/lang/lang.da.json b/mailcow/src/mailcow-dockerized/data/web/lang/lang.da.json
new file mode 100644
index 0000000..3b467a3
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/lang/lang.da.json
@@ -0,0 +1,1080 @@
+{
+    "acl": {
+        "alias_domains": "Tilføj kældenavn domæner",
+        "app_passwds": "Administrer app-adgangskoder",
+        "bcc_maps": "BCC kort",
+        "delimiter_action": "Afgrænsning handling",
+        "eas_reset": "Nulstil EAS endheder",
+        "extend_sender_acl": "Tillad at udvide afsenderens ACL med eksterne adresser",
+        "filters": "Filtre",
+        "login_as": "Login som mailboks bruger",
+        "prohibited": "Forbudt af ACL",
+        "protocol_access": "Ændre protokol adgang",
+        "pushover": "Pushover",
+        "quarantine": "Karantæneaktioner",
+        "quarantine_attachments": "Karantæne vedhæftede filer",
+        "quarantine_notification": "Skift karantænemeddelelser",
+        "ratelimit": "Satsgrænse",
+        "recipient_maps": "Modtagerkort",
+        "smtp_ip_access": "Skift tilladte værter til SMTP",
+        "sogo_access": "Tillad styring af SOGo-adgang",
+        "sogo_profile_reset": "Nulstil SOGo-profil",
+        "spam_alias": "Midlertidige aliasser",
+        "spam_policy": "Sortliste / hvidliste",
+        "spam_score": "Spam-score",
+        "syncjobs": "Synkroniser job",
+        "tls_policy": "TLS politik",
+        "unlimited_quota": "Ubegrænset quote for mailbokse",
+        "domain_desc": "Skift domæne beskrivelse",
+        "xmpp_admin": "Promover XMPP-bruger til administrator",
+        "xmpp_domain_access": "Konfigurer XMPP-domæneadgang",
+        "xmpp_mailbox_access": "Konfigurer XMPP-brugeradgang",
+        "xmpp_prefix": "Skift XMPP-underdomæne (præfiks)"
+    },
+    "add": {
+        "activate_filter_warn": "Alle andre filtre deaktiveres, når aktiv er markeret.",
+        "active": "Aktiv",
+        "add": "Tilføj",
+        "add_domain_only": "Tilføj kun domæne",
+        "add_domain_restart": "Tilføj domæne og genstart SOGo",
+        "alias_address": "Alias adresse (r)",
+        "alias_address_info": "<small>Fuld e-mail-adresse eller @ eksempel.com for at fange alle beskeder til et domæne (kommasepareret). <b> kun mailcow-domæner</b>.</small>",
+        "alias_domain": "Alias-domæne",
+        "alias_domain_info": "<small>Kun gyldige domænenavne (kommasepareret).</small>",
+        "app_name": "App navn",
+        "app_password": "Tilføj app-adgangskode",
+        "automap": "Prøv at automatisere mapper (\"Sendte emner\", \"Sendt\" => \"Sendt\" etc.)",
+        "backup_mx_options": "Relæindstillinger",
+        "comment_info": "En privat kommentar er ikke synlig for brugeren, mens en offentlig kommentar vises som et værktøjstip, når den svæver i brugeroversigten",
+        "custom_params": "Brugerdefinerede parametre",
+        "custom_params_hint": "Rigtigt: --param=xy, forkert: --param xy",
+        "delete1": "Slet fra kilden, når den er afsluttet",
+        "delete2": "Slet meddelelser på destinationen, der ikke er fra kilden",
+        "delete2duplicates": "Slet duplikater på destinationen",
+        "description": "Beskrivelse",
+        "destination": "Bestemmelsessted",
+        "disable_login": "Tillad ikke login (indgående mail accepteres stadig)",
+        "domain": "Domæne",
+        "domain_matches_hostname": "Domæne %s matcher værtsnavn",
+        "domain_quota_m": "Samlet domænekvote (Mb)",
+        "enc_method": "Krypteringsmetode",
+        "exclude": "Ekskluder objekter (regex)",
+        "full_name": "Fulde navn",
+        "gal": "Global adresseliste",
+        "gal_info": "GAL indeholder alle objekter i et domæne og kan ikke redigeres af nogen bruger. Information om ledig / optaget i SOGo mangler, hvis deaktiveret! <b> Genstart SOGo for at anvende ændringer. </b>",
+        "generate": "generere",
+        "goto_ham": "Lær som <span class=\"text-success\"><b>ham</b></span>",
+        "goto_null": "Kassér e-mail i stilhed",
+        "goto_spam": "Lær som <span class=\"text-danger\"><b>spam</b></span>",
+        "hostname": "Vært",
+        "inactive": "Inaktiv",
+        "kind": "slags",
+        "mailbox_quota_def": "Standardpostkassekvote",
+        "mailbox_quota_m": "Maks. kvote pr. postkasse (Mb)",
+        "mailbox_username": "Brugernavn (venstre del af en e-mail-adressen)",
+        "max_aliases": "Maks. mulige aliasser",
+        "max_mailboxes": "Maks. mulige postkasser",
+        "mins_interval": "Afstemningsinterval (minuter)",
+        "multiple_bookings": "Flere bookinger",
+        "nexthop": "Næste hop",
+        "password": "Kodeord",
+        "password_repeat": "Bekræft adgangskode (gentag)",
+        "port": "Port",
+        "post_domain_add": "SOGo-containeren, \"sogo-mailcow\", skal genstartes efter tilføjelse af et nyt domæne! <br> <br> Derudover skal domænernes DNS-konfiguration gennemgås. Når DNS-konfigurationen er godkendt, skal du genstarte \"acme-mailcow\" for automatisk at generere certifikater til dit nye domæne (autoconfig.&lt;domain&gt;, autodiscover.&lt;domain&gt;).<br>Dette trin er valgfrit og vil blive prøvet igen hver 24. time.",
+        "private_comment": "Privat kommentar",
+        "public_comment": "Offentlig kommentar",
+        "quota_mb": "Kvota (Mb)",
+        "relay_all": "Send alle modtagere videre",
+        "relay_all_info": "↪ Hvis du vælger <b> ikke </b> at videresende alle modtagere, skal du tilføje et (\"blind\") postkasse til hver enkelt modtager, der skal videresendes.",
+        "relay_domain": "Send dette domæne videre",
+        "relay_transport_info": "<div class=\"label label-info\">Info</div> Du kan definere transportkort til en tilpasset destination for dette domæne. Hvis ikke indstillet, foretages der et MX-opslag.",
+        "relay_unknown_only": "Videresend kun ikke-eksisterende postkasser. Eksisterende postkasser leveres lokalt.",
+        "relayhost_wrapped_tls_info": "Vær sød <b>ikke</b> at bruge TLS-indpakkede porte (bruges mest på port 465) .<br>\r\nBrug en ikke-pakket port, og udgiv STARTTLS. En TLS-politik til at håndhæve TLS kan oprettes i \"TLS policy maps\".",
+        "select": "Vælg venligst...",
+        "select_domain": "Vælg først et domæne",
+        "sieve_desc": "Kort beskrivelse",
+        "sieve_type": "Filtertype",
+        "skipcrossduplicates": "Spring duplikatbeskeder over mapper (først til mølle)",
+        "subscribeall": "Abonner på alle mapper",
+        "syncjob": "Tilføj synkroniseringsjob",
+        "syncjob_hint": "Vær opmærksom på, at adgangskoder skal gemmes som almindelig tekst!",
+        "target_address": "Gå til adresser",
+        "target_address_info": "<small>Fuld e-mail-adresser (komma-adskilt).</small>",
+        "target_domain": "Måldomæne",
+        "timeout1": "Timeout for forbindelse til ekstern vært",
+        "timeout2": "Timeout for forbindelse til lokal vært",
+        "username": "Brugernavn",
+        "validate": "Bekræft",
+        "validation_success": "Valideret med succes"
+    },
+    "admin": {
+        "access": "Adgang",
+        "action": "Handling",
+        "activate_api": "Aktivér API",
+        "activate_send": "Aktivér send knap",
+        "active": "Aktiv",
+        "active_rspamd_settings_map": "Kort over aktive indstillinger",
+        "add": "Tilføj",
+        "add_admin": "tilføj administrator",
+        "add_domain_admin": "tilføj domæne administrator",
+        "add_forwarding_host": "Tilføj videresendelsesvært",
+        "add_relayhost": "Tilføj afsenderafhængig transport",
+        "add_relayhost_hint": "Vær opmærksom på, at godkendelsesdata, hvis nogen, gemmes som almindelig tekst.",
+        "add_row": "Tilføj række",
+        "add_settings_rule": "Tilføj indstillingsregel",
+        "add_transport": "Tilføj transport",
+        "add_transports_hint": "Vær opmærksom på, at hvis nogen godkendelsesdata lagres gemmes det som almindelig tekst.",
+        "additional_rows": " yderligere rækker blev tilføjet",
+        "admin": "Administrator",
+        "admin_details": "Rediger administratoroplysninger",
+        "admin_domains": "Domænetildelinger",
+        "advanced_settings": "Advanceret indstillinger",
+        "api_allow_from": "Tillad API adgang fra disse IP'er/CIDR netværksnotationer",
+        "api_info": "API'en er et igangværende arbejde. Dokumentationen kan findes på <a href=\"/api\">/api</a>",
+        "api_key": "API nøgle",
+        "api_skip_ip_check": "Spring IP tjek over for API",
+        "app_links": "App links",
+        "app_name": "App navn",
+        "apps_name": "\"mailcow Apps\" navn",
+        "arrival_time": "Ankomst tid (server tid)",
+        "authed_user": "Auth. bruger",
+        "ays": "Er du sikker på, at du vil fortsætte?",
+        "ban_list_info": "Se en liste over forbudte IP'er nedenfor: <b>netværk (resterende forbudstid) - [handlinger]</b>.<br />IPs, der står i kø for at blive ikke-spærret, vil blive fjernet fra listen over aktive forbud inden for få sekunder.<br />Red etiketter angiver aktive permanente forbud ved sortlistning. Er du sikker på, at du vil fortsætte",
+        "change_logo": "Skift logo",
+        "configuration": "Konfiguration",
+        "credentials_transport_warning": "<b>Advarsel</b>: Tilføjelse af en ny transportkortpost opdaterer legitimationsoplysningerne for alle poster med en matchende nexthop-kolonne.",
+        "customer_id": "Kunde ID",
+        "customize": "Tilpas",
+        "delete_queue": "Slet alt",
+        "destination": "Bestemmelsessted",
+        "dkim_add_key": "Tilføj ARC/DKIM nøgle",
+        "dkim_domains_selector": "Vælger",
+        "dkim_domains_wo_keys": "Vælg domæner med manglende nøgler",
+        "dkim_from": "Fra",
+        "dkim_from_title": "Kildedomæne at kopiere data fra",
+        "dkim_key_length": "DKIM nøgle længde (bits)",
+        "dkim_key_missing": "Nøgle mangler",
+        "dkim_key_unused": "Nøgle ubrugt",
+        "dkim_key_valid": "Nøglen er gyldig",
+        "dkim_keys": "ARC/DKIM nøgler",
+        "dkim_overwrite_key": "Overskriv nuværende DKIM nøgle",
+        "dkim_private_key": "Privat nøgle",
+        "dkim_to": "Til",
+        "dkim_to_title": "Måldomæne (r) - vil blive overskrevet",
+        "domain": "Domæne",
+        "domain_admin": "Domæne administrator",
+        "domain_admins": "Domæne administrators",
+        "domain_s": "Domæne/r",
+        "duplicate": "Duplikere",
+        "duplicate_dkim": "Duplikere DKIM optegnelse",
+        "edit": "Redigere",
+        "empty": "Ingen resultater",
+        "excludes": "Ekskluderer disse modtagere",
+        "f2b_ban_time": "Udelukkelses tid (s)",
+        "f2b_blacklist": "Sortlistede netværk/værter",
+        "f2b_filter": "Regex filtre",
+        "f2b_list_info": "En sortlistet vært eller et netværk opvejer altid en hvidlisted eksistens. <b> Listeopdateringer tager nogle få sekunder at blive anvendt. </b> ",
+        "f2b_max_attempts": "Max. forsøg",
+        "f2b_netban_ipv4": "IPv4 subnet størrelse at anvende forbud mod (8-32)",
+        "f2b_netban_ipv6": "IPv6 subnet størrelse at anvende forbud mod (8-128)",
+        "f2b_parameters": "Fail2ban parametre",
+        "f2b_regex_info": "Logfiler taget i betragtning: SOGo, Postfix, Dovecot, PHP-FPM.",
+        "f2b_retry_window": "Genindlæs vindue om (s) for max. forsøg",
+        "f2b_whitelist": "Hvidlisted netværk/vært",
+        "filter_table": "Filtertabel",
+        "flush_queue": "Tøm kø",
+        "forwarding_hosts": "Videresendelse af værter",
+        "forwarding_hosts_add_hint": "Du kan enten angive IPv4 / IPv6-adresser, netværk i CIDR-notation, værtsnavne (som løses til IP-adresser) eller domænenavne (som løses til IP-adresser ved at spørge SPF-poster eller i mangel af MX-poster).",
+        "forwarding_hosts_hint": "Indgående beskeder accepteres ubetinget fra værter, der er anført her. Disse værter kontrolleres derefter ikke mod DNSBL'er eller udsættes for gråt notering. Spam modtaget fra dem afvises aldrig, men det kan eventuelt arkiveres i Junk-mappen. Den mest almindelige anvendelse til dette er at specificere mailservere, hvor du har oprettet en regel, der videresender indgående e-mails til din mailcow-server. ",
+        "from": "Fra",
+        "generate": "generere",
+        "guid": "GUID - entydigt forekomst-id",
+        "guid_and_license": "GUID & License",
+        "hash_remove_info": "Hvis du fjerner en ratelimit-hash (hvis den stadig findes), nulstilles tælleren fuldstændigt. <br>\r\n  Hver hash angives med en individuel farve.",
+        "help_text": "Tilsidesæt hjælp-teksten under loginmaske (HTML tilladt)",
+        "host": "Vært",
+        "html": "HTML(Hypertekstmarkeringssprog)",
+        "import": "Importere",
+        "import_private_key": "Importere privat nøgle",
+        "in_use_by": "I brug af",
+        "inactive": "Inaktiv",
+        "include_exclude": "Medtag/udeluk",
+        "include_exclude_info": "Som standard - uden markering er - <b>alle postkasser</b> adresseret",
+        "includes": "Medtag disse modtagere",
+        "last_applied": "Sidst anvendt",
+        "license_info": "En licens er ikke påkrævet, men hjælper videreudvikling. <br><a href=\"https://www.servercow.de/mailcow?lang=en#sal\" target=\"_blank\" alt=\"SAL order\">Registrer dit GUID her</a> or <a href=\"https://www.servercow.de/mailcow?lang=en#support\" target=\"_blank\" alt=\"Support order\">køb støtte til din mailcow installation.</a>",
+        "link": "Link",
+        "loading": "Vent venligst...",
+        "logo_info": "Dit billede skaleres til en højde på 40px for den øverste navigationslinje og en max. bredde på 250px for startsiden. Skalerbar grafik anbefales på det kraftigste.",
+        "lookup_mx": "Match destination mod MX (.outlook.com at dirigere alle e-mails, der er målrettet mod en MX *.outlook.com over dette hop)",
+        "main_name": "\"mailcow UI\" navn",
+        "merged_vars_hint": "Nedtonede rækker blev flettet fra <code>vars.(local.)inc.php</code> og kan ikke ændres.",
+        "message": "Besked",
+        "message_size": "Meddelelsesstørrelse",
+        "nexthop": "Næste hop",
+        "no": "&#10005;",
+        "no_active_bans": "Ingen aktive Udelukkelser",
+        "no_new_rows": "Ingen yderligere rækker tilgængelige",
+        "no_record": "Ingen post",
+        "oauth2_client_id": "Klient ID",
+        "oauth2_client_secret": "Klient hemmelighed",
+        "oauth2_info": "OAuth2-implementeringen understøtter tilskudstypen \"Authorization Code\" og udsteder tids-bestemte opdateringstoken.<br>\r\nServeren udsteder også automatisk nye opdateringstokens, når der er brugt et opdateringstoken.<br><br>\r\n→ Standardområdet er <i>profile</i>. Det er kun brugere af postkasser, der kan godkendes mod OAuth2. Hvis områdeparameteren udelades, falder den tilbage til <i>profile</i>.<br>\r\n→ Den <i>status</i> skal sendes af klienten som en del af godkendelsesanmodningen.<br><br>\r\nStier til anmodninger til OAuth2 API: <br>\r\n<ul>\r\n  <li>Godkendelsesslutpunkt: <code>/oauth/authorize</code></li>\r\n  <li>Token slutpunkt: <code>/oauth/token</code></li>\r\n  <li>Ressource side:  <code>/oauth/profile</code></li>\r\n</ul>\r\nRegenerering af klienthemmeligheden udløber ikke eksisterende autorisationskoder, men de fornyer ikke deres token.<br><br>\r\nTilbagekaldelse af klient-tokens vil medføre øjeblikkelig afslutning af alle aktive sessioner. Alle klienter skal godkende igen.",
+        "oauth2_redirect_uri": "Omdiriger URI",
+        "oauth2_renew_secret": "Generer ny klienthemmelighed",
+        "oauth2_revoke_tokens": "Tilbagekald alle klient-tokens",
+        "optional": "valgfri",
+        "password": "Kodeord",
+        "password_repeat": "Bekræftelsesadgangskode (gentag)",
+        "priority": "Prioritet",
+        "private_key": "Privat nøgle",
+        "quarantine": "Karantæne",
+        "quarantine_bcc": "Send en kopi af alle meddelelser (BCC) til denne modtager:<br><small>Lad være tom for at deaktivere. <b>Usigneret, ikke-markeret mail. Bør kun leveres internt.</b></small>",
+        "quarantine_exclude_domains": "Ekskluder domæner og alias-domæner",
+        "quarantine_max_age": "Maximum alder i dage<br><small>Værdien skal være lig med eller større end 1 dag.</small>",
+        "quarantine_max_size": "Maksimal størrelse i MiB (større elementer kasseres):<br><small>0 indikere <b>ikke</b> ubegrænset.</small>",
+        "quarantine_max_score": "Kassér besked, hvis spam-score for en mail er højere end denne værdi:<br><small>Standardindstillingen er 9999.0</small>",
+        "quarantine_notification_html": "Notifikations-e-mail-skabelon:<br><small>Lad det være tomt for at gendanne standardskabelonen.</small>",
+        "quarantine_notification_sender": "Notification email sender",
+        "quarantine_notification_subject": "Notification email subject",
+        "quarantine_redirect": "<b>Redirect all notifications</b> to this recipient:<br><small>Leave empty to disable. <b>Unsigned, unchecked mail. Should be delivered internally only.</b></small>",
+        "quarantine_release_format": "Format på frigivne genstande",
+        "quarantine_release_format_att": "Som vedhæftet fil",
+        "quarantine_release_format_raw": "Umodificeret original",
+        "quarantine_retention_size": "Tilbageholdelse pr. Postkasse:<br><small>0 angiver <b>inaktiv</b>.</small>",
+        "queue_ays": "Bekræft venligst, at du vil slette alle emner fra den aktuelle kø.",
+        "queue_deliver_mail": "Aflevere",
+        "queue_hold_mail": "Hold",
+        "queue_manager": "Køadministrator",
+        "queue_unban": "kø ikke udeluk",
+        "queue_unhold_mail": "Unhold",
+        "queue_show_message": "Vis besked",
+        "quota_notification_html": "Notifikations-e-mail-skabelon:<br><small>Lad det være tomt for at gendanne standardskabelonen.</small>",
+        "quota_notification_sender": "Afsender af underretnings-e-mail",
+        "quota_notification_subject": "Underretningens e-mail-emne",
+        "quota_notifications": "Kvotemeddelelser",
+        "quota_notifications_info": "Kvotemeddelelser sendes til brugerne en gang, når de krydser 80%, og en gang, når de krydser 95% forbrug.",
+        "quota_notifications_vars": "{{percent}} svarer til brugerens nuværende kvote<br>{{username}} er postkassens navn",
+        "r_active": "Aktive begrænsninger",
+        "r_inactive": "Inaktive begrænsninger",
+        "r_info": "Nedtonede / deaktiverede elementer på listen over aktive begrænsninger er ikke kendt som gyldige begrænsninger for mailcow og kan ikke flyttes. Ukendte begrænsninger indstilles alligevel i rækkefølge efter udseende. <br>Du kan tilføje nye elementer i <code>inc/vars.local.inc.php</code> for at kunne skifte dem.",
+        "rate_name": "Bedøm navn",
+        "recipients": "Modtagere",
+        "refresh": "Opdater",
+        "regen_api_key": "Genopret API-nøgle",
+        "regex_maps": "Regex kort",
+        "relay_from": "\"Fra:\" adresse",
+        "relay_run": "Kør test",
+        "relayhosts": "Afsenderafhængige transporter",
+        "relayhosts_hint": "Definer afsenderafhængige transporter, så de kan vælge dem i en konfigurationsdialog for domæner.<br>\r\n  Transporttjenesten er altid \"smtp:\" og vil derfor prøve TLS, når de tilbydes. Indpakket TLS (SMTPS) understøttes ikke. En brugeres individuelle indstilling for TLS-politik tages i betragtning.<br>\r\n  Påvirker udvalgte domæner inklusive aliasdomæner.",
+        "remove": "Fjern",
+        "remove_row": "Fjern række",
+        "reset_default": "Nulstil til standard",
+        "reset_limit": "Fjern hash",
+        "routing": "Routing",
+        "rsetting_add_rule": "Tilføj regel",
+        "rsetting_content": "Regelindhold",
+        "rsetting_desc": "Kort beskrivelse",
+        "rsetting_no_selection": "Vælg en regel",
+        "rsetting_none": "Ingen tilgængelige regler",
+        "rsettings_insert_preset": "Indsæt eksempel forudindstilling \"%s\"",
+        "rsettings_preset_1": "Deaktiver alt undtagen DKIM og satsgrænse for godkendte brugere",
+        "rsettings_preset_2": "Postmestere ønsker spam",
+        "rsettings_preset_3": "Tillad kun specifikke afsendere til en postkasse (dvs. kun brug som intern postkasse)",
+        "rspamd-com_settings": "Et indstillingsnavn genereres automatisk, se eksemplet på forudindstillinger nedenfor. For flere detaljer se <a href=\"https://rspamd.com/doc/configuration/settings.html#settings-structure\" target=\"_blank\">Rspamd docs</a>",
+        "rspamd_global_filters": "Globale filterkort",
+        "rspamd_global_filters_agree": "Jeg vil være forsigtig!",
+        "rspamd_global_filters_info": "Global filter maps contain different kind of global black and whitelists.",
+        "rspamd_global_filters_regex": "Deres navne forklarer deres formål. Alt indhold skal indeholde gyldigt regulært udtryk i formatet \"/pattern/options\" (e.g. <code>/.+@domain\\.tld/i</code>).<br>\r\n  Selvom der udføres rudimentære kontroller på hver linje med regex, kan Rspamds-funktionaliteten brydes, hvis den ikke læser syntaksen korrekt.<br>\r\n  Rspamd forsøger at læse kortindholdet, når det ændres. Hvis du oplever problemer, <a href=\"\" data-toggle=\"modal\" data-container=\"rspamd-mailcow\"  data-target=\"#RestartContainer\">genstart Rspamd</a> for at håndhæve et kortindlæsning.<br>Sortlisteelementer er udelukket fra karantæne.",
+        "rspamd_settings_map": "Rspamd indstillinger kort",
+        "sal_level": "Moo niveau",
+        "save": "Gem ændringer",
+        "search_domain_da": "Søg i domæner",
+        "send": "Send",
+        "sender": "Afsender",
+        "service_id": "Service ID",
+        "source": "Kilde",
+        "spamfilter": "Spam filter",
+        "subject": "Emne",
+        "sys_mails": "System e-mails",
+        "text": "Tekst",
+        "time": "Tid",
+        "title": "Titel",
+        "title_name": "\"mailcow UI\" hjemmeside titel",
+        "to_top": "Tilbage til toppen",
+        "transport_dest_format": "Syntaks: example.org, .example.org, *, box@example.org (flere værdier kan adskilles med komma)",
+        "transport_maps": "Transport Maps",
+        "transports_hint": "→ En transportkortpost <b>tilsidesætter</b> et afsenderafhængigt transportkort</b>.<br>\r\n→ Indstillinger for udgående TLS-politik pr. Bruger ignoreres og kan kun håndhæves af TLS-politikortposter.<br>\r\n→ Transportservicen for definerede transporter er altid \"smtp:\" og vil derfor prøve TLS, når de tilbydes. Indpakket TLS (SMTPS) understøttes ikke.<br>\r\n→ Adresser, der matcher \"/localhost$/\" vil altid blive transporteret via \"local:\", derfor en \"*\" destination gælder ikke for disse adresser.<br>\r\n→ At bestemme legitimationsoplysninger for et eksemplarisk næste hop \"[host]:25\", Postfix <b>altid</b> forespørgsler til \"host\" inden du søger efter \"[host]:25\". Denne adfærd gør det umuligt at bruge \"host\" og \"[host]:25\" på samme tid.",
+        "ui_footer": "Sidefod (HTML tilladt)",
+        "ui_header_announcement": "Meddelelser",
+        "ui_header_announcement_active": "Indstil meddelelse aktiv",
+        "ui_header_announcement_content": "Tekst (HTML tilladt)",
+        "ui_header_announcement_help": "Meddelelsen er synlig for alle indloggede brugere og på loginskærmen i brugergrænsefladen.",
+        "ui_header_announcement_select": "Vælg meddelelsestype",
+        "ui_header_announcement_type": "Type",
+        "ui_header_announcement_type_info": "Info",
+        "ui_header_announcement_type_warning": "Vigtig",
+        "ui_header_announcement_type_danger": "Meget vigtigt",
+        "ui_texts": "UI-etiketter og tekster",
+        "unban_pending": "unban ventende",
+        "unchanged_if_empty": "Lad være tomt, hvis uændret",
+        "upload": "Upload",
+        "username": "Brugernavn",
+        "validate_license_now": "Valider GUID mod licensserver",
+        "verify": "Verificere",
+        "yes": "&#10003;"
+    },
+    "danger": {
+        "access_denied": "Adgang nægtet eller ugyldig formular data",
+        "alias_domain_invalid": "Aliasdomænet% s er ugyldigt",
+        "alias_empty": "Aliasadressen må ikke være tom",
+        "alias_goto_identical": "Alias og goto-adresseæ må ikke være identiske",
+        "alias_invalid": "Aliasadresse %s er ugyldig",
+        "aliasd_targetd_identical": "Aliasdomænet må ikke være lig med måldomænet: %s",
+        "aliases_in_use": "Maks. aliaser skal være større eller lig med %d",
+        "app_name_empty": "Appens navn kan ikke være tomt",
+        "app_passwd_id_invalid": "App-adgangskode-id %s ugyldig",
+        "bcc_empty": "BCC-destination kan ikke være tom",
+        "bcc_exists": "Et BCC-kort %s findes for type %s",
+        "bcc_must_be_email": "BCC-destination %s er ikke en gyldig e-mail-adresse",
+        "comment_too_long": "Kommentar for lang, maks. 160 tegn tilladt",
+        "defquota_empty": "Standardkvoten pr. Postkasse må ikke være 0.",
+        "description_invalid": "Ressource beskrivelse for %s er ugyldig",
+        "dkim_domain_or_sel_exists": "En DKIM-nøgle til \"%s\" findes og vil ikke blive overskrevet",
+        "dkim_domain_or_sel_invalid": "DKIM-domæne eller vælger er ugyldigt: %s",
+        "domain_cannot_match_hostname": "Domæne kan ikke matche værtsnavn",
+        "domain_exists": "Domæne %s eksisterer allerede",
+        "domain_invalid": "Domænenavnet er tomt eller ugyldigt",
+        "domain_not_empty": "Kan ikke fjerne ikke-tomt domæne %s",
+        "domain_not_found": "Domæne %s ikke fundet",
+        "domain_quota_m_in_use": "Domænekvote skal være større eller lig med %s MiB",
+        "extra_acl_invalid": "Ekstern afsenderadresse \"%s\" er ugyldig",
+        "file_open_error": "Filen kan ikke åbnes til skrivning",
+        "filter_type": "Forkert filtertype",
+        "from_invalid": "Afsenderen må ikke være tom",
+        "global_filter_write_error": "Kunne ikke skrive filterfil: %s",
+        "global_map_invalid": "Globalt kort-ID %s ugyldig",
+        "global_map_write_error": "Kunne ikke skrive globalt kort-id %s: %s",
+        "goto_empty": "En alias-adresse skal indeholde mindst en gyldig goto-adresse",
+        "goto_invalid": "Gå til adresse %s er ugyldig",
+        "ham_learn_error": "HAM lærer fejl: %s",
+        "imagick_exception": "Fejl: Se undtagelsen, mens du læser billedet",
+        "img_invalid": "Kan ikke validere billedfilen",
+        "img_tmp_missing": "Kan ikke validere billedfil: Midlertidig fil blev ikke fundet",
+        "invalid_bcc_map_type": "Ugyldig BCC-korttype",
+        "invalid_destination": "Destinationsformat \"%s\" er ugyldig",
+        "invalid_filter_type": "Ugyldig filtertype",
+        "invalid_host": "Ugyldig vært angivet: %s",
+        "invalid_mime_type": "Ugyldig mime-type",
+        "invalid_nexthop": "Næste hop-format er ugyldigt",
+        "invalid_nexthop_authenticated": "Næste hop findes med forskellige legitimationsoplysninger. Opdater de eksisterende legitimationsoplysninger til dette næste hop først.",
+        "invalid_recipient_map_new": "Ugyldig ny modtager er angivet: %s",
+        "invalid_recipient_map_old": "Ugyldig original modtager er angivet: %s",
+        "ip_list_empty": "Listen over tilladte IP&#39;er kan ikke være tomme",
+        "is_alias": "%s er allerede kendt som en alias-adresse",
+        "is_alias_or_mailbox": "%s er allerede kendt som et alias, en postkasse eller en aliasadresse udvidet fra et aliasdomæne.",
+        "is_spam_alias": "%s er allerede kendt som en midlertidig alias-adresse (spam alias-adresse)",
+        "last_key": "Sidste nøgle kan ikke slettes. Deaktiver venligst TFA i stedet.",
+        "login_failed": "Login mislykkedes",
+        "mailbox_defquota_exceeds_mailbox_maxquota": "Standardkvoten overstiger den maksimale kvotegrænse",
+        "mailbox_invalid": "Postkassens navn er ugyldigt",
+        "mailbox_quota_exceeded": "Kvoten overstiger domænegrænsen(max. %d MiB)",
+        "mailbox_quota_exceeds_domain_quota": "Maks. kvote overstiger domænekvotegrænsen",
+        "mailbox_quota_left_exceeded": "Der er ikke nok plads tilbage (plads tilbage: %d MiB)",
+        "mailboxes_in_use": "Maks. postkasser skal være større eller lig med %d",
+        "malformed_username": "Misformet brugernavn",
+        "map_content_empty": "Kortindholdet må ikke være tomt",
+        "max_alias_exceeded": "Maks. aliaser overskredet",
+        "max_mailbox_exceeded": "Maks. postkasser overskredet (%d af %d)",
+        "max_quota_in_use": "Postkassekvoten skal være større eller lig med %d MiB",
+        "maxquota_empty": "Maks. kvote pr. postkasse må ikke være 0.",
+        "mysql_error": "MySQL fejl: %s",
+        "network_host_invalid": "Ugyldigt netværk eller vært: %s",
+        "next_hop_interferes": "%s interfererer med nexthop %s",
+        "next_hop_interferes_any": "En eksisterende næste hop interfererer med %s",
+        "no_user_defined": "Ingen brugerdefineret",
+        "object_exists": "Objekt %s eksisterer allerede",
+        "object_is_not_numeric": "Værdi %s er ikke numerisk",
+        "password_complexity": "Adgangskoden opfylder ikke politikken",
+        "password_empty": "Adgangskoden må ikke være tom",
+        "password_mismatch": "Bekræftelsesadgangskoden stemmer ikke overens",
+        "policy_list_from_exists": "Der findes en post med fornavn",
+        "policy_list_from_invalid": "Posten har ugyldigt format",
+        "private_key_error": "Privat nøglefejl: %s",
+        "pushover_credentials_missing": "Pushover-token og / eller nøgle mangler",
+        "pushover_key": "Pushover-nøglen har et forkert format",
+        "pushover_token": "Pushover-token har et forkert format",
+        "quota_not_0_not_numeric": "Kvoten skal være numerisk og >= 0",
+        "recipient_map_entry_exists": "En modtagerkortpost \"%s\" eksisterer",
+        "redis_error": "Redis fejl: %s",
+        "relayhost_invalid": "Kortindtastning %s er ugyldig",
+        "release_send_failed": "Beskeden kunne ikke frigives: %s",
+        "reset_f2b_regex": "Regex filter kunne ikke nulstilles i tide, prøv igen eller vent et par sekunder mere, og genindlæs webstedet.",
+        "resource_invalid": "Ressource navn %s er ugyldig",
+        "rl_timeframe": "Tidsramme for satsbegrænsning er forkert",
+        "rspamd_ui_pw_length": "Rspamd UI adgangskoden skal være mindst 6 tegn lang",
+        "script_empty": "Scriptet kan ikke være tomt",
+        "sender_acl_invalid": "Afsender ACL-værdi %s er ugyldig",
+        "set_acl_failed": "Kunne ikke indstille ACL",
+        "settings_map_invalid": "Indstillinger kort-id %s ugyldig",
+        "sieve_error": "Fejl i sile-parser: %s",
+        "spam_learn_error": "Spam lære fejl: %s",
+        "subject_empty": "Emnet må ikke være tomt",
+        "target_domain_invalid": "Måldomæne %s er ugyldig",
+        "targetd_not_found": "Måldomæne %s ikke fundet",
+        "targetd_relay_domain": "Måldomæne %s er et relædomæne",
+        "temp_error": "Midlertidig fejl",
+        "text_empty": "Teksten må ikke være tom",
+        "tfa_token_invalid": "TFA-token ugyldig",
+        "tls_policy_map_dest_invalid": "Politikens destination er ugyldig",
+        "tls_policy_map_entry_exists": "En post i TLS-politikkort \"%s\" eksisterer",
+        "tls_policy_map_parameter_invalid": "Politikparameter er ugyldig",
+        "totp_verification_failed": "Bekræftelse af TOTP mislykkedes",
+        "transport_dest_exists": "Transport destination \"%s\" eksisterer",
+        "u2f_verification_failed": "U2F-bekræftelse mislykkedes: %s",
+        "fido2_verification_failed": "Bekræftelse af FIDO2 mislykkedes: %s",
+        "unknown": "Der opstod en ukendt fejl",
+        "unknown_tfa_method": "Ukendt TFA-metode",
+        "unlimited_quota_acl": "Ubegrænset kvote forbudt af ACL",
+        "username_invalid": "Brugernavn %s kan ikke bruges",
+        "validity_missing": "Tildel venligst en gyldighedsperiode",
+        "value_missing": "Angiv alle værdier",
+        "yotp_verification_failed": "Yubico OTP verifikationen mislykkedes: %s"
+    },
+    "debug": {
+        "chart_this_server": "Diagram (denne server)",
+        "containers_info": "Oplysninger om containere",
+        "disk_usage": "Diskbrug",
+        "external_logs": "Eksterne logfiler",
+        "history_all_servers": "Historie (alle servere)",
+        "in_memory_logs": "In-memory logs",
+        "jvm_memory_solr": "Brug af JVM-hukommelse",
+        "log_info": "<p>mailcow <b>in-memory logs</b> er samlet i Redis-lister og trimmet til LOG_LINES (%d) hvert minut for at reducere hamring.\r\n  <br>Logbøger i hukommelsen er ikke beregnet til at være vedholdende. Alle applikationer, der logger ind i hukommelsen, logger også på Docker-dæmonen og derfor til standardlogdriveren.\r\n  <br>Logtypen i hukommelsen skal bruges til fejlfinding af mindre problemer med containere.</p>\r\n  <p><b>Eksterne logfiler</b> indsamles via API for den givne applikation.</p>\r\n  <p><b>Statiske logfiler</b> er for det meste aktivitetslogfiler, der ikke er logget på Dockerd, men stadig skal være vedholdende (undtagen API-logfiler).</p>",
+        "logs": "Logs",
+        "restart_container": "Genstart",
+        "solr_dead": "Solr starter, deaktiveres eller døde.",
+        "solr_docs": "Dokumenter",
+        "solr_last_modified": "Sidst ændret",
+        "solr_size": "Størrelse",
+        "solr_started_at": "Startede kl",
+        "solr_status": "Solr-status",
+        "solr_uptime": "Oppetid",
+        "started_on": "Startede den",
+        "static_logs": "Statiske logfiler",
+        "system_containers": "System og Beholdere"
+    },
+    "diagnostics": {
+        "cname_from_a": "Værdi afledt af A / AAAA-post. Dette understøttes, så længe posten peger på den korrekte ressource.",
+        "dns_records": "DNS-poster",
+        "dns_records_24hours": "Bemærk, at ændringer, der foretages i DNS, kan tage op til 24 timer for at få deres aktuelle status korrekt reflekteret på denne side. Det er beregnet som en måde for dig let at se, hvordan du konfigurerer dine DNS-poster og kontrollere, om alle dine poster er korrekt gemt i DNS.",
+        "dns_records_docs": "Se også <a target=\"_blank\" href=\"https://mailcow.github.io/mailcow-dockerized-docs/prerequisite-dns/\">dokumentationen</a>.",
+        "dns_records_data": "Korrekte data",
+        "dns_records_name": "Navn",
+        "dns_records_status": "Nuværende tilstand",
+        "dns_records_type": "Type",
+        "optional": "Denne post er valgfri."
+    },
+    "edit": {
+        "active": "Active",
+        "advanced_settings": "Avancerede indstillinger",
+        "alias": "rediger mere",
+        "allow_from_smtp": "Tillad kun, at disse IP&#39;er bruges <b>SMTP</b>",
+        "allow_from_smtp_info": "Lad det være tomt for at tillade alle afsendere.<br>IPv4/IPv6 adresser og netværk.",
+        "allowed_protocols": "Tilladte protokoller",
+        "app_name": "Appens navn",
+        "app_passwd": "App-adgangskode",
+        "automap": "Prøv at automatisere mapper (\"Sent items\", \"Sent\" => \"Sent\" etc.)",
+        "backup_mx_options": "Relæindstillinger",
+        "bcc_dest_format": "BCC-destination skal være en enkelt gyldig e-mail-adresse.",
+        "client_id": "Klient-id",
+        "client_secret": "Klienthemmelighed",
+        "comment_info": "En privat kommentar er ikke synlig for brugeren, mens en offentlig kommentar vises som værktøjstip, når den svæver i en brugeroversigt",
+        "delete1": "Slet fra kilden, når den er afsluttet",
+        "delete2": "Slet meddelelser på destinationen, der ikke er fra kilden",
+        "delete2duplicates": "Slet duplikater på destinationen",
+        "delete_ays": "Bekræft sletningsprocessen.",
+        "description": "Beskrivelse",
+        "disable_login": "Tillad ikke login (indgående mail accepteres stadig)",
+        "domain": "Rediger domæne",
+        "domain_admin": "Rediger domæneadministrator",
+        "domain_quota": "Domæne kvote",
+        "domains": "Domæner",
+        "dont_check_sender_acl": "Deaktiver afsenderkontrol for domæne %s (+ alias-domæner)",
+        "edit_alias_domain": "Rediger Alias-domæne",
+        "encryption": "Kryptering",
+        "exclude": "Ekskluder objekter (regex)",
+        "extended_sender_acl": "Eksterne afsenderadresser",
+        "extended_sender_acl_info": "En DKIM-domænenøgle skal importeres, hvis den er tilgængelig.<br>\r\n  Husk at tilføje denne server til den tilsvarende SPF TXT-post.<br>\r\n  Når et domæne eller aliasdomæne føjes til denne server, der overlapper en ekstern adresse, fjernes den eksterne adresse.<br>\r\n  Brug @domain.tld til at tillade at sende som *@domæne.tld.",
+        "force_pw_update": "Tving adgangskodeopdatering til næste login",
+        "force_pw_update_info": "Denne bruger kan kun logge ind på %s.",
+        "full_name": "Fulde navn",
+        "gal": "Global adresseliste",
+        "gal_info": "GAL indeholder alle objekter i et domæne og kan ikke redigeres af nogen bruger. Information om ledig / optaget i SOGo mangler, hvis deaktiveret! <b>Genstart SOGo for at anvende ændringer.</b>",
+        "generate": "frembringe",
+        "grant_types": "Tilskudstyper",
+        "hostname": "Værtsnavn",
+        "inactive": "Inaktiv",
+        "kind": "Kind",
+        "mailbox": "Rediger postkasse",
+        "mailbox_quota_def": "Standardpostkassekvote",
+        "max_aliases": "Maks. aliaser",
+        "max_mailboxes": "Maks. mulige postkasser",
+        "max_quota": "Maks. kvote pr. postkasse (MiB)",
+        "maxage": "Maksimumalder for beskeder i dage, der vil blive pollet fra fjernbetjeningen<br><small>(0 = ignorere alder)</small>",
+        "maxbytespersecond": "Maks. bytes pr. sekund <br><small>(0 = ubegrænset)</small>",
+        "mbox_rl_info": "Denne satsgrænse anvendes på SASL-loginnavnet, den matcher ethvert \"from\" adresse, der bruges af den indloggede bruger. En grænse for sats for postkasse tilsidesætter en satsgrænse for hele domænet.",
+        "mins_interval": "Interval (min)",
+        "multiple_bookings": "Flere bookinger",
+        "nexthop": "Næste hop",
+        "password": "Adgangskode",
+        "password_repeat": "Bekræftelsesadgangskode (gentag)",
+        "previous": "Forrige side",
+        "private_comment": "Privat kommentar",
+        "public_comment": "Offentlig hvordan",
+        "pushover_evaluate_x_prio": "Eskaler e-mail med høj prioritet [<code>X-Priority: 1</code>]",
+        "pushover_info": "Indstillinger for push-meddelelser gælder for al ren (ikke-spam) post, der leveres til <b>%s</b> inklusive aliaser (delt, ikke-delt, tagget).",
+        "pushover_only_x_prio": "Overvej kun post med høj prioritet [<code>X-Priority: 1</code>]",
+        "pushover_sender_array": "Overvej kun følgende afsender-e-mail-adresser <small>(comma-separated)</small>",
+        "pushover_sender_regex": "Overvej følgende afsender regex",
+        "pushover_text": "Meddelelsestekst",
+        "pushover_title": "Meddelelsestitel",
+        "pushover_vars": "Når der ikke er defineret et afsenderfilter, overvejes alle mails.<br>Regex såvel som nøjagtige afsenderkontrol kan defineres individuelt og vil blive betragtet i rækkefølge. De er ikke afhængige af hinanden.<br>Brugbare variabler til tekst og titel (vær opmærksom på databeskyttelsespolitikker)",
+        "pushover_verify": "Bekræft legitimationsoplysninger",
+        "quota_mb": "Kvote (MiB)",
+        "redirect_uri": "Omdirigering/tilbagekald URL",
+        "relay_all": "Send alle modtagere videre",
+        "relay_all_info": "↪ Hvis du vælger <b>ikke</b> for at videresende alle modtagere skal du tilføje en (\"blind\") postkasse til hver enkelt modtager, der skal videresendes.",
+        "relay_domain": "Send dette domæne videre",
+        "relay_transport_info": "<div class=\"label label-info\">Info</div> Du kan definere transportkort til en tilpasset destination for dette domæne. Hvis den ikke er indstillet, foretages der et MX-opslag.",
+        "relay_unknown_only": "Videresend kun ikke-eksisterende postkasser. Eksisterende postkasser leveres lokalt.",
+        "relayhost": "Afsenderafhængige transporter",
+        "remove": "Fjerne",
+        "resource": "Ressource",
+        "save": "Gem ændringer",
+        "scope": "Anvendelsesområde",
+        "sender_acl": "Tillad at sende som",
+        "sender_acl_disabled": "<span class=\"label label-danger\">Afsenderkontrol er deaktiveret</span>",
+        "sender_acl_info": "Hvis postkassebruger A har tilladelse til at sende som postkassebruger B, vises afsenderadressen ikke automatisk som valgbar \"from\" felt i SOGo.<br>\r\n  Postkassebruger B skal oprette en delegation i SOGo for at tillade postkassebruger A at vælge deres adresse som afsender. For at delegere en postkasse i SOGo skal du bruge menuen (tre prikker) til højre for dit postkassens navn øverst til venstre, mens du er i postvisningen. Denne adfærd gælder ikke for aliasadresser.",
+        "sieve_desc": "Kort beskrivelse",
+        "sieve_type": "Filtertype",
+        "skipcrossduplicates": "Spring duplikatbeskeder over mapper (først til mølle)",
+        "sogo_access": "Giv adgang til SOGo",
+        "sogo_access_info": "Giv eller tillad adgang til SOGo. Denne indstilling påvirker hverken adgang til alle andre tjenester eller sletter eller ændrer en eksisterende SOGo-profil for brugere.",
+        "sogo_visible": "Alias er synligt i SOGo",
+        "sogo_visible_info": "Denne indstilling påvirker kun objekter, der kan vises i SOGo (delte eller ikke-delte aliasadresser, der peger på mindst en lokal postkasse). Hvis skjult, vises et alias ikke som valgbar afsender i SOGo.",
+        "spam_alias": "Opret eller skift tidsbegrænsede aliasadresser",
+        "spam_policy": "Tilføj eller fjern genstande til hvid- / sortliste",
+        "spam_score": "Indstil en brugerdefineret spam-score",
+        "subfolder2": "Synkroniser til undermappe på destinationen<br><small>(tom = brug ikke undermappe)</small>",
+        "syncjob": "Rediger synkroniseringsjob",
+        "target_address": "Gå til adresse (r) <small>(komma separeret)</small>",
+        "target_domain": "Måldomæne",
+        "timeout1": "Timeout for forbindelse til ekstern vært",
+        "timeout2": "Timeout for forbindelse til lokal vært",
+        "title": "Rediger objekt",
+        "unchanged_if_empty": "Lad være tomt, hvis uændret",
+        "username": "Brugernavn",
+        "validate_save": "Valider og gem"
+    },
+    "footer": {
+        "cancel": "Afbestille",
+        "confirm_delete": "Bekræft sletning",
+        "delete_now": "Slet nu",
+        "delete_these_items": "Bekræft dine ændringer til følgende objekt-id",
+        "hibp_nok": "Matchet! Dette er en potentielt farlig adgangskode!",
+        "hibp_ok": "Ingen match fundet.",
+        "loading": "Vent venligst...",
+        "restart_container": "Genstart beholderen",
+        "restart_container_info": "<b>Vigtig:</b> Det kan tage et stykke tid at gennemføre en yndefuld genstart. Vent til den er færdig.",
+        "restart_now": "Genstart nu",
+        "restarting_container": "Genstart af beholder, det kan tage et stykke tid"
+    },
+    "header": {
+        "administration": "Konfiguration og detailer",
+        "apps": "Apps",
+        "debug": "Systemoplysninger",
+        "mailboxes": "Mailopsætning",
+        "mailcow_settings": "Konfiguration",
+        "quarantine": "Karantæne",
+        "restart_netfilter": "Genstart netfilter",
+        "restart_sogo": "Genstart SOGo",
+        "user_settings": "Brugerindstillinger"
+    },
+    "info": {
+        "awaiting_tfa_confirmation": "Venter på TFA-bekræftelse",
+        "no_action": "Ingen handling gældende",
+        "session_expires": "Din session udløber om cirka 15 sekunder"
+    },
+    "login": {
+        "delayed": "Login blev forsinket med% s sekunder.",
+        "fido2_webauthn": "FIDO2/WebAuthn",
+        "login": "Login",
+        "mobileconfig_info": "Log ind som postkassebruger for at downloade den anmodede Apple-forbindelsesprofil.",
+        "other_logins": "Nøgle login",
+        "password": "Adgangskode",
+        "username": "Brugernavn"
+    },
+    "mailbox": {
+        "action": "Handling",
+        "activate": "Aktivér",
+        "active": "Aktiv",
+        "add": "Tilføje",
+        "add_alias": "Tilføj alias",
+        "add_bcc_entry": "Tilføj BCC-kort",
+        "add_domain": "Tilføj domæne",
+        "add_domain_alias": "Tilføj domænealias",
+        "add_domain_record_first": "Tilføj først et domæne",
+        "add_filter": "Tilføj filter",
+        "add_mailbox": "Tilføj postkasse",
+        "add_recipient_map_entry": "Tilføj modtagerkort",
+        "add_resource": "Tilføj ressource",
+        "add_tls_policy_map": "Tilføj TLS-politikkort",
+        "address_rewriting": "Omskrivning af adresse",
+        "alias": "Alias",
+        "alias_domain_alias_hint": "Aliaser er <b>not</b> anvendes automatisk på domænealiaser. En alias-adresse <code>mit-alias@domain</code> <b>gør ikke</b> dække adressen <code>my-alias@alias-domain</code> (hvor \"alias-domain\" er et imaginært aliasdomæne for \"domain\").<br>Brug et sigfilter til at omdirigere mail til en ekstern postkasse (se fanen \"Filters\" eller brug SOGo -> fremsender).",
+        "alias_domain_backupmx": "Alias-domæne inaktivt for relædomæne",
+        "aliases": "Aliaser",
+        "allow_from_smtp": "Tillad kun, at disse IPer bruges <b>SMTP</b>",
+        "allow_from_smtp_info": "Lad det være tomt for at tillade alle afsendere.<br>IPv4/IPv6adresser og netværk.",
+        "allowed_protocols": "Tilladte protokoller",
+        "backup_mx": "Relædomæne",
+        "bcc": "BCC",
+        "bcc_destination": "BCC bestemmelsessted",
+        "bcc_destinations": "BCC bestemmelsessted",
+        "bcc_info": "BCC-kort bruges til lydsvagt at videresende kopier af alle meddelelser til en anden adresse. En modtagerkorttypepost bruges, når den lokale destination fungerer som modtager af en mail. Afsenderkort overholder det samme princip.<br/>\r\n  Den lokale destination vil ikke blive informeret om en mislykket levering.",
+        "bcc_local_dest": "Lokal destination",
+        "bcc_map": "BCC kort",
+        "bcc_map_type": "BCC type",
+        "bcc_maps": "BCC maps",
+        "bcc_rcpt_map": "Modtagerkort",
+        "bcc_sender_map": "Afsender kort",
+        "bcc_to_rcpt": "Skift til modtagerens korttype",
+        "bcc_to_sender": "Skift til afsenderkorttype",
+        "bcc_type": "BCC-type",
+        "booking_0": "Vis altid som gratis",
+        "booking_0_short": "Altid gratis",
+        "booking_custom": "Hard-limit til et brugerdefineret antal bookinger",
+        "booking_custom_short": "Hård grænse",
+        "booking_lt0": "Ubegrænset, men vis som optaget, når booket",
+        "booking_lt0_short": "Blød grænse",
+        "daily": "Daglige",
+        "deactivate": "Deaktiver",
+        "description": "Beskrivelse",
+        "disable_login": "Tillad ikke login (indgående mail accepteres stadig)",
+        "disable_x": "Deaktiver",
+        "domain": "Domæne",
+        "domain_admins": "Domæneadministratorer",
+        "domain_aliases": "Domænealiaser",
+        "domain_quota": "Kvote",
+        "domains": "Domains",
+        "edit": "Edit",
+        "empty": "Ingen resultater",
+        "enable_x": "Aktiver",
+        "excludes": "Ekskluderer",
+        "filter_table": "Filtertabel",
+        "filters": "Filtre",
+        "fname": "Fulde navn",
+        "hourly": "Hver time",
+        "in_use": "I brug (%)",
+        "inactive": "Inaktiv",
+        "insert_preset": "Indsæt eksempel forudindstilling \"%s\"",
+        "kind": "Kind",
+        "last_mail_login": "Last mail login",
+        "last_run": "Sidste løb",
+        "last_run_reset": "Planlæg næste",
+        "mailbox": "Postkasse",
+        "mailbox_defquota": "Standardstørrelse på postkasse",
+        "mailbox_quota": "Maks. størrelsen på en postkasse",
+        "mailboxes": "Postkasser",
+        "mailbox_defaults": "Standardindstillinger",
+        "mailbox_defaults_info": "Definer standardindstillinger for nye postkasser.",
+        "mins_interval": "Interval (min)",
+        "msg_num": "Besked #",
+        "multiple_bookings": "Flere bookinger",
+        "never": "Aldrig",
+        "no": "&#10005;",
+        "no_record": "Ingen registrering for objekt %s",
+        "no_record_single": "Jeg kan ikke huske det",
+        "owner": "Ejer",
+        "private_comment": "Privat kommentar",
+        "public_comment": "Offentlig hvordan",
+        "q_add_header": "Uønsket mappe",
+        "q_all": "Alle kategorier",
+        "q_reject": "Afvist",
+        "quarantine_notification": "Karantænemeddelelser",
+        "quarantine_category": "Karantænemeddelelseskategori",
+        "quick_actions": "Handlinger",
+        "recipient_map": "Modtagerkort",
+        "recipient_map_info": "Modtagerkort bruges til at erstatte destinationsadressen i en meddelelse, før den leveres.",
+        "recipient_map_new": "Ny modtager",
+        "recipient_map_new_info": "Modtagerkortdestination skal være en gyldig e-mail-adresse.",
+        "recipient_map_old": "Original modtager",
+        "recipient_map_old_info": "En modtager kortlægger den originale destination, skal være gyldige e-mail-adresser eller et domænenavn.",
+        "recipient_maps": "Modtagerkort",
+        "remove": "Fjerne",
+        "resources": "Ressourcer",
+        "running": "Løb",
+        "set_postfilter": "Marker som postfilter",
+        "set_prefilter": "Marker som forfilter",
+        "sieve_info": "Du kan gemme flere filtre pr. Bruger, men kun et forfilter og et efterfilter kan være aktive på samme tid.<br>\r\nHvert filter behandles i den beskrevne rækkefølge. Hverken et mislykket script eller et udstedt \"keep;\" stopper behandlingen af yderligere scripts. Ændringer i globale sigtscript vil udløse en genstart af Dovecot.<br><br>Globalt sigteforfilter → Forfilter → Bruger scripts → Efterfilter → Globalt sigte efterfilter",
+        "sieve_preset_1": "Kassér e-mail med sandsynlige farlige filtyper",
+        "sieve_preset_2": "Marker altid e-mailen til en bestemt afsender som set",
+        "sieve_preset_3": "Kassér lydløst, stop al yderligere sigtebehandling",
+        "sieve_preset_4": "Fil til INBOX, spring videre behandling ved hjælp af sigtefiltre",
+        "sieve_preset_5": "Autosvar (ferie)",
+        "sieve_preset_6": "Afvis mail med svar",
+        "sieve_preset_7": "Omdiriger og hold/slip",
+        "sieve_preset_8": "Kassér besked sendt til en aliasadresse, som afsenderen er en del af",
+        "sieve_preset_header": "Se eksemplet på forudindstillinger nedenfor. For flere detaljer se <a href=\"https://en.wikipedia.org/wiki/Sieve_(mail_filtering_language)\" target=\"_blank\">Wikipedia</a>.",
+        "sogo_visible": "Alias er synligt i SOGo",
+        "sogo_visible_n": "Skjul alias i SOGo",
+        "sogo_visible_y": "Vis alias i SOGo",
+        "spam_aliases": "Temp. alias",
+        "stats": "Statistikker",
+        "status": "Status",
+        "sync_jobs": "Synkroniser job",
+        "table_size": "Bordstørrelse",
+        "table_size_show_n": "Vis %s genstande",
+        "target_address": "Gå til adresse",
+        "target_domain": "Måldomæne",
+        "tls_enforce_in": "Håndhæv TLS indgående",
+        "tls_enforce_out": "Håndhæve TLS udgående",
+        "tls_map_dest": "Bestemmelsessted",
+        "tls_map_dest_info": "Eksempler: eksempel.org, .eksempel.org, [mail.eksempel.org]:25",
+        "tls_map_parameters": "Parametre",
+        "tls_map_parameters_info": "Tom eller for eksempel parametre: protocols=!SSLv2 ciphers=medium exclude=3DES",
+        "tls_map_policy": "Politik",
+        "tls_policy_maps": "TLS-politikkort",
+        "tls_policy_maps_info": "Dette politikkort tilsidesætter udgående TLS-transportregler uafhængigt af brugernes TLS-politikindstillinger.<br>\r\n Kontroller venligst <a href=\"http://www.postfix.org/postconf.5.html#smtp_tls_policy_maps\" target=\"_blank\">the \"smtp_tls_policy_maps\" docs</a>for mere information.",
+        "tls_policy_maps_enforced_tls": "Disse politikker tilsidesætter også adfærd for postkassebrugere, der håndhæver udgående TLS-forbindelser. Hvis der ikke findes nogen politik nedenfor, anvender disse brugere standardværdierne angivet som <code>smtp_tls_mandatory_protocols</code> og <code>smtp_tls_mandatory_ciphers</code>.",
+        "tls_policy_maps_long": "Udgående TLS-politikkort tilsidesætter",
+        "toggle_all": "Skift alt",
+        "username": "Brugernavn",
+        "waiting": "Venter",
+        "weekly": "Ugentlig",
+        "yes": "&#10003;"
+    },
+    "oauth2": {
+        "access_denied": "Log ind som mailboks ejer for at give adgang via OAuth2.",
+        "authorize_app": "Godkend ansøgning",
+        "deny": "Nægte",
+        "permit": "Godkend ansøgning",
+        "profile": "Profil",
+        "profile_desc": "Se personlige oplysninger: brugernavn, fuldt navn, oprettet, ændret, aktiv",
+        "scope_ask_permission": "En applikation anmodede om følgende tilladelser"
+    },
+    "quarantine": {
+        "action": "Handling",
+        "atts": "Vedhæftede filer",
+        "check_hash": "Søgefil hash @ VT",
+        "confirm": "Bekræfte",
+        "confirm_delete": "Bekræft sletningen af dette element.",
+        "danger": "Fare",
+        "deliver_inbox": "Lever til indbakke",
+        "disabled_by_config": "Den aktuelle systemkonfiguration deaktiverer karantænefunktionaliteten. Indstil venligst \"tilbageholdelse pr. postkasse\" og en \"maksimal størrelse\" til karantæneelementer.",
+        "download_eml": "Hent (.eml)",
+        "empty": "Ingen resultater",
+        "high_danger": "Høj",
+        "info": "Information",
+        "junk_folder": "Uønsket mappe",
+        "learn_spam_delete": "Lær som spam og slet",
+        "low_danger": "Lav",
+        "medium_danger": "Medium",
+        "neutral_danger": "Neutral",
+        "notified": "Meddelt",
+        "qhandler_success": "Anmodning blev sendt til systemet. Du kan nu lukke vinduet.",
+        "qid": "Rspamd QID",
+        "qinfo": "Karantænesystemet gemmer afvist mail i databasen (afsenderen vil <em>ikke</em> få indtryk af en leveret post) såvel som mail, der leveres som kopi i skraldemappen i en postkasse.\r\n  <br>\"Lær som spam og slet\" vil lære en besked som spam via Bayesiansk sætning og også beregne fuzzy hashes for at nægte lignende meddelelser i fremtiden.\r\n  <br>Vær opmærksom på, at indlæring af flere meddelelser kan - afhængigt af dit system - være tidskrævende.<br> Sortlistede elementer er udelukket fra karantæne.",
+        "qitem": "Karantæneartikel",
+        "quarantine": "Karantæne",
+        "quick_actions": "Handlinger",
+        "rcpt": "Modtager",
+        "received": "Modtaget",
+        "recipients": "Modtagere",
+        "refresh": "Opdater",
+        "rejected": "Afvist",
+        "release": "Frigøre",
+        "release_body": "Vi har vedhæftet din besked som eml-fil til denne besked.",
+        "release_subject": "Potentielt skadelig karantæneartikel %s",
+        "remove": "Fjerne",
+        "rewrite_subject": "Omskriv emne",
+        "rspamd_result": "Rspamd resultat",
+        "sender": "Sender (SMTP)",
+        "sender_header": "Sender (\"Fra\" header)",
+        "type": "Type",
+        "quick_release_link": "Åbn link til hurtig frigivelse",
+        "quick_delete_link": "Åbn linket til hurtig sletning",
+        "quick_info_link": "Åbn info link",
+        "show_item": "Vis element",
+        "spam": "Spam",
+        "spam_score": "Score",
+        "subj": "Emne",
+        "table_size": "Bordstørrelse",
+        "table_size_show_n": "Vis %s genstande",
+        "text_from_html_content": "Indhold (konverterede html)",
+        "text_plain_content": "Indhold (text/plain)",
+        "toggle_all": "Skift alt"
+    },
+    "start": {
+        "help": "Vis / skjul hjælpepanel",
+        "imap_smtp_server_auth_info": "Brug din fulde e-mail-adresse og PLAIN-godkendelsesmekanismen.<br>\r\nDine login-data bliver krypteret af den obligatoriske kryptering på serversiden.",
+        "mailcow_apps_detail": "Brug en mailcow-app til at få adgang til dine mails, kalender, kontakter og mere.",
+        "mailcow_panel_detail": "<b>Domæneadministratorer</b> oprette, ændre eller slette postkasser og aliasser, ændre domæner og læse yderligere information om deres tildelte domæner.<br>\r\n<b>Mailbox-brugere</b>er i stand til at oprette tidsbegrænsede aliaser (spamaliaser), ændre deres adgangskode og spamfilterindstillinger."
+    },
+    "success": {
+        "acl_saved": "ACL til objekt %s gemt",
+        "admin_added": "Administrator %s er tilføjet",
+        "admin_api_modified": "Ændringer i API er gemt",
+        "admin_modified": "Ændringer til administrator er gemt",
+        "admin_removed": "Administrator %s er blevet fjernet",
+        "alias_added": "Alias-adresse %s (%d) er tilføjet",
+        "alias_domain_removed": "Domænealias %s er blevet fjernet",
+        "alias_modified": "Ændringer i alias-adresse %s er blevet gemt",
+        "alias_removed": "Alias %s er blevet fjernet",
+        "aliasd_added": "Tilføjetdomænealias %s",
+        "aliasd_modified": "Ændringer i alias-domæne %s er blevet gemt",
+        "app_links": "Gemte ændringer til applinks",
+        "app_passwd_added": "Tilføjet ny app-adgangskode",
+        "app_passwd_removed": "Fjernet app-adgangskode-id %s",
+        "bcc_deleted": "BCC-kortindgange slettet: %s",
+        "bcc_edited": "BCC-kortindgang %s redigeret",
+        "bcc_saved": "BCC-kortindgang gemt",
+        "db_init_complete": "Initialisering af database afsluttet",
+        "delete_filter": "Slettet filter-ID %s",
+        "delete_filters": "Slettede filtre: %s",
+        "deleted_syncjob": "Slettet syncjob-id %s",
+        "deleted_syncjobs": "Slettede syncjobs: %s",
+        "dkim_added": "DKIM-nøgle %s er blevet gemt",
+        "dkim_duplicated": "DKIM-nøgle til domæne %s er blevet kopieret til %s",
+        "dkim_removed": "DKIM-nøgle %s er blevet fjernet",
+        "domain_added": "Tilføjet domæne %s",
+        "domain_admin_added": "Domæne administrator %s er tilføjet",
+        "domain_admin_modified": "Ændringer til domæneadministrator %s er blevet gemt",
+        "domain_admin_removed": "Domæne administrator %s er blevet fjernet",
+        "domain_modified": "Ændringer i domæne %s er blevet gemt",
+        "domain_removed": "Domæne %s er blevet fjernet",
+        "dovecot_restart_success": "Dovecot blev genstartet",
+        "eas_reset": "ActiveSync-enheder til bruger %s blev nulstillet",
+        "f2b_modified": "Changes to Fail2ban parameters have been saved",
+        "forwarding_host_added": "Videresendende vært %s er tilføjet",
+        "forwarding_host_removed": "Videresendende vært %s er blevet fjernet",
+        "global_filter_written": "Filtret blev skrevet til filen",
+        "hash_deleted": "Hash slettet",
+        "item_deleted": "Item %s successfully deleted",
+        "item_released": "Item %s released",
+        "items_deleted": "Element %s slettet",
+        "items_released": "Selected items were released",
+        "learned_ham": "Successfully learned ID %s as ham",
+        "license_modified": "Ændringer i licens er gemt",
+        "logged_in_as": "logget ind som %s",
+        "mailbox_added": "Postkasse %s er tilføjet",
+        "mailbox_modified": "Ændringer i postkassen %s er blevet gemt",
+        "mailbox_removed": "Mailbox %s has been removed",
+        "object_modified": "Ændringer af objektet %s er blevet gemt",
+        "pushover_settings_edited": "Pushover-indstillinger er vellykket indstillet. Bekræft legitimationsoplysninger.",
+        "qlearn_spam": "Besked-id %s blev lært som spam og slettet",
+        "queue_command_success": "Køkommandoen blev fuldført",
+        "recipient_map_entry_deleted": "Modtagerkort-id %s er blevet slettet",
+        "recipient_map_entry_saved": "Modtagerkortindtastning \"%s\" er blevet gemt",
+        "relayhost_added": "Kortindtastning %s er tilføjet",
+        "relayhost_removed": "Kortindtastning %s er blevet fjernet",
+        "reset_main_logo": "Nulstil til standardlogo",
+        "resource_added": "Resource %s has been added",
+        "resource_modified": "Ændringer i postkassen %s er blevet gemt",
+        "resource_removed": "Ressource %s er blevet fjernet",
+        "rl_saved": "Satsgrænse for objekt %s gemt",
+        "rspamd_ui_pw_set": "Rspamd UI-adgangskode er indstillet",
+        "saved_settings": "Gemte indstillinger",
+        "settings_map_added": "Tilføjede indstillinger kortindtastning",
+        "settings_map_removed": "Fjernet indstillingskort-id %s",
+        "sogo_profile_reset": "SOGo-profil til bruger %s blev nulstillet",
+        "tls_policy_map_entry_deleted": "TLS-politik kort-id %s er blevet slettet",
+        "tls_policy_map_entry_saved": "TLS politik kort post \"%s\" er blevet gemt",
+        "ui_texts": "Gemte ændringer til UI-tekster",
+        "upload_success": "Filen blev uploadet",
+        "verified_totp_login": "Bekræftet TOTP-login",
+        "verified_u2f_login": "Bekræftet U2F-login",
+        "verified_fido2_login": "Bekræftet FIDO2-login",
+        "verified_yotp_login": "Bekræftet Yubico OTP-login"
+    },
+    "tfa": {
+        "api_register": "%s bruger Yubico Cloud API. Få en API-nøgle til din nøgle <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">here</a>",
+        "confirm": "Bekræft",
+        "confirm_totp_token": "Bekræft dine ændringer ved at indtaste det genererede token",
+        "delete_tfa": "Deaktiver TFA",
+        "disable_tfa": "Deaktiver TFA indtil næste vellykkede login",
+        "enter_qr_code": "Din TOTP kode hvis din enhed ikke kan scanne QR-koder",
+        "error_code": "Fejl kode",
+        "init_u2f": "Initialiserer, vent venligst...",
+        "key_id": "En identifikator til din YubiKey",
+        "key_id_totp": "En identifikator for din nøgle",
+        "none": "Deaktivere",
+        "reload_retry": "- (genindlæs browseren, hvis fejlen fortsætter)",
+        "scan_qr_code": "Scan venligst følgende kode med din godkendelsesapp, eller indtast koden manuelt.",
+        "select": "Vælg venligst",
+        "set_tfa": "Set 2-faktor godkendelses metoden",
+        "start_u2f_validation": "Start validering",
+        "tfa": "2-faktor godkendelse",
+        "tfa_token_invalid": "TFA nøgle ugyldig",
+        "totp": "Tids-baseret OTP (Google Authenticator, Authy, etc.)",
+        "u2f": "U2F godkendelse",
+        "waiting_usb_auth": "<i>Venter på USB-enhed...</i><br><br>Tryk let på knappen på din USB-enhed nu.",
+        "waiting_usb_register": "<i>Venter på USB-enhed...</i><br><br>Indtast din adgangskode ovenfor, og bekræft din registrering ved at trykke på knappen på din USB-enhed.",
+        "yubi_otp": "Yubico OTP godkendelse"
+    },
+    "fido2": {
+        "set_fn": "Set venneligt navn",
+        "fn": "Venneligt navn",
+        "rename": "omdøb",
+        "confirm": "Bekræft",
+        "register_status": "Registreringsstatus",
+        "known_ids": "Kendte ID'er",
+        "none": "Deaktiveret",
+        "set_fido2": "Registrer FIDO2 endhed",
+        "start_fido2_validation": "Start FIDO2 validering",
+        "fido2_auth": "Login med FIDO2",
+        "fido2_success": "Enheden blev registreret",
+        "fido2_validation_failed": "Validering mislykkedes"
+    },
+    "user": {
+        "action": "Handling",
+        "active": "Aktiv",
+        "active_sieve": "Aktive filtre",
+        "advanced_settings": "Avancerede indstillinger",
+        "alias": "Alias",
+        "alias_create_random": "Generer tilfældigt alias",
+        "alias_extend_all": "Forlæng aliaserne med 1 time",
+        "alias_full_date": "d.m.Y, H:i:s T",
+        "alias_remove_all": "Fjern alle aliaser",
+        "alias_select_validity": "Gyldighedsperiode",
+        "alias_time_left": "Tid tilbage",
+        "alias_valid_until": "Gyldig indtil",
+        "aliases_also_send_as": "Også tilladt at sende som bruger",
+        "aliases_send_as_all": "Do not check sender access for the following domain(s) and its alias domains",
+        "app_hint": "App adgangskoder er alternative adgangskoder til din <b>IMAP og SMTP</b> login. Brugernavnet forbliver uændret.<br>SOGo (inklusive AktivSync) er ikke tilgængelig via app-adgangskoder.",
+        "app_name": "App navn",
+        "app_passwds": "App kodeord",
+        "apple_connection_profile": "Apple forbindelses profil",
+        "apple_connection_profile_complete": "Denne forbindelses profil inkludere IMAP og SMTP parametre også CalDAV (kalendre) og CardDAV (kontakter) veje for en Apple endhed.",
+        "apple_connection_profile_mailonly": "Denne forbindelses profil inkludere IMAP og SMTP konfigurations parametere for en Apple endhed.",
+        "change_password": "Skift kodeord",
+        "client_configuration": "Vis konfigurationsvejledning for email klinter og mobiltelefoner",
+        "create_app_passwd": "Opret app kodeord",
+        "create_syncjob": "Opret nyt sync job",
+        "daily": "Dagligt",
+        "day": "dag",
+        "delete_ays": "Bekræft venligst ønsket om sletning.",
+        "direct_aliases": "Direkte alias addresser",
+        "direct_aliases_desc": "Direkte alias-adresser påvirkes af spamfilter og TLS-politiske indstillinger.",
+        "eas_reset": "Nulstil AktivSync endhed cache",
+        "eas_reset_help": "I mange tilfælde hjælper en nulstilling af enhedens cache med at gendanne en ødelagt ActiveSync-profil.<br><b>Advarsel:</b> Alle elementer downloades igen!",
+        "eas_reset_now": "Nultil nu",
+        "edit": "redigere",
+        "email": "Email",
+        "email_and_dav": "Email, kalender and kontakter",
+        "encryption": "kryptering",
+        "excludes": "Ekskluderer",
+        "expire_in": "Udløber om",
+        "force_pw_update": "Du <b>SKAL</b> indstille en ny adgangskode for at få adgang til groupware-relaterede tjenester.",
+        "generate": "generere",
+        "hour": "tid",
+        "hourly": "Timelig",
+        "hours": "timer",
+        "in_use": "I brug",
+        "interval": "Interval",
+        "is_catch_all": "Fang-alle for domæne/r",
+        "last_mail_login": "Sidste mail login",
+        "last_run": "Sidste kørsel",
+        "loading": "Indlæser...",
+        "mailbox_details": "Postkassedetaljer",
+        "messages": "beskeder",
+        "never": "Aldrig",
+        "new_password": "Nyt kodeord",
+        "new_password_description": "Krav: 6 tegn lange, bogstaver og tal.",
+        "new_password_repeat": "Bekræftelsesadgangskode (gentag)",
+        "no_active_filter": "Intet aktivt filter tilgængeligt",
+        "no_last_login": "Ingen sidste UI-loginoplysninger",
+        "no_record": "Ingen optegnelser",
+        "password": "Kodeord",
+        "password_now": "Nuværende kodeord (bekræft ændring)",
+        "password_repeat": "Kodeord (gentag)",
+        "pushover_evaluate_x_prio": "Eskaler e-mail med høj prioritet [<code>X-Prioritet: 1</code>]",
+        "pushover_info": "Indstillinger for push-meddelelser gælder for al ren (ikke-spam) post, der leveres til <b>%s</b> inklusive aliaser (delt, ikke-delt, tagget).",
+        "pushover_only_x_prio": "Only consider high priority mail [<code>X-Priority: 1</code>]",
+        "pushover_sender_array": "Overvej følgende afsender-e-mail-adresser <small>(comma-separated)</small>",
+        "pushover_sender_regex": "Match afsendere efter følgende regex",
+        "pushover_text": "Notifikations tekst",
+        "pushover_title": "Notifikations titel",
+        "pushover_vars": "Når der ikke er defineret et afsenderfilter, overvejes alle mails.<br>Regex såvel filtre som nøjagtige afsenderkontrol kan defineres individuelt og vil blive betragtet i rækkefølge. De er ikke afhængige af hinanden.<br>Brugbare variabler til tekst og titel (vær opmærksom på databeskyttelsespolitikker)",
+        "pushover_verify": "Bekræft legitimationsoplysninger",
+        "q_add_header": "Uønsket Mappe",
+        "q_all": "Alle Kategorier",
+        "q_reject": "Afvist",
+        "quarantine_notification": "Karantænemeddelelser",
+        "quarantine_category": "Karantænemeddelelseskategori",
+        "quarantine_notification_info": "Når en meddelelse er sendt, markeres elementrne som \"notified\" og der sendes ingen yderligere meddelelser om denne særlige element.",
+        "quarantine_category_info": "Meddelelseskategorien \"Rejected\" inkluderer mail, der blev afvist, mens \"Junk folder\" vil underrette en bruger om mails, der blev sat i junk-mappen.",
+        "remove": "Slet",
+        "running": "Kører",
+        "save": "Gem ændring",
+        "save_changes": "Gem ændringer",
+        "sender_acl_disabled": "<span class=\"label label-danger\">Afsender tjek er slået fra</span>",
+        "shared_aliases": "Delte aliasadresser",
+        "shared_aliases_desc": "Delt alias påvirkes ikke af brugerspecifikke indstillinger såsom spamfilter eller krypteringspolitik. Tilselementnde spamfiltre kan kun foretages af en administrator som en politik, der dækker hele domænet.",
+        "show_sieve_filters": "Vis det aktive brugerfilter",
+        "sogo_profile_reset": "Nulstil SOGo profil",
+        "sogo_profile_reset_help": "Dette vil ødelægge en bruger SOGo-profil og <b>slette alle kontakt- og kalenderdata, der ikke kan hentes</b>.",
+        "sogo_profile_reset_now": "Nulstil profil nu",
+        "spam_aliases": "Midlertidige e-mail kaldenavne",
+        "spam_score_reset": "Nulstil til server Standardværdi",
+        "spamfilter": "Spam filter",
+        "spamfilter_behavior": "Bedømmelse",
+        "spamfilter_bl": "Sortliste",
+        "spamfilter_bl_desc": "Sortlistede e-mail-adresser til <b>altid</b> at klassificeres som spam og afvise. Afvist mail vil <b>ikke</b> kopieres til karantæne. Jokertegn kan bruges. Et filter anvendes kun til direkte aliaser (aliaser med en enkelt målpostkasse) eksklusive fang-aliaser og selve en postkasse.",
+        "spamfilter_default_score": "Standardværdi",
+        "spamfilter_green": "Grøn: denne besked er ikke uønsket",
+        "spamfilter_hint": "Den første værdi beskriver \"low spam score\", det andet repræsenterer \"high spam score\".",
+        "spamfilter_red": "Rød: Denne besked er uønsket og bliver afvist af serveren",
+        "spamfilter_table_action": "Handling",
+        "spamfilter_table_add": "Tilføj element",
+        "spamfilter_table_domain_policy": "n/a (domæne politik)",
+        "spamfilter_table_empty": "Intet data at vise",
+        "spamfilter_table_remove": "slet",
+        "spamfilter_table_rule": "Regl",
+        "spamfilter_wl": "Hvisliste",
+        "spamfilter_wl_desc": "Hvidlistede e-mail-adresser til <b>aldrig</b> at klassificeres som spam. Wildcards kan bruges. Et filter anvendes kun på direkte aliaser (aliaser med en enkelt målpostkasse) eksklusive catch-aliaser og selve en postkasse.",
+        "spamfilter_yellow": "Gul: denne besked kan være spam, vil blive tagget som spam og flyttes til din junk-mappe",
+        "status": "Status",
+        "sync_jobs": "Sync jobs",
+        "tag_handling": "Set handling for taggede mails",
+        "tag_help_example": "Eksempel på en tagget e-mail-adresse : me<b>+Tacaly</b>@example.org",
+        "tag_help_explain": "I undermappe: En ny undermappe opkaldt efter tagget oprettes under INBOX  (\"INBOX/Tacaly\").<br>\r\nI emne: navnene på tags bliver præpenderet til mailsemnet, eksempel:  \"[Tacaly] Mine Nyhedder\".",
+        "tag_in_none": "Gør intet",
+        "tag_in_subfolder": "I undermappe",
+        "tag_in_subject": "I emne",
+        "text": "Tekst",
+        "title": "Titel",
+        "tls_enforce_in": "Tving TLS indgående",
+        "tls_enforce_out": "Tving TLS udgående",
+        "tls_policy": "krypterings politik",
+        "tls_policy_warning": "<strong>Warning:</strong> If you decide to enforce encrypted mail transfer, you may lose emails.<br>Messages to not satisfy the policy will be bounced with a hard fail by the mail system.<br>This option applies to your primary email address (login name), all addresses derived from alias domains as well as alias addresses <b>with only this single mailbox</b> as target.",
+        "user_settings": "Bruger indstillinger",
+        "username": "Brugernavn",
+        "verify": "Bekræft",
+        "waiting": "Venter",
+        "week": "uge",
+        "weekly": "Ugeligt",
+        "weeks": "uger"
+    },
+    "warning": {
+        "cannot_delete_self": "Kan ikke slette en bruger som er logget ind.",
+        "domain_added_sogo_failed": "Domæne er tilføjet men kan ikke genstarte SOGo, tjek venligst dine server logs.",
+        "dovecot_restart_failed": "Dovecot kunne ikke genstarte, tjek venligst dine logs",
+        "fuzzy_learn_error": "Fuzzy hash lærings fejl: %s",
+        "hash_not_found": "Hash blev ikke fundet eller allerede slettet",
+        "ip_invalid": "Sprang over ugyldige IP: %s",
+        "no_active_admin": "Kan ikke deaktivere den sidste administrator",
+        "quota_exceeded_scope": "Domænekvote overskredet: Kun ubegrænsede postkasser kan oprettes i dette domæneomfang.",
+        "session_token": "Form nøgle ugyldig: Nøgle passer ikke",
+        "session_ua": "Form nøgle ugyldig: Bruger-Agent gyldighedskontrols fejl"
+    }
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/lang/lang.de.json b/mailcow/src/mailcow-dockerized/data/web/lang/lang.de.json
index 4ab9331..4d2f27a 100644
--- a/mailcow/src/mailcow-dockerized/data/web/lang/lang.de.json
+++ b/mailcow/src/mailcow-dockerized/data/web/lang/lang.de.json
@@ -2,19 +2,22 @@
     "acl": {
         "alias_domains": "Alias-Domains hinzufügen",
         "app_passwds": "App-Passwörter verwalten",
-        "bcc_maps": "BCC Maps",
-        "delimiter_action": "Delimiter Aktionen (tags)",
+        "bcc_maps": "BCC-Maps",
+        "delimiter_action": "Delimiter-Aktionen (tags)",
+        "domain_desc": "Domainbeschreibung ändern",
+        "domain_relayhost": "Relayhost für eine Domain setzen",
         "eas_reset": "EAS-Cache zurücksetzen",
         "extend_sender_acl": "Eingabe externer Absenderadressen erlauben",
         "filters": "Filter",
         "login_as": "Einloggen als Mailbox-Benutzer",
+        "mailbox_relayhost": "Relayhost für eine Mailbox setzen",
         "prohibited": "Untersagt durch Richtlinie",
         "protocol_access": "Ändern der erlaubten Protokolle",
         "pushover": "Pushover",
         "quarantine": "Quarantäne-Aktionen",
         "quarantine_attachments": "Anhänge aus Quarantäne",
-        "quarantine_notification": "Ändern der Quarantäne-Benachrichtigung",
         "quarantine_category": "Ändern der Quarantäne-Benachrichtigungskategorie",
+        "quarantine_notification": "Ändern der Quarantäne-Benachrichtigung",
         "ratelimit": "Rate limit",
         "recipient_maps": "Empfängerumschreibungen",
         "smtp_ip_access": "Verwalten der erlaubten Hosts für SMTP",
@@ -26,10 +29,13 @@
         "syncjobs": "Sync Jobs",
         "tls_policy": "Verschlüsselungsrichtlinie",
         "unlimited_quota": "Unendliche Quota für Mailboxen",
-        "domain_desc": "Domainbeschreibung ändern"
+        "xmpp_admin": "Benutzer zum XMPP-Administrator ernennen",
+        "xmpp_domain_access": "XMPP-Zugang einer Domain konfigurieren",
+        "xmpp_mailbox_access": "XMPP-Zugang eines Benutzers einstellen",
+        "xmpp_prefix": "XMPP-Subdomain/Präfix ändern"
     },
     "add": {
-        "activate_filter_warn": "Alle anderen Filter diesen Typs werden deaktiviert, falls dieses Script aktiv markiert wird.",
+        "activate_filter_warn": "Alle anderen Filter dieses Typs werden deaktiviert, falls dieses Script aktiv markiert wird.",
         "active": "Aktiv",
         "add": "Hinzufügen",
         "add_domain_only": "Nur Domain hinzufügen",
@@ -41,7 +47,7 @@
         "app_name": "App-Name",
         "app_password": "App-Passwort hinzufügen",
         "automap": "Ordner automatisch mappen (\"Sent items\", \"Sent\" => \"Sent\" etc.)",
-        "backup_mx_options": "Relay Optionen",
+        "backup_mx_options": "Relay-Optionen",
         "comment_info": "Ein privater Kommentar ist für den Benutzer nicht einsehbar. Ein öffentlicher Kommentar wird als Tooltip im Interface des Benutzers angezeigt.",
         "custom_params": "Eigene Parameter",
         "custom_params_hint": "Richtig: --param=xy, falsch: --param xy",
@@ -53,7 +59,7 @@
         "disable_login": "Login verbieten (Mails werden weiterhin angenommen)",
         "domain": "Domain",
         "domain_matches_hostname": "Domain %s darf nicht dem Hostnamen entsprechen",
-        "domain_quota_m": "Domain Speicherplatz gesamt (MiB)",
+        "domain_quota_m": "Domain-Speicherplatz gesamt (MiB)",
         "enc_method": "Verschlüsselung",
         "exclude": "Elemente ausschließen (Regex)",
         "full_name": "Vor- und Nachname",
@@ -84,7 +90,7 @@
         "relay_all": "Alle Empfänger-Adressen relayen",
         "relay_all_info": "↪ Wenn <b>nicht</b> alle Empfänger-Adressen relayt werden sollen, müssen \"blinde\" Mailboxen für jede Adresse, die relayt werden soll, erstellen werden.",
         "relay_domain": "Diese Domain relayen",
-        "relay_transport_info": "<div class=\"label label-info\">Info</div> Transport Maps können erstellt werden, um  individuelle Ziele für eine Relay-Domain zu definieren.",
+        "relay_transport_info": "<div class=\"label label-info\">Info</div> Transport-Maps können erstellt werden, um  individuelle Ziele für eine Relay-Domain zu definieren.",
         "relay_unknown_only": "Nur nicht-lokale Mailboxen relayen. Existente Mailboxen werden weiterhin lokal zugestellt.",
         "relayhost_wrapped_tls_info": "Bitte <b>keine</b> \"TLS-wrapped Ports\" verwenden (etwa SMTPS via Port 465/tcp).<br>\r\nDer Transport wird stattdessen STARTTLS anfordern, um TLS zu verwenden. TLS kann unter \"TLS Policy Maps\" erzwungen werden.",
         "select": "Bitte auswählen",
@@ -102,7 +108,15 @@
         "timeout2": "Timeout für Verbindung zum lokalen Host",
         "username": "Benutzername",
         "validate": "Validieren",
-        "validation_success": "Erfolgreich validiert"
+        "validation_success": "Erfolgreich validiert",
+        "xmpp": "XMPP für diese Domain aktivieren",
+        "xmpp_access": "XMPP-Zugang",
+        "xmpp_access_info": "XMPP muss für diese Domain aktiviert sein.",
+        "xmpp_admin": "XMPP-Administrator",
+        "xmpp_admin_info": "<b>Vorsicht:</b> Ernennt den Benutzer zum Administrator der jeweiligen XMPP-Domain.",
+        "xmpp_info": "Diese Funktion stellt eine Chat-Funktionalität für die Domain bereit.",
+        "xmpp_prefix": "XMPP-Präfix für Domain (\"im\" für <b>im</b>.example.org)",
+        "xmpp_prefix_info": "Für die Bereitstellung eines Zertifikates sollte vorab ein DNS-Eintrag, etwa in Form eines CNAMEs, für <b>im</b>.example.org sowie <b>*.im</b>.example.org auf <b>%s</b> zeigend angelegt werden. Im Anschluss an die Aktivierung sollte der DNS-Check für diese Domain ausgeführt werden."
     },
     "admin": {
         "access": "Zugang",
@@ -118,13 +132,15 @@
         "add_relayhost": "Senderabhängigen Transport hinzufügen",
         "add_relayhost_hint": "Bitte beachten Sie, dass Anmeldedaten unverschlüsselt gespeichert werden.<br>\r\n  Angelegte Transporte dieser Art sind <b>senderabhängig</b> und müssen erst einer Domain zugewiesen werden, bevor sie als Transport verwendet werden.<br>\r\n  Diese Einstellungen entsprechen demnach <i>nicht</i> dem \"relayhost\" Parameter in Postfix.",
         "add_row": "Reihe hinzufügen",
-        "add_settings_rule": "Rspamd Regel hinzufügen",
+        "add_settings_rule": "Rspamd-Regel hinzufügen",
         "add_transport": "Transport hinzufügen",
         "add_transports_hint": "Bitte beachten Sie, dass Anmeldedaten unverschlüsselt gespeichert werden.",
         "additional_rows": " zusätzliche Zeilen geladen",
         "admin": "Administrator",
         "admin_details": "Administrator bearbeiten",
         "admin_domains": "Domain-Zuweisungen",
+        "admins": "Administratoren",
+        "admins_ldap": "LDAP-Administratoren",
         "advanced_settings": "Erweiterte Einstellungen",
         "api_allow_from": "IP-Adressen oder Netzwerke (CIDR Notation) für Zugriff auf API",
         "api_info": "Die API befindet sich noch in Entwicklung, die Dokumentation kann unter <a href=\"/api\">/api</a> abgerufen werden.",
@@ -136,10 +152,11 @@
         "arrival_time": "Ankunftszeit (Serverzeit)",
         "authed_user": "Auth. Benutzer",
         "ays": "Soll der Vorgang wirklich ausgeführt werden?",
-        "ban_list_info": "Übersicht ausgesperrter Netzwerke: <b>Netzwerk (verbleibende Banzeit) - [Aktionen]</b>.<br />IPs, die zum Entsperren eingereiht werden, verlassen die Liste aktiver Bans nach wenigen Sekunden.<br />Rote Labels sind Indikatoren für aktive Blacklisteinträge.",
+        "ban_list_info": "Übersicht ausgesperrter Netzwerke: <b>Netzwerk (verbleibende Bannzeit) - [Aktionen]</b>.<br />IPs, die zum Entsperren eingereiht werden, verlassen die Liste aktiver Banns nach wenigen Sekunden.<br />Rote Labels sind Indikatoren für aktive Blacklist-Einträge.",
         "change_logo": "Logo ändern",
         "configuration": "Konfiguration",
-        "credentials_transport_warning": "<b>Warnung</b>: Das Hinzufügen einer neuen Regel bewirkt die Aktualisierung der Authentifizierungsdaten aller vorhandenen Einträge mit identischem Host.",
+        "convert_html_to_text": "Konvertiere HTML zu reinem Text",
+        "credentials_transport_warning": "<b>Warnung</b>: Das Hinzufügen einer neuen Regel bewirkt die Aktualisierung der Authentifizierungsdaten aller vorhandenen Einträge mit identischem Next Hop.",
         "customer_id": "Kunde",
         "customize": "UI-Anpassung",
         "delete_queue": "Alle löschen",
@@ -169,11 +186,11 @@
         "excludes": "Diese Empfänger ausschließen",
         "f2b_ban_time": "Bannzeit in Sekunden",
         "f2b_blacklist": "Blacklist für Netzwerke und Hosts",
-        "f2b_filter": "Regex Filter",
+        "f2b_filter": "Regex-Filter",
         "f2b_list_info": "Ein Host oder Netzwerk auf der Blacklist wird immer eine Whitelist-Einheit überwiegen. <b>Die Aktualisierung der Liste dauert einige Sekunden.</b>",
         "f2b_max_attempts": "Max. Versuche",
-        "f2b_netban_ipv4": "Netzbereich für IPv4-Bans (8-32)",
-        "f2b_netban_ipv6": "Netzbereich für IPv6-Bans (8-128)",
+        "f2b_netban_ipv4": "Netzbereich für IPv4-Banns (8-32)",
+        "f2b_netban_ipv6": "Netzbereich für IPv6-Banns (8-128)",
         "f2b_parameters": "Fail2ban-Parameter",
         "f2b_regex_info": "Berücksichtigte Logs: SOGo, Postfix, Dovecot, PHP-FPM.",
         "f2b_retry_window": "Wiederholungen im Zeitraum von (s)",
@@ -187,9 +204,10 @@
         "generate": "generieren",
         "guid": "GUID - Eindeutige Instanz-ID",
         "guid_and_license": "GUID & Lizenz",
-        "hash_remove_info": "Das Entfernen eines Ratelimit Hashes - sofern noch existent - bewirkt den Reset gezählter Nachrichten dieses Elements.<br>\r\n  Jeder Hash wird durch eine eindeutige Farbe gekennzeichnet.",
+        "hash_remove_info": "Das Entfernen eines Ratelimit-Hashes - sofern noch existent - bewirkt den Reset gezählter Nachrichten dieses Elements.<br>\r\n  Jeder Hash wird durch eine eindeutige Farbe gekennzeichnet.",
         "help_text": "Hilfstext unter Login-Maske (HTML ist zulässig)",
         "host": "Host",
+        "html": "HTML",
         "import": "Importieren",
         "import_private_key": "Private Key importieren",
         "in_use_by": "Verwendet von",
@@ -197,28 +215,38 @@
         "include_exclude": "Ein- und Ausschlüsse",
         "include_exclude_info": "Ohne Auswahl werden <b>alle Mailboxen</b> adressiert.",
         "includes": "Diese Empfänger einschließen",
+        "is_mx_based": "MX-basiert",
         "last_applied": "Zuletzt angewendet",
         "license_info": "Eine Lizenz ist nicht erforderlich, hilft jedoch der Entwicklung mailcows.<br><a href=\"https://www.servercow.de/mailcow#sal\" target=\"_blank\" alt=\"SAL Bestellung\">Hier kann die mailcow-GUID registriert werden.</a> Alternativ ist <a href=\"https://www.servercow.de/mailcow#support\" target=\"_blank\" alt=\"SAL Bestellung\">die Bestellung von Support-Paketen möglich</a>.",
         "link": "Link",
         "loading": "Bitte warten...",
+        "login_time": "Zeit",
         "logo_info": "Die hochgeladene Grafik wird für die Navigationsleiste auf eine Höhe von 40px skaliert. Für die Darstellung auf der Login-Maske beträgt die skalierte Breite maximal 250px. Eine frei skalierbare Grafik (etwa SVG) wird empfohlen.",
-        "lookup_mx": "Ziel gegen MX prüfen (etwa .outlook.com, um alle Ziele mit MX *.outlook.com zu routen)",
+        "lookup_mx": "Ziel mit MX vergleichen (Regex, etwa <code>.*google\\.com</code>, um alle Ziele mit MX *google.com zu routen)",
         "main_name": "\"mailcow UI\" Name",
         "merged_vars_hint": "Ausgegraute Reihen wurden aus der Datei <code>vars.(local.)inc.php</code> gelesen und können hier nicht verändert werden.",
         "message": "Nachricht",
         "message_size": "Nachrichtengröße",
         "nexthop": "Next Hop",
         "no": "&#10005;",
-        "no_active_bans": "Keine aktiven Bans",
+        "no_active_bans": "Keine aktiven Banns",
         "no_new_rows": "Keine weiteren Zeilen vorhanden",
         "no_record": "Kein Eintrag",
         "oauth2_client_id": "Client ID",
         "oauth2_client_secret": "Client Secret",
-        "oauth2_info": "Die OAuth2 Implementierung unterstützt den Grant Type \"Authorization Code\" mit Refresh Tokens.<br>\r\nDer Server wird automatisch einen neuen Refresh Token ausstellen, sobald ein vorheriger Token gegen einen Access Token eingetauscht wurde.<br><br>\r\n→ Der Standard Scope lautet <i>profile</i>. Nur Mailbox-Benutzer können sich gegen OAuth2 authentifizieren. Wird kein Scope angegeben, verwendet das System per Standard <i>profile</i>.<br>\r\n→ Der <i>state</i> Parameter wird im Zuge des Autorisierungsprozesses benötigt.<br><br>\r\nDie Pfade für die OAuth2 API lauten wie folgt: <br>\r\n<ul>\r\n  <li>Authorization Endpoint: <code>/oauth/authorize</code></li>\r\n  <li>Token Endpoint: <code>/oauth/token</code></li>\r\n  <li>Resource Page:  <code>/oauth/profile</code></li>\r\n</ul>\r\nDie Regenerierung des Client Secrets wird vorhandene Authorization Codes nicht invalidieren, dennoch wird der Renew des Access Tokens durch einen Refresh Token nicht mehr gelingen.<br><br>\r\nDas Entfernen aller Client Tokens verursacht die umgehende Terminierung aller aktiven OAuth2 Sessions. Clients müssen sich erneut gegen die OAuth2 Anwendung authentifizieren.",
-        "oauth2_redirect_uri": "Redirect URI",
+        "oauth2_info": "Die OAuth2 Implementierung unterstützt den Grant Type \"Authorization Code\" mit Refresh Tokens.<br>\r\nDer Server wird automatisch einen neuen Refresh Token ausstellen, sobald ein vorheriger Token gegen einen Access Token eingetauscht wurde.<br><br>\r\n&#8226; Der Standard Scope lautet <i>profile</i>. Nur Mailbox-Benutzer können sich gegen OAuth2 authentifizieren. Wird kein Scope angegeben, verwendet das System per Standard <i>profile</i>.<br>\r\n&#8226; Der <i>state</i> Parameter wird im Zuge des Autorisierungsprozesses benötigt.<br><br>\r\nDie Pfade für die OAuth2 API lauten wie folgt: <br>\r\n<ul>\r\n  <li>Authorization Endpoint: <code>/oauth/authorize</code></li>\r\n  <li>Token Endpoint: <code>/oauth/token</code></li>\r\n  <li>Resource Page:  <code>/oauth/profile</code></li>\r\n</ul>\r\nDie Regenerierung des Client Secrets wird vorhandene Authorization Codes nicht invalidieren, dennoch wird der Renew des Access Tokens durch einen Refresh Token nicht mehr gelingen.<br><br>\r\nDas Entfernen aller Client Tokens verursacht die umgehende Terminierung aller aktiven OAuth2 Sessions. Clients müssen sich erneut gegen die OAuth2 Anwendung authentifizieren.",
+        "oauth2_redirect_uri": "Redirect-URI",
         "oauth2_renew_secret": "Neues Client Secret generieren",
         "oauth2_revoke_tokens": "Alle Client Tokens entfernen",
+        "optional": "Optional",
         "password": "Passwort",
+        "password_length": "Passwortlänge",
+        "password_policy": "Passwortrichtlinie",
+        "password_policy_chars": "Muss ein alphabetisches Zeichen enthalten",
+        "password_policy_length": "Mindestlänge des Passwortes ist %d Zeichen",
+        "password_policy_lowerupper": "Muss Großbuchstaben und Kleinbuchstaben enthalten",
+        "password_policy_numbers": "Muss eine Ziffer enthalten",
+        "password_policy_special_chars": "Muss Sonderzeichen enthalten",
         "password_repeat": "Passwort wiederholen",
         "priority": "Gewichtung",
         "private_key": "Private Key",
@@ -226,8 +254,8 @@
         "quarantine_bcc": "Eine Kopie aller Benachrichtigungen (BCC) an folgendes Postfach senden:<br><small>Leer bedeutet deaktiviert. <b>Unsignierte, ungeprüfte E-Mail. Sollte nur intern zugestellt werden.</b></small>",
         "quarantine_exclude_domains": "Domains und Alias-Domains ausschließen",
         "quarantine_max_age": "Maximales Alter in Tagen<br><small>Wert muss größer oder gleich 1 Tag sein.</small>",
-        "quarantine_max_size": "Maximale Größe in MiB (größere Elemente werden verworfen):<br><small>0 bedeutet <b>nicht</b> unlimitiert.</small>",
         "quarantine_max_score": "Nicht benachrichtigen, wenn der Spam-Score höher ist als der folgende Wert:<br><small>Standardwert 9999.0</small>",
+        "quarantine_max_size": "Maximale Größe in MiB (größere Elemente werden verworfen):<br><small>0 bedeutet <b>nicht</b> unlimitiert.</small>",
         "quarantine_notification_html": "Benachrichtigungs-E-Mail Inhalt:<br><small>Leer lassen, um Standard-Template wiederherzustellen.</small>",
         "quarantine_notification_sender": "Benachrichtigungs-E-Mail Absender",
         "quarantine_notification_subject": "Benachrichtigungs-E-Mail Betreff",
@@ -240,9 +268,9 @@
         "queue_deliver_mail": "Ausliefern",
         "queue_hold_mail": "Zurückhalten",
         "queue_manager": "Queue Manager",
+        "queue_show_message": "Nachricht anzeigen",
         "queue_unban": "Entsperren einreihen",
         "queue_unhold_mail": "Freigeben",
-        "queue_show_message": "Nachricht anzeigen",
         "quota_notification_html": "Benachrichtigungs-E-Mail Inhalt:<br><small>Leer lassen, um Standard-Template wiederherzustellen.</small>",
         "quota_notification_sender": "Benachrichtigungs-E-Mail Absender",
         "quota_notification_subject": "Benachrichtigungs-E-Mail Betreff",
@@ -256,8 +284,9 @@
         "recipients": "Empfänger",
         "refresh": "Neu laden",
         "regen_api_key": "API-Key regenerieren",
-        "regex_maps": "Regex Maps",
+        "regex_maps": "Regex-Maps",
         "relay_from": "Absenderadresse",
+        "relay_rcpt": "Empfängeradresse",
         "relay_run": "Test durchführen",
         "relayhosts": "Senderabhängige Transport Maps",
         "relayhosts_hint": "Erstellen Sie senderabhängige Transporte, um diese im Einstellungsdialog einer Domain auszuwählen.<br>\r\n  Der Transporttyp lautet immer \"smtp:\", verwendet TLS wenn angeboten und unterstützt kein wrapped TLS (SMTPS). Benutzereinstellungen bezüglich Verschlüsselungsrichtlinie werden beim Transport berücksichtigt.<br>\r\n  Gilt neben ausgewählter Domain auch für untergeordnete Alias-Domains.",
@@ -273,32 +302,36 @@
         "rsetting_none": "Keine Regel hinterlegt",
         "rsettings_insert_preset": "Beispiel \"%s\" laden",
         "rsettings_preset_1": "Alles außer DKIM und Ratelimits für authentifizierte Benutzer deaktivieren",
-        "rsettings_preset_2": "Spam an Postmaster-Addressen nicht blockieren",
+        "rsettings_preset_2": "Spam an Postmaster-Adressen nicht blockieren",
         "rsettings_preset_3": "Nur einem oder vielen Absendern erlauben, eine Mailbox anzuschreiben (etwa interne Mailboxen)",
+        "rsettings_preset_4": "Rspamd für eine Domain deaktivieren",
         "rspamd-com_settings": "Ein Name wird automatisch generiert. Beispielinhalte zur Einsicht stehen nachstehend bereit. Siehe auch <a href=\"https://rspamd.com/doc/configuration/settings.html#settings-structure\" target=\"_blank\">Rspamd docs</a>",
         "rspamd_global_filters": "Globale Filter-Maps",
         "rspamd_global_filters_agree": "Ich werde vorsichtig sein!",
         "rspamd_global_filters_info": "Globale Filter-Maps steuern globales White- und Blacklisting dieses Servers.",
         "rspamd_global_filters_regex": "Die akzeptierte Form für Einträge sind <b>ausschließlich</b> Regular Expressions.\r\n  Trotz rudimentärer Überprüfung der Map, kann es zu fehlerhaften Einträgen kommen, die Rspamd im schlechtesten Fall mit unvorhersehbarer Funktionalität bestraft.<br>\r\n  Das korrekte Format lautet \"/pattern/options\" (Beispiel: <code>/.+@domain\\.tld/i</code>).<br>\r\n  Der Name der Map beschreibt die jeweilige Funktion.<br>\r\n  Rspamd versucht die Maps umgehend aufzulösen. Bei Problemen sollte <a href=\"\" data-toggle=\"modal\" data-container=\"rspamd-mailcow\" data-target=\"#RestartContainer\">Rspamd manuell neugestartet werden</a><br>Elemente auf Blacklists sind von der Quarantäne ausgeschlossen.",
-        "rspamd_settings_map": "Rspamd Settings Map",
+        "rspamd_settings_map": "Rspamd-Settings-Map",
         "sal_level": "Moo-Level",
         "save": "Änderungen speichern",
         "search_domain_da": "Suche Domains",
         "send": "Senden",
         "sender": "Sender",
+        "service": "Dienst",
         "service_id": "Service",
         "source": "Quelle",
         "spamfilter": "Spamfilter",
         "subject": "Betreff",
+        "success": "Erfolg",
         "sys_mails": "System-E-Mails",
         "text": "Text",
         "time": "Zeit",
         "title": "Title",
         "title_name": "\"mailcow UI\" Webseiten Titel",
         "to_top": "Nach oben",
-        "transport_dest_format": "Syntax: example.org, .example.org, *, box@example.org (mehrere Werte getrennt durch Komma einzugeben)",
-        "transport_maps": "Transport Maps",
-        "transports_hint": "→ Transport Maps <b>überwiegen</b> senderabhängige Transport Maps.<br>\r\n→ Transport Maps ignorieren Mailbox-Einstellungen für ausgehende Verschlüsselung. Eine serverweite TLS-Richtlinie wird jedoch angewendet.<br>\r\n→ Der Transport erfolgt immer via \"smtp:\", verwendet TLS wenn angeboten und unterstützt kein wrapped TLS (SMTPS).<br>\r\n→ Adressen, die mit \"/localhost$/\" übereinstimmen, werden immer via \"local:\" transportiert, daher sind sie von einer Zieldefinition \"*\" ausgeschlossen.<br>\r\n→ Die Authentifizierung wird anhand des \"Next hop\" Parameters ermittelt. Hierbei würde bei einem beispielhaften Wert \"[host]:25\" immer zuerst \"host\" abfragt und <b>erst im Anschluss</b> \"[host]:25\". Dieses Verhalten schließt die <b>gleichzeitige Verwendung</b> von Einträgen der Art \"host\" sowie \"[host]:25\" aus.",
+        "transport_dest_format": "Regex oder Syntax: example.org, .example.org, *, box@example.org (getrennt durch Komma einzugeben)",
+        "transport_maps": "Transport-Maps",
+        "transport_test_rcpt_info": "&#8226; Die Verwendung von null@hosted.mailcow.de testet das Relay gegen ein fremdes Ziel.",
+        "transports_hint": "&#8226; Transport-Maps <b>überwiegen</b> senderabhängige Transport Maps.<br>\r\n&#8226; MX-basierte Transporte werden bevorzugt.<br>\r\n&#8226; Transport-Maps ignorieren Mailbox-Einstellungen für ausgehende Verschlüsselung. Eine serverweite TLS-Richtlinie wird jedoch angewendet.<br>\r\n&#8226; Der Transport erfolgt immer via \"smtp:\", verwendet TLS wenn angeboten und unterstützt kein wrapped TLS (SMTPS).<br>\r\n&#8226; Adressen, die mit \"/localhost$/\" übereinstimmen, werden immer via \"local:\" transportiert, daher sind sie von einer Zieldefinition \"*\" ausgeschlossen.<br>\r\n&#8226; Die Authentifizierung wird anhand des \"Next hop\" Parameters ermittelt. Hierbei würde bei einem beispielhaften Wert \"[host]:25\" immer zuerst \"host\" abfragt und <b>erst im Anschluss</b> \"[host]:25\". Dieses Verhalten schließt die <b>gleichzeitige Verwendung</b> von Einträgen der Art \"host\" sowie \"[host]:25\" aus.",
         "ui_footer": "Footer (HTML zulässig)",
         "ui_header_announcement": "Ankündigungen",
         "ui_header_announcement_active": "Ankündigung aktivieren",
@@ -306,9 +339,9 @@
         "ui_header_announcement_help": "Die Ankündigungsbox erzeugt einen deutlichen Hinweis für alle Benutzer und auf der Login-Seite der UI.",
         "ui_header_announcement_select": "Ankündigungstyp auswählen",
         "ui_header_announcement_type": "Typ",
+        "ui_header_announcement_type_danger": "Sehr wichtig",
         "ui_header_announcement_type_info": "Info",
         "ui_header_announcement_type_warning": "Wichtig",
-        "ui_header_announcement_type_danger": "Sehr wichtig",
         "ui_texts": "UI-Label und Texte",
         "unban_pending": "ausstehend",
         "unchanged_if_empty": "Unverändert, wenn leer",
@@ -344,13 +377,14 @@
         "domain_quota_m_in_use": "Domain-Speicherplatzlimit muss größer oder gleich %d MiB sein",
         "extra_acl_invalid": "Externe Absenderadresse \"%s\" ist ungültig",
         "extra_acl_invalid_domain": "Externe Absenderadresse \"%s\" verwendet eine ungültige Domain",
+        "fido2_verification_failed": "FIDO2-Verifizierung fehlgeschlagen: %s",
         "file_open_error": "Datei kann nicht zum Schreiben geöffnet werden",
         "filter_type": "Falscher Filtertyp",
         "from_invalid": "Die Absenderadresse muss eine gültige E-Mail-Adresse sein",
         "global_filter_write_error": "Kann Filterdatei nicht schreiben: %s",
-        "global_map_invalid": "Rspamd Map %s ist ungültig",
+        "global_map_invalid": "Rspamd-Map %s ist ungültig",
         "global_map_write_error": "Kann globale Map ID %s nicht schreiben: %s",
-        "goto_empty": "Eine Alias-Adresse muss auf mindestens eine gütlige Ziel-Adresse zeigen",
+        "goto_empty": "Eine Alias-Adresse muss auf mindestens eine gültige Ziel-Adresse zeigen",
         "goto_invalid": "Ziel-Adresse %s ist ungültig",
         "ham_learn_error": "Ham Lernfehler: %s",
         "imagick_exception": "Fataler Bildverarbeitungsfehler",
@@ -387,6 +421,7 @@
         "network_host_invalid": "Netzwerk oder Host ungültig: %s",
         "next_hop_interferes": "%s verhindert das Hinzufügen von Next Hop %s",
         "next_hop_interferes_any": "Ein vorhandener Eintrag verhindert das Hinzufügen von Next Hop %s",
+        "nginx_reload_failed": "Nginx Reload ist fehlgeschlagen: %s",
         "no_user_defined": "Kein Benutzer definiert",
         "object_exists": "Objekt %s existiert bereits",
         "object_is_not_numeric": "Wert %s ist nicht numerisch",
@@ -402,7 +437,7 @@
         "quota_not_0_not_numeric": "Speicherplatz muss numerisch und >= 0 sein",
         "recipient_map_entry_exists": "Eine Empfängerumschreibung für Objekt \"%s\" existiert bereits",
         "redis_error": "Redis Fehler: %s",
-        "relayhost_invalid": "Mapeintrag %s ist ungültig",
+        "relayhost_invalid": "Map-Eintrag %s ist ungültig",
         "release_send_failed": "Die Nachricht konnte nicht versendet werden: %s",
         "reset_f2b_regex": "Regex Filter konnten nicht in vorgegebener Zeit zurückgesetzt werden, bitte erneut versuchen oder die Webseite neu laden.",
         "resource_invalid": "Ressourcenname %s ist ungültig",
@@ -425,51 +460,63 @@
         "tls_policy_map_entry_exists": "Eine TLS-Richtlinie \"%s\" existiert bereits",
         "tls_policy_map_parameter_invalid": "Parameter ist ungültig",
         "totp_verification_failed": "TOTP-Verifizierung fehlgeschlagen",
-        "transport_dest_exists": "Transport Maps Ziel \"%s\" existiert bereits",
+        "transport_dest_exists": "Transport-Maps-Ziel \"%s\" existiert bereits",
         "u2f_verification_failed": "U2F-Verifizierung fehlgeschlagen: %s",
-        "fido2_verification_failed": "FIDO2-Verifizierung fehlgeschlagen: %s",
         "unknown": "Ein unbekannter Fehler trat auf",
-        "unknown_tfa_method": "Unbekannte TFA Methode",
+        "unknown_tfa_method": "Unbekannte TFA-Methode",
         "unlimited_quota_acl": "Unendliche Quota untersagt durch ACL",
         "username_invalid": "Benutzername %s kann nicht verwendet werden",
         "validity_missing": "Bitte geben Sie eine Gültigkeitsdauer an",
         "value_missing": "Bitte alle Felder ausfüllen",
+        "xmpp_map_write_error": "Kann XMPP-Map nicht schreiben: %s",
+        "xmpp_reload_failed": "XMPP konnte nicht neu geladen werden",
+        "xmpp_restart_failed": "XMPP konnte nicht neu gestartet werden",
         "yotp_verification_failed": "Yubico OTP-Verifizierung fehlgeschlagen: %s"
     },
     "debug": {
         "chart_this_server": "Chart (dieser Server)",
         "containers_info": "Container-Information",
         "disk_usage": "Festplattennutzung",
+        "docs": "Dokumente",
         "external_logs": "Externe Logs",
         "history_all_servers": "History (alle Server)",
         "in_memory_logs": "In-memory Logs",
         "jvm_memory_solr": "JVM-Speicherauslastung",
+        "last_modified": "Zuletzt geändert",
         "log_info": "<p>mailcow <b>in-memory Logs</b> werden in Redis Listen gespeichert, die maximale Anzahl der Einträge pro Anwendung richtet sich nach LOG_LINES (%d).\r\n  <br>In-memory Logs sind vergänglich und nicht zur ständigen Aufbewahrung bestimmt. Alle Anwendungen, die in-memory protokollieren, schreiben ebenso in den Docker Daemon.\r\n  <br>Das in-memory Protokoll versteht sich als schnelle Übersicht zum Debugging eines Containers, für komplexere Protokolle sollte der Docker Daemon konsultiert werden.</p>\r\n  <p><b>Externe Logs</b> werden via API externer Applikationen bezogen.</p>\r\n  <p><b>Statische Logs</b> sind weitestgehend Aktivitätsprotokolle, die nicht in den Docker Daemon geschrieben werden, jedoch permanent verfügbar sein müssen (ausgeschlossen API Logs).</p>",
+        "login_time": "Zeit",
         "logs": "Protokolle",
+        "online_users": "Benutzer online",
         "restart_container": "Neustart",
+        "service": "Dienst",
+        "size": "Größe",
         "solr_dead": "Solr startet, ist deaktiviert oder temporär nicht erreichbar.",
-        "solr_docs": "Dokumente",
-        "solr_last_modified": "Zuletzt geändert",
-        "solr_size": "Größe",
-        "solr_started_at": "Gestartet am",
         "solr_status": "Solr Status",
-        "solr_uptime": "Uptime",
+        "started_at": "Gestartet am",
         "started_on": "Gestartet am",
         "static_logs": "Statische Logs",
-        "system_containers": "System & Container"
+        "success": "Erfolg",
+        "system_containers": "System & Container",
+        "uptime": "Uptime",
+        "username": "Benutzername",
+        "xmpp_dead": "XMPP startet, ist deaktiviert oder temporär nicht erreichbar.",
+        "xmpp_status": "XMPP Status"
     },
     "diagnostics": {
         "cname_from_a": "Wert abgeleitet von A/AAAA-Eintrag. Wird unterstützt, sofern der Eintrag auf die korrekte Ressource zeigt.",
         "dns_records": "DNS-Einträge",
         "dns_records_24hours": "Bitte beachten Sie, dass es bis zu 24 Stunden dauern kann, bis Änderungen an Ihren DNS-Einträgen als aktueller Status auf dieser Seite dargestellt werden. Diese Seite ist nur als Hilfsmittel gedacht, um die korrekten Werte für DNS-Einträge anzuzeigen und zu überprüfen, ob die Daten im DNS hinterlegt sind.",
         "dns_records_data": "Korrekte Daten",
+        "dns_records_docs": "Die <a target=\"_blank\" href=\"https://mailcow.github.io/mailcow-dockerized-docs/prerequisite-dns/\">Online-Dokumentation</a> enthält weitere Informationen zur DNS-Konfiguration.",
         "dns_records_name": "Name",
         "dns_records_status": "Aktueller Status",
         "dns_records_type": "Typ",
         "optional": "Dieser Eintrag ist optional."
     },
     "edit": {
+        "acl": "ACL (Berechtigungen)",
         "active": "Aktiv",
+        "admin": "Administrator bearbeiten",
         "advanced_settings": "Erweiterte Einstellungen",
         "alias": "Alias bearbeiten",
         "allow_from_smtp": "Nur folgende IPs für <b>SMTP</b> erlauben",
@@ -478,10 +525,10 @@
         "app_name": "App-Name",
         "app_passwd": "App-Passwörter",
         "automap": "Ordner automatisch mappen (\"Sent items\", \"Sent\" => \"Sent\" etc.)",
-        "backup_mx_options": "Relay Optionen",
+        "backup_mx_options": "Relay-Optionen",
         "bcc_dest_format": "BCC-Ziel muss eine gültige E-Mail-Adresse sein.",
-        "client_id": "Client ID",
-        "client_secret": "Client Secret",
+        "client_id": "Client-ID",
+        "client_secret": "Client-Secret",
         "comment_info": "Ein privater Kommentar ist für den Benutzer nicht einsehbar. Ein öffentlicher Kommentar wird als Tooltip im Interface des Benutzers angezeigt.",
         "delete1": "Lösche Nachricht nach Übertragung vom Quell-Server",
         "delete2": "Lösche Nachrichten von Ziel-Server, die nicht auf Quell-Server vorhanden sind",
@@ -498,19 +545,21 @@
         "encryption": "Verschlüsselung",
         "exclude": "Elemente ausschließen (Regex)",
         "extended_sender_acl": "Externe Absenderadressen",
-        "extended_sender_acl_info": "Der DKIM Domainkey der externen Absenderdomain sollte in diesen Server importiert werden, falls vorhanden.<br>\r\n  Wird SPF verwendet, muss diesem Server der Versand gestattet werden.<br>\r\n  Wird eine Domain oder Alias-Domain zu diesem Server hinzugefügt, die sich mit der externen Absenderadresse überschneidet, wird der externe Absender hier entfernt.<br>\r\n  Ein Eintrag @domain.tld erlaubt den Versand als *@domain.tld",
+        "extended_sender_acl_info": "Der DKIM-Domainkey der externen Absenderdomain sollte in diesen Server importiert werden, falls vorhanden.<br>\r\n  Wird SPF verwendet, muss diesem Server der Versand gestattet werden.<br>\r\n  Wird eine Domain oder Alias-Domain zu diesem Server hinzugefügt, die sich mit der externen Absenderadresse überschneidet, wird der externe Absender hier entfernt.<br>\r\n  Ein Eintrag @domain.tld erlaubt den Versand als *@domain.tld",
         "force_pw_update": "Erzwinge Passwortänderung bei nächstem Login",
         "force_pw_update_info": "Dem Benutzer wird lediglich der Zugang zur %s ermöglicht.",
         "full_name": "Voller Name",
         "gal": "Globales Adressbuch",
         "gal_info": "Das globale Adressbuch enthält alle Objekte einer Domain und kann durch keinen Benutzer geändert werden. Die Verfügbarkeitsinformation in SOGo ist nur bei eingeschaltetem globalen Adressbuch ersichtlich <b>Zum Anwenden einer Änderung muss SOGo neugestartet werden.</b>",
         "generate": "generieren",
-        "grant_types": "Grant types",
+        "grant_types": "Grant-types",
         "hostname": "Servername",
         "inactive": "Inaktiv",
         "kind": "Art",
+        "lookup_mx": "Ziel mit MX vergleichen (Regex, etwa <code>.*google\\.com</code>, um alle Ziele mit MX *google.com zu routen)",
         "mailbox": "Mailbox bearbeiten",
         "mailbox_quota_def": "Standard-Quota einer Mailbox",
+        "mailbox_relayhost_info": "Wird auf eine Mailbox und direkte Alias-Adressen angewendet. Überschreibt die Einstellung einer Domain.",
         "max_aliases": "Max. Aliasse",
         "max_mailboxes": "Max. Mailboxanzahl",
         "max_quota": "Max. Größe per Mailbox (MiB)",
@@ -520,13 +569,15 @@
         "mins_interval": "Intervall (min)",
         "multiple_bookings": "Mehrfaches Buchen",
         "nexthop": "Next Hop",
+        "none_inherit": "Keine Auswahl / Erben",
         "password": "Passwort",
         "password_repeat": "Passwort wiederholen",
         "previous": "Vorherige Seite",
         "private_comment": "Privater Kommentar",
         "public_comment": "Öffentlicher Kommentar",
+        "pushover": "Pushover",
         "pushover_evaluate_x_prio": "Hohe Priorität eskalieren [<code>X-Priority: 1</code>]",
-        "pushover_info": "Push-Benachrichtungen werden angewendet auf alle nicht-Spam Nachrichten zugestellt an <b>%s</b>, einschließlich Alias-Adressen (shared, non-shared, tagged).",
+        "pushover_info": "Push-Benachrichtigungen werden angewendet auf alle nicht-Spam Nachrichten zugestellt an <b>%s</b>, einschließlich Alias-Adressen (shared, non-shared, tagged).",
         "pushover_only_x_prio": "Nur Mail mit hoher Priorität berücksichtigen [<code>X-Priority: 1</code>]",
         "pushover_sender_array": "Folgende Sender E-Mail-Adressen berücksichtigen <small>(getrennt durch Komma)</small>",
         "pushover_sender_regex": "Sender mit folgendem regulären Ausdruck auswählen",
@@ -535,6 +586,9 @@
         "pushover_vars": "Wenn kein Sender-Filter definiert ist, werden alle E-Mails berücksichtigt.<br>Die direkte Absenderprüfung und reguläre Ausdrücke werden unabhängig voneinander geprüft, sie <b>hängen nicht voneinander ab</b> und werden der Reihe nach ausgeführt. <br>Verwendbare Variablen für Titel und Text (Datenschutzrichtlinien beachten)",
         "pushover_verify": "Verbindung verifizieren",
         "quota_mb": "Speicherplatz (MiB)",
+        "quota_warning_bcc": "Quota-Warnung BCC",
+        "quota_warning_bcc_info": "Die Warnungen werden als separate Kopie an die nachstehenden Empfänger versendet. Dem Betreff wird der jeweilige Benutzername in Klammern (etwa <code>Quota-Warnung (user@example.com)</code>) angehangen.",
+        "ratelimit": "Rate Limit",
         "redirect_uri": "Redirect/Callback-URL",
         "relay_all": "Alle Empfänger-Adressen relayen",
         "relay_all_info": "↪ Wenn <b>nicht</b> alle Empfänger-Adressen relayt werden sollen, müssen \"blinde\" Mailboxen für jede Adresse, die relayt werden soll, erstellen werden.",
@@ -547,7 +601,7 @@
         "save": "Änderungen speichern",
         "scope": "Scope",
         "sender_acl": "Darf Nachrichten versenden als",
-        "sender_acl_disabled": "↳ <span class=\"label label-danger\">Absenderprüfung deaktiviert</span>",
+        "sender_acl_disabled": "<span class=\"label label-danger\">Absenderprüfung deaktiviert</span>",
         "sender_acl_info": "Wird einem Mailbox-Benutzer A der Versand als Mailbox-Benutzer B gestattet, so erscheint der Absender <b>nicht</b> automatisch in SOGo zur Auswahl.<br>\r\n  In SOGo muss zusätzlich eine Delegation eingerichtet werden. Dieses Verhalten trifft nicht auf Alias-Adressen zu.",
         "sieve_desc": "Kurze Beschreibung",
         "sieve_type": "Filtertyp",
@@ -557,18 +611,42 @@
         "sogo_visible": "Alias in SOGo sichtbar",
         "sogo_visible_info": "Diese Option hat lediglich Einfluss auf Objekte, die in SOGo darstellbar sind (geteilte oder nicht-geteilte Alias-Adressen mit dem Ziel mindestens einer lokalen Mailbox).",
         "spam_alias": "Anpassen temporärer Alias-Adressen",
+        "spam_filter": "Spamfilter",
         "spam_policy": "Hinzufügen und Entfernen von Einträgen in White- und Blacklists",
         "spam_score": "Einen benutzerdefiniterten Spam-Score festlegen",
         "subfolder2": "Ziel-Ordner<br><small>(leer = kein Unterordner)</small>",
         "syncjob": "Sync-Job bearbeiten",
-        "target_address": "Ziel-Adresse(n) <small>(getrennt durch Komma)</small>",
+        "target_address": "Ziel-Adresse(n)",
         "target_domain": "Ziel-Domain",
         "timeout1": "Timeout für Verbindung zum Remote-Host",
         "timeout2": "Timeout für Verbindung zum lokalen Host",
         "title": "Objekt bearbeiten",
         "unchanged_if_empty": "Unverändert, wenn leer",
         "username": "Benutzername",
-        "validate_save": "Validieren und speichern"
+        "validate_save": "Validieren und speichern",
+        "xmpp": "XMPP für diese Domain aktivieren",
+        "xmpp_access": "XMPP-Zugang",
+        "xmpp_access_info": "XMPP muss für diese Domain aktiviert sein.",
+        "xmpp_admin": "XMPP-Administrator",
+        "xmpp_admin_info": "<b>Vorsicht:</b> Ernennt den Benutzer zum Administrator der jeweiligen XMPP Domain.",
+        "xmpp_example_jid": "<b>Beispiel JID</b> (Passwort entspricht Mailbox-Passwort)",
+        "xmpp_info": "Diese Funktion stellt eine Chat-Funktionalität für die Domain bereit.",
+        "xmpp_prefix": "XMPP-Präfix für Domain (\"im\" für <b>im</b>.example.org)",
+        "xmpp_prefix_info": "Für die Bereitstellung eines Zertifikates sollte vorab ein DNS-Eintrag, etwa in Form eines CNAMEs, für <b>im</b>.example.org sowie <b>*.im</b>.example.org auf <b>%s</b> zeigend angelegt werden. Im Anschluss an die Aktivierung sollte der DNS-Check für diese Domain ausgeführt werden."
+    },
+    "fido2": {
+        "confirm": "Bestätigen",
+        "fido2_auth": "Anmeldung über FIDO2",
+        "fido2_success": "Das Gerät wurde erfolgreich registriert",
+        "fido2_validation_failed": "Validierung fehlgeschlagen",
+        "fn": "Benutzerfreundlicher Name",
+        "known_ids": "Bekannte IDs",
+        "none": "Deaktiviert",
+        "register_status": "Registrierungsstatus",
+        "rename": "Umbenennen",
+        "set_fido2": "Registriere FIDO2-Gerät",
+        "set_fn": "Benutzerfreundlichen Namen konfigurieren",
+        "start_fido2_validation": "Starte FIDO2-Validierung"
     },
     "footer": {
         "cancel": "Abbrechen",
@@ -578,6 +656,7 @@
         "hibp_nok": "Übereinstimmung gefunden! Dieses Passwort ist potenziell gefährlich!",
         "hibp_ok": "Keine Übereinstimmung gefunden.",
         "loading": "Einen Moment bitte...",
+        "nothing_selected": "Nichts ausgewählt",
         "restart_container": "Container neustarten",
         "restart_container_info": "<b>Wichtig:</b> Der Neustart eines Containers kann eine Weile in Anspruch nehmen.",
         "restart_now": "Jetzt neustarten",
@@ -614,6 +693,7 @@
         "active": "Aktiv",
         "add": "Hinzufügen",
         "add_alias": "Alias hinzufügen",
+        "add_alias_expand": "Alias über Alias-Domains expandieren",
         "add_bcc_entry": "BCC-Eintrag hinzufügen",
         "add_domain": "Domain hinzufügen",
         "add_domain_alias": "Domain-Alias hinzufügen",
@@ -625,7 +705,7 @@
         "add_tls_policy_map": "TLS-Richtlinieneintrag hinzufügen",
         "address_rewriting": "Adressumschreibung",
         "alias": "Alias",
-        "alias_domain_alias_hint": "Alias-Adressen werden <b>nicht</b> automatisch auch auf Domain-Alias Adressen angewendet. Eine Alias-Adresse <code>mein-alias@domain</code> bildet demnach <b>nicht</b> die Adresse <code>mein-alias@alias-domain</code> ab.<br>E-Mail-Weiterleitungen an externe Postfächer sollten über Sieve (SOGo Weiterleitung oder im Reiter \"Filter\") angelegt werden.",
+        "alias_domain_alias_hint": "Alias-Adressen werden <b>nicht</b> automatisch auch auf Domain-Alias Adressen angewendet. Eine Alias-Adresse <code>mein-alias@domain</code> bildet demnach <b>nicht</b> die Adresse <code>mein-alias@alias-domain</code> ab.<br>E-Mail-Weiterleitungen an externe Postfächer sollten über Sieve (SOGo Weiterleitung oder im Reiter \"Filter\") angelegt werden. Der Button \"Alias über Alias-Domains expandieren\" erstellt fehlende Alias-Adressen in Alias-Domains.",
         "alias_domain_backupmx": "Alias-Domain für Relay-Domain inaktiv",
         "aliases": "Aliasse",
         "allow_from_smtp": "Nur folgende IPs für <b>SMTP</b> erlauben",
@@ -674,14 +754,15 @@
         "insert_preset": "Beispiel \"%s\" laden",
         "kind": "Art",
         "last_mail_login": "Letzter Mail-Login",
+        "last_pw_change": "Letzte Passwortänderung",
         "last_run": "Letzte Ausführung",
         "last_run_reset": "Als nächstes ausführen",
         "mailbox": "Mailbox",
+        "mailbox_defaults": "Standardeinstellungen",
+        "mailbox_defaults_info": "Steuert die Standardeinstellungen für neue Mailboxen.",
         "mailbox_defquota": "Standard-Quota",
         "mailbox_quota": "Max. Größe einer Mailbox",
         "mailboxes": "Mailboxen",
-        "mailbox_defaults": "Standardeinstellungen",
-        "mailbox_defaults_info": "Steuert die Standardeinstellungen für neue Mailboxen.",
         "mins_interval": "Intervall (min)",
         "msg_num": "Anzahl Nachrichten",
         "multiple_bookings": "Mehrfachbuchen",
@@ -692,17 +773,17 @@
         "owner": "Besitzer",
         "private_comment": "Privater Kommentar",
         "public_comment": "Öffentlicher Kommentar",
-        "q_add_header": "Junk-Ordner",
-        "q_all": "Alle Kategorien",
-        "q_reject": "Abgelehnt",
-        "quarantine_notification": "Quarantäne-Benachrichtigung",
+        "q_add_header": "bei Mail in Junk-Ordner",
+        "q_all": "bei Reject und Mail in Junk-Ordner",
+        "q_reject": "bei Reject",
         "quarantine_category": "Quarantäne-Benachrichtigungskategorie",
+        "quarantine_notification": "Quarantäne-Benachrichtigung",
         "quick_actions": "Aktionen",
         "recipient_map": "Empfängerumschreibung",
         "recipient_map_info": "Empfängerumschreibung ersetzen den Empfänger einer E-Mail vor dem Versand.",
         "recipient_map_new": "Neuer Empfänger",
         "recipient_map_new_info": "Der neue Empfänger muss eine E-Mail-Adresse sein.",
-        "recipient_map_old": "Original Empfänger",
+        "recipient_map_old": "Original-Empfänger",
         "recipient_map_old_info": "Der originale Empfänger muss eine E-Mail-Adresse oder ein Domainname sein.",
         "recipient_maps": "Empfängerumschreibungen",
         "remove": "Entfernen",
@@ -710,7 +791,7 @@
         "running": "In Ausführung",
         "set_postfilter": "Als Postfilter markieren",
         "set_prefilter": "Als Prefilter markieren",
-        "sieve_info": "Es können mehrere Filter pro Benutzer existieren, aber nur ein Filter eines Typs (Pre-/Postfilter) kann gleichzeitig aktiv sein.<br>\r\nDie Ausführung erfolgt in nachstehender Reihenfolge. Ein fehlgeschlagenes Script sowie der Befehl \"keep;\" stoppen die weitere Verarbeitung <b>nicht</b>. Änderungen an globalen Sieve-Filtern bewirken einen Neustart von Dovecot.<br><br>Global sieve prefilter → Prefilter → User scripts → Postfilter → Global sieve postfilter",
+        "sieve_info": "Es können mehrere Filter pro Benutzer existieren, aber nur ein Filter eines Typs (Pre-/Postfilter) kann gleichzeitig aktiv sein.<br>\r\nDie Ausführung erfolgt in nachstehender Reihenfolge. Ein fehlgeschlagenes Script sowie der Befehl \"keep;\" stoppen die weitere Verarbeitung <b>nicht</b>. Änderungen an globalen Sieve-Filtern bewirken einen Neustart von Dovecot.<br><br>Global sieve prefilter &#8226; Prefilter &#8226; User scripts &#8226; Postfilter &#8226; Global sieve postfilter",
         "sieve_preset_1": "E-Mails mit potenziell gefährlichen Dateitypen abweisen",
         "sieve_preset_2": "E-Mail eines bestimmten Absenders immer als gelesen markieren",
         "sieve_preset_3": "Lautlos löschen, weitere Ausführung von Filtern verhindern",
@@ -720,7 +801,6 @@
         "sieve_preset_7": "Weiterleiten und behalten oder verwerfen",
         "sieve_preset_8": "Nachricht verwerfen, wenn Absender und Alias-Ziel identisch sind.",
         "sieve_preset_header": "Beispielinhalte zur Einsicht stehen nachstehend bereit. Siehe auch <a href=\"https://de.wikipedia.org/wiki/Sieve\" target=\"_blank\">Wikipedia</a>.",
-        "sogo_allow_admin_hint": "Administrative SOGo-Logins sind nur für Mailboxen verfügbar, die bereits ein SOGo-Profil besitzen. Ein Benutzer muss zumindest einmal in SOGo eingeloggt gewesen sein, um ein Profil zu besitzen.",
         "sogo_visible": "Alias Sichtbarkeit in SOGo",
         "sogo_visible_n": "Alias in SOGo verbergen",
         "sogo_visible_y": "Alias in SOGo anzeigen",
@@ -740,8 +820,8 @@
         "tls_map_parameters_info": "Leer oder Parameter, Beispiele: protocols=!SSLv2 ciphers=medium exclude=3DES",
         "tls_map_policy": "Richtlinie",
         "tls_policy_maps": "TLS-Richtlinien",
-        "tls_policy_maps_info": "Nachstehende Richtlinien erzwingen TLS-Transportregeln unabhängig von TLS-Richtlinieneinstellungen eines Benutzers.<br>\r\n  Für weitere Informationen zur Syntax sollte <a href=\"http://www.postfix.org/postconf.5.html#smtp_tls_policy_maps\" target=\"_blank\">die \"smtp_tls_policy_maps\" Dokumentation</a> konsultiert werden.",
         "tls_policy_maps_enforced_tls": "Die Richtlinien überschreiben auch das Verhalten für Mailbox-Benutzer, die für ausgehende Verbindungen TLS erzwingen. Ist keine Policy nachstehend konfiguriert, richtet sich der Standard für diese Benutzer sich nach den Werten <code>smtp_tls_mandatory_protocols</code> und <code>smtp_tls_mandatory_ciphers</code>.",
+        "tls_policy_maps_info": "Nachstehende Richtlinien erzwingen TLS-Transportregeln unabhängig von TLS-Richtlinieneinstellungen eines Benutzers.<br>\r\n  Für weitere Informationen zur Syntax sollte <a href=\"http://www.postfix.org/postconf.5.html#smtp_tls_policy_maps\" target=\"_blank\">die \"smtp_tls_policy_maps\" Dokumentation</a> konsultiert werden.",
         "tls_policy_maps_long": "Ausgehende TLS-Richtlinien",
         "toggle_all": "Alle",
         "username": "Benutzername",
@@ -783,6 +863,9 @@
         "qitem": "Quarantäneeintrag",
         "quarantine": "Quarantäne",
         "quick_actions": "Aktionen",
+        "quick_delete_link": "Quick-Delete Link öffnen",
+        "quick_info_link": "Element-Info Link öffnen",
+        "quick_release_link": "Quick-Release Link öffnen",
         "rcpt": "Empfänger",
         "received": "Empfangen",
         "recipients": "Empfänger",
@@ -793,27 +876,25 @@
         "release_subject": "Potentiell schädliche Nachricht aus Quarantäne: %s",
         "remove": "Entfernen",
         "rewrite_subject": "Betreff geändert",
-        "rspamd_result": "Rspamd Ergebnis",
-        "quick_release_link": "Quick-Release Link öffnen",
-        "quick_delete_link": "Quick-Delete Link öffnen",
-        "quick_info_link": "Element-Info Link öffnen",
+        "rspamd_result": "Rspamd-Ergebnis",
         "sender": "Sender (SMTP)",
         "sender_header": "Sender (\"From\"-Header)",
+        "settings_info": "Maximale Anzahl der zurückgehaltenen E-Mails: %s<br>Maximale Größe einer zu speichernden E-Mail: %s MiB",
         "show_item": "Details",
         "spam": "Spam",
         "spam_score": "Bewertung",
         "subj": "Betreff",
-        "type": "Typ",
         "table_size": "Tabellengröße",
         "table_size_show_n": "Zeige %s Einträge",
         "text_from_html_content": "Inhalt (html, konvertiert)",
         "text_plain_content": "Inhalt (text/plain)",
-        "toggle_all": "Alle auswählen"
+        "toggle_all": "Alle auswählen",
+        "type": "Typ"
     },
     "start": {
         "help": "Hilfe ein-/ausblenden",
         "imap_smtp_server_auth_info": "Bitte verwenden Sie Ihre vollständige E-Mail-Adresse sowie das PLAIN-Authentifizierungsverfahren.<br>\r\nIhre Anmeldedaten werden durch die obligatorische Verschlüsselung entgegen des Begriffes \"PLAIN\" nicht unverschlüsselt übertragen.",
-        "mailcow_apps_detail": "Verwenden Sie mailcow Apps, um E-Mails abzurufen, Kalender und Kontakte zu verwalten und vieles mehr.",
+        "mailcow_apps_detail": "Verwenden Sie mailcow-Apps, um E-Mails abzurufen, Kalender und Kontakte zu verwalten und vieles mehr.",
         "mailcow_panel_detail": "<b>Domain-Administratoren</b> erstellen, verändern oder löschen Mailboxen, verwalten die Domäne und sehen sonstige Einstellungen ein.<br>\r\n\tAls <b>Mailbox-Benutzer</b> erstellen Sie hier zeitlich limitierte Aliasse, ändern das Verhalten des Spamfilters, setzen ein neues Passwort und vieles mehr."
     },
     "success": {
@@ -830,14 +911,14 @@
         "aliasd_modified": "Änderungen an Alias-Domain %s wurden gespeichert",
         "app_links": "Änderungen an App-Links wurden gespeichert",
         "app_passwd_added": "App-Passwort wurde gespeichert",
-        "app_passwd_removed": "App-Passwort ID %s wurde entfernt",
-        "bcc_deleted": "BCC Map-Einträge gelöscht: %s",
-        "bcc_edited": "BCC Map-Eintrag %s wurde geändert",
-        "bcc_saved": "BCC Map-Eintrag wurde gespeichert",
+        "app_passwd_removed": "App-Passwort-ID %s wurde entfernt",
+        "bcc_deleted": "BCC-Map-Einträge gelöscht: %s",
+        "bcc_edited": "BCC-Map-Eintrag %s wurde geändert",
+        "bcc_saved": "BCC- Map-Eintrag wurde gespeichert",
         "db_init_complete": "Datenbankinitialisierung abgeschlossen",
-        "delete_filter": "Filter ID %s wurde gelöscht",
+        "delete_filter": "Filter-ID %s wurde gelöscht",
         "delete_filters": "Filter gelöscht: %s",
-        "deleted_syncjob": "Sync-Jobs ID %s gelöscht",
+        "deleted_syncjob": "Sync-Jobs-ID %s gelöscht",
         "deleted_syncjobs": "Sync-Jobs gelöscht: %s",
         "dkim_added": "DKIM-Key %s wurde hinzugefügt",
         "dkim_duplicated": "DKIM-Key der Domain %s wurde auf Domain %s kopiert",
@@ -853,47 +934,52 @@
         "f2b_modified": "Änderungen an Fail2ban-Parametern wurden gespeichert",
         "forwarding_host_added": "Weiterleitungs-Host %s wurde hinzugefügt",
         "forwarding_host_removed": "Weiterleitungs-Host %s wurde entfernt",
-        "global_filter_written": "Filterdatei wurde erfolreich geschrieben",
+        "global_filter_written": "Filterdatei wurde erfolgreich geschrieben",
         "hash_deleted": "Hash wurde gelöscht",
         "item_deleted": "Objekt %s wurde entfernt",
         "item_released": "Objekt %s freigegeben",
         "items_deleted": "Objekt(e) %s wurde(n) erfolgreich entfernt",
         "items_released": "Ausgewählte Objekte wurden an Mailbox versendet",
-        "learned_ham": "ID %s wurde erfolreich als Ham gelernt",
+        "learned_ham": "ID %s wurde erfolgreich als Ham gelernt",
         "license_modified": "Änderungen an Lizenz wurden gespeichert",
         "logged_in_as": "Eingeloggt als %s",
         "mailbox_added": "Mailbox %s wurde angelegt",
         "mailbox_modified": "Änderungen an Mailbox %s wurden gespeichert",
         "mailbox_removed": "Mailbox %s wurde entfernt",
+        "nginx_reloaded": "Nginx wurde neu geladen",
         "object_modified": "Änderungen an Objekt %s wurden gespeichert",
-        "pushover_settings_edited": "Pushover Konfiguration gespeichert, bitte den Zugang im Anschluss verifizieren.",
-        "qlearn_spam": "Nachricht ID %s wurde als Spam gelernt und gelöscht",
+        "password_policy_saved": "Passwortrichtlinie wurde erfolgreich gespeichert",
+        "pushover_settings_edited": "Pushover-Konfiguration gespeichert, bitte den Zugang im Anschluss verifizieren.",
+        "qlearn_spam": "Nachricht-ID %s wurde als Spam gelernt und gelöscht",
         "queue_command_success": "Queue-Aufgabe erfolgreich ausgeführt",
         "recipient_map_entry_deleted": "Empfängerumschreibung mit der ID %s wurde gelöscht",
         "recipient_map_entry_saved": "Empfängerumschreibung für Objekt \"%s\" wurde gespeichert",
-        "relayhost_added": "Mapeintrag %s wurde hinzugefügt",
-        "relayhost_removed": "Mapeintrag %s wurde entfernt",
+        "relayhost_added": "Map-Eintrag %s wurde hinzugefügt",
+        "relayhost_removed": "Map-Eintrag %s wurde entfernt",
         "reset_main_logo": "Standardgrafik wurde wiederhergestellt",
         "resource_added": "Ressource %s wurde angelegt",
         "resource_modified": "Änderungen an Ressource %s wurden gespeichert",
         "resource_removed": "Ressource %s wurde entfernt",
         "rl_saved": "Ratelimit für Objekt %s wurde gesetzt",
-        "rspamd_ui_pw_set": "Rspamd UI-Passwort wurde gesetzt",
+        "rspamd_ui_pw_set": "Rspamd-UI-Passwort wurde gesetzt",
         "saved_settings": "Regel wurde gespeichert",
         "settings_map_added": "Regel wurde gespeichert",
         "settings_map_removed": "Regeln wurden entfernt: %s",
-        "sogo_profile_reset": "ActiveSync Gerät des Benutzers %s wurde zurückgesetzt",
+        "sogo_profile_reset": "ActiveSync-Gerät des Benutzers %s wurde zurückgesetzt",
         "tls_policy_map_entry_deleted": "TLS-Richtlinie mit der ID %s wurde gelöscht",
         "tls_policy_map_entry_saved": "TLS-Richtlinieneintrag \"%s\" wurde gespeichert",
         "ui_texts": "Änderungen an UI-Texten",
         "upload_success": "Datei wurde erfolgreich hochgeladen",
+        "verified_fido2_login": "FIDO2-Anmeldung verifiziert",
         "verified_totp_login": "TOTP-Anmeldung verifiziert",
         "verified_u2f_login": "U2F-Anmeldung verifiziert",
-        "verified_fido2_login": "FIDO2-Anmeldung verifiziert",
-        "verified_yotp_login": "Yubico OTP-Anmeldung verifiziert"
+        "verified_yotp_login": "Yubico-OTP-Anmeldung verifiziert",
+        "xmpp_maps_updated": "XMPP-Maps wurden aktualisiert",
+        "xmpp_reloaded": "XMPP-Dienst wurde neu geladen",
+        "xmpp_restarted": "XMPP-Dienst wurde neu gestartet"
     },
     "tfa": {
-        "api_register": "%s verwendet die Yubico Cloud API. Ein API-Key für den Yubico Stick kann <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">hier</a> bezogen werden.",
+        "api_register": "%s verwendet die Yubico-Cloud-API. Ein API-Key für den Yubico-Stick kann <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">hier</a> bezogen werden.",
         "confirm": "Bestätigen",
         "confirm_totp_token": "Bitte bestätigen Sie die Änderung durch Eingabe eines generierten Tokens",
         "delete_tfa": "Deaktiviere 2FA",
@@ -904,32 +990,19 @@
         "key_id": "Ein Namen für diesen YubiKey",
         "key_id_totp": "Ein eindeutiger Name",
         "none": "Deaktiviert",
-        "reload_retry": "- (bei persistierendem Fehler, bitte Browserfenster neuladen)",
+        "reload_retry": "- (bei persistierendem Fehler, bitte Browserfenster neu laden)",
         "scan_qr_code": "Bitte scannen Sie jetzt den angezeigten QR-Code:",
         "select": "Bitte auswählen",
         "set_tfa": "Konfiguriere Zwei-Faktor-Authentifizierungsmethode",
         "start_u2f_validation": "Starte Validierung",
         "tfa": "Zwei-Faktor-Authentifizierung",
-        "totp": "Time-based OTP (Google Authenticator etc.)",
+        "tfa_token_invalid": "TFA-Token ungültig!",
+        "totp": "Time-based-OTP (Google Authenticator etc.)",
         "u2f": "U2F-Authentifizierung",
         "waiting_usb_auth": "<i>Warte auf USB-Gerät...</i><br><br>Bitte jetzt den vorgesehenen Taster des USB-Gerätes berühren.",
         "waiting_usb_register": "<i>Warte auf USB-Gerät...</i><br><br>Bitte zuerst das obere Passwortfeld ausfüllen und erst dann den vorgesehenen Taster des USB-Gerätes berühren.",
         "yubi_otp": "Yubico OTP-Authentifizierung"
     },
-    "fido2": {
-        "set_fn": "Benutzerfreundlichen Namen konfigurieren",
-        "fn": "Benutzerfreundlicher Name",
-        "rename": "umbenennen",
-        "confirm": "Bestätigen",
-        "register_status": "Registrierungsstatus",
-        "known_ids": "Bekannte IDs",
-        "none": "Deaktiviert",
-        "set_fido2": "Registriere FIDO2 Gerät",
-        "start_fido2_validation": "Starte FIDO2 Validierung",
-        "fido2_auth": "Anmeldung über FIDO2",
-        "fido2_success": "Das Gerät wurde erfolgreich registriert",
-        "fido2_validation_failed": "Validierung fehlgeschlagen"
-    },
     "user": {
         "action": "Aktion",
         "active": "Aktiv",
@@ -949,27 +1022,32 @@
         "app_name": "App-Name",
         "app_passwds": "App-Passwörter",
         "apple_connection_profile": "Apple-Verbindungsprofil",
-        "apple_connection_profile_complete": "Dieses Verbindungsprofil beinhaltet neben IMAP- und SMTP-Konfigurationen auch Pfade für die Konfiguration von CalDAV (Kalender) und CardDAV (Adressbücher) für ein Apple Gerät.",
+        "apple_connection_profile_complete": "Dieses Verbindungsprofil beinhaltet neben IMAP- und SMTP-Konfigurationen auch Pfade für die Konfiguration von CalDAV (Kalender) und CardDAV (Adressbücher) für ein Apple-Gerät.",
         "apple_connection_profile_mailonly": "Dieses Verbindungsprofil beinhaltet IMAP- und SMTP-Konfigurationen für ein Apple-Gerät.",
         "change_password": "Passwort ändern",
+        "clear_recent_successful_connections": "Alle erfolgreichen Verbindungen bereinigen",
         "client_configuration": "Konfigurationsanleitungen für E-Mail-Programme und Smartphones anzeigen",
         "create_app_passwd": "Erstelle App-Passwort",
         "create_syncjob": "Neuen Sync-Job erstellen",
+        "created_on": "Erstellt am",
         "daily": "Täglich",
         "day": "Tag",
         "delete_ays": "Soll der Löschvorgang wirklich ausgeführt werden?",
         "direct_aliases": "Direkte Alias-Adressen",
         "direct_aliases_desc": "Nur direkte Alias-Adressen werden für benutzerdefinierte Einstellungen berücksichtigt.",
-        "eas_reset": "ActiveSync Geräte-Cache zurücksetzen",
-        "eas_reset_help": "In vielen Fällen kann ein ActiveSync Profil durch das Zurücksetzen des Caches repariert werden.<br><b>Vorsicht:</b> Alle Elemente werden erneut heruntergeladen!",
+        "eas_reset": "ActiveSync-Geräte-Cache zurücksetzen",
+        "eas_reset_help": "In vielen Fällen kann ein ActiveSync-Profil durch das Zurücksetzen des Caches repariert werden.<br><b>Vorsicht:</b> Alle Elemente werden erneut heruntergeladen!",
         "eas_reset_now": "Jetzt zurücksetzen",
         "edit": "Bearbeiten",
         "email": "E-Mail",
         "email_and_dav": "E-Mail, Kalender und Adressbücher",
+        "empty": "Keine Einträge vorhanden",
         "encryption": "Verschlüsselung",
         "excludes": "Ausschlüsse",
         "expire_in": "Ungültig in",
-        "force_pw_update": "Das Passwort für diesen Benutzer <b>muss</b> geändert werden, damit die Zugriffssperre auf die Groupwarekomponenten wieder freigeschaltet wird.",
+        "fido2_webauthn": "FIDO2/WebAuthn",
+        "force_pw_update": "Das Passwort für diesen Benutzer <b>muss</b> geändert werden, damit die Zugriffssperre auf die Groupware-Komponenten wieder freigeschaltet wird.",
+        "from": "von",
         "generate": "generieren",
         "hour": "Stunde",
         "hourly": "Stündlich",
@@ -978,17 +1056,25 @@
         "interval": "Intervall",
         "is_catch_all": "Ist Catch-All-Adresse für Domain(s)",
         "last_mail_login": "Letzter Mail-Login",
+        "last_pw_change": "Letzte Passwortänderung",
         "last_run": "Letzte Ausführung",
+        "last_ui_login": "Letzte UI Anmeldung",
         "loading": "Lade...",
-        "mailbox_details": "Mailbox-Details",
+        "login_history": "Login-Historie",
+        "mailbox": "Mailbox",
+        "mailbox_details": "Details",
+        "mailbox_general": "Allgemein",
+        "mailbox_settings": "Einstellungen",
         "messages": "Nachrichten",
+        "month": "Monat",
+        "months": "Monate",
         "never": "Niemals",
         "new_password": "Neues Passwort",
-        "new_password_description": "Mindestanforderung: 6 Zeichen lang, Buchstaben und Zahlen.",
         "new_password_repeat": "Neues Passwort (Wiederholung)",
         "no_active_filter": "Kein aktiver Filter vorhanden",
         "no_last_login": "Keine letzte UI-Anmeldung gespeichert",
         "no_record": "Kein Eintrag",
+        "open_webmail_sso": "In Webmail einloggen",
         "password": "Passwort",
         "password_now": "Aktuelles Passwort (Änderungen bestätigen)",
         "password_repeat": "Passwort (Wiederholung)",
@@ -1004,10 +1090,11 @@
         "q_add_header": "Junk-Ordner",
         "q_all": "Alle Kategorien",
         "q_reject": "Abgelehnt",
-        "quarantine_notification": "Quarantäne-Benachrichtigung",
         "quarantine_category": "Quarantäne-Benachrichtigungskategorie",
-        "quarantine_notification_info": "Wurde über eine E-Mail in Quarantäne informiert, wird sie als \"benachrichtigt\" markiert und keine weitere Benachrichtigung zu dieser E-Mail versendet.",
         "quarantine_category_info": "Die Kategorie \"Abgelehnt\" informiert über abgelehnte E-Mails, während \"Junk-Ordner\" über E-Mails berichtet, die im Junk-Ordner des jeweiligen Benutzers abgelegt wurden.",
+        "quarantine_notification": "Quarantäne-Benachrichtigung",
+        "quarantine_notification_info": "Wurde über eine E-Mail in Quarantäne informiert, wird sie als \"benachrichtigt\" markiert und keine weitere Benachrichtigung zu dieser E-Mail versendet.",
+        "recent_successful_connections": "Kürzlich erfolgreiche Verbindungen",
         "remove": "Entfernen",
         "running": "Wird ausgeführt",
         "save": "Änderungen speichern",
@@ -1016,10 +1103,10 @@
         "shared_aliases": "Geteilte Alias-Adressen",
         "shared_aliases_desc": "Geteilte Alias-Adressen werden nicht bei benutzerdefinierten Einstellungen, wie die des Spam-Filters oder der Verschlüsselungsrichtlinie, berücksichtigt. Entsprechende Spam-Filter können lediglich von einem Administrator vorgenommen werden.",
         "show_sieve_filters": "Zeige aktiven Filter des Benutzers",
-        "sogo_profile_reset": "SOGo Profil zurücksetzen",
+        "sogo_profile_reset": "SOGo-Profil zurücksetzen",
         "sogo_profile_reset_help": "Das Profil wird inklusive <b>aller</b> Kalender- und Kontaktdaten <b>unwiederbringlich gelöscht</b>.",
         "sogo_profile_reset_now": "Profil jetzt zurücksetzen",
-        "spam_aliases": "Temporäre E-Mail Aliasse",
+        "spam_aliases": "Temporäre E-Mail-Aliasse",
         "spam_score_reset": "Auf Server-Standard zurücksetzen",
         "spamfilter": "Spamfilter",
         "spamfilter_behavior": "Bewertung",
@@ -1058,17 +1145,20 @@
         "waiting": "Warte auf Ausführung",
         "week": "Woche",
         "weekly": "Wöchentlich",
-        "weeks": "Wochen"
+        "weeks": "Wochen",
+        "year": "Jahr",
+        "years": "Jahren"
     },
     "warning": {
         "cannot_delete_self": "Kann derzeit eingeloggten Benutzer nicht entfernen",
         "domain_added_sogo_failed": "Domain wurde hinzugefügt, aber SOGo konnte nicht neugestartet werden",
         "dovecot_restart_failed": "Dovecot wurde nicht erfolgreich neu gestartet, bitte prüfen Sie die Logs.",
-        "fuzzy_learn_error": "Fuzzy Lernfehler: %s",
+        "fuzzy_learn_error": "Fuzzy-Lernfehler: %s",
         "hash_not_found": "Hash nicht gefunden. Möglicherweise wurde dieser bereits gelöscht.",
         "ip_invalid": "Ungültige IP übersprungen: %s",
+        "is_not_primary_alias": "Überspringe nicht-primären Alias %s",
         "no_active_admin": "Kann letzten aktiven Administrator nicht deaktivieren",
-        "quota_exceeded_scope": "Domain-Quota erschöpft: Es können nur noch unlimiterte Mailboxen in dieser Domain erstellt werden.",
+        "quota_exceeded_scope": "Domain-Quota erschöpft: Es können nur noch unlimitierte Mailboxen in dieser Domain erstellt werden.",
         "session_token": "Formular-Token ungültig: Token stimmt nicht überein",
         "session_ua": "Formular-Token ungültig: User-Agent-Validierungsfehler"
     }
diff --git a/mailcow/src/mailcow-dockerized/data/web/lang/lang.en.json b/mailcow/src/mailcow-dockerized/data/web/lang/lang.en.json
index ceee60e..d5494e5 100644
--- a/mailcow/src/mailcow-dockerized/data/web/lang/lang.en.json
+++ b/mailcow/src/mailcow-dockerized/data/web/lang/lang.en.json
@@ -4,17 +4,20 @@
         "app_passwds": "Manage app passwords",
         "bcc_maps": "BCC maps",
         "delimiter_action": "Delimiter action",
+        "domain_desc": "Change domain description",
+        "domain_relayhost": "Change relayhost for a domain",
         "eas_reset": "Reset EAS devices",
         "extend_sender_acl": "Allow to extend sender ACL by external addresses",
         "filters": "Filters",
         "login_as": "Login as mailbox user",
+        "mailbox_relayhost": "Change relayhost for a mailbox",
         "prohibited": "Prohibited by ACL",
         "protocol_access": "Change protocol access",
         "pushover": "Pushover",
         "quarantine": "Quarantine actions",
         "quarantine_attachments": "Quarantine attachments",
-        "quarantine_notification": "Change quarantine notifications",
         "quarantine_category": "Change quarantine notification category",
+        "quarantine_notification": "Change quarantine notifications",
         "ratelimit": "Rate limit",
         "recipient_maps": "Recipient maps",
         "smtp_ip_access": "Change allowed hosts for SMTP",
@@ -26,7 +29,10 @@
         "syncjobs": "Sync jobs",
         "tls_policy": "TLS policy",
         "unlimited_quota": "Unlimited quota for mailboxes",
-        "domain_desc": "Change domain description"
+        "xmpp_admin": "Promote XMPP user to administrator",
+        "xmpp_domain_access": "Configure XMPP domain access",
+        "xmpp_mailbox_access": "Configure XMPP user access",
+        "xmpp_prefix": "Change XMPP subdomain (prefix)"
     },
     "add": {
         "activate_filter_warn": "All other filters will be deactivated, when active is checked.",
@@ -42,7 +48,8 @@
         "app_password": "Add app password",
         "automap": "Try to automap folders (\"Sent items\", \"Sent\" => \"Sent\" etc.)",
         "backup_mx_options": "Relay options",
-        "comment_info": "A private comment is not visible to the user, while a public comment is shown as tooltip when hovering it in a users overview",
+        "bcc_dest_format": "BCC destination must be a single valid email address.<br> If you need to send a copy to multiple addresses, create an Alias and use it here.",
+        "comment_info": "A private comment is not visible to the user, while a public comment is shown as tooltip when hovering it in a user's overview",
         "custom_params": "Custom parameters",
         "custom_params_hint": "Right: --param=xy, wrong: --param xy",
         "delete1": "Delete from source when completed",
@@ -102,7 +109,13 @@
         "timeout2": "Timeout for connection to local host",
         "username": "Username",
         "validate": "Validate",
-        "validation_success": "Validated successfully"
+        "validation_success": "Validated successfully",
+        "xmpp": "Activate XMPP for this domain",
+        "xmpp_access": "XMPP access",
+        "xmpp_access_info": "XMPP must be enabled for this domain.",
+        "xmpp_admin": "XMPP administrator",
+        "xmpp_admin_info": "<b>Danger:</b> Promotes a user to an XMPP administrator of this domain.",
+        "xmpp_info": "This function will enable chat functionality for this domain."
     },
     "admin": {
         "access": "Access",
@@ -125,10 +138,14 @@
         "admin": "Administrator",
         "admin_details": "Edit administrator details",
         "admin_domains": "Domain assignments",
+        "admins": "Administrators",
+        "admins_ldap": "LDAP Administrators",
         "advanced_settings": "Advanced settings",
         "api_allow_from": "Allow API access from these IPs/CIDR network notations",
         "api_info": "The API is a work in progress. The documentation can be found at <a href=\"/api\">/api</a>",
         "api_key": "API key",
+        "api_read_only": "Read-Only Access",
+        "api_read_write": "Read-Write Access",
         "api_skip_ip_check": "Skip IP check for API",
         "app_links": "App links",
         "app_name": "App name",
@@ -140,7 +157,7 @@
         "change_logo": "Change logo",
         "configuration": "Configuration",
         "convert_html_to_text": "Convert HTML to plain text",
-        "credentials_transport_warning": "<b>Warning</b>: Adding a new transport map entry will update the credentials for all entries with a matching nexthop column.",
+        "credentials_transport_warning": "<b>Warning</b>: Adding a new transport map entry will update the credentials for all entries with a matching next hop column.",
         "customer_id": "Customer ID",
         "customize": "Customize",
         "delete_queue": "Delete all",
@@ -199,12 +216,14 @@
         "include_exclude": "Include/Exclude",
         "include_exclude_info": "By default - with no selection - <b>all mailboxes</b> are addressed",
         "includes": "Include these recipients",
+        "is_mx_based": "MX based",
         "last_applied": "Last applied",
         "license_info": "A license is not required but helps further development.<br><a href=\"https://www.servercow.de/mailcow?lang=en#sal\" target=\"_blank\" alt=\"SAL order\">Register your GUID here</a> or <a href=\"https://www.servercow.de/mailcow?lang=en#support\" target=\"_blank\" alt=\"Support order\">buy support for your mailcow installation.</a>",
         "link": "Link",
         "loading": "Please wait...",
+        "login_time": "Login time",
         "logo_info": "Your image will be scaled to a height of 40px for the top navigation bar and a max. width of 250px for the start page. A scalable graphic is highly recommended.",
-        "lookup_mx": "Match destination against MX (.outlook.com to route all mail targeted to a MX *.outlook.com over this hop)",
+        "lookup_mx": "Destination is a regular expression to match against MX name (<code>.*google\\.com</code> to route all mail targeted to a MX ending in google.com over this hop)",
         "main_name": "\"mailcow UI\" name",
         "merged_vars_hint": "Greyed out rows were merged from <code>vars.(local.)inc.php</code> and cannot be modified.",
         "message": "Message",
@@ -214,14 +233,23 @@
         "no_active_bans": "No active bans",
         "no_new_rows": "No further rows available",
         "no_record": "No record",
+        "oauth2_apps": "OAuth2 Apps",
+        "oauth2_add_client": "Add OAuth2 client",
         "oauth2_client_id": "Client ID",
         "oauth2_client_secret": "Client secret",
-        "oauth2_info": "The OAuth2 implementation supports the grant type \"Authorization Code\" and issues refresh tokens.<br>\r\nThe server also automatically issues new refresh tokens, after a refresh token has been used.<br><br>\r\n→ The default scope is <i>profile</i>. Only mailbox users can be authenticated against OAuth2. If the scope parameter is omitted, it falls back to <i>profile</i>.<br>\r\n→ The <i>state</i> parameter is required to be sent by the client as part of the authorize request.<br><br>\r\nPaths for requests to the OAuth2 API: <br>\r\n<ul>\r\n  <li>Authorization endpoint: <code>/oauth/authorize</code></li>\r\n  <li>Token endpoint: <code>/oauth/token</code></li>\r\n  <li>Resource page:  <code>/oauth/profile</code></li>\r\n</ul>\r\nRegenerating the client secret will not expire existing authorization codes, but they will fail to renew their token.<br><br>\r\nRevoking client tokens will cause immediate termination of all active sessions. All clients need to re-authenticate.",
+        "oauth2_info": "The OAuth2 implementation supports the grant type \"Authorization Code\" and issues refresh tokens.<br>\r\nThe server also automatically issues new refresh tokens, after a refresh token has been used.<br><br>\r\n&#8226; The default scope is <i>profile</i>. Only mailbox users can be authenticated against OAuth2. If the scope parameter is omitted, it falls back to <i>profile</i>.<br>\r\n&#8226; The <i>state</i> parameter is required to be sent by the client as part of the authorize request.<br><br>\r\nPaths for requests to the OAuth2 API: <br>\r\n<ul>\r\n  <li>Authorization endpoint: <code>/oauth/authorize</code></li>\r\n  <li>Token endpoint: <code>/oauth/token</code></li>\r\n  <li>Resource page:  <code>/oauth/profile</code></li>\r\n</ul>\r\nRegenerating the client secret will not expire existing authorization codes, but they will fail to renew their token.<br><br>\r\nRevoking client tokens will cause immediate termination of all active sessions. All clients need to re-authenticate.",
         "oauth2_redirect_uri": "Redirect URI",
         "oauth2_renew_secret": "Generate new client secret",
         "oauth2_revoke_tokens": "Revoke all client tokens",
         "optional": "optional",
         "password": "Password",
+        "password_length": "Password length",
+        "password_policy": "Password policy",
+        "password_policy_chars": "Must contain at least one alphabetic character",
+        "password_policy_length": "Minimum password length is %d",
+        "password_policy_lowerupper": "Must contain lowercase and uppercase characters",
+        "password_policy_numbers": "Must contain at least one number",
+        "password_policy_special_chars": "Must contain special characters",
         "password_repeat": "Confirmation password (repeat)",
         "priority": "Priority",
         "private_key": "Private key",
@@ -229,8 +257,8 @@
         "quarantine_bcc": "Send a copy of all notifications (BCC) to this recipient:<br><small>Leave empty to disable. <b>Unsigned, unchecked mail. Should be delivered internally only.</b></small>",
         "quarantine_exclude_domains": "Exclude domains and alias-domains",
         "quarantine_max_age": "Maximum age in days<br><small>Value must be equal to or greater than 1 day.</small>",
-        "quarantine_max_size": "Maximum size in MiB (larger elements are discarded):<br><small>0 does <b>not</b> indicate unlimited.</small>",
         "quarantine_max_score": "Discard notification if spam score of a mail is higher than this value:<br><small>Defaults to 9999.0</small>",
+        "quarantine_max_size": "Maximum size in MiB (larger elements are discarded):<br><small>0 does <b>not</b> indicate unlimited.</small>",
         "quarantine_notification_html": "Notification email template:<br><small>Leave empty to restore default template.</small>",
         "quarantine_notification_sender": "Notification email sender",
         "quarantine_notification_subject": "Notification email subject",
@@ -243,14 +271,14 @@
         "queue_deliver_mail": "Deliver",
         "queue_hold_mail": "Hold",
         "queue_manager": "Queue manager",
+        "queue_show_message": "Show message",
         "queue_unban": "queue unban",
         "queue_unhold_mail": "Unhold",
-        "queue_show_message": "Show message",
         "quota_notification_html": "Notification email template:<br><small>Leave empty to restore default template.</small>",
         "quota_notification_sender": "Notification email sender",
         "quota_notification_subject": "Notification email subject",
         "quota_notifications": "Quota notifications",
-        "quota_notifications_info": "Quota notications are sent to users once when crossing 80% and once when crossing 95% usage.",
+        "quota_notifications_info": "Quota notifications are sent to users once when crossing 80% and once when crossing 95% usage.",
         "quota_notifications_vars": "{{percent}} equals the current quota of the user<br>{{username}} is the mailbox name",
         "r_active": "Active restrictions",
         "r_inactive": "Inactive restrictions",
@@ -261,6 +289,7 @@
         "regen_api_key": "Regenerate API key",
         "regex_maps": "Regex maps",
         "relay_from": "\"From:\" address",
+        "relay_rcpt": "\"To:\" address",
         "relay_run": "Run test",
         "relayhosts": "Sender-dependent transports",
         "relayhosts_hint": "Define sender-dependent transports to be able to select them in a domains configuration dialog.<br>\r\n  The transport service is always \"smtp:\" and will therefore try TLS when offered. Wrapped TLS (SMTPS) is not supported. A users individual outbound TLS policy setting is taken into account.<br>\r\n  Affects selected domains including alias domains.",
@@ -278,6 +307,7 @@
         "rsettings_preset_1": "Disable all but DKIM and rate limit for authenticated users",
         "rsettings_preset_2": "Postmasters want spam",
         "rsettings_preset_3": "Only allow specific senders for a mailbox (i.e. usage as internal mailbox only)",
+        "rsettings_preset_4": "Disable Rspamd for a domain",
         "rspamd-com_settings": "A setting name will be auto-generated, please see the example presets below. For more details see <a href=\"https://rspamd.com/doc/configuration/settings.html#settings-structure\" target=\"_blank\">Rspamd docs</a>",
         "rspamd_global_filters": "Global filter maps",
         "rspamd_global_filters_agree": "I will be careful!",
@@ -289,19 +319,22 @@
         "search_domain_da": "Search domains",
         "send": "Send",
         "sender": "Sender",
+        "service": "Service",
         "service_id": "Service ID",
         "source": "Source",
         "spamfilter": "Spam filter",
         "subject": "Subject",
+        "success": "Success",
         "sys_mails": "System mails",
         "text": "Text",
         "time": "Time",
         "title": "Title",
         "title_name": "\"mailcow UI\" website title",
         "to_top": "Back to top",
-        "transport_dest_format": "Syntax: example.org, .example.org, *, box@example.org (multiple values can be comma-separated)",
+        "transport_dest_format": "Regex or syntax: example.org, .example.org, *, box@example.org (multiple values can be comma-separated)",
         "transport_maps": "Transport Maps",
-        "transports_hint": "→ A transport map entry <b>overrules</b> a sender-dependent transport map</b>.<br>\r\n→ Outbound TLS policy settings per-user are ignored and can only be enforced by TLS policy map entries.<br>\r\n→ The transport service for defined transports is always \"smtp:\" and will therefore try TLS when offered. Wrapped TLS (SMTPS) is not supported.<br>\r\n→ Addresses matching \"/localhost$/\" will always be transported via \"local:\", therefore a \"*\" destination will not apply to those addresses.<br>\r\n→ To determine credentials for an exemplary next hop \"[host]:25\", Postfix <b>always</b> queries for \"host\" before searching for \"[host]:25\". This behavior makes it impossible to use \"host\" and \"[host]:25\" at the same time.",
+        "transport_test_rcpt_info": "&#8226; Use null@hosted.mailcow.de to test relaying to a foreign destination.",
+        "transports_hint": "&#8226; A transport map entry <b>overrules</b> a sender-dependent transport map</b>.<br>\r\n&#8226; MX-based transports are preferably used.<br>\r\n&#8226; Outbound TLS policy settings per-user are ignored and can only be enforced by TLS policy map entries.<br>\r\n&#8226; The transport service for defined transports is always \"smtp:\" and will therefore try TLS when offered. Wrapped TLS (SMTPS) is not supported.<br>\r\n&#8226; Addresses matching \"/localhost$/\" will always be transported via \"local:\", therefore a \"*\" destination will not apply to those addresses.<br>\r\n&#8226; To determine credentials for an exemplary next hop \"[host]:25\", Postfix <b>always</b> queries for \"host\" before searching for \"[host]:25\". This behavior makes it impossible to use \"host\" and \"[host]:25\" at the same time.",
         "ui_footer": "Footer (HTML allowed)",
         "ui_header_announcement": "Announcements",
         "ui_header_announcement_active": "Set announcement active",
@@ -309,9 +342,9 @@
         "ui_header_announcement_help": "The announcement is visible for all logged in users and on the login screen of the UI.",
         "ui_header_announcement_select": "Select announcement type",
         "ui_header_announcement_type": "Type",
+        "ui_header_announcement_type_danger": "Very important",
         "ui_header_announcement_type_info": "Info",
         "ui_header_announcement_type_warning": "Important",
-        "ui_header_announcement_type_danger": "Very important",
         "ui_texts": "UI labels and texts",
         "unban_pending": "unban pending",
         "unchanged_if_empty": "If unchanged leave blank",
@@ -347,6 +380,7 @@
         "domain_quota_m_in_use": "Domain quota must be greater or equal to %s MiB",
         "extra_acl_invalid": "External sender address \"%s\" is invalid",
         "extra_acl_invalid_domain": "External sender \"%s\" uses an invalid domain",
+        "fido2_verification_failed": "FIDO2 verification failed: %s",
         "file_open_error": "File cannot be opened for writing",
         "filter_type": "Wrong filter type",
         "from_invalid": "Sender must not be empty",
@@ -390,6 +424,7 @@
         "network_host_invalid": "Invalid network or host: %s",
         "next_hop_interferes": "%s interferes with nexthop %s",
         "next_hop_interferes_any": "An existing next hop interferes with %s",
+        "nginx_reload_failed": "Nginx reload failed: %s",
         "no_user_defined": "No user defined",
         "object_exists": "Object %s already exists",
         "object_is_not_numeric": "Value %s is not numeric",
@@ -430,49 +465,61 @@
         "totp_verification_failed": "TOTP verification failed",
         "transport_dest_exists": "Transport destination \"%s\" exists",
         "u2f_verification_failed": "U2F verification failed: %s",
-        "fido2_verification_failed": "FIDO2 verification failed: %s",
         "unknown": "An unknown error occurred",
         "unknown_tfa_method": "Unknown TFA method",
         "unlimited_quota_acl": "Unlimited quota prohibited by ACL",
         "username_invalid": "Username %s cannot be used",
         "validity_missing": "Please assign a period of validity",
         "value_missing": "Please provide all values",
+        "xmpp_map_write_error": "Could not write XMPP map: %s",
+        "xmpp_reload_failed": "XMPP could not be reloaded",
+        "xmpp_restart_failed": "XMPP could not be restarted",
         "yotp_verification_failed": "Yubico OTP verification failed: %s"
     },
     "debug": {
         "chart_this_server": "Chart (this server)",
         "containers_info": "Container information",
         "disk_usage": "Disk usage",
+        "docs": "Docs",
         "external_logs": "External logs",
         "history_all_servers": "History (all servers)",
         "in_memory_logs": "In-memory logs",
         "jvm_memory_solr": "JVM memory usage",
+        "last_modified": "Last modified",
         "log_info": "<p>mailcow <b>in-memory logs</b> are collected in Redis lists and trimmed to LOG_LINES (%d) every minute to reduce hammering.\r\n  <br>In-memory logs are not meant to be persistent. All applications that log in-memory, also log to the Docker daemon and therefore to the default logging driver.\r\n  <br>The in-memory log type should be used for debugging minor issues with containers.</p>\r\n  <p><b>External logs</b> are collected via API of the given application.</p>\r\n  <p><b>Static logs</b> are mostly activity logs, that are not logged to the Dockerd but still need to be persistent (except for API logs).</p>",
+        "login_time": "Time",
         "logs": "Logs",
+        "online_users": "Users online",
         "restart_container": "Restart",
+        "service": "Service",
+        "size": "Size",
         "solr_dead": "Solr is starting, disabled or died.",
-        "solr_docs": "Docs",
-        "solr_last_modified": "Last modified",
-        "solr_size": "Size",
-        "solr_started_at": "Started at",
         "solr_status": "Solr status",
-        "solr_uptime": "Uptime",
+        "started_at": "Started at",
         "started_on": "Started on",
         "static_logs": "Static logs",
-        "system_containers": "System & Containers"
+        "success": "Success",
+        "system_containers": "System & Containers",
+        "uptime": "Uptime",
+        "username": "Username",
+        "xmpp_dead": "XMPP is starting, disabled or died.",
+        "xmpp_status": "XMPP status"
     },
     "diagnostics": {
         "cname_from_a": "Value derived from A/AAAA record. This is supported as long as the record points to the correct resource.",
         "dns_records": "DNS Records",
         "dns_records_24hours": "Please note that changes made to DNS may take up to 24 hours to correctly have their current state reflected on this page. It is intended as a way for you to easily see how to configure your DNS records and to check whether all your records are correctly stored in DNS.",
         "dns_records_data": "Correct Data",
+        "dns_records_docs": "Please also consult <a target=\"_blank\" href=\"https://mailcow.github.io/mailcow-dockerized-docs/prerequisite-dns/\">the documentation</a>.",
         "dns_records_name": "Name",
         "dns_records_status": "Current State",
         "dns_records_type": "Type",
         "optional": "This record is optional."
     },
     "edit": {
+        "acl": "ACL (Permission)",
         "active": "Active",
+        "admin": "Edit administrator",
         "advanced_settings": "Advanced settings",
         "alias": "Edit alias",
         "allow_from_smtp": "Only allow these IPs to use <b>SMTP</b>",
@@ -482,10 +529,10 @@
         "app_passwd": "App password",
         "automap": "Try to automap folders (\"Sent items\", \"Sent\" => \"Sent\" etc.)",
         "backup_mx_options": "Relay options",
-        "bcc_dest_format": "BCC destination must be a single valid email address.",
+        "bcc_dest_format": "BCC destination must be a single valid email address.<br> If you need to send a copy to multiple addresses, create an Alias and use it here.",
         "client_id": "Client ID",
         "client_secret": "Client secret",
-        "comment_info": "A private comment is not visible to the user, while a public comment is shown as tooltip when hovering it in a users overview",
+        "comment_info": "A private comment is not visible to the user, while a public comment is shown as tooltip when hovering it in a user's overview",
         "delete1": "Delete from source when completed",
         "delete2": "Delete messages on destination that are not on source",
         "delete2duplicates": "Delete duplicates on destination",
@@ -512,8 +559,10 @@
         "hostname": "Hostname",
         "inactive": "Inactive",
         "kind": "Kind",
+        "lookup_mx": "Destination is a regular expression to match against MX name (<code>.*google\\.com</code> to route all mail targeted to a MX ending in google.com over this hop)",
         "mailbox": "Edit mailbox",
         "mailbox_quota_def": "Default mailbox quota",
+        "mailbox_relayhost_info": "Applied to the mailbox and direct aliases only, does override a domain relayhost.",
         "max_aliases": "Max. aliases",
         "max_mailboxes": "Max. possible mailboxes",
         "max_quota": "Max. quota per mailbox (MiB)",
@@ -522,12 +571,14 @@
         "mbox_rl_info": "This rate limit is applied on the SASL login name, it matches any \"from\" address used by the logged-in user. A mailbox rate limit overrides a domain-wide rate limit.",
         "mins_interval": "Interval (min)",
         "multiple_bookings": "Multiple bookings",
+        "none_inherit": "None / Inherit",
         "nexthop": "Next hop",
         "password": "Password",
         "password_repeat": "Confirmation password (repeat)",
         "previous": "Previous page",
         "private_comment": "Private comment",
         "public_comment": "Public comment",
+        "pushover": "Pushover",
         "pushover_evaluate_x_prio": "Escalate high priority mail [<code>X-Priority: 1</code>]",
         "pushover_info": "Push notification settings will apply to all clean (non-spam) mail delivered to <b>%s</b> including aliases (shared, non-shared, tagged).",
         "pushover_only_x_prio": "Only consider high priority mail [<code>X-Priority: 1</code>]",
@@ -538,6 +589,9 @@
         "pushover_vars": "When no sender filter is defined, all mails will be considered.<br>Regex filters as well as exact sender checks can be defined individually and will be considered sequentially. They do not depend on each other.<br>Useable variables for text and title (please take note of data protection policies)",
         "pushover_verify": "Verify credentials",
         "quota_mb": "Quota (MiB)",
+        "quota_warning_bcc": "Quota warning BCC",
+        "quota_warning_bcc_info": "Warnings will be sent as separate copies to the following recipients. The subject will be suffixed by the corresponding username in brackets, for example: <code>Quota warning (user@example.com)</code>.",
+        "ratelimit": "Rate limit",
         "redirect_uri": "Redirect/Callback URL",
         "relay_all": "Relay all recipients",
         "relay_all_info": "↪ If you choose <b>not</b> to relay all recipients, you will need to add a (\"blind\") mailbox for every single recipient that should be relayed.",
@@ -550,16 +604,17 @@
         "save": "Save changes",
         "scope": "Scope",
         "sender_acl": "Allow to send as",
-        "sender_acl_disabled": "↳ <span class=\"label label-danger\">Sender check is disabled</span>",
+        "sender_acl_disabled": "<span class=\"label label-danger\">Sender check is disabled</span>",
         "sender_acl_info": "If mailbox user A is allowed to send as mailbox user B, the sender address is not automatically displayed as selectable \"from\" field in SOGo.<br>\r\n  Mailbox user B needs to create a delegation in SOGo to allow mailbox user A to select their address as sender. To delegate a mailbox in SOGo, use the menu (three dots) to the right of your mailbox name in the upper left while in mail view. This behaviour does not apply to alias addresses.",
         "sieve_desc": "Short description",
         "sieve_type": "Filter type",
         "skipcrossduplicates": "Skip duplicate messages across folders (first come, first serve)",
         "sogo_access": "Grant access to SOGo",
-        "sogo_access_info": "Grant or permit access to SOGo. This setting does neither affect access to all other services nor does it delete or change a users existing SOGo profile.",
+        "sogo_access_info": "Grant or permit access to SOGo. This setting does neither affect access to all other services nor does it delete or change a user's existing SOGo profile.",
         "sogo_visible": "Alias is visible in SOGo",
         "sogo_visible_info": "This option only affects objects, that can be displayed in SOGo (shared or non-shared alias addresses pointing to at least one local mailbox). If hidden, an alias will not appear as selectable sender in SOGo.",
         "spam_alias": "Create or change time limited alias addresses",
+        "spam_filter": "Spam filter",
         "spam_policy": "Add or remove items to white-/blacklist",
         "spam_score": "Set a custom spam score",
         "subfolder2": "Sync into subfolder on destination<br><small>(empty = do not use subfolder)</small>",
@@ -571,16 +626,41 @@
         "title": "Edit object",
         "unchanged_if_empty": "If unchanged leave blank",
         "username": "Username",
-        "validate_save": "Validate and save"
+        "validate_save": "Validate and save",
+        "xmpp": "Activate XMPP for this domain",
+        "xmpp_access": "XMPP access",
+        "xmpp_access_info": "XMPP must be enabled for this domain.",
+        "xmpp_admin": "XMPP administrator",
+        "xmpp_admin_info": "<b>Danger:</b> Promotes a user to an XMPP administrator of this domain.",
+        "xmpp_example_jid": "<b>Example JID</b> (login with mailbox password)",
+        "xmpp_info": "This function will enable chat functionality for this domain.",
+        "xmpp_prefix": "XMPP prefix for domain (\"im\" to use <b>im</b>.example.org)",
+        "xmpp_prefix_info": "To request certificates for XMPP, two CNAME DNS records should point from <b>im</b>.example.org as well as <b>*.im</b>.example.org to <b>%s</b>. Please also run the DNS check for this domain after enabling XMPP."
+    },
+    "fido2": {
+        "confirm": "Confirm",
+        "fido2_auth": "Login with FIDO2",
+        "fido2_success": "Device successfully registered",
+        "fido2_validation_failed": "Validation failed",
+        "fn": "Friendly name",
+        "known_ids": "Known IDs",
+        "none": "Disabled",
+        "register_status": "Registration status",
+        "rename": "Rename",
+        "set_fido2": "Register FIDO2 device",
+        "set_fn": "Set friendly name",
+        "start_fido2_validation": "Start FIDO2 validation"
     },
     "footer": {
         "cancel": "Cancel",
         "confirm_delete": "Confirm deletion",
         "delete_now": "Delete now",
         "delete_these_items": "Please confirm your changes to the following object id",
+        "hibp_check": "Check against haveibeenpwned.com",
         "hibp_nok": "Matched! This is a potentially dangerous password!",
         "hibp_ok": "No match found.",
         "loading": "Please wait...",
+        "nothing_selected": "Nothing selected",
         "restart_container": "Restart container",
         "restart_container_info": "<b>Important:</b> A graceful restart may take a while to complete, please wait for it to finish.",
         "restart_now": "Restart now",
@@ -617,6 +697,7 @@
         "active": "Active",
         "add": "Add",
         "add_alias": "Add alias",
+        "add_alias_expand": "Expand alias over alias domains",
         "add_bcc_entry": "Add BCC map",
         "add_domain": "Add domain",
         "add_domain_alias": "Add domain alias",
@@ -628,9 +709,10 @@
         "add_tls_policy_map": "Add TLS policy map",
         "address_rewriting": "Address rewriting",
         "alias": "Alias",
-        "alias_domain_alias_hint": "Aliases are <b>not</b> applied on domain aliases automatically. An alias address <code>my-alias@domain</code> <b>does not</b> cover the address <code>my-alias@alias-domain</code> (where \"alias-domain\" is an imaginary alias domain for \"domain\").<br>Please use a sieve filter to redirect mail to an external mailbox (see tab \"Filters\" or use  SOGo -> Forwarder).",
+        "alias_domain_alias_hint": "Aliases are <b>not</b> applied on domain aliases automatically. An alias address <code>my-alias@domain</code> <b>does not</b> cover the address <code>my-alias@alias-domain</code> (where \"alias-domain\" is an imaginary alias domain for \"domain\").<br>Please use a sieve filter to redirect mail to an external mailbox (see tab \"Filters\" or use  SOGo -> Forwarder). Use \"Expand alias over alias domains\" to automatically add missing aliases.",
         "alias_domain_backupmx": "Alias domain inactive for relay domain",
         "aliases": "Aliases",
+        "all_domains": "All Domains",
         "allow_from_smtp": "Only allow these IPs to use <b>SMTP</b>",
         "allow_from_smtp_info": "Leave empty to allow all senders.<br>IPv4/IPv6 addresses and networks.",
         "allowed_protocols": "Allowed protocols",
@@ -654,6 +736,7 @@
         "booking_custom_short": "Hard limit",
         "booking_lt0": "Unlimited, but show as busy when booked",
         "booking_lt0_short": "Soft limit",
+        "catch_all": "Catch-All",
         "daily": "Daily",
         "deactivate": "Deactivate",
         "description": "Description",
@@ -671,20 +754,23 @@
         "filter_table": "Filter table",
         "filters": "Filters",
         "fname": "Full name",
+        "goto_ham": "Learn as <b>ham</b>",
+        "goto_spam": "Learn as <b>spam</b>",
         "hourly": "Hourly",
         "in_use": "In use (%)",
         "inactive": "Inactive",
         "insert_preset": "Insert example preset \"%s\"",
         "kind": "Kind",
         "last_mail_login": "Last mail login",
+        "last_pw_change": "Last password change",
         "last_run": "Last run",
         "last_run_reset": "Schedule next",
         "mailbox": "Mailbox",
+        "mailbox_defaults": "Default settings",
+        "mailbox_defaults_info": "Define default settings for new mailboxes.",
         "mailbox_defquota": "Default mailbox size",
         "mailbox_quota": "Max. size of a mailbox",
         "mailboxes": "Mailboxes",
-        "mailbox_defaults": "Default settings",
-        "mailbox_defaults_info": "Define default settings for new mailboxes.",
         "mins_interval": "Interval (min)",
         "msg_num": "Message #",
         "multiple_bookings": "Multiple bookings",
@@ -692,15 +778,17 @@
         "no": "&#10005;",
         "no_record": "No record for object %s",
         "no_record_single": "No record",
+        "open_logs": "Open logs",
         "owner": "Owner",
         "private_comment": "Private comment",
         "public_comment": "Public comment",
-        "q_add_header": "Junk folder",
-        "q_all": "All categories",
-        "q_reject": "Rejected",
-        "quarantine_notification": "Quarantine notifications",
+        "q_add_header": "when moved to Junk folder",
+        "q_all": " when moved to Junk folder and on reject",
+        "q_reject": "on reject",
         "quarantine_category": "Quarantine notification category",
+        "quarantine_notification": "Quarantine notifications",
         "quick_actions": "Actions",
+        "recipient": "Recipient",
         "recipient_map": "Recipient map",
         "recipient_map_info": "Recipient maps are used to replace the destination address on a message before it is delivered.",
         "recipient_map_new": "New recipient",
@@ -711,9 +799,10 @@
         "remove": "Remove",
         "resources": "Resources",
         "running": "Running",
+        "sender": "Sender",
         "set_postfilter": "Mark as postfilter",
         "set_prefilter": "Mark as prefilter",
-        "sieve_info": "You can store multiple filters per user, but only one prefilter and one postfilter can be active at the same time.<br>\r\nEach filter will be processed in the described order. Neither a failed script nor an issued \"keep;\" will stop processing of further scripts. Changes to global sieve scripts will trigger a restart of Dovecot.<br><br>Global sieve prefilter → Prefilter → User scripts → Postfilter → Global sieve postfilter",
+        "sieve_info": "You can store multiple filters per user, but only one prefilter and one postfilter can be active at the same time.<br>\r\nEach filter will be processed in the described order. Neither a failed script nor an issued \"keep;\" will stop processing of further scripts. Changes to global sieve scripts will trigger a restart of Dovecot.<br><br>Global sieve prefilter &#8226; Prefilter &#8226; User scripts &#8226; Postfilter &#8226; Global sieve postfilter",
         "sieve_preset_1": "Discard mail with probable dangerous file types",
         "sieve_preset_2": "Always mark the e-mail of a specific sender as seen",
         "sieve_preset_3": "Discard silently, stop all further sieve processing",
@@ -723,7 +812,6 @@
         "sieve_preset_7": "Redirect and keep/drop",
         "sieve_preset_8": "Discard message sent to an alias address the sender is part of",
         "sieve_preset_header": "Please see the example presets below. For more details see <a href=\"https://en.wikipedia.org/wiki/Sieve_(mail_filtering_language)\" target=\"_blank\">Wikipedia</a>.",
-        "sogo_allow_admin_hint": "Administrative SOGo logins are only available for mailboxes with an existing SOGo profile. A user must have been logged in to SOGo at least once.",
         "sogo_visible": "Alias is visible in SOGo",
         "sogo_visible_n": "Hide alias in SOGo",
         "sogo_visible_y": "Show alias in SOGo",
@@ -743,8 +831,8 @@
         "tls_map_parameters_info": "Empty or parameters, for example: protocols=!SSLv2 ciphers=medium exclude=3DES",
         "tls_map_policy": "Policy",
         "tls_policy_maps": "TLS policy maps",
-        "tls_policy_maps_info": "This policy map overrides outgoing TLS transport rules independently of a users TLS policy settings.<br>\r\n  Please check <a href=\"http://www.postfix.org/postconf.5.html#smtp_tls_policy_maps\" target=\"_blank\">the \"smtp_tls_policy_maps\" docs</a> for further information.",
         "tls_policy_maps_enforced_tls": "These policies will also override the behaviour for mailbox users that enforce outgoing TLS connections. If no policy exists below, these users will apply the default values specified as <code>smtp_tls_mandatory_protocols</code> and <code>smtp_tls_mandatory_ciphers</code>.",
+        "tls_policy_maps_info": "This policy map overrides outgoing TLS transport rules independently of a user's TLS policy settings.<br>\r\n  Please check <a href=\"http://www.postfix.org/postconf.5.html#smtp_tls_policy_maps\" target=\"_blank\">the \"smtp_tls_policy_maps\" docs</a> for further information.",
         "tls_policy_maps_long": "Outgoing TLS policy map overrides",
         "toggle_all": "Toggle all",
         "username": "Username",
@@ -786,6 +874,9 @@
         "qitem": "Quarantine item",
         "quarantine": "Quarantine",
         "quick_actions": "Actions",
+        "quick_delete_link": "Open quick delete link",
+        "quick_info_link": "Open info link",
+        "quick_release_link": "Open quick release link",
         "rcpt": "Recipient",
         "received": "Received",
         "recipients": "Recipients",
@@ -799,10 +890,7 @@
         "rspamd_result": "Rspamd result",
         "sender": "Sender (SMTP)",
         "sender_header": "Sender (\"From\" header)",
-        "type": "Type",
-        "quick_release_link": "Open quick release link",
-        "quick_delete_link": "Open quick delete link",
-        "quick_info_link": "Open info link",
+        "settings_info": "Maximum amount of elements to be quarantined: %s<br>Maximum email size: %s MiB",
         "show_item": "Show item",
         "spam": "Spam",
         "spam_score": "Score",
@@ -811,7 +899,15 @@
         "table_size_show_n": "Show %s items",
         "text_from_html_content": "Content (converted html)",
         "text_plain_content": "Content (text/plain)",
-        "toggle_all": "Toggle all"
+        "toggle_all": "Toggle all",
+        "type": "Type"
+    },
+    "ratelimit": {
+      "disabled": "Disabled",
+      "second": "msgs / second",
+      "minute": "msgs / minute",
+      "hour": "msgs / hour",
+      "day": "msgs / day"
     },
     "start": {
         "help": "Show/Hide help panel",
@@ -868,7 +964,9 @@
         "mailbox_added": "Mailbox %s has been added",
         "mailbox_modified": "Changes to mailbox %s have been saved",
         "mailbox_removed": "Mailbox %s has been removed",
+        "nginx_reloaded": "Nginx was reloaded",
         "object_modified": "Changes to object %s have been saved",
+        "password_policy_saved": "Password policy was saved successfully",
         "pushover_settings_edited": "Pushover settings successfully set, please verify credentials.",
         "qlearn_spam": "Message ID %s was learned as spam and deleted",
         "queue_command_success": "Queue command completed successfully",
@@ -890,10 +988,13 @@
         "tls_policy_map_entry_saved": "TLS policy map entry \"%s\" has been saved",
         "ui_texts": "Saved changes to UI texts",
         "upload_success": "File uploaded successfully",
+        "verified_fido2_login": "Verified FIDO2 login",
         "verified_totp_login": "Verified TOTP login",
         "verified_u2f_login": "Verified U2F login",
-        "verified_fido2_login": "Verified FIDO2 login",
-        "verified_yotp_login": "Verified Yubico OTP login"
+        "verified_yotp_login": "Verified Yubico OTP login",
+        "xmpp_maps_updated": "XMPP maps were updated",
+        "xmpp_reloaded": "XMPP service was reloaded",
+        "xmpp_restarted": "XMPP service was restarted"
     },
     "tfa": {
         "api_register": "%s uses the Yubico Cloud API. Please get an API key for your key <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">here</a>",
@@ -920,20 +1021,6 @@
         "waiting_usb_register": "<i>Waiting for USB device...</i><br><br>Please enter your password above and confirm your registration by tapping the button on your USB device.",
         "yubi_otp": "Yubico OTP authentication"
     },
-    "fido2": {
-        "set_fn": "Set friendly name",
-        "fn": "Friendly name",
-        "rename": "rename",
-        "confirm": "Confirm",
-        "register_status": "Registration status",
-        "known_ids": "Known IDs",
-        "none": "Disabled",
-        "set_fido2": "Register FIDO2 device",
-        "start_fido2_validation": "Start FIDO2 validation",
-        "fido2_auth": "Login with FIDO2",
-        "fido2_success": "Device successfully registered",
-        "fido2_validation_failed": "Validation failed"
-    },
     "user": {
         "action": "Action",
         "active": "Active",
@@ -956,9 +1043,11 @@
         "apple_connection_profile_complete": "This connection profile includes IMAP and SMTP parameters as well as CalDAV (calendars) and CardDAV (contacts) paths for an Apple device.",
         "apple_connection_profile_mailonly": "This connection profile includes IMAP and SMTP configuration parameters for an Apple device.",
         "change_password": "Change password",
+        "clear_recent_successful_connections": "Clear seen successful connections",
         "client_configuration": "Show configuration guides for email clients and smartphones",
         "create_app_passwd": "Create app password",
         "create_syncjob": "Create new sync job",
+        "created_on": "Created on",
         "daily": "Daily",
         "day": "day",
         "delete_ays": "Please confirm the deletion process.",
@@ -970,10 +1059,13 @@
         "edit": "Edit",
         "email": "Email",
         "email_and_dav": "Email, calendars and contacts",
+        "empty": "No results",
         "encryption": "Encryption",
         "excludes": "Excludes",
         "expire_in": "Expire in",
+        "fido2_webauthn": "FIDO2/WebAuthn",
         "force_pw_update": "You <b>must</b> set a new password to be able to access groupware related services.",
+        "from": "from",
         "generate": "generate",
         "hour": "hour",
         "hourly": "Hourly",
@@ -982,17 +1074,26 @@
         "interval": "Interval",
         "is_catch_all": "Catch-all for domain/s",
         "last_mail_login": "Last mail login",
+        "last_pw_change": "Last password change",
         "last_run": "Last run",
+        "last_ui_login": "Last UI login",
         "loading": "Loading...",
-        "mailbox_details": "Mailbox details",
+        "login_history": "Login history",
+        "mailbox": "Mailbox",
+        "mailbox_details": "Details",
+        "mailbox_general": "General",
+        "mailbox_settings": "Settings",
         "messages": "messages",
+        "month": "month",
+        "months": "months",
         "never": "Never",
         "new_password": "New password",
-        "new_password_description": "Requirement: 6 characters long, letters and numbers.",
         "new_password_repeat": "Confirmation password (repeat)",
         "no_active_filter": "No active filter available",
         "no_last_login": "No last UI login information",
         "no_record": "No record",
+        "open_logs": "Open logs",
+        "open_webmail_sso": "Login to webmail",
         "password": "Password",
         "password_now": "Current password (confirm changes)",
         "password_repeat": "Password (repeat)",
@@ -1008,10 +1109,11 @@
         "q_add_header": "Junk folder",
         "q_all": "All categories",
         "q_reject": "Rejected",
-        "quarantine_notification": "Quarantine notifications",
         "quarantine_category": "Quarantine notification category",
-        "quarantine_notification_info": "Once a notification has been sent, items will be marked as \"notified\" and no further notifications will be sent for this particular item.",
         "quarantine_category_info": "The notification category \"Rejected\" includes mail that was rejected, while \"Junk folder\" will notify a user about mails that were put into the junk folder.",
+        "quarantine_notification": "Quarantine notifications",
+        "quarantine_notification_info": "Once a notification has been sent, items will be marked as \"notified\" and no further notifications will be sent for this particular item.",
+        "recent_successful_connections": "Seen successful connections",
         "remove": "Remove",
         "running": "Running",
         "save": "Save changes",
@@ -1021,7 +1123,7 @@
         "shared_aliases_desc": "Shared aliases are not affected by user specific settings such as the spam filter or encryption policy. Corresponding spam filters can only be made by an administrator as a domain-wide policy.",
         "show_sieve_filters": "Show active user sieve filter",
         "sogo_profile_reset": "Reset SOGo profile",
-        "sogo_profile_reset_help": "This will destroy a users SOGo profile and <b>delete all contact and calendar data irretrievable</b>.",
+        "sogo_profile_reset_help": "This will destroy a user's SOGo profile and <b>delete all contact and calendar data irretrievable</b>.",
         "sogo_profile_reset_now": "Reset profile now",
         "spam_aliases": "Temporary email aliases",
         "spam_score_reset": "Reset to server default",
@@ -1062,7 +1164,9 @@
         "waiting": "Waiting",
         "week": "week",
         "weekly": "Weekly",
-        "weeks": "weeks"
+        "weeks": "weeks",
+        "year": "year",
+        "years": "years"
     },
     "warning": {
         "cannot_delete_self": "Cannot delete logged in user",
@@ -1071,6 +1175,7 @@
         "fuzzy_learn_error": "Fuzzy hash learn error: %s",
         "hash_not_found": "Hash not found or already deleted",
         "ip_invalid": "Skipped invalid IP: %s",
+        "is_not_primary_alias": "Skipped non-primary alias %s",
         "no_active_admin": "Cannot deactivate last active admin",
         "quota_exceeded_scope": "Domain quota exceeded: Only unlimited mailboxes can be created in this domain scope.",
         "session_token": "Form token invalid: Token mismatch",
diff --git a/mailcow/src/mailcow-dockerized/data/web/lang/lang.es.json b/mailcow/src/mailcow-dockerized/data/web/lang/lang.es.json
index 4e78b6f..eac99a5 100644
--- a/mailcow/src/mailcow-dockerized/data/web/lang/lang.es.json
+++ b/mailcow/src/mailcow-dockerized/data/web/lang/lang.es.json
@@ -344,12 +344,12 @@
         "logs": "Logs",
         "restart_container": "Reiniciar",
         "solr_dead": "Solr está empezando, deshabilitado o caído.",
-        "solr_docs": "Docs",
-        "solr_last_modified": "Última modificación",
-        "solr_size": "Tamaño",
-        "solr_started_at": "Iniciado el",
+        "docs": "Docs",
+        "last_modified": "Última modificación",
+        "size": "Tamaño",
+        "started_at": "Iniciado el",
         "solr_status": "Solr status",
-        "solr_uptime": "Uptime",
+        "uptime": "Uptime",
         "static_logs": "Logs estáticos",
         "system_containers": "Sistema y Contenedores"
     },
@@ -772,4 +772,4 @@
         "fuzzy_learn_error": "Error aprendiendo hash: %s",
         "ip_invalid": "IP inválida omitida: %s"
     }
-}
\ No newline at end of file
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/lang/lang.fi.json b/mailcow/src/mailcow-dockerized/data/web/lang/lang.fi.json
index f762401..3410ccc 100644
--- a/mailcow/src/mailcow-dockerized/data/web/lang/lang.fi.json
+++ b/mailcow/src/mailcow-dockerized/data/web/lang/lang.fi.json
@@ -389,12 +389,12 @@
         "logs": "Logit tausta palveluista",
         "restart_container": "Uudelleen käynnistä",
         "solr_dead": "Solr käynnistyy, on poissa käytöstä tai kuoli.",
-        "solr_docs": "Docs",
-        "solr_last_modified": "Viimeksi muokattu",
-        "solr_size": "Koko",
-        "solr_started_at": "Käynnistetty",
+        "docs": "Docs",
+        "last_modified": "Viimeksi muokattu",
+        "size": "Koko",
+        "started_at": "Käynnistetty",
         "solr_status": "Solr-tila",
-        "solr_uptime": "Päällä",
+        "uptime": "Päällä",
         "started_on": "Aloitettiin",
         "static_logs": "Staattiset lokit",
         "system_containers": "Systeemi & Säiliöt"
@@ -468,7 +468,7 @@
         "save": "Tallenna muutokset",
         "scope": "Laajuus",
         "sender_acl": "Salli lähettää nimellä",
-        "sender_acl_disabled": "↳ <span class=\"label label-danger\">Lähettäjän tarkistus on poistettu käytöstä</span>",
+        "sender_acl_disabled": "<span class=\"label label-danger\">Lähettäjän tarkistus on poistettu käytöstä</span>",
         "sender_acl_info": "Jos postilaatikon käyttäjän A sallitaan lähettävän postilaatikon käyttäjäksi B, lähettäjän osoitetta ei näytetä automaattisesti valittavana \"alkaen\" -kentässä SOGossa.<br>\r\nSähkö postilaatikon käyttäjän A on luotava valtuutus SOGoon, jotta sähkö postilaatikon käyttäjä b voi valita osoitteen lähettäjäksi. Tämä käyttäytyminen ei koske alias-osoitteita",
         "sieve_desc": "Lyhyt kuvaus",
         "sieve_type": "Suodattimen tyyppi",
@@ -889,4 +889,4 @@
         "session_token": "Lomakkeen tunnus sanoma ei kelpaa: tunnus sanoman risti riita",
         "session_ua": "Lomakkeen tunnus sanoma ei kelpaa: käyttäjä agentin tarkistus virhe"
     }
-}
\ No newline at end of file
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/lang/lang.fr.json b/mailcow/src/mailcow-dockerized/data/web/lang/lang.fr.json
index 94f8657..07cd326 100644
--- a/mailcow/src/mailcow-dockerized/data/web/lang/lang.fr.json
+++ b/mailcow/src/mailcow-dockerized/data/web/lang/lang.fr.json
@@ -9,10 +9,12 @@
 		"filters": "Filtres",
 		"login_as": "S'identifier en tant qu'utilisateur",
 		"prohibited": "Interdit par les ACL",
+		"protocol_access": "Modifier le protocol d'acces",
 		"pushover": "Pushover",
 		"quarantine": "Actions de quarantaine",
 		"quarantine_attachments": "Pièces jointes en quarantaine",
 		"quarantine_notification": "Modifier la notification de quarantaine",
+		"quarantine_category": "Modifier la catégorie de la notification de quarantaine",
 		"ratelimit": "Limite d'envoi",
 		"recipient_maps": "Cartes destinataire",
 		"smtp_ip_access": "Changer les hôtes autorisés pour SMTP",
@@ -23,7 +25,12 @@
 		"spam_score": "Score SPAM",
 		"syncjobs": "Tâches de synchronisation",
 		"tls_policy": "Police TLS",
-		"unlimited_quota": "Quota illimité pour les boites de courriel"
+		"unlimited_quota": "Quota illimité pour les boites de courriel",
+		"domain_desc": "Modifier la description du domaine",
+		"xmpp_admin": "Promouvoir l'utilisateur XMPP en administrateur",
+		"xmpp_domain_access": "Configurer l'accès au domaine XMPP",
+		"xmpp_mailbox_access": "Configurer l'accès à l'utilisateur XMPP",
+		"xmpp_prefix": "Changer le sous-domaine XMPP (préfixe)"
 	},
 	"add": {
 		"activate_filter_warn": "Tous les autres filtres seront désactivés, quand activé est coché.",
@@ -31,7 +38,7 @@
 		"add": "Ajouter",
 		"add_domain_only": "Ajouter uniquement le domaine",
 		"add_domain_restart": "Ajouter le domaine et redémarrer SOGo",
-		"alias_address": "Alias d'adresse/s",
+		"alias_address": "Alias d'adresse(s)",
 		"alias_address_info": "<small>Adresse(s) courriel complète(s) ou @example.com, pour capturer tous les messages d'un domaine (séparées par des virgules). <b>Seulement des domaines Mailcow</b>.</small>",
 		"alias_domain": "Alias de domaine",
 		"alias_domain_info": "<small>Seulement des noms de domaines valides (séparés par des virgules).</small>",
@@ -56,6 +63,12 @@
 		"full_name": "Nom complet",
 		"gal": "Carnet d'Adresses Global (GAL)",
 		"gal_info": "La liste d'adresse globale (GAL) contient tous les objets d'un domaine et ne peut être modifié par aucun utilisateur. Si elles sont désactivées,les informations libres/occupées dans SOGo sont cachées, ! <b>Redémarrez SOGo pour appliquer les changements.</b>",
+		"xmpp": "Activer XMPP pour ce domaine",
+		"xmpp_info": "Cette fonction activera la fonctionnalité de chat pour ce domaine.",
+		"xmpp_access": "Accès XMPP",
+		"xmpp_access_info": "XMPP doit être activé pour ce domaine.",
+		"xmpp_admin": "Administrateur XMPP",
+		"xmpp_admin_info": "<b>Attention</b>: promeut un utilisateur au rang d'administrateur XMPP pour ce domaine.",
 		"generate": "Générer",
 		"goto_ham": "Apprendre en tant que <span class=\"text-success\"><b>Courrier légitime (ham)</b></span>",
 		"goto_null": "Ignorer silencieusement le courriel",
@@ -136,6 +149,7 @@
 		"ban_list_info": "Consultez la liste des adresses IP interdites ci-dessous: <b>réseau (durée d'interdiction restante) - [actions]</b>.<br />Les adresses IP mises en file d'attente pour être interdites seront supprimées de la liste d'interdiction active dans quelques secondes.<br />Les étiquettes rouges indiquent des interdictions permanentes actives par liste noire.",
 		"change_logo": "Changer de logo",
 		"configuration": "Configuration",
+		"convert_html_to_text": "Convertir le code HTML en texte brut",
 		"credentials_transport_warning": "<b>Attention</b>: L’ajout d’une nouvelle entrée de carte de transport mettra à jour les informations d’identification pour toutes les entrées avec une colonne nexthop correspondante.",
 		"customer_id": "ID client",
 		"customize": "Personnaliser",
@@ -156,20 +170,23 @@
 		"dkim_to": "Vers",
 		"dkim_to_title": "Les domaines ciblés seront réécrits",
 		"domain": "Domaine",
+		"domain_admin": "Administrateur de domaine",
 		"domain_admins": "Administrateurs de domaine",
-		"domain_s": "Domaine/s",
+		"domain_s": "Domaine(s)",
 		"duplicate": "Dupliquer",
 		"duplicate_dkim": "Dupliquer l'enregistrement DKIM",
 		"edit": "Editer",
 		"empty": "Aucun résultat",
 		"excludes": "Exclure ces destinataires",
-		"f2b_ban_time": "Durée du bannissement (s)",
+		"f2b_ban_time": "Durée du bannissement(s)",
 		"f2b_blacklist": "Réseaux/Domaines sur Liste Noire",
+		"f2b_filter": "Filtre(s) Regex",
 		"f2b_list_info": "Un hôte ou un réseau sur liste noire l'emportera toujours sur une entité de liste blanche. <b>L'application des mises à jour de liste prendra quelques secondes.</b>",
 		"f2b_max_attempts": "Nb max. de tentatives",
 		"f2b_netban_ipv4": "Taille du sous-réseau IPv4 pour l'application du bannissement (8-32)",
 		"f2b_netban_ipv6": "Taille du sous-réseau IPv6 pour l'application du bannissement (8-128)",
 		"f2b_parameters": "Paramètres Fail2ban",
+		"f2b_regex_info": "Logs pris en compte: SOGo, Postfix, Dovecot, PHP-FPM.",
 		"f2b_retry_window": "Fenêtre de nouvel essai pour le nb max. de tentatives",
 		"f2b_whitelist": "Réseaux/hôtes en liste blanche",
 		"filter_table": "Table de filtrage",
@@ -184,6 +201,7 @@
 		"hash_remove_info": "La suppression d'un hachage ratelimit (s'il existe toujours) réinitialisera complètement son compteur.<br>\r\n  Chaque hachage est indiqué par une couleur individuelle.",
 		"help_text": "Remplacer le texte d'aide sous le masque de connexion (HTML autorisé)",
 		"host": "Hôte",
+		"html": "HTML",
 		"import": "Importer",
 		"import_private_key": "Importer la clè privée",
 		"in_use_by": "Utilisé par",
@@ -212,6 +230,7 @@
 		"oauth2_redirect_uri": "URI de redirection",
 		"oauth2_renew_secret": "Générer un nouveau secret client",
 		"oauth2_revoke_tokens": "Révoquer tous les jetons",
+		"optional": "Optionnel",
 		"password": "Mot de passe",
 		"password_repeat": "Confirmation du mot de passe (répéter)",
 		"priority": "Priorité",
@@ -221,6 +240,7 @@
 		"quarantine_exclude_domains": "Exclure les domaines et les alias de domaine",
 		"quarantine_max_age": "Âge maximun en jour(s)<br><small>La valeur doit être égale ou supérieure à 1 jour.</small>",
 		"quarantine_max_size": "Taille maximum en Mo (les éléments plus grands sont mis au rebut):<br><small>0 ne signifie <b>pas</b> illimité.</small>",
+		"quarantine_max_score": "Ignorer la notification si le score de spam est au dessus de cette valeur:<br><small>Par défaut: 9999.0</small>",
 		"quarantine_notification_html": "Modèle de courriel de notification:<br><small>Laisser vide pour restaurer le modèle par défaut.</small>",
 		"quarantine_notification_sender": "Notification par e-mail de l’expéditeur",
 		"quarantine_notification_subject": "Objet du courriel de notification",
@@ -343,6 +363,7 @@
 		"global_filter_write_error": "Impossible d’écrire le fichier de filtre: %s",
 		"global_map_invalid": "ID de carte globale %s non valide",
 		"global_map_write_error": "Impossible d’écrire l’ID de la carte globale %s: %s",
+		"xmpp_map_write_error": "Impossible d'écrire la carte XMPP: %s",
 		"goto_empty": "Une adresse alias doit contenir au moins une adresse 'goto'valide",
 		"goto_invalid": "Adresse Goto %s non valide",
 		"ham_learn_error": "Erreur d'apprentissage Ham: %s",
@@ -377,6 +398,7 @@
 		"max_quota_in_use": "Le quota de la boîte doit être supérieur ou égal à %d Mo",
 		"maxquota_empty": "Le quota maximum par boîte ne doit pas être de 0.",
 		"mysql_error": "Erreur MySQL: %s",
+		"nginx_reload_failed": "Le rechargement de Nginx a échoué: %s",
 		"network_host_invalid": "Réseau ou host non valide: %s",
 		"next_hop_interferes": "%s interfère avec le nexthop %s",
 		"next_hop_interferes_any": "Un saut suivant existant interfère avec %s",
@@ -397,6 +419,7 @@
 		"redis_error": "Erreur Redis: %s",
 		"relayhost_invalid": "La saisie de la carte %s est invalide",
 		"release_send_failed": "Le message n’a pas pu être diffusé: %s",
+		"reset_f2b_regex": "Le filtre regex n'a pas pu être réinitialisé à temps, veuillez réessayer ou attendre quelques secondes de plus et recharger le site web.",
 		"resource_invalid": "Le nom de la resource %s n'est pas valide",
 		"rl_timeframe": "Le délai limite du taux est incorrect",
 		"rspamd_ui_pw_length": "Le mot de passe de l'interface Rspamd doit être de 6 caratères au minimum",
@@ -412,19 +435,23 @@
 		"targetd_relay_domain": "Le domaine cible %s est un domaine de relais",
 		"temp_error": "Erreur temporaire",
 		"text_empty": "La zone texte ne peut pas être vide",
+		"tfa_token_invalid": "Le token TFA est invalide",
 		"tls_policy_map_dest_invalid": "La politique de destination n'est pas valide",
 		"tls_policy_map_entry_exists": "Une entrée de carte de politique \"%s\" existe",
 		"tls_policy_map_parameter_invalid": "Le paramètre Policy est invalide",
 		"totp_verification_failed": "Echec de la vérification TOTP",
 		"transport_dest_exists": "La destination de transport \"%s\" existe",
 		"u2f_verification_failed": "Echec de la vérification U2F: %s",
+		"fido2_verification_failed": "La vérification FIDO2 a échoué: %s",
 		"unknown": "Une erreur inconnue est survenue",
 		"unknown_tfa_method": "Methode TFA inconnue",
 		"unlimited_quota_acl": "Quota illimité interdit par les ACL",
 		"username_invalid": "Le nom d'utilisateur %s ne peut pas être utilisé",
 		"validity_missing": "Veuillez attribuer une période de validité",
 		"value_missing": "Veuillez fournir toutes les valeurs",
-		"yotp_verification_failed": "La vérification Yubico OTP en échec: %s"
+		"yotp_verification_failed": "La vérification Yubico OTP a échoué: %s",
+		"xmpp_restart_failed": "XMPP n'a pas pu être redémarré",
+		"xmpp_reload_failed": "XMPP n'a pas pu être rechargé"
 	},
 	"debug": {
 		"chart_this_server": "Graphique (ce serveur)",
@@ -438,20 +465,24 @@
 		"logs": "Logs",
 		"restart_container": "Redémarrer",
 		"solr_dead": "Solr est en cours de démarrage, désactivé ou mort.",
-		"solr_docs": "Docs",
-		"solr_last_modified": "Dernière modification",
-		"solr_size": "Taille",
-		"solr_started_at": "Démarré à",
+		"xmpp_dead": "XMPP est en cours de démarrage, désactivé ou mort.",
+		"docs": "Docs",
+		"last_modified": "Dernière modification",
+		"online_users": "Utilisateurs en ligne",
+		"size": "Taille",
+		"started_at": "Démarré à",
 		"solr_status": "Etat Solr",
-		"solr_uptime": "Disponibilité",
+		"uptime": "Disponibilité",
 		"started_on": "Démarré à",
 		"static_logs": "Logs statiques",
-		"system_containers": "Système & Conteneurs"
+		"system_containers": "Système & Conteneurs",
+		"xmpp_status": "Status de XMPP"
 	},
 	"diagnostics": {
 		"cname_from_a": "Valeur dérivée de l’enregistrement A/AAAA. Ceci est supporté tant que l’enregistrement indique la bonne ressource.",
 		"dns_records": "Enregistrements DNS",
 		"dns_records_24hours": "Veuillez noter que les modifications apportées au DNS peuvent prendre jusqu’à 24 heures pour que leurs états actuels soient correctement reflétés sur cette page. Il est conçu comme un moyen pour vous de voir facilement comment configurer vos enregistrements DNS et de vérifier si tous vos enregistrements sont correctement stockés dans les DNS.",
+		"dns_records_docs": "Veuillez également consulter <a target=\"_blank\" href=\"https://mailcow.github.io/mailcow-dockerized-docs/prerequisite-dns/\">la documentation</a>.",
 		"dns_records_data": "Données correcte",
 		"dns_records_name": "Nom",
 		"dns_records_status": "Etat courant",
@@ -464,6 +495,7 @@
 		"alias": "Editer les alias",
 		"allow_from_smtp": "Restreindre l'utilisation de <b>SMTP</b> à ces adresses IP",
 		"allow_from_smtp_info": "Laissez vide pour autoriser tous les expéditeurs.<br>Adresses IPv4/IPv6 et réseaux.",
+		"allowed_protocols": "Protocoles autorisés",
 		"app_name": "Nom de l'application",
 		"app_passwd": "Mot de passe de l'application",
 		"automap": "Essayer d’automatiser les dossiers (\"Sent items\", \"Sent\" => \"Sent\" etc.)",
@@ -493,6 +525,15 @@
 		"full_name": "Nom complet",
 		"gal": "Liste d'adresses globale (GAL)",
 		"gal_info": "La liste d'adresses globale (GAL) contient tous les objets d’un domaine et ne peut pas être édité par un utilisateur. Les informations libres/occupées dans SOGo sont manquantes si elles sont désactivées! <b>Redémarrer SOGo pour appliquer les modifications.</b>",
+		"xmpp": "Activer XMPP pour ce domaine",
+		"xmpp_prefix": "Préfixe XMPP pour le domaine (\"im\" pour utiliser <b>im</b>.exemple.org)",
+		"xmpp_prefix_info": "Pour demander des certificats XMPP, deux enregistrements DNS CNAME doivent pointer de <b> im </b> .exemple.org ainsi que de <b> * .im </b> .exemple.org vers <b>% s </ b>. Veuillez également exécuter la vérification DNS pour ce domaine après avoir activé XMPP.",
+		"xmpp_info": "Cette fonction activera la fonctionnalité de chat pour ce domaine.",
+		"xmpp_access": "Accès XMPP",
+		"xmpp_access_info": "XMPP doit être activé pour ce domaine.",
+		"xmpp_admin": "Administrateur XMPP",
+		"xmpp_admin_info": "<b>Attention:</b> Promeut un utilisateur au rang d'administrateur XMPP de ce domaine.",
+		"xmpp_example_jid": "<b>Exemple JID</b> (se connecter avec le mot de passe de la boîte aux lettres)",		
 		"generate": "générer",
 		"grant_types": "Types 'autorisation",
 		"hostname": "Nom d'hôte",
@@ -524,6 +565,7 @@
 		"pushover_vars": "Lorsque aucun filtre d’expéditeur n’est défini, tous les messages seront considérés.<br>Les filtres Regex ainsi que les vérifications exactes de l’expéditeur peuvent être définis individuellement et seront considérés de façon séquentielle. Ils ne dépendent pas les uns des autres.<br>Variables utilisables pour le texte et le titre (veuillez prendre note des politiques de protection des données)",
 		"pushover_verify": "Vérifier les justificatifs",
 		"quota_mb": "Quota (Mo)",
+		"ratelimit": "Limite de taux",
 		"redirect_uri": "Redirection/rappel URL",
 		"relay_all": "Relayer tous les destinataires",
 		"relay_all_info": "↪ Si vous <b>ne choissisez pas</b> de relayer tous les destinataires, vous devrez ajouter une boîte (\"aveugle\") pour chaque destinataire qui devrait être relayé.",
@@ -536,7 +578,7 @@
 		"save": "Enregistrer les modifications",
 		"scope": "Portée",
 		"sender_acl": "Permettre d’envoyer comme",
-		"sender_acl_disabled": "↳ <span class=\"label label-danger\">Le contrôle de l’expéditeur est désactivé</span>",
+		"sender_acl_disabled": "<span class=\"label label-danger\">Le contrôle de l’expéditeur est désactivé</span>",
 		"sender_acl_info": "Si l’utilisateur de la boîte A est autorisé à envoyer en tant qu’utilisateur de la boîte B, l’adresse de l’expéditeur n’est pas automatiquement affichée comme sélectionnable du champ \"from\" dans SOGo.<br>\r\n  L’utilisateur B de la boîte doit créer une délégation dans Sogo pour permettre à l’utilisateur A de la boîte de sélectionner son adresse comme expéditeur. Pour déléguer une boîte dans Sogo, utilisez le menu (trois points) à droite du nom de votre boîte dans le coin supérieur gauche dans la vue de courrier. Ce comportement ne s’applique pas aux adresses alias.",
 		"sieve_desc": "Description courte",
 		"sieve_type": "Type de filtre",
@@ -546,11 +588,12 @@
 		"sogo_visible": "Alias visible dans SOGo",
 		"sogo_visible_info": "Cette option affecte uniquement les objets qui peuvent être affichés dans SOGo (adresses alias partagées ou non partagées pointant vers au moins une boîte mail locale). Si caché, un alias n’apparaîtra pas comme expéditeur sélectionnable dans SOGo.",
 		"spam_alias": "Créer ou modifier des adresses alias limitées dans le temps",
+		"spam_filter": "Filtre spam",
 		"spam_policy": "Ajouter ou supprimer des éléments à la liste blanche/noire",
 		"spam_score": "Définir un score spam personnalisé",
 		"subfolder2": "Synchronisation dans le sous-dossier sur la destination<br><small>(vide = ne pas utiliser de sous-dossier)</small>",
 		"syncjob": "Modifier la tâche de synchronisation",
-		"target_address": "Adresse/s Goto<small>(séparé/s par des virgules)</small>",
+		"target_address": "Adresse(s) Goto<small>(séparé(s) par des virgules)</small>",
 		"target_domain": "Domaine cible",
 		"timeout1": "Délai de connexion à l’hôte distant",
 		"timeout2": "Délai de connexion à l’hôte local",
@@ -590,8 +633,10 @@
 	},
 	"login": {
 		"delayed": "La connexion a été retardée de %s secondes.",
+		"fido2_webauthn": "FIDO2/WebAuthn",
 		"login": "Connexion",
 		"mobileconfig_info": "Veuillez vous connecter en tant qu’utilisateur de la boîte pour télécharger le profil de connexion Apple demandé.",
+		"other_logins": "Clé d'authentification",
 		"password": "Mot de passe",
 		"username": "Nom d'utilisateur"
 	},
@@ -617,6 +662,7 @@
 		"aliases": "Aliases",
 		"allow_from_smtp": "Restreindre l'utilisation de <b>SMTP</b> à ces adresses IP",
 		"allow_from_smtp_info": "Laissez vide pour autoriser tous les expéditeurs.<br>Adresses IPv4/IPv6 et réseaux.",
+		"allowed_protocols": "Protocoles autorisés",
 		"backup_mx": "Sauvegarde MX",
 		"bcc": "BCC",
 		"bcc_destination": "Destination BCC",
@@ -666,6 +712,8 @@
 		"mailbox_defquota": "Taille de boîte par défaut",
 		"mailbox_quota": "Taille max. d’une boîte",
 		"mailboxes": "Boîtes mail",
+		"mailbox_defaults": "Paramètres par défaut",
+		"mailbox_defaults_info": "Définir les paramètres par défaut pour les nouvelles boîtes aux lettres.",
 		"mins_interval": "Intervalle (min)",
 		"msg_num": "Message #",
 		"multiple_bookings": "Réservations multiples",
@@ -676,7 +724,11 @@
 		"owner": "Propriétaire",
 		"private_comment": "Commentaire privé",
 		"public_comment": "Commentaire public",
+		"q_add_header": "Courriers indésirables",
+		"q_all": "Toutes les catégories",
+		"q_reject": "Rejecté",
 		"quarantine_notification": "Avis de quarantaine",
+		"quarantine_category": "Catégorie de la notification de quarantaine",
 		"quick_actions": "Actions",
 		"recipient_map": "Carte du destinataire",
 		"recipient_map_info": "Les cartes des destinataires sont utilisées pour remplacer l’adresse de destination d’un message avant sa livraison.",
@@ -700,7 +752,6 @@
 		"sieve_preset_7": "Rediriger et garder/déposer",
 		"sieve_preset_8": "Supprimer le message envoyé à une adresse alias dont fait partie l’expéditeur",
 		"sieve_preset_header": "Voir les exemples de préréglages ci-dessous. Pour plus de détails voir <a href=\"https://en.wikipedia.org/wiki/Sieve_(mail_filtering_language)\" target=\"_blank\">Wikipedia</a>.",
-		"sogo_allow_admin_hint": "Les connexions administratives Sogo ne sont disponibles que pour les boîtes mail avec un profil SOGo existant. Un utilisateur doit avoir été connecté à Sogo au moins une fois.",
 		"sogo_visible": "Alias visible dans SOGo",
 		"sogo_visible_n": "Masquer alias dans SOGo",
 		"sogo_visible_y": "Afficher alias dans SOGo",
@@ -711,7 +762,7 @@
 		"table_size": "Taille de la table",
 		"table_size_show_n": "Montrer %s articles",
 		"target_address": "Goto adresse",
-		"target_domain": "Domain cible",
+		"target_domain": "Domaine cible",
 		"tls_enforce_in": "Appliquer le TLS entrant",
 		"tls_enforce_out": "Appliquer le TLS sortant",
 		"tls_map_dest": "Destination",
@@ -742,12 +793,17 @@
 		"action": "Action",
 		"atts": "Pièces jointes",
 		"check_hash": "Hachage du fichier de recherche @ VT",
+		"confirm": "Confirmer",
 		"confirm_delete": "Confirmer la suppression de cet élément.",
 		"danger": "Danger",
+		"deliver_inbox": "Envoyer dans la boîte de reception",
 		"disabled_by_config": "La configuration actuelle du système désactive la fonctionnalité de quarantaine. Veuillez définir \"retentions par boîte\" et une \"taille maximum\" pour les éléments en quarantaine.",
+		"settings_info": "Quantité maximum d'éléments à mettre en quarantaine: %s<br>Taille maximale des e-mails: %s MiB",
 		"download_eml": "Télécharger (.eml)",
 		"empty": "Pas de résultat",
 		"high_danger": "Haut",
+		"info": "Information",
+		"junk_folder": "Courriers indésirables",
 		"learn_spam_delete": "Apprendre comme spam et supprimer",
 		"low_danger": "Danger faible",
 		"medium_danger": "Danger moyen",
@@ -755,6 +811,7 @@
 		"notified": "Notifié",
 		"qhandler_success": "Demande envoyée avec succès au système. Vous pouvez maintenant fermer la fenêtre.",
 		"qid": "Rspamd QID",
+		"qinfo": "Le système de quarantaine enregistrera le courrier rejeté dans la base de données (l'expéditeur n'aura <em> pas </em> l'impression d'un courrier remis) ainsi que le courrier, qui est remis sous forme de copie dans le dossier indésirable d'une boîte aux lettres.\r\n  <br>\"Apprendre comme spam et supprimer\" apprendra un message comme spam via le théorème Bayesianet calculera également des hachages flous pour refuser des messages similaires à l'avenir.\r\n  <br>Veuillez noter que l'apprentissage de plusieurs messages peut prendre du temps, selon votre système. <br> Les éléments figurant sur la liste noire sont exclus de la quarantaine.",
 		"qitem": "Élément de quarantaine",
 		"quarantine": "Quarantaine",
 		"quick_actions": "Actions",
@@ -762,16 +819,21 @@
 		"received": "Reçu",
 		"recipients": "Destinataires",
 		"refresh": "Rafraîchir",
+		"rejected": "Rejeté",
 		"release": "Libérer",
 		"release_body": "Nous avons joint votre message comme fichier eml à ce message.",
 		"release_subject": "Article de quarantaine potentiellement dommageable %s",
 		"remove": "Enlever",
+		"rewrite_subject": "Réécrire le sujet",
 		"rspamd_result": "Résultat Rspamd",
 		"sender": "Expéditeur (SMTP)",
 		"sender_header": "Expéditeur (\"From\" header)",
+		"type": "Type",
 		"quick_release_link": "Ouvrir le lien de dégagement rapide",
 		"quick_delete_link": "Ouvrir le lien de suppression rapide",
+		"quick_info_link": "Ouvrir le lien d'informations",
 		"show_item": "Montrer l'article",
+		"spam": "Spam",
 		"spam_score": "Score",
 		"subj": "Sujet",
 		"table_size": "Dimension de la table",
@@ -835,6 +897,7 @@
 		"mailbox_added": "La boîte mail %s a été ajoutée",
 		"mailbox_modified": "Les modifications de la boîte %s ont été sauvées",
 		"mailbox_removed": "La boîte %s a été supprimée",
+		"nginx_reloaded": "Nginx a été rechargé",
 		"object_modified": "Les changements de %s ont été sauvés",
 		"pushover_settings_edited": "Paramètres Pushover réglés avec succès, veuillez vérifier les informations d’identification.",
 		"qlearn_spam": "Le message ID %s a été appris comme spam et supprimé",
@@ -859,7 +922,11 @@
 		"upload_success": "Fichier téléchargé avec succès",
 		"verified_totp_login": "Authentification TOTP vérifiée",
 		"verified_u2f_login": "Authentification U2F vérifiée",
-		"verified_yotp_login": "Authentification Yubico OTP vérifiée"
+		"verified_fido2_login": "Authentification FIDO2 vérifiée",
+		"verified_yotp_login": "Authentification Yubico OTP vérifiée",
+		"xmpp_restarted": "Le service XMPP a été redémarré",
+		"xmpp_reloaded": "Le service XMPP a été rechargé",
+		"xmpp_maps_updated": "Les cartes XMPP ont été mises à jour"
 	},
 	"tfa": {
 		"api_register": "%s utilise l'API Yubico Cloud. Veuillez obtenir une clé API pour votre clé <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">here</a>",
@@ -879,15 +946,30 @@
 		"set_tfa": "Définir une méthode d’authentification à deux facteurs",
 		"start_u2f_validation": "Début de la validation",
 		"tfa": "Authentification à deux facteurs",
+		"tfa_token_invalid": "Token TFA invalide",
 		"totp": "OTP (One Time Password = Mot de passe à usage unique : Google Authenticator, Authy, etc.)",
 		"u2f": "Authentification U2F",
 		"waiting_usb_auth": "<i>En attente d’un périphérique USB...</i><br><br>S’il vous plaît appuyez maintenant sur le bouton de votre périphérique USB U2F.",
 		"waiting_usb_register": "<i>En attente d’un périphérique USB...</i><br><br>Veuillez entrer votre mot de passe ci-dessus et confirmer votre inscription U2F en appuyant sur le bouton de votre périphérique USB U2F.",
 		"yubi_otp": "Authentification OTP Yubico"
 	},
+	"fido2": {
+		"set_fn": "Définir un nom",
+		"fn": "Nom",
+		"rename": "renommer",
+		"confirm": "Confirmer",
+		"register_status": "Etat de l'enregistrement",
+		"known_ids": "Identifiant(s) connu(s)",
+		"none": "Désactivé",
+		"set_fido2": "Enregistrer un nouvel appareil FIDO2",
+		"start_fido2_validation": "Tester la validation FIDO2",
+		"fido2_auth": "Se connecter avec FIDO2",
+		"fido2_success": "L'appareil est enregistré avec succès",
+		"fido2_validation_failed": "La validation a échoué"
+	},
 	"user": {
 		"action": "Action",
-		"active": "Active",
+		"active": "Actif",
 		"active_sieve": "Filtre actif",
 		"advanced_settings": "Paramètres avancés",
 		"alias": "Alias",
@@ -904,8 +986,8 @@
 		"app_name": "Nom d'application",
 		"app_passwds": "Mots de passe de l'application",
 		"apple_connection_profile": "Profil de connexion Apple",
-		"apple_connection_profile_complete": "Ce profil de connexion inclut les paramètres IMAP et SMTP ainsi que les chemins Caldav (calendriers) et Carddav (contacts) pour un appareil Apple." ,
-		"apple_connection_profile_mailonly" : "Ce profil de connexion inclut les paramètres de configuration IMAP et SMTP pour un périphérique Apple.",
+		"apple_connection_profile_complete": "Ce profil de connexion inclut les paramètres IMAP et SMTP ainsi que les chemins Caldav (calendriers) et Carddav (contacts) pour un appareil Apple.",
+		"apple_connection_profile_mailonly": "Ce profil de connexion inclut les paramètres de configuration IMAP et SMTP pour un périphérique Apple.",
 		"change_password": "Changer le mot de passe",
 		"client_configuration": "Afficher les guides de configuration pour les clients de messagerie et les smartphones",
 		"create_app_passwd": "Créer un mot de passe application",
@@ -931,7 +1013,7 @@
 		"hours": "heures",
 		"in_use": "Utilisé",
 		"interval": "Intervalle",
-		"is_catch_all": "Attrape-tout pour le domaine/s",
+		"is_catch_all": "Attrape-tout pour le domaine(s)",
 		"last_mail_login": "Dernière connexion mail",
 		"last_run": "Dernière exécution",
 		"loading": "Chargement...",
@@ -956,8 +1038,13 @@
 		"pushover_title": "Titre de la notification",
 		"pushover_vars": "Lorsqu’aucun filtre d’expéditeur n’est défini, tous les messages seront considérés.<br>Les filtres Regex ainsi que les vérifications exactes de l’expéditeur peuvent être définis individuellement et seront considérés de façon séquentielle. Ils ne dépendent pas les uns des autres.<br>Variables utilisables pour le texte et le titre (veuillez prendre note des politiques de protection des données)",
 		"pushover_verify": "Vérifier les justificatifs",
+		"q_add_header": "Courrier indésirable",
+		"q_all": "Toutes les catégories",
+		"q_reject": "Rejeté",
 		"quarantine_notification": "Avis de quarantaine",
+		"quarantine_category": "Catégorie de la notification de quarantaine",
 		"quarantine_notification_info": "Une fois qu’un avis a été envoyé, les articles seront marqués comme \"notified\" et aucune autre notification ne sera envoyée pour ce point particulier.",
+		"quarantine_category_info": "La catégorie de notification \"Rejeté\" inclut le courrier qui a été rejeté, tandis que \"Dossier indésirable\" informera un utilisateur des e-mails qui ont été placés dans le dossier indésirable.",
 		"remove": "Enlever",
 		"running": "En fonction",
 		"save": "Sauvegarder les changements",
diff --git a/mailcow/src/mailcow-dockerized/data/web/lang/lang.it.json b/mailcow/src/mailcow-dockerized/data/web/lang/lang.it.json
index b3ad092..c02057f 100644
--- a/mailcow/src/mailcow-dockerized/data/web/lang/lang.it.json
+++ b/mailcow/src/mailcow-dockerized/data/web/lang/lang.it.json
@@ -1,203 +1,682 @@
 {
     "acl": {
-        "syncjobs": "Processi di sync"
+        "alias_domains": "Aggiungi alias di dominio",
+        "app_passwds": "Gestisci le password delle app",
+        "bcc_maps": "BCC maps",
+        "delimiter_action": "Delimiter action",
+        "domain_desc": "Modifica la descrizione del dominio",
+        "domain_relayhost": "Modifica relayhost per un dominio",
+        "eas_reset": "Ripristina i dispositivi EAS",
+        "extend_sender_acl": "Allow to extend sender ACL by external addresses",
+        "filters": "Filtri",
+        "login_as": "Accedi come utente della casella di posta",
+        "mailbox_relayhost": "Modifica relayhost per una casella di posta",
+        "prohibited": "Vietato dall'ACL",
+        "protocol_access": "Modifica l'accesso al protocollo",
+        "pushover": "Pushover",
+        "quarantine": "Azioni di quarantena",
+        "quarantine_attachments": "Allegati in quarantena",
+        "quarantine_category": "Modifica la categoria delle notifiche di quarantena",
+        "quarantine_notification": "Modifica notifiche quarantena",
+        "ratelimit": "Rate limit",
+        "recipient_maps": "Recipient maps",
+        "smtp_ip_access": "Modifica gli host consentiti per SMTP",
+        "sogo_access": "Consenti la gestione dell'accesso SOGo",
+        "sogo_profile_reset": "Ripristina profilo SOGo",
+        "spam_alias": "Alias temporanei",
+        "spam_policy": "Blacklist/Whitelist",
+        "spam_score": "Punteggio SPAM",
+        "syncjobs": "Processi di sync",
+        "tls_policy": "TLS policy",
+        "unlimited_quota": "Spazio illimitato per le caselle di posta",
+        "xmpp_admin": "Promuovi l'utente XMPP ad amministratore",
+        "xmpp_domain_access": "Configura l'accesso al dominio XMPP",
+        "xmpp_mailbox_access": "Configura l'accesso utente XMPP",
+        "xmpp_prefix": "Cambia sottodominio XMPP (prefisso)"
     },
     "add": {
+        "activate_filter_warn": "Tutti gli altri filtri saranno disattivati, quando è attivo.",
         "active": "Attiva",
         "add": "Aggiungi",
-        "alias_address": "Indirizzo alias/es:",
-        "alias_address_info": "<small>Indirizzo e-mail completo/es @example.com, per catturare tutti i messaggi di un dominio (separati da virgola). <b>solo domini mailcow</b>.</small>",
+        "add_domain_only": "Aggiungi solamente il dominio",
+        "add_domain_restart": "Aggiungi il dominio e riavvia SOGo",
+        "alias_address": "Indirizzo alias",
+        "alias_address_info": "<small>Indirizzo e-mail completo/i @example.com, per catturare tutti i messaggi di un dominio (separati da virgola). <b>Solo domini mailcow</b>.</small>",
         "alias_domain": "Dominio alias",
-        "alias_domain_info": "<small>Solo nomi di dominio validi (cseparati da virgola).</small>",
-        "backup_mx_options": "Backup MX options:",
-        "delete1": "Elimina dalla sorgente al termine",
+        "alias_domain_info": "<small>Solo nomi di dominio validi (separati da virgola).</small>",
+        "app_name": "Nome app",
+        "app_password": "Aggiungi la password dell'app",
+        "automap": "Prova a mappare automaticamente le cartelle (\"Sent items\", \"Sent\" => \"Posta inviata\" ecc.)",
+        "backup_mx_options": "Relay options",
+        "comment_info": "Un commento privato non è visibile all'utente, mentre un commento pubblico viene mostrato come suggerimento quando si passa con il mouse nella panoramica di un utente",
+        "custom_params": "Parametri personalizzati",
+        "custom_params_hint": "Corretto: --param=xy, errato: --param xy",
+		"delete1": "Elimina dalla sorgente al termine",
+		"delete2": "Elimina i messaggi nella casella di destinazione che non sono presenti nell'origine",
         "delete2duplicates": "Elimina duplicati nella destinazione",
-        "description": "Descrizione:",
+        "description": "Descrizione",
+        "destination": "Destinazione",
+        "disable_login": "Disabilita l'accesso (la posta in arrivo viene correttamente recapitata)",
         "domain": "Dominio",
-        "domain_quota_m": "Spazio totale dominio (MiB):",
-        "enc_method": "Metodo di criptazione",
+        "domain_matches_hostname": "Il dominio %s corrisponde al'hostname",		
+        "domain_quota_m": "Spazio totale dominio (MiB)",
+        "enc_method": "Metodo di crittografia",
         "exclude": "Escludi oggetti (regex)",
-        "full_name": "Nome completo:",
+        "full_name": "Nome completo",
+        "gal": "Global Address List",
+        "gal_info": "La GAL contiene tutti gli indirizzi del dominio e non può essere modificata da nessun utente. Le infomazioni sulla disponibilità di ogni utente non sono presenti in SOGo, se sono state disabilitate! <b>Riavvia SOGo per applicare le modifiche.</b>",
+        "generate": "crea",
+        "goto_ham": "Etichetta come <span class=\"text-success\"><b>ham</b></span>",
+        "goto_null": "Elimina silenziosamente il messaggio",
+        "goto_spam": "Etichetta come <span class=\"text-danger\"><b>spam</b></span>",   
         "hostname": "Hostname",
+        "inactive": "Inattivo",
         "kind": "Genere",
-        "mailbox_quota_m": "Spazio massimo per casella di posta (MiB):",
-        "mailbox_username": "Username (parte a sinistra della @):",
-        "max_aliases": "Numero massimo alias:",
-        "max_mailboxes": "Numero massimo caselle di posta:",
-        "mins_interval": "intervallo di Pooling (minuti)",
+        "mailbox_quota_def": "Spazio predefinito della casella di posta",
+        "mailbox_quota_m": "Spazio massimo per casella di posta (MiB)",
+        "mailbox_username": "Username (parte a sinistra della @)",
+        "max_aliases": "Numero massimo alias",
+        "max_mailboxes": "Numero massimo caselle di posta",
+        "mins_interval": "intervallo (minuti)",
         "multiple_bookings": "Prenotazioni multiple",
-        "password": "Password:",
-        "password_repeat": "Conferma password (riscrivi):",
+        "nexthop": "Hop successivo",
+        "password": "Password",
+        "password_repeat": "Conferma password (riscrivi)",
         "port": "Porta",
-        "post_domain_add": "Dovrai riavviare il servizio SOGo dopo aver aggiunto un nuovo dominio!",
+        "post_domain_add": "Il container di SOGo, \"sogo-mailcow\", deve essere riavviato dopo aver aggiunto un nuovo dominio!<br><br>Inoltre la configurazione dei DNS del dominio verrà riesaminata. Quando la configurazione dei DNS sarà attiva, riavvia \"acme-mailcow\" per generare automaticamente i certificati per il nuovo dominio (autoconfig.&lt;domain&gt;, autodiscover.&lt;domain&gt;).<br>Quest'ultimo passaggio è facoltativo, in quanto il sistema si aggiorna ogni 24 ore.",
+        "private_comment": "Commento privato",
+        "public_comment": "Commento pubblico",
         "quota_mb": "Spazio (MiB):",
         "relay_all": "Trasmettere a tutti i destinatari",
-        "relay_all_info": "<small>Se si sceglie di <b>non</b> inviare tutti i destinatari, è necessario aggiungere una cassetta postale (\"blind\") per ogni singolo destinatario a cui deve essere inoltrato.</small>",
+        "relay_all_info": "<small>Se si sceglie di <b>non</b> inviare a tutti i destinatari, è necessario aggiungere una casella di posta (\"blind\") per ogni singolo destinatario a cui deve essere inoltrato.</small>",
         "relay_domain": "Trasmetti questo dominio",
-        "select": "Perfavore seleziona...",
-        "select_domain": "Perfavore seleziona il dominio prima",
+        "relay_transport_info": "<div class=\"label label-info\">Info</div> Puoi definire mappe di trasporto verso una destinazione a tua scelta per questo dominio. Se non viene impostata, si guarderà il record MX.",
+        "relay_unknown_only": "Inoltra solo caselle di posta inesistenti. I messaggi per gli indirizzi esistenti verranno consegnati localmente.",
+        "relayhost_wrapped_tls_info": "Please do <b>not</b> use TLS-wrapped ports (mostly used on port 465).<br>\r\nUse any non-wrapped port and issue STARTTLS. A TLS policy to enforce TLS can be created in \"TLS policy maps\".",
+        "select": "Si prega di selezionare...",
+        "select_domain": "Seleziona prima un dominio",
+        "sieve_desc": "Descrizione breve",
+        "sieve_type": "Tipologia di filtro",
+        "skipcrossduplicates": "Salta i messaggi duplicati tra le cartelle (precedenza al primo arrivato)",
+        "subscribeall": "Iscriviti a tutte le cartelle",
         "syncjob": "Aggiungi sincronizzazione",
         "syncjob_hint": "Ricordati che le password vanno salvate in testo semplice!",
-        "target_address": "Inoltra all'indirizzo:",
-        "target_address_info": "<small>Indirizzo e-mail completo/es (separati da virgole).</small>",
-        "target_domain": "Target dominio:",
-        "username": "Username"
+        "target_address": "Inoltra all'indirizzo",
+        "target_address_info": "<small>Indirizzo e-mail completo/i (separati da virgole).</small>",
+        "target_domain": "Dominio di destinazione",
+        "timeout1": "Timeout per la connessione all'host remoto",
+        "timeout2": "Timeout per la connessione all'host locale",
+        "username": "Username",
+        "validate": "Convalida",
+        "validation_success": "Convalidato con successo",
+        "xmpp": "Attiva XMPP per questo dominio",
+        "xmpp_access": "Accesso XMPP",
+        "xmpp_access_info": "XMPP deve essere abilitato per questo dominio.",
+        "xmpp_admin": "Amministratore XMPP",
+        "xmpp_admin_info": "<b>Attenzione:</b> Promuove un utente ad amministratore XMPP di questo dominio.",
+        "xmpp_info": "Questa funzione abiliterà la funzionalità di chat per questo dominio."																			
     },
     "admin": {
         "access": "Accedi",
         "action": "Azione",
+        "activate_api": "Attiva API",
+        "activate_send": "Attiva bottone di invio",
         "active": "Attiva",
+        "active_rspamd_settings_map": "Active settings map",
         "add": "Aggiungi",
+        "add_admin": "Aggiungi amministratore",
         "add_domain_admin": "Aggiungi amministratore di dominio",
         "add_forwarding_host": "Aggiungi host inoltro",
+        "add_relayhost": "Add sender-dependent transport",
+        "add_relayhost_hint": "Tieni presente che i dati di autenticazione, se presenti, verranno archiviati come testo semplice.",
+        "add_row": "Aggiungi riga",
+        "add_settings_rule": "Add settings rule",
+        "add_transport": "Aggiungi transport",
+        "add_transports_hint": "Tieni presente che i dati di autenticazione, se presenti, verranno archiviati come testo semplice.",
+        "additional_rows": " righe aggiuntive inserite",
         "admin": "Amministratore",
         "admin_details": "Modifica impostazioni amministratore",
         "admin_domains": "Assengazioni di dominio",
+        "admins": "Amministratori",
+        "admins_ldap": "Amministratori LDAP",
+        "advanced_settings": "Impostazioni avanzate",
+        "api_allow_from": "Allow API access from these IPs/CIDR network notations",
+        "api_info": "The API is a work in progress. The documentation can be found at <a href=\"/api\">/api</a>",
+        "api_key": "API key",
+        "api_skip_ip_check": "Skip IP check for API",
+        "app_links": "App links",
+        "app_name": "App name",
+        "apps_name": "\"mailcow Apps\" name",
+        "arrival_time": "Arrival time (server time)",
+        "authed_user": "Auth. user",
+        "ays": "Sei sicuro di voler procedere?",
+        "ban_list_info": "See a list of banned IPs below: <b>network (remaining ban time) - [actions]</b>.<br />IPs queued to be unbanned will be removed from the active ban list within a few seconds.<br />Red labels indicate active permanent bans by blacklisting.",
+        "change_logo": "Cambia logo",
         "configuration": "Configurazione",
+        "convert_html_to_text": "Convert HTML to plain text",
+        "credentials_transport_warning": "<b>Warning</b>: Adding a new transport map entry will update the credentials for all entries with a matching next hop column.",
+        "customer_id": "ID cliente",
+        "customize": "Personalizzare",
+        "delete_queue": "Elimina tutto",
+        "destination": "Destinazione",				 
         "dkim_add_key": "Aggiungi chiave ARC/DKIM",
-        "dkim_key_length": "DKIM key length (bits)",
-        "dkim_key_missing": "Key mancante",
-        "dkim_key_unused": "Key non usata",
-        "dkim_key_valid": "Key valida",
-        "dkim_keys": "chiave ARC/DKIM",
+        "dkim_domains_selector": "Selettore",
+        "dkim_domains_wo_keys": "Seleziona i domini senza chiavi",
+        "dkim_from": "Da",
+        "dkim_from_title": "Source domain to copy data from",
+        "dkim_key_length": "Lunghezza chiave DKIM (bits)",
+        "dkim_key_missing": "Chiave mancante",
+        "dkim_key_unused": "Chiave non usata",
+        "dkim_key_valid": "Chiave valida",
+        "dkim_keys": "Chiavi ARC/DKIM",
+        "dkim_overwrite_key": "Sovrascrivi la chiave DKIM esistente",
+        "dkim_private_key": "Chiave privata",
+        "dkim_to": "A",
+        "dkim_to_title": "Dominio/i di destinazione - verranno sovrascritti",
         "domain": "Dominio",
+        "domain_admin": "Amministratore di dominio",
         "domain_admins": "Amministratori di dominio",
+        "domain_s": "Dominio/i",
+        "duplicate": "Duplica",
+        "duplicate_dkim": "Duplica record DKIM",
         "edit": "Modifica",
         "empty": "Nessun risultato",
+        "excludes": "Esclude questi destinatari",
+        "f2b_ban_time": "Tempo di blocco (s)",
+        "f2b_blacklist": "Host/reti in blacklist",
+        "f2b_filter": "Filtri Regex",
+        "f2b_list_info": "Un host oppure una rete in blacklist, avrà sempre un peso maggiore rispetto ad una in whitelist. <b>L'aggiornamento della lista richiede alcuni secondi per la sua entrata in azione.</b>",
+        "f2b_max_attempts": "Tentativi massimi",
+        "f2b_netban_ipv4": "IPv4 subnet size to apply ban on (8-32)",
+        "f2b_netban_ipv6": "IPv6 subnet size to apply ban on (8-128)",
+        "f2b_parameters": "Parametri Fail2ban",
+        "f2b_regex_info": "Log presi in considerazione: SOGo, Postfix, Dovecot, PHP-FPM.",
+        "f2b_retry_window": "Retry window (s) for max. attempts",
+        "f2b_whitelist": "Host/reti in whitelist",
         "filter_table": "Tabella filtro",
+        "flush_queue": "Svuota la coda",
         "forwarding_hosts": "Inoltro degli host",
         "forwarding_hosts_add_hint": "È possibile specificare indirizzi IPv4 / IPv6, reti nella notazione CIDR, nomi host (che verranno risolti in indirizzi IP) o nomi di dominio (che verranno risolti agli indirizzi IP richiamando i record SPF o, in assenza, i record MX) .",
-        "forwarding_hosts_hint": "I messaggi in entrata sono accettati in maniera incondizionata da tutti gli host elencati qui. Questi host sono quindi non controllati contro DNSBL o sottoposti a greylisting. Spam ricevuti da loro non viene mai rifiutata e sempre archiviata nella cartella Junk. L'utilizzo più comune per questo è quello di specificare i server di posta elettronica su cui è stata impostata una regola che inoltra le email in arrivo al server mailcow.",
-        "host": "Hostname",
-        "loading": "Attendere...",
+        "forwarding_hosts_hint": "I messaggi in entrata sono accettati in maniera incondizionata da tutti gli host qui elencati. Questi host sono quindi non controllati tramite DNSBL o sottoposti a greylisting. Lo spam ricevuto da questi host non viene mai rifiutato, ma potrebbe essere archiviato nella cartella Posta indesiderata. L'utilizzo più comune è quello di specificare i server di posta elettronica su cui è stata impostata una regola che inoltra le email in arrivo al server mailcow.",
+        "from": "Da",
+        "generate": "generate",
+        "guid": "GUID - ID istanza univoco",
+        "guid_and_license": "GUID & Licenza",
+        "hash_remove_info": "Removing a ratelimit hash (if still existing) will reset its counter completely.<br>\r\n  Each hash is indicated by an individual color.",
+        "help_text": "Sovrascrivi il testo d'aiuto nella maschera di login (HTML consentito)",
+		"host": "Hostname",
+        "html": "HTML",
+        "import": "Importa",
+        "import_private_key": "Importa chiave privata",
+        "in_use_by": "In uso da",
+        "inactive": "Inattivo",
+        "include_exclude": "Includi/Escludi",
+        "include_exclude_info": "Di default - se nessuna voce viene selezionata - <b>tutte le caselle di posta</b> risultano attivate",
+        "includes": "Includi questi destinatari",
+        "is_mx_based": "Basato sul record MX",
+        "last_applied": "Last applied",
+        "license_info": "Non è necessario essere in possesso di una licenza ma aiuta gli sviluppatori a far crescere il prodotto.<br><a href=\"https://www.servercow.de/mailcow?lang=en#sal\" target=\"_blank\" alt=\"SAL order\">Registra qui il tuo GUID </a> oppure <a href=\"https://www.servercow.de/mailcow?lang=en#support\" target=\"_blank\" alt=\"Support order\">acquista il supporto per la tua installazione di mailcow.</a>",
+        "link": "Link",
+        "loading": "Caricamento in corso...",
+        "login_time": "Ora di accesso",
+        "logo_info": "La tua immagine verrà ridimensionata a 40px di altezza, quando verrà usata nella barra di navigazione in alto, ed ad una larghezza massima di 250px nella schermata iniziale. È altamente consigliato l'utilizzo di un'immagine modulabile.",
+        "lookup_mx": "Destination is a regular expression to match against MX name (<code>.*google\\.com</code> to route all mail targeted to a MX ending in google.com over this hop)",
+        "main_name": "Nome \"mailcow UI\"",
+        "merged_vars_hint": "Greyed out rows were merged from <code>vars.(local.)inc.php</code> and cannot be modified.",
+        "message": "Messaggio",
+        "message_size": "Dimensione mesaggio",
+        "nexthop": "Next hop",
+        "no": "&#10005;",
+        "no_active_bans": "Nessun ban attivo",
+        "no_new_rows": "Nessuna ulteriore riga disponibile",										   
         "no_record": "Nessun risultato",
+        "oauth2_client_id": "ID cliente",
+        "oauth2_client_secret": "Client secret",
+        "oauth2_info": "The OAuth2 implementation supports the grant type \"Authorization Code\" and issues refresh tokens.<br>\r\nThe server also automatically issues new refresh tokens, after a refresh token has been used.<br><br>\r\n&#8226; The default scope is <i>profile</i>. Only mailbox users can be authenticated against OAuth2. If the scope parameter is omitted, it falls back to <i>profile</i>.<br>\r\n&#8226; The <i>state</i> parameter is required to be sent by the client as part of the authorize request.<br><br>\r\nPaths for requests to the OAuth2 API: <br>\r\n<ul>\r\n  <li>Authorization endpoint: <code>/oauth/authorize</code></li>\r\n  <li>Token endpoint: <code>/oauth/token</code></li>\r\n  <li>Resource page:  <code>/oauth/profile</code></li>\r\n</ul>\r\nRegenerating the client secret will not expire existing authorization codes, but they will fail to renew their token.<br><br>\r\nRevoking client tokens will cause immediate termination of all active sessions. All clients need to re-authenticate.",
+        "oauth2_redirect_uri": "URI di reindirizzamento",
+        "oauth2_renew_secret": "Generate new client secret",
+        "oauth2_revoke_tokens": "Revoca tutti i token del client",
+        "optional": "facoltativo",
         "password": "Password",
-        "password_repeat": "Conferma password(ripeti)",
+        "password_length": "Lunghezza password",
+        "password_policy": "Password policy",
+        "password_policy_chars": "Deve contenere almeno un carattere alfabetico",
+        "password_policy_length": "La lunghezza minima della password è %d caratteri",
+        "password_policy_lowerupper": "Deve contenere caratteri minuscoli e maiuscoli",
+        "password_policy_numbers": "Deve contenere almeno un numero",
+        "password_policy_special_chars": "Deve contenere almeno un carattere speciale",
+        "password_repeat": "Conferma password (riscrivi)",
+        "priority": "Priorità",
+        "private_key": "Chiave privata",
+        "quarantine": "Quarantena",
+        "quarantine_bcc": "Invia una copia di tutte le notifiche (CCN) a questo destinatario:<br><small>Lascia vuoto per disabilitare la funzione. <b>Messaggi non firmati e non controllati. Dovrebbero essere consegnati solo localmente.</b></small>",
+        "quarantine_exclude_domains": "Escludi domini e alias di dominio",
+        "quarantine_max_age": "Età massima in giorni<br><small>Il valore deve essere maggiore o uguale ad 1 giorno.</small>",
+        "quarantine_max_score": "Ignora la notifica se il punteggio spam di una mail è superiore a questo valore:<br><small>Di default è 9999.0</small>",
+        "quarantine_max_size": "Dimensione massima in MiB (gli elementi più grandi vengono scartati):<br><small>0 <b>non</b> significa illimitato.</small>",
+        "quarantine_notification_html": "Modello e-mail di notifica:<br><small>Lascia vuoto per utilizzare il modello predefinito.</small>",
+        "quarantine_notification_sender": "Mittente e-mail di notifica",
+        "quarantine_notification_subject": "Oggetto e-mail di notifica",
+        "quarantine_redirect": "<b>Reindirizza tutte le notifiche</b> a questo destinatario:<br><small>Lascia vuoto per disabilitare la funzione. <b>Messaggi non firmati e non controllati. Dovrebbero essere consegnati solo localmente.</b></small>",
+        "quarantine_release_format": "Format of released items",
+        "quarantine_release_format_att": "Come allegato",
+        "quarantine_release_format_raw": "Originale non modificato",
+        "quarantine_retention_size": "Retention per casella di posta:<br><small>0 indica <b>inattivo</b>.</small>",
+        "queue_ays": "Conferma di voler eliminare tutti gli elementi dalla coda corrente.",
+        "queue_deliver_mail": "Consegna",
+        "queue_hold_mail": "Trattieni",
+        "queue_manager": "Gestore code",
+        "queue_show_message": "Visualizza messaggio",
+        "queue_unban": "queue unban",
+        "queue_unhold_mail": "Rilascia",
+        "quota_notification_html": "Modello e-mail di notifica:<br><small>Lascia vuoto per utilizzare il modello predefinito.</small>",
+        "quota_notification_sender": "Mittente e-mail di notifica",
+        "quota_notification_subject": "Oggetto e-mail di notifica",
+        "quota_notifications": "Notifiche sulle quote",
+        "quota_notifications_info": "Le notifiche di spazio vengono inviate agli utenti la cui capienza della casella di posta supera l'80% oppure il 95%.",
+        "quota_notifications_vars": "{{percent}} è lo spazio attualmente utilizzato dell'utente<br>{{username}} è il nome della casella di posta",
         "r_active": "Restrizioni attive",
         "r_inactive": "Restrizioni inattive",
-        "r_info": "Gli elementi disabilitati nell'elenco delle restrizioni attive non sono conosciute come restrizioni valide per la posta e non possono essere spostate. Le restrizioni sconosciute verranno comunque impostate in ordine di aspetto. <br />Puoi aggiungere nuovi elementi in <code>inc/vars.local.inc.php</code> per poterli attivare.",
+        "r_info": "Gli elementi disabilitati nell'elenco delle restrizioni attive non sono conosciute come restrizioni valide per la posta e non possono essere spostate. Le restrizioni sconosciute verranno comunque impostate in ordine di aspetto.<br />Puoi aggiungere nuovi elementi in <code>inc/vars.local.inc.php</code> per poterli attivare.",
+        "rate_name": "Rate name",
+        "recipients": "Destinatari",
+        "refresh": "Aggiorna",
+        "regen_api_key": "Rinnova la chiave delle API",
+        "regex_maps": "Regex maps",
+        "relay_from": "\"Da:\" indirizzi",
+        "relay_rcpt": "\"A:\" indirizzi",
+        "relay_run": "Esegui test",
+        "relayhosts": "Sender-dependent transports",
+        "relayhosts_hint": "Define sender-dependent transports to be able to select them in a domains configuration dialog.<br>\r\n  The transport service is always \"smtp:\" and will therefore try TLS when offered. Wrapped TLS (SMTPS) is not supported. A users individual outbound TLS policy setting is taken into account.<br>\r\n  Affects selected domains including alias domains.",
         "remove": "Rimuovi",
+        "remove_row": "Elimina riga",
+        "reset_default": "Riporta alle condizioni di default",
+        "reset_limit": "Remove hash",
+        "routing": "Routing",
+        "rsetting_add_rule": "Aggiungi regola",
+        "rsetting_content": "Contenuto della regola",
+        "rsetting_desc": "Descrizione breve",
+        "rsetting_no_selection": "Seleziona una regola",
+        "rsetting_none": "Nessuna regola presente",
+        "rsettings_insert_preset": "Insert example preset \"%s\"",
+        "rsettings_preset_1": "Disable all but DKIM and rate limit for authenticated users",
+        "rsettings_preset_2": "I postmaster vogliono lo spam",
+        "rsettings_preset_3": "Consenti solo mittenti specifici per una casella di posta (ad esempio: utilizzo solo come casella di posta interna)",
+        "rspamd-com_settings": "A setting name will be auto-generated, please see the example presets below. For more details see <a href=\"https://rspamd.com/doc/configuration/settings.html#settings-structure\" target=\"_blank\">Rspamd docs</a>",
+        "rspamd_global_filters": "Global filter maps",
+        "rspamd_global_filters_agree": "Starò attento!",
+        "rspamd_global_filters_info": "Global filter maps contain different kind of global black and whitelists.",
+        "rspamd_global_filters_regex": "Their names explain their purpose. All content must contain valid regular expression in the format of \"/pattern/options\" (e.g. <code>/.+@domain\\.tld/i</code>).<br>\r\n  Although rudimentary checks are being executed on each line of regex, Rspamds functionality can be broken, if it fails to read the syntax correctly.<br>\r\n  Rspamd will try to read the map content when changed. If you experience problems, <a href=\"\" data-toggle=\"modal\" data-container=\"rspamd-mailcow\" data-target=\"#RestartContainer\">restart Rspamd</a> to enforce a map reload.<br>Blacklisted elements are excluded from quarantine.",
+        "rspamd_settings_map": "Rspamd settings map",
+        "sal_level": "Moo level",
         "save": "Salva modifiche",
         "search_domain_da": "Ricerca domini",
+        "send": "Invia",
+        "sender": "Mittente",
+        "service": "Servizio",
+        "service_id": "ID del servizio",
+        "source": "Source",
         "spamfilter": "Filtri spam",
+        "subject": "Oggetto",
+        "success": "Successo",
+        "sys_mails": "System mails",
+        "text": "Testo",
+        "time": "Orario",
+        "title": "Titolo",
+        "title_name": "Titolo del sito \"mailcow UI\"",
+        "to_top": "Torna in cima",
+        "transport_dest_format": "Regex or syntax: example.org, .example.org, *, box@example.org (multiple values can be comma-separated)",
+        "transport_maps": "Transport Maps",
+        "transport_test_rcpt_info": "&#8226; Use null@hosted.mailcow.de to test relaying to a foreign destination.",
+        "transports_hint": "&#8226; A transport map entry <b>overrules</b> a sender-dependent transport map</b>.<br>\r\n&#8226; MX-based transports are preferably used.<br>\r\n&#8226; Outbound TLS policy settings per-user are ignored and can only be enforced by TLS policy map entries.<br>\r\n&#8226; The transport service for defined transports is always \"smtp:\" and will therefore try TLS when offered. Wrapped TLS (SMTPS) is not supported.<br>\r\n&#8226; Addresses matching \"/localhost$/\" will always be transported via \"local:\", therefore a \"*\" destination will not apply to those addresses.<br>\r\n&#8226; To determine credentials for an exemplary next hop \"[host]:25\", Postfix <b>always</b> queries for \"host\" before searching for \"[host]:25\". This behavior makes it impossible to use \"host\" and \"[host]:25\" at the same time.",
+        "ui_footer": "Footer (HTML consentito)",
+        "ui_header_announcement": "Annunci",
+        "ui_header_announcement_active": "Attiva annuncio",
+        "ui_header_announcement_content": "Testo (HTML consentito)",
+        "ui_header_announcement_help": "L'annuncio è visibile per tutti gli utenti che hanno effettuato l'accesso e nella schermata di accesso dell'interfaccia utente.",
+        "ui_header_announcement_select": "Seleziona il tipo di annuncio",
+        "ui_header_announcement_type": "Tipo",
+        "ui_header_announcement_type_danger": "Molto importante",
+        "ui_header_announcement_type_info": "Info",
+        "ui_header_announcement_type_warning": "Importante",
+        "ui_texts": "UI labels and texts",
+        "unban_pending": "unban pending",
         "unchanged_if_empty": "Se immutato lasciare vuoto",
-        "username": "Username"
+        "upload": "Upload",				   
+        "username": "Username",
+        "validate_license_now": "Validate GUID against license server",
+        "verify": "Verifica",
+        "yes": "&#10003;"
     },
     "danger": {
         "access_denied": "Accesso negato o form di login non corretto",
-        "alias_domain_invalid": "Alias domain non è valido",
-        "alias_empty": "L'indirizzo di alias non può restare vuoto",
-        "alias_goto_identical": "Alias and goto address must not be identical",
-        "alias_invalid": "L'indirizzo alias non è valido",
-        "aliasd_targetd_identical": "Alias domain must not be equal to target domain",
-        "aliases_in_use": "Il numero massimo di alias must deve essere maggiore o uguale a %d",
+        "alias_domain_invalid": "L'alias di dominio %s non è valido",
+        "alias_empty": "L'indirizzo di alias non può essere vuoto",
+        "alias_goto_identical": "L'alias e l'indirizzo di destinazione non possono essere identici",
+        "alias_invalid": "L'indirizzo alias %s non è valido",
+        "aliasd_targetd_identical": "L'alias di dominio non può essere identico al dominio di destinazione",
+        "aliases_in_use": "Il numero massimo di alias deve essere maggiore o uguale a %d",
+        "app_name_empty": "Il nome dell'app non può essere vuoto",
+        "app_passwd_id_invalid": "App password ID %s invalid",
+        "bcc_empty": "BCC destination cannot be empty",
+        "bcc_exists": "A BCC map %s exists for type %s",
+        "bcc_must_be_email": "BCC destination %s is not a valid email address",
+        "comment_too_long": "Commento troppo lungo, 160 caratteri massimi consentiti",
+        "defquota_empty": "Lo spazio predefinito di una casella di posta non può essere 0.",
         "description_invalid": "La descrizione della risorsa non è valido",
-        "dkim_domain_or_sel_invalid": "DKIM domain or selector invalid",
-        "domain_exists": "Domain %s esiste già",
+        "dkim_domain_or_sel_exists": "Esiste già una chiave DKIM per \"%s\" e non verrà quindi sovrascritta",
+        "dkim_domain_or_sel_invalid": "Dominio DKIM o selettore errato: %s",
+        "domain_cannot_match_hostname": "Il dominio non può corrispondere all'hostname",
+        "domain_exists": "Dominio %s esiste già",
         "domain_invalid": "Il nome di dominio non è valido",
         "domain_not_empty": "Non posso rimuovere domini in non vuoti",
         "domain_not_found": "Dominio non trovato.",
-        "domain_quota_m_in_use": "La quota di dominio deve essere maggiore o uguale a %s MiB",
-        "goto_empty": "L'indirizzo di destinazione non può restare vuoto",
-        "goto_invalid": "Goto address non è valido",
+        "domain_quota_m_in_use": "Lo spazio del dominio deve essere maggiore o uguale a %s MiB",
+        "extra_acl_invalid": "External sender address \"%s\" is invalid",
+        "extra_acl_invalid_domain": "External sender \"%s\" uses an invalid domain",
+        "fido2_verification_failed": "FIDO2 verification failed: %s",
+        "file_open_error": "File cannot be opened for writing",
+        "filter_type": "Wrong filter type",
+        "from_invalid": "Il mittente non può essere vuoto",
+        "global_filter_write_error": "Could not write filter file: %s",
+        "global_map_invalid": "Global map ID %s invalid",
+        "global_map_write_error": "Could not write global map ID %s: %s",
+		"goto_empty": "L'indirizzo di destinazione non può essere vuoto",
+        "goto_invalid": "L'indirizzo di destinazione %s non è valido",
+        "ham_learn_error": "Ham learn error: %s",
+        "imagick_exception": "Error: Imagick exception while reading image",
+        "img_invalid": "Cannot validate image file",
+        "img_tmp_missing": "Cannot validate image file: Temporary file not found",
+        "invalid_bcc_map_type": "Invalid BCC map type",
+        "invalid_destination": "Destination format \"%s\" is invalid",
+        "invalid_filter_type": "Invalid filter type",
+        "invalid_host": "Invalid host specified: %s",
+        "invalid_mime_type": "Invalid mime type",
+        "invalid_nexthop": "Next hop format is invalid",
+        "invalid_nexthop_authenticated": "Next hop exists with different credentials, please update the existing credentials for this next hop first.",
+        "invalid_recipient_map_new": "Invalid new recipient specified: %s",
+        "invalid_recipient_map_old": "Invalid original recipient specified: %s",
+        "ip_list_empty": "L'elenco degli IP consentiti non può essere vuoto",
         "is_alias": "%s è già presente come alias",
-        "is_alias_or_mailbox": "%s è già presente come alias o casella",
+        "is_alias_or_mailbox": "%s è già presente come alias, casella di posta oppure come alias di dominio",
         "is_spam_alias": "%s è già presente come indirizzo spam alias",
         "last_key": "L'ultima chiave non può essere rimossa",
         "login_failed": "Login fallito",
+        "mailbox_defquota_exceeds_mailbox_maxquota": "Default quota exceeds max quota limit",
         "mailbox_invalid": "Il nome della casella non è valido",
-        "mailbox_quota_exceeded": "La quota ha oltrepassato il limite di dominio (max. %d MiB)",
-        "mailbox_quota_exceeds_domain_quota": "La quota massima eccede la quota di dominio",
+        "mailbox_quota_exceeded": "Lo spazio assegnato oltrepassa il limite del dominio (max. %d MiB)",
+        "mailbox_quota_exceeds_domain_quota": "Lo spazio massimo supera la spazio del dominio",
         "mailbox_quota_left_exceeded": "Non c'è abbastanza spazio libero (space left: %d MiB)",
-        "mailboxes_in_use": "La quota della casella massima deve essere maggiore o uguale a %d",
+        "mailboxes_in_use": "Lo spazio massimo della casella deve essere maggiore o uguale a %d",
+        "malformed_username": "Malformed username",
+        "map_content_empty": "Map content cannot be empty",
         "max_alias_exceeded": "Numero massimo di alias superato",
         "max_mailbox_exceeded": "Numero massimo di caselle superato (%d of %d)",
-        "max_quota_in_use": "La quota della casella deve essere maggiore o uguale a %d MiB",
-        "maxquota_empty": "Max. quota per mailbox must not be 0.",
-        "object_exists": "Object %s esiste già",
+        "max_quota_in_use": "Lo spazio della casella deve essere maggiore o uguale a %d MiB",
+        "maxquota_empty": "Lo spazio massimo della casella di posta non può essere 0.",
+        "mysql_error": "Errore MySQL: %s",
+        "network_host_invalid": "Rete o host non valido: %s",
+        "next_hop_interferes": "%s interferes with nexthop %s",
+        "next_hop_interferes_any": "An existing next hop interferes with %s",
+        "nginx_reload_failed": "Nginx reload failed: %s",
+        "no_user_defined": "No user defined",
+        "object_exists": "L'oggetto %s esiste già",
         "object_is_not_numeric": "Il valore %s non è numerico",
         "password_complexity": "La password non soddisfa le regole di sicurezza",
         "password_empty": "Il campo password non può essere vuoto",
         "password_mismatch": "La password di conferma non corrisponde",
         "policy_list_from_exists": "Un elemento con lo stesso nome è già presente",
         "policy_list_from_invalid": "L'elemento ha un formato non valido",
-        "quota_not_0_not_numeric": "La quota deve essere numerica e >= 0",
+        "private_key_error": "Private key error: %s",
+        "pushover_credentials_missing": "Pushover token and or key missing",
+        "pushover_key": "Pushover key has a wrong format",
+        "pushover_token": "Pushover token has a wrong format",
+        "quota_not_0_not_numeric": "Lo spazio deve essere numerico e >= 0",
+        "recipient_map_entry_exists": "A Recipient map entry \"%s\" exists",
+        "redis_error": "Redis error: %s",
+        "relayhost_invalid": "Map entry %s is invalid",
+        "release_send_failed": "Message could not be released: %s",
+        "reset_f2b_regex": "Regex filter could not be reset in time, please try again or wait a few more seconds and reload the website.",
         "resource_invalid": "Il nome della risorsa non è valido",
+        "rl_timeframe": "Rate limit time frame is incorrect",
+        "rspamd_ui_pw_length": "Rspamd UI password should be at least 6 chars long",
+        "script_empty": "Script cannot be empty",
         "sender_acl_invalid": "Il valore di Sender ACL non è valido",
+        "set_acl_failed": "Failed to set ACL",
+        "settings_map_invalid": "Settings map ID %s invalid",
+        "sieve_error": "Sieve parser error: %s",
+        "spam_learn_error": "Spam learn error: %s",
+        "subject_empty": "Subject must not be empty",
         "target_domain_invalid": "Goto domain non è valido",
         "targetd_not_found": "Il target del dominio non è stato trovato",
-        "username_invalid": "Username non può essere utilizzato",
-        "validity_missing": "Assegnare un periodo di validità"
+        "targetd_relay_domain": "Target domain %s is a relay domain",
+        "temp_error": "Temporary error",
+        "text_empty": "Text must not be empty",
+        "tfa_token_invalid": "TFA token invalid",
+        "tls_policy_map_dest_invalid": "Policy destination is invalid",
+        "tls_policy_map_entry_exists": "A TLS policy map entry \"%s\" exists",
+        "tls_policy_map_parameter_invalid": "Policy parameter is invalid",
+        "totp_verification_failed": "TOTP verification failed",
+        "transport_dest_exists": "Transport destination \"%s\" exists",
+        "u2f_verification_failed": "U2F verification failed: %s",
+        "unknown": "An unknown error occurred",
+        "unknown_tfa_method": "Unknown TFA method",
+        "unlimited_quota_acl": "Unlimited quota prohibited by ACL",
+        "username_invalid": "Username %s non può essere utilizzato",
+        "validity_missing": "Assegnare un periodo di validità",
+        "value_missing": "Please provide all values",
+        "xmpp_map_write_error": "Could not write XMPP map: %s",
+        "xmpp_reload_failed": "XMPP could not be reloaded",
+        "xmpp_restart_failed": "XMPP could not be restarted",
+        "yotp_verification_failed": "Yubico OTP verification failed: %s"
+    },
+    "debug": {
+        "chart_this_server": "Grafico (questo server)",
+        "containers_info": "Container information",
+        "disk_usage": "Uso del disco",
+        "docs": "Docs",
+        "external_logs": "External logs",
+        "history_all_servers": "History (all servers)",
+        "in_memory_logs": "In-memory logs",
+        "jvm_memory_solr": "JVM memory usage",
+        "last_modified": "Ultima modifica",
+        "log_info": "<p>mailcow <b>in-memory logs</b> are collected in Redis lists and trimmed to LOG_LINES (%d) every minute to reduce hammering.\r\n  <br>In-memory logs are not meant to be persistent. All applications that log in-memory, also log to the Docker daemon and therefore to the default logging driver.\r\n  <br>The in-memory log type should be used for debugging minor issues with containers.</p>\r\n  <p><b>External logs</b> are collected via API of the given application.</p>\r\n  <p><b>Static logs</b> are mostly activity logs, that are not logged to the Dockerd but still need to be persistent (except for API logs).</p>",
+        "login_time": "Time",
+        "logs": "Logs",
+        "online_users": "Users online",
+        "restart_container": "Riavvio",
+        "service": "Servizio",
+        "size": "Size",
+        "solr_dead": "Solr is starting, disabled or died.",
+        "solr_status": "Stato Solr",
+        "started_at": "Started at",
+        "started_on": "Started on",
+        "static_logs": "Static logs",
+        "success": "Successo",
+        "system_containers": "System & Containers",
+        "uptime": "Tempo di attività",
+        "username": "Username",
+        "xmpp_dead": "XMPP is starting, disabled or died.",
+        "xmpp_status": "Stato XMPP"
+    },
+    "diagnostics": {
+        "cname_from_a": "Valore letto dal record A/AAAA. Questo è supportato finché il record punta alla risorsa corretta.",
+        "dns_records": "Record DNS",
+        "dns_records_24hours": "Tieni presente che le modifiche apportate ai record DNS potrebbero richiedere fino a 24 ore per poter essere visualizzate correttamente in questa pagina. Tutto ciò è da intendersi come un modo per voi di vedere come configurare i record DNS e per controllare se tutti i record DNS sono stati inseriti correttamente.",
+        "dns_records_data": "Dati corretti",
+        "dns_records_docs": "Si prega di consultare anche <a target=\"_blank\" href=\"https://mailcow.github.io/mailcow-dockerized-docs/prerequisite-dns/\">la documentazione</a>.",
+        "dns_records_name": "Nome",
+        "dns_records_status": "Stato attuale",
+        "dns_records_type": "Tipo",
+        "optional": "Questo record è facoltativo."
     },
     "edit": {
         "active": "Attivo",
+        "admin": "Modifica amministratore",
+        "advanced_settings": "Impostazioni avanzate",
         "alias": "Modifica alias",
+        "allow_from_smtp": "Consenti solo a questi IP di utilizzare <b>SMTP</b>",
+        "allow_from_smtp_info": "Leave empty to allow all senders.<br>IPv4/IPv6 addresses and networks.",
+        "allowed_protocols": "Protocolli consentiti",
+        "app_name": "App name",
+        "app_passwd": "App password",
+        "automap": "Try to automap folders (\"Sent items\", \"Sent\" => \"Sent\" etc.)",
         "backup_mx_options": "Backup MX options",
+        "bcc_dest_format": "BCC destination must be a single valid email address.",
+        "client_id": "Client ID",
+        "client_secret": "Client secret",
+        "comment_info": "A private comment is not visible to the user, while a public comment is shown as tooltip when hovering it in a user's overview",
         "delete1": "Elimina dalla sorgente al termine",
+        "delete2": "Delete messages on destination that are not on source",
         "delete2duplicates": "Elimina duplicati nella destinazione",
+        "delete_ays": "Please confirm the deletion process.",
         "description": "Descrizione",
+        "disable_login": "Disabilita l'accesso (la posta in arrivo viene correttamente recapitata)",
         "domain": "Modifica dominio",
         "domain_admin": "Modifica amministratore dominio",
-        "domain_quota": "Spazio Dominio",
+        "domain_quota": "Spazio del dominio",
         "domains": "Dominio",
-        "dont_check_sender_acl": "Disattiva il controllo del mittente per il dominio %s + alias domains",
-        "edit_alias_domain": "Modifica Alias dominio",
-        "encryption": "Criptazione",
+        "dont_check_sender_acl": "Disattiva il controllo del mittente per il dominio %s + alias di dominio",
+        "edit_alias_domain": "Modifica alias di dominio",
+        "encryption": "Crittografia",
         "exclude": "Escludi oggetti (regex)",
+        "extended_sender_acl": "External sender addresses",
+        "extended_sender_acl_info": "A DKIM domain key should be imported, if available.<br>\r\n  Remember to add this server to the corresponding SPF TXT record.<br>\r\n  Whenever a domain or alias domain is added to this server, that overlaps with an external address, the external address is removed.<br>\r\n  Use @domain.tld to allow to send as *@domain.tld.",
+        "force_pw_update": "Force password update at next login",
+        "force_pw_update_info": "Questo utente potrà accedere solo a %s.",
         "full_name": "Nome completo",
-        "host": "Host",
+        "gal": "Global Address List",
+        "gal_info": "The GAL contains all objects of a domain and cannot be edited by any user. Free/busy information in SOGo is missing, if disabled! <b>Restart SOGo to apply changes.</b>",
+        "generate": "generate",
+        "grant_types": "Grant types",
         "hostname": "Hostname",
+        "inactive": "Inattivo",
         "kind": "Genere",
+        "lookup_mx": "Destination is a regular expression to match against MX name (<code>.*google\\.com</code> to route all mail targeted to a MX ending in google.com over this hop)",
         "mailbox": "Modifica casella di posta",
+        "mailbox_quota_def": "Default mailbox quota",
+        "mailbox_relayhost_info": "Applied to the mailbox and direct aliases only, does override a domain relayhost.",
         "max_aliases": "Numero massimo alias",
         "max_mailboxes": "Caselle di posta massime",
         "max_quota": "Massimo spazio per casella (MiB)",
-        "maxage": "Massima età dei messaggi che verranno scaricati dal server remoto<br /><small>(0 = ignorà età)</small>",
+        "maxage": "Massima età dei messaggi che verranno scaricati dal server remoto<br /><small>(0 = ignora età)</small>",
+        "maxbytespersecond": "Max. bytes per second <br><small>(0 = unlimited)</small>",
+        "mbox_rl_info": "This rate limit is applied on the SASL login name, it matches any \"from\" address used by the logged-in user. A mailbox rate limit overrides a domain-wide rate limit.",
         "mins_interval": "Intervallo (min)",
         "multiple_bookings": "Prenotazioni multiple",
+        "nexthop": "Next hop",
         "password": "Password",
-        "password_repeat": "Conferma password (riscrivila)",
+        "password_repeat": "Conferma password (riscrivi)",
         "previous": "Pagina precedente",
+        "private_comment": "Commento privato",
+        "public_comment": "Commento pubblico",
+        "pushover_evaluate_x_prio": "Escalate high priority mail [<code>X-Priority: 1</code>]",
+        "pushover_info": "Push notification settings will apply to all clean (non-spam) mail delivered to <b>%s</b> including aliases (shared, non-shared, tagged).",
+        "pushover_only_x_prio": "Only consider high priority mail [<code>X-Priority: 1</code>]",
+        "pushover_sender_array": "Only consider the following sender email addresses <small>(comma-separated)</small>",
+        "pushover_sender_regex": "Consider the following sender regex",
+        "pushover_text": "Notification text",
+        "pushover_title": "Notification title",
+        "pushover_vars": "When no sender filter is defined, all mails will be considered.<br>Regex filters as well as exact sender checks can be defined individually and will be considered sequentially. They do not depend on each other.<br>Useable variables for text and title (please take note of data protection policies)",
+        "pushover_verify": "Verify credentials",
         "quota_mb": "Spazio (MiB)",
+        "quota_warning_bcc": "Quota warning BCC",
+        "quota_warning_bcc_info": "Warnings will be sent as separate copies to the following recipients. The subject will be suffixed by the corresponding username in brackets, for example: <code>Quota warning (user@example.com)</code>.",
+        "ratelimit": "Rate limit",
+        "redirect_uri": "Redirect/Callback URL",								
         "relay_all": "Relay tutti i destinatari",
-        "relay_all_info": "<small>Se si sceglie di <b>non</b> inviare tutti i destinatari, è necessario aggiungere una cassetta postale (\"blind\") per ogni singolo destinatario a cui deve essere inoltrato.</small>",
+        "relay_all_info": "<small>Se si sceglie di <b>non</b> inviare a tutti i destinatari, è necessario aggiungere una casella di posta (\"blind\") per ogni singolo destinatario a cui deve essere inoltrato.</small>",
         "relay_domain": "Relay dominio",
+        "relay_transport_info": "<div class=\"label label-info\">Info</div> You can define transport maps for a custom destination for this domain. If not set, a MX lookup will be made.",
+        "relay_unknown_only": "Relay non-existing mailboxes only. Existing mailboxes will be delivered locally.",
+        "relayhost": "Sender-dependent transports",
         "remove": "Rimuovi",
         "resource": "Risorsa",
         "save": "Salva modifiche",
+        "scope": "Scope",
         "sender_acl": "Consenti di inviare come",
-        "source": "Sorgente",
-        "subfolder2": "Sincronizza in una sottocartella<br /><small>(vuoto = non sincronizzare in sottocartella)</small>",
+        "sender_acl_disabled": "<span class=\"label label-danger\">Sender check is disabled</span>",
+        "sender_acl_info": "If mailbox user A is allowed to send as mailbox user B, the sender address is not automatically displayed as selectable \"from\" field in SOGo.<br>\r\n  Mailbox user B needs to create a delegation in SOGo to allow mailbox user A to select their address as sender. To delegate a mailbox in SOGo, use the menu (three dots) to the right of your mailbox name in the upper left while in mail view. This behaviour does not apply to alias addresses.",
+        "sieve_desc": "Short description",
+        "sieve_type": "Filter type",
+        "skipcrossduplicates": "Skip duplicate messages across folders (first come, first serve)",
+        "sogo_access": "Grant access to SOGo",
+        "sogo_access_info": "Grant or permit access to SOGo. This setting does neither affect access to all other services nor does it delete or change a user's existing SOGo profile.",
+        "sogo_visible": "Alias is visible in SOGo",
+        "sogo_visible_info": "This option only affects objects, that can be displayed in SOGo (shared or non-shared alias addresses pointing to at least one local mailbox). If hidden, an alias will not appear as selectable sender in SOGo.",
+        "spam_alias": "Create or change time limited alias addresses",
+        "spam_filter": "Spam filter",
+        "spam_policy": "Add or remove items to white-/blacklist",
+        "spam_score": "Set a custom spam score",
+        "subfolder2": "Sincronizza in una sottocartella<br /><small>(vuoto = non sincronizzare in sottocartella)</small>",		
         "syncjob": "Modifica sincronizzazione",
-        "target_address": "Vai all'indirizzo/es <small>(comma-separated)</small>",
+        "target_address": "Vai all'indirizzo/i <small>(separato da virgola)</small>",
         "target_domain": "Target dominio",
+        "timeout1": "Timeout for connection to remote host",
+        "timeout2": "Timeout for connection to local host",
         "title": "Modifica oggetto",
         "unchanged_if_empty": "Se immutato lasciare vuoto",
-        "username": "Username"
+        "username": "Username",
+        "validate_save": "Convalida e salva",
+        "xmpp": "Activate XMPP for this domain",
+        "xmpp_access": "XMPP access",
+        "xmpp_access_info": "XMPP must be enabled for this domain.",
+        "xmpp_admin": "XMPP administrator",
+        "xmpp_admin_info": "<b>Danger:</b> Promotes a user to an XMPP administrator of this domain.",
+        "xmpp_example_jid": "<b>Example JID</b> (login with mailbox password)",
+        "xmpp_info": "This function will enable chat functionality for this domain.",
+        "xmpp_prefix": "XMPP prefix for domain (\"im\" to use <b>im</b>.example.org)",
+        "xmpp_prefix_info": "To request certificates for XMPP, two CNAME DNS records should point from <b>im</b>.example.org as well as <b>*.im</b>.example.org to <b>%s</b>. Please also run the DNS check for this domain after enabling XMPP."
+    },
+    "fido2": {
+        "confirm": "Confirm",
+        "fido2_auth": "Login with FIDO2",
+        "fido2_success": "Device successfully registered",
+        "fido2_validation_failed": "Validation failed",
+        "fn": "Friendly name",
+        "known_ids": "Known IDs",
+        "none": "Disabled",
+        "register_status": "Registration status",
+        "rename": "Rename",
+        "set_fido2": "Register FIDO2 device",
+        "set_fn": "Set friendly name",
+        "start_fido2_validation": "Start FIDO2 validation"
     },
     "footer": {
         "cancel": "Annulla",
         "confirm_delete": "Conferma eliminazione",
         "delete_now": "Elimina ora",
         "delete_these_items": "Sicuro di voler eliminare gli oggetti selezionati?",
-        "loading": "Attendere...",
+        "hibp_nok": "Matched! This is a potentially dangerous password!",
+        "hibp_ok": "Nessuna corrispondenza trovata.",
+        "loading": "Caricamento in corso...",
+        "restart_container": "Riavvia il container",
+        "restart_container_info": "<b>Importante:</b> Il completamento di un normale riavvio potrebbe richiedere diversi minuti, ti consigliamo di attendere.",
         "restart_now": "Riavvia adesso",
-        "restart_sogo": "Riavvia SOGo",
-        "restart_sogo_info": "Some tasks, e.g. adding a domain, require you to restart SOGo to catch changes made in the mailcow UI.<br /><br /><b>Important:</b> A graceful restart may take a while to complete, please wait for it to finish."
+        "restarting_container": "Riavvia il container, potrebbe richiedere diversi minuti"
     },
     "header": {
         "administration": "Amministrazione",
+        "apps": "App",
+        "debug": "Informazioni di sistema",
         "mailboxes": "Caselle",
         "mailcow_settings": "Configurazione",
+        "quarantine": "Quarantena",
+        "restart_netfilter": "Riavvia netfilter",
         "restart_sogo": "Riavvia SOGo",
         "user_settings": "Impostazioni utente"
     },
     "info": {
-        "no_action": "Azione non applicabile"
+        "awaiting_tfa_confirmation": "In attesa di conferma TFA",
+        "no_action": "Azione non applicabile",
+        "session_expires": "La tua sessione scadrà tra 15 secondi"
     },
     "login": {
         "delayed": "L'accesso è stato ritardato di %s secondi.",
+        "fido2_webauthn": "FIDO2/WebAuthn",
         "login": "Login",
+        "mobileconfig_info": "Please login as mailbox user to download the requested Apple connection profile.",
+        "other_logins": "Key login",
         "password": "Password",
         "username": "Username"
     },
@@ -207,111 +686,321 @@
         "active": "Attiva",
         "add": "Aggiungi",
         "add_alias": "Aggiungi alias",
-        "add_domain": "Aggiungi Dominio",
-        "add_domain_alias": "Aggiungi alias Dominio",
-        "add_domain_record_first": "Perfavore aggiungi il dominio prima",
+        "add_alias_expand": "Expand alias over alias domains",
+        "add_bcc_entry": "Add BCC map",
+        "add_domain": "Aggiungi Ddminio",
+        "add_domain_alias": "Aggiungi alias di dominio",
+        "add_domain_record_first": "Per favore aggiungi il dominio prima",
+        "add_filter": "Aggiungi filtro",
         "add_mailbox": "Aggiungi casella mail",
+        "add_recipient_map_entry": "Add recipient map",
         "add_resource": "Aggiungi risorsa",
+        "add_tls_policy_map": "Add TLS policy map",
+        "address_rewriting": "Address rewriting",
         "alias": "Alias",
-        "aliases": "Aliases",
+        "alias_domain_alias_hint": "Aliases are <b>not</b> applied on domain aliases automatically. An alias address <code>my-alias@domain</code> <b>does not</b> cover the address <code>my-alias@alias-domain</code> (where \"alias-domain\" is an imaginary alias domain for \"domain\").<br>Please use a sieve filter to redirect mail to an external mailbox (see tab \"Filters\" or use  SOGo -> Forwarder). Use \"Expand alias over alias domains\" to automatically add missing aliases.",
+        "alias_domain_backupmx": "Alias domain inactive for relay domain",
+        "aliases": "Alias",
+        "allow_from_smtp": "Consenti solo l'uso di questi IP per l'<b>SMTP</b>",
+        "allow_from_smtp_info": "Leave empty to allow all senders.<br>IPv4/IPv6 addresses and networks.",
+        "allowed_protocols": "Protocolli consentiti",
         "backup_mx": "Backup MX",
+        "bcc": "CCN",
+        "bcc_destination": "Destinatario CCN",
+        "bcc_destinations": "Destinatari CCN",
+        "bcc_info": "BCC maps are used to silently forward copies of all messages to another address. A recipient map type entry is used, when the local destination acts as recipient of a mail. Sender maps conform to the same principle.<br/>\r\n  The local destination will not be informed about a failed delivery.",
+        "bcc_local_dest": "Local destination",
+        "bcc_map": "BCC map",
+        "bcc_map_type": "BCC type",
+        "bcc_maps": "BCC maps",
+        "bcc_rcpt_map": "Recipient map",
+        "bcc_sender_map": "Sender map",
+        "bcc_to_rcpt": "Switch to recipient map type",
+        "bcc_to_sender": "Switch to sender map type",
+        "bcc_type": "BCC type",
+        "booking_0": "Always show as free",
+        "booking_0_short": "Always free",
+        "booking_custom": "Hard-limit to a custom amount of bookings",
+        "booking_custom_short": "Hard limit",
+        "booking_lt0": "Unlimited, but show as busy when booked",
+        "booking_lt0_short": "Soft limit",
+        "daily": "Giornaliero",
         "deactivate": "Disattiva",
         "description": "Descrizione",
+        "disable_login": "Disabilita l'accesso (la posta in arrivo viene correttamente recapitata)",
+        "disable_x": "Disabilita",
         "domain": "Dominio",
         "domain_admins": "Amministratori di dominio",
         "domain_aliases": "Alias di domini",
-        "domain_quota": "Quota",
+        "domain_quota": "Spazio",
         "domains": "Domini",
         "edit": "Modifica",
         "empty": "Nessun risultato",
+        "enable_x": "Abilita",
         "excludes": "Esclude",
-        "filter_table": "Filra tabella",
+        "filter_table": "Filtra tabella",
+        "filters": "Filtri",
         "fname": "Nome completo",
+        "hourly": "Orario",
         "in_use": "In uso (%)",
+        "inactive": "Inattivo",
+        "insert_preset": "Insert example preset \"%s\"",
         "kind": "Tipo",
+        "last_mail_login": "Last mail login",
+        "last_pw_change": "Ultima modifica della password",
         "last_run": "Ultima esecuzione",
+        "last_run_reset": "Schedule next",
+        "mailbox": "Casella di posta",
+        "mailbox_defaults": "Impostazioni predefinite",
+        "mailbox_defaults_info": "Definire le impostazioni predefinite per le nuove caselle di posta.",
+        "mailbox_defquota": "Dimensione predefinita della casella di posta",
         "mailbox_quota": "Massima dimensione della casella",
         "mailboxes": "Caselle",
         "mins_interval": "Intervallo (min)",
         "msg_num": "Messaggio #",
-        "multiple_bookings": "Multiple bookings",
-        "no_record": "Nessun record per l' oggetto %s",
+        "multiple_bookings": "Prenotazioni multiple",
+        "never": "Mai",
+        "no": "&#10005;",
+        "no_record": "Nessun record per l'oggetto %s",
         "no_record_single": "Nessun record",
+        "owner": "Proprietario",
+        "private_comment": "Commento privato",
+        "public_comment": "Commento pubblico",
+        "q_add_header": "quando spostato nella cartella Posta indesiderata",
+        "q_all": " when moved to Junk folder and on reject",
+        "q_reject": "on reject",
+        "quarantine_category": "Quarantine notification category",
+        "quarantine_notification": "Notifiche di quarantena",
         "quick_actions": "Azione veloce",
+        "recipient_map": "Recipient map",
+        "recipient_map_info": "Recipient maps are used to replace the destination address on a message before it is delivered.",
+        "recipient_map_new": "New recipient",
+        "recipient_map_new_info": "Recipient map destination must be a valid email address.",
+        "recipient_map_old": "Original recipient",
+        "recipient_map_old_info": "A recipient maps original destination must be valid email addresses or a domain name.",
+        "recipient_maps": "Recipient maps",
         "remove": "Rimuovi",
         "resources": "Risorse",
+        "running": "In esecuzione",
+        "set_postfilter": "Mark as postfilter",
+        "set_prefilter": "Mark as prefilter",
+        "sieve_info": "You can store multiple filters per user, but only one prefilter and one postfilter can be active at the same time.<br>\r\nEach filter will be processed in the described order. Neither a failed script nor an issued \"keep;\" will stop processing of further scripts. Changes to global sieve scripts will trigger a restart of Dovecot.<br><br>Global sieve prefilter &#8226; Prefilter &#8226; User scripts &#8226; Postfilter &#8226; Global sieve postfilter",
+        "sieve_preset_1": "Elimina messaggi con allegati probabilmente pericolosi",
+        "sieve_preset_2": "Contrassegna sempre i messaggi di un mittente specifico come già letti",
+        "sieve_preset_3": "Scarta senza avvisi, interrompendo l'elaborazione di altri filtri",
+        "sieve_preset_4": "File into INBOX, skip further processing by sieve filters",
+        "sieve_preset_5": "Risponditore automatico (vacanze)",
+        "sieve_preset_6": "Rifiuta posta con risposta",
+        "sieve_preset_7": "Inoltra e mantieni/elimina",
+        "sieve_preset_8": "Rifiuta il messaggio inviato ad un indirizzo alias di cui fa parte il mittente",
+        "sieve_preset_header": "Si prega di guardare i settaggi di esempio riportati qui sotto. Per maggiori dettagli, visita <a href=\"https://en.wikipedia.org/wiki/Sieve_(mail_filtering_language)\" target=\"_blank\">Wikipedia</a>.",
+        "sogo_visible": "Alias visibile in SOGo",
+        "sogo_visible_n": "Nascondi alias in SOGo",
+        "sogo_visible_y": "Mostra alias in SOGo",
         "spam_aliases": "Alias temporanei",
+        "stats": "Statistiche",
+        "status": "Stato",
         "sync_jobs": "Processi di sync",
-        "target_address": "Vai ad indirizzo",
-        "target_domain": "Target domain",
+        "table_size": "Dimensioni della tabella",
+        "table_size_show_n": "Mostra %s elementi",
+        "target_address": "Vai agli indirizzi",
+        "target_domain": "Dominio di destinazione",
         "tls_enforce_in": "Imponi TLS in ingresso",
         "tls_enforce_out": "Imponi TLS in uscita",
+        "tls_map_dest": "Destinazione",
+        "tls_map_dest_info": "Esempi: example.org, .example.org, [mail.example.org]:25",
+        "tls_map_parameters": "Parametri",
+        "tls_map_parameters_info": "Vuoto o parametri, ad esempio: protocols=!SSLv2 ciphers=medium exclude=3DES",
+        "tls_map_policy": "Policy",
+        "tls_policy_maps": "Mappa dei criteri TLS",
+        "tls_policy_maps_enforced_tls": "These policies will also override the behaviour for mailbox users that enforce outgoing TLS connections. If no policy exists below, these users will apply the default values specified as <code>smtp_tls_mandatory_protocols</code> and <code>smtp_tls_mandatory_ciphers</code>.",
+        "tls_policy_maps_info": "This policy map overrides outgoing TLS transport rules independently of a user's TLS policy settings.<br>\r\n  Please check <a href=\"http://www.postfix.org/postconf.5.html#smtp_tls_policy_maps\" target=\"_blank\">the \"smtp_tls_policy_maps\" docs</a> for further information.",
+        "tls_policy_maps_long": "Sovrascritture della mappa dei criteri TLS",
         "toggle_all": "Inverti tutti",
-        "username": "Nome utente"
+        "username": "Nome utente",
+        "waiting": "In attesa",
+        "weekly": "Settimanale",
+        "yes": "&#10003;"
+    },
+    "oauth2": {
+        "access_denied": "Effettua il login alla casella di posta per garantire l'accesso tramite OAuth2.",
+        "authorize_app": "Autorizza applicazione",
+        "deny": "Nega",
+        "permit": "Autorizza applicazione",
+        "profile": "Profilo",
+        "profile_desc": "Visualizza le informazioni personali: nome utente, nome e cognome, creazione, modifica, stato attivazione",
+        "scope_ask_permission": "Un'applicazione ha richiesto le seguenti autorizzazioni"
     },
     "quarantine": {
         "action": "Azione",
+        "atts": "Allegati",
+        "check_hash": "Search file hash @ VT",
+        "confirm": "Conferma",
+        "confirm_delete": "Conferma l'eliminazione di questo elemento.",
+        "danger": "Pericolo",
+        "deliver_inbox": "Consegna nella posta in arrivo",
+        "disabled_by_config": "The current system configuration disables the quarantine functionality. Please set \"retentions per mailbox\" and a \"maximum size\" for quarantine elements.",
+        "download_eml": "Download (.eml)",
         "empty": "Nessun risultato",
+        "high_danger": "Alto",
+        "info": "Informazione",
+        "junk_folder": "Cartella SPAM",
+        "learn_spam_delete": "Segnala come spam ed elimina",
+        "low_danger": "Basso",
+        "medium_danger": "Medio",
+        "neutral_danger": "Neutrale",
+        "notified": "Notificato",
+        "qhandler_success": "Richiesta inviata con successo al sistema. Ora puoi chiudere questa finestra.",
+        "qid": "Rspamd QID",
+        "qinfo": "The quarantine system will save rejected mail to the database (the sender will <em>not</em> be given the impression of a delivered mail) as well as mail, that is delivered as copy into the Junk folder of a mailbox.\r\n  <br>\"Learn as spam and delete\" will learn a message as spam via Bayesian theorem and also calculate fuzzy hashes to deny similar messages in the future.\r\n  <br>Please be aware that learning multiple messages can be - depending on your system - time consuming.<br>Blacklisted elements are excluded from the quarantine.",
+        "qitem": "Elemento in quarantena",
+        "quarantine": "Quarantena",
         "quick_actions": "Azione veloce",
+        "quick_delete_link": "Open quick delete link",
+        "quick_info_link": "Open info link",
+        "quick_release_link": "Open quick release link",
+        "rcpt": "Destinatario",
+        "received": "Ricevuto",
+        "recipients": "Destinatari",
+        "refresh": "Aggiorna",
+        "rejected": "Respinto",
+        "release": "Release",
+        "release_body": "Abbiamo allegato il tuo messaggio come file eml a questo messaggio.",
+        "release_subject": "Potentially damaging quarantine item %s",
         "remove": "Elimina",
-        "toggle_all": "Inverti tutti"
+        "rewrite_subject": "Riscrivi oggetto",
+        "rspamd_result": "Risultato Rspamd",
+        "sender": "Mittente (SMTP)",
+        "sender_header": "Mittente (\"From\" header)",
+        "settings_info": "Maximum amount of elements to be quarantined: %s<br>Maximum email size: %s MiB",
+        "show_item": "Mostra elemento",
+        "spam": "Spam",
+        "spam_score": "Punteggio",
+        "subj": "Oggetto",
+        "table_size": "Dimensioni della tabella",
+        "table_size_show_n": "Mostra %s elementi",
+        "text_from_html_content": "Contenuto (convertito in HTML)",
+        "text_plain_content": "Contenuto (text/plain)",
+        "toggle_all": "Inverti tutti",
+        "type": "Tipologia"
     },
     "start": {
         "help": "Mostra/Nascondi pannello di aiuto",
         "imap_smtp_server_auth_info": "Please use your full email address and the PLAIN authentication mechanism.<br />\r\nYour login data will be encrypted by the server-side mandatory encryption.",
         "mailcow_apps_detail": "Usa l'app mailcow per accedere alla posta, calendari, contatti ed altro.",
-        "mailcow_panel_detail": "<b>Amministratori di dominio</b> crea, modifica o cancella caselle e alias, cambia i domini e informazioni relative ai domini associati.<br />\r\n\t<b>Utenti di caselle</b> possono creare degli alias temporanei (spam aliases), cambiare la loro password e le impostazioni relative ai filtri spam."
+        "mailcow_panel_detail": "<b>Amministratori di dominio</b> crea, modifica od elimina caselle ed alias, cambia i domini e informazioni relative ai domini associati.<br />\r\n\t<b>Utenti di caselle</b> possono creare degli alias temporanei (spam aliases), cambiare la loro password e le impostazioni relative ai filtri spam."
     },
     "success": {
-        "admin_modified": "I cambiamenti a administrator è stato salvato",
-        "alias_added": "Alias address/es has/have been added",
+        "acl_saved": "ACL for object %s saved",
+        "admin_added": "L'amministratore %s è stato aggiunto",
+        "admin_api_modified": "Le modifiche alle API sono state salvate",
+        "admin_modified": "I cambiamenti all'amministratore sono stati salvati",
+        "admin_removed": "L'amministratore %s è stato rimosso",
+        "alias_added": "Uno o più alias sono stati correttamente aggiunti",
         "alias_domain_removed": "L'alias di dominio %s è stato rimosso",
-        "alias_modified": "I cambiamenti all'alias/es %s è stato salvato",
+        "alias_modified": "I cambiamenti all'alias %s sono stati salvati",
         "alias_removed": "L'alias %s è stato rimosso",
         "aliasd_added": "Aggiunto l'alias per il dominio %s",
-        "aliasd_modified": "I cambiamenti a alias domain %s è stato salvato",
+        "aliasd_modified": "I cambiamenti all'alias di dominio %s sono stati salvati",
+        "app_links": "Saved changes to app links",
+        "app_passwd_added": "Aggiunta nuova password per l'app",
+        "app_passwd_removed": "Password dell'app con ID %s rimossa",
+        "bcc_deleted": "BCC map entries deleted: %s",
+        "bcc_edited": "BCC map entry %s edited",
+        "bcc_saved": "BCC map entry saved",
+        "db_init_complete": "Inizializzazione del database completata",
+        "delete_filter": "Filtri eliminati - ID %s",
+        "delete_filters": "Filtri eliminati: %s",
+        "deleted_syncjob": "Eliminato syncjob - ID %s",
+        "deleted_syncjobs": "Eliminati syncjobs: %s",
         "dkim_added": "La chiave DKIM è stata salvata",
+        "dkim_duplicated": "La chiave DKIM per il dominio %s è stata copiata in %s",
         "dkim_removed": "La chiave DKIM è stata rimossa",
         "domain_added": "Aggiunto dominio %s",
         "domain_admin_added": "L'amministratore di dominio %s è stato aggiunto",
-        "domain_admin_modified": "I cambiamenti a domain administrator %s è stato salvato",
+        "domain_admin_modified": "I cambiamenti all'amministratore di dominio %s sono stati salvati",
         "domain_admin_removed": "L'amministratore di dominio %s è stato rimosso",
-        "domain_modified": "I cambiamenti a domain %s è stato salvato",
+        "domain_modified": "I cambiamenti al dominio %s sono stati salvati",
         "domain_removed": "Il dominio %s è stato aggiunto",
-        "eas_reset": "Dispositivi ActiveSync dell'utente %s resettati",
+        "dovecot_restart_success": "Dovecot è stato riavviato con successo",
+        "eas_reset": "I dispositivi ActiveSync dell'utente %s sono stati resettati",
+        "f2b_modified": "Le modifiche ai parametri Fail2ban sono state salvate",
         "forwarding_host_added": "Inoltro dell' host %s è stato aggiunto",
         "forwarding_host_removed": "Inoltro dell' host %s è stato rimosso",
+        "global_filter_written": "Il filtro è stato scritto con successo nel file",
+        "hash_deleted": "Hash eliminato",
+        "item_deleted": "Item %s successfully deleted",
+        "item_released": "Item %s released",
+        "items_deleted": "Item %s successfully deleted",
+        "items_released": "Selected items were released",
+        "learned_ham": "Successfully learned ID %s as ham",
+        "license_modified": "Le modifiche alla licenza sono state salvate",
+        "logged_in_as": "Collegato come %s",
         "mailbox_added": "La casella %s è stata aggiunta",
-        "mailbox_modified": "I cambiamenti alla mailbox %s è stato salvato",
+        "mailbox_modified": "Le modifiche alla casella di posta %s sono state salvate",
         "mailbox_removed": "La casella %s è stata rimossa",
-        "object_modified": "I cambiamenti all'oggetto %s è stato salvato",
+        "nginx_reloaded": "Nginx è stato ricaricato",
+        "object_modified": "Le modifiche all'oggetto %s sono state salvate",
+        "password_policy_saved": "Password policy was saved successfully",
+        "pushover_settings_edited": "Pushover settings successfully set, please verify credentials.",
+        "qlearn_spam": "Message ID %s was learned as spam and deleted",
+        "queue_command_success": "Queue command completed successfully",
+        "recipient_map_entry_deleted": "Recipient map ID %s has been deleted",
+        "recipient_map_entry_saved": "Recipient map entry \"%s\" has been saved",
+        "relayhost_added": "Map entry %s has been added",
+        "relayhost_removed": "Map entry %s has been removed",
+        "reset_main_logo": "Ripristina il logo predefinito",
         "resource_added": "La risorsa %s è stata aggiunta",
-        "resource_modified": "I cambiamenti alla mailbox %s è stato salvato",
-        "resource_removed": "La risorsa %s è stata rimossa"
+        "resource_modified": "Le modifiche alla casella di posta %s sono state salvate",
+        "resource_removed": "La risorsa %s è stata rimossa",
+        "rl_saved": "Rate limit for object %s saved",
+        "rspamd_ui_pw_set": "Password dell'interfaccia utente di Rspamd UI impostata con successo",
+        "saved_settings": "Impostazioni salvate",
+        "settings_map_added": "Added settings map entry",
+        "settings_map_removed": "Removed settings map ID %s",
+        "sogo_profile_reset": "Il profilo SOGo dell'utente %s è stato resettato",
+        "tls_policy_map_entry_deleted": "TLS policy map ID %s has been deleted",
+        "tls_policy_map_entry_saved": "TLS policy map entry \"%s\" has been saved",
+        "ui_texts": "Saved changes to UI texts",
+        "upload_success": "File caricato con successo",
+        "verified_fido2_login": "Verified FIDO2 login",
+        "verified_totp_login": "Verified TOTP login",
+        "verified_u2f_login": "Verified U2F login",
+        "verified_yotp_login": "Verified Yubico OTP login",
+        "xmpp_maps_updated": "XMPP maps were updated",
+        "xmpp_reloaded": "Il servizio XMPP è stato ricaricato",
+        "xmpp_restarted": "Il servizio XMPP è stato riavviato"
     },
     "tfa": {
-        "api_register": "%s usa le Api Yubico Cloud. Richiedi una Chiave API <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">qui</a>",
+        "api_register": "%s usa le API Yubico Cloud. Richiedi una chiave API <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">qui</a>",
         "confirm": "Conferma",
         "confirm_totp_token": "Conferma le modifiche inserendo il token generato",
         "delete_tfa": "Disabilita TFA",
         "disable_tfa": "Disabilita TFA fino al prossimo accesso",
         "enter_qr_code": "Il codice TOTP se il tuo dispositivo non è in grado di acquisire i codici QR",
+        "error_code": "Codice di errore",
+        "init_u2f": "Inizializzazione, attendere prego...",
         "key_id": "Identificatore per il tuo YubiKey",
         "key_id_totp": "Identificatore per la tua chiave",
-        "none": "Disattiva",
+        "none": "Disattivato",
+        "reload_retry": "- (ricaricare la pagina se l'errore persiste)",
         "scan_qr_code": "Esegui la scansione del seguente codice con l'applicazione di autenticazione o inserisci manualmente il codice.",
         "select": "Seleziona",
         "set_tfa": "Imposta il metodo di autenticazione a due fattori",
+        "start_u2f_validation": "Avvia convalida",
+        "set_tfa": "Imposta il metodo di autenticazione a due fattori",
         "tfa": "Autenticazione a due fattori",
         "totp": "Time-based OTP (Google Authenticator etc.)",
         "u2f": "Autenticazione U2F",
-        "waiting_usb_auth": "<i>Attendo il device USB...</i><br /><br />Tocca ora il pulsante sul dispositivo U2F USB.",
-        "waiting_usb_register": "<i>Attendo il device USB...</i><br /><br />Inserisci la tua password sopra e conferma la tua registrazione U2F toccando il pulsante del dispositivo U2F USB.",
+        "waiting_usb_auth": "<i>In attesa del device USB...</i><br /><br />Tocca ora il pulsante sul dispositivo U2F USB.",
+        "waiting_usb_register": "<i>In attesa del device USB...</i><br /><br />Inserisci la tua password qui sopra e conferma la tua registrazione U2F toccando il pulsante del dispositivo U2F USB.",
         "yubi_otp": "Autenticazione Yubico OTP"
     },
     "user": {
         "action": "Azione",
         "active": "Attiva",
+        "active_sieve": "Filtro attivo",
+        "advanced_settings": "Impostazioni avanzate",
         "alias": "Alias",
         "alias_create_random": "Genera un alias generico",
         "alias_extend_all": "Estendi la durata di 1 ora agli alias",
@@ -322,36 +1011,101 @@
         "alias_valid_until": "Valido fino a",
         "aliases_also_send_as": "Può inviare come utente",
         "aliases_send_as_all": "Do not check sender access for the following domain(s) and its alias domains",
+        "app_hint": "App passwords are alternative passwords for your <b>IMAP and SMTP</b> login. The username remains unchanged.<br>SOGo (including ActiveSync) is not available through app passwords.",
+        "app_name": "App name",
+        "app_passwds": "App passwords",
+        "apple_connection_profile": "Profilo di connessione Apple",
+        "apple_connection_profile_complete": "This connection profile includes IMAP and SMTP parameters as well as CalDAV (calendars) and CardDAV (contacts) paths for an Apple device.",
+        "apple_connection_profile_mailonly": "This connection profile includes IMAP and SMTP configuration parameters for an Apple device.",
         "change_password": "Cambia password",
+        "clear_recent_successful_connections": "Clear seen successful connections",
+        "client_configuration": "Show configuration guides for email clients and smartphones",
+        "create_app_passwd": "Create app password",
         "create_syncjob": "Crea un azione di sync",
-        "day": "Giorno",
+        "created_on": "Creato il",
+        "daily": "Giornaliero",
+        "day": "giorno",
+        "delete_ays": "Please confirm the deletion process.",
+        "direct_aliases": "Direct alias addresses",
+        "direct_aliases_desc": "Direct alias addresses are affected by spam filter and TLS policy settings.",
         "eas_reset": "Ripristina la cache dei dispositivi ActiveSync",
         "eas_reset_help": "In molti casi un ripristino risolve i problemi di sincronizzazione dei dispositivi.<br /><b>Attenzione:</b> Tutti gli elementi verranno scaricati nuovamente!",
         "eas_reset_now": "Ripristina ora",
         "edit": "Modifica",
+        "email": "E-mail",
+        "email_and_dav": "E-mail, calendari e contatti",
+        "empty": "Nessun risultato",
         "encryption": "Crittografia",
         "excludes": "Esclude",
-        "hour": "Ora",
-        "hours": "Ore",
+        "expire_in": "Scade in",
+        "fido2_webauthn": "FIDO2/WebAuthn",
+        "force_pw_update": "<b>Devi</b> impostare una nuova password per poter accedere ai servizi relativi al groupware.",
+        "from": "Da",
+        "generate": "generato",
+        "hour": "ora",
+        "hourly": "orario",
+        "hours": "ore",
         "in_use": "Utilizzati",
         "interval": "Intervallo",
         "is_catch_all": "Catch-all per il dominio/i",
-        "last_run": "Ultima esecuzione",
+        "last_mail_login": "Ultimo accesso alla casella di posta",
+        "last_pw_change": "Ultima modifica della password",
+		"last_run": "Ultima esecuzione",
+        "last_ui_login": "Ultimo login all'interfaccia utente",
+        "loading": "Caricamento in corso...",
+        "login_history": "Cronologia accessi",
+        "mailbox": "Casella di posta",
         "mailbox_details": "Dettagli casella",
+        "mailbox_general": "Generale",
+        "mailbox_settings": "Impostazioni",
         "messages": "messaggi",
+        "month": "mese",
+        "months": "mesi",
+        "never": "Mai",
         "new_password": "Nuova password",
-        "new_password_description": "Requisiti: Lunghezza di 6 caratteri, lettere e numeri.",
-        "new_password_repeat": "Conferma password (ripeti)",
+        "new_password_repeat": "Conferma password (riscrivi)",
+        "no_active_filter": "No active filter available",
+        "no_last_login": "No last UI login information",
         "no_record": "Nessun elemento",
+        "open_webmail_sso": "Accedi alla webmail",
+        "password": "Password",
         "password_now": "Password attuale (conferma modifiche)",
+        "password_repeat": "Conferma password (riscrivi)",
+        "pushover_evaluate_x_prio": "Escalate high priority mail [<code>X-Priority: 1</code>]",
+        "pushover_info": "Push notification settings will apply to all clean (non-spam) mail delivered to <b>%s</b> including aliases (shared, non-shared, tagged).",
+        "pushover_only_x_prio": "Considera solo la posta ad alta priorità [<code>X-Priority: 1</code>]",
+        "pushover_sender_array": "Consider the following sender email addresses <small>(comma-separated)</small>",
+        "pushover_sender_regex": "Match senders by the following regex",
+        "pushover_text": "Testo di notifica",
+        "pushover_title": "Titolo della notifica",
+        "pushover_vars": "When no sender filter is defined, all mails will be considered.<br>Regex filters as well as exact sender checks can be defined individually and will be considered sequentially. They do not depend on each other.<br>Useable variables for text and title (please take note of data protection policies)",
+        "pushover_verify": "Verifica le credenziali",
+        "q_add_header": "Cartella SPAM",
+        "q_all": "Tutte le categorie",
+        "q_reject": "Respinto",
+        "quarantine_category": "Quarantine notification category",
+        "quarantine_category_info": "La categoria di notifica \"Rifiutata\" include la posta che è stata rifiutata, mentre \"Posta indesiderata\" avviserà l'utente dei messaggi che sono stati spostati nella cartella omonima.",
+        "quarantine_notification": "Notifiche di quarantena",
+        "quarantine_notification_info": "Una volta inviata la notifica, gli elementi saranno contrassegnati come \"notificati\" e non verranno inviate ulteriori notifiche per questo particolare elemento.",
+        "recent_successful_connections": "Seen successful connections",
         "remove": "Elimina",
+        "running": "In esecuzione",
+        "save": "Salva modifiche",
         "save_changes": "Salva modifiche",
+        "sender_acl_disabled": "<span class=\"label label-danger\">Sender check is disabled</span>",
+        "shared_aliases": "Indirizzi alias condivisi",
+        "shared_aliases_desc": "Shared aliases are not affected by user specific settings such as the spam filter or encryption policy. Corresponding spam filters can only be made by an administrator as a domain-wide policy.",
+        "show_sieve_filters": "Show active user sieve filter",
+        "sogo_profile_reset": "Ripristina il profilo SOGo",
+        "sogo_profile_reset_help": "Questo distruggerà il profilo SOGo dell'utente ed <b>eliminerà tutti i contatti e i dati del calendario definitivamente</b>.",
+        "sogo_profile_reset_now": "Ripristina il profilo ora",
         "spam_aliases": "Indirizzi mail temporanei",
+        "spam_score_reset": "Reset to server default",
         "spamfilter": "Filtri spam",
         "spamfilter_behavior": "Punteggio",
         "spamfilter_bl": "Blacklist",
         "spamfilter_bl_desc": "Email inserita nella blacklisted per <b>essere sempre</b> riconosciuta come spam e rifiutata. Si possono usare le wildcards.",
-        "spamfilter_default_score": "Valori di default:",
+        "spamfilter_default_score": "Valori di default",
         "spamfilter_green": "Verde: Questo messaggio non è spam",
         "spamfilter_hint": "Il primo valore rappresenta un \"basso punteggio di spam\", il secondo rappresenta un \"alto punteggio di spam\".",
         "spamfilter_red": "Rosso: uesto messaggio è spam e verrà rifiutato dal server",
@@ -362,22 +1116,43 @@
         "spamfilter_table_remove": "rimuovi",
         "spamfilter_table_rule": "Regola",
         "spamfilter_wl": "Whitelist",
-        "spamfilter_wl_desc": "Email inserita nella whitelist per <b>non essere mai</b> riconosciuta come spam. Si possono usare le wildcards.",
+        "spamfilter_wl_desc": "Email inserita nella whitelist per <b>non essere mai</b> riconosciuta come spam. Si possono usare le wildcards. Un filtro viene applicato solo agli alias diretti (alias con una singola casella postale di destinazione) esclusi gli alias catch-all e la casella postale stessa.",
         "spamfilter_yellow": "Giallo: Questo messaggio può essere spam, verrà segnalato come spam e spostato nella cartella spazzatura",
+        "status": "Stato",
         "sync_jobs": "Processi di sync",
         "tag_handling": "Imposta le gestione della mail evidenziate",
         "tag_help_example": "Esempio di mail con tag: ich<b>+Facebook</b>@example.org",
-        "tag_help_explain": "In sotto cartelle: Una nuova cartella dal nome del tag verrà creata sotto INBOX (\"INBOX/Facebook\").<br />\r\nNell'oggetto: Il nome del tag verrà aggiunto all'inizio dell'oggetto mail, esempio: \"[Facebook] Meine Neuigkeiten\".",
+        "tag_help_explain": "In sottocartelle: Una nuova cartella con il nome del tag verrà creata sotto INBOX (\"INBOX/Facebook\").<br />\r\nNell'oggetto: Il nome del tag verrà aggiunto all'inizio dell'oggetto della mail, esempio: \"[Facebook] Le mie notizie\".",
         "tag_in_none": "Fare niente",
-        "tag_in_subfolder": "Nella sotto cartella",
+        "tag_in_subfolder": "Nella sottocartella",
         "tag_in_subject": "Nell'oggetto",
+        "text": "Testo",
+        "title": "Titolo",
         "tls_enforce_in": "Imponi TLS in ingresso",
         "tls_enforce_out": "Imponi TLS in uscita",
         "tls_policy": "Politica di crittografia",
         "tls_policy_warning": "<strong>Attenzione:</strong> If you decide to enforce encrypted mail transfer, you may lose emails.<br />Messages to not satisfy the policy will be bounced with a hard fail by the mail system.<br />This option applies to your primary email address (login name), all addresses derived from alias domains as well as alias addresses <b>with only this single mailbox</b> as target.",
         "user_settings": "Impostazioni utente",
         "username": "Nome utente",
-        "week": "Settimana",
-        "weeks": "Settimane"
+        "verify": "Verifica",
+        "waiting": "In attesa",
+        "week": "settimana",
+        "weekly": "Settimanale",
+        "weeks": "settimane",
+        "year": "anno",
+        "years": "anni"
+    },
+    "warning": {
+        "cannot_delete_self": "Cannot delete logged in user",
+        "domain_added_sogo_failed": "Il dominio è stato aggiunto ma non è stato possibile riavviare SOGo, controlla i log del tuo server.",
+        "dovecot_restart_failed": "Non è stato possibile riavviare Dovecot, controlla i log del tuo server.",
+        "fuzzy_learn_error": "Fuzzy hash learn error: %s",
+        "hash_not_found": "Hash not found or already deleted",
+        "ip_invalid": "Skipped invalid IP: %s",
+        "is_not_primary_alias": "Skipped non-primary alias %s",
+        "no_active_admin": "Cannot deactivate last active admin",
+        "quota_exceeded_scope": "Domain quota exceeded: Only unlimited mailboxes can be created in this domain scope.",
+        "session_token": "Form token invalid: Token mismatch",
+        "session_ua": "Form token invalid: User-Agent validation error"
     }
-}
\ No newline at end of file
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/lang/lang.ko.json b/mailcow/src/mailcow-dockerized/data/web/lang/lang.ko.json
index 59be683..cdd34b1 100644
--- a/mailcow/src/mailcow-dockerized/data/web/lang/lang.ko.json
+++ b/mailcow/src/mailcow-dockerized/data/web/lang/lang.ko.json
@@ -438,12 +438,12 @@
         "logs": "Logs",
         "restart_container": "Restart",
         "solr_dead": "Solr is starting, disabled or died.",
-        "solr_docs": "Docs",
-        "solr_last_modified": "Last modified",
-        "solr_size": "Size",
-        "solr_started_at": "Started at",
+        "docs": "Docs",
+        "last_modified": "Last modified",
+        "size": "Size",
+        "started_at": "Started at",
         "solr_status": "Solr status",
-        "solr_uptime": "Uptime",
+        "uptime": "Uptime",
         "started_on": "Started on",
         "static_logs": "Static logs",
         "system_containers": "System & Containers"
@@ -534,7 +534,7 @@
         "save": "Save changes",
         "scope": "Scope",
         "sender_acl": "Allow to send as",
-        "sender_acl_disabled": "↳ <span class=\"label label-danger\">Sender check is disabled</span>",
+        "sender_acl_disabled": "<span class=\"label label-danger\">Sender check is disabled</span>",
         "sender_acl_info": "If mailbox user A is allowed to send as mailbox user B, the sender address is not automatically displayed as selectable \"from\" field in SOGo.<br>\r\n  Mailbox user B needs to create a delegation in SOGo to allow mailbox user A to select their address as sender. To delegate a mailbox in SOGo, use the menu (three dots) to the right of your mailbox name in the upper left while in mail view. This behaviour does not apply to alias addresses.",
         "sieve_desc": "Short description",
         "sieve_type": "Filter type",
@@ -696,7 +696,6 @@
         "sieve_preset_7": "Redirect and keep/drop",
         "sieve_preset_8": "Discard message sent to an alias address the sender is part of",
         "sieve_preset_header": "Please see the example presets below. For more details see <a href=\"https://en.wikipedia.org/wiki/Sieve_(mail_filtering_language)\" target=\"_blank\">Wikipedia</a>.",
-        "sogo_allow_admin_hint": "Administrative SOGo logins are only available for mailboxes with an existing SOGo profile. A user must have been logged in to SOGo at least once.",
         "sogo_visible": "Alias is visible in SOGo",
         "sogo_visible_n": "Hide alias in SOGo",
         "sogo_visible_y": "Show alias in SOGo",
diff --git a/mailcow/src/mailcow-dockerized/data/web/lang/lang.lv.json b/mailcow/src/mailcow-dockerized/data/web/lang/lang.lv.json
index 57b6951..c73a185 100644
--- a/mailcow/src/mailcow-dockerized/data/web/lang/lang.lv.json
+++ b/mailcow/src/mailcow-dockerized/data/web/lang/lang.lv.json
@@ -542,4 +542,4 @@
         "week": "Nedēļa",
         "weeks": "Nedēļas"
     }
-}
\ No newline at end of file
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/lang/lang.nl.json b/mailcow/src/mailcow-dockerized/data/web/lang/lang.nl.json
index 053e109..03c55e9 100644
--- a/mailcow/src/mailcow-dockerized/data/web/lang/lang.nl.json
+++ b/mailcow/src/mailcow-dockerized/data/web/lang/lang.nl.json
@@ -26,7 +26,11 @@
         "syncjobs": "Sync jobs",
         "tls_policy": "Versleutelingsbeleid",
         "unlimited_quota": "Onbeperkte quota voor mailboxen",
-        "domain_desc": "Wijzig domeinbeschrijving"
+        "domain_desc": "Wijzig domeinbeschrijving",
+        "xmpp_admin": "Promoveer XMPP-gebruiker tot administrator",
+        "xmpp_domain_access": "Configureer XMPP-domeintoegang",
+        "xmpp_mailbox_access": "Configureer XMPP-gebruikerstoegang",
+        "xmpp_prefix": "Wijzig XMPP subdomein (prefix)"
     },
     "add": {
         "activate_filter_warn": "Alle andere filters worden gedeactiveerd zolang deze geactiveerd is.",
@@ -59,6 +63,12 @@
         "full_name": "Volledige naam",
         "gal": "Globale adreslijst",
         "gal_info": "De globale adreslijst bevat alle objecten van een domein. Deze kunnen door geen enkele gebruiker worden bewerkt. <b>Herstart SOGo om wijzigingen door te voeren.</b>",
+        "xmpp": "Activeer XMPP voor dit domein",
+        "xmpp_info": "Deze optie activeert de chatfunctionaliteit voor dit domein.",
+        "xmpp_access": "XMPP-toegang",
+        "xmpp_access_info": "XMPP dient ingeschakeld te zijn voor dit domein.",
+        "xmpp_admin": "XMPP-administrator",
+        "xmpp_admin_info": "<b>Waarschuwing:</b> Promoveert een gebruiker tot XMPP-administrator van dit domein.",
         "generate": "genereer",
         "goto_ham": "Train als <span class=\"text-success\"><b>ham</b></span>",
         "goto_null": "Verwijder mail onmiddelijk",
@@ -351,6 +361,7 @@
         "global_filter_write_error": "Filter kon niet opgeslagen worden: %s",
         "global_map_invalid": "Globaal filter %s is ongeldig",
         "global_map_write_error": "Globaal filter %s kon niet opgeslagen worden: %s",
+        "xmpp_map_write_error": "XMPP-map kon niet opgeslagen worden: %s",
         "goto_empty": "Een aliasadres dient ten minste één doeladres te hebben",
         "goto_invalid": "Doeladres %s is ongeldig",
         "ham_learn_error": "Ham training-error: %s",
@@ -385,6 +396,7 @@
         "max_quota_in_use": "Mailboxquota dient gelijk te zijn aan, of groter te zijn dan %d MiB",
         "maxquota_empty": "Maximale mailboxquota dient groter dan 0 te zijn.",
         "mysql_error": "MySQL-error: %s",
+        "nginx_reload_failed": "Nginx reload mislukt: %s",
         "network_host_invalid": "Ongeldig netwerk of host: %s",
         "next_hop_interferes": "%s interfereert met nexthop %s",
         "next_hop_interferes_any": "Een bestaande nexthop interfereert met %s",
@@ -435,7 +447,9 @@
         "username_invalid": "Gebruikersnaam %s kan niet worden gebruikt",
         "validity_missing": "Wijs een geldigheidstermijn toe",
         "value_missing": "Niet alle waarden zijn ingevuld",
-        "yotp_verification_failed": "Yubico OTP-verificatie mislukt: %s"
+        "yotp_verification_failed": "Yubico OTP-verificatie mislukt: %s",
+        "xmpp_restart_failed": "XMPP herstart mislukt",
+        "xmpp_reload_failed": "XMPP reload mislukt"
     },
     "debug": {
         "chart_this_server": "Grafiek (deze server)",
@@ -449,20 +463,24 @@
         "logs": "Logs",
         "restart_container": "Herstart",
         "solr_dead": "Solr is uitgeschakeld, uitgevallen of nog bezig met opstarten.",
-        "solr_docs": "Documenten",
-        "solr_last_modified": "Voor het laatst bijgewerkt op",
-        "solr_size": "Grootte",
-        "solr_started_at": "Opgestart op",
-        "solr_status": "Status van Solr",
-        "solr_uptime": "Uptime",
+        "xmpp_dead": "XMPP is uitgeschakeld, uitgevallen of nog bezig met opstarten.",
+        "docs": "Documenten",
+        "last_modified": "Voor het laatst bijgewerkt op",
+        "online_users": "Gebruikers online",
+        "size": "Grootte",
+        "started_at": "Opgestart op",
+        "solr_status": "Solr-status",
+        "uptime": "Uptime",
         "started_on": "Gestart op",
         "static_logs": "Statische logs",
-        "system_containers": "Systeem & containers"
+        "system_containers": "Systeem & containers",
+        "xmpp_status": "XMPP-status"
     },
     "diagnostics": {
         "cname_from_a": "Waarde afgeleid van een A- of AAAA-vermelding.",
         "dns_records": "DNS-configuratie",
         "dns_records_24hours": "Houd er rekening mee dat wijzigingen aan DNS tot wel 24 uur in beslag kunnen nemen voordat ze op deze pagina worden weergegeven. Deze informatie is bedoeld om gemakkelijk te bekijken of de DNS-configuratie aan de eisen voldoet.",
+        "dns_records_docs": "Raadpleeg ook <a target=\"_blank\" href=\"https://mailcow.github.io/mailcow-dockerized-docs/prerequisite-dns/\">de documentatie</a>.",
         "dns_records_data": "Correcte gegevens",
         "dns_records_name": "Naam",
         "dns_records_status": "Huidige staat",
@@ -505,6 +523,17 @@
         "full_name": "Volledige naam",
         "gal": "Globale adreslijst",
         "gal_info": "De globale adreslijst bevat alle objecten van een domein. Deze kunnen door geen enkele gebruiker worden bewerkt. <b>Herstart SOGo om wijzigingen door te voeren.</b>",
+
+        "xmpp": "Activeer XMPP voor dit domein",
+        "xmpp_prefix": "XMPP-prefix (\"im\" om <b>im</b>.example.org te gebruiken)",
+        "xmpp_prefix_info": "Om certificaten voor XMPP aan te vragen, dienen twee CNAME records te verwijzen van <b>im</b>.example.org en <b>*.im</b>.example.org naar <b>%s</b>. Controleer na het inschakelen van XMPP de DNS-configuratie in het Domeinen-overzicht.",
+        "xmpp_info": "Deze optie activeert de chatfunctionaliteit voor dit domein.",
+        "xmpp_access": "XMPP-toegang",
+        "xmpp_access_info": "XMPP dient ingeschakeld te zijn voor dit domein.",
+        "xmpp_admin": "XMPP-administrator",
+        "xmpp_admin_info": "<b>Waarschuwing:</b> Promoveert een gebruiker tot XMPP-administrator van dit domein.",
+        "xmpp_example_jid": "<b>Voorbeeld JID</b> (log in met mailboxwachtwoord)",
+
         "generate": "genereer",
         "grant_types": "Grant types",
         "hostname": "Hostname",
@@ -536,6 +565,7 @@
         "pushover_vars": "Wanneer er geen afzenders zijn uitgesloten zullen alle mails doorkomen.<br>Regex-filters en afzendercontroles kunnen individueel worden ingesteld en zullen in volgorde worden verwerkt. Ze zijn niet afhankelijk van elkaar.<br>Bruikbare variabelen voor tekst en titel (neem het gegevensbeschermingsbeleid in acht)",
         "pushover_verify": "Verifieer aanmeldingsgegevens",
         "quota_mb": "Quota (MiB)",
+        "ratelimit": "Ratelimit",
         "redirect_uri": "Redirect/Callback URL",
         "relay_all": "Forward alle ontvangers",
         "relay_all_info": "↪ Wanneer er wordt gekozen om <b>niet</b> alle ontvangers te forwarden, dient er per ontvanger een lege mailbox aangemaakt te worden.",
@@ -548,7 +578,7 @@
         "save": "Wijzigingen opslaan",
         "scope": "Scope",
         "sender_acl": "Sta toe om te verzenden als",
-        "sender_acl_disabled": "↳ <span class=\"label label-danger\">Verzendcontrole is uitgeschakeld</span>",
+        "sender_acl_disabled": "<span class=\"label label-danger\">Verzendcontrole is uitgeschakeld</span>",
         "sender_acl_info": "Wanneer mailboxgebruiker A toegestaan is te verzenden namens mailboxgebruiker B, zal het verzendadres niet automatisch worden weergegeven in het \"van\"-veld in SOGo. Mailboxgebruiker A dient hiervoor een aparte vermelding te maken in SOGo. Om een mailbox te delegeren in SOGo kan het menu (drie punten) aan de rechterkant van de naam van het mailbox linksboven worden gebruikt in de mailweergave. Dit is niet van toepassing op aliasadressen.",
         "sieve_desc": "Korte beschrijving",
         "sieve_type": "Filtertype",
@@ -558,6 +588,7 @@
         "sogo_visible": "Alias tonen in SOGo",
         "sogo_visible_info": "Wanneer verborgen zal een alias niet worden weergegeven als een selecteerbaar verzendadres. Deze optie beïnvloedt uitsluitend objecten die kunnen worden weergegeven in SOGo (gedeelde of niet-gedeelde aliasadressen die naar minstens één mailbox verwijzen).",
         "spam_alias": "Maak een nieuw tijdelijk alias aan, of pas deze aan",
+        "spam_filter": "Spamfilter",
         "spam_policy": "Voeg items toe of verwijder items van de white- of blacklist",
         "spam_score": "Stel een aangepaste spamscore in",
         "subfolder2": "Synchroniseer in submap op bestemming<br><small>(leeg = gebruik geen submappen)</small>",
@@ -720,7 +751,6 @@
         "sieve_preset_7": "Forward en behoud/verwijder",
         "sieve_preset_8": "Verwijder mail verstuurd naar een aliasadres van de afzender",
         "sieve_preset_header": "Zie de onderstaande voorbeelden. Raadpleeg <a href=\"https://en.wikipedia.org/wiki/Sieve_(mail_filtering_language)\" target=\"_blank\">Wikipedia</a> voor meer informatie.",
-        "sogo_allow_admin_hint": "Administratieve SOGo-logins zijn uitsluitend beschikbaar voor mailboxen met een bestaand SOGo-profiel. Een gebruiker moet zich ten minste één keer aanmelden bij SOGo.",
         "sogo_visible": "Alias tonen in SOGo",
         "sogo_visible_n": "Verberg alias in SOGo",
         "sogo_visible_y": "Toon alias in SOGo",
@@ -766,6 +796,7 @@
         "danger": "Risico",
         "deliver_inbox": "Vrijgeven naar inbox",
         "disabled_by_config": "De huidige systeemconfiguratie deactiveert de quarantainefunctionaliteit. Het instellen van \"Maximale retenties per mailbox\" en \"Maximale grootte\" is vereist om deze functie te activeren.",
+        "settings_info": "Maximaal aantal items in quarantaine: %s<br>Maximale mailgrootte: %s MiB",
         "download_eml": "Download (.eml)",
         "empty": "Geen resultaten",
         "high_danger": "Hoog",
@@ -864,6 +895,7 @@
         "mailbox_added": "Mailbox %s is toegevoegd",
         "mailbox_modified": "Wijzigingen aan mailbox %s zijn opgeslagen",
         "mailbox_removed": "Mailbox %s is verwijderd",
+        "nginx_reloaded": "Nginx is herladen",
         "object_modified": "Wijzigingen aan object %s zijn opgeslagen",
         "pushover_settings_edited": "Pushover-instellingen zijn opgeslagen, verifieer nu de aanmeldingsgegevens.",
         "qlearn_spam": "Bericht %s is als spam gemarkeerd en verwijderd",
@@ -889,7 +921,10 @@
         "verified_totp_login": "TOTP succesvol geverifieerd",
         "verified_u2f_login": "U2F succesvol geverifieerd",
         "verified_fido2_login": "FIDO2 succesvol geverifieerd",
-        "verified_yotp_login": "Yubico OTP succesvol geverifieerd"
+        "verified_yotp_login": "Yubico OTP succesvol geverifieerd",
+        "xmpp_restarted": "XMPP-service is hestart",
+        "xmpp_reloaded": "XMPP-service is herladen",
+        "xmpp_maps_updated": "XMPP-maps zijn bijgewerkt"
     },
     "tfa": {
         "api_register": "%s maakt gebruik van de Yubico Cloud API. Om dit te benutten is er een API-key van Yubico vereist, deze kan <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">hier</a> opgevraagd worden",
@@ -1012,7 +1047,7 @@
         "running": "Wordt uitgevoerd",
         "save": "Sla wijzigingen op",
         "save_changes": "Wijzigingen opslaan",
-        "sender_acl_disabled": "↳ <span class=\"label label-danger\">Verzendcontrole is uitgeschakeld</span>",
+        "sender_acl_disabled": "<span class=\"label label-danger\">Verzendcontrole is uitgeschakeld</span>",
         "shared_aliases": "Gedeelde aliasadressen",
         "shared_aliases_desc": "Een gedeeld aliasadres wordt niet beïnvloed door gebruikersspecifieke instellingen. Een aangepast spamfilter kan eventueel worden ingesteld door een administrator.",
         "show_sieve_filters": "Toon actieve filters",
@@ -1063,7 +1098,7 @@
     "warning": {
         "cannot_delete_self": "Gebruikers kunnen niet worden verwijderd wanneer deze zijn aangemeld",
         "domain_added_sogo_failed": "Domein is toegevoegd, maar de hestart van SOGo mislukte. Controleer de logs.",
-        "dovecot_restart_failed": "De herstart van Dovecot mislukte. Controleer de logs.",
+        "dovecot_restart_failed": "Herstart van Dovecot mislukte. Controleer de logs.",
         "fuzzy_learn_error": "Fuzzy-hash training-error: %s",
         "hash_not_found": "Hash niet gevonden of reeds verwijderd",
         "ip_invalid": "Ongeldig IP-adres overgeslagen: %s",
diff --git a/mailcow/src/mailcow-dockerized/data/web/lang/lang.pl.json b/mailcow/src/mailcow-dockerized/data/web/lang/lang.pl.json
index 1af3d98..6c897a8 100644
--- a/mailcow/src/mailcow-dockerized/data/web/lang/lang.pl.json
+++ b/mailcow/src/mailcow-dockerized/data/web/lang/lang.pl.json
@@ -106,13 +106,13 @@
         "alias_empty": "Alias nie może być pusty",
         "alias_goto_identical": "Alias i Idź do nie mogą być identyczne",
         "alias_invalid": "Alias nieprawidłowy",
-        "aliasd_targetd_identical": "Alias domeny nie może być identyczny z domenš docelową",
+        "aliasd_targetd_identical": "Alias domeny nie może być identyczny z domeną docelową",
         "aliases_in_use": "Maks. liczba aliasów musi być większa od lub równa %d",
         "description_invalid": "Nieprawidłowy opis źródła",
         "dkim_domain_or_sel_invalid": "Nieprawidłowa domena lub selektor DKIM",
         "domain_exists": "Domena %s już istnieje",
         "domain_invalid": "Błędna nazwa domeny",
-        "domain_not_empty": "Nie można usunšć niepustej domeny",
+        "domain_not_empty": "Nie można usunąć niepustej domeny",
         "domain_not_found": "Nie znaleziono domeny %s",
         "domain_quota_m_in_use": "Limit domeny %s MiB",
         "goto_empty": "Adres Idź do nie może być pusty",
@@ -120,15 +120,15 @@
         "is_alias": "%s został już podany jako alias",
         "is_alias_or_mailbox": "%s podano wcześniej jako alias lub skrzynkę",
         "is_spam_alias": "%s podano wcześniej jako alias dla spam",
-        "last_key": "Nie można usunšć ostatniego klucza",
+        "last_key": "Nie można usunąć ostatniego klucza",
         "login_failed": "Niepowodzenie logowania",
         "mailbox_invalid": "Nieprawidłowa nazwa skrzynki",
         "mailbox_quota_exceeded": "Wielkość przekracza limit domeny (maks. %d MiB)",
         "mailbox_quota_exceeds_domain_quota": "Maksymalna wielkość przekracza limit domeny",
         "mailbox_quota_left_exceeded": "Za mało dostępnego miejsca (zostało: %d MiB)",
         "mailboxes_in_use": "Maks. liczba skrzynek musi być większa od lub równa %d",
-        "max_alias_exceeded": "Przekroczono maksymalnš liczbę aliasów",
-        "max_mailbox_exceeded": "Przekroczono maksymalnš liczbę skrzynek (%d z %d)",
+        "max_alias_exceeded": "Przekroczono maksymalną liczbę aliasów",
+        "max_mailbox_exceeded": "Przekroczono maksymalną liczbę skrzynek (%d z %d)",
         "max_quota_in_use": "Limit skrzynki musi być większy od lub równy %d MiB",
         "maxquota_empty": "Maks wielkość. dla skrzynki nie może wynosić 0.",
         "object_exists": "Obiekt %s już istnieje",
@@ -302,7 +302,7 @@
         "domain_admin_removed": "Usunięto administratora domeny %s",
         "domain_modified": "Zapisano zmiany w domenie %s",
         "domain_removed": "Usunięto domenę %s",
-        "eas_reset": "Zresetowano urzšdzenia ActiveSync dla użytkownika %s",
+        "eas_reset": "Zresetowano urządzenia ActiveSync dla użytkownika %s",
         "f2b_modified": "Zmiany w Fail2ban zostały zapisane",
         "forwarding_host_added": "Dodano hosta przekazującego %s",
         "forwarding_host_removed": "Usunięto hosta przekazującego %s",
@@ -424,4 +424,4 @@
         "weekly": "Co tydzień",
         "weeks": "Tygodnie"
     }
-}
\ No newline at end of file
+}
diff --git a/mailcow/src/mailcow-dockerized/data/web/lang/lang.ro.json b/mailcow/src/mailcow-dockerized/data/web/lang/lang.ro.json
index 21af291..80a776c 100644
--- a/mailcow/src/mailcow-dockerized/data/web/lang/lang.ro.json
+++ b/mailcow/src/mailcow-dockerized/data/web/lang/lang.ro.json
@@ -4,10 +4,13 @@
         "app_passwds": "Gestionați parolele aplicației",
         "bcc_maps": "Hărți BCC",
         "delimiter_action": "Acțiune de delimitare",
+        "domain_desc": "Schimbați descrierea domeniului",
+        "domain_relayhost": "Schimbați gazda de transmitere pentru un domeniu",
         "eas_reset": "Resetează dispozitivele EAS",
         "extend_sender_acl": "Permiteți extinderea ACL-ului expeditorului prin adrese externe",
         "filters": "Filtre",
         "login_as": "Conectează-te ca utilizator al cutiei poștale",
+        "mailbox_relayhost": "Schimbați gazda de transmitere pentru un utilizator",
         "prohibited": "Interzis de ACL",
         "protocol_access": "Schimbați protocolul de acces",
         "pushover": "Pushover",
@@ -26,7 +29,10 @@
         "syncjobs": "Lucrări de sincronizare",
         "tls_policy": "Politică TLS",
         "unlimited_quota": "Cota nelimitată pentru cutiile poștale",
-        "domain_desc": "Schimbați descrierea domeniului"
+        "xmpp_admin": "Promovează utilizatorul XMPP ca administrator",
+        "xmpp_domain_access": "Configurează accesul domeniului la XMPP",
+        "xmpp_mailbox_access": "Configurează accesul utilizatorului la XMPP",
+        "xmpp_prefix": "Schimbă subdomeniul (prefixul) pentru XMPP"
     },
     "add": {
         "activate_filter_warn": "Toate celelalte filtre vor fi dezactivate, când este bifată opțiunea activă.",
@@ -59,6 +65,12 @@
         "full_name": "Nume complet",
         "gal": "Lista adreselor globale",
         "gal_info": "GAL conține toate obiectele unui domeniu și nu poate fi editat de niciun utilizator. Informația liber/ocupat din SOGo lipsește dacă este dezactivat! <b>Reporniți SOGo pentru a aplica modificările.</b>",
+        "xmpp": "Activează XMPP pentru acest domeniu",
+        "xmpp_info": "Această funcție va activa mesageria pentru acest domeniu.",
+        "xmpp_access": "Acces XMPP",
+        "xmpp_access_info": "XMPP trebuie să fie activ pentru acest domeniu.",
+        "xmpp_admin": "Administrator XMPP",
+        "xmpp_admin_info": "<b>Atenție:</b> Promovează un utilizator ca administrator XMPP pentru acest domeniu.",
         "generate": "generează",
         "goto_ham": "Învață ca <span class=\"text-success\"><b>ham</b></span>",
         "goto_null": "Aruncă emailul în mod silențios",
@@ -125,6 +137,8 @@
         "admin": "Administrator",
         "admin_details": "Modifică detaliile administratorului",
         "admin_domains": "Sarcini de domenii",
+        "admins": "Administratori",
+        "admins_ldap": "Administratori LDAP",
         "advanced_settings": "Setări avansate",
         "api_allow_from": "Permite accesul API de la aceste adrese IP/CIDR",
         "api_info": "API-ul este în dezvoltare. Documentația se găsește la adresa: <a href=\"/api\">/api</a>",
@@ -199,10 +213,12 @@
         "include_exclude": "Include/Exclude",
         "include_exclude_info": "În mod implicit - fără nici o selecție - <b>toate cutiile poștale</b> sunt adresate",
         "includes": "Include acești destinatari",
+        "is_mx_based": "bazat pe MX",
         "last_applied": "Ultima aplicare",
         "license_info": "O licență nu este necesară, dar ajută la dezvoltarea ulterioară.<br><a href=\"https://www.servercow.de/mailcow?lang=en#sal\" target=\"_blank\" alt=\"Comandă SAL\">Înregistrează GUID aici</a> sau <a href=\"https://www.servercow.de/mailcow?lang=en#support\" target=\"_blank\" alt=\"Comandă suport\">cumpără asistență pentru instalarea platformei.</a>",
         "link": "Link",
         "loading": "Se încarcă...",
+        "login_time": "Moment autentificare",
         "logo_info": "Imaginea ta va fi scalată la o înălțime de 40px pentru bara de navigare de sus și o lățime maximă de 250px pentru pagina de pornire. O grafică scalabilă este foarte recomandată.",
         "lookup_mx": "Potriviți destinația cu MX (.outlook.com pentru a direcționa toate mesajele țintite către un MX * .outlook.com peste acest salt)",
         "main_name": "Nume \"mailcow UI\"",
@@ -222,6 +238,13 @@
         "oauth2_revoke_tokens": "Revocă toate jetoanele clientului",
         "optional": "optional",
         "password": "Parolă",
+        "password_length": "Lungime parolă",
+        "password_policy": "Politica pentru parole",
+        "password_policy_chars": "Trebuie să conțină cel puțin un caracter alfabetic",
+        "password_policy_length": "Lungimea minimă a parolei este %d",
+        "password_policy_numbers": "Trebuie să conțină cel puțin o cifră",
+        "password_policy_lowerupper": "Trebuie să conțină și litere mari și litere mici",
+        "password_policy_special_chars": "Trebuie să conțină caractere speciale",
         "password_repeat": "Parola de confirmare (repetă)",
         "priority": "Prioritate",
         "private_key": "Cheie privată",
@@ -261,6 +284,7 @@
         "regen_api_key": "Regenerează cheia API",
         "regex_maps": "Hărți regex",
         "relay_from": "Adresă \"De la:\"",
+        "relay_rcpt": "Adresă \"Către:\"",
         "relay_run": "Execută test",
         "relayhosts": "Transport dependent de expeditor",
         "relayhosts_hint": "Definește transporturile dependente de expeditor pentru a le putea selecta într-un dialog de configurare a domeniilor.<br>\n  Serviciul de transport este întotdeauna \"smtp:\". Este luată în considerare o setare individuală a politicii TLS de ieșire a utilizatorilor.",
@@ -278,6 +302,7 @@
         "rsettings_preset_1": "Dezactivați tot în afară de DKIM și limita de rată pentru utilizatorii autentificați",
         "rsettings_preset_2": "Postmasterii doresc spam",
         "rsettings_preset_3": "Permiteți numai expeditori specifici pentru o căsuță poștală (ex: utilizare numai ca adresa de email internă)",
+        "rsettings_preset_4": "Dezactivați Rspamd pentru domeniu",
         "rspamd-com_settings": "<a href=\"https://rspamd.com/doc/configuration/settings.html#settings-structure\" target=\"_blank\">Documente Rspamd</a>\n  - Un nume de setare va fi generat automat, te rog să consulți presetările exemplu de mai jos.",
         "rspamd_global_filters": "Hărți cu filtru global",
         "rspamd_global_filters_agree": "Voi fi atent!",
@@ -289,10 +314,12 @@
         "search_domain_da": "Caută domenii",
         "send": "Trimite",
         "sender": "Expeditor",
+        "service": "Serviciu",
         "service_id": "ID serviciu",
         "source": "Sursă",
         "spamfilter": "Filtru de spam",
         "subject": "Subiect",
+        "success": "Succes",
         "sys_mails": "Mailuri sistem",
         "text": "Text",
         "time": "Timp",
@@ -302,6 +329,7 @@
         "transport_dest_format": "Sintaxa: exemplu.org, .example.org, *, box@example.org (mai multe valori pot fi separate prin virgulă)",
         "transport_maps": "Hărți de transport",
         "transports_hint": "→ O intrare a hărții de transport <b>suprascrie</b> o hartă de transport dependentă de expeditor</b>.<br>\n→ Setările pentru politica TLS de ieșire per-utilizator sunt ignorate și pot fi impuse numai prin intrările hărții politicii TLS.<br>\n→ Serviciul de transport pentru transporturi definite este întotdeauna \"smtp:\".<br>\n→ Adresele care se potrivesc cu \"/localhost$/\" vor fi întotdeauna transportate prin \"local:\", prin urmare, o destinație \"*\" nu se va aplica acelor adrese.<br>\n→ Pentru a determina datele de identificare pentru un hop următor \"[host]:25\", Postfix <b>întotdeauna</b> interoghează pentru \"host\" înainte de a căuta \"[host]:25\". Acest comportament face imposibilă folosirea în același timp a \"host\" și \"[host]:25\".",
+        "transport_test_rcpt_info": "→ Utilizează null@hosted.mailcow.de pentru a testa retransmisia către o destinație străină.",
         "ui_footer": "Subsol (HTML permis)",
         "ui_header_announcement": "Anunțuri",
         "ui_header_announcement_active": "Setează activ anunțul",
@@ -353,6 +381,7 @@
         "global_filter_write_error": "Nu se poate scrie fișier filtru: %s",
         "global_map_invalid": "ID hartă globală %s invalid",
         "global_map_write_error": "Nu se poate scrie ID hartă globală %s: %s",
+        "xmpp_map_write_error": "Harta XMPP nu poate fi scrisă: %s",
         "goto_empty": "Adresa goto nu trebuie să fie goală",
         "goto_invalid": "Adresa goto %s este invalidă",
         "ham_learn_error": "Eroare de învățare Ham: %s",
@@ -387,6 +416,7 @@
         "max_quota_in_use": "Cota cutiilor poștale trebuie să fie mai mare sau egală cu %d MiB",
         "maxquota_empty": "Cota maximă pentru cutia poștală nu trebuie să fie 0.",
         "mysql_error": "Eroare MySQL: %s",
+        "nginx_reload_failed": "Reîncărcarea Nginx eșuată: %s",
         "network_host_invalid": "Rețea sau gazdă invalidă: %s",
         "next_hop_interferes": "%s interferează cu următorul hop %s",
         "next_hop_interferes_any": "Un hop următor existent interferează cu %s",
@@ -437,34 +467,44 @@
         "username_invalid": "Numele de utilizator %s nu poate fi utilizat",
         "validity_missing": "Atribuie o perioadă de valabilitate",
         "value_missing": "Furnizează toate valorile",
-        "yotp_verification_failed": "Verificarea Yubico OTP a eșuat: %s"
+        "yotp_verification_failed": "Verificarea Yubico OTP a eșuat: %s",
+        "xmpp_restart_failed": "XMPP nu a putut fi repornit",
+        "xmpp_reload_failed": "XMPP nu a putut fi reîncărcat"
     },
     "debug": {
         "chart_this_server": "Grafic (acest server)",
         "containers_info": "Informaţii container",
         "disk_usage": "Utilizare disc",
+        "docs": "Documente",
         "external_logs": "Jurnale externe",
         "history_all_servers": "Istoric (toate serverele)",
         "in_memory_logs": "Jurnale din memorie",
         "jvm_memory_solr": "Memorie utilizată de JVM",
+        "last_modified": "Ultima modificare",
         "log_info": "<p><b>jurnalele din memorie</b> pentru mailcow sunt colectate în listele Redis și trimise la LOG_LINES (%d) în fiecare minut pentru a reduce ciocnirea.\n  <br>Jurnalele din memorie nu sunt menite a fi persistente. Toate aplicațiile care înregistrează jurnale în memorie, înregistrează de asemenea jurnale în daemonul Docker și, prin urmare, în driverul de jurnale implicit.\n  <br>Tipul de jurnal din memorie trebuie utilizat pentru depanarea problemelor minore cu containerele.</p>\n  <p><b>Jurnalele externe</b> sunt colectate prin API-ul aplicației respective.</p>\n  <p><b>Jurnalele statice</b> sunt, în majoritate, jurnale de activitate care nu sunt înregistrate în Docker, dar trebuie să fie persistente (cu excepția jurnalelor API).</p>",
+        "login_time": "Moment",
         "logs": "Jurnale",
+        "online_users": "Utilizatori online",
         "restart_container": "Repornire",
+        "service": "Serviciu",
+        "size": "Mărime",
         "solr_dead": "Solr începe, este invalid sau s-a oprit.",
-        "solr_docs": "Documente",
-        "solr_last_modified": "Ultima modificare",
-        "solr_size": "Mărime",
-        "solr_started_at": "Pornit la",
         "solr_status": "Stare Solr",
-        "solr_uptime": "Timp de funcționare",
+        "started_at": "Pornit la",
         "started_on": "Început pe",
         "static_logs": "Jurnale statice",
-        "system_containers": "Sistem și Containere"
+        "success": "Succes",
+        "system_containers": "Sistem și Containere",
+        "uptime": "Timp de funcționare",
+        "username": "Utilizator",
+        "xmpp_dead": "XMPP pornește, este dezactivat sau nefuncțional.",
+        "xmpp_status": "Stare XMPP"
     },
     "diagnostics": {
         "cname_from_a": "Valoare derivată din înregistrarea A/AAAA. Acest lucru este acceptat atâta timp cât înregistrarea indică resursele corecte.",
         "dns_records": "Înregistrări DNS",
         "dns_records_24hours": "Rețineți că modificările aduse DNS-ului pot dura până la 24 de ore pentru a reflecta corect starea lor curentă pe această pagină. Acest mecanism este conceput ca o modalitate să vezi ușor cum să îți configurezi înregistrările DNS și să verifici dacă toate înregistrările sunt stocate corect în DNS.",
+        "dns_records_docs": "Vă rugăm să consultați și <a target=\"_blank\" href=\"https://mailcow.github.io/mailcow-dockerized-docs/prerequisite-dns/\">documentația</a>.",
         "dns_records_data": "Date corecte",
         "dns_records_name": "Nume",
         "dns_records_status": "Stare curentă",
@@ -473,6 +513,7 @@
     },
     "edit": {
         "active": "Activ",
+        "admin": "Editează administrator",
         "advanced_settings": "Setări avansate",
         "alias": "Editează alias",
         "allow_from_smtp": "Permiteți acestor adrese IP să utilizeze numai <b>SMTP</b>",
@@ -507,13 +548,24 @@
         "full_name": "Nume complet",
         "gal": "Listă globală de adrese",
         "gal_info": "GAL-ul conține toate obiectele dintr-un domeniu și nu poate fi editată de nici un utilizator. <b>Repornește SOGo pentru a aplica modificările.</b>",
+        "xmpp": "Activează XMPP pentru acest domeniu",
+        "xmpp_prefix": "Prefixul XMPP pentru domeniu (\"im\" pentru <b>im</b>.example.org)",
+        "xmpp_prefix_info": "Pentru a solicita certificate pentru XMPP, două înregistrări DNS CNAME ar trebui să trimită de la <b>im</b>.example.org precum și <b>*.im</b>.example.org la <b>%s</b>. De asemenea, rulați verificarea DNS pentru acest domeniu după activarea XMPP.",
+        "xmpp_info": "Această funcție va activa mesageria pentru acest domeniu.",
+        "xmpp_access": "Acces XMPP",
+        "xmpp_access_info": "XMPP trebuie să fie activ pentru acest domeniu.",
+        "xmpp_admin": "Administrator XMPP",
+        "xmpp_admin_info": "<b>Atenție:</b> Promovează un utilizator ca administrator XMPP pentru acest domeniu.",
+        "xmpp_example_jid": "<b>Exemplu JID</b> (autentificare cu parolă email)",
         "generate": "Generează",
         "grant_types": "Tipuri de subvenții",
         "hostname": "Nume gazdă",
         "inactive": "Inactiv",
         "kind": "Fel",
+        "lookup_mx": "Destinația este o expresie regulată care potrivită cu numele MX (<code>.*google\\.com</code> pentru a direcționa toate e-mailurile vizate către un MX care se termină în google.com peste acest hop)",
         "mailbox": "Editează căsuța poștală",
         "mailbox_quota_def": "Cota implicită a căsuței poștale",
+        "mailbox_relayhost_info": "Aplicat numai căsuței poștale și aliasurilor directe, suprascrie un transport dependent de domeniu.",
         "max_aliases": "Număr maxim de aliasuri",
         "max_mailboxes": "Număr maxim de cutii poștale",
         "max_quota": "Cotă maximă pentru cutia poștală (MiB)",
@@ -538,6 +590,9 @@
         "pushover_vars": "Când nu este definit niciun filtru pentru expeditor, toate mailurile vor fi luate în considerare. <br> Filtrele regex, precum și verificările exacte ale expeditorului pot fi definite individual și vor fi luate în considerare secvențial. Ele nu depind unul de celălalt. <br> Variabile utilizabile pentru text și titlu (vă rugăm să luați nota de politicile de protecție a datelor)",
         "pushover_verify": "Verifică credențialele",
         "quota_mb": "Cotă (MiB)",
+        "quota_warning_bcc": "Avertizare cotă BCC",
+        "quota_warning_bcc_info": "Avertismentele vor fi trimise sub formă de copii separate către următorii destinatari. Subiectul va fi completat de numele de utilizator corespunzător între paranteze, de exemplu: <code>Avertisment privind cota (utilizator@example.com)</code>.",
+        "ratelimit": "Limită pentru rata de trimitere",
         "redirect_uri": "Adresă URL de redirecționare/inversare",
         "relay_all": "Retransmite toți destinatarii",
         "relay_all_info": "↪ Dacă alegi să <b>nu</b> retransmiți toți destinatarii, va trebui să adaugi o cutie poștală (\"oarbă\") pentru fiecare destinatar care trebuie retransmis.",
@@ -550,7 +605,7 @@
         "save": "Salvează modificările",
         "scope": "Scop",
         "sender_acl": "Permite trimiterea ca",
-        "sender_acl_disabled": "↳ <span class=\"label label-danger\">Verificarea expeditorului este dezactivată</span>",
+        "sender_acl_disabled": "<span class=\"label label-danger\">Verificarea expeditorului este dezactivată</span>",
         "sender_acl_info": "Dacă utilizatorului A de căsuță poștală îi este permis să trimită ca utilizatorul B, adresa expeditorului nu este afișată automat ca fiind câmp selectabil \"de la\" în SOGo.<br>\r\n  Utilizatorul căsuței poștale B trebuie să creeze o delegație în SOGo pentru a permite utilizatorul cutiei poștale A să selecteze adresa ca expeditor. Pentru a delega o cutie poștală în SOGo, utilizați meniul (trei puncte) din dreapta numelui căsuței poștale în stânga sus, în timp ce vă aflați în vizualizarea e-mailului. Acest comportament nu se aplică adreselor alias.",
         "sieve_desc": "Descriere scurtă",
         "sieve_type": "Tip filtru",
@@ -560,6 +615,7 @@
         "sogo_visible": "Aliasul este vizibil în SOGo",
         "sogo_visible_info": "Această opțiune afectează doar obiecte, care pot fi afișate în SOGo (adrese alias partajate sau ne-partajate cu cel puțin o căsuță poștală locală). Dacă este ascuns, un alias nu va apărea ca expeditor selectabil în SOGo.",
         "spam_alias": "Crează sau modifică adrese alias limitate în funcție de timp",
+        "spam_filter": "Filtru spam",
         "spam_policy": "Adaugă sau elimină elemente în lista albă/neagră",
         "spam_score": "Stabilește un scor de spam personalizat",
         "subfolder2": "Sincronizează în subfolderul destinației<br><small>(gol = nu se utilizează subfolderul)</small>",
@@ -578,9 +634,11 @@
         "confirm_delete": "Confirmă ștergerea",
         "delete_now": "Șterge acum",
         "delete_these_items": "Confirmă modificările aduse următorului id de obiect:",
+        "hibp_check": "Verificare prin haveibeenpwned.com",
         "hibp_nok": "Potrivire! Aceasta este o parolă potențial periculoasă!",
         "hibp_ok": "Nu s-a găsit niciun rezultat.",
         "loading": "Te rog așteaptă...",
+        "nothing_selected": "Nicio selecție",
         "restart_container": "Repornire container",
         "restart_container_info": "<b>Important:</b> O repornire elegantă poate dura ceva timp până la finalizare, așteaptă să termine.",
         "restart_now": "Repornire acum",
@@ -617,6 +675,7 @@
         "active": "Activ",
         "add": "Adaugă",
         "add_alias": "Adaugă alias",
+        "add_alias_expand": "Extinde aliasul ca domeniu alias",
         "add_bcc_entry": "Adaugă hartă BCC",
         "add_domain": "Adaugă domeniu",
         "add_domain_alias": "Adaugă un domeniu alias",
@@ -677,6 +736,7 @@
         "insert_preset": "Inserați un exemplu presetat \"%s\"",
         "kind": "Fel",
         "last_mail_login": "Ultima autentificare pe mail",
+        "last_pw_change": "Ultima modificare a parolei",
         "last_run": "Ultima rulare",
         "last_run_reset": "Programează următorul",
         "mailbox": "Cutie poștală",
@@ -692,6 +752,7 @@
         "no": "&#10005;",
         "no_record": "Nu există înregistrări pentru obiectul %s",
         "no_record_single": "Nici o înregistrare",
+        "open_logs": "Deschide jurnalele",
         "owner": "Proprietar",
         "private_comment": "Comentariu privat",
         "public_comment": "Comentariu public",
@@ -723,7 +784,6 @@
         "sieve_preset_7": "Redirecționează și păstrează/aruncă",
         "sieve_preset_8": "Renunțați la mesajul trimis la o adresă alias din care face parte expeditorul",
         "sieve_preset_header": "Vedeți exemplul de presetări de mai jos. Pentru mai multe detalii accesați <a href=\"https://en.wikipedia.org/wiki/Sieve_(mail_filtering_language)\" target=\"_blank\">Wikipedia</a>.",
-        "sogo_allow_admin_hint": "Conectările SOGo administrative sunt disponibile numai pentru căsuțele poștale cu un profil SOGo existent. Un utilizator trebuie să se fi fost conectat la SOGo cel puțin o dată.",
         "sogo_visible": "Aliasul este vizibil în SOGo",
         "sogo_visible_n": "Ascunde alias în SOGo",
         "sogo_visible_y": "Afișază alias în SOGo",
@@ -770,6 +830,7 @@
         "danger": "Pericol",
         "deliver_inbox": "Livrați în căsuța de e-mail",
         "disabled_by_config": "Configurația actuală a sistemului dezactivează funcția de carantină.",
+        "settings_info": "Numărul maxim de elemente în carantină: %s<br>Mărime maximă email: %s MiB",
         "download_eml": "Descarcă (.eml)",
         "empty": "Nici un rezultat",
         "high_danger": "Ridicat",
@@ -868,10 +929,12 @@
         "mailbox_added": "Cutia poștală %s a fost adăugată",
         "mailbox_modified": "Modificările cutiei poștale %s au fost salvate",
         "mailbox_removed": "Cutia poștală %s a fost eliminată",
+        "nginx_reloaded": "Nginx a fost reîncărcat",
         "object_modified": "Modificările obiectului %s au fost salvate",
         "pushover_settings_edited": "Setările pushover au fost setate cu succes, vă rugăm să verificați credențialele.",
         "qlearn_spam": "ID-ul mesajului %s a fost învățat ca spam și a fost șters",
         "queue_command_success": "Șirul de comenzi a fost terminat cu succes",
+        "password_policy_saved": "Politica pentru parole a fost salvată cu success",
         "recipient_map_entry_deleted": "ID-ul hărții destinatarului %s a fost șters",
         "recipient_map_entry_saved": "Intrarea hărții destinatarului \"%s\" a fost salvată",
         "relayhost_added": "Înregistrarea pentru hartă %s a fost adăugată",
@@ -893,7 +956,10 @@
         "verified_totp_login": "Autentificarea TOTP verificată",
         "verified_u2f_login": "Autentificarea U2F verificată",
         "verified_fido2_login": "Conectare FIDO2 verificată",
-        "verified_yotp_login": "Autentificarea Yubico OTP verificată"
+        "verified_yotp_login": "Autentificarea Yubico OTP verificată",
+        "xmpp_restarted": "Serviciul XMPP a fost repornit",
+        "xmpp_reloaded": "Serviciul XMPP a fost reîncărcat",
+        "xmpp_maps_updated": "Hărțile serviciului XMPP au fost actualizate"
     },
     "tfa": {
         "api_register": "%s utilizează API-ul Yubico Cloud. Obțineți o cheie API pentru cheia dvs. de <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">aici</a>",
@@ -956,9 +1022,11 @@
         "apple_connection_profile_complete": "Acest profil de conexiune include parametrii IMAP și SMTP, precum și calDAV (calendar) și carduri CardDAV (contacte) pentru dispozitivele Apple.",
         "apple_connection_profile_mailonly": "Acest profil de conexiune include parametrii de configurare IMAP și SMTP pentru dispozitivele Apple.",
         "change_password": "Schimbă parola",
+        "clear_recent_successful_connections": "Ștergeți conexiunile reușite văzute",
         "client_configuration": "Afișează ghidurile de configurare pentru clienții de email și smartphone-uri",
         "create_app_passwd": "Crează parola aplicației",
         "create_syncjob": "Crează o nouă lucrare de sincronizare",
+        "created_on": "Creat în",
         "daily": "Zilnic",
         "day": "zi",
         "delete_ays": "Vă rugăm să confirmați stergerea.",
@@ -970,10 +1038,13 @@
         "edit": "Editează",
         "email": "Email",
         "email_and_dav": "Email, calendar și contacte",
+        "empty": "Niciun rezultat",
         "encryption": "Criptare",
         "excludes": "Exclude",
         "expire_in": "Expiră în",
+        "fido2_webauthn": "FIDO2/AutWeb",
         "force_pw_update": "<b>Trebuie</b> să setezi o nouă parolă pentru a putea accesa serviciile legate de grupuri.",
+        "from": "de la",
         "generate": "generează",
         "hour": "oră",
         "hourly": "Din oră în oră",
@@ -982,17 +1053,26 @@
         "interval": "Interval",
         "is_catch_all": "Catch-all pentru domeniu/i",
         "last_mail_login": "Ultima autentificare pe mail",
+        "last_pw_change": "Ultima modificare a parolei",
         "last_run": "Ultima rulare",
+        "last_ui_login": "Ultima autentificare UI",
         "loading": "Se încarcă...",
+        "login_history": "Istoric autentificare",
+        "mailbox": "Mailbox",
         "mailbox_details": "Informații cutie poștală",
+        "mailbox_general": "Generale",
+        "mailbox_settings": "Setări",
         "messages": "mesaje",
+        "month": "lună",
+        "months": "luni",
         "never": "Niciodată",
         "new_password": "Parolă nouă",
-        "new_password_description": "Cerință: 6 caractere lungime, litere și numere.",
         "new_password_repeat": "Parola de confirmare (repetă)",
         "no_active_filter": "Nu este disponibil niciun filtru activ",
         "no_last_login": "Nu există informații despre ultima autentificare în interfață",
         "no_record": "Nici o înregistrare",
+        "open_logs": "Deschide jurnalele",
+        "open_webmail_sso": "Autentificare în webmail",
         "password": "Parolă",
         "password_now": "Parola curentă (confirmă modificările)",
         "password_repeat": "Parolă (repetă)",
@@ -1012,6 +1092,7 @@
         "quarantine_category": "Schimbați categoria notificărilor despre carantină",
         "quarantine_notification_info": "Odată ce o notificare a fost trimisă, elementele vor fi marcate ca fiind \"notificate\" și nu vor fi trimise alte notificări pentru acest articol.",
         "quarantine_category_info": "Categoria de notificări \"Respins\" include e-mailurile care au fost respinse, în timp ce \"Dosarul nedorit\" va notifica un utilizator despre mesajele care au fost introduse în dosarul nedorit.",
+        "recent_successful_connections": "Conexiuni reușite văzute",
         "remove": "Șterge",
         "running": "Funcţionare",
         "save": "Salvează modificările",
@@ -1062,7 +1143,9 @@
         "waiting": "Aşteptare",
         "week": "săptămână",
         "weekly": "Săptămânal",
-        "weeks": "săptămâni"
+        "weeks": "săptămâni",
+        "year": "an",
+        "years": "ani"
     },
     "warning": {
         "cannot_delete_self": "Nu se poate șterge utilizatorul conectat",
@@ -1071,6 +1154,7 @@
         "fuzzy_learn_error": "Eroare de învățare fuzzy hash: %s",
         "hash_not_found": "Hash-ul nu a fost găsit",
         "ip_invalid": "S-a ignorat adresa IP invalidă: %s",
+        "is_not_primary_alias": "Alias non-primary omis %s",
         "no_active_admin": "Nu se poate dezactiva ultimul administrator activ",
         "quota_exceeded_scope": "Cota de spațiu a domeniului depășită: Numai căsuțe poștale nelimitate pot fi create pe acest domeniu.",
         "session_token": "Token formular invalid: Nepotrivire token",
diff --git a/mailcow/src/mailcow-dockerized/data/web/lang/lang.ru.json b/mailcow/src/mailcow-dockerized/data/web/lang/lang.ru.json
index 3eba344..f24ae35 100644
--- a/mailcow/src/mailcow-dockerized/data/web/lang/lang.ru.json
+++ b/mailcow/src/mailcow-dockerized/data/web/lang/lang.ru.json
@@ -26,7 +26,11 @@
         "syncjobs": "Задания синхронизации",
         "tls_policy": "Политика шифрования",
         "unlimited_quota": "Неограниченная квота для почтовых ящиков",
-        "domain_desc": "Изменение описания домена"
+        "domain_desc": "Изменение описания домена",
+        "xmpp_admin": "Повышение пользователя XMPP до администратора",
+        "xmpp_domain_access": "Настройка доступа XMPP для домена",
+        "xmpp_mailbox_access": "Настройка доступа XMPP для пользователей",
+        "xmpp_prefix": "Измение субдомена (префикса) XMPP"
     },
     "add": {
         "activate_filter_warn": "Активация этого фильтра отключит все остальные фильтры этого типа.",
@@ -35,14 +39,14 @@
         "add_domain_only": "Только добавить домен",
         "add_domain_restart": "Добавить домен и перезапустить SOGo",
         "alias_address": "Псевдоним/ы",
-        "alias_address_info": "<small>Укажите почтовые адреса разделенные запятыми или, если хотите пересылать все сообщения для домена владельцам псевонима то: <code>@example.com</code>. <b>Только домены mailcow разрешены</b>.</small>",
+        "alias_address_info": "<small>Укажите почтовые адреса разделенные запятыми или, если хотите пересылать все сообщения для домена владельцам псевдонима то: <code>@example.com</code>. <b>Только домены mailcow разрешены</b>.</small>",
         "alias_domain": "Псевдоним домена",
-        "alias_domain_info": "<small>Действительные имена доменов, разделенные запятыми.</small>",
+        "alias_domain_info": "<small>Действительные имена доменов, раздёленные запятыми.</small>",
         "app_name": "Название приложения",
         "app_password": "Добавить пароль приложения",
         "automap": "Автоматическое слияние папок (\"Sent items\", \"Sent\" => \"Sent\" etc.)",
         "backup_mx_options": "Параметры резервного MX",
-        "comment_info": "Приватный комментарий не виден пользователям, а публичный - отображается рядом с певдонимом в личном кабинете пользователя.",
+        "comment_info": "Приватный комментарий не виден пользователям, а публичный - отображается рядом с псевдонимом в личном кабинете пользователя.",
         "custom_params": "Пользовательские параметры",
         "custom_params_hint": "Верно: --param=xy, не верно: --param xy",
         "delete1": "Удаление из источника после завершения",
@@ -50,7 +54,7 @@
         "delete2duplicates": "Удаление дубликатов по назначению",
         "description": "Описание",
         "destination": "Назначение",
-        "disable_login": "Вход в систему запрещен",
+        "disable_login": "Вход в систему запрещён",
         "domain": "Домен",
         "domain_matches_hostname": "Домен %s соответствует имени хоста",
         "domain_quota_m": "Квота домена (MiB)",
@@ -59,9 +63,15 @@
         "full_name": "Полное имя",
         "gal": "GAL - Глобальная адресная книга",
         "gal_info": "GAL содержит все объекты домена и не подлежит редактированию. Информация о занятости в SOGo будет отсутствовать для домена, если эта функция не будет включена! <b>Требуется перезапустить SOGo, чтобы изменения применились.</b>",
+        "xmpp": "Активировать XMPP для этого домена",
+        "xmpp_info": "Эта опция добавит функциональность чата для этого домена.",
+        "xmpp_access": "Пользователь XMPP",
+        "xmpp_access_info": "XMPP должен быть включен для этого домена.",
+        "xmpp_admin": "Администратор XMPP",
+        "xmpp_admin_info": "Повысить пользователя XMPP до <span class=\"text-danger\">администратора домена</span>.",
         "generate": "сгенерировать",
-        "goto_ham": "Запомнить как <span class=\"text-success\"><b>хам</b></span>",
-        "goto_null": "Отключить входящюю почту",
+        "goto_ham": "Запомнить как <span class=\"text-success\"><b>&laquo;ham&raquo;</b></span>",
+        "goto_null": "Отключить входящую почту",
         "goto_spam": "Запомнить как <span class=\"text-danger\"><b>спам</b></span>",
         "hostname": "Имя хоста",
         "inactive": "Неактивный",
@@ -94,7 +104,7 @@
         "skipcrossduplicates": "Пропускать повторяющиеся сообщения в папках",
         "subscribeall": "Подписаться на все папки и подпапки",
         "syncjob": "Добавить задание синхронизации",
-        "syncjob_hint": "К сведению: пароли к вашему аккаунту бытут сохранены на сервере в виде простого текста!",
+        "syncjob_hint": "К сведению: пароли к вашему аккаунту будут сохранены на сервере в виде простого текста!",
         "target_address": "Владельцы псевдонима",
         "target_address_info": "<small>Адреса почтовых ящиков, разделенные запятыми.</small>",
         "target_domain": "Целевой домен",
@@ -123,6 +133,8 @@
         "add_transports_hint": "Пожалуйста имейте в виду, что данные для аутентификации будут храниться в виде обычного текста.",
         "additional_rows": " добавлены дополнительные строки",
         "admin": "Администратор",
+        "admins": "Администраторы",
+        "admins_ldap": "LDAP Администраторы",
         "admin_details": "Изменить данные администратора",
         "admin_domains": "Домен назначения",
         "advanced_settings": "Расширенные настройки",
@@ -136,7 +148,7 @@
         "arrival_time": "Время получения (час.пояс сервера)",
         "authed_user": "Автор. польз.",
         "ays": "Вы уверены что хотите продолжить?",
-        "ban_list_info": "Список забаненных IP адресов: <b>подсеть (оставшееся время бана) - [действие]</b>.<br />IP-адреса, находящиеся в очереди на разблокирование, будут удалены из списка активных банов в течение нескольких секунд.<br />Красная метка обозначает что подсеть/хост находится в черном списоке.",
+        "ban_list_info": "Список забаненных IP адресов: <b>подсеть (оставшееся время бана) - [действие]</b>.<br />IP-адреса, находящиеся в очереди на разблокирование, будут удалены из списка активных банов в течение нескольких секунд.<br />Красная метка обозначает что подсеть/хост находится в черном списке.",
         "change_logo": "Изменить логотип",
         "configuration": "Глобальные настройки",
         "convert_html_to_text": "Сконвертировать HTML в обычный текст",
@@ -147,7 +159,7 @@
         "destination": "Назначение",
         "dkim_add_key": "Добавить ARC/DKIM ключ",
         "dkim_domains_selector": "Selector",
-        "dkim_domains_wo_keys": "Выберать домены с отсутствующими DKIM ключами",
+        "dkim_domains_wo_keys": "Выбрать домены с отсутствующими DKIM ключами",
         "dkim_from": "из",
         "dkim_from_title": "Исходный домен для копирования ключа",
         "dkim_key_length": "Длина DKIM ключа (bits)",
@@ -158,7 +170,7 @@
         "dkim_overwrite_key": "Перезаписать существующий ключ DKIM",
         "dkim_private_key": "Закрытый ключ",
         "dkim_to": "в",
-        "dkim_to_title": "Целевой домен/ы, учитите что DKIM будет перезаписан",
+        "dkim_to_title": "Целевой домен/ы (учтите, что DKIM будет перезаписан)",
         "domain": "Домен",
         "domain_admin": "Администратор домена",
         "domain_admins": "Администраторы домена",
@@ -183,12 +195,12 @@
         "flush_queue": "Отправить все сообщения",
         "forwarding_hosts": "Переадресация хостов",
         "forwarding_hosts_add_hint": "Можно указывать: IPv4/IPv6 подсети в нотации CIDR, имена хостов (которые будут разрешаться в IP-адреса) или доменные имена (которые будут решаться с IP-адресами путем запроса SPF записей или, в случае их отсутствия - запросом MX записей).",
-        "forwarding_hosts_hint": "Входящие сообщения безоговорочно принимаются от любых хостов, перечисленных здесь. Эти хосты не проходят проверку DNSBL и graylisting. Спам, полученный от них, никогда не отклоняется, но при желании можно включить фильтр спама и письма с плохим рейтингом будут попадать в Junk. Наиболее распространенное использование - указать почтовые серверы, на которых вы установили правило, которое перенаправляет входящие электронные письма на ваш почтовый сервер.",
+        "forwarding_hosts_hint": "Входящие сообщения безоговорочно принимаются от любых хостов, перечисленных здесь. Эти хосты не проходят проверку DNSBL и graylisting. Спам, полученный от них, никогда не отклоняется, но при желании можно включить спам фильтр и письма с плохим рейтингом будут попадать в Junk. Наиболее распространенное использование - указать почтовые серверы, на которых вы установили правило, которое перенаправляет входящие электронные письма на ваш почтовый сервер.",
         "from": "От",
         "generate": "сгенерировать",
         "guid": "GUID - уникальный ID",
         "guid_and_license": "Лицензия и GUID",
-        "hash_remove_info": "Удаление хеша лимитов отправки (если оно правило настроено) полностью сбрасывает счетчики лимитов.<br>\r\n  Каждый хэш обозначен отдельным цветом.",
+        "hash_remove_info": "Удаление хеша лимитов отправки (если правило настроено) полностью сбрасывает счётчики лимитов.<br>\r\n  Каждый хэш обозначен своим цветом.",
         "help_text": "Заменить текст справки на странице логина (использование HTML разрешено)",
         "host": "Хост",
         "html": "HTML",
@@ -200,7 +212,7 @@
         "include_exclude_info": "По умолчанию - без выбора - <b>все почтовые ящики</b> адресованы",
         "includes": "Включить этих получателей",
         "last_applied": "Посл. применение",
-        "license_info": "Лицензия не обезательна, но ее приобритение помогает дальнейшему развитию mailcow.<br><a href=\"https://www.servercow.de/mailcow?lang=en#sal\" target=\"_blank\" alt=\"SAL order\">Зарегистрируйте свой GUID здесь</a> или <a href=\"https://www.servercow.de/mailcow?lang=en#support\" target=\"_blank\" alt=\"Заказать поддержку\">приобретите поддержку для вашей установки mailcow.</a>",
+        "license_info": "Лицензия не обязательна, но её приобретение помогает дальнейшему развитию mailcow.<br><a href=\"https://www.servercow.de/mailcow?lang=en#sal\" target=\"_blank\" alt=\"SAL order\">Зарегистрируйте свой GUID здесь</a> или <a href=\"https://www.servercow.de/mailcow?lang=en#support\" target=\"_blank\" alt=\"Заказать поддержку\">приобретите поддержку для вашей установки mailcow.</a>",
         "link": "Ссылка",
         "loading": "Пожалуйста, подождите...",
         "logo_info": "Ваше изображение будет масштабироваться до высоты 40px для верхней панели навигации и до 250px ширины для стартовой страницы. <br>Рекомендуется использовать векторную графику, на пример: .svg.",
@@ -211,17 +223,24 @@
         "message_size": "Размер сообщения",
         "nexthop": "Следующий хост",
         "no": "&#10005;",
-        "no_active_bans": "В данный момент нет забаненых подсетей/хостов",
+        "no_active_bans": "В данный момент нет забаненных подсетей/хостов",
         "no_new_rows": "Нет доступных строк",
         "no_record": "Нет записей",
         "oauth2_client_id": "ID клиента",
         "oauth2_client_secret": "Секретный ключ пользователя",
-        "oauth2_info": "Реализация OAuth2 поддерживает предоставления кодов авторизации и выдает токены продленния сесии.<br>\r\nСервер также автоматически выдает новый токен продления сессии, после того, как предыдущий был использован.<br><br>\r\n→ Scope по умолчанию: <i>profile</i>. Только пользователи почтовых аккаунтов могут проходить аутентификацию через OAuth2. Если параметр области не указан, он возвращается к <i>profile</i>.<br>\r\n→ Параметр <i>state</i> должен быть отправлен клиентом как часть запроса для авторизации.<br><br>\r\nПути для запросов OAuth2 API: <br>\r\n<ul>\r\n  <li>Authorization endpoint: <code>/oauth/authorize</code></li>\r\n  <li>Token endpoint: <code>/oauth/token</code></li>\r\n  <li>Resource page:  <code>/oauth/profile</code></li>\r\n</ul>\r\nГенерирование нового клиентского секрета не приводит к истечению существующих кодов авторизации, но они не смогут обновить свой токен.<br><br>\r\nОтзыв клиентских токенов приведет к немедленному прекращению всех активных сеансов. Все клиенты должны будут пройти повторную аутентификацию.",
+        "oauth2_info": "Реализация OAuth2 поддерживает предоставления кодов авторизации и выдает токены продления сессии.<br>\r\nСервер также автоматически выдает новый токен продления сессии, после того, как предыдущий был использован.<br><br>\r\n→ Scope по умолчанию: <i>profile</i>. Только пользователи почтовых аккаунтов могут проходить аутентификацию через OAuth2. Если параметр области не указан, он возвращается к <i>profile</i>.<br>\r\n→ Параметр <i>state</i> должен быть отправлен клиентом как часть запроса для авторизации.<br><br>\r\nПути для запросов OAuth2 API: <br>\r\n<ul>\r\n  <li>Authorization endpoint: <code>/oauth/authorize</code></li>\r\n  <li>Token endpoint: <code>/oauth/token</code></li>\r\n  <li>Resource page:  <code>/oauth/profile</code></li>\r\n</ul>\r\nГенерирование нового клиентского секрета не приводит к истечению существующих кодов авторизации, но они не смогут обновить свой токен.<br><br>\r\nОтзыв клиентских токенов приведет к немедленному прекращению всех активных сеансов. Все клиенты должны будут пройти повторную аутентификацию.",
         "oauth2_redirect_uri": "Переадресация URI",
         "oauth2_renew_secret": "Сгенерировать новый ключ клиента",
         "oauth2_revoke_tokens": "Отозвать все клиентские токены",
-        "optional": "опцыонально",
+        "optional": "опционально",
         "password": "Пароль",
+        "password_length": "Минимальная длина пароля",
+        "password_policy": "Политика паролей",
+        "password_policy_chars": "Должен содержать алфавитный символ",
+        "password_policy_length": "Минимальная длина пароля %d символов",
+        "password_policy_numbers": "Должен содержать цифру",
+        "password_policy_lowerupper": "Должны содержать символы верхнего и нижнего регистров",
+        "password_policy_special_chars": "Должны содержать специальный символ",
         "password_repeat": "Подтверждение пароля (повтор)",
         "priority": "Приоритет",
         "private_key": "Закрытый ключ",
@@ -229,8 +248,8 @@
         "quarantine_bcc": "Отправка копии всех уведомлений (BCC) к получателю:<br><small><b>Получатель должен быть внутренним, так как почта не подписана и не проверена. </b></br>Отключено, если получатель не указан.</small>",
         "quarantine_exclude_domains": "Исключить домены и псевдонимы доменов",
         "quarantine_max_age": "Максимальный период хранения в днях<br><small>Значение должно быть равно или больше 1 дня.</small>",
-        "quarantine_max_size": "Максимальный размер в MiB (письма большего размера не будет сохранены):<br><small>0 <b>не означает</b> неограниченый размер.</small>",
-        "quarantine_max_score": "Не уведомлять о спаме если оценка письма выче чем:<br><small>По умолчанию 9999.0</small>",
+        "quarantine_max_size": "Максимальный размер в MiB (письма большего размера не будет сохранены):<br><small>0 означает, что карантин <b>отключён</b>.</small>",
+        "quarantine_max_score": "Не уведомлять о спаме, если оценка письма выше, чем:<br><small>По умолчанию 9999.0</small>",
         "quarantine_notification_html": "Шаблон уведомления:<br><small>Оставьте пустым, чтобы восстановить шаблон по умолчанию.</small>",
         "quarantine_notification_sender": "Email-адрес для отправки уведомления",
         "quarantine_notification_subject": "Тема письма",
@@ -238,7 +257,7 @@
         "quarantine_release_format": "Формат доставки писем после восстановления",
         "quarantine_release_format_att": "Как вложение",
         "quarantine_release_format_raw": "Оригинальное письмо",
-        "quarantine_retention_size": "Количество писем сохраненных в карантине на аккаунт:<br><small>0 значит что лимита <b>нет</b>.</small>",
+        "quarantine_retention_size": "Количество писем, сохраняемых в карантине на аккаунт:<br><small>0 означает, что карантин <b>отключён</b>.</small>",
         "queue_ays": "Пожалуйста, подтвердите, что вы хотите удалить все элементы из очереди.",
         "queue_deliver_mail": "Доставить",
         "queue_hold_mail": "Поставить на удержание",
@@ -254,13 +273,14 @@
         "quota_notifications_vars": "{{percent}} равно текущей квоте пользователя<br>{{username}} - имя почтового аккаунта",
         "r_active": "Включенные ограничения",
         "r_inactive": "Отключенные ограничения",
-        "r_info": "Не активные (серые) елементы списка ограничений - это не валидные ограничения, и они не могут быть перемещены. <br>Вы можете добавить новые элементы в <code>inc/vars.local.inc.php</code> чтобы иметь возможность настраивать их.",
+        "r_info": "Не активные (серые) элементы списка ограничений - это не валидные ограничения, и они не могут быть перемещены. <br>Вы можете добавить новые элементы в <code>inc/vars.local.inc.php</code> чтобы иметь возможность настраивать их.",
         "rate_name": "Название очереди",
         "recipients": "Получатели",
         "refresh": "Обновить",
         "regen_api_key": "Сгенерировать новый ключ для API",
         "regex_maps": "Фильтрация с помощью регулярных выражений",
-        "relay_from": "\"От:\" адрес",
+        "relay_from": "\"От:\"",
+        "relay_rcpt": "\"Кому:\"",
         "relay_run": "Запустить тест",
         "relayhosts": "Транспортировка в зависимости от отправителя",
         "relayhosts_hint": "Определите промежуточные узлы здесь, чтобы иметь возможность выбрать их в диалоговом окне конфигурации доменов.",
@@ -275,14 +295,14 @@
         "rsetting_no_selection": "Пожалуйста, выберите правило",
         "rsetting_none": "Нет доступных правил",
         "rsettings_insert_preset": "Вставить пример \"%s\"",
-        "rsettings_preset_1": "Disable all but DKIM and rate limit for authenticated users",
+        "rsettings_preset_1": "Отключить все, кроме DKIM и ограничения скорости для аутентифицированных пользователей ",
         "rsettings_preset_2": "Postmasters want spam",
-        "rsettings_preset_3": "Only allow specific senders for a mailbox (i.e. usage as internal mailbox only)",
-        "rspamd-com_settings": "Имена правил будут сгенерированы на основе их ID.<br> Инструкция доступна на сайте <a href=\"https://rspamd.com/doc/configuration/settings.html#settings-structure\" target=\"_blank\">документация Rspamd user settings</a>, заготовленые шаблоны:",
+        "rsettings_preset_3": "Разрешить только определённых отправителей для почтового ящика (использование только в качестве внутреннего почтового ящика) ",
+        "rspamd-com_settings": "Имена правил будут сгенерированы на основе их ID.<br> Инструкция доступна на сайте <a href=\"https://rspamd.com/doc/configuration/settings.html#settings-structure\" target=\"_blank\">документация Rspamd user settings</a>, заготовленные шаблоны:",
         "rspamd_global_filters": "Глобальные правила фильтрации",
-        "rspamd_global_filters_agree": "Я понимаю что я делаю, и буду осторожен!",
+        "rspamd_global_filters_agree": "Я понимаю, что я делаю, и буду осторожен!",
         "rspamd_global_filters_info": "Глобальные правила фильтрации содержат различные виды глобальных черных и белых списков.",
-        "rspamd_global_filters_regex": "Названия фильтров отражают их предназначение. Все правила должены состоять из регулярных выражений в формате \"/pattern/options\" (на пример: <code>/.+@domain\\.tld/i</code>).<br>\r\nНе смотря на то что перед сохранением правил выполняются проверка регулярных выражения, функциональность Rspamds может быть нарушена, если будет использован<br>\r\n некорректный синтаксис. Бульте вниматильны при написании правил.<br>Электронные письма от адресов электронной почты проходящие по регулярным выражениям черных списков будут отклонены без сохранения в карантин.<br>\r\n Rspamd попытается прочитать содержимое правил при их изменении. Но, если что, вы можете <a href=\"\" data-toggle=\"modal\" data-container=\"rspamd-mailcow\" data-target=\"#RestartContainer\">перезапустить Rspamd</a>, что бы приминить последние изменения принудительно.",
+        "rspamd_global_filters_regex": "Названия фильтров отражают их предназначение. Все правила должены состоять из регулярных выражений в формате \"/pattern/options\" (на пример: <code>/.+@domain\\.tld/i</code>).<br>\r\nНесмотря на то, что перед сохранением правил выполняется проверка регулярных выражений, функциональность Rspamds может быть нарушена, если будет использован<br>\r\n некорректный синтаксис. Будьте внимательны при написании правил.<br>Электронные письма от адресов электронной почты, проходящие по регулярным выражениям черных списков, будут отклонены без сохранения в карантин.<br>\r\n Rspamd попытается прочитать содержимое правил при их изменении. Но, если что, вы можете <a href=\"\" data-toggle=\"modal\" data-container=\"rspamd-mailcow\" data-target=\"#RestartContainer\">перезапустить Rspamd</a>, чтобы принять последние изменения принудительно.",
         "rspamd_settings_map": "Правила Rspamd",
         "sal_level": "Уровень Муу",
         "save": "Сохранить изменения",
@@ -291,17 +311,18 @@
         "sender": "Отправитель",
         "service_id": "ID сервиса",
         "source": "Источник",
-        "spamfilter": "Фильтр спама",
+        "spamfilter": "Спам фильтр",
         "subject": "Тема письма",
         "sys_mails": "Системные сообщения",
         "text": "Обычный текст",
         "time": "Время",
-        "title": "Заголовок",
-        "title_name": "Заглавие сайта \"mailcow UI\"",
+        "title": "Название \"mailcow UI\" для страницы входа:",
+        "title_name": "Заголовок <b>title</b> \"mailcow UI\":",
         "to_top": "Вернуться к началу",
         "transport_dest_format": "example.org, .example.org, *, box@example.org (несколько значений могут быть разделены запятыми)",
         "transport_maps": "Глобальные правила отправки",
-        "transports_hint": "→ Записи в transport map <b>отменяют</b> sender-dependent transport map</b>.<br>\r\n→ Пользовательские политики TLS для исодящей почты будут проигнорированы и будут использовать политику TLS для записей используемых сдесь.<br>\r\n→ Протокол для доставки всегда \"smtp:\".<br>\r\n→ Адреса соответствующие \"/localhost$/\" всегда будут доставлены \"local:\", следовательно политика \"*\" не распостраняется на них.<br>\r\n→ Чтобы определить учетные данные для следующего узла \"[host]:25\", Postfix <b>всегда</b> ищет данные для \"host\" перед тем как искать \"[host]:25\". Такое поведение делает невозможным использование \"host\" and \"[host]:25\" одновременно.",
+        "transports_hint": "→ Записи в transport map <b>отменяют</b> sender-dependent transport map</b>.<br>\r\n→ Пользовательские политики TLS для исходящей почты будут проигнорированы и будут использовать политику TLS для записей используемых здесь.<br>\r\n→ Протокол для доставки всегда \"smtp:\".<br>\r\n→ Адреса соответствующие \"/localhost$/\" всегда будут доставлены \"local:\", следовательно политика \"*\" не распространяется на них.<br>\r\n→ Чтобы определить учётные данные для следующего узла \"[host]:25\", Postfix <b>всегда</b> ищет данные для \"host\" перед тем как искать \"[host]:25\". Такое поведение делает невозможным использование \"host\" and \"[host]:25\" одновременно.",
+        "transport_test_rcpt_info": "→ Используйте null@hosted.mailcow.de для тестирования пересылки на внешний пункт назначения.",
         "ui_footer": "Добавить нижний колонтитул (использование HTML разрешено)",
         "ui_header_announcement": "Объявления",
         "ui_header_announcement_active": "Активировать объявление",
@@ -312,9 +333,9 @@
         "ui_header_announcement_type_danger": "Очень важное",
         "ui_header_announcement_type_info": "Инфо",
         "ui_header_announcement_type_warning": "Важное",
-        "ui_texts": "UI найменования и описания",
+        "ui_texts": "UI наименования и описания",
         "unban_pending": "ожидает разблокировки",
-        "unchanged_if_empty": "Если без изменений оставьте пустым",
+        "unchanged_if_empty": "Если без изменений, оставьте пустым",
         "upload": "Загрузить",
         "username": "Имя пользователя",
         "validate_license_now": "Получить лицензию на основе GUID с сервера лицензий",
@@ -322,7 +343,7 @@
         "yes": "&#10003;"
     },
     "danger": {
-        "access_denied": "Доступ запрещен или указаны неверные данные",
+        "access_denied": "Доступ запрещён, или указаны неверные данные",
         "alias_domain_invalid": "Недопустимый псевдоним домена",
         "alias_empty": "Псевдоним не может быть пустым",
         "alias_goto_identical": "Псевдоним и основной адрес не могут быть идентичными",
@@ -333,8 +354,8 @@
         "app_passwd_id_invalid": "Пароль приложения ID %s неверный",
         "bcc_empty": "Назначение BCC не может быть пустым",
         "bcc_exists": "Для типов %s уже существует карта BCC %s",
-        "bcc_must_be_email": "Назначение BCC %s является не валдиным адресом электронной почты",
-        "comment_too_long": "Комментарий слишком длинный, макс. 160 символов разрешено использовать.",
+        "bcc_must_be_email": "Назначение BCC %s не является правильным адресом электронной почты",
+        "comment_too_long": "Комментарий слишком длинный. Разрешено использовать максимум 160 символов.",
         "defquota_empty": "Квота по умолчанию не может быть 0.",
         "description_invalid": "Недопустимое описание ресурса %s",
         "dkim_domain_or_sel_exists": "Ключ DKIM для \"%s\" уже существует",
@@ -348,24 +369,25 @@
         "extra_acl_invalid": "Адрес внешнего отправителя \"%s\" не валидный.",
         "extra_acl_invalid_domain": "Адрес внешнего отправителя \"%s\" не валидный домен.",
         "file_open_error": "Файл не может быть открыт на запись",
-        "filter_type": "Не верный тип фильтра",
+        "filter_type": "Неверный тип фильтра",
         "from_invalid": "Отправитель не может быть пустым",
         "global_filter_write_error": "Ошибка записи фильтра в файл: %s",
         "global_map_invalid": "Идентификатор глобального правила %s не валидный",
         "global_map_write_error": "Не удалось создать глобальное правило ID %s: %s",
+        "xmpp_map_write_error": "Ошибка записи настроек XMPP: %s",
         "goto_empty": "Псевдоним должен содержать по крайней мере один валидный адрес владельца",
         "goto_invalid": "Недопустимый основной адрес %s",
-        "ham_learn_error": "Ошибка при обучении хам фильтра: %s",
+        "ham_learn_error": "Ошибка при обучении &laquo;ham&raquo; фильтра: %s",
         "imagick_exception": "Ошибка в Imagick при чтении изображения",
         "img_invalid": "Невозможно проверить файл изображения",
         "img_tmp_missing": "Невозможно проверить файл изображения: временный файл не найден",
-        "invalid_bcc_map_type": "Не верный тип правила BBC",
-        "invalid_destination": "Назначение \"%s\" указано не верно",
-        "invalid_filter_type": "Не верный тип фильтра",
-        "invalid_host": "Хост %s указан не верно",
-        "invalid_mime_type": "Не верный mime type",
-        "invalid_nexthop": "Формат следующего хоста не верен",
-        "invalid_nexthop_authenticated": "Cледующий хост существует с разными данными авторизации, пожалуйста, обновите существующие данные авторизации сначала для этого хоста.",
+        "invalid_bcc_map_type": "Неверный тип правила BBC",
+        "invalid_destination": "Назначение \"%s\" указано неверно",
+        "invalid_filter_type": "Неверный тип фильтра",
+        "invalid_host": "Хост %s указан неверно",
+        "invalid_mime_type": "Неверный mime type",
+        "invalid_nexthop": "Формат следующего хоста неверен",
+        "invalid_nexthop_authenticated": "Следующий хост существует с разными данными авторизации, пожалуйста, обновите существующие данные авторизации сначала для этого хоста.",
         "invalid_recipient_map_new": "Новый получатель: %s не валидный",
         "invalid_recipient_map_old": "Первоначальный получатель: %s не валидный",
         "ip_list_empty": "Список разрешенных IP адресов не может быть пустым",
@@ -384,9 +406,10 @@
         "map_content_empty": "Содержание правила не может быть пустым",
         "max_alias_exceeded": "Превышено максимальное количество псевдонимов",
         "max_mailbox_exceeded": "Превышено максимальное количество почтовых ящиков (%d из %d)",
-        "max_quota_in_use": "Квота почтового аккаунта должна быть больше или равена %d MiB",
+        "max_quota_in_use": "Квота почтового аккаунта должна быть больше или равна %d MiB",
         "maxquota_empty": "Максимальная квота почтового аккаунта не должна быть 0.",
         "mysql_error": "Ошибка в MySQL: %s",
+        "nginx_reload_failed": "Обновление конфигурации Nginx не удалось: %s",
         "network_host_invalid": "Сеть или хост: %s не валидный",
         "next_hop_interferes": "%s пересекается с %s",
         "next_hop_interferes_any": "Существующий хост пересекается с %s",
@@ -407,7 +430,7 @@
         "redis_error": "Ошибка в Redis: %s",
         "relayhost_invalid": "Правило %s не валидное",
         "release_send_failed": "Сообщение не может быть восстановлено: %s",
-        "reset_f2b_regex": "Сброс фильтров не был выполнен за отведеный промежуток времени, пожалуйста, повторите попытку или подождите еще несколько секунд и перезагрузите веб страницу.",
+        "reset_f2b_regex": "Сброс фильтров не был выполнен за отведённый промежуток времени, пожалуйста, повторите попытку или подождите еще несколько секунд и перезагрузите веб страницу.",
         "resource_invalid": "Недопустимое имя ресурса",
         "rl_timeframe": "Не верный временной интервал для лимита отправки",
         "rspamd_ui_pw_length": "Длина пароля должна составлять не менее 6 символов для Rspamd UI",
@@ -433,11 +456,13 @@
         "fido2_verification_failed": "Ошибка валидации FIDO2: %s",
         "unknown": "Произошла неизвестная ошибка",
         "unknown_tfa_method": "Неизвестный метод TFA",
-        "unlimited_quota_acl": "Неограниченная квота запрещена политкой доступа",
+        "unlimited_quota_acl": "Неограниченная квота запрещена политикой доступа",
         "username_invalid": "Имя пользователя %s нельзя использовать",
         "validity_missing": "Пожалуйста, назначьте срок действия",
         "value_missing": "Пожалуйста заполните все поля",
-        "yotp_verification_failed": "Ошибка валидации Yubico OTP: %s"
+        "yotp_verification_failed": "Ошибка валидации Yubico OTP: %s",
+        "xmpp_restart_failed": "Перезагрузка XMPP не удалась",
+        "xmpp_reload_failed": "Обновление конфигурации Dovecot не удалось"
     },
     "debug": {
         "chart_this_server": "Диаграмма (текущий сервер)",
@@ -447,49 +472,54 @@
         "history_all_servers": "История (все серверы)",
         "in_memory_logs": "Журналы контейнеров",
         "jvm_memory_solr": "Использовано оперативной памяти JVM",
-        "log_info": "<p><b>Журналы контейнеров</b> mailcow сохраняются в Redis, и раз в минуту строки журнала за приделами <code>LOG_LINES (%d)</code> удаляются, чтобы уменьшить нагрузку на сервер.\r\n  <br> Сами журналы контейнеров не сохраняются после перезагрузка контейнера. Все контейнеры дополнительно пишут логи в службу Docker и следовательно используют драйвер логирования по умолчанию. Журналы контейнеров предусмотрены только для отладки мелких проблем. Для других задач, пожалуйста, настройте драйвер логирования Docker под свои задачи.</p>\r\n  <p><b>Внешние журналы</b> собираются через API приложений.</p>\r\n  <p><b>Статические журналы</b> - это в основном журналы активности, которые не записываются в Dockerd, но все равно должны быть постоянными (за исключением журналов API).</p>",
+        "log_info": "<p><b>Журналы контейнеров</b> mailcow сохраняются в Redis, и раз в минуту строки журнала за пределами <code>LOG_LINES (%d)</code> удаляются, чтобы уменьшить нагрузку на сервер.\r\n  <br>Сами журналы контейнеров не сохраняются после перезагрузки контейнера. Все контейнеры дополнительно пишут логи в службу Docker, и, следовательно, используют драйвер логирования по умолчанию. Журналы контейнеров предусмотрены только для отладки мелких проблем. Для других задач, пожалуйста, настройте драйвер логирования Docker самостоятельно.</p>\r\n  <p><b>Внешние журналы</b> собираются через API приложений.</p>\r\n  <p><b>Статические журналы</b> &ndash; это, в основном, журналы активности, которые не записываются в Dockerd, но все равно должны быть постоянными (за исключением журналов API).</p>",
         "logs": "Журналы",
         "restart_container": "Перезапустить",
-        "solr_dead": "Solr не запущен. Если вы включили Solf в файле настроек <code>mailcow.conf</code> и это сообщение отображает более получаса, скорее всего Solr сломан.",
-        "solr_docs": "Проиндексировано обьектов",
-        "solr_last_modified": "Последние изменения",
-        "solr_size": "Индексы занимают",
-        "solr_started_at": "Запущен",
+        "solr_dead": "Solr не запущен. Если вы включили Solf в файле настроек <code>mailcow.conf</code> и это сообщение отображается более получаса, скорее всего Solr сломан.",
+        "xmpp_dead": "XMPP не запущен. Если вы включили XMPP в настройках домена и это сообщение отображается более получаса, скорее всего XMPP сломан.",
+        "docs": "Проиндексировано объектов",
+        "last_modified": "Последние изменения",
+        "online_users": "Подключено пользователей",
+        "size": "Индексы занимают",
+        "started_at": "Запущен",
         "solr_status": "Состояние Solr",
-        "solr_uptime": "Время работы",
+        "uptime": "Время работы",
         "started_on": "Запущен в",
         "static_logs": "Статические журналы",
-        "system_containers": "Система и контейнеры"
+        "system_containers": "Система и контейнеры",
+        "xmpp_status": "Статус XMPP"
     },
     "diagnostics": {
         "cname_from_a": "Значение, полученное из записи A/AAAA. Это поддерживается до тех пор, пока запись указывает на правильный ресурс.",
         "dns_records": "Записи DNS",
         "dns_records_24hours": "Обратите внимание, что для внесения изменений в DNS может потребоваться до 24 часов, чтобы правильно отобразить их текущее состояние на этой странице. Эта страница предназначен для того, чтобы вы могли легко увидеть, как настроить записи DNS и проверить, все ли записи правильно занесены в DNS.",
+        "dns_records_docs": "Пожалуйста, ознакомьтесь с <a target=\"_blank\" href=\"https://mailcow.github.io/mailcow-dockerized-docs/prerequisite-dns/\">документацией</a>.",
         "dns_records_data": "Значение",
         "dns_records_name": "Название",
         "dns_records_status": "Статус",
         "dns_records_type": "Тип",
-        "optional": "Эта запись не обезательна."
+        "optional": "Эта запись не обязательна."
     },
     "edit": {
         "active": "Активный",
+        "admin": "Изменение администратора",
         "advanced_settings": "Расширенные настройки",
         "alias": "Изменить псевдоним",
         "allow_from_smtp": "Разрешить использование <b>SMTP</b> только для этих IP",
-        "allow_from_smtp_info": "Укажите IPv4/IPv6 адреса и/или подсети.<br>Оставьте поле пустым, чтобы разрешить отправитвку с любых адресов.",
-        "allowed_protocols": "Разрешенные протоколы",
+        "allow_from_smtp_info": "Укажите IPv4/IPv6 адреса и/или подсети.<br>Оставьте поле пустым, чтобы разрешить отправку с любых адресов.",
+        "allowed_protocols": "Разрешённые протоколы",
         "app_name": "Название приложения",
         "app_passwd": "Пароль приложения",
         "automap": "Автоматическое слияние папок (\"Sent items\", \"Sent\" => \"Sent\" etc.)",
         "backup_mx_options": "Параметры резервного копирования MX",
-        "bcc_dest_format": "Назначением для правила BBC долженен быть единственным действительный адресом электронной почты.",
+        "bcc_dest_format": "Назначением для правила BBC должен быть единственный действительный адрес электронной почты.",
         "client_id": "ID клиента",
         "client_secret": "Секретный ключ пользователя",
-        "comment_info": "Приватный комментарий не виден пользователям, а публичный - отображается рядом с певдонимом в личном кабинете пользователя",
+        "comment_info": "Приватный комментарий не виден пользователям, а публичный - отображается рядом с псевдонимом в личном кабинете пользователя",
         "delete1": "Удаление из источника после завершения",
         "delete2": "Удаление писем по месту назначения, которые не находятся на исходном",
         "delete2duplicates": "Удаление дубликатов по назначению",
-        "delete_ays": "Пожалуйста, подтвердите удалитение",
+        "delete_ays": "Пожалуйста, подтвердите удаление",
         "description": "Описание",
         "disable_login": "Вход в систему запрещен",
         "domain": "Изменение домена",
@@ -501,12 +531,21 @@
         "encryption": "Шифрование",
         "exclude": "Исключить объекты (regex)",
         "extended_sender_acl": "Внешние адреса почты",
-        "extended_sender_acl_info": "Для внешних доменов должен быть импортирован или сгенерирован доменный ключ DKIM с соответствующей записью TXT в домене если внешний домен использует DMARC.<br>\r\n  Не забудьте добавить этот сервер к соответствующей записи SPF TXT внешнего домена.<br>\r\n  Добавление домена из списка внешних адресов в mailcow автоматически удалит соответствующие записи из внешних адресов пользователей.<br>\r\n  Что бы разрешить пользователю отправку от имени *@domain.tld, укажите @domain.tld.",
+        "extended_sender_acl_info": "Для внешних доменов должен быть импортирован или сгенерирован доменный ключ DKIM с соответствующей записью TXT в домене, если внешний домен использует DMARC.<br>\r\n  Не забудьте добавить этот сервер к соответствующей записи SPF TXT внешнего домена.<br>\r\n  Добавление домена из списка внешних адресов в mailcow автоматически удалит соответствующие записи из внешних адресов пользователей.<br>\r\n  Чтобы разрешить пользователю отправку от имени *@domain.tld, укажите @domain.tld.",
         "force_pw_update": "Требовать смены пароля при следующем входе в систему",
         "force_pw_update_info": "Пользователь должен будет войти в %s и сменить свой пароль. mailcow OAuth2, SOGo, EAS, IMAP/POP3 и SMTP будут не доступны до смены пароля.",
         "full_name": "Полное имя",
         "gal": "GAL - Глобальная адресная книга",
-        "gal_info": "GAL содержит все объекты домена и не подлежит редактированию. Информация о занятости в SOGo будет отсутствовать для домена, если эта функция не будет включена! <b>Требуется перезапустить SOGo, чтобы изменения применились.</b>",
+        "gal_info": "GAL содержит все объекты домена и не подлежит редактированию. Информация о занятости в SOGo будет отсутствовать для домена, если данная функция будет отключена! <b>Требуется перезапустить SOGo, чтобы применить изменения.</b>",
+        "xmpp": "Включить поддержку XMPP для этого домена",
+        "xmpp_prefix": "Префикс домена XMPP",
+        "xmpp_prefix_info": "Для получения SSL сертификатов для XMPP сервера необходимо настроить дополнительные CNAME DNS записи <b>im</b>.example.org и <b>*.im</b>.example.org, указывающие на <b>%s</b>. Пожалуйста, посетите страницу проверки DNS записей домена после включения XMPP сервера в mailcow UI.",
+        "xmpp_info": "Эта опция добавит функциональность чата для этого домена.",
+        "xmpp_access": "Пользователь XMPP",
+        "xmpp_access_info": "XMPP должен быть включен для этого домена.",
+        "xmpp_admin": "Администратор XMPP",
+        "xmpp_admin_info": "Повысить пользователя XMPP до <span class=\"text-danger\">администратора домена</span>.",
+        "xmpp_example_jid": "<b>Пример JID</b> (используя пароль почтового аккаунта)",
         "generate": "сгенерировать",
         "grant_types": "Разрешено типы",
         "hostname": "Имя хоста",
@@ -532,12 +571,13 @@
         "pushover_info": "Настройки Push-уведомления будут применяться ко всей почте <b>%s</b> (за исключением спама) включая псевдонимы (личные, общие и тегированные).",
         "pushover_only_x_prio": "Получать уведомления только об письмах с высоким приоритетом [<code>X-Priority: 1</code>]",
         "pushover_sender_array": "Получать уведомления от списка адресов электронной почты <small>(envelop-from разделенные запятыми)</small>:",
-        "pushover_sender_regex": "Получать уведомления от отправителей удовлетворяющих regex-выражение:",
+        "pushover_sender_regex": "Получать уведомления от отправителей, удовлетворяющих regex-выражению:",
         "pushover_text": "Текст уведомления",
         "pushover_title": "Заголовок уведомления",
-        "pushover_vars": "Когда фильтрация по отправителю не определена, уведомения будут доставлятся от всех отправителей.<br>Можно использовать обычный фильтр по отправителю и разширенный regex-фильтр, а так же оба сразу.<br>Пожалуйста, ознакомьтесь с <a href=\"https://pushover.net/privacy\">Pushover Privacy Policy</a> перед использованием шаблонов для текста и заголовка",
+        "pushover_vars": "Когда фильтрация по отправителю не определена, уведомления будут доставлятся от всех отправителей.<br>Можно использовать обычный фильтр по отправителю и расширенный regex-фильтр, а также оба сразу.<br>Пожалуйста, ознакомьтесь с <a href=\"https://pushover.net/privacy\">Pushover Privacy Policy</a> перед использованием шаблонов для текста и заголовка",
         "pushover_verify": "Проверить доступ",
         "quota_mb": "Квота (MiB)",
+        "ratelimit": "Лимит отправки",
         "redirect_uri": "URL-адрес переадресация/обратный вызов",
         "relay_all": "Ретрансляция всех получателей",
         "relay_all_info": "↪<small>Если вы решите <b>не</b> ретранслировать всех получателей, вам нужно будет добавить (\"слепой\") почтовый аккаунт для каждого получателя, которого следует ретранслировать.</small>",
@@ -551,20 +591,21 @@
         "scope": "Область",
         "sender_acl": "Разрешить отправлять письма от имени",
         "sender_acl_disabled": "<span class=\"label label-danger\">Проверка отправителя отключена</span>",
-        "sender_acl_info": "Учтите, что если пользователю почтового аккаунта A разрешено отправлять от имени пользователя B, адрес пользователя B автоматически не отобразится в списке \"Отправитель\" при написании писем в SOGo.<br>\r\n  Пользователь почтового аккаунта B должен создать делегирование в SOGo, чтобы пользователь почтового аккаунта A мог выбрать его адрес в качестве отправителя. Делегирование находится в меню (троеточие) справа от имени почтового аккаунта в окне почты SOGo. Это поведение не относится к псевдонимам.",
+        "sender_acl_info": "Учтите, что если пользователю почтового аккаунта A разрешено отправлять от имени пользователя B, то адрес пользователя B не отобразится автоматически в списке \"Отправитель\" при написании писем в SOGo.<br>\r\n  Пользователь почтового аккаунта B должен создать делегирование в SOGo, чтобы пользователь почтового аккаунта A мог выбрать его адрес в качестве отправителя. Делегирование находится в меню (троеточие) справа от имени почтового аккаунта в окне почты SOGo. Это поведение не относится к псевдонимам.",
         "sieve_desc": "Краткое описание",
         "sieve_type": "Тип фильтра",
         "skipcrossduplicates": "Пропускать повторяющиеся сообщения в папках",
         "sogo_access": "Предоставить доступ к SOGo",
         "sogo_access_info": "Этот параметр не влияет на доступ ко всем другим службам, в том числе на право удаления или изменение существующего профиля пользователя SOGo.",
         "sogo_visible": "Отображать псевдоним в SOGo",
-        "sogo_visible_info": "Влияет только на объекты, которые могут отображаться в SOGo (персональные или общие псевдонимы, указывающие как минимум на один локальный почтовый аккаунт). Учтите что если функция отключена, у пользователей не будет возможности выбрать адрес псевдонима в качестве отправителя в SOGo.",
+        "sogo_visible_info": "Влияет только на объекты, которые могут отображаться в SOGo (персональные или общие псевдонимы, указывающие как минимум на один локальный почтовый аккаунт). Учтите, что если функция отключена, у пользователей не будет возможности выбрать адрес псевдонима в качестве отправителя в SOGo.",
         "spam_alias": "Создать или изменить временные (спам) псевдонимы",
         "spam_policy": "Добавление или удаление элементов в белом/черном списке",
+        "spam_filter": "Спам фильтр",
         "spam_score": "Задать индивидуальное определение спама",
         "subfolder2": "Синхронизировать в подпапку<br><small>(пусто = в корень)</small>",
         "syncjob": "Изменить задание синхронизации",
-        "target_address": "Владельцы псевдонима <small>(разделенные запятыми)</small>",
+        "target_address": "Владельцы псевдонима, <small>(разделённые запятыми)</small>",
         "target_domain": "Целевой домен",
         "timeout1": "Тайм-аут для подключения к удаленному хосту",
         "timeout2": "Тайм-аут для подключения к локальному хосту",
@@ -578,15 +619,13 @@
         "confirm_delete": "Подтвердите удаление",
         "delete_now": "Удалить сейчас",
         "delete_these_items": "Пожалуйста, подтвердите свои изменения в следующих объектах:",
-        "hibp_nok": "Совпадание найдено! Это потенциально опасный пароль!",
+        "hibp_nok": "Найдено совпадение! Это потенциально опасный пароль!",
         "hibp_ok": "Совпадений не найдено.",
         "loading": "Пожалуйста, подождите...",
         "restart_container": "Перезапустить контейнер",
-        "restart_container_info": "<b>Важно:</b> полный перезапуск может занять некоторое время, пожалуйста, дождитесь его завершения - не обновляйте и не закрывайте страницу.",
+        "restart_container_info": "<b>Важно:</b> полный перезапуск может занять некоторое время, пожалуйста, дождитесь его завершения &ndash; не обновляйте и не закрывайте страницу.",
         "restart_now": "Перезапустить сейчас",
-        "restart_sogo": "Перезапустить SOGo",
-        "restart_sogo_info": "Некоторые операции, например при добавлении домена, требуют перезапустить SOGo, для вступления в силу внесенных изменений.<br><br><b>Важно:</b> Перезагрузка может занять некоторое время, дождитесь ее окончания.",
-        "restarting_container": "Перезапуск контейнера, это может занять какое то время..."
+        "restarting_container": "Перезапуск контейнера, это может занять какое-то время..."
     },
     "header": {
         "administration": "Настройка сервера",
@@ -619,6 +658,7 @@
         "active": "Активный",
         "add": "Добавить",
         "add_alias": "Добавить псевдоним",
+        "add_alias_expand": "Скопировать псевдонимы на псевдонимы домена",
         "add_bcc_entry": "Добавить правило BBC",
         "add_domain": "Добавить домен",
         "add_domain_alias": "Добавить псевдоним домена",
@@ -630,11 +670,11 @@
         "add_tls_policy_map": "Добавить политику TLS",
         "address_rewriting": "Перезапись адресов",
         "alias": "Псевдоним",
-        "alias_domain_alias_hint": "Псевдонимы <b>не</b> применяются к псевдонимам домена автоматически. Адрес псевдонима <code>my-alias@domain</code> <b>не</b> охватывает адрес <code>my-alias@alias-domain</code> (где \"alias-domain\" - воображаемый псевдоним домена для \"domain\").",
+        "alias_domain_alias_hint": "Псевдонимы <b>не</b> применяются к псевдонимам домена автоматически. Адрес псевдонима <code>my-alias@domain</code> <b>не</b> охватывает адрес <code>my-alias@alias-domain</code> (где \"alias-domain\" &ndash; воображаемый псевдоним домена для \"domain\").<br>Используйте кнопку <b>\"Скопировать псевдонимы на псевдонимы домена\"</b> чтобы добавить выбранные псевдонимы на все псевдонимы доменов.<br>Пожалуйста, используйте Sieve фильтры для перенаправления почты на внешние почтовые аккаунты (см. вкладку \"Фильтры\" или используйте SOGo -> Настройки -> Почта -> Пересылка).",
         "alias_domain_backupmx": "Псевдонимы домена не могут быть использованы для домена ретрансляции",
         "aliases": "Псевдонимы",
         "allow_from_smtp": "Разрешить использование <b>SMTP</b> только для этих IP",
-        "allow_from_smtp_info": "Укажите IPv4/IPv6 адреса и/или подсети.<br>Оставьте поле пустым, чтобы разрешить отправитвку с любых адресов.",
+        "allow_from_smtp_info": "Укажите IPv4/IPv6 адреса и/или подсети.<br>Оставьте поле пустым, чтобы разрешить отправку с любых адресов.",
         "allowed_protocols": "Разрешенные протоколы",
         "backup_mx": "Резервный MX",
         "bcc": "Правила BBC",
@@ -714,18 +754,17 @@
         "resources": "Ресурсы",
         "running": "В процессе выполнения",
         "set_postfilter": "Использовать как постфильтр",
-        "set_prefilter": "Использовать как предв. фильтр",
-        "sieve_info": "Вы можете сохранить несколько фильтров для каждого пользователя, но только один предварительный фильтр и один постфильтр могут быть активными одновременно.<br>\r\n Каждый фильтр будет обработан в описанном порядке. Не сломаный скрипт, не <code>keep;</code> не остановит обработку дальнейших скриптов.<br><br>Global sieve prefilter → Prefilter → User scripts → Postfilter → Global sieve postfilter",
+        "set_prefilter": "Использовать как предварительный фильтр",
+        "sieve_info": "Вы можете сохранить несколько фильтров для каждого пользователя, но только один предварительный фильтр и один постфильтр могут быть активными одновременно.<br>\r\n Каждый фильтр будет обработан в описанном порядке. Не сломанный скрипт, не <code>keep;</code> не остановит обработку дальнейших скриптов.<br><br>Global sieve prefilter → Prefilter → User scripts → Postfilter → Global sieve postfilter",
         "sieve_preset_1": "Discard mail with probable dangerous file types",
         "sieve_preset_2": "Always mark the e-mail of a specific sender as seen",
         "sieve_preset_3": "Discard silently, stop all further sieve processing",
         "sieve_preset_4": "File into INBOX, skip further processing by sieve filters",
         "sieve_preset_5": "Auto responder (vacation)",
-        "sieve_preset_6": "Reject mail with reponse",
+        "sieve_preset_6": "Reject mail with response",
         "sieve_preset_7": "Redirect and keep/drop",
         "sieve_preset_8": "Discard message sent to an alias address the sender is part of",
         "sieve_preset_header": "Пожалуйста, ознакомьтесь с примерами ниже. Для более подробной информации прочитайте <a href=\"https://en.wikipedia.org/wiki/Sieve_(mail_filtering_language)\" target=\"_blank\">Sieve Wikipedia</a>.",
-        "sogo_allow_admin_hint": "Административные логины SOGo доступны только для почтовых ящиков с существующим профилем SOGo. Пользователь должен был войти в SOGo хотя бы один раз.",
         "sogo_visible": "Отображать псевдоним в SOGo",
         "sogo_visible_n": "Не отображать псевдоним в SOGo",
         "sogo_visible_y": "Отображать псевдоним в SOGo",
@@ -737,17 +776,17 @@
         "table_size_show_n": "Отображать %s полей",
         "target_address": "Владельцы псевдонима",
         "target_domain": "Целевой домен",
-        "tls_enforce_in": "Принудительный TLS - входящие",
-        "tls_enforce_out": "Принудительный TLS - исходящие",
+        "tls_enforce_in": "Принудительный TLS (входящие)",
+        "tls_enforce_out": "Принудительный TLS (исходящие)",
         "tls_map_dest": "Назначение",
         "tls_map_dest_info": "пример: example.org, .example.org, [mail.example.org]:25",
         "tls_map_parameters": "Параметры",
         "tls_map_parameters_info": "Оставьте поле пустым или укажите параметры, на пример: protocols=!SSLv2 ciphers=medium exclude=3DES",
         "tls_map_policy": "Политика",
         "tls_policy_maps": "Правила TLS",
-        "tls_policy_maps_enforced_tls": "Для исходящих сообщений от пользователей с включенной принудительной политикой шифрования исходящих соеденений не описаные глобальной политикой,<br>\r\n будут применены значения по умолчанию, указанные в <code>smtp_tls_mandatory_protocols</code> и <code>smtp_tls_mandatory_ciphers</code>.",
-        "tls_policy_maps_info": "Глобальные политики переопределяют политики исходящих соеденений TLS, независимо от настроек принудительных политик TLS у пользователей.<br>\r\n  Пожалуйста, ознакомьтесь с <a href=\"http://www.postfix.org/postconf.5.html#smtp_tls_policy_maps\" target=\"_blank\">документацией \"smtp_tls_policy_maps\"</a> для дополнительной информации.",
-        "tls_policy_maps_long": "Переопределение правил для политик исходящих соеденений TLS",
+        "tls_policy_maps_enforced_tls": "Для исходящих сообщений от пользователей с включенной принудительной политикой шифрования исходящих соединений не описанные глобальной политикой,<br>\r\n будут применены значения по умолчанию, указанные в <code>smtp_tls_mandatory_protocols</code> и <code>smtp_tls_mandatory_ciphers</code>.",
+        "tls_policy_maps_info": "Глобальные политики переопределяют политики исходящих соединений TLS, независимо от настроек принудительных политик TLS у пользователей.<br>\r\n  Пожалуйста, ознакомьтесь с <a href=\"http://www.postfix.org/postconf.5.html#smtp_tls_policy_maps\" target=\"_blank\">документацией \"smtp_tls_policy_maps\"</a> для дополнительной информации.",
+        "tls_policy_maps_long": "Переопределение правил для политик исходящих соединений TLS",
         "toggle_all": "Выбрать все",
         "username": "Имя пользователя",
         "waiting": "Ожидание",
@@ -771,7 +810,8 @@
         "confirm_delete": "Подтвердите удаление этого элемента.",
         "danger": "Опасность",
         "deliver_inbox": "Освободить из карантина",
-        "disabled_by_config": "В текущей конфигурации системы функцию карантина отключена.",
+        "disabled_by_config": "В текущей конфигурации системы функция карантина отключена.",
+        "settings_info": "Максимальное количество элементов, которые будут помещены в карантин: %s<br>Максимальный размер электронного письма: %s MiB",
         "download_eml": "Скачать (.eml)",
         "empty": "Пусто",
         "high_danger": "Высокая",
@@ -784,7 +824,7 @@
         "notified": "Увед.",
         "qhandler_success": "Запрос успешно отправлен в систему. Теперь вы можете закрыть окно.",
         "qid": "Rspamd QID",
-        "qinfo": "Карантин сохраняет входящие сообщения класифицированные как нежелательные в базу данных.\r\n  <br>Отправители писем которые помечены как отвергнутые будут уверены что их письма <b>не</b> были доставлены Вам.\r\n  <br>\"Освободить из карантина\" изучит сообщение как хам по теореме Байеса и доставит его вам в Inbox.\r\n  <br>\"Запомнить как спам и удалить\" изучит сообщение как спам по теореме Байеса, а также вычислит нечеткие хэши, чтобы лучше блокировать подобные сообщения в дальнейшем.\r\n  <br>Учтите, что в зависимости от технических характеристик вашей системы, изучение большого количества сообщений может занять много времени.",
+        "qinfo": "Карантин сохраняет входящие сообщения, классифицированные как нежелательные, в базу данных.\r\n  <br>Отправители писем, которые помечены как отвергнутые, будут уверены что их письма <b>не</b> были доставлены вам.\r\n  <br>\"Освободить из карантина\" изучит сообщение как &laquo;ham&raquo; по теореме Байеса и доставит его вам в Inbox.\r\n  <br>\"Запомнить как спам и удалить\" изучит сообщение как спам по теореме Байеса, а также вычислит нечёткие хэши, чтобы лучше блокировать подобные сообщения в дальнейшем.\r\n  <br>Учтите, что в зависимости от технических характеристик вашей системы, изучение большого количества сообщений может занять много времени.",
         "qitem": "Обьект карантина",
         "quarantine": "Карантин",
         "quick_actions": "Действия",
@@ -802,7 +842,7 @@
         "sender": "Отправитель (SMTP)",
         "sender_header": "Отправитель (заголовок \"From\")",
         "type": "Тип",
-        "quick_release_link": "Ссылка для востановления",
+        "quick_release_link": "Ссылка для восстановления",
         "quick_delete_link": "Ссылка для удаления",
         "quick_info_link": "Ссылка на доп. информацию",
         "show_item": "Показать",
@@ -817,71 +857,73 @@
     },
     "start": {
         "help": "Справка",
-        "imap_smtp_server_auth_info": "Пожалуйста, используйте свой полный адрес электронной почты в формате <code>user@example.com</code> и PLAIN механизм авторизации.<br>\r\nВаши данные авторизации будут зашифрованы на уровне шифрования канала подключения к серверу, по этому убедитесь что вы используете надежное TLS подключение.",
-        "mailcow_apps_detail": "Используйте приложения для доступа к вашей почте, календарю, контактам и многое другое.",
-        "mailcow_panel_detail": "<b>Администраторы домена</b> могут создавать, изменять или удалять почтовые ящики и псевдонимы, измененять домены и смотреть информацию о своих назначенных доменов. <br><b>Пользователи почтовых ящиков</b> имеют возможность создавать временные псевдонимы (спам псевдонимы), менять свой пароль и настройки фильтра спама."
+        "imap_smtp_server_auth_info": "Пожалуйста, используйте свой полный адрес электронной почты в формате <code>user@example.com</code> и PLAIN механизм авторизации.<br>\r\nВаши данные авторизации будут зашифрованы на уровне шифрования канала подключения к серверу, поэтому убедитесь, что вы используете надежное TLS подключение.",
+        "mailcow_apps_detail": "Используйте приложения для доступа к вашей почте, календарю, контактам, и прочим функциям.",
+        "mailcow_panel_detail": "<b>Администраторы домена</b> могут создавать, изменять или удалять почтовые ящики и псевдонимы, измененять домены и смотреть информацию о своих назначенных доменах. <br><b>Пользователи почтовых ящиков</b> имеют возможность создавать временные псевдонимы (спам псевдонимы), менять свой пароль и настройки фильтра спама."
     },
     "success": {
         "acl_saved": "ACL для %s сохранено",
         "admin_added": "Администратор %s добавлен",
         "admin_api_modified": "Изменения в API сохранены",
         "admin_modified": "Изменения администратора сохранены",
-        "admin_removed": "Администратор %s удален",
+        "admin_removed": "Администратор %s удалён",
         "alias_added": "Псевдоним %s (%d) добавлен",
-        "alias_domain_removed": "Псевдоним домена %s удален",
+        "alias_domain_removed": "Псевдоним домена %s удалён",
         "alias_modified": "Изменения псевдонима %s сохранены",
-        "alias_removed": "Псевдоним %s удален",
+        "alias_removed": "Псевдоним %s удалён",
         "aliasd_added": "Добавлен псевдоним домена %s",
         "aliasd_modified": "Сохранить изменения псевдонима домена %s",
         "app_links": "Изменения ссылок на приложения сохранены",
         "app_passwd_added": "Добавлен новый пароль приложения",
-        "app_passwd_removed": "Пароль приложения ID %s удален",
+        "app_passwd_removed": "Пароль приложения ID %s удалён",
         "bcc_deleted": "Правила BCC удалены: %s",
         "bcc_edited": "Правило BCC %s отредактировано",
         "bcc_saved": "Правило BCC сохранено",
         "db_init_complete": "Инициализация базы данных завершена",
-        "delete_filter": "Фильтр ID %s удален",
+        "delete_filter": "Фильтр ID %s удалён",
         "delete_filters": "Фильтры удалены: %s",
         "deleted_syncjob": "Задание синхронизации ID %s удалено",
         "deleted_syncjobs": "Задания синхронизации удалены: %s",
-        "dkim_added": "DKIM ключ сохранен",
+        "dkim_added": "DKIM ключ сохранён",
         "dkim_duplicated": "DKIM ключи для домена %s были скопированы в %s",
-        "dkim_removed": "DKIM ключ %s удален",
+        "dkim_removed": "DKIM ключ %s удалён",
         "domain_added": "Добавлен домен %s",
         "domain_admin_added": "Администратор домена %s добавлен",
         "domain_admin_modified": "Сохранить изменения администратора домена %s",
-        "domain_admin_removed": "Администратор домена %s удален",
+        "domain_admin_removed": "Администратор домена %s удалён",
         "domain_modified": "Сохранить изменения домена %s",
-        "domain_removed": "Домен %s удален",
-        "dovecot_restart_success": "Dovecot перезапусщен успешно",
+        "domain_removed": "Домен %s удалён",
+        "dovecot_restart_success": "Dovecot перезапущен успешно",
         "eas_reset": "Кеш ActiveSync для пользователя %s был сброшен",
         "f2b_modified": "Изменения параметров Fail2ban сохранены",
         "forwarding_host_added": "Перенаправление узла %s добавлено",
         "forwarding_host_removed": "Перенаправление узла %s удалено",
         "global_filter_written": "Фильтр успешно записан в файл",
-        "hash_deleted": "Хеш удален",
-        "item_deleted": "Обьект %s удален",
+        "hash_deleted": "Хеш удалён",
+        "item_deleted": "Обьект %s удалён",
         "item_released": "Письмо %s восстановлено из карантина",
         "items_deleted": "Обьекты %s удалены",
         "items_released": "Выбраные письма восстановлены из карантина",
-        "learned_ham": "Письмо ID %s было изучено как хам",
-        "license_modified": "Изменения в лицензии были сохранены",
+        "learned_ham": "Письмо ID %s было изучено как &laquo;ham&raquo;",
+        "license_modified": "Изменения в лицензии сохранены",
         "logged_in_as": "Вы вошли как %s",
         "mailbox_added": "Почтовый аккаунт %s добавлен",
         "mailbox_modified": "Изменения почтового аккаунта %s сохранены",
-        "mailbox_removed": "Почтовый аккаунт %s удален",
+        "mailbox_removed": "Почтовый аккаунт %s удалён",
+        "nginx_reloaded": "Обновление конфигурация Nginx закончено",
         "object_modified": "Изменения объекта %s сохранены",
         "pushover_settings_edited": "Настройки сохранены, пожалуйста, выполните проверку доступа",
         "qlearn_spam": "Письмо ID %s было изучено как спам и удалено",
         "queue_command_success": "Команда выполнена успешно",
+        "password_policy_saved": "Политика паролей сохранена",
         "recipient_map_entry_deleted": "Правило перезаписи получателя ID %s было удалено",
         "recipient_map_entry_saved": "Правило перезаписи получателя \"%s\" было сохранено",
         "relayhost_added": "Промежуточный узел %s добавлен",
-        "relayhost_removed": "Промежуточный узел %s удален",
+        "relayhost_removed": "Промежуточный узел %s удалён",
         "reset_main_logo": "Восстановить логотип по умолчанию",
         "resource_added": "Ресурс %s добавлен",
         "resource_modified": "Изменения почтового аккаунта %s сохранены",
-        "resource_removed": "Ресурс %s удален",
+        "resource_removed": "Ресурс %s удалён",
         "rl_saved": "Лимиты для %s сохранены",
         "rspamd_ui_pw_set": "Пароль для Rspamd успешно установлен",
         "saved_settings": "Настройки сохранены",
@@ -895,7 +937,10 @@
         "verified_totp_login": "Авторизация TOTP пройдена",
         "verified_u2f_login": "Авторизация U2F пройдена",
         "verified_fido2_login": "Авторизация FIDO2 пройдена",
-        "verified_yotp_login": "Авторизация Yubico OTP пройдена"
+        "verified_yotp_login": "Авторизация Yubico OTP пройдена",
+        "xmpp_restarted": "Сервис XMPP перезагружен",
+        "xmpp_reloaded": "Обновление конфигурация XMPP закончено",
+        "xmpp_maps_updated": "Настройки XMPP обновлены"
     },
     "tfa": {
         "api_register": "%s использует Yubico Cloud API. Пожалуйста, получите ключ API для вашего ключа <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">здесь</a>",
@@ -925,7 +970,7 @@
     "fido2": {
         "set_fn": "Укажите понятное название",
         "fn": "Название",
-        "rename": "перейменовать",
+        "rename": "Переименовать",
         "confirm": "Подтвердить",
         "register_status": "Статус регистрации",
         "known_ids": "Известные ID",
@@ -963,11 +1008,11 @@
         "create_syncjob": "Создание нового задания синхронизации",
         "daily": "Раз в день",
         "day": "день",
-        "delete_ays": "Пожалуйста, подтвердите удалитение",
+        "delete_ays": "Пожалуйста, подтвердите удаление",
         "direct_aliases": "Личные псевдонимы",
-        "direct_aliases_desc": "На адреса с прямым псевдонимом распостраняются фильтры нежелательной почты и параметры политики TLS.",
+        "direct_aliases_desc": "На адреса с прямым псевдонимом распространяются фильтры нежелательной почты и параметры политики TLS.",
         "eas_reset": "Сбросить кеш ActiveSync устройств",
-        "eas_reset_help": "Во многих случаях сброс кеша устройств помогает восстановить поврежденный профиль ActiveSync.<br><b>Внимание:</b> все письма, календари и контакты будут загружены заново на все Ваши устройства!",
+        "eas_reset_help": "Во многих случаях сброс кеша устройств помогает восстановить повреждённый профиль ActiveSync.<br><b>Внимание:</b> все письма, календари и контакты будут загружены заново на все ваши устройства!",
         "eas_reset_now": "Сбросить кеш сейчас",
         "edit": "Изменить",
         "email": "Почта",
@@ -990,50 +1035,49 @@
         "messages": "письма",
         "never": "Никогда",
         "new_password": "Новый пароль",
-        "new_password_description": "Минимальные требование: 6 символов, включая буквы и цифры. Администратор мог изменить данную политику.",
         "new_password_repeat": "Подтверждение пароля (повтор)",
-        "no_active_filter": "Активированые фильтры отсутствуют",
+        "no_active_filter": "Активированные фильтры отсутствуют",
         "no_last_login": "Информация о последнем входе в пользовательский интерфейс отсутствует",
         "no_record": "Записи отсутствуют",
         "password": "Пароль",
         "password_now": "Текущий пароль (подтверждение изменения)",
         "password_repeat": "Подтверждение пароля (повтор)",
         "pushover_evaluate_x_prio": "Установить высокий приоритет уведомлений для писем с высоким приоритетом [<code>X-Priority: 1</code>]",
-        "pushover_info": "Настройки Push-уведомления будут применяться ко всей почте <b>%s</b> (за исключением спама) включая псевдонимы (личные, общие и тегированные).",
-        "pushover_only_x_prio": "Получать уведомления только об письмах с высоким приоритетом [<code>X-Priority: 1</code>]",
-        "pushover_sender_array": "Получать уведомления от списка адресов электронной почты <small>(envelop-from разделенные запятыми)</small>:",
-        "pushover_sender_regex": "Получать уведомления от отправителей удовлетворяющих regex-выражение:",
+        "pushover_info": "Настройки Push-уведомления будут применяться ко всей почте <b>%s</b> (за исключением спама), включая псевдонимы (личные, общие и тегированные).",
+        "pushover_only_x_prio": "Получать уведомления только о письмах с высоким приоритетом [<code>X-Priority: 1</code>]",
+        "pushover_sender_array": "Получать уведомления от списка адресов электронной почты <small>(envelop-from, разделённые запятыми)</small>:",
+        "pushover_sender_regex": "Получать уведомления от отправителей, удовлетворяющих regex-выражению:",
         "pushover_text": "Текст уведомления",
         "pushover_title": "Заголовок уведомления",
-        "pushover_vars": "Когда фильтрация по отправителю не определена, уведомения будут доставлятся от всех отправителей.<br>Можно использовать обычный фильтр по отправителю и разширенный regex-фильтр, а так же оба сразу.<br>Пожалуйста, ознакомьтесь с <a href=\"https://pushover.net/privacy\">Pushover Privacy Policy</a> перед использованием шаблонов для текста и заголовка",
+        "pushover_vars": "Когда фильтрация по отправителю не определена, уведомения будут доставлятся от всех отправителей.<br>Можно использовать обычный фильтр по отправителю и расширенный regex-фильтр, а также оба сразу.<br>Пожалуйста, ознакомьтесь с <a href=\"https://pushover.net/privacy\">Pushover Privacy Policy</a> перед использованием шаблонов для текста и заголовка",
         "pushover_verify": "Проверить доступ",
         "q_add_header": "Нежелательная почта",
         "q_all": "Все категории",
         "q_reject": "Отклонённая почта",
         "quarantine_notification": "Уведомления о спаме",
         "quarantine_category": "Категория уведомлений о спаме",
-        "quarantine_notification_info": "После того, как уведомление будет отправлено, элементы будут помечены как \"уведомленные\", и дальнейшие уведомления для этого сообщения отправляться не будут.",
-        "quarantine_category_info": "Категория \"Отклонённая почта\" включает в себя почту, которая была <code>отклонена</code>, тогда как \"Нежелательная почта\" будет уведомлять пользователя только о письмах, которые были помещены в папку <code>Junk</code>. Для того что бы получать уведомления об всех категориях спама выберите опцию \"Все категории\".",
+        "quarantine_notification_info": "После того, как уведомление будет отправлено, элементы будут помечены как \"уведомлённые\", и дальнейшие уведомления для этого сообщения отправляться не будут.",
+        "quarantine_category_info": "Категория \"Отклонённая почта\" включает в себя почту, которая была <code>отклонена</code>, тогда как \"Нежелательная почта\" содержит письма, которые были помещены в папку <code>Junk</code>. Для того, чтобы получать уведомления обо всех категориях спама, выберите опцию \"Все категории\".",
         "remove": "Удалить",
         "running": "В процессе выполнения",
         "save": "Сохранить изменения",
         "save_changes": "Сохранить изменения",
         "sender_acl_disabled": "<span class=\"label label-danger\">Проверка отправителя отключена</span>",
         "shared_aliases": "Общие псевдонимы",
-        "shared_aliases_desc": "На общие псевдонимы не влияют пользовательские настройки, такие как фильтр нежелательной почты или политика шифрования. Соответствующие фильтры нежелательной почты могут быть созданы только администратором в рамках политики домена.",
+        "shared_aliases_desc": "На общие псевдонимы не влияют пользовательские настройки, такие как фильтр нежелательной почты, или политика шифрования. Соответствующие фильтры нежелательной почты могут быть созданы только администратором в рамках политики домена.",
         "show_sieve_filters": "Показать включенные фильтры sieve",
         "sogo_profile_reset": "Сбросить профиль SOGo",
-        "sogo_profile_reset_help": "<b>Внимание:</b> это удалит настройки профиля SOGo вместе с <b>всеми контакты, календарями и фильтрами безвозвратно</b>.",
+        "sogo_profile_reset_help": "<b>Внимание:</b> это удалит настройки профиля SOGo вместе с <b>всеми контактами, календарями и фильтрами безвозвратно</b>.",
         "sogo_profile_reset_now": "Сбросить профиль сейчас",
         "spam_aliases": "Временные псевдонимы электронной почты",
         "spam_score_reset": "Сброс на настройки по умолчанию",
-        "spamfilter": "Фильтр спама",
+        "spamfilter": "Спам фильтр",
         "spamfilter_behavior": "Фильтрация спама",
-        "spamfilter_bl": "Черный список",
-        "spamfilter_bl_desc": "<b>Все</b> письма полученые от адресов электронной почты добавленных в черный список будут отклонены и <b>не</b> будут скопированы в карантин. Использование <code>*</code> разрешено. Фильтр применяется только к личным псевдонимам (с одним получателем), исключая catch-all псевдонимы и сам почтовый аккаунт.",
+        "spamfilter_bl": "Чёрный список",
+        "spamfilter_bl_desc": "<b>Все</b> письма, полученные от адресов электронной почты, добавленных в чёрный список, будут отклонены и <b>не</b> будут скопированы в карантин. Использование <code>*</code> разрешено. Фильтр применяется только к личным псевдонимам (с одним получателем), исключая catch-all псевдонимы и сам почтовый аккаунт.",
         "spamfilter_default_score": "Значения по умолчанию",
-        "spamfilter_green": "Зеленый: эти письма не являются спамом",
-        "spamfilter_hint": "Первое значение отображает низкую оценку спама, второе - высокую. <br />Заметка: пользователи POP3 должны использовать настройку 15:15 по умолчанию, что бы отключить попадание потенциального спама в \"Спам\" так как POP3 скачивает только содержимое папки \"Входящие\"",
+        "spamfilter_green": "Зелёный: эти письма не являются спамом",
+        "spamfilter_hint": "Первое значение отображает низкую оценку спама, второе &ndash; высокую. <br />Заметка: пользователи POP3 должны использовать настройку 15:15 по умолчанию, чтобы отключить попадание потенциального спама в \"Спам\", так как POP3 скачивает только содержимое папки \"Входящие\"",
         "spamfilter_red": "Красный: эти письма являются спамом и будут помещены в карантин, отправитель будет уведомлен об отказе доставки его письма, потому что оно не прошло спам-фильтр",
         "spamfilter_table_action": "Действия",
         "spamfilter_table_add": "Добавить элемент",
@@ -1042,8 +1086,8 @@
         "spamfilter_table_remove": "удалить",
         "spamfilter_table_rule": "Правило",
         "spamfilter_wl": "Белый список",
-        "spamfilter_wl_desc": "Белый список адресов электронной почты, позволяет <b>никогда</b> не классифицировать все полученные письма с указанных адресов как спам. Можно добавлять маски адресов. Фильтр применяется только к личным псевдонимам (с одним получателем), исключая catch-all псевдонимы и сам почтовый аккаунт.",
-        "spamfilter_yellow": "Желтый: это письма могут быть спамом, будут помечены как потенциальный спам и перемещены в папку \"Спам\"",
+        "spamfilter_wl_desc": "Белый список адресов электронной почты позволяет <b>никогда</b> не классифицировать все полученные письма с указанных адресов как спам. Можно добавлять маски адресов. Фильтр применяется только к личным псевдонимам (с одним получателем), исключая catch-all псевдонимы и сам почтовый аккаунт.",
+        "spamfilter_yellow": "Жёлтый: это письма могут быть спамом, будут помечены как потенциальный спам и перемещены в папку \"Спам\"",
         "status": "Статус",
         "sync_jobs": "Задания синхронизации",
         "tag_handling": "Обработка тегированной почты",
@@ -1054,10 +1098,10 @@
         "tag_in_subject": "Добавить к теме письма",
         "text": "Текст",
         "title": "Заголовок",
-        "tls_enforce_in": "Принудительный TLS - входящие",
-        "tls_enforce_out": "Принудительный TLS - исходящие",
+        "tls_enforce_in": "Принудительный TLS (входящие)",
+        "tls_enforce_out": "Принудительный TLS (исходящие)",
         "tls_policy": "Политика шифрования",
-        "tls_policy_warning": "<strong>Предупреждение:</strong> Если Вы включите принудетельное шифрованние почты, вы можете столкнутся с потерей писем.<br>Сообщения, которые не соответствуют политике, будут отбрасыватся с сообщением о серьезном сбое почтовым сервером.<br>Этот параметр применяется к вашему основному адресу электронной почты (логину), всем личным псевдонимам и псевдонимам доменов. Подразумеваются только псевдонимы <b>с одним почтовым ящиком</b> как получатель.",
+        "tls_policy_warning": "<strong>Предупреждение:</strong> Если вы включите принудительное шифрованние почты, вы можете столкнуться с потерей писем.<br>Сообщения, которые не соответствуют политике, будут отбрасываться с сообщением почтовым сервером о серьёзном сбое.<br>Этот параметр применяется к вашему основному адресу электронной почты (логину), всем личным псевдонимам и псевдонимам доменов. Подразумеваются только псевдонимы <b>с одним почтовым ящиком</b>, как получатель.",
         "user_settings": "Настройки пользователя",
         "username": "Имя пользователя",
         "verify": "Проверить",
@@ -1067,14 +1111,15 @@
         "weeks": "недели"
     },
     "warning": {
-        "cannot_delete_self": "Невозможно удалить пользователя, Вы сейчас его используете",
+        "cannot_delete_self": "Вы не можете удалить сами себя",
         "domain_added_sogo_failed": "Домен был добавлен, но перезагрузить SOGo не удалось, пожалуйста, проверьте журналы сервера.",
         "dovecot_restart_failed": "Перезагрузка Dovecot не удалась, пожалуйста, проверьте журналы сервера.",
-        "fuzzy_learn_error": "Ошибка сохранения нечеткого хэша: %s",
-        "hash_not_found": "Хеш не найден или уже удален",
-        "ip_invalid": "Пропущен не верный IP: %s",
+        "fuzzy_learn_error": "Ошибка сохранения нечёткого хэша: %s",
+        "hash_not_found": "Хеш не найден или уже удалён",
+        "ip_invalid": "Пропущен неверный IP: %s",
+        "is_not_primary_alias": "Пропущен неосновной псевдоним %s",
         "no_active_admin": "Невозможно деактивировать последнего активного администратора",
-        "quota_exceeded_scope": "Квота домена превышена: только почтовые ящики без лимита могут быть созданы.",
+        "quota_exceeded_scope": "Квота домена превышена: могут быть созданы только почтовые ящики без лимита.",
         "session_token": "Неверный токен формы: несоответствие токена",
         "session_ua": "Неверный токен формы: ошибка проверки User-Agent"
     }
diff --git a/mailcow/src/mailcow-dockerized/data/web/lang/lang.sk.json b/mailcow/src/mailcow-dockerized/data/web/lang/lang.sk.json
index e51f148..40ed5c6 100644
--- a/mailcow/src/mailcow-dockerized/data/web/lang/lang.sk.json
+++ b/mailcow/src/mailcow-dockerized/data/web/lang/lang.sk.json
@@ -4,20 +4,23 @@
         "app_passwds": "Spravovať heslá",
         "bcc_maps": "BCC mapy",
         "delimiter_action": "Oddeliť",
+        "domain_desc": "Zmeniť popis domény",
+        "domain_relayhost": "Zmeniť predávajúci server domény",
         "eas_reset": "Reset EAS zariadení",
         "extend_sender_acl": "Povoliť rozšírenie ACL odosielateľa externými adresami",
         "filters": "Filtre",
         "login_as": "Prihlásiť sa ako poštový používateľ",
+        "mailbox_relayhost": "Zmeniť predávajúci server schránky",
         "prohibited": "Zakázané cez ACL",
-        "protocol_access": "Meniť prístup k protokolom",
+        "protocol_access": "Upraviť povolené protokoly",
         "pushover": "Pushover",
         "quarantine": "Karanténa",
         "quarantine_attachments": "Umiestniť prílohy do karantény",
-        "quarantine_notification": "Zmeniť notifikácie karantény",
         "quarantine_category": "Zmeniť kategóriu karanténnych notifikácií",
-        "ratelimit": "Limit prenosu",
+        "quarantine_notification": "Zmeniť notifikácie karantény",
+        "ratelimit": "Obmedzenie prenosu",
         "recipient_maps": "Mapy príjemcu",
-        "smtp_ip_access": "Meniť prístup hostiteľov k SMTP",
+        "smtp_ip_access": "Spravovať povolených hostiteľov pre SMTP",
         "sogo_access": "Povoliť spravovanie prístupu do SOGo",
         "sogo_profile_reset": "Znovu nastaviť SOGo profil",
         "spam_alias": "Dočasné aliasy",
@@ -26,7 +29,10 @@
         "syncjobs": "Synchronizačné úlohy",
         "tls_policy": "TLS pravidlá",
         "unlimited_quota": "Neobmedzená kvóta pre poštové schránky",
-        "domain_desc": "Meniť popis domény"
+        "xmpp_admin": "Povýšiť XMPP používateľa na správcu",
+        "xmpp_domain_access": "Nakonfigurovať prístup k XMPP doméne.",
+        "xmpp_mailbox_access": "Nakonfigurovať používateľovi XMPP prístup.",
+        "xmpp_prefix": "Zmeniť XMPP subdoménu (prefix)"
     },
     "add": {
         "activate_filter_warn": "Všetky ostatné filtre budú deaktivované, ak bude zaškrtnuté pole \"Aktívny\".",
@@ -42,12 +48,13 @@
         "app_password": "Pridať heslo aplikácie",
         "automap": "Skúsiť automaticky mapovať priečinky (\"Sent items\", \"Sent\" => \"Sent\" atd.)",
         "backup_mx_options": "Možnosti preposielania",
+        "bcc_dest_format": "Cieľ kópie musí byť jedna platná emailová adresa. Pokiaľ potrebujete posielať kópie na viac adries, vytvorte Alias a použite ho tu.",
         "comment_info": "Súkromný komentár nie je viditeľný používateľovi, na rozdiel od verejného komentára, ktorý je prezentovaný ako popis v prehľade používateľov",
         "custom_params": "Voliteľné parametre",
         "custom_params_hint": "Správne: --param=xy, nesprávne: --param xy",
-        "delete1": "Vymazať zo zdroja, po dokončení",
-        "delete2": "Vymazať správy na cieli, ktoré nie sú na zdroji",
-        "delete2duplicates": "Vymazať duplikáty v cieľovom umiestnení",
+        "delete1": "Vymazať zo zdrojovej schránky, po dokončení prenosu",
+        "delete2": "Vymazať správy v cieľovej schránke, ak nie sú v zdrojovej",
+        "delete2duplicates": "Vymazať duplikáty v cieľovej schránke",
         "description": "Popis",
         "destination": "Cieľ",
         "disable_login": "Zablokovať prihlásenie (nevzťahuje sa na prichádzajúcu poštu)",
@@ -82,7 +89,7 @@
         "public_comment": "Verejný komentár",
         "quota_mb": "Kvóta (MiB)",
         "relay_all": "Preposielať všetkým príjemcom",
-        "relay_all_info": "↪ Ak sa rozhodnete <b>neposielať ďalej</b> všetkých príjemcov, budete musieť pridať (\"tzv. slepú\") poštovú schránku pre každého príjemcu.",
+        "relay_all_info": "↪ Ak sa rozhodnete <b>nepreposielať ďalej</b> všetkých príjemcov, budete musieť pridať (\"tzv. slepú\") poštovú schránku pre každého príjemcu.",
         "relay_domain": "Preposielať túto doménu",
         "relay_transport_info": "<div class=\"label label-info\">Info</div> Môžete definovať transportné mapy pre vlastné určenie cieľa pre túto doménu. Ak nie sú nastavené, použije sa MX záznam.",
         "relay_unknown_only": "Preposielať len neexistujúce poštové schránky. Existujúce budú doručené lokálne.",
@@ -92,17 +99,23 @@
         "sieve_desc": "Krátky popis",
         "sieve_type": "Typ filtru",
         "skipcrossduplicates": "Preskočiť duplikované správy naprieč priečinkami (akceptuje sa prvý nález)",
-        "subscribeall": "Odoberať všetky priečinky",
+        "subscribeall": "Synchronizovať všetky priečinky",
         "syncjob": "Pridať novú synchronizačnú úlohu",
         "syncjob_hint": "Upozornenie, heslá budú uložené v obyčajnom texte!",
         "target_address": "Cieľové adresy",
         "target_address_info": "<small>Celá emailová adresa/y (oddelené čiarkou).</small>",
         "target_domain": "Cieľová doména",
-        "timeout1": "Časový limit pre spojenie s diaľkovým hostiteľom",
-        "timeout2": "Časový limit pre spojenie s lokálnym hostiteľom",
+        "timeout1": "Časový limit pre spojenie so vzdialeným serverom",
+        "timeout2": "Časový limit pre spojenie s lokálnym serverom",
         "username": "Používateľské meno",
         "validate": "Overiť",
-        "validation_success": "Úspešne overené"
+        "validation_success": "Úspešne overené",
+        "xmpp": "Aktivovať XMPP pre túto doménu",
+        "xmpp_access": "XMPP prístup",
+        "xmpp_access_info": "XMPP musí byť aktivované pre túto doménu.",
+        "xmpp_admin": "XMPP administrátor",
+        "xmpp_admin_info": "<b>Upozornenie:</b> Povýši užívateľa na XMPP administrátora pre túto doménu.",
+        "xmpp_info": "Aktivovanie tejto funkcie umožní četovanie v tejto doméne."
     },
     "admin": {
         "access": "Prístup",
@@ -114,28 +127,33 @@
         "add": "Pridať",
         "add_admin": "Pridať administrátora",
         "add_domain_admin": "Pridať administrátora domény",
-        "add_forwarding_host": "Pridať doručovacieho hostiteľa",
-        "add_relayhost": "Pridať transportný záznam",
-        "add_relayhost_hint": "Prosím berte do úvahy, že autentifikačné dáta, ak existujú, budú uložené ako jednoduchý text.",
+        "add_forwarding_host": "Pridať preposielací server",
+        "add_relayhost": "Pridať transport",
+        "add_relayhost_hint": "Prosím berte do úvahy, že údaje overenia budú uložené ako nešifrovaný reťazec.",
         "add_row": "Pridať riadok",
         "add_settings_rule": "Pridať pravidlo nastavenia",
         "add_transport": "Pridať transport",
-        "add_transports_hint": "Prosím berte do úvahy, že overovacie dáta, ak existujú, budú uložené ako jednoduchý text.",
-        "additional_rows": " ďalšie riadky boli pridané",
+        "add_transports_hint": "Prosím berte do úvahy, že údaje overenia budú uložené ako nešifrovaný reťazec.",
+        "additional_rows": " boli pridané ďalšie riadky",
         "admin": "Administrátor",
         "admin_details": "Upraviť detaily administrátora",
         "admin_domains": "Pridelené domény",
+        "admins": "Administrátori",
+        "admins_ldap": "LDAP Administrátori",
+        "advanced_settings": "Pokročilé nastavenia",
         "api_allow_from": "Povoliť API prístup z týchto adries alebo rozsahov - IP/CIDR",
-        "api_info": "API momentálne pracuje. Dokumentáciu nájdete na <a href=\"/api\">/api</a>",
+        "api_info": "Dokumentáciu nájdete na <a href=\"/api\">/api</a>",
         "api_key": "API kľúč",
-        "api_skip_ip_check": "Preskočiť kontrolu IP pre API",
+        "api_read_only": "Prístup iba na čítanie",
+        "api_read_write": "Prístup aj so zápisom",
+        "api_skip_ip_check": "Vypnúť kontrolu IP",
         "app_links": "Odkazy na aplikácie",
         "app_name": "Meno aplikácie",
-        "apps_name": "\"mailcow Apps\" meno",
+        "apps_name": "\"mailcow Apps\" názov",
         "arrival_time": "Čas príchodu (čas servera)",
         "authed_user": "Overený používateľ",
         "ays": "Naozaj chcete pokračovať?",
-        "ban_list_info": "Ukázať zoznam zakázaných IP nižšie: <b>sieť (zostávajúci čas zákazu) - [akcia]</b>.<br />IP adresy čakajúce na unban budú odstránené z aktívneho zoznamu v priebehu niekoľkých sekúnd.<br />Červené značky indikujú aktívny permanentný zákaz.",
+        "ban_list_info": "Zoznam zakázaných IP je zobrazený nižšie: <b>sieť (zostávajúci čas zákazu) - [akcia]</b>.<br />IP adresy zaradené na unban budú odstránené z aktívneho zoznamu v priebehu niekoľkých sekúnd.<br />Červené položky zobrazujú permanentné blokovanie.",
         "change_logo": "Zmeniť logo",
         "configuration": "Konfigurácia",
         "convert_html_to_text": "Konvertovať HTML do obyčajného textu",
@@ -148,16 +166,16 @@
         "dkim_domains_selector": "Selektor",
         "dkim_domains_wo_keys": "Vybrať domény s chýbajúcimi kľúčmi",
         "dkim_from": "Od",
-        "dkim_from_title": "Zdrojová doména kopíruje dáta od",
+        "dkim_from_title": "Zdrojová doména, z ktorej sa majú kopírovať údaje",
         "dkim_key_length": "Dĺžka DKIM kľúča (bity)",
         "dkim_key_missing": "Chýbajúci kľúč",
-        "dkim_key_unused": "Kľúč je nepoužívaný",
-        "dkim_key_valid": "Kľúč je platný",
+        "dkim_key_unused": "Nepoužívaný kľúč",
+        "dkim_key_valid": "Platný kľúč",
         "dkim_keys": "ARC/DKIM kľúče",
         "dkim_overwrite_key": "Prepísať existujúci DKIM kľúč",
         "dkim_private_key": "Súkromný kľúč",
-        "dkim_to": "Komu",
-        "dkim_to_title": "Cieľová doména/y – bude prepísaná",
+        "dkim_to": "Do",
+        "dkim_to_title": "Cieľová doména/y – údaje budú prepísané",
         "domain": "Doména",
         "domain_admin": "Administrátor domény",
         "domain_admins": "Administrátori domény",
@@ -174,21 +192,21 @@
         "f2b_max_attempts": "Max. počet pokusov",
         "f2b_netban_ipv4": "Veľkosť IPv4 subnetu na ktorý sa aplikuje zákaz (8-32)",
         "f2b_netban_ipv6": "Veľkosť IPv6 subnetu na ktorý sa aplikuje zákaz (8-128)",
-        "f2b_parameters": "Fail2ban parametre",
-        "f2b_regex_info": "Logy ktoré sa berú do úvahy: SOGo, Postfix, Dovecot, PHP-FPM.",
+        "f2b_parameters": "Parametre automatického firewallu",
+        "f2b_regex_info": "Záznamy ktoré sa berú do úvahy: SOGo, Postfix, Dovecot, PHP-FPM.",
         "f2b_retry_window": "Čas v ktorom je treba uplatniť max. počet pokusov (s)",
         "f2b_whitelist": "Whitelist sietí/hostiteľov",
         "filter_table": "Tabuľka filtrov",
         "flush_queue": "Vyprázdniť frontu",
-        "forwarding_hosts": "Doručovací hostitelia",
-        "forwarding_hosts_add_hint": "Môžete buď špecifikovať IPv4/IPv6 adresy, siete v CIDR notácii, hostiteľské mená (ktoré budú preložené na IP adresy), alebo doménové mená (ktoré budú ako IP získané z SPF záznamov, alebo v prípade ich neprítomnosti, pomocou MX záznamov).",
-        "forwarding_hosts_hint": "Prichádzajúce správy sú bezpodmienečne prijaté z uvedených hostiteľov. Nekontroluje sa ich prítomnosť v DNSBL a neaplikuje sa u nich greylisting. Spam z uvedených hostiteľov sa neodmieta, ale občas môže skončiť nevyžiadanej pošte. Najčastejšie sa tu definujú hostitelia ktorý doručujú alebo majú presmerovanú poštu na tento server.",
+        "forwarding_hosts": "Preposielacie servery",
+        "forwarding_hosts_add_hint": "Môžete buď špecifikovať IPv4/IPv6 adresy, siete v CIDR notácii, názvy serverov (ktoré budú preložené na IP adresy), alebo doménové mená (ktoré budú ako IP získané z SPF záznamov, alebo v prípade ich neprítomnosti, pomocou MX záznamov).",
+        "forwarding_hosts_hint": "Prichádzajúce správy sú bezpodmienečne prijaté z uvedených serverov. Nekontroluje sa ich prítomnosť v DNSBL a neaplikuje sa u nich greylisting. Spam z uvedených serverov sa neodmieta, ale občas môže skončiť nevyžiadanej pošte. Najčastejšie sa tu definujú servery ktoré doručujú alebo majú presmerovanú poštu na tento server.",
         "from": "Od",
         "generate": "generovať",
         "guid": "GUID – unikátne ID",
         "guid_and_license": "GUID & Licencia",
-        "hash_remove_info": "Odstránením hashu pre limit prenosu (ak stále existuje), sa kompletne resetuje počítadlo.<br>\r\n Každý hash je označený individuálnou farbou.",
-        "help_text": "Pomocný text pod prihlasovacou maskou (HTML povolené)",
+        "hash_remove_info": "Odstránením hashu pre obmedzenie prenosu (ak stále existuje), sa kompletne resetuje počítadlo.<br>\r\n Každý hash je označený individuálnou farbou.",
+        "help_text": "Prepísať text nápovede pod prihlasovacou obrazovkou (HTML povolené)",
         "host": "Hostiteľ",
         "html": "HTML",
         "import": "Importovať",
@@ -196,15 +214,17 @@
         "in_use_by": "Používané",
         "inactive": "Neaktívny",
         "include_exclude": "Zahrnúť/Vylúčiť",
-        "include_exclude_info": "Podľa predvolených nastavení – so žiadnym výberom- <b>všetky schránky</b> sú adresované",
+        "include_exclude_info": "Ak nič nevyberiete tak bude adresované <b>všetkým schránkam</b>",
         "includes": "Zahrnúť týchto príjemcov",
+        "is_mx_based": "Na základe MX",
         "last_applied": "Naposledy aplikované",
         "license_info": "Licencia nie je potrebná, ale napomáha ďalšiemu vývoju.<br><a href=\"https://www.servercow.de/mailcow?lang=en#sal\" target=\"_blank\" alt=\"SAL order\">Registrujte váš GUID tu</a> alebo <a href=\"https://www.servercow.de/mailcow?lang=en#support\" target=\"_blank\" alt=\"Objednávka podpory\">zakúpte si podporu pre vašu mailcow inštaláciu.</a>",
         "link": "Odkaz",
         "loading": "Čakajte prosím ...",
+        "login_time": "Čas prihlásenia",
         "logo_info": "Váš obrázok bude upravený na výšku 40px pre vrchný navigačný riadok a na maximálnu šírku 250px pre úvodnú stránku. Odporúča sa škálovateľná grafika.",
-        "lookup_mx": "Overiť cieľ voči MX záznamu (doručenie pre .outlook.com bude smerované cez MX *.outlook.com na konkrétny server)",
-        "main_name": "\"mailcow UI\" meno",
+        "lookup_mx": "Cieľ je regulárny výraz ktorý sa zhoduje s MX záznamom (<code>.*google\\.com</code> smeruje všetku poštu na MX ktoré sú cieľom pre google.com cez tento skok)",
+        "main_name": "\"mailcow UI\" názov",
         "merged_vars_hint": "Sivé riadky boli načítané z <code>vars.(local.)inc.php</code> a nemôžu byť modifikované cez UI.",
         "message": "Správa",
         "message_size": "Veľkosť správy",
@@ -213,43 +233,52 @@
         "no_active_bans": "Žiadne aktívne zákazy",
         "no_new_rows": "Žiadne ďalšie riadky nie sú k dispozícii",
         "no_record": "Žiaden záznam",
+        "oauth2_apps": "OAuth2 Aplikácie",
+        "oauth2_add_client": "Pridať OAuth2 klienta",
         "oauth2_client_id": "ID klienta",
         "oauth2_client_secret": "Tajný kľuč",
-        "oauth2_info": "OAuth2 implementácia podporuje typ prideľovania \"Authorization Code\" a vydáva tokeny k obnoveniu.<br>\r\nServer taktiež automaticky vydáva nové tokeny k obnoveniu, akonáhle bol predchádzajúci token použitý.<br><br>\r\n→ Predvolený rozsah je <i>profile</i>. Iba používatelia poštovej schránky môžu byť autentifikovaný cez OAuth2. Ak je rozsahový pramater vynechaný, spadá naspäť do <i>profile</i>.<br>\r\n→ <i>Stavový</i> parameter je potrebný poslať klientom ako súčasť autorizačnej požiadavky.<br><br>\r\nCesty pre požiadavky ku OAuth2 API: <br>\r\n<ul>\r\n  <li>Koncový bod autorizácie: <code>/oauth/authorize</code></li>\r\n  <li>Koncový bod tokenu: <code>/oauth/token</code></li>\r\n  <li>Zdrojová stránka:  <code>/oauth/profile</code></li>\r\n</ul>\r\nAk príde k obnoveniu <i>tajného kľúča</i>, nezruší sa platnosť existujúcich autorizačných kódov, ale nebude možné obnoviť ich token.<br><br>\r\nOdobratím <i>tajného kľúča</i> bude mať za následok zrušenie všetkých aktívnych relácií. Všetci klienti musia podstúpiť re-autentifikačný proces.",
+        "oauth2_info": "OAuth2 implementácia podporuje typ prideľovania \"Authorization Code\" a vydáva tokeny k obnoveniu.<br>\r\nServer automaticky vydáva nové tokeny k obnoveniu, akonáhle bol predchádzajúci token použitý.<br><br>\r\n&#8226; Predvolený rozsah je <i>profile</i>. Iba používatelia poštovej schránky môžu byť autentifikovaný cez OAuth2. Ak je rozsahový pramater vynechaný, spadá naspäť do <i>profile</i>.<br>\r\n&#8226; <i>Stavový</i> parameter je potrebný poslať klientom ako súčasť autorizačnej požiadavky.<br><br>\r\nCesty pre požiadavky ku OAuth2 API: <br>\r\n<ul>\r\n <li>Koncový bod autorizácie: <code>/oauth/authorize</code></li>\r\n <li>Koncový bod tokenu: <code>/oauth/token</code></li>\r\n <li>Zdrojová stránka: <code>/oauth/profile</code></li>\r\n</ul>\r\nAk príde k obnoveniu <i>tajného kľúča</i>, nezruší sa platnosť existujúcich autorizačných kódov, ale nebude možné obnoviť ich token.<br><br>\r\nOdobratím <i>tajného kľúča</i> bude mať za následok zrušenie všetkých aktívnych relácií. Všetci klienti musia podstúpiť re-autentifikačný proces.",
         "oauth2_redirect_uri": "Presmerovať URI",
         "oauth2_renew_secret": "Vygenerovať nový tajný kľuč",
         "oauth2_revoke_tokens": "Odobrať všetky tokeny klienta",
         "optional": "voliteľné",
         "password": "Heslo",
+        "password_length": "Dĺžka hesla",
+        "password_policy": "Politika hesiel",
+        "password_policy_chars": "Musí obsahovať najmenej jedno písmeno",
+        "password_policy_length": "Minimálna dĺžka hesla je %d",
+        "password_policy_lowerupper": "Musí obsahovať malé a veľké písmeno",
+        "password_policy_numbers": "Musí obsahovať najmenej jedno číslo",
+        "password_policy_special_chars": "Musí obsahovať špeciálny znak",
         "password_repeat": "Potvrdzujúce heslo (opakovať)",
         "priority": "Priorita",
         "private_key": "Súkromný kľúč",
         "quarantine": "Karanténa",
-        "quarantine_bcc": "Poslať kópiu všetkých upozornení (BCC) tomuto príjemcovi:<br><small>Nechať prázdne pre vypnutie. <b>Nepodpísaná, neskontrolovaná pošta, by mala byť doručená interne.</b></small>",
-        "quarantine_exclude_domains": "Vymedziť domény a doménové aliasy",
-        "quarantine_max_age": "Maximálne obdobie v dňoch<br><small>Hodnota sa musí rovnať alebo byť väčšia ako 1 deň.</small>",
-        "quarantine_max_size": "Maximálna veľkosť v MiB (väčšie prvky sú vyradené):<br><small>0 neznamená <b>neobmedzené</b>.</small>",
+        "quarantine_bcc": "Poslať kópiu všetkých upozornení (BCC) tomuto príjemcovi:<br><small>Pre deaktiváciu nechajte nevyplnené. <b>Nepodpísaná, neskontrolovaná pošta, mala by byť doručovaná iba interne.</b></small>",
+        "quarantine_exclude_domains": "Vylúčiť domény a doménové aliasy",
+        "quarantine_max_age": "Maximálne obdobie v dňoch<br><small>Hodnota musí byť 1 alebo viac dní.</small>",
         "quarantine_max_score": "Neposielať notifikácie ak je spam skóre väčšie ako hodnota:<br><small>Predvolená je 9999.0</small>",
-        "quarantine_notification_html": "Predloha notifikácie:<br><small>Nechať prázdne pre obnovenie originálnej predlohy.</small>",
+        "quarantine_max_size": "Maximálna veľkosť v MiB (väčšie správy sú vyradené):<br><small>0 <b>neznamená</b> neobmedzené.</small>",
+        "quarantine_notification_html": "Šablóna notifikácie:<br><small>Nechajte prázdne pre použitie originálnej šablóny.</small>",
         "quarantine_notification_sender": "Odosielateľ notifikácie",
         "quarantine_notification_subject": "Predmet notifikácie",
-        "quarantine_redirect": "<b>Presmerovať notifikácie</b> na túto adresu:<br><small>Pre vypnutie nechajte nevyplnené. <b>Nepodpísaná, neskontrolovaná pošta, by mala byť doručená interne.</b></small>",
-        "quarantine_release_format": "Uvoľniť položky z karantény ako",
-        "quarantine_release_format_att": "Ako príloha",
+        "quarantine_redirect": "<b>Presmerovať všetky notifikácie</b> na túto adresu:<br><small>Pre deaktiváciu nechajte nevyplnené. <b>Nepodpísaná, neskontrolovaná pošta, mala by byť doručovaná iba interne.</b></small>",
+        "quarantine_release_format": "Uvoľňovať položky z karantény ako",
+        "quarantine_release_format_att": "Prílohu",
         "quarantine_release_format_raw": "Nemodifikovaný originál",
         "quarantine_retention_size": "Počet zadržaných správ pre jednotlivé poštové schránky<br><small>0 znamená <b>neaktívne</b>.</small>",
         "queue_ays": "Prosím potvrďte vymazanie všetkých položiek z aktuálnej fronty.",
         "queue_deliver_mail": "Doručiť",
         "queue_hold_mail": "Pozdržať",
         "queue_manager": "Správca fronty",
-        "queue_unban": "Povoliť",
-        "queue_unhold_mail": "Povoliť",
         "queue_show_message": "Zobraziť správu",
+        "queue_unban": "Odblokovať",
+        "queue_unhold_mail": "Uvoľniť",
         "quota_notification_html": "Notifikácia email predloha:<br><small>Nechať prázdne pre obnovenie originálnej predlohy.</small>",
-        "quota_notification_sender": "Notifikácia email odosielateľ",
-        "quota_notification_subject": "Notifikácia email predmet",
+        "quota_notification_sender": "Odosielateľ notifikácií",
+        "quota_notification_subject": "Predmet notifikácií",
         "quota_notifications": "Notifikácie o kvótach",
-        "quota_notifications_info": "Upozornenie na kvótu sú odoslané používateľom, keď prekročia 80% a 95% objemu schránky.",
+        "quota_notifications_info": "Notifikácie o kvóte sú odosielané používateľom, keď prekročia 80% a 95% objemu schránky.",
         "quota_notifications_vars": "{{percent}} sa rovná aktuálnej kvóte používateľa <br>{{užívateľské meno}} je poštová schránka",
         "r_active": "Aktívne obmedzenia",
         "r_inactive": "Neaktívne obmedzenia",
@@ -258,8 +287,9 @@
         "recipients": "Príjemcovia",
         "refresh": "Aktualizovať",
         "regen_api_key": "Obnoviť API kľúč",
-        "regex_maps": "Mapy regulérnych výrazov",
-        "relay_from": "\"From:\" adresa",
+        "regex_maps": "Mapy regulárnych výrazov",
+        "relay_from": "\"Od:\" adresa",
+        "relay_rcpt": "\"Komu:\" adresa",
         "relay_run": "Spustiť test",
         "relayhosts": "Transportné mapy pre odosielanie",
         "relayhosts_hint": "Definuje transportné mapy tak, aby ich bolo možné použiť pri konfigurácii domény.<br>\r\n  Transportná služba je vždy \"smtp:\" a použije TLS ak to bude umožnené. Wrapped TLS (SMTPS) nie je podporované. Zohľadňujú sa TLS pravidlá jednotlivých používateľov pri odosielaní.<br>\r\n  Ovplyvňuje vybrané domény vrátane doménových aliasov.",
@@ -274,10 +304,11 @@
         "rsetting_no_selection": "Prosím vyberte pravidlo",
         "rsetting_none": "Žiadne dostupné pravidlá",
         "rsettings_insert_preset": "Vložiť príklad \"%s\"",
-        "rsettings_preset_1": "Vypnúť všetky obmedzenia pre overených používateľov okrem DKIM a prenosového obmedzenia ",
+        "rsettings_preset_1": "Vypnúť všetky obmedzenia pre overených používateľov okrem DKIM a obmedzenia prenosu (rate limiting)",
         "rsettings_preset_2": "Prijať každý spam",
         "rsettings_preset_3": "Povoliť len špecifických odosielateľov (využitie ako interná schránka pre lokálne doručovanie)",
-        "rspamd-com_settings": "Názov nastavenia bude automaticky generovaný, prosím pozrite sa na príklad uvedeny nižšie. Pre viac informácií navštívte <a href=\"https://rspamd.com/doc/configuration/settings.html#settings-structure\" target=\"_blank\">Rspamd docs</a>",
+        "rsettings_preset_4": "Deaktivujte Rspamd pre doménu",
+        "rspamd-com_settings": "Názov nastavenia bude automaticky vygenerovaný, pozrite sa prosím na ukážky uvedené nižšie. Pre viac informácií navštívte <a href=\"https://rspamd.com/doc/configuration/settings.html#settings-structure\" target=\"_blank\">Rspamd dokumentáciu</a>",
         "rspamd_global_filters": "Mapy globálnych filtrov",
         "rspamd_global_filters_agree": "Budem opatrný!",
         "rspamd_global_filters_info": "Mapy globálnych filtrov obsahujú rozličné druhy globálnych blacklistov a whitelistov.",
@@ -288,18 +319,22 @@
         "search_domain_da": "Vyhľadať domény",
         "send": "Odoslať",
         "sender": "Odosielateľ",
+        "service": "Služba",
         "service_id": "ID služba",
         "source": "Zdroj",
         "spamfilter": "Spam filter",
         "subject": "Predmet",
+        "success": "Úspech",
         "sys_mails": "Systémové správy",
         "text": "Text",
         "time": "Čas",
-        "title_name": "\"mailcow UI\" názov webstránky",
+        "title": "Názov",
+        "title_name": "\"mailcow UI\" titulka",
         "to_top": "Naspať navrch",
-        "transport_dest_format": "Syntax: example.org, .example.org, *, box@example.org (viacero hodnôt môžu byť oddelené čiarkou)",
+        "transport_dest_format": "Regulárny výraz alebo syntax: example.org, .example.org, *, box@example.org (viacero hodnôt môžu byť oddelené čiarkou)",
         "transport_maps": "Transportné Mapy",
-        "transports_hint": "→ Záznam v transportnej mape <b>prevažuje</b> nad transportnou mapou pre odosielanie</b>.<br>\r\n→ Nastavenie TLS pre používateľa je ignorované a môže byť vynútené TLS mapovaním.<br>\r\n→ Transportná služba je definovaná vždy \"smtp:\" a použije TLS ak to bude umožnené. Wrapped TLS (SMTPS) nie je podporované.<br>\r\n→ Adresy ktoré sa rovnajú hodnote \"/localhost$/\" budú vždy transportované cez \"local:\" a nebudú použité pre cieľový záznam \"*\".<br>\r\n→ Po zadaní prihlasovacích údajov pre ďalší skok \"[host]:25\", Postfix <b>vždy</b> hľadá \"host\" a následne \"[host]:25\". Táto vlastnosť znemožňuje používať \"host\" a \"[host]:25\" naraz.",
+        "transport_test_rcpt_info": "&#8226; Na otestovanie odchádzajúcej pošty je možné použiť null@hosted.mailcow.de ako adresáta",
+        "transports_hint": "&#8226; Záznam v transportnej mape <b>prevažuje</b> nad transportnou mapou pre odosielanie</b>.<br>\r\n&#8226; Prenos na základe MX je preferovaná voľba.<br>\r\n&#8226; Nastavenie TLS pre používateľa je ignorované a môže byť vynútené TLS mapovaním.<br>\r\n&#8226; Transportná služba je definovaná vždy \"smtp:\" a použije TLS ak to bude umožnené. Wrapped TLS (SMTPS) nie je podporované.<br>\r\n&#8226; Adresy ktoré sa rovnajú hodnote \"/localhost$/\" budú vždy transportované cez \"local:\" a nebudú použité pre cieľový záznam \"*\".<br>\r\n&#8226; Po zadaní prihlasovacích údajov pre ďalší skok \"[host]:25\", Postfix <b>vždy</b> hľadá \"host\" a následne \"[host]:25\". Táto vlastnosť znemožňuje používať \"host\" a \"[host]:25\" naraz.",
         "ui_footer": "Pätička (HTML povolené)",
         "ui_header_announcement": "Oznámenie",
         "ui_header_announcement_active": "Aktivovať oznámenie",
@@ -307,15 +342,16 @@
         "ui_header_announcement_help": "Oznámenie je viditeľné pre všetkých prihlásených používateľov a na prihlasovacej obrazovke používateľského rozhrania.",
         "ui_header_announcement_select": "Zvoľte typ oznámenia",
         "ui_header_announcement_type": "Typ",
+        "ui_header_announcement_type_danger": "Veľmi dôležité",
         "ui_header_announcement_type_info": "Info",
         "ui_header_announcement_type_warning": "Dôležité",
-        "ui_header_announcement_type_danger": "Veľmi dôležité",
         "ui_texts": "UI značky a texty",
         "unban_pending": "čakajúci na unban",
         "unchanged_if_empty": "Nechajte prázdne, ak sa nemení",
         "upload": "Nahrať",
         "username": "Prihlasovacie meno",
         "validate_license_now": "Validovať GUID cez licenčný server",
+        "verify": "Kontrola",
         "yes": "&#10003;"
     },
     "danger": {
@@ -328,9 +364,9 @@
         "aliases_in_use": "Max. počet aliasov musí byť väčší alebo rovnajúci sa %d",
         "app_name_empty": "Meno aplikácie nemôže byť prázdne",
         "app_passwd_id_invalid": "Heslo aplikácie ID %s neplatné",
-        "bcc_empty": "BCC cieľ nemôže byť prázdny",
-        "bcc_exists": "BCC mapa %s existuje pre typ %s",
-        "bcc_must_be_email": "BCC cieľ %s nie je platná emailová adresa",
+        "bcc_empty": "Cieľ kópie nemôže byť prázdny",
+        "bcc_exists": "Skrytá kópia %s už existuje pre typ %s",
+        "bcc_must_be_email": "Cieľ kópie %s nie je platná emailová adresa",
         "comment_too_long": "Komentár je príliš dlhý, povolených je max. 160 znakov",
         "defquota_empty": "Predvolená kvóta pre poštovú schránku nemôže byť 0.",
         "description_invalid": "Popis zdroja pre %s je neplatný",
@@ -344,6 +380,7 @@
         "domain_quota_m_in_use": "Doménová kvóta musí byť väčšia alebo rovnajúca sa %s MiB",
         "extra_acl_invalid": "Externá adresa odosielateľa \"%s\" je neplatná",
         "extra_acl_invalid_domain": "Externý odosielateľ \"%s\" používa neplatnú doménu",
+        "fido2_verification_failed": "FIDO2 overenie zlyhalo: %s",
         "file_open_error": "Nemožno otvoriť súbor pre zápis",
         "filter_type": "Nesprávny typ filtra",
         "from_invalid": "Odosielateľ nemôže byť prázdny",
@@ -367,7 +404,7 @@
         "invalid_recipient_map_old": "Neplatná pôvodná mapa príjemcu: %s",
         "ip_list_empty": "Zoznam povolených IP nemôže byť prázdny",
         "is_alias": "%s je už používané ako alias adresa",
-        "is_alias_or_mailbox": "%s je už používaná ako adresa aliasu, poštovej schránky nebo aliasu odvodeného z aliasu domény",
+        "is_alias_or_mailbox": "%s je už používaná ako adresa aliasu, poštovej schránky alebo aliasu odvodeného z aliasu domény",
         "is_spam_alias": "%s je už používaná ako adresa dočasného aliasu (spam alias adresa)",
         "last_key": "Posledný kľúč nemôže byť vymazaný, deaktivujte najprv TFA",
         "login_failed": "Prihlásenie zlyhalo",
@@ -387,6 +424,7 @@
         "network_host_invalid": "Neplatná sieť alebo hostiteľ: %s",
         "next_hop_interferes": "%s narúša ďalší skok %s",
         "next_hop_interferes_any": "Existujúci ďalší skok narúša %s",
+        "nginx_reload_failed": "Nginx reload zlyhal: %s",
         "no_user_defined": "Nie je definovaný žiadny používateľ",
         "object_exists": "Objekt %s už existuje",
         "object_is_not_numeric": "Hodnota %s nie je numerická",
@@ -404,7 +442,7 @@
         "redis_error": "Redis chyba: %s",
         "relayhost_invalid": "Položka %s je neplatná",
         "release_send_failed": "Správa nemohla byť uvoľnená: %s",
-        "reset_f2b_regex": "Regex filter sa nepodarilo resetovať, skúste to znovu alebo počkajte pár sekúnd a reloadnite stránku.",
+        "reset_f2b_regex": "Regex filter sa nepodarilo resetovať, skúste to znovu alebo počkajte pár sekúnd a obnovte stránku.",
         "resource_invalid": "Zdrojové meno %s je neplatné",
         "rl_timeframe": "Obmedzenie časového rámca je nesprávny",
         "rspamd_ui_pw_length": "Heslo pre Rspamd rozhranie by malo mať minimálne 6 znakov",
@@ -427,42 +465,52 @@
         "totp_verification_failed": "TOTP overenie zlyhalo",
         "transport_dest_exists": "Transportný cieľ \"%s\" už existuje",
         "u2f_verification_failed": "U2F overenie zlyhalo: %s",
-        "fido2_verification_failed": "FIDO2 overenie zlyhalo: %s",
         "unknown": "Nastala neznáma chyba",
         "unknown_tfa_method": "Neznáma TFA metóda",
         "unlimited_quota_acl": "Neobmedzené kvóta je zakázaná cez ACL",
-        "username_invalid": "Užívateľské meno %s nemôže byť použité",
+        "username_invalid": "Používateľské meno %s nemôže byť použité",
         "validity_missing": "Zadajte periódu platnosti",
         "value_missing": "Prosím poskytnite všetky hodnoty",
+        "xmpp_map_write_error": "Nemožno zapísať XMPP mapu: %s",
+        "xmpp_reload_failed": "Reloadnutie XMPP zlyhalo",
+        "xmpp_restart_failed": "Reštartovanie XMPP zlyhalo",
         "yotp_verification_failed": "Yubico OTP overenie zlyhalo: %s"
     },
     "debug": {
         "chart_this_server": "Graf (tento server)",
         "containers_info": "Informácie o kontajneroch",
         "disk_usage": "Použitie disku",
-        "external_logs": "Externé správy",
+        "docs": "Dokumenty",
+        "external_logs": "Externé logy",
         "history_all_servers": "História (všetky servery)",
-        "in_memory_logs": "Správy uložené v pamäti",
+        "in_memory_logs": "Logy uložené v pamäti",
         "jvm_memory_solr": "JVM spotreba pamäte",
-        "log_info": "<b>Logy v pamäti</b> sú zbierané do Redis listu s max. limitom (%d) riadkov každú minútu, čo bráni nadmernej záťaži servera.\r\n  <br>Logy v pamäti nemajú trvalý charakter. Všetky aplikácie ktoré vedú logy v pamäti, taktiež logujú do Docker démona a súčasne do nastaveného logging drivera.\r\n  <br>Logy v pamäti sa môžu použiť na ladenie menších problémov s kontajnermi.</p>\r\n  <p><b>Externé logy</b> sú zbierané cez API danej aplikácie.</p>\r\n  <p><b>Statické logy</b> sú väčšinou aktivity, ktoré nie sú logované do Docker démona, ale musia byť trvalo zaznamenané (s výnimkou API záznamov).</p>",
-        "logs": "Správy",
+        "last_modified": "Naposledy upravené",
+        "log_info": "<b>Logy v pamäti</b> sú zbierané do Redis listu s max. limitom LOG_LINES (%d) riadkov každú minútu, čo bráni nadmernej záťaži servera.\r\n  <br>Logy v pamäti nemajú trvalý charakter. Všetky aplikácie ktoré vedú logy v pamäti, tiež logujú do Docker démona a súčasne do nastaveného logging drivera.\r\n  <br>Logy v pamäti sa môžu použiť na ladenie menších problémov s kontajnermi.</p>\r\n  <p><b>Externé logy</b> sú zbierané cez API danej aplikácie.</p>\r\n  <p><b>Statické logy</b> sú väčšinou aktivity, ktoré nie sú logované do Docker démona, ale musia byť trvalo zaznamenané (s výnimkou API záznamov).</p>",
+        "login_time": "Čas",
+        "logs": "Logy",
+        "online_users": "Používateľov online",
         "restart_container": "Reštartovať",
-        "solr_dead": "Solr štartuje, bol vypnutý alebo zlyhal.",
-        "solr_docs": "Dokumenty",
-        "solr_last_modified": "Naposledy upravené",
-        "solr_size": "Veľkosť",
-        "solr_started_at": "Spustený",
+        "service": "Služba",
+        "size": "Veľkosť",
+        "solr_dead": "Solr štartuje, je vypnutý alebo nebeží.",
         "solr_status": "Solr status",
-        "solr_uptime": "Doba behu",
+        "started_at": "Spustený",
         "started_on": "Spustený",
-        "static_logs": "Statické správy",
-        "system_containers": "Systém & Kontajnery"
+        "static_logs": "Statické logy",
+        "success": "Úspech",
+        "system_containers": "Systém & Kontajnery",
+        "uptime": "Doba behu",
+        "username": "Používateľské meno",
+        "xmpp_dead": "XMPP štartuje, je vypnutý alebo nebeží.",
+        "xmpp_status": "XMPP status"
     },
     "diagnostics": {
         "cname_from_a": "Hodnota odvodená od A/AAAA záznamu. Toto je podporené len v prípade ak záznam poukazuje na správny zdroj.",
         "dns_records": "DNS záznamy",
         "dns_records_24hours": "Berte prosím do úvahy, že zmeny v DNS môžu trvať až 24 hodín, aby sa zmeny prejavili na tejto stránke. Pre jednoduchosť DNS konfigurácie môžete použiť údaje uvedené nižšie, prípadne skontrolovať tak správnosť záznamov v DNS.",
         "dns_records_data": "Správne dáta",
+        "dns_records_docs": "Pozrite si prosím <a target=\"_blank\" href=\"https://mailcow.github.io/mailcow-dockerized-docs/prerequisite-dns/\">dokumentáciu</a>.",
         "dns_records_name": "Meno",
         "dns_records_status": "Súčasný stav",
         "dns_records_type": "Typ",
@@ -470,21 +518,23 @@
     },
     "edit": {
         "active": "Aktívny",
+        "admin": "Upraviť administrátora",
+        "advanced_settings": "Pokročilé nastavenia",
         "alias": "Upraviť alias",
         "allow_from_smtp": "Umožniť iba týmto IP adresám používať <b>SMTP</b>",
-        "allow_from_smtp_info": "Nechať prázdne pre povolenie všetkých odosielateľov.<br>IPv4/IPv6 adresy a siete.",
+        "allow_from_smtp_info": "Nechajte prázdne pre povolenie všetkých odosielateľov.<br>IPv4/IPv6 adresy a siete.",
         "allowed_protocols": "Povolené protokoly",
         "app_name": "Meno aplikácie",
         "app_passwd": "Heslo aplikácie",
         "automap": "Skúsiť automapovať priečinky (\"Sent items\", \"Sent\" => \"Sent\" atd.)",
         "backup_mx_options": "Možnosti preposielania",
-        "bcc_dest_format": "BCC cieľ musí byť jedna platná emailová adresa.",
+        "bcc_dest_format": "Cieľ kópie musí byť jedna platná emailová adresa. Pokiaľ potrebujete posielať kópie na viac adries, vytvorte Alias a použite ho tu.",
         "client_id": "ID klienta",
         "client_secret": "Klientský tajný kľúč",
         "comment_info": " Súkromný komentár nie je viditeľný používateľovi, na rozdiel od verejného komentára, ktorý je prezentovaný ako popis v prehľade používateľov",
-        "delete1": "Vymazať zo zdroja, po dokončení",
-        "delete2": "Vymazať správy na cieli, ktoré nie sú na zdroji",
-        "delete2duplicates": "Vymazať duplikáty na cieli",
+        "delete1": "Vymazať zo zdrojovej schránky, po dokončení prenosu",
+        "delete2": "Vymazať správy v cieľovej schránke, ak nie sú v zdrojovej",
+        "delete2duplicates": "Vymazať duplikáty v cieľovej schránke",
         "delete_ays": "Potvrďte zmazanie.",
         "description": "Popis",
         "disable_login": "Zablokovať prihlásenie (nevzťahuje sa na prichádzajúcu poštu)",
@@ -493,13 +543,13 @@
         "domain_quota": "Kvóta domény",
         "domains": "Domény",
         "dont_check_sender_acl": "Vypnúť kontrolu odosielateľa pre doménu %s (+ alias domény)",
-        "edit_alias_domain": "Upraviť Alias domény",
+        "edit_alias_domain": "Upraviť alias domény",
         "encryption": "Zašifrovanie",
         "exclude": "Vyradiť objekty (regex)",
         "extended_sender_acl": "Externé adresy odosielateľa",
         "extended_sender_acl_info": "DKIM doménový kľúč by mal byť importovaný, ak je dostupný.<br>\r\n Nezabudnite pridať tento server prislúchajúcemu SPF TXT záznamu.<br>\r\n  Kedykoľvek je doména alebo alias doména pridaná na server, ktorá sa zhoduje s externou adresou, táto externá adresa je odstránená.<br>\r\n  Použite @domain.tld pre schopnosť poslať ako *@domain.tld.",
-        "force_pw_update": "Prinútiť aktualizáciu hesla pri ďalšom prihlásení",
-        "force_pw_update_info": "Tento používateľ bude schopný prihlásiť sa len do %s.",
+        "force_pw_update": "Vynútiť zmenu hesla pri ďalšom prihlásení",
+        "force_pw_update_info": "Používateľ sa bude môcť prihlásiť len do administrácie.",
         "full_name": "Celé meno",
         "gal": "Globálny zoznam adries",
         "gal_info": "Globálny zoznam adries obsahuje všetky objekty v doméne a nemôže byť upravená žiadnym používateľom. Informácie o Free/Busy stave budú chýbať ak bude vypnutý! <b>Reštartujte SOGo na aplikáciu zmien.</b>",
@@ -508,17 +558,20 @@
         "hostname": "Hostiteľ",
         "inactive": "Neaktívny",
         "kind": "Druh",
+        "lookup_mx": "Cieľ je regulárny výraz ktorý sa zhoduje s MX záznamom (<code>.*google\\.com</code> smeruje všetku poštu na MX ktoré sú cieľom pre google.com cez tento skok)",
         "mailbox": "Upraviť poštovú schránku",
         "mailbox_quota_def": "Predvolená veľkosť poštovej schránky",
+        "mailbox_relayhost_info": "Aplikované len na používateľské schránky a priame aliasy, prepisuje doménového preposielateľa.",
         "max_aliases": "Max. počet aliasov",
         "max_mailboxes": "Max. počet schránok",
         "max_quota": "Max. kvóta pre poštovú schránku (MiB)",
         "maxage": "Maximálne obdobie správ v dňoch, ktoré sa budú vzdialene dotazovať<br><small>(0 = ignorovať obdobie age)</small>",
         "maxbytespersecond": "Max. bajtov za sekundu <br><small>(0 = bez limitu)</small>",
-        "mbox_rl_info": "Tento limit je aplikovaný na SASL prihlasovacom meno, je zhodný s \"from\" adresou používanou prihláseným používateľom. Prenosový limit u poštovej adresy má prednosť pred domain-wide prenosovým limitom.",
+        "mbox_rl_info": "Tento limit je aplikovaný na báze prihlasovacieho mena SASL, je zhodný s \"from\" adresou používanou prihláseným používateľom. Prenosový limit u poštovej adresy má prednosť pred domain-wide prenosovým limitom.",
         "mins_interval": "Interval (min)",
         "multiple_bookings": "Viaceré rezervácie",
         "nexthop": "Ďalší skok",
+        "none_inherit": "Žiadne / Zdediť",
         "password": "Heslo",
         "password_repeat": "Potvrdzovacie heslo (opakovať)",
         "previous": "Predchádzajúca strana",
@@ -528,12 +581,15 @@
         "pushover_info": "Push notifikácie budú aplikované na všetky správy (s výnimkou spamu) doručené pre <b>%s</b> vrátane aliasov (zdieľané, nezdieľané, označené).",
         "pushover_only_x_prio": "Vyberať len správy s vysokou prioritou [<code>X-Priority: 1</code>]",
         "pushover_sender_array": "Zohľadňujú sa nasledujúce adresy odosielateľa <small>(oddelené čiarkou)</small>",
-        "pushover_sender_regex": "Užívateľ vybraný regulérnym výrazom",
+        "pushover_sender_regex": "Používateľ vybraný regulárnym výrazom",
         "pushover_text": "Text notifikácie",
         "pushover_title": "Názov notifikácie",
         "pushover_vars": "Ak nie je definovaný žiadny filter odosielateľa, zohľadnia sa všetky správy.<br>Priama kontrola odosielateľa a regulárne výrazy sa kontrolujú nezávisle od seba, <b>nezávisia od seba navzájom</b> a vykonávajú sa postupne.<br>Použiteľné premenné pre názov a text (dodržujte pokyny na ochranu osobných údajov)",
         "pushover_verify": "Overiť prístupové údaje",
         "quota_mb": "Kvóta (MiB)",
+        "quota_warning_bcc": "Upozornenie na kvótu BCC",
+        "quota_warning_bcc_info": "Upozornenia budú poslané ako samostatné kópie nasledujúcim prijímateľom. Predmet bude doplnený o použivateľské meno v zátvorkách, príklad: <code>Upozornenie na kvótu (user@example.com)</code>.",
+        "ratelimit": "Obmedzenie prenosu",
         "redirect_uri": "Presmerovať URL",
         "relay_all": "Preposielať všetkých prijemcov",
         "relay_all_info": "↪ Ak sa rozhodnete <b>nepreposielať</b> všetkých príjemcov, budete musieť pridať (\"tzv. slepú\") poštovú schránku pre každého príjemcu.",
@@ -546,7 +602,7 @@
         "save": "Uložiť zmeny",
         "scope": "Rozsah",
         "sender_acl": "Povoliť odosielanie ako",
-        "sender_acl_disabled": "↳ <span class=\"label label-danger\">Kontrola odosielateľa vypnutá</span>",
+        "sender_acl_disabled": "<span class=\"label label-danger\">Kontrola odosielateľa vypnutá</span>",
         "sender_acl_info": "Ak poštový používateľ A má povolenie poslať ako poštový používateľ B, adresa odosielateľa nieje automaticky viditeľná ako voliteľné \"from\" pole v SOGo.<br>\r\n Poštový používateľ B potrebuje vytvoriť delegáciu v SOGo, aby bol schopný poštový používateľ A vybrať svoju adresu ako odosielateľ. Na delegovanie poštovej adresy v SOGo, použite menu (tri bodky) napravo vášho poštového mena v hornom ľavom rohu, v prehľade správ. Toto neplatí pre alias adresy.",
         "sieve_desc": "Krátky popis",
         "sieve_type": "Typ filtru",
@@ -556,27 +612,53 @@
         "sogo_visible": "Alias je viditeľný v SOGo",
         "sogo_visible_info": "Táto voľba ovplyvňuje len objekty, ktoré dokážu byť zobrazené v SOGo (zdieľané alebo nezdieľané alias adresy ukazujúc na minimálne jednu lokálnu poštovú schránku). Ak je skrytý, alias nebude prezentovaný ako voliteľný odosielateľ v SOGo.",
         "spam_alias": "Vytvoriť alebo zmeniť časovo limitované alias adresy",
+        "spam_filter": "Spam filter",
         "spam_policy": "Pridať alebo odstrániť položky do bielej/čiernej listiny",
         "spam_score": "Stanoviť vlastnú spam hodnotu",
         "subfolder2": "Synchronizovať do podadresára na cieli<br><small>(prázdne = nevytvárať podpriečinok)</small>",
         "syncjob": "Upraviť synchronizačnú úlohu",
         "target_address": "Cieľová adresa/y <small>(oddelené čiarkou)</small>",
         "target_domain": "Cieľová doména",
-        "timeout1": "Timeout pre spojenie s diaľkovým hostiteľom",
-        "timeout2": "Timeout pre spojenie s lokálnym hostiteľom",
+        "timeout1": "Timeout pre spojenie s vzdialeným serverom",
+        "timeout2": "Timeout pre spojenie s lokálnym serverom",
         "title": "Upraviť objekt",
         "unchanged_if_empty": "Ak nemeníte, nechajte prázdne",
         "username": "Používateľské meno",
-        "validate_save": "Validovať a uložiť"
+        "validate_save": "Validovať a uložiť",
+        "xmpp": "Aktivovať XMPP pre túto doménu",
+        "xmpp_access": "XMPP prístup",
+        "xmpp_access_info": "XMPP musí byť aktivované pre túto doménu.",
+        "xmpp_admin": "XMPP administrátor",
+        "xmpp_admin_info": "<b>Upozornenie:</b> Povýši užívateľa na XMPP administrátora pre túto doménu.",
+        "xmpp_example_jid": "<b>Príklad JID</b> (prihlásenie s mail heslom)",
+        "xmpp_info": "Aktivovanie tejto funkcie umožní četovanie v tejto doméne.",
+        "xmpp_prefix": "XMPP prefix pre doménu (\"im\" bude použitý ako <b>im</b>.example.org)",
+        "xmpp_prefix_info": "Pre vyžiadanie certifikátov pre XMPP by mali smerovať dva CNAME DNS záznamy z <b>im</b>.example.org ako aj <b>*.im</b>.example.org na <b>%s</b>. Prosím spustie DNS kontrolu po zapnutí XMPP."
+    },
+    "fido2": {
+        "confirm": "Potvrdiť",
+        "fido2_auth": "Prihlásiť sa cez FIDO2",
+        "fido2_success": "Zariadenie úspešne zaregistrované",
+        "fido2_validation_failed": "Overenie zlyhalo",
+        "fn": "Užívateľsky prívetivý názov",
+        "known_ids": "Známe ID",
+        "none": "Vypnuté",
+        "register_status": "Stav registrácie",
+        "rename": "Premenovať",
+        "set_fido2": "Registrovať FIDO2 zariadenie",
+        "set_fn": "Nastaviť zjednodušené meno",
+        "start_fido2_validation": "Spustiť FIDO2 overenie"
     },
     "footer": {
         "cancel": "Zrušiť",
         "confirm_delete": "Potvrďte vymazanie",
         "delete_now": "Vymazať teraz",
         "delete_these_items": "Prosím potvrďte svoje vykonané zmeny nasledujúcemu objektovému id",
+        "hibp_check": "Overiť heslo v databáze hacknutých hesiel haveibeenpwned.com",
         "hibp_nok": "Zhoda! Toto je potenciálne nebezpečné heslo!",
         "hibp_ok": "Nenašla sa zhoda.",
         "loading": "Prosím čakajte...",
+        "nothing_selected": "Nie je nič vybrané",
         "restart_container": "Reštartovať kontajner",
         "restart_container_info": "<b>Dôležité:</b> Reštartovanie môže trvať dlhšie, čakajte prosím ...",
         "restart_now": "Reštartuj teraz",
@@ -591,7 +673,7 @@
         "quarantine": "Karanténa",
         "restart_netfilter": "Reštartovať netfilter",
         "restart_sogo": "Reštart SOGo",
-        "user_settings": "Užívateľské nastavenia"
+        "user_settings": "Používateľské nastavenia"
     },
     "info": {
         "awaiting_tfa_confirmation": "Očakávanie TFA potvrdenia",
@@ -613,43 +695,46 @@
         "active": "Aktívny",
         "add": "Pridať",
         "add_alias": "Pridať alias",
-        "add_bcc_entry": "Pridať BCC mapu",
+        "add_alias_expand": "Rozšíriť alias o alias domény",
+        "add_bcc_entry": "Pridať skrytú kópiu",
         "add_domain": "Pridať doménu",
-        "add_domain_alias": "Pridať alias domény",
+        "add_domain_alias": "Pridať alias doménu",
         "add_domain_record_first": "Prosím pridajte najprv doménu",
         "add_filter": "Pridať filter",
         "add_mailbox": "Pridať poštovú schránku",
         "add_recipient_map_entry": "Pridať mapu príjemcu",
         "add_resource": "Pridať zdroj",
         "add_tls_policy_map": "Pridať TLS mapu pravidiel",
-        "address_rewriting": "Prepisovanie adresy",
+        "address_rewriting": "Prepisovanie adries",
         "alias": "Alias",
-        "alias_domain_alias_hint": "Aliasy <b>nie sú</b> aplikované na aliasy domén automaticky. Alias adresa <code>my-alias@domain</code> <b>nezahŕňa adresu</b> <code>my-alias@alias-domain</code> (kde \"alias-doména\" je imaginárna alias doména pre \"doména\").<br>Prosím použite sieve filter na presmerovanie pošty na externú poštovú schránku (pozri sekciu \"Filtre\" alebo použite SOGo -> Forwarder).",
+        "alias_domain_alias_hint": "Aliasy <b>nie sú</b> aplikované na aliasy domén automaticky. Alias adresa <code>my-alias@domain</code> <b>nezahŕňa adresu</b> <code>my-alias@alias-domain</code> (kde \"alias-doména\" je imaginárna alias doména pre \"doména\").<br>Prosím použite sieve filter na presmerovanie pošty na externú poštovú schránku (pozri sekciu \"Filtre\" alebo použite SOGo -> Forwarder). Použite \"Rozšíriť alias o aliasové domény\" na automatické doplnenie chýbajúcich aliasov.",
         "alias_domain_backupmx": "Doménový alias je neaktívny pre preposielaciu doménu",
         "aliases": "Aliasy",
+        "all_domains": "Všetky Domény",
         "allow_from_smtp": "Umožniť iba týmto IP adresám používať <b>SMTP</b>",
-        "allow_from_smtp_info": "Nechať prázdne pre povolenie všetkých odosielateľov.<br>IPv4/IPv6 adresy a siete.",
+        "allow_from_smtp_info": "Nechajte prázdne pre povolenie všetkých odosielateľov.<br>IPv4/IPv6 adresy a siete.",
         "allowed_protocols": "Povolené protokoly",
         "backup_mx": "Preposielať doménu",
         "bcc": "BCC",
-        "bcc_destination": "BCC cieľ",
-        "bcc_destinations": "BCC ciele",
-        "bcc_info": "BCC mapy sú používané na preposlanie kópií všetkých správ na ďalšiu adresu. Mapa príjemcov je použitá, keď lokálny cieľ je príjemcom správy. Mapy odosielateľov podliehajú tomu istému princípu.<br/>\r\n Lokálny cieľ nebude informovaný o zlyhanom doručení.",
-        "bcc_local_dest": "Lokálny cieľ",
-        "bcc_map": "BCC mapa",
-        "bcc_map_type": "BCC typ mapy",
-        "bcc_maps": "BCC mapy",
-        "bcc_rcpt_map": "Mapa príjemcu",
-        "bcc_sender_map": "Mapa odosielateľa",
-        "bcc_to_rcpt": "Prepnúť na mapu príjemcu",
-        "bcc_to_sender": "Prepnúť na mapu odosielateľa",
-        "bcc_type": "BCC typ",
-        "booking_0": "Vždy ukázať ako voľný",
-        "booking_0_short": "Neustále voľno",
-        "booking_custom": "Tvrdý limit nastaviteľné množstvo rezervácií",
+        "bcc_destination": "Cieľ kópie",
+        "bcc_destinations": "Ciele kópií",
+        "bcc_info": "Skyté kópie (BCC mapy) sú používané na preposlanie skrytých kópií všetkých správ na ďalšiu adresu. Pri použití skrytej kópie typu <i>Prijatý e-mail</i> budú preposlané všetky maily smerujúce na dotyčnú adresu alebo doménu.\nPri type <i>Odoslaný e-mail</i> budú preposlané všetky maily odoslané z dotyčnej adresy alebo domény.\nPokiaľ zlyhá preposlanie na cieľovú adresu, tak odosielateľ o tom nebude informovaný.",
+        "bcc_local_dest": "Týka sa",
+        "bcc_map": "Skrytá kópia",
+        "bcc_map_type": "Typ skrytej kópie",
+        "bcc_maps": "Skryté kópie",
+        "bcc_rcpt_map": "Prijatý e-mail",
+        "bcc_sender_map": "Odoslaný e-mail",
+        "bcc_to_rcpt": "Prepnúť typ na Prijatý e-mail",
+        "bcc_to_sender": "Prepnúť typ na Odoslaný e-mail",
+        "bcc_type": "Typ skrytej kópie",
+        "booking_0": "Vždy zobraziť ako voľný",
+        "booking_0_short": "Neustále voľný",
+        "booking_custom": "Limitované na pevný počet rezervácií",
         "booking_custom_short": "Tvrdý limit",
         "booking_lt0": "Bez limitu, ale zobraziť obsadené po rezervácii",
-        "booking_lt0_short": "Mäkký limit",
+        "booking_lt0_short": "Voľný limit",
+        "catch_all": "Doménový kôš",
         "daily": "Denný",
         "deactivate": "Deaktivovať",
         "description": "Popis",
@@ -657,30 +742,33 @@
         "disable_x": "Pozastaviť",
         "domain": "Doména",
         "domain_admins": "Administrátori domény",
-        "domain_aliases": "Aliasy domény",
+        "domain_aliases": "Alias domény",
         "domain_quota": "Kvóta",
         "domains": "Domény",
         "edit": "Upraviť",
         "empty": "Žiadne výsledky",
         "enable_x": "Povolené",
         "excludes": "Vyraďuje",
-        "filter_table": "Tabuľka filtrov",
+        "filter_table": "Filtrovať tabuľku",
         "filters": "Filtre",
         "fname": "Celé meno",
+        "goto_ham": "Považovať za <b>ham</b>",
+        "goto_spam": "Považovať za <b>spam</b>",
         "hourly": "Hodinový",
         "in_use": "Obsadenosť (%)",
         "inactive": "Neaktívny",
         "insert_preset": "Vložiť vzor nastavenia \"%s\"",
         "kind": "Druh",
         "last_mail_login": "Posledné prihlásenie",
+        "last_pw_change": "Naposledy zmenené heslo",
         "last_run": "Posledné spustenie",
-        "last_run_reset": "Naplánovať ďalší",
+        "last_run_reset": "Znovu naplánovať",
         "mailbox": "Poštová schránka",
+        "mailbox_defaults": "Predvolené nastavenia",
+        "mailbox_defaults_info": "Definuje predvolené nastavenia pre nové schránky",
         "mailbox_defquota": "Predvolená veľkosť schránky",
         "mailbox_quota": "Max. veľkosť schránky",
         "mailboxes": "Poštové schránky",
-        "mailbox_defaults": "Predvolené nastavenia",
-        "mailbox_defaults_info": "Definuje predvolené nastavenia pre nové schránky",
         "mins_interval": "Interval (min)",
         "msg_num": "Počet správ",
         "multiple_bookings": "Viaceré rezervácie",
@@ -688,15 +776,17 @@
         "no": "&#10005;",
         "no_record": "Žiaden záznam pre objekt %s",
         "no_record_single": "Žiaden záznam",
+        "open_logs": "Otvoriť záznam",
         "owner": "Majiteľ",
         "private_comment": "Súkromný komentár",
         "public_comment": "Verejný komentár",
         "q_add_header": "Priečinok nevyžiadaná pošta",
         "q_all": "Všetky kategórie",
         "q_reject": "Odmietnutá",
-        "quarantine_notification": "Karanténne notifikácie",
         "quarantine_category": "Kategória karanténnych notifikácií",
+        "quarantine_notification": "Karanténne notifikácie",
         "quick_actions": "Akcia",
+        "recipient": "Prijatý e-mail",
         "recipient_map": "Mapa príjemcu",
         "recipient_map_info": "Mapy príjemcov sú používané ako náhrada cieľovej adresy u správy pred doručením.",
         "recipient_map_new": "Nový príjemca",
@@ -707,9 +797,10 @@
         "remove": "Odstrániť",
         "resources": "Zdroje",
         "running": "Bežiaci",
+        "sender": "Odoslaný e-mail",
         "set_postfilter": "Označiť ako postfilter",
         "set_prefilter": "Označiť ako prefilter",
-        "sieve_info": "Môžete uchovávať viacero filtrov pre používateľa, ale iba jeden prefilter a jeden postfilter môže byť aktívny v daný okamih.<br>\r\n Každý filter bude spracovaný v nastavenom poradí. Ani zlyhanie skriptu alebo zadržanie nezastaví spracovanie ďalších skriptov. Po úprave sieve filtrov bude nasledovať reštart dovecotu.<br><br>Globálny sieve prefilter → Prefilter → Skripty používateľa → Postfilter → Globálny sieve postfilter",
+        "sieve_info": "Môžete uchovávať viacero filtrov pre používateľa, ale iba jeden prefilter a jeden postfilter môže byť aktívny v daný okamih.<br>\r\n Každý filter bude spracovaný v nastavenom poradí. Ani zlyhanie skriptu alebo zadržanie nezastaví spracovanie ďalších skriptov. Po úprave sieve filtrov bude nasledovať reštart dovecotu.<br><br>Globálny sieve prefilter &#8226; Prefilter &#8226; Skripty používateľa &#8226; Postfilter &#8226; Globálny sieve postfilter",
         "sieve_preset_1": "Vyradiť poštu s pravdepodobnými typmi nebezpečných súborov",
         "sieve_preset_2": "Neustále označovať poštu špecifického odosielateľa ako videnú",
         "sieve_preset_3": "Potichu zahodiť a zastaviť všetky nasledovné spracovanie sieve filtrami",
@@ -719,10 +810,9 @@
         "sieve_preset_7": "Presmerovať a uchovať/zahodiť",
         "sieve_preset_8": "Zahodiť správu odoslanú na alias adresu, ktorej je odosielateľ súčasťou",
         "sieve_preset_header": "Prosím pozrite sa na ukážku nižšie. Pre viac informácií pozrite <a href=\"https://en.wikipedia.org/wiki/Sieve_(mail_filtering_language)\" target=\"_blank\">Wikipedia</a>.",
-        "sogo_allow_admin_hint": "Administratívne SOGo prihlásenia sú dostupné pre poštové schránky s existujúcim SOGo profilom. Požívateľ musí byť prihlásený do SOGo najmenej raz.",
         "sogo_visible": "Alias je viditeľný v SOGo",
         "sogo_visible_n": "Skryť alias v SOGo",
-        "sogo_visible_y": "Ukázať alias v SOGo",
+        "sogo_visible_y": "Zobraziť alias v SOGo",
         "spam_aliases": "Dočasný alias",
         "stats": "Štatistika",
         "status": "Status",
@@ -739,11 +829,11 @@
         "tls_map_parameters_info": "Prázdny alebo parametre, napríklad: protocols=!SSLv2 ciphers=medium exclude=3DES",
         "tls_map_policy": "Podmienky",
         "tls_policy_maps": "Mapy TLS pravidiel",
-        "tls_policy_maps_info": "Táto mapa prevažuje nad TLS pravidlami nezávisle od TLS pravidiel jednotlivých používateľov.<br>\r\n  Viac informácií navštívte <a href=\"http://www.postfix.org/postconf.5.html#smtp_tls_policy_maps\" target=\"_blank\"> info k \"smtp_tls_policy_maps\" </a>",
         "tls_policy_maps_enforced_tls": "Tieto politiky prepisujú používateľské nastavenia pre poštové schránky ktore majú vynútene odchodzie TLS pripojenie. Ak nižšie nie sú uvedené žiadne pravidlá, budú použité ako východzie pravidlá <code>smtp_tls_mandatory_protocols</code> a <code>smtp_tls_mandatory_ciphers</code>.",
+        "tls_policy_maps_info": "Táto mapa prevažuje nad TLS pravidlami nezávisle od TLS pravidiel jednotlivých používateľov.<br>\r\n  Viac informácií navštívte <a href=\"http://www.postfix.org/postconf.5.html#smtp_tls_policy_maps\" target=\"_blank\"> info k \"smtp_tls_policy_maps\" </a>",
         "tls_policy_maps_long": "Prepisovanie TLS pravidiel pre odosielanie",
         "toggle_all": "Označiť všetky",
-        "username": "Užívateľské meno",
+        "username": "Používateľské meno",
         "waiting": "Čakanie",
         "weekly": "Týždenný",
         "yes": "&#10003;"
@@ -782,6 +872,9 @@
         "qitem": "Karanténna položka",
         "quarantine": "Karanténa",
         "quick_actions": "Akcia",
+        "quick_delete_link": "Otvoriť link pre zmazanie",
+        "quick_info_link": "Otvoriť link pre info",
+        "quick_release_link": "Otvoriť link pre uvoľnenie",
         "rcpt": "Príjemca",
         "received": "Prijaté",
         "recipients": "Príjemcovia",
@@ -795,11 +888,8 @@
         "rspamd_result": "Rspamd výsledok",
         "sender": "Odosielateľ (SMTP)",
         "sender_header": "Odosielateľ (\"From\" hlavička)",
-        "type": "Typ",
-        "quick_release_link": "Otvoriť link pre uvoľnenie",
-        "quick_delete_link": "Otvoriť link pre zmazanie",
-        "quick_info_link": "Otvoriť link pre info",
-        "show_item": "Ukázať súbor",
+        "settings_info": "Maximálne množstvo položiek ktoré sa umiestnia do karantény: %s<br>Maximálna veľkosť emailu: %s MiB",
+        "show_item": "Zobraziť súbor",
         "spam": "Spam",
         "spam_score": "Výsledok",
         "subj": "Predmet",
@@ -807,7 +897,15 @@
         "table_size_show_n": "Zobraziť %s položiek",
         "text_from_html_content": "Obsah (konvertovaný html)",
         "text_plain_content": "Obsah (text/jednoduchý)",
-        "toggle_all": "Označiť všetky"
+        "toggle_all": "Označiť všetky",
+        "type": "Typ"
+    },
+    "ratelimit": {
+	    "disabled": "Vypnuté",
+	    "second": "správ za sekundu",
+	    "minute": "správ za minútu",
+	    "hour": "správ za hodinu",
+	    "day": "správ za deň"
     },
     "start": {
         "help": "Zobraziť/Skryť panel nápoveď",
@@ -847,9 +945,9 @@
         "domain_admin_removed": "Administrátorská doména %s odstránená",
         "domain_modified": "Zmeny v doméne %s uložené",
         "domain_removed": "Doména %s odstránená",
-        "dovecot_restart_success": "Dovecot sa úspešne reštartoval",        
+        "dovecot_restart_success": "Dovecot sa úspešne reštartoval",
         "eas_reset": "ActiveSync zariadenia pre používateľa %s resetovaný",
-        "f2b_modified": "Zmeny v Fail2ban parametroch uložené",
+        "f2b_modified": "Zmeny v parametroch automatického firewallu uložené",
         "forwarding_host_added": "Doručovací hostiteľ %s pridaný",
         "forwarding_host_removed": "Doručovací hostiteľ %s vymazaný",
         "global_filter_written": "Filter bol úspešne zapísaný do súboru",
@@ -864,7 +962,9 @@
         "mailbox_added": "Poštová schránka %s pridaná",
         "mailbox_modified": "Zmeny v poštovej schránke %s uložené",
         "mailbox_removed": "Mailbox %s odstránený ",
+        "nginx_reloaded": "Nginx sa reloadol",
         "object_modified": "Zmeny v objekte %s uložené",
+        "password_policy_saved": "Politika hesiel bola úspešne uložená",
         "pushover_settings_edited": "Pushover úspešne nastavený, skontrolujte si prístupové údaje.",
         "qlearn_spam": "Správa s ID %s považovaná za spam a vymazaná",
         "queue_command_success": "Príkaz pre poštovú frontu úspešne dokončený",
@@ -876,7 +976,7 @@
         "resource_added": "Zdroj %s pridaný",
         "resource_modified": "Zmeny v poštovej schránke %s uložené",
         "resource_removed": "Zdroj %s odstránený",
-        "rl_saved": "Limit prenosu pre objekt %s uložený",
+        "rl_saved": "Obmedzenie prenosu pre objekt %s uložený",
         "rspamd_ui_pw_set": "Heslo pre Rspamd rozhranie úspešne nastavené",
         "saved_settings": "Uložené nastavenia",
         "settings_map_added": "Pridaná mapa nastavení",
@@ -886,10 +986,13 @@
         "tls_policy_map_entry_saved": "Položka mapy TLS pravidiel \"%s\" uložená",
         "ui_texts": "Zmeny v UI textoch uložené",
         "upload_success": "Súbor úspešne nahratý",
+        "verified_fido2_login": "Overené FIDO2 prihlásenie",
         "verified_totp_login": "Overené TOTP prihlásenie",
         "verified_u2f_login": "Overené U2F prihlásenie",
-        "verified_fido2_login": "Overené FIDO2 prihlásenie",
-        "verified_yotp_login": "Overené Yubico OTP prihlásenie"
+        "verified_yotp_login": "Overené Yubico OTP prihlásenie",
+        "xmpp_maps_updated": "XMPP mapy boli aktualizované",
+        "xmpp_reloaded": "XMPP služba sa reloadla",
+        "xmpp_restarted": "XMPP služba sa reštartovala"
     },
     "tfa": {
         "api_register": "%s využíva Yubico Cloud API. Prosím, zaobstarajte si API kľúč pre váš kľúč <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">tu</a>",
@@ -908,7 +1011,7 @@
         "select": "Prosím vyberte",
         "set_tfa": "Nastaviť dvojúrovňovú autentifikačnú metódu",
         "start_u2f_validation": "Spustiť validáciu",
-        "tfa": "Dvojúrovňová autentifikácia",
+        "tfa": "Dvojúrovňová autentifikácia (TFA)",
         "tfa_token_invalid": "Neplatný TFA token",
         "totp": "Časovo-založený OTP (Google Authenticator, Authy, atď.)",
         "u2f": "U2F autentifikácia",
@@ -916,34 +1019,20 @@
         "waiting_usb_register": "<i>Čakanie na USB zariadenie...</i><br><br>Prosím zadajte vaše heslo a potvrďte registráciu stlačením tlačidla na vašom USB zariadení.",
         "yubi_otp": "Yubico OTP autentifikácia"
     },
-    "fido2": {
-        "set_fn": "Nastaviť zjednodušené meno",
-        "fn": "Zjednodušené meno",
-        "rename": "premenovať",
-        "confirm": "Potvrdiť",
-        "register_status": "Stav registrácie",
-        "known_ids": "Známe ID",
-        "none": "Vypnuté",
-        "set_fido2": "Registrovať FIDO2 zariadenie",
-        "start_fido2_validation": "Spustiť FIDO2 overenie",
-        "fido2_auth": "Prihlásiť sa cez FIDO2",
-        "fido2_success": "Zariadenie úspešne zaregistrované",
-        "fido2_validation_failed": "Overenie zlyhalo"
-    },
     "user": {
         "action": "Akcia",
         "active": "Aktívny",
         "active_sieve": "Aktívny filter",
         "advanced_settings": "Pokročilé nastavenia",
         "alias": "Alias",
-        "alias_create_random": "Generovať náhodný alias.",
+        "alias_create_random": "Generovať náhodný alias",
         "alias_extend_all": "Predĺžiť aliasy o ďalšiu hodinu",
         "alias_full_date": "d.m.R, H:i:s T",
         "alias_remove_all": "Odstrániť všetky aliasy",
         "alias_select_validity": "Lehota platnosti",
         "alias_time_left": "Zostávajúci čas",
         "alias_valid_until": "Platné do",
-        "aliases_also_send_as": "Taktiež povolené poslať ako používateľ",
+        "aliases_also_send_as": "Môže odosielať ako používateľ",
         "aliases_send_as_all": "Nekontrolovať prístup odosielateľa pre nasledujúcu doménu/y a jej alias domény",
         "app_hint": "Heslá aplikácií sú alternatívne heslá pre vaše <b>IMAP a SMTP</b> prihlásenie. Používateľské meno zostáva nezmenené.<br>SOGo (zahŕňajúc ActiveSync) nie je momentálne podporovaný.",
         "app_name": "Meno aplikácie",
@@ -952,43 +1041,57 @@
         "apple_connection_profile_complete": "Tento profil zahŕňa IMAP a SMTP parametre, ako aj CalDAV (kalendáre) a CardDAV (kontakty) pre zariadenia Apple.",
         "apple_connection_profile_mailonly": "Tento profil zahŕňa IMAP a SMTP konfiguračné parametre pre zariadenia Apple.",
         "change_password": "Zmeniť heslo",
-        "client_configuration": "Ukázať konfiguračné pokyny pre emailových klientov a smartfóny",
+        "clear_recent_successful_connections": "Vymazať nedávne úspešné prihlásenia",
+        "client_configuration": "Zobraziť konfiguračné pokyny pre emailových klientov a smartfóny",
         "create_app_passwd": "Vytvoriť heslo aplikácie",
         "create_syncjob": "Vytvoriť novú synchronizačnú úlohu",
+        "created_on": "Vytvorené",
         "daily": "Denne",
         "day": "deň",
         "delete_ays": "Potvrďte zmazanie.",
         "direct_aliases": "Priame alias adresy",
-        "direct_aliases_desc": "Priame alias adresy sú ovplyvnené spam filtrom a nastaveniami TLS pravidiel.",
+        "direct_aliases_desc": "Priame aliasy sú ovplyvnené spam filtrom a nastavením TLS pravidiel.",
         "eas_reset": "Resetovať medzipamäť u ActiveSync zariadení",
-        "eas_reset_help": "Vo väčšine prípadov, reset medzipamäte ActiveSync môže opravit nefunkčný profil.<br><b>Pozor:</b> Všetky potrebné dáta budú opäť stiahnuté!",
-        "eas_reset_now": "Resetovať medzipamäť teraz",
+        "eas_reset_help": "Vo väčšine prípadov, reset medzipamäte ActiveSync pomôže opravit nefunkčný profil.<br><b>Pozor:</b> Všetky potrebné dáta budú opäť stiahnuté!",
+        "eas_reset_now": "Reset ActiveSync",
         "edit": "Upraviť",
         "email": "Email",
         "email_and_dav": "Email, kalendáre a kontakty",
+        "empty": "Nie sú k dispozícii žiadne záznamy",
         "encryption": "Zašifrovanie",
         "excludes": "Nezahŕňa",
         "expire_in": "Vyprší za",
+        "fido2_webauthn": "FIDO2/WebAuthn",
         "force_pw_update": "<b>Musíte</b> nastaviť nové heslo, aby ste mohli získať opätovný prístup ku groupware a súvisiacim službám.",
+        "from": "od",
         "generate": "generuj",
         "hour": "hodinu",
         "hourly": "Každú hodinu",
         "hours": "hodiny",
         "in_use": "Použité",
         "interval": "Interval",
-        "is_catch_all": "Catch-all pre doménu/y",
+        "is_catch_all": "Doménový kôš",
         "last_mail_login": "Posledné poštové prihlásenie",
+        "last_pw_change": "Naposledy zmenené heslo",
         "last_run": "Posledné spustenie",
+        "last_ui_login": "Posledné prihlásenie do web rozhrania",
         "loading": "Načítavanie...",
-        "mailbox_details": "Nastavenie schránky",
+        "login_history": "História prihlásenia",
+        "mailbox": "Poštová schránka",
+        "mailbox_details": "Detail",
+        "mailbox_general": "Všeobecné",
+        "mailbox_settings": "Nastavenia",
         "messages": "správy",
+        "month": "mesiac",
+        "months": "mesiace",
         "never": "Nikdy",
         "new_password": "Nové heslo",
-        "new_password_description": "Požiadavka: Minimálne 6 znakov, písmená a číslice.",
         "new_password_repeat": "Potvrdiť heslo (opakovať)",
         "no_active_filter": "Nie je dostupný žiadny aktívny filter.",
         "no_last_login": "Žiadne informácie o UI prihlásení.",
         "no_record": "Žiaden záznam",
+        "open_logs": "Otvoriť záznam",
+        "open_webmail_sso": "Prihláste sa do webmailu",
         "password": "Heslo",
         "password_now": "Aktuálne heslo (potvrdiť zmeny)",
         "password_repeat": "Heslo (opakovať)",
@@ -996,7 +1099,7 @@
         "pushover_info": "Push notifikácie budú aplikované na všetky správy (s výnimkou spamu) doručené pre <b>%s</b> vrátane aliasov (zdieľané, nezdieľané, označené).",
         "pushover_only_x_prio": "Vyberať len správy s vysokou prioritou [<code>X-Priority: 1</code>]",
         "pushover_sender_array": "Zohľadňujú sa nasledujúce adresy odosielateľa <small>(oddelené čiarkou)</small>",
-        "pushover_sender_regex": "Užívateľ vybraný regulérnym výrazom",
+        "pushover_sender_regex": "Odosielateľ vybraný regulárnym výrazom",
         "pushover_text": "Text notifikácie",
         "pushover_title": "Názov notifikácie",
         "pushover_vars": "Ak nie je definovaný žiadny filter odosielateľa, zohľadnia sa všetky správy.<br>Priama kontrola odosielateľa a regulárne výrazy sa kontrolujú nezávisle od seba, <b>nezávisia od seba navzájom</b> a vykonávajú sa postupne.<br>Použiteľné premenné pre názov a text (dodržujte pokyny na ochranu osobných údajov)",
@@ -1004,26 +1107,28 @@
         "q_add_header": "Priečinok nevyžiadná pošta",
         "q_all": "Všetky kategórie",
         "q_reject": "Odmietnutá",
-        "quarantine_notification": "Karanténne notifikácie",
         "quarantine_category": "Kategória karanténnych notifikácií",
-        "quarantine_notification_info": "Akonáhle sa odošle notifikáica, položky budú označené ako \"notifikované\" a žiadne ďalšie notifikácie nebudú poslané pre túto špecifickú položku.",
-        "quarantine_category_info": "Kategória notifikácií \"Odmietnutá\" zahŕňa poštu ktorá bola odmietnutá, kde \"Nevyžiadná pošta\" bude notifikovať používateľa o pošte vloženej do priečinka Nevyžiadná pošta.",
+        "quarantine_category_info": "Kategória notifikácií \"Odmietnutá\" zahŕňa poštu ktorá bola odmietnutá, a \"Nevyžiadná pošta\" zahŕňa notifikácie o pošte uloženej do priečinka Nevyžiadná pošta.",
+        "quarantine_notification": "Karanténne notifikácie",
+        "quarantine_notification_info": "Akonáhle sa odošle notifikácia, položky budú označené ako \"notifikované\" a žiadne ďalšie notifikácie nebudú zasielané pre túto položku.",
+        "recent_successful_connections": "Nedávne úspešné prihlásenia",
         "remove": "Odstrániť",
         "running": "Beží",
+        "save": "Uložiť zmeny",
         "save_changes": "Uložiť zmeny",
         "sender_acl_disabled": "<span class=\"label label-danger\">Kontrola odosielateľa je pozastavená</span>",
         "shared_aliases": "Zdieľané alias adresy",
-        "shared_aliases_desc": "Zdieľané aliasy nie sú ovplyvnené používateľskými špecifickými nastaveniami, ako spam filter alebo šifrovacie podmienky. Zodpovedajúce spam filtre môžu byť vytvorené len administrátorom podľa podmienok domén.",
-        "show_sieve_filters": "Ukázať sieve filter aktívneho používateľa",
+        "shared_aliases_desc": "Zdieľané aliasy nie sú ovplyvnené používateľskými nastaveniami, ako spam filter alebo šifrovacie pravidlá. Zodpovedajúce spam filtre môžu byť vytvorené len administrátorom podľa podmienok domén.",
+        "show_sieve_filters": "Zobraziť sieve filter aktívneho používateľa",
         "sogo_profile_reset": "Resetnúť SOGo profil",
-        "sogo_profile_reset_help": "Táto činnosť odstraní SOGo profil používateľa a <b>nenávratne vymaže všetky kontakty a kalendárové dáta</b>.",
-        "sogo_profile_reset_now": "Resetnúť profil teraz",
+        "sogo_profile_reset_help": "Táto činnosť odstraní SOGo profil používateľa a <b>nenávratne vymaže všetky kontakty a kalendár</b>.",
+        "sogo_profile_reset_now": "Resetnúť profil",
         "spam_aliases": "Dočasný poštový alias",
         "spam_score_reset": "Obnoviť pôvodné spam nastavenia",
         "spamfilter": "Spam filter",
         "spamfilter_behavior": "Hodnotenie",
         "spamfilter_bl": "Čierna listina - blacklist",
-        "spamfilter_bl_desc": "Adresy na tomto zozname budú <b>vždy</b> klasifikované ako spam a budú odmietnuté. Odmietnutá pošta <b>nebude</b> zaradená do karantény. Môže byť použitý widlcard záznam (*). Filter je aplikovaný len na priame aliasy (aliasy s jedným cieľovým mailboxom) s výnimkou catch-all aliasov a samotnou schránkou.",
+        "spamfilter_bl_desc": "Adresy na tomto zozname budú <b>vždy</b> klasifikované ako spam a budú odmietnuté. Odmietnutá pošta <b>nebude</b> zaradená do karantény. Môže byť použitý widlcard záznam (*). Filter je aplikovaný len na priame aliasy (aliasy s jedným cieľovým mailboxom) s výnimkou doménových košov a samotnou schránkou.",
         "spamfilter_default_score": "Implicitné nastavenia",
         "spamfilter_green": "Zelená: Táto správa nie je spam",
         "spamfilter_hint": "Prvá hodnota opisuje \"nízku spam hodnotu\" a druhá opisuje \"vysokú spam hodnotu\".",
@@ -1035,11 +1140,11 @@
         "spamfilter_table_remove": "odstrániť",
         "spamfilter_table_rule": "Podmienka",
         "spamfilter_wl": "Biela listina - whitelist",
-        "spamfilter_wl_desc": "Adresy na tomto zozname nebudú <b>nikdy klasifikované ako spam</b>. Môže byť použitý wildcard záznam (*). Filter je aplikovaný len na priame aliasy (aliasy s jednou cieľovou schránkou) s výnimkou catch-all aliasov a samotnou schránkou.",
+        "spamfilter_wl_desc": "Adresy na tomto zozname nebudú <b>nikdy klasifikované ako spam</b>. Môže byť použitý wildcard záznam (*). Filter je aplikovaný len na priame aliasy (aliasy s jednou cieľovou schránkou) s výnimkou doménových košov a samotnou schránkou.",
         "spamfilter_yellow": "Žltá: Táto správa môže byť spam, bude označená ako spam a presunutá do priečinku nevyžiadanej pošty",
         "status": "Status",
         "sync_jobs": "Synchronizačné úlohy",
-        "tag_handling": "Nastaviť chovanie pre označenú poštu",
+        "tag_handling": "Zaobchádzanie s označenou poštou",
         "tag_help_example": "Príklad tagu e-mailovej adresy: me<b>+Facebook</b>@example.org",
         "tag_help_explain": "V podadresári: nový podadresár s menom tag-u bude vytvorený nižšie INBOX (\"INBOX/Facebook\").<br>\r\nIn subject: meno štítka bude pridané pred predmet pošty, napríklad: \"[Facebook] My News\".",
         "tag_in_none": "Žiadne kroky",
@@ -1048,16 +1153,18 @@
         "text": "Text",
         "title": "Názov",
         "tls_enforce_in": "Vynútiť TLS pre prichádzajúcu poštu",
-        "tls_enforce_out": "Vynútiť TLS odchádzajúcu poštu",
+        "tls_enforce_out": "Vynútiť TLS pre odchádzajúcu poštu",
         "tls_policy": "TLS pravidlá",
-        "tls_policy_warning": "<strong>Upozornenie:</strong> Ak sa rozhodnete vynútiť zašifrovaný poštový prenos, môže príjsť k strate e-mailov.<br>Správy nespĺňajúce túto podmienku budú trvalo odmietané serverom.<br>Táto možnosť platí pre vašu primárnu emailovú adresu (prihlasovacie meno), všetky odvodené adresy ako aj alias <b>cieľovej poštovej schránky</b>.",
-        "user_settings": "Užívateľské nastavenia",
+        "tls_policy_warning": "<strong>Upozornenie:</strong> Ak sa rozhodnete vynútiť šifrovaný prenos, môže prísť k strate e-mailov.<br>Správy nespĺňajúce túto podmienku budú trvalo odmietané serverom.<br>Táto možnosť platí pre vašu primárnu emailovú adresu (prihlasovacie meno), všetky odvodené adresy ako aj alias <b>cieľovej poštovej schránky</b>.",
+        "user_settings": "Používateľské nastavenia",
         "username": "Prihlasovacie meno",
         "verify": "Overiť",
         "waiting": "Čakanie",
         "week": "týždeň",
         "weekly": "Týždenne",
-        "weeks": "týždne"
+        "weeks": "týždne",
+        "year": "rok",
+        "years": "rokov"
     },
     "warning": {
         "cannot_delete_self": "Nemožno vymazať prihláseného používateľa",
@@ -1066,6 +1173,7 @@
         "fuzzy_learn_error": "Chyba počas učenia Fuzzy hash: %s",
         "hash_not_found": "Chýbajúci hash",
         "ip_invalid": "Preskočená neplatná IP adresa: %s",
+        "is_not_primary_alias": "Preskočiť ne-primárny alias %s",
         "no_active_admin": "Nemožno deaktivovať posledného aktívneho admina",
         "quota_exceeded_scope": "Prekročená kvóta domény, pre túto doménu je možné vytvárať iba neobmedzené poštové schránky.",
         "session_token": "Formulárový token neplatný: Tokenová nezhoda",
diff --git a/mailcow/src/mailcow-dockerized/data/web/lang/lang.sv.json b/mailcow/src/mailcow-dockerized/data/web/lang/lang.sv.json
index 39aa588..d4e1daf 100644
--- a/mailcow/src/mailcow-dockerized/data/web/lang/lang.sv.json
+++ b/mailcow/src/mailcow-dockerized/data/web/lang/lang.sv.json
@@ -26,7 +26,11 @@
         "syncjobs": "synkroniseringsjobb",
         "tls_policy": "Krypteringspolicy",
         "unlimited_quota": "Obegränsad kvot för postlådor",
-        "domain_desc": "Ändra domänbeskrivningen"
+        "domain_desc": "Ändra domänbeskrivningen",
+        "xmpp_admin": "Ändra XMPP administratörs-status på en användare",
+        "xmpp_domain_access": "Ändra XMPP-åtkomsten på en domän",
+        "xmpp_mailbox_access": "Ändra XMPP-åtkomsten på en användare",
+        "xmpp_prefix": "Ändra XMPP-subdomän/prefix"
     },
     "add": {
         "activate_filter_warn": "Alla andra filter av den här typen kommer inaktiveras om det här skriptet markeras som aktivt.",
@@ -35,9 +39,9 @@
         "add_domain_only": "Lägg bara till domänen",
         "add_domain_restart": "Lägg till domänen, och starta om SOGo",
         "alias_address": "Alias-adress/adresser",
-        "alias_address_info": "<small>Fulständig e-postadress/adresser, eller @example.com för att fånga alla meddelanden för en domän (kommaseparerade). <b>endast mailcow domäner</b>.</small>",
+        "alias_address_info": "<small>Fulständig e-postadress/adresser, eller @example.com för att fånga alla meddelanden på en domän (separerade med komma). <b>endast mailcow domäner</b>.</small>",
         "alias_domain": "Aliasdomän",
-        "alias_domain_info": "<small>Endast giltiga domännamn (kommaseparerade).</small>",
+        "alias_domain_info": "<small>Endast giltiga domännamn (separerade med komma).</small>",
         "app_name": "Applikationsnamn",
         "app_password": "Lägg till applikationslösenord",
         "automap": "Koppla automatiskt de vanliga e-post katalogerna (\"Skickade meddelanden\", \"Skickat\" => \"Skickat\" mm)",
@@ -59,6 +63,14 @@
         "full_name": "Fullständiga namn",
         "gal": "Global adressbok",
         "gal_info": "Den global adressboken innehåller alla objekt i en domän och kan inte redigeras av någon användare. Informationen om tillgänglighet i SOGo är endast synlig när den globala adressboken är påslagen.  <b>Starta om SOGo för att tillämpa ändringar.</b>",
+        "xmpp": "Aktivera XMPP funktion på denna domän",
+        "xmpp_prefix": "XMPP-prefix för domänen (Exempelvis \"im\" för <b>im</b>.example.org)",
+        "xmpp_prefix_info": "För att tillhandahålla ett säkerhetscertifikat måste vissa DNS-uppslag skapas, exempelvis två CNAME uppslag, ett för <b>im</b>.example.org och ett för <b>*.im</b>.example.org, som pekar mot <b>%s</b>. Efter att denna funktion har aktiverats, utför en DNS-kontroll för att testa att uppslagen är korrekt uppsatta.",
+        "xmpp_info": "Denna funktion aktiverar chatt-funktionalitet på denna domän.",
+        "xmpp_access": "XMPP-åtkomst",
+        "xmpp_access_info": "XMPP måste aktiveras på den här domänen.",
+        "xmpp_admin": "XMPP Administratör",
+        "xmpp_admin_info": "<b>Varning:</b> Befodrar en användare till XMPP-administratör på den här domänen.",
         "generate": "generera",
         "goto_ham": "Markera detta som en <span class=\"text-success\"><b>felaktig spam-registrering</b>, detta kommer förhindra liknande fel i framtiden</span>",
         "goto_null": "Kasta e-postmeddelanande omedelbart",
@@ -84,7 +96,7 @@
         "relay_all": "Vidarebefordra alla mottagaradresser",
         "relay_all_info": "↪ Om <b>inte</b> alla mottagare ska vidarebefordras måste (\"blinda\") postlådor skapas för varje adress som ska vidarebefordras.",
         "relay_domain": "Vidarebefordra denna domän",
-        "relay_transport_info": "<div class=\"label label-info\">Info</div> Transportkartor kan skapas för att definiera enskilda destinationer för en relädomän.",
+        "relay_transport_info": "<div class=\"label label-info\">Info</div> Transportkartor kan skapas för att definiera enskilda destinationer på en relädomän.",
         "relay_unknown_only": "Vidarebefodra endast om det saknas en lokal postlåda. Existerar det en postlåda kommer det levereras lokalt.",
         "relayhost_wrapped_tls_info": "Använd <b>inte</b> TLS-bundna portar (exempelvis SMTPS via port 465).<br>\r\nTrafiken kommer istället transporteras med TLS genom att använda STARTTLS. En sådan TLS-policy kan skapas under \"TLS-policyföreskrifter\".",
         "select": "Välj ...",
@@ -96,7 +108,7 @@
         "syncjob": "Lägg till synkroniseringsjobb",
         "syncjob_hint": "Observera att lösenord lagras i klartext!",
         "target_address": "Destinationsadresser",
-        "target_address_info": "<small>Fullständig e-postadress/adresser (kommaseparerade).</small>",
+        "target_address_info": "<small>Fullständig e-postadress/adresser (separerade med komma).</small>",
         "target_domain": "Måldomän",
         "timeout1": "Timeout för anslutning till fjärrservern",
         "timeout2": "Timeout för anslutning till lokalserver",
@@ -123,6 +135,8 @@
         "add_transports_hint": "Tänk på att autentiseringsdata lagras okrypterat.",
         "additional_rows": "ytterliggare rader har lagts till",
         "admin": "Administratör",
+        "admins": "Administratörer",
+        "admins_ldap": "LDAP-Administratörer",
         "admin_details": "Hantera administratörer",
         "admin_domains": "Tilldelad domän",
         "advanced_settings": "Avancerade inställningar",
@@ -139,6 +153,7 @@
         "ban_list_info": "Se en lista över banlysta IP-adresser nedan: <b>nätverk (återstående banlysningstid) - [åtgärd]</b>.<br />IP-adresser som står i kö för att tas bort från den aktiva banlysningslistan tas bort inom några sekunder.<br />Röd markering indikerar en aktiv permanent banlysning pga. en svartlistning.",
         "change_logo": "Byt logotyp",
         "configuration": "Konfiguration",
+        "convert_html_to_text": "Konventera HTML till oformaterad text",
         "credentials_transport_warning": "<b>Varning</b>: När en ny reläserver läggs till uppdateras uppgifterna för alla reläservrar som hör till samma värd.",
         "customer_id": "Kundnummer",
         "customize": "Anpassa gränssnittet",
@@ -190,6 +205,7 @@
         "hash_remove_info": "Ta bort kontrollsumman för hastighetsbegränsningen. Det kommer att återställa räknaren helt och hållet.<br>\r\n Varje kontrollsumma är unikt med en induviduell färg.",
         "help_text": "Hjälptext på inloggningssidan (HTML är tillåtet)",
         "host": "Värd",
+        "html": "HTML",
         "import": "Importera",
         "import_private_key": "Importera en privatnyckel",
         "in_use_by": "Används av",
@@ -218,7 +234,15 @@
         "oauth2_redirect_uri": "omdirigerings URI",
         "oauth2_renew_secret": "Generera ny klienthemlighet",
         "oauth2_revoke_tokens": "Återkalla alla klientnycklar",
+        "optional": "Valfri",
         "password": "Lösenord",
+        "password_length": "Lösenordslängd",
+        "password_policy": "Lösenordspolicy",
+        "password_policy_chars": "Måste innehålla minst ett alfabetiskt tecken",
+        "password_policy_length": "Minsta lösenordslängden är %d tecken",
+        "password_policy_numbers": "Måste innehålla minst en siffra",
+        "password_policy_lowerupper": "Måste innehålla både versaler och gemener",
+        "password_policy_special_chars": "Måste innehålla specialtecken",
         "password_repeat": "Lösenord (igen)",
         "priority": "Prioritet",
         "private_key": "Privatnyckel",
@@ -258,6 +282,7 @@
         "regen_api_key": "Generera ny API-nyckel",
         "regex_maps": "Regex-filter",
         "relay_from": "Avsändaradress",
+        "relay_rcpt": "Mottagaradress",
         "relay_run": "Testa reläservern",
         "relayhosts": "Generell reläserver för vidare posttransport",
         "relayhosts_hint": "Ange vilka reläservrar som ska finnas tillgängliga för posttransport, för att kunna välja dessa vid domänkonfigureringen.<br>\r\nTransportprotokollet kommer alltid att vara \"smtp:\", TLS användas om det är tillgängligt och tunnlad TLS (SMTPS) stöds inte. Nuvarande TLS-policyföreskrift för utgående trafik kommer att gälla för transporten.<br>\r\nDetta kommer att påverka den valda domänen, aliasdomäner inkluderat.",
@@ -299,6 +324,7 @@
         "transport_dest_format": "Syntax: example.org, .example.org, *, box@example.org (fler värdar kan anges med kommatecken)",
         "transport_maps": "Destinationsspecifik reläserver för vidare posttransport",
         "transports_hint": "→ En destinationsspecifik reläserver kommer att <b>ignorerar</b> en generell reläserver</b>.<br>\r\n→ Utgående TLS-policy för användarens postlåda kommer ignoreras, men den generella TLS-policyn för servern kommer att tillämpas.<br>\r\n→ Transportprotokollet kommer alltid att vara \"smtp:\", TLS användas om det är tillgängligt och tunnlad TLS (SMTPS) stöds inte.<br>\r\n→ Adresser som matchar \"/localhost$/\" transporteras alltid via \"local:\", därför kommer en \"*\" destination inte vara möjlig för dessa adresser.<br>\r\n→ När uppgifterna för reläservern ska hämtas ex. \"[host]:25\" kommer Postfix <b>först</b> att söka efter \"host\", och sedan söka på \"[host]:25\". Detta görs för att förhindra en situation där både \"host\" och \"[host]:25\" används samtidigt.",
+        "transport_test_rcpt_info": "→ Använd adressen null@hosted.mailcow.de för att testa vidarebefodring till en extern destination.",
         "ui_footer": "Sidfot (HTML-taggar tillåtna)",
         "ui_header_announcement": "Meddelanden",
         "ui_header_announcement_active": "Aktivera meddelandet nu",
@@ -349,7 +375,8 @@
         "from_invalid": "Avsändarens adress måste vara en giltig e-postadress",
         "global_filter_write_error": "Kan inte skriva till filterfilen: %s",
         "global_map_invalid": "Rspamd kartan med ID %s är felaktig",
-        "global_map_write_error": "Kunde inte skriva globalkartan med ID %s: %s",
+        "global_map_write_error": "Kunde inte skapa en global-koppling med ID %s: %s",
+        "xmpp_map_write_error": "Kunde inte skapa en XMPP-koppling: %s",
         "goto_empty": "En aliasadress måste peka mot minst en giltig destinationsadress",
         "goto_invalid": "Destinationsadressen %s är ogiltig",
         "ham_learn_error": "Felaktigt-Spam inlärningsfel: %s",
@@ -362,7 +389,7 @@
         "invalid_host": "Angiven värd är inte giltig: %s",
         "invalid_mime_type": "Grafiken kunde inte valideras: Ogiltig MIME-typ",
         "invalid_nexthop": "Formatet för reläservern är felaktigt",
-        "invalid_nexthop_authenticated": "En reläserver existerar redan, men med andra uppgifter. Uppdatera först uppgifterna för den existerande reläservern.",
+        "invalid_nexthop_authenticated": "En reläserver existerar redan, men med andra uppgifter. Uppdatera först uppgifterna på den existerande reläservern.",
         "invalid_recipient_map_new": "Den nya mottagaren: %s är ogiltid",
         "invalid_recipient_map_old": "Den ursprungliga mottagaren: %s är ogiltig",
         "ip_list_empty": "Listan över tillåtna IP adresser kan inte vara tom",
@@ -384,7 +411,8 @@
         "max_quota_in_use": "Postlådans kvotgräns måste vara större än, eller lika med %d MiB",
         "maxquota_empty": "Max kvoten per mejlåda kan inte vara 0.",
         "mysql_error": "MySQL-fel: %s",
-        "network_host_invalid": "Ntverk, eller värden %s är ogiltig",
+        "nginx_reload_failed": "Misslyckades att ladda om Nginx: %s",
+        "network_host_invalid": "Nätverk, eller värden %s är ogiltig",
         "next_hop_interferes": "%s förhindras av reläservern %s",
         "next_hop_interferes_any": "En befintlig reläserver hindrar skapandet av %s",
         "no_user_defined": "Ingen användare har definierats",
@@ -434,7 +462,9 @@
         "username_invalid": "Användarnamnet %s kan inte användas",
         "validity_missing": "Ange en giltighetsperiod",
         "value_missing": "Ange alla värden",
-        "yotp_verification_failed": "Yubico OTP-verifiering misslyckades: %s"
+        "yotp_verification_failed": "Yubico OTP-verifiering misslyckades: %s",
+        "xmpp_restart_failed": "Misslyckades att starta om XMPP",
+        "xmpp_reload_failed": "Misslyckades att ladda om XMPP"
     },
     "debug": {
         "chart_this_server": "Tabell (denna server)",
@@ -444,24 +474,28 @@
         "history_all_servers": "Historik (alla servrar)",
         "in_memory_logs": "Loggar sparade i minnet",
         "jvm_memory_solr": "JVM minnesanvändning",
-        "log_info": "<p>mailcow <b>loggar sparade i minnet</b> samlas in i Redis-listor och trimmas till LOG_LINES (%d) varje minut för att minska lasten.\r\n  <br>Loggar sparade i minnet är inte tänkta att vara beständiga. Alla applikationer som loggar i minnet loggar också till Docker-demonen och därefter till standardrutinen för loggning.\r\n  <br>Loggar sparade i minnet bör användas för felsökning av mindre problem med olika behållare.</p>\r\n  <p><b>Externa loggar</b> samlas in via ett API för den givna applikationen.</p>\r\n  <p><b>Statiska loggar</b> är mestadels aktivitetsloggar som inte är loggas i Docker, men som fortfarande måste vara beständiga (utom API-loggar).</p>",
+        "log_info": "<p>mailcow <b>loggar sparade i minnet</b> samlas in i Redis-listor och trimmas till LOG_LINES (%d) varje minut för att minska lasten.\r\n  <br>Loggar sparade i minnet är inte tänkta att vara beständiga. Alla applikationer som loggar i minnet loggar också till Docker-demonen och därefter till standardrutinen för loggning.\r\n  <br>Loggar sparade i minnet bör användas för felsökning av mindre problem med olika behållare.</p>\r\n  <p><b>Externa loggar</b> samlas in via ett API på den givna applikationen.</p>\r\n  <p><b>Statiska loggar</b> är mestadels aktivitetsloggar som inte är loggas i Docker, men som fortfarande måste vara beständiga (utom API-loggar).</p>",
         "logs": "Loggar",
         "restart_container": "Omstart",
         "solr_dead": "Solr är i uppstart, har inaktiveras eller är tillfälligt avstängd.",
-        "solr_docs": "Dokumentation",
-        "solr_last_modified": "Senast ändrad",
-        "solr_size": "Storlek",
-        "solr_started_at": "Startades kl.",
+        "xmpp_dead": "XMPP startet, ist deaktiviert oder temporär nicht erreichbar.",
+        "online_users": "Användare online",
+        "docs": "Dokumentation",
+        "last_modified": "Senast ändrad",
+        "size": "Storlek",
+        "started_at": "Startades kl.",
         "solr_status": "Solr status",
-        "solr_uptime": "Upptid",
+        "uptime": "Upptid",
         "started_on": "Startades",
         "static_logs": "Statiska loggar",
-        "system_containers": "System & behållare"
+        "system_containers": "System & behållare",
+        "xmpp_status": "XMPP Status"
     },
     "diagnostics": {
         "cname_from_a": "Värde härstammar från A/AAAA-uppslaget. Detta stöds så länge som uppslaget pekar mot rätt resurs.",
         "dns_records": "DNS-uppslag",
         "dns_records_24hours": "Observera att ändringar gjorda i DNS kan ta upp till 24 timmar innan det visas korrekt på denna sida. Syftet med sidan är att enkelt se hur DNS-uppslagen är konfigurerade. Det är lätt att kontrollera att DNS-uppslagen är korrekt uppsatta.",
+        "dns_records_docs": "Se även <a target=\"_blank\" href=\"https://mailcow.github.io/mailcow-dockerized-docs/prerequisite-dns/\">dokumentationen</a>.",
         "dns_records_data": "Korrektdata",
         "dns_records_name": "Namn",
         "dns_records_status": "Nuvarande status",
@@ -470,6 +504,7 @@
     },
     "edit": {
         "active": "Aktiv",
+        "admin": "Ändra administratör",
         "advanced_settings": "Avancerade inställningar",
         "alias": "Ändra alias",
         "allow_from_smtp": "Tillåt endast följande IP-adresser att använda <b>SMTP</b>",
@@ -498,12 +533,21 @@
         "encryption": "Kryptering",
         "exclude": "Exkludera objekt (regex-filter)",
         "extended_sender_acl": "Externa avsändaradresser",
-        "extended_sender_acl_info": "En DKIM-domännyckel bör importeras, om det är möjligt.<br>\r\n  Kom ihåg att även lägga till motsvarande SPF TXT-uppslag för den här servern.<br>\r\n  När en domän eller aliasdomän läggs till på den här servern som överlappar en extern adress, tas den externa adressen bort.<br>\r\n  Använd @domain.tld för att kunna  skicka som *@domain.tld.",
+        "extended_sender_acl_info": "En DKIM-domännyckel bör importeras, om det är möjligt.<br>\r\n  Kom ihåg att även lägga till motsvarande SPF TXT-uppslag på den här servern.<br>\r\n  När en domän eller aliasdomän läggs till på den här servern som överlappar en extern adress, tas den externa adressen bort.<br>\r\n  Använd @domain.tld för att kunna  skicka som *@domain.tld.",
         "force_pw_update": "Kräv uppdatering av lösenordet vid nästa inloggning",
         "force_pw_update_info": "Den här användaren kan bara logga in på %s.",
         "full_name": "Fullständigt namn",
         "gal": "Global adressbok",
         "gal_info": "Den global adressboken innehåller alla objekt i en domän och kan inte redigeras av någon användare. Informationen om tillgänglighet i SOGo är endast synlig när den globala adressboken är påslagen.  <b>Starta om SOGo för att tillämpa ändringar.</b>",
+        "xmpp": "Aktivera XMPP funktion på denna domän",
+        "xmpp_prefix": "XMPP-prefix för domänen (Exempelvis \"im\" för <b>im</b>.example.org)",
+        "xmpp_prefix_info": "För att tillhandahålla ett säkerhetscertifikat måste vissa DNS-uppslag skapas, exempelvis två CNAME uppslag, ett för <b>im</b>.example.org och ett för <b>*.im</b>.example.org, som pekar mot <b>%s</b>. Efter att denna funktion har aktiverats, utför en DNS-kontroll för att testa att uppslagen är korrekt uppsatta.",
+        "xmpp_info": "Denna funktion aktiverar chatt-funktionalitet på denna domän.",
+        "xmpp_access": "XMPP-åtkomst",
+        "xmpp_access_info": "XMPP måste aktiveras på den här domänen.",
+        "xmpp_admin": "XMPP Administratör",
+        "xmpp_admin_info": "<b>Varning:</b> Befodrar en användare till XMPP-administratör på den här domänen.",
+        "xmpp_example_jid": "<b>Exempel JID</b> (Använd samma lösenord som på postlådan)",
         "generate": "generera",
         "grant_types": "Grant-typer",
         "hostname": "Värdnamn",
@@ -516,7 +560,7 @@
         "max_quota": "Max. kvot per postlåda (MiB)",
         "maxage": "Hur många antal dagar bakåt som meddelanden ska hämtas <br><small>(0 = ignorera ålder)</small>",
         "maxbytespersecond": "Max antal bitar per sekund <br><small>(0 = obegränsat)</small>",
-        "mbox_rl_info": "Hastighetsgränsen tillämpas på SASL-inloggningsnamnet och påverkar därför alla avsändaradresser som den inloggade användaren använder. Gränsvärde för en enskild postlåda åsidosätter gränsvärdet för domänen.",
+        "mbox_rl_info": "Hastighetsgränsen tillämpas på SASL-inloggningsnamnet och påverkar därför alla avsändaradresser som den inloggade användaren använder. Gränsvärde på en enskild postlåda åsidosätter gränsvärdet för domänen.",
         "mins_interval": "Intervall (min)",
         "multiple_bookings": "Flera bokningar",
         "nexthop": "Reläserver",
@@ -535,11 +579,14 @@
         "pushover_vars": "Om inget avsändarfilter är definerat, kommer alla e-postmeddelanden att behandlas.<br>Direkt avsändarkontroll och Regex-filter kontrolleras induviduellt, de är <b>inte beroende av varandra</b> och bearbetas i följd.<br>Variabler som kan användas för text och titel. (Notera gällande dataskyddsförordning)",
         "pushover_verify": "Verifiera anslutningen",
         "quota_mb": "Kvot (MiB)",
+        "quota_warning_bcc": "Kvotvarning dålda-kopior",
+        "quota_warning_bcc_info": "Varningarna skickas som separat kopia till följande mottagare. Ämnesraden kommer att innehålla användarens användarnamn i parenteser (ex. <code>Kvot-Warning (användare@exempel.se)</code>).",
+        "ratelimit": "Hastighetsgräns",
         "redirect_uri": "Omdirigering/Callback-URL",
         "relay_all": "Vidarebefordra alla mottagare",
         "relay_all_info": "↪ Om <b>inte</b> alla mottagare ska vidarebefordras måste (\"blinda\") postlådor skapas för varje adress som ska vidarebefordras.",
         "relay_domain": "Relädomän",
-        "relay_transport_info": "<div class=\"label label-info\">Info</div> Transportkartor kan skapas för att definiera enskilda destinationer för en relädomän.",
+        "relay_transport_info": "<div class=\"label label-info\">Info</div> Transportkartor kan skapas för att definiera enskilda destinationer på en relädomän.",
         "relay_unknown_only": "Vidarebefodra endast om det saknas en lokal postlåda. Existerar det en postlåda kommer det levereras lokalt.",
         "relayhost": "Reläserver",
         "remove": "Ta bort",
@@ -547,7 +594,7 @@
         "save": "Spara ändringar",
         "scope": "Omfattning",
         "sender_acl": "Tillåt att skicka som",
-        "sender_acl_disabled": "↳ <span class=\"label label-danger\">Avsändarkontroll är avaktiverad</span>",
+        "sender_acl_disabled": "<span class=\"label label-danger\">Avsändarkontroll är avaktiverad</span>",
         "sender_acl_info": "Om användaren A tillåts skicka som användaren B visas inte avsändaradressen automatiskt i \"från\" fältet i SOGo.<br>\r\n  Användaren B måste skapa en delegation i SOGo för att låta användaren A välja Användaren B's adress som avsändare. För att delegera en postlåda i SOGo, gå till menyn (tre punkter) till höger om ditt namn uppe till vänster i postvyn. Detta gäller inte för aliasadresser.",
         "sieve_desc": "Kort beskrivning",
         "sieve_type": "Filtertyp",
@@ -557,11 +604,12 @@
         "sogo_visible": "Alias visas i SOGo",
         "sogo_visible_info": "Det här alternativet påverkar endast objekt som kan visas i SOGo (delade eller icke-delade aliasadresser med destination för minst en lokal postlåda).",
         "spam_alias": "Skapa eller ändra tillfälliga e-postalias",
+        "spam_filter": "Spamfilter",
         "spam_policy": "Lägg till eller ta bort objekt på vit- eller svartlista",
         "spam_score": "Ange ett anpassad skräppostvärde",
         "subfolder2": "Synkronisera till en undermapp <br><small>(lämna tomt = använd inte undermapp)</small>",
         "syncjob": "Ändra synkroniseringsjobb",
-        "target_address": "Vidarbefodringsadresser <small>(separerade med komma)</small>",
+        "target_address": "Vidarbefodringsadresser",
         "target_domain": "Måldomän",
         "timeout1": "Timeout för anslutning till fjärrservern",
         "timeout2": "Timeout för anslutning till lokalserver",
@@ -614,6 +662,7 @@
         "active": "Aktiv",
         "add": "Lägg till",
         "add_alias": "Lägg till alias",
+        "add_alias_expand": "Överför aliasadresser till aliasdomäner",
         "add_bcc_entry": "Lägg till ny koppling",
         "add_domain": "Lägg till domän",
         "add_domain_alias": "Lägg till domänalias",
@@ -625,7 +674,7 @@
         "add_tls_policy_map": "Lägg till TLS-policyföreskrift",
         "address_rewriting": "Adress omskrivning",
         "alias": "Alias",
-        "alias_domain_alias_hint": "Aliasadresser kopplas <b>inte</b> automatiskt med domänalias-adresser. En aliasadress <code>alias@domän</code> täcker <b>inte</b> adressen <code>alias@alias-domän</code> (ett exempel där \"alias-domän\" är en aliasdomän för \"domän\").<br>Använd istället ett sieve filter för att dirigera om e-post till en extern postlåda (Gå till \"Postfilter\" eller använd SOGo -> Forwarder).",
+        "alias_domain_alias_hint": "Aliasadresser och domänalias-adresser uppdateras inte automatiskt. Exempel: En alias <code>info@domän.se</code > kommer inte automatiskt också att skapa <code>info@alias-till-domän.se</code> (alias-till-domän.se är ett alias till domän.se).<br>Använd ett <b>Sieve-filter</b> för att dirigera om e-post till en extern postlåda (Gå till \"Postfilter\" eller använd SOGo -> Forwarder). \"Överför aliasadresser till aliasdomäner\" Överför befintliga aliasadresser till att även fungera för domänalias-adresser.",
         "alias_domain_backupmx": "Aliasdomänen för relädomänen är inaktiv",
         "aliases": "Alias",
         "allow_from_smtp": "Tillåt endast följande IP-adresser att använda <b>SMTP</b>",
@@ -635,7 +684,7 @@
         "bcc": "Dåld kopia",
         "bcc_destination": "Destination för dåld kopia",
         "bcc_destinations": "Destinationer för dålda kopior",
-        "bcc_info": "En dåld kopia koppling kan användas för att vidarebefodra kopior av skickade meddelanden till en annan adress som dåld kopia. Det kan kopplas till en e-postadress eller för en domän.<br/>\r\n Den lokala destinationen kommer inte att informeras om leveransen skulle misslyckas.",
+        "bcc_info": "En dåld kopia koppling kan användas för att vidarebefodra kopior av skickade meddelanden till en annan adress som dåld kopia. Det kan kopplas till en e-postadress eller på en domän.<br/>\r\n Den lokala destinationen kommer inte att informeras om leveransen skulle misslyckas.",
         "bcc_local_dest": "Lokal destination",
         "bcc_map": "Dåld kopia koppling",
         "bcc_map_type": "Vilken typ av koppling",
@@ -692,9 +741,9 @@
         "owner": "Ägare",
         "private_comment": "Privat kommentar",
         "public_comment": "Offentlig kommentar",
-        "q_add_header": "Skräppost",
-        "q_all": "Alla kategorier",
-        "q_reject": "Avvisad",
+        "q_add_header": "via Skräppost",
+        "q_all": "via avvisade och skräppost",
+        "q_reject": "via avvisade",
         "quarantine_notification": "Ändra meddelandet som skickas vid karantän",
         "quarantine_category": "Kategori för karantänsnotifiering",
         "quick_actions": "Åtgärder",
@@ -720,7 +769,6 @@
         "sieve_preset_7": "Vidarebefodra och behåll, eller kasta meddelandet.",
         "sieve_preset_8": "Kasta meddelanden som skickas till en alias-adress som avsändaren redan tillhör.",
         "sieve_preset_header": "Exempel på postfilter finns nedan. För mer information se <a href=\"https://en.wikipedia.org/wiki/Sieve_(mail_filtering_language)\" target=\"_blank\">Wikipedia</a>.",
-        "sogo_allow_admin_hint": "Administrativ SOGo-inloggning är endast tillgängliga för postlådor med en befintlig SOGo-profil. Användaren måste ha varit inloggad på SOGo minst en gång innan.",
         "sogo_visible": "Visa detta alias i SOGo",
         "sogo_visible_n": "Dölj alias i SOGo",
         "sogo_visible_y": "Visa alias i SOGo",
@@ -767,6 +815,7 @@
         "danger": "Fara",
         "deliver_inbox": "Leverera till inboxen",
         "disabled_by_config": "Med nuvarande konfigurationen är karantänfunktionen inaktiverad. För att aktivera funktionen behöver inställningen för antal meddelanden att förvara i karantän, och storleksgräns per meddelanden i karantän anges.",
+        "settings_info": "Maximalt antal e-postmeddelanden som placeras i karantän: %s<br>Maximal storlek på e-postmeddelanden som sparas: %s MiB",
         "download_eml": "Ladda ner (.eml)",
         "empty": "Inga resultat",
         "high_danger": "Hög",
@@ -865,9 +914,11 @@
         "mailbox_added": "Postlådan %s har lagts till",
         "mailbox_modified": "Ändringarna på postlådan %s har sparats",
         "mailbox_removed": "Postlådan %s har tagits bort",
+        "nginx_reloaded": "Nginx laddades om",
         "object_modified": "Ändringarna på objektet %s har sparats",
         "pushover_settings_edited": "Konfigurationen för Pushover är sparad, kontrollera att det finns korrekt åtkomst.",
         "qlearn_spam": "Medelandet med ID %s har markerats som spam och har tagits bort",
+        "password_policy_saved": "Lösenordspolicyn har sparats",
         "queue_command_success": "Köuppgiften har slutförts",
         "recipient_map_entry_deleted": "Mottagaröverföringen med ID %s har tagits bort",
         "recipient_map_entry_saved": "Mottagaröverföring \"%s\" har sparats",
@@ -890,7 +941,10 @@
         "verified_totp_login": "Verifierad TOTP inloggning",
         "verified_u2f_login": "Verifierad U2F inloggning",
         "verified_fido2_login": "Verifierad FIDO2 inloggning",
-        "verified_yotp_login": "Verifierad Yubico OTP inloggning"
+        "verified_yotp_login": "Verifierad Yubico OTP inloggning",
+        "xmpp_restarted": "XMPP-tjänsten har startat om",
+        "xmpp_reloaded": "XMPP-tjänsten har laddats om",
+        "xmpp_maps_updated": "XMPP-kopplingen har aktiverats"
     },
     "tfa": {
         "api_register": "%s använder Yubico Moln-API. Vänligen skaffa en API-nyckel för din nyckel <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">här</a>",
@@ -910,6 +964,7 @@
         "set_tfa": "Metod för tvåfaktorsautentisering",
         "start_u2f_validation": "Startar validering",
         "tfa": "Tvåfaktorsautentisering",
+        "tfa_token_invalid": "TFA nyckeln är ogiltig!",
         "totp": "Tidsbaserad OTP (Google Authenticator, Authy, mm)",
         "u2f": "U2F-autentisering",
         "waiting_usb_auth": "<i>Väntar på USB-enhet...</i><br><br>Tryck på knappen på USB-enheten nu.",
@@ -949,12 +1004,13 @@
         "app_name": "Applikationsnamn",
         "app_passwds": "Applikationslösenord",
         "apple_connection_profile": "Apple-anslutningsprofil",
-        "apple_connection_profile_complete": "Denna anslutningsprofil inkluderar både konfigurationsparametrar till IMAP, SMTP, CalDAV (för kalendrar) och CardDAV (för kontakter) för en Apple-enhet.",
-        "apple_connection_profile_mailonly": "Denna anslutningsprofil inkluderar både konfigurationsparametrar till IMAP och SMTP för en Apple-enhet.",
+        "apple_connection_profile_complete": "Denna anslutningsprofil inkluderar både konfigurationsparametrar till IMAP, SMTP, CalDAV (för kalendrar) och CardDAV (för kontakter) på en Apple-enhet.",
+        "apple_connection_profile_mailonly": "Denna anslutningsprofil inkluderar både konfigurationsparametrar till IMAP och SMTP på en Apple-enhet.",
         "change_password": "Ändra lösenordet",
         "client_configuration": "Visa konfigurationsguider för e-postklienter och smartatelefoner",
         "create_app_passwd": "Skapa applikationslösenord",
         "create_syncjob": "Skapa ett nytt synkroniseringsjobb",
+        "created_on": "Skapad vid",
         "daily": "Dagligen",
         "day": "dag",
         "delete_ays": "Är du säker att du vill ta bort det här objektet?",
@@ -982,9 +1038,10 @@
         "loading": "Vänta...",
         "mailbox_details": "Påstlådans detaljer",
         "messages": "meddelanden",
+        "month": "Månad",
+        "months": "Månader",
         "never": "Aldrig",
         "new_password": "Nytt lösenord",
-        "new_password_description": "Krav: 6 tecken, bokstäver och nummer.",
         "new_password_repeat": "Lösenord (igen)",
         "no_active_filter": "Finns inga aktiva filter",
         "no_last_login": "Senaste inloggningen till gränssnittet saknas",
@@ -1058,7 +1115,9 @@
         "waiting": "Väntar",
         "week": "vecka",
         "weekly": "Varje vecka",
-        "weeks": "veckor"
+        "weeks": "veckor",
+        "year": "år",
+        "years": "år"
     },
     "warning": {
         "cannot_delete_self": "Inloggade användare kan inte tas bort",
@@ -1066,9 +1125,10 @@
         "dovecot_restart_failed": "Dovecot kunde inte startas om, kontrollera Dovecot loggen.",
         "fuzzy_learn_error": "En oklar kontrollsumma resulterade i ett inlärningsfel: %s",
         "hash_not_found": "Kontrollsumman hittas inte. Den kan redan vara borttagen",
-        "ip_invalid": "Skippar en ogiltig IP-adress: %s",
+        "ip_invalid": "Hoppade över en ogiltig IP-adress: %s",
+        "is_not_primary_alias": "Hoppade över en ej-primär alias: %s",
         "no_active_admin": "Den senaste kända administratören kan inte inaktiveras",
-        "quota_exceeded_scope": "Domänkvoten fylld: Endast postlådor med obegränsade kvoter kan skapas för den här domänen.",
+        "quota_exceeded_scope": "Domänkvoten fylld: Endast postlådor med obegränsade kvoter kan skapas på den här domänen.",
         "session_token": "Formulär-nyckeln är ogiltig: Nyckeln matchar inte",
         "session_ua": "Formulär-nyckeln är ogiltig: User-Agenten kunde inte valideras"
     }
diff --git a/mailcow/src/mailcow-dockerized/data/web/lang/lang.zh.json b/mailcow/src/mailcow-dockerized/data/web/lang/lang.zh.json
index 9dea0af..8993cb9 100644
--- a/mailcow/src/mailcow-dockerized/data/web/lang/lang.zh.json
+++ b/mailcow/src/mailcow-dockerized/data/web/lang/lang.zh.json
@@ -437,20 +437,20 @@
         "chart_this_server": "图表 (此服务器)",
         "containers_info": "容器信息",
         "disk_usage": "磁盘使用",
-        "external_logs": "外部日至",
+        "external_logs": "外部日志",
         "history_all_servers": "历史 (所有服务器)",
-        "in_memory_logs": "内存日至",
+        "in_memory_logs": "内存日志",
         "jvm_memory_solr": "JVM内存使用",
-        "log_info": "<p>mailcow <b>内存日志</b> 收集于Redis列表中并且每分钟地修整到 LOG_LINES (%d) 以减少错误(Rowhammer)。\r\n  <br>内存日志不是为了持久化,所有使用内存日志的应用同时也会写入日志到Docker守护程序的默认日志驱动中。\r\n  <br>内存日志应该用于debug容器中的不明显问题。</p>\r\n  <p><b>外部日志</b> 通过相应应用提供的API收集。</p>\r\n  <p><b>静态日志</b> 大多为不写入日志到Dockerd但仍然需要被持久化的活动日志(API日志外的)。</p>",
+        "log_info": "<p>mailcow <b>内存日志</b> 收集于Redis列表中并且每分钟自动缩减到 LOG_LINES (%d) 以减少错误(Rowhammer)。\r\n  <br>内存日志不是为了持久化,所有使用内存日志的应用同时也会写入日志到Docker守护程序的默认日志驱动中。\r\n  <br>内存日志应该用于debug容器中的不明显问题。</p>\r\n  <p><b>外部日志</b> 通过相应应用提供的API收集。</p>\r\n  <p><b>静态日志</b> 大多为不写入日志到Dockerd但仍然需要被持久化的活动日志(API日志外的)。</p>",
         "logs": "日志",
         "restart_container": "重启",
         "solr_dead": "Solr在启动中、已关闭或已停止运行",
-        "solr_docs": "文档",
-        "solr_last_modified": "最后修改",
-        "solr_size": "大小",
-        "solr_started_at": "开始于",
+        "docs": "文档",
+        "last_modified": "最后修改",
+        "size": "大小",
+        "started_at": "开始于",
         "solr_status": "Solr状态",
-        "solr_uptime": "运行时间",
+        "uptime": "运行时间",
         "started_on": "启动于",
         "static_logs": "静态日志",
         "system_containers": "系统和容器"
@@ -544,7 +544,7 @@
         "save": "保存更改",
         "scope": "范围",
         "sender_acl": "允许发送为",
-        "sender_acl_disabled": "↳ <span class=\"label label-danger\">发件人检查已关闭</span>",
+        "sender_acl_disabled": "<span class=\"label label-danger\">发件人检查已关闭</span>",
         "sender_acl_info": "如果允许邮箱用户A作为邮箱用户B发送邮件,发件人的地址不会在SOGo中\"来自\"区域自动地作为下拉可选项显示。<br>\r\n 邮箱用户B需要添加授权以允许邮箱用户A选择B的地址作为发件人;授权方法为,在SOGo中点击左上方邮箱地址右边的菜单按钮(三个点)并授权。",
         "sieve_desc": "简短描述",
         "sieve_type": "过滤器类型",
@@ -711,7 +711,6 @@
         "sieve_preset_7": "重定向邮件并保留/删除",
         "sieve_preset_8": "删除发件人发送给自己别名地址的邮件",
         "sieve_preset_header": "请看下方的示例预设。 查看 <a href=\"https://en.wikipedia.org/wiki/Sieve_(mail_filtering_language)\" target=\"_blank\">Wikipedia</a> 以了解更多细节。",
-        "sogo_allow_admin_hint": "只允许存在个人资料的邮箱帐号以SOGo管理员登录,即用户需要在先前至少登录过一次。",
         "sogo_visible": "SOGo别名显示",
         "sogo_visible_n": "在SOGo中隐藏别名",
         "sogo_visible_y": "在SOGo中显示别名",
@@ -1033,7 +1032,7 @@
     "warning": {
         "cannot_delete_self": "不能删除已登录用户",
         "domain_added_sogo_failed": "域名已添加但是重启Dovecot失败,请检查日志。",
-        "dovecot_restart_failed": "Dovecot重启失败,请检查日至",
+        "dovecot_restart_failed": "Dovecot重启失败,请检查日志",
         "fuzzy_learn_error": "模糊特征学习失败: %s",
         "hash_not_found": "找不到特征或已被删除",
         "ip_invalid": "跳过的非法IP: %s",
diff --git a/mailcow/src/mailcow-dockerized/data/web/mailbox.php b/mailcow/src/mailcow-dockerized/data/web/mailbox.php
index 679f489..6dfe3af 100644
--- a/mailcow/src/mailcow-dockerized/data/web/mailbox.php
+++ b/mailcow/src/mailcow-dockerized/data/web/mailbox.php
@@ -7,7 +7,7 @@
 ?>
 <div class="container">
 
-  <ul class="nav nav-tabs" role="tablist">
+  <ul class="nav nav-tabs responsive-tabs" role="tablist">
     <li role="presentation" class="active"><a href="#tab-domains" aria-controls="tab-domains" role="tab" data-toggle="tab"><?=$lang['mailbox']['domains'];?></a></li>
     <li role="presentation"><a href="#tab-mailboxes" aria-controls="tab-mailboxes" role="tab" data-toggle="tab"><?=$lang['mailbox']['mailboxes'];?></a></li>
     <?php /* <li class="dropdown">
@@ -33,17 +33,17 @@
     <li role="presentation"<?=($_SESSION['mailcow_cc_role'] == "admin") ?: ' class="hidden"';?>><a href="#tab-tls-policy" aria-controls="tab-tls-policy" role="tab" data-toggle="tab"><?=$lang['mailbox']['tls_policy_maps'];?></a></li>
   </ul>
 
-	<div class="row">
-		<div class="col-md-12">
+  <div class="row">
+    <div class="col-md-12">
       <div class="tab-content" style="padding-top:20px">
         <div role="tabpanel" class="tab-pane active" id="tab-domains">
           <div class="panel panel-default">
             <div class="panel-heading">
               <?=$lang['mailbox']['domains'];?> <span class="badge badge-info table-lines"></span>
               <div class="btn-group pull-right hidden-xs">
-                <? if($_SESSION['mailcow_cc_role'] == "admin"): ?><button class="btn btn-xs btn-success" href="#" data-toggle="modal" data-target="#addDomainModal"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_domain'];?></button><? endif; ?>
+                <? if($_SESSION['mailcow_cc_role'] == "admin"): ?><button class="btn btn-xs btn-success" href="#" data-toggle="modal" data-target="#addDomainModal"><i class="bi bi-plus-lg"></i> <?=$lang['mailbox']['add_domain'];?></button><? endif; ?>
                 <button class="btn btn-xs btn-default refresh_table" data-draw="draw_domain_table" data-table="domain_table"><?=$lang['admin']['refresh'];?></button>
-                <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown"><?=$lang['mailbox']['table_size'];?> 
+                <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown"><?=$lang['mailbox']['table_size'];?>
                   <span class="caret"></span>
                 </button>
                 <ul class="dropdown-menu" data-table-id="domain_table" role="menu">
@@ -62,8 +62,8 @@
             </div>
             <div class="mass-actions-mailbox">
               <div class="btn-group">
-                <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="domain" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
-                <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
+                <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="toggle_multi_select_all" data-id="domain" href="#"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></a>
+                <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
                 <ul class="dropdown-menu">
                   <? if($_SESSION['mailcow_cc_role'] == "admin"): ?>
                     <li><a data-action="edit_selected" data-id="domain" data-api-url='edit/domain' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
@@ -72,8 +72,9 @@
                     <li><a data-action="delete_selected" data-id="domain" data-api-url='delete/domain' href="#"><?=$lang['mailbox']['remove'];?></a></li>
                   <? endif; ?>
                 </ul>
+                <div class="clearfix visible-xs"></div>
                 <? if($_SESSION['mailcow_cc_role'] == "admin"): ?>
-                  <a class="btn btn-sm btn-success" href="#" data-toggle="modal" data-target="#addDomainModal"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_domain'];?></a>
+                  <a class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" href="#" data-toggle="modal" data-target="#addDomainModal"><i class="bi bi-plus-lg"></i> <?=$lang['mailbox']['add_domain'];?></a>
                 <? endif; ?>
               </div>
             </div>
@@ -96,9 +97,9 @@
             <div class="panel-heading">
               <?=$lang['mailbox']['mailboxes'];?> <span class="badge badge-info table-lines"></span>
               <div class="btn-group pull-right hidden-xs">
-                <button class="btn btn-xs btn-success" href="#" data-toggle="modal" data-target="#addMailboxModal"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_mailbox'];?></button>
+                <button class="btn btn-xs btn-success" href="#" data-toggle="modal" data-target="#addMailboxModal"><i class="bi bi-plus-lg"></i> <?=$lang['mailbox']['add_mailbox'];?></button>
                 <button class="btn btn-xs btn-default refresh_table" data-draw="draw_mailbox_table" data-table="mailbox_table"><?=$lang['admin']['refresh'];?></button>
-                <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown"><?=$lang['mailbox']['table_size'];?> 
+                <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown"><?=$lang['mailbox']['table_size'];?>
                   <span class="caret"></span>
                 </button>
                 <ul class="dropdown-menu" data-table-id="mailbox_table" role="menu">
@@ -111,19 +112,14 @@
                 </ul>
               </div>
             </div>
-            <?php if (getenv('ALLOW_ADMIN_EMAIL_LOGIN') == "y" && getenv('SKIP_SOGO') != "y") { ?>
-            <div class="panel-body help-block">
-            <?=$lang['mailbox']['sogo_allow_admin_hint'];?>
-            </div>
-            <?php } ?>
-            <div class="mass-actions-mailbox" data-actions-header="true"></div>
+            <div class="mass-actions-mailbox hidden-xs" data-actions-header="true"></div>
             <div class="table-responsive">
               <table id="mailbox_table" class="table table-striped"></table>
             </div>
             <div class="mass-actions-mailbox">
               <div class="btn-group hidden-md hidden-lg hidden-xl">
-                <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="mailbox" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
-                <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
+                <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="toggle_multi_select_all" data-id="mailbox" href="#"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></a>
+                <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
                 <ul class="dropdown-menu">
                   <li class="dropdown-header"><?=$lang['mailbox']['mailbox'];?></li>
                   <li><a data-action="edit_selected" data-id="mailbox" data-api-url='edit/mailbox' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
@@ -161,10 +157,11 @@
                   <li><a data-action="edit_selected" data-id="mailbox" data-api-url='edit/mailbox' data-api-attr='{"smtp_access":1}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
                   <li><a data-action="edit_selected" data-id="mailbox" data-api-url='edit/mailbox' data-api-attr='{"smtp_access":0}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>
                 </ul>
-                <a class="btn btn-sm btn-success" href="#" data-toggle="modal" data-target="#addMailboxModal"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_mailbox'];?></a>
+                <div class="clearfix visible-xs"></div>
+                <a class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" href="#" data-toggle="modal" data-target="#addMailboxModal"><i class="bi bi-plus-lg"></i> <?=$lang['mailbox']['add_mailbox'];?></a>
               </div>
               <div class="btn-group hidden-xs hidden-sm">
-                <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="mailbox" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
+                <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="mailbox" href="#"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></a>
                 <div class="btn-group">
                   <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['mailbox'];?> <span class="caret"></span></a>
                   <ul class="dropdown-menu">
@@ -216,7 +213,7 @@
                     <li><a data-action="edit_selected" data-id="mailbox" data-api-url='edit/quarantine_category' data-api-attr='{"quarantine_category":"all"}' href="#"><?=$lang['user']['q_all'];?></a></li>
                   </ul>
                 </div>
-                <a class="btn btn-sm btn-success" href="#" data-toggle="modal" data-target="#addMailboxModal"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_mailbox'];?></a>
+                <a class="btn btn-sm btn-success" href="#" data-toggle="modal" data-target="#addMailboxModal"><i class="bi bi-plus-lg"></i> <?=$lang['mailbox']['add_mailbox'];?></a>
               </div>
             </div>
           </div>
@@ -227,9 +224,9 @@
             <div class="panel-heading">
               <?=$lang['mailbox']['resources'];?> <span class="badge badge-info table-lines"></span>
               <div class="btn-group pull-right hidden-xs">
-                <button class="btn btn-xs btn-success" href="#" data-toggle="modal" data-target="#addResourceModal"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_resource'];?></button>
+                <button class="btn btn-xs btn-success" href="#" data-toggle="modal" data-target="#addResourceModal"><i class="bi bi-plus-lg"></i> <?=$lang['mailbox']['add_resource'];?></button>
                 <button class="btn btn-xs btn-default refresh_table" data-draw="draw_resource_table" data-table="resource_table"><?=$lang['admin']['refresh'];?></button>
-                <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown"><?=$lang['mailbox']['table_size'];?> 
+                <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown"><?=$lang['mailbox']['table_size'];?>
                   <span class="caret"></span>
                 </button>
                 <ul class="dropdown-menu" data-table-id="resource_table" role="menu">
@@ -253,15 +250,16 @@
             </div>
             <div class="mass-actions-mailbox">
               <div class="btn-group">
-                <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="resource" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
-                <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
+                <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="toggle_multi_select_all" data-id="resource" href="#"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></a>
+                <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
                 <ul class="dropdown-menu">
                   <li><a data-action="edit_selected" data-id="resource" data-api-url='edit/resource' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
                   <li><a data-action="edit_selected" data-id="resource" data-api-url='edit/resource' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>
                   <li role="separator" class="divider"></li>
                   <li><a data-action="delete_selected" data-id="resource" data-api-url='delete/resource' href="#"><?=$lang['mailbox']['remove'];?></a></li>
                 </ul>
-                <a class="btn btn-sm btn-success" href="#" data-toggle="modal" data-target="#addResourceModal"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_resource'];?></a>
+                <div class="clearfix visible-xs"></div>
+                <a class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" href="#" data-toggle="modal" data-target="#addResourceModal"><i class="bi bi-plus-lg"></i> <?=$lang['mailbox']['add_resource'];?></a>
               </div>
             </div>
           </div>
@@ -272,9 +270,9 @@
             <div class="panel-heading">
               <?=$lang['mailbox']['domain_aliases'];?> <span class="badge badge-info table-lines"></span>
               <div class="btn-group pull-right hidden-xs">
-                <button class="btn btn-xs btn-success" href="#" data-acl="<?=$_SESSION['acl']['alias_domains'];?>" data-toggle="modal" data-target="#addAliasDomainModal"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_domain_alias'];?></button>
+                <button class="btn btn-xs btn-success" href="#" data-acl="<?=$_SESSION['acl']['alias_domains'];?>" data-toggle="modal" data-target="#addAliasDomainModal"><i class="bi bi-plus-lg"></i> <?=$lang['mailbox']['add_domain_alias'];?></button>
                 <button class="btn btn-xs btn-default refresh_table" data-draw="draw_aliasdomain_table" data-table="aliasdomain_table"><?=$lang['admin']['refresh'];?></button>
-                <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown"><?=$lang['mailbox']['table_size'];?> 
+                <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown"><?=$lang['mailbox']['table_size'];?>
                   <span class="caret"></span>
                 </button>
                 <ul class="dropdown-menu" data-table-id="aliasdomain_table" role="menu">
@@ -293,15 +291,16 @@
             </div>
             <div class="mass-actions-mailbox">
               <div class="btn-group">
-                <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="alias-domain" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
-                <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
+                <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="toggle_multi_select_all" data-id="alias-domain" href="#"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></a>
+                <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
                 <ul class="dropdown-menu">
                   <li><a data-action="edit_selected" data-id="alias-domain" data-api-url='edit/alias-domain' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
                   <li><a data-action="edit_selected" data-id="alias-domain" data-api-url='edit/alias-domain' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>
                   <li role="separator" class="divider"></li>
                   <li><a data-action="delete_selected" data-id="alias-domain" data-api-url='delete/alias-domain' href="#"><?=$lang['mailbox']['remove'];?></a></li>
                 </ul>
-                <a class="btn btn-sm btn-success" href="#" data-acl="<?=$_SESSION['acl']['alias_domains'];?>" data-toggle="modal" data-target="#addAliasDomainModal"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_domain_alias'];?></a>
+                <div class="clearfix visible-xs"></div>
+                <a class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" href="#" data-acl="<?=$_SESSION['acl']['alias_domains'];?>" data-toggle="modal" data-target="#addAliasDomainModal"><i class="bi bi-plus-lg"></i> <?=$lang['mailbox']['add_domain_alias'];?></a>
               </div>
             </div>
           </div>
@@ -312,9 +311,9 @@
             <div class="panel-heading">
               <?=$lang['mailbox']['aliases'];?> <span class="badge badge-info table-lines"></span>
               <div class="btn-group pull-right hidden-xs">
-                <button class="btn btn-xs btn-success" href="#" data-toggle="modal" data-target="#addAliasModal"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_alias'];?></button>
+                <button class="btn btn-xs btn-success" href="#" data-toggle="modal" data-target="#addAliasModal"><i class="bi bi-plus-lg"></i> <?=$lang['mailbox']['add_alias'];?></button>
                 <button class="btn btn-xs btn-default refresh_table" data-draw="draw_alias_table" data-table="alias_table"><?=$lang['admin']['refresh'];?></button>
-                <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown"><?=$lang['mailbox']['table_size'];?> 
+                <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown"><?=$lang['mailbox']['table_size'];?>
                   <span class="caret"></span>
                 </button>
                 <ul class="dropdown-menu" data-table-id="alias_table" role="menu">
@@ -328,7 +327,7 @@
               </div>
             </div>
             <div class="panel-body help-block">
-            <?=$lang['mailbox']['alias_domain_alias_hint'];?>
+              <?=$lang['mailbox']['alias_domain_alias_hint'];?>
             </div>
             <!-- <div class="mass-actions-mailbox" data-actions-header="true"></div> -->
             <div class="table-responsive">
@@ -336,9 +335,9 @@
             </div>
             <div class="mass-actions-mailbox">
               <div class="btn-group">
-                <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="alias" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
-                <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
-                <ul class="dropdown-menu">
+                <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="toggle_multi_select_all" data-id="alias" href="#"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></a>
+                <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
+                <ul class="dropdown-menu top33">
                   <li><a data-action="edit_selected" data-id="alias" data-api-url='edit/alias' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
                   <li><a data-action="edit_selected" data-id="alias" data-api-url='edit/alias' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>
                   <li role="separator" class="divider"></li>
@@ -349,7 +348,9 @@
                   <li><a data-action="edit_selected" data-id="alias" data-api-url='edit/alias' data-api-attr='{"sogo_visible":"0"}' href="#"><?=$lang['mailbox']['sogo_visible_n'];?></a></li>
                   <?php } ?>
                 </ul>
-                <a class="btn btn-sm btn-success" href="#" data-toggle="modal" data-target="#addAliasModal"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_alias'];?></a>
+                <div class="clearfix visible-xs"></div>
+                <a class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" data-action="edit_selected" data-id="alias" data-api-url='edit/alias' data-api-attr='{"expand_alias":true}' ><i class="bi bi-arrows-angle-expand"></i> <?=$lang['mailbox']['add_alias_expand'];?></a>
+                <a class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" href="#" data-toggle="modal" data-target="#addAliasModal"><i class="bi bi-plus-lg"></i> <?=$lang['mailbox']['add_alias'];?></a>
               </div>
             </div>
           </div>
@@ -360,9 +361,9 @@
             <div class="panel-heading">
               <?=$lang['mailbox']['sync_jobs'];?> <span class="badge badge-info table-lines"></span>
               <div class="btn-group pull-right hidden-xs">
-                <button data-acl="<?=$_SESSION['acl']['syncjobs'];?>" class="btn btn-xs btn-success" href="#" data-toggle="modal" data-target="#addSyncJobModalAdmin"><span class="glyphicon glyphicon-plus"></span> <?=$lang['user']['create_syncjob'];?></button>
+                <button data-acl="<?=$_SESSION['acl']['syncjobs'];?>" class="btn btn-xs btn-success" href="#" data-toggle="modal" data-target="#addSyncJobModalAdmin"><i class="bi bi-plus-lg"></i> <?=$lang['user']['create_syncjob'];?></button>
                 <button class="btn btn-xs btn-default refresh_table" data-draw="draw_sync_job_table" data-table="sync_job_table"><?=$lang['admin']['refresh'];?></button>
-                <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown"><?=$lang['mailbox']['table_size'];?> 
+                <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown"><?=$lang['mailbox']['table_size'];?>
                   <span class="caret"></span>
                 </button>
                 <ul class="dropdown-menu" data-table-id="sync_job_table" role="menu">
@@ -381,8 +382,8 @@
             </div>
             <div class="mass-actions-mailbox">
               <div class="btn-group" data-acl="<?=$_SESSION['acl']['syncjobs'];?>">
-                <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="syncjob" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
-                <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
+                <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="toggle_multi_select_all" data-id="syncjob" href="#"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></a>
+                <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
                 <ul class="dropdown-menu">
                   <li><a data-action="edit_selected" data-id="syncjob" data-api-url='edit/syncjob' data-api-attr='{"last_run":""}' href="#"><?=$lang['mailbox']['last_run_reset'];?></a></li>
                   <li role="separator" class="divider"></li>
@@ -391,7 +392,8 @@
                   <li role="separator" class="divider"></li>
                   <li><a data-action="delete_selected" data-id="syncjob" data-api-url='delete/syncjob' href="#"><?=$lang['mailbox']['remove'];?></a></li>
                 </ul>
-                <a class="btn btn-sm btn-success" href="#" data-toggle="modal" data-target="#addSyncJobModalAdmin"><span class="glyphicon glyphicon-plus"></span> <?=$lang['user']['create_syncjob'];?></a>
+                <div class="clearfix visible-xs"></div>
+                <a class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" href="#" data-toggle="modal" data-target="#addSyncJobModalAdmin"><i class="bi bi-plus-lg"></i> <?=$lang['user']['create_syncjob'];?></a>
               </div>
             </div>
           </div>
@@ -402,9 +404,9 @@
             <div class="panel-heading">
               <?=$lang['mailbox']['filters'];?> <span class="badge badge-info table-lines"></span>
               <div class="btn-group pull-right hidden-xs">
-                <button class="btn btn-xs btn-success" href="#" data-acl="<?=$_SESSION['acl']['filters'];?>" data-toggle="modal" data-target="#addFilterModalAdmin"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_filter'];?></button>
+                <button class="btn btn-xs btn-success" href="#" data-acl="<?=$_SESSION['acl']['filters'];?>" data-toggle="modal" data-target="#addFilterModalAdmin"><i class="bi bi-plus-lg"></i> <?=$lang['mailbox']['add_filter'];?></button>
                 <button class="btn btn-xs btn-default refresh_table" data-draw="draw_filter_table" data-table="filter_table"><?=$lang['admin']['refresh'];?></button>
-                <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown"><?=$lang['mailbox']['table_size'];?> 
+                <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown"><?=$lang['mailbox']['table_size'];?>
                   <span class="caret"></span>
                 </button>
                 <ul class="dropdown-menu" data-table-id="filter_table" role="menu">
@@ -426,8 +428,8 @@
             </div>
             <div class="mass-actions-mailbox">
               <div class="btn-group" data-acl="<?=$_SESSION['acl']['filters'];?>">
-                <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="filter_item" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
-                <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
+                <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="toggle_multi_select_all" data-id="filter_item" href="#"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></a>
+                <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
                 <ul class="dropdown-menu">
                   <li><a data-action="edit_selected" data-id="filter_item" data-api-url='edit/filter' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
                   <li><a data-action="edit_selected" data-id="filter_item" data-api-url='edit/filter' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>
@@ -437,7 +439,8 @@
                   <li role="separator" class="divider"></li>
                   <li><a data-action="delete_selected" data-text="<?=$lang['user']['eas_reset'];?>?" data-id="filter_item" data-api-url='delete/filter' href="#"><?=$lang['mailbox']['remove'];?></a></li>
                 </ul>
-                <a class="btn btn-sm btn-success" href="#" data-toggle="modal" data-target="#addFilterModalAdmin"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_filter'];?></a>
+                <div class="clearfix visible-xs"></div>
+                <a class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" href="#" data-toggle="modal" data-target="#addFilterModalAdmin"><i class="bi bi-plus-lg"></i> <?=$lang['mailbox']['add_filter'];?></a>
               </div>
             </div>
             <div class="panel-body <?=($_SESSION['mailcow_cc_role'] == "admin") ?: 'hidden';?>">
@@ -456,8 +459,9 @@
                   <div class="form-group">
                     <div class="col-sm-10 add_filter_btns">
                       <div class="btn-group">
-                        <button class="btn btn-sm btn-default validate_sieve" href="#"><?=$lang['add']['validate'];?></button>
-                        <button class="btn btn-sm btn-success add_sieve_script" data-action="add_item" data-id="add_prefilter" data-api-url='add/global-filter' data-api-attr='{"filter_type":"prefilter"}' href="#" disabled><span class="glyphicon glyphicon-check"></span> <?=$lang['admin']['save'];?></button>
+                        <button class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default validate_sieve" href="#"><?=$lang['add']['validate'];?></button>
+                        <button class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success add_sieve_script" data-action="add_item" data-id="add_prefilter" data-api-url='add/global-filter' data-api-attr='{"filter_type":"prefilter"}' href="#" disabled><i class="bi bi-check-lg"></i> <?=$lang['admin']['save'];?></button>
+                        <div class="clearfix visible-xs"></div>
                       </div>
                     </div>
                   </div>
@@ -474,8 +478,9 @@
                   <div class="form-group">
                     <div class="col-sm-10 add_filter_btns">
                       <div class="btn-group">
-                        <button class="btn btn-sm btn-default validate_sieve" href="#"><?=$lang['add']['validate'];?></button>
-                        <button class="btn btn-sm btn-success add_sieve_script" data-action="add_item" data-id="add_postfilter" data-api-url='add/global-filter' data-api-attr='{"filter_type":"postfilter"}' href="#" disabled><span class="glyphicon glyphicon-check"></span> <?=$lang['admin']['save'];?></button>
+                        <button class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default validate_sieve" href="#"><?=$lang['add']['validate'];?></button>
+                        <button class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success add_sieve_script" data-action="add_item" data-id="add_postfilter" data-api-url='add/global-filter' data-api-attr='{"filter_type":"postfilter"}' href="#" disabled><i class="bi bi-check-lg"></i> <?=$lang['admin']['save'];?></button>
+                        <div class="clearfix visible-xs"></div>
                       </div>
                     </div>
                   </div>
@@ -491,9 +496,9 @@
             <div class="panel-heading">
               <?=$lang['mailbox']['bcc_maps'];?> <span class="badge badge-info table-lines"></span>
               <div class="btn-group pull-right hidden-xs">
-                <button class="btn btn-xs btn-success" href="#" data-acl="<?=$_SESSION['acl']['bcc_maps'];?>" data-toggle="modal" data-target="#addBCCModalAdmin"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_bcc_entry'];?></button>
+                <button class="btn btn-xs btn-success" href="#" data-acl="<?=$_SESSION['acl']['bcc_maps'];?>" data-toggle="modal" data-target="#addBCCModalAdmin"><i class="bi bi-plus-lg"></i> <?=$lang['mailbox']['add_bcc_entry'];?></button>
                 <button class="btn btn-xs btn-default refresh_table" data-draw="draw_bcc_table" data-table="bcc_table"><?=$lang['admin']['refresh'];?></button>
-                <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown"><?=$lang['mailbox']['table_size'];?> 
+                <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown"><?=$lang['mailbox']['table_size'];?>
                   <span class="caret"></span>
                 </button>
                 <ul class="dropdown-menu" data-table-id="bcc_table" role="menu">
@@ -513,8 +518,8 @@
             </div>
             <div class="mass-actions-mailbox">
               <div class="btn-group" data-acl="<?=$_SESSION['acl']['bcc_maps'];?>">
-                <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="bcc" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
-                <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
+                <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="toggle_multi_select_all" data-id="bcc" href="#"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></a>
+                <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
                 <ul class="dropdown-menu">
                   <li><a data-action="edit_selected" data-id="bcc" data-api-url='edit/bcc' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
                   <li><a data-action="edit_selected" data-id="bcc" data-api-url='edit/bcc' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>
@@ -524,7 +529,8 @@
                   <li role="separator" class="divider"></li>
                   <li><a data-action="delete_selected" data-id="bcc" data-api-url='delete/bcc' href="#"><?=$lang['mailbox']['remove'];?></a></li>
                 </ul>
-                <a class="btn btn-sm btn-success" href="#" data-toggle="modal" data-target="#addBCCModalAdmin"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_bcc_entry'];?></a>
+                <div class="clearfix visible-xs"></div>
+                <a class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" href="#" data-toggle="modal" data-target="#addBCCModalAdmin"><i class="bi bi-plus-lg"></i> <?=$lang['mailbox']['add_bcc_entry'];?></a>
               </div>
             </div>
           </div>
@@ -532,9 +538,9 @@
             <div class="panel-heading">
               <?=$lang['mailbox']['recipient_maps'];?> <span class="badge badge-info table-lines"></span>
               <div class="btn-group pull-right hidden-xs">
-                <button class="btn btn-xs btn-success" href="#" data-toggle="modal" data-target="#addRecipientMapModalAdmin"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_recipient_map_entry'];?></button>
+                <button class="btn btn-xs btn-success" href="#" data-toggle="modal" data-target="#addRecipientMapModalAdmin"><i class="bi bi-plus-lg"></i> <?=$lang['mailbox']['add_recipient_map_entry'];?></button>
                 <button class="btn btn-xs btn-default refresh_table" data-draw="draw_recipient_map_table" data-table="recipient_map_table"><?=$lang['admin']['refresh'];?></button>
-                <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown"><?=$lang['mailbox']['table_size'];?> 
+                <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown"><?=$lang['mailbox']['table_size'];?>
                   <span class="caret"></span>
                 </button>
                 <ul class="dropdown-menu" data-table-id="recipient_map_table" role="menu">
@@ -554,15 +560,16 @@
             </div>
             <div class="mass-actions-mailbox">
               <div class="btn-group">
-                <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="recipient_map" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
-                <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
+                <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="toggle_multi_select_all" data-id="recipient_map" href="#"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></a>
+                <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
                 <ul class="dropdown-menu">
                   <li><a data-action="edit_selected" data-id="recipient_map" data-api-url='edit/recipient_map' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
                   <li><a data-action="edit_selected" data-id="recipient_map" data-api-url='edit/recipient_map' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>
                   <li role="separator" class="divider"></li>
                   <li><a data-action="delete_selected" data-id="recipient_map" data-api-url='delete/recipient_map' href="#"><?=$lang['mailbox']['remove'];?></a></li>
                 </ul>
-                <a class="btn btn-sm btn-success" href="#" data-toggle="modal" data-target="#addRecipientMapModalAdmin"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_recipient_map_entry'];?></a>
+                <div class="clearfix visible-xs"></div>
+                <a class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" href="#" data-toggle="modal" data-target="#addRecipientMapModalAdmin"><i class="bi bi-plus-lg"></i> <?=$lang['mailbox']['add_recipient_map_entry'];?></a>
               </div>
             </div>
           </div>
@@ -573,9 +580,9 @@
             <div class="panel-heading">
               <?=$lang['mailbox']['tls_policy_maps_long'];?> <span class="badge badge-info table-lines"></span>
               <div class="btn-group pull-right hidden-xs">
-                <button class="btn btn-xs btn-success" href="#" data-toggle="modal" data-target="#addTLSPolicyMapAdmin"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_tls_policy_map'];?></button>
+                <button class="btn btn-xs btn-success" href="#" data-toggle="modal" data-target="#addTLSPolicyMapAdmin"><i class="bi bi-plus-lg"></i> <?=$lang['mailbox']['add_tls_policy_map'];?></button>
                 <button class="btn btn-xs btn-default refresh_table" data-draw="draw_tls_policy_table" data-table="tls_policy_table"><?=$lang['admin']['refresh'];?></button>
-                <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown"><?=$lang['mailbox']['table_size'];?> 
+                <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown"><?=$lang['mailbox']['table_size'];?>
                   <span class="caret"></span>
                 </button>
                 <ul class="dropdown-menu" data-table-id="tls_policy_table" role="menu">
@@ -595,15 +602,16 @@
             </div>
             <div class="mass-actions-mailbox">
               <div class="btn-group">
-                <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="tls-policy-map" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
-                <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
+                <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="toggle_multi_select_all" data-id="tls-policy-map" href="#"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></a>
+                <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
                 <ul class="dropdown-menu">
                   <li><a data-action="edit_selected" data-id="tls-policy-map" data-api-url='edit/tls-policy-map' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
                   <li><a data-action="edit_selected" data-id="tls-policy-map" data-api-url='edit/tls-policy-map' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>
                   <li role="separator" class="divider"></li>
                   <li><a data-action="delete_selected" data-id="tls-policy-map" data-api-url='delete/tls-policy-map' href="#"><?=$lang['mailbox']['remove'];?></a></li>
                 </ul>
-                <a class="btn btn-sm btn-success" href="#" data-toggle="modal" data-target="#addTLSPolicyMapAdmin"><span class="glyphicon glyphicon-plus"></span> <?=$lang['mailbox']['add_tls_policy_map'];?></a>
+                <div class="clearfix visible-xs"></div>
+                <a class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" href="#" data-toggle="modal" data-target="#addTLSPolicyMapAdmin"><i class="bi bi-plus-lg"></i> <?=$lang['mailbox']['add_tls_policy_map'];?></a>
               </div>
             </div>
           </div>
@@ -627,7 +635,7 @@
 echo "var is_dual = " . $is_dual . ";\n";
 echo "var pagination_size = '". $PAGINATION_SIZE . "';\n";
 $ALLOW_ADMIN_EMAIL_LOGIN = (preg_match(
-	"/^([yY][eE][sS]|[yY])+$/",
+  "/^([yY][eE][sS]|[yY])+$/",
     $_ENV["ALLOW_ADMIN_EMAIL_LOGIN"]
 )) ? "true" : "false";
 echo "var ALLOW_ADMIN_EMAIL_LOGIN = " . $ALLOW_ADMIN_EMAIL_LOGIN . ";\n";
@@ -640,7 +648,7 @@
 require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/footer.inc.php';
 }
 else {
-	header('Location: /');
-	exit();
+  header('Location: /');
+  exit();
 }
 ?>
diff --git a/mailcow/src/mailcow-dockerized/data/web/modals/admin.php b/mailcow/src/mailcow-dockerized/data/web/modals/admin.php
index e796d2e..22bb412 100644
--- a/mailcow/src/mailcow-dockerized/data/web/modals/admin.php
+++ b/mailcow/src/mailcow-dockerized/data/web/modals/admin.php
@@ -23,7 +23,7 @@
           <div class="form-group">

             <label class="control-label col-sm-2" for="content"><?=$lang['admin']['rsetting_content'];?>:</label>

             <div class="col-sm-10">

-              <textarea class="form-control" id="adminRspamdSettingsContent" name="content" rows="10"><?=$rsetting_details['content'];?></textarea>

+              <textarea class="form-control" id="adminRspamdSettingsContent" name="content" rows="10"><?=(isset($rsetting_details['content'])) ? $rsetting_details['content'] : '';?></textarea>

             </div>

           </div>

           <div class="form-group">

@@ -35,7 +35,7 @@
           </div>

           <div class="form-group">

             <div class="col-sm-offset-2 col-sm-10">

-              <button class="btn btn-default" data-action="add_item" data-id="rsetting" data-api-url='add/rsetting' data-api-attr='{}' href="#"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> <?=$lang['admin']['add'];?></button>

+              <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="rsetting" data-api-url='add/rsetting' data-api-attr='{}' href="#"><i class="bi bi-plus-lg"></i> <?=$lang['admin']['add'];?></button>

             </div>

           </div>

         </form>

@@ -59,8 +59,8 @@
             <div class="form-group">

               <label class="control-label col-sm-2" for="username"><?=$lang['admin']['username'];?>:</label>

               <div class="col-sm-10">

-                <input type="text" class="form-control" name="username" required>

-                &rdsh; <kbd>a-z A-Z - _ .</kbd>

+                <input type="text" class="form-control" name="username" onkeyup="this.value = this.value.toLowerCase();" required>

+                &rdsh; <kbd>a-z - _ .</kbd>

               </div>

             </div>

             <div class="form-group">

@@ -96,7 +96,7 @@
             </div>

             <div class="form-group">

               <div class="col-sm-offset-2 col-sm-10">

-                <button class="btn btn-default" data-action="add_item" data-id="add_domain_admin" data-api-url='add/domain-admin' data-api-attr='{}' href="#"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> <?=$lang['admin']['add'];?></button>

+                <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="add_domain_admin" data-api-url='add/domain-admin' data-api-attr='{}' href="#"><i class="bi bi-plus-lg"></i> <?=$lang['admin']['add'];?></button>

               </div>

             </div>

           </form>

@@ -124,7 +124,7 @@
           </div>

           <div class="form-group">

             <div class="col-sm-offset-4 col-sm-8">

-              <button class="btn btn-default" data-action="edit_selected" data-id="fido2ChangeFn" data-item="null" data-api-url='edit/fido2-fn' data-api-attr='{}' href="#"><?=$lang['admin']['save'];?></button>

+              <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="fido2ChangeFn" data-item="null" data-api-url='edit/fido2-fn' data-api-attr='{}' href="#"><?=$lang['admin']['save'];?></button>

             </div>

           </div>

         </form>

@@ -150,7 +150,7 @@
             </div>

             <div class="form-group">

               <div class="col-sm-offset-2 col-sm-10">

-                <button class="btn btn-default" data-action="add_item" data-id="add_oauth2_client" data-api-url='add/oauth2-client' data-api-attr='{}' href="#"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> <?=$lang['admin']['add'];?></button>

+                <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="add_oauth2_client" data-api-url='add/oauth2-client' data-api-attr='{}' href="#"><i class="bi bi-plus-lg"></i> <?=$lang['admin']['add'];?></button>

               </div>

             </div>

           </form>

@@ -171,8 +171,8 @@
             <div class="form-group">

               <label class="control-label col-sm-2" for="username"><?=$lang['admin']['username'];?>:</label>

               <div class="col-sm-10">

-                <input type="text" class="form-control" name="username" required>

-                &rdsh; <kbd>a-z A-Z - _ .</kbd>

+                <input type="text" class="form-control" name="username" onkeyup="this.value = this.value.toLowerCase();" required>

+                &rdsh; <kbd>a-z - _ .</kbd>

               </div>

             </div>

             <div class="form-group">

@@ -196,7 +196,7 @@
             </div>

             <div class="form-group">

               <div class="col-sm-offset-2 col-sm-10">

-                <button class="btn btn-default" data-action="add_item" data-id="add_admin" data-api-url='add/admin' data-api-attr='{}' href="#"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> <?=$lang['admin']['add'];?></button>

+                <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="add_admin" data-api-url='add/admin' data-api-attr='{}' href="#"><i class="bi bi-plus-lg"></i> <?=$lang['admin']['add'];?></button>

               </div>

             </div>

           </form>

@@ -210,7 +210,7 @@
     <div class="modal-content">

       <div class="modal-header">

         <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>

-        <h3 class="modal-title"><span class="glyphicon glyphicon-stats"></span> Transport</h3>

+        <h3 class="modal-title"><i class="bi bi-info-circle-fill"></i> Transport</h3>

       </div>

       <div class="modal-body">

           <form class="form-horizontal" data-cached-form="true" id="test_transport_form" role="form" method="post">

@@ -223,8 +223,15 @@
               </div>

             </div>

             <div class="form-group">

+              <label class="control-label col-sm-2" for="mail_rcpt"><?=$lang['admin']['relay_rcpt'];?></label>

+              <div class="col-sm-10">

+                <input type="text" class="form-control" name="mail_rcpt" placeholder="null@hosted.mailcow.de" value="null@hosted.mailcow.de">

+                <p class="help-block"><?=$lang['admin']['transport_test_rcpt_info'];?></p>

+              </div>

+            </div>

+            <div class="form-group">

               <div class="col-sm-offset-2 col-sm-10">

-                <button class="btn btn-default" id="test_transport" href="#"><?=$lang['admin']['relay_run'];?></button>

+                <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="test_transport" href="#"><?=$lang['admin']['relay_run'];?></button>

               </div>

             </div>

           </form>

@@ -240,7 +247,7 @@
     <div class="modal-content">

       <div class="modal-header">

         <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>

-        <h3 class="modal-title"><span class="glyphicon glyphicon-hourglass" style="font-size:18px"></span> ID <span id="queue_id"></span></h3>

+        <h3 class="modal-title"><i class="bi bi-card-checklist" style="font-size:18px"></i> ID <span id="queue_id"></span></h3>

       </div>

       <div class="modal-body">

         <textarea class="form-control" id="queue_msg_content" name="content" rows="40"></textarea>

@@ -254,7 +261,7 @@
     <div class="modal-content">

       <div class="modal-header">

         <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>

-        <h3 class="modal-title"><span class="glyphicon glyphicon-lock"></span> Private key</h3>

+        <h3 class="modal-title"><i class="bi bi-key-fill"></i> Private key</h3>

       </div>

       <div class="modal-body">

       <pre id="priv_key_pre"></pre>

diff --git a/mailcow/src/mailcow-dockerized/data/web/modals/footer.php b/mailcow/src/mailcow-dockerized/data/web/modals/footer.php
index 42d1278..7f73262 100644
--- a/mailcow/src/mailcow-dockerized/data/web/modals/footer.php
+++ b/mailcow/src/mailcow-dockerized/data/web/modals/footer.php
@@ -1,10 +1,13 @@
 <?php

-if (isset($_SESSION['mailcow_cc_role']) && ($_SESSION['mailcow_cc_role'] == "admin" || $_SESSION['mailcow_cc_role'] == "domainadmin")):

+if (isset($_SESSION['mailcow_cc_role'])) {

 ?>

 <div class="modal fade" id="YubiOTPModal" tabindex="-1" role="dialog" aria-labelledby="YubiOTPModalLabel">

   <div class="modal-dialog" role="document">

     <div class="modal-content">

-      <div class="modal-header"><b><?=$lang['tfa']['yubi_otp'];?></b></div>

+      <div class="modal-header">

+	    <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>

+	    <h3 class="modal-title"><?=$lang['tfa']['yubi_otp'];?></h3>

+	  </div>

       <div class="modal-body">

       <form role="form" method="post">

         <div class="form-group">

@@ -29,7 +32,7 @@
             <input type="hidden" name="tfa_method" value="yubi_otp">

           </div>

         </div>

-        <button class="btn btn-sm btn-default" type="submit" name="set_tfa"><?=$lang['user']['save_changes'];?></button>

+        <button class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" type="submit" name="set_tfa"><?=$lang['user']['save_changes'];?></button>

       </form>

       </div>

     </div>

@@ -39,7 +42,10 @@
 <div class="modal fade" id="U2FModal" tabindex="-1" role="dialog" aria-labelledby="U2FModalLabel">

   <div class="modal-dialog" role="document">

     <div class="modal-content">

-      <div class="modal-header"><b><?=$lang['tfa']['u2f'];?></b></div>

+      <div class="modal-header">

+	    <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>

+	    <h3 class="modal-title"><?=$lang['tfa']['u2f'];?></h3>

+	  </div>

       <div class="modal-body">

         <form role="form" method="post" id="u2f_reg_form">

           <div class="form-group">

@@ -72,7 +78,10 @@
 <div class="modal fade" id="TOTPModal" tabindex="-1" role="dialog" aria-labelledby="TOTPModalLabel">

   <div class="modal-dialog" role="document">

     <div class="modal-content">

-      <div class="modal-header"><b><?=$lang['tfa']['totp'];?></b></div>

+      <div class="modal-header">

+	    <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>

+	    <h3 class="modal-title"><?=$lang['tfa']['totp'];?></h3>

+	  </div>

       <div class="modal-body">

         <form role="form" method="post">

           <div class="form-group">

@@ -98,7 +107,7 @@
             <li>

               <p><?=$lang['tfa']['confirm_totp_token'];?>:</p>

               <p><input type="number" style="width:33%" class="form-control" name="totp_confirm_token" autocomplete="off" required></p>

-              <p><button class="btn btn-default" type="submit" name="set_tfa"><?=$lang['tfa']['confirm'];?></button></p>

+              <p><button class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" type="submit" name="set_tfa"><?=$lang['tfa']['confirm'];?></button></p>

             </li>

           </ol>

         </form>

@@ -110,14 +119,17 @@
 <div class="modal fade" id="DisableTFAModal" tabindex="-1" role="dialog" aria-labelledby="DisableTFAModalLabel">

   <div class="modal-dialog" role="document">

     <div class="modal-content">

-      <div class="modal-header"><b><?=$lang['tfa']['delete_tfa'];?></b></div>

+      <div class="modal-header">

+	    <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>

+	    <h3 class="modal-title"><?=$lang['tfa']['delete_tfa'];?></h3>

+	  </div>

       <div class="modal-body">

         <form role="form" method="post">

           <div class="input-group">

-            <input type="password" class="form-control" name="confirm_password" placeholder="<?=$lang['user']['password_now'];?>" autocomplete="off" required>

+            <input type="password" class="form-control input-xs-lg" name="confirm_password" placeholder="<?=$lang['user']['password_now'];?>" autocomplete="off" required>

             <span class="input-group-btn">

               <input type="hidden" name="tfa_method" value="none">

-              <button class="btn btn-danger" type="submit" name="set_tfa"><?=$lang['tfa']['delete_tfa'];?></button>

+              <button class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-danger" type="submit" name="set_tfa"><?=str_replace(' ', '&nbsp;', $lang['tfa']['delete_tfa']);?></button>

             </span>

           </div>

         </form>

@@ -127,14 +139,17 @@
 </div>

 

 <?php

-endif;

+}

 if (isset($_SESSION['pending_tfa_method'])):

   $tfa_method = $_SESSION['pending_tfa_method'];

 ?>

 <div class="modal fade" id="ConfirmTFAModal" tabindex="-1" role="dialog" aria-labelledby="ConfirmTFAModalLabel">

   <div class="modal-dialog" role="document">

     <div class="modal-content">

-      <div class="modal-header"><button type="button" class="close" data-dismiss="modal">&times;</button><b><?=$lang['tfa'][$tfa_method];?></b></div>

+      <div class="modal-header">

+	    <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>

+	    <h3 class="modal-title"><?=$lang['tfa'][$tfa_method];?></h3>

+	  </div>

       <div class="modal-body">

       <?php

       switch ($tfa_method) {

@@ -148,7 +163,7 @@
               <input type="hidden" name="tfa_method" value="yubi_otp">

             </div>

           </div>

-          <button class="btn btn-sm btn-default" type="submit" name="verify_tfa_login"><?=$lang['login']['login'];?></button>

+          <button class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-sm btn-default" type="submit" name="verify_tfa_login"><?=$lang['login']['login'];?></button>

         </form>

       <?php

         break;

@@ -177,12 +192,12 @@
         <form role="form" method="post">

           <div class="form-group">

             <div class="input-group">

-              <span class="input-group-addon" id="tfa-addon"><span class="glyphicon glyphicon-lock" aria-hidden="true"></span></span>

+              <span class="input-group-addon" id="tfa-addon"><i class="bi bi-shield-lock-fill"></i></span>

               <input type="number" min="000000" max="999999" name="token" class="form-control" placeholder="123456" autocomplete="one-time-code" aria-describedby="tfa-addon">

               <input type="hidden" name="tfa_method" value="totp">

             </div>

           </div>

-          <button class="btn btn-sm btn-default" type="submit" name="verify_tfa_login"><?=$lang['login']['login'];?></button>

+          <button class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" type="submit" name="verify_tfa_login"><?=$lang['login']['login'];?></button>

         </form>

         <?php

         break;

@@ -205,13 +220,13 @@
   <div class="modal-dialog">

     <div class="modal-content">

     <div class="modal-header">

-      <button type="button" class="close" data-dismiss="modal">&times;</button>

+      <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>

       <h4 class="modal-title"><?= $lang['footer']['restart_container']; ?> (<code id="containerName"></code>)</h4>

     </div>

     <div class="modal-body">

       <p><?= $lang['footer']['restart_container_info']; ?></p>

       <hr>

-      <button class="btn btn-md btn-primary" id="triggerRestartContainer"><?= $lang['footer']['restart_now']; ?></button>

+      <button class="btn btn-md visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-primary" id="triggerRestartContainer"><?= $lang['footer']['restart_now']; ?></button>

       <br><br>

       <div id="statusTriggerRestartContainer"></div>

     </div>

@@ -225,15 +240,16 @@
   <div class="modal-dialog">

     <div class="modal-content">

     <div class="modal-header">

-      <button type="button" class="close" data-dismiss="modal">&times;</button>

-      <h4 class="modal-title"><?= $lang['footer']['confirm_delete']; ?></h4>

+      <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>

+      <h3 class="modal-title"><?= $lang['footer']['confirm_delete']; ?></h3>

     </div>

     <div class="modal-body">

       <p id="DeleteText"><?= $lang['footer']['delete_these_items']; ?></p>

       <ul id="ItemsToDelete"></ul>

       <hr>

-      <button class="btn btn-sm btn-danger" id="IsConfirmed"><?= $lang['footer']['delete_now']; ?></button>

-      <button class="btn btn-sm btn-default" id="isCanceled"><?= $lang['footer']['cancel']; ?></button>

+      <button class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-danger" id="IsConfirmed"><?= $lang['footer']['delete_now']; ?></button>

+      <button class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="isCanceled"><?= $lang['footer']['cancel']; ?></button>

+      <div class="clearfix visible-xs"></div>

     </div>

     </div>

   </div>

diff --git a/mailcow/src/mailcow-dockerized/data/web/modals/mailbox.php b/mailcow/src/mailcow-dockerized/data/web/modals/mailbox.php
index c1362c4..77533ea 100644
--- a/mailcow/src/mailcow-dockerized/data/web/modals/mailbox.php
+++ b/mailcow/src/mailcow-dockerized/data/web/modals/mailbox.php
@@ -72,7 +72,7 @@
           <hr>

           <div class="form-group">

             <div class="col-sm-offset-2 col-sm-10">

-              <button class="btn btn-default" data-action="add_item" data-id="add_mailbox" data-api-url='add/mailbox' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>

+              <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="add_mailbox" data-api-url='add/mailbox' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>

             </div>

           </div>

         </form>

@@ -153,14 +153,14 @@
           <div class="form-group">

             <label class="control-label col-sm-2" for="rl_frame"><?=$lang['acl']['ratelimit'];?></label>

             <div class="col-sm-7">

-            <input name="rl_value" type="number" value="<?=(!empty($rl['value'])) ? $rl['value'] : null;?>" class="form-control" placeholder="disabled">

+            <input name="rl_value" type="number" value="<?=(!empty($rl['value'])) ? $rl['value'] : null;?>" class="form-control" placeholder="<?=$lang['ratelimit']['disabled']?>">

             </div>

             <div class="col-sm-3">

             <select name="rl_frame" class="form-control">

-              <option value="s" <?=(isset($rl['frame']) && $rl['frame'] == 's') ? 'selected' : null;?>>msgs / second</option>

-              <option value="m" <?=(isset($rl['frame']) && $rl['frame'] == 'm') ? 'selected' : null;?>>msgs / minute</option>

-              <option value="h" <?=(isset($rl['frame']) && $rl['frame'] == 'h') ? 'selected' : null;?>>msgs / hour</option>

-              <option value="d" <?=(isset($rl['frame']) && $rl['frame'] == 'd') ? 'selected' : null;?>>msgs / day</option>

+              <option value="s" <?=(isset($rl['frame']) && $rl['frame'] == 's') ? 'selected' : null;?>><?=$lang['ratelimit']['second']?></option>

+              <option value="m" <?=(isset($rl['frame']) && $rl['frame'] == 'm') ? 'selected' : null;?>><?=$lang['ratelimit']['minute']?></option>

+              <option value="h" <?=(isset($rl['frame']) && $rl['frame'] == 'h') ? 'selected' : null;?>><?=$lang['ratelimit']['hour']?></option>

+              <option value="d" <?=(isset($rl['frame']) && $rl['frame'] == 'd') ? 'selected' : null;?>><?=$lang['ratelimit']['day']?></option>

             </select>

             </div>

           </div>

@@ -182,18 +182,19 @@
           </div>

           <hr>

           <div class="form-group">

-            <div class="col-sm-offset-2 col-sm-10">

+            <div class="col-sm-offset-2 col-sm-10 btn-group">

               <?php if (getenv('SKIP_SOGO') != "y") { ?>

-              <button class="btn btn-default" data-action="add_item" data-id="add_domain" data-api-url='add/domain' data-api-attr='{}' href="#"><?=$lang['add']['add_domain_only'];?></button>

-              <button class="btn btn-default" data-action="add_item" data-id="add_domain" data-api-url='add/domain' data-api-attr='{"restart_sogo":"1"}' href="#"><?=$lang['add']['add_domain_restart'];?></button>

+              <button class="btn btn-xs-lg btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" data-action="add_item" data-id="add_domain" data-api-url='add/domain' data-api-attr='{}' href="#"><?=$lang['add']['add_domain_only'];?></button>

+              <button class="btn btn-xs-lg btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" data-action="add_item" data-id="add_domain" data-api-url='add/domain' data-api-attr='{"restart_sogo":"1"}' href="#"><?=$lang['add']['add_domain_restart'];?></button>

+              <div class="clearfix visible-xs"></div>

               <?php } else { ?>

-              <button class="btn btn-default" data-action="add_item" data-id="add_domain" data-api-url='add/domain' data-api-attr='{}' href="#"><?=$lang['add']['add'];?></button>

+              <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="add_domain" data-api-url='add/domain' data-api-attr='{}' href="#"><?=$lang['add']['add'];?></button>

               <?php } ?>

             </div>

           </div>

           <?php // TODO: Separate SOGo-related text

           if (getenv('SKIP_SOGO') != "y") { ?>

-          <p><span class="glyphicon glyphicon-exclamation-sign text-danger"></span> <?=$lang['add']['post_domain_add'];?></p>

+          <p><i class="bi bi-shield-fill-exclamation text-danger"></i> <?=$lang['add']['post_domain_add'];?></p>

           <?php } ?>

         </form>

       </div>

@@ -262,7 +263,7 @@
           </div>

           <div class="form-group">

             <div class="col-sm-offset-2 col-sm-10">

-              <button class="btn btn-default" data-action="add_item" data-id="add_resource" data-api-url='add/resource' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>

+              <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="add_resource" data-api-url='add/resource' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>

             </div>

           </div>

         </form>

@@ -320,7 +321,7 @@
           </div>

           <div class="form-group">

             <div class="col-sm-offset-2 col-sm-10">

-              <button class="btn btn-default" data-action="add_item" data-id="add_alias" data-api-url='add/alias' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>

+              <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="add_alias" data-api-url='add/alias' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>

             </div>

           </div>

         </form>

@@ -369,20 +370,20 @@
           <div class="form-group">

             <label class="control-label col-sm-2" for="rl_frame"><?=$lang['acl']['ratelimit'];?></label>

             <div class="col-sm-7">

-            <input name="rl_value" type="number" value="<?=(!empty($rl['value'])) ? $rl['value'] : null;?>" class="form-control" placeholder="disabled">

+            <input name="rl_value" type="number" value="<?=(!empty($rl['value'])) ? $rl['value'] : null;?>" class="form-control" placeholder="<?=$lang['ratelimit']['disabled']?>">

             </div>

             <div class="col-sm-3">

             <select name="rl_frame" class="form-control">

-              <option value="s" <?=(isset($rl['frame']) && $rl['frame'] == 's') ? 'selected' : null;?>>msgs / second</option>

-              <option value="m" <?=(isset($rl['frame']) && $rl['frame'] == 'm') ? 'selected' : null;?>>msgs / minute</option>

-              <option value="h" <?=(isset($rl['frame']) && $rl['frame'] == 'h') ? 'selected' : null;?>>msgs / hour</option>

-              <option value="d" <?=(isset($rl['frame']) && $rl['frame'] == 'd') ? 'selected' : null;?>>msgs / day</option>

+              <option value="s" <?=(isset($rl['frame']) && $rl['frame'] == 's') ? 'selected' : null;?>><?=$lang['ratelimit']['second']?></option>

+              <option value="m" <?=(isset($rl['frame']) && $rl['frame'] == 'm') ? 'selected' : null;?>><?=$lang['ratelimit']['minute']?></option>

+              <option value="h" <?=(isset($rl['frame']) && $rl['frame'] == 'h') ? 'selected' : null;?>><?=$lang['ratelimit']['hour']?></option>

+              <option value="d" <?=(isset($rl['frame']) && $rl['frame'] == 'd') ? 'selected' : null;?>><?=$lang['ratelimit']['day']?></option>

             </select>

             </div>

           </div>

           <div class="form-group">

             <div class="col-sm-offset-2 col-sm-10">

-              <button class="btn btn-default" data-action="add_item" data-id="add_alias_domain" data-api-url='add/alias-domain' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>

+              <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="add_alias_domain" data-api-url='add/alias-domain' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>

             </div>

           </div>

         </form>

@@ -559,7 +560,7 @@
           </div>

           <div class="form-group">

             <div class="col-sm-offset-2 col-sm-10">

-              <button class="btn btn-default" data-action="add_item" data-id="add_syncjob" data-api-url='add/syncjob' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>

+              <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="add_syncjob" data-api-url='add/syncjob' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>

             </div>

           </div>

         </form>

@@ -625,9 +626,10 @@
             </div>

           </div>

           <div class="form-group">

-            <div class="col-sm-offset-2 col-sm-10 add_filter_btns">

-              <button class="btn btn-default validate_sieve" href="#"><?=$lang['add']['validate'];?></button>

-              <button class="btn btn-success add_sieve_script" data-action="add_item" data-id="add_filter" data-api-url='add/filter' data-api-attr='{}' href="#" disabled><?=$lang['admin']['add'];?></button>

+            <div class="col-sm-offset-2 col-sm-10 add_filter_btns btn-group">

+              <button class="btn btn-xs-lg btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default validate_sieve" href="#"><?=$lang['add']['validate'];?></button>

+              <button class="btn btn-xs-lg btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success add_sieve_script" data-action="add_item" data-id="add_filter" data-api-url='add/filter' data-api-attr='{}' href="#" disabled><?=$lang['admin']['add'];?></button>

+              <div class="clearfix visible-xs"></div>

             </div>

           </div>

         </form>

@@ -650,25 +652,38 @@
           <div class="form-group">

             <label class="control-label col-sm-2" for="local_dest"><?=$lang['mailbox']['bcc_local_dest'];?></label>

             <div class="col-sm-10">

-              <select data-live-search="true" name="local_dest" required>

+              <select data-live-search="true" data-size="20" name="local_dest" required>

               <?php

               $domains = mailbox('get', 'domains');

               $alias_domains = mailbox('get', 'alias_domains');

               if (!empty($domains)) {

+                echo '<optgroup label="',$lang['mailbox']['domains'],'">';

                 foreach ($domains as $domain) {

                   echo "<option>".htmlspecialchars($domain)."</option>";

                 }

+                echo "</optgroup>";

               }

               if (!empty($alias_domains)) {

+                echo '<optgroup label="',$lang['mailbox']['domain_aliases'],'">';

                 foreach ($alias_domains as $alias_domain) {

                   echo "<option>".htmlspecialchars($alias_domain)."</option>";

                 }

+                echo "</optgroup>";

               }

               if (!empty($domains)) {

                 foreach ($domains as $domain) {

                   $mailboxes = mailbox('get', 'mailboxes', $domain);

                   foreach ($mailboxes as $mailbox) {

-                    echo "<option>".htmlspecialchars($mailbox)."</option>";

+                    echo "<optgroup label=\"" . htmlspecialchars($mailbox) . "\">";

+                    echo "<option> " . htmlspecialchars($mailbox) . "</option>";

+                    $user_alias_details = user_get_alias_details($mailbox);

+                    foreach ($user_alias_details['direct_aliases'] as $k => $v) {

+                      echo "<option>" . htmlspecialchars($k) . "</option>";

+                    }

+                    foreach ($user_alias_details['shared_aliases'] as $k => $v) {

+                      echo "<option>" . htmlspecialchars($k) . "</option>";

+                    }

+                    echo "</optgroup>";

                   }

                 }

               }

@@ -689,6 +704,7 @@
             <label class="control-label col-sm-2" for="bcc_dest"><?=$lang['mailbox']['bcc_destination'];?></label>

             <div class="col-sm-10">

               <input type="text" class="form-control" name="bcc_dest">

+              <small><?=$lang['add']['bcc_dest_format'];?></small>

             </div>

           </div>

           <div class="form-group">

@@ -700,7 +716,7 @@
           </div>

           <div class="form-group">

             <div class="col-sm-offset-2 col-sm-10">

-              <button class="btn btn-success" data-action="add_item" data-id="add_bcc" data-api-url='add/bcc' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>

+              <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="add_bcc" data-api-url='add/bcc' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>

             </div>

           </div>

         </form>

@@ -741,7 +757,7 @@
           </div>

           <div class="form-group">

             <div class="col-sm-offset-2 col-sm-10">

-              <button class="btn btn-success" data-action="add_item" data-id="add_recipient_map" data-api-url='add/recipient_map' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>

+              <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="add_recipient_map" data-api-url='add/recipient_map' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>

             </div>

           </div>

         </form>

@@ -797,7 +813,7 @@
           </div>

           <div class="form-group">

             <div class="col-sm-offset-2 col-sm-10">

-              <button class="btn btn-success" data-action="add_item" data-id="add_tls_policy_map" data-api-url='add/tls-policy-map' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>

+              <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="add_tls_policy_map" data-api-url='add/tls-policy-map' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>

             </div>

           </div>

         </form>

@@ -809,7 +825,10 @@
 <div class="modal fade" id="syncjobLogModal" tabindex="-1" role="dialog" aria-labelledby="syncjobLogModalLabel">

   <div class="modal-dialog modal-lg" role="document">

     <div class="modal-content">

-      <div class="modal-header"><h4 class="modal-title">Log</h4></div>

+      <div class="modal-header">

+	    <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>

+	    <h3 class="modal-title">Log</h3>

+	  </div>

       <div class="modal-body">

         <textarea class="form-control" rows="20" id="logText" spellcheck="false"></textarea>

       </div>

@@ -820,10 +839,14 @@
 <div class="modal fade" id="dnsInfoModal" tabindex="-1" role="dialog" aria-labelledby="dnsInfoModalLabel">

   <div class="modal-dialog modal-lg" role="document">

     <div class="modal-content">

-      <div class="modal-header"><h4 class="modal-title"><?=$lang['diagnostics']['dns_records'];?></h4></div>

+      <div class="modal-header">

+	    <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>

+	    <h3 class="modal-title"><?=$lang['diagnostics']['dns_records'];?></h3>

+	  </div>

       <div class="modal-body">

         <p><?=$lang['diagnostics']['dns_records_24hours'];?></p>

         <div class="dns-modal-body"></div>

+        <p><?=$lang['diagnostics']['dns_records_docs'];?></p>

       </div>

     </div>

   </div>

diff --git a/mailcow/src/mailcow-dockerized/data/web/modals/quarantine.php b/mailcow/src/mailcow-dockerized/data/web/modals/quarantine.php
index 3650012..3cb5330 100644
--- a/mailcow/src/mailcow-dockerized/data/web/modals/quarantine.php
+++ b/mailcow/src/mailcow-dockerized/data/web/modals/quarantine.php
@@ -9,7 +9,7 @@
     <div class="modal-content">

       <div class="modal-header">

         <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>

-        <h3 class="modal-title"><span class="glyphicon glyphicon-info"></span> <?=$lang['quarantine']['qitem'];?></h3>

+        <h3 class="modal-title"><i class="bi bi-info-circle-fill"></i> <?=$lang['quarantine']['qitem'];?></h3>

       </div>

       <div class="modal-body">

         <div id="qid_error" style="display:none" class="alert alert-danger"></div>

diff --git a/mailcow/src/mailcow-dockerized/data/web/modals/user.php b/mailcow/src/mailcow-dockerized/data/web/modals/user.php
index 4d15556..e5d5aa8 100644
--- a/mailcow/src/mailcow-dockerized/data/web/modals/user.php
+++ b/mailcow/src/mailcow-dockerized/data/web/modals/user.php
@@ -24,7 +24,7 @@
           </div>

           <div class="form-group">

             <div class="col-sm-offset-4 col-sm-8">

-              <button class="btn btn-default" data-action="edit_selected" data-id="fido2ChangeFn" data-item="null" data-api-url='edit/fido2-fn' data-api-attr='{}' href="#"><?=$lang['admin']['save'];?></button>

+              <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="fido2ChangeFn" data-item="null" data-api-url='edit/fido2-fn' data-api-attr='{}' href="#"><?=$lang['admin']['save'];?></button>

             </div>

           </div>

         </form>

@@ -182,7 +182,7 @@
 					</div>

 					<div class="form-group">

 						<div class="col-sm-offset-2 col-sm-10">

-              <button class="btn btn-default" data-action="add_item" data-id="add_syncjob" data-api-url='add/syncjob' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>

+              <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="add_syncjob" data-api-url='add/syncjob' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>

 						</div>

 					</div>

 				</form>

@@ -228,7 +228,7 @@
 					</div>

 					<div class="form-group">

 						<div class="col-sm-offset-2 col-sm-10">

-              <button class="btn btn-default" data-action="add_item" data-id="add_apppasswd" data-api-url='add/app-passwd' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>

+              <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="add_item" data-id="add_apppasswd" data-api-url='add/app-passwd' data-api-attr='{}' href="#"><?=$lang['admin']['add'];?></button>

 						</div>

 					</div>

 				</form>

@@ -240,7 +240,10 @@
 <div class="modal fade" id="syncjobLogModal" tabindex="-1" role="dialog" aria-labelledby="syncjobLogModalLabel">

   <div class="modal-dialog modal-lg" role="document">

     <div class="modal-content">

-      <div class="modal-header"><h4 class="modal-title">Log</h4></div>

+      <div class="modal-header">

+	    <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>

+        <h3 class="modal-title">Log</h3>

+      </div>

       <div class="modal-body">

         <textarea class="form-control textarea-code" rows="20" id="logText" spellcheck="false"></textarea>

       </div>

@@ -251,6 +254,46 @@
 <div class="modal fade" id="pwChangeModal" tabindex="-1" role="dialog" aria-labelledby="pwChangeModalLabel">

   <div class="modal-dialog" role="document">

     <div class="modal-content">

+	    <div class="modal-header">

+	    <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span></button>

+        <h3 class="modal-title"><?=$lang['user']['change_password'];?></h3>

+      </div>

+      <div class="modal-body">

+        <form class="form-horizontal" data-cached-form="false" data-id="pwchange" role="form" method="post" autocomplete="off">

+          <div class="form-group">

+            <label class="control-label col-sm-3" for="user_new_pass"><?=$lang['user']['new_password'];?> (<a href="#" class="generate_password"><?=$lang['user']['generate'];?></a>)</label>

+            <div class="col-sm-5">

+            <input type="password" data-pwgen-field="true" data-hibp="true" class="form-control" name="user_new_pass" autocomplete="new-password" required>

+            </div>

+          </div>

+          <div class="form-group">

+            <label class="control-label col-sm-3" for="user_new_pass2"><?=$lang['user']['new_password_repeat'];?></label>

+            <div class="col-sm-5">

+            <input type="password" data-pwgen-field="true" class="form-control" name="user_new_pass2" autocomplete="new-password" required>

+            <p class="help-block"><?=$lang['user']['new_password_description'];?></p>

+            </div>

+          </div>

+          <hr>

+          <div class="form-group">

+            <label class="control-label col-sm-3" for="user_old_pass"><?=$lang['user']['password_now'];?></label>

+            <div class="col-sm-5">

+            <input type="password" class="form-control" name="user_old_pass" autocomplete="off" required>

+            </div>

+          </div>

+          <div class="form-group">

+            <div class="col-sm-offset-3 col-sm-9">

+              <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="pwchange" data-item="null" data-api-url='edit/self' data-api-attr='{}' href="#"><?=$lang['user']['change_password'];?></button>

+            </div>

+          </div>

+        </form>

+      </div>

+    </div>

+  </div>

+</div><!-- pw change modal -->

+<!-- pw change modal -->

+<div class="modal fade" id="tempAliasModal" tabindex="-1" role="dialog" aria-labelledby="tempAliasModalLabel">

+  <div class="modal-dialog" role="document">

+    <div class="modal-content">

       <div class="modal-body">

         <form class="form-horizontal" data-cached-form="false" data-id="pwchange" role="form" method="post" autocomplete="off">

           <div class="form-group">

@@ -275,7 +318,7 @@
           </div>

           <div class="form-group">

             <div class="col-sm-offset-3 col-sm-9">

-              <button class="btn btn-default" data-action="edit_selected" data-id="pwchange" data-item="null" data-api-url='edit/self' data-api-attr='{}' href="#"><?=$lang['user']['change_password'];?></button>

+              <button class="btn btn-xs-lg visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="pwchange" data-item="null" data-api-url='edit/self' data-api-attr='{}' href="#"><?=$lang['user']['change_password'];?></button>

             </div>

           </div>

         </form>

diff --git a/mailcow/src/mailcow-dockerized/data/web/qhandler.php b/mailcow/src/mailcow-dockerized/data/web/qhandler.php
index f4ce9f0..756c695 100644
--- a/mailcow/src/mailcow-dockerized/data/web/qhandler.php
+++ b/mailcow/src/mailcow-dockerized/data/web/qhandler.php
@@ -12,7 +12,7 @@
   <div class="row">

     <div class="col-md-offset-2 col-md-8">

       <div class="panel panel-default">

-        <div class="panel-heading"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <?= $lang['header']['quarantine']; ?></div>

+        <div class="panel-heading"><i class="bi bi-patch-exclamation-fill"></i> <?= $lang['header']['quarantine']; ?></div>

         <div class="panel-body">

           <legend><?=(isset($_POST['quick_release'])) ? $lang['quarantine']['release'] : $lang['quarantine']['remove'];?></legend>

             <p><?=$lang['quarantine']['qhandler_success'];?></p>

@@ -30,7 +30,7 @@
   <div class="row">

     <div class="col-md-offset-2 col-md-8">

       <div class="panel panel-default">

-        <div class="panel-heading"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <?= $lang['header']['quarantine']; ?></div>

+        <div class="panel-heading"><i class="bi bi-patch-exclamation-fill"></i> <?= $lang['header']['quarantine']; ?></div>

         <div class="panel-body">

 <?php

 if ($_GET['action'] == "release") {

diff --git a/mailcow/src/mailcow-dockerized/data/web/quarantine.php b/mailcow/src/mailcow-dockerized/data/web/quarantine.php
index d5c71a0..6343db4 100644
--- a/mailcow/src/mailcow-dockerized/data/web/quarantine.php
+++ b/mailcow/src/mailcow-dockerized/data/web/quarantine.php
@@ -4,17 +4,17 @@
 if (isset($_SESSION['mailcow_cc_role'])) {
 require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/header.inc.php';
 $_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
-
+$quarantine_settings = quarantine('settings');
 ?>
 <div class="container">
 	<div class="row">
 		<div class="col-md-12">
-      <div class="panel panel-default">
+      <div class="panel panel-default panel-xs-lg">
         <div class="panel-heading">
           <?=$lang['quarantine']['quarantine'];?> <span class="badge badge-info table-lines"></span>
           <div class="btn-group pull-right">
-            <button class="btn btn-xs btn-default refresh_table" data-draw="draw_quarantine_table" data-table="quarantinetable"><?=$lang['quarantine']['refresh'];?></button>
-            <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown"><?=$lang['quarantine']['table_size'];?> 
+            <button class="btn btn-xs btn-xs-lg btn-default refresh_table" data-draw="draw_quarantine_table" data-table="quarantinetable"><?=$lang['quarantine']['refresh'];?></button>
+            <button type="button" class="btn btn-xs btn-xs-lg btn-default dropdown-toggle" data-toggle="dropdown"><?=$lang['quarantine']['table_size'];?>
               <span class="caret"></span>
             </button>
             <ul class="dropdown-menu" data-table-id="quarantinetable" role="menu">
@@ -30,11 +30,16 @@
         <p style="margin:10px" class="help-block"><?=$lang['quarantine']['qinfo'];?></p>
         <p style="margin:10px">
         <?php
-        if (empty(quarantine('settings')['retention_size']) || empty(quarantine('settings')['max_size'])):
+        if (empty($quarantine_settings['retention_size'] || $quarantine_settings['max_size'])) {
         ?>
         <div class="panel-body"><div class="alert alert-info"><?=$lang['quarantine']['disabled_by_config'];?></div></div>
         <?php
-        endif;
+        }
+        else {
+        ?>
+        <p style="margin:10px" class="help-block"><?=sprintf($lang['quarantine']['settings_info'], $quarantine_settings['retention_size'], $quarantine_settings['max_size']);?></p>
+        <?php
+        }
         ?>
         </p>
         <div class="table-responsive">
@@ -42,8 +47,8 @@
         </div>
         <div class="mass-actions-quarantine">
           <div class="btn-group" data-acl="<?=$_SESSION['acl']['quarantine'];?>">
-            <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="qitems" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['quarantine']['toggle_all'];?></a>
-            <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['quarantine']['quick_actions'];?> <span class="caret"></span></a>
+            <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="toggle_multi_select_all" data-id="qitems" href="#"><i class="bi bi-check-all"></i> <?=$lang['quarantine']['toggle_all'];?></a>
+            <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['quarantine']['quick_actions'];?> <span class="caret"></span></a>
             <ul class="dropdown-menu">
               <li><a data-action="edit_selected" data-id="qitems" data-api-url='edit/qitem' data-api-attr='{"action":"release"}' href="#"><?=$lang['quarantine']['deliver_inbox'];?></a></li>
               <li role="separator" class="divider"></li>
@@ -51,6 +56,7 @@
               <li role="separator" class="divider"></li>
               <li><a data-action="delete_selected" data-id="qitems" data-api-url='delete/qitem' href="#"><?=$lang['quarantine']['remove'];?></a></li>
             </ul>
+            <div class="clearfix visible-xs"></div>
           </div>
         </div>
       </div>
diff --git a/mailcow/src/mailcow-dockerized/data/web/sogo-auth.php b/mailcow/src/mailcow-dockerized/data/web/sogo-auth.php
index 08fb1b0..3bd19c6 100644
--- a/mailcow/src/mailcow-dockerized/data/web/sogo-auth.php
+++ b/mailcow/src/mailcow-dockerized/data/web/sogo-auth.php
@@ -8,14 +8,8 @@
 $session_var_user_allowed = 'sogo-sso-user-allowed';
 $session_var_pass = 'sogo-sso-pass';
 
-// prevent if feature is disabled
-if (!$ALLOW_ADMIN_EMAIL_LOGIN) {
-  header('HTTP/1.0 403 Forbidden');
-  echo "this feature is disabled";
-  exit;
-}
 // validate credentials for basic auth requests
-elseif (isset($_SERVER['PHP_AUTH_USER'])) {
+if (isset($_SERVER['PHP_AUTH_USER'])) {
   // load prerequisites only when required
   require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/prerequisites.inc.php';
   $username = $_SERVER['PHP_AUTH_USER'];
@@ -36,11 +30,19 @@
 elseif (isset($_GET['login'])) {
   // load prerequisites only when required
   require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/prerequisites.inc.php';
-  // check permissions
-  if (isset($_SESSION['mailcow_cc_role']) && $_SESSION['acl']['login_as'] == "1") {
-    $login = html_entity_decode(rawurldecode($_GET["login"]));
+  // check if dual_login is active
+  $is_dual = (!empty($_SESSION["dual-login"]["username"])) ? true : false;
+  // check permissions (if dual_login is active, deny sso when acl is not given)
+  $login = html_entity_decode(rawurldecode($_GET["login"]));
+  if ($ALLOW_ADMIN_EMAIL_LOGIN === 0 && $is_dual === true) {
+    header('HTTP/1.0 403 Forbidden');
+    echo "Admin login is forbidden";
+    exit;
+  }
+  if (isset($_SESSION['mailcow_cc_role']) &&
+    ($_SESSION['acl']['login_as'] == "1" || ($is_dual === false && $login == $_SESSION['mailcow_cc_username']))) {
     if (filter_var($login, FILTER_VALIDATE_EMAIL)) {
-      if (!empty(mailbox('get', 'mailbox_details', $login))) {
+      if (user_get_alias_details($login) !== false) {
         // load master password
         $sogo_sso_pass = file_get_contents("/etc/sogo-sso/sogo-sso.pass");
         // register username and password in session
@@ -53,6 +55,7 @@
     }
   }
   header('HTTP/1.0 403 Forbidden');
+  echo "Access is forbidden";
   exit;
 }
 // only check for admin-login on sogo GUI requests
diff --git a/mailcow/src/mailcow-dockerized/data/web/user.php b/mailcow/src/mailcow-dockerized/data/web/user.php
index 57b2803..62e29f6 100644
--- a/mailcow/src/mailcow-dockerized/data/web/user.php
+++ b/mailcow/src/mailcow-dockerized/data/web/user.php
@@ -1,697 +1,809 @@
-<?php

-require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/prerequisites.inc.php';

-if (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'domainadmin') {

-

-  /*

-  / DOMAIN ADMIN

-  */

-

-	require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/header.inc.php';

-	$_SESSION['return_to'] = $_SERVER['REQUEST_URI'];

-  $tfa_data = get_tfa();

-  $fido2_data = fido2(array("action" => "get_friendly_names"));

-	$username = $_SESSION['mailcow_cc_username'];

-

-?>

-<div class="container">

-

-  <h3><?=$lang['user']['user_settings'];?></h3>

-  <div class="panel panel-default">

-  <div class="panel-heading"><?=$lang['user']['user_settings'];?></div>

-  <div class="panel-body">

-    <div class="row">

-      <div class="col-sm-offset-3 col-sm-9">

-        <p><a href="#pwChangeModal" data-toggle="modal">[<?=$lang['user']['change_password'];?>]</a></p>

-        <p><small>

-        <?php

-        if ($_SESSION['mailcow_cc_last_login']['remote']):

-        ?>

-        <span style="margin-right:10px" class="glyphicon glyphicon-log-in"></span> <span data-time="<?=$_SESSION['mailcow_cc_last_login']['time'];?>" class="last_login_date"></span> (<?=$_SESSION['mailcow_cc_last_login']['remote'];?>)

-        <?php

-        else: echo $lang['user']['no_last_login']; endif;

-        ?>

-        </small></p>

-        <p>

-      </div>

-    </div>

-    <hr>

-    

-    <? // TFA ?>

-    <div class="row">

-      <div class="col-sm-3 col-xs-5 text-right"><?=$lang['tfa']['tfa'];?></div>

-        <div class="col-sm-9 col-xs-7">

-          <p id="tfa_pretty"><?=$tfa_data['pretty'];?></p>

-            <table id="tfa_keys">

-              <?php if (!empty($tfa_data['additional'])):

-              foreach ($tfa_data['additional'] as $key_info): ?>

-                <form style="display:inline;" method="post">

-                <input type="hidden" name="unset_tfa_key" value="<?=$key_info['id'];?>" />

-                <div class="label label-default">🔑 <?=$key_info['key_id'];?> <a href="#" style="font-weight:bold;color:white" onClick="$(this).closest('form').submit()">[<?=strtolower($lang['admin']['remove']);?>]</a></div>

-              </form>

-              <?php endforeach;

-              endif;?>

-            </table>

-            <br />

-        </div>

-    </div>

-    <div class="row">

-      <div class="col-sm-3 col-xs-5 text-right"><?=$lang['tfa']['set_tfa'];?></div>

-      <div class="col-sm-9 col-xs-7">

-        <select id="selectTFA" class="selectpicker" title="<?=$lang['tfa']['select'];?>">

-          <option value="yubi_otp"><?=$lang['tfa']['yubi_otp'];?></option>

-          <option value="u2f"><?=$lang['tfa']['u2f'];?></option>

-          <option value="totp"><?=$lang['tfa']['totp'];?></option>

-          <option value="none"><?=$lang['tfa']['none'];?></option>

-        </select>

-      </div>

-    </div>

-

-    <? // FIDO2 ?>

-    <legend style="margin-top:20px">

-    <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" style="margin-bottom: -5px;">

-      <path d="M17.81 4.47c-.08 0-.16-.02-.23-.06C15.66 3.42 14 3 12.01 3c-1.98 0-3.86.47-5.57 1.41-.24.13-.54.04-.68-.2-.13-.24-.04-.55.2-.68C7.82 2.52 9.86 2 12.01 2c2.13 0 3.99.47 6.03 1.52.25.13.34.43.21.67-.09.18-.26.28-.44.28zM3.5 9.72c-.1 0-.2-.03-.29-.09-.23-.16-.28-.47-.12-.7.99-1.4 2.25-2.5 3.75-3.27C9.98 4.04 14 4.03 17.15 5.65c1.5.77 2.76 1.86 3.75 3.25.16.22.11.54-.12.7-.23.16-.54.11-.7-.12-.9-1.26-2.04-2.25-3.39-2.94-2.87-1.47-6.54-1.47-9.4.01-1.36.7-2.5 1.7-3.4 2.96-.08.14-.23.21-.39.21zm6.25 12.07c-.13 0-.26-.05-.35-.15-.87-.87-1.34-1.43-2.01-2.64-.69-1.23-1.05-2.73-1.05-4.34 0-2.97 2.54-5.39 5.66-5.39s5.66 2.42 5.66 5.39c0 .28-.22.5-.5.5s-.5-.22-.5-.5c0-2.42-2.09-4.39-4.66-4.39-2.57 0-4.66 1.97-4.66 4.39 0 1.44.32 2.77.93 3.85.64 1.15 1.08 1.64 1.85 2.42.19.2.19.51 0 .71-.11.1-.24.15-.37.15zm7.17-1.85c-1.19 0-2.24-.3-3.1-.89-1.49-1.01-2.38-2.65-2.38-4.39 0-.28.22-.5.5-.5s.5.22.5.5c0 1.41.72 2.74 1.94 3.56.71.48 1.54.71 2.54.71.24 0 .64-.03 1.04-.1.27-.05.53.13.58.41.05.27-.13.53-.41.58-.57.11-1.07.12-1.21.12zM14.91 22c-.04 0-.09-.01-.13-.02-1.59-.44-2.63-1.03-3.72-2.1-1.4-1.39-2.17-3.24-2.17-5.22 0-1.62 1.38-2.94 3.08-2.94 1.7 0 3.08 1.32 3.08 2.94 0 1.07.93 1.94 2.08 1.94s2.08-.87 2.08-1.94c0-3.77-3.25-6.83-7.25-6.83-2.84 0-5.44 1.58-6.61 4.03-.39.81-.59 1.76-.59 2.8 0 .78.07 2.01.67 3.61.1.26-.03.55-.29.64-.26.1-.55-.04-.64-.29-.49-1.31-.73-2.61-.73-3.96 0-1.2.23-2.29.68-3.24 1.33-2.79 4.28-4.6 7.51-4.6 4.55 0 8.25 3.51 8.25 7.83 0 1.62-1.38 2.94-3.08 2.94s-3.08-1.32-3.08-2.94c0-1.07-.93-1.94-2.08-1.94s-2.08.87-2.08 1.94c0 1.71.66 3.31 1.87 4.51.95.94 1.86 1.46 3.27 1.85.27.07.42.35.35.61-.05.23-.26.38-.47.38z"/>

-    </svg>

-    <?=$lang['fido2']['fido2_auth'];?></legend>

-    <div class="row">

-      <div class="col-sm-3 col-xs-5 text-right"><?=$lang['fido2']['known_ids'];?>:</div>

-      <div class="col-sm-9 col-xs-7">

-          <div class="table-responsive">

-          <table class="table table-striped table-hover table-condensed" id="fido2_keys">

-            <tr>

-              <th>ID</th>

-              <th style="min-width:240px;text-align: right"><?=$lang['admin']['action'];?></th>

-            </tr>

-            <?php

-            if (!empty($fido2_data)) {

-              foreach ($fido2_data as $key_info) {

-            ?>

-            <tr>

-              <td>

-                <?=($_SESSION['fido2_cid'] == $key_info['cid']) ? '→ ' : NULL; ?><?=(!empty($key_info['fn']))?$key_info['fn']:$key_info['subject'];?>

-              </td>

-              <td style="min-width:240px;text-align: right">

-                <form style="display:inline;" method="post">

-                <input type="hidden" name="unset_fido2_key" value="<?=$key_info['cid'];?>" />

-                <div class="btn-group">

-                <a href="#" class="btn btn-xs btn-default" data-cid="<?=$key_info['cid'];?>" data-subject="<?=base64_encode($key_info['subject']);?>" data-toggle="modal" data-target="#fido2ChangeFn"><span class="glyphicon glyphicon-pencil"></span> <?=strtolower($lang['fido2']['rename']);?></a>

-                <a href="#" onClick='return confirm("<?=$lang['admin']['ays'];?>")?$(this).closest("form").submit():"";' class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> <?=strtolower($lang['admin']['remove']);?></a>

-                </form>

-                </div>

-              </td>

-            </tr>

-            <?php

-              }

-            }

-            ?>

-          </table>

-          </div>

-          <br>

-      </div>

-    </div>

-    <div class="row">

-      <div class="col-sm-offset-3 col-sm-9">

-        <button class="btn btn-sm btn-primary" id="register-fido2"><?=$lang['fido2']['set_fido2'];?></button>

-      </div>

-    </div>

-    <br>

-    <div class="row" id="status-fido2">

-      <div class="col-sm-3 col-xs-5 text-right"><?=$lang['fido2']['register_status'];?>:</div>

-      <div class="col-sm-9 col-xs-7">

-        <div id="fido2-alerts">-</div>

-      </div>

-      <br>

-    </div>

-

-  </div>

-  </div>

-</div>

-<?php

-}

-elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'user') {

-

-  /*

-  / USER

-  */

-

-  require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/header.inc.php';

-  $_SESSION['return_to'] = $_SERVER['REQUEST_URI'];

-  $username = $_SESSION['mailcow_cc_username'];

-  $mailboxdata = mailbox('get', 'mailbox_details', $username);

-  $pushover_data = pushover('get', $username);

-

-  $clientconfigstr = "host=" . urlencode($mailcow_hostname) . "&email=" . urlencode($username) . "&name=" . urlencode($mailboxdata['name']) . "&ui=" . urlencode(strtok($_SERVER['HTTP_HOST'], ':')) . "&port=" . urlencode($autodiscover_config['caldav']['port']);

-  if ($autodiscover_config['useEASforOutlook'] == 'yes')

-  $clientconfigstr .= "&outlookEAS=1";

-  if (file_exists('thunderbird-plugins/version.csv')) {

-    $fh = fopen('thunderbird-plugins/version.csv', 'r');

-    if ($fh) {

-      while (($row = fgetcsv($fh, 1000, ';')) !== FALSE) {

-        if ($row[0] == 'sogo-connector@inverse.ca') {

-          $clientconfigstr .= "&connector=" . urlencode($row[1]);

-        }

-      }

-      fclose($fh);

-    }

-  }

-?>

-<div class="container">

-

-  <!-- Nav tabs -->

-  <ul class="nav nav-tabs" role="tablist">

-    <li role="presentation" class="active"><a href="#userSettings" aria-controls="userSettings" role="tab" data-toggle="tab"><?=$lang['user']['mailbox_details'];?></a></li>

-    <li role="presentation"><a href="#SpamAliases" aria-controls="SpamAliases" role="tab" data-toggle="tab"><?=$lang['user']['spam_aliases'];?></a></li>

-    <li role="presentation"><a href="#Spamfilter" aria-controls="Spamfilter" role="tab" data-toggle="tab"><?=$lang['user']['spamfilter'];?></a></li>

-    <li role="presentation"><a href="#Syncjobs" aria-controls="Syncjobs" role="tab" data-toggle="tab"><?=$lang['user']['sync_jobs'];?></a></li>

-    <li role="presentation"><a href="#AppPasswds" aria-controls="AppPasswds" role="tab" data-toggle="tab"><?=$lang['user']['app_passwds'];?></a></li>

-    <li role="presentation"><a href="#Pushover" aria-controls="Pushover" role="tab" data-toggle="tab">Pushover API</a></li>

-  </ul>

-  <hr>

-

-  <div class="tab-content">

-

-  <div role="tabpanel" class="tab-pane active" id="userSettings">

-    <div class="panel panel-default">

-      <div class="panel-heading"><?=$lang['user']['mailbox_details'];?></div>

-      <div class="panel-body">

-        <div class="row">

-          <div class="col-sm-offset-3 col-sm-9">

-            <?php if ($mailboxdata['attributes']['force_pw_update'] == "1"): ?>

-            <div class="alert alert-danger"><?=$lang['user']['force_pw_update'];?></div>

-            <?php endif; ?>

-            <p><a href="#pwChangeModal" data-toggle="modal">[<?=$lang['user']['change_password'];?>]</a></p>

-            <p><a target="_blank" href="https://mailcow.github.io/mailcow-dockerized-docs/client/#<?=$clientconfigstr;?>">[<?=$lang['user']['client_configuration'];?>]</a></p>

-            <p><a href="#userFilterModal" data-toggle="modal">[<?=$lang['user']['show_sieve_filters'];?>]</a></p>

-            <p><small>

-            <?php

-            if ($_SESSION['mailcow_cc_last_login']['remote']):

-            ?>

-            <span style="margin-right:10px" class="glyphicon glyphicon-log-in"></span> <span data-time="<?=$_SESSION['mailcow_cc_last_login']['time'];?>" class="last_login_date"></span> (<?=$_SESSION['mailcow_cc_last_login']['remote'];?>)

-            <?php

-            else: echo $lang['user']['no_last_login']; endif;

-            ?>

-            </small></p>

-          </div>

-        </div>

-        <hr>

-        <div class="row">

-          <div class="col-md-3 col-xs-5 text-right"><?=$lang['user']['apple_connection_profile'];?>:</div>

-          <div class="col-md-9 col-xs-7">

-            <p><span class="glyphicon glyphicon-download-alt" aria-hidden="true"></span> <a href="/mobileconfig.php?only_email"><?=$lang['user']['email'];?></a> <small>IMAP, SMTP</small></p>

-            <p class="help-block"><?=$lang['user']['apple_connection_profile_mailonly'];?></p>

-            <?php if (getenv('SKIP_SOGO') != "y") { ?>

-            <p><span class="glyphicon glyphicon-download-alt" aria-hidden="true"></span> <a href="/mobileconfig.php"><?=$lang['user']['email_and_dav'];?></a> <small>IMAP, SMTP, Cal/CardDAV</small></p>

-            <p class="help-block"><?=$lang['user']['apple_connection_profile_complete'];?></p>

-            <?php } ?>

-          </div>

-        </div>

-        <hr>

-        <?php // Get user information about aliases

-        $user_get_alias_details = user_get_alias_details($username);

-        ?>

-        <div class="row">

-          <div class="col-md-3 col-xs-5 text-right"><?=$lang['user']['direct_aliases'];?>:

-            <p class="small"><?=$lang['user']['direct_aliases_desc'];?></p>

-          </div>

-          <div class="col-md-9 col-xs-7">

-          <?php

-          if ($user_get_alias_details['direct_aliases'] === false) {

-            echo '&#10008;';

-          }

-          else {

-            foreach (array_filter($user_get_alias_details['direct_aliases']) as $direct_alias => $direct_alias_meta) {

-              (!empty($direct_alias_meta['public_comment'])) ?

-                printf('%s &mdash; <span class="bg-info">%s</span><br>', $direct_alias, $direct_alias_meta['public_comment']) :

-                printf('%s<br>', $direct_alias);

-            }

-          }

-          ?>

-          </div>

-        </div>

-        <div class="row">

-          <div class="col-md-3 col-xs-5 text-right"><?=$lang['user']['shared_aliases'];?>:

-            <p class="small"><?=$lang['user']['shared_aliases_desc'];?></p>

-          </div>

-          <div class="col-md-9 col-xs-7">

-          <?php

-          if ($user_get_alias_details['shared_aliases'] === false) {

-            echo '&#10008;';

-          }

-          else {

-            foreach (array_filter($user_get_alias_details['shared_aliases']) as $shared_alias => $shared_alias_meta) {

-              (!empty($shared_alias_meta['public_comment'])) ?

-                printf('%s &mdash; <span class="bg-info">%s</span><br>', $shared_alias, $shared_alias_meta['public_comment']) :

-

-                printf('%s<br>', $shared_alias);

-            }

-          }

-          ?>

-          </div>

-        </div>

-        <hr>

-        <div class="row">

-          <div class="col-md-3 col-xs-5 text-right"><?=$lang['user']['aliases_also_send_as'];?>:</div>

-          <div class="col-md-9 col-xs-7">

-          <p><?=($user_get_alias_details['aliases_also_send_as'] == '*') ? $lang['user']['sender_acl_disabled'] : $user_get_alias_details['aliases_also_send_as'];?></p>

-          </div>

-        </div>

-        <div class="row">

-          <div class="col-md-3 col-xs-5 text-right"><?=$lang['user']['aliases_send_as_all'];?>:</div>

-          <div class="col-md-9 col-xs-7">

-          <p><?=$user_get_alias_details['aliases_send_as_all'];?></p>

-          </div>

-        </div>

-        <div class="row">

-          <div class="col-md-3 col-xs-5 text-right"><?=$lang['user']['is_catch_all'];?>:</div>

-          <div class="col-md-9 col-xs-7">

-          <p><?=$user_get_alias_details['is_catch_all'];?></p>

-          </div>

-        </div>

-        <hr>

-        <div class="row">

-          <div class="col-md-3 col-xs-5 text-right"><?=$lang['user']['in_use'];?>:</div>

-          <div class="col-md-5 col-xs-7">

-            <div class="progress">

-              <div class="progress-bar progress-bar-<?=$mailboxdata['percent_class'];?>" role="progressbar" aria-valuenow="<?=$mailboxdata['percent_in_use'];?>" aria-valuemin="0" aria-valuemax="100" style="min-width:2em;width: <?=$mailboxdata['percent_in_use'];?>%;">

-                <?=$mailboxdata['percent_in_use'];?>%

-              </div>

-            </div>

-            <p><?=formatBytes($mailboxdata['quota_used'], 2);?> / <?=($mailboxdata['quota'] == 0) ? '∞' : formatBytes($mailboxdata['quota'], 2);?><br><?=$mailboxdata['messages'];?> <?=$lang['user']['messages'];?></p>

-          </div>

-        </div>

-        <hr>

-        <?php

-        // Show tagging options

-        $get_tagging_options = mailbox('get', 'delimiter_action', $username);

-        ?>

-        <div class="row">

-          <div class="col-md-3 col-xs-5 text-right"><?=$lang['user']['tag_handling'];?>:</div>

-          <div class="col-md-9 col-xs-7">

-          <div class="btn-group" data-acl="<?=$_SESSION['acl']['delimiter_action'];?>">

-            <button type="button" class="btn btn-sm btn-default <?=($get_tagging_options == "subfolder") ? 'active' : null; ?>"

-              data-action="edit_selected"

-              data-item="<?= htmlentities($username); ?>"

-              data-id="delimiter_action"

-              data-api-url='edit/delimiter_action'

-              data-api-attr='{"tagged_mail_handler":"subfolder"}'><?=$lang['user']['tag_in_subfolder'];?></button>

-            <button type="button" class="btn btn-sm btn-default <?=($get_tagging_options == "subject") ? 'active' : null; ?>"

-              data-action="edit_selected"

-              data-item="<?= htmlentities($username); ?>"

-              data-id="delimiter_action"

-              data-api-url='edit/delimiter_action'

-              data-api-attr='{"tagged_mail_handler":"subject"}'><?=$lang['user']['tag_in_subject'];?></button>

-            <button type="button" class="btn btn-sm btn-default <?=($get_tagging_options == "none") ? 'active' : null; ?>"

-              data-action="edit_selected"

-              data-item="<?= htmlentities($username); ?>"

-              data-id="delimiter_action"

-              data-api-url='edit/delimiter_action'

-              data-api-attr='{"tagged_mail_handler":"none"}'><?=$lang['user']['tag_in_none'];?></button>

-          </div>

-          <p class="help-block"><?=$lang['user']['tag_help_explain'];?></p>

-          <p class="help-block"><?=$lang['user']['tag_help_example'];?></p>

-          </div>

-        </div>

-        <?php

-        // Show TLS policy options

-        $get_tls_policy = mailbox('get', 'tls_policy', $username);

-        ?>

-        <div class="row">

-          <div class="col-md-3 col-xs-5 text-right"><?=$lang['user']['tls_policy'];?>:</div>

-          <div class="col-md-9 col-xs-7">

-          <div class="btn-group" data-acl="<?=$_SESSION['acl']['tls_policy'];?>">

-            <button type="button" class="btn btn-sm btn-default <?=($get_tls_policy['tls_enforce_in'] == "1") ? "active" : null;?>"

-              data-action="edit_selected"

-              data-item="<?= htmlentities($username); ?>"

-              data-id="tls_policy"

-              data-api-url='edit/tls_policy'

-              data-api-attr='{"tls_enforce_in":<?=($get_tls_policy['tls_enforce_in'] == "1") ? "0" : "1";?>}'><?=$lang['user']['tls_enforce_in'];?></button>

-            <button type="button" class="btn btn-sm btn-default <?=($get_tls_policy['tls_enforce_out'] == "1") ? "active" : null;?>"

-              data-action="edit_selected"

-              data-item="<?= htmlentities($username); ?>"

-              data-id="tls_policy"

-              data-api-url='edit/tls_policy'

-              data-api-attr='{"tls_enforce_out":<?=($get_tls_policy['tls_enforce_out'] == "1") ? "0" : "1";?>}'><?=$lang['user']['tls_enforce_out'];?></button>

-          </div>

-          <p class="help-block"><?=$lang['user']['tls_policy_warning'];?></p>

-          </div>

-        </div>

-        <?php

-        // Show quarantine_notification options

-        $quarantine_notification = mailbox('get', 'quarantine_notification', $username);

-        $quarantine_category = mailbox('get', 'quarantine_category', $username);

-        ?>

-        <div class="row">

-          <div class="col-md-3 col-xs-5 text-right"><?=$lang['user']['quarantine_notification'];?>:</div>

-          <div class="col-md-9 col-xs-7">

-          <div class="btn-group" data-acl="<?=$_SESSION['acl']['quarantine_notification'];?>">

-            <button type="button" class="btn btn-sm btn-default <?=($quarantine_notification == "never") ? "active" : null;?>"

-              data-action="edit_selected"

-              data-item="<?= htmlentities($username); ?>"

-              data-id="quarantine_notification"

-              data-api-url='edit/quarantine_notification'

-              data-api-attr='{"quarantine_notification":"never"}'><?=$lang['user']['never'];?></button>

-            <button type="button" class="btn btn-sm btn-default <?=($quarantine_notification == "hourly") ? "active" : null;?>"

-              data-action="edit_selected"

-              data-item="<?= htmlentities($username); ?>"

-              data-id="quarantine_notification"

-              data-api-url='edit/quarantine_notification'

-              data-api-attr='{"quarantine_notification":"hourly"}'><?=$lang['user']['hourly'];?></button>

-            <button type="button" class="btn btn-sm btn-default <?=($quarantine_notification == "daily") ? "active" : null;?>"

-              data-action="edit_selected"

-              data-item="<?= htmlentities($username); ?>"

-              data-id="quarantine_notification"

-              data-api-url='edit/quarantine_notification'

-              data-api-attr='{"quarantine_notification":"daily"}'><?=$lang['user']['daily'];?></button>

-            <button type="button" class="btn btn-sm btn-default <?=($quarantine_notification == "weekly") ? "active" : null;?>"

-              data-action="edit_selected"

-              data-item="<?= htmlentities($username); ?>"

-              data-id="quarantine_notification"

-              data-api-url='edit/quarantine_notification'

-              data-api-attr='{"quarantine_notification":"weekly"}'><?=$lang['user']['weekly'];?></button>

-          </div>

-          <p class="help-block"><?=$lang['user']['quarantine_notification_info'];?></p>

-          </div>

-        </div>

-        <div class="row">

-          <div class="col-md-3 col-xs-5 text-right"><?=$lang['user']['quarantine_category'];?>:</div>

-          <div class="col-md-9 col-xs-7">

-          <div class="btn-group" data-acl="<?=$_SESSION['acl']['quarantine_category'];?>">

-            <button type="button" class="btn btn-sm btn-default <?=($quarantine_category == "reject") ? "active" : null;?>"

-              data-action="edit_selected"

-              data-item="<?= htmlentities($username); ?>"

-              data-id="quarantine_category"

-              data-api-url='edit/quarantine_category'

-              data-api-attr='{"quarantine_category":"reject"}'><?=$lang['user']['q_reject'];?></button>

-            <button type="button" class="btn btn-sm btn-default <?=($quarantine_category == "add_header") ? "active" : null;?>"

-              data-action="edit_selected"

-              data-item="<?= htmlentities($username); ?>"

-              data-id="quarantine_category"

-              data-api-url='edit/quarantine_category'

-              data-api-attr='{"quarantine_category":"add_header"}'><?=$lang['user']['q_add_header'];?></button>

-            <button type="button" class="btn btn-sm btn-default <?=($quarantine_category == "all") ? "active" : null;?>"

-              data-action="edit_selected"

-              data-item="<?= htmlentities($username); ?>"

-              data-id="quarantine_category"

-              data-api-url='edit/quarantine_category'

-              data-api-attr='{"quarantine_category":"all"}'><?=$lang['user']['q_all'];?></button>

-          </div>

-          <p class="help-block"><?=$lang['user']['quarantine_category_info'];?></p>

-          </div>

-        </div>

-        <?php if (getenv('SKIP_SOGO') != "y") { ?>

-        <hr>

-        <div class="row">

-          <div class="col-md-3 col-xs-5 text-right"><?=$lang['user']['eas_reset'];?>:</div>

-          <div class="col-md-9 col-xs-7">

-          <button class="btn btn-xs btn-default" data-acl="<?=$_SESSION['acl']['eas_reset'];?>" data-action="delete_selected" data-text="<?=$lang['user']['eas_reset'];?>?" data-item="<?= htmlentities($username); ?>" data-id="eas_cache" data-api-url='delete/eas_cache' href="#"><?=$lang['user']['eas_reset_now'];?></button>

-          <p class="help-block"><?=$lang['user']['eas_reset_help'];?></p>

-          </div>

-        </div>

-        <div class="row">

-          <div class="col-md-3 col-xs-5 text-right"><?=$lang['user']['sogo_profile_reset'];?>:</div>

-          <div class="col-md-9 col-xs-7">

-          <button class="btn btn-xs btn-default" data-acl="<?=$_SESSION['acl']['sogo_profile_reset'];?>" data-action="delete_selected" data-text="<?=$lang['user']['sogo_profile_reset'];?>?" data-item="<?= htmlentities($username); ?>" data-id="sogo_profile" data-api-url='delete/sogo_profile' href="#"><?=$lang['user']['sogo_profile_reset_now'];?></button>

-          <p class="help-block"><?=$lang['user']['sogo_profile_reset_help'];?></p>

-          </div>

-        </div>

-        <?php } ?>

-      </div>

-    </div>

-  </div>

-

-	<div role="tabpanel" class="tab-pane" id="SpamAliases">

-    <div class="row">

-      <div class="col-md-12 col-sm-12 col-xs-12">

-        <div class="table-responsive">

-          <table class="table table-striped" id="tla_table"></table>

-        </div>

-      </div>

-		</div>

-    <div class="mass-actions-user">

-      <div class="btn-group" data-acl="<?=$_SESSION['acl']['spam_alias'];?>">

-        <div class="btn-group">

-          <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="tla" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>

-          <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>

-          <ul class="dropdown-menu">

-            <li><a data-action="edit_selected" data-id="tla" data-api-url='edit/time_limited_alias' data-api-attr='{"validity":"1"}' href="#"><?=$lang['user']['expire_in'];?> 1 <?=$lang['user']['hour'];?></a></li>

-            <li><a data-action="edit_selected" data-id="tla" data-api-url='edit/time_limited_alias' data-api-attr='{"validity":"6"}' href="#"><?=$lang['user']['expire_in'];?> 6 <?=$lang['user']['hours'];?></a></li>

-            <li><a data-action="edit_selected" data-id="tla" data-api-url='edit/time_limited_alias' data-api-attr='{"validity":"24"}' href="#"><?=$lang['user']['expire_in'];?> 1 <?=$lang['user']['day'];?></a></li>

-            <li><a data-action="edit_selected" data-id="tla" data-api-url='edit/time_limited_alias' data-api-attr='{"validity":"168"}' href="#"><?=$lang['user']['expire_in'];?> 1 <?=$lang['user']['week'];?></a></li>

-            <li><a data-action="edit_selected" data-id="tla" data-api-url='edit/time_limited_alias' data-api-attr='{"validity":"672"}' href="#"><?=$lang['user']['expire_in'];?> 4 <?=$lang['user']['weeks'];?></a></li>

-            <li role="separator" class="divider"></li>

-            <li><a data-action="delete_selected" data-id="tla" data-api-url='delete/time_limited_alias' href="#"><?=$lang['mailbox']['remove'];?></a></li>

-          </ul>

-        </div>

-        <div class="btn-group">

-          <a class="btn btn-sm btn-success dropdown-toggle" data-toggle="dropdown" href="#"><span class="glyphicon glyphicon-plus"></span> <?=$lang['user']['alias_create_random'];?> <span class="caret"></span></a>

-          <ul class="dropdown-menu">

-            <li><a data-action="add_item" data-api-url='add/time_limited_alias' data-api-attr='{"validity":"1"}' href="#">1 <?=$lang['user']['hour'];?></a></li>

-            <li><a data-action="add_item" data-api-url='add/time_limited_alias' data-api-attr='{"validity":"6"}' href="#">6 <?=$lang['user']['hours'];?></a></li>

-            <li><a data-action="add_item" data-api-url='add/time_limited_alias' data-api-attr='{"validity":"24"}' href="#">1 <?=$lang['user']['day'];?></a></li>

-            <li><a data-action="add_item" data-api-url='add/time_limited_alias' data-api-attr='{"validity":"168"}' href="#">1 <?=$lang['user']['week'];?></a></li>

-            <li><a data-action="add_item" data-api-url='add/time_limited_alias' data-api-attr='{"validity":"672"}' href="#">4 <?=$lang['user']['weeks'];?></a></li>

-          </ul>

-        </div>

-      </div>

-    </div>

-	</div>

-

-	<div role="tabpanel" class="tab-pane" id="Spamfilter">

-		<h4><?=$lang['user']['spamfilter_behavior'];?></h4>

-		<form class="form-horizontal" role="form" data-id="spam_score" method="post">

-			<div class="form-group">

-				<div class="col-lg-6 col-sm-12">

-					<input data-acl="<?=$_SESSION['acl']['spam_score'];?>" name="spam_score" id="spam_score" type="text" style="width: 100%;"

-						data-provide="slider"

-						data-slider-min="1"

-						data-slider-max="2000"

-            data-slider-scale='logarithmic'

-						data-slider-step="0.5"

-						data-slider-range="true"

-						data-slider-tooltip='always'

-						data-slider-id="slider1"

-						data-slider-value="[<?=mailbox('get', 'spam_score', $username);?>]"

-						data-slider-step="1" />

-					<br /><br />

-					<ul>

-						<li><?=$lang['user']['spamfilter_green'];?></li>

-						<li><?=$lang['user']['spamfilter_yellow'];?></li>

-						<li><?=$lang['user']['spamfilter_red'];?></li>

-					</ul>

-					<p><?=$lang['user']['spamfilter_hint'];?></p>

-				</div>

-			</div>

-      <div class="form-group">

-				<div class="col-sm-10">

-				</div>

-        <div class="btn-group" data-acl="<?=$_SESSION['acl']['spam_policy'];?>">

-          <a type="button" class="btn btn-sm btn-success" data-action="edit_selected"

-            data-item="<?= htmlentities($username); ?>"

-            data-id="spam_score"

-            data-api-url='edit/spam-score'

-            data-api-attr='{}'><?=$lang['user']['save_changes'];?></a>

-          <a type="button" class="btn btn-sm btn-default" data-action="edit_selected"

-            data-item="<?= htmlentities($username); ?>"

-            data-id="spam_score_reset"

-            data-api-url='edit/spam-score'

-            data-api-attr='{"spam_score":"default"}'><?=$lang['user']['spam_score_reset'];?></a>

-        </div>

-			</div>

-		</form>

-		<hr>

-		<div class="row">

-			<div class="col-sm-6">

-				<h4><?=$lang['user']['spamfilter_wl'];?></h4>

-        <p><?=$lang['user']['spamfilter_wl_desc'];?></p>

-        <div class="table-responsive">

-          <table class="table table-striped table-condensed" id="wl_policy_mailbox_table"></table>

-        </div>

-

-        <div class="mass-actions-user">

-          <div class="btn-group" data-acl="<?=$_SESSION['acl']['spam_policy'];?>">

-            <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="policy_wl_mailbox" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>

-            <a class="btn btn-sm btn-danger" data-action="delete_selected" data-id="policy_wl_mailbox" data-api-url='delete/mailbox-policy' href="#"><?=$lang['mailbox']['remove'];?></a></li>

-          </div>

-        </div>

-        <form class="form-inline" data-id="add_wl_policy_mailbox">

-          <div class="input-group" data-acl="<?=$_SESSION['acl']['spam_policy'];?>">

-            <input type="text" class="form-control" name="object_from" placeholder="*@example.org" required>

-            <span class="input-group-btn">

-              <button class="btn btn-default" data-action="add_item" data-id="add_wl_policy_mailbox" data-api-url='add/mailbox-policy' data-api-attr='{"username":<?= json_encode($username); ?>,"object_list":"wl"}' href="#"><span class="glyphicon glyphicon-plus"></span> <?=$lang['user']['spamfilter_table_add'];?></button>

-            </span>

-          </div>

-        </form>

-      </div>

-			<div class="col-sm-6">

-				<h4><?=$lang['user']['spamfilter_bl'];?></h4>

-        <p><?=$lang['user']['spamfilter_bl_desc'];?></p>

-        <div class="table-responsive">

-          <table class="table table-striped table-condensed" id="bl_policy_mailbox_table"></table>

-        </div>

-

-        <div class="mass-actions-user">

-          <div class="btn-group" data-acl="<?=$_SESSION['acl']['spam_policy'];?>">

-            <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="policy_bl_mailbox" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>

-            <a class="btn btn-sm btn-danger" data-action="delete_selected" data-id="policy_bl_mailbox" data-api-url='delete/mailbox-policy' href="#"><?=$lang['mailbox']['remove'];?></a></li>

-          </div>

-        </div>

-        <form class="form-inline" data-id="add_bl_policy_mailbox">

-          <div class="input-group" data-acl="<?=$_SESSION['acl']['spam_policy'];?>">

-            <input type="text" class="form-control" name="object_from" placeholder="*@example.org" required>

-            <span class="input-group-btn">

-              <button class="btn btn-default" data-action="add_item" data-id="add_bl_policy_mailbox" data-api-url='add/mailbox-policy' data-api-attr='{"username":<?= json_encode($username); ?>,"object_list":"bl"}' href="#"><span class="glyphicon glyphicon-plus"></span> <?=$lang['user']['spamfilter_table_add'];?></button>

-            </span>

-          </div>

-        </form>

-

-      </div>

-    </div>

-  </div>

-

-	<div role="tabpanel" class="tab-pane" id="Syncjobs">

-		<div class="table-responsive">

-      <table class="table table-striped" id="sync_job_table"></table>

-		</div>

-    <div class="mass-actions-user">

-      <div class="btn-group" data-acl="<?=$_SESSION['acl']['syncjobs'];?>">

-        <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="syncjob" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>

-        <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>

-        <ul class="dropdown-menu">

-          <li><a data-action="edit_selected" data-id="syncjob" data-api-url='edit/syncjob' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>

-          <li><a data-action="edit_selected" data-id="syncjob" data-api-url='edit/syncjob' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>

-          <li role="separator" class="divider"></li>

-          <li><a data-action="delete_selected" data-id="syncjob" data-api-url='delete/syncjob' href="#"><?=$lang['mailbox']['remove'];?></a></li>

-        </ul>

-        <a class="btn btn-sm btn-success" href="#" data-toggle="modal" data-target="#addSyncJobModal"><span class="glyphicon glyphicon-plus"></span> <?=$lang['user']['create_syncjob'];?></a>

-      </div>

-    </div>

-  </div>

-

-	<div role="tabpanel" class="tab-pane" id="Pushover">

-    <form data-id="pushover" class="form well" method="post">

-      <input type="hidden" value="0" name="evaluate_x_prio">

-      <input type="hidden" value="0" name="only_x_prio">

-      <input type="hidden" value="0" name="active">

-      <div class="row">

-        <div class="col-sm-1">

-          <p class="help-block"><a href="https://pushover.net" target="_blank"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAACglBMVEUAAAAAAAEAAAAilecFGigAAAAAAAAAAAAAAAANj+c3n+Ypm+oeYI4KWI4MieAtkdQbleoJcLcjmeswmN4Rit4KgdMKUYQJKUAQSnILL0kMNlMSTngimOoNPF0hlOQBBgkNOlkRS3MHIjUhk+IPf8wKLUYsjM0AAAASTngAAAAAAAAPfckbdLIbdrYUWIgegsgce70knfEAAAAknfENOVkGHi8YaaIjnvEdgMUhkuAQSG8aca0hleQUh9YLjOM4nOEMgtMcbaYWa6YemO02ltkKhNktgLodYZEPXJEyi8kKesktfLUzj84cWYMiluckZ5YJXJYeW4Y0k9YKfs4yjs0pc6YHZaUviskLfMkqmugak+cqkNcViNcqeK4Iaq4XRmYGPmYMKDsFJTstgr0LdL0ti84CCQ4BCQ4Qgc8rlt8XjN8shcQsi8wZSGgEP2cRMEUDKkUAAAD///8dmvEamfExo/EXmPEWl/ERlvElnvEsofEjnfETl/Enn/Ezo/E4pvEvovEfm/E1pPEzpPEvofEOlfEpoPEamPEQlfEYmfE6p/EgnPEVlvEroPE3pfE2pfENk/Ern/E3pPEcmfEfmvEnnvBlufT6/P0soPAknPDd7/zs9vzo9PxBqfItofAqoPD9/f3B4/q43/mx2/l/xfZ6w/Vxv/VtvfVgt/RXtPNTsfNEq/L3+/31+v3a7fvR6vvH5fqs2vmc0/jx+P3v9/3h8fzW7PvV7PvL5/q13fmo1/mh1PiY0fiNy/aHyfZ2wfVou/Vdt/RPsPM3oeoQkuowmeAgjdgcgMQbeLrw9/3k8vy74Pm63/mX0PdYtfNNr/Ikm+4wnOchkuAVjOAfdrMVcrOdoJikAAAAcnRSTlMAIQ8IzzweFwf+/fvw8P79+/Xt7e3p6eji4d7U08y8qZyTiIWDgn53bWxqaWBKQ0JBOjUwMCkoJCEfHBkT/vz8/Pv7+vr69/b29PTy7ezm5ubm5N7e29vQ0M/Pv7+4uLW1pqaWloWDg3x7e21mUVFFRUXdPracAAAEbElEQVRIx4WUZbvaQBCFF+ru7u7u7u7u7t4mvVwSoBC0JIUCLRQolLq7u7vr/+nMLkmQyvlwyfPcd86e3ZldUqwyQ/p329J+XfutPQYOLUP+q55rFtQJRvY79+xxlZTUWbKpz7/xrrMr2+3BoNPpdLn2lJQ4HEeqLOr1d7z7XNkesQed4A848G63Oy4Gmg/6Mz542QvZbqe8C/Ig73CLYiYTrtLmT3zfqbIcAR7y4wIqH/B6M9Fo0+Ldb6sM9ph/v4ozPuz12mxRofaAAr7jCNkuoz/jNf9AGHibkBCm51fsGKvxsAGWx4H+jBcEi6V2birDpCL/9Klrd1KHbiSvPWP8V0tTnTfO03iXi57P6WNHOVUf44IFdFDRz6pV5fw8Zy5z3JVH5+R48OwxqDiGvKJIY9R+9JsCuJ5HPg74OVEMpz+nbdEPUHEWeEk6IDUnTC1l5r+f8uffc0cfxc8fS17kLso24SwUPFDA/6DE82xKDOPliJ7n/GGOOyWK9zD9CdjvOfg9Dv6AH+AX04LW9gj2i8W/APx1UbxwCAu+wPmcpgUKL/EHdvtq4uwaZwCuznPJVY5LHhED15G/isd5Hz4eKui/e/du02YoKFeD5mHzHIN/nxEDe25gQQwKorAid04CfyzwL4XutXvl1Pt1guMOwwKPkU8mYIFT8JHK+vv8prpDScUVL+j8s3lOctw1GIhbWHAS+HgKPk7xPM/4UtNAYmzizJkf6NgTb/gM8jePQLsewMdthS3g95tMpT1IhVm6v1s8fYmLeb13Odwp8Fh5KY048y/d14WUrwrb1e/X/rNp73nkD8kWS+wi/MZ4XuetG4mhKubJm3/WNEvi8SHwB56nPKjUam0LBdp9ARwupFemTYudvgN/L1+A/Ko/LGBuS8pPy+YR1fuCTWNKnUyoeUyYx2o2dyEVGmr5xTD42xzvkD16+Pb9WIIH6fmt1r3mbsTY7Bvw+n23naT8BUWh86bz6G/e259UXPUK3gfAxQDlo7Rpx3Geqb2e3wp83SGEdKpB7zvwYbzvT2n65xLwbH6YP+M9C8vA8E1wxLU8gkCbdhXGUyrMgwVrcbzLHonr78lzDvWM3q/C/HtDlXoSUIe3YkblhRPIX4E8Oo/9siLv8dRjV7SBlkdgTXvKS7nzsA/9AfeEuhKq9T8zWIDv1Sd6ETAP4D6/H/1V+1BojvruNa4SZXz4JhY84dV5MOF5agUvu5OsOo+KRpG30KalEnoeDccFlutPZYs38D5n3zcpr1/0fBhfb3DOY1z2tSAgLxWezz6zuoHhfUmOejf6blHQH/sFuJYfcMZX307ytKvRa3ifoV/586P5j+tICtS77BuJxzxYAPZsntX8k3eSIhlajK4p8b7iefCEKs03kD/I2LnxL9ovH+43y4fAv1YrI/mzDBsavAX/UppfzVOrZT/ydxk6lJ047MfLfVbcb6hS9ZEzWxekKQ5WrtPqZg3rV6tWrX6Tle3KQZj/q6KxQnmDoXwFY0VSrN9e8FRXBCTAvwAAAABJRU5ErkJggg==" class="img img-fluid"></a></p>

-        </div>

-        <div class="col-sm-10">

-              <p class="help-block"><?=sprintf($lang['user']['pushover_info'], $username);?></p>

-              <p class="help-block"><?=$lang['user']['pushover_vars'];?>: <code>{SUBJECT}</code>, <code>{SENDER}</code></p>

-              <div class="form-group">

-                <div class="row">

-                  <div class="col-sm-6">

-                    <div class="form-group">

-                      <label for="token">API Token/Key (Application)</label>

-                      <input type="text" class="form-control" name="token" maxlength="30" value="<?=$pushover_data['token'];?>" required>

-                    </div>

-                  </div>

-                  <div class="col-sm-6">

-                    <div class="form-group">

-                      <label for="key">User/Group Key</label>

-                      <input type="text" class="form-control" name="key" maxlength="30" value="<?=$pushover_data['key'];?>" required>

-                    </div>

-                  </div>

-                  <div class="col-sm-6">

-                    <div class="form-group">

-                      <label for="title"><?=$lang['user']['pushover_title'];?></label>

-                      <input type="text" class="form-control" name="title" value="<?=$pushover_data['title'];?>" placeholder="Mail">

-                    </div>

-                  </div>

-                  <div class="col-sm-6">

-                    <div class="form-group">

-                      <label for="text"><?=$lang['user']['pushover_text'];?></label>

-                      <input type="text" class="form-control" name="text" value="<?=$pushover_data['text'];?>" placeholder="You've got mail 📧">

-                    </div>

-                  </div>

-                  <div class="col-sm-12">

-                    <div class="form-group">

-                      <label for="text"><?=$lang['user']['pushover_sender_array'];?></label>

-                      <input type="text" class="form-control" name="senders" value="<?=$pushover_data['senders'];?>" placeholder="sender1@example.com, sender2@example.com">

-                    </div>

-                  </div>

-                  <div class="col-sm-12">

-                    <div class="checkbox">

-                    <label><input type="checkbox" value="1" name="active" <?=($pushover_data['active']=="1") ? "checked" : null;?>> <?=$lang['user']['active'];?></label>

-                    </div>

-                  </div>

-                  <div class="col-sm-12">

-                    <legend style="cursor:pointer;margin-top:10px" data-target="#po_advanced" class="arrow-toggle" unselectable="on" data-toggle="collapse">

-                      <span style="font-size:12px" class="arrow rotate glyphicon glyphicon-menu-down"></span> <?=$lang['user']['advanced_settings'];?>

-                    </legend>

-                  </div>

-                  <div class="col-sm-12">

-                    <div id="po_advanced" class="collapse">

-                      <div class="form-group">

-                        <label for="text"><?=$lang['user']['pushover_sender_regex'];?></label>

-                        <input type="text" class="form-control" name="senders_regex" value="<?=$pushover_data['senders_regex'];?>" placeholder="/(.*@example\.org$|^foo@example\.com$)/i" regex="true">

-                        <div class="checkbox">

-                          <label><input type="checkbox" value="1" name="evaluate_x_prio" <?=($pushover_data['attributes']['evaluate_x_prio']=="1") ? "checked" : null;?>> <?=$lang['user']['pushover_evaluate_x_prio'];?></label>

-                        </div>

-                        <div class="checkbox">

-                          <label><input type="checkbox" value="1" name="only_x_prio" <?=($pushover_data['attributes']['only_x_prio']=="1") ? "checked" : null;?>> <?=$lang['user']['pushover_only_x_prio'];?></label>

-                        </div>

-                      </div>

-                    </div>

-                  </div>

-                </div>

-              </div>

-          <div class="btn-group" data-acl="<?=$_SESSION['acl']['pushover'];?>">

-              <a class="btn btn-sm btn-default" data-action="edit_selected" data-id="pushover" data-item="<?=htmlspecialchars($username);?>" data-api-url='edit/pushover' data-api-attr='{}' href="#"><?=$lang['user']['save'];?></a>

-              <a class="btn btn-sm btn-default" data-action="edit_selected" data-id="pushover-test" data-item="<?=htmlspecialchars($username);?>" data-api-url='edit/pushover-test' data-api-attr='{}' href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['user']['pushover_verify'];?></a>

-              <a id="pushover_delete" class="btn btn-sm btn-danger" data-action="edit_selected" data-id="pushover-delete" data-item="<?=htmlspecialchars($username);?>" data-api-url='edit/pushover' data-api-attr='{"delete":"true"}' href="#"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span> <?=$lang['user']['remove'];?></a>

-          </div>

-        </div>

-      </div>

-    </form>

-  </div>

-

-	<div role="tabpanel" class="tab-pane" id="AppPasswds">

-    <p><?=$lang['user']['app_hint'];?></p>

-		<div class="table-responsive">

-      <table class="table table-striped" id="app_passwd_table"></table>

-		</div>

-    <div class="mass-actions-user">

-      <div class="btn-group" data-acl="<?=$_SESSION['acl']['app_passwds'];?>">

-        <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="apppasswd" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>

-        <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>

-        <ul class="dropdown-menu">

-          <li><a data-action="edit_selected" data-id="apppasswd" data-api-url='edit/app-passwd' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>

-          <li><a data-action="edit_selected" data-id="apppasswd" data-api-url='edit/app-passwd' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>

-          <li role="separator" class="divider"></li>

-          <li><a data-action="delete_selected" data-id="apppasswd" data-api-url='delete/app-passwd' href="#"><?=$lang['mailbox']['remove'];?></a></li>

-        </ul>

-        <a class="btn btn-sm btn-success" href="#" data-toggle="modal" data-target="#addAppPasswdModal"><span class="glyphicon glyphicon-plus"></span> <?=$lang['user']['create_app_passwd'];?></a>

-      </div>

-    </div>

-		</div>

-

-	</div>

-  

-</div><!-- /container -->

-<div style="margin-bottom:200px;"></div>

-<?php

-}

-if (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] != 'admin') {

-require_once $_SERVER['DOCUMENT_ROOT'] . '/modals/user.php';

-?>

-<script type='text/javascript'>

-<?php

-$lang_user = json_encode($lang['user']);

-echo "var lang = ". $lang_user . ";\n";

-echo "var acl = '". json_encode($_SESSION['acl']) . "';\n";

-echo "var csrf_token = '". $_SESSION['CSRF']['TOKEN'] . "';\n";

-echo "var mailcow_cc_username = '". $_SESSION['mailcow_cc_username'] . "';\n";

-echo "var pagination_size = '". $PAGINATION_SIZE . "';\n";

-?>

-</script>

-<?php

-$js_minifier->add('/web/js/site/user.js');

-$js_minifier->add('/web/js/site/pwgen.js');

-require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/footer.inc.php';

-}

-else {

-	header('Location: /');

-	exit();

-}

-?>

+<?php
+require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/prerequisites.inc.php';
+if (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'domainadmin') {
+
+  /*
+  / DOMAIN ADMIN
+  */
+
+	require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/header.inc.php';
+	$_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
+  $tfa_data = get_tfa();
+  $fido2_data = fido2(array("action" => "get_friendly_names"));
+	$username = $_SESSION['mailcow_cc_username'];
+
+?>
+<div class="container">
+
+  <h3><?=$lang['user']['user_settings'];?></h3>
+  <div class="panel panel-default">
+  <div class="panel-heading"><?=$lang['user']['user_settings'];?></div>
+  <div class="panel-body">
+    <div class="row">
+      <div class="col-sm-offset-3 col-sm-9">
+        <p><a href="#pwChangeModal" data-toggle="modal">[<?=$lang['user']['change_password'];?>]</a></p>
+        <div class="last-login"></div>
+        <span class="clear-last-logins"><?=$lang['user']['clear_recent_successful_connections'];?></span>
+      </div>
+    </div>
+    <hr>
+
+    <? // TFA ?>
+    <div class="row">
+      <div class="col-sm-3 col-xs-5 text-right"><?=$lang['tfa']['tfa'];?></div>
+        <div class="col-sm-9 col-xs-7">
+          <p id="tfa_pretty"><?=$tfa_data['pretty'];?></p>
+            <div id="tfa_keys">
+              <?php
+              if (!empty($tfa_data['additional'])) {
+                foreach ($tfa_data['additional'] as $key_info) { ?>
+                <form style="display:inline;" method="post">
+                  <input type="hidden" name="unset_tfa_key" value="<?=$key_info['id'];?>" />
+                  <div class="label label-default"><i class="bi bi-key-fill"></i> <?=$key_info['key_id'];?> <a href="#" style="font-weight:bold;color:white" onClick='return confirm("<?=$lang['user']['delete_ays'];?>")?$(this).closest("form").submit():"";'>[<?=strtolower($lang['admin']['remove']);?>]</a></div>
+                </form>
+                <?php
+                }
+              }
+              ?>
+            </div>
+            <br>
+        </div>
+    </div>
+    <div class="row">
+      <div class="col-sm-3 col-xs-5 text-right"><?=$lang['tfa']['set_tfa'];?></div>
+      <div class="col-sm-9 col-xs-7">
+        <select id="selectTFA" class="selectpicker" title="<?=$lang['tfa']['select'];?>">
+          <option value="yubi_otp"><?=$lang['tfa']['yubi_otp'];?></option>
+          <option value="u2f"><?=$lang['tfa']['u2f'];?></option>
+          <option value="totp"><?=$lang['tfa']['totp'];?></option>
+          <option value="none"><?=$lang['tfa']['none'];?></option>
+        </select>
+      </div>
+    </div>
+
+    <hr>
+    <? // FIDO2 ?>
+    <div class="row">
+      <div class="col-sm-3 col-xs-5 text-right">
+        <p><i class="bi bi-shield-fill-check"></i> <?=$lang['fido2']['fido2_auth'];?></p>
+      </div>
+    </div>
+    <div class="row">
+      <div class="col-sm-3 col-xs-5 text-right"><?=$lang['fido2']['known_ids'];?>:</div>
+      <div class="col-sm-9 col-xs-7">
+          <div class="table-responsive">
+          <table class="table table-striped table-hover table-condensed" id="fido2_keys">
+            <tr>
+              <th>ID</th>
+              <th style="min-width:240px;text-align: right"><?=$lang['admin']['action'];?></th>
+            </tr>
+            <?php
+            if (!empty($fido2_data)) {
+              foreach ($fido2_data as $key_info) {
+            ?>
+            <tr>
+              <td>
+                <?=($_SESSION['fido2_cid'] == $key_info['cid']) ? '→ ' : NULL; ?><?=(!empty($key_info['fn']))?$key_info['fn']:$key_info['subject'];?>
+              </td>
+              <td style="min-width:240px;text-align: right">
+                <form style="display:inline;" method="post">
+                <input type="hidden" name="unset_fido2_key" value="<?=$key_info['cid'];?>" />
+                <div class="btn-group">
+                <a href="#" class="btn btn-xs btn-default" data-cid="<?=$key_info['cid'];?>" data-subject="<?=base64_encode($key_info['subject']);?>" data-toggle="modal" data-target="#fido2ChangeFn"><i class="bi bi-pencil-fill"></i> <?=strtolower($lang['fido2']['rename']);?></a>
+                <a href="#" onClick='return confirm("<?=$lang['user']['delete_ays'];?>")?$(this).closest("form").submit():"";' class="btn btn-xs btn-danger"><i class="bi bi-trash"></i> <?=strtolower($lang['admin']['remove']);?></a>
+                </form>
+                </div>
+              </td>
+            </tr>
+            <?php
+              }
+            }
+            ?>
+          </table>
+          </div>
+          <br>
+      </div>
+    </div>
+    <div class="row">
+      <div class="col-sm-offset-3 col-sm-9">
+        <button class="btn btn-sm btn-primary" id="register-fido2"><?=$lang['fido2']['set_fido2'];?></button>
+      </div>
+    </div>
+    <br>
+    <div class="row" id="status-fido2">
+      <div class="col-sm-3 col-xs-5 text-right"><?=$lang['fido2']['register_status'];?>:</div>
+      <div class="col-sm-9 col-xs-7">
+        <div id="fido2-alerts">-</div>
+      </div>
+      <br>
+    </div>
+
+  </div>
+  </div>
+</div>
+<?php
+}
+elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'user') {
+
+  /*
+  / USER
+  */
+
+  require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/header.inc.php';
+  $_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
+  $username = $_SESSION['mailcow_cc_username'];
+  $mailboxdata = mailbox('get', 'mailbox_details', $username);
+  $pushover_data = pushover('get', $username);
+  $tfa_data = get_tfa();
+  $fido2_data = fido2(array("action" => "get_friendly_names"));
+
+  $clientconfigstr = "host=" . urlencode($mailcow_hostname) . "&email=" . urlencode($username) . "&name=" . urlencode($mailboxdata['name']) . "&ui=" . urlencode(strtok($_SERVER['HTTP_HOST'], ':')) . "&port=" . urlencode($autodiscover_config['caldav']['port']);
+  if ($autodiscover_config['useEASforOutlook'] == 'yes')
+  $clientconfigstr .= "&outlookEAS=1";
+  if (file_exists('thunderbird-plugins/version.csv')) {
+    $fh = fopen('thunderbird-plugins/version.csv', 'r');
+    if ($fh) {
+      while (($row = fgetcsv($fh, 1000, ';')) !== FALSE) {
+        if ($row[0] == 'sogo-connector@inverse.ca') {
+          $clientconfigstr .= "&connector=" . urlencode($row[1]);
+        }
+      }
+      fclose($fh);
+    }
+  }
+?>
+<div class="container">
+
+  <!-- Nav tabs -->
+  <ul class="nav nav-tabs responsive-tabs" role="tablist">
+    <li class="dropdown active">
+      <a class="dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['user']['mailbox'];?><span class="caret"></span></a>
+      <ul class="dropdown-menu">
+        <li role="presentation" class="active" data-dont-remember="1"><a href="#tab-user-auth" aria-controls="tab-user-auth" role="tab" data-toggle="tab"><?=$lang['user']['mailbox_general'];?></a></li>
+        <li role="presentation"><a href="#tab-user-details" aria-controls="tab-config-fwdhosts" role="tab" data-toggle="tab"><?=$lang['user']['mailbox_details'];?></a></li>
+        <li role="presentation"><a href="#tab-user-settings" aria-controls="tab-config-f2b" role="tab" data-toggle="tab"><?=$lang['user']['mailbox_settings'];?></a></li>
+      </ul>
+    </li>
+    <li role="presentation"><a href="#SpamAliases" aria-controls="SpamAliases" role="tab" data-toggle="tab"><?=$lang['user']['spam_aliases'];?></a></li>
+    <li role="presentation"><a href="#Spamfilter" aria-controls="Spamfilter" role="tab" data-toggle="tab"><?=$lang['user']['spamfilter'];?></a></li>
+    <li role="presentation"><a href="#Syncjobs" aria-controls="Syncjobs" role="tab" data-toggle="tab"><?=$lang['user']['sync_jobs'];?></a></li>
+    <li role="presentation"><a href="#AppPasswds" aria-controls="AppPasswds" role="tab" data-toggle="tab"><?=$lang['user']['app_passwds'];?></a></li>
+    <li role="presentation"><a href="#Pushover" aria-controls="Pushover" role="tab" data-toggle="tab">Pushover API</a></li>
+  </ul>
+  <hr>
+
+  <div class="tab-content">
+
+  <div role="tabpanel" class="tab-pane active" id="tab-user-auth">
+    <div class="panel panel-default">
+      <div class="panel-heading"><?=$lang['user']['mailbox_general'];?></div>
+      <div class="panel-body">
+        <?php if (getenv('SKIP_SOGO') != "y") { ?>
+        <div class="row">
+          <div class="hidden-xs col-md-3 col-xs-5 text-right"></div>
+          <div class="col-md-3 col-xs-12">
+            <a target="_blank" href="/sogo-auth.php?login=<?=$username;?>" role="button" class="btn btn-default btn-block btn-xs-lg">
+              <i class="bi bi-inbox-fill"></i> <?=$lang['user']['open_webmail_sso'];?>
+            </a>
+          </div>
+        </div>
+        <hr>
+        <?php } ?>
+        <div class="row">
+          <div class="col-md-3 col-xs-12 text-right text-xs-left space20"><?=$lang['user']['in_use'];?>:</div>
+          <div class="col-md-5 col-xs-12">
+            <div class="progress">
+              <div class="progress-bar progress-bar-<?=$mailboxdata['percent_class'];?>" role="progressbar" aria-valuenow="<?=$mailboxdata['percent_in_use'];?>" aria-valuemin="0" aria-valuemax="100" style="min-width:2em;width: <?=$mailboxdata['percent_in_use'];?>%;">
+                <?=$mailboxdata['percent_in_use'];?>%
+              </div>
+            </div>
+            <p><?=formatBytes($mailboxdata['quota_used'], 2);?> / <?=($mailboxdata['quota'] == 0) ? '∞' : formatBytes($mailboxdata['quota'], 2);?><br><?=$mailboxdata['messages'];?> <?=$lang['user']['messages'];?></p>
+            <hr>
+            <p><a href="#pwChangeModal" data-toggle="modal"><i class="bi bi-pencil-fill"></i> <?=$lang['user']['change_password'];?></a></p>
+          </div>
+        </div>
+        <hr>
+        <? // FIDO2 ?>
+        <div class="row">
+          <div class="col-sm-3 col-xs-12 text-right text-xs-left">
+            <p><i class="bi bi-shield-fill-check"></i> <?=$lang['fido2']['fido2_auth'];?></p>
+          </div>
+        </div>
+        <div class="row">
+          <div class="col-sm-3 col-xs-12 text-right text-xs-left space20">
+          <?=$lang['fido2']['known_ids'];?>:
+          </div>
+          <div class="col-sm-9 col-xs-12">
+            <div class="table-responsive">
+            <table class="table table-striped table-hover table-condensed" id="fido2_keys">
+              <tr>
+                <th>ID</th>
+                <th style="min-width:240px;text-align: right"><?=$lang['admin']['action'];?></th>
+              </tr>
+              <?php
+              if (!empty($fido2_data)) {
+                foreach ($fido2_data as $key_info) {
+              ?>
+              <tr>
+                <td>
+                  <?=($_SESSION['fido2_cid'] == $key_info['cid']) ? '<i class="bi bi-unlock-fill"></i> ' : NULL; ?><?=(!empty($key_info['fn']))?$key_info['fn']:$key_info['subject'];?>
+                </td>
+                <td style="min-width:240px;text-align: right">
+                  <form style="display:inline;" method="post">
+                  <input type="hidden" name="unset_fido2_key" value="<?=$key_info['cid'];?>" />
+                  <div class="btn-group">
+                  <a href="#" class="btn btn-xs btn-default" data-cid="<?=$key_info['cid'];?>" data-subject="<?=base64_encode($key_info['subject']);?>" data-toggle="modal" data-target="#fido2ChangeFn"><i class="bi bi-pencil-fill"></i> <?=strtolower($lang['fido2']['rename']);?></a>
+                  <a href="#" onClick='return confirm("<?=$lang['user']['delete_ays'];?>")?$(this).closest("form").submit():"";' class="btn btn-xs btn-danger"><i class="bi bi-trash"></i> <?=strtolower($lang['admin']['remove']);?></a>
+                  </div>
+                  </form>
+                </td>
+              </tr>
+              <?php
+                }
+              }
+              ?>
+            </table>
+            </div>
+            <br>
+          </div>
+        </div>
+        <div class="row">
+          <div class="col-sm-offset-3 col-sm-9">
+            <button class="btn btn-sm btn-primary visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline" id="register-fido2"><?=$lang['fido2']['set_fido2'];?></button>
+          </div>
+        </div>
+        <br>
+        <div class="row" id="status-fido2">
+          <div class="col-sm-3 col-xs-5 text-right"><?=$lang['fido2']['register_status'];?>:</div>
+          <div class="col-sm-9 col-xs-7">
+            <div id="fido2-alerts">-</div>
+          </div>
+          <br>
+        </div>
+        <hr>
+        <div class="row">
+          <div class="col-md-3 col-xs-12 text-right text-xs-left space20"><i class="bi bi-file-earmark-text"></i> <?=$lang['user']['apple_connection_profile'];?>:</div>
+          <div class="col-md-9 col-xs-12">
+            <p><i class="bi bi-file-earmark-post"></i> <a href="/mobileconfig.php?only_email"><?=$lang['user']['email'];?></a> <small>IMAP, SMTP</small></p>
+            <p class="help-block"><?=$lang['user']['apple_connection_profile_mailonly'];?></p>
+            <?php if (getenv('SKIP_SOGO') != "y") { ?>
+            <p><i class="bi bi-file-earmark-post"></i> <a href="/mobileconfig.php"><?=$lang['user']['email_and_dav'];?></a> <small>IMAP, SMTP, Cal/CardDAV</small></p>
+            <p class="help-block"><?=$lang['user']['apple_connection_profile_complete'];?></p>
+            <?php } ?>
+          </div>
+        </div>
+        <hr>
+        <div class="row">
+          <div class="col-sm-offset-3 col-sm-9">
+            <?php if ($mailboxdata['attributes']['force_pw_update'] == "1"): ?>
+            <div class="alert alert-danger"><?=$lang['user']['force_pw_update'];?></div>
+            <?php endif; ?>
+            <p><a target="_blank" href="https://mailcow.github.io/mailcow-dockerized-docs/client/#<?=$clientconfigstr;?>">[<?=$lang['user']['client_configuration'];?>]</a></p>
+            <p><a href="#userFilterModal" data-toggle="modal">[<?=$lang['user']['show_sieve_filters'];?>]</a></p>
+            <hr>
+            <h4 class="recent-login-success pull-left"><?=$lang['user']['recent_successful_connections'];?></h4>
+            <div class="dropdown pull-left pull-xs-right">
+              <button class="btn btn-default btn-xs btn-xs-lg dropdown-toggle" type="button" id="history_sasl_days" data-toggle="dropdown"><?=$lang['user']['login_history'];?> <span class="caret"></span></button>
+              <ul class="dropdown-menu">
+                <li class="login-history active" data-days="1"><a href="#">1 <?=$lang['user']['day'];?></a></li>
+                <li class="login-history" data-days="7"><a href="#">1 <?=$lang['user']['week'];?></a></li>
+                <li class="login-history" data-days="14"><a href="#">2 <?=$lang['user']['weeks'];?></a></li>
+                <li class="login-history" data-days="31"><a href="#">1 <?=$lang['user']['month'];?></a></li>
+              </ul>
+            </div>
+            <div class="clearfix"></div>
+            <div class="last-login"></div>
+            <span class="clear-last-logins">
+              <?=$lang['user']['clear_recent_successful_connections'];?>
+            </span>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+
+  <div role="tabpanel" class="tab-pane" id="tab-user-details">
+    <div class="panel panel-default">
+      <div class="panel-heading"><?=$lang['user']['mailbox_details'];?></div>
+      <div class="panel-body">
+        <?php // Get user information about aliases
+        $user_get_alias_details = user_get_alias_details($username);
+        $user_domains[] = mailbox('get', 'mailbox_details', $username)['domain'];
+        $user_alias_domains = $user_get_alias_details['alias_domains'];
+        if (!empty($user_alias_domains)) {
+          $user_domains = array_merge($user_domains, $user_alias_domains);
+        }
+        ?>
+        <div class="row">
+          <div class="col-sm-4 col-md-3 col-xs-12 text-right text-xs-left"><i class="bi bi-pin-angle"></i> <?=$lang['user']['direct_aliases'];?>:
+            <p class="small"><?=$lang['user']['direct_aliases_desc'];?></p>
+          </div>
+          <div class="col-sm-8 col-md-9 col-xs-12">
+          <?php
+          if (empty($user_get_alias_details['direct_aliases'])) {
+            echo '<i class="bi bi-x-lg"></i>';
+          }
+          else {
+            foreach (array_filter($user_get_alias_details['direct_aliases']) as $direct_alias => $direct_alias_meta) {
+              (!empty($direct_alias_meta['public_comment'])) ?
+                printf('%s &mdash; <i class="bi bi-chat-left"></i> %s<br>', $direct_alias, $direct_alias_meta['public_comment']) :
+                printf('%s<br>', $direct_alias);
+            }
+          }
+          ?>
+          </div>
+        </div>
+        <br>
+        <div class="row">
+          <div class="col-sm-4 col-md-3 col-xs-12 text-right text-xs-left"><i class="bi bi-share"></i> <?=$lang['user']['shared_aliases'];?>:
+            <p class="small"><?=$lang['user']['shared_aliases_desc'];?></p>
+          </div>
+          <div class="col-sm-8 col-md-9 col-xs-12">
+          <?php
+          if (empty($user_get_alias_details['shared_aliases'])) {
+            echo '<i class="bi bi-x-lg"></i>';
+          }
+          else {
+            foreach (array_filter($user_get_alias_details['shared_aliases']) as $shared_alias => $shared_alias_meta) {
+              (!empty($shared_alias_meta['public_comment'])) ?
+                printf('%s &mdash; <span class="bg-info">%s</span><br>', $shared_alias, $shared_alias_meta['public_comment']) :
+                printf('%s<br>', $shared_alias);
+            }
+          }
+          ?>
+          </div>
+        </div>
+        <hr>
+        <div class="row">
+          <div class="col-sm-4 col-md-3 col-xs-12 text-right text-xs-left space20"><?=$lang['user']['aliases_also_send_as'];?>:</div>
+          <div class="col-sm-8 col-md-9 col-xs-12">
+          <p><?=($user_get_alias_details['aliases_also_send_as'] == '*') ? $lang['user']['sender_acl_disabled'] : ((empty($user_get_alias_details['aliases_also_send_as'])) ? '<i class="bi bi-x-lg"></i>' : $user_get_alias_details['aliases_also_send_as']);?></p>
+          </div>
+        </div>
+        <div class="row">
+          <div class="col-sm-4 col-md-3 col-xs-12 text-right text-xs-left space20"><?=$lang['user']['aliases_send_as_all'];?>:</div>
+          <div class="col-sm-8 col-md-9 col-xs-12">
+          <p><?=(empty($user_get_alias_details['aliases_send_as_all'])) ? '<i class="bi bi-x-lg"></i>' : '' ;?></p>
+          </div>
+        </div>
+        <div class="row">
+          <div class="col-sm-4 col-md-3 col-xs-12 text-right text-xs-left space20"><?=$lang['user']['is_catch_all'];?>:</div>
+          <div class="col-sm-8 col-md-9 col-xs-12">
+          <p><?=(empty($user_get_alias_details['is_catch_all'])) ? '<i class="bi bi-x-lg"></i>' : '' ;?></p>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+
+  <div role="tabpanel" class="tab-pane" id="tab-user-settings">
+    <div class="panel panel-default">
+      <div class="panel-heading"><?=$lang['user']['mailbox_settings'];?></div>
+      <div class="panel-body">
+        <?php
+        // Show tagging options
+        $get_tagging_options = mailbox('get', 'delimiter_action', $username);
+        ?>
+        <div class="row">
+          <div class="col-sm-3 col-xs-12 text-right text-xs-left text-xs-bold space20"><?=$lang['user']['tag_handling'];?>:</div>
+          <div class="col-sm-9 col-xs-12">
+          <div class="btn-group" data-acl="<?=$_SESSION['acl']['delimiter_action'];?>">
+            <button type="button" class="btn btn-sm btn-xs-third visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default <?=($get_tagging_options == "subfolder") ? 'active' : null; ?>"
+              data-action="edit_selected"
+              data-item="<?= htmlentities($username); ?>"
+              data-id="delimiter_action"
+              data-api-url='edit/delimiter_action'
+              data-api-attr='{"tagged_mail_handler":"subfolder"}'><?=$lang['user']['tag_in_subfolder'];?></button>
+            <button type="button" class="btn btn-sm btn-xs-third visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default <?=($get_tagging_options == "subject") ? 'active' : null; ?>"
+              data-action="edit_selected"
+              data-item="<?= htmlentities($username); ?>"
+              data-id="delimiter_action"
+              data-api-url='edit/delimiter_action'
+              data-api-attr='{"tagged_mail_handler":"subject"}'><?=$lang['user']['tag_in_subject'];?></button>
+            <button type="button" class="btn btn-sm btn-xs-third visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default <?=($get_tagging_options == "none") ? 'active' : null; ?>"
+              data-action="edit_selected"
+              data-item="<?= htmlentities($username); ?>"
+              data-id="delimiter_action"
+              data-api-url='edit/delimiter_action'
+              data-api-attr='{"tagged_mail_handler":"none"}'><?=$lang['user']['tag_in_none'];?></button>
+              <div class="clearfix visible-xs"></div>
+          </div>
+          <p class="help-block"><?=$lang['user']['tag_help_explain'];?></p>
+          <p class="help-block"><?=$lang['user']['tag_help_example'];?></p>
+          </div>
+        </div>
+        <?php
+        // Show TLS policy options
+        $get_tls_policy = mailbox('get', 'tls_policy', $username);
+        ?>
+        <div class="row">
+          <div class="col-sm-3 col-xs-12 text-right text-xs-left text-xs-bold space20"><?=$lang['user']['tls_policy'];?>:</div>
+          <div class="col-sm-9 col-xs-12">
+          <div class="btn-group" data-acl="<?=$_SESSION['acl']['tls_policy'];?>">
+            <button type="button" class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default <?=($get_tls_policy['tls_enforce_in'] == "1") ? "active" : null;?>"
+              data-action="edit_selected"
+              data-item="<?= htmlentities($username); ?>"
+              data-id="tls_policy"
+              data-api-url='edit/tls_policy'
+              data-api-attr='{"tls_enforce_in":<?=($get_tls_policy['tls_enforce_in'] == "1") ? "0" : "1";?>}'><?=$lang['user']['tls_enforce_in'];?></button>
+            <button type="button" class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default <?=($get_tls_policy['tls_enforce_out'] == "1") ? "active" : null;?>"
+              data-action="edit_selected"
+              data-item="<?= htmlentities($username); ?>"
+              data-id="tls_policy"
+              data-api-url='edit/tls_policy'
+              data-api-attr='{"tls_enforce_out":<?=($get_tls_policy['tls_enforce_out'] == "1") ? "0" : "1";?>}'><?=$lang['user']['tls_enforce_out'];?></button>
+              <div class="clearfix visible-xs"></div>
+          </div>
+          <p class="help-block"><?=$lang['user']['tls_policy_warning'];?></p>
+          </div>
+        </div>
+        <?php
+        // Show quarantine_notification options
+        $quarantine_notification = mailbox('get', 'quarantine_notification', $username);
+        $quarantine_category = mailbox('get', 'quarantine_category', $username);
+        ?>
+        <div class="row">
+          <div class="col-sm-3 col-xs-12 text-right text-xs-left text-xs-bold space20"><?=$lang['user']['quarantine_notification'];?>:</div>
+          <div class="col-sm-9 col-xs-12">
+          <div class="btn-group" data-acl="<?=$_SESSION['acl']['quarantine_notification'];?>">
+            <button type="button" class="btn btn-sm btn-xs-quart visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default <?=($quarantine_notification == "never") ? "active" : null;?>"
+              data-action="edit_selected"
+              data-item="<?= htmlentities($username); ?>"
+              data-id="quarantine_notification"
+              data-api-url='edit/quarantine_notification'
+              data-api-attr='{"quarantine_notification":"never"}'><?=$lang['user']['never'];?></button>
+            <button type="button" class="btn btn-sm btn-xs-quart visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default <?=($quarantine_notification == "hourly") ? "active" : null;?>"
+              data-action="edit_selected"
+              data-item="<?= htmlentities($username); ?>"
+              data-id="quarantine_notification"
+              data-api-url='edit/quarantine_notification'
+              data-api-attr='{"quarantine_notification":"hourly"}'><?=$lang['user']['hourly'];?></button>
+            <button type="button" class="btn btn-sm btn-xs-quart visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default <?=($quarantine_notification == "daily") ? "active" : null;?>"
+              data-action="edit_selected"
+              data-item="<?= htmlentities($username); ?>"
+              data-id="quarantine_notification"
+              data-api-url='edit/quarantine_notification'
+              data-api-attr='{"quarantine_notification":"daily"}'><?=$lang['user']['daily'];?></button>
+            <button type="button" class="btn btn-sm btn-xs-quart visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default <?=($quarantine_notification == "weekly") ? "active" : null;?>"
+              data-action="edit_selected"
+              data-item="<?= htmlentities($username); ?>"
+              data-id="quarantine_notification"
+              data-api-url='edit/quarantine_notification'
+              data-api-attr='{"quarantine_notification":"weekly"}'><?=$lang['user']['weekly'];?></button>
+              <div class="clearfix visible-xs"></div>
+          </div>
+          <p class="help-block"><?=$lang['user']['quarantine_notification_info'];?></p>
+          </div>
+        </div>
+        <div class="row">
+          <div class="col-sm-3 col-xs-12 text-right text-xs-left text-xs-bold space20"><?=$lang['user']['quarantine_category'];?>:</div>
+          <div class="col-sm-9 col-xs-12">
+          <div class="btn-group" data-acl="<?=$_SESSION['acl']['quarantine_category'];?>">
+            <button type="button" class="btn btn-sm btn-xs-third visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default <?=($quarantine_category == "reject") ? "active" : null;?>"
+              data-action="edit_selected"
+              data-item="<?= htmlentities($username); ?>"
+              data-id="quarantine_category"
+              data-api-url='edit/quarantine_category'
+              data-api-attr='{"quarantine_category":"reject"}'><?=$lang['user']['q_reject'];?></button>
+            <button type="button" class="btn btn-sm btn-xs-third visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default <?=($quarantine_category == "add_header") ? "active" : null;?>"
+              data-action="edit_selected"
+              data-item="<?= htmlentities($username); ?>"
+              data-id="quarantine_category"
+              data-api-url='edit/quarantine_category'
+              data-api-attr='{"quarantine_category":"add_header"}'><?=$lang['user']['q_add_header'];?></button>
+            <button type="button" class="btn btn-sm btn-xs-third visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default <?=($quarantine_category == "all") ? "active" : null;?>"
+              data-action="edit_selected"
+              data-item="<?= htmlentities($username); ?>"
+              data-id="quarantine_category"
+              data-api-url='edit/quarantine_category'
+              data-api-attr='{"quarantine_category":"all"}'><?=$lang['user']['q_all'];?></button>
+              <div class="clearfix visible-xs"></div>
+          </div>
+          <p class="help-block"><?=$lang['user']['quarantine_category_info'];?></p>
+          </div>
+        </div>
+        <?php if (getenv('SKIP_SOGO') != "y") { ?>
+        <hr>
+        <div class="row">
+          <div class="col-sm-3 col-xs-12 text-right text-xs-left text-xs-bold space20"><?=$lang['user']['eas_reset'];?>:</div>
+          <div class="col-sm-9 col-xs-12">
+          <button class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" data-acl="<?=$_SESSION['acl']['eas_reset'];?>" data-action="delete_selected" data-text="<?=$lang['user']['eas_reset'];?>?" data-item="<?= htmlentities($username); ?>" data-id="eas_cache" data-api-url='delete/eas_cache' href="#"><?=$lang['user']['eas_reset_now'];?></button>
+          <p class="help-block"><?=$lang['user']['eas_reset_help'];?></p>
+          </div>
+        </div>
+        <div class="row">
+          <div class="col-sm-3 col-xs-12 text-right text-xs-left text-xs-bold space20"><?=$lang['user']['sogo_profile_reset'];?>:</div>
+          <div class="col-sm-9 col-xs-12">
+          <button class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" data-acl="<?=$_SESSION['acl']['sogo_profile_reset'];?>" data-action="delete_selected" data-text="<?=$lang['user']['sogo_profile_reset'];?>?" data-item="<?= htmlentities($username); ?>" data-id="sogo_profile" data-api-url='delete/sogo_profile' href="#"><?=$lang['user']['sogo_profile_reset_now'];?></button>
+          <p class="help-block"><?=$lang['user']['sogo_profile_reset_help'];?></p>
+          </div>
+        </div>
+        <?php } ?>
+      </div>
+    </div>
+  </div>
+
+	<div role="tabpanel" class="tab-pane" id="SpamAliases">
+    <div class="row">
+      <div class="col-md-12 col-sm-12 col-xs-12">
+        <div class="table-responsive">
+          <table class="table table-striped" id="tla_table"></table>
+        </div>
+      </div>
+		</div>
+    <div class="mass-actions-user">
+      <div class="btn-group" data-acl="<?=$_SESSION['acl']['spam_alias'];?>">
+        <div class="btn-group">
+          <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="toggle_multi_select_all" data-id="tla" href="#"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></a>
+          <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
+          <ul class="dropdown-menu">
+            <li><a data-action="edit_selected" data-id="tla" data-api-url='edit/time_limited_alias' data-api-attr='{"validity":"1"}' href="#"><?=$lang['user']['expire_in'];?> 1 <?=$lang['user']['hour'];?></a></li>
+            <li><a data-action="edit_selected" data-id="tla" data-api-url='edit/time_limited_alias' data-api-attr='{"validity":"24"}' href="#"><?=$lang['user']['expire_in'];?> 1 <?=$lang['user']['day'];?></a></li>
+            <li><a data-action="edit_selected" data-id="tla" data-api-url='edit/time_limited_alias' data-api-attr='{"validity":"168"}' href="#"><?=$lang['user']['expire_in'];?> 1 <?=$lang['user']['week'];?></a></li>
+            <li><a data-action="edit_selected" data-id="tla" data-api-url='edit/time_limited_alias' data-api-attr='{"validity":"744"}' href="#"><?=$lang['user']['expire_in'];?> 1 <?=$lang['user']['month'];?></a></li>
+            <li><a data-action="edit_selected" data-id="tla" data-api-url='edit/time_limited_alias' data-api-attr='{"validity":"8760"}' href="#"><?=$lang['user']['expire_in'];?> 1 <?=$lang['user']['year'];?></a></li>
+            <li><a data-action="edit_selected" data-id="tla" data-api-url='edit/time_limited_alias' data-api-attr='{"validity":"87600"}' href="#"><?=$lang['user']['expire_in'];?> 10 <?=$lang['user']['years'];?></a></li>
+            <li role="separator" class="divider"></li>
+            <li><a data-action="delete_selected" data-id="tla" data-api-url='delete/time_limited_alias' href="#"><?=$lang['mailbox']['remove'];?></a></li>
+          </ul>
+          <div class="clearfix visible-xs-block"></div>
+        </div>
+        <div class="btn-group">
+          <a class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success dropdown-toggle" data-toggle="dropdown" href="#"><i class="bi bi-plus-lg"></i> <?=$lang['user']['alias_create_random'];?>, 1 <?=$lang['user']['year'];?> <span class="caret"></span></a>
+          <ul class="dropdown-menu">
+          <?php
+          foreach($user_domains as $domain) {
+          ?>
+            <li>
+              <a data-action="add_item" data-api-url='add/time_limited_alias' data-api-attr='{"domain":"<?=$domain;?>"}' href="#">
+                @ <?=$domain;?>
+              </a>
+            </li>
+          <?php
+          }
+          ?>
+          </ul>
+        </div>
+      </div>
+    </div>
+	</div>
+
+	<div role="tabpanel" class="tab-pane" id="Spamfilter">
+    <h4><?=$lang['user']['spamfilter_behavior'];?></h4>
+    <div class="row">
+      <div class="col-sm-12">
+        <form class="form-horizontal" role="form" data-id="spam_score" method="post">
+          <div class="form-group">
+            <div class="col-lg-8 col-sm-12">
+              <div id="spam_score" data-provide="slider" data-acl="<?=$_SESSION['acl']['spam_score'];?>"></div>
+              <input id="spam_score_value" name="spam_score" type="hidden" value="<?=mailbox('get', 'spam_score', $username);?>">
+              <ul class="list-group list-group-flush">
+                <li class="list-group-item"><span class="label label-ham spam-ham-score"></span> <?=$lang['user']['spamfilter_green'];?></li>
+                <li class="list-group-item"><span class="label label-spam spam-spam-score"></span> <?=$lang['user']['spamfilter_yellow'];?></li>
+                <li class="list-group-item"><span class="label label-reject spam-reject-score"></span> <?=$lang['user']['spamfilter_red'];?></li>
+              </ul>
+            </div>
+          </div>
+          <div class="btn-group" data-acl="<?=$_SESSION['acl']['spam_score'];?>">
+            <a type="button" class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected"
+            data-item="<?= htmlentities($username); ?>"
+            data-id="spam_score"
+            data-api-url='edit/spam-score'
+            data-api-attr='{}'><i class="bi bi-save"></i> <?=$lang['user']['save_changes'];?></a>
+            <a type="button" class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" data-action="edit_selected"
+            data-item="<?= htmlentities($username); ?>"
+            data-id="spam_score_reset"
+            data-api-url='edit/spam-score'
+            data-api-attr='{"spam_score":"default"}'><?=$lang['user']['spam_score_reset'];?></a>
+          </div>
+        </form>
+      </div>
+    </div>
+		<hr>
+		<div class="row">
+			<div class="col-sm-6">
+				<h4><?=$lang['user']['spamfilter_wl'];?></h4>
+        <p><?=$lang['user']['spamfilter_wl_desc'];?></p>
+        <form class="form-inline space20" data-id="add_wl_policy_mailbox">
+          <div class="input-group" data-acl="<?=$_SESSION['acl']['spam_policy'];?>">
+            <input type="text" class="form-control" name="object_from" placeholder="*@example.org" required>
+            <span class="input-group-btn">
+              <button class="btn btn-default" data-action="add_item" data-id="add_wl_policy_mailbox" data-api-url='add/mailbox-policy' data-api-attr='{"username":<?= json_encode($username); ?>,"object_list":"wl"}' href="#"><i class="bi bi-plus-lg"></i> <?=$lang['user']['spamfilter_table_add'];?></button>
+            </span>
+          </div>
+        </form>
+        <div class="table-responsive">
+          <table class="table table-striped table-condensed" id="wl_policy_mailbox_table"></table>
+        </div>
+        <div class="mass-actions-user">
+          <div class="btn-group" data-acl="<?=$_SESSION['acl']['spam_policy'];?>">
+            <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="toggle_multi_select_all" data-id="policy_wl_mailbox" href="#"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></a>
+            <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-danger" data-action="delete_selected" data-id="policy_wl_mailbox" data-api-url='delete/mailbox-policy' href="#"><?=$lang['mailbox']['remove'];?></a>
+            <div class="clearfix visible-xs-block"></div>
+          </div>
+        </div>
+      </div>
+			<div class="col-sm-6">
+				<h4><?=$lang['user']['spamfilter_bl'];?></h4>
+        <p><?=$lang['user']['spamfilter_bl_desc'];?></p>
+        <form class="form-inline space20" data-id="add_bl_policy_mailbox">
+          <div class="input-group" data-acl="<?=$_SESSION['acl']['spam_policy'];?>">
+            <input type="text" class="form-control" name="object_from" placeholder="*@example.org" required>
+            <span class="input-group-btn">
+              <button class="btn btn-default" data-action="add_item" data-id="add_bl_policy_mailbox" data-api-url='add/mailbox-policy' data-api-attr='{"username":<?= json_encode($username); ?>,"object_list":"bl"}' href="#"><i class="bi bi-plus-lg"></i> <?=$lang['user']['spamfilter_table_add'];?></button>
+            </span>
+          </div>
+        </form>
+        <div class="table-responsive">
+          <table class="table table-striped table-condensed" id="bl_policy_mailbox_table"></table>
+        </div>
+        <div class="mass-actions-user">
+          <div class="btn-group" data-acl="<?=$_SESSION['acl']['spam_policy'];?>">
+            <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="toggle_multi_select_all" data-id="policy_bl_mailbox" href="#"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></a>
+            <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-danger" data-action="delete_selected" data-id="policy_bl_mailbox" data-api-url='delete/mailbox-policy' href="#"><?=$lang['mailbox']['remove'];?></a>
+            <div class="clearfix visible-xs-block"></div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+
+	<div role="tabpanel" class="tab-pane" id="Syncjobs">
+		<div class="table-responsive">
+      <table class="table table-striped" id="sync_job_table"></table>
+		</div>
+    <div class="mass-actions-user">
+      <div class="btn-group" data-acl="<?=$_SESSION['acl']['syncjobs'];?>">
+	    <div class="btn-group">
+        <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="toggle_multi_select_all" data-id="syncjob" href="#"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></a>
+        <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
+        <ul class="dropdown-menu">
+          <li><a data-action="edit_selected" data-id="syncjob" data-api-url='edit/syncjob' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
+          <li><a data-action="edit_selected" data-id="syncjob" data-api-url='edit/syncjob' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>
+          <li role="separator" class="divider"></li>
+          <li><a data-action="delete_selected" data-id="syncjob" data-api-url='delete/syncjob' href="#"><?=$lang['mailbox']['remove'];?></a></li>
+        </ul>
+        <div class="clearfix visible-xs"></div>
+	    </div>
+	    <div class="btn-group">
+        <a class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" href="#" data-toggle="modal" data-target="#addSyncJobModal"><i class="bi bi-plus-lg"></i> <?=$lang['user']['create_syncjob'];?></a>
+	    </div>
+      </div>
+    </div>
+  </div>
+
+	<div role="tabpanel" class="tab-pane" id="AppPasswds">
+	    <p><?=$lang['user']['app_hint'];?></p>
+		<div class="table-responsive">
+	      <table class="table table-striped" id="app_passwd_table"></table>
+		</div>
+	    <div class="mass-actions-user">
+	      <div class="btn-group" data-acl="<?=$_SESSION['acl']['app_passwds'];?>">
+		    <div class="btn-group">
+	          <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" id="toggle_multi_select_all" data-id="apppasswd" href="#"><i class="bi bi-check-all"></i> <?=$lang['mailbox']['toggle_all'];?></a>
+	          <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
+	          <ul class="dropdown-menu">
+	            <li><a data-action="edit_selected" data-id="apppasswd" data-api-url='edit/app-passwd' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
+	            <li><a data-action="edit_selected" data-id="apppasswd" data-api-url='edit/app-passwd' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>
+	            <li role="separator" class="divider"></li>
+	            <li><a data-action="delete_selected" data-id="apppasswd" data-api-url='delete/app-passwd' href="#"><?=$lang['mailbox']['remove'];?></a></li>
+	          </ul>
+	          <div class="clearfix visible-xs"></div>
+		    </div>
+		    <div class="btn-group">
+	          <a class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" href="#" data-toggle="modal" data-target="#addAppPasswdModal"><i class="bi bi-plus-lg"></i> <?=$lang['user']['create_app_passwd'];?></a>
+		    </div>
+	      </div>
+	    </div>
+	</div>
+
+	<div role="tabpanel" class="tab-pane" id="Pushover">
+    <form data-id="pushover" class="form well" method="post">
+      <input type="hidden" value="0" name="evaluate_x_prio">
+      <input type="hidden" value="0" name="only_x_prio">
+      <input type="hidden" value="0" name="active">
+      <div class="row">
+        <div class="col-sm-1">
+          <p class="help-block"><a href="https://pushover.net" target="_blank"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAACglBMVEUAAAAAAAEAAAAilecFGigAAAAAAAAAAAAAAAANj+c3n+Ypm+oeYI4KWI4MieAtkdQbleoJcLcjmeswmN4Rit4KgdMKUYQJKUAQSnILL0kMNlMSTngimOoNPF0hlOQBBgkNOlkRS3MHIjUhk+IPf8wKLUYsjM0AAAASTngAAAAAAAAPfckbdLIbdrYUWIgegsgce70knfEAAAAknfENOVkGHi8YaaIjnvEdgMUhkuAQSG8aca0hleQUh9YLjOM4nOEMgtMcbaYWa6YemO02ltkKhNktgLodYZEPXJEyi8kKesktfLUzj84cWYMiluckZ5YJXJYeW4Y0k9YKfs4yjs0pc6YHZaUviskLfMkqmugak+cqkNcViNcqeK4Iaq4XRmYGPmYMKDsFJTstgr0LdL0ti84CCQ4BCQ4Qgc8rlt8XjN8shcQsi8wZSGgEP2cRMEUDKkUAAAD///8dmvEamfExo/EXmPEWl/ERlvElnvEsofEjnfETl/Enn/Ezo/E4pvEvovEfm/E1pPEzpPEvofEOlfEpoPEamPEQlfEYmfE6p/EgnPEVlvEroPE3pfE2pfENk/Ern/E3pPEcmfEfmvEnnvBlufT6/P0soPAknPDd7/zs9vzo9PxBqfItofAqoPD9/f3B4/q43/mx2/l/xfZ6w/Vxv/VtvfVgt/RXtPNTsfNEq/L3+/31+v3a7fvR6vvH5fqs2vmc0/jx+P3v9/3h8fzW7PvV7PvL5/q13fmo1/mh1PiY0fiNy/aHyfZ2wfVou/Vdt/RPsPM3oeoQkuowmeAgjdgcgMQbeLrw9/3k8vy74Pm63/mX0PdYtfNNr/Ikm+4wnOchkuAVjOAfdrMVcrOdoJikAAAAcnRSTlMAIQ8IzzweFwf+/fvw8P79+/Xt7e3p6eji4d7U08y8qZyTiIWDgn53bWxqaWBKQ0JBOjUwMCkoJCEfHBkT/vz8/Pv7+vr69/b29PTy7ezm5ubm5N7e29vQ0M/Pv7+4uLW1pqaWloWDg3x7e21mUVFFRUXdPracAAAEbElEQVRIx4WUZbvaQBCFF+ru7u7u7u7u7t4mvVwSoBC0JIUCLRQolLq7u7vr/+nMLkmQyvlwyfPcd86e3ZldUqwyQ/p329J+XfutPQYOLUP+q55rFtQJRvY79+xxlZTUWbKpz7/xrrMr2+3BoNPpdLn2lJQ4HEeqLOr1d7z7XNkesQed4A848G63Oy4Gmg/6Mz542QvZbqe8C/Ig73CLYiYTrtLmT3zfqbIcAR7y4wIqH/B6M9Fo0+Ldb6sM9ph/v4ozPuz12mxRofaAAr7jCNkuoz/jNf9AGHibkBCm51fsGKvxsAGWx4H+jBcEi6V2birDpCL/9Klrd1KHbiSvPWP8V0tTnTfO03iXi57P6WNHOVUf44IFdFDRz6pV5fw8Zy5z3JVH5+R48OwxqDiGvKJIY9R+9JsCuJ5HPg74OVEMpz+nbdEPUHEWeEk6IDUnTC1l5r+f8uffc0cfxc8fS17kLso24SwUPFDA/6DE82xKDOPliJ7n/GGOOyWK9zD9CdjvOfg9Dv6AH+AX04LW9gj2i8W/APx1UbxwCAu+wPmcpgUKL/EHdvtq4uwaZwCuznPJVY5LHhED15G/isd5Hz4eKui/e/du02YoKFeD5mHzHIN/nxEDe25gQQwKorAid04CfyzwL4XutXvl1Pt1guMOwwKPkU8mYIFT8JHK+vv8prpDScUVL+j8s3lOctw1GIhbWHAS+HgKPk7xPM/4UtNAYmzizJkf6NgTb/gM8jePQLsewMdthS3g95tMpT1IhVm6v1s8fYmLeb13Odwp8Fh5KY048y/d14WUrwrb1e/X/rNp73nkD8kWS+wi/MZ4XuetG4mhKubJm3/WNEvi8SHwB56nPKjUam0LBdp9ARwupFemTYudvgN/L1+A/Ko/LGBuS8pPy+YR1fuCTWNKnUyoeUyYx2o2dyEVGmr5xTD42xzvkD16+Pb9WIIH6fmt1r3mbsTY7Bvw+n23naT8BUWh86bz6G/e259UXPUK3gfAxQDlo7Rpx3Geqb2e3wp83SGEdKpB7zvwYbzvT2n65xLwbH6YP+M9C8vA8E1wxLU8gkCbdhXGUyrMgwVrcbzLHonr78lzDvWM3q/C/HtDlXoSUIe3YkblhRPIX4E8Oo/9siLv8dRjV7SBlkdgTXvKS7nzsA/9AfeEuhKq9T8zWIDv1Sd6ETAP4D6/H/1V+1BojvruNa4SZXz4JhY84dV5MOF5agUvu5OsOo+KRpG30KalEnoeDccFlutPZYs38D5n3zcpr1/0fBhfb3DOY1z2tSAgLxWezz6zuoHhfUmOejf6blHQH/sFuJYfcMZX307ytKvRa3ifoV/586P5j+tICtS77BuJxzxYAPZsntX8k3eSIhlajK4p8b7iefCEKs03kD/I2LnxL9ovH+43y4fAv1YrI/mzDBsavAX/UppfzVOrZT/ydxk6lJ047MfLfVbcb6hS9ZEzWxekKQ5WrtPqZg3rV6tWrX6Tle3KQZj/q6KxQnmDoXwFY0VSrN9e8FRXBCTAvwAAAABJRU5ErkJggg==" class="img img-fluid"></a></p>
+        </div>
+        <div class="col-sm-10">
+              <p class="help-block"><?=sprintf($lang['user']['pushover_info'], $username);?></p>
+              <p class="help-block"><?=$lang['user']['pushover_vars'];?>: <code>{SUBJECT}</code>, <code>{SENDER}</code></p>
+              <div class="form-group">
+                <div class="row">
+                  <div class="col-sm-6">
+                    <div class="form-group">
+                      <label for="token">API Token/Key (Application)</label>
+                      <input type="text" class="form-control" name="token" maxlength="30" value="<?=$pushover_data['token'];?>" required>
+                    </div>
+                  </div>
+                  <div class="col-sm-6">
+                    <div class="form-group">
+                      <label for="key">User/Group Key</label>
+                      <input type="text" class="form-control" name="key" maxlength="30" value="<?=$pushover_data['key'];?>" required>
+                    </div>
+                  </div>
+                  <div class="col-sm-6">
+                    <div class="form-group">
+                      <label for="title"><?=$lang['user']['pushover_title'];?></label>
+                      <input type="text" class="form-control" name="title" value="<?=$pushover_data['title'];?>" placeholder="Mail">
+                    </div>
+                  </div>
+                  <div class="col-sm-6">
+                    <div class="form-group">
+                      <label for="text"><?=$lang['user']['pushover_text'];?></label>
+                      <input type="text" class="form-control" name="text" value="<?=$pushover_data['text'];?>" placeholder="You've got mail 📧">
+                    </div>
+                  </div>
+                  <div class="col-sm-12">
+                    <div class="form-group">
+                      <label for="text"><?=$lang['user']['pushover_sender_array'];?></label>
+                      <input type="text" class="form-control" name="senders" value="<?=$pushover_data['senders'];?>" placeholder="sender1@example.com, sender2@example.com">
+                    </div>
+                  </div>
+                  <div class="col-sm-12">
+                    <div class="checkbox">
+                    <label><input type="checkbox" value="1" name="active" <?=($pushover_data['active']=="1") ? "checked" : null;?>> <?=$lang['user']['active'];?></label>
+                    </div>
+                  </div>
+                  <div class="col-sm-12">
+                    <legend style="cursor:pointer;margin-top:10px" data-target="#po_advanced" unselectable="on" data-toggle="collapse">
+                      <i style="font-size:10pt;" class="bi bi-plus-square"></i> <?=$lang['user']['advanced_settings'];?>
+                    </legend>
+                  </div>
+                  <div class="col-sm-12">
+                    <div id="po_advanced" class="collapse">
+                      <div class="form-group">
+                        <label for="text"><?=$lang['user']['pushover_sender_regex'];?></label>
+                        <input type="text" class="form-control" name="senders_regex" value="<?=$pushover_data['senders_regex'];?>" placeholder="/(.*@example\.org$|^foo@example\.com$)/i" regex="true">
+                        <div class="checkbox">
+                          <label><input type="checkbox" value="1" name="evaluate_x_prio" <?=($pushover_data['attributes']['evaluate_x_prio']=="1") ? "checked" : null;?>> <?=$lang['user']['pushover_evaluate_x_prio'];?></label>
+                        </div>
+                        <div class="checkbox">
+                          <label><input type="checkbox" value="1" name="only_x_prio" <?=($pushover_data['attributes']['only_x_prio']=="1") ? "checked" : null;?>> <?=$lang['user']['pushover_only_x_prio'];?></label>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+              </div>
+            <div class="btn-group mass-actions-user" data-acl="<?=$_SESSION['acl']['pushover'];?>">
+              <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-success" data-action="edit_selected" data-id="pushover" data-item="<?=htmlspecialchars($username);?>" data-api-url='edit/pushover' data-api-attr='{}' href="#"><?=$lang['user']['save'];?></a>
+              <a class="btn btn-sm btn-xs-half visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-default" data-action="edit_selected" data-id="pushover-test" data-item="<?=htmlspecialchars($username);?>" data-api-url='edit/pushover-test' data-api-attr='{}' href="#"><i class="bi bi-check-all"></i> <?=$lang['user']['pushover_verify'];?></a>
+              <div class="clearfix visible-xs"></div>
+              <a id="pushover_delete" class="btn btn-sm visible-xs-block visible-sm-inline visible-md-inline visible-lg-inline btn-danger" data-action="edit_selected" data-id="pushover-delete" data-item="<?=htmlspecialchars($username);?>" data-api-url='edit/pushover' data-api-attr='{"delete":"true"}' href="#"><i class="bi bi-trash"></i> <?=$lang['user']['remove'];?></a>
+            </div>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div>
+</div>
+</div><!-- /container -->
+<div style="margin-bottom:200px;"></div>
+<?php
+}
+if (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] != 'admin') {
+require_once $_SERVER['DOCUMENT_ROOT'] . '/modals/user.php';
+?>
+<script type='text/javascript'>
+<?php
+$lang_user = json_encode($lang['user']);
+echo "var lang = " . $lang_user . ";\n";
+echo "var user_spam_score = [" . mailbox('get', 'spam_score', $username) . "];\n";
+echo "var acl = '" . json_encode($_SESSION['acl']) . "';\n";
+echo "var csrf_token = '" . $_SESSION['CSRF']['TOKEN'] . "';\n";
+echo "var mailcow_cc_username = '" . $_SESSION['mailcow_cc_username'] . "';\n";
+echo "var pagination_size = '" . $PAGINATION_SIZE . "';\n";
+?>
+</script>
+<?php
+$js_minifier->add('/web/js/site/user.js');
+$js_minifier->add('/web/js/site/pwgen.js');
+require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/footer.inc.php';
+}
+else {
+	header('Location: /');
+	exit();
+}
+?>
diff --git a/mailcow/src/mailcow-dockerized/docker-compose.yml b/mailcow/src/mailcow-dockerized/docker-compose.yml
index 2ec3fa0..74cec10 100644
--- a/mailcow/src/mailcow-dockerized/docker-compose.yml
+++ b/mailcow/src/mailcow-dockerized/docker-compose.yml
@@ -2,7 +2,7 @@
 services:
 
     unbound-mailcow:
-      image: mailcow/unbound:1.12
+      image: mailcow/unbound:1.13
       environment:
         - TZ=${TZ}
       volumes:
@@ -17,7 +17,7 @@
             - unbound
 
     mysql-mailcow:
-      image: mariadb:10.4
+      image: mariadb:10.5
       depends_on:
         - unbound-mailcow
       stop_grace_period: 45s
@@ -41,7 +41,7 @@
             - mysql
 
     redis-mailcow:
-      image: redis:5-alpine
+      image: redis:6-alpine
       volumes:
         - redis-vol-1:/data/:Z
       restart: always
@@ -49,6 +49,8 @@
         - "${REDIS_PORT:-127.0.0.1:7654}:6379"
       environment:
         - TZ=${TZ}
+      sysctls:
+        - net.core.somaxconn=4096
       networks:
         mailcow-network:
           ipv4_address: ${IPV4_NETWORK:-172.22.1}.249
@@ -56,7 +58,7 @@
             - redis
 
     clamd-mailcow:
-      image: mailcow/clamd:1.38
+      image: mailcow/clamd:1.40
       restart: always
       dns:
         - ${IPV4_NETWORK:-172.22.1}.254
@@ -71,7 +73,7 @@
             - clamd
 
     rspamd-mailcow:
-      image: mailcow/rspamd:1.75
+      image: mailcow/rspamd:1.77
       stop_grace_period: 30s
       depends_on:
         - dovecot-mailcow
@@ -101,13 +103,13 @@
             - rspamd
 
     php-fpm-mailcow:
-      image: mailcow/phpfpm:1.69
+      image: mailcow/phpfpm:1.76
       command: "php-fpm -d date.timezone=${TZ} -d expose_php=0"
       depends_on:
         - redis-mailcow
       volumes:
         - ./data/hooks/phpfpm:/hooks:Z
-        - ./data/web:/web:rw,z
+        - ./data/web:/web:z
         - ./data/conf/rspamd/dynmaps:/dynmaps:ro,z
         - ./data/conf/rspamd/custom/:/rspamd_custom_maps:z
         - rspamd-vol-1:/var/lib/rspamd:z
@@ -122,6 +124,7 @@
         - ./data/conf/dovecot/global_sieve_before:/global_sieve/before:z
         - ./data/conf/dovecot/global_sieve_after:/global_sieve/after:z
         - ./data/assets/templates:/tpls:z
+        - ./data/conf/nginx/:/etc/nginx/conf.d/:z
       dns:
         - ${IPV4_NETWORK:-172.22.1}.254
       environment:
@@ -160,7 +163,7 @@
             - phpfpm
 
     sogo-mailcow:
-      image: mailcow/sogo:1.93
+      image: mailcow/sogo:1.101
       environment:
         - DBNAME=${DBNAME}
         - DBUSER=${DBUSER}
@@ -180,12 +183,25 @@
       dns:
         - ${IPV4_NETWORK:-172.22.1}.254
       volumes:
+        - ./data/hooks/sogo:/hooks:Z
         - ./data/conf/sogo/:/etc/sogo/:z
         - ./data/web/inc/init_db.inc.php:/init_db.inc.php:Z
+        - ./data/conf/sogo/custom-favicon.ico:/usr/lib/GNUstep/SOGo/WebServerResources/img/sogo.ico:z
+        - ./data/conf/sogo/custom-theme.js:/usr/lib/GNUstep/SOGo/WebServerResources/js/theme.js:z
         - ./data/conf/sogo/custom-sogo.js:/usr/lib/GNUstep/SOGo/WebServerResources/js/custom-sogo.js:z
         - mysql-socket-vol-1:/var/run/mysqld/:z
         - sogo-web-vol-1:/sogo_web:z
         - sogo-userdata-backup-vol-1:/sogo_backup:Z
+      labels:
+        ofelia.enabled: "true"
+        ofelia.job-exec.sogo_sessions.schedule: "@every 1m"
+        ofelia.job-exec.sogo_sessions.command: "/bin/bash -c \"[[ $${MASTER} == y ]] && /usr/local/bin/gosu sogo /usr/sbin/sogo-tool expire-sessions $${SOGO_EXPIRE_SESSION} || exit 0\""
+        ofelia.job-exec.sogo_ealarms.schedule: "@every 1m"
+        ofelia.job-exec.sogo_ealarms.command: "/bin/bash -c \"[[ $${MASTER} == y ]] && /usr/local/bin/gosu sogo /usr/sbin/sogo-ealarms-notify -p /etc/sogo/sieve.creds || exit 0\""
+        ofelia.job-exec.sogo_eautoreply.schedule: "@every 24h"
+        ofelia.job-exec.sogo_eautoreply.command: "/bin/bash -c \"[[ $${MASTER} == y ]] && /usr/local/bin/gosu sogo /usr/sbin/sogo-tool update-autoreply -p /etc/sogo/sieve.creds || exit 0\""
+        ofelia.job-exec.sogo_backup.schedule: "@every 24h"
+        ofelia.job-exec.sogo_backup.command: "/bin/bash -c \"[[ $${MASTER} == y ]] && /usr/local/bin/gosu sogo /usr/sbin/sogo-tool backup /sogo_backup ALL || exit 0\""
       restart: always
       networks:
         mailcow-network:
@@ -194,7 +210,7 @@
             - sogo
 
     dovecot-mailcow:
-      image: mailcow/dovecot:1.139
+      image: mailcow/dovecot:1.155
       depends_on:
         - mysql-mailcow
       dns:
@@ -243,6 +259,25 @@
         - "${SIEVE_PORT:-4190}:4190"
       restart: always
       tty: true
+      labels:
+        ofelia.enabled: "true"
+        ofelia.job-exec.dovecot_imapsync_runner.schedule: "@every 1m"
+        ofelia.job-exec.dovecot_imapsync_runner.no-overlap: "true"
+        ofelia.job-exec.dovecot_imapsync_runner.command: "/bin/bash -c \"[[ $${MASTER} == y ]] && /usr/local/bin/gosu nobody /usr/local/bin/imapsync_runner.pl || exit 0\""
+        ofelia.job-exec.dovecot_trim_logs.schedule: "@every 1m"
+        ofelia.job-exec.dovecot_trim_logs.command: "/bin/bash -c \"[[ $${MASTER} == y ]] && /usr/local/bin/gosu vmail /usr/local/bin/trim_logs.sh || exit 0\""
+        ofelia.job-exec.dovecot_quarantine.schedule: "@every 20m"
+        ofelia.job-exec.dovecot_quarantine.command: "/bin/bash -c \"[[ $${MASTER} == y ]] && /usr/local/bin/gosu vmail /usr/local/bin/quarantine_notify.py || exit 0\""
+        ofelia.job-exec.dovecot_clean_q_aged.schedule: "@every 24h"
+        ofelia.job-exec.dovecot_clean_q_aged.command: "/bin/bash -c \"[[ $${MASTER} == y ]] && /usr/local/bin/gosu vmail /usr/local/bin/clean_q_aged.sh || exit 0\""
+        ofelia.job-exec.dovecot_maildir_gc.schedule: "@every 30m"
+        ofelia.job-exec.dovecot_maildir_gc.command: "/bin/bash -c \"source /source_env.sh ; /usr/local/bin/gosu vmail /usr/local/bin/maildir_gc.sh\""
+        ofelia.job-exec.dovecot_sarules.schedule: "@every 24h"
+        ofelia.job-exec.dovecot_sarules.command: "/bin/bash -c \"/usr/local/bin/sa-rules.sh\""
+        ofelia.job-exec.dovecot_fts.schedule: "@every 24h"
+        ofelia.job-exec.dovecot_fts.command: "/usr/bin/curl http://solr:8983/solr/dovecot-fts/update?optimize=true"
+        ofelia.job-exec.dovecot_repl_health.schedule: "@every 5m"
+        ofelia.job-exec.dovecot_repl_health.command: "/bin/bash -c \"/usr/local/bin/gosu vmail /usr/local/bin/repl_health.sh\""
       ulimits:
         nproc: 65535
         nofile:
@@ -255,7 +290,7 @@
             - dovecot
 
     postfix-mailcow:
-      image: mailcow/postfix:1.58
+      image: mailcow/postfix:1.65
       depends_on:
         - mysql-mailcow
       volumes:
@@ -286,6 +321,7 @@
         - ${IPV4_NETWORK:-172.22.1}.254
       networks:
         mailcow-network:
+          ipv4_address: ${IPV4_NETWORK:-172.22.1}.253
           aliases:
             - postfix
 
@@ -309,9 +345,8 @@
         - ${IPV4_NETWORK:-172.22.1}.254
       command: /bin/sh -c "envsubst < /etc/nginx/conf.d/templates/listen_plain.template > /etc/nginx/conf.d/listen_plain.active &&
         envsubst < /etc/nginx/conf.d/templates/listen_ssl.template > /etc/nginx/conf.d/listen_ssl.active &&
-        envsubst < /etc/nginx/conf.d/templates/server_name.template > /etc/nginx/conf.d/server_name.active &&
         envsubst < /etc/nginx/conf.d/templates/sogo.template > /etc/nginx/conf.d/sogo.active &&
-        . /etc/nginx/conf.d/templates/sogo.auth_request.template.sh > /etc/nginx/conf.d/sogo_proxy_auth.active &&
+        . /etc/nginx/conf.d/templates/server_name.template.sh > /etc/nginx/conf.d/server_name.active &&
         . /etc/nginx/conf.d/templates/sites.template.sh > /etc/nginx/conf.d/sites.active &&
         . /etc/nginx/conf.d/templates/sogo_eas.template.sh > /etc/nginx/conf.d/sogo_eas.active &&
         nginx -qt &&
@@ -328,16 +363,17 @@
         - TZ=${TZ}
         - SKIP_SOGO=${SKIP_SOGO:-n}
         - ALLOW_ADMIN_EMAIL_LOGIN=${ALLOW_ADMIN_EMAIL_LOGIN:-n}
+        - ADDITIONAL_SERVER_NAMES=${ADDITIONAL_SERVER_NAMES:-}
       volumes:
         - ./data/web:/web:ro,z
         - ./data/conf/rspamd/dynmaps:/dynmaps:ro,z
         - ./data/assets/ssl/:/etc/ssl/mail/:ro,z
-        - ./data/conf/nginx/:/etc/nginx/conf.d/:rw,Z
+        - ./data/conf/nginx/:/etc/nginx/conf.d/:z
         - ./data/conf/rspamd/meta_exporter:/meta_exporter:ro,z
         - sogo-web-vol-1:/usr/lib/GNUstep/SOGo/:z
       ports:
-        - "${HTTPS_BIND:-0.0.0.0}:${HTTPS_PORT:-443}:${HTTPS_PORT:-443}"
-        - "${HTTP_BIND:-0.0.0.0}:${HTTP_PORT:-80}:${HTTP_PORT:-80}"
+        - "${HTTPS_BIND:-:}:${HTTPS_PORT:-443}:${HTTPS_PORT:-443}"
+        - "${HTTP_BIND:-:}:${HTTP_PORT:-80}:${HTTP_PORT:-80}"
       restart: always
       networks:
         mailcow-network:
@@ -347,11 +383,12 @@
     acme-mailcow:
       depends_on:
         - nginx-mailcow
-      image: mailcow/acme:1.76
+      image: mailcow/acme:1.79
       dns:
         - ${IPV4_NETWORK:-172.22.1}.254
       environment:
         - LOG_LINES=${LOG_LINES:-9999}
+        - ACME_CONTACT=${ACME_CONTACT:-}
         - ADDITIONAL_SAN=${ADDITIONAL_SAN}
         - MAILCOW_HOSTNAME=${MAILCOW_HOSTNAME}
         - DBNAME=${DBNAME}
@@ -371,8 +408,8 @@
         - SNAT_TO_SOURCE=${SNAT_TO_SOURCE:-n}
         - SNAT6_TO_SOURCE=${SNAT6_TO_SOURCE:-n}
       volumes:
-        - ./data/web/.well-known/acme-challenge:/var/www/acme:rw,z
-        - ./data/assets/ssl:/var/lib/acme/:rw,z
+        - ./data/web/.well-known/acme-challenge:/var/www/acme:z
+        - ./data/assets/ssl:/var/lib/acme/:z
         - ./data/assets/ssl-example:/var/lib/ssl-example/:ro,Z
         - mysql-socket-vol-1:/var/run/mysqld/:z
       restart: always
@@ -382,7 +419,7 @@
             - acme
 
     netfilter-mailcow:
-      image: mailcow/netfilter:1.38
+      image: mailcow/netfilter:1.43
       stop_grace_period: 30s
       depends_on:
         - dovecot-mailcow
@@ -405,11 +442,13 @@
         - /lib/modules:/lib/modules:ro
 
     watchdog-mailcow:
-      image: mailcow/watchdog:1.86
+      image: mailcow/watchdog:1.92
       # Debug
       #command: /watchdog.sh
       dns:
         - ${IPV4_NETWORK:-172.22.1}.254
+      tmpfs:
+        - /tmp
       volumes:
         - rspamd-vol-1:/var/lib/rspamd:z
         - mysql-socket-vol-1:/var/run/mysqld/:z
@@ -427,6 +466,7 @@
         - USE_WATCHDOG=${USE_WATCHDOG:-n}
         - WATCHDOG_NOTIFY_EMAIL=${WATCHDOG_NOTIFY_EMAIL}
         - WATCHDOG_NOTIFY_BAN=${WATCHDOG_NOTIFY_BAN:-y}
+        - WATCHDOG_SUBJECT=${WATCHDOG_SUBJECT:-Watchdog ALERT}
         - WATCHDOG_EXTERNAL_CHECKS=${WATCHDOG_EXTERNAL_CHECKS:-n}
         - WATCHDOG_MYSQL_REPLICATION_CHECKS=${WATCHDOG_MYSQL_REPLICATION_CHECKS:-n}
         - MAILCOW_HOSTNAME=${MAILCOW_HOSTNAME}
@@ -455,7 +495,6 @@
         - RATELIMIT_THRESHOLD=${RATELIMIT_THRESHOLD:-1}
         - FAIL2BAN_THRESHOLD=${FAIL2BAN_THRESHOLD:-1}
         - ACME_THRESHOLD=${ACME_THRESHOLD:-1}
-        - IPV6NAT_THRESHOLD=${IPV6NAT_THRESHOLD:-1}
         - RSPAMD_THRESHOLD=${RSPAMD_THRESHOLD:-5}
         - OLEFY_THRESHOLD=${OLEFY_THRESHOLD:-5}
         - MAILQ_THRESHOLD=${MAILQ_THRESHOLD:-20}
@@ -466,7 +505,7 @@
             - watchdog
 
     dockerapi-mailcow:
-      image: mailcow/dockerapi:1.37
+      image: mailcow/dockerapi:1.38
       security_opt:
         - label=disable
       restart: always
@@ -500,7 +539,7 @@
             - solr
 
     olefy-mailcow:
-      image: mailcow/olefy:1.5
+      image: mailcow/olefy:1.7
       restart: always
       environment:
         - TZ=${TZ}
@@ -517,6 +556,53 @@
           aliases:
             - olefy
 
+    ofelia-mailcow:
+      image: mcuadros/ofelia:latest
+      restart: always
+      command: daemon --docker
+        - TZ=${TZ}
+      depends_on:
+        - sogo-mailcow
+        - dovecot-mailcow
+      labels:
+        ofelia.enabled: "true"
+      volumes:
+        - /var/run/docker.sock:/var/run/docker.sock:ro
+      networks:
+        mailcow-network:
+          aliases:
+            - ofelia
+
+    ipv6nat-mailcow:
+      depends_on:
+        - unbound-mailcow
+        - mysql-mailcow
+        - redis-mailcow
+        - clamd-mailcow
+        - rspamd-mailcow
+        - php-fpm-mailcow
+        - sogo-mailcow
+        - dovecot-mailcow
+        - postfix-mailcow
+        - memcached-mailcow
+        - nginx-mailcow
+        - acme-mailcow
+        - netfilter-mailcow
+        - watchdog-mailcow
+        - dockerapi-mailcow
+        - solr-mailcow
+      environment:
+        - TZ=${TZ}
+      image: robbertkl/ipv6nat
+      security_opt:
+        - label=disable
+      restart: always
+      privileged: true
+      network_mode: "host"
+      volumes:
+        - /var/run/docker.sock:/var/run/docker.sock:ro
+        - /lib/modules:/lib/modules:ro
+
 networks:
   mailcow-network:
     driver: bridge
diff --git a/mailcow/src/mailcow-dockerized/generate_config.sh b/mailcow/src/mailcow-dockerized/generate_config.sh
index 16a040c..33823a7 100755
--- a/mailcow/src/mailcow-dockerized/generate_config.sh
+++ b/mailcow/src/mailcow-dockerized/generate_config.sh
@@ -30,7 +30,7 @@
 done
 
 if [ -f mailcow.conf ]; then
-  read -r -p "A config file exists and will be overwritten, are you sure you want to contine? [y/N] " response
+  read -r -p "A config file exists and will be overwritten, are you sure you want to continue? [y/N] " response
   case $response in
     [yY][eE][sS]|[yY])
       mv mailcow.conf mailcow.conf_backup
@@ -143,18 +143,21 @@
 # If you use a proxy within Docker, point it to the ports you set below.
 # Do _not_ use IP:PORT in HTTP(S)_BIND or HTTP(S)_PORT
 # IMPORTANT: Do not use port 8081, 9081 or 65510!
+# Example: HTTP_BIND=1.2.3.4
+# For IPv4 and IPv6 leave it empty: HTTP_BIND= & HTTPS_PORT=
+# For IPv6 see https://mailcow.github.io/mailcow-dockerized-docs/firststeps-ip_bindings/
 
 HTTP_PORT=80
-HTTP_BIND=0.0.0.0
+HTTP_BIND=
 
 HTTPS_PORT=443
-HTTPS_BIND=0.0.0.0
+HTTPS_BIND=
 
 # ------------------------------
 # Other bindings
 # ------------------------------
 # You should leave that alone
-# Format: 11.22.33.44:25 or 0.0.0.0:465 etc.
+# Format: 11.22.33.44:25 or 12.34.56.78:465 etc.
 
 SMTP_PORT=25
 SMTPS_PORT=465
@@ -209,6 +212,16 @@
 
 ADDITIONAL_SAN=
 
+# Additional server names for mailcow UI
+#
+# Specify alternative addresses for the mailcow UI to respond to
+# This is useful when you set mail.* as ADDITIONAL_SAN and want to make sure mail.maildomain.com will always point to the mailcow UI.
+# If the server name does not match a known site, Nginx decides by best-guess and may redirect users to the wrong web root.
+# You can understand this as server_name directive in Nginx.
+# Comma separated list without spaces! Example: ADDITIONAL_SERVER_NAMES=a.b.c,d.e.f
+
+ADDITIONAL_SERVER_NAMES=
+
 # Skip running ACME (acme-mailcow, Let's Encrypt certs) - y/n
 
 SKIP_LETS_ENCRYPT=n
@@ -264,6 +277,9 @@
 # Notify about banned IP (includes whois lookup)
 WATCHDOG_NOTIFY_BAN=n
 
+# Subject for watchdog mails. Defaults to "Watchdog ALERT" followed by the error message.
+#WATCHDOG_SUBJECT=
+
 # Checks if mailcow is an open relay. Requires a SAL. More checks will follow.
 # https://www.servercow.de/mailcow?lang=en
 # https://www.servercow.de/mailcow?lang=de
@@ -318,6 +334,13 @@
 # LEAVE EMPTY IF UNSURE
 DOVECOT_MASTER_PASS=
 
+# Let's Encrypt registration contact information
+# Optional: Leave empty for none
+# This value is only used on first order!
+# Setting it at a later point will require the following steps:
+# https://mailcow.github.io/mailcow-dockerized-docs/debug-reset-tls/
+ACME_CONTACT=
+
 EOF
 
 mkdir -p data/assets/ssl
diff --git a/mailcow/src/mailcow-dockerized/helper-scripts/backup_and_restore.sh b/mailcow/src/mailcow-dockerized/helper-scripts/backup_and_restore.sh
index 82002d7..189a660 100755
--- a/mailcow/src/mailcow-dockerized/helper-scripts/backup_and_restore.sh
+++ b/mailcow/src/mailcow-dockerized/helper-scripts/backup_and_restore.sh
@@ -86,32 +86,32 @@
     vmail|all)
       docker run --name mailcow-backup --rm \
         -v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup:z \
-        -v $(docker volume ls -qf name=${CMPS_PRJ}_vmail-vol-1):/vmail:ro,z \
+        -v $(docker volume ls -qf name=^${CMPS_PRJ}_vmail-vol-1$):/vmail:ro,z \
         ${DEBIAN_DOCKER_IMAGE} /bin/tar --warning='no-file-ignored' --use-compress-program="gzip --rsyncable" -Pcvpf /backup/backup_vmail.tar.gz /vmail
       ;;&
     crypt|all)
       docker run --name mailcow-backup --rm \
         -v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup:z \
-        -v $(docker volume ls -qf name=${CMPS_PRJ}_crypt-vol-1):/crypt:ro,z \
+        -v $(docker volume ls -qf name=^${CMPS_PRJ}_crypt-vol-1$):/crypt:ro,z \
         ${DEBIAN_DOCKER_IMAGE} /bin/tar --warning='no-file-ignored' --use-compress-program="gzip --rsyncable" -Pcvpf /backup/backup_crypt.tar.gz /crypt
       ;;&
     redis|all)
       docker exec $(docker ps -qf name=redis-mailcow) redis-cli save
       docker run --name mailcow-backup --rm \
         -v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup:z \
-        -v $(docker volume ls -qf name=${CMPS_PRJ}_redis-vol-1):/redis:ro,z \
+        -v $(docker volume ls -qf name=^${CMPS_PRJ}_redis-vol-1$):/redis:ro,z \
         ${DEBIAN_DOCKER_IMAGE} /bin/tar --warning='no-file-ignored' --use-compress-program="gzip --rsyncable" -Pcvpf /backup/backup_redis.tar.gz /redis
       ;;&
     rspamd|all)
       docker run --name mailcow-backup --rm \
         -v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup:z \
-        -v $(docker volume ls -qf name=${CMPS_PRJ}_rspamd-vol-1):/rspamd:ro,z \
+        -v $(docker volume ls -qf name=^${CMPS_PRJ}_rspamd-vol-1$):/rspamd:ro,z \
         ${DEBIAN_DOCKER_IMAGE} /bin/tar --warning='no-file-ignored' --use-compress-program="gzip --rsyncable" -Pcvpf /backup/backup_rspamd.tar.gz /rspamd
       ;;&
     postfix|all)
       docker run --name mailcow-backup --rm \
         -v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup:z \
-        -v $(docker volume ls -qf name=${CMPS_PRJ}_postfix-vol-1):/postfix:ro,z \
+        -v $(docker volume ls -qf name=^${CMPS_PRJ}_postfix-vol-1$):/postfix:ro,z \
         ${DEBIAN_DOCKER_IMAGE} /bin/tar --warning='no-file-ignored' --use-compress-program="gzip --rsyncable" -Pcvpf /backup/backup_postfix.tar.gz /postfix
       ;;&
     mysql|all)
@@ -123,9 +123,9 @@
       else
         echo "Using SQL image ${SQLIMAGE}, starting..."
         docker run --name mailcow-backup --rm \
-          --network $(docker network ls -qf name=${CMPS_PRJ}_mailcow-network) \
-          -v $(docker volume ls -qf name=${CMPS_PRJ}_mysql-vol-1):/var/lib/mysql/:ro,z \
-          --entrypoint= \
+          --network $(docker network ls -qf name=^${CMPS_PRJ}_mailcow-network$) \
+          -v $(docker volume ls -qf name=^${CMPS_PRJ}_mysql-vol-1$):/var/lib/mysql/:ro,z \
+          -t --entrypoint= \
           --sysctl net.ipv6.conf.all.disable_ipv6=1 \
           -v ${BACKUP_LOCATION}/mailcow-${DATE}:/backup:z \
           ${SQLIMAGE} /bin/sh -c "mariabackup --host mysql --user root --password ${DBROOT} --backup --rsync --target-dir=/backup_mariadb ; \
@@ -160,7 +160,7 @@
       docker stop $(docker ps -qf name=dovecot-mailcow)
       docker run -it --name mailcow-backup --rm \
         -v ${RESTORE_LOCATION}:/backup:z \
-        -v $(docker volume ls -qf name=${CMPS_PRJ}_vmail-vol-1):/vmail:z \
+        -v $(docker volume ls -qf name=^${CMPS_PRJ}_vmail-vol-1$):/vmail:z \
         ${DEBIAN_DOCKER_IMAGE} /bin/tar -Pxvzf /backup/backup_vmail.tar.gz
       docker start $(docker ps -aqf name=dovecot-mailcow)
       echo
@@ -179,7 +179,7 @@
       docker stop $(docker ps -qf name=redis-mailcow)
       docker run -it --name mailcow-backup --rm \
         -v ${RESTORE_LOCATION}:/backup:z \
-        -v $(docker volume ls -qf name=${CMPS_PRJ}_redis-vol-1):/redis:z \
+        -v $(docker volume ls -qf name=^${CMPS_PRJ}_redis-vol-1$):/redis:z \
         ${DEBIAN_DOCKER_IMAGE} /bin/tar -Pxvzf /backup/backup_redis.tar.gz
       docker start $(docker ps -aqf name=redis-mailcow)
       ;;
@@ -187,7 +187,7 @@
       docker stop $(docker ps -qf name=dovecot-mailcow)
       docker run -it --name mailcow-backup --rm \
         -v ${RESTORE_LOCATION}:/backup:z \
-        -v $(docker volume ls -qf name=${CMPS_PRJ}_crypt-vol-1):/crypt:z \
+        -v $(docker volume ls -qf name=^${CMPS_PRJ}_crypt-vol-1$):/crypt:z \
         ${DEBIAN_DOCKER_IMAGE} /bin/tar -Pxvzf /backup/backup_crypt.tar.gz
       docker start $(docker ps -aqf name=dovecot-mailcow)
       ;;
@@ -195,7 +195,7 @@
       docker stop $(docker ps -qf name=rspamd-mailcow)
       docker run -it --name mailcow-backup --rm \
         -v ${RESTORE_LOCATION}:/backup:z \
-        -v $(docker volume ls -qf name=${CMPS_PRJ}_rspamd-vol-1):/rspamd:z \
+        -v $(docker volume ls -qf name=^${CMPS_PRJ}_rspamd-vol-1$):/rspamd:z \
         ${DEBIAN_DOCKER_IMAGE} /bin/tar -Pxvzf /backup/backup_rspamd.tar.gz
       docker start $(docker ps -aqf name=rspamd-mailcow)
       ;;
@@ -203,7 +203,7 @@
       docker stop $(docker ps -qf name=postfix-mailcow)
       docker run -it --name mailcow-backup --rm \
         -v ${RESTORE_LOCATION}:/backup:z \
-        -v $(docker volume ls -qf name=${CMPS_PRJ}_postfix-vol-1):/postfix:z \
+        -v $(docker volume ls -qf name=^${CMPS_PRJ}_postfix-vol-1$):/postfix:z \
         ${DEBIAN_DOCKER_IMAGE} /bin/tar -Pxvzf /backup/backup_postfix.tar.gz
       docker start $(docker ps -aqf name=postfix-mailcow)
       ;;
@@ -231,14 +231,14 @@
         #docker stop $(docker ps -qf name=mysql-mailcow)
         if [[ -d "${RESTORE_LOCATION}/mysql" ]]; then
         docker run --name mailcow-backup --rm \
-          -v $(docker volume ls -qf name=${CMPS_PRJ}_mysql-vol-1):/var/lib/mysql/:rw,z \
+          -v $(docker volume ls -qf name=^${CMPS_PRJ}_mysql-vol-1$):/var/lib/mysql/:rw,z \
           --entrypoint= \
           -v ${RESTORE_LOCATION}/mysql:/backup:z \
           ${SQLIMAGE} /bin/bash -c "shopt -s dotglob ; /bin/rm -rf /var/lib/mysql/* ; rsync -avh --usermap=root:mysql --groupmap=root:mysql /backup/ /var/lib/mysql/"
         elif [[ -f "${RESTORE_LOCATION}/backup_mysql.gz" ]]; then
         docker run \
           -it --name mailcow-backup --rm \
-          -v $(docker volume ls -qf name=${CMPS_PRJ}_mysql-vol-1):/var/lib/mysql/:z \
+          -v $(docker volume ls -qf name=^${CMPS_PRJ}_mysql-vol-1$):/var/lib/mysql/:z \
           --entrypoint= \
           -u mysql \
           -v ${RESTORE_LOCATION}:/backup:z \
@@ -249,7 +249,7 @@
           mysql -uroot -e SHUTDOWN;"
         elif [[ -f "${RESTORE_LOCATION}/backup_mariadb.tar.gz" ]]; then
         docker run --name mailcow-backup --rm \
-          -v $(docker volume ls -qf name=${CMPS_PRJ}_mysql-vol-1):/backup_mariadb/:rw,z \
+          -v $(docker volume ls -qf name=^${CMPS_PRJ}_mysql-vol-1$):/backup_mariadb/:rw,z \
           --entrypoint= \
           -v ${RESTORE_LOCATION}:/backup:z \
           ${SQLIMAGE} /bin/bash -c "shopt -s dotglob ; \
diff --git a/mailcow/src/mailcow-dockerized/helper-scripts/docker-compose.override.yml.d/BUILD_FLAGS/docker-compose.override.yml b/mailcow/src/mailcow-dockerized/helper-scripts/docker-compose.override.yml.d/BUILD_FLAGS/docker-compose.override.yml
index a080fb3..99cd014 100644
--- a/mailcow/src/mailcow-dockerized/helper-scripts/docker-compose.override.yml.d/BUILD_FLAGS/docker-compose.override.yml
+++ b/mailcow/src/mailcow-dockerized/helper-scripts/docker-compose.override.yml.d/BUILD_FLAGS/docker-compose.override.yml
@@ -42,4 +42,3 @@
 
   olefy-mailcow:
     build: ./data/Dockerfiles/olefy
-
diff --git a/mailcow/src/mailcow-dockerized/helper-scripts/docker-compose.override.yml.d/EXTERNAL_DNS/docker-compose.override.yml b/mailcow/src/mailcow-dockerized/helper-scripts/docker-compose.override.yml.d/EXTERNAL_DNS/docker-compose.override.yml
index 74763bf..8b68783 100644
--- a/mailcow/src/mailcow-dockerized/helper-scripts/docker-compose.override.yml.d/EXTERNAL_DNS/docker-compose.override.yml
+++ b/mailcow/src/mailcow-dockerized/helper-scripts/docker-compose.override.yml.d/EXTERNAL_DNS/docker-compose.override.yml
@@ -42,3 +42,7 @@
     dockerapi-mailcow:
       dns:
         - my.resolvers.ip.addr
+
+    ejabberd-mailcow:
+      dns:
+        - my.resolvers.ip.addr
diff --git a/mailcow/src/mailcow-dockerized/helper-scripts/mailcow-reset-admin.sh b/mailcow/src/mailcow-dockerized/helper-scripts/mailcow-reset-admin.sh
index 4afd14c..ee95d3e 100755
--- a/mailcow/src/mailcow-dockerized/helper-scripts/mailcow-reset-admin.sh
+++ b/mailcow/src/mailcow-dockerized/helper-scripts/mailcow-reset-admin.sh
@@ -19,15 +19,17 @@
 response=${response,,}    # tolower
 if [[ "$response" =~ ^(yes|y)$ ]]; then
 	echo -e "\nWorking, please wait..."
+  random=$(</dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16})
+  password=$(docker exec -it $(docker ps -qf name=dovecot-mailcow) doveadm pw -s SSHA256 -p ${random} | tr -d '\r')
 	docker exec -it $(docker ps -qf name=mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} -e "DELETE FROM admin WHERE username='admin';"
   docker exec -it $(docker ps -qf name=mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} -e "DELETE FROM domain_admins WHERE username='admin';"
-	docker exec -it $(docker ps -qf name=mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} -e "INSERT INTO admin (username, password, superadmin, active) VALUES ('admin', '{SSHA256}K8eVJ6YsZbQCfuJvSUbaQRLr0HPLz5rC9IAp0PAFl0tmNDBkMDc0NDAyOTAxN2Rk', 1, 1);"
+	docker exec -it $(docker ps -qf name=mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} -e "INSERT INTO admin (username, password, superadmin, active) VALUES ('admin', '${password}', 1, 1);"
 	docker exec -it $(docker ps -qf name=mysql-mailcow) mysql -u${DBUSER} -p${DBPASS} ${DBNAME} -e "DELETE FROM tfa WHERE username='admin';"
 	echo "
 Reset credentials:
 ---
 Username: admin
-Password: moohoo
+Password: ${random}
 TFA: none
 "
 else
diff --git a/mailcow/src/mailcow-dockerized/helper-scripts/nextcloud.sh b/mailcow/src/mailcow-dockerized/helper-scripts/nextcloud.sh
index 41434b7..94bc997 100755
--- a/mailcow/src/mailcow-dockerized/helper-scripts/nextcloud.sh
+++ b/mailcow/src/mailcow-dockerized/helper-scripts/nextcloud.sh
@@ -72,11 +72,11 @@
   if ! grep -q 'installed: true' <<<$(docker exec -it -u www-data $(docker ps -f name=php-fpm-mailcow -q) bash -c "/web/nextcloud/occ --no-warnings status"); then
     echo "Nextcloud seems not to be installed."
     exit 1
-  elif ! grep -q 'version: 19\.' <<<$(docker exec -it -u www-data $(docker ps -f name=php-fpm-mailcow -q) bash -c "/web/nextcloud/occ --no-warnings status"); then
+  elif ! grep -q 'version: 20\.' <<<$(docker exec -it -u www-data $(docker ps -f name=php-fpm-mailcow -q) bash -c "/web/nextcloud/occ --no-warnings status"); then
     echo "Cannot upgrade to new major version, please update manually."
     exit 1
   else
-    curl -L# -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/latest-19.tar.bz2" || { echo "Failed to download Nextcloud archive."; exit 1; } \
+    curl -L# -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/latest-22.tar.bz2" || { echo "Failed to download Nextcloud archive."; exit 1; } \
       && tar -xjf nextcloud.tar.bz2 -C ./data/web/ \
       && rm nextcloud.tar.bz2 \
       && mkdir -p ./data/web/nextcloud/data \
@@ -97,7 +97,7 @@
 
   ADMIN_NC_PASS=$(</dev/urandom tr -dc A-Za-z0-9 | head -c 28)
 
-  curl -L# -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/latest-19.tar.bz2" || { echo "Failed to download Nextcloud archive."; exit 1; } \
+  curl -L# -o nextcloud.tar.bz2 "https://download.nextcloud.com/server/releases/latest-22.tar.bz2" || { echo "Failed to download Nextcloud archive."; exit 1; } \
     && tar -xjf nextcloud.tar.bz2 -C ./data/web/ \
     && rm nextcloud.tar.bz2 \
     && mkdir -p ./data/web/nextcloud/data \
@@ -110,7 +110,6 @@
     --database-name ${DBNAME} \
     --database-user ${DBUSER} \
     --database-pass ${DBPASS} \
-    --database-table-prefix nc_ \
     --admin-user admin \
     --admin-pass ${ADMIN_NC_PASS} \
       --data-dir /web/nextcloud/data
diff --git a/mailcow/src/mailcow-dockerized/update.sh b/mailcow/src/mailcow-dockerized/update.sh
index 20e9fd1..dc578f9 100755
--- a/mailcow/src/mailcow-dockerized/update.sh
+++ b/mailcow/src/mailcow-dockerized/update.sh
@@ -6,6 +6,13 @@
   exit 1
 fi
 
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+# Run pre-update-hook
+if [ -f "${SCRIPT_DIR}/pre_update_hook.sh" ]; then
+  bash "${SCRIPT_DIR}/pre_update_hook.sh"
+fi
+
 if [[ "$(uname -r)" =~ ^4\.15\.0-60 ]]; then
   echo "DO NOT RUN mailcow ON THIS UBUNTU KERNEL!";
   echo "Please update to 5.x or use another distribution."
@@ -55,6 +62,11 @@
   [[ -z ${BRANCH} ]] && { echo -e "\e[33m\nUnknown branch...\e[0m"; exit 1; }
   git fetch origin #${BRANCH}
   while read image; do
+    if [[ "${image}" == "robbertkl/ipv6nat" ]]; then
+      if ! grep -qi "ipv6nat-mailcow" docker-compose.yml || grep -qi "enable_ipv6: false" docker-compose.yml; then
+        continue
+      fi
+    fi
     RET_C=0
     until docker pull ${image}; do
       RET_C=$((RET_C + 1))
@@ -106,13 +118,74 @@
         echo "OK, skipped."
       fi
     else
-      echo "Skipped image removal because of force mode."
+      echo "Running image removal without extra confirmation due to force mode."
+      docker rmi ${IMGS_TO_DELETE[*]}
     fi
   fi
   echo -e "\e[32mFurther cleanup...\e[0m"
   echo "If you want to cleanup further garbage collected by Docker, please make sure all containers are up and running before cleaning your system by executing \"docker system prune\""
 }
 
+in_array() {
+  local e match="$1"
+  shift
+  for e; do [[ "$e" == "$match" ]] && return 0; done
+  return 1
+}
+
+migrate_docker_nat() {
+  NAT_CONFIG='{"ipv6":true,"fixed-cidr-v6":"fd00:dead:beef:c0::/80","experimental":true,"ip6tables":true}'
+  # Min Docker version
+  DOCKERV_REQ=20.10.2
+  # Current Docker version
+  DOCKERV_CUR=$(docker version -f '{{.Server.Version}}')
+  if grep -qi "ipv6nat-mailcow" docker-compose.yml && grep -qi "enable_ipv6: true" docker-compose.yml; then
+    echo -e "\e[32mNative IPv6 implementation available.\e[0m"
+    echo "This will enable experimental features in the Docker daemon and configure Docker to do the IPv6 NATing instead of ipv6nat-mailcow."
+    echo '!!! This step is recommended !!!'
+    echo "mailcow will try to roll back the changes if starting Docker fails after modifying the daemon.json configuration file."
+    read -r -p "Should we try to enable the native IPv6 implementation in Docker now (recommended)? [y/N] " dockernatresponse
+    if [[ ! "${dockernatresponse}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
+      echo "OK, skipping this step."
+      return 0
+    fi
+  fi
+  # Sort versions and check if we are running a newer or equal version to req
+  if [ $(printf "${DOCKERV_REQ}\n${DOCKERV_CUR}" | sort -V | tail -n1) == "${DOCKERV_CUR}" ]; then
+    # If Dockerd daemon json exists
+    if [ -s /etc/docker/daemon.json ]; then
+      IFS=',' read -r -a dockerconfig <<< $(cat /etc/docker/daemon.json | tr -cd '[:alnum:],')
+      if ! in_array ipv6true "${dockerconfig[@]}" || \
+        ! in_array experimentaltrue "${dockerconfig[@]}" || \
+        ! in_array ip6tablestrue "${dockerconfig[@]}" || \
+        ! grep -qi "fixed-cidr-v6" /etc/docker/daemon.json; then
+          echo -e "\e[33mWarning:\e[0m You seem to have modified the /etc/docker/daemon.json configuration by yourself and not fully/correctly activated the native IPv6 NAT implementation."
+          echo "You will need to merge your existing configuration manually or fix/delete the existing daemon.json configuration before trying the update process again."
+          echo -e "Please merge the following content and restart the Docker daemon:\n"
+          echo ${NAT_CONFIG}
+          return 1
+      fi
+    else
+      echo "Working on IPv6 NAT, please wait..."
+      echo ${NAT_CONFIG} > /etc/docker/daemon.json
+      ip6tables -F -t nat
+      if ! systemctl restart docker.service; then
+        echo -e "\e[31mError:\e[0m Failed to activate IPv6 NAT! Reverting and exiting."
+        rm /etc/docker/daemon.json
+        systemctl reset-failed docker.service
+        systemctl restart docker.service
+        return 1
+      fi
+    fi
+    # Removing legacy container
+    sed -i '/ipv6nat-mailcow:$/,/^$/d' docker-compose.yml
+    echo -e "\e[32mGreat! \e[0mNative IPv6 NAT is active.\e[0m"
+  else
+    echo -e "\e[31mPlease upgrade Docker to version ${DOCKERV_REQ} or above.\e[0m"
+    return 0
+  fi
+}
+
 while (($#)); do
   case "${1}" in
     --check|-c)
@@ -123,7 +196,7 @@
         exit 99
       fi
       if [[ -z $(git log HEAD --pretty=format:"%H" | grep "${LATEST_REV}") ]]; then
-        echo "Updated code is available."
+        echo -e "Updated code is available.\nThe changes can be found here: https://github.com/mailcow/mailcow-dockerized/commits/master"
         git log --date=short --pretty=format:"%ad - %s" $(git rev-parse --short HEAD)..origin/master
         exit 0
       else
@@ -181,6 +254,7 @@
 fi
 
 if grep --help 2>&1 | head -n 1 | grep -q -i "busybox"; then echo "BusyBox grep detected, please install gnu grep, \"apk add --no-cache --upgrade grep\""; exit 1; fi
+# This will also cover sort
 if cp --help 2>&1 | head -n 1 | grep -q -i "busybox"; then echo "BusyBox cp detected, please install coreutils, \"apk add --no-cache --upgrade coreutils\""; exit 1; fi
 if sed --help 2>&1 | head -n 1 | grep -q -i "busybox"; then echo "BusyBox sed detected, please install gnu sed, \"apk add --no-cache --upgrade sed\""; exit 1; fi
 
@@ -191,6 +265,7 @@
   "WATCHDOG_NOTIFY_EMAIL"
   "WATCHDOG_NOTIFY_BAN"
   "WATCHDOG_EXTERNAL_CHECKS"
+  "WATCHDOG_SUBJECT"
   "SKIP_CLAMD"
   "SKIP_IP_CHECK"
   "ADDITIONAL_SAN"
@@ -218,6 +293,8 @@
   "DOVECOT_MASTER_USER"
   "DOVECOT_MASTER_PASS"
   "MAILCOW_PASS_SCHEME"
+  "ADDITIONAL_SERVER_NAMES"
+  "ACME_CONTACT"
 )
 
 sed -i --follow-symlinks '$a\' mailcow.conf
@@ -322,7 +399,7 @@
       echo '# Solr is a prone to run OOM on large systems and should be monitored. Unmonitored Solr setups are not recommended.' >> mailcow.conf
       echo '# Solr will refuse to start with total system memory below or equal to 2 GB.' >> mailcow.conf
       echo "SOLR_HEAP=1024" >> mailcow.conf
-  fi
+    fi
   elif [[ ${option} == "SKIP_SOLR" ]]; then
     if ! grep -q ${option} mailcow.conf; then
       echo "Adding new option \"${option}\" to mailcow.conf"
@@ -350,13 +427,19 @@
       echo '# MAILDIR_SUB defines a path in a users virtual home to keep the maildir in. Leave empty for updated setups.' >> mailcow.conf
       echo "#MAILDIR_SUB=Maildir" >> mailcow.conf
       echo "MAILDIR_SUB=" >> mailcow.conf
-  fi
+    fi
   elif [[ ${option} == "WATCHDOG_NOTIFY_BAN" ]]; then
     if ! grep -q ${option} mailcow.conf; then
       echo "Adding new option \"${option}\" to mailcow.conf"
       echo '# Notify about banned IP. Includes whois lookup.' >> mailcow.conf
       echo "WATCHDOG_NOTIFY_BAN=y" >> mailcow.conf
-  fi
+    fi
+  elif [[ ${option} == "WATCHDOG_SUBJECT" ]]; then
+    if ! grep -q ${option} mailcow.conf; then
+      echo "Adding new option \"${option}\" to mailcow.conf"
+      echo '# Subject for watchdog mails. Defaults to "Watchdog ALERT" followed by the error message.' >> mailcow.conf
+      echo "#WATCHDOG_SUBJECT=" >> mailcow.conf
+    fi
   elif [[ ${option} == "WATCHDOG_EXTERNAL_CHECKS" ]]; then
     if ! grep -q ${option} mailcow.conf; then
       echo "Adding new option \"${option}\" to mailcow.conf"
@@ -364,18 +447,18 @@
       echo '# No data is collected. Opt-in and anonymous.' >> mailcow.conf
       echo '# Will only work with unmodified mailcow setups.' >> mailcow.conf
       echo "WATCHDOG_EXTERNAL_CHECKS=n" >> mailcow.conf
-  fi
+    fi
   elif [[ ${option} == "SOGO_EXPIRE_SESSION" ]]; then
     if ! grep -q ${option} mailcow.conf; then
       echo "Adding new option \"${option}\" to mailcow.conf"
       echo '# SOGo session timeout in minutes' >> mailcow.conf
       echo "SOGO_EXPIRE_SESSION=480" >> mailcow.conf
-  fi
+    fi
   elif [[ ${option} == "REDIS_PORT" ]]; then
     if ! grep -q ${option} mailcow.conf; then
       echo "Adding new option \"${option}\" to mailcow.conf"
       echo "REDIS_PORT=127.0.0.1:7654" >> mailcow.conf
-  fi
+    fi
   elif [[ ${option} == "DOVECOT_MASTER_USER" ]]; then
     if ! grep -q ${option} mailcow.conf; then
       echo "Adding new option \"${option}\" to mailcow.conf"
@@ -384,13 +467,13 @@
       echo '# User expands to DOVECOT_MASTER_USER@mailcow.local' >> mailcow.conf
       echo '# LEAVE EMPTY IF UNSURE' >> mailcow.conf
       echo "DOVECOT_MASTER_USER=" >> mailcow.conf
-  fi
+    fi
   elif [[ ${option} == "DOVECOT_MASTER_PASS" ]]; then
     if ! grep -q ${option} mailcow.conf; then
       echo "Adding new option \"${option}\" to mailcow.conf"
       echo '# LEAVE EMPTY IF UNSURE' >> mailcow.conf
       echo "DOVECOT_MASTER_PASS=" >> mailcow.conf
-  fi
+    fi
   elif [[ ${option} == "MAILCOW_PASS_SCHEME" ]]; then
     if ! grep -q ${option} mailcow.conf; then
       echo "Adding new option \"${option}\" to mailcow.conf"
@@ -398,6 +481,26 @@
       echo '# Only certain password hash algorithm are supported. For a fully list of supported schemes,' >> mailcow.conf
       echo '# see https://mailcow.github.io/mailcow-dockerized-docs/model-passwd/' >> mailcow.conf
       echo "MAILCOW_PASS_SCHEME=BLF-CRYPT" >> mailcow.conf
+    fi
+  elif [[ ${option} == "ADDITIONAL_SERVER_NAMES" ]]; then
+    if ! grep -q ${option} mailcow.conf; then
+      echo '# Additional server names for mailcow UI' >> mailcow.conf
+      echo '#' >> mailcow.conf
+      echo '# Specify alternative addresses for the mailcow UI to respond to' >> mailcow.conf
+      echo '# This is useful when you set mail.* as ADDITIONAL_SAN and want to make sure mail.maildomain.com will always point to the mailcow UI.' >> mailcow.conf
+      echo '# If the server name does not match a known site, Nginx decides by best-guess and may redirect users to the wrong web root.' >> mailcow.conf
+      echo '# You can understand this as server_name directive in Nginx.' >> mailcow.conf
+      echo '# Comma separated list without spaces! Example: ADDITIONAL_SERVER_NAMES=a.b.c,d.e.f' >> mailcow.conf
+      echo 'ADDITIONAL_SERVER_NAMES=' >> mailcow.conf
+    fi
+  elif [[ ${option} == "ACME_CONTACT" ]]; then
+    if ! grep -q ${option} mailcow.conf; then
+      echo '# Lets Encrypt registration contact information' >> mailcow.conf
+      echo '# Optional: Leave empty for none' >> mailcow.conf
+      echo '# This value is only used on first order!' >> mailcow.conf
+      echo '# Setting it at a later point will require the following steps:' >> mailcow.conf
+      echo '# https://mailcow.github.io/mailcow-dockerized-docs/debug-reset-tls/' >> mailcow.conf
+      echo 'ACME_CONTACT=' >> mailcow.conf
   fi
   elif ! grep -q ${option} mailcow.conf; then
     echo "Adding new option \"${option}\" to mailcow.conf"
@@ -433,10 +536,11 @@
 
 if [ ! $FORCE ]; then
   read -r -p "Are you sure you want to update mailcow: dockerized? All containers will be stopped. [y/N] " response
-  if [[ ! "$response" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
+  if [[ ! "${response}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
     echo "OK, exiting."
     exit 0
   fi
+  migrate_docker_nat
 fi
 
 echo -e "\e[32mValidating docker-compose stack configuration...\e[0m"
@@ -474,6 +578,8 @@
   docker rm -f "$container" 2> /dev/null
 done
 
+[[ -f data/conf/nginx/ZZZ-ejabberd.conf ]] && rm data/conf/nginx/ZZZ-ejabberd.conf
+
 # Silently fixing remote url from andryyy to mailcow
 git remote set-url origin https://github.com/mailcow/mailcow-dockerized
 echo -e "\e[32mCommitting current status...\e[0m"
@@ -512,11 +618,22 @@
   echo -e "\e[33mNot fetching latest docker-compose, because you are using Alpine Linux without glibc support. Please update docker-compose via apk!\e[0m"
 else
   echo -e "\e[32mFetching new docker-compose version...\e[0m"
+  echo -e "\e[32mTrying to determine GLIBC version...\e[0m"
+  if ldd --version > /dev/null; then
+    GLIBC_V=$(ldd --version | grep -E '(GLIBC|GNU libc)' | rev | cut -d ' ' -f1 | rev | cut -d '.' -f2)
+    if [ ! -z "${GLIBC_V}" ] && [ ${GLIBC_V} -gt 27 ]; then
+      DC_DL_SUFFIX=
+    else
+      DC_DL_SUFFIX=legacy
+    fi
+  else
+    DC_DL_SUFFIX=legacy
+  fi
   sleep 1
   if [[ ! -z $(which pip) && $(pip list --local 2>&1 | grep -v DEPRECATION | grep -c docker-compose) == 1 ]]; then
     true
     #prevent breaking a working docker-compose installed with pip
-  elif [[ $(curl -sL -w "%{http_code}" https://www.servercow.de/docker-compose/latest.php -o /dev/null) == "200" ]]; then
+  elif [[ $(curl -sL -w "%{http_code}" https://www.servercow.de/docker-compose/latest.php?vers=${DC_DL_SUFFIX} -o /dev/null) == "200" ]]; then
     LATEST_COMPOSE=$(curl -#L https://www.servercow.de/docker-compose/latest.php)
     COMPOSE_VERSION=$(docker-compose version --short)
     if [[ "$LATEST_COMPOSE" != "$COMPOSE_VERSION" ]]; then
@@ -556,6 +673,9 @@
 
 # Checking for old project name bug
 sed -i --follow-symlinks 's#COMPOSEPROJECT_NAME#COMPOSE_PROJECT_NAME#g' mailcow.conf
+# Checking old, wrong bindings
+sed -i --follow-symlinks 's/HTTP_BIND=0.0.0.0/HTTP_BIND=/g' mailcow.conf
+sed -i --follow-symlinks 's/HTTPS_BIND=0.0.0.0/HTTPS_BIND=/g' mailcow.conf
 
 # Fix Rspamd maps
 if [ -f data/conf/rspamd/custom/global_from_blacklist.map ]; then
@@ -585,6 +705,11 @@
 echo -e "\e[32mCollecting garbage...\e[0m"
 docker_garbage
 
+# Run post-update-hook
+if [ -f "${SCRIPT_DIR}/post_update_hook.sh" ]; then
+  bash "${SCRIPT_DIR}/post_update_hook.sh"
+fi
+
 #echo "In case you encounter any problem, hard-reset to a state before updating mailcow:"
 #echo
 #git reflog --color=always | grep "Before update on "